WO2021201870A1 - Configuring a publisher device of a publish-subscribe system - Google Patents

Configuring a publisher device of a publish-subscribe system Download PDF

Info

Publication number
WO2021201870A1
WO2021201870A1 PCT/US2020/026419 US2020026419W WO2021201870A1 WO 2021201870 A1 WO2021201870 A1 WO 2021201870A1 US 2020026419 W US2020026419 W US 2020026419W WO 2021201870 A1 WO2021201870 A1 WO 2021201870A1
Authority
WO
WIPO (PCT)
Prior art keywords
topics
computing device
publisher
configuration data
publisher device
Prior art date
Application number
PCT/US2020/026419
Other languages
French (fr)
Inventor
Sergio Daniel GONZALEZ PUERTA
Josep M. ASENSIO BUCHACA
Annarosa Multari
Original Assignee
Hewlett-Packard Development Company, L.P.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett-Packard Development Company, L.P. filed Critical Hewlett-Packard Development Company, L.P.
Priority to PCT/US2020/026419 priority Critical patent/WO2021201870A1/en
Publication of WO2021201870A1 publication Critical patent/WO2021201870A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services

Definitions

  • 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.
  • Figure 1 is a block diagram of an example publish-subscribe system
  • Figure 2 is a flowchart of an example method of configuring a publisher device
  • Figure 3 is a flowchart of a further example method of configuring a publisher device
  • Figure 4 is a block diagram of a further example of a publish-subscribe system
  • Figure 5 is a flowchart of a still further example method of configuring a publisher device.
  • Figure 6 is an example implementation of the publish-subscribe system of Figure 1.
  • 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.
  • 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.
  • a publish-subscribe messaging protocol such as MQTT or the like
  • 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.
  • the storage medium may comprise a memory device, a storage drive, an optical disc, or the like.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • the publisher device 40 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • the further message may be published as part of a last will and testament of the publisher device 40.
  • 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.
  • 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.
  • 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.
  • a user may input the details of the publisher device 40 using the user interface.
  • the identifier data may be received from the publisher device 40 via the communications interface 23.
  • 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.
  • 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.
  • 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.
  • the configurator 26 may send the configuration data to the publisher device 40.
  • 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.
  • 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.
  • the configurator 26, upon determining that the publisher device 40 is not connected to the message broker may resend the configuration data.
  • Figure 4 shows a further example of a publish-subscribe system 300.
  • the second computing device 30 is omitted, and the storage medium 22 of the first computing device 20 stores a library of topics 37.
  • the first computing device 20 may alone perform the method of Figure 2.
  • a library of topics 37 may be stored on the storage medium 22 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • the computing device may resend 460 the configuration data to the publisher device.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • a publisher device may be capable of publishing messages on a number of different topics.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • the first computing device may periodically poll the second computing device for any changes to the library.
  • 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.
  • 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.
  • 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.
  • 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.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

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.

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.

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.
PCT/US2020/026419 2020-04-02 2020-04-02 Configuring a publisher device of a publish-subscribe system WO2021201870A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2020/026419 WO2021201870A1 (en) 2020-04-02 2020-04-02 Configuring a publisher device of a publish-subscribe system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2020/026419 WO2021201870A1 (en) 2020-04-02 2020-04-02 Configuring a publisher device of a publish-subscribe system

Publications (1)

Publication Number Publication Date
WO2021201870A1 true WO2021201870A1 (en) 2021-10-07

Family

ID=77928493

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2020/026419 WO2021201870A1 (en) 2020-04-02 2020-04-02 Configuring a publisher device of a publish-subscribe system

Country Status (1)

Country Link
WO (1) WO2021201870A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240106695A1 (en) * 2022-09-28 2024-03-28 Level 3 Communications, Llc Name-Based Routing Through Networks

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060047666A1 (en) * 2004-08-28 2006-03-02 Bedi Bharat V Control of publish/subscribe messaging
US8140630B2 (en) * 2008-03-05 2012-03-20 International Business Machines Corporation Publish/subscribe message broker for message sequences
US20200007518A1 (en) * 2016-01-11 2020-01-02 Centurylink Intellectual Property Llc System and Method for Implementing Secure Communications for Internet of Things (IOT) Devices
KR102093314B1 (en) * 2018-11-05 2020-03-25 유비라커산업(주) System and method for transporting message using MQTT protocol

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060047666A1 (en) * 2004-08-28 2006-03-02 Bedi Bharat V Control of publish/subscribe messaging
US8140630B2 (en) * 2008-03-05 2012-03-20 International Business Machines Corporation Publish/subscribe message broker for message sequences
US20200007518A1 (en) * 2016-01-11 2020-01-02 Centurylink Intellectual Property Llc System and Method for Implementing Secure Communications for Internet of Things (IOT) Devices
KR102093314B1 (en) * 2018-11-05 2020-03-25 유비라커산업(주) System and method for transporting message using MQTT protocol

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240106695A1 (en) * 2022-09-28 2024-03-28 Level 3 Communications, Llc Name-Based Routing Through Networks

Similar Documents

Publication Publication Date Title
US8606859B2 (en) Method and system to communicate messages in a computer network
US6622266B1 (en) Method for specifying printer alert processing
EP2013763B1 (en) Managing rich presence collections
US7886295B2 (en) Connection manager, method, system and program product for centrally managing computer applications
JP4661774B2 (en) Relay server
EP2350963B1 (en) Dynamically transforming data to the context of an intended recipient
CN108174248A (en) Video broadcasting method, video playing control method, device and storage medium
CN102685573A (en) Internet content subsciption service via multiple devices
CN101364930A (en) Session control method, apparatus and system
CN101926138A (en) Method and system for message delivery in messaging networks
CN1972313A (en) Computer system
CN101431456A (en) Upnp-based network system and control method thereof
CN108549542A (en) A kind of file dispositions method, device and equipment
US20150341470A1 (en) Subscribing to multiple resources through a common connection
WO2011066645A1 (en) Reliable delivery of content to a push-state aware client device
US8537399B2 (en) Sharing content in a content database among printers via a request from a first printer
CN101035015B (en) Method and apparatus for maintaining federated name context bindings in a name space
CN114827171B (en) Information synchronization method, apparatus, computer device and storage medium
CN112559461A (en) File transmission method and device, storage medium and electronic equipment
WO2021201870A1 (en) Configuring a publisher device of a publish-subscribe system
CN103716230A (en) Message sending method, device and server
US8806611B2 (en) Message administration system
US8140692B2 (en) Flexibly configured presence server
CN101316377A (en) Instant message routing method, equipment and system
US9712467B2 (en) Iterative method to successfully send large electronic messages

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20929627

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20929627

Country of ref document: EP

Kind code of ref document: A1