Monday, March 21, 2011

CDO Enters the 3rd Dimension

Update: The new room is 
Ballroom B+C
(not D, as in the printed schedule!)

EclipseCon is near and I'd like to invite you to attend Martin's and my talk CDO 3D on Monday shortly after lunch time.

As you may know or not, CDO is a runtime environment for distributed shared EMF models. Especially for organizations with huge models (e.g. the NASA, banks like the UBS AG, etc.) CDO is indispensible and has become sort of modeling mainstream in the past years.

Although I've always invested a lot into cool animated Powerpoint slides and although CDO comes with really new functionality each year, we've recognized a slight tendency of the conference audience to decide for parallel talks about completely new modeling technology, if they were forced to choose one. This fact (and the guy who shouted "next year we get Pixar Studios" after my last EclipseCon talk) has made me think about new ways of presenting a complex distributed technology. That's why this year's talk is titled "CDO 3D".

We will have no Powerpoint slides anymore but fully focus on real-time demos of a distributed system with a CDO model repository server and two CDO client applications. The client applications have RCP user interfaces, as well as a self-made scripting console that we will use to demo the API usage of CDO and the immediate influence of local CDO calls on the entire system.

In addition we've developed a 3D visualization frontend, that renders the contents and activities in multiple Java virtual machines into a 3D canvas in real-time. We've instrumented these VMs so that the frontend can even visualize the method calls between the Java objects and the network traffic between the VMs. This diagram outlines the basic architecture of our presentation system:

If you're still asking yourself "What the hell is he talking about?" watch this short video:

(click here for watching a larger video)

Of course we'll also talk about some of the cool new features in CDO 4.0 like OCL queries, Blobs and Clobs, cross referencing and referential integrity checks, fail-over cluster and the brand new backend integration with MongoDB. I'm looking forward to see you in Santa Clara!


  1. Hey Eike, that's pretty cool stuff. I've got another take on CDO 3D with an application I'm working on. I'll have a demo at EclipseCon next week if you'd like to see it.

    Steve Robenalt

  2. Wow Eike, How awesome is that? What are you using for the rendering? GEF3D?

  3. Thanks you, guys.

    @Steve: Sure, I'm definitely keen on your demo. You'll know how to catch me next week ;-)

    @Miles: We're using pure Java3D for the rendering, Equinox Aspects for the dynamic instrumentation and Net4j (what else!) for the agent protocol. Here are the sources.

  4. "backend integration with MongoDB"
    Are you using the Mongo EMF project?
    I discover this project with this post

  5. @scratsh: No, we've developed a separate implementation for several reasons:

    * Most prominently our MongoDBStore was finished several weeks before Bryan posted his article.

    * According to the 3 tiered architecture of CDO our to implementations must be quite different and inadequate for each others purposes.

    * Transactionality and ACID properties are essential for CDO and MongoDB itself does not provide for these semantics. I'm not sure how Bryan tackled this issue (probably not at all because pure EMF does not know about transactions either). We've come up with a clever MongoDB schema mapping that allows us to store an entire commit change set of CDO atomically into a single document in a single collection.

    Please see also our MongoDB quick ref card.

  6. Looks great! Apparently, you were infected by the 3D virus as well :-) We really have to try this with GEF3D, someday.

  7. I really like the idea of presenting topics of CDO by using CDO itself. Eat your own dogfood par excellence. Brilliant.

  8. @Gilles: Thx buddy! Looking forward to drink awine or two with you :P

  9. Should we grab a BoF spot at EclipseCon for 3D and Eclipse?

  10. @Steve: We don't want to forget that I'm a modeling guy :P

  11. Right, but you as well as several of the people commenting on this post (myself included) are using 3D with Eclipse in some manner. And the IP issues around using 3D Java bindings with Eclipse affect all of us.

    @Jens, @Miles? I know you're both working on this issue.

  12. Wow, what an amazing show!

    Really great!