Monday, May 20, 2013

BPMN 2.0 : Business Process Model and Notation

The BPMN 2.0 standard specification was formally released in January 2011. This specification is the result of collaboration between companies such as Oracle, IBM, Red Hat, Intalio, and many others within the Object Management Group, to conform  a unified language to model and execute business processes.

The specification aims to reduce/eliminate the gap between technical business process representations and the fact that a lot of business analysts use flow chart representations to define how a company works. This gap can be eliminated using a standardized mapping between the visual notation of the business process and the execution semantic of the model. A business processes modeled using the BPMN notation defines the flow of data and the association of the data artifacts to business activities.

BPMN2 covers more than just the notation that needs to be used to draw our business processes, and the complete specification is divided into four sections that allow different vendors to be compliant with one or more of these four conformance types:
  • Process Modeling
  • Process Execution
  • Collaboration Modeling
  • Choreography Modeling 
e.g: A diagram that conforms to process modeling notation is shown below.

Monday, May 13, 2013

Running jPBM 5.0 Demo

You can supposedly get jPBM demo running in a breeze.
  1. Download full version from here.
  2. Unzip
  3. Go to install location
  4. Run: ant install.demo
  5. Run: ant start.demo
I had to tweak the build.xml a bit to get it running smoothly.

1. Eclipse download path was incorrect. (L 253 =>

2. Since my OS was Linux, had to change the OS in start.jboss7 target from 'unix' to 'Linux' (L 756). Otherwise jboss won't start.

3. Replace 'osfamily' with 'os'

Friday, May 10, 2013

Error: type doesn't support the "osfamily" attribute

Above error can come when executing an ant target. This happens because ant versions older than 1.7 do not support osfamily.

Solve it by,
1. If you're using a older ant version, replace 'osfamily' attribute in exec tasks with 'os' in your build file.
2. If you're using ant 1.7, see if an older version of jar is getting picked up. If you have a certain jar earlier in the classpath which has ant dependencies, it might load an older version. Move such jars to the bottom of the classpath.

Thursday, May 9, 2013


If you're interested in learning MongoDB check this out.

It's a free on-line course hosted by the MongoDB company itself.

Quoting their about us page;

10gen Education is an online learning platform run by 10gen (the MongoDB company) available to anyone in the world with an internet connection. Our free courses will teach you how to develop for and administer MongoDB quickly and efficiently.

Frequent assessments help you verify your understanding, and at the end of a course, you'll receive a certificate of completion from 10gen. You'll also become a member of 10gen's community of cutting-edge NoSQL technologists. Over time, we'll be adding classes on schema design, advanced scaling and replication, and other topics, so check back often!

10gen's education platform was developed under a collaboration with edX, the not-for-profit consortium between MIT, Harvard and Berkeley.

I18n = Internationalization

I18n stands for "Internationalization"

The story goes as follows (as sited in Internet):
A DEC employee named Jan Scherpenhuizen was given an email account of S12n by a system administrator, since his name was too long to be an account name. This approach to abbreviating long names was intended to be humorous and became generalized at DEC. The convention was applied to "internationalization" at DEC which was using the numeronym by 1985.


Rule engines provide us a declarative language to express our rules, in contrast to the imperative nature of languages. Java, C, PHP, Python, and Cobol are imperative languages, meaning that they follow the instructions that we give them, one after the other.

Using Drools Rule Language(DRL) we specify situations that are evaluated by the rule engine. Each rule defines a situation. A rule has two sections,

conditional section => Starts when 'when' keyword
consequence section => Starts when 'then' keyword

A rule that is activated is said to be eligible to be fired.

In the rule consequence, you can write any Java code you want. This code will be executed as regular Java code.

Rule engine doesn't care about the order of the rules that we provide; it will analyze them by their conditional sections

rule "enabled to drive must have a car"
$p: Person( enabledToDrive == true )
not(Car(person == $p))
insert(new Car($p));

rule "person with new car must be happy"
$p: Person()
$c: Car(person == $p)

Wednesday, May 8, 2013

Technical/IT Product Evaluation Criteria

We've been doing a couple of technology/product evaluations recently. Following is a list of useful evaluation criteria that can be considered generally for any kind of product evaluation.
  • Adherence to standards
  • Latest version
  • Resource monitoring
  • Optimization tools and capabilities
  • Testing/Debug capabilities
  • Integration with external systems
  • Integration with frameworks
  • Server/OS compatibility
  • Performance
  • Community (developer and user)
  • Product Support
  • Pricing\Product Model
  • License (tricky restrictions?)
  • Clients
  • Maturity
  • Ratings by independent product evaluators (Forrester, Gartner etc)
  • Road-map
  • Stability
  • Documentation
  • Usage of proprietary technology (Risk of vendor lock-in)
  • Expert Availability
  • Security Criteria
  • Deployment Methods
  • Light weight vs feature rich

Competition for Best Open Source ESB!!

A long story in a nutshell...

We were asked to find out the best open source ESB to be used for a new product our company is designing.

Step 1
Found the key players we need to evaluate. We looked at industry standard ESB evaluations, latest Forrester and Gartner reports.


The Forrester ESB Evaluation -2011

Gartner Magic Quadrant for SOA Infrastructure Projects - 2012

 Short listed candidates,
  • Fuse ESB
  • Mule ESB
  • WSO2 ESB (A Sri Lankan company made it! wow)
Step 2
Decided on evaluation criteria based on the product requirement.

Support multiple protocols
Dynamic configuration
Dynamic Integration of multiple components
Hot deployment
Retry mechanism
Service pooling
Dynamic content based routing
Flexible service coordination
Expose multiple services as a  single service
Web based UI components
Message transformation
Embedding the ESB runtime in a Java application

Step 3
Evaluated the short listed products against the criteria.

Evaluation details are bit too lengthy and techi for a simple blog post.

WSO2 ESB which claimed to be great in performance, which was even selected by eBay for their platform (case study available on net), had to be rejected because they did not recommend hot deployment which we really wanted.

FuseESB which scored great against all the evaluation criteria was chosen without much debate. Being based on Apache Camel was a big plus point.

Inside Intel!

Dreams can come true in the most weird and awkward ways!

I always day dreamed, "if only I was smart enough to work for Google"  (or in some silicon valley company at least :)). The reason had mostly to do with their cool and funky workplaces :)

Well... it did come true in a way (minus the funky workplace part though) when my company (AePona) announced that we are going to be acquired by Intel!!

We did see some Internet talk few days back about it, but Intel?? nahhh it's just some silly gossip; we thought. Our folks had done a pretty good job keeping it  a secret, so yes, we were surprised when they actually asked us to come for this big company wide meeting.

Then WE were asked to keep it a secret, but all of us went home and bragged about it the family :D

Then we had a day with Intel HR where we were given employment contracts from Intel.

We finally had the most awaited Day 1 with Intel on 29th April. Now we are proud owners of Intel mail addresses (something to impress the friends at parties) and have access to Intel intranet.

Really excited!! Whatever Intel has on hold for me, having Intel on my CV would simply rock!!