Java continues to be the most widely-used single-programming language today, edged out only by all scripting languages grouped together. Java remains also the language and/or platform of choice for Enterprise and Web application development, especially large-scale application development.
Nevertheless the Java language has changed a lot since its first appearance and will possibly continue to change in the future. Oracle, who has acquired Sun, the home of the Java language, has stated that its high-level Java strategy is to enhance and extend the reach of Java to new and emerging software development paradigms: simplify, optimize, and integrate the Java platform into new deployment architectures; and invest in the Java developer community allowing for increased participation.
At this point, one question arises: are application servers ready to meet these new paradigms? Originally designed as web containers for supporting web applications and, later, as EJB containers for remotely accessible services, application servers have expanded considerably from their simple origins. Today, most application servers provide a comprehensive service layer, which delivers support for distributed transactions, clustering, security, and so on.
In addition, a large number of open source building blocks have been added to the application server and they are heavily used in today’s products. However, integrating all these libraries does not come without a price because each library has, in turn, evolved with complexity, following its own unsynchronized evolution path and requiring more and more additional libraries to work.
As most IT experts agree, the challenge for today’s application server is to combine a rich set of features requested by the customers along with a lightweight and flexible container configuration.
The 7.0 release of JBoss AS is designed around a brand new kernel, which is now based on two main projects:
JBoss Modules: This handles class loading of resources in the container. You can think about JBoss Modules as a thin bootstrap wrapper for executing an application in a modular environment.
Modular Service Container (MSC): This one provides a way to install, uninstall, and manage services used by a container. MSC further enables resources injection into services and dependency management between services.
The following picture depicts the basic architecture of the new application server kernel:
Understanding the details of the new modular kernel may be a little invasive at the beginning of the book, however, we will smoothly introduce some useful concepts within this chapter, just to make sure you get acquainted with the server configuration basics.
For the time being, let’s just start installing the core server components and their required dependencies.
The first step in learning about the application server will be installing all the necessary stuff on your machine in order to run it. The application server itself requires just a Java Virtual Machine environment installed.
As far as the hardware requirements are concerned, you should be aware that the server distribution, at the time of writing, requires about 75MB of hard-disk space and allocates a minimum of 64MB and a maximum of 512MB for a standalone server.
In order to get started, this is our checklist:
Get Updates on Tech posts, Interview & Certification questions and training schedules