On the Integration of Heterogeneous Web Service Partners

Similar documents
Service Oriented Architecture

Introduction to Service Oriented Architectures (SOA)

WebSphere Portal Server and Web Services Whitepaper

Lesson 4 Web Service Interface Definition (Part I)

A standards-based approach to application integration

Creating Web Services in NetBeans

A Unified Messaging-Based Architectural Pattern for Building Scalable Enterprise Service Bus

Grid Computing. Web Services. Explanation (2) Explanation. Grid Computing Fall 2006 Paul A. Farrell 9/12/2006

Dynamic e-business with DB2 and Web Services

Transactional Attitudes: Reliable Composition of Autonomous Web Services

Vertical Integration of Enterprise Industrial Systems Utilizing Web Services

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures

Web Services and Seamless Interoperability

Event-based middleware services

Introduction into Web Services (WS)

COMPARISON OF SOAP BASED TECHNOLOGIES:.NET REMOTING AND ASP.NET WEB SERVICES

Service-Oriented Architectures

ENTERPRISE SERVICES. By Paul Fremantle, Sanjiva Weerawarana, and Rania Khalaf

XIII. Service Oriented Computing. Laurea Triennale in Informatica Corso di Ingegneria del Software I A.A. 2006/2007 Andrea Polini

Introduction CORBA Distributed COM. Sections 9.1 & 9.2. Corba & DCOM. John P. Daigle. Department of Computer Science Georgia State University

Outline SOA. Properties of SOA. Service 2/19/2016. Definitions. Comparison of component technologies. Definitions Component technologies

Getting Started with Service- Oriented Architecture (SOA) Terminology

A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles

Principles and Foundations of Web Services: An Holistic View (Technologies, Business Drivers, Models, Architectures and Standards)

Middleware and the Internet. Example: Shopping Service. What could be possible? Service Oriented Architecture

Service-Oriented Architecture and its Implications for Software Life Cycle Activities

How To Create A C++ Web Service

The Service Revolution software engineering without programming languages

Service-Oriented Architecture: Analysis, the Keys to Success!

WEB SERVICES. Revised 9/29/2015

4. Concepts and Technologies for B2C, B2E, and B2B Transaction

Enterprise Application Designs In Relation to ERP and SOA

Middleware Lou Somers

Contracts for Services: Needs and Nonsense!

Agent Approach for Service Discovery and Utilization

Simplifying Processes Interoperability with a Service Oriented Architecture

Internationalization and Web Services

Classic Grid Architecture

Christoph Bussler. B2B Integration. Concepts and Architecture. With 165 Figures and 4 Tables. IIIBibliothek. Springer

Web Services Description Language (WSDL) Wanasanan Thongsongkrit

Middleware and the Internet

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

What is a Web service?

Overview of CORBA 11.1 I NTRODUCTION TO CORBA Object services 11.5 New features in CORBA Summary

SOA Myth or Reality??

Introduction to Web Services

T Network Application Frameworks and XML Web Services and WSDL Tancred Lindholm

Alternatives to SNMP and Challenges in Management Protocols. Communication Systems Seminar Talk 10 Francesco Luminati

Distributed systems. Distributed Systems Architectures

What You Need to Know About Transitioning to SOA

Building Problem Solving Environments with Application Web Service Toolkits

Research on the Model of Enterprise Application Integration with Web Services

A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles

BUSINESS PROCESS AND EBXML - WEB SERVICES INTEGRATION PLATFORM, REQUIREMENTS, ARCHITECTURES, SECURITY

Improving Agility at PHMSA through Service-Oriented Architecture (SOA)

Ibm. Web Services Conceptual Architecture (WSCA 1.0) May By Heather Kreger IBM Software Group

Web Services Implementation: The Beta Phase of EPA Network Nodes

Service-Oriented Architecture and Software Engineering

Oracle Application Server 10g Web Services Frequently Asked Questions Oct, 2006

Architecture of the CORBA Component Model CORBA 3.0

Web Services Manageability Concepts (WS-Manageability)

Service Oriented Architectures

David Pilling Director of Applications and Development

Introduction to Web services architecture

Business Process Execution Language for Web Services

Web Services. Copyright 2011 Srdjan Komazec

Introduction to Service-Oriented Architecture for Business Analysts

Web Services Advanced Topics

Emerging Technologies Shaping the Future of Data Warehouses & Business Intelligence

1 Introduction FEDERATED THROUGH-LIFE SUPPORT, ENABLING ONLINE INTEGRATION OF SYSTEMS WITHIN THE PLM DOMAIN. Abstract. Jonas Rosén

Service Computing: Basics Monica Scannapieco

Developing Java Web Services

Closer Look at Enterprise Service Bus. Deb L. Ayers Sr. Principle Product Manager Oracle Service Bus SOA Fusion Middleware Division

Run-time Service Oriented Architecture (SOA) V 0.1

Definition of SOA. Capgemini University Technology Services School Capgemini - All rights reserved November 2006 SOA for Software Architects/ 2

Enterprise Application Integration (EAI) Architectures, Technologies, and Best Practices

Chapter 6. CORBA-based Architecture. 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications

What is Middleware? Software that functions as a conversion or translation layer. It is also a consolidator and integrator.

Automating the DEVS Modeling and Simulation Interface to Web Services

[MS-SPEMAWS]: SharePoint Web Service Protocol. Intellectual Property Rights Notice for Open Specifications Documentation

Interoperable, Federated Identity Management Frameworks Across Enterprise Architectures. We can do this.

e-gov Architecture Service Interface Guidelines

Web Services - Consultant s View. From IT Stategy to IT Architecture. Agenda. Introduction

ITS. Java WebService. ITS Data-Solutions Pvt Ltd BENEFITS OF ATTENDANCE:

1 What Are Web Services?

1 What Are Web Services?

Cloud Computing & Service Oriented Architecture An Overview

eservices for Hospital Equipment

Ontological Identification of Patterns for Choreographing Business Workflow

Oracle Service Bus. Situation. Oracle Service Bus Primer. Product History and Evolution. Positioning. Usage Scenario

AquaLogic Service Bus

The Use of Existing XML Vocabularies for Web Services

Writing Grid Service Using GT3 Core. Dec, Abstract

Software agents. Web services. and. F. Dignum Utrecht University

Service Oriented Architecture (SOA) Architecture, Governance, Standards and Technologies

WSMB: a middleware for enhanced Web services interoperability

Interacting the Edutella/JXTA Peer-to-Peer Network with Web Services

Lightweight Data Integration using the WebComposition Data Grid Service

5.1 Web Services and their Approach to Distributed Computing

Oracle Service Bus Examples and Tutorials

Transcription:

On the Integration of Heterogeneous Web Service Partners Francisco Curbera, Ignacio Silva-Lepe and Sanjiva Weerawarana IBM T. J. Watson Research Center {e-mail: curbera, isilval, sanjiva @us.ibm.com } August 9, 2001 Abstract A new distributed computing model for the Web is now being defined as a result of several ongoing standardization initiatives. This effort is driven by the need to enable open business to business (B2B) interactions on the Web, and is centered around the development of new vocabularies based on the Extensible Markup Language (XML) standard. The Web Services Description Language (WSDL), the interface definition language of the new computing stack, introduces a new generic model of application interactions. This position paper maintains that, while WSDL promotes the use of both messages and operations, it falls short of supporting the full integration of Web Service interactions, at least as it pertains to the timing and coupling aspects of such interactions. We further maintain that this integration can be better understood and approached from the point of view of a generalized framework for Web Service interactions. 1 Introduction Up until now, the Web has fundamentally been a vehicle for human to application interactions. This situation is already changing, as more and more businesses move their interactions with other business to the Web. It is expected that business to business (B2B) interactions will be dominant in the near future. B2B usage of the Web is bringing a new focus on application to application interactions and on the need to enable distributed computing on the Web. The goal of an application-to-application Web is to formalize today s ad hoc B2B scenarios into a standard platform for application-to-application integration. Ongoing standardization efforts have a common reference on the Extended Markup Language (XML). The Web services model [8, 5] develops a componetized view of Web applications, and could is quickly becoming the articulating concept for the new computing platform. It considers a loosely integrated component model, where a component (a Web service ) encapsulating any type of application logic is described in a standardized interface definition language, the Web Services Description Language, WSDL [4]. Web service components interact over a standard XML messaging protocol that guarantees broad interoperability between components, such as the Simple Object Access Protocol, SOAP [3]. The composition model for Web services is explicitly addressed by a recent proposal, the Web Services Flow Language [6], which builds on the component interaction model defined by the interactions types supported by the WSDL interface definition language (a connection oriented model, see [10]). In this paper we consider interaction models of the Web services framework. In particular, we maintain that a systematic clasification of interactions types according to timing and targeting semantics is a fundamental first step in integrating Web Services interactions. The first interaction type refers to the synchronous and asynchronous nature of the interaction, while the second looks at the difference between purely targeted interactions like remote procedure calls and anonymous interactions like messaging. Appropriate bridging and middleware can enable connectivity across interaction models. This paper is organized as follows. In Section 2 we present a brief description of the Web services standards that are just now emerging. In Section 3 we consider the integration of Web Service partners. Section 4 reviews related work in this area, and Section 5 concludes the paper. 1

2 Service Description Language: WSDL We briefly describe the Web Services Description Language, paying special attention to the characteristics that are more relevant to our discussion. WSDL is an interface definition language that allows pluggable protocol bindings. WSDL interface descriptions are structured in two sections: abstract message and interface definitions, and interface protocol bindings. Abstract messages are composed of one or more parts, each part being defined using a type definition language, typically XML Schema. It is important to note that these message definitions are abstract, and may not necessarily correspond to the actual message as encoded on the wire : additional encoding steps can (and typiclly will) be specified at binding time. Service interfaces are defined as collections of actions offered by a service component. A set of actions or operations constitute an interface or porttype. The operations themselves can follow four patterns, which include not only the traditional provided type of operations, but also required operations. Thus, together with the usual single incoming message ( one-way ), and request-response patterns, WSDL allows a single outgoing message ( notification ), as well as an outgoing message followed by a related response ( solicit-response ). A porttype may contain any mix of these four types of operations. The signature of each operation is defined by its exchange pattern and by the types of the messages being exchanged. Thus, at the abstract interface definition level every operation is modeled as a message exchange, and no hard distinction is made between message and procedure (or RPC) oriented actions. The additional features that distinguish one from the other are considered as binding-time details. The binding part of a WSDL description maps the abstract functionality to a specific set of deployment mechanisms, defining the details of how the service is provided. The types of information that are included in an interface binding include: transport protocol bindings, message envelope formatting details, data serializations mechanisms (message encoding to be used), out of band information like headers, etc. Since many of the interface binding details are different for each or the operations supported, the WSDL bindings use the operation name as a convenient way of matching deployment details to individual actions in the interface. This is the reason why the operation name is required when the operatoin is defined, regardless of whether it has any run-time significance. WSDL bindings are a flexible mechanism to provide deployment information for abstract interfaces, albeit in the current model, the binding element can be easily overloaded with too many unrelated deployment details. 2.1 Service Flow Language: WSFL The Web Services Flow Language [6] is a language for describing Web service compositions. WSFL considers two kinds of compositions: flow models and global models. Flow models provide an abstract representation of the execution of an application and the sequencing of the interactions it conducts with its partners. The model is extremely simple: a flow is a directed acyclic graph, in which the nodes or activities represent either internal processing steps or interactions with other applications. The execution graph controls and represents the sequencing of the interactions between an application and its external partners, and can thus be used to represent application behavior. Global models define compositions of Web services by describing the distributed interaction of a collection of applications. The interaction model in WSFL derives directly from the WSDL interaction model. A service interaction is based on the connection between WSDL operations with similar but dual signatures, where the dual relationship refers to the direction of the operations. The composition of Web services is modeled by so called plug links, representing a connection between two applications through two compatible operations on their interfaces. It is important to observe that this model implies that only one-to-one connections between operations are allowed. 2

3 Considering the Integration of Web Service Partners To understand the problem of integrating heterogeneous Web Service partners, it is useful to consider aspects of heterogeneity. Web clients and services can be synchronous or asynchronous, they can be RPC-based or message-based. Let us consider how these interaction aspects pertain to the domain of Web Services as they, in turn, provide a paradigm for heterogeneous, cross-enterprise application interaction. 3.1 WSDL As we have noted, a Web Service description, as expressed in WSDL, includes a number of abstract specifications of port types consisting of any number of operations, a number of bindings (one for each port type), and a number of service specifications that denote associations of application components, as indicated by their location, with bindings for abstract port types. It is our position that WSDL could better support the integration of heterogeneous Web Services, by addressing the timing and coupling aspects of heterogeneity, as follows: Timing Aspect. The types of a port type s operation, as given by the implicit order and combination of its input and output sub-elements, only focus on either synchronous/two-way or on one-way interactions, and there is no support for the notion of an asynchronous/two-way interaction. Coupling Aspect. Even though the elements of a port type are operations, there is no implied assumption about their interaction coupling aspect. In other words, a port type s operation can represent either a targeted or an anonymous interaction. In particular, an operation can stand for an anonymous invocation by conveying a command pattern or a more generic send pattern. In addition, at the bindings level, WSDL is not explicit either about the timing or coupling aspects of Web Service interactions, although the WSDL specification does include extensibility elements for SOAP, HTTP and MIME bindings. With exception of SOAP used in conjunction with non-synchronous transports, all of these extensions only focus on a choice of synchronous, targeted interactions. But this does not have to be the case. Message-oriented applications are also legitimate Web Service partners, provided the appropriate integration framework is in place. We maintain that by integrating their interaction aspects, Web Service partners (be them RPC-based or Message-oriented applications) can have a homogeneous perspective when interacting with each other. With the two interaction aspects under consideration in hand, we can start to tackle the integration of interacting partners that incorporate both of these aspects. Specifically, we are interested in how such a conceptual framework can leverage the integration of heterogeneous kinds of Web Service partners, in particular, RPC-based and Message-Oriented Applications. We believe that, to concretely address the integration of Web Service interactions, WSDL must be extended with the following features. Specification of asynchronous/two-way operations. There should be an explcit way to distinguish this kind of operation to then enable its integration with synchronous operations. Specification of bindings for interaction coupling choices. It should be possible to specify not only services, but also clients, and even the medium item, to enable meaningful combinations. Specification of correlation information. This information is not necessarily infrastructure-related only. That is, it could be useful as application-level information as well; for example, a social security number. As such, it should be possible to manipulate this information explicitly as well. 3.2 WSFL From a WSFL perspective, the integration becomes a requirement. In this context, the meaning of Web Service partners interacting asynchronously depends on what side of the interaction we are on. For a Web Service client this means that it will use notification operations to send asynchronous requests, and oneway operations to receive asynchronous replies. While this is not the typical kind of client, it is certainly a 3

legitimate flow-like use case. For a Web Service itself, asynchronous interaction means that it will use oneway operations to receive an asynchronous request and notification operations to send asynchronous replies. This use case is even less typical but no less legitimate. In particular, if the two operations involved in the asynchronous interaction are composed in a flow-like kind of service, then their execution contexts may not necessarily be the same and so it is useful to have a well defined meaning for it. Thus, asynchronous clients and asynchronous services are actually natural in flow-like composition, where the operations become the embodiment of activities that are linked within a flow. This means that a well understood conceptual framework for, at least, synchronous/asynchronous interactions is essential. But also, it is not unreasonable to assume that some implementations of WSFL will be message-based while others may not. Thus the full integration framework becomes necessary. 4 Related Work 4.1 CORBA Messaging The CORBA Messaging service [16] defines an Asynchronous Method Invocation (AMI) model to allow CORBA objects to be invoked asynchronously from clients. This way, a CORBA client does not need to wait for an invocation on a CORBA object to complete, it can receive a reply at a later time. A CORBA object is unaware that this is actually happening. From its point of view the invocation could as well have been made synchronously. This illusion is accomplished by transforming a plain IDL interface into an implied IDL interface for clients to use and by poten-tially storing and forwarding requests and replies. Asynchronous invocations can be made in two modes: callback and polling. In the callback mode a callback object reference is passed by a client as part of the invocation. When a reply is ready, the callback object is invoked with it. This callback object is defined as a ReplyHandler in the implied IDL. In the polling mode, the invocation returns an object that can be queried at any time to obtain the status of the outstanding request. This object is defined as a Poller value in the implied IDL. CORBA Messaging is a facility for allowing CORBA clients to interact asynchronously with CORBA servers, both of which are entities that are interacted with via object references, that is, in a targeted fashion. Furthermore, one of the goals of CORBA Messaging is to make AMI opaque to servers. In other words, CORBA servers are always synchronous. 4.2 Container-managed Messaging Container-managed Messaging [17] is aimed at providing a uniform view of either object-oriented components or message-oriented applications to object-oriented components. To this end, an architecture and programming model is defined that approach messaging as a container-managed service. The programming model includes a modes of interaction aspect that is analogous to the interaction timing aspect we present. It also includes a degrees of transparency aspect that addresses the exposure of an objec-oriented component to the messaging domain. The architecture includes artifacts such as a message proxy, a result proxy, a message listener, and a callback proxy. While container-managed messaging presents an approach to integrating object-oriented components and message-oriented applications, it does so from the point of view of the object-oriented component. In particular, the interaction coupling aspect we have presented is not fully addressed. Also, there is no attempt at providing a more neutral specification mechanism for the kinds of interacting partners. References [1] The Business Process Management Initiative, http://www.bpmi.org. [2] BizTalk, http://www.biztalk.org. 4

[3] E. Box, D. Ehnebuske, G. Kakivaya, A. Layman, N. Mendelsohn, H. F. Nielsen, S. Thatte, D. Winer, Simple Object Access Protocol (SOAP) 1.1, May 2000. Available at http://www.w3.org/tr/soap. [4] E. Christensen, F. Curbera, G. Meredith, and S. Weerawarana, Web Services Description Language (WSDL) 1.0, September 2000. Available at http://www.ibm.com/developer/web. [5] IBM Corporation, Web Services Architecture Overview, September 2000. Available at http://www.ibm.com/developer/webservices. [6] IBM Corporation, Web Services Flow Language (WSFL 1.0), available at http://www- 4.ibm.com/software/solutions/webservices/pdf/WSFL.pdf. [7] IBM Corporation and Microsoft Corporation, Web Services Framework, Available at http://www.w3.org/2001/03/wsws-popa/paper51 [8] Microsoft Corporation, XML, Web Services, and the.net Framework, 2000. Available at http://www.microsoft.com/net. [9] J. Siegel, CORBA 3. Fundamentals and Programming, John Wiley & Sons, New York, 2000. [10] C. Szyperski, Component Software : Beyond Object-Oriented Programming Addison-Wesley, Harlow, England, 1997. [11] UDDI Project, UDDI Executive White Paper, September 2000. Available at http://www.uddi.org. [12] UDDI Project, UDDI Technical White Paper, September 2000. Available at http://www.uddi.org. [13] World Wide Web Consortium, XML Schema Part 1: Structures, W3C Candidate Recommendation, October 2000 Available at http://www.w3.org/tr/xmlschema-1. [14] World Wide Web Consortium, XML Protocol Activity, http://www.w3.org/2000/xp/. [15] XAML - Transaction Authority Markup Language http://www.xaml.org. [16] CORBA Messaging, May 1998, OMG TC Document orbos/98-05-05, Available at http://www.omg.org/cgi-bin/doc?orbos/98-05-05 [17] I. Silva-Lepe, C. Codella, P. Niblett, D. Ferguson, Container-Managed Messaging: An Architecture for Integrating Java Components and Message-Oriented Applications, Proceedings of the 37th International Conference on Technology of Object-Oriented Languages and Systems (TOOLS-Pacific 2000), November 2000, Sydney Australia. 5