ADF SOFTWARE FACTORY
SOFTWARE AUS DER WERKSTATT

            Definition
   Elemente der Fertigungsstraße
             Ausblick
                              Ulrich Gerkmann-Bartels
                                        CEO & Consultant
                                       Oracle Technologies




DOAG 2012
Ulrich Gerkmann-Bartels
ÜBER MICH                                                         CEO & Consultant
                                                                 Oracle Technologies




Beratung, Training Oracle Technologie
ADF Certified Implementation Specialist


Community
DOAG, ADF EMG, ADF German Community, Twitter @Gerkmann-Bartels


Blog
Technical http://maybe-interesting.blogspot.com
Sonstiges http://www.enpit.de/blog



                                           2
ENTERPRISE PRAGMATIC IT




   Consulting                  Training                Development
 Oracle Fusion         Oracle                 Oracle        Oracle
  Middleware          WebCenter                ADF         WebLogic

Enable productive IT by Oracle Technologies
KÖNNEN WIR ES BESSER...
SOFTWARE AUS DER
WERKSTATT
‣        Industrialisierung der Softwareentwicklung

‣        Methodik und Werkzeugauswahl definieren den
         Fertigungsweg

‣        Komponenten basierte Wiederverwendung

‣        Entwicklung als ein „Montage“ - Prozess



Ulrich Gerkmann-Bartels         5
KOMPONENTEN
MONTAGE
AGENDA

Definition

Elemente einer Fertigungsstraße

Ausblick




Ulrich Gerkmann-Bartels    8
VIEWPOINT: FERTIGUNG

‣     Software Factories, J.Greenfield u.a.

‣     Oracle® Reference Architecture - Software Engineering
      IT Strategies from Oracle (ITSO)




Ulrich Gerkmann-Bartels                  9
SOFTWARE FACTORY
„..a software product line that configures extensive tools,
processes, and content using a software factory template
based on a software factory schema to automate the
development and maintenance of variants of an archetypical
product by adapting, assembling, and configuring framework-
based components.“[1]




1. Greenfield, Jack; Short, Keith; Cook, Steve; Kent, Stuart (2004). Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools. ISBN 0-471-20284-3

Ulrich Gerkmann-Bartels                                                              10
ORA - Asset-centric Engineering




                               ORA - Oracle Reference Architecture
Ulrich Gerkmann-Bartels   11
AGENDA

Definition

Elemente einer Fertigungsstrasse

Ausblick




Ulrich Gerkmann-Bartels    12
VORAUSSETZUNG
   ‣        Oracle ADF Architektur

   ‣        Modularisierung durch ADF Libraries

   ‣        Varianten durch Metadata Services und
            Customization Layer

   ‣        User Interaktion / Komponenten ist Use Case
            (prozessorientiert) geschnitten


Ulrich Gerkmann-Bartels              13
FOKUS: ADF SOFTWARE FACTORY




Ulrich Gerkmann-Bartels   14
Documentation

DOCUMENTATION
                                                               Patterns
                                                             Architecture
                                                         Reference Projects




   ‣        Design Guide, Style Guide and Development
            Guide

   ‣        Referenzlösungskatalog* (internal / external)

   ‣        Erfassen von neuen Aufgabenstellung mit
            Voting

   ‣        Suchfunktionalität


                                               *Vgl. ADF Code Corner F. Nimphius
Ulrich Gerkmann-Bartels            15
BEISPIELE
       UC01

       UC02
                    Task Flow(s)   JSF / JSFF   AM Module
        ModuleA


      ModuleB
       ModuleB                                     Use Case


Rahmenapplikation
                            16
TASK FLOW DESIGN
                                                     USE CASES
  FORM

         <<
               in

         <<
                    cu
                         de
                                  >>                    USE CASE
              in
                   cu
                        de
                             >>




                                            DIALOG




                                       17
USE CASE TASK FLOW




            18
DIALOG TASK FLOW




  FORM



            19
Source

SOURCE
                                                                     Custom Components
                                                                         Templates
                                                                       Code Snippets




‣        Custom Components
         Eingabe von Rufnummer mit Auswahllisten, Funktionsleisten



‣        Templates
         JSF Page Templates, Task Flow Templates



‣        ADF Skinning

‣        Code Snippet Library




Ulrich Gerkmann-Bartels                                  20
BEISPIEL: TASK FLOW TEMPLATES

               <<copy>>
                                           <<
                                              refe
                                                  re
                                                     nc
                                                       e>
                                                         >


edit-contact              dialog-crud-template




                                                          dialog-reference




                                                                   21
SOURCE ORGANISATION
‣   Jedes Modul ist eine eigene
    JDeveloper - Application /
    Workspace

‣   Die Kernapplikation besitzt eine
    eigenen JDeveloper - Applikation /
    Workspace

‣   Ein Modul kann ein oder mehrere
    Libraries in Form von ADF
    Libraries (JAR) oder WLS Shared
    Libraries (WAR) erzeugen

‣   Die Kernapplikation erstellt ein
    Enterprise Archive (EAR).
                                              JDeveloper Workspace einer Kernapplikation


                                         22
SOURCE ORGANISATION
‣       Je nach Ziel eines Workspace sind
        unterschiedliche JDeveloper
        Projekttypen beteiligt
‣       Kernapplikation
    ‣      Database, Model, View, UML,
           Lib, Env
‣       Module
    ‣      Database, Model, View
‣       Basisbibliotheken
    ‣      Model, View, Skin, ...



                                                 JDeveloper Workspace von Basisbibliotheken


                                            23
SOURCE ORGANISATION




            24
Tools

TOOLS                                                                 Code Generator
                                                                     Working Tool Chain




                                                        Werkzeug

                                     Visual Version, JDeveloper, ArgoUML, Innovater,
                 Design / UML
                                                Case Tool X, Oracle Designer

                     Java IDE                  JDeveloper, Eclipse mit OEPE

                                       JDeveloper, SQL Developer, Toad, PLSQL
                    Database
                                                Deveeloper, SQL+

                          SCM                        Subversion, Git

              Build / Job Engine                 Hudson, Jenkins, TeamCity

               DPL
                                                        Ant, Maven
   Development Process Language :)

Ulrich Gerkmann-Bartels                   25
Tools

TOOLS                                                           Code Generator
                                                               Working Tool Chain




                                                  Werkzeug

     Template und Code Generator          Velocity, Eclipse Modeling


    Track / Voting / Documentation         Redmine, Jira, Bugzilla




             Die einzelnen Tools sind nicht ausreichend !




Ulrich Gerkmann-Bartels              26
Tools

WORKING TOOL CHAIN                                   Code Generator
                                                    Working Tool Chain




   ‣        Organisatorische Struktur wird nur eingehalten,
            wenn Sie gegeben wird

   ‣        Übergang zwischen den Werkzeugen benötigt
            Schnittstellen (DPN: Ant!)

   ‣        Generierung von Templates oder
            Verzeichnisstrukturen benötigt
            Kontextinformationen


Ulrich Gerkmann-Bartels           27
Tools

WORKING TOOL CHAIN                                        Code Generator
                                                         Working Tool Chain




‣        Integriere in ein Tool nur wirklich wichtige
         Funktionalität

‣        Erster Ansatz DPN*

‣        Generiere Teile (Code, XML, Scripte, Env) aber keine
         eierlegende Wollmichsau designed mit Bildchen und
         Pfeilen ;)


                                                * Development Process Language

Ulrich Gerkmann-Bartels            28
Tools

JDEV - EXTENSION                                         Code Generator
                                                        Working Tool Chain




‣        Generieren von Module(Projekten) mit
         Verzeichnistruktur, Templates und Libraries.

‣        Generien von Manifest oder ADFLib.properties

‣        Verifizierte Code Snippet Library Extension :)

‣        Integration eigener Search Source in der JDeveloper
         - Suche
                                                 Would be nice !
                                               * Development Process Language

Ulrich Gerkmann-Bartels           29
Tools

JDEV - EXTENSION                Code Generator
                               Working Tool Chain




Ulrich Gerkmann-Bartels   30
ADF SOFTWARE FACTORY




Ulrich Gerkmann-Bartels   31
ASSET REPOSITORY
                                                                      Supplier            Build Process
‣        Artefakte
         EAR, WAR, WLS SHARED LIB, JAR, JDEV EXTENSION, DATABASE-BUNDLE



‣        Meta - Informationen                                               Asset Repository
                                                                                  Store

‣        Referenzen

‣        Input: Supplier oder Build Prozess




Ulrich Gerkmann-Bartels                               32
Asset Repository

MEHR ALS SCM                         Store




Ulrich Gerkmann-Bartels   33
ASSET REPOSITORY
                                       Supplier            Build Process
   ‣        Subversion + Custom
            Solution
                                             Asset Repository
   ‣        Maven + Custom                         Store
            Solution

   ‣        Oracle Enterprise
            Repository ?!



Ulrich Gerkmann-Bartels           34
Assembly

ASSEMBLY                                                     Asset
                                                            Browser




                          ‣   Resource Palette ist nicht
                              ausreichend

                          ‣   Dependency werden als eine JDev
                              ADF Library Definition eingebunden

                          ‣   Keine Berücksichtigung von anderen
                              Dependency (Database, WS)

                          ‣   Tool: Custom...Manuel ... No Solution



Ulrich Gerkmann-Bartels           35
QA
   ‣        Akzeptanztest von Use Cases
                                                                   Asset Repository
   ‣        Vorausetzung:
                                                                          Store

        ‣        Ausführung von einzelnen Task Flows

        ‣        User Interaktion ist innerhalb eines Task Flows
                 gekapselt.
                                                                          QA
   ‣        Tool: ADF EMG Task Flow Tester                           Generic Runtime




Ulrich Gerkmann-Bartels                          36
QA - ADF EMG TASK FLOW TESTER




                  JDeveloper Extension: ADF EMG (S. Davelaar, Oracle FMW Architecture Team (A-Team)

Ulrich Gerkmann-Bartels                                  37
DEPLOYMENT AND DELIVERY
‣        Deployment Cockpit                            Asset Repository
                                                             Store
‣        Asset Repository +
         Configuration Management ->
         Laufzeitumgebung                                Deployment
                                                         and Delivery
‣        Status of Delivery                            Deployment Cockpit
                                                          Configuration
                                                          Management

‣        Tool: Custom Solution
         Generierte ENV-Scripte, WLST, SQL+PLUS
                                                        Update Server


Ulrich Gerkmann-Bartels                           38
ADF SOFTWARE FACTORY




Ulrich Gerkmann-Bartels   39
AGENDA

Definition

Elemente einer Fertigungsstraße

Ausblick




Ulrich Gerkmann-Bartels    40
SOFTWARE FACTORY




Web Client Software Factory, http://visualstudiogallery.msdn.microsoft.com/8fc2c9d6-5282-404b-9c58-e72b326b1e26, abgerufen am 13.09.2012


 Ulrich Gerkmann-Bartels                                         41
WIE VIELE VARIANTEN HAT DENN
IHRE PRODUKTLINIE ?
HINDERNISSE BEACHTEN
   ‣        Organisatorische Herausforderung

   ‣        IT Silos überwinden

   ‣        Must have: A-TEAM

   ‣        No All-In-One-Solution

   ‣        Nicht über das Ziel hinausschießen



Ulrich Gerkmann-Bartels              43
FIRST STEPS
   ‣        Werkzeugkasten definieren

   ‣        Prototyp der Fertigungsstraße
                     BaseFramework, Templates and Referenzproject
                     Continuous Integration
                     Assets Repository*
                     Automatic Deployment


   ‣        Schnittstellen in der Werkzeugkette schließen

                                                                    * Dependency Management

Ulrich Gerkmann-Bartels                          44
CROSS-FUNCTION ASSETS
   ‣        Getting started

   ‣        Bundle von
            Backend Services
            mit User Interface

   ‣        Wiederverwendbar
            in vielen Projekten



Ulrich Gerkmann-Bartels           45
CROSS-FUNCTION ASSETS
   ‣        Account
            Management

   ‣        Schlüsselverzeichnis

   ‣        Modul /
            Menusteuerung

   ‣        Auditing


Ulrich Gerkmann-Bartels            46
WEITERE INFORMATIONEN
‣       Software Factories
        J. Greenfield, K. Short, S. Cook, S. Kent; Wiley Publishing Inc., Indianapolis, Indiana, 2004


‣       Oracle® Reference Architecture - Software
        Engineering
        IT Strategies from Oracle (ITSO)


‣       OTN: ADF Architecture Square

‣       ADF EMG


Andreas Koop                                             47
VIELEN DANK FÜR IHRE
   AUFMERKSAMKEIT



HABEN SIE NOCH FRAGEN?
ADF Software Factory

ADF Software Factory

  • 1.
    ADF SOFTWARE FACTORY SOFTWAREAUS DER WERKSTATT Definition Elemente der Fertigungsstraße Ausblick Ulrich Gerkmann-Bartels CEO & Consultant Oracle Technologies DOAG 2012
  • 2.
    Ulrich Gerkmann-Bartels ÜBER MICH CEO & Consultant Oracle Technologies Beratung, Training Oracle Technologie ADF Certified Implementation Specialist Community DOAG, ADF EMG, ADF German Community, Twitter @Gerkmann-Bartels Blog Technical http://maybe-interesting.blogspot.com Sonstiges http://www.enpit.de/blog 2
  • 3.
    ENTERPRISE PRAGMATIC IT Consulting Training Development Oracle Fusion Oracle Oracle Oracle Middleware WebCenter ADF WebLogic Enable productive IT by Oracle Technologies
  • 4.
    KÖNNEN WIR ESBESSER...
  • 5.
    SOFTWARE AUS DER WERKSTATT ‣ Industrialisierung der Softwareentwicklung ‣ Methodik und Werkzeugauswahl definieren den Fertigungsweg ‣ Komponenten basierte Wiederverwendung ‣ Entwicklung als ein „Montage“ - Prozess Ulrich Gerkmann-Bartels 5
  • 6.
  • 7.
  • 8.
  • 9.
    VIEWPOINT: FERTIGUNG ‣ Software Factories, J.Greenfield u.a. ‣ Oracle® Reference Architecture - Software Engineering IT Strategies from Oracle (ITSO) Ulrich Gerkmann-Bartels 9
  • 10.
    SOFTWARE FACTORY „..a softwareproduct line that configures extensive tools, processes, and content using a software factory template based on a software factory schema to automate the development and maintenance of variants of an archetypical product by adapting, assembling, and configuring framework- based components.“[1] 1. Greenfield, Jack; Short, Keith; Cook, Steve; Kent, Stuart (2004). Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools. ISBN 0-471-20284-3 Ulrich Gerkmann-Bartels 10
  • 11.
    ORA - Asset-centricEngineering ORA - Oracle Reference Architecture Ulrich Gerkmann-Bartels 11
  • 12.
  • 13.
    VORAUSSETZUNG ‣ Oracle ADF Architektur ‣ Modularisierung durch ADF Libraries ‣ Varianten durch Metadata Services und Customization Layer ‣ User Interaktion / Komponenten ist Use Case (prozessorientiert) geschnitten Ulrich Gerkmann-Bartels 13
  • 14.
    FOKUS: ADF SOFTWAREFACTORY Ulrich Gerkmann-Bartels 14
  • 15.
    Documentation DOCUMENTATION Patterns Architecture Reference Projects ‣ Design Guide, Style Guide and Development Guide ‣ Referenzlösungskatalog* (internal / external) ‣ Erfassen von neuen Aufgabenstellung mit Voting ‣ Suchfunktionalität *Vgl. ADF Code Corner F. Nimphius Ulrich Gerkmann-Bartels 15
  • 16.
    BEISPIELE UC01 UC02 Task Flow(s) JSF / JSFF AM Module ModuleA ModuleB ModuleB Use Case Rahmenapplikation 16
  • 17.
    TASK FLOW DESIGN USE CASES FORM << in << cu de >> USE CASE in cu de >> DIALOG 17
  • 18.
  • 19.
  • 20.
    Source SOURCE Custom Components Templates Code Snippets ‣ Custom Components Eingabe von Rufnummer mit Auswahllisten, Funktionsleisten ‣ Templates JSF Page Templates, Task Flow Templates ‣ ADF Skinning ‣ Code Snippet Library Ulrich Gerkmann-Bartels 20
  • 21.
    BEISPIEL: TASK FLOWTEMPLATES <<copy>> << refe re nc e> > edit-contact dialog-crud-template dialog-reference 21
  • 22.
    SOURCE ORGANISATION ‣ Jedes Modul ist eine eigene JDeveloper - Application / Workspace ‣ Die Kernapplikation besitzt eine eigenen JDeveloper - Applikation / Workspace ‣ Ein Modul kann ein oder mehrere Libraries in Form von ADF Libraries (JAR) oder WLS Shared Libraries (WAR) erzeugen ‣ Die Kernapplikation erstellt ein Enterprise Archive (EAR). JDeveloper Workspace einer Kernapplikation 22
  • 23.
    SOURCE ORGANISATION ‣ Je nach Ziel eines Workspace sind unterschiedliche JDeveloper Projekttypen beteiligt ‣ Kernapplikation ‣ Database, Model, View, UML, Lib, Env ‣ Module ‣ Database, Model, View ‣ Basisbibliotheken ‣ Model, View, Skin, ... JDeveloper Workspace von Basisbibliotheken 23
  • 24.
  • 25.
    Tools TOOLS Code Generator Working Tool Chain Werkzeug Visual Version, JDeveloper, ArgoUML, Innovater, Design / UML Case Tool X, Oracle Designer Java IDE JDeveloper, Eclipse mit OEPE JDeveloper, SQL Developer, Toad, PLSQL Database Deveeloper, SQL+ SCM Subversion, Git Build / Job Engine Hudson, Jenkins, TeamCity DPL Ant, Maven Development Process Language :) Ulrich Gerkmann-Bartels 25
  • 26.
    Tools TOOLS Code Generator Working Tool Chain Werkzeug Template und Code Generator Velocity, Eclipse Modeling Track / Voting / Documentation Redmine, Jira, Bugzilla Die einzelnen Tools sind nicht ausreichend ! Ulrich Gerkmann-Bartels 26
  • 27.
    Tools WORKING TOOL CHAIN Code Generator Working Tool Chain ‣ Organisatorische Struktur wird nur eingehalten, wenn Sie gegeben wird ‣ Übergang zwischen den Werkzeugen benötigt Schnittstellen (DPN: Ant!) ‣ Generierung von Templates oder Verzeichnisstrukturen benötigt Kontextinformationen Ulrich Gerkmann-Bartels 27
  • 28.
    Tools WORKING TOOL CHAIN Code Generator Working Tool Chain ‣ Integriere in ein Tool nur wirklich wichtige Funktionalität ‣ Erster Ansatz DPN* ‣ Generiere Teile (Code, XML, Scripte, Env) aber keine eierlegende Wollmichsau designed mit Bildchen und Pfeilen ;) * Development Process Language Ulrich Gerkmann-Bartels 28
  • 29.
    Tools JDEV - EXTENSION Code Generator Working Tool Chain ‣ Generieren von Module(Projekten) mit Verzeichnistruktur, Templates und Libraries. ‣ Generien von Manifest oder ADFLib.properties ‣ Verifizierte Code Snippet Library Extension :) ‣ Integration eigener Search Source in der JDeveloper - Suche Would be nice ! * Development Process Language Ulrich Gerkmann-Bartels 29
  • 30.
    Tools JDEV - EXTENSION Code Generator Working Tool Chain Ulrich Gerkmann-Bartels 30
  • 31.
    ADF SOFTWARE FACTORY UlrichGerkmann-Bartels 31
  • 32.
    ASSET REPOSITORY Supplier Build Process ‣ Artefakte EAR, WAR, WLS SHARED LIB, JAR, JDEV EXTENSION, DATABASE-BUNDLE ‣ Meta - Informationen Asset Repository Store ‣ Referenzen ‣ Input: Supplier oder Build Prozess Ulrich Gerkmann-Bartels 32
  • 33.
    Asset Repository MEHR ALSSCM Store Ulrich Gerkmann-Bartels 33
  • 34.
    ASSET REPOSITORY Supplier Build Process ‣ Subversion + Custom Solution Asset Repository ‣ Maven + Custom Store Solution ‣ Oracle Enterprise Repository ?! Ulrich Gerkmann-Bartels 34
  • 35.
    Assembly ASSEMBLY Asset Browser ‣ Resource Palette ist nicht ausreichend ‣ Dependency werden als eine JDev ADF Library Definition eingebunden ‣ Keine Berücksichtigung von anderen Dependency (Database, WS) ‣ Tool: Custom...Manuel ... No Solution Ulrich Gerkmann-Bartels 35
  • 36.
    QA ‣ Akzeptanztest von Use Cases Asset Repository ‣ Vorausetzung: Store ‣ Ausführung von einzelnen Task Flows ‣ User Interaktion ist innerhalb eines Task Flows gekapselt. QA ‣ Tool: ADF EMG Task Flow Tester Generic Runtime Ulrich Gerkmann-Bartels 36
  • 37.
    QA - ADFEMG TASK FLOW TESTER JDeveloper Extension: ADF EMG (S. Davelaar, Oracle FMW Architecture Team (A-Team) Ulrich Gerkmann-Bartels 37
  • 38.
    DEPLOYMENT AND DELIVERY ‣ Deployment Cockpit Asset Repository Store ‣ Asset Repository + Configuration Management -> Laufzeitumgebung Deployment and Delivery ‣ Status of Delivery Deployment Cockpit Configuration Management ‣ Tool: Custom Solution Generierte ENV-Scripte, WLST, SQL+PLUS Update Server Ulrich Gerkmann-Bartels 38
  • 39.
    ADF SOFTWARE FACTORY UlrichGerkmann-Bartels 39
  • 40.
  • 41.
    SOFTWARE FACTORY Web ClientSoftware Factory, http://visualstudiogallery.msdn.microsoft.com/8fc2c9d6-5282-404b-9c58-e72b326b1e26, abgerufen am 13.09.2012 Ulrich Gerkmann-Bartels 41
  • 42.
    WIE VIELE VARIANTENHAT DENN IHRE PRODUKTLINIE ?
  • 43.
    HINDERNISSE BEACHTEN ‣ Organisatorische Herausforderung ‣ IT Silos überwinden ‣ Must have: A-TEAM ‣ No All-In-One-Solution ‣ Nicht über das Ziel hinausschießen Ulrich Gerkmann-Bartels 43
  • 44.
    FIRST STEPS ‣ Werkzeugkasten definieren ‣ Prototyp der Fertigungsstraße BaseFramework, Templates and Referenzproject Continuous Integration Assets Repository* Automatic Deployment ‣ Schnittstellen in der Werkzeugkette schließen * Dependency Management Ulrich Gerkmann-Bartels 44
  • 45.
    CROSS-FUNCTION ASSETS ‣ Getting started ‣ Bundle von Backend Services mit User Interface ‣ Wiederverwendbar in vielen Projekten Ulrich Gerkmann-Bartels 45
  • 46.
    CROSS-FUNCTION ASSETS ‣ Account Management ‣ Schlüsselverzeichnis ‣ Modul / Menusteuerung ‣ Auditing Ulrich Gerkmann-Bartels 46
  • 47.
    WEITERE INFORMATIONEN ‣ Software Factories J. Greenfield, K. Short, S. Cook, S. Kent; Wiley Publishing Inc., Indianapolis, Indiana, 2004 ‣ Oracle® Reference Architecture - Software Engineering IT Strategies from Oracle (ITSO) ‣ OTN: ADF Architecture Square ‣ ADF EMG Andreas Koop 47
  • 48.
    VIELEN DANK FÜRIHRE AUFMERKSAMKEIT HABEN SIE NOCH FRAGEN?