Trends in Middleware Systems - Selected Topics and Concepts - Spring 2002
ECE1770 - Graduate Course

With a few words

Instructor: Prof. H.-Arno Jacobsen
[ Contact Information ]
Office hours: Catch me right after class, or by appointment.
Room: Room 510, 203 College Street ....tba
Time: Tuesdays ... .tba
Textbook: Research papers et al.

Please visit this page regularly for updates and announcements.

This course has been offered before, but will differ significantly from previous times.

This page will soon be moved into our web-based system PLATO (platform for learning and teaching online).

Announcements and News

Where is the any key ?



A "middleware system" (a.k.a. computing infrastructure) constitutes a set of services that aim at facilitating the development of distributed applications in heterogeneous environments. The primary objectives of middleware are to foster application portability and distributed application component interoperability. At least conceptually, the "middleware layer" comprises a layer below the application and above the operating system and network substrate. Common middleware platforms include CORBA, DCOM, Java RMI, MQSeries, and MSMQ et al.

This course will cover current trends in middleware platform design, implementation, and use. The objective is to understand common principles of middleware platforms, learn about their applicability and use for distributed application development, and study fundamental implementation concepts. These concepts include: open implementation, aspect-orientation, application level framing, integrated layer processing, and micro-kernel architecture principles applied to middleware platform design.

Middleware architecture principles covered, include: RPC/RMI-systems (CORBA, DCOM, DCE, Java RMI) transaction processing systems, message queuing systems (MQSeries and MSMQ), directory access protocols (LDAP), database access and integration technology (ODBC, JDBC, mediators), and component models (COM+, Corba Component Model, Enterprise Java Beans). The focus will be on common principles underlying these platforms with a detailed look at a selected subset of these systems.

The course takes a balanced approach in that it covers established protocols (programming models, use and deployment, and implementation concepts) and addresses for each of the topics covered state-of-the-art research issues and questions.

The course targets graduate students with a background in systems and exposure to programming, also advanced undergraduate students may benefit from the subjects covered.

Meeting Times


Lecture Outline (tentative)

Part I: Overview and Introduction
January 8th: 0. Course overview and introduction to middleware systems
This course will cover course administrativa and give a 
broad overview of the subject and outline the course. 
Reading assignment: D. Bakken, A. T. Campbell etal. .
January 15th: 1. Middleware systems introduction and overview
Distributed application examples and case studies
Definition, scope, high-level description of middleware.
Categories of middleware.
Where does middleware term come from ? Why is it needed ?
Architecture Reference model(s):
   object management architecture (OMA)
Reading assignment: P. Bernstein, OMG (Vision & OMA) .
January 22nd: 2. Reference Architecture(s) and Modelling
(cont.'d from last time - finishing Reference 
 Architecture OMA discussion)
Small Application Case study of CORBA - the Grid Object.
Course project sample topics discussion.
Reading assignment: Note, this reading will be covered on the 29th. Granville Miller - Part I, Granville Miller - Part II, Granville Miller - Part III, Kobryn.
January 29th: 3. Modelling and Design
Unified Modelling Language - UML
  Note, last times reading applies to this time.
  Added one more paper on UML and one overview paper on CORBA,
    which we covered last time.

Interface Definition Language - IDL
Reading assignment: Jim Conallen (UML modelling example), S. Vinoski (CORBA architecture overview), From the CORBA Specification: OMG (Ch3 Object Model p 3.1 - 3.8) .
February 5th: 3. RPC/RMI Middleware
Interface Definition Language - IDL
CORBA model cont.'d.
Reading assignment: No reading assignment, the OrbAcus and the JacOrb manuals are recommended reading, depending on your choice of platform for the homework assignment 1.
February 12th: 3. RPC/RMI Middleware cont'.d.
IDl to C++ language mapping
Reading assignment: No reading assignment, the OrbAcus and the JacOrb manuals are recommended reading, depending on your choice of platform for the homework assignment 1.
February 19th: 3. RPC/RMI Middleware cont.'d.
No class - Reading Week - see reading assignment.
Reading assignment: No reading assignment, the OrbAcus and the JacOrb manuals are recommended reading, depending on your choice of platform for the homework assignment 1.
February 26th: 3. RPC/RMI Middleware cont.'d.
IDL type ANY
Reading assignment: No reading assignment, the OrbAcus and the JacOrb manuals are recommended reading, depending on your choice of platform for the homework assignment 1.
March 5th: Implementation and Design Concepts
Application Level Frameing and Integrated Layer Processing
Open Implementation
Aspect Oriented Programming
Micro-kernel Design
Reading assignment: Clark ALF & ILP, Kiczales OI, Kiczales AOP, Liedtke mu-kernel.
March 12th: Towards applying some of these concepts
The seminal paper: "A note on distributed computing." (What's wrong with middleware
The OpenCom project and the OpenCorba project.
Reading assignment: Waldo et al. What's wrong with middleware ? Blair et al. OpenCom, Ledoux OpenCorba.
March 19th: Transaction Services
Transaction services
Reading assignment: Alonso Informal description, Bernstein TP-Monitors and transaction services, Pardon et al. transaction service implementation.
March 26th: Publish/subscribe systems
Publish/subscribe systems I
Reading assignment: TBA
April 2nd: Publish/subscribe systems II
Publish/subscribe systems
Reading assignment: TBA
April 9nd: TBA
Reading assignment: TBA
April 16th: TBA
Reading assignment: TBA


Reading Material

The reading material for this class consist of a class reader (mostly linked online, no printed version will be distributed) and recommended readings. The class reader is required reading, the recommended material is not required, but may serve as further reference material.

Reading material will be announced on this web site about one week prior to class and must be read before the class in which it will be covered.

The section "Books on the subject" lists books about the issues covered. You DO NOT need to buy these books. This section lists introductory, tutorial, and further reference material. Similarily, "Web resources" list sites related to the issues covered in class. These may also be considered as further reference material.

Most of the literature is linked online, i.e., comes out of the ACM digital library. Out of the UofT domain you should have access to the library. Unfortunately, it is not possible to link into the IEEE digital library in this manner. IEEE publications and non-ACM publications will be made available by other means (see announcements in class).


Part I: Overview and Introduction

Middleware David E. Bakken. To appear in: Encyclopedia of Distributed Computing, Kluwer Academic Publisher. (File: middleware-article-bakken.pdf)

Managing Complexity: Middleware Explained Andrew T. Campbell, Geoff Coulson, and Michael E. Kounavis IT Professional, Vol. 1, No. 5, September/October 1999. [ UofT Library ]. ( campbell_etal.pdf .)

Middleware a model for distributed system services. Philip A. Bernstein; Commun. ACM 39, 2 (Feb. 1996), Pages 86 - 98. (File: p86-bernstein.pdf .)

A Discussion of the Object Management Architecture. Technical Specification. The Object Management Group. Read: Chapter 1 (6 pages) , Chapter 2 (6 pages) , Chapter 3 (7 pages) (Reading Assignment for lecture 2 - RPC/RMI use and implementation), Chapter 4 (12 pages) . Note, the entire specification on the OMG site is pretty long. Do NOT print the entire file, required reading is [Ch1, Ch2, Ch3, Ch4. (part of this material will be covered later on.)] .

Object Management Architecture Glossary. (Recommended Reading. Defines and explains some of the terminology used.) (File: oma-glos.pdf .)

A UML workbook, Part 1 Introduction to sequence diagrams Granville Miller.

A UML workbook, Part 2 Conditional logic in sequence diagrams Granville Miller.

A UML workbook, Part 3 User interface logic in use case modeling Granville Miller.

UML a standardization Odysseey (select from list, cf. other papers.) reader/p29-kobryn.pdf

Modeling Web application architectures with UML Jim Conallen. Communications of the ACM October 1999 Volume 42 Issue 10. p63-conallen.pdf.

CORBA: Integrating Diverse Applications Within Distributed Heterogeneous Environments. By Steve Vinoski. IEEE Communications, February 1997. (File: vinoski-ieee.pdf )

Open implementation design guidelines. Gregor Kiczales, John Lamping, Christina Videira Lopes, Chris Maeda, Anurag Mendhekar and Gail Murphy; Proceedings of the 1997 international conference on Software engineering, 1997, Pages 481 - 490. (File:p481-kiczales.pdf )

Toward real microkernels. Jochen Liedtke; Commun. ACM 39, 9 (Sep. 1996), Pages 70 - 77. (File: p70-liedtke.pdf)

Aspect-oriented programming. G. Kiczales; ACM Comput. Surv. 28, 4es (Dec. 1996), Article 154. (File:a154-kiczales.html)

Architectural Considerations for a New Generation of Protocols. David D. Clark, David L. Tennenhouse. in Proceedings of the SIGCOMM '90 Symposium on Communications Architectures and Protocols, Philadelphia, PA, September 1990. Computer Communications Review, Volume 20(4), p. 200--208, September 1990. (Application Level Framing and Integrated Layer Processing). (File:p200-clark.pdf )

A Note on Distribute Computing . Jim Waldo, Geoff Wyant, Ann Wollrath, and Sam Kendall TR-94-29 (November 1994).

An Efficient Component Model for the Construction of Adaptive Middleware Michael Clarke, Gordon S. Blair, Geoff Coulson, and Nikos Parlavantzas. LNCS 2218, p. 160 ff. Online publication: October 31, 2001. Springer-Verlag Berlin Heidelberg. (File:opencom.pdf)

OpenCorba: A Reflective Open Broker Thomas Ledoux. LNCS 1616, p. 197 ff. Online publication: December 07, 2001. Springer-Verlag Berlin Heidelberg. (File:opencorba.pdf)

Processes + Transactions = Distributed Applications G. Alonso. Proceedings of High Performance Transaction Processing Systems Workshop 1997. (Also in MiddlewareSpectra, vol.11, no.4) Asilomar, California, USA. (File:a97-hpts.pdf)

Transaction processing monitors. Philip A. Bernstein; Commun. ACM 33, 11 (Nov. 1990), Pages 75 - 86. (File: p75-bernstein.pdf )

Guy Pardon, Gustavo Alonso: CheeTah: a Lightweight Transaction Server for Plug-and-Play Internet Data Management, Proceedings of the ACM Very Large Databases Conference (VLDB 2000), Cairo, Egypt, 2000 (File:cheetah.pdf)

Books on the Subject of the Course

JavaTM Programming with CORBATM : Advanced Techniques for Building Distributed Applications -- Gerald Brose, Keith Duddy;

Corba Distributed Objects : Using Orbix, by Sean Baker. Addison-Wesley Pub Co; ISBN: 0201924757.

Enterprise Corba, by Dirk Slama, Jason Garbis, Perry Russell. Prentice Hall; ISBN: 0130839639.

Principles of Transaction Processing (Morgan Kaufman Series in Data Management Systems) Philip A. Bernstein, Eric Newcomer

Advanced CORBA Programming with C++, by Michi Henning, Steve Vinoski. Addison-Wesley Pub Co; ISBN: 0201379279.


Class Project

This course is project-based, i.e., you have to propose and carry out a project that investigates an issue within the scope of middleware systems.

For your final project write-up you must use the proposed format (cf. IEEE Transactions LaTeX and Microsoft Word Style Files .) Do not write more than 8 pages in the given format. Note, you may write less, if you are able to express your project results in fewer pages.

Your project report must be of "publishable quality". This means, the presentation should not include typos, not contain too many grammatical errors, etc. It DOES NOT mean that your paper must be ready for publication in a major conference. (Even though this would be a desirable future result, but is not necessary in order to achieve a good result in the course !)

Project grading scheme

Final project timeline etc.: Progress Report:
- submit a progress report by e-mail in ASCII (plain e-mail) anytime before Wednesday March 13th
- it should contain:

  - brief and concise description of the problem you are working on
  - describe your approach
  - summary of accomplishments so far
  - next steps 
  - problems encountered and how you anticipate to solve them
Project Proposals:
- are due Wednesday Feb. 6th, 2002,  at 11:59:59 pm
- just send me a plain e-mail with a description
- the proposal should include the following points:

    - problem statement: identify the problem
    - relevance: state why this is an important problem
    - related approaches: briefly review what others have done to solve this  problem
    - approach: say what you intend to do to solve the problem
    - describe anticipated difficulties

- the fraction of the grade for the proposal is 5%

Project idea suggestions

Note, you may also define your own project. The following constitutes a list of suggested project topics.


Assignment 3, due whenever, before the end of classes (i.e., per hardcopy).

Assignment 2, due Tuesday March 12th, 4 pm (i.e., per hardcopy in class).

Assignment 1, due Monday Feb. 25th, 10 am.

Hints for A1:


The course grade is broken down as follows:


Feel free to add links (for now send me email w.r.t. new links).