Book review: Pro IBM WebSphere Application Server 7 Internals

Z Jacek Laskowski - Wiki Projektanta Java EE

Grafika:Proibmwebsphereas7internals_cover.gif Pro IBM WebSphere Application Server 7 Internals by Colin Renouf (Apress, Jul 2009)

I came to reading the book Pro IBM WebSphere Application Server 7 Internals by Colin Renouf (Apress, 2009) as its title was made of the catchy words I thought would help foster my understanding of WAS V7. It was one of the two books about WAS V7 that came out recently (with WebSphere Application Server 7.0 Administration Guide by Steve Robinson from Packt being the other one which I'm about to read) right after the latest release of the product from IBM where I work as a IT Specialist for WebSphere with the main focus on IBM Business Process Management product family with IBM WebSphere Process Server, IBM WebSphere Business Services Fabric and IBM WebSphere Application Server to name a few. There should be no surprise that when I had found out about the book I had no doubt to spend the time to get more acquainted with the WebSphere Application Server V7 internals. I wanted to go pro (without having to join Lt. Aldo Raine's team). I did mean to delve into the WAS V7 internals, albeit I couldn't figure out what to expect from such a book.

Perhaps, I should hold the rating of the book until the end of the review (and let you appreciate its beauty or luck thereof), but I just can't resist doing it now - the book was the worst I had a (questionable) pleasure to read. I wouldn't recommend to read it unless you are lucky enough to being granted to the source code of the WAS V7. Honestly, before writing this book review I had to read the Introduction chapter again as I was uncertain what this book was meant to achieve. Really. It was my first and main question throughout the entire book. It was barely comprehensible and I strove to find its strong points. There were a very few (if any).

The Introduction chapter clearly pointed out that "This book is about WebSphere Application Server version 7 (WAS 7)", but what was not clear to me (and I seemed to have missed) that "The key part of the title of the book is Internals" and more importantly "Sometimes the discussion will be at the architectural level, sometimes (actually most of the time) it will be at the component level, describing how important components and subsystems work, and sometimes it will involve a detailed description of the code that you would see in a debugger if you traced through that important component or subsystem". Doh, I should've read it before having given the book a shot. The reading was like analyzing the source code of WAS V7 without...the source code (!) It sounds weird, but it was really weird. Imagine how stressful it could be to hunt down a bug in a debugger with no source code attached.

Each chapter begun with introductory material about a particular subsystem of WASv7 ranging from the IBM J9 JVM, Eclipse Equinox and the other layers atop. Just these few sentences in the introductory material made the book bearable and were its gems. I wish these small informatory pieces had been longer.

The book contains a few diagrams to make things easier to grasp, but the very first diagram of the Strategy Pattern Implementation remains a mystery to me (moreover, it was presented in the 4th chapter again!?). One could think of the book as a preliminary course for future WAS V7 engineers at IBM Research Lab.

Sometimes I felt overwhelmed by the wide range of acronyms used in a single paragraph. It was not because I couldn't understand them, but for I didn't see their fit in the context or the goal of introducing them in one shot. The 1st chapter "WAS Architecture Outline from 50,000 Feet" was quite chaotic with classes and jars mentioned by their names. I'm still uncertain what its goal was.

The 2nd chapter "The IBM J9 Java Virtual Machine for Java 6" was no less mysterious than the first one. At some point Jasmine (an assembler for the Java Virtual Machine) was mentioned without any further explanation why it would help and such. Just mentioning the tool by its name doesn't work well for me, and I expected a few sample uses of it. I could hardly think of the value of the chapter and the reasons to describe how J9 works without explaining how it affects WAS V7. I missed it much. As the end of the chapter the author decided to present the work of GC within J9. Just before I could put all the pieces together, the chapter finished leaving me in an unstable state. Too much about JVM instructions and too less about GC and its impact on WAS.

The 3rd chapter "Eclipse/OSGi Runtime" changed my attitude to the book a little. It resurrected my belief of the book's value. I'm a strong OSGi supporter and I could finally read about OSGi, Eclipse Equinox and Eclipse IDE to create a simple plugin to monitor WAS bundle interactions. It was worth its time, but unfortunately knowing it makes things even worse as a WAS practitioner is not allowed to use it due to the license restrictions - it simply prohibits introducing changes to such low-level components of WAS V7.

The 4th chapter "Underlaying WAS Runtime" was so boring that I leave it out to your imagination what it contained in almost 50 pages. There was enormous amount of text about WAS V7 internals with no pictures at all. It strained every nerve of mine to go thru it. It brought to my mind these endless letters without any formatting people send to mailing lists expecting answers to their questions buried down deep in the text. I wonder how it passed the review process in Apress? The chapter looked as if it were a rough cut of what might eventually become part of the book. Some parts of the endless chapter were so detailed that when it came to explain the HandleFramework the author mentioned that "the IBM DeveloperWorks web site gives some good examples" without even providing its web site URL. There were too many low-level details about WAS V7 for no reason. I was relieved when I had finished reading the chapter.

The 5th chapter "The EJB Container" seemed to be better than the previous ones, until the author decided to present how to implement interfaces in Java with dummy implementation in 3 pages. It would've been much simpler to just list of the interfaces which needed implementation. I still wonder what I could use from this chapter as a technical consultant as far as the EJB container's concerned? I don't think there is much.

The next 6th chapter "The Web Container" was almost a copy of the 5th. Very, very boring. Skip it till the summary before the "The Web Container and the Channel Framework Service" section. There one can find some interesting stuff.

If you're still reading the book review I bet you could bear with the book as well. The book changed for a while in the chapter 8 "Service Integration Bus". It reassured myself for the "Pro" part in the title as the subject of WPM/SIBus was explained with enough details. This chapter and the next two - the chapter 9. "High Availability" and 10. "Load Balancing and Scalability" were the ones I expected to have benefited the most. I did. It is not that the chapters were exactly as I thought they should've been in a book with "Pro" in its title, but they were way better than the other part of the book and with the low value of it I begun having a pleasure from finding the small gems of knowledge I couldn't find elsewhere. Unfortunately, they were well-written until, out of the sudden, it's gone as the author decided to move on explaining the source code of WAS V7 without the source code being presented in its full glory.

In the chapter 10. "Load Balancing and Scalability" one can read how to use grep command to "take a look at the WAS plugin binary file to see how it is structured". Was it really necessary? Let me know if you could find an answer to this question.

The chapter 11. "Configuration" was made of a few tables with directory structure described. I think it was quite well organized with enough information for the subject.

The last chapter 12. "Related Products" gently introduced WebSphere ESB, WebSphere Process Server and WebSphere Portal Server products. There was enough covered yet I can't explain why these products made their way into the book about WAS V7 internals.

I'm glad I have finished reading the book. It was a very horrible experience and lasted for way too long. I would not recommend it to anyone (unless you're writing a book and don't want to end up with such an unworthy book - if you do, don't let the world know about it).

Osobiste