Übung 3.6: Unterpaket für EJB-Komponente modellieren

In dieser Übung werden Sie das Unterpaket für das Implementierungsdesign 'ejb' erstellen. Dieses Unterpaket modelliert die EJB-Ebene (EJB = Enterprise JavaBeans), die die Domänenmodelle enthält, in denen die Daten der Anwendung gespeichert werden. Die EJB-Ebene implementiert die Geschäftslogik für die Ebene 'itso.ad.business'.

Das Unterpaket für das Implementierungsdesign 'ejb' umfasst die drei Unterpakete, die in der folgenden Tabelle aufgeführt sind:

Paket Beschreibung
model Dieses Unterpaket beschreibt die Domänenklassen, die die persistenten Anwendungsdaten darstellen. Das Unterpaket 'model' enthält die Klassen 'Customer' und 'Account', die im Analysemodell definiert wurden.
to Dieses Unterpaket enthält die Übertragungsobjekte, mit deren Hilfe Informationen zwischen den Designebenen des Modells abstrahiert werden können. Die Übertragungsobjekte stellen Schnittstellen dar, die durch die Klassen 'Customer' und 'Account' implementiert werden.
facade Dieses Unterpaket enthält die Implementierung der Geschäftslogik für das PiggyBank-Online-Banking-System. Die Sitzungsfassade enthält die Klasse 'PiggyBankController', mit der die funktionalen Tasks (z. B. die Operationen für Display Balance, Transfer Money und Cash Check) definiert werden, die im PiggyBank-Anwendungsfallmodell beschrieben werden.

In dieser Übung werden Sie die EJB-Domänenklassen 'Customer' und 'Account' sowie die zugehörigen Schnittstellen erstellen. Die Schnittstellen 'IAccount' und 'ICustomer' werden im Paket 'framework' erstellt.

Domänen-Enterprise-Beans modellieren

Die Enterprise-Beans 'Customer' und 'Account' bilden die Domäne des PiggyBank-Designmodells und werden zur Speicherung der Anwendungsdaten benutzt. Die Klassen 'Customer' und 'Account' werden von denselben beiden Klassen abgeleitet, die im PiggyBank-Analysemodell identifiziert wurden.Das Diagramm der ursprünglichen Domäne mit den Klassen 'Account' und 'Customer'. Das PiggyBank-Designmodell enthält keine permanenten Klassen 'Check' und 'Transfer'. Da Sie während der Designphase entschieden haben, dass Überweisungs- und Scheckdaten nicht permanent gespeichert werden sollen, besteht keine Notwendigkeit zur Erstellung permanenter Geschäftsobjekte für 'Transfer' und 'Check'.

Gehen Sie wie folgt vor, um die EJB für 'Customer' zu modellieren:
  1. Erweitern Sie in der Modellexplorersicht das Element für Enterprise IT Design Model (Unternehmens-IT-Designmodell) und dann für PiggyBank Implementation Designs (PiggyBank-Implementierungsdesigns).
  2. Klicken Sie mit der rechten Maustaste auf das Unterpaket itso.ad.business und dann auf UML hinzufügen > Paket.
  3. Ordnen Sie dem Paket den Namen model zu.
  4. Doppelklicken Sie in der Modellexplorersicht auf das Element für Haupt.
  5. Ordnen Sie dem Diagramm im Diagrammeditor den Namen model - Persistent Entity (EJB) Model (model - Modell für persistente Entität (EJB)) zu.
  6. Doppelklicken Sie in der Palette auf Klasse, und ordnen Sie der Klasse den Namen Customer zu.

Gehen Sie wie folgt vor, um die Parameter der Klasse 'Customer' zu modellieren:
  1. Klicken Sie im Diagrammeditor mit der rechten Maustaste auf die Klasse Customer und dann auf UML hinzufügen > Attribut.
  2. Ordnen Sie dem Attribut den Namen name zu.
  3. Klicken Sie in der Eigenschaftensicht auf Typ auswählen.
  4. Klicken Sie im Fenster Element auswählen auf Zeichenfolge.
  5. Fügen Sie der Klasse 'Customer' ein weiteres Attribut vom Typ 'Zeichenfolge' hinzu, das den Namen 'customerId' trägt.
  6. Klicken Sie im Diagrammeditor mit der rechten Maustaste auf die Klasse Customer und dann auf UML hinzufügen > Operation.
  7. Ordnen Sie der Operation den Namen getData zu.
  8. Klicken Sie in der Eigenschaftensicht auf Rückgabetyp festlegen.
  9. Erweitern Sie im Fenster Element auswählen das Element für itso.ad.business und das Element für framework. Klicken Sie dann im Unterpaket interfaces.to auf ICustomerTO.

Sie haben nun die Entitäts-EJB für 'Customer' erstellt. Ihr Diagramm wird jetzt wie in der folgenden Abbildung aufgeführt dargestellt:

Die EJB für 'Customer'.

Gehen Sie wie folgt vor, um die EJB für 'Account' zu modellieren:
  1. Doppelklicken Sie in der Palette auf Klasse, und ordnen Sie der Klasse den Namen Account zu.
  2. Klicken Sie im Diagrammeditor mit der rechten Maustaste auf die Klasse Account und dann auf UML hinzufügen > Attribut.
  3. Ordnen Sie dem Attribut den Namen balance zu.
  4. Klicken Sie in der Eigenschaftensicht auf Typ auswählen.
  5. Klicken Sie im Fenster Element auswählen auf Ganze Zahl.
  6. Fügen Sie der Klasse 'Account' ein Attribut vom Typ 'Zeichenfolge' hinzu, das den Namen accountNumber trägt.
  7. Klicken Sie im Diagrammeditor mit der rechten Maustaste auf die Klasse Account und dann auf UML hinzufügen > Operation.
  8. Ordnen Sie der Operation den Namen getData zu.
  9. Klicken Sie in der Eigenschaftensicht auf Rückgabetyp festlegen.
  10. Erweitern Sie im Fenster Element auswählen das Element für itso.ad.business und das Element für framework. Klicken Sie dann im Unterpaket interfaces.to auf IAccountTO.
  11. Klicken Sie in der Palette auf Assoziation.
  12. Klicken Sie im Diagrammeditor auf die Klasse Customer, und ziehen Sie diese auf die Klasse Account.
  13. Klicken Sie im Diagrammeditor auf die Beziehung.
  14. Geben Sie in der Eigenschaftensicht im Feld Multiplizität für Account das Zeichen * ein.

Sie haben nun das Diagramm des Modells für die persistente Entität (EJB) erstellt. Beachten Sie, dass die Operationen für 'getData' der Enterprise-Beans für 'Customer' und 'Account' die Schnittstellen für die Übertragungsobjekte zurückgeben, die in der vorangegangenen Übung erstellt wurden. Ihr Diagramm wird jetzt wie in der folgenden Abbildung aufgeführt dargestellt:

Die EJB-Beziehung für 'Customer' und 'Account'.

Enterprise-Beans für Übertragungsobjekte modellieren

Die Enterprise-Beans für Übertragungsobjekte werden zur Übertragung von Daten zwischen den einzelnen Ebenen des PiggyBank-Designmodells verwendet. Die Komponenten 'PiggyBankEJBCustomerTO' und 'PiggyBankEJBAccountTO' implementieren hierbei die Schnittstellen 'ICustomer' und 'IAccount', die in der Framework-Komponentenebene definiert wurden.

Gehen Sie wie folgt vor, um PiggyBankEJBCustomerTO zu modellieren:
  1. Erweitern Sie in der Modellexplorersicht das Element für Enterprise IT Design Model (Unternehmens-IT-Designmodell) und dann für PiggyBank Implementation Designs (PiggyBank-Implementierungsdesigns).
  2. Klicken Sie mit der rechten Maustaste auf das Unterpaket itso.ad.business und dann auf UML hinzufügen > Paket.
  3. Ordnen Sie dem Paket den Namen to zu.
  4. Doppelklicken Sie in der Modellexplorersicht auf das Element für Haupt.
  5. Fügen Sie im Diagrammeditor den Titel interfaces.to - Transfer Object Implementations (interfaces.to - Übertragungsobjektimplementierungen) hinzu.
  6. Doppelklicken Sie in der Palette auf Klasse, und ordnen Sie der Klasse den Namen PiggyBankEJBCustomerTO zu.

Gehen Sie wie folgt vor, um die Parameter der Schnittstelle 'PiggyBankEJBCustomerTO' zu modellieren:
  1. Klicken Sie im Diagrammeditor mit der rechten Maustaste auf die Klasse PiggyBankEJBCustomerTO und dann auf UML hinzufügen > Attribut.
  2. Ordnen Sie dem Attribut den Namen id zu.
  3. Klicken Sie in der Eigenschaftensicht auf Typ auswählen.
  4. Klicken Sie im Fenster Element auswählen auf Ganze Zahl.
  5. Fügen Sie der Klasse 'PiggyBankEJBCustomerTO' ein weiteres Attribut vom Typ Zeichenfolge hinzu, das den Namen 'name' trägt.
  6. Klicken Sie im Diagrammeditor mit der rechten Maustaste auf die Klasse PiggyBankEJBCustomerTO und dann auf UML hinzufügen > Operation.
  7. Ordnen Sie der Operation den Namen PiggyBankEJBCustomerTO ( newId, newName ) zu.
  8. Klicken Sie in der Eigenschaftensicht auf der Seite Parameter auf das Feld Typ des Parameters newId, und ändern Sie den Parametertyp in Zeichenfolge.
  9. Klicken Sie auf das Feld Typ des Parameters newName, und ändern Sie den Parametertyp in Zeichenfolge.
Sie haben nun die Enterprise-Bean 'PiggyBankEJBCustomerTO' modelliert. Diese Bean enthält einen einzelnen Konstruktor, der die Klasse für die angegebene Kunden-ID und den zugehörigen Namen instanziiert. Nun müssen Sie die Beziehung zwischen der Enterprise-Bean 'PiggyBankEJBCustomerTO' und der Schnittstelle 'ICustomerTO' modellieren.

Gehen Sie wie folgt vor, um die Implementierungsbeziehung zu modellieren:
  1. Erweitern Sie in der Modellexplorersicht zuerst das Element für Enterprise IT Design Model (Unternehmens-IT-Designmodell), dann das Element für PiggyBank Implementation Designs (PiggyBank-Implementierungsdesigns) und für itso.ad.business sowie framework.
  2. Klicken Sie im Unterpaket interfaces.to auf die Klasse ICustomerTO, und ziehen Sie diese ins Diagramm.
  3. Klicken Sie in der Palette auf Implementierungen.
  4. Klicken Sie im Diagrammeditor auf die Klasse PiggyBankEJBCustomerTO, und ziehen Sie diese auf die Schnittstelle ICustomerTO.

Ihr Diagramm wird jetzt wie in der folgenden Abbildung aufgeführt dargestellt:

Die EJB für PiggyBankEJBCustomerTO.

Gehen Sie wie folgt vor, um PiggyBankEJBAccountTO zu modellieren:
  1. Doppelklicken Sie in der Palette auf Klasse, und ordnen Sie der Klasse den Namen PiggyBankEJBAccountTO zu.
  2. Klicken Sie im Diagrammeditor mit der rechten Maustaste auf die Klasse PiggyBankEJBAccountTO und dann auf UML hinzufügen > Attribut.
  3. Ordnen Sie dem Attribut den Namen balance zu.
  4. Klicken Sie in der Eigenschaftensicht auf Typ auswählen.
  5. Klicken Sie im Fenster Element auswählen auf Ganze Zahl.
  6. Fügen Sie der Klasse 'PiggyBankEJBAccountTO' ein weiteres Attribut vom Typ 'Zeichenfolge' hinzu, das den Namen 'number' trägt.
  7. Klicken Sie im Diagrammeditor mit der rechten Maustaste auf die Klasse PiggyBankEJBAccountTO und dann auf UML hinzufügen > Operation.
  8. Ordnen Sie der Operation den Namen PiggyBankEJBAccountTO ( newAccountNumber, newBalance ) zu.
  9. Klicken Sie in der Eigenschaftensicht auf der Seite Parameter auf das Feld Typ des Parameters newAccountNumber, und ändern Sie den Parametertyp in Zeichenfolge.
  10. Klicken Sie auf das Feld Typ des Parameters newBalance, und ändern Sie den Parametertyp in Ganze Zahl.
Sie haben nun die Enterprise-Bean 'PiggyBankEJBAccountTO' modelliert. Diese Bean enthält einen einzelnen Konstruktor, der die Klasse für die angegebene Kontonummer und den zugehörigen Kontostand instanziiert. Nun müssen Sie die Beziehung zwischen der Enterprise-Bean 'PiggyBankEJBAccountTO' und der Schnittstelle 'IAccountTO' modellieren.

Gehen Sie wie folgt vor, um die Implementierungsbeziehung zu modellieren:
  1. Erweitern Sie in der Modellexplorersicht zuerst das Element für Enterprise IT Design Model (Unternehmens-IT-Designmodell), dann das Element für PiggyBank Implementation Designs (PiggyBank-Implementierungsdesigns) und für itso.ad.business sowie framework.
  2. Klicken Sie im Unterpaket interfaces.to auf die Klasse IAccountTO, und ziehen Sie diese ins Diagramm.
  3. Klicken Sie in der Palette auf Implementierungen.
  4. Klicken Sie im Diagrammeditor auf die Klasse PiggyBankEJBAccountTO, und ziehen Sie diese auf die Schnittstelle IAccountTO.

Ihr Diagramm wird jetzt wie in der folgenden Abbildung aufgeführt dargestellt:

Die Objekte für PiggyBankEJBCustomerTO und PiggyBankEJBAccountTO.

Fassaden-Enterprise-Bean modellieren

Die Fassadenkomponente dient zur Trennung der persistenten Anwendungsdaten von der Geschäftslogik. Die Fassaden-Enterprise-Bean wird mit Hilfe der Klasse 'PiggyBankController' definiert, die von den Steuerungsklassen abgeleitet wird, die im PiggyBank-Analysemodell identifiziert wurden.

Gehen Sie wie folgt vor, um die Klasse 'PiggyBankController' zu modellieren:
  1. Erweitern Sie in der Modellexplorersicht das Element für Enterprise IT Design Model (Unternehmens-IT-Designmodell) und dann für PiggyBank Implementation Designs (PiggyBank-Implementierungsdesigns).
  2. Klicken Sie im Unterpaket itso.ad.business mit der rechten Maustaste auf das Paket ejb und dann auf UML hinzufügen > Paket.
  3. Ordnen Sie dem neuen Paket den Namen facade zu.
  4. Doppelklicken Sie in der Modellexplorersicht auf das Diagramm für Haupt, und fügen Sie den Titel facade - Session Facade (EJB Stateless Bean) on model (facade - Sitzungsfassade (EJB-Stateless-Bean) in Modell) hinzu.
  5. Doppelklicken Sie in der Palette auf Klasse, und ordnen Sie der Schnittstelle den Namen PiggyController zu.

Gehen Sie wie folgt vor, um die Operation 'cashCheck' zu modellieren:
  1. Klicken Sie im Diagrammeditor mit der rechten Maustaste auf die Klasse PiggyBankController und dann auf UML hinzufügen > Operation.
  2. Ordnen Sie der Operation den Namen cashCheck ( accountToCredit, checkAmount, checkReference ) zu.
  3. Klicken Sie in der Eigenschaftensicht auf der Seite Parameter auf das Feld Typ des Parameters accountToCredit, und ändern Sie den Parametertyp in Zeichenfolge.
  4. Klicken Sie auf das Feld Typ des Parameters checkAmount, und ändern Sie den Parametertyp in Ganze Zahl.
  5. Klicken Sie auf das Feld Typ des Parameters checkReference, und ändern Sie den Parametertyp in Zeichenfolge.

Gehen Sie wie folgt vor, um die Operation 'getAccountByCustomerId' zu modellieren:
  1. Klicken Sie im Diagrammeditor mit der rechten Maustaste auf die Klasse PiggyBankController und dann auf UML hinzufügen > Operation.
  2. Ordnen Sie der Operation den Namen getAccountByCustomerId ( customerId ) zu.
  3. Klicken Sie in der Eigenschaftensicht auf der Seite Parameter auf das Feld Typ des Parameters customerId, und ändern Sie den Parametertyp in Zeichenfolge.
  4. Klicken Sie in der Eigenschaftensicht auf der Seite Allgemein auf Rückgabetyp festlegen.
  5. Erweitern Sie im Fenster Element auswählen das Element für itso.ad.business und das Element für framework. Klicken Sie dann im Paket interfaces.to auf IAccountTO.
  6. Wählen Sie in der Eigenschaftensicht auf der Seite Allgemein das Kontrollkästchen Geordnet aus, und nehmen Sie die Auswahl des Kontrollkästchens Eindeutig zurück.
  7. Nehmen Sie die Auswahl des Kontrollkästchens Eindeutig zurück.
  8. Klicken Sie auf der Seite Erweitert neben Multiplizität auf das Feld Wert und dann auf 1..*.

Gehen Sie wie folgt vor, um die Operation 'getBalance' zu modellieren:
  1. Klicken Sie im Diagrammeditor mit der rechten Maustaste auf die Klasse PiggyBankController und dann auf UML hinzufügen > Operation.
  2. Ordnen Sie der Operation den Namen getBalance ( accountNumber, customerId ) zu.
  3. Klicken Sie in der Eigenschaftensicht auf der Seite Parameter auf das Feld Typ des Parameters accountNumber, und ändern Sie den Parametertyp in Zeichenfolge.
  4. Klicken Sie auf das Feld Typ des Parameters customerId, und ändern Sie den Parametertyp in Zeichenfolge.
  5. Klicken Sie in der Eigenschaftensicht auf der Seite Allgemein auf Rückgabetyp festlegen.
  6. Klicken Sie im Fenster Element auswählen auf Ganze Zahl.

Gehen Sie wie folgt vor, um die Operation 'getCustomerById' zu modellieren:
  1. Klicken Sie im Diagrammeditor mit der rechten Maustaste auf die Klasse PiggyBankController und dann auf UML hinzufügen > Operation.
  2. Ordnen Sie der Operation den Namen getCustomerById ( customerId ) zu.
  3. Klicken Sie in der Eigenschaftensicht auf der Seite Parameter auf das Feld Typ des Parameters customerId, und ändern Sie den Parametertyp in Zeichenfolge.
  4. Klicken Sie in der Eigenschaftensicht auf der Seite Allgemein auf Rückgabetyp festlegen.
  5. Erweitern Sie im Fenster Element auswählen das Element für itso.ad.business und das Element für framework, und klicken Sie dann im Paket interfaces.to auf ICustomerTO.

Gehen Sie wie folgt vor, um die Operation 'transfer' zu modellieren:
  1. Klicken Sie im Diagrammeditor mit der rechten Maustaste auf die Klasse PiggyBankController und dann auf UML hinzufügen > Operation.
  2. Ordnen Sie der Operation den Namen transfer ( amountToTransfer, creditAccountNr, customerId, debitAccountNr ) zu.
  3. Klicken Sie in der Eigenschaftensicht auf der Seite Parameter auf das Feld Typ des Parameters amountToTransfer, und ändern Sie den Parametertyp in Ganze Zahl.
  4. Klicken Sie auf das Feld Typ des Parameters creditAccountNr, und ändern Sie den Parametertyp in Zeichenfolge.
  5. Klicken Sie auf das Feld Typ des Parameters customerId, und ändern Sie den Parametertyp in Zeichenfolge.
  6. Klicken Sie auf das Feld Typ des Parameters debitAccountNr, und ändern Sie den Parametertyp in Zeichenfolge.

Sie haben nun die Komponentenebenenfassade für 'itso.ad.business' modelliert. Ihr Diagramm wird nun wie in der folgenden Abbildung aufgeführt dargestellt:

Die Klasse 'PiggyBankController' enthält die Fassadenimplementierung für die PiggyBank-Designebene 'itso.ad.business'.
Rechtliche Hinweise | Feedback
(C) Copyright IBM Corporation 2004, 2005. Alle Rechte vorbehalten.