EP4139799A1 - Method and device for distributing software components of one or more applications to infrastructure components of an industrial infrastructure suitable for the execution thereof - Google Patents

Method and device for distributing software components of one or more applications to infrastructure components of an industrial infrastructure suitable for the execution thereof

Info

Publication number
EP4139799A1
EP4139799A1 EP21728446.2A EP21728446A EP4139799A1 EP 4139799 A1 EP4139799 A1 EP 4139799A1 EP 21728446 A EP21728446 A EP 21728446A EP 4139799 A1 EP4139799 A1 EP 4139799A1
Authority
EP
European Patent Office
Prior art keywords
infrastructure
components
nodes
software components
specific properties
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
EP21728446.2A
Other languages
German (de)
French (fr)
Inventor
Jürgen Gesswein
Lena HUPP
Harald Müller
Christian Royer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Publication of EP4139799A1 publication Critical patent/EP4139799A1/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/781Centralised allocation of resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • H04L47/803Application aware
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • H04L47/805QOS or priority aware
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

The invention relates to a computer-supported method for distributing software components of one or more applications to infrastructure components of an industrial infrastructure suitable for the execution thereof, said industrial infrastructure comprising a number of infrastructure components, which are formed by a number of computer nodes (C) and a number of network nodes (N), wherein an application has one or more software components which exchange and/or transfer data between one another via interfaces (I01 to I03, I13), wherein the computer nodes are/can be each connected to at least one infrastructure component via a connection, which is at least part of a communications network belonging to the infrastructure, to which the computer nodes are connected, wherein the computer nodes each have capability-specific characteristics and the connections each have transmission-specific characteristics, characterised in that the distribution of the software components is optimised with the aim that as many applications as possible of a predefined number of applications are used in the infrastructure with the proviso that each software component of an application is assigned to only one computer node on which it can be executed while taking the capability-specific characteristics into account, and that a connection or multiple connections coupled after one another via one or more network nodes is/are selected for each interface between at least two of these assigned software components, taking into consideration the transmission-specific and resource-specific characteristics.

Description

Beschreibung description
Verfahren und Vorrichtung zum Verteilen von Softwarekomponen- ten einer oder mehreren Applikationen auf für deren Ausfüh- rung geeignete Infrastrukturkomponenten einer industriellen Infrastruktur Method and device for distributing software components of one or more applications to infrastructure components of an industrial infrastructure that are suitable for their execution
Die Erfindung betrifft Verfahren und Vorrichtung zum Vertei- len von Softwarekomponenten einer oder mehreren Applikationen auf für deren Ausführung geeignete Infrastrukturkomponenten einer industriellen Infrastruktur sowie ein zugehöriges Com- puterprogramm (-produkt). The invention relates to a method and device for distributing software components of one or more applications to infrastructure components of an industrial infrastructure that are suitable for their execution, as well as an associated computer program (product).
Eine industrielle Infrastruktur kann ein modernes Automati- sierungssystem sein. Es zeichnet sich durch zentralisierte und hierarchische Steuerungsarchitekturen aus, wie z. B. die Automatisierungspyramide gemäß den Standards ISA-95 und IEC 62264. Nach diesen Standards stellt die eigentliche konventi- onelle Architektur der Automatisierungspyramide eine klare Trennung von Systemen und Funktionalitäten in fünf Architek- turebenen dar, die ihren eigenen spezifischen Automatisie- rungszweck haben und nur mit den angrenzenden Architekturebe- nen Informationen austauschen. Dabei repräsentiert die un- terste Architekturebene den Fertigungs- und Produktionspro- zess, welcher mittels Eingangs- und Ausgangssignale I/O einer Feldumgebung durch sogenannte SPS-Maschinen (SPS in Englisch: PLC: Programmable Logic Controller) auf einer Steuerungsumge- bung gesteuert wird. Steuerungsebene bzw. -Umgebung und Feld- ebene bzw. -Umgebung bilden dabei die nächsthöhere Architek- tureeben. Diese Architekturebene ist meist als Prozessleit- und/oder Kommunikationsnetzwerkumgebung ausgeprägt und wird oft mit dem Begriff SCADA (Supervisory Control and Data Ac- quisition) abgekürzt. Eine Betriebsleitumgebung bzw. -ebene bildet die nächst höhere Architekturebene und wird häufig mit dem Begriff MES (Manufacturing Execution System) abgekürzt. Eine Unternehmensumgebung bzw. -ebene bildet die höchste Ar- chitekturebeneund wird häufig mit dem Begriff ERP (Enterprise Ressource Planning) abgekürzt. Diese hierarchische Automatisierungsstruktur nach dem ISA- Standard formalisiert die Interaktionen dieser Hierarchieebe- nen, um eine automatisierte Kommunikation zwischen Unterneh- mensplanung und Fertigungssteuerungssystemen zu ermöglichen. An industrial infrastructure can be a modern automation system. It is characterized by centralized and hierarchical control architectures, such as B. the automation pyramid according to the ISA-95 and IEC 62264 standards. According to these standards, the actual conventional architecture of the automation pyramid represents a clear separation of systems and functionalities in five architectural levels that have their own specific automation purpose and only exchange information with the adjacent architectural levels. The lowest architecture level represents the manufacturing and production process, which is controlled by means of input and output signals I / O of a field environment by so-called PLC machines (PLC in English: PLC: Programmable Logic Controller) in a control environment. The control level or environment and the field level or environment form the next higher architecture level. This architecture level is usually developed as a process control and / or communication network environment and is often abbreviated to the term SCADA (Supervisory Control and Data Acquisition). An operations management environment or level forms the next higher architecture level and is often abbreviated to the term MES (Manufacturing Execution System). A corporate environment or level forms the highest level of architecture and is often abbreviated to ERP (Enterprise Resource Planning). This hierarchical automation structure according to the ISA standard formalizes the interactions of these hierarchical levels in order to enable automated communication between company planning and production control systems.
Eine hierarchische Struktur weist eine hohe Robustheit auf und betont eine gute Vorhersagbarkeit und eine globale Sys- temoptimierung. Einerseits ist diese Struktur für kleine Sys- teme effektiv, die in sehr stabilen und strukturierten Umge- bungen ausgeführt werden, in denen die Pyramide gemäß ISA-95 für eine einfache Entwicklung und Wartung genutzt werden kann Diese Zuverlässigkeit zwischen den Architekturebenen führt zu unzureichender Anpassungsfähigkeit und Flexibilität bei Pro- duktionsänderungen. Darüber hinaus kann ein einzelner Fehler- punkt die Systemleistung drastisch reduzieren. Informationen werden auch inkonsistent und veraltet, sobald eine Kommunika- tionsverzögerung auftritt, die die teilweise und globale Ent- scheidungsfindung beeinträchtigt. Verschiedenste Arten von Hard- und Software kommen hierbei zum Einsatz. Daraus resul- tiert, dass auch die Kommunikation zwischen diesen Komponen- ten inhomogen ist. Während auf den unteren Architekturebenen in der Regel Kommunikationsprotokolle wie Profinet (Process Field Network) eingesetzt wird, ist auf den oberen Architek- turebenen der Einsatz von OPC-UA (Open Platform Communica- tions - Unified Architecture) gepaart mit TSN (Time Sensitive Network) möglich. Jedoch sind an den Grenzen der Architektur- ebenen immer Netzwerkschnittstellen - bzw. Gateways notwen- dig, um die uneinheitlichen Kommunikationsprotokolle zu über- setzen. Auch die Datenhaltung ist inhomogen. Die Art des En- gineerings der einzelnen Komponenten unterscheidet sich eben- falls stark. A hierarchical structure is very robust and emphasizes good predictability and global system optimization. On the one hand, this structure is effective for small systems that are implemented in very stable and structured environments in which the pyramid according to ISA-95 can be used for easy development and maintenance. This reliability between the architectural levels leads to insufficient adaptability and Flexibility with production changes. In addition, a single point of failure can drastically reduce system performance. Information also becomes inconsistent and out of date once a communication delay occurs that affects partial and global decision-making. Various types of hardware and software are used here. This means that communication between these components is also inhomogeneous. While communication protocols such as Profinet (Process Field Network) are generally used on the lower architecture levels, OPC-UA (Open Platform Communications - Unified Architecture) paired with TSN (Time Sensitive Network) is used on the upper architecture levels. possible. However, network interfaces or gateways are always required at the limits of the architecture levels in order to translate the inconsistent communication protocols. The data management is also inhomogeneous. The type of engineering of the individual components also differs greatly.
Unter diesen Inhomogenitäten leiden auch die Wartbarkeit, Er- weiterbarkeit und Aktualisierbarkeit. In diesem Umfeld be- steht der Wunsch, einen nahtlosen Übergang zwischen den oben beschriebenen Architekturebenen zu schaffen. Es ist der Einsatz eines modularen Systems als industrielle Infrastruktur sinnvoll. Ein solches modulares System funktio- niert in der Regel nur, wenn alle Infrastrukturkomponenten und Schnittstellen der Applikationen einwandfrei funktionie- ren und wenn bestimmte Randbedingungen erfüllt sind. Maintainability, expandability and updateability also suffer from these inhomogeneities. In this environment there is a desire to create a seamless transition between the architecture levels described above. It makes sense to use a modular system as an industrial infrastructure. Such a modular system usually only works if all infrastructure components and interfaces of the applications work properly and if certain boundary conditions are met.
(Industrielle) Anwendungen A (auch Applikationen genannt) be- stehen - wie beispielhaft in Figur 1 gezeigt - in der Regel aus mehreren abhängigen Softwarekomponenten (auch Workloads W0 bis W3 genannt), die Daten über Schnittstellen (auch In- terfaces I01 bis I03, I13 genannt) austauschen. Die Infrastruk- turkomponenten können die Rechenknoten und Netzwerknoten um- fassen. Die Infrastrukturkomponenten können physische und/oder virtuelle Komponenten sein. Rechenknoten sind Teile von Recheneinheiten, sie können entweder reine Hardwareknoten oder virtuelle Maschinen sein. Rechenknoten anderer Domänen, wie z.B. der Cloud, dem Datencenter oder der Edge, werden auf die gleiche Weise modelliert, d.h. die Eigenschaften der Do- mänen werden durch die Eigenschaften der Modellkomponenten ausgedrückt. (Industrial) applications A (also called applications) consist of several dependent software components (also called workloads W 0 to W 3 ), the data via interfaces (also interfaces I 01 to I 03, called I 13 ). The infrastructure components can include the computing nodes and network nodes. The infrastructure components can be physical and / or virtual components. Computing nodes are parts of computing units; they can either be pure hardware nodes or virtual machines. Computing nodes of other domains, such as the cloud, the data center or the edge, are modeled in the same way, ie the properties of the domains are expressed by the properties of the model components.
Die Schnittstellen haben jeweils bestimmte Merkmale (z.B. Re- chenkomplexität, Speicherbedarf, Datenrate, Aufrufhäufig- keit). Darüber hinaus kann es zusätzlich Einschränkungen ge- ben, die erfüllt werden müssen, damit die Applikation als voll funktionsfähig angesehen werden kann (z.B. End-to-End- Latenzzeit, Reaktionszeiten, Verfügbarkeit der Applikation oder Teile der Applikation, Datenschutzbeschränkungen für Infrastrukturkomponenten oder Schnittstellen). Diese Merkmale und Einschränkungen beschreiben hierbei schnittstellenspezi- fische Eigenschaften. Bei industriellen Systemen laufen die Infrastrukturkomponenten einer Applikation in der Regel auf verschiedenen Rechenknoten z.B. Cj ggf. in verschiedenen Do- mänen bzw. unterschiedlichen Fertigungszellen. Die Rechenkno- ten sind durch Verbindungen z.B. Lk und Netzknoten z.B. Ni miteinander verbunden, wobei die obigen Indizes i, j, k = 1 bis n betragen. Die Rechenknoten können über einen einzelnen oder mehrere Netzwerkpfade miteinander verbunden sein. Die verschiedenen Rechenknoten können heterogen sein, d.h. sie haben unterschiedliche fähigkeitsspezifische Eigenschaften z.B. Rechenkapazität, Hauptspeicherkapazität, Speicherkapazi- tät, CPU-Architektur. Die Verbindungen und die Netzwerkknoten Ni können ebenfalls unterschiedliche Eigenschaften haben. Übertragungsspezifische Eigenschaften der Verbindungen sind z.B. Bandbreite und Latenz und ressourcenspezifische Eigen- schaften der Netzknoten sind z.B. Reaktionszeit, Ausfallsi- cherheit und Verfügbarkeit. The interfaces each have certain characteristics (eg computational complexity, memory requirements, data rate, call frequency). In addition, there may be additional restrictions that must be met so that the application can be viewed as fully functional (e.g. end-to-end latency, response times, availability of the application or parts of the application, data protection restrictions for infrastructure components or interfaces) . These features and restrictions describe interface-specific properties. In industrial systems, the infrastructure components of an application usually run on different computing nodes, eg Cj, possibly in different domains or different production cells. The computing nodes are connected to one another by connections, for example L k and network nodes, for example N i , the above indices i, j, k = 1 to n. The computing nodes can be connected to one another via a single or multiple network paths. the different computing nodes can be heterogeneous, ie they have different ability-specific properties, eg computing capacity, main storage capacity, storage capacity, CPU architecture. The connections and the network nodes Ni can also have different properties. Transmission-specific properties of the connections are, for example, bandwidth and latency, and resource-specific properties of the network nodes are, for example, response time, failure safety and availability.
Eine hochmoderne Technologie zur Implementierung von Applika- tionen, die in modulare Softwarekomponenten unterteilt sein können, ist eine Containertechnologie (wie z.B. Docker). Softwarekomponenten können in Container gepackt werden, die auf einem oder mehreren Container-Clustern laufen können. Mo- dernste Technologien zur Verwaltung mehrerer Container auf einem Cluster sind Container-Orchestrierungstechnologien wie z.B. Kubernetes. Kubernetes verfügt über einen Scheduler, der so genannte Pods (eine Sammlung von Containern) einem Satz von Knoten innerhalb eines Clusters zuweist. In diesem Sprachgebrauch von Kubernetes ist ein Knoten ein Computersys- tem, physisch oder virtuell, das für den Betrieb von Contai- nern unter der Kontrolle von Kubernetes eingerichtet ist.A state-of-the-art technology for implementing applications that can be divided into modular software components is container technology (such as Docker). Software components can be packed in containers that can run on one or more container clusters. The latest technologies for managing multiple containers on a cluster are container orchestration technologies such as Kubernetes. Kubernetes has a scheduler that assigns pods (a collection of containers) to a set of nodes within a cluster. In this Kubernetes parlance, a node is a computer system, physical or virtual, that is set up to operate containers under the control of Kubernetes.
Ein Cluster ist ein Gesamtsystem, dass sich aus Nodes zusam- mensetzt. Kubernetes fasst Container-Images (Speicherabbild eines Containers), ihre Konfiguration und die Anzahl der be- nötigten Instanzen in Deployments zusammen. Die Parameter ei- nes Deployments überwacht Kubernetes selbsttätig. Das Tool sorgt dafür, dass die gewünschte Anzahl von Containern jeder- zeit läuft. Änderungen an der Software oder der Konfiguration verteilt Kubernetes mit einem Rollout. Kubernetes ist nicht für eine solche hierarchische Architektur, wie sie im indust- riellen Umfeld eingesetzt wird, konzipiert worden. Es werden bei der Verteilung der Pods keine fähigkeitsspezifischen, übertragungsspezifischen bzw. ressourcenspezifischen Eigen- schaften innerhalb der erwähnten Infrastruktur berücksich- tigt. In EP 19152467.7 ist ein Scheduler zum Abbilden von industri- ellen Anwendungen auf eine spezifische Infrastruktur schon vorgeschlagen worden. A cluster is an overall system made up of nodes. Kubernetes summarizes container images (memory image of a container), their configuration and the number of required instances in deployments. Kubernetes automatically monitors the parameters of a deployment. The tool ensures that the required number of containers is running at all times. Kubernetes distributes changes to the software or the configuration with a rollout. Kubernetes was not designed for such a hierarchical architecture as is used in the industrial environment. When distributing the pods, no skill-specific, transmission-specific or resource-specific properties within the infrastructure mentioned are taken into account. A scheduler for mapping industrial applications to a specific infrastructure has already been proposed in EP 19152467.7.
In US 16/365,965 ist ein Verfahren zum Betreiben eines Con- tainer-Orchestrierungssystems schon vorgeschlagen worden. A method for operating a container orchestration system has already been proposed in US Pat. No. 16 / 365,965.
Aus "Optimal Operator Placement for Distributed Stream Pro- cessing Applications", Valeria Cardellini et al, DEBS '16: Proceedings of the 10th ACM International Conference on Dis- tributed and Event-based Systems June 2016 Pages 69-80 (https://doi.org/10.1145/2933267.2933312) ist eine Applika- tionsverteilung bekannt. Die Zielfunktion der darin vorge- schlgenen gemischt ganzzahligen Optimierung (MILP) ist eine gewichtete Summe aus einer „ResponseTime" (Antwortzeit) und einer „Availability" (Verfügbarkeit), die Verbindungen zwi- schen den Knoten sind dabei fest vorgegeben. From "Optimal Operator Placement for Distributed Stream Processing Applications", Valeria Cardellini et al, DEBS '16: Proceedings of the 10th ACM International Conference on Distributed and Event-based Systems June 2016 Pages 69-80 (https: // doi.org/10.1145/2933267.2933312) an application distribution is known. The target function of the mixed integer optimization (MILP) proposed therein is a weighted sum of a “ResponseTime” and an “Availability”, the connections between the nodes are fixed.
MILP befasst sich mit der Optimierung linearer Zielfunktionen über eine Menge, die durch lineare Gleichungen und Unglei- chungen eingeschränkt ist. Sie ist Grundlage der Lösungsver- fahren der (gemischt-) ganzzahligen linearen Optimierung. Ein sogenannter Solver (Löser) ist eine Sammelbezeichnung für spezielle mathematische Computerprogramme, die mathematische Probleme numerisch lösen können. Im Zusammenhang mit MILP (mixed integer linear programming bzw. gemischt ganzzahlige lineare Programmierung) können für IP-Programme (ganzzahlige Optimierungsmodelle) Standardsolver wie z.B. CPLEX, Scip, Gurobi, Xpress verwendet werden. MILP is concerned with optimizing linear objective functions over a set constrained by linear equations and inequalities. It is the basis of the solution methods of (mixed) integer linear optimization. A so-called solver is a collective term for special mathematical computer programs that can solve mathematical problems numerically. In connection with MILP (mixed integer linear programming or mixed integer linear programming) standard solvers such as CPLEX, Scip, Gurobi, Xpress can be used for IP programs (integer optimization models).
Es ist Aufgabe der vorliegenden Erfindung, ein Verfahren und eine Vorrichtung gegenüber dem oben genannten Stand der Tech- nik insbesondere im industriellen Umfeld zu verbessern. It is the object of the present invention to improve a method and a device compared to the above-mentioned prior art, particularly in an industrial environment.
Die Aufgabe wird durch die in den unabhängigen Ansprüchen an- gegebenen Merkmale gelöst. In den abhängigen Ansprüchen sind vorteilhafte Weiterbildungen der Erfindung dargestellt. Die Erfindung beansprucht ein rechnergestütztes Verfahren zum Verteilen von Softwarekomponenten einer oder mehreren Appli- kationen auf für deren Ausführung geeignete Infrastrukturkom- ponenten einer industriellen Infrastruktur, welche eine Men- ge von Infrastrukturkomponenten umfasst, welche aus einer Menge von Rechenknoten und einer Menge von Netzwerkknoten ge- bildet wird, wobei eine Applikation eine oder mehrere Soft- warekomponenten aufweist, die über Schnittstellen untereinan- der Daten austauschen und/oder übergeben, wobei die Rechenknoten jeweils mit wenigstens einer Infra- strukturkomponente über eine Verbindung verbindbar oder ver- bunden sind, welche zumindest Teil eines zur Infrastruktur gehörigen Kommunikationsnetzwerkes ist, an das die Rechenkno- ten angeschlossen sind, wobei die Rechenknoten jeweils fähig- keitsspezifische Eigenschaften, die Verbindungen jeweils übertragungsspezifische Eigenschaften aufweisen, dadurch gekennzeichnet, dass die Verteilung der Softwarekom- ponenten mit dem Ziel optimiert wird, dass möglichst viele Applikationen einer vorgebbaren Menge von Applikationen in der Infrastruktur unter der Voraussetzung zur Anwendung kom- men können, dass jede Softwarekomponente einer Applikation nur einem Rechenknoten, auf welchem sie unter Berücksichti- gung der fähigkeitsspezifischen Eigenschaften ausführbar ist, zugewiesen wird und dass für jede Schnittstelle zwischen zu- mindest zwei dieser zugewiesenen Softwarekomponenten eine Verbindung oder mehrere via ein oder mehrere Netzknoten hin- tereinander gekoppelte Verbindungen unter Berücksichtigung der übertragungsspezifischen und ressourcenspezifischen Ei- genschaften ausgewählt wird oder werden. The object is achieved by the features specified in the independent claims. Advantageous developments of the invention are presented in the dependent claims. The invention claims a computer-aided method for distributing software components of one or more applications to infrastructure components of an industrial infrastructure that are suitable for their execution, which includes a set of infrastructure components which are made up of a set of computing nodes and a set of network nodes. is formed, with an application having one or more software components that exchange and / or transfer data to one another via interfaces, the computing nodes each being connectable or connected to at least one infrastructure component via a connection, which at least partially of a communication network belonging to the infrastructure to which the computing nodes are connected, the computing nodes each having capability-specific properties, the connections each having transmission-specific properties, characterized in that the distribution of the software communication components is optimized with the aim that as many applications as possible from a predeterminable set of applications can be used in the infrastructure, provided that each software component of an application has only one computing node on which it can be executed taking into account the capability-specific properties , and that for each interface between at least two of these assigned software components one connection or several connections coupled one behind the other via one or more network nodes is or will be selected, taking into account the transmission-specific and resource-specific properties.
Die Optimierung kann mittels gemischt-ganzzahliger Optimie- rung durchgeführt werden. The optimization can be carried out by means of mixed-integer optimization.
Eine erste Infrastrukturkomponente (Startkomponente bzw. Source) ist jeweils über eine Verbindung bzw. über mehrere Verbindungen mit einer zweiten Infrastrukturkomponente (Ziel- komponenten bzw. Destination) für einen Austausch (d.h. bidi- rektional) bzw. zur Übergabe (d.h. unidirektional) von Daten verbunden. In diesem Kontext werden diese Verbindung(en) als (Netzwerk-)Pfad von der ersten bis zur zweiten Infrastruktur- komponente genannt. Vorzugsweise ist jeder Pfad gerichtet.A first infrastructure component (start component or source) is in each case via a connection or several connections with a second infrastructure component (target components or destination) for an exchange (i.e. bidirectional) directionally) or for the transfer (ie unidirectional) of data. In this context, these connection (s) are referred to as the (network) path from the first to the second infrastructure component. Preferably each path is directional.
Wenn Daten von einem ersten Rechenknoten zu einem zweiten Re- chenknoten über eine oder mehrere gekoppelte Verbindungen übergeben werden, dann sollten umgekehrt vom zweiten Rechen- knoten zum ersten Rechenknoten Daten über dieselbe Verbindung oder dieselben gekoppelten Verbindung übergeben werden. If data is transferred from a first computing node to a second computing node via one or more coupled connections, then conversely, data should be transferred from the second computing node to the first computing node via the same connection or the same coupled connection.
Die Schnittstellen können jeweils schnittstellenspezifische Eigenschaften aufweisen. The interfaces can each have interface-specific properties.
Bei Auswahl mehrerer gekoppelten Verbindungen für eine Schnittstelle die Summe der Werte der übertragungsspezifi- schen Eigenschaften über die mehreren Verbindungen den ent- sprechenden oder vergleichbaren Wert der schnittstellenspezi- fischen Eigenschaft der Schnittstelle unterschreiten oder identisch sein muss. Mit anderen Worten ausgedrückt: Jeder Pfad (eine Verbindung bzw. mehrere gekoppelte Verbindungen) hat beispielsweise eine Latenz als übertragungsspezifische Eigenschaft. Jede Schnittstelle hat eine maximale Latenz als entsprechende schnittstellenspezifische Eigenschaft. Wenn ei- ne Schnittstelle über einen Pfad läuft, d.h. Daten über den Pfad leitet, muss die Latenz des Pfades kleiner gleich der maximalen Latenz der Schnittstelle sein. If several coupled connections are selected for an interface, the sum of the values of the transmission-specific properties over the several connections must fall below the corresponding or comparable value of the interface-specific property of the interface or must be identical. In other words: each path (a connection or several coupled connections) has, for example, a latency as a transmission-specific property. Each interface has a maximum latency as a corresponding interface-specific property. If an interface runs over a path, i.e. forwards data over the path, the latency of the path must be less than or equal to the maximum latency of the interface.
Wenn mehrere Schnittstellen über die gleiche Verbindung ge- führt werden bzw. Daten über die gleiche Verbindung leiten sollen, dann muss die Summe der Werte der schnittstellenspe- zifischen Eigenschaften über die mehreren Schnittstellen den entsprechenden oder vergleichbaren Wert der übertragungsspe- zifischen Eigenschaft der gleichen Verbindung unterschreiten oder identisch sein. If several interfaces are routed over the same connection or data are to be routed over the same connection, then the sum of the values of the interface-specific properties over the multiple interfaces must be less than the corresponding or comparable value of the transmission-specific properties of the same connection or be identical.
Jede Verbindung hat eine maximale Bandbreite als übertra- gungsspezifische Eigenschaft, die nicht überschritten werden darf. Demnach muss für jede einzelne Verbindung im Kommunika- tionsnetzwerk gelten: Die Summe der Bandbreiten aller Schnittstellen als schnittstellenspezifische Eigenschaften, die über einen Pfad laufen bzw. dem Pfad zugeordnet sind), der diese betrachtete Verbindung benutzt, muss kleiner oder gleich der Bandbreite der betrachteten Verbindung als ent- sprechende übertragungsspezifische Eigenschaft sein. Each connection has a maximum bandwidth as a transmission-specific property that is not exceeded allowed. Accordingly, the following must apply to each individual connection in the communication network: The sum of the bandwidths of all interfaces as interface-specific properties that run over a path or are assigned to the path used by this connection must be less than or equal to the bandwidth of the connection under consideration as a corresponding transmission-specific property.
Die Netzwerkknoten können jeweils ressourcenspezifische Ei- genschaften aufweisen, die bei der Auswahl der einen oder mehreren Verbindungen berücksichtigt werden. The network nodes can each have resource-specific properties that are taken into account when selecting the one or more connections.
Es kann eine Gewichtung bei der Berücksichtigung der fähig- keitsspezifischen, der übertragungsspezifischen und/oder der ressourcenspezifischen Eigenschaften in die Optimierung ein- gehen. A weighting when taking into account the capability-specific, the transmission-specific and / or the resource-specific properties can be included in the optimization.
Alle Softwarekomponenten einer jeden Applikation, die zur An- wendung kommen bzw. in der Infrastruktur installiert bzw. ausgeführt werden soll, werden demnach jeweils einem Rechen- knoten zugewiesen. Für den Datenaustausch/-übergabe der Schnittstellen müssen entsprechende Netzwerkpfade in der Netzwerkinfrastruktur gefunden werden. Dabei können jeweils mehrere mögliche Netzwerkpfade zur Auswahl stehen. Die Ver- teilung bzw. Platzierung der Softwarekomponenten und das Rou- ting der Daten im Kommunikationsnetzwerk, erfolgt derart, dass alle Anforderungen der Applikationen, des Kommunikati- onsnetzes und der Infrastrukturkomponenten erfüllt werden. All software components of each application that are used or that are to be installed or executed in the infrastructure are accordingly assigned to one computing node. Corresponding network paths must be found in the network infrastructure for the data exchange / transfer of the interfaces. Several possible network paths can be selected in each case. The distribution or placement of the software components and the routing of the data in the communication network takes place in such a way that all requirements of the applications, the communication network and the infrastructure components are met.
Die oben genannten kennzeichnenden Schritte können wiederholt werden. The above identifying steps can be repeated.
Die Infrastruktur umfasst hierbei zumindest ein Kommunikati- onsnetzwerk und die Infrastrukturkomponenten. Rechenknoten können etwa Fertigungsmaschinen, (IoT-)Geräte, Terminal, PCs und ggf. Sensoren bzw. Aktoren sein. Die Kopplung bzw. die Verbindung von Rechen- bzw. Netzknoten kann hierbei ggf. phy- sikalisch bidirektional (Datenaustausch) oder unidirektional (Datenübergabe) ausgebildet sein. The infrastructure here comprises at least one communication network and the infrastructure components. Computing nodes can be manufacturing machines, (IoT) devices, terminals, PCs and possibly sensors or actuators. The coupling or the connection of computing or network nodes can possibly be phy- be physically bidirectional (data exchange) or unidirectional (data transfer).
Der Datenaustausch bzw. die Datenübergabe kann auch nur ein- fache Nachrichten bzw. ggf. nur das Senden bzw. Empfangen von einfachen Signalen umfassen. Hierbei kann der Datenaustausch verdrahtet oder drahtlos mittels gängiger Funktechnik WLAN, Bluetooth, NFC, Mobilfunk etc. ausgeprägt sein kann. The data exchange or the data transfer can also comprise only simple messages or, if applicable, only the sending or receiving of simple signals. The data exchange can be wired or wireless using standard wireless technology such as WLAN, Bluetooth, NFC, cellular radio, etc.
Die Applikation kann firm- und/oder softwaretechnisch als App oder auch als Container ausgeprägt sein. Container betten den Softwarecode einer Applikation in einen sicheren Speicherbe- reich ein, zu dem es dann nur einen ganz geregelten, ggf. verschlüsselten bzw. zertifizierten Zugang von außen gibt. The application can be designed in terms of firm and / or software technology as an app or also as a container. Containers embed the software code of an application in a secure storage area, to which there is then only fully regulated, possibly encrypted or certified access from outside.
Bei der Verteilung der Softwarekomponenten können auch kryp- tographischspezifische Eigenschaften der Infrastrukturkompo- nenten berücksichtigt werden. When distributing the software components, cryptographic-specific properties of the infrastructure components can also be taken into account.
Kryptographische Eigenschaften können durch eine Art Härtemaß hinsichtlich einer Wahrscheinlichkeit, dass von außen ein An- griff erfolgreich ist, ausgedrückt werden. So könnte ein asymmetrisches Verschlüsselungsverfahren ein anderes Härtemaß aufweisen als ein symmetrisches Verschlüsselungsverfahren. Weitere neben vielen anderen kryptographische Schutzmaßnahmen sind Signaturverfahren und ggf. Zertifikate. Auch diesen kann ein Härtemaß zugewiesen werden. Cryptographic properties can be expressed by a type of hardness measure with regard to the probability that an attack from outside will be successful. An asymmetrical encryption method could have a different degree of hardness than a symmetrical encryption method. Further cryptographic protection measures, among many others, are signature procedures and possibly certificates. These can also be assigned a degree of hardness.
Damit kann bei der Auswahl der Verbindung oder der mehreren Verbindungen nicht nur der Durchsatz, sondern auch die Fähig- keit eines oder mehrerer Knoten dieser Verbindung(en), An- griffe von außen abzuwehren, ein Rolle spielen. When selecting the connection or the multiple connections, not only the throughput but also the ability of one or more nodes of this connection (s) to fend off attacks from outside can play a role.
Es müssen nicht alle Applikationen zur Anwendung kommen bzw. verteilt werden. Applikationen werden nur mit allen Software- komponenten verteilt. Wenn die Softwarekomponenten einer Ap- plikation einer vorgebbaren disjunkte Unter- bzw. Teilmenge bzw. Gruppe von Softwarekomponenten derselben Applikation an- gehören, dann sind diese Softwarekomponenten unterschiedli- chen Rechenknoten zuzuordnen. Damit können die fähigkeitsspe- zifischen Eigenschaften der Rechenknoten optimal genutzt wer- den. Not all applications have to be used or distributed. Applications are only distributed with all software components. If the software components of an application are a predeterminable disjoint subset or subset or group of software components of the same application. belong, then these software components are to be assigned to different computing nodes. This means that the ability-specific properties of the computing nodes can be used optimally.
Ein weiterer Aspekt der Erfindung ist eine Vorrichtung, ins- besondere ein Scheduler, zum Verteilen von Softwarekomponen- ten einer oder mehreren Applikationen auf für deren Ausfüh- rung geeignete Infrastrukturkomponenten einer industriellen Infrastruktur, welche eine Menge von Infrastrukturkomponenten umfasst, welche aus einer Menge von Rechenknoten (C) und ei- ner Menge von Netzwerkknoten (N) gebildet wird, wobei eine Applikation eine oder mehrere Softwarekomponenten aufweist, die über Schnittstellen (I01 bis I03, I13) untereinander Daten austauschen und/oder übergeben, wobei die Rechenknoten jeweils mit wenigstens einer Infra- strukturkomponente über eine Verbindung verbindbar oder ver- bunden sind, welche zumindest Teil eines zur Infrastruktur gehörigen Kommunikationsnetzwerkes ist, an das die Rechenkno- ten angeschlossen sind, wobei die Rechenknoten jeweils fähig- keitsspezifische Eigenschaften, die Verbindungen jeweils übertragungsspezifische Eigenschaften aufweisen, gekennzeich- net durch eine Optimierungskomponente, die dazu ausgelegt ist, die Verteilung der Softwarekomponenten mit dem Ziel zu optimieren, dass möglichst viele Applikationen einer vorgeb- baren Menge von Applikationen in der Infrastruktur unter der Voraussetzung zur Anwendung kommen können, dass jede Soft- warekomponente einer Applikation nur einem Rechenknoten, auf welchem sie unter Berücksichtigung der fähigkeitsspezifischen Eigenschaften ausführbar ist, zugewiesen wird und dass für jede Schnittstelle zwischen zumindest zwei dieser zugewiese- nen Softwarekomponenten eine Verbindung oder mehrere via ein oder mehrere Netzknoten hintereinander gekoppelte Verbindun- gen unter Berücksichtigung der übertragungsspezifischen und ressourcenspezifischen Eigenschaften ausgewählt wird oder werden. Die Vorrichtung und das Computerprogramm (produkte) können entsprechend des oben beschriebenen Verfahrens bzw. der Wei- terbildungen/Ausführungsformen des vorliegenden Verfahrens aus- bzw. weitergebildet sein. Another aspect of the invention is a device, in particular a scheduler, for distributing software components of one or more applications to infrastructure components of an industrial infrastructure that are suitable for their execution and that comprise a set of infrastructure components that are made up of a set of computing nodes (C) and a set of network nodes (N) is formed, with an application having one or more software components which exchange and / or transfer data with one another via interfaces (I 01 to I 03 , I 13), the computing nodes each can be or are connected to at least one infrastructure component via a connection which is at least part of a communication network belonging to the infrastructure to which the computing nodes are connected, the computing nodes each having capability-specific properties and the connections each having transmission-specific properties , marked calibrated by an optimization component that is designed to optimize the distribution of the software components with the aim that as many applications as possible from a predeterminable set of applications can be used in the infrastructure, provided that each software component has a Application is only assigned to one computing node on which it can be executed taking into account the capability-specific properties and that for each interface between at least two of these assigned software components one connection or more connections coupled one behind the other via one or more network nodes taking into account the transmission-specific and resource-specific properties is or will be selected. The device and the computer program (products) can be designed or developed in accordance with the method described above or the developments / embodiments of the present method.
Vorteile der Erfindung sind: Advantages of the invention are:
Mit der Verteilung der Softwarekomponenten auf Rechenknoten wird jeweils der beste Netzwerkpfad aus einer Menge möglicher Netzwerkpfade für den Datenaustausch zweier Softwarekomponen- ten bestimmt. Es sind somit mehrere Wege über Netzwerkpfade von einem ersten Rechenknoten (Source) zu einem zweiten Re- chenknoten (Destination) möglich, sofern die Vorwärts- und Rückwärts-Kommunikation zweier Rechenknoten über den gleichen Netzwerkpfad verläuft. Damit können nicht nur Bandbreite aus- genutzt und die Latenzzeit verringert werden, sondern ein nahtloser Übergang zwischen den oben beschriebenen Architek- turebenen geschaffen werden. With the distribution of the software components on computing nodes, the best network path is determined from a set of possible network paths for the data exchange between two software components. Several routes via network paths from a first computing node (source) to a second computing node (destination) are thus possible, provided that the forward and backward communication of two computing nodes takes place via the same network path. This not only enables bandwidth to be used and latency to be reduced, but also creates a seamless transition between the architecture levels described above.
Durch die in einer Weiterbildung der Erfindung beschriebenen MILP-Ansatz lassen sich effizient optimale Lösungen finden, die beide Anforderungen Verteilung möglichst vieler Applika- tionen unter Berücksichtigung der übertragungsspezifischen Eigenschaften im Netzwerk vereinen. The MILP approach described in a further development of the invention makes it possible to efficiently find optimal solutions which combine the two requirements for the distribution of as many applications as possible, taking into account the transmission-specific properties in the network.
Des Weiteren wird ein Computerprogramm (produkt) umfassend Programm-Code, der von mindestens einem Prozessor ausgeführt werden kann und der bewirkt, dass der mindestens einen Pro- zessor das erfindungsgemäße Betriebsverfahren und dessen Aus- führungsformen ausführt. Das Computerprogramm kann auf einem Rechner z.B. in der Cloud, Server und/oder PC ablaufen oder als Computerprogrammprodukt auf einem computerlesbaren Medium gespeichert sein. Dabei bringt das Computerprogramm die Lauf- zeitumgebung zum Ablauf. Furthermore, a computer program (product) comprising program code which can be executed by at least one processor and which causes the at least one processor to execute the operating method according to the invention and its embodiments. The computer program can run on a computer, e.g. in the cloud, server and / or PC, or be stored as a computer program product on a computer-readable medium. The computer program brings the runtime environment to run.
Zusätzlich kann eine Variante des Computerprogramm (produkte)s mit Programmbefehlen zur Konfiguration eines Erstellungsge- räts, beispielsweise ein 3D-Drucker, ein Computersystem oder eine zur Erstellung von Prozessoren und/oder Geräten geeigne- te Herstellungsmaschine sein. In addition, a variant of the computer program (products) with program commands for configuring a creation device, for example a 3D printer, a computer system or be a manufacturing machine suitable for creating processors and / or devices.
Die Mittel können Hardware-, Firmware und/oder Softwareein- heiten bzw. -module sein. The means can be hardware, firmware and / or software units or modules.
Sofern es in der nachfolgenden Beschreibung nicht anders an- gegeben ist, beziehen sich die Begriffe "durchführen", "be- rechnen", "rechnergestützt", "rechnen", "feststellen", "gene- rieren", "konfigurieren", "rekonstruieren" und dergleichen vorzugsweise auf Handlungen und/oder Prozesse und/oder Verar- beitungsschritte, die Daten verändern und/oder erzeugen und/oder die Daten in andere Daten überführen, wobei die Da- ten insbesondere als physikalische Größen dargestellt werden oder vorliegen können, beispielsweise als elektrische Impul- se. Insbesondere sollte der Ausdruck "Computer" möglichst breit ausgelegt werden, um insbesondere alle elektronischen Geräte mit Datenverarbeitungseigenschaften abzudecken. Compu- ter können somit beispielsweise Personal Computer, Server, speicherprogrammierbare Steuerungen (SPS), Handheld-Computer- Systeme, Pocket-PC-Geräte, Mobilfunkgeräte und andere Kommu- nikationsgeräte, die rechnergestützt Daten verarbeiten kön- nen, Prozessoren und andere elektronische Geräte zur Daten- verarbeitung sein. Unless otherwise stated in the following description, the terms "perform", "calculate", "computer-aided", "calculate", "determine", "generate", "configure", " "reconstruct" and the like, preferably on actions and / or processes and / or processing steps that change and / or generate data and / or convert the data into other data, the data being or being present in particular as physical quantities, for example as electrical pulses. In particular, the term “computer” should be interpreted as broadly as possible, in particular to cover all electronic devices with data processing properties. Computers can thus, for example, personal computers, servers, programmable logic controllers (PLC), handheld computer systems, pocket PC devices, mobile radio devices and other communication devices that can process data with the aid of computers, processors and other electronic devices Be data processing.
Unter „rechnergestützt" kann im Zusammenhang mit der Erfin- dung beispielsweise eine Implementierung des Verfahrens ver- standen werden, bei dem insbesondere ein Prozessor mindestens einen Verfahrensschritt des Verfahrens ausführt. In connection with the invention, “computer-aided” can be understood to mean, for example, an implementation of the method in which, in particular, a processor executes at least one method step of the method.
Unter Bereitstellen kann verstanden werden, dass die Applika- tion und/oder Fähigkeitspakete selbst den oben genannten Mit- teln z.B. in Form einer Verarbeitungseinheit bzw. CPU bzw. einer Kontrolleinheit (Control Unit) bereitgestellt wird. Un- ter Bereitstellen kann ebenso verstanden werden, dass der Verarbeitungseinheit eine Operation bereitgestellt wird, wo- bei die Operation die bereitgestellte Applikation selbst sein kann und/oder die Fähigkeitspakete zur Steuerung und/oder Ausführung der Konfiguration verwendet. Provision can be understood to mean that the application and / or capability package itself is made available to the abovementioned means, for example in the form of a processing unit or CPU or a control unit. Provision can also be understood to mean that the processing unit is provided with an operation, the operation being the provided application itself can and / or use the capability packages to control and / or execute the configuration.
Die oben beschriebenen Eigenschaften, Merkmale und Vorteile dieser Erfindung sowie die Art und Weise, wie diese erreicht werden, werden klarer und deutlicher verständlich im Zusam- menhang mit der folgenden Beschreibung der Ausführungsbei- spiele, die im Zusammenhang mit den Figuren näher erläutert werden. Dabei zeigt: The properties, features and advantages of this invention described above and the way in which they are achieved will become clearer and more clearly understandable in connection with the following description of the exemplary embodiments, which are explained in more detail in connection with the figures. It shows:
Figur 1 schematisch die eingangs erwähnte Applikation und Figure 1 schematically shows the application mentioned at the outset and
Figur 2 schematisch eine industrielle Infrastruktur mit Kommunikationsnetzwerk . FIG. 2 schematically shows an industrial infrastructure with a communication network.
Figur 1 zeigt eine industrielle Applikation A besteht aus mehreren (Software-)Komponenten (Workloads, WL), welche Daten über Schnittstellen (Interfaces) austauschen. Jede Komponente wird durch einen Satz von Parametern charakterisiert, die die Anforderungen, Einschränkungen und das Verhalten als Eigen- schaft dieser beschreiben. Dazu gehören z.B. die Rechenkom- plexität (CPU), Speicherverbrauch (RAM), etc. Jede Schnitt- stelle wird ebenfalls durch einen Satz von Parametern bzw. schnittstellenspezifischen Eigenschaften charakterisiert, die den Datenfluss bzw. den Datendurchsatz auf dieser Schnitt- stelle charakterisieren. Dies kann zum Beispiel die benötigte Bandbreite bzw. die maximal zulässige Latenz sein. Figure 1 shows an industrial application A consists of several (software) components (workloads, WL) which exchange data via interfaces (interfaces). Each component is characterized by a set of parameters that describe the requirements, restrictions and behavior as a property of these. These include, for example, the computational complexity (CPU), memory consumption (RAM), etc. Each interface is also characterized by a set of parameters or interface-specific properties that characterize the data flow or the data throughput on this interface. This can be, for example, the required bandwidth or the maximum permissible latency.
Figur 2 zeigt schematisch eine Infrastruktur, welche die re- levanten Infrastrukturkomponenten und der Eigenschaften, auf der die industriellen Applikationen verteilt und ausgeführt werden, umfasst. Die Infrastruktur besteht aus Rechenknoten C1 bis C16, Verbindungen L1 bis L24 und Netzwerkknoten N1 bis N8. FIG. 2 schematically shows an infrastructure which comprises the relevant infrastructure components and the properties on which the industrial applications are distributed and executed. The infrastructure consists of computing nodes C1 to C16, connections L1 to L24 and network nodes N1 to N8.
Nach dem Industriestandard - wie eingangs erwähnt ISA-95 - können im Beispiel die Rechenknoten C1 bis C6 mit dem Netz- knoten NI eine Domäne bzw. Fertigungszelle und die Rechenkno- ten C7 bis C12 mit dem Netzknoten N2 eine weitere Domäne bzw. Fertigungszelle bilden. Nach dem ISA-95 Standard gehören dann diese beiden Fertigungszellen zur Fertigungsebene bzw. zur Steuerungs- und Feldebene gehören. Die Rechenknoten C13 und C14 mit dem Netzknoten N7 können im Beispiel zur Betriebs- leitebene gehören. Die Rechenknoten C15 und C16 mit Netzkno- ten N8 können im Beispiel zur Unternehmensebene gehören. Die Netzknoten N2, N7 und N8 können hierbei jeweils als sogenann- te EDGE ausgebildet sein. Rechenknoten C15 kann hierbei Cloud-Dienste anbieten und Rechenknoten C16 kann ein Daten- center sein. Im Beispiel können dementsprechend die Netzkno- ten N3 bis N6 ein Kommunikationsnetzwerk bilden, das drahtge- bunden und/oder drahtlos ausgebildet sein kann. Hierbei ist die Verwendung von Kommunikationsstandards wie Mobilfunk (z.B. LTE, 5G etc.), WIFI, LAN und ein Intra- bzw. Internet denkbar. According to the industry standard - as mentioned at the beginning ISA-95 - in the example the computing nodes C1 to C6 with the network node NI can be a domain or manufacturing cell and the computing nodes th C7 to C12 form a further domain or manufacturing cell with the network node N2. According to the ISA-95 standard, these two production cells then belong to the production level or to the control and field level. The computing nodes C13 and C14 with the network node N7 can belong to the operations management level in the example. The computing nodes C15 and C16 with network nodes N8 can belong to the company level in the example. The network nodes N2, N7 and N8 can each be designed as a so-called EDGE. Computing node C15 can offer cloud services and computing node C16 can be a data center. In the example, the network nodes N3 to N6 can accordingly form a communication network that can be wired and / or wireless. The use of communication standards such as mobile radio (e.g. LTE, 5G etc.), WIFI, LAN and an intranet or internet is conceivable here.
Jeder Rechenknoten hat eine Reihe von fähigkeitsspezifischen Eigenschaften wie die Arbeitsspeicherkapazität oder die Re- chenleistung. Verbindungen (oder auch Links genannt) entspre- chen relevanten Netzwerkverbindungen in der beschriebenen Infrastruktur. Jede Verbindung wird durch eine Reihe von Pa- rametern bzw. Eigenschaften charakterisiert, wie Bandbreite und Latenzcharakteristiken. Ein Netzwerkknoten verknüpft zwei oder mehrere Verbindungen. Ein Netzwerkknoten abstrahiert normalerweise physische oder virtuelle Netzwerkgeräte wie Switches oder Router. Ein Netzwerkknoten kann neben der Si- cherstellung der Konnektivität von Verbindungen auch weitere Eigenschaften haben, die das Netzwerk beeinflussen, wie eine minimale Latenzzeit. Each computing node has a number of skill-specific properties such as the main memory capacity or the computing power. Connections (also called links) correspond to relevant network connections in the infrastructure described. Each connection is characterized by a number of parameters or properties, such as bandwidth and latency characteristics. A network node links two or more connections. A network node usually abstracts physical or virtual network devices such as switches or routers. In addition to ensuring the connectivity of connections, a network node can also have other properties that affect the network, such as minimal latency.
Die Vorrichtung, z.B. der Scheduler, welcher als Clouddienst ausgestaltet sein kann, weist beispielsweise eine Optimie- rungskomponenten auf, die eine modellierte Optimierung auf- weist. Mit Hilfe des Optimierungsmodells, vorzugsweise ein gemischt-ganzzahliges Optimierungsmodell (MILP), werden die Applikationen auf ein Kommunikationsnetzwerk der Infrastruk- tur verteilt, welches durch eine Menge an Infrastrukturkompo- nenten bzw. Knoten (Nodes={n1,n2,..}) und eine Menge an Ver- bindungen (Links={(n1,n2), ...}) gekennzeichnet ist. Die Menge der Knoten (Nodes), auch Infrastrukturkomponenten genannt, enthält sowohl die Rechenknoten als auch die Netzwerkknoten. Die Verbindungen sind vorzugsweise gerichtet, d.h, ist {n1, n2) eine Vorwärtsverbindung dann ist (n2,n1) die entspre- chende Rückwärtsverbindung. Eine Abfolge mehrerer Knoten, die jeweils eine Verbindung besitzen bzw. über Verbindungen mit- einander gekoppelt sind, wird Pfad genannt. Ebenso ist jeder Pfad gerichtet. Ein Knoten in einem Pfad p wird mit (node = node(p)) bezeichnet. Kreise in einem Pfad sind ausgeschlos- sen. Jeder Pfad hat einen Startknoten, den wir mit source (=source(p)) bezeichnen und einen Zielknoten destination (= dest (p)). Zwischen jedem Paar von Knoten n1, n2 kann es meh- rere Pfade im Netzwerk geben, d.h., das Netzwerk kann Kreise enthalten, wie es in Figur 2 z.B. mit den Knoten N3 bis N6 angedeutet ist. The device, for example the scheduler, which can be configured as a cloud service, has, for example, an optimization component that has a modeled optimization. With the help of the optimization model, preferably a mixed-integer optimization model (MILP), the applications are distributed over a communication network of the infrastructure, which is made up of a number of infrastructure components. nents or nodes (Nodes = {n1, n2, ..}) and a set of connections (Links = {(n1, n2), ...}) is identified. The set of nodes, also known as infrastructure components, contains both the computing nodes and the network nodes. The connections are preferably directed, ie if {n1, n2) is a forward connection then (n2, n1) is the corresponding reverse connection. A sequence of several nodes, each with a connection or linked to one another via connections, is called a path. Likewise, every path is directed. A node in a path p is denoted by (node = node (p)). Circles in a path are excluded. Every path has a start node, which we denote with source (= source (p)) and a destination node destination (= dest (p)). There can be several paths in the network between each pair of nodes n1, n2, ie the network can contain circles, as is indicated in FIG. 2, for example, with the nodes N3 to N6.
Das Ziel (Zielfunktion) ist so viele Applikationen wie mög- lich in der Infrastruktur zu platzieren. Eine Zuordnung bzw. eine Verteilung von einer oder von mehreren Applikationen kann erfolgen, wenn noch keine Applikationen zuvor zugeordnet wurden oder wenn schon Applikationen auf Rechenknoten schon zuvor zugewiesen wurden und diese deshalb schon für ein ge- wisse Auslastung in der Infrastruktur sorgen. The goal (target function) is to place as many applications as possible in the infrastructure. Allocation or distribution of one or more applications can take place if no applications have yet been allocated or if applications on computing nodes have already been allocated and these therefore already ensure a certain utilization of the infrastructure.
In der MILP-Formulierung gelten die folgenden Bezeichnungen: The following terms apply in the MILP formulation:
Indices: Indices:
WLs Menge der zu verteilenden (Software-) Komponenten (Workloads) WLs Amount of (software) components (workloads) to be distributed
Nodes Menge der Rechen- und NetzwerkknotenNodes Amount of computing and network nodes
NodesForWL (w) Menge der möglichen Knoten, auf denen Komponente w platziert werden kannNodesForWL (w) Set of possible nodes on which component w can be placed
WLsForNode (n) Menge der möglichen Komponenten, die auf Knoten n platziert werden können Paths (s,d) Menge der Pfade im Netzwerk mit Startkno- ten s (oder source) und Zielknoten d (oder dest). Es kann mehrere Pfade von einem Startknoten zu einem Zielknoten ge- ben, d.h. Kreise sind im Netzwerk er- laubt. Zudem muss die Richtung der Pfade beachtet werden. WLsForNode (n) Set of possible components that can be placed on node n Paths (s, d) Set of paths in the network with start node s (or source) and destination node d (or dest). There can be several paths from a start node to a destination node, ie circles are permitted in the network. In addition, the direction of the paths must be taken into account.
Paths Menge alle Pfade im Netzwerk d.h. die Vereinigung aller Mengen Paths(s,d)Paths Set of all paths in the network i.e. the union of all sets of Paths (s, d)
BackForwardPaths Menge aller Tupel von Pfaden (p1, p2), die einen Vorwärts- und einen Rückwärts- pfad bilden d.h. der Startknoten source(p1) von Pfad p1 ist der Zielknoten dest(p2) von Pfad p2 und der Startknoten source(p2) von Pfad p2 ist der Zielknoten dest(p1) von Pfad p1 BackForwardPaths Set of all tuples of paths (p1, p2) that form a forward and a backward path, ie the start node source (p1) of path p1 is the destination node dest (p2) of path p2 and the start node source (p2) of Path p2 is the destination node dest (p1) of path p1
PathsWithLink (n1 n2) Menge alle Pfade im Netzwerk, die die Verbindung (n1,n2) zwischen Knoten n1 und n2 benutzen PathsWithLink (n1 n2) Set of all paths in the network that use the connection (n1, n2) between nodes n1 and n2
Int Menge der Schnittstellen (w1, w2)Int set of interfaces (w1, w2)
Apps Menge der Applikationen Apps Amount of applications
WLsOfApp (a) Menge der Komponenten, aus der eine App a besteht Groups Menge von Gruppen. Eine Gruppe besteht aus mehreren Komponenten. Komponenten ei- ner Gruppe dürfen nicht auf den gleichen Knoten platziert werden. WLsOfApp (a) Set of components that make up an app. Groups Set of groups. A group consists of several components. Components of a group must not be placed on the same node.
WLsOfGroup (g) Komponenten, die der Gruppe g angehören. WLsOfGroup (g) Components that belong to group g.
Parameter: Parameter:
WLcpu (w) Rechenleistung (CPU), die Komponente w verbraucht WLram (w) Arbeitsspeicher (RAM), den Komponente w verbraucht WLcpu (w) computing power (CPU), component w consumes WLram (w) working memory (RAM), which component w consumes
NodeRAM (n) Arbeitsspeicherkapazität (RAM), die Knoten n zur Verfügung stellt NodeRAM (n) working memory capacity (RAM), the Provides node n
NodeCPU (n) Rechenleistung (CPU), die Knoten n zurNodeCPU (n) processing power (CPU), the node n for
Verfügung stellt Provides
LinkBandwidth (n1, n2) Zur Verfügung stehende Bandbreite auf der Verbindung zwischen Knoten n1 und n2 LinkBandwidth (n1, n2) Available bandwidth on the connection between nodes n1 and n2
IntBandwidth (w1, w2) Bandbreite, die von SchnittstelleIntBandwidth (w1, w2) bandwidth used by interface
(w1, w2) benötigt wird (w1, w2) is required
PathLatency(p) Latenz des Pfades p PathLatency (p) Latency of the path p
IntLatency(w1, w2) Maximale Latenz für dieIntLatency (w1, w2) Maximum latency for the
Schnittstelle (w1, w2) Interface (w1, w2)
Variablen : setupw,n Zuordnung von Komponente w zu Knoten n. In diesem Fall nimmt die Variable den Wert 1 an, anderenfalls den Wert 0. pathw1,w2,p Zuordnung der Schnittstelle (w1, w2) zu dem Pfad p. Dabei muss w1 dem Startknoten source (p) des Pfades p und w2 dem Zielknoten dest (p) zuordenbar sein d.h. source(p) ∈ NodesForWL(w1) und dest(p)∈ NodesForWL(w2) . Die Variable nimmt den Wert 1 an, falls für das Interface (w1, w2) im Netzwerk der Pfad p be- nutzt wird, andernfalls 0. Variables: setup w, n Assignment of component w to node n. In this case the variable takes the value 1, otherwise the value 0. path w1, w2, p Assignment of the interface (w1, w2) to the path p. It must be possible to assign w1 to the start node source (p) of the path p and w2 to the destination node dest (p), ie source (p) ∈ NodesForWL (w1) and dest (p) ∈ NodesForWL (w2). The variable assumes the value 1 if path p is used for the interface (w1, w2) in the network, otherwise 0.
MI LP-Formulierung: MI LP formulation:
Maximierungszielfunktion : Maximization objective function:
Nebenbedingungen : Constraints:
(1)Für jeden Knoten darf dessen CPU-Kapazität nicht überschritten werden: (1) The CPU capacity of each node must not be exceeded:
(2) Für jeden Knoten darf dessen RAM-Kapazität nicht überschritten werden: (2) The RAM capacity of each node must not be exceeded:
(3) Jede Komponente darf höchstens einem Knoten zugewiesen werden: (3) Each component may be assigned to a maximum of one node:
(4) Entweder sind alle Komponenten einer App auf Knoten im Netzwerk verteilt oder gar keine davon: (4) Either all components of an app are distributed across nodes in the network or none of them are at all:
(5) Wenn ein Paar von Komponenten einem Paar von Knoten im Netzwerk zugewiesen wird, dann muss auch ein Pfad zwischen den ausgewählten Knoten aktiv sein, der von der Schnittstelle der beiden Komponenten benutzt werden kann. Dazu werden folgende Pfadrestriktionen für alle Komponenten w1,w2 ∈ WLs und alle Knotenpaare source, dest ∈ Nodes definiert, für die (w1,w2) ∈ Int, source ∈ NodesForWL(w1), dest E NodesForWL(w2) gilt und für die zwischen dem Knoten source und dem Knoten dest ein Pfad existiert, d.h. Paths (source, dest) ≠ 0,Paths(source, dest) Paths : (5) If a pair of components is assigned to a pair of nodes in the network, then a path between the selected nodes must also be active that can be used by the interface of the two components. For this purpose, the following path restrictions are defined for all components w1, w2 ∈ WLs and all node pairs source, dest ∈ Nodes, for which (w1, w2) ∈ Int, source ∈ NodesForWL (w1), dest E NodesForWL (w2) applies and for those between a path exists for the node source and the node dest, i.e. Paths (source, dest) ≠ 0, Paths (source, dest) Paths:
(6)Wenn ein Pfad durch Ungleichungen (5) aktiviert wird, so muss auch der entsprächende Rückwärtspfad aktiviert sein: (6) If a path is activated by inequalities (5), the corresponding backward path must also be activated:
(7) Die maximale zur Verfügung stehende Bandbreite einer jeden Verbindung wird durch die von den Schnittstellen benötigte Bandbreite, die diese Verbindung benutzen, nicht überschritten, d.h., für alle (n1,n2) ∈ Links mit n1,n2 ∈ Nodes : (7) The maximum available bandwidth of each connection is not exceeded by the bandwidth required by the interfaces that use this connection, i.e. for all (n1, n2) ∈ links with n1, n2 ∈ nodes:
(8)Ein Pfad p darf nur für eine Schnittstelle (w1,w2) gewählt werden, wenn die Latenz des Pfades die maximale Latenz der Schnittstelle nicht überschreiten. (9) Komponenten, die einer Gruppe angehören, müssen auf un- terschiedliche Knoten verteilt werden, bzw., es dürfen keine zwei Komponenten einer Gruppe dem gleichen Knoten zugeordnet sein: (8) A path p may only be selected for an interface (w1, w2) if the latency of the path does not exceed the maximum latency of the interface. (9) Components that belong to a group must be distributed to different nodes, or no two components of a group may be assigned to the same node:
(10) Variablenrestriktionen: (10) Variable restrictions:
Der Datenaustausch zwischen mehreren Applikationen kann durch Hinzufügen weiterer linearer Ungleichungen modelliert werden. The data exchange between several applications can be modeled by adding further linear inequalities.
Die fähigkeitsspezifischen Eigenschaften - wie z.B. die Ausgangsauslastung der Rechenknoten (z.B. CPU, RAM) sowie die übertragungsspezifischen Eigenschaften z.B. Bandbreite der Pfade wird im MIP-Modell berücksichtigt. Bei der Auswahl der Pfade kann bei den übertragungsspezifischen Eigenschaften auch die zugrundliegende Übertragungstechnologie der Verbindung (en) eine Rolle spielen. DieThe capability-specific properties - such as the output load of the computing nodes (e.g. CPU, RAM) as well as the transmission-specific properties, e.g. bandwidth of the paths, are taken into account in the MIP model. When selecting the paths, the underlying transmission technology of the connection (s) can also play a role in the transmission-specific properties. the
Übertragungstechnologie kann drahtlos, d.h. funkbasiert (z.B. Mobilfunk, Wlan), oder als Art Ad hoc Verbindung (meist z.B. Bluetooth, NFC, Zigbee, Infrarot) oder als drahtgebunde Verbindung (z.B. Local, Wide Area bzw. Metropolitan Area Netzwork) ausgebildet sein. So gilt z.B. eine Funkverbindung als weniger angriffts- bzw. ausfallsicher als eine drahtgebundene Verbindung. Dafür ist sie meist auch in Gegenden oder Domänen vorhanden, in denen kein Kabel verlegt ist. Eine Kostenfunktion kann mehrere Optimierungskriterien kombi- nieren, wie z.B. aufwandsorientierte Kostenfaktoren für die Infrastrukturkomponenten (z.B. der Rechenknoten, Netzwerkver- bindungen) oder Leistungskriterien der Applikationen wie die ressourcenspezifischen bzw. übertragungsspezifischen Eigen- schaften (z.B. Verfügbarkeit, Latenzzeit). Die Zielfunktion kann aus einer gewichteten Summe der einzelnen Faktoren bzw. Kriterien bestehen. Dadurch kann die Optimierung anwendungs- spezifisch konfiguriert werden. Transmission technology can be wireless, ie radio-based (e.g. mobile radio, WiFi), or as a type of ad hoc connection (mostly e.g. Bluetooth, NFC, Zigbee, infrared) or as a wired connection (e.g. local, wide area or metropolitan area network). For example, a radio connection is less secure against attacks or failures than a wired connection. But it is usually also available in areas or domains where no cables are laid. A cost function can combine several optimization criteria, such as effort-oriented cost factors for the infrastructure components (eg the computing nodes, network connections) or performance criteria of the applications such as the resource-specific or transmission-specific properties (eg availability, latency). The objective function can consist of a weighted sum of the individual factors or criteria. This means that the optimization can be configured specifically for the application.
In einer Ausführungsform kann zumindest ein Teil der indust- riellen Infrastruktur als Blockkette implementiert sein. Un- ter einer Blockkette ist hierbei eine kontinuierlich erwei- terbare Liste von Datensätzen zu verstehen, „Blöcke" genannt, die mittels kryptographischer Verfahren miteinander verkettet sind. Jeder Block enthält dabei typischerweise ei- nen kryptographisch sicheren Hash (Streuwert) des vorhergeh- endenden Bocks, einen Zeitstempel und Transaktionsdaten. Die Transaktionsdaten können auch in genannte Smart Contracts eingebettet sein, in denen eine Durchführung einer Transakti- on unter den Kommunikationspartnern festgelegt werden. Dies erhöht die Sicherheit. In one embodiment, at least part of the industrial infrastructure can be implemented as a block chain. A block chain here means a continuously expandable list of data records, called “blocks”, which are chained to one another using cryptographic methods. Each block typically contains a cryptographically secure hash (scatter value) of the previous block , a time stamp and transaction data. The transaction data can also be embedded in smart contracts in which the execution of a transaction between the communication partners is specified. This increases security.
Im Beispiel bilden die auf die Rechenknoten zu verteilenden bzw. verteilten Softwarekomponenten die Blöcke einer Block- kette. Die Kommunikation bzw. der Datenaustausch werden mit- tels Transaktionen durchgeführt. Mit Hilfe der erfindungsge- mäßen Optimierung werden die Pfade bestimmt, wobei die Knoten entlang der bestimmten Pfade weiter Blöcke der Blockkette zu bilden. Im Beispiel könnte eine Blockkette von Knoten C1 bis Knoten C15 über die Knoten N1, N2, N3, N4, N5, N8 gebildet werden. In the example, the software components to be distributed or distributed to the computing nodes form the blocks of a block chain. The communication and the data exchange are carried out by means of transactions. With the aid of the optimization according to the invention, the paths are determined, the nodes further forming blocks of the block chain along the determined paths. In the example, a block chain could be formed from node C1 to node C15 via nodes N1, N2, N3, N4, N5, N8.
Es können hierbei nicht nur die fähigkeitsspezifischen, über- tragungsspezifischen und ressourcenspezifischen Eigenschaf- ten, sondern auch kryptographischspezifische Eigenschaften berücksichtigt werden. Kryptographische Eigenschaften können durch eine Art Härtemaß hinsichtlich einer Wahrscheinlichkeit, dass von außen ein An- griff erfolgreich ist, ausgedrückt werden. So könnte ein asymmetrisches Verschlüsselungsverfahren ein anderes Härtemaß aufweisen als ein symmetrisches Verschlüsselungsverfahren. Auch die Wahl der Hashfunktion, wie sie bei der Blockkette verwendet wird, könnte ein gewisses Härtemaß ausmachen. Weitere neben vielen anderen kryptographische Schutzmaßnahmen sind Signaturverfahren und ggf. Zertifikate. Auch diesen kann ein Härtemaß zugewiesen werden. Here, not only the capability-specific, transmission-specific and resource-specific properties, but also cryptographically-specific properties can be taken into account. Cryptographic properties can be expressed by a type of hardness measure with regard to the probability that an attack from outside will be successful. An asymmetrical encryption method could have a different degree of hardness than a symmetrical encryption method. The choice of the hash function, as it is used in the block chain, could also make a certain degree of hardship. Further cryptographic protection measures, among many others, are signature procedures and possibly certificates. These can also be assigned a degree of hardness.
Obwohl die Erfindung im Detail durch das bevorzugte Ausfüh- rungsbeispiel näher illustriert und beschrieben wurde, so ist die Erfindung nicht durch die offenbarten Beispiele einge- schränkt und andere Variationen können vom Fachmann hieraus abgeleitet werden, ohne den Schutzumfang der Erfindung zu verlassen. Although the invention has been illustrated and described in more detail by the preferred exemplary embodiment, the invention is not restricted by the disclosed examples and other variations can be derived therefrom by the person skilled in the art without departing from the scope of protection of the invention.
Die Implementierung der vorstehend beschriebenen Laufzeitum- gebung oder Betriebsverfahrensabläufe kann anhand von In- struktionen erfolgen, die auf computerlesbaren Speichermedien oder in flüchtigen Computerspeichern (im Folgenden zusammen- fassend als computerlesbare Speicher bezeichnet) vorliegen. Computerlesbare Speicher sind beispielsweise flüchtige Spei- cher wie Caches, Puffer oder RAM sowie nichtflüchtige Spei- cher wie Wechseldatenträger, Festplatten, usw. The implementation of the above-described runtime environment or operating method sequences can take place on the basis of instructions that are available on computer-readable storage media or in volatile computer memories (hereinafter referred to collectively as computer-readable memories). Computer-readable memories are, for example, volatile memories such as caches, buffers or RAM as well as non-volatile memories such as removable media, hard disks, etc.
Die vorstehend beschriebenen Funktionen oder Verfahrens- schritte können dabei in Form zumindest eines Instruktions- satzes in/auf einem computerlesbaren Speicher vorliegen. Die Funktionen oder Schritte sind dabei nicht an einen bestimmten Instruktionssatz oder an eine bestimmte Form von Instrukti- onssätzen oder an ein bestimmtes Speichermedium oder an einen bestimmten Prozessor oder an bestimmte Ausführungsschemata gebunden und können durch Software, Firmware, Microcode, Hardware, Prozessoren, integrierte Schaltungen usw. im Al- leinbetrieb oder in beliebiger Kombination ausgeführt werden. Dabei können verschiedenste Verarbeitungsstrategien zum Ein- satz kommen, beispielsweise serielle Verarbeitung durch einen einzelnen Prozessor oder Multiprocessing oder Multitasking oder Parallelverarbeitung usw. The functions or method steps described above can be present in the form of at least one set of instructions in / on a computer-readable memory. The functions or steps are not tied to a specific set of instructions or to a specific form of instruction set or to a specific storage medium or to a specific processor or to specific execution schemes and can be implemented through software, firmware, microcode, hardware, processors, integrated circuits etc. can be run alone or in any combination. A wide variety of processing strategies can be used to such as serial processing by a single processor, or multiprocessing, or multitasking, or parallel processing, etc.
Die Instruktionen können in lokalen oder zentralen Speichern abgelegt sein, es ist aber auch möglich, die Instruktionen auf einem entfernten System abzulegen und darauf via Netzwerk zuzugreifen. The instructions can be stored in local or central memories, but it is also possible to store the instructions on a remote system and access them via the network.
Der Begriff "Prozessor", "zentrale Signalverarbeitung", "Steuereinheit" oder "Datenauswertemittel ", wie hier verwen- det, umfasst Verarbeitungsmittel im weitesten Sinne, also beispielsweise Server, Universalprozessoren, Grafikprozesso- ren, digitale Signalprozessoren, anwendungsspezifische inte- grierte Schaltungen (ASICs), programmierbare Logikschaltungen wie FPGAs, diskrete analoge oder digitale Schaltungen und be- liebige Kombinationen davon, einschließlich aller anderen dem Fachmann bekannten oder in Zukunft entwickelten Verarbei- tungsmittel. Prozessoren können dabei aus einer oder mehreren Einrichtungen bzw. Einheiten bestehen, die in eine Vorrich- tung integriert sein können. Besteht ein Prozessor aus mehre- ren Einrichtungen, können diese zur parallelen oder sequenti- ellen Verarbeitung bzw. Ausführung von Instruktionen ausge- legt bzw. konfiguriert sein. The term "processor", "central signal processing", "control unit" or "data evaluation means", as used here, includes processing means in the broadest sense, for example servers, universal processors, graphics processors, digital signal processors, application-specific integrated circuits ( ASICs), programmable logic circuits such as FPGAs, discrete analog or digital circuits and any combination thereof, including all other processing means known to the person skilled in the art or developed in the future. Processors can consist of one or more devices or units that can be integrated into a device. If a processor consists of several devices, these can be designed or configured for parallel or sequential processing or execution of instructions.

Claims

Patentansprüche Claims
1. Rechnergestütztes Verfahren zum Verteilen von Softwarekom- ponenten einer oder mehreren Applikationen auf für deren Aus- führung geeignete Infrastrukturkomponenten einer industriel- len Infrastruktur, welche eine Menge von Infrastrukturkompo- nenten umfasst, welche aus einer Menge von Rechenknoten (C) und einer Menge von Netzwerkknoten (N) gebildet wird, wobei eine Applikation eine oder mehrere Softwarekomponenten auf- weist, die über Schnittstellen (I01 bis I03, I13) untereinander Daten austauschen und/oder übergeben, wobei die Rechenknoten jeweils mit wenigstens einer Infrastrukturkomponente über ei- ne Verbindung verbindbar oder verbunden sind, welche zumin- dest Teil eines zur Infrastruktur gehörigen Kommunikations- netzwerkes ist, an das die Rechenknoten angeschlossen sind, wobei die Rechenknoten jeweils fähigkeitsspezifische Eigen- schaften, die Verbindungen jeweils übertragungsspezifische Eigenschaften aufweisen, dadurch gekennzeichnet, dass die Verteilung der Softwarekom- ponenten mit dem Ziel optimiert wird, dass möglichst viele Applikationen einer vorgebbaren Menge von Applikationen in der Infrastruktur unter der Voraussetzung zur Anwendung kom- men können, dass jede Softwarekomponente einer Applikation nur einem Rechenknoten, auf welchem sie unter Berücksichti- gung der fähigkeitsspezifischen Eigenschaften ausführbar ist, zugewiesen wird und dass für jede Schnittstelle zwischen zu- mindest zwei dieser zugewiesenen Softwarekomponenten eine Verbindung oder mehrere via ein oder mehrere Netzwerkknoten hintereinander gekoppelte Verbindungen unter Berücksichtigung der übertragungsspezifischen und ressourcenspezifischen Ei- genschaften ausgewählt wird oder werden. 1. Computer-aided method for distributing software components of one or more applications to infrastructure components suitable for their execution of an industrial infrastructure, which comprises a set of infrastructure components, which consists of a set of computing nodes (C) and a set of Network node (N) is formed, with an application having one or more software components that exchange and / or transfer data to one another via interfaces (I 01 to I 03, I 13 ), the computing nodes each having at least one infrastructure component via one ne connection which is at least part of a communication network belonging to the infrastructure to which the computing nodes are connected, the computing nodes each having capability-specific properties, the connections each having transmission-specific properties, characterized in that the distribution the software com - components is optimized with the aim that as many applications as possible from a predeterminable set of applications can be used in the infrastructure, provided that each software component of an application has only one computing node on which it can be executed, taking into account the capability-specific properties is, is assigned and that for each interface between at least two of these assigned software components one connection or several connections coupled one behind the other via one or more network nodes is or will be selected, taking into account the transmission-specific and resource-specific properties.
2. Verfahren nach dem vorhergehenden Anspruch, dadurch ge- kennzeichnet, dass alle Softwaresoftwarekomponenten einer Ap- plikation, die zur Anwendung kommen soll, je einem Rechenkno- ten zugewiesen wird. 2. The method according to the preceding claim, characterized in that all software software components of an application that is to be used are each assigned to a computing node.
3. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass bei Auswahl mehrerer gekoppelten Verbin- dungen für eine Schnittstelle die Summe der Werte der über- tragungsspezifischen Eigenschaften über die mehreren Verbin- dungen den entsprechenden oder vergleichbaren Wert der schnittstellenspezifischen Eigenschaft der Schnittstelle un- terschreiten oder identisch sein muss. 3. The method according to any one of the preceding claims, characterized in that, when a plurality of coupled connections are selected for an interface, the sum of the values of the transmission-specific properties over the plurality of connections corresponds to the corresponding or comparable value of the interface-specific property of the interface. must fall below or be identical.
4. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass, wenn mehrere Schnittstellen über die gleiche Verbindung geführt werden sollen, dann muss die Summe der Werte der schnittstellenspezifischen Eigenschaften über die mehreren Schnittstellen den entspre- chenden oder vergleichbaren Wert der übertragungsspezifischen Eigenschaft der gleichen Verbindung unterschreiten oder iden- tisch sein. 4. The method according to any one of the preceding claims, characterized in that if several interfaces are to be routed over the same connection, then the sum of the values of the interface-specific properties over the several interfaces must be the corresponding or comparable value of the transmission-specific property of the same Be below connection or be identical.
5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass und die Netzwerkknoten jeweils ressour- censpezifische Eigenschaften aufweisen, die bei der Auswahl der einen oder mehreren Verbindungen berücksichtigt werden. 5. The method according to any one of the preceding claims, characterized in that and the network nodes each have resource-specific properties which are taken into account when selecting the one or more connections.
6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass bei der Verteilung der Softwarekomponen- ten auch kryptographischspezifische Eigenschaften der Infra- strukturkomponenten berücksichtigt werden. 6. The method according to any one of the preceding claims, characterized in that cryptographically-specific properties of the infrastructure components are also taken into account when distributing the software components.
7. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Optimierung mittels gemischt- ganzzahliger Optimierung durchgeführt wird. 7. The method according to any one of the preceding claims, characterized in that the optimization is carried out by means of mixed-integer optimization.
8. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass wenn Daten von einem ersten Rechenknoten zu einem zweiten Rechenknoten über eine oder mehrere gekop- pelte Verbindungen übergeben werden, dann werden umgekehrt vom zweiten Rechenknoten zum ersten Rechenknoten Daten über dieselbe Verbindung oder dieselben gekoppelten Verbindung übergeben. 8. The method according to any one of the preceding claims, characterized in that if data is transferred from a first computing node to a second computing node via one or more coupled connections, then conversely, data is coupled from the second computing node to the first computing node via the same connection or the same Transfer connection.
9. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass eine Gewichtung bei der Berücksichtigung der fähigkeitsspezifischen, der übertragungsspezifischen und/oder der ressourcenspezifischen Eigenschaften in die Op- timierung eingeht. 9. The method according to any one of the preceding claims, characterized in that a weighting is included in the optimization when the capability-specific, the transmission-specific and / or the resource-specific properties are taken into account.
10. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Softwarekomponenten einer Applikation zu vorgebbaren, unterschiedlichen Teilmengen ge- hören, wobei alle Softwarekomponenten einer Teilmenge jeweils zu unterschiedlichen Rechenknoten zugewiesen werden. 10. The method according to any one of the preceding claims, characterized in that the software components of an application belong to predeterminable, different subsets, with all software components of a subset being assigned to different computing nodes.
11. Vorrichtung zum Verteilen von Softwarekomponenten einer oder mehreren Applikationen auf für deren Ausführung geeigne- te Infrastrukturkomponenten einer industriellen Infrastruk- tur, welche eine Menge von Infrastrukturkomponenten umfasst, welche aus einer Menge von Rechenknoten (C) und einer Menge von Netzwerkknoten (N) gebildet wird, wobei eine Applikation eine oder mehrere Softwarekomponenten aufweist, die über Schnittstellen (I01 bis I03, I13) untereinander Daten austau- schen und/oder übergeben, wobei die Rechenknoten jeweils mit wenigstens einer Infrastrukturkomponente über eine Verbindung verbindbar oder verbunden sind, welche zumindest Teil eines zur Infrastruktur gehörigen Kommunikationsnetzwerkes ist, an das die Rechenknoten angeschlossen sind, wobei die Rechenkno- ten jeweils fähigkeitsspezifische Eigenschaften, die Verbin- dungen jeweils übertragungsspezifische Eigenschaften aufwei- sen, gekennzeichnet durch eine Optimierungskomponente, die dazu ausgelegt ist, die Ver- teilung der Softwarekomponenten mit dem Ziel zu optimieren, dass möglichst viele Applikationen einer vorgebbaren Menge von Applikationen in der Infrastruktur unter der Vorausset- zung zur Anwendung kommen können, dass jede Softwarekomponen- te einer Applikation nur einem Rechenknoten, auf welchem sie unter Berücksichtigung der fähigkeitsspezifischen Eigenschaf- ten ausführbar ist, zugewiesen wird und dass für jede Schnittstelle zwischen zumindest zwei dieser zugewiesenen Softwarekomponenten eine Verbindung oder mehrere via ein oder mehrere Netzknoten hintereinander gekoppelte Verbindungen un- ter Berücksichtigung der übertragungsspezifischen und res- sourcenspezifischen Eigenschaften ausgewählt wird oder wer- den. 11. Device for distributing software components of one or more applications to infrastructure components suitable for their execution of an industrial infrastructure, which comprises a set of infrastructure components formed from a set of computing nodes (C) and a set of network nodes (N) where an application has one or more software components that exchange and / or transfer data with one another via interfaces (I 01 to I 03 , I 13 ), the computing nodes each being connectable or connected to at least one infrastructure component via a connection, which is at least part of a communication network belonging to the infrastructure to which the computing nodes are connected, the computing nodes each having skill-specific properties, the connections each having transmission-specific properties, characterized by an optimization component that is designed to implement the V Allocation of the software components with the aim of optimizing that as many applications as possible from a predeterminable set of applications can be used in the infrastructure, provided that each software component of an application can only be used on one computing node on which it can be run, taking into account the ability-specific properties is executable, is assigned and that for each interface between at least two of these assigned Software components a connection or several connections coupled one behind the other via one or more network nodes is or are selected, taking into account the transmission-specific and resource-specific properties.
12. Vorrichtung nach dem vorhergehenden Anspruch, dadurch ge- kennzeichnet, dass alle Softwaresoftwarekomponenten einer Ap- plikation, die zur Anwendung kommen soll, je einem Rechenkno- ten zugewiesen werden können. 12. Device according to the preceding claim, characterized in that all software software components of an application that is to be used can each be assigned to a computing node.
13. Computerprogrammprodukt, das in einen Speicher der Vor- richtung, insbesondere nach einem der vorherigen Vorrich- tungsansprüchen, ladbar ist, umfassend Programmcodeteile, die dazu ausgelegt sind, das Verfahren nach einem der vorherge- henden Verfahrensansprüchen auszuführen. 13. Computer program product that can be loaded into a memory of the device, in particular according to one of the preceding device claims, comprising program code parts which are designed to carry out the method according to one of the preceding method claims.
EP21728446.2A 2020-05-29 2021-05-06 Method and device for distributing software components of one or more applications to infrastructure components of an industrial infrastructure suitable for the execution thereof Pending EP4139799A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP20177414.8A EP3916553A1 (en) 2020-05-29 2020-05-29 Method and device for distributing of software componetns of one or more applications for their execution on suitable infrastructure components of an industrial infrastructure.
PCT/EP2021/062025 WO2021239433A1 (en) 2020-05-29 2021-05-06 Method and device for distributing software components of one or more applications to infrastructure components of an industrial infrastructure suitable for the execution thereof

Publications (1)

Publication Number Publication Date
EP4139799A1 true EP4139799A1 (en) 2023-03-01

Family

ID=70968742

Family Applications (2)

Application Number Title Priority Date Filing Date
EP20177414.8A Withdrawn EP3916553A1 (en) 2020-05-29 2020-05-29 Method and device for distributing of software componetns of one or more applications for their execution on suitable infrastructure components of an industrial infrastructure.
EP21728446.2A Pending EP4139799A1 (en) 2020-05-29 2021-05-06 Method and device for distributing software components of one or more applications to infrastructure components of an industrial infrastructure suitable for the execution thereof

Family Applications Before (1)

Application Number Title Priority Date Filing Date
EP20177414.8A Withdrawn EP3916553A1 (en) 2020-05-29 2020-05-29 Method and device for distributing of software componetns of one or more applications for their execution on suitable infrastructure components of an industrial infrastructure.

Country Status (2)

Country Link
EP (2) EP3916553A1 (en)
WO (1) WO2021239433A1 (en)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017005514A (en) 2015-06-10 2017-01-05 富士通株式会社 Radio equipment
US20190007258A1 (en) * 2017-06-29 2019-01-03 Cisco Technology, Inc. Workload placement and resource allocation for media production data center

Also Published As

Publication number Publication date
WO2021239433A1 (en) 2021-12-02
EP3916553A1 (en) 2021-12-01

Similar Documents

Publication Publication Date Title
DE102020125219A1 (en) END-TO-END SERVICE QUALITY IN EDGE COMPUTING ENVIRONMENTS
DE102018120345A1 (en) High-performance control server system
EP3320406B1 (en) Enabling a processing step for an object to be processed
DE112015001256T5 (en) Distributed big data in a process control system
DE102010044529B4 (en) AUTONOMOUS MEMORY SUB SYSTEM WITH HARDWARE ACCELERATOR
DE102022114256A1 (en) SYSTEMS AND METHODS FOR DYNAMICALLY MAINTAINED REDUNDANCY AND LOAD BALANCING IN SOFTWARE-DEFINED CONTROL SYSTEMS FOR INDUSTRIAL PROCESS PLANTS
DE102022114301A1 (en) SOFTWARE DEFINED PROCESS CONTROL SYSTEM FOR INDUSTRIAL PROCESS PLANTS
DE102022114391A1 (en) Search service in a software defined control system
DE102022115155A1 (en) VISUALIZATION OF A SOFTWARE DEFINED PROCESS CONTROL SYSTEM FOR INDUSTRIAL PROCESS PLANTS
DE102022114267A1 (en) SYSTEMS AND METHODS FOR DYNAMIC MAINTAINING REDUNDANCY AND LOAD BALANCING IN SOFTWARE-DEFINED CONTROL SYSTEMS FOR INDUSTRIAL PROCESS PLANTS
DE112011105911T5 (en) Server with switch circuits
DE102022114799A1 (en) SYSTEMS AND METHODS FOR ASSIGNING MODULES IN A SOFTWARE-DEFINED CONTROL SYSTEM FOR INDUSTRIAL PROCESS PLANTS
DE102022114541A1 (en) SEARCH SERVICE IN A SOFTWARE-DEFINED CONTROL SYSTEM
EP3125056A1 (en) System and method for control and/or analysis of an industrial process
DE102022115152A1 (en) VISUALIZATION OF A SOFTWARE-DEFINED PROCESS CONTROL SYSTEM FOR INDUSTRIAL PROCESS PLANTS
DE102022114306A1 (en) I/O SERVER SERVICES CONFIGURED TO FACILITATE CONTROL IN A PROCESS CONTROL ENVIRONMENT THROUGH CONTAINERIZED CONTROL SERVICES
DE102022114305A1 (en) I/O SERVER SERVICES TO SELECT AND USE ACTIVE CONTROL OUTPUTS FROM CONTAINED CONTROL SERVICES IN A PROCESS CONTROL ENVIRONMENT
DE102022114307A1 (en) USE OF QUALITY OF SERVICE METRICS TO FACILITATE TRANSITIONS BETWEEN I/O CHANNELS FOR I/O SERVER SERVICES
DE102022115178A1 (en) VISUALIZATION OF A SOFTWARE DEFINED PROCESS CONTROL STEMS FOR INDUSTRIAL PROCESS PLANTS
DE102022114250A1 (en) Systems and methods for hierarchical organization of software-defined process control systems for industrial process plants
DE102012219705A1 (en) DATA PACK PROCESSING ON THE NETWORK
DE102022114375A1 (en) SECURITY SERVICES IN A SOFTWARE-DEFINED CONTROL SYSTEM
DE102022114281A1 (en) SOFTWARE-DEFINED CONTROL SYSTEM WITH I/O SERVER SERVICES THAT COMMUNICATE WITH CONTAINERIZED SERVICES
DE102022114302A1 (en) SOFTWARE-DEFINED PROCESS CONTROL SYSTEM AND METHODS FOR INDUSTRIAL PROCESS PLANTS
WO2022022992A1 (en) Digital twin-based process control in an iot network

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: UNKNOWN

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20221123

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS

17Q First examination report despatched

Effective date: 20231205