Sufficient Correctness and Homeostasis in Open Resource Coalitions: How Much Can You Trust Your Software System?
Widespread use of the Internet enables a new class of software architectures: dynamically formed, task-specific, coalitions of distributed autonomous resources. The resources may be information, calculation, communication, control, or services. Unlike traditional software systems, which are at least nominally under control of the developer, these coalitions are formed from independently managed network-based resources, and the creator of a coalition lacks direct control over the incorporated resources. Reasoning about these architectures will differ significantly from reasoning about traditional architectures because resource coalitions experience higher uncertainty about component behavior and lower connector reliability. The traditional notion of correctness will give way to an application-relative notion of sufficient correctness for the intended use, and the traditional a priori means of validating correctness will give way to architectural provisions for reacting to abnormal behavior through software homeostasis.