At Web Age Solutions, we have the challenging task of not only keeping up with technology specifications but whether clients are actually using those technologies. We have started to see much more interest in Java EE 6 training on various platforms so this is obviously taking hold.
Java EE 6 had the unenviable distinction of being released pretty much right as companies were trying to dig out of the 2008-2009 economic downturn. So even though it did take 1-2 years for all of the major server platforms to release versions that supported it, many clients were taking a “wait and see” approach to upgrading. Since companies first have to upgrade to the most recent platform before they can even think about using the new technology that is available it has taken until now to really start seeing that take hold. Even JBoss clients, which usually take a more “figure it out on our own” approach, are doing training to make sure they can fully take advantage of the latest JBoss version, including the very different administration model (which we cover in our WA2060 JBoss Administration and Clustering course).
One of the primary barriers to taking advantage of what the new platform can do is simply knowing what is available. Quite often projects take an approach of “we do it this way because we’ve always done it this way” and don’t look for ways to improve and simplify their applications by leveraging new approaches to programming. With Java EE 6 (and soon Java EE 7) continuing to expand the possibilities that are out there this is becoming more of an issue. We are a long way from the days when only Servlets/JSP were “standard” and you needed a thick “patterns” book just to create your own web framework.
To further support those that might be looking for Java EE 6 training, I’ve updated all of our course maps for Java EE 6 training on the major platforms. These course maps show a different path depending on if you are familiar with the big changes introduced in Java EE 5 since several clients often skip versions of a server and in particular we are seeing migration paths like WebSphere 6.1 –> WebSphere 8.x. These course maps also mention some of the Spring 3 training classes we offer since clients sometimes do training in that area as well.
Looking to the future, the Java EE 7 specifications are finalized and servers are being updated right now to fully support them. JBoss is as well and will probably be released early next year (they say this year but JBoss is always missing release deadlines). The tricky thing is that the open source project is being renamed to “Wildfly” and the “JBoss” name will be reserved for only the supported version. There is already a version mismatch between the two and now having two different names I think is going to cause more confusion but we will see.
As servers release support for Java EE 7 I think the goal is to try and release classes as early as possible. This will depend somewhat of course on which servers release support first. We are going to be working internally to develop ways where we can develop hands-on labs that are more modular and can be more easily reused in different courses so we can start developing those early and support more clients that are “early adopters” and want to upgrade quickly. Java EE 7 contains a lot of updates as well so we are looking forward to introducing that to clients as they start moving to servers that support it!
Now we get to sit back and enjoy watching the “race” of which server supports Java EE 7 first. Any bets?
UPDATE (Aug 2012) – The officially supported JBoss EAP 6.0 is finally released. People using the supported EAP version will have much less confusion and one of the goals of this article was to clear up confusion about what is happening with the open source and EAP versions and how they relate.
If you are going to be using the latest versions of JBoss training is really a requirement because there are LOTS of changes (for the better) and you might need to reinvent somewhat how you approach management of JBoss in various job roles. Training will help get you there faster and spend less time trying to figure out the new platform.
One thing that I’ve found to be true for enterprise clients is people don’t always have time to keep up with what is going on in the cutting edge of technology because they are busy just trying to keep up with their own responsibilities. Since we have a lot of clients that use JBoss I figure I would help bring everybody “up to speed” with what is happening with JBoss on the Java EE front. There have been several developments recently and there will be more over the next several months.
The first thing to determine is what “edition” of JBoss you are talking about. Ultimately this comes down to if you are paying RedHat/JBoss for a support subscription to access the “officially supported” version of JBoss. This “officially supported” version of JBoss is the JBoss Enterprise Application Platform (JBoss EAP). If you are not paying for a support subscription you are likely using the “free, open-source” version of JBoss Application Server (JBoss AS).
So what is the difference between the two? Although these are both “JBoss” editions there are some important differences:
The other thing that causes some issues right now is what it means to be “Java EE Certified” for Java EE 6. Java EE 6 introduced the concept of “profiles” so that Java EE servers could be certified against a subset of the Java EE specifications but not against the “full profile” of all specifications. This is important because some Java EE technologies like EJB 2.x Entity EJBs are on their way out anyway now that we have modern replacements like Java Persistence (JPA). The only profile that Java EE 6 defined besides the “full profile” is the “Java EE 6 Web Profile”.
The following are some of the highlights of the Java EE 6 Web Profile (not a complete list but the major things):
There are some significant technologies that are in the “full profile” but NOT required in the “Web Profile” (not a complete list but the major differences):
So servers that are certified against the “Java EE 6 Web Profile” are only “required” to have a subset of Java EE 6 technologies. Now most of the JBoss AS versions offer technologies above and beyond the Web Profile but JBoss AS 7.1 (which will be included in JBoss EAP 6.0) is the only version that will target certifying against the “Full” Java EE 6 profile. There is a good discussion here about exactly what it means (for JBoss AS 6.x anyway) to have been tested against the Java EE 6 web profile but also offer additional technologies. It is also interesting to note that in the downloads of JBoss AS there is a download for JBoss AS 7.0.x which is “Web Profile Only” and has been officially certified for Java EE 6 by Oracle and there is an “Everything” download which has additional technologies but is specifically advertised as not being officially certified.
Finally, I think the other consideration that will be important to people when switching will be consideration of how they will deal with the inevitable problems/questions that come up and how confident they might be about the software being fixed with bugs. For those that this issue is mission critical, I would again highly suggest looking into a subscription to the JBoss Enterprise Application Platform. This is the only form of JBoss that will have a support service level agreement and where bugs will be backported to previous versions for several years according to the JBoss Enterprise Middleware support policy.
When using one of the JBoss AS releases the only “support” that is available is from the JBoss Community and any available JBoss AS Documentation. For users of JBoss AS I think it is important to consider the level of support from the JBoss community since that support comes primarily from three sources:
Of course this community support would also apply to clients of the JBoss EAP since it is based on a version of JBoss AS and would be useful above and beyond the normal “official” support available for JBoss EAP.
The other thing to consider is if there have been bug fix releases of the JBoss AS versions or not.
So where does this leave you as a JBoss user? What version should you be using now or planning to move to? Every situation is different based on different factors like:
Certainly without knowledge of your particular situation it would be unwise for me to offer any kind of direct suggestion here. In general though I might be hesitant to use JBoss AS 6, at least for very long, as this is not getting the attention of as many from the JBoss AS developer or JBoss EAP support staff groups and JBoss has decided that they will not release it as part of any supported platform. There is also some question about using anything like JBoss AS 6.0 or JBoss AS 7.0 which is not certified against the full profile but offers varying degrees of additional features between the two Java EE 6 profiles.
For those that might value stability and Java EE certification above all else, and who do not have to start using new Java EE 6 features on some tight deadline, I might hold out for JBoss AS 7.1 or JBoss EAP 6.0. You could even start investigating that migration now with the release of JBoss AS 7.1.0.Beta1!
Although JBoss 5.1 has been available for a while, I was surprised that we had not had requests for our JBoss 5.1 Web Service development class, WA1719 Programming Advanced JAX-WS Web Services on JBoss 5.1. We have just released this class and looking back I think it was a good thing that it was not released right after the JBoss 5.1 server was available.
One thing that has happened with JBoss Web Services (JBossWS) is the fact that they will be slowly moving away from providing the three web service “stacks” that they had provided previously, which were “Native”, JBossWS-CXF based on Apache CXF, and JBossWS-Metro based on Glassfish Metro. This effort to integrate with three different web service environments was obviously difficult to maintain and update so the announcement was made that JBoss would eventually begin moving to supporting just one JBoss Web Service stack, JBossWS-CXF based on Apache CXF. Although not released yet, apparently the only supported version of web services in the supported JBoss Enterprise Application Platform 6.0 will be JBossWS-CXF. Also, even though it is not the “default”, JBossWS-CXF is fully supported on the JBoss EAP 5.1. The JBossWS-CXF stack is also the only one available on the latest version of the open-source version of JBoss, JBoss Application Server 7.0.
So this brings me to the main reason I’m glad we waited until now to release the JBoss 5.1 web service class, we have released the class showing how to develop JBoss web services with the web service “stack of the future” JBossWS-CXF. Although “basic” web services only use standard JAX-WS web service code with all of the stacks there is some difference between the stacks, especially in configuration, when you get to advanced topics like WS-Security, WS-RM (Reliable Messaging), etc. So by showing students how to use Apache-CXF to develop JBoss web services they will be learning how to write more “future proof” web services. Clients using JBoss for web services will have to go through a migration process to CXF at some point so our new JBoss 5.1 web service course, WA1719, allows that to happen now.
Besides focusing on developing Apache CXF web services for JBoss, our new course also expands the focus on advanced web service topics. The differentiation between web service platforms, and the area that is often server-specific, is how to implement some of the more advanced “WS-*” specifications. These are things like WS-Security for web service security, WS-Addressing for asynchronous web service invocation, WS-RM for reliable web service messages, and MTOM, or Message Transmission Optimization, for sending more efficient web service messages that include binary data. We have spent time researching the “best” way to implement these advanced web service features using JBoss and Apache CXF in a way that is as close to possible to “standard” code and enables these features purely with CXF configuration where possible so that what is JBoss/CXF-specific is isolated and would be easy to modify if moving to a different platform. Many times this research and experimentation revealed gaps in the current JBoss/CXF documentation and our course, especially the extensive hands-on labs, fills in these gaps with information students will find immensely valuable.
All in all, I believe our new JBoss 5.1 web services course, WA1719, is second to none. We have spent time assembling information that developers of JBoss web services will need to know when working with web services in a JBoss environment. Even the official JBoss training courses from RedHat do not offer the depth of coverage on web services our new course does. Since implementing advanced web service features is what would take the most time and research from developers this is where we have concentrated our efforts in expanding the course to provide a “fast track” to the most useful information. Web services have quickly become an integral part of any Java Enterprise applications so if you want to stay ahead of this fast changing area of the JBoss platform contact us to learn more about taking our new JBoss 5.1 web service development course.
I was doing some research on JBoss the other day and found an interesting press release from JBoss. They claim they were the first to release “Java EE 6 via Platform-as-a-Service” with “OpenShift”. While this is certainly true the announcement could cause some confusion about JBoss “support” and “certification” of Java EE 6.
Although I won’t get into the cloud aspects of this product I thought it was interesting to actually dive into the details of the Java EE 6 side. I guess it really depends on how you define “first to release Java EE 6”.
For those of you that are JBoss clients you might be thinking “Great! JBoss now has support for Java EE 6”, and you’d be wrong! The only thing “JBoss” that is certified for Java EE 6 is the recently released OPEN SOURCE and UNSUPPORTED JBoss Application Server 7. They do not have a version of the JBoss Enterprise Application Platform (JBoss EAP), which is the product you actually pay to receive support for, that is certified for Java EE 6.
It also depends on how you define “certified”. As you can see on the Oracle Java EE certification page, JBoss Application Server 7 is only certified for the “Web Profile”. This is a new concept in Java EE 6 that allows servers to be certified for a subset of the Java EE technologies (mostly the newest stuff) but not certified against all of the technologies. In particular the “Web profile” doesn’t require JMS, web services, MDBs and a few other technologies. JBoss Application Server 7 supposedly supports some of these even though they don’t “have to” but they are not certified for the “Full profile” which would verify the compatibility tests of all Java EE technologies. You can find an interesting discussion some of us in the JBoss community had with those in JBoss about this approach here.
Now the good thing is that JBoss does plan to release support for the “Full profile” Java EE 6 with the release of the JBoss Enterprise Application Platform 6 (the version numbers between EAP and open source server are going to be out of sync). This isn’t expected until early 2012 though. Luckily those of us in the JBoss community were able to convince those driving JBoss development that there was value in the full Java EE 6 profile and not to release the JBoss EAP until that full profile support was provided. We all felt it would be more confusing to have a version of the EAP providing only Web profile certification and then later to have full profile certification. After all, having different versions between the open source JBoss Application Server 7 and the JBoss Enterprise Application Platform is going to be bad enough.
So if you look at the Oracle Java EE certification page, there is a popular production supported server that provides support for the full profile of Java EE 6. That server is WebSphere Application Server 8.0. That’s right, WebSphere BEAT JBoss (again)! Certainly WebSphere was not the very first application server to support Java EE 6, that distinction goes to Glassfish 3.0 released as the Java EE 6 “reference implementation”. But if you look at the “Big 3” Java application servers of WebSphere, WebLogic, and JBoss, WebSphere was first.
So about the only way you could claim that “JBoss was the first to release Java EE 6” is if:
So anyway, back to the press release. Why would JBoss want to offer something like this if there are so many ways to pick it apart? I think the date of the press release is telling. The press release is from August. WebSphere Application Server 8.0 was released in June. I think JBoss knew they were running out of time to put their “We were first” argument out there.
Also, a closer reading of the press release does make it clear that OpenShift is targeting developers right now so the issue of production support is not meant to be provided with this current release. The first sentence of the second paragraph of the release, “OpenShift is a free PaaS for developers who leverage open source” certainly puts this offering in the correct context.
Ah the spin of product press releases…
EDIT: I’ve made some minor changes to be more clear that this post is not meant as a hack job on JBoss “OpenShift” but as a comment on the press release concerning OpenShift which could be read in confusing ways. In particular phrases like “supports Java Enterprise Edition 6” can be read in confusing ways that would imply things that are not currently true about JBoss Application Server. For those of our clients that might not follow developments in JBoss quite as closely as I do hopefully this information is useful.
A few months ago JBoss Application Server v6.0, the open-source unsupported version, was released. At the time in the announcement it was mentioned that the 6.0 version had been certified for the Java EE 6 ‘Web Profile’, which requires a subset of the Java EE technologies, but that the 6.0 version had not been certified against the ‘full’ Java EE 6 profile. The reasoning given was that ‘resource constraints’ would add to the time taken to perform the full certification and JBoss felt it was important to release JBoss AS 6.0 to the community so that people who wanted to begin developing Java EE 6 applications with JBoss could do so.
It wasn’t very long before there were discussions in the community trying to clarify what this meant. One thread in particular became very popular and has since received almost 14,000 views showing that this is clearly an important topic for JBoss users. One of the main questions was the level of support for the technologies that JBoss has supported in the past but are not required of the Web Profile. JBoss developers clarified that JBoss did support technologies like JMS, JAX-WS web services, and others but that they were just not “certified” because the certification had not been done for the full Java EE 6 Profile. Of course this raised simply more questions and it was quickly clear that most of the community was unclear about the direction of JBoss, especially for the future JBoss Enterprise Application Platform (JBoss EAP) which is the supported version many clients use.
To help get the opinion of the community in a little more scientific way than just forum posts I created a survey about some of the questions and issues surrounding JBoss Java EE 6 certification. The survey is still open so you can take it if you haven’t already but I wanted to summarize the results so they could help drive the progression of JBoss before JBoss AS 7.0, which is the open source version that will be used in JBoss EAP 6 (yeah, I know it’s confusing), is finalized. Obviously commenting after the fact wouldn’t help anyone so this survey was a way for the community to speak up now.
First of all the survey seemed to be a hit and had 269 responses when I did the analysis described here. The thread that introduced the survey has even been listed as a “featured discussion” in the JBoss forums so maybe that is something done by some of the JBoss developers to help improve community feedback (which I appreciate) and show they are interested in the opinions of the JBoss community.
Before getting into further analysis below I think I can summarize some of the biggest things that seem to be apparent from the results. These points are for the full set of responses, I’ll break down some other groups later.
First of all, for full accountability I’ve made the summary results of the whole survey available here along with a spread sheet of all of the individual responses available here (for those statistics geeks out there). Other files are also linked at the bottom of this post.
So let’s look at each of the questions and see what we might deduce.
Question #1 asked about various features and how important they were. The clear winner here is obviously performance which I think makes sense since most people have been probably using some form of JBoss AS 5.1 (even within EAP) which has the highest startup time of any recent JBoss version. So clearly the JBoss AS 7.0/JBoss EAP 6.0 focus on performance is critical. For the two certification options it is interesting that people generally took their position on Web Profile certification and either felt that full profile certification was either more important or less important as the full profile option had more responses on the extreme. The average for full profile certification was higher than web profile certification though so more people felt that full certification was more important. Ease of administration did edge out both certification options although this has long been a weakness of JBoss compared to other competitive application servers so again no surprise there and a good support for the effort on usability of JBoss currently underway.
I think question #2 about if people were surprised that JBoss AS 6.0 doesn’t support the full Java EE 6 profile is pretty clear cut. I think this makes it important for those guiding the JBoss development to clearly communicate the intentions for the upcoming versions of JBoss AS and JBoss EAP to address this gap in communication.
Arguably the question could be called misleading since you can make the argument that “doesn’t support” is different than “fully certified” but I think the result is clear that without the “fully certified” stamp of approval there will always be doubt that will be hard to justify to managers, etc.
Question #3 on how long people would be willing to wait clearly indicates that the community would likely be willing to wait some time, as long as it didn’t drag on like JBoss AS 5.0 seemed to. Hopefully the difference between being able to release a Web Profile certified version and a version certified for the full Java EE 6 profile would fall in this range. For those not willing to wait, people can start using JBoss AS 6.0 right now for the newest cutting edge technologies, as suggested by JBoss developers.
Question #4 is pretty clear that people want both the open source and supported platform to be certified for the full Java EE 6 profile. Part of this could be people wanting to use the JBoss AS server without being an EAP client or for EAP clients to have more confidence that full Java EE 6 profile certification was not something introduced at the last minute. Both are valid reasons though so hopefully this is what we might see (otherwise there would be a pretty big distinction between JBoss AS and JBoss EAP).
Question #5 on how likely people are to switch is much more interesting when you break down by groups which I’ll do later. Overall though the notion that JBoss might not be certified for the full Java EE 6 profile has got some people thinking about if they will stick around. Certainly with many more open source Java EE options out there compared to 5 years ago having 17% of your users say “I’m outta here” should cause some concern.
I asked question #6 to really get an idea of how many people taking the survey were JBoss EAP clients (and therefore paying JBoss money 😉 ) because a survey only advertised on the forums could attract a very different subset of people. I think there is a good sample even if you assume all those that said “don’t know” are not EAP clients. This also lets us break down the results to focus on JBoss EAP clients only.
I won’t do much more than highlight the major findings for some groups and link to the file that has the complete cross-tabulated results but I think there are some interesting findings for some groups. I’ve also indicated how many responses are in each group compared to the 269 total responses.
EAP Customers (66) – I think the group JBoss may be most interested in is how the people who indicated they are a JBoss EAP client responded. I think the interesting points are:
EAP Customers “very likely” or “would definitely” switch servers (32) – You might look at the points above and think “EAP clients won’t really have a different opinion than the larger community”. But if you look further at the subset of EAP clients who are more likely to switch servers there are some clear signs of why they would switch
All respondents who felt full certification was “very” or “extremely” important (172)
All respondents who felt full certification was “not at all” or “somewhat” important (57)
Clearly this survey confirms that full Java EE 6 certification is an issue that the JBoss community cares about. Hopefully the surprise at the approach for JBoss AS 6.0 and the value the community (especially EAP clients) place in full Java EE 6 certification will convince those involved in some of these decisions at JBoss to more clearly communicate the plans for yet-to-be-released versions of JBoss AS and JBoss EAP. Personally I think they are and hopefully this survey has helped that process.
Java and Administration Lead
Web Age Solutions
PS. If you are still reading JBoss is obviously important to you so you might be interested in some of the popular JBoss training courses my company offers… (sorry, had to plug the company on the company blog)