Model Execution Framework (MXF)
The Model Execution Framework (MXF) is a proposed open source project under the Eclipse Modeling Framework Technology (EMFT). The main aim of MXF is to provide a framework for development, execution and debugging of models with operational semantics.
You are invited to comment and/or join the project. Please send all feedback to the emft newsgroup.
Background and Motivation
Over the last years, the eclipse modeling projects have been successfully applied — in both, academic and industry — to develop and integrate model-driven tooling, especially for domain specific languages (DSLs). While EMF is used as core to specify (meta-)models in conjunction with OCL for constraints, supplementary components support the quick development of tooling by means of editors (textual or graphical), model transformations, code generators, and so on. However, there is currently no component to specify execution semantics (i.e. operational semantics) and interpret these definitions. We see the need for a framework that supports the definition of executable models and that instantly supports design validation by running those models.
A prototypical implementation of the framework has been developed as M3Actions framework and is currently available at sourceforge.org (see the project's website for further information). This framework is centered around a graphical action language to precisely define models with their executable behavior. A reflective interpreter is able to execute and debug these definitions. The overall framework supports multiple meta-layers via an explicit instantiation concept where runtime models are defined as logical instances of the abstract syntax. These runtime models are the model parts that change over time and these changes can be recorded during execution as a trace.
The MXF will build extensible frameworks and exemplary tools for executable models, e.g. an editor to define metamodels and runtime models and their behavior in terms of an action language. An interpreter and debugger will support the execution and testing of these models as well as recording of simulation runs for further analysis. The language for operational semantics might have a graphical and textual syntax and shall integrate other languages by means of black-box operations, library implementations, and so on. The common execution infrastructure will define common concepts on top of the Eclipse debugging framework and will enable applications to share runtime models, adapters for specific editors and debuggers, tracing capabilities, and more. MXF will provide integration with GMF for building DSL simulators that are seamlessly integrated into a generated editor.
- Graphical Editor A graphical editor capable of specifying the operational semantics of EMF models. The definitions will include the abstract syntax of a language, the runtime model (both EMF models) as well as the behavior model.
- Interpreter and execution environment Reflective execution environment to interpret the models.
- Generic debugger A debugger for the interpreter.
- Execution Trace model A generic trace model and adapter concept to record execution runs.
- Sample trace recorder An implementation that performs recording of runs, either file-based or via database.
In the long term, language-specific simulator-/debugger-generators will be developed that optimize runtime performance of the generic model interpreter. Moreover, a set of resuable models/runtime libraries might be developed to support rapid development of simulators for new languages.
We propose to develop this technology as a new project under the Eclipse Modeling Framework Technology project.
- Ed Merks (Macro Modeling)
- Richard Gronback (Borland)
Proposed initial committers
- Michael Soden (ikv++ technologies ag), proposed project lead
- Hajo Eichler (ikv++ technologies ag), proposed project co-lead
- Markus Scheidgen (Humboldt University Berlin), Committer (to be confirmed)
The following companies and organizations have expressed interest in this project. Key contacts listed.
- ikv++ technologies ag - Dr. Marc Born (email@example.com)
- Humboldt University Berlin - Prof. Joachim Fischer (firstname.lastname@example.org)
- itemis AG - Wolfgang Neuhaus (email@example.com)
- Fraunhofer FOKUS - Tom Ritter (Tom.Ritter@fokus.fraunhofer.de)
- Obeo - Stephane Lacrampe (firstname.lastname@example.org)
- CEA LIST - Sèbastien Gèrard (email@example.com)
- Anyware Technologies - David Sciamma (firstname.lastname@example.org)
- INRIA - Didier Vojtisek (email@example.com)
- FeRIA - Marc Pantel (Marc.Pantel@enseeiht.fr)
- Atos Origin - Raphaël Faudou (firstname.lastname@example.org)
- University of Agder - Terje Gjøsæter (email@example.com)
The project plan heavily depends on approval and feedback of the community. Development is currently ongoing at sourceforge.org, so after migrating to Eclipse and setting up the project, a first step will be to revise and stabilize the existing code base until October 2009. During that setup phase, we want to better integrate with and connect to existing projects (EMF, Ecore tools, etc.).