Tuesday, September 1, 2020

SOA Composite - IQA

 

Q) What Is Soa Composite ?

SOA composite is a assembly comprises of one or more than one pre-build components. In SOA composite we wires different components together to perform required business functionality.

Q) What Is Service Component ?

All prebuilt components BPEL , Mediator, Business Rules, Human Task and Spring known as service components.

Q) How These Service Components Works ?

Each service component is hosted in its own service engine container. E.g. Any logic added in BPEL components will be handled by BPEL service engine only.

Q) Binding

Binding defines the protocols that communicate with the service like SOAP/HTTP, JCA adapter etc.

Q) What Is Binding Component?

As name suggest, this component is used to bind composite application to external world. i.e. we use these components to link composite with source and target system.

Q) What Are The Types Of Binding Components?

Binding components establish a connection between a SOA composite and the external world.

Binding components are of two types as mentioned below.

1. Service Binding:

->With the help of this binding we connect composite to source or client system or we can say this is entry point of composite.

-> Creates a web service to provide an entry point to the SOA composite application

->By using WSDL,"The binding connectivity of the service describes the protocols that can communicate with the service, for example, SOAP/HTTP or a JCA adapter."

2.    Reference Binding:

->This binding helps composite to connect to target or reference systems or we can say it is exist point of the composite.

-> Creates a web service to provide access to an external service in the outside world

-> References enable messages to be sent from the SOA composite application to external

 Services in the outside world.

Q) Can We More Than One Service & Reference Binding In One Composite?

Yes, we can more than one service & reference binding in one composite, that means we can have more than one entry & exist point for composite.

Q) Can We Have More Than One Service Component In One Composite ?

yes, we can have as many as service components in one composite but it is not recommended, we should not have all the components in one composite itself.

Q) What Can Be Scenario Where We Have Two Service Binding In One Composite?

When a composite can be initiated either by direct call or by consuming the same message from JMS queue, in this scenario we have two entry point for same composite.

Q) What Can Scenario Where We Have Two Reference Binding In One Composite?

Composite needs to send the message to first target by JMS queue and to other target by writing the file, in this scenario we have two exist for composite.

Q) What Is Wire?

Connection between service & binding component and within service & binding components know as wire. I.e. This enable us to graphically connect the components in a SOA composite application.

Q) What Is Bpel?

BPEL stands for Business Process Execution Language, it is one of the component of SOA Suite tool. BPEL is a XML based language used to design business process/flows. We perform service orchestration in BPEL.

Q) What Are Different Parts Of Bpel ?

Below are different parts of BPEL as mentioned below.

1.  Service Interface: A WSDL describing the functionality of the BPEL process. The service interface provides the end user a way to interact with the BPEL process component using Service Interface / Service Binding.

2.    Activities: units of work. The actual elements that make up the BPEL process flow or sequence of instructions to be executed.

3.    Partner links: also called Reference bindings. A partner link describes the roles played for the interaction between the BPEL process and the service it invokes.

Q) What All Bpel Templates Are Available In Soa Suite Tool?

Primarily we have three types of BPEL template in SOA Suite tool.
1. Synchronous BPEL Template
2.    Asynchronous BPEL Template
3.    OneWay BPEL Template

Q) What are dspMaxThread and a recieverThread properties? Why are they important?

ReceiverThreads property specifies the maximum number of MDBs that process aysc across all domains. Whereas the dspMaxThreads are the maximum number of MDBs that process aysc and threads that operate across a domain.

So, we need to ensure that the dspMaxThreads value is  !> ReceiverThreads.

Q) How to undeploy SOA Composite when SOA-infra is down?

Sometimes SOA-infra application won’t come up due to corrupt composite which stops the soa-infra to be in active  state.

To bring soa-infra up we need to undeploy corrupt composite.

We can undeploy  SOA composite by editing deployed-composite.xml

Change instance state from “?” to actual state value.

Q) When you view your composite instances in em console you may see "?" in state column and that is very confusing whether that instance is successful or error out.

To show proper value in state column do following steps.

Log in to SOA  Em console e.g. http://host:port/em

Go to "Farm_base_domain" and then expand "SOA"

Right click on "soa-infra" and go to "SOA Administration" then choose

"Common Properties".

Check "Capture Composite Instance State" and "Apply" this change.

Q) How do you create a partner link BPEL? How to make partner link dynamically ?

You can dynamically configure a partner link at runtime in BPEL. This is useful for scenarios in which the target service that BPEL wants to invoke is not known until runtime

The most important point to be remembered when using dynamic partnerlinks is that you need to ensure each process that you wish to call has to be based on exactly the same WSDL

The message types, namespaces, port types, bindings etc… Everything have to be same just the endpoint URL will be different

Dynamic partner links are only supported in BPEL 1.1 projects

Q) Transactions In SOA

Required

"It is used to make sure that whatever transaction is flowing from the starting, the same transaction
 should be continued."

RequiredNew

It is used whenever t control will come to BPEL, A new transaction will be started.

Q) Multiple Runtime Endpoint Locations for partner link in SOA

Purpose- If one endpoint is down, we can manage with other one.

"endpointURI" is the property that we need to add in partner link reference to
support multiple endpoint location." 

e.g. <property name="endpointURI">endpoint</property>

Note:

Location attribute in the binding.ws tag is default location for the partner link.

e.g. location=http://localhost:8001/soa-infra/services/default/First/bpelprocess1_client_ep?WSDL

Endpoint inside “endpointURI” is the alternate endpoint URI.

<propertyname="endpointURI">http://localhost:8001/soainfra/services/default/Second/bpelprocess1_client_ep</property>

First Use case

We have 3 composites.

       1.)    TestComposite

       2.)   HelloWorld

       3.)   HelloWorldAlternate

TestComposite is calling HelloWorld composite but it should call HelloWorldAlternate composite which is alternate composite in case “HelloWorld” is down.

Sample Partner Link reference

When both “HelloWorld” and “HelloWorldAlternate” composites are up then TestApplication will invoke “HelloWorld” partner link.

That means it will take endpoint from “property”

<property name="endpointURI">http://localhost:8001/soa-infra/services/default/HelloWorld/bpelprocess1_client_ep</property>

When HelloWorld is down then it will invoke “HelloWorldAlternate” partner link.

That means it will take endpoint from location attribute of the binding.ws tag

location="http://localhost:8001/soa-infra/services/default/HelloWorldAlternate/bpelprocess1_client_ep?WSDL”

Second Use case

We can think about having more than one alternative endpoint for partner link.

In this case we have 4 composite.

       1.)    TestComposite

       2.)   HelloWorld

       3.)   HelloWorldAlternate.

       4.)   HelloWorldSecondAlternate

 TestComposite is calling HelloWorld composite but it should call HelloWorldAlternate or HelloWorldSecondAlternate composite which is alternate composite in case “HelloWorld” is down.

Sample Partner Link reference

<reference name="HelloWorld" ui:wsdlLocation="HelloWorld.wsdl">

"<interface.wsdl interface=""http://xmlns.oracle.com/TestApplication/HelloWorld/BPELProcess1#wsdl.interface

(BPELProcess1)""/>"

"<binding.ws port=""http://xmlns.oracle.com/TestApplication/HelloWorld/BPELProcess1#wsdl.endpoint

(bpelprocess1_client_ep/BPELProcess1_pt)"""

location="http://localhost:8001/soa-infra/services/default/HelloWorldAlternate/bpelprocess1_client_ep?WSDL">

"<property name=""endpointURI"">http://localhost:8001/soa-infra/services/default/

HelloWorldSecondAlternate/bpelprocess1_client_ep</property>"

"<property name=""endpointURI"">http://localhost:8001/soa-infra/services/default/HelloWorld/

bpelprocess1_client_ep</property>"

    </binding.ws>

  </reference>

 Case1

When  “HelloWorld”, “HelloWorldAlternate” and “HelloWorldSecondAlternate” is up

then “TestApplication” will invoke “HelloWorld” partner link.

That means it will take endpoint from second “property” 

"<property name=""endpointURI"">http://localhost:8001/soa-infra/services/default/HelloWorld/

bpelprocess1_client_ep</property>" 

Case2:

When “HelloWorld” is down, “HelloWorldAlternate” and “HelloWorldSecondAlternate” is up

then “TestApplication” will invoke “HelloWorldAlternate” partner link. 

location="http://localhost:8001/soa-infra/services/default/HelloWorldAlternate/bpelprocess1_client_ep?WSDL”

Case3: 

When “HelloWorld” is up, “HelloWorldAlternate” is up and “HelloWorldSecondAlternate” is down then “TestApplication” will invoke “HelloWorld” partner link. 

"<property name=""endpointURI"">http://localhost:8001/soa-infra/services/default/HelloWorld/

bpelprocess1_client_ep</property>" 

Case4:

When “HelloWorld” is down, “HelloWorldAlternate” is up and “HelloWorldSecondAlternate” is down then “TestApplication” will invoke “HelloWorldAlternate” partner link. 

That means it will take endpoint from location attribute of the binding.ws tag

location=http://localhost:8001/soa-infra/services/default/HelloWorldAlternate/bpelprocess1_client_ep?WSDL 

when I create BPEL process, It will create componentType  and wsdl for same

when I create jmsAdapter , It will create  jca, wsdl file for same.

Q) What Is The Purpose Of Oracle Wsm Policy Manager?

Oracle WSM Policy Manager provides the infrastructure for enforcing global security and auditing policies in the Service Infrastructure.

Q) How can we secure our web services using Oracle SOA Suite?

When accessing the services should be restricted to the group, then service should be secured via WSM (Web service Manager).

Q) What is getPreference property? How do we set it and what advantage it provides?

Hard coding is not a good practice, so to avoid  hard coding preference variable can be used and the value of the preference variable is accessed using getPreference().The preference variable value can be changed without re-deploying the code via em console MBean property.


No comments:

Post a Comment

SOA Overview Part-1

  Middleware It provides a mechanism for the process to interact with other processes running on multiple network machines. Advantages...