Meet the new JBoss
Open source app server reduces complexity, AOP features shine
JBoss 4.0 is remarkable in a number of ways. Not only is it an open source, platform-independent, full J2EE application server but its installation (on Windows 2000, the OS I tested it on) is ridiculously simple.
JBoss includes a Web server (servlet/JSP container, and HTML server), EJB 2.0 container, integrated Hypersonic 100 percent Java database engine, JMS (Java Message Service), JavaMail, and JTA/JTS (Java Transaction API/Java Transaction Service) transaction support. Earlier versions of JBoss used the Apache Tomcat Web server, but JBoss 4.0 is available in an Apache Tomcat version or a version that uses the embedded Jetty Web server.
JBoss 4.0 was released this year about the time of JavaOne. The company refers to this as a development release, appropriate as a test for development code. A production release, suitable for supporting deployed enterprise applications, will be available sometime in the fourth quarter of this year. It adds features such as integrated JDO (Java Data Objects), a revamped version of JMS with multicast clustering capabilities, a full implementation of J2EE 1.4, and distributed transactions.
Installing JBoss 4.0 is easy: Unzip the file and alter a couple of environment variables, and you're there. I had a small Web application WAR (Web Archive) file that I had been using for JDBC testing. Once JBoss was running, I dropped the WAR into the deployment directory, and the app server hot-deployed it (along with its attendant JDBC driver library). Going from download to running my Web application spanned maybe 10 minutes.
JBoss’ JMX (Java Management Extensions) for app server control and configuration come into play once everything is deployed. Resource attributes and configurable parameters can be monitored and modified via MBeans (Management Beans), which are, in turn, controlled from the JBoss Management console. Once my servlet-based application was deployed, JBoss automatically instantiated a deployment MBean, which appeared in the JMX console's management navigation bar. From that MBean, I could deploy and undeploy the WAR application, as well as view various attributes associated with the application.
Admittedly, the JBoss management console is frugal with its graphical elements, as compared to the consoles of, say, IBM’s WebSphere or BEA’s WebLogic. Nevertheless, the result gets the job done. In addition, since JBoss is open source, you can always extend the console to add whatever bells and whistles you deem necessary.
The cornerstone of JBoss 4.0 is its AOP (Aspect-Oriented Programming) capabilities. When properly implemented, AOP lets you describe similar characteristics (aspects) shared by classes derived from different family trees. In the case of JBoss, the added AOP features have plenty of benefits. At the top of the list is the ability to “inject” behavior into a class without having to alter that class' source. That allows you to make objects persistent, make object methods “transaction aware,” and even provide a class with multiple inheritance.