Untitled Document
In this article, I will attempt to steer you through the pitfalls of designing
service-oriented architecture (SOA) applications using Business Process Execution
Language or BPEL models.
The problems with designing application systems are many when drawing comparisons
to the work of an architect designing a building. The rules, standards, principles
and techniques utilized in architecture have been clearly defined and well understood
for centuries. The guiding viewpoint for their designs have centered on equal
parts of functionality and aesthetics.
Additionally, the cost of design failure can be catastrophic, thereby leading
to considerable governmental regulation. Unfortunately, we have few of these
benefits when modeling applications for our SOA integration systems.
This is not to say that we don't have some pretty good methodologies and design
principles for guiding our work efforts -- we certainly do. We just don't execute
them effectively or apply them in a timely fashion. Many times we feel rushed
and compelled to meet an urgent emerging need with a quick solution with no
thought to the overall strategy.
Enter process modeling
So what exactly is this concept known as process or BPEL modeling? These models
are the technical progression of SOA modeling from multiple historical predecessors:
flowcharts, data flow diagrams, program structure charts, UML models, Gantt
and PERT charts to name a few.
When fully developed it is simply the process of linking together multiple
deployed web services, which return standardized corporate data into an automated
and sequential workflow. Through the process model, we utilize the deployed
web services to provide the predominant business logic that will generate universal
data relationships.
Then, wrapped around this logic we integrate conditional logic, branching,
fault handling, iterative processing, parallel logic and sequential flow to
complete the process model. Through the use of graphical tools, a designer can
rapidly create a new model, search for services, integrate internal or external
web services, visually represent the flow of activities, add and upgrade new
tasks and deploy to an integration server.
-1-