What's an Application Server?

There are many answers to this question, but basically an application server is a piece of middle-ware software that provides a useful collection of services that enable creating, deploying, and maintaining applications. "Application Server" is frequently a term for products implementing the JEE standards, for example IBM WebSphere and Geronimo, BEA Weblogic, Oracle AS, and RedHat jBoss…but there is absolutely no reason that an Application Server be based on or utilize JAVA.

For example, the combination of a Microsoft OS (which embeds a huge number of application services) and any of the Visual development tools creates a rich and widely used “Application Server”.


Do I Really Need An Application Server

No. You don’t. There is absolutely nothing in an application server that you can’t do yourself, or potentially piece together out of Open Source, etc. On the other hand, this also means you are trying to replicate all of the required services, together with RASP and fit/finish, that the Application Server vendors have spent literally developer centuries creating.

Where the question gets fuzzier is that most new application development is SOA. By the nature of SOA, services are each fairly small and require small subsets of the services embedded in a WAS/WLS/AS or even MS middleware. This means that taking advantage of the recognized RASP and fit/finish benefits of these products costs a HUGE amount in server overheads…not to mention very high acquisition costs.

Many current Application Servers are huge and hugely vertically integrated. That tightly coupled collection of services made all sense when we were developing large scale, tightly coupled, applications, but that approach makes much less sense in today’s SOA development. The mature Application Server products are under serious pressure to devolve their products into completely modular/pluggable services containers, but de-constructing these huge tightly coupled infrastructures without breaking the RASP is a major undertaking...many won't pull it off.

So, while you DO really need some of the characteristics of an Application Server for anything important to your business (if it’s not important, then why are you writing it in the first place???), you don’t need/want the huge/complex/expensive solution. Fortunately, there are emerging alternatives, notably jBoss and Geronimo.

Neither of these currently exhibits anything like the RASP and fit/finish of the major commercial products, but Geronimo (Apache.org) is highly driven by IBM (as a huge Professional Services vendor, perhaps they gain by the lack of fit/finish???) and jBoss is now part of RedHat, who has legitimized "commercial Open Source and is investing significantly in jBoss. Both of these Open Source projects will undoubtedly continue to improve.