# From Service Composition to Mashup Editor: A Multiperspective Taxonomy
## 4 Taxonomy for Services Composition
### Services Composition Using BPEL  
The ability to integrate or compose existing services into new services is the most important functionality provided by SOAs. The service composition must be created taking into account the maintenance of services that rely on other services. The SOA offers a homogeneous environment for the composition in such a way that its components are described in the same protocol and communicate with the same standards for exchanging messages. The composition of services is achieved through a framework that consists of three parts:  
* Models of composition and language: The composition of services means the creation of a workflow that defines the order in which the services are invoked, how the data are transmitted, and how the logic is implemented. A composition model provides a language in which the composite service workflow has to be written. * A development environment: This development environment consists of an editor for the language of composition, such as a programming language integrated development environment (IDE). Figure 6: A simple BPEL script. * A runtime environment: A composition of services is executed by creating instances of the composition script and deploying them in an execution environment (application servers). There are two distinct ways to conceive a composition of services, i.e., the choreography and orchestration:
* _Choreography:_ The choreography of services describes the collaboration between services to accomplish a given goal. The control logic for a choreography is distributed. Each service knows what to perform and which service to contact. Choreography languages allow for a description of protocols that the participants have to follow. In [33], two main choreography approaches were defined: (1) the global model, which describes a protocol from a global view of the messages exchanged by all parties, and (2) the interaction model, in which each service describes its temporal and logical dependencies among the exchanged messages, which is similar to defining a kind of interface. WS-CDL (WS Choreography Description Language) adopts the global model, whereas WSCI and the abstract BPEL process are based on the interaction model. * _Orchestration:_ The orchestration of services allows for a definition of the sequence of services according to a predefined schema and runs based on predefined \"orchestration scripts\". These scripts are often represented by business processes or workflows inside or outside an organization (enterprise). They describe the interactions between applications by identifying the messages and by connecting the logic and invocation sequences. Orchestration describes the way in which Web services can interact together using messages, including the business logic and execution order. These could include different services from different organizations, and the result could be a model of a long-term transactional and multi-stage process. An important difference between orchestration and choreography is that the orchestration is centralized, i.e., the process is under control from the business perspective. However, the choreography provides a comprehensive and collaborative coordination. It describes the role of each participant involved in the application. In summary, we have examined various methodologies for composing services based on different techniques, protocols, and standards. Although these protocols and standards are essential for service composition, they require specialized technical knowledge that is not always accessible to end users.