Middleware facilitates interactions between applications across different computing platforms by providing programming abstractions. Common types of middleware include RPC-based systems, transaction processing (TP) monitors, object brokers, and message-oriented middleware. RPC extends procedure calls to work remotely, while TP monitors add transaction management to distributed RPC calls. Object brokers like CORBA standardize object distribution, and message queues in message-oriented middleware enable asynchronous communication.
7. RPC functioning with Dynamic binding Sanjoy Sanyal (Tech for NonGeek) Client Procedure Call Client Stub Bind Marshal Serialize Client Process Communication Module Name and directory service (binder) Query for server implementing the procedure Address of server Server Procedure Server Process Server Stub Register Un-marshal De-serialize Receive Dispatch Communication Module Register server and procedure
8.
9.
10.
11.
12.
13. Transactional RPC Sanjoy Sanyal (Tech for NonGeek) Client 1.BOT 4. Procedure call 10. EOT Client Stub 2. Register txn and create context 5. Add txn id and context to call 11. Request commit 14. Confirm termination Client Process Server 9. procedure Server Process Server Stub 6. Extract context and txn id 7. Register server for txn 13. Participate in 2PC Register server and procedure Transaction manager 3. Create txn id Register txn Regsiter txn for client Return txn id 8. Lookup txn id Run 2PC Notify client of outcome 8. Lookup txn id Register server for txn
14.
15. TP Monitor Functionality Sanjoy Sanyal (Tech for NonGeek) Functionality Description RPC Support IDLs, name and directory servers, security and authentication, stub compilers …. Programming abstraction deal with T-RPC BOT, EOT, and may include additional callback and workflow mechansisms (on commit, on abort) Transactional Manager for implementing TRPC Transaction Manager functionality: logging, recovery, locking Monitor Systems Scheduling threads, assigning priorities, load balancing, replication, starting and stopping components Run-time environment Provides the resources and services applications may need (transactional services, security services, transactional file systems…) Specialized Components Ranging from proprietary protocols for interacting with mainframes to persistent queuing systems for asynchronous interaction Tools For installing, managing and monitoring the performance of all components
16.
17. CORBA: System Architecture Sanjoy Sanyal (Tech for NonGeek) Object Request Broker financials Supply chain distributed documents information management systems management Vertical facilities horizontal facilities CORBA facilities naming transactions events lifecycle time relationships properties licensing trader concurrency query security startup externalization collection persistence User Defined Objects
18.
19.
20.
21. How CORBA works Sanjoy Sanyal (Tech for NonGeek) Object Request Broker Dynamic Invocation Interface Application object (client) IDL of service provider stub Application object (client) IDL compiler (client side) IDL compiler (server side) Application object (service provider) skeleton Interface repository
22.
23.
24.
25.
26.
27.
28.
29. CORBA Architecture: Explained Sanjoy Sanyal (Tech for NonGeek) Component Description Object Request Broker Provides basic object interoperability functions CORBA Services Provide functionality commonly needed by most objects such as persistence, lifecycle management and security Accessible thru a standardized API CORBA facilities Provide higher level services needed by applications - Horizontal facilities: document management, internationalization, support for mobile agents - Vertical facilities: services specific to a market vertical (healthcare, education….)