Retrieving and accepting data via a dynamic Web page can be a challenge—the current technologies aren’t exactly intuitive. At the very least, the experienced Web developer will find dynamic script tedious to write. That’s why so many managers are adding an application server layer to help ease the workload.
However, an application server isn’t just software that will help you quickly create and implement dynamic Web pages. It’s much more than that—it’s a technology that may impact every employee in your company. More than likely, everyone will have to become familiar with new software. This article presents information that will help you choose the best Web application server for your company’s needs.
What’s a Web application server?
Currently, three types of application server technologies are available:
J2EE Options, otherwise known as Java, is the standard for non-Microsoft
servers. Research shows that most of the major application server systems, such
as Oracle 9i and IBM’s Web Sphere, comply with J2EE. Non-Java technologies include PHP, Perl, and custom solutions (written with
C++ or others). Microsoft Technologies include Common Object Model (COM) and more recently
.NET.
A Web application server supports custom scripts that control data integration, logic, and user interface components for your Web site. The application server is software that resides between the Web browser and the database, adding an additional layer to the Web hierarchy:
Browser—Where users make requests via a Web browser application such
as Microsoft Internet Explorer or Netscape Navigator Logic—The Web application server layer Connection—ODBC and OLEDB (and vendor-specific drivers) that connect
the browser to the Web server Database—The database management system that the connection uses to
relay data to and from the browser layer
The presence of an application server can strengthen a data-driven site and resolve problems in one of three areas:
Database connectivity and stability Running and distributing non-Web applications Integrating with legacy data
By installing a Web application server, you can forego your Web server’s technology for a more easy-to-use and efficient solution. When an application server is present, a request from a browser is relayed to the application server instead of the Web server. There, the application server accepts and formats any data or requests going to the database and then hands them back to the Web server for delivery to your database, and vice versa. More specifically, the application server processes the page’s logic and scripting and then lets your Web server build the HTML necessary to respond to the visitor’s browser. It may sound like more work, but because the application server is easier to talk to, the application server usually reduces development time.
Weighing the evidence
All application servers are not created equal. Make sure the one you choose can handle your needs both now and in the future. That means you’ll want the people most familiar with your data and the business that data supports involved in this assessment process. Your controller can tell you how much you can afford to spend on the project, but he or she probably isn’t the best person to choose the actual software—unless he or she is also directly involved with supporting your data processing needs.
Almost all the application servers provide a development environment, a testing environment, a set of deployment tools, load balancing, and security features. Your purchase will commit your site (your company) to these features for the foreseeable future. Consequently, the successful application server must meet current and future business and in-house development requirements. In fact, according to a personal (and therefore unscientific) poll of peer developers, over 40 percent of application server users rate the quality and availability of a good development toolset to be one of the major requirements when evaluating servers (closely followed by the vendor’s reputation and nonproprietary software).
Assessing your needs doesn’t have to be confusing. Simply map your current environment and compare how well each potential server meets your requirements. Perhaps just as important, anticipate your growth to make sure the server has the capacity to grow with you. The following list will get you started:
Can your budget handle the costs? Application servers are expensive, and
additional resources can quickly add up. Don’t forget to include the cost of
additional development tools, hardware, personnel, and training. Can the application server handle your anticipated growth? If not, your
company may face some serious reinvestments, and you may be looking for a new
job. Are you currently locked into a vendor-specific development toolset? Your
purchase may obligate you to use a vendor-specific set of development tools, so
this is an important consideration. It can eliminate potential servers at the
beginning of the process if you’re unwilling to be tied to a specific toolset. How many users/hits are you supporting right now? What are your current connection and response rates? Do you anticipate an increase in users over the next year? If you’re building an e-commerce site, what’s the number of transactions and
transaction speed? Is the application server compatible with your existing database security?
If you’re building a public Web site, this issue is critical. You may find you
need a major overhaul. Security, from amateur, random hacking to a determined
attempt to breach your systems protection, is a serious issue. How well will the new application server software integrate with existing
applications and data formats? Don’t forget your business partners when
considering legacy applications. Will your purchase require additional training or personnel to migrate or
rewrite existing applications? Is the application server compatible with the current method of handling
state and session management? Will the purchase include all the necessary development tools? If not, what
else will you need? Be sure to include these costs in your final assessment. Will current personnel need specialized training to support the server? Will
the vendor supply training? Will you need additional personnel to support the new server? Does the application server have a backup feature? If so, how easy is it to
implement and use? Is the application server compatible to your current setup?
If not, what additional resources will be required? Does the application server provide you with any business management tools,
such as statistical analysis of visitors, and site and system performance?
Because almost all application servers are now J2EE-compliant, some of the
nontechnical bells and whistles could sway your decision.
The checklist in Table A should help you assess your current needs while
comparing them to those of a potential server. Simply list your current needs
and the server’s potential. Be sure to list additional resources as required.
This checklist isn’t meant to be all-encompassing; rather, consider it a starter
list and expect the process to generate new, more detailed questions.
Table A
| Requirement | Application
Server (Meets/Exceeds/Fails) | Implementation
Resources * | Support
Resources* | Costs for
server** | | | | | Scalability | | | | | Static
pages | | | | | Dynamic
pages | | | | | Intranet | | | | | Internet | | | | | E-commerce | | | | | Multiple
platforms | | | | | Standards | | | | | Vendor-specific development tools | | | | | Performance | | | | | In-house
users | | | | | Number of hits
per minute/hour/day | | | | | Response
rate | | | | | Anticipated
growth one year from implementation | | | | | Security | | | | | Current
level | | | | | Anticipated
growth one year from implementation | | | | | Legacy
data | | | | | Integrates
easily with existing applications/formats | | | | | Integrates
easily with business partners | | | | | State and
Session Management | | | | | Current
process | | | | | Backup | | | | | Current
procedure | | | | | Management
data | | | | | Business
analysis | | | | | Performance
analysis | | | | | *Additional
software, hardware, personnel, and training. ** Doesn't include
additional support
resources. |
|
Application server checklist All things being equal
Overall, given that most application servers offer more or less the same features, one of the most important decisions (other than cost) will be the choice of the vendor. The bottom line is that you’re entering into a long-term relationship. You want a solid foundation that can support your growth potential. Don’t restrict your plans to what’s available today—assess your future needs and the company’s willingness to help build long-lasting solutions before jumping into bed with a vendor!
What makes a good vendor? The following questions might help you weed out the weak:
Does the vendor currently have a good reputation within the existing market
and with your company? Do you have a customer service and support history with this vendor? If so,
talk to those involved to make sure this vendor follows through with promises.
If not, ask the vendor to supply contact information for a few of its current
customers and then contact them. Don’t be shy. Does the vendor have staying power, and does it continue to support products
as it releases new versions? You don’t want a vendor to force you into upgrading
if you don’t really need the additional enhancements.
Remember, you will be with the vendor for a long time—view this vendor as a strategic partner in your business.
Conclusion
Choosing an application server may be the most important decision you make regarding the future development and performance of your data-driven Web site or e-commerce store. In addition, this decision will surely impact the future development languages and growth strategies for your data processing or IT department. You aren’t buying just an application server—you’re also purchasing the development tools your staff will use for a long time. Ask the right questions of the right people before you make your purchase.