InformIT: Achieving Separation of Concerns Using BPEL

Say you buy a shrink-wrapped package with n features. If this software is integrated into a BPEL (Business Process Execution Language) framework, then it should theoretically be possible for you to swap out any of the n features and replace them with the web service (or downloaded) code of your choice. In this article, software developer Stephen Morris reviews the idea and merits of separating software features from business processes in the context of BPEL.  

The vast majority of software producers focus exclusively on domain-specific solutions. In this way, software is becoming more customized and, correspondingly, less generic. While some end users (particularly large corporate customers) may be able to request features that closely fit their business processes, it’s likely that most of us end up with a poor fit between our deployed software and our business process needs. The end result is massive cross-vendor duplication of software development that tries to implement code as well as business process logic.

An interesting separation of concerns is becoming possible by the use of BPEL. BPEL allows for business process logic to be expressed in a specific language and to be tied into external software. This reduces (and potentially eliminates) the need to code business process logic in a traditional programming language (such as Java or C++/C). In turn, this provides a clear separation between software features and business processes. By taking the business process logic (e.g., workflow management) out of the application code, the latter becomes simpler and more focused.

In this article, I’ll review the idea and merits of separating software features from business processes in the context of BPEL. Along the way, we’ll see how this leads neatly to the need for highly generic software. The latter is (in my opinion) a pressing concern for all software developers.

Read the complete article by Stephen B. Morris, InformIT.

XML.org Focus Areas: BPEL | DITA | ebXML | IDtrust | OpenDocument | SAML | UBL | UDDI
OASIS sites: OASIS | Cover Pages | XML.org | AMQP | CGM Open | eGov | Emergency | IDtrust | LegalXML | Open CSA | OSLC | WS-I