What Is A Web Application Server?
Explanation of what application servers are, the types of application servers, and how to choose one.
As the world goes through the Internet revolution, some basic patterns are emerging. One of these basic patterns is the three-tier model for enterprise computing. This three-tier model, also referred to as three-tier architecture is based on client/server based applications. And the application server serves the middle tier of this model. It is the centerpiece of the three-tier architecture, and can be described as middle ware located between the client and data sources and/or legacy systems. The Application Server can be said to have three basic functions – communicating with back-end systems like business applications or databases, communicating with front-end clients usually Web clients and providing a framework upon which business logic can be hung. In many usages, the application server combines or works with a Web server and is called a Web application server. The Application Server is becoming increasingly popular, with many companies offering Application Servers all over the world.
Application Servers are widely categorized into three main types, the Web Information Server, the Component Broker and the Active Application Server. The Web Information Server, utilizes HTML templates and scripts to generate pages. These pages incorporate data from the databases, tehy are connected to. Some of these types of servers are Netscape Server, HAHT, Allaire, Sybase, SilverStream etc. The Component Broker Server, basically provides database access and transaction processing services to software components. This includes DLL's, CORBA, and Java Beans. Their function can be broken down to two stages. The first stage involves providing the environment for server-side components. The second stage involves providing access to the database and other services. Some such servers are MTS, Sybase Jaguar, IBM Component Broker etc. The Active Application Server, supports and provides the rich environment for server-side logic expressed as objects, rules and components. They are best suited for deal-based eCommerce and decision processing. All the three types of servers just mentioned, are stateless servers, which unlike the stateful servers, need database or transaction monitors for completing transactions.
All Application Servers have some important features like Component Management, Fault Tolerance, Load balancing, Transaction Management, Management Console and Security. Component Management refers to the feature of the Application Server, which can be said to be the manager that handles all the components and the run time services like session management, synchronous/asynchronous client notifications and executing business logic. The Fault Tolerance, is the ability of the Application Server with no single point of failure, to define policies for recovery and fail-over recovery, in the case of the failure of one or more object or group of objects. The Load Balancing aspect is the Application Server’s ability to send the request to the different servers within the set-up, depending on the load and availability of the servers. Transaction Management, is the transactional capabilities of the server, and the Management Console being the single point graphical management console for remotely monitoring clients and server clusters. Security is of course all the security features for the protection and security of the applications, database etc.
Some of the different types of servers available in the market today are listed below, along with their interface method.
Allaire ColdFusion, Interface method - ActiveX, C++, Java. Apple Web Objects, Interface method - ANSI C, C++, Java. Art Technology Group Dynamo Personalization Software, Interface method - Java. BEA Web Login Tengah, Interface method – Java. Blue Stone Sapphire, Interface method - C, C++, Java. Bullet Proof Corporation JDesigner Pro, Interface method – Java. Elemental SoftWare Drumbeat 2000, Interface method - ActiveX. GemStone Software GemStone/J, Interface method – Java. HAHT Site Application Server, Interface method - ANSI C, C++, ActiveX. Halcyon Software I-ASP, Interface method – Java. IBM WEB SPHERE, Interface method – Java. Inprise Application Server, Interface method – Java. Internova Colibri Engine, Interface method - Java, ActiveX. Intersolv NetExpress, Interface method - C++. Lona Technologies Orbix OTM, Interface method – Java. Lotus Domino, Interface method - ActiveX. Micorsoft MTS/IIS, Interface method – ActiveX. Netscape Application Server, Interface method – Java. New Atlanta Servlet Exec 2.0, Interface method – Java. Novera J Business, Interface method – Java. Open Connect System WebConnect, Interface method – Java. Oracle WAS, Interface method – Java. Pervasive Software Tango, Interface method - Java, ActiveX. Pramati Technologies Proton, Interface method – Java. Progress Softwares Aptivity, Interface method – Java. Prosyst Enterprise Beans Server, Interface method – Java. Seagate Software
Seagate Info APS, Interface method - ANSI C, C++. Secant Technologies Extreme Server, Interface method – Java. Silver Stream, Interface method – Java. Sun NetDynamics, Interface method – Java. Sybase Enterprise Application Server, Interface method - ActiveX, ANSI C, C++, Java. Tempest Messenger System, Interface method - ANSI C, C++, Java. Unify Vision App Server, Interface method - ANSI C, ActiveX. Unify Ewave Engine, Interface method – Java. Visient Arabica EJB Server, Interface method – Java. Vision Jade, Interface method – Java. VisiSoft Inc. Com Studio, Interface method - C++.
It is important to find an Application Server that fits your needs completely, that is where it becomes essential to select an Application Server with its different parameters in mind. The parameters that need to be looked into are Load Balancing, Fault Tolerance, Transaction Management, Multithreaded Architecture, Manageability, Security like support for SSL, Firewall X.509 certificates, Access Control Lists (ACL), Security Level i.e. Server Level, Service Level ,Directory Level, Object Level etc., Development and Support Tools like any Development Environment, CORBA Support, Application Portability for e.g. whether an application developed in one Application Server environment can be easily be ported on to another Application Server environment or not, EJB Support, External Data Integration Support like support to Integrate with legacy systems via: CICS, IMS, Tuxedo, MQ Series, Distributed Standards Protocols Supported , Platforms Supported like support for Windows, Solaris etc., Protocol Support like CORBA, IIOP, LDAP, JNDI, RMI, HTTP, SMTP, SNMP, NSAPI and ISAPI etc., Database Supported like support for ODBC, JDBC, Oracle, Sybase, MS-Access etc., Modeling Tool Supported like support for Rational Rose etc., Connectivity to ERP like SAP, PeopleSoft, BAAN etc., API Support/Proprietary Script like PL/SQL cartridge in Oracle WAS, CSP Spider in NetDynamics etc., Third Party Web Server Support like Oracle WAS has it's own Listener still it supports IIS/NetScape etc., Third Party Tools Support, Any other additional features of the server like XML Support, JSP support etc.
Looking at the wide variety of Application Servers, their use and their characteristics, it is clear that the Application Server is here to stay.