SSL

The API communicates with RoboServer through an RQLService. The RQLService is a RoboServer component which listens for API requests on a specific network port. When you start a RoboServer you specify if the RoboServer should use the encrypted SSL service, or the plain socket service, or both (using two different ports). All RoboServers in a cluster must be running the same RQLService (although the port may be different).

Assuming we have started a RoboServer with the SSL RQLService on port 50043, like this

RoboServer -service ssl:50043

we can use the following code

RoboServer server = new RoboServer("localhost", 50043);
boolean ssl = true;
Cluster cluster = new Cluster("MyCluster", new RoboServer[] {server}, ssl);
Request.RegisterCluster(cluster);
                                

SSL configuration


All we need to do is to create the cluster as an SSL cluster and specify the SSL port used by each RoboServer. Now all communication between RoboServer and the API will be encrypted.

In addition to data encryption, SSL offers the possibility to verify the identity the remote party. This type of verification is very important on the Internet, as rouge websites could otherwise pretend to be someone they are not. Most often your API client and RoboServers will be on the same local network, so you rarely need to verify the identity of the other party, but the API supports this feature should it become necessary.

Check here to find out how to compile and run the included SSL example.