November 1998


Web Application Servers


New environments let you concentrate on writing business logic.

Maybe you don't talk about Web years as much you did two years ago, but let's face it, the Web has come a long way in a very short time. If the Web were a race car, we'd say it accelerated from zero to 100 MPH in under 6 seconds—with patchy tires and held together with bailing wire and chewing gum. That's one way to describe the set of tools that Web developers had to use only a short time ago.

However, as the Web moved from simple document display to functioning as an application platform, the need for industrial-strength application tools became acute. Real integrated-development environments emerged, bringing old-fashioned niceties like syntax checking and project management to Web application development. Now Visual Basic, the classic client/server tool, is increasingly useful for Web applications, and the Java world is developing its own analogs.

Still, application development is not just about programming tools. A good IDE can become a cell in which the prisoner must code every tiny function he or she needs. Whether you're in a budget-constrained IS department or hotly competing with other independent developers, productivity often requires more than a good code editor. That's especially true as Web apps increasingly adopt complex n-tier architectures and have to integrate with existing corporate applications.

Enter the Web application server.

Much of what any developer does in creating serious Web applications involves a lot of near-generic functions. You know the list: It ranges from opening database connections and establishing thread pools for those connections, to keeping state for users, to delivering the screen equivalent of database reports. Much of the work involves repetitive function; little of it is specific to the business process you're trying to code in your application. The first attraction of a Web application server is to assume as much of that underlying generic function as is reasonable and expose it to you in the form of simple interfaces. Fortunately, component-based programming makes that dream a reality.

Increasingly, Web application servers are taking on runtime functions as well. Transaction integrity, failover, and load balancing are three hot items on many developers' Web wish lists, and you may find what you need pre-built in some of the more advanced Web application servers. If you need an environment that allows you to build your own function in a highly productive process along with a lot of pre-built function, then you're a serious candidate for Web application server ownership.

This month we give you a hands-on, in-depth look at three of the hottest application servers on the market: ColdFusion 4.0, SilverStream 2.0, and WebSphere 1.0. We asked developers to work with the beta releases of these three environments, build a project with them, and give you a sense of what using them is like. If you're thinking of adopting a Web application server as a standard environment, check these three out. If you're already a ColdFusion or SilverStream user, you'll get a good sense of what upgrading will mean for you.

But these three aren't the only choices; you'll find at least 13 others on the market (see Table).

So which Web application server is right for you? As always, that depends. From a development point of view, some Web app servers are more complete than others. Do you want an environment that offers a lot of pre-built components? Do you want one that's also a component-building environment? Or do you want the environment to integrate with your existing tools? You may find the more general-purpose development environments, including some of the new breed of Java application servers, will fit your needs just fine. But Web application servers often deliver the Web-specific functions that are hard to find elsewhere.

What kind of components do you want to use? As you'll see in this article, SilverStream and WebSphere are highly Java-oriented. So are several others on the market—Ejipt and PowerTier, for example, both boast the ability to act as Enterprise JavaBean servers. If you've been a PowerBuilder jockey, you'll find some attractive migration features in Sybase's Enterprise Application Server and related products. If your needs run to C++, Visual Basic, or other languages, you'll find environments that match those needs, too.

Look closely at how well a Web application server meets your needs for cross-platform operation. Some run only on one operating system, several run on both Windows NT and Unix, and then there's WebSphere. You can deploy it on anything from free Apache on a PC to OS/390 on a mainframe (yes, people do run Web servers on mainframes now). Some work with most Web servers, while others are focused on one or two popular ones.

Beyond the operating system, what database and middleware do you have to integrate with, COM or CORBA? Some offer a choice, others lock you in. When it comes to databases, Oracle, Sybase, and Progress all have Web application servers. They're general purpose, but if you use their databases as well, you'll gain some advantages in integrating with the entire database programming and operations environment each vendor offers.

An increasingly important reason to adopt a Web application server is that it can fortify your deployment environment. If your main goal is high-volume deployment without high-cost servers, you'll want to look closely at those servers with load-balancing functions. Some, like the Netscape Application Server, have a tightly integrated clustering mechanism. Others, like ColdFusion, use third-party products. Each of these has slight differences in how failover and load balancing work that could prove crucial in your applications.

By now, some of you are screaming "What about Microsoft?" The combination of Internet Information Server (IIS), Visual Studio, COM, and Microsoft Transaction Server give you the function of a Web application server. You might say that Windows NT 4.0 has its own Web application server built in, and NT 5.0 looks like it is oriented even more in that direction. Clustering capability has been something of a hole in the Microsoft Web story, but the company has apparently solved that with the recent purchase of Convoy.

The Microsoft Web environment is certainly powerful, but like many others, you get the maximum effect when you stick to a few basics: IIS and its extensions as a Web server, COM for middleware, and either C++ or Visual Basic as a development language (Java's an option, but not a strong one in Visual Studio). As for hardware scalability, you can go anywhere as long as it's on Intel or Alpha.

In many ways, Web application servers are for those for whom the NT environment is either not enough or too much of the wrong thing. Several Web app servers work closely and well with NT and IIS, but also offer some expansion possibilities. ColdFusion, for example, is at home in the Microsoft world but it also runs on Solaris and Netscape. So you don't necessarily face an either/or choice with the Microsoft environment; third-party products let you have your cake and eat it, too.

One thing's for certain: Web application servers will be the subject of much discussion in the coming months. For many shops, they're the keys to reaching the next level of productivity and professionalism in Web applications, but choosing one will be akin to shooting at a moving target. New offerings and new features for old offerings will be the rule until some winners emerge and the market consolidates. Meanwhile, dig into ColdFusion, SilverStream, and WebSphere—you'll learn something about new directions in Web development.






Sponsored Links