A user-driven, service-oriented application model, in which conformant
applications implement and process instances of two program object types.
Components in conformant applications consist of objects having built-in
behaviors that are common across different applications. Each application
object is either an instance of a predefined active object type, or an
instance of a predefined reactive object type. Active objects are
associated with individual users of their application, are allowed to
activate services, and encapsulate all their inputs and outputs within a
bounded space. Reactive objects are instantiated or processed by
services, and, in one embodiment, each one is owned by an individual
active object at any given point in time. During operation of the
disclosed system, services activated by active objects route reactive
objects to active objects. An active object assumes ownership of a
received reactive object upon receipt. All components may be designed to
operate in a pre-defined run-time execution space. Additionally, all
applications may interact with their associated users using a pre-defined
service invocation model.