Transcript Middleware

Introduction to Middleware
1
Outline
•
•
•
•
•
•
What is middleware?
Purpose and origin
Why use it?
What Middleware does?
Technical details
Middleware services
2
What is middleware?
• Middleware is software that connects
applications, allowing them to exchange data.
• It offers several key advantages over hardwiring
applications together,
– which typically entails adding code to all of the
applications involved, instructing them on the
particulars of talking to each other.
• Middleware adds an independent third party to
that transaction, a translator.
3
What is Middleware?(cont.)
Application
Application
Middleware
Middleware
Operating System
Operating System
Software that functions as a conversion or translation layer.
• It is also a consolidator and integrator.
– Custom-programmed middleware solutions have been
developed for decades to enable one application to
communicate with another that either runs on a different platform
or comes from a different vendor or both.
• Today, there is a diverse group of products that offer packaged
middleware solutions.
4
The Middleware Layer
Distributed Application
Distributed Application
Middleware API
Middleware API
Middleware
Middleware
Operating System API
Operating System API
Operating System
Operating System
(Proceses, Communication,
Memory Management)
(Proceses, Communication,
Memory Management)
Network
5
Purpose and Origin
• Middleware is connectivity software
– It consists of a set of enabling services that allow multiple processes
running on one or more machines to interact across a network.
• Middleware is essential to migrating mainframe applications to
client/server applications and to providing for communication across
heterogeneous platforms.
– This technology has evolved during the 1990s to provide for
interoperability in support of the move to client/server
architectures (see Client/Server Software Architectures).
• The most widely-publicized middleware initiatives are the
– Open Software Foundation's Distributed Computing Environment
(DCE),
– Object Management Group's Common Object Request Broker
Architecture (CORBA), and
– Microsoft's COM/DCOM (Component Object Model)
– Java RMI
6
Why use it?
• From a business standpoint, connectivity among
applications is a given today.
– Shop floor, inventory, accounts receivable and advanced
planning applications need to communicate so that companies
can make accurate promises to customers, and executives can
make educated decisions more quickly.
• E-business in particular demands better integration by
an order of magnitude.
– That's because Web customers commonly want to see several
bits of up-to-the-minute information at the same time—product
specifications, availability, shipping times and account status.
• Enter middleware to tie together all those apps and
connect them to a Web front end, hiding the complexity
from the customer.
7
What Middleware does?
– Provides layer between OS and distributed applications
– Hides complexity and heterogeneity of distributed system
– Bridges gap between low-level OS comms and programming
language abstractions
– Provides common programming abstraction and infrastructure
for distributed applications
DistributedApplications
Applications
Distributed
Distributed
Applications
Middleware
OperatingSystem
SystemComms
Comms
Operating
Operating
System Comms
Network
Network
Network
(remote calls, object invocation,
messages, …)
(sockets, IP, TCP, UDP, …)
(packets, bits…)
8
Middleware supports and
dimensions
• Middleware provides support for
– Naming, Location, Service discovery, Replication
– Protocol handling, Communication faults, QoS
– Synchronisation, Concurrency, Transactions, Storage
– Access control, Authentication
• Middleware dimensions:
– Request/Reply vs. Asynchronous Messaging
– Language-specific vs.
Language-independent
– Proprietary
vs.
Standards-based
– Small-scale
vs.
Large-scale
– Tightly-coupled
vs.
Loosely-coupled
components
9
Technical Detail
• Middleware services are sets of
distributed software that exist between the
application and the operating system and
network services on a system node in the
network.
10
Middleware Services
• provide a more functional set of
Application Programming Interfaces (API)
than the operating system and network
services to allow an application to
– locate transparently across the network,
providing interaction with another application
or service
– be independent from network services
– be reliable and available
– scale up in capacity without losing function 11
Types of Middleware Services
1. Distributed system services,
• Critical communications, program-to-program, and data
management services.
• This type of service includes RPCs, MOMs and ORBs.
2. Application enabling services,
• Access to distributed services and the underlying network.
• This type of services includes transaction processing monitors
and database services such as Structured Query Language
(SQL).
3. Middleware management services,
• Which enable applications and system functions to be
continuously monitored to ensure optimum performance of the
distributed environment.
12
Usage Considerations
• The main purpose of middleware services is to help solve many
application connectivity and interoperability problems. However,
middleware services are not a panacea:
– There is a gap between principles and practice. Many popular
middleware services use proprietary implementations (making
applications dependent on a single vendor's product).
– The sheer number of middleware services is a barrier to using
them.
• To keep their computing environment manageably simple,
developers have to select a small number of services that meet
their needs for functionality and platform coverage.
– While middleware services raise the level of abstraction of
programming distributed applications, they still leave the
application developer with hard design choices.
• For example, the developer must still decide what functionality to
put on the client and server sides of a distributed application.
13