I created a python service "ping.ping" which responds to an agent's requests informing that the service is up and running and deployed it in clarens.
And also tested the following scenario;
First, a RootletSimulator(java) registers the rootlet service with an agent. (In the actual implementation this should be handled by the initialization method of the rootlet service)
After the registration, the agent will keep on pinging the rootlet service (python running on Clarens) to make sure that the service is up.
Now, if we use the ClientSimulator (java) it can discover the service and may be use the service.
Then we can stop the Clarens server or remove the rootlet service from the web-frontend (need to find out how to do this)
Now if we use the ClientSimulator(java) again, it won't discover the service, because the agent has removed the service from its list of available services.
Agent discovery request/response uses signed messages.
Service discovery request/response uses encrypted and signed messages.
*pings* use xmlrpc over http and the messages are secured using a grid-proxy.