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]