DE102019211908A1 - Method and apparatus for distributing an application - Google Patents

Method and apparatus for distributing an application Download PDF

Info

Publication number
DE102019211908A1
DE102019211908A1 DE102019211908.5A DE102019211908A DE102019211908A1 DE 102019211908 A1 DE102019211908 A1 DE 102019211908A1 DE 102019211908 A DE102019211908 A DE 102019211908A DE 102019211908 A1 DE102019211908 A1 DE 102019211908A1
Authority
DE
Germany
Prior art keywords
application
runtime
requirements
following
runtime environment
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
DE102019211908.5A
Other languages
German (de)
Inventor
Heidrun Grob-Lipski
Martin Zimmermann
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102019211908.5A priority Critical patent/DE102019211908A1/en
Priority to CN202010788606.1A priority patent/CN112346853A/en
Publication of DE102019211908A1 publication Critical patent/DE102019211908A1/en
Pending legal-status Critical Current

Links

Images

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/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • 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/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/502Proximity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/503Resource availability

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Verfahren (20) zum Verteilen einer Anwendung (21), gekennzeichnet durch folgende Merkmale:- Laufzeitanforderungen (22) der Anwendung (21) werden einer Anwendungsverwaltung (24) zugeführt (23),- durch die Anwendungsverwaltung (24) wird eine semantische Beschreibung (26) erzeugt (25) und- die Beschreibung (26) wird einer Laufzeitumgebung (28) übergeben (27) und- gemäß der Beschreibung (26) wird die Anwendung (21) innerhalb der Laufzeitumgebung (28) anhand ihrer Laufzeitanforderungen (22) wahlweise auf Cloud-Computing-Plattformen (10), Rechenzentren (11, 12, 13), Server (14) oder Endgeräte verteilt.Method (20) for distributing an application (21), characterized by the following features: - Runtime requirements (22) of the application (21) are fed (23) to an application management (24), - the application management (24) provides a semantic description ( 26) is generated (25) and - the description (26) is transferred (27) to a runtime environment (28) and - according to the description (26), the application (21) is optionally within the runtime environment (28) based on its runtime requirements (22) Distributed on cloud computing platforms (10), data centers (11, 12, 13), servers (14) or terminals.

Description

Die vorliegende Erfindung betrifft ein Verfahren zum Verteilen einer Anwendung. Die vorliegende Erfindung betrifft darüber hinaus eine entsprechende Vorrichtung, ein entsprechendes Computerprogramm sowie ein entsprechendes Speichermedium.The present invention relates to a method for distributing an application. The present invention also relates to a corresponding device, a corresponding computer program and a corresponding storage medium.

Auf dem Gebiet des IT-Managements werden unterschiedlichste Prozesse zur Installation von Softwareanwendungen auf Rechnern und in Rechenzentren gemeinhin unter dem Begriff der Softwareverteilung (software deployment) zusammengefasst.In the field of IT management, a wide variety of processes for installing software applications on computers and in data centers are commonly summarized under the term software deployment.

Edge Computing bezeichnet - in Anlehnung an das hinlänglich bekannte Cloud Computing - die dezentrale Datenverarbeitung am topologischen Rand (edge) eines Rechnernetzes. Hierzu werden Datenströme ressourcenschonend teilweise an Ort und Stelle - z. B. direkt am Endgerät oder innerhalb einer Fabrik -, teilweise jedoch in der Cloud verarbeitet.Edge computing refers to - based on the well-known cloud computing - the decentralized data processing at the topological edge of a computer network. For this purpose, data streams are partially saved on the spot - e. B. directly on the end device or within a factory - but partially processed in the cloud.

WO 2018/206502 A1 beschreibt ein Verfahren zum Zuteilen digitaler Ressourcen eines lokalen, modularen Rechnernetzwerkes, dessen Modulen jeweils ein Ressourcenwert für eine Ressource zugeordnet ist, in Abhängigkeit von einem Eingabedatensatz, der eine Ressourcenanfrage mit einem Bedarfswert aufweist. Zunächst wird hierzu der Eingabedatensatz eingelesen, dann von jedem Rechenmodul der Ressourcenwert ab, welcher die Verfügbarkeit des jeweiligen Moduls repräsentiert. Sodann wird der Bedarfswert mit den abgerufenen Ressourcenwerten verglichen. In Abhängigkeit vom Ergebnis werden die Ressourcen der Anfrage zugeteilt. WO 2018/206502 A1 describes a method for allocating digital resources of a local, modular computer network, the modules of which are each assigned a resource value for a resource, as a function of an input data record which has a resource request with a requirement value. To this end, the input data set is first read in, then the resource value from each computing module, which represents the availability of the respective module. The requirement value is then compared with the retrieved resource values. Depending on the result, the resources are allocated to the request.

US 9,336,060 B2 beschreibt ein Framework für Middleware-Dienste, welches auf einem ähnlichen Ansatz beruht. US 9,336,060 B2 describes a framework for middleware services that is based on a similar approach.

CN 107357241 A offenbart eine einschlägige Lösung aus dem Industrial-loT-Umfeld. CN 107357241 A discloses a relevant solution from the industrial loT environment.

CN 109144659 A diskutiert Techniken zur Live-Migration von Edge-Computing-Funktionen insbesondere anhand von deren Anforderungen und Auslastung der Knoten. CN 109144659 A discusses techniques for the live migration of edge computing functions based on their requirements and utilization of the nodes.

Stand der TechnikState of the art

Offenbarung der ErfindungDisclosure of the invention

Die Erfindung stellt ein Verfahren zum Verteilen einer Anwendung, eine entsprechende Vorrichtung, ein entsprechendes Computerprogramm sowie ein entsprechendes maschinenlesbares Speichermedium gemäß den unabhängigen Ansprüchen bereit.The invention provides a method for distributing an application, a corresponding device, a corresponding computer program and a corresponding machine-readable storage medium according to the independent claims.

Die vorgeschlagene Lösung fußt auf der Erkenntnis, dass in der modernen Unternehmensinfrastruktur die Arbeitslast nicht über die gesamte Organisation verteilt werden kann. Die gattungsmäßige Unternehmensinfrastruktur verfügt derzeit nicht über eine vollständig vernetzte Architektur insofern, als sie keine verteilte Dienste-Schicht und damit verbundene Verwaltungsfunktionen zu ihrer Organisation unterstützt. Darüber hinaus werden die Anwendungsfunktionen derzeit im Allgemeinen nicht in virtualisierten Umgebungen wie Containern und virtuellen Maschinen oder als eigenständige Funktionsbausteine ausgeführt. Zudem sind die Anforderungen der Anwendungsfunktionen sowie die Gegebenheiten der Topologie und der jeweiligen Ressourcen der Infrastruktur in der Regel nicht maschinenlesbar systemweit bekannt, was eine automatische Platzierung oder dynamische automatisierte Verschiebung der Funktionen derzeit unmöglich macht.The proposed solution is based on the knowledge that in modern corporate infrastructure, the workload cannot be distributed across the entire organization. The generic corporate infrastructure does not currently have a fully networked architecture insofar as it does not support a distributed service layer and associated administrative functions for your organization. In addition, the application functions are currently generally not executed in virtualized environments such as containers and virtual machines or as independent function modules. In addition, the requirements of the application functions as well as the conditions of the topology and the respective resources of the infrastructure are usually not machine-readable system-wide, which currently makes automatic placement or dynamic automated relocation of functions impossible.

Ein Grundgedanke des erfindungsgemäßen Ansatzes liegt vor diesem Hintergrund darin, eine automatische und dynamische Zuweisung beziehungsweise Neuzuweisung von Anwendungsfunktionen an die für deren Ausführung günstigste Position innerhalb einer Infrastruktur in Abhängigkeit von den Anforderungen der jeweiligen Funktion vorzunehmen.Against this background, a basic idea of the approach according to the invention is to carry out an automatic and dynamic assignment or reassignment of application functions to the most favorable position for their execution within an infrastructure depending on the requirements of the respective function.

Die Infrastruktur besteht hierbei aus einer Reihe topologisch verteilter Knoten. Diese Knoten sind mit Ressourcen wie Datenverarbeitungseinheiten, Speicher usw. verknüpft. Sie sind zudem direkt oder indirekt miteinander und direkt oder indirekt mit Endgeräten verbunden.The infrastructure here consists of a number of topologically distributed nodes. These nodes are linked to resources such as data processing units, memories, and so on. They are also connected directly or indirectly to one another and directly or indirectly to end devices.

Beim Systemstart wird mindestens ein zentraler Knoten der Topologie identifiziert und mit einer Dienste-Schicht (platform as a service, PaaS; function as a service, FaaS) ausgestattet. Ausgehend von diesem zentralen Knoten sind die restlichen Knoten der Topologie ebenfalls mit einer entsprechenden Schicht ausgestattet, sodass eine über die gesamte Topologie verteilte Schicht entsteht. Wenn ein Endgerät dazu geeignet ist, kann auch dieses mit einer entsprechenden Schicht ausgestattet werden.When the system is started, at least one central node in the topology is identified and equipped with a service layer (platform as a service, PaaS; function as a service, FaaS). Starting from this central nodes, the remaining nodes of the topology are also equipped with a corresponding layer, so that a layer is created that is distributed over the entire topology. If a terminal is suitable for this, it can also be equipped with a corresponding layer.

Eine Logik stimmt die Anforderungen der Anwendungsfunktion mit den verfügbaren Ressourcen ab. Diese Logik ist innerhalb der Infrastruktur im Rahmen der zentralen oder der lokalen Edge-Management-Funktion der zentralen bzw. der lokalen PaaS- bzw. FaaS-Schichten verfügbar.A logic matches the requirements of the application function with the available resources. This logic is available within the infrastructure within the framework of the central or local edge management function of the central or local PaaS or FaaS layers.

Darüber hinaus überwacht eine weitere Logik des Systems die derzeitige Ressourcenverfügbarkeit, um die Erfüllung der Anforderungen an die Anwendungsfunktion sowie die dynamische und automatisierte Zuweisung und Neuzuweisung von Anwendungsfunktionen zu unterstützen. Diese Logik sollte ebenfalls in jeder PaaS- bzw. FaaS-Schicht der Topologie verfügbar sein.In addition, another logic of the system monitors the current resource availability in order to support the fulfillment of the requirements for the application function as well as the dynamic and automated assignment and reassignment of application functions. This logic should also be available in every PaaS or FaaS layer of the topology.

Wie bereits erwähnt können je nach Leistungsfähigkeit der Endgeräte auch diesen Anwendungsfunktionen zugeordnet werden. Wenn ein Endgerät mit einer PaaS- oder FaaS-Schicht ausgestattet ist, kann es ebenfalls die Neuzuweisung der Anwendungsfunktionen an einen anderen Knoten auslösen. Wenn das Endgerät selbst nicht über eine PaaS- oder FaaS-Schicht verfügt, wird die Neuzuweisung durch einen anderen PaaS- oder FaaS-Knoten innerhalb der Infrastruktur vorgenommen.As already mentioned, these application functions can also be assigned depending on the performance of the end devices. If an end device is equipped with a PaaS or FaaS layer, it can also trigger the reassignment of application functions to another node. If the end device itself does not have a PaaS or FaaS layer, the reallocation is carried out by another PaaS or FaaS node within the infrastructure.

Ein Vorzug dieser Lösung liegt darin, dass sie - im Vergleich zu einigen der oben genannten Lösungen - von einem generischen Systemmodell ausgeht. Die skizzierten Methoden sind insbesondere nicht auf mobile Kommunikationssysteme begrenzt. Weiterhin werden allgemeine Endgeräte und nicht unbedingt mobile Geräte oder Sensorgeräte als Endgeräte unterstützt. Diese Endgeräte liefern verschiedene Arten von Daten und sind nicht etwa auf Sensordaten beschränkt.One advantage of this solution is that it is based on a generic system model compared to some of the solutions mentioned above. In particular, the methods outlined are not limited to mobile communication systems. Furthermore, general end devices and not necessarily mobile devices or sensor devices are supported as end devices. These terminals provide various types of data and are not limited to sensor data.

Hierbei berücksichtigt das Konzept allgemeine Infrastruktureinheiten und Ressourcen wie virtualisierte oder nicht virtualisierte Rechenleistung, Speicher, Verbindungs- und Kommunikationsressourcen sowie Anwendungsfunktionen, die bei der Verwaltung der genannten Ressourcen zum Einsatz kommen.The concept takes into account general infrastructure units and resources such as virtualized or non-virtualized computing power, storage, connection and communication resources and application functions that are used in the management of the resources mentioned.

Ein Publikations- und Abonnementverfahren (publish-subscribe) und eine konfigurierbare Nachricht können verwendet werden, um die Verteilung von Informationen über Betriebsmittel wie Rechenleistung, Speicher, Konnektivität usw. zu koordinieren. Ein entsprechendes Verfahren kann auf die Anforderungen der Anwendungsfunktion angewendet werden. Auch semantische Methoden sollten herangezogen werden, um die im Rechnernetz verfügbaren Betriebsmittel und deren Beziehungen sowie die Anforderungen der Anwendungsfunktionen zu beschreiben.A publish-subscribe process and a configurable message can be used to coordinate the distribution of information about resources such as computing power, storage, connectivity, etc. A similar method can be applied to the requirements of the application function. Semantic methods should also be used to describe the resources available in the computer network and their relationships as well as the requirements of the application functions.

Durch die in den abhängigen Ansprüchen aufgeführten Maßnahmen sind vorteilhafte Weiterbildungen und Verbesserungen des im unabhängigen Anspruch angegebenen Grundgedankens möglich. So besteht eine erfindungsgemäße Unternehmensinfrastruktur beispielsweise aus einem globalen Rechenzentrum, mehreren regionalen Rechenzentren und auf regionaler Ebene weiteren lokalen Rechenzentren, die Infrastrukturdienste für entfernte Standorte anbieten. Weitere Betriebsmittel können z. B. aus öffentlichen Clouds wie Microsoft Azure oder Amazon Web Services (AWS) abgerufen werden. Innerhalb oder in der Nähe der lokalen Rechenzentren könnten beispielsweise weitere Netzwerkknoten wie Server im Werksumfeld zur Verfügung stehen, um Anwendungsfunktionen zu erfüllen.The measures listed in the dependent claims enable advantageous developments and improvements of the basic idea specified in the independent claim. Thus, a company infrastructure according to the invention consists, for example, of a global data center, several regional data centers and, at the regional level, further local data centers that offer infrastructure services for remote locations. Other resources can e.g. B. from public clouds such as Microsoft Azure or Amazon Web Services (AWS). Within or in the vicinity of the local data center, for example, additional network nodes such as servers could be available in the factory environment in order to fulfill application functions.

Gemäß einem weiteren Aspekt kann vorgesehen sein, dass die Anwendungsverwaltung über die Laufzeitumgebung verteilt erfolgt. Die Rechenzentren, Server und öffentlichen Cloud-Ressourcen werden dabei mit der verteilten PaaS- oder FaaS-Schicht, im Folgenden auch Edge Runtime (ERT) genannt, ausgestattet. Eine ERT beinhaltet sogenannte Edge Services, lokal erforderliche Management- sowie andere PaaS- und FaaS-typische FunktionenAccording to a further aspect, it can be provided that the application management is distributed over the runtime environment. The data centers, servers and public cloud resources are equipped with the distributed PaaS or FaaS layer, hereinafter also referred to as Edge Runtime (ERT). An ERT includes so-called edge services, locally required management and other PaaS and FaaS-typical functions

FigurenlisteFigure list

Ausführungsbeispiele der Erfindung sind in den Zeichnungen dargestellt und in der nachfolgenden Beschreibung näher erläutert. Es zeigt:

  • 1 eine erfindungsgemäße Infrastruktur.
  • 2 das Flussdiagramm eines erfindungsgemäßen Verfahrens.
  • 3 beispielhaft die Anwendungsfunktionen maschinelles Lernen, Fernüberwachung und Qualitätsvorhersagen.
Exemplary embodiments of the invention are shown in the drawings and explained in more detail in the description below. It shows:
  • 1 an infrastructure according to the invention.
  • 2 the flow chart of a method according to the invention.
  • 3 for example the application functions machine learning, remote monitoring and quality predictions.

Ausführungsformen der ErfindungEmbodiments of the invention

Eine erfindungsgemäße Anwendungsverwaltung sollte in der Lage sein, vollständig zentral oder hybrid wie in 1 zu arbeiten: als teils zentrale, teils dezentrale Anwendungsverwaltung (24). Im Folgenden wird die letztgenannte Hybridlösung anhand der 2 näher beschrieben. Die Topologie der Infrastruktur wird in diesem Fall den dezentralen ERTs (28) zur Verfügung gestellt und regelmäßig aktualisiert.An application management according to the invention should be able to operate completely centrally or in a hybrid manner as in 1 to work: as a partly central, partly decentralized application management ( 24 ). In the following, the last-mentioned hybrid solution is explained using the 2 described in more detail. In this case, the topology of the infrastructure is assigned to the decentralized ERTs ( 28 ) and updated regularly.

Anwendungen haben verschiedene Funktionen. Die Anforderungen an diese Anwendungsfunktionen werden semantisch in Bezug auf Programmierschnittstelle (application programming interface, API), Priorität, Latenz, Bandbreite, Rechenleistung, Ressourcenkosten, Leistung usw. beschrieben. Diese semantischen Beschreibungen werden als Eingabe der zentralen Anwendungsverwaltung (24) zugeführt (23). Letztere erzeugt (25) ihrerseits eine Konfigurationsbeschreibung (edge compute as code), die an jede lokale ERT (28) oder mit der ERT (28) der Infrastrukturknoten, die der Anwendung (21) oder bestimmten Anwendungsfunktionen zugeordnet sind, verteilt wird. Die Verteilung des edge compute as code kann bei großen Infrastrukturen auch topologisch begrenzt erfolgen. Eine Änderung der Anforderungen an die Anwendungsfunktion führt zu einer Änderung der semantischen Beschreibung (26), die wiederum zu einer Änderung der edge compute as code-Beschreibung der ERTs (28) führt.Applications have different functions. The requirements for these application functions are described semantically in terms of application programming interface (API), priority, latency, bandwidth, computing power, resource costs, performance, etc. These semantic descriptions are used as input to the central application administration ( 24 ) fed ( 23 ). The latter generates ( 25th ) in turn a configuration description (edge compute as code), which is sent to each local ERT ( 28 ) or with the ERT ( 28 ) the infrastructure nodes that the application ( 21st ) or assigned to certain application functions. The distribution of the edge compute as code can also be topologically limited in large infrastructures. A change in the requirements for the application function leads to a change in the semantic description ( 26th ), which in turn leads to a change in the edge compute as code description of the ERTs ( 28 ) leads.

Darüber hinaus werden der Anwendungsverwaltung (24) der ERTs (28) semantische Beschreibungen der Ressourcen, betreffend etwa aktuellen Speicherzustand, Rechenleistung, Bandbreite, Latenzzeit, Ressourcenkosten usw., zur Verfügung gestellt.In addition, the application management ( 24 ) of the ERTs ( 28 ) semantic descriptions of the resources, regarding the current memory status, computing power, bandwidth, latency, resource costs, etc.

Die Aktualisierung von Topologie-, Ressourcen- und Anwendungsinformationen kann - zum Beispiel auf ein bestimmtes geografisches Gebiet - eingeschränkt werden, um übermäßige Aktualisierungen zu vermeiden und den Kommunikationsaufwand zu senken. Hierzu kann beispielsweise eine selbstlernende Logik vorgesehen sein. Auch ein Publish-Subscribe-Mechanismus kann angewendet werden, um die Aktualisierungen auf ERTs (28) zu beschränken, welche zuvor durch eine Subscribe-Nachricht mit einer bestimmten Konfiguration ihr Interesse bekundet haben. Die vorliegenden Ressourcenverhältnisse sollten hierbei stets bekannt sein, insbesondere unter hoher Belastung. Infrastruktureinrichtungen, die während eines vorgegebenen Zeitraums nicht für die Zuweisung oder Neuzuweisung genutzt wurden, können von einer regelmäßigen und zeitnahen Aktualisierung ausgenommen werden. Die Aktualisierung der Topologie-Informationen sollte sodann in größeren Zeitabständen bei geringer Netzlast erfolgen.The updating of topology, resource and application information can be restricted - for example to a certain geographical area - in order to avoid excessive updates and to reduce the communication effort. A self-learning logic can be provided for this purpose, for example. A publish-subscribe mechanism can also be used to transfer the updates to ERTs ( 28 ) who have previously expressed their interest with a subscribe message with a specific configuration. The available resource relationships should always be known, especially under high loads. Infrastructure facilities that have not been used for assignment or reallocation during a specified period of time can be excluded from regular and timely updates. The topology information should then be updated at longer intervals when the network load is low.

Die zentrale Anwendungsverwaltung (24) wertet die Konfigurationsdatei aus und verteilt die Anwendungsfunktionen anhand ihrer Laufzeitanforderungen (22), der Topologie und den Eigenschaften der Infrastrukturknoten.The central application management ( 24 ) evaluates the configuration file and distributes the application functions based on their runtime requirements ( 22nd ), the topology and the properties of the infrastructure nodes.

3 zeigt beispielhaft die für die vernetzte Industrie zentralen Anwendungsfunktionen maschinelles Lernen (machine learning, ML, 31), Fernüberwachung (remote monitoring, RM, 32) und Qualitätsvorhersagen (quality prediction, QP, 33). 3 shows an example of the central application functions of machine learning (machine learning, ML, 31), remote monitoring (RM, 32) and quality predictions (quality prediction, QP, 33).

Die ERTs (28) des regionalen Rechenzentrums (12) und der lokalen Rechenzentren (13), die entweder die jeweilige Anwendung (21) abonniert haben oder von der Anwendungsverwaltung (24) des globalen Rechenzentrums (11) ausgewählt wurden, erhalten von diesem die semantische Beschreibung (26) der Anwendungsfunktionen. Die ERTs (28) verfügen zudem über die aktuellen Topologie-Informationen und Ressourcenfähigkeiten. Basierend auf diesen topologischen Informationen, aktuellen Ressourcenfähigkeiten und der kodierten Beschreibung (26) wählt das globale Rechenzentrum (11) ein lokales Rechenzentrum (13) aus, um die Anwendungsfunktionen zu erfüllen. Die Platzierung durch das globale Rechenzentrum erfolgt im Rahmen der Erstplatzierung oder im Zusammenhang eines zyklisch wiederkehrenden Optimiervorganges.The ERTs ( 28 ) of the regional data center ( 12 ) and the local data centers ( 13 ), either the respective application ( 21st ) or from the application management ( 24 ) of the global data center ( 11 ) have been selected, the semantic description ( 26th ) of the application functions. The ERTs ( 28 ) also have the latest topology information and resource capabilities. Based on this topological information, current resource capabilities and the coded description ( 26th ) selects the global data center ( 11 ) a local data center ( 13 ) to fulfill the application functions. The placement by the global data center takes place as part of the initial placement or in connection with a cyclically recurring optimization process.

Durch Änderung der Code-, Topologie- oder Ressourcensituation löst die ERT (28) des betreffenden lokalen Rechenzentrums (13) die Neuzuordnung der Anwendungsfunktionen aus. Die ERT (28) ordnet dann ML (31), RM (32) und QP (33) in Abhängigkeit von Konfiguration, Topologie und Ressourcensituation des globalen Rechenzentrums (11), der lokalen Rechenzentren (13) und des Servers (14) vor Ort (on premises) erneut zu.By changing the code, topology or resource situation, the ERT ( 28 ) of the local data center concerned ( 13 ) the reassignment of the application functions. The ERT ( 28 ) then assigns ML ( 31 ), RM ( 32 ) and QP ( 33 ) depending on the configuration, topology and resource situation of the global data center ( 11 ), the local data centers ( 13 ) and the server ( 14th ) again on site.

Eine Anzahl n von Infrastrukturknoten InfrKnoteni definiert die Topologie der Infrastruktur. Die zentralen und lokalen ERTs (28) erstellen und pflegen Ressourcenlisten auf der Grundlage der derzeitigen Ressourcenverhältnisse aller Knoten InfrKnoteni der Topologie. Weiterhin kennt jedes ERT (28) eines InfrKnoteni die Anforderungen der Anwendungsfunktionen, z. B. die Latenzanforderung latenzAnforderungk der Anwendungsfunktion k, aus diesbezüglichen Funktionslisten.A number n of infrastructure nodes InfNode i defines the topology of the infrastructure. The central and local ERTs ( 28 ) create and maintain resource lists on the basis of the current resource ratios of all nodes InfNode i of the topology. Furthermore every ERT knows ( 28 ) of an infrared node i die Application function requirements, e.g. B. the latency requirement latency requirement k of the application function k, from the relevant function lists.

Die folgende Tabelle illustriert anhand eines Beispiels die aktuellen Latenzwerte und die Kosten der Ressourcen zwischen Knoten und Endgerät: Knoten Latenz Ressourcenkosten S InfrKnoten22 100 100 250 InfrKnoten9 110 80 245 The following table uses an example to illustrate the current latency values and the costs of resources between the node and the end device: node latency Resource costs S. Infr node 22 100 100 250 Infr node 9 110 80 245

Wenn die Latenz als entscheidende Anforderung festgelegt ist, wird in diesem Beispiel InfrKnoten22 ausgewählt, da die Latenz22 die niedrigste Latenz zwischen anforderndem Endgerät und InfrKnoten22 darstellt. Wenn hingegen die Kosten als entscheidende Anforderung definiert sind, wird folglich InfrKnoten9 ausgewählt. Auch eine Kombination mehrerer Kriterien, gegebenenfalls mit einer Gewichtung, die die Rangfolge der Anforderungen widerspiegelt, kann als Entscheidungsgrundlage herangezogen werden. Z. B. könnte anhand der Berechnungen 1,5 · 100 + 1 · 100 = 250 und 1,5 · 110 + 1 · 80 = 245 die Entscheidung fallen, dass InfrKnoten9 gewählt wird.In this example, if latency is set as the critical requirement, InfrNode 22 is selected because latency 22 represents the lowest latency between the requesting terminal and InfrNode 22 . Conversely, if the cost is defined as the critical requirement, then InfrNode 9 is selected. A combination of several criteria, if necessary with a weighting that reflects the ranking of the requirements, can be used as a basis for decision-making. For example, based on the calculations 1.5 * 100 + 1 * 100 = 250 and 1.5 * 110 + 1 * 80 = 245, the decision could be made that InfrNode 9 is selected.

Eine Erstplatzierung erfolgt durch die zentrale Anwendungsverwaltung (24). Falls der Zusammenhang latenzAnforderungk ≥ Latenzi' gilt, wählt die Anwendungsverwaltung (24) bei alleiniger Betrachtung der Latenz InfrKnoteni' als denjenigen Knoten mit der geringsten Latenz in der Ressourcenliste.An initial placement is carried out by the central application administration ( 24 ). If the relationship between latency requirement k ≥ latency i ' applies, the application management selects ( 24 ) if only the latency InfrNode i 'is considered as the node with the lowest latency in the resource list.

Eine Ersetzung gestaltet sich in diesem Beispiel wie folgt: Idealerweise wird der Ersetzungsvorgang durch die lokale ERT (28) von InfrKnoteni' ausgelöst. Alternativ kann der Ersetzungsvorgang auch durch die zentrale Anwendungsverwaltung (24) veranlasst werden. Dabei ist eine Hysterese empfehlenswert, um die Ersetzung hinauszuzögern und einen andernfalls drohenden Pingpong-Effekt zu vermeiden.In this example, a replacement is structured as follows: Ideally, the replacement process is carried out by the local ERT ( 28 ) triggered by infrared node i ' . Alternatively, the replacement process can also be carried out by the central application administration ( 24 ). A hysteresis is recommended in order to delay the replacement and to avoid an otherwise threatening ping-pong effect.

Sobald der Zusammenhang latenzAnforderungk + h ≤ Latenzi' erfüllt ist, wird die aktuelle Ressourcenliste geprüft. Da diese häufig aktualisiert wird, wählt die Anwendungsverwaltung (24) einen anderen Knoten InfrKnoteni'' als Ersatz aus. As soon as the connection latency requirement k + h ≤ latency i 'is met, the current resource list is checked. Since this is updated frequently, the application management chooses ( 24 ) select another node InfrNode i '' as a replacement.

Auch eine Verlagerung anderer Anwendungen wird idealerweise durch die lokale ERT (28) von InfrKnoteni' ausgelöst. Alternativ kann die Verlagerung auch von der zentralen Anwendungsverwaltung (24) ausgelöst werden, insbesondere im Rahmen zyklischer Optimierprozesse.A relocation of other applications is ideally also supported by the local ERT ( 28 ) triggered by infrared node i ' . Alternatively, the relocation can also be carried out by the central application management ( 24 ), especially in the context of cyclical optimization processes.

Die folgende Tabelle berücksichtigt die Funktionen Funktion3 und Funktion7 des Knotens InfrKnoten22. Die weitere Funktion Funktion8 ist wegen stringenter Latenzanforderungen auf denselben Knoten zu verlagern. Anwendungsfunktion Rechenleistung Latenzanforderung Funktion3 100 100 Funktion7 120 500 Funktion8 100 50 The following table takes into account the functions function 3 and function 7 of the node InfrNode 22 . The other function, function 8, has to be moved to the same node because of stringent latency requirements. Application function Computing power Latency requirement Function 3 100 100 Function 7 120 500 Function 8 100 50

Indes lassen aktuelle Messungen ein Absinken der auf Knoten InfrKnoten22 verfügbaren Rechenleistung erkennen, wenn Funktion8 an Knoten InfrKnoten22 zugewiesen wird; in diesem Fall beläuft sich die erforderliche Rechenleistung auf 320 und übersteigt somit die verfügbare Rechenleistung von 20: Knoten Rechenleistung Latenz bezüglich Endgerät für Funktion3 Latenz bezüglich Endgerät für Funktion7 InfrKnoten22 300 90 150 InfrKnoten9 300 200 260 However, current measurements indicate a decrease in the computing power available on node InfrNode 22 when function 8 is assigned to node InfrNode 22 ; In this case the required computing power is 320 and thus exceeds the available computing power of 20: node Computing power Terminal latency for function 3 Terminal latency for function 7 Infr node 22 300 90 150 Infr node 9 300 200 260

Wenn - wie in diesem Fall - die Summe der Rechenleistungsanforderungen die verfügbare Rechenleistung mindestens um einen Hysteresewert h übersteigt, wird die aktuelle Ressourcenliste geprüft. Da kein alternativer Knoten InfrKnoteni ermittelt werden kann, der die Latenzanforderungen von Funktion8 erfüllen könnte, wird die Verlagerung einer anderen Funktion eingeleitet.If - as in this case - the sum of the computing power requirements exceeds the available computing power by at least one hysteresis value h, the current resource list is checked. Since no alternative node InfrNode i can be identified that could meet the latency requirements of function 8 , the relocation of another function is initiated.

Im vorliegenden Beispiel wird für Funktion7 der Knoten InfrKnoten9 ausgewählt, da diese Funktion geringere Latenzanforderungen stellt.In the present example, node InfrNode 9 is selected for function 7 because this function has lower latency requirements.

ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturPatent literature cited

  • WO 2018/206502 A1 [0004]WO 2018/206502 A1 [0004]
  • US 9336060 B2 [0005]US 9336060 B2 [0005]
  • CN 107357241 A [0006]CN 107357241 A [0006]
  • CN 109144659 A [0007]CN 109144659 A [0007]

Claims (10)

Verfahren (20) zum Verteilen einer Anwendung (21), gekennzeichnet durch folgende Merkmale: - Laufzeitanforderungen (22) der Anwendung (21) werden einer Anwendungsverwaltung (24) zugeführt (23), - durch die Anwendungsverwaltung (24) wird eine semantische Beschreibung (26) erzeugt (25) und - die Beschreibung (26) wird einer Laufzeitumgebung (28) übergeben (27) und - gemäß der Beschreibung (26) wird die Anwendung (21) innerhalb der Laufzeitumgebung (28) anhand ihrer Laufzeitanforderungen (22) wahlweise auf Cloud-Computing-Plattformen (10), Rechenzentren (11, 12, 13), Server (14) oder Endgeräte verteilt.Method (20) for distributing an application (21), characterized by the following features: - Runtime requirements (22) of the application (21) are fed (23) to an application management (24), - the application management (24) provides a semantic description ( 26) is generated (25) and - the description (26) is transferred (27) to a runtime environment (28) and - according to the description (26), the application (21) is optionally within the runtime environment (28) based on its runtime requirements (22) Distributed on cloud computing platforms (10), data centers (11, 12, 13), servers (14) or end devices. Verfahren (20) nach Anspruch 1, dadurch gekennzeichnet, dass die Anwendung (21) mindestens eine der folgenden Funktionen erfüllt: - maschinelles Lernen (31), - Fernüberwachung (32) oder - Qualitätsvorhersagen (33).Method (20) according to Claim 1 , characterized in that the application (21) fulfills at least one of the following functions: - machine learning (31), - remote monitoring (32) or - quality predictions (33). Verfahren (20) nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Rechenzentren (11, 12, 13) mindestens eines der Folgenden umfassen: - ein globales Rechenzentrum (11), - ein regionales Rechenzentrum (11) oder - ein lokales Rechenzentrum (11).Method (20) according to Claim 1 or 2 , characterized in that the computing centers (11, 12, 13) comprise at least one of the following: - a global computing center (11), - a regional computing center (11) or - a local computing center (11). Verfahren (20) nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass die Laufzeitanforderungen (22) mindestens einen der folgenden Dienste betreffen: - eine Entwickler- und Deployment-Programmierschnittstelle - eine Betreiberschnittstelle - eine Netzwerkanwendungsprogrammierschnittstelle oder - eine Container-Virtualisierung-Programmierschnittstelle.Method (20) according to one of the Claims 1 to 3 , characterized in that the runtime requirements (22) relate to at least one of the following services: - a developer and deployment programming interface - an operator interface - a network application programming interface or - a container virtualization programming interface. Verfahren (20) nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass die Laufzeitanforderungen (22) der Anwendungsverwaltung (24) als Manifest-Datei zugeführt werden, die mindestens eines der folgenden umfasst: - eine Datenlast, - eine Verzögerung oder - eine Bandbreite.Method (20) according to one of the Claims 1 to 4th , characterized in that the runtime requirements (22) are fed to the application management (24) as a manifest file which comprises at least one of the following: - a data load, - a delay or - a bandwidth. Verfahren (20) nach einem der Ansprüche 1 bis 5, gekennzeichnet durch folgende Merkmale: - nach dem Verteilen wird die Anwendung (21) sowie die aktuelle Ressourcen-Situation werden fortlaufend überwacht und miteinander abgeglichen und die Anwendung (21) wird bedarfsweise innerhalb der Laufzeitumgebung (28) umverteilt.Method (20) according to one of the Claims 1 to 5 , characterized by the following features: - after the distribution, the application (21) and the current resource situation are continuously monitored and compared with one another and the application (21) is redistributed within the runtime environment (28) if necessary. Verfahren (20) nach einem der Ansprüche 1 bis 6, gekennzeichnet durch folgendes Merkmal: - die Anwendungsverwaltung (24) erfolgt zentral und/oder über die Laufzeitumgebung (28) verteilt.Method (20) according to one of the Claims 1 to 6th , characterized by the following feature: the application management (24) takes place centrally and / or distributed over the runtime environment (28). Computerprogramm, welches eingerichtet ist, das Verfahren (20) nach einem der Ansprüche 1 bis 7 auszuführen.Computer program which is set up, the method (20) according to one of the Claims 1 to 7th execute. Maschinenlesbares Speichermedium, auf dem das Computerprogramm nach Anspruch 8 gespeichert ist.Machine-readable storage medium on which the computer program is based Claim 8 is stored. Vorrichtung (10, 11, 12, 13, 14), die eingerichtet ist, das Verfahren (20) nach einem der Ansprüche 1 bis 7 auszuführen.Device (10, 11, 12, 13, 14) which is set up, the method (20) according to one of the Claims 1 to 7th execute.
DE102019211908.5A 2019-08-08 2019-08-08 Method and apparatus for distributing an application Pending DE102019211908A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102019211908.5A DE102019211908A1 (en) 2019-08-08 2019-08-08 Method and apparatus for distributing an application
CN202010788606.1A CN112346853A (en) 2019-08-08 2020-08-07 Method and apparatus for distributing applications

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102019211908.5A DE102019211908A1 (en) 2019-08-08 2019-08-08 Method and apparatus for distributing an application

Publications (1)

Publication Number Publication Date
DE102019211908A1 true DE102019211908A1 (en) 2021-02-11

Family

ID=74191250

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019211908.5A Pending DE102019211908A1 (en) 2019-08-08 2019-08-08 Method and apparatus for distributing an application

Country Status (2)

Country Link
CN (1) CN112346853A (en)
DE (1) DE102019211908A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021213702A1 (en) 2021-12-02 2023-06-07 Robert Bosch Gesellschaft mit beschränkter Haftung Method and system for operating a network

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021213702A1 (en) 2021-12-02 2023-06-07 Robert Bosch Gesellschaft mit beschränkter Haftung Method and system for operating a network

Also Published As

Publication number Publication date
CN112346853A (en) 2021-02-09

Similar Documents

Publication Publication Date Title
DE60302876T2 (en) MASTER NODE SELECTION IN CHECUTED NODE CONFIGURATIONS
DE60016283T2 (en) WORKLOAD MANAGEMENT IN A COMPUTER ENVIRONMENT
DE102020113347A1 (en) EXECUTE CONTAINERIZED PROCESSES WITHIN THE LIMITATIONS OF THE AVAILABLE HOST NODES
DE112013006643B4 (en) STORAGE SYSTEM AND CONTROL METHOD FOR STORAGE SYSTEM
EP0959407B1 (en) Method for task allocation, data processing system, client data processing node and computer-readable storage medium
DE112010003027T5 (en) System and method for job control in a distributed data processing system with identification of the optimal network topology
DE102020110143A1 (en) LOCATION-BASED VIRTUALIZATION WORKLOAD PLACEMENT
EP1711892B1 (en) Method for determining a reassignment scenario of software modules in case of a computer failure in a server farm
DE112021003908T5 (en) FEDERAL MACHINE LEARNING BY USING LOCATION-BASED HASHING
DE102016219854A1 (en) Computer system and method for dynamically customizing a software-defined network
DE112016006514T5 (en) A method and data processing system for managing streaming tasks of a predefined application topology
DE102016105595A1 (en) Demand performance management in a networked computing environment
DE102021125182A1 (en) SHARED ENTERPRISE CLOUD
DE112019000421T5 (en) WORKLOAD MANAGEMENT WITH DATA ACCESS DETECTION IN A DATA PROCESSING CLUSTER
EP1634176B1 (en) Cluster arrangement
DE112021004577T5 (en) MANAGING A TASK FLOW IN AN EDGE COMPUTING ENVIRONMENT
DE102021124335A1 (en) MANAGING OUTAGES IN EDGE COMPUTING ENVIRONMENTS
DE102019211908A1 (en) Method and apparatus for distributing an application
EP1653308B1 (en) Method and apparatus for providing and storing information
EP3475819B1 (en) Method for automatically and dynamically assigning the responsibility for tasks to the available computing components in a highly distributed data-processing system
DE102004011201B4 (en) Method for managing and monitoring the operation of multiple distributed in at least one communication network integrated hardware and / or software systems and system for performing the method
CN110275772A (en) A kind of data processing method and its relevant device
DE102021130896A1 (en) ELECTRONIC CONTROL UNIT, TIME INFORMATION PROVISION METHOD, TIME INFORMATION PROVISION PROGRAM AND ELECTRONIC CONTROL SYSTEM
DE202021102315U1 (en) Flexible computing
LU101163B1 (en) Methods and apparatus for load allocation and monitoring for a resource that is critical to the security of supply in a network