Current Solutions for Web Service Composition
service-oriented computing (SOC), developers use services as fundamental elements in their application-development processes. Services are platform- and network-independent operations that clients or other services invoke. To operate in an SOC environment, services must overtly define their properties in a standard, machine-readable format. SOC thus offers three native capabilities: description, discovery, and communication. Web services are a typical SOC example: developers implement SOC native capabilities using Web Services Description Language (for description), Universal Description, Discovery, and Integration (for discovery), and SOAP (for communication). To create applications, SOC developers use service composition, which they introduce on top of SOC’s native capabilities. Developers and users can then solve complex problems by combining available basic services and ordering them to best suit their problem requirements. Service composition accelerates rapid application development, service reuse, and complex service consummation. Currently, however, service composition isn’t standardized, nor does it include definitions of the key requirements that every composition approach must satisfy (such as scalability, dependability, and correctness). If the SOC paradigm is to succeed and become the dominant architecture of future distributed systems, we must provide a stable and dependable service composition solution. Here, we offer a survey of existing proposals for Web service composition, and compare them with respect to four key requirements, which we discuss in the next section. By offering this overview and systematization of key properties, as well as a constructive critique of existing approaches, we hope to help service-composition designers and developers focus their efforts and deliver more usable and durable solutions, while also addressing the technology’s critical needs.