2.2.3 Multi-user: the Object Repository
MetaEdit+ is an environment that can run either as a
single-user workstation environment, or simultaneously on many workstation
clients connected by a network to a server. The basic architecture of the
environment is illustrated in
Figure
2–1.
The heart of the MetaEdit+ environment is the Object
Repository
. In the multi-user version this is located on a
server;
in the single user version it is on the same
computer as the client part of the environment.
The repository contains all the information about the
modeling languages and models available, including all their elements and
properties. Hence, modification of system designs (or even modeling languages)
in one tool or MetaEdit+ client is reflected everywhere it appears, guaranteeing
consistent and up to date information. Similarly, code and document generation
are based directly on information stored in the repository. For more detailed
description about how the repository is organized and how it handles
concurrency, please see Section
6.1.
In the multi-user environment, when one client commits his
changes those changes are available to all other clients: the other clients will
read the changes the next time they start a transaction. Thus very close
co-operation is possible between users working on related data. Simultaneous
changes by different users to the same data are prevented by locks; these
however allow a high permeability of access, in other words only directly
dangerous simultaneous modifications are forbidden — you can work without
continually being told that you cannot access some data because another user is
using it. Reading data is always allowed, regardless of other users’
operations.
Figure 2–1. Architecture of MetaEdit+.
Each MetaEdit+
client offers an integrated set of tools:
| Launcher,
|
| Diagram
Editor, |
| Matrix
Editor, |
| Table
Editor, |
| Browsers, |
| Info
Tool, |
| Component
Selection
Tool, |
| Generator
Editor and
Debugger, |
| Language
development
tools, |
| API
and XML import/export. |
The tools, except for
the Generator Editor and Debugger and language development tools, are discussed
in more detail in Chapters
3,
4 and
5.
Whilst each tool offers a specific functionality, they all still follow some
general principles common to all tools of MetaEdit+.
Please note that the modeling language development tools
and their use as well as the advanced topics of API and XML import/export are
described in a separate manual, ‘MetaEdit+ Workbench User’s
Guide’. Similarly, extra tools for the MetaEdit+ system administrator are
described in the ‘MetaEdit+ System Administrator’s
Guide’.