Modeling and model management have taken a great interest in software development since they accelerate thesoftware development process and facilitate their maintenance. But, with the increasing size of models and their instances,the management of models and their instances with tools evolving in main memory presents some insufficiencies relatedto scalability. Indeed, classical tools using the central memory have shown their limits when they face large scale modelsand instances. Thus, to overcome the problem of scalability, the management of models in databases becomes a necessity.Indeed, two solutions were proposed. The first one consists in equipping modeling and model management tools withspecific databases, called model repositories, (e.g., EMFStore) dedicated to store metamodels, models and instances.These model repositories are equipped with exploitation languages restricted only to querying capabilities such that modelrepositories serve only as model warehouses as processing model management tasks require loading the whole model tothe central memory. The second solution, on which we focus our approach, consists in defining database environments formetamodeling and model management. These systems, called Persistent MetaModeling Systems (PMMSs), aim atproviding a database environment for metamodeling and model management. Indeed, a PMMS consists in (i) a databasethat stores metamodels, models their instances, and (ii) an associated exploitation language possessing metamodeling andmodel management capabilities. Several PMMSs have been proposed (e.g., ConceptBase, OntoDB/OntoQL) and focusmainly on the structural definition of metamodels and models in terms of (meta-)classes, (meta-)attributes, etc. Yet,existing PMMSs provide limited capabilities to define behavioral semantics for model and data management. Indeed,behavioral semantics could be useful to compute derivations, perform model transformations, generate source code, etc.In our work, we propose to extend PMMSs with the capability to introduce dynamically user-defined model and datamanagement operations. These operations can be implemented using flexible and heterogeneous mechanisms. Indeed,they can use internal database mechanisms (e.g., stored procedures) as well as external mechanisms such as web servicesor external programs (e.g., Java, C++). As a consequence, this extension enhances PMMSs giving them more coverageand further flexibility. This extension has been implemented on the OntoDB/OntoQL prototype, and experimented tocheck the scaling of our approach. Moreover, our proposition has been used in three different contexts. In particular, (1)to compute derived concepts of ontologies, (2) to enhance an ontology-based database design methodology and (3) totransform and analyze models of real-time and embedded systems.
Handling behavioral semantics in persistent metamodeling systems