Patterns and Practices Breakout

In the second breakout session lead by Alan Messer of Samsung Electronics, the group was tasked to summarize the list of design patterns, techniques and guidelines generated in the morning session, then apply those to a conference scenario.

The group managed to discuss many ideas (about 20?) which are listed here (line). To keep the scope manageable, the group decided to apply the techniques to a specific part of a conference scenario – the use of situated displays for meeting rooms.

The group decided to focus on the following requirements in meeting rooms:

  • Information capture and summarization
  • Capturing content in electronic form for search and categorization
  • Retrieving lost information in meetings, that may be captured using video and audio recording – indexing techniques.

From these ideas, the group found that a key requirement is mapping information captured in the physical world to the electronic world. This is a difficult problem where many techniques can be applied.

The main outcome of this session was a starting point for a list of techniques and patterns that could be formalized. Participants found consensus on many of the topics discussed, while others were left on the list for future discussion online or in future workshops. The group agreed that a community portal like this one would be a great way to expand on the topics and ideas.

Patterns, Techiques and Guidelines

Patterns

NameProblem it solvesExampleHow to applyNotes
Web services for sensorsInteroperabilityUPnP, Context Toolkit, Phidgets  
HTML user interface/micro web serversNeed a "default" platform independent user interface for a componentiROS ICrafter, UPnPPut web servers on cell phones, actuators 
Event brokerloose coupling between producers and consumers of eventsiROS, Gaia  
Spatial Models mapping real world to virtualCan determine where users are, infer activity, what they are interested in (context)Sentient Computing, Easy Living  
Ontologies in middlewareContext reasoning, middleware model consistency checkingCoBRA, SoCAM  
Use of tuplespacesloose coupling, state storage  
Entity aggregationproviding application with single node for related context, services about an entity (person, place, thing)Context Toolkit, Cooltown Web presence, Java Context Aware Framework  
Linking entitiesApplications can discover related entities, people contained in places, adjacent rooms, objects held by peopleCooltown  
Widget MetaphorCan access sources of context, services the same way, using a uniform API even though the context and services are differentContext Toolkit  
BlackboardPlace to get data and store results related to context, interaction state. Originally used for distributed cognitioniROS state, dataheap?  
Publish/SubscribeSimilar to event brokers, content based or topicsiROS, Gaia, Elvin  
Service oriented architecturepattern for distributed dynamic systemsUPnP  

Techniques

NameProblem it solvesExampleHow to applyNotes
Assume no infrastructureapplications take advantage of local resources, even without internet connectivityAd hoc wireless networks, multicast service discovery  
Physical toolkitBootstrap deploymentPhidgets, SmartIts Great way to get deployment up and running
User taggingNo sensor available for certain context Allow the user to tag physical objects, data easily 
Semi auto-taggingAssociated context with content automatically Simple automated tagging using filters, image processing, timestamps, GPS 
End user programmingUsers can set up ad hoc solutions for a given situationEquip Component Toolkit graphical editors, SpeakEasy and CascaVisual programming or component links - jigsaw puzzle metaphors 
Signal strength or device sensor localizationindoor and outdoor localization without special equipmentIntel PlaceLab, Intel POLS, power line localization, fingerprinting  

Guidelines

NameProblem it solvesExampleHow to applyNotes
User in the loopBy asking the user, can avoid missed predictions, which can be badlights don't switch on and off at the wrong timeask the user at the "right" time 
Using seamsSeams in infrastructure such as innacurate location, disconnectedness can be resources for design  Be aware of seams and if possible, use them to your advantage
Living lab or Eat your own dog foodYou get a "real" deployment!   

Other ideas under development

  • Ubicomp Mashups - exchanging data between systems
  • Use standards - web services, UPnP, XMPP, etc.
  • Sensor fusion - useful context from low level sensors, and combination of sensors. Need example, taxonomy?

Page last modified on May 18, 2007, at 12:43 AM