Strategies are described for organizing the runtime components of an
application into an entity domain framework. The entity domain framework
includes one or more entity domains arranged in a hierarchical fashion.
Each entity domain further groups one or more components together in a
hierarchical fashion. Each entity domain can include one or more services
that provide a policy to the components within the entity domain.
Composite functionality couples the framework together, and further
provides a bus-like mechanism whereby an entity can forward service
requests up through the hierarchy until a domain is found that satisfies
the requests. Exemplary services provided by the entity domain framework
include lifetime management services, error handling services, and so
forth. The hierarchical structure provides an efficient way of exposing
functionality to groups of components that will share this functionality
in a common context, without requiring costly and complex atomistic
coupling of services to components or duplication of service instances.