Uni-Logo

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