Tuesday, November 20, 2012

Fail Server, Fail!

To use online data offline certainly opens entirely new operation spaces for application systems. The most obvious advantage is that an application becomes tolerant against network failure and can continue to work with replicated offline data until the master server is reachable again.

Of course it also protects against server failure, but only to a certain degree. If the master server fails an application can continue to work with offline data but without the master server to broadcast change notifications there is no real-time collaboration anymore. And the risk that the offline modifications lead to non-trivial conflicts at the time the master server comes back and the changes are to be merged up increases over time.

Leveraging the same replication mechanisms that CDO uses for offline clone repositories you can easily build up fail-over repository clusters. The most sophisticated topology involves a separate fail-over monitor which manages a dynamically growing or shrinking set of repositories. It elects new master repositories in case the current master fails and communicates with special fail-over sessions in the clients.

With the new CDO Offline Example application it's now easier than ever to play with these complex setups. I've recorded another screencast (which builds upon this one) for you to give you a clue on how to start:

Switch to HD on YouTube

I hope you're inspired by the demo and develop new ideas for your own applications...

Monday, November 19, 2012

Use Online Data Offline

You may know that a CDO model repository can be used like an online database with change notifications to make your modeled applications truly collaborative with no more than a handful lines of code.

You may not know, yet, that CDO supports a number of additional repository configurations which help to build up more complex topologies of replicating repositories.

To make it easy to explore the possibilities I've created a new example application that you can install through Eclipse's example wizard.

To make it even easier I've recorded a screencast for you that guides you through the first example and shows you how to embed local offline clone repositories into client applications.

With this setup applications use online data while they're online and continue to work with offline data while they're offline:

Switch to HD on YouTube

I hope you're inspired by the demo and develop new ideas for your own applications...

Sunday, October 28, 2012

Release Notes and API Evolution Reports

The Open Source Initiative cites transparency in their prime mission statement:
Open source is a development method for software that harnesses the power of distributed peer review and transparency of process.
It is important to consumers to know what's going on in a project because it (ideally) creates trust in the project results and in the way those are being consumed.

To help our users to keep up with the rapid (though mostly compatible) change in CDO our downloads page now provides detailed release notes and API evolution reports for each drop:


Here you can see some examples:

Saturday, October 27, 2012

An Automated Tutorial

The EclipseCon Europe 2012 is over and it was, again, a pleasure to attend it. According to the excellent feedback I received my show in the theater has been a great success. I promised to upload the plugin that's been driving my Eclipse IDE automatically and make it available together with the slides. It's now available on the CDO homepage:


You can download the ZIP archive and unzip the contained plug-in JAR to the dropins/ folder of your Eclipse IDE. After restarting Eclipse you'll see this trim widget:


By clicking the yellow arrow button (or pressing the F5 key) repeatedly you can advance through the tutorial step by step and watch your workspace being updated until you end up with a fully functional distributed application system.

Lean back and enjoy...

Now that I've Got a Model – Where's My Application?

Models are efficient for capturing enterprise knowledge at a high level of abstraction, independent of technical concerns. Using the Eclipse Modeling Framework (EMF) I can generate an Eclipse editor for my model on a click of a button and instantly play with it. Once I've iterated on the model I need to develop an application around it to put it to use. Now I realize that modeling didn't eliminate any technical aspects, it just relieved me from thinking about them early.
What about the background threads that are expected to cooperate nicely with my model? What if real data are magnitudes bigger than the data I've played with? How do I store this data and broadcast changes to the other users of my application? Can I prevent multiple users from accidentally modifying the same object? My application seems to disappear behind a curtain of challenges until I discover that the Connected Data Objects (CDO) framework provides me with a sophisticated platform for the technical aspects of my model.

In my EclipseCon presentation today I'll tell you how best to employ the runtime aspects of these frameworks to build a scalable, transactional and distributed application for your modeled data with little more than a mouse click.

The session will be in the Theatre from 10:30 to 11:30. I've prepared quite some gimmicks for you and I'm looking forward to seeing you there...

Thursday, October 25, 2012

Now that I've Got a Model – Where's My Application?

Models are efficient for capturing enterprise knowledge at a high level of abstraction, independent of technical concerns. Using the Eclipse Modeling Framework (EMF) I can generate an Eclipse editor for my model on a click of a button and instantly play with it. Once I've iterated on the model I need to develop an application around it to put it to use. Now I realize that modeling didn't eliminate any technical aspects, it just relieved me from thinking about them early.
What about the background threads that are expected to cooperate nicely with my model? What if real data are magnitudes bigger than the data I've played with? How do I store this data and broadcast changes to the other users of my application? Can I prevent multiple users from accidentally modifying the same object? My application seems to disappear behind a curtain of challenges until I discover that the Connected Data Objects (CDO) framework provides me with a sophisticated platform for the technical aspects of my model.

In my EclipseCon presentation today I'll tell you how best to employ the runtime aspects of these frameworks to build a scalable, transactional and distributed application for your modeled data with little more than a mouse click.

The session will be in the Theatre from 10:30 to 11:30. I've prepared quite some gimmicks for you and I'm looking forward to seeing you there...

Wednesday, June 27, 2012

CDO 4.1 is Available


Together with the Juno release train we have released CDO 4.1.
You can download or install it from:


The release notes and documentation are also available.

I'd like to thank the CDO committers, contributors and users for another year full of exciting challenges, pleasant cooperations and major achievements. For myself CDO is a full-time job and I'd like to do no other job. Thank you for that!

Friday, February 24, 2012

CDO 4.0 SR2 is Available

Together with the Indigo release train we have released CDO 4.0 SR2. You can download or install it from:


Please note that we've fixed a severe bug in the legacy mode after SR2 had been built. The rest of CDO is unaffected but if you're using the legacy mode you should consider to update to the latest maintenance build.