Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
CONFIGURING A PUBLISHER DEVICE OF A PUBLISH-SUBSCRIBE SYSTEM
Document Type and Number:
WIPO Patent Application WO/2021/201870
Kind Code:
A1
Abstract:
A method is described in which data identifying a publisher device is used to select topics from a library of topics. Configuration data is then sent to the publisher device, which includes the selected topics. In response to the configuration data, the publisher device publishes messages on the selected topics to a message broker of a publish-subscribe system.

Inventors:
GONZALEZ PUERTA SERGIO DANIEL (ES)
ASENSIO BUCHACA JOSEP M (ES)
MULTARI ANNAROSA (ES)
Application Number:
PCT/US2020/026419
Publication Date:
October 07, 2021
Filing Date:
April 02, 2020
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HEWLETT PACKARD DEVELOPMENT CO (US)
International Classes:
H04L29/06
Foreign References:
KR102093314B12020-03-25
US20200007518A12020-01-02
US20060047666A12006-03-02
US8140630B22012-03-20
Attorney, Agent or Firm:
WOODWORTH, Jeffrey C. et al. (US)
Download PDF:
Claims:
CLAIMS

What is claimed is:

1. A method comprising: storing a library of topics; receiving identifier data identifying a publisher device; selecting topics from the library based on the received identifier data; and sending configuration data to the publisher device, the configuration data comprising the selected topics, wherein the publisher device in response to the configuration data publishes messages on the selected topics to a message broker of a publish-subscribe system.

2. A method as claimed in claim 1, wherein the configuration data comprises an address of the message broker, and the publisher device uses the address to connect to the message broker.

3. A method as claimed in claim 1 , wherein the publisher device publishes a message on a connectivity topic, and the method comprises subscribing to the connectivity topic, and determining a connectivity status of the publisher device based on the message published on the connectivity topic.

4. A method as claimed in claim 1 , wherein the method comprises: storing the library on a second computing device; receiving the identifier data at a first computing device; sending the identifier data from the first computing device to the second computing device; selecting topics from the library at the second computing device; sending the selected topics from the second computing device to the first computing device; and sending the configuration data from the first computing device to the publisher device.

5. A method as claimed in claim 4, wherein the first computing device comprises the message broker.

6. A method as claimed in claim 1 , wherein the method comprises: receiving further identifier data for a further publisher device; selecting further topics from the library based on the received further identifier data; sending further configuration data to the further publisher device, the further configuration data comprising the selected further topics, wherein the further publisher device in response to the further configuration data publishes messages on the selected further topics to the message broker.

7. A method as claimed in claim 1 , wherein the publisher device is a printing device and the messages comprise telemetry data relating to the printing device.

8. A non-transitory storage medium storing instructions that, when executed by a processor of a computing device, cause the computing device to: receive identifier data via an interface of the computing device, the identifier data identifying a publisher device; obtain selected topics from a library of topics based on the received identifier data; and send configuration data to the publisher device, the configuration data comprising the selected topics, wherein the publisher device in response to the configuration data publishes messages on the selected topics to a message broker of a publish-subscribe system.

9. A non-transitory storage medium as claimed in claim 8, wherein in obtaining the selected topics, the computing device is caused to: send the identifier data to a further computing device; and receive the selected topics from the further computing device, wherein the further computing device stores the library of topics and selects topics from the library based on the identifier data received from the computing device.

10. A non-transitory storage medium as claimed in claim 8, wherein the instructions, when executed by the processor, further cause the computing device to: provide a message broker; and the configuration data comprises an address of the message broker.

11. A non-transitory storage medium as claimed in claim 8, wherein the publisher device publishes a message on a connectivity topic, and the instructions, when executed by the processor, further cause the computing device to: subscribe to the connectivity topic; and determine a connectivity status of the publisher device based on the message published on the connectivity topic.

12. A publisher device comprising: an interface to receive configuration data; and a messaging client, wherein the configuration data comprises a list of topics and the messaging client publishes messages on the selected topics to a message broker of a publish-subscribe system.

13. A publisher device as claimed in claim 12, wherein the configuration data comprises an address of the message broker, and the messaging client uses the address to connect to the message broker.

14. A publisher device as claimed in claim 12, wherein the messaging client publishes a message on a connectivity topic.

15. A publisher device as claimed in claim 12, wherein the publisher device is a printing device and the messages comprise telemetry data relating to the printing device.

Description:
CONFIGURING A PUBLISHER DEVICE OF A PUBLISH-SUBSCRIBE SYSTEM

BACKGROUND

[0001] In a publish-subscribe system, messages from a publisher are distributed to subscribers via a message broker. A publisher may publish messages on a number of topics, and a subscriber may subscribe to topics that are of interest.

BRIEF DESCRIPTION OF THE DRAWINGS [0002] Figure 1 is a block diagram of an example publish-subscribe system; [0003] Figure 2 is a flowchart of an example method of configuring a publisher device;

[0004] Figure 3 is a flowchart of a further example method of configuring a publisher device;

[0005] Figure 4 is a block diagram of a further example of a publish-subscribe system;

[0006] Figure 5 is a flowchart of a still further example method of configuring a publisher device; and

[0007] Figure 6 is an example implementation of the publish-subscribe system of Figure 1.

DETAILED DESCRIPTION

[0008] Figure 1 shows an example of a publish-subscribe system 10. The system 10 comprises a first computing device 20, a second computing device 30, a plurality of publisher devices 40, and a plurality of subscriber devices 50. The first computing device 20 is connected to the second computing device 30 and to each of the publisher devices 40 and the subscriber devices 50.

[0009] The system 10 employs a publish-subscribe messaging protocol, such as MQTT or the like, in order to transport messages from the publisher devices 40 to the subscriber devices 50.

[0010] Each of the devices 20,30,40,50 comprises a processor 21 ,31 ,41 ,51 , a non-transitory storage medium 22,32,42,52, and a communications interface 23,33,43,53. The storage medium stores instructions for execution by the processor. The storage medium may be any electronic, magnetic, optical, or other physical storage device capable of storing instructions and other data that may be read by the processor. For example, the storage medium may comprise a memory device, a storage drive, an optical disc, or the like.

[0011] The storage medium 22 of the first computing device 20 stores instructions, which when executed by the processor 21, provide a message broker 25 and a configurator 26. The message broker 25 maintains a list of topics and subscribers that have subscribed to the topics. When a publisher device 40 publishes a message on a topic, the message broker 25 distributes the message to each subscriber device 50 that has subscribed to that topic. The configurator 26 configures the publisher devices 40 and is described below in more detail.

[0012] The storage medium 32 of the second computing device 30 stores instructions, which when executed by the processor 31, provide a topic selector 35. Additionally, the storage medium 32 stores a library of topics 36. As explained below, during the configuration of a publisher device 40, the topic selector 35 selects topics from the library of topics 36 based on the identity of the publisher device 40.

[0013] The storage medium 42 of each publisher device 40 comprises instructions, which when executed by the processor 41, provide a publishing client 45. Additionally, the storage medium 42 stores a list of selected topics 46, and the address 47 of the message broker 25 of the first computing device 20. The publishing client 45 publishes messages on the selected topics 46 to the message broker 25. In response, the message broker 25 distributes the messages to those subscriber devices 50 that have subscribed to the topics. [0014] The storage medium 52 of each subscriber device 50 comprises instructions, which when executed by the processor 51, provide a subscriber client 55. The subscriber client 55 connects to the message broker 25 of the first computing device 20 and subscribes to topics of interest on which the publisher devices 40 publish. [0015] When a new publisher device 40 is added to the publish-subscribe system 10, the publisher device 40 may be configured for use with the system 10.

[0016] Figure 2 is an example method 100 of configuring a publisher device 40. The method 100 comprises storing 110 a library of topics. The library of topics may comprise topics for use with a number of different publisher devices. The method 100 further comprises receiving 120 identifier data identifying the publisher device 40 to be configured. The identifier data may comprise the model, part number, serial number and/or any other such data that may be used to identify the publisher device 40. The method 100 then comprises selecting 130 topics from the library based on the identifier data. Topics are therefore selected from the library based on the identify of the publisher device 40. The method 100 then comprises sending 140 configuration data to the publisher device 40. The configuration data comprises the selected topics. [0017] In response to receiving the configuration data, the publisher device 40 publishes messages on the selected topics to a message broker. More particularly, the publisher device 40 may store the selected topics 46 to the storage medium 42. The publisher client 45 then publishes messages on the selected topics 46 that are stored on the storage medium 42.

[0018] The configuration data may additionally comprise the address of a message broker. The publisher device 40 may then use the address to connect to the message broker.

[0019] The publisher device 40 may publish a message (e.g. “online”) on a connectivity topic (e.g. /DeviceJD/telemetry/connectivity). The connectivity topic may form part of the selected topics 46 included in the configuration data. Alternatively, the connectivity topic may be a default topic on which the publisher device 40 publishes a message upon connecting to a message broker. The method 100 may then comprise subscribing 150 to the connectivity topic, and determining 160 the connectivity status of the publisher device 40 based on messages published on the connectivity topic. By subscribing to a topic on which the publisher device 40 publishes, the method 100 is able to determine if the publisher device 40 has successfully connected to the message broker. If the publisher device 40 has not successfully connected to the message broker, the method 100 may comprise resending 170 the configuration data to the publisher device 40.

[0020] The publisher device 40 may publish a further message (e.g. “offline”) on the connectivity topic in the event that the broker address is subsequently changed on the publisher device 40. For example, the further message may be published as part of a last will and testament of the publisher device 40. In response to the further message, the method 100 may determine 160 that the publisher device 40 is no longer connected to the message broker and resend 170 the configuration data to the publisher device 40. Accordingly, in the event that the broker address used by the publisher device 40 is changed, either innocently or surreptitiously, the configuration data may be resent to the publisher device 40 and the connection with the appropriate message broker may be restored.

[0021] Figure 3 is an example of how the method of Figure 2 may be implemented using the publish-subscribe system 10 of Figure 1. The method 200 of Figure 3 comprises storing 210 the library of topics on the second computing device 30. For example, the library of topics 36 may be stored on the storage medium 32 of the second computing device 30. The method 200 further comprises receiving 220 the identifier data at the first computing device 20. The identifier data may be received via a user interface (not shown) of the first computing device 20. For example, a user may input the details of the publisher device 40 using the user interface. Alternatively, the identifier data may be received from the publisher device 40 via the communications interface 23. For example, upon connecting to the first computing device 20, the publisher device 40 may send identifier data to the first computing device 20. The method 200 further comprises sending 230 the identifier data from the first computing device 20 to the second computing device 30. For example, the configurator 26 of the first computing device 20 may send the identifier data to the second computing device 30. The method 200 then comprises selecting 240 topics from the library based on the received identifier data at the second computing device 30, and sending 250 the selected topics from the second computing device 30 to the first computing device 20. For example, the topic selector 35 of the second computing device 30 may select topics from the library 36 and send the selected topics to the first computing device 20. The method 200 further comprises sending 250 the configuration data from the first computing device 20 to the publisher device 40. For example, the configurator 26 may send the configuration data to the publisher device 40. As noted above, the configuration data comprises the selected topics and may additionally comprise the address of the message broker 25 of the first computing device 20. The method 200 may also comprise subscribing 270 at the first computing device 20 to a connectivity topic of the publisher device 40, and determining 280 at the first computing device 20 a connectivity status of the publisher device 40. For example, the configurator 26 may subscribe to the connectivity topic via the message broker 25 of the first computing device 20 and may determine the connectivity status of the publisher device 40 based on messages (e.g. “online”, “offline”) published on the connectivity topic. If it is determined that the publisher device 40 is not connected to the message broker, the method 200 may comprise resending 290 the configuration data from the first computing device 20 to the publisher device 40. For example, the configurator 26, upon determining that the publisher device 40 is not connected to the message broker, may resend the configuration data.

[0022] Figure 4 shows a further example of a publish-subscribe system 300. In this further example, the second computing device 30 is omitted, and the storage medium 22 of the first computing device 20 stores a library of topics 37. [0023] With the publish-subscribe system 300 of Figure 4, the first computing device 20 may alone perform the method of Figure 2. For example, a library of topics 37 may be stored on the storage medium 22 of the first computing device 20. After receiving the identifier data (e.g. via an interface of the first computing device 20), the configurator 26 may select topics from the library of topics 37, and send configuration data to the publisher device 40.

[0024] Figure 5 is an example of a method 400 that may be implemented by a computing device. More particularly, a storage medium of the computing device may store instructions that, when executed by a processor of the computing device, cause the computing device to perform the method of Figure 5. The method 400 may be performed by the first computing device 20, and in particular by the configurator 26, of the publish-subscribe systems 10,300 of Figures 1 and 4.

[0025] The computing device receives 410 identifier data via an interface of the computing device. The identifier data identifies a publisher device to be configured. The identifier data may, for example, be received from a user via a user interface of the computing device or from the publisher device via a communications interface of the computing device. The computing device then obtains 420 selected topics from a library of topics based on the received identifier data, and sends 430 configuration data to the publisher device. The configuration data comprises the selected topics and may additionally comprise the address of a message broker. In response to receiving the configuration data, the publisher device publishes messages on the selected topics to the message broker. Additionally, where the configuration data comprises the address of a message broker, the publisher device may use the address to connect to the message broker.

[0026] As noted above, the publisher device may publish messages on a connectivity topic. The computing device may therefore subscribe 440 to the connectivity topic in order to determine 450 the connectivity status of the publisher device. In the event that the computing device determines 450 that the publisher device is not connected to the message broker, the computing device may resend 460 the configuration data to the publisher device.

[0027] In obtaining the selected topics, the computing device may send 421 the identifier data to a further computing device, and receive 422 the selected topics from the further computing device. The further computing device then stores the library of topics and selects topics from the library based on the identifier data received from the computing device. This then resembles the method performed by the first computing device 20 of the publish-subscribe system 10 of Figure 1. Alternatively, in obtaining the selected topics, the computing device may store 423 the library of topics (e.g. on a storage medium of the computing device) and select 424 topics from the library based on the received identifier data. This then resembles the method performed by the first computing device of the publish-subscribe system 300 of Figure 4.

[0028] Figure 6 is an example implementation of the publish-subscribe system 10 of Figure 1. The system 500 of Figure 6 comprises the first computing device 20, the second computing device 30, a plurality of publisher devices 60, and a plurality of subscriber devices 70,80.

[0029] The publisher devices are printing devices 60 and the messages published by the printing devices 60 comprise telemetry data relating to the printing devices. The telemetry data may comprise data relating to usage of the printing device, such as the status and progress of a print job, the name and type of file being printed, the media being used etc. The telemetry data may comprise data relating to the printing device itself, such as the model and serial number of the device, the age of the device, the total printing time of the device, the status of consumables (e.g. levels of printing fluid or power), temperature of a printhead, temperature of a print bed (e.g. for a 3D printing device) etc.

[0030] The subscriber devices comprise a first subscriber device in the form of a desktop computing device 70, and a second subscriber device in the form of a mobile device 80. Each of the subscriber devices 70,80 may subscribe to topics on which the printing devices 60 publish messages. For example, a user may select topics on the subscriber client using, for example, a user interface. Messages published by the printing device may then be displayed by the subscriber client on a display of the subscriber device.

[0031] With the systems and methods described in the examples above, a publisher device may be added to a publish-subscribe system and configured remotely. By configuring the publisher device remotely, the need for a user or service engineer to visit and configure the publisher device locally may be avoided.

[0032] The library of topics may comprise topics for different types of publisher device. Accordingly, the library may store topics that are inappropriate for a particular publisher device. By selecting topics from the library based on the identity of the publisher device, topics may be selected that are appropriate for the publisher device.

[0033] A publisher device may be capable of publishing messages on a number of different topics. However, the owner, manufacturer, user or other party of the publisher device may wish to limit the number of topics on which the publisher device publishes. For example, the owner of a publisher device may wish to limit the number of topics for reasons of confidentiality or to reduce bandwidth and/or minimize potential bottlenecks at the message broker. In a further example, the publisher device may be capable of publishing on topics that are normally disabled (i.e. not selected) but which may be temporarily enabled (i.e. selected) in order to service or repair the publisher device. By selecting topics from the library based on the identity of the publisher device, the type of data (i.e. messages) published by the publisher device can be controlled.

[0034] The identifier data of the publisher device may include data that identifies that owner or user of the publisher device. For example, a serial number or other unique identifier may be used to identify the owner or user of the publisher device. In this way, different topics may be selected for different owners or users of the same publisher device.

[0035] By storing a library of topics, changes to the selected topics of a publisher device may be more easily made. Any changes to the library may be automatically applied to the affected publisher devices. Where the library is stored on the second computing device, any changes to the library may be pushed out to the relevant first computing device. The first computing device may then send new configuration data, with the revised selected topics, to the affected publisher devices. Alternatively, the first computing device may periodically poll the second computing device for any changes to the library. As a further example, the first computing device may periodically send identifier data of the connected publisher devices to the second computing device, receive selected topics (whether revised or not) from the second computing device, and then send configuration data to each of the publisher devices. By automatically applying any changes that are made to the library, publisher devices may be updated with a different list of selected topics without the need to visit or otherwise locally configure the publisher devices.

[0036] The second computing device of the systems 10,500 illustrated in Figures 1 and 6 may be connected to a plurality of first computing devices, and a single library may serve all the first computing devices. Accordingly, changes to the library made be rolled out to different owners, users or customers over different sites and locations.

[0037] In the example systems 10,300,500 described above, the message broker 25 and the configurator 26 are provided on a single computing device 20. The configurator 26 is then able to determine the address of the message broker 25, and include this in the configuration data sent to the publisher devices 40, without any user involvement. Conceivably, however, the message broker 25 and the configurator 26 may be provided on separate computing devices, and the address of the message broker 25 may be provided to the configurator 26.

[0038] The preceding description has been presented to illustrate and describe examples of the principles described. This description is not intended to be exhaustive or to limit these principles to any precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is to be understood that any feature described in relation to any one example may be used alone, or in combination with other features described, and may also be used in combination with any features of any other of the examples, or any combination of any other of the examples.