Title: MC 402 Overview of MobiLink Synchronization
1MC 402Overview of MobiLink Synchronization
Russ Chamberlain Team Leader MobiLink
Engineering Russ.Chamberlain_at_sybase.com
2MobiLink Synchronization
- What is MobiLink?
- How MobiLink works
- MobiLink scripting
- Scalability
- Deployment Issues
- Brief comparison to SQL Remote
- Futures
3What is MobiLink?
- A two-way synchronization technology for large
scale mobile database deployment - remote database (mobile, embedded, or workgroup
server database) - consolidated database (enterprise, workgroup, or
desktop database) - A server that processes synchronization requests
from remote databases
4What is MobiLink?
5MobiLink Design Goals
- Heterogeneous consolidated database
- Scalable and robust (tens of thousands)
- Manageable in large deployments
- Support handheld and wireless devices
- Flexible
6MobiLink Consolidated Databases
- Oracle8
- Microsoft SQL Server
- IBM DB2 UDB
- Adaptive Server Enterprise (ASE)
- Adaptive Server Anywhere (ASA)
- ODBC
7MobiLink Remote Databases
- Adaptive Server Anywhere (ASA)
- Windows 2000/NT/98/95
- Windows CE
- Linux and Unix
- UltraLite
- Palm Computing Platform
- Windows CE
- Java
8How Synchronization Works
- 1. Upload
- ASA or UltraLite keep track of all changes since
previous synchronization - All changes are sent in a single upload stream
- MobiLink applies changes in a single transaction
- 2. Download
- Scripts in the consolidated database determine
changes that need to be downloaded - All changes are sent in a single download stream
- 3. Acknowledge download
9ASA Synchronization
10UltraLite Synchronization
11MobiLink Scripts
- Scripts define actions performed in the
consolidated database at each stage or event
during synchronization - Some scripts return result sets (cursor scripts)
- Some scripts are just procedural (event scripts)
- Native language of consolidated database
- Stored in tables in the consolidated database
- Defined using Sybase Central
12MobiLink Scripts
- begin_connection
- for each synchronization
- begin_synchronization
- receive and apply upload stream
- prepare and send download stream
- end_synchronization
- end_connection
13The upload_cursor Script
- The upload_cursor script is used to insert,
update, or delete rows in the consolidated
database - This is the primary script for uploading changes
- Example
SELECT emp_id, emp_fname, emp_lname FROM
employee WHERE emp_id ?
14Applying the Upload Stream
- begin_upload
- for each table
- begin_upload_rows
- process each insert or update using upload_cursor
- end_upload_rows
- for each table (reverse order)
- begin_upload_deletes
- process each delete using upload_cursor
- end_upload_deletes
- end_upload
15Download Cursor Scripts
- The download_cursor script is used to insert or
update rows in the remote database
SELECT emp_id, emp_fname, emp_lname FROM
employee WHERE last_modified gt _at_LastDownload
- The download_deletes_cursor script is used to
delete rows from the remote database
SELECT emp_id FROM employee WHERE last_modified
gt _at_LastDownload AND status INACTIVE
16Preparing the Download Stream
- begin_download
- for each table
- begin_download_deletes
- SELECT using download_deletes_cursor
- end_download_deletes
- begin_download_rows
- SELECT using download_cursor
- end_download_rows
- end_download
17MobiLink Synchronization
- begin_connection
- for each synchronization
- begin_synchronization
- receive and apply upload stream
- prepare and send download stream
- end_synchronization
- end_connection
18MobiLink Synchronization
19Performance Scalability
- Worker threads
- Connection pooling
- No contention in MobiLink
- Extensive testing
- White paper
20Deployment Scalability
- Straight forward backup and recovery scenarios
- Multiple consolidated databases
- switch to warm backup of consolidated database
- roaming users can use closest consolidated
database - ASA or UltraLite database can be re-populated
through normal synchronization - Monitoring
- detection and reporting of potential problems
- measuring usage and response time
21Errors and Conflicts
- Applying changes to consolidated database
- automated conflict detection and resolution
(scripts) - automated error handling and reporting (scripts)
- Applying changes to remote ASA or UltraLite
- downloaded rows are UPSERTED
- enforce referential integrity after a download
22Deploying New Versions
- Remote sends a script version as part of its
upload stream - A script version is just a name
- eg. SalesTrack
- script version ? set of synchronization scripts
- On upgrade, new remotes each use a new script
version - eg SalesTrack 2
- The consolidated database can hold many different
script versions - One MobiLink server can use many different script
versions (one per synchronization)
23MobiLink Design Goals
- Heterogeneous consolidated database
- Scalable and robust (tens of thousands)
- Manageable in large deployments
- Support handheld and wireless devices
- Flexible
24SQL Remote Comparison
- Heterogeneous consolidated database
- Scalability limited only by the enterprise
database - More manageable in larger deployments
- UltraLite remote databases
- More flexible (eg. different schemas)
- Session based
25SQL Remote Future
- SQL Remote will continue to be important
- Easier to use in following situation
- ASE or ASA consolidated
- Remote schema is same as (or subset of) the
consolidated schema - Deployment issues are not a problem
- Message-based communication is sometimes more
suitable than session-based - SQL Remote is a mature product with a proven
track record for success - SQL Remote replicates transactions in exact order
26Services Available
- Other TechWave sessions
- Public newsgroups
- Sybase Developer Network (SDN)
- Award-winning technical support
- Training and assistance during the initial phase
of your synchronization projects
277.0.1 New MobiLink Features
- Performance
- User authentication
- Better dbmlsync concurrency with applications
- New HotSync conduit
- Progress indicator
28MobiLink Futures
- Integrated scripting language
- Application distribution
- Thin-client wireless applications
29MC 402Overview of MobiLink Synchronization
Russ Chamberlain Team Leader MobiLink
Engineering Russ.Chamberlain_at_sybase.com