Web Services Composition using Input/Output Dependency Abrehet Mohammed Omer TU Dresden, Chair for Computer Networks 01062 Dresden, Germany +49 (0) 351 46338263 Abrehet_mohammed.omer@mailbox.tu-dresden.de Alexander Schill TU Dresden, Chair for Computer Networks 01062 Dresden, Germany +49 (0) 351 463-38002 alexander.schill@tu-dresden.de ABSTRACT Composition of web services has received increased interest with emerging application development architecture-Service Oriented Architecture (SOA). Doing composition (semi-) automatically is a crucial aspect in overcoming runtime problems that arise due to dynamic nature of runtime environment. In SOA, applications are created as combinations of independently developed Web services. This leads to emergence of different dependencies among the component services forming the composite service. Given a set of candidate web services and a user’s request description in terms of (I,O,P,E,G), the proposed method can find a composite service that would satisfy user’s requirements in two steps. First, it anticipates the potential direct and indirect dependency between abstract services, and second, it generates process model (PM) automatically using the dependency information. The architecture and application of this method and its application are discussed using a case study. Moreover, a summary of existing techniques and their shortcomings are presented. This approach takes advantages of a sorting algorithm and semantic I/O matching techniques. Categories and Subject Descriptors H.3.5 [Information Storage and Retrieval]: Online Information Services – Web-based services; F.2.2 [Analysis Of Algorithms And Problem Complexity]: Non-numerical Algorithms and Problems-Sequencing and scheduling-Sorting and searching; D.2.m [Software Engineering]: Miscellaneous. General Terms Algorithms, Design, Theory Keywords Automatic service composition, Service dependency. 1. INTRODUCTION Service Oriented Architecture (SOA) is an emerging application development architecture. It uses individual software services to build composite applications. This is possible because smaller and simpler applications can be developed and availed in the form of Web Services (WS). These individual applications can be published, located, and invoked across the web. The ability to invoke and compose services using multiple individual services allows meeting larger & single user requirements that could not otherwise be met with any of the available smaller services. Thus, complex service based applications can be created in an SOA environment by composing individual services. This newly emerging application development architecture (SOA) has increased the demand for web services. And it has called for researches in the area of WS composition. The service composition process comprises of three major activities: 1) Process model creation: Process model is a model that simplifies the representation of activities and their enactment. It is used to specify task control-flow and data-flow among different subtask activities. It can be done manually (by developer at design time), semi-automatically (with the help of template) or automatically (via software). 2) Concrete service discovery and binding: this activity involves finding and binding smaller individual services that accomplish sub-tasks of a composite service. It can be done either at design time or run time. 3) Availing composite service: this refers to availing the composite service to clients and its management. Service composition can be done either statically, or (semi/fully) dynamically. These different levels of automation are determined by how (and who) the process model is created as well as by when the service discovery and binding is done (i.e. at design versus run time). In static composition the process model is created manually and service binding is done at design time. In contrast, dynamic composition process model is created automatically and service binding is done at runtime. All methods between these two extremes are categorized as semi-dynamic [3]. Static service composition has shortcomings in automatically adapting to unpredictable changes in a dynamic run time environment. Unpredictable changes happen, for example, because new services could become available and old services could be made inaccessible on a daily basis. Due to such adaptability shortcomings of static composition methods, nowadays, there is a growing tendency for shifting to dynamic service composition methods. The process of implementing dynamic service composition or tackling problems with static composition mechanisms are not only limited to runtime service binding but it also demands ability for doing process model automatically. Consequently, automation of process model creation is one of the core problems hindering the transition towards automatic service composition and it needs to be solved. Investigation of activities in process model creation shows that, while trying to create composite services, all methods attempt to extract dependencies (relationships). For example, in graph-based and chaining mechanisms of service composition, algorithms mainly search for direct explicit input/output relationships between services [11, 10]]. In workflow-based techniques of service composition the programmer identifies sub- task dependencies manually. The concept of dependency is explored initially for the purpose of managing component-based systems [7]. The work by