View
36
Download
0
Category
Preview:
DESCRIPTION
The smooth evolution of RPG and COBOL applications into Web 2.0 PKS Software www.pks.com. Why is Web 2.0 relevant for RPG and COBOL applications?. - PowerPoint PPT Presentation
Citation preview
deeper
© Copyright IBM Corporation 2008
The smooth evolution of RPG and COBOL applications into Web 2.0
PKS Softwarewww.pks.com
© Copyright IBM Corporation 2008
Why is Web 2.0 relevant for RPG and COBOL applications?
• Business has an increasing number of requirements that are difficult to satisfy with RPG and COBOL – that‘s why most applications are written in JAVA
- Increased agility and business processes- Intuitive and easy to deploy Web based User Interfaces- Support of multiple devices (PC, PDA, Services, XML, iPhone, …)- Aggregation of content (Google Maps, Services, External Content, …)- UNICODE- Support of JAVA infrastructure- Replacement of retiring staff
• RPG and COBOL applications have to evolve or they will be replaced by packages (e.g. SAP) or JAVA rewrites !
© Copyright IBM Corporation 2008
Comparison between RPG/COBOL and Web 2.0 applications?
Criteria RPG/COBOL Web 2.0
Architecture Mostly monolithic MVC / SOA
User Interface Green Screen Browser
Aggregation No Mashups
Coding SBCS / DBCS Unicode
Platform Support System i System i + JAVA
Staff availability Decreasing Increasing
Service Orientation Additional complexity standard
Complexity Low to medium High
IBM has created the Enterprise Generation Language to reduce complexity of Web 2.0 development
© Copyright IBM Corporation 2008
Introduction to EGL
EGL is IBM’s newest business language
EGL is a true cross-platform, cross-tier language targeted at all types of developers- Traditional, procedural, object-oriented, Web, SOA,
etc.
The goal of EGL is to shield developers from complexities that are unnecessary for building business applications.
EGL is an excellent target language for evolving existing, traditional applications in RPG, COBOL and many other languages
MachineCode
Assembly LanguageC++/C#
EGLCOBOLRPG
JavaPhP
© Copyright IBM Corporation 2008
The importance of EGL for Enterprise Modernization
Flexibility: Affords maximum platform independence (System i, z, Java) and architecture support
Rich user interfaces: Enables business developers (COBOL, RPG, VB, 4GL programmers) to create extremely rich, Web 2.0 user interfaces, along with Service-Oriented, multi-platform applications with a very short learning curve
Integration: Enables developers to easily connect to,wrapper and extend trusted, valuable assets
Productivity: Encourages developers focus on business problems, not technology problems
Adaptability: Delivers a modern language thatadapts more easily to changing technologies
Evolution: EGL is ideally suited for reusing existingRPG, COBOL and JAVA assets as well as theirdevelopers
Web 2.0: EGL is ideally suited to develop Web 2.0applications with unprecedented productivity
Applications
Teams People
© Copyright IBM Corporation 2008
Batch Processes
Text UI Web/Portal Web 2.0/ Reports SOA
WebSphere
USS
Linux
Batch
CICS
IMS
System z
WebSphere
Tomcat
Native
Windows, Linux, Unix
EGL Business Logic
Program Handler Service
IE
Firefox
Safari
Browser
WebSphere
Tomcat
IBM i Integrated Web Server
Native i5/OS
IBM i
EGL Platform Coverage
© Copyright IBM Corporation 2008
The importance of Web 2.0 for application architecture
Client ServerMainframe computing“Dumb” green screen clientsOmnipotent big mainframe servers
Client-server computing“Smart” Personal Computer clientsSimple file and database servers
Web (1.0) computingLight Web Browser clientsRich application and database servers
Web 2.0 computingRich Internet Application clientsLighter application and database servers
© Copyright IBM Corporation 20088
Build end-to-end Web 2.0 quickly with a single language Fully extensible Use a language that is easy to learn Benefit from productive development Use Ajax without any of its complexities Use a rich, extensible widget library Debug web applications in an Eclipse IDE Consume any type of web service
Web 2.0 User Interfaces with EGL
© Copyright IBM Corporation 2008
EGL in Action (Side-by-Side Comparison)
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml"> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> <title>Google Maps API Example: Simple Geocoding</title> <script src="http://maps.google.com/maps?file=api&v=2.x <script type="text/javascript">
var map = null; var geocoder = null;
function initialize() { if (GBrowserIsCompatible()) { map = new GMap2(document.getElementById("map_canvas")); map.setCenter(new GLatLng(37.4419, -122.1419), 13); geocoder = new GClientGeocoder(); } }
function showAddress(address) { if (geocoder) { geocoder.getLatLng( address, function(point) { map.setCenter(point, 13); var marker = new GMarker(point); map.addOverlay(marker); marker.openInfoWindowHtml(address); } ); } } </script> </head>
<body onload="initialize()" onunload="GUnload()"> <form action="#" onsubmit="showAddress(this.address.value); return false"> <p> <input type="text" size="60" name="address" value="1600 Pennsylvania Ave, Washington DC" /> <input type="submit" value="Go!" /> </p> <div id="map_canvas" style="width: 500px; height: 300px"></div> </form> </body></html>
handler MyRuiHandler type RUIhandler { initialUI = [ addressForm, map ] }
addressField TextField { text = "1600 Pennsylvania Ave, Washington DC", width = 250 };
goButton Button { text = "Go!", onClick ::= goButton_clicked }; addressForm Box { children = [ addressField, goButton ] };
map GoogleMap { width = "500px", height = "300px" };
function goButton_clicked (e Event in) addresses String[] = [ addressField.text ]; map.showAddresses(addresses, addresses); endend
HTML and JavaScriptEGL Rich UI
All code, including UI and controller logic, is written completely
in EGL.
The complexity of the Google Map APIs are
hidden from the developer, so the
developer can focus on the actual business requirement and not
technical complexities.
© Copyright IBM Corporation 2008
Evolving RPG and COBOL applications with EGL and RMEi
Existing RPG application
Existing Programs in
RPG, Cobol, CL, …
Business functionality
in EGL
EGL Service Libraries (i)
System iRPG
The transformation separates the program into platform independent Business functionality and platform specific EGL Service Libraries
Most of CL remains
transformwith RMEi
System iEGL (native / java) + Web UI
Business functionality
in EGL
EGL Service Libraries
Platform independentEGL (java) + Web UI
removeplatformdependencies
Optionally the EGL Service Libraries can be made platform independent in a second step
© Copyright IBM Corporation 2008
Evolution step by step
1. The transformation from RPG to EGL can be done in small packages, because RPG and EGL integrate easily via database and program calls. With the RMEi Web API even integration on UI level can be achieved.
2. You have the following transformation or integration options:
RPG Batch - transform to EGL- call from EGL
RPG Services - transform to EGL- wrap with EGL
RPG Interactive - transform to EGL and refactor to JSF or RUI - transform to EGL and use RMEi Web API
- integrate with EGL and use RMEi Web API
© Copyright IBM Corporation 2008
RPG Batch - Transformation / Integration
- The existing RPG batch can still be called from EGL
Existing Batch Program in RPG, Cobol, CL, …
Transformed BatchBusiness functionality
in EGL
EGL Service Libraries
New EGL Application
CALL / Submit CALL / Submit
- the transformation separates the program into the platform independent Batch Business functionality and the platform specific EGL Service Libraries
- Optionally the EGL Service Libraries can be made platform independent in a second step
Transformation
© Copyright IBM Corporation 2008
RPG Services - Transformation / Wrapping
- After adding an EGL wrapper the service can be called from a remote system or be deployed as a Web Service
Existing Callable Service in RPG
CALLRemote CallWeb Service
- The transformed EGL Service can be called locally, from a remote system or be deployed as a Web Service
- The service is platform independent
Existing Callable Service in RPG
Transformed EGL Service
EGL wrapper
CALL CALLRemote CallWeb Service
Transformation
AddWrapper
- Existing callable RPG service can be called locally with parameters
© Copyright IBM Corporation 2008
RPG Interactive - Transformation / Refactoring / Integration
- Existing DDS based interactive program
ExistingInteractive Program
in RPG or Cobol
Transformed Interact.Business functionality
in EGL (procedural)
EGL Service Libraries
Controller in EGL
- The transformation separates all display operations into EGL Service Libraries
Transform Refactor
Transformed Interact.Business functionality
in EGL (as service)
EGL Service Libraries
RMEi Web API RMEi Web API
- Manual refactoring allows to rearrange the business functionality as services
- A new controller and UI can be build with EGL’s powerful drag & drop UI capabilities
Web Based UIIntegrated Web Based UI (HTML / JSF) or Web 2.0 (RUI)
- The optional RMEi Web API can be used to build a Web UI with very little effort that integrates with the EGL UI
- The optional RMEi Web API can be used to build a Web UI with very little effort that integrates with the EGL UI
Integrated Web Based UI (HTML / JSF) or Web 2.0 (RUI)
© Copyright IBM Corporation 2008
Refactoring or not ?
Refactoring
- the application architecture is refactored into a service oriented architecture- possibility to create very attractive user interfaces- maintenance agility is improved- only limited tool support available- very high initial effort
RMEi Web API
- no need to refactor the application architecture- possibility to create attractive user interfaces- seamless Integration with new EGL JSF or RUI development- complete tool support available- very low effort- evolving into Web 2.0 (RUI)
Refactoring and RMEi Web API can be combined !
© Copyright IBM Corporation 2008
RMEi Web API Overview - Architecture
ExistingInteractive
RPGProgram
5250 Terminal
5250 Datastream
I5 OS
DDS
EGLBusiness
functionality
EGLUILib
RMEi Web API
JavaServlet
Browser (JSF)
HTML / JS
XMLform
XMLExtended style
DDS
EGL RUIController
EGL RUIController
AJAX
Browser (RUI)
RMEi Web API
© Copyright IBM Corporation 2008
Steps in the Transformation Process
1. Analysis- Analyze Application and prepare Transformation
2. Proof of Concept- take a small subset of the application and do a transformation
3. Step by Step Transformation- do transformation project in small steps based on migration units
4. Remediation & Cleanup / Refactoring- do the final cleanup and code remediation- option - transform DDS based UI to RUI- option - refactor the desired programs into services and build a new controller / UI where needed
5. Integration- Integrate the transformed package with the working application
6. Test
© Copyright IBM Corporation 2008
IBM Activities to establish EGL in the market
Capability
Mindshare
Extensibility
Consistency
CommunityWhat: EGL Cafe
Goals:•Focal point for community•Share tips, techniques, parts•Communication: Forums, Blogs
Target Audience:•All EGL developers•EGL partners & ISV’s•IBMers
What: RBD v7.5Goals:•Market-leading Web 2.0 Tools•SOA Enhancements
Target Audience:•Line of Business Application Developers•Departmental Developers•Web Developers
What: Free EGL SDK
Goals:•Stimulate university EGL usage•Target platform: Browser•Application profile: Mash-ups•Contents:
•Web 2.0 tools•HTML/Javascript generation•No Server support/No IBM support
Target Audience:•Web 2.0 Influencers/Hackers•College Students•College Professors•Curious Corporate Developers•Departmental Developers
Goals:•Allow 3rd parties to add value to EGL:
•Support for new platforms/runtimes•Compete w/IBM on current platforms•Extend existing capabilities•Create new capabilities
Target Audience:•Partners•ISV’s•Hackers/Inventors/College Students
What: Standards Goals:•Ensure consistent implementations and extensions
Target Audience:•Partners•ISV’s
When: June 2008
When: 4Q 2008
What: EGL Open
© Copyright IBM Corporation 2008
EGL Café
Online community for EGL developers, partners, and clients
Discussion forums Gallery of sample applications and widgets Presentations, videos, and articles Blogs by IBMers and partners Success stories Become part of the community today!
Resources: Download, Learn, Presentations, Video/viewlet, Sample Code
Community: Clients, Partners, Influencers, Press, News and Events
Collaboration: Blogs, Forums, Tips and Techniques Comments, Ratings
Testimonials: Case Studies, Celebrations!
http://ibm.com/rational/eglcafe
© Copyright IBM Corporation 2008
Summary
EGL – IBM’s Newest Business Language - Key role in IBM’s Enterprise Modernization story- Simplified programming model to develop sophisticated Web 2.0, SOA
and traditional applications - Integrated with Rational Team Concert- Strong community of customers and business partners with EGL Café
RMEi – IBM’s Technology to evolve RPG and COBOL apps - Key role in IBM’s Enterprise Modernization story- Allows to evolve existing RPG and COBOL assets into Web 2.0- Supports evolution in small steps - Reduces risk and budget- Protects your investments
www.ibm.com/rational/eglcafe
Recommended