Book review: WebSphere Application Server for Developers V7
Z Jacek Laskowski - Wiki Projektanta Java EE
WebSphere Application Server for Developers V7 by Michael Cheng, Sharon Tam and Shentong Wang (IBM Redbooks, 19 November 2010)
Too less to merit the title yet it might come in useful when Java EE 5 and WAS7 are involved
It was the very first book I was not going to read from cover to cover. I used to read every single page analyzing its merit - I couldn't simply flip a few pages and start reading in the middle, stop after a few pages and read on a few more pages further. I'm too much afraid of losing the best part of the book. I've recently found that this approach wasn;t very effective and left me reading books with little or no value. As a IT specialist at IBM I'm looking for documents and books with enough knowledge to let me appreciate a product and learn ways to use it effectively according to its design and use cases with hints how to strain its abilities. I enjoy reading very inspiring and thought-provoking books.
When I stumbled upon the IBM Redbooks publication WebSphere Application Server for Developers V7 by Michael Cheng, Sharon Tam and Shentong Wang, I quickly grabbed it hoping to find a bit more about the way IBM WebSphere Application Server V7 (WAS7) handles Java EE 5 (JEE5). I was pretty much well-versed in JEE5 and meant to find out what it is to deploy a JE5 enterprise application onto WAS7. My expectations were quite moderate - just to know the use cases presented and the necessary tweaks (mostly with WAS7-specific deployment descriptors) to have them up and running on WAS7.
And so did my reading begin.
In spite of my decision not to read the entire book, I did it for the first chapter which went pretty fast - lots of screenshots made the reading very quick and entertaining. My hopes rose up yet the chapter should not have been in this book at all. It was very rudimentary and I'd rather have read about examples and their deployments.
The 2nd chapter made its way with excellent 2.1, 2.3 and 2.7 sections. The chapter is again less of importance to developers who are rather accustomed with integrated development environments (IDEs) or other deployment tools that are supposed to hide the gory details of WAS7. It was certainly very valuable for administrators or WAS7 specialists (like me) who should be able to talk to developers or administrators when they're in doubt looking for ways to pinpoint the root cause of a failed deployment or to automate WAS7 administration. It was quite easy read and would recommend it for anybody wishing to get more insights into WAS7 internals.
I was after two chapters and didn't read a bit about Java EE 5 and WAS7. It was beginning to try my patience.
The 3rd chapter "DictionaryApp example application" promised to have been for developers. The section 3.1 explained its intent and I got doubts whether I should've been reading it. I did and did not regret it. It was easy reading again with admin console and wsadmin commands explained. Kudos to the authors for keeping the pace and be as precise as possible. Unfortunately, the application itself was very old-fashioned built according to pre-JEE5 rules. Novices to Java EE 5 might get disappointed (but WAS7 becomes yet another application server they will be able to handle - judge yourself if it's worth your time).
I hoped the 4rd chapter "Incorporating EJB3 and JPA into DictionaryApp V2" was one of the main parts of the book. The introduction did not mention Java EE 5 and that it came with EJB 3.0 and JPA 1.0. I became worried. And it didn't take long to know it was the worst reading in the entire book. The @Local business interface throws SQLException to a client (!) - what would the client do about it?! The use of @TransactionAttribute's NOT_SUPPORTED and initializing JPAAdapter in the bean's constructor were quite astonishing. There're much better ways to achieve the aim of the chapter with the use of JPA @PersistenceContext annotation. I think it will do more damage to JEE5 newcomers than help them understand its merits. I was dissapointed and hoped for a more advanced example or the one that would show the benefits of JEE5 - convention over configuration and such. I recommend not reading the chapter unless you know JEE5 well and wish to learn WAS7-way of administering them.
After the 4rd chapter's disappointment, I hoped for a better chapter 5. "Incorporating JMS and MDBs into DictionaryApp V3" where JMS, MDBs and Service Integration Bus (SIBus) were explained. SIBus is not an easy topic and I remember how much time it took me to understand the difference between JMS managed objects and their SIBus counterparts. The architecture is quite easy once you grasped it, but the new terminology around it might easily overwhelmed. You will not find many explanations of the steps taken while configuring the environment - just enough to whet your appetite. It seemed to me more like a cookbook and very much enjoyed it. That's exactly the way the JEE5 concepts should've been explained in the past chapters and how they're mapped to WAS7 artifacts. There're ways to achieve proper WAS7 configuration with the administrative console as well as wsadmin scripting tool. It reads very quickly without much ado. It's a highly recommended chapter.
The next chapter was about RESTful Web Services with the Web 2.0 Feature Pack for WAS7. Just a couple of pages and the application was up and running atop WAS7. Moreover, the deployed WAS7 application was enhanced with a standalone GUI application. The chapter was short and informatory. I wished soapUI or firebug had been used, but the content was enough to rate it as a recommended reading.
The chapter 7. took the time to explain WAS7-specific binding files. It was very short - just 5 simple pages with a screenshot and two XML snippets. It's funny they merited their own chapter. No doubt it's worth your time since the book was exactly about WAS7.
The chapter 8. "Debugging" was about tools that would assist you, as a WAS7 developer, in your Java EE development efforts. I did find it very useful yet am not sure if it's worth for JEE5 developers - it's likely not although the tools can be used in your other Java activities when troubles arise (and they certainly will). I found one suggestion about enabling verbose garbage collection very interesting and will surely follow it. Kudos to the authors for bringing it up. Many screenshots, command-line outputs, wsadmin snippets and just enough writing ensured my patience was focused on the reading from its first to the last page. I recommend it, but am again unsure for its purpose in JEE5 learning - I'm leaning towards admitting there's none.
The rest of the book is for only the bravest souls who are keen on learning WAS7 internals.
In summary, the book missed its point - there's too less to merit the title and would've rather called it "Introduction to WAS7 administration for Java EE 5 developers". There're many gems you'd better off having in your pocket when dealing with WAS7 issues. Reading the redbook will certainly ease your making you a better WAS7 professional, but am very doubtful about your JEE5 skills if you haven't already acquired them. You might easily get sidetracked and not appreciate Java EE 5's changes. I myself will often refer to the redbook whenever on-site.
Note to the publisher - ensure a higher quality of the future publications and proof-read it before going live - see -username at page 28. and 29., '240' in the example 2-11 at 40., IBM i at page 51. and its corresponding figure 2-10 at page 52., step 2. at page 53. ("contain" missed), the example 2-43 at page 55 - env.props should be jvm.props, the example 2-47 at page 56 - 'config id' seems missing, the examples at page 95. and 96. should be expanded as well as the one at page 118., the sceenshot at page 119. seemed to have URL changed or V5.0 not V1.5 at the Note at 180.
