SlideShare una empresa de Scribd logo
1 de 33
Mehr als Dep und Emp


           Erfahrungen mit JDeveloper und
                    Oracle ADF
                         Ulrich Gerkmann-Bartels
                                         Berater
Zahlen und Fakten
 TEAM in Paderborn



                                                     Paderborn - Schloß Neuhaus    Gründung 1982




                     Geschäftsführung
                     Michael Baranowski - Heike Käferle


                                                           Firmenzentrale
DOAG 2006




                                                                                  Unternehmensgruppe
                                                                                  Materna
                                                                                  1.100 Mitarbeiter
                                                                                  120 Mio. Euro
                                                                                  Umsatz in 2004
                                    50 Mitarbeiter
                                                                                    Copyright TEAM, Paderborn Nov-06 Seite 2
Ein Minimum an Vorbereitung

            (1) Erstelle ein separates Projekt (fwk-ext) das alle
                Basisklassen des ADF BC – Framework als Unterklasse
                enthält
            (2) Verwende das Projekt als Library und konfiguriere diese
                Klassen als „Business Components: Base Classes“
DOAG 2006




                                                          Copyright TEAM, Paderborn Nov-06 Seite 3
ADF BC: Base Classes
DOAG 2006




  Hinweis: Sinnvolle Namenwahl kann so manche Missverständnisse verhindern !
            (java.lang.Number vs. oracle.jbo.domain.Number)


                                                        Copyright TEAM, Paderborn Nov-06 Seite 4
Was ist ein Applikation Modul ?

             A unit of work ?!?
             Denke in Services/Funktionen nicht in UI‘s
             Vereinige Business Objekte und Services zu einer AM*, die
             einen gemeinsamen Aufgabenkontext erfüllen
             Wie groß ist die gesamte Applikation ? (Baustein oder
             kleine Applikation)
             Die Anzahl der enthaltenen ViewObjekte in einem AM
             beeinflussen das Startverhalten einer Applikation
DOAG 2006




            AM* - Applikation Module

                                                          Copyright TEAM, Paderborn Nov-06 Seite 5
AM – Mittlere bis größere Applikationen

              Betrachte das AM immer als Modul, dass in eine
              bestehende Umgebung eingebunden wird
              Verwende ein RootService – AM, in das die eigentlichen AM
              ggfs. zu Laufzeit geladen werden können
              Die Verwendung einer definierten Hierarchie innerhalb der
              AM erleichtert das Auffinden von Services und VO*
              Verteile diese Module in eigene Projekte und importiere
              diese in die eigentliche Applikation
DOAG 2006




            service.findViewObject("RootService.Inventory.Locations");


            VO* - ViewObject

                                                         Copyright TEAM, Paderborn Nov-06 Seite 6
AM - RootService
DOAG 2006




                               Copyright TEAM, Paderborn Nov-06 Seite 7
AM - Ladeverhalten
DOAG 2006




                                 Copyright TEAM, Paderborn Nov-06 Seite 8
AM - Ladeverhalten
DOAG 2006




                                 Copyright TEAM, Paderborn Nov-06 Seite 9
AM – Schnittstelle zum UI / Binding

            Erfahrungen:

               Funktionalität wird als Service implementiert in der Business
               Schicht
                –   Testbarkeit unabhängig vom UI
                –   Saubere Trennung
                –   Man schreibt ja auch nicht PL/SQL-Code in den Forms-Trigger
                    oder ?


               Zu jedem Dialog gibt es eindeutig zugeordnete (Main-) VO
                –   Welcher Dialog benutzt noch mal dieses VO ?
DOAG 2006




                –   Warum hab ich jetzt in diesem Dialog nur noch 4 Datensätze ?




                                                            Copyright TEAM, Paderborn Nov-06 Seite 10
ADF BC: Wann machen wir einen Post..

            Gründe für einen Post:

                Trigger löst Aktionen innerhalb der Datenbank aus
                  –    Datenänderungen in anderen Tabellen, die im Model
                       verwendet werden


                Prüfung von Constraints in der Datenbank
                 (SWING: Frühzeitiges Feedback im UI zu erzwingen!)
DOAG 2006




                                                                      Copyright TEAM, Paderborn Nov-06 Seite 11
ADF BC: Wann machen wir einen Post..

            Wenn man schon einen postChanges machen muss, dann aber..:

                Commit bzw. Rollback unmittelbar folgen lassen


                WebApp: Commit oder Rollback muss vor Abschluss der
                Verarbeitung des Request erfolgen
                (Es ist nicht sichergestellt, das man den gleichen Connect wieder bekommt)




              Tip:      Wir verwenden den postChanges nur innerhalb unserer
DOAG 2006




                        Tests, um ein Commit zu simulieren



                                                                               Copyright TEAM, Paderborn Nov-06 Seite 12
Berechtigung auf Satzebene

            Aufgabe:   Suche in einer Organisationsstruktur nach Adressen,
                       Projektinformationen oder Dokumenten unter der
                       Berücksichtigung von Berechtigungen.
                       Zeige die gefunden Elemente in einer Baumstruktur an.
DOAG 2006




                                                          Copyright TEAM, Paderborn Nov-06 Seite 13
Berechtigung auf Satzebene

            Ansätze:

                Rollenbasierte Berechtigungen(ADF Security / JAAS-
                Provider) auf Satzebene
                  –    Wie vergebe ich das Recht einen privaten Kontakt nur für
                       bestimmte Benutzer zugänglich zu machen ?


                Verwendung von java.security.Permission, um so
                Funktionen bzw. Fundmengen zu autorisieren
                  –    Wie bekomme ich zum aktuelle Benutzer meine Permission
                       in das ViewObject ?
DOAG 2006




                                                             Copyright TEAM, Paderborn Nov-06 Seite 14
Berechtigung auf Satzebene

            Umsetzung:

                Rollenbasierte Berechtigungen wird nur verwendet, um
                einzelne Applikationsmodule (Benutzerpflege) zu
                autorisieren
             PODC
                Berechtigungen werden als PermissionToken in einer
                Datenbanktabelle gehalten
                Zugriff auf zu autorisierende Daten erfolgt nur wenn in der
                Datenbank Session ein entsprechender Benutzerkontext
                gesetzt ist (Ansatz: VPD oder Oracle Portal)
DOAG 2006




                Business Schicht erhält nur autorisierte Daten

            PODC – Plain Old Database Code ☺
                                                        Copyright TEAM, Paderborn Nov-06 Seite 15
Binding: Drag and Drop oder doch besser..

            Erfahrungen:

               Drag und Drop ganz schön und gut aber..
                –   Probleme beim Löschen, Umbenennen..
                –   Sobald man eigene Action bzw. MethodeAction mit
                    Parameter definiert, muss man editieren
                –   Sei Dir immer im klaren was in der PageDef steht
                –   Seit 10.1.3 nicht mehr schreibgeschützt, im Jdev ☺


               Migration von UI (UIX-Tags in JSP oder ADF UIX) waren
               nicht wirklich ein Gewinnbringer
DOAG 2006




               Verwende ein Try-Projekt im JDeveloper, um nicht
               erklärbare Erscheinungen ohne großes Umfeld nach zu
               prüfen

                                                          Copyright TEAM, Paderborn Nov-06 Seite 16
Binding: Drag and Drop oder doch besser..

            Was fehlt / Nice to have:

                 Include bzw. Vererbung von PageDefs
                 MethodeAction, die Methoden in einer BackingBean bzw.
                 POJO innerhalb eines ApplicationContext im UI aufrufen
                 können ☺
DOAG 2006




            POJO – Plain Old Java Object

                                                       Copyright TEAM, Paderborn Nov-06 Seite 17
JSF for nonbelievers

            Aufgabe:   Suche in einer Organisationsstruktur nach Adressen,
                       Projektinformationen oder Dokumenten unter der
                       Berücksichtigung von Berechtigungen.
                       Zeige die gefunden Elemente in einer Baumstruktur an.
DOAG 2006




                                                          Copyright TEAM, Paderborn Nov-06 Seite 18
JSF for nonbelievers

            Ansätze:

                ADF Tree mit entsprechenden VO
                ADF TreeTable mit entsprechenden VO


                Entwurf einer eigenen JSF Komponente


            Ergebnis:
            Verwendung der ADF Faces Komponenten mit Bindung an VO
            zeigte sich als nicht praktikabel.
DOAG 2006




            Entwurf einer eigenen JSF Komponente führte schnell zu einen
            erheblichen Mehraufwand, bei der benötigten Funktionalitäten.


                                                           Copyright TEAM, Paderborn Nov-06 Seite 19
JSF for nonbelievers

            Lösung:

                ADF TreeTable mit angepassten Model ohne direkte
                Bindung an ein VO ☺



            Ergebnis:
            Implementierung eines angepassten Models auf der Basis von
            ADF Faces.
            Hohe Flexibilität, da der Inhalt des Knoten selbst definiert wird.
            Layout des Baumes bzw. der Zeile kann wieder mit JSF
            Komponenten geschehen.
DOAG 2006




            Viele Funktionen des ADF TreeTable müssen nicht selber
            implementiert werden. (Decoding des Key, SelectMany,
            SelectOne)

                                                              Copyright TEAM, Paderborn Nov-06 Seite 20
ADF TreeTable
DOAG 2006




                            Copyright TEAM, Paderborn Nov-06 Seite 21
ADF TreeTable
DOAG 2006




                            Copyright TEAM, Paderborn Nov-06 Seite 22
ADF Faces Style
DOAG 2006




                              Copyright TEAM, Paderborn Nov-06 Seite 23
ADF Faces Style

            CSS Kenntnisse erforderlich !
            Geänderter Style wird im WYSIWYG mal angezeigt und ein
            anderes mal nicht !
            CSS Preview hilft nicht wirklich
            Problem mit „Body“ – Style konnten nur direkt in der JSPX
            gelöst werden
            Viele Möglichkeiten der Darstellung lassen sich durch das
            Stylesheet oder durch Inline-Style lösen aber nicht alles
DOAG 2006




                                                      Copyright TEAM, Paderborn Nov-06 Seite 24
ADF Faces Style

            <afh:head>
               :
               <style type="text/css">
                body {
                    background-image: url(<jsp:expression>request.getContextPath()</jsp:expression>/images/...);
                    background-repeat: repeat-x;
                    margin: 0px;
                    padding: 0px;
                }
                </style>
               :
              </afh:head>
DOAG 2006




                                                                                Copyright TEAM, Paderborn Nov-06 Seite 25
ADF Faces Style




       http://www.oracle.com/technology/products/jdev/htdocs/partners
                /addins/exchange/jsf/doc/skin-selectors.html
DOAG 2006




                                                   Copyright TEAM, Paderborn Nov-06 Seite 26
Umfeld: Version – CVS oder Subversion

            Viele haben in den letzten Jahren CVS eingesetzt und tun dies noch
            immer, warum zu Subversion wechseln.



              Es ist einfach einfacher !
              Löschen, Umbenennen bzw. Refactoring
              Es geht zwar nicht alles, man wird nicht immer noch vom
              Version-Tool so oft aufgehalten
DOAG 2006




             Zusätzliches Tool:


                                           http://www.tortoisesvn.org
                                                            Copyright TEAM, Paderborn Nov-06 Seite 27
Umfeld: Maven

            Maven ist vom Grundsatz ein Build-Tool, bietet aber einige
            wesentlichen Funktionen, die in einem Projektumfeld sehr
            hilfreich sind:


               Unternehmensweites Repository für Java-Libraries
               Erzeugen von JavaDoc, Checkstyle- und Dependency –
               Reports
               Unabhängige Testumgebung außerhalb des JDevelopers
               Generierung einer Projekt-Site
DOAG 2006




                                                           Copyright TEAM, Paderborn Nov-06 Seite 28
Umfeld: Maven

            Erfahrungen:

               Einführung benötigt Zeit
                –   Alle Libraries sollten ins JLib Repository
                –   Einmalige Erstellung der pom.xml für ADF BC
                –   Anpassung der Styles etc.


               Integration im JDeveloper über External Tools
               Maven setzt man nicht für ein Projekt ein, es sollte als
               grundsätzliches Element in der Entwicklungsumgebung
               eingeführt werden
DOAG 2006




                                                        Copyright TEAM, Paderborn Nov-06 Seite 29
Umfeld: Maven
DOAG 2006




                            Copyright TEAM, Paderborn Nov-06 Seite 30
Umfeld: Maven
DOAG 2006




                            Copyright TEAM, Paderborn Nov-06 Seite 31
HABEN SIE FRAGEN ?
              Hermann-Löns-Str. 88
                  33104 Paderborn

              Fon: 0 52 54 / 80 08-0
             Fax: 0 52 54 / 80 08-19
            eMail: team@team-pb.de
                     www.team-pb.de
Vielen Dank
    für Ihre
Aufmerksamkeit!
                    Hermann-Löns-Str. 88
                        33104 Paderborn

                    Fon: 0 52 54 / 80 08-0
                   Fax: 0 52 54 / 80 08-19
                  eMail: team@team-pb.de
                           www.team-pb.de

Más contenido relacionado

Destacado

Secondary - Wildfires - Preparedness
Secondary - Wildfires - PreparednessSecondary - Wildfires - Preparedness
Secondary - Wildfires - PreparednessNCC-CCT
 
Mens eyeglasses , prescription glasses
Mens eyeglasses , prescription glassesMens eyeglasses , prescription glasses
Mens eyeglasses , prescription glassesfinestglasses
 
Experiencias de la Cooperación Alemana para el Desarrollo-GIZ en cooperación ...
Experiencias de la Cooperación Alemana para el Desarrollo-GIZ en cooperación ...Experiencias de la Cooperación Alemana para el Desarrollo-GIZ en cooperación ...
Experiencias de la Cooperación Alemana para el Desarrollo-GIZ en cooperación ...FAO
 
3rd Prepaid Cards Conference
3rd Prepaid Cards Conference3rd Prepaid Cards Conference
3rd Prepaid Cards ConferenceNicole Waddell
 
Mapa mental de la empresa Eco Aguas
Mapa mental de la empresa Eco AguasMapa mental de la empresa Eco Aguas
Mapa mental de la empresa Eco AguasJuaco De Cami
 
Apariciones en prensa de los premios a "Hologramas por la libertad"
Apariciones en prensa de los premios a "Hologramas por la libertad"Apariciones en prensa de los premios a "Hologramas por la libertad"
Apariciones en prensa de los premios a "Hologramas por la libertad"QMS Comunicación
 
Julie Biron | Design Portfolio
Julie Biron |  Design PortfolioJulie Biron |  Design Portfolio
Julie Biron | Design PortfolioJulie Biron
 
Week 1 discussion 2 confidentiality
Week 1 discussion 2 confidentialityWeek 1 discussion 2 confidentiality
Week 1 discussion 2 confidentialityLucy Lacy
 
Tit@ educación digital para todos acompañamiento-Magola.
Tit@ educación digital para todos acompañamiento-Magola.Tit@ educación digital para todos acompañamiento-Magola.
Tit@ educación digital para todos acompañamiento-Magola.Sonia Cv
 
Obras de fachadas y cubiertas jacar montajes
Obras de fachadas y cubiertas jacar montajesObras de fachadas y cubiertas jacar montajes
Obras de fachadas y cubiertas jacar montajesJacarmontajes
 
E12 fs malmo pre programme-ok-gb
E12 fs malmo pre programme-ok-gbE12 fs malmo pre programme-ok-gb
E12 fs malmo pre programme-ok-gbIRIMOnParteHartu
 

Destacado (20)

Easy Contact Folder
Easy Contact FolderEasy Contact Folder
Easy Contact Folder
 
Secondary - Wildfires - Preparedness
Secondary - Wildfires - PreparednessSecondary - Wildfires - Preparedness
Secondary - Wildfires - Preparedness
 
Mens eyeglasses , prescription glasses
Mens eyeglasses , prescription glassesMens eyeglasses , prescription glasses
Mens eyeglasses , prescription glasses
 
Experiencias de la Cooperación Alemana para el Desarrollo-GIZ en cooperación ...
Experiencias de la Cooperación Alemana para el Desarrollo-GIZ en cooperación ...Experiencias de la Cooperación Alemana para el Desarrollo-GIZ en cooperación ...
Experiencias de la Cooperación Alemana para el Desarrollo-GIZ en cooperación ...
 
3rd Prepaid Cards Conference
3rd Prepaid Cards Conference3rd Prepaid Cards Conference
3rd Prepaid Cards Conference
 
Mapa mental de la empresa Eco Aguas
Mapa mental de la empresa Eco AguasMapa mental de la empresa Eco Aguas
Mapa mental de la empresa Eco Aguas
 
Librarse genea
Librarse geneaLibrarse genea
Librarse genea
 
Apariciones en prensa de los premios a "Hologramas por la libertad"
Apariciones en prensa de los premios a "Hologramas por la libertad"Apariciones en prensa de los premios a "Hologramas por la libertad"
Apariciones en prensa de los premios a "Hologramas por la libertad"
 
Que es el internet
Que es el internetQue es el internet
Que es el internet
 
2SeptTALON2008
2SeptTALON20082SeptTALON2008
2SeptTALON2008
 
Julie Biron | Design Portfolio
Julie Biron |  Design PortfolioJulie Biron |  Design Portfolio
Julie Biron | Design Portfolio
 
Los libros del verano
Los libros del veranoLos libros del verano
Los libros del verano
 
Week 1 discussion 2 confidentiality
Week 1 discussion 2 confidentialityWeek 1 discussion 2 confidentiality
Week 1 discussion 2 confidentiality
 
EGHI
EGHIEGHI
EGHI
 
Endulzarte
EndulzarteEndulzarte
Endulzarte
 
Tit@ educación digital para todos acompañamiento-Magola.
Tit@ educación digital para todos acompañamiento-Magola.Tit@ educación digital para todos acompañamiento-Magola.
Tit@ educación digital para todos acompañamiento-Magola.
 
Obras de fachadas y cubiertas jacar montajes
Obras de fachadas y cubiertas jacar montajesObras de fachadas y cubiertas jacar montajes
Obras de fachadas y cubiertas jacar montajes
 
E12 fs malmo pre programme-ok-gb
E12 fs malmo pre programme-ok-gbE12 fs malmo pre programme-ok-gb
E12 fs malmo pre programme-ok-gb
 
Taller # 2 Presentación de Conceptos
Taller # 2 Presentación de ConceptosTaller # 2 Presentación de Conceptos
Taller # 2 Presentación de Conceptos
 
2 organizaciones populares
2 organizaciones populares2 organizaciones populares
2 organizaciones populares
 

Similar a DOAG 2006: More than Dept and Emp mit JDeveloper and ADF

Cloud@Night: What’s new and hot in SharePoint 2016 & Office 365
Cloud@Night: What’s new and hot in SharePoint 2016 & Office 365Cloud@Night: What’s new and hot in SharePoint 2016 & Office 365
Cloud@Night: What’s new and hot in SharePoint 2016 & Office 365Digicomp Academy AG
 
Überblick Oracle Datenbank 12c
Überblick Oracle Datenbank 12cÜberblick Oracle Datenbank 12c
Überblick Oracle Datenbank 12cIleana Somesan
 
Integration of BI Publisher in ADF applications
Integration of BI Publisher in ADF applicationsIntegration of BI Publisher in ADF applications
Integration of BI Publisher in ADF applicationsAndreas Koop
 
Do´s and Dont´s mit Oracle RDS
Do´s and Dont´s mit Oracle RDS Do´s and Dont´s mit Oracle RDS
Do´s and Dont´s mit Oracle RDS esentri AG
 
Encapsulation, the requirement for software modernization?
Encapsulation, the requirement for software modernization?Encapsulation, the requirement for software modernization?
Encapsulation, the requirement for software modernization?Ulrich Gerkmann-Bartels
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...gedoplan
 
REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?
REST in Peace  - Mit ORDS, Node.JS, ADF, Java oder OSB?REST in Peace  - Mit ORDS, Node.JS, ADF, Java oder OSB?
REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?enpit GmbH & Co. KG
 
Anwendungsmodernisierung mit Oracle Application Express (APEX)
Anwendungsmodernisierung mit Oracle Application Express (APEX)Anwendungsmodernisierung mit Oracle Application Express (APEX)
Anwendungsmodernisierung mit Oracle Application Express (APEX)Niels de Bruijn
 
Oracle Open World 2009 Review V1.6
Oracle Open World 2009 Review V1.6Oracle Open World 2009 Review V1.6
Oracle Open World 2009 Review V1.6Torsten Winterberg
 
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAsKarin Patenge
 
DOAG Webinar Oracle und Docker
DOAG Webinar Oracle und DockerDOAG Webinar Oracle und Docker
DOAG Webinar Oracle und DockerStefan Oehrli
 
Oracle Database 12c Release 2
Oracle Database 12c Release 2 Oracle Database 12c Release 2
Oracle Database 12c Release 2 oraclebudb
 
Überblick zu Oracle Database 12c Release 2
Überblick zu Oracle Database 12c Release 2Überblick zu Oracle Database 12c Release 2
Überblick zu Oracle Database 12c Release 2Ulrike Schwinn
 
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im ÜberblickBig Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im ÜberblickKarin Patenge
 
Collaboration day 2016 panagenda
Collaboration day 2016   panagendaCollaboration day 2016   panagenda
Collaboration day 2016 panagendaBelsoft
 

Similar a DOAG 2006: More than Dept and Emp mit JDeveloper and ADF (20)

Cloud@Night: What’s new and hot in SharePoint 2016 & Office 365
Cloud@Night: What’s new and hot in SharePoint 2016 & Office 365Cloud@Night: What’s new and hot in SharePoint 2016 & Office 365
Cloud@Night: What’s new and hot in SharePoint 2016 & Office 365
 
Überblick Oracle Datenbank 12c
Überblick Oracle Datenbank 12cÜberblick Oracle Datenbank 12c
Überblick Oracle Datenbank 12c
 
SE 2010: how we do it
SE 2010: how we do itSE 2010: how we do it
SE 2010: how we do it
 
Integration of BI Publisher in ADF applications
Integration of BI Publisher in ADF applicationsIntegration of BI Publisher in ADF applications
Integration of BI Publisher in ADF applications
 
Gestern OWB, heute ODI
Gestern OWB, heute ODIGestern OWB, heute ODI
Gestern OWB, heute ODI
 
Do´s and Dont´s mit Oracle RDS
Do´s and Dont´s mit Oracle RDS Do´s and Dont´s mit Oracle RDS
Do´s and Dont´s mit Oracle RDS
 
ADF Software Factory
ADF Software FactoryADF Software Factory
ADF Software Factory
 
Encapsulation, the requirement for software modernization?
Encapsulation, the requirement for software modernization?Encapsulation, the requirement for software modernization?
Encapsulation, the requirement for software modernization?
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
 
Daos
DaosDaos
Daos
 
REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?
REST in Peace  - Mit ORDS, Node.JS, ADF, Java oder OSB?REST in Peace  - Mit ORDS, Node.JS, ADF, Java oder OSB?
REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?
 
2020 oracle lizenznews
2020 oracle lizenznews2020 oracle lizenznews
2020 oracle lizenznews
 
Anwendungsmodernisierung mit Oracle Application Express (APEX)
Anwendungsmodernisierung mit Oracle Application Express (APEX)Anwendungsmodernisierung mit Oracle Application Express (APEX)
Anwendungsmodernisierung mit Oracle Application Express (APEX)
 
Oracle Open World 2009 Review V1.6
Oracle Open World 2009 Review V1.6Oracle Open World 2009 Review V1.6
Oracle Open World 2009 Review V1.6
 
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
 
DOAG Webinar Oracle und Docker
DOAG Webinar Oracle und DockerDOAG Webinar Oracle und Docker
DOAG Webinar Oracle und Docker
 
Oracle Database 12c Release 2
Oracle Database 12c Release 2 Oracle Database 12c Release 2
Oracle Database 12c Release 2
 
Überblick zu Oracle Database 12c Release 2
Überblick zu Oracle Database 12c Release 2Überblick zu Oracle Database 12c Release 2
Überblick zu Oracle Database 12c Release 2
 
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im ÜberblickBig Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
 
Collaboration day 2016 panagenda
Collaboration day 2016   panagendaCollaboration day 2016   panagenda
Collaboration day 2016 panagenda
 

Más de Ulrich Gerkmann-Bartels

Visualisierung von fachlichen Informationen mit Oracle ADF
Visualisierung von fachlichen Informationen mit Oracle ADFVisualisierung von fachlichen Informationen mit Oracle ADF
Visualisierung von fachlichen Informationen mit Oracle ADFUlrich Gerkmann-Bartels
 
Choice-o-mat: Entscheidungshilfe für Oracle Entwicklungswerkzeuge
Choice-o-mat: Entscheidungshilfe für Oracle Entwicklungswerkzeuge Choice-o-mat: Entscheidungshilfe für Oracle Entwicklungswerkzeuge
Choice-o-mat: Entscheidungshilfe für Oracle Entwicklungswerkzeuge Ulrich Gerkmann-Bartels
 
German ADF News Session: JDev 11gR2 Extension
German ADF News Session: JDev 11gR2 Extension German ADF News Session: JDev 11gR2 Extension
German ADF News Session: JDev 11gR2 Extension Ulrich Gerkmann-Bartels
 
DOAG 2010: SOR - Service Oriented Reporting
DOAG 2010: SOR - Service Oriented ReportingDOAG 2010: SOR - Service Oriented Reporting
DOAG 2010: SOR - Service Oriented ReportingUlrich Gerkmann-Bartels
 

Más de Ulrich Gerkmann-Bartels (10)

Visualisierung von fachlichen Informationen mit Oracle ADF
Visualisierung von fachlichen Informationen mit Oracle ADFVisualisierung von fachlichen Informationen mit Oracle ADF
Visualisierung von fachlichen Informationen mit Oracle ADF
 
Choice-o-mat: Entscheidungshilfe für Oracle Entwicklungswerkzeuge
Choice-o-mat: Entscheidungshilfe für Oracle Entwicklungswerkzeuge Choice-o-mat: Entscheidungshilfe für Oracle Entwicklungswerkzeuge
Choice-o-mat: Entscheidungshilfe für Oracle Entwicklungswerkzeuge
 
Die 5 mythen-der-forms-modernisierung
Die 5 mythen-der-forms-modernisierungDie 5 mythen-der-forms-modernisierung
Die 5 mythen-der-forms-modernisierung
 
Was ist Docker ?
Was ist Docker ?Was ist Docker ?
Was ist Docker ?
 
RAP im Enterprise - Quo Vadis Portal ?
RAP im Enterprise - Quo Vadis Portal ?RAP im Enterprise - Quo Vadis Portal ?
RAP im Enterprise - Quo Vadis Portal ?
 
Continuous Delivery in ADF Projekten
Continuous Delivery in ADF ProjektenContinuous Delivery in ADF Projekten
Continuous Delivery in ADF Projekten
 
German ADF News Session: JDev 11gR2 Extension
German ADF News Session: JDev 11gR2 Extension German ADF News Session: JDev 11gR2 Extension
German ADF News Session: JDev 11gR2 Extension
 
DOAG 2010: SOR - Service Oriented Reporting
DOAG 2010: SOR - Service Oriented ReportingDOAG 2010: SOR - Service Oriented Reporting
DOAG 2010: SOR - Service Oriented Reporting
 
Application lifecycle in ADF Projects
Application lifecycle in ADF ProjectsApplication lifecycle in ADF Projects
Application lifecycle in ADF Projects
 
Input and Views about Oracle ADF
Input and Views about Oracle ADFInput and Views about Oracle ADF
Input and Views about Oracle ADF
 

DOAG 2006: More than Dept and Emp mit JDeveloper and ADF

  • 1. Mehr als Dep und Emp Erfahrungen mit JDeveloper und Oracle ADF Ulrich Gerkmann-Bartels Berater
  • 2. Zahlen und Fakten TEAM in Paderborn Paderborn - Schloß Neuhaus Gründung 1982 Geschäftsführung Michael Baranowski - Heike Käferle Firmenzentrale DOAG 2006 Unternehmensgruppe Materna 1.100 Mitarbeiter 120 Mio. Euro Umsatz in 2004 50 Mitarbeiter Copyright TEAM, Paderborn Nov-06 Seite 2
  • 3. Ein Minimum an Vorbereitung (1) Erstelle ein separates Projekt (fwk-ext) das alle Basisklassen des ADF BC – Framework als Unterklasse enthält (2) Verwende das Projekt als Library und konfiguriere diese Klassen als „Business Components: Base Classes“ DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 3
  • 4. ADF BC: Base Classes DOAG 2006 Hinweis: Sinnvolle Namenwahl kann so manche Missverständnisse verhindern ! (java.lang.Number vs. oracle.jbo.domain.Number) Copyright TEAM, Paderborn Nov-06 Seite 4
  • 5. Was ist ein Applikation Modul ? A unit of work ?!? Denke in Services/Funktionen nicht in UI‘s Vereinige Business Objekte und Services zu einer AM*, die einen gemeinsamen Aufgabenkontext erfüllen Wie groß ist die gesamte Applikation ? (Baustein oder kleine Applikation) Die Anzahl der enthaltenen ViewObjekte in einem AM beeinflussen das Startverhalten einer Applikation DOAG 2006 AM* - Applikation Module Copyright TEAM, Paderborn Nov-06 Seite 5
  • 6. AM – Mittlere bis größere Applikationen Betrachte das AM immer als Modul, dass in eine bestehende Umgebung eingebunden wird Verwende ein RootService – AM, in das die eigentlichen AM ggfs. zu Laufzeit geladen werden können Die Verwendung einer definierten Hierarchie innerhalb der AM erleichtert das Auffinden von Services und VO* Verteile diese Module in eigene Projekte und importiere diese in die eigentliche Applikation DOAG 2006 service.findViewObject("RootService.Inventory.Locations"); VO* - ViewObject Copyright TEAM, Paderborn Nov-06 Seite 6
  • 7. AM - RootService DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 7
  • 8. AM - Ladeverhalten DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 8
  • 9. AM - Ladeverhalten DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 9
  • 10. AM – Schnittstelle zum UI / Binding Erfahrungen: Funktionalität wird als Service implementiert in der Business Schicht – Testbarkeit unabhängig vom UI – Saubere Trennung – Man schreibt ja auch nicht PL/SQL-Code in den Forms-Trigger oder ? Zu jedem Dialog gibt es eindeutig zugeordnete (Main-) VO – Welcher Dialog benutzt noch mal dieses VO ? DOAG 2006 – Warum hab ich jetzt in diesem Dialog nur noch 4 Datensätze ? Copyright TEAM, Paderborn Nov-06 Seite 10
  • 11. ADF BC: Wann machen wir einen Post.. Gründe für einen Post: Trigger löst Aktionen innerhalb der Datenbank aus – Datenänderungen in anderen Tabellen, die im Model verwendet werden Prüfung von Constraints in der Datenbank (SWING: Frühzeitiges Feedback im UI zu erzwingen!) DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 11
  • 12. ADF BC: Wann machen wir einen Post.. Wenn man schon einen postChanges machen muss, dann aber..: Commit bzw. Rollback unmittelbar folgen lassen WebApp: Commit oder Rollback muss vor Abschluss der Verarbeitung des Request erfolgen (Es ist nicht sichergestellt, das man den gleichen Connect wieder bekommt) Tip: Wir verwenden den postChanges nur innerhalb unserer DOAG 2006 Tests, um ein Commit zu simulieren Copyright TEAM, Paderborn Nov-06 Seite 12
  • 13. Berechtigung auf Satzebene Aufgabe: Suche in einer Organisationsstruktur nach Adressen, Projektinformationen oder Dokumenten unter der Berücksichtigung von Berechtigungen. Zeige die gefunden Elemente in einer Baumstruktur an. DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 13
  • 14. Berechtigung auf Satzebene Ansätze: Rollenbasierte Berechtigungen(ADF Security / JAAS- Provider) auf Satzebene – Wie vergebe ich das Recht einen privaten Kontakt nur für bestimmte Benutzer zugänglich zu machen ? Verwendung von java.security.Permission, um so Funktionen bzw. Fundmengen zu autorisieren – Wie bekomme ich zum aktuelle Benutzer meine Permission in das ViewObject ? DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 14
  • 15. Berechtigung auf Satzebene Umsetzung: Rollenbasierte Berechtigungen wird nur verwendet, um einzelne Applikationsmodule (Benutzerpflege) zu autorisieren PODC Berechtigungen werden als PermissionToken in einer Datenbanktabelle gehalten Zugriff auf zu autorisierende Daten erfolgt nur wenn in der Datenbank Session ein entsprechender Benutzerkontext gesetzt ist (Ansatz: VPD oder Oracle Portal) DOAG 2006 Business Schicht erhält nur autorisierte Daten PODC – Plain Old Database Code ☺ Copyright TEAM, Paderborn Nov-06 Seite 15
  • 16. Binding: Drag and Drop oder doch besser.. Erfahrungen: Drag und Drop ganz schön und gut aber.. – Probleme beim Löschen, Umbenennen.. – Sobald man eigene Action bzw. MethodeAction mit Parameter definiert, muss man editieren – Sei Dir immer im klaren was in der PageDef steht – Seit 10.1.3 nicht mehr schreibgeschützt, im Jdev ☺ Migration von UI (UIX-Tags in JSP oder ADF UIX) waren nicht wirklich ein Gewinnbringer DOAG 2006 Verwende ein Try-Projekt im JDeveloper, um nicht erklärbare Erscheinungen ohne großes Umfeld nach zu prüfen Copyright TEAM, Paderborn Nov-06 Seite 16
  • 17. Binding: Drag and Drop oder doch besser.. Was fehlt / Nice to have: Include bzw. Vererbung von PageDefs MethodeAction, die Methoden in einer BackingBean bzw. POJO innerhalb eines ApplicationContext im UI aufrufen können ☺ DOAG 2006 POJO – Plain Old Java Object Copyright TEAM, Paderborn Nov-06 Seite 17
  • 18. JSF for nonbelievers Aufgabe: Suche in einer Organisationsstruktur nach Adressen, Projektinformationen oder Dokumenten unter der Berücksichtigung von Berechtigungen. Zeige die gefunden Elemente in einer Baumstruktur an. DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 18
  • 19. JSF for nonbelievers Ansätze: ADF Tree mit entsprechenden VO ADF TreeTable mit entsprechenden VO Entwurf einer eigenen JSF Komponente Ergebnis: Verwendung der ADF Faces Komponenten mit Bindung an VO zeigte sich als nicht praktikabel. DOAG 2006 Entwurf einer eigenen JSF Komponente führte schnell zu einen erheblichen Mehraufwand, bei der benötigten Funktionalitäten. Copyright TEAM, Paderborn Nov-06 Seite 19
  • 20. JSF for nonbelievers Lösung: ADF TreeTable mit angepassten Model ohne direkte Bindung an ein VO ☺ Ergebnis: Implementierung eines angepassten Models auf der Basis von ADF Faces. Hohe Flexibilität, da der Inhalt des Knoten selbst definiert wird. Layout des Baumes bzw. der Zeile kann wieder mit JSF Komponenten geschehen. DOAG 2006 Viele Funktionen des ADF TreeTable müssen nicht selber implementiert werden. (Decoding des Key, SelectMany, SelectOne) Copyright TEAM, Paderborn Nov-06 Seite 20
  • 21. ADF TreeTable DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 21
  • 22. ADF TreeTable DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 22
  • 23. ADF Faces Style DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 23
  • 24. ADF Faces Style CSS Kenntnisse erforderlich ! Geänderter Style wird im WYSIWYG mal angezeigt und ein anderes mal nicht ! CSS Preview hilft nicht wirklich Problem mit „Body“ – Style konnten nur direkt in der JSPX gelöst werden Viele Möglichkeiten der Darstellung lassen sich durch das Stylesheet oder durch Inline-Style lösen aber nicht alles DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 24
  • 25. ADF Faces Style <afh:head> : <style type="text/css"> body { background-image: url(<jsp:expression>request.getContextPath()</jsp:expression>/images/...); background-repeat: repeat-x; margin: 0px; padding: 0px; } </style> : </afh:head> DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 25
  • 26. ADF Faces Style http://www.oracle.com/technology/products/jdev/htdocs/partners /addins/exchange/jsf/doc/skin-selectors.html DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 26
  • 27. Umfeld: Version – CVS oder Subversion Viele haben in den letzten Jahren CVS eingesetzt und tun dies noch immer, warum zu Subversion wechseln. Es ist einfach einfacher ! Löschen, Umbenennen bzw. Refactoring Es geht zwar nicht alles, man wird nicht immer noch vom Version-Tool so oft aufgehalten DOAG 2006 Zusätzliches Tool: http://www.tortoisesvn.org Copyright TEAM, Paderborn Nov-06 Seite 27
  • 28. Umfeld: Maven Maven ist vom Grundsatz ein Build-Tool, bietet aber einige wesentlichen Funktionen, die in einem Projektumfeld sehr hilfreich sind: Unternehmensweites Repository für Java-Libraries Erzeugen von JavaDoc, Checkstyle- und Dependency – Reports Unabhängige Testumgebung außerhalb des JDevelopers Generierung einer Projekt-Site DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 28
  • 29. Umfeld: Maven Erfahrungen: Einführung benötigt Zeit – Alle Libraries sollten ins JLib Repository – Einmalige Erstellung der pom.xml für ADF BC – Anpassung der Styles etc. Integration im JDeveloper über External Tools Maven setzt man nicht für ein Projekt ein, es sollte als grundsätzliches Element in der Entwicklungsumgebung eingeführt werden DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 29
  • 30. Umfeld: Maven DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 30
  • 31. Umfeld: Maven DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 31
  • 32. HABEN SIE FRAGEN ? Hermann-Löns-Str. 88 33104 Paderborn Fon: 0 52 54 / 80 08-0 Fax: 0 52 54 / 80 08-19 eMail: team@team-pb.de www.team-pb.de
  • 33. Vielen Dank für Ihre Aufmerksamkeit! Hermann-Löns-Str. 88 33104 Paderborn Fon: 0 52 54 / 80 08-0 Fax: 0 52 54 / 80 08-19 eMail: team@team-pb.de www.team-pb.de