200 likes | 314 Views
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?.
E N D
The smooth evolution of RPG and COBOL applications into Web 2.0PKS Softwarewww.pks.com
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 !
Comparison between RPG/COBOL and Web 2.0 applications? IBM has created the Enterprise Generation Language to reduce complexity of Web 2.0 development
Machine Code Assembly Language C++/C# Java PhP COBOL RPG EGL 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
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
EGL Platform Coverage Windows, Linux, Unix • WebSphere • Tomcat • Native System z • WebSphere • USS • Linux • Batch • CICS • IMS Batch Processes Text UI Web/Portal Web 2.0/ Reports SOA Program Handler Service EGL Business Logic IBM i • WebSphere • Tomcat • IBM i Integrated Web Server • Native i5/OS Browser • IE • Firefox • Safari
The importance of Web 2.0 for application architecture Client Server Mainframe computing “Dumb” green screen clients Omnipotent big mainframe servers Client-server computing “Smart” Personal Computer clients Simple file and database servers Web (1.0) computing Light Web Browser clients Rich application and database servers Web 2.0 computing Rich Internet Application clients Lighter application and database servers
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
EGL in Action (Side-by-Side Comparison) EGL Rich UI HTML and JavaScript 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); end end <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> 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.
Evolving RPG and COBOL applications with EGL and RMEi Existing RPG application System i RPG System i EGL (native / java) + Web UI Platform independent EGL (java) + Web UI Existing Programs in RPG, Cobol, CL, … Business functionality in EGL Business functionality in EGL remove platform dependencies transform with RMEi EGL Service Libraries (i) EGL Service Libraries Optionally the EGL Service Libraries can be made platform independent in a second step The transformation separates the program into platform independent Business functionality and platform specific EGL Service Libraries Most of CL remains
Evolution step by step 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. You have the following transformation or integration options:RPG Batch - transform to EGL - call from EGLRPG Services - transform to EGL - wrap with EGLRPG 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
RPG Batch - Transformation / Integration • The existing RPG batch can still be called from EGL New EGL Application CALL / Submit CALL / Submit Transformed BatchBusiness functionality in EGL Existing Batch Program in RPG, Cobol, CL, … Transformation EGL Service Libraries • 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
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 CALL Remote Call Web Service CALL CALL Remote Call Web Service EGL wrapper Existing Callable Service in RPG Add Wrapper Existing Callable Service in RPG Transformed EGL Service Transformation • Existing callable RPG service can be called locally with parameters • The transformed EGL Service can be called locally, from a remote system or be deployed as a Web Service • The service is platform independent
RPG Interactive - Transformation / Refactoring / Integration • Existing DDS based interactive program Integrated Web Based UI (HTML / JSF) or Web 2.0 (RUI) Integrated Web Based UI (HTML / JSF) or Web 2.0 (RUI) Web Based UI RMEi Web API Controller in EGL RMEi Web API Existing Interactive Program in RPG or Cobol TransformedInteract.Business functionality in EGL (procedural) TransformedInteract.Business functionality in EGL (asservice) Refactor Transform EGL Service Libraries EGL Service Libraries • 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 • The transformation separates all display operations into EGL Service Libraries • 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
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 !
HTML / JS Existing Interactive RPG Program EGL Business functionality EGL UI Lib I5 OS RMEiWeb API 5250 Terminal Java Servlet Browser (JSF) 5250 Datastream DDS XML form DDS XML Extended style RMEi Web API Overview - Architecture RMEiWeb API EGL RUI Controller EGL RUI Controller Browser (RUI) AJAX
Steps in the Transformation Process • Analysis- Analyze Application and prepare Transformation • Proof of Concept- take a small subset of the application and do a transformation • Step by Step Transformation- do transformation project in small steps based on migration units • 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 • Integration- Integrate the transformed package with the working application • Test
IBM Activities to establish EGL in the market Community Capability Mindshare Extensibility Consistency • Goals: • Focal point for community • Share tips, techniques, parts • Communication: Forums, Blogs • Target Audience: • All EGL developers • EGL partners & ISV’s • IBMers What: EGL Cafe When: June 2008 • Goals: • Market-leading Web 2.0 Tools • SOA Enhancements • Target Audience: • Line of Business Application Developers • Departmental Developers • Web Developers What: RBD v7.5 When: 4Q 2008 • 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 What:Free EGL SDK EGL Software Developers Kit EGL Software Developers Kit • 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:EGL Open • Goals: • Ensure consistent implementations and extensions • Target Audience: • Partners • ISV’s What: Standards Standard
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! http://ibm.com/rational/eglcafe 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!
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