There have been a few questions about how offline access works and where it can be used, so I thought I’d share some additional insights. But first, I’d like to make sure we’re on the same page. The difference between the two scenarios is that while in the online scenario, the user is prompted to log in every time. In the offline scenario, the user is prompted to log in once, and the application is then permitted to access the user’s data without a future login.
The platform supports the online scenario because it offers customers slightly more privacy control over access to their sensitive health situation. The platform supports the offline case because it can enable scenarios with more effective and richer customer value, such as performing synchronization between HealthVault and some other data store, batch processing scenarios, etc.
It is in the interest of both the application developer and the consumer to limit both the breadth and duration of data access to what is essential for the application to provide the full range of services it wants to offer to the user. When an application wants to connect to HealthVault for the first time, the user will always get to see which data subset and access privileges are requested. It is important to understand that applications requesting an offline connection raise the trust bar to a higher level. Consumers are more likely to grant offline access to organizations that they trust deeply – their physician, for example – but are going to be less willing to give it to an application they just want to explore. So we will want to limit applications to the online scenario unless offline access is backed by a clear scenario.
All SDK sample applications are configured without offline access. If you are building an application that can benefit from offline access, make sure you include a clear description of the offline user scenario when you request an ApplicationId that supports it. You may want to read Key Milestones to Develop an Application, including how to Request an ApplicationId.
Additional tips and reference material for getting started with Offline Connections: