|
SYS-CON.TV Webcasts
Comments
Did you read today's front page stories & breaking news?
SYS-CON.TV
|
Top Links You Must Click On
General Java Anatomy of a Java Application Server
Anatomy of a Java Application Server
By: Ajit Sagar
Apr. 1, 2000 12:00 AM
Several folks in the computing industry think of 1999 as having been the "Year of the Application Server." But while the term application server itself may be a fairly recent addition to the software computing vocabulary, the application server market has already become one of the fastest-growing markets in n-tier computing. Business analysts estimate its value as being likely to reach the multibillion-dollar level in 2001. In today's distributed computing environment, the term application server is associated with state-of-the-art technology. Perhaps that's why several vendors sell their products under the category of application servers, regardless of whether the product actually offers the features of a basic application server or not. For example, there are site builders, Web page designers, integrated development environments, Web development tools and enterprise-level development environments. The definition of what comprises an application server is more often than not open for interpretation.
What's an Application Server?
I'd like to take a stab at defining an application server as follows: an application server is a computer program that resides on a server in a distributed network and whose main function is to provide the business logic for an application program; an application server provides a customizable and flexible execution environment for hosting business logic components, thus providing distributed services and integrity for application execution. Traditionally, the application server has been associated with three-tier applications. To recap, the components of a three-tier application are:
Benefits of Application Servers
Internet applications are typically shared between multitudes of parties participating in e-business transactions. This necessitates standard architectures and frameworks that allow application hosting. Application servers provide the execution environment for Internet applications. Vendors in the application server market add value to the equation by taking over the burden of application hosting and offering commoditized products that enable organizations to concentrate their resources on building the applications themselves. In some ways, the application server market is moving toward the space currently occupied by operating systems. Operating systems are developed and maintained by third-party vendors. Companies use operating system services to develop applications in their business niche. In the same way, application server vendors can provide third-party services for use by distributed application developers. The benefits to an application development vendor of using a third-party application server are:
The first generation of application servers came into existence before the Web became popular. These "pre-Web" application servers may be categorized based on the types of services they offer. Each category of application server decouples the client from the actual source of the service. In some respects, the application server acts as a broker: the client requests a service; the application server then makes a request to the appropriate service provider and passes the results of the request back to the client. We could categorize application servers based on the services they offer. Some pre-Web application servers are:
Back to Web Application Servers
Web application servers are a new type of Internet software. They're a result of combining HTTP servers with distributed component frameworks (which are also the basis for the distributed object servers mentioned above). Currently, most application server vendors offer a combination of object application servers and Web application servers. Each of the other categories of application servers mentioned above has also evolved into specific categories of Web application servers. When you add the Web to an application server, you have, literally, a Web application server. But what does this actually mean? Let's go back to the basics. The Web, in its simplest definition, is a group of computers that communicate via the HTTP protocol the communication medium being the Internet. Hence, a Web server is basically an HTTP server. Consequently, a Web application server is a server that makes an application's service available to the client over HTTP. The relationship between Web application servers and Web servers is illustrated in Figure 1. The top half of the figure shows an application server with an external Web server. The bottom half of the figure shows an application server with the Web server bundled in. Note that the only difference is in the packaging. In the latter case, the Web application server vendor bundles a Web server with his or her product. Such products should still be able to substitute their proprietary Web server with a third-party Web server.
Recipe for a Web Application Server
The Web client accesses the business objects of the Web application server via a Web browser. The request is made to the Web server, which forwards the request to the object container using the Naming Framework to find the business object. The Internet client uses a distributed communications protocol such as RMI, IIOP or DCOM (depending on the computing environment) to get to the application server. It also finds the desired object via the Naming Framework. The business objects exist in the context of an object container. Object containers expose the interfaces of the objects to the external world. The Communications Framework is used by the object containers for interobject communications. The application server interacts with other remote systems via the messaging, transaction and security frameworks. Data from the back-end tier is accessed via a Data Access Framework.
Application Server Computing Platforms
Currently, there are two camps in the application server industry the Windows (Microsoft) camp and the Java camp. Note that here we refer to the Java software platform, not Java the programming language, and so the comparison is between software computing platforms. The Windows platform enforces the operating system and corresponding hardware. On the other hand, the Java platform is a virtual platform that enforces the programming language but can run on a variety of operating systems and hardware platforms. In both cases, the application servers offered by these platforms meet the criteria of abstracting the application hosting details from the application providers.
Web and Java Application Servers
Java Platform Application Servers
Consequently, each of these application servers provided middleware services in a proprietary way, making portability and reuse of the components difficult. The emergence of the Java Enterprise APIs has enabled the definition of a standard architecture for middleware components composed of business objects. This architecture clearly defines well-formed interfaces between the application server's object containers and the objects or components themselves. In Java this is made possible by:
Note that this is a version of Figure 2 with Java-specific technologies. (Not all of the technologies that play a part in Java application servers are shown in the figure.)
Trading Places
Reader Feedback: Page 1 of 1
Enterprise Open Source Magazine Latest Stories . . .
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
|
SYS-CON Featured Whitepapers
Most Read This Week |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||