Friday, February 28, 2014

Now Under Review: Video Series on JBoss EAP

Readers of this blog are used to finding book reviews for programming materials here.  Today I am trying something new-- a technical video review.

JBoss EAP Configuration, Deployment, and Administration [Video]

The video series is over some familiar territory-- JBoss EAP Configuration, Administration and Deployment.  I've started watching today and should have a review out in the near future.

Watch this space for my impression of this medium soon.

The Video can be found here.

Wednesday, February 19, 2014

Book Review for "JBoss EAP6 High Availability"

JBoss EAP6 High Availability

JEE servers are all about "Enterprise" functionality.  A big part of the value proposition is High Availability, meaning you can harden your servers so a failure won't deprive your clients of the ability to make use of your services.  This book covers High Availability for the most recent version of Red Hat's commercial server, EAP 6.

The book is written in a very clear, well-illustrated manner that explains very plainly how to achieve load balancing and failover with EAP 6.  The early chapters explain how to obtain and set up the JBoss App Server, which is advantageous if you haven't looked at the server lately.  (It underwent a major re-write since the old 'heavy server' days.)  The methods used to deploy applications have changed too, so these are also explained.

The third chapter is where clustering begins.  This leads us to the only demerit apparent for this book:  it's scope is constrained to web-tier clustering.  (This means other clustering aspects, like messaging clustering and EJB clustering go undescribed.)  The coverage it provides within it's scope is outstanding.  You are given very explicit (and easy to understand) instructions on how to test and validate your cluster.

Web-tier clustering means you need a load balancer, and this book covers two of these well.  Both of these are hosted in Apache httpd, so it is also covered from acquisition, compilation, configuration and validation points of view.  (To repeat that:  if you know absolutely nothing about httpd, this book will show you how to get it, compile it, and run it.)  Once httpd is in place, you are given detailed coverage of mod_jk and mod_cluster, two load balancers that plug into httpd.  Both are described simply and thoroughly.

There are two chapters for SSL, these again give you everything you need from A to Z.  The author describes certificates, how they are used, how you can produce one, and how to configure your cluster to use it.  Your efforts are validated through use of tools like WireShark (naturally, we are shown how to use WireShark to do this.)  There isn't much left for the user to wonder about-- thorough, well-illustrated coverage is the order of the day.

The final chapter of the book describes JEE applications that are built for clustering.  Not much exciting here, JEE makes it pretty easy.

The book has a good number of illustrations.  These are simple and clear, exactly the kind of thing a knowledgeable colleague might sketch on a whiteboard.  Except the lines are all perfect.

The final verdict?  This is a really good book.  The author has a knack for explaining things clearly and directly.  If you wish to cluster web applications on JBoss EAP 6, this book should be on your shelf.

The book can be found here.

Happy Clustering!

Wednesday, February 12, 2014

Now Reading: "JBoss EAP6 High Availability"

Watch this space for a review in the near future.

JBoss EAP6 High Availability

The book can be found here.

Monday, February 3, 2014

Book Review for "Java Performance, the Definitive Guide"

Book Review for "Java Performance, the Definitive Guide"

Subtitle:  "Getting the most out of your code"

State:  "Early Release.  Raw and Unedited"

As the title tells, this book is ambitious in scope.  Calling something 'The Definitive Guide' is a bit presumptuous, but the author (Scott Oaks) has credentials to match anyone in the workspace.  This book is in 'Raw and Unedited' form, which means it's not yet a finished work.

So, what's here?

The first chapter outlines the target platform (Java 7), JVM tuning flags, and some very general best practices for obtaining good performance.  Not much deep-dive material here.

Chapter 2 categorizes types of benchmarks and provides different things to measure.  I found this chapter a little long on the academics, probably more applicable to professional testers than it is to garden-variety application developers.  All things considered, not my favorite chapter.

Chapter 3 covers the Java performance tester's toolkit.  It contains a good overview of tools provided by the operating system (including many for Linux).  The Java monitoring section tells us what the JVM can tell us about itself.  There's a meaty section on profilers, and finally a section on a propietary tool Oracle provides to users that choose to pay for Java 7.  This chapter held quite a few items of interest for me.

Chapter 4 was devoted to the Just-In-Time compiler.  JIT is of great importance to Java performance, and this chapter provides a wealth of information that could only come from those with very deep knowledge.  In the 'acknowledgements' section of the book the author tells us he used inside contacts at Sun/Oracle to pull this book together, it would have to be these kinds of people that assisted here.  Good stuff.

The 5th chapter is about Garbage Collection and Garbage Collectors.  This information seems to change frequently as Java updates, so the value of this chapter might be perishable.  This information is also similar to material that's readily available all over the internet, so it didn't grab my attention like the previous chapters.

The final verdict:  For a work in progress, I found this book to be rich in good content and fairly refined for the 'raw' label.  For those seeking improved Java performance, it's a worthwhile read.  I look forward to seeing the completed product.

The book can be seen here.

Happy (Performant) Coding!