For the past 23 years, Philippe Desfray has been involved in model driven development research, standardization, and tooling. As co-founder of the SOFTEAM company (1989), Philippe has worked on the precursor to Object-oriented Modeling and has been a contributor to the UML standardization task force at OMG since its founding. Philippe is also leading to the Modelio UML/BPMN/MDA modeling tool development team. For more information, visit www.modelisoft.com or www.modelio.org
Issues surrounding current model repositories technologies
One major hurdle hindering the adoption and diffusion of models and modeling approaches is the fact that the procedures used to handle and share models are cumbersome, mostly due to model repositories and modeling tool technologies.
Have you ever seen a true enterprise model repository? I don't mean a project repository or a business unit repository, but a true comprehensive enterprise repository, or even a multi-enterprise repository (when it makes sense). Personally, I've heard of organizations who claim to have enterprise model repositories, but I've certainly never seen one.
Can you imagine open source project cooperation teams contributing together at the model level, just like they contribute in Java to open source projects such as Apache, JBoss, or Eclipse? Right now it's hard to imagine, one reason being that source code is light and flexible that is easy to share and manage, unlike models (developers' reluctance to model is another issue that I won't develop on here).
Let's have a look at the problem itself, and propose a new way to handle this through the "World Wide Modeling" approach:
In today's world, it's virtually impossible to set up a model repository for different enterprise entities, large-scale systems or projects, which can be accessed by all participants (readers, contributors, partners, and so on).Standard techniques based on a centralized repository with a designated manager come up against a vast range of different situations, with participants who neither want nor are able to conform to uniform rules and management.
Centralized organization: An architecture which has reached its limit
The good old client-server architecture shown above imposes global homogeneity (network, technical, access rights, procedures, etc) that participants can no longer support. This traditional centralization imposes:
- The need for the centralized declaration of users and configurations.
- A mandatory organization of repository models.
- Limited repository storage and a limited access mode, which goes against the need for ubiquity and nomadic mode autonomy.
- A costly approach, requiring "server" licenses for each participant.
It's quite clear that this kind of approach hinders team agility, as well as team and model distribution. For example, it can't be considered for contributory open source projects, or for systems and projects involving several partners. As a result, it can't be used by large companies, whose different departments are often autonomous. This is a real obstacle to model-based knowledge management within organizations.
The use of a centralized repository does present a number of advantages, and has proven its worth over the years. However, it has reached its limits when it comes to adopting and sharing models, and goes against openness and agility.
Taking inspiration from the web, a widely used and tested approach for information publication
In practice, there are two proven widespread approaches supporting cooperation and information sharing:
- The web, whose ubiquity and flexibility are appreciated by everyone.
- Model distribution through "libraries". This approach is widely used for code in open source projects and software development, which are a major source of sharing and re-use.
In the same way as information is distributed on the web in the form of pages and sites, the "World Wide Modeling" approach distributes models in the form of model fragments. These "model fragments" are linked together between model elements just as web pages can reference each other. There's no need to have a "central server", just local management of sets of "model fragments" where necessary.
So a model is a selection of model fragments that refer to each other. The organization of model fragments is highly decentralized, enabling the most open and agile cooperation modes. Giving access to a model fragment becomes as easy as "sending a URL".
"Model fragment" localization must be transparent to the user. The modeling tool plays a role similar to a "web browser" as a kind of "model browser", no matter where the model fragments physically are.
Decentralized organization: Distribution of model fragments
In today's era of data sharing, immediate communication and world-wide distribution of participants, and at a time when teams are asked to be ever more agile, the traditional approach of model repositories simply no longer meets expectations. Centralized organization has become inconsistent with the way in which the world and its companies function.
Models are a major means of managing and sharing knowledge, and they need to be supported by technologies that enable this knowledge sharing, which nowadays means "web based techniques".
The white paper "World Wide Modeling: The agility of the web applied to model repositories" available at https://www.modeliosoft.com/en/resources/white-papers.html develops this approach, and proposes solutions that work in practice.