COSMOS is a framework for processing context information to aggregated raw contet data from observable entities, such as operating system resources, user preferences, or sensors, to provide a high-level and coherent view of the execution context of the end-user. COSMOS framework is available for different execution environments:
The context management provided by the COSMOS framework is:
The originality of COSMOS is to use a component-based approach for encapsulating context data, and to use an architecture description language (ADL) for composing these context data components.
COSMOS is based on the concepts of context node and context management policies translated into software components in a software:

Observation Vs. notification. The observation reports containing context information are encapsulated into messages that circulate from the leaves to the root of the hierarchies. When the circulation is initiated at the request of parent nodes or client applications, it is an observation. In the other case, this is a notification.
Passive Vs. active. A passive node obtains context information upon demand and is invoked explicitly by another context node. An active node is associated to a thread and initiate the gathering and/or the treatment of context information. A typical example of an active node is the centralisation of several types of context information.
Blocking or not. During an observation or a notification, a node that treats the request can be blocking or not. A non-blocking context node calls its child nodes. In the case of a blocking node, an observed node provides the most up-to-date context information that it possesses without requesting child nodes. A typical example of a blocking node is the isolation of a part of a hierarchy from too frequent and numerous calls.