Advantages of EGL For I4GL Development

Download Report

Transcript Advantages of EGL For I4GL Development

Informix User Forum 2005
Moving Forward With Informix
Advantages of EGL For
I4GL Development
Jin Zhang
Software Development Manager,
IBM
Atlanta, Georgia
December 8-9, 2005
IBM Software Group | Rational software
Agenda
 Business Problem, Solution
 Application Development With EGL
 Console User Interface
 EGL UI Development
 EGL Report Handling
 EGL Language And Data Model
 EGL and SOA
 Moving To The Web
 Questions
2
IBM Software Group | Rational software
The Informix Customer Dilemma
 What to do with existing applications?
 Continue to maintain = skills, tools, processes proliferation
 Hard to reuse in new applications (Web Services)
 Complexity: New application technology is inherently more complex
 Many disjointed moving parts, more complex design
 Need access to new platforms, data, connectivity
 A more disciplined well managed approach to development is imperative
 Skills: I4GL developers do not have the right skills to jump to the new
application technology
 Significant retraining, prohibitive costs
3
IBM Software Group | Rational software
The Rational Solution
 What to do with existing applications?
 Convert into EGL and breath new life into valuable code
• Ready-made Java and J2EE, SOA integration
• Can maintain using world class IDE
• Consolidate all development activities on same single integrated
workbench
 Complexity: New applications are inherently more complex
 Rational tools simplify development of modern applications
 Support TUI, GUI, Web, Portals, many platforms, many databases,
Messaging and Queuing, SOA etc
 Rational platform optimized to design, develop, test and manage complex
systems promoting use of software development best practices
 Skills: I4GL developers do not have the right skills
 EGL is easy to learn and can be mastered in a few weeks
 No development paradigm shift required
 Powerful , productive, and modern
4
IBM Software Group | Rational software
What is Enterprise Generation Language (EGL)?
 Enterprise Generation Language (EGL)
 Procedural Language for Business-Oriented Application Development
 Familiar to procedural language developers (SQL, COBOL, RPG, 4GL)
 Simplified programming (high abstraction polymorphic verbs)
 Data access, transaction, session handling, middleware interaction
 Business problem focus rather than on complex software technologies
 Hide the details of middleware and Java/J2EE
 Easily create applications using EGL tools bypassing the Java/J2EE/OO learning
curve
 EGL code generates to Java code or COBOL
 Debugger for EGL source
 Integrated with Rational Software Development Platform
 RWD, RAD, RSA, JSF, Eclipse etc
5
IBM Software Group | Rational software
Why should one move to EGL?
 Continued support of Informix 4GL type of development
 Support for Informix IDS, DB2 and other databases
 Support for Windows platforms
 A single development environment:
 supporting EGL, Java, COBOL and Web application development
 to maintain and enhance existing TUI applications
6
IBM Software Group | Rational software
Why should one move to EGL?

Many legacy I4GL constructs can also be deployed as host (z and i-series)
applications

Enhanced reporting capabilities

Future enhancements (Model driven development, GUI)

Mature, field-tested I4GL business logic can be used within new web applications

Standard “curses” library will allow much better color support in character
applications
7
IBM Software Group | Rational software
Application development with EGL

EGL Program
 Similar to an I4GL file that has the MAIN function
 Identifies the entry point to run the application

EGL Library/Service
 Similar to any other I4GL module/file that provides other functions for use
 The functions can be accessed by other libraries/programs
 The functions can be explicitly called using the library identifiers as a prefix

EGL page handler
 Logic that contains web page handling
 Can use functions in other libraries for business logic
8
IBM Software Group | Rational software
Application development with EGL

EGL Report Handler
 File that contains reporting functions to be used as callbacks

EGL build descriptor
 Sets up properties for generation
• Database connections
• User id/password
• Project properties
 Generates Java code based on the settings

EGL Resource Association
 Attach a name to a resource
• MQ/ File I/O etc
9
IBM Software Group | Rational software
Console User Interface

The Console UI is a set of EGL language elements and runtime libraries that
provide a “curses”-style interface for EGL users to develop applications

The Console UI was [primarily] developed to provide a migration path from
Informix I4GL to EGL

Provisions are made in the language to support






Line mode (command line) interactions
Display statements (in various flavors….)
Windows
Menus
Forms
Implemented to use Java Swing and Unix curses
10
IBM Software Group | Rational software
Console User Interface (cont…)

The Console UI operates (for the most part) on types and structures that have been
created by EGL programmers

Console UI objects generate “events” which allows EGL programmers to control the
runtime behavior based on user interaction

The Console UI runtime has been designed to
 look the same as I4GL
 behave the same as I4GL

Look-n-feel compatibility is crucial to the success of the I4GL to EGL migration effort
11
IBM Software Group | Rational software
EGL UI Development
EGL
Unix Curses
Console UI Library
Java Swing
12
IBM Software Group | Rational software
EGL UI Development

Some details…
 Form layout using predefined Record type (ConsoleForm)
 Window, Form, menu and prompt are predefined types
 A single statement can interact with the different components
• Statement attributes determine what action needs to be performed
(input/display/construct etc)
 Event handling to handle form, field and key events
13
IBM Software Group | Rational software
I4GL to EGL syntax mapping

Windows, Menus, Prompts, and Forms have become types in EGL

The EGL statement “openUI” controls the behavior of menus, prompts, and
forms

The openUI statement can catch “events” that can be thrown by any object it
can open
 After/before field, after/before row, on key, menu Action, etc…

I4GL prompt, construct, menu, input, and input array become various
incarnations of openUI
14
IBM Software Group | Rational software
EGL Report Handling

Capable of generating complex reports
 Uses Jasper
 Works with a design document
 Can be exported to different formats (PDF, HTML, XML)
 EGL statements to interact with reports
15
IBM Software Group | Rational software
Users view of EGL report runtime
Calls
EGL Report
Library
Starts
Jasper Report
Or Jasper
Design
template
Data
passing
EGL Report Handler
EGL Application
Calls
Report handler can call methods and use
resource of EGL application
16
IBM Software Group | Rational software
Data Source in EGL for Jasper
Database
EGL Dynamic
Array of
Records
Jasper
Report
Connection
SQL statement
EGL
Report
Library
17
IBM Software Group | Rational software
EGL Report artifacts
EGL report
driving
program,
a.egl file
Optional
Jasper Report
XML
template,
b.jrxml file
EGL report
handler,
c.egl file
Compilation
EGL report
driving
program,
a.java file
EGL report
driving
program,
b.jasper file
EGL report
driving
program,
c.java file
EGL report
driving
program,
c_lib.java file
18
IBM Software Group | Rational software
EGL – Language Example
Procedural
Linear
Traditional
19
IBM Software Group | Rational software
EGL Data Access Verbs
Add
Get
Replace
 “Record” abstracts access to:
 Relational data
 MQ messages
 Indexed, Relative, Serial data
 DL/I (v6.0)
Delete
Commit
EGL Record
SQL
MQ
DL/I
XML
* - future
Serial
Indexed
Relative
 Common verbs for data access/unit of work management
 Add, Get, Replace, Delete, Commit
 I/O errors handled in a common fashion - across disparate data types
 Data format conversions handled automatically
20
IBM Software Group | Rational software
EGL Business Logic Development : Create Page Handler and Service
 Page Handler
 Contain functions and data related to a .jsp
 “On Page Load” function
 Declare data structures that are available to “Page Designer”
 Functions bound to command buttons
 Should be mostly “Controller Logic”
SearchGoogle.egl
SearchGoogle.jsp
Call “GoogleSearch”
Service
GoogleSearch.egl
 Service
 Multiple entry points
 Put “Business Logic” in here for EGL Apps
 Local or Remote Service Including Web Service Creation
 Interfaces to Represent External Web Service Methods
 Invoke server programs through a simple CALL statement From a Service
 Contain “Black-Box” EGL functions
• generally related in some way
• Example: “Data Access Service”
− SQL Record definition
− All basic CRUD functions
21
IBM Software Group | Rational software
What Applications can be developed in EGL?

Internet (Web) applications – standalone, remote calls to legacy business logic …

Web Services – EGL Service, full Web Service, SOA


Create and Consume Web Services with Wizards
Database applications (CRUDs)

DB2, Oracle, VSAM, IMS, Informix, Cloudscape, sequential files…

Callable programs from traditional Java clients

Standalone batch and reporting applications

Standalone green-screen (TUI) applications

For i5oS, OS390, VSE, z/OS, Linux, AIX, Windows, Unix
22
IBM Software Group | Rational software
Where can EGL Applications be Deployed?
EGL
program/library/service
Code Repository
Windows/Linux
AIX, HP, Solaris
WAS
Used In:
zSeries
Native (Java)
Other App Servers
RWD/RAD
•Language
•Editors
•Wizards
•Tools
•Debugger
•Java Generation/RT
WAS
USS
Linux/z
iSeries
CICS
WAS
COBOL Generation
option
Batch
Native (Java)
IMS
Native (COBOL)
DB2
IDS
Oracle IMS/
DLI
VSAM
MQ
23
®
IBM Software Group
EGL AND SOA
IBM Software Group | Rational software
SOA Support In EGL
 Ability to create and consume web
service artifacts
 Simple and Intuitive Programming
Model
 Wizard Driven Development
 Easy Testing of Generated WSDL
Through Web Service Explorer
25
IBM Software Group | Rational software
SOA Support In EGL
Consuming External Web Services
 Ability to Consume External WSDL
Files to Create EGL Artifacts
 All Necessary Interfaces
Generated From the WSDL File
 Communication Protocols
Automatically Created In Service
Binding Library (From WSDL)
 Complex Types Automatically
Created From WSDL File Content
 Both EGL and External Web
Service Creation Possible
26
IBM Software Group | Rational software
SOA Support In EGL
Creating Services With EGL
 EGL web service has Access to All
EGL Capabilities
 WSDL file, and Necessary Classes
Automatically Generated From
Service
 Menu Option on Right Click of
Service Artifact Allows Creation of
Service Binding Library (The
Client)
 EGL Generated Code Leverages
Built In Web Service Support In
Websphere Application Server
27
®
IBM Software Group
Moving To The Web
IBM Software Group | Rational software
Rapid Development with JSF and EGL
User
Interface
Control
Logic
Business
Logic
Enterprise
Information
Connection
Web Services
Business Process
Integration
JSF RAD tools virtually eliminates
complex error prone manual coding

Point and click Web presentations

Control Logic and Navigation
automation

Rich UI components

No-code input validation
29
IBM Software Group | Rational software
Rapid Development with JSF and EGL
User
Interface
Control
Logic
Business
Logic
Enterprise
Information
Connection
Web
Services
Business
Process
Integration
EGL simplifies business logic and shields from
complexities of data access (Databases, Files,
Message Queues) and legacy integration

High level simple I/O verbs insulate from coding data
access APIs

Procedural easy to learn language

Simple CALL interface to existing programs insulates
from connectivity APIs
30
IBM Software Group | Rational software
Web Site Structure and Navigation
 Web Site Development Tool for creating, managing, and
building entire web sites
 Useful for working with a collection of web pages which make
up a website
Generated
Navigation Bar
 Key Benefits:
 Easily visualize (and manipulate) the structure of a web site
 Maintain a consistent look and feel of a website
Web Site Structure
D&D to apply page
template. List of available
page templates with
navigation controls
Detail Page
Information
31
IBM Software Group | Rational software
Styles and Themes
CSS Source view editing
features, including syntax
highlighting, unlimited undo
and redo, content assist,
element selection, and pop-up
menu options.
The Preview pane shows you
how the currently defined
styles are likely to look when
viewed in a Web browser.
Style sheet gallery allows to
select, preview and apply one
of many pre-built CSS.
Ability to view, edit and add
new styles to the style sheet.
 Design and Apply Style Sheet for Consistent Look and Feel
 Visual Design and Preview Capabilities
 Automatic design time update to pages in page designer
 Support for W3C CSS Standards (CSS1, CSS2 and  Visual and Source view synchronization
CSS Mobile Profile, WAP CSS 1.0)
 Import existing style sheets.
32
IBM Software Group | Rational software
Page Templates and Fragments
 Used to easily define a consistent
layout/design for a set of pages
Page Template Designer.
Design, Preview, Synchronize
changes.
 Changing a template will automatically
update all pages using the template
 Two types of content:
 Content Area: Only area which can be
modified by pages based off the template
 Page Fragments: Includes part of a page
from another page (not modifiable)
 Page Designer is used to create page
templates (*.jptl)
Ready to use
sample page
templates (50) for
rapid prototyping.
33
IBM Software Group | Rational software
Dynamic Page Design and Preview
Simplified
Navigator hides the
complexity of J2EE
Construct pages by
dragging and
dropping rich web
components from a
customizable
Palette
The Data View lets
you configure and
drag and drop data
to automatically
create a data
bound UI
Page templates
separate out
common page
elements in a
single template file
Property views
allow easy
customization of
the selected
component
The Quick Edit
View allows
scripting of client or
server side events
in Java or Java
Script.
Web Application Development is Drag and Drop Simple!
Code assist writes
the code for you!
 Rapid UI Creation
 Instant binding of UI to Data
 Integrated with EGL Records
 Quick Server/Client side event scripting (with Java Server Faces)
34
IBM Software Group | Rational software
35
Informix User Forum 2005
Moving Forward With Informix
Advantages of EGL For
I4GL Development
Jin Zhang
[email protected]
Atlanta, Georgia
December 8-9, 2005