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.
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.
Please check the schedule regularly, as we might change things on demand.
|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|
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.
|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)|
|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