As I promised in my inaugural column, I'm going to use this installment to explain just what the WebSphere Application Server (WAS) is and what it can do for you. And though Dr. Schweitzer's comment was meant in a completely different context, those of you who are embarking on the road to Web application deployment will need to learn how to serve, lest your days be fraught with sorrow and frustration. So strap in; this may be a little bit of a bumpy ride, but you'll be happier for it.
In this article, I'll review...
- The difference between an HTTP server and a Web application server
- The difference between the classic IBM HTTP server and the powered-by-Apache HTTP server
- The difference between WebSphere and Tomcat
- The various versions, editions, and platforms of WebSphere
First, I'd like to quickly review exactly what a Web application server is. In its simplest terms, a Web application server is the piece of software that makes servlets and JavaServer Pages (JSPs) run. However, in order to make servlets work, there are really two pieces of software required: the HTTP server and the Web application server. The HTTP server is the piece of software that serves up static Web pages. It also calls CGI programs, which in the iSeries world usually means RPG CGI programs. If your Web development environment will consist solely of Web pages and RPG CGI programs, you don't even need a Web application server. All you need is the standard iSeries HTTP server.
But even that simple answer is not quite as clear-cut as it used to be, because today the iSeries has not one but two different "standard" HTTP servers: the "classic" IBM HTTP server and the newer "powered-by-Apache" HTTP server. (I told you it would be a little confusing.) Today, I use the classic server, but my company is doing a lot of research on the powered-by-Apache server, since Apache is the stated direction of IBM. In a subsequent column, I'd like to review some of the differences between these two, but for the purposes of the WebSphere discussion, either server works fine.
For this column, I'll assume that you're going to use servlets and/or JSPs. How you actually design and deploy your application is a discussion for a different day, but no matter which architecture you choose, you'll need to use a Web application server. Again, the choice isn't cut and dried. The iSeries supports two very different Web application servers: WebSphere and Tomcat. I know, I know, we're already at four different configurations, and we haven't even begun to talk about WebSphere. I'll try to keep things simple, but this is important information.
The difference between WebSphere and Tomcat is immense, and it goes to show how even open source projects can become very fragmented. While both WebSphere and Tomcat are based on Sun Microsystems' original servlet specifications, WebSphere is IBM's proprietary system and Tomcat is an open source implementation. Even though they are both intended to do the same thing, how they do them is very different. More importantly, how they are configured to do them is very different. While each runs via a number of configuration files, the Tomcat configuration is entirely different than the WebSphere configuration.
But rather than clutter this column with the minutiae of the differences between the two Web application servers, I'm instead going to whittle down the options a little more. Not only am I assuming that you're going to use servlets, I'm also assuming that you're going to use WebSphere rather than Tomcat. Like the differences between the classic IBM HTTP server and the new powered-by-Apache server, the differences between WebSphere and Tomcat should be explored before you make any deployment decisions, but I'll leave that for another column on another day as well.
So, now that I've narrowed the focus to WebSphere, you might be breathing a sigh of relief, thinking that the choices are over and we can move on to implementation. Unfortunately, that's not the case. Even within WebSphere there are several versions, and each version has different editions, not to mention the fact that WebSphere is also targeted for several operating systems besides OS/400.
WebSphere has had six major version releases to date: 1.0, 1.1, 2.0, 3.0, 3.5 and 4.0. Of these, 1.0 through 3.0 were what I consider "warm-up" releases, and in fact the changes from 2.0 to 3.0 were so substantial that they seemed like different products. The biggest change was the introduction of something called the "Administration Client," or adminclient. The adminclient is a PC-based product that is required for configuring your iSeries WebSphere software. Not only that, it requires a relatively hefty machine running either Windows NT or Windows 2000. In a later column, I'll talk about the Administration Client and what it does and how it does it, but for now, just be prepared for the fact that in order to run WebSphere on the iSeries, you need a relatively high-powered PC running Windows NT or 2000 (I think there's also an AIX version of the adminclient, but in most shops AIX workstations are even rarer than Windows 2000 machines).
Version 3.5 was basically an upgraded Version 3.0, since the product interface remained essentially the same. Version 3.5 also has the distinction of being the last free version of WebSphere. This is because, up to and including Version 3.5, there were two different "editions" of WebSphere: the Standard Edition and the Advanced Edition. The Standard Edition was free, but it didn't support certain features like Enterprise Java Beans (EJBs) that were supported in the extra-charge Advanced Edition. Even so, it was perfectly suited for deploying servlets and JSPs. When Web-enabling legacy systems, there is no need for EJBs, so the Standard Edition has been an excellent option. This allowed a nice, smooth migration path: You'd Web-enable your existing systems with the Standard Edition, and then as you moved forward into more-advanced Web applications, you could upgrade to the Advanced Edition.
With the introduction of WebSphere Version 4.0, that all changed. IBM dropped the Standard Edition and added an Enterprise Edition. The Enterprise Edition includes CICS and MQSeries support bundled in, as well as a burgeoning new line of "business beans," in addition to the EJB and database support of the Advanced Edition. What has all this got to do with your existing systems? Not much. Unless you're building an entire system from scratch, most of these features aren't going to be in your immediate future. For a company that needs to add Web access to its existing legacy systems, Version 3.5 Standard Edition is perfectly adequate. But Version 3.5 will not be supported forever. I don't have actual dates handy, but the era of free WebSphere is coming to an end. This caused a bit of a ruckus in the user community (okay, I'll admit that I was one of the main ruckus-raisers), and IBM announced a free alternative, the Tomcat Web application server.
So for now, there is a big preliminary question in your deployment decision: Do you want to go the WebSphere route, which will eventually cost you money but will provide you with the host of services that IBM provides in the Advanced and Enterprise Editions of WebSphere, or do you want to go with Tomcat, which is free and more familiar to the open source user community but not as tightly integrated with the iSeries. Since this column focuses on the WebSphere product line and its offerings, I'll be writing primarily about the various editions of WebSphere, but I also hope to provide some information on the similarities and differences between WebSphere and Tomcat.
There are a lot of topics to cover here as we go forward. In keeping with MCMagOnline's mission to be the most user-oriented online magazine in the market, we're going to try something a little different: We're going to let you help choose the topic for the next column. Below this article, you'll find a poll--use it to vote for the topic you'd most like to see in the next installment of my WebSphere column, and I'll try to accommodate you. I'm from Chicago, so I'd advise you to vote early and vote often. Voting early will allow me time to put together the article you want to see. Voting often...well, I think the polling software is too tricky for that. In any event, I look forward to your input.