Thursday, 22 February 2018

Differences between BPEL1.1 and BPEL2.0Versions summarized

Hi All,

Both SOA suite 11g and 12c provides the users to use BPEL1.1 and 2.0 versions when creating a bpel process.

    BPEL 1.1                                                BPEL 2.0

1. We have Flow and FlowN                  1. We have Flow and <forEach>
2. <if>- <elseif>- <else>                        2. Replaced by Switch Activity
3. <terminate>                                        3. Replaced by <exit> Activity
4. No such activity                                 4. New activity <compensateScope> has been added
5. No such activity                                 5. Rethtrow Activity has been added to the Fault Handlers
6. No such activity                                 6. RepeatUntil Activity has been newly added. We canuse                                                                           this if we want the body of the activity to be executed                                                                             atleast once.

Other important differences are as noted below:

1. In BPEL 1.1 there is no defined behavior for a process that receives a message for a request-response operation and finishes without replying.
Similar scenario in BPEL 2.0 would have trigged a Fault message.

2. Xpath expressions are simplified using '$' while accessing variables in BPEL2.0
EX. $OutputVariable.payload/ns4:Result

Where as in BPEL 1.1 it is something like
EX: (bpws:getVariableData('OutputVariable','payload','/ns4:Result')

3.BPEL2.0 support multipart WSDL messages.
    a. toParts element in invoke and reply activities provides an alternative to explicitly creating                    multipart WSDL messages from the contents of BPEL variables
    b. The fromParts element retrieves data from an incoming multipart WSDL message and places               the data into individual variables


Hope this summarizes most of the points.. If missed anything kindly add in comment section.

Let's explore SOA! :)


Tuesday, 6 February 2018

Composite Sensors Explained

Hi All,

In this post I will try to demonstrate the use of composite sensors and this will help all of us to understand its importance.

Composite sensors helps to track required fields from the messages.
Ex: StudentID from StudentInfo Payload

We define composite sensors on service and reference binding components or
On service components that have business event subscriptions.

Composite sensors enable us to perform below tasks:

1. Monitor incoming and outgoing messages.
2. Create Search box for composite sensor details in the instances page of a SOA composite application in Enterprise Manager . This helps us to easily locate a particular instance.
3. Publish to JMS with data computed from incoming and outgoing messages.
4. Track composite instances initiated through business event subscriptions.

During runtime, composite sensor data is persisted in the database.

Demonstration:

1. Create a xsd as below:

2. Build OneWay bpel process accepting Student as input; expose it as soap service
In Composite.xml Choose the higlighted icon for creating sensors.

3. Choose as below


4. Create StudentID as the field to be tracked in the input payload ; under expression select variable and choose StudentID.


5. Choose EM console to manage sensors features.


6. Select StudentID click on apply and ok.


7. Save all your composite and deploy to the em console

Testing:

1. Provide inputs and test the webservice


2. Launch Flowtrace 

3. We can see a fields under Sensors Tab


4. Go to Dashboard in em console under Add Fields we will be able to see the composite sensor which we created 'StudentID'


5. Choose that Provide the StudentID which we entered earlier or from any previous test searches



6. Hola! here we obtain the same instance from our previous test case.

That's all!

We can easily track the instances by setting composite sensors on the required fields either from the payloads at service/reference sides and also on the components which are subscribed to events.


Let's keep exploring SOA! :)

Drop in your comments for any doubts .. :)
Will be happy to help!