einführung in oracle adf für entwickler - doag.org · pdf file• ... •...
TRANSCRIPT
Einführung in Oracle ADF für Entwickler
Jürgen MengeOracle Deutschland
<Insert Picture Here>• Was ist Oracle ADF?
• Wie entwickelt man mit Oracle ADF?
• Wo findet man Informationen über Oracle ADF?
• Voraussetzungen für erfolgreiche ADF-Projekte
Agenda
• Voraussetzungen für erfolgreiche ADF-Projekte
Warum Oracle ADF ?Warum Oracle ADF ?
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
Trends und Standards
Java EE 5/6 SOA Web 2.0
… und ihr Einfluss auf die Entwicklung• Java EE
• Entwicklung auf Basis offener Standards
• Verfügbarkeit von APIs, Frameworks, Komponenten
• Nutzung von grundlegenden Skills (Java, XML, XSL, …)
• SOA
• Stärkere Prozess-Orientierung (gegenüber reinem CRUD-Ansatz)
• Entwicklung von ergonomischen Benutzer-Oberflächen
• Implementierung von fachlichen Funktionen als Services
• Verwendung von Standard-Komponenten für bestimmte Aufgaben(BPEL-Prozess-Steuerung, Rules Engine)
• Composite Applications
• Web 2.0• interaktive Web-Oberflächen mit kollaborativen Elementen
• Zugriff auf alle relevanten Informationen und Services im Kontext einer Aufgabe (Dokumente, Forum, Chat, Wiki, Instant Messenger, …)
• Integration von Business Intelligence (BI) und Karten in die Anwendungen
• Grenzen zwischen Fach-Applikationen und Portalen verschwimmen
GeschäftslogikOberflächen Daten
User InterfaceADF Faces Components
Business Services
Data
Binding
Web Services
DB
Schema
WebCenter
Moderne Anwendungs-Entwicklung
Human Workflow
Service
BPEL
ProzessBusiness
Activity
Monitoring
OrchestrierungMenschl. Interaktion Regel-EvaluierungMonitoring
Events
Rules
Engine
Schluss-folgerung
Fakten
Aufgaben zuweisen
Aufgabenerledigt
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 • 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, …)Manager, …)
Was ist Oracle ADF ?Was ist Oracle ADF ?
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 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
Rich Clients Web and Mobile
Controller Controller
View
Business Services
Model
Controller
Business Services
Model(JSR-227)
Controller
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 11gMetadata Services (MDS)
Metadata Services (MDS)
Model
Controller
Viewmobile UImobile UI
mobilemobile
J2MEJ2ME
XML DataXML Data Legacy DataLegacy DataRelational DataRelational Data Packaged AppsPackaged Apps
EJBEJB BAMBAM ADFbcADFbc PortletsPortletsBIBI EssbaseEssbaseBPELBPEL Web Web
ServicesServicesJavaJava
Metadata Services (MDS)
Metadata Services (MDS)
Business Services
Data Services
Model
JPA/TopLinkJPA/TopLink
Wie entwickelt man mit
Oracle ADF ?Oracle ADF ?
Entwicklung mit Oracle ADF
DevelopDevelop ExposeExpose AccessAccess
BusinessBusinessServiceService
ModelModel ViewView
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
Oracle ADF - Fusion StackMetadata Services (MDS)
Metadata Services (MDS)
Model
Controller
Viewmobile UImobile UI
mobilemobile
J2MEJ2ME
XML DataXML Data Legacy DataLegacy DataRelational DataRelational Data Packaged AppsPackaged Apps
EJBEJB BAMBAM ADFbcADFbc PortletsPortletsBIBI EssbaseEssbaseBPELBPEL Web Web
ServicesServicesJavaJava
Metadata Services (MDS)
Metadata Services (MDS)
Business Services
Data Services
Model
JPA/TopLinkJPA/TopLink
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 Business Components
� JEE-Framework zur Erstellung von Geschäftskomponenten
� Persistenz-Schicht
� Kapselung der Geschäftslogik
� Implementierung von J2EE-Design Pattern
Auftrag
WichtigerAuftrag
Kunde
Präsentation
J2EE-Design Pattern
� Universeller Clientzugriff auf die gleiche Logik
� seit 1999 als Framework „Business Components for Java“ (BC4J) im Einsatz (E*Business Suite)
� viele Ähnlichkeiten zu Oracle Forms
Auftrag
KundeAuftrag
Kunde
WichtigerAuftrag
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
Model
Web Services
Toplink
EJB
JavaClasses
BusinessComponents
Oracle ADF Faces
• >150 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
20
• 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
Demonstration
ADF-Entwicklung mit Oracle JDeveloperADF-Entwicklung mit Oracle JDeveloper
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 ServiceMetadata Services (MDS)
Metadata Services (MDS)
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
ServicesServicesJavaJava
Metadata Services (MDS)
Metadata Services (MDS)
Business Services
Data Services
Model
Oracle Enterprise Pack for Eclipse (OEPE)
• Zusammenfassung von Plug-Ins für die Entwicklung mit Eclipse
• Unterstützung für Java EE, Java SE, JSF, Web Services, XML, Datenbank-Entwicklung, …
• Unterstützung für die Entwicklung von Oracle ADF-ApplikationenApplikationen
• Deployment auf verschiedenen Application Servern (WebLogic Server, GlassFish, …)
• kostenfrei
Oracle Enterprise Pack For Eclipse - Status
• OEPE 11.1.1.7 (verfügbar)• Auf Basis von Eclipse 3.6 (Helios) oder 3.7 (Indigo) als TP
• enthält ADF Faces-Komponenten, JSF Page Flow
• OEPE 11.1.1.8 (geplant)• ADF Taskflows (adfc-config.xml)
• Debugging und AppXRay für ADF Taskflows
Oracle Restricted and Confidential
• Debugging und AppXRay für ADF Taskflows
• 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
...
Struktur einer ADF-Applikation in Eclipse
• 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-Appl. in Eclipse
• 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
Demonstration
ADF-Entwicklung mit Oracle Enterprise ADF-Entwicklung mit Oracle Enterprise Pack for Eclipse
JDeveloper vs. Eclipse in Bezug auf ADF
Lizenzkosten JDeveloper OEPE
Struktur der IDE Applikation, Projekte Workspace, ProjektePerspektiven
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 (Data Controls)
Direktes Data Binding
View Layer ADF Faces-Komponenten ADF Faces-Komponenten
Controller ADF Faces Controller; JSF Controller
JSF Controller;ADF Faces Controller (geplant)
Lizenzkosten kostenfrei kostenfrei
ADF Business Services im Vergleich
Java
Classes
EJB
Session
Beans
Web
Services
ADF Business
Components
Application Module
Business
Services
JDBCJPA
QueriesTopLink
Queries
ADF Business
Components
View Object
Data
Access
ADF Business
Components
Entity ObjectJava Classes JPA Entities
Persistent
Business
Objects
Wo findet man
Informationen über ADF?Informationen über ADF?
• 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
Oracle ADF - Dokumentation
• Produkt-Dokumentation im OTN• http://download.oracle.com/docs/cd/E15523_01/index.htm
• Fusion Developer's Guide
• Web User Interface Developer's Guide
• Desktop Integration Developer's Guide
• Mobile Browser Client Developer's Guide• Mobile Browser Client Developer's Guide
• http://download.oracle.com/docs/cd/E15523_01/ref.htm
• ADF Faces Tag documentation
• DVT Tag documentation
• JavaScript API
• Java APIs
Oracle Technet - Foren
• JDeveloper / ADFhttp://forums.oracle.com/forums/forum.jspa?forumID=83
• ADF UI Pattern & Best Practiceshttp://forums.oracle.com/forums/forum.jspa?forumID=764
Online Demo
• ADF Faces Component Demo• http://jdevadf.oracle.com/adf-richclient-demo/faces/index.jspx
Blogs, Beispiele, …
• Sample Blog - Steve Muench• http://blogs.oracle.com/smuenchadf/examples/
• ADF Code Corner• http://www.oracle.com/technetwork/developer-tools/adf/learnmore/index-101235.html
• ADF Insider• http://www.oracle.com/technetwork/developer-tools/adf/learnmore/adfinsider-093342.html
• Blogs Aggregator• http://www.connotea.org/user/jdeveloper
Blogs, Beispiele, …
• http://www.connotea.org/user/jdeveloper
http://rea.oracle.com/
Beispielapplikation Fusion Order Demo
• Referenz-Applikation
• wird von Oracle für Dokumentation und QA-Tests verwendet• http://www.oracle.com/technetwork/developer-tools/jdev/index-095536.html
Oracle ADF Bücher
• Oracle JDeveloper 11g Handbook
• A Guide to Oracle Fusion Web Development
• October 2009
• Oracle Fusion Developer Guide
• Building Rich Internet Applications with Oracle ADF, ADF Faces RC and ADF Business ComponentsComponents
• Beginning 2010
• Quick Start Guide to Oracle Fusion
Development
• September 2010
Communities
• Google Group „ADF Methodology“http://groups.google.com/group/adf-methodology
• Deutsche Oracle ADF Community • Oracle ADF Community auf XING
https://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)
• 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
Kritische Erfolgsfaktoren
• Ausbildung• Kenntnisse OO-Entwicklung und Java• Kenntnisse Java EE• ADF-Kenntnisse (Build Applications with ADF I - 5 Tage)
�Coaching
• Architektur• Einhaltung von Standards• Wiederverwendbarkeit�Beratung, Review des Design
• Organisation des Entwicklungsprozesses• Versionsverwaltung
• Build- und Deployment-Prozess�Beratung
Oracle Team Productivity Center
• Lösungsansatz für das Application Lifecycle Management (ALM)
• Oracle-Strategie• Integrierte Lösung• Zentralisierte Services• Definition von Teams und Rollen• Verknüpfungen, Queries, Tagging, ...
• Integration in Oracle JDeveloper
• Open Connector Framework• JIRA• Bugzilla• MS Project Server• Rally• Integriertes Task Repository
ServerSchema
Client Model
JDeveloper Chat
Provider
SOAP RSP
Chat UI
Oracle TPC - Architektur
Schema
????
Supported
Repositories
SOAP REQ
Connector
TPC
Ausbildungspfade Oracle ADF
http://www.oracle.com/webfolder/technetwork/de/community/adf/adf_ausbildungsgang.html
Q&A
48