Page 27 -
P. 27

12     HEVNER,  LINGER,  PLESZKOCH,  PROWELL,  AND  WALTON
                    ies of the system can change, perhaps as mobile devices move in and out of range, the system’s
                    boundary, and thus its capabilities, can change over time.
                      The fundamental challenge is to identify stable, dependable anchors for system specification,
                    analysis, design, and implementation on which we can build a unified engineering discipline for
                    large-scale network system development. The Flow-Service-Quality (FSQ) framework provides
                    these anchors (Hevner et al., 2002; Linger et al., 2002). The FSQ approach does not solve all these
                    problems; rather it provides a rigorous framework with which to understand and reason about
                    such systems. In the remainder of this chapter we introduce the FSQ approach and its underlying
                    framework and semantic model as a discipline for engineering complex, network-centric systems.
                    A central concept in this discussion is the treatment of mission task flows of system service uses
                    as first-class artifacts for specification and design under intellectual control, despite the structural
                    and functional uncertainties that characterize large-scale network systems. Other methods that
                    focus on component and architecture specification and design often lose sight of the mission-
                    driven dynamic behavior that network systems are required to provide. FSQ engineering focuses
                    on dynamic flow behavior and provides a stable framework within which these other methods
                    can be employed to best advantage.

                    SERVICES, FLOWS, AND QUALITIES

                    Information systems can be viewed as networks of asynchronously communicating components,
                    each of which provides some set of system services. These services are combined in various pat-
                    terns to satisfy business requirements, which are structured into mission-centric user tasks called
                    flows. The flow structures of FSQ provide the bridge between mission requirements and the ser-
                    vices provided by various system components. Qualities of flow structures are determined from
                    the qualities of the services invoked and the engineering of the flows on the network systems.

                    Services

                    A service is the basic abstraction in the FSQ framework. One or more components may provide
                    a service in a variety of ways. The service may even be accomplished by invoking another large,
                    networked system. For our purposes a service is simply a function provided by a system compo-
                    nent or set of components.
                      For example, user authentication may be viewed as a service. Authentication of users may be
                    done in a variety of ways, against different sources, using multiple components. Figure 2.1 shows
                    two examples of authentication services. On the left is a simple authentication service that main-
                    tains an internal database of encrypted passwords for comparison. On the right is a more complex
                    authentication service that itself depends on other services. For example, if biometrics is avail-
                    able, it may be preferred. Because biometrics may not be available in every circumstance, other
                    authentication mechanisms are also provided, such as a Lightweight Directory Access Protocol
                    (LDAP) server and even simple password hashing. This component also provides a database of
                    access rules that can provide user rights based on both the user to be authenticated and the form
                    of authentication used.
                      A given service may participate in multiple asynchronous requests or even in multiple concur-
                    rently operating systems. The response of a service to a request may depend not only on the request
                    but also on the complete history of prior requests. We treat services as black boxes (Prowell et
                    al., 1999) whose response to any given request can depend not only on the request but also on the
                    history of use of the service. This history of prior requests is captured as state information internal
   22   23   24   25   26   27   28   29   30   31   32