DE102022207594A1 - Verfahren zum Bilden einer Kommunikationsschnittstelle zwischen einem Softwaremodul und einem Adressaten - Google Patents

Verfahren zum Bilden einer Kommunikationsschnittstelle zwischen einem Softwaremodul und einem Adressaten Download PDF

Info

Publication number
DE102022207594A1
DE102022207594A1 DE102022207594.3A DE102022207594A DE102022207594A1 DE 102022207594 A1 DE102022207594 A1 DE 102022207594A1 DE 102022207594 A DE102022207594 A DE 102022207594A DE 102022207594 A1 DE102022207594 A1 DE 102022207594A1
Authority
DE
Germany
Prior art keywords
module
message
software
addressee
expansion
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
DE102022207594.3A
Other languages
English (en)
Inventor
Niranjan Babu Hagadur Srirama
Tobias Krug
Jakob George
Ghouse Khan
Joshua-Niclas Oergele
Micha Muenzenmay
Ramana Murthy Murugan
Christian Kahr
Udo Schulz
Thorsten Ortlepp
Gernot Hofmann
Manikandavel Venkatachalam
Mouham Tanimou
Abraham Junomon
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 DE102022207594.3A priority Critical patent/DE102022207594A1/de
Publication of DE102022207594A1 publication Critical patent/DE102022207594A1/de
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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading

Landscapes

  • Engineering & Computer Science (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

Die Erfindung betrifft ein Verfahren zum Bilden einer Kommunikationsschnittstelle zwischen einem Softwaremodul (110) und einem Adressaten, der von dem Softwaremodul angesprochen wird, umfassend: Erhalten, in einem maschinenausführbaren Kernmodul (140) einer Schnittstellenbibliothek (130), einer Nachricht, die von dem Softwaremodul (110) an einen Adressaten gerichtet ist; wobei das Kernmodul über eine Abstraktionsschicht (120) mit dem Softwaremodul verbunden ist, Weiterleiten einer Nachricht durch das Kernmodul (140) an ein Erweiterungsmodul (150) der Schnittstellenbibliothek (130), wobei das Erweiterungsmodul (150) als Funktionsbibliothek ausgebildet ist und dazu eingerichtet ist, mit dem Adressaten der Nachricht zu kommunizieren; Aufrufen einer Funktion des Adressaten durch das Erweiterungsmodul (150) in Abhängigkeit von dem Inhalt der Nachricht; wobei die Funktion mindestens eines der folgenden umfasst: einen Lesezugriff und/oder einen Schreibzugriff für einen Parameter; einen Lese- und/oder Schreibzugriff für eine Kommunikationsschnittstelle; einen Funktionsaufruf zur Steuerung und/oder Abfrage eines Hardwareelements; einen Funktionsaufruf zur Steuerung und/oder Abfrage eines Softwareelements.

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zum Bilden einer Kommunikationsschnittstelle zwischen einem Softwaremodul und einem Adressaten, der von dem Softwaremodul angesprochen wird, sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung.
  • Hintergrund der Erfindung
  • In sämtlichen Bereichen der Industrie, insbesondere im Automobilbereich, in der Fertigungstechnik oder im Maschinenbau, aber auch in Bereichen wie Landwirtschaft und Heimautomatisierung (Smart Home) spielt die Vernetzung verschiedener Funktionen und Geräte eine zunehmend große Rolle.
  • In all diesen Fällen ergeben sich besondere Vorteile, wenn die verschiedenen Geräte und Einrichtungen gemeinsam angesteuert werden können und beispielsweise vorgegebene Abläufe unter Einbindung mehrerer Vorrichtungen durchgeführt werden können. Häufig werden zu diesem Zweck eine oder mehrere zentrale oder dezentrale Steuerungen verwendet, die über geeignete Schnittstellen mit mehreren Geräten und ihren unterschiedlichen Funktionselementen verbunden sind. Jedoch sind dabei oft Vorrichtungen verschiedener Hersteller, verschiedener Architekturen und mit verschiedenen Einzelfunktionen miteinander verknüpft, die jeweils vorgesehene Aufgaben übernehmen sollen. Eine direkte Ansteuerung der einzelnen Vorrichtungen durch eine Softwareanwendung würde daher erforderlich machen, dass alle Einzelheiten dieser Vorrichtung bei der Entwicklung der Software berücksichtigt werden.
  • Die DE 10 2019 217 046 A1 beschreibt ein System zur agnostischen Anbindung von modularer Anwendungssoftware über eine Abstraktionsschicht und eine Schnittstellenbibliothek. Die Kommunikation zwischen der Abstraktionsschicht und der Schnittstellenbibliothek ist dabei standardisiert über einen Nachrichtenbroker. Die Kommunikation zwischen der Schnittstellenbibliothek und einem Adressaten (z.B. ein angebundener Bus oder eine andere Zielhardware) ist dabei jedoch grundsätzlich proprietär und muss für jeden Adressaten neu entwickelt werden. Bei jeder Anpassung oder Erweiterung der angebundenen Schnittstellen muss damit die monolithische Schnittstellenbibliothek auch vollständig neu validiert werden.
  • Offenbarung der Erfindung
  • Erfindungsgemäß werden ein Verfahren zum Bilden einer Kommunikationsschnittstelle zwischen einem Softwaremodul und einem Adressaten sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.
  • Insbesondere wird ein Verfahren vorgeschlagen, das zum Bilden einer Kommunikationsschnittstelle zwischen einem Softwaremodul und einem Adressaten dient, der von dem Softwaremodul angesprochen wird. Dabei wird in einem maschinenausführbaren Kernmodul einer Schnittstellenbibliothek eine Nachricht erhalten, die von dem Softwaremodul an einen Adressaten gerichtet ist. Das Kernmodul ist dabei über eine Abstraktionsschicht mit dem Softwaremodul verbunden. Die Nachricht wird dann durch das Kernmodul an ein Erweiterungsmodul der Schnittstellenbibliothek weitergeleitet (und bei Bedarf zu diesem Zweck geeignet umgewandelt bzw. verändert), wobei das Erweiterungsmodul als Funktionsbibliothek ausgebildet und dazu eingerichtet ist, mit dem Adressaten der Nachricht zu kommunizieren. In Abhängigkeit von dem Inhalt der Nachricht ruft das Erweiterungsmodul eine Funktion des Adressaten auf, wobei die Funktion mindestens eines umfasst, ausgewählt aus einem Lese- und/oder Schreibzugriff für einen Parameter; Lese- und/oder Schreibzugriff für eine Kommunikationsschnittstelle; Funktionsaufruf zur Steuerung und/oder Abfrage eines Hardwareelements; Funktionsaufruf zur Steuerung und/oder Abfrage eines Softwareelements. Indem ein Kernmodul die Nachrichten bzw. Funktionsanrufe an spezifische Erweiterungsmodule übermittelt, die speziell für die Kommunikation mit den jeweiligen Adressaten vorgesehen sind, kann zum einen eine abstrahierte Schnittstelle für die Softwaremodule bereitgestellt werden und zum anderen ein auch zur Laufzeit flexibel erweiterbares oder veränderbares System bereitgestellt werden. Die Erweiterungsmodule können unabhängig von den Aufgaben, die von dem Kernmodul übernommen werden, zur Bildung einer abstrahierten Schnittstelle mit einem jeweiligen Adressaten genutzt werden. Das Kernmodul dient so zur Verwaltung, Übermittlung und Steuerung der Kommunikation zwischen den adressatenspezifischen Erweiterungsmodulen und den abstrahierten Aufrufen des Softwaremoduls.
  • Dabei kann ein Adressat beispielsweise einen Eingang oder einen Ausgang für einen Lese- und/oder Schreibzugriff und/oder einen Softwaredienst und/oder ein ansteuerbares Hardwareelement umfassen. Es kann sich also um tatsächliche Schnittstellen z.B. von Vorrichtungen handeln, die an eine Steuerungseinrichtung angeschlossen sind, auf der das Softwaremodul ausgeführt wird.
  • Das Verfahren kann weiter das Bilden einer Antwortnachricht auf die Nachricht in dem Erweiterungsmodul umfassen, wobei die Antwortnachricht Informationen in Bezug auf den Aufruf der Funktion umfasst. Die Antwortnachricht kann dann durch das Erweiterungsmodul an das Kernmodul, und weiter durch das Kernmodul an das Softwaremodul übermittelt werden.
  • Eine Nachricht kann dabei beispielsweise eine zyklische Nachricht umfassen, die in vorgegebenen Zeitabständen von dem Softwaremodul übermittelt wird, wobei das Kernmodul eine Antwortnachricht des Erweiterungsmoduls erst am Ende des Zeitabstands an das Softwaremodul übermittelt.
  • Es kann vorgesehen sein, dass das Erweiterungsmodul eine Antwortnachricht an das Kernmodul immer dann übermittelt, wenn eine Veränderung der aufgerufenen Funktion eintritt. Es ist auch möglich, dass das Erweiterungsmodul eine Antwortnachricht ausschließlich dann übermittelt, wenn eine Veränderung der aufgerufenen Funktion auftritt.
  • Zusätzlich oder alternativ kann vorgesehen sein, dass das Erweiterungsmodul Antwortnachrichten für die Nachricht an das Kernmodul übermittelt und/oder den Aufruf der Funktion wiederholt, bis eine Rücknahme der Nachricht durch das Kernmodul erfolgt.
  • Es ist auch möglich, dass das Kernmodul einer Nachricht eine Zeitangabe hinzufügt, welche den Zeitpunkt der Weiterleitung der Nachricht und/oder den Zeitpunkt des Empfangs der Nachricht angibt. Solche Zeitangaben können dann genutzt werden, um beispielsweise Laufzeiten der Nachrichten bei der Verarbeitung von Daten oder der Ausführung von Funktionen mit zu berücksichtigen.
  • Das Verfahren kann in beispielhaften Ausführungsformen weiter umfassen, dass bei einer Installation eines Softwaremoduls das Kernmodul erforderliche Adressaten für das Softwaremodul ermittelt, wobei das Kernmodul ein oder mehrere Erweiterungsmodule, die dazu eingerichtet sind, mit den erforderlichen Adressaten zu kommunizieren, in der Schnittstellenbibliothek installiert. Ebenso kann es ein oder mehrere Erweiterungsmodule bei Deinstallation des Softwaremoduls auch wieder deinstallieren. Es ist dabei auch möglich, dass ein oder mehrere Erweiterungsmodule für erforderliche Adressaten zur Laufzeit der Softwareanwendung aktualisiert und/oder ersetzt und/oder hinzugeladen bzw. entladen werden.
  • Jedem Adressaten kann eine eindeutige Kennung zugeordnet sein. Eine solche Kennung kann beispielsweise genutzt werden, um die zu installierenden Erweiterungsmodule für ein Softwaremodul zu identifizieren.
  • Die Kennung kann prinzipiell von mehr als einem Erweiterungsmodul unterstützt werden. In diesem Fall wählt das Kernmodul bevorzugt das bestgeeignete Modul aus den mehreren unterstützten Erweiterungsmodulen, um beispielsweise den Ressourcenbedarf insgesamt zu minimieren oder Funktionstrennung zu erreichen. Alternativ kann diese Auswahl auch durch ein Managementmodul durchgeführt werden, das als Teil des Kernmoduls ausgebildet ist.
  • Die Schnittstelle bzw. funktionelle Abgrenzung zwischen Kernmodul und dynamisch veränderbaren Erweiterungsmodulen erlaubt darüber hinaus einen effizienten, asynchronen Entwicklungsprozess.
  • Eine erfindungsgemäße Recheneinheit, z.B. ein Steuergerät eines landwirtschaftlichen Fahrzeugs, einer Baumaschine oder einer Fertigungseinrichtung, ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen.
  • Auch die Implementierung eines erfindungsgemäßen Verfahrens in Form eines Computerprogramms oder Computerprogrammprodukts mit Programmcode zur Durchführung aller Verfahrensschritte ist vorteilhaft, da dies besonders geringe Kosten verursacht, insbesondere wenn ein ausführendes Steuergerät noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist oder wenn ein Steuergerät für die Ausführung weiterer Computerprogramme mitgenutzt werden kann. Schließlich ist ein maschinenlesbares Speichermedium vorgesehen mit mindestens einem darauf gespeicherten Computerprogramm wie oben beschrieben. Geeignete Speichermedien bzw. Datenträger zur Bereitstellung des Computerprogramms sind insbesondere magnetische, optische und elektrische Speicher, wie z.B. Festplatten, Flash-Speicher, EEPROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich. Ein solcher Download kann dabei drahtgebunden bzw. kabelgebunden oder drahtlos (z.B. über ein WLAN-Netz, eine 3G-, 4G-, 5G- oder 6G-Verbindung, usw.) erfolgen.
  • Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.
  • Die Erfindung ist anhand von Ausführungsbeispielen in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung beschrieben.
  • Kurze Beschreibung der Zeichnungen
    • 1 zeigt eine beispielhafte Schichtenstruktur, die als Kommunikationsarchitektur durch die beschriebenen Verfahren genutzt werden kann; und
    • 2 zeigt beispielhafte Schritte bei der Entwicklung eines Erweiterungsmoduls, das in beispielhaften Ausführungsformen genutzt wird.
  • Ausführungsformen der Erfindung
  • Mit den nachfolgenden Verfahren sollen agnostische Schnittstellen zwischen einer Anwendungssoftware und verschiedenen Adressaten durch ein Schichtenmodell ermöglicht werden, z.B. zur Ansteuerung von verschiedener Hardware wie Sensoren und Aktoren, zum Auslesen bzw. Schreiben von Parametern oder zum Erhalten von Daten von externen Diensten und Modulen. Damit können beispielsweise mit einem Steuergerät verschiedenste unterstützte Adressaten, wie andere Hardware und über Bussysteme angebundene dritte Systeme, auf abstrahierte Weise von Anwendungssoftware auf dem Steuergerät angesprochen und agnostisch genutzt werden. Auch zwischen verschiedenen Softwaremodulen kann auf diese Weise eine agnostische Schnittstelle geschaffen werden. Details der angeschlossenen Adressaten bzw. Hardware müssen bei der Entwicklung der Anwendungssoftware nicht bekannt sein, sondern werden auf eine Ebene abstrahiert, die unabhängig von der unmittelbaren Adressatenkommunikation ist. Solche abstrahierten Schnittstellen können sich auch nach der Entwicklung der Anwendungssoftware noch verändern oder neu hinzugefügt werden. Dies ermöglicht eine unabhängige und effiziente Entwicklung von Nutz- bzw. Anwendungssoftware. Als agnostisch wird bezeichnet, dass eine Komponente keine Kenntnis über die Umsetzung anderer Komponenten hat und machen darf, d.h. beispielsweise unabhängig von in darüber liegenden Schichten verwendeten Protokollen oder Sprachen ist.
  • Zu diesem Zweck kann eine Kommunikationsarchitektur verwendet werden, die auf abstrahierten Schnittstellen zwischen Anwendungssoftware in einem Schichtenmodell beruht. Als oberste Schicht ist ein Softwaremodul vorhanden, das als „app“-artige Software (application) ausgestaltet sein kann und eine gewünschte Funktion ausführt, z.B. eine Regelung für eine Dosierfunktion einer angeschlossenen Maschine über Ventile und Düsen der Maschine. Die Adressaten einer solchen Funktion, also z.B. verwendete Hardware oder auch verwendete Dienste außerhalb des Softwaremoduls, sollen dabei nicht direkt angesprochen werden, sondern über die beschriebene Schichtenstruktur von dem Softwaremodul abstrahiert werden. Damit können die funktionsspezifischen Softwaremodule unabhängig von der tatsächlichen Ausgestaltung der Adressaten und der Schnittstellen entwickelt werde. Zu diesem Zweck können abstrahierte Anwendungsschnittstellen und ihre Parameter auf standardisierte Weise definiert und abgespeichert sein, z.B. in einer Schnittstellenbibliothek. Als Beispiel für solche Anwendungsschnittstellen seien beispielsweise Schnittstellen zur Anbindung an Cloud-Dienste, -Hardware oder -Software; Maschinenschnittstellen zur Kommunikation wie ISOBUS, CAN, I/O; Master/Slave-APIs bzw. Schnittstellen zur Anbindung an Ein-/Ausgänge für einzelne Elemente wie Sensoren, Maschinensteuerungen, Schnittstellen für Lese- und Schreibzugriffe auf bestimmte Funktionen, und andere genannt.
  • Mittels solcher Schnittstellen können also auf strukturierte Weise Abhängigkeiten und Interaktionspunkte verschiedener Vorrichtungen, Eigenschaften, Voreinstellungen, Parameterwerte usw. vorgegeben werden. Als Beispiel wird auf verschiedene Maschinen in der Landwirtschaft verwiesen, deren Konfiguration mit unterschiedlichen Steuerungen, Sensoren und Aktoren sich je nach Vorrichtung deutlich unterscheidet. Die Schnittstellen ermöglichen eine nahtlose Anbindung von spezifischen Softwaremodulen an die jeweiligen unterschiedlichen Maschinenkonfigurationen, so dass mit einem Softwaremodul viele unterschiedliche Geräte angesprochen werden können, welche die gewünschten Funktionen ausführen können, ohne dabei über Details zu den spezifischen Geräten zu verfügen.
  • 1 zeigt dabei beispielhaft eine Schichtstruktur einer Kommunikationsarchitektur, die in den hier beschriebenen Verfahren verwendet werden kann. Zur Ausführung eines Softwaremoduls 110 kann dann eine Abstraktionsschicht 120 verwendet werden, die eine Verknüpfung zwischen den Funktionen des Softwaremoduls und den spezifischen Schnittstellen zu den Adressaten erstellt, so dass die Aktuatoren, Sensoren, Dienste usw. der von dem Softwaremodul 110 angesteuerten Vorrichtung (oder Software) die jeweiligen Funktionen übernehmen können. Außerdem wird zur Ausführung des Softwaremoduls lokal eine zur Laufzeit dynamisch veränderbare Schnittstellenbibliothek 130 erstellt, welche die erforderlichen Schnittstellen umfasst. Die Abstraktionsschicht 120 kann als eine Art modifizierbarer Adapter für die Kommunikation über tieferliegende Kommunikationsschichten verstanden werden. Die Abstraktionsschicht 120 kann außerdem auch mögliche Schnittstellen zwischen mehreren Softwaremodulen 110 selbst abstrahieren und so einen effizienten verteilten Aufbau von Funktionen ermöglichen. Auf diese Weise können beispielsweise auch Hilfsfunktionen wie Bibliotheken, Datenverarbeitung oder -speicherung und ähnliche Funktionsblöcke separat als Softwaremodule vorgesehen sein, die von einer zentralisierten Umsetzung profitieren.
  • Dabei kann die Schnittstellenbibliothek erfindungsgemäß so aufgebaut werden, dass sie ebenfalls mehrere Schichten des Kommunikationsmoduls umfasst. Insbesondere kann die Schnittstellenbibliothek 130 in ein Kernmodul 140 und ein oder mehrere Erweiterungsmodule 150 unterteilt werden. Das Kernmodul 140 kann dabei im Wesentlichen einen Datenflussknoten 142 und ein Managementmodul 144 umfassen, das die Erweiterungsmodule 150 verwaltet und den Datenflussknoten 142 steuert. Das Kernmodul 140 ist ebenfalls dazu vorgesehen, mit weiteren Systemkomponenten zu kommunizieren.
  • Dabei kann das Kernmodul 140 durch eine standardisierte Schnittstelle in der Lage sein, dynamisch zur Laufzeit benötigte Erweiterungsmodule 150 zu laden und zu verwenden. Diese Schnittstelle kann insbesondere standardisiert, aber agnostisch ausgestaltet sein. Beispielsweise kann das Kernmodul 140 dann als direkt ausführbarer Maschinencode ausgebildet sein, während die ein oder mehreren Erweiterungsmodule 150 als zur Laufzeit ladbare, maschinenausführbare Funktionsbibliothek umgesetzt sein können. Die Ausführung der Schnittstelle eines Erweiterungsmoduls 150 kann dann als beidseitiger Funktionsaufruf ausgestaltet sein.
  • Jedes Erweiterungsmodul 150 der Schnittstellenbibliothek 130 kann wiederum dafür vorgesehen sein, einen Adressaten, also eine bestimmte Ziel-Hardware, einen oder mehrere Dienste oder andere Elemente abstrahiert zu adressieren. Ein Erweiterungsmodul 150 kann dazu eine dazu geeignete Firm- oder Middleware 148 verwenden, die es entweder direkt oder über eine weitere optionale Abstrahierungsstufe 146 einbindet. Eine Abstrahierungsstufe 146 kann auch zum Einsatz kommen, um mehr als eine Firm- oder Middleware 148 zu verknüpfen. Die Firm- oder Middleware wiederum kann über eine proprietäre Kommunikation 174 vorhandene gerätespezifische Treiber und/oder Hard- und Software adressieren.
  • Das Kernmodul 140 kann über das Managementmodul 144 die Erweiterungsmodule 150 ansteuern und außerdem über den Datenflussknoten 142 die Kommunikation zwischen den Erweiterungsmodulen 150 und der über der Schnittstellenbibliothek angelegten Abstraktionsschicht 120 kanalisieren. Dabei benötigt das Kernmodul weder Kenntnis über die Fähigkeiten des jeweiligen Erweiterungsmoduls, noch kann das Kernmodul die übermittelten Dateninhalte der Erweiterungsmodule interpretieren. Erst das darüber liegende Softwaremodul 110 kann die Dateninhalte lesen oder erzeugen, basierend auf dem Wissen über die jeweiligen Schnittstellen bei der Entwicklung des Softwaremoduls. Da auf diese Weise eine Abhängigkeit zwischen einem Softwaremodul und einem oder mehreren zugehörigen Erweiterungsmodulen entsteht, sollen zum Betrieb eines vorgegebenen Softwaremoduls jeweils auch die erforderlichen ein oder mehreren Erweiterungsmodule verfügbar sein.
  • Die Kommunikation 172 zwischen der Schnittstellenbibliothek 130 und der Abstraktionsschicht 120 kann ebenfalls standardisiert sein. Dagegen kann die Kommunikation zwischen jedem Erweiterungsmodul 150 und einer zugehörigen Hardware, einem Dienst oder anderen Adressaten proprietär und für jeden Adressaten neu entwickelt werden.
  • Ein Adressat kann dabei beispielsweise eine bestimmte Ziel-Hardware, ein Softwaredienst oder ein anderweitiger Kommunikationspartner sein. Zur Umsetzung der Schnittstelle kann der Adressat eine eindeutige Kennung umfassen, z.B. durch Zuordnung einer Identifikationsnummer für jeden Adressaten. Dabei kann ein Erweiterungsmodul auch so gestaltet sein, dass es mehrere Adressaten ansprechen kann.
  • Adressaten können wie folgt unterteilt werden:
    • - Funktionelle Adressaten, bei denen der Adressat selbst Funktionsaufrufe zur Steuerung (schreibend) oder Abfrage (lesend) anbietet;
    • - Parametrische Adressaten, bei denen der Adressat einen Lese- und/oder Schreibzugang zu einem oder mehreren Parametern bietet. Dabei können die Parameter statische bzw. unveränderliche Parameter oder auch dynamische bzw. veränderliche Parameter sein.
    • - Schnittstellen-Adressaten, bei denen der Adressat lesend oder schreibend eine Kommunikationsschnittstelle zu weiteren Adressaten, z.B. zu einer Hardware oder einem Bussystem bietet.
  • Das Kernmodul 140 der Schnittstellenbibliothek 130 kann die Überwachung und Bewertung von Aufrufen an oder von Erweiterungsmodulen 150 umfassen. Dabei können die so gewonnenen Informationen intern genutzt werden oder auch an externe Instanzen weitergegeben werden.
  • Das Kernmodul 140 kann außerdem in der Lage sein, Nachrichten von und/oder zu den Erweiterungsmodulen 150 mit Zeitstempeln zu ergänzen, in denen z.B. die Zeit des Empfangs und/oder der Weiterleitung angegeben ist. Auf diese Weise können Laufzeiten für den Empfänger transparenter gemacht werden. Diese Laufzeiten können dann beispielsweise bei der Verarbeitung der Daten beim Empfänger berücksichtigt werden (contract based communication).
  • Ein Erweiterungsmodul für die Schnittstellen kann dem Kernmodul auf geeignete Weise mitteilen, mit welchen Adressaten es kommunizieren kann, beispielsweise in Form einer Liste mit den eindeutigen Kennungen der zugehörigen Adressaten. Dabei können auch mehrere Erweiterungsmodule dieselben Adressaten melden. Durch diese Informationen kann das Kernmodul jeweils die benötigten Erweiterungsmodule auf Basis der Kennungen laden bzw. aktivieren oder bei wegfallendem Bedarf auch wieder entladen, d.h. aus dem Speicher entfernen oder deaktivieren. Zusätzlich oder alternativ kann das Kernmodul auch in der Lage sein, anstelle des vollständigen Entladens eines Plugins einzelne Adressaten zu aktivieren oder zu deaktivieren. Es ist auch möglich, dass die Auswahl der zu ladenden Erweiterungsmodule nicht oder nicht nur von dem Kernmodul vorgenommen wird, sondern von externen Instanzen.
  • Die Schnittstellenbibliothek kann außerdem eine Steuerung der Anfrageumsetzung umfassen. Beispielsweise kann einem Erweiterungsmodul 150 eine Lese- oder Schreibanfrage einer Softwaremoduls 110 über das Kernmodul übermittelt werden, wobei die Anfrage nach einem der folgenden Schemata erfolgt:
    • Eine Anfrage kann als zyklische Anfrage vorgesehen sein, d.h. eine Anfrage wird in festen Zeitabständen wiederholt. Das Erweiterungsmodul kann die Anfrage direkt ausführen und erst am Ende des vorgesehenen Zeitabstands eine Statusmeldung als Antwort zurückgeben. Das Kernmodul kann dann die Statusmeldung und optional auch eine angegebene Laufzeit nutzen, um die Zykluszeit oder die Ausführungspriorität anzupassen.
  • Alternativ kann eine Anfrage so ausgeführt werden, dass eine Antwort des Adressaten über ein Erweiterungsmodul an das Kernmodul nur bei einer Änderung (z.B. einer Änderung des zum Lesen abgefragten Parameters) unmittelbar übermittelt wird. Optional kann auch festgelegt sein, dass diese Anfrage gilt, bis eine Rücknahme der Anfrage erfolgt, so dass bei jeder Änderung bis dahin eine Antwort übermittelt wird. Unmittelbar nach der Anfrage kann dabei vom Erweiterungsmodul nur die Annahme oder Ablehnung der Anfrage an das Kernmodul bestätigt werden; die Ausführung und gegebenenfalls das Senden einer Antwort in Bezug auf die Anfrage erfolgen asynchron.
  • Alternativ kann eine Anfrage auch so ausgeführt werden, dass die Anfrage nur auf Anforderung durchgeführt wird, d.h. das Erweiterungsmodul wird aufgefordert, eine Aufgabe durchzuführen oder eine Antwort zu senden. Das Erweiterungsmodul bestätigt an das Kernmodul unmittelbar nach der Anfrage wiederum nur die Annahme oder Ablehnung der Anfrage, während die Ausführung und gegebenenfalls das Senden einer Antwort asynchron erfolgt.
  • Es ist außerdem möglich, die Schnittstellenbibliothek so auszugestalten, dass sie in der Lage ist, einen Status oder eine Funktionsbestätigung zurückzumelden. Dabei kann es sich beispielsweise um ein Totmannsignal, das in bestimmten Abständen gesendet wird, oder einen Quality-of-Service-Indikator handeln. Diese Information kann von dem Kernmodul verarbeitet werden oder auch an externe Instanzen weitergeleitet werden.
  • Die Schnittstellenbibliothek kann außerdem in der Lage sein, einem Erweiterungsmodul einen Initialisierungsauftrag zu erteilen, oder ihm eine bevorstehende Entladung mitzuteilen.
  • Insbesondere kann ein Erweiterungsmodul auch als eigenständige Softwarebibliothek gestaltet werden, beispielsweise als „Dynamic Link Library“ (DLL) oder „Shared Object Library“. Auf diese Weise können auch unterschiedliche Programmiersprachen oder Übersetzungssysteme zwischen dem Kernmodul und einem Erweiterungsmodul verwendet werden.
  • Es ist auch möglich, dass ein Erweiterungsmodul unter Verwendung externer Konfigurationen ausgebildet ist. In Kombination mit der Möglichkeit, dem Kernmodul die unterstützten Adressaten mitteilen zu können, kann damit ein generisches Erweiterungsmodul geschaffen werden, welches erst durch die externe Konfiguration konkrete Adressaten unterstützt. Beispielsweise kann bei einem CAN (Controller Area Network)-Endgerät, welches zufällig auf einem von zwei möglichen CAN-Bussen angeschlossen wird, zur Laufzeit die geeignete CAN-Schnittstelle festgelegt werden. Darüber hinaus ist es möglich, durch solche Konfigurationen eine Anpassung eines Erweiterungsmoduls an eine sich ändernde Umgebung zu ermöglichen, sowohl für Änderungen zum Zeitpunkt der Verteilung des Erweiterungsmoduls, als auch zur Laufzeit.
  • Um ein solches Erweiterungsmodul für eine Schnittstellenbibliothek zu entwickeln, kann beispielsweise ein Prozess wie in 2 gezeigt verwendet werden. Ein Entwickler kann aus den vorhanden Informationen 210 in einem Schritt 220 ein Erweiterungsmodul entwickeln, für welches er in Schritt 230 außerdem die erforderlichen Ressourcen festlegen und in Schritt 240 weitere Installationsbedingungen definieren kann. Parallel dazu werden die erforderlichen Schnittstellen auf standardisierte Weise in Schritt 260 registriert und in einer Schnittstellendatenbank 270 abgespeichert. Diese kann beispielsweise in einem Cloudspeicher verfügbar gemacht werden, so dass eine kontinuierliche Erweiterung und Anpassung möglich ist und die jeweiligen Erweiterungsmodule auf die Schnittstellen zugreifen können. Außerdem kann diese Schnittstellenbibliothek verwendet werden, um die jeweiligen Softwareanwendungen zu programmieren, die später mit Hilfe der Erweiterungsmodule auf die Schnittstellen zugreifen können.
  • In Schritt 250 kann ein so erzeugtes Erweiterungsmodul optional noch final verarbeitet werden, z.B. validiert und freigegeben werden. Anschließend kann es beispielsweise in einem geeigneten Speicherelement 280 abgespeichert werden, z.B. einem Cloudspeicher, auf den die Endgeräte zugreifen können.
  • Freigegebene Erweiterungsmodule können dann ebenfalls in einer cloudbasierten Datenbank für die Anwender der Softwaremodule abrufbar sein, so dass bei der Installation eines Softwaremoduls die erforderlichen Erweiterungsmodule abgerufen und in der lokalen Schnittstellenbibliothek installiert werden können. Damit ist das jeweilige Softwaremodul in der Lage, die gewünschten Schnittstellen über die Erweiterungsmodule und die übrigen Schichten der Schnittstellenbibliothek anzusprechen. Ebenso können Erweiterungsmodule auch noch nachträglich auf dem Endgerät installiert werden oder aktualisiert und ausgetauscht werden. Es sind grundsätzlich aber auch andere Ansätze möglich, um die Erweiterungsmodule zusammen mit den ausgeführten Softwaremodulen bereitzustellen, z.B. eine Auslieferung direkt mit der jeweiligen Software.
  • Dabei kann also insbesondere die Entwicklung der Schnittstellenbibliothek bzw. ihrer Bestandteile asynchron erfolgen; ein Erweiterungsmodul der Schnittstellenbibliothek kann getrennt vom Kernmodul der Schnittstellenbibliothek oder von anderen Erweiterungsmodulen entwickelt werden und damit für die Freigabe von Bestandskomponenten unschädlich sein. Die Validierung kann so gestaltet sein, dass eine übergreifende Validierung vor einer Freigabe erst wieder auf der Systemebene erforderlich ist.
  • Ebenso kann die Entwicklung der einzelnen Erweiterungsmodule oder des Kernmoduls dezentral erfolgen. Abgesehen von der standardisierten, agnostischen Schnittstellendefinition zwischen dem Kernmodul und den Erweiterungsmodulen ist keine weitere Abstimmung erforderlich. Für die Entwicklung eines Erweiterungsmoduls muss nur die Schnittstellendefinition bekannt sein, jedoch kein Quellcodezugang zum Kernmodul oder zu weiteren Elementen.
  • Bei der Installation eines Softwaremoduls auf einer Verarbeitungseinheit, z.B. in einem Steuergerät einer Maschine mit verschiedenen angeschlossenen Hardwareelementen, kann zusammen mit dem Softwaremodul auf geeignete Weise eine konkrete Angabe der benötigten Schnittstellen für das Softwaremodul mitgeliefert werden, z.B. in einer zusätzlichen Beschreibungsdatei. Diese erwarteten bzw. benötigten Schnittstellen können beispielsweise in einem geeigneten Register der Verarbeitungseinheit zentral abgespeichert werden. Die benötigten Elemente der Schnittstellenbibliothek, insbesondere das Kernmodul und die zu den Schnittstellen gehörigen Erweiterungsmodule, können lokal vorliegen (z.B. bei der Installation mit eingerichtet werden) oder können zunächst von einer anderen Quelle, z.B. einem entfernten Cloudspeicher 280, angefordert bzw. heruntergeladen werden.
  • Mit einer solchen Aufteilung müssen jeweils nur die Erweiterungsmodule auf einer Verarbeitungseinheit (z.B. einem Steuergerät) installiert sein, welche für die aktuell installierten Softwaremodule erforderlich sind. Dabei müssen dann auch nur die Erweiterungsmodule geladen werden, die für die derzeit ausgeführten Softwaremodule benötigt werden; andere Erweiterungsmodule können nach der Ausführung wieder entladen werden.
  • Falls mehr als ein Erweiterungsmodul denselben Adressaten unterstützt, kann optional vorgesehen sein, dass das Kernmodul unter Einbeziehung weiterer Informationen eine intelligente Auswahl bei der Installation der Erweiterungsmodule treffen kann. Beispielsweise kann dabei die Minimierung von Ressourcenbedarf oder Lizenzkosten mit einbezogen werden, sofern die notwendigen Klassifizierungsdaten zugänglich sind.
  • Erweiterungsmodule, die denselben Adressaten unterstützen, können sich auch dahingehend unterscheiden, dass in einem Fall mit einem realen Adressaten kommuniziert wird, in einem anderen Fall dieser Adressat simuliert wird. Durch die agnostisch abstrahierte Schnittstelle ist dieser Unterschied zum Kernmodul zur Abstraktionsschicht und auch zum Softwaremodul hin transparent. Dies ist beispielsweise dann vorteilhaft, wenn auch ohne Verfügbarkeit realer Adressaten entwickelt werden muss. Ein Beispiel wäre die Substitution eines realen Sensors z.B. durch ein Berechnungsmodell, für das geeignete Eingangswerte zur Verfügung stehen. Die Simulation kann beispielsweise durch dasselbe oder ein anderes Erweiterungsmodul bereitgestellt werden.
  • Mit dieser Einrichtung wie oben beschrieben ist dann ein dynamisches Verhalten zur Laufzeit möglich. Damit können sowohl Ressourcen beim Steuergerät eingespart werden, als auch verbesserte Anbindungen von Geräten und Diensten verschiedener Art an eine Anwendungssoftware ermöglicht werden.
  • Insgesamt können mit der vorliegenden Erfindung also systemabhängige Schnittstellen, wie etwa Schnittstellen einer Maschine oder eines Fahrzeugs oder von Komponenten davon, durch die Schnittstellenbibliothek in abstrahierte, agnostische Schnittstellen umgewandelt und dort dem Softwaremodul zur Verfügung gestellt werden. Dabei ist es auch möglich, über ein externes Bediensystem z. B. Ein- oder Ausgaben oder weitere Funktionalitäten mit anzubinden. Diese Möglichkeit kann auch durch eine lokale oder erweiterte Kommunikationsverbindung erfolgen, z.B. durch eine per Telemetrie angebundene Automatisierungslösung zur teil- oder vollautonomen Ansteuerung.
  • Mehrere Softwaremodule innerhalb eines einzelnen Systems oder über mehrere Systeme hinweg können über die abstrahierte Schnittstellenbibliothek ebenfalls miteinander in Verbindung gebracht werden, z.B. um eine gemeinschaftliche Aufgabe zu erledigen. Dies kann beispielsweise über mehrere Recheneinheiten einer Vorrichtung hinweg erfolgen; ebenso können damit aber auch verteilte Recheneinheiten über geeignete Kommunikationsverbindung oder teilzentralisiert (Edge Computing) oder vollzentralisiert (Cloud Computing) umgesetzte Recheneinheiten erreicht werden.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • 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.
  • Zitierte Patentliteratur
    • DE 102019217046 A1 [0004]

Claims (15)

  1. Verfahren zum Bilden einer Kommunikationsschnittstelle zwischen einem Softwaremodul (110) und einem Adressaten, der von dem Softwaremodul angesprochen wird, umfassend: Erhalten, in einem maschinenausführbaren Kernmodul (140) einer Schnittstellenbibliothek (130), einer Nachricht, die von dem Softwaremodul (110) an einen Adressaten gerichtet ist; wobei das Kernmodul (140) über eine Abstraktionsschicht (120) mit dem Softwaremodul verbunden ist, Weiterleiten einer Nachricht durch das Kernmodul (140) an ein Erweiterungsmodul (150) der Schnittstellenbibliothek (130), wobei das Erweiterungsmodul (150) als Funktionsbibliothek ausgebildet ist und dazu eingerichtet ist, mit dem Adressaten der Nachricht zu kommunizieren; Aufrufen einer Funktion des Adressaten durch das Erweiterungsmodul (150) in Abhängigkeit von dem Inhalt der Nachricht; wobei die Funktion mindestens eines der folgenden umfasst: einen Lese- und/oder einen Schreibzugriff für einen Parameter; einen Lese- und/oder Schreibzugriff für eine Kommunikationsschnittstelle; einen Funktionsaufruf zur Steuerung und/oder Abfrage eines Hardwareelements; einen Funktionsaufruf zur Steuerung und/oder Abfrage eines Softwareelements.
  2. Verfahren nach Anspruch 1, wobei der Adressat mindestens eines der folgenden umfasst: einen Eingang oder einen Ausgang für einen Lese- und/oder Schreibzugriff; einen Softwaredienst; ein ansteuerbares Hardwareelement.
  3. Verfahren nach Anspruch 1 oder 2, wobei das Verfahren weiter umfasst: Bilden, in dem Erweiterungsmodul (150), einer Antwortnachricht auf die Nachricht, wobei die Antwortnachricht Informationen in Bezug auf den Aufruf der Funktion umfasst; Übermitteln der Antwortnachricht durch das Erweiterungsmodul (150) an das Kernmodul (140); und Übermitteln der Antwortnachricht durch das Kernmodul (140) an das Softwaremodul (110).
  4. Verfahren nach Anspruch 3, wobei die Nachricht eine zyklische Nachricht umfasst, die in vorgegebenen Zeitabständen von dem Softwaremodul (110) übermittelt wird, und wobei das Kernmodul (140) eine Antwortnachricht des Erweiterungsmoduls (150) erst am Ende des Zeitabstands an das Softwaremodul (110) übermittelt.
  5. Verfahren nach Anspruch 3 oder 4, wobei das Erweiterungsmodul (150) eine Antwortnachricht an das Kernmodul (140) nur übermittelt, wenn eine Veränderung der aufgerufenen Funktion eintritt.
  6. Verfahren nach einem der Ansprüche 3 bis 5, wobei das Erweiterungsmodul (150) Antwortnachrichten für die Nachricht an das Kernmodul (140) übermittelt, bis eine Rücknahme der Nachricht durch das Kernmodul erfolgt.
  7. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Kernmodul einer Nachricht eine Zeitangabe hinzufügt, welche den Zeitpunkt der Weiterleitung der Nachricht und/oder den Zeitpunkt des Empfangs der Nachricht angibt.
  8. Verfahren nach einem der vorhergehenden Ansprüche, wobei bei einer Installation eines Softwaremoduls das Kernmodul erforderliche Adressaten für das Softwaremodul ermittelt, und wobei das Kernmodul ein oder mehrere Erweiterungsmodule, die dazu eingerichtet sind, mit den erforderlichen Adressaten zu kommunizieren, in der Schnittstellenbibliothek installiert.
  9. Verfahren nach Anspruch 8, wobei ein oder mehrere Erweiterungsmodule für erforderliche Adressaten zur Laufzeit der Softwareanwendung aktualisiert, ersetzt und/oder hinzugefügt werden.
  10. Verfahren nach einem der vorhergehenden Ansprüche, wobei jedem Adressaten eine eindeutige Kennung zugeordnet ist.
  11. Verfahren nach Anspruch 10, wobei eine Adressatenkennung von mehreren Erweiterungsmodulen (150) unterstützt wird.
  12. Verfahren nach Anspruch 11, wobei das Kernmodul oder ein Managementmodul (144), welches als Teil des Kernmoduls ausgebildet ist, eines aus den mehreren Erweiterungsmodulen auswählt.
  13. Recheneinheit, die dazu eingerichtet ist, alle Verfahrensschritte eines Verfahrens nach einem der vorstehenden Ansprüche durchzuführen.
  14. Computerprogramm, das eine Recheneinheit dazu veranlasst, alle Verfahrensschritte eines Verfahrens nach einem der Ansprüche 1 bis 12 durchzuführen, wenn es auf der Recheneinheit ausgeführt wird.
  15. Maschinenlesbares Speichermedium mit einem darauf gespeicherten Computerprogramm nach Anspruch 14.
DE102022207594.3A 2022-07-26 2022-07-26 Verfahren zum Bilden einer Kommunikationsschnittstelle zwischen einem Softwaremodul und einem Adressaten Pending DE102022207594A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102022207594.3A DE102022207594A1 (de) 2022-07-26 2022-07-26 Verfahren zum Bilden einer Kommunikationsschnittstelle zwischen einem Softwaremodul und einem Adressaten

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102022207594.3A DE102022207594A1 (de) 2022-07-26 2022-07-26 Verfahren zum Bilden einer Kommunikationsschnittstelle zwischen einem Softwaremodul und einem Adressaten

Publications (1)

Publication Number Publication Date
DE102022207594A1 true DE102022207594A1 (de) 2024-02-01

Family

ID=89508627

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022207594.3A Pending DE102022207594A1 (de) 2022-07-26 2022-07-26 Verfahren zum Bilden einer Kommunikationsschnittstelle zwischen einem Softwaremodul und einem Adressaten

Country Status (1)

Country Link
DE (1) DE102022207594A1 (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019217046A1 (de) 2019-11-06 2021-06-17 Robert Bosch Gmbh System zum Austausch von Nachrichten durch eine Anwendungssoftware

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019217046A1 (de) 2019-11-06 2021-06-17 Robert Bosch Gmbh System zum Austausch von Nachrichten durch eine Anwendungssoftware

Similar Documents

Publication Publication Date Title
DE112007001796B4 (de) Umprogrammieren von Knoten in einem drahtlosen Automationssystem
DE10049504B4 (de) Verfahren und System zur tranparenten Unterstützung von entfernten Eingabe-/Ausgabeeinrichtungen in einem Prozeßsteuersystem
WO2016141998A1 (de) Vorrichtung und verfahren zum bereitstellen einer digitalen abbildung einer physikalischen entität
DE102018217689A1 (de) Verbessertes Fahrzeugdatenkommunikationsnetz
EP3230856A1 (de) Verfahren zum update von firmware von geräten
DE112009001820T5 (de) Steuervorrichtung, Steuerverfahren und Computerprogramm
WO2019162122A1 (de) System zum übertragen zumindest eines aktualisierungspakets für zumindest ein steuergerät eines kraftfahrzeugs sowie verfahren
WO2021089310A1 (de) Verfahren und vorrichtung zum verwalten von zugriffen mehrerer softwarekomponenten auf softwareschnittstellen
DE102022207594A1 (de) Verfahren zum Bilden einer Kommunikationsschnittstelle zwischen einem Softwaremodul und einem Adressaten
EP4160390B1 (de) Verfahren und anordnung zur inbetriebnahme einer aktualisierten anwendung für eine industrielle automatisierungsanordnung
EP3794442A1 (de) Verfahren und system zur bestimmung eines geeigneten installationsortes für eine zu installierende applikation in einer verteilten netzwerkumgebung
DE102017100118A1 (de) Skalierbares Steuersystem für ein Kraftfahrzeug
DE102018131119A1 (de) Integration mehrerer Anlagenmodule mit jeweils wenigstens einer prozesstechnischen Einheit zu einer modular aufgebauten Gesamtanlage
DE112018001433T5 (de) Einheitlicher zentralisierter Netzwerk-Stack
EP4144003B1 (de) Verfahren zum erzeugen einer softwarekomponente für eine elektronische recheneinrichtung eines kraftfahrzeugs, computerprogrammprodukt, computerlesbares speichermedium sowie kraftfahrzeugexternes aktualisierungssystem
DE102021202412A1 (de) Verfahren zur Bereitstellung einer oder mehrerer Anwendungen an wenigstens eine Maschine
DE102012218665B4 (de) Applikationssystem für Steuergeräte
DE102019202134A1 (de) Verfahren und Vorrichtung zum Übertragen und zum Bereitstellen von Daten in einem Publish-Subscribe-System
DE102022203325A1 (de) Verfahren zur Überprüfung der Ausführbarkeit einer Softwareanwendung
DE102017209493A1 (de) Verfahren und System zur Durchführung eines Setups bei einem industriellen Netzwerk
EP1967920A1 (de) Verfahren zur Durchführung von Softwareupdates in FPGA-basierte Automatisierungsgeräte
DE102022110252A1 (de) Center, aktualisierungssteuerungsverfahren, nicht-transitorisches speichermedium und ota-master
WO2016092006A1 (de) Firmware-management-system sowie firmware-management-verfahren zum update von firmware von geräten
DE102021114282A1 (de) Verfahren zum laufzeitbasierten Konfigurieren einer geräteinternen Signalübertragung in einem Steuergerät sowie entsprechend betreibbares Steuergerät und Kraftfahrzeug
EP4356581A1 (de) Verfahren zur automatischen anpassung der internen konfiguration einer externen netzwerkschnittstelle, computerprogrammprodukt und vorrichtung