Upload
vuanh
View
216
Download
0
Embed Size (px)
Citation preview
<Insert Picture Here>
Migration oder Modernisierung von Forms-Applikationen
Jürgen MengeOracle Deutschland GmbH
Anwendungsentwicklung - gestern
User InterfaceUIX /JSP
Business ServicesADF BC / EJB
DBSchema
Web Services
Forms / Reports
Application Express
GeschäftslogikOberflächen Daten
GeschäftslogikOberflächen Daten
Human WorkflowService
BPELProzessBusiness
ActivityMonitoring
OrchestrierungMenschl. Interaktion Regel-EvaluierungMonitoring
User InterfaceADF Faces Components
Business Services
DataBinding
Web Services
DBSchema
Web
Cen
ter
Events
RulesEngine
Schluss-folgerung
Fakten
Moderne Anwendungs-Entwicklung
Aufgaben zuweisen
Aufgabenerledigt
Kontext-bezogenes User Interface
Notifications
Contextual Wiring
Documents
Discussions
Personal / Group Spaces
Presence
Preferences
Search
Recent
Favorites
Oracle Entwicklungs-Plattformen
• Klassische Entwicklung• Langfristige Unterstützung für Oracle Forms, Reports und Designer
(bis mindestens 20171))• Weiterentwicklung der Produkte (Forms/Reports 11g)• Integration bestehender Applikationen in SOA• Nutzen vorhandener Entwickler-Kenntnisse
• Offene, standard-basierte Entwicklung• Entwicklung mit Oracle JDeveloper, ADF und BI Publisher• Entwicklung auf Basis offener Standards (J2EE)• Produktivität durch Anknüpfen an vertraute Konzepte
(deklarative, visuelle und code-orientierte Arbeitsweise)• Einsatz im Projekt Fusion• Einarbeitung der Entwickler-Teams
1) http://www.oracle.com/technology/products/forms/pdf/10g/ToolsSOD.pdf
<Insert Picture Here>
Entwicklung von Benutzer-Schnittstellen und Services
Entwicklung mit Oracle Forms
• ca. 3000 Forms-Kunden in Deutschland• zahlreiche Standard-Lösungen auf Basis von Forms• geschäftskritische Anwendungen in Unternehmen• kleinere und mittlere Abteilungs-Anwendungen
• Forms-Applikationen über viele Jahre gewachsen• viele Entwicklungsstufen von Character Mode bis Web• in den Anwendungen steckt großer Entwicklungsaufwand• keine einheitliche Struktur der Anwendung• unterschiedliche Qualität der Dokumentation
• Monolithische Architektur der Forms-Applikationen• Prozess-Logik ist in die Applikation eingebettet• häufig mit Oracle Reports für Berichte & Dokumente integriert• häufig mit dem Desktop (MS Office, lokale Geräte) integriert
Forms-Applikationen – Heute
Neue Anforderungen an Applikationen
• Zugriff auf die Applikation vom Internet und Extranet• mobiler Zugriff auf die Applikation• attraktive Oberfläche (Look & Feel)
• neue GUI-Controls (Table Grid)
• Anpassung der Fenstergröße an die Auflösung
• …
• saubere Trennung der Schichten• Separierung der Geschäftslogik von der Präsentation
• Wiederverwendbarkeit von Geschäftslogik
• Einhaltung von Standards• Session-Replikation, transparentes Failover
Alternativen für Forms-Applikationen
Forms-Applikation
Standard-Software
Modernisierung
Komplette Migration
J2EE
J2EE
• Upgrade der Forms-Applikationen auf die aktuelle Ve rsion• vollständiger Support der Anwendungen• Vorteile der Mehrschicht-Architektur in Entwicklung und Betrieb
• Funktionalität des Oracle Application Server nutzen• Integration, Infrastruktur-Services, Hochverfügbarkeit
• Zusätzlich benötigte Funktionen mittels Java in die Forms-Anwendung einbetten
• WebUtil, Pluggable Java Components, Java Beans, Web Services
• Entwicklung neuer Anwendungen und Module auf Basis von J2EE
• Einsatz von Oracle JDeveloper und ADF
Was empfiehlt Oracle Forms-Kunden ?
Was empfiehlt Gartner Forms-Kunden ?
How to Maneuver Oracle Forms Into an Ideal Position for Next-Generation Challenges (Studie: Juli 2007)
• Modernisieren der Forms-Applikationen (Forms Upgrad e)• um Vorteile aus dem zentralen Deployment und der
Administration zu ziehen• um Service und Support zu erhalten
• Integration in die SOA-Welt• auf der Basis der Oracle Middleware und Java-Tools
• Langfristige Migration zu standard-basierten Techno logien• Migration nach Oracle ADF (J2EE) ist mit den geringsten Kosten
und Risiken verbunden
Komplett-Migration von Forms-Anwendungen
• Komplette Ablösung einer Forms-Applikation in einem relativ kurzen Zeitraum
• Technologische Alternativen für eine Komplett-Migration• J2EE, .NET, Oracle APEX, proprietäre Technologien• teilweise Migrations-Werkzeuge verfügbar
• VorgehensweiseMigration auf Ebene des Programmcodes (Konvertierungs-Werkzeuge)Migration der Fachlichkeit (Dokumentation der Anwendungsfälle)Redesign und Erweiterung der Anwendung
• Wirtschaftlichkeit und Machbarkeit• Kosten & Risiken � Nutzen• Kenntnisse und Erfahrungen des Entwicklungs-Teams
Fachliche
Modularisierung
BetriebBusiness Process
Management (BPM)
• Struktur bereinigen
• Daten bereinigen
• Refactoring
Umfassende
Sicherheit
• Mandanten-fähigkeit
• Auditing
• Single Sign-On
• Zugriffs-verwaltung
Entwicklungs-
Plattform
• Methodik für Entwicklung, Deployment, Test u. Betrieb
• Frameworks
• Release-Management
• Governance
Integrations-
Plattform
• Prozess-Modellierung
• Prozess-Design
• Implementierung
• Monitoring
• Prozess-Integration
• Daten-Integration
• Schnittstellen
• Verfügbarkeit
• SLA
• Administration
• Monitoring
• Governance
User Interface
• Interaktion Forms ���� Web
• Enterprise 2.0
Modernisierung
Monolithische Applikation Service-orientierte Applikation
Modernisierung von Forms-Anwendungen
<Insert Picture Here>
Entwicklung von Benutzer-Schnittstellen und Services
Entwicklung mit Oracle JDeveloper und ADF
Hindernisse bei der Entwicklung mit J2EE
• Komplexe Technologien• Verteilte Applikationen• Mehrschichtige Architekturen• Kenntnisse in vielen Bereichen erforderlich
(Java, XML, XSLT, CSS, JavaScript, Script-Sprachen, …)
• Rasche Änderungen in den Technologien und Standards
• J2EE bietet keine End-to-End Anwendungsarchitektur• J2EE ist eine Ansammlung von Technologien
(JMS, JDBC, JSP, EJB, Servlets, JAAS, JavaMail, JNDI, JTA, JCA, …)
• Java ist keine 4GL-Sprache
Wege zur Steigerung der Produktivität
• Leistungsfähige Werkzeuge• deklarative, visuelle und code-orientierte Entwicklung• Generierung von Code
• Einsatz von• Design Patterns• Frameworks
• Service-orientierte Architekturen (SOA)• prozess-orientiertes Vorgehen• Entwicklung von Services und Oberflächen• Orchestrierung von Services
Oracle JDeveloper
• Integrierte Entwicklungsumgebung • Unterstützung des vollständigen Entwicklungszyklus• Entwicklungsumgebung für Java, XML, Web Services, SQL, PL/SQL• Integrierter Application Server – Oracle WebLogic Server• 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
• 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
Oracle Application Development Framework (ADF)
Entwicklung mit Oracle ADF
DevelopDevelop
BusinessBusinessServiceService
ExposeExpose
ModelModel
AccessAccess
ViewView
Architektur – Oracle ADF
Business Services
Rich Clients Web and Mobile
Model
Controller
Business Services
Model(JSR-227)
Controller
View
ADF Bindings (JSR 227)ADF Bindings (JSR 227)
Business Services
Data Services
Model
Controller
ViewJSFJSF
Desktop Browser-Based
StrutsStruts JSF/ADF Task FlowJSF/ADF Task Flow
OfficeOfficeADFADF SwingSwing JSPJSP ADF Faces / DVTADF Faces / DVT
XML DataXML Data Legacy DataLegacy DataRelational DataRelational Data Packaged AppsPackaged Apps
TopLinkTopLink
EJBEJB BAMBAM ADFbcADFbc PortletsPortletsBIBI EssbaseEssbaseBPELBPEL Web Web ServicesServices
JavaJava
Oracle ADF 11 g Architektur
Business Services
Data Services
Model
Controller
View
ADF Bindings (JSR 227)ADF Bindings (JSR 227)
JSFJSF
Desktop Browser-Based
StrutsStruts JSF/ADF Task FlowJSF/ADF Task Flow
OfficeOfficeADFADF SwingSwing JSPJSP
TopLinkTopLink
EJBEJB BAMBAM ADFbcADFbc PortletsPortletsBIBI EssbaseEssbaseBPELBPEL Web Web ServicesServices
JavaJava
ADF Faces / DVTADF Faces / DVT
XML DataXML Data Legacy DataLegacy DataRelational DataRelational Data Packaged AppsPackaged Apps
ADF-Technologien für Forms-Entwickler
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 EJB 3.0 TopLink TopLink
/Java/JavaBeansBeans
EJB EJB Session Session BeansBeans
Web Web ServicesServices
ADF ADF Business Business
ComponentsComponents …
ADF Business Components
� J2EE-Framework zur Erstellung von Geschäftskomponenten
� Persistenz-Schicht
� Kapselung der Geschäftslogik
� Implementierung von 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
KundeAuftra g
Kunde
Auftrag
WichtigerAuftrag
Kunde
Präsentation
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
Model
Web Services
Toplink
EJB
JavaClasses
BusinessComponents
• 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
Oracle ADF - Controller
Oracle ADF – View (User Interface)
• Entwicklung der Präsentationsschicht• visuell (WYSIWYG)
• deklarativ
• Wahl der Implementierung
ADF ADF SwingSwing
JSPJSP JSP / JSP / StrutsStruts
Java Server Java Server Faces (JSF)Faces (JSF)
32
Java Server Faces (JSF)
• Standard-J2EE-Framework zur Generierung von Web- und mobilen Benutzeroberflächen
• komponentenbasiert
• Durch den Java Community Process definiert
• Implementierungen• Referenz-Implementierung von SUN (RI)• freie Implementierungen (Apache MyFaces)• kommerzielle Implementierungen (nicht von Oracle !)
J2EE 1.4 JSF 1.1
JEE 5.0 JSF 1.2
JEE 6.0 JSF 2.0
33
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
ViewView
ADF FacesADF Faces
Browser ClientBrowser Client
AJAXAJAX
Active ClientActive Client
FlashFlash
Mobile ClientMobile Client
XHTML, WML,XHTML, WML,ASK (SMS)ASK (SMS)
Rich Enterprise Applications
ADF Faces: DVT-Komponenten
GraphGauge
Geographic map
Pivot tableGantt chart
• verfügbare Data Visualization-Komponenten
<Insert Picture Here>
Entwicklung von Benutzer-Schnittstellen und Services
Interoperabilität zwischen Forms und ADF
Wichtige Fragen
• Soll die bestehende Datenbasis weiter genutzt werden ?
• Soll die bestehende Geschäftslogik in der Datenbank weiter genutzt werden ?
• Ist ein funktionales Nebeneinander von Forms-Anwendung (alt) und ADF-Anwendung (neu) geplant ?• Rechtekonzept• gemeinsame Transaktionen• Caching von Änderungen• Kommunikation zwischen den Anwendungsteilen• …
• Alternativen für die Berichtserstellung (Oracle BI Publisher)
Geplante Features Forms 11 g• Unterstützung von externen Events
• Advanced Queuing (AQ)
• JMS
• JavaScript API• Interaktion mit dem Browser
• Security• Vollst. Unterstützung für Enterprise User Security (EUS)
• Unterstützung für DB Proxy
• Zertifizierung des Standard Java Plug-In von SUN• Support für verschiedene Clients
• Tuning Utility • Oracle Diagnostic Logging (ODL)• Forms-Monitoring im Oracle Enterprise Manager
Forms 11 g - Interoperabilität
FormsServer
FormsClient
Datenbankmit AQ
FormsServer
BPEL
FormsClient
File System
Web Services
Mail, Wireless
JMS
Datenbanken
.NET
Oracle DB
Advanced Queuing
JMS
Native PL/SQLXML-Message XML-Message
JAX
b2.0
AD
F 11g
Oracle Forms
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
FORMS
ADF
Forms2ADF-Queue
ADF2Forms-Queue
FORMS
ADF
Forms2ADF-Queue
ADF2Forms-Queue
Forms2
Forms1
ADF1
ADF2
FORMS
2.1
1.1
ADF
Forms2ADF-Queue
ADF2Forms-Queue
Forms2
Forms1
ADF1
ADF2
FORMS
ADF
Forms2ADF-Queue
ADF2Forms-Queue
Forms2
Forms1
ADF1
ADF2
1.12.1
Die Reihenfolge der Nachrichten spielt keine Rolle!
FORMS
ADF
Forms2ADF-Queue
ADF2Forms-Queue
Forms2
Forms1
ADF1
ADF2
1.1
2.1
FORMS
ADF
Forms2ADF-Queue
ADF2Forms-Queue
Forms2
Forms1
ADF1
ADF22.2
1.2
FORMS
ADF
Forms2ADF-Queue
ADF2Forms-Queue
Forms2
Forms1
ADF1
ADF2
2.21.2
FORMS
ADF
Forms2ADF-Queue
ADF2Forms-Queue
Forms2
Forms1
ADF1
ADF2
2.2
1.2
Multiuser-Szenario:
Forms1 startet ADF1
Forms2 startet ADF2
Start-Parameter:
- SessionToken
- SecurityToken
- Benutzername
Interoperabilität Forms ���� ADF
enque deque
XML-Nachrichten-Header:
- <SessionToken >.<FlowToken >
- Navigationsdirektive
- Security Token
- Benutzername
XML-Body
- Messages
- KeyValuePairs
dequeenque
- SessionToken bleibt gleich
- Neuer UID für FlowToken
� FlowStack wird weiter aufgebaut
Berichte & Dokumente in Oracle Forms
• fast alle Forms-Applikationen rufen Oracle Reports auf
• Oracle Reports wird wie Oracle Forms weiterentwickelt (Reports 11g) und bis mindestens 2017 als Produkt supported
• mit dem Oracle BI Publisher steht eine zukunftsfähige Alternative zu Oracle Reports zur Verfügung• BI Publisher-Berichte können in Forms-Applikationen integriert
werden• BI Publisher wird das Reporting-Framework in Oracle ADF• Migrations-Werkzeug für Oracle Reports als Teil des Produktes
verfügbar
44
OraFormsFaces - Forms als WebComponent
Form
• Übergabe des Kontextes zwischen Forms und JSF(JavaScript)
• Anstoßen von Ereignissen 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)
Befähigung des Entwickler-Teams
• Entwicklung mit J2EE/ADF erfordert neue Kenntnisse und Fähigkeiten• Java-Grundlagen• J2EE-Grundlagen• Entwicklung mit ADFaber mit ADF 11g können viele Aufgaben rein deklarativ gelöst werden
• Architekten und Projektleiter haben in J2EE/ADF-Projekten einen großen Stellenwert• größere Varianten-Vielfalt in der Implementierung gegenüber Forms• Architekturvorgaben zwingend notwendig
• empfohlener Technologie-Stack aus ADF für Forms-Entwickler• ADF Business Components => Model => ADF Faces
• Kombination von Trainingskursen, Selbstudium und Coaching
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• Forms2ADF Generator (FAG)
JHeadstart Application Generator 11 g
• generiert ADF Faces JSPX Pages, Page Fragments und Regionen
• generiert (un)bounded Task Flows• generiert PageDefinition XML-Dateien (Data Bindings)• generiert keinen Java Code !• JAG wird gesteuert durch
• Application Definition File (XML)
• Anlegen und Bearbeiten durch GUI/Wizard (JDeveloper)
• Velocity Generator Templates
• generierte Ergebnisse sind zu 100% anpassbar
JHeadstart Forms2ADF Generator
Migrations-Werkzeuge Form => J2EE
• unterschiedliche Architektur von Forms- und J2EE-Applikationen
• mehrere Anbieter von Tools (CipherSoft, VGO Software, …)
• automatische Transformation von Programmcode ist wenig sinnvoll,
da im Ergebnis schlecht wartbare Applikationen entstehen
• Oracle JHeadstart transformiert die Struktur der Forms-Applikation
in eine adäquate Applikationsstruktur von Oracle ADF
• Migration als Startpunkt für das eigentliche ADF-Projekt
• Geschäftslogik (PL/SQL) wird nicht transformiert
⇒ Entscheidung, wo diese Logik künftig ausgeführt werden soll
JSF JSPADF Faces
JSF JSPADF Faces
JSF + ADFcJSF + ADFc
ADF Business
Components
ADF Business
Components
ADF Model
Data Bindings
Data Controls
ADF Model
Data Bindings
Data Controls
View
Controller
Model
BusinessServices
Forms2ADFGenerierungs-Prozess
Application Definition
Application Definition
ADF Business
Components
ADF Business
Components
JHeadstartForms2ADF
Generator
Form (.fmb)Form
(.fmb)Form (.fmb)Form
(.fmb)
JSF JSPADF Faces
JSF JSPADF Faces
JSFJSF
ADF Business
Components
ADF Business
Components
ADF Model
Data Bindings
Data Controls
ADF Model
Data Bindings
Data Controls
View
Controller
Model
BusinessServices
Application Definition
Application Definition
ADF Business
Components
ADF Business
Components
JHeadstartForms2ADF
Generator
Form (.fmb)Form
(.fmb)Form (.fmb)Form
(.fmb)
JSF JSPADF Faces
JSF JSPADF Faces
JSFJSF
ADF Business
Components
ADF Business
Components
ADF Model
Data Bindings
Data Controls
ADF Model
Data Bindings
Data Controls
View
Controller
Model
BusinessServices
GeneratorTemplatesGeneratorTemplates
JHeadstartApplication Generator
JSF+ADFcJSF+ADFc
JSF JSPADF Faces
JSF JSPADF Faces
ADF Model
Data Bindings
Data Controls
ADF Model
Data Bindings
Data Controls
Application Definition
Application Definition
ADF Business
Components
ADF Business
Components
JHeadstartForms2ADF
Generator
Form (.fmb)Form
(.fmb)Form (.fmb)Form
(.fmb)
Forms2ADFGenerierungs-Prozess
Oracle Forms ADF BC Objects
Tables/Views Entity Objects (EO)
Blocks View Objects (VO)
Items & Canvases Region Container, Regions
LOV/Record Groups LOV
Form Application Module
Forms2ADF Generator –Datenverwendungen
Oracle Forms ADF BC Objects
Blocks Groups
Items Items
Allowable Values Domains
PL/SQL-Logik Dokumentation
Forms2ADF Generator –Interface Definitionen
• Oracle Fusion Middlewarehttp://www.oracle.com/technology/products/middleware
• Oracle Formshttp://www.oracle.com/technology/products/forms
• Oracle Forms Upgrade Centerhttp://otn.oracle.com/formsupgrade
• Deutsche Forms-Communityhttp://www.oracle.com/global/de/community/forms
• J2EE für Forms-Entwicklerhttp://www.oracle.com/technology/formsdesignerj2ee
Weiterführende Informationen (1)
• Oracle Application Development Framework (ADF)http://www.oracle.com/technology/products/adf
• Oracle JDeveloperhttp://www.oracle.com/technology/products/jdev
• Deutsche ADF Communityhttp://www.oracle.com/de/community/adf=> ADF für Forms-Entwickler
• Oracle BI Publisherhttp://groups.google.com/group/adf-methodology
• SQL Developer Data Modelinghttp://www.oracle.com/technology/products/database/sql_developer/files/Modeling.html
Weiterführende Informationen (2)
• DOAG - SIG DevelopmentActive Workshop „Oracle ADF für Forms-Entwickler“• 31.3.2009 Düsseldorf
• DOAG - SIG Development „Reports-Migration: Strategien, Erfahrungsberichte zu Reporting, Data Warehouse und Business Intelligence aus Entwicklersicht “• 18.6.2009 Hamburg
• Oracle Developer Day „Bessere Anwendungen in kürzerer Zeit“• 21.4.2009 Stuttgart• 23.4.2009 Frankfurt• 29.4.2009 Hamburg• 7.5.2009 Dresden
Veranstaltungen