A Journey Through GEMOC at Eclipse
GEMOC is primarily an open and international research initiative on language engineering, including the development of domain-specific languages (DSLs) and their coordination for the construction of complex software-intensive systems. It brings together researchers and practitioners from both industry and academia, and aims to develop new tools and methods integrated within the so-called Eclipse GEMOC Studio. At the Eclipse Foundation, GEMOC takes many forms that we introduce in this article, along with the main objectives, the organization, and the current and future challenges.
1. What Is GEMOC?
GEMOC is an open and international Initiative¹ created in 2013, which aims to coordinate and disseminate the research results regarding the support of the development and coordinated use of various modeling languages that lead to the concept of the globalization of modeling languages². The various GEMOC partners develop and experiment techniques, frameworks, and environments to facilitate the creation, integration, and automated processing of heterogeneous modeling languages. All the results are seamlessly integrated into the GEMOC Studio³, an Eclipse RCP on top of the Eclipse Modeling package.
The community of the GEMOC Initiative has reached a certain level of maturity that required an organization to sustain the GEMOC Studio as a research platform, but also continue to support collaboration between academia and industry and foster industrial transfer and innovation. For such a purpose, in 2018, we created the GEMOC Research Consortium⁴, which supports the corresponding international initiative to develop, coordinate, and disseminate Research & Transfer efforts on the use and globalization of modeling languages. In particular, the GEMOC RC:
- hosts the GEMOC Studio and ensures the constant availability of the research platform through adequate integration testing and continuous integration,
- coordinates and operates the co-funding of the GEMOC Studio for sustainability,
- plans and coordinates evolutionary initiatives among the stakeholders through the use of mailing lists, forums, and bug trackers,
- shares the benefits of pilot projects, and fosters exchanges between academia and industry, as well as collaboration on research projects.
2. How To Use GEMOC?
To model systems, it is first necessary to engineer the modeling languages fitting for the modeling tasks at hand. In the case of behavioral modeling, defining the execution semantics of said languages is of great importance to enable the simulation and debugging of conforming models early in the development process. And when multiple heterogeneous modeling languages are jointly used to define the different aspects of a system, it is essential to compose these modeling languages by relating their concepts and their semantics, in order to enable the joint simulation and debugging of coordinated heterogeneous behavioral models conforming to these modeling languages.
To address all these concerns, the GEMOC Studio provides generic components through Eclipse technologies for the development, integration, and use of heterogeneous executable modeling languages. This includes, among others:
- metaprogramming approaches and associated execution engines to design and run the execution semantics of executable modeling languages,
- efficient and domain-specific execution trace management services, to enable the dynamic verification and validation of behavioral models,
- model animation services, to graphically visualize an ongoing execution,
- advanced debugging facilities such as forward and backward debugging (i.e. omniscient debugging), timeline, etc.,
- coordination facilities to support concurrent and coordinated execution of heterogeneous models,
- an extensible framework for easily adding new execution engines and runtime services.
The GEMOC Studio is also provided as an Eclipse product, which eases the diffusion of the various technologies aforementioned through an integrated studio that also includes documentation, examples, and tutorials. The GEMOC Studio offers two workbenches (accessible with specific perspectives):
- A Language Workbench to be used by language designers to build and compose new executable modeling languages, which can be automatically deployed in the Modeling Workbench
- A Modeling Workbench to be used by domain designers to create, execute, and coordinate models conforming to executable modeling languages.
3. GEMOC: Who's It For?
The GEMOC Initiative brings together researchers and practitioners, both from academia and industry, who want to collaborate on the topic of language engineering and the globalization of modeling languages. By joining the GEMOC initiative, they have the opportunity to share, discuss, exchange ideas and collaborate with other members, taking advantage of the research framework proposed by the research consortium, as well as infrastructure and collaboration tools. These tools include mailing lists, model repositories, an integrated studio as a research platform, a continuous integration, etc.
In this context, researchers may conduct research and experiments in language engineering leading to prototypes integrated into the GEMOC Studio. Practitioners may develop demonstrators and conduct pilot projects using the GEMOC Studio. Fig. 2 shows how various professionals can use GEMOC Studio to their benefit. A GEMOC core developer maintains the studio framework that can be used by a contributor to extend the studio with new metaprogramming approaches, or generative approaches automating the development of DSL tooling. A language engineer can then build languages using these metaprogramming and generative approaches, and a modeler can use languages to create, debug, execute, and validate models. Lastly, a toolmaker can provide tools that can interact with the execution of models through the framework API, which can then be used by modelers (eg. for early dynamic validation).
Fig. 1: Roles in the development and use of the GEMOC Studio
The GEMOC Studio is also of interest for educational purposes. It is already used in several universities to teach students about the state of the art language engineering principles and cutting-edge technologies.
4. GEMOC at Eclipse
The GEMOC Research Consortium
Collaboration around open source, when it comes to research, generally takes place in two phases: prototyping then industrialization. The second phase is pretty well known. It is led by the SME (Small & Medium Enterprise) in collaboration with the industrial company. During this phase, the SME industrializes a product or delivers some services (Fig.1#1) which answer to the requirements injected by an industrial.
The first phase happens when the answer to the industrial needs cannot be fulfilled directly by an SME. In such a case, a prototyping phase is required and the researchers are involved. During this phase, the researchers demonstrate the innovation (Fig.1#2) and validate the prototype by comparing the results to the requirements. If the industrial company is satisfied with the resulting prototype, this phase is completed by a technology transfer (Fig. 1#3): the researcher assists and supports SMEs during the industrialization phase.
In this context, the role of the Open Source Software (OSS) takes on its full meaning: each of these actors (industry, researchers, SMEs) can collaborate on the basis of a shared OSS, which protects them against most of the intellectual property issues.
Fig. 2: Open Source: the catalyst among researchers, SMEs, and industries
At Eclipse, existing Industrial Consortia (IC) are well suited to cover the industrialization phase but are not well suited to cover the prototyping phase: Eclipse Industrial Consortia provide a vendor-neutral governance structure that allows organizations to freely collaborate to develop new industry platforms⁵. However, during the prototyping phase, the actors do not build a product or a platform, they evaluate and validate some options based on a research platform.
For this reason, the Eclipse Foundation has defined the concept of Research Consortium (RC). They are dedicated to supporting and promoting a research platform, excluding the industrialization of this platform⁶. It was important for the Foundation to support this type of collaboration without adding industrial constraints, which are not well suited to a research consortium (e.g., RC has by default an IP due diligence of Type A).
The GEMOC Research Consortium is the first Research Consortium (RC) at Eclipse, available under the umbrella of the working groups. While it is free for any partner to join an RC, projects hosted in this context must have a TRL level below or equal to 5. This means that the GEMOC RC hosts advanced research prototypes that should be used only for inconsequential examples, e.g, academic use cases, demonstrators, and industrial pilot projects. The GEMOC RC explicitly excludes the objective of increasing the maturity level of these projects to make them ready for operational deployment (TRL>=6). If members of the RC need to industrialize a technology hosted in the GEMOC RC, they are invited to fork the project and host it at their convenience, including through a dedicated Eclipse project, or part of an existing Industry Consortium.
The GEMOC Studio Development Infrastructure
The GEMOC Studio is open and aims to integrate various Eclipse and third-party technologies, with potentially different levels of maturity, and coming with different scenarios. The GEMOC Eclipse project is split into several GitHub repositories and organized to leverage automation in a continuous integration process while trying to limit individual workload. It uses a multibranch pipeline on Jenkins that allows compiling all repositories at once for a given branch. The project capitalizes on system tests (using swtBot) that simulate typical user scenarios. This gives acceptable confidence, covering the toolchain from the end user point of view. The architecture of the build process is designed in such a way that it can be easily cloned by external groups on their own infrastructure so they can get similar confidence in their developments before considering submitting into the GEMOC Studio. This process allows continuous delivery of the GEMOC Studio. Any GEMOC Studio contributor or user may ask for an intermediate release by snapshotting the current status (for example, before submitting a conference paper) or wait for the annual release. Release notes are handled semi-automatically through the systematic use of GitHub pull requests that populate the changelog. The GEMOC Studio also provides a discovery service (based on amalgam) that highlights third-party components or examples that cannot be directly hosted in GEMOC Studio.
5. GEMOC: The Road Ahead
Our immediate challenge is to properly implement the newly created Research Consortium, and to sustain both the initiative and the Studio. Although it inherits from the already existing community and organization of the initiative, we need to develop it in accordance to the scientific breakthroughs currently explored by the various members, and according to the available financial resources. Hence, we solicit future projects relying on the GEMOC Studio to contribute to the Research Consortium.
Various scientific challenges are currently explored through different projects⁷. Ongoing work includes co-simulation, model debugging and testing, live modeling and modeling in the web. Discussions about the next generations of the modeling frameworks are also underway and aim to identify the new opportunities and challenges with regard to growing scenarios such as data-driven applications and smart systems.
The community defines the long term perspectives. To collaboratively define the roadmap, various scientific and technological events are regularly organized in conjunction with both EclipseCon and scientific conferences (e.g. MODELS and SPLASH⁸). They bring together the partners of the GEMOC community to briefly recap the recent achievements, to discuss the current challenges and the coming roadmap, to address challenging tasks on the GEMOC Studio, and to welcome the newcomers.
- Benoit Combemale, Julien Deantoni, Benoit Baudry, Robert B. France, Jean-Marc Jézéquel, et al.. Globalizing Modeling Languages. Computer, Institute of Electrical and Electronics Engineers, 2014, pp.10-13. https://hal.inria.fr/hal-00994551