1 introduction to middleware. 2 outline what is middleware? purpose and origin why use it? what...

13
1 Introduction to Middleware

Upload: eustacia-ellis

Post on 02-Jan-2016

222 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services

1

Introduction to Middleware

Page 2: 1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services

2

Outline• What is middleware?

• Purpose and origin

• Why use it?

• What Middleware does?

• Technical details

• Middleware services

Page 3: 1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services

3

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.

Page 4: 1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services

4

What is Middleware?(cont.)

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.

Application

Middleware

Operating System

Application

Middleware

Operating System

Page 5: 1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services

5

The Middleware Layer

Distributed Application

Middleware API

Middleware

Operating System API

Operating System(Proceses, Communication,

Memory Management)

Distributed Application

Middleware API

Middleware

Operating System API

Operating System(Proceses, Communication,

Memory Management)

Network

Page 6: 1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services

6

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

Page 7: 1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services

7

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.

Page 8: 1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services

8

Distributed ApplicationsDistributed Applications

Operating System Comms

Operating System CommsNetworkNetwork

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

Distributed Applications

Middleware

Operating System Comms

(packets, bits…)

(remote calls, object invocation, messages, …)

(sockets, IP, TCP, UDP, …)

Network

Page 9: 1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services

9

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

Page 10: 1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services

10

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.

Page 11: 1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services

11

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

Page 12: 1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services

12

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.

Page 13: 1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services

13

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.