liquid context-aware distributed queries jeffrey heer alan newberger chris beckmann jason i. hong group for user interface research university of california, berkeley 2003.10.14 UbiComp ’03 – Context Awareness Session roadmap the problem monitoring context data is complicated by its distributed and dynamic nature, making application authoring more difficult a solution push advanced support into the infrastructure liquid: a query service supporting distributed, decentralized query processing over continuously changing context data, built atop Context Fabric 2003.10.14 UbiComp ’03 – Context Awareness Session context-aware computing leverage input such as sensor readings to give computers awareness of physical and social environment provide enhanced services by modeling the tasks or activities at hand context data includes the state of people, places, objects, activities 2003.10.14 UbiComp ’03 – Context Awareness Session the problem we expect context data to be distributed, but under existing context-aware computing infrastructures dynamic data retrieval can become quite complicated… an example: say I’m hard at work on a research paper and I need to get feedback from my advisor. I want to know when he is in the building and is interruptible… 2003.10.14 UbiComp ’03 – Context Awareness Session a scenario (non-liquid) select location.building.occupant where occupant.name = "James Landay" and occupant.interruptibility <= 3 the application must handle multiple network connections, subscriptions, and perform all intermediate data processing! 2003.10.14 UbiComp ’03 – Context Awareness Session solution: liquid push needed functionality into infrastructure liquid - context-aware query processing distributed, streaming queries dynamic query re-routing in response to context uses numerous innovations from the database community: distributed databases (R*, Mariposa) streaming databases (TelegraphCQ, Stream, Aurora) semi-structured databases (Lore) ubicomp’s needs lie in this intersection! 2003.10.14 UbiComp ’03 – Context Awareness Session scenario revisited (liquid style) select location.building.occupant where occupant.name = "James Landay" and occupant.interruptibility <= 3 query 2003.10.14 UbiComp ’03 – Context Awareness Session scenario revisited (liquid style) select location.building.occupant where occupant.name = "James Landay" and occupant.interruptibility <= 3 query 2003.10.14 UbiComp ’03 – Context Awareness Session scenario revisited (liquid style) select location.building.occupant where occupant.name = "James Landay" and occupant.interruptibility <= 3 query 2003.10.14 UbiComp ’03 – Context Awareness Session scenario revisited (liquid style) select location.building.occupant where occupant.name = "James Landay" and occupant.interruptibility <= 3 query 2003.10.14 UbiComp ’03 – Context Awareness Session scenario revisited (liquid style) select location.building.occupant where occupant.name = "James Landay" and occupant.interruptibility <= 3 result 2003.10.14 UbiComp ’03 – Context Awareness Session scenario revisited (liquid style) select location.building.occupant where occupant.name = "James Landay" and occupant.interruptibility <= 3 query 2003.10.14 UbiComp ’03 – Context Awareness Session liquid concepts entity type paths a naming mechanism for context data e.g., location.building.occupant query specification how to issue a query XML-based query language query execution how a query is evaluated 2003.10.14 UbiComp ’03 – Context Awareness Session liquid concepts: query execution 2003.10.14 UbiComp ’03 – Context Awareness Session applications: room aware 2003.10.14 UbiComp ’03 – Context Awareness Session conclusion liquid provides distributed, continuous queries over collected context data liquid provides dynamic query re-routing in response to changing context take-home message: important to leverage synergies between UbiComp and Database communities. 2003.10.14 UbiComp ’03 – Context Awareness Session Questions? Jeffrey Heer jheer@cs.berkeley.edu Alan Newberger alann@cs.berkeley.edu Chris Beckmann beckmann@cs.berkeley.edu Jason I. Hong jasonh@cs.berkeley.edu liquid is bundled with the context fabric distribution -context fabric home: http://guir.berkeley.edu/cfabric 2003.10.14 UbiComp ’03 – Context Awareness Session entity type paths An entity type path specifies a ContextTuple to be retrieved at the end of a sequence of infospaces. location.building.occupant Each infospace in the sequence is specified by its relation to the preceding infospace, and addressed by an entity-link. 2003.10.14 UbiComp ’03 – Context Awareness Session entity type paths location.building.occupant 2003.10.14 UbiComp ’03 – Context Awareness Session entity type paths location.building.occupant 2003.10.14 UbiComp ’03 – Context Awareness Session entity type paths location.building.occupant 2003.10.14 UbiComp ’03 – Context Awareness Session query specification queries are specified using XML syntax <?xml version="1.0" encoding="UTF-8" ?> <Query> <QuerySpec persist="true"> <EntityTypePath>location.occupant</EntityTypePath> <QuerySpec type="occupant" persist="true"> <EntityTypePath>email</EntityTypePath> </QuerySpec> </QuerySpec> </Query> future work: a high-level query language that maps down to this intermediate XML rep. 2003.10.14 UbiComp ’03 – Context Awareness Session result items result items == collection of context tuples + query metadata (timestamp, status) query result status types inserted deleted updated exited expired 2003.10.14 new tuple inserted into an infospace tuple deleted from an infospace tuple updated in infospace (and still matches query) tuple updated in infospace (and no longer matches) tuple fell out of window watched by liquid UbiComp ’03 – Context Awareness Session