DE102022129275A1 - Computerimplementiertes Verfahren zur Erweiterung eines Programmmoduls mit modularen Erweiterungen - Google Patents

Computerimplementiertes Verfahren zur Erweiterung eines Programmmoduls mit modularen Erweiterungen Download PDF

Info

Publication number
DE102022129275A1
DE102022129275A1 DE102022129275.4A DE102022129275A DE102022129275A1 DE 102022129275 A1 DE102022129275 A1 DE 102022129275A1 DE 102022129275 A DE102022129275 A DE 102022129275A DE 102022129275 A1 DE102022129275 A1 DE 102022129275A1
Authority
DE
Germany
Prior art keywords
extensions
program module
programming interface
programming interfaces
extension
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
DE102022129275.4A
Other languages
English (en)
Inventor
Sebastian Bollinger
Jens Hoffmann
Paul Koch
Moritz Lüdecke
Florian Münchbach
Heiko Öhring
Kevin Zange
Eckehardt Luhm
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.)
Dr Ing HCF Porsche AG
Original Assignee
Dr Ing HCF Porsche AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dr Ing HCF Porsche AG filed Critical Dr Ing HCF Porsche AG
Priority to DE102022129275.4A priority Critical patent/DE102022129275A1/de
Publication of DE102022129275A1 publication Critical patent/DE102022129275A1/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
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

Die Erfindung betrifft ein computerimplementiertes Verfahren zur Erweiterung eines Programmmoduls (1; 2) mit Erweiterungen (3), umfassend die folgenden Schritte:- Bereitstellung des Programmmoduls (1; 2) und der Erweiterungen (3), wobei die Erweiterungen (3) Programmierschnittstellen verwenden und bereitstellen;- Übermittlung von Informationen von den Erweiterungen (3) zum Programmmodul (1; 2), wobei die Informationen Hinweise darauf umfassen, welche der Programmierschnittstellen von welcher der Erweiterungen (3) bereitgestellt wird und welche der Programmierschnittstellen von welcher der Erweiterungen (3) verwendet wird; und- Betrieb des Programmmoduls (1; 2) mit einer Vielzahl der Erweiterungen (3), wobei Daten zwischen dem Programmmodul (1; 2) und der Vielzahl der Erweiterungen (3) über die Programmierschnittstellen ausgetauscht werden.

Description

  • Die vorliegende Erfindung betrifft ein computerimplementiertes Verfahren zur Erweiterung eines Programmmoduls mit Erweiterungen gemäß Anspruch 1.
  • Aus dem Stand der Technik sind erweiterbare Softwarearchitekturen bekannt, mit denen die Modularisierung durch eine Sammlung von Programmierschnittstellen erreicht werden kann, die es ermöglichen, Erweiterungen zum jeweiligen Programmmodul hinzuzufügen, die diese Programmierschnittstellen verwenden. Eine Programmierschnittstelle kann dabei auch als API („Application Programming Interface“) bezeichnet werden. Eine Erweiterung kann auch als Plugin bezeichnet werden. Als Programmmodul wird im Rahmen dieser Beschreibung insbesondere ein ganzes Computerprogramm oder ein Teil eines Computerprogramms verstanden. Ein Programmmodul kann auch als Anwendung bezeichnet werden.
  • Im Allgemeinen kann die Programmierschnittstelle als Zugang zum Programmmodul betrachtet werden, der es der Erweiterung ermöglicht, mit dem Programmmodul zu interagieren. Normalerweise ist diese Interaktion auf die bestehende Sammlung von Programmierschnittstellen beschränkt, was die Erweiterbarkeit des Programmmoduls und die Interaktion zwischen den Erweiterungen einschränkt. Die Einführung einer neuen Programmierschnittstelle erfordert ihre Definition im Programmmodul und die Implementierung einer programmierschnittstellenspezifischen Behandlung für Programmierschnittstellen-Aufrufe innerhalb des Programmmoduls, bevor sie von den Erweiterungen verwendet werden kann. Darüber hinaus erfordert die Interaktion zwischen den Erweiterungen oft überflüssigen Programmierschnittstellen-Code innerhalb des Programmmoduls. Diese erforderlichen Voraussetzungen schränken die Erweiterbarkeit des Programmmoduls ein.
  • Die CN 109 639 572 A offenbart eine dynamische Verwaltung von Mikrodienst-Programm ierschn ittstellen-Verknüpfungen.
  • Demgegenüber liegt der vorliegenden Erfindung die Aufgabe zugrunde, eine flexiblere Möglichkeit zur Verbindung der Erweiterungen mit dem Programmmodul zu schaffen.
  • Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1 und ein System gemäß Anspruch 10 gelöst. Ausführungsformen der Erfindung sind in den abhängigen Ansprüchen angegeben.
  • Es werden das Programmmodul und die Erweiterungen bereitgestellt. Sowohl das Programmmodul als auch die Erweiterungen können zum Beispiel als in einem Datenträger gespeicherter Code bereitgestellt werden. Die Erweiterungen verwenden Programmierschnittstellen und stellen diese bereit. Es ist beispielsweise möglich, dass alle Erweiterungen zumindest eine Programmierschnittstelle verwenden. Es ist aber auch möglich, dass nur einige der Erweiterungen eine Programmierschnittstelle verwenden. Es ist ebenso möglich, dass alle Erweiterungen zumindest eine Programmierschnittstelle bereitstellen. Es ist auch möglich, dass nur einige der Erweiterungen eine Programmierschnittstelle bereitstellen.
  • Unter der Verwendung einer Programmierschnittstelle wird dabei im Rahmen dieser Beschreibung insbesondere verstanden, dass die die Programmierschnittstelle verwendende Erweiterung die Programmierschnittstelle benötigt, um alle Funktionen umsetzen zu können, für die die Erweiterung geeignet ist. Unter der Bereitstellung einer Programmierschnittstelle durch die Erweiterung wird im Rahmen dieser Beschreibung insbesondere verstanden, dass die die Programmierschnittstelle bereitstellende Erweiterung die Programmierschnittstelle für eine Verwendung durch eine andere der Erweiterungen bereitstellt und die Schnittstellenfunktionalität umsetzt. Alternativ dazu kann eine Programmierschnittstelle auch durch das Programmmodul bereitgestellt werden.
  • Informationen werden von den Erweiterungen zum Programmmodul übertragen. Die Informationen umfassen Hinweise darauf, welche der Programmierschnittstellen von welcher der Erweiterungen bereitgestellt wird und welche der Programmierschnittstellen von welcher der Erweiterungen verwendet wird. Dabei ist es auch möglich, dass die gleiche Programmierschnittstelle mehrfach von mehreren Erweiterungen bereitgestellt wird. Die Programmierschnittstellen können beispielsweise mit Bezeichnungen versehen sein, anhand derer sie unterscheidbar sind. Die Informationen können beispielsweise in Form von elektrischen Signalen übertragen werden. Dabei können die Informationen beispielsweise über eine Basis-Programmierschnittstelle übertragen werden. Die Basis-Programmierschnittstelle kann beispielsweise von allen Erweiterungen bereitgestellt und vom Programmmodul verwendet werden.
  • Das Programmmodul wird dann mit einer Vielzahl der Erweiterungen betrieben. Es ist möglich, dass das Programmmodul mit allen Erweiterungen betrieben wird oder nur mit einer Untergruppe der Erweiterungen. Daten werden während des Betriebs zwischen dem Programmmodul und der Vielzahl der Erweiterungen über die Programmierschnittstellen ausgetauscht. Es ist auch möglich, dass während des Betriebs Daten zwischen den Erweiterungen untereinander über die Programmierschnittstellen ausgetauscht werden.
  • Mit einem solchen Verfahren wird ein hoher Grad an Flexibilisierung und Erweiterbarkeit des Systems mit dem Programmmodul und den Erweiterungen geschaffen. Da die Programmierschnittstellen von den Erweiterungen bereitgestellt werden, kann durch eine zusätzliche Erweiterung einfach eine neue - unter Umständen bis zu diesem Zeitpunkt nicht vorhandene - Programmierschnittstelle hinzugefügt werden. Außerdem wird es ermöglicht, dass eine Programmierschnittstelle mehrfach von unterschiedlichen Erweiterungen bereitgestellt wird. Ein gutes Beispiel hierfür ist eine Programmierschnittstelle für das Senden und Empfangen von Nachrichten in Protokoll-Erweiterungen, wenn die Erweiterungen in einem Kommunikations-Stack verwendet werden. Wenn der Stack mehrere Protokolle unterstützt, kann jede Protokoll-Erweiterung die Sende- und Empfangs-Programmierschnittstelle speziell für das jeweilige Protokoll bereitstellen.
  • Das Verfahren kann in einer Vielzahl von Anwendungsfällen eingesetzt werden. Unter anderem kann es zur Implementierung eines modularen Kommunikationsstacks verwendet werden, der mehrere Protokolle neben anderen Funktionen wie Sicherheits- und Beobachtungsmodulen oder Analysemodulen unterstützt. Es kann auch dazu verwendet werden, eine frei erweiterbare Testumgebung zu schaffen oder komplexe Anwendungen für andere Zwecke, die von einem einfach zu wartenden System von Erweiterungen profitieren. Da das Verfahren unabhängig vom Anwendungsfall ist und keine vordefinierte Liste von Programmierschnittstellen benötigt, ist es möglich, es nur einmal für alle Anwendungsfälle zu implementieren. Beispielsweise können die Basis-Programmierschnittstelle, ein Algorithmus des Programmmoduls, der eine Routing-Tabelle erstellt und verwaltet, mit deren Hilfe Aufrufe der Programmierschnittstellen weitergeleitet werden, und ein Teil des Programmmoduls, der die Routing-Tabelle nutzt, um die Aufrufe der Programmierschnittstellen weiterzureichen, generisch implementiert sein.
  • Nach einer Ausführungsform der Erfindung können die Informationen Hinweise darauf umfassen, ob die jeweilige Erweiterung die jeweilige Programmierschnittstelle zwingend verwenden muss oder optional verwenden kann. Dabei ist es möglich, dass die Erweiterung beispielsweise nicht funktioniert, wenn die Programmierschnittstelle zwingend verwendet werden muss und die Programmierschnittstelle nicht bereitgestellt wird. Außerdem ist es möglich, dass die Erweiterung nur mit einem eingeschränkten Funktionsumfang betrieben werden kann, wenn die Programmierschnittstelle optional verwendet werden kann und nicht bereitgestellt wird.
  • Nach einer Ausführungsform der Erfindung kann das Programmmodul ohne eine bestimmte der Erweiterungen betrieben werden, falls die bestimmte Erweiterung eine bestimmte der Programmierschnittstellen zwingend verwenden muss und die bestimmte Programmierschnittstelle nicht bereitgestellt wird. Dies kann beispielsweise der Fall sein, wenn keine der Erweiterungen diese Programmierschnittstelle bereitstellt. Der Betrieb des Programmmoduls und gegebenenfalls auch der Erweiterungen mit Ausnahme der bestimmten Erweiterung ist vorteilhaft, da ein zuverlässiger Betrieb möglich ist und nur auf die Funktionen der bestimmten Erweiterung verzichtet werden muss.
  • Wenn eine der Erweiterungen eine Programmierschnittstelle bereitstellt, die weder von einer der anderen Erweiterungen noch vom Programmodul verwendet wird, wird die Funktionsweise nicht beeinträchtigt. Diese Konstellation kann beispielsweise für eine einfache Erweiterbarkeit vorteilhaft sein.
  • Nach einer Ausführungsform der Erfindung kann das Programmmodul nach der Übermittlung der Informationen jeder Programmierschnittstelle einen eindeutigen Identifikator zuordnen. Die Identifikatoren können für den Austausch der Daten verwendet werden. Beispielsweise kann im Programmmodul ein Algorithmus implementiert sein, der eine Routing-Tabelle mit den Erweiterungen und den ihnen zugeordneten Identifikatoren erstellt. Diese Routing-Tabelle kann dann für den Austausch der Daten verwendet werden. Dies ermöglicht auch die mehrfache Bereitstellung einer der Programmierschnittstellen durch verschiedene der Erweiterungen.
  • Nach einer Ausführungsform der Erfindung kann bei der Übermittlung von Informationen das Programmmodul ein erstes Signal an jede der Erweiterungen übermitteln. Die Erweiterungen können, beispielsweise ausgelöst durch das erste Signal, jeweils ein zweites Signal an das Programmmodul übermitteln. Die zweiten Signale können einen Hinweis auf die jeweils bereitgestellten Programmierschnittstellen umfassen. Auf diese Weise können die Informationen über die bereitgestellten Programmierschnittstellen an das Programmmodul übertragen werden.
  • Alternativ dazu ist es auch möglich, dass die Erweiterungen jeweils das zweite Signal an das Programmmodul übermitteln, ohne dass zuvor das erste Signal vom Programmmodul an die Erweiterungen übermittelt worden ist.
  • Nach einer Ausführungsform der Erfindung kann das Programmmodul ein drittes Signal an jede der Erweiterungen übermitteln. Die Erweiterungen können dann, beispielsweise ausgelöst durch das dritte Signal, jeweils ein viertes Signal an das Programmmodul übermitteln. Die vierten Signale können einen Hinweis auf die jeweils zu verwendenden Programmierschnittstellen umfassen. Auf diese Weise können die Informationen über die zu verwendenden Programmierschnittstellen an das Programmmodul übertragen werden. Zusätzlich können ebenfalls Informationen von den Erweiterungen zum Programmmodul übertragen werden, welche der Programmierschnittstellen zwingend verwendet werden muss und welche der Programmierschnittstellen optional verwendet werden können.
  • Alternativ dazu ist es auch möglich, dass die Erweiterungen jeweils das vierte Signal an das Programmmodul übermitteln, ohne dass zuvor das dritte Signal vom Programmmodul an die Erweiterungen übermittelt worden ist.
  • Nach einer Ausführungsform der Erfindung kann nach der Übermittlung der vierten Signale entschieden werden, das Programmmodul ohne die bestimmte Erweiterung zu betreiben, falls die bestimmte Erweiterung die bestimmte Programmierschnittstelle zwingend verwenden muss und die bestimmte Programmierschnittstelle nicht bereitgestellt wird.
  • Die Nummerierung der Signale wird in dieser Beschreibung vorgenommen, um die Signale unterscheiden zu können. Die Nummerierung legt keine zeitliche Reihenfolge fest. Es ist auch nicht notwendig, dass es unbedingt alle Signale geben muss. So ist es beispielsweise möglich, auf das erste und dritte Signal zu verzichten.
  • Nach einer Ausführungsform der Erfindung wird nach der Entscheidung das erste Signal erneut an jede der Erweiterungen mit Ausnahme der bestimmten Erweiterung übermittelt. Diese Ausführungsform ist besonders vorteilhaft, falls die bestimmte Erweiterung eine Programmierschnittstelle bereitstellt, die von einer anderen Erweiterung verwendet wird. Wenn das Programmmodul ohne die bestimmte Erweiterung betrieben wird, muss berücksichtigt werden, dass die von der bestimmten Erweiterung bereitgestellte Programmierschnittstelle nicht bereitgestellt wird. Dies hat Auswirkungen auf die andere Erweiterung. Unter Umständen wird dann das Programmmodul auch ohne die andere Erweiterung betrieben, falls die andere Erweiterung die von der bestimmten Erweiterung bereitgestellte Programmierschnittstelle zwingend verwenden muss und die Programmierschnittstelle von keiner der übrigen Erweiterungen bereitgestellt wird.
  • Alternativ zur erneuten Übermittlung des ersten Signals können auch Informationen über die jeweils von den Programmierschnittstellen bereitgestellten und verwendeten Erweiterungen in einem Datenspeicher gespeichert werden. Wenn dann entschieden wurde, das Programmmodul ohne die bestimmte Erweiterung zu betreiben, kann unter Verwendung der Informationen ermittelt werden, ob die bestimmte Erweiterung eine Programmierschnittstelle bereitstellt, die von der anderen Erweiterung verwendet wird. Falls dies so ist, kann dann das Programmmodul auch ohne die andere Erweiterung betrieben werden. In diesem Fall werden die im Datenspeicher gespeicherten Informationen aktualisiert, nämlich dadurch, dass die von der anderen Erweiterung und von der bestimmten Erweiterung bereitgestellten Programmierschnittstellen als nicht mehr bereitgestellt definiert werden. Bei dieser Ausführungsform kann dann durch eine iterative Vorgehensweise sichergestellt werden, dass alle verwendeten Programmierschnittstellten auch bereitgestellt werden. Selbstverständlich ist auch hier zu beachten, dass zwingend benötigte Programmierschnittstellen auch bereitgestellt werden müssen, um die entsprechenden Funktionen umsetzen zu können.
  • Nach einer Ausführungsform der Erfindung kann die Übermittlung der Informationen so lange iterativ durchgeführt werden, bis keine nicht bereitgestellte Programmierschnittstelle zwingend verwendet werden muss. Dabei können insbesondere das erste Signal, das zweite Signal, das dritte Signal und das vierte Signal iterativ übermittelt werden. Dies kann insbesondere die Entscheidung nach der Übermittlung des vierten Signals einschließen. Auf diese Weise kann eine zuverlässige Funktionsweise des Programmmoduls und der Erweiterungen erreicht werden. Es ist auch möglich, im Rahmen der iterativen Durchführung auf die Übermittlung des ersten Signals und der zweiten Signale zu verzichten und die von der bestimmten Erweiterung bereitgestellte/n Programmierschnittstelle/n aus der Menge der bereitgestellten Programmierschnittstellen zu streichen und mit der Übermittlung des dritten Signals zu beginnen.
  • Das System gemäß Anspruch 10 umfasst einen digitalen elektronischen Datenspeicher und eine digitale Signalverarbeitungseinrichtung, die auch als Prozessor bezeichnet werden kann. Im Datenspeicher sind Instruktionen gespeichert, die durch die Signalverarbeitungseinrichtung auslesbar sind. Die Signalverarbeitungseinrichtung ist dazu ausgebildet, die Instruktionen auszulesen und auszuführen. Die Signalverarbeitungseinrichtung ist außerdem dazu ausgebildet, bei Ausführung der Instruktionen ein Verfahren nach einem der vorherigen Ansprüche durchzuführen.
  • Weitere Merkmale und Vorteile der vorliegenden Erfindung werden deutlich anhand der nachfolgenden Beschreibung bevorzugter Ausführungsbeispiele unter Bezugnahme auf die beiliegenden Abbildungen. Dabei zeigen
    • 1 ein schematisches Ablaufdiagramm eines Verfahrens nach einer Ausführungsform der Erfindung mit Pseudo-Code; und
    • 2 ein schematisches Ablaufdiagramm eines Verfahrens nach einer Ausführungsform der Erfindung mit Pseudo-Code.
  • Es ist ein Programmmodul dargestellt, das einen Erweiterungsverwaltungsteil 1 und einen Routingteil 2 umfasst. Außerdem ist eine Vielzahl an Erweiterungen 3 dargestellt.
  • Zunächst wird eine erste Programmschleife, in 1 als „loop“ bezeichnet, gestartet, in der an jede der Erweiterungen 3 ein erstes Signal übermittelt wird. Das erste Signal ist in 1 als „getProvidedApis ()“ bezeichnet. Der Empfang des ersten Signals löst in den Erweiterungen die Übermittlung zweiter Signale von den Erweiterungen 3 an das Programmmodul aus. Die zweiten Signale sind in 1 als „std::vector<providedApi*>“ bezeichnet. Mit den zweiten Signalen werden Informationen über die von den Erweiterungen 3 bereitgestellten Programmierschnittstellen an das Programmmodul übermittelt. Diese Informationen können auch jeweils eine Beschreibung der Programmierschnittstellen umfassen. Die Beschreibungen können beispielsweise die Funktionen der Programmierschnittstellen beschreiben. In 1 werden die Programmierschnittstellen als APIs und die Erweiterungen als Plugins bezeichnet.
  • Das Programmmodul kann aus den mit den zweiten Signalen übermittelten Informationen eine Liste aller bereitgestellten Erweiterungen 3 erstellen. Diese Liste ist vorteilhaft, wenn die Erweiterungen dynamisch, z.B. als gemeinsam genutztes Objekt (DLL), verknüpft sind, und ermöglicht das Einbinden und Konfigurieren mehrerer Instanzen derselben Erweiterung.
  • In einer zweiten Programmschleife wird ein drittes Signal, das in 1 als „getConsumedApis()“ bezeichnet wird, an die Erweiterungen 3 übermittelt. Dieses dritte Signal löst die Übermittlung vierter Signale von den Erweiterungen 3 an das Programmmodul aus. Die vierten Signale umfassen Informationen über die von den Erweiterungen 3 verwendeten Programmierschnittstellen. Es kann auch die Information enthalten sein, ob die jeweilige Erweiterung 3 die jeweilige Programmierschnittstelle zwingend verwenden muss oder optional verwenden kann.
  • Nach der Übermittlung der vierten Signale wird eine Abfrage im Programmmodul durchgeführt, ob eine bestimmte der Erweiterungen 3 eine nicht bereitgestellte Programmierschnittstelle zwingend verwenden muss. Falls dies der Fall ist, wird entschieden, diese bestimmte Erweiterung vom späteren Betrieb auszunehmen. Die von der bestimmten Erweiterung bereitgestellte Programmierschnittstelle wird von einer Liste der bereitgestellten Programmierschnittstellen gestrichen. Danach wird wieder das dritte Signal an die Erweiterungen 3 mit Ausnahme der bestimmten Erweiterung übermittelt, um Informationen darüber zu erhalten, ob noch Erweiterungen 3 vorhanden sind, die eine nicht bereitgestellte Erweiterung zwingend verwenden müssen. Anschließend wird wieder die Abfrage im Programmmodul durchgeführt, ob eine weitere der Erweiterungen 3 eine nicht bereitgestellte Programmierschnittstelle zwingend verwenden muss. Falls eine solche weitere Erweiterung vorhanden ist, wird auch diese vom späteren Betrieb ausgenommen. Die Übermittlung des dritten Signals und der vierten Signale, die Abfrage und die Ausnahme vom Betrieb werden iterativ durchgeführt, bis es keine Erweiterung mehr gibt, die eine nicht bereitgestellte Programmierschnittstelle zwingend verwenden muss und nicht vom späteren Betrieb ausgenommen wurde.
  • Danach werden das Programmmodul und die Erweiterungen 3 mit Ausnahme der vom späteren Betrieb ausgenommenen Erweiterungen betrieben. Über die Programmierschnittstellen werden dabei während des Betriebs Daten zwischen den Erweiterungen 3 und dem Programmmodul und/oder zwischen den Erweiterungen 3 untereinander übertragen.
  • Das in 2 dargestellte Verfahren unterscheidet sich im Wesentlichen dadurch von dem Verfahren aus 1, dass kein erstes Signal an die Erweiterungen 3 übermittelt wird. Die Erweiterungen 3 übermitteln das zweite Signal an das Programmmodul, ohne dass dies durch Übermittlung eines Signals vom Programmmodul an die Erweiterungen ausgelöst wurde.
  • Das gleiche gilt analog für das dritte und das vierte Signal. Beim Verfahren in 2 wird kein drittes Signal an die Erweiterungen 3 übermittelt. Die Erweiterungen 3 übermitteln das vierte Signal an das Programmmodul, ohne dass dies durch Übermittlung eines Signals vom Programmmodul an die Erweiterungen ausgelöst wurde.
  • 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
    • CN 109639572 A [0004]

Claims (10)

  1. Computerimplementiertes Verfahren zur Erweiterung eines Programmmoduls (1; 2) mit Erweiterungen (3), umfassend die folgenden Schritte: - Bereitstellung des Programmmoduls (1; 2) und der Erweiterungen (3), wobei die Erweiterungen (3) Programmierschnittstellen verwenden und bereitstellen; - Übermittlung von Informationen von den Erweiterungen (3) zum Programmmodul (1; 2), wobei die Informationen Hinweise darauf umfassen, welche der Programmierschnittstellen von welcher der Erweiterungen (3) bereitgestellt wird und welche der Programmierschnittstellen von welcher der Erweiterungen (3) verwendet wird; und - Betrieb des Programmmoduls (1; 2) mit einer Vielzahl der Erweiterungen (3), wobei Daten zwischen dem Programmmodul (1; 2) und der Vielzahl der Erweiterungen (3) über die Programmierschnittstellen ausgetauscht werden.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Informationen Hinweise darauf umfassen, ob die jeweilige Erweiterung (3) die jeweilige Programmierschnittstelle zwingend verwenden muss oder optional verwenden kann.
  3. Verfahren nach dem vorherigen Anspruch, dadurch gekennzeichnet, dass das Programmmodul (1; 2) ohne eine bestimmte der Erweiterungen (3) betrieben wird, falls die bestimmte Erweiterung (3) eine bestimmte der Programmierschnittstellen zwingend verwenden muss und die bestimmte Programmierschnittstelle nicht bereitgestellt wird.
  4. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass das Programmmodul (1; 2) nach der Übermittlung der Informationen jeder Programmierschnittstelle einen eindeutigen Identifikator zuordnet, wobei die Identifikatoren für den Austausch der Daten verwendet werden.
  5. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass bei der Übermittlung von Informationen die Erweiterungen (3) jeweils ein zweites Signal an das Programmmodul (1; 2) übermitteln, wobei die zweiten Signale einen Hinweis auf die jeweils bereitgestellten Programmierschnittstellen umfasst.
  6. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass die Erweiterungen (3) jeweils ein viertes Signal an das Programmmodul (1; 2) übermitteln, wobei die vierten Signale einen Hinweis auf die jeweils zu verwendenden Programmierschnittstellen umfasst.
  7. Verfahren nach dem vorherigen Anspruch, dadurch gekennzeichnet, dass nach der Übermittlung der vierten Signale entschieden wird, das Programmmodul (1; 2) ohne die bestimmte Erweiterung (3) zu betreiben, falls die bestimmte Erweiterung (3) die bestimmte Programmierschnittstelle zwingend verwenden muss und die bestimmte Programmierschnittstelle nicht bereitgestellt wird
  8. Verfahren nach dem vorherigen Anspruch, dadurch gekennzeichnet, dass nach der Entscheidung das erste Signal erneut an jede der Erweiterungen (3) mit Ausnahme der bestimmten Erweiterung (3) übermittelt wird.
  9. Verfahren nach dem vorherigen Anspruch, dadurch gekennzeichnet, dass die Übermittlung der Informationen so lange iterativ durchgeführt wird, bis keine nicht bereitgestellte Programmierschnittstelle zwingend verwendet werden muss.
  10. System, umfassend einen digitalen elektronischen Datenspeicher und eine digitale Signalverarbeitungseinrichtung, wobei im Datenspeicher Instruktionen gespeichert sind, die durch die Signalverarbeitungseinrichtung auslesbar sind, wobei die Signalverarbeitungseinrichtung dazu ausgebildet ist, die Instruktionen auszulesen und auszuführen, und wobei die Signalverarbeitungseinrichtung dazu ausgebildet ist, bei Ausführung der Instruktionen ein Verfahren nach einem der vorherigen Ansprüche durchzuführen.
DE102022129275.4A 2022-11-07 2022-11-07 Computerimplementiertes Verfahren zur Erweiterung eines Programmmoduls mit modularen Erweiterungen Pending DE102022129275A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102022129275.4A DE102022129275A1 (de) 2022-11-07 2022-11-07 Computerimplementiertes Verfahren zur Erweiterung eines Programmmoduls mit modularen Erweiterungen

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102022129275.4A DE102022129275A1 (de) 2022-11-07 2022-11-07 Computerimplementiertes Verfahren zur Erweiterung eines Programmmoduls mit modularen Erweiterungen

Publications (1)

Publication Number Publication Date
DE102022129275A1 true DE102022129275A1 (de) 2024-05-08

Family

ID=90732010

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022129275.4A Pending DE102022129275A1 (de) 2022-11-07 2022-11-07 Computerimplementiertes Verfahren zur Erweiterung eines Programmmoduls mit modularen Erweiterungen

Country Status (1)

Country Link
DE (1) DE102022129275A1 (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109639572A (zh) 2018-12-06 2019-04-16 网易(杭州)网络有限公司 路由管理方法、装置及微服务系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109639572A (zh) 2018-12-06 2019-04-16 网易(杭州)网络有限公司 路由管理方法、装置及微服务系统

Similar Documents

Publication Publication Date Title
DE3908459C2 (de) Netzwerkserver
EP0825524A1 (de) Verfahren zur Verwaltung der Benennung von Objekten
EP0525432A2 (de) Verfahren zur Änderung von Systemkonfigurationsdatensätzen in einem Fernmeldevermittlungssystem
EP0807883B1 (de) Kommunikationssystem mit Mitteln zum Austausch von Softwareprozessen
DE112011102242T5 (de) Vorrichtung zum Verarbeiten einer Stapelarbeitseinheit
DE60004211T2 (de) Entfernung von duplizierten objekten aus einem objektspeicher
DE19831720A1 (de) Verfahren zur Ermittlung einer einheitlichen globalen Sicht vom Systemzustand eines verteilten Rechnernetzwerks
DE2423260A1 (de) Verfahren und schaltungsanordnung zur pruefung von daten verarbeitenden anlagen, insbesondere fernsprechvermittlungsanlagen mit ueber ein busleitungssystem an eine steuerzentrale angeschlossenen peripheren einrichtungen
EP1005216B1 (de) Verfahren und Vorrichtung zur Validierung von Konfigurationsdaten für Telekommunikationssysteme
EP0303869B1 (de) Modular strukturiertes digitales Kommunikationssystem mit betriebstechnischen Kommunikationsmitteln
DE102022129275A1 (de) Computerimplementiertes Verfahren zur Erweiterung eines Programmmoduls mit modularen Erweiterungen
DE102020200931A1 (de) Steuerungssystem mit mehreren funktionsmodulen und adressierungsverfahren für dessen funktionsmodule
DE102021210024A1 (de) Verfahren und System zur Steuerung einer Übertragung von Daten in Abhängigkeit wenigstens eines Attributs einer Datei
EP3441919A1 (de) Verfahren zum austausch von daten zwischen engineering-tools eines engineering-systems sowie engineering-system zur durchführung des verfahrens
DE102013108306A1 (de) Verfahren und System zur Synchronisation von Daten
DE102016122766A1 (de) Steuervorrichtung zum Steuern eines Gerätes, Druckvorrichtung und Verfahren zum Betreiben einer solchen Steuervorrichtung
EP1449081B1 (de) Verfahren und vorrichtung zur verteilten verarbeitung grosser datenmengen
DE10252109B4 (de) Verfahren zur Parametrierung
EP1260905A2 (de) Programmgesteuerte Einheit
EP1157566A1 (de) Verfahren und netzelement zum betreiben eines telekommunikationsnetzes
EP0825526B1 (de) Verfahren zur Unterstützung der Interaktion zwischen einer ersten und einer zweiten Einheit
DE102007049958A1 (de) Verfahren und System zur Aktualisierung einer mehrschichtigen Applikation
DE202022102509U1 (de) System zum Steuern eines Routings von Informationsanfragen
EP0825525A1 (de) Verfahren zur Unterstützung des Erzeugens eines Objektes
DE102022204488A1 (de) System und Verfahren zum Steuern eines Routings von Informationsanfragen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0009445000

Ipc: G06F0009448000