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

Middleware PowerPoint PPT Presentation


  • 225 Views
  • 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

Middleware

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


Middleware

Middleware

ThammanoonKawinfruangfukul

CSSE MS, ID: 1584488782


Middleware

Agenda

  • What is middleware?

  • Middleware Vs. Frameworks

  • Middleware requirements

  • Middleware categories

  • Examples of middleware

  • From architecture to Implementation

  • Resolving mismatches

  • Summary


Middleware

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.


Middleware

What is middleware? (cont.)

  • Standard for constructing and interconnecting components

    • interchange

    • upgrade

    • adaptation

    • aggregation


Middleware

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

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

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

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

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


    Middleware

    SUN RPC

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


    Middleware

    Remote Procedure Call Model


    Middleware

    Portmap


    Middleware

    CORBA

    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


    Middleware

    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


    Middleware

    CORBA Architecture


    Middleware

    IBM’s CICS

    Customer Information Control System


    Middleware

    MQSeries (IBM WebSphereMQ)

    MQSeries at Run Time


    Middleware

    MQSeries: Message Queues

    Message queues support both synchronous and asynchronous communication

    Header (ID and Control) + Data


    Middleware

    MQSeries: Message Queue Manager

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


    Middleware

    Prism-MW

    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


    Middleware

    Prism-MW


    Middleware

    Prism-MW’ Core


    Middleware

    Prism-MW: Ports


    Middleware

    Using Prism-MW

    Component A

    Component B

    Connector C

    Connector C

    C

    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

    arch.addComponent(a);

    arch.addComponent(b);

    arch.addComponent(d);

    arch.addConnector(conn);


    Middleware

    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

    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)


    Middleware

    From architecture to Implementation


    Possible solutions

    Mapping an Architecture to an Implementation

    Possible solutions:

    • Code generation

    • Middleware technology


    Middleware

    Mapping an Architecture to an Implementation(2)

    Comp 1

    Comp 1

    Architecture

    (thread)

    Async Event

    RPC

    (thread)

    Implementation

    Comp 2

    Comp 2

    29


    Middleware

    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

    Summary

    • 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


    Middleware

    References

    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


    Middleware

    The CICS transaction flow


    Middleware

    The CICS transaction flow (2)


    Middleware

    The CICS transaction flow (3)


  • Login