If you don't buy your business applications, you have to build them. If you have to build them, your development staff could benefit from some of these tools.
Although application software vendors are getting better at customizing their wares for use by companies that need a slightly different flavor of widget, many enterprises still favor tailoring their business apps from the ground up. Creation, maintenance, and feeding of in-house apps is a time-honored practice in the Power Systems/IBM i world and is unlikely to change soon. For response time on change requests and software tailoring to an enterprise's actual business practices, in-house developers are hard to beat.
This Is the House That Jack Built
Fortunately for the designers and developers in the IBM i world, there are plenty of tools out there to help them besides the copy of SEU and some world-beating moxie that were the programmer's mainstays back in the AS/400 years.
In cobbling together the application of your dreams (or at least your CEO's), it's important to remember that a thorough analysis of both the needs of end users and the role a new application is to play within your organizational framework is vital to the long-term success of any software project. The temptation to short-change this process in favor of a quick fix is always present but should be resisted whenever possible.
Generally speaking, the challenge is not so much to find a good product to help with the construction process as it is to find a solution with features that match your business needs and cater to the strengths of your programming team. This article provides a quick survey on the choices available for giving IBM i program builders a leg up on those hefty coding projects.
A Focus on the Foundation
Because the generic term "application development tools" can cover a wide range of program-building mechanisms, here we'll limit the product sampling to include only those software products that help developers build new applications. Of necessity, we'll leave out such closely allied aids as change-management and software lifecycle tools, user-interface generators, database editors and other data-related utilities, programmer productivity tools, migration assistants, middleware code generators, and application testing tools. These all have their place in the application-development lifecycle and can be instrumental in creating certain kinds of business software, but by definition these solutions can't create business applications by simply adding them to a programmer's workstation.
If you're interested in Web-enabling or modernizing existing applications, please see "Facing the Strain: Web-Enablement Tools for System i" or "More Tools for Putting Apps on the Web" for an overview of the former and "SOA Tools for IBM i: Quaffing the Bubbly" for some help with the latter. While there will be some overlap with products in those articles, here we'll cover only those solutions that help build brand-new apps—even if in some cases the products mentioned here can also do Web conversions, interface generation, or migrations from one computer language to another—and may include such bonus features as lifecycle-management help.
A Peek at Framing and Drywall
The products available for building IBM i apps fall into some very broad categories. A very brief overview of their strengths may point you in the right direction to start your search for a building tool set.
Some solutions are integrated development environments (IDEs), which means you can count on inclusion of some kind of a code editor, a compiler, a debugger, and tools that help automate some or all of the build process. IDEs sometimes also include some kind of user interface generator, version controls, and other features that will vary from product to product.
Rapid Application Development (RAD) tools focus on a faster software development process than some other methods by concentrating on nailing down user requirements and prototyping code for the base application quickly. The issue of whether or not to use a RAD tool is largely affected by the simplicity of the applications you plan to build and whether the app will interact with other programs. RAD tools work best for standalone apps and other software that isn't part of a much larger system. Complex or multiplatform apps, or apps that must interact successfully with a range of other software, require more planning, and that can dilute the advantage of rapid code prototyping.
Generally speaking, application generators rely on a business description of a desired outcome for an application and automate the code-generation process from that input. There is a body of opinion that views this as a good method for prototyping a system but not for producing a final version. The code generated isn't necessarily optimized for all computing and business environments, so if peak performance over the long haul is important for a particular application, additional steps may be needed to tune code from application generators. For smaller enterprises or simpler applications, code produced by application generators may perform sufficiently well and be worth the gains of a shortened development time over other methods.
The remaining solutions surveyed below don't fall neatly into any of these three categories. Instead, they represent a range of tools that, for varying costs in time and money, provide different degrees of help for application developers. Matching the urgency of a project and the skill levels of the programming team are the best guidelines for deciding what tool is best for your enterprise's situation.
Please bear in mind that the descriptions offered for each product are simply summaries of the most pertinent features and are in no way a complete description of each product's capabilities. You should consult the links provided and other documentation available from the respective vendors to get a true picture of each product's feature set.
And as always when looking for products or services, be sure to check the MC Press Online Buyer's Guide.
Development Tools for Building New IBM i Applications
Apache Software Foundation (ASF)
Apache Wicket is an open-source application framework that lets users build new apps using Java and HTML. Wicket is supported by a community of developers and a growing set of open-source programming tools. To operate, it requires a Java compiler and the Apache Tomcat server on the System i. Note that ASF is a membership community of individuals rather than corporations.
THE Editor's Choice is a source-code editor for RPG that helps developers build, format, navigate, and comprehend code in both new and old applications.
Applied Logic Corporation
Although it originated as a change-management solution, PDE/400 has grown to include application-development and documentation features. PDE also offers project-management, application-testing, and project-history reporting capabilities.
AVR for .NET is an RPG compiler for Microsoft's .NET framework that integrates with Microsoft Visual Studio and lets developers build new RPG or Windows apps, as well as modernize existing apps to accommodate Web services, provide data transparency between Windows and System i databases, and extend RPG source to be compatible with industry standards (e.g., XML, SOAP, RIA).
Business Computer Design International (BCD)
WebSmart ILE is a rapid Web application design tool for building CGI-based software that accesses DB2/400, SQL, and MySQL databases. Applications run under the basic Apache HTTP Web server.
WebSmart PHP functions similarly, generating applications in the PHP language, but generated apps can access a wider range of databases on multiple platforms.
Both WebSmart tools offer highlights such as support for Web 2.0 features, an interactive debugger, visual HTML editing, and change-management tools. Developers can use both products to either generate new software or enhance and Web-enable legacy apps.
CA's 2E provides an IDE for System i apps, as well as modernization options for existing apps. It generates source code in RPG, COBOL, RPG ILE, and COBOL ILE. It features model-based development, relational database design to support apps, reusable objects, direct-to-Web deployment options, and full lifecycle support tools for developed apps.
CA Plex is a multiplatform RAD tool that helps programmers build apps for server, Web, and SOA environments. Features include a language editor, GUI screen designers, a diagrammer, drag-and-drop business objects, and impact-analysis tools.
CoralTree Systems Ltd.
The Renaissance Framework is an open-source platform for building CGI-based applications that run on IBM i. The framework includes reusable RPG ILE programs, service programs, Java scripts, and HTML code blocks that can serve as components for new software. Applications built using the framework require the System i Apache HTTP Server active on the host system to operate. Other framework features include tools for session management, user security, audit trails, performance monitoring, and application-resource locking controls.
Valence offers an application framework for building RPG-based Web apps that run on IBM i or retrofitting IBM i apps to run in a Web 2.0 environment. It includes a library of Java scripts that work with RPG, Web 2.0 browser components, a Web portal, integrated email support, an integrated PDF generator, and utility procedures for working with IFS paths.
GeneXus X is a tool set for developing and maintaining applications for multiplatform use, including on IBM i. The product features include knowledge-based design, platform-independent design and prototyping, automatic code and database generation, automatic migration of data from old to new schema, and automatic maintenance and generation of application documentation.
Rational Developer for i for SOA Construction specializes in providing an IDE for constructing Web 2.0 applications and user interfaces, as well as linking them to existing back-end server applications or modernizing those applications directly, as needed. The Eclipse-based IDE uses IBM's EGL language but can link to existing RPG and COBOL source code to emplace applications within an SOA architecture.
Previously known by other product names (most recently Rational Developer for i), Rational Developer for Power Systems Software includes facilities and tools for building new IBM i applications and modifying old ones. Features include integrated development environments for all major languages supported by the IBM i, application performance-analysis tools, programmer productivity utilities, and a collaborative application lifecycle-management environment.
WebSphere Application Server - Express provides an all-in-one solution for building dynamic Web sites and applications in Java on System i. The product provides built-in wizards and configurations, support for Web services and other Web 2.0 features, an assortment of open-standard programming models, and inherent security features.
Visual LANSA is an IDE that includes a business rules repository, an agile development language linked to the repository, a prototyping wizard, a user interface framework, a visual data modeler, a component-based architecture that enables code-sharing between projects, a library of more than 100 application templates, self-documentation and impact analysis tools, and project-tracking and version-control tools that support team programming.
RPG Toolbox is a set of productivity tools for working with RPG source code. Although mainly designed for modernizing existing applications, RPG Toolbox's extensive feature set make it useful for working with newly written RPG application code as well.
re:new is a Microsoft .NET development system for building apps that run on IBM i and Windows systems. It works with existing business logic and lets developers transform existing apps to more modern forms, as well as to build new modules and interfaces. By generating apps in .NET code, applications remain flexible enough to adapt to future changes in technology.
EngInSite Editor for PHP provides an IDE that helps developers create, edit, run, and debug application code written in the PHP language. It provides a code auto-complete function, an HTTP server emulation environment, debugging tools, code navigator, color-coding of source, and a code-performance analyzer.
Magic Software Enterprises
uniPaaS is an application generator that builds rich and classic Internet applications, server applications, and applications intended to be offered on a Software as a Service (SaaS) basis. The product has three editions with varying features, such as development wizards, multiple-language support, Web services provisioning, and XML direct access.
m-Power is a Web application development environment that generates new apps in Java. It incorporates a model-based design approach, automatic code generation, a point-and-click developer interface, and tutorials for new users.
WOW is a RAD tool and runtime engine designed to provide Web applications for the System i and other platforms. It runs on top of the IBM WebSphere server or Apache Tomcat, can access database systems of multiple vendors concurrently within generated apps, and lets developers build apps with just a browser by specifying JDBC/SQL operations and configuring metadata.
PGM's iStart is a Web application generator that can build Java-based software from new and existing databases. The product's framework controls user interaction, database access, security, and error handling.
ProData Computer Services
ProData's RPGIV Templates are a library of 15 basic programs for common application functions such as database inquiries, file maintenance, report generation, subfile selection and maintenance, and other database functions, each of which can be useful as components of custom-created applications of many kinds.
Profound Logic Software
RPG-Alive helps developers edit and analyze RPG code when building new applications or updating old ones. Available in two versions, one that augments IBM's SEU edit on the IBM i and a second GUI version that runs on PCs, RPG-Alive helps programmers with numerous editing features. These include code outlining, delimited subroutines, source color-coding, op code selection via scrolling, and highlighted comments.
RPG Smart Pages is a Web application IDE that includes an integrated visual debugger, code-editing and design tools, built-in charting, integrated source-control and change-management options, and wizards, templates, and code-snippet components that can form the building blocks of new software.
Surround's Solutions for LANSA are a family of products and services that help developers build new applications using LANSA software tools. Surround's offerings include a customizable development framework, a structured methodology and architecture for building new apps, Accelerator tools that shorten development time for producing new application interfaces, and a .NET service agent that helps integrate new applications into server and Web environments.
JACi400 is a suite of software tools that helps developers build new server-based applications, modernize existing applications, and build new (or convert older) applications that run over the Web. It generates source in COBOL and all versions of RPG, generates HTML for Web apps, includes new-app deployment tools, and includes HTML objects such as check boxes and radio buttons.
QuestView is tailored to producing data-related applications, such as inquiry or database maintenance programs. QuestView apps can be integrated with other software written in RPG or COBOL. It can help designers define external calls and restructure database fields and allows them to view underlying hexadecimal code to fix problems with zoned and packed fields.
Zend Studio is an IDE specifically designed for developing new Web and server applications in the PHP language, which run on System i servers using a PHP compiler. Zend Studio uses the Zend Framework, which offers a wide assortment of tools and resources that support application development, including enhanced source-code editing, refactoring, code assist and generation, and semantic analysis.
as/400, os/400, iseries, system i, i5/os, ibm i, power systems, 6.1, 7.1, V7, V6R1