System architectures are first and foremost constrained by where and when objects and representations are to be processed.That wouldn’t be a problem if everything was done with objects at hand under the control of a single clock. When that’s not the case some arbitrage is needed between time and space.
Accesses and Synchronization
Systems are bound to contexts through entry points whose location must be considered in terms of access and synchronization:
- Objects and representations located at the same location can be addressed and managed under a single roof; when that’s not the case dedicated mechanisms have to be introduced.
- Regarding synchronization, a location is to be defined as a place within which all activities can be executed under a single clock.
Object and activity locations do not necessarily coincide and both are to be taken into account when activities are meant to be executed as a whole: depending on external resources or different clocks, a distributed configuration may open the door to interruptions during which events are out of control.
Along that reasoning centralized architectures will support representations within single locations, even if actual objects are out of place. One the other hand, distributed architectures will be required for representations managed across different locations.
As far as systems are concerned, it must be reminded that actual physical objects can only appear through dedicated entry points.
As any objects or activities, address and execution spaces can be represented by symbolic containers and organized using structure operators.
Yet, it must be reminded that symbolic containers do not implement actual ones at some subsequent step down the development path. As a matter of fact they represent them within systems and are meant to coexist simultaneously. According to the layered perspective, implementations of symbolic representations are to be deal with by platform specific (aka design) models.