Middleware & Web Services Purpose of Layered Models mask the heterogeneity of systems provide convenient programming abstraction Layered Protocols: OSI Layers, interfaces, and protocols in the OSI model. TvS 2.2 Middleware Protocols An adapted reference model for networked communication. TvS 2.6 Purpose of Middleware ‘Middleware is primarily a set of programming abstractions developed to facilitate the development of complex distributed systems.’ – Gustavo Alonso Middleware provides… protocols to support general-purpose services to more specific applications, e.g. authentication protocols authorization protocols distributed commit protocols distributed locking protocols high-level communication protocols remote procedure calls (RPC) remote method invocation (RMI) Middleware 1-22 General structure of a distributed system as middleware. TvS 1.24 Old-style Middleware programming models Remote Calls Remote Procedure Calls (RPC) Distributed objects and Remote Method Invocation E.g. Java RMI Common Object Request Broker Architecture (CORBA) Cross-language RMI Other Programming Models Remote event notification Remote SQL access Distributed transaction processing WS architecture: application integration A popular interpretation of Web services is based on IBM’s Web service architecture which is based on three elements: Service requester: The potential user of a service Service provider: The entity that implements the service and offers to carry it out on behalf of the requester Service registry: A place where available services are listed and which allows providers to advertise their services and requesters to query for services The goal is just-in-time integration of applications by discovering and orchestrating network-available services ©Gustavo Alonso, ETH Zürich. How is it ‘bottom up’? The Web service architecture proposed by IBM is based on two key concepts: architecture of existing synchronous middleware platforms current specifications of SOAP, UDDI and WSDL The architecture has a remarkable client/server flavor It reflects only what can be done with SOAP (Simple Object Access Protocol) UDDI (Universal Description and Discovery Protocol) WSDL (Web Services Description Language) UDDI SOAP WSDL ©Gustavo Alonso, ETH Zürich. Message-based Middleware Asynchronous Sending and receiving documents No remote procedure calls or object invocation Less coordination required The message world ©Gustavo Alonso, ETH Zürich. Sources: Middleware Adapted from Introduction to Distributed Systems: Slides for CSCI 3171 Lectures by E. W. Grundke References: [TvS] A. Tanenbaum and M. van Steen Distributed Systems: Principles and Paradigms, Prentice-Hall (2002) <URL:http://www.prenhall.com/divisions/esm/app/author_tanenbaum/custom/dist_sys_1e/> [CDK] G. Coulouris, J. Dollimore and T. Kindberg Distributed System: Concepts and Design, Addison-Wesley (2001) <URL:http://www.cdk3.net/ig/beida/> [ISO] International Organization for Standardization/ International Electrotechnical Commission Standard ISO/IEC 7498-1: Information Technology — Open Systems Interconnection — Basic Reference Model: The Basic Model (Second ed., corrected and reprinted 1996-06-15) Reference number ISO/IEC 7498-1:1994(E) <URL:http://standards.iso.org/ittf/PubliclyAvailableStandards/s020269_ISO_IEC_74981_1994(E).zip> Sources: Web Services Gustavo Alonso, Fabio Casati, and Harumi Kuno. Web Services: Concepts Architectures and Applications (Springer-Verlag, 2004) Slides from <URL:http://www.inf.ethz.ch/~alonso/WebServicesBook>. Gustavo Alonso and Cesare Pautasso. Graduate course given at the University of Lappeenranta,Finland. August 9–13, 2004. <URL:http://www.inf.ethz.ch/personal/alonso/Web-book/Lappeenranta-graduate-course.zip>