Q&A




i4GL et le Cloud
Bryn Jenkins



UGIF
IBM France, Bois Colombes
Octobre 3, 2012
                            Page | 1
Genero – un travail en équipe




                                Page | 2
Genero – l’héritier naturel
Profiter de votre éxpérience, protèger votre investissement




                                                              Page | 3
Une clientèle prestigieuse
Large présence dans les industries clés
      Média        Finance        Distrib.   Gouvt.   Energie   Concessions Prod.




                                                                               Page | 5
En France
Large présence dans les industries clés




                                          Page | 6
Pourquoi moderniser pour le Cloud?
  Adaptez -vous rapidement au changement



                             Institute of Social Security Services for Civil Servants
                                                      Serving 10 million Mexican civil servants health needs
     www.issste.gob.mx
                                                             700 applications, 5-10,000 concurrent users

                                                       Observed productivity using CMM* Level 5

                                            Language                        Productivity LOC/hr                          Error Rate

                                                                                         11,98                            3,03 %

                                                                                           6,72                           12,15 %

                                                                                           5,68                           18,73 %

                                                                                           5,14                           26,59 %

                                      (LOC/Hr - Lines of code per hour)

* Carnegie Mellon University - Capability Maturity Model – Guidelines fo Improving the Software Process   www.sei.cmu.edu/cmm




                                                                                                                                      Page | 7
Genero - une architecture faite pour le Cloud
‘Server centric’ et ‘thin-client’


      Avec https
                                                                       Serveur de base de données



                                                         Serveur d’applications

 Genero
 Desktop
  Client                                    Pare feu




                                    Serveur Web         GAS


 Genero
  Web                                             GAS
 Client




                                                                                             Page | 8
Modernisez
En quelques jours/semaines




                             Page | 9
Modernisez
En quelques semaines/mois




                            Page | 10
Modernisez
En quelques semaines/mois




                            Page | 11
Modernisez
Vers un client universel




                           Page | 12
Modernisez
En quelques mois




                   Page | 13
Modernisez
En quelques mois




                   Page | 14
Your Ticket to the Cloud
Definitions – what Cloud is not

    Cloud is not just hosting




                                  Page | 15
Un grand saut en avant dans le Cloud…
i4GL et le Cloud




             Habituellement, chaque éditeur de logiciel
             avance par petites touches pour rester en
             tête de la competition. Afin de nous
             demarquer et avec pour but de faire un
             grand saut en avant, nous avons choisi
             Genero pour nous positionner dans le Cloud.

                        John Driscoll,
                        PdG,
                        Bodyshop Management Systems.




                                                           Page | 16
La stratégie de l’Europe
”Stimulez le potential du Cloud en Europe”

   Le Vice-President européen (Digital Agenda) Neelie Kroes:


             Le Cloud computing change la donne
             pour notre économie…
             … afin d’arriver à la masse critique,
             les lois doivent être unifiées en
             Europe. En premier lieu, il est
             important de changer les idées reçues
             sur les risques liés au Cloud
             computing.


                                                               Page | 17
La stratégie de l’Europe
”Stimulez le potential du Cloud en Europe”

   Les problèmes clés
     • Les lois nationales fragmentent le marché unique
     • La jungle des standards
     • Des problèmes contractuels freinent l’adoption du Cloud
          • Résponsabilité des interruptions de service, indisponibilité, perte de données…
          • Proprieté des données


   Les solutions
     • Un ‘label de confiance’ Européen pour les fournisseurs de
       services Cloud
     • Definir des standards pour l’interoperabilité, portabilité (2013)
     • Des termes contractuels sécurisants et ‘fair-play’ pour les SLAs




                                                                                         Page | 18
La stratégie de l’Europe
”Stimulez le potential du Cloud en Europe”

   Le Vice-President européen Neelie Kroes:


             Devant faire partie de la stratégie
             européenne, les gouvernements et les
             industriels devraient investir 45 milliards
             d’euros dans le Cloud computing jusqu’à
             l’horizon 2020, afin de génerer 900 milliards
             d’euros de PIB et 3,8 millions d’emplois à la
             fin de la décade.



                                                             Page | 19
Votre passeport pour le Cloud
Definitions – ce qui n’est pas du Cloud

   Cloud n’est pas simplement l’hébergement




                                              Page | 20
Votre passeport pour le Cloud
Definitions – ce qui n’est pas du Cloud

   Le Cloud c’est
   l’hébergement plus:
     • La virtualisation
     • L’élasticité
     • Le ‘self-service’
     • La facturation en
       temps-réel des
       services




                                          Page | 21
Votre passeport pour le Cloud
Les défis

    Une tarification simple et prédictable
    Gestion des utilisateurs
    Disponibilité
    Gestion de la base de données
    La sécurité




                                             Page | 22
Le Cloud vu par les grands
Microsoft Azure, SkyDrive SLA

   La sécurité de vos données
     We strive to keep the services up and running; however,
     all online services suffer occasional disruptions and
     outages, and Microsoft isn’t liable for any disruption or
     loss you may suffer as a result. You should regularly
     backup the content that you store on the services.
     Having a regular backup plan and following it can help
     you prevent loss of your content.

   La confidentialité de vos données
     We do not rent or sell personal information to third
     parties, but we do communicate this information to
     companies working on our behalf.




                                                                 Page | 23
Le Cloud vu par les grands
Apple iCloud SLA

   La sécurité de vos données
      Apple shall use reasonable skill and due care in providing the Service, but,
      TO THE GREATEST EXTENT PERMISSIBLE BY APPLICABLE LAW,
      APPLE DOES NOT GUARANTEE OR WARRANT THAT ANY CONTENT
      YOU MAY STORE OR ACCESS THROUGH THE SERVICE WILL NOT BE
      SUBJECT TO INADVERTENT DAMAGE, CORRUPTION, LOSS, OR
      REMOVAL IN ACCORDANCE WITH THE TERMS OF THIS
      AGREEMENT, AND APPLE SHALL NOT BE RESPONSIBLE SHOULD
      SUCH DAMAGE, CORRUPTION, LOSS, OR REMOVAL OCCUR. It is
      your responsibility to maintain appropriate alternate backup of your
      information and data.


   La confidentialité de vos données
     You further understand and agree that this information may be transferred
     to the United States and/or other countries for storage, processing and use
     by Apple, its affiliates, and/or their service providers.




                                                                                     Page | 24
Les indisponibilités du Cloud
Prévoir 10 heures d’indisponibilté par an




                                            Page | 25
Les atouts de Genero
Adaptez–vous rapidement au changement


         Pas de risque

         Faible coût

         Protection de l’investissement , amélioration de l’image

         Rapidité de dévéloppement et mise en oeuvre

         Déploiement progressif

         Agilité




                                                                    Page | 26
Q&A




Backup
Genero
i4GL Language
Enhancements

                Page | 27
Your Ticket to the Cloud
Definitions – architecture



     SaaS
                      Software as a Service
                      Is: On-line applications execution by end-users
                      Was: On-premise applications

                      Platform as a Service
     PaaS
     PaaS             Is: On-line applications development and deployment
                      Was: Development tool vendor

                      Software Infrastructure as a Service
     SIaaS
                      Is: The Cloud – Virtualisation, elastic provisioning, utility billing


                      Infrastructure as a Service
      IaaS            Is: The Datacenter – Outsourced IT for applications
                      Was: In-house ‘IT shop’




                                                                                  Page | 28
Language Enhancements
Multiple dialogs

    A wizard with multiple dialogs

   •   New dialog clause
   •   All dialogs are active
   •   User clicks on any dialog
   •   More intuitive for user
   •   Widgets now superfluous
   •   Code shorter, faster
   •   Total code 33% shorter
         •    dialog logic > 50%
             shorter




                                     Page | 29
Language Enhancements
Multiple dialogs

    A wizard with multiple dialogs – code snippet
    FUNCTION wizard()
      ... defines
      OPEN WINDOW formwizard WITH FORM "formwizard"
      ... init arrays
      DIALOG ATTRIBUTES(UNBUFFERED)
        INPUT BY NAME currtable
        DISPLAY ARRAY afields TO a.*
        DISPLAY ARRAY cfields TO c.*
        ON CHANGE currtable     CALL on_change_currtable()
        ON ACTION right         CALL right(DIALOG)
        ON ACTION allright      CALL allright(DIALOG)
        ON ACTION left          CALL left(DIALOG)
        ON ACTION allleft       CALL allleft(DIALOG)
        ON ACTION prevwiz       DISPLAY "prevwiz"    EXIT DIALOG
        ON ACTION nextwiz       DISPLAY "nextwiz"    EXIT DIALOG
        ON ACTION cancel        EXIT DIALOG
        AFTER DIALOG
          --we just show all chosen columns in the terminal
          FOR i=1 TO cfields.getLength()
             DISPLAY sfmt("table:%1,column:%2",cfields[i].ctable,cfields[i].ccol)
          END FOR
      END DIALOG
      CLOSE WINDOW formwizard
    END FUNCTION




                                                                                    Page | 30
Language enhancements
Drag & drop


   Drag ‘n’ drop an object, perform an action




                                                Page | 31
Language enhancements
Drag & drop


   Drag order 3 @ 4kg, drop on truck 3 w/ 16kg remaining




                                                           Page | 32
Language enhancements
Drag & drop


   Truck 3’s limit reduced to 12Kg




                                     Page | 33
Language enhancements
Drag & drop


   Continue to fill rest of trucks




                                     Page | 34
Language enhancements
Drag & drop


   Reorganize orders between trucks




                                      Page | 35
Language enhancements
Drag & drop


   Drag order 8 @ 6kg, drop on truck 2 w/ 4kg remaining




                                                          Page | 36
Language enhancements
Drag & drop


   Truck load exceeded, action forbidden




                                           Page | 37
Language enhancements
Drag & drop


   Order dispatch app with drag‘n’drop
        – code snippet
          DEFINE dnd ui.DragDrop
          ...
          DIALOG ...
          DISPLAY ARRAY arr_source TO sr1.* ...
          ...
               -- Detect start drag
               ON DRAG_START(dnd)        -- dnd is the D&D handler object
                 CALL dnd.setOperation("move") -- Move is the default operation
                 CALL dnd.addPossibleOperation("copy") -- User can toggle to copy if needed
                 CALL dnd.setMimeType("text/plain")
                 CALL dnd.setBuffer(arr_source[arr_curr()].ident)
           ...
          END DISPLAY
           ...
          DISPLAY ARRAY arr_target TO sr2.* ...
          ...
               -- Detect mouse entering this list
               ON DRAG_ENTER(dnd)
                 IF ok_to_drop THEN
                   CALL dnd.setOperation("move")      -- allow drop here
                 ELSE
                   CALL dnd.setOperation(NULL)        -- deny drop here
                  END IF
               ...
               -- Detect drop event
               ON DROP(dnd)
                  LET arr_target[dnd.getLocationRow()].ident == dnd.getBuffer()
           ...
          END DISPLAY
                 …




                                                                                              Page | 38
Flexible deployment
Tree widget




                      Page | 39
Language enhancements
Tree View




                        Page | 40
Language enhancements
Rich text edit widget




                        Page | 41
Language enhancements
Multiple selects




                        Page | 42
Language enhancements
Table summaries


                  LAYOUT
                  GRID
                  {
                  <Table t      >
                  f1       f2   f3
                  [f1    |f2   |f3   ]
                  [f1    |f2   |f3   ]
                  [f1    |f2   |f3   ]
                  [f1    |f2   |f3   ]
                  [f1    |f2   |f3   ]
                  [f1    |f2   |f3   ]
                  [f1    |f2   |f3   ]
                  [f1    |f2   |f3   ]
                  }
                  end
                  attributes
                  TABLE t: DOUBLECLICK = none;
                  f1=formonly.f1;
                  f2=formonly.f2, AGGREGATE = SUM;
                  f3=formonly.f3, AGGREGATE = SUM;
                  instructions
                  screen record a(f1, f2, f3);




                                                     Page | 43
Language enhancements
Multiple selects


    Call Java from 4 GL




                          Page | 44

Ugif 10 2012 genero ugif october 3, 2012 ibm france, français

  • 1.
    Q&A i4GL et leCloud Bryn Jenkins UGIF IBM France, Bois Colombes Octobre 3, 2012 Page | 1
  • 2.
    Genero – untravail en équipe Page | 2
  • 3.
    Genero – l’héritiernaturel Profiter de votre éxpérience, protèger votre investissement Page | 3
  • 4.
    Une clientèle prestigieuse Largeprésence dans les industries clés Média Finance Distrib. Gouvt. Energie Concessions Prod. Page | 5
  • 5.
    En France Large présencedans les industries clés Page | 6
  • 6.
    Pourquoi moderniser pourle Cloud? Adaptez -vous rapidement au changement Institute of Social Security Services for Civil Servants Serving 10 million Mexican civil servants health needs www.issste.gob.mx 700 applications, 5-10,000 concurrent users Observed productivity using CMM* Level 5 Language Productivity LOC/hr Error Rate 11,98 3,03 % 6,72 12,15 % 5,68 18,73 % 5,14 26,59 % (LOC/Hr - Lines of code per hour) * Carnegie Mellon University - Capability Maturity Model – Guidelines fo Improving the Software Process www.sei.cmu.edu/cmm Page | 7
  • 7.
    Genero - unearchitecture faite pour le Cloud ‘Server centric’ et ‘thin-client’ Avec https Serveur de base de données Serveur d’applications Genero Desktop Client Pare feu Serveur Web GAS Genero Web GAS Client Page | 8
  • 8.
  • 9.
  • 10.
  • 11.
    Modernisez Vers un clientuniversel Page | 12
  • 12.
  • 13.
  • 14.
    Your Ticket tothe Cloud Definitions – what Cloud is not Cloud is not just hosting Page | 15
  • 15.
    Un grand sauten avant dans le Cloud… i4GL et le Cloud Habituellement, chaque éditeur de logiciel avance par petites touches pour rester en tête de la competition. Afin de nous demarquer et avec pour but de faire un grand saut en avant, nous avons choisi Genero pour nous positionner dans le Cloud. John Driscoll, PdG, Bodyshop Management Systems. Page | 16
  • 16.
    La stratégie del’Europe ”Stimulez le potential du Cloud en Europe” Le Vice-President européen (Digital Agenda) Neelie Kroes: Le Cloud computing change la donne pour notre économie… … afin d’arriver à la masse critique, les lois doivent être unifiées en Europe. En premier lieu, il est important de changer les idées reçues sur les risques liés au Cloud computing. Page | 17
  • 17.
    La stratégie del’Europe ”Stimulez le potential du Cloud en Europe” Les problèmes clés • Les lois nationales fragmentent le marché unique • La jungle des standards • Des problèmes contractuels freinent l’adoption du Cloud • Résponsabilité des interruptions de service, indisponibilité, perte de données… • Proprieté des données Les solutions • Un ‘label de confiance’ Européen pour les fournisseurs de services Cloud • Definir des standards pour l’interoperabilité, portabilité (2013) • Des termes contractuels sécurisants et ‘fair-play’ pour les SLAs Page | 18
  • 18.
    La stratégie del’Europe ”Stimulez le potential du Cloud en Europe” Le Vice-President européen Neelie Kroes: Devant faire partie de la stratégie européenne, les gouvernements et les industriels devraient investir 45 milliards d’euros dans le Cloud computing jusqu’à l’horizon 2020, afin de génerer 900 milliards d’euros de PIB et 3,8 millions d’emplois à la fin de la décade. Page | 19
  • 19.
    Votre passeport pourle Cloud Definitions – ce qui n’est pas du Cloud Cloud n’est pas simplement l’hébergement Page | 20
  • 20.
    Votre passeport pourle Cloud Definitions – ce qui n’est pas du Cloud Le Cloud c’est l’hébergement plus: • La virtualisation • L’élasticité • Le ‘self-service’ • La facturation en temps-réel des services Page | 21
  • 21.
    Votre passeport pourle Cloud Les défis Une tarification simple et prédictable Gestion des utilisateurs Disponibilité Gestion de la base de données La sécurité Page | 22
  • 22.
    Le Cloud vupar les grands Microsoft Azure, SkyDrive SLA La sécurité de vos données We strive to keep the services up and running; however, all online services suffer occasional disruptions and outages, and Microsoft isn’t liable for any disruption or loss you may suffer as a result. You should regularly backup the content that you store on the services. Having a regular backup plan and following it can help you prevent loss of your content. La confidentialité de vos données We do not rent or sell personal information to third parties, but we do communicate this information to companies working on our behalf. Page | 23
  • 23.
    Le Cloud vupar les grands Apple iCloud SLA La sécurité de vos données Apple shall use reasonable skill and due care in providing the Service, but, TO THE GREATEST EXTENT PERMISSIBLE BY APPLICABLE LAW, APPLE DOES NOT GUARANTEE OR WARRANT THAT ANY CONTENT YOU MAY STORE OR ACCESS THROUGH THE SERVICE WILL NOT BE SUBJECT TO INADVERTENT DAMAGE, CORRUPTION, LOSS, OR REMOVAL IN ACCORDANCE WITH THE TERMS OF THIS AGREEMENT, AND APPLE SHALL NOT BE RESPONSIBLE SHOULD SUCH DAMAGE, CORRUPTION, LOSS, OR REMOVAL OCCUR. It is your responsibility to maintain appropriate alternate backup of your information and data. La confidentialité de vos données You further understand and agree that this information may be transferred to the United States and/or other countries for storage, processing and use by Apple, its affiliates, and/or their service providers. Page | 24
  • 24.
    Les indisponibilités duCloud Prévoir 10 heures d’indisponibilté par an Page | 25
  • 25.
    Les atouts deGenero Adaptez–vous rapidement au changement Pas de risque Faible coût Protection de l’investissement , amélioration de l’image Rapidité de dévéloppement et mise en oeuvre Déploiement progressif Agilité Page | 26
  • 26.
  • 27.
    Your Ticket tothe Cloud Definitions – architecture SaaS Software as a Service Is: On-line applications execution by end-users Was: On-premise applications Platform as a Service PaaS PaaS Is: On-line applications development and deployment Was: Development tool vendor Software Infrastructure as a Service SIaaS Is: The Cloud – Virtualisation, elastic provisioning, utility billing Infrastructure as a Service IaaS Is: The Datacenter – Outsourced IT for applications Was: In-house ‘IT shop’ Page | 28
  • 28.
    Language Enhancements Multiple dialogs A wizard with multiple dialogs • New dialog clause • All dialogs are active • User clicks on any dialog • More intuitive for user • Widgets now superfluous • Code shorter, faster • Total code 33% shorter • dialog logic > 50% shorter Page | 29
  • 29.
    Language Enhancements Multiple dialogs A wizard with multiple dialogs – code snippet FUNCTION wizard() ... defines OPEN WINDOW formwizard WITH FORM "formwizard" ... init arrays DIALOG ATTRIBUTES(UNBUFFERED) INPUT BY NAME currtable DISPLAY ARRAY afields TO a.* DISPLAY ARRAY cfields TO c.* ON CHANGE currtable CALL on_change_currtable() ON ACTION right CALL right(DIALOG) ON ACTION allright CALL allright(DIALOG) ON ACTION left CALL left(DIALOG) ON ACTION allleft CALL allleft(DIALOG) ON ACTION prevwiz DISPLAY "prevwiz" EXIT DIALOG ON ACTION nextwiz DISPLAY "nextwiz" EXIT DIALOG ON ACTION cancel EXIT DIALOG AFTER DIALOG --we just show all chosen columns in the terminal FOR i=1 TO cfields.getLength() DISPLAY sfmt("table:%1,column:%2",cfields[i].ctable,cfields[i].ccol) END FOR END DIALOG CLOSE WINDOW formwizard END FUNCTION Page | 30
  • 30.
    Language enhancements Drag &drop Drag ‘n’ drop an object, perform an action Page | 31
  • 31.
    Language enhancements Drag &drop Drag order 3 @ 4kg, drop on truck 3 w/ 16kg remaining Page | 32
  • 32.
    Language enhancements Drag &drop Truck 3’s limit reduced to 12Kg Page | 33
  • 33.
    Language enhancements Drag &drop Continue to fill rest of trucks Page | 34
  • 34.
    Language enhancements Drag &drop Reorganize orders between trucks Page | 35
  • 35.
    Language enhancements Drag &drop Drag order 8 @ 6kg, drop on truck 2 w/ 4kg remaining Page | 36
  • 36.
    Language enhancements Drag &drop Truck load exceeded, action forbidden Page | 37
  • 37.
    Language enhancements Drag &drop Order dispatch app with drag‘n’drop – code snippet DEFINE dnd ui.DragDrop ... DIALOG ... DISPLAY ARRAY arr_source TO sr1.* ... ... -- Detect start drag ON DRAG_START(dnd) -- dnd is the D&D handler object CALL dnd.setOperation("move") -- Move is the default operation CALL dnd.addPossibleOperation("copy") -- User can toggle to copy if needed CALL dnd.setMimeType("text/plain") CALL dnd.setBuffer(arr_source[arr_curr()].ident) ... END DISPLAY ... DISPLAY ARRAY arr_target TO sr2.* ... ... -- Detect mouse entering this list ON DRAG_ENTER(dnd) IF ok_to_drop THEN CALL dnd.setOperation("move") -- allow drop here ELSE CALL dnd.setOperation(NULL) -- deny drop here END IF ... -- Detect drop event ON DROP(dnd) LET arr_target[dnd.getLocationRow()].ident == dnd.getBuffer() ... END DISPLAY … Page | 38
  • 38.
  • 39.
  • 40.
    Language enhancements Rich textedit widget Page | 41
  • 41.
  • 42.
    Language enhancements Table summaries LAYOUT GRID { <Table t > f1 f2 f3 [f1 |f2 |f3 ] [f1 |f2 |f3 ] [f1 |f2 |f3 ] [f1 |f2 |f3 ] [f1 |f2 |f3 ] [f1 |f2 |f3 ] [f1 |f2 |f3 ] [f1 |f2 |f3 ] } end attributes TABLE t: DOUBLECLICK = none; f1=formonly.f1; f2=formonly.f2, AGGREGATE = SUM; f3=formonly.f3, AGGREGATE = SUM; instructions screen record a(f1, f2, f3); Page | 43
  • 43.
    Language enhancements Multiple selects Call Java from 4 GL Page | 44