1 / 18

Introduction to Middleware for Software Engineering

Introduction to Middleware for Software Engineering. Eric Wohlstadter 539D. What is Middleware?. Mediates heterogeneities (differences) Defines standard protocols for distributed computing Abstracts details of using protocols Programmers use abstractions Abstractions implement protocols

enye
Download Presentation

Introduction to Middleware for Software Engineering

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction to Middleware for Software Engineering Eric Wohlstadter 539D

  2. What is Middleware? • Mediates heterogeneities (differences) • Defines standard protocols for distributed computing • Abstracts details of using protocols • Programmers use abstractions • Abstractions implement protocols • Provided as off-the-shelf software • Not traditionally integrated in the operating system

  3. Problems with Distribution

  4. Some Middleware Categories • Remote Procedure • Object-oriented • Component Containers • Message-oriented

  5. Procedural Middleware • Problems Addressed • Tedious to build distributed applications with sockets • Heterogeneous data types • Memory management (buffers) • Network failures • Approach • Compiler generated socket code • Socket code becomes the “assembly language” • Examples • Sun RPC • SOAP

  6. RPC Approach • Define function signatures using an interface definition language (IDL) • IDL ensures compatibility across platforms

  7. RPC Approach PL PL PL PL 1 2 1 2 PL PL PL IDL PL 6 3 6 3 PL PL PL PL 5 4 5 4 Text and Graphics from Prof. Wolfgang Emmerich, University College, London

  8. RPC Approach • IDL is compiled into generated stubs

  9. Object Middleware • Problem Addressed • Tedious to build distributed applications with RPC • Extensibility is hard • Difficult to manage stateful resources • Approach • Distributed Objects • Examples • CORBA • Java RMI • DCOM

  10. Object Approach • Interface inheritance allows server to add new features without invalidating clients • Client can create and destroy instances of objects which live on server • Client maintains distinct stub instances for each distributed object • Objects can be migrated and/or replicated

  11. Containers • Problem Addressed • Hard to manage crosscutting concerns • Approach • Declarative Services • O/R Mapping • Examples • Enterprise Java Beans • COM+ (.NET) • Spring Framework

  12. CORBA-style method transfer(int amount,int account1, int account2) { /* Apply access control */ /* Signal beginning of transaction */ /* Update Database for account1 */ /* Update Database for account2 */ /* Signal Commit or Rollback of Transaction */} Programmer must handle persistence, transactions, security…

  13. EJB-style method @TransactionAttribute(REQUIRED) @ Interceptor(AccountSecurity.class) transfer (int amount, Account account1, Account account2) {/* Update Account 1 */ /* Update Account 2 */ } Many details taken care of by container

  14. EJBContainerServices EJBRemoteobject EJB How the container intervenes EJBContainer

  15. Message-Oriented Middleware • Problems Addressed • High-coupling between client and server • Approach • Message Queuing • Temporal Decoupling • Pub-Sub • Referential Decoupling • Can be combined • Examples • MSMQ • MQSeries

  16. Point-to-Point

  17. Pub-Sub Messages delivered through router infrastructure Deliver is based on topic subscriptions NEC && AMD Subscriber Router Router IBM IBM Subscriber Publisher

  18. Conclusion • Evolution of RPC to Containers and MOM • We will look at… • Using AOP to implement middleware • Applying AOP to distributed application programming • Distributed AOP • Designing new kinds of middleware (mobile, P2P, service-oriented)

More Related