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.
Project milestone 1 attestation has been shifted by one week.
The exam has been rescheduled to Friday, 27.03.2015 (same day), 16-18h to avoid conflicts
If our exam dates conflict with any of your other exams, we ask you to report this by email until Tuesday, 25th November 2014. Please make sure to include the conflicting lecture's full name (the other lecture, not our lecture of course), its date and time and if possible the lecturer's name.
The exam correction review will be on Tuesday, November, 11th in A213 at 4pm-5pm (in conjunction with the review for Event Processing). Please note that you will get a chance to look at your corrected exam and take notes. You may then hand in a written application (on paper or by email) of any correction items you would like to have reviewed. The strictly enforced deadline for this application is Sunday, Nov, 16th at 23:59 pm.
The first lecture will be on Wednesday, Oct, 15th. There will be no exercise session on Tuesday, Oct, 14th.
The exam will take place Friday, 27.03.2015, 16-18h in S1|01 / A1
Please check the schedule regularly, as we might change things on demand.
|14.10. / 15.10.||-||Lecture|
|21.10. / 22.10.||Exercise||Lecture|
|28.10. / 29.10.||-||Lecture|
|4.11. / 5.11.||Exercise||no(!) lecture|
|11.11. / 12.11.||-||Lecture|
|18.11. / 19.11.||Lecture||no(!) lecture|
|25.11. / 26.11.||Exercise||Lecture|
|02.12. / 03.12.||-||Lecture|
|09.12. / 10.12.||-||Lecture|
|16.12. / 17.12.||Open office hours (project)||Lecture|
|23.12. / 24.12.||Christmas Break|
|30.12. / 31.12.||Christmas Break|
|6.1. / 7.1.||Christmas Break|
|13.1. / 14.1.||-||Lecture|
|20.1. / 21.1.||Project Milestone 1 attestation||Lecture|
|27.1. / 28.1.||Exercise||Lecture|
|3.2. / 4.2.||-||Lecture|
|10.2. / 11.2.||Exercise||Lecture|
|2||Communication: Principles, Classification, Techniques||Slides (pdf)|
|3||Queues: Systems and Message-Oriented Communication||Slides (pdf) (2012/13)|
|4||Distributed Objects||Slides (pdf) (2012/13)|
|5||System Federation: EAI, FDBMS, Wrappers and Mediators||Slides (pdf) (2012/13)|
|6||Middleware and Distributed Transaction Processing||Slides (pdf) (2012/13)|
|7||Consistency and Replication||Slides (pdf) (2011/12)|
|8||Time and Synchronization||Slides (pdf) (2012/13)|
|9||Events and Event-based Systems||Slides (pdf) (2011/12)|
|10||Fault Tolerance, summary||Slides (pdf) (2011/12)|
|11||Aspects of Cloud Computing||Slides (pdf) (2012/13)|
|Project||Project Description||Intro and modalities|
|Paper Discussion 1||Questions | Paper||Slides|
|Paper Discussion 2||Questions | Paper||Slides|
|Paper Discussion 3||Questions | Paper||
|Paper Discussion 4||Questions | Paper||-|
- 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.
- Michi Henning. 2006. The Rise and Fall of CORBA Queue - Component Technologies Volume 4 Issue 5 (June 2006), 28-34. (available from the university network)
- 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