What to look for in an Application Server
At the heart of it, an application server is simply an environment that enables your enterprise applications to run and be properly serviced at runtime. Of course, there are many vendors out there that are looking to deliver everything from software that you can install and manage locally, to cloud based environments that provide an entire application server platform to you as a service. So, with all of these options available, what are the key qualities you need to look for in an application server?
Here's a list of four things you'll need to look at when evaluating application server vendors:
- Middleware Services.
- Peripheral Tools
- Cloud Readiness
The middleware services are the key services your application will leverage. If your application is acting as a simple Servlet engine, you won’t need much more than a Tomcat server. If you're application needs services such as messaging, a naming service or even a transaction management service, you’ll need to evaluate whether a Tomcat server can handle the intricacies of your transaction processing requirements. If it can't, you will need to go with a full Java EE application server that was built to handle it.
Portability is a fairly easy dimension to conquer. As long as you’re developing applications that code against the Java EE specification, you’ll be able to port your applications from any one application server to the other. The problem arises when you start using application server extensions, which are little hooks vendors provide that allow you to dig deep into the inner workings of the server. The big problem with these extensions is that there is no guaranteed portability from one server to another. Keep focused on the Java EE specification and you can avoid locking yourself into one particular server.
Most vendors provide a set of tools that work with their particular server – be it tools for coding automation scripts, performance monitoring tools, or even applications that make it easy to identify existing or potential problems by reading log files or application traces. Does a vendor provide tools that plug into your development tools such as Eclipse or NetBeans? And do these tools help simplify deployment, or the scripting of automation tasks? A good set of tooling around an application server can make the difficult tasks of deployment and troubleshooting much easier, so it's something important to consider.
And finally, how cloud-ready is your application server? There is a great push to move away from consolidated data centers and instead move to a cloud-based environment. Many application server vendors are providing paths to easily move from their server software to their in house platform, software or infrastructure as a service offering. If moving away from an in house data center is on your horizon, finding out what types of cloud based solutions that vendor offers might be a worthwhile investment in time and effort.
When scoping out the various application server offerings, there a few key points to keep in mind. Make sure any decision you make meets your need for middleware services, portability, supporting tools and cloud readiness.