CGI and PHP: Alternatives to WebSphere

Web Languages
  • Smaller Small Medium Big Bigger
  • Default Helvetica Segoe Georgia Times

This article is not an endorsement of one type of Web architecture or another. As always, such decisions are business decisions, and your mileage may vary. If you were to ask me what I think the theoretical "best" solution is, I would say that in most cases JSP Model II with an RPG back-end is the best, which falls squarely into the WebSphere camp (or Tomcat, or a number of other J2EE Web application servers). But if it is your responsibility to determine the best solution for your company, you should explore the other technologies available. I'll give you a little background of Web application design and then get right into the various methods for creating Web applications that don't involve WebSphere. Finally, I'll briefly compare the Java approach to the others.

Given the focus of this article, I'd like to introduce the iSeries Application Architecture Initiative (IAAI). This fledgling Web site was created to identify and compare various application strategies and to provide quantitative benchmarks of different technologies. The Web site is still in its infancy, but we're adding content daily and we'd love as much participation as possible.

Now, on to today's topics:

  • Static vs. dynamic content
  • Client-side vs. server-side
  • ColdFusion, ASP, and Domino
  • Common Gateway Interface (CGI)
  • Scripting languages
  • Servlets and JavaServer Pages (JSPs)

Static vs. Dynamic Content

At the highest level, there are two kinds of Web content: static and dynamic. At its simplest, static content is simply a bunch of HTML stored in a text document. Such static pages generally don't change from day to day, much less in reaction to user input, so they cannot be used for interactive Web applications. Dynamic content is more fluid. It usually combines static elements with other data, often read from a database or calculated by a program. Dynamic content can be as simple as displaying the current date and time or as complex as a full-blown order entry system.

The original Web was designed primarily for static content, and thus HTML is primarily an output-focused language. Its input capabilities are primitive, and its user interaction almost non-existent. Today's Web applications require much more. That's why various methods have been employed to interact with the user and generate content dynamically, and all but the simplest user interface will require some help in the form of JavaScript to be really useful.

Client-Side vs. Server-Side

Dynamic Web content can be further broken down into two primary categories. With server-side generation, a program running on the host generates some or all of the HTML, which is then transmitted to the browser. With a completely server-side architecture, only HTML is sent to the browser, which then renders it. With client-side generation, code runs inside the browser to generate the user interface.
Client-side generation can be accomplished with JavaScript, with applets, or on Windows machines with classical (pre-.NET) ActiveX components. Each of these techniques runs code on the client to generate the UI. While very powerful, these techniques are not the focus of today's article. Note also that client-side and server-side generation can be (and usually are) used together on the same Web page. In particular, server-side code can be used to generate JavaScript, which is then run on the client, creating a very powerful multi-tiered architecture.

The Proprietary Solutions: ColdFusion, ASP, and Domino

Before I get into the real subject of this article, I'd like to present the original players in this marketplace. Back in the mid-'90s, before CGI and scripting languages were common in the commercial marketplace, there were a few proprietary server-side scripting languages. These languages still exist, and while they may not be growing in popularity like the newcomers, they still have their adherents.

Each of these products requires special (read: expensive) server software on the Web host, and each has its own syntax. It's difficult to get hard figures on the number of sites using the various solutions, but it's likely that more sites use ASP than the other two because all you need to run ASP pages is an IIS server, and most Web hosting providers have IIS servers. (Not only that, but reliable sources tell me that it used to be pretty easy to get your hands on a bootleg copy of IIS.) ColdFusion, acquired by Macromedia from Allaire, was at one time the biggest player in the commercial marketplace; tens of thousands of sites use ColdFusion. Again, numbers are hard to come by, but ColdFusion is still a large presence in the corporate world, and while its syntax is definitely getting a bit long in the tooth, CF enthusiasts are passionate in their love of the language. If you simply count the number of installations, Domino is perhaps the least popular of the three, but its embrace of Java as a programming language and the acquisition of Lotus by IBM have probably added some life to an otherwise declining solution.

Now that I've covered the proprietary solutions, I'd like to turn to the "free" options.

CGI and Scripting

"Free" is a relative term, but in general these solutions do not require licenses other than those you already have for your machine. Even the most "expensive" solution based on entry cost, RPG CGI, is free for anybody who has an iSeries and a compiler.

So now we come to CGI and scripting languages. The CGI specification was developed in the mid-'90s to allow a Web server to invoke a program on the server to generate HTML dynamically. How the program operates is of no concern to the Web server, though there are two primary methods: calling compiled programs that generate HTML or calling interpreters that process scripts to generate HTML.

The difference between the two is pretty specific: A CGI program is a compiled program that generates all the HTML internally, while scripting language interpreters process additional script files to generate the HTML. CGI programs are written in compiled languages such as C or RPG, while scripting languages such as Perl and PHP pass through an interpreter. The line blurs a little bit with some of the advanced CGI techniques; compiled CGI programs may also read "templates," which are similar in nature to scripts. However, the processing of a template is typically still hard-coded in the CGI program, whereas the script language interpreters are entirely controlled by the scripts themselves.

For iSeries developers, the quickest way to the Web is probably RPG CGI . While RPG is not intrinsically well-suited for CGI programming, RPG CGI has one unassailable advantage over other methods: RPG programmers don't need to learn a new language. There are books on the subject (such as Brad Stone's e-RPG books), and there are free development tools available (such as the powerful CGIDEV2 library available from the Easy400 Web site or Bob Cozzi's original CGITOOLS service program). These tools provide wrappers around the somewhat-difficult-to-use APIs that are required to write CGI programs.

Programmers familiar with other platforms might try developing CGI programs in C or C++, but neither of these languages is particularly well-suited for CGI programming. Multi-purpose compiled languages simply don't do as well for Web development as scripting languages.

Scripting Languages

So why are scripting languages so good for CGI development? Primarily because HTML by its nature is a text-based environment. RPG deals with fixed data records very nicely, and C and C++ are best suited for low-level systems programming, dealing at the bit and byte level. But HTML is a stream-oriented protocol: The Web application server sends a stream of text to the browser, which interprets the stream and renders it into graphics. (You might think C is suited to streams, but really it's too low-level a language for all the repetitive work required for Web programming; you can see a good example of this at Jukka Korpela's Web site.)

Few compiled languages were particularly comfortable in the Web programming arena, but that didn't mean all was lost. A particular class of languages mostly deriving from the UNIX platform loves stream files. These "scripting languages" are designed to support the transformation of text files from one format to another and as such are better suited to Web design from the very start.

Now, when I say "scripting languages," I don't mean that such languages are only good for quick, one-time programs (although they certainly excel in that department). Instead, these languages share a few basic characteristics. They are interpreted, which means no compilation is needed--hence, a fast development cycle. They are designed for rapid development: You don't have to declare variable types or even declare the variables at all. And finally, these languages tend to have sophisticated built-in libraries for supporting basic functions like text and files, functions that typically require you to write your own support routines in the compiled languages. Some of the more sophisticated so-called "second generation" scripting languages have support for high-level Web development functions like HTTP communications.

General-Purpose Scripting Languages

There are probably dozens of different scripting languages. Many are general-purpose scripting languages that are often used in CGI development: Perl and Python are two of those. It's important to note that nearly any language can conceivably be used as a CGI programming language, especially in the UNIX environment. For example, a simple Bourne shell script can be used as a CGI program:

echo "Content-type: text/html"
echo ""
echo "

Welcome to Bourne Shell CGI!


echo " "
echo ""

Invoked as a CGI program, this program outputs a simple Web page that prints a hello message and the current time and date. Thus, it is clear that any language that outputs data can theoretically be used for Web page development. In reality, certain requirements, such as error handling or performance, rule out some of the languages from practical use, but it is important to note that "scripting language" does not mean "Web development language."

Some general-purpose languages are better than others for Web development. Perl is designed to process any type of data and generate reports, so it is well-suited to generating dynamic HTML. Python is another language that can be used for many purposes, and it has a number of functions in its built-in library that are designed specifically for Web programming.

Web-Specific Scripting Languages

The three commercial products I mentioned earlier in this article--ColdFusion, ASP, and Domino--are all scripting languages. Another commercial product (but free to iSeries developers) is Net.Data. And while Net.Data is perhaps losing ground to other IBM initiatives, it's still a powerful and easy-to-use language.

The difference between general-purpose languages and Web scripting languages is that the Web scripting languages tend to be a superset of HTML. Domino is a little different in that it has it's own concepts for just about everything, but the rest of the languages are really just HTML with macro extensions. Take a simple ColdFusion example:

Welcome to ColdFusion!


Note that, unlike the Bourne shell example earlier, this example includes no specific "print" statements to output the constant HTML tags. Typical scripting languages include some sort of special syntax that changes the mode from "output whatever is in the script" to "execute the special commands." In ColdFusion, they are tags that start with the letters "cf." PHP is slightly different:

Welcome to PHP!

The PHP code is contained within the "online tutorial.

Servlets and JavaServer Pages (JSPs)

So how do servlets and JSPs compare to these approaches? Well, by themselves, they really don't offer a lot of advantages. Servlets are essentially CGI programs written in Java. And while Java may have some superior string-handling capabilities, it's still a new language to learn, and you have the same problems as you have with other CGI programs in that you have to format all the HTML yourself. JSPs, on the other and, use what is really a Web-specific scripting language, although the "scripting" part is actually written in Java. So while it's a little easier to write the HTML for the page, you still have to know Java to add the dynamic content. Add to this the fact that both techniques require a Web application server and the J2EE techniques don't provide any real benefits other than portability.

This changes with the introduction of the JSP Model II architecture. Without spending a lot of time on the subject, the concept of JSP Model II is a true division of duties, where a servlet invokes a back-end processor to retrieve data and then sends that data to a JSP where it is formatted for display. This architecture promotes an n-tiered, multi-language approach that provides for excellent reuse and security. None of the CGI approaches provide this sort of separation naturally. The scripting languages in particular tend to encourage the use of embedded SQL statements in the UI layer, an architectural approach that has traditionally caused problems during maintenance.

So Which Is Better, CGI or J2EE?

This is really the big debate, and as I said at the beginning, it's a business decision. You need to weigh the pros and cons of the various approaches as they apply to your particular business environment. For example, one of the biggest issues with the J2EE technique is that you need a separate Web application server such as WebSphere or Tomcat. CGI programs only require your basic Apache HTTP server and maybe an Apache mod file for performance reasons. There's also the whole Java issue; many people just aren't prepared to learn Java. So if either of those is a sticking point in your decision-making process, you may want to stick with CGI, especially since the tools keep getting better. Not only that, but there are lots of resources out there, especially for the older, more established solutions. One good place to start is the CGI Resource Index.

This can be the deciding factor. If you can find an available open-source solution that comes close to meeting your needs, you may be able to reduce your development time significantly. And while the Java open-source community has a lot of great packages that help development, some of the other communities offer entire applications. I've introduced you to the various options; it's now your job to determine what best fits your business requirements.

Joe Pluta is the founder and chief architect of Pluta Brothers Design, Inc. He has been working in the field since the late 1970s and has made a career of extending the IBM midrange, starting back in the days of the IBM System/3. Joe has used WebSphere extensively, especially as the base for PSC/400, the only product that can move your legacy systems to the Web using simple green-screen commands. Joe is also the author of E-Deployment: The Fastest Path to the Web and Eclipse: Step by Step, with WDSC: Step by Step coming out this October. You can reach him at This email address is being protected from spambots. You need JavaScript enabled to view it..

Joe Pluta

Joe Pluta is the founder and chief architect of Pluta Brothers Design, Inc. He has been extending the IBM midrange since the days of the IBM System/3. Joe uses WebSphere extensively, especially as the base for PSC/400, the only product that can move your legacy systems to the Web using simple green-screen commands. He has written several books, including Developing Web 2.0 Applications with EGL for IBM i, E-Deployment: The Fastest Path to the Web, Eclipse: Step by Step, and WDSC: Step by Step. Joe performs onsite mentoring and speaks at user groups around the country. You can reach him at

MC Press books written by Joe Pluta available now on the MC Press Bookstore.

Developing Web 2.0 Applications with EGL for IBM i Developing Web 2.0 Applications with EGL for IBM i
Joe Pluta introduces you to EGL Rich UI and IBM’s Rational Developer for the IBM i platform.
List Price $39.95

Now On Sale

WDSC: Step by Step WDSC: Step by Step
Discover incredibly powerful WDSC with this easy-to-understand yet thorough introduction.
List Price $74.95

Now On Sale

Eclipse: Step by Step Eclipse: Step by Step
Quickly get up to speed and productivity using Eclipse.
List Price $59.00

Now On Sale



Support MC Press Online





  • White Paper: Node.js for Enterprise IBM i Modernization

    SB Profound WP 5539

    If your business is thinking about modernizing your legacy IBM i (also known as AS/400 or iSeries) applications, you will want to read this white paper first!

    Download this paper and learn how Node.js can ensure that you:
    - Modernize on-time and budget - no more lengthy, costly, disruptive app rewrites!
    - Retain your IBM i systems of record
    - Find and hire new development talent
    - Integrate new Node.js applications with your existing RPG, Java, .Net, and PHP apps
    - Extend your IBM i capabilties to include Watson API, Cloud, and Internet of Things

    Read Node.js for Enterprise IBM i Modernization Now!


  • Profound Logic Solution Guide

    SB Profound WP 5539More than ever, there is a demand for IT to deliver innovation.
    Your IBM i has been an essential part of your business operations for years. However, your organization may struggle to maintain the current system and implement new projects.
    The thousands of customers we've worked with and surveyed state that expectations regarding the digital footprint and vision of the companyare not aligned with the current IT environment.

    Get your copy of this important guide today!


  • 2022 IBM i Marketplace Survey Results

    Fortra2022 marks the eighth edition of the IBM i Marketplace Survey Results. Each year, Fortra captures data on how businesses use the IBM i platform and the IT and cybersecurity initiatives it supports.

    Over the years, this survey has become a true industry benchmark, revealing to readers the trends that are shaping and driving the market and providing insight into what the future may bring for this technology.

  • Brunswick bowls a perfect 300 with LANSA!

    FortraBrunswick is the leader in bowling products, services, and industry expertise for the development and renovation of new and existing bowling centers and mixed-use recreation facilities across the entertainment industry. However, the lifeblood of Brunswick’s capital equipment business was running on a 15-year-old software application written in Visual Basic 6 (VB6) with a SQL Server back-end. The application was at the end of its life and needed to be replaced.
    With the help of Visual LANSA, they found an easy-to-use, long-term platform that enabled their team to collaborate, innovate, and integrate with existing systems and databases within a single platform.
    Read the case study to learn how they achieved success and increased the speed of development by 30% with Visual LANSA.


  • Progressive Web Apps: Create a Universal Experience Across All Devices

    LANSAProgressive Web Apps allow you to reach anyone, anywhere, and on any device with a single unified codebase. This means that your applications—regardless of browser, device, or platform—instantly become more reliable and consistent. They are the present and future of application development, and more and more businesses are catching on.
    Download this whitepaper and learn:

    • How PWAs support fast application development and streamline DevOps
    • How to give your business a competitive edge using PWAs
    • What makes progressive web apps so versatile, both online and offline



  • The Power of Coding in a Low-Code Solution

    LANSAWhen it comes to creating your business applications, there are hundreds of coding platforms and programming languages to choose from. These options range from very complex traditional programming languages to Low-Code platforms where sometimes no traditional coding experience is needed.
    Download our whitepaper, The Power of Writing Code in a Low-Code Solution, and:

    • Discover the benefits of Low-code's quick application creation
    • Understand the differences in model-based and language-based Low-Code platforms
    • Explore the strengths of LANSA's Low-Code Solution to Low-Code’s biggest drawbacks



  • Why Migrate When You Can Modernize?

    LANSABusiness users want new applications now. Market and regulatory pressures require faster application updates and delivery into production. Your IBM i developers may be approaching retirement, and you see no sure way to fill their positions with experienced developers. In addition, you may be caught between maintaining your existing applications and the uncertainty of moving to something new.
    In this white paper, you’ll learn how to think of these issues as opportunities rather than problems. We’ll explore motivations to migrate or modernize, their risks and considerations you should be aware of before embarking on a (migration or modernization) project.
    Lastly, we’ll discuss how modernizing IBM i applications with optimized business workflows, integration with other technologies and new mobile and web user interfaces will enable IT – and the business – to experience time-added value and much more.


  • UPDATED: Developer Kit: Making a Business Case for Modernization and Beyond

    Profound Logic Software, Inc.Having trouble getting management approval for modernization projects? The problem may be you're not speaking enough "business" to them.

    This Developer Kit provides you study-backed data and a ready-to-use business case template to help get your very next development project approved!

  • What to Do When Your AS/400 Talent Retires

    FortraIT managers hoping to find new IBM i talent are discovering that the pool of experienced RPG programmers and operators or administrators is small.

    This guide offers strategies and software suggestions to help you plan IT staffing and resources and smooth the transition after your AS/400 talent retires. Read on to learn:

    • Why IBM i skills depletion is a top concern
    • How leading organizations are coping
    • Where automation will make the biggest impact


  • Node.js on IBM i Webinar Series Pt. 2: Setting Up Your Development Tools

    Profound Logic Software, Inc.Have you been wondering about Node.js? Our free Node.js Webinar Series takes you from total beginner to creating a fully-functional IBM i Node.js business application. In Part 2, Brian May teaches you the different tooling options available for writing code, debugging, and using Git for version control. Attend this webinar to learn:

    • Different tools to develop Node.js applications on IBM i
    • Debugging Node.js
    • The basics of Git and tools to help those new to it
    • Using as a pre-built development environment



  • Expert Tips for IBM i Security: Beyond the Basics

    SB PowerTech WC GenericIn this session, IBM i security expert Robin Tatam provides a quick recap of IBM i security basics and guides you through some advanced cybersecurity techniques that can help you take data protection to the next level. Robin will cover:

    • Reducing the risk posed by special authorities
    • Establishing object-level security
    • Overseeing user actions and data access

    Don't miss this chance to take your knowledge of IBM i security beyond the basics.



  • 5 IBM i Security Quick Wins

    SB PowerTech WC GenericIn today’s threat landscape, upper management is laser-focused on cybersecurity. You need to make progress in securing your systems—and make it fast.
    There’s no shortage of actions you could take, but what tactics will actually deliver the results you need? And how can you find a security strategy that fits your budget and time constraints?
    Join top IBM i security expert Robin Tatam as he outlines the five fastest and most impactful changes you can make to strengthen IBM i security this year.
    Your system didn’t become unsecure overnight and you won’t be able to turn it around overnight either. But quick wins are possible with IBM i security, and Robin Tatam will show you how to achieve them.

  • Security Bulletin: Malware Infection Discovered on IBM i Server!

    SB PowerTech WC GenericMalicious programs can bring entire businesses to their knees—and IBM i shops are not immune. It’s critical to grasp the true impact malware can have on IBM i and the network that connects to it. Attend this webinar to gain a thorough understanding of the relationships between:

    • Viruses, native objects, and the integrated file system (IFS)
    • Power Systems and Windows-based viruses and malware
    • PC-based anti-virus scanning versus native IBM i scanning

    There are a number of ways you can minimize your exposure to viruses. IBM i security expert Sandi Moore explains the facts, including how to ensure you're fully protected and compliant with regulations such as PCI.



  • Encryption on IBM i Simplified

    SB PowerTech WC GenericDB2 Field Procedures (FieldProcs) were introduced in IBM i 7.1 and have greatly simplified encryption, often without requiring any application changes. Now you can quickly encrypt sensitive data on the IBM i including PII, PCI, PHI data in your physical files and tables.
    Watch this webinar to learn how you can quickly implement encryption on the IBM i. During the webinar, security expert Robin Tatam will show you how to:

    • Use Field Procedures to automate encryption and decryption
    • Restrict and mask field level access by user or group
    • Meet compliance requirements with effective key management and audit trails


  • Lessons Learned from IBM i Cyber Attacks

    SB PowerTech WC GenericDespite the many options IBM has provided to protect your systems and data, many organizations still struggle to apply appropriate security controls.
    In this webinar, you'll get insight into how the criminals accessed these systems, the fallout from these attacks, and how the incidents could have been avoided by following security best practices.

    • Learn which security gaps cyber criminals love most
    • Find out how other IBM i organizations have fallen victim
    • Get the details on policies and processes you can implement to protect your organization, even when staff works from home

    You will learn the steps you can take to avoid the mistakes made in these examples, as well as other inadequate and misconfigured settings that put businesses at risk.



  • The Power of Coding in a Low-Code Solution

    SB PowerTech WC GenericWhen it comes to creating your business applications, there are hundreds of coding platforms and programming languages to choose from. These options range from very complex traditional programming languages to Low-Code platforms where sometimes no traditional coding experience is needed.
    Download our whitepaper, The Power of Writing Code in a Low-Code Solution, and:

    • Discover the benefits of Low-code's quick application creation
    • Understand the differences in model-based and language-based Low-Code platforms
    • Explore the strengths of LANSA's Low-Code Solution to Low-Code’s biggest drawbacks



  • Node Webinar Series Pt. 1: The World of Node.js on IBM i

    SB Profound WC GenericHave you been wondering about Node.js? Our free Node.js Webinar Series takes you from total beginner to creating a fully-functional IBM i Node.js business application.
    Part 1 will teach you what Node.js is, why it's a great option for IBM i shops, and how to take advantage of the ecosystem surrounding Node.
    In addition to background information, our Director of Product Development Scott Klement will demonstrate applications that take advantage of the Node Package Manager (npm).
    Watch Now.

  • The Biggest Mistakes in IBM i Security

    SB Profound WC Generic The Biggest Mistakes in IBM i Security
    Here’s the harsh reality: cybersecurity pros have to get their jobs right every single day, while an attacker only has to succeed once to do incredible damage.
    Whether that’s thousands of exposed records, millions of dollars in fines and legal fees, or diminished share value, it’s easy to judge organizations that fall victim. IBM i enjoys an enviable reputation for security, but no system is impervious to mistakes.
    Join this webinar to learn about the biggest errors made when securing a Power Systems server.
    This knowledge is critical for ensuring integrity of your application data and preventing you from becoming the next Equifax. It’s also essential for complying with all formal regulations, including SOX, PCI, GDPR, and HIPAA
    Watch Now.

  • Comply in 5! Well, actually UNDER 5 minutes!!

    SB CYBRA PPL 5382

    TRY the one package that solves all your document design and printing challenges on all your platforms.

    Produce bar code labels, electronic forms, ad hoc reports, and RFID tags – without programming! MarkMagic is the only document design and print solution that combines report writing, WYSIWYG label and forms design, and conditional printing in one integrated product.

    Request your trial now!

  • Backup and Recovery on IBM i: Your Strategy for the Unexpected

    FortraRobot automates the routine tasks of iSeries backup and recovery, saving you time and money and making the process safer and more reliable. Automate your backups with the Robot Backup and Recovery Solution. Key features include:
    - Simplified backup procedures
    - Easy data encryption
    - Save media management
    - Guided restoration
    - Seamless product integration
    Make sure your data survives when catastrophe hits. Try the Robot Backup and Recovery Solution FREE for 30 days.

  • Manage IBM i Messages by Exception with Robot

    SB HelpSystems SC 5413Managing messages on your IBM i can be more than a full-time job if you have to do it manually. How can you be sure you won’t miss important system events?
    Automate your message center with the Robot Message Management Solution. Key features include:
    - Automated message management
    - Tailored notifications and automatic escalation
    - System-wide control of your IBM i partitions
    - Two-way system notifications from your mobile device
    - Seamless product integration
    Try the Robot Message Management Solution FREE for 30 days.

  • Easiest Way to Save Money? Stop Printing IBM i Reports

    FortraRobot automates report bursting, distribution, bundling, and archiving, and offers secure, selective online report viewing.
    Manage your reports with the Robot Report Management Solution. Key features include:

    - Automated report distribution
    - View online without delay
    - Browser interface to make notes
    - Custom retention capabilities
    - Seamless product integration
    Rerun another report? Never again. Try the Robot Report Management Solution FREE for 30 days.

  • Hassle-Free IBM i Operations around the Clock

    SB HelpSystems SC 5413For over 30 years, Robot has been a leader in systems management for IBM i.
    Manage your job schedule with the Robot Job Scheduling Solution. Key features include:
    - Automated batch, interactive, and cross-platform scheduling
    - Event-driven dependency processing
    - Centralized monitoring and reporting
    - Audit log and ready-to-use reports
    - Seamless product integration
    Scale your software, not your staff. Try the Robot Job Scheduling Solution FREE for 30 days.