Middleware Week 4 1 Outline ⚫ Why Middleware ⚫ Types of Middleware ⚫ Concept Building a distributed System How to integrate many distributed components into one system? 3/19 Coordination/Communication Write your own communication/coordination layer? ⚫ Use middleware? ⚫ ■ Which middleware? Feature? ■ Paradigm? ■ 4 Write your Own communication/coordination layer 5 ⚫ Easy to develop prototype ⚫ Difficult to scale ⚫ Difficult to maintain ⚫ Performance issues Middleware 1. 2. Remote Procedure Calls ⚫ RPC Distributed Objects ⚫ 3. Resource-Orientation ⚫ 4. E.g. ROA Service-Orientation ⚫ 6 E.g. CORBA E.g. SOA Types of Middleware ⚫ Transaction Oriented ⚫ Message Oriented ⚫ Remote Procedure Calls ⚫ Object-Oriented ⚫ Service / Resource Oriented ⚫ ….. Transaction Oriented ⚫ IBM’s CICS, BEA’s Tuxedo, etc… ⚫ Focus on transactions (ala database) ⚫ Transaction (ACID) ⚫ Atomic ⚫ Consistent ⚫ Isolated ⚫ Durable ⚫ Used in combination with DBMS ⚫ 2-Phase Commit Message Oriented ⚫ IBM’s MQSeries, Sun’s ToolTalk, etc… ⚫ Used when ⚫ Reliable & asynchronous communication is dominant form of interaction ⚫ Supports naturally asynchronous communication ⚫ Supports multicast ⚫ Object-Oriented Middleware is starting to integrate message oriented approaches Transparencies of Middleware ⚫ Different types of transparency ⚫ Access ⚫ Remote and local are treated the same way ⚫ Location ⚫ Caller doesn’t need to know location of service/object ⚫ Migration ⚫ Components/Objects/Service can relocate without problems ⚫ Replication ⚫ Copies/Clones/Replication are managed by the system ⚫ Concurrency ⚫ Concurrency aspects e.g. locking, synchronization are hidden Transparency ⚫ Scalability ⚫ Middleware is designed to help in building scalable systems e.g. its components can be distributed. ⚫ Performance ⚫ Techniques to enhance performance are used by the system e.g. caching of requests, optimized serialization etc.. ⚫ Failure ⚫ Mechanisms for handling failures are in place. Transparencies Remote Procedure calls ⚫ RPC ⚫ Procedure call across machine/process boundaries ⚫ RPC can be viewed as the parent of object-oriented middleware ⚫ gRPC RPC ⚫ RPCprograms = server-parts ⚫ RPCprograms have interfaces definitions ⚫ Defines procedures ⚫ Defines data types ⚫ Marshalling/Unmarshalling ⚫ Static marshalling ⚫ Routine chosen at compile-time ⚫ Dynamic marshalling ⚫ Routine chosen at run-time Object-Oriented Middleware ⚫ Next step after RPC ⚫ Best known example ⚫ CORBA ⚫ Common ⚫ Object ⚫ Request ⚫ Broker ⚫ Architecture CORBA CORBA CORBA