Oracle White Paper—Oracle Application Development Framework - Überblick Oracle White Paper Juli 2009 Oracle Application Development Framework (ADF) - Überblick Oracle White Paper—Oracle Application Development Framework - Überblick Einleitung .......................................................................................... 1 Oracle ADF vereinfacht die Entwicklung mit Java EE .................... 2 ORACLE ADF - ARCHITEKTUR ....................................................... 3 Die Business Services-Schicht ...................................................... 5 Die Controller-Schicht .................................................................... 5 Die View-Schicht ........................................................................... 5 Die Model-Schicht ......................................................................... 6 Produktivität bei freier Auswahl (Productivity with Choice) ............. 6 ORACLE ADF - NUTZEN .................................................................. 7 Visuelle und deklarative Java EE-Entwicklung............................... 7 Vorteile gegenüber anderen Frameworks ...................................... 9 Resümée ......................................................................................... 11 Oracle White Paper—Oracle Application Development Framework - Überblick Einleitung Die Java Enterprise Edition (Java EE) ist eine standardisierte, robuste, skalierbare und sichere Plattform, die in der heutigen Zeit die Grundlage vieler UnternehmensAnwendungen bildet. Java EE bietet eine Reihe von Spezifikationen, um mehrschichtige Applikationen auf Basis der Programmiersprache JavaTM zu schreiben. In der Vergangenheit gab es einen direkten Zusammenhang zwischen der Stabilität einer Applikation und der erforderlichen Komplexität, um diese zu erreichen. Mit dem Framework Oracle ADF ist es nun möglich, mit deutlich verringertem Aufwand leistungsfähige Java EE-Applikationen zu entwickeln, die auf Standardmustern und -methoden beruhen. Zusätzlich verlangt die verstärkte Notwendigkeit in den Organisationen, KompositApplikationen nach den Prinzipien einer service-orientierten Architektur (SOA) zu schaffen, von den Entwicklern, extrem agile Applikationen zu schreiben. Die Implementierung erprobter Vorgehensweisen in Bezug auf agile Applikationen erfordert in der Regel das Schreiben von Infrastruktur-Programmcode in beträchtlichem Umfang. Dies bildet ein weiteres Hindernis für Entwickler, die ihre erste Java EEApplikation schreiben. Neben der Unterstützung für robuste, performante und wartbare Applikationen bietet das Oracle Application Development Framework auch den besten Infrastruktur-Code seiner Art, um agile SOA-basierte Applikationen zu entwickeln. Damit entfällt die Notwendigkeit, in den Organisationen "hausgemachte" Implementierungen dafür zu entwickeln und die Teams können schneller mit der produktiven Entwicklung beginnen. 1 Oracle White Paper—Oracle Application Development Framework - Überblick Oracle ADF vereinfacht die Entwicklung mit Java EE Das Oracle Application Development Framework (Oracle ADF) ist ein innovatives, weiterentwickeltes Java EE Entwicklungs-Framework von Oracle und wird, im Unterschied zu den meisten anderen Frameworks, direkt durch die Integrierte Entwicklungsumgebung (IDE) des Oracle JDeveloper 11g unterstützt. Oracle ADF vereinfacht die Java EE-Entwicklung, indem die Entwickler weitgehend von der Notwendigkeit befreit werden, Infrastruktur-Code zu schreiben, und sich auf die Funktionalität der Applikation konzentrieren können. Oracle ADF stellt die Implementierung der Infrastruktur als Teil des Frameworks bereit. Da es nicht ausreicht, eine Reihe von Services zur Laufzeit bereitzustellen, unterstützt Oracle ADF auch den Entwicklungsprozess durch eine visuelle und deklarative Arbeitsweise bei der Java EE-Entwicklung mit Hilfe des Oracle JDeveloper 11g. So vereinfacht beispielsweise Oracle ADF die Entwicklung agiler Applikationen, die Daten als Service exponieren, indem ein Service-Interface mit den eingebauten Business Services in ADF gekoppelt wird. Diese Trennung der Implementierungsdetails vom Business Service wird in Oracle ADF über Metadaten realisiert. Die Verwendung dieser metadaten-getriebenen Architektur erlaubt es den Entwicklern, sich auf die Geschäftslogik und die Ergonomie zu konzentrieren, statt sich um Details des Zugriffs auf den Service zu kümmern. Die Entwicklung der Oberfläche geschieht durch eine einfache Drag&Drop-Operation des gewünschten Data Controls auf den Seitenentwurf und die Auswahl, durch welche Komponente die Daten dargestellt werden sollen. Im Beispiel werden eine Datenbank-Tabelle als Business Service exponiert und die Daten in tabellarischer Form dargestellt, indem das Data Control durch Drag&Drop auf die Seite gezogen und im aufgeblendeten Fenster die TabellenKomponente für die Darstellung ausgewählt wird. Alles Weitere wird von Oracle ADF erledigt. 2 Oracle White Paper—Oracle Application Development Framework - Überblick Beim Einsatz von Oracle ADF werden die Implementierungsdetails dieses Service als Metadaten in der Model-Schicht gespeichert. Dies ermöglicht es Entwicklern, den Service ohne Änderungen der Benutzerschnittstelle auszutauschen. Applikationen können so schnell an veränderte Anforderungen angepasst werden. Zudem muss der Entwickler der Benutzerschnittstelle nicht die Details des Business Service kennen und kann sich auf die Oberfläche der Applikation und die Logik der Interaktion konzentrieren. ORACLE ADF - ARCHITEKTUR Oracle ADF beruht auf dem Entwurfsmuster (Design Pattern) des Model-View-Controller (MVC). Eine MVC-Applikation gliedert sich in: 1) eine Model-Schicht, in der die Interaktion mit den Datenquellen stattfindet und die Geschäftslogik ausgeführt wird, 2) eine View-Schicht, die die Benutzerschnittstelle der Applikation repräsentiert und 3) einen Controller, der den Ablauf der Applikation steuert und als Schnittstelle zwischen Modelund View-Schicht agiert. Die Zerlegung von Applikationen in diese Schichten vereinfacht die Wartung und Wiederverwendbarkeit von Komponenten zwischen Applikationen. Die Unabhängigkeit der Schichten voneinander führt zu einer lose gekoppelten service-orientierten Architektur (SOA). 3 Oracle White Paper—Oracle Application Development Framework - Überblick Oracle ADF implementiert MVC und trennt die Model-Schicht von der Business ServicesSchicht, um eine service-orientierte Entwicklung von Applikationen zu ermöglichen. Die Architektur von Oracle ADF besteht aus vier Schichten: • Die Business Services-Schicht - stellt den Zugriff auf Daten in verschiedenen Quellen bereit und führt die Geschäftslogik aus. • Die Model-Schicht – bildet eine Abstraktionsschicht oberhalb der Business Services-Schicht. Somit können die View- und Controller-Schicht mit unterschiedlichen Implementierungen von Business Services auf konsistente Weise zusammenarbeiten. • Die Controller-Schicht – bietet einen Mechanismus, um den Ablauf einer Web-Applikation zu steuern. • Die View-Schicht – repräsentiert die Benutzerschnittstelle der Applikation. Abb. 1: Die Architektur von Oracle ADF Mit Oracle ADF können Entwickler die Technologie auswählen, die sie für die Implementierung jeder Schicht bevorzugen. Die Abbildung 1 zeigt die verschiedenen Auswahlmöglichkeiten, die den Entwicklern beim Erstellen von Oracle ADF-Applikationen zur Verfügung stehen. Durch die ADF Model-Schicht, die für die Integration der verschiedenen Komponenten einer Java EEApplikation verantwortlich ist, wird eine Flexibilität der Entwicklung erreicht. EJB, Web Services, JavaBeans, JPA/EclipseLink/TopLink und viele andere Technologien können der Oracle ADF Model-Schicht als Business Services dienen. Die View-Schicht kann sowohl Swing- 4 Oracle White Paper—Oracle Application Development Framework - Überblick Applikationen und die Integration von MS Office als auch HTML-Oberflächen auf Basis von JSP, Java Server Faces (JSF) und ADF Faces umfassen. Die Business Services-Schicht Die Business Service-Schicht ist für die Interaktion mit einer Persistenz-Schicht verantwortlich. Sie enthält Funktionen, wie die Persistenzierung der Daten, die objekt-relationale Abbildung und die Ausführung von Geschäftslogik. Für die Implementierung der Business Service-Schicht kann mit Oracle ADF folgende Optionen eingesetzt werden: einfache Java-Klassen, EJB 2.1/3.0, Web Services, JPA-Objekte und Oracle ADF Business Components. Die Controller-Schicht Die Controller-Schicht steuert den Ablauf der Applikation und behandelt die Benutzereingaben. So bestimmt beispielsweise der Controller, welche Aktion (Suchen) ausgeführt werden muss, wenn die Schaltfläche "Suchen" auf einer Seite gedrückt wurde und zu welcher Seite (Suchergebnisse) anschließend navigiert werden muss. Im JDeveloper stehen drei Controller für Web-basierte Applikationen zur Verfügung: der Oracle ADF Controller, der die umfassendste Funktionalität bietet; der funktional nicht erweiterte JSF Controller und der Apache Struts Controller. Unabhängig vom gewählten Controller, wird der Ablauf der Applikation typischerweise entworfen, indem Seiten und Navigationsregeln im Diagramm definiert werden. Mit Hilfe des ADF Controller kann der Ablauf einer Applikation in kleinere, wiederverwendbare Task Flows zerlegt werden. Task Flows können nicht-sichtbare Komponenten wie z.B. Methodenaufrufe enthalten; Seitenfragmente (Page Fragments) können in einer Region innerhalb einer einzelnen Seite als Folge angezeigt werden. Dieses Vorgehen ermöglicht die maximale Wiederverwendbarkeit von Oberflächen-Fragmenten und die vereinfachte Integration in Portale und Mashup-Applikationen Die View-Schicht Die View-Schicht repräsentiert die Benutzerschnittstelle der Applikation. Die View-Schicht kann ausgehend von HTML, JSP, JavaServer Faces (JSF), Rich Client-Java-Komponenten oder XML und seinen Variationen als Benutzeroberfläche dargestellt werden. Die View-Schicht kann als Web-Client, als Client-Server-Applikation mit Swing, als Microsoft Excel-Arbeitsblatt oder als mobile Applikation für mobile Endgeräte (Z.B. Telefon) implementiert werden. 5 Oracle White Paper—Oracle Application Development Framework - Überblick Die Model-Schicht Die Model-Schicht verbindet die Business Services mit den Objekten, die Business Services in anderen Schichten nutzen. Die Implementierung der Model-Schicht befindet sich bei Oracle ADF oberhalb der Business Services und bietet damit eine einheitliche Schnittstelle, die für den Zugriff auf jede Art von Business Service genutzt werden kann. Die Model-Schicht besteht aus zwei Teilen, den Data Controls und den Data Bindings, welche Metadaten-Dateien zur Beschreibung der Schnittstelle verwenden. Die Data Controls verbergen die Implementierungsdetails des Business Service vor den Clients. Die Data Bindings stellen den Oberflächen-Komponenten die Methoden und Attribute der Data Controls zur Verfügung. Auf diese Weise wird eine klare Trennung zwischen View und Model erreicht. Durch die Verwendung von Metadaten in der Model-Schicht ist die Arbeitsweise der Entwickler beim Verbinden der Implementierung jedes Business Service mit den Controller- und View-Schichten identisch. Die Model-Schicht in Oracle ADF dient auch als Grundlage für den Standardentwurf JSR-227 “A Standard Data Binding & Data Access Facility for J2EE”. Das Ziel dieses Entwurfs ist die Standardisierung des Data Binding für Java EE-Applikationen. Produktivität bei freier Auswahl (Productivity with Choice) Entwickler können aus verschiedenen Technologien zur Implementierung der Oracle ADFSchichten auswählen und damit gleichermaßen produktiv entwickeln. So würden beispielsweise dieselben Vorgehensweisen und Methoden eingesetzt, um sowohl eine ADF Swing-Applikation auf Basis von ADF Business Components als auch eine ADF Faces-Applikation auf Basis von Enterprise Java Beans zu erstellen. Zusätzlich zur Auswahl der Technologien können die Entwickler zwischen verschiedenen Arbeitsweisen (deklarativ, visuell oder auf Basis des Codes), verschiedenen Entwicklungsumgebungen (JDeveloper oder andere IDE, wie z.B.Eclipse) und verschiedenen Deployment-Plattformen (jeder Java EE-konforme Server) wählen. 6 Oracle White Paper—Oracle Application Development Framework - Überblick ORACLE ADF - NUTZEN Visuelle und deklarative Java EE-Entwicklung Entscheidend für den Nutzen eines Frameworks sind Entwicklungs-Werkzeuge, die die Erstellung von Applikationen auf Basis dieses Frameworks vereinfachen. Oracle bietet visuelle und deklarative Werkzeuge für jede Schicht von Oracle ADF. JavaEntwickler profitieren selbst dann von diesen Werkzeugen, die im JDeveloper IDE integriert sind, wenn sie nicht die Laufzeit-Funktionen von Oracle ADF nutzen. Entwicklung der Business Services Oracle JDeveloper bietet eine Vielzahl von Möglichkeiten, um Business Services zu erstellen: EJB/JPA, Web Services, einfache Java-Objekte und u.a. auch ADF Business Components (ADF BC). “Productivity with Choice” ist ein Eckpfeiler dieses Vorgehens. So können mit ADF BC durch ein wizard-getriebenes Vorgehen Business Services generiert werden, die Java Interfaces für Tabellen enthalten. Mit einem einfachen Click können diese Interfaces anschließend als Web Services (einschließlich SDO Web Services) veröffentlicht werden. Um beim Thema "visuell und deklarativ" zu bleiben, kann dasselbe Ergebnis auch erreicht werden, indem man diese Interfaces über eine visuelle Modellierung generiert. Das Framework Oracle ADF Business Components konzentriert sich auf die Erzeugung von Objekten, die die Business Services-Schicht für eine Datenquelle auf stärker deklarative Weise implementieren. Es beinhaltet Services für die Transaktions-Steuerung, das Pooling von Ressourcen, das Sperrverhalten (Locking), deklarative Validierungsregeln, Übersetzungen und die objekt-relationale Abbildung. Oracle ADF BC sollte Entwicklern vertraut sein, die Erfahrungen in der Entwicklung von 4GL, deklarativen datenbank-getriebenen Applikationen haben. Es bietet solche Funktionen, wie die Definition von Java-Objekten auf Basis von SQL, die deklarative Festlegung von Validierungsregeln und vordefinierte Ereignisse, für die Programmcode innerhalb des Lebenszyklus des Business Service eingefügt werden kann. Die Entwicklung der ADF BC erfolgt über deklarative Dialoge und das Setzen von Eigenschaften (Property Inspector). Durch die im Framework eingebaute Implementierung bekannter Java EE-Entwurfsmuster (Design Pattern) sind Performance und Skalierbarkeit der Applikation gewährleistet. Entwicklung der Benutzerschnittstelle Im Oracle JDeveloper gibt es zahlreiche visuelle und deklarative Funktionalitäten für die Viewund Controller-Schichten einer Applikation: • Ein Page Flow-Modellierungswerkzeug für den ADF Controller, das grundlegende JSFFramework und das Open-Source Apache Struts-Framework, das eine visuelle Modellierung des Seitenablaufs durch einfaches Drag&Drop von Komponenten im Diagramm ermöglicht. 7 Oracle White Paper—Oracle Application Development Framework - Überblick • Ein visueller Editor für JSP, JSF, HTML, Swing und für Oberflächen drahtloser Geräte, der eine Entwicklung nach dem WYSIWYG-Prinzip für alle Typen von Komponenten erlaubt. • Deklarative Entwicklungswerkzeuge, um der Oberfläche Komponenten hinzuzufügen, deklarative Komponenten zu erstellen, einen Property Inspector, eine erweiterbare Komponenten-Palette und eine Data Control-Palette. • Wiederverwendbarkeit – einige Funktionen, die eine größtmögliche Wiederverwendbarkeit unterstützen, einschießlich der Erstellung von Task Flows, ADF Libraries und von deklarativen Komponenten. • ADF Faces – eine umfangreiche Bibliothek von Oberflächen-Komponenten, die auf den Standard API von JSF aufbauen und die modernsten Technologien, wie z.B. AJAX und die partielle Aktualisierung von Seiten, enthalten, um leistungsfähige interaktive Oberflächen zu gestalten. Abb. 2: Visuelle Bearbeitung von JSP und JSF Die visuellen und deklarativen Entwicklungs-Werkzeuge sind im JDeveloper IDE synchronisiert, so dass der visuelle Editor, der Property Inspector und die Modellierungs-Werkzeuge zu jedem Zeitpunkt mit dem Programmcode abgeglichen werden. So sind die Entwickler in der Lage, ihre Arbeitsweise zu wählen, Drag & Drop zu nutzen, deklarativ Eigenschaften festzulegen oder direkt im Programmcode zu editieren. 8 Oracle White Paper—Oracle Application Development Framework - Überblick Verbinden von Business Services und Benutzerschnittstelle Der Oracle JDeveloper bietet eine sehr einfache Möglichkeit, um Komponenten der Business Services-Schicht mit den Controller- und View-Schichten zu verbinden und nutzt dabei eine innovative Implementierung der Data Controls nach JSR-227. Die Data Control-Palette ermöglicht dabei eine Sicht auf die Business Services-Schicht. Entwickler können Daten-Objekte per Drag&Drop auswählen und mit einer Implementierung in der Oberfläche verbinden. Der gleiche Mechanismus kann benutzt werden, um Aktionen des Controllers mit Methoden zu verknüpfen, die in der Business Services-Schicht definiert sind. All dies ist auf rein visuelle und deklarative Weise möglich. Vorteile gegenüber anderen Frameworks Die wesentlichen Eigenschaften von Oracle ADF, die es gegenüber anderen Java EEFrameworks auszeichnet, sind Durchgängigkeit (End-toEnd) – Oracle ADF konzentriert sich nicht nur auf eine Schicht der Java EE-Architektur. ADF bietet stattdessen eine integrierte und komplette Lösung für jede Schicht, angefangen von der View-Schicht und die Data Bindings (JSR-227), über die Business Services und den Datenzugriff bis zur Unterstützung für jede Phase des Entwicklungszyklus vom Projektbeginn bis zum Support. Entwicklungs-Umgebung – Vielen anderen Java EE-Frameworks fehlt die Unterstützung durch Entwicklungs-Werkzeuge. Der Oracle JDeveloper bietet visuelle Hilfestellungen und eine deklarative Arbeitsweise. Er reduziert die Notwendigkeit, Programmcode zu schreiben, und ist damit das perfekte Werkzeug zum Entwickeln von ADF-Applikationen. Das deklarative Vorgehen bei der Entwicklung verkürzt die Lernkurve für Entwickler, die mit 4GL-Werkzeugen vertraut sind. Plattform-Unabhängigkeit – Andere Frameworks binden die Entwickler an einen spezifischen Software-Hersteller. Die Laufzeitumgebung von Oracle ADF kann auf jedem Java EEkonformen Application Server installiert werden und Business Services können sich mit jeder SQL-92-konformen Datenbank verbinden. Wahl der Technologie – Entwickler bevorzugen bestimmte Technologien für die Implementierung der verschiedenen Schichten einer Applikation. Oracle ADF unterstützt mehrere Technologien in jeder Schicht der Applikation und verlangt vom Entwickler nicht eine spezielle Technologie oder ein spezielles Vorgehen. Technologisches Commitment – Es ist wichtig darauf hinzuweisen, dass Oracle ADF die ausgewählte Technologie für die nächste Generation der Unternehmens-Software von Oracle ist und kontinuierlich in der internen Entwicklung eingesetzt wird. Das Produkt wird sowohl zur 9 Oracle White Paper—Oracle Application Development Framework - Überblick Entwicklung von Portal-Applikationen, mobilen Applikationen als auch Web-Applikationen genutzt und enthält deshalb einen abgestimmten, supporteten und konsistenten Satz von Technologien. Metadaten-getrieben – Alle Schichten des Oracle ADF Frameworks bieten die Möglichkeit eines deklarativen Vorgehens durch die Konfiguration von XML-Metadaten. Zugleich wird das Schreiben von Programmcode unterstützt, falls dies erforderlich ist. Es kann das gesamte Framework oder Teile davon zum Erstellen der eigenen Applikation eingesetzt werden. Komponenten der Applikationen sind in höherem Maße flexibel und wiederverwendbar. Durch die Verwendung von Metadaten können Regeln für daten-gebundene Felder in der ModelSchicht definiert werden. Feldbezeichner, Validierungen und Tooltip-Eigenschaften können als Metadaten der ADF Data Bindings festgelegt werden – diese Eigenschaften werden so unabhängig von der Implementierung der Benutzeroberfläche verwendet. Zusätzlich erlauben die Metadata Services (MDS) Anpassungen der Benutzeroberfläche über zwei verschiedene Schichten der Implementierung: Die erste Schicht („seeded customization”) bezieht sich auf eine applikationsweite Anpassung, die sich auf alle Mitglieder einer bestimmten Gruppe auswirkt. Die zweite Schicht (“user customization”) wird oft als "Personalisierung" bezeichnet, bei der ein Endanwender spezielle Anpassungen an seiner Applikation vornimmt, die dann dauerhaft im MDS-Repository gespeichert werden können. Erweiterte Wiederverwendbarkeit – JDeveloper und ADF unterstützen die Wiederverwendbarkeit durch viele herausragende Funktionen: JSF Seitenvorlagen (Templates), Task Flows und Vorlagen für Task Flows, ADF-Bibliotheken, Regionen auf Basis von JSFSeiten-Fragmenten sowie Task Flows und vieles mehr. Verfügbarkeit des Quellcodes - Oracle stellt Kunden mit einem gültigen Lizenzvertrag den Quelltext des ADF-Frameworks zur Verfügung. Durch die Verfügbarkeit des Quelltextes können Entwickler die grundlegenden Mechanismen des Frameworks besser verstehen und Probleme in ihrer Applikation aufdecken. Support - Oracle ADF ist ein offizielles Produkt von Oracle und wird damit durch die Oracle Support Organisation betreut. Dies ermöglicht den kontinuierlichen Support durch eine eablierte Organisation. Training - Oracle University bietet reguläre Standardkurse zu Oracle ADF and JDeveloper an. 10 Oracle White Paper—Oracle Application Development Framework - Überblick Resümée Oracle ADF vereinfacht die Java EE-Entwicklung durch eine bereitgestellte Implementierung von Entwurfsmustern (Design Pattern) und von Infrastruktur-Code. Oracle ADF bietet eine Auswahl von Entwicklungsansätzen, eingesetzten Technologien und Plattformen für das Deployment. Die Kombination der fortschrittlichen Architektur von Oracle ADF mit der visuellen Entwicklungsumgebung des Oracle JDeveloper 11g bietet eine perfekte Lösung sowohl für Einsteiger als auch für erfahrene Entwickler, die eine höhere Produktivität bei der Entwicklung von Java-Applikationen anstreben. Weitere Informationen über Oracle ADF und den Oracle JDeveloper sind im Oracle Technology Network (OTN) zu finden: http://otn.oracle.com/products/jdev. 11 Oracle Application Development Framework (ADF) - Überblick Juli 2009 Autor: Shaun O’Brien Co-Autor: Shay Shmeltzer Oracle Corporation World Headquarters 500 Oracle Parkway Redwood Shores, CA 94065 U.S.A. Copyright © 2009, Oracle and/or its affiliates. All rights reserved. This document is provided for information purposes only and the contents hereof are subject to change without notice. This document is not warranted to be error-free, nor subject to any other warranties or conditions, whether expressed orally or implied in law, including implied warranties and conditions of merchantability or fitness for a particular purpose. We specifically disclaim any liability with respect to this document and no contractual obligations are formed either directly or indirectly by this document. This document may not be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without our prior written permission. Worldwide Inquiries: Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective Phone: +1.650.506.7000 owners. Fax: +1.650.506.7200 oracle.com 0109