Language selection

Search

Patent 3131954 Summary

Third-party information liability

Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.

Claims and Abstract availability

Any discrepancies in the text and image of the Claims and Abstract are due to differing posting times. Text of the Claims and Abstract are posted:

  • At the time the application is open to public inspection;
  • At the time of issue of the patent (grant).
(12) Patent: (11) CA 3131954
(54) English Title: INFORMATION SYNCHRONIZATION METHOD, SYSTEM, APPARATUS, COMPUTER DEVICE AND STORAGE MEDIUM
(54) French Title: METHODE DE SYNCHRONISATION DES RENSEIGNEMENTS, SYSTEME, APPAREIL, ORDINATEUR ET SUPPORT DE STOCKAGE
Status: Granted
Bibliographic Data
(51) International Patent Classification (IPC):
  • H04L 67/55 (2022.01)
  • H04L 67/568 (2022.01)
(72) Inventors :
  • XU, HENG (China)
  • WANG, YANG (China)
  • WANG, GANG (China)
  • TANG, DONG (China)
(73) Owners :
  • 10353744 CANADA LTD. (Canada)
(71) Applicants :
  • 10353744 CANADA LTD. (Canada)
(74) Agent: HINTON, JAMES W.
(74) Associate agent:
(45) Issued: 2023-11-07
(22) Filed Date: 2021-09-27
(41) Open to Public Inspection: 2022-03-29
Examination requested: 2022-04-28
Availability of licence: N/A
(25) Language of filing: English

Patent Cooperation Treaty (PCT): No

(30) Application Priority Data:
Application No. Country/Territory Date
202011052983.5 China 2020-09-29

Abstracts

English Abstract

This application relates to an information synchronization method, system, apparatus, computer device and storage medium, the methods include receive the messages and the message topics sent by the clients, publish the messages and the message topics to the message middleware, so that any server subscribe the messages and the message topics from the message middleware; Subscribe the topic messages associated with the message topics in the message middleware, and the message middleware is used to receive the topic messages published by any server; When subscribing the topic message associated with the message topics from the message middleware, push the topic message to the clients synchronously. The above methods adopt the way of publishing the message topics and subscription to achieve the real- time information synchronization, and the message can be synchronously forwarded without in the same server.


French Abstract

La présente demande concerne une méthode de synchronisation dinformation, un système, un appareil, un dispositif informatique et un support de stockage, les méthodes comprenant la réception des messages et des sujets de message envoyés par les clients, la publication des messages et des sujets à un intergiciel pour messages, de sorte que nimporte quel serveur puisse sabonner aux messages et aux sujets de lintergiciel, labonnement aux messages associés aux sujets dans lintergiciel et la réception des messages publiés par le serveur. Suivant labonnement au message associé aux sujets dans lintergiciel, le message de sujet est poussé aux clients de manière synchrone. Les méthodes susmentionnées adoptent le mode de publication des sujets et de labonnement pour obtenir une synchronisation dinformation en temps réel, et le message peut être transmis de manière synchrone sans utiliser le même serveur.

Claims

Note: Claims are shown in the official language in which they were submitted.


Claims:
1. An apparatus comprising:
a receiving module configured to:
receive messages and message topics sent by clients;
publish the messages and the message topics to a message middleware,
wherein a server subscribes the messages and the message topics from the
message middleware, wherein the message middleware is a distribution
message cache center, wherein the message middleware receives messages and
message topics published by the server;
a subscription module configured to:
subscribe topic messages associated with the message topics from the message
middleware, wherein the message middleware receives the topic messages
published by the server, wherein the server obtains the topic messages
published by the server by subscribing the topic messages of the message
topics from the message middleware; and
a synchronization module configured to synchronously push the topic messages
associated with the message topics to the clients when subscribing the topic
messages
from the message middleware.
2. The apparatus of claim 1, further comprises an associated module configured
to:
build a long connection with the clients; and
generate clients' identities of the clients, associating the long connection
with the clients'
identities.
3. The apparatus of claim 1, wherein the receive module is further configured
to receive the
messages and the message topics sent by the clients through a long connection.
22
Date Recue/Date Received 2023-08-02

4. The apparatus of claim 1, wherein the synchronization module is further
configured to:
determine a long connection according to the clients' identities; and
synchronously push the topic messages to the clients through the long
connection.
5. The apparatus of any one of claims 1 to 4, wherein there are a
plurality of clients, and the
plurality of clients include a first client and a second client.
6. The apparatus of claim 1, further comprises an association module
configured to:
build a first long connection with a first client;
build a second long connection with a second client;
generate a first identity of the first client;
generate a second identity of the second client;
associate the first long connection with the first identity;
associate the second long connection with the second identity.
7. The apparatus of claim 1, wherein the receive module further configured to:
receive the messages and the message topics sent by a first client through a
first long
connection; and
receive the messages and message topics sent by a second client through a
second long
connection.
8. The apparatus of claim 1, wherein the synchronization module further
configured to:
determine a first long connection according to a first identity;
push the topic message according to the first long connection;
determine a second long connection according to a second identity; and
23
Date Recue/Date Received 2023-08-02

push the topic message to a second client according to the second long
connection.
9. The apparatus of claim 1, further comprises a creation module configured to
create a storage container of key-value pairs;
use keys of the storage container to record the message topics;
use corresponding values to the keys to record a first client's a first
identity and a second
client's a second identity.
10. The apparatus of claim 9, wherein the synchronization module further
configured to:
determine target keys of the storage container according to the message topics
when
subscribing the topic messages associated with the message topics from the
message
middleware;
determine the corresponding values according to the target keys;
determine the first and the second identity according to the corresponding
values;
determine the first long connection according to the first identity;
synchronously push any topic message to the first client through the first
long
connection;
determine the second long connection according to the second identity; and
synchronously push any topic message to the second client through the second
long
connection.
11. The apparatus of any one of claims 1 to 10, wherein each module is
implemented in whole or
in part by software, hardware and both software and hardware combinations,
wherein the
modules are embedded in the form of hardware or independently in the processor
of
computer device or are stored in the memory of the computer device in the form
of software,
wherein the processor calls and executes the operations corresponding to the
modules.
24
Date Recue/Date Received 2023-08-02

12. The apparatus of any one of claim 1 to 11, wherein the topic messages
associated with
message topic includes data information obtained by any operations on the
message topics
from the other servers, wherein the other servers publish the topic messages
to the message
middleware, and any server reads the topic messages from the message
middleware by
subscribing the topic messages associated with the message topics in the
message
middleware.
13. The apparatus of claim 2, wherein the long connection maintains the
message topic of the
clients.
14. The apparatus of claim 13, wherein the server subscribes the topic
messages associated with
the message topics from the message middleware, searches for the clients
associated with the
message topics and the long connection corresponding to the clients in a local
server and
sends the topic messages to the corresponding clients through the
corresponding long
connection.
15. The apparatus of claim 10, wherein the storage container of the key-value
pairs is a map
container.
16. The apparatus of any one of claims 1 to 8, wherein subscribing the topic
messages of the
message topics, the server searches in a map container to determine the
clients corresponding
to the message topics, then pushing a subscribed topic messages to the
clients, wherein the
server generates unique client identity for each client, and the server
maintains a long
connection associated with the clients' identities and then saves to a local
map after mapping
the clients' identities and the message topics, wherein a keys are message
topics id the clients
followed, and wherein values are the connection list corresponding to the
clients.
Date Recue/Date Received 2023-08-02

17. The apparatus of claim 16, wherein the map container is set in the server
in a message
management distribution cluster, wherein the server includes a long connection
message
publication mechanism, and wherein the long connection message publication
mechanism
includes a WebSocket, wherein the server adopts the WebSocket to build long
connection
with the clients, adopts the WebSocket to receive messages and the message
topics sent by
the clients, and synchronizes the topic messages to the clients, wherein the
server adopts the
map container to record identities of one or more clients corresponding to
each message
topics to identify the corresponding clients, receives and sends the topic
message of the
message topics to the clients through the clients' correspondingly long
connection.
18. A system comprising:
a message management distribution cluster;
a message middleware;
wherein the message management distribution cluster includes a plurality of
servers,
wherein a server is configured to:
receive messages and message topics sent by clients;
publish the messages and message topics to message middleware, wherein the
message middleware is a distribution message cache center, wherein the
message middleware receives messages and message topics published by the
server;
subscribe topic messages associated with the message topics in the message
middleware;
26
Date Recue/Date Received 2023-08-02

push the topic messages synchronously to the clients when the topic messages
associated with the message topics are subscribed from the message
middleware, wherein the server obtains the topic messages published by the
server by subscribing the topic messages of the message topics from the
message middleware;
wherein the message middleware is configured to:
receive the topic messages from the server in the message management
distribution cluster; and
accept a subscription to the message topics published by the server in the
message management distribution cluster.
19. The system of claim 18, wherein the plurality of servers in the message
management
distribution cluster are distributed connections, wherein each server is
deployed with a spring
boot microservice structure, and the message middleware is a distributed
message cache
center.
20. The system of claim 18, wherein a storage container of key-value pairs are
set in the server,
wherein keys of the storage container is configured to:
record the message topics from the server;
corresponding values of the keys of the storage container is configured to:
record the clients' identities of microservice requests, wherein the
microservice
requests send the message topics to the server, wherein the server identifies
a
clients' long connections through the clients' identities; and
send the topic messages to the clients with the message topics through a long
connection.
27
Date Recue/Date Received 2023-08-02

21. The system of claim 20, wherein the message middleware includes a
plurality of databases,
wherein the databases constitute a distributed message cache center
constituted by a Redis
cluster.
22. The system of claim 21, wherein a map container is set in the server in
the message
management distribution cluster, wherein the server includes a long connection
message
publication mechanism, and wherein the long connection message publication
mechanism
includes a WebSocket, wherein the server adopts the WebSocket to build long
connection
with the clients, adopts the WebSocket to receive messages and the message
topics sent by
the clients, and synchronizes the topic messages to the clients, wherein the
server adopts the
map container to record identities of one or more clients corresponding to
each message
topics to identify the corresponding clients, receives and sends the topic
message of the
message topics to the clients through the clients' correspondingly long
connection.
23. The system of claim 22, wherein the message management distribution
cluster deploys a
plurality of service machines by microservice form and implements code to
achieve the
subscription of the topic messages of message topics in the message middleware
and publish
the messages and the message topics sent by the clients.
24. The system of claim 23, wherein each client builds the long connection
with a plurality of
servers in the message management distribution cluster though a polling
distribution method.
25. The system of claim 24, wherein microservice 1 and microservice 2 are
respectively referred
to two different servers in the message management distribution cluster,
wherein each server
maintains the connection relationships with the clients in the manner of one
message topic
maintained by one connection maintenance, wherein each server maintains all
connections
between current server and the clients, and responsible for receiving all
messages from the
clients and forwarding and synchronizing the messages from the other clients.
26. A device comprising:
28
Date Recue/Date Received 2023-08-02

a memory, wherein the memory includes a non-volatile storage medium and an
internal
memory, wherein the non-volatile storage medium stores an operate system, a
computer
program, and a database, wherein the internal memory provides an environment
for the
operating of the operate system and computer program in the non-volatile
storage
medium;
a processor;
a network interface, configured to connect with external terminals to receive
message
topics sent by clients and topic messages associated with the message topics;
the database;
the computer program stored in the memory and executed by the processor
configured to:
receive messages and the message topics sent by the clients;
publish the messages and the message topics to a message middleware,
wherein a server subscribes the messages and the message topics from the
message middleware, wherein the message middleware is a distribution
message cache center, wherein the message middleware receives messages and
message topics published by the server;
subscribe the topic messages associated with the message topics in the message

middleware, wherein the message middleware receives the topic messages
published by the server, wherein the server obtains the topic messages
published by the server by subscribing the topic messages of the message
topics from the message middleware; and
push the topic message synchronously to the clients, when the message
middleware subscribes one of any topic messages associated with the message
topics.
27. The device of claim 26 further comprises:
29
Date Recue/Date Received 2023-08-02

building a long connection with the clients;
generating clients' identities of the clients;
associating the long connection with the clients' identities;
the messages and the message topics sent by the clients comprises:
receiving the messages and the message topics sent by the clients through the
long connection;
synchronously pushing the topic message to the clients comprises:
determining the long connection according to the clients' identities; and
pushing the topic message synchronously to the clients through the long
connection.
28. The device of claim 27, wherein there are a plurality of clients, and the
clients include a first
client and a second client.
29. The device of claim 28, wherein building the long connection with the
clients, generating the
clients' identities of the clients, and associating the long connection with
the clients'
identities comprises:
building a first long connection with the first client;
building a second long connection with the second client;
generating a first identity of the first client;
generating a second identity of the second client; and
associating the first long connection with the first identity and associating
the second
long connection with the second identity.
Date Recue/Date Received 2023-08-02

30. The device of claim 29, wherein the long connection receives the messages
and the message
topics sent by the clients comprising:
receiving the messages and the message topics sent by the first client through
the first
long connection; and
receiving the messages and the message topics sent by the second client
through the
second long connection.
31. The device of claim 30, wherein determining the long connection according
to the clients'
identities and pushing the topic message synchronously to the clients through
the long
connection comprises:
determining the first long connection according to the first identity;
pushing the topic message synchronously to the first client through the first
long
connection;
determining the second long connection according to the second identity; and
pushing the topic message synchronously to the second client through the
second long
connection.
32. The device of claim 31, further comprises:
creating a storage container of key-value pairs;
using keys of the storage container to record the message topics;
using the values corresponding to the keys to record the first identity of the
first client
and the second identity of the second client;
determining the first long connection according to the first identity;
pushing the topic message synchronously to the first client through the first
long
connection;
31
Date Recue/Date Received 2023-08-02

determining the second long connection according to the second identity;
pushing the topic message synchronously to the second client through the
second long
connection comprising:
determining target keys of the storage container according to the message
topics when the topic messages associated with the message topics are
subscribed from the message middleware;
determining the corresponding values according to the target keys;
determining the first identity and the second identity according to the
corresponding values;
determining the first long connection according to the first identity;
pushing the topic message synchronously to the first client through the first
long connection;
determining the second long connection according to the second identity; and
pushing the topic message synchronously to the second client through the
second long connection.
33. The device of claim 32, wherein the topic messages associated with message
topic includes
data information obtained by any operations on the message topics from the
other servers,
wherein the other servers publish the topic messages to the message
middleware, and the
server reads the topic messages from the message middleware by subscribing the
topic
messages associated with the message topics in the message middleware.
34. The device of claim 33, wherein the long connection maintains the message
topic of the
clients.
32
Date Recue/Date Received 2023-08-02

35. The device of claim 34, wherein the server subscribes the topic messages
associated with the
message topics from the message middleware, searches for the clients
associated with the
message topics and the long connection corresponding to the clients in a local
server and
sends the topic messages to the corresponding clients through the
corresponding long
connection.
36. The device of claim 35, wherein the storage container of the key-value
pairs is a map
container.
37. The device of claim 36, wherein subscribing the topic messages of the
message topics, the
server searches in the map container to determine the clients corresponding to
the message
topics, then pushing the subscribed topic messages to the clients, wherein the
server
generates unique client identity for each client, and the server maintains the
long connection
associated with the clients' identities and then saves to a local map after
mapping the clients'
identities and the message topics, wherein the keys are message topics id the
clients
followed, and wherein values are the connection list corresponding to the
clients.
38. The device of claim 37, wherein the map container is set in the server in
a message
management distribution cluster, wherein the server includes a long connection
message
publication mechanism, and wherein the long connection message publication
mechanism
includes a WebSocket function, wherein the server adopts the WebSocket to
build long
connection with the clients, adopts the WebSocket to receive messages and the
message
topics sent by the clients, and synchronizes the topic messages to the
clients, wherein the
server adopts the map container to record identities of one or more clients
corresponding to
each message topics to identify the corresponding clients, receives and sends
the topic
message of the message topics to the clients through the clients'
correspondingly long
connection.
33
Date Recue/Date Received 2023-08-02

39. A method comprising:
receiving messages and message topics sent by clients;
publishing the messages and the message topics to a message middleware, where
a server
subscribes the messages and the message topics from the message middleware,
wherein
the message middleware is a distribution message cache center, wherein the
message
middleware receives messages and message topics published by the server;
subscribing topic messages associated with the message topics in the message
middleware, wherein the message middleware receives the topic messages
published by
the server, wherein the server obtains the topic messages published by the
server by
subscribing the topic messages of the message topics from the message
middleware; and
pushing the topic message synchronously to the clients, when the message
middleware
subscribes one of any topic messages associated with the message topics.
40. The method of claim 39 further comprises:
building a long connection with the clients;
generating clients' identities of the clients;
associating the long connection with the clients' identities;
the messages and the message topics sent by the clients comprises:
receiving the messages and the message topics sent by the clients through the
long connection;
synchronously pushing the topic message to the clients comprises:
determining the long connection according to the clients' identities; and
pushing the topic message synchronously to the clients through the long
connection.
34
Date Recue/Date Received 2023-08-02

41. The method of claim 40, wherein there are a plurality of clients, and the
clients include a first
client and a second client.
42. The method of claim 41, wherein building the long connection with the
clients, generating
the clients' identities of the clients, and associating the long connection
with the clients'
identities comprises:
building the first long connection with the first client;
building the second long connection with the second client;
generating a first identity of the first client;
generating a second identity of the second client; and
associating the first long connection with the first identity and associating
the second
long connection with the second identity.
43. The method of claim 42, wherein the long connection receives the messages
and the message
topics sent by the clients comprising:
receiving the messages and the message topics sent by the first client through
the first
long connection; and
receiving the messages and the message topics sent by the second client
through the
second long connection.
44. The method of claim 43, wherein deteimining the long connection according
to the clients'
identities and pushing the topic message synchronously to the clients through
the long
connection comprises:
determining the first long connection according to the first identity;
pushing the topic message synchronously to the first client through the first
long
connection;
Date Recue/Date Received 2023-08-02

determining the second long connection according to the second identity; and
pushing the topic message synchronously to the second client through the
second long
connection.
45. The method of claim 44, further comprises:
creating a storage container of key-value pairs;
using keys of the storage container to record the message topics;
using the values corresponding to the keys to record the first identity of the
first client
and the second identity of the second client;
determining the first long connection according to the first identity;
pushing the topic message synchronously to the first client through the first
long
connection;
determining the second long connection according to the second identity;
pushing the topic message synchronously to the second client through the
second long
connection comprising:
determining target keys of the storage container according to the message
topics when the topic messages associated with the message topics are
subscribed from the message middleware;
determining the corresponding values according to the target keys;
determining the first identity and the second identity according to the
corresponding values;
determining the first long connection according to the first identity;
36
Date Recue/Date Received 2023-08-02

pushing the topic message synchronously to the first client through the first
long connection;
determining the second long connection according to the second identity; and
pushing the topic message synchronously to the second client through the
second long connection.
46. The method of claim 45, wherein the topic messages associated with message
topic includes
data information obtained by any operations on the message topics from the
other servers,
wherein the other servers publish the topic messages to the message
middleware, and any
server reads the topic messages from the message middleware by subscribing the
topic
messages associated with the message topics in the message middleware.
47. The method of claim 46, wherein the long connection maintains the message
topic of the
clients.
48. The method of claim 47, wherein the server subscribes the topic messages
associated with
the message topics from the message middleware, searches for the clients
associated with the
message topics and the long connection corresponding to the clients in a local
server and
sends the topic messages to the corresponding clients through the
corresponding long
connection.
49. The method of claim 48, wherein the storage container of the key-value
pairs is a map
container.
50. The method of claim 49, wherein subscribing the topic messages of the
message topics, the
server searches in the map container to determine the clients corresponding to
the message
topics, then pushing the subscribed topic messages to the clients, wherein the
server
generates unique client identity for each client, and the server maintains
a/the long
connection associated with the clients' identities and then saves to a local
map after mapping
the clients' identities and the message topics, wherein the keys are message
topics id the
clients followed, and wherein values are the connection list corresponding to
the clients.
37
Date Recue/Date Received 2023-08-02

51. The method of claim 50, wherein the map container is set in the server in
a message
management distribution cluster, wherein the server integrated thelong
connection message
publication mechanism, and wherein the long connection message publication
mechanism
includes a WebSocket function, wherein the server adopts the WebSocket to
build long
connection with the clients, adopts the WebSocket to receive messages and the
message
topics sent by the clients, and synchronizes the topic messages to the
clients, wherein the
server adopts the map container to record identities of one or more clients
corresponding to
each message topics to identify the corresponding clients, receives and sends
the topic
message of the message topics to the clients through the clients'
correspondingly long
connection.
52. A computer readable physical memory having stored thereon a computer
program executed
by a computer configured to:
receive messages and message topics sent by clients;
publish the messages and the message topics to a message middleware, where a
server
subscribes the messages and the message topics from the message middleware,
wherein
the message middleware is a distribution message cache center, wherein the
message
middleware receives messages and message topics published by the server;
subscribe topic messages associated with the message topics in the message
middleware,
wherein the message middleware receives the topic messages published by the
server,
wherein the server obtains the topic messages published by the server by
subscribing the
topic messages of the message topics from the message middleware; and
push the topic message synchronously to the clients, when the message
middleware
subscribes one of any topic messages associated with the message topics.
53. The memory of claim 52, further comprises:
building a long connection with the clients;
38
Date Recue/Date Received 2023-08-02

generating clients' identities of the clients;
associating the long connection with the clients' identities;
the messages and the message topics sent by the clients comprises:
receiving the messages and the message topics sent by the clients through the
long connection;
synchronously pushing the topic message to the clients comprises:
determining the long connection according to the clients' identities; and
pushing the topic message synchronously to the clients through the long
connection.
54. The memory of claim 53, wherein there are a plurality of clients, and the
clients include a
first client and a second client.
55. The memory of claim 54, wherein building the long connection with the
clients, generating
the clients' identities of the clients, and associating the long connection
with the clients'
identities comprises:
building the first long connection with the first client;
building the second long connection with the second client;
generating a first identity of the first client;
generating a second identity of the second client; and
associating the first long connection with the first identity and associating
the second
long connection with the second identity.
56. The memory of claim 55, wherein the long connection receives the messages
and the
message topics sent by the clients comprising:
39
Date Recue/Date Received 2023-08-02

receiving the messages and the message topics sent by the first client through
the first
long connection; and
receiving the messages and the message topics sent by the second client
through the
second long connection.
57. The memory of claim 56, wherein determining the long connection according
to the clients'
identities and pushing the topic message synchronously to the clients through
the long
connection comprises:
determining the first long connection according to the first identity;
pushing the topic message synchronously to the first client through the first
long
connection;
determining the second long connection according to the second identity; and
pushing the topic message synchronously to the second client through the
second long
connection.
58. The memory of claim 57, further comprises:
creating a storage container of key-value pairs;
using keys of the storage container to record the message topics;
using the values corresponding to the keys to record the first identity of the
first client
and the second identity of the second client;
determining the first long connection according to the first identity;
pushing the topic message synchronously to the first client through the first
long
connection;
determining the second long connection according to the second identity;
Date Recue/Date Received 2023-08-02

pushing the topic message synchronously to the second client through the
second long
connection comprising:
determining target keys of the storage container according to the message
topics when the topic messages associated with the message topics are
subscribed from the message middleware;
determining the corresponding values according to the target keys;
detemnning the first identity and the second identity according to the
corresponding values;
determining the first long connection according to the first identity;
pushing the topic message synchronously to the first client through the first
long connection;
determining the second long connection according to the second identity; and
pushing the topic message synchronously to the second client through the
second long connection.
59. The memory of claim 58, wherein the topic messages associated with message
topic includes
data information obtained by any operations on the message topics from the
other servers,
wherein the other servers publish the topic messages to the message
middlewaxe, and any
server reads the topic messages from the message middleware by subscribing the
topic
messages associated with the message topics in the message middleware.
60. The memory of claim 59, wherein the long connection maintains the message
topic of the
clients.
41
Date Recue/Date Received 2023-08-02

61. The memory of claim 60, wherein the server subscribes the topic messages
associated with
the message topics from the message middleware, searches for the clients
associated with the
message topics and the long connection corresponding to the clients in a local
server and
sends the topic messages to the corresponding clients through the
corresponding long
connection.
62. The memory of claim 61, wherein the storage container of the key-value
pairs is a map
container.
63. The memory of claim 62, wherein subscribing the topic messages of the
message topics, the
server searches in the map container to determine the clients corresponding to
the message
topics, then pushing the subscribed topic messages to the clients, wherein the
server
generates unique client identity for each client, and the server maintains
a/the long
connection associated with the clients' identities and then saves to a local
map after mapping
the clients' identities and the message topics, wherein the keys are message
topics id the
clients followed, and wherein values are the connection list corresponding to
the clients.
64. The memory of claim 63, wherein the map container is set in the server in
a message
management distribution cluster, wherein the server integrated the long
connection message
publication mechanism, and wherein the long connection message publication
mechanism
includes a WebSocket function, wherein the server adopts the WebSocket to
build long
connection with the clients, adopts the WebSocket to receive messages and the
message
topics sent by the clients, and synchronizes the topic messages to the
clients, wherein the
server adopts the map container to record identities of one or more clients
corresponding to
each message topics to identify the corresponding clients, receives and sends
the topic
message of the message topics to the clients through the clients'
correspondingly long
connection.
42
Date Recue/Date Received 2023-08-02

Description

Note: Descriptions are shown in the official language in which they were submitted.


INFORMATION SYNCHRONIZATION METHOD, SYSTEM, APPARATUS, COMPUTER DEVICE
AND STORAGE MEDIUM
Field
[0001] The present disclosure relates to the field of information processing
technology and particularly to an
information synchronization method, system, apparatus, computer device and
storage medium.
Background
[0002] Currently the information synchronization among a plurality of clients
is widely used in various
industry related to computer. The traditional approach of a plurality of
clients' information synchronization is
shown in Figure 1. Figure 1 shows the information synchronization mechanism
between two clients, to achieve
the information synchronization between the client 1 and the client 2, the
connections with back-end server A
are requested respectively, the back-end server A is requested to maintain the
message topics from a plurality
of clients. The client 1 and client 2 send the messages to the same back-end
server. The back-end server A is
requested to maintain all the clients' connections associated with the topic.
For example, the client 1 sends the
message which needs to be forwarded to client 2, client 2 send the message
which needs to be forwarded to
client 1. When there are a plurality of clients, single back-end server A will
be overwhelmed. If there is another
message topic needs to be synchronized, the maintenance of a plurality of
clients from back-end server A will
become very complicated and difficult.
[0003] Therefore, the traditional way of information synchronization has the
following problems: if the
server maintains a plurality of message topics, the maintenance of a plurality
of clients connect to different
servers will be difficult, the planning of the server capacity will be
difficult. When a single server
synchronously forwards information, it is difficult to ensure the real-time
information due to the limitation of
server's 10 and CPU's memory.
Invention Content
[0004] Based on this, in response to the above technical problems, providing
an information synchronization
1
Date Recue/Date Received 2021-09-27

method, system, apparatus, computer device and storage medium that adopts the
message topic publishing
and subscription to achieve real-time information synchronization without
information synchronization and
forwarding in the same server.
[0005] An information synchronization method, wherein the method includes:
receiving the messages and
message topics sent by the clients, publishing the messages and the message
topics to the message middleware,
so that any server subscribes the messages and the message topics from the
message middleware; Subscribing
the topic messages associated with the message topics in the message
middleware, the message middleware
is used to receive the topic messages published by any server; In one of the
implementations, the method also
includes: establishing a long connection with the clients, generating the
clients' identities of the clients;
associating the long connection with the clients' identities; receiving the
messages and message topics sent by
the clients, including: receiving the messages and the message topics sent by
the clients through the long
connection; pushing the topic messages to the clients synchronously,
including: determining the long
connection according to the clients' identities, publishing the topic messages
to the clients synchronously
through the long connection.
[0006] In one of the implements, there are a plurality of clients, wherein the
clients include a first client and
a second client; establishing a long connection with the clients, generating
the clients' identities of the clients;
associating the long connection with the clients' identities, including:
establishing the first long connection
with the first client, establishing the second long connection with the second
client; generating the first identity
of the first client, and generating the second identity of the second client;
and the first long connection is
associated with the first identity, the second long connection is associated
with the second identity; the
messages and the message topics sent by the clients are received through the
long connection, including:
receiving the messages and the message topics sent by the first client through
the first long connection, and
receiving the messages and the message topics sent by the second client
through the second long connection;
determining the long connection according to the clients' identities, and
pushing the topic messages to the
clients synchronously through the long connection, including: determining the
first long connection according
to the first identity, pushing the topic message synchronously to the first
client through the first long
connection; determining the second the long connection according to the second
identity, pushing the topic
message synchronously to the second client through the second long connection.
2
Date Recue/Date Received 2021-09-27

[0007] In one of the implements, the current method also includes: creating a
storage container of the key-
value pairs, using the keys of the storage container to record the message
topics, and using the values
corresponding to the keys to record the first identity of the first client and
the second identity of the second
client; determining the first long connection according to the first identity,
and pushing the topic messages to
the first client synchronously through the first long connection, determining
the second long connection
according to the second identity, and pushing the topic messages synchronously
to the second client through
the second long connection, including: when subscribing the topic message
associated with the message topics
from the message middleware, the target keys of the storage container are
determined according to the message
topics, the corresponding values are determined according to the target key,
determining the first identity and
second identity according to the corresponding values, determining the first
long connection according to the
first identity, pushing the topic messages synchronously to the first client
through the first long connection,
determining the second long connection according to the second identity,
pushing the topic message
synchronously to the second client through the second long connection.
[0008] An information synchronization system, where in the system includes a
message management
distribution cluster and a message middleware; the message management
distribution cluster includes a
plurality of servers, wherein one of any servers is used to receive the
messages and the message topics sent
by the clients, publish the messages and the message topics to the message
middleware, and subscribe the
topic messages associated with the message topics in the message middleware,
when the topic messages
associated with the message topics are subscribed from the message middleware,
the topic messages are
synchronously pushed to the clients; the message middleware is used to receive
the topic messages published
by any server in the message management distribution cluster, and accept the
subscription of the message
topics from the server in the message management distribution cluster.
[0009] In one of the implements, a plurality of servers in the message
management distribution cluster are
distributed connections, each server is deployed using a spring boot
microservice structure, the message
middleware is a distributed message cache center.
[0010] In one of the implements, one of any servers is provided with a storage
container of the key-value
pairs, the keys of the storage container are used to record the message topics
received by the server, the
corresponding values of the keys of the storage container are used to record
the clients' identities which send
3
Date Recue/Date Received 2021-09-27

the message topics by microservice requests to the server, the server
identifies the clients' long connection
through the clients' identities, and send the topic messages associated with
the message topics to the clients
through the long connection.
[0011] An information synchronization apparatus, wherein the apparatus
includes a receiving module
configured to receive the messages and message topics sent by the clients, and
publish the messages and the
message topics to the message middleware, so that any server subscribes the
messages and the message topics
from the message middleware, and the message middleware is used to receive the
topic messages pushed by
any server; a synchronization module configured to subscribe the topic
messages associated with the message
topics subscribed from message middleware, push the topic message to the
clients synchronously.
[0012] A computer device comprises a memory, a processor, and a computer
program stored in the memory
and executed by the processor, wherein the computer program is executed by the
processor to perform any
steps of the above-mentioned methods.
[0013] A computer readable storage medium stored with computer program,
perform any steps of the
methods mentioned above when the processor executes the computer program.
[0014] The above information synchronization method, system, apparatus,
computer device and the storage
medium, the server receives the messages and the message topics sent by the
clients, and publish the messages
and the message topics to the message middleware, so that the server can
subscribe the messages and the
message topics from the message middleware; meanwhile, subscribes the topic
messages associated with the
message topics in the message middleware, and the message middleware is used
to receive the topic messages
published by the server. When subscribing the topic message associated with
the message topics from the
message middleware, pushing the topic message to the clients synchronously.
Which concludes that the server
pushes the clients' message topics and subscribes the topic messages related
to the message topics through the
message middleware, and achieving the information synchronization of the
message topics by forwarding the
topic messages associated with the same message topics without using a single
server, when maintaining a
plurality of the message topics, the server capacity can be quicky expanded by
controlling a plurality of clients
to connect to different servers. Meanwhile, there is no need to achieve the
information synchronization and
forwarding in the same server, and the real-time information synchronization
can be achieved without the
4
Date Recue/Date Received 2021-09-27

limitation of the server's TO and CPU memory during the information
synchronization procedures.
Brief Description of the Drawings
[0015] The Figure 1 is the traditional information interaction diagram of a
plurality of clients' information
synchronization.
[0016] The Figure 2 is an implementation of the schematic structural diagram
of the information
synchronization system.
[0017] The Figure 3 is an implementation of the process diagram of the
information synchronization method.
[0018] The Figure 4 is an implementation of the information interaction
diagram between the clients and
one server or a plurality of servers.
[0019] The Figure 5 is an implementation of the structural diagram of the map
container storage information
in the server.
[0020] The Figure 6 is an implementation of the display diagram when plural
people edit an online document.
[0021] The Figure 7 is an implementation of the schematic structural diagram
of the mapping storage in the
server.
[0022] The Figure 8 is an implementation of information interaction diagram of
the topic messages
associated with the editing message topics in the document subscribed from the
distributed memory message
center by the server.
[0023] The Figure 9 is an implementation of the schematic diagram of the model
for achieving the
information synchronization.
[0024] The Figure 10 is another implementation of the display diagram of
plural people edit an online
Date Recue/Date Received 2021-09-27

document.
[0025] The Figure 11 is an implementation of the structural diagram of the
information synchronization
apparatus.
[0026] The Figure 12 is an implementation of the internal structure of the
computer device.
Detailed Description of an Embodiment
[0027] In order to make the current application's purposes, technical
solutions, and advantages clearer, the
present disclosure is further explained in detail with a particular
embodiment, and with reference to the
drawings. It shall be appreciated that these descriptions are only intended to
be illustrative, but not to limit the
scope of the disclosure thereto.
[0028] An information synchronization system provided by the current
application. The information
synchronization system is one method of the information synchronization to
achieve the current application.
Specifically, as shown in Figure 2, the information synchronization system
includes a message management
distribution cluster 102 and a message middleware 202. the message management
distribution cluster 102
includes a plurality of servers. A plurality of servers are distributed
connections, and each server is deployed
with spring boot microservice structure. Which means a microservice structure
is specifically adopted to
deploy a plurality of servers in the message management distribution cluster
102. A plurality of clients
respectively publish the messages to the message management distribution
cluster 102, and the message
management distribution cluster 102 respectively synchronizes messages to a
plurality of clients. Specifically,
the message management distribution cluster 102 includes a plurality of
servers, any server is used to receive
the messages and the message topics sent by the clients, publish the messages
and the message topics to the
message middleware 202, and subscribe the topic messages associated with the
message topics from the
message middleware 202. When the topic messages associated with the message
topics are subscribed from
the message middleware 202, the topic messages are synchronously pushed to the
corresponding clients. The
message middleware 202 is used to receive the topic messages published by any
server in the message
management distribution cluster 102 and accept subscriptions of the message
topics from any server in the
message management distribution cluster 102. Among them, the message
middleware 202 can include a
6
Date Recue/Date Received 2021-09-27

plurality of databases, wherein the databases constitute a distributed message
cache center. Specifically, the
message middleware 202 can be a distributed message cache center constituted
by a Redis cluster.
[0029] In an implementation, any server in the message management distribution
cluster 102 is set with a
storage container of key-value pairs, and the keys of the storage container
are used to record the message
topics received by any server, and the keys of the storage container
corresponds to the values are used to
record the identities of the clients that send microservice requests for the
message topics to any server. Any
server recognizes the clients' long connection through the clients' identities
and sends the topic messages of
the message topics to the clients through the long connection.
[0030] Specifically, a map container is set in any server in the message
management distribution cluster 102.
Any server integrated the long connection message publication mechanism, and
the specific long connection
message publication mechanism includes the WebSocket function. Any server
adopts WebSocket to build
long connection with the clients, adopts WebSocket to receive messages and the
message topics sent by the
clients, and synchronizes the topic messages to the clients. Any server adopts
the map container to record the
identity of one or more clients corresponding to each message topics to
identify the correspondingly clients,
receives and sends the topic message of the message topics to the clients
through the clients' correspondingly
long connection.
[0031] Therefore, the adoption of information caching in the message
middleware for the information
subscription and publishing achieves the real-time information
synchronization. Meanwhile, since the clients
does not necessarily connect to the same designated back-end server to
synchronously publish the topic
messages of the message topics through the special algorithm, the back-end
server can be continuously
expanded to meet the requests of many clients' connections at the same time.
Furthermore, there is no need to
continuously maintain a single server, and only need to estimate the number of
clients to correspondingly
expand the servers in the message management distribution cluster 102, which
greatly improves the support
capability of information synchronization.
[0032] In one implementation, as shown in Figure 3, the current application
provides an information
synchronization method, which is applied to the message management
distribution cluster 102 in Figure 2,
including the following steps:
7
Date Recue/Date Received 2021-09-27

[0033] S102, receiving the messages and the message topics sent by the
clients, and publishing the messages
and the message topics to the message middleware, so that any server can
subscribe the messages and the
message topics from the message middleware.
[0034] In the current implementation, the message management distribution
cluster 102 deploys a plurality
of service machines by microservice form and implements code to achieve the
subscription of the topic
messages of message topics in the message middleware and publish the messages
and the message topics sent
by the clients. The clients build a long connection with the back-end server
message management distribution
cluster 102 through a long connection and carry the followed message topics.
Specifically, each client can
build a long connection with a plurality of servers in the message management
distribution cluster 102 though
a polling distribution method, as shown in Figure 4. Among them, microservice
1 and microservice 2 are
respectively referred to two different servers in the message management
distribution cluster 102. Each server
maintains the connection relationships with the clients in the manner of one
message topic maintained by one
connection maintenance. Each server maintains all connections between the
current server and the clients, and
responsible for receiving all messages from the clients and forwarding and
synchronizing the messages from
the other clients.
[0035] In the current implementation, any server in the message management
distribution cluster 102
receives the messages and the message topics sent by the clients, and
synchronously publishes the messages
and the message topics to the message middleware. The message middleware is
used to receive the message
topics published by any server in the message management distribution cluster
102 and the topic messages
associated with the message topics published by any server. The message
middleware is also used to accept
information subscriptions from any server in the message management
distribution cluster 102. When any
server publishes the message topics to the message middleware, the other
servers can synchronously subscribe
the topic messages associated with the message topics from the message
middleware. Therefore, the
information synchronization of the message topics is achieved.
[0036] S104, subscribing the topic messages associated with the message topics
in the message middleware,
wherein the message middleware is used to receive the topic messages published
by any server.
8
Date Recue/Date Received 2021-09-27

[0037] In the current implementation, any server can not only publish the
messages and the message topics
to the message middleware, but also can synchronously obtain the topic
messages published by the other
servers by subscribing the topic messages of the message topics from the
message middleware. Among them,
the topic messages associated with message topic includes data information
obtained by any operations on the
message topics from the other servers. The other servers publish the topic
messages to the message middleware,
and any server reads the topic messages from the message middleware by
subscribing the topic messages
associated with the message topics in the message middleware.
[0038] For instance, the message topics can be an online document, and the
topic messages associated with
the message topics can be any operate information on the online document A by
any client. Such as the data
information filled in the online document A, the data's modified information
of the document A. Therefore,
the information synchronization of the message topics can be achieved.
[0039] S106, publishing the topic messages to the clients synchronously when
subscribing the topic message
associated with the message topics from the message middleware,
[0040] In the current implementation, when any server subscribes the topic
message associated with the
message topics from the message middleware, the topic messages are
synchronized to the correspondingly
clients. Specifically, any server builds WebSocket connections with the
clients, receives the message topics
sent by the clients through the WebSocket connections, and synchronously
pushes the topic messages to the
clients through the WebSocket connections. Therefore, the information
synchronization is achieved.
[0041] In the above information synchronization method, any server receives
the message topics sent by the
clients and publishes the message topics to the message middleware, so that
any server subscribes the message
topics from the message middleware; meanwhile, subscribing the topic messages
associated with the message
topics in the message middleware, the message middleware is used to receive
the topic messages published
by any server. When having subscribed the topic messages associated with the
message topics in message
middleware, pushing the topic messages to the clients synchronously. Which can
be seen that the server uses
the message middleware to achieve the publication of the clients' message
topics and the topic messages
associated with the subscribed message topic, without using a single server to
achieve the forwarding of the
topic messages of the same message topics, then achieving the information
synchronization of the message
9
Date Recue/Date Received 2021-09-27

topics, when maintaining a plurality of message topics, the server can be
quickly expanded by the controlling
of the connections between a plurality of clients and different servers.
Meanwhile, there is no need to achieve
the information forwarding and synchronization in the same server, and the
real-time information
synchronization can be achieved without the limitation of the server's TO and
CPU memory during the
information synchronization procedures.
[0042] In an implementation, before S102, also includes building the long
connection with the clients,
generating the clients' identities of the clients, associating the long
connection with the clients' identities.
S102 includes receiving the message and message topics sent by the clients
through the long connection. S106
includes determining the long connection according to the clients' identities,
and synchronously pushing the
topic message to the clients through the long connection.
[0043] In the current implementation, the server builds a communication with
the clients through a long
connection and associates the long connection with the clients. A long
connection maintains a message topic
of the clients. When the server subscribes the topic messages of the message
topics and determines the clients
corresponding to the subscribed message topics, and then determines the
corresponding long connection
according to the clients' identities and pushes the topic messages to the
clients synchronously through the long
connection. Therefore, the synchronization of the topic messages with the
message topics can be achieved.
Specifically, between the clients and the server, WebSocket is used as the
message publication mechanism for
the long connection. The clients integrate the WebSocket function, and the
server also achieves the WebSocket
message receiving function.
[0044] In an implementation, there are a plurality of clients, and a plurality
of clients include a first client
and a second client. Building a long connection with the clients, generating
the clients' identities of the clients,
and associating the long connection with the clients' identities, including:
building the first long connection
with the first client, and building the second long connection with the second
client; generating the first identity
of the first client, generating the second identity of the second client;
associating the first identity with the first
long connection, and associating the second identity with the second long
connection. Receiving the messages
and the message topics sent by the clients through the long connection
including receiving the messages and
the message topics sent by the first client through the first long connection
and receiving the messages and the
message topics sent by the second client through the second long connection.
Determining the long connection
Date Recue/Date Received 2021-09-27

according to the clients' identities and pushing the topic messages to the
clients synchronously through the
long connection including determining the first long connection according to
the first identity, and
synchronously pushing the topic messages to the first client through the first
long connection; determining the
second long connection according to the second identity, and synchronously
pushing the topic messages to
the second client through the second long connection.
[0045] In the current implementation, the server can receive the messages and
the message topics sent by a
polarity of clients, and then sends the messages and the message topics to the
message middleware, so that the
other servers can subscribe the topic messages of the message topics from the
message middleware. At this
time, the server needs to maintain the topic messages of the message topics
sent by a plurality of clients.
Specifically, the server builds a long connection with the first client and
the second client respectively, the
first long connection is associated with the first client, and the second
client is associated with the second long
connection. The way of association can be the generation of the identity of
each client and establishing the
association between the identity and the long connection. When the server
receives the messages and the
message topics sent by the first client through the first long connection, it
records the relationship between the
message topics and the first long connection. When the server receives the
messages and the message topics
sent by the second client through the second long connection, it records the
relations of the topic messages
and the message topics with the second long connection. When the server
subscribes the topic messages
associated with the message topics from the message middleware, searches for
the clients associated with the
message topics and the long connection corresponding to the clients in the
local server and sends the topic
messages to the corresponding clients through the corresponding long
connection. Therefore, the server can
connect to a plurality of clients in a balanced way, so that each server can
handle a certain number of
connections and messages publishing jobs. At this time the server can fully
take advantage of the internal
resources of TO, CPU, and memory in the local server, and then achieves the
efficient information publishing.
[0046] In an implementation, before S106, which further includes creating a
storage container for key-value
pairs, using the keys of the storage container to record the message topics,
and using the values corresponding
to the keys to record the first identity of the first client and the second
identity of the second client. Determining
the first long connection according to the first identity, pushing the topic
messages synchronously to the first
client through the first long connection, determining the second long
connection according to the second
identity, pushing the topic messages synchronously to the second client
through the second long connection,
11
Date Recue/Date Received 2021-09-27

which includes: when associating the topic message with the message topics
from the message middleware,
determining the storage container's keys according to the message topics,
determining the corresponding
values according to the target keys, determining the first identity and the
second identity according to the
corresponding values, determining the first long connection according to the
first identity and pushing the
topic messages synchronously to the first client through the first long
connection, determining the second long
connection according to the second identity and pushing the topic messages
synchronously to the second client
through the second long connection.
[0047] In the current implementation, the storage container of the key-value
pairs can be map container. As
shown in Figure 5, the 'key' in the map container represents the keys, 'value'
represents the values. Key-value
pairs are associated. The keys are used to record the message topics, and the
values corresponding to the keys
are used to record the clients' identities corresponding to the message
topics. When subscribing the topic
messages of the message topics, the server can search in the internal map
container to determine the clients
corresponding to the message topics, then pushing the subscribed topic
messages to the clients. Specifically,
the server generates the unique client identity for each client, and the
server maintains a long connection
associated with the clients' identities. And then saves to the local map after
mapping the clients' identities and
the message topics, the keys are the message topics id that the clients
followed, values are the connection list
corresponding to the clients. When the clients get the latest messages, that
is when subscribing the topic
messages of the message topics, searching the map container through the
message topics id to get the clients
which connects to the message topics, and pushing the topic messages to the
clients through each clients' long
connection.
[0048] For instance, the internal map container of both the server 1 and
server 2 store the identity information
of each client who builds the long connection with the container. Assuming
that there are two servers that can
support 1000 clients' connections, Redis cluster is used as the message
middleware, Redis cluster can meet
the demand of reading and writing, assuming that QPS is 1 w/s. When the number
of clients connections
increases to 10,000, the number of servers can increase linearly to 20, and
one Redis server as the Redis cluster
can also meet the demand. Similarly, when the number of clients connections
increases to 1,000,000, the
number of servers can increase linearly to 2,000. Assuming that the writing
request is 100,000/s and the
synchronization information to be pushed is 1,000,000, then the Redis cluster
will be expanded to 10 master
servers and 100 sub servers. The messages are evenly published to the Redis
cluster by hash modulo. Currently,
12
Date Recue/Date Received 2021-09-27

the number of the servers is 2,000, and subscribing the Redis cluster to
synchronize the messages can meet
the real-time requests. Therefore, there is no need to continuously maintain a
single server and only need to
estimate the number of the clients to achieve the correspondingly expand of
the server and the message
middleware, which greatly improves the support capabilities of the information
synchronization.
[0049] For the above-mentioned information synchronization method and the
information synchronization
system that achieves the method, a specific implementation scenario is
provided as below:
[0050] Specifically, the editing of online documents by a polarity of people
is used as a specific application
of the present disclosure, as shown in Figure 6.
[0051] Currently, there are two clients co-editing the file 'New Excel
Document'. User A acts as client A
and user B acts as client B. Client A edits the document cell D1 and sends the
edited data to the message
management distribution cluster, collectively referred
to below as
DCMMCDistributedConnectionMessageManagerCluster. The message format(mesagel)
of data sent by a
client is as bellow:
{
"baseRevision": 12,
"cli entsId": "cb1f27afef924e78a118ec6abbb3dfa3",
"docId ": "16538",
[0052]
"content": "[{"sheetName": "Sheetl", "row": 0, "col": 3, "opType":
"editCell", "value": " edit
cell 1", "valueType" : {}, "validator" : {}, "valudeClass": "string", "multi":
falsell",
"errorCode": "0",
"opType": "editCell",
"sheetName": "Sheetl"
1
[0053] Whenever a new client goes online, the client will build a long
WebSocket connection with DCMMC.
DCMMC assigns a client's identity (client id). DCMMC is responsible for
managing the long connection of
each client, using the mapping of the map to save the client connection which
editing the same document. The
13
Date Recue/Date Received 2021-09-27

structure is shown in Figure 7.
[0054] Should be noted that each server in the DCMMC has an independent map
container to manage the
connection structure.
[0055] Each time when a server is added to the DCMMC, the server will
subscribe the information of the
message topics from the message middleware. The message middleware can adopt
Redis to achieve the
distributed memory message center, and the server subscribes the distributed
memory message center to edit
the topic messages of the message topics in the document. For example, as
shown in Figure 8. Assuming the
server A receives a message (messagel) sent by client A. Server A publishes
messagel to the Redis channel
through the subscribed message topic. At this time, each server in DCMMC will
receive the messagel
published by the server A. According to the connection management mapping map
container maintained by
this server, the other servers will find the corresponding connection
WebSocket of the clients B according to
the docId of the message topic and push the messagel to the clients B.
[0056] Among them, DCMMC adopts Redis as an implementation and pushes high-
performance messages
to one to N clients by the memory, the model is shown in the Figure 9.
Finally, the clients B receives the
pushed messagel which displays in the cell, as shown in Figure 10.
[0057] An information synchronization method and an information
synchronization system of the present
application achieve the high performance and unlimited multi-terminal
information synchronization in the
clients, distributed memory cache is used to achieve low latency of
information, message publishing and
subscription are used to achieve unlimited expansion of the clients, the full-
duplex communication protocol
is used to achieve non-blocking information synchronization between front-end
and back-end, each client can
participate in the information synchronization of a plurality of message
topics at the same time.
[0058] Should understand that although the various steps in the diagram are
displayed in sequences as
indicated by the arrows, the steps are not necessarily performed in sequence
in the order indicated by the
arrows. Unless there is a clear description in this article, there is no
strict order for the execution of these steps,
and these steps can be executed in another order. In addition, at least parts
of the steps in the drawings can
include a plurality of sub-steps or a plurality of stages. These sub-steps or
stages are not necessarily executed
14
Date Recue/Date Received 2021-09-27

at the same time but can be executed at different time. The execution order of
these sub-steps or stages is also
not necessarily sequential, the execution order can be performed alternately
with the other steps or other sub-
steps or at least one part of the stages.
[0059] The current application also provides an information synchronization
apparatus, as shown in Figure
11, the apparatus includes receiving module 10, subscription module 20 and
synchronization module 30. The
receiving module 10 is configured to receive messages and the message topics
sent by the clients, and publish
the messages and the message topics to the message middleware, so that any
server message middleware can
subscribe the messages and message topics; the subscription 20 is configured
to subscribe the topic messages
associated with the message topics in the message middleware, the message
middleware is used to receive the
topic messages published by any server; the synchronization module 30 is
configured to push the topic
messages synchronously to the clients when subscribing the topic messages
associated with the message topics
from the message middleware.
[0060] In one of the implementations, the information synchronization
apparatus also includes an associated
module for building the long connection with the clients and generating the
clients' identities of the clients,
associating the long connection with the clients' identities. The receive
module 10 is specifically used to
receive messages and the message topics sent by the clients through the long
connection. The synchronization
module 30 is specifically used to determine the long connection according to
the clients' identities, and
synchronously push the topic messages to the clients through the long
connection.
[0061] In one of the implementations, there are a plurality of clients, and
the a plurality of clients include a
first client and a second client; The association module is specifically used
to build the first long connection
with the first client and build the second long connection with the second
client; generate the first identity of
the first client, generate the second identity of the second client; associate
the first long connection with the
first identity, associate the second long connection with the second identity;
The receive module 10 is
specifically used to receive the messages and the message topics sent by the
first client through the first long
connection, and the messages and message topics sent by the second client
through the second long connection;
the synchronization module 30 is specifically used to determine the first long
connection according to the first
identity and push the topic message according to the first long connection;
determine the second long
connection according to the second identity and push the topic message to the
second client according to the
Date Recue/Date Received 2021-09-27

second long connection.
[0062] In one of the implementations, the information synchronization
apparatus also includes the creation
module for creating the storage container of key-value pairs, using the keys
of the storage container to record
the message topics, and using the values corresponding to the keys to record
the first client's first identity and
the second client's second identity; the synchronization module 30 is
specifically used to determine the target
keys of the storage container according to the message topics when subscribing
the topic messages associated
with the message topics from the message middleware, and determine the
corresponding values according to
the target keys, determine the first and second identity according to the
corresponding values, determine the
first long connection according to the first identity and synchronously push
any topic message to the first client
through the first long connection, determine the second long connection
according to the second identity and
synchronously push any topic message to the second client through the second
long connection.
[0063] For the specific limitation of the information synchronization
apparatus, could refer to the above
limitation of the information synchronization methods which will not be
repeated here. Each module in the
above information synchronization apparatus can be implemented in whole or in
part by software, hardware
and both software and hardware combinations. The above modules can be embedded
in the form of hardware
or independently in the processor of the computer device or can be stored in
the memory of the computer
device in the form of software, so that the processor can call and execute the
operations corresponding to the
above modules.
[0064] In one implementation, a computer device is provided. The computer
device can be a server, and its
internal structure diagram is shown in Figure 12. The computer device includes
processor, memory, network
interface, and database. Among them, this computer device's processor is used
to provide calculation and
control capabilities. The memory of the computer device includes a non-
volatile storage medium and an
internal memory. The non-volatile storage medium stores an operate system, a
computer program, and a
database. The internal memory provides an environment for the operating of the
operate system and computer
program in the non-volatile storage medium. A network interface of the
computer device is used to connect
with the external terminal to receive the message topics sent by the clients
and the topic messages associated
with the message topics. The computer program is executed by the processor to
achieve the methods of the
information synchronization.
16
Date Recue/Date Received 2021-09-27

[0065] Those skilled in the art can understand that the structure shown in
Figure 12 is only a part of the
structure diagram related to the current application's solution and does not
constitute a limitation on the
computer device to which the solution of the current application is applied.
The specific computer device can
include more or fewer components than that shown in the figure, or combine
certain components, or have
different components arrangements.
[0066] In one implementation, a computer device is provided, including a
memory, a processor and a
computer program stored on the memory and ran on the processor, and the
processor implements the following
steps when the computer program is executed: receiving the messages and the
message topics sent by the
clients, publishing the messages and the message topics to the message
middleware, so that any server
subscribes the messages and the message topics from the message middleware;
subscribing the topic messages
associated with message topics in the message middleware, and the message
middleware is used to receive
the topic messages published by any server; When the topic messages associated
with the message topics are
subscribed from the message middleware, the topic message is synchronously
pushed to the clients.
[0067] In one of the implementations, when the processor executes the computer
program, the following
steps are implemented: building the long connection with the clients to
generate the clients' identities of the
clients; associating the long connection with the clients' identities; when
the processor executes the computer
program to achieve the above receiving the messages and the message topics
sent by the clients, the following
steps are specifically implemented: receiving the messages and the message
topics sent by the clients through
the long connection. When the processor executes the computer program to
implement any step of the above-
mentioned synchronously pushing the topic messages to the clients, the
following steps are specifically
implemented: determine a long connection according to the clients' identities,
and synchronously pushing any
topic message to the clients through the long connection.
[0068] In one of the implementations, there are a plurality of clients, and a
plurality of clients include a first
client and a second client; when the processor executes the computer program
to implement the above-
mentioned steps of building long connection with the clients, generating the
clients' identities, and associating
the long connection with the clients' identities, it specifically implemented
following steps: build the first long
connection with the first client, build the second long connection with the
second client; generating the first
17
Date Recue/Date Received 2021-09-27

client's identity of the first client and generating the second client's
identity of the second client; associating
the first long connection with first identity and associating the second long
connection with the second identity.
When the processor executes the computer program to implement the above-
mentioned steps of receiving the
messages and the message topics sent by the clients through the long
connection, the following steps are
specifically implemented: receiving the message and message topics sent by the
first client through the first
long connection, receiving the messages and the message topics sent by the
second client through the second
long connection; the processor executes the computer program to implement the
above-mentioned steps of
determining the long connection according to the clients' identities, and
pushing any topic message
synchronously to the clients through the long connection, the following steps
are specifically implemented:
the first identity determines the first long connection and pushes any topic
message to the first client
synchronously through the first long connection; determining the second long
connection according to the
second identity and pushing any topic message to the second client
synchronously through the second long
connection.
[0069] In one of the implementations, when the processor executes the computer
program, the following
steps are implemented: creating a storage container of key-value pairs, using
the keys of the storage container
to record the message topics, and using the values corresponding to the keys
to record the first identity of the
first client and the second identity of the second client; the processor
executes the computer program to achieve
the above-mentioned of determining the first long connection according to the
first identity and pushing any
topic message synchronously to the first client through the first long
connection, determining the second long
connection according to the second identity and pushing any topic message
synchronously to the second client
through the second long connection, the following steps are specifically
implemented: when subscribing any
topic message associated with the message topics from the message middleware,
determining the target keys
of the storage container according to the message topics, determining the
corresponding values according to
the target keys and determining the first identity and second identity
according to the corresponding values,
determining the first long connection according to the first identity, pushing
any topic message synchronously
to the first client through the first connection, determining the second long
connection according to the second
identity, pushing any topic message synchronously to the second client through
the second connection.
[0070] In one implementation, a computer readable storage medium is provided,
on which a computer
program is stored. When the computer program is executed by a processor, the
following steps are
18
Date Recue/Date Received 2021-09-27

implemented: receiving the message topics sent by the clients and publish the
message topics to the message
middleware, so that any server subscribes the message topics from the message
middleware; subscribing the
topic messages associated with the message topics in the message middleware,
and the message middleware
is used to receive the topic messages published by any server; When
subscribing any topic message associated
with the message topics from the message middleware, pushing any topic message
synchronously to the clients.
[0071] In one of the implementations, the following steps are implemented when
the processor executes the
computer program: building the long connection with the clients' identities
and generating the clients'
identities of the clients; associating the long connection with the clients'
identities; when the processor
executes the computer program to achieve the above-mentioned steps of
receiving the message topics sent by
the clients, the specific steps are implemented as following: receiving the
message topics sent by the clients
through the long connection. The computer program is executed by the processor
to achieve the above-
mentioned of pushing any topic message synchronously, the following steps are
specifically implemented:
determining the long connection according to the clients' identities and push
any topic message synchronously
to the clients through the long connection.
[0072] In one of the implementations, there are a plurality of clients, and a
plurality of clients include a first
client and a second client; when the processor executes the computer program
to implement the above-
mentioned of building the long connection with the clients, generating the
clients' identities of the clients and
associating the long connection with clients' identities, the following steps
are specifically implemented:
building the first long connection with the first client and building the
second long connection with the second
client; generating the first identity of the first client and generating the
second identity of the second client;
associating the first long connection with the first identity and associating
the second long connection with
the second identity. When the processor executes the computer program to
achieve the above-mentioned steps
of receiving the message topics sent by the clients through the long
connection, the following steps are
specifically implemented: receiving the message topics sent by the first
client through the first long connection
and receiving the message topics sent by the second client through the second
long connection; when the
computer program is executed by the processor to implement the above-mentioned
steps of determining the
long connection according to the clients' identities and pushing any topic
message synchronously to the clients
through the long connection, the following steps are specifically implemented:
determining the first long
connection according to the first identity, pushing any topic message
synchronously to the first client through
19
Date Recue/Date Received 2021-09-27

the first long connection; determining the long connection according to the
second identity, push any topic
message synchronously to the second client through the second long connection.
[0073] In one of the implementations, when the computer program is executed by
the processor, the
following steps are implemented: creating a storage container of the key-value
pairs, using the keys of the
storage container to record the message topics and using the values
corresponding to the keys to record the
first identity of the first client and the second identity of the second
client; when the computer program is
executed by the processor to achieve the above-mentioned of determining the
first connection according to
the first identity, pushing any topic message to the first client through the
first connection, determining the
second connection according to the second identity and pushing any topic
message to the second client through
the second connection, the following steps are specifically implemented: when
any topic message associated
with the message topics is subscribed from the message middleware, the target
keys of the storage container
are determined according to the message topics, and the corresponding values
are determined according to the
target keys. Determining the first identity and the second identity according
to the corresponding values,
determining the first long connection according to the first identity, pushing
any topic message synchronously
to the first client through the first long connection, and determining the
second long connection according to
the second identity, pushing any topic message synchronously to the second
client through the second long
connection.
[0074] The ordinary skilled in the art can understand that all or parts of the
procedures in the above-
mentioned implementation methods, which can be implemented by instructing
related hardware through the
computer program. The computer program can be stored in the readable storage
medium of the non-volatile
computer, when the computer program is executed, it can include the procedures
of the implementations of
the above-mentioned methods. Among them, in the implementations provided in
the application, any reference
to memory, storage, database or other media can include non-volatile and/or
volatile memory. Non-volatile
can include read only memory (ROM), programable ROM (PROM), electrically
programmable ROM
(EPROM), electrically erasable programmable ROM (EEPROM), or flash memory.
Volatile memory can
include random access memory (RAM) or external cache memory. As an instruction
but not a limitation,
RAM is available in many forms, such as static RAM (SRAM), dynamic RAM (DRAM),
synchronous DRAM
(SDRAM), double data rate SDRAM (DDRSDRAM), enhanced type SDRAM (ESDRAM),
synchronous link
(Synchlink) DRAM (SLDRAM), memory bus (Rambus) direct RAM (RDRAM), direct
memory bus dynamic
Date Recue/Date Received 2021-09-27

RAM (DRDRAM), and the memory bus dynamic RAM (RDRAM), etc.
[0075] The technical features of the above-mentioned implementations can be
randomly combined, for
concisely statement, not all possible combinations of technical features in
the above-mentioned
implementations are described. However, if there are no conflicts in the
combinations of these technical
features, it shall be within the scope of this descriptions.
[0076] The above-mentioned implementations are only several implementations in
this disclosure, whose
description is more specific and detailed, but cannot be understood as the
limitation of the scope of the
invention patent. Evidently those ordinary skilled in the art can make various
modifications and variations to
the disclosure without departing from the spirit and scope of the disclosure.
Therefore, the appended claims
are intended to be construed as encompassing the described embodiment and all
the modifications and
variations coming into the scope of the disclosure.
21
Date Recue/Date Received 2021-09-27

Representative Drawing
A single figure which represents the drawing illustrating the invention.
Administrative Status

For a clearer understanding of the status of the application/patent presented on this page, the site Disclaimer , as well as the definitions for Patent , Administrative Status , Maintenance Fee  and Payment History  should be consulted.

Administrative Status

Title Date
Forecasted Issue Date 2023-11-07
(22) Filed 2021-09-27
(41) Open to Public Inspection 2022-03-29
Examination Requested 2022-04-28
(45) Issued 2023-11-07

Abandonment History

There is no abandonment history.

Maintenance Fee

Last Payment of $100.00 was received on 2023-12-15


 Upcoming maintenance fee amounts

Description Date Amount
Next Payment if small entity fee 2025-09-29 $50.00
Next Payment if standard fee 2025-09-29 $125.00

Note : If the full payment has not been received on or before the date indicated, a further fee may be required which may be one of the following

  • the reinstatement fee;
  • the late payment fee; or
  • additional fee to reverse deemed expiry.

Patent fees are adjusted on the 1st of January every year. The amounts above are the current amounts if received by December 31 of the current year.
Please refer to the CIPO Patent Fees web page to see all current fee amounts.

Payment History

Fee Type Anniversary Year Due Date Amount Paid Paid Date
Application Fee 2021-09-27 $408.00 2021-09-27
Advance an application for a patent out of its routine order 2022-04-28 $508.98 2022-04-28
Request for Examination 2025-09-29 $814.37 2022-04-28
Maintenance Fee - Application - New Act 2 2023-09-27 $100.00 2023-06-15
Final Fee 2021-09-27 $306.00 2023-09-21
Maintenance Fee - Patent - New Act 3 2024-09-27 $100.00 2023-12-15
Owners on Record

Note: Records showing the ownership history in alphabetical order.

Current Owners on Record
10353744 CANADA LTD.
Past Owners on Record
None
Past Owners that do not appear in the "Owners on Record" listing will appear in other documentation within the application.
Documents

To view selected files, please enter reCAPTCHA code :



To view images, click a link in the Document Description column. To download the documents, select one or more checkboxes in the first column and then click the "Download Selected in PDF format (Zip Archive)" or the "Download Selected as Single PDF" button.

List of published and non-published patent-specific documents on the CPD .

If you have any difficulty accessing content, you can call the Client Service Centre at 1-866-997-1936 or send them an e-mail at CIPO Client Service Centre.


Document
Description 
Date
(yyyy-mm-dd) 
Number of pages   Size of Image (KB) 
New Application 2021-09-27 7 227
Description 2021-09-27 21 1,250
Claims 2021-09-27 4 165
Abstract 2021-09-27 1 23
Drawings 2021-09-27 6 892
Representative Drawing 2022-03-29 1 11
Cover Page 2022-03-29 1 47
Request for Examination / Amendment / Special Order 2022-04-28 26 941
Claims 2022-04-28 21 743
Acknowledgement of Grant of Special Order 2022-06-02 1 187
Examiner Requisition 2022-06-30 6 285
Amendment 2022-10-28 57 1,959
Claims 2022-10-28 22 1,070
Drawings 2022-10-28 8 460
Examiner Requisition 2022-12-28 6 297
Amendment 2023-04-28 51 1,848
Claims 2023-04-28 22 1,103
Examiner Requisition 2023-06-21 6 241
Amendment 2023-08-02 50 1,846
Claims 2023-08-02 21 1,089
Final Fee 2023-09-21 3 66
Representative Drawing 2023-10-20 1 16
Cover Page 2023-10-20 1 51
Electronic Grant Certificate 2023-11-07 1 2,527