Sponsored Links
This presentation is the property of its rightful owner.
1 / 36

Middleware PowerPoint PPT Presentation

  • Uploaded on
  • Presentation posted in: General

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 ?.

Download Presentation


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

  • 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.

    Remote Procedure Call Model



    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

    CORBA Architecture

    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


    Prism-MW’ Core

    Prism-MW: Ports

    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)

    From architecture to Implementation

    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

    IBM’s CICS

    The CICS transaction flow

    The CICS transaction flow (2)

    The CICS transaction flow (3)

  • Login