The Reference Model for Open Distributed Processing (RM-ODP) is an ISO standard framework [1] for describing and discussing distributed systems technology. The framework is defined using a set of five viewpoints, briefly described below:

  • Enterprise – Defines the context for the system and allows capture and organization of requirements.
    Information – Describes the information required by the system using static, invariant, and dynamic schemas.
  • Computational – Contains an object-oriented model of the functional structure of the system, with a particular focus on interfaces and interactions.
  • Engineering – Describes the systems infrastructure required to implement the desired distribution of the system’s elements. This description is performed using a specific reference model.
  • Technology – Defines the specific technology that will be used to build the system.

While the RM-ODP approach provides an interesting partitioning of the architectural description, it was created to support efforts to standardize distributed systems technology and (as its name suggests) imposes a reference model on the systems being described.

Strengths of the RM-ODP viewpoint set include its logical and comprehensible structure and its explicit consideration of data architecture via the “Information” viewpoint (which some viewpoint sets don’t address well). This set of viewpoints is also an ISO standard and has been discussed widely in the distributed systems research community, although this is unlikely to be a relevant factor for most practicing software architects.

Some concerns which might discourage use of RM-ODP as a general purpose viewpoints set include:

  • This viewpoint set isn’t being used in practice by many architecture practitioners.
  • The viewpoint set embodies a very specific set of architectural assumptions. In particular, the “Computational” and “Engineering” viewpoints assume that the system is based on a distributed object system.
  • RM-ODP comes with its own modelling notations which aren’t widely understood.
  • The viewpoint set doesn’t address operational concerns.
  • There doesn’t appear to be a set of cross-viewpoint consistency rules available.
  • The link from architecture to implementation is weak and none of the RM-ODP literature that we are aware of deals with this important aspect of architecture.

Overall, we would not recommend RM-ODP as a general purpose viewpoint set for mainstream architecture practice – it was created to supporting standards efforts rather than mainstream software architecture definition and it hasn’t been used for by many people for general architecture work.

You can find a good tutorial on the use of the RM-ODP approach in Janice Putman’s book [2] and an explanation of how it might be used for enterprise systems development in a book by a group from the University of Kent [3].

References

[1] Reference Model of Open Distributed Processing (RM-ODP, ITU-T Rec. X.901-X.904 | ISO/IEC 10746) available from http://standards.iso.org/ittf/PubliclyAvailableStandards/index.html

[2] Janice Putman, “Architecting with RM-ODP“, Prentice Hall, 2000.

[3] Peter F. Linington, Zoran Milosevic, Akira Tanaka and Antonio Vallecillo, “Building Enterprise Systems with ODP”, Chapman & Hall/CRC Press, September 2011.