Entwicklung von ADF-Applikationen –JDeveloper vs. Eclipse
Jürgen Menge
Oracle Deutschland
<Insert Picture Here>• Die Technologie:
Das Oracle Application Development
Framework (ADF)
• Die Entwicklungsumgebungen (IDE)
• Oracle JDeveloper
Agenda
• Oracle JDeveloper
• Oracle Enterprise Pack for Eclipse
• Weiterführende Informationen
Das Oracle Application Development Framework (ADF)
• Weiterentwicklung und Integration bestehender Frameworks
• Auswahlmöglichkeiten der einzusetzenden Technologien
• Integration der ausgewählten Technologien
• Entwicklung von SOA-Anwendungen
• Entwicklung wiederverwendbarer Services
• Entwicklung von Composite Applications• Entwicklung von Composite Applications
• Entwicklung von interaktiven Web-Anwendungen
(AJAX, Flash, …)
• Produktivität der Entwicklung
• Oracle JDeveloper oder Oracle Enterprise Pack for Eclipse
• Visuelle, deklarative und code-orientierte Arbeitsweise
• Konzentration auf die Applikation und nicht
auf technische Details der Implementierung
• Umsetzung von JEE Best Practices
Der Grundgedanke von Oracle ADFWeb Desktop Mobile Office
Datenbank Web Services Legacy-Systeme Applications Unlimited
ADF Bindings (JSR 227)ADF Bindings (JSR 227)
JSFJSF
Desktop Browser und mobile Geräte
StrutsStruts JSF/ADFcJSF/ADFc
OfficeOfficeADFADF SwingSwing JSPJSP ADF ADF FacesFaces
Architektur - Oracle ADF 11gM
eta
data
Serv
ices (M
DS
)M
eta
data
Serv
ices (M
DS
)
Model
Controller
ViewMobileMobile
ADFmcADFmc
XML DataXML Data Legacy DataLegacy DataRelational DataRelational Data Packaged AppsPackaged Apps
EJBEJB BAMBAM ADFbcADFbc PortletsPortletsBIBI EssbaseEssbaseBPELBPEL Web Web ServicesServices
JavaJava
Meta
data
Serv
ices (M
DS
)M
eta
data
Serv
ices (M
DS
)
Business Services
Data Services
JPA/TopLinkJPA/TopLink
<Insert Picture Here>• Die Technologie:
Das Oracle Application Development
Framework (ADF)
• Die Entwicklungsumgebungen (IDE)
• Oracle JDeveloper
Agenda
• Oracle JDeveloper
• Oracle Enterprise Pack for Eclipse
• Weiterführende Informationen
Oracle JDeveloper
• Integrierte Entwicklungsumgebung • Unterstützung des vollständigen Entwicklungszyklus
• Entwicklungsumgebung für Java, XML, Web Services, SQL, PL/SQL
• Integrierter Application Server – WebLogic Server
• IDE für Fusion- und Fusion Middleware-Projekte
• JEE-Anwendungsentwicklung• JEE-Anwendungsentwicklung• UML-Modellierung
• Entwicklung von Java-Clients, Applets,
JSP, JSF, Servlets, Java Beans, EJBs, ...
• Unterstützung für Open Source Software
(Struts, Ant, JUnit, ...)
• kostenfrei
ADF ADF BindingsBindings
JSFJSF
Desktop Browser und mobile Geräte
StrutsStruts JSF/ADFcJSF/ADFc
OfficeOfficeADFADF SwingSwing JSPJSP ADF ADF FacesFaces
Oracle ADF - Fusion StackM
eta
data
Serv
ices (M
DS
)M
eta
data
Serv
ices (M
DS
)
Model
Controller
ViewMobileMobile
ADFmcADFmc
XML DataXML Data Legacy DataLegacy DataRelational DataRelational Data Packaged AppsPackaged Apps
EJBEJB BAMBAM ADFbcADFbc PortletsPortletsBIBI EssbaseEssbaseBPELBPEL Web Web ServicesServices
JavaJava
Meta
data
Serv
ices (M
DS
)M
eta
data
Serv
ices (M
DS
)
Business Services
Data Services
Model
JPA/TopLinkJPA/TopLink
Application Module (AM)Application Module (AM)
Data ControlData Control
Schichten einer ADF Fusion-Applikation
• GUI (JSF / ADF Faces)
• Binding von Attributen und Methoden
des Business Service über den Binding Layer
(Data Controls)
• Data Control
• stellt Attribute und Methoden für die GUI bereit
GUI GUI (JSF/ADF Faces)(JSF/ADF Faces)
View Object (VO)View Object (VO)
• View Object (VO) und Application Module (AM)
• View Object (VO) stellt Sicht auf die Daten bereit
• Application Module (AM) definiert Datenmodell
und Transaktion
• Entity Object (EO)
• repräsentiert eine Tabelle/View in der Datenbank
Entity Object (EO)Entity Object (EO)
Demonstration
ADF-Entwicklung mit Oracle JDeveloperADF-Entwicklung mit Oracle JDeveloper
<Insert Picture Here>• Die Technologie:
Das Oracle Application Development
Framework (ADF)
• Die Entwicklungsumgebungen (IDE)
• Oracle JDeveloper
Agenda
• Oracle JDeveloper
• Oracle Enterprise Pack for Eclipse
• Weiterführende Informationen
Oracle - Strategic Developer und Board Member der Eclipse Foundation
• Mitarbeit in der Eclipse Foundation
seit 2002
• Oracle ist seit März 2007 Strategic Developer und
Board Member der Eclipse Foundation
• Mitarbeit bzw. Lead in verschiedenen Projekten• Mitarbeit bzw. Lead in verschiedenen Projekten
• Eclipse Web Tools Platform Project (WTP)
• JSF Tooling
• Eclipse Technology Project
• Eclipse Modeling Project
• Eclipse Persistence Platform (EclipseLink)
• Eclipse Data Tools Platform Project (DTP)
Oracle Enterprise Pack for Eclipse (OEPE)
• Zusammenfassung von Plug-Ins für die Entwicklung
mit Eclipse
• ehemals: Workshop for WebLogic (BEA)
• Unterstützung für Java EE, Java SE, JSF, Web
Services, XML, Spring, Struts, Database
Development, CSS & Javascript
• Deployment auf verschiedenen Application Servern
(WebLogic Server, GlassFish, …)
• kostenfrei
Oracle Enterprise Pack For Eclipse - Status
• OEPE 11.1.1.8
• Auf Basis von Eclipse 3.7 (Indigo)
• ADF Faces-Komponenten
• JSF Page Flow und ADF Taskflows (adfc-config.xml)
• ADF Application Debugging
• Abhängigkeits-Analyse mit AppXRay
Oracle Restricted and Confidential
• OEPE xx.x.x (geplant)
• ADF Binding Layer
OEPE - Überblick
Oracle RuntimesOracle Runtimes
•WebLogic Server• Coherence• Glassfish
JSFJSF
Web ServicesWeb Services
•JAX-WS•JAXB•Client Gen•Test Client•Advanced validation•WebLogic
Java Web AppsJava Web Apps
• Visual Web App design • ADF, JSP, JSF, JSTL, CSS, HTML•Smart editor
SpringSpring
•Spring IDE•Spring DAO generation•Spring Facets•Generate
Oracle DB ToolsOracle DB Tools
•Oracle DTP Plug-in•SQL Query•DDL Generation•E/R
AppXRayAppXRay ORM WorkbenchORM Workbench
•Entity Generation• Entity Editor•EclipseLink•OpenJPA•Kodo
•Visualize Dependencies•As you type validation•Code navigationJSFJSF •WebLogic
SCAeditor• Tag Drop wizards
•Generate JAX-WS from bean
•E/R Diagrams
•Kodo
Eclipse Platform
Web Tools
JDT APT Debug
WTP JSF Dali WPE EclipseLink
navigation•Code completion
Workspace und Projekte
• Workspace in Eclipse entspricht Application im JDev
• aber es kann jeweils nur ein Workspace geöffnet sein
• Umschalten zwischen Workspaces bewirkt Neustart der IDE
• Projekte in Eclipse entsprechen Projekten im JDev
• Anlegen einer ADF Application erzeugt zwei Projekte
• <app_name> Enterprise Application Project (Deployment)
• <app_nameWeb>Dynamic Web Project
• zusätzliches Projekt für das Model (JPA, ...)
Perspektiven
• Auswahl und Anordnung von Tools bzw. Views
• Perspektive „JavaEE“ für ADF-Applikationen mit Views
• Application Server View (Starten und Stoppen)
• Data Source Explorer View (u.a. DB Connections)
• WLS Console
• ...
Application Server
• kein eingebetteter Application Server
• ADF-Applikationen benötigen WLS 10.3.4+ mit ADF
Extension
• Aufsetzen der Verbindung (Runtime) in Eclipse
• ADF- und JPA-Extensions können im Wizard installiert werden
ADF Bindings (JSR 227)ADF Bindings (JSR 227)
JSFJSF
Desktop Browser und mobile Geräte
StrutsStruts JSF/ADFcJSF/ADFc
OfficeOfficeADFADF SwingSwing JSPJSP ADF ADF FacesFaces
ADF – JEE Business ServiceM
eta
data
Serv
ices (M
DS
)M
eta
data
Serv
ices (M
DS
)
Model
Controller
Viewmobile UImobile UI
mobilemobile
J2MEJ2ME
XML DataXML Data Legacy DataLegacy DataRelational DataRelational Data Packaged AppsPackaged Apps
JPA/TopLinkJPA/TopLink
EJBEJB BAMBAM ADFbcADFbc PortletsPortletsBIBI EssbaseEssbaseBPELBPEL Web Web ServicesServices
JavaJava
Meta
data
Serv
ices (M
DS
)M
eta
data
Serv
ices (M
DS
)
Business Services
Data Services
Model
• Enterprise Java Beans (EJB) – deutliche Vereinfachung mit
• EJB 3.0 Java EE5
• EJB 3.1 Java EE6
• Java Persistence API (JPA)
• JPA 1.0 innerhalb der Spezifikation EJB 3.0
• aktuell: JPA 2.0 (Java Specification Request 317)
EJB, JPA, EclipseLink, TopLink
• WebLogic unterstützt JPA 2.0 bereits in Java EE 5.0
• EclipseLink
• EclipseLink bietet JPA-Implementierung 1.0 und ist
Referenzimplementierung von JPA 2.0
• strategischer Persistence Provider für Oracle
• Oracle TopLink = Oracle EclipseLink + Erweiterungen + Support
EclipseLink: Vollständige Java Persistenz
DBWSDBWSSDOSDOEISEISMOXyMOXyJPAJPA
Java SEJava SE Java EEJava EE OSGiOSGi SpringSpring Web AppsWeb Apps
Eclipse Persistence Services Project (EclipseLink)
XML Daten Legacy SystemeDatenbanken
...
JPA / EJB 3.0 - Architektur
Session Bean
JPA Persistence Provider
EJB Container
Client
Message-driven bean
Datenbank
Entity
JMS queue/topic
Struktur einer ADF-Applikation in OEPE
• JPA Project (Java Persistence API)
• Persistence Unit(s) (persistence.xml)
• JPA Entities (POJOs mit Annotationen)
• Session Beans (EJB)
• Enterprise Application Project
• Festlegungen zum Deployment• Festlegungen zum Deployment
• Web Project
• Managed Beans mit Injection der Session Beans
(faces-config.xml)
• ADF Faces Pages mit ADF Faces/DVT-Komponenten
Managed BeanManaged Bean(faces(faces--config.xml)config.xml)
Schichten einer ADF JPA/EJB-Applikation
• GUI (JSF / ADF Faces)
• Explizites Binding von Attributen und Methoden
des Business Service (JPA)
• JSF Managed Bean
• Injektion der Session Bean
• stellt Attribute und Methoden für die GUI bereit
GUI GUI (JSF/ADF Faces)(JSF/ADF Faces)
Session BeanSession Bean
• Session Bean
• Geschäftslogik und Transaktionssteuerung
• ruft CRUD-Methoden des Entity Managers auf
• JPA Entity
• repräsentiert persistenzierbaren Zustand
• Entity Manager implementiert die CRUD-Methoden
JPA EntityJPA Entity
ADF Faces Rich Client-Komponenten
• >150 User Interface-Komponenten
• AJAX, Flash, …
• Rich Client-Komponten: Tabelle, Form, Splitter, Accordion, …
• DVT-Komponenten: Charts, Gantt, Karten, Pivot, Kalender, Karussell
• Funktionalität
• Partial-page Refresh
• Internationalisierung
• automatische Sortierung
25
• automatische Sortierung
• Dialog- und Popup-Framework
• Drag & Drop
• Barrierefreiheit
• Unterstützung für versch. Clients
• Browser, Mobile Devices
• Anpassbares Look & Feel (Skins)
ADF Faces Controller
• Erweiterung der JSF Page
Flow Engine
• Abfolge von Pages und
Methoden
• Modellierung von Abläufen
• Wiederverwenden von Task
Flows
• in anderen Task Flows
• in anderen Pages
• Deklarative Festlegung
komplexer Funktionalität
• Transaktionen, Initialisierung,
Back Button
Rich Client- und
DVT-Komponenten
ADF Faces
Smart Property SheetJSF Page Flow
• Data Binding
• (noch) kein Data Binding Layer in Eclipse
• direktes Binding anstelle von Data Controls
• Data Binding auf Basis der Expression
Language (EL)
• Data Palette
Data Binding
• Data Palette
• enthält die verfügbaren Datenelemente
• JSF Managed Beans
• Page, Session, Application Scoped
Variables
• Teil des Oracle Enterprise Pack for Eclipse
• Analyse der Abhängigkeiten zwischen JSP/JSF Pages, Java
Source Code, Resource Bundles, CSS-Dateien und
Konfigurationsdateien
• automatisch aktiviert für dynamische Web-Projekte
• Aufbau einer Datenbank
• Navigation entlang der Abhängigkeiten (Usages)
• Anzeige von Problembereichen
Anzeige der Abhängigkeiten - AppXRay
• Anzeige von Problembereichen
Demonstration
ADF-Entwicklung mit Eclipse (OEPE)ADF-Entwicklung mit Eclipse (OEPE)
JDeveloper vs. Eclipse in Bezug auf ADF
Lizenzkosten JDeveloper OEPE
Struktur der IDE Applikation, Projekte Workspace, Projekte
Perspektiven
Application Server WLS eingebettet beliebig konfigurierbar; ADF
11g erfordert WLS 10.3.4+
Business Service
Layer
Verschiedene Technologien;
Schwerpunkt ADF BC
Verschiedene Technologien;
Schwerpunkt EJB/JPA
Data Binding ADF Binding Layer Direktes Data BindingData Binding ADF Binding Layer
(Data Controls)
Direktes Data Binding
View Layer ADF Faces-Komponenten ADF Faces-Komponenten
Controller ADF Faces Controller;
JSF Controller
ADF Faces Controller;
JSF Controller
Lizenzkosten kostenfrei kostenfrei
Austausch von Entwicklungsergebnissen über Deployment in
Bibliothek und Ressourcen-Katalog möglich
Oracle ADF - welche Persistenztechnologie
• Oracle ADF Business Components
• datenbank-orientierte Dialoganwendungen
• datenmodell-getrieben (relationales Datenmodell)
• EclipseLink/JPA
• getrieben von objekt-orientiertem Domänenmodell• getrieben von objekt-orientiertem Domänenmodell
• Anwendungen, deren Anforderungen über Masken
hinausgehen (z.B. JMS-Integration, …)
<Insert Picture Here>• Die Technologie:
Das Oracle Application Development
Framework (ADF)
• Die Entwicklungsumgebungen (IDE)
• Oracle JDeveloper
Agenda
• Oracle JDeveloper
• Oracle Enterprise Pack for Eclipse
• Weiterführende Informationen
• Oracle Application Development Framework (ADF)http://www.oracle.com/technology/products/adf
• Oracle JDeveloperhttp://www.oracle.com/technology/products/jdev
• Oracle Enterprise Pack for Eclipse
Produktinformationen im OTN
• Oracle Enterprise Pack for Eclipsehttp://www.oracle.com/technetwork/developer-tools/eclipse
Communities
• Google Group „ADF Methodology“http://groups.google.com/group/adf-methodology
• Deutsche Oracle ADF Community
• Oracle ADF Community auf XINGhttps://www.xing.com/net/adfcomm/
• News Sessions (30-minütige Web Seminare an jedem 2. Freitag)• News Sessions (30-minütige Web Seminare an jedem 2. Freitag)
(Anmeldung über [email protected])
• Deutsche ADF Community Page im Internet (Newsletter)
http://www.oracle.com/webfolder/technetwork/de/community/adf/index.html
• regelmäßige Treffen der Oracle ADF-Partner
• Zusammenarbeit mit der DOAG (Jahreskonferenz, SIG)
• …
ADF Community – Project Session
• Project Session
• 5-teilige Serie von kostenlosen, aufeinander aufbauenden
Hands-On-Workshops
• durchgeführt von Oracle und kompetenten Partnern
• Themen
• 20.- 22.9.: Projektstart, Einführung in ADF,
Entwicklung einer ersten Applikation
• 8.- 10.11.: Vorgehensmodell, Geschäftslogik, Arbeiten im Entwicklerteam
• 5.- 8.12.: User Interface, Umsetzen grafischer Layouts, Deployment
• 17.-19.1.: Erweiterung der Ablaufsteuerung
• offen: Sicherheit, Skalierbarkeit, Integration
• Informationen unter:http://apex.oracle.com/pls/apex/f?p=38040:1:2262126060740176
Q&A
37