middleware
Download
Skip this Video
Download Presentation
Middleware

Loading in 2 Seconds...

play fullscreen
1 / 36

Middleware - PowerPoint PPT Presentation


  • 299 Views
  • 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 ?.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
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
middleware
Middleware

ThammanoonKawinfruangfukul

CSSE MS, ID: 1584488782

slide2

Agenda

  • What is middleware?
  • Middleware Vs. Frameworks
  • Middleware requirements
  • Middleware categories
  • Examples of middleware
  • From architecture to Implementation
  • Resolving mismatches
  • Summary
slide3

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

What is middleware? (cont.)

  • Standard for constructing and interconnecting components
    • interchange
    • upgrade
    • adaptation
    • aggregation
slide5

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

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
slide7

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
slide8

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
slide9

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
slide10

Examples of middleware

  • Sun RPC
  • CORBA
  • IBM’s CICS
  • MQSeries
  • Prism-MW
slide11

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

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
slide15

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
slide17

IBM’s CICS

Customer Information Control System

slide18

MQSeries (IBM WebSphereMQ)

MQSeries at Run Time

slide19

MQSeries: Message Queues

Message queues support both synchronous and asynchronous communication

Header (ID and Control) + Data

slide20

MQSeries: Message Queue Manager

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

slide21

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
slide25

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);

slide26

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)

slide29

Mapping an Architecture to an Implementation(2)

Comp 1

Comp 1

Architecture

(thread)

Async Event

RPC

(thread)

Implementation

Comp 2

Comp 2

29

slide30

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

slide31

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
slide32

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

ad