Tuesday, January 24, 2006

Open Source within the Enterprise

I just started reading Scott Mark's blog, based on a link from the enterprise architect we wish we worked for- James McGovern. It's fascinating stuff really. I like this perspective on standards he outlines. We really shouldn't just prefer standards by default, when there are better "open" alternatives. I think the examples of EJB and JSF in the Java world are cases in point. The EJB3 standard is an attempt to incorporate some of the ideas that Spring's dependency injection approach and Hibernate's object relational mapping approach have shown to be more flexible. I really appreciate the difficulty of the challenge faced by standards groups to keep up with the more agile progress made by open source and commercial products- I wonder how they can do it?

Open Source within the Enterprise: "Richard [Monson-Haefel] has some interesting perspectives on this issue... he founded the MockEJB project, and authored 2 best-selling O'Reilly books on EJB and Java Web Services - you would think he is a big standards wonk, but guess again. Like many pundits who spent years under the mind cloak that EJB was a Good Thing, he is now extolling the virues of Ruby (along with people like David Geary, who wrote previously sang praises of JSF and JSP). It should give all enterprise architects pause when some seriously bright people are willing to walk away from what they have been saying for years, and admit they were wrong. Are standards so great when tons of doorstop-quality books are required to explain them, and their apologists even stop apologizing?"

3 comments:

scott said...

Hey Matt - Thanks for creating the back link on my post and your thoughts here... it's an interesting problem. (For the record, I'm also a very lazy JCP member, so I'm part of the problem!) What I find most amusing is that most people who ever used EJB did it in a single enterprise app with no remote context whatsoever... Why layer all of this remoting in, just because it's a standard? I blame O'Reilly for stating that "EJB is the model" in the Struts book... but that's another amusing tangent. :-)

James McGovern said...

Since Scott declared his JCP participant status, I must to come clean. I have served on a total of three different JSRs all of which have died. Two of them were shot by lawyers while the third simply fell apart for other reasons.

As far as Richard Monson-Haefel I wouldn't say that his switch to Ruby has anything to do with him changing his mind but rather him being able to not only figure out what went right in the past but also what went wrong. This is a characteristic that I wish many architects in corporate America had...

Matt M said...

Yeah, I can't blame anyone working on a standards group- it's really a hard slog. I think one of the better approaches is to start with a reference implementation of what the standard is supposed to support, and then pull out some concepts from there that can support compatible implementations.

As far as the EJB standard goes- I too have seen a lot of cases where it was used on single, isolated systems that used the database as the point of integration. I have had to become a broken record pointing out how this breaks or limits various caching optimizations. On the other hand, when EJB is used for remoting, I have run into massive problems with interdependence. Web services or JMS are so much better, simply because you don't necessarily have to upgrade both systems when the remote side changes. While I complain alot about "service oriented gridlock", EJB gridlock is much worse.