197 research outputs found
Properties of Concurrent Programs
A program property is a predicate on programs. In this paper we explore program properties of the form U -> V where U and V are either predicates on states of a program or program properties, and -> satisfies three rules that are also used in reasoning about sequential programs and safety properties of parallel programs. We show how such properties can be used to reason about concurrent programs
A Primer for Program Composition Notation
This primer describes a notation for program composition. Program composition is putting programs together to get larger ones. PCN (Program Composition Notation) is a programming language that allows programmers to compose programs so that composed programs execute efficiently on uniprocessors, distributed-memory multicomputers or shared-memory multiprocessors. (Revised December 12, 1990
Systematic composition of distributed objects: Processes and sessions
We consider a system with the infrastructure for the creation and interconnection of large numbers of distributed persistent objects. This system is exemplified by the Internet: potentially, every appliance and document on the Internet has both persistent state and the ability to interact with large numbers of other appliances and documents on the Internet. This paper elucidates the characteristics of such a system, and proposes the compositional requirements of its corresponding infrastructure. We explore the problems of specifying, composing, reasoning about and implementing applications in such a system. A specific concern of our research is developing the infrastructure to support structuring distributed applications by using sequential, choice and parallel composition, in the anarchic environment where application compositions may be unforeseeable and interactions may be unknown prior to actually occurring. The structuring concepts discussed are relevant to a wide range of distributed applications; our implementation is illustrated with collaborative Java processes interacting over the Internet, but the methodology provided can be applied independent of specific platforms
The Impact of Sense and Respond Systems
Sense and respond (S&R) systems based on information technology amplify one of the most fundamental characteristics of life — the ability to detect and respond to events. Living things thrive when they respond effectively to what’s going on in their environments. A zebra that doesn’t run away from a hungry lion dies and one that runs away unnecessarily wears out. Organizations sense and respond collectively: lions in a pride signal each other when they hunt; societies deal with crises by harnessing capabilities of governments, charities, and
individuals. When our ancestors hunted millennia ago, they saw as far as the eye could see and threw spears as far as their muscles let them. Today, S&R systems let us detect events far out in space and respond anywhere on the globe.
By 2020, S&R systems will become an integral part of the activities of people and organizations around the world whether they’re rich or poor, in farming or medicine, at work or at play
Conjunctive Predicate Transformers for Reasoning about Concurrent Computation
In this paper we propose a calculus for reasoning about concurrent programs inspired by the wp calculus for reasoning about sequential programs. We suggest predicate transformers for reasoning about progress properties and for deducing properties obtained by parallel composition. The paper presents theorems about the predicate transformers and suggests how they can be used in program design. Familiarity with the wp calculus is assumed
Event processing using database technology
This tutorial deals with applications that help systems and
individuals respond to critical conditions in their environments. The identification of critical conditions requires correlating vast amounts of data within and outside an enterprise. Conditions that signal opportunities or threats are defined by complex patterns of data over time, space and other attributes. Systems and individuals have models (expectations) of behaviors of their
environments, and applications notify them when reality – as determined by measurements and estimates – deviate from their expectations. Components of event systems are also sent information to validate their current models and when specific responses are required. Valuable information is that which supports or contradicts current expectations or that which requires an action on the part of the receiver. A major problem today is information overload; this problem
can be solved by identifying what information is critical, complementing existing pull technology with sophisticated push technology, and filtering out non-critical data
Towards a Compositional Approach to the Design and Verification of Distributed Systems
We are investigating a component-based approach for formal design of distributed systems. In this paper, we introduce the framework we use for specification, composition and communication and we apply it to an example that highlights the different aspects of a compositional design, including top-down and bottom-up phases, proofs of composition, refinement proofs, proofs of program texts, and component reuse
How processes learn
Processes in distributed systems communicate with one another exclusively by sending and receiving messages. A process has access to its state but not to the states of other processes. Many distributed algorithms require that a process determine facts about the overall system computation. In anthropomorphic terms, processes "learn" about states of other process in the evolution of system computation. This paper is concerned with how processes learn. We give a precise characterization of the minimum information flow necessary for a process to determine specific facts about the system
- …