Apache OFBiz Development (book review)

5 02 2009

Book cover
Apache OFBiz Development: The Beginner’s Tutorial, by Jonathon Wong and Rupert Howell, aims to fill a niche that was completely empty until this book was published. The Apache OFBiz project is an Open Source framework for building enterprise automation applications on the Java platform. OFBiz has been used to build many business applications, but until now there wasn’t a comprehensive beginner’s tutorial for developers wanting to use the platform. As with many Open Source projects, freely available OFBiz documentation tends to be incomplete and not very well organized, so a book that can be read cover-to-cover and provides a good developer’s tutorial is certainly welcome.

Unfortunately, this book fulfills this promise only partially. As a disclaimer, let me start by saying that I am not an OFBiz expert, having only had a passing acquaintance with its Persistence Engine, so I am not equipped to judge whether the content of this book is accurate and reasonably complete. I am indeed a beginner with respect to OFBiz, so I should be exactly the right kind of public for this book.

As the beginner that I am, I started reading the book, but soon found it very hard to keep on reading. For one thing, the text does not seem to follow a smooth, linear narrative. Its flow is continuously broken up by the use of very short sections with a big, bold title. Personally, I’d have saved on the ink and paper and coalesced small sections into bigger ones.

Another problem, at least in the early chapters, is the tendency to present simple concepts and examples, together with a promise to explain more in the rest of the chapters. I understand that you cannot present very detailed explanations right at the beginning, but this book goes just a bit overboard in leaving the reader hanging on.

The net effect of this approach is that it makes reading very difficult, after a while. This problem could be overcome by a reader with enough patience and determination, but in my case I soon started to skip sections and to peek ahead to see if there was something more interesting for me.

Sampling around, I came upon Chapter 9, “The Events” and was very perplexed. This s a short chapter which only uses the “event” word twice in the first page, without even explaining what an event is in the context of OFBiz, copies some text from page 117, then switches completely to the topics of security and access control, and of localization, none of which seems particularly event-driven to me. Maybe I am completely missing the meaning of “event” in OFBiz, but this is just one more reason to explain it properly in a beginner’s tutorial.

Another aspect of the book that I was uncomfortable with is that, most of the time, the reader is treated not just as an absolute beginner with OFBiz, but as a beginner with the whole concept of developing Java web applications, to the point of showing him how to download and install the JDK. I would just state that a certain level of knowledge and past experience with the whole platform is a requirement in the preface. Showing how to install the JDK is not going to help anyone here.

To sum it up, my opinion of this book is not very good. Still, all is not bad, and I think it can be a decent tutorial for most parts of OFBiz. Since such a tutorial was definitely needed, it’s a shame “Apache OFBiz Development” succeeds only partially.

Update: “Chapter 10: the Service Engine” is freely available from the publisher’s website.





Scarlet

6 11 2007

Kudos to my colleagues Ugo and Sergio for releasing Scarlet:

Sourcesense is proud to announce the first beta of Scarlet, a clustering solution for Atlassian Jira bringing high-availability and scalability to the award-winning Jira issue tracker. The solution is based on Terracotta DSO, the Open Source clustering framework from Terracotta, enabling easy and trasparent scalable Java solutions.

Scarlet provides a full-fledged clustering solution for Jira, bridging an important gap when it comes to enterprise architectures based on high-availability: rated as one of the most popular requests from Jira users, clustering support makes Jira a truly distributed enterprise-class solution for organizations relying on simple yet effective scalable architectures.

Scarlet is distributed as an Open Source extension to Jira under the Mozilla Public License 1.1 and it’s available from http://confluence.atlassian.com/x/woQuBg. Jira users and developers are encouraged to dowload the extension and provide feedback: Sourcesense is committed to support and manage contributions, under a transparent and meritocratic Open Development process. Commercial support and additional services are available from http://www.sourcesense.com.

One of the interesting facts about Scarlet is the fact that it’s based on Terracotta DSO, an insanely cool distributed object system, network-attached memory, or what you call it, and Open Source to boot. Ever since I first heard about it, I was under the impression that it could be a great solution to a large class of problems, but was never able to personally verify this assumption. With Scarlet we have a great example of its validity.





JRuby 1.0 Released!

11 06 2007

Charles Nutter: “We have finally released JRuby 1.0, based on the last release candidate, RC3. And what more is there to say? Not really a whole lot…It’s almost entirely RC3, with one or two minor fixes added in. But it’s really turned out to be an outstanding release, and already reports are coming in of folks trying it out en masse. We’re very happy.”

Congrats!





Lucene GdataServer

19 05 2007

GdataServer – Lucene-java Wiki: “GData-Server is a lucene sandbox project started in June 2006. The first 2 1/2 month of the project this has been a one man show due to Google’s SummerOfCode. In fact of that the server is still in high development status but offers all features described in the GData protocol. Generally speaking, the Lucene GData Server is an extensible syndication format server providing CRUD actions to alter feed content, authenticaton, optimistic concurrency and full text search based on Apache Lucene.”

Nice!





Who Cares About Sun Open-Sourcing Java?

17 05 2007

James Gosling: “There are real wars. And it’s really hard to be friendly to the open-source community because if you’re friendly to this camp then you’re viewed as an enemy by that camp. And one of the things we got stuck on was that we really like the Apache folks, but we also rather liked the GPL guys. And the Apache folks were very angry at us for picking GPL. But we had to pick something. If we’d picked the Apache license, the GPL crowd would be upset with us.”

I’m with Geir on this one: Sun could be friendly to everyone. It’s not like “the enemy of my enemy is my friend”. Moreover, painting the relationship between the ASF and FSF as a kind of war is a bit over the top, isn’t it?

Gosling confirms again that he’s not particularly smart when talking about Open Source, as already mentioned here and here. However I’m happy to learn that he changed his stance from this:

We’ve got several thousand man-years of engineering in [Java], and we hear very strongly that if this thing turned into an open source project—where just any old person could check in stuff—they’d all freak. They’d all go screaming into the hills.

to this:

But it feels like we’ve gotten to a point where the developer community is strong enough and feels strongly enough about consistency and interoperability and quality that market pressures will keep things on track. And those that try to misbehave will have issues with the market.

even though it took almost exactly two years.





Introducing Buildr

8 05 2007

Assaf Arkin: “That, in a nutshell, is how we went from the deeps of frustration to a build system that … hold on a second … is actually fun to use. And dead easy to customize. And works repeatedly.”

I don’t hate Maven with the same passion as Assaf has, but that’s probably only I haven’t yet used Maven in anger for a big project. My latest big project started with Maven, but moved quickly to Ant+Ivy.

Still, Ant is not at all fun to use. I find most of our Ant scripts unreadable (pointy brackets don’t help) and the maze of includes that were put in place to provide some kind of code reuse too confusing and impossible to debug.

Mind you, this is not an indictment of the fine people who wrote those scripts. They did the best job possible, given the limitations of the tool.

Anyway, neither Ant nor Maven seem to be any fun to use, so I’d welcome anything that promises to bring back some fun to the process. We all know that writing stuff in Ruby can be fun—again—but my worry is that adopting a build system that nobody else uses is bound to give you problems, like not being able to find people who are already expert with your tool of choice.

However, if nobody ever tried anything different, we’d be stuck with make, I think.

(Via Tim Bray.)





Jonas Boner @ Jug Milano – January 18th

16 01 2007

Jonas_BW_160x160.jpgAs anticipated some weeks ago, Jonas Boner will be our special speaker at the 22nd meeting of the Java Uesr Group Milano, on January 18th at 6.45pm.

Jonas is a well known speaker, architect and open source developer, founder of the AspectWerkz project and committer of AspectJ. He’s Senior Software Engineer at Terracotta.

The title of his talk will be Distributed Computing Made Easy: How To Build a POJO-based Data Grid:

Abstract
In this session you will learn how to build a highly scalable Data Grid using standard JDK 1.5 and POJOs.
We will start with a discussion of the Master/Worker pattern — one of the most useful parallel programming design patterns in use today. You will learn about the identifying characteristics of the pattern and how best to use it in the real world.
It is a very practical, “hands-on” session in which we will present how to build the Master/Worker pattern using standard JDK 1.5, and how to turn it into a distributed grid implementation by using Open Terracotta’s* JVM-level clustering technology. Following that, we will cover the production implications of operating and scaling a reliable work management framework, and give examples on how to address real-world challenges such as dealing with very high volumes of data, handling work or worker failure, ordering, routing schemes etc.

Check out this page for all the details about the meeting.

Via Filippo.





The eBay Architecture

19 12 2006

logoEbay_150x70.gifAs a Java architect, I’ve always been curious to learn about what makes large, enterprise Java systems tick. One of the biggest Java systems out there is certainly eBay, and if you want to know more about its architecture, now you can read the slides of an SDForum presentation titled “The eBay Architecture – Striking a balance between site stability, feature velocity, performance and cost”.

Attending the live talk would have been great, but even form the slides only (PDF version here), there are many important lessons in there, particularly regarding scalability. Some of them are nuggets of often repeated wisdom, like “Keep application tier completely stateless” and “Cache where possible”. Others are more unexpected, like:

  • Throw out most of J2EE, and
  • No business logic in database (no stored procedures and only very simple triggers).

All in all, a very good read.





Releases!

13 12 2006

Old news, I know, but I just want to underline how some of these releases tie together, possibly to indicate an important trend.

First of all, we have Java SE 6, with Javascript built-in, thanks to Mozilla Rhino.

Then we have JRuby 0.9.2, with a slew of enhancements, bug fixes and performance tweaks.

Finally, after a long wait, Groovy RC-1.

All signs pointing to 2007 as the year of dynamic languages on the Java platform? It really seems likely.

On an unrelated note, I am also pleased to announce the relase of Apache Abdera 0.2.0 (incubating). Nothing revolutionary here, but an impressive number of features already for a 0.2 version. Very stable and surprisingly bug-free also.





And GPL it is

13 11 2006

In the end all rumors have been confirmed and today will mark the day when Java source code has been opened, under the GPLv2. Details to follow at www.sun.com/opensource/java, where a live webcast with Jonathan Schwartz and Rich Green will be held at 9:30AM PT (that is 6:30PM CET, so it means I will probably be traveling at that time).

With respect to the fears I have expressed about the core libraries being GPL as well, it looks like—according to Tim Bray— that they will use the Classpath Exception clause to avoid code using them to be infected by the GPL. I can’t even begin to wonder what the actual legal consequences of this are, but the spirit—if not the wording— of the clause seem pretty clear to me.

Technorati Tags: , , , , , , .