Concept: Distribution View
This architectural view focuses on the strategic design decisions concerning the distribution of elements across multiple address spaces and their collaboration. This distribution includes not only the underlying communications protocols but also the policies and patterns that govern their use.
Relationships
Main Description

The distribution view deals with how objects find and collaborate with each other even though they may be in different address spaces.  The distribution view includes policies for how the objects communicate, including the selection and use of communication protocols. 

In asymmetric distribution architectures, an object is dedicated to a particular address space at design time.  This makes finding that object simple during runtime because the other objects can be granted a prior knowledge about how to locate and contact the object in question. 

In symmetric distribution architectures, the location of an object isn't decided until runtime.  Symmetric architectures are useful for a complex system that must dynamically balance processing load over multiple processors.  When objects become ready to run, the distributed OS runs the object in an optimal locale, based on the current loadings on the various processors.  This improves overall performance, but at a cost--increased complexity.

Selecting a distribution architecture is highly driven by the QoS of the collaboration.  The most relevant QoS to drive the distribution architecture include:

  • Performance
    • Worst case
    • Average case
    • Predictability
  • Throughput
    • Average
    • Burst
  • Reliability
    • Of message delivery
    • Of message Integrity
  • Recurring (e.g., hardware) cost 

The most important QoS requirements depend on the specific system that is being built.  For example, in real-time and embedded systems, performance can be crucial to success.  In hard real-time and safety-critical systems, worst-case delivery time is the most important. 

You can represent the system by using class or structure diagrams.  These diagrams show structural elements and their relations.  You can use sequence diagrams that show how these elements interact or state machines that depict the behavioral specifications of individual elements.