JAXenter: Hallo Eike. Kannst du zu Beginn das CDO-Model-Repository-Projekt in wenigen Worten vorstellen?
Eike Stepper: Das CDO (Connected Data Objects) Model Repository ist ein Distributed Shared Model Framework für EMF Modelle und Meta-Modelle. CDO ist außerdem eine Art Model Runtime Environment mit Fokus auf orthogonale Aspekte wie Modellskalierbarkeit, Transaktionalität, Persistenz, Verteilung, Abfragen und mehr.
CDO hat eine 3-Tier Architektur, welche EMF-basierte Client Applikationen unterstützt, auf einem zentralen Model Repository Server basiert und verschiedene Arten steckbarer Back-ends zur Datenspeicherung bedienen kann, unter anderem relationale Datenbanken, Objektdatenbanken, Dateisysteme oder In-Memory. Das Client/Server Kommunikationsprotokoll ist auf Basis der Net4j Signalling Platform implementiert, aber ebenfalls austauschbar.
JAXenter: Was ist ein typischer Use-Case für das Projekt?
Eike Stepper: Die Anwendungsfälle lassen sich normalerweise einer der beiden folgenden Gruppen zuordnen: Der Einsatz als Werkzeug während der modellbasierten Entwicklung oder die Einbettung in Softwareprodukte zur Laufzeit. Im ersten Fall stehen oft das feingranulare Locking und die (gegenüber reinem EMF) drastisch erhöhte Skalierbarkeit der Modelle im Vordergrund, so ist zum Beispiel die Transformation Gigabytes großer Modelle erst möglich durch CDO. Beim Einsatz als Laufzeittechnologie spielen oft die verteilte Transaktionalität (XA) und die netzwerkweite Verteilung von Änderungsnachrichten eine wichtige Rolle.
Diese Kombination aus modellgetriebener Architektur und Enterprise-Eigenschaften machte CDO attraktiv für eine ganze Reihe wirklich großer Spieler. So setzt zum Beispiel das Jet Propulsion Laboratory (JPL) der NASA das CDO Model Repository für Mission Planning und Control der kommenden Marsmission ein. Die Kanadische Space Agency hat ein sehr interessantes Projekt von autonom agierenden Robotern, die auf einem CDO-gestützten Distributed Shared Model operieren. Die US-amerikanische Firma Echostar setzt CDO seit Jahren erfolgreich zum feingranularen Asset-Management einer Flotte von sechs Orbitalsatelliten ein. Bombardier Schweden zeigte eindrucksvoll, wie es mit CDO gelang, einem existierenden EMF-Werkzeug zur Planung von Gleis- und Signalsystemen innerhalb einer knappen Woche Entwicklungsarbeit neue Charakteristika wie Multi-User-Fähigkeit und transparente Versionierung einzuhauchen. Das Kanadische Verteidigungsministerium setzt CDO bereits seit mehreren Jahren in einem (leider streng geheimen) Projekt ein und stellt dazu einen full-time Committer ab.
JAXenter: Was ist in der Galileo-Version neu?
Eike Stepper: Galileo ist wahrscheinlich das CDO-Release mit den meisten Neuerungen. Das Team wuchs auf acht Committer an und es wurden insgesamt rund 130 Erweiterungen implementiert. Einige der herausragenden Neuerungen in CDO 2.0 sind:
- Volle Change Deltas in EMF Notifications durch CDO Change Subscription Policies
- EMF Containment Proxies und CDO-externe References
- Array-Werte, Feature Maps und Default Values
- EPackages sind im Repository verfügbar
- Transactions mit Save Points und Distributed Transactions (XA)
- Asynchrones Query Framework
- Virtuelles hierarchisches Dateisystem für Resources im Repository
- Import und Export von Resources
- Optionales explizites Locking für pessimistische Strategien
- Erweiterbares Authenifizierungs- und Authorisierungssystem
- Multi-Level Caching (fixed size, memory sensitive, external, ...)
- Partielles Laden von Collections
- Adaptives Prefetching, optional mit Erkennung von Zugriffsmustern
- Progress Monitoring bei Commit Operationen
- Abschaltbare Passive Updates vom Repository und Re-Synchonisierbarkeit
Erweiterte EMF-Unterstützung
Neue CDO Funktionen
Verbesserte Charakteristika
Neue Integrationen mit dem Eclipse File System (EFS), Team Support, Common Navigator Framework (CNF) und dem Graphical Modeling Framework (GMF) kamen ebenfalls dazu.




