-
Da die Anzahl der Applikationen für Computersysteme
wächst,
so wächst
auch die Leistungsfähigkeit und
die leichte Handhabung für
solche Applikationen. Ein Leistungsmerkmal, welches viele Systeme
und Applikationen heute als Standardeigenschaft besitzen, ist ein
Leistungsmerkmal zum Rückgängigmachen.
Dieses Leistungsmerkmal zum Rückgängigmachen „macht" die letzte Aktion,
welche von einem Nutzer des Systems ausgeführt wird, "rückgängig". Tatsächlich kehrt
die Applikation zu dem Zustand der Applikation zurück, unmittelbar
bevor der Nutzer die letzte Aktion durchführte.
-
Kompliziertere Applikationen gestatten
es den Benutzern, mehrere oder alle vorausgegangenen Aktionen rückgängig zu
machen. Z. B. könnte
ein Nutzer in einem Wort- bzw. Textverarbeitungsprogramm aufeinander
folgend einige Zeilen des Textes löschen und dann zurückgehen
und die Löschungen
rückgängig machen,
wodurch jede Zeile des gelöschten
Textes wieder eingefügt
wird. In einer Tabellenkalkulationsanwendung könnte ein Benutzer die Formeln,
die mit verschiedenen Zellen verbunden sind, ändern, aber dann sich entscheiden,
diese Zellen zurück
in ihre Originalformeln zu wandeln.
-
Ein Benutzer gewinnt viel mehr Freiheit
und Kontrolle über
seine Arbeit aus der Fähigkeit
bzw. Möglichkeit,
vorausgegangene Aktionen leicht rückgängig zu machen. Benutzer können mit
unterschiedlichen Arten oder Vorkommnissen experimentieren und Leistungsmerkmale,
die sie wünschen,
rückgängig machen oder
wiederholen. Außerdem
steckt es in der Natur des Menschen, Fehler zu machen. Ein Leistungsmerkmal des
Rückgängigmachens
gestattet, die meisten Fehler leicht zu berichtigen, wobei we niger
Zeit benötigt
wird, als bei manueller Ausführung
der Schritte, eine Applikation in ihren vorausgegangenen Zustand
zurückzubringen.
-
Die meisten Applikationen, welche
es Benutzern gestatten, mehrere Schritte rückgängig zu machen, implementieren
dieses Leistungsmerkmal durch das Speichern jeder Aktion des Benutzers
auf einem Ereignis-Datenkellerspeicher bzw. Aktion-Ereignis-Datenkellerspeicher.
Obwohl der Ereignis-Datenkellerspeicher für einen Benutzer nicht sichtbar
ist, wird ein Implementieren eines Leistungsmerkmals zum vielfältigen Rückgängigmachen
eine gewisse Variation eines Speichers beinhalten.
-
Wenn die Applikation gestartet wird,
ist der Ereignis-Datenkellerspeicher leer. Jede Aktion, welche von einem
Benutzer ausgeführt
wird, z. B. das Beginnen mit einem Text, das Hervorheben eines Textblockes
oder das Wechseln zu einem anderen Teil eines Dokumentes, wird auf
dem Ereignis-Datenkellerspeicher gespeichert. Wenn ein Benutzer
wünscht,
eine oder mehrere vorausgegangene Aktionen rückgängig zu machen, aktiviert der
Benutzer das Leistungsmerkmal zum Rückgängigmachen. Viele Applikationen
gestatten dem Benutzer, eine oder mehrere Aktionen zum Rückgängigmachen
zur gleichen Zeit auszuführen.
Jede Aktion zum Rückgängigmachen
bewirkt, dass der letzte Eintrag auf dem Ereignis-Datenkellerspeicher
rückgängig gemacht
wird. Die Aktion wird aus dem Ereignis-Datenkellerspeicher abgehoben.
Wenn der Benutzer mehrere Aktionen ausführt, werden diese neuen Aktionen
auf den Ereignis-Datenkellerspeicher draufgelegt.
-
Ein Problem bei Aktionen des Rückgängigmachens
ist das Definieren, was man unter einer einzelnen Aktion versteht.
Z. B. kann in einer Textverarbeitungsapplikation jeder Tastendruck
als eine Aktion betrachtet werden. Jedoch würde das Rückgängigmachen jedes Tastendruckes
von jedem Benutzer erfordern, eine sehr große Anzahl von Aktionen rückgängig zu
machen, um einige Worte einfach zu löschen. Deshalb gruppieren viele
Wort- bzw. Textprozessoren verschiedene Aktionen in einer einzelnen
Aktion, welche rückgängig zu
machen ist. Z. B. behandeln die meisten Wortprozessoren eine Gruppe
von Tastenanschlägen
als eine Aktion, welche zur Aktion zum Texteinfügen wird. Diese eine Aktion
wird auf den Ereignis-Datenkellerspeicher draufgelegt. Dem Benutzer
bleibt nur die Wahl, die gesamte Texteingabe rückgängig zu machen, nicht nur einen
Teil der Tastenanschläge.
Deshalb ist der Nutzer auf die Beschreibung der Applikation beschränkt, was
eine Aktion zum Rückgängigmachen
bedeutet.
-
Dieses wird jedoch problematischer,
wenn eine zweite Applikation versucht, die erste Applikation durch
den Ereignis-Datenkellerspeicher zu treiben. Wenn z. B. die zweite
Applikation an die erste Applikation Aktionen zum Ausführen sendet,
speichert die erste Applikation Aktionen auf ihrem Ereignis-Datenkellerspeicher.
Wenn die zweite Aktion es notwendig macht, dann einige Aktionen
rückgängig zu
machen, muss diese exakt wissen, wie die erste Applikation die Aktionen
auf dem Ereignis-Datenkellerspeicher
speichert. Anderenfalls ist die zweite Applikation nicht in der
Lage, zu bestimmen, ob sie die richtige Anzahl oder den richtigen Typ
von Aktionen rückgängig gemacht
hat.
-
Die Situation ist noch ungünstiger,
wenn die zweite Applikation nicht die einzige Quelle für Aktionen
an der ersten Applikation ist. Z. B. nimmt man an, dass die erste
Applikation ein Wort- bzw. Textverarbeitungsprogramm ist und die
zweite Applikation ein Spracherkennungssystem ist. Das Spracherkennungssystem
interpretiert die Stimme eines menschlichen Benutzers und gibt die
gesprochenen Wörter
an das Textverarbeitungsprogramm. Der Benutzer diktiert sowohl Wörter, welche
zu schreiben sind, in das Textverarbeitungsprogramm, als auch Befehle zum
Manipulieren des angezeigten Textes auf verschiedene Weise. Wenn
der Benutzer diktiert, schreibt er auch Text oder Befehle, indem
er das Keyboard nutzt. Deshalb werden Aktionen auf dem Ereignis-Datenkellerspeicher
aus zwei Quellen eingefügt,
vom Keyboard und von dem Spracherkennungssystem aus.
-
Wenn das Spracherkennungssystem es
erfordert, mehrere Aktionen, welche es ausführte, rückgängig zu machen, kann es nicht
bestimmen, welche Aktionen von dem Spracherkennungssystem ausgeführt wurden und
welche vom Keyboard aus eingefügt
wurden. Außerdem
kann das Spracherkennungssystem wünschen, einen Satz von Aktionen
als eine Aktion zu gruppieren, und zwar in einer anderen Gruppierung
als durch die Textverarbeitungsapplikation eingebracht wurde. Da
das Spracherkennungssystem keine Kontrolle darüber besitzt, was der Wort-
bzw. Textprozessor auf dem Ereignis-Datenkellerspeicher ablegt,
kann das Spracherkennungssystem keine Aktionen in einem größeren Umfang
rückgängig machen.
-
Was dementsprechend erforderlich
ist, ist ein System und ein Verfahren, welches es gestattet, eine Applikation
anzuzeigen, was auf einem Ereignis-Datenkellerspeicher von einer
anderen Applikation abgelegt ist, und dadurch eine gewisse Kontrolle
beizubehalten, wenn Aktionen auf dem Ereignis-Datenkellerspeicher abgelegt
oder entfernt wurden.
-
ZUSAMMENFASSUNG
-
Die vorliegende Erfindung kennzeichnet
ein System und ein Verfahren zur Ferngruppierung und -führung des
Inhalts eines Ereignis- oder Befehl-Datenkellerspeichers.
-
Gemäß einem Gesichtspunkt der vorliegenden
Erfindung wird ein Verfahren des Computerbearbeitens eines Computer-Files
mit einer ersten Applikation, welche einen Ereignis-Datenkeller speicher
besitzt, und mit einer zweiten Applikation geliefert, welche Aktionen
in der ersten Applikation auslöst,
wobei Aktionen in der ersten Applikation rückgängig gemacht werden, gekennzeichnet
durch die Schritte: dass die erste Applikation durch die zweite
Applikation geführt
wird, um zu bewirken, dass ein erster Marker in dem Computer-File
eingefügt
wird und dann von dem Computer-File gelöscht wird, wobei beide Aktionen
von dem Ereignis-Datenkellerspeicher aufgezeichnet werden; Ausführen von
wenigstens einer Aktion an dem Computer-File, welche durch den Ereignis-Datenkellerspeicher
aufgezeichnet wird;
Bewirken, dass ein zweiter Marker in das
Computer-File eingefügt
wird und dass er dann aus dem Computer-File gelöscht wird, wobei beide Aktionen
durch den Ereignis-Datenkellerspeicher aufgezeichnet werden; und
Bewirken, dass die letzte Aktion auf dem Ereignis-Datenkellerspeicher
rückgängig gemacht
wird, und, wenn die rückgängig gemachte
Aktion den zweiten Marker anzeigt, Bewirken, dass dann mehrere Aktionen auf
dem Ereignis-Datenkellerspeicher rückgängig gemacht werden, bis eine
rückgängig gemachte
Aktion den ersten Marker anzeigt, und dann Bewirken, dass eine weitere
Aktion auf dem Ereignis-Datenkellerspeicher rückgängig gemacht wird.
-
Entsprechend einem anderen Gesichtspunkt
der vorliegenden Erfindung wird ein Computersystem geliefert, welches
eine erste Applikation, welche einen Ereignis-Datenkellerspeicher
besitzt, und eine zweite Applikation beinhaltet, welche Aktionen
in der ersten Applikation bewirkt, wobei Aktionen in der ersten
Applikation rückgängig gemacht
werden, dadurch gekennzeichnet, dass die zweite Applikation so angeordnet
ist, dass sie die erste Applikation dazu führt:
Bewirken, dass ein
erster Marker in ein Computer-File, welches bearbeitet wird, eingefügt wird,
und dass er dann aus dem Com puter-File gelöscht wird, wobei beide Aktionen
durch den Ereignis-Datenkellerspeicher aufgezeichnet werden;
Ausführen wenigstens
einer Aktion an dem Computer-File, welche durch den Ereignis-Datenkellerspeicher aufgezeichnet
wird; Bewirken, dass ein zweiter Marker in das Computer-File eingefügt wird,
und dass er dann aus dem Computer-File gelöscht wird, wobei beide Aktionen
durch den Ereignis-Datenkellerspeicher aufgezeichnet werden; und
Bewirken,
dass die letzte Aktion auf dem Ereignis-Datenkellerspeicher rückgängig gemacht
wird, und, wenn die rückgängig gemachte
Aktion den zweiten Marker anzeigt, Bewirken, dass dann mehrere Aktionen
auf dem Ereignis-Datenkellerspeicher rückgängig gemacht werden, bis eine
rückgängig gemachte
Aktion den ersten Marker anzeigt, und Bewirken, dass dann eine weitere
Aktion auf dem Ereignis-Datenkellerspeicher rückgängig gemacht wird.
-
Deshalb gestattet die vorliegende
Erfindung das Darstellen und Erkennen von Aktionen, welche auf dem
Ereignis-Datenkellerspeicher platziert sind, sogar dann, wenn ein
direkter Zugriff auf den Ereignis-Datenkellerspeicher nicht möglich ist.
-
In einer Ausführungsform ist die Applikation
zusammen mit dem Ereignis-Datenkellerspeicher ein Textverarbeitungsprogramm.
Die Aktionen, welche das Einfügen
von Anfangs- und Ende-Markern bewirken, sind das Einfügen von
Elementen in ein Dokument, welches von einem Textverarbeitungsprogramm
verarbeitet wird. Ein derartiges Element ist ein Lesezeichen, wie
es von Microsoft Word benutzt wird.
-
Die Verfahren, welche durch die Erfindung
benutzt werden, können
von einer zweiten Applikation durchgeführt werden, welche auf dem
gleichen Computersystem wie die erste Applikation läuft, oder
alternativ auf einem getrennten Computersystem. Eine solche zweite
Applikation ist ein Spracherkennungspro gramm. Das Spracherkennungssystem
kommuniziert mit der ersten Applikation, wobei eines von mehreren
Verfahren benutzt wird, welche das OLE (Objektverknüpfen und
-einbetten) einschließt.
Das Spracherkennungssystem bewirkt Aktionen, welche in der ersten
Applikation auszuführen
sind, welche bewirken, dass die Aktionen auf dem Ereignis-Datenkellerspeicher
platziert werden müssen.
Das Spracherkennungssystem macht dann diese Aktionen rückgängig. Diese
Aktionen führen
zu identifizierbaren Markern, welche auf dem Ereignis-Datenkellerspeicher
platziert werden. Zwischen diesen Aktionen führt das Spracherkennungssystem
Aktionen und Funktionen in der ersten Applikation aus.
-
Wenn das Spracherkennungssystem Aktionen
in der ersten Applikation rückgängig machen
muss, bewirkt es, dass Aktionen rückgängig gemacht werden, und detektiert,
ob eine Anzeige eines Ende- oder Anfang-Markers aus dem Ereignis-Datenkellerspeicher
aufgrund einer oder mehrerer Aktionen des Rückgängigmachens entfernt wurde.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
1 ist
ein allgemeiner Überblick über ein
Computersystem, welches zwei Computerapplikationen beinhaltet, wobei
eine davon einen Ereignis-Datenkellerspeicher nutzt;
-
2 ist
eine Ansicht eines Beispiels für
einen Ereignis-Datenkellerspeicher;
-
3 ist
ein Flussdiagramm, welches die allgemeinen Schritte aufzeigt, welche
beim Eingeben von Instruktionen an einen Ereignis-Datenkellerspeicher
ausgeführt
werden, entsprechend der vorliegenden Erfindung;
-
4 ist
eine Ansicht eines Ereignis-Datenkellerspeichers, wie er entsprechend
der vorliegenden Erfindung bedient wird; und
-
5 ist
ein Flussdiagramm, welches Schritte aufzeigt, welche beim Lesen
von Instruktionen aus einem Ereignis-Datenkellerspeicher ausgeführt werden,
entsprechend der vorliegenden Erfindung.
-
DETAILLIERTE
BESCHREIBUNG
-
Mit Bezug auf 1 wird ein Überblick über ein Computersystem gezeigt.
Das Computersystem 10 kann irgendein Computer sein, welcher
in der Lage ist, sequenziell ein Programm auszuführen, wobei Personal Computer,
Minicomputer, Großrechner
oder tragbare persönliche
digitale Hilfsgeräte
beinhaltet sind. Das Computersystem 10 läuft wenigstens
auf einer Applikation 12, auf die hier als Applikation
A Bezug genommen wird. Wie hier genutzt, wird eine Applikation als
ein Programm oder ein ausführbarer
Satz von Instruktionen definiert, welches bzw. welcher auf einem
Computersystem läuft,
wobei Betriebssysteme, Geräte-unabhängige Programme,
Gerätetreiber,
Nutzer-Interfaces, Wortprozessoren, Tabellenkalkulationen, Stapelprogramme und
Simulatoren beinhaltet sind.
-
Applikation A akzeptiert z. B. eine
Benutzereingabe 16 über
ein Keyboard 14 und/oder eine Mauszeigervorrichtung 15.
Wenn der Benutzer Aktionen eintippt in Form von Daten und Befehlen,
führt die
Applikation A 12 diese Aktionen aus.
-
Die Applikation A 12 speichert auch
die ausgeführten
Aktionen auf einem Ereignis-Datenkellerspeicher 18. Das
Speichern jeder Aktion auf dem Ereignis-Datenkellerspeicher 18 ist
gewöhnlich
für den
Benutzer nicht sichtbar. Der Benutzer ist einfach gewärtig, dass
in jedem Punkt der Benutzer eine oder mehrere vo rausgegangene Aktionen
rückgängig machen
kann, indem er die Applikation A 12 anweist, dies zu tun.
-
Das Computersystem 10 lässt auch
eine andere Applikation 20 laufen, auf die hier als Applikation
B Bezug genommen wird. Die Applikation B 20 liefert auch ein Eingangssignal
an die Applikation A 12, wie dies durch den Pfeil 26 gezeigt
wird. Es gibt viele unterschiedliche Techniken, mit denen die Applikation
B 20 ein Eingangssignal an die Applikation A 12 liefern kann. Diese
beinhalten das Nachahmen des Eingangssignals eines Keyboards, wie
z. B. von einem Keyboard 14, Zwischenverarbeitungskommunikation,
den Austausch dynamischer Daten, das Schneiden und Einfügen von
Puffern, das Verknüpfen
und Einbetten eines Objekts und andere Techniken.
-
Die Applikation B20 ist eine vollständig getrennte
Applikation, welche möglicherweise
auf einem getrennten Computersystem (nicht gezeigt) laufen kann.
In diesem Fall würde
die Applikation B ein Eingangssignal 26 an die Applikation
A 12 über
ein Netzwerksystem liefern, welches eine RS-232, ALN, WAN, Sendeberechtigungsring
oder Faseroptik beinhaltet. Alternativ ist die Applikation B 20
eine DLL (Dynamische Verknüpfungsbibliothek),
welche mit der Applikation A 12 verknüpft ist oder durch diese genutzt
wird, oder eine Subroutine, Bibliothek oder Klasse. Das System und
Verfahren der vorliegenden Erfindung arbeitet in jeder Situation,
bei der die Applikation A 12 keinen direkten Zugriff an ihren internen
Mechanismus zulässt
oder liefert, wobei deren Ereignis-Datenkellerspeicher 18 beinhaltet
ist.
-
Z. B. ist die Applikation B 20 ein
Spracherkennungssystem, welches das Eingangssignal 24 von
einer Mikrofonvorrichtung 22 empfängt. Die Applikation B 20 führt eine
Analyse und Wandlung des Audiosignals in ein Format durch, welches
von der Applikation A 12 genutzt werden kann. In diesem Beispiel,
falls die Applikation A 12 ein Textverarbeitungsprogramm ist, würde die
Applikation B 20 Zeichenketten für
das Einfügen
in ein Dokument liefern. Die Applikation B 20 könnte auch Befehle liefern,
um das Dokument zu bearbeiten, wie z. B. Schriftzeichensätze zu ändern, Textbereiche
zu verschieben, Dokumente in einer Langzeitspeicherung zu sichern,
etc..
-
Die Applikation A 12 kann sich der
vielfältigen
Eingabesignalquellen bewusst sein oder nicht. Jedoch führt die
Applikation A 12 Aktionen durch, welche auf den Daten basieren,
welche sie in der Reihenfolge, wie sie sie empfängt, erhält. Wenn die Applikation A
12 ein Eingangssignal empfängt,
welches aus einer Mischung vom Keyboard 16 und der Applikation
B 20 besteht, werden die Aktionen, welche die Applikation A 12 ausführt, vermischt.
Die Aktionen, welche auf einem Ereignis-Datenkellerspeicher 18 abgelegt
werden, werden auch gemischt.
-
Die Applikation B 20 kann häufig einige
Informationen über
den Zustand der Applikation A 12 bestimmen, wie dies durch den Pfeil 28 gezeigt
wird. Diese Informationen können über direktes
Abfragen der Applikation A 12 durch die Applikation B 20 erhalten
werden, oder durch eine andere Vorrichtung des Überwachens der Applikation
A 12. Was jedoch die Applikation B 20 nicht bestimmen kann, ist
der Inhalt des Ereignis-Datenkellerspeichers 18 in der
Applikation A 12. Da die Applikation A 12 Eingangssignale von mehr
als einer Quelle empfängt,
kann die Applikation B 20 nicht wissen, welche dazwischenliegenden
Aktionen stattgefunden haben, welche den Inhalt des Ereignis-Datenkellerspeichers 18 beeinflussen.
-
Wenn ein Nutzer, um mit obigem Beispiel
fortzufahren, Informationen über
das Keyboard 14 hinzufügt sowie
auch Sprachbefehle an die Applikation B 20 liefert, um den Text
in der Textverarbeitungsapplikation A 12 zu manipulieren, wird das
Leistungsmerkmal des Rückgängigmachens
der Applikation A 12 nicht zwi schen den Keyboard-14-Aktionen oder
den Sprach-24-Aktionen unterscheiden. Wenn die Applikation B 20
instruiert wird, eine vorausgegangene Aktion oder vorausgegangene
Aktionen rückgängig zu
machen, ist die Applikation B 20 nicht in der Lage, zu bestimmen,
welche vorausgegangenen Aktionen durch sie implementiert wurden, und
welche vorausgegangenen Aktionen von einer anderen Quelle gekommen
sind.
-
Dies ist sogar problematischer im
Bereich der Spracherkennung, wobei ein einzelner Sprachbefehl zu mehreren
getrennten Textverarbeitungsschritten führen kann. Z. B. würde der
Benutzerbefehl "Unterstreiche den
letzten Satz" von
der Applikation B 20 erfordern, die Applikation A 12 zu informieren,
um zuerst den letzten Satz zu finden, den letzten Satz auszuwählen, den
Text zu unterstreichen und zu dem vorausgegangenen Eingabesignalplatz
im Dokument zurückzukehren.
Wenn der Benutzer dann entscheidet, diese Aktion rückgängig zu
machen, muss die Applikation B 20 wissen, wie sie genug Aktionen
auf dem Ereignis-Datenkellerspeicher 18 rückgängig macht,
um das Dokument bei der Textverarbeitungsapplikation A in deren
vorherigen Zustand zurückzubringen
(bevor der Satz unterstrichen wurde).
-
Ein Ereignis-Datenkellerspeicher 18, 2, ist ein Speicher einer
Datenstruktur, wie sie in der Computerforschung gut bekannt ist.
Dieser hat ein "oberes
Ende" 30, welche
Information gespeichert ist, und welche dann in einer LIFO-(Letzter
Eingang-erster Ausgang-)Ordnung wiedergewonnen wird. Dieser besitzt
auch ein "unteres
Ende" 31,
welches erreicht wird, wenn alle Einträge auf dem Speicher entfernt
wurden. Im Falle eines Ereignis-Datenkellerspeichers 18 ist
die Information, welche auf dem Speicher gespeichert wird, eine Beschreibung
jeder Aktion, welche durch eine Applikation entsprechend der Eingabe
eines Benutzers (oder einer anderen Applikation) ausgeführt wird.
Jede Aktion wird sequenziell auf dem Ereignis-Datenkellerspeicher 18 gespeichert.
Um eine Aktion rückgängig zu
ma chen, wird die letzte Aktion, welche auf dem Speicher gespeichert
ist, von dem Speicher entfernt, und die Applikation ergreift die
Maßnahmen,
die erforderlich sind, um die Aktion rückgängig zu machen. Man beachte,
dass die Schritte, welche erforderlich sind, um eine Aktion rückgängig zu
machen, häufig
sehr kompliziert sind, abhängig
von der Applikation. Viele Applikationen gestatten den Benutzern,
mehrere Aktionen zur gleichen Zeit rückgängig zu machen, indem mehr
als eine Aktion zum Rückgängigmachen
ausgewählt
wird, als dem Benutzer präsentiert
wird.
-
Das interne Implementieren des Ereignis-Datenkellerspeichers 18 in
der Applikation A 12 ist nicht wichtig. Obwohl ein Speicher eine
gut bekannte Abstraktion der Datenstruktur ist, gibt es viele unterschiedliche Schemata
zum Implementieren eines Speichers. Für diese Applikation wird ein
Speicher als ein Datenspeichermechanismus definiert, welcher Information
in einer "Letzte
Eingabe-erste Ausgabe"-(LIFO-)Weise
speichern und auslesen kann.
-
Da der Ereignis-Datenkellerspeicher 18 für die Applikation
(Applikation A 12 z. B.) eine interne Datenstruktur ist, steht der
Ereignis-Datenkellerspeicher 18 nicht zur Verfügung, um
von anderen Applikationen untersucht und manipuliert zu werden.
Deshalb können
andere Applikationen nur den Ereignis-Datenkellerspeicher 18 über ein
Interface mit der Applikation A nutzen, über welche Vorrichtung es auch
immer die Applikation A gestattet, auf das Leistungsmerkmal des
Rückgängigmachens
zuzugreifen, welches durch den Ereignis-Datenkellerspeicher 18 implementiert
ist.
-
Die generellen Schritte entsprechend
der vorliegenden Erfindung zum Unterstützen eines Computersystems,
auf dem eine Applikation läuft,
wie z. B. die Applikation B 20, werden in 3 gezeigt. Im Schritt 100 sendet die
Applikation B 20 ei nen Vorgang bzw, eine Aktion an die Applikation
A 12, welche zu einem Anfang-Marker führt, welcher auf dem Ereignis-Datenkellerspeicher 18 platziert
wird. Eine detailliertere Beschreibung derartiger Aktionen und von
Anfang-Markern wird nachfolgend diskutiert.
-
Die Applikation B sendet dann eine
oder mehrere Aktionen, welche durch die Applikation A auszuführen sind,
Schritt 102. Das Ausführen
jeder dieser Aktionen führt
zu Aktionen (oder einer Beschreibung der ausgeführten Aktionen), welche auf
dem Ereignis-Datenkellerspeicher 18 zu speichern sind.
-
Wenn die Applikation B 20 mit dem Übersenden
der Folge von Aktionen für
das Ausführen
der Applikation A 12 aufgehört
hat, sendet die Applikation B 20 eine Aktion an die Applikation
A 12, welche zu einem Ende-Marker führt, welcher auf den Ereignis-Datenkellerspeicher 18 gesetzt
wird.
-
Vorzugsweise sollte die Applikation
B alle Schritte ohne die Applikation A ausführen, welche irgendwelche dazwischenliegenden
Aktionen durchführt.
In Abhängigkeit
von Applikation A kann die Applikation B die Schritte in einem kritischen
Bereich durchführen.
Deshalb wird die Applikation A keine Aktionen durchführen oder
irgendein Eingangssignal von irgendwelchen anderen Quellen akzeptieren,
bevor die Applikation B alle Schritte beendet hat. In einer sicheren
Vielverarbeitungsumgebung mit geeignetem Schließmechanismus sollte das kein
Problem darstellen.
-
Obwohl 3 den
Schritt 104 beinhaltet, zum Bewirken einer Aktion, welche einen
Ende-Marker auf dem Speicher einfügt, ist dieser Schritt nicht
notwendig. In gewissen Situationen muss die Applikation B 20 nur in
der Lage sein, das Ende der Folge von Aktionen zu erkennen, welche
sie an die Applikation A gesendet hat. Ein derartiges Beispiel ist
gegeben, wenn die Ap plikation A nur von der Applikation B Eingangssignale
und Befehle empfängt.
Deshalb wird der Ereignis-Datenkellerspeicher 18 nur Aktionen
enthalten, welche durch die Applikation B bewirkt werden. Die Applikation
B müsste
noch eine Gruppe von Aktionen erkennen, welche durch sie als eine
Aktion gesendet wurden, aber müsste
nicht ihre Aktionen von einer anderen Quelle unterscheiden. In einem
solchen Fall würden
die Anfangs-Marker jede Gruppe auf Aktionen der Applikation B beschränken. Es
würden
keine Ende-Marker notwendig sein.
-
Eine Ausführungsform zum Manipulieren
eines Ereignis-Datenkellerspeichers 18 entsprechend der vorliegenden
Erfindung wird in 4 gezeigt.
Es werden Marker in dem Ereignis-Datenkellerspeicher 18 gesetzt,
um den Anfang und das Ende des Satzes von Aktionen, welche durch
eine Applikation, wie z. B. Applikation B 20 ausgeführt wird,
zu begrenzen. Startet man vom unteren Ende 31 des Ereignis-Datenkellerspeichers 18,
so befindet sich die Aktion A1 und A2 32 bereits auf dem Ereignis-Datenkellerspeicher 18.
Wenn die Applikation B 20 startet, eine Folge von Aktionen an die
Applikation A 12 zu senden, sendet die Applikation B zuerst eine
Aktion herüber,
welche einen identifizierbaren Anfang-Marker 34a bewirkt,
welcher auf dem Ereignis-Datenspeicher 18 zu setzen ist.
-
Die Aktion, welche bewirkt, dass
ein Anfang-Marker 34a auf dem Ereignis-Datenspeicher 18 gesetzt wird,
kann eine aus einem großen
Bereich von Aktionen sein. Die einzige Anforderung besteht darin,
dass die Applikation B 20 den Anfang-Marker 34a erkennen
kann, wenn die Aktion rückgängig gemacht
ist. Vorzugsweise sollte die Aktion auch für einen Benutzer unsichtbar
sein, welcher das Computersystem beobachtet und benutzt. Jede Aktion,
welche als eine Indikation für
den Anfang eines Satzes von Aktionen durch die Applikation B 20
erkannt wird, wäre
geeignet. Einige Beispiele von möglichen
Anfang-Markern sind: Einfügen
eines unsichtbaren Textes in einem Textverarbeitungs dokument oder
das Auswählen
eines Bereiches von Zellen in einer Tabellenkalkulationsapplikation.
In einer bevorzugten Ausführungsform,
welche nachfolgend diskutiert wird, beinhaltet die Aktion das Einfügen eines
Lesezeichens in ein Textverarbeitungsdokument. Das Lesezeichen ist
für einen
Benutzer unsichtbar und beinhaltet einen einzigartigen Namen, welcher
als eine Identifikation für
einen Platz innerhalb des Dokuments auf dem Textprozessor benutzt
wird.
-
Sobald die Aktion, welche den Anfang-Marker 34a auf
den Ereignisdatenspeicher 18 einfügte, ausgeführt wurde, sendet die Applikation
B 20 eine Aktion herüber,
welche die vorausgehende Aktion rückgängig macht. Man beachte, dass
die vorausgehende Aktion durch eine neue Aktion rückgängig gemacht
wird, nicht durch Nutzen des Leistungsmerkmals zum Rückgängigmachen
der Applikation A 12. Deshalb wird die neue Aktion auch auf dem
Ereignis-Datenspeicher 18 wie eine Beseitigung eines Anfang-Markers 36a gespeichert.
-
Nun sendet die Applikation B eine
oder mehrere Aktionen 38 herüber, welche Funktionen in der
Applikation A 12 ausführen
und welche auf dem Ereignis-Datenspeicher 18 gespeichert
werden. Beim Abschluss der Aktionen bewirkt die Applikation B 20
eine Aktion, welche einen Ende-Marker 40a auf dem Ereignis-Datenspeicher 18 einfügen wird.
Diese Aktion, welche einen Ende-Marker 40a bewirkt, ist ähnlich der
Aktion, welche bewirkte, dass der Anfang-Marker 34a eingefügt wird.
-
In der bevorzugten Ausführungsform
sollten die Aktionen unterschiedlich sein, damit sie darin unterscheidbar
sind, dass die Applikation B den Unterschied zwischen einer Aktion,
welche einen Anfang-Marker 34a signalisiert, und einer
Aktion, welche einen Ende-Marker 40a signalisiert, detektieren
kann. Dies vermeidet eine Situation, in welcher, falls ein Marker
als ein Ende-Marker dient, er von dem Ereignis-Datenkellerspeicher 18 entfernt
wird, die Applikation B 20 Aktionen von einer anderen Eingabequelle
als von deren eigener durcheinander bringen könnte. Mit anderen Worten, falls
der Ende-Marker 40a entfernt wird, kann die Applikation
B 20 vernünftigerweise
erwarten, dass die Aktionen A3–A5 38 solche
Aktionen sind, die durch eine andere Eingabequelle bewirkt werden,
und diese Aktionen in einer ungeeigneten Weise rückgängig gemacht werden. Durch
das Nutzen eines Ende-Markers, welcher unterscheidbar von einem
Anfang-Marker ist, kann dieses Problem vermieden werden. Sogar wenn
der Ereignis-Datenkellerspeicher 18 verfälscht wird,
ist die Applikation B 20 in der Lage, auf dem Ereignis-Datenkellerspeicher 18 ihre
Aktionen wiederherzustellen und wieder zu erkennen.
-
Die Applikation B sendet dann eine
Aktion hinüber,
welche die vorausgehende Aktion rückgängig macht und welche zu einem
Entfernen des Ende-Markers 42a führt, welcher auf dem Ereignis-Datenkellerspeicher 18 platziert
ist.
-
Eine Aktion A6 44 wurde dann auf
dem Ereignis-Datenkellerspeicher 18 durch ein Eingangssignal bzw.
eine Eigabe an die Applikation A 12 platziert, anders als das von
Applikation B 20. Z . B . kann der Benutzer eine Eingabe von einem
Keyboard 14 getippt haben.
-
Wen man mit dem Ereignis-Datenkellerspeicher 18,
wie er in 4 gezeigt
wird, fortfährt,
hat die Applikation B 20 eine andere Aktion herübergeschickt, die Aktion A7
44. Obwohl sie sogar eine einzelne Aktion ist, wird sie ebenfalls
durch zwei Anfangsaktionen eingeleitet, welche bewirken, dass ein
Anfang-Marker eingefügt 34b und
entfernt 36b wird; und ihr folgen zwei Ende-Aktionen, welche
bewirken, dass ein Ende-Marker 40b eingefügt und 42b entfernt
wird.
-
Obwohl die Aktionen 34, 36,
welche bewirken, dass der Anfang-Marker
gesetzt wird, identisch für
jeden Satz von Aktionen sind, müssen
die Aktionen 34a und 34b, 36a und 36b nicht
identisch sein. Die Applikation B kann einen unterschiedlichen Anfang-Marker
für jeden
Satz von Aktionen, welchen sie hinüberschickt, benutzen. Die Aktionen 34, 36 könnten einen
einzigartigen Anfang-Marker erzeugen. Die Applikation B kann leicht
einen einzigartigen Marker oder sogar eine Inkrementierserienzahl
erzeugen, um den Anfang jeder Folge von Aktionen zu markieren. Auf
diese Weise kann die Applikation B die gesamte Zahl von Aktionssätzen verfolgen,
welche sie an die Applikation A gesendet hat. Die Aktionen 40, 42 des
Ende-Markers können
auch ganz unterschiedlich sein.
-
Schließlich, wie dies in 4 gezeigt wird, wurde eine
letzte Aktion A8 46 von einer anderen Quelle als der Applikation
B ausgeführt.
-
Die Schritte, welche beim Rückgängigmachen
einer Aktion ausgeführt
werden, werden in 5 gezeigt.
Die Applikation B 20 erfordert, dass eine letzte Aktion rückgängig gemacht
wird, entweder durch einen internen Login oder entsprechend einer
Forderung des Benutzers, die letzte Aktion rückgängig zu machen. Die Applikation
B 20 instruiert die Applikation A 12, eine Aktion rückgängig zu
machen, Schritt 122.
-
Die Applikation B legt dann fest,
ob die rückgängig gemachte
Aktion einen identifizierbaren Ende-Marker 42, 4, Schritt 124, 5, anzeigt. Bei diesem Bestimmen
fragt die Applikation B 20 die Applikation A, ob ein bestimmter
Marker in der Applikation vorliegt. Z. B. würde bei einer Textverarbeitungsapplikation
die Aktion des Rückgängigmachens
das Einfügen
eines Lesezeichens im Dokument bewirken. Die Applikation B 20 würde die
Applikation A 12 fragen, ob ein bestimmtes Lesezeichen in dem Dokument
vorhanden war. Wenn das Lesezeichen vor handen war, so zeigt dies
der Applikation B 20, dass der Ereignis-Datenkellerspeicher einen
Ende-Marker 42b enthielt. Die Applikation B 20 kann auch
irgendeine Anzahl von Techniken nutzen, um zu bestimmen, ob die
Aktion des Rückgängigmachens
einen Ende-Marker anzeigt, wobei die Analyse des Zustands der Applikation
A 12 und das Interpretieren der angezeigten Zustände der Applikation A 12 über eine Bildschirmsicherung
beinhaltet ist.
-
Wenn im Schritt 124 festgelegt
wird, dass die Aktion des Rückgängigmachens
keinen Ende-Marker anzeigt, dann stoppt die Applikation B 20, Schritt 132.
Da die Aktion, welche gerade rückgängig gemacht
wurde, ursprünglich
nicht durch die Applikation B 20 bewirkt wurde, fährt die
Applikation B 20 nicht weiter fort. Wenn ein Benutzer wünscht, dass
mehrere Aktionen rückgängig gemacht
werden, wird der Benutzer der Applikation B anzeigen, dass eine
andere Aktion rückgängig gemacht
wird, oder der Applikation A anzeigen, eine Aktion auf eine andere
Weise rückgängig zu
machen, möglicherweise über das
Keyboard 14 oder ein Maus-/Menü-Interface (nicht gezeigt).
-
Wenn im Schritt 124 festgelegt
wird, dass die Aktion des Rückgängigmachens
keinen Ende-Marker anzeigt, dann instruiert die Applikation B die
Applikation A, eine andere Aktion rückgängig zu machen, Schritt 126.
-
Im Schritt 128 bestimmt
dann die Applikation B, ob die Aktion des Rückgängigmachens einen identifizierbaren
Anfang-Marker 36, 4,
anzeigt. Die Analyse und das Bestimmen sind ähnlich zu dem vorher Diskutierten.
Wenn ein identifizierbarer Anfang-Marker nicht detektiert wird,
dann wird eine andere Aktion rückgängig gemacht,
Schritt 126, und geprüft,
Schritt 128. Damit wird fortgefahren, bis ein Anfang-Marker
im Schritt 128 detektiert wird.
-
Die Applikation B 20 kann nun bestimmen,
dass sie alle Aktionen rückgängig gemacht
hat, welche sie in der Applikation A 20 bewirkt hat. Die Applikation
B 20 hat deshalb größere Kontrolle über die
Aktionen, welche sie in der Applikation A 12 bewirkt, wobei die
Fähigkeit
beinhaltet ist, ihre Aktionen in einer anderen Art und Weise zu
gruppieren als durch die Applikation A zum Speichern auf dem Ereignis-Datenkellerspeicher 18 erzwungen
wird.
-
Im letzten Schritt 130,
wie er für
die bevorzugte Ausführungsform
benötigt
wird, bewirkt die Applikation B 20, dass eine weitere Aktion rückgängig gemacht
wird. Dies entfernt dann die Anzeige, welche benutzt wurde, um zu
bewirken, dass ein Anfang-Marker 34 auf dem Ereignis-Datenkellerspeicher 18 eingefügt wird.
-
Eine Applikation, welche die vorliegende
Erfindung aufweist, ist ein Spracherkennungssystem, welches von
Kurzweil Applied Intelligence of Waltham, MA, hergestellt wird.
In einer Ausführungsform
läuft das Spracherkennungssystem
auf einem Personal Computer, auf dem Microsoft Windows(TM) NT läuft. Das
Spracherkennungssystem ist über
ein Interface mit einer anderen laufenden Applikation verbunden,
wie z. B. einem Textverarbeitungsprogramm, wie z. B. Microsoft Word(TM).
Ein Benutzer, welcher eine Eingabevorrichtung, wie z. B. ein Mikrofon
oder ein Headset, nutzt, kann Wörter
oder Befehle sprechen. Das Audiosignal wird in Digitaldaten gewandelt,
wobei eine A/D-Sound-Einsteckkarte
benutzt wird, welche nahezu überall
erhältlich
ist. Ein Hersteller derartiger Sound-Karten ist SOUNDBLASTER (TM)
Inc..
-
Das Spracherkennungssystem kommuniziert
vorzugsweise mit Microsoft Word, wobei OLE (Objektverknüpfen und
-einbetten) genutzt wird. Andere Verfahren der Kommunikation zwischen
den Applikationen beinhalten DDE (Dynamischer Datenaustausch) und
eine Keyboard-Simulation.
-
Die Microsoft Word-Version 6.0 beinhaltet
ein Leistungsmerkmal zum Rückgängigmachen,
welches einem Benutzer gestattet, eine oder mehrere Aktionen zur
gleichen Zeit rückgängig zu
machen. Ein Pull-down-Menü zeigt
eine Liste der vorausgegangenen Aktionen, wobei einem Nutzer gestattet
wird, auszuwählen,
wie viele Aktionen rückgängig gemacht
werden. Ein Leistungsmerkmal zum Wiederherstellen ist auch erhältlich,
welches einem Nutzer gestattet, alles oder einen Teil der vorausgegangenen
rückgängig gemachten Aktionen
wiederherzustellen.
-
In einer bevorzugten Ausführungsform
der vorliegenden Erfindung benutzt das Spracherkennungssystem Microsoft
Word-Lesezeichen, um Aktionen zu bewirken, die Anfang-Marker und
Ende-Marker auf
den Ereignis-Datenkellerspeicher setzen. Ein Code, geschrieben in
Microsoft WordBasic, wird in Anhang A gezeigt, welcher dieses Leistungsmerkmal
implementiert hat.
-
Wenn das Spracherkennungssystem dabei
ist, ein Eingangssignal bzw. eine Eingabe an Microsoft Word zu senden,
wird ein Lesezeichen mit dem Namen "KVWin undostart" ("KVWin
starte Rückgängigmachen") in das Dokument
eingefügt.
Der Name ist willkürlich
gewählt,
die einzige Forderung, die besteht, ist die, dass der Name unterschiedlich
von dem Namen ist, welcher für
ein Ende-Lesezeichen benutzt wird. Lesezeichen sind für die Benutzer
nicht sichtbar. Wo das Lesezeichen im Dokument eingefügt wird,
ist nicht bedeutend. Andere Textverarbeitungsprogramme haben Leistungsmerkmale,
welche ähnlich
den Lesezeichen sind, obwohl der Term "Lesezeichen" vielleicht nicht verwendet wird. Bei
einem anderen Textverarbeitungsprogramm würde ein Leistungsmerkmal ähnlich der
Funktionalität
eines Microsoft Word-Lesezeichens angewendet werden.
-
Sofort nach dem Einfügen des
Lesezeichens wird es entfernt. Dieser Vorgang hinterlässt das
Dokument unverändert,
jedoch wird das Einfügen
und das Entfernen des Lesezeichens in dem Ereignis-Datenkellerspeicher
aufgezeichnet.
-
Nach dem Ausführen von Aktionen durch das
Spracherkennungssystem an dem Dokument in Microsoft Word, wird ein
Lesezeichen mit dem Namen "KVWin_undoend" ("KVWin Ende des Rückgängigmachens") in dem Dokument
eingefügt
und dann entfernt. Wiederum werden diese Aktionen auf dem Ereignis-Datenkellerspeicher
aufgezeichnet.
-
Wenn das Spracherkennungssystem eine
Aktion rückgängig zu
machen wünscht,
wird zuerst eine Aktion rückgängig gemacht.
Dann wird das Dokument geprüft,
um zu sehen, ob das Lesezeichen "KVWin_undoend" vorliegt. Microsoft
Word beinhaltet eine Funktion, welche einem Benutzer oder einer
Applikation gestattet, zu prüfen,
ob ein Lesezeichen vorliegt, ohne zu dem Lesezeichen zu springen,
falls dieses existiert.
-
Wenn das Lesezeichen nicht existiert,
dann wird keine weitere Aktion ausgeführt. Wenn jedoch das Lesezeichen
vorliegt, wird eine Schleife eingefügt, wodurch Aktionen rückgängig gemacht
werden, und das Dokument wird geprüft, ob das Lesezeichen "KVWin_undobegin" vorliegt. Wenn das
Lesezeichen plötzlich
im Dokument aufscheint, signalisiert dies, dass der Satz von Aktionen,
welcher durch das Spracherkennungssystem ausgeführt wird, (welche nun rückgängig gemacht
werden) nun vollständig
ist. Eine weitere Aktion zum Rückgängigmachen
wird ausgeführt,
um das "KBWin_undobegin"-Lesezeichen zu entfernen
(dadurch wird sein Einfügen
in das Dokument rückgängig gemacht).
-
Während
die Aktionen rückgängig gemacht
werden, kann das Aktualisieren des Bildschirms von Microsoft Word,
falls notwendig, abgeschaltet werden, um zu vermeiden, dass das
Dokument "unru hig" erscheint, während die
Aktionen rückgängig gemacht
werden.
-
Die vorliegende Erfindung arbeitet
auch beim Wiederherstellen von Aktionen, wobei das Leistungsmerkmal
des Wiederherstellens genutzt wird, welches in Microsoft Word erhältlich ist.
Wie in Anhang A gezeigt wird, ist das Implementieren des Wiederherstellens ähnlich dem
Implementieren des Rückgängigmachens,
außer,
dass der Anfang-Marker, "KVWin_undobegin", zuerst geprüft wird,
gefolgt von einer Schleife, welche Aktionen wiederherstellt, und
Prüfungen
nach dem Ende-Marker, "KVWin_undoend". Dies funktioniert
korrekt dadurch, dass Microsoft Word Befehle des Rückgängigmachens
auf einem "Speicher
zum Wiederherstellen" speichert,
wobei einem Nutzer gestattet wird, einen oder alle Befehle des Rückgängigmachens
wiederherzustellen. Da die Aktionen sequenziell aus dem Ereignis-Datenkellerspeicher
geworfen werden und auf dem Wiederherstellspeicher platziert werden,
ist die Reihenfolge der Marker ("KVWin_undobegin" und "KVWin_undoend") in umgekehrter
Reihenfolge auf dem Wiederherstellspeicher. Die vorliegende Erfindung gestattet
jede Kombination von Vorgängen
des Rückgängigmachens
und von Vorgängen
des Wiederherstellens und wird unter allen Umständen korrekt funktionieren.
-
Außerdem kann es mehr als eine
Applikation geben, welche dieses Leistungsmerkmal benutzt, während Aktionen
an die eine Applikation mit einem Ereignis-Datenkellerspeicher gesendet
werden. Tatsächlich hat
jede Applikation ihre Aktionen als einen Satz gruppiert, und jede
Applikation kann Aktionen von sich selbst oder einer anderen rückgängig machen.
In jedem Fall wird der Satz von Aktionen als eine Aktion zum Rückgängigmachen
behandelt.
-
Sollte ein Benutzer eine Aktion rückgängig machen,
wobei er das Keyboard 14 benutzt und dadurch einen Ende-Marker
aus dem Ereignis-Datenkellerspeicher 18 entfernen, sind
das Computersystem und die Applikationen weiterhin nutzbar. Die
Applikation B 20 wird bei einer Instruktion, eine Aktion rückgängig zu
machen, einfach eine Aktion anstatt einer Gruppe von Aktionen rückgängig machen.
Der Benutzer kann dann die Applikation B 20 instruieren, mehrere
Aktionen rückgängig zu
machen, oder die Operationen des Rückgängigmachens auszuführen, indem
das Keyboard 14 genutzt wird. Die Schritte der Erfindung
garantieren, dass ein Anfang-Marker immer durch einen Ende-Marker
gefolgt wird, ohne dass ein anderer Anfang-Marker dazwischenliegt.
Deshalb, falls ein Ereignis-Datenkellerspeicher 18 einen
Ende-Marker verlieren
sollte, würde
die Applikation B niemals mehr Aktionen rückgängig machen, als sie sollte,
sie würde
nur weniger Aktionen rückgängig machen.
-
Entsprechend gestattet die Erfindung
das Verfolgen und Gruppieren des Inhalts eines Ereignis-Datenkellerspeichers
aus der Ferne. Eine Applikation kann schließlich identifizieren, welche
Aktionen durch sie ausgeführt
wurden, und kann diese Aktionen als eine Gruppe oder jeweils einzeln
rückgängig machen.
-
Auch wenn verschiedene Änderungen
in den obigen Konstruktionen gemacht werden können, ohne vom Umfang der Erfindung,
wie sie in den angehängten
Ansprüchen
definiert werden, abzuweichen, ist davon auszugehen, dass all die
Dinge, welche in obiger Beschreibung enthalten sind oder in den
beigefügten
Zeichnungen gezeigt werden, der Illustration dienen und nicht eine
einschränkende
Wirkung haben.
-