Synchronisation

Church Music Organiser was always designed as a standalone application, in that the application and database were always intended to be local. That could mean that both components were on the local PC, or at most, the database file was on a local network. The reason for this is pretty simple: I wanted to keep the program as simple to use as possible, and as simple to program as possible.

However, with the advent of so many cloud-based storage solutions, a new option has become available to developers.

Generally, cloud-based storage works like this: any files you copy into the storage "locker" gets copied to the cloud, and then automatically replicated to all the other devices that are sharing that "locker". If multiple people are sharing the folder, then they will see the new file arrive.

A benefit of this system is that it can operate off-line as well. Each person who has been given access to the folder will have on their computer a copy of all the files in it. They can make changes, and then, when they reconnect to the web, their changes are sent back to the cloud and replicated to all the other users.

This is generally fine for word-processing documents or spreadsheets, but it doesn't work so well with database files. In a database, you might only change a single record, but the whole database file would be replicated, which would be slow. Then, if two people were to update records at the same time, one change would be lost because the entire file is being copied each time.

The solution

Rather than try an replicate the entire database file itself, I have implemented a solution where only the changes to the database are replicated to all the other copies. It works kind of like this:

sync system

In this diagram, four computers use the cloud-based storage to save "sync" files. Each sync file contains all the changes that have taken place on a computer. When each Church Music Organiser database synchronises with the cloud storage, all the sync files are read, and all the changes in the files are applied to the local database, and any new changes are saved back to the cloud storage as a new sync file. In this way, each database can be kept up to date. Any conflicts (where two people have made changes to the same record) are displayed to the user in order to work out what the resolution might be.

What do you need?

To make use of this system you will need to set up a folder in your cloud storage facility and share that folder with all those who you want to use it. Once the folder is set up, you can enable the synchronisation system. A wizard in the program will walk you through the setup process.

Why should you use this feature?

If you have several members in your music team who would all like to use Church Music Organiser, and you want to make it easy to distribute changes to the database, the synchronisation system might be for you.

Alternatively, you might be the only user of the system, but you use it on multiple computers. Rather than trying to remember which items need to be exported and imported on different machines, using the synchronisation system allows you to easily move from computer to computer and have all your changes transferred quickly.