The Eclipse Modeling Framework (EMF) is used extensively throughout the Eclipse Platform and by applications built on the Rich Client Platform (RCP). And up to this point, the size of EMF models has been relatively small-- tens or hundreds of kilobytes (e.g., various Java EE deployment descriptors). For storing model instances, EMF provides an XML based persistence mechanism which works well for these relatively small models. However enterprise applications (e.g., engineering tools for embedded software, customer relationship management systems) usually involve very large amounts of data-- often hundreds of megabytes--and that data is typically stored in relational databases, not XML.
In this demo we'll present solutions to the problem of persisting EMF models into relational databases using Object/Relational Mapping (O/RM). Arising out of a collaboration between Bosch and Oracle to persist large models of engineering data, the commercial Oracle TopLink framework was extended to support the unique characteristics of EMF models. With the availability of the open source TopLink Essentials Java Persistence API (JPA) reference implementation, we are now migrating to this new standard.
In both cases, TopLink/EMF integration supports model-driven (i.e. generative) creation of object-relational mappings and database schema (top down), a database schema driven approach (bottom up), as well as meet in the middle (mapping between existing models and database schemas). EMF's intrinsic persistence semantics are provided through a new implementation of EMF's Resource interface for JPA. It supports direct interaction with rich client applications and editors as well as retrieval of EMF objects using JPQL queries. Lazy loading is at the granularity of objects rather than entire resources/XML documents to minimize memory usage. Topics we'll cover include the origin of the work at Bosch in the development of a custom IDE for embedded systems design, current project status, the challenges of integrating standard JPA O/RM with EMF generated models, and a comparison with other EMF persistence solutions.
Stephan has over 10 years of practical and scientific experience in the fields of software engineering and embedded systems. His focus has been on adopting component-oriented architectures and model-driven development methods in building software for resource-constraint targets. Stephan got involved with Eclipse when he joined Robert Bosch in 2004. His major assignment has been to design the core of a model-based IDE for embedded control software of Diesel injection systems using Eclipse and EMF. This IDE has recently been adopted as a basis for building a standardized enigneering tool platform at corporate level. The resulting new IDE will be designed for creating current and future generations of embedded control software throughout all automotive-related business units within Bosch and is going to be deployed to more than 4000 developers. Stephan holds an MS and a PhD in Electrical Engineering (University of Stuttgart, Germany).
Shaun Smith is co-lead of the Eclipse Dali Java Persistence API (JPA) Tools Project and a product manager for Oracle TopLink, Oracle's JPA implementation and the basis of the open source 'TopLink Essentials' JPA Reference Implementation. He has been building systems using object-relational mapping technologies for almost a decade in both Java and Smalltalk in the banking, telecommunications, and energy industries. Shaun's a frequent conference presenter and has recently spoken at Eclipse Summit Europe, EclipseWorld, The Server Side Symposium, JavaPolis, and JavaOne.