1 / 36

Middleware - PowerPoint PPT Presentation

  • Uploaded on

Middleware. Thammanoon Kawinfruangfukul CSSE MS, ID: 1584488782. Agenda. What is middleware ? Middleware Vs. Frameworks Middleware requirements Middleware categories Examples of middleware From architecture to Implementation Resolving mismatches Summary. What is middleware ?.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'Middleware' - travis

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript


CSSE MS, ID: 1584488782



  • What is middleware?

  • Middleware Vs. Frameworks

  • Middleware requirements

  • Middleware categories

  • Examples of middleware

  • From architecture to Implementation

  • Resolving mismatches

  • Summary


What is middleware?

  • Infrastructure that supports (distributed) component-based application development

    • independent software system

    • mechanisms to enable component communication

    • mechanisms to hide distribution information

    • Examples: CORBA, COM/DCOM/COM+, Java Message Service (JMS), etc.


What is middleware? (cont.)

  • Standard for constructing and interconnecting components

    • interchange

    • upgrade

    • adaptation

    • aggregation


What is framework?

  • software structure supporting various types of application domain

    • application-level

    • embodies architectural styles

    • incomplete software system; Fill in the blank

    • Examples: Symfony, MFC, etc.


Middleware Vs. Frameworks

  • Similarity:

  • Both provide developers with services not available in the underlying OS/language

  • Difference:

  • Frameworks

    • provide a software structure which embodies a software architectural design.

  • Middleware

    • provides infrastructure to support application.

    • helps application with lower-level facilities

    • implemented outside of application


Middleware requirements

  • Network communication

    • Helps different components in different hosts communicate with each other

    • Provides data transformation

  • Coordination

    • Provides synchronization when components communicate with each other.

      • Synchronous, deferred synchronous, and asynchronous communication.

    • Provides activation policies and manages persistent storage of components’ state.

    • Provides threading policies to control concurrent requests


Middleware requirements (cont.)

  • Reliability

    • Communication between two components

      • Best-effort, at-most-once, at-least-once, and

      • exactly-once

    • Communication among group requests

      • K-reliability, time-outs, and totally-ordered requests

    • Replicating component

  • Scalability

    • Ability to accommodate a growing future load.

      • Access, location, migration, and replication transparency

  • Heterogeneity

    • Supports interoperate between different hardware and operating system platforms, programming languages, and middleware


Middleware categories

  • Transactional

    • two-phase commit for distributed transactions

    • e.g., IBM’s CICS, BEA’s Tuxedo

  • Message-oriented (MOM)

    • communication via message exchange

    • e.g., MQSeries and Sun’s Java message queue

  • Procedural

    • remote procedure calls as the foundation

    • e.g., Sun RPC, DCE RPC

  • Object-based

    • communication among and via distributed objects

    • e.g., CORBA, COM, RMI

  • Component-based

    • support for distributed components

    • e.g., EJB

  • Middleware

    Examples of middleware

    • Sun RPC

    • CORBA

    • IBM’s CICS

    • MQSeries

    • Prism-MW



    • The caller process sends a call message and waits for the reply.

    • On the server side a process is dormant awaiting the arrival of call messages.

    • Difference between RPCs and local procedure calls

      • Use of global variables as the server

      • Performance may be affected by the transmission times.

      • User authentication may be necessary.

      • Location of server must be known.



    Common Object Request Broker Architecture

    • A middleware platform that supports a standardized OO architecture for software applications

    • CORBA supports distributed object computing

    • CORBA does not require an underlying OO implementation

    • It uses a broker

      • an intermediary handling requests in a system

      • facilitates communication between clients and server objects

      • separates a component’s interface from its implementation

    • Communication

    • Invoke methods via RPCs

    • Both synchronous and deferred synchronous communication


    Main CORBA Features

    • Object request broker (ORB)

    • OMG interface definition language (IDL)

    • Language mappings

    • Stubs and skeletons

    • Interface repository

    • Dynamic invocation and dispatch

      • dynamic invocation interface

      • dynamic skeleton interface

    • Object adapters


    IBM’s CICS

    Customer Information Control System


    MQSeries (IBM WebSphereMQ)

    MQSeries at Run Time


    MQSeries: Message Queues

    Message queues support both synchronous and asynchronous communication

    Header (ID and Control) + Data


    MQSeries: Message Queue Manager

    Message queue manager provides the message queuing interface (MQI) for communication with applications



    Forprogramming-in-the-small-and-many setting

    • Architectural middleware for distributed, resource constrained, mobile, and embedded systems

    • Supports architecture-based software development

      • Architecture-based software development is the implementation of a software system in terms of its architectural elements

      • Enabling a direct mapping between an architecture and its implementation

    • Modular design


    Using Prism-MW

    Component A

    Component B

    Connector C

    Connector C



    Component D

    // establish the interconnections

    arch.weld(a, conn);

    arch.weld(b, conn);

    arch.weld(conn, d)



    Component A

    Component B

    Component D

    class Arch {

    static public void main(String argv[]) {

    Architecture arch = new Architecture (“ARCH");

    Architecture - ARCH

    // create components

    ComponentA a = new ComponentA ("A");

    ComponentB b = new ComponentB ("B");

    ComponentD d = new ComponentD ("D");

    // create connectors

    Connector conn = new Connector("C");

    // add components and connectors






    Using Prism-MW (2)

    Send (e1)

    Component A

    Component B

    • Component B handles the event and sends a response

    • public void handle(Event e)

    • {

    • if (e.equals("Event_D")) {

    • ...

    • Event e1= new Event("Response_to_D");

    • e1.addParameter("response", resp);

    • send(e1);

    • }...

    • }

    Connector C


    Component D

    Architecture - ARCH

    Component D sends an event

    Event e = new Event ("Event_D");

    e.addParameter("param_1", p1);

    send (e);

    Send (e)

    Possible solutions

    Mapping an Architecture to an Implementation

    Possible solutions:

    • Code generation

    • Middleware technology


    Mapping an Architecture to an Implementation(2)

    Comp 1

    Comp 1



    Async Event




    Comp 2

    Comp 2



    Resolving mismatches

    • A style is chosen first, but the middleware selected for implementation does not support (or contradicts) that style

    • A middleware is chosen first (or independently) and has undue influence on the architectural style used

    • Strategies

      • Change or adapt the style

      • Change the middleware selected

      • Develop glue code

      • Leverage parts of the middleware and ignore others

      • Hide the middleware in components/connectors

    Use the middlewareas the basis fora framework



    • Middleware

    • Middleware requirements

      • Network communication, Coordination, Reliability, Scalability, and Heterogeneity

    • Middleware categories

      • Transactional, Message-Oriented, Procedural, and Object and Component middleware

    • Examples of middleware

    • From architecture to Implementation

      • Hiding middleware in connector



    Taylor , R.N;Medvidovic , N.; Dashofy , E.M.; , “Software Architecture: Foundations, Theory, and Practice,” Wiley, 2009.

    Emmerich, W.: “Software engineering and middleware: a roadmap”. In: Proceedingsof the conference on The future of Software engineering (ICSE 2000) - Future ofSE Track, Limerick, Ireland, ACM Press (2000) 117–129

    D. Wackerow, "MQSeries Primer," IBM Redpaper, REDP- 0021-00, IBM Corporation (1999), http://www.redbooks. ibm.com/abstracts/redp0021.html?Open.

    M.B Juric, I Rozman, M Hericko, “Performance comparison of CORBA and RMI”, Information and Software Technology, Volume 42, Issue 13, 15 September 2000, Pages 915-933

    CICS TransactionServerfromStart to Finish

    http://www.redbooks.ibm.com/abstracts/sg247952.html?Open accessed on March 30, 2012

    Remote Procedure Call (RPC) http://www.pms.ifi.lmu.de/mitarbeiter/ohlbach/multimedia/IT/IBMtutorial/3376c410.html accessed on March 30, 2012

    Malek, S.; Mikic-Rakic, M.; Medvidovic, N.; , "A style-aware architectural middleware for resource-constrained, distributed systems," Software Engineering, IEEE Transactions on , vol.31, no.3, pp. 256- 272, March 2005

    Medvidovic, N.; ,“On the Role of Middleware in Architecture-Based Software Development”. In 14th International Conference on Software Engineering and Knowledge Engineering (SEKE), pages 299–306, 2002.

    Backup slides
    Backup Slides

    IBM’s CICS