Friday, December 31, 2010

OSGi book preview and press release

I'm currently reading (and will soon provide a review for) the new OSGi / Apache Felix book from Packt.

If you've never heard of OSGi, the following press release about the book might help provide some idea what it's all about. Here's the release:

Build your OSGi applications using Packt's new Apache Felix book

Packt is pleased to announce OSGi and Apache Felix 3.0 Beginner's Guide, a new book that will help readers to build their very own OSGi applications using the flexible and powerful Felix Framework. Written by Walid
Joseph Gedeon, this book will assist readers to get acquainted with the OSGi concepts in an easy-to-follow manner and build a completely operational real-life application using Felix.

Apache Felix is an open source implementation of the OSGi Release 4 core framework specification. Furthermore, the OSGi specifications originally targeted embedded devices and home services gateways, but they are ideally suited for any project interested in the principles of modularity, component-orientation, and/or service-orientation.

OSGi and Apache Felix 3.0 Beginner's Guide starts off with an introduction to the OSGi Service Platform, its parts and its bundle structure. It then walks users through setting up the Felix framework and their development environment. Additionally, this book explains the operation of the Felix Framework by means
of Gogo and teaches users practical implementation of OSGi, OBR repositories, dependency management, and bundle version management.

Using this book, developers will be able to discover the practical implementation of important OSGi concepts, understand the use of Maven to build and deploy OSGi bundles, create an OSGi-compliant application, learn the implementation of JSP Web Application Bundles, dive deep into Felix iPOJO, get an overview of the Felix Web Management Console and learn to troubleshoot an OSGi application with ease.

A relentlessly practical beginner's guide with step-by-step instructions, this book is ideal for Java developers, who wish to learn about writing reusable and network distributable software following the OSGi standards using the famous Felix framework. The book is out now and available from Packt. To read more about it, please visit:

Well, there's the preview. Watch for a review in the near future!

Happy Holidays!

Wednesday, December 22, 2010

Pythonistas -- Packt books discounted this month!

Hi all,

Just a quick note for the Python fans-- I've just been informed by my friends at Packt Publishing that they're holding a special on Python books.

Through the month of December, all books and e-books are offered at discounts of up to 30% off.
More details are available here.

Python is a great language, so go buy yourself a Christmas book if you need one!

Happy e-shopping!

Tuesday, December 21, 2010

Coming Soon: Apache Felix & jBPM

OSGi is an interesting topic. Application server vendors and near-application servers like Spring are making provisions for it in their future offerings. Apache is helping lead the charge with Felix, an open source OSGi implementation. I hope to soon review a new book on the basics of OSGi, "OSGi and Apache Felix 3.0 Beginner's Guide" from Packt. Watch this space for a review in the near future.

Another interesting topic is Business Process Management. I've worked around this one for many years, and have at times used JBoss's JBPM product for my tasks. I look forward to reading another Packt title, 'jBPM Developer Guide', which promises to hold some good tips for optimal jBPM development.

BTW, how about that crazy upper/lower-case letter treatment for these two books? Totally coincidental!

The OSGi book can be found here.

The jBPM book can be found here.

Saturday, December 18, 2010

Book Review for "Jboss AS 5 Performance Tuning"

Let me make one recommendation, right off the bat. Do not pick this book up in the book store and page through the first chapter and a half before putting it back on the shelf. If you do that, you'd miss out on what is perhaps the best contemporary JEE tuning book in existence.

The first 50 pages are a little slow. Mostly they cover the author's recommendation for a performance tuning lifecycle, and a handful of open source tools that can be used to assist with performance tuning. The tools section in particular might lead you to believe the book is light on content-- there are plenty of big screenshots that show you things you could have picked up from the tool's website. But once you're past the tools section, the fluff ends there. What lies ahead is pure good stuff, and it will lead you from the O/S clear through the application server and into the application code.

The author has a clear bias towards Linux in the writing, but does include some Windows-centric advice in places. One constant throughout the book is the use of before/after metrics (captured with JMeter, as you are likewise taught to do) to demonstrate the effect some tuning tweak has had. This is consistent with the stated philosophy of basing things on hard data, not seat-of-the-pants observations. There are plenty of graphs pulled straight from JMeter, which is consistent with how the author recommends we go about measuring progress. Clearly, this guy believes in the methdology he suggests we use.

As the title suggests, the book deals mostly with JBoss AS 5 specific tuning recommendations. That doesn't mean that's all you get, though. Nearly everyone should benefit from the O/S advice, and Java users will benefit from a whole chapter on JVM tuning. Tomcat and Apache users will find many good tips in the latter chapters.

The book is sliced into layers, as code hosted on an application server would be. There are sections on the web layer, EJBs, JMS, ORM (including some good parts about Hibernate, with cache tuning) and cluster tuning. There are separate sections for web frameworks and web service based applications, too. Each of these sections tells you enough about that particular domain to let you know what you want to optimize and how to optimize it. Don't get me wrong-- there's not enough here to make you a clustering expert, for instance-- but there is enough here to let you know how to tune clustering once you've referred to other doc (i.e. the app server doc) and have something ready to run.

Basically, the book addresses nearly every aspect of what can be tuned and optimized, including in-line recommendations about how the application code should be written.

So, who would I recommend this book for? Here's my list:

- Anyone running JBoss AS 5 (Strongly recommend.)
- Developers writing JEE applications (Recommend. The JVM and O/S sections alone will be good, and other sections lend insites into how JEE application servers work. Tomcat users would benefit, too.)
- Java developers (Weakly recommend. The O/S and JVM sections are worthwhile, though.)

As for me, I work with JBoss every day, so I'm going to give this one a second read immediately. That's some of the strongest praise I've got to give.

The book can be found here.

Happy reading, and happy tuning!


Thursday, December 9, 2010

JBoss Performance Tuning Book is out!

The much-anticipated JBoss Tuning book is available now, and my copy is in the mail.

The book is authored by the same guy who brought us the JBoss 5 Development book, which I liked, so I look forward to reading this one.

Watch here for a review soon, else buy your copy today here.

Happy Reading!

Training Review: JB325, JBoss for Advanced Developers

Disclaimer: I work for JBoss, but I do not work for the training department, nor am I trying to sell you training. I'm just trying to let you know about a worthwhile class you can attend.

I've just finished JB325, a four day live-instructor class. It was an intense 4 days. Roughly, here's what was presented:

JBoss architecture
The inside scoop on how the JMX microkernel and POJO microcontainer act as the framework upon which all the running parts of JBoss are placed. (Hint: you can change it all, through configuration files!) We learned the startup procedure and main abstractions involved, as well as important stuff like classpath isolation techniques. (Experienced JEE developers will probably recognize the need for these.)

AOP, Invokers, Interceptor stacks
Several times we discussed AOP in JBoss and the way chain-of-command is used to build stacks of interceptors used throughout the architecture. The 'Invoker' concept was also thoroughly explained.

JCA, DataSources, and Transactions
Valuable especially in preparing databases and JMS providers for use.

JBoss Cache, Clustering, and JGroups
Clustering is easy with JBoss, right out of the box. This section of the class showed us how it all works and how you can exploit the individual parts if you'd like.

Performance Tuning
This part alone made the class worth attending. Java performance tuning knowledge is always useful, we got some great tips here. (By the way, have a look at the blog post about the new JBoss tuning book.)

As it applies across all the tiers.

JBoss Messaging, how it's configured, and how it's used.

Student workstations were provided. Students were given the software (including the IDE) and were required to configure their own environments. Labs were challenging-- sometimes there were some easy parts, sometimes there were significant challenges.

Lunch was provided and was delicious every day. (Not relevant, I know. But if I were shopping around for a class, I'd want to know!)

The bottom line: I recommend this class to anyone using JBoss that's got a handle on application basics already. If you're not sure what goes into a .ear, you're probably not ready yet. But if you've done your share of development on the 'Boss already, you'd probably like this one.

Happy learning!

Saturday, December 4, 2010

The 'Other' Erlang book

Manning has just released a new Erlang title, called 'Erlang and OTP in Action' (available here). For quite some time now, there's been a definitive guide to Erlang-- Joe Armstrong's excellent book 'Programming Erlang'. Well, guess what-- it's time to make a little extra room on the bookshelf, because the Erlang book-o-sphere has just shifted. There are now two must-have resources for an Erlang programmer.

The book is divided into three sections. The first one deals with the basics of Erlang and details about the OTP application framework. Part two shows how to build a production-worthy application in Erlang. The third part of the book is about integration and tuning.

Section 1 has chapters that covers the following: basics of Erlang and OTP, Erlang language fundamentals, writing a TCP-based RPC server, OTP and the supervisor model, and graphical tools to help your development efforts. In my opinion, chapter 1 had some slow spots, but not unbearably slow. The language chapter is good, in some places better than Joe's book. The rest of the section is informative and well written. Section 1 alone would make a decent book on Erlang, but there is much more here.

Section 2 covers building a production application. The example given is a caching application, designed to increase throughput of a web application. Topics like logging and event handling are given a chapter, as is the topic of distributed computing in Erlang. The final chapters of the section cover Mnesia (the Erlang distributed database) and packaging considerations.

Chapters in section 2 generally introduce some high level concepts at the start of the chapter, then weave use of these mechanisms into the application-building storyline, finally providing code that brings the desired functionality into the ever growing demonstration application.

The third section of the book shows how to integrate with external users via HTTP, how to allow programs written in other languages to communicate with your Erlang code, and how to tune your environment. It's notable that Java gets a whole chapter on integration, through JInterface (in comparison, Joe's book offers about 4 lines on this topic. In fairness, that's a much older book, though.)

Throughout the book, simple illustrations are used to demonstrate key concepts. I found these to be extremely helpful, as Erlang in general is considerably different than most programming languages. The delta between Erlang application development and other-language development is an order of magnitude different than something like the difference between Java and Ruby or Python and .Net. It's got different characteristics and different concepts. Given these large differences, I really appreciated the illustrations.

The book is written with easy-to-understand anecdotes that help the reader grasp the finer points of Erlang craftsmanship. You definitely get the impression the authors have written 'real' code, and they offer strong direction to guide the reader through constructing application code. There is a big difference between understanding language syntax and understanding best practices in application construction. Section 2 in particular is loaded with best practices, and this alone makes this book a worthwhile read for Erlang coders writing production applications.

Probably the best thing I can say about this book is that the authors seem to put the advancement of Erlang above all else. To bolster that statement, I'd point out that they refer the reader to other Erlang books they may wish to read, and include several mentions of Joe Armstrong, author of what has been the most popular Erlang book. In my opinion, the authors can afford this indulgence, as this book is strong enough to merit inclusion on the Erlang programmer's bookshelf. I would recommend this book to any Erlang programmer.

"Erlang and OTP in Action" can be found here.

Happy Reading!