Page 31 -
P. 31

16     HEVNER,  LINGER,  PLESZKOCH,  PROWELL,  AND  WALTON
                    Figure 2.3  Flow–Service Semantics


                               I                                                  O
                                                     FLOW F







                                      ISH                                  IRH
                                                    SERVICE A




                    stimulus history (ISH) of every service in the range of the function that represents the specification
                    of a flow. In addition, because subsequent flow processing can depend on the responses from these
                    invocations, the invocation response history (IRH) must be part of the domain of the mathemati-
                    cal function that represents the specification of a flow. The diagram of Figure 2.3 illustrates these
                    semantics for a flow F invoking a service A.
                      I is the set of possible inputs to flow F, and O is the set of possible outputs from flow F. Thus,
                    the semantics of F can be given by a mathematical function f with domain I x IRH and range O x
                    ISH. It is this counterintuitive inclusion of service responses in the domain of F and service stimuli
                    in the range of F that allows flows to manage uncertainty. In particular, IRH represents the range
                    of possible service responses and thus embodies the uncertainty issues that must be recognized in
                    flow behaviors. Flows must assess and act upon all possible responses, desired and undesired, that
                    service invocations can produce. Of course, no semantics can force such informed design, they
                    can only illuminate the desirability of doing so and provide means for it to be accomplished.
                      In this semantic model, the specification of flow F is not required to account for the behaviors
                    that result due to invocation of service A. Rather, it simply defines the invocation of service A with
                    certain parameters, and how the response from that invocation affects subsequent processing of F.
                    This means, for example, that any lower-level services invoked by service A need not be part of the
                    ISH and IRH of flow F. If this were not the case, the specification of F would change if service A was
                    modified, for example, to invoke different lower-level services. This approach differs from traditional
                    functional semantics, where the specification of F would be required to include the full effects of all
                    lower-level service invocations by service A as a part of its functional specification.
                      This innovative approach to specification is essential to maintain intellectual control over flow
                    specification and design. As noted, deterministic flows that invoke nondeterministic, asynchronous
                    services can be modeled by deterministic mathematical functions, making human reasoning and
                    analysis much simpler. Alternately, if the behavior of flows were nondeterministic, then the flows
                    themselves would become far more complicated, and their semantics would need to be expressed
                    as a mathematical relation from domain I x IRH to range O x ISH. This complex situation is
                    avoided by our FSQ semantic model.
                      The flow-service semantic model described above is particularly suited to the common situation
                    where service A already exists on a network, or is provided by COTS or ESP components with
                    complex and possibly unknown functions. In cases where service A is new and must be designed as
                    part of the implementation of flow F, these flow semantics can be combined with more traditional
                    design and verification methods (e.g., Mills, Linger, and Hevner, 1986) to support reasoning about
   26   27   28   29   30   31   32   33   34   35   36