Visual Age und Rational Rose Daniel Faensen. 2 Übersicht  Integration Rational Rose und VisualAge (Forward / Reverse Engineering)  Team-Unterstützung.

Slides:



Advertisements
Ähnliche Präsentationen
EJB, Norbert Schuler1 Enterprise Java Beans z Was sind Enterprise JavaBeans? z Historie z Motivation z Architektur z Konstruktion eines Enterprise.
Advertisements

Object Relational Mapping
Objektrelationales Mapping mit JPA
Objektrelationales Mapping mit JPA Advanced Topics Jonas Bandi Simon Martinelli.
Modellgetriebene Softwareentwicklung
JPQL Java Persistence Query Language
DI Christian Donner cd (at) donners.com
MOM in a Day Hands on Lab –HOL 1: Erstellen einer Computer Group –HOL 2: Erstellen einer Processing Rule Group –HOL 3: Verknüpfen der erstellten Computer.
MySQL.
PowerBuilder und SVN Erste Schritte bei der Versionsverwaltung von Softwareprojekten mit Subversion (SVN) PBUGG 2009, A. Schmidt.
Übung 5 Mehrstufige Client/Server-Systeme mit Enterprise Java Beans
Enterprise Java Beans (EJB) VL Anwendungssysteme Freitag, Gerald Weber.
Objektrelationales Mapping mit JPA Working with Persistent Objects Jonas Bandi Simon Martinelli.
Objektrelationales Mapping mit JPA Getting Started Jonas Bandi Simon Martinelli.
Stephan Bury  Pascal Busch  Bita Gerami
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Java: Dynamische Datentypen
XINDICE The Apache XML Project Name: Jacqueline Langhorst
SQL als Abfragesprache
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
Oracle PL/SQL Server Pages (PSP). © Prof. T. Kudraß, HTWK Leipzig Grundidee: PSP – Internet-Seiten mit dynamischer Präsentation von Inhalten durch Einsatz.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Speicherung von XML- Dokumenten als Large Objects.
Christian Kästner Modellgetriebene Softwareentwicklung Eclipse Modelling Framework.
XDoclet ETIS SS05.
Business Logik als EJB-Applikation Gruppe pea19 Raed IssaChristian KubanekHonoré Tiako.
DFKIUtils FRODO AgentFramework ein kleiner Einblick FRODOianer-Sitzung am
Java in 9 Folien Besser: Online-Buch Go to Java 2.
J2EE Conformance von JDBC Middleware und EJB Applikation Server Detlef KünzelSystemberater +49 (0)
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
JDBC: JAVA Database Connectivity
YouTube5 .0 Projektpräsentation
SOMA Service-Oriented Mobile learning Architecture.
Open Services Gateway Initiative
GIT und Redmine Übung.
Was umfaßt die CORBA Core Spezifikation? Welche zusätzlichen Komponenten muß ein ORB Produkt beinhalten? Core: CORBA Objekt Modell CORBA Architektur OMG.
Working With Persistent Objects
Letzter Tag Spaeter Zeitpunkt letzte Lied hoert man weiter.
1 Sg 3 – JSP - Java Server Pages Softwareengineering Praktikum Java Server Pages Nicole Brandstätter Josef Sturm Karl Streicher.
MDA – Framework AndroMDA
Aurich – Jonas Jacobi OSGi Tutorial Aurich – Jonas Jacobi Das OSGi Service Framework Dynamisches Modulsystem für Java Dynamische.
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
Java und Eclipse.
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
Reiner Ganser Solution Architect 1stQuad Solutions GmbH Presentation Subtitle.
Sesame Florian Mayrhuber
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Getting Started Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
FIN-IVS Dr.Fritz Zbrog Verteilte Systementwicklung EJB Tutorial Was wird für EJB-Entwicklung benötigt ? J2EESDK 1.4 (software developement kit)
Esprit Database Suite Eine leistungsfähige Java-Persistzenzschicht zur einfachen Programmierung von Datenbankapplikation.
Von Isabelle Spörl und Simon Schausberger
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
Hibernate (OR-Mapping)
Voyager Eigenschaften/Vorzüge Universalität: –ROI-Modelle: CORBA, RMI, DCOM –verschiedene Namens-, Verzeichnisdienste Nachrichtentypen: synchron, oneway,
Visual Age und Rational Rose Daniel Faensen. 2 Übersicht  Integration Rational Rose und VisualAge (Forward / Reverse Engineering)  Team-Unterstützung.
Seminar Modellgetriebene Softwareentwicklung XMI - XML Metadata Interchange Vortrag im Rahmen des Seminar Modellgetriebene Softwareentwicklung Mirko Otto.
EJB Architektur für große Web - Applikationen Gerald Weber
Modellierung und Schnittstelle zu UML Pro-Seminar GIS II WS 2004/2005 Christoph Römer.
Java 2 Enterprise Edition (J2EE) Sascha Baumeister Software Architect Specification Lead JSR086 IBM Deutschland Entwicklung GmbH
Continuous Integration
Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.
© 2003, Rudolf Jansen Einsatz der XML-Features der Oracle 9i DB zur Systemintegration Rudolf Jansen Freiberuflicher Entwickler und Autor
Oracle IFS Die Brücke zwischen Content Management System und einer Produktpräsentation im Internet.
Seminararbeit Release Management von Web-Systemen Minh Tran Lehrstuhl für Software Engineering RWTH Aachen
DB2 UDB im z/VSE Heinz Peter Maassen – Lattwein GmbH COURSE Tagung Bad Hersfeld 2008.
© 2012 TravelTainment Einführung in Enterprise JavaBeans Seminarvortrag von Ralf Penners Folie 1 von 34.
© 2003, Rudolf Jansen Java in der Datenbank Rudolf Jansen Freiberuflicher Entwickler und Autor DOAG SIG Development,
Verteilte Anwendungen: J2EE
Workshop 5 TMC 2016 Gregor Glinka
Workshop 1 Getting Started 2016 Boris Wylutzki
 Präsentation transkript:

Visual Age und Rational Rose Daniel Faensen

2 Übersicht  Integration Rational Rose und VisualAge (Forward / Reverse Engineering)  Team-Unterstützung in VisualAge  EJB-Entwicklung mit VisualAge und der WebSphere Testumgebung

3 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!

4 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

5 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

6 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

7 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

8 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

9 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”

10 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!  Rose-ModellUML-XMIJava-XMIJava Forward Engineering Reverse Engineering

11 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 >  In VAJ: EJB -> Add -> Import from Rose or XMI

12 VAJ Team-Unterstützung  VAJ Enterprise Edition hat Team-Unterstützung  Benutzer, Rollen, Rechte, Team-Server, Shared Repository goliath emsvr Team Repository lehre.dat VAJ Clients

13 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...

14 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

15 VAJ Team-Unterstützung Jeder darf jede Klasse ändern/bearbeiten!

16 VAJ Team-Unterstützung Zustände von Projekten, Packages, Typen

17 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

18 VAJ Team-Unterstützung Baselines Baseline  Editionen im Workspace synchronisieren  Baseline update:

19 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

20 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“)

21 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!

22 VAJ Team-Unterstützung Weitere Infos unter ~ag-db/software/VAJ_PDF/team.pdf

23 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

24 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

25 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

26 EJB-Entwicklung Session Bean Session Bean

27 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

28 EJB-Entwicklung Deployment Deployment  Deployment descriptor wizard - Bean level: Select bean, Properties  Methods Select method EJB Method attributes -> Add control descriptor

29 EJB-Entwicklung Deployment EJB Jar-Datei  Class-Dateien, Deployment Descriptor, Manifest  Generate Deployed Code erzeugt: -Container-implementierte EJBHome- und EJBObject- Klassen (+ Persistor und Finder für CMP-Beans) -Java ORB, Stubs und Skeletons für RMI -Helper und Holder für Home und Remote Interfaces

30 EJB-Entwicklung Testing  Add to -> Server configuration  Properties  Create database tables

31 EJB-Entwicklung Testing  Start EJB Server: -Tools -> Websphere Test Environment -Start Persistent Name Server -Start EJB Server -Quelltextänderung, Debugging ohne Neustart

32 EJB-Entwicklung Testing  Test Client -Breakpoints, Debugging... -Lookup -> Initialer Naming Context -> laden desHome Interfaces -Selektiere Create -Run

33 EJB-Entwicklung Testing/Deployment  Configuration für eigene Applikationen -Websphere Test Environment muss in Project Classpath  Deployment für andere Applikationsserver -Export -> EJB JAR

34 EJB-Entwicklung CMP Beans  Container Managed Persistence Entity Beans -Wie Session Bean aber anderer Bean Type -Add CMP Fields

35 EJB-Entwicklung CMP Beans  Schema und Map: Abbildung zwischen CMP- Feldern 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

36 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? Type ACCNUMBER NOT NULL NUMBER(10) BALANCE FLOAT(126) OWNER VARCHAR2(30)

37 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

38 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 Run SQL> SELECT * from SCOTT.Account; ACCNUMBER BALANCE OWNER Spiele mit Test Client und Oracle -Test Client: create() setOwner()... -Oracle: insert delete update (commit nicht vergessen)

39 EJB-Entwicklung BMP Beans  J. Picon, P. Genchi, M. Sahu, M. Weiss, A. Dessureault: Enterprise JavaBeans Development Using VisualAge for Java. IBM Redbook SG , June 1999 ~faensen/lehre/sg245429_EJB_VAJ.pdf  Beispiel mit XML-Datei als Persistenzmedium

40 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)

41 EJB-Entwicklung Anmerkungen  Code nur im EJB-Pane bearbeiten  Package EJBGroupEJBReserved enthält Metadaten

42 EJB-Entwicklung Session Bean Deployment  Deployment descriptor wizard: Select bean, Properties  Methods Select method EJB Method attributes -> Add control descriptor

43 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 >  In VAJ: EJB -> Add -> Import from Rose or XMI

44 Quellenhinweise  Lokale Dokumentation (PDF): -z.B.: Team-Entwicklung, EJB-Entwicklung, XMI-Toolkit  Visual Age Developer Domain -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 SG , June 1999 ~faensen/lehre/sg245429_EJB_VAJ.pdf