advantages of egl for i4gl development jin zhang software development manager, ibm informix user...
Post on 19-Dec-2015
219 views
TRANSCRIPT
Advantages of EGL For I4GL Advantages of EGL For I4GL DevelopmentDevelopment
Jin ZhangJin ZhangSoftware Development Software Development
Manager, IBMManager, IBM
Informix User Forum 2005 Moving Forward With Informix
Atlanta, Georgia December 8-9, 2005
IBM Software Group | Rational software
2
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
IBM Software Group | Rational software
3
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
IBM Software Group | Rational software
4
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
IBM Software Group | Rational software
5
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
What is Enterprise Generation Language (EGL)?
IBM Software Group | Rational software
6
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
IBM Software Group | Rational software
7
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
IBM Software Group | Rational software
8
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
IBM Software Group | Rational software
9
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
IBM Software Group | Rational software
10
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
IBM Software Group | Rational software
11
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
IBM Software Group | Rational software
12
EGL UI Development
EGL
Console UI Library
Unix Curses
Java Swing
IBM Software Group | Rational software
13
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
IBM Software Group | Rational software
14
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
IBM Software Group | Rational software
15
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
IBM Software Group | Rational software
16
Users view of EGL report runtimeE
GL
App
lica
tion
EGL Report Library
Jasper Report Or Jasper Design
template
EG
L R
epor
t Han
dlerCalls Starts
Data passing
Calls
Report handler can call methods and use resource of EGL application
IBM Software Group | Rational software
17
Data Source in EGL for Jasper
Jasper Report
EGL Dynamic Array of Records
SQL statement
Connection
Database
EGL Report Library
IBM Software Group | Rational software
18
EGL Report artifacts
EGL report driving
program, a.egl file
Jasper Report XML
template, b.jrxml file
EGL report handler, c.egl file
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
Optional
Compilation
IBM Software Group | Rational software
19
EGL – Language Example
ProceduralProcedural
LinearLinear
TraditionalTraditional
IBM Software Group | Rational software
20
EGL Data Access Verbs
“Record” abstracts access to: Relational data MQ messages Indexed, Relative, Serial data DL/I (v6.0)
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
SQL MQ DL/I XML Serial Indexed Relative
EGL RecordEGL Record
* - future
Add
Get
Replace
Delete
Commit
IBM Software Group | Rational software
21
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”
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
SearchGoogle.egl
SearchGoogle.jsp
GoogleSearch.egl
Call “GoogleSearch”Service
IBM Software Group | Rational software
22
What Applications can be developed in EGL? Internet (Web) applicationsInternet (Web) applications – standalone, remote calls to legacy business logic …
Web ServicesWeb Services – EGL Service, full Web Service, SOA
Create and Consume Web Services with Wizards
Database applications (CRUDs)Database applications (CRUDs)
DB2, Oracle, VSAM, IMS, Informix, Cloudscape, sequential files…
Callable programs from traditional Java clientsCallable programs from traditional Java clients
Standalone batch and reporting applicationsStandalone batch and reporting applications
Standalone green-screen (TUI) applications
For i5oS, OS390, VSE, z/OS, Linux, AIX, Windows, Unix
IBM Software Group | Rational software
23
Where can EGL Applications be Deployed?
RWD/RAD
•Language•Editors•Wizards•Tools•Debugger•Java Generation/RT
COBOL Generation option
zSeries
Windows/LinuxAIX, HP, Solaris
iSeries
EGLprogram/library/service
Used In:
Code Repository
WAS
WAS
Native (Java)
Native (Java)
WAS
USS
Linux/z
Native (COBOL)
CICS
Batch
IMS
Other App Servers
DB2 IDS Oracle IMS/DLI
VSAM MQ
IBM Software Group
®
EGL AND SOAEGL AND SOA
IBM Software Group | Rational software
25
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
IBM Software Group | Rational software
26
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
SOA Support In EGLConsuming External Web Services
IBM Software Group | Rational software
27
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
SOA Support In EGLCreating Services With EGL
IBM Software Group
®
Moving To The WebMoving To The Web
IBM Software Group | Rational software
29
Rapid Development with JSF and EGL
User Interface
Web Services
Business Logic
Enterprise Information Connection
Business Process Integration
Control Logic
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
IBM Software Group | Rational software
30
Rapid Development with JSF and EGL
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
User Interface
Control Logic
Business Logic
Enterprise Information Connection
Web Services
Business Process Integration
IBM Software Group | Rational software
31
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
Key Benefits: Easily visualize (and manipulate) the structure of a web site Maintain a consistent look and feel of a website
Generated Navigation Bar
Detail Page Information
Web Site Structure
D&D to apply page template. List of
available page templates with navigation controls
IBM Software Group | Rational software
32
Styles and ThemesCSS Source view editing features, including syntax highlighting, unlimited undo and redo, content assist, element selection, and pop-up menu options.
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.
The Preview pane shows you how the currently defined styles are likely to look when viewed in a Web browser.
Visual Design and Preview Capabilities
Support for W3C CSS Standards (CSS1, CSS2 and CSS Mobile Profile, WAP CSS 1.0)
Automatic design time update to pages in page designer
Visual and Source view synchronization
Import existing style sheets.
Design and Apply Style Sheet for Consistent Look and Feel
IBM Software Group | Rational software
33
Page Templates and Fragments
Used to easily define a consistent layout/design for a set of pages 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)
Page Template Designer. Design, Preview, Synchronize
changes.
Ready to use sample page
templates (50) for rapid prototyping.
IBM Software Group | Rational software
34
Dynamic Page Design and Preview
Construct pages by dragging and dropping rich web components from a customizable Palette
Construct pages by dragging and dropping rich web components from a customizable Palette
The Quick Edit View allows scripting of client or server side events in Java or Java Script.
Code assist writes the code for you!
Page templates separate out common page elements in a single template file
Simplified Navigator hides the complexity of J2EE
The Data View lets you configure and drag and drop data to automatically create a data bound UI
Property views allow easy customization of the selected component
Rapid UI Creation
Integrated with EGL Records
Instant binding of UI to Data
Quick Server/Client side event scripting (with Java Server Faces)
Web Application Development is Drag and Drop Simple!
IBM Software Group | Rational software
35
Advantages of EGL For I4GL Advantages of EGL For I4GL DevelopmentDevelopment
Jin ZhangJin [email protected]@us.ibm.com
Informix User Forum 2005 Moving Forward With Informix
Atlanta, Georgia December 8-9, 2005