ENEWS > SUMMER 2007 > TECH CORNER
ACT! TECHNOLOGY CORNER:
ACT! Synchronization Overview
The ACT! synchronization architecture is built upon the core ACT! application platform, designed to achieve performance, scalability, and data integrity. It is a custom implementation that takes the best of many available Relational Database Management Systems (RDBMS) and third-party sync products, rolling them into a single dynamic solution tailored to the ACT! environment and business rules. This architecture allows ACT! to support both desktop database sync as well as synchronization with supported handheld devices.
Synchronization is developed as a three-tier architecture with the goal of enabling an administrator and users to define and configure a deployment to meet their specific business and logistical requirements. These three tiers are:
- Client (Subscriber database)
- Sync Server (one of the three possible which will be discussed later)
- Server (Publisher database)
The ACT! Sync feature includes a robust and comprehensive set of design characteristics and features. The unified architecture for both Desktop and Handheld Devices enables these characteristics to be shared and experienced across both platforms, including:
- Dependable and efficient transaction logging
- Ability to recover from incomplete syncs and database restore (desktop only)
- Full column-level sync of all tables
- Sync of files including Attachments and others (desktop only)
- Sync of Schema and Configuration
- A connected-model where sync occurs and resolves real-time
- Retain the “ACT! Experience” and paradigms
Specifications
The implemented architecture is a combination of client-side Microsoft .Net-managed code embedded in the ACT! Framework, and server-side Microsoft SQL Server™ procedural objects residing in the ACT! database. The approach leverages the underlying client-server technologies, allowing more data and process-intensive operations to be handled server-side, while the client-side components define the business logic, data packaging, encryption, and data transport.
The following represents the high-level technical features and specifications of ACT! synchronization:
- SyncML v1.1 – an open, XML-based standard adopted by the W3C
- Transactions logged in and by the database via custom triggers – self-contained and at the data layer
- Column-level update logging on all tables – each recorded update contains the who, what, when and where of the change
- Multi-Level Design - supports a three-level model (publisher, child, grandchild) to accommodate handheld devices
- Publisher/subscriber Model – each database is known, there is no concept of “anonymous subscribers”
- Sync Server – a distributable communication and processing component
- Inside Firewall/LAN connection (application or network sync)
- Outside firewall (Internet sync)
- Encrypted data transport (64-bit DES encryption)
With regards to the Synchronization Server, there are three possible Sync Servers available in ACT! by Sage Premium for Workgroups (only one is available in ACT! by Sage). The Sync Server is the middle-tier component that serves as the “transport broker” and communication mechanism between a subscriber and publisher database. The Sync Server can be run on the machine hosting the publisher database, or on one or more other machines to help distribute the workload. This can help to “load balance” the network. It can also provide a good contingency or failover plan for remote users should connectivity be unavailable for one of the Sync Servers (i.e., traffic can be re-routed).
Setup
The ACT! synchronization model is one of a database-to-database process. It adheres to a publisher-subscriber metaphor, meaning that one central publisher database supports one or many remote subscriber databases:

Setup for the synchronization process is centralized at the publisher database, and once configured, a “pull” process is initiated by a subscriber database. The publisher database, aided by a Synchronization Service, will be listening for incoming sync requests from subscriber database(s).
Setup steps begin with an Administrator logging onto a database that is intended to become the publisher, then:
- The Admin “Sync Enables” the database
- Creates one or more sync sets to define what is synchronized and for whom
- A remote subscriber database is created using one of the defined sync sets
- The Admin starts a Sync Server to listen for incoming sync requests
- The subscriber database is deployed on the remote users machine
- The remote user initiates a sync
Each subscriber database can choose its sync method (network or Internet) and connection information (TCP/IP Port number), enabling a more distributed, dynamic and manageable sync environment.
Sync Process
As mentioned, the ACT! synchronization is based upon a publisher-subscriber model in which the subscriber is responsible for sync initiation (either manually or scheduled). The sync session is comprised of several specific tasks which are responsible for relationship confirmation, configuration management and data resolution. Those tasks include:
- Initial handshake – connections are attempted between the client and the Sync Server, then the Sync Server and the publisher. Once established, database credentials are exchanged which include machine name, database name and an internal database ID
- Check for changes – sync completes if nothing is found to sync on either database
- Initialization – both the publisher and subscriber identify and queue-up eligible data transactions and files
- Data exchange and resolution (both schema and data content)
- Any data exceptions are processed
- Sync session completes
Conclusion
The ACT! synchronization platform provides a robust and feature-rich set of abilities to extend both the single-user and workgroup experience. Its architecture provides a solid foundation to meet demanding business and mobility requirements today, as well as provide the future growth for tomorrow.
Bill Blakey
Architecture, ACT!
Sage Software, Small Business Division
For more on ACT! Synchronization Architecture, read more in the whitepaper.
Your feedback is very important to us, and we want to know what you want to hear about. Please let us know what content you would like to see in the Technology Corner columns. Send us feedback at architectureCorner@sage.com.
|