I have helped customer with exactly that for the last decade and the quick
answer to your question is ... it is painfull....
But let me give you som ideas that gives the most bang for the buck. I call
it the "road to micro services":
1) Remember RPG is not your enemy. However 5250 is.
2) Carve out the business logic from your RPG that is not related to 5250
and build (REST JSON-in/JSON-out) services. My guess is. That is only 10% -
20% of a interactive program that do REAL business logic.
3) Make your database smarter: Build UDTF / Stored proc - even with RPG
from step 2. Yes you are spreading logic all over the place, however it is
worth it. Your transition will go much smoother.
4) Never acces you database directly ( JDBC / ODBC) - always provide a
service layer.
5) For the real die-hard 5250 application (also COBOL / S/36) that nobody
understand: Incapsulate them now in some tooling that allows you run them
as a (JSON-in/JSON-out) services.
Don't look at step-5 as a permanent solution. This simply allows you to
introduce a your new UI ( Angular / Polymer / React / ExtJS .. or what
ever) in conjunction with step 1, 2 and 3 - on top of a REST architecture.
Now - When you have made the "giant leap" and is independent of 5250, then
you have plenty of time to bring in new skills - node.js, Python, java -
even young ILE RPG dudes - Yes - they exists..... whatever fits your
company best.
The bottom line is: Look into microservices
For node.js I use a framework called Seneca
http://senecajs.org/
For Python i have used flask:
http://flask.pocoo.org/
For Java i always use spring-boot:
http://spring.io/projects/spring-boot
And for RPG and 5250 wrapping I have used IceBreak and IceCap that I have
designed because of a lack of such tool in the industry. However, since you
are not into to 3th party solution, then I suggest that you take a closer
look the open source projects ILEastic or BlueDrops. Both projects aims to
give you a microservices interface to legacy RPGLE
https://github.com/sitemule/ILEastic
When you have arrived in the land of micro services - you will face an
issue: Your myriades of services can be quite a challenge to orchestrate.
Netflix had the problem so they build a open source tools called Eureka to
help with that. It was designed to run on AWS - but guess what - It runs
perfectly on IBM i
https://github.com/Netflix/eureka
Now you a ready to look into the future: Your node.js , Python and
spring-boot also runs in a docker environment. So real containers is the
name of the endgame.
On Wed, Oct 3, 2018 at 10:13 AM Don Brown <DBrown@xxxxxxxxxx> wrote:
We have built a web portal to allow web integration for external clients
and this is using php with xmlservice and it is working very nicely.
Now we want to provide some of the internal functions currently only
available in 5250 green screen.
NOT looking for 3rd party solutions ... No vendors please.
The application is large and we are looking at the 80/20 rule. 20% of the
menu options are accessed 80% of the time.
My question/enquiry is to people that have been down this path - somewhat
regardless of whether they used PHP or nodeJS or Python or ???
Did you modify the existing RPG to enable input from either 5250
Interactive Green Screen AND Web or did you separate the screen logic to
new programs or how did you retain the investment in the existing program
logic.
Would be interested in any comments
Cheers
Don Brown
--
This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400) mailing
list
To post a message email: WEB400@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/web400.
--
Best regards
Niels Liisberg
Chief Software Architect
System & Method A/S
Phone +45 70 20 30 10
Mobile + 45 31 15 88 61
As an Amazon Associate we earn from qualifying purchases.