Download presentation
Presentation is loading. Please wait.
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)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.