-
GEBIET DER
ERFINDUNG
-
Die
vorliegende Erfindung betrifft eine Prozessabfolgeüberprüfung und
insbesondere Verfahren für
eine Zentralisierung einer Prozessabfolgeüberprüfung.
-
HINTERGRUND
DER ERFINDUNG
-
Bei
einem Prozess, wie beispielsweise einer Steuersystemsoftware, wird
eine Reihe von Schritten in einer definierten Reihenfolge oder Abfolge
ausgeführt.
Ein Verifizieren, ob die Schritte in der Abfolge in der definierten
Reihenfolge ausgeführt
werden, ist als Abfolgeüberprüfung bekannt.
Eine Abfolgeüberprüfung ist
wesentlich, um sicherzustellen, dass der Prozess oder das Steuersystem
richtig arbeitet. Um eine Abfolgeüberprüfung zu vereinfachen, wird
ein Steuersystem im Allgemeinen in Teilsysteme aufgeteilt.
-
Bei
einem herkömmlichen
Verfahren einer Abfolgeüberprüfung hängt die
Ausführung
jedes Schritts durch ein Teilsystem von dem Status des vorherigen
Schritts und dem Teilsystem ab, das diesen Schritt ausführt. Wie
in 1 gezeigt, führt ein
Teilsystem 2 keinen Schritt aus, wenn ein Teilsystem 1 einen Schritt
entweder nicht ausgeführt
hat oder fehlerhaft ausgeführt
hat. Diese Abhängigkeit
der Ausführung
eines Schritts von der Ausführung
eines anderen Schritts verkompliziert die Abwandlung und Erweiterung
des Steuersystems, da ein Abwandeln oder Hinzufügen eines Schritts bei einer
Abfolge eine Abwandlung anderer Schritte erfordert. Zusätzlich verwendet
das herkömmliche
Verfahren Ressourcen, wie beispielsweise einen Computerspeicher
und einen Durchsatz, uneffizient.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Demgemäß stellt
die vorliegende Erfindung ein Verfahren für eine Zentralisierung einer
Prozessabfolgeüberprüfung bereit,
das umfasst, dass ein Satz von Schritten in einer Abfolge für einen
Prozess definiert wird, eine Reihenfolge von Schritten in dem Satz
von Schritten definiert wird, unabhängig von anderen der Schritte
ermittelt wird, ob einer der Schritte gestartet wurde, unabhängig von
anderen der Schritte ermittelt wird, ob einer der Schritte abgeschlossen wurde,
ermittelt wird, ob die Abfolge gestartet wurde, ermittelt wird,
ob die Abfolge abgeschlossen wurde, und ermittelt wird, ob ein Abfolgefehler
auftrat.
-
Bei
einer anderen Ausführungsform
umfasst das Verfahren, dass einer der Schritte als gestarteter Schritt
registriert wird, wenn der Schritt gestartet wird.
-
Bei
einer anderen Ausführungsform
umfasst das Verfahren, dass einer der Schritte als abgeschlossener
Schritt registriert wird, wenn der Schritt abgeschlossen wird, und
ein Schrittzählwert
erhöht wird.
-
Bei
noch einer anderen Ausführungsform umfasst
das Verfahren, dass die Abfolge als abgeschlossen registriert wird,
wenn alle Schritte in der Abfolge abgeschlossen sind.
-
Bei
einer anderen Ausführungsform
umfasst das Verfahren, dass einer der Schritte als ein Abfolgefehler
registriert wird, wenn der Schritt nicht ge startet wird, einer der
Schritte als ein Abfolgefehler registriert wird, wenn der Schritt
nicht abgeschlossen wird, und einer der Schritte als ein Abfolgefehler
registriert wird, wenn der Schritt nicht in der Reihenfolge liegt.
-
Bei
einer anderen Ausführungsform
umfasst das Verfahren, dass ein Abfolgefehler registriert wird, wenn
der Abfolgefehler auftritt, ein Abfolgefehler registriert wird,
wenn die Abfolge nicht gestartet wurde, und ein Abfolgefehler registriert
wird, wenn die Abfolge nicht abgeschlossen wurde.
-
Bei
noch einer anderen Ausführungsform umfasst
das Verfahren, dass ein Abfolgefehlerzählwert erhöht wird, wenn der Abfolgefehler
detektiert wird.
-
Bei
noch einer anderen Ausführungsform umfasst
das Verfahren, dass der Abfolgefehlerzählwert mit einem vorbestimmten
Schwellenwert verglichen wird.
-
Bei
noch einer anderen Ausführungsform umfasst
das Verfahren, dass der Abfolgefehler gespeichert wird und ein Prozessversagen
registriert wird, wenn der Abfolgefehlerzählwert den vorbestimmten Schwellenwert übersteigt.
-
Bei
einer anderen Ausführungsform
umfasst das Verfahren, dass ein nächster erwarteter Schritt in der
Abfolge ermittelt wird, wenn die Abfolge nicht abgeschlossen ist.
-
Bei
einer anderen Ausführungsform
umfasst das Verfahren, dass ermittelt wird, ob der nächste erwartete
Schritt vom Starttyp oder vom Abschlusstyp ist.
-
Weitere
Anwendungsgebiete der vorliegenden Erfindung werden aus der hierin
nachfolgend bereitgestellten detaillierten Beschreibung ersichtlich. Es
sei angemerkt, dass die detaillierte Beschreibung und spezifische
Beispiele, während
sie die bevorzugte Ausführungsform
der Erfindung erklären,
nur Erläuterungszwecken
dienen sollen und nicht beabsichtigen, den Schutzumfang der Erfindung
zu beschränken.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
Die
vorliegende Erfindung wird aus der detaillierten Beschreibung und
den begleitenden Zeichnungen deutlicher verständlich, in denen:
-
1 ein
beispielhaftes herkömmliches
Verfahren einer Prozessabfolgeüberprüfung zeigt;
-
2 ein
beispielhaftes Verfahren für
eine Zentralisierung einer Prozessabfolgeüberprüfung gemäß der vorliegenden Erfindung
zeigt;
-
3 ein
funktionales Blockdiagramm eines beispielhaften Systems für eine Zentralisierung
einer Prozessabfolgeüberprüfung gemäß der vorliegenden Erfindung
ist;
-
4 ein
Flussdiagramm ist, das einen beispielhaften Algorithmus für eine Schrittstart-Dienstroutine
gemäß der vorliegenden
Erfindung zeigt;
-
5 ein
Flussdiagramm ist, das einen beispielhaften Algorithmus für eine Schrittabschluss-Dienstroutine
gemäß der vorliegenden
Erfindung zeigt;
-
6 ein
Flussdiagramm ist, das einen beispielhaften Algorithmus für eine Abfolgetest-Dienstroutine
gemäß der vorliegenden
Erfindung zeigt.
-
DETAILLIERTE
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
Die
folgende Beschreibung der bevorzugten Ausführungsform(en) ist lediglich
beispielhafter Natur und beabsichtigt auf keine Weise, die Erfindung,
ihre Anwendung oder Verwendungen zu beschränken. Zu Klarheitszwecken werden
die gleichen Bezugszeichen in den Zeichnungen verwendet, um ähnliche Elemente
zu identifizieren. Wie hierin verwendet, bezieht sich der Ausdruck
Modul, Controller und/oder Einrichtung auf einen anwendungsspezifischen Schaltkreis
(ASIC), einen elektronischen Schaltkreis, einen Prozessor (gemeinsam
genutzt, zugeordnet oder gruppiert) und einen Speicher, die ein
oder mehrere Software- oder Firmwareprogramme ausführen, einen
Schaltkreis mit kombinatorischer Logik und andere geeignete Bauteile,
die die beschriebene Funktionalität bereitstellen.
-
Bezug
nehmend auf 2 ist ein Verfahren für eine Zentralisierung
einer Prozessabfolgeüberprüfung gezeigt.
Ein Prozess oder ein Steuersystem 10 ist in mehrere Teilsysteme
aufgeteilt. Ein Prozessintegritätsmodul
(PIM) 12 definiert eine Abfolge von Schritten für den Prozess.
Wenn der Prozess mehr als eine Abfolge erfordert, werden die Abfolgen
unabhängig
voneinander definiert, d.h., die Abfolgen teilen keine Schritte.
Das PIM stellt Schnittstellen oder standardisierte Dienstroutinen
(nicht gezeigt) bereit, die dem PIM den Status der Abfolge und den
Status jedes Schritts unabhängig
von anderen Schritten in der Abfolge berichten. Zum Beispiel berichtet
eine Schrittstartroutine einen Schritt und den Status des Schritts,
wenn ein Teilsystem einen Schritt startet. Ähnlich berichtet eine Schrittabschlussroutine
einen Schritt und den Status des Schritts, wenn ein Teilsystem einen
Schritt abschließt.
Wenn der berichtete Schritt nicht in der in der Abfolge vordefinierten
Reihenfolge liegt, wird ein Abfolgefehler detektiert, und der berichtete
Schritt wird als ein Abfolgefehler gespeichert.
-
Insbesondere
steuert das Verfahren 10 weder die Ausführungsreihenfolge noch die
Ausführung der
Schritte in einer Abfolge. Stattdessen überprüft das Verfahren unabhängig von
anderen Schritten, ob jeder durch ein Teilsystem ausgeführte Schritt
in der Abfolge in der definierten Reihenfolge liegt. Genauer gesagt
berichtet das Verfahren unabhängig
von anderen Schritten den Status jedes Schritts als einen gestarteten
Schritt, einen abgeschlossenen Schritt, einen ausgelassenen Schritt,
einen wiederholten Schritt, etc.
-
Das
PIM 12 führt
durch Ausführen
einer Abfolgetest-Dienstroutine an dem Ende einer Echtzeitbetriebssystemaufgabe
(RTOS von real time operating system task) oder einer Abfolge einen
Abfolgetest durch. Der Abfolgetest detektiert, ob ein Abfolgefehler
aufgetreten ist. Ein Abfolgefehler tritt auf, wenn ein Schritt ausgelassen
wird, wiederholt wird, nicht in der korrekten Reihenfolge liegt,
etc. und wenn die Abfolge nicht begonnen oder abgeschlossen wurde. Wenn
die Abfolge ohne einen Fehler abgeschlossen wurde, wird ein Fehlerzähler (nicht
gezeigt) gelöscht. Andernfalls
wird ein Fehlerzähler
erhöht
und mit einem vorbestimmten Schwellenwert verglichen. Wenn der Schwellenwert überstiegen
wird, wird der Fehler festgehalten oder protokolliert, und ein Prozessintegritätsversagen
wird berichtet, so dass das Steuersystem eine Abhilfemaßnahme ergreifen
kann.
-
Zusätzlich verfolgt
die Abfolgetestroutine basierend auf dem berichteten Status eines
Schritts den nächsten
erwarteten Schritttyp (d.h. Start oder Abschluss) und den nächsten erwarteten
Schritt in der Abfolge für
eine Überprüfung. Somit
stellt der Abfolgetest ein Verfahren bereit, um einen richtigen
Ablauf einer Abfolge zu definieren und zu verifizieren.
-
Bezug
nehmend auf 3 ist ein System 20 für eine Zentralisierung
einer Prozessabfolgeüberprüfung gezeigt.
Ein Steuermodul 22 verwendet ein Komparatormodul 24 und
einen Speicher 26 und führt
standardisierte Dienstroutinen aus, um unabhängig von anderen Schritten
den Status eines Schritts und einer Abfolge zu testen. Wenn ein
Schritt gestartet oder abgeschlossen wird, speichert das Steuermodul 22 den
Schritt als gestarteten Schritt bzw. abgeschlossenen Schritt in
dem Speicher 26. Das Komparatormodul 24 überprüft, ob ein
Schritt in der korrekten Reihenfolge gestartet oder abgeschlossen
wurde. Wenn das Komparatormodul 24 detektiert, dass der
Schritt nicht mit dem erwarteten Schritt oder Schritttyp (d.h. Start
oder Abschluss) übereinstimmt,
wird ein Fehler detektiert, und der Schritt wird als ein Abfolgefehler
in dem Speicher 26 gespeichert.
-
Am
Ende der Betriebssystemaufgabe oder Abfolge führt das Steuermodul 22 eine
Abfolgetest-Dienstroutine durch, die Fehler detektiert, wie beispielsweise
einen versäumten
Schritt, einen wiederholten Schritt, einen nicht in der korrekten
Reihenfolge liegenden Schritt, eine nicht gestartete oder abgeschlossene
Abfolge etc. Wenn das Komparatormodul 24 ermittelt, dass
eine Abfolge ohne einen Fehler abgeschlossen wurde, wird ein Fehlerzähler in
dem Speicher 26 gelöscht.
Andernfalls wird der Fehlerzähler
erhöht
und das Komparatormodul 24 vergleicht den Fehlerzählwert mit
einem vorbestimmten in dem Speicher 26 gespeicherten Schwellenwert.
Wenn der Fehlerzählwert
den Schwellenwert übersteigt,
wird der Abfolge fehler in dem Speicher 26 festgehalten
oder protokolliert und ein Prozessintegritätsversagen wird berichtet,
so dass das System Abhilfemaßnahmen
treffen kann. Auf der Grundlage der berichteten Schritte stellt
die Abfolgetest-Dienstroutine den nächsten erwarteten Schritttyp
(d.h. Start oder Abschluss) und den nächsten erwarteten Schritt in
einer Abfolge für
einen Test bereit.
-
Bezug
nehmend auf 4 ist ein Algorithmus 100 für eine Schrittstart-Dienstroutine gezeigt. Ein
Steuermodul 22 startet den Algorithmus bei Schritt 102.
In Schritt 104 wird ein berichteter Schritt in einer Abfolge
als gestarteter Schritt in einem Speicher 26 gespeichert.
Dann überprüft ein Komparatormodul 24,
ob drei Zustände
aufgetreten sind: (1) in Schritt 106, ob der berichtete
Schritt in der korrekten Reihenfolge liegt und mit dem erwarteten
Schritttyp (d.h. Start) übereinstimmt;
(2) in Schritt 108, ob der berichtete Schritt in der korrekten
Reihenfolge liegt und mit dem erwarteten Schritt übereinstimmt;
und (3) in Schritt 110, ob die Abfolge unvollständig ist.
-
Wenn
alle drei Zustände
aufgetreten sind, dann wird der nächste erwartete Schritttyp
in Schritt 112 auf "Abschluss" gesetzt, und die
Dienstroutine endet in Schritt 114. Wenn jedoch einer der
drei Zustände
nicht aufgetreten ist, dann überprüft das Komparatormodul 24 in
Schritt 116 durch Überprüfen eines
Abfolgefehler-Flags in dem Speicher 26, ob ein Abfolgefehler
aufgetreten ist. Wenn das Flag auf Falsch gesetzt oder zurückgesetzt
ist (d.h., es ist kein Abfolgefehler aufgetreten), dann wird der
berichtete Schritt in Schritt 118 in dem Speicher 26 als
ein Abfolgefehler gespeichert; in Schritt 120 wird das
Abfolgefehler-Flag auf Wahr gesetzt (d.h., es ist ein Abfolgefehler
aufgetreten); und die Routine endet in Schritt 114. Wenn
jedoch in Schritt 116 ein Abfolgefehler detektiert wird
(d.h., das Flag in dem Speicher 26 ist auf Wahr gesetzt),
dann wird das Abfolgefehler-Flag in Schritt 120 unverändert gelassen,
und die Routine endet in Schritt 114.
-
Bezug
nehmend auf 5 ist ein Algorithmus 150 für eine Schrittabschluss-Dienstroutine
gezeigt. Ein Steuermodul 22 startet den Algorithmus bei Schritt 152.
In Schritt 154 wird ein berichteter Schritt in dem Speicher 26 als
abgeschlossener Schritt gespeichert. Dann überprüft ein Komparatormodul 24, ob
drei Zustände
aufgetreten sind: (1) in Schritt 156, ob der berichtete
Schritt in der korrekten Reihenfolge liegt und mit dem erwarteten
Schritttyp (d.h. Abschluss) übereinstimmt;
(2) in Schritt 158, ob der berichtete Schritt in der korrekten
Reihenfolge liegt und mit dem erwarteten Schritt übereinstimmt;
und (3) in Schritt 160, ob die Abfolge unvollständig ist.
-
Wenn
einer der drei Zustände
nicht auftritt, dann überprüft das Komparatormodul 24 in
Schritt 166 durch Überprüfen eines
Abfolgefehler-Flags in dem Speicher 26, ob ein Abfolgefehler
aufgetreten ist. Wenn das Flag auf Falsch gesetzt oder zurückgesetzt
ist (d.h., es ist kein Abfolgefehler aufgetreten), dann wird der
berichtete Schritt in Schritt 168 in dem Speicher 26 als
ein Abfolgefehler gespeichert; in Schritt 170 wird das
Abfolgefehler-Flag
auf Wahr gesetzt (d.h., es ist ein Abfolgefehler aufgetreten); und die
Routine endet in Schritt 180. Wenn jedoch in Schritt 166 ein
Abfolgefehler detektiert wird (d.h., das Flag in dem Speicher 26 ist
auf Wahr gesetzt), dann bleibt das Abfolgefehler-Flag in Schritt 170 unverändert, und
die Routine endet in Schritt 190.
-
Andererseits
wird, wenn einer der drei Zustände
in den Schritten 156, 158 und 160 nicht
aufgetreten ist, dann in Schritt 172 in dem Speicher 26 ein Schrittzähler erhöht. In Schritt 174 vergleicht
das Komparatormodul 24 den Schrittzählwert mit der Gesamtanzahl
von Schritten in einer Abfolge.
-
Wenn
der Schrittzählwert
kleiner als die Gesamtanzahl von Schritten in einer Abfolge ist,
dann wird der erwartete Schritt in Schritt 176 auf den nächsten Schritt
in der Abfolge gesetzt; in Schritt 178 wird der erwartete
Schritttyp auf "Start" gesetzt; und die
Dienstroutine endet im Schritt 190. Wenn der Schrittzählwert in
Schritt 174 jedoch nicht kleiner als die Gesamtanzahl von
Schritten ist, dann wird in Schritt 180 in dem Speicher 26 ein
Abfolgeabschluss-Flag auf Wahr gesetzt, und die Dienstroutine endet
in Schritt 190.
-
Bezug
nehmend auf 6 ist ein Algorithmus 200 für eine Abfolgetest-Dienstroutine gezeigt. Ein
Steuermodul 22 startet die Routine bei Schritt 202.
In Schritt 204 überprüft ein Komparatormodul 24,
ob ein Abfolgetestaktivierungs-Flag in dem Speicher 26 auf
Wahr gesetzt ist. Wenn das Flag zurückgesetzt oder auf Falsch gesetzt
ist, dann endet die Dienstroutine in Schritt 226. Wenn
das Flag jedoch auf Wahr gesetzt ist, dann überprüft das Komparatormodul 24 in
Schritt 206, ob eine Abfolge abgeschlossen wurde.
-
Wenn
die Abfolge abgeschlossen wurde, d.h., wenn das Abfolgeabschluss-Flag in dem Speicher 26 auf
Wahr gesetzt ist, dann überprüft das Komparatormodul 24 in
Schritt 208, ob ein Abfolgefehler aufgetreten ist, d.h.,
ob ein Abfolgefehler-Flag in dem Speicher 26 auf Wahr gesetzt
ist. Wenn kein Abfolgefehler aufgetreten ist, dann wird in Schritt 210 ein
Abfolgefehlerzähler
in dem Speicher 26 zurückgesetzt.
Wenn jedoch eine Abfolge nicht abgeschlossen wurde oder ein Abfolgefehler
aufgetreten ist, dann wird der Abfolgefehlerzähler in dem Speicher 26 in
Schritt 212 erhöht.
-
In
Schritt 214 vergleicht das Komparatormodul 24 den
Abfolgefehlerzählwert
mit einem vorbestimmten Schwellenwert. Wenn der Fehlerzählwert den
Schwellenwert übersteigt,
dann wird der Abfolgefehler in Schritt 216 in dem Speicher 26 festgehalten
oder protokolliert, und in Schritt 218 wird ein Prozessintegritätsversagen
berichtet, so dass eine Abhilfemaßnahme getroffen werden kann.
Wenn der Fehlerzählwert
den Schwellenwert jedoch nicht übersteigt,
dann werden in Schritt 220 das Abfolgefehler-Flag und das
Abfolgeabschluss-Flag in dem Speicher 26 gelöscht; in
Schritt 224 wird in dem Speicher 26 der erwartete
Schritt auf den ersten Schritt gesetzt, und der erwartete Schritttyp
wird auf "Start" gesetzt; und die
Dienstroutine endet in Schritt 226.
-
Fachleute
werden nun aus der vorangehenden Beschreibung erkennen, dass die
breiten Lehren der vorliegenden Erfindung auf eine Vielzahl von
Formen realisiert werden können.
Daher sollte, während diese
Erfindung in Verbindung mit bestimmten Beispielen hiervon beschrieben
wurde, der wahre Schutzumfang der Erfindung nicht so beschränkt sein,
da andere Abwandlungen für
den Fachmann auf ein Studieren der Zeichnungen, der Beschreibung
und der folgenden Ansprüche
hin ersichtlich werden.