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.

Exam

The exam will take place in S101/A1. No auxiliary material will be allowed during the exam.

News

We will contact the groups about the attestation of the 3rd milestone by email once its deadline has passed

We had a bug in the paper/project points list. We put up the new (bug-free) list today. So if you were wondering about your points, please check the list again and let us know if you think your points are not correct

We decided to push back the deadline for the 2nd milestone to Friday, February 14th. Attestations will start Tuesday, February 18th at 5pm. Please let us know in case you have an exam at that time!

We adapted the schedule to respect a dissertation we will attend and the confusion about the attestation of the first milestone. Please check the updated schedule.
Please note that the answers for the 3rd paper are due on January 28th: hand them in during the attestation or prior to that in our office

There is no middleware lecture on 27.11.2013

Project description and first paper reading exercise online.

The first lecture will be on Wednesday, Oct, 16th. There will be no exercise session on Tuesday, Oct, 15th.

Schedule

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

Date Tuesday Wednesday
15.10. / 16.10. - Lecture
22.10. / 23.10. Exercise Lecture
29.10. / 30.10. - Lecture
5.11. / 6.11. Exercise Lecture
12.11. / 13.11. - Lecture
19.11. / 20.11. - Lecture
26.11. / 27.11. Exercise Lecture cancelled!
03.12. / 04.12. - Lecture
10.12. / 11.12. - Lecture
17.12. / 18.12. Open office hours (project) Lecture
24.12. / 25.12. Christmas Break  
31.12. / 1.1. Christmas Break  
7.1. / 8.1. Christmas Break  
14.1. / 15.1. Project Milestone 1 attestation Lecture
21.1. / 22.1. - Lecture
28.1. / 29.1. Milestone 1 attestation (2nd part)
Paper answers due!
Lecture
4.2. / 5.2. Exercise Lecture
11.2. / 12.2. Exercise Lecture

Slides

  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) (2012/13)
4a Distributed Objects Slides (pdf) (2012/13)
4b System Federation: EAI, FDBMS, Wrappers and Mediators Slides (pdf) (2012/13)
5 Middleware and Distributed Transaction Processing Slides (pdf) (2012/13)
6 Distributed Objects, Components, App.Servers, ORM Slides (pdf) (2011/12)
  6.1. Optional Intro to EJB 2.1 (Requested by students) Slides (pdf) (2011/12)
7 Events and Event-based Systems Slides (pdf) (2011/12)
8 Time and Synchronization Slides (pdf) (2012/13)
9 Replication and Consistency Slides (pdf) (2012/13)
10 Aspects of Cloud Computing Slides (pdf) (2012/13)
11 Fault Tolerance, summary Slides (pdf) (2011/12)

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
  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 S2-02 | C110
Exercise Tue 17:10-18:50
in S2-02 | C120
CP (SWS) 6 (2+2)
Language English
Exam Written exam
4.4.2013 14-16h
Office hours Mon., 16:30-18:00; please register with Maria Tiedemann
Forum Link

Organizer

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