Middleware emergence
Distributed computing evolved from single-tier
(terminal/mainframe) to 2-tier (client-server)
to n-tier architecture
To support heterogeneous environments open
networking standards were introduced (i.e. OSI)
How do we build/connect applications over a
network?
Answer: middleware
1
N-tier architecture
More scalable architecture that
separates processing to different
servers
2
What is Middleware?
Middleware enables applications running across
multiple platforms to communicate with each
other .
Middleware shields the developer from
dependencies on Network Protocols, OS and
hardware platforms.
Middleware is a software layer that lies between
the operating system and the applications on each
site of the system.
3
ODBC – primitive middleware?
Example of primitive middleware: ODBC
Client application is shielded from the details of
the database implementation
Not true middleware: defines client side software
only
4
Types of Middleware
Homegrown Middleware Solutions
RPC (Remote Procedure Calls)
Object-Oriented MW - ORB (Object Request
Brokers)
MOM (Message Oriented Middleware)
Transaction Processing Monitors
5
Homegrown Middleware
Customized to meet specific needs
Needs substantial investments
Pros
Can meet specific needs
Cons
Not cost effective
Lacks scalability
6
Remote Procedure calls
Procedure/Function Oriented
Follows the Request/Reply Model
Mode of Communication is synchronous
Provides Location/Platform transparency
Technologies: ONC RPC, DCE/RPC
7
Object Oriented
Language Independent
Provides Location and Access transparency
Mode of Communication is Synchronous
Competing Standards (CORBA, DCOM, RMI)
8
Message Oriented
Data is transferred between applications as a message
Mode Of Communication :- Asynchronous
Basic Components of MOM
1.Message (Information that needs to be transferred)
2.Queue (A container used to store and distribute
messages)
Types Of MOM
1. Message Queuing (Store and Forward)
2. Publish / Subscribe
Products: IBM WebSphere MQ, TIBCO Rendezvous
Queue
App-1 App-2
9
Transaction Processing Monitors
Transaction Processing Monitors are used for
coordinating and monitoring the efforts of various
application in a distributed environment.
Products: Tuxedo, IBM CICS, Microsoft Transaction Server
Client App App1
App2
TPM
App3
10
Property of Transactions
Transaction is a collection of operations that
should be treated as a single logical operation.
To ensure reliable transactions ACID properties
are needed
11
Property of Transactions
ACID properties:
A: Atomicity: either the entire set of operations
happens or none of it does.
12
Property of Transactions
ACID properties:
A: Atomicity: either the entire set of operations
happens or none of it does.
C: Consistency: the set of operations taken
together should move the system from one
consistent state to another.
13
Property of Transactions
ACID properties:
A: Atomicity: either the entire set of operations
happens or none of it does.
C: Consistency: the set of operations taken
together should move the system from one
consistent state to another.
I: Isolation: even though multiple transactions
may operate concurrently, there is a total order
on all transactions. Stated another way: each
transaction perceives the system as if no other
transactions were running concurrently.
14
Property of Transactions
Transaction is a collection of operations that should be
treated as a single logical operation.
ACID properties:
A: Atomicity: either the entire set of operations happens or
none of it does.
C: Consistency: the set of operations taken together should
move the system from one consistent state to another.
I: Isolation: even though multiple transactions may operate
concurrently, there is a total order on all transactions.
Stated another way: each transaction perceives the system
as if no other transactions were running concurrently.
D: Durability: even the face of a crash, once the system has
said that a transaction completed, the results of the
transaction must be permanent.
15
Why Web Services?
Lack of standardization in middleware
Web services basic platform is available
everywhere (XML, HTTP)
Can serve as an integration tool for different
business applications across organization
boundaries without regards to what each business
uses as the internal platform
16
Why Web Services?
Can serve as an integration tool for different
business applications across organization
boundaries without regards to what each business
uses as the internal platform
17
What are Web Services?
Web services provide a standard means of
interoperating between different software
applications, running on a variety of platforms.
18
Web Services
Web services provide a standard means of
interoperating between different software
applications, running on a variety of platforms.
W3C Working Group definition:
A Web service is a software system designed to
support interoperable machine-to-machine
interaction over a network…
19
Web Services
Web services provide a standard means of
interoperating between different software
applications, running on a variety of platforms.
W3C Working Group definition:
A Web service is a software system designed to
support interoperable machine-to-machine
interaction over a network. It has an interface
described in a machine-processable format
(specifically WSDL).
20
Web Services
Web services provide a standard means of
interoperating between different software
applications, running on a variety of platforms.
W3C Working Group definition:
A Web service is a software system designed to
support interoperable machine-to-machine
interaction over a network. It has an interface
described in a machine-processable format
(specifically WSDL). Other systems interact with the
Web service in a manner prescribed by its
description using SOAP messages, typically conveyed
using HTTP with an XML serialization in conjunction
with other Web-related standards
21
Web Services
Specifications for Web Services are defined as
modules:
SOAP
WSDL
UDDI
Basic platform is XML over HTTP
22
Web Services
23
XML
Simple markup, data description language
(based on SGML)
Human-readable
Customizable schema can be used to define
atributes and elements
XML can be used to created custom XML-based
languages and services
XML-based messages transported over HTTP
serve as the basic platform for Web Services
24
SOAP
XML-based protocol defining message format
One-way asynchronous technology
Can use a variety of message passing styles: RPC,
publish/subscribe
Primary underlying protocol is HTTP, but others
can be used (SMTP)
25
WSDL
XML-based language
Defines/describes Web services interfaces, data
and message types, interaction patterns and
protocol mappings
26
UDDI
Web Services Registry (of WSDL documents)
Protocol for discovering and publishing Web
Services
UDDI registry is accessed by XML-based SOAP
messages
27