+ All Categories
Home > Documents > © 2011 IBM Corporation December 1, 2015 IBM Informix – Genero Genero Overview >

© 2011 IBM Corporation December 1, 2015 IBM Informix – Genero Genero Overview >

Date post: 13-Dec-2015
Category:
Upload: alan-gilmore
View: 217 times
Download: 1 times
Share this document with a friend
50
© 2011 IBM Corporation March 25, 2022 IBM Informix – Genero Genero Overview <<Speaker Name Here>> <<For questions about this presentation contact Speaker Name [email protected]>>
Transcript

© 2011 IBM CorporationApril 18, 2023

IBM Informix – GeneroGenero Overview

<<Speaker Name Here>><<For questions about this presentation contact Speaker Name [email protected]>>

© 2011 IBM Corporation2

History – Informix 4GL penetration

Data Management Solutions

Classic Tools: 4GL Family

• Perfect choice for character based OLTP applications and batch job processing– Superior reporting capabilities

– Easily manages the most complex business logic

– Char-based HW still prevalent in the customer base

• Works with all Classic Servers & IDS

• 52% of our customer base have 4GL applications Four million active Informix-4GL users today!

© 2011 IBM Corporation3

In the beginning…

© 2011 IBM Corporation4

Genero

© 2011 IBM Corporation5

The business problemBe responsive to change

‘It is not thestrongestof the species that survives

nor the the most intelligent,but the one most

responsive to change’

Charles DarwinThe Origin of Species, 1859

© 2011 IBM Corporation6

Value propositionBe responsive to change

Intelligent Business Applications Infrastructure− Rapid development− Flexible deployment− Scalable performance− Reliability, maintainability

© 2011 IBM Corporation7

Rapid developmentMeasuring developer productivity

Institute of Social Security Services for Civil Servants www.issste.gob.mx

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

(LOC/Hr - Lines of code per hour)

Observed productivity using CMM* Level 5

Language Productivity LOC/hr Error Rate

11,98

6,72

5,68

5,14

3,03 %

12,15 %

18,73 %

26,59 %

© 2011 IBM Corporation8

Rapid developmentCreate modular, readable business services

99.9% i4GL compatible Recompile and run ‘out of the box’ Modernized with syntax extensions

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

© 2011 IBM Corporation9

Rapid developmentModernizing 4GL

GUI paradigm− Multiple Dialogs− Drag ‘n’ Drop− Tree View− Rich Text− Multiple Selects− Etc…

Web Services Modules Java interface

© 2011 IBM Corporation10

Rapid developmentMultiple 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

© 2011 IBM Corporation11

Rapid developmentMultiple 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

© 2011 IBM Corporation12

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

Language enhancementsDrag & drop

© 2011 IBM Corporation13

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 …

Language enhancementsDrag & drop

© 2011 IBM Corporation14

Flexible deploymentTree widget

© 2011 IBM Corporation15

Language enhancementsTree View

© 2011 IBM Corporation16

Language enhancementsRich text edit widget

© 2011 IBM Corporation17

Language enhancementsBuilt in Methods

CALL ui.DIALOG.setSelectionMode(“location_sr”, 1)

© 2011 IBM Corporation18

Call Java from 4 GL

Language enhancements

© 2011 IBM Corporation19

Flexible deploymentIntegrate with existing IT landscape

Agnostic Dynamic Virtual Machine (DVM) Abstract layers

− Presentation− Code− Data− Network

Dynamically loadable drivers Thin client, n-tier, server-centric Written in ‘C’

© 2011 IBM Corporation20

Flexible deploymentIntegrate with existing IT landscape

Configure rather than code

MobileMACOSX

ASCII

Windows Linux

Abstract UserInterface

XML

HTML

Desktop model SaaS model Mobile model

© 2011 IBM Corporation21

Flexible deploymentIntegrate with existing IT landscape

Presentation independant code

MobileMACOSX

ASCII

Windows Linux

Abstract UserInterface

XML

HTML/AJAX

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.*

© 2011 IBM Corporation22

Flexible deploymentAbstract User Interface – an XML representation of the user interface

Abstract User Interface (AUI) tree− A logical UI map

© 2011 IBM Corporation23

Flexible deploymentAbstract User Interface – an XML representation of the user interface

AUI is a logical UI map

© 2011 IBM Corporation24

Flexible deploymentSynchronized XML trees – a scalable architecture

AUI tree syncronized between server & client Thin client, low graphics traffic

GDC

Web Server

GDCGenero

Desktop

Client

Genero

Web

Client

GASWeb Server

Genero

Desktop

Client

Genero

Web

Client

© 2011 IBM Corporation25

Flexible deploymentSynchronized XML trees

Network integration with 3rd party applications Open standards (W3C for XML, SOAP, WSDL, UDDI)

fglccgi

Web Server

gasd

Application Server

Web ServiceDVMs

WSDL request

Web Service request

© 2011 IBM Corporation26

Flexible deploymentSecure network access – several deployment strategies

Using ssh

Server

Genero

Desktop

Client

© 2011 IBM Corporation27

Flexible deploymentSecure network access – several deployment strategies

Using http(s)

Web Server

GAS

Genero

Desktop

Client

Genero

Web

Client

Server

© 2011 IBM Corporation28

Flexible deploymentGenero desktop client

Genero desktop client

Nokia ‘Qt’ based

MobileMACOSX

ASCII

Windows Linux

Abstract UserInterface

XML

HTML/AJAX

© 2011 IBM Corporation29

Flexible deploymentSupport for common GUI widgets

© 2011 IBM Corporation30

Flexible deploymentUnicode support

© 2011 IBM Corporation31

Flexible deploymentNative GUI styles

© 2011 IBM Corporation32

Flexible deploymentGenero Desktop Client – Picture flow DISPLAY ARRAY attribute

© 2011 IBM Corporation33

Flexible deploymentGenero Web client

Genero Web Client (GWC)

Supports all browsers− XML ‘Snippets’− RIA

∙ Silverlight, Ajax, XUL, − WAP− Infinite customization

WindowsMobile

MACOSX

ASCII

Windows Linux

Abstract UserInterface

XML

HTML

© 2011 IBM Corporation34

Flexible deploymentScalable, highly available architecture

GAS architecture – GAS Engine

• core reusable component• scalable• highly available

− GAS Connector • pluggable for target application server

− IIS & CGI-based Web servers− J2EE web servers

– GAS Engine/GAS Connector i/f:• GAS Engine Interface – informs GAS Engine of pending HTTP

requests• GAS Container Interface – informs GAS Connector of response

for pending HTTP request

© 2011 IBM Corporation35

Flexible deploymentGenero Web Client – architecture

Genero Web Client (GWC) Supports all browsers

− XML ‘Snippets’− RIA

• Silverlight, Ajax, XUL− WAP− Infinite customization

Abstract User

Interface

RenderingEngine

MAINMark-up

TEMPLATE

Mark-upSNIPPET

TEMPLATE

ResultingMark-up

PAGE

DVM

© 2011 IBM Corporation36

Flexible deploymentGenero Web Client – MS® Silverlight®

GWC for MS® Silverlight®

– A powerful development platform for Rich Internet Applications

– Based on XAML and C#– Runs in & outside the browser– Desktop user experience via Web– Optimize application deployment:– Zero installation– Cloud compatible– A sandbox secures the client side

Abstract User

Interface

RenderingEngine

MAINMark-up

TEMPLATE

Mark-upSNIPPET

TEMPLATE

ResultingMark-up

PAGE

DVM

© 2011 IBM Corporation37

Flexible deploymentGenero Web Client – Apple® iPad® & iPhone®

Two GWC methods to support iPhone− Safari Mobile & Ajax snippets− Dedicated iPhone snippets for native rendering

© 2011 IBM Corporation38

Flexible deployment Web components

Enrich applications with existing commercial or free Web Components:− Charts, maps, agendas− Display dynamic values− Input values− Execute actions

Create new widgets Web components run on:

− GDC (Desktop)− GWC Ajax (Web)

© 2011 IBM Corporation39

Flexible deploymentWeb components

Embed reusable Web Components into forms– Via urls– HTML, HTML+, DHTML,– Flash ®,– Java,– Silverlight,– Set attributes & .4ST styles.

Define ‘place holders’ in (.per) forms like TextEdit

DVM sets/gets the component value as a formfield

© 2011 IBM Corporation40

Unified Javascript® API allows Web Component interaction with the Genero dialog structure:− Gets associated value− Sets associated value− Executes actions− Manages ‘the focus’

Flexible deploymentWeb components

Client(Component Container)

Boolean SetData (DATA)-Boolean SetFocus ()-

Boolean Action (actionName)-

Component

-void onDATA (data)-Void onFocus (polarity)

Javascriptbridge

© 2011 IBM Corporation41

Flexible deploymentDatabase agnostic

Open Database Interface

Multi-vendor Embedded SQL Switch rapidly

Sybase

MAIN DEFINE p_num INTEGER DATABASE stores DECLARE c1 CURSOR FOR SELECT name, address, cdate

FROM customer WHERE custid = p_num OPEN c1 ...

END MAIN

© 2011 IBM Corporation42

Flexible deploymentOperating system agnostic

One binary fits all Compile once Deploy anywhere Reduce life cycle

costs

© 2011 IBM Corporation43

Scalable performanceAutonomous services connect via Web services

SOA Integration Scales to ‘000s of

concurrent users on a single server

IMPORT xml

FUNCTION saveOrder(order)

  DEFINE order    RECORD LIKE order.*

  DEFINE doc      xml.DomDocument

  DEFINE frag     xml.DomNode

 

  LET doc = Xml.DomDocument.Create()

  LET frag = doc.createDocumentFragment()

  CALL xml.Serializer.VariableToXML(order,frag)

  CALL doc.appendDocumentNode(frag)

  CALL doc.saveToFile("Order.xml")

END FUNCTION

© 2011 IBM Corporation44

Web ServicesAutonomous services connect via Web services

Genero Web Services (GWS)− Interoperability in SOAs

• Compliant with latest standards (WS-I, Document Style Service)• Communication with Java, MS.Net…

− Web Services integrated in the language• Ease of use• Ease of deployment (Service location repository)

− Security• HTTPS, HTTP Authenticate, XMLSecurity, Proxy, Certificates

− Development tools• Generation of Server and Client from WSDL

− fglwsdl command line tool− Generates code for all services types

• RPC/Encoded, RPC/Literal, Doc/Literal

© 2011 IBM Corporation45

© 2011 IBM Corporation46

DB Meta schema Design FormsEdit code Create Reports

Debug apps Manage Projects Files & Dirs Team work (SCM) Diff

App Generator SOA & WS HelpProfiler

Overview Business application modeling

© 2011 IBM Corporation47

© 2011 IBM Corporation48

Migrating i4GL

© 2011 IBM Corporation49

Migrating i4GL

© 2011 IBM Corporation50


Recommended