Middleware emergence Distributed computing evolved from single-tier (terminal/mainframe) to 2-tier (client-server) to n-tier architecture To support heterogeneous environments open networking standards were introduced (i.e. OSI) How do we build/connect applications over a network? Answer: middleware 1 N-tier architecture More scalable architecture that separates processing to different servers 2 What is Middleware? Middleware enables applications running across multiple platforms to communicate with each other . Middleware shields the developer from dependencies on Network Protocols, OS and hardware platforms. Middleware is a software layer that lies between the operating system and the applications on each site of the system. 3 ODBC – primitive middleware? Example of primitive middleware: ODBC Client application is shielded from the details of the database implementation Not true middleware: defines client side software only 4 Types of Middleware Homegrown Middleware Solutions RPC (Remote Procedure Calls) Object-Oriented MW - ORB (Object Request Brokers) MOM (Message Oriented Middleware) Transaction Processing Monitors 5 Homegrown Middleware Customized to meet specific needs Needs substantial investments Pros Can meet specific needs Cons Not cost effective Lacks scalability 6 Remote Procedure calls Procedure/Function Oriented Follows the Request/Reply Model Mode of Communication is synchronous Provides Location/Platform transparency Technologies: ONC RPC, DCE/RPC 7 Object Oriented Language Independent Provides Location and Access transparency Mode of Communication is Synchronous Competing Standards (CORBA, DCOM, RMI) 8 Message Oriented Data is transferred between applications as a message Mode Of Communication :- Asynchronous Basic Components of MOM 1.Message (Information that needs to be transferred) 2.Queue (A container used to store and distribute messages) Types Of MOM 1. Message Queuing (Store and Forward) 2. Publish / Subscribe Products: IBM WebSphere MQ, TIBCO Rendezvous App-1 Queue App-2 9 Transaction Processing Monitors Transaction Processing Monitors are used for coordinating and monitoring the efforts of various application in a distributed environment. Products: Tuxedo, IBM CICS, Microsoft Transaction Server App1 Client App App2 TPM App3 10 Property of Transactions Transaction is a collection of operations that should be treated as a single logical operation. To ensure reliable transactions ACID properties are needed 11 Property of Transactions ACID properties: A: Atomicity: either the entire set of operations happens or none of it does. 12 Property of Transactions ACID properties: A: Atomicity: either the entire set of operations happens or none of it does. C: Consistency: the set of operations taken together should move the system from one consistent state to another. 13 Property of Transactions ACID properties: A: Atomicity: either the entire set of operations happens or none of it does. C: Consistency: the set of operations taken together should move the system from one consistent state to another. I: Isolation: even though multiple transactions may operate concurrently, there is a total order on all transactions. Stated another way: each transaction perceives the system as if no other transactions were running concurrently. 14 Property of Transactions Transaction is a collection of operations that should be treated as a single logical operation. ACID properties: A: Atomicity: either the entire set of operations happens or none of it does. C: Consistency: the set of operations taken together should move the system from one consistent state to another. I: Isolation: even though multiple transactions may operate concurrently, there is a total order on all transactions. Stated another way: each transaction perceives the system as if no other transactions were running concurrently. D: Durability: even the face of a crash, once the system has said that a transaction completed, the results of the transaction must be permanent. 15 Why Web Services? Lack of standardization in middleware Web services basic platform is available everywhere (XML, HTTP) Can serve as an integration tool for different business applications across organization boundaries without regards to what each business uses as the internal platform 16 Why Web Services? Can serve as an integration tool for different business applications across organization boundaries without regards to what each business uses as the internal platform 17 What are Web Services? Web services provide a standard means of interoperating between different software applications, running on a variety of platforms. 18 Web Services Web services provide a standard means of interoperating between different software applications, running on a variety of platforms. W3C Working Group definition: A Web service is a software system designed to support interoperable machine-to-machine interaction over a network… 19 Web Services Web services provide a standard means of interoperating between different software applications, running on a variety of platforms. W3C Working Group definition: A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). 20 Web Services Web services provide a standard means of interoperating between different software applications, running on a variety of platforms. W3C Working Group definition: A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards 21 Web Services Specifications for Web Services are defined as modules: SOAP WSDL UDDI Basic platform is XML over HTTP 22 Web Services 23 XML Simple markup, data description language (based on SGML) Human-readable Customizable schema can be used to define atributes and elements XML can be used to created custom XML-based languages and services XML-based messages transported over HTTP serve as the basic platform for Web Services 24 SOAP XML-based protocol defining message format One-way asynchronous technology Can use a variety of message passing styles: RPC, publish/subscribe Primary underlying protocol is HTTP, but others can be used (SMTP) 25 WSDL XML-based language Defines/describes Web services interfaces, data and message types, interaction patterns and protocol mappings 26 UDDI Web Services Registry (of WSDL documents) Protocol for discovering and publishing Web Services UDDI registry is accessed by XML-based SOAP messages 27