Presentation is loading. Please wait.

Presentation is loading. Please wait.

Profound.js: The future of open source development on IBM i

Similar presentations


Presentation on theme: "Profound.js: The future of open source development on IBM i"— Presentation transcript:

1 Profound.js: The future of open source development on IBM i
Agile Modernization with Profound.js Alex Roytman CEO Profound Logic Liam Allan Product Developer Profound Logic

2 3 Different Levels of Application Modernization
User Interface Application Code / Business Logic Database

3 User Interface Modernization
Approaches are: Put something on top of 5250 Replace Green-Screen DDS with a Web or Mobile Interface HTML5 CSS JavaScript JSON PHP / .NET / Java / Node.js are not user interface technologies

4 Bad reasons to modernize RPG backend
Our Java / .NET / PHP team already knows UI programming Assumption that RPG is old and therefore not good at database-driven business applications Misconception that RPG can not output a Web/Mobile Interface

5 Great reasons to modernize backend RPG
Open up codebase to a larger pool of developers Take advantage of Open Source New capabilities Cloud Web Services IoT Watson Modularization

6 The options Free Format ILE RPG Modernize progressively
Chances of failure low Limited resources Staffing Education Examples Creates silos Intrusive Prone to failure More resources available Modernize progressively Chances of failure low Abundance of resources Staffing Open source components Examples, etc.

7 Why Node.js? Proven Enterprise-ready Examples: Walmart eBay Netflix
Liam starts here

8 Why Node.js? More developers than any other language It’s exploding
Open Source Community Millions of developers IBM, Google, and other Giants

9 Performance Why Node.js? Performs and scales better Event loop
Non-blocking I/O Event driven Clusterable Performance

10 Why Node.js? Portable Any platform Including IBM i
Including client-side

11 Why Node.js? JavaScript is already used on client-side Extensible
Single language for entire stack Node.js is just server-side JavaScript Extensible NPM Can be made to work like ILE Allows for Agile Modernization

12 Node.js Start out with a blank slate
Bring in packages depending on needs Built to be adoptable / extensible Not only can you port it to IBM i Can be extended to work with and act like RPG Can allow for Agile Modernization

13

14 Extending Node with Profound.js
Top-down business programming Add stateful capabilities: ExFmt style of coding Provide both SQL and Record Level Access With support for db overrides, QTEMP, library lists, sessions, etc. Support both strongly and loosely typed fields All IBM i data types, data structures, parameters, etc. Call and be called like an IBM i program (with parameters) by CL/RPG Even when the CL or RPG has interfaces Liam ends here

15 New Application / Package
Agile Modernization Legacy Application New Application / Package RPG RPG RPG RPG RPG RPG RPG RPG RPG RPG RPG RPG RPG

16 New Application / Package
Agile Modernization Legacy Application New Application / Package Java .NET PHP PHP Java Java .NET .NET .NET PHP Java PHP Java

17 Agile Modernization Your Application RPG RPG RPG RPG RPG RPG RPG RPG

18 Agile Modernization Your Application Node.js RPG RPG RPG RPG RPG RPG

19 Agile Modernization Your Application Node.js Node.js Node.js Node.js
RPG RPG Node.js Node.js Node.js Node.js RPG Node.js Node.js RPG RPG RPG RPG

20 NPM – Node Package Manager
Part of Node.js (not installed separately) Uses a public registry of packages Package is just a directory of code Package.json has metadata about the package Packages depend on each other Packages are small

21 Using NPM Npm init Npm install <package>
Npm install <package> --save Npm publish Npmjs.com to browse for packages

22 NPM Demo

23 Using Node Node <script to do something>
Node <script to launch server> Packages are brought in using the require() statement

24 Node Demo Liam ends here

25 Event loop Allows for high throughput in Node.js
Allows Node to be single threaded while still allowing multiple operations to be handled in the background Blocking the event loop is bad Forces the use of event driven programming I/O operations require a callback

26 Top-down Transactional / Business Programming
Read Data Process Data Present Output to User Get and Process User Feedback Update Data

27 What is callback hell? The messy code you sometimes end up with when trying to code callbacks A new function is called when an I/O operation concludes That function is passed in as a parameter Can be named But can also be anonymous

28 What we are forced to do

29 What we might want to be able to do

30 NPM to the rescue A number of “callback hell” solutions are available
Fibers is one popular solution Ported to IBM i by Profound Logic Once implemented in your project, code can be written top-down Event loop is not blocked Waiting for the callback to fire happens inside the implementation Developer doesn’t have to worry about it

31 Extending Node.js to be like ILE

32 Strongly Typed Fields and Calls

33 RPG to Node.js Demo

34 Questions & Answers Our Web Site: www.profoundlogic.com
Profound.js Microsite: Contact me: profoundlogic company/profound-logic-software @ProfoundLogic


Download ppt "Profound.js: The future of open source development on IBM i"

Similar presentations


Ads by Google