Middleware

The middleware lecture is a grand tour of networked system architectures focussing on middleware systems. It is designed for Master students who should gain an understanding of how large real-life systems work. The course will cover communication and interaction modes as well as consistency and scalability issues, components and application servers, Event-based Systems (EBS) and Cloud Computing. The lecture is complemented by weekly exercises with hands-on system-oriented tasks and research paper-oriented discussions.

News

The oral exams with Prof. Buchmann will take place between April, 17th, and May, 15th. A detailed schedule will be published by the end of March.

We have assigned timeslots for the attestation. They are also posted on the blackboard at our office.

Presentation of the first project milestone: Please write one email per team to Sebastian, Stefan and Tobias to register for the attestation of the project's first milestone by Jan 14, 2013. This email should include the team members' names. We will hold the attestation during the usual exercise time. Also please do not forget to bring your progress report to the attestation or send it by email prior to that.

We modified the project description slightly and added Java Server Faces to possible UI technologies for clarification.

There will be a guest talk by ITESTRA on Tuesday, 4.12.2012 about industry perspective on middleware technologies. We will thus push back the next paper discussion.

We decided to postpone the next paper discussion session and have a Q&A session on Tuesday, 18.12.2012. You are encouraged to present the current status of your project, challenges you tackled and problems you encountered. Thus, you get feedback from your peers and us. You will not be tested, we want to give you an opportunity for early feedback before the first milestone.

The middleware lecture this week (14.11.2012) does not take place. We will announce a compensatory date soon.

Please look at the schedule to see when we hold exercise sessions. If not indicated otherwise, every second Tuesday will be an exercise and every Wednesday will be a lecture.

The next lecture will be on Tuesday, 23.10.2012, 17:10-18:50. The first exercise session will be on Wednesday, 24.10.2012, 16:15-17:55.

The first lecture will be on Wed. 17.10.2012. Thus, there will be no exercise session on Tue, 16.10.2012.

Schedule

Please check the schedule regularly, as we might change things on demand.

Date Tuesday Wednesday
16.10. / 17.10. - Lecture
23.10. / 24.10. Lecture Exercise
30.10. / 31.10. - Lecture
6.11. / 7.11. Lecture Exercise
13.11. / 14.11. - Lecture canceled
20.11. / 21.11. Exercise Lecture
27.11. / 28.11. Lecture Lecture
04.12. / 05.12. Exercise Lecture
11.12. / 12.12. - Lecture
18.12. / 19.12. Exercise Lecture
25.12. / 26.12. Christmas Break  
1.1. / 2.1. Christmas Break  
8.1. / 9.1. Christmas Break  
15.1. / 16.1. Project Milestone 1 attestation Lecture
22.1. / 23.1. Exercise Lecture
29.1. / 30.1. Lecture -
5.2. / 6.2. Exercise Lecture
12.2. / 13.2. Lecture Oral exam information

Slides

We offer the old slides (indicated by (old) ) for download so you may get a feeling about the course's content. We keep updating our lectures, so slides are likely to change.

  Lecture Topic Slides
1 Introduction, Definitions, Models Slides (pdf)
2 Communication: Principles, Classification, Techniques Slides (pdf)
3 Queues: Systems and Message-Oriented Communication Slides (pdf) (new)
4a Distributed Objects Slides (pdf) (new)
4b System Federation: EAI, FDBMS, Wrappers and Mediators Slides (pdf) (new)
5 Middleware and Distributed Transaction Processing Slides (pdf) (new)
6 Distributed Objects, Components, App.Servers, ORM Slides (pdf) (old)
  6.1. Optional Intro to EJB 2.1 (Requested by students) Slides (pdf) (old)
7 Events and Event-based Systems Slides (pdf) (old)
8 Time and Synchronization Slides (pdf) (new)
9 Replication and Consistency Slides (pdf) (new)
10 Aspects of Cloud Computing Slides (pdf) (new)
11 Fault Tolerance, summary Slides (pdf) (old)

Exercises

  Exercise Assignments Slides
  Project Project Description Slides
  Paper Discussion 1 Questions | Paper Slides
  Paper Discussion 2 Questions | Paper Slides
  Paper Discussion 3 Questions | Paper Slides
Conference Slides
  Paper Discussion 4 Questions | Paper (available via university network)  

Course Content

  1. Motivation and goals of the course
  2. Introduction
    Definitions and Major Problems: Abstraction/Transparency, Communication, Reliability, Scalability, Synchronisation, Consistency, High Availability, Fault Tolerance. The role of middleware. Models of Distributed Systems. Rules of thumb.
  3. Communication:
    Interaction modes: Request/Reply, One-to-One Message, Anonymous Request/Reply, Event-based dissemination Client Server Communication Group Communication: Multicast, uni-cast, broadcast, Gossip based dissemination Message-oriented communication: Point-to-Point, Queues, Queueing Systems, Async RPC Reliable Communication: Client Server, Group Communication Naming and Directory Services
  4. Heterogeneity and System Federation
  5. Distributed Transactions: models and systems
    Transactional RPC Transaction models: Nested Transactions, Chained Transactions; ACID, BASE. Distributed Concurrency Control, Commit Protocols: 2PC, 3PC Recovery TP Monitors
  6. Distributed Objects, Components and Application Servers
    Distributed object model Object Communication Component Orientation Application Servers Object Relational Mappers
  7. Event-Based Systems and Publish/Subscribe
  8. Time, Synchronization and Coordination
    Clock synchronization and Logical Clocks Ordering (Distributed) Mutual Exclusion Election Algorithms Consensus Algorithms (Problems: Consensus, Byzantine Generals, Interactive Consistency) PAXOS Quorum Consensus
  9. Consistency and replication
    Replica Management Replica-Server Placement Content Replication and Placement Content Distribution Consistency Models Continuos Consistency Ordering of Operations Eventual Consistency Consistency Protocols [Tanenbaum] Continuous Consistency Primary-Based Protocols Replicated-Write Protocols Cache-Coherence Transactions and Replicated Data Quorum Algorithms, PAXOS
  10. High Availability and Scalability
    Architectures: Shared Nothing, Shared-Disc, Shared Memory Conceptual Problems: Fragmentation (vetical, horizontal, Hybrid) Allocation (distribution of replicas on cluster nodes) Failover clustering Database mirroring Log shipping Buffer shipping Replication
  11. Cloud Computing

Papers and (online) Resources

General

Database Federation

Client/Server and Transaction Processing

  • P.A. Bernstein, E. Newcomer; Principles of Transaction Processing for the Systems Professional, Morgan Kaufmann, 1997.
  • Orfali, Harkey and Edwards, Client/Server Survival Guide, 3rd Edition, J. Wiley, 1999.
  • J. Gray, A. Reuter; Transaction Processing: Concepts and Techniques, Morgan Kaufmann, 1993.
  • The Server Side (http://www.TheServerSide.com)

Messaging

  • G. Hohpe, B. Woolf, Enterprise Integration Patterns: Designing, Building and Deploying Messaging Solutions, Addision Wesley, 2004.
  • Q. Mahmoud (editor), Middleware for Comminications, Wiley, 2004.
  • E. Curry, Message-Oriented Middleware, from Middleware for Communications, Wiley, 2004.
  • C. Leng, W. Terpstra, M. Lehn, R. Rehner, and A. Buchmann All-Weather Transport Essentials, from IEEE Internet Computing.

JEE

ORM

  • Patrick Linskey, Marc Prud'hommeaux. An in-depth look at the architecture of an object/relational mapper. SIGMOD '07 (PDF)
  • Pablo Castro, Sergey Melnik, and Atul Adya. ADO.NET entity framework: raising the level of abstraction in data programming. SIGMOD 2007.
  • Scott Ambler Mapping Objects to Relational Databases
  • Christian Bauer, Gavin King. Hibernate in Action. Manning Publications. 2004
  • Craig Russell. Bridging the Object-Relational Divide. ACM Queue, Vol. 6, No. 3, 2008
  • Michael Keith and Randy Stafford. Exposing the ORM Cache. ACM Queue, Vol. 6, No. 3, 2008
  • Van Zyl, P., Kourie, D. G., and Boake, A. Comparing the performance of object databases and ORM tools. In SAICSIT 2006.

Books

  • Coulouris, Jean Dollimore, and Tim Kindberg. 2005.
    Distributed Systems: Concepts and Design (4th Edition)
    Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA.
  • Andrew S. Tanenbaum and Maarten Van Steen. 2001.
    Distributed Systems: Principles and Paradigms (1st ed.).
    Prentice Hall PTR, Upper Saddle River, NJ, USA.
  • M. Tamer Özsu and Patrick Valduriez. 2011.
    Principles of Distributed Database Systems (3nd Ed.).
    Prentice-Hall, Inc., Upper Saddle River, NJ, USA.
  • Jim Gray and Andreas Reuter. 1992.
    Transaction Processing: Concepts and Techniques (1st ed.).
    Morgan Kaufmann Publishers Inc., San Francisco, CA, USA.
  • Shahram Dustdar Harald Gall Manfred Hauswirth
    Software-Architekturen für Verteilte Systeme.
    Springer Verlag 2003
  • Len Bass, Paul Clements, Rick Kazman
    Software Architecture in Practice (2nd Edition).
    Addison Wesley. 2005
  • Gregor Hohpe and Bobby Woolf.
    Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions.
    Addison-Wesley 2003
  • Qusay Mahmoud
    Middleware for communications.
    John Wiley and Sons, 2004

Course Information

TUCaN-Link 20-00-0153-iv
Lecture Wed. 16:15-17:55
in S202 | C110
Exercise Tue 17:10-18:50
in S2 02 | C120
CP (SWS) 6 (2+2)
Language English
Exam oral exam
Office hours Tue., 17:00-18:00; please register by email
Forum Link

Organizer

Prof. Alejandro Buchmann Stefan Appel Tobias Freudenreich Sebastian Frischbier
A A A | Print | Contact | Legal note | Search