Herzlich willkommen
                SIG Development
„Oracle Forms Modernisierung und
                      Migration “

                       am 05.04.2011 in Frankfurt am Main
Beratung Software Lösungen
Herausforderungen bei der Umstellung
von Oracle Forms nach Oracle ADF
                                 Ulrich
                                 Gerkmann-Bartels
                                 Senior Consultant Oracle Technologies
                                 ugb@team-pb.de
TEAM - Ihr Partner für IT



Zahlen und Fakten

 Gründung 1982
 Unternehmensgruppe Materna
  1.300 Mitarbeiter –
  153 Mio. Euro Umsatz in 2009
 Geschäftsführung
  Michael Baranowski - Heike Käferle
 über 50 Mitarbeiter
Zu meiner Person

Beratung, Workshops, Projekte auf Basis der Oracle Fusion Middleware

Software Engineering 2010, DOAG SIG, DOAG Konferenz, Oracle ADF
News Session, DOAG News Artikel

Co-Moderator Oracle ADF Community

Mitglied ADF Enterprise Methodology Group

Seit 2001 beschäftigen wir uns mit dem Thema
                                                 Ulrich
                                                 Gerkmann-Bartels
                                                 Senior Consulting Oracle Technologies
                                                 ugb@team-pb.de



05.04.2 © TEAM - Ihr Partner für                      4
Agenda

 Herausforderungen

       Business Logik in der Datenbank

       Schnittstelle zur Middleware

       Aufwandsabschätzung

       Organisation der Module

       Qualität




05.04.2011   © TEAM - Ihr Partner f ür IT   5
Vorgehensmodell - ReMip




         Quelle: Ackermann, E.: ReMip – Ein Referenz-Prozess der Software-Migration,
               Diplomarbeit, Universität Koblenz-Landau, Koblenz, 2005

05.04.2011   © TEAM - Ihr Partner f ür IT                                              6
ReMip – Legacy-Aufbereitung


 Altes              Sanierung
System             Aufbereitung



                      Saniertes              Reimple-
                       System               mentierung



                                              Reimpl.                                         Erweitertes
                                                                    Erweiterung
                                              System                                           System




    Vgl: Sneed H., u.a. : Softwaremigration in der Praxis in Zahlen, dpunkt.verlag, Heidelberg, 2010
05.04.2011   © TEAM - Ihr Partner f ür IT                                                                   7
Herausforderung: Business Logik in der
 Datenbank


    Wie kann ich meine Investition
   in PL/SQL Code für die Zukunft
              sichern ?




                                            Kann ich Forms- und ADF-Applikationen
                                               nebeneinander entwickeln und ?




05.04.2011   © TEAM - Ihr Partner f ür IT                                           8
05.04.2011   © TEAM - Ihr Partner f ür IT   9
ReMip: Legacy-Aufbereitung (Database)




                                             Herauslösen des   Modularisierung
             Entkopplung                         Identity      und Kapselung
                                            Managements (IM)




05.04.2011   © TEAM - Ihr Partner f ür IT                                        10
ReMip: Legacy-Aufbereitung (Database)

                                            Ausschlaggebend für die Wiederverwendbarkeit von
      Entkopplung                           Funktionalität, ist die Größe des Kontext und die
                                            Abhängigkeiten die erfüllt werden müssen, um diese
                                            Funktionalität verwenden zu können.

                                            Dies bedeutet:

                                            Sperren von Datensätzen über einen längeren Zeitraum
                                            Globale Variablen
                                            Verwendung von Database-Session
                                            Auflösen von nicht notwendigen Dependencies




05.04.2011   © TEAM - Ihr Partner f ür IT                                                        11
Ich kann die Connection nicht wechseln…

                                            Es gibt die Möglichkeit ADF Business
                                            Components im

                                            RELEASE_MODE: Reserved

                                            zu konfigurieren.

                                            Damit sichert das Framework dem
                                            Client immer die gleiche Application
                                            Module und Verbindung zu.



                                              Achtung ! Skaliert nicht wie eine
                                              Default - konfigurierte ADF Application.




05.04.2011   © TEAM - Ihr Partner f ür IT                                                12
ReMip: Legacy-Aufbereitung (Database)

   Herauslösen des                          Nutzung eines standardisierten IM System (LDAP)
       Identity                             ermöglicht eine Einbindung in bestehende Systeme,
   Managements (IM)                         mit der Erhöhung der Security. Grundlage für die
                                            Skalierung in der Middleware.

                                            Dies bedeutet:

                                            Funktionalität darf nicht abhängig von der
                                            Verbindung zum Client sein.




05.04.2011   © TEAM - Ihr Partner f ür IT                                                       13
Ich brauche den USER in der Datenbank (VPD) ..


                                                                  Select user from dual;
                                                 Database         meyer
             Meyer


                                                       Schema: APP_RW




             Smith
                                                  JDBC
                                              Connection Pool

              Olaf Heimburger's Blog: Using Oracle Proxy Authentication…
              http://blogs.oracle.com/olaf/2010/04/using_oracle_proxy_authenticat.html

05.04.2011     © TEAM - Ihr Partner f ür IT                                              14
Legacy-Aufbereitung (Database)

  Modularisierung und
                                            Es existiert eine Database Service Layer, die alle
     Kapselung                              Clients in welcher Technologie auch immer
                                            verwenden müssen.

                                            Dies bedeutet:

                                            Table API
                                            Module / Business Service Packages




05.04.2011   © TEAM - Ihr Partner f ür IT                                                        15
Tool: Gephi




     Google: Gephi
05.04.2011   © TEAM - Ihr Partner f ür IT   16
Best practices….

                                            Steven Feuerstein
                                            PL/SQL Evangelist,
                                            Quest Software




Doing SQL from PL/SQL: Best and Worst Practices An Oracle White Paper, September 2008

05.04.2011   © TEAM - Ihr Partner f ür IT                                           17
Not supported by (Oracle) JDBC !



                                mytable%Rowtype

                                PL/SQL Record

                                PL/SQL Boolean




05.04.2011   © TEAM - Ihr Partner f ür IT         18
Verwendung von Table API und ADF BC




         Type, Table API Package, View werden über Code Templates generiert !

         Zugiff auf den Oracle SQL Type erfolgt in Java mit oracle.sql.STRUCT, auf einer
         OracleConnection !


                                                                                           Demo
05.04.2011   © TEAM - Ihr Partner f ür IT                                                    19
Teile und Herrsche


                                            PKG_A     PKG_B
                    FRM
                   Client A
                                            PKG_C     PKG_D
                    FRM
                   Client B
                                            PKG_C




                   ADF                      MDL_PKG
                  Module A                     A

                   ADF                                MDL_PKG
                  Module B                               B



05.04.2011   © TEAM - Ihr Partner f ür IT                       20
Module / Business Service Packages




                                                       Lösungsansatz für:

                                                       Connection Pooling / Database Session Data
                                                       Zuweisung von Database Rollen
                                                       Trennung der Schichten / Plattform

             Vgl. Seite 161 - Völter M., u.a. :Modelgetriebene Softwareentwicklung, dpunkt.verlag, Heidelberg, 2007

05.04.2011       © TEAM - Ihr Partner f ür IT                                                                         21
Herausforderung: Schnittstelle zur Middleware



                                                  Wie kann ich den
                                            Anwendungsentwickler beim der
                                             Verwendung dieser Architektur
                                                   unterstützen ?




         Mache ich mir nicht mehr Arbeit
                als notwendig ?




05.04.2011   © TEAM - Ihr Partner f ür IT                                    22
05.04.2011   © TEAM - Ihr Partner f ür IT   23
Tool: Table API generieren

   Apache Ant (Buildskript)

   Apache Velocity / Texen (Template-/Generator-Engine)

   Custom Database Ant-Task (Bereitstellung der notwendigen
   Objekte im Template-Context)




Quelle: Gerkmann-Bartels U., Koop A.: Migration von Forms über APEX zu Oracle ADF, DOAG News 1 / 2010
    05.04.2011   © TEAM - Ihr Partner f ür IT                                                       24
Tool: TEAM JDeveloper Extension




05.04.2011   © TEAM - Ihr Partner f ür IT   25
Herausforderung: Aufwandsabschätzung


   Wie kann ich abschätzen, was
   eine Umstellung von Forms auf
       ADF für einen Aufwand
            bedeutet ?

                                            Welche Forms - Dialoge stellen die
                                             höchste Herausforderung da ?




05.04.2011   © TEAM - Ihr Partner f ür IT                                        26
ReMiP – Legacy-Analyse

 Konvertierung der Forms-Anwendungsdefinition in XML (Forms2XML)

 Laden der XML-Dateien in das APEX Metadata Schema

 Erstellen von Abfragen und Reporting zur Analyse mit PLSQL / SQL




    ZIEL:

    Extraktion der benötigten Informationen aus
    den Oracle Forms Dialogen in eine Meta –
    Ebene, die leicht abgefragt und
    wiederverwendet werden kann.

    -> Kenngrößen für die Aufwandsabschätzung

05.04.2011   © TEAM - Ihr Partner f ür IT                           27
Kenngrößen für die Aufwandsabschätzung




  UI Metric :=                 windows_count * 3 +
                               canvas_count*2 +
                               canvas_tab_count*2+
                               block_count+
                               block_item_count;
05.04.2011   © TEAM - Ihr Partner f ür IT            28
Abhängigkeiten zwischen Forms Objekten




05.04.2011   © TEAM - Ihr Partner f ür IT   29
Herausforderung: Organisation der Module



                                             Wie kann ich gemeinsam mit
                                            andern Entwicklern Module oder
                                             Libraries wiederverwenden ?




 Wie stelle ich das Forms MDI – Konzept
    mit einzelnen Forms-Modulen als
    Fenster in ADF bzw. im Web da ?



05.04.2011   © TEAM - Ihr Partner f ür IT                                    30
ADF Master Applikation




05.04.2011   © TEAM - Ihr Partner f ür IT   31
Master Application und ADF Library




                                            Module wird als
                                            ADF Library in der
                                            MasterApp verwendet.




Hinweis: Redeploy and Version ADF Shared Libraries on WLS
         http://andrejusb.blogspot.com/2010/07/redeploy-and-version-adf-shared.html
05.04.2011   © TEAM - Ihr Partner f ür IT                                             32
Herausforderung: Qualität


Wie können die Projektdateien wie
       Java Sourcecode,
  ADF Business Components –,
oder Java Server Faces – Dateien
        auditiert werden ?


                                            Wie stelle ich gerade bei Einführung einer
                                              neuen Technologie die Qualität und
                                             ein gemeinsames Verständnis sicher ?




05.04.2011   © TEAM - Ihr Partner f ür IT                                                33
05.04.2011   © TEAM - Ihr Partner f ür IT   34
Audit und CodeReview




Audit Profile JDeveloper                       RedSamuraiQT JDeveloper Extension




 Quelle:     Red Samurai Tool - JDeveloper 11g Extension to Validate ADF Code Quality
             http://andrejusb.blogspot.com/2010/03/red-samurai-tool-jdeveloper-11g.html


05.04.2011   © TEAM - Ihr Partner f ür IT                                                 35
Audit mit Checkstyle




     Verifizierung von XML-Metadateien wie ApplicationModule, ViewObject, Entity
     web.xml, *.jsf auf der Basis von XPath.

     Vorteile:
     Läuft außerhalb der JDeveloper und ist leicht integrierbar in Ant, Hudson,
     Maven oder Sonar.

     Audit-Regel basierend auf Xpath sind einfach konfigurierbar
05.04.2011   © TEAM - Ihr Partner f ür IT                                          36
Migration und Lernkurve




             Entscheidung

             Lernphase /
             Basisimplementierung
             Iterative Realisierung

             Auslieferung




                      ADF Workshops – ADF Mentoring

05.04.2011    © TEAM - Ihr Partner f ür IT            37
Agenda

 Herausforderungen

       Business Logik in der Datenbank

       Schnittstelle zur Middleware

       Aufwandsabschätzung

       Organisation der Module

       Qualität




05.04.2011   © TEAM - Ihr Partner f ür IT   38
Oracle ADF Community




                                TEAM Technology Blog: http://padora.blogspot.com/


01/28/10   © TEAM - Ihr Partner f ür IT                                             39   4
Haben Sie noch Fragen ?




05.04.2011   © TEAM - Ihr Partner f ür IT   40
Beratung Software Lösungen
                       TEAM Partner für Technologie

Vielen Dank für Ihre   und angewandte Methoden der
                       Informationsverarbeitung
                       GmbH


Aufmerksamkeit!        Hermann-Löns-Str. 88
                       33104 Paderborn

                       Fon +49 5254 8008-0
                       Fax +49 5254 8008-19

                       Mail team@team-pb.de
                       Web www.team-pb.de

Challenges in converting from Oracle Forms to Oracle ADF

  • 1.
    Herzlich willkommen SIG Development „Oracle Forms Modernisierung und Migration “ am 05.04.2011 in Frankfurt am Main
  • 2.
    Beratung Software Lösungen Herausforderungenbei der Umstellung von Oracle Forms nach Oracle ADF Ulrich Gerkmann-Bartels Senior Consultant Oracle Technologies ugb@team-pb.de
  • 3.
    TEAM - IhrPartner für IT Zahlen und Fakten  Gründung 1982  Unternehmensgruppe Materna 1.300 Mitarbeiter – 153 Mio. Euro Umsatz in 2009  Geschäftsführung Michael Baranowski - Heike Käferle  über 50 Mitarbeiter
  • 4.
    Zu meiner Person Beratung,Workshops, Projekte auf Basis der Oracle Fusion Middleware Software Engineering 2010, DOAG SIG, DOAG Konferenz, Oracle ADF News Session, DOAG News Artikel Co-Moderator Oracle ADF Community Mitglied ADF Enterprise Methodology Group Seit 2001 beschäftigen wir uns mit dem Thema Ulrich Gerkmann-Bartels Senior Consulting Oracle Technologies ugb@team-pb.de 05.04.2 © TEAM - Ihr Partner für 4
  • 5.
    Agenda Herausforderungen Business Logik in der Datenbank Schnittstelle zur Middleware Aufwandsabschätzung Organisation der Module Qualität 05.04.2011 © TEAM - Ihr Partner f ür IT 5
  • 6.
    Vorgehensmodell - ReMip Quelle: Ackermann, E.: ReMip – Ein Referenz-Prozess der Software-Migration, Diplomarbeit, Universität Koblenz-Landau, Koblenz, 2005 05.04.2011 © TEAM - Ihr Partner f ür IT 6
  • 7.
    ReMip – Legacy-Aufbereitung Altes Sanierung System Aufbereitung Saniertes Reimple- System mentierung Reimpl. Erweitertes Erweiterung System System Vgl: Sneed H., u.a. : Softwaremigration in der Praxis in Zahlen, dpunkt.verlag, Heidelberg, 2010 05.04.2011 © TEAM - Ihr Partner f ür IT 7
  • 8.
    Herausforderung: Business Logikin der Datenbank Wie kann ich meine Investition in PL/SQL Code für die Zukunft sichern ? Kann ich Forms- und ADF-Applikationen nebeneinander entwickeln und ? 05.04.2011 © TEAM - Ihr Partner f ür IT 8
  • 9.
    05.04.2011 © TEAM - Ihr Partner f ür IT 9
  • 10.
    ReMip: Legacy-Aufbereitung (Database) Herauslösen des Modularisierung Entkopplung Identity und Kapselung Managements (IM) 05.04.2011 © TEAM - Ihr Partner f ür IT 10
  • 11.
    ReMip: Legacy-Aufbereitung (Database) Ausschlaggebend für die Wiederverwendbarkeit von Entkopplung Funktionalität, ist die Größe des Kontext und die Abhängigkeiten die erfüllt werden müssen, um diese Funktionalität verwenden zu können. Dies bedeutet: Sperren von Datensätzen über einen längeren Zeitraum Globale Variablen Verwendung von Database-Session Auflösen von nicht notwendigen Dependencies 05.04.2011 © TEAM - Ihr Partner f ür IT 11
  • 12.
    Ich kann dieConnection nicht wechseln… Es gibt die Möglichkeit ADF Business Components im RELEASE_MODE: Reserved zu konfigurieren. Damit sichert das Framework dem Client immer die gleiche Application Module und Verbindung zu. Achtung ! Skaliert nicht wie eine Default - konfigurierte ADF Application. 05.04.2011 © TEAM - Ihr Partner f ür IT 12
  • 13.
    ReMip: Legacy-Aufbereitung (Database) Herauslösen des Nutzung eines standardisierten IM System (LDAP) Identity ermöglicht eine Einbindung in bestehende Systeme, Managements (IM) mit der Erhöhung der Security. Grundlage für die Skalierung in der Middleware. Dies bedeutet: Funktionalität darf nicht abhängig von der Verbindung zum Client sein. 05.04.2011 © TEAM - Ihr Partner f ür IT 13
  • 14.
    Ich brauche denUSER in der Datenbank (VPD) .. Select user from dual; Database meyer Meyer Schema: APP_RW Smith JDBC Connection Pool Olaf Heimburger's Blog: Using Oracle Proxy Authentication… http://blogs.oracle.com/olaf/2010/04/using_oracle_proxy_authenticat.html 05.04.2011 © TEAM - Ihr Partner f ür IT 14
  • 15.
    Legacy-Aufbereitung (Database) Modularisierung und Es existiert eine Database Service Layer, die alle Kapselung Clients in welcher Technologie auch immer verwenden müssen. Dies bedeutet: Table API Module / Business Service Packages 05.04.2011 © TEAM - Ihr Partner f ür IT 15
  • 16.
    Tool: Gephi Google: Gephi 05.04.2011 © TEAM - Ihr Partner f ür IT 16
  • 17.
    Best practices…. Steven Feuerstein PL/SQL Evangelist, Quest Software Doing SQL from PL/SQL: Best and Worst Practices An Oracle White Paper, September 2008 05.04.2011 © TEAM - Ihr Partner f ür IT 17
  • 18.
    Not supported by(Oracle) JDBC ! mytable%Rowtype PL/SQL Record PL/SQL Boolean 05.04.2011 © TEAM - Ihr Partner f ür IT 18
  • 19.
    Verwendung von TableAPI und ADF BC Type, Table API Package, View werden über Code Templates generiert ! Zugiff auf den Oracle SQL Type erfolgt in Java mit oracle.sql.STRUCT, auf einer OracleConnection ! Demo 05.04.2011 © TEAM - Ihr Partner f ür IT 19
  • 20.
    Teile und Herrsche PKG_A PKG_B FRM Client A PKG_C PKG_D FRM Client B PKG_C ADF MDL_PKG Module A A ADF MDL_PKG Module B B 05.04.2011 © TEAM - Ihr Partner f ür IT 20
  • 21.
    Module / BusinessService Packages Lösungsansatz für: Connection Pooling / Database Session Data Zuweisung von Database Rollen Trennung der Schichten / Plattform Vgl. Seite 161 - Völter M., u.a. :Modelgetriebene Softwareentwicklung, dpunkt.verlag, Heidelberg, 2007 05.04.2011 © TEAM - Ihr Partner f ür IT 21
  • 22.
    Herausforderung: Schnittstelle zurMiddleware Wie kann ich den Anwendungsentwickler beim der Verwendung dieser Architektur unterstützen ? Mache ich mir nicht mehr Arbeit als notwendig ? 05.04.2011 © TEAM - Ihr Partner f ür IT 22
  • 23.
    05.04.2011 © TEAM - Ihr Partner f ür IT 23
  • 24.
    Tool: Table APIgenerieren Apache Ant (Buildskript) Apache Velocity / Texen (Template-/Generator-Engine) Custom Database Ant-Task (Bereitstellung der notwendigen Objekte im Template-Context) Quelle: Gerkmann-Bartels U., Koop A.: Migration von Forms über APEX zu Oracle ADF, DOAG News 1 / 2010 05.04.2011 © TEAM - Ihr Partner f ür IT 24
  • 25.
    Tool: TEAM JDeveloperExtension 05.04.2011 © TEAM - Ihr Partner f ür IT 25
  • 26.
    Herausforderung: Aufwandsabschätzung Wie kann ich abschätzen, was eine Umstellung von Forms auf ADF für einen Aufwand bedeutet ? Welche Forms - Dialoge stellen die höchste Herausforderung da ? 05.04.2011 © TEAM - Ihr Partner f ür IT 26
  • 27.
    ReMiP – Legacy-Analyse Konvertierung der Forms-Anwendungsdefinition in XML (Forms2XML) Laden der XML-Dateien in das APEX Metadata Schema Erstellen von Abfragen und Reporting zur Analyse mit PLSQL / SQL ZIEL: Extraktion der benötigten Informationen aus den Oracle Forms Dialogen in eine Meta – Ebene, die leicht abgefragt und wiederverwendet werden kann. -> Kenngrößen für die Aufwandsabschätzung 05.04.2011 © TEAM - Ihr Partner f ür IT 27
  • 28.
    Kenngrößen für dieAufwandsabschätzung UI Metric := windows_count * 3 + canvas_count*2 + canvas_tab_count*2+ block_count+ block_item_count; 05.04.2011 © TEAM - Ihr Partner f ür IT 28
  • 29.
    Abhängigkeiten zwischen FormsObjekten 05.04.2011 © TEAM - Ihr Partner f ür IT 29
  • 30.
    Herausforderung: Organisation derModule Wie kann ich gemeinsam mit andern Entwicklern Module oder Libraries wiederverwenden ? Wie stelle ich das Forms MDI – Konzept mit einzelnen Forms-Modulen als Fenster in ADF bzw. im Web da ? 05.04.2011 © TEAM - Ihr Partner f ür IT 30
  • 31.
    ADF Master Applikation 05.04.2011 © TEAM - Ihr Partner f ür IT 31
  • 32.
    Master Application undADF Library Module wird als ADF Library in der MasterApp verwendet. Hinweis: Redeploy and Version ADF Shared Libraries on WLS http://andrejusb.blogspot.com/2010/07/redeploy-and-version-adf-shared.html 05.04.2011 © TEAM - Ihr Partner f ür IT 32
  • 33.
    Herausforderung: Qualität Wie könnendie Projektdateien wie Java Sourcecode, ADF Business Components –, oder Java Server Faces – Dateien auditiert werden ? Wie stelle ich gerade bei Einführung einer neuen Technologie die Qualität und ein gemeinsames Verständnis sicher ? 05.04.2011 © TEAM - Ihr Partner f ür IT 33
  • 34.
    05.04.2011 © TEAM - Ihr Partner f ür IT 34
  • 35.
    Audit und CodeReview AuditProfile JDeveloper RedSamuraiQT JDeveloper Extension Quelle: Red Samurai Tool - JDeveloper 11g Extension to Validate ADF Code Quality http://andrejusb.blogspot.com/2010/03/red-samurai-tool-jdeveloper-11g.html 05.04.2011 © TEAM - Ihr Partner f ür IT 35
  • 36.
    Audit mit Checkstyle Verifizierung von XML-Metadateien wie ApplicationModule, ViewObject, Entity web.xml, *.jsf auf der Basis von XPath. Vorteile: Läuft außerhalb der JDeveloper und ist leicht integrierbar in Ant, Hudson, Maven oder Sonar. Audit-Regel basierend auf Xpath sind einfach konfigurierbar 05.04.2011 © TEAM - Ihr Partner f ür IT 36
  • 37.
    Migration und Lernkurve Entscheidung Lernphase / Basisimplementierung Iterative Realisierung Auslieferung ADF Workshops – ADF Mentoring 05.04.2011 © TEAM - Ihr Partner f ür IT 37
  • 38.
    Agenda Herausforderungen Business Logik in der Datenbank Schnittstelle zur Middleware Aufwandsabschätzung Organisation der Module Qualität 05.04.2011 © TEAM - Ihr Partner f ür IT 38
  • 39.
    Oracle ADF Community TEAM Technology Blog: http://padora.blogspot.com/ 01/28/10 © TEAM - Ihr Partner f ür IT 39 4
  • 40.
    Haben Sie nochFragen ? 05.04.2011 © TEAM - Ihr Partner f ür IT 40
  • 41.
    Beratung Software Lösungen TEAM Partner für Technologie Vielen Dank für Ihre und angewandte Methoden der Informationsverarbeitung GmbH Aufmerksamkeit! Hermann-Löns-Str. 88 33104 Paderborn Fon +49 5254 8008-0 Fax +49 5254 8008-19 Mail team@team-pb.de Web www.team-pb.de