Presentation is loading. Please wait.

Presentation is loading. Please wait.

University of British Columbia Software Practices Lab Introduction to Middleware for Software Engineering Eric Wohlstadter 539D.

Similar presentations


Presentation on theme: "University of British Columbia Software Practices Lab Introduction to Middleware for Software Engineering Eric Wohlstadter 539D."— Presentation transcript:

1 University of British Columbia Software Practices Lab 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 6 2 5 1 4 3 6 2 5 1 4 3 IDL 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 How the container intervenes EJB EJB Container EJB Remote object EJB Container Services

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 Router Publisher Subscriber NEC && AMD IBM

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)


Download ppt "University of British Columbia Software Practices Lab Introduction to Middleware for Software Engineering Eric Wohlstadter 539D."

Similar presentations


Ads by Google