582420 Middleware / Väliohjelmistot -- Self-study course contents and exercise
Intoduction
- The aim of this element is to get acquinted with the role of
middleware, its common services, and learn to identify different types
of middleware.
- >
- Types: RPC-oriented, MOM-oriented (message passing systems), transactional middleware, object middleware, component middleware, service-oriented middleware,
- Layers: see the layers illustrated by Schmidt
- Key concepts: remote object, difference between object and component, transparencies,
- Read the textbook Introdution and the 3 articles listed in its bibliography (links available at course description page for them)
- Write a learning diary entry for the following topics:
- What does the concept middleware mean?
- What kind of middleware exists? What is the main contributio for application support introduced by each of them? What differentiates between them?
- What is the relationship between software engineering tools and runtime middleware?
- What questions were left unanswered?
Different types of middleware
- The aim of this element is to get to know transactional, message
oriented and procedural middleware, in case you have not covered them
at the Distributed systems course in its current form.
- How a distributed transaction is implemented?
- How reliable multicast with total ordering is implemented?
- What kind of research themes is involved with these basic techniques and variations is made available in commercial platforms?
- Read textbook chapters 1 and 3
- Use to above questions for the basis of your learning diary.
Object and component middleware
- The aim of this element is to get to know object middleware
basics through the example of CORBA objects on one hand, and on the
other hand extend that view to component middleware.
- Read from the textbook chapter 17 the pieces relevant for understanding the basic CORBA architecture and basic vocabulary (bus/core, object, interface, IDL, object reference, stub, skeleton, DII, DSI, object adapter, GIOP, services such as time, event notification, naming, streaming, lifecycle, concurrency, logging, trading, property.
- Write learning diary entries for
- goals and services of object middleware
- concept of dynamic binding, and services required for its implmeentation,
- management of interface information and use of the interface information.
- Read from the textbook chapter 6 the pieces relevant for understanding the CORBA component architecture and basic vocabulary (component reference, external interface, callback interface, internal interface, component home, container, POA, facets, event sink and sources, receptacles) and additional services (component packaging and deployment, different operational policy modes)
- Write learning diary entries for
- Goals and services of component middleware and compare those with the object middleware
- Collect pieces from the rest of the textbook and study how CORBA security capabilities realtime scheduling is managed.
Service oriented architecture
- The aim of this element is to get to know what service orientation refers to and what kind of services and models it involves.
- Read articles [soa1] and [soa2].
- Write learning diary entries responding to questions like
- Describe the basic SOA model.
- How SOC and SOA differ?
- What kind of languages can be used for service descriptions? What UDDI brings in? Is that adequate?
- What is orchestration? What is meant by choreography? What kind of languages are used for those? What is the difference between the two conepts?
- Work though an example using a language of either category.
Development themes on application development tools (MDA)
- The aim of this element is to get to know how software engineering with modern, model-driven software engineering process is supported.
- Read the textbook chapter 7. Pick up concepts of CIM, PIM and PSM; transformations; role of MDA tools in software engineering.
- Search from the web what Douglas Schmidt has written about MDA; select an article that seems to cover enough detail and comparison to compiler techniques.
- Write learning diary entries that discuss
- What is referred to by the terms MDA?
- What kind of models are involved?
- What kind of tools are made available? What is their impact on software production?
Adaptive and reflective middleware
- The aim of this element is to study adaptive systems and the role of reflective systems in the support of adaptation.
- Read the textbook chapter 2.
- Look up what Gordon Blair has written about the reflective system his project developed.
- Write learning diary entriese on
- Definition of adaptation? Definition of reflection? What models and metadata has to do with it?
- Take an example implementation and try to understand how the model can be expressed and the model state changed. How the system state is represented? How the system state can change or be changed? Who or what triggers the changes? Is the system safe?
Fault tolerance
- Chapter 18
- Diary items
- error, failure, fault
- recovery methods
- relationship to reflective middleware?
- what an example implementation looks like
Quality of service management
- Chapters 6 and 14
-
- Define QoS
- Introduce mechnaisms needed
- differences between operational and stream based communication
- resource reservation methods
Lea.Kutvonen@cs.Helsinki.FI