Page 32 -
P. 32
FLOW-SERVICE-QUALITY (FSQ) SYSTEMS ENGINEERING 17
the combined behaviors of the system consisting of F and A together. In this way, the desired
behavior of F and A can be used to guide the construction of A.
FSQ Systems Engineering
Figure 2.4 shows the use of flows, services, and qualities for both developing new systems and
for understanding the behaviors of existing systems. Across the top we see the process of system
design using flows. On the left, a set of flows defines the functionality and quality attributes that
a network and its services must provide to support user requirements. These flows can be defined
as structured sequences of service invocations. Moving right, the flows are refined in terms of
services and their quality attributes. These services may be preexisting services on the network
or may be newly developed if no existing service provides the proper functionality and quality.
For example, in the figure, two services on the left are further refined in the middle, in each case
into sequences of two lower level services that carry out the required operations. In addition, the
initial conception of a flow may be modified to conform to the available architecture. Finally, the
flows are mapped onto the network at the right-hand side of Figure 2.4.
Existing systems may be understood in the FSQ framework by abstracting from the network
and service details to obtain the critical flows, as shown across the bottom of Figure 2.4. The
resulting flows can become the basis for further system reengineering work or can be analyzed
for their survivability, reliability, or other critical quality aspects.
DYNAMIC FLOW MANAGEMENT ARCHITECTURE
The right-hand side of Figure 2.4 shows the network. Some parts of the network may arise from
the flows, but much of the network may be preexisting and independent of the original user flow
set. The precise topology of the network and the quality attributes of the links and nodes are all
time dependent. Some network links may become saturated with traffic, some service providers
may become unreliable or fail altogether, and mobile devices may move in and out of range.
In such a system, there must be a dynamic system control to continually monitor the real-
time availability and quality of system services. The precise implementation of a flow in terms
of sequencing of particular flows and services is a dynamic task. An FSQ manager, either as a
centralized component or decentralized across the network, must manage these dynamic aspects
and provide flow instantiation and management to assure that mission goals are met. This dynamic
management to provide “self-healing” and to assure reliability (e.g., connectivity and availability)
is already a common idea in networking; what we propose here is to extend these ideas to the
entire system (hardware and software) to ensure survivability and robustness.
A dynamic flow management architecture (FMA) must be defined to provide such an FSQ
manager. The FSQ manager accepts a demand from outside the system, perhaps from a user or
from another system. This demand initiates a flow request, which may be queued based on priority.
The FSQ manager evaluates the queued flow requests in terms of available services, other active
flows, and computational quality attributes. Each flow request is then instantiated as a sequence of
service invocations. The details of the instance execution are not static; services may be executed
more than once, and the evolution of the flow instance may depend on the responses from various
services. If the instance is unable to proceed because a given service becomes unavailable during
the instance’s execution, the FSQ manager may suspend the flow until the service is available, or
it may try to find a new mapping to comparable services to allow the instance to complete.
This dynamic management of flow instances should not be understood to alleviate the need