As you know, IBM i has evolved over the years. Begun as an AS400 server series, the IBM iSeries and Power Systems come with many useful features the users cannot stop raving about. Earlier, AS400 supported only green screen applications. The standard user interface (UI) for this world famous mainframe was a rectangular screen 80 characters wide by 24 lines high. The presence of an abundance of monochrome cathode ray tubes (CRTs) using P1 phosphor, resulted in the term ’green screen’. Since then, green screens are being used by many professionals for online mainframe based applications.
It was in the mid to late ‘90s, when mainframes were introduced to a new UI known as the “Graphical User Interface,” or GUI. The GUI was invented for distribution-based applications and it was not limited to 80 x 24 characters. The GUI provided a lot more space and features. New developers started taking interest in GUI based applications and customers saw it as more user friendly and interesting. Soon, green screen UIs began to lose popularity gradually and GUI’s began take over. Graphical User Interface is not only attractive and feature rich, it is also easy to use and more customer oriented.
UI modernization approaches
The green screen UI looked dull and more like a complex interface that only geeks could love. This complexity motivated developers to look for user friendly interfaces. This figure shows the history of popular approaches to UI from the early 1990’s.
Of all the approaches or methods shown in the chart, APIfication and UI frameworks are the latest and the most trusted methods to modernize IBM i applications.
As already stated above, application modernization has been used heavily since the 90’s. There are a handful of popular steps to application modernization that focus on a combination of micro services architecture, cloud migration, and exposing an application’s functionality via API.
Dividing into microservices
Application modernization can also involve dividing or breaking down a legacy application into a collection of smaller components or microservices.
In the illustration, a single application is divided into a collection of microservices or individual services within the app. Each service would have their own database and data model.
Mostly the strangler pattern is followed when dividing the application into parts. Instead of breaking down the monolith application all at once, the application is divided part by part.
Cloud migration is one of the modernization processes that involves microservices, re-platforming or re-hosting. During this process, IBM provides a nest migration approach to your enterprise. Cloud migration for your IBM i application involves a complete plan, various migration options and ROI calculation.
Expose functionality via APIs
A legacy IBM i application can be enhanced by securely exposing its functions or data via APIs without hampering its existing code. This approach enables new, cloud native applications to leverage the capabilities of existing systems and data.
How does APIfication work in modernizing AS400 applications?
APIs on legacy systems are represented as REST APIs that share the required information with external users. To modernize the legacy systems or UI, organizations are using web frameworks such as Angular, React or Vue. The new screens created using these frameworks help enhance communication with the legacy systems using REST APIs.
Benefits of APIfication and frameworks:
This implementation provides a future ready architecture for the application as it uses lightweight services and APIs
- The application developed is componentized and modular
- There is proper vendor support for exposing programs as API
- The developers must use AS400 for exposing microservices
GUI using Angular Framework
Angular is a typescript based open-source web application framework. The applications developed using this framework are very progressive, faster and user friendly because of the spot-on UI features. The components of an Angular application include: view, styling, and controller/model. These three components define the entire application. Modular framework is essential as it extends the application’s capabilities.
For application modernization, layered architecture is recommended, and Angular framework is one of the best when layered architecture development is required. Middle processing tier is counted as the most important in a multi layered application. It is important because it acts as an API gateway, handles security and adopts validations. Modernizing an IBM i application also involves development using Java, Node.js or Python.
The middle tier needs to be connected and for this the RPG logic has to be exposed. IBM IWS is used to expose the logic in the form of REST APIs.
IBM is pushing companies to modernize their green screen RPG applications to Java/J2EE. Organizations are opting for other options, such as ASP.net, but most of them are trying to follow the IBM road map that clearly indicates migration to Java.
Java as a language tends to promote better separation of code. In general, Java offers everything as a service program, where all parameters are passed with VALUE set, OPTIONS (*no pass: *omit) is disallowed, CONST is generally recommended, and most parameters are of type DS (data structures) and passed around by pointer.
The green screen applications built in RPG/Cobol are now being easily migrated to modern platforms or open environments like Java. Many developers try to rewrite entire pieces of code in Java, but this procedure has resulted in poor outcomes because RPG is the language of IBM i and for mission critical and enterprise applications there is no other option than RPG. Enterprise Applications can be modernized by leveraging the RPG code with the help of REST APIs. And this is the best way to switch from legacy to an open world.
RPG Open Access for application modernization
Many IBM i businesses have at least one application that is key. It is often a RPG application that they have been using for years and has been customized and enhanced over the years to enable the business to deliver its unique value to its customers. Although, this application does many things that the business needs, the application cannot generate a modern graphical user interface that the business needs. To meet the latest needs, businesses might consider rewriting or replacing their application. But major drawbacks in doing so arise and can include:
- Keystone applications written years ago have hundreds of thousands of lines of code, so rewriting it is too expensive and too time consuming
- A prewritten package can be an option, but it is often not able to offer the unique software features the business needs to maintain its competitive advantage
- Tweaking/changing the prewritten package to provide those features can be expensive. Therefore, the keystone application is tough to replace
So, after considering all the above options, an effective IBM i application modernization is the answer to this common business problem. IBM Open Access provides a more effective and pleasing user interface for keystone/old or legacy applications. This strategy has made application modernization a strategic, long-term solution. You can modernize your keystone application in a step by step, practical manner. By doing so, you are laying the groundwork for application growth and improvement later.
For example, RPG an open access tool by Profound Logic for application modernization preserves the existing RPG code secure and is used by many organizations.
The latest version of the tool provides these features:
- The move to an open-source development framework
- The addition of RPGs to the Profound UI Suite
- Advanced security and parameter markers
- Updates to the Visual Designer and widgets
Legacy applications, especially those that have green screens, require modernization to meet the demands of today’s every day user. RPG has always been the primary language compatible with IBM i. Often, migrating an application completely to some new platform is not feasible. Therefore, methods like integrating APIs is recommended to change the interface of your application and keep the code you trust and have invested in. To proceed with the modification process, always get an expert’s advice. Expert advice can help you deliver a new interface that your user’s can rely on with minimum disruption.