by Valérie Issarny (INRIA Rocquencourt, France)
The Web has led to the introduction of a significant number of technologies towards interoperability, relevant to most areas of computer science, over the last few years. I this context, the Web Service Architecture is expected to play a prominent role in the development of the next generation distributed systems due to the architectural support for integrating applications over the Web, which makes it particularly attractive for the development of multi-party business processes. This is further witnessed by the strong support from industry and the huge effort in the area.
The Web Service architecture targets the development of applications based on the XML standard [W3C-XML], hence easing the development of distributed systems by enabling the dynamic integration of applications distributed over the Internet, independently of their underlying platforms. Currently, the main constituents of the Web Service architecture are the following: (i) WSDL (Web Services Description Language) that is a language based on XML for describing the interfaces of Web Services [W3C-WSDL];(ii) WSCL (Web Services Conversation Language) that is a language for specifying business-level conversations supported by Web Services [W3C-WSCL]; (iii) SOAP (Simple Object Access Protocol) that defines a lightweight protocol for information exchange [W3C-SOAP]. The Web Service architecture is further conveniently complemented by UDDI (Universal Description, Discovery and Integration) that allows specification of a registry for dynamically locating and advertising Web Services [UDDI].
There already exist various platforms that are compliant with the Web Service architecture, including .NET [MS-NET] and J2EE [SUN-J2EE]. In addition, integration within CORBA is being addressed [OMG-WS]. However, there clearly is a number of research challenges in supporting the development of distributed systems based on Web Services. One such challenge relates to the effective usage of Web Services in developing business processes, which requires support for composing Web Services in a way that guarantees dependability of the resulting composed services. Solutions that are being investigated towards this goal subdivide into: (i) the definition of XML-based languages for the specification of Web Services composition, and (ii) revisiting classical transactional support so as to cope with the specifics of Web Services (e.g., crossing administrative domains, Web latency).
Composing Web services relates to dealing with the assembly of autonomous components so as to deliver a new service out of the components primitive services, given the corresponding published interfaces. In the current Web Service architecture, interfaces are described in WSDL and published through UDDI. However, supporting composition requires further addressing: (i) the specification of the composition, and (ii) ensuring that the services are composed in a way that guarantees the consistency of both the individual services and the overall composition. This puts forward the need for a high-level specification language of Web Services that is solely based on the components of the Web Service architecture and that is as much as possible declarative. Defining a language based on XML then appears as the base design choice for specifying the composition of Web Services.
A first requirement for the XML-based specification of Web Services is to enforce correct interaction patterns among services. This lies in the specification of the conversations that are assumed by the Web Services implementation for the actual delivery of advertised services. In other words, the specification of any Web Service must define the observable behaviour of a service and the rules for interacting with the service in the form of exchanged messages. Such a facility is supported by a number of XML-based languages: WSCL from W3C [W3C-WSCL], WSFL [WSFL], Microsofts XLANG [XLANG], and Web Service Choreography Interface (WSCI) [WSCI]. While WSCL is the current W3C standard for specifying conversations associated with Web Services in the context of the Web Services architecture, the other languages mainly differ from WSCL by offering additional capabilities for specifying a sequence of actions over services in a way similar to a workflow schema in the case of WSFL, and for specifying the external behaviour of services with respect to failure occurrences in the case of XLANG and WSCI.
Given the specification of conversations associated with individual Web Services, the composition (also referred to as integration or aggregation) of Web Services may be specified as a graph (or process schema) over the set of Web Services, where the interactions with any one of them must conform to the conversations associated with them. The specification of such a graph may then be: (i) automatically inferred from the specification of individual services as addressed in [Narayanan & McIllraith 2002], (ii) distributed over the specification of the component Web Services as in the XL language [Florescu et al. 2002], or (iii) be given separately as undertaken in [BPEL] [WFSL], [BPML], [Casati et al. 2001], [Fauvet et al. 2001], and [Yang & Papazoglou 2002]. The first approach is quite attractive but restricts the composition patterns that may be applied, and cannot thus be applied in general. The second approach is the most general, introducing an XML-based programming language. However, this makes more complex the reuse of composed Web Services in various environments since this requires retrieving the specification of all the component Web Services prior to the deployment of the composed service in a given environment. On the other hand, the last approach supports quite directly the deployment of a composed service from its specification by clearly distinguishing the specification of component Web Services (comprising primitive components that are considered as block-box components and/or inner composite components) from the specification of composition. Execution of the composed service may then be realized by a centralized service provider or through peer-to-peer interactions [Benatallah et al. 2002].
Transactions have been proven successful in enforcing dependability in closed distributed systems. The base transactional model that is the most used guarantees ACID (atomicity, consistency, isolation, durability) properties over computations. However, such a model is hardly suited for making the composition of Web Services transactional for at least two reasons: (i) the management of transactions that are distributed over Web Services requires cooperation among the transactional support of individual Web Services if any-, which may not be compliant with each other and may not be willing to do so given their intrinsic autonomy and the fact that they span different administrative domains; (ii) locking accessed resources (i.e., the Web Service itself in the most general case) until the termination of the embedding transaction is not applicable to Web Services, still due to their autonomy, and also the fact that they potentially have a large number of concurrent clients that will not stand extensive delays.
Enhanced transactional models may be considered to alleviate the latter shortcoming. In particular, the split model (also referred to as open-nested transactions) where transactions may split into a number of concurrent sub-transactions that can commit independently allows reducing the latency due to locking. Typically, sub-transactions are matched to the transactions already supported by Web Services (e.g., transactional booking offered by a service) and hence transactions over composed services do not alter the access latency as offered by the individual services. Enforcing the atomicity property over a transaction that has been split into a number of sub-transactions then requires using compensation over committed sub-transactions in the case of sub-transaction abortion. Using compensation comes along with the specification of compensating operations supported by Web Services for all the operations they offer. Such an issue is in particular addressed by XLANG [XLANG] and WSCI [WSCI]. However, it is worth noting that using compensation for aborting distributed transactions must extend to all the participating Web Services (i.e., cascading compensation by analogy with cascading abort), which is not addressed by XLANG nor WSCI due to their focus on the behavioural specification of individual Web Services for assisting their composition. An approach that accounts for the specification of the transactional behaviour of Web Services from the standpoint of the client in addition to the one of the service is proposed in [Mikalsen et al. 2002]. This reference introduces a middleware whose API may be exploited by Web Services clients for specifying and executing a (open-nested) transaction over a set of Web Services whose termination is dictated by the outcomes of the transactional operations invoked on the individual services. Finally, a more general solution is undertaken in [WSC], which allows the abstract specification of coordination protocols among Web Services, including the specification of the coordinetion in the presence of failures. Dependability then relies on the exploitation of specific coordination types, such as Web Services Transaction [WST]. An approach that is specifically based on forward error recovery is further presented in [Tartanaglu et al., 2002].
The aforementioned references concentrate on the specification of the transactional behaviour of Web Services. Complementary work is undertaken in the area of transaction protocols supporting the deployment of transactions over the Web, while not imposing long-lived locks over Web resources. Existing solutions include THP (Transaction Hold Protocol) from W3C [W3C-THP] and BTP from OASIS [OASIS-BTP]. The former introduces the notion of tentative locks over Web resources, which may be shared among a set of clients. A tentative lock is then invalidated if the associated Web resource gets acquired. The BTP protocol introduces the notion of cohesion, which allows defining non-ACID transactions by not requiring successful termination of all the transactions actions for committing.
The development of dependable distributed
systems based on the Web Services Architecture is an active area of research
that is still in its infancy. A number of research challenges are thus yet to
be addressed to actually enable the dependable composition of Web Services.
Issues include the thorough specification of individual Web Services and of
their composition, so as to ensure the dependability of the resulting systems
as well as to allow the dynamic integration and deployment of composed services.
Also, associated dependability mechanisms should be devised
to enable full exploitation of the dependability properties enforced by individual Web Services and also to deal with the specifics of the Web. Another issue relates to allowing the deployment of Web Services on various platforms, ranging from resource-contrained devices to servers.
The ARION system is aiming to provide a new generation of Digital Library e-services of search and retrieval of objects in scientific collections, such as, data sets, simulation models and tools necessary for statistical and/or visualization processing. These collections may represent application software of scientific areas, they reside in geographically disperse organizations and constitute the system content. The user, as part of the retrieval mechanism, may dynamically invoke on-line computations of scientific data sets when the latter are not found into the system. Thus, ARION provides the basic infrastructure for accessing and producing scientific information in an open, distributed and federated system. More advanced e-services, which depend on the scientific content of the system, can be built upon this infrastructure, such as decision making and/or policy support using various information brokering techniques.
DsoS is a European IST project (IST-1999-11585) that aims to develop significantly improved means for composing a dependable "system of systems" from a set of largely autonomous component computer systems. The project focuses on the design (type, placement, properties) of the interfaces that form the common boundaries between component systems, and the associated validation and dependability assessment activities.
In this project, we are designing and developing a backwardly OGSA-compatible Grid services platform using our OpenCOM/ OpenORB technology as a hosting environment. The platform will incorporate key results and techniques from the last five years of research in object-based middleware (e.g. in performance engineering). It will also feature an programming model that integrates OGSA with the facilities and services
found in object-based middleware environments so that application developers can leverage these from OGSA without having to learn multiple APIs. Furthermore, we will exploit the inherent extensibility of the OpenCOM-based hosting environment to yield an OGSA platform that can naturally evolve to support new binding types and exploit useful generic services that are available in a number of specific environments (web-services, CORBA services, Jini services, etc.). We will also exploit the adaptability of the hosting environment to support predictable resourcing of bindings to enable e-Science applications to be able to specify QoS levels and have such specifications meaningfully supported.
The Information Cities project models aggregation/segregation patterns in a virtual world of infohabitants (humans, virtual firms, on -line communities and software agents acting on their behalf).
The overall objective of this project is to provide a distributed link service for mobile users of distributed hypermedia (Web) information systems.
Ozone, an IST project whose goal is to investigate, define and implement/integrate a generic framework to enable consumer oriented ambient intelligence applications.
The Patia project aims to carry out studies into data placement and request scheduling to prototype an adaptive webserver management system.
Success of the European "Global Monitoring for Environment and Security" (GMES) initiative hinges on the existence of a suitable architecture for services, information and communication fluxes. Objectives of TEASE study is to develop such an European-scale architecture:
- innovative and optimally designed for operational environment, risks and security management, with an optimised use of state-of-the-art information technologies
- featuring a high capability to inter-operate pre-existing parts of various types: data, services, actors, etc originally not designed to interface to each other.
- integrating organisational aspects and favouring market opportunities
A development plan, starting by a pilot-project, will target a quick and reliable implementation of GMES network.
In this project we exploit knowledge about recent requests at web-proxies, obtained from a statistical study of request logs, to improve the performance (response time and hit rate) of web proxy servers. We do so by obtaining, using statistical techniques, a classification of the proxy requests based on the requested object size. This classification then forms the basis for a class-based caching approach and a weighted-fair priority queueing approach. Analytical studies, simulations and a prototype implementation show the advantages of our approach, which can be implemented in a very effective way (with lower costs than competing caching and scheduling strategies). Our approach also allows for an adaptive scheduling and caching scheme (with which we are currently experimenting).
[Benatallah et al. 2002] B. Benatallah, M. Dumas, M-C. Fauvet, and F.A. Rabhi. Towards patterns of Web Services composition. In Patterns an skeletons for parallel en distributed computing. Springer, 2002.
[BPEL] Business Process Execution Languages for Web Services, Version 1.0. IBM Report. http://www.ibm.com/developerworks/library/ws-bpel/
[BPML] A. Arkin. Business Process Modeling Language, BPML 1.0 Last Call Working Draft, 2002.
[Casati et al. 2001] F. Casati, M. Sayal, and M-C. Shan. Developing E-services for composing E-services. In Proc. Of CAISE2001, LNCS 2068, pages 171-186, 2001.
[Fauvet et al. 2001] M-C. Fauvet, M. Dumas, B. Benatallah, and H-Y. Paik. Peer-to-peer traced execution of composite services. In proc. Of TES2001, LNCS 2193, pages 103-117, 2001.
[Florescu et al. 2002] D. Florescu, A. Grunhagen, and D. Kossmann. XL: An XML language for web service specification and composition. In Proceedings of the WWW'02 Conference, 2002.
[Kuno et al. 2001] H. Kuno, M. Lemon, A. Karp, and D. Beringer. Conversations+Interfaces= Business logic. In Proc. Of TES 2001, LNCS 2193, pages 30-43, 2001.
[Mikalsen et al. 2002] T. Mikalsen, S. Tai and I. Rouvellou. Transactional attitudes: Reliable composition of autonomous Web services. In proc. Of ISDN2002, 2002.
[MS-NET] Microsoft. .NET. http://msdn.microsoft.com/net/.
[Narayanan & Mc Ilraith 2002] S. Narayanan and S. McIlraith. Simulation, verification and automated composition of web services. In Proceedings of the WWW'02 Conference, 2002.
[OASIS-BTP] OASIS Committee Specification. Business Transaction Protocol, Version 1.0, 2002.
[OMG-WS] OMG. Corba Web Services. OMG TC Document orbos/2001-06-07. http://www.omg.org. 2001.
[Romanovsky et al. 2002] A. Romanovsky, P. Periorellis, and A.F. Zorzo. On Structuring Integrated Web Applications for Fault Tolerance. Technical Report 765, Department of Computing Science, University of Newcastle upon Tyne, 2002
[Tartanoglu et al., 2002] F. Tartanoglu, V. Issarny, A. Romanovsky, N. Levy. Dependability in the Web Service Architecture. In Proceedings of the ICSE Workshop on Architecting Dependable Systems, May 2002, Orlando, FL, USA. http://www-rocq.inria.fr/arles/doc/doc.html
[UDDI] UDDI. UDDI, Version 2.0, API Specification. Technical report, 2002. http://www.uddi.org.
[SUN-J2EE] Sun Microsystems Inc. Java 2 Platform, Enterprise Edition (J2EE). http://java.sun.com/j2ee/.
[W3C-SOAP] W3C. Soap version 1.2. Technical report, The World Wide Web Consortium, 2002. http://www.w3.org/2000/xp/Group/.
[W3C-THP] W3C. Tentative Protocol Part 1: White Paper, 2001.
[W3C-WSCL] W3C. Web services conversation language (WSCL), version 1.0. Technical report, The World Wide Web Consortium, 2002. http://www.w3.org/TR/wscl10/.
[W3C-WSDL] W3C. Web services description language (WSDL), version 1.1. Technical report, The World Wide Web Consortium, 2001. http://www.w3.org/TR/wsdl, Working draft version 1.2 available at http://www.w3.org/TR/2002/WD-wsdl12-20020709.
[W3C-XML] W3C. Second Edition of the Extensible Markup Language (XML). 1.0 Specification. W3C Recommendation. http://www.w3.org/TR/2000/REC-xml-2001006. 2000.
[WSC] Web Services Coordination. IBM Report. http://www.ibm.com/developerworks/library/ws-coor/
[WSCI] A. Arkin, S. Askary, S. Fordin, W. Jekeli, K. Kawagushi, D. Orchard, S. Poligliani, K. Riemer, S. Struble, P. Takacsi-Nagy, I. Trickovic, and S. Zimeck. Web Service Choreography Interface 1.0.
[WSFL] F. Leymann. Web Services Flow Language (WSFL 1.0). IBM Software Group. http://www-4.ibm.com/software/solutions/webservices/pdf/WSFL.pdf. 2001.
[WST] Web Services Transaction. IBM Report. http://www.ibm.com/developerworks/library/ws-transpec/
[XLANG] S. Thatte. XLANG: Web Services for Business Process Design. Microsoft Corporation. http://www.gotdotnet.com/team/xml_wsspecs/xlang-c/default.htm. 2001.
[Yang & Papazoglou 2002] J. Yang
and P. Papazoglou. Web component: A substrate for web service reuse and composition.
In Proceedings of CAISE'02, pages 21-36, 2002.
by Rogério de Lemos (firstname.lastname@example.org)
Last updated 4 November, 2002