Java, J2EE, and Application Servers

team bbl


Web servers, by extending and delegating their functionality, paved the way for the development of application servers. (Web servers are discussed in Chapter 19, "Case Study: Tuning the I/O Schedulers in Linux 2.6.") When we talk about application servers, we are talking about servers in the context of web sites and the Internet, and of enterprise applications.

Toward the middle of the 1990s, when object-oriented programming was gaining acceptance in the community, a new programming language, Java, was developed by Sun Microsystems, Inc. Developers quickly embraced Java mainly for its simplicity, ease of use, readability, portability, and automatic memory management. Both the academic community and the IT industry quickly adopted Java.

In addition to the preceding qualities, Java's success can also be attributed to its network readiness. Java was designed to work easily in a distributed system and was even dubbed the language of the Internet. But what made Java very popular on the Internet are its applets. Applets are Java programs that reside on the web server but can be requested by a user through HTML so that they are executed in the Java Virtual Machine (JVM) that comes with the web browser. This is done by including the applet tag in an HTML page. The idea is similar to including an image file in an HTML page. When the page is requested, the image file is also fetched. Hence, instead of running an application on the server side, applets move the computation to the client side. Applets can also be used to communicate back to the server without having to send another HTTP request.

This new paradigm of computing became very popular. Previous to Java, the Common Gateway Interface (CGI) scripting technology was widely used as a dynamic HTML generator. CGI, however, has a number of shortcomings, including platform dependence and scalability problems. To address these limitations, Sun Microsystems, Inc. introduced the Java servlet technology as a portable way to provide dynamic and user-oriented contents. Servlets are pieces of Java source code that add functionality to a web server similar to the way applets added functionality to a browser. Servlets were designed to be another dynamic HTML generator that could be used as an alternative to the CGI technology. Early servlet implementations were extensions of the web server. Later, we will see that servlets were the predecessors of modern-day application servers.

The Java 2 Enterprise Edition (J2EE) was introduced near the end of the 1990s as a Java platform for enterprise applications. J2EE defines a programming model based on Enterprise Java Beans (EJB) technology and was developed in response to the growing interest in Java as an enterprise computing language. As J2EE evolved, many other developments in the Java space took place. These developments include standardizing database programming interfaces using Java through the Java Database Connections (JDBC) framework, developing a transaction model through the Java Transaction Architecture (JTA), and messaging in Java through the Java Messaging Service (JMS). Ultimately, J2EE has become a suite of specifications that describe the different elements included in the framework.

The J2EE specification provides a blueprint for implementing application servers that support servlets and EJBs, and it has become the ideal model for enterprise applications that implement business decisions and generate dynamic HTML. Most application servers are now based on the J2EE blueprint.

Although this chapter addresses J2EE-based application servers, it is important to note that not all application servers are fully compliant with the J2EE specification. In fact, some application servers serve only servlets and JavaServer Pages (JSPs)for example, Tomcat. Also, some application servers might not be restricted to Java at allfor example, the Microsoft .NET Framework is designed to support various programming languages, including C#, Forth, Pascal, Perl, Python, SmallTalk, and so on. Thus, theoretically, any programming language or scripting language can be implemented on an application server. The fact remains, however, that Java is currently the most successful platform for enterprise computing on the Internet and, therefore, the majority of application servers are based on Java technologies, particularly EJBs.

Another major concern of businesses is integrating their legacy systems to the new programming model. A successful application server vendor will include facilities to connect and integrate seamlessly with legacy systems as part of the whole migration process.

The J2EE specification is an extensive topic and is not the main subject of this book. Many application servers are available. Some of them are open-sourcefor example, JBoss, Zope, and Tomcat. Examples of commercial application servers include Orion, BEA WebLogic, IBM WebSphere, Oracle, and Sun ONE.

    team bbl



    Performance Tuning for Linux Servers
    Performance Tuning for Linux Servers
    ISBN: 0137136285
    EAN: 2147483647
    Year: 2006
    Pages: 254

    flylib.com © 2008-2017.
    If you may any questions please contact us: flylib@qtcs.net