Title: Middleware for Distributed Systems
1Middleware for Distributed Systems
- Old pals and the new kid(s) on the block
Walter Kriha
2What is Middleware?
software that helps two separate systems
communicate seamlessly. (www.knownow.com/middlewar
e/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)
3The 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
4Where do we find Middleware?
LDAP or DCE
Quotes
Distributed Cache
Directory
WebService
JMS
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
5Classification
- Remote Procedure Calls (RPCs)
- Object Request Brokers (ORBs)
- Message Oriented Middleware (MOMs)
- Others
-
6The 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.
7Real-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)
8RPC 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.
9Distributed Objects
CORBA
RMI
- Java only (e.g.Introspection used)
- Lightweight method call semantics
- Java Implementations
- Wire Protocoll now mostly RMI over IIOP
- Object Request Broker
- Multi-language support (platform independence)
- Interface Definition language
- Wire Protocoll IIOP, GIOP
Both try to preserve object semantics.
Interface/Implementation separation
10Distributed Components
- Objects are too granular performance and
maintenance problems - Programmers need more help separation of
concerns and context
- Solutions
- Enterprise Java Beans
- CORBA Components
- COM
11Example Enterprise Java Beans
EJB Framework (Separation of concerns)
Deployment (Separation of context)
- Automatic Transaction Management
- System Management defines Data Sources and
Containers
System Management defines Pool sizes
Concurrency Control
System Management defines Role/User Binding
Automatic, method level Security
12EJB 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
13Distributed 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
Sub
publish
send
Sub
Get
MOM
MOM
14Distributed 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
15Distributed 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
16Peer 2 Peer
Seti_at_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?
17WebServices
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!
18Others
- 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
19Resources
- 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 Isnt
(www.openp2p.com) - S.Tai, I.Rouvellou, Strategies for Integrating
Messaging and Distributed Object Transactions