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.
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.
The following constitutes a tentative outline of the course.
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.
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.
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.
C. Zhang and H.-A. Jacobsen. Resolving Feature Convolution in Middleware Systems. ACM OOPSLA 2004. (Prepare a one-pager for this paper.)
C. Zhang, H.-A. Jacobsen. Refactoring Middleware Platforms. IEEE Trans. on Parallel and Distributed Systems, November 2003.
Kurt Geihs. Middleware Challenges Ahead. IEEE Computer, 34(6):24--31, June 2001. (Google this for link.)
Pamela Zave. A Compositional Approach to Multiparadigm Programming, IEEE Software, Volume 6, Issue 5 (September 1989), Pages: 15 - 25, 1989, IEEE Computer Society Press Los Alamitos, CA, USA. (Prepare a one-pager for this paper.)
Gregor Kiczales, John Irwin, John Lamping, Jean-Marc Loingtier, Cristina Videria Lopes, Chris Maeda, and Anurag Mendhekar. Aspect-oriented programming Special issue: position statements on strategic directions in computing research Volume 28, Issue 4, (December 1996).
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Videira Lopes, C., Loingtier, J.-M., and Irwin, J. Aspect-Oriented Programming. In Proc. of ECOOP, Springer-Verlag (1997).
Chris Maeda, Arthur Lee, Gail Murphy. and Gregor Kiczales. Open Implementation Analysis and Design. ACM SIGSOFT Software Engineering Notes. Volume 22 , Issue 3 (May 1997), pp 44 - 52, 1997. (Prepare a one-pager for this paper.)
Gregor Kiczales and John Lamping and Cristina Videira Lopes and Chris Maeda and Anurag Mendhekar and Gail C. Murphy. Open Implementation Design Guidelines. http://citeseer.ist.psu.edu/kiczales97open.html International Conference on Software Engineering. pp. 481-490, 1997.
Edsger W. Dijkstra. The humble programmer. Commun. ACM, 15(10):859-866, 1972.
D. L. Parnas. On the Criteria To Be Used in Decomposing Systems into Modules. Communications of the ACM, 15(12):1053-58, December 1972.
William Harrison and Harold Ossher, Subject-Oriented Programming - A Critique of Pure Objects, Proceedings of 1993 Conference on Object-Oriented Programming Systems, Languages, and Applications, September 1993. Obtain a copy from the ACM Digital Library. (Prepare a one-pager for this paper.)
Walid Taha. A Gentle Introduction to Multi-stage Programming. DSPG 2004. (Prepare a one-pager for this paper.)
Gregor Kiczales, Erik Hilsdale, Jim Hugunin, Mik Kersten, Jeffrey Palm and William G. Griswold. An Overview of AspectJ In Proc. of ECOOP, Springer-Verlag (2001).
L. Bergmans and M. Aksit. Composing Crosscutting Concerns Using Composition Filters, Communications of the ACM, Vol. 44, No. 10, pp. 51-57, October 2001. (Prepare a one-pager for this paper.)
Aspect-oriented programming with adaptive methods Karl Lieberherr, Doug Orleans, Johan Ovlinger Pages: 39 - 41. (Prepare a one-pager for this paper.)
P. K. McKinley, S. M. Sadjadi, E. P. Kasten, B. H. C. Cheng A Taxonomy of Compositional Adaptation. Extended version of paper published in IEEE Computer 2004.
Christian Prehofer. Feature-Oriented Programming: A Fresh Look at ObjectsECOOP 1997. (Prepare a one-pager for this paper.)
Don Batory, Jia Liu, Jacob Neal Sarvela, Refinements and Multi-Dimensional Separation of Concerns, ACM SIGSOFT 2003 (ESEC/FSE2003). (Prepare a one-pager for this paper.)
D. Batory and S. O. Malley. The Design and implementation of Hierarchical Software Systems with Reusable Components. ACM TOSEM, October 1992. (longer version)
Reflection (tbd)
Generative programming (tbd)
Intentional programming (tbd)
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
Towards Just-in-time Middleware To appear in AOSD'05. C. Zhang, G. Dapeng, and H.-A. Jacobsen.
The Facet paper
Bruno Dumant, Franois Horn, Frdric Dang Tran, and Jean-Bernard Stefani. Jonathan: an open distributed processing environment.In Java. Distributed Systems Engineering, 6:3^Ö12, March 1999.
[Compositional middleware paper tbd. ]
...
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 !)
- 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 themProject 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...
A list of suggested project topics will be distributed in class a few weeks after the beginning of the semester.
The course mark is broken down as follows:
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:
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:
Each member has to prepare a one pager.