Article of interest
You may have a need for your application to work with our databse. There are many steps in creating an application and the needs of each application can be very different. But the basic data movement contept is pretty much the same in every case.
First of all, your application shouldn't rely on our server. This might seem like a quick way to get your application up and running with little cost but in the end, your app will suffer because it will have to share computing time with every other app that is trying to access our data and network bandwidth. And if we change the way our data is delivered, you would have to re-deploy new copies of your app to every machine.
You should always have your application communicate with your own server. This way you control the format of the communication between your app and the data. And if we need to change our data format, you only need to make the change in the module between your server and our server. Your users running your app won't see any impact or loss of service while changes are made to the communication between your server and our server.
This diagram demonstrates the basic data flow concept. Each device running your application would make requests (red) for data against your server. Your server would talk do your own database to find the needed information and return that information to the requesting devices. When you don't have the data in your database, your server makes a connection to our server requesting the needed information. Our server performs a lookup in our database and if we have the data we return it to your server.
Once you receive the data from our server, you need to store a copy in your database for the next time it is needed by your users. You also need to return the data to the requesting devices just as you would if you found the data in your database in the first place. Except for a slight delay in getting the data, your user shouldn't see any difference beween getting the data directly from your database or getting it from our database.
The odds are, if one user requests a peice of information from your server, another user will request that same information soon after. This is why you need to keep a copy of the data once you query it from our database. You don't want every user to encounter a delay when requesting the same bit of information.
If you are creating your application and database from scratch, there are a few ways to get started. The basic concept that we suggest is the lowest cost and most effective method that we have seen so far. Here are the basic steps you should follow...
- Create your own database with the information you want to track (few records are needed)
- Create your server aplication to control data flow on your system
- Create the interface between your server and ours using the data feed process. This can be done for FREE while you are developing. Once you go into production you MAY need to pay a fee to maintain fast data access. But if you feed data back to us you may be able to continue using the free feed. It depends on your actual need.
- Build your user application. This can be a phone app or something that is run from computers. Your user app is completly in your control and will talk to your server not ours.
- Test your app well. Make sure that when your server can't find the data in your database that it communicates with ours to get the answer.
- When your basic testing is done, you should load your database with an initial data load. You can get this data from our download page for a reasonable fee.
- Test some more!
- Release your app to the world and watch it go.
Althought the details involved in building your application and server and database are going to be different than what others might see, the basic concepts and steps will be similar as outlined here.
We have seen several app developers follow these basic steps with great success. We have also seen a few app developers try to take short cuts only to see their apps fail or strugle.
The key to a successful app is performance and easy maintenance. By creating your own server and keeping your own database you will have control over those aspects. It is much easier to set your application and communication structure up correctly from the start than it is to go back and rebuild it later.
Hopefully, this outline has been of value to you. Take some time to look around the rest of our site, check out our sample data and the data feed pages. Look at our statistics page. And if you still have questions, you are always welcome to ask.