1 <Insert Picture Here> Oracle Forms – Roadmap in Richtung SOA Jürgen Menge Oracle Deutschland Entwicklung mit Oracle JDeveloper und ADF 3 Optionen für Forms-Applikationen Forms ..., 6.0, 6i Migrate Client Server U p g r a d e Forms 10g, 11g Web Integrate ADF/J2EE SOA 4 Oracle Entwicklungs-Werkzeuge • Langfristige Unterstützung für Oracle Forms • Weiterentwicklung des Produktes (Forms 11g) • Integration bestehender Forms-Applikationen in SOA • Nutzen vorhandener Entwickler-Kenntnisse ⇒ Weiterentwicklung bestehender Forms-Anwendungen • J2EE-Entwicklung mit Oracle JDeveloper und ADF • vergleichbare Produktivität der Anwendungsentwicklung • visuelle und deklarative Entwicklung • Entwicklung auf Basis offener Standards • Anknüpfen an vertraute Konzepte ⇒ Entwicklung von Web-Oberflächen und Services auf Basis von J2EE 5 Oracle JDeveloper • Integrierte Entwicklungsumgebung • • • • Unterstützung des vollständigen Entwicklungszyklus Entwicklungsumgebung für Java, XML, Web Services, SQL, PL/SQL Integrierter Application Server – WebLogic IDE für Fusion- und Fusion Middleware-Projekte • J2EE-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 6 Oracle Application Development Framework (ADF) • Höhere Produktivität und einfache Benutzung • Grafische und deklarative Entwicklung • Konzentration auf die Applikation und nicht auf technische Details der Implementierung • Umsetzung von JEE Best Practices • Service-orientierte Entwicklung • Entwicklung wiederverwendbarer Services • Entwicklung von Composite Applications • Standard-basierte Entwicklung • Wahl der Technologie • Wahl der Deployment-Plattform • Konsolidierung und Weiterentwicklung bestehender Frameworks 7 Architektur – Oracle ADF Rich Clients Web and Wireless View Controller Controller Model Business Services 8 Model (JSR 227) Oracle ADF 11g Architektur Metadata Services Swing JSP Office JSF Struts ADF Faces JSF/ADFc ADFm (JSR 227) Java EJB BAM BPEL Portlet Web Services Toplink JCR View Controller Model ADF BC BI XML JMX Business Services Data Services Relational Data 9 XML Data Legacy Data Packaged Apps ADF-Technologien für Forms-Entwickler Metadata Services Swing JSP Office JSF Struts ADF Faces JSF/ADFc ADFm (JSR 227) Java EJB BAM BPEL Portlet Web Services Toplink JCR View Controller Model ADF BC BI XML JMX Business Services Data Services Relational Data 10 XML Data Legacy Data Packaged Apps 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 11 EJB Session Beans ADF Business Components Web Services … ADF Business Components J2EE-Framework zur Erstellung von Präsentation Geschäftskomponenten Application Module Kapselung der Geschäftslogik Auftrag Kunde Persistenz-Schicht Wichtiger View Objects Implementierung von Auftrag J2EE-Design Pattern Universeller Clientzugriff auf Auftrag Kunde Entity Objects die gleiche Logik viele Ähnlichkeiten zu Oracle Forms Auftrag 12 Kunde 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 Business Components Components Web Web Services Services Model Toplink Toplink EJB EJB Java Java Classes Classes 13 Oracle ADF – View (User Interface) • Entwicklung der Präsentationsschicht • visuell (WYSIWYG) • deklarativ • Wahl der Implementierung ADF Swing 14 JSP JSP / Struts Java Server Faces (JSF) 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 • • • 15 Anpassbares Look & Feel (Skins) AJAX Rendering Kit (ADF 11g) Schenkung an Apache (Projekt Trinidad) ADF Faces Rich Client - Komponenten 16 Rich Clients mit JSF Browser Client AJAX View Active Client Flash Mobile Client XHTML, WML, ASK (SMS) 17 JSF D E M O N S T R A T I O N Fusion Web-Applikation 18 Oracle JHeadstart • • RAD-Framework zur Beschleunigung der ADF-Entwicklung Entwicklung durch Oracle Consulting Niederlande • Merkmale • • • • • • Deklarative Entwicklung iteratives Prototyping Anwendungs-Generator als Plug-in im JDeveloper Montage von Komponenten, keine Generierung von Java-Code ! Generierung lauffähiger J2EE-Applikationen auf Basis von ADF ermöglicht die Migration von Oracle Forms-Anwendungen nach ADF • Designer Forms Migrator • Forms2ADF Generator (FAG) 19 Application Application Definition Definition GenerierungsProzess JSF JSP JSP JSF ADF Faces Faces ADF JSF JSF View Controller ADF Model Model ADF Data Bindings Bindings Data Model Data Controls Controls Data Oracle JDeveloper 20 ADF ADF ADF ADF Business Business Business Business Components Components Components Components Business Services Application Application Definition Definition Generation Process JSF JSP JSP JSF ADF Faces Faces ADF JSF JSF View Controller ADF Model Model ADF Data Bindings Bindings Data Model Data Controls Controls Data Oracle JDeveloper 21 ADF ADF ADF ADF Business Business Business Business Components Components Components Components Business Services Application Application Definition Definition Generator Generator Templates Templates JSF JSP JSF JSF JSP JSP JSF JSP ADF Faces ADF ADF Faces Faces ADF Faces JSF JSF JSF JSF JHeadstart Application Generator Oracle JDeveloper 22 View Controller ADF Model ADF ADF Model Model ADF Model Data Bindings Data Data Bindings Bindings Data Bindings Model Data Controls Data Data Controls Controls Data Controls ADF ADF ADF ADF Business Business Business Business Components Components Components Components Business Services Application Application Definition Definition Generator Generator Templates Templates JSF JSP JSF JSF JSP JSP JSF JSP ADF Faces ADF ADF Faces Faces ADF Faces JSF JSF JSF JSF JHeadstart Application Generator Forms2ADF Generator Oracle JDeveloper 23 View Controller ADF Model ADF ADF Model Model ADF Model Data Bindings Data Data Bindings Bindings Data Bindings Model Data Controls Data Data Controls Controls Data Controls ADF ADF ADF ADF Business Business Business Business Components Components Components Components Business Services Oracle Forms und ADF 24 Abbildung der Forms-Architektur auf ADF Oracle Forms Java UI Renderer UI Logic Oracle ADF Rich Clients Web and Wireless Clients Block UI Definition Controller Navigation Logic Data Block Data Definition Logic Record Manager SQL Interface 25 Model Business Services Interoperabilität Forms / ADF • Notwendigkeit • gleichzeitiges Betreiben von Forms- und ADF-Anwendungen • Nebeneinander von Forms- und ADF-Anwendungen in einem längeren Prozess der Umstellung ⇒ Kommunikation zwischen Forms- und ADF-Anwendungen • Anforderungen • • • • 26 übergreifende Transaktionen mehrere Sitzungen pro Anwender (Session Token) mehrere Windows pro Sitzung (Flow Token) sauberer Abbau von Sitzungen bei Abbrüchen Interoperabilität Forms / ADF Prototyp von Oracle Consulting • • • • Kommunikation zwischen Forms- und ADF-Modulen Nachrichtenaustausch (XML) über Adv. Queuing (Oracle DB) nutzt den Stacking-Mechanismus von Forms und ADF 11g (Task Flows) native AQ-Integration von Forms 11 wird die Implementierung vereinfachen Oracle Forms JMS JAXb2.0 ADF 11g 27 Oracle DB XML-Message Advanced Queuing XML-Message Native PL/SQL Interoperabilität Forms / ADF Multiuser-Szenario: XML-Nachrichten-Header: FORMS Forms1 startet ADF1 - <SessionToken>.<FlowToken> Forms1 1.1 1.2 Forms2 startet ADF2 - Navigationsdirektive - Security Token 2.1 Forms2 2.2 enque Start-Parameter: - Benutzername deque -XML-Body SecurityToken Forms2ADF-Queue 2.1 - SessionToken - Benutzername Messages 1.1 - KeyValuePairs ADF2Forms-Queue Die Reihenfolge der Nachrichten spielt2.2 keine Rolle! 1.2 enque deque ADF 1.2 ADF1 1.1 - SessionToken bleibt gleich - Neuer UID für FlowToken 2.2 28 ADF2 2.1 FlowStack wird weiter aufgebaut OraFormsFaces - Forms als WebComponent Form 29 OraFormsFaces - Funktionalität • Übergabe des Kontextes zwischen Forms und JSF (JavaScript) • Anstoßen von Ereignisse in Forms aus JSF und umgekehrt • Hinzufügen eines JavaScript API oder Nutzung des nativen JavaScript API von Forms 11 • Nutzung des Forms-Applets während der gesamten Session • optionale visuelle Integration (Clipping) 30 Zusammenfassung • Oracle ADF als Ergänzung und Alternative zur FormsEntwicklung • Entwicklung mit JDeveloper/ADF weist viele Ähnlichkeiten zur Forms-Entwicklung auf • höhere Produktivität durch Wizards, deklarative und visuelle Arbeitsweise • ADF Business Components sind relational orientiert und können auf einem bestehenden Datenmodell aufsetzen • komponenten-basierte Arbeitsweise mit ADF Faces • Möglichkeiten der Integration von Forms- und ADFApplikationen (erweiterte Funktionen mit Forms 11g) 31 Weiterführende Links • Oracle JDeveloper Product Page http://www.oracle.com/technology/products/jdev/ • Oracle ADF http://www.oracle.com/technology/products/adf • Oracle JDeveloper 11g Tutorials http://www.oracle.com/technology/products/jdev/11/cuecards • Oracle JDeveloper Discussion Forum http://www.oracle.com/technology/discussionforums/jdev.html • Google Group „ADF Methodology“ http://groups.google.com/group/adf-methodology • Deutsche ADF Community http://www.oracle.com/de/community/adf => ADF für Forms-Entwickler 32 Q&A 33