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.

References

  1. http://gemoc.org
  2. 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
  3. https://projects.eclipse.org/projects/modeling.gemoc
  4. https://www.eclipse.org/org/workinggroups/gemoc_rc_charter.php
  5. https://www.eclipse.org/org/workinggroups/about.php#wg-neutral
  6. https://www.eclipse.org/org/workinggroups/gemoc_rc_charter.php
  7. http://gemoc.org/projects
  8. http://gemoc.org/events

Authors of Article

Author

Benoit Combemale is Full Professor of Software Engineering at the University of Toulouse, and a Research Scientist at Inria. His research interests are in the field of software engineering, including Model-Driven Engineering, Software Language Engineering and Validation & Verification; mostly in the context of (smart) Cyber-Physical Systems and Internet of Things. He is also teaching worldwide in various engineering schools and universities.

Prof. Combemale received his Habilitation in Computer Science from the University of Rennes 1 in 2015, and his Ph.D. in Computer Science from the University of Toulouse in 2008. Before joining the University of Toulouse, he was an Associate Professor at the University of Rennes 1, and has been visiting professor at McGill University and Colorado State University.

Prof. Combemale co-authored 3 books, and 100+ journal and conference publications in the fields of software engineering. He also edited 2 books and various special issues in scientific journals. He is chairing the Steering Committee of the conference series SLE, a deputy editor-in-chief of the journal JOT, and a member of the editorial boards of the journals SoSyM, COLA, and SCP. He has been the program chair of SLE 2014 and ECMFA 2019, and general chair of MODELS 2016 and SLE 2017. He also serves as program committee member for various conferences and workshops in software engineering. Prof. Combemale coordinated and participated in many collaborative projects, and bilateral collaborations with industries. He is also a founding member of the GEMOC initiative, and currently lead the steering committee of the Eclipse Research Consortium GEMOC.

Julien Deantoni is an associate professor in computer sciences at the University Cote d'Azur. After studies in electronics and micro informatics, he obtained a PhD focused on the modeling and analysis of control systems, and had a post doc position at INRIA in France. He is currently a member of the I3S/Inria Kairos team. His research focuses on the join use of Model Driven Engineering and Formal Methods for System Engineering. More information at http://www.i3s.unice.fr/~deantoni/
Erwan Bousse is an associate professor at the University of Nantes since 2018, specialized in software engineering. He has obtained his PhD in France in 2015 at the University of Rennes 1 for his work on execution traces and omniscient debugging of executable models. He is a member of the LS2N laboratory, and his current research interests include software language engineering, domain-specific languages, model execution, and model debugging. He is one of the core developers of the GEMOC Studio.

Didier Vojtisek works for the French National Institute for Research in Computer Science and Control (Inria) since november 2001 as a research engineer in the Development and Experimentation Department (SED). His main role is to develop software and promote of good software engineering practices in Inria research teams. Didier was first assigned in the Triskell team and in collaboration with Vertecs team. Since 2013, the Triskell team is now named DiverSE.

Didier is specialized in research and development in model-driven engineering concepts, tools and applications. He is the main architect of Kermeta, an open source tool for building Model Driven solutions. He actively contributes to the newest software of the team relative to modeling and language engineering. Didier co-authored the "Engineering Modeling Languages - Turning Domain Knowledge into Tools" book (CRC Press 2016).

Philippe Krief is the Research Relations Director of the Eclipse Foundation Europe. He received his Ph.D. in Computer Science from University Paris VIII, France in 1990. Before joining the Eclipse Foundation staff, he was Senior Architect on Embedded System developments, Eclipse committer, Agile development evangelist on the Rational Collaborative platform, and R&D Development Manager for IBM. He has a passion for Eclipse since its beginning, early 2000 when he was involved in the early versions based on VisualAge Micro Edition, which supported the development of embedded Java applications and cross-system development. Philippe is the dissemination and community development manager of the AGILE project (www.agile-iot.eu), co-founded by the Horizon 2020 programme of the European Union.
This project has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreement No 787034