-
VERWANDTE ANMELDUNGEN
-
Die vorliegende Erfindung betrifft den Gegenstand der folgenden gemeinsam übertragenen, ebenfalls anhängigen US-Patentanmeldungen mit dem Titel ”CALENDAR BASED POWER MANAGEMENT”, Seriennummer 09/343 628, eingereicht am 30. Juni 1999, ”CALENDAR-INDUCED DESKTOP SECURITY”, Seriennummer 09/343 629, eingereicht am 30. Juni 1999. Der Inhalt der vorstehend in Bezug genommenen Anwendungen ist durch Bezugnahme Bestandteil hiervon.
-
DER ERFINDUNG ZUGRUNDE LIEGENDER ALLGEMEINER STAND DER TECHNIK
-
1. Bereich der Technik:
-
Die vorliegende Erfindung betrifft allgemein die periodische oder sich wiederholende Programmausführung in Datenverarbeitungssystemen und insbesondere die für den Benutzer des Datenverarbeitungssystems vorgenommene und in Abstimmung mit einem Benutzerkalender erfolgende periodische oder sich wiederholende Programmausführung in einem Datenverarbeitungssystem.
-
2. Beschreibung der verwandten Technik:
-
Die derzeitige Technologie zur Durchführung von periodischen Operationen wie zum Beispiel sich wiederholende Herunterladeoperationen, Datensicherungsoperationen oder Virusprüfungen in Personal Computern wird mit Hilfe eines Zeitplanungsprogramms durchgeführt. Das Zeitplanungsprogramm erhält als Eingabe typischerweise die gewünschte Häufigkeit einer Operation und wird beim Systemstart für den Betrieb im Hintergrundmodus gestartet. Unter Verwendung der Uhrzeit des Systems und der Datumseinstellungen stellt der Zeitplaner fest, ob die angegebene Zeitspanne verstrichen ist, und wenn sie verstrichen ist, beginnt er mit der Ausführung der entsprechenden Task.
-
Sobald sie einmal terminiert wurde, findet die Ausführung einer periodisch ausgeführten Task normalerweise ungeachtet der Art und Weise, in der der Rechner gerade benutzt wird, und ungeachtet des Verhaltens des Endbenutzers statt. Zum Beispiel kann das typische tägliche Herunterladen einer Webzeitung morgens an jedem Wochentag, aber nicht an Wochenenden stattfinden. Wenn der Benutzer unter der Woche geschäftlich unterwegs ist, leitet der Zeitplaner dennoch die Ausführung von Programmen ein, um die Zeitung herunterzuladen, obwohl niemand da ist, um die heruntergeladene Zeitung zu lesen.
-
Ein weiteres Beispiel beinhaltet die Durchführung einer Virusprüfung in vorher festgelegten Intervallen, zum Beispiel wöchentlich. Typischerweise wird die Virusprüfung ungeachtet der Nutzung des Rechners durchgeführt. Wenn der Rechner somit ausgeschaltet war, als das entsprechende Intervall verstrichen war, läuft die Virusprüfung möglicherweise ein paar Minuten, wenn das System das nächste Mal wieder eingeschaltet wird. Wenn der Benutzer den Rechner zu diesem Zeitpunkt nutzt (was wahrscheinlich ist), nimmt die Virusprüfung, obwohl sie im Hintergrund läuft, Prozessorzyklen in Anspruch, die stattdessen der Task des Benutzers zugeordnet werden könnten, wodurch die Leistung für die Dauer der Virusprüfung beeinträchtigt wird.
-
Andere Probleme gibt es auch bei den derzeitigen periodischen Ausführungsverfahren. Die nicht notwendige Ausführung bestimmter Programme wie zum Beispiel periodischer Herunterlade- und Sicherungsoperationen führt zu zusätzlichem, unnötigem Netzverkehr. Systeme nur zum Zweck der Ausführung terminierter Programme wie zum Beispiel Virusprüfungen, Herunterlade- oder Sicherungsoperationen laufen zu lassen, ist Energieverschwendung. Diagnosenachrichten, die während der terminierten Ausführung einer Operation erscheinen, wenn der Benutzer nicht anwesend ist, führen lediglich zu einer Unterbrechung des Systembetriebs, da niemand da ist, der reagieren oder manuell eingreifen und Korrekturmaßnahmen ergreifen kann.
-
Es wäre deshalb wünschenswert, dass im Gegensatz zu der Situation, in der der Benutzer verfügbar und das System inaktiv ist, eine andere Maßnahme durchgeführt werden kann, wenn der Benutzer nichtanwesend und nichtverfügbar ist oder das System nutzt.
-
US Patentschrift 5,903,845 beschreibt einen PIM (Personal Information Manager), der es erlaubt, Benutzerprofile eines Mobil-Telefonbenutzers in einer Datenbank des Mobil-Telefon-Providers zu ergänzen bzw. abzuändern. Die Benutzerprofile betreffen im Wesentlichen das Absenden von Voice-Mails oder das Senden von sonstigen Nachrichten zu definierten Zeiten, die vom Telefonbenutzer mit Hilfe des PIMs festegelegt werden können und über Netzwerk der Mobiltelefon-Provider-Datenbank übermittelt werden. Bei jedem Anruf wird das Benutzerprofil des Telefonbenutzers abgefragt und die entsprechende vom Benutzer definierte Nachricht an den Anrufer/Telefonbenutzer abgesandt.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Es ist daher eine Aufgabe der vorliegenden Erfindung, eine verbesserte periodische oder sich wiederholende Programmausführung in Datenverarbeitungssystemen zu ermöglichen.
-
Es ist eine weitere Aufgabe der vorliegenden Erfindung, die periodische oder sich wiederholende Programmausführung in einem Datenverarbeitungssystem in Abstimmung mit einem Benutzerkalender für den Benutzer des Datenverarbeitungssystems zu ermöglichen.
-
Es ist noch eine weitere Aufgabe der vorliegenden Erfindung, ein Verfahren zur Verwendung eines Benutzerkalenders bereitzustellen, um die Terminierung von Programm- oder Systemaktivitäten in einem Datenverarbeitungssystem zu veranlassen.
-
Die vorstehenden Aufgaben werden auf die nun beschriebene Art und Weise gelöst. Ein Kalenderprogramm eines Benutzers wird so konfiguriert, dass es die Ausführung von terminierten Programmen oder Systemaktivitäten ”veranlasst”. Mit Hilfe eines Zeitplanungsprogramms kann der Benutzer das System so konfigurieren, dass es bestimmte sich wiederholende Tasks ausführt, den Systembetrieb aber auf der Grundlage der von dem Kalenderprogramm empfangenen steuernden Induzierungsfaktoren mit unterschiedlichen Ergebnissen steuert. Wenn ein Ereignis- oder ein Aktivitätseintrag in dem Kalenderprogramm erstellt wird, ordnet der Benutzer diesem Eintrag einen Induzierungswert zu. Am Eintragsdatum ruft das Zeitplanungsprogramm den/die Induzierungswert(e) für dieses Datum ab, bevor es die Ausführung von terminierten Tasks einleitet. Der/die Induzierungswert(e) wird/werden logisch mit Ausführungswerten verknüpft, um die Ausführung von terminierten Tasks zu steuern. Wenn ein Benutzer zum Beispiel an einer fernen Konferenz teilnimmt, wird eine sich wiederholende Task zur Systemdatensicherung und Virusprüfung nach einem anderen Terminplan ausgeführt, als wenn der Benutzer den Rechner täglich aktiv zwischen Sicherungsläufen nutzt, während Systemdialogfenster und Dialoge für eine Anwendung nicht angezeigt beziehungsweise nicht ausgeführt werden können, wenn sich der Benutzer im Urlaub befindet.
-
Die vorstehenden sowie zusätzliche Ziele, Merkmale und Vorteile der vorliegenden Erfindung gehen aus der folgenden ausführlichen Beschreibung hervor.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die neuartigen Merkmale, die als charakteristisch für die Erfindung betrachtet werden, sind in den beigefügten Ansprüchen dargelegt. Die Erfindung selbst jedoch sowie eine bevorzugte Verwendungsart, weitere Aufgaben und Vorteile der Erfindung lassen sich am besten verstehen, wenn auf die folgende ausführliche Beschreibung einer als erläuterndes Beispiel dienenden Ausführungsform Bezug genommen und diese in Verbindung mit den beigefügten Zeichnungen gelesen wird, in denen:
-
1 ein Datenverarbeitungssystem und ein Netzwerk darstellt, in dem eine bevorzugte Ausführungsform der vorliegenden Erfindung ausgeführt werden kann;
-
2 ein Diagramm eines kalenderinduzierten Programmausführungssystems gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung ist; und
-
3 Übersichts-Flussdiagramme für Prozesse darstellt, in denen die kalenderinduzierte Programmausführung gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung festgelegt wird und zur Anwendung kommt.
-
AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
-
Nun Bezug nehmend auf die Figuren und insbesondere mit Bezug auf 1 ist ein Blockschaltbild eines Datenverarbeitungssystems und eines Netzwerks dargestellt, in dem eine bevorzugte Ausführungsform der vorliegenden Erfindung realisiert werden kann. Das Datenverarbeitungssystem 100 enthält einen Prozessor 102, der in der beispielhaften Ausführungsform mit einem Cachespeicher 104 der Ebene zwei (L2-Cachespeicher) verbunden ist, welcher wiederum mit einem Systembus 106 verbunden ist.
-
Ein Systemspeicher 108 und eine Eingabe-/Ausgabe-(E/A-)Busbrücke 110 sind ebenfalls an den Systembus 106 angeschlossen. Die E/A-Busbrücke 110 verbindet den E/A-Bus 112 mit dem Systembus 106, wobei Daten von einem Bus an den anderen übertragen und/oder transformiert werden. Periphere Einheiten wie zum Beispiel der nichtflüchtige Speicher 114, der ein Festplattenlaufwerk, ein CD-ROM-Laufwerk oder ein DVD-Laufwerk sein kann, und die Tastatur/das Zeigegerät 116, die eine herkömmliche Maus, eine Rollkugel oder dergleichen einschließen kann, sind mit dem E/A-Bus 112 verbunden. Das Datenverarbeitungssystem 100 enthält darüber hinaus den mit dem Systembus 106 verbundenen Grafikadapter 118, der vom Prozessor 102 grafische Darstellungselemente zur Wiedergabe empfängt und Pixel für den Bildschirm 120 erzeugt.
-
Die Funktionsweise des Datenverarbeitungssystems 100 ist dem Fachmann bekannt. Ein Basic Input/Output System (BIOS), eine Routine für den Selbsttest beim Einschalten (POST) und verschiedene Startroutinen initialisieren die Hardware und erlauben die interaktive Kommunikation zwischen Hardwarekomponenten. Ein Betriebssystem wie zum Beispiel eine Version des von der Microsoft Corporation mit Sitz in Redmond, Washington, erhältlichen Betriebssystems Windows stellt eine Plattform zur Ausführung von Anwendungen und zur grundlegenden Interaktion mit dem Benutzer wie zum Beispiel der Anzeige von Informationen oder der Manipulation eines Cursors innerhalb der Anzeige durch ein Zeigegerät bereit. Die Einheitentreiber des Betriebssystems erlauben Softwarekomponenten die interaktive Kommunikation mit und die Steuerung von Hardwarekomponenten. Das Datenverarbeitungssystem kann entsprechend bekannten Vernetzungsverfahren über eine Kommunikationsverbindung 124 mit einem Server 122 verbunden werden.
-
Bei der vorliegenden Erfindung enthält entweder das Betriebssystem ein Zeitplanungsprogramm und ein Kalender-Dienstprogramm, oder das Zeitplanungsprogramm und die Kalenderanwendungen setzen auf dem Betriebssystem auf. Das Zeitplanungsprogramm und die Kalenderfunktionalität brauchen keine diskreten Dienstprogramme oder Anwendungen zu sein, sondern können vielmehr einfach verschiedene Erscheinungsformen eines Betriebssystems oder einer Anwendung sein. Bei der vorliegenden Erfindung arbeiten das Zeitplanungsprogramm und der Kalender in Verbindung miteinander, wie nachstehend beschrieben wird.
-
Bezug nehmend auf 2, ist ein Diagramm eines kalenderinduzierten Programmausführungssystems gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung dargestellt. Das System 202 läuft in einem Datenverarbeitungssystem und/oder Netzwerk von dem in 1 dargestellten und vorstehend beschriebenen Typ. Das kalenderinduzierte Programmausführungssystem 202 enthält ein Zeitplanungsprogramm-Modul 204 und ein Kalendermodul 206.
-
Das Zeitplanungsprogramm 204 ermöglicht dem Benutzer, das System so zu konfigurieren, dass es ausgewählte Tasks oder Systemaktivitäten automatisch und ohne Eingriff des Benutzers wiederholt, ausführt. Das Zeitplanungsprogramm 204 enthält eine Vielzahl von Ausführungseinträgen 208, von denen jeder ein Programm kennzeichnet, das an einem angegebenen Datum und zu einer angegebenen Uhrzeit oder mit einer angegebenen Häufigkeit (z. B. täglich, wöchentlich, monatlich usw.) automatisch ausgeführt werden soll. Jeder Ausführungseintrag 208n enthält eine Vielzahl von Parametern und Informationen in Bezug auf das auszuführende Programm einschließlich eines Ausführungs-Zeitplanerwerts 210. Der Ausführungs-Zeitplanerwert 210 wird vom Zeitplanungsprogramm 204 auf der Grundlage des Datums und der Uhrzeit des Systems gesetzt und gibt an, ob das entsprechende Programm an dem aktuellen Datum oder später und zu der jetzigen Uhrzeit oder später ausgeführt werden soll.
-
Das Zeitplanungsprogramm 204 kann somit das aktuelle Datum und die aktuelle Uhrzeit mit dem für die Ausführung des Programms angegebenen Datum und der angegebenen Uhrzeit vergleichen, um den Ausführungs-Zeitplanerwert 210 zu setzen, oder es kann alternativ dazu einen seit der letzten Ausführung des Programms verstrichenen Zeitraum berechnen. Ungeachtet der angewandten Berechnung setzt das Zeitplanungsprogramm 204 den Ausführungs-Zeitplanerwert 210 so, dass er anzeigt, ob das Programm ausgeführt werden soll (z. B. auf ”X01”, um anzuzeigen, dass das Programm ausgeführt werden soll, und auf ”X00”, um anzuzeigen, dass das Programm nicht ausgeführt werden soll).
-
Der Kalender 206 enthält eine Vielzahl von Datenobjekten oder Datensätzen 212 für jedes Datum innerhalb eines relevanten Zeitraums wie zum Beispiel beliebige aktuelle oder zukünftige Daten innerhalb eines bestimmten Jahres und/oder Daten, für die Ereignisse terminiert wurden. Jedes Datumsobjekt 212n kann eine Reihe von Ereignissen oder Aktivitätseinträgen 214a bis 214n für einen Benutzer enthalten. Die Ereignisse 214a bis 214n können benutzerdefinierte Termine, Besprechungen, Reisen usw. sein, oder sie können vom Kalender 206 automatisch erzeugt werden, wie zum Beispiel Terminerinnerungen am Monatsende und dergleichen.
-
Jedes Ereignis 214a bis 214n enthält einen entsprechenden Induzierungswert 216a bis 216n. Für die automatisch erzeugten Einträge 214a bis 214n kann der entsprechende Induzierungswert 216a bis 216n auch automatisch entsprechend einer zuvor angegebenen Regel gesetzt werden. Für die benutzerdefinierten Einträge 214a bis 214n kann der entsprechende Induzierungswert 216a bis 216n gesetzt werden, indem der Benutzer nach der Erstellung des Ereigniseintrags aufgefordert wird, eine Ereignisart oder eine Aktivitätsart auszuwählen, die eingegeben wird (z. B. Termin, Einladung, Konferenz, Geschäftsreise, Urlaub, Videokonferenz, Erinnerung an noch zu erledigende Aufgaben, Jahrestag usw.). Der Induzierungswert 216a bis 216n kann dann auf der Grundlage der vom Benutzer gewählten Ereignisart gesetzt werden. Alternativ dazu kann der Induzierungswert 216a bis 216n gesetzt werden, indem der Benutzer aufgefordert wird, bei der Erstellung des Ereigniseintrags eine oder mehrere Fragen zu beantworten (z. B. ”Werden Sie bei diesem Ereignis nicht im Büro sein?” oder ”Werden Sie Ihren Laptop für dieses Ereignis benötigen?”), wobei der Induzierungswert 216a bis 216n dann auf der Grundlage der Antworten des Benutzers gesetzt wird.
-
Der Induzierungswert 216a bis 216n eines Ereigniseintrags 214a bis 214n gibt die Bedeutung des zugehörigen Ereignisses für die Ausführung von Programmen an, die für eine automatische Ausführung durch das Zeitplanungsprogramm 204 konfiguriert wurden. Der für einen Ereigniseintrag im Kalenderprogramm 206 angegebene Induzierungswert 216a bis 216n bezeichnet die Auswirkung des Ereignisses auf die Ausführung von terminierten Programmen. Ein Induzierungswert (z. B. ”X00”), der einem Eintrag ”Urlaub” im Kalenderprogramm 206 zugeordnet ist, kann somit beispielsweise bewirken, dass ein normal terminiertes Programm – zum Beispiel das tägliche Herunterladen einer Webzeitung – nicht an den Tagen ausgeführt wird, die vom Benutzer mit dem Eintrag ”Urlaub” gekennzeichnet wurden. Dadurch kann das Zeitplanungsprogramm 204 andere Maßnahmen ergreifen, wenn der Benutzer abwesend ist, als möglicherweise ergriffen würden, wenn der Benutzer zugegen wäre. Da sich der Benutzer in dem obigen Beispiel im Urlaub befindet und vermutlich heruntergeladenes Material nicht lesen kann (mit Ausnahme des Falles der mobilen Datenverarbeitung), kann die terminierte tägliche Herunterladeoperation ausgesetzt werden, wodurch unnötiger Netzverkehr vermieden wird. Der einigen Ereignissen zugeordnete Induzierungswert kann jedoch auf einen Wert von null gesetzt werden, der anzeigt, dass das Ereignis keine Bedeutung für die terminierte Ausführung von Programmen hat (z. B. eine Erinnerung an noch zu erledigende Aufgaben).
-
Das Kalenderprogramm 206 ist über eine Schnittstelle mit dem Zeitplanungsprogramm 204 verbunden, um Einfluss auf die Ausführung von terminierten Tasks zu nehmen, indem es den Induzierungswert für das aktuelle Datum sendet. Die Induzierungswerte 216a bis 216n können hierarchisch sein, so dass ein Induzierungswert für beispielsweise einen Eintrag vom Typ ”Urlaub” einen Induzierungswert für einen anderen Ereigniseintrag 214a bis 214n für dasselbe Datum 212n wie zum Beispiel einen Eintrag vom Typ ”Monatsende” wirksam überschreibt. Das Kalenderprogramm 206 kann somit einen ”höchsten” oder einen ”niedrigsten” Induzierungswert für jeden beliebigen Ereigniseintrag 214a bis 214n an einem bestimmten Datum 212n an das Zeitplanungsprogramm 204 senden.
-
Alternativ dazu kann das Kalenderprogramm 206 einfach alle Induzierungswerte für Ereigniseinträge an einem bestimmten Datum an das Zeitplanungsprogramm 204 senden und dem Zeitplanungsprogramm 206 dadurch die Möglichkeit geben, die gemeinsame Wirkung auf die Ausführung von bestimmten Tasks zu bestimmen. Dies mag insbesondere wünschenswert sein, wenn verschiedene Induzierungswerte von Ereigniseinträgen verschiedene Tasks auf unterschiedliche oder möglicherweise widersprechende Weise betreffen. Beispielsweise kann ein Induzierungswert eines Ereigniseintrags ”Externe geschäftliche Besprechung” die tägliche Herunterladeoperation einer Webzeitung aussetzen, aber keinen Einfluss auf eine terminierte Datensicherung haben, während ein Induzierungswert eines Ereigniseintrags ”Monatsende” gegebenenfalls keinen Einfluss auf die Herunterladeoperation über einen lokalen Modem hat, aber eine Systemdatensicherung auf einen Netzwerkserver verzögern kann, um den Netzverkehr für andere Tasks (z. B. den Kontenabschluss) zu verringern. Das Zusammentreffen zweier solcher Einträge an einem bestimmten Datum kann eine Konfliktlösung durch das Zeitplanungsprogramm 204 erforderlich machen.
-
Wie aus der vorstehenden Beschreibung gefolgert werden kann, können verschiedene terminierte Tasks von einem bestimmten vom Kalenderprogramm 206 zurückgegebenen Induzierungswert unterschiedlich betroffen sein. Eine Task kann von einem oder mehreren bestimmten Induzierungswerten ausgesetzt oder verzögert werden, während eine andere Task davon unberührt bleiben und wie geplant ausgeführt werden kann. Das Spektrum an Möglichkeiten ist nur durch die Anzahl der eindeutigen Induzierungswerte 216a bis 216n beschränkt, und die Alternativen für die Programmausführung hängen von den realisierten Induzierungswerten ab.
-
Außerdem kann der vom Kalenderprogramm 206 empfangene Induzierungswert nicht nur Einfluss darauf haben, ob ein bestimmtes Programm ausgeführt wird, sondern auch auf die Art und Weise, in der dieses Programm ausgeführt wird. Wenn der Induzierungswert für ein bestimmtes Datum zum Beispiel angibt, dass der Benutzer nicht verfügbar ist (sich beispielsweise im Urlaub befindet), kann eine Anwendung ausgeführt werden, bei der die Dialoge und Dialogfenster deaktiviert sind, da ein manueller Eingriff durch den Benutzer nicht möglich ist. Dadurch kann verhindert werden, dass der Systembetrieb unnötig unterbrochen wird, wenn niemand auf eine Eingabeaufforderung reagieren oder ein Problem beheben kann.
-
Der/die Induzierungswert(e) für ein bestimmtes Datum 212n werden vorzugsweise mit Ausführungswerten logisch verknüpft, die angeben, ob das terminierte Programm unter Berücksichtigung der empfangenen Induzierungswerte ausgeführt werden soll. Die notwendige Logik wird dadurch vereinfacht, dass es nur notwendig ist anzugeben, wann ein Programm, das für eine standardmäßige Ausführung terminiert ist, NICHT ausgeführt oder in geänderter Weise ausgeführt werden soll. Folglich kann die logische Verknüpfung einschließen, dass einfach die Ausführungs- und die Induzierungswerte durch logisches UND verknüpft werden und dann festgestellt wird, ob das Ergebnis die Ausführung aussetzt oder ändert. Wenn sich der Benutzer beispielsweise im Urlaub befindet und das System so konfiguriert wurde, dass es automatisch eine Webzeitung herunterlädt, kann der Kalender 206 das Zeitplanungsprogramm 204 darüber informieren, dass der Benutzer im Urlaub ist, indem es ihm einen Induzierungswert ”X00” sendet. Der Zeitplaner 204 verknüpft diesen Induzierungswert dann durch logisches UND mit dem vorher festgelegten Ausführungs-Zeitplanwert täglich = ”X01”. Der sich ergebende Wert ”X00” zeigt an, dass der Zeitplaner das Programm zum Herunterladen der Webzeitung nicht ausführt.
-
Es sei erwähnt, dass die Induzierungswerte 218 auch ausgewählten Daten 212n wie zum Beispiel gesetzlichen Feiertagen oder Standardereignissen für diese Daten zugeordnet werden können. Bei einem hierarchischen Schema kann ein Induzierungswert 218 für ein Datum als globale Überschreibung dienen oder dem Zeitplanungsprogramm 204 einfach als ein weiterer diesem Datum 212n zugeordneter Induzierungswert übergeben werden. Solche Datum-Induzierungswerte 218 für Feiertage und dergleichen können sich von den Ereignis-Induzierungswerten 216a bis 216n eindeutig unterscheiden, damit sie sich auf ausgewählte Programme unterschiedlich auswirken.
-
Nun Bezug nehmend auf die 3A bis 3C, sind Übersichts-Flussdiagramme für Prozesse gezeigt, in denen die kalenderinduzierte Programmausführung gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung festgelegt wird und zur Anwendung kommt. Die 3A und 3B veranschaulichen einen Prozess, in dem eine kalenderinduzierte Programmausführung festgelegt wird und der die Angabe der Auswirkung der Ereignisart (Induzierungswert) auf die Programmausführung und die Angabe der Ereignisart für Ereigniseintäge in einem Kalender einschließt.
-
Der Prozess von 3A, der die Angabe der Auswirkung der Ereignisart oder des Induzierungswertes auf die Programmausführung darstellt, beginnt im Schritt 302, der ein Programm zeigt, das für die Ausführung terminiert wird. Die terminierte Ausführung kann entweder ein sich wiederholender (z. B. periodischer) Vorgang oder eine einmalige Ausführung sein. Der Prozess schaltet dann zum Schritt 304, der die Anzeige einer Liste von relevanten Ereignisarten und/oder Induzierungswerten, welche Ereignisarten darstellen, veranschaulicht.
-
Zu den angezeigten Ereignisarten und/oder Induzierungswerten können eine Reihe von vorher festgelegten Ereignisarten und zugehörigen Standard-Induzierungswerten gehören, wobei vorher festgelegte Ereignisarten benutzerdefinierte Induzierungswerte haben (die erzeugt werden, indem der Benutzer zur Beantwortung einer Reihe von Fragen bezüglich der Auswirkung des Ereignisses auf die Programmausführung aufgefordert wird), oder sie können kundenspezifische Ereignisarten beinhalten, die vom Benutzer erzeugt werden und benutzerdefinierte Induzierungswerte haben. Es sei erwähnt, dass sich der Benutzer der Induzierungswerte als solches vielleicht nicht bewusst ist, aber Induzierungswerte für verschiedene Ereignisarten angeben kann, indem er Fragen beantwortet (z. B. durch die Ausführung eines Assistenten (”wizard”)).
-
Der Prozess schaltet als Nächstes zum Schritt 306, der zeigt, dass der Benutzer aufgefordert wird, eine oder mehrere Ereignisarten anzugeben, welche sich auf die Programmausführung auswirken, und anschließend schaltet er zum Schritt 308, in dem festgestellt wird, ob zumindest ein Ereignistyp angegeben wurde. Wenn ja, schaltet der Prozess zum Schritt 310, in dem festgestellt wird, ob die Auswirkung der angegebenen Ereignisart bezeichnet wurde. Wenn nicht, schaltet der Prozess zum Schritt 312, der zeigt, dass der Benutzer aufgefordert wird, die Auswirkung anzugeben (z. B. ”aussetzen”, ”verzögern” usw.), die jede Ereignisart auf die Ausführung des terminierten Programms hat.
-
Wenn die Auswirkung der ausgewählten Ereignisart(en) bereits bezeichnet wurde oder sobald sie vom Benutzer bezeichnet worden ist, schaltet der Prozess zum Schritt 314, der zeigt, dass die Ausführungssteuerlogik für das terminierte Programm so gesetzt wird, dass sie auf Induzierungswerte (die Ereignisarten darstellen), welche Kalenderereignissen zugeordnet sind, abgestimmt ist. Das heißt, die Ausführungswerte für das terminierte Programm werden gesetzt. Der Prozess schaltet dann zum Schritt 316, der zeigt, dass der Prozess inaktiv wird, bis ein anderes Programm für die automatische Ausführung terminiert wird.
-
Nochmals Bezug nehmend auf den Schritt 308, schaltet der Prozess direkt zum Schritt 316, ohne dass eine Abhängigkeit von Induzierungswerten in der Ausführungssteuerlogik gesetzt wird, wenn vom Benutzer keine die Programmausführung beeinflussenden Ereignisse angegeben werden. Der Benutzer möchte vielleicht ungeachtet irgendwelcher Ereignisse, die in seinem Kalender auf Termin gesetzt sind, ein paar Programme wie zum Beispiel ein Virusprüfungs- oder ein Sicherheitsprüfungs-Dienstprogramm ausführen.
-
Der Prozess der Erstellung von Ereigniseinträgen im Kalender eines Benutzers, der in 3B dargestellt ist, beginnt mit dem Schritt 318, der zeigt, dass im Kalenderprogramm eines Benutzers ein Ereignis erzeugt wird. Der Prozess schaltet dann zum Schritt 320, der die Anzeige einer Liste von angegebenen Ereignisarten (die vorzugsweise eine Alternative ”kundenspezifisch” enthalten) darstellt, und anschließend zum Schritt 322, der zeigt, dass der Benutzer aufgefordert wird, eine Ereignisart für das erzeugte und in das Kalenderprogramm eingegebene Ereignis auszuwählen.
-
Der Prozess schaltet daraufhin zum Schritt 324, in dem festgestellt wird, ob eine Ereignisart angegeben wurde. Wenn nicht, schaltet der Prozess zum Schritt 326, der zeigt, dass ein Induzierungswert, der dem Eintrag zugeordnet ist, auf einen Wert von null gesetzt wird, der anzeigt, dass das Ereignis keine Auswirkung auf die Ausführung von terminierten Programmen haben soll. Wenn jedoch eine Ereignisart angegeben wurde, schaltet der Prozess stattdessen zum Schritt 328, in dem festgestellt wird, ob eine ”kundenspezifische” oder eine benutzerdefinierte Ereignisart ausgewählt wurde.
-
Wenn eine kundenspezifische Ereignisart vom Benutzer ausgewählt wurde, schaltet der Prozess zum Schritt 330, der zeigt, dass der Benutzer aufgefordert wird, Informationen in Bezug auf die Auswirkung des erzeugten Kalenderereignisses auf die Programmausführung anzugeben. Wenn der Benutzer eine vorher festgelegte Ereignisart ausgewählt hat, oder sobald der Benutzer die Auswirkung des Ereignisses auf die Programmausführung angibt, schaltet der Prozess zum Schritt 332, der zeigt, dass der Induzierungswert, der dem erzeugten Ereignis zugeordnet ist, gesetzt wird, um die Auswirkung des Ereignisses auf die terminierte Programmausführung zu bezeichnen. Der Prozess schaltet dann zum Schritt 334, der zeigt, dass der Prozess inaktiv wird, bis ein anderes Kalenderereignis erzeugt wird.
-
Der Prozess der Realisierung einer kalenderinduzierten Programmausführung, der in 3C dargestellt ist, beginnt mit dem Schritt 336, der zeigt, dass ein Zeitplanungsprogramm feststellt, dass ein terminiertes Programm an einem aktuellen Datum zur aktuellen Uhrzeit ausgeführt werden soll. Der Prozess schaltet dann zum Schritt 338, der die Feststellung von Kalenderereignissen, sofern vorhanden, im Eintrag eines Benutzerkalenders für das aktuelle Datum darstellt. Der Prozess schaltet als Nächstes zum Schritt 340, der den Abruf von einem oder mehreren Induzierungswerten, die festgestellten Kalenderereigniseinträgen an dem aktuellen Datum zugeordnet sind, und die logische Verknüpfung (z. B. die Verknüpfung durch logisches UND) der Induzierungswerte mit Ausführungswerten, die für das terminierte Programm angegeben wurden, darstellt.
-
Der Prozess schaltet dann zum Schritt 342, in dem festgestellt wird, ob die Programmausführung auf der Grundlage der logisch verknüpften Induzierungs- und Ausführungswerte ausgesetzt werden soll. Wenn ja, schaltet der Prozess zum Schritt 344, der zeigt, dass die Ausführung des terminierten Programms abgebrochen wird. Wenn sie jedoch nicht ausgesetzt werden soll, schaltet der Prozess stattdessen zum Schritt 346, in dem festgestellt wird, ob die Ausführung des terminierten Programms auf der Grundlage der logisch verknüpften Induzierungs- und Ausführungswerte verzögert werden soll.
-
Wenn ja, schaltet der Prozess zum Schritt 348, der zeigt, dass die Ausführung des terminierten Programms verzögert wird, beispielsweise indem der Startzeitpunkt für die terminierte Ausführung zurückgesetzt oder indem die Ausführung lediglich verschoben wird, bis das im Kalender eingetragene Ereignis abgelaufen ist. Wenn sie jedoch nicht verzögert werden soll, schaltet der Prozess stattdessen zum Schritt 350, in dem festgestellt wird, ob die Ausführung des terminierten Programms auf der Grundlage der logisch verknüpften Induzierungs- und Ausführungswerte geändert werden soll.
-
Wenn ja, schaltet der Prozess zum Schritt 352, der zeigt, dass die Ausführungsweise des terminierten Programms geändert wird, beispielsweise, indem Benutzerschnittstellendialoge und Dialogfenster unterdrückt werden, und das Programm dann in der geänderten Form ausgeführt wird. Andernfalls schaltet der Prozess jedoch stattdessen zum Schritt 354, der zeigt, dass das terminierte Programm ausgeführt wird, und anschließend zum Schritt 356, der zeigt, dass der Prozess inaktiv wird, bis ein anderes terminiertes Programm ausgeführt werden muss. Es sei erwähnt, dass der Abbruch, die Verzögerung oder die Änderung der Programmausführung auf der Grundlage der logisch verknüpften Induzierungs- und Ausführungswerte nur drei mögliche Alternativen als Beispiele darstellt. Andere Alternativen sind ebenfalls möglich.
-
Die vorliegende Erfindung ermöglicht es, dass Einträge im Kalender eines Benutzers die Ausführung von terminierten Programmen beeinflussen können. Dies ist möglicherweise insbesondere in integrierten Systemen nützlich, bei denen die Komponenten in Wechselbeziehung stehen und nicht unzusammenhängend sind oder in Widerspruch zueinander stehen. Die Ausführung einer Task kann somit den Bedürfnissen des Benutzers entsprechend erfolgen und geschieht nicht ”blind”, wie es nach dem Stand der Technik der Fall ist.
-
Es ist wichtig darauf hinzuweisen, dass die vorliegende Erfindung zwar im Zusammenhang mit einem voll funktionsfähigen Datenverarbeitungssystem und/oder Netzwerk beschrieben wurde, der Fachmann jedoch verstehen wird, dass der Mechanismus der vorliegenden Erfindung in Form von einem rechnernutzbaren Medium mit Befehlen in einer Vielzahl von Arten vertrieben werden kann und dass die vorliegende Erfindung ungeachtet der jeweiligen Art des signaltragenden Mediums, das verwendet wird, um den Vertrieb tatsächlich durchzuführen, gleichermaßen Anwendung findet. Zu rechnernutzbaren Medien gehören beispielsweise unter anderem: nichtflüchtige, fest codierte Datenträger, wie zum Beispiel Nur-Lese-Speicher (ROMs), oder löschbare, elektrisch programmierbare Nur-Lese-Speicher (EEPROMs), beschreibbare Datenträger wie zum Beispiel Disketten, Festplattenlaufwerke und CD-ROMs sowie Übertragungsmedien wie zum Beispiel digitale und analoge Kommunikationsverbindungen.
-
Während die Erfindung insbesondere mit Bezug auf eine bevorzugte Ausführungsform gezeigt und beschrieben wurde, versteht der Fachmann, dass verschiedene Änderungen an der Form und den Einzelheiten der Erfindung vorgenommen werden können ohne vom Wesen und Umfang der Erfindung abzuweichen.