Middleware For Distributed Systems: Old Pals and The New Kid(s) On The Block

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 19

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)

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)
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
Where do we find Middleware?
Distributed
Directory
Cache

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

• Remote Procedure Calls (RPCs)


• Object Request Brokers (ORBs)
• Message Oriented Middleware (MOMs)
• Others
The “ilities”

• 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)

Layer foundations: UUIDs, value vs. reference, marshaling,


versioning etc.
Distributed Objects
CORBA RMI

• Object Request Broker • Java only (e.g.Introspection


• Multi-language support used)
(platform independence) • Lightweight method call
• Interface Definition semantics
language • Java Implementations
• Wire Protocoll: IIOP, • Wire Protocoll now mostly:
GIOP RMI over IIOP

Both try to preserve object semantics. Interface/Implementation


separation
Distributed 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+
Example: Enterprise Java Beans
EJB Framework (Separation Deployment (Separation of
of concerns): context):

Automatic Transaction System Management defines Data


Management Sources and Containers

Concurrency Control System Management defines Pool sizes

Automatic, method level Security System Management defines


Role/User Binding
EJB Container

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.

Sub Pub Get Sub

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

Jini Client Service private Jini Service


protocol

Service Proxy Code


Peer 2 Peer
Seti@home, freenet
JXTA etc.

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.

Security, Transactions etc. Core services


Universal Description, Discovery and Integration Registry (advertise)
Web Services Description Language Service features
SOAP exchange messages
Wire Format/
XML Syntax/HTTP
Transport
Web Server Broker
Service Granularity? Application, Component, Object or Request?

Use your “de-hyper” generously!


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

• Jim Waldo, End of • Java Magazine 7/2001,


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

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy