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.
ExamThe exam will take place in S101/A1. No auxiliary material will be allowed during the exam.
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.
Please check the schedule regularly, as we might change things on demand.
|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!
|4.2. / 5.2.||Exercise||Lecture|
|11.2. / 12.2.||Exercise||Lecture|
|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)|
|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)|
- Motivation and goals of the course
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.
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
- Heterogeneity and System Federation
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
Distributed Objects, Components and Application Servers
Distributed object model Object Communication Component Orientation Application Servers Object Relational Mappers
- Event-Based Systems and Publish/Subscribe
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
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
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
- Cloud Computing
- P.A. Bernstein. Middleware. Communications of the ACM, Feb. 1996/Vol.39 No.2
- Eric A. Brewer. 2001. Lessons from Giant-Scale Services. IEEE Internet Computing 5, 4 (July 2001)
- Jim Gray, Prashant Shenoy Rules of Thumb in Data Engineering. IEEE International Conference on Data Engineering, Feb 28-30, San Diego, CA. 2000
- Eric Brewer. Towards Robust Distributed Systems Keynote, PODC 2000.
- David A. Patterson. 2004. P.A. Bernstein. Latency lags bandwith. Commun. ACM 47, 10 (October 2004), 71-75.
- Haas et al. Data integration through database federation
- Josifovske et al. Garlic: A New Flavor of Federated Query Processing for DB2
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)
- 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.
- E. Roman, Mastering EJB and the Java 2 Platform, Enterprise Edition, 3rd Ed, Wiley, 2004.
- R. Monson-Haefel, Enterprise JavaBeans, 4th edition, O'Reilly, June 2004.
- F. Marinescu, EJB Design Patterns: Advanced Patterns, Processes, and Idioms, Wiley, Feb 2002.
- Enterprise BluePrints, http://java.sun.com/blueprints/enterprise/index.html
- SPEC J2EE Benchmark, http://www.spec.org/jAppServer/
- J2EE 6 Tutorial, http://docs.oracle.com/javaee/6/tutorial/doc/javaeetutorial6.pdf
- 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.
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.
Middleware for communications.
John Wiley and Sons, 2004