IP Library Granted Patent US 10,142,422
Granted Patent B2
US 10,142,422 · App. 15/224,008 · Granted Nov 27, 2018

Clustering websocket communications with configurable master-slave servers

Inventors: Gang Wang (Port Coquitlam, CA); Walter Mak (North Vancouver, CA); Tsz Hong Sung (Richmond, CA); Pak Man Chan (Vancouver, CA); Jeffry Ma (Vancouver, CA); Ka Wing Hui (Vancouver, CA)
Assignee: SAP SE
H04L67/125H04L67/02H04L67/10H04L67/1029H04L67/14H04L67/141H04L67/24
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,142,422
App. No.
15/224,008
Granted
Nov 27, 2018
Kind
B2
Abstract

Embodiments provide clustering of websocket communications with configurable master-slave servers. A centralized document service accessible to each server functions as a repository for cluster server information, cluster master server IP address, and security information. Upon receiving a first input, a server references the document service to create a first websocket handler as the master (e.g., utilizing a flag). Upon receiving a second input, a different server references the document service to create a slave websocket handler. Using master server IP address information from the document service, the slave websocket handler establishes a websocket cluster channel with the master websocket handler. Additional websocket channels with the master websocket hander may be established as further inputs are received and slave websocket handlers created. Allowing configuration as masters or slaves on a per-cluster basis, allows servers to function in dual roles, avoiding the bottleneck of requiring a same master server for all clusters.

Claims (72)

1. A computer-implemented method comprising:

providing a document service storing server cluster information including a first cluster;

a first server receiving a first input specifying the first cluster;

in response to the first input, the first server referencing the document service to create a first master websocket handler and provide a first server address in the server cluster information;

a second server receiving a second input specifying the first cluster;

in response to the second input, referencing the document service to create a first slave websocket handler storing the first server address; and

causing the first slave websocket handler to establish a first websocket channel with the first master websocket handler using the first server address.

2. A method as in claim 1 wherein the server cluster information further includes a second cluster, the method further comprising:

the second server receiving a third input specifying the second cluster;

in response to the third input, the second server referencing the document service to create a second master websocket handler and provide a second server address in the server cluster information;

the first server receiving a fourth input specifying the second cluster;

in response to the fourth input, the first server referencing the document service to create a second slave websocket handler storing the second server address; and

causing the second slave websocket handler to establish a second websocket channel with the second master websocket handler using the second server address.

3. A method as in claim 2 wherein:

the first cluster comprises a collaboration session;

the first input includes a first security token from a presenter of the collaboration session;

the second input includes a second security token from a first participant in the collaboration session; and

the cluster information includes the first security token and the second security token.

4. A method as in claim 3 further comprising broadcasting a presence of the first participant in the collaboration session to the presenter over the first websocket channel.

5. A method as in claim 3 further comprising:

the first server receiving a fifth input specifying the collaboration session from a second participant; and

the first server routing the fifth input to the first master websocket handler.

6. A method as in claim 5 further comprising the first slave websocket handler updating the server cluster information to reflect a presence of the second participant in the collaboration session.

7. A method as in claim 1 wherein the first master websocket handler includes a flag having a value designating a master status.

8. A method as in claim 1 wherein the document service comprises an in-memory database.

9. A non-transitory computer readable storage medium embodying a computer program for performing a method, said method comprising:

providing a document service storing server cluster information including a first cluster;

a first server receiving a first input specifying the first cluster;

in response to the first input, the first server referencing the document service to create a first master websocket handler with a flag having a value designating a master status, and provide a first server address in the server cluster information;

a second server receiving a second input specifying the first cluster;

in response to the second input, the second server referencing the document service to create a first slave websocket handler with a flag having a value designating a slave status and store the first server address; and

causing the first slave websocket handler to establish a first websocket channel with the first master websocket handler using the first server address.

10. A non-transitory computer readable storage medium as in claim 9 wherein the server cluster information further includes a second cluster, the method further comprising:

the second server receiving a third input specifying the second cluster;

in response to the third input, the second server referencing the document service to create a second master websocket handler and provide a second server address in the server cluster information;

the first server receiving a fourth input specifying the second cluster;

in response to the fourth input, the first server referencing the document service to create a second slave websocket handler storing the second server address; and

causing the second slave websocket handler to establish a second websocket channel with the second master websocket handler using the second server address.

11. A non-transitory computer readable storage medium as in claim 10 wherein:

the first cluster comprises a collaboration session;

the first input includes a first security token from a presenter of the collaboration session;

the second input includes a second security token from a first participant in the collaboration session; and

the cluster information includes the first security token and the second security token.

12. A non-transitory computer readable storage medium as in claim 11 wherein the method further comprises broadcasting a presence of the first participant in the collaboration session to the presenter over the first websocket channel.

13. A non-transitory computer readable storage medium as in claim 11 wherein the method further comprises:

the first server receiving a fifth input specifying the collaboration session from a second participant; and

the first server routing the fifth input to the first master websocket handler.

14. A non-transitory computer readable storage medium as in claim 13 wherein the method further comprises:

the first slave websocket handler updating the server cluster information to reflect a presence of the second participant in the collaboration session.

15. A non-transitory computer readable storage medium as in claim 9 wherein the document service comprises an in-memory database.

16. A computer system comprising:

one or more processors;

a software program, executable on said computer system, the software program configured to:

cause an in-memory database to store server cluster information including a first cluster;

cause a first server to receive a first input specifying the first cluster;

in response to the first input, cause the first server to reference the document service to create a first master websocket handler and provide a first server address in the server cluster information;

cause a second server to receive a second input specifying the first cluster;

in response to the second input, cause the second server to reference the document service to create a first slave websocket handler storing the first server address; and

cause the first slave websocket handler to establish a first websocket channel with the first master websocket handler using the first server address.

17. A computer system as in claim 16 wherein the server cluster information further includes a second cluster, and the software is further configured to:

cause the second server to receive a third input specifying the second cluster;

in response to the third input, cause the second server to reference the document service to create a second master websocket handler and provide a second server address in the server cluster information;

cause the first server to receive a fourth input specifying the second cluster;

in response to the fourth input, cause the first server to reference the document service to create a second slave websocket handler storing the second server address; and

cause the second slave websocket handler to establish a second websocket channel with the second master websocket handler using the second server address.

18. A computer system as in claim 16 wherein:

the first cluster comprises a collaboration session;

the first input includes a first security token from a presenter of the collaboration session;

the second input includes a second security token from a participant in the collaboration session; and

the cluster information includes the first security token and the second security token.

19. A computer system as in claim 18 wherein the software is further configured to broadcast a presence of the participant in the collaboration session to the presenter over the first websocket channel.

20. A computer system as in claim 16 wherein the first master websocket handler includes a flag having a value designating a master status.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 29, 2016
From: WANG, GANG; MAK, WALTER; SUNG, TSZ HONG; CHAN, PAK MAN; MA, JEFFRY; HUI, KA WING
To: SAP SE
Reel/Frame 039294/0609 →
Continuity (2)
Provisional Application 62336333 · May 13, 2016
Related Publication 20170331900A1 · Nov 16, 2017
Cited By (1)
US 12,413,645