+ All Categories
Home > Documents > Middleware definitions and overvie · Middleware definitions and overview 1 Which middleware ? #...

Middleware definitions and overvie · Middleware definitions and overview 1 Which middleware ? #...

Date post: 18-Jul-2020
Category:
Upload: others
View: 11 times
Download: 1 times
Share this document with a friend
27
Middleware definitions and overview Chantal Taconet ASR/CSC5002 septembre 2019 Revision : 545
Transcript
Page 1: Middleware definitions and overvie · Middleware definitions and overview 1 Which middleware ? # 4 1.1 Middleware definitions Several definitions a ♦ Middleware is software

# 1

Middleware definitions andoverview

Chantal Taconet

ASR/CSC5002septembre 2019

Revision : 545

Page 2: Middleware definitions and overvie · Middleware definitions and overview 1 Which middleware ? # 4 1.1 Middleware definitions Several definitions a ♦ Middleware is software

Middleware definitions and overview

# 2

Outline

1 Which middleware ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Middleware for separation of concerns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Which middleware family . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 Synthesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

Télécom SudParis — INF — septembre 2019 — ASR/CSC5002 2/27

Page 3: Middleware definitions and overvie · Middleware definitions and overview 1 Which middleware ? # 4 1.1 Middleware definitions Several definitions a ♦ Middleware is software

Middleware definitions and overview

# 3

1 Which middleware ?

SOA

???

Struts

RMIEAI

SpringM2M

REST

IIOP

Hibernate EJB

B2CSOAP

ESB

CORBA DDS

P2P

RPC

JavaEE

JMSWebService

B2B

WSDLCORBA

SCA

MOM

AMQPDEBS

■ A wide number of middleware technologies are hidden under those acronyms !

To master the complexity : Understand the abstractions, classify the middleware

Télécom SudParis — INF — septembre 2019 — ASR/CSC5002 3/27

Page 4: Middleware definitions and overvie · Middleware definitions and overview 1 Which middleware ? # 4 1.1 Middleware definitions Several definitions a ♦ Middleware is software

Middleware definitions and overview 1 Which middleware ?

# 4

1.1 Middleware definitions

■ Several definitions a

♦ Middleware is software glue.♦ Middleware is the slash in Client/Server♦ Software that mediates between an application program and a network.♦ Middleware is computer software that connects software components or

applications. It is used most often to support complex, distributedapplications. It includes web servers, application servers, content managementsystems, and similar tools that support application development and delivery.Middleware is especially integral to modern information technology based onXML, SOAP, Web services, and service-oriented architecture. It goes on tosay that it describes a piece of software that connects two or more softwareapplications so that they can exchange data.

♦ Middleware is any software that allows other software to interact.a. Found on http://www.middleware.org/whatis.html and http://en.wikipedia.org/wiki/

Middleware

Télécom SudParis — INF — septembre 2019 — ASR/CSC5002 4/27

Page 5: Middleware definitions and overvie · Middleware definitions and overview 1 Which middleware ? # 4 1.1 Middleware definitions Several definitions a ♦ Middleware is software

Middleware definitions and overview 1 Which middleware ?

# 5

♦ Middleware is sometimes called plumbing because it connects application andpasses data between them.

♦ Middleware is software used for coupling high level system components(application) with basic system components (data and network)

Télécom SudParis — INF — septembre 2019 — ASR/CSC5002 5/27

Page 6: Middleware definitions and overvie · Middleware definitions and overview 1 Which middleware ? # 4 1.1 Middleware definitions Several definitions a ♦ Middleware is software

Middleware definitions and overview 1 Which middleware ?

# 6

1.2 Middleware as a universal adapter to build high levelapplications ?

Télécom SudParis — INF — septembre 2019 — ASR/CSC5002 6/27

Page 7: Middleware definitions and overvie · Middleware definitions and overview 1 Which middleware ? # 4 1.1 Middleware definitions Several definitions a ♦ Middleware is software

Middleware definitions and overview

# 7

2 Middleware for separation of concerns

2.1 Middleware : several concerns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.2 Separation of concerns and middleware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.3 Levels of heterogeneity addressed by middleware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.4 Middleware for several levels of distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.5 Examples of software distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

Télécom SudParis — INF — septembre 2019 — ASR/CSC5002 7/27

Page 8: Middleware definitions and overvie · Middleware definitions and overview 1 Which middleware ? # 4 1.1 Middleware definitions Several definitions a ♦ Middleware is software

Middleware definitions and overview 2 Middleware for separation of concerns

# 8

2.1 Middleware : several concerns

persistency (JavaEE,Hibernate)

MVC (Struts)

Presentation Layer

Application

Logic

Sys

tem

1

Middleware

Application

Logic

Sys

tem

2

Interaction LayerData Storage Layer

Publish/subscribe: JMS, RabbitMQ

Synchronous call: RPC, RMI,Web Services (REST, SOAP)

Télécom SudParis — INF — septembre 2019 — ASR/CSC5002 8/27

Page 9: Middleware definitions and overvie · Middleware definitions and overview 1 Which middleware ? # 4 1.1 Middleware definitions Several definitions a ♦ Middleware is software

Middleware definitions and overview 2 Middleware for separation of concerns

# 9

2.2 Separation of concerns and middleware

■ Middleware is a solution for the separation of concern paradigm

In computer science, separation of concerns (SoC) is a design principle forseparating a computer program into distinct sections, such that each sectionaddresses a separate concern.

♦ Separation of concern enables application designers to focus on their business▶ Use standard middleware components for handling non business

preoccupations■ Through middleware, separation of concern is reached for :

♦ Heterogeneity♦ Distribution of pieces of software♦ Persistency of components♦ Security issues♦ New middleware for new preoccupations (e.g., context-awareness)

Télécom SudParis — INF — septembre 2019 — ASR/CSC5002 9/27

Page 10: Middleware definitions and overvie · Middleware definitions and overview 1 Which middleware ? # 4 1.1 Middleware definitions Several definitions a ♦ Middleware is software

Middleware definitions and overview 2 Middleware for separation of concerns

# 10

2.3 Levels of heterogeneity addressed by middleware

■ Middleware may address several level of heterogeneity♦ Hardware heterogeneity (e.g., Little Endian and Big Endian representation)♦ Operating System heterogeneity (e.g., library availability)♦ Language heterogeneity (e.g., one piece of software in C, another piece of

software in java♦ Application logic heterogeneity (e.g., data transformation from one

application to the other)

Télécom SudParis — INF — septembre 2019 — ASR/CSC5002 10/27

Page 11: Middleware definitions and overvie · Middleware definitions and overview 1 Which middleware ? # 4 1.1 Middleware definitions Several definitions a ♦ Middleware is software

Middleware definitions and overview 2 Middleware for separation of concerns

# 11

2.4 Middleware for several levels of distribution

■ Pieces of software connected by middleware may be distributed on :♦ Several processes (in the same computer)♦ Several computers (in the same local area network)♦ Several networks (in the same company)♦ Several companies

Télécom SudParis — INF — septembre 2019 — ASR/CSC5002 11/27

Page 12: Middleware definitions and overvie · Middleware definitions and overview 1 Which middleware ? # 4 1.1 Middleware definitions Several definitions a ♦ Middleware is software

Middleware definitions and overview 2 Middleware for separation of concerns

# 12

2.5 Examples of software distribution

Middleware

Télécom SudParis — INF — septembre 2019 — ASR/CSC5002 12/27

Page 13: Middleware definitions and overvie · Middleware definitions and overview 1 Which middleware ? # 4 1.1 Middleware definitions Several definitions a ♦ Middleware is software

Middleware definitions and overview

# 13

3 Which middleware family

3.1 Families of middleware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.2 Main family history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .153.3 Interaction styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.4 Object/Service/Component lifecycle : servers and containers. . . . . . . . . . . . . . . . . . . .173.5 Data management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.6 Presentation middleware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

Télécom SudParis — INF — septembre 2019 — ASR/CSC5002 13/27

Page 14: Middleware definitions and overvie · Middleware definitions and overview 1 Which middleware ? # 4 1.1 Middleware definitions Several definitions a ♦ Middleware is software

Middleware definitions and overview 3 Which middleware family

# 14

3.1 Families of middleware

■ RPC middleware

■ Object Middleware

■ Message Oriented Middleware

■ Component Middleware

■ Service Middleware

■ Database middleware

■ Persistency middleware

Télécom SudParis — INF — septembre 2019 — ASR/CSC5002 14/27

Page 15: Middleware definitions and overvie · Middleware definitions and overview 1 Which middleware ? # 4 1.1 Middleware definitions Several definitions a ♦ Middleware is software

Middleware definitions and overview 3 Which middleware family

# 15

3.2 Main family history

OMG OTS−1994

JMS

TIBCO TIB

InformationBus−R−1992

Module Interconnection Language−R−1976

Nested transaction−R−1980

Recoverability−R−1988

Arjuna−R−1989

IBM EncinaBEA Tuxedo

EJB & JTA

JBoss ASIBM WebSphere

BEA WLS

Field−R−1987

DEC FUSE

DEC MQ

BEA MQ

Mesa−R−1979

RPC−R−1981

Cedar RPC−R−1984

Emerald−R−1987

Orca−R−1989

Network Objects−R−1993

RPC Systems

ONCANSA

CORBA

RMI

RMI−R−1998

SOAP & WSDL

XML

SGML−R−1986

Scribe−R−1981

GML−R−1981

Eclipse WTPApache Axis

Microsoft .NET

Télécom SudParis — INF — septembre 2019 — ASR/CSC5002 15/27

Page 16: Middleware definitions and overvie · Middleware definitions and overview 1 Which middleware ? # 4 1.1 Middleware definitions Several definitions a ♦ Middleware is software

Middleware definitions and overview 3 Which middleware family

# 16

3.3 Interaction styles

■ Middleware for distributed synchronous calls (interaction layer)♦ RPC : request broker,♦ CORBA : object request broker, multi-languages, Local Area Network (LAN)♦ RMI : object request broker, java, LAN♦ Web services (synchronous messages) : multi-languages, Wide Area Network

▶ REST (microservice architecture)▶ SOAP (Service Oriented Architecture, service orchestration)

■ Middleware for publish/subscribe (interaction layer)

♦ MQTT For the IoT♦ JMS LAN♦ AMQP, RabbitMQ♦ ESB Enterprise Service Bus, WAN

Télécom SudParis — INF — septembre 2019 — ASR/CSC5002 16/27

Page 17: Middleware definitions and overvie · Middleware definitions and overview 1 Which middleware ? # 4 1.1 Middleware definitions Several definitions a ♦ Middleware is software

Middleware definitions and overview 3 Which middleware family

# 17

3.4 Object/Service/Component lifecycle : servers and containers

■ Application server manager : instantiation, containers♦ Application Servers

▶ JavaEE (JBoss, glassfish, Websphere) :▶ Light servers : Spring

♦ Web container : Web Server (tomcat, jetty, LiteWebServer) :

Télécom SudParis — INF — septembre 2019 — ASR/CSC5002 17/27

Page 18: Middleware definitions and overvie · Middleware definitions and overview 1 Which middleware ? # 4 1.1 Middleware definitions Several definitions a ♦ Middleware is software

Middleware definitions and overview 3 Which middleware family

# 18

3.5 Data management

■ Data Oriented Middleware (network and data layers)♦ EAI Enterprise Application Integration, data exchange, WAN♦ REST (Representational State Transfer)♦ DDS Data Distribution Service

■ Persistency middleware handles persistency of data or objects (data layer)♦ JavaEE (EJB) includes persistency preoccupation (various technologies)♦ Hibernate is a persistency framework (from object to relational database

paradigm)

Télécom SudParis — INF — septembre 2019 — ASR/CSC5002 18/27

Page 19: Middleware definitions and overvie · Middleware definitions and overview 1 Which middleware ? # 4 1.1 Middleware definitions Several definitions a ♦ Middleware is software

Middleware definitions and overview 3 Which middleware family

# 19

3.6 Presentation middleware

■ Presentation middleware : handles presentation of information (presentationlayer)♦ Struts Web presentation of components through the MVC approach (Model

View Controler)

Télécom SudParis — INF — septembre 2019 — ASR/CSC5002 19/27

Page 20: Middleware definitions and overvie · Middleware definitions and overview 1 Which middleware ? # 4 1.1 Middleware definitions Several definitions a ♦ Middleware is software

Middleware definitions and overview

# 20

4 Architecture

4.1 Service Oriented Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214.2 Component based Architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .224.3 Microservice architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234.4 3 tiers Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

Télécom SudParis — INF — septembre 2019 — ASR/CSC5002 20/27

Page 21: Middleware definitions and overvie · Middleware definitions and overview 1 Which middleware ? # 4 1.1 Middleware definitions Several definitions a ♦ Middleware is software

Middleware definitions and overview 4 Architecture

# 21

4.1 Service Oriented Architecture

■ Service Oriented Architecture (for sequence of services)♦ Service abstraction♦ Service Orchestration

a

a. Source de la figure https ://www.ibm.com/developerworks/mydeveloperworks/blogs/devaprasad/

Télécom SudParis — INF — septembre 2019 — ASR/CSC5002 21/27

Page 22: Middleware definitions and overvie · Middleware definitions and overview 1 Which middleware ? # 4 1.1 Middleware definitions Several definitions a ♦ Middleware is software

Middleware definitions and overview 4 Architecture

# 22

4.2 Component based Architecture■ Component abstraction■ Component Assembly (e.g. SCA Service Component Architecture, Fractal

components, CORBA Component Model)

Télécom SudParis — INF — septembre 2019 — ASR/CSC5002 22/27

Page 23: Middleware definitions and overvie · Middleware definitions and overview 1 Which middleware ? # 4 1.1 Middleware definitions Several definitions a ♦ Middleware is software

Middleware definitions and overview 4 Architecture

# 23

4.3 Microservice architecture

■ A microservice is a software architectural style that structures an application as acollection of loosely coupled services.

■ Advantages :

♦ modularity♦ continuous delivery♦ better scalability

■ Microservices interaction patterns♦ Services in a microservice architecture are often processes that communicate

over a network▶ For synchronous interactions : REST over HTTP (one of the most

popular)▶ For Asynchronous interactions : AMQP and Akka actors are good

candidatesTélécom SudParis — INF — septembre 2019 — ASR/CSC5002 23/27

Page 24: Middleware definitions and overvie · Middleware definitions and overview 1 Which middleware ? # 4 1.1 Middleware definitions Several definitions a ♦ Middleware is software

Middleware definitions and overview 4 Architecture

# 24

4.4 3 tiers Architecture

Presentation Application logic Persistency

Télécom SudParis — INF — septembre 2019 — ASR/CSC5002 24/27

Page 25: Middleware definitions and overvie · Middleware definitions and overview 1 Which middleware ? # 4 1.1 Middleware definitions Several definitions a ♦ Middleware is software

Middleware definitions and overview

# 25

5 Synthesis

5.1 Layer view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265.2 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Télécom SudParis — INF — septembre 2019 — ASR/CSC5002 25/27

Page 26: Middleware definitions and overvie · Middleware definitions and overview 1 Which middleware ? # 4 1.1 Middleware definitions Several definitions a ♦ Middleware is software

Middleware definitions and overview 5 Synthesis

# 26

5.1 Layer view

WebServices/JavaRMI

Synchronous Call

TCP/UDP

sockets

BPELSCA

Activity Orchestrations

Application servers

− Life cycle (instantiate)

− Persistency

Structural Compositions

JavaEE

RabbitMQ

Publish/Subscribe

Télécom SudParis — INF — septembre 2019 — ASR/CSC5002 26/27

Page 27: Middleware definitions and overvie · Middleware definitions and overview 1 Which middleware ? # 4 1.1 Middleware definitions Several definitions a ♦ Middleware is software

Middleware definitions and overview 5 Synthesis

# 27

5.2 Conclusion

■ In a same family, the Choice of middleware may be decided lately when designingan application (e.g. Java RMI vs WebService).

■ Middleware may connect pieces of software implemented separately and availableon the network.

■ Standardisation is essential to connect pieces of software■ Universal adapter is of course not possible :

♦ Many technologies are available with different characteristics (e.g., targetplatform, semantics, efficiency)

♦ The basic of middleware is about distribution (RPC, RMI) sometimes calledplumber solutions.

♦ Above distribution, higher abstractions may be built : publish/subscribe, datadistribution, persistency, presentation, naming, workflow, orchestration andcomposition.

Télécom SudParis — INF — septembre 2019 — ASR/CSC5002 27/27


Recommended