Friday, October 22, 2010
RIA for IBM i For Power Systems including AS/400, iSeries, and System i
RIA for IBM i For Power Systems including AS/400, iSeries, and System i. A great deal of recent interest has been expressed on the topic of IBM i For Power Systems including AS/400, iSeries, and System i, as a platform for Rich Internet Applications (RIA). It may seem odd to associate a platform long associated with green screen interfaces with rich interactive business applications but only if one fails to appreciate the tradition of the IBM i. While it is true that this platform has never been known for or really even attempted to deliver a rich user interface experience, it has been known for other strengths that are very much needed in an application server: security, reliability, performance and scalability top the list.
Since the uniPaaS application platform server is native to the IBM i (as well as other platforms including AIX, Windows, Linux, Solaris and HPUX), one can immediately begin to see possibilities for leveraging the obvious server advantages of the IBM i and the considerable investment in existing business logic there for deployment to RIA clients in the cloud as well as Windows clients in a more traditional LAN or WAN network environment.
Because the uniPaaS application platform has native interoperability with the IBM i and supports Rich Clients via the Internet, we have an ideal browser-free secure solution for extending the reach of IBM i applications and enhancing their user experience.
IT managers overseeing an IBM i-based IT environment well understand the advantages of IBM's midrange platform: excellent middleware, superior scalability, top-level security, superior reliability and resilience, and straightforward operations and storage management. For some years, however, IBM and the IBM i user community seem to be on different tracks when it comes to application development and integration. Every few years, IBM introduces a new approach that never fully takes hold in the user community: Java and PHP are the most obvious examples when it comes to application modernization. This has created a layering of application logic capabilities and integration modes between legacy RPG and COBOL and newer approaches to development and integration that some might even call a fracturing of business logic.
As discussed here, IBM i is being used generically to cover OS 400 and i5 OS, in other words, this discussion is not OS version specific. DB2/400 and DB2 for i5OS are also used interchangeably here, while DB2 UDB should not be confused with these.
The IBM i operating system (I know Frank, I know, its not an operating system) or platform provides a rich variety of platform capabilities that can be used for various aspects of an application development project.
Remote Procedure Calls – Calling Existing Program Logic. uniPaaS allows you to call System i Programs for the purpose of passing parameters back and forth or simply executing a batch program. Typically IBM i programs are written in RPG, although COBOL or other IBM i legacy languages may be involved. Utilizing existing application logic has a number of advantages: it preserves investment in prior software, ensures consistency in business processes, and allows changes in logic to be made in familiar languages. uniPaaS has built-in capabilities for handling these calls. It would be extremely disadvantageous to try to write Remote Procedure Calls to RPG from scratch in a language like C++. Utilizing a higher-level programming tool like uniPaaS makes more sense. In order to work with remote procedure calls, a facility for readily building attribute strings is useful.
Working with Attribute Strings. When modernizing an application in the IBM i environment, it will be useful and necessary at times to work with attribute strings. The application architect or developer can use uniPaaS to work with Attribute Strings and return the argument's attribute string, in order to call an iSeries program.
System Level Commands. With so many capabilities written into the IBM i OS itself, it makes sense to use the system command line from within an application. For example, the command line's WRKSYSVAL command can be accessed. According to IBM, "The Work with System Value (WRKSYSVAL) command allows you to work with a specified system value. The system values are provided as part of the system. They are used by the system to control certain operations in the operating system and to communicate the status of certain conditions. Changes to some system values take effect immediately; however, some do not take effect until new jobs are started, and others do not take effect until the next initial program load (IPL)." One can access, for example, current security system values using (*SEC). The possibilities with system commands are numerous and provide extensive power for developers writing applications that access them. Obviously, Control Language (CL) command integration will be limited to capabilities at the CL level. Capability to retrieve CPF and CPD error messages and job log messages will also be regarded as an important requirement in some application development scenarios.
Accessing the User Space. One of the powerful integration patterns somewhat unique to IBM i is the user space. You can think of the user spaces as objects of up to 16 MB that can be used to save user-defined information. A user space object is permanent and can be stored in either the system domain or user domain. Working with the user space in an application, the application architect or developer can create user spaces for lists of data; access and store pointers; deal with large amounts of data; add, update and delete information using control language (CL) commands; exchange data between jobs, applications and systems.
Working with the user space is useful on the IBM i because it provides the application architect with a way to deal with a commonly used IBM i methodology. Rather than requiring extensive changes to existing jobs or applications, a program can interface with the user space already employed in an existing IBM i scenario. Not all IBM i procedures are based on the user space, however, so this will be the primary consideration as to when to use the user space.
Accessing the Data Queue. Data Queues are one of the powerful and unique capabilities of the IBM i that help an otherwise batch-oriented environment to deal with both synchronous and asynchronous activities. The data queue works with both data and metadata or one could even say messaging. Their purpose is to facilitate both synchronous and especially asynchronous communications, for example, a payroll system may have a single job to run payroll that is triggered by multiple time card entries that are stored in the data queue. Among the attributes of the data queue is the "Async read" which allows data in the data queue to be protected while it is being read. It is a type of transactioning mechanism that has specific parameters related to wait time. The data is essentially removed while it is being read but only for the specified wait time.
Use of the data queue is most powerful when existing processes are already using data queue as a method. This allows you to take advantage of previously considered business rules for access of data in the data queue and avoids "recreating the wheel."
Accessing Spool Files. The print spool is a frequently used IBM i operating system feature. Spool files can be considered proprietary to the IBM i environment, in particular because of their traditional connection to IBM printer formats. However, increasingly, IBM i shops have engaged in spool file conversion to get output data into popular formats such as PDF. The spool files can take on several formats: SCS, AFPDS, IPDS, AFPDSLINE, and PCL. Printing to the spool file may be a common application requirement.
Accessing IFS Objects. The integrated file system (IFS) of the IBM i supports stream input/output and storage management within an integrated structure across the system. The IFS supports binary formats which can be useful for GUI client/server, RIA, integrated systems, and rich media types.
Accessing Java on IBM i. Some IBM i based IT departments have introduced Java into their environments with varying degrees of success. Since many teams seem to be searching for ways to minimize further investment in Java, the ability of a uniPaaS RIA application to call pre-existing Java capabilities may be particularly relevant in these scenarios. To best composite applications from various Java technologies, the developer will want to have abstracted capabilities for dealing with Java objects, classes, EJBs and even in some instances the Java Message Service (JMS). Keep in mind that while some of the IBM WebSphere solutions for dealing with the complexities of java integration are available for IBM i environments, not all elements of the WebSphere stack are suitable to or will even run at all on IBM i. IBM WebSpehre Application Server (WAS) Express of course is available and will often be a target for composite applications.
Database Access on IBM i. Direct data and database access by the uniPaaS application is accomplished through a high-speed native database gateway. In addition to the integrated file system access already mentioned, the DB2 400 or DB2 UDB for i5 OS databases, SQL tables, SQL interfaces to physical files, open query file functionality are available. With the open query file, one will want to be able to sort and select records. With SQL access to physical files (as opposed to native IFS access previously mentioned), the option for use of direct SQL statements and access to views, triggers, functions and stored procedures presents itself.
Web and Web Services. From the uniPaaS Composite Resource Repository, one can also employ Web Services. uniPaaS supports the native Apache requester on the IBM i as well as the Apache server which may in some cases be on a Linux partition. While HTTP get and post may be suitable for basic Web processes, full service-oriented architecture on the IBM i will be supported by use of SOAP Web services and WS-Security. The support of the integration system for Web Services becomes especially powerful in combination with the other development methods discussed here, essentially service-enabling the IBM i platform in a Service-Oriented Architecture (SOA) approach.
For additional information, please see the Magic Software website.