Mike Keith's blog on Java and Persistence
All | Java

20041220 Monday December 20, 2004

Javapolis all grown up

I just got back from Javapolis in Antwerp and was quite surprised to see how popular it is getting. I confess it was my first time going, but from everything that I have heard it has been a fairly smallish conference that typically hosts in the order of hundreds of people from the dutch locale. Upon attending I found that there were 1500 people registered and although there is still a large local majority attending, more people are coming from other parts of Europe and even some from North America (such as myself). Admittedly the majority of North American attendees were giving talks, but there were also a few that weren't. In any case I guess Stephan and the rest of the people that worked with him deserve some credit for really making this conference what it has become.

Although I did take my camera it appears that its sole purpose was to keep my socks flat in my suitcase since I never actually used it. I did see some people taking pictures there, so if someone were to look hard enough I am sure a few snaps could be seen.

There were a few talks on persistence there, so I thought I would highlight some of those at least.

The first talk was by our fearless leader and JSR 220 spec lead, Linda DeMichiel. She went over many of the improvements that we have been adding to EJB 3.0 in the expert group. She kept it to a fairly high level, which I think people were able to use to help them swap the whole thing in properly. An hour is not a lot of time to describe much detail about what has taken us a year to put together. It was received as favourably as it has been at other conferences and people are really excited about using it. Right now there is one EJB 3.0 preview with another couple that are just around the release corner. It is cool that we are getting bunches of questions from folks that are actually trying this stuff out. This already gives us a huge advantage over previous versions of EJB.

The least impressive was a talk given by someone from InterSystems talking about how the Cache (pronounced ca-shay') database solved the impedance mismatch problem. This was really just an excuse to talk about how Cache tries to do as many possible things as it can cram into a shippable system without actually doing any of them well. It is an OODB... no, wait, it is an RDB... well it could be just a JDBC front end on an OODB for all I can tell. So then if you decide to do O/R mapping you actually define the class in some kind of zany propietary grammar which looks like it has to extend some Cache Persistent class. Then the mapping information ends up getting stored in the database itself (which of course many listeners that were not rocket scientists recognized doesn't bide well for portability). Re-doing everything their own way seemed to be their theme. The last company that I remember that bypassed standards and went their own way was Persistence PowerTier and they did so at their peril (are they still around?).

The icing on the cake was when they talked about a tool that they wrote to help migrate people away from their database to another database. This just seemed like a funny thing to offer. It's like saying, "No, we won't use standards as a means to overcome portability concerns, we will just write yet another custom utility that we can offer that will migrate you away from our product." *Bizarre* is the only word that I can think of that describes this.

Parick Linskey did a JDO 2.0 talk. He is actually on both the JDO 2.0 and EJB 3.0 expert groups and is a competitor of ours as well as a good friend. I didn't actually go to his talk but I know his presentation and am sure that he did it justice. He is a good guy to work with and despite the fact that we work on different products we actually see eye-to-eye philosophically on many of the persistence issues that we encounter in JSR 220.

One of the best talks was given by some colleagues and new friends of mine, Hugo Brand and Marc Meewis. They took the stage and I got to watch as they were the ones doing an advanced persistence talk. They discussed some of the O/R persistence issues that people either don't understand, or don't know enough to even ask about and then went on to the discuss how the next impedance mismatch to be solved is in mapping objects to XML (O/X). I was really impressed by both their understanding of the issues and the way that they were able to discuss and properly scope the features of a persistence engine. They did an excellent job of illustrating all of the flexibilty of TopLink and the various ways that it goes about solving all of the issues.

I guess it is hard to showcase all of the advanced features that TopLink has developed over the past decade, so they didn't go too far in that direction, which was probably a good thing I suppose. In the end many of the deluxe features are not used that frequently anyway. People like to have them in their back pocket so that if they ever encounter one then they know they can solve it.

What they did instead was differentiate it from other persistence solutions by the completeness of the solution in the entire data integration space. So not only can it read and write objects to RDB, but it can read and write the same objects to XML and other types of data storage, all of which is done using existing and developing standards. They actually showed a demo that mapped the same objects to an RDM and then to XML, showing that TopLink can round trip an object instance from the RDB through to XML and back again.

I was at a conference recently and there was a talk by Bruce Eckel that was entitled something like "Stuff that I find interesting and think that you will too". I kind of think that Gavin King's Hibernate talk turned into that. It was supposed to be sort of a Features in Hibernate3 talk, but I think that Gavin, whose mind is much like his body and can't sit still for long, gets a little tired and bored of talking about the same old things. He inevitably ends up talking about stuff that he has been thinking about recently and uses the talk as a way of vetting those ideas. Of course this is great for us in the EJB group because he happens to have been spending most of his time over the last number of months thinking about EJB stuff. That has meant that the ideas end up getting aired to lots of people at a time, and we can solicit more comments from more people. This time Gavin ended up talking about how JSF and EJB 3.0 can combine, and how the same objects can fit into both worlds. We are trying and hoping for this, but it takes more effort then one might expect to get multiple expert groups to go in the same direction and end up with harmonious specifications.

So that is "Persistence at Javapolis in a nutshell". Of course lots more stuff happened, but I will leave that to other people to blog. I actually spent most of my time hanging around Linda, Gavin, Christian, Patrick, and Cedric when he was available. We gots lots of spec work done and had a great time. Had some fantastic food and good dinners with Linda and Gavin and another with Patrick and Howard Lewis Ship. I never really knew Howard that well before so I was glad to have the chance to get to know him better. Also met Bela Ban for the frst time, which was good because I have always been interested in similar things as him. Unfortunately we didn't spend too much time talking about about distributed communications protocols but I have a feeling that we will get another chance at some point in the future. :-)

( Dec 20 2004, 12:48:05 PM EST ) Permalink Comments [0]

20041127 Saturday November 27, 2004

Enhancing my answer

In the recent interview on TSS I was asked a question that went something like this:

8. TopLink has historically been implemented using reflection type approaches. Is that still the case? Or are you doing more with bytecode now?

For a long time I urged that JDO 1.x was doing the wrong thing by pushing people into using byte code enhancement. Note that I personally have nothing against using enhancing technology. It has its good and its bad. However, there are a number of shops that have strong objections to it. They each have their own reasons ranging from version control and configuration management issues to strict QA processes and product delivery. Denying this is akin to denying that certain development and corporate processes exist, and a technology that does so shuts out an entire customer segment strictly because of its implementation/dev process.

When I was on JSR-243 (the JDO 2.0 expert group) I did my darnedest to convince the group that binary compatability was really not a feature that was worth keeping. In practice, nobody ever really wants to change vendors without having to recompile their application. In fact, if after changing vendors all they had to do was recompile their code once, then most people I know would shed tears of joy or simply faint in disbelief. Changing persistence vendors is not only a very infrequent occurrence, but is something that people take very seriously. If even a measure of source code compatability could be guaranteed then most folks would be more than satisfied. The benefits of binary compatability are simply not worth the costs and are virtually never realized in practice.

The group did finally allow binary compatability to be an optional thing in JDO 2.0, and although some of the folks kicked and screamed a bit the decision was made to allow both types of implementations. In my opinion the entire enhancement and PersistenceCapable sections of the spec should have been ditched since the premise of binary compatability was not rooted in reality. The JDO spec could have been hugely simpified if it had removed all of the implementation chapters and focused on the interfaces... but I digress.

So why do I bring all of this up? Well, because some people contacted me and thought that my answer to the interview question above was meant to imply that JDO 2.0 required byte code enhancement. This was not my intention. What I was doing was expressing the same opinion that I have expressed in the past, to the JDO group as well as to others. I don't believe that a specification should require byte code enhancement as an implementation strategy. It may allow it, just not mandate it. I still believe this, and restated it in my answer to the question to show that it has not changed. While TopLink is considering using some enhancement techniques we will always ensure that they not be required. Features that make use of such techniques will be optional.

So, as I mentioned I was not referring to JDO 2.0 when I said this but was specifically referring to my own position statements that I had made earlier (and were directed at JDO 1.x and the ongoing JDO 2.0 discussion at the time). As I mentioned, I think that JDO 2.0 could and should have gone further than it did in that area but that is another subject which is really apart from the subject of this blog. I did not intend for my comments to be taken as FUDing JDO. I understand how they could have been, though, and am sorry if they were taken that way. Hopefully this clarifies it.

( Nov 27 2004, 12:11:46 AM EST ) Permalink Comments [0]

20041121 Sunday November 21, 2004

One decade and counting

This month marks the 10-year anniversary of the birth of TopLink. For those that don't know the history behind TopLink Don wrote an excellent historical perspective in his usual entertaining style here.

While I have not been associated with TopLink for the full decade I have been around for about half of it (although it seems hard to believe) and it has been quite a ride. Loads of fun and lots of great people, which is actually one of the main reasons why I joined in the first place.

There is a newsletter on OTN that celebrates a decade of TopLink technology. It is unfortunate that stuff is so hard to find on OTN, but the link above should help you navigate to some of the articles there. The one on Preparing for EJB 3.0, written by yours truly, was an attempt to show how EJB 3.0 is moving in the direction of TopLink, and there are also a couple of others that talk about TopLink's caching and XML facilities.

Doug Clark and I also did an e-interview with TheServerSide that commemorated the 10-year mark.

( Nov 21 2004, 06:43:31 PM EST ) Permalink Comments [0]

20041120 Saturday November 20, 2004

Trailing CSS comments

CSS came and went and I realized that I never actually came back to tell people how good it was. Complaining about the keynote is fair to do, but is not representative of the conference at large.

I had a few colleagues ask me about CSS, and the way that I describe it is a small, fairly tight-knit group of smart people that get to meet and talk individually in a spectacular mountain setting.

The conference is actually sponsored and organized by Wayne Kovsky and his family, who are a stellar group of folks. The interesting thing (and I have to confess that I was somewhat surprised by this) was that despite the fact that it was organized by a small group of people it was actually one of the best-organized conferences that I have ever been to. They really do put their heart and soul into the conference, and it shows.

My talks went really well and were pretty well-received. A colleague of mine, Donald Smith was also speaking and mentioned that he had a full house on his O-X talks as well. I think that people are pretty much done talking about Tiger because there was not as much interest in many of the J2SE 5 talks in general.

Some people that I met for the first time and enjoyed talking to were Bill Dudney and Bruce Eckel. There were some un-named others that I found less enlightening and not as friendly, but to each his/her own.

Anyway, as I mentioned to people that asked me about it, this conference is well worth the trip, and I am already looking forward to next year.

( Nov 20 2004, 03:43:34 PM EST ) Permalink Comments [0]

The straw

Okay. I admit defeat. I can no longer remain silent.

After a year of resisting the impulse to create a blog something happened to me that I simply could not hold back. It wasn't that I didn't want to blog, only that I was afraid of the time commitment and the responsibility that I was worried I would take upon myself.

But alas, the camel's back got broken today as I attended a keynote by Tim Bray at the Colorado Software Summit. Despite complaining to him afterwards I could not satisfy my frustration about some of the things that he said, and I felt that if I did not let it out then I would be in danger of combusting. This seemed to be the only venue available.

Tim's presentation was a good one, but he is obviously somebody that speaks a lot and has a bunch of polished pieces of material that he bangs together. Being a technical guy, and very accomplished I might add, he likes to bring things to a very technical level.

Where he really burned me was when he started talking about how O-R mapping was broken. Don't get me wrong, I was not angry at that. Everybody knows it is a broken idea, and something that we would rather not have to do. What got my britches bunched was that he proceeded to say how people shouldn't do it. This is not an acceptable solution, being that the only reason why people are doing it is because at this stage they have to. He, himself, said that some things were too late to change, and I really think that this is just one of those things. Too much data in relational databases and people that want to program in Java. They have to do something, and when I stood up during Q&A; and told him so his idea that we all use JDBC was just too naive to be taken seriously. He obviously has never really programmed a real-live application lately and the triteness with which he dealt with the problem was indicative of this.

I have to admit, though, that he really did have a very useful and interesting idea for presenting that consisted of a long list of links that he visited in sequence and talked about. With the wireless in the room most people were able to follow the links and bookmark them individually, or the whole page from his website that he was working off of. Really useful as it leaves you with some concrete pointers of the interesting places to go to follow up on the things that he talked about. Turns out that he is a fellow Canadian, too, which I didn't know when I went up to him. Shame.

And so it begins...

( Nov 20 2004, 02:43:34 PM EST ) Permalink Comments [0]