While change for change’s sake isn’t always a good thing, the reason given for creating WildFly 8 is simple: JBoss the name is overloaded. It refers not only to to the application server, but also the JBoss Community and line of products by Red Hat.
To a newcomer to JBoss or the whole Java ecosystem, it can be quite confusing. Enterprise Java uses a large number of technologies, so here’s a simple overview starting with J2EE.
Java 2 Enterprise Edition (J2EE)
Java is stratified in three editions ranging from J2ME for feature phones, J2SE for desktops and J2EE for business.
JBoss is only one part of J2EE, which includes several API specifications such as JDBC for database connectivity, Remote Method Invocation (RMI), Java Message System (JMS), Web services and XML. Key components include Enterprise JavaBeans (EJB) for creating the back end functionality, Java EE Connector architecture (JCA), Java Server Pages (JSP) and a several other technologies. WildFly, which is the next incarnation of JBoss AS 7 is an application server.
What is an Application Server?
Both Java and the Web appeared in the last decade of the 20th century. It was recognized early on that serving static HTML pages to users limited the usability of websites. However, to go beyond simple HTML took a lot of programming effort.
Back then Web applications used the Common Gateway Interface (CGI), with Perl, C and PHP on server side with varying degrees of success. Browser technology was also primitive, with a war for market share being waged by Microsoft’s Internet Explorer and Netscape.
But it was on the server side where developers had a real battle on their hands. Not only was the Web designed for serving static pages, it was also stateless. That meant tracking users across pages was tricky. Netscape invented the cookie as a way of tracking state, and gradually developers learned how to hook up server code to work with databases, file servers, email servers, do load balancing, etc. Microsoft went its own way with ASP while the Java Enterprise world eagerly embraced the J2EE 1.2 standard that emerged in December 1999.
Since then the J2EE standard has evolved through several versions and is now known as Java Platform EE. Version 6 is the current standard, but 7 is due out any time now. Likewise, JBoss Application Server has gone through several versions and WildFly is the continuation of it.
“Application server” isn’t a fancy name for a Web server. In fact, it makes use of Web server technology to serve Java Server Pages. It’s best thought of as a container for a collection of diverse services.
For many years application servers were all-encompassing, like Websphere or JBoss, and implemented the J2EE framework. So JavaServer Pages were compiled, servlets loaded, the Enterprise JavaBeans managed and resources like database connection pools made available. Not all applications need all of these facilities, so it’s best now to think of an application server simply as an environment that provides the services required to deploy, host and manage applications at runtime.
WildFly continues on from JBoss with performance improvements, particularly on multi-core CPUs. A lower memory footprint and greater emphasis on concurrency help to speed things along, and of course it’s open source like JBoss.
But does JBoss development rank highly for job popularity? How does 2,000 + jobs on Dice in the last seven days sound?