In a nutshell this book reads more like a consultant’s journal than a technical manual. This is not necessarily a bad thing, and if you’re looking for a good read about life in the trenches as a technology/solution consultant, then this is a book for you. If you, like me, are looking for a technical overview on how to improve your Java application server (GlassFish, WebLogic) management skills, then this is NOT the book for you.

I am a technical consultant specialising in designing, developing and deploying enterprise applications using JEE, Web 2.0 and RDBMS. Although I didn’t realise this before I bought the book, a good portion of this text is clearly out of the scope (and area of interest) for the type of role I typically occupy within an organisation. In all fairness the book’s back cover does state that the target audience is application/system admins and IT managers, but in my opinion it even misses the mark for these three roles. There is not enough technical information for first two roles, and in contrast provides way too much content for the third (I would estimate that someone could condense the book down to 10-20 pages as an executive summary for IT managers who are looking to become aware of application deployment terminology etc)

I also have three key criticisms from a technical aspect:

1. First, no concrete technical examples are provided (such as JVM memory configurations, deployment descriptor examples, or performance testing methodologies).
2. Second, the book doesn’t provide enough detail about certain key concepts, and at the same time also talks too much about some topics. For example, at several places within the book the author labors the point about using n-tier architectures when designing applications, but doesn’t really define the concept (I already knew this from my Uni days, but the non-techies or middle managers might not).
3. Finally, and probably the most important today, is that the technologies covered are not up to date, and the book doesn’t cover important application/ORM frameworks such as Spring, EJB 3.0 and Hibernate, or concepts such as RESTful Web Services, all of which feature heavily in modern applications.

If you are looking for a technical overview of how to manage and tune the performance of your application server, and also improve your JEE applications then I would recommend these two books:

* Pro Java EE 5 Performance Management and Optimization, by Steven Haines – This is _exactly_ the kind of book I was looking for. The author provides a comprehensive introduction to performance management, a guide to optimising both application servers and applications themselves throughout the development lifecycle, and a great overview of load testing and common JEE performance problems - including excellent (and very technical) examples. The chapter on generic tuning for application servers is worth the admission price alone, and is something I have used on troubled production servers!
* Java Power Tools, by John Smart – In addition to several chapters providing technical details of tools useful for performance management and testing of your application server (such as load testing with jMeter, and Profiling with jConsole and jstat) this book also provides a very technical overview of best practice for build processes (ANT, Maven, Version Control, Hudson CI etc), development quality metric tools (CheckStyle PMD, Findbugs etc ) and Unit testing. This book is a very useful addition to any developer/consultant’s bookshelf.

In summary, there is no denying the author of Affinity knows his stuff, but the book could have benefited by defining the target audience more clearly. If your background and reasons for reading this book are similar to mine you can most likely take away a few nuggets of information from this text. However, you can acquire the same information (in a better format) from my recommendations above, and in the process also benefit from literally hundreds of other tips and practical examples for managing a JEE application server.

[The above text is a copy of the review I recently submitted to amazon.co.uk for Affinity: Managing Java Application Servers]

Daniel

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Daniel Bryant (Director) | Tai-Dev Ltd
www.tai-dev.co.uk - IT Consultancy Services Specialising in JEE, Web 2.0 and RDBMS