Context distribution
In SALES, each application defines its own context data types by using XML-like schema definitions. These definitions contain the structure of a generic context data instance, and specify distribution policies to limit data visibility in SALES architecture. After types’ definition, each mobile node can inject new data instances inside SALES architecture, and can issue context requests according to its own specific needs.
First, SALES clearly distinguishes between context data instances and context queries. While the former ones represent real context data, the latter ones represent the routing information useful to guide context data instances distribution. Obviously, the Context Sink contained in each Context Data Module takes care of translating application interests in proper context queries.
At default, both context data instances and context queries are disseminated inside the system by following the bottom-up path between the creator node and the CN, named respectively data dissemination path and query dissemination path. In addition, to increase the probability of retrieving wanted data on the lower hierarchical levels, context query are also horizontally disseminated. When a new context query is received, the Routing Manager triggers context data/query match with the locally memorized data, and forwards matching data towards the query creator node. Context data routing is performed on hop-by-bop basis, and each node can route data only to its own one-hop peers (i.e., proper father, served nodes and peers). When each node receives a new context data, it triggers cached context queries to start the dissemination phase.
Both context data instances and context queries are associated with management data useful to modify the final dissemination paths. In particular, each context data instance is associated with the followings parameters:
- Hierarchy Level Tag - This parameter limits the vertical data distribution inside the SALES tree-like architecture with a per-instance granularity. It can limit the data instance dissemination up to CUNs level, BNs level, and CN.
- Sequence number - Positive increasing number attached by the source and used to differentiate older data from newer ones.
- Remaining lifetime - Positive number dynamically decreased and used to understand if a data instance is still valid or not.
- Foreseen lifetime - Initial data instance lifetime attached by the source.
while each context query comes with:
- Query lifetime - Absolute deadline after which the query is expired and, hence, eliminated by the SALES support.
- Query Routing Delay - Maximum delay applied by each node during query routing.
- Data Routing Delay - Maximum delay applied by each node during data routing.
- Query Priority - Query priority used to enable traffic differentiation.
- Horizontal Time To Live - The maximum number of nodes traversed at the same hierarchy level.
- Maximum Query Responses – The maximum number of triggered responses.
- Query Level Mask – Bit-mask used to constraint the SALES levels that can supply context data in response to a query.
- Data Filters - The filters used to select matching context data.