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
App-1
Queue
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
App1
Client App
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