Multi-User Database Considerations
A previous article in this series, “Web-Centric Microsoft OneNote Usage Scenarios,” provided an overview of OneNote’s wiki-style content editing. When OneNote notebooks are shared via Windows Live SkyDrive or SharePoint, they are essentially content-centric multi-user databases, making it possible for multiple people to edit shared notebook content.
As with more traditional database systems, related concerns include:
- Access control privileges
- Content locking
- Concurrent update services, to ensure people don’t overwrite each other’s edits
OneNote relies on shared notebook container servicesSkyDrive and SharePointto specify the identities of people who can access a shared notebook, along with their access privilege levels. Figure 5 shows how SkyDrive handles access control privileges (the email identity was deliberately blurred to protect privacy).
Figure 5 Editing SkyDrive folder permissions
For SkyDrive-hosted notebooks, the access privilege options include “Can view files” and “Can add, edit details, and delete files” (i.e., all files contained in the SkyDrive folder, not just a single OneNote notebook). SharePoint, reflecting its enterprise customer focus, offers more fine-grained access control options.
It’s also possible to password-protect specific sections in a OneNote notebook, but in practice that option isn’t broadly useful, in part because content stored in a password-protected section does not appear in search results unless the password-protected section has already been opened (i.e., OneNote doesn’t dynamically “permission-trim” search results across multiple sections, based on the active user identity). Another consideration with password-protected sections is that there is no way to recover the password, should you happen to forget it.
In terms of concurrent update services, or what traditional DBMS nerds would call locking and isolation levels, OneNote simply doesn’t have any. Rather than attempting to lock pages during updates, for example, OneNote instead detects any update collisions during shared notebook synchronization, and prompts users to manually resolve them (by picking a winner from among the updated page versions). To facilitate that approach, of course, OneNote needs to unobtrusively manage page versions for all updates.
Figure 6 A SkyDrive/OneNote database conceptual model perspective
Although the model diagram is far from exhaustive, it captures the key concepts involved in SkyDrive-shared OneNote notebooks (the term “paragraph” is used in the OneNote user experience, when working with intra-page information items, so I kept it for consistency, but a OneNote paragraph can include non-textual items such as images and inserted files).