Thursday, August 19, 2010

IBM's BEDL Analysis

I could not agree more with these introductory statements about modern BPM:

data is treated mostly as an afterthought. Activities and their flows are the main abstractions and the data manipulated by the processes is essentially hidden in process variables... (Sony Vaio VGN-FZ18M battery)

Business Entities provide a new basis for specifying business operations that combines data and process at a fundamental level...

A Business Entity includes both an information model for data about the business objects during their lifetime, and a lifecycle model, which describes the possible ways and timings that tasks can be invoked and performed on these objects... (Toshiba PA3535U-1BRS battery)

The lifecycle models are specified using finite state machines, where each state of the machine corresponds intuitively to a business-relevant milestone, or operational objective, that might be achieved by a Business Entity instance. Business Entities define a useful way to understand and track business operations... (Toshiba PA3534U-1BRS battery)

four essential aspects of Business Entities: information model, (macro-level) lifecycle model, access policies based on role and lifecycle state, and notifications of state and data change events...

I like the general structure of the BE metamodel. However, I do find the Lifecycle part kind of weak. I would expect that even at this stage the team would understand and master the need for concepts such as pre/post conditions as well as pre/post actions (not just events, even though events are great of course). Introducing a "pure" state machine concept here is not going to drive the specification very far. Don't get me wrong, I am happy to see a company like IBM scouting the link between Business Entities (and BELs) and BPM (Toshiba PA3399U-2BRS battery).

As you can guess, the part that I really, absolutely, positively don't like is the link with BPEL. Frank Leymann continues propagating his legacy of force fitting an orchestration-based programming language into a "Business Process Whatever Language". It is impressive to see, even here, IBM feels obligated to honor this deeply flawed legacy, nearly 10 years after BPEL/BPML set foot in our industry. To reiterate my position, BPEL is a perfect implementation language for Business Entity Lifecycles, BPEL does not sit on top of BEDL, it sits within (Toshiba PA3399U-1BRS battery). IBM sees BEDL as a set of rules and constraints, not behavior. Yes, the Business Operation Model sections explains:

[A software component supporting BEDL (a BDEL engine if you will) supports] Request to execute a transition of a Business Entity instance from one state to another: This enables a process to move a Business Entity from one state to another. This includes the creation of a BE instance, that is, moving it from the initial state to another state. If the state change request violates the given BE lifecycle, an invalidState fault is thrown. If an access policy concerning guards is violated, an inconsistentData fault is thrown (Toshiba PA3285U-1BRS battery).

Yet, they explain later (can IBM do something without a database lock? -guys we are in 2010):

In a typical interaction between a WS-BPEL process and a BEDL component, a process will request to lock parts of one or more BE instances, access and possibly modify some of the attribute values held by the instance, possibly request a state transition, and then release the locks on the BE instances (Toshiba PA3450U-1BRS battery).

Unfortunately, I fundamentally disagree with that "orchestrated process" view of the world. As I explained several times and recently in my discussion with Keith Swenson, a process is observed, not executed. It is the mere flow of activities performed to transition BEs from one state to another (but controlled by BEL definitions) that can be represented by a process definition (expressed in BPMN). BPEL has nothing to do with "business processes" and will never have anything to do with it because a process is not orchestrated. This view of the world actually eliminates all the positive side effects of adopting a BEL view. BELs can be maintained and versioned very easily without disrupting in flight BELs, which is not the case of processes (Toshiba PA3285U-1BRS battery ).

I'll pass on the BEDL language itself, I have no idea why someone would write a specification with just state and transitions, this is beyond simplistic. It is almost insulting to the readers (IBM ThinkPad R50 battery).

The authors introduce yet another BPEL extensions BPEL4Data, to annotate BPEL definitions with BEDL semantics (states and what not). BPEL is so "extended" that one could finally conclude that its design was completely flawed. Thinking that a "Business Process Whatever Language" needs extensions to deal with Human tasks or Process Data is not just comical, it is ludicrous, and we have not even started to talk about B2B Collaborations (IBM ThinkPad R60 battery).

The REST section makes sense to me, this is what I have tried to explain to the RESTafarians for 3 years now:

Conceptually, Business Entities can be made accessible as REST resources. In the BPM context, the states of Business Entities reflect the progression of business data as it is “touched” by business processes. Thus, the lifecycle of the Business Entity provides a layer of business-relevant governance around the CRUD access of the generic resources managed through the Business Entity. Note we are drawing an analogy to the enablement of the REST “style” with Business Entities. This is independent and unrelated to the usage of REST as a data access protocol. How Business Entities enable REST-style BPM is discussed in more detail in (IBM ThinkPad R51 battery).

Stu? Do you see the light now? Or are we still stuck at the "uniform interface" / CRUD level?

So in all, I have mixed feelings about this new initiative. There is the part of me that say, Yes ! Finally, BPM is going to grow up, a unified Service Oriented, Process Centric, Model Driven programming model is going to emerge quickly from this work and there is the part of me that say, No ! not again, why is IBM stuck on BPEL as a "Business Process Programming Language"? So I don't know where things are going to go (IBM ThinkPad X41 Tablet battery). I would have liked to see a more complete Lifecycle definition, based on an explicit programming model, not just a State/Machine definition, this is way too weak to be useful. I also would have liked to see a direct connection between (human) activities and transitions between states. I am not sure why they go through so much work to publish something as simplistic and flawed as this paper. We are in 2010, guys, this is not 1995. That spec could have been written 15 years ago and even look a bit sexy, in 2010, this is just an homeopathic dose of Business Entity in an ocean of BPEL (ASUS Eee PC 900 Battery).

No comments:

Post a Comment