The primary component of a Geons system is geond, the server. A distributed company using Geons will typically have one or more Geons servers at each site, each running geond. The client software listed below will write data to their local geond using the Geons XML protocol. This geond will update its local database with the new data, and propagate it to any other servers running geond that it has been configured to. These servers will update their local database, and propagate the data to any other servers they have been configured to. This continues until all servers in the network have received the data. If a server is disconnected from the network, those servers that are configured to propagate data to it will queue this data until the disconnected server returns. All network traffic is passed over simple TCP sockets and is NAT friendly.
In a typical configuration, there will be a pair of redundant master servers at a headquarters site. Servers at all other sites will then connect to these master servers, and data will be propagated both ways. However, this need not be the case. Servers can be connected in any topology as long as there is a path from every server to every other server. This path can be intermittent in places. Loops in the propagation are supported.
[diagrams to follow]
The following clients can connect to their local geond server:
- The Geons web interface. This provides an easy to use interface to manage data in the Geons database. This web interface runs on the same machine as geond, and runs under Apache and mod_perl.
- Asterisk for PBX functionality. The geond software has built-in servers for Asterisk's AGI and res_config_curl protocols. Asterisk connects to geond on the same machine using these protocols for configuration settings and call routing.
- Third party clients running on other machines.
