582420 Middleware (4 cr)
Goals
Middleware denotes for software services and tools that utilize services of operating systems and computer communication systems, and provide more powerful service abstractions for application use. Such middleware services include discovery and selection of peers or service providers, activation of remote services, and effective, dependable communication. Modern middleware solutions are adaptive, reflective, component/service-oriented, etc. The course introduces classification of different types of middlewares, problems addressed, middleware goals, and solutions used.
Prerequisities
Elective laudatur course. Organised by sub-programme Distributed systems and data communication.
The assumption is made that courses like Distributed systems, Operating systems 1-2 and Data communication 1-2 are previously covered. An alternative route is via Software engineering sub-programme with Software arhitectures course.
A strong prerequisite requirement is set on the course Scientific Writing, as half of the coursework is invested on individual litterature study and writing task.
Getting credit for this course
The course consists of
- Lectures in Finnish supported by a textbook for most of it but in different structure, and an exam based on those.
- Seminar paper from an individually chosen topic. Talk with the course assistant for the process. (The papers are presented to the group in the end of the lecture series, if applicable.)
The compulsory parts are the exam and the paper. Each contributes half of the credit units and half of the grade points.
Course contents
- Introduction
- What is middleware?
- The role and tasks of middleware, categorization
- Different types of middleware
- Open distributed processing reference model
- Transaction middleware
- Message oriented middleware
- Procedural middleware
- Object and component middleware
- Service-oriented architecture
- Model driven systems
- Adaptive and reflective systems
- Special themes (some of which are to be selected each year)
- Realtime systems
- Fault tolerance
- Mobility
- Security and trust
- Grids
- P2P
- Final seminar
- Complementing material for student presentations
- Case descriptions
- Research project presentations
- Software tool presentations
- Complementing material for student presentations
Study material
Textbook in use:
- Qusay H. Mahmoud: Middleware for Communications. Wiley. 2004.
- [intro1] Bakken, D. E., Middleware. Encyclopedia of Distributed Computing. Kluwer Academic Press, 2001.
- [intro2] Bernstein, P. A, Middleware. CACM, Feb 1996. ^M
- [intro3] Campbell, A., Coulson, G., Kounavis, M. E., Managing Complexity: ^M Middleware Explained. Distributed Computing. IT Professional, Volume: 1 , Issue: 5 , Sept.-Oct. 1999, Pages 22 - 28.
- [intro4] Charles, J., Middleware Moves to the Forefront. IEEE Computer, pp. 17-19, May 1999.
- [odp] Kutvonen, L., Architectures for Distributed Systems: Open Distributed Processing Reference Model.
- [soa1] M. P. Papazoglou, Service-Oriented Computing: Concepts, Characteristics, and Directions. WISW2003. Dec 2003.
- [soa2] M. P. Papazoglou, D. Greogakopoulous, Communications of ACM, 46(10):15-28, October 2003.
Material for exams
- Textbook, except chapters 11-16
- Articles [into1]- [intro4], [odp], [soa1-2]
Learning goals and working instructions
Lea.Kutvonen@cs.Helsinki.FI