Note. Most of the course material for this lecture is in English. However, lecture, labs and examinations are in German. Oral examinations can optionally be in English. Oral Examination: Date: February 23, 2010 (a Tuesday) Place: Room 3.328 (Rud 25) Prior registration required (Mrs Albrecht's office, 3.302) Prüfungskomplexe for 2009/10 can be found >>>here<<<
| Abstract: Middleware provides a standardized infrastructure for distributed computing. It comprises standardized programming APIs, augmented by a set of core services that make it possible to develop and execute distributed applications in heterogeneous environments. The primary objectives of middleware are to foster application portability and application interoperability. Middleware is, roughly speaking, the software below the application and above the operating system / network. Common middleware platforms include, Java-RMI, CORBA, CORBA Components, and Java Beans.
| Synopsis:- Half-Course, Praktische Informatik, Hauptstudium/Masterstudium.
- Offered regularly, usually in fall, at least once every two years.
- 2 lectures per week, over one semester (4SWS VL + 2SWS PR).
- Prerequisites: PI 1,2,3; basic knowledge in computer networks (TCP/IP), Java, XML.
Credits and grading: - Oral examinations are offered by the instructor at the end of the semester, and at the beginning of the following semester.
- To qualify for the examination, students have to complete lab assignments to the satisfaction of the teaching assistant.
Lab (Praktikum): - Labs are scheduled every 2 weeks at the time and place specified above. A teaching assistant will be present at each lab to assist students with questions and problems.
- Participation (physical presence) at the lab is mandatory in order to obtain credits for the assignment.
- A lab worksheet will be published on this web site a few days before the corresponding lab is scheduled (usually Friday). Students should use this time to adequately prepare for the lab.
- Results have to be submitted via GOYA for grading. Submission deadlines are specified on the worksheets (usually 14 days after the assignment was published).
- Worksheets: [lab1], [lab2], [lab3], [lab4], [lab5]
- Slides: [lab1], [lab2], [lab3], [lab4], [lab5]
- Deadlines:
| Vorbesprechung (preliminary talk) | Abgabe (delivery) | Nachbesprechung (review) | Lab 1 | 27/29.10.2009 | 16.11.2009 | 24/26.11.2009 | Lab 2 | 17/19.11.2009 | 30.11.2009 | 08/10.12.2009 | Lab 3 | 08/10.12.2009 | 04.01.2010 | 12/14.01.2010 | Lab 4 | 05/07.01.2010 | 18.01.2010 | 26/28.01.2010 | Lab 5 | 19/21.01.2010 | 01.02.2010 | 09/11.02.2010 |
Syllabus:
| A. Introduction | | - Admin Info
 | lecture slides [pdf] |
- Motivation
 | lecture slides [pdf] |
- Client Server Model, Variations, Objects
 | lecture slides [pdf] |
- Design Patterns
 | lecture slides [pdf] |
- Inter Process Communication / Network Communication (optional)
 | informational slides - not presented in class [pdf] |
 | W. R. Stevens. UNIX Network Programming, The Sockets Networking. 2004. ISBN 013490012X |
|
| B. Java Remote Method Invocation (RMI) | | - Programming model
- Remote Interfaces and Remote Objects
- Architecture
- Parameter passing
- Failure handling
- Naming
- Development Process
 | lecture slides [pdf] |
|
| C. CORBA (Common Object Request Broker Architecture) | | - CORBA Architecture Overview
 | lecture slides [pdf] |
- Hello World in CORBA
 | lecture slides [pdf] |
- ORB Architecture
 | lecture slides [pdf] |
- CORBA IDL
 | lecture slides [pdf] |
- Interoperability
 | lecture slides [pdf] |
- Common Object Services
 | lecture slides [pdf] |
- CORBA Component Model (optional)
 | informational slides - not presented in class |
 | Jens-Peter Redlich. Corba 2.0. Praktische Einführung für C++ und Java. ISBN 3827310601 |  | Jon Siegel. CORBA 3 - Fundamentals and Programming. ISBN 0471295183 |
|
| F. WebServices | | - WebServices Overview
 | lecture slides [pdf] |
|
| D. Enterprise Java Beans (EJB) | | - Introduction
 | lecture slides [pdf] |
- Component Models
 | lecture slides [pdf] |
- Architectural Overview
 | lecture slides [pdf] (dynamic proxy [zip]) |
- Primary Services
 | lecture slides [pdf] |
- Development
 | lecture slides [pdf] |
- Persistence
 | Basic Persistence [pdf] |  | O/R Mapping [pdf] |  | Entity Relationships [pdf] |  | Entity Inheritance [pdf] |  | Query Language [pdf] |  | Entity Callbacks [pdf] |
- Session Beans
 | lecture slides [pdf] |
- Interceptors
 | lecture slides [pdf] |
- Message-Driven Beans
 | lecture slides [pdf] |
- Transactions
 | lecture slides [pdf] |
- Web Services
 | lecture slides [pdf] |
- Quiz
 | tricky [pdf] |
 | EJB Specification, 3.0, http://java.sun.com/javaee/5/docs/api/index.html |  | EJB Specification, 2.1, http://java.sun.com/products/ejb/docs.html |  | Enterprise JavaBeans 3.0 by B. Burke, R. M.-Haefel, Covers EJB 3.0, ISBN 0-596-00978-X |  | Enterprise JavaBeans by Richard Monson-Haefel, Covers EJB 2.1, O'Reilly, 2004, ISBN 0-596-00530-X |  | Java Message Service by R. Monson-Haefel, D. Chappell, O'Reilly, ISBN 0-596-00068-5 |  | Java RMI by W. Grosso, O'Reilly, 2002, ISBN 1-565-92452-5 |
|
| E. Microsoft .NET | | - .NET Framework (Overview)
 | lecture slides [pdf] |
- CRL
 | lecture slides [pdf] |
- Assemblies
 | lecture slides [pdf] |
- .NET Remoting
 | lecture slides [pdf] |
|
| |
|