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
   27   28   29   30   31   32   33   34   35   36   37