Model-Aware Service Environment (MORSE)

Welcome to the MORSE Project!


As service-based Internet systems get increasingly complex they become harder to manage at design time as well as at runtime. Nowadays, many systems are described in terms of precisely specified models, e.g., in the context of model-driven development. By making the information in these models accessible at runtime, we provide better means for analyzing and monitoring the service-based systems. We propose a model-aware repository and service environment (MORSE) to support model access and evolution at both design time and runtime. MORSE focuses on enabling us to monitor, interpret, and analyze the monitored information.


The Model-Aware Repository and Service Environment (MORSE) is a service-based environment for the storage and retrieval of models and model-instances at both design- and runtime. Models, and model-elements are identified by Universally Unique Identifiers (UUID) and stored and managed in the MORSE repository. The MORSE repository provides versioning capabilities so that models can be manipulated at runtime and new and old versions of the models can be maintained in parallel.

MORSE Overview

The figure gives an overview of the MORSE approach. From the repository model-aware services are generated that interact with the information retrieval interface. Also services with traceability information that emit events to model-aware services can be generated.

MORSE Architecture

The figure gives an high-level overview of the model repository architecture. Different Web service interfaces allow for the administration and resource management of model-driven development (MDD) projects and artifacts and offer information retrieval functionality to model-aware services. The MORSE builder service can create these model-aware services. Also it can weave UUIDs of MORSE objects into generated code. A deployment service is used for deploying resulting services and processes on runtime engines. Because all MDD projects and artifacts are managed in a common model repository, model-aware services can query these for any information on themselves and other model-driven components. Although models and model relations may evolve over time, using UUIDs, it is always possible to retrieve a specific version of a MORSE object. Derived versions, e.g., new versions of the model that were created after deployment time, can easily be identified, permitting a model-aware service to, e.g., retrieve and work with the latest version of a model. MORSE can also be beneficial for MDD tools, e.g., in a distributed, collaborative development environment while fostering service-orientation to support the MDD design-time tooling. In this case, not the model-aware services or components monitoring them would retrieve and change the models, but the MDD tools such as a model-driven generator.