Below is a paper that I wrote for implementing for a real time Server Synchronization Technology for a Distributed Server Architecture
Requirement:
Company xyz has now decided to extend the current system as distributed server architecture, expanding over 46 locations. There will be a central server which will be running from xyz HQ. There will 46 independent host severs running at various locations across the nation, which will be loaded with product management software. These independent locations will be interacting with their respective host servers for product Management. The brokers will be interacting with the central server, where the xyz web site and application is loaded.
Now we need to build a method by which the product data updated on each of the distributed location to be automatically updated on to the central server on a regular basis. This is highly essential since the product updates to the central server should see the data updates as and when it happens on the distributed locations. For making this happen, we can use a very simple but very efficient data synchronization technique.
Data Synchronization Technology (DST):
The Data synchronization technology (DST) which we are talking about is a very robust and scalable method of synchronizing data from one server to another. This technology can be extended to complex data mirroring between servers. The technology can be customized for any application/database running on the server. Both the data file and database synchronization happens simultaneously. The synchronizing programs are Perl scripts running on the central server which updates the server whenever some data updations happen on the host server (distributed servers on 46 locations).
Applying DST to xyz Distributed server architecture (DSA):
The following things will have to be done for making the DST work for xyz DSA.
The following figure explains how DST can be implemented for xyz DSA. Below high level architecture flow explains the process in detail -
Requirement:
Company xyz has now decided to extend the current system as distributed server architecture, expanding over 46 locations. There will be a central server which will be running from xyz HQ. There will 46 independent host severs running at various locations across the nation, which will be loaded with product management software. These independent locations will be interacting with their respective host servers for product Management. The brokers will be interacting with the central server, where the xyz web site and application is loaded.
Now we need to build a method by which the product data updated on each of the distributed location to be automatically updated on to the central server on a regular basis. This is highly essential since the product updates to the central server should see the data updates as and when it happens on the distributed locations. For making this happen, we can use a very simple but very efficient data synchronization technique.
Data Synchronization Technology (DST):
The Data synchronization technology (DST) which we are talking about is a very robust and scalable method of synchronizing data from one server to another. This technology can be extended to complex data mirroring between servers. The technology can be customized for any application/database running on the server. Both the data file and database synchronization happens simultaneously. The synchronizing programs are Perl scripts running on the central server which updates the server whenever some data updations happen on the host server (distributed servers on 46 locations).
Applying DST to xyz Distributed server architecture (DSA):
The following things will have to be done for making the DST work for xyz DSA.
- Writing Perl programs at the central server which pulls data from the distributed servers. Separate schedulers will have to be created for 46 locations.
- Scheduling the Perl programs on the central serer in proper time intervals
- Modifying the product management application program loaded on host server. This extra process as shown in the following figure will have to be incorporated into all the programs which do some data transaction.
- Creating data pull areas on the host servers.
- Writing Listener program on each of the host servers
The following figure explains how DST can be implemented for xyz DSA. Below high level architecture flow explains the process in detail -