Business Process Execution Language (BPEL) is a declarative language of XML markups used to describe execution flow of Business Processes in relation to Web Services. BPEL allows to organize Service Oriented Architecture via techniques of composition and coordination of Web Services. With BPEL simple Web Services may be used for building complex services presented as Web Services of higher level.
BPEL language was based on two previous languages used to describe Workflow System - Web Services Flow Language (WSFL), grpah based language developed by IBM nad XLANG which was block language developed by Microsoft. The BPEL language was presented in 2002 and after that Web Service Business Process Execution Language Technical Committee (WSBPEL TC) became responsible for coordination of developement work and publicizing the solutions.

BPEL language allows to compose complex business process from basic elements and uses two approaches - orchestration of services and choreography of services. Orchestration of services assumes existence of central component which coordinates invocations of individual services which thogether compose complete business process. Component services are not aware of being a part of complex business process. On the other hand, service choreography concept does not utilize central coordinator but assumes that each service possesses fragmentary knowledge of structure of business process and by itself communicates with other dependent services. Flow of exectution is realized by mutual invocation of component services. However, orchestration concept is more elastic because services may participate in complex business process without need to modify its source code and secondly, it is possible to realize other scenarios in case of sercvice failure.
Business Process definition in BPEL precise order by which serial or parallel web services are executed. It is also possible to define conditional behaviours and output as result of work of particular service may be an input for another service. BPEL offers traditional loop constructs, variables decalaration, assignment operations, exception handling etc. Usually business processes BPEL are visualized by UML diagrams.BPEL language was based on two previous languages used to describe Workflow System - Web Services Flow Language (WSFL), grpah based language developed by IBM nad XLANG which was block language developed by Microsoft. The BPEL language was presented in 2002 and after that Web Service Business Process Execution Language Technical Committee (WSBPEL TC) became responsible for coordination of developement work and publicizing the solutions.
Steps of BPEL business processes are named as activities and they can be basic or complex. BPEL offers following possibilities to define basic type activities:
- invoking of Web Service - invoke tag
- waiting to business process execution by client -
receive tag - generating response to synchronous invocation - reply tag
- variable assignment - assign tag
- signalizing failures and exceptions - throw tag
- temporary suspension of execution - wait tag
- termination of business process - terminate tag
Above activities may be organized into complex process algorithms by using following operations:
- ordering of activity sequence - sequence tag
- concurrent activity execution - flow tag
- branching of control - switch tag
- loop construct - while tag
- choosing of alternative paths -
pick tag
BPEL allows to define ties with services (partnerLink tag) and variable declaration (variable tag). Definition of concrete process is wrapped by process tags.
A Business Process described in BPEL has a form of XML file. Realization of a such defined process requires a execution platform which is responsible for interpretation of BPEL files and communication with Web Services. In the market we have many choices of BPEL servers - Oracle BPEL Process Manager, Microsoft Biz-Talk, IBM Websphere Business Itegration Server Foundation, Open Storm Service Orchestrator etc.
If someone is interested in this subject, I recommend looking at the detailed language specification , and the tutorial
No comments:
Post a Comment