Trends in Middleware Systems - Selected Topics and Concepts - Spring 2003
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: Bahen Bldg. BA 1200, 40 St. George Street
Time: Thursday 4 PM - 6:00/6:30 PM
Textbook: Research papers et al.
Previous years: 2002; 2001.

This page is under revision now - Thu Jan 9 10:54:29 EST 2003 and is not official until it stops blinking.

New meeting time is 4 - 6/6:30 PM in BA 1200.

Most dates on the page are "out of shape", please be patient until they are updated.

Please visit this page regularly for updates and announcements.

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

This page may 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, J2EE, MQSeries, MSMQ, and Web Services.

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.

Brief Topic Outline

The following constitutes a tentative outline of the course.

  1. Introduction and overview
  2. Reference models, modeling, and "the making of middleware"
  3. Remote communication, request broker, and CORBA
  4. Adaptive middleware
  5. Novel design methdology: Aspects and open implementation
  6. Naming in distributed systems
  7. Messaging and message oriented middleware
  8. Event notification and publish/subscribe
  9. Data distribution and tuple spaces
  10. Transaction processing and TP-monitors
  11. Mediators
  12. Application Servers

Course Objectives

This course constitutes a first-level graduate course. While it aims at highlighting trends within the middleware space, it also tries to conceptualize and identify fundamental principles of middleware systems. Moreover, the course is interwoven with so called "expert topics". These are highly specialized and trendy developments in the context of the course covered by students.

Lecture Outline (tentative)

Part I: Overview and Introduction
January 9th: 0. Course overview and introduction to middleware systems
This course will cover administrative remarks, give a 
broad overview of the subject and outline the course. 
Topics covered:
  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 ?

[  Slides  ]

Reading assignment: D. Bakken, A. T. Campbell etal. .
January 16th: Reference models, modelling, and "the making" of middlware.
Topics covered:
   Categories of Middleware
   The Object Management Group
   "The Making of Middleware" (i.e., different standard processes)
   Architecture Reference model(s):
     object management architecture (OMA)
   "Too much middleware paper discussion"
Reading assignment: OMG (Vision & OMA) . MDA, Stonebraker.
January 23rd: Remote communication, request broker, CORBA
Topics covered:
   Remote communication principles
   from RPC to request brokering
   the common object request broker architecture
   (presentation formatting)
Reading assignment: CORBA, Presentation Formatting.
January 30th: Adaptive and reflective middleware
Topics covered:
   the common object request broker architecture (finishing up)
   presentation formatting
   reflective middleware
Reading assignment: Reflective, Presentation Formatting.
February 6th: Novel Implementation Paradigms
Topics covered:
  open implementation
  aspect orientation
  aop-based middleware
Reading assignment: Open Implementation, AOP, AOP-based middleware.
February 13th: Naming in distributed systems
Topics covered:
  (wrap-up on novel implementation paradigms and middleware)
  the domain name system
  light wight directory access protocol
Reading assignment: DNS, LDAP.
February 27th: Group communication abstractions
Topics covered:
  basis notion of GC
  why is it middleware
  what does it support
  a few examples
Reading assignment: ISIS, HORUS, (recommended) synchronous & asynchronous group communication,
March 7th: Publish/Subscribe
Topics covered:
  motivating applications
  alternative p/s models
  p/s algorithms for
    predicate matching
    subscription matching
Reading assignment: An overview, Algorithm (recommended not required reading).
March 27th: Data Distribution and Tuple Spaces
Topics covered:
  computing with Linda
  tuple space model and applications
  relationship to p/s
Reading assignment: Tuple Spaces the TSpaces example..
April 3rd: Message Oriented Middleware
Topics covered:

Reading assignment: Message oriented middleware overview (relationship to p/s), Message queues.
April 3rd: Transaction Processing and TP-Monitors
Topics covered:

Reading assignment: , .
April 10th: We will see (Mediators - App. Servers - Caching
Topics covered:

Reading assignment: , .
April 11th (possible special lecture on Friday, pls. mark your calendars): We will see (Mediators - App. Servers - Caching
Topics covered:

Reading assignment: , .
April 11th + TBA: The final quizz
Topics covered:
Reading assignment: , .


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, e.g., is available over the Web. For the benefit of the students we have cached much of the reading material locally. From within the UofT domain you should have access to parts of the IEEE and the ACM digital 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. (Cached.)

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

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) 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, and Ch4] .

Developing in OMG s Model-Driven Architecture. Jon Siegel and the OMG Staff Strategy Group. Object Management Group White Paper November, 2001 Revision 2.6. (Cached.)

Too Much Middleware.Michael Stonebraker. SIGMOD Records V2.3. (Cached.)

CORBA: Integrating Diverse Applications Within Distributed Heterogeneous Environments. By Steve Vinoski. IEEE Communications, February 1997. (Cached.)

Philipp Hoschka. Compact and efficient presentation conversion code. IEEE/ACM Transactions on Networking (TON). Volume 6, Issue 4 (August 1998).

The Case for Reflective Middleware: Building Middleware that is Flexible, Reconfigurable, and yet Simple to Use. Fabio Kon, Fabio Costa, Gordon Blair, Roy H. Campbell. Communications of the ACM, 2002.

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. (Cached.)

Aspect-oriented programming. G. Kiczales; ACM Comput. Surv. 28, 4es (Dec. 1996), Article 154. (Cached.)

Recommended - not required (long introduction to AOP) Aspect-Oriented Programming Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Videira Lopes, Jean-Marc Loingtier, John Irwin. (Cached.)

ASPECTIZING MIDDLEWARE SYSTEMS Charles Zhang and Hans-Arno Jacobsen Technical Report CSRG-466, University of Toronto January 2003. (Cached.)

Development of the Domain Name System. Paul V. Mockapetris, Kevin J. Dunlap SIGCOMM'1988, (cached locally).

Using LDAP directory caches. Sophie Cluet, Olga Kapitskaia and Divesh Srivastava. In Proceedings of the Workshop on Query Processing for Semistructured Data and Non-Standard Data Formats, 1999. (A more comprehensive paper is available from the same link above, look for paper published a year later at PODS, same title, same authors.)

Kenneth P. Birman: The Process Group Approach to Reliable Distributed Computing. CACM 36(12): 36-53, 103. 1993. (Cached.)

Horus: A Flexible Group Communications System. 1996. Robbert van Renesse, Kenneth P. Birman, Silvano Maffeis Communications of the ACM, April 1996. (Cached.)

Recommended - not required Synchronous and asynchronous. Flaviu Cristian. Communications of the ACM, April 1996, Volume 39 Issue 4, Pages: 88 - 97. (Cached.)

The Many Faces of Publish/Subscribe P.Th. Eugster, P. Felber, R. Guerraoui, A.-M. Kermarrec

Recommended - not required Françoise Fabret, Hans-Arno Jacobesen, François Llirbat, João Pereira, Kenneth Ross, Dennis Shasha. Filtering Algorithms and Implementation for very fast publish/subscribe systems. SIGMOD Conference, Santa Barbara, CA. May, 2001.

Hitting the distributed computing sweet spot with TSpaces. Computer Networks, 2001. (Search for this title in linked page.)

A Case for Message Oriented Middleware Guruduth Banavar Tushar Chandra Robert Strom and Daniel Sturman IBM T J Watson Research Center Hawthorne New York (cached locally).

Conditional Messaging: Extending Reliable Messaging with Application Conditions, Stefan Tai, Thomas Mikalsen, Isabelle Rouvellou, Stanley M. Sutton Jr. 22nd IEEE International Conference on Distributed Computing Systems (ICDCS 2002), Vienna, Austria, July 2002. (cached locally).

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. (cached locally).

Transaction processing monitors. Philip A. Bernstein; Commun. ACM 33, 11 (Nov. 1990), Pages 75 - 86. (cached locally).

Further reading material will follow here.

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

Books on the Subject of the Course

These books are NOT required reading, but intended as overview or background material, if required by students.

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. A list of suggested topics will be distributed in class.

For your final project write-up you must use the proposed format (cf. ACM proceedings format.) 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 marking scheme

Final project timeline etc.: Progress Report:
- submit a progress report by e-mail in ASCII (plain e-mail) anytime before Friday
  March 21th (note date changed from 14th to 21st, as announced in class).

- 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 Friday, February 14th  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


Project idea suggestions

A list of suggested project topics will be distributed in class a few weeks after the beginning of the semester.

Assignments and Final

ECE 1770 72-hour Take-Home Final Exam

Assignment 1, due Thursday, March 13th, 2003 at the beginning of the lecture. (Assigned on February 13th, 2003.)

Expert Topic

The expert topic refers to the independent study of a selected area within the context of middleware systems each student taking this course is performing. Each student will deliver a 20 minute lecture on his or her topic in front of the class and write up a maximal 10 page overview (i.e., a critical synthesis of the literature reviewed for this topic.)

A 20 minute talk will require on the order of ten well thought out slides (much more is probably overkill.) Like during a conference talk, you will be cut off after you time slice has expired.

The topics will be assigned in the second lecture and start in the third lecture. The topics will complement the lecture material covered.

If two students are working on one topic together, both have to do half of the presentation and one coherent paper about the topic has to be delivered.

About five to eight sources have to be reviewed, if a topic is covered by one student. About ten to five-teen sources have to be reviewed if the topic is covered by two students.

The presentation of the topic should be done in a didactic manner and it should consolidate and synthesize the material covered. Presentations are delivered online via the laptop (make sure your presentation software is available (ppt - pdf - ps - html work fine).) The paper should summarize the synthesize. The paper is to be turned in no later than one week after the presentation.

The evaluation of the presentation is based on the delivered talk. Three levels are possible: exciting - alright - general boredom.

The paper is evaluated according to readability and the synthesis presented, i.e., evaluation, comparison and critical assessment of the material covered is important.

Both paper and presentation will be published on the course web site. Make sure you do not present un-referenced sources.

Expert topic overview:

Below is the list of topics and the list of students who choose a specific topic. The starting point is supposed to help you find a start. It goes without saying that will provide you with further material - probably more than you can handle. From the "starting point" on you are supposed to find your own references. For most topics we are interested in research type papers. Only, if stated otherwise, will commercial white papers be accepted as viable reference. For some topics not much material is know, here you should, either try to find your own, or, better, think about the topic and come up with a non-trivial discussion.

Make sure that you check back a week prior to your presentation with the instructor to see whether we are on schedule.
Date Student(s) Topic Starting Point
January 23rd: Remote Invocations Lecture Sep. [ Slides ]. Middleware for Grid computing and relationship to middleware at large. Grid Forum
January 23rd: Remote Invocations Lecture Fan and Alvin [ Slides ]. Web Services: An overview of architecture, operation, and model Web Services Specs. at W3C (2)
January 30th:Adaptive Middleware Lecture
free free free
February 6th: Novel design methodologies Lecture Farid and Reza [ Slides ]. Generative programming GP short paper and GP Book
February 13th: Naming Lecture Eli and Vinod [ Slides ] Naming in peer-to-peer systems E.g., Chord paper(1)
February 13th: Naming Lecture David and Ran [ Slides ] Distributed hash tables E.g., Distributed Hash Tables + cited papers.
February 27th: Group Communication Lecture free free free
March 7th: Publish/subscribe Lecture Milenko and Cao [ Slides ] Real time publish/subscribe Think + find your own
March 13th:Data Distribution and Tuple Spaces Lecture Ioana and Wonho [ Slides ] Algorithms for the Implementation of Tuple Space Think + find your own
March 27th:Messaging Lecture
Humie Leung and Liangjie Huo (Annabelle) [ Slides ] free free
April 3rd: Transaction Lecture Tim and John [ Slides ] Messaging and transactions Conditional Messaging & Dependency-Spheres (D-Spheres) project
April 3rd: Transaction Lecture Cancaled Transaction in Publish/Subscribe Think + find your own
April 10th:Mediators Lecture Wai and Thima [ Slides ] Mediators and XML E.g., Querying Distributed Data using XML
April 11thAdapter Ken [ Slides ] Overview of application adapter technology Based on industrial white papers, I am afraid.


The course grade is broken down as follows:


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