Differentiation of Processes

With the advent ot Service-oriented Architecture (SOA), processes are getting more and more into focus.
If you talk to people with different backgrounds about processes, you’ll likely get different definitions which often causes confusion.

The web developer

The web developer sees processes as a series of dialogs or web pages.
These web pages are connected to guide the user to carry out a certain task such as ordering a book in an online bookshop.
Technologies to connect web pages are Beehives Page flow, Struts or Java Server Faces (JSF).
These kind of processes are refered to as Page Flows.

The analyst

When you talk to an analyst, he/she might speak about business processes. A business process is relevant in a broader business context and might be long running.
In the example with the book order the business process starts after the order was commited by the web application. First the process checks whether the book is in stock. If not is re-ordered from the wholesaler. Then it checks whether the payment has been received and if yes the book is finally delivered to the customer.
Business processes are mainly decribed by specifications such as BPEL/BPNM, UML activity diagrams or XPDL for example used by the BEA Aqualogic BPM Suite.

The integrator

The story gets more complicated if one talks to a person who has to integrate different systems.
For this purpose an Enterprise Service Bus (ESB) is used in more and more projects.
One of the main responsibilities of an ESB is to virtualize the interaction amongst service providers and consumers.
This requires small processes as well, which are used for mediation. Mediation involves for instance schema and protocol transformations.
In our example the wholesaler might support a different message schema and transport protocol than the bookshop. The mediation is conducted by the ESB.
Currently no standardized notation is available to decribe Mediation Processes. Java Business Integration (JBI), which is for instance implemented by Apache ServiceMix, defines these processes implicit as part of the ServiceAssemblies.

processes (39k image)

What I experience is the following: If the discussion is about processes, often BPEL is suggested as the ultimate technical means. But if the focus is on page flow or mediation this might no be the right option.
Although the borders seem to blur. For instance JBoss Seam uses their jBPM engine to describe page flows as well.

Microsoft Biztalk vs. Apache ServiceMix

Over the last few weeks I’ve been evaluating Apache ServiceMix Enterprise Service Bus. I wanted to find out whether it is suitable for production and which features it offers. Compared to commercial products like Biztalk Server it is limited in functionality but nevertheless it is quite useful and works well.
If you are looking for an Open Source alternative to Biztalk Server ServiceMix might be an option. Below you’ll find a brief comparision of the feature set of Biztalk and ServiceMix. If you need more information feel free to contact me.

esb1 (10k image)
esb2 (8k image)

XML/XSL Tools

I’m currently investigating some open source ESB products. I’m am trying to find out whether they are mature enough for production use. Especially ServiceMix is very promising.
In order to develop a new EAI or BPM application it’s also important to have some tools at hand which make developers life a bit easier. Two or them are:

1. XML Schema generator

Trang let’s you generate XML Schemas from XML documents without installing a heavyweight development tool. Just type in:

java -jar trang.jar order.xml order_schema.xsd

2. XSLT Mapper

Jamper let’s you create XSLT-Mappings with a drag and drop GUI like in Biztalk or Aqualogic. It’s a bit rudimentary but much better than using notepad or vi.

jamper (44k image)

BizTalk Server an ESB?

During my Biztalk Server training I have been asked several times whether Biztalk is an ESB or not.
Especially in the Java technology domain ESB is becoming more and more popular. For example recently BEA released Aqualogic Service Bus.
I always said that Biztalk has all the features that you would expect from an ESB like routing and mediation.
I it’s interview Is BizTalk Server an ESB? on DNJ Online Matt Nicholson discussed this questions with Scott Woodgate from the Biztalk Server Team.
As Scott said Biztalk is not just an ESB. With it’s additional features like Business Process Management or Business Activity Monitoring, just to name a few, in combination with arbitrary service hosts it poses an ideal platform for SOA applications.

SOA Maturity Model

Quote taken from the website:

Service-oriented architecture (SOA) has emerged as the most significant shift in how business applications are designed, developed and implemented in the last 10 years, eclipsing the shift to client-server. In fact, Gartner, Inc. predicts that by 2008, “SOA will provide the basis for 80 percent of new development projects.”

While IT is quick to embrace the technical value of service-oriented design, development and implementation, IT executives face the very different challenge of accurately managing the investment in technology as it relates to business value. These IT managers and decision makers need help and guidance in communicating the business value of their SOA vision and to be able to benchmark their SOA adoption within the organization.

To address this challenge, Sonic Software and its partners AmberPoint, BearingPoint and Systinet have jointly developed A New SOA Maturity Model (SOA MM). The model is designed to show the increasingly positive impact of SOA adoption from a business benefits perspective. It provides IT decision makers with simple framework for benchmarking the strategic value of their SOA implementation, and a model for visualizing future success.

For me the SOA maturity model is very useful in order to discuss the SOA strategy for a company. The Quick Reference visualizes different maturity levels and helps the company to get an idea where they are standing.