Download remote database - SAP SQL Anywhere Forum

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
EM401
Overview of MobiLink
Synchronization
Jim Graham
Director of Engineering
iAnywhere Solutions
[email protected]
MobiLink Synchronization
•
•
•
•
•
•
•
What is MobiLink?
How MobiLink works
MobiLink scripting
Scalability
Deployment Issues
Brief comparison to SQL Remote
Futures
What 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
What is MobiLink?
Consolidated
Database
MobiLink
Communication Infrastructure
( Internet / Dial-up / Wireless )
Data
Data
Data
Data
Data
Data
Data
Mobile or Remote Databases
MobiLink Design Goals
•
•
•
•
•
Heterogeneous consolidated database
Scalable and robust (tens of thousands)
Manageable in large deployments
Support handheld and wireless devices
Flexible
MobiLink Consolidated Databases
•
•
•
•
•
•
Oracle8
Microsoft SQL Server
IBM DB2 UDB
Adaptive Server Enterprise (ASE)
Adaptive Server Anywhere (ASA)
ODBC
MobiLink Remote Databases
• Adaptive Server Anywhere (ASA)
• Windows 2000/NT/Me/98/95
• Windows CE
• Linux and Unix
• UltraLite
• Palm Computing Platform
• Windows CE
• Java
How 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
ASA Synchronization
1. Upload
MobiLink
ODBC
2. Download
dbmlsync
3. Ack Download
Remote ASA
Database
Consolidated
DB
UltraLite Synchronization
1. Upload
MobiLink
ODBC
Consolidated
DB
2. Download
3. Ack Download
UltraLite
Database
MobiLink 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
MobiLink Scripts
• begin_connection
• for each synchronization:
•
•
•
•
begin_synchronization
receive and apply upload stream
prepare and send download stream
end_synchronization
• end_connection
The 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 = ?
Applying 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
Download 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 > @LastDownload
• The download_deletes_cursor script is used to delete
rows from the remote database
SELECT emp_id FROM employee
WHERE last_modified > @LastDownload
AND status = ‘INACTIVE’
Preparing 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
MobiLink Synchronization
• begin_connection
• for each synchronization:
•
•
•
•
begin_synchronization
receive and apply upload stream
prepare and send download stream
end_synchronization
• end_connection
MobiLink Synchronization
1. Upload
MobiLink
ODBC
2. Download
dbmlsync
3. Ack Download
Remote ASA
Database
Consolidated
DB
Performance Scalability
•
•
•
•
•
Worker threads
Connection pooling
No contention in MobiLink
Extensive testing
White paper
Deployment 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
Errors 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
Deploying 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)
MobiLink Design Goals
•
•
•
•
•
Heterogeneous consolidated database
Scalable and robust (tens of thousands)
Manageable in large deployments
Support handheld and wireless devices
Flexible
SQL 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
SQL 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 more mature product with a proven
track record for success
• SQL Remote replicates transactions in exact order
8.0 New Feature Highlights
• Performance and Usability
•
•
•
•
•
•
•
Statement-based uploads
Integrated last download timestamp
Optional download ack
Select uploads (priority synchronization)
Java synchronization logic
Better remote ASA terminology
Improved reporting
MobiLink Futures
• Message-based communication
• Java synchronization logic to non-relational enterprise
application servers
• MobiLink monitor console
Resources Available
• other TechWave sessions
• MySybase: Mobile & Wireless Developer
• newsgroups, white papers, technotes, FAQs
• samples, patches
• award winning technical support
• training and assistance during the initial phases of
your synchronization projects
Related documents