-
Die vorliegende Erfindung betrifft ein Verfahren zur rückwirkungsfreien Validierung einer Funktionsapplikation, eine Recheneinheit und ein Computerprogramm zu dessen Durchführung sowie ein Validierungssystem.
-
Hintergrund der Erfindung
-
Für die Entwicklung und Validierung von Funktionen des (hoch-)automatisierten Fahrens und allgemeiner auch für andere automatisierte technische Systeme ist eine hohe Testdurchdringung erforderlich, die auf traditionellem Wege nicht mehr darstellbar ist. Über Systemtests und Dauerlaufversuche mittels einer dedizierten Fahrzeugtestflotte können bekannte Situationen erfasst und abgesichert werden. Im realen Betrieb spielen jedoch auch seltene Ereignisse eine Rolle, deren Erkennung eine sehr viel höhere Anzahl von Fahrzeugen und entsprechende Kilometerleistungen erfordert.
-
Offenbarung der Erfindung
-
Erfindungsgemäß werden ein Verfahren zur rückwirkungsfreien Validierung einer Funktionsapplikation, eine Recheneinheit und ein Computerprogramm zu dessen Durchführung sowie ein Validierungssystem mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.
-
Die Erfindung bedient sich der Maßnahme, die Funktionsapplikation im Hostsystem in einer (gekapselten) Umgebung auszuführen, wobei Daten vom Steuerungsprogramm über eine unidirektionale Schnittstelle zur Funktionsapplikation gesendet werden, so dass das Steuerungsprogramm nicht durch die Funktionsdaten bzw. die Funktionsapplikation beeinflusst werden kann. Die dabei von der Funktionsapplikation bestimmten Funktionsdaten (als Validierungs-Funktionsdaten bezeichnet) bzw. daraus bestimmte Validierungsdaten werden zur Validierung mittels einer Datenkommunikationsschnittstelle des Hostsystems, unabhängig vom Steuerungsprogramm, an ein entferntes Rechensystem gesendet. Dies ermöglicht den Test der Funktionsapplikation im realen Betrieb der Vorrichtung, die insbesondere ein autonomes oder teil-autonomes Fahrzeug ist, ohne dass die Funktionsapplikation das Steuerungsprogramm beeinflussen und möglicherweise zu Fehlern der Steuerung der Vorrichtung führen kann. Vorteilhaft ist insbesondere auch, dass im realen Betrieb eine sehr viel höhere Anzahl von Situationen auftreten und bei der Validierung berücksichtigt werden kann, als dies bei einer Validierung mittels Simulationen oder Ähnlichem der Fall ist. Der Umgebung und damit der Funktionsapplikation werden bestimmte Ressourcen des Hostsystems zur Verfügung gestellt und können so (gering) gewählt werden, dass für das Steuerungsprogramm ausreichend Ressourcen vorhanden sind.
-
Das Hostsystem (Recheneinheit) ist in einer Vorrichtung (etwa Maschine oder Fahrzeug) vorgesehen, z.B. als ein Steuergerät der Vorrichtung, und weist bestimmte Hostsystemressourcen auf. Das sind bestimmte Hardwareressourcen, z.B. Prozessoren mit einer bestimmten Rechenleistung, flüchtige und/oder nichtflüchtige Speicher mit einer bestimmten Speicherbandbreite und einem bestimmten Speichervolumen und/oder Ähnliches. Das Hostsystem ist dazu eingerichtet, ein Steuerungsprogramm auszuführen, um Steuerungsfunktionen der Vorrichtung zu implementieren.
-
Die Funktionsapplikation ist ein Computerprogramm bzw. Computerprogrammmodul, das dazu eingerichtet ist, bei Ausführung Funktionsdaten zu bestimmen, die die Steuerungsfunktionen beeinflussen, falls die Funktionsapplikation als Teil des Steuerungsprogramms ausgeführt wird und/oder falls die Funktionsdaten vom Steuerungsprogramm berücksichtigt werden. Die Funktionsapplikation ist also ein potentielles, zu validierendes Computerprogrammmodul des Steuerungsprogramms, das in dieses integriert werden soll oder für dieses Daten bereitstellen soll, um (bei einem tatsächlichen Einsatz) die Steuerungsfunktionen zu beeinflussen.
-
Es wird eine Umgebung in dem Hostsystem bereitgestellt, der bestimmte Umgebungsressourcen der Hostsystemressourcen zugewiesen werden, über die in der Umgebung ausgeführte Computerprogramme maximal verfügen dürfen. Beispielsweise können der Umgebung eine bestimmte maximal von dieser verwendbare Prozessorleistung oder bestimmte Speicherbereiche zugewiesen werden. Die Umgebung soll insbesondere so bereitgestellt werden, dass eine Beeinflussung des Steuerungsprogramms bzw. anderer außerhalb der Umgebung im Hostsystem ausgeführter Programme nicht möglich ist; z.B. kann die Umgebung bzw. die Funktionsapplikation oder ein anderes darin ausgeführtes Programm nicht auf Hostsystemressourcen, die der Umgebung nicht zugewiesen sind, zugreifen. Etwa ist der Zugriff auf nicht der Umgebung zugewiesene Speicherbereiche aus der Umgebung nicht möglich.
-
Daten aus dem Hostsystem werden in die Umgebung über eine unidirektionale Schnittstelle gesendet. D.h. es werden (spezifizierte) Daten, die außerhalb der Umgebung in dem Hostsystem vorliegen, z.B. Sensordaten, oder Daten/Parameter des Steuerungsprogramms, von außerhalb der Umgebung über die unidirektionale Schnittstelle in die Umgebung gesendet. In der Umgebung erfolgt ein Ausführen der Funktionsapplikation, um basierend auf den in die Umgebung gesendeten Daten Validierungs-Funktionsdaten zu bestimmen, wobei insbesondere die Funktionsapplikation nicht als Teil des Steuerungsprogramms ausgeführt wird und/oder die Validierungs-Funktionsdaten nicht vom Steuerungsprogramm berücksichtigt werden. Es erfolgen weiter ein Bestimmen von Validierungsdaten, wobei die Validierungsdaten Funktionsdaten und/oder aus Funktionsdaten abgeleitete Daten umfassen, und ein Senden bzw. Übermitteln der Validierungsdaten zu einem entfernten Rechensystem durch eine Datenkommunikationsschnittstelle des Hostsystems. Die Validierungsdaten können neben Funktionsdaten und/oder daraus abgeleiteten Daten auch weitere Daten umfassen, insbesondere Metadaten, die durch die Umgebung und/oder die Funktionsapplikation erfasst werden.
-
Das entfernte Rechensystem kann eine oder mehrere Recheneinheiten umfassen, die geeignet sind, Computerprogramme, die die Funktion des Rechensystems implementieren, auszuführen. Es ist auch möglich, dass das Rechensystem teilweise oder ganz in Form von virtualisierten Recheneinheiten auf einem System von Recheneinheiten (Server, Serversystem) implementiert wird. Insbesondere ist eine Realisierung als sogenannter Cloud-Dienst denkbar.
-
Bevorzugt umfasst das Verfahren ein Bereitstellen der Funktionsapplikation in der Umgebung, wobei die Funktionsapplikation bevorzugt durch das entfernte Rechensystem über die Datenkommunikationsschnittstelle bereitgestellt wird. Dies ermöglicht es, andere Funktionsapplikationen oder mehrere Versionen der Funktionsapplikation (aufeinanderfolgend) zu prüfen.
-
Bevorzugt umfassen die Umgebungsressourcen eine maximale Prozessorauslastung, eine maximale Menge an flüchtigem Speicher, eine maximale Menge an nichtflüchtigem Speicher und/oder eine maximale Bandbreite der Datenkommunikationsschnittstelle. Die Umgebungsressourcen (die der Umgebung zugewiesen werden) können so gewählt werden, dass ausreichend Ressourcen für das Steuerungsprogramm zur Verfügung stehen.
-
Bevorzugt umfasst das Verfahren ein Verringern der Umgebungsressourcen, wenn eine Ressourcenanforderung des Steuerungsprogramms eine vorbestimmte Schwelle übersteigt. Auf diese Weise kann sichergestellt werden, dass das Steuerungsprogramm in jedem Fall über ausreichend Ressourcen verfügt (im Rahmen der maximalen Hostsystemressourcen), auch dann, wenn das Steuerungsprogramm unerwartet viele Ressourcen benötigt. Im Extremfall können die der Umgebung zugewiesenen Umgebungsressourcen bzw. zumindest einige davon auf Null reduziert werden, was zu einem Beenden der Funktionsapplikation führen kann. Die vorbestimmte Schwelle wird vorzugsweise basierend auf den nicht der Umgebung zugewiesenen Hostsystemressourcen (d.h. Hostsystemressourcen abzüglich Umgebungsressourcen) unter Berücksichtigung einer Ressourcenreserve bestimmt. Die vorbestimmte Schwelle wird vorzugsweise als Hostsystemressourcen abzüglich Umgebungsressourcen abzüglich Ressourcenreserve bestimmt. Die Ressourcenreserve kann durch absolute Ressourcenangaben oder durch relative Ressourcenangaben spezifiziert werden. Relative Ressourcenangaben können insbesondere in Bezug auf die nicht der Umgebung zugewiesenen Hostsystemressourcen (Hostsystemressourcen abzüglich Umgebungsressourcen) spezifiziert sein. Beispielsweise könnten dies 10 % oder 20 % der nicht der Umgebung zugewiesenen Hostsystemressourcen sein, so dass die Umgebungsressourcen verringert werden, wenn die Ressourcenanforderung des Steuerungsprogramms 90 % oder 80 % der nicht der Umgebung zugewiesenen Hostsystemressourcen erreicht oder überschreitet. Umgekehrt kann vorgesehen sein, dass die Umgebungsressourcen wieder erhöht werden, bevorzugt auf den ursprünglich zugewiesenen Wert, wenn die Ressourcenanforderung des Steuerungsprogramms für einen bestimmten Zeitraum (z.B. einige Sekunden oder einige Minuten) unter einer (zweiten) Schwelle liegen, z.B. unter 50 % der nicht der Umgebung zugewiesenen Hostsystemressourcen.
-
Bevorzugt umfasst das Verfahren ein Spezifizieren in der unidirektionalen Schnittstelle, welche Daten aus dem Hostsystem (bzw. welche Daten, die außerhalb der Umgebung in dem Hostsystem vorliegen) in die Umgebung an die Funktionsapplikation gesendet werden, wobei das Spezifizieren bevorzugt beim Bereitstellen der Funktionsapplikation in der Umgebung erfolgt. D.h. es wird die Art von Daten, die gesendet werden, spezifiziert. Dies kann insbesondere Sensordaten von Sensoren der Vorrichtung, Steuerungsdaten oder Steuerungsbefehle des Steuerungsprogramms und/oder bestimmte Verarbeitungsdaten, die bei der Ausführung des Steuerungsprogramms anfallen, z.B. als Zwischenwerte bei Verarbeitungsschritten von Eingangsdaten des Steuerungsprogramm, umfassen.
-
Bevorzugt umfasst das Verfahren ein Validieren der Funktionsapplikation durch das entfernte Rechensystem basierend auf den Validierungsdaten. Beim Validieren der Funktionsapplikation durch das entfernte Rechensystem werden die Validierungsdaten durch das entfernte Rechensystem analysiert bzw. geprüft. Diese Ausgestaltung erlaubt die Analyse und Prüfung, ob die Validierungsdaten (insbesondere Funktionsdaten, wenn diese in den Validierungsdaten umfasst sind) erwarteten Validierungsdaten (insbesondere erwarteten Funktionsdaten) entsprechen (die etwa beim Entwurf bzw. bei der Programmierung der Funktionsapplikation vorgesehen wurden), und/oder ob die Validierungsdaten (insbesondere Funktionsdaten) innerhalb zulässiger Werte liegen, und/oder ähnliches. Wenn diese Prüfung erfolgreich ist, gilt die Funktionsapplikation als validiert bzw. erfolgreich validiert. Andernfalls gilt die Funktionsapplikation als nicht validiert.
-
Wenn die Funktionsapplikation nicht validiert wird, erfolgt vorzugsweise ein Bereitstellen, durch das entfernte Rechensystem, einer geänderten Funktionsapplikation und/oder von Änderungen der Funktionsapplikation in der Umgebung über die Datenkommunikationsschnittstelle. Auf diese Weise kann eine weitere Version der Funktionsapplikation geprüft werden. Die Änderungen können insbesondere auf den Validierungsdaten der vorherigen Version(en) beruhen.
-
Wenn die Funktionsapplikation erfolgreich validiert wird, erfolgt vorzugsweise ein Bereitstellen der Funktionsapplikation in dem Hostsystem als Teil des Steuerungsprogramms und/oder so, dass die Funktionsdaten vom Steuerungsprogramm berücksichtigt werden. Bei erfolgreicher Validierung kann also die Funktionsapplikation tatsächlich eingesetzt werden, da durch die Validierung (mit hoher Wahrscheinlichkeit) sichergestellt ist, dass diese wie gewünscht bzw. wie intendiert funktioniert und nicht etwa zu Fehlfunktionen führt.
-
Bevorzugt wird der Umgebung und/oder der Funktionsapplikation eine geringere Ausführungspriorität zugewiesen als dem Steuerungsprogramm. Es werden also Prozesse, die zum Steuerungsprogramm gehören, von einem Prozess-Scheduler bevorzugt (gegenüber Prozessen, die zur Umgebung/Funktionsapplikation gehören) entsprechenden Prozessorressourcen zugewiesen. So kann eine mögliche (indirekte) Beeinflussung des Steuerungsprogramms durch die Funktionsapplikation weiter unterdrückt werden.
-
Bevorzugt ist die Vorrichtung ein autonomes oder ein teil-autonomes Fahrzeug, wobei bevorzugt die Steuerungsfunktionen automatisch durchgeführte Fahrfunktionen des Fahrzeugs betreffen (d.h. Fahrfunktionen, die als Teil der Autonomie oder Teil-Autonomie des Fahrzeugs implementiert sind). Es kann sich insbesondere um ein autonomes oder teil-autonomes Fahrzeug entsprechend SAE Level 2, 3 oder höher (SAE International: J3016 Levels of Driving Automation) handeln. Die Verwendung des erfindungsgemäßen Verfahrens in einem autonomen oder teil-autonomen Fahrzeug ist zweckmäßig, da ein Fahrzeug im realen Betrieb vielen Verkehrssituationen ausgesetzt sein kann, die beim Entwurf der Funktionsapplikation nicht absehbar sind.
-
Eine erfindungsgemäße Recheneinheit (Hostsystem), z.B. ein Steuergerät eines Fahrzeugs, ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen.
-
Ein erfindungsgemäßes Validierungssystem umfasst wenigstens eine erfindungsgemäße Recheneinheit und ein entferntes Rechensystem, das dazu eingerichtet ist, eine Datenverbindung mit einer Datenkommunikationsschnittstelle der wenigstens einen Recheneinheit herzustellen und über die Datenverbindung Validierungsdaten für wenigstens eine Funktionsapplikation zu empfangen. Vorzugsweise ist vorgesehen, dass das Validierungssystem mehrere erfindungsgemäße Recheneinheiten umfasst, wobei insbesondere Validierungsdaten für dieselbe Funktionsapplikation von mehreren Recheneinheiten empfangen werden können.
-
Bevorzugt ist das entfernte Rechensystem weiter dazu eingerichtet, wenigstens eine Funktionsapplikation über die Datenverbindung in der wenigstens einen Recheneinheit bereitzustellen und/oder wenigstens eine Funktionsapplikation anhand empfangener Validierungsdaten zu validieren und/oder die wenigstens eine Funktionsapplikation zu ändern und die geänderte wenigstens eine Funktionsapplikation über die Datenverbindung in der wenigstens einen Recheneinheit bereitzustellen. Vorzugsweise umfasst das Validierungssystem mehrere Recheneinheiten, wobei die Validierungsdaten verschiedener Recheneinheiten, die dieselbe Funktionsapplikation oder verschiedene Versionen derselben Funktionsapplikation betreffen, bei der Validierung berücksichtigt werden.
-
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. Schließlich ist ein maschinenlesbares Speichermedium vorgesehen mit 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, etc.) 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.
-
Figurenliste
-
- 1 illustriert den Aufbau eines beispielhaften Systems, mit dem das Verfahren zur rückwirkungsfreien Validierung einer Funktionsapplikation implementiert werden kann.
- 2 zeigt ein Ablaufdiagramm gemäß einer bevorzugten Ausführungsform der Erfindung.
-
Ausführungsform(en) der Erfindung
-
1 illustriert den Aufbau eines beispielhaften Systems 1 (Validierungssystem), mit dem das Verfahren zur rückwirkungsfreien Validierung einer Funktionsapplikation implementiert werden kann. Das System umfasst ein Hostsystem 4, das Steuerungsfunktionen einer Vorrichtung 2 durch Ausführung wenigstens eines Steuerungsprogramms implementiert. Das Hostsystem 4 ist eine Recheneinheit, z.B. ein Steuergerät, und weist einen oder mehrere Prozessoren mit einem oder mehreren Rechenkernen, einen flüchtigen Speicher, einen nicht flüchtigen Speicher und/oder wenigstens eine Schnittstelle zum Empfangen und Senden von Daten auf (im Einzelnen nicht dargestellt). Diese Elemente des Hostsystems 4 bzw. von diesem bereitgestellte Leistungen, z.B. Rechenleistung, Speicherplatz, Bandbreite, stellen Ressourcen des Hostsystems 4 bzw. Hostsystemressourcen dar.
-
Das Hostsystem 4 kann beispielsweise eine Schnittstelle umfassen, um Daten (auch als externe Daten bezeichnet) von Elementen 6 der Vorrichtung außerhalb des Hostsystems 4 zu empfangen. Externe Daten können z.B. Sensordaten von Sensoren, die Zustände der Vorrichtung 2 und/oder einer Umgebung der Vorrichtung erfassen, Bediensignale und/oder Nachrichten von durch das Steuerungsprogramm gesteuerten Elementen sein. Das Steuerungsprogramm (im Einzelnen nicht gezeigt) kann dazu eingerichtet sein, die Sensordaten und/oder etwaige sonstige Daten (etwa Bediensignal von Bedienelementen der Vorrichtung oder gespeicherte Steuerungsvorgaben) und/oder ähnliches zu verarbeiten, um basierend darauf verarbeitete Daten (auch als interne Daten bezeichnet) zu bestimmen. Die verarbeiteten Daten 8 können an Elemente der Vorrichtung übermittelt werden, um diese Elemente zu steuern. Auf diese Weise kann das Steuerungsprogramm (wenn es ausgeführt wird) Steuerungsfunktionen der Vorrichtung implementieren.
-
Ebenso ist eine Datenkommunikationsschnittstelle 10 gezeigt, mit der das Hostsystem 4 und damit in diesem ausgeführte Computerprogramme (falls jeweilig zugelassen) mit Einrichtungen außerhalb der Vorrichtung 2 kommunizieren können, d.h. Daten austauschen können.
-
Im Hostsystem 4 ist, unabhängig vom Steuerungsprogramm, eine Umgebung bzw. gekapselte Umgebung 12 bereitgestellt, der bestimmte, als Umgebungsressourcen bezeichnete Ressourcen der Hostsystemressourcen zugewiesen sind; die Umgebung ist sozusagen durch die zugewiesenen Umgebungsressourcen charakterisiert. Umgebungsressourcen können insbesondere eine maximale Prozessorauslastung, eine maximale Menge (Speicherplatz) an flüchtigem Speicher, eine maximale Menge an nichtflüchtigem Speicher und/oder eine maximale Bandbreite der Datenkommunikationsschnittstelle sein. In der Umgebung 12 ausgeführte Computerprogramme können also die Ressourcen des Hostsystems 4 auslasten, bis die Umgebungsressourcen erreicht sind.
-
Es ist eine unidirektionale Schnittstelle 14 vorgesehen, über die Daten in die Umgebung 12 bzw. an darin ausgeführte Computerprogramme gesendet werden können. Es können also Daten des Steuerungsprogramms und/oder Sensordaten in die Umgebung 12 gesendet werden. Welche Daten dies sind, kann in der unidirektionalen Schnittstelle 14 spezifiziert werden, d.h. es kann spezifiziert werden, welche Art von Daten oder welche spezifischen Daten, z.B. welche Parameter, in die Umgebung gesendet wird. Beispielsweise können dies erfasste Daten eines spezifizierten Sensors und/oder spezifizierte Daten bzw. Parameter (z.B. interne Parameter oder Steuerbefehle), die bei der Ausführung des Steuerungsprogramms von diesem verwendet bzw. bestimmt werden (auch als im Steuerungsprogramm vorhandene Daten bezeichnet), sein. Es kann also eine Teilmenge oder die Gesamtmenge der internen und/oder der externen Daten als in die Umgebung 12 zu sendende bzw. zu übermittelnde Daten in der unidirektionalen Schnittstelle 14 spezifiziert werden.
-
Die Umgebung 12 bzw. ein darin ausgeführtes Computerprogram kann zudem über die Datenkommunikationsschnittstelle 10 mit Einrichtungen bzw. Rechnern außerhalb der Vorrichtung 2 kommunizieren. Auch dies kann lediglich im Rahmen der zugewiesenen Umgebungsressourcen, hier zugewiesene maximale Bandbreite der Datenkommunikationsschnittstelle, geschehen. Diese Kommunikation aus der Umgebung 12 über die Datenkommunikationsschnittstelle 10 erfolgt unabhängig von außerhalb der Umgebung im Hostsystem ausgeführten Computerprogrammen, insbesondere unabhängig vom Steuerungsprogramm, d.h. ohne dass Funktionalitäten des Steuerungsprogramms verwendet oder beeinflusst werden.
-
In der Umgebung 12 wird eine Funktionsapplikation 16, die ein Computerprogramm ist, ausgeführt. Die Funktionsapplikation 16 ist dazu eingerichtet, Funktionsdaten zu bestimmen, die, falls sie vom Steuerungsprogramm berücksichtigt würden, die Steuerungsfunktionen beeinflussen würden. Die Funktionsapplikation 16 kann als potentielles (zu validierendes) Programmmodul, das in das Steuerungsprogramm integriert werden soll, bzw. das die Funktionsdaten zur Verwendung (Weiterverarbeitung) durch das Steuerungsprogramm bestimmt, angesehen werden. Wenn die Funktionsapplikation 16 in der Umgebung 12 ausgeführt wird, werden die bestimmten Funktionsdaten nicht vom Steuerungsprogramm berücksichtigt und spezifischer als Validierungs-Funktionsdaten bezeichnet.
-
Die Daten, die von der Funktionsapplikation 16 benötigt werden, um die Funktionsdaten zu bestimmen, können in der unidirektionalen Schnittstelle 14 spezifiziert werden. Eine direkte Auswirkung der Funktionsapplikation 16 auf das Hostsystem außerhalb der Umgebung 12 ist aufgrund der unidirektionalen Natur der Schnittstelle 14 nicht möglich. Insbesondere sind keine direkten Auswirkungen (etwa durch Ändern von Registern oder Daten) auf das Steuerungsprogramm möglich. Indirekte Auswirkungen können sich ergeben, falls das Steuerungsprogramm mehr Ressourcen benötigt als erwartet, so dass dieses eine Ressourcenbedarf aufweist, der sich mit den Umgebungsressourcen überschneidet. Solchen indirekten Auswirkungen kann entgegengewirkt werden, indem die Ressourcen der Umgebung eingeschränkt werden, d.h. die der Umgebung zugewiesenen Umgebungsressourcen können in diesem Fall verringert werden.
-
Aus den von der Funktionsapplikation 16 bestimmten Validierungs-Funktionsdaten oder daraus abgeleiteten Daten werden sogenannte Validierungsdaten bestimmt, die über die Datenkommunikationsschnittstelle 10 an ein entferntes Rechensystem 20 übermittelt werden können. Abgeleitete Daten können eine Auswahl bestimmter Validierungs-Funktionsdaten und/oder basierend auf den Validierungs-Funktionsdaten bestimmte Daten sein (etwa ein Durchschnitt bestimmter Validierungs-Funktionsdaten oder ähnliches). Bei einer Auswahl bestimmter Validierungs-Funktionsdaten als abgeleitete Daten können etwa Daten von bestimmten Sensoren, Werte von bestimmten (Steuerungsprogramm-)Parametern verwendet werden. Ebenso kann vorgesehen sein, dass nur dann abgeleitete Daten bestimmt werden, wenn erkannt wird (z.B. anhand von Sensordaten), dass sich die Vorrichtung in wenigstens einer vorgegebenen Betriebssituation befindet. Neben den Validierungs-Funktionsdaten oder den daraus abgeleiteten Daten können optional auch weitere Daten in den Validierungsdaten umfasst sein. Insbesondere kann vorgesehen sein, dass Ressourcendaten, die einen tatsächlichen Ressourcenverbrauch der Funktionsapplikation anzeigen, in den Validierungsdaten umfasst sind.
-
Um die Validierungsdaten zu bestimmen, kann (in der Umgebung) eine Dateneinheit 18 vorgesehen sein. Es kann vorgesehen sein, dass die Validierungs-Funktionsdaten oder die daraus abgeleiteten Daten und/oder auch die Validierungsdaten von der Dateneinheit 18 aufgezeichnet und zwischengespeichert werden. Dies ist insbesondere dann hilfreich, wenn die Verbindung zwischen Datenkommunikationsschnittstelle 10 und entferntem Rechensystem 20 nicht ununterbrochen besteht.
-
Die übermittelten Validierungsdaten können durch das entfernte Rechensystem 20 analysiert werden, um die Funktionsapplikation zu validieren. Bei erfolgreicher Validierung kann vorgesehen sein, dass die Funktionsapplikation im Hostsystem eingesetzt wird, um Steuerungsfunktionen zu beeinflussen, d.h. dass die Funktionsapplikation als Teil des Steuerungsprogramms verwendet wird oder von der Funktionsapplikation bestimmte Funktionsdaten von dem Steuerungsprogramm berücksichtigt werden. Dazu kann beispielsweise eine (Software-)Aktualisierung der vom Hostsystem ausgeführten Computerprogramme (Steuerungsprogramme) über die Datenkommunikationsschnittstelle 10 durch das entfernte Rechensystem 20 erfolgen. Schlägt die Validierung der Funktionsapplikation 16 fehl, kann vorgesehen sein, dass über die Datenkommunikationsschnittstelle 10 durch das entfernte Rechensystem 20 eine andere und/oder geänderte Funktionsapplikation in der Umgebung 12 bereitgestellt wird, um diese zu validieren. Es kann auch vorgesehen sein, dass verschiedene Versionen der Funktionsapplikation der Reihe nach über die Datenkommunikationsschnittstelle 10 durch das entfernte Rechensystem 20 in der Umgebung 12 bereitgestellt werden und die Validierung erst erfolgt, nachdem die Validierungsdaten der verschiedenen Versionen an das entfernte Rechensystem 20 übertragen wurden. Dadurch kann bei der Validierung eine besonders geeignete Version der Funktionsapplikation ausgewählt werden. Ebenso kann vorgesehen sein, dass die Funktionsapplikation zur Validierung in mehreren gleichartigen Vorrichtungen eingesetzt wird, d.h. die Funktionsapplikation wird in Umgebungen in jeweiligen Hostsystemen der mehreren Vorrichtungen bereitgestellt und ausgeführt, um jeweilige Validierungsdaten zu bestimmen und an das entfernte Rechensystem zu übermitteln. Bei der Validierung der Funktionsapplikation durch das entfernte Rechensystem können dann die Validierungsdaten der mehreren Vorrichtungen berücksichtigt werden.
-
2 zeigt ein Ablaufdiagramm gemäß einer bevorzugten Ausführungsform der Erfindung.
-
In Schritt 110 wird die Umgebung im Hostsystem bereitgestellt, wobei der Umgebung bestimmte Umgebungsressourcen zugewiesen werden. Das Zuweisen kann durch eine entsprechende Ressourcenzuteilungs-Funktionalität des Hostsystems erfolgen. Die Umgebungsressourcen sind ein Teil der Hostsystemressourcen und bestimmen diejenigen der Hostsystemressourcen, die von der Umgebung maximal verwendet werden dürfen.
-
In Schritt 120 wird die Funktionsapplikation in der Umgebung bereitgestellt. Beispielsweise kann die Funktionsapplikation über die Datenkommunikationsschnittstelle in die Umgebung übertragen werden (etwa von dem entfernten Rechensystem oder einer anderen entfernten Recheneinheit) und dort in einem flüchtigen oder nichtflüchtigen Speicher (im Rahmen der Umgebungsressourcen) gespeichert werden. Auch ein Bereitstellen durch Anschließen eines nichtflüchtigen Speichers an eine Schnittstelle (die als Teil der Datenkommunikationsschnittstelle angesehen werden kann) des Hostsystems, etwa mittels einer geeigneten Steckverbindung, und Übertragen von diesem nichtflüchtigen Speicher in die Umgebung ist möglich.
-
In einem optionalen Schritt 130, der auch vor oder gleichzeitig mit Schritt 120 oder als Teil von Schritt 120 durchgeführt werden kann, werden in der unidirektionalen Schnittstelle die Daten bzw. die Art von Daten, die in die Umgebung gesendet werden sollen, spezifiziert. Im Allgemeinen ist auch möglich, dass eine Menge zu sendender Daten fest vorgegeben ist (etwa mit Bereitstellung der Umgebung), so dass die in die Umgebung zu sendenden Daten nicht eigens spezifiziert werden müssen.
-
In Schritt 140 erfolgt bzw. beginnt ein Senden von (spezifizierten) Daten aus dem Hostsystem in die Umgebung über die unidirektionale Schnittstelle. Das Senden der Daten wird zumindest während des nachfolgenden Schritts 150 (Ausführen der Funktionsapplikation) fortlaufend durchgeführt. Die gesendeten Daten werden somit in der Umgebung bereitgestellt und können von darin ausgeführten Computerprogrammen, insbesondere von der Funktionsapplikation, verwendet werden.
-
In Schritt 150 erfolgt ein Ausführen der Funktionsapplikation in der Umgebung; d.h. die Funktionsapplikation wird gestartet bzw. es wird mit dem Ausführen der Funktionsapplikation begonnen. Das Ausführen erfolgt so, dass die Umgebungsressourcen nicht überschritten werden. Dies kann durch die Ressourcenzuteilungs-Funktionalität des Hostsystems und/oder eine entsprechende Funktionalität der Umgebung sichergestellt werden. Falls die Umgebungsressourcen nicht ausreichen, um die Funktionsapplikation auszuführen bzw. so auszuführen, dass die intendierte Funktion der Funktionsapplikation erreicht wird, kann eine entsprechende Fehlermeldung erzeugt werden, insbesondere als Teil der Validierungsdaten, und optional an das entfernte Rechensystem übermittelt werden.
-
Die Funktionsapplikation verwendet die in die Umgebung gesendeten Daten, um als Validierungs-Funktionsdaten bezeichnete Funktionsdaten zu bestimmen. Die Funktionsapplikation wird fortlaufend ausgeführt, wobei auch vorgesehen sein kann, dass die Ausführung nach einer bestimmten Zeitspanne oder in Reaktion auf bestimmte Ereignisse beendet wird. Letzteres kann insbesondere dann auftreten, wenn festgestellt wird, dass die Ausführung des Steuerungsprogramms zu viele Hostsystemressourcen benötigt, so dass die gleichzeitige Ausführung der Funktionsapplikation ohne (indirekte) Beeinflussung des Steuerungsprogramms nicht möglich wäre.
-
In einem bevorzugten Schritt 160 wird geprüft, etwa durch die Ressourcenzuteilungs-Funktionalität, ob ausreichend Ressourcen außerhalb der Umgebung zur Verfügung stehen, so dass die Ausführung des Steuerungsprogramms nicht beeinträchtigt wird. Wenn nicht ausreichend Ressourcen für die Ausführung des Steuerungsprogramms außerhalb der Umgebung zur Verfügung stehen, können in einem bevorzugten Schritt 165 die Umgebungsressourcen verringert und das Verhalten an die tatsächlich vorhandenen Umgebungsressourcen angepasst werden. Gleichzeitig kann eine entsprechende Fehlermeldung erzeugt werden, insbesondere als Teil der Validierungsdaten, und optional an das entfernte Rechensystem übermittelt werden.
-
In Schritt 170 werden basierend auf den von der Funktionsapplikation bestimmten Validierungs-Funktionsdaten Validierungsdaten bestimmt, anhand derer die Funktionsapplikation validiert werden kann, d.h. geprüft werden kann, ob diese wie intendiert funktioniert. Die Validierungsdaten können die Validierungs-Funktionsdaten selbst, eine Teilmenge davon, aus den Validierungs-Funktionsdaten abgeleitete und/oder Metadaten, die bei der Ausführung der Funktionsapplikation anfallen (z.B. tatsächlicher Ressourcenverbrauch, Ausführungszeiten, oder ähnliches und/oder insbesondere Daten, die von der Umgebung bei Ausführung der Funktionsapplikation erfasst werden), umfassen.
-
In Schritt 180 werden die Validierungsdaten über die Datenkommunikationsschnittstelle zu dem entfernten Rechensystem übermittelt. Diese Übermittlung kann fortlaufend oder an regelmäßig oder unregelmäßig (etwa wenn die die Verbindung über die Datenkommunikationsschnittstelle nicht immer besteht) beabstandeten Zeitpunkten erfolgen. Dabei kann auch vorgesehen sein, dass die Validierungsdaten übermittelt werden, wenn (oder in Reaktion darauf, dass) eine bestimmte Menge (z.B. gemessen in Byte, Kilobyte, ...) vorliegt.
-
In einem bevorzugten Schritt 190 werden die Validierungsdaten, die an das entfernte Rechensystem übermittelt wurden, durch das entfernte Rechensystem analysiert bzw. ausgewertet, um die Funktionsapplikation zu validieren, d.h. Festzustellen, ob die Funktionsapplikation wie gewünscht funktioniert. Das entfernte Rechensystem kann dazu zunächst eine bestimmte (ausreichende) Menge an Validierungsdaten sammeln, insbesondere auch von Kopien der Funktionsapplikation, die in Hostsystemen mehrerer Vorrichtungen innerhalb jeweiliger Umgebungen ausgeführt werden.
-
In einem bevorzugten Schritt 200 wird geprüft, ob die Validierung der Funktionsapplikation abgeschlossen ist. Wenn die Validierung nicht abgeschlossen ist, etwa weil noch nicht ausreichend Validierungsdaten vorliegen oder weil andere Versionen der Funktionsapplikation, z.B. mit geänderten Parametern, geprüft werden sollen, kann die Funktionsapplikation erneut in der Umgebung bereitgestellt werden, d.h. zu Schritt 120 zurückgesprungen werden, wobei zuvor optional in Schritt 205 ein Ändern oder Anpassen der Funktionsapplikation erfolgen kann, um eine andere Version zu erhalten.
-
Wenn die Validierung abgeschlossen ist und wenn die Funktionsapplikation erfolgreich validiert wurde (d.h. wenn bei der Validierung in Schritt 190 festgestellt wurde, dass die Funktionsapplikation wie gewünscht funktioniert), kann die Funktionsapplikation in einem optionalen Schritt 210 verwendet werden. Hierbei wird die Funktionsapplikation auf das Hostsystem aufgespielt, so dass die Funktionsapplikation die Steuerungsfunktionen beeinflusst. Wenn andererseits die Validierung abgeschlossen ist und wenn die Funktionsapplikation nicht erfolgreich validiert wurde, kann im optionalen Schritt 215 die Funktionsapplikation verworfen werden.