Migration von Forms Client/Server-Anwendungen ins Web Oracle White Paper Oktober 2005 Migration von Forms Client/ServerAnwendungen ins Web Einführung.......................................................................................................... 3 Oracle Application Server Forms Services – das Ziel ................................. 4 Migration von Forms ins Web – der Weg..................................................... 5 Migration von Forms ins Web – die Werkzeuge.......................................... 8 Forms Developer .......................................................................................... 8 Forms Compiler............................................................................................ 9 Forms Migration Assistant ........................................................................ 10 Forms API (Java, C) ...................................................................................11 WebUtil......................................................................................................... 11 PITSS.CON ................................................................................................. 14 Beispiele und Referenzen ............................................................................... 15 Informationen und Dienstleistungen rund um die Migration.................. 15 Migration von Forms/Client Server-Anwendungen ins Web Seite 2 Migration von Forms Client/ServerAnwendungen ins Web EINFÜHRUNG Gemäß dem Tools Statement of Direction vom September 2005 (http://www.oracle.com/technology/products/forms/pdf/10g/ToolsSOD.pdf) endet mit dem 31. Januar 2005 der Standard-Support für Oracle Forms in der Version 6i. Für die Nachfolgeversionen Forms 9i bzw. Forms 10g wird als Laufzeitumgebung nur noch das Web-Deployment unterstützt. Oracle Forms bleibt weiterhin ein wichtiges, strategisches Werkzeug zur Entwicklung von DialogAnwendungen. Deshalb garantiert Oracle den Support für Oracle Forms bis zum Jahr 2013. Daraus ergibt sich die Notwendigkeit, Forms-Anwendungen aus früheren Versionen (Forms 2.3, 4.0, 4.5, 6.0) auf die aktuelle Version zu migrieren und die dafür erforderliche Laufzeitumgebung (Forms Services) innerhalb des Oracle Application Servers zur Verfügung zu stellen. Durch die Migration werden langjährige Investitionen in bestehende FormsAnwendungen geschützt. Gleichzeitig eröffnen sich durch das Web-Deployment neue Möglichkeiten der Integration von Web Services, J2EE-Komponenten und anderen Services des Oracle Application Servers in die existierenden FormsAnwendungen. Das vorliegende Dokument beschreibt die Möglichkeiten und Wege der Migration und soll damit als Hilfestellung bei der Planung und Vorbereitung der Migration dienen. Migration von Forms/Client Server-Anwendungen ins Web Seite 3 ORACLE APPLICATION SERVER FORMS SERVICES – DAS ZIEL Der Oracle Application Server stellt mit den Forms Services eine moderne Ablaufumgebung für Forms-Anwendungen zur Verfügung. Diese Ablaufumgebung basiert auf offenen Standards (HTTP, HTTPS) und nutzt den J2EE-Container (OC4J) des Oracle Application Servers. OracleAS 10g Abbildung 1: Oracle Application Server Forms Services Client PC Neben der Webfähigkeit der Forms-Anwendungen ergeben sich daraus zwei entscheidene Vorteile: • Forms-Applikationen können mit anderen Anwendungs-Technologien (Reports Services, Web Services, J2EE-Komponenten, etc.) verbunden werden. • Forms-Applikationen können direkt die Infrastruktur-Services des Oracle Application Servers (Single Sign-On, Oracle Internet Directory, Application Server bzw. Grid Control, etc.) nutzen. Damit bestehende Forms-Anwendungen auf dem Oracle Application Server betrieben werden können, müssen sowohl die eingesetzte Forms-Version als auch die in den Forms-Modulen verwendete Funktionalität bestimmte Voraussetzungen erfüllen. Die Überprüfung dieser Voraussetzungen und notwendige Modifikationen sind Gegenstand des Migrationsprozesses. Migration von Forms/Client Server-Anwendungen ins Web Seite 4 MIGRATION VON FORMS INS WEB – DER WEG In einem ersten Schritt muss ermittelt werden, in welcher Forms-Version die existierenden Anwendungen vorliegen. Handelt es sich um Forms 6i (>6.0.8.8.0) ist eine direkte Migration nach Forms 9i oder 10g möglich. Für Vorgängerversionen (Forms 3.0 bis 6.0) ist zunächst als Zwischenschritt ein Upgrade auf die Version Forms 6i notwendig. Abbildung 2: Oracle Forms - MIgrationspfade Mit den OracleAS Forms Services laufen die Forms-Module nicht mehr auf dem Desktop (Client Tier), sondern auf dem Application Server (Middle Tier) ab. Damit werden bestimmte Aufrufe in den Forms-Anwendungen nicht mehr unterstützt oder funktionieren anders als bisher gewohnt. So würde beispielsweise das Schreiben von Daten in eine Datei nicht mehr im Dateisystem auf dem Desktop sondern auf dem Application Server erfolgen, was in vielen Fällen nicht gewünscht ist. Die eigentliche Migration besteht darin, diese Aufrufe in geeigneter Weise zu ersetzen. Eine Übersicht der obsoleten Features findet man in der Forms 6i to Oracle9i Forms Upgrade Reference http://www.oracle.com/technology/products/forms/pdf/forms_upgrade_reference.pdf Migration von Forms/Client Server-Anwendungen ins Web Seite 5 Die Beantwortung der folgenden Fragen hilft, sich einen Überblick über die in den Forms-Anwendungen eingesetzte Funktionalität zu verschaffen. Auf dieser Grundlage ist eine ungefähre Abschätzung des Migrationsaufwandes möglich. 1. Wird Forms im Character Mode unter VMS oder UNIX eingesetzt? ⇒ Mit Forms 9i/10g wird kein Character Mode mehr unterstützt. 2. Welche betriebssystem-spezifischen Techniken werden genutzt? VBX OLE Container OCX/ActiveX Controls Sound Item ⇒ Diese Techniken können in Forms 9i/10g durch Java Beans oder Pluggable Java Components (PJC) ersetzt werden. Weitere Informationen findet man im White Paper Client Side OLE Integration from Oracle9i Forms http://www.oracle.com/technology/products/forms/pdf/ClientSideOLE.pdf 3. Wie werden aus Forms heraus Oracle Reports Programme gestartet? ⇒ Da der Aufruf RUN_PRODUCT in Forms 9i/10g nur noch in Verbindung mit Oracle Graphics verwendet werden sollte, ist eine Ersetzung durch den Aufruf RUN_REPORT_OBJECT erforderlich. Weitere Informationen findet man im White Paper Oracle Application Server 10g – Integrating Oracle Reports in Oracle Forms Services applications http://www.oracle.com/technology/products/forms/pdf/10g/frm10gsrw10g.pdf 4. Werden noch Forms V2 Style Trigger genutzt? ⇒ Diese konnten nur noch in Forms 5 bearbeitet werden. In Forms 6i kann man sie weder bearbeiten noch ansehen. Beim Upgrade auf Forms 9i/10g wird eine Warnung ausgegeben und die Trigger werden gelöscht. 5. Werden die binären Forms-Module in der Datenbank gespeichert? Findet ein Subclassing von Objekten aus diesen Modulen statt? ⇒ In Forms 9i/10g werden die binären Forms-Module nur noch im File System gespeichert. 6. Werden When-Mouse-Move / When-Mouse-Enter / When-MouseLeave Trigger genutzt? ⇒ Diese werden im Web nicht unterstützt, da sie zu viel Netzwerklast erzeugen. 7. Welche der folgenden Routinen werden genutzt : Aufrufe von OS-Kommandos (HOST, OHOST, ...) ORA_FFI TEXT_IO User Exits ⇒ Es ist zu beachten, dass diese Routinen auf der Middle Tier und nicht mehr auf dem Desktop ausgeführt werden. Wenn dies nicht Migration von Forms/Client Server-Anwendungen ins Web Seite 6 gewünscht ist, können sie durch Java Beans oder Pluggable Java Components (PJC) ersetzt werden. 8. Werden Zugriffe auf dem Client z.B. auf das File System oder die Registry durchgeführt? ⇒ Es ist zu beachten, dass diese Routinen auf der Middle Tier und nicht mehr auf dem Client ausgeführt werden. Wenn dies nicht gewünscht ist, können sie durch Java Beans oder Pluggable Java Components (PJC) ersetzt werden. 9. Sind Grafiken über Oracle Graphics in Forms eingebunden worden? ⇒ Oracle Graphics wird mit Forms 9i/10g nicht mehr ausgeliefert. Mit den Business Intelligence Graph Beans (BI Beans) steht für Forms 9i/10g eine moderne komponenten-basierte Technologie auf Basis von Java und XML zur Verfügung. Es gibt keine Möglichkeit, Oracle Graphics zu migrieren. Die Alternative besteht darin, Oracle Graphics 6i in einem separaten Oracle Home zusammen mit Forms 9i/10g laufen zu lassen. Die Grafiken müssen in diesem Fall nicht migriert werden. In diesem Fall müssen einige kleinere Anpassungen durchgeführt werden. Weitere Informationen findet man im White Paper Deploying Graphics in Oracle9iAS Forms Services http://www.oracle.com/technology/products/forms/pdf/ogonweb44.pdf 10. Werden Anwendungen genutzt, die mehrsprachig sind? Wie wurden diese übersetzt? Wurde der Oracle Translation Builder genutzt ? ⇒ Der Oracle Translation Builder wird durch den TranslationHub ersetzt, der auch bei der Übersetzung von Forms-Modulen der Oracle E*Business Suite genutzt wird. 11. Wird PVCS oder Clearcase als Source Code Control System genutzt? ⇒ In Forms 9i/10g sind diese Systeme nicht mehr mit Forms integriert. Stattdessen kann in Forms 9i/10g der Oracle Software Configuration Manager (SCM) genutzt werden, der ebenfalls in der Oracle Developer Suite enthalten ist. Weitere Informationen findet man im OTN unter Oracle9i SCM and Oracle9i Forms Integration http://www.oracle.com/technology/products/repository/htdocs/ 9iscmforms.html Der Aufwand für die Migration hängt vom Umfang der zu ersetzenden Aufrufe in den Forms-Modulen ab und kann daher in verschiedenen Anwendungen stark variieren. Eine grobe Abschätzung kann beispielsweise durch Gruppierung der FormsModule nach Größe, Funktionalität und Komplexität sowie der anschließenden Ermittlung des Aufwandes für jeweils einen Vertreter pro Gruppe erfolgen. Alternativ bieten Partnerunternehmen Werkzeuge und Serviceangebote zur Migrationsplanung und Aufwandsschätzung an. Migration von Forms/Client Server-Anwendungen ins Web Seite 7 MIGRATION VON FORMS INS WEB – DIE WERKZEUGE Im Prozess der Migration können folgende Werkzeuge zum Einsatz kommen: • Forms Developer • Forms Compiler • Forms API (C, Java) • Forms Migration Assistant • WebUtil • PITSS.CON Diese Werkzeuge können interaktiv oder im Batch, einzeln oder in Kombination eingesetzt werden. So lässt sich ein nach den Erfordernissen des jeweiligen Projektes optimales Vorgehen praktizieren. Ein Schwerpunkt der Migration besteht in der Ersetzung ungültiger oder nicht mehr gewünschter Aufrufe (Built-Ins) durch gültige bzw. modifizierte Aufrufe (Built-Ins). So ist beispielsweise für die Integration von Reports in FormsAnwendungen die Ersetzung des Aufrufs RUN_PRODUCT durch RUN_REPORT_OBJECT notwendig. Das notwendige Search & Replace dieser Aufrufe kann - für einzelne Forms-Module im Forms Developer - für eine größere Zahl von Modulen mit Hilfe des Forms Migration Assistant durchgeführt werden. Forms Developer Mit dem Forms Developer können bestehende Forms-Module interaktiv migriert werden, indem die Module in der Entwicklungsumgebung geöffnet, kompiliert und abgespeichert werden. Auftretende Fehler und Warnungen sind unmittelbar sichtbar, allerdings ist diese Form der Migration bei einer größeren Zahl von Modulen wenig effizient. Migration von Forms/Client Server-Anwendungen ins Web Seite 8 Forms Compiler Alternativ können Module mit dem Forms Compiler interaktiv oder im Batch migriert werden, indem die Option Upgrade=YES gesetzt wird. Die Ergebnisse werden in einer Datei protokolliert. Abbildung 3: ifcmp90 module=app1.fmb userid=scott/tiger@orcl upgrade=yes batch=yes Forms Compiler im Batch-Modus (Windows) Abbildung 4: Forms Compiler interaktiv Forms Developer und Forms Compiler eignen sich vor allem für Module, die Standardfunktionalität enthalten und bei denen keine größeren Umstellungen erforderlich sind. Migration von Forms/Client Server-Anwendungen ins Web Seite 9 Forms Migration Assistant Bestehende Forms-Module der Version 6i können mit Hilfe des Forms Migration Assistant in die Version 9i/10g konvertiert werden. Der Forms Migration Assistant wird mit der Oracle Developer Suite installiert oder kann aus dem Oracle Technet bezogen werden. Das Werkzeug kann wahlweise im Batch oder im Wizard-Modus (GUI) eingesetzt werden. Mit dem Tool können automatische Konvertierungen nicht mehr unterstützter Aufrufe vorgenommen werden. In der Datei search_replace.properties kann die Ersetzung bestimmter Aufrufe konfiguriert werden (z.B. Ersetzung von RUN_PRODUCT durch RUN_REPORT_OBJECT). Hinweise und Warnungen werden in einer Log-Datei ausgegeben. Weitere Informationen findet man in der Note 209545.1, How to Use Migration Assistant to Migrate Forms 6i to Forms 9i Abbildung 5: Forms Migration Assistant Bei der Migration sollten zunächst die Menü- und Library-Module migriert werden, da diese von den Forms-Modulen referenziert werden. Die migrierten Menü- und Library-Module sollten anschließend in einem Verzeichnis abgelegt werden, das im Forms-Pfad (FORMS90_PATH) enthalten ist. Erst danach können die FormsModule migriert werden. Migration von Forms/Client Server-Anwendungen ins Web Seite 10 Forms API (Java, C) Eine Möglichkeit zur Automatisierung gleichartiger Änderungen besteht in der Nutzung des Forms Developer APIs. Alle Einstellungen und Aufrufe eines FormsModuls können mit Hilfe des APIs gelesen und geändert werden. Wahlweise steht das API in den Varianten • Java Developer API (JDAPI) • Open API (C/C++) zur Verfügung. WebUtil Viele traditonelle Forms-Anwendungen sind eng mit dem Desktop des Anwenders integriert (lokale Datenzugriffe, OLE, Nutzung von Betriebssystem-Funktionen). Es wurde bereits erwähnt, dass als Konsequenz des Web Deployments viele dieser Funktionen nicht mehr zur Verfügung stehen oder nicht in der gewohnten Weise funktionieren. Technologisch besteht die Lösung darin, die gewünschte Funktionalität durch Java Beans oder Pluggable Java Components (PJC) in den Forms zu implementieren. Um den Aufwand für diese Umstellungen möglichst gering zu halten und den Kunden ein Äquivalent für die entfallenen Funktionen zu bieten, stellt Oracle mit dem WebUtil eine Bibliothek von vordefinierten Komponenten für das Deployment von Forms im Web zur Verfügung. Der Funktionsumfang des WebUtil geht dabei über den reinen Ersatz von Desktop-Funktionaltität hinaus, indem zusätzliche Möglichkeiten der Integration im Web (z.B. Integration mit dem Browser) angeboten werden. Mit diesen Komponenten können folgende Funktionen implementiert werden: • Text I/O auf dem Client • Dateiauswahl auf dem Client • Maniuplation von Dateien auf dem Client (Copy, Rename, Delete etc.) • Lesen von Variablen auf dem Client • OLE-Integration auf dem Client • Dateitransfer zwischen Client, Application Server und Datenbank • Lesen/Schreiben von Bilddateien vom/zum Client • C API Interface auf dem Client • Asynchroner/synchroner Aufruf von Programmen auf dem Client • Erkennung und Umleitung ‚toter’ Sessions • Funktionen zur Integration mit dem Browser Migration von Forms/Client Server-Anwendungen ins Web Seite 11 Das WebUtil ist ein offizielles Produkt und kann aus dem Oracle Technet (http://www.oracle.com/technology/software/products/forms/index.html) bezogen werden. Für die produktive Nutzung sind wenige Installationsschritte erforderlich, die in dem dazugehörigen Handbuch beschrieben sind. Benötigt man eine der im WebUtil enthalten Komponenten in seiner FormsAnwendung sind dazu nur drei einfache Schritte notwendig: 1. Attachement der WebUtil Library (webutil.pll) zur Form. Diese Library enthält das API (PL/SQL) zum Aufruf aller Funktionen des WebUtil. 2. Referenzierung der Object Group aus der WebUtil Object Library (webutil.olb). Die Object Library enthält alle Pluggable Java Components (PJC) des WebUtil. Abbildung 6: WebUtil – Attachement der pll-Library Abbildung 7: WebUtil – Attachement der Object Library Migration von Forms/Client Server-Anwendungen ins Web Seite 12 3. Umbennen der Aufrufe in der Form (z.B. TEXT_IO in CLIENT_TEXT_IO) Abbildung 8: WebUtil – Anpassung der Aufrufe Da die Java-Komponenten über das PL/SQL aufgerufen werden, können FormsEntwickler diese ohne spezielle Java-Kenntnise in ihre Anwendungen einbinden. Migration von Forms/Client Server-Anwendungen ins Web Seite 13 PITSS.CON Die Firma PITSS (www.pitss.de) bietet mit PITSS.CON ein universelles Werkzeug zur Entwicklung, Migration und Pflege von Forms-Anwendungen an. Das Werkzeug deckt folgende Funktionsbereiche ab: - Verwendungs- und Abhängigkeitsanalysen - Transformation von Funktionalität - Migration von früheren Forms-Versionen (3.0,4.5,5.0,6.0,6i) auf das aktuelle Release 10g - Qualitätssicherung und Dokumentation - Versionsführung. Abbildung 9: PITSS.CON – Funktionale Bereiche Durch die Automatisierung der Migrationsschritte und einen repository-gestützten Ansatz kann eine drastische Reduzierung des Aufwandes in Migrationsprojekten erreicht werden. Migration von Forms/Client Server-Anwendungen ins Web Seite 14 BEISPIELE UND REFERENZEN Viele Unternehmen, die Oracle Forms seit Jahren einsetzen, haben bereits ihre Forms-Anwendungen ins Web migriert. Zu den weltweit größten Anwendungen zählt beispielsweise die Warenwirtschaft der Metro AG mit über 4000 Benutzern. Nähere Informationen zur Warenwirtschaft der Metro AG finden Sie unter http://www.oracle.com/global/de/referenzen/profile/metro_mgi.html Auch die Oracle E-Business Suite nutzt die OracleAS Forms Services in den aktuellsten Versionen für ihr ‘Professional User Interface’. Eine Liste erfolgreicher Projekte finden Sie auf der Oracle Web Site unter http://www.oracle.com/lang/de/referenzen/toolsquotes.html. INFORMATIONEN UND DIENSTLEISTUNGEN RUND UM DIE MIGRATION Innerhalb des Oracle Technet steht Ihnen mit dem Forms Upgrade Center (http://www.oracle.com/technology/products/forms/htdocs/upgrade/index.html) ein zentrales Informationsportal für das Migrationsthema zur Verfügung. Über das Forms Upgrade Center erhalten Sie Zugang zu einer Vielzahl von Dokumenten, Referenzen, Software, Dokumentationen, Code-Beispielen, Online-Schulungen und Diskussionsforen. Die Dokumentation Migrating Forms Applications from Forms6i enthält spezielle Hinweise zur Migration von Forms 6i nach Forms 9i (Part-No. A92183-01) bzw. Forms 10g (B10469-01). Da viele Forms-Anwendungen bereits erfolgreich auf die OracleAS Forms Services im Web umgestellt wurden, verfügen viele Partner-Unternehmen und der Consulting-Bereich von Oracle über umfangreiche Expertise auf diesem Gebiet. Diese findet sich sowohl in Migrations-Werkzeugen als auch in speziellen Dienstleistungsangeboten zur Planung, Aufwandsschätzung und Durchführung der Migration. Nähere Informationen zu unseren spezialisierten Partnern finden Sie auf der Oracle Web Site unter http://www.oracle.com/technology/products/forms/htdocs/partners.html. Nähere Informationen zum Consulting-Bereich von Oracle finden Sie auf der Oracle Web Site unter http://www.oracle.com/global/de/consulting/index.html. Wenn Sie diese Erfahrungen nutzen wollen, können wir Ihnen gerne kompetente Ansprechpartner in Ihrer Nähe bzw. Ihrer Branche vermitteln. Migration von Forms/Client Server-Anwendungen ins Web Seite 15 Migration von Forms Client/Server-Anwendungen ins Web August 2004 Autor: Dr. Jürgen Menge Oracle Deutschland GmbH Hauptverwaltung Riesstraße 25 D – 80992 München Tel e fon (0 89) 1 4 30-0 Telefax (0 89) 1 4 30-1150 Copyright © 2003, Oracle. 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. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.