Patterns of Events

By: A.S. Ran
Published in: PLoPD1
Pages: 547-553

Summary: Event processing in a distributed real-time control and information system.

Category: Architectural, Event-Driven Systems, Reactive and Real-Time Systems

Pattern: Event-Centered Architecture

Pages: 547-549

Product families minimize costs of concurrent evolution of similar products. This is possible if products are related by function and structure. Greater stability of program family architecture is possible if it is based on the major events that occur in the domain.

Pattern: Classes of Event Objects

Pages: 549-550

When applying Event-Centered Architecture, the events can become complex. Use classes to model events as system-level concepts. Event classes allow you to treat events as a group.

Pattern: Fine-Grained Classification of Events

Pages: 550-551

An event's membership in different sets of interest may be determined more efficiently if the relationships between the sets are known in advance. Design a hierarchy of event classes that models the generalization/specialization relationship between events generated and expected by different components in the system. A component may register its interest in one or several classes of events.

Category: Design Process, Event-Driven Systems

Pattern: Object-Oriented State Machine

Pages: 551-552

You're using Event-Centered Architecture. Reactive components are independent and often distributed and concurrent. Each reactive component is attached to some event class. A reactive component should provide the necessary interface for invocation by event objects. Specify the representation and behavior of a component by a cluster of classes. The root of the cluster specifies the public interface of the components and the state-independent part of its representation and behavior. Each state is represented as a class that directly or indirectly inherits the root of the state cluster.

Category: Design Process, Event-Driven Systems, Finite State Machines