Remote Synchronization of Cell phones.


76 views
Uploaded on:
Description
addresses the asset impediments of cell phones ... In charge of gadget and application design administration. Shrouds the multifaceted nature of ...
Transcripts
Slide 1

Remote Synchronization of Mobile Devices By Eugene Kovshilovsky

Slide 2

Motivation Need for various individuals to have the same data Ex. Birthdays, Business contacts Ease of synchronization Not attached to one area New innovation not broadly grew yet

Slide 3

Why Synchronization? Nearby databases and operations on them are coming typical Having your information dependably redesigned is (turning into) an upper hand Cooperation of organized gatherings/applications sets an immediate interest for a consistent arrangement Handsets are not "generally on" Constant associations are costly Network scope is not all inclusive User experience can be unsuitable

Slide 4

What advancement innovation might be utilized? SyncML is established by key industry players open innovation for all inclusive information synchronization Pocket PC\'s have Visual Basic and C++ libraries worked in for simple improvement. JSP/J2EE is generally used to plan sites Most Cell telephones are Java empowered supporting J2ME and MIDP improvement

Slide 5

SyncML

Slide 6

SyncML (Part 2)

Slide 7

Why SyncML was picked? Open innovation benefits all Application engineers Operators and administration suppliers Handset producers Customers Expandable Transport autonomous Can be utilized over HTTP, GPRS Secure sufficiently wide industry backing True interoperability (Can keep running on any stage) Sufficient gadget volumes

Slide 8

Is SyncML useful for advancement? SyncML is the convention of decision for information synchronization SyncML serves as a key empowering influence being developed of intuitive organized applications Market interest for SyncML Device Management exists. You should begin usage incline up now all together not to miss the train.

Slide 9

What is Sync ML? Information Synchronization Protocol taking into account the XML innovation underpins an assortment of transport conventions (e.g. WSP/WAP, HTTP, OBEX) influences existing open principles for article sorts and can bolster discretionary organized information addresses the asset impediments of cell phones

Slide 10

Communication amongst Client and Server

Slide 11

Tools Used For Pocket PC Application Development Microsoft eMbedded VC++ 4.0 w/SP4 Used for center DLL advancement Microsoft eMbedded Visual Basic 3.0 Included in Microsoft eMbedded Tools 3.0 Used for GUI improvement Microsoft Pocket PC 2003 SDK Microsoft Pocket PC 2002 SDK Microsoft eVB Run-time library Built into Pocket PC 2002 yet required on Pocket PC 2003 if Visual Basic .NET is not utilized

Slide 12

My Pocket PC 2003 SyncML API

Slide 13

Sync Client API Architecture Built up of two primary modules: Data synchronization Device administration

Slide 14

Three Main Modules Device Manager Layer Responsible for gadget and application arrangement administration Hides the intricacy of the synchronization procedure giving couple of basic strategies to manage But It\'s Still being developed

Slide 15

Three Main Modules (Part 2) Sync Manager Layer Responsible for everything with respect to the SyncML convention and the information synchronization process. Sync Source An application module used to collaborate with the application information sources Application particular and straightforward to the synchronization motor. Exchange Process Between The Two The gathering of things that are traded amongst customer and server. The customer encourages a Sync Source with the things changed on the customer side While the Sync Manager bolsters it with the things got by the server

Slide 16

SyncManager The SyncSource speaks to the accumulation of things that are traded amongst customer and server. The customer encourages a SyncSource with the things changed on the customer side, while the SyncManager nourishes it with the things got by the server.

Slide 17

Sync Process The customer application advises the SyncManager to plan sync of the server database (new SyncSource) This begins another synchronization session The SyncManager arranges with the server which sort of synchronization ought to be performed (one-way, two-way, moderate, and so forth).

Slide 18

Sync Process (Part 2) Then the customer can bolster the sync source with the significant things (normally utilizing setAlltems() if there should arise an occurrence of a moderate sync and alternate setXXXItems() strategies if there should be an occurrence of one of quick match up). At the point when both SyncSource and the SyncManager are prepared sync() is called.

Slide 19

Sync Process If the sync procedure was effectively ended The customer can read the things got from the server calling the getXXXItems() techniques for the SyncSource object. For the situation the customer makes its own particular LUID for new things, it can set the LUID-GUID mapping back to the Sync Source so that toward the end of the synchronization procedure the mapping is sent to the server.

Slide 20

Sync Process LUID ( locally exceptional identifier) A 64-bit esteem that is ensured to be special on the working framework that created it until the framework is restarted GUID (all around one of a kind identifier) novel 128-piece number produced in SyncML server to remarkably recognize a tuple.

Slide 21

Interaction Diagram

Slide 22

Classes Structure

Slide 23

Class Structure (Part 2)

Slide 24

What do those Classes Do? SyncManagerFactory This is the industrial facility for SyncManager objects. Utilize its getSyncManager() technique to get another designed occasion of SyncManager. SyncSource The class that speaks to a synchronization information source. Must be loaded with the customer side things before passing it to the SyncManager keeping in mind the end goal to synchronize it. After the SyncManager has completed a sync(), the SyncSource article will contain the server-side things. Things are put away as varieties of SyncItem articles.

Slide 25

What do those Classes Do? (Section 2) SyncItem A thing is spoken to by a SyncItem, who relates a recognizing key with the thing content. Config This class speaks to the whole SyncManager design. It bunches utility strategies to effectively get to design properties. SyncSourceConfig Similar to Config yet for SyncSources.

Slide 26

Code Snippet SyncManagerFactory processing plant = SyncManagerFactory(); SyncManager* syncManager = factory.getSyncManager(APPLICATION_URI); SyncSource source = SyncSource(SOURCE_NAME); if (syncManager == NULL) { mistake(); goto at last; } ret = syncManager->prepareSync(source); if (ret != 0) {/blunder taking care of ... } switch (source.getSyncMode()) { case SYNC_SLOW: 7 setAllItems(source);/fill the allItems source property break; case SYNC_TWO_WAY: setModifiedItems(source);/set the customer side altered things break; default: break; } if (syncManager->sync(source) != 0) { blunder(); goto at long last; }/Now source contains server-side adjustments/... Do whatever suitable ... setMappings(source);/set LUID-GUID mapping if (syncManager->endSync(source) != 0) { blunder(); goto at last; }

Slide 27

Sync Manager Functions SyncManager() Constructor int prepareSync(SyncSource& source) Initializes another synchronization session for the predetermined sync source. It returns 0 in the event of achievement, a blunder code if there should arise an occurrence of mistake int sync(SyncSource& source) Synchronizes the predetermined source with the server. Source ought to be loaded with the customer side altered things. Toward the end of the procedure source will be encouraged with the things sent by the server. It returns 0 if there should be an occurrence of accomplishment or a mistake code in the event of blunder int endSync(SyncSource& source) Ends the synchronization of the predefined source. On the off chance that source contains LUIG-GUID mapping this is sent to the server. It returns 0 if there should arise an occurrence of progress or a blunder code in the event of mistake

Slide 28

Sync Source Functions SyncSource(char* name) Constructs a SyncSource with the given name. The name is utilized to recover the source design from the <appURI>/spds/sources/arrangement setting. char* getName(char* name, int faint) Returns the source name. On the off chance that sourceName is <> NULL the returned worth is sourceName. Something else, the returned quality is the interior support pointer. Note that this will be discharged at item programmed annihilation. setType(char* sort) Sets the things information pantomime sort burn * getType(char *type) Returns the things information pantomime sort. On the off chance that sort is NULL, the pointer to the inside cushion is returned, generally the quality is duplicated in the given cradle, which is likewise come back to the guest. setPreferredSyncMode(SyncMode syncMode) Sets the synchronization mode required for the SyncSource. It can be one of the estimations of the identification sort SyncMode.

Slide 29

Sync Source Functions (Part 2) getPreferredSyncMode() Returns the default synchronization mode. SyncMode getSyncMode() Returns the synchronization mode for the SyncSource. It might be not quite the same as the one set with setPreferredSyncMode() as the aftereffect of the transaction with the server. setSyncMode(SyncMode syncMode) Sets the synchronization mode for the SyncSource. long getLastSync() Returns the timestamp in milliseconds of the last synchronization. The reference time of the timestamp is stage particular. setLastSync(long timestamp) Sets the timestamp in millisencods of the last synchronization. The reference time of the timestamp is stage particular. setLastAnchor(char* last) Sets the last grapple related to the source char* getLastAnchor(char* last) Gets the last stay related to the source. On the off chance that last is NULL the inward cushion location is returned, generally the worth is replicated in the given support and the cradle location is returned.

Slide 30

Sync Source Functions (Part 3) setNextAnchor(char* next) Sets the following stay related to the source char* getNextAnchor(char* next) Gets the following grapple related to the source. On the off chance that next is NULL the inner cradle location is returned, generally the quality is duplicated in the given cushion and the support location is returned. setAllSyncItems(SyncItem* items[], int n) Sets every one of the things put away in the information source. For execution reasons, this ought to just be set when required (for instance if there should be an occurrence of moderate or invigorate sync). The things are passed to the SyncSource as a variety of SyncItem objec

Recommended
View more...