Ambient Data Framework system diagram

The Ambient Data Framework combines Claims, Claim Processors and Cartridges.

Claim
A piece of information the framework deals with: an Input Claim is the input data required by a Claim Processor and an Output Claim the resulting output data. Claims are stored in the Claim Store.
Claim Processor
A piece of Java code that puts Claims into the Claim Store and converts Input Claims to Output Claims. A Claim Processor responds to request or session events called by the framework.
Cartridge
A package of related Claim Processors that perform a certain task: a cartridge XML configuration file wires Claim Processors together and defines the input and Output Claims required by the Claim Processors.

The runtime components of the Ambient Data Framework are instantiated when the application server is processing HTTP requests from the user's browser. These components perform the framework's part of processing the HTTP request which involves looking up the Claim Store in the HTTP session that is associated with the request and calling the Claim Processors in the configured cartridges. It then examines the input and Output Claims of each of the Claim Processors in the cartridges and sorts the Claim Processors so that they are executed in the order necessary to satisfy the dependencies between the Claim Processors.