WO2021032269A1 - Distribution de données de dispositif contraint - Google Patents

Distribution de données de dispositif contraint Download PDF

Info

Publication number
WO2021032269A1
WO2021032269A1 PCT/EP2019/072047 EP2019072047W WO2021032269A1 WO 2021032269 A1 WO2021032269 A1 WO 2021032269A1 EP 2019072047 W EP2019072047 W EP 2019072047W WO 2021032269 A1 WO2021032269 A1 WO 2021032269A1
Authority
WO
WIPO (PCT)
Prior art keywords
subject
subscriber
identifier
data
data value
Prior art date
Application number
PCT/EP2019/072047
Other languages
English (en)
Inventor
Oscar Novo Diaz
Original Assignee
Telefonaktiebolaget Lm Ericsson (Publ)
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 Telefonaktiebolaget Lm Ericsson (Publ) filed Critical Telefonaktiebolaget Lm Ericsson (Publ)
Priority to PCT/EP2019/072047 priority Critical patent/WO2021032269A1/fr
Publication of WO2021032269A1 publication Critical patent/WO2021032269A1/fr

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/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy 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/55Push-based network services

Definitions

  • the present disclosure relates to methods for managing data generated by a resource of a constrained device, for managing distribution of such data, and for requesting such data.
  • the present disclosure also relates to functionality and to a computer program and a computer program product configured, when run on a computer to carry out the above methods.
  • the “Internet of Things” refers to devices enabled for communication network connectivity, so that these devices may be remotely managed, and data collected or required by the devices may be exchanged between individual devices and between devices and application servers.
  • Such devices examples of which may include sensors and actuators, are often, although not necessarily, subject to severe limitations on processing power, storage capacity, energy supply, device complexity and/or network connectivity, imposed by their operating environment or situation, and may consequently be referred to as constrained devices.
  • Constrained devices may operate according to a range of protocols, including widely used protocols such as IPv4 or IPv6, and dedicated protocols for constrained devices, including the Constrained Application Protocol (CoAP), as defined in RFC7252, and Message Queuing Telemetry Transport (MQTT), as defined in ISO/IEC PRF 20922.
  • CoAP Constrained Application Protocol
  • MQTT Message Queuing Telemetry Transport
  • Publish-subscribe is an asynchronous communication pattern according to which a sender party, or publisher, pushes messages to one or more receiving parties, or subscribers, who have expressed an interested in the information contained in the messages.
  • An intermediary referred to as a “message broker”, receives published messages and forwards them on to those subscribers who have registered to receive them.
  • Message brokers generally allow for the creation of topics, to which messages may be published and to which clients may subscribe. A message published to a topic is forwarded to all of the subscribers to the topic.
  • MQTT is one of the most well established publish-subscribe communication models in loT. Although MQTT is designed for constrained environments, the original version of MQTT still uses TCP, which limits its feasibility in some scenarios.
  • An alternative version of MQTT, called MQTT-SN removes the requirement for TCP, making it more suitable for lossy wireless networks.
  • MQTT data is organized into topics. Each topic is a structure consisting of the content and an identifier used to identify the topic. MQTT clients can create new topics and publish content into them as well as read and subscribe to other topics. When a publisher publishes new content, all the MQTT clients subscribed to the topic will be notified with the new content.
  • Figure 1 illustrates a traditional publish-subscribe model, according to which producers of data, or publishers 102, send data to a message broker 104, which is then responsible for notifying subscribers 106 with the new information.
  • CoAP In addition to publish subscribe based protocols such as MQTT, other loT client/server communication models, such CoAP, have been extended to support a publish-subscribe interface, allowing for similar operations to those of MQTT but without the use of a broker.
  • the extension is referred to as the Observe procedure, according to which subscribers can subscribe directly to a CoAP endpoint for information relating to a particular resource, and the CoAP endpoint is responsible for notifying the subscribers with information about the resource in the form of notification messages.
  • loT use case involves the collection and processing of loT data.
  • Typical examples include Smart cities applications which collect and process information from smart meters, industrial applications involving the processing of information from multiple robots in manufacturing plants, home applications relying on the process of data from all the sensors in a house, and wearables applications involving the processing of information from connected personal accessories.
  • loT use cases can consequently be highly data intensive, with massive amounts of data to be collected, distributed and processed.
  • Publish/subscribe messaging models can struggle to accommodate such significant data ingestion owing to design limitation prevent scaling.
  • Data pipeline components such Apache Kafka or Pulsar seek to build on the publish- subscribe model with the advantages of a message queuing system.
  • Such data pipeline components may overcome some of the limitations of traditional loT messaging models, but are incompatible with existing loT devices and protocols.
  • a method for managing distribution of data generated by a resource of a constrained device comprises receiving, from functionality within the constrained device, a data value and a subject identifier of a subject to which the data value relates, and assigning the received data value to a partition of the subject identified by the subject identifier.
  • the method further comprises retrieving a mapping between the partition to which the data value is assigned and at least one subscriber identifier, and sending a notification message to subscribers identified in the retrieved mapping, the notification message including the received data value.
  • the notification message may also include the subject identifier.
  • a constrained device comprises a device which conforms to the definition set out in section 2.1 of RFC 7228 for “constrained node”.
  • a constrained node is a node in which “some of the characteristics that are otherwise pretty much taken for granted for Internet nodes at the time of writing are not attainable, often due to cost constraints and/or physical constraints on characteristics such as size, weight, and available power and energy.
  • the tight limits on power, memory, and processing resources lead to hard upper bounds on state, code space, and processing cycles, making optimization of energy and network bandwidth usage a dominating consideration in all design requirements.
  • some layer-2 services such as full connectivity and broadcast/multicast may be lacking”.
  • a constrained device according to examples of the present disclosure is thus clearly distinguished from server systems, desktop, laptop or tablet computers and powerful mobile devices such as smartphones.
  • a constrained device may for example comprise a Machine Type Communication device, a battery powered device or any other device having the above discussed limitations.
  • Examples of constrained devices may include sensors measuring temperature, humidity and gas content, for example within a room or while goods are transported and stored; motion sensors for controlling light bulbs; sensors measuring light that can be used to control shutters; heart rate monitors and other sensors for personal health (continuous monitoring of blood pressure etc.); and actuators including for example connected electronic door locks.
  • a constrained network correspondingly comprises “a network where some of the characteristics pretty much taken for granted with link layers in common use in the Internet at the time of writing are not attainable”, and more generally, may comprise a network comprising one or more constrained devices as defined above.
  • the method may be performed by a message broker, and receiving, from functionality within the constrained device, a data value and a subject identifier of a subject to which the data value relates may comprises receiving a publication message from the constrained device.
  • the subject identifier of a subject to which the data value relates may comprise a topic identifier of a topic to which the constrained device is authorised to publish updates.
  • the method may be performed by functionality within the constrained device, and receiving, from functionality within the constrained device, a data value and a subject identifier of a subject to which the data value relates may comprises receiving the data value and subject identifier from different functionality within the constrained device.
  • the functionality performing the method may for example comprise a data distribution manager within the constrained device, and the functionality from which the data value and subject identifier are received may comprise a data manager within the constrained devoice.
  • the subject identifier of a subject to which the data value relates may comprise a resource identifier of a resource of the constrained device.
  • assigning the received data value to a partition of the subject identified by the subject identifier may comprise retrieving partitions of the subject identified by the subject identifier, and assigning the received data value to one of the retrieved partitions in accordance with a data load balancing rule.
  • the data load balancing rule may share data values between retrieved partitions in accordance with a load balancing method.
  • a load balancing method may comprise sequential allocation of data values to partitions, similar to a first registered, first allocated (FIFO) allocation, a last registered first allocated (LIFO) allocation, or a shuffling or random allocation.
  • a load balancing method may alternatively allocate according to a specification of each device. For example, priority in the allocation may be given to devices with most battery life, or to least constrained devices, having more CPU and memory.
  • a load balancing method may allocate according to some priority provided by constrained devices, which priority may be similar to quality of Service (QoS).
  • QoS quality of Service
  • the method may further comprise receiving, from the functionality in the constrained device, a number of partitions of the subject identified by the subject identifier, and generating partitions of the subject in accordance with the received number.
  • the number of partitions may be received together with the data value and subject identifier.
  • the step of retrieving partitions of the subject identified by the subject identifier may comprise retrieving partitions generated as set out above.
  • generating partitions of the subject in accordance with the received number may comprise generating partition identifiers for the subject to identify the number of partitions received from the functionality in the constrained device, and storing the generated partition identifiers such that each partition identifier may have at least one data value assigned to it and may be mapped to at least one subscriber identifier.
  • the method may further comprise receiving a subscription message from a subscriber, the subscription message comprising a subscriber identifier, a subscriber group identifier of a subscriber group of which the subscriber is a member, and a subject identifier of a subject to which the subscriber is subscribing.
  • the method may further comprise assigning the subscriber to at least one partition of the subject to which the subscriber is subscribing, and updating a mapping for the at least one partition to which the subscriber is assigned by adding the assigned subscriber identifier to the mapping.
  • assigning the subscriber to at least one partition of the subject to which the subscriber is subscribing may comprise retrieving mappings between the partitions of the subject identified by the subject identifier and subscribers that are members of the same subscriber group as the subscriber, and assigning the subscriber to at least one of the partitions of the subject identified by the subject identifier in accordance with the retrieved mappings and a subscriber load balancing rule.
  • the subscriber load balancing rule may share subscribers to a subject that are members of the same subscriber group between partitions of the subject such that each partition of the subject has at least one assigned subscriber from the subscriber group.
  • the subscriber load balancing rule may further share subscribers to a subject that are members of the same subscriber group between partitions of the subject such that the maximum number of partitions to which a subscriber of the subscriber group is assigned is minimised.
  • updating a mapping for the at least one partition to which the subscriber is assigned may further comprise removing from the mapping a subscriber identifier of a subscriber that is a member of the same subscriber group as the subscriber which has been added to the mapping.
  • the above described removal step may ensure that only one member of a subscriber group is mapped to each partition of a subject. For example, if the number of subscribers of a subscriber group subscribed to a subject is inferior to the number of partitions in the subject, then some subscribers may be assigned to multiple partitions of the subject.
  • the mapping between members of that subscriber group and the partitions of the subject may be updated to reduce the maximum number of partitions to which any one subscriber of the group is assigned, in accordance with the subscriber load balancing rule discussed above.
  • the method may further comprise detecting that a subscriber to a subject is no longer active and, for a subject to which the subscriber was subscribed, updating mappings between the partitions of the subject and subscribers that are members of the same subscriber group as the subscriber that is no longer active to remove the subscriber that is no longer active from the mappings, and to ensure that the mappings between the remaining subscribers that are members of the subscriber group and the partitions of the subject conform to a subscriber load balancing rule.
  • the subscriber load balancing rule may be the subscriber load balancing rule discussed above.
  • a mapping between members of the same subscriber group that are subscribed to that subject and the partitions of that subject may be updated to ensure that each partition of the subject has at least one assigned subscriber from the subscriber group.
  • a method for managing data generated by a resource of a constrained device comprising obtaining a data value from a resource of the constrained device and determining a subject to which the data value relates. The method further comprises determining a number of partitions into which the subject should be divided, and sending the data value and a subject identifier of the subject to which the data value relates to functionality for managing distribution of data generated by the resource.
  • the functionality performing the method may comprise a data manager within the constrained device.
  • the method may further comprise including the determined number of partitions into which the subject should be divided with the data value and subject identifier sent to the functionality for managing distribution of data generated by the resource.
  • determining a number of partitions into which the subject should be divided may comprise selecting a number of partitions according to at least one of: bandwidth of a communications channel accessible to the constrained device; bandwidth of a communications channel accessible to a subscriber to the subject; memory capacity available to a subscriber to the subject for storing data generated by the resource; and latency in distributing data generated by the resource to a subscriber to the subject.
  • sending the data value and a subject identifier of the subject to which the data value relates to functionality for managing distribution of data generated by the resource may comprise sending a publication message to a message broker.
  • the subject identifier of a subject to which the data value relates may comprise a topic identifier of a topic to which the constrained device is authorised to publish updates.
  • sending the data value and a subject identifier of the subject to which the data value relates to functionality for managing distribution of data generated by the resource may comprise sending the data value and subject identifier to different functionality within the constrained device.
  • the different functionality may fir example comprise a data distribution manager within the constrained device.
  • the subject identifier of a subject to which the data value relates may comprise a resource identifier of a resource of the constrained device.
  • a method for requesting data generated by a resource of a constrained device comprises sending a subscription message to functionality for managing distribution of data generated by a resource of a constrained device, the subscription message comprising a subscriber identifier of the subscriber, a subscriber group identifier of a subscriber group of which the subscriber is a member, and a subject identifier of a subject to which the subscriber is subscribing.
  • sending a subscription message to functionality for managing distribution of data generated by a resource of a constrained device may comprise sending a subscription message to a message broker.
  • the subject identifier of a subject to which the subscriber is subscribing may comprise a topic identifier of a topic to which the constrained device is authorised to publish updates.
  • sending a subscription message to functionality for managing distribution of data generated by a resource of a constrained device may comprise sending an observe request to the constrained device.
  • the subject identifier of a subject to which the subscriber is subscribing may comprise a resource identifier of a resource of the constrained device.
  • the method may further comprise receiving a notification message from the functionality for managing distribution of data generated by a resource of a constrained device, the notification message including a data value relating to the subject identified by the subject identifier included in the subscription message.
  • the method may further comprise forwarding the notification message to other members of the subscriber groups of which the subscriber is a member.
  • the notification message may also include the subject identifier.
  • a computer program comprising instructions which, when executed on at least one processor, cause the at least one processor to carry out a method according to any one of the preceding aspects or examples of the present disclosure.
  • a carrier containing a computer program according to the preceding aspect of the present disclosure, wherein the carrier comprises one of an electronic signal, optical signal, radio signal or computer readable storage medium.
  • a computer program product comprising non transitory computer readable media having stored thereon a computer program according to a preceding aspect of the present disclosure.
  • a data distribution manager for managing distribution of data generated by a resource of a constrained device.
  • the data distribution manager comprises processing circuitry configured to cause the data distribution manager to receive, from functionality within the constrained device, a data value and a subject identifier of a subject to which the data value relates, assign the received data value to a partition of the subject identified by the subject identifier, retrieve a mapping between the partition to which the data value is assigned and at least one subscriber identifier, and send a notification message to subscribers identified in the retrieved mapping, the notification message including the received data value.
  • the data distribution manager may be comprised within the constrained device or may be comprised within a message broker.
  • the processing circuitry may be further configured to cause the data distribution manager to carry out a method according to any one of the aspects or examples of the present disclosure.
  • a data distribution manager for managing distribution of data generated by a resource of a constrained device.
  • the data distribution manager is adapted to receive, from functionality within the constrained device, a data value and a subject identifier of a subject to which the data value relates, assign the received data value to a partition of the subject identified by the subject identifier, retrieve a mapping between the partition to which the data value is assigned and at least one subscriber identifier, and send a notification message to subscribers identified in the retrieved mapping, the notification message including the received data value.
  • the data distribution manager may be comprised within the constrained device or may be comprised within a message broker. According to examples of the present disclosure, the data distribution manager may be further adapted to carry out a method according to any one of the aspects or examples of the present disclosure.
  • a data manager for managing data generated by a resource of a constrained device.
  • the data manager comprises processing circuitry configured to cause the data manager to obtain a data value from a resource of the constrained device, determine a subject to which the data value relates, determine a number of partitions into which the subject should be divided, and send the data value and a subject identifier of the subject to which the data value relates to functionality for managing distribution of data generated by the resource.
  • the data manager may be comprised within the constrained device.
  • the processing circuitry may be further configured to cause the data manager to carry out a method according to any one of the aspects or examples of the present disclosure.
  • a data manager for managing data generated by a resource of a constrained device.
  • the data manager is adapted to obtain a data value from a resource of the constrained device, determine a subject to which the data value relates, determine a number of partitions into which the subject should be divided, and send the data value and a subject identifier of the subject to which the data value relates to functionality for managing distribution of data generated by the resource.
  • the data manager may be comprised within the constrained device. According to examples of the present disclosure, the data manager may be further adapted to carry out a method according to any one of the aspects or examples of the present disclosure.
  • a subscription manager of a subscriber for requesting data generated by a resource of a constrained device.
  • the subscription manager comprises processing circuitry configured to cause the subscription manager to send a subscription message to functionality for managing distribution of data generated by a resource of a constrained device, the subscription message comprising a subscriber identifier of the subscriber, a subscriber group identifier of a subscriber group of which the subscriber is a member and a subject identifier of a subject to which the subscriber is subscribing.
  • the processing circuitry may be further configured to cause the subscription manager to carry out a method according to any one of the aspects or examples of the present disclosure.
  • a subscription manager of a subscriber for requesting data generated by a resource of a constrained device.
  • the subscription manager is adapted to send a subscription message to functionality for managing distribution of data generated by a resource of a constrained device, the subscription message comprising a subscriber identifier of the subscriber, a subscriber group identifier of a subscriber group of which the subscriber is a member and a subject identifier of a subject to which the subscriber is subscribing.
  • the subscription manager may be further adapted to carry out a method according to any one of the aspects or examples of the present disclosure.
  • Figure 1 illustrates a traditional publish-subscribe model
  • Figure 2 is a flow chart illustrating process steps in a method for managing distribution of data generated by a resource of a constrained device
  • Figures 3a and 3b are flow charts illustrating process steps in another example of method for managing distribution of data generated by a resource of a constrained device
  • Figure 4 is a flow chart illustrating process steps in a method for managing data generated by a resource of a constrained device
  • Figure 5 is a flow chart illustrating process steps in another example of method for managing data generated by a resource of a constrained device
  • Figure 6 is a flow chart illustrating process steps in a method for requesting data generated by a resource of a constrained device
  • Figure 7 is a flow chart illustrating process steps in another example of method for requesting data generated by a resource of a constrained device;
  • Figures 8a, 8b and 8c illustrate different scenarios for allocation of subscribers to partitions;
  • Figure 9 illustrates an example architecture for an loT communication model
  • Figure 10 is a signalling diagram illustrating message exchange between entities according to an MQTT implementation of examples of the present disclosure
  • Figure 11 is a signalling diagram illustrating message exchange between entities according to the CoAP Observe procedure
  • Figure 12 is a signalling diagram illustrating message exchange between entities according to a CoAP implementation of examples of the present disclosure
  • Figure 13 is a block diagram illustrating a data distribution manager
  • Figure 14 is a block diagram illustrating another example of data distribution manager
  • Figure 15 is a block diagram illustrating a data manager
  • Figure 16 is a block diagram illustrating another example of data manager
  • Figure 17 is a block diagram illustrating a subscription manager
  • Figure 18 is a block diagram illustrating another example of subscription manager. Detailed Description
  • aspects of the present disclosure propose methods and functionality that facilitate scaling within loT communication models including a publish-subscribe element.
  • subscribers to a subject within a publish-subscribe model may be members of a group and share the same group identifier, with only one of the subscribers from the group receiving updates from the subject.
  • Multiple subscriber groups may receive updates from the same subject or group of subjects.
  • Subscribers may be members of more than one group, and may be subscribed to more than one different subject.
  • Subscriber groups may distribute information received in notification messages amongst the members of group according to any suitable protocol, which may application or use case specific.
  • aspects of the present disclosure thus introduce an element of load balancing to publish-subscribe communication, allowing information of a subject to be distributed among different subscribes. In this manner, aspects of the present disclosure may increase the message processing throughput in constrained networks and also maximise the processing power of the subscribers.
  • FIG. 2 is a flow chart illustrating process steps in a method 200 for managing distribution of data generated by a resource of a constrained device.
  • the method 200 comprises, in a first step 210, receiving, from functionality within the constrained device, a data value and a subject identifier of a subject to which the data value relates.
  • the method then comprises, in step 220, assigning the received data value to a partition of the subject identified by the subject identifier, and, in step 230, retrieving a mapping between the partition to which the data value is assigned and at least one subscriber identifier.
  • the method comprises sending a notification message to subscribers identified in the retrieved mapping, the notification message including the received data value.
  • the notification message may additionally include the subject identifier.
  • Figures 3a and 3b are flow charts illustrating process steps in another example of method 300 for managing distribution of data generated by a resource of a constrained device.
  • the steps of the method 300 illustrate one way in which the steps of the method 200 may be implemented and supplemented in order to achieve the above discussed and additional functionality.
  • the method 300 may be carried out by functionality within the constrained device, for example in a CoAP implementation of the method, or by functionality within a message broker, for example in an MQTT implementation of the method.
  • the functionality carrying out the method may comprise a data distribution manager, which may be incorporated within a constrained device or a message broker.
  • the data distribution manager initially receives, from functionality within the constrained device, a data value and a subject identifier of a subject to which the data value relates in step 310.
  • the subject identifier of a subject to which the data value relate may comprise a topic identifier of a topic to which the constrained device is authorised to publish updates.
  • the data distribution manager may be incorporated in a message broker, and the data value and subject identifier may be received in a publication message sent by the constrained device.
  • the subject identifier of a subject to which the data value relates may comprise a resource identifier of a resource of the constrained device.
  • the data distribution manager may be incorporated within the constrained device, and the data value and subject identifier may be received from different functionality within the constrained device.
  • the different functionality may comprise a data manager within the constrained device, as described in further detail below.
  • the step 310 of receiving a data value and subject identifier may further comprise receiving a number of partitions of the subject identified by the subject identifier from the functionality within the constrained device.
  • step 312 the data distribution manager generates partitions of the subject in accordance with the received number. If partitions already exist for the subject, the generating step 312 may comprise updating the existing partitions in accordance with the received number, which may differ from the number of partitions which already exist.
  • generating partitions may comprise generating partition identifiers for the subject to identify the correct number of partitions as received from the functionality in the constrained device in step 312a.
  • Generating partitions may also comprise storing the generated partition identifiers such that each partition identifier may have at least one data value assigned to it and may be mapped to at least one subscriber identifier.
  • the data distribution manager retrieves partitions of the subject identified by the subject identifier.
  • the retrieving step may comprise retrieving previously generated and stored partitions or may comprise retrieving the partitions that have been generated in accordance with a newly received number of partitions.
  • the data distribution manager assigns the received data value to one of the retrieved partitions in accordance with a data load balancing rule.
  • the data load balancing rule may share data values between retrieved partitions in accordance with a load balancing method.
  • a load balancing method may comprise sequential allocation of data values to partitions, similar to a first registered, first allocated (FIFO) allocation, a last registered first allocated (LIFO) allocation, or a shuffling or random allocation.
  • a load balancing method may alternatively allocate according to a specification of each constrained device that may generate data. For example, priority in the allocation of data values to partitions in a subject may be given to devices with most battery life, or to least constrained devices, having more CPU and memory. In still further examples, a load balancing method may allocate according to some priority provided by constrained devices, which priority may be similar to quality of Service (QoS).
  • QoS quality of Service
  • the data distribution manager retrieves a mapping between the partition to which the data value is assigned and at least one subscriber identifier.
  • the partition may be mapped to one or more subscribers or to no subscribers, if no devices have yet subscribed to the particular topic.
  • the data distribution manager sends a notification message to subscribers identified in the retrieved mapping, the notification message including the received data value and subject identifier for the subject to which the data value relates.
  • Steps 342 to 350 of the method 300 illustrate how subscriber mappings may be managed and updated. It will be appreciated that any one or more of steps 342 to 350 may take place before, after, or concurrently with steps 310 to 340.
  • the data distribution manager receives a subscription message from a subscriber, the subscription message comprising a subscriber identifier, a subscriber group identifier of a subscriber group of which the subscriber is a member, and a subject identifier of a subject to which the subscriber is subscribing.
  • the data distribution manager then assigns the subscriber to at least one partition of the subject to which the subscriber is subscribing in step 344.
  • this comprises retrieving mappings between the partitions of the subject identified by the subject identifier and subscribers that are members of the same subscriber group as the subscriber in step 344a, and assigning the subscriber to at least one of the partitions of the subject identified by the subject identifier in accordance with the retrieved mappings and a subscriber load balancing rule, in step 344b.
  • the subscriber load balancing rule shares subscribers to a subject that are members of the same subscriber group between partitions of the subject in such a manner as to fulfil one or more conditions.
  • a first of the conditions comprises each partition of the subject having at least one assigned subscriber from the subscriber group. This may ensure that no matter which partition a data value is allocated to, a notification of that data value will be received by a member of the subscriber group.
  • a second of the conditions comprises ensuring that the maximum number of partitions to which a subscriber of the subscriber group is assigned is minimised.
  • the processing load of receiving and distributing notifications from the subject may be shared between subscribers of the subscriber group as equally as possible, avoiding a situation where one member of the group receives notifications from a plurality of partitions while another member of the subscriber group receives notifications from only one partition.
  • a newly subscribing member of the group may initially be assigned to none of the partitions, awaiting an evolution in the group membership or activity that may prompt an update of the mapping, as discussed below.
  • the data distribution manager updates a mapping for the at least one partition to which the subscriber is assigned by adding the assigned subscriber identifier to the mapping. This may comprise removing from the mapping a subscriber identifier of a subscriber that is a member of the same subscriber group as the subscriber which has been added to the mapping. This removal step may ensure that only one member of a subscriber group is mapped to each partition of a subject. For example, if the number of subscribers of a subscriber group subscribed to a subject is inferior to the number of partitions in the subject, then some subscribers may be assigned to multiple partitions of the subject.
  • the mapping between members of that subscriber group and the partitions of the subject may be updated to reduce the maximum number of partitions to which any one subscriber of the group is assigned, in accordance with the subscriber load balancing rule discussed above.
  • step 348 the data distribution manager detects that a subscriber to a subject is no longer active.
  • step 350 the data distribution manager then updates mappings between the partitions of a subject to which the non-active subscriber was subscribed and subscribers that are members of the same subscriber group. This updating serves to remove the subscriber that is no longer active from the mappings and to ensure that the mappings between the remaining subscribers that are members of the subscriber group and the partitions of the subject conform to the subscriber load balancing rule discussed above.
  • a mapping between members of the same subscriber group that are subscribed to that subject and the partitions of that subject may be updated to ensure that each partition of the subject has at least one assigned subscriber from the subscriber group.
  • the method 200, 300 described above may be complemented by methods carried out at a constrained device that is generating data for distribution and at a subscriber, as set out below with reference to Figures 4 to 7.
  • Figure 4 is a flow chart illustrating process steps in a method 400 for managing data generated by a resource of a constrained device.
  • the method may be carried out by functionality within the constrained device, which functionality may comprise a data manager.
  • the method comprises, in a first step 410, obtaining a data value from a resource of the constrained device.
  • the method further comprises determining a subject to which the data value relates in step 420 and determining a number of partitions into which the subject should be divided in step 430.
  • the method comprises sending the data value and a subject identifier of the subject to which the data value relates to functionality for managing distribution of data generated by the resource.
  • Figure 5 is a flow chart illustrating process steps in another example of method 500 for managing data generated by a resource of a constrained device.
  • the steps of the method 500 illustrate one way in which the steps of the method 400 may be implemented and supplemented in order to achieve the above discussed and additional functionality.
  • the method 500 may be carried out by functionality within the constrained device such as a data manager that may be incorporated within the constrained device.
  • the data manager obtains a data value from a resource of the constrained device.
  • a constrained device may comprise one or more resources, which may be physically collocated with the constrained device or within its domain. Examples of resource include sensors, actuators etc.
  • the data value for example may be a periodic update of a sensed parameter value.
  • the data manager determines a subject and corresponding subject identifier to which the data value relates.
  • the subject identifier of a subject to which the data value relates comprises a topic identifier of a topic to which the constrained device is authorised to publish updates.
  • the topic may correspond to the resource of the constrained device that has generated the data value.
  • the subject identifier comprises a resource identifier of the resource of the constrained device that has generated the data value.
  • the data manager determines a number of partitions into which the subject should be divided. This may comprise determining whether a previous number of partitions remains appropriate, and consequently whether or not a new number of partitions should be included with the data value.
  • the number of partitions into which a subject should be divided may be determined on the basis of frequency of data updates to the subject, more frequent updates prompting division into a greater number of partitions.
  • the number of partitions into which the subject should be divided may also be determined on the basis of a range of other factors that may either be known when configuring the data manager or the constrained device, or which may be determined by functionality implemented within or associated with the constrained device. Such factors may include, for example: available bandwidth of a communications channel accessible to the constrained device; available bandwidth of a communications channel accessible to an identifiable subscriber to the subject for receiving data updates to the subject; expected memory capacity available to an identifiable subscriber to the subject for storing data updates to the subject; and expected latency in distributing data updates to the subject to an identifiable subscriber to the subject.
  • the data manager sends the data value and a subject identifier of the subject to which the data value relates to functionality for managing distribution of data generated by the resource. This step may comprise including with the data value and subject identifier the determined number of partitions into which the subject should be divided. If the determined number of partitions is unchanged from a previous data update, the number of partitions may be omitted.
  • sending the data value and subject identifier may comprise sending a publication message to a message broker.
  • sending the data value and subject identifier may comprise sending the data value and subject identifier to different functionality, such as a data distribution manager, within the same constrained device.
  • Figures 6 and 7 are flow charts illustrating process steps in methods for requesting data generated by a resource of a constrained device. The methods are performed by functionality, such as a subscription manager, within a subscribing device, which may itself be a constrained device. It will be appreciated that same constrained device may incorporate both a subscription manager and a data manager, and thus may both publish and subscribe to data subjects.
  • a method 600 for requesting data generated by a resource of a constrained device comprises, in step 610, sending a subscription message to functionality for managing distribution of data generated by a resource of a constrained device.
  • the subscription message comprises a subscriber identifier of the subscriber performing the method, a subscriber group identifier of a subscriber group of which the subscriber is a member, and a subject identifier of a subject to which the subscriber is subscribing.
  • Figure 7 illustrates one way in which the step 610 of the method 600 may be implemented and supplemented in order to achieve the above discussed and additional functionality.
  • the method 700 is performed by functionality that may comprise a subscription manager.
  • the subscription manager sends a subscription message to functionality for managing distribution of data generated by a resource of a constrained device.
  • the subscription message comprises a subscriber identifier of the subscriber, a subscriber group identifier of a subscriber group of which the subscriber is a member, and a subject identifier of a subject to which the subscriber is subscribing.
  • the subject identifier of a subject to which the subscriber is subscribing may comprise a topic identifier of a topic to which the constrained device is authorised to publish updates, for example in the case of an MQTT implementation of the method 700.
  • sending a subscription message to functionality for managing distribution of data generated by a resource of a constrained device may comprise sending a subscription message to a message broker, as illustrated at step 710a.
  • the subject identifier of a subject to which the subscriber is subscribing may comprise a resource identifier of a resource of the constrained device, for example in the case of a CoAP implementation of the method 700.
  • sending a subscription message to functionality for managing distribution of data generated by a resource of a constrained device may comprise sending an observe request to the constrained device, as illustrated at step 710b.
  • the subscription manager receives a notification message from the functionality for managing distribution of data generated by a resource of a constrained device, the notification message including a data value relating to the subject identified by the subject identifier included in the subscription message.
  • the message may also include the subject identifier of the subject.
  • the subscription manager forwards the notification message to other members of the subscriber groups of which the subscriber is a member.
  • the manner in which subscriber groups are organised to ensure notification messages are forwarded to all members of the group that should receive the message may be application specific, and consequently may be configured in the subscribers according to a particular use case or deployment.
  • the manner in which subscribers are organised into subscriber groups and provided with a subscriber group identifier may be application specific, and consequently may be configured and/or managed by an application server according to the particular circumstances of an individual deployment.
  • each topic is divided into one or more partitions, allowing a topic to managed in parallel, with data values published to the topic being distributed between the partitions, and the partitions being distributed between subscribers of a subscriber group.
  • each partition will have only one subscriber from the group allocated to it, ensuring optimal gains in processing and signalling efficiency.
  • the options for dividing partitions between the members of a scriber group may be divided into three different scenarios, illustrated in Figures 8a, 8b and 8c with respect to a topic T and subscriber group A.
  • FIG. 8a In a first scenario, illustrated in Figure 8a, there are fewer subscribers 802a in the subscriber group A than there are partitions 804a in the topic T.
  • the four partitions of the topic T are therefore shared between the two members of subscriber group A, with each member being allocated to, and consequently receiving notifications from, two partitions.
  • the number of subscribers 802b in subscriber group A is equal to the number of partitions 804b in topic T.
  • Each partition of topic T therefore has a different allocated subscriber, with each subscriber being allocated to a single partition
  • a third scenario illustrated in Figure 8c, there a more subscribers 802c in subscriber group A than there are partitions in topic T.
  • Each partition of topic T therefore has a different allocated subscriber, with one or more subscribers not being allocated to any partition.
  • This scenario represents the smallest gain in efficiency of processing, as one or more subscribers are not participating in the receiving and sharing of notifications, placing a greater than necessary load on the remaining subscribers of the group.
  • Figure 9 illustrates an example architecture for an loT communication model according to aspects of the present disclosure.
  • the architecture comprises constrained devices 902 that generate data, and one or more subscriber groups 904, 90.
  • the example architecture of Figure 9 two subscriber groups A and B are illustrated, each subscriber group comprising two subscribers.
  • each topic may be divided into partitions, each subscriber receives messages from one or more partitions.
  • Data values published by the constrained devices 902 are allocated by the message broker 908 to the different partitions within the appropriate topic.
  • the number of partitions in each topic is set by the constrained device that owns the topic, that is the constrained device which is authorised to publish to the topic.
  • the message broker re-balances the allocation of subscribers from the offline subscriber’s group so as to ensure that a single subscriber from the group is allocated to each partition in a topic and that the total number of topics to which any single subscriber in the group is allocated is minimised. It will be appreciated that in some examples of the present disclosure, a subscriber may belong to more than one subscriber group.
  • FIG 10 is a signalling diagram illustrating message exchange between entities according to an implementation of examples of the present disclosure in the MQTT protocol.
  • MQTT requires three main interacting entities: one or more publishers 1002 that publish information updates including data values to different topics, one or more subscribers 1004 that subscribe to topics in order to receive the information published to the topics, and a message broker 1006 that controls the messaging process, providing one-to-many message distribution and decoupling of applications. It will be appreciated that a single entity may be both a publisher and a subscriber.
  • two entities 1004 subscribe to the topic ‘temperature/sensorData/’. Both entities belong to the same subscriber group having the subscriber group identifier 10. This subscriber group identifier is included by each subscriber in their subscription messages.
  • the current MQTT specification does not provide any means to define subscriber group information in its messages. Examples of the present disclosure thus propose a new parameter “group-id” that may be included in subscribe messages. Examples of the present disclosure also propose a new parameter “partitions” that may be included in publish messages. This new parameter allows a publisher to set a number of partitions into which the topic to which it is publishing should eb divided by the message broker.
  • the MQTT publisher 1002 sends new information for the topic ‘temperature/sensorData’ to the message broker.
  • the publisher 1002 includes the partitions parameter with a value of 2.
  • the same MQTT publisher 1002 again includes the partitions parameter and increases the number of partitions from 2 to 3.
  • FIG 11 is a signalling diagram illustrating message exchange between entities according to the Observe procedure of the CoAP protocol.
  • CoAP is not a publish-subscribe communication model as such, the CoAP Observe procedure, standardised by the IETF closely resembles a publish-subscribe communication model.
  • CoAP Observe does not implement a message broker but rather relies on individual CoAP servers to distribute messages.
  • CoAP clients that wish to receive information relating to a particular resource hosted at a CoAP server contact the CoAP server directly including the observe option.
  • the CoAP server is responsible for maintaining a record of clients that have requested information about a particular resource and for sending notification messages to such clients to inform them of updated data values for the resource.
  • FIG 11 depicts an example message exchange between two CoAP endpoints: a CoAP client 1102 and a CoAP server 1104.
  • the CoAP client 1102 is interested to receive information from a temperature sensor in CoAP server 1104.
  • the CoAP client 1102 informs the CoAP server 1104 about its interest in receiving update information concerning the temperature sensor by sending a registration message including the observe option.
  • the CoAP server 1104 receives the message, it sends the current state of the temperature resource to the CoAP client 1102 (22.9 Celsius). Later, when the status of the resource changes, the CoAP server intermediately informs the CoAP client.
  • Examples of the present disclosure propose a new option including the subscriber group- id of a CoAP client. This option is included in the initial registration message of the Observe operation.
  • the group-id is a string that uniquely identifies the group of subscriber processes to which this subscriber belongs.
  • FIG 12 illustrates a message exchange demonstrating this new option.
  • CoAP client B 1106 sends a CoAP registration message with the Observe option set to 0 and the group-id option set to 10.
  • CoAP client A 1202 sends a similar message with the same group-id, meaning CoAP clients A and B belong to the same subscriber group.
  • the CoAP server 1204 of Figure 12 has two partitions for its temperature resource: Partition 0 and Partition 1.
  • the CoAP server 1204 assigns each of the CoAP clients to a different partition and so distributes messages containing updates from the temperature sensor equally among CoAP client A and CoAP client B.
  • the methods 200, 300, 400, 500, 600, 700, as illustrated by the examples of Figures 8 to 12, are performed by a data distribution manager, data manager and subscription manager respectively.
  • the present disclosure provides a data distribution manager, a data manager and a subscription manager which are adapted to perform any or all of the steps of the above discussed methods.
  • Figure 13 is a block diagram illustrating a data distribution manager 1300 which may be adapted to implement the method 200 and/or 300 according to examples of the present disclosure, for example on receipt of suitable instructions from a computer program 1350.
  • the data distribution manager 1300 comprises a processor or processing circuitry 1302, and may comprise a memory 1304 and interfaces 1306.
  • the processing circuitry 1302 is operable to perform some or all of the steps of the method 200 and/or 300 as discussed above with reference to Figures 2 and 3.
  • the memory 1304 may contain instructions executable by the processing circuitry 1302 such that the data distribution manager 1300 is operable to perform some or all of the steps of the method 200 and/or 300.
  • the instructions may also include instructions for executing one or more telecommunications and/or data communications protocols.
  • the instructions may be stored in the form of the computer program 1350.
  • the processor or processing circuitry 1302 may include one or more microprocessors or microcontrollers, as well as other digital hardware, which may include digital signal processors (DSPs), special-purpose digital logic, etc.
  • DSPs digital signal processors
  • the processor or processing circuitry 1302 may be implemented by any type of integrated circuit, such as an Application Specific Integrated Circuit (ASIC), Field Programmable Gate Array (FPGA) etc.
  • the memory 1304 may include one or several types of memory suitable for the processor, such as read-only memory (ROM), random-access memory, cache memory, flash memory devices, optical storage devices, solid state disk, hard disk drive etc.
  • Figure 14 illustrates functional modules in another example of data distribution manager 1400 which may execute examples of the methods 200 and/or 300 of the present disclosure, for example according to computer readable instructions received from a computer program. It will be understood that the modules illustrated in Figure 14 are functional modules, and may be realised in any appropriate combination of hardware and/or software. The modules may comprise one or more processors and may be integrated to any degree.
  • the data distribution manager 1400 comprises a receiving module 1402 for receiving, from functionality within a constrained device, a data value and a subject identifier of a subject to which the data value relates.
  • the data distribution manager 1400 further comprises a partition module 1404 for assigning the received data value to a partition of the subject identified by the subject identifier, and a mapping module 1406 for retrieving a mapping between the partition to which the data value is assigned and at least one subscriber identifier.
  • the data distribution manager 1400 further comprises a transmission module 1408 for sending a notification message to subscribers identified in the retrieved mapping, the notification message including the received data value.
  • the data distribution manager 1400 may also comprise interfaces 1410.
  • the data distribution managers 1300, 1400 may be incorporated into a constrained device and/or a message broker.
  • Figure 15 is a block diagram illustrating a data manager 1500 which may be adapted to implement the method 400 and/or 500 according to examples of the present disclosure, for example on receipt of suitable instructions from a computer program 1550.
  • the data manager 1500 comprises a processor or processing circuitry 1502, and may comprise a memory 1504 and interfaces 1506.
  • the processing circuitry 1502 is operable to perform some or all of the steps of the method 400 and/or 500 as discussed above with reference to Figures 4 and 5.
  • the memory 1504 may contain instructions executable by the processing circuitry 1502 such that the data manager 1500 is operable to perform some or all of the steps of the method 400 and/or 500.
  • the instructions may also include instructions for executing one or more telecommunications and/or data communications protocols.
  • the instructions may be stored in the form of the computer program 1550.
  • the processor or processing circuitry 1502 may include one or more microprocessors or microcontrollers, as well as other digital hardware, which may include digital signal processors (DSPs), special-purpose digital logic, etc.
  • DSPs digital signal processors
  • the processor or processing circuitry 1502 may be implemented by any type of integrated circuit, such as an Application Specific Integrated Circuit (ASIC), Field Programmable Gate Array (FPGA) etc.
  • the memory 1504 may include one or several types of memory suitable for the processor, such as read-only memory (ROM), random- access memory, cache memory, flash memory devices, optical storage devices, solid state disk, hard disk drive etc.
  • Figure 16 illustrates functional modules in another example of data manager 1600 which may execute examples of the methods 400 and/or 500 of the present disclosure, for example according to computer readable instructions received from a computer program. It will be understood that the modules illustrated in Figure 16 are functional modules, and may be realised in any appropriate combination of hardware and/or software. The modules may comprise one or more processors and may be integrated to any degree.
  • the data manager 1600 comprises a data module 1602 for obtaining a data value from a resource of a constrained device and a subject module 1604 for determining a subject to which the data value relates.
  • the data manager 1600 further comprises a partition module 1606 for determining a number of partitions into which the subject should be divided, and a transmission module 1608 for sending the data value and a subject identifier of the subject to which the data value relates to functionality for managing distribution of data generated by the resource.
  • the data manager 1600 may also comprise interfaces 1610.
  • the data managers 1500, 1600 may be incorporated into a constrained device.
  • FIG 17 is a block diagram illustrating a subscription manager 1700 which may be adapted to implement the method 600 and/or 700 according to examples of the present disclosure, for example on receipt of suitable instructions from a computer program 1750.
  • the subscription manager 1700 comprises a processor or processing circuitry 1702, and may comprise a memory 1704 and interfaces 1706.
  • the processing circuitry 1702 is operable to perform some or all of the steps of the method 600 and/or 700 as discussed above with reference to Figures 6 and 7.
  • the memory 1704 may contain instructions executable by the processing circuitry 1702 such that the subscription manager 1700 is operable to perform some or all of the steps of the method 600 and/or 700.
  • the instructions may also include instructions for executing one or more telecommunications and/or data communications protocols.
  • the instructions may be stored in the form of the computer program 1750.
  • the processor or processing circuitry 1702 may include one or more microprocessors or microcontrollers, as well as other digital hardware, which may include digital signal processors (DSPs), special-purpose digital logic, etc.
  • DSPs digital signal processors
  • the processor or processing circuitry 1702 may be implemented by any type of integrated circuit, such as an Application Specific Integrated Circuit (ASIC), Field Programmable Gate Array (FPGA) etc.
  • the memory 1704 may include one or several types of memory suitable for the processor, such as read-only memory (ROM), random-access memory, cache memory, flash memory devices, optical storage devices, solid state disk, hard disk drive etc.
  • Figure 18 illustrates functional modules in another example of subscription manager 1800 which may execute examples of the methods 600 and/or 700 of the present disclosure, for example according to computer readable instructions received from a computer program. It will be understood that the modules illustrated in Figure 18 are functional modules, and may be realised in any appropriate combination of hardware and/or software. The modules may comprise one or more processors and may be integrated to any degree.
  • the subscription manager 1800 comprises a transmission module for sending a subscription message to functionality for managing distribution of data generated by a resource of a constrained device, the subscription message comprising a subscriber identifier of the subscriber, a subscriber group identifier of a subscriber group of which the subscriber is a member, and a subject identifier of a subject to which the subscriber is subscribing.
  • the subscription manager 1800 may also comprise interfaces 1804.
  • the subscription managers 1700, 1800 may be incorporated into a constrained device, which device may also comprise a data manager and may also comprise a data distribution manager.
  • aspects of the present disclosure thus provide methods and functionality that enable load balancing in a publish-subscribe communication model.
  • Subjects to which interested parties may subscribe are divided into partitions, with updates to a subject being shared between the partitions of the subject.
  • Subscribers to subjects are arranged in groups, with members of a group being allocated to different partitions within a subject to which the group members are subscribed.
  • notification updates concerning the subject may be shared between the members of the group, with each update being sent to a single group member, and the group configuration determining how the group members organise the distribution of updates amongst members of the group.
  • Examples of the present disclosure thus improve the scalability of publish-subscribe models, rendering them compatible with big data applications, as well as improving network throughput by reducing the number of update messages to be sent to subscribers.
  • Data [persistence is managed when subscribers are offline, rendering the solutions proposed herein fault tolerant.
  • the solutions proposed herein are compatible with current data ingestion models such as Apache Kafka.
  • the methods of the present disclosure may be implemented in hardware, or as software modules running on one or more processors. The methods may also be carried out according to the instructions of a computer program, and the present disclosure also provides a computer readable medium having stored thereon a program for carrying out any of the methods described herein.
  • a computer program embodying the disclosure may be stored on a computer readable medium, or it could, for example, be in the form of a signal such as a downloadable data signal provided from an Internet website, or it could be in any other form.

Landscapes

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

Abstract

L'invention concerne un procédé (200) et une fonctionnalité (1300, 1400) pour gérer la distribution de données générées par une ressource d'un dispositif contraint. Le procédé (200) consiste à recevoir, à partir d'une fonctionnalité à l'intérieur du dispositif contraint, une valeur de données et un identifiant de sujet d'un sujet auquel la valeur de données se rapporte (210) et à attribuer la valeur de données reçue à une partie du sujet identifié par l'identifiant de sujet (220). Le procédé comprend en outre la récupération d'un mappage entre la partie à laquelle la valeur de données est attribuée et au moins un identifiant d'abonné (230) et l'envoi d'un message de notification à des abonnés identifiés dans le mappage récupéré, le message de notification comprenant la valeur de données reçue (240). L'invention concerne également des procédés (400, 600) et une fonctionnalité (1500, 1600, 1700, 1800) pour gérer et pour demander des données générées par une ressource d'un dispositif contraint.
PCT/EP2019/072047 2019-08-16 2019-08-16 Distribution de données de dispositif contraint WO2021032269A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/EP2019/072047 WO2021032269A1 (fr) 2019-08-16 2019-08-16 Distribution de données de dispositif contraint

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2019/072047 WO2021032269A1 (fr) 2019-08-16 2019-08-16 Distribution de données de dispositif contraint

Publications (1)

Publication Number Publication Date
WO2021032269A1 true WO2021032269A1 (fr) 2021-02-25

Family

ID=67928789

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2019/072047 WO2021032269A1 (fr) 2019-08-16 2019-08-16 Distribution de données de dispositif contraint

Country Status (1)

Country Link
WO (1) WO2021032269A1 (fr)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210176324A1 (en) * 2019-12-10 2021-06-10 Vmware, Inc. Topic-based data routing in a publish-subscribe messaging environment
CN114285898A (zh) * 2021-12-29 2022-04-05 四川启睿克科技有限公司 一种从MQTT消息系统到Pulsar流数据平台的桥接实现方法
CN114666177A (zh) * 2022-02-22 2022-06-24 中国建设银行股份有限公司 智能家居预警方法、系统、计算机设备、存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050210109A1 (en) * 2004-03-22 2005-09-22 International Business Machines Corporation Load balancing mechanism for publish/subscribe broker messaging system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050210109A1 (en) * 2004-03-22 2005-09-22 International Business Machines Corporation Load balancing mechanism for publish/subscribe broker messaging system

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210176324A1 (en) * 2019-12-10 2021-06-10 Vmware, Inc. Topic-based data routing in a publish-subscribe messaging environment
US11888952B2 (en) * 2019-12-10 2024-01-30 VMware LLC Topic-based data routing in a publish-subscribe messaging environment
CN114285898A (zh) * 2021-12-29 2022-04-05 四川启睿克科技有限公司 一种从MQTT消息系统到Pulsar流数据平台的桥接实现方法
CN114666177A (zh) * 2022-02-22 2022-06-24 中国建设银行股份有限公司 智能家居预警方法、系统、计算机设备、存储介质
CN114666177B (zh) * 2022-02-22 2024-05-28 中国建设银行股份有限公司 智能家居预警方法、系统、计算机设备、存储介质

Similar Documents

Publication Publication Date Title
US11303697B2 (en) Method, apparatus and system for web service management
CN106233695B (zh) 用于管理客户端设备的装置和方法
US11689606B2 (en) Communication method, system and apparatus
US8595345B2 (en) Enhanced push notification services
US20160164963A1 (en) Method, system, and device for managing server hardware resources in a cloud scheduling environment
US20160261480A1 (en) Client-side fault tolerance in a publish-subscribe system
WO2021032269A1 (fr) Distribution de données de dispositif contraint
KR101413295B1 (ko) 확장성과 적응성을 가지는 dds 구조 및 dds를 구성하는 노드
US10855648B2 (en) Methods and apparatus for operating and managing a constrained device within
US11283668B2 (en) Method and apparatus in a web service system
EP3522496B1 (fr) Procédé et système de traitement de notification d'enregistrement de noeud
CN111901230A (zh) 一种支持设备接入验证的物联网网关、系统和设备接入验证的方法
JP2016005275A (ja) 相互接続ネットワークを管理する方法およびシステム
US20150215414A1 (en) Out of band electronic signaling
CN105493465A (zh) 网络环境中的用于云计算的基于XMPP的UPnP设备架构
Jung et al. Distributed pub/sub model in CoAP-based Internet-of-Things networks
Kim et al. A scalable pub/sub system for ndn
CN102577249A (zh) 动态寻址主机的连接的实例组
US20170359406A1 (en) Adaptive Query Targeting in a Dynamic Distributed Environment
US20230208938A1 (en) Orchestrating execution of a complex computational operation
US20230403320A1 (en) Lwm2m server device, lwm2m client device, and methods thereof
US11924309B2 (en) Managing resource state notifications
CN116684939B (zh) 消息处理方法、装置、计算机设备和计算机可读存储介质
EP4260493A1 (fr) Dispositif client lwm2m, dispositif serveur, et procédés associés
Yasui et al. Self-recognition and Fault Awareness in OpenFlow Mesh

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: 19765404

Country of ref document: EP

Kind code of ref document: A1

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19765404

Country of ref document: EP

Kind code of ref document: A1