Introduction To Middleware I
Introduction To Middleware I
Introduction To Middleware I
What is Middleware?
Layer between OS and distributed applications
Hides complexity and heterogeneity of distributed system
Bridges gap between low-level OS communications and programming
language abstractions
Provides
P id common programming i abstraction
b i andd infrastructure
i f for
f
distributed applications
Overview at: http://www.middleware.org
DistributedApplications
Distributed Applications
Distributed Applications
Middleware dimensions:
Request/Reply vs. Asynchronous Messaging
L
Language-specific
ifi vs. L
Language-independent
i d d t
Proprietary vs. Standards-based
Small-scale
Small scale vs. Large-scale
Large scale
Tightly-coupled vs. Loosely-coupled components
2
Middleware
Outline
Part I: Remote Procedure Call (RPC)
Historic interest
Part II: Object-Oriented Middleware (OOM)
Java RMI
CORBA
Reflective Middleware
Part III: Message-Oriented Middleware (MOM)
Java Message Service
IBM MQSeries
Web Services
Part IV: Event-Based
E ent Based Middle
Middleware
are
Cambridge Event Architecture
Hermes
3
Middleware
Part I: Remote Procedure Call (RPC)
Masks remote function calls as being local
Client/server model
Request/reply paradigm usually implemented with
message passing in RPC service
Marshalling of function parameters and return value
8) Unmarshal 6) Marshal
9) Acknowledge 7) Set timer
4
Middleware
Properties of RPC
Language-level pattern of function call
easy to understand for programmer
6
Middleware
Disadvantages of RPC
Synchronous request/reply interaction
tight coupling between client and server
client may block for a long time if server loaded
leads to multi-threaded programming at client
fork()
slow/failed clients may delay servers when replying
multi-threading essential at servers
remote call
7
Middleware
Part II: Object-Oriented Middleware (OOM)
Objects can be local or remote
Object
j references can be local or remote
Remote objects have visible remote interfaces
Masks remote objects as being local using proxy objects
Remote method invocation
object
bj t object
bj t
object A request
request skeleton
broker broker object B
/ /
object object
manager manager
proxy
object B object B 8
Middleware
Properties of OOM
Support for object-oriented programming model
objects,
objects methods
methods, interfaces
interfaces, encapsulation
encapsulation,
exceptions (were also in some RPC systems e.g. Mayflower)
Location Transparency
system (ORB) maps object references to locations
10
Middleware
CORBA
Common Object Request Broker Architecture
Open standard by the OMG (Version 33.0)
0)
Language- and platform independent
Object Request Broker (ORB)
General Inter-ORB Protocol (GIOP) for communication
Interoperable Object References (IOR) contain object location
CORBA Interface Definition Language (IDL)
Stubs (proxies) and skeletons created by IDL compiler
Dynamic remote method invocation
Interface Repository
Querying existing remote interfaces
Implementation Repository
Activating remote objects on demand
11
Middleware
CORBA IDL
Definition of language-independent remote interfaces
Language mappings to C++
C++, Java
Java, Smalltalk
Smalltalk,
Translation by IDL compiler
Type system
basic types: long (32 bit), typedef sequence<string> Files;
interface PrintService : Server {
long long (64 bit), short,
void p
print(in( Files p
printJob);
);
fl t char,
float, h boolean,
b l };
octet, any,
constructed types:
yp struct, union, sequence,
q array,
y enum
objects (common super type Object)
Parameter passing
in, out, inout
basic & constructed types passed by value
objects
bj t passedd by
b reference
f
12
Middleware
CORBA Services (selection)
Naming Service
Names remote object references
Trading Service
Attributes (properties) remote object references
Persistent Object Service
Implementation
p of ppersistent CORBA objects
j
Transaction Service
Making object invocation part of transactions
Event Service and Notification Service
In response to applications need for asynchronous communication
built above synchronous communication with push or pull options
not an integrated programming model with general IDL messages
13
Middleware
Disadvantages of OOM
Synchronous request/reply interaction only
So CORBA oneway semantics added and -
Asynchronous Method Invocation (AMI)
But implementations may not be loosely coupled
OOM rather
h static
i and
d hheavy-weight
i h
Bad for ubiquitous systems and embedded devices
14
Middleware
OOM experience
Keynote address at Middleware 2009
Steve Vinoski
From Middleware Implementor to Middleware User
(Th andd back
(There b k again)
i )
16
Middleware
Part III: Message-Oriented Middleware (MOM)
Communication using messages
Messages stored in message queues
message servers decouple client and server
Various assumptions about message content
Message Servers
17
Middleware
Properties of MOM
Asynchronous interaction
Client and server are only loosely coupled
Messages are queued
Good for application integration
Support for reliable delivery service
Keep queues in persistent storage
Processing of messages by intermediate message server(s)
May do filtering, transforming, logging,
Networks of message servers
Natural for database integration
18
Middleware
IBM MQSeries
One-to-one reliable message passing using queues
Persistent and non-persistent
non persistent messages
Message priorities, message notification
Queue Managers
Responsible for queues
Transfer messages from input to output queues
Keep routing tables
Message Channels
Reliable connections between queue managers
Messaging API: MQopen Open a queue
MQclose Close a queue
MQput Put message into opened queue
MQget Get message ffrom
om local q
queue
e e
19
Middleware
Java Message Service (JMS)
API specification to access MOM implementations
Two modes of operation *specified*:
Point-to-point
one
one-to-one
to one communication using queues
Publish/Subscribe
cf. Event-Based Middleware
21
Middleware
Web Services
Use well-known web standards for distributed computing
Communication
Message content expressed in XML
Simple Object Access Protocol (SOAP)
Lightweight protocol for sync/async communication
Service Description
Web Services Description Language (WSDL)
Interface description for web services
Service Discovery
Universal Description Discovery and Integration (UDDI)
Directory with web service description in WSDL
22
Middleware
Properties of Web Services
Language-independent and open standard
UDDI helps
h l tot find
fi d the
th right
i ht webb service
i
Exports SOAP API for access
23
Middleware
Disadvantages of Web Services
Low-level abstraction
leaves a lot to be implemented
No location transparency
24
Middleware
What we lack, so far
General interaction patterns
we have one-to-one
one to one and request-reply
request reply
one-to-many? many to many?
notification?
dynamic joining and leaving?
Location transparency
anonymity of communicating entities
25
Middleware
Part IV: Event-Based Middleware a.k.a. Publish/Subscribe
subscribe
publish
Publisher notify Subscriber
Event Service
(event-broker
(event broker subscribe
Publisher publish Subscriber
notify
network)
subscribe
Publisher publish Subscriber
notify
26
Middleware
Topic-Based and Content-Based Pub/Sub
Event Service matches events against subscriptions
What do subscriptions look like?
Topic-Based Publish/Subscribe
Publishers publish events belonging to a topic or subject
Subscribers subscribe to a topic
subscribe(PrintJobFinishedTopic )
subscribe(PrintJobFinishedTopic, )
27
Middleware
Properties of Publish/Subscribe
Asynchronous communication
Publishers and subscribers are loosely coupled
28
Middleware
Composite Event Detection (CED)
Content-based pub/sub may not be expressive enough
Potentially
y thousands of event types
yp (primitive
(p events))
Subscribers interest: event patterns (define high-level events, ref DS-2)
Event Patterns
PrinterOutOfPaperEvent or PrinterOutOfTonerEvent
Composite Event Detectors (CED)
Subscribe to primitive events and publish composite events
Publisher
CED Subscriber
Publisher
Publisher CED
CED Subscriber
Publisher
29
Middleware
Summary
Middleware is an important abstraction for building
distributed systems
Synchronous vs.
vs asynchronous communication
Scalability, many-to-many communication
Lang age integration
Language
Ubiquitous systems, mobile systems
30
Middleware