Patent ID: 8150917

Claim:
A computer-implemented method for providing highly available conferencing services, the method comprising: providing a conference server pool comprising a plurality of stateless conference servers, a conference server pool load balancer, and a remote conference store wherein the remote conference store is remote to each of the plurality of conference servers in the conference server pool and maintains conference state information for each of a plurality of conferences indicating a multipoint control unit factory that is assigned to each conference by a multipoint control unit load balancer and indicating clients that are currently participating in each conference such that the stateless conference servers share the conference state information maintained by the remote conference store; receiving, at the conference server pool load balancer from a first client, a first request to join a conference; selecting, by the conference server pool load balancer, a first conference server of the plurality of stateless conference servers to allocate to service the first join request based on a current workload of each of the stateless conference servers; joining, by the first conference server, the first client to the conference based upon conference state information for the conference maintained on a remote conference store; during the conference, updating, by the first conference server, the conference state information for the conference maintained on the remote conference store to indicate that the first client has joined the conference; receiving, at the conference server pool load balancer from the first client, a second request to join the conference, the second request being a request to rejoin the conference after the first client lost connection with the conference; selecting, by the conference server pool load balancer, a second conference server of the plurality of stateless conference servers to allocate to service the second join request based on the current workload of each of the stateless conference servers, the second conference server being different from the first conference server; rejoining, by the second conference server, the first client to the conference based upon conference state information for the conference maintained on the remote conference store, the conference state information including an indication that the first client has rejoined the conference.