Programming in the large generally refers to the high-level state transition interactions of a process—BPEL refers to this concept as an Abstract Process. Wikipedia article

Business Process Execution Language

Definition: Business Process Execution Language (BPEL) is an XML-based web service standard designed to define the way in which business processes utilise web services.

BPEL is a convergence of IBM’s Web Service Flow Language (WSFL) and Microsoft’s XLANG. IBM, BEA, SAP, Siebel, and Microsoft jointly developed BPEL in 2002.

Basics of BPEL

The vast majority of modern business processes make at least some use of computer systems and applications, whether it is to perform a transaction, process data or one of any number of other tasks.

In recent years we have seen the development of Service-oriented Architecture (SOA), a framework that allows application modules to share functionality with each other, regardless of the technical differences between them. Through the use of these services it becomes possible for process designers to make use of applications both within and without the enterprise that would otherwise have remained unutilised, allowing them to design faster, more efficient processes.

Business Process Execution LanguageFor enterprises to exploit these applications, however, it is necessary to implement a language framework that enables programming in the large – that is, programming logic that encodes information such as when to send messages, when to wait for messages and when to compensate for failed transactions. This language allows process designers to write code that orchestrates the use of application modules such as web services in business processes.

The BPEL architecture allows process designers to perform these tasks using three tools: a BPEL Designer, a BPEL Engine and a process flow template.

BPEL Designer: The BPEL Designer is a graphical user interface (GUI) used to design a business process. A business process designer inputs the details of the process flow, including details of any web services required during the process. Once the process flow has been defined the BPEL designer generates a process flow template written in the BEPL language.

BPEL Engine: The BPEL Engine (such as IBM’s WebSphere Process Server) is a tool used to execute the instruction provided by a process flow template. In addition to invoking the required web services the BPEL Engine also performs a number of related tasks such as error handling, data mapping, security, etc.

Process Flow Template: The process flow template is a set of instructions written in the BPEL standard that outlines the logic flow of a process. The process flow template, generated by a BPEL designer, acts as an instructional roadmap for the BPEL engine.

Benefits of BPEL

The use of BPEL tools to access the functionality of web services offers a wide range of benefits, including:

Improved Access to Data and Services: Process designs succeed or fail on their ability to efficiently perform repeatable tasks. By enabling access to disparate applications – both within the enterprise and in the form of web services – it is possible to reduce the time necessary to complete a single unit of work, thus reducing the time cycle of the process as a whole.

Additionally, access to web services can enable the increased automation of steps in a business process, reducing the burden on staff members and further increasing efficiency.

Increased Business Agility: The process of implementing new in-house applications and infrastructure can represent an enormous drain on enterprise resources. Just as damaging is the fact that technology rollout can take many months to complete.

Enterprises demand high levels of flexibility from their IT systems, and the slow implementation of in-house applications doesn’t stand up to the task. Conversely, the implementation of web services using BPEL tools is relatively immediate, allowing enterprises to instantly respond to changing market conditions by simply modifying business processes to utilise new web services.

Naturally, this ability to respond quickly to market changes can offer enterprises a new core competency and competitive advantage.

Reduced Integration Expense: One of the problems that service-oriented architecture sets out to solve is that of poor technology integration. For business processes to effectively utilise business intelligence assets within an enterprise it is necessary to ensure that applications can communicate and share data. However, many IT architectures suffer from poor integration and islands of information.

The Service-oriented architecture model reduces the financial burden on enterprises to integrate their computing environment by enabling access to standards-based web services. By relying more heavily on web services an enterprise can reduce the need to invest in a costly EAI program.