You don't have to implement specific interfaces to make your service cluster-aware, but you have to:
- Deploy your service to all cluster node
- In cluster admin console, create a new Generice Service cluster resource under your cluster group
- Check [Use network name] to allow service to impersonate the virtual server
- Add all required dependencies
The service itself must:
- Its start type must set to [Manual] so the SCM can wake up your service
- The service code must be written "cluster aware". Which means, keep in mind that you should not hard-code any resources related to the node your service is running under.
- Use virtual resources, in other word, you have to make sure every resources used by your service should be available in every moment
- Pay attention to multithread environment
- Uncheck [Affect the group] if your are not sure of service's performance, thus the cluster manager won't swith all resource once your service failed.
Cluster and Remoting
Some articles states that binds each channel to a specific ip address by using <bindTo> attribute in application's config file will make it easier to use remoting in a cluster environment. I setup a A-P mode clustered remoting hosts, and find it seem works fine even if I do not set the <bindTo> attribute. I'll keep an eye on this.