The IBM iSeries (known as i5/OS) is a highly integrated, reliable server platform that allows businesses to run multiple operating environments simultaneously. Their integrity and security characteristics allow them to be used in many critical applications.
RPG has evolved from being a simple Report Program Generator, (from which it got its name) into a powerful application development procedural language on iSeries machines. Currently it is supported on the ILE (Integrated Language Environment) on iSeries.
Host servers handle requests from client PCs or other devices running an application as illustrated in Figure 1 to enable printing a document and other tasks. The iSeries and i5/OS computers are full function servers capable of performing many tasks at once, including file, database, applications, mail, print, multimedia, fax and wireless communications. Each task server runs as a separate job on the system, and each server job sends and receives data streams on a socket connection.
One of these host servers is the Remote Command and Distributed program call server. This server runs the programs on an iSeries or i5/OS system.
IBM's Toolbox for JAVA has a multitude of packages that handle different functionalities. For example, Access classes manage sign-on information, create and maintain socket connections, and send and receive data, while Command Call classes run iSeries and i5/OS batch commands.
IBM's iSeries adapter uses the Access classes, and Program Call classes to call the RPG program. Data conversion classes provide the capability to convert numeric and character data between iSeries or i5/OS and Java formats.
While i5/OS running on an i5/OS is capable of handling many types of tasks, the iSeries adapter only uses the Remote Command and Distributed program call server. This server runs the programs on the i5/OS system.
A diagram of the iSeries adapter connection of the client to the server is shown in Figure 2.
The data queues on iSeries allow fast communications between jobs. Therefore, it is an excellent way to synchronize and pass data between jobs. With data queues on iSeries:
Each message on a keyed data queue has a key associated with it. A message can be taken off the queue only by specifying the key that is associated with it.