| 117 | |
| 118 | |
| 119 | |
| 120 | |
| 121 | = Choosing ZeroConf for Network discovery = |
| 122 | Automatic synchronization between servers require automatic service discovery. We had two major options to choose from: |
| 123 | 1) ZeroConf |
| 124 | 2) Mesh4x |
| 125 | |
| 126 | ZeroConf & Mesh4x solve different problems. They don't overlap in functionality at all: |
| 127 | ZeroConf provides a solution to automatic discovery. |
| 128 | Mesh4x provides a solution to the data sync. |
| 129 | |
| 130 | We were more interested in Zeroconf because: |
| 131 | 1) ZeroConf has Python library but Mesh4x doesn't. I means double work was required if we go with Mesh4x. |
| 132 | 2) We just needed automatic discovery of service because we wanted to use web services, so that foreign developers can also use Restful API |
| 133 | 3) Mesh4x required java daemon, which meant adding jre in the package which would double Sahana package size. |
| 134 | |
| 135 | = deamonX: Daemon which runs automatic synchronization = |
| 136 | We created a daemon which calls web services listed above. DaemonX uses ZeroConf libraries available at http://www.amk.ca/python/zeroconf |
| 137 | Note that ZeroConf is not being maintained after Dec 2006. |
| 138 | deamonX also requires installing jsonrpc libraries from http://json-rpc.org/wiki/python-json-rpc for processing JSON. |
| 139 | |
| 140 | Very initial tests of deamonX using Zeroconf are below expectations. Using a GPRS moderm as network source, Zeroconf library has thrown errors. More testing needs to be done before making any final statement. |