How It Works
The Problem
Like many in the community we have discovered that if you want the best FileMaker Go Experience you are probably going to have build it to work offline, unless you are on wifi and your server is on the same LAN. And even then a local file is going to be faster. But if you want to build for offline access you are going to have to solve a number of issues:
- Getting of new Local files, and new versions of those files, out to folks in the field.
- Exchanging data so it flows down to the device and back up to the server.
- Gracefully handling disconnects in the middle of data exchange.
- Keeping FMGo from continuously looking for served files when no network is available.
Our Solution
GoZync is our attempt to solve all of these issues in a way that is both very robust and easy enough for your average FileMaker user to be able to implement. To that end we also set the following guidelines:
That was the plan and that is pretty much what we have done.
Under the Hood
GoZync uses loosely coupled data exchange model to pass data back and forth while maintaining transactional integrity. We do that by converting any any related set of FileMaker records, like an Invoice and its related Invoice Lines, into what we call a "Document", and passing the complete Document up to the server or down to the device using what amounts to normal FileMaker Set Field steps. Documents are then transactionally processed so either they make it completely into the receiving system or they don't make it all. When a Document is sent to the Server it either gets there or it doesn't. There is no way to get a partial document there. This means that should the 3G network drop or the phone ring in the middle of transferring an invoice to the server, its ok, no damage has been done. There is no need to guess or calculate what might have happened to to the data.
Documents can also have "Attachments". Attachments are binary files that can be sent along with the document. This makes it possible to send photos or other files up to the server. Attachments are also treated transactionally, so if a Document gets passed to the server it will go with all of its attached photos or it won't go at all.
In addition to managing the data, GoZync manages the deployment of your local/remote files and can automatically download new builds of the local file to the Device. There is no need to use iTunes or any other app to get the file on the device, though you may want to email users their first copy of the mobile file: after that they can click "check for new version" in the mobile file to get new builds.
All of this is abstracted out so that it is pretty simple for an average FileMaker person to be able to build with and extend.