The following components make up the Act! synchronization architecture.
Sync Server is a .NET remoting server that listens for incoming calls made over the network. When the client makes a connection, the server creates a synchronization remote object for the respective main database and hands it to the client so it can be used to make remote calls on the server side. When the clients invoke methods on the remote object, the data is applied to the main database that is designated for that remote object only. The incoming data is first processed before the call is returned with server side data if available, hence the calls are synchronous in nature. The server class starts the Sync Server in two modes: Stand Alone Server and Windows Service. The service requires a TCP port to listen for incoming calls.
Sync Client is a .NET remoting client that connects with the server and makes remote calls on the remote object. Each client is connected to only one remote database, so all the data is part of only one server/client combination. A proper authentication and handshaking routine verifies and validates the client before synchronization can occur. If there are no data changes to be synchronized, the session is terminated. Use of timestamps and watermarks keep track of synchronization session boundaries so that synchronization data is not repeated after a successful synchronization. The client class starts the Sync Client by connecting to the service and receiving an instance of the synchronization remote object. After receiving this instance, the client can make remote calls over the network. Because the synchronization model is a pull-model, all operations are initiated on the client side.
Sync Control Tables are SQL tables that store information about the data changed by the user. Synchronization data is only captured if synchronization is enabled for the database.
Sync Triggers are SQL triggers that are fired when data is changed on a synchronization eligible table. The triggers capture the information about the data and store it in synchronization control tables.
Sync Procedures are SQL procedures that process and deliver real data sets to the synchronization engine for transportation.
File Watchers is a .NET based monitor on the datastore that monitors file changes and stores the information in synchronization control tables.
Sync Logs are database and XML based logs that store information about a synchronization session. They provide useful information for debugging synchronization problems in previous synchronization sessions.