This Context Broker (or CB) acts as a powerful directory for Context Providers (or CPs).
A CP may be registered by providing its advertisement (which is a complete description of the data it
provides), or else simply its address (URL); its advertisement is then analyzed and stored in the CB.
Requests may be sent to the CB to get a CP for given arguments. This enables to find some specific data without
any knownledge of the service that provides it. For example, if I need the localization of Bob, I simply ask the CB
for a CP that provides the parameter "localization" for the entity "Bob".
Simple names or identifiers are sometimes not enough to guarantee that the retrieved signature is what is needed,
unique domain-and-name may be required. Also, when a general localization is needed, it may be useful to retrieve all
CPs that provide GPS location or cellId location or semantic place-name location. All this is made possible with
ontologies. In the configuration of the CB, there is an ontology's address; this ontology may be on
the CB's server or else remote; it is loaded into the CB upon startup. If a CP's advertisement contains references
to this ontology, and if a requirement also contains such references, then the ontology is used to retrieve
the CP if it matches. This enables to use ontology keywords, and also its hierarchy.
CPs have identifiers, and URLs. However, user-friendly names may also be defined for their reference in the
CB. These are labels, the CB supports their creation, retrieval and removal. A label may be associated to:
a Context Provider
another label
a collection
a filter
It may be useful to use the CB to manage collections of objects instead of simple objects. For this purpose,
collections are available (creation, deletion, retrieval). A collection is a list of several objects of the same type.
The available types are the same as above: CP, label, collection, filter.
Finally, queries to the CB may contain filters, which restric the query result to a sub-set of CPs that
match a more complex condition than simply the parameter and entity choice. This enables, for example, to
retrieve only those CPs that provide the desired data with a given precision, or for given values.
Note that we have added the mention ACIT to the name of this CB in order to distinguish it
from the CB developed by Anthony Tarlano in DoCoMo.
The CB is a web-service. It consists mainly in an interface layer between the web-service world and a MySql database.
It also contains an ontology (based on the open-source Jena).
Note that this CB may delegate some more advanced features to another CB (in particular to DoCoMo's CB).
For the end-user this is transparent.
This CB is a web-service running under
Axis
, on
Apache Tomcat
, and uses
MySql
. It runs on all platforms (tested platforms include Windows and Linux).