DEVICES AND METHODS FOR MANAGING SUBSCRIPTIONS OF SUBSCRIBERS
20230006958 · 2023-01-05
Inventors
Cpc classification
H04L67/125
ELECTRICITY
H04L12/1859
ELECTRICITY
H04W4/70
ELECTRICITY
International classification
Abstract
A device for managing subscriptions of subscribers stores subscription entries. Each subscription entry includes information indicating data of interest in a first part, and includes subscriber information related to subscribers of the data of interest in a second part. Moreover, a subscription entry of the subscription entries includes in its second part subscriber information related to at least two subscribers of the data of interest indicated by the information in the first part. The device further provides the data of interest indicated by the information in the first part of the subscription entry to the at least two subscribers associated with the subscriber information in the second part.
Claims
1. A device for managing subscriptions of subscribers, the device comprising: a non-transitory computer readable storage medium configured to store one or more subscription entries, wherein each subscription entry of the one or more subscription entries comprises information indicating data of interest in a first part, and comprises subscriber information related to one or more subscribers of the data of interest in a second part, and wherein, in at least one subscription entry of the one or more subscription entries, the second part comprises subscriber information related to at least two subscribers of the data of interest indicated by the information in the first part; and communication circuitry configured to provide the data of interest indicated by the information in the first part of the at least one subscription entry to the at least two subscribers associated with the subscriber information in the second part of the at least one subscription entry.
2. The device according to claim 1, wherein: the subscriber information comprises at least one of: a unicast or multicast address of one or more subscribers, an identifier, ID, of one or more subscribers, or a token related to one or more subscribers.
3. The device according to claim 1, further comprising processing circuitry configured to, in response to a new subscriber subscribing to desired data of interest: cause the storage medium to store information indicating the desired data of interest in the first part of a new subscription entry, and store subscriber information related to the new subscriber in the second part of the new subscription entry; or cause the storage medium to store, in response to the information indicating the desired data of interest being already stored in an existing subscription entry, the subscriber information related to the new subscriber in the second part of the existing subscription entry.
4. The device according to claim 1, further comprising processing circuitry configured to: merge two or more subscription entries into a merged subscription entry, based on a cost function, wherein, in the merged subscription entry, the second part comprises subscriber information related to the subscribers associated with each of the two or more subscription entries, and the first part comprises merged information indicating data of interest that is merged from the information indicating data of interest of each of the two or more subscription entries.
5. The device according to the claim 4, wherein: the cost function is based on at least one of: maintaining a determined Quality of Service (QoS), minimizing a number of subscription entries, or minimizing a number of changes in the subscription entries.
6. The device according to claim 4, wherein the processing circuitry is further configured to: merge two or more subscription entries that store identical information indicating data of interest in their respective first parts, by causing the storage medium to store subscriber information related to the subscribers associated with each of the two or more subscription entries in the second part of the merged subscription entry.
7. The device according to claim 4, further comprising: a first interface configured to receive a subscription request based on at least one first parameter from a subscriber; and a second interface configured to receive at least one second parameter to update the cost function, or to determine a new cost function, based on the received at least one second parameter.
8. The device according to claim 7, wherein: the received at least one first parameter comprises information indicating data of interest, the information comprising at least one of a required QoS or an acceptable publishing interval range.
9. The device according to claim 1, wherein at least one of: the device is configured as a publisher of a networked embedded system; or at least one subscription entry, of the one or more subscription entries, is based on a subscription provider configured for generating a message for a set of subscribers that are subscribed to the subscription provider of a networked embedded system.
10. The device according to claim 9, further comprising processing circuitry configured to: assign to each subscription provider a publishing interval range; and cause the communication circuitry to provide the data of interest of a subscription provider to each subscriber associated with the subscription provider according to a publishing interval within the publishing interval range.
11. The device according to claim 4, wherein the processing circuitry is further configured to perform an optimization procedure of publishing interval upon merging two or more subscription providers, based on a cost function.
12. The device according to claim 10, wherein: the processing circuitry is configured to merge the two or more subscription providers into a merged subscription provider by: determining the respective publishing interval ranges of the two or more subscription providers; and assigning a merged publishing interval including the respective publishing interval ranges to the merged subscription provider.
13. The device according to claim 11, wherein: the cost function is based on at least one of: a publishing interval range associated with a first subscription provider in the two or more subscription providers; a publishing interval range associated with a second subscription provider in the two or more subscription providers; or a publishing interval range of at least one subscriber in the two or more subscription providers.
14. A method of managing subscriptions of subscribers, the method comprising: storing one or more subscription entries, wherein each subscription entry of the one or more subscription entries comprises information indicating data of interest in a first part, and comprises subscriber information related to one or more subscribers of the data of interest in a second part, and wherein, in at least one subscription entry of the one or more subscription entries, the second part comprises subscriber information related to at least two subscribers of the data of interest indicated by the information in the first part; and providing the data of interest indicated by the information in the first part of the at least one subscription entry to the at least two subscribers associated with the subscriber information in the second part of the at least one subscription entry.
15. A non-transitory computer readable storage medium storing a program which, when executed by a computer, causes the computer to perform a method of managing subscriptions of subscribers, the method comprising: storing one or more subscription entries, wherein each subscription entry of the one or more subscription entries comprises information indicating data of interest in a first part, and comprises subscriber information related to one or more subscribers of the data of interest in a second part, and wherein, in at least one subscription entry of the one or more subscription entries, the second part comprises subscriber information related to at least two subscribers of the data of interest indicated by the information in the first part; and providing the data of interest indicated by the information in the first part of the at least one subscription entry to the at least two subscribers associated with the subscriber information in the second part of the at least one subscription entry.
Description
BRIEF DESCRIPTION OF DRAWINGS
[0060] The above described aspects and implementation forms will be explained in the following description of specific embodiments in relation to the enclosed drawings.
[0061]
[0062]
[0063]
[0064]
[0065]
[0066]
[0067]
[0068]
DETAILED DESCRIPTION OF EMBODIMENTS
[0069] In the specification, claims, and the accompanying drawings of this application, the terms “first”, “second”, and the like are intended to distinguish similar objects but do not necessarily indicate a specific order or sequence. It should be understood that the terms used in such a way are interchangeable in proper circumstances, and this is merely a discrimination manner for describing objects having a same attribute in embodiments of this application. In addition, the terms “include”, “have” and any variant thereof mean to cover the non-exclusive inclusion, so that a process, method, system, product, or device that includes a series of units is not necessarily limited to those units, but may include other units not expressly listed or inherent to such a process, method, product, or device.
[0070]
[0071] The device 100 may be an electronic device such as a computer.
[0072] The device 100 is configured to store the one or more subscription entries 110, 120, wherein each subscription entry 110, 120 comprises information indicating data of interest in a first part 111, 121, and comprises subscriber information 1, 2, 3 related to one or more subscribers 10, 20, 30 of the data of interest in a second part 112, 122, wherein at least one subscription entry 110, of the one or more subscription entries 110, 120, comprises in its second part 112 subscriber information 1, 2 related to at least two subscribers 10, 20 of the data of interest indicated by the information in the first part 111.
[0073] The device 100 is further configured to provide the data of interest indicated by the information in the first part 111 of the at least one subscription entry 110 to the at least two subscribers 10, 20 associated with the subscriber information 1, 2 in the second part 112.
[0074] The device 100 may comprise a processing circuitry (not shown in
[0075]
[0076] For example, device 100 may merge main subscription information that is information indicating data of interest in the first part to support more subscribers.
[0077] The device 100 may be a publisher and may merge three subscription entries 110, 120, 130 (shown on the left side of
[0078] Moreover, the device may subscribe new subscribers 40, 50 using the new subscription entry 140.
[0079] The main part (information indicating data of interest) may often be merged as multiple subscribers may subscribe to the same data (e.g., the resource with the sensor value) and use similar filters (e.g., greater than or step filters for CoAP resources can also be merged when of similar magnitude; value is evaluated at receiver) and quality of service parameters, which depend on application type, and not on individual subscribers.
[0080]
[0081] The device may have the first interface (not shown in
[0082] The device may further comprise the second interface 301 which may receive one or more second parameters to update the cost function 302 or determine a new cost function, based on the received second parameters. Examples of the first and/or second interfaces include one or more I/O interfaces described herein.
[0083] Moreover, the device 100 may merge the subscription entries 110, 120 into a merged subscription entry 110, based on a cost function 302.
[0084] For instance, when the number of subscribers is lower than number of possible subscription entries in a subscriber list, no optimization is required. Afterwards, once the number of subscribers exceeds the listed capacity, a cost function may be used to merge similar subscriptions.
[0085] Moreover, the cost function 302 can take different goals or a weighted combination of goals into account. The goals may be defined by the device manufacturer or the system owner. A list of possible goals may be as follow:
[0086] Maintaining subscriber QoS: using quality of service parameters to maintain expected notification intervals.
[0087] Minimizing the number of subscription entries: freeing as many resources as possible and maximizing sleep cycles, respectively, which might lead to lowering the quality of services for a subset of subscriptions.
[0088] Minimizing the number of changes: keeping subscriber configurations stable to avoid network reconfiguration and/or potential service interruptions.
[0089] An extensible cost function may enable a strategy for optimization which may be adapted to the environment.
[0090] For instance, the subscribers 10, 20, 30 can provide additional parameters that are inputs for the cost function 302 and allow for more effective decisions. For instance, concrete intervals for acceptable publication intervals (e.g., the case for OMA LWM2M based on CoAP) instead of a single publication interval (e.g., the case for OPC UA PubSub) enable a better negotiation with better optimization results (e.g., subscriber QoS easier to preserve).
[0091] Optionally, the Publisher (i.e., the device 100) may provide the interface 301 to update the cost function dynamically (i.e., either the second parameters of already included in the cost functions or adding completely new cost function).
[0092]
[0093] The subscriber entities 110 120, 130, 140 are based on subscription providers which are exemplary WriterGroups (e.g., OPC UA PubSub WriterGroups as explained below).
[0094] In
[0095] In
[0096]
[0097] Without optimization, each Subscriber 10, 20, 30, 40 that selects or if it was assigned a unique Publishing Interval requires its own WriterGroup, even if it the same Dataset is sent in the network message (push notification) and multicast addresses are used.
[0098] The dotted lines indicate the Publishing Interval. The black rectangles indicate the publishing interval range that may be feasible for the subscriber.
[0099]
[0100] The device 100 may merge the WriterGroups when they similar and obtain the merge WriterGroup. The (key) similarity may be the Dataset being sent. Note that for OPC UA, this may be optimized even further, as multiple Datasets may be packed into one Network Message, i.e., different Datasets with similar Publishing Intervals may also be merged.
[0101]
[0102] The device 100 may perform the procedure 700.
[0103] The subscriber 70 is exemplarily an OPC UA Client that establishes a subscription for a Subscriber which may be the same device (subscriber 70) or a connection manager, etc.
[0104] The device 100 is exemplarily an OPC UA Server or Publisher which is configured to subscribe. For example, it may add a subscription, merge subscriptions (e.g., if no more entries) based on the cost function 302.
[0105] At S701, the OPC UA Client 70 sends a subscribe request to the device 100 which may be sending one or more of: MinInt, MaxInt, and, optionally, QoS.
[0106] At S702, the device 100 (the OPC UA Server) sends a subscribe response. The response message may be: OK, PubSubConnection Info; or FAIL, reason information.
[0107] For example, by defining not only one selected Publishing Interval for a Subscriber 10, 20, 30, 40, but a supported range with minimum and maximum Publishing Interval allows the cost function 302 to perform an optimization where quality of service requirements can be met (exactly) despite the optimization. Without such additional parameters, the optimization might degrade the quality of service level. The subscribe request corresponds to the Connection Establishment process of the OPC UA Field-Level Communications, which uses Client/Server method calls.
[0108]
[0109] The method 800 comprises a step S801 of storing the one or more subscription entries 110, 120, wherein each subscription entry 110, 120 comprises information indicating data of interest in a first part 111, 121, and comprises subscriber information 1, 2, 3 related to one or more subscribers 10, 20, 30 of the data of interest in a second part 112, 122, wherein at least one subscription entry 110, of the one or more subscription entries 110, 120, comprises in its second part 112 subscriber information 1, 2 related to at least two subscribers 10, 20 of the data of interest indicated by the information in the first part 111.
[0110] The method 800 further comprises a step S802 of providing the data of interest indicated by the information in the first part 111 of the at least one subscription entry 110 to the at least two subscribers 10, 20 associated with the subscriber information 1, 2 in the second part 112.
[0111] The present disclosure has been described in conjunction with various embodiments as examples as well as implementations. However, other variations can be understood and effected by those persons skilled in the art and practicing the claimed disclosure, from the studies of the drawings, this disclosure and the independent claims. In the claims as well as in the description the word “comprising” does not exclude other elements or steps and the indefinite article “a” or “an” does not exclude a plurality. A single element or other unit may fulfill the functions of several entities or items recited in the claims. The mere fact that certain measures are recited in the mutual different dependent claims does not indicate that a combination of these measures cannot be used in an advantageous implementation.