From RPG OA to Node.js: Approaches to Application Modernization - Greg Patterson
-
Upload
fresche -
Category
Technology
-
view
77 -
download
0
Transcript of From RPG OA to Node.js: Approaches to Application Modernization - Greg Patterson
Brief History
• Webfacing, Hats, JWalk
• Slow performance
• “Lipstick on a pig”
• Deployment
• New Product Enhancements (or not)
• Browsers/JavaScript Improvements
Considerations
• Skillset
• Timeline
• Budget
• Current Applications
• Mobile
• Reface, Re-engineer or Replace
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
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
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
Stateless Web Applications
• New web applications
• No call stack
• Standard web development
• Scalable
• Customer facing
• SEO, bookmarks
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
What is Node.js
• Server side web applications
• JavaScript for client and server side
• Open source
• Created in 2009
• Popular technology
– Walmart, LinkedIn, PayPal
Node.js Benefits
• Performance
• Open source community
• Attract new developers
• One less language
• Programmer Productivity
• Leverage RPG
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
3 Approaches to Mobile
• Native mobile applications
• Hybrid applications
• Mobile/Responsive web applications
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
Native Mobile Applications
• Direct access to device hardware
• Great user experience
– Speed
– Reliability
– Access
• Web services for IBM i data
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
Mobile/Responsive Web Applications
• Websites accessed from device browers
• HTML, CSS, JavaScript
• PHP, RPG, Node.js and more
• Look/feel like a native app
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
Mobile/Responsive Web Applications
• Offline support
• Less direct access to device hardware
• Performance depends on:
– Network
– Device
• Responsive – one code base for desktop/devices
Which Approach to Choose
• Mobile/Responsive web applications
• HTML/CSS/JavaScript constantly improving
• Browser delivery becoming standard
• That said … no one size fits all