Aufgaben zum Projektpraktikum J2EE und EJB Grundlagen, WS2005/2006
04.11.05: Sitzungsfassade und Wertobjekt
- Finden Sie Verwendungsmöglichkeiten für das Sitzungsfassade-Pattern in Ihrer Implementierung des Bookstore und wenden Sie es darauf an.
- Identifizieren Sie Wertobjekte im Bookstore und definieren Sie geeignete Remote-Interfaces unter Verwendung von Wertobjekten.
- Ziel der Änderungen ist es, Programme zu schreiben, die separat vom EJB-Container läufen. Eins der Programme soll Bücher aus einer geeignet formatierten Textdatei in die Datenbank einfügen. Ein anderes Programm soll auf die Bestellungen zugreifen und dazu Rechnungen schreiben.
11.11.05: JDBC
- Reimplementieren Sie die Bookstore-Funktion View Book, indem Sie direkt per JDBC auf die entsprechende Datenbanktabelle (nur lesend) zugreifen. Der JDBC-Zugriff muss in einem Session-Bean gekapselt sein.
- Strukturieren Sie Ihre Implementierung so, dass immer 20 Bücher pro Seite angezeigt werden und dass Sie zwischen den Seiten wechseln können.
- Implementieren Sie einen portablen Generierungsmechanismus für Surrogatschlüssel. Verwenden Sie eine Datenbanktabelle um zu garantieren, dass die Schlüssel eindeutig sind. Wie vermeiden Sie, dass bei jedem create ein Datenbankzugriff erfolgt?
25.11.05: Transactions
- Finden Sie heraus, unter welchen Isolation Levels die mit unserem Application Server verwendeten Datenquellen angesprochen werden können. Wie kann ein bestimmter Isolation Level bei uns konfiguriert werden?
- Erzeugen Sie durch einen passend definierten Lasttest mit Hilfe des Tools JMeter eine Integritätsverletzung im Datenmodell der bisherigen Bookstore-Anwendung.
- Analysieren Sie die bisher bestehende Bookstore-Anwendung auf ACID-Eigenschaftsverletzungen und beheben Sie diese durch Coderefactoring und ein passendes Transaktionsmanagment der verwendeten Beans.
2.12.05: Message-Driven Beans
- Erweitern Sie den Bookstore um einen Neuerscheinungs-Topic, in dem neu erschienene Bücher des Buchladens automatisch registriert werden. Erweitern Sie die bestehenden Bookstore-Anwendung insofer, dass passende Nachrichten verschickt werden. Implementieren Sie eine separate Klientenanwendung, die sich am Neuerscheinungs-Topic registriert und Neuerscheinungen (nach Autor) gefiltert ausgibt.
- Änderen Sie die Bookstore-Anwendung so ab, dass Buchbestellungen nicht mehr sofort persistent gespeichert sondern in einer Order-Queue verzeichnet werden. Erstellen Sie ein passendes Message-Driven-Bean, das verzeichnete Bestellungen bearbeitet und dauerhaft abspeichert.
Peter Thiemann, Jun 22, 2005