+ All Categories
Home > Documents > Getting Started with MobiLink in SQL fileGetting Started with MobiLink in SQL Anywhere 11...

Getting Started with MobiLink in SQL fileGetting Started with MobiLink in SQL Anywhere 11...

Date post: 04-Sep-2019
Category:
Upload: others
View: 27 times
Download: 0 times
Share this document with a friend
32
Getting Started with MobiLink in SQL Getting Started with MobiLink in SQL Anywhere 11 Introduction to MobiLink Synchronization Joshua Savill Product Manager Product Manager August 27 th , 2009
Transcript

Getting Started with MobiLink in SQLGetting Started with MobiLink in SQL Anywhere 11

Introduction to MobiLink Synchronization

Joshua SavillProduct ManagerProduct Manager

August 27th, 2009

AGENDAAGENDA

• Introduction to SQL Anywhere 11 componentsQ y p

• Explanation of how MobiLink works

• Synchronization demo using a Synchronization Model

2

PRESENTATION GOALSPRESENTATION GOALS

• Provide an understanding of distributed data environmentsg

• Outline some of the requirements and caveats for synchronization of data across distributed environments

• Demonstrate the development tools available with SQL Anywhere to mobilize a database using MobiLink

3

WHAT IS SQL ANYWHERE?WHAT IS SQL ANYWHERE?

• Componentsp

– Data management• SQL Anywhere database server

/

“Leading database server and enterprise • UltraLite/UltraLiteJ

– Data exchange• MobiLink

server and enterprise synchronization solution, enabling rapid development

d d l t f MobiLink

• QAnywhere

• SQL Remote

D i d l

and deployment of database-powered applications across desktop, server, mobile – Design and management tools

p, ,and remote office environments.”

4

OUTSIDE THE DATA CENTEROUTSIDE THE DATA CENTER

• Small and mediumDesktop ServerSQL Anywhere 11 – Usage Scenarios

• Small and medium enterprise–Accounting–Administration

Desktop Server

• Solution packages– Phone systems– Point of sale…

• Local office– Store management– Inventory control

• Mobile– Traveling sales– Field service worker– Inspector

5

– Inspector

Local office Mobile environments

MOBILINK SYNCHRONIZATIONMOBILINK SYNCHRONIZATION

• Data synchronization– Exchanging data

• Connecting“R t d t b ”

ConsolidatedDatabase

– “Remote database”• UltraLite, UltraLiteJ, or SQL Anywhere

– “Consolidated database”• SQL Anywhere• Sybase ASE• OracleMi ft SQL S

MobiLinkServer

• Microsoft SQL Server• IBM DB2 UDB LUW (Linux, Unix, Windows)• IBM Mainframe• MySQL

MobiLinkClients

6

• MySQL

MOBILINK SYNCHRONIZATIONMOBILINK SYNCHRONIZATION

What is data synchronization?

• Sharing data between consolidated and remote

• Summary of changes instead of all changes

• Provides subsets of data defined by client or server

• Update anywhere

– Bidirectional and unidirectional synchronization

• Guarantees data consistency in the synchronizing environment

7

MOBILINK ARCHITECTUREMOBILINK ARCHITECTURE

HTTP/STCPIPWireless Oracle

UltraLite/UltraLiteJ

WirelessIBMMicrosoftSybaseMySQLODBC

ConsolidatedDatabase

MobiLink Server

ODBC

Database

SQL Anywhere with Dbmlsync

8

PARTS OF MOBILINK SYNCHRONIZATIONPARTS OF MOBILINK SYNCHRONIZATION

MobiLink clients synchronize through the MobiLink server to a central data sourceThe MobiLink server maintains e ob se e a ta s

a small amount of state information for each user and

client database

UltraLite/UltraLiteJ

NetworkNetwork

Optionally, the MobiLink server transfers rows using

SQL scripts and ODBC

Consolidated database

MobiLink ServerSQL Anywhere

with Dbmlsync

Optionally, JAVA or .NET scripts transfer rows using the

Di t R H dli API

Web server, web service, application

server, text file, spreadsheet etc

Direct Row Handling API

9

spreadsheet, etc.

PARTS OF MOBILINK SYNCHRONIZATIONPARTS OF MOBILINK SYNCHRONIZATION

• MobiLink client– SQL Anywhere, UltraLite, and UltraLiteJ

• Network– TCPIP, TLS, HTTP, HTTPS

• Consolidated database• Consolidated database– MobiLink system tables

• State information needed for synchronization– Central copy of dataCentral copy of data

• SQL row handling– Synchronizations scripts in SQL, JAVA, or .NET

• JAVA and .NET scripts must return a valid SQL statement• Direct row handling

– Synchronize with other data sources using customized JAVA or .NET scripts

10

MOBILINK PROCESSMOBILINK PROCESS

High level processing of a MobiLink synchronization

1 Data is ploaded 2. Data is downloaded 1. Data is uploaded to the consolidated database

to the remote database

11

MOBILINK PROCESSMOBILINK PROCESS

• UploadsHigh level processing of a MobiLink synchronization

• Uploads– Change tracking in built into the remote database– Only changes since the last complete synchronizationy g p y– Coalesce all transactions

• E.g. if a row is updated 100 times, only the final revision is sent  

• Downloads• Downloads– Selects data from the consolidated database based on synchronization scripts

12

HOW DOES SYNCHRONIZATION WORK?HOW DOES SYNCHRONIZATION WORK?

D i h i ti M biLi k th h i fSynchronization is made up of a set of events that get called in a predetermined order

• During synchronization, MobiLink progress through a serious of events

• Two types of events occur during synchronizationyp g y

– Connection level• High level event not associated with a particular table

• These event perform tasks required during every synchronization

– E.g. authenticate_user connection event

– Table levelTable level• Associated with a particular table

• These events perform tasks on a particular table

E d l d t bl t

13

– E.g. download_cursor table event

TABLE LEVEL EVENTSTABLE LEVEL EVENTS

• Overall table eventTwo types of table level events

• Overall table event

– Event related to specific table before processing data of the table

• E.g. begin_upload and end_upload event

• Per‐row event

– Performs standard table operations: insert, update, delete• E.g. upload_insert and upload_delete

14

TABLE LEVEL EVENTSTABLE LEVEL EVENTS

• For bidirectional synchronization, MobiLink requires at 

Insert subhead here as a full sentence at 18 point font, bold

y , qminimum the following synchronization events:

– upload_insert

– upload_update

– upload_delete

download cursor– download_cursor

– download_delete_cursor (only if downloading deletes)

• Upload events are required for data to be synchronized fromUpload events are required for data to be synchronized from the client database to the consolidated

15

HOW DO WE DETERMINE WHAT ACTIONS OCCUR DURING A SYNCHRONIZATION?OCCUR DURING A SYNCHRONIZATION?

• Synchronization scripts are written when action must occury p

• Each synchronization script corresponds to a particular event in the synchronization process

– A script is executed when the event is invoked

• Individual statements (E.g. SQL) or stored procedure calls

Stored and referenced in the consolidated database– Stored and referenced in the consolidated database

• Scripts are optional

16

WRITING SYNCHRONIZATION SCRIPTSWRITING SYNCHRONIZATION SCRIPTS

• Upload scripts

Insert subhead here as a full sentence at 18 point font, bold

p p

– Tells MobiLink what to do with data uploaded from client database

• Download scripts

– Determines which data MobiLink will download to the client databaseclient database

• SQL, JAVA, and .NET support for scripts

17

EXAMPLE SYNCHRONIZATION SCRIPTSEXAMPLE SYNCHRONIZATION SCRIPTS

Child (dbo): upload insert

Insert subhead here as a full sentence at 18 point font, bold

Child (dbo): upload_insert/* Insert the row into the consolidated database. */INSERT INTO "MobiLink"."dbo"."Child" ( "child_id", "parent_id", "data" ) VALUES ( {ml r."child_id"}, {ml r."parent_id"}, {ml r."data"} )} )

Child (dbo): upload_update/* Update the row in the consolidated database. */UPDATE "MobiLink"."dbo"."Child" SET "parent_id" = {ml r "parent id"} "data" = {ml r "data"} WHERE "child id" = {mlr. parent_id }, data = {ml r. data } WHERE child_id = {ml r."child_id"}

Child (dbo): download_cursorSELECT "MobiLink"."dbo"."Child"."child_id","M biLi k" "db " "Child" " t id""MobiLink"."dbo"."Child"."parent_id","MobiLink"."dbo"."Child"."data"FROM "MobiLink"."dbo"."Child"WHERE "MobiLink"."dbo"."Child"."last_modified" >= {ml s last table download}

18

s.last_table_download}

SCRIPT VERSIONSSCRIPT VERSIONS

• MobiLink scripts are organized by script version

Insert subhead here as a full sentence at 18 point font, bold

p g y p

– Naming convention can follow project coding practices

– Support for as many versions are required• Project_v100

• Project_v101

• Project v102 devProject_v102_dev

• Very useful for application upgrades allowing staged deployment

• When a client database synchronizes, it must specify which version of the scripts it requires

19

SYNCHRONIZATION TRANSACTIONSSYNCHRONIZATION TRANSACTIONS

• AuthenticationMobiLink operates within a number of transactions

Authentication– commit

• begin_connection– commit

• begin_synchronization– commit

• All upload events– commit

• prepare_for_download– commit

All d l d t• All download_events– commit

• end_synchronization– commit

20

– commit

SYNCHRONIZATION TRANSACTIONSSYNCHRONIZATION TRANSACTIONS

• Scripts must never result in a commit

Insert subhead here as a full sentence at 18 point font, bold

p

– MobiLink ensures changes made by the remote are applied atomically

• All or nothing

• If something happens all changes are rolled back, no partial changes are left on the consolidated database

– Necessary for robustness

– Guarantees no changes are lost from the remotes

21

MOBILINK SERVERMOBILINK SERVERInsert subhead here as a full sentence at 18 point font, bold

• mlsrv11

• Establishes connections with the consolidated database via ODBCEstablishes connections with the consolidated database via ODBC

• Accepts connections from remote databases and controls the synchronization process

Work engine in the synchronization process

22

– Work engine in the synchronization process

• Can be run as a service or as a process

MOBILINK CLIENTSMOBILINK CLIENTS

• Clients database support

Insert subhead here as a full sentence at 18 point font, bold

pp

– SQL Anywhere, UltraLite, UltraLiteJ

• Requesting synchronization must include the following:

– Remote database connection information

– Remote ID for the client database synchronizing

– Address of MobiLink server

– Synchronization Protocol

• TCIPIP TLS HTTP HTTPS• TCIPIP, TLS, HTTP, HTTPS

– Script Version

23

SYNCHRONIZATION UTILITIESSYNCHRONIZATION UTILITIES

• SQL Anywhere Client utilityQ y ydbmlsync -c “DSN=MyDataSource” -x tcpip –e “sv=v1;adr=‘host=somehost;port=2439’”

• UltraLite Synchronization Utilityulsync c DBF=myuldb udbulsync -c DBF=myuldb.udb “MobiLinkUid=remoteA;Stream=http;ScriptVersion=2”

24

ULTRALITE PROGRAMMING INTERFACEULTRALITE PROGRAMMING INTERFACE

• C/C++ interface

Insert subhead here as a full sentence at 18 point font, bold

/

• ODBC interface

• Embedded SQL 

• UltraLite.NET

• UltraLiteJ

– JAVA implementation of UltraLite that supports JAVA SE 1.5 (or later) and JAVA ME environments

– BlackBerry support on OS 4 1 (or later)BlackBerry support on OS 4.1 (or later)

25

MOBILINK MONITORMOBILINK MONITOR

• Provides detailed information about performance of 

Insert subhead here as a full sentence at 18 point font, bold

psynchronization

• Collects statistical information for synchronizations that occur i th it i iin the monitoring sessions

• Provides data in a tabular or graphical form through the interface

• Does not degrade the performance of the MobiLink server

• Output of monitoring data can be saved in .CSV or exported to an ODBC data source

26

MOBILINK MONITORMOBILINK MONITORInsert subhead here as a full sentence at 18 point font, bold

List of synchronizations

TCPIP work queue

Database access

Various stages of a synchronization

Time window used

27

Time window used for zooming

SYNCHRONIZATION MODEL WIZARDSYNCHRONIZATION MODEL WIZARD

• Eases the creation of MobiLink application

Insert subhead here as a full sentence at 18 point font, bold

pp

– Configures MobiLink system tables and objects

– Design data flow during synchronization

– Auto generates the necessary synchronization scripts

• Deploys the synchronization model

– Creates script files to run the MobiLink server and clients

• Models can be reconfigured and redeployed

28

DEMO: SQL SERVER 2008 SYNCHRONIZATIONDEMO: SQL SERVER 2008 SYNCHRONIZATION

SQL Server 2008 with MobiLink

• Synchronization Model to design synchronization

• Deploy the Synchronization Model to a SQL Server 2008 lid t d d t bconsolidated database

• SQL Anywhere client database

29

RESOURCESRESOURCES

• Where to go from here…

Insert subhead here as a full sentence at 18 point font, bold

– SQL Anywhere website• http://www.sybase.com/sqlanywhere

– Download the developer edition• http://www.sybase.com/detail?id=1055872http://www.sybase.com/detail?id 1055872

– Try out the samples! ( %SQLANYSAMP11% )– Look at the documentation

• http://dcx.sybase.comN– Newsgroups

• http://www.sybase.com/detail_list?id=10891– White Papers

• http://www.sybase.com/detail?id=1062460– SQL Anywhere Tech Corner

• http://www.sybase.com/developer/library/sql‐anywhere‐techcorner

30

Sybase Professional ServicesSybase Professional Services

• Our Professional Services Organi ation can help youwww.sybase.com/professional‐services/consulting/products The technology and the

assistance we’ve received from • Our Professional Services Organization can help you…– Upgrade from previous versions– Install and configure SQL Anywhere 11 with high 

availability options

iAnywhere’s Professional Services team have enabled us to do things that would otherwise have been much more difficult and expensive given our business requirements.

– Build a rapid proof of concept using tried‐and‐tested application templates, toolkits, and frameworks  

• Includes BlackBerry development

Khaled El EmamCTOTrialStat

Includes BlackBerry development (www.sybase.com/blackberry)

– Learn more about SQL Anywhere through customized training and mentoring 

– Plan your architecture distributed systems

Pearson benefited from the expert knowledge of iAnywhere Solutions Professional Services, helping their developers quickly – Plan your architecture, distributed systems 

design, or application design– Tune and enhance performance– Test synchronization scalability

helping their developers quickly gain knowledge in order to accelerate the development of SuccessMaker.

Kelli Anne Hodges

31

Kelli Anne HodgesCurriculum SpecialistPearson Digital Learning

GETTING STARTED WITH MOBILINK IN SQL ANYWHERE 11

32


Recommended