-
HINTERGRUND
DER ERFINDUNG
-
Gebiet der
Erfindung
-
Diese
Erfindung bezieht sich im Allgemeinen auf eine Anwendungseinheits-Überwachungsvorrichtung,
die die Nutzung einer Zielanwendung einer Anwendungseinheit durch
einen Anwender überwachen
kann und die die Daten der überwachten
Nutzung leicht und effizient übertragen
kann.
-
Erörterung
des Hintergrunds
-
Mit
dem Zuwachs der Computer-Nutzung ist die Software-Entwicklung zweifellos
ein wichtiges Geschäft
geworden. Bei der Bewertung von Software kann es nützlich sein,
genau zu überwachen,
wie ein Anwender eine Software-Anwendung verwendet. Als ein Beispiel
kann es für
einen Software-Entwickler nützlich
sein, zu wissen, welche Befehle ein Anwender am häufigsten
verwendet.
-
Ferner
kann es bei der Konstruktion von Vorrichtungen, mit denen ein Mensch
in Wechselwirkung tritt, erwünscht
sein, zu überwachen,
wie der Anwender mit einer derartigen Vorrichtung in Wechselwirkung
tritt. Als ein Beispiel kann es erwünscht sein, zu überwachen,
wie ein Anwender eine Bedienungskonsole einer Bilderzeugungsvorrichtung,
wie z. B. eines Kopiergeräts,
eines Faxgeräts,
eines Druckers, eines Scanners, eines Haushaltsgeräts, wie
z. B. eines Mikrowellenherdes, eines VCR, einer Digitalkamera, eines
Zellulartelephons, eines Palmtop-Computers usw. verwendet.
-
Außerdem nutzen
immer mehr Anwender das Internet. Es gibt ein merkliches Interesse
daran, wie die Anwender das Internet nutzen, insbesondere hinsichtlich
dessen, wie die Anwender bestimmte Web-Seiten usw. nutzen. Die Überwachung
der Nutzung des Internets durch einen Anwender kann außerdem wichtig
werden.
-
Unter
diesen Umständen,
wenn es erwünscht
ist, zu bestimmen, wie ein Anwender eine bestimmte Anwendung, z.
B. eine Software-Anwendung, eine Vorrichtung mit einer Schnittstelle,
die durch einen Anwender zu betätigen
ist, eine Web-Seite usw., verwendet, muss nicht nur die Nutzung
der Anwendungseinheit durch den Anwender überwacht werden, sondern müssen die
durch die Überwachung
der Nutzung durch den Anwender erhaltene Informationen effektiv
zu einem gewünschten
Teilnehmer übertragen
werden.
-
US 5.887.216 offenbart eine
Bilderzeugungsvorrichtung, die sich selbst überwachen und die Ergebnisse
der Überwachung
per E-Mail zu einer entfernten Überwachungsvorrichtung
senden kann.
-
In "MetriStation: A Tool
for User-Interface fault Detection", Maxion, R. A., u. a., Seattle, WA, 24.–27. Juni
1997, Los Alamitos, CA; IEEE Comp. Soc. Press, USA, Seiten 89–98, XP000785879,
ISBN 0-8186-7832-1, offenbaren die Autoren Verfahren, um eine Anwenderschnittstelle
zu überwachen
und zu optimieren.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Die
Erfindung ist durch die Ansprüche
definiert.
-
Es
ist eine Aufgabe der vorliegenden Erfindung, ein neuartiges und
effektives System für
die Überwachung
der Nutzung einer Zielanwendung einer Anwendungseinheit durch einen
Anwender zu schaffen.
-
Es
ist eine weitere Aufgabe der vorliegenden Erfindung, ein neuartiges
System schaffen, um die durch die Überwachung der Nutzung einer
Zielanwendung einer Anwendungseinheit durch einen Anwender erhaltenen
Daten zu einem gewünschten Teilnehmer
zu übertragen.
-
Es
ist eine weitere Aufgabe der vorliegenden Erfindung, eine effiziente Übertragung
der überwachten
Nutzungsinformationen von einer Überwachungseinheit
zu einer Sendeeinheit zu schaffen.
-
Die
vorliegende Erfindung löst
diese und andere Aufgaben durch die Überwachung der Nutzung einer
Anwenderschnittstelle einer Zielanwendung einer Anwendungseinheit.
Eine derartige Überwachung
kann als ein Beispiel ein Software-Programm, das in einem Computer oder
einem Arbeitsplatzrechner unter der Steuerung eines Anwenders ausgeführt wird,
die Nutzung einer Bedienungskonsole einer Bilderzeugungsvorrichtung,
wie z. B. eines Kopiergeräts,
eines Druckers, eines Faxgeräts,
eines Scanners, eines Haushaltsgeräts, wie z. B. eines Mikrowellenherdes,
eines VCR, einer Digitalkamera, eines Zellulartelephons, eines Palmtop-Computers
usw., oder irgendeiner anderen Vorrichtung oder irgendeines anderen
Systems, die bzw. das eine Anwenderschnittstelle besitzt, überwachen.
Die durch die Überwachung
der Nutzung einer Zielanwendung einer Anwendungseinheit durch einen
Anwender erhaltenen Daten können
als ein weiteres Merkmal der vorliegenden Erfindung gesammelt und
protokolliert und dann durch Internet-E-Mail zu einem gewünschten Ort übertragen
werden. Die Verwendung der E-Mail-Kommunikation verringert die dem Übertragen
derartiger Daten zugeordneten Kosten. Die Daten können in
verschiedenen Fällen
zum gewünschten
Ort übertragen
werden, einschließlich
jedes Mal, wenn ein Anwender eine Zielanwendung einer Anwendungseinheit
beendet, oder nach einer vorgegebenen Anzahl, wie oft ein Anwender
die Zielanwendung der Anwendungseinheit verwendet und beendet hat.
-
KURZBESCHREIBUNG
DER ZEICHNUNG
-
Ein
vollständigeres
Verständnis
der vorliegenden Erfindung und vieler ihrer begleiteten Vorteile wird
leicht erhaltenen, wie dieselbe durch Bezugnahme auf die folgende
ausführliche
Beschreibung besser verstanden wird, wenn sie im Zusammenhang mit der
beigefügten
Zeichnung betrachtet wird, worin:
-
1 drei
vernetzte Büromaschinen
veranschaulicht, die durch das Internet mit einem Netz von Computern
und Datenbanken verbunden sind;
-
2 die
Komponenten eines digitalen Kopierers/Druckers veranschaulicht;
-
3 die
elektronischen Komponenten des in 2 veranschaulichten
digitalen Kopierers/Druckers veranschaulicht;
-
4 die
Einzelheiten der in 3 veranschaulichten Mehrfachanschluss-Kommunikationsschnittstelle
veranschaulicht;
-
5 eine
alternative Systemkonfiguration veranschaulicht, in der die Bürogeräte mit einem Computer,
der mit einem Netz verbunden ist, und außerdem mit Vorrichtungen, die
direkt mit dem Netz verbunden sind, verbunden sind;
-
6A im
Format eines Blockschaltplans eine Art veranschaulicht, in der die
Informationen unter Verwendung elektronischer Post zu oder von einer
Vorrich tung übertragen
werden können;
-
6B eine
alternative Art der Übertragung unter
Verwendung elektronischer Post veranschaulicht, bei der der Computer,
der mit der Vorrichtung verbunden ist, außerdem als ein Nachrichtenübertragungsagent
dient;
-
6C eine
alternative Art der Übertragung unter
Verwendung elektronischer Post veranschaulicht, bei der die Anwendungseinheit
die Fähigkeit
zu elektronischer Post enthält;
-
7 eine
alternative Art des Sendens von Nachrichten über das Internet veranschaulicht;
-
8 einen
beispielhaften Computer veranschaulicht, der mit der Vorrichtung
verbunden und verwendet werden kann, um Nachrichten der elektronischen
Post zu übertragen;
-
9 in
Form eines Blockschaltplans eine Verbindung eines Überwachungs-
und Protokollierungsblocks und eines Sendeblocks mit einer Zielanwendung
einer Anwendungseinheit in der vorliegenden Erfindung zeigt;
-
10 ein
Beispiel einer Anwendungseinheit zeigt, auf die die vorliegende
Erfindung angewendet werden kann;
-
11 ein
zweites Beispiel einer Anwendungseinheit zeigt, auf die die vorliegende
Erfindung angewendet werden kann;
-
12A eine Gesamtansicht der in der vorliegenden
Erfindung ausgeführten
Objekte zeigt;
-
12B die Informationen in einer abstrakten Klasse
zeigt, die zwischen einem Überwachungsblock
und einem Sendeblock in der vorliegenden Erfindung übertragen
wird;
-
13 eine
in der vorliegenden Erfindung ausgeführte Anfangsüberwachungsoperation
zeigt;
-
14 eine
Operation des Festlegens eines Trigger-Typs und einer Anzahl von
Sitzungsoperation in der vorliegenden Erfindung zeigt;
-
15(a) und 15(b) die
Befehlsnutzungsoperationen zeigen, die in der vorliegenden Erfindung ausgeführt werden
können;
-
16(a) und 16(b) die
Operationen zum Anhalten der Überwachung
zeigen, die in der vorliegenden Erfindung ausgeführt werden können;
-
17 eine
Sendesteueroperation zeigt, die in der vorliegenden Erfindung ausgeführt werden kann;
-
18 die
Struktur abstrakter und abgeleiteter Klassen in der vorliegenden
Erfindung zeigt;
-
19 ein
Ablaufplan ist, der eine in der vorliegenden Erfindung ausgeführte Operation
beschreibt, die auf das Zugreifen auf Daten von einer abstrakten
Klasse gerichtet ist;
-
20 die
durch die abstrakte Klasse verwendete Struktur zeigt;
-
21 eine
in der vorliegenden Erfindung in Bezug auf eine erste abgeleitete
Klasse einer abstrakten Klasse ausgeführte Operation zeigt; und
-
22 eine
zweite in der vorliegenden Erfindung ausgeführte Operation zeigt, die auf
eine zweite abgeleitete Klasse einer abstrakten Klasse gerichtet ist.
-
BESCHREIBUNG
DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
In
der Zeichnung, in der überall
in den verschiedenen Ansichten gleiche Bezugszeichen völlig gleiche
oder entsprechende Teile bezeichnen, und insbesondere in ihrer 1 ist
eine Figur veranschaulicht, die verschiedene Maschinen und Computer
für das Überwachen,
das Diagnostizieren und das Steuern der Operation der Maschinen
zeigt. In 1 ist ein erstes Netz 16,
wie z. B. ein lokales Netz (LAN), mit Computer-Arbeitsplatzrechnern 17, 18, 20 und 22 verbunden.
Die Arbeitsplatzrechner können irgendein
Computertyp sein, einschließlich
zu IBM-Personal-Computern kompatible Geräte, unix-gestützte Computer
oder Apple-Macintosh-Com puter. Mit dem Netz 16 sind außerdem ein digitaler
Kopierer/Drucker 24, ein Faxgerät 28 und ein Drucker 32 verbunden.
Die Vorrichtungen 24, 28 und 32 und die
Arbeitsplatzrechner 17, 18, 20 und 22 werden
als Maschinen oder überwachte
Vorrichtungen bezeichnet, wobei andere Vorrichtungstypen einschließlich irgendeiner
der im Folgenden erörterten Vorrichtungen
als die Maschinen oder überwachten Vorrichtungen
verwendet werden können.
Außerdem kann
ein (nicht veranschaulichter) Fax-Server mit dem Netz 16 verbunden
sein und eine Telephon-, ISDN-(diensteintegrierendes digitales Netz)
oder Kabelverbindung besitzen. Außer dass der digitale Kopierer/Drucker 24,
das Faxgerät 28 und
der Drucker 32 mit dem Netz 16 verbunden sind,
können
diese Vorrichtungen außerdem
herkömmliche
Telephon- und/oder ISDN- und/oder Kabelverbindungen 26, 30 bzw. 34 enthalten.
Wie oben erklärt
worden ist, kommunizieren die Büromaschinen
oder die Bürovorrichtungen 24, 28 und 32 über das
Netz 16 durch das Internet oder durch eine direkte Telephon-,
ISDN-, Funk- oder Kabelverbindung mit einer entfernten Überwachungs-,
Diagnose- und Steuerstation, die außerdem als eine Überwachungsvorrichtung
bezeichnet wird.
-
In 1 ist
das Internet im Allgemeinen durch 10 bezeichnet. Das Internet 10 enthält mehrere untereinander
verbundene Computer und Router, die durch 12A–12I bezeichnet
sind. Die Art der Kommunikation über
das Internet ist durch RFC-Dokumente bekannt, die durch FTP bei
NIC.DDN.MIL oder bei FTP NISC.SRI.COM erhalten werden. Die TCP/IP-bezogene
Kommunikation ist z. B. in dem Buch "TCP/IP Illustrated", Bd. 1, The Protocols, von Stevens,
von Addison-Wesley
Publishing Company, 1994, beschrieben, was durch Literaturhinweis
hierin eingefügt
ist.
-
In 1 ist
eine Firewall 14 zwischen das Internet 10 und
das Netz 16 geschaltet. Eine Firewall ist eine Vorrichtung,
die nur autorisierten Computern erlaubt, über das Internet auf ein Netz
oder andere Computer zuzugreifen. Firewalls sind bekannte und kommerziell
verfügbare
Vorrichtungen und/oder Software, wobei sie z. B. SunScreen von Sun
Microsystems Inc. enthalten. Ähnlich
ist eine Firewall 50 zwischen das Internet 10 und
ein Netz 52 geschaltet. Außerdem ist eine Firewall 40 zwischen
das Internet 10 und einen Arbeitsplatzrechner 42 geschaltet.
-
Das
Netz 52 ist ein herkömmliches
Netz, wobei es mehrere Arbeitsplatzrechner 56, 62, 68 und 74 enthält. Diese
Arbeitsplatzrechner können
verschiedene Abteilungen innerhalb einer Firma sein, wie z. B. die
Vertriebs-, Herstellungs-, Kon struktions- und Kundendienst-Abteilungen.
Außer
den über
das Netz 52 verbundenen Arbeitsplatzrechnern gibt es einen Arbeitplatzrechner 42,
der nicht direkt mit dem Netz 52 verbunden ist. Die Informationen
in einer Datenbank, die in einer Platte 46 gespeichert
ist, können unter
Verwendung passender Verschlüsselung
und passender Protokolle über
das Internet von den Arbeitsplatzrechnern gemeinsam benutzt werden,
die direkt mit dem Netz 52 verbunden sind. Außerdem enthält der Arbeitsplatzrechner 42 eine
direkte Verbindung zu einer Telephonleitung und/oder zum ISDN und/oder
zum Kabel 44, wobei auf die Datenbank in der Platte 46 durch
die Telephonleitung, das ISDN oder das Kabel zugegriffen werden
kann. Das durch diese Erfindung verwendete Kabel kann unter Verwendung
eines Kabels implementiert sein, das typischerweise verwendet wird,
um Fernsehprogramme zu übertragen,
unter Verwendung eines Kabels implementiert sein, das für die Hochgeschwindigkeitsübermittlung
digitaler Daten sorgt, das typischerweise mit Computern oder dergleichen
verwendet wird, oder unter Verwendung irgendeines gewünschten
Kabeltyps implementiert sein.
-
Die
Informationen der Büromaschinen 24, 28 und 32 können in
einer oder mehreren der Datenbanken gespeichert sein, die in den
Platten 46, 54, 58, 64, 70 und 76 gespeichert
sind. Jede der Kundendienst-, Vertriebs-, Herstellungs- und Entwicklungsabteilungen
kann ihre eigene Datenbank besitzen oder sie kann eine oder mehrere
Datenbanken gemeinsam benutzten. Jede der Platten, die verwendet werden,
um die Datenbanken zu speichern, ist ein nichtflüchtiger Speicher, wie z. B.
eine Festplatte oder eine optische Platte. Alternativ können die
Datenbanken in irgendeiner Speichervorrichtung gespeichert sein,
einschließlich
Festkörper- und/oder Halbleiterspeichervorrichtungen.
Als ein Beispiel enthält
die Platte 64 die Vertriebs-Datenbank, enthält die Platte 58 die
Herstellungs-Datenbank, enthält
die Platte 70 die Entwicklungs-Datenbank und enthält die Platte 76 die
Kundendienst-Datenbank.
Alternativ speichern die Platten 54 und 46 eine
oder mehrere der Datenbanken.
-
Außer dass
die Arbeitsplatzrechner 56, 62, 68, 74 und 42 mit
dem Internet verbunden sind, können
diese Arbeitsplatzrechner außerdem
eine Verbindung zu einer Telephonleitung, zum ISDN oder zum Kabel
enthalten, die bzw. das eine sichere Verbindung zur überwachten,
diagnostizierten und/oder gesteuerten Maschine schafft und während der
Verbindungsbetriebsart der Kommunikation verwendet wird. Außerdem kann,
falls das Internet, das Telephon, das ISDN oder das Kabel nicht
richtig arbeiten, irgendeines der anderen automatisch für die Kom munikation
verwendet werden.
-
Die
Verwendung einer verbindungslosen Betriebsart der Kommunikation
(z. B. Internet-E-Mail) oder der Übertragung zwischen einer Maschine
und einem Computer für
das Diagnostizieren und Steuern der Maschine ist ein Merkmal der
vorliegenden Erfindung. Alternativ kann die E-Mail, die übertragen
wird, unter Verwendung einer Verbindungsbetriebsart der Kommunikation
implementiert sein. Das IBM Dictionary of Computing von George McDaniel,
1994, definiert, dass eine Übertragung
in der verbindungslosen Betriebsart die Übertragung einer einzelnen
Einheit der Daten von einem Quell-Dienstzugriffspunkt zu einem oder
mehreren Ziel-Dienstzugriffspunkten, ohne eine Verbindung aufzubauen,
ist. Das IBM Dictionary definiert außerdem, dass eine Übertragung
in der Verbindungsbetriebsart die Übertragung von Einheiten der
Daten von einem Quell-Dienstzugriffspunkt über eine Verbindung zu einem
oder mehreren Ziel-Dienstzugriffspunkten ist. Die Verbindung wird vor
der Datenübertragung
aufgebaut und nach der Datenübertragung
freigegeben. Zusätzliche
Informationen über
die Verbindungsbetriebsart und die verbindungslose Betriebsart sind
im Handbook of Computer-Communications Standards, Bd. 1, 2. Auflage, von
William Stallings, 1990, beschrieben, was durch Literaturhinweis
hierin eingefügt
ist. Um Daten von einer DTE (Datenendeinrichtung) zu einer weiteren DTE
zu übertragen,
gibt es eine eindeutige Kennung oder Adresse für jede DTE. Die eindeutige
Kennung oder Adresse ist sowohl in den verbindungslosen Betriebsarten
als auch den Verbindungsbetriebsarten der Kommunikation verwendbar.
-
2 veranschaulicht
die mechanische Anordnung des in 1 veranschaulichten
digitalen Kopierers/Druckers 24. In 2 ist 101 ein
Lüfter
für den
Scanner, ist 102 ein Polygonspiegel, der mit einem Laser-Drucker
verwendet wird, und bezeichnet 103 eine Fθ-Linse,
die verwendet wird, um das Licht von einem (nicht veranschaulichten)
Laser zu kollimieren. Das Bezugszeichen 104 bezeichnet
einen Sensor, um das Licht vom Scanner zu detektieren. 105 ist
eine Linse, um das Licht von dem Scanner auf den Sensor 104 zu
fokussieren, und 106 ist eine Löschlampe, die verwendet wird,
um die Bilder von der photoleitenden Trommel 132 zu löschen. Es
gibt eine Lade-Koronaeinheit 107 und eine Entwicklungswalze 108.
Das Bezugszeichen 109 bezeichnet eine Lampe, die verwendet
wird, um ein abzutastendes Dokument zu beleuchten, während 110, 111 und 112 Spiegel
bezeichnen, die verwendet werden, um das Licht auf den Sensor 104 zu
reflektieren. Es gibt einen Trommelspiegel 113, der verwendet
wird, um das vom Polygon spiegel 102 ausgehende Licht auf die
photoleitende Trommel 132 zu reflektieren. Das Bezugszeichen 114 bezeichnet
einen Lüfter,
der verwendet wird, um den Ladebereich des digitalen Kopierers/Druckers
zu kühlen,
während 115 eine
erste Papierzufuhrwalze ist, die verwendet wird, um das Papier von
der ersten Papierkassette 117 zuzuführen, während 116 ein Tisch
für die
manuelle Zufuhr ist. Ähnlich
ist 118 eine zweite Papierzufuhrwalze für die zweite Kassette 119.
Das Bezugszeichen 120 bezeichnet eine Weiterleitungswalze, 121 ist
eine Registrierungswalze. 122 ist ein Bilddichtesensor
und 123 ist eine Übertragungs-/Trennungs-Koronaeinheit. Das
Bezugszeichen 124 ist eine Reinigungseinheit, 125 ist
ein Vakuumlüfter, 126 veranschaulicht
einen Transportriemen, 127 ist eine Andruckwalze und 128 ist
eine Austrittswalze. Das Bezugszeichen 129 ist eine Heißwalze,
um den Toner auf dem Papier zu fixieren, 130 ist ein Abluftlüfter und 131 ist
der Hauptmotor, der verwendet wird, um das digitale Kopiergerät anzutreiben.
-
3 veranschaulicht
einen Blockschaltplan der in 2 veranschaulichten
elektronischen Komponenten. Die CPU 160 ist ein Mikroprozessor,
wobei sie als der System-Controller wirkt. Es gibt einen Schreib-Lese-Speicher 162,
um die sich dynamisch ändernden
Informationen zu speichern, die die Betriebsparameter des digitalen
Kopiergeräts
enthalten. Ein Festwertspeicher 164 speichert den Programmcode,
der verwendet wird, um das digitale Kopiergerät zu betreiben, und außerdem die
Informationen, die das Kopiergerät
beschreiben (die Daten des statischen Zustands), wie z. B. die Modellnummer,
die Seriennummer des Kopiergeräts
und die vorgegebenen Parameter.
-
Es
gibt eine Mehrfachanschluss-Kommunikationsschnittstelle 166,
die dem digitalen Kopiergerät
erlaubt, mit externen Vorrichtungen zu kommunizieren. Das Bezugszeichen 168 stellt
eine Telephon-, ISDN- oder Kabelleitung dar, während 170 ein Netz darstellt.
Weitere Informationen über
die Mehrfachanschluss-Kommunikationsschnittstelle sind in Bezug
auf 4 beschrieben. Ein Schnittstellen-Controller 172 wird
verwendet, um eine Bedienungskonsole 174 mit einem Systembus 186 zu
verbinden. Die Bedienungskonsole 174 enthält Standard-Eingabe- und
-Ausgabe-Vorrichtungen, die an einem digitalen Kopiergerät zu finden
sind, einschließlich
einer Kopiertaste, den Tasten, um die Operation des Kopiergeräts zu steuern,
wie z. B. die Anzahl der Kopien, Verkleinerung/Vergrößerung,
Dunkelheit/Helligkeit usw. Außerdem
kann eine Flüssigkristallanzeige
innerhalb der Bedienungskonsole 174 enthalten sein, um
die Parameter und Nachrichten des digitalen Kopiergeräts einem
Anwender anzuzeigen.
-
Eine
Speicherschnittstelle 176 verbindet die Speichervorrichtungen
mit dem Systembus 186. Die Speichervorrichtungen enthalten
einen Flash-Speicher 178, der durch einen herkömmlichen
EEPROM und eine Platte 182 ersetzt sein kann. Die Platte 182 enthält eine
Festplatte, eine optische Platte und/oder ein Diskettenlaufwerk.
Es gibt eine Verbindung 180, die mit der Speicherschnittstelle 176 verbunden
ist, die erlaubt, das zusätzliche
Speichervorrichtungen mit dem digitalen Kopiergerät verbunden
werden. Der Flash-Speicher 178 wird verwendet, um halbstatische
Zustandsdaten zu speichern, die die Parameter des digitalen Kopiergeräts beschreiben,
die sich während
der Lebensdauer des Kopiergeräts
selten ändern.
Derartige Parameter enthalten die Optionen und die Konfiguration
des digitalen Kopiergeräts. Eine
Optionsschnittstelle 184 erlaubt, dass zusätzliche
Hardware, wie z. B. eine externe Schnittstelle, mit dem digitalen
Kopiergerät
verbunden wird. Eine Uhr/ein Zeitgeber 187 wird verwendet,
um sowohl die Zeit und das Datum zu verfolgen als auch die verstrichene
Zeit zu messen.
-
Auf
der linken Seite der 3 sind verschiedene Abschnitte,
die das digitale Kopiergerät
bilden, veranschaulicht. Das Bezugszeichen 202 bezeichnet eine
Sortiereinrichtung, wobei sie Sensoren und Aktuatoren enthält, die
verwendet werden, um die Ausgabe des digitalen Kopiergeräts zu sortieren.
Es gibt einen Duplexer 200, der erlaubt, dass ein Duplexbetrieb
durch das digitale Kopiergerät
ausgeführt
wird, wobei er herkömmliche
Sensoren und Aktuatoren enthält.
Das digitale Kopiergerät
enthält
eine Ablageeinheit 198 mit großer Kapazität, die erlaubt, dass Papierschächte, die
eine große
Anzahl von Blättern enthalten,
mit dem digitalen Kopiergerät
verwendet werden. Die Ablageeinheit 198 mit großer Kapazität enthält herkömmliche
Sensoren und Aktuatoren.
-
Eine
Papierzufuhr-Steuereinheit 196 wird verwendet, um die Operation
des Zuführens
des Papiers in und durch das digitale Kopiergerät zu steuern. Ein Scanner 194 wird
verwendet, um die Bilder in das digitale Kopiergerät abzutasten,
wobei er herkömmliche
Abtastelemente, wie z. B. eine Lichtquelle, einen Spiegel usw. enthält. Außerdem werden Scanner-Sensoren
verwendet, wie z. B. ein Ruhelage-Sensor, um festzustellen, dass sich
der Scanner in der Ruhelage befindet, und ein Lampen-Thermistor,
um den richtigen Betrieb der Abtastlampe zu sichern. Es gibt einen
Drucker/Belichter 192, der die Ausgabe des digitalen Kopiergeräts druckt
und einen herkömmlichen
Laser-Druckmechanismus, einen Toner-Sensor und einen Bilddichtesensor
enthält.
Die Schmelzeinrichtung 190 wird verwendet, um den Toner
unter Verwendung einer Hochtemperaturwalze auf der Seite zu schmelzen,
und enthält
einen Ausgangssensor, einen Thermistor, um sicherzustellen, dass
die Schmelzeinrichtung 190 nicht überhitzt wird, und einen Ölsensor.
Außerdem
gibt es eine Schnittstelle 188 für optionale Einheiten, die
verwendet wird, um die optionalen Elemente des digitalen Kopiergeräts, wie
z. B. eine automatische Dokumentenzufuhreinrichtung, einen anderen
Typ der Sortiereinrichtung/Kollationiereinrichtung oder andere Elemente, die
zum digitalen Kopiergerät
hinzugefügt
werden können,
anzuschließen.
-
4 veranschaulicht
die Einzelheiten der Mehrfachanschluss-Kommunikationsschnittstelle 166.
Das digitale Kopiergerät
kann durch eine Centronics-Schnittstelle 220, die die zu
druckenden Informationen empfängt
oder sendet, eine Kabelmodemeinheit 221, die eine Hochgeschwindigkeitsverbindung über Kabel
besitzt, eine SCSI-Schnittstelle 222, eine herkömmliche
Telephonschnittstelle 224, die mit einer Telephonleitung 168A verbunden
ist, eine ISDN-Schnittstelle 226, die mit einer ISDN-Leitung 168B verbunden
ist, eine RS-232-Schnittstelle 228 und eine LAN-Schnittstelle 230,
die mit einem LAN 170 verbunden ist, mit externen Vorrichtungen
kommunizieren. Eine einzelne Vorrichtung, die sowohl mit einem lokalen
Netz als auch einer Telephonleitung verbunden ist, ist von Megahertz
kommerziell verfügbar
und als das Ethernet-Modem bekannt.
-
Die
CPU oder ein anderer Mikroprozessor oder eine andere Schaltungsanordnung
führt einen Überwachungsprozess
aus, um den Zustand jedes der Sensoren des digitalen Kopiergeräts zu überwachen,
wobei ein Sequentialisierungsprozess verwendet wird, um die Befehle
des Codes auszuführen,
der verwendet wird, um das digitale Kopiergerät zu steuern und zu betreiben.
Außerdem
gibt es einen zentralen Systemsteuerprozess, der ausgeführt wird,
um den Gesamtbetrieb des digitalen Kopiergeräts zu steuern, und einen Kommunikationsprozess,
der verwendet wird, um die zuverlässige Kommunikation mit den
externen Vorrichtungen, die mit dem digitalen Kopiergerät verbunden
sind, sicherzustellen. Der Systemsteuerprozess überwacht und steuert die Datenspeicherung
in einem statischen Zustandsspeicher, wie z. B. dem ROM 164 nach 3,
einem halbstatischen Speicher, wie z. B. im Flash-Speicher 178 oder
der Platte 182, oder der dynamischen Zustandsdaten, die
in einem flüchtigen
oder nichtflüchtigen
Speicher, wie z. B. dem RAM 162 oder dem Flash-Speicher 178 oder
der Platte 182, gespeichert sind. Außerdem können die statischen Zustandsdaten
in einer anderen Vorrichtung als dem ROM 164 gespeichert
sein, wie z. B. in einem nichtflüchtigen Spei cher,
der entweder den Flash-Speicher 178 oder die Platte 182 enthält.
-
Die
obigen Einzelheiten sind in Bezug auf ein digitales Kopiergerät beschrieben
worden, die vorliegende Erfindung ist aber gleichermaßen auf
andere Büromaschinen
oder -vorrichtungen anwendbar, wie z. B. auf ein analoges Kopiergerät, ein Faxgerät, einen
Scanner, einen Drucker, einen Fax-Server oder andere Büromaschinen,
oder ein Haushaltsgerät,
mit dem ein Anwender eine Schnittstelle bildet, wie z. B. einen
Mikrowellenherd, einen VCR, eine Digitalkamera, ein Zellulartelephon,
einen Palmtop-Computer usw. Außerdem
enthält
die vorliegende Erfindung andere Maschinentypen, die unter Verwendung
einer Verbindungsbetriebsart oder verbindungslosen Betriebsart der
Kommunikation und außerdem
E-Mail arbeiten,
wie z. B. ein Messsystem, einschließlich Gas-, Wasser- oder Elektrizitäts-Meßsystem,
Verkaufsmaschinen oder irgendeine andere Vorrichtung, die mechanische
Operationen ausführt,
wie z. B. Automobile, und einen Bedarf besitzt, überwacht zu werden, und eine
Funktion ausführt.
Außer
für die Überwachung
von Maschinen für
spezielle Anwendungen und Spezialcomputer kann die Erfindung verwendet
werden, um einen universellen Computer, der die überwachte und/oder gesteuerte
Vorrichtung sein würde,
zu überwachen,
zu steuern und zu diagnostizieren.
-
5 veranschaulicht
ein alternatives Systemdiagramm der Erfindung, in dem verschiedene Vorrichtungen
und Untersysteme mit dem Internet 10 verbunden sind. Es
gibt jedoch keine Anforderung, jede dieser Vorrichtungen oder jedes
dieser Untersysteme als Teil der Erfindung zu besitzen, sondern jede
einzelne Komponente oder jedes einzelne Untersystem, die bzw. das
in 5 veranschaulicht ist, sind außerdem ein Teil der Erfindung.
Ferner können die
in 1 veranschaulichten Elemente mit dem Internet 10 verbunden
sein, was in 5 veranschaulicht ist. In 5 ist
eine Firewall 250 veranschaulicht, die mit einem Intranet 252 verbunden
ist. Einer der mit dem Intranet 252 verbundenen Computer oder
eine der mit dem Intranet 252 verbundenen Vorrichtungen
ist eine Dienstmaschine 254, die Daten 256 enthält oder
mit der Daten 256 verbunden sind, die in einem Datenbankformat
gespeichert sein können.
Die Daten 256 enthalten Historieninformationen, Leistungsinformationen,
Funktionsstörungsinformationen
oder irgendwelche anderen Informationen, die statistische Informationen
des Betriebs oder des Ausfalls oder des Aufbaus und der Komponenten oder
der optionalen Ausrüstung
der Vorrichtungen, die überwacht
werden, enthalten. Die Dienstmaschine 254 kann als die
Vorrichtung oder der Computer implementiert sein, die bzw. der die überwachten
Vorrichtungen auffordert, die Daten zu übertragen, oder die bzw. der
anfordert, dass die Fernsteuerung und/oder die Diagnosetests an
den überwachten
Vorrichtungen ausgeführt
werden. Die Dienstmaschine 254 kann als irgendein Vorrichtungstyp
implementiert sein, wobei sie vorzugsweise unter Verwendung einer
computer-gestützten
Vorrichtung, wie z. B. einem universellen Computer, implementiert
ist.
-
Ein
weiteres Untersystem nach 5 enthält eine
Firewall 258, ein Intranet 260 und einen Drucker 262,
der mit ihm verbunden ist. In diesem Untersystem gibt es keinen
separaten universellen Computer, der zwischen das Intranet 260 (oder
einen anderen Typ des Computer-Netzes) und den Drucker 262 geschaltet
ist, sondern die Funktionen des Sendens und des Empfangens der Nachrichten
der elektronischen Post durch den Drucker 262 (und ähnlich durch
ein Kopiergerät 286)
werden durch die Schaltungsanordnung, einen Mikroprozessor oder
irgendeinen anderen Hardware-Typ ausgeführt, der im Drucker 262 enthalten
ist oder am Drucker 262 angebracht ist.
-
Ein
alternativer Typ des Untersystems enthält die Verwendung eines Internet-Diensteanbieters 264,
der irgendein Typ eines Internet-Diensteanbieter sein kann, einschließlich bekannter
kommerzieller Gesellschaften, wie z. B. America Online, Netcom, CompuServe,
Niftyserve, des Internet-Diensteanbieters Erols oder irgendeines
anderen Internet-Diensteanbieters. In diesem Untersystem ist ein
Computer 266 mit dem Internet-Diensteanbieter 264 durch ein
Modem, wie z. B. ein Telephonleitungsmodem, ein Kabelmodem, Modems,
die irgendeinen Typ von Drähten
verwenden, wie z. B. Modems, die über eine ISDN-Leitung (Leitung
eines diensteintegrierenden digitalen Netzes), eine ADSL (asymmetrische
digitale Anschlussleitung) verwendet werden, Modems, die die Rahmenweiterleitungs-Kommunikation
verwenden, irgendein digitales oder analoges Modem, drahtlose Modems,
wie z. B. ein Hochfrequenzmodem, ein Glasfasermodem oder eine Vorrichtung,
die infrarote Lichtwellen verwendet, verbunden. Ferner ist ein Bürogerät 268 mit
dem Computer 266 verbunden. Als eine Alternative zum Bürogerät 268 (und
irgendeiner anderen in 5 veranschaulichten Vorrichtung)
kann ein anderer Maschinentyp überwacht und
gesteuert werden, wie z. B. ein digitales Kopiergerät, irgendein
Haushaltsgerätetyp,
ein Sicherheitssystem oder ein Versorgungsmessgerät, wie z.
B. ein Versorgungsmessgerät
für Elektrizität, Wasser
oder Gas, oder irgendeine andere hierin erörterte Vorrichtung.
-
In 5 ist
außerdem
eine Firewall 270 veranschaulicht, die mit einem Netz 274 verbunden
ist. Das Netz 274 kann als irgendein Typ eines Computer-Netzes,
wie z. B. ein Ethernet-Netz, implementiert sein. Die Vernetzungs-Software,
die verwendet werden kann, um das Netz zu steuern, enthält irgendeine gewünschte Vernetzungs-Software,
einschließlich Software,
die von Novell oder Microsoft kommerziell verfügbar ist. Das Netz 274 kann
auf Wunsch als ein Intranet implementiert sein. Ein mit dem Netz 274 verbundener
Computer 272 kann verwendet werden, um Informationen von
einem Bürogerät 278 zu
erhalten und Berichte, wie z. B. Berichte, die Probleme zeigen,
die in verschiedenen Maschinen aufgetreten sind, die mit dem Netz
verbunden sind, und einen Bericht der monatlichen Nutzung der mit
dem Netz 274 verbundenen Vorrichtungen, zu erzeugen. In
dieser Ausführungsform
ist ein Computer 276 zwischen das Bürogerät 278 und das Netz 274 geschaltet.
Dieser Computer empfängt
die E-Mail-Kommunikation vom Netz und leitet die geeigneten Befehle
oder Daten oder irgendwelche andere Informationen zum Bürogerät 278 weiter.
Während
dargelegt worden ist, dass das Bürogerät 278 mit
dem Computer 276 verbunden ist, gibt es keine Anforderung
für eine
verdrahtete Verbindung zwischen dem Bürogerät und dem Computer, wobei die
Kommunikation zwischen dem Bürogerät 278 und
dem Computer 276 unter Verwendung von Drähten oder
drahtlosen Verfahren, einschließlich
durch die Verwendung von Hochfrequenzverbindungen und Lichtverbindungen,
die durch eine Infrarotverbindung oder durch Faseroptik erfolgen
können,
ausgeführt
werden kann. Ähnlich
kann jedes der in 5 veranschaulichten verschiedenen
Netze und Intranets unter Verwendung irgendeiner gewünschten
Weise aufgebaut sein, einschließlich durch
den Aufbau drahtloser Netze, wie z. B. Hochfrequenznetze. Die hierin
beschriebene drahtlose Kommunikation kann unter Verwendung von Streuspektrum-Techniken
aufgebaut sein, einschließlich von
Techniken, die einen Streucode verwenden, und von Frequenzsprungtechniken,
wie z. B. das drahtlose Frequenzsprung-Netz, das in der Bluetooth-Spezifikation
offenbart ist, die auf der World-Wide-Web-Site www.bluetooth.com
beschrieben ist, die durch Literaturhinweis hierin eingefügt ist.
-
Ein
weiteres in 5 veranschaulichtes Untersystem
enthält
eine Firewall 280, ein Intranet 284, einen mit
ihm verbundenen Computer 282 und ein Kopiergerät 286.
Der Computer 282 kann verwendet werden, um Berichte zu
erzeugen und diagnostische Prozeduren oder Steuerprozeduren anzufordern. Diese
diagnostischen Prozeduren und Steuerprozeduren können in Bezug auf das Kopiergerät 286 und irgendeine
der anderen Vorrichtungen, die in 5 veranschaulicht
sind oder mit 5 verwendet werden, ausgeführt werden.
Während 5 mehrere Firewalls
veranschaulicht, sind die Firewalls bevorzugte, aber optionale Ausrüstung, wobei
deshalb die Erfindung auf Wunsch ohne die Verwendung von Firewalls
betrieben werden kann.
-
6A veranschaulicht
eine Anwendungseinheit 300, die mit einem typischen E-Mail-Austauschsystem
verbunden ist, das die Komponenten 302, 304, 306, 308, 310, 312, 314, 316 und 318 enthält, die
in einer herkömmlichen
Weise implementiert sein können
und aus 28.1 nach Stevens, oben, entnommen
werden können.
Die Anwendungseinheit 300 kann irgendeine der hierin beschriebenen
Vorrichtungen sein, wobei der Anwender an einem Endgerät 302 irgendeinem
der veranschaulichten Computer entsprechen kann, wie z. B. dem in 5 veranschaulichten
Computer 276. Während 6A den Anwender
an einem Endgerät 302 als
einen Sender veranschaulicht, können
in 6A die Sende- und Empfangsfunktionen entgegengesetzt
sein. Ferner kann es auf Wunsch keine Notwendigkeit geben, dass
sich ein Anwender am Endgerät
befindet. Mit dem Anwender an einem Endgerät 302 ist der Anwenderagent 304 verbunden.
Populäre
Anwenderagenten für
Unix enthalten MH, Berkeley Mail, Elm und Mush. Der Anwenderagent
erzeugt die zu sendenden E-Mail-Nachrichten, wobei er auf Wunsch
diese zu sendenden Nachrichten in einer Warteschlange 306 anordnet.
Die zu sendende Post wird zu einem Nachrichtenübertragungsagenten (MTA) 308 weitergeleitet.
Ein häufiger
MTA für
Unix-Systeme ist Sendmail. Typischerweise tauschen die Nachrichtenübertragungsagenten 308 und 312 die
Kommunikationen unter Verwendung einer TCP-Verbindung (Übertragungskommunikationsprotokoll-Verbindung)
oder einer TCP/IP-Verbindung (Internetprotokoll-Verbindung) oder
ein TCP/IP-Protokoll aus. Es wird angegeben, dass die Kommunikation
zwischen den Nachrichtenübertragungsagenten 308 und 312 über das Internet
erfolgen kann, sie kann aber alternativ über irgendeinen Verbindungstyp
erfolgen, einschließlich irgendeiner
Netzverbindung, wie z. B. eines lokalen Netzes, eines weiträumigen Netzes
und/oder eines Intranets. Ferner kann jede gewünschte Verbindung zwischen
den Nachrichtenübertragungsagenten 308 und 312 verwendet
werden.
-
Von
den Nachrichtenübertragungsagenten 312 werden
die E-Mail-Nachrichten in Anwender-Postfächern 314 gespeichert,
die zum Anwenderagenten 316 übertragen und schließlich zum
Anwender an einem Endgerät 318 übertragen
werden, das als ein Empfangsendgerät arbeitet.
-
Das
TCP schafft eine Verbindungsbetriebsart der Übertragung. Es wird jedoch
normalerweise keine direkte Verbindung zwischen dem sendenden Endgerät 302 und
dem empfangenden Endgerät 318 aufgebaut.
Folglich kann die Übertragung
einer Nachricht der elektronischen Post als eine verbindungslose
Betriebsart der Kommunikation betrachtet werden, wenn auf sie als
zwischen zwei Anwendern oder Endgeräten Bezug genommen wird, wenn
jedoch die Übertragung
zwischen MTAs betrachtet wird, ist die Kommunikation normalerweise
eine Verbindungsbetriebsart der Kommunikation.
-
Da
das Internet ein Netz ist, das für
viele Menschen und Organisationen zugänglich ist, wird es nicht als
sicher betrachtet. Deshalb sollten über das Internet übertragene
Nachrichten verschlüsselt sein,
um die Nachrichten vertraulich zu halten. Es sind Verschlüsselungsmechanismen
bekannt und kommerziell verfügbar,
die mit der vorliegenden Erfindung verwendet werden können. Zum
Beispiel ist eine C-Bibliotheksfunktion, crypto, von Sun Microcomputers
für die
Verwendung mit dem Unix-Betriebssystem verfügbar, wobei andere Verschlüsselungs- und Entschlüsselungsroutinen
bekannt und kommerziell verfügbar
sind und außerdem
mit dieser Erfindung verwendet werden können.
-
Als
eine Alternative zur allgemeinen Struktur nach 6A kann
ein einzelner Computer verwendet werden, der als das Anwenderendgerät und außerdem als
der Nachrichtübertragungsagent
arbeitet. Wie in 6B veranschaulicht ist, ist
die Anwendungseinheit 300 mit einem Computer 301 verbunden,
der den Nachrichtenübertragungsagenten 308 enthält. Auf
Wunsch können
die anderen Komponenten auf der Sendeseite nach 6A im
Computer 301 nach 6B enthalten
sein, einschließlich
des Anwenderagenten 304 und der Warteschlange der zu sendenden
Post 306.
-
Eine
weitere alternative Struktur ist in 6C gezeigt,
in der der Nachrichtenübertragungsagent 308 als
ein Teil der Anwendungseinheit 300 ausgebildet ist. Ferner
ist der Nachrichtenübertragungsagent 308 durch
die TCP-Verbindung 310 mit den Nachrichtenübertragungsagenten 312 verbunden.
Diese Ausführungsform
nach 6C veranschaulicht einen Fall, in dem die Anwendungseinheit 300 direkt
mit der TCP-Verbindung 310 verbunden ist und eine E-Mail-Fähigkeit
besitzt. Ein häufiger
Fall dieser Ausführungsform
nach 6C kann sein, dass die Anwendungseinheit 300 ein
Faxgerät
mit einer E-Mail-Fähigkeit
der RFC 2305 ist (einer einfachen Betriebsart des Telefax
unter Verwendung der Internet-Post).
-
7 veranschaulicht
eine alternative Implementierung der Übertragung von Post, wobei
sie auf 28.3 nach Stevens basiert. 7 veranschaulicht
ein System elektronischer Post, das an jedem Ende ein Weiterleitungssystem
besitzt. Die Anordnung nach 7 erlaubt
einem System in einer Organisation, als ein Post-Hub zu arbeiten. In 7 gibt
es vier MTAs, die zwischen die zwei Anwenderagenten 304 und 316 geschaltet
sind. Diese MTAs enthalten den lokalen MTA 322, den Weiterleitungs-MTA 328,
den Weiterleitungs-MTA 332 und den lokalen MTA 340.
Das für
die Post-Nachrichten am häufigsten
verwendete Protokoll ist das SMTP (einfaches Postübertragungsprotokoll),
das mit dieser Erfindung verwendet werden kann, obwohl jedes gewünschte Postprotokoll
verwendet werden kann. In 7 bezeichnet 320 einen
Sende-Host, der den Anwender an einem Endgerät 302, den Anwenderagenten 304 und
den lokalen MTA 322 enthält. Die Anwendungseinheit 300 ist
mit dem Sende-Host 320 verbunden oder alternativ im Sende-Host 320 enthalten.
Als ein weiterer Fall können
sich die Anwendungseinheit 300 und der Host 320 in
einer Maschine befinden, wobei die Host-Fähigkeit in die Anwendungseinheit 300 eingebaut
ist. Andere lokale MTAs enthalten die lokalen MTA 324 und 326.
Die zu sendende und zu empfangende Post kann in einer Warteschlange
der Post 330 des Weiterleitungs-MTA 328 eingereiht
sein. Die Nachrichten werden über
die TCP-Verbindung 310 übertragen,
die z. B. das Internet sein kann, oder die irgendeinen anderer Netz-
oder Verbindungstyp sein kann.
-
Die
gesendeten Nachrichten werden durch den Weiterleitungs-MTA 332 empfangen
und auf Wunsch in einer Warteschlange der Post 334 gespeichert.
Die Post wird dann zum lokalen MTA 340 eines Empfangs-Hosts 342 weitergeleitet.
Die Post kann in einem oder mehreren der Anwender-Postfächer 314 anordnet
und anschließend
zum Anwenderagenten 316 weitergeleitet und schließlich zum
Anwender an einem Endgerät 318 weitergeleitet
werden. Auf Wunsch kann es nicht erforderlich sein, dass sich der Anwender
am Endgerät
befindet, wobei die Post ohne Anwenderwechselwirkung direkt zum
Endgerät weitergeleitet
werden kann. Andere lokale MTAs auf der Empfangsseite enthalten
den MTA 338 und den lokalen MTA 336, die ihre
eigenen Postfächer,
Anwenderagenten und Endgeräte
besitzen können.
-
Die
verschiedenen durch die vorliegende Erfindung verwendeten Computer,
einschließlich
der Computer 266 und 276 nach 5,
können
implementiert sein, wie in 8 veranschaulicht
ist. Ferner kann jeder andere durch diese Erfindung verwendete Computer
in einer zum in 8 veranschaulichten Computer ähnlichen
Weise implementiert sein, auf Wunsch einschließlich der Dienstmaschine 254,
des Computers 272 und des Computers 282 nach 5. Es
ist jedoch nicht jedes in 8 veranschaulichte Element
in jedem dieser Computer erforderlich. In 8 enthält der Computer 360 eine
CPU 362, die als irgendein Prozessortyp implementiert sein
kann, einschließlich
kommerziell verfügbarer
Mikroprozessoren von Firmen, wie z. B. Intel, Motorola, Hitachi und
NEC. Es gibt einen Arbeitsspeicher, wie z. B. einen RAM 364,
und eine drahtlose Schnittstelle 366, die mit einer drahtlosen
Vorrichtung 368 kommuniziert. Die Kommunikation zwischen
der Schnittstelle 366 und der Vorrichtung 368 kann
irgendein drahtloses Medium verwenden, wie z. B. Funkwellen oder Lichtwellen.
Die Funkwellen können
unter Verwendung einer Streuspektrum-Technik implementiert sein,
wie z. B. der Codemultiplex-Vielfachzugriff-Kommunikation (CDA-Kommunikation)
oder unter Verwendung einer Frequenzsprungtechnik, wie z. B. der,
die in der Bluetooth-Spezifikation offenbart ist.
-
Es
gibt einen ROM 370 und einen Flash-Speicher 371,
obwohl irgendein anderer Typ eines nichtflüchtigen Speichers außer dem Flash-Speicher 371 oder
anstelle des Flash-Speichers 371 verwendet werden kann,
wie z. B. ein EPROM oder ein EEPROM. Eine Tastatur 374 und eine
Maus 376 sind an einen Eingabe-Controller 372 angeschlossen.
Es gibt eine serielle Schnittstelle 378, die mit einer
seriellen Vorrichtung 380 verbunden ist. Außerdem ist
eine parallele Schnittstelle 382 mit einer parallelen Vorrichtung 384 verbunden,
ist eine Schnittstelle 386 eines universellen seriellen Busses
mit einer Vorrichtung 388 eines universellen seriellen
Busses verbunden und gibt es außerdem eine
IEEE-1394-Vorrichtung 400, die üblicherweise als eine Firewire-Vorrichtung
bezeichnet wird, die mit einer IEEE-1394-Schnittstelle 398 verbunden
ist. Die verschiedenen Elemente des Computers 360 sind mit
einem Systembus 390 verbunden. Ein Platten-Controller 396 ist
mit einem Diskettenlaufwerk 394 und einem Festplattenlaufwerk 392 verbunden. Ein
Kommunikations-Controller 406 erlaubt dem Computer 360,
mit anderen Computern zu kommunizieren oder E-Mail-Nachrichten zu
senden, z. B. über eine
Telephonleitung 402 oder ein Netz 404. Ein E/A-Controller
(Eingabe/Ausgabe-Controller) 408 ist mit einem Drucker 410 und
einer Festplatte 412, z. B. unter Verwendung eines SCSI-Busses
(eines Busses einer Schnittstelle für Kleinrechnersysteme) verbunden.
Es gibt außerdem
einen Anzeige-Controller 416, der mit einer CRT (Katodenstrahlröhre) 414 verbunden
ist, obwohl irgendein anderer Typ der Anzeige verwendet werden kann,
einschließlich
einer Flüssigkristallanzeige,
einer Leuchtdiodenanzeige, einer Plasmaanzeige usw.
-
Es
ist ein Merkmal der vorliegenden Erfindung, die Nutzung einer Zielanwendung
einer Anwendungseinheit durch einen Anwender zu überwachen. Der Begriff Anwendungseinheit
bezieht sich in diesem Fall auf ein System, mit dem der Anwender
in Wechselwirkung tritt und das der Anwender steuert, wobei eine
Zielanwendung ein anwendergesteuertes Angebot der Anwendungseinheit
ist. Eine Anwendungseinheit kann z. B. typischerweise ein Computer sein,
wobei eine Zielanwendung dann ein Software-Programm, z. B. ein Textverarbeitungsprogramm, das
auf dem Computer ausgeführt
wird, das ein Anwender betätigt,
z. B. durch das Bewegen eines Zeigers auf einem Computer-Schirm
und das "Klicken" auf bestimmte Befehls-Piktogramme,
um das Software-Programm zu veranlassen, bestimmte Funktionen auszuführen, sein
kann. In diesem Sinn kann eine Anwendungseinheit in der vorliegenden
Erfindung auf irgendeinen der in 1 gezeigten
Arbeitsplatzrechner 17, 18, 20, 22, 56, 62, 68, 74, 42,
die ein Software-Programm ausführen,
den in 6B gezeigten Computer 301,
der ein Software-Programm ausführt,
usw. Bezug nehmen. Eine Anwendungseinheit kann außerdem auf
eine Bilderzeugungsvorrichtung, wie z. B. den digitalen Kopierer/Drucker 24 oder das
Faxgerät 28 oder
den Drucker 32 in den 1 und 2 Bezug
nehmen. In diesem Fall enthält
jede der Vorrichtungs-Anwendungseinheiten eine Anwenderschnittstelle,
wie z. B. eine Bedienungskonsole 174 (siehe 3),
mit der der Anwender in Wechselwirkung tritt und die der Anwender
verwendet, um die Vorrichtungs-Anwendungseinheit
zu steuern. Die vorliegende Erfindung kann einen Anwender überwachen,
der Bedienungselemente auf einer derartigen Bedienungskonsole auswählt. Als
ein weiteres Beispiel könnte
die Anwendungseinheit außerdem
ein Haushaltsgerät,
wie z. B. ein Mikrowellenherd, mit einer Bedienungskonsole sein.
Eine Anwendungseinheit kann außerdem
auf irgendeine andere Vorrichtung, einschließlich Software, Bezug nehmen,
mit der ein Anwender in Wechselwirkung tritt, wobei in diesem Fall
die Zielanwendung auf nur ein Merkmal der Software Bezug nehmen
kann, mit der der Anwender in Wechselwirkung tritt.
-
Es
ist ein Merkmal der vorliegenden Erfindung, die Nutzung einer derartigen
Zielanwendung einer Anwendungseinheit durch den Anwender zu überwachen
und die Daten der überwachten
Nutzung effektiv zu übertragen.
Diese Daten werden typischerweise durch E-Mail durch den Computer 301 nach 6A oder 6B oder
die Anwendungseinheit 300 nach 6C übertragen.
Diese Daten der Nutzung einer Zielanwendung einer Anwendungseinheit
durch einen Anwender können
dann in vielen Arten verwendet werden, z. B. bei der Verbesserung der
Software-Entwicklung, bei der Überwachung
der Nutzung einer Vorrichtung, wie z. B. einer Bilderzeugungsvorrichtung,
der Entdeckung von Anwenderschwierigkeiten mit Haushaltsgeräten und
Software, das Feststellen der am häufigsten verwendeten Merkmale
von Anwendungseinheiten usw.
-
9 zeigt
verschiedene Elemente der vorliegenden Erfindung. Insbesondere zeigt 9 eine Anwendungseinheit 300,
die eine Zielanwendung 505 enthält, die eine Anwenderschnittstelle 510 enthält. Diese
Anwenderschnittstelle 510 ist eine Schnittstelle für einen
Anwender, um die Zielanwendung 505 zu steuern. Wie oben
erörtert
worden ist, kann in einem häufigen
Fall die Zielanwendung 505 ein Software-Programm sein,
das auf einem der z. B. in 1 der vorliegenden
Beschreibung gezeigten Arbeitsplatzrechner 17, 18, 20, 22 abläuft. In
diesem Fall kann die Anwenderschnittstelle 510 eine Anzeige
auf einem Monitor eines dieser Arbeitsplatzrechner sein. Dieser
Fall einer derartigen Zielanwendung ist in 10 ausführlicher
gezeigt, die einen Monitor 600 eines der Arbeitsplatzrechner 17, 18, 20 und 22 zeigt.
In diesem Fall einer Zielanwendung werden mehrere Funktionstasten 605 auf
dem Monitor 600 angezeigt, wobei der Anwender auf diese
Funktionstasten zugreifen kann, indem er z. B. die Positionierung
eines Zeigers mit einer Maus ändert
und auf eine der derartigen Funktionstasten "klickt". Als ein weiteres Beispiel kann der
Anwender, falls der Monitor 600 eine Folientastatur ist,
die Software-Anwendungseinheit steuern, indem er eine der Funktionstasten 605 berührt. In
diesen Fällen überwacht
die vorliegende Erfindung jedes Mal, wenn ein Anwender auf eine
der Funktionstasten 605 "klickt" oder eine der Funktionstasten 605 berührt, wobei
sie die Daten einer derartigen Anwendernutzung für die anschließende Übertragung
protokolliert.
-
Als
ein weiteres Beispiel, und wie oben angegeben worden ist, kann die
Anwendungseinheit 300 eine Bilderzeugungsvorrichtung, wie
z. B. der digitale Kopierer/Drucker 26, das Faxgerät 28 oder
der Drucker 32, die außerdem
in 1 gezeigt sind, sein. In diesem Fall kann die
Anwenderschnittstelle 510 die Form einer Bedienungskonsole
(z. B. der Bedienungskonsole 174 in 3) mit mehreren
Tasten und/oder eines Sensorbildschirms annehmen, die bzw. den ein
Anwender betätigt,
um die Bilderzeugungsvorrichtung zu steuern. Ein spezifisches Beispiel
einer derartigen Anwenderschnittstelle 510 in diesem Fall,
in dem die Anwendungseinheit 300 die Form eines digitalen
Kopierers/Druckers 26, eines Faxgeräts 28 oder eines Druckers 32 annimmt,
ist in 11 gezeigt. In diesem Fall überwacht
die vorliegende Erfindung jedes Mal, wenn der Anwender einen der
Steuerknöpfe
auf der Bedienungskonsole drückt,
wobei sie die Daten einer derartigen Anwendernutzung für die anschließende Übertragung
protokolliert.
-
11 zeigt
ein Beispiel einer Anwenderschnittstelle für eine Bilderzeugungsvorrichtung
ausführlicher. 11 zeigt
eine derartige Anwenderschnittstelle 700, die als ein Beispiel
der Bedienungskonsole 174 in 3 entsprechen
kann. Wie 11 gezeigt ist, kann eine derartige
Bedienungskonsole 700 einen Sensorbildschirm 705 enthalten,
auf dem verschiedene Befehle erscheinen können, die eine Bedienungsperson
durch das Berühren
verschiedener Abschnitte des Sensorbildschirms 705 auswählen kann.
Die Bedienungskonsole 700 kann außerdem eine 10er Kleintastatur 710 und
verschiedene andere Steuerknöpfe 715 enthalten.
In dem Fall einer Bilderzeugungsvorrichtung können die Steuerknöpfe 715 Befehle
für das
Auswählen
einer Papiergröße, das Ändern einer
Vergrößerung,
das Ändern
einer Dunkelheit eines gewünschten
Bildes usw. sein.
-
Wenn
die Anwendungseinheit 300 in 9 eine Bilderzeugungsvorrichtung
ist und die Anwenderschnittstelle 510 der Bedienungskonsole 700,
wie in 11 gezeigt ist, entspricht,
kann die vorliegende Erfindung das Auswählen der in 11 gezeigten Befehle
durch einen Anwender überwachen.
Die in 11 gezeigte Bedienungskonsole 700 kann
mit Modifikationen außerdem
eine Bedienungskonsole für
ein Haushaltsgerät
mit einer Anwenderschnittstelle, wie z. B. einen Mikrowellenherd,
einen VCR, eine Digitalkamera, ein Zellulartelephon, einen Palmtop-Computer
usw., sein.
-
10 und 11 zeigen
Beispiele der Anwendungseinheit 300 und der Anwenderschnittstelle 510 nach 9,
auf die die vorliegende Erfindung angewendet werden kann. Es sollte
für die
Durchschnittsfachleute leicht offensichtlich sein, dass die vorliegende
Erfindung auf verschiedene Typen der Anwendungseinheiten gerichtet
ist, die verschiedene Typen der Anwenderschnittstellen enthalten.
Die vorliegende Erfindung ist im Prinzip auf jede Vorrichtung anwendbar,
die eine Anwenderschnittstelle enthält und für die es erwünscht ist,
zu überwachen,
wie ein Anwender die Anwenderschnittstelle verwendet.
-
In 9 enthält die vorliegende
Erfindung ferner einen Überwachungs-
und Protokollierungsblock 515 und einen Sendeblock 520.
Der Überwachungs-
und Protokollierungsblock 515 überwacht die Nutzung der Anwenderschnittstelle 510 durch den
Anwender und zeichnet die Daten einer derartigen überwachten
Nutzung auf oder protokolliert die Daten einer derartigen überwachten
Nutzung. Zu einem bestimmten Zeitpunkt werden die protokollierten Daten
der Nutzung der Anwenderschnittstelle 510 durch den Anwender
dann zum Sendeblock 520 gesendet, der dann derartige überwachte
Nutzungsdaten zu einem bestimmten Teilnehmer überträgt. Der Überwachungs- und Protokollierungsblock 515 kann in
der Vorrichtung, die die Anwendungseinheit 300 enthält, oder
in einem weiteren Systemsteuerelement implementiert sein. Der Sendeblock
kann außerdem
in der Vorrichtung, die die Anwendungseinheit in 6C enthält, implementiert
sein, oder er kann außerdem
in dem Computer 301 in 6B implementiert
sein, an dem die Anwendungseinheit angebracht ist. Die vorliegende
Erfindung kann außerdem
die Form von Computer-Steuercodes annehmen, die in einem computerlesbaren
Medium aufgezeichnet sind.
-
12A zeigt eine Ansicht eines Gesamtsystems der
Abschnitte der Anwendungseinheit 300. Die 13–17 zeigen
die im Überwachungs- und
Protokollierungsblock 515 und im Sendeblock 520,
die in 9 gezeigt sind, ausgeführten Operationen. Es sollte
angegeben werden, dass die 12–17 das
System und derartige Operationen in einem objektorientierten Format
unter Verwendung der vereinheitlichten Modellierungssprache beschreiben,
wie sie z. B. in "The
Unified Modeling Language User Guide" von Booch u. a., veröffentlicht
von Addison-Wesley,
1999, beschrieben ist.
-
In 12A gibt das Objekt MB 1300 eine zu überwachende
Zielanwendung an. Der gestrichelte Block in 12A enthält Objekte,
die für
die Überwachungsfunktionen
verantwortlich sind, wobei er folglich ein Überwachungsblockobjekt 1200 kollektiv
angibt. Ein CMonitoringIF-Objekt 1305 führt die Überwachungsfunktionen der Zielanwendung
MB 1300 aus. Ein CUsageLogger-Objekt 1315 enthält die Funktionen
für das
Protokollieren der durch das CMonitoringIF-Objekt 1305 erhaltenen überwachten Daten.
Das CUsageLogger-Objekt 1315 tritt mit einem System-Objekt 1325,
um die Systeminformationen zu erhalten, und einem CUsageData-Objekt 1330,
das ein Speicher für
die protokollierten Daten ist, in Wechselwirkung.
-
Ein
UsageDataSendManager-Objekt 1310 tritt mit dem CMonitoringIF-Objekt 1305 in
Wechselwirkung. Dieses UsageDataSendManager-Objekt 1310 steuert
das Übertragen
der überwachten
Daten der Nutzung der Zielanwendung MB 1300 durch einen
Anwender, wie sie durch das CMonitoringIF-Objekt 1305 überwacht
wird. Dieses UsageDataSendManager-Objekt 1310 tritt mit
einem CUsageInformation-Objekt 1730, das die zu übertragenden
Daten modifizieren kann, einem LogFile-Objekt 1605, das außerdem die
zu übertragenden
Daten speichern kann, und einem UsageDataEncoderDecoder-Objekt 1610,
das die Daten zum LogFile-Objekt 1605 codieren
und vom LogFile-Objekt 1605 decodieren kann, in Wechselwirkung.
Das UsageDataSendManager-Objekt 1310 stellt außerdem die
Daten bereit, die zum Sendeblock-Objekt 1600 zu übertragen
sind.
-
12B zeigt einen im System nach 12A ausgeführten
Gesamtbetrieb. Insbesondere ruft, wie in 12B gezeigt
ist, das Überwachungsblock-Objekt 1200 insgesamt
eine Funktion sendUsageData zum Sendeblock-Objekt 1600 auf
und stellt die CUsageInformation dem Sendeblock-Objekt 1600 bereit.
Die CUsageInformation sind Informationen der Nutzung der überwachten
Zielanwendung 505. Diese Operation weist das Sendeblock-Objekt 1600 an,
die vom Überwachungsblock-Objekt 1200 bereitgestellten
CUsageInformation zu senden.
-
Die
durch die in den 12A und 12B angegebenen
verschiedenen Objekte ausgeführten Operationen
werden nun in den 13–17 ausführlicher
erörtert.
In den 13–17 geht
den verschiedenen Funktionen eine Zahl und ein Doppelpunkt voraus.
Es sollte angegeben werden, dass diese Nomenklatur nicht immer die
Reihenfolge der verschiedenen Operationen angibt, da verschiedene Operationen
parallel und zu verschiedenen Zeitpunkten ausgeführt werden können.
-
13 zeigt
eine in der vorliegenden Erfindung ausgeführte Anfangsüberwachungssteuerung. Wie
in 13 gezeigt ist, ruft, wenn eine Zielanwendung
MB hochfährt,
das MB-Objekt 1300 eine Funktion startMonitoring eines
CMonitoringIF-Objekts 1305 auf.
Diese Operation gibt an, dass das Protokollieren der Daten, die
der Nutzung einer Benutzerschnittstelle 510 durch einen
Anwender entsprechen, zu beginnen ist. Das CMonitoringIF-Objekt 1305 ruft dann
eine setTriggerInformation-Funktion eines UsageDataSendManager-Objekts 1310 auf.
Diese Operation legt die Trigger-Informationen fest, die angeben,
wann die protokollierten Daten durch den Sendeblock 520 gesendet
werden sollten. Wie diese Trigger-Informationen festgelegt werden,
ist unter Bezugnahme auf 14, die
im Folgenden erörtert ist,
ausführlicher
erörtert.
-
In 13 ruft
das CMonitoringIF-Objekt 1305 außerdem eine logStartData-Funktion von einem
CUsageLogger-Objekt 1315 auf. Diese Operation kann parallel
zu dem Aufrufen der setTriggerInformation-Funktion des UsageDataSendManager-Objekts 1310 oder
nach dem Aufrufen der setTriggerInformation-Funktion ausgeführt werden.
-
Das
CUsageLogger-Objekt 1315 ruft dann eine GetCurrentTime-Function
eines CTime-Objekts 1320 auf, wobei das CTime-Objekt 1320 dann
die CTime-Daten zum CUsageLogger-Objekt 1315 zurückschickt.
Die zurückgeschickten
CTime-Daten sind
die Daten eines Anfangszeitpunkts der Überwachung. Folglich sendet
diese Operation Daten, die den Anfangszeitpunkt angeben, zum CUsageLogger-Objekt 1315,
sodass bestimmt werden kann, zu welchem Zeitpunkt der Anwender die
Nutzung der Anwenderschnittstelle 510 der Zielanwendung 505, die überwacht
wird, begonnen hat.
-
Das
CUsageLogger-Objekt 1315 ruft dann eine setStartTime-Funktion
des CUsageData-Objekts 1330 auf und sendet die CTime-Daten
des Anfangszeitpunkts zum CUsageData-Objekt 1330. Das CUsageLogger-Objekt 1315 ruft
in einer nächsten Operation
eine getCumulativeUsage-Funktion eines System-Objekts 1325 auf, wobei das
System-Objekt 1325 die UINT-Daten zum CUsageLogger-Objekt 1315 zurückschickt.
Bei dieser Operation erhält
das CUsageLogger-Objekt 1315 vom System-Objekt 1325 die
Anzahl, wie oft die Anwender die zu überwachende Zielanwendung verwendet
haben, wobei das System-Objekt 1325 einen ganzzahligen
Wert des Typs UINT zurückschickt.
Folglich wird bei dieser Operation, wenn die Zielanwendung 505 mehr
als einmal verwendet wird, das CUsageLogger-Objekt 1315 aktualisiert,
um diese mehrfache Nutzung widerzuspiegeln.
-
Das
CUsageLogger-Objekt 1315 ruft dann eine setCumulativeUsage-Funktion
auf und sendet die UINT-Daten nach dem Inkrementieren des Wertes
zum CUsageData-Objekt 1330. Das CUsageLogger-Objekt 1315 ruft
außerdem
eine getSystemID-Funktion des System-Objekts 1325 auf,
wobei das System-Objekt 1325 dann die CString-Daten zum
CUsageLogger 1315 zurückschickt,
die die Systemkennung angeben. Die Systemkennung identifiziert die
Umgebung, unter der die Zielanwendung 505 abläuft. Der
Zweck dieser Identifizierung ist, die Nutzungsdaten von anderen
Systemen auszusortieren. Das CUsageLogger-Objekt 1315 ruft
außerdem die
setSystemID-Funktion des CUsageData-Objekts 1330 auf und sendet
die CString-Daten, die die Systemkennung angeben, zum CUsageData-Objekt 1330.
-
14 zeigt
eine spezifische Steueroperation der Festlegung des Trigger-Typs.
Der Trigger-Typ gibt an, wann die protokollierten Daten einer überwachten
Nutzung einer Anwenderschnittstelle 510 vom Sendeblock 520 zu
senden sind. Insbesondere und wie oben angegeben worden ist, kann
in der vorliegenden Erfindung die Nutzung der Anwenderschnittstelle 510 durch
einen Anwender überwacht werden.
In diesem Fall können
die überwachten
Daten durch den Sendeblock 520 zu verschiedenen Zeitpunkten
gesendet werden. Eine Operation ist, die überwachten Nutzungsdaten durch
den Sendeblock 520 jedes Mal zu senden, nachdem der Anwender die
Zielanwendung 505 beendet hat. Falls z. B. die Zielanwendung 505 eine
Software ist, die der Anwender ablaufen lässt, werden jedes Mal, wenn
der Anwender auf eine Ausstiegsfunktion klickt oder eine Ausstiegsfunktion
berührt,
die überwachten
und protokollierten Daten durch den Sendeblock 520 gesendet.
Als eine Alternative kann der Anwender eine Einstellung ausführen, sodass
die überwachten
Nutzungsdaten nur nach einer vorgegebenen Anzahl von Sitzungen unter
Verwendung der Zielanwendung 505 durch den Sendeblock 520 gesendet
werden. Der Anwender kann z. B. eine Einstellung ausführen oder
eine Vorgabeoperation kann eine Einstellung ausführen, sodass der Sendeblock 520 die überwachten
Nutzungsdaten nur sendet, nachdem der Anwender die Zielanwendung 505 5-mal
verwendet hat. 14 zeigt die Steueroperation
des Festlegens der Trigger-Funktion.
-
In 14 ruft
das MB-Objekt 1300 eine setSendTriggerType-Funktion des
CMonitoringIF-Objekts 1305 auf, wobei das CMonitoringIF-Objekt 1305 wiederum
eine setSendTriggerType-Funktion des UsageDataSendManager-Objekts 1310 aufruft.
Das UsageDataSendManager-Objekt 1310 ruft dann eine setSendTriggerType-Funktion
des System-Objekts 1325 auf und versieht das System-Objekt 1325 mit den
UINT-Daten. Die UINT-Daten sind in diesem Fall die Daten, die den
Trigger-Typ angeben, um die überwachten
Nutzungsdaten nach einer vorgegebenen Anzahl von Sitzungen unter
Verwendung der Zielanwendung 505 zum Sendeblock 520 zu
senden. Diese Operation, die durch diese Schritte in der vorliegenden
Erfindung ausgeführt
wird, legt dadurch einen Trigger-Typ fest, sodass nach einer vorgegebenen Anzahl
von Sitzungen der Zielanwendung 505 durch einen Anwender
ein Trigger zum Sendeblock 520 gesendet wird, um die überwachten
und protokollierten Daten zu einem bestimmten Ort zu senden.
-
Wie
oben angegeben worden ist, kann als eine weitere Operation der vorliegenden
Erfindung das MB-Objekt 1300 eine Anzahl von Sitzungen
festlegen, die auszuführen
ist, bevor ein Trigger zum Sendeblock 520 ausgegeben wird,
oder es kann eine Standardeinstellung ausgeführt werden, um eine Anzahl
von Sitzungen festzulegen, die auszuführen ist, bevor ein Trigger
zum Sendeblock 520 ausgegeben wird. Als ein Beispiel kann
das MB-Objekt 1300 eine Einstellung für das Senden der überwachten
und protokollierten Daten alle 5-mal nach der Verwendung einer Zielanwendung
ausgeben. In dieser Operation ruft nach dem Ausführen der oben angegebenen Operationen,
um festzulegen, dass der Sende- TriggerTyp nach mehreren Sitzungen
gilt, das MB-Objekt 1300 eine setNumberOfSessions-Funktion
des CMonitoringIF-Objekts 1305 auf, die wiederum eine setNumberOfSessions
des UsageDataSendManager-Objekts 1310 aufruft und die UINT-Daten zum UsageDataSendManager-Objekt 1310 sendet,
das wiederum eine setNumberOfSessions-Funktion des System-Objekts 1325 aufruft
und die UINT-Daten zum
System-Objekt 1325 sendet. In diesem Fall geben die UINT-Daten
die Einstellung des MB-Objekts oder die Standardeinstellung der
Anzahl von Sitzungen an, die vor dem Senden des Triggers zum Sendeblock 520 ausführen sind.
Das System-Objekt 1325 speichert folglich die UINT-Daten,
die angeben, wie viele Sitzungen vor dem Senden eines Triggers ausgeführt werden
müssen.
-
15A und 15B zeigen
Szenarios der Überwachungsfunktionen
der Zielanwendung 505, die aufgerufen werden, wenn der
Anwender die Anwenderschnittstelle 510 verwendet. Das heißt, diese Figuren
zeigen die in der vorliegenden Erfindung ausgeführten tatsächlichen Überwachungs- und Protokollierungsoperationen,
wenn als Beispiele ein Anwender auf einen Befehl in einer Software-Anwendung
als die Zielanwendung "klickt" oder einen Knopf an
der Bedienungskonsole eines Haushaltsgeräts, einer Bilderzeugungsvorrichtung
usw. drückt.
-
In 15A ruft, wenn ein Anwender einen speziellen Befehl
von der Anwenderschnittstelle 510 der Zielanwendung 505,
die überwacht
wird, auswählt,
das MB-Objekt 1300 eine
commandUsage-Funktion des CMonitoringIF-Objekts 1305 auf
und sendet die CString-Daten, die den Namen des durch den Anwender
ausgewählten
Befehls oder der durch den Anwender ausgewählten Funktion an der Anwenderschnittstelle 510 angeben,
zum CMonitoringIF-Objekt 1305. Das CMonitoringIF-Objekt 1305 ruft dann
eine logCommandUsage-Funktion des CUsageLogger-Objekts 1315 auf
und sendet die CString-Daten zum CUsageLogger-Objekt 1315.
Diese Funktion gibt dem CUsageLogger-Objekt 1315 an, die
Daten des durch den Anwender ausgewählten Befehls oder der durch
den Anwender ausgewählten Funktion
an der Anwenderschnittstelle 510 zu protokollieren (zu
speichern). Das CUsageLogger-Objekt 1315 sendet dann die
CString-Daten zu einem CUsageData-Objekt 1330 und ruft
dann eine updateCommandUsage-Funktion
des CUsageData-Objekts 1330 auf. Das CUsageData-Objekt 1330 speichert dann
den Namen des ausgewählten
und überwachten
Befehls oder der ausgewählten
und überwachten Funktion
mit einer Häufigkeit
von eins, falls der Name nicht vorhanden ist, d. h., falls der Name
vorher nicht ausgewählt
und dann gespeichert worden ist, oder inkrementiert die dem Namen
zugeordnete Häufigkeit, falls
der Name vorhanden ist, d. h., falls der Name vorher ausgewählt und
dann gespeichert worden ist.
-
Das
Befehlsnutzungsszenario in 15B ist zu
dem in 15A völlig gleich, mit Ausnahme,
dass das CUsageLogger-Objekt 1315 außerdem eine GetCurrentTime-Funktion
des CTime-Objekts 1320 aufruft und in Reaktion das CTime-Objekt 1320 die
CTime-Daten, die einen aktuellen Zeitpunkt angeben, zum CUsageLogger-Objekt 1315 sendet.
Die CTime-Daten werden dann außerdem
zum CUsageData-Objekt 1330 gesendet. In dieser Operation
in 15B wird außer
dem Aufzeichnen, welcher Befehl der Anwenderschnittstelle 510 der
Zielanwendung 505, die überwacht
wird, durch einen Anwender ausgewählt worden ist, der Zeitpunkt,
zu dem ein derartiger Befehl ausgewählt wird, außerdem aufgezeichnet.
-
Das
heißt,
in der Operation in 15A sind die einzigen aufgezeichneten
Daten die des durch den Anwender ausgewählten Befehls der Anwenderschnittstelle 510,
wohingegen die Befehlsnutzungsoperation nach 15B außerdem die
Daten des Zeitpunkts aufzeichnet, zu dem ein derartiger Befehl in
der Anwenderschnittstelle 510 durch den Anwender ausgewählt worden
ist.
-
16A und 16B zeigen
Operationen des Anhaltens der Überwachung
der Nutzung der Anwenderschnittstelle 510 durch den Anwender.
Die Überwachung
der Nutzung der Anwenderschnittstelle 510 durch den Anwender
kann angehalten werden, wenn der Anwender die Zielanwendung 505 beendet.
Wenn z. B. die Zielanwendung 505 Software ist, die auf
einem Arbeitsplatzrechner abläuft,
kann die Überwachung
angehalten werden, wenn der Anwender ein Programm beendet, das ausgeführt wird. Wenn
die Zielanwendung 505 eine Bedienungskonsole eines Haushaltsgeräts, einer
Bilderzeugungsvorrichtung usw. ist, kann die Über wachung angehalten werden,
wenn ein spezielles Piktogramm/ein spezieller Knopf, wie z. B. ein
Startknopf eines Kopiergeräts, gedrückt wird.
Die Überwachung
kann außerdem nach
einer vorgegebenen Zeitperiode, nach einer vorgegebenen Zeitperiode,
während
der der Anwender die Zielanwendung nicht verwendet, usw. angehalten
werden. Ähnliche
Bedingungen für
das Anhalten der Überwachung
der Nutzung der Anwenderschnittstelle 510 durch den Anwender
können
ausgeführt
werden, wenn die Zielanwendung 505 eine Bilderzeugungsvorrichtung,
wie z. B. ein Kopiergerät, ein
Faxgerät,
ein Drucker, ein Scanner, oder ein Haushaltsgerät, wie z. B. ein Mikrowellenherd,
ein VCR, eine Digitalkamera, ein Zellulartelephon, ein Palmtop-Computer
usw. ist. Abermals kann unter derartigen Umständen die Überwachung angehalten werden,
wenn der Anwender einen Ausstiegsbefehl eingibt, nach einer vorgegebenen
Zeit, nach einer vorgegebenen Zeit der Nichtnutzung usw.
-
In 16A ruft, wenn der Anwender aus dem MB-Objekt 1300 aussteigt,
das MB-Objekt 1300 anfangs
eine stopMonitoring-Funktion des CMonitoringIF-Objekts 1305 auf.
Das CMonitoringIF-Objekt 1305 ruft dann eine logStopData-Funktion
des CUsageLogger-Objekts 1315 auf, sodass das CUsageLogger-Objekt 1315 das
Aufzeichnen der Daten der Nutzung der Anwenderschnittstelle 510 durch
den Anwender anhalten kann. Das CUsageLogger-Objekt 1315 ruft
dann eine GetCurrentTime-Funktion des CTime-Objekts 1320 auf,
wobei das CTime-Objekt 1320 dann die CTime-Daten, die den
aktuellen Zeitpunkt angeben, zum CUsageLogger-Objekt 1315 zurückschickt.
Dieser aktuelle Zeitpunkt gibt einen Zeitpunkt an, zu dem die Überwachung
der Nutzung der Schnittstelle 510 durch den Anwender angehalten
worden ist. Das CUsageLogger-Objekt 1315 ruft dann eine
getStartTime-Funktion des CUsageData-Objekts 1330 auf,
die dann die CTime-Daten zurückschickt,
die den gespeicherten Zeitpunkt angeben, zu dem die Überwachung
begonnen worden ist. Nach diesen Operationen besitzt das CUsageLogger-Objekt 1315 die
Daten des Anfangszeitpunkts der Überwachung
und den aktuellen Zeitpunkt des Anhaltens der Überwachung. Dadurch kann das
CUsageLogger-Objekt 1315 die
Zeitdauer bestimmen, während
der die Nutzung der Anwenderschnittstelle 510 durch den
Anwender überwacht
worden ist. Das CUsageLogger-Objekt 1315 ruft
dann eine setDuration-Funktion des CUsageData-Objekts 1330 auf
und sendet die UINT-Daten mit dieser setDuration-Funktion; d. h.,
in diesem Fall geben die UINT-Daten die Zeitdauer an, während der
die Nutzung der Anwenderschnittstelle 510 durch den Anwender überwacht worden
ist. Das CUsageLogger-Objekt 1315 ruft außerdem eine
getCumulativeUsage-Funktion des CUsageData-Objekts 1330 auf,
die dann die angeforderten Daten als die UINT-Daten zurückschickt. Das CUsageLogger-Objekt 1315 sendet
dann diese UINT-Daten
an die setCumulativeUsage-Funktion des System-Objekts 1325 und
ruft die setCumulativeUsage-Funktion des System-Objekts 1325 auf,
sodass das nächste
Mal, wenn die Überwachungsoperation
ausgeführt
wird, der Wert, wie viele Überwachungssitzungen
ausgeführt
worden sind, eins mehr als die aktuelle Ausführung ist.
-
Das
CMonitoringIF-Objekt 1305 ruft außerdem eine getUsageData-Funktion
des CUsageLogger-Objekts 1315 auf, die wiederum die CUsageData zum
CMonitoringIF-Objekt 1305 zurückschickt. Diese Daten enthalten
alle gespeicherten Überwachungsdaten,
einschließlich
der System-ID, der kumulativ Nutzung, der Anfangszeit, der Nutzungsdauer,
der Befehle und der Häufigkeiten.
Das CMonitoringIF-Objekt 1305 sendet dann die CUsageData
mit einem Aufruf für
eine sendUsageDataAtTrigger-Funktion des UsageDataSendManager-Objekts 1310.
Das UsageDataSendManager-Objekt 1310 ruft dann eine getSendTriggerType-Funktion des System-Objekts 1325 auf,
die dann die EXIT-Daten zum UsageDataSendManager-Objekt 1310 zurückschickt.
Der zurückschickte
EXIT-Wert bedeutet, dass die überwachten
Daten jedes Mal zum Sendeblock-Objekt 1600 gesendet werden,
wenn der Anwender die Zielanwendung beendet. Das UsageDataSendManager-Objekt 1310 sendet
dann die CUsageInformation, die alle Nutzungsdaten der Nutzung der
Anwenderschnittstelle 510 durch den Anwender angeben, durch
eine sendUsageData-Funktion des Sendeblock-Objekts 1600.
Das Sendeblock-Objekt 1600 führt dann eine Funktion für das Senden
der Daten an einen bestimmten Teilnehmer aus und schickt dann ein
Bestätigungssignal
JA zum UsageDataSendManager-Objekt 1310 zurück.
-
Diese
in 16A gezeigte Operation entspricht einer Operation,
bei der die Nutzungsdaten anhand eines Trigger-Ereignisses eines
Anwenders, der eine Zielanwendung 505 beendet, gesendet
werden.
-
Die
in 16A angegebene Operation zum Anhalten der Überwachung
ist zu der ähnlich,
die in 16A gezeigt ist, mit Ausnahme,
dass bei dieser Operation die Nutzungsdaten nach einer vorgegebenen
Anzahl von Sitzungen durch das Sendeblock-Objekt 1600 gesendet
werden. Wie oben erörtert
worden ist, können
als ein Merkmal der vorliegenden Erfindung die überwachten Nutzungsdaten nach einer
bestimmten Anzahl von Sitzungen eines Anwenders, der die Zielanwendung 505 verwendet, durch
E-Mail gesendet werden. Die in 16B gezeigte
Operation entspricht dem Senden der Nutzungsdaten nach einer derartigen
bestimmten Anzahl von Sitzungen. Die in 16B ausgeführten Operationen 1–9 sind
dieselben, wie sie in 16A ausgeführt werden,
wobei hiermit ihre redundante Beschreibung nicht wiederholt wird.
In der in 16B gezeigten Operation zum
Anhalten der Überwachung
ruft nach dem Aufrufen der getSendTriggerType-Funktion des System-Objekts 1325 und dem
Zurückschicken
von SSESSION das UsageDataSendManager-Objekt 1310 außerdem eine
getNumberOfSessions-Funktion
des System-Objekts 1325 auf. Diese Operation erhält die vorher
durch einen Anwender festgelegten Daten, die die Anzahl der Sitzungen
angeben, die vor dem Senden der überwachten
Daten in dieser Operation abgeschlossen sein müssen. Wie in 14 gezeigt
ist, kann die Anzahl der Sitzungen im System-Objekt 1325 festgelegt sein.
Das System-Objekt 1325 schickt dann die UINT-Daten, die die Anzahl
der Sitzungen angeben, nach der die Daten gesendet werden sollten,
zum UsageDataSendManager-Objekt 1310 zurück. Das UsageDataSendManager-Objekt 1310 sendet
dann die CUsageData und einen Aufruf für eine storeUsageData-Funktion
eines LogFile-Objekts 1605. In diesem Fall werden, falls
die vorgegebene festgelegte Anzahl von Sitzungen nicht ausgeführt worden
ist, die Daten von einer Sitzung durch das LogFile-Objekt 1605 in
einem nichtflüchtigen
Speicher gespeichert. Das LogFile-Objekt 1605 sendet dann
die CUsageData und eine Protokolldatei zusammen mit einem Aufruf
für eine
encodeUsageData-Funktion an ein UsageDataEncoderDecoder-Objekt 1610.
Diese Operation codiert derartige Daten, komprimiert z. B. derartige
Daten für
die leichtere Speicherung, und speichert die codierten Nutzungsdaten
in der Protokolldatei. Wenn eine geeignete Anzahl von Sitzungen abgeschlossen
ist, sendet das UsageDataSendManager-Objekt 1310 die CUsageInformation
zusammen mit einem Aufruf für
eine sendUsageData-Funktion an das Sendeblock-Objekt 1600,
das dann die Daten sendet und Bestätigungsdaten JA zum UsageDataSendManager-Objekt 1310 zurückschickt.
-
17 zeigt
die im Sendeblock-Objekt 1600 nach den 16A und 16B ausgeführten Operationen.
-
Der
in 17 gezeigte Schritt mit der Nomenklatur 1 entspricht
dem in 16A gezeigten Schritt mit der
Nomenklatur 10 und dem in 16B gezeigten
Schritt mit der Nomenklatur 12. In diesem Schritt ruft
das MonitoringBlock-Objekt 1615 eine sendUsageData-Funktion
eines SendMailTrigger-Objekts 1700 auf und sen det die CUsageInformationDerived1-Daten
an ein SendMailTrigger-Objekt 1700. Das SendMailTrigger-Objekt 1700 schickt
nach dem Aussenden der Informationen außerdem ein Bestätigungssignal
JA zum MonitoringBlock-Objekt 1615. Das SendMailTrigger-Objekt 1700 sendet
dann die CUsageInformationDerived1-Daten an das InputPack-Objekt 1710 und
ruft eine convert-Funktion des InputPack-Objekts 1710 auf. Das InputPack-Objekt 1710 kann
dann die CUsageInformationDerived1-Daten in die Daten CUsageInformationDerived2
mit einem anderen Format umsetzen. Diese CUsageInformationDerived2-Daten
werden dann zum SendMailTrigger-Objekt 1700 gesendet. Der Grund
für diese
Umsetzung ist, alle verschiedenen Datenformate aufzunehmen, die
vom Überwachungsblock
entsprechend verschiedenen Sende-Triggern zum Sendeblock weitergeleitet
werden können.
Nach der Umsetzung ist das Datenformat innerhalb des Sendeblock-Objekts 1600 dasselbe.
-
Das
InputPack-Objekt 1700 ruft dann eine GetXXX-Funktion eines CUsageInformationDerived1-Objekts 1715 auf.
Das CUsageInformationDerived1-Objekt 1715 schickt dann
die angeforderten XXX-Daten zum InputPack-Objekt 1710 zurück. Beispiele
der durch XXX bezeichneten Daten sind die System-ID, die kumulative
Nutzung, die Startzeit, die Dauer und die Befehlsnutzungsdaten.
-
Das
SendMailTrigger-Objekt 1700 sendet dann die Daten CUsageInformationDerived2
zum Security/DataEncode-Objekt 1720 und ruft eine encode-Funktion
des Security/DataEncode-Objekts 1720 auf. Das Security/DataEncode-Objekt 1720 codiert
dann die CUsageInformationDerived2-Daten und schickt eine Textdatei
oder CString-Daten zum SendMailTrigger-Objekt 1700 zurück; d. h.,
die Textdatei oder die CString-Daten sind sicher codierte Daten,
die zum SendMailTrigger-Objekt 1700 zurückgeschickt
werden. Diese Operation in der vorliegenden Erfindung kann die Nutzungsdaten
verschlüsseln, bevor
sie durch E-Mail gesendet werden, um für die Sicherheit zu sorgen.
-
Das
Security/DataEncode-Objekt 1700 ruft dann eine GetXXX-Funktion
von einem CUsageInformationDerived2-Objekt 1725 auf, die
in Reaktion die angeforderten XXX-Daten zum Security/DataEncode-Objekt 1720 zurückschickt,
wie es im Schritt mit der Nomenklatur 3 ausgeführt wird.
-
Das
sendMailTrigger 1700 sendet dann die Textdatei oder die
CString der codierten und verschlüsselten Daten zusammen mit
einem Aufruf einer mailThisData- Funktion
zum SendMail-Objekt 1705. Das SendMail-Objekt 1705 sendet
dann die verschlüsselten
Daten und schickt dann ein Bestätigungssignal
JA, das angibt, dass das SendMail-Objekt 1705 die Daten
gesendet hat, zum SendMailTrigger-Objekt 1700 zurück.
-
Wie
oben unter Bezugnahme auf 12B angegeben
worden ist, ruft in der vorliegenden Erfindung das Überwachungsblock-Objekt 1200 eine
sendUsageData-Funktion des Sendeblock-Objekts 1600 auf
und sendet die CUsageInformation zum Sendeblock-Objekt 1600.
Die CUsageInformation können sich
signifikant verändern.
Spezieller und wie oben dargelegt worden ist, hängen die vom Überwachungsblock-Objekt 1200 zum
Sendeblock-Objekt 1600 gesendeten Informationen von den
verschiedenen Trigger-Informationen und von verschiedenen Informationen
ab, was die Anzahl der Sitzungen der Zielanwendung 505 anbelangt,
die vor dem Senden der Informationen vom Sendeblock-Objekt 1600 auszuführen sind.
Ein Ergebnis dessen ist, dass es Variationen in der Größe der Daten
und der Struktur der Daten gibt, die durch das Sendeblock-Objekt 1600 zu senden
sind. Als ein Beispiel können
in einem Merkmal der vorliegenden Erfindung, wie oben erörtert worden
ist, die vom Überwachungsblock-Objekt 1200 erzeugten überwachten
Daten nach jeder Nutzung einer überwachten
Zielanwendung 505 durch das Sendeblock-Objekt 1600 gesendet
werden. Als eine weitere Option können die überwachten Daten durch das
Sendeblock-Objekt 1600 gesendet werden, nachdem eine bestimmte
Anzahl von Sitzungen, z. B. fünf
Sitzungen, der überwachten
Zielanwendung 505 ausgeführt worden sind. In diesen
zwei verschiedenen Fällen
variieren die Menge der Daten und die Struktur der Daten, die durch
das Sendeblock-Objekt 1600 zu senden sind, signifikant.
-
Eine
Option, um die vom Überwachungsblock-Objekt 1200 gesendeten
verschiedenen Daten zu adressieren, besteht darin, verschiedene
Algorithmen innerhalb des Sendeblock-Objekts 1600 für jeden
verschiedenen Datentyp bereitzustellen. Dieser Systemtyp würde jedoch
dazu führen,
dass das Sendeblock-Objekt 1600 sehr kompliziert wird,
weil es Algorithmen erfordert, um alle verschiedenen Formen der
vom Überwachungsblock-Objekt 1200 bereitgestellten
Daten zu adressieren. Ein weiterer Nachteil beim Sendeblock-Objekt 1600,
das die verschiedenen Formen der Daten adressiert, besteht darin,
dass die Algorithmen im Sendeblock-Objekt 1600 jedes Mal
aktualisiert werden müssten,
wenn eine Änderung
der Überwachungsoperation
des Überwachungsblocks-Objekts 1200 vorgenommen
worden ist.
-
Es
ist ein weiteres Merkmal der vorliegenden Erfindung, das Sendeblock-Objekt 1600 für die Unterschiede
der aus dem Überwachungsblock-Objekt 1200 ausgegebenen
Daten transparent zu machen.
-
Das
heißt,
als ein weiteres Merkmal kann die vorliegende Erfindung ferner einen
Zugang verwenden, der es vermeidet, komplizierte Algorithmen zu erfordern,
die eine signifikante Aktualisierung im Sendeblock-Objekt 1600 erfordern
würden,
um alle verschiedenen Datengrößen und
-strukturen zu adressieren, die vom Überwachungsblock-Objekt 1200 ausgegeben
werden. Spezieller kann die vorliegende Erfindung ferner ein System
verwenden, das eine abstrakte Klasse definiert, um zwischen dem Überwachungsblock-Objekt 1200 und
dem Sendeblock-Objekt 1600 eine Schnittstelle zu bilden.
Diese Operation in der vorliegenden Erfindung erlaubt, dass das
Sendeblock-Objekt 1600 von den Einzelheiten der vom Überwachungsblock-Objekt 1200 gesendeten
CUsageInformation isoliert ist. Das heißt, bei diesem Zugang in der
vorliegenden Erfindung behandelt das Sendeblock-Objekt 1600 alle vom Überwachungsblock 1200 gesendeten
CUsageInformation gleich, wobei es nicht bestimmen muss, wie die Daten
dargestellt sind und wie viele Daten in den CUsageInformation enthalten
sind, d. h., wie viele Sitzungen der Daten darin enthalten sind,
die Datenstruktur usw. Noch spezieller sind in der vorliegenden Erfindung,
wie in 12B gezeigt ist, die vom Überwachungsblock-Objekt 1200 zum
Sendeblock-Objekt 1600 weitergeleiteten CUsageInformation
eine abstrakte Klasse.
-
18 zeigt
ein Klassendiagramm der abstrakten Klasse CUsageInformation 1800 nach 12B. Diese abstrakte Klasse CUsageInformation 1800 wird
verwendet, um zwei Klassen, CUsageDataForOneSession 1805 und
CUsageDataInLogFile 1810, abzuleiten. Die in der abstrakten
CUsageInformation-Klasse 1800 in 18 aufgelisteten
Funktionen sind rein virtuelle Funktionen. Dies bedeutet, dass,
wenn ein Zeiger des sendUsageData-Aufrufs nach 12B auf die abstrakte Klasse CUsage-Informationen 1800 zeigt
und spezieller auf eine der abgeleiteten Klassen CUsageDataForOneSession 1805 oder
CUsageDataInLog-File 1810 zeigt,
die tatsächlichen
auszuführenden
Funktionen die Funktionen sind, die in diesen entsprechenden Klassen
definiert sind. Weitere Einzelheiten der Verwendung einer abstrakten
Klasse können
außerdem
in dem Buch The C++ Programming Language, dritte Auflage, von Bjarne
Stroustrup, Addison Wesley, 1997, Seiten 34–37, gefunden werden, wobei
die Inhalte dieses ganzen Buchs durch Literaturhinweis hierin eingefügt sind.
-
Die
abgeleitete Klasse CUsageDataForOneSession 1805 ist eine
abgeleitete Klasse, die dazu führt,
dass das Sendeblock-Objekt 1600 die überwachten Informationen nach
jeder Sitzung der Zielanwendung 505 sendet, d. h. jedes
Mal, nachdem ein Anwender die überwachte
Zielanwendung 505 beendet. Die CUsageDataInLogFile 1810 ist
eine abgeleitete Klasse, die dazu führt, dass das Sendeblock-Objekt 1600 die überwachten
Informationen von mehreren Sitzungen, z. B. fünf Sitzungen, der überwachten Nutzung
auf einmal sendet.
-
Wie
in 18 gezeigt ist, enthält die abstrakte CUsageInformation-Klasse 1800 verschiedene Funktionen,
die auf der Grundlage der abgeleiteten Klasse variieren. Die Funktionen
enthalten getNextSessionData, getUserID, getCumulativeSession-Number, getStartTimeForSession,
getDurationForSession und getCommandUsageDataMapForSession. 18 zeigt
außerdem
die Deklarationen dieser Funktionen.
-
Die
oben angegebenen Funktionen in der abstrakten Klasse CUsageInformation 1800 sind sämtlich virtuelle
Funktionen, die anfangs auf null gesetzt sind, was sie zu rein virtuellen
Funktionen macht. Was die Funktionen ausführen, ist nicht durch die abstrakte
Klasse CUsageInformation 1800 definiert, sondern durch
die abgeleiteten Klassen CUsageDataForOneSession 1805 und
CUsageDataInLogFile 1810. Das heißt, die abgeleiteten Klassen
CUsageDataForOneSession 1805 und CUsageDataInLogFile 1810 beschreiben
das Verhalten der oben angegebenen Funktionen.
-
19 beschreibt
die Verwendung der in der abstrakten CUsageInformation-Klasse 1800 nach 18 definierten
Funktionen. 19 zeigt folglich die im Sendeblock-Objekt 1600 ausgeführte Operation,
um die vom Überwachungsblock-Objekt 1200 weitergeleiteten
notwendigen Informationen zu extrahieren. In der in 19 gezeigten
Operation ist ein Objektzeiger (objptr) ein Zeiger auf ein CUsageInformation-Objekt,
der tatsächlich
ein Zeiger auf ein Objekt irgendeiner der abgeleiteten Klassen CUsageDataForOneSession 1805 oder
CUsageDataInLog-File 1810 ist.
Solange wie der Anwender des Zeigers den CUsageInformation-Abschnitt
des Objekts, wie z. B. die virtuellen Funktionen, verwendet, gibt
es keinen Verlust von Informationen, um die CUsageInformation sowohl
für die
CUsageDataForOneSession 1805 als auch für die CUsageDataInLogFile 1810 zu
ver wenden. Das Sendeblock-Objekt 1600 sieht nur das CUsageInformation-Objekt
und weiß nichts über die
abgeleiteten Klassen. Die abgeleitete Klasse CUsageDataForOneSession 1805 enthält die interessanten
Informationen in einem Speicher, wie z. B. einen DRAM, während die
abgeleitete Klasse CUsageDataInLogFile 1810 die interessanten
Informationen in einer Datei für
mehrere Sitzungen enthält. Die
in 19 gezeigte Operation erlaubt dem Sendeblock-Objekt 1600,
durch ein einheitliches Verfahren auf die Daten zuzugreifen, ohne
die Anzahl der Sitzungen in den weitergeleiteten Daten oder die Struktur
der weitergeleiteten Daten kennen zu müssen. Im Sendeblock-Objekt 1600 ist
der empfangene Zeiger auf das Objekt von der abstrakten CUsageInformation-Klasse 1800.
Das Überwachungsblock-Objekt 1200 weiß, welche
Informationen zu senden sind, und ordnet den geeigneten Zeiger dem Objekt
zu und leitet dann derartige Informationen zum Sendeblock-Objekt 1600 weiter.
-
Wie
in 19 ausführlicher
gezeigt ist, wird in einem ersten Schritt S5 eine getNextSessionData-Funktion
des Objektzeigers aufgerufen, um zu bestimmen, ob irgendwelche Daten
verfügbar
sind. Wenn JA im Schritt S5, das angibt, dass Daten vorhanden sind,
d. h., dass ein Anwender die Zielanwendung 505 verwendet,
für die
die Nutzung überwacht wird,
dann geht die Operation zum Schritt S10 weiter, in dem die Anwender-ID
von einem Objektzeiger auf eine der abgeleiteten Klassen, der eine
getUserID-Funktion aufruft, erhalten wird. Die Anwender-ID wird
dann im Schritt S15 in der Nachricht angeordnet, d. h. dem Datenpaket,
das durch das Sendeblock-Objekt 1600 zu senden ist. Die
Operation geht dann zum Schritt S20 weiter, in dem eine Sitzungsanzahl
anhand einer getCumulativeSessionNumber-Funktion bestimmt wird,
die durch einen Objektzeiger auf die abgeleitete Klasse aufgerufen
wird. Die Sitzungsanzahl wird dann im Schritt S25 in der Nachricht
angeordnet. Dann wird im Schritt S30 von einem Objektzeiger auf
die abgeleitete Klasse, der eine getStartTimeForSession-Funktion
aufruft, der Startzeitpunkt erhalten, wobei dann der Startzeitpunkt
im Schritt S35 in der Nachricht angeordnet wird. Die Operation geht
dann zum Schritt S40 weiter, in dem die Dauer der Überwachung
durch einen Objektzeiger, der eine getDurationForSession-Funktion
aufruft, bestimmt wird. Die Dauer der Überwachung wird dann im Schritt
S45 in der Nachricht angeordnet. Die Operation geht dann zum Schritt
S50 weiter, in dem die Nutzungsinformationen von der Überwachung durch
einen Objektzeiger, der eine getCommandUsageDataMapForSession-Funktion
aufruft, erhalten werden. Die Nutzungsinformationen werden dann
im Schritt S55 in der Nachricht angeordnet.
-
Die
Operation geht dann zum Schritt S60 weiter, in dem von einem Objektzeiger,
der die getNextSessionData-Funktion aufruft, abermals bestimmt wird,
ob es irgendwelche weitere Daten von der Überwachung der Zielanwendung 505 gibt.
Wenn NEIN im Schritt 60, das angibt, dass es keine weiteren
Daten gibt, dann geht die Operation zum Schritt S70 weiter, in dem
eine Nachricht zurückgeschickt wird,
die angibt, dass die per E-Mail zu verschickende Nachricht zu diesem
Zeitpunkt vervollständigt
und bereit ist, gesendet zu werden. Wenn JA im Schritt S60, dann
kehrt die Operation zum Schritt S20 zurück, wobei sie dann die Sitzungsanzahl,
die Anfangszeit, die Dauer und die Nutzungsinformationen für die nächste Sitzung
der Zielanwendung 505 erhält.
-
Falls
die Bestimmung im anfänglichen
Schritt S5 ein NEIN ist, geht die Operation zu einem Schritt S65
weiter, in dem die Informationen über fehlende Daten in der Informationsnachricht
angeordnet werden, wobei die Operation dann zum Schritt 70 weiter geht.
Das heißt,
im Schritt S5 wird die getNextSessionData-Funktion zum ersten Mal
aufgerufen. Wenn im Schritt S5 ein NEIN zurückgeschickt wird, dann gibt
es keine zu sendenden Daten. Im Ergebnis enthält die per E-Mail zu verschickende
Nachricht die Daten, die die fehlenden Informationen angeben.
-
20 zeigt
eine strukturelle Abbildung für das
Speichern von Informationen, die auf die Verwendung der Befehle
der Zielanwendung 505 gerichtet sind. In 20 entspricht
der Begriff "Schlüssel" einem Befehlsnamen,
während
der Begriff "Wert" einer Häufigkeit
des Aufrufens dieses Befehls entspricht, d. h., wie oft der Befehl
aufgerufen worden ist. Die C++-Sprache stellt eine Standard-Schablonenbibliothek
bereit, die eine Abbildung enthält.
Die Abbildung ist die Tabelle nach 20, die
den Schlüssel
und den Wert zuordnet. Falls der Ablauf der Befehlsnutzung wichtig
ist, kann die "Schlüssel"-Spalte außerdem Zeitinformationen
vom Start enthalten, während
die "Wert"-Spalte den Namen des
Befehls enthalten kann.
-
21 zeigt,
wie das Überwachungsblock-Objekt 1200 den
Zeiger der abgeleiteten CUsageDataForOneSession-Klasse 1805 sendet,
während 22 die
Operation im Überwachungsblock-Objekt 1200 für das Senden
des Zeigers der abgeleiteten Klasse der CUsageDataInLogFile 1810 beschreibt.
-
Wie
in 21 gezeigt ist, ruft anfangs das CMonitoringIF-Objekt 1305 eine
sendUsageDataAtTrigger-Funktion vom UsageDataSendManager-Objekt 1310 auf,
wobei es gleichzeitig die CUsage-Daten an sie sendet, ähnlich wie
in 16A gezeigt ist. Das UsageDataSendManager-Objekt 1310 ruft
dann seine eigene createUsageDataPackager-Funktion auf und erzeugt
das CUsageDataExitPackager-Objekt 2100. Das CUsageDataExitPackager-Objekt 2100 dient
der Funktion des Setzens der überwachten
Nutzungsdaten in das CUsageDataForOneSession-Objekt 1805. Das UsageDataSendManager-Objekt 1310 ruft
dann eine CUsageDataExitPackager-Funktion des CUsageDataExitPackager-Objekts 2100 auf,
um sich selbst zu erzeugen, das wiederum eine CUsageDataForOneSession-Funktion
aufruft, um die abgeleitete CUsageDataForOneSession-Objektklasse 1805 zu
erzeugen. Dann ruft das UsageDataSendManager-Objekt 1310 eine
packageUsageData-Funktion vom CUsageDataExitPackager-Objekt 2100 zusammen
mit dem Senden der CUsageData an sie auf. In Reaktion auf den Aufruf
ruft das CUsageDataExitPackager-Objekt 2100 eine setUsageData-Funktion
vom CUsageDataForOneSession-Objekt 1805 zusammen mit dem Senden
der CUsageData an sie auf. Das UsageDataSendManager-Objekt 1310 ruft
dann seine eigene isDataReadyToSend-Funktion auf, wobei es, wenn die
Daten bereit sind, übertragen
zu werden, eine positive JA-Antwort auf diesen Funktionsaufruf erzeugt. An
diesem Punkt ruft das UsageDataSendManager-Objekt 1310 eine
getPackagedUsageData-Funktion vom CUsageDataExitPackager-Objekt 2100 auf, die
in Erwiderung die CUsageDataForOneSession zum UsageDataSendManager-Objekt 1310 sendet. Das
UsageDataSendManager-Objekt 1310 ruft dann eine sendUsageData-Funktion
des Sendeblock-Objekts 1600 zusammen mit dem Senden der
CUsageInformation an sie auf. Das Sendeblock-Objekt 1600 bestätigt dann
durch das Senden eines Bestätigungs-JA-Signals
an das UsageDataSendManager-Objekt 1310,
dass es diese Informationen gesendet hat.
-
Bei
der in 21 gezeigten Operation empfängt das
UsageDataSendManager-Objekt 1310 die Triggertyp-Signale,
wie z. B. in den 12A, 16A und 16B erörtert
ist. Durch das Ausführen
der in 21 gezeigten Operation kann
das Überwachungsblock-Objekt 1200 den
Zeiger der abgeleiteten CUsageDataForOneSession-Klasse 1805 senden,
was zur Operation des Sendeblock-Objekts 1600 führt, das
die Daten für
eine Sitzung der überwachten
Nutzung einer Zielanwendung 505 durch E-Mail sendet.
-
Bei
der in 22 gezeigten Operation werden
einige derselben Schritte, wie sie in 21 ausgeführt werden,
ebenfalls ausgeführt.
Bei der im Überwachungsblock-Objekt 1200 ausgeführten Operation,
wie in 22 gezeigt ist, ruft das CMoni toringIF-Objekt 1305 anfangs
eine sendUsagaDataAtTrigger-Funktion zusammen mit dem Senden der
CUsageData an das UsageDataSendManager-Objekt 1310 auf.
In Reaktion ruft das UsageDataSendManager-Objekt 1310 seine
eigene createUsageDataPackager-Funktion auf und erzeugt ein CUsageDataSSessionsPackager-Objekt 2200.
Das CUsageDataSSessionsPackager-Objekt 2200 dient der Funktion des
Packens der überwachten
Nutzungsdaten mehrerer Sitzungen einer Zielanwendung 505 in
das CUsageDataInLogFile-Objekt 1810.
-
Das
UsageDataSendManager-Objekt 1310 ruft dann eine packageUsageData-Funktion vom erzeugten
CUsageDataSSessionsPackager-Objekt 2200 zusammen mit dem
Senden der CUsageData an sie auf. Das CUsageDataSSessionsPackager-Objekt 2200 packt
die überwachten
Nutzungsdaten in das CUsageDataInLogFile-Objekt 1810. Das
CUsageDataSSessionsPackager-Objekt 2200 sendet in Reaktion
ein Bestätigungs-JA-Signal an
das UsageDataSendManager-Objekt 1310, um anzugeben, dass
es in der Lage war, die Nutzungsdaten zu packen.
-
Dann
ruft das CUsageDataSSessionsPackager-Objekt 2200 eine getSystemID-Funktion vom CUsageData-Objekt 1330 auf,
die wiederum eine CString mit der System-ID zurück zum CUsageDataSSessionsPackager-Objekt 2200 sendet.
Dann ruft das CUsageDataSSessionsPackager-Objekt 2200 eine
setSystemID-Funktion
von einem Objekt 1810 der abgeleiteten CUsageDataInLogFile-Klasse
zusammen mit dem Senden der CString-Daten an sie auf. Das CUsageDataSSessionsPackager-Objekt 2200 ruft
dann eine storeUsageData-Funktion vom LogFile-Objekt 1605 zusammen
mit dem Senden der CUsageData an sie auf; während das LogFile-Objekt 1605 dann
ein Bestätigungs-JA-Signal
an das CUsageDataSSessionsPackager-Objekt 2200 zurückschickt.
Das CUsageDataSSessionsPackager 2200 ruft dann eine setLogFile-Funktion
vom CUsageDataLogInFile-Objekt 1810 zusammen mit dem Senden der
CLogfile-Daten an sie auf.
-
Während dieser
Operationen ruft das UsageDataSendManager-Objekt 1310 kontinuierlich
eine isDataReadyToSend-Funktion für sich auf, wobei es ein Bestätigungs-JA
erzeugt, wenn die Daten bereit sind, gesendet zu werden. Dann ruft
das UsageDataSendManager-Objekt 1310 eine getPackagedUsageData-Funktion
vom CUsageDataSSessionsPackager-Objekt 2200 auf, die in
Reaktion die CUsageDataInLogFile-Daten zum UsageDataSendManager-Objekt 1310 sendet.
Das UsageDataSendManager-Objekt 1310 ruft dann eine sendUsageData-Funktion zum Sendeblock-Objekt 1600 zusammen
mit dem Senden der CUsageInformation an sie auf. Das Sendeblock-Objekt 1600 bestätigt dann durch
das Senden eines JA-Signals an das CUsageDataSendManager-Objekt 1310,
dass es diese Daten gesendet hat.
-
Das
UsageDataSendManager-Objekt 1310 empfängt in der Operation nach 22 außerdem die
Trigger-Informationen, wie z. B. in den 12A, 16A und 16B gezeigt
ist. Bei der in 22 gezeigten Operation stellt
der UsageDataSendManager-Monitor 1310 die Nutzungsdaten
dem Sendeblock-Objekt 1600 bereit, die die Daten von mehreren Sitzungen
enthalten, z. B. fünf
Sitzungen in den oben erörterten
Beispielen. Dann sendet das Sendeblock-Objekt 1600 die
Daten der mehreren Sitzungen durch E-Mail.
-
Bei
derartigen Operationen in der vorliegenden Erfindung führt das Überwachungsblock-Objekt 1200 verschiedene
Funktionen aus, die für
das Sendeblock-Objekt 1600 transparent
sind. Das heißt,
das Sendeblock-Objekt 1600 führt ungeachtet der ihm vom Überwachungsblock-Objekt 1200 bereitgestellten
Daten dieselben Operationen aus. Im Ergebnis einer derartigen Struktur
und Operation in der vorliegenden Erfindung ist das Sendeblock-Objekt 1600 sehr
einfach. Außerdem
ist, falls irgendwelche Änderungen
in den in einer Vorrichtung ausgeführten Operationen notwendig
sind, wie z. B. in der vorliegenden Erfindung, falls z. B. die Anzahl
der Sitzungen geändert
wird, eine derartige Änderung
für das
Sendeblock-Objekt 1600 transparent,
wobei folglich das Sendeblock-Objekt 1600 nicht umgeschrieben
werden muss, um derartige Änderungen
am Überwachungsblock-Objekt 1200 aufzunehmen.
-
Mit
den oben erörterten
Operationen schafft die vorliegende Erfindung eine Steueroperation
zum Überwachen
der Nutzung einer Anwenderschnittstelle, die ein Teil einer Zielanwendung
ist, durch einen Anwender. Ferner erlaubt eine derartige Operation der
vorliegenden Erfindung, dass die Daten der überwachten Nutzung gespeichert
und zu geeignet ausgewählten
Zeitpunkten durch Internet-Post übertragen
werden. Internet-Post ist eine zweckmäßige Quelle einer derartigen Übertragung,
weil eine derartige Übertragung
der überwachten
Nutzungsdaten typischerweise keine zeitempfindlichen Informationen sind.
Ferner kann die Verwendung eines Internet-Postsystems, um derartige
Daten zu übertragen, die
Kosten der Übertragung
signifikant verringern. Weil ferner die protokollierten Nutzungsdaten
in der vorliegenden Erfindung durch Internet-Post gesendet werden,
können
die protokollierten Nutzungsdaten automatisch zu einem weiteren Computer-System gesendet
werden, das programmiert sein kann, um die durch Internet-Post übertragenen
Nutzungsdaten zu analysieren. Eine derartige durch die vorliegende Erfindung
möglich
gemachte Operation kann die Effizienz des Überwachens und Analysierens
derartiger Nutzungsdaten im hohen Maße vergrößern.
-
In
ihrer bevorzugten Implementierung verwendet die vorliegende Erfindung
Computer, die von der Vorrichtung, an der sie angebracht sind, getrennte
Gehäuse
besitzen. Dies würde
erlauben, dass die Erfindung für
Installationen preiswert implementiert wird, die bereits einen vorhandenen
Computer besitzen, um die gewünschte
Verarbeitung auszuführen, da
die Kosten für
die neue Hardware verringert werden können. Eine derartige Anordnung
kann außerdem
die Implementierung der Erfindung ohne Hardware-Änderungen an der Vorrichtung
erlauben. Auf Wunsch kann jedoch die vorliegende Erfindung implementiert
sein, indem die geeigneten Verarbeitungs- und Datenspeicher-Fähigkeiten
in der Vorrichtung, die überwacht
und/oder gesteuert wird, außer
einem oder als eine Alternative zu einem separaten Computer, der
mit der Vorrichtung verbunden ist, einbezogen werden.
-
Diese
Anwendung bezieht sich auf verschiedene Konzepte und baut auf verschiedenen
Konzepten auf, die in den Patenten und Patentanmeldungen, auf die
durch Querverweise Bezug genommen worden ist, offenbart worden sind
und die durch Literaturhinweis in diese Anmeldung eingefügt worden
sind. Diese Patentanmeldung ist vorgesehen, dass sie nicht nur die
in den in Beziehung stehenden Anmeldungen offenbarten Erfindungen
enthält,
sondern außerdem
die Kombinationen der verschiedenen Merkmale und Funktionen der
einzelnen Ausführungsformen,
die in dieser und in jeder der in Beziehung stehenden Anmeldungen
offenbart worden sind. Folglich kann ein in einer der in Beziehung
stehenden Anmeldungen oder in einem der in Beziehung stehenden Patente
offenbartes Merkmal leicht auf ein in dieser Erfindung offenbartes
Konzept angewendet werden, wobei außerdem die in einer oder mehreren
der anderen Anwendungen offenbarten Konzepte auf die Konzepte oder
Merkmale angewendet werden können,
die in einer anderen (in anderen) der Anwendungen offenbart sind.
Ferner kann eine E-Mail-Nachricht nur für das Senden verwendet werden,
wobei die Kommunikationen in der anderen Richtung unter Verwendung
einer anderen Kommunikationsbetriebsart, wie z. B. einer der anderen
hierin offenbarten Kommunikationsbetriebsarten oder einer Kommunikationsbetriebsart,
die in den in Be ziehung stehenden Patenten und Patentanmeldungen
offenbart ist, ausgeführt
wird.
-
Diese
Erfindung kann zweckmäßig unter Verwendung
eines herkömmlichen
digitalen Universal-Computers oder Mikroprozessors implementiert sein,
der entsprechend den Lehren der vorliegenden Beschreibung programmiert
ist, wie für
die Fachleute der Computer-Technik offensichtlich ist. Geeignete Software-Codierung
kann durch qualifizierte Programmierer auf der Grundlage der Lehren
der vorliegenden Offenbarung leicht vorbereitet werden, wie für die Fachleute
der Software-Technik offensichtlich ist. Die Erfindung kann außerdem durch
die Vorbereitung anwendungsspezifischer integrierter Schaltungen
oder durch das Verbinden eines geeigneten Netzes aus Schaltungen
herkömmlicher
Bauelemente implementiert sein, wie für die Fachleute auf dem Gebiet
leicht offensichtlich ist.
-
Die
vorliegende Erfindung enthält
ein Computer-Programmprodukt, das ein Speichermedium ist, das Befehle
enthält,
die verwendet werden können,
um einen Computer zu programmieren, um einen Prozess der Erfindung
auszuführen.
Der Speichermedium kann irgendeinen Plattentyp, einschließlich Disketten,
optische Platten, CD-ROMs und magnetooptische Daten, ROMs, RAMs, EPROMs,
EEPROMs, magnetische oder optische Karten oder irgendeinen Medientyp,
der für
das Speichern elektronischer Befehle geeignet ist, enthalten, ist
aber nicht darauf eingeschränkt.
-
Offensichtlich
sind angesichts der obigen Lehren zahlreiche zusätzliche Modifikationen und
Variationen der vorliegenden Erfindung möglich. Es ist deshalb selbstverständlich,
dass innerhalb des Umfangs der beigefügten Ansprüche die vorliegende Erfindung
anders in der Praxis angewendet werden kann, als spezifisch hierin
beschrieben ist.