In doing so, it will compete directly with Linux distributor Red Hat Inc. and Gluecode Software Inc., a packager of open-source middleware. Both already compete with JBoss by including an alternative open-source application server in their software stacks. Red Hat distributes the Jonas application server, built by ObjectWeb, a French consortium of open-source developers, while Gluecode supplies Geronimo, an application server from the Apache Software Foundation.
JBoss' middleware package includes Hibernate, which maps Java objects into relational databases where they can be stored; Tomcat, the engine for running Java servlets, the server commands used in running a Web site; JBoss IDE, an integrated development environment based on the multitool Eclipse workbench; and JBoss Portal, a Web content-management system. Hibernate and Tomcat are ongoing projects of the Apache Software Foundation.
JBoss certifies that the pieces will work together and sells technical support for the package. JBoss CEO Marc Fleury says the combination is "the open source architecture of the future" and could replace costly application servers and middleware used in running Web sites.
The JBoss Application Server and Hibernate also implement aspect-oriented programming, which makes the Java language simpler and easier to use through the JBoss middleware stack, Fleury says.
Aspect-oriented programming uses an English-language annotation or tagging method to identify an aspect of a large system, such as running a transaction or invoking security. By developing the functionality once and tagging it, a developer may then reuse it as often as needed by inserting the tags where the functionality is needed. The tags label a Java object containing the function and developers use them as a substitute for the more complicated process of making a simple Java object into an Enterprise Java Bean.
EJBs are part of the Java 2 Enterprise Edition, which includes many complex application-programming interfaces. To provide transactions, security, and other specialized functions, Java programmers need to know the details of each API to invoke the function. Other broad functions that also may be defined as aspects include calling a remote procedure on a distant system and storing Java objects as data in a relational database so they may be retrieved and reconstructed for reuse.
"We need to be able to go back to developing plain old Java objects. They're much easier to deal with than needing to know a bunch of APIs," Fleury says.
Fleury's ideas on aspect-oriented programming have been accepted by the Java Community Process and built into the specification for Enterprise Java Beans 3.0, a current Java standard.
Fleury says Java programming is being simplified on two fronts. One is through the use of more-sophisticated development environments that do more of the underlying work. BEA Systems Inc.'s Beehive project is open-source code that makes it possible to plug easy-to-use Java components into the Eclipse workbench. The other front is simply making the Java language easier to use through aspect-oriented programming. By having tools and frameworks that invoke aspect-oriented programming, many development tasks are simplified before the programmer starts working with them in the integrated development environment.
Although JBoss is now competing with the Apache Software Foundation's Geronimo, Fleury says the more important lesson is that JBoss hopes to emulate it. Once known only for its Apache Web server, the Apache Software Foundation has become the sponsor of successive projects that have won wide acceptance, such as Tomcat and Java Struts, a Java user-interface framework used in many Java applications. Says Fleury, "We're well known for our application server but we want to achieve the same rewiring that Apache did," and become associated with a set of software.