Biztalk Technology Specialist

I passed the Microsoft Biztalk Server certification (MCTS) with flying colors (985).

An MCTS is:

“A Microsoft Certified Technology Specialist in Microsoft BizTalk Server 2006 (MCTS: BizTalk Server) has a deep and broad understanding of the design and development of distributed applications that use BizTalk Server 2006. The credential holder has also demonstrated expertise in deploying and managing a BizTalk Server 2006 solution and can create a BizTalk orchestration, integrate business rules and human workflow services, manage business processes, troubleshoot BizTalk solutions, and consume and publish Web services.”

I knew that before, but now it is official. 😉

Now I an entitled to deliver the official Biztalk MOC courses (2033 and 2934) in addition to the regular development courses.

How to enable request logging for pax-web-service OSGi bundle

Due to lack of documentation enabling request logging for the pax-web-service OSGi bundle can be time consuming task.
This is how it can be achieved:

1. Create a OSGi fragment bundle using Maven 2 like this: pom.xml
2. Add jetty.xml to src/main/resources directory of your project. Example: jetty.xml
3. Install the bundle into your OSGI environment.

This approach works with pax-web-service-0.6.0.jar and Eclipse Equinox 3.4.0.

Rules, Processes or Services?

Together Services, Business Processes (BPM) and Business Rules (BRM) can be a powerful combination to keep the SOA promise of creating agile business applications.
I often hear questions about how those three can be combined in a reasonable way.
In their article Implementation of business rules and business processes in SOA Boris Lublinsky and Didier Le Tien give some practical advice.

New SOA Workshops

Recently we released the SOA Open Source Reference Platform (OSRP) Workshop.

If you have ever tried to evaluate Open Source technologies you might have experienced that a lot of time is lost in simply integrating all the different tools and products.
The idea behind the workshop is to provide people with an integrated environment which can be used to quickly learn Open source SOA technologies. This environment is called the SOA Open Source Reference Platform (OSRP).
After the workshop the attendees have a sound understanding if and how Open Source products can be used to build a reliable SOA platform.

The OSRP-Workshop is ideal after attending the SOA Workshop which gives an overview about terms and technologies used in the area of Service-oriented Architecture.

Is EJB dead in times of SOA?

In times of lightweight containers and Service Oriented Architecture (SOA), Enterprise Java Beans (EJB) is not the predominant development model anymore. Instead multiple technologies and frameworks are competing to be THE service development model of the future. For instance SCA, Spring, Axis, CXF and …

… probably EJB?

The Jbi4Ejb Binding Component allows to integrate Stateless Session EJBs into an ESB infrastructure, thus making them available to service consumers.

This is again a nice example of how open standards such as JBI help to protect the investments of the past.

SOA without BPM without SOA

Some people argue that SOA and BPM are two different things. That is probably right because it is possible to create a service landscape without having a business process representation. But if you look at the main reason for establishing a service oriented architecture the perspective changes.
The main reason for SOA is business agility. Every technology that helps to achieve that goal is welcome to be integrated in the SOA technology stack.
BPM makes perfect sense as it fosters better aligment on business and IT and helps to shorten development cycles.
Ok understood. But if that is true wouldn’t be be enough to use a BPM only without services? The answer is no because in order to create a flexible BPM solution it must be based on a sound service landscape. If that is not the case changing a business process would require new services to be created or existing to be altered. Sooner or later this would lead to service proliferation which would render the BPM approach useless over time. The result would be anything but hardly an agile system.

My conclusion: Using BPM as part of a SOA makes perfect sense if it is based on reliable and well designed services.

Evolution of Languages

After working a while with Groovy in a project I have the impression that it is the better Java.
Mainly because it introduces nice productivity features such as closures, runtime compilation, loose typing, operator overloading just to name a few.
These features are available in C# for instance as lambda expression, extensions methods or type inference. And runtime compilation and operator overloading are even part of the .NET-Platform since version 1.
But while the C# language evolves from version to version in a logical way, in the Java world a new language is created. It is called a scripting language. Why that? Every language that can be compiled at runtime can be used as a scripting language.
I think it would be better to add those productivity features to the next version of Java without further cluttering the Java platform. This would help developers and decision makers to choose the right technology.