CS 493/693: Distributed Systems Programming V. “Juggy” Jagannathan CSEE, West Virginia University February 07, 2005 Chapter 5: Web Services* Web Services: Concepts, Architectures and Applications G. Alonso et. al. Springer Verlag * Pictures and graphics in this presentation were provided by the authors of the book shown above. Defining Web Services By the UDDI consortium: “self-contained, modular business applications that have open, Internet-oriented, standards-based interfaces.” By W3C: “a software application identified by a URI, whose interfaces and bindings are capable of being defined, described, and discovered as XML artifacts. A web service supports direct interactions with other software agents using XML-based messages exchanged via Internet-based protocols.” Webopedia definition: “a standardized way of integrating Web-based applications using the XML, SOPA, WSDL, and UDDI open standards over an Internet-protocol backbone. XML is used to tag the data, SOAP is used to transfer the data, WSDL is used to describe the services available, and UDDI is used for listing what services are available” More specifically: It is NOT an URL with a CGI script behind it to take in arguments and return a web page as a result – though some have characterized such a system as providing a web-based service, hence a web service. Motivating the Need for B2B Integration Example problem Supply chain automation – integration of multiple, independent, heterogeneous systems spanning multiple business entities customer supplier web server internal procurement requests internal infrastructure internal infrastructure web server Figure 5.1. internal infrastructure warehouse Copyright Springer Verlag Berlin Heidelberg 2004 B2B interactions occur by accessing Web pages, filling Web forms, or via email. Limitations of Conventional Middleware in B2B Integration In cross-organizational interactions, middleware has to be under the control of one of the interacting organization This is not practical in real world. No one company will agree to such a scheme. Figure 5.2 third party a “global” workflow is executed here WfMS Figure 5.2. WfMS adapter the combination of message broker and adapters enables interoperability message broker customer supplier customer’s adapters internal procurement requests internal infrastructure Copyright Springer Verlag Berlin Heidelberg 2004 supplier’s adapters warehouse warehouse’s adapters internal infrastructure internal infrastructure Point-to-point integration across companies customer supplier message broker XYZ message broker XYZ customer’s adapters supplier’s adapters internal infrastructure internal infrastructure Figure 5.3. Copyright Springer Verlag Berlin Heidelberg 2004 Result of an absence of standardized middleware platform customer warehouse another party (XYZ) yet another party (ABC) middleware for supplier-customer interaction middleware for supplier-warehouse interaction middleware for supplier-XYZ interaction middleware for supplier-ABC interaction supplier’s adapters supplier’s adapters middleware for integrating the middleware supplier supplier’s adapters internal infrastructure Copyright Springer Verlag Berlin Heidelberg 2004 Figure 5.4. Problems with conventional middleware to address cross-organizational integration In Enterprise Application Integration interactions are typically short lived – not true for cross-organizational interactions Interactions in cross-organization integration typically handled as asynchronous transactions 2 Phase commit protocols are not that useful Trust relationships become problematic B2B integration before web services Point-to-point integration – costly due to numerous conflicting approaches (.NET, CORBA, EJB etc) EDIFACT and messaging standards WALMART was successful in implementing supply-chain inventory order system – WALMART can justify expensive systems. One-of systems, hard to implement and costly to implement “The gap between what web provides (HTTP, XML) and what application integration requires that Web services are trying to fill.” pg. 131, Web Services book. B2B Integration with Web Services Contributions of web services Service-oriented architectures Addressing loosely-coupled peer-to-peer systems Redesign of middleware protocols to support decentralized execution and multiple trust domains Standardization customer Web service internal procurement requests internal infrastructure interactions based on protocols redesigned for peer to peer and B2B settings internal functionality made available as a service Copyright Springer Verlag Berlin Heidelberg 2004 supplier languages and protocols standardized, eliminating need for many different middleware infrastructures (need only the Web services middleware) Web service internal infrastructure Web service internal infrastructure warehouse Figure 5.5. Web service Web service Web service middleware internal service internal service Company A (provider) wide area network (Internet) Web Services and EAI client middleware internal service internal service Company B (client) Figure 5.6. Copyright Springer Verlag Berlin Heidelberg 2004 Web services to integrate intra-enterprise applications Company A (or a LAN within Company A) integrating application (contains the composition logic) Web service-enabled broker sendmail application SmartQuotation assumes all back-end systems are accessible as Web services Copyright Springer Verlag Berlin Heidelberg 2004 DBMS SmartForecasting applications XYZ Figure 5.7. Web service description vertical standards business protocols interfaces common base language directories properties and semantics E.g. RosettaNet UDDI WSCL, BPEL WSDL XML UDDI Figure 5.8. Copyright Springer Verlag Berlin Heidelberg 2004 Service Interactions WS-Transaction middleware properties (horizontal protocols) WS-Coordination protocol infrastructure (meta-protocols) SOAP & WS-Security HTTP basic and secure messaging transport Figure 5.9. Copyright Springer Verlag Berlin Heidelberg 2004 Web Services composition A service that is implemented using local system resources is called “basic web service” A service that relies on other web services is labeled “composite web service.” Whether a web service is composite or basis is simply an implementation issue transparent to the “client” or “user” of the service Business Process Execution Language is one of the standards being used for composing web services. Two facets of Web Services Architectures Company D (client) Company A (provider) client Web service Web service interface Access to internal systems internal architecture Web service external architectur e Web service Web service Company C (provider) middleware internal service internal service Copyright Springer Verlag Berlin Heidelberg 2004 Web service Web service Company B (provider) Figure 5.10. Conventional Middleware Tiers other tiers service interface integration logic middleware service interface service interface integration logic integration logic middleware middleware resource manager resource manager Copyright Springer Verlag Berlin Heidelberg 2004 resource manager resource manager Figure 5.11. Internal Architecture: Web services layered on top of middleware Company A (service provider) Web service interface clients from other companies access to internal systems Web services middleware (internal) service interface integration logic conventional middleware (includes middleware services) other tiers Copyright Springer Verlag Berlin Heidelberg 2004 other tiers Conventional middleware provides lots of services (load balancing, transaction support, etc). Current Web services middleware is quite poor in this respect. Figure 5.12. External Architecture of Web Services Company A (service requester) Company B (service provider) Web service Web service client Web services middleware (internal) 3. interact Web services middleware (internal) other tiers other tiers 2. find the abstraction and infrastructure provided by the registry are part of the external middleware 1. publish the service description service descriptions Company C (directory service provider) Copyright Springer Verlag Berlin Heidelberg 2004 Figure 5.13. Web Service Architecture augmented by Peer-to-Peer protocol extensions external middleware Company A (service requester) Web service client internal middleware other tiers Company B (service provider) Web service transaction mgmt transaction mgmt other protocol infrastructure other protocol infrastructure composition engine composition engine internal middleware other tiers service descriptions Copyright Springer Verlag Berlin Heidelberg 2004 Company C (directory service provider) Figure 5.14.