IBM's Rational software has revitalized its i5/OS application development tools and compilers with changes in the areas of product packaging and rebranding, the addition of new client products, enhancements in RPG IV V6R1, and the introduction of the newest i5/OS business language Enterprise Generation Language (EGL). At press time, the latest tools, which IBM announced in late January, were scheduled to roll out on March 21, 2008.
Though the changes are substantial, they're not complicated. The purpose of this article is to offer a high-level summary of the V6R1 announcement for WebSphere Development Studio (WDS) and the Eclipse-based client products for Version 7.1. System iNEWS will publish future articles relating to other enhancements included in V6R1.
IBM has introduced three new features of WDS ILE Compilers, Legacy Compilers, and Application Development Toolset (ADTS) which offer flexible pricing and packaging, enabling System i shops to consume only the pieces/parts they require. The announcement also includes major new functions in RPG IV/Cobol and workstation tools.
Three new products are also now available: Rational Developer for System i (RDi), Rational Developer for System i for SOA Construction (RDi SOA), and HATS for 5250. Also, IBM's newest business language, EGL, which is part of RDi SOA, will help System i shops extend their existing RPG and Cobol applications to the web.
The goal of the changes is to help clients protect their investment in applications running on i5/OS, enable them to modernize those applications with updated web and user interfaces, and provide continuing support in the foreseeable future.
Customers have reported for years that the WDS one-size-fits-all model doesn't work and that they want to consume only the product components they need. The new packaging clearly identifies strategic products versus heritage products to aid clients in making the best choices. As a side benefit, this new packaging helps IBM determine which features are being used information that will fuel future development investment.
The new WDS (Product ID 5761-WDS) now contains three separate components:
Figure 1 [2] illustrates the current WDS packaging in V5R4, which contains all the compilers and tools, and the corresponding new packaging under V6R1 that unbundles WDS into three different features. Although IBM has priced each feature separately, the company has also implemented a user-based pricing model with a reasonable number of user licenses included for each machine's software tier level. Figure 2 [3] shows the modernization path of interfaces.
The WDSc Standard Edition will no longer be included with the WDS product. Websphere Development Studio client as well as Websphere Development Studio client Advanced Edition (WDSc AE) have now been stabilized; therefore, IBM will place all future System i application development enhancements and investments in its new product offerings. Marketing will end during the current quarter, and service will end in April 2010.
One point to note here is that the application diagram and screen designer, originally included only in WDSc AE, are now part of the base offering in RDi.
Whenever IBM makes major announcements, customers on V5R3 or V5R4, for example, who want to upgrade to V6R1, always ask how to do so and whether they are entitled to the new products.
If you are an existing customer and have a Software Maintenance Agreement (SWMA) with IBM, the answer is yes, you are entitled to a specified number of licenses for ILE compilers, heritage compilers, and ADTS in WDS. For example, if you currently have RPG or SEU, you are licensed for WDS. In addition, if you are on SWMA, you are entitled to "x" number of licenses of ILE compilers, heritage compilers, and ADTS tools.
As I mentioned earlier, IBM has stabilized WDSc 7.0. However, customers who have it and wish to continue using it can order it through IBM or a business partner. It is included in WDS as a supply feature. A supply feature in a product is used in the fulfillment center at IBM to deliver the product (or supply it) to you.
If you have WDSc AE, you are also entitled to both RDi SOA as well as Rational Application Developer (RAD).
If you don't have WDSc AE, however, be aware that RDi SOA and RDi are new products that you must purchase to use. You can also buy a maintenance agreement for those products to enable you to receive future releases.
IBM's pricing model before V6R1 was tier based, implying that you paid a price for WDS based on the tier you were on. A tier is the actual machine you are using or the model number, which could be P05, P10, P20 all the way up to P60. The price of WDS ranged from a few thousand dollars for the low tier to more than $100,000 for the large tiers. Determining the value for the compilers, however, was in many cases difficult, because the size of the box has little relation to the use of the compilers or to the developers involved.
The new user-based pricing is designed to provide a fair model for the value customers are receiving. Also, it is similar to how compilers are packaged and priced across IBM's hardware offerings.
IBM Rational Business Developer (RBD) Version 7 Release 1 offers a number of enhancements that will let System i developers effectively leverage existing investments in RPG to quickly produce modern, professional web or SOA applications using their current business logic and with minimal time to market.
RBD provides EGL, an easy-to-learn, high-level business language that you can use to modernize your applications quickly. RBD offers a development environment (including edit/compile/debug capabilities) and a web page creation editor, wizards, and dialog boxes that make it easy to write applications in EGL and use RPG or Cobol business logic or data on i5/OS for web or SOA applications. The language and tooling are a powerful combination that can make your organization more productive and let you modernize your applications in a cost-effective manner.
You can use EGL and RBD wizards and editors to easily develop web applications that can use your business logic (written in RPG or Cobol) and business data on i5/OS. Your existing investments are protected.
You can also write new business logic in EGL or continue to develop business applications in RPG and/or Cobol, which you can modernize for the web or SOA, as I mentioned earlier. The advantage of using EGL is that you can generate Java or Cobol code from it and run applications on different platforms and middleware (e.g., application servers, databases). In other words, you can develop platform-independent business applications with EGL.
As a high-level language (HLL), EGL hides the complexity of writing web applications using J2EE, which can be difficult to master, and deals with the complexities of deployment on your middleware (e.g., configuring application server settings, setting up data sources for use). The EGL language syntax is also closer to RPG and Cobol than Java, which is object-oriented and can be complex. If you are an RPG or Cobol developer, you can learn EGL much faster than languages such as Java. EGL, like RPG and Cobol, is a procedural language and uses record-level I/O. The best part is that the tooling in RBD lets you not only edit but also debug your EGL code directly, so you never have to deal with the generated languages.
In addition, IBM is working on EGL Rich UI, an EGL extension that will be released as a Tech Preview first and in a product in the future. With EGL Rich UI, you can mash up and create composite web applications with rich user interfaces using the latest web technologies. The intent is to leverage EGL's existing values of simplicity, abstractions, and portability to increase skills transfer and productivity and reduce time to market.
The RBD tooling will let you compose web pages in editors using rich UI widget libraries such as DOJO, YUI, and EXT and debug and trace applications from within the tool. You will be able to quickly write end-to-end web applications that use Ajax techniques for responsive web UIs. The applications you create can have mashups and feeds and accept social- or community-oriented input such as tags and recommendations. You can easily integrate the rich UIs with back-end RPG or Cobol processing.
System i customers have long asked for a more lightweight tooling that focuses on the work at hand. Shops have reported that WDSc and WDSc AE are too big, contain features they are not using, and cause a slow startup time. The new lightweight RDi tool offers significant enhancements to let System i customers improve their application development. RDi is IBM's Eclipse-based answer to ADTS. (The product ID is 5733RDi for the configurator and 5724T82 for passport advantage.)
Like all other strategic IBM tools, RDi is based on the Eclipse platform and is exceptionally light with minimal resource requirements. It is certified to run on a desktop machine with as little as 512 MB of memory. IBM has focused on the needs of RPG, Cobol, and CL developers and is offering high-performance edit, compile, and debug capabilities, along with access to i5/OS resources and facilities.
The Remote System Explorer (RSE), which appears in WDSc, is now part of RDi and offers many powerful functions compared with the existing CODE/400 product and ADTS.
The new features of RDi include
RDi 7.1 also comes with many major new enhancements. Application diagram was first introduced in version 7.0 and helped shops visualize their applications using capabilities such as call graphs showing subroutine, procedure, and program calls.
To see an application visually, you pick resources by right-clicking and selecting Visualize Application Diagram. You will see a graph as Figure 3 [4] shows. You can select any native members, including programs (*PGMs), service programs (*SRVPGMs), IFS files, local files on your machine, and i5/OS project resources.
If you happen to have the source member open in the LPEX editor, you can also do the same command by right-clicking and selecting Visualize Application Diagram.
The application diagram helps with modernization by expediting the turning of existing RPG applications into service programs and letting users participate in SOA. The new application diagram in RDi brings additional capabilities, such as
In addition, RDi includes the second phase of the screen designer for 5250 screen design directly in RDi. All the functionality of the screen designer and the application diagram originally available in WDSc AE is now available in RDi.
The RDi 7.1 release also offers V6R1 language support for RPG, Cobol, and CL; Remote Systems LPEX Editor with language parsers, syntax checkers, program verifiers, and RPG content assist and wizards; online language help; error-list view enhancements; outline view enhancements; and new find-date in the editor.
RDi does not contain the web development tools or other features previously included in WDSc. This tool is built specifically for RPG, Cobol, and CL developers. In addition, RDi is user-priced so that you can buy as many or as few copies of the product as you need. RDi integrates with other Rational products, giving additional features and functions. The key to this is the fact that you add these features as needed. System iNEWS will include coverage of these specific enhancements in future issues.
RDi SOA is designed for the developer who needs to build web applications, web services, or functionality beyond basic RPG, Cobol, or CL development. Note that RDi SOA is a software bundle that contains two sets of interrelated capabilities. RDi SOA is a combination of RDi, RBD with EGL, and HATS for 5250 toolkit. It is intended for developers who want to leverage and extend existing RPG or Cobol applications to the web or to an SOA-based environment.
RDi SOA provides web development support with the Web Design tools and Java Server Faces (JSF) support in the product. It includes the web service wizards and tooling required to enable ILE RPG or Cobol programs to implement or consume web services. (The RDi SOA product ID is 5733SOA for the configurator and 5724T83 for password advantage.)
For the last several years, IBM has been consolidating its two presentation-integration (refacing) technologies: WebFacing and HATS. A common runtime and tier-based pricing structure called WDHT, introduced in 2006, let customers take full advantage of both technologies. In 2007, the concept of "interoperability" was introduced so that the technologies could work together. In this release, IBM rebrands, renames, and repackages the common runtime as Rational Host Access Transformation Services (HATS) for 5250 applications. The WebFacing tool, which has traditionally shipped as part of WDSc and WDSc AE, will be an optional installable component in the HATS Toolkit. The fully functional HATS Toolkit will still be available for free download from the web and will also ship with RDi SOA. After customers are ready to deploy their HATS applications to production to either reface or deliver a web service, they simply purchase the appropriate number of HATS licenses for 5250 applications.
IBM has also introduced several functional enhancements. With HATS technology, you can create web applications that provide screen transformation access to your host applications from mobile devices. With HATS for 5250 applications, you can develop HATS portlets that comply with the standard Java Portlet Specification (JSR 168) API. You can update web services even more easily. Also, there is a technical preview of Visual Macro Editor, a tool that lets the developer visually develop macros. Finally, the new WebFacing Application Bridge lets applications built with the WebFacing component transfer control and data to and from other web applications, such as EGL, giving you the ability to combine HATS, WebFacing, and EGL into a single application.
The biggest enhancement IBM added to RPG IV in March 2008 is a true multiple-threading capability that is native to the language. Multi-threading gives you the ability to run in multiple threads with each thread allocated to its own static storage. You simply indicate THREAD(*CONCURRENT) on the control specification of a module to enable this function. Multiple threads can run in the module at the same time, and by default, static variables are defined so that each thread will have its own copy of the static variable. This makes them thread-safe. You can define individual variables and indicate that they be shared by all threads using STATIC(*ALLTHREAD). If you are familiar with Java, you'll notice that this is similar to defining class variables. These variables are not thread-safe by default.
Another major enhancement is the ability to define files locally in procedures. After the P-spec, you can now define one or more files. You can accomplish Input/Output to local files only with data structures. In addition, there are no I-specs and O-specs for local files. Note also that by default, the storage associated with local files is automatic; the file is closed when the subprocedure returns normally or abnormally. You can use the STATIC keyword to indicate that all invocations of the procedure will use the same open file. If the file is open when the procedure returns, it will remain open for the next call to the procedure.
IBM has also introduced the MAIN keyword on the control specification. It designates one subprocedure as being the main procedure that gains control when the program is called. In addition to being the program-entry procedure, the main subprocedure is like any other subprocedure. It does not use the RPG cycle. The prototype for the main subprocedure must have the EXTPGM keyword; the main subprocedure can be called only by a program call.
IBM has added enhancements related to the use of files that come in the form of keywords on the F-spec. The new enhancements deal with qualified formats, the LIKEFILE keyword, a new template keyword, passing files as parameters, EXTDESC to specify the file to be used at compile time, and an allow-data structure in the result field for EXTFMT.
Other new embellishments include significantly higher limits for the size of variables (from 64 KB to 16 MB), a growth in the number of elements in an array from 32 KB to 16 MB, an increase in the length of string literals from 32 KB to 16 MB, the relaxation of some UCS-2 rules (available starting in V5R3 through PTFs), the reduction of some module sizes, and the ability to store parameter information in the program.
To prepare for the future, you should continue to modernize your RPG IV code to make it more modular, use procedures, avoid mixing business logic with the user interface, and take advantage of EGL. IBM has added enhancements in RDi and RDi SOA that you have asked for. Expect to see great enhancements in RPG IV in the future to further integrate it with EGL to provide you with a better web experience.
With this many changes in System i application development, there are bound to be questions. Watch for a future article in which I attempt to answer some of the hot ones.
George N. Farr has been a tester, developer, team leader, technical planner, and development manager for System i compilers since the inception of AS/400. He is the world-wide product manager for all System i development tools and compilers.
Links:
[1] http://systeminetwork.com/author/george-farr
[2] http://systeminetwork.com/files/21228-Fig1.gif
[3] http://systeminetwork.com/files/21228-Fig2.gif
[4] http://systeminetwork.com/files/21228-Fig3.gif