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

With a few words

Instructor: Prof. Hans-Arno Jacobsen
[ Contact Information ]
Office hours: Catch me right after class, or by appointment.
Room: Bahen Bldg. BA 4164, 40 St. George Street
Time: Tuesday 3 PM - 5 PM ( Note, the time has been shifted to one hour later)
Textbook: Research papers et al.
Previous years: 2004, 2003, 2002, 2001.

Announcements and News

Overview

Syllabus

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, distributed application component interoperability, and facilitate software component integration. 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.

Other than in previous years (see 2003, 2002, and 2001.), this course will focus entirely on current research trends in the broad scope of middleware systems.

Last year's course (see 2004) focused on data dissemination and data management middleware abstractions, algorithms, and protocols. This year's course will emphasize on emerging software development paradigms and their application to the development of middleware abstractions per se.

This course targets advanced, research-oriented graduate students who would like to learn more about middleware systems research.

Brief Topic and Lecture Outline

The following constitutes a tentative outline of the course.

  1. Introduction and overview
  2. Emerging programming and software development paradigms
  3. Middleware systems based on emerging paradigms
  4. Experimentation

Course Objectives

This course constitutes a discussion-based, research-oriented graduate course about middleware system research. The objective is to learn about emerging software development paradigms and investigate their use for the development of middleware systems, and learn about the various research methodologies driving this research.

Reading Material

The below list of papers constitutes the tentative reading material for the course.

The paper designated as "Prepare a one-pager for this paper." is the required reading for all students. The other paper "blockquoted" after that paper should serve as optional reading for students, except the presenter who will have to synthesize the information in the papers as good as possible in his/her presentation.

Introduction and overview

The below two papers should serve as introduction to the topic context of this course. They illustrate the kind of questions we are interested in pursuing in this course.

Development paradigms

Aspect-oriented programming using reflection and metaobject protocols
Gregory T. Sullivan Pages: 95 - 97
http://doi.acm.org/10.1145/383845.383865

Using multidimensional separation of concerns to (re)shape evolving software
Harold Ossher, Peri Tarr
Pages: 43 - 50
http://doi.acm.org/10.1145/383845.383856

Systems bassed or possibly to-be-based on these paradigms

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 discussed in class.

The guidelines for research projects are as follows:

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
  TBA

- 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 TBA
- 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.

Marking

The course mark is broken down as follows:

One Pager

A "one pager" is a one page summary of the research paper assigned reading for the lecture. It should NOT be longer then one page of printed paper. The one pager is to be handed-in in class. It must be typed.

The one pager should address the following points:

There are four marks for a one pager:

  1. 0 - nothing was handed in
  2. 1 - one pager is not detailed enough
  3. 2 - one pager is good, all aspects covered
  4. 3 - one pager is exceptional, as it outlines further interesting points that go beyond the discussion in the paper

Research Paper Presentation

A group of students will be assigned to present a research paper for each lecture. The group is responsible for this presentation. The presentation should be no longer then 20 minutes and will take place at the beginning of the lecture. However, groups may decide on a different modus, if wanted. Groups may use additional literature to enrich the presentation and compare the solution in the assigned paper to other solutions. Groups are responsible for leading the follow-on discussion about the assigned paper. Groups may assume that all students have read the assigned paper but no assumption should be made about any other sources used by the group.

Each student in the group will be judged on how she or he presents the paper (i.e., all group members should participate in the presentation to some degree) and on how well each member leads the discussion and participates in the discussion.

There are four marks for this:

  1. 0 - no activity
  2. 1 - has done an okay job
  3. 2 - has done a good job
  4. 3 - has gone beyond the order of duty

Each member has to prepare a one pager.