With minimal Java skills, you too can build an application to access IBM i resources from a wireless device.
With all of the iPhone, Android, and BlackBerry applications available today, and many of the major banks and retailers building their own mobile applications for customers, it's only a matter of time before developers are faced with questions about mobile access to IBM i servers.
In the last two issues of MC Systems Insight, we invited a group of industry experts to comment on a series of mobility questions we thought were relevant to today's market. Needless to say, not everyone agreed on the answers. Before devising the questions, we talked with Paul Tuohy, co-founder of System i Developer and a longtime trainer on the IBM i platform. A couple of points Tuohy made are worth repeating at this point as developers begin to gear up for the mobility challenge.
Perhaps the first point, according to Tuohy, is that you should recognize your limitations. You need to use your existing skill set to accomplish the task as best you can, learn new skills, or defer and bring in an expert from outside who has different skills. One question an RPG programmer should ask is, do you really want to make the necessary investment to learn how to develop mobile applications? Many of the tools today, such as aXes from LANSA or WebSmart and Presto from BCD, allow you leverage current RPG skills to create new applications for the Web and mobile devices. But these tools aren't free.
Second, if your application has been designed with the three-tiered approach so that the business logic, database, and user interface are all separate, then providing new interfaces for mobile devices shouldn't be that difficult. Nevertheless, questions will arise, and developers need to have ready answers, even if the answer is: "I'm not the best one to ask to do this."
If you do get called upon to develop mobile applications or interfaces to access IBM i, there is a path built into IBM i to accomplish it. Again, there are a number of tools out there that will automatically generate a user interface for a mobile device, some quite expensive. If you don't have budget for them, what are your options? One choice might be to use IBM Toolbox for Java 2 Micro Edition, a free set of Java classes that allows you to use Java programs to access data on your system from a wireless device.
The IBM Toolbox for Java 2 Micro Edition, otherwise known as the ToolboxME for iSeries, is a separately downloaded component of the IBM Toolbox for Java, or its open-source equivalent, JTOpen. With it, you can create applications that will monitor and perform a variety of functions on your IBM i from remote clients, including mobile devices. Using the Toolbox presupposes some knowledge of Java, but the direction the market seems headed, having a little Java in your hip pocket might not be such a bad idea (see The Java Tutorials for further reference.)
From the larger perspective, deploying the IBM Toolbox for Java or JTOpen (the same code base but without support) can allow you to create applications to do many things on the IBM i. From the JTOpen Web site on SourceForge.net, here is a sampling of the resources on IBM i that you could access:
- Database—JDBC (SQL) and record-level access (DDM)
- Integrated File System
- Program calls (RPG, COBOL, service programs, etc.)
- Data queues
- Data areas
- Print/spool resources
- Product and PTF information
- Jobs and job logs
- Messages, message queues, message files
- Users and groups
- User spaces
- System values
- System status
Similar to functions available when using IBM i Access APIs, IBM Toolbox for Java offers support through host servers that are included in the operating system. IBM i Access isn't needed, however, since Java classes in the Toolbox manage the socket connections used by the client programs communicating with the server.
The subset ToolboxME for iSeries, however, goes a step further. It enables the developer to write Java programs that allow a variety of wireless devices to directly access IBM i data and resources. In order to accomplish this, you need to run a Java Virtual Machine (JVM) on the wireless device, have Java jar files on the development workstation for creating the application, and download class files on the server. While IBM Toolbox for Java is a licensed program in V5R4, it has been integrated into SS1 (product ID 5770-SS1) Option 3 in IBM i 7.1. However, even if you have 7.1, you likely still will have to download ToolboxME for iSeries (jt400micro.jar) from JTOpen.
Setup for Toolbox ME for iSeries depends on the version of the operating system you are running and how you want to manage your system. There are different setups each for the server, the development client, and the mobile device.
While most people have used IBM Toolbox for Java to access database files on the iSeries or IBM i, here is a chance to use it to develop the more ambitious mobile application with its little-known subset, ToolboxME for iSeries. Or you simply may decide that this just isn't your cup of tea and inform your boss that either she needs to find someone a little more versed in Java to undertake this emergent need or perhaps fork over a bit of cash and buy you a special tool to make the task a bit easier.
as/400, os/400, iseries, system i, i5/os, ibm i, power systems, 6.1, 7.1, V7, V6R1