PatentDe  


Dokumentenidentifikation DE60109215T2 12.01.2006
EP-Veröffentlichungsnummer 0001410168
Titel EFFIZIENTES VERWALTUNGSYSTEM EINES ZEITGEBERS
Anmelder International Business Machines Corp., Armonk, N.Y., US
Erfinder DAMON, Philipe, Winchester, US;
HEDDES, Marco, Winchester, US
Vertreter Teufel, F., Dipl.-Phys., Pat.-Anw., 70569 Stuttgart
DE-Aktenzeichen 60109215
Vertragsstaaten AT, BE, CH, CY, DE, DK, ES, FI, FR, GB, GR, IE, IT, LI, LU, MC, NL, PT, SE, TR
Sprache des Dokument EN
EP-Anmeldetag 27.09.2001
EP-Aktenzeichen 019700095
WO-Anmeldetag 27.09.2001
PCT-Aktenzeichen PCT/GB01/04322
WO-Veröffentlichungsnummer 0002027468
WO-Veröffentlichungsdatum 04.04.2002
EP-Offenlegungsdatum 21.04.2004
EP date of grant 02.03.2005
Veröffentlichungstag im Patentblatt 12.01.2006
IPC-Hauptklasse G06F 9/00(2006.01)A, F, I, ,  ,  ,   

Beschreibung[de]
TECHNISCHES GEBIET

Die vorliegende Erfindung betrifft das Gebiet der Verwaltung von Zeitgebern in Datenverarbeitungssystemen und insbesondere ein Zeitgeberverwaltungssystem, das sowohl in einem synchronen als auch in einem asynchronen System verwendet wird.

HINTERGRUNDINFORMATIONEN

Ein Zeitgeber ist eine Einheit, die eingestellt werden kann, um eine Unterbrechungs- oder eine Zeitlimitüberschreitungsmeldung zu einem spezifischen Zeitpunkt oder nach einem ausgewählten Zeitraum zu liefern. Zeitgeber werden in Datenverarbeitungssystemen benötigt, in denen typische Protokolle es erforderlich machen, dass eine sehr große Anzahl von gleichzeitig stattfindenden Tasks oder Ereignissen überwacht werden müssen, um zu erkennen, ob sie innerhalb festgelegter Zeitspannen stattfanden. Beispielsweise kann von der Anwendung ein Startvorgang zum Starten des Zeitgebers übertragen werden, um ein entsprechendes Ereignis zu überwachen. Wenn die Überwachung eines Ereignisses aus unterschiedlichen Gründen unterbrochen werden muss, kann von der entsprechenden Anwendung ein Stoppvorgang erzeugt werden. Nach einer bestimmten Zeit kann eine Anforderung nach einem erneuten Start der Überwachung des entsprechenden Ereignisses erfolgen, wobei in diesem Fall von der Anwendung ein Startvorgang erzeugt werden kann. Obwohl der einem Ereignis zugeordnete Zeitgeber noch immer läuft, kann die Anwendung einen Neustartvorgang anfordern, um die zeitliche Steuerung des entsprechenden Ereignisses zu verzögern.

Ein Echtzeit-Betriebssystem (RTOS), z.B. VxWorksTM, OSE, Lynx, in einem Datenverarbeitungssystem ist eine grundlegende Software für die Hilfsmittelprogrammverwaltung (tool management) der Hardware und Software des Systems und stellt Hardwareressourcen-Verwaltungsfunktionen bereit, z.B. die Speicherverwaltung, die Taskverwaltung, die Datenein-/ausgabeverwaltung, und eine Benutzerschnittstelle zur Bearbeitung einer Bildschirmanzeige und zur Betätigung einer Maus bereit. Zu einem Betriebssystem kann außerdem ein Modul gehören, beispielsweise ein Zeitgeberverwaltungsprogramm, d.h. ein Zeitgeberverwaltungssystem, um eine Vielzahl von Zeitgebern zu verwalten, die von einem Anwendungsprogramm in einem Datenverarbeitungssystem gestartet, gestoppt, deaktiviert usw. werden. Anwendungsprogramme, z.B. eine Textverarbeitungssoftware, eine Datenbanksoftware, eine Tabellenkalkulationssoftware, befinden sich am Anfang des Betriebssystems in der obersten Schicht einer hierarchischen Softwareanordnung.

Zeitgeberverwaltungssysteme nach dem Stand der Technik werden in synchronen oder asynchronen Datenverarbeitungssystemen, d.h. Einzel- oder Mehraufgabensystemen, verwendet. Wenn der Zeitgeber in einem synchronen System abläuft, wird die Anwendung, d.h. der Benutzer des Zeitgebers, durch eine allgemein als Zeitgebernachricht bezeichnete Nachricht benachrichtigt. Wenn der Zeitgeber in einem asynchronen System abläuft, kann die Zeitgebernachricht in einer Warteschlange gespeichert werden, bevor sie an die Anwendung, d.h. den Benutzer des Zeitgebers, übertragen wird. Falls die Anwendung den Zeitgeber vor dem Empfang einer Zeitgebernachricht stoppt, kehrt der Zeitgeber zurück in den inaktiven Status. Einige Betriebssysteme gestatten es jedoch nicht, dass Zeitgebernachrichten aus der Warteschlange entnommen werden, wenn die Anwendung vor dem Empfang der Zeitgebernachricht einen Vorgang mit dem abgelaufenen Zeitgeber ausführt. In der Folge kennzeichnet eine spezielle Statusvariable in der Zeitgebernachricht die Tatsache, dass es sich um eine unzulässige Zeitlimitüberschreitungsnachricht handelt. In einem synchronen System tritt dieses Problem nicht auf.

In der US-Patentschrift A-5 621 892 wird ein für ein Hochleistungsnetz entwickelter Zeitsteuerungsmechanismus gezeigt, wobei viele der Zeitgeber vor dem Ablauf abgebrochen oder zurückgesetzt werden.

Daher wäre es wünschenswert, ein Zeitgeberverwaltungssystem zu entwickeln, das sowohl in einem synchronen als auch in einem asynchronen System verwendet wird, wobei eine asynchrone Anwendung den Zeitgeber in einem asynchronen System synchron bearbeitet. Es wäre wünschenswert, eine Funktion zum Filtern dieser unzulässigen Zeitlimitüberschreitungsnachrichten zu entwickeln, die für die Anwendung transparent sind. Außerdem wäre es wünschenswert, die erneute Initialisierung eines Zeitgebers ohne die Zuordnung von neuem Systemspeicher zu ermöglichen.

ZUSAMMENFASSUNG

Die oben umrissenen Probleme können in einigen Ausführungsformen zumindest teilweise durch eine Bearbeitungsfunktion gelöst werden, die es einer asynchronen Anwendung in einem Mehraufgabensystem, d.h. einem asynchronen System, ermöglicht, den Zeitgeber synchron zu bearbeiten. Das heißt, wenn ein Zeitgeber in einem asynchronen System das Zeitlimit überschreitet, filtert die Bearbeitungsfunktion die unzulässigen Zeitlimitüberschreitungsnachrichten, indem sie es ermöglicht, dass die asynchrone Anwendung den Zeitgeber synchron bearbeitet.

Unter einem Aspekt stellt die Erfindung ein Zeitgeberverwaltungssystem bereit, wie es in Anspruch 1 beansprucht wird.

Unter einem zweiten Aspekt stellt die Erfindung ein Verfahren zur Verwaltung von Zeitgebern bereit, wie es in Anspruch 7 beansprucht wird.

In einer Ausführungsform der vorliegenden Erfindung kann ein Zeitgeber von demselben zugeordneten Speicherblock aus erneut initialisiert werden, der zum Erzeugen des Zeitgebers verwendet wurde. In einer anderen Ausführungsform der vorliegenden Erfindung kann eine Zeitlimitüberschreitungsnachricht unter Verwendung desselben zugeordneten Speicherblocks übertragen werden, der zum Erzeugen des Zeitgebers verwendet wurde.

KURZE BESCHREIBUNG DER ZEICHNUNGEN

Nun werden bevorzugte Ausführungsformen der Erfindung beispielhaft ausführlicher beschrieben, wobei auf die begleitenden Zeichnungen Bezug genommen wird, in denen:

1 ein gemäß der vorliegenden Erfindung konfiguriertes Datenverarbeitungssystem darstellt;

2 eine Ausführungsform eines Zeitgeberverwaltungssystems darstellt;

3 eine Ablaufsteuereinheit ist, die ein Zeitgeberverwaltungssystem der vorliegenden darstellt, wobei eine asynchrone Anwendung den Zeitgeber in einem asynchronen System synchron bearbeitet; und

4 eine Ausführungsform einer Datenstruktur einer Zeitlimitüberschreitungsnachricht darstellt.

AUSFÜHRLICHE BESCHREIBUNG

Die vorliegende Erfindung umfasst ein Zeitgeberverwaltungssystem und ein Verfahren zum Verwalten von Zeitgebern sowohl in einem synchronen als auch in einem asynchronen System. In einer Ausführungsform der vorliegenden Erfindung umfasst ein Zeitgeberverwaltungssystem eine Anwendungsprogrammschnittstelle (API) zur Bereitstellung eines Satzes von synchronen Funktionen, die es einer Anwendung ermöglichen, den Zeitgeber funktionell zu bedienen. Außerdem umfasst das Zeitgeberverwaltungssystem eine Zeitgeberdatenbank zum Speichern von mit dem Zeitgeber zusammenhängenden Daten. Des Weiteren umfasst das Zeitgeberverwaltungssystem Zeitgeberdienste (timer services) zum Erkennen des Ablaufens des Zeitgebers. Eine Bearbeitungsfunktion der Zeitgeberdienste ermöglicht es einer asynchronen Anwendung, d.h. einer Anwendung in einem Mehraufgabensystem, den Zeitgeber synchron zu bearbeiten. Das heißt, wenn ein Zeitgeber in einem asynchronen System das Zeitlimit überschreitet, ermöglicht es die Bearbeitungsfunktion, dass die asynchrone Anwendung den abgelaufenen Zeitgeber bearbeitet, ohne eine unzulässige Zeitlimitüberschreitungsnachricht zu bewirken. In einer anderen Ausführungsform der vorliegenden Erfindung kann ein Zeitgeber von demselben zugeordneten Speicherblock aus erneut initialisiert werden, der zum Erstellen des Zeitgebers verwendet wurde. In einer anderen Ausführungsform der vorliegenden Erfindung kann eine Zeitlimitüberschreitungsnachricht unter Verwendung desselben zugeordneten Speicherblocks übertragen werden, der zum Erzeugen des Zeitgebers verwendet wurde.

1 – Computersystem

1 stellt eine typische Hardwarekonfiguration des Datenverarbeitungssystems 13 dar, die stellvertretend für eine Hardwareumgebung zur Ausführung der vorliegenden Erfindung ist. Das Datenverarbeitungssystem 13 hat eine Zentraleinheit (CPU) 10, beispielsweise einen herkömmlichen Mikroprozessor, der durch den Systembus 12 mit verschiedenen anderen Komponenten verbunden ist. Ein Echtzeit-Betriebssystem 40, z.B. VxWorksTM, OSE, Lynx, wird in der CPU 10 ausgeführt und stellt eine Steuerung bereit und koordiniert die Funktion der verschiedenen Komponenten von 1. Wie im Abschnitt "Hintergrundinformationen" dargelegt wurde, kann sich ein Zeitgeberverwaltungsprogramm, d.h. ein Zeitgeberverwaltungssystem, in einem Modul im Betriebssystem 40 befinden. In einer anderen Ausführungsform kann eine Anwendung 42, z.B. ein Zeitgeberverwaltungssystem, in Verbindung mit dem Betriebssystem 40 ausgeführt werden und Ausgabeaufrufe an das Betriebssystem 40 übertragen, das die verschiedenen von der Anwendung 42 auszuführenden Funktionen bereitstellt. Ein Nur-Lese-Speicher (ROM) 16 ist mit dem Systembus 12 verbunden und beinhaltet ein Basic Input/Output System ("BIOS"), das bestimmte Grundfunktionen des Datenverarbeitungssystems 13 steuert. Außerdem sind ein Arbeitsspeicher (RAM) 14, ein E/A-Adapter 18 und ein Datenübertragungsadapter 34 mit dem Systembus 12 verbunden. Es sei darauf hingewiesen, dass Softwarekomponenten, darunter das Betriebssystem 40 und die Anwendung 42, in den RAM 14 geladen werden, der der Hauptspeicher des Computersystems ist. Der E/A-Adapter 18 kann ein Small Computer System Interface- ("SCSI"-) Adapter sein, der mit Platteneinheiten 20 und Bandlaufwerken 40 kommuniziert. Der Datenübertragungsadapter 34 verbindet den Bus 12 mit einem Außennetz, das die Kommunikation des Datenverarbeitungssystems 13 mit anderen solchen Systemen ermöglicht. Außerdem sind Ein-/Ausgabeeinheiten über einen Benutzerschnittstellenadapter 22 und einen Anzeigeadapter 36 mit dem Systembus 12 verbunden. Ein Anzeigemonitor 38 ist durch den Anzeigeadapter 36 mit dem Systembus 12 verbunden. Auf diese Weise kann ein Benutzer über eine Tastatur 24 oder eine Maus 26 eine Eingabe in das System 13 ausführen und über die Anzeige 38 eine Ausgabe vom System 13 empfangen.

Zu bevorzugten Ausführungsformen der Erfindung gehören Ausführungen wie beispielsweise ein Computersystem, das zum Ausführen des hierin beschriebenen Verfahrens oder der hierin beschriebenen Verfahren programmiert wurde, und auch ein Computerprogrammprodukt, das einen auf einem maschinenlesbaren Aufzeichnungsmedium aufgezeichneten Programmcode umfasst. Gemäß den Computersystemausführungen befinden sich Befehlssätze zum Ausführen des Verfahrens bzw. der Verfahren im Arbeitsspeicher 14 von einem oder mehreren Computersystemen, die allgemein gemäß der obigen Beschreibung konfiguriert sind. Bis sie vom Computersystem benötigt werden, können die Befehlssätze als Computerprogrammprodukt in einem anderen Computerspeicher gespeichert werden, beispielsweise im Plattenlaufwerk 20 (das einen austauschbaren Speicher, beispielsweise eine optische Platte oder eine Diskette, zur möglichen Verwendung im Plattenlaufwerk 20 enthalten kann). Außerdem kann das Computerprogrammprodukt auch in einem anderen Computer gespeichert und auf Wunsch über ein Netz oder über ein externes Netz, beispielsweise das Internet, zum Arbeitsplatzrechner des Benutzers übertragen werden. Fachleute würden verstehen, dass der physische Speicher der Befehlssätze das Medium, auf dem sie gespeichert sind, physisch ändert, so dass das Medium computerlesbare Daten überträgt. Die Änderung kann elektrisch, magnetisch, chemisch oder eine andere physische Änderung sein.

2 – Zeitgeberverwaltungssystem

2 stellt eine Ausführungsform eines Zeitgeberverwaltungssystems 200 dar. Wie im Abschnitt "Hintergrundinformationen" dargelegt wurde, kann ein Betriebssystem ein Modul enthalten, das das Zeitgeberverwaltungssystem 200 umfasst. Das Betriebssystem befindet sich normalerweise im Kern des Datenverarbeitungssystems 13. In einer anderen Ausführungsform kann ein Zeitgeberverwaltungssystem 200 ein Anwendungsprogramm sein, das sich unabhängig vom Betriebssystem in der obersten Schicht einer typischen hierarchischen Softwareanordnung befindet.

Das Zeitgeberverwaltungssystem 200 umfasst eine Anwendungsprogrammschnittstelle (API) 220, eine Zeitgeberdatenbank 230 und eine Zeitgeberdienstekomponente 240. Die API 220 ermöglicht es, dass eine oder mehrere Softwareanwendungen 210 Zeitgeber in einem Datenverarbeitungssystem 13 funktionell bedienen, z.B. starten, stoppen, erneut starten oder löschen. Es sei darauf hingewiesen, dass die Softwareanwendungen 210, die Zeitgeberverwaltungssystemdienste verwenden, der Einfachheit halber als "Benutzer" bezeichnet werden können. Die API 220 stellt einen Satz von synchronen Funktionen zum Erzeugen, Starten, Stoppen und Löschen eines Zeitgebers bereit. In einer Ausführungsform kann die API 220 eine Laufzeitbibliothek- (DLL-) Datei (dynamic-link library (DLL) file) sein. Eine DLL-Datei enthält eine oder mehrere Funktionen, die kompiliert, verbunden und gesondert von diese verwendenden Anwendungsprozessen gespeichert werden, und exportiert einen Code, der von Anwendungen gemeinsam genutzt werden kann. Außerdem ermöglicht der von der API 220 bereitgestellte Satz von synchronen Funktionen der bzw. den Benutzeranwendungen den Zugriff auf die Zeitgeberdatenbank 230. Die Zeitgeberdatenbank 230 kann ein Verwahrungsort für mit dem Zeitgeber zusammenhängende Daten sein, z.B. Zeitgeberdatensätze für erzeugte Zeitgeber. Es sei darauf hingewiesen, dass die Zeitgeberdatenbank 230 in einer beliebigen Form strukturiert sein kann, z.B. als Verbindungsliste oder Intervallliste.

Die Zeitgeberdienste 240, eine Betriebssystem-Task, erkennen den Ablauf von Zeitgebern, die jeder Anwendung 210 entsprechen, die einen Zeitgeber über die API 220 eingeleitet hat. Die Zeitgeberdienste 240 verwalten die Zeitgeberdatenbank 230 und fragen diese nach abgelaufenen Zeitgebern ab. Die Abfrage der Zeitgeberdatenbank 230 kann in regelmäßigen Zeitintervallen ausgeführt werden. Falls der Zeitgeber abgelaufen ist, ergreifen die Zeitgeberdienste 240 eine geeignete Maßnahme in Abhängigkeit davon, ob das Zeitgeberverwaltungssystem in einem Einzelaufgabensystem (single-task system) oder einem Mehraufgabensystem (multi-task system) realisiert wurde. In einem Einzelaufgabensystem, d.h. einem synchronen System, wie es an späterer Stelle ausführlicher beschrieben wird, rufen die Zeitgeberdienste 240 eine Zeitlimitüberschreitungsfunktion zum Übertragen einer Zeitlimitüberschreitungsnachricht an die Benutzeranwendung 210 auf. In einem Mehraufgabensystem, d.h. einem asynchronen System, wie es an späterer Stelle ausführlicher beschrieben wird, übertragen die Zeitgeberdienste 240 eine Zeitlimitüberschreitungsnachricht an die Task der Anwendung, falls der Zeitgeber abgelaufen ist. Die übertragene Zeitlimitüberschreitungsnachricht ist derselbe Speicherblock wie der bei der Erzeugung des Zeitgebers zugeordnete der Speicherblock, wie in Verbindung mit 3 näher beschrieben wird. Wie im Abschnitt "Hintergrundinformationen" dargelegt wurde, kann die Zeitgebernachricht in einem Mehraufgabensystem in einer Warteschlange gespeichert werden, bevor sie an die Anwendung 210 übertragen wird. Falls die Anwendung 210 den Zeitgeber vor dem Empfang einer Zeitgebernachricht stoppt, geht der Zeitgeber zurück in den inaktiven Status. Einige Betriebssysteme ermöglichen es jedoch nicht, dass Zeitgebernachrichten aus der Warteschlange entfernt werden, wenn die Anwendung 210 vor dem Empfang der Zeitgebernachricht einen Vorgang mit dem abgelaufenen Zeitgeber ausführt. In der Folge kennzeichnet eine spezielle Statusvariable in der Zeitgebernachricht die Tatsache, dass es sich um eine unzulässige Zeitlimitüberschreitungsnachricht handelt. Eine ausführliche Erläuterung der Vermeidung unzulässiger Zeitlimitüberschreitungsnachrichten durch das Zeitgeberverwaltungssystem 200, indem es einer asynchronen Anwendung 210 ermöglicht, den Zeitgeber in einem asynchronen System synchron zu bearbeiten, wird an späterer Stelle bereitgestellt. Außerdem wird an späterer Stelle ausführlich erläutert, wie das Zeitgeberverwaltungssystem 200 die erneute Initialisierung eines Zeitgebers ohne die Zuordnung von neuem Systemspeicher ermöglicht.

3 – Veranschaulichung der Ablaufsteuereinheit des Zeitgeberverwaltungssystems

3 stellt eine Ausführungsform der vorliegenden Erfindung einer Ablaufsteuereinheit 300 dar, die beim Betrieb des Zeitgeberverwaltungssystems 200 verwendet werden kann. Die Ablaufsteuereinheit 300 stellt ein Zeitgeberverwaltungssystem 200 dar, das Zeitgeber sowohl für ein Einzelaufgabensystem, d.h. ein synchrones System, als auch für ein Mehraufgabensystem, d.h. ein asynchrones System, gleichzeitig verwaltet. Die Ablaufsteuereinheit 300 beinhaltet eine Einzelaufgaben-Ablaufsteuereinheit 301 und eine Mehraufgaben-Ablaufsteuereinheit 302. Die Status der Einzelaufgaben-Ablaufsteuereinheit 301 umfassen die Status 303, 304 und 305. Die Status der Mehraufgaben-Ablaufsteuereinheit 302 umfassen die Status 306, 307, 308 und 309.

Mit Bezugnahme auf 3 verbleibt die Ablaufsteuereinheit 300 im Status 303 "nichtvorhanden" ("NE"), bis ein Zeitgeber erzeugt wird. Das heißt, der Status 303 stellt einen Status dar, in dem ein Zeitgeber nichtvorhanden ist. Wenn ein Zeitgeber erzeugt wird ("C"), geht die Ablaufsteuereinheit 300 vom Status 303 in den Status 304 über. Der Status 304 stellt einen Status dar, in dem ein Zeitgeber erzeugt wird und zur Initialisierung bereit ist. Das heißt, der Zeitgeber ist inaktiv ("I"). In einer Ausführungsform erzeugen die Zeitgeberdienste 240 einen Zeitgeber von einem Speicherblock aus. Der zur Erzeugung des Zeitgebers zugeordnete Speicherblock kann sodann in der Zeitgeberdatenbank 230 gespeichert werden. Eine Beschreibung des zur Erzeugung des Zeitgebers zugeordneten Speicherblocks wird an späterer Stelle in Verbindung mit der Datenstruktur der Zeitlimitüberschreitungsnachricht gegeben.

Falls der Zeitgeber gelöscht wird ("D"), während er sich im Status 304 befindet, geht die Ablaufsteuereinheit 300 vom Status 304 in den Status 303 über. Falls der Zeitgeber aktiviert wird ("A"), während er sich im Status 304 befindet, geht die Ablaufsteuereinheit 300 vom Status 304 in den Status 305 über. Der Status 305 stellt einen Status dar, in dem der zuvor erzeugte Zeitgeber läuft ("R"). Falls der Zeitgeber gelöscht wird, während er sich im Status 305 befindet, geht die Ablaufsteuereinheit 300 vom Status 305 in den Status 303 über. Falls der laufende Zeitgeber gestoppt wird ("0"), geht die Ablaufsteuereinheit 300 vom Status 305 in den Status 304 über. Falls der Zeitgeber im Status 304 nicht gelöscht wird, sondern stattdessen aktiviert wird, wird der Zeitgeber ohne die Zuordnung von neuem Systemspeicher, d.h. unter Verwendung desselben Systemspeichers, erneut initialisiert, d.h. erneut gestartet. Falls der Zeitgeber im Status 305 abläuft, wird eine Zeitlimitüberschreitungsnachricht ("Ts") synchron an die Anwendung 210 übertragen, und die Ablaufsteuereinheit 300 geht vom Status 305 in den Status 303 über.

Wie oben dargelegt wurde, ist eine übertragene Zeitlimitüberschreitungsnachricht derselbe Speicherblock wie der bei der Erzeugung des Zeitgebers zugeordnete Speicherblock. Der Grund hierfür besteht darin, dass die den Zeitgeber erzeugende Prozedur zusätzlichen Speicherbereich zur Verwendung durch die Zeitgeberdienste 240 erzeugt, was für die Anwendung 210 nicht erkennbar ist. Eine Zeichnung einer Ausführungsform einer Datenstruktur 400 der Zeitlimitüberschreitungsnachricht wird in 4 dargestellt. Eine Zeitlimitüberschreitungsnachricht kann mindestens zwei verschiedene Teile umfassen. Ein Anwendungsteil 410 kann mit der Anwendung 210 zusammenhängende Daten umfassen. In einem Einzelaufgabensystem kann der Anwendungsteil 410 die Zeitlimitüberschreitungsfunktion und ein Kontextfeld umfassen, die der Anwendung 210 zugeordnet sind. In einem Mehraufgabensystem kann der Anwendungsteil 410 dasselbe Kontextfeld sowie Daten umfassen, die zur Kennzeichnung der Anwendung 210 notwendig sind, z.B. eine Warteschlange zum Übertragen der Nachricht, eine Anwendungstaskkennung. Ein Zeitgeberdiensteteil 420 kann einige zusätzliche Felder umfassen, z.B. Zeiger auf in der Zeitgeberdatenbank 230 gespeicherte Speicheradressen. Der Zeitgeberdiensteteil 420 ist für die Anwendung 210 nicht erkennbar.

Mit Bezugnahme auf 3 kann die Anwendung 210 irrtümlicherweise annehmen, dass der Zeitgeber sich in einem anderen als dem tatsächlichen Zustand befindet. Beispielsweise kann die Anwendung 210 fälschlicherweise annehmen, dass der Zeitgeber läuft, wenn er tatsächlich inaktiv im Status 304 ist. Die Anwendung 210 kann sodann den Zeitgeber im inaktiven Status stoppen, was durch die bogenförmige Linie beim Status 304 dargestellt wird. Außerdem kann die Anwendung 210 fälschlicherweise annehmen, dass der Zeitgeber inaktiv ist, wenn er tatsächlich im Status 305 läuft. Die Anwendung 210 kann den Zeitgeber sodann im laufenden Status aktivieren, was durch die bogenförmige Linie beim Status 305 dargestellt wird.

In einem Mehraufgabensystem, d.h. einem asynchronen System, wird eine Zeitlimitüberschreitungsnachricht an die Task der Anwendung übertragen. Wie im Abschnitt "Hintergrundinformationen" dargelegt wurde, kann die Zeitgebernachricht vor der Übertragung an die Anwendung 210 in einer Warteschlange gespeichert werden, wenn der Zeitgeber in einem asynchronen System abläuft. Falls die Anwendung 210 den Zeitgeber vor dem Empfang einer Zeitgebernachricht stoppt, geht der Zeitgeber zurück in den inaktiven Status. Einige Betriebssysteme gestatten es jedoch nicht, dass Zeitgebernachrichten aus der Warteschlange entnommen werden, wenn die Anwendung 210 vor dem Empfang der Zeitgebernachricht einen Vorgang mit dem abgelaufenen Zeitgeber ausführt. In der Folge kennzeichnet eine spezielle Statusvariable in der Zeitgebernachricht die Tatsache, dass es sich um eine unzulässige Zeitlimitüberschreitungsnachricht handelt. An späterer Stelle wird eine Beschreibung eines Prozesses bereitgestellt, der diese unzulässigen Zeitlimitüberschreitungsnachrichten filtert, die für die Benutzeranwendung 210 transparent sind.

Wenn der Zeitgeber in einem asynchronen System im Status 305 abläuft, wird eine Zeitlimitüberschreitungsnachricht ("Tm") in eine Warteschlange gestellt. In einer Ausführungsform können die Zeitlimitüberschreitungsnachrichten Tm in einer mit der Anwendung 210 verbundenen Systemwarteschlange gespeichert werden. Es sei darauf hingewiesen, dass die die Zeitlimitüberschreitungsnachrichten Tm speichernde Warteschlange sich irgendwo im Systemspeicher befinden kann. Wenn der Zeitgeber in einem asynchronen System im Status 305 abläuft, geht die Ablaufsteuereinheit 300 vom Status 305 in den Status 306 über. Der Status 306 ist der abgelaufene Status ("E"), in dem der Zeitgeber nicht läuft und die Zeitlimitüberschreitungsnachricht Tm in eine Warteschlange gestellt wird. Sobald die Anwendung 210 die Zeitlimitüberschreitungsnachricht Tm empfängt, ermöglicht eine Bearbeitungsfunktion ("H") der für die Anwendung 210 transparenten Zeitgeberdienste 240, dass die Anwendung 210 in einem asynchronen System den Zeitgeber synchron bearbeitet. Das heißt, die Bearbeitungsfunktion versetzt die Ablaufsteuereinheit 300 aus einem Status in der Mehraufgaben-Ablaufsteuereinheit 302 in einen Status in der Einzelaufgaben-Ablaufsteuereinheit 301. Falls die Anwendung 210 beispielsweise die Zeitlimitüberschreitungsnachricht Tm empfängt, wenn die Ablaufsteuereinheit sich im Status 306 befindet, versetzt die Bearbeitungsfunktion die Ablaufsteuereinheit 300 vom Status 306 in der Mehraufgaben-Ablaufsteuereinheit 302 in den inaktiven Status 304 in der Einzelaufgaben-Ablaufsteuereinheit 301.

Falls die asynchrone Anwendung 210, d.h. die Anwendung eines asynchronen Systems, die in einer Warteschlange, z.B. in einer mit der Anwendung 210 verbundenen Systemwarteschlange, gespeicherte Zeitlimitüberschreitungsnachricht Tm nicht empfangen hat, weiß die asynchrone Anwendung 210 möglicherweise nicht, dass der Zeitgeber abgelaufen ist. Unter der Annahme, dass der Zeitgeber läuft, kann die asynchrone Anwendung 210 diesen fälschlicherweise stoppen. Die asynchrone Anwendung 210 kann sodann annehmen, dass der Zeitgeber sich im inaktiven Status befindet, wie durch einen Übergang vom Status 306 in den Status 307 dargestellt wird. Der Status 307 ist der Status ("IQ"), in dem der Zeitgeber sich im inaktiven Status und die Zeitlimitüberschreitungsnachricht Tm sich noch immer in einer Warteschlange befinden. Wenn die Zeitlimitüberschreitungsnachricht aus der Warteschlange entnommen wird, versetzt die für die asynchrone Anwendung 210 transparente Bearbeitungsfunktion die Ablaufsteuereinheit 300 vom Status 307 in der Mehraufgaben-Ablaufsteuereinheit 302 in den inaktiven Status 304 in der Einzelaufgaben-Ablaufsteuereinheit 301. Falls die asynchrone Anwendung 210 den Zeitgeber im Status 306 löscht, geht die Ablaufsteuereinheit 300 vom Status 306 in den Status 308 über. Der Status 308 ist der Status ("DQ"), in dem der Zeitgeber gelöscht wird und die Zeitlimitüberschreitungsnachricht Tm sich noch immer in einer Warteschlange befindet. Wenn die Zeitlimitüberschreitungsnachricht aus der Warteschlange entnommen wird, versetzt die für die asynchrone Anwendung 210 transparente Bearbeitungsfunktion die Ablaufsteuereinheit 300 vom Status 308 in der Mehraufgaben-Ablaufsteuereinheit 302 in den nichtvorhandenen Status 303 in der Einzelaufgaben-Ablaufsteuereinheit 301. Falls die asynchrone Anwendung 210 den Zeitgeber im Status 306 aktiviert, geht die Ablaufsteuereinheit 300 vom Status 306 in den Status 309 über. Der Status 309 ist der Status ("RQ"), in dem der Zeitgeber sich im laufenden Status und die Zeitlimitüberschreitungsnachricht Tm sich noch immer in einer Warteschlange befindet. Wenn die Zeitlimitüberschreitungsnachricht aus der Warteschlange entnommen wird, versetzt die für die asynchrone Anwendung 210 transparente Bearbeitungsfunktion die Ablaufsteuereinheit 300 vom Status 309 in der Mehraufgaben-Ablaufsteuereinheit 302 in den laufenden Status 305 in der Einzelaufgaben-Ablaufsteuereinheit 301.

Falls die asynchrone Anwendung 210 den Zeitgeber im Status 307 löscht, geht die Ablaufsteuereinheit 300 vom Status 307 in den Status 308 über. Wenn die Zeitlimitüberschreitungsnachricht aus der Warteschlange entnommen wird, versetzt die versetzt die Bearbeitungsfunktion die Ablaufsteuereinheit 300 vom Status 308 in der Mehraufgaben-Ablaufsteuereinheit 302 in den nichtvorhandenen Status 303 in der Einzelaufgaben-Ablaufsteuereinheit 301. Falls die asynchrone Anwendung 210 den Zeitgeber im Status 307 aktiviert, geht die Ablaufsteuereinheit 300 vom Status 307 in den Status 309 über. Wenn die Zeitlimitüberschreitungsnachricht aus der Warteschlange entnommen wird, versetzt die für die asynchrone Anwendung 210 transparente Bearbeitungsfunktion die Ablaufsteuereinheit 300 vom Status 309 in der Mehraufgaben-Ablaufsteuereinheit 302 in den laufenden Status 305 in der Einzelaufgaben-Ablaufsteuereinheit 301. Es sei darauf hingewiesen, dass der Zeitgeber im Falle einer erneuten Initialisierung, d.h. eines erneuten Starts, im Status 309 denselben zugeordneten Systemspeicher verwendet, der bei der Erzeugung des Zeitgebers im Status 304 verwendet wurde.

Falls die asynchrone Anwendung 210 den Zeitgeber im Status 309 stoppt, geht die Ablaufsteuereinheit 300 vom Status 309 in den Status 307 über. Wenn die Zeitlimitüberschreitungsnachricht aus der Warteschlange entnommen wird, versetzt die für die asynchrone Anwendung 210 transparente Bearbeitungsfunktion die Ablaufsteuereinheit 300 vom Status 307 in der Mehraufgaben-Ablaufsteuereinheit 302 in den inaktiven Status 304 in der Einzelaufgaben-Ablaufsteuereinheit 301. Falls die asynchrone Anwendung 210 den Zeitgeber im Status 309 löscht, geht die Ablaufsteuereinheit 300 vom Status 309 in den Status 308 über. Wenn die Zeitlimitüberschreitungsnachricht aus der Warteschlange entnommen wird, versetzt die für die asynchrone Anwendung 210 transparente Bearbeitungsfunktion die Ablaufsteuereinheit 300 vom Status 308 in der Mehraufgaben-Ablaufsteuereinheit 302 in den nichtvorhandenen Status 303 in der Einzelaufgaben-Ablaufsteuereinheit 301.

Wie in der Einzelaufgaben-Ablaufsteuereinheit 301 kann die asynchrone Anwendung 210 fälschlicherweise annehmen, dass der Zeitgeber in einem Status betrieben wird, in dem er sich nicht befindet. Beispielsweise kann die asynchrone Anwendung 210 irrtümlicherweise annehmen, dass der Zeitgeber läuft, wenn er tatsächlich inaktiv im Status 307 ist. Die asynchrone Anwendung 210 kann den Zeitgeber sodann im Status 307 stoppen, was durch die bogenförmige Linie beim Status 307 dargestellt wird. Außerdem kann die asynchrone Anwendung 210 irrtümlicherweise annehmen, dass der Zeitgeber inaktiv ist, wenn er tatsächlich im Status 309 läuft. Die asynchrone Anwendung 210 kann sodann den Zeitgeber im laufenden Status aktivieren, was durch die bogenförmige Linie beim Status 309 dargestellt wird.

Obwohl das Zeitgeberverwaltungssystem und -verfahren der vorliegenden Erfindung in Verbindung mit mehreren Ausführungsformen beschrieben wurden, ist es nicht vorgesehen, dass sie auf die hierin dargelegten spezifischen Formen begrenzt sind, sondern stattdessen ist es vorgesehen, solche Alternativen, Änderungen und Äquivalente mit einzuschließen, wenn diese angemessen in Wesensart und Umfang der Erfindung gemäß der Definition in den angehängten Ansprüchen aufgenommen werden können. Es sei darauf hingewiesen, dass die Überschriften lediglich zu organisatorischen Zwecken verwendet werden und nicht den Anwendungsbereich der Beschreibung oder der Ansprüche begrenzen sollen.


Anspruch[de]
  1. Zeitgeberverwaltungssystem (200) zur Verwaltung von Zeitgebern sowohl in einem synchronen als auch in einem asynchronen System, das Folgendes umfasst:

    eine Anwendungsprogrammschnittstelle (API) (220), die einen Satz von synchronen Funktionen bereitstellt, die es ermöglichen, dass eine asynchrone Anwendung (210) einen Zeitgeber funktionell bedient;

    eine Zeitgeberdatenbank (230) zum Speichern von mit dem Zeitgeber zusammenhängenden Daten; und

    eine Zeitgeberdienstekomponente (240) zum Erkennen des Ablaufs des Zeitgebers, wobei die Zeitgeberdienstekomponente Folgendes umfasst:

    eine Bearbeitungsfunktion, um auf das synchrone Bedienen des Zeitgebers durch die asynchrone Anwendung vor dem asynchronen Empfang einer Meldung über den Ablauf des Zeitgebers hin den Status des Zeitgebers in den Status zu versetzen, der sich aus dem Arbeitsgang der asynchronen Anwendung bei nicht abgelaufenem Zeitgeber ergibt, wodurch es ermöglicht wird, dass die asynchrone Anwendung einen abgelaufenen Zeitgeber bearbeitet, ohne eine unzulässige Zeitlimitüberschreitungsnachricht zu bewirken.
  2. Zeitgeberverwaltungssystem nach Anspruch 1, wobei die Anwendung über die API die folgenden Arbeitsgänge mit dem Zeitgeber ausführt:

    Erstellen des Zeitgebers aus einem zugeordneten Systemspeicherblock;

    Aktivieren des Zeitgebers; und

    erneutes Initialisieren des Zeitgebers unter Verwendung des zugeordneten Systemspeicherblocks.
  3. Zeitgeberverwaltungssystem nach Anspruch 1, wobei die Anwendung über die API die folgenden Arbeitsgänge mit dem Zeitgeber ausführt:

    Erstellen des Zeitgebers aus einem zugeordneten Systemspeicherblock; und

    Aktivieren des Zeitgebers;

    wobei der Zeitgeber abläuft und die Zeitgeberdienstekomponente synchron eine Zeitlimitüberschreitungsnachricht an die Anwendung überträgt, wobei die Zeitlimitüberschreitungsnachricht unter Verwendung des zugeordneten Systemspeicherblocks übertragen wird.
  4. Zeitgeberverwaltungssystem nach Anspruch 1, wobei die Anwendung über die API die folgenden Arbeitsgänge mit dem Zeitgeber ausführt:

    Erstellen des Zeitgebers aus einem zugeordneten Systemspeicherblock; und

    Aktivieren des Zeitgebers;

    wobei der Zeitgeber abläuft und die Zeitgeberdienstekomponente eine Zeitlimitüberschreitungsnachricht an eine bestimmte Warteschlange überträgt und der Zeitgeber in einer asynchronen Ablaufsteuereinheit in einen abgelaufenen Status versetzt wird.
  5. Zeitgeberverwaltungssystem nach Anspruch 4, wobei die bestimmte Warteschlange eine mit der Anwendung verbundene Systemwarteschlange ist.
  6. Zeitgeberverwaltungssystem nach Anspruch 4 oder Anspruch 5, wobei auf den Empfang der Zeitlimitüberschreitungsnachricht durch die Anwendung hin die Bearbeitungsfunktion den Zeitgeber vom abgelaufenen Status in der asynchronen Ablaufsteuereinheit in einen inaktiven Status in einer synchronen Ablaufsteuereinheit versetzt, wobei die Bearbeitungsfunktion es ermöglicht, dass die Anwendung den Zeitgeber synchron bearbeitet.
  7. Verfahren zum Verwalten von Zeitgebern sowohl in einem synchronen als auch einem asynchronen System, wobei das Verfahren die folgenden Schritte umfasst:

    Ausführen von Arbeitsgängen mit einem Zeitgeber im Auftrag einer asynchronen Anwendung (210) über eine Anwendungsprogrammierschnittstelle (API) (220), die einen Satz von synchronen Funktionen bereitstellt, die es ermöglichen, dass die asynchrone Anwendungen einen Zeitgeber funktionell bedient;

    Speichern von mit dem Zeitgeber zusammenhängenden Daten in einer Datenbank (230);

    Erkennen des Ablaufs des Zeitgebers;

    auf den Empfang einer Anforderung von der asynchronen Anwendung zum Ausführen eines synchronen Arbeitsgangs mit dem Zeitgeber vor dem Empfang einer Meldung des Ablaufs des Zeitgebers durch die asynchrone Anwendung hin Versetzen des Status des Zeitgebers in den Status, der sich aus dem Arbeitsgang der asynchronen Anwendung bei nicht abgelaufenem Zeitgeber ergeben würde, wodurch es ermöglicht wird, dass die asynchrone Anwendung einen abgelaufenen Zeitgeber bearbeitet, ohne eine unzulässige Zeitlimitüberschreitungsnachricht zu bewirken.
  8. Verfahren nach Anspruch 7, das außerdem den folgenden Schritt umfasst:

    Übertragen einer Zeitlimitüberschreitungsnachricht an eine mit der Anwendung verbundene Systemwarteschlange, wenn der Zeitgeber abläuft.
  9. Verfahren nach Anspruch 7 oder Anspruch 8, wobei der Schritt des Bearbeitens der Zeitlimitüberschreitungsnachricht außerdem den folgenden Schritt umfasst:

    auf den Empfang der Zeitlimitüberschreitungsnachricht durch die Anwendung hin Versetzen des Zeitgebers aus dem abgelaufenen Status in der asynchronen Ablaufsteuereinheit in einen inaktiven Status in einer synchronen Ablaufsteuereinheit, wodurch es ermöglicht wird, dass die Anwendung den Zeitgeber synchron bearbeitet.
  10. Verfahren nach irgendeinem der Ansprüche 7 bis 9, das außerdem den folgenden Schritt umfasst:

    auf das Stoppen des Zeitgebers durch die Anwendung hin Versetzen des Zeitgebers in einen inaktiven Status in der asynchronen Ablaufsteuereinheit, wobei die Zeitlimitüberschreitungsnachricht in eine Warteschlange gestellt wird.
  11. Verfahren nach Anspruch 10, wobei auf das Entnehmen der Zeitlimitüberschreitungsnachricht aus der Warteschlange der Schritt des Bearbeitens der Zeitlimitüberschreitungsnachricht den Zeitgeber aus dem inaktiven Status in der asynchronen Ablaufsteuereinheit in einen inaktiven Status in einer synchronen Ablaufsteuereinheit versetzt, wodurch es ermöglicht wird, dass die Anwendung den Zeitgeber synchron bearbeitet.
  12. Verfahren nach Anspruch 10 oder Anspruch 11, das außerdem den folgenden Schritt umfasst:

    Löschen des Zeitgebers im Auftrag der Anwendung, wobei der Zeitgeber in einen Status in der asynchronen Ablaufsteuereinheit versetzt wird, in dem der Zeitgeber gelöscht und die Zeitlimitüberschreitungsnachricht in eine Warteschlange gestellt wird, und wenn die Zeitlimitüberschreitungsnachricht aus der Warteschlange entnommen wird, setzt der Schritt des Bearbeitens der Zeitlimitüberschreitungsnachricht den Zeitgeber aus dem Status in der asynchronen Ablaufsteuereinheit, in dem der Zeitgeber gelöscht und die Zeitlimitüberschreitungsnachricht in eine Warteschlange gestellt wird, in einen nichtvorhandenen Status in einer synchronen Ablaufsteuereinheit, wodurch es ermöglicht wird, dass die Anwendung den Zeitgeber synchron bearbeitet.
  13. Verfahren nach irgendeinem der Ansprüche 10 bis 12, das außerdem den folgenden Schritt umfasst:

    Aktivieren des Zeitgebers im Auftrag der Anwendung, wobei der Zeitgeber in einen Betriebsstatus in der asynchronen Ablaufsteuereinheit versetzt wird, wobei die Zeitlimitüberschreitungsnachricht in eine Warteschlange gestellt wird.
  14. In einem computerlesbaren Speichermedium gespeichertes Computerprogramm, um bei Ausführung in einem Computersystem das Computersystem anzuweisen, das Verfahren nach irgendeinem vorhergehenden Verfahrensanspruch auszuführen.
Es folgen 4 Blatt Zeichnungen






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com