From RPG OA to Node.js: Approaches to Application Modernization, a presentation by Greg Patterson, IBM i modernization specialist at Fresche at iBelieve Dallas, November 3, 2016.
Presentation covers:
• Brief History of Modernization Brief History of Modernization
• 5250 Refacing Refacing Refacing
• RPG OA
• PHP
• Node.js
• Mobile
9. 5250 Datastream - Benefits
• Fastest Results
• No code changes
• COBOL or RPG (any version)
• Any screen (3rd party, OS, custom)
• All DDS
– Data and Screen Constants
– Includes input formatting rules (ex: auto record advance)
– Field positioning
• Not many limitations
19. What is RPG Open Access
• Developed by IBM
• Get data from RPG to the browser
• Green screens or new RPG programs
• Bypasses 5250 datastream
• OA Handler populates data structure
• Use traditional I/O, existing RPG skillset
20. RPG OA - Requirements
• Source code
• Add 1 line of source code, recompile
• RPG IV
• Field data only
• Conditional compiles if green screen is a
requirement
• Grids need a load all subfile
• Minimum OS – v6.1 or higher
23. Agenda
• Brief History of Modernization
• 5250 Refacing
• RPG OA
• PHP
• Node.js
• Mobile
24. Stateless Web Applications
• New web applications
• No call stack
• Standard web development
• Scalable
• Customer facing
• SEO, bookmarks
25. Why is PHP Attractive?
• Proven enterprise solution
– Thousands of IBM i shops using PHP
– Half of the Top 10 busiest sites (via alexa.com)
• Easy to adopt for RPG Developers
– Procedural to OO to frameworks
– Similar structure to RPG subprocedures
• Attract new developers
– 5-7 million PHP developers
– More and more coming to the platform
• Community
– Free scripts
– IBM and Zend Support
29. Agenda
• Brief History of Modernization
• 5250 Refacing
• RPG OA
• PHP
• Node.js
• Mobile
30. What is Node.js
• Server side web applications
• JavaScript for client and server side
• Open source
• Created in 2009
• Popular technology
– Walmart, LinkedIn, PayPal
31. Node.js Benefits
• Performance
• Open source community
• Attract new developers
• One less language
• Programmer Productivity
• Leverage RPG
32. ILE – RPG CGI
• WebSmart ILE
• Stateless
• Uses native CGI APIs
• Runs using Apache Web Server
• Produce secure web applications
– Login – IBM i user IDs, LDAP, etc.
– Use Sessions
• Better than stateful for new, highly scaleable apps
• SEO, Bookmarks
33. Agenda
• Brief History of Modernization
• 5250 Refacing
• RPG OA
• PHP
• Node.js
• Mobile
34. 3 Approaches to Mobile
• Native mobile applications
• Hybrid applications
• Mobile/Responsive web applications
35. Native Mobile Applications
• Device native programming languages
– iOS – Objective C/Swift
– Android – Java
– Windows – C#
• Not cross platform – device specific
• Deployment
– App Store
– Google Play Store
– Windows Store
36. Native Mobile Applications
• Direct access to device hardware
• Great user experience
– Speed
– Reliability
– Access
• Web services for IBM i data
37. Hybrid Mobile Applications
• Web technologies
• Turn web application into a mobile application
– Wrapped in platform specific shell
– Runs in native container
– Same deployment as Native
• APIs to access device hardware
• No native development language/reuse code
• Easier to enter native app development
• Slower performance
38. Mobile/Responsive Web Applications
• Websites accessed from device browers
• HTML, CSS, JavaScript
• PHP, RPG, Node.js and more
• Look/feel like a native app
39. Mobile/Responsive Web Applications
• Single code base for all platforms
– Not all browsers render the same
– Can optimize for specific browsers
– Responsive
• HTML5 and JavaScript Frameworks
• Instant updates
40. Mobile/Responsive Web Applications
• Offline support
• Less direct access to device hardware
• Performance depends on:
– Network
– Device
• Responsive – one code base for desktop/devices
41. Which Approach to Choose
• Mobile/Responsive web applications
• HTML/CSS/JavaScript constantly improving
• Browser delivery becoming standard
• That said … no one size fits all
42. From RPGOA to PHP/Node.js: IBM i
Modernization and Mobile Approaches
Questions?