PPT

Werbung
Visual Age und Rational Rose
Daniel Faensen
Übersicht
 Integration Rational Rose und VisualAge
(Forward / Reverse Engineering)
 Team-Unterstützung in VisualAge
 EJB-Entwicklung mit VisualAge und der
WebSphere Testumgebung
2
Integration Rose/VAJ
 Problem: Konsistenz von Modell und Code
 Abgrenzung: Nur statisches Strukturmodell
(Klassendiagramm)
 Lösung I: “Low Level” CASE-Tool
 Lösung II: Forward und Reverse Engineering
Drei Alternativen für Rose und VAJ:
Klassische Variante
Rose Link
XMI Toolkit
 Frage: Wie oft synchronisieren? - Eher selten!
3
Integration Rose/VAJ
I Klassische Variante
 Voraussetzungen (auch für Rose Link):
Default language muss Java sein
Referenzierte Klassen müssen im
Rose-Classpath stehen
4
Integration Rose/VAJ
I Klassische Variante
 Forward Engineering = Code Generation
 Tools -> Java -> Generate Java oder
Kontextmenü -> Java -> Gerenate Java
 Viel Freude beim Suchen des generierten Codes!
 VAJ starten
 Java-Dateien importieren
File -> Import -> Directory
 Code bearbeiten
5
Integration Rose/VAJ
I Klassische Variante
 Reverse Engineering
 VAJ starten
 Java-Dateien exportieren
File -> Export -> Directory
 Rose starten, Modell laden
 Tools -> Java -> Reverse Engineer Java oder
Kontextmenü
 Klassen auswählen und Import starten
 Modell bearbeiten
6
Integration Rose/VAJ
II Rose Link
 Rationals Tool zur Integration von Rose und VAJ
 Frei zum Download
(bzw. ~faensen/rose/RoseVAJava.exe)
 Rose und VAJ müssen
aktiv sein
 Als JVM muss IBM
gewählt sein
 In VAJ RoseLink starten
File -> QuickStart -> Basic -> Rose Link Plugin
 In Rose Code generieren
 Projekt wählen
 Code wird generiert und automatisch in VAJ importiert
7
Integration Rose/VAJ
II Rose Link
 In Rose Reverse Engineering
 Projekt wählen
 Rose initiiert Export aus VAJ
 Rose bietet exportierte Klassen zum Import an
 Achtung! Speicherplatzprobleme
8
Integration Rose/VAJ
Problembehebung
 Probleme beim Import:
Vor dem Export aus VAJ alle Java-Dateien löschen
(Backup!)
 Modell nach dem Reverse Engineering aufräumen
Assoziationen in Attribute umwandeln
(~faensen/rose/CleanAssociationsAfterImport.ebs +
~faensen/rose/roseImportConversions.txt)
Für überfüllte Klassen:
“Show All {Attributes,Operations}” abstellen,
“Select Compartment Items”
9
Integration Rose/VAJ
III XMI Toolkit
XMI Toolkit
 IBMs Tool zur Integration von Rose und VAJ
 Mitgeliefert mit VAJ EE
 Liest Rose .mdl-Datei -> Rose wird nicht benötigt
 Austausch über XMI (XML Interchange (?))
 Problem: Arbeitsspeicher!
 www.inf.fu-berlin.de/inst/ag-db/software/VAJ_PDF/xmi.pdf
Forward Engineering
Rose-Modell
UML-XMI
Java-XMI
Java
Reverse Engineering
10
Integration Rose/VAJ
EJB
Spezielle Enterprise Java Beans Unterstützung
 XMI Toolkit + XMI Bridge
(~faensen/lehre/xmibridge.dat)
 Modelliere in Rose
 Markiere Primärschlüsselattribute mit dem
Stereotyp <<OID>>
 In VAJ:
EJB -> Add -> Import from Rose or XMI
11
VAJ Team-Unterstützung
 VAJ Enterprise Edition hat Team-Unterstützung
 Benutzer, Rollen, Rechte, Team-Server, Shared
Repository
VAJ Clients
goliath
emsvr
lehre.dat
Team Repository
12
VAJ Team-Unterstützung
 Client-Konfiguration:
Eintrag in Datei
C:\Programme\Ibm\Visual Age for Java\
ide\program\ide.ini
...
[JavaDevelopment]
ServerAddress=goliath
DefaultName=lehre.dat
OpenReadOnly=false
...
13
VAJ Team-Unterstützung
 Repository
Benutzerverwaltung
Speicherung der Objekte (Projekte, Packages, Klassen)
Versionsverwaltung (Source Control Management, SCM)
 Workspace
Jeweils eine Version/Edition aus dem Repository
Workspace Owner
Auf der lokalen Platte des Clients
 Problem: Synchronisation
14
VAJ Team-Unterstützung
Object
Role
Rights
Project
Owner
Version, Release
Package
Owner
Group Member
Release
Version
Type
Owner
Developer
Release
Version
Jeder darf jede Klasse ändern/bearbeiten!
15
VAJ Team-Unterstützung
Zustände von Projekten, Packages, Typen
create
undefined
may change
version
others may load
versioned
release[ owner ]
released
change[ group member ]
change[ not group member ]
version[ developer ]
open
edition
may change
scratch
edition
16
VAJ Team-Unterstützung
Zustände eines Typs (Klasse, Interface)
 Open Edition: „Work in progress“
Im Repository können viele Open Editions
vorliegen
 Versioned Edition: Kann nicht geändert werden.
Zweck: Checkpoint, Freigabe, neue Baseline
 Released: Freigegeben für
Team-Mitglieder
 Scratch Edition: Privat,
zum Experimentieren
17
VAJ Team-Unterstützung
Baselines
Baseline
 Editionen im Workspace synchronisieren
 Baseline update:
Role
Class owner
Baseline
Package
Package owner
Project
Project owner
Project
Action
add class
release class
delete class
release package
delete package
... „ ...
add package
release resources
18
VAJ Team-Unterstützung
Baselines
 Synchronisieren
Projekt bzw. Package in den Workspace laden oder
Replace with -> Released contents
Lädt die zuletzt freigegebenen Klassen-Editionen dieser
Edition
Erfolglos, wenn es eine neue Version gibt!
 Hilfreich: Management Query
19
VAJ Team-Unterstützung
Offline arbeiten
 Repositories sind (VAJ-)versionsunabhängig
 Vorgehen:
Versioniere Packages
Exportiere in lokales Repository (home.dat)
Kopiere home.dat auf Offline-Rechner
Starte VAJ
Importiere aus Repository home.dat
Lade Packages in Workspace
(„Add -> Package“ oder „Replace with -> Another Edition“)
20
VAJ Team-Unterstützung
Anmerkungen
 Auch Ressourcen versionierbar (ab V 3.5)
 Kein Super-User
 Workspace Owner != NT User
 Es gibt kein check out (kein locking)
 Check in nicht nötig
 Jeder kann auf alles zugreifen
 Owner nimmt Änderungen an (release)
 Team-Kommunikation wird einem nicht
abgenommen!
21
VAJ Team-Unterstützung
Weitere Infos unter
http://www.inf.fu-berlin.de/
~ag-db/software/VAJ_PDF/team.pdf
22
EJB-Entwicklung
 VAJ EE hat EJB-Unterstützung
 Websphere Test Environment
 Weblogic VAJ Integration Kit
 Vorbereitungen
Add Features (File -> Quickstart)
EJB Tool
 Unterstützt:
Session Bean
CMP Bean
BMP Bean
23
EJB-Entwicklung
Schritte
 Add EJB Group
 Add EJBs
 Add home and remote (business) methods
 Add custom finders
 Add CMP fields
 Set deployment descriptor properties
 Generate EJB classes
 Generate access beans
 Test
 Export and deploy
24
EJB-Entwicklung
 Beispiele in EJB Samples:
HelloWorld und Increment
 Projekt und Package erzeugen
 Empfehlung: getrennte Projekte für Client und
EJB (-> jar-Dateien)
 EJB Group: Logische Gruppierung,
z.B. f. Export in JAR-Datei
 Erzeugen einer neuen EJB Group
EJB -> Add -> EJB Group
Projekt wählen
EJB Group benennen
25
EJB-Entwicklung
Session Bean
Session Bean
26
EJB-Entwicklung
Session Bean
Session Bean
 Felder hinzufügen
Selektiere Bean-Klasse, Add -> Field
(incl. getX() und set(X))
 Methoden hinzufügen
Selektiere Bean-Klasse, Add -> Method
Implementiere Methode
Add -> Methods-Add To -> EJB RemoteInterface
Achtung: Erneutes
Deployment
erforderlich
27
EJB-Entwicklung
Deployment
 Deployment descriptor
wizard - Bean level:
Select bean, Properties
Deployment
 Methods
Select method
EJB Method attributes ->
Add control descriptor
28
EJB-Entwicklung
Deployment
EJB Jar-Datei
 Class-Dateien, Deployment Descriptor, Manifest
 Generate Deployed Code erzeugt:
Container-implementierte EJBHome- und EJBObjectKlassen (+ Persistor und Finder für CMP-Beans)
Java ORB, Stubs und Skeletons für RMI
Helper und Holder für Home und Remote Interfaces
29
EJB-Entwicklung
Testing
 Add to -> Server
configuration
 Properties
 Create database tables
30
EJB-Entwicklung
Testing
 Start EJB Server:
Tools -> Websphere Test Environment
Start Persistent Name Server
Start EJB Server
Quelltextänderung,
Debugging ohne
Neustart
31
EJB-Entwicklung
Testing
 Test Client
Breakpoints, Debugging ...
Lookup -> Initialer Naming Context
-> laden desHome Interfaces
Selektiere Create
Run
32
EJB-Entwicklung
Testing/Deployment
 Configuration für eigene Applikationen
Websphere Test Environment muss in Project Classpath
 Deployment für andere
Applikationsserver
Export -> EJB JAR
33
EJB-Entwicklung
CMP Beans
 Container Managed Persistence Entity Beans
Wie Session Bean aber anderer Bean Type
Add CMP Fields
34
EJB-Entwicklung
CMP Beans
 Schema und Map: Abbildung zwischen CMPFeldern und Tabellenspalten
 Top Down:
CMP-EJB existiert, generiere DB Schema
 Bottom Up: EJB für existierende DB
(nicht unterstützt)
 Meet in the Middle:
Importiere Schema
Definiere Map
35
EJB-Entwicklung
CMP Beans
 Top Down
Add -> Schema and Map
Schema browser und Map browser
Generate deployed code
Add to -> Server configuration
EJB Server Properties: Configuriere DB-Verbindung
EJB Server: Create Database Tables
Eine Tabelle pro CMP Bean
SQL> DESC SCOTT.Account
Name
Null?
----------------------------------------- -------ACCNUMBER
NOT NULL
BALANCE
OWNER
Type
---------------------------NUMBER(10)
FLOAT(126)
VARCHAR2(30)
36
EJB-Entwicklung
CMP Beans
 Finder-Methoden
Beim Home-Interface Add -> Method
public java.util.Enumeration findNegativeAccounts()
Add Exceptions
Ignoriere Probleme
Query String im AccountFinderHelper
Kopiere Vorlage aus
EJSJDBCPersisterAccount.findByKeySqlString nach
AccountFinderHelper.findNegativeAccountsSqlString
Generate Deployed Code löst Probleme
37
EJB-Entwicklung
CMP Beans
 Finder-Methoden - Richtlinien
Bezeichner für Query String:
methodNameQueryString, z.B.
findNegativeAccountsQueryString
 Test
Starte EJB Server
Selektiere Account
Run Test Client
Selektiere create(int)
Setze Parameter auf 1001
Run SQL> SELECT * from SCOTT.Account;
 Spiele mit Test
Client und Oracle
 Test Client:
create()
setOwner()
...
 Oracle:
insert
delete
update
(commit nicht
vergessen)
ACCNUMBER
BALANCE OWNER
---------- ---------- -----------------------------1001
0
38
EJB-Entwicklung
BMP Beans
 J. Picon, P. Genchi, M. Sahu, M. Weiss, A.
Dessureault: Enterprise JavaBeans Development
Using VisualAge for Java. IBM Redbook SG245429-00, June 1999
~faensen/lehre/sg245429_EJB_VAJ.pdf
 Beispiel mit XML-Datei als Persistenzmedium
39
EJB-Entwicklung
Access Beans
Access Beans
 Home-Methoden, die einzelne Instanz liefern ->
Constructor
 Erst instanziieren, dann aufrufen
 Copy helper statt wiederholtes get/set
 String-Konverter (für JSP)
40
EJB-Entwicklung
Anmerkungen
 Code nur im EJB-Pane bearbeiten
 Package EJBGroupEJBReserved enthält
Metadaten
41
EJB-Entwicklung
Deployment
 Deployment descriptor
wizard:
Select bean, Properties
Session Bean
 Methods
Select method
EJB Method attributes ->
Add control descriptor
42
Integration Rose/VAJ
EJB
Spezielle Enterprise Java Beans Unterstützung
 XMI Toolkit + XMI Bridge
(~faensen/lehre/xmibridge.dat)
 Modelliere in Rose
 Markiere Primärschlüsselattribute mit dem
Stereotyp <<OID>>
 In VAJ:
EJB -> Add -> Import from Rose or XMI
43
Quellenhinweise
 Lokale Dokumentation (PDF):
http://www.inf.fu-berlin.de/~ag-db/software/VAJ_PDF
 z.B.: Team-Entwicklung, EJB-Entwicklung, XMI-Toolkit
 Visual Age Developer Domain
http://www7.software.ibm.com/vad.nsf
 Doku, Downloads, Redbooks, Technical Journal ...
 Rose Tools
~faensen/rose/
 Rose Link: RoseVAJava.exe
 Putzhilfe für das Après Reverse Engineering:
CleanAssociationsAfterImport.ebs + roseImportConversions.txt
 XMI Bridge
~faensen/lehre/xmibridge.dat
 J. Picon, P. Genchi, M. Sahu, M. Weiss, A. Dessureault: Enterprise JavaBeans
Development Using VisualAge for Java. IBM Redbook SG24-5429-00, June 1999
~faensen/lehre/sg245429_EJB_VAJ.pdf
44
Herunterladen