A software system having a multi-layer architecture for controlling a hardware
system including a latch layer, a hardware control layer, an access layer, and
an orchestration layer. The latch layer includes a latch object for each of a set
of control points of the hardware system. Each latch object provides a common interface
in the software system for accessing the corresponding control point. The hardware
control layer includes a hardware control object for each of a set of sub-portions
of the hardware system. Each hardware control object coordinates accesses to the
control points of the corresponding sub-portion through the latch layer. The access
layer includes an access object for each of a set of groupings of the sub-portions.
Each access object coordinates accesses to the corresponding grouping of the sub-portions.
The orchestration layer includes an orchestration object for each of a set of functional
features of the hardware system. Each orchestration object provides a common interface
in the software system for accessing a corresponding grouping of the access objects
which are associated with the corresponding functional feature.