HUMBOLDT-UNIVERSITÄT ZU BERLIN
COMPUTER SCIENCE DEPARTMENT
Systems Architecture Group

Head:Prof. Dr. Jens-Peter Redlich
Secretary: Silvia Schoch
Phone:+49(30)2093-41150

 

     

Lab

5

Middleware Platforms

EJB Usermanagement


Systems Architecture Group

Ablieferungstermin und erreichbare Punktzahl für diese Aufgabe, sowie Voraussetzungen für die Prüfungszulassung entnehmen Sie bitte http://sar.informatik.hu-berlin.de.

Ziel dieses Praktikums ist die Vertiefung Ihrer EJB-Kenntnisse. Auf der einen Seite soll ein komplexes Datenmodell mit Hilfe von Entity-Beans realisiert werden. Auf der anderen Seite wird die Verwendung von Message-Driven-Beans eingeführt. Des Weiteren sollen Sie einen einfachen WebService implementieren und verwenden.

Anwendungsfall

In diesem Praktikum soll eine Nutzerverwaltung mit Hilfe von EJB 3.0 realisiert werden. Bestehende Nutzer können sich über die login()-Funktionalität des UserManagers an das System anmelden. Neue Nutzer müssen sich hingegen zunächst einmalig registrieren (register()). Über deregister() kann zudem ein Nutzer wieder aus dem System ausgetragen werden. Des Weiteren stehen eine Reihe von Hilfsfunktionen zur Verfügung (createRole(), ...). Eine Besonderheit weist dieses System auf: schlägt ein login()-Versuch auf Grund eines falschen Passwortes fehl, so ist dieser Fehlversuch zu loggen. Dies soll jedoch asynchron erfolgen. Hierzu ist eine JMS-Nachricht zu erzeugen und an eine Message-Queue zu senden. Nachrichten in der Message-Queue sollen in regelmäßigen Abständen von einem Message-Driven-Bean (LoggerEJB) verarbeitet werden (Erzeugen von Log-Objekten und persistentes Speichern unter Nutzung der EJB-Funktionalität). Der Zugriff auf die Log-Objekte soll hingegen über einen speziellen LoggerManager erfolgen.

Hinweise

  • Verwenden Sie den Applikationsserver JBoss 5.1 und EJB 3.0.
  • Die Methode "logout" schließt die Sitzung.
  • Der UserManager ist als stateful Session-Bean zu realisieren. Beachten Sie folgende Besonderheit: ein login-Versuch muss scheitern, wenn der Nutzer bereits angemeldet ist. Verwenden Sie den Extended Persistence Context.
  • Das mehrfache registrieren von Nutzern mit gleichem Vor- und Nachnamen muss scheitern. Verwenden Sie container-erzeugte Werte für den Primärschlüssel Id des Nutzers.
  • Entities: Beachten Sie die Art und Kardinalität von Beziehungen und das Kaskadieren von Operationen.
  • Das LoggerBean ist ein Message-Driven-Bean. Die Beschreibung der zugehörigen Datenquelle finden Sie standardmäßig in JBOSS_HOME/server/default/deploy/jms/jms-ds.xml.
  • Jeder neu am System registrierte Nutzer bekommt die Rolle "everybody" zugewiesen.
  • Die Hilfsmethode removeAll() soll alle gespeicherten Objekte des Datenmodells löschen, damit sich Fehler aus einzelnen Unittests nicht fortsetzen.
  • Der LoggerManager ist als stateless Session-Bean zu realisieren, welches ausschließlich über ein WebService-Interface (RPC) verfügt.
  • Schreiben Sie zusätzlich zum Test-Client noch einen WebService-Client für den LoggerManager in einer Sprache Ihrer Wahl (z.B. Ruby/Groovy).
  • Um den WebService von einem entfernten Rechner verwenden zu können, müssen Sie den Jboss über run.sh -b 0.0.0.0 starten
  • Das korrekte Deployment des WebService lässt sich hier überprüfen: http://localhost:8080/jbossws/services, Schauen Sie sich auch die generierte WSDL-Datei an.

Aufgabe und Bewertung

Begründen Sie die von Ihnen getroffenen Design-Entscheidungen und beschreiben Sie aufgetretene Besonderheiten und Probleme. Benutzen Sie dafür eine HTML-Datei mit dem Namen index.html. Abzugeben sind weiterhin die Quelltexte der Lösung (Java-Sourcen, XML-Files, ect.) und das mitgelieferte Ant-Skript, das die Quellen mit den gängigen Werkzeugen automatisiert übersetzt und im JBoss deployed. Bitte reichen Sie die geforderten Dateien in ein ZIP Archiv gepackt ein.

Für Test und Bewertung kommt wieder die Unit-Test-Bibliothek jUnit (www.junit.org) zum Einsatz. Die geforderte Funktionalität wird anhand von 10 Unit-Tests überprüft, von denen min. 5 (sinnvolle) Tests von Ihnen zu erstellen sind (SimpleTest.java). Mit anderen Worten: sowohl die Qualität Ihrer Applikation, als auch die Ihrer Tests ist maßgeblich für die Bewertung.

Ressourcen

  • Praktikumsfolien

Legal disclaimer. .  © 2024 Humboldt-Universität zu Berlin, Computer Science Department, Systems Architecture Group.Contact: sar@informatik.hu-berlin.de .