OIM: One initial Microsoft modeling project
Among the multiple attempts of Microsoft to propose a general modeling approach, the Uml proposal is probably one of the less known. It bears nevertheless a lot of interesting lessons. It is part of OIM (Open Information model).
Uml is not UML. Uml (capital U, small m, small l) was the Microsoft equivalent of the OMG UML 1.0. It was a very interesting Microsoft tentative to provide a coordinated set of Modeling Languages. The simplied chart shows the main organization:
These DSLs corresponds to the following subject areas:
- Umx Uml Extension Model. A set of generic extensions to the Uml model, and a realization of some of the predefined stereotypes in UML v.1.0.
- Dtm Data Type Model. A set of Uml model extensions that supply numerous common data types.
- Cde Component Description Model. A set of generic component-related Uml model extensions describing run-time (executable) components and their specifications.
- Com COM (Component Object Model) Model. A set of COM-specific extensions to the Cde and Dtm models.
- Gen Generic Model. A set of general-purpose interfaces, relevant across diverse information models.
- Dbm Database Model. A set of extensions to the Uml model covering generic database concepts.
- Sql SQL Server Model. A set of SQL Server-specific extensions to the Dbm model.
- Ocl Oracle Model. A set of Oracle-specific extensions to the Dbm model.
- Db2 DB2 Model. A set of DB2-specific extensions to the Dbm model.
- Ifx Informix Model. A set of Informix-specific extensions to the Dbm model.
- Tfm Database Transformation Model. Describes transformations for moving data between databases.
- Olp OLAP Model. An extension of the Dbm model describing multidimensional databases.
- Sim Semantic Model. An extension of the Dbm model that enables users to interact with database data without learning data manipulation languages.
The global organization could be described as follows:
As we see, the role of the OMG MOF was taken by the RTIM.
RTIM Repository Type Information Model is the metametamodel – the language in which the other information models (or metamodels) are defined.
The organization of these various DSLs was intended to facilitate the global handling of information systems at the modeling level:
Let’s do a small zoom on the Cde metamodel. This more or less corresponds to the OMG CCM (Corba Model of Component), a 600+ pages recommendation document:
Among the interesting properties of this metamodel, an explicit representation of pre and post conditions:
Another interesting property of this metamodel is the management of events:
Cde defines a specific interface called ICdeEventSourceSpec for objects that are the source of events. This allows both component specifications, interfaces, and other objects to be event sources by supporting this interface. In Com, it is component specifications (Com class specifications) that are event sources. In Corba, interfaces are event sources.
The Cde covers one particular event scheme, where an event is represented as an operation on an interface, and where the parameters of the operation provide data about the event. Many events can be defined on a single interface. The events can be raised in different ways:
- In push models the interface defining the events is implemented on different objects than the object raising the event. The raiser then invokes an operation on those other objects as a means of signaling the event. Such consumers will have registered interest with the raiser in component model specific ways.
- In pull models the interface defining the events is implemented by the event raiser. A consumer invokes an operation on that interface to poll for the event.
There are still many references to the Microsoft repository System, like the following:
The standard serialization format for models is not XMI, but XIF (for XML Interchange Format):
Of particular interest to many of us also is the Transformation Metamodel TFM:
Of course, one name is behind most of these activities: Phil Bernstein, the leader of the model management group:
So the interesting question is “what happened to this OIM project?”. Dit it get discarded like the recent Oslo project?
What I remember is the following, but I may be wrong:
- The OIM is quite successful. Because of the strong database bias and high skills of the group, the underlying model repository scales up much better than current modern modeling systems.
- Microsoft defines a strategy consisting in putting the OIM initiative in the open by donating all the technology to the MetaData Coalition, a non for profit organization
- The MetaData Coalition accepts the Microsoft donation
- The MetaData Coalition and the OMG establish cooperative relationship [April 20, 1999].
- The Metadata coalition merges into the OMG and discontinue independent operation [September 25, 2000]
This story of the first attempted Microsoft approach to modeling is partially recorded at: