... only what can be explained is truly understood
software architectureIl passo iniziale non è capire come mettere insieme i mattoni ma quali sono la misura e la forma giusta per il mattone.
iSeries legacy applications modernisation - Roadmap
The majority of converter tools are based on the workstation 5250 I/O. They are usually called screenscraper and are based on the 5250 data stream.
The workstation 5250 is a monolithic text device, where fields or display formats are not independent objects (and neither objects) but part of I/O text page (block-oriented terminal).
Any GUI or WEB interface based on that architecture will have to create a meta-system over the monolithic 5250 I/O.
This type of solution contains rapid ROI but does not include the asset for a radical “open” architecture; development and maintenance will have to follow DDS framework and front-end framework.
An IT paradigm structure is to have a multi-tier architecture, which is in other words having an “open” architecture from DB to Business logic and from Business logic to the Interface. The workstation 5250 disable this possibility because it represents a monolithic bloc between Business logic and Interface.
Therefore in some point, the roadmap in modernising apps will need to bypass the workstation 5250 and have a new communication channel to includes an open architecture.
As an IBM iSeries Advisory Council colleague said:
“the only viable strategy is architectural modernisation”
Open Communication Architecture Design for legacy apps - Pascal Polverini
New communication channel next to the 5250 channel
:: Automatic transposition of the 5250 logic to Open logic
- Basically the automated conversion consist in converting the architecture then the interface.
- Programs are converted through a cmd running as a pre-compiler.
- Display files and Menus are converted through a cmd which transforms them in XML.
- Dataflow are made in XML through a DTAQ and User Indexes.
- Concerning the programs not only the I/O operation codes (exfmt, read, readc, write, etc…) are converted [switched to API callp] but also all inherent 5250 functions (INFDS etc..), BIF (%eof, %error), overlay mechanisms (formats overlay output, window formatting) and specific DDS keywords function.
- Switch code are added to RPG source to bypass the 5250 workstn and use a new communication channel.
- This approach meets the concept of using a generic "exUI" instead of "exfmt" but also carry all DDS mecanisms and functions to convert legacy apps integrally and automatically.
- Concerning the display (DDS), the conversion process acts in order to simplify the I/O communication to OO principles, only the “interface” part of some DDS keyword is to be managed.
- Output operations: these receive a list of formats to be displayed and receive all output fields and indicators values.
- Input operations: these send all input fields and indicators values.
- There are 179 DDS keywords: A fifth can be ignored for a GUI environment, almost half of them require functions or “preparation” inside the program, integrated in the conversion process. The remaining DDS keywords are all manageable from any OO Interface.
- There is a TCP/IP RELAY or HTTP Server to monitor exchanges between the Interface and the converted legacy programs. This RELAY can be a simple CGI or a Socket, its rule is to receive requests and data from the client INTERFACE and send back the response and data from the converted 5250 program in XML format.
We finally have:
- XML I/O communication capability.
- Batch process instead of interactive process.
- Integrality of the 5250 pgm-DDS kword functions transposed to an open OO logic.
- Multi-Interface capability (from thin to rich client, to any platform and TCP/IP protocol).
- Program and Interface Event driver capability.
- New, modern and rich development for RPG skilled population.
- Consolidation and extension market for the System i.
“The interface deals directly with the memory of the apps as if it was natively written”
Commercial/industry application samples
- They can run in both 5250 mode or Web mode
- The Dynamic Library list (*LIBL) system is preserved
- The User Profile Initial program and Initial Menu are preserved from the LOGIN
- Main “user system” commands & features are preserved like WRKSPLF, DSPSPLF, GO, SIGNOFF, System Messages etc…