Beyond Mobility - Cedar Valley Bible Church
Transcription
Beyond Mobility - Cedar Valley Bible Church
Beyond Mobility Synchronizing User-Created Data Between Platforms, Readers, and Vendors Craig Rairdin President Laridian, Inc. [email protected] Outline Our worldview n An aside on portability of content n Challenges of synchronizing user-created data n Laridian as a microcosm of the Bible software industry wrt synchronizing data n Our synchronization process n th 20 Century Bible Software CD-ROM based library n Bound to the desktop n Long-term, “investment” orientation n st 21 n Century Bible Software Portable n PDA n Web-based n Flash n Drive Disposable n Often running on $100 device, not $2500 desktop/ laptop n Short-term, “opportunity” orientation n Many cite no need for desktop Bible software New Requirements Portability of content between devices n Portability and synchronization of user-created data (notes, highlights, bookmarks, etc.) n Portability of Content n n Political Challenges Is a Common Binary Data Format Even Possible? Palm OS: All “data files” are databases with limited field, record, and database size n Windows Mobile, Symbian: “Normal” file system n iPod: 1000 4K text files n iPhone: Currently no on-device storage of data n Web-based: Windows/Linux file system but also powerful database servers are readily available and preferred n n Solution: Portable Licenses? User-Created Data – Types n Notes n Bibles: On words, verses, passages, chapters, books, or unassociated n Non-Bibles: On words, sentences, paragraphs, sections, pages, etc. n Format: HTML, RTF, text, proprietary, etc. User-Created Data – Types n Highlights n On character, word, or verse boundaries n Supported in Bibles and non-Bibles? n Foreground color, background color, style (underline, italic, bold, etc.) User-Created Data – Types n Bookmarks n On character, word, or verse boundaries n Supported in Bibles and non-Bibles? n Categories? Subcategories? User-Created Data – Types n Blended Types n Bookmarks indicated by highlight color n Notes attached to bookmarks n Organizational Info n Categories and subcategories n Collections of user-created data identified by file name or by logged-in user n Storage Format n Capabilities vary by platform Portability of User-Created Data – Challenges n Differing formats between vendors and between programs offered by one vendor n Differing capabilities of the underlying OS and hardware between platforms n Differing feature sets between programs (one may not support all the user-created data that another does) Portability of User-Created Data – Challenges n Differing points of view between developers with respect to common subject matter n n n n n How to handle versification differences Use of standards like HTML vs. proprietary formats Various other issues: To what are notes, bookmarks, and highlights attached? Are Bibles treated differently from other books? Is there one database per machine, per user, per user-defined project, etc.? Etc. Assuming we agree on data formats and other issues, how does one go about synchronizing two databases (for example, between two PDAs or PDA and desktop)? Given that there are so many identifiable challenges, how can we build a solution with flexibility to handle unforeseen problems in the future? Situation at Laridian n Eight readers from four sources with more on the way n n n n n n n Windows Mobile (PocketBible for Pocket PC and PocketBible for WM Smartphone) developed in-house Palm OS (MyBible) developed outside and licensed exclusively; later brought inside BlackBerry (Noah) developed outside and licensed non-exclusively; we do only content iPhone and other Web-enabled devices (iPocketBible.com) developed inhouse iPod and other MP3 players (iPocketBible) developed in-house Windows Destkop (PocketBible for Windows) developed in-house Windows Desktop (Theophilos) developed outside, purchased last year Situation at Laridian Product Notes Bookmarks Highlights PocketBible for Windows Mobile Pocket PC On Bible verses On reference books HTML Categorized On Bible verses On reference books Colors and attribs On words On Bibles and reference books PocketBible for Windows Mobile Smartphone None Categorized On Bible verses None MyBible for Palm OS On Bible verses Plain text Many limits On Bible verses Colors On letters On Bibles Noah for RIM BlackBerry On Bible verses Plain text On Bible verses None iPocketBible for iPhone/Web devices On Bible verses HTML On Bible verses On verses On Bibles iPocketBible Audio Bibles for iPod/MP3 None None None PocketBible for Windows On Bible verses On book “sections” HTML Categorized On Bible verses On reference books Colors and attribs On verses On Bibles Theophilos for Windows On Bible verses Plain text On Bible verses Categorized Include descriptions Foreground color On letters On Bibles Synchronization Solution Sync Manager (Windows PC) Sync Provider (Win Mobile) Database Sync Provider (Desktop) Database Sync Provider (Palm OS) Sync Provider (iPhone/Web) Sync Provider (BlackBerry) Database Database Database Synchronization Process n n n n User chooses which provider to sync with Synchronization manager queries both providers for a list of data types supported For each type supported by both, synchronization manager queries both for a list of formats supported (i.e. HTML, RTF, plain text for notes) For each type supported by both that has a commonly supported format, the following is executed for each provider… Get Provider1 First/Next Item Delete From Provider 1 No New? Yes “New” refers to the last synchronization time. An item is “new” if its timestamp is later than the last synchronization time. No Provider 2 Has It? Yes Both New? Yes Conflict Resolution Yes Add Item to Provider 1 No Provider 2 New? No Provider 1 New? Yes Add Item to Provider 2 No Conflict Resolution If the data proper is identical but the timestamps are different, then set both timestamps to the current sync time. n Otherwise, if the user has stated a preference for one provider over the other, honor that preference. n Otherwise, show the user the data and ask which to prefer. n Benefits/Strengths n n n n n Synchronization logic is isolated in the synchronization manager Details of database implementation for each platform are isolated in sync providers Provision is made for synchronization of different formats within a data type Providers do not have to be from Laridian Synchronization manager is separate from our desktop application, allowing it to be used by other vendors. Opportunities Licensing of sync manager n Creation of sync providers n Roll your own sync solution n Portable content licenses n Craig Rairdin President Laridian, Inc. [email protected]