middleware definitions and overvie · middleware definitions and overview 1 which middleware ? #...

of 27/27
Middleware definitions and overview Chantal Taconet ASR/CSC5002 septembre 2019 Revision : 545

Post on 18-Jul-2020

6 views

Category:

Documents

1 download

Embed Size (px)

TRANSCRIPT

  • # 1

    Middleware definitions andoverview

    Chantal Taconet

    ASR/CSC5002septembre 2019

    Revision : 545

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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