Middleware

Web-Based Services (INFOSYS 290-3)

Erik Wilde, UC Berkeley iSchool
Monday, September 25, 2006
Creative Commons License

This work is licensed under a Creative Commons
Attribution-NonCommercial-ShareAlike 2.5 License.

Abstract

Middleware is a classical component of large heterogeneous distributed systems. The history of middleware is rooted in software engineering, based on the observation that programming abstractions can do two important things at the same time: (1) They can help to make programming more efficient by providing support for tasks that have to be solved repeatedly. (2) They can provide abstractions that hide heterogeneity, so that applications using these abstractions can communicate regardless of differences on lower layers.

Tools Shape Your Mind

If the only tool you have is a hammer, you tend to see every problem as a nail.

Abraham Maslow

Tools Should Change…

Tool Fundamentalism

Boundary Objects

Outline (Systems Engineering)

  1. Systems Engineering [4]
  2. Middleware [7]
  3. Common Object Request Broker Architecture (CORBA) [5]
  4. Conclusions [1]

Operating Systems

Distributed Operating Systems

Distributed Systems

Beyond Distributed Systems

Outline (Middleware)

  1. Systems Engineering [4]
  2. Middleware [7]
  3. Common Object Request Broker Architecture (CORBA) [5]
  4. Conclusions [1]

Anyware

RPC

RPC and Middleware

RPC-Oriented Middleware

Viewpoints

Boundary Object Viewpoints

Two Implementations

  1. The service that has to be implemented is simple
    • how to get a pen from the office supply office
  2. IT people come up with a highly detailed set of RPCs
    • different calls for submitting the type, the account, the office number, …
    • access is handled by getting the shelf number and other service internals
    • if not called in right sequence, the process fails
  3. Enterprise people come in and want a service-oriented interface
    • the fine-grained interface has to be replaced by a coarse-grained one
  4. IT people walk away and redesign their interfaces
    1. all information is now in one big document, returned is another big document (including a map to the shelf)
    2. alternatively, all non-essential information could be removed (in: account; out: pen)

Outline (Common Object Request Broker Architecture (CORBA))

  1. Systems Engineering [4]
  2. Middleware [7]
  3. Common Object Request Broker Architecture (CORBA) [5]
  4. Conclusions [1]

Object Request Broker (ORB)

ORB Architecture

Distributed OO Programming

*IOP

The CORBA Hammer

Outline (Conclusions)

  1. Systems Engineering [4]
  2. Middleware [7]
  3. Common Object Request Broker Architecture (CORBA) [5]
  4. Conclusions [1]

History Repeats Itself