What is VICINITY Communication Server?
The VICINITY Communication Server is VICINITY Cloud component which facilitates communication between peers (VICINITY Agents) in peer-to-peer (P2P) network VICINITY Platform thorugh Open VICINITY Gateway API. The VICINITY Communication Server is based on implementation of (Extensible Messaging and Presence Protocol) XMPP OpenFire to provide high-available and secure communication environment in VICINITY platform. VICINITY Communication Server is tightly connected to VICINITY Neighbourhood Manager, which defines the communication rules in peer-to-peer network and VICINITY Communciation Server enforces these rules in peer-to-peer network through XMPP shared rosters mechanism.
The Communication Server needs to have three packages installed in order to work properly:
- MySQL database server,
- Openfire XMPP server 4.1.3,
- VICINITY Neighbourhood Manager installed and configured.
Having said that, necessary steps are following:
- Install MySQL server and create a separate user for the Openfire XMPP server.
- Install Openfire XMPP server, and during installation configure it to use MySQL server on local host, with credentials from step 1.
- Install VICINITY Neighbourhood Manager.
Observe proper steps in documentation for each software.
There are some configuration parameters that has to be set in Openfire XMPP server configuration. First, the REST API plugin must be installed, security certificates needs to be correctly configured and some minor tweaks need to be done to group properties.
- Install the REST API Openfire plugin according to the documentation for your version of Openfire.
- Get certificates signed by proper certification authority. Then import them into your server's Java keystore. Openfire is written in Java and instead of importing particular certificates, it imports whole Java keystore.
- In the web based administration interface of Openfire, go to System Properties and add these three records to confifgure the Openfire NOT to cache information about groups, making any direct changes to the group records done by the Collaboration Web effective immediately:
cache.group.maxLifetime set to value '1' cache.groupMeta.maxLifetime set to value '1' cache.userGroup.maxLifetime set to value '1'