1 / 19

Middleware for Distributed Systems

Middleware for Distributed Systems. Old pals and the new kid(s) on the block. Walter Kriha. What is Middleware?. software that helps two separate systems communicate seamlessly . (www.knownow.com/middleware/lexicon.html).

brandye
Download Presentation

Middleware for Distributed Systems

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Middleware for Distributed Systems Old pals and the new kid(s) on the block Walter Kriha

  2. What is Middleware? software that helps two separate systemscommunicateseamlessly. (www.knownow.com/middleware/lexicon.html) In a strict sense middleware is transport software that is used to move information from one program to one or more other programs, shielding the developer from dependencies on communication protocols, operating systems and hardware platform (“plumbing”) (www.talarian.com)

  3. The Transparency Dogma • Middleware is supposed to hide remote-ness and concurrency by hiding distribution behind local programming language constructs Critique: Jim Waldo, SUN Full transparency is impossible and the price is too high

  4. Where do we find Middleware? LDAP or DCE Distributed Cache Directory Quotes JMS WebService JNDI Application Server Web- Tier Application Server EJB Tier Web Server JDBC RMI XML-RPC CORBA News Part of a Portal running on a Web Cluster. E-bank

  5. Classification • Remote Procedure Calls (RPCs) • Object Request Brokers (ORBs) • Message Oriented Middleware (MOMs) • Others

  6. The “ilities” • Reliability • Availability • Security • Scalability • Quality • Performance • Maintainability Before using a specific middleware, always make sure that the “ilities” aka non-functional requirements are met. Middleware almost always differs implementation quality between vendors.

  7. Real-World Problems • Skills/Understanding: Best practice patterns? • Single-Point-Of-Failures: replication, load-balancing etc. • Tooling: generators, deployment tools • “Brittle-ness” if interfaces change (Compiler “illusion”)

  8. RPC type Middleware • E.g. Sun-RPC, OSF DCE • Main idea: distribute functions, use concurrent processing • On top of it: Distributed Directory, File system, Security (cells, principals) • XML-RPC over http (www.userland.com) Layer foundations: UUIDs, value vs. reference, marshaling, versioning etc.

  9. Object Request Broker Multi-language support (platform independence) Interface Definition language Wire Protocoll: IIOP, GIOP Java only (e.g.Introspection used) Lightweight method call semantics Java Implementations Wire Protocoll now mostly: RMI over IIOP Distributed Objects CORBA RMI Both try to preserve object semantics. Interface/Implementation separation

  10. Objects are too granular: performance and maintenance problems Programmers need more help: separation of concerns and context Solutions: Enterprise Java Beans CORBA Components COM+ Distributed Components

  11. Automatic Transaction Management System Management defines Data Sources and Containers Example: Enterprise Java Beans EJB Framework (Separation of concerns): Deployment (Separation of context): System Management defines Pool sizes Concurrency Control System Management defines Role/User Binding Automatic, method level Security

  12. EJB Container Client Entity Bean invoke Load/ persist delegate At the point of interception the container provides the following services to the bean: Resource management, life-cycle, state-management, transactions, security, persistence

  13. Distributed Messages (MOM) Asynchronous, loosely-coupled (fault tolerant), persistent messages with either publish/subscribe (topics) or queuing semantics. Scales well. Delivery guarantees differ. Sub Get Sub Pub Pub Put (M1,M2) Sub Topic M2 M1 queue publish Sub send Sub Get MOM MOM

  14. Distributed Code I (Agents, Aglets) The Problem: who wants a new runtime system? Agent Agent Perform work, come back with results pack unpack Serialized Agent Agent Runtime Agent Runtime Channel OS OS

  15. Distributed Code II (Jini) – The End of Protocols? Jini Lookup Service Proxy moves to lookup service during registration Proxy moves to client during service lookup Jini Client Jini Service Service private protocol Service Proxy Code

  16. Peer 2 Peer Seti@home, freenet JXTA etc. INTERNET DNS Nodes have no fixed IP address and frequent down-times ISP ISP ISP P2P uses cycles, provides file sharing and anonymity because no central servers are used Problems: How do you version files? Overhead?

  17. WebServices Promises de-coupling of service provider and requester, document interfaces, machine-to-machine communication and ease of use compared to distributed objects. No way to define QOS or conversation yet. Core services Security, Transactions etc. Registry (advertise) Universal Description, Discovery and Integration Service features Web Services Description Language exchange messages SOAP Wire Format/ Transport XML Syntax/HTTP Web Server Broker Service Granularity? Application, Component, Object or Request? Use your “de-hyper” generously!

  18. Parallel Processing: PVM, MPI (e.g. for Linux Beowulf cluster) Wireless: Bluetooth System Management: Jiro/FMA Linda Tuple Spaces (Javaspaces, Tspaces) Group Computing (virtual synchrony): Horus, iBus Others

  19. Jim Waldo, End of Protocols Marco Boger,Java in verteilten Systemen Ken Birman, Building secure and reliable Network Application ObjectSpectrum 7/2001, WebServices Java Magazine 7/2001, Java Message Service www.theserverside.com on EJBs Clay Shirky, What is P2P and what Isn’t (www.openp2p.com) S.Tai, I.Rouvellou, Strategies for Integrating Messaging and Distributed Object Transactions Resources

More Related