Let's review the advantages of getting current.
We're not really "bleeding edge" people. Whenever a new version of one of our favorite tools comes along, we rarely update immediately. We let others suffer the "new release blues" for a month or three and then make the move once we are convinced that the release is stable and offers functionality that we want and need. Even then, Jon generally acts as the company's designated guinea pig, boldly going where Susan fears to tread. She takes the approach that when Jon has stopped swearing at something (yes, he does occasionally use words like "bother" as hard as that may be to believe) for three or four months, then it is probably safe for her to upgrade too.
So why are we telling you all this? Because we hope it will lend weight to our declaration that it really is time to put aside your old releases and move on. Certainly, the V6.1 upgrade is a bigger step than any since the move to RISC, but you've had 14+ years to recover from that, and it is well worth the effort.
We appreciate that for some of you the move to V6.1 may be problematic because some of the software in use on your system will not migrate. If this is your issue and is caused by the (in)actions of a recalcitrant or predatory software vendor, then be aware that there is help available. Ever since the GA of V6.1, IBM has provided a special email address for the sole purpose of assisting customers in handling such situations. There have been any number of situations in which vendors became much more reasonable after a call from IBM. If you do have a problem in this area, give it a try; the address is
There are many solid reasons for making the move away from V5, but since the major focus of our work is in the application development arena, that will be the main focus of this piece.
Database Enhancements
Where to begin? Let's start with the database. For us, as application developers, one of the major features of the V7 release is the enhanced support for XML. The database now supports an XML data type that can be used to store complete XML documents. There is also improved support for the decomposition of XML documents into relational database columns—a process sometimes referred to as "shredding," although that term has connotations that we find somewhat disturbing when considering database integrity! The process of generating XML documents from existing databases is also much simpler, and best of all, no additional product is required to obtain all of this functionality, which was previously only available via the XML Extender program product.
Not only can you now store XML documents directly in the database, but the OmniFind Text Search facility that was introduced in V6 has been enhanced in V7 to allow full text searching of such XML data. Since IBM's Dawn May introduced these new capabilities in her iCan blog, we won't go into more detail here.
Another worthy enhancement in this increasingly security conscious world is V7's column-level encryption. While it has been possible for some time to encrypt columns in DB2 tables, to take advantage of the facility required application program changes, something many shops were loathe to do. This new capability allows for completely transparent encryption of specified columns in a table, which can then be accessed through either SQL or native I/O options. It is interesting to note that IBM is not providing the actual encryption algorithms. Rather, it is encouraging tool providers to supply them. Currently, Patrick Townsend and Linoma Software have offerings in this area. Of course, this is not to say that you cannot write your own encryption routines using IBM's APIs, and indeed it is likely that open-source advocates in the community will come up with additional options.
Why do we say that this is an "interesting" development? Because it is a further sign that IBM has recognized that in this fast-moving world they can't do it all and need to open up some aspects of the system and encourage deeper participation by software vendors. Another example of this approach is Rational's Open Access for RPG (more on that in a minute or two).
There have also been significant improvements in SQL performance. The new Adaptive Query Processing can modify the query plan based on the operation of the query and can actually make changes while the query is running with the result that performance can be significantly enhanced. There are also new database tools to assist in monitoring long-running operations, and indeed it is now possible to cancel long-running queries.
One other database enhancement that is worthy of note is the introduction of arrays as a user-defined type (UDT). They can significantly simplify the definition of parameters for SQL procedures. Having always been taught that in the relational database world arrays were an absolute no-no, we were a little surprised at this announcement. Not as surprised probably as Dr. Codd would have been, and one has to believe that he is probably spinning in his grave at something approaching 60,000 RPM!
Languages and Programming Tools
Let's begin with RPG—what else? The V6 and V7 releases have continued to provide solid evidence that IBM has no intention of mothballing RPG. The language just goes on getting better and better.
V6 gave us the ability to define files in subprocedures and, perhaps more importantly in the long run, to pass files as parameters. This feature seems to have escaped many RPGers, but it seems to us to offer some very interesting possibilities for writing reusable file-handling routines. But that's a topic for another article or two.
Also addressed in V6 were a number of size limitations that had been plaguing those of us who needed to use RPG to process large XML documents or otherwise handle large "lumps" of data like HTML streams. No more 64K restriction on individual fields or named data structures; now the sky (or at least 16Mb) is the limit.
V6 also saw the introduction of the TEMPLATE keyword—not a big deal in itself, but another symbol of RPG having "grown up" in that it facilitates the creation of your own data types, a standard facility in most other modern programming languages.
RPG programs can also now run safely in a multi-threaded environment, an important consideration if you are using a Java Application Server to provide your user interface and calling into back-end RPG programs to do the real work.
With V7, we were treated to enhanced capabilities for sorting and searching arrays, and long-overdue support for the use of Alias names. There were also a number of improvements in support for double-byte data, an important step in a world where internationalization of applications becomes more commonplace. Always remember what the first two letters in www stand for if you have any doubts as to the importance of this.
Other RPG-related enhancements include further improvements in the SQL precompiler and in V7 the ability for RPG to handle result sets, a long-awaited improvement that will make many of the SQLers in the RPG community very happy.
Of course, the V7 feature that garnered most of the headlines was the announcement of Rational's Open Access for RPG (OAR). IBM also took the very sensible and somewhat unusual step of making the product available for V6 as well as V7.
The two primary complaints about OAR have been a) that it carries a price tag (albeit a pretty low one) and b) that IBM did not itself introduce a native GUI handler to work with it. As to the first complaint, we are inclined to agree but also believe that this situation will not last for long. As to the second, it is our belief that this was exactly the right approach. RPG, and indeed the IBM i in general, needs to open up more if it is to survive. IBM is just too slow on its feet to be able to adapt as rapidly as is needed today. IBM proved with WebFacing that it could almost get it right, but WebFacing all but drowned under the weight of the Java and WebSphere Applications Server knowledge needed to support it. Most RPG shops had neither the resources and experience nor the desire to maintain that kind of infrastructure. By the time IBM produced an app server lightweight enough for the task, it was too late; the opportunity had passed, and other tools had stepped in to fill the niche.
In fact, it is vendors of such tools that are exploiting OAR and showing just what can be done with it. looksoftware and Profound Logic have both introduced new tools based on the interface, and the future looks bright. Can OAR succeed? We would argue that if these new vendor tools are anything to go by, it already has— and we haven't even begun to see what can be done in areas such as Web services, Office integration, and much, much more. OAR could be a good enough reason to upgrade all by itself!
Other Languages and Tools
Having mentioned Java, we're reminded that V7 introduces a new 64-bit Java Virtual Machine (JVM) that is shared with the AIX and Linux operating systems. This new JVM optimizes Java performance and also includes significant data access performance enhancements. If you are using Java in your shop, this is another very good reason to move.
We're going to refer to the development tools as Remote System Explorer (RSE) because that seems to be the one name that IBM hasn't changed as it has repackaged its "container" from WDSC, to RDi, and (currently) Rational Developer for Power Systems (RD Power). In its latest incarnation, RSE sports new integrated screen and report designers, finally providing a replacement for the old CODE Designer tool (or indeed, SDA and RLU if you enjoy pain). While there are a couple of features that we miss from the old CODE Designer, for the most part this is a great enhancement. Being able to flip back and forward between WYSIWYG and source code entry modes is a huge plus. There are numerous other changes in the latest version of the tools, not the least being significantly reduced memory footprints and faster load and run time. When you come to consider whether you should move your developers from the ancient green-screen tools to the RSE environment, don't forget that at V6, the green-screen tools were "functionally stabilized," i.e., they will not be enhanced beyond the V6 level. They will continue to work and be maintained but have not been enhanced to support V7 language features. Such enhancements will only be in the RSE tooling.
Although not strictly tied to the V6/7 releases as it will run on V5R4, Zend and IBM have also recently introduced Zend Server for the IBM i. PHP on IBM i has never looked better. This new server removes the requirement for a second Apache server, thereby significantly simplifying the installation and management of the system, and contributing to the significant performance improvements that Server offers. The product comes installed on all new systems and includes many new tuning and debugging features. We've been doing a lot of PHP work in recent months, and many of our customers are giving it a test drive. It is a good choice for an RPG-centric shop, and there are a lot of young programmers out there who can help you make the most of it. Best of all, as long as you introduce them to /Free RPG, they will also happily embrace that too; just don't show them the fixed-form stuff unless you want to turn them off.
Web Services, Etc.
In addition to shipping the Integrated Web Application Server (IAS), IBM now also includes a number of wizards designed to enable you to deploy RPG (and for that matter COBOL, C, and CL) programs as Web services. We've worked with this quite a bit in the last six months and are impressed by the speed and reliability of the resulting code. Once you get the hang of it, it really is a very simple process. There are similar wizards to enable you to consume Web services, but they are much less impressive. However, we are told by IBM that any minute now new tooling will emerge in this area, and we look forward to seeing how it compares with offerings such as Scott Klement's free HTTPAPI, which (along with PHP) is our go-to tool for Web service consumption right now.
While working with some of the good folks in Rochester on some problems we encountered with the IAS, we were introduced to their latest baby: the Application Runtime Expert for i. This is a terrific tool that allows you to verify the run-time attributes of an application to help resolve those tricky situations where an application is not starting or working properly. It checks hundreds of system components and settings to ensure that they have the correct attributes. For example, it checks file and directory authorities and attributes, the settings in property/http/xml configuration files, user profiles, system values, environment variables, and much more. Think of it as a kind of health check for your system. For us, it highlighted, among other things, the fact that we were missing a group PTF and had the wrong password settings on some important user profiles. Correcting these problems resolved our issues. But even better is the fact that once your system is up and running, it can take a snapshot, creating a template of the application "in action" that can be used to troubleshoot any problems that may arise in the future or when the application is deployed on another (theoretically) identical system. This is a chargeable feature, but the cost is small, and it will pay for itself many times over the first time you need to use it.
Wrapping Up
We could go on, but if we haven't convinced you by now, we never will. There's a lot to like in the V6 and V7 releases, but you'll miss it all if you stay back on V5R4, and it won't be long before that release goes out of service. Do you really want to run your business on an unsupported operating system? If you are already running on an unsupported release, which means anything V5R3 or earlier, then you really should think of moving as quickly as you can. Look at all the goodies waiting for you. And you'll sleep better at night!
LATEST COMMENTS
MC Press Online