Middleware For Distributed Systems: Old Pals and The New Kid(s) On The Block
Middleware For Distributed Systems: Old Pals and The New Kid(s) On The Block
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)
LDAP Quotes
or DCE JMS JNDI WebService
Application Application
Web Server Server JDBC
Server Web- RMI EJB
Tier Tier XML-RPC
CORBA
Part of a Portal running on a
Web Cluster.
News
Classification
• Reliability
• Availability Before using a specific
middleware, always make sure
• Security that the “ilities” aka non-
functional requirements are
• Scalability met. Middleware almost
• Quality always differs implementation
quality between vendors.
• Performance
• Maintainability
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”)
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)
Solutions:
• Enterprise Java Beans
• CORBA Components
• COM+
Example: Enterprise Java Beans
EJB Framework (Separation Deployment (Separation of
of concerns): context):
invoke Load/
Client Entity Bean
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
Distributed Messages (MOM)
Asynchronous, loosely-coupled (fault tolerant), persistent
messages with either publish/subscribe (topics) or queuing
semantics. Scales well. Delivery guarantees differ.
Pub Put
Sub (M1,M2)
Topic M2 M1 queue
publish Sub
send
Get Sub
MOM MOM
Distributed Code I (Agents, Aglets)
The Problem: who wants a new runtime system?
Agent Agent
Perform
pack work,
Serialized Agent unpack come
Agent
Agent back
Runtime
Runtime Channel with
OS results
OS
Distributed Code II (Jini) – The
End of Protocols?
Jini Lookup
Proxy moves to
Service
Proxy moves to lookup service
client during during
service lookup registration
INTERNET
INTERNET
Nodes have no ISP DNS ISP
DNS
fixed IP address and
frequent down- ISP
times
P2P uses cycles,
provides file sharing
and anonymity because
no central servers are
used
Problems: How do you version
files? Overhead?
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.