Middleware for Distributed Systems - PowerPoint PPT Presentation

1 / 19
About This Presentation
Title:

Middleware for Distributed Systems

Description:

In a strict sense middleware is transport software that is used to move ... unpack. Perform work, come back with results. The Problem: who wants a new runtime system? ... – PowerPoint PPT presentation

Number of Views:78
Avg rating:3.0/5.0
Slides: 20
Provided by: krih
Category:

less

Transcript and Presenter's Notes

Title: Middleware for Distributed Systems


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 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)
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
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
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
Distributed 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
10
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

11
Example 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
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
Sub
publish
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_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?
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
Others
  • 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

19
Resources
  • 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
Write a Comment
User Comments (0)
About PowerShow.com