Static service composition mechanisms are based on a service composition language and an composition engine that achieves service orchestration. In order to ensure a loosely coupled orchestration services are described through a description language such as WSDL (Web Service Description Language) which is a W3C specification and is the most common web service description language. These services can be deployed over a distributed network and localized through their physical addresses that are mentioned in their descriptors. The interactions a service may engage with other services are detailed using an orchestration language. These are a layer on top of WSDL.
Several proposals exist for orchestration languages such as Microsoft's XLANG, UN/CEFACT's ebXML and BPSS. Later, IBM, BEA Systems, Microsoft, SAP AG and Siebel Systems companies combined their effort to provide the BPEL4WS (Language Business Process Execution Language for Web Services). The BPEL4WS or BPEL -for short- specification provides an XML-based language for describing the participating services (partners), the activities and the message exchanges. Connections with external services are referenced through WSDL descriptors. An orchestration engine can then execute the orchestration process described in the BPEL.
The figure depicts the orchestration process. Service can be located in different platforms over a distributed network. Meanwhile, a service registry publishes the service WSDL descriptions. The BPEL describes the services interactions in a graph-like structure in order to give the order of services invocations. Then, an orchestration engine executes the given orchestration process.
Since the inception of service oriented middleware, the service orchestration engines had appeared. Many technological BPEL-based orchestration engines exist, they are the corner stone functionality of ESB solutions as they provide service orchestration. There are open source solutions like Orchestra which can be plugged on Apache Camel ESB, Apache ODE Orchestration Director Engine that is used in the JBOSS ESB, or Petals Link BPEL engine which is Java implemented and which is operating orchestrations of services on top of the Petals ESB. There are also industrial proprietary products such as Oracle's BPEL process manager, Microsoft's BizTalk, IBM's WebSphere.
In a Future Internet context, service orchestrations will deal with very important numbers of services. Therefore, the orchestration languages and engines need the cope with the high distribution requirement, the multi-partnership, and the scalability of services. BPEL is compared with formalisms such as Automata, Petri Net, Process Algebra or OWL-ontology. Some comparisons come up with the restrictions of BPEL and its luck of capturing user requirements such as semantic or QoS information. Moreover, BPEL do not provide automatic composition neither a good scalability since it is based on XML files that can quickly grow in size. However, BPEL is still the most supported orchestration language in service composition engines. It also handles error handling of failures during service orchestrations. Nonetheless, BPEL language need to be extended and transformed to answer distribution issues.