Automation system with communication infrastructure
By introducing availability notifications and dynamic routing descriptions into automated systems, the inefficiency of existing communication infrastructure is addressed, enabling efficient and flexible message transmission and autonomous management. This approach is suitable for automated systems and adapts to stability and resource optimization across organizational boundaries.
Patent Information
- Application Number
- CN202480048774.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-07-27
- Filing Date
- 2024-04-19
- Publication Date
- 2026-02-17
AI Technical Summary
In automated systems, existing communication infrastructure is inefficient in message transmission, complex to configure, and difficult to adjust flexibly. In particular, message duplication and resource waste are common problems in communication infrastructures that cross organizational boundaries.
It adopts a communication infrastructure based on the publish-subscribe principle, and achieves dynamic routing and message transmission by using availability notifications and return route descriptions between communication subscribers and message brokers. This reduces the dependence on central identity labels and utilizes exchange bridges and subscriber message brokers for autonomous management and redundant connections to ensure stability.
It enables efficient and flexible message transmission in complex communication infrastructures, reduces configuration complexity and resource waste, supports autonomous management and stability across organizational boundaries, and avoids message duplication and resource waste.
Smart Images

Figure CN121548983A_ABST
Abstract
Description
TECHNICAL FIELD
[0001] This patent application claims priority to German patent application 10 2023 119 975.7, the disclosure of which is incorporated herein by reference.
[0002] The present invention relates to a communication infrastructure for message transmission between communication subscribers in an automation system. BACKGROUND
[0003] Automation systems usually comprise a large number of communication subscribers. The message transmission between the communication subscribers can be designed here such that one or more communication subscribers provide one or more services for further communication subscribers, wherein the services of the communication subscribers are used by the further communication subscribers via the communication infrastructure of the automation system.
[0004] As a service, a communication subscriber can provide information to other communication subscribers periodically, occasionally or upon fulfillment of certain conditions. Alternatively, the information can also be provided by the communication subscriber upon request of the service by the other communication subscribers.
[0005] The service of a communication subscriber can also be a request of actions by other communication subscribers to the communication subscriber. These actions are then executed by the service of the communication subscriber and, if necessary, responded to by transmitting the result to the other communication subscribers.
[0006] For example, the actions can be the creation, reading, changing or deletion of variables or variable values. However, the actions can also be commands that the communication subscriber should execute in order to control the automation system, for example to stop a movement or to update a software component within the automation system.
[0007] The service can provide simple variable values as information. However, the service can also be a representation in the form of an object as an instance of a certain complex type or class. The instantiation of an object of a certain class corresponds to the creation of a complex variable value. Complex variable values can also be used for actions other than creation, reading, changing or deletion compared to simple variable values. The type or class of the object instance can then be used to describe such actions.
[0008] The service can also provide meta-information, which can be requested as an information similar to simple or complex variable values and can also be linked to actions. For example, the service can provide meta-information about what type or class the variables of the service are or what type or class of variables can be created for the service and what instances are currently available. In addition, detailed information about the type or class can also be provided as information.
[0009] In the topology of the communication infrastructure in an automation system in which messages are transmitted between communication subscribers via directly networked communication connections, the number of communication connections grows quadratically with the number of communication subscribers.
[0010] On the other hand, if the communication infrastructure in the automation system has a message broker through which the communication subscribers are connected for message transmission, the number of required communication connections only increases linearly with the number of communication subscribers. The use of a message broker with intermediate access also reduces the configuration effort and can also reduce the resources required for establishing and operating the communication connections.
[0011] Various methods for message transmission with intermediate access to a message broker are known from the prior art. One possible method is the "MQTT Version 5.0" standard (https: / / docs.oasis-open.org / mqtt / mqtt / v5.0 / mqtt-v5.0.html).
[0012] In the "MQTT Version 5.0" standard, the process of transmitting a message from a communication subscriber to a message broker is called publishing.
[0013] A published message contains a topic name. The topic name is also simply referred to as a topic or individually as a topic in the following. A topic name usually consists of a series of topic elements of different topic levels, which are separated by topic level separators.
[0014] The topic levels are hierarchically organized in a topic tree, in which each topic level can be subordinated to any number of other topic levels. At least one topic level is not subordinated to any other topic level itself. A topic level that is not subordinated to any other topic level is called the root of the topic tree.
[0015] In the "MQTT Version 5.0" standard, a communication subscriber informs the message broker which topic names of the messages it publishes are of interest. This process is called subscribing.
[0016] A communication subscriber can subscribe to individual topic names or to a sub-tree of the topic tree. Subscribing to a sub-tree is done by specifying a topic filter. A topic filter is a topic name in which individual and / or multiple topic levels that are consecutive to each other are replaced by a placeholder.
[0017] When sending messages based on the publish-subscribe-principle, the communication subscriber does not need to know to which other communication subscribers the message is to be sent. This knowledge is transferred to the message broker. The message broker maintains a directory in which it saves which topic names a communication subscriber has subscribed to or which topic filters a communication subscriber has subscribed to.
[0018] The forwarding of messages by the message broker to multiple interested communication subscribers means that the publishing communication subscriber usually only has to send the message to the message broker once. On the other hand, in an automation system with a direct networking communication connection, the publishing communication subscriber has to send the message multiple times if multiple other communication subscribers are to receive the message.
[0019] The forwarding of messages by the message broker also ensures that information from a communication subscriber with only limited resources can be used by many other communication subscribers. For example, a temperature measurement of a sensor can thus be displayed on different displays at the same time. Conversely, the message broker can provide a communication subscriber with information from many other communication subscribers. For example, temperature measurements from many distributed sensors can be displayed on a display at the same time.
[0020] The "MQTT Version 5.0" standard further describes how two communication subscribers interact in a message transmission process based on the publish-subscribe principle. The interaction consists of a message requesting (request) another communication subscriber to perform an action and, if necessary, a message containing response information (response).
[0021] According to the "MQTT Version 5.0" standard, a communication subscriber publishes a request message with a request for an action under reference to a topic name. A communication subscriber who has subscribed to messages on the topic name via the message broker responds to the request message.
[0022] The request message can also specify on which topic name the response should be published, which is referred to as the response topic in the standard. The response topic is transmitted with the message. The request message can also contain correlation information (correlation data).
[0023] For example, a communication subscriber that responds to the request message and performs the operation can publish a response message with the response result to the message broker under the topic name. The communication subscriber repeats the correlation information from the request message in the response message here. The correlation information enables the requesting communication subscriber to assign the response message to the previous request message. Before the communication subscriber publishes the request message, the communication subscriber subscribes to the response message to the message broker.
[0024] EP3386171B1 describes a method in which the communication subscriber that requests an action only via a request message is directly connected to the message broker. On the other hand, the communication subscriber that performs the action and, if necessary, sends back a reply message as a response is connected to the message broker via an adapter.
[0025] The request message from the communication subscriber and the response message from the adapter are based on the same protocol here. However, another protocol can also be used for the interaction between the adapter and the responding communication subscriber. The adapter thus acts as a translator between the protocols.
[0026] In EP 3 386 171 B1, each adapter is assigned a unique adapter identity, which is used by the communication subscriber to address a request message. The request message of an action then contains a so-called uniform resource identifier (URI), which in turn contains the adapter identity and a variable name. Using the adapter identity, the message broker can deliver the message to the desired communication subscriber.
[0027] EP 3 386 171 B1 further describes that a message broker network can also be used in automation systems in order to forward messages. The communication subscribers or adapters here only have to be connected to a single message broker in the network in order to participate in the message transmission. The message broker network is configured in such a way that the adapter identity from the request message is sufficient to transmit the request message through the message broker network to the desired adapter. Each message broker here requires information about which adapters are connected to this message broker, directly or indirectly via other message brokers, via which adapter identities.
[0028] Another method for message exchange using intermediate access by a message broker is known from EP 3 523 927 B1, in which the message broker creates an availability notification of a service, which names a topic in the form of an order topic under which requests for the service are expected. The communication subscriber then does not need any configuration about how to address messages to the service, but receives the information in the form of the order topic from the availability notification from the message broker.
[0029] The “Sparkplug 3.0.0” specification explains the design of a topic tree in a message broker in order to enable a large number of communication subscribers to interact together via the message broker. For the interaction via the message broker, the communication subscribers determine under which topics the communication subscriber provides a service, under which topics the communication subscriber listens to request messages and under which topics the communication subscriber then expects response messages. In the “Sparkplug 3.0.0” specification, identities are used here to address the communication subscribers at topic level.
[0030] In a network with multiple message brokers, a switching bridge is often implemented, which comprises multiple communication subscribers, each of which is connected from the network to a message broker. The switching bridge can publish messages published by the message broker of a communication subscriber connected to the switching bridge as message copies via other communication subscribers of the switching bridge to other message brokers.
[0031] The switching bridge can be designed here to forward messages of only certain topics from one message broker to other message brokers. In addition, the switching bridge can also change the topic of the message copies before the forwarding. The topic change can for example refer to which communication subscriber of the switching bridge has received the message or to which communication subscribers the switching bridge forwards the message copy.
[0032] When using a cross-bridge, message copies can also be forwarded to other message brokers, even if no communication subscriber connected to the other message broker is subscribed to the topic of the message, which occupies unnecessary transmission bandwidth.
[0033] Furthermore, if the communication connection circle between the message brokers is topologically closed by the cross-bridge, for example, undesired feedback can occur. If the message broker is not designed to recognize a message copy as a copy of an original message, as in the "MQTT Version 5.0" standard, for example, the message can be delivered multiple times to the communication subscriber.
[0034] Since the cross-bridge also acts as a communication subscriber, the cross-bridge can also re- forward message copies that it has already forwarded. This can lead to an infinite loop and infinite multiplication of messages, which leads to an overload of the communication infrastructure and to interruptions and malfunctions. The problem of the cross-bridge mainly occurs when the cross-bridge is under different administrative control.
[0035] The cross-bridge can also be an integral component of the message brokers, wherein each message broker has a communication connection to the individual communication subscribers and additionally comprises a communication subscriber that is a cross-bridge, which in turn is connected to other message brokers via a communication connection.
[0036] For the sake of simplicity, the following assumes that the cross-bridge transmits messages between two message brokers. The explanation of the cross-bridge that transmits messages between two message brokers also applies to a cross-bridge that transmits messages between more than two message brokers.
[0037] Today, communication infrastructures in automation systems often span organizational boundaries and can be under the control of different legal or natural persons. In order to enable different natural or legal persons to handle as autonomously as possible, it is particularly advantageous to the communication infrastructure if a change in one part of the communication infrastructure or in an individual communication subscriber causes as little change as possible to other parts of the communication infrastructure or to other communication subscribers. SUMMARY
[0038] It is an object of the present application to provide an improved automation system in which consistent and efficient message transmission can be achieved within even complex communication infrastructures of the automation system, which can be easily configured and maintained and, if necessary, can be changed without much effort.
[0039] The object is solved by the independent claims. Preferred improvements are specified in the dependent claims.
[0040] An automation system has a communication infrastructure comprising a plurality of communication subscribers, each communication subscriber being connected to at least one message broker via a communication connection. The communication subscribers are designed to publish messages under a topic name to the message broker or to subscribe to messages under a topic name from the message broker, wherein the communication subscribers subscribe to availability notifications from the message broker, which indicate that the communication subscribers are providing a service. The availability notifications have a first return routing description, which is respectively expanded with a routing segment name for a covered routing segment during transmission between the communication subscribers via the communication connection to the message broker. Interactions between the communication subscribers occur, wherein at least one first communication subscriber, which subscribes to messages under a first topic name at the message broker, publishes an availability notification under the first topic name at the message broker, which indicates that the first communication subscriber provides a service assigned to the first topic name, wherein each further communication subscriber receives a message copy of the availability notification with the first return routing description, which comprises a routing segment name of a covered routing segment from the first communication subscriber, wherein at least one second communication subscriber publishes a request message for the service under the first topic name at the message broker, wherein the second communication subscriber uses the first return routing description of the message copy of the availability notification of the service as a delivery route to the first communication subscriber in the request message, wherein the delivery route of the request message is respectively reduced by a routing segment name of a covered routing segment during transmission from the second communication subscriber to the first communication subscriber via the communication connection to the message broker.
[0041] The second communication subscriber can subscribe to messages under a second topic name from the message broker. The request message can have a second return routing description, which is respectively expanded with a routing segment name for a covered routing segment during transmission from the second communication subscriber to the first communication subscriber via the communication connection to the message broker. The first communication subscriber can publish a response message to the request message from the service at the message broker under the second topic name, wherein the first communication subscriber uses the second return routing description of the request message as a delivery route to the second communication subscriber in the response message, wherein the delivery route of the response message is respectively reduced by a routing segment name of a covered routing segment during transmission from the first communication subscriber to the second communication subscriber via the communication connection to the message broker.
[0042] The availability notification can have a first metadata and a first message content, wherein the first metadata comprises the first topic name, the first return routing description and a unique value, and wherein the first message content comprises a service type and optionally a service version.
[0043] Each communication subscriber can comprise a subscriber message broker connected to the message broker via an associated communication connection, wherein each subscriber message broker is assigned a broker name uniquely identifying the subscriber message broker with respect to other subscriber message brokers connected to the message broker.
[0044] The communication subscriber can comprise services and / or applications connected to the subscriber message broker of the communication subscriber via a communication connection, respectively, wherein the services and / or applications are designed to publish messages at a topic name or to subscribe to messages at a topic name at the subscriber message broker of the communication subscriber. In the communication subscriber, each service can be assigned a service name and each application an application name, which uniquely identifies the service or the application in the communication subscriber.
[0045] The communication connection of the communication subscriber to the message broker can be a switch bridge, respectively, wherein each switch bridge is assigned a bridge name uniquely identifying the switch bridge with respect to further switch bridges connected to the message broker. The switch bridge can have a subscription and a translation table, wherein the switch bridge is designed to subscribe to a topic name using the subscription by a subscriber message broker connected to the switch bridge, which shall be forwarded by the switch bridge, and wherein the switch bridge is designed to change the topic name using the translation table during transmission.
[0046] The message broker can have a topic tree, wherein a distinction is made between topic names containing a delivery route and topic names not containing a delivery route. The delivery route can be a part of the topic name here. The availability notification can also be tagged in the topic tree.
[0047] The automation system can extend across organizational and geographical boundaries, wherein components of the automation system can be changed autonomously by the respective organization, while other communication subscribers or message brokers of the automation system do not need to change in order to be able to continue to provide services from the changed parts of the automation system or to be able to continue to provide services for the changed parts of the automation system.
[0048] In the automation system, the communication subscribers do not need to be configured in advance as to which services they need and how to contact them or how to transmit a request message. Neither the communication subscribers nor the message broker need to know which communication subscribers and services are available at which point in the communication infrastructure in order to be able to select a transmission route.
[0049] There is no need to use unique identity labels in the subject tree of the public communication infrastructure for correctly addressing messages. The allocation of unique identity names fundamentally requires a central point acting as a registry to prevent double allocation of identity names. If such a central registry is required, the organizations cannot autonomously change certain parts of the communication infrastructure under their management, for example, integrating new communication subscribers and / or message brokers, independently.
[0050] Furthermore, topological loops within the communication infrastructure of the automation system, for example, topological loops resulting from feedback of message repetitions, have no negative effects. Redundant communication connections contribute to the stability and availability of the communication infrastructure, since interruptions in individual communication connections can be automatically compensated by using redundant communication connections that can exist. BRIEF DESCRIPTION OF DRAWINGS
[0051] The application is explained in more detail with reference to the accompanying drawings.
[0052] Figure 1 Messages in the context of message transmission based on the publish-subscribe principle are shown.
[0053] Figure 2 A subject tree is shown.
[0054] Figure 3 Messages interacting between communication subscribers are shown.
[0055] Figure 4 A return routing specification is shown.
[0056] Figure 5 An availability notification is shown.
[0057] Figure 6 A request message is shown.
[0058] Figure 7 A corresponding message is shown.
[0059] Figure 8 The structure of an automation system with communication subscribers and message brokers is shown.
[0060] Figure 9 The subject tree from the perspective of a message broker in the automation system of Figure 8 The subject tree from the perspective of a subscriber message broker in the communication subscribers of the automation system of
[0061] Figure 10 The subject tree from the perspective of a subscriber message broker in the communication subscribers of the automation system of Figure 8
[0062] Figure 11 The subscription list and the conversion table of a switching bridge in the automation system are shown. Figure 8
[0063] Figure 12 A process in an automation system is shown when a service of a communication subscriber publishes an availability notification. Figure 8 A process in an automation system is shown when a service of a communication subscriber publishes an availability notification.
[0064] Figure 13 A process in an automation system is shown when a service of a communication subscriber publishes an availability notification. Figure 8 A process in an automation system is shown when a service of a communication subscriber publishes an availability notification.
[0065] Figure 14 A process in an automation system is shown when a service of a communication subscriber publishes an availability notification. Figure 8 A process in an automation system is shown when a service of a communication subscriber publishes an availability notification. DETAILED DESCRIPTION
[0066] In an automation system with a communication infrastructure having one or more message brokers, messages are transmitted based on a publish-subscribe-principle. Communication subscribers publish or subscribe to messages from a message broker.
[0067] A message contains a topic name (topic name topic name), also simply referred to as topic or individually as topic, which usually consists of a single topic element or a sequence of topic elements from different topic levels, which are separated by topic level separators.
[0068] Figure 1 An exemplary composition of a message 341 published by a communication subscriber to a message broker is shown in Fig. 4. The message 341 has a topic name 441 comprising a first topic element 430, a second topic element 435 and a third topic element 438 with an intermediate configuration of a first level separator 461 and a second level separator 462.
[0069] The topic levels of a topic element are hierarchically organized in a topic tree, wherein each topic level can be subordinated to an arbitrary number of other topic levels. A topic level which is not subordinated to any other topic level forms the root of the topic tree.
[0070] Figure 2 An exemplary composition of a topic tree 400 is shown, wherein the topic tree 400 grows from top to bottom in the figure. The topic tree 400 contains three topic elements in topic levels as root, including the first topic element 430 of the topic name 441 of the message 341 and a fourth topic element 410 and a fifth topic element 420.
[0071] The next topic level comprises four topic elements, which are a second topic element 435 of the topic name 441, which is hierarchically subordinate to the first topic element 430 of the topic name 441, and a sixth topic element 411 and a seventh topic element 415, which are hierarchically subordinate to the fourth topic element 410, and an eighth topic element 431, which is hierarchically subordinate to the first topic element 430.
[0072] The subsequent topic level has seven topic elements, which comprise a third topic element 438 of the topic name 441, which is hierarchically subordinate to the second topic element 435 of the topic name 441, and a ninth topic element 412 and a tenth topic element 413, which are hierarchically subordinate to the sixth topic element 411, an eleventh topic element 432 and a twelfth topic element 433, which are hierarchically subordinate to the eighth topic element 431, and a thirteenth topic element 436 and a fourteenth topic element 437, which are hierarchically subordinate to the second topic element 435.
[0073] A communication subscriber can subscribe to an individual topic name or to a sub-tree of a topic tree. Subscribing to a sub-tree is done by specifying a topic filter. A topic filter is a topic name, wherein individual and / or multiple topic levels consecutive to each other are replaced by a placeholder.
[0074] Figure 1 An exemplary composition of the topic filter 451 is further shown. The topic filter 451 comprises a first topic element 430 and a second topic element 435 and in between a third level separator 463. After the second topic element 435, a fourth level separator 464 is arranged, followed by a placeholder 471. The placeholder 471 thus covers the thirteenth topic element 436, the fourteenth topic element 437 and the third topic element 438, which are hierarchically subordinate to the second topic element 435.
[0075] When messages are communicated based on the publish-subscribe-principle, an interaction between communication subscribers takes place, wherein a communication subscriber publishes a request message and, if necessary, receives a response message.
[0076] A request message for an action of the topic name 441 is published by a communication subscriber to a message broker. A communication subscriber, who has subscribed to messages on the topic name 441 via the message broker, will respond to the request message. The request message can also specify on which topic name 441 the response should be published, which is also called the response topic. The response topic is transmitted here together with the request message. In the request message, also correlation information can be specified (correlation data).
[0077] Figure 3An example of a message showing the interaction between the communication subscribers in an automation system is shown. The communication subscriber publishes a request message 740 to the message broker for a topic name 441, which has been shown in Figure 1 and comprises a first topic element 430, a second topic element 435 and a third topic element 438 with an intermediate first level separator 461 and a second level separator 462. The request message 740 further contains a response topic 481 comprising a fourth topic element 410 and a seventh topic element 415 with an intermediate fifth level separator 465. Furthermore, the request message 740 has a correlation information 491.
[0078] For example, the communication subscriber responding to the request message and performing the operation can publish a response message with the response result to the message broker under the topic name. The communication subscriber here repeats the correlation information from the request message in the response message. The correlation information enables the requesting communication subscriber to assign the response message to the previous request message. Before the communication subscriber publishes the request message, the communication subscriber subscribes to the topic of the response message with the message broker.
[0079] Figure 3 A response message 780 with the response topic 481 is shown, which is published by the responding communication subscriber to the message broker in the context of the interaction. The response message 780 further contains the correlation information 491.
[0080] The communication subscriber further indicates with a message about a topic that a service is provided and requests for the service are expected. Such a message is referred to in the following as a service availability notification. The topic name under which the service request is expected is named order topic.
[0081] Figure 3 An availability notification 700 with the order topic 482 is shown. The availability notification is here sent by the message broker to the interested communication subscribers via the communication infrastructure.
[0082] In an automation system with a network of message brokers, messages are delivered according to a routing description. The routing description assigned to a message names which message brokers and / or which communication connections between message brokers the message to be forwarded is to be forwarded through.
[0083] The availability notification 700 is here used to determine the routing description. The availability notification 700 then additionally contains a field called return routing description and describing the transmission route back to the service.
[0084] Before the service send availability notification 700, the return route description contains no value. During the respective transmission to the next message broker or communication subscriber, the return route description is extended to include the name of the route segment covered during the transmission, in the following referred to as route segment name. The extension of the return route description can here take place before, during or after the respective transmission to the next message broker or communication subscriber.
[0085] The route segment names can be appended to the current value of the return route description, respectively. Alternatively, the route segment names can also be placed at the beginning of the return route description value, respectively. Figure 4 Both alternatives are shown using examples.
[0086] The first return route description 720 has first to fifth route segment names 721-725, wherein the order is first route segment name 721, second route segment name 722, third route segment name 723, fourth route segment name 724 and fifth route segment name 751.
[0087] The second return route description 730 has first to fifth route segment names 721-725, again, wherein the order is fifth route segment name 725, fourth route segment name 724, third route segment name 723, second route segment name 722 and first route segment name 721.
[0088] In both embodiments, the route segment names in the return route description are ordered and separated from each other, so that the individual route segment names can be clearly determined from the return route description.
[0089] If multiple communication subscribers are interested in the availability of a service, the availability notification 700 can optionally be delivered by the message broker network to the multiple communication subscribers. The availability notification 700 can be automatically distributed to the multiple communication subscribers, if the communication subscribers have previously subscribed to the topic of the availability notification 700 by the message broker. Different services can here use the same topic or different topics for the availability notification 700.
[0090] If the availability notification 700 is distributed to N interested communication subscribers, N copies of the availability notification 700 have to be made after the delivery is completed, which are delivered with N different routes. Each communication subscriber here receives a copy of the availability notification 700, wherein the message content of the availability notification 700 is the same, but the return route description is individual in each copy.
[0091] The availability notification 700 of a service with the associated individual return route description is used by the communicating subscriber to send a request message 740 to the respective service. The request message 740 is here allocated with information in the form of its own field or as part of a field about the route via which the request message 740 should be delivered to the service. This information is hereinafter referred to as the delivery route.
[0092] The communicating subscriber uses the return route description of the availability notification 700 as a starting value for the delivery route of the request message 740. The communicating subscriber selects the transmission route in accordance with the route section names in the delivery route starting value.
[0093] The value of the delivery route during the transmission here to the next message broker or to the communicating subscriber is reduced by the route section name of the route section covered during the transmission, respectively. The reduction of the delivery route here can be performed before, during or after the transmission to the next message broker or to the communicating subscriber, respectively.
[0094] The delivery route then only still contains the route section names of the part of the transmission route via which the request message 740 still has to be transmitted. The order of the route section names in the delivery route determines what the next route section name is.
[0095] When the request message 740 has reached the message broker which is directly connected to the communicating subscriber providing the service, the value of the delivery route is empty or no longer present. The request message 740 has then reached the destination.
[0096] The composition of the delivery route corresponds to the composition of the return route description. If the value of the return route description is extended in front by further route section names when the availability notification 700 is transmitted, the front route section names are selected and reduced, respectively, for the transmission from the delivery route. Similarly, if the value of the return route description in the availability report 700 has been extended by the addition of further route section names, the last route section names are selected and reduced for the transmission from the delivery route.
[0097] The value of the route section names for the return route description or the delivery route can be determined automatically in various ways.
[0098] The route section names can be determined by the communicating subscriber or by the respective message broker with which the communicating subscriber establishes a communication connection, i.e. by the message broker accepting the communication connection.
[0099] The message broker can here, for example, allocate a unique value to the communication connection, for example by the message broker allocating the next free value to the communication connection when the communication connection is accepted.
[0100] It is also possible to assign fixed values to the route section names. These values can be, for example, values assigned to the communication subscriber or to the message broker with which the communication connection is established. The values are assigned in such a way that the values are clear at least from the perspective of the message brokers participating in the communication connection.
[0101] Furthermore, the value of the communication connection between the communication subscriber and the message broker or the neighboring message broker can also be used as the route section name. Here, it is also possible to assign the communication connection in both transmission directions its own value. In the case of a return route description, the value of the extended return route description must always be used with the value of the reverse transmission direction in order to specify the correct transmission direction when selecting the next transmission section for the delivery route based on the return route description.
[0102] A name or a number or a mixture of name and number can be used as the value. The route section name here only needs to be unique in the local, limited part of the communication infrastructure. This makes it possible to locally redesign the part of the communication infrastructure autonomously without having to inform other parts of the communication infrastructure.
[0103] In order to enable the service to respond to the request message 740 to the communication subscriber, the communication subscriber adds a field for the return route description to the request message 740, similar to the composition of the availability notification 700 by the message broker, which is initially empty or non-existent, then contains a value upon arrival at the service, which value can then be used by the service in order to provide a response message 780 with a delivery route value to the communication subscriber that sent the request message 740. The value of the return route description of the request message 740 is generated in the same way as the return route description of the availability notification 700.
[0104] If the communication subscriber finds the service with the help of the availability notification 700, then sends a request message 740 to the service and optionally receives a response message 780 from the service, it is not necessary to wait for a further availability notification 700 before the communication subscriber sends a further request message 740 to the service. The communication subscriber already knows the delivery route of the service. The communication subscriber can use the known delivery route to send any number of further request messages 740 to the service.
[0105] If a part of the communication infrastructure is redesigned after receiving the availability notification 700, the delivery route based on the return route description of the availability notification 700 can change. For example, if there is no response message from the service to the request message within the expected response time, the communication subscriber can recognize a delivery route error.
[0106] Thus, services can continue to be implemented during the redesign of the communication infrastructure, which can periodically or on demand send additional availability notifications 700, for example according to the "MQTT Version 5.0" standard with the help of reserving messages from the message broker.
[0107] As shown in Figure 5 The availability notification 700 comprises a first metadata 701, also called "header" or "attributes", and a first message content 710, also called "payload". The first metadata 701 comprises a first topic name 702, a first return route description 730, and optionally a unique value 704. The unique value 704 can be generated for example using a method from the standard RFC 4122 "Universally Unique Identifier UUID URN namespace".
[0108] The first message content 710 of the availability notification 700 describes the service. From the service description, a communication subscriber can decide whether it wants to use the service or not. The communication subscriber sends a request message 740 to the service and expects a response message 780 if needed.
[0109] The first message content 710 of the availability notification 700 describes a service type 711, which makes the type of service provided identifiable, and a service version 713, which has implemented the service related to the service type 711.
[0110] Generally, the service type 710 evolves over time and newer versions support a greater or otherwise improved or adapted range of functionalities to the current state of the art. The naming of the versions supported by the service enables a communication subscriber to identify whether the communication subscriber will understand the particular form of the request message 740 or not.
[0111] Furthermore, the first message content 710 can contain a subscriber identification 712, which either uniquely identifies a service within an automation system or names a group of services that belong together and do not need to be distinguished. The communication subscriber can use the subscriber identification 712 to decide with which of several services of the same type the communication subscriber wants to interact. The subscriber identification 712 naming a service can be for example an address. The subscriber identification 712 naming a group of services can for example be an indication of the affiliation of the services to an organization.
[0112] The subscriber identification 712 can optionally be contained in the availability notification 700 instead of in the message content 710 or in the meta information 701, for example as part of the topic name 702.
[0113] As shown in Figure 6As shown, the request message 740 from the communication subscriber consists of second metadata 741 and second message content 750, similar to the availability notification 700. The second metadata 741 comprises a first delivery route 742, optionally a second return route description 743, and equally optionally first relevance data 744. The first delivery route 742 describes the route to which the request message 740 should be sent to the desired service. The second return route description 743 of the request message 740 is only needed if a response message 780 from the service is expected.
[0114] If a subscriber sends multiple request messages 740 to the same or different services without first waiting for a response message 780, first relevance data 744 is assigned to each request message 740. The service then copies the first relevance data 744 from the corresponding request message 740 to the response message 780, and the subscriber can use the first relevance data 744 to assign which request message 740 the response message 780 belongs to after receiving the response message 780.
[0115] like Figure 7 As shown, the response message 780, similar to the availability notification 700 or request message 740, consists of third metadata 781 and third message content 790. The third metadata 781 is assigned a second delivery route 782, optionally a third return route description 783, and equally optionally second related data 784. The second delivery route 782 describes the transmission route for delivering the service response message 780 to the communication subscriber who sent the related request message 740.
[0116] For the delivery route value in response message 780, the service uses the return route description from request message 740. If request message 740 contains first relevance data 744, the service repeats second relevance data 784 in response message 780, allowing the requesting communication subscriber to assign response message 780 to request message 740. This is particularly advantageous if the service reported in availability notification 700 does not have an explicit subscriber identifier and the communication subscriber interacts with multiple services of the same service type 711.
[0117] Figure 8 The possible composition of an automation system is illustrated schematically. An exemplary automation system 800 has four communication subscribers: a first communication subscriber 806, a second communication subscriber 807, a third communication subscriber 808, and a fourth communication subscriber 809. In principle, any number of communication subscribers can be provided in the automation system.
[0118] All communication subscribers in the automation system 800 are connected to the message broker 801 via assigned switching bridges. Specifically, the first communication subscriber 806 is connected to the message broker 801 via the first switching bridge 810, the second communication subscriber 807 is connected to the message broker 801 via the second switching bridge 811, the third communication subscriber 808 is connected to the message broker 801 via the third switching bridge 812, and the fourth communication subscriber 809 is connected to the message broker 801 via the fourth switching bridge 813.
[0119] Communication subscribers can also connect directly to the message broker via a communication connection, instead of through a switching bridge. A message broker network can also be used instead of a single message broker.
[0120] Furthermore, the automation system can be expanded. Therefore, additional system segments can be added, including communication subscribers, message brokers, and switching bridges.
[0121] Each communication subscriber typically includes a subscriber message broker connected to the associated switching bridge. Specifically, the first communication subscriber 806 is connected to the first switching bridge 810 via the first subscriber message broker 802, the second communication subscriber 807 is connected to the second switching bridge 811 via the second subscriber communication broker 803, the third communication subscriber 808 is connected to the third switching bridge 812 via the third subscriber message broker 804, and the fourth communication subscriber 809 is connected to the fourth switching bridge 813 via the fourth subscriber message broker 805.
[0122] like Figure 8 As shown, each switching bridge can also be integrated into the assigned communication subscriber, rather than being designed separately from the assigned communication subscriber. The switching bridge can here be part of the subscriber message broker within the communication subscriber.
[0123] Each switch bridge is assigned a bridge name that uniquely identifies it relative to other switch bridges connected to message broker 801. In automation system 800, if switch bridges are connected to the same message broker or subscriber message broker, the bridge names must generally be unique to each other.
[0124] like Figure 8 As shown, the first switching bridge 810 has the letter "e" as its first bridge name 820, the second switching bridge 811 has the letter "f" as its second bridge name 821, the third switching bridge 812 has the letter "g" as its third bridge name 822, and the fourth switching bridge 813 has the letter "h" as its fourth bridge name 823.
[0125] Each message broker or subscriber message broker is assigned a broker name, which, similar to a bridge name, must be assigned different broker names if message brokers or subscriber message brokers are connected to each other via a switching bridge. For this reason, in Figure 8In the illustrated automation system 800, all agent names must be unique, because in the automation system 800 all subscriber message agents included in a communication subscriber are connected to the same message agent 801 via an assigned exchange bridge.
[0126] In Figure 8 In the illustrated automation system 800, the first subscriber message agent 802 has the letter "B" as the first agent name 842, the second subscriber message agent 803 has the letter "C" as the second agent name 843, the third subscriber message agent 804 has the letter "D" as the third agent name 844, and the fourth subscriber message agent 805 has the letter "E" as the fourth agent name 845.
[0127] The requirement that bridge names and agent names must be unique only within the local boundary ensures the autonomy of the allocation of names within the local boundary.
[0128] Each communication subscriber includes a subscriber identification that connects with the respective subscriber message agent and uniquely identifies the subscriber message agent.
[0129] In Figure 8 In the illustrated automation system 800, the first communication subscriber 806 has a first subscriber identification 832 for the first subscriber message agent 802, the second communication subscriber 807 has a second subscriber identification 833 for the second subscriber message agent 803, the third communication subscriber 808 has a third subscriber identification 834 for the third subscriber message agent 804, and the fourth communication subscriber 309 has a fourth subscriber identification 835 for the fourth subscriber message agent 805.
[0130] The following distinguishes between application and service. An application here is an executing program or process that causes a service to take action, while a service is an executing program or process that performs the action on behalf of the application and responds with a reaction, such as a result, if necessary. The same running instance of a program can here both act as a service and as an application. In principle, however, the distinction between application and service can be cancelled.
[0131] In order for a service to perform an action, each service is assigned a set of objects for which the service performs the action. The objects in the set of objects are, for example, variable values of a program, entries in a database, or methods that can be executed. The objects can also be implemented by instances of classes in a high-level programming language, such as C++. The objects can basically represent any real or virtual object.
[0132] In the automation system 800, each communication subscriber may include any number of services and / or applications, and each service and / or application may communicate with the subscriber's subscriber message broker via its own communication connection in order to receive messages by subscribing to topic name 441 and / or topic filter 451 and to send messages to specific topics by publishing.
[0133] In the automation system 800, each communication subscriber can be a separate unit in the form of a physical device. However, a communication subscriber can also consist of multiple devices that can communicate with each other via physical or wireless wireless connections. The services, applications, and subscriber message brokers of a communication subscriber can, for example, be executed on different devices. Alternatively, the services, applications, and subscriber message brokers of a communication subscriber can also be executed together on the same device as the services, applications, and subscriber message brokers of another communication subscriber.
[0134] A switching bridge can also be designed as a single device or as part of a device or system that forms a distribution of communication subscribers. Furthermore, a switching bridge can be integrated with a message broker to form a single unit.
[0135] exist Figure 8 In the illustrated automation system 800, a first communication subscriber 806 has a first service 860, which is connected to a first subscriber message broker 802 via a first communication connection 850. A first object set 880 is assigned to the first service 860.
[0136] The second communication subscriber 807 has a second service 861 and a third service 862. The second service is connected to the second subscriber messaging agent 803 via a second communication connection 851, and the third service is connected to the second subscriber messaging agent 803 via a third communication connection 852. A second object set 881 is assigned to the second service 861, and a third object set 882 is assigned to the third service 862.
[0137] The third subscriber 808 has a fourth service 863, which is connected to the third subscriber message broker 804 via a fourth communication connection 853. A fourth object set 883 is assigned to the fourth service 863. The third subscriber 808 also includes a first application 864 and a second application 865, the first application being connected to the third subscriber message broker 804 via a fifth communication connection 854, and the second application 865 being connected to the third subscriber message broker 804 via a sixth communication connection 855.
[0138] The fourth communication subscriber 809 has a third application 866, which is connected to the fourth subscriber message agent 805 via a seventh communication connection 856.
[0139] In the automation system 800, each service is assigned a service name and each application is assigned an application name. The service name or the application name must be unique in the respective communication subscriber here.
[0140] As Figure 8 shown in the first communication subscriber 806, the first service 860 has the letter "s" as the first service name 870. The second service 861 of the second communication subscriber 807 also has the letter "s" as the second service name 871. The third service 862 of the second communication subscriber 807 has the letter "p" as the third service name 872.
[0141] In the third communication subscriber 808, the fourth service 863 again has the letter "s" as the fourth service name 873. The first application 864 of the third communication subscriber 808 has the letter "v" as the first application name 874 and the second application 865 of the third communication subscriber 808 has the letter "w" as the second application name 875. In the fourth communication subscriber 809, the third application 866 again has the letter "w" as the third application name 876.
[0142] The message broker 801 or the subscriber message broker uses the topic tree 400, so that a request message 740 can be published for the topic name 441 or a response message 780 can be received via a subscription to the topic name 441 or a part of the topic tree 400 with the topic filter 451. Here, the delivery route can be specified as part of the topic, respectively, or analogously as part of the response topic 481. The route segment name of the delivery route then corresponds to the topic element in the topic level of the topic or the response topic 481. The part of the topic tree 400 that contains the route segment name is referred to as the route tree layer.
[0143] The delivery route involves the respective message broker 801 or the subscriber message broker and thus changes from the message broker or the subscriber message broker to the message broker 801 or the subscriber message broker. As a result, the arrangement of the topic levels within the topic tree 400 for the delivery route changes from the perspective of the respective message broker 801 or the subscriber message broker.
[0144] During operation, the message broker 801 or the subscriber message broker does not necessarily have to know the complete topic tree 400 of the automation system 800 here. The message broker 801 or the subscriber message broker then only knows the part of the topic tree 400, which consists of the topics of the published messages and the existing subscriptions.
[0145] The composition of the topic tree 400 is explained below, in which the bridge name is used to identify the delivery route. As mentioned above, other values from the automation system 800, such as the broker name, can also be used instead of the bridge name as the route segment name.
[0146] Figure 9 The first topic tree 1000 is shown from the perspective of the message broker 801 in the automation system 800. Furthermore, the first topic tree 1000 is shown from the perspective of the first subscriber message broker 802 in the first communication subscriber 806 of the automation system 800. Figure 8 Figure 10 The second topic tree 1100 is shown from the perspective of the first subscriber message broker 802 in the first communication subscriber 806 of the automation system 800. Furthermore, the second topic tree 1100 is shown from the perspective of the second subscriber message broker 802 in the first communication subscriber 806 of the automation system 800. Figure 8
[0147] In the first topic tree 1000, a distinction is made between topics that contain a delivery route and topics that do not contain a delivery route or, equivalently, contain an empty delivery route. Based on the topic, it can then be determined whether a message should be delivered locally to one or more applications and / or services of the communication subscriber or whether it has to be transmitted first via a routing section before delivery. Furthermore, the topic of the availability notification 700 is marked in the first topic tree 1000, as the availability notification 700 is forwarded via all communication connections in order to reach all communication subscribers.
[0148] From the perspective of the message broker 801 or the subscriber message broker, the root of the topic tree is used to distinguish between the three categories of topics described above in the topic tree. The root with the letter "m" stands for "multicast" ("transmission to multiple recipients") and describes all topics used in the availability notification 700. The root with the letter "d" stands for "direction" (direction) and describes all topics that contain a message with a delivery route. The root with the letter "l" stands for "local" and is assigned to all topics in which a message containing the topic does not contain a delivery route and therefore does not have to be transmitted by a routing section. Instead of using the root of the topic tree to mark the three types of topics, other forms of marking can be used.
[0149] In the first topic tree 1000 shown from the perspective of the message broker 801, a first root "m" 1001 for "multicast" and a first root "d" 1002 for "direction" are provided. A first root "l" for "local" is not required and therefore does not occur in the first topic tree 1000, as the message broker 801 does not have a direct communication connection to any application or service. Figure 9 In the second topic tree 1100 shown from the perspective of the first subscriber message broker 802 in the first communication subscriber 806, a second root "m" 1101 for "multicast" and a second root "d" 1103 for "direction" are contained in addition to a second root "l" 1102 for "local", as the first service 860 in the first communication subscriber 806 maintains a first communication connection 850 to the first subscriber message broker 802 in the first communication subscriber 806 and subscribes to topics under the root "l".
[0150] Figure 10 In the second topic tree 1100 shown from the perspective of the first subscriber message broker 802 in the first communication subscriber 806, a second root "m" 1101 for "multicast" and a second root "d" 1103 for "direction" are contained in addition to a second root "l" 1102 for "local", as the first service 860 in the first communication subscriber 806 maintains a first communication connection 850 to the first subscriber message broker 802 in the first communication subscriber 806 and subscribes to topics under the root "l".
[0151] The delivery route is mapped in the first topic tree 1000 and in the second topic tree 1100 under the first root "d" 1002 and the second root "d" 1103, respectively. The subject levels following the root "d" contain the route segment names in the form of bridge names as subject elements, which form the route tree layers, until a further subject level in the form of a stop tree layer marks the end of the delivery route in the topic tree with a predetermined stop value, which does not represent a route segment name.
[0152] In the Figure 8 In the illustrated automation system 800, the message exchanger 801 has subsequent route segments in the form of bridge connections to further subscriber message brokers in the communication subscribers. The message broker 801 is connected via a first exchange bridge 810 with a first bridge name 820 with the letter "e" to a first subscriber message broker 802 in a first communication subscriber 806. The message broker 801 is connected via a second exchange bridge 811 with a second bridge name 821 with the letter "f" to a second subscriber message broker 803 in a second communication subscriber 807. The message broker 801 is connected via a third exchange bridge 812 with a third bridge name 822 with the letter "g" to a third subscriber message broker 804 in a third communication subscriber 808. The message broker 801 is connected via a fourth exchange bridge 813 with a fourth bridge name 823 with the letter "h" to a fourth subscriber message broker 805 in a fourth communication subscriber 809.
[0153] In the view from the message broker 801, the Figure 9 In the illustrated first topic tree 1000, and thus under the first root "d" 1002 in the first route tree layer 1020, the following route segment names in the form of bridge names are given for the delivery route or return route description as subject elements in the subject levels: a first route subject element "e" 1031, a second route subject element "f" 1032, a third route subject element "g" 1033 and a fourth route subject element "h" 1034.
[0154] Since the message broker 801 is always directly connected to the other subscriber message brokers, the subject levels in the first route tree layer 1020 are not followed by a further subject level in the first topic tree 1000 for the delivery route or return route description. Therefore, the end of the delivery route or return route description is displayed in the first topic tree 1000 with a stop tree layer.
[0155] In the Figure 9In the first subject tree 1000 shown, in the stop tree layer, each subject element of the subject level of the first routing tree layer 1020 is provided with a first stop subject element 1035, a second stop subject element 1036, a third stop subject element 1037, and a fourth stop subject element 1038, which contain the placeholder “[dend]”. The placeholder “[dend]” is generally a predefined value. It is advantageous to use the empty value for these subject elements, as a space as a routing segment name is not very common in real life.
[0156] In Figure 8 In the automated system 800 shown, the first subscriber message broker 802 in the first communication subscriber 806 is connected via the first exchange bridge 810 with the message broker 801 having the first bridge name 820 with the letter “e”, which in turn establishes a connection with the second subscriber message broker 803 in the second communication subscriber 807 through the second exchange bridge 811 having the second bridge name 821 with the letter “f”, with the third subscriber message broker 804 in the third communication subscriber 808 through the third exchange bridge 812 having the third bridge name 822 with the letter “g”, and with the fourth subscriber message broker 805 in the fourth communication subscriber 809 via the fourth exchange bridge 813 having the fourth bridge name 823 with the letter “h”.
[0157] Since the first subscriber message broker 802 in the first communication subscriber 806 is always connected to the subscriber message brokers in the other communication subscribers through the message broker 801, the routing segment names in the routing tree layer 1020 of the first subject tree 1000 are defined as follows: Figure 10 The second subject tree 1100 shown has a second routing tree layer 1120 for a delivery routing or return routing description with two subject levels under the second root “d” 1103. In the first subject level of the second routing tree layer 1120, the fifth routing subject element “e” 1130 is specified as a routing segment name in the form of a bridge name, which represents a direct connection from the first subscriber message broker 802 to the message broker 801. In the second subject level of the second routing tree layer 1120, the connection from the message broker 801 to the subscriber message brokers in the other communication subscribers is then defined by the following routing segment names in the form of bridge names: the sixth routing subject element “f” 1131, the seventh routing subject element “g” 1132, and the eighth routing subject element “h” 1133.
[0158] Then, as Figure 10 The end of the delivery routing or return routing description in the second subject tree 1100 is shown in the stop tree layer, which has, for the subject elements of the second subject level in the second routing tree layer 1120, the fifth stop subject element 1141, the sixth stop subject element 1142, and the seventh stop subject element 1143, which contain the placeholder “[dend]”.
[0159] When messages are transmitted between the message brokers 801 by means of the exchange bridge, the topic in the message is changed so that the routing segment name for the delivery route is removed from the topic. Thus, all applications and services of the communication subscriber subscribe to the topics with a constant root in the first topic tree 1000 of the message broker 801 of the communication subscriber without the routing tree layer.
[0160] The topics subscribed by the applications and services of the communication subscriber are described by the topic tree nodes under the root "l", which has a communication connection to the subscriber message broker of the communication subscriber. In the example of the first topic tree 1000 in Figure 10 In the example of the second topic tree 1100 in
[0161] The topic tree nodes with further topic levels necessary for forming the topic are under the second root "m" 1101 and the second root "l" 1102 or under the stop tree layer to mark the end of the delivery route at the second root "d" 1103.
[0162] The topic tree nodes, which show which services the communication subscriber provides and under which topics the communication subscriber expects the availability notification 700 of the request message 740, are shown under the second root "m" 1101 and are assigned to the first service 860 and the second service 870. Figure 8 The topic tree nodes are identical in all topic trees of the message brokers 801 in the automation system 800 in
[0163] Because only the topic levels of the topic tree, which are relevant for the delivery route or the return route description, i.e. the routing tree layer, change during the message transmission, the other topic tree nodes are also present in all topic trees of the message brokers 801 in the automation system 800 in Figure 8
[0164] Under the stop tree layer, which marks the end of the delivery route, are the topic tree nodes with the topic levels, which the applications and services in the automation system 800 want to subscribe to. In the case of a direct communication connection of the message broker 801 with the service or the application, the topic tree nodes are then arranged under the second root "l" 1102, because the topic tree nodes have reached the respective destination, which is described by the delivery route.
[0165] In the example of the first topic tree 1000 in Figure 9 In the first topic tree 1000 shown from the perspective of the message broker 801, under the first root "d" 1002 separated by the first routing tree layer 1020 and the subsequent stop tree layer, there is a second topic tree node 1021 of the second subscriber message broker 802, a third topic tree node 1022 of the third subscriber message broker 804, a fourth topic tree node 1023 of the third subscriber message broker 804 and a fifth topic tree node 1024 of the fourth subscriber message broker 805.
[0166] In the first topic tree 1000 shown from the perspective of the message broker 801, under the first root "d" 1002 separated by the first routing tree layer 1020 and the subsequent stop tree layer, there is a second topic tree node 1021 of the second subscriber message broker 802, a third topic tree node 1022 of the third subscriber message broker 804, a fourth topic tree node 1023 of the third subscriber message broker 804 and a fifth topic tree node 1024 of the fourth subscriber message broker 805. Figure 10 In the second topic tree 1100 shown from the perspective of the first subscriber message broker 802, under the second root "d" 1103 separated by the second routing tree layer 1120 and the subsequent stop tree layer, there is a seventh topic tree node 1122 for the second subscriber message broker 803, an eighth topic tree node 1123 for the third subscriber message broker 804 and a ninth topic tree node 1124 for the fourth subscriber message broker 805. The sixth topic tree node 1121 containing the topics of the services and applications connected via the first communication connection 850 to the first subscriber message broker 802 in the first communication subscriber 806 is located under the second root "l" 1102.
[0167] In the first topic tree 1000 from the perspective of the message broker 801, the topics with the delivery route have the following form, wherein the placeholder 471 "#" stands for an arbitrary number of further topic levels:
[0168] "d / e / / # " for the delivery route to the first subscriber message broker 802 in the first communication subscriber 806,
[0169] "d / f / / # " for the delivery route to the second subscriber message broker 803 in the second communication subscriber 807,
[0170] "d / g / / # " for the delivery route to the third subscriber message broker 804 in the third communication subscriber 808, and
[0171] "d / h / / # " for the delivery route to the fourth subscriber message broker 805 in the fourth communication subscriber 809.
[0172] In the second topic tree 1100 from the perspective of the first subscriber message broker 802 in the first communication subscriber 806, the topics with the delivery route have the following form, wherein the placeholder 471 "#" stands for an arbitrary number of further topic levels:
[0173] "d / e / f / / # " for the delivery route to the second subscriber message broker 803 in the second communication subscriber 807,
[0174] "d / e / g / / #” for the delivery routing to the third subscriber message broker 804 in the third communication subscriber 808, and
[0175] "d / e / h / / #” for the delivery routing to the fourth subscriber message broker 805 in the fourth communication subscriber 809.
[0176] Basically, there are various options available for constructing the topic tree sections under the root of the topic tree or under the routing tree levels. Figure 9 and Figure 10 An advantageous embodiment is shown, in particular with regard to the arrangement and the number of topic levels. However, the arrangement of the shown topic levels can vary. The order of the topic levels can also be exchanged. Furthermore, individual topic levels can be omitted.
[0177] The composition of the first topic tree section 1025 for the availability notification 700, which is arranged under the first root "m" 1001 in the first topic tree 1000 or under the second root "m" 1101 in the second topic tree 1100, is explained below. This composition can be used analogously for the other topic tree sections in the first topic tree 1000 or in the second topic tree 1100.
[0178] Under the root "m" in the topic tree, a first topic level is arranged in the first topic tree section 1025 with the fifteenth topic element "sv" 1003. The value "sv" in the fifteenth topic element 1003 stands here for "service" (service) and indicates that the subsequent topic levels deal with services. The first topic level serves to identify the type of the availability notification 700 in order to thus be able to distinguish between various types of availability notifications 700 if necessary.
[0179] Another type of availability notification 700 can be, for example, an availability notification 700 published by an application and not by a service. Other types of availability notification 700 can then again be displayed by another topic element in the first topic level, to which a different constant value is then assigned.
[0180] However, the distinction between the types of availability notification 700 does not have to be made on the topic level, but can also be displayed by the message content of the availability notification 700. However, by means of the differentiation by means of the topic level, the application program can continue to receive only availability messages 700 from services by subscribing to the topics below the fifteenth topic element "sv" 1003, in particular when the "MQTT version 5.0" standard is used, even if an extended method with additional availability notification types is used.
[0181] The second topic level after the first topic level in the first topic tree section 1025 has a sixteenth topic element "[clid]" 1004. However, a large number of topic elements can be arranged on the second topic level. The value "[clid]" represents a placeholder 471, which, for example, can correspond to the fully qualified computer name "ipc4711.example.com" assigned to the communication subscriber 800 in the example. Figure 8 The communication subscriber in the automated system 800 shown is for identifying the associated message broker or subscriber message broker.
[0182] If the subscriber identification is a so-called fully qualified computer name, including an internet domain value such as "ipc4711.example.com", the fully qualified computer name "ipc4711.example.com" as a value of the placeholder 471 "[clid]" can be inserted into the sixteenth topic element "[clid]" 1004.
[0183] The second topic level can also be divided into a plurality of sequentially arranged topic levels instead of a single second topic level. For the fully qualified computer name "ipc4711.example.com" for the subscriber identification, instead of the representation in the topic element in the second topic level, three topic elements can also be used in three consecutive second topic levels, with the values of the three topic elements being "com", "example", "ipc4711" in sequence.
[0184] With the second topic level, if the application is interested in the service that maintains a direct communication connection with the message broker 801 to which the appropriate subscriber identification is assigned, the application can subscribe to the availability notification 700 for the specific subscriber identification. The subscriber identification can here be inserted into the topic of the availability notification 700 as a single second topic level or a series of second topic levels by the service itself, the subscriber message broker in the communication subscriber or the exchange bridge connected to the communication subscriber before, during or after the availability notification 700 is sent.
[0185] However, the subscriber identification does not necessarily have to be displayed in the form of a topic level in the availability notification 700, but can also be represented by the message content of the availability notification 700, as shown. Figure 5
[0186] A third topic level following the second topic level in the first topic tree section 1025 has a seventeenth topic element "[svns]" 1005. But a large number of topic elements can be arranged on the third topic level. The placeholder 471 "[svns]" in the seventeenth topic element "[svns]" 1005 stands for "service namespace" and allows the same value of the service name for different services, even if these services are directly communicatively connected with the same subscriber message broker or message broker 801.
[0187] The value of the placeholder 471 "[svns]" can be assigned to each communication subscriber, which clearly identifies the communication subscriber. Then, the communication subscriber can autonomously and without mutual coordination assign a service name to the services of the communication subscriber, which can also be identical. The application can distinguish the services of different communication subscribers based on the value of the placeholder 471 "[svns]" in the topic elements of the third topic level.
[0188] The provision of the third topic level in the first topic tree section 1025 is particularly advantageous when the services are provided in so-called containers, i.e. executable units, and executed by the operator of the communication subscriber in the execution environment of the container instance within the communication subscriber. The choice of the communication subscriber operator is usually limited when it comes to the value of the service name of the service within the container used by the operator.
[0189] The eighteenth topic element "s" 1006 and the nineteenth topic element "p" 1007 of the fourth topic level following the third topic level in the first topic tree section 1025 each indicate a service name. In the example shown, the service name is composed of the value of the eighteenth topic element "s" 1006 and the value of the nineteenth topic element "p" 1007. Figure 8 In the automation system 800 shown, only the values "s" and "p" are used as service names. As already explained, the service name here stands for a service type 711 such as a database, a file system or a programmable controller and is not unique within the automation system 800.
[0190] For example, if the value of the first subscriber identity 832 of the first subscriber message broker 802 in the first communication subscriber 806 is "ipc4711.example.com" and the first topic tree section 1025 is split into multiple topic elements in consecutive topic levels for the sixteenth topic element "[clid]" 1004 instead of the second topic level, the topic of the availability notification 700 of the first service 860 with the letter "s" as the first service name 870 can be "m / sv / com / example / ipc4711 / dm / s" according to the "MQTT Version 5.0" standard. For the placeholder 471 "[svns]" in the seventeenth topic element "[svns]" 1005 of the third topic level, the value "dm" is used here, which stands for "device management". The advantage of this design of the topic of the availability notification 700 is that an application can easily subscribe to the availability notifications 700 of the group of services in the internet domain, for example, with the topic filter "m / sv / com / example / #".
[0191] If the first subscriber identity 832 is represented in a single topic level with the value "ipc4711.example.com", the topic of the availability notification 700 is "m / sv / ipc4711.example.com / dm / s". With the availability notification 700 designed in this way, an application can easily subscribe to the availability notifications 700 of the services of a specific service namespace in the automation system 800, for example, with the topic filter 451 "m / sv / + / dm / +".
[0192] The exchange bridge of the automation system 800 uses a subscription list and conversion tables. With the help of the subscription, the exchange bridge can subscribe from the message brokers connected to the exchange bridge to the topics to be forwarded through the exchange bridge. If necessary, the conversion tables allow the exchange bridge to change the topic or the response topic 481 before, during or after the transmission.
[0193] Figure 11 An example of a first group 1200 of two sets is shown, each set having a subscription list and two conversion tables for the first exchange bridge 810 in the automation system 800, which carries the first bridge name "e" 820.
[0194] The first set 1201 has a first subscription list 1211 and a first conversion table 1212 and a second conversion table 1213. The first subscription list 1211 includes the topic filters to which the first exchange bridge 810 subscribes to the message broker 801. The first conversion table 1212 includes conversion rules for the topics of the messages received by the first exchange bridge 810 from the message broker 801 to be forwarded using the subscriptions of the first subscription list 1211 to the first subscriber message broker 802.
[0195] The second translation table 1213 comprises translation rules for the response topic 481 of messages received by the first exchange bridge 810 from the message broker 801 to forward using the subscriptions of the first subscription list 1211 to the first subscriber message broker 802.
[0196] Similarly, the second set 1202 comprises a second subscription list 1221 and a third translation table 1222 and a fourth translation table 1223. The second subscription list 1221 comprises topic filters to which the first exchange bridge 810 subscribes to the first subscriber message broker 802.
[0197] The third translation table 1222 comprises translation rules for the topic of messages received by the first exchange bridge 810 from the first subscriber message broker 802 to forward using the subscriptions of the second subscription list 1221 to the message broker 801.
[0198] The fourth translation table 1223 comprises translation rules for the response topic 482 of messages received by the first exchange bridge 810 from the first subscriber message broker 802 to forward using the subscriptions of the second subscription list 1223 to the message broker 801.
[0199] The first subscription list 1211 has a first line with a first topic filter "m / #" 1231 and a second line with a second topic filter "d / e / #" 1232. The first topic filter "m / #" 1231 causes the first exchange bridge 810 to forward all availability notifications 700 published by the message broker 801. The second topic filter "d / e / #" 1232 causes all request messages 740 and response messages 780 to be received by the first exchange bridge 810, which were published at the message broker 801 and will be forwarded via the first exchange bridge 810.
[0200] The first translation table 1212 comprises a first line with a third topic filter "m / #" 1233 on a first input page "in" 1261 and a first output page "out" 1262, which causes the topic of the availability notifications 700 to be forwarded unchanged by the first exchange bridge 810 to the first subscriber message broker 802.
[0201] The first translation table 1212 also has a second row with a fourth topic filter "d / e / / #” on the first input page "in” 1261 and a fifth topic filter "l / #” 1262 on the first output page "out”. The rule of the second row of the first translation table 1212 causes the first exchange bridge 810 to remove the delivery route of the message topic when forwarding from the message broker 801 to the first subscriber message broker 802 and replace it with the second root "l” 1102. The second root "l” 1102 indicates here a service or an application that has subscribed to this topic and has a direct communication connection to the subscriber message broker, which is given in the first service 860 in the first communication subscriber 860 related to the first subscriber message broker 802.
[0202] Furthermore, the first translation table 1212 comprises a third row with a sixth topic filter "d / e / #” 1236 on the first input page "in” and a seventh topic filter "d / #” 1237 on the first output page "out” 1262. The rule of the third row of the first translation table 1212 causes that the delivery route in the message topic is reduced from the first exchange bridge 810 by the bridge name "e” 820 of the first exchange bridge 810 when forwarding from the message broker 801 to the first subscriber message broker 802, which does not reach its destination when published in the first subscriber message broker 802 and still has to be forwarded by at least one routing segment. This is not necessary for the first communication subscriber 806, as it has only one exchange bridge.
[0203] The first row of the second translation table 1213 has an eighth topic filter "l / #” 1238 on the second input page "in” 1263 and a ninth topic filter "d / e / / #” 1239 on the second output page "out” 1264. For the first row, the response topic 481 of the message receives the delivery route if the message broker 801 is published by a service directly connected thereto or an application directly connected thereto. In the automation system 800, no service or application is directly connected to the message broker 801, which is the reason why no rule is necessary.
[0204] The second translation table 1213 also comprises a second row with a tenth topic filter "d / #” 1240 on the second input page "in” 1263 and an eleventh topic filter "d / e / #” 1241 on the second output page "out” 1264. The rule of the second row of the second translation table 1213 causes that the delivery route in the response topic 481 of the message is extended by the bridge name "e” 820. In the automation system 800, the first exchange bridge 810 thus supplements the response topic 481 of the message when forwarding from the message broker 801 to the first subscriber message broker 802.
[0205] Figure 11The first set 1201 and the second set 1202 of the illustrated subscription lists and translation tables represent two directions of transmission of messages through the first exchange bridge 810 in the automation system 800. The first set 1201 represents the forwarding of messages from the message broker 801 via the first exchange bridge 810 to the first subscriber message broker 802. The second set 1202 then applies to the opposite direction of message forwarding from the first subscriber message broker 802 via the first exchange bridge 810 to the message broker 801.
[0206] The second subscription list 1221, the third translation table 1222, and the fourth translation table 1223 of the second set 1202 have the same content as the first subscription list 1211, the first translation table 1212, and the second translation table 1213 of the first set 1201. However, there are differences when used in the 800 automation system.
[0207] Similar to the first subscription list 1221 showing the subscriptions of the first exchange bridge 810 at the message broker 801, the second subscription list 1221 showing the subscriptions of the first exchange bridge 810 at the first subscriber message broker 802 comprises a first row with the twelfth topic filter "m / #" 1242 and a second row with the thirteenth topic filter "d / e / #" 1243.
[0208] The third translation table 1222 has a first row with the fourteenth topic filter "m / #" 1244 on the third input page "in" 1265 and the third output page "out" 1266, which makes the topic of the availability notification 700 unchanged forwarded by the first exchange bridge 810 to the message broker 801.
[0209] The third translation table 1222 further comprises a second row with the fifteenth topic filter "d / e / / # " 1245 on the third input page "in" 1265 and the sixteenth topic filter "l / #" 1246 on the third output page "out" 1266. In contrast to the rule of the second row of the first translation table 1212, the rule of the second row of the third translation table 1222 is not needed in the automation system 800, because there is no service or application directly connected to the message broker 801, which uses the second root "l" 1102 for its messages and their subscribed topics.
[0210] Furthermore, the third row of the third translation table 1222 has the seventeenth topic filter "d / e / #" 1247 on the third input page "in" 1265 and the eighteenth topic filter "d / #" 1248 on the third output page "out" 1266. The rule of the third row of the third translation table 1222 makes the delivery route in the message topic reduced by the first bridge name "e" 820 of the first exchange bridge 810 when forwarding from the first subscriber message broker 802 to the message broker 801.
[0211] The fourth translation table 1223 has a first row with a nineteenth topic filter "l / #" 1249 on the fourth input page "in" 1267 and a twentieth topic filter "d / e / #" 1250 on the fourth output page "out" 1268. With the rule of the first row of the fourth translation table 1223, the response topic 481 receives the delivery route of the message if the message has been published at the first subscriber message broker 802 by a directly connected service 860. This rule causes the first exchange bridge 810 to change the second root "l" 1102 to the second root "d" 1103 to indicate that the delivery path of the message has been received by the response topic, where also the first bridge name "e" 820 is entered and an empty route segment name at the end of the return path description. In contrast to the rule of the first row of the second translation table 1213, the rule of the first row of the third translation table 1222 is used by the automation system 800, e.g. for availability notifications and response messages.
[0212] The fourth translation table 1223 has a first row with a nineteenth topic filter "l / #" 1249 on the fourth input page "in" 1267 and a twentieth topic filter "d / e / #" 1250 on the fourth output page "out" 1268. With the rule of the first row of the fourth translation table 1223, the response topic 481 receives the delivery route of the message if the message has been published at the first subscriber message broker 802 by a directly connected service 860. This rule causes the first exchange bridge 810 to change the second root "l" 1102 to the second root "d" 1103 to indicate that the delivery path of the message has been received by the response topic, where also the first bridge name "e" 820 is entered and an empty route segment name at the end of the return path description. In contrast to the rule of the first row of the second translation table 1213, the rule of the first row of the third translation table 1222 is used by the automation system 800, e.g. for availability notifications and response messages.
[0213] All groups assigned to the two sets of exchange bridges in the automation system 800 (each group has a subscription list and two translation tables) have the same composition as explained in Figure 11 for the first exchange bridge 810. However, in terms of content, the bridge name assigned to the respective exchange bridge is entered instead of the first bridge name "e" of the first exchange bridge 810.
[0214] It is not necessary to pre-configure the groups with subscription list and translation tables for the respective exchange bridge. The exchange bridges can generate the subscription list and the translation tables independently by inserting the bridge name. In order to configure an exchange bridge, it is only necessary to determine between which two message brokers the exchange bridge forms a communication connection and which bridge name is assigned to the exchange bridge.
[0215] Figure 12 The process in the automation system 800 of Figure 8 is shown when a fourth service availability notification 1804 is published by the fourth service 863 in the third communication subscriber 808 at the third subscriber message broker 804 directly connected to the service. The fourth service availability notification 1804 is here according to Figure 5The illustrated availability notification 700 is built and has an optional unique value 704.
[0216] If the first application 864 and the second application 865, which are directly connected to the third subscriber message broker 804, have established respective subscriptions, the third subscriber message broker 804 delivers the unchanged first message copy 1806 of the fourth service availability notification 1804 to them.
[0217] The second message copy 1801 of the fourth service availability notification 1804 is forwarded by the third subscriber message broker 804 via the third exchange bridge 812 to the message broker 801 of the automation system 800, wherein the topic and the response topic 481 are processed in the second message copy 1801 of the fourth service availability notification 1804 according to the translation table of the third exchange bridge 812. Here the response topic 481 receives a return routing description comprising the routing segment name of the third exchange bridge 812. However, the topic remains unchanged. The third exchange bridge 812 also stores the unique value 704 from the second message copy 1801.
[0218] The message broker 801 then sends a third message copy 1802 of the fourth service availability notification 1804 based on the second message copy 1801 via the first exchange bridge 810 to the first subscriber message broker 802, a message copy 1803 of the fourth service availability notification 1804 via the second exchange bridge 811 to the second subscriber message broker 803, and a fifth message copy 1805 of the fourth service availability notification 1804 via the fourth exchange bridge 813 to the fourth subscriber message broker 805.
[0219] When the respective message copy is delivered to a subscriber message broker, the exchange bridge processes the topic or the response topic 481 according to the assigned translation table, wherein the return routing description in the response topic 481 is expanded to comprise the routing segment name of the respective exchange bridge, while the topic remains unchanged. The exchange bridge also stores the unique value 704 from the message copy, respectively.
[0220] On the other hand, the third exchange bridge 812 ignores the subscription for the availability notification 700 from the message broker 801, since the third exchange bridge 812 already knows the unique value 704 from the second message copy 1801.
[0221] The third message copy 1802, the fourth message copy 1803 and the fifth message copy 1805 are in turn fed by the first subscriber message broker 802, the second subscriber message broker 803 and the fourth subscriber message broker 805 to the assigned exchange bridge, as the exchange bridge is subscribed to the availability notification 700 set by the subscriber message brokers, respectively. However, the exchange bridge does not transmit the message copies to the message broker 801, as the exchange bridge already knows the unique values 704 of the third message copy 1802, the fourth message copy 1803 and the fifth message copy 1805.
[0222] As the use of the unique values 704 in the availability notification 700 enables to identify message copies that have already been transmitted, feedback by repeated and multiplied transmission of message copies is prevented.
[0223] Figure 13 The flow of the automated system 800 is shown, in which the first application 864 in the third communication subscriber 808 responds to the delivery of the fifth message copy 1805 of the fourth service availability notification 1804 of the fourth service 863 in the third communication subscriber 808 with a first application request message 1904, and the third application 866 in the fourth communication subscriber 809 responds to the delivery of the fifth message copy 1805 of the fourth service availability message 1804 of the fourth service 863 in the third communication subscriber 808 with a third application request message 1901. However, it is generally not required to reply to availability notifications. Figure 8 The first application request message 1904 and the third application request message 1901 are here constructed according to the request message 740 shown.
[0224] Figure 6 The first application 864 and the third application 866 use the response topic 481 of the fifth message copy 1805 or the first message copy 1806, respectively, as the topic in the first application request message 1901 or the third application request message 1904. The return routing of the response topic 481 is here the delivery routing in this topic.
[0225] The first application 864 publishes the first application request message 1904 to the third subscriber message broker 804 that is directly connected in the third communication subscriber 808. Further, the third application 866 publishes the third application request message 1901 to the fourth subscriber message broker 805 that is directly connected in the fourth communication subscriber 809.
[0226] The third subscriber message broker 804 then sends the first application request message 1904 as the unchanged first message copy 1905 to the fourth service 863, as the first application 864 that is part of the third communication subscriber 808 and the fourth service 863 are directly connected to the third subscriber message broker 804.
[0227] The fourth subscriber message broker 805 then sends the third application request message 1901 as the unchanged third message copy 1907 to the fourth service 863, as the third application 866 that is part of the fourth communication subscriber 809 and the fourth service 863 are directly connected to the fourth subscriber message broker 805.
[0228] However, the third exchange bridge 812 connected to the third subscriber message broker 804 does not forward the first application request message 1904, because the third exchange bridge 812 does not have a subscription at the third subscriber message broker 804 to a topic filter 451 matching the topic in the first application request message 1904.
[0229] The fourth subscriber message broker 805 in the fourth communication subscriber 809 sends the sixth message copy 1902 of the third application request message 1901 via the fourth exchange bridge 813 to the message broker 801, because the third exchange bridge 812 has a subscription at the third subscriber message broker 804 to a topic filter 451 matching the topic in the fourth application request message 1904. Here, the value of the delivery route in the topic of the sixth message copy 1902 of the third-application-request message 1901 is reduced by the routing segment name of the fourth exchange bridge 813 during the transport to the message broker 801.
[0230] In contrast to the availability notification 700, the sixth message copy 1902 of the third application request message 1901 is only passed by the central subscriber message broker 801 via the third exchange bridge 812, because the other exchange bridges do not have a subscription at the message broker 801 to a topic filter 451 matching the delivery path in the topic of the sixth message copy 1902 of the third application request message 1901.
[0231] The third exchange bridge 812 then passes the seventh message copy 1903 of the third application request message 1901 to the third subscriber message broker 804 in the third communication subscriber 806. The value of the delivery route in the topic of the seventh message copy 1903 of the third-application-request message 1901 is reduced by the routing segment name of the third exchange bridge 812 when being passed to the third subscriber message broker 804, and then is empty or no longer present, because the third-application- response message 1901 has reached the third subscriber information broker 804, which is directly connected to the fourth service 863 in the third communication subscriber 808.
[0232] The third subscriber message broker 804 then delivers the seventh message copy 1903 to the fourth service 863 directly connected to the third communication subscriber 806.
[0233] The above explanation shows that for the request message 740 the feedback due to multiple sending of the request message 740 is avoided. The delivery route in the topic of the request message 740 ensures an accurate forwarding on one route with the help of different subscriptions of exchange bridges.
[0234] Figure 14 It is shown that in Figure 8The process in the automated system 800 when the fourth service 863 of the third communication subscriber 808 responds with the delivery of the eighth message copy 1905 of the first application request message 1904 of the first application 864 of the third communication user 808 using the first fourth service response message 2004, and responds with the delivery of the seventh message copy 1903 of the third application request message 1901 of the third application 866 of the fourth communication user 809 using the second fourth service response message 2001.
[0235] The first and fourth service response messages 2004 and the second and fourth service response messages 2001 correspond here. Figure 7 The response message 780 shown is established.
[0236] If response message 780 is generated and published by the service, then, similar to availability notification 700, response topic 481 in response message 780 (if the response topic is included in response message 780) is changed by the exchange bridge of the corresponding translation table assigned to it when the separately transmitted message copy is delivered to the application, and thus a return route description is recorded, which can be used by the application as a new value for further request message 740.
[0237] When sending response message 780, the fourth service 863 uses the response subject 481 of the eighth message copy 1905 of the first application request message 1904 as the subject of the first fourth service response message 2004 and uses the response subject 481 of the seventh message copy 1903 of the third application request message 1901 as the subject of the second fourth service response message 2001.
[0238] Request message 740 may also contain relevant data. The service then copies the relevant data from the corresponding request message 740 to the response message 780, and the communication subscriber can assign which request message 740 the response message 780 belongs to after receiving the response message 780.
[0239] like Figure 14 As shown, the fourth service 863 in the third communication subscriber 808 publishes a first fourth service response message 2004 to the third subscriber message broker 804 directly connected to the service. Then, the third subscriber message broker 804 delivers an unchanged ninth message copy 2005 of the first fourth service response message 2004 to the first application 864 directly connected to the third subscriber message broker 804, because the first application 864 has a corresponding subscription in the third subscriber message broker 804.
[0240] However, the third exchange bridge 812 connected to the third subscriber message broker 804 does not forward the first fourth service response message 2004, because the third exchange bridge 812 has no subscription at the third subscriber message broker 804 to a topic filter 451 matching the topic in the first fourth service response message 2004.
[0241] As Figure 14 Further, a fourth service 863 in the third communication subscriber 808 also publishes a second fourth service response message 2004 to the third subscriber message broker 804 directly connected to this service. Since there is no suitable subscription to the first application 864 or the second application 865 in the topic tree of the third subscriber message broker 804, the third subscriber message broker 804 does not deliver a message copy of the first fourth service response message 2004 to an application directly connected to the third subscriber message broker 804.
[0242] However, the third subscriber message broker 804 sends the tenth message copy 2002 of the second fourth service response message 2001 via the third exchange bridge 812 to the message broker 801, because the third exchange bridge 812 has a subscription at the third subscriber message broker 804 to a topic filter 451 matching the topic of the second fourth service response message 2001. Here, the value of the delivery route in the topic of the tenth message copy 2002 of the second fourth service response message 2001 is reduced by the routing segment name according to the third exchange bridge 812 during the transport to the message broker 801.
[0243] The message broker 801 then outputs the tenth message copy 2002 of the second fourth service response message 2001 to the fourth exchange bridge 813, because the fourth exchange bridge 813 has a subscription to the delivery route in the topic of the tenth message copy 2002 of the second fourth service response message 2001 at the message broker 801. Since there is no corresponding subscription on the delivery route in the topic, no message copy of the second fourth service response message 2001 is forwarded via other exchange bridges connected to the message broker 801.
[0244] The value of the delivery route in the topic of the seventh message copy 1903 of the second fourth service response message 2001 is reduced by the routing segment name of the fourth exchange bridge 813 when being passed to the fourth subscriber message broker 805, and then is empty or no longer present, because the second fourth service response message 2001 has reached the fourth subscriber message broker 805 directly connected to the recipient of the second fourth service response message 2001, a third application 866 in the fourth communication subscriber 809. The fourth subscriber message broker 805 then delivers the eleventh message copy 2003 of the second fourth service response message 2001 to the third application 866 in the fourth communication subscriber 809.
[0245] The above explanations show again that in the response message 780 the feedback due to multiple transmissions is avoided. The delivery route in the subject of the response message 740 ensures that the forwarding on one route is exactly forwarded with the help of the different subscriptions of the exchange bridge.
[0246] With reference to the explanations of the process, it makes no difference whether the proxy name or the bridge name is used as the route segment name in the subject of the availability notification 700, the request message 740 and the response message 780 or the response subject 481. Figures 12 to 14 With reference to the explanations of the process, it makes no difference whether the proxy name or the bridge name is used as the route segment name in the subject of the availability notification 700, the request message 740 and the response message 780 or the response subject 481.
[0247] When extending the automation system 800 shown with a new system segment comprising additional communication subscribers with services and applications, subscriber message proxies and exchange bridges, Figure 8 the new topic tree segment is added to the topic tree created by the new route options. Here, only the added part of the automation system requires a new configuration and the subscriber message proxies or the message proxies to which the new system part is connected by the new exchange bridges. All other parts of the automation system remain unchanged. The added parts do not need to be connected to the message proxies 801, they can be connected to any subscriber message proxy of the existing automation system 800 by another exchange bridge. The communication subscriber can even take over the task of the message proxies 801 with his subscriber message proxy, which means that services and applications with a direct communication connection can also be connected to the message proxies 801.
[0248] The formation rules of the topic tree, the subscription list and the conversion table explained above enable the automatic forwarding to the message proxies or subscriber message proxies to which the new system segment is connected, since the availability notifications 700 from the services of the new system segment become valid via all message proxies 801 and the other return route descriptions and delivery routes.
[0249] However, it is also possible in principle to stipulate that the forwarding of messages between the new and old parts of the automation system 800 or the availability notifications 700 is selectively or generally suppressed in the exchange bridges connected to the message proxies to which the new system segment is connected by the new exchange bridges.
[0250] In the automation system 800 in a network with message proxies 801, overlapping topic trees are formed since the availability reports 700 or the messages can be transmitted on different routes. If the topology changes or the connection is overloaded, an implicit adaptation of the delivery routes is possible.
[0251] List of reference signs
[0252] 341 message
[0253] 400 topic tree
[0254] 410 fourth topic element
[0255] 411 sixth subject element
[0256] 412 eighth subject element
[0257] 413 tenth subject element
[0258] 415 seventh subject element
[0259] 420 fifth subject element
[0260] 430 first subject element
[0261] 431 eighth subject element
[0262] 432 eleventh subject element
[0263] 433 twelfth subject element
[0264] 435 second subject element
[0265] 436 thirteenth subject element
[0266] 437 fourteenth subject element
[0267] 438 third subject element
[0268] 441 subject name
[0269] 451 subject filter
[0270] 461 first level delimiter
[0271] 462 second level delimiter
[0272] 463 third level delimiter
[0273] 464 fourth level delimiter
[0274] 465 fifth level delimiter
[0275] 471 placeholder
[0276] 481 response subject
[0277] 482 order subject
[0278] 491 related information
[0279] 700 availability notification
[0280] 701 first metadata
[0281] 702 first subject name
[0282] 704 unique value
[0283] 710 first message content
[0284] 711 service type
[0285] 712 subscriber identity
[0286] 713 service version
[0287] 720 first return route description
[0288] 721 first route segment name
[0289] 722 second route segment name
[0290] 723 third route segment name
[0291] 724 fourth route segment name
[0292] 725 fifth route segment name
[0293] 730 second return route description
[0294] 740 request message
[0295] 741 second metadata
[0296] 742 first delivery route
[0297] 743 second return route description
[0298] 744 first correlation data
[0299] 750 second message content
[0300] 780 response message
[0301] 781 third metadata
[0302] 782 second delivery route
[0303] 783 third return route description
[0304] 784 second correlation data
[0305] 790 third message content
[0306] 800 automation system
[0307] 801 message broker
[0308] 802 first subscriber message broker
[0309] 803 second subscriber message broker
[0310] 804 third subscriber message broker
[0311] 805 fourth subscriber message broker
[0312] 806 first communication subscriber
[0313] 807 second communication subscriber
[0314] 808 third communication subscriber
[0315] 809 fourth communication subscriber
[0316] 810 first exchange bridge
[0317] 811 second exchange bridge
[0318] 812 third exchange bridge
[0319] 813 fourth exchange bridge
[0320] 820 first bridge name e
[0321] 821 second bridge name f
[0322] 822 third bridge name g
[0323] 823 fourth bridge name h
[0324] 832 first subscriber identification
[0325] 833 second subscriber identification
[0326] 834 third subscriber identification
[0327] 835 fourth subscriber identification
[0328] 842 first agent name
[0329] 843 second agent name
[0330] 844 third agent name
[0331] 845 fourth agent name
[0332] 850 first communication connection
[0333] 851 second communication connection
[0334] 852 third communication connection
[0335] 853 fourth communication connection
[0336] 854 fifth communication connection
[0337] 855 sixth communication connection
[0338] 856 seventh communication connection
[0339] 860 first service
[0340] 861 second service
[0341] 862 third service
[0342] 863 fourth service
[0343] 864 first application
[0344] 865 second application
[0345] 866 third application
[0346] 870 first service name
[0347] 871 second service name
[0348] 872 third service name
[0349] 873 fourth service name
[0350] 874 first application name
[0351] 875 second application name
[0352] 876 third application name
[0353] 880 first object set
[0354] 881 second object set
[0355] 882 third object set
[0356] 883 fourth object set
[0357] 1000 first theme tree
[0358] 1001 first root m
[0359] 1002 second root d
[0360] 1003 fifteenth theme element
[0361] 1004 sixteenth theme element
[0362] 1005 seventeenth theme element
[0363] 1006 eighteenth theme element
[0364] 1007 nineteenth theme element
[0365] 1020 first routing tree level
[0366] 1021 second theme tree section
[0367] 1022 third theme tree section
[0368] 1023 fourth theme tree section
[0369] 1024 fifth subject tree section
[0370] 1025 first subject tree section
[0371] 1031 first routing subject element e
[0372] 1032 second routing subject element f
[0373] 1033 third routing subject element g
[0374] 1034 fourth routing subject element h
[0375] 1035 first stop subject element
[0376] 1036 second stop subject element
[0377] 1037 third stop subject element
[0378] 1038 fourth stop subject element
[0379] 1100 second subject tree
[0380] 1101 second root m
[0381] 1102 second root l
[0382] 1103 second root d
[0383] 1120 second routing tree level
[0384] 1121 sixth subject tree section
[0385] 1122 seventh subject tree section
[0386] 1123 eighth subject tree section
[0387] 1124 ninth subject tree section
[0388] 1130 fifth routing subject element e
[0389] 1131 sixth routing subject element f
[0390] 1132 seventh routing subject element g
[0391] 1133 eighth routing subject element h
[0392] 1141 fifth stop subject element
[0393] 1142 sixth stop subject element
[0394] 1143 seventh stop subject element
[0395] 1200 first group
[0396] 1201 first set
[0397] 1202 second set
[0398] 1211 first subscription list
[0399] 1212 first conversion table
[0400] 1213 second conversion table
[0401] 1221 second subscription list
[0402] 1222 third conversion table
[0403] 1223 fourth conversion table
[0404] 1231 first topic filter "m / #"
[0405] 1232 second topic filter "d / e / #"
[0406] 1233 third topic filter "m / #"
[0407] 1234 fourth topic filter "d / e / / #"
[0408] 1235 fifth topic filter "l / m"
[0409] 1236 sixth topic filter
[0410] 1237 seventh topic filter
[0411] 1238 eighth topic filter "l / #"
[0412] 1239 ninth topic filter "d / e / / #"
[0413] 1240 tenth topic filter "d / #"
[0414] 1241 eleventh topic filter "d / e / #"
[0415] 1242 twelfth topic filter "m / #"
[0416] 1243 thirteenth topic filter "d / e / #"
[0417] 1244 fourteenth topic filter "m / #"
[0418] 1245 fifteenth topic filter "d / e / / #"
[0419] 1246 sixteenth topic filter "l / #"
[0420] 1247 seventeenth topic filter "d / e / #"
[0421] 1248 Eighteenth subject filter "d / #"
[0422] 1249 Nineteenth subject filter "l / #"
[0423] 1250 Twentieth subject filter "d / e / / #"
[0424] 1251 Twenty-first subject filter "d / #"
[0425] 1252 Twenty-second subject filter "d / e / #"
[0426] 1261 First input page
[0427] 1262 First output page
[0428] 1263 First input page
[0429] 1264 Second output page
[0430] 1265 Third input page
[0431] 1266 Third output page
[0432] 1267 Fourth input page
[0433] 1268 Fourth output page
[0434] 1801 Second message copy
[0435] 1802 Third message copy
[0436] 1803 Fourth message copy
[0437] 1804 Fourth service availability notification
[0438] 1805 Fifth message copy
[0439] 1806 First information copy
[0440] 1901 Third application request message
[0441] 1902 Sixth message copy
[0442] 1903 Seventh message copy
[0443] 1904 First application request message
[0444] 1905 Eighth message copy
[0445] 2001 Second fourth service response message
[0446] 2002 Tenth message copy
[0447] 2003 eleventh message copy
[0448] 2004 first fourth service response message
[0449] 2005 ninth message copy
Claims
1. An automated system (800) having a communication infrastructure having multiple communication subscribers, each of which is connected to at least one message broker (801) via a communication connection, wherein The communication subscriber is designed to publish or subscribe to messages under a topic name (441) at the message broker (801). The communication subscriber has a subscription to an availability notification (700) at the message broker (801), which instructs the communication subscriber to provide services. The availability notifications (700) each have a first return route description (720), which is extended with the route segment name of the route segment covered during transmission between communication subscribers via a communication connection to the message broker (801). The interaction occurs between communication subscribers. At least one first communication subscriber (806) who subscribes to messages under the first topic name (702) at the message broker (801) publishes an availability notification (700) under the first topic name (702) at the message broker (801), the availability notification instructing the first communication subscriber (806) to provide the services assigned to the first topic name (702). Each additional communication subscriber receives a copy (700) of an availability notification message having a first return route description (720), the first return route description including the route segment name of the covered route segment originating from the first communication subscriber (806). At least one of the second communication subscribers (807) publishes a request message (740) for a service under a first topic name (702) at the message broker (801), wherein the second communication subscriber (807) uses a first return route description (703) of a message copy of the service availability notification (700) as a delivery route to the first communication subscriber (809) in the request message (740), wherein the delivery route of the request message (740) reduces the route segment name of the covered route segment via a communication connection to the message broker (801) during transmission from the second communication subscriber (807) to the first communication subscriber (806).
2. The automation system (800) according to claim 1. The second communication subscriber (807) has subscribed to messages under a second topic name at the message broker (801), wherein the request message (740) has a second return route description (730), which is expanded by the route segment name of the covered route segment during transmission from the second communication subscriber (807) to the first communication subscriber (806) via the communication connection to the message broker (801), and The first communication subscriber (806) publishes a response message (780) at the message broker (801) to the request message (740) from the service to the second topic name (702). The first communication subscriber (806) uses the second return route description (730) of the request message (740) as the delivery route to the second communication subscriber (807) in the response message (780), wherein the delivery route of the response message (740) reduces the route segment name of the covered route segment via the communication connection to the message broker (801) during transmission from the first communication subscriber (806) to the second communication subscriber (807).
3. The automation system (800) according to claim 1 or 2. The availability notification (700) has first metadata (701) and first message content (710). The first metadata (701) includes a first topic name (702), a first return route description (720), and a unique value (704), and the first message content (710) includes a service type (711) and an optional service version (713).
4. The automation system (800) according to any one of claims 1 to 3, wherein, Each communications subscriber includes a subscriber message broker, which is connected to the message broker (801) via an associated communications connection. Each subscriber message broker is assigned a broker name that uniquely identifies the subscriber message broker relative to other subscriber message brokers connected to the message broker (801).
5. The automation system (800) according to claim 4. in, The communication subscriber includes services and / or applications that are connected to the subscriber's subscriber message broker via a communication connection, wherein the services and / or applications are designed to publish messages or subscribe to messages under a topic name (441) at the subscriber's subscriber message broker.
6. The automation system (800) according to claim 5. in, In the communication subscriber, each service is assigned a service name, and each application is assigned an application name, which uniquely identifies the service or application in the communication subscriber.
7. The automation system (800) according to any one of claims 1 to 6, wherein, The communication connections between the communication subscriber and the message broker (801) are respectively switching bridges. Each of the switching bridges is assigned a bridge name that uniquely identifies the switching bridge relative to any other switching bridge connected to the message broker (801).
8. The automation system (800) according to claim 7, wherein, The switching bridge has a subscription and a conversion table, wherein the switching bridge is designed to use the subscription to subscribe to a topic name (441) via a subscriber message broker connected to the switching bridge, the subscriber message broker being forwarded by the switching bridge, and wherein the switching bridge is designed to use the conversion table to change the topic name (441) during transmission.
9. The automation system (800) according to any one of claims 1 to 8, wherein the message broker (801) has a topic tree (400) wherein a distinction is made between topic names (441) containing delivery routes and topic names (441) not containing delivery routes.
10. The automation system (800) according to claim 9, wherein, The delivery routes are each part of the topic name (441).
11. The automation system (800) according to claim 9 or 10, wherein, Availability notifications (700) are marked in the topic tree (400).
Citation Information
Patent Citations
Common gateway platform
EP3386171B1
Concept for controlling a message transmission between communication subscribers in an automation system
EP3523927B1
Controlling message delivery in publish / subscribe messaging
US20110258268A1
Topic-based notification service
US7685265B1