Article Preview
TopIntroduction
The Web Services technology, an instantiation of the service oriented computing paradigm (Bichier & Lin, 2006), is becoming a de facto standard for the development of distributed systems on the Internet. The attractiveness of web services are its interoperability and simplicity, based on technologies widely used in the web, like HTTP and XML. Its attributes have been the motivation for many industrial and academic efforts for developing concepts and models for distributed applications based on the service-oriented paradigm.
The service oriented computing - and more specifically Web Services - is a natural evolution of classical concepts such as RPC and technologies like CORBA (Object Management Group, 2002). In the same way of these, web services provided by an organization must be described in an interface that can be understood and invoked by other parts of a distributed system. The main standards for web services, all based on XML, are: SOAP (Simple Object Access Protocol) - protocol for exchange messages among clients and services, which can operate over several communication protocols; the WSDL (Web Service Description Language) - language used to describe web services; and the UDDI (Universal Description, Discovery and Integration) - the repository where the web services are registered in order to be discovered by clients.
The main goal of web services is the interoperability. Thus, many efforts have appeared to define adequate forms of services composition in order to execute complex tasks. These compositions aim the cooperation in the execution of tasks involving multiple organizations (Bichier & Lin, 2006; Peltz, 2003). Specifications like WS-Orchestration (Alves, 2006) and WS-Choreography (Burdett & Kavantzas, 2004) address exactly this problem, specifying mechanisms for definition and execution of tasks that involve several web services.
Current approaches, as the cited above, aim the web services integration through the specification of message flows among the services (control-driven coordination (Papadopolous & Arbab, 1998)). Another approach, which complements the first one, is the web services coordination through the use of a shared data repository (data-driven coordination (Papadopolous & Arbab, 1998)). In this approach, the cooperating services communication is done through a shared data repository, which can be used as data storage or as a coordination mediator, providing decoupled communication. Tuple spaces (Gelernter, 1985) are a popular data-driven coordination model.
In the tuple space model, processes interact through a shared memory abstraction, the tuple space, where generic data structures called tuples are stored and retrieved. The basic operations supported by the tuple space are insertion, reading and removal of tuples. The main attractiveness of this model is its support for communication that is decoupled both in time (communicating processes do not need to be active at the same time) and space (communicating processes do not need to know each others locations or addresses) (Cabri et al., 2000).
There has been some research about the integration of web services using the tuple space model (Bright & Quirchmayr, 2004; Lucchi & Zavattaro, 2004; Maamar et al., 2005; Bellur & Bondre, 2006). The main advantage of this approach is the decoupling among the cooperating services: not even the services interfaces needs to be completely known. This work follows in the same line and proposes a cooperation infrastructure for web services that provides the inherent benefits of the tuple spaces model but that is also dependable.