Khanderao on Emerging And Integration Technologies

Monday, June 14, 2010

Oracle BPM Suite .. unified engine..

Oracle announced BPM Suite today http://finance.yahoo.com/news/Oracle-Announces-Oracle-iw-1502422125.html?x=0&.v=1

An important note about this Suite is based on unified process foundation of Oracle Business Process Management Suite 11g . It has the same engine that executes both BPEL and BPMN processes. Note that there is not conversion from BPMN to BPEL or BPMN to any other model for execution. The same service engine can execute both BPEL and BPMN instructions. The BPM suite is enrichment and extension to Oracle's SOA suite. It provides easy to use Process Composer (BPMN) that can be used to create process, deploy them and modify (for extension) the processes that are already deployed. It provides End-to-end unified the management and monitoring of the business processes.

Labels: , ,

Add to Technorati Favorites

Save This Page on del.icio.us

Monday, October 12, 2009

Talking At OOW 2009 Today on SOA Suite Best Practices Based on Development Experience of Fusion Apps

Session Information

ID#: S308799
Title: Oracle SOA Suite 11g Best Practices Based on Oracle Fusion Applications Development Experiences
Date: 12-OCT-09
Time: 17:30-18:30
Venue: Hilton Hotel
Room: Yosemite B

Labels: , , ,

Add to Technorati Favorites

Save This Page on del.icio.us

Tuesday, September 15, 2009

Flaws in Using BPEL to implement Orchestration Engine than Using BPEl to Orchestrate a Process Flow

BPEL provides a Web Service Orchestration language. Like any basic programming language, it has some constructs for declaring variables, switching, looping, sequencing or parallel branching, etc. Due to this construct, some times I came across implementation where BPEL is used as a programming language implementing an Orchestration Engine itself than an orchestration language. In this case, the flow sequence is captured as a model in database tables and then BPEL process is an engine which uses the model in the tables to get the next activity. So it kind of "implementing an orchestration" engine in BPEL rather than Orchestrating in BPEL. Isn't it cool? or Are there any issues? Yes, in prima-facie it looks like cool, creative and innovative. However, you would need to think about what BPEL orchestration is, how would compensation work? how about fault handling? how can you view the process itself, whether you would be able to meaningfully monitor the process? In most of the scenarios, the answers to these questions would steer you away from using BPEL as a programming language

Labels:

Add to Technorati Favorites

Save This Page on del.icio.us

Wednesday, September 09, 2009

Speaking at Oracle OpenWold 2009

I will be speaking at OOW 2009 on Oct 12th. The topic will be:
Oracle SOA Suite 11g Best Practices Based on Oracle Fusion Applications Development Experiences

Labels: , , , ,

Add to Technorati Favorites

Save This Page on del.icio.us

Thursday, July 23, 2009

AS11 SOA Tips: Configuring Component (Process) level properties

Oracle's SOA Suite AS11 is based on SCA (Service Component Architecture). Hence the configuration of process level properties is also done as per SCA standard. To be specifically as component properties in composite.xml

Here is an example:





For details refer to FMW SOA Documentation Appendix C

Why is it important?
The Component Properties can be configured in the production environment via Enterprise Manager and they can be accessible to the running component or component container (or service engine like BPEL)

Labels: , ,

Add to Technorati Favorites

Save This Page on del.icio.us

Tuesday, July 07, 2009

Event vs Services to initiate a BPEL process in AS11

Since As11 supports both events and services to initiate a SOA composite ( may be having a BPEL process within it), there is always a question around when to use events and when to use service invocation to start the process.

The decision can be based on the following understanding of the events and service patterns.

Events
  • Events are suitable for a decoupled integration.
  • Events are one way messaging (no request response pattern and correlation)
  • The publisher does not know about the subscribers (there might not be subscribers too)
  • The publisher is not blocked for the execution of the subscriptions
  • Events support 1:n fan out (multiple subscribers for the same event)
Service invocations
  • Service invocation is a tight integrations with the service provider
  • Service invocation supports request response patterns (sync or async)
  • Synchronous service invocation is blocked till the execution of the service completes.
  • Async Request response pattern is often supported via WS-adderessing and correlation

Labels: , , , , ,

Add to Technorati Favorites

Save This Page on del.icio.us

Wednesday, November 12, 2008

Speaking at SOA World 2008

I will be speaking at SOA World 2008 next week. Here is the link to my session:

http://soaworld2008.com/general/session1108.htm?id=145

See you there if you are around.

I will be speaking on BPEL Lifecycle issues and solutions.

Labels: , ,

Add to Technorati Favorites

Save This Page on del.icio.us

Tuesday, July 01, 2008

Quick recap on ESB, BPEL and BPM

I came across repeated queries around ESB, BPEL and BPM. Oracle's SOA suite AS11 provide all of these as a comprehensive and well integrated product suite. If someone wants to logical group the components separately to reposition them in these categories then it could be like:

ESB Enterprise Service Bus

Fabric, Mediator, Binding Components, Adapters, MDS, Policy framework and a registry
ESB essential deals with message routing and mediating between different application services. The mediation could be different transport protocols, different handshake protocols, different standards, etc. At the heart of ESB, there is a message router and transformer. ESB can be service oriented or message (in a form of an event) driven. SOA suite AS11 supports both Service and Event patterns.

BPEL Business Process Orchestration

BPEL is a service engine in SOA suite.
BPEL does process orchestration of web services. Oracle's BPEL comes up with Human task service to support workflow patterns. It also uses Oracle's Business Rules to inject dynamic decision points in a process. Though BPEL can implement most of the patterns of ESB (VETRO), it would not be good for light weight bridging between services to implement service virtualization. BPEL's key strengths is in providing a standard language for process execution with key functionalities like: correlating async interactions, providing a flexible flows, compensations for the long running processes, eventHandlers for out of the band interactions, and wait for timeout/wait activitities etc.

BPM Business Process Management
BPA for Business Process Modelling
BPM runtime for BPMN/XPDL (on roadmap after the acquisition)
Human Workflow and Advance Approval Management
BAM Business Activity Monitor for real time dashboard
Rules for dynamic busines
Web Center for Collaboration


Governance
Registry
Repository
Policy Manager
Console

Labels: , , , ,

Add to Technorati Favorites

Save This Page on del.icio.us

Thursday, October 18, 2007

BPM: Close loop integration between Modeling, Execution and Monitoring of Business Process

Life-cycle issues in BPM:
It is well understood that Business analysts need a business friendly tool to capture requirement, model a process and / document a process. Many modeling tools are already available and are key in any BPM strategy. The business analysts do not implement those processes. Especially it is true for "executable processes" like BPEL. IT developers or system integrators often take a business requirement and turn them into an executable business process. There is always a chance of a communication gap. Off course, a proper review would reduce chances of such reviews. However, if a business analyst needs to review BPEL process, he would neither be comfortable nor be capable of. In such scenario, it is definitely useful to have an automatic generation of BPEL process and many modeling tools generate BPEL processes.

However, the key of modeling is to be higher level and capture key business activities. A modeler can capture some key business activities, however, none of these would be or should be complete. Hence, IT developer / SI would need to add details or implement specific business as well as technical activities to make the process complete. They may add data transformations, validations, error handling, or implement specific handshaking required by internal/external partners. Some of these, details may need to surfaced to the model. Otherwise, over a period of time, the model start getting out of sync with the implemented process. Thus, round tripping is important.

While a process can be modified at the time of or after implementation by IT/SIs, the business analyst may also need to change the model to reflect a changing business need. Thus there would be changes in both the original model as well as the generated business process. This is a very valid case in a life cycle of a business process. So the key is to support merging the changes.

Oracle BPM:
In the month of September, Oracle announced a next updated version of its BPA (Business Process Analysis) Suite which supports closed loop integration between modeling and execution models. Oracle being a vendor providing a comprehensive solution in BPM-Integration space, has offered such tighter integration between various tools and by providing a standards based (BPMN) business friendly modeler, a standards(BPEL) based process designer, an execution runtime as well as monitoring environment (SOA Suite).

This new version supports thus provides "a closed-loop engineering and bi-directional sync'ing capabilities, enabling business analysts and developers to closely collaborate throughout the entire BPM life cycle using the best tools for their specific needs".

Using Oracle BPM Suite: Modeler and IT/SI experience
Using these products, a modeler can model a process, and then publish it. Using JDev based BPEL designer, an IT developer/SI can explore this published model and start with its "blue print" which is a common model between BPMN and BPEL. The BPEL process can further be refined with implementation details and would be published. If the modeler changes the process model and republishes it, the IT/SI developer would get a visual notification in his/her JDev. The developer can sync up the process, see the differences, merge the changes (comparing the new versus existing process) and implement the details for the newly added business activities related.

Seamless Integration with Monitoring:
Oracle's BPM suite also helps in monitoring. The modeler can specify (select) monitoring points, the generated BPEL would carry all the "sensor instrumentation" without a need to add them manually. These sensor data can be fed to Oracle's BAM (Business Activity Monitoring) module which can provide a real time dashboard.

The execution can potentially be analyzed and the analysis can be used in further refining the business process model, thus completing the circle of life cycle activities.

Labels: , , , , , ,

Add to Technorati Favorites

Save This Page on del.icio.us

Friday, October 05, 2007

SOA on Grid and relocatable BPEL processes

Dave Chappell, Author of ESB book and SOA Chief Strategist with whom I am privileged to work, and Dave Berry, ESB PM and colleague, jointly published an article covering SOA on Grid a potential next generation to provide a robust, scalable, reliable, high performing and highly available infrastructure for SOA.

It most of the obvious target use cases like:
Large payload
Active-Active clustering
Load Balancing
In memory persistence caching of DB (asynchronous write)
Performance improvement of BPEL PDS - Dehydration (process data/state storage)

But most importantly, the article introduced one important concept, we had brainstormed earlier, that is re-locatable BPEL process to minimize a data serialization. Why bring a large data across a network when a process can itself continue from a node on/closer to the node having data. e.g. Apps adapters.

Certainly doing such agile services would provide a stateful however relocatable services resulting into high performance and high availability.

Labels: , ,

Add to Technorati Favorites

Save This Page on del.icio.us

Wednesday, October 03, 2007

My article on BPEL 2.0 in Action

Here is an article co-authored by me on BPEL2.0 in action got recently published in SOA World / SYS-CON. A long time, about a decade, back I used to write at Java Developers Journal. I had covered CORBA and Java application server. Yes...CORBA was supposed to change the whole MiddleWare market. Anyway, after seeing many hype cycles, I would refrain from saying about any technology as world-changing. Anyway, in between there was a long long gap. Got busy in implementing a lot of stuff. ...driving products...etc...

Anyway, this article covers some value added features in BPEL2.0...but it goes a step further to demonstrate some key features like dynamic parallel branches, correlation, out of band /changes events and reflecting to them via compensations.

Labels:

Add to Technorati Favorites

Save This Page on del.icio.us

Friday, March 16, 2007

BPEL processes in PeopleSoft Applications using Peopletools 8.48 (and later)

In last few days, many customers, professional service engineers and integration specialists asked about using BPEL with PeopleSoft Applications. So I am giving some high level overview of Peopletools 8.48 functionalities for integrating with BPEL.

In 2005, when I was the Enterprise Architect of Peopletools (a development and runtime platform of Peoplesoft Applications), one of the important projects we did was to add many features to enable SOA in a better way. Peopletools 8.48 provided a better Service designer to consume or provide webservices. Many new features like WS-Addressing support, WS-SE, etc aligned Peopletools 8.48 to seamlessly work with BPEL. A much better than earlier version of Peopletools 8.46 and 8.47! (both these version are also certified with BPEL 10.1.2).

Many additional features like a support to WS-A headers & correlation id, security credentials, WSIL lookup, and others, allow PeopleSoft Applications and BPEL to discover each other’s services and invoke them other synchronously or asynchronously in a secured way.

We also added some features specifically for BPEL e.g. Partnerlinks in generated WSDLs, a utility Application classes, BPELUtil, IBUtil etc. With partnerlink support, the PeopleSoft Services are easier for BPEL to consume.

Using newly introduced BPELUtil, Peoplecode developers can directly launch a BPEL process. IBUtil class provides APIs to track the process. It also provides some more utility methods to get BPEL console URL, domain, etc. In fact, Peoplesoft CRM developed a process monitor for CRM processes using these APIs in release 9.0. Additionally, BPEL console can be launched within Peoplesoft portal without re-login.

Consuming a BPEL process was made very easy in Peopletools. One can consume the service by discovering from BPEL’s WSIL, UDDI, or directly importing using wsdl URL, or from a WSDL file. A copy of the WSDL is stored in WSDL repository table. Using the service designer, the developer can select port type, operations and messages. The developer can also add some handlers and routings.







Easy Coding: The consumed BPEL process can be launched (invoked) using a very few Peoplecode statements.

Creating a Message

&payload = CreateXmlDoc(&customer);

&msg = CreateMessage(Operation.PROCESS, %IntBroker_Request);

&msg.SetXmlDoc(&payload);

Invoking a BPEL process

&response = &bpelProcess.LaunchSyncBPELProcess(&OPERATION, &msg, "", "");

Processing a response

If All(&response) Then

&responseString = &response.GenXMLString();

WinMessage(&responseString);

Else

WinMessage("Error: No reply ");

Providing Services:

Peoplesoft Component Interfaces (CI)s and Peoplecode App Classes can be easily exposed as web services. The Service Designer helps to assemble the service by defining service operations and map them one or more CIs or App Classes or Peoplecode functions (handlers). Using the Schema designer one can design Peoplsoft’s rowset or non-rowset based message or import pure XML message as a schema. The service designer abstracts the internal names of handlers and messages allowing developers to give appropriate names. After assembling a service, the developer can publish the service as a WSDL to a WSIL or UDDI repository. The WSDL is also saved in an internal WSDL repository and available for query or export.

Routing and transformations:

Many times the external service may expect or send a message, which could be different than the internal message. The Service designer allows developing and using transformations of these messages using a graphical mapper.




Peopletools supports following Request Response Patterns:

  1. One way notification (Fire and Forget)
  2. Synchronous Request Response
  3. Asynchronous Request Response

The Async Request response is supported using WS-Addressing headers. The external WS-Addressing headers, like correlation message id, propagated to Peoplecode based application (via IBInfo).

Security: In the world of integrations, Security is very important. Different framework handles security differently. PT8.48 implements a waterfall security model. A Username token and pass code token can be set at Service operation or Node or may have a default. It can be sent encrypted, digitally signed or text. An application programmer can override these using Security override API to provide a different token. This security credentials are sent via WS-SE.

Using the Integration framework, Enterprise Applications like CRM, HCM developed many Business Processes with BPEL.




(Peoplesoft is a Trademark of Oracle Corp. To differentiate with other ERP applications offered by Oracle, I am specifically using Peoplesoft name.)

Labels: , , , ,

Add to Technorati Favorites

Save This Page on del.icio.us

Monday, February 26, 2007

BPEL in SCA assembly model

(For basics about SCA visit:

http://khanderaotech.blogspot.com/2007/02/basics-of-service-component.html)


SCA and BPEL are complementary technologies. Though both have a mechanism to capture relationship between services, both do it differently. Moreover, BPEL is an execution language while SCA captures only the dependencies.

BPEL process can be an implementation type of service(s) within SCA. One may define service using BPEL and deploy the composite.

BPEL capture relationship between a process and an interactive web service as a partnerlink with different roles tied to port types. SCA maps the partnerlink with a single role (port type) to a reference. Thus, mapping between SCA and BPEL is straightforward.

Let us assemble a composite containing a BPEL process. I am using a stripped down version of a PurchaseOrderProcess given in proposed WS-BPEL 2.0 specifications. This process invokes two other services one to compute price and another to ship the product. These relationships are captured in three partnerlinks.






In case of WS-BPEL, a partnerLink defines two roles, one for the WS-BPEL process and one for the partner. In SCA, Depending upon a message flow direction, one of them becomes a reference and another becomes a service.

In our example, the BPEL process’s interface is exposed as a service entry point of the composite while other partner links are mapped as references.





Invoice (computePrice) service and Shipping service can be local or external to the composite. I am making both of them as external webservices. Thus, our composite looks like:

You may notice, wires between component and references. The BPEL process does not know what kind of implementation those references and what kind of binding it has. This loose coupling and flexibility is a power of SCA architecture.






Finally, here is the SCA composite representation for this assembly.





Disclaimer: The specs are still being evolved and may change. The representation is simplified for explanation hence it is not complete.

References:

1. WS-BPEL 2.0 : http://docs.oasis-open.org/wsbpel/2.0/wsbpel-specification-draft.pdf

2. SCA whitepaper: http://www.osoa.org/display/Main/SCA+BPEL+White+Paper

3. SCA - BPEL specs: http://www.osoa.org/download/attachments/35/SCA_ClientAndImplementationModelforBPEL_v0.95.pdf?version=2



Labels: ,

Add to Technorati Favorites

Save This Page on del.icio.us