Oracle Application Development Framework (ADF)

Werbung
<Insert Picture Here>
Oracle Application Development Framework (ADF)
Jürgen Menge
TSBU Middleware
Oracle Deutschland GmbH
Agenda
•
Warum Oracle ADF ?
•
Was ist Oracle ADF ?
•
Wie entwickle ich mit Oracle ADF ?
•
Typische Herausforderungen der
Anwendungsentwicklung
•
Weiterführende Informationen
<Insert Picture Here>
Herausforderungen der JEE-Entwicklung
• Vielzahl von Standards und Technologien
• JPA, EJB, Ajax, JavaScript, BPEL, SOAP, WSDL, RMI, JNDI,
JDBC, O/R, HTML, DOM….
• schnelle Weiterentwicklund der Standards u. Technologien
• Qualifikation der Entwickler im Unternehmen
•
•
•
•
viele Entwickler kommen aus der 4GL-Entwicklung
viele Entwickler kennen diese Technologien noch nicht
wenig Zeit, sich in alle diese Technologien einzuarbeiten
Entwickler sollen sich auf die fachlichen Anforderungen
konzentrieren
• Projektsituation
• Projekte unter Kosten- und Termindruck
• Anwendungen müssen zukunfts- und upgrade-fähig sein
Zielstellungen für Oracle ADF
• Entwicklungsplattform auf Basis offener Standards
(JEE, SOA/SCA) bereitstellen
• Integration verschiedener Standards und Frameworks,
um komplette Anwendungen zu entwickeln
• eine mit der 4GL-Entwicklung vergleichbare
Produktivität erreichen
• RAD-Arbeitsweise (deklarativ, visuell und programmatisch)
• Abstraktion von technischen Details der Implementierung
• Wiederverwendbarkeit
• Stabilität der Plattform gegenüber zukünftigen
Entwicklungen der Technologie gewährleisten
Oracle und das Oracle ADF
• Oracle entwickelt intern alle Fusion-Anwendungen mit
dem Framework Oracle ADF (“eat your own dog food”)
• Vorgaben für die Weiterentwicklung von ADF kommen
primär aus dem eigenen Haus
• Oracle ADF wird in vielen Oracle-Produkten verwendet
(Oracle Enterprise Manager, Webcenter, BPEL Process
Manager, …)
Agenda
•
Warum Oracle ADF ?
•
Was ist Oracle ADF ?
•
Wie entwickle ich mit Oracle ADF ?
•
Typische Herausforderungen der
Anwendungsentwicklung
•
Weiterführende Informationen
<Insert Picture Here>
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 interaktiven Web-Anwendungen
(AJAX, Flash, …)
• Produktivität der Entwicklung
• Oracle JDeveloper als Entwicklungsumgebung
• Visuelle, deklarative und code-orientierte Arbeitsweise
• Konzentration auf die Applikation und nicht
auf technische Details der Implementierung
• Umsetzung von JEE Best Practices
Architektur – Oracle ADF
Web and Mobile
Rich Clients
Controller
View
Controller
Model
Model
(JSR-227)
Business Services
Business
Services
Architektur - Oracle ADF 11g
Desktop
Browser-Based
View
Metadata Services (MDS)
ADF Swing
JSP
Office
JSF
ADF Faces / DVT
Controller
Struts
JSF/ADF Task Flow
Model
ADF Bindings (JSR 227)
Java
EJB
BAM
BPEL
Web
Services
ADFbc
BI
Essbase
Portlets
Business
Services
TopLink
Data
Services
Relational Data
XML Data
Legacy Data
Packaged Apps
Oracle ADF – Fusion Applications
Desktop
Browser-Based
View
Metadata Services (MDS)
ADF Swing
JSP
Office
JSF
ADF Faces / DVT
Controller
Struts
JSF/ADF Task Flow
Model
ADF Bindings (JSR 227)
Java
EJB
BAM
BPEL
Web
Services
ADFbc
BI
Essbase
Portlets
Business
Services
TopLink
Data
Services
Relational Data
XML Data
Legacy Data
Packaged Apps
Agenda
•
Warum Oracle ADF ?
•
Was ist Oracle ADF ?
•
Wie entwickle ich mit Oracle ADF ?
•
Typische Herausforderungen der
Anwendungsentwicklung
•
Weiterführende Informationen
<Insert Picture Here>
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
• UML-Modellierung
• Entwicklung von Java-Clients, Applets,
JSP, JSF, Servlets, Java Beans, EJBs, ...
• Unterstützung für Open Source Software
(Struts, Ant, JUnit, ...)
• kostenfrei
Entwicklung mit Oracle ADF
Develop
Expose
Access
Business
Service
Model
View
Oracle ADF - Business Services
• Verantwortlich für Persistenz
• O/R Mapping
• Abfragen/DML
• Durchführen der Validierung
• Daten-Validierung
• Geschäftslogik
• Wahl der Implementierung
EJB 3.0
TopLink
/Java
Beans
EJB
Session
Beans
ADF
Business
Components
Web
Services
…
ADF Business Components
JEE-Framework zur Erstellung von
Geschäftskomponenten
Persistenz-Schicht
Präsentation
Kapselung der Geschäftslogik
Implementierung von
J2EE-Design Pattern
Universeller Clientzugriff auf
die gleiche Logik
Auftrag
Kunde
Wichtiger
Auftrag
Auftrag
Kunde
seit 1999 als Framework
„Business Components for Java“ (BC4J)
im Einsatz (E*Business Suite)
viele Ähnlichkeiten zu Oracle Forms
Auftrag
Kunde
ADF Business Components
UI
HR_am
EmpDept_vo
Dept_eo
DEPT
DeptSals_vo
1
*
Emp_eo
EMP
EmpMgr_vo
Application
Module Class
‘Container’
3. Stufe der
Abstraktion
View Object
Classes
Select Statement
2. Stufe der
Abstraktion
Entity Obj. Classes Datenbank Mapping zu
Objekte
Relationen
Relationale
1. Stufe d. Abstrakt.
Welt
Cache Layer
Oracle ADF - Model
• ADF Databinding (JSR-227)
• Abstraktionsschicht des Modells
• generisches Data Binding im User Interface
• unabhängig, von welchem Business Service die Daten kommen
• Business Services können einfach augetauscht werden
Business
Components
Web
Services
Model
Toplink
EJB
Java
Classes
Oracle ADF – View (User Interface)
• Entwicklung der Präsentationsschicht
• visuell (WYSIWYG)
• deklarativ
• Wahl der Implementierung
ADF
Swing
JSP
JSP /
Struts
Java Server
Faces (JSF)
Demonstration
Entwicklung mit Oracle ADF
Agenda
•
Warum Oracle ADF ?
•
Was ist Oracle ADF ?
•
Wie entwickle ich mit Oracle ADF ?
•
Typische Herausforderungen der
Anwendungsentwicklung
•
Weiterführende Informationen
<Insert Picture Here>
Typische Herausforderungen (1)
• Integration unterschiedlicher Business Binding Layer
Services
• EJB/JPA, ADFbc, Web Services, POJOs, …
• Interaktive Benutzer-Oberflächen im
Web
• Verwaltung des Session-Status
• Anpassungsmöglichkeiten der
Applikation
Rich ClientKomponenten
Task Flows
Metadata
Services
• Varianten der Applikation (Customizing)
• Personalisierung
• Datenänderungen im Backend in der
Oberfläche sichtbar machen
Active Data
Service
Typische Herausforderungen (2)
• Unterstützung unterschiedlicher
Endgeräte
ADF mobile
• Desktop, PDA, Mobile
• Integration von Desktop-Anwendungen
(MS Office)
• Durchgängige Implementierung von
Anwendungssicherheit
• Integration mit Portal/PortletTechnologien (JSR: 168, 227)
• Wiederverwendbare Seitenvorlagen
• Unterstützung für Skinning
ADFdi
ADF Security
Oracle
WebCenter
Templates
Skins
Integration unterschiedlicher
Business Services
ADF Data Binding (ADF Model)
• zusätzliche Abstraktionsschicht vereinheitlicht den
Zugriff auf unterschiedliche Business Service
• deklaratives Data Binding (JSR 227)
Komponenten der ADF Model-Schicht
• Data Controls beschreiben
das Public Interface eines
Business Service
• Bindings verbinden
UI-Komponenten mit
Daten oder Aktionen
• Data Controls und
Bindings werden mit Hilfe
von XML-Metadaten
definiert
Bindings
Bindings
Data Control
Business Service
Data Binding - Zusammenhänge
ADF Data Controls
• Data Control Palette
• visuelle Repräsentation des Business Service mit
• Methoden
• Parametern und
Ergebnissen
• Attributen
• Collections
• vordefinierten
Operationen
• ermöglicht ein automatisches Data Binding für alle Business
Services
Data Binding und Expression Language
• Teil des Standards für JSP Standard Tag Library (JSTL)
• ADF nutzt Expression Language (EL) zur Beschreibung
des Data Binding
• EL Ausdrücke werden zur Laufzeit ausgewertet, um die
anzuzeigenden Daten zu bestimmen
• ADF EL Ausdrücke haben typischerweise folgende Form:
#{bindingVariable.BindingObject.propertyName}
• Beispiel für eine Komponente inputText in einer JSF Page
<af:inputText
value="#{bindings.Ename.inputValue}”
label="#{bindings.Ename.label}”
required="#{bindings.Ename.mandatory}">
Expression Builder und Debugging
• Editor zum
Erzeugen von ELAusdrücken
• EL-Ausdrücke
können im DebugModus evaluiert
werden
Demonstration
Unterschiedliche Business Services
Entwicklung interaktiver
Web-Oberflächen
Java Server Faces (JSF)
• Standard-JEE-Framework zur Generierung von Thin ClientBenutzeroberflächen
• komponentenbasiert
• nicht nur HTML-Seiten
• Durch den Java Community Process definiert
J2EE 1.4
JSF 1.1
JEE 5.0
JSF 1.2
JEE 6.0
JSF 2.0
• Implementierungen
• Referenz-Implementierung von SUN (RI)
• freie Implementierungen (Apache MyFaces)
• kommerzielle Implementierungen
Java Server Faces (JSF)
• Standard-JEE-Framework, das die Entwicklung von
Benutzeroberflächen für Web-Anwendungen vereinfacht
• JSF umfasst
• APIs zur Darstellung von UI-Komponenten
• eine Default-Gruppe von UI-Komponenten
• die Fähigkeit, in zugehörigen Java-Klassen, den sogenannten
Managed Beans, benutzerdefinierte UI-Logik hinzuzufügen
• ein server-seitiges Ereignismodell
• Seitennavigation
• Standard-Entwurf sieht Unterstützung durch Tools vor
Architektur einer JSF Applikation
Mobile Render Kit
PDA
Faces Servlet
Phone
HTML Render Kit
Browser
Page
Managed Beans
UI Component
Objects
UI Component
Methods
UI Component
Model/
ADF
UI Component
Oracle Fusion Developer Guide, Frank Nimphius/Lynn Munsinger, Seite 24)
Java Server Faces (JSF) und Oracle
• Oracle ist Primary Contributor für JSR-127
• Oracle verfügt über keine eigene JSF-Implementierung
• Oracle verfügte mit UIX seit 2002 über eine ähnliche
Technologie, die dann auf den Standard portiert wurde
• Oracle ADF Faces enthalten über 150 Komponenten
• Schenkung an Apache MyFaces (Projekt Trinidad)
• Oracle leitet das Eclipse JSF Tools-Projekt
http://www.oracle.com/technology/products/jdev/htdocs/partners/addins/exchange/jsf/doc/FAQ.html
Oracle ADF Faces
•
>100 User Interface-Komponenten
• Weiterentwicklung von ADF UIX auf Basis der JSF APIs
•
Funktionalität
•
•
•
•
•
Partial-page Refresh
Integr. Support für Internationalisierung
automatische Sortierung
verschiedene Skins
Unterstützung für versch. Clients
• Browser, PDA, Telnet
•
•
Anpassbares Look & Feel (Skins)
HTML-Komponenten (ADF 10.1.3)
• Schenkung an Apache (Projekt Trinidad)
•
Rich Client-Komponenten (ADF 11g)
• AJAX Rendering Kit
36
Rich Enterprise Applications
Browser Client
AJAX
View
Active Client
Flash
Mobile Client
XHTML, WML,
ASK (SMS)
ADF Faces
ADF Faces: Rich Client-Komponenten
ADF Faces: DVT-Komponenten
• grafische Komponenten - Data Visualization Tools
Demonstration
ADF Faces Komponenten
Verwaltung von Transaktionen
und Session Status
Oracle ADF - Controller
• Controller
• Verwendung für Web- und mobile Anwendungen
• Controller interpretiert Maus- und Tastatureingaben
• Controller steuert die Navigation
• Apache Struts
• Populäres Open Source Controller Framework
• Wird für JSP und UIX Seiten eingesetzt
• Verliert an Bedeutung als Open Source-Produkt
•
• JSF Controller
• Page Flow Control
• Teil des Standards JEE 5
• ADF Faces Controller
• Erweiterung des JSF Controllers
Vorteile des Oracle ADF Controller
• Erweiterung zum JSF Standard Page Flow
• zusätzliche Funktionen
• Wiederverwendbarkeit von Seiten
• Ausführung von Code in einem Ablauf
(Task Flow anstelle von Page Flow)
• Verwaltung des Session State
• Exception und Transaction Management
• Sicherheit
• Flow Control
• ADF Task Flow wird im Task Flow Diagramm definiert
• Erzeugen von Managed Beans möglich
• Task Flow Templates (zB. für Exception Handling)
ADF Task Flow
• Aktivitäten (View) und Navigationsregeln, die den
Page Flow einer Applikation steuern
• Unbounded Taskflow
• für Menümodelle und als Top Level Task Flow
• Bounded
•
•
•
•
•
•
•
•
•
ein definierter Einstiegspunkt und mehrere Austiegspunkte
definierte Grenzen
eigener Memory Scope
Savepoints innerhalb des Flows möglich
konditionales Routing möglich
deklaratives Transaction Management
deklarativer Back Button Support
Input/Output Parameter
Möglichkeit von “Trains”
Bounded Task Flow - Beispiel
addCust
editRecord
createCustomer
Bounded Task Flow
Wiederverwendbare Task Flows - Beispiel
Bounded Task Flow
Task Flow
Private Implementation and State
Page
region
Deklarativer Controller
Transaction
(New or Inherit)
Back Button
Support
Save for Later
Bookmarkable
Declarative Trains
Declarative
Commit
/ Rollback
Demonstration
ADF Task Flows
Anpassungsmöglichkeiten
der Applikation
Arten von Anpassungen
• Seeded Customization
• Design Time
• durch Entwickler (Customizer)
• JDeveloper Customization Role
• Personalisierung
• Runtime
• durch den Anwender
• Design Time@Runtime
• Design Time
• durch Administratoren
• Beispiel: WebCenter Composer
Oracle Metadata Services (MDS)
•
•
•
•
Framework in ADF zur Implementierung von Anpassungen
Verwendung einer einzigen Basis-Applikation
Anpassungen werden auf die Basis-Applikation angewendet
Anpassungen werden erzeugt
• zur Design-Zeit im JDeveloper (Seeded Customization)
• zur Laufzeit durch den Anwender (Personalisierung, Web Center)
• alle Anpassungen basieren auf XML-Dateien von ADF
• Anpassungen werden in einem Metadaten-Repository
(File-based oder Datenbank) gespeichert und zur Laufzeit
mit der Basis-Applikation zusammengeführt
• die Basis-Applikation kann ohne Einfluss auf die
Anpassungen geändert werden
Was kann angepasst werden
•
•
•
•
•
ADF Business Components
ADF Model
ADF Controller
ADF View
ADF Library Artefakte
Wie Anpassungen ausgeführt werden
• Anpassungen können ausgeführt werden
• für alle Benutzer
• in Abhängigkeit von einem Kriterium (Site, …)
• dynamisch in Abhängigkeit von bestimmten Kriterien
• für den Benutzer
• für die Organisation, zu der der Benutzer gehört
• aktuelle Tageszeit
• Browser Locale
• … im Prinzip alles, was mit Java möglich ist
• Anpassungen sind eine Reihe von Instruktionen,
die die Metadaten der Applikation modifizieren
Konfiguration der Customization
• Customization Class
• Interface, das von MDS benutzt wird, um die Anpassung zu ermitteln
• vordefinierte Customization Classes (User, Role, Site)
• es können eigene Customization Classes geschrieben werden
• Customization Layer und Customization Value
•
•
•
•
Customization Layer pro Customization Class
Customization Layer entspricht einer “Dimension”, z.B. Country
Customization Value entspricht einer Instanz (zB. Germany, France)
Definition in <jdeveloper_home>/jdev/CustomizationLayerValues.xml
• Konfiguration des MDS (<application>/.adf/adf-config.xml)
• zulässige Anpassungen (Columns, Komponenten, …)
• verwendete Customization Classes
Vorbereitete Anpassungen …
Application
View
Controller
ADF Model
ADF BC
Base App
Layer 1
Layer 2
Layer 3
Layer 4
Layer 5
Layer 6 Layer 7
Layer 8
… und die Applikation des Benutzers
User Customization
• Anpassungen, die der Benutzer zur Laufzeit ausführt
• ADF Faces Change Persistence Framework
• Varianten
• für die Dauer der Session
• Speicherung der Änderung in Session Variablen
• persistent
• Speicherung im MDS
Seeded Customization
• Anpassungen, die der Entwickler zur Design Time
ausführt
• Schritte
• Starten des JDeveloper mit der Customization Role
• Customization Context setzen (Layer und Value auswählen)
• alle Änderungen werden in speziellen Change Documents
gespeichert (Verzeichnisstruktur)
• Deployment einer MAR-Datei (Metadata Archive)
• Ausführung zur Laufzeit in der Reihenfolge der <cust-config>
Anpassungen per MDS
+
+
Metadata
Repository File or DB
Base
Document
User1’s User
Customization
Laura’s Page
Site
Customization
No User
Customization
MDS Customization Engine
John’s Page
Demonstration
ADF MDS
Datenänderungen im
Backend sichtbar machen
ADF - Active Data Services (ADS)
• Problemstellung
• Änderung im Data Store sollen sofort in der Oberfläche
sichtbar sein
• Verwendung von HTTP (zustandsloses Protokoll)
• sparsame Vewendung von Netzwerk-Ressourcen
(Polling, Datenvolumen)
Beispiel: RDBMS Change Notification
Konsistenz bis zur GUI
ADF - Active Data Services (ADS)
• Integiertes Framework für Data Streaming
• Java APIs und ADF Binding Support
• Varianten
• Polling
• Long Polling
• Push
• Konfiguration
• zentral in der adf-config.xml
• für die ADF Faces-Komponenten
• Push Updates: vom Server bis zum Browser
ADS Architektur
Agenda
•
Warum Oracle ADF ?
•
Was ist Oracle ADF ?
•
Wie entwickle ich mit Oracle ADF ?
•
Typische Herausforderungen der
Anwendungsentwicklung
•
Weiterführende Informationen
<Insert Picture Here>
Begriffe & Kürzel
Oracle Fusion Middleware
Integriertes Portfolio aller MiddlewareProdukte von Oracle
Rich Internet Applications /
Rich Enterprise Applications
• Web-Applikationen für den Einsatz
inner- und außerhalb des Unternehmens
• interaktive Oberflächen wie bei ClientServer-Applikationen
Oracle ADF
Kombination von Frameworks zur
Entwicklung von Services und
Oberflächen
Oracle JDeveloper
Entwicklungsumgebung (IDE) für Oracle
ADF und SOA-Technologien
SOA
Service-orientierte Architektur
Oracle Referenz Architektur
Architekturrichtlinien der zufünftigen IT
Landschaft
Weiterführende Informationen
• Oracle Application Development Framework (ADF)
http://www.oracle.com/technology/products/adf
• Oracle JDeveloper
http://www.oracle.com/technology/products/jdev
• Deutsche ADF Community
http://www.oracle.com/de/community/adf
• Oracle ADF Community auf XING
https://www.xing.com/net/adfcomm/
• Google Group „ADF Methodology“
http://groups.google.com/group/adf-methodology
Q&A
69
Herunterladen