RM-ODP (Reference Model for Open Distributed Processing) is an ISO and ITU-T standard for documenting and designing a class of system sometimes referred to as "enterprise integration systems." These systems typically support the overall business processing needs of large corporations and include facilities for managing the business processes of an organization; handling its data storage, retrieval, and reporting needs; and enforcing its business policies. Such systems are typically realized as large, distributed, heterogeneous collections of programs, applications, and databases.
The RM-ODP standard specifies a set of five object-oriented "viewpoints" that are used to document such a system. Each of these viewpoints addresses a different set of concerns. The viewpoints are
- The enterprise viewpoint documents organizational requirements and structure, including domain objects, for example, bank tellers and accounts; communities, for example, a bank branch consisting of a bank manager and some tellers; and policies, for example, that money can be deposited only into an open account.
- The information viewpoint documents the information that is stored and manipulated by the system. This viewpoint is typically specified as a set of data "schemas" that prescribe the kinds of objects in the system and the relationships among them. For example, the information might specify the form and content of account and customer objects and indicate that each account must be associated with a customer via the "owns account" association.
- The computational viewpoint documents the behavior of objects and the interactions that occur among objects. This level of documentation identifies specific interfaces that the objects support. For example, a bank teller object might support deposit and withdrawal operations. Three types of interaction are allowed: operational: call-return, or client-server; stream-oriented: continuous streams of information flowing between producer and consumer objects; and signal oriented: low-level communication actions, such as "request" and "confirm."
- The engineering viewpoint documents the distribution-oriented aspects of a system, such as which object interactions are realized through distributed communications channels. This viewpoint is specified in terms of a prescribed vocabulary of concepts, such as clusters, which indicate which objects will be colocated on the same host; capsules or a set of clusters; and nodes, or physical computer systems.
- The technology viewpoint documents the implementation of the system in a form that aids system testing. This viewpoint is not well specified in RM-ODP.
In addition, RM-ODP identifies a set of common functions for managing a distributed processing system: checkpoint and recovery, process migration, transactions, groups and replication, and security.
Relating the RM-ODP viewpoints to the views and styles in this book, the informational viewpoint corresponds to a hybrid of our module viewtype styles. The computational viewpoint also is a module style, although at a more detailed level, as it defines the interfaces of each type of object. The engineering viewpoint corresponds most closely to our C&C views.