Introduction to Middleware for Software Engineering - PowerPoint PPT Presentation

About This Presentation
Title:

Introduction to Middleware for Software Engineering

Description:

Component Containers. Message-oriented. Procedural Middleware. Problems Addressed ... Evolution of RPC to Containers and MOM. We will look at... Using AOP to ... – PowerPoint PPT presentation

Number of Views:157
Avg rating:3.0/5.0
Slides: 19
Provided by: wohl
Category:

less

Transcript and Presenter's Notes

Title: Introduction to Middleware for Software Engineering


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
2
1
2
1
PL
PL
PL
PL
IDL
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
  • _at_TransactionAttribute(REQUIRED)
  • _at_ 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
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
Subscriber
IBM
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)
Write a Comment
User Comments (0)
About PowerShow.com