The upload stream and the download stream
To upload rows, SkyWire™ SkySync clients prepare and send an upload
stream that contains a list of all the rows that have been updated,
inserted, or deleted on the SkyWire™ SkySync client since the last
synchronization, as well as copies of those same rows as they were
when the remote client originally downloaded them. Similarly, to
download rows, the SkyWire™ SkySync synchronization server prepares and
sends a download stream that contains a list of inserts, updates, and
deletes.
Actual steps taken in Synchronization
The synchronization process proceeds as follows. Each step in the
following description is divided into two parts. One part describes the
actions of the SkyWire™ SkySync client; the other part describes the
actions of the SkyWire™ SkySync synchronization server.
The SkyWire™ SkySync client automatically keeps track of which rows on
the remote device have been inserted, updated, or deleted since the
previous successful synchronization. The SkyWire™ SkySync client
establishes a connection with the SkyWire™ SkySync synchronization server
and uploads these changes. The SkyWire™ SkySync client initiates these
actions. The upload stream consists of a set of single-row inserts,
updates, and deletes as well as copies of the original state of these
rows (where appropriate)
The SkyWire™ SkySync synchronization server receives and applies the
upload stream instructions to the consolidated database. The changes
are made in a single transaction. When finished, the SkyWire™ SkySync
synchronization server commits the transaction in the consolidated
database.
The SkyWire™ SkySync synchronization server compiles a list of rows to
be inserted, updated, or deleted on the SkyWire™ SkySync client, by
executing the scripts present in the consolidated database. It sends
these rows back to the SkyWire™ SkySync client in the form of a download
stream.
The SkyWire™ SkySync synchronization server prepares this download
stream using a single transaction in the consolidated database, but it
does not commit any changes until the application confirms receipt. You
can use this transaction to maintain a record of which information has
been sent to each remote database.
The SkyWire™ SkySync client is assured that all the changes it sent to
the server in the upload stream have been committed in the consolidated
database when it starts to receive the download stream.
The SkyWire™ SkySync client automatically updates its record of which
data is modified so that the same changes are not sent again. It then
processes the download stream, deleting old rows, inserting new rows,
and updating rows that have changed. It makes all these changes in a
single transaction in its own database. When finished, it commits the
transaction.
The SkyWire™ SkySync client sends a short message back to the SkyWire™
SkySync synchronization server, confirming that it has received and
processed all the changes.
The SkyWire™ SkySync synchronization server commits the download
transaction in the consolidated database upon receipt of this
confirmation.
During SkyWire™ SkySync synchronization, there are few distinct
exchanges of information. The entire upload stream is built and sent
from the remote site and, in response, the entire download stream is
built and sent from the SkyWire™ SkySync synchronization server. Limiting
the chattiness of the protocol is especially important when
communication is slower and has higher latency, as is the case when
using telephone lines or public wireless networks.
|