Wikipedia describes augmented reality (AR) as "a term for a live direct or indirect view of a physical real-world environment whose elements are merged with, or augmented by virtual computer-generated imagery - creating a mixed reality." In essence the real-time view of your world is enriched with additional information making your environment interactive. Take the following simulated example from my recent trip to Las Vegas for DIDW 2009.
So, by glancing out my window, my view is extended with details on my location, the time, upcoming weather and a map of the area. There is also additional information based upon factors I set, like betting and food price ranges so that I instantly know if a location matches places I might be looking to go.
One of the key statements from the Wikipedia article is that "the augmentation is conventionally in real-time and in semantic context with environmental elements..." So, taking that another way, you need a way to describe the world around you in a way that scales and is high-performing. In essence you need to create a virtual mapping of identity information, the attributes of the objects and the relationships between the objects so that this information can be overlaid on the view of the observed world. A directory structure is perfect for describing these virtual representations since the hierarchy describes the relationships between objects and allows you to easily create compound objects that combine the identity and all of the related meta-data into a single entity. There are additional benefits to using a directory for representing this information:
- Highly optimized for reads to ensure high-performance
- Built-in model for scalability
- Ability to replicate information
- Robust security model that allows the world to be described based upon authorized information
The problem with using a directory, though, is that the structure is too static and the information must be represented within the directory itself. As the world change or new relationships need to be exposed, the existing tree may not be able to represent the correct hierarchy or expose the right elements. This is typically why people fall back to using a relational database model, but there is another way to address this challenge. Enter the virtual directory.
A virtual directory allows you to create views into the information dynamically and allows you to reshape and adapt the model as your definition of the world changes. Additionally, the virtual directory allows you to describe the world semantically in sentences that model the relationships between objects. Take a look at Michel Prompt's blog post entitled "From Static Directories to Context Servers" for additional information. While the post focuses more on classical business challenges, it is not a big leap to take this into other realms where context and relationships are important like AR.
If we take the picture above and apply a directory structure to the relationships, the hierarchy might look like:
The beauty is that the information represented in this structure can come from local data, other directories, databases and even web services allowing you to pull together a robust representation of all of the information necessary to describe the virtual representation of the world around you. Additionally, the virtual directory gives you all the benefits of a standard directory for scalability and security.
Another critical function to ensure scalability and performance is to be able to easily create a cached representation of this information. This is due to the amount of data, complexity of the relationships, speed of information sources and real-time nature of the augmented reality system. Some virtual directories like Radiant Logic's RadiantOne VDS allow you to create a persistent cache that can be updated in real-time. This is important since data describing your virtual world can change frequently so other caching mechanism (e.g. memory caches) based upon a time-to-live or aging algorithm can become easily outdated which would lead to an incorrect model.
Additional information on Augmented Reality can be found here:
- Bonsor, Kevin. "How Augmented Reality Will Work." 19 February 2001. HowStuffWorks.com.
- Jim Vallino's Augmented Reality Page
- TED Talks Pattie Maes and Pranav Mistry demo SixthSense (note that this is a video that will begin playing)
I'm curious to hear your take. Where would you like to see identity and data virtualization go in the future? I think there are many other use cases which could warrant being able to leverage an abstraction layer to bring context to your identity and related information.