-
HINTERGRUND DER ERFINDUNG
-
GEBIET DER ERFINDUNG
-
Diese
Erfindung bezieht sich auf die Überwachung
von Vorrichtungen, die mit einem Netz verbunden sind. Insbesondere
bezieht sie sich auf ein Verfahren, ein System und ein Computerprogrammprodukt
für die Fernüberwachung
von mit einem Netz verbundenen Vorrichtungen unter Verwendung von
mehreren Protokollen.
-
ERÖRTERUNG DES HINTERGRUNDES
-
Wie
allgemein bekannt ist, umfassen Computersysteme Hardware und Software.
Software umfasst eine Liste von Befehlen, die erzeugt werden, um
Hardwarekomponenten, die ein Computersystem bilden, zu betreiben
und zu managen. Typischerweise umfassen Computersysteme eine Vielfalt
von Hardwarekomponenten/Vorrichtungen, die miteinander eine Schnittstelle
bilden. Das Computersystem kann ein eigenständiger Typ oder ein vernetzter
Typ sein. In einem Computersystem vom vernetzten Typ sind mehrere
verschiedene Vorrichtungen mit einem Netz verbunden und folglich
wird die Kommunikation zwischen diesen verschiedenen Vorrichtungen über das
Netz ermöglicht.
-
Ferner
muss eine Software zum Betreiben der Hardwarevorrichtungen konfiguriert
sein, um eine Kommunikation zwischen den Hardwarevorrichtungen zu
ermöglichen,
so dass ermöglicht
wird, dass die die Hardwarevorrichtungen gemeinsam funktionieren.
Um eine solche Kommunikation zu erleichtern, ist es ferner auch erwünscht, dass
Hardwarevorrichtungen überwacht
werden und der Status jeder Hardwarevorrichtung identifiziert wird,
um sicherzustellen, dass jede Hardwarevorrichtung in einer effizienten
Weise funktioniert.
-
Für die Zwecke
dieser Patentanmeldung hat der Erfindung festgestellt, dass eine
Hardwarevorrichtung, die die mehreren verschiedenen Vorrichtungen
oder Hardwarevorrichtungen steuert, konfiguriert oder überwacht,
als Überwachungsvorrichtung
bezeichnet werden würde,
und die Hardwarevorrichtungen, die durch die Überwachungsvorrichtung gesteuert,
konfiguriert oder überwacht
werden, als "überwachte
Vorrichtungen" bezeichnet
werden würden.
-
Für Hardwarevorrichtungen,
die sich in einem Netz befinden, ist es erwünscht, dass diese Vorrichtungen
für die
Wartung, Verwendung oder andere Zwecke überwacht werden. Angesichts
von Herstellerunterschieden in Bezug auf Hardwarevorrichtungen und
Schnittstellen kann es jedoch schwierig sein, dass eine Überwachungsvorrichtung
mit verschiedenen anderen Vorrichtungen, die mit einem Netz verbunden
sind, kommuniziert. Ein solcher Nachteil verhindert sehr wahrscheinlich,
dass Netzadministratoren entscheidende Informationen über die
Leistung und Effizienz der mit dem Netz verbundenen Vorrichtungen
erhalten.
-
Das
Simple Network Management Protocol (SNMP) ist heute ein tatsächlicher
Industriestandard für die Überwachung
und das Management von Vorrichtungen in Datenkommunikationsnetzen,
Telekommunikationssystemen und anderen global erreichbaren Vorrichtungen.
Praktisch jede Organisation, die mit Computern und zugehörigen Vorrichtungen
umgeht, erwartet, jede solche Vorrichtung über lokale und weiträumige Netze
zentral überwachen,
diagnostizieren und konfigurieren zu können. SNMP ist das Protokoll,
das diese Wechselwirkung ermöglicht.
-
Damit
eine Vorrichtung auf SNMP-Anforderungen antwortet, ist es erwünscht, die
Vorrichtung mit der Software auszustatten, die ihr ermöglicht,
eine SNMP-Anforderung
korrekt zu interpretieren, die von dieser Anforderung angeforderten
Handlungen durchzuführen
und eine SNMP-Antwort zu erzeugen. Die SNMP-Agentensoftware ist typischerweise ein
Untersystem-Softwaremodul, das sich in einer Netzentität befindet.
-
Die
Sammlung von Objekten, die von einem System implementiert werden,
wird im Allgemeinen als Managementinformationsbasis (MIB) bezeichnet.
Eine MIB kann auch eine Datenbank mit Informationen in Bezug auf
die Überwachung
von Vorrichtungen sein. Beispiele von anderen MIBs umfassen eine
Ethernet-MIB, die sich auf Ethernet-Schnittstellen konzentriert;
eine Brücken-MIB,
die Objekte für
das Management von 802.1D-Brücken
definiert, um einige zu nennen.
-
Die
Verwendung von SNMP für
die Überwachung
von Vorrichtungen ist schwierig, da private MIBs Werte umfassen,
die ohne einen gültigen
Schlüssel
schwierig zu entschlüsseln
sind. Eine Firma, die SNMP zum Überwachen
von verschiedenen Vorrichtungen, die mit ihrem Netz verbunden sind,
verwendet, erzeugt einen eindeutigen Identifizierer/Schlüssel, der
als firmeneigene Information der Firma verwaltet wird. Größtenteils
werden die Ergebnisse als binäre
oder ganzzahlige Werte angezeigt. Folglich misslingt es unter Verwendung
von SNMP Ergebnissen, die von den Vorrichtungen, die überwacht
werden ("überwachte
Vorrichtungen") empfangen
werden, einen Benutzer mit dem Status der überwachten Vorrichtungen in
einer für
den Benutzer verständlichen
Weise zu versehen.
-
Ferner
ist es unter Verwendung von SNMP schwierig, detaillierte Informationen über eine überwachte Vorrichtung
ohne einen gültigen
Schlüssel
oder Zugriff auf eine private MIB zu erhalten, um die als binäre oder ganzzahlige
Werte erhaltenen Ergebnisse zu entschlüsseln. Außerdem kann ein gegebenes Protokoll
(z. B. SNMP oder HTTP/HTML) aus verschiedenen Gründen, wie z. B. Zeitablauf
oder verlorenen Paketen, versagen. Einige von einer gegebenen Vorrichtung
unter Verwendung der mehreren Protokolle extrahierten Informationen
können
auch für
jedes Protokoll dupliziert werden. Wenn die Extraktion von Daten
von der Vorrichtung in solchen Situationen nicht korrekt gemanagt
wird, ergeben sich folglich Zeit- und Speicherineffizienzen, da
einige Protokolle mehr Ressourcen erfordern als andere Protokolle.
Außerdem
kann die Informationsextraktion unter Verwendung von einigen Protokollen
viel weniger Verarbeitung und Speicher erfordern als unter Verwendung
von anderen. Ferner können
einige durch ein Protokoll erhaltenen Informationen für die Überwachungsvorrichtung
nützlicher
sein als die durch ein anderes Protokoll erhaltenen.
-
38A–38C zeigen Beispiele von HTML-Dateien, von denen
Informationen in Bezug auf überwachte
Vorrichtungen extrahiert werden. 38A ist
eine Webseite einer Vorrichtung, die den Status der verschiedenen
Farbtoner zeigt. Einige Überwachungssysteme
erhalten die Statusinformationen durch Tasten auf speziellen Text.
Um beispielsweise den Status der Kassette mit schwarzem Toner zu
erhalten, tastet ein System auf den Text "Schwarzer Toner". 38B ist
die Webseite einer Vorrichtung, die ein Problem für einige Überwachungssysteme
darstellt. Um den Status der Abbildungseinheit für irgendeine Farbe zu erhalten,
würde ein
System auf einen des Texts für
die Farbe (d. h. Schwarz, Zyan, Magenta und Gelb) tasten. Das System würde jedoch
auf einen der Texte vom Tonerkassettenstatus tasten, so dass die
Statusinformationen für
die Farbabbildungseinheiten falsch erhalten werden. Das Problem
besteht darin, dass derselbe Text verwendet wird, um verschiedene
Statusinformationen auf derselben Webseite zu erhalten. Die Statusinformationen
werden gewöhnlich
für das
erste Auftreten des Texts erhalten. 38C ist
eine weitere Webseite einer Vorrichtung, bei der ein System auf
den Text "Gesamt" tasten würde, um
die Statusinformationen für
die Gesamtseitenzahl, die gesamten gedruckten Aufträge und das
gesamte verwendete Papier zu erhalten. Das System würde auf
das erste "Gesamt", das es antrifft,
tasten und die Statusinformationen, die es für die gesamten gedruckten Aufträge und das
gesamte verwendete Papier erhält,
falsch zuweisen.
-
Folglich
sind verschiedene Verfahren erforderlich, um Informationen von z.
B. den HTML-Dateien verschiedener Vorrichtungen zu extrahieren.
-
US 2004/255023 und
US 2004/205207 beziehen
sich auf Verfahren zum Extrahieren erforderlicher Informationen,
die einer fernüberwachten
Vorrichtung, die über
ein Netz angeschlossen ist, zugeordnet sind.
-
US 2004/254915 bezieht
sich auf eine Verfahren und ein System zum Parsen eines Informationsstring, um
erforderliche Informationen zu extrahieren, die mit einer fernüberwachten
Vorrichtung in Beziehung stehen, die über ein Netz angeschlossen
ist.
-
Es
ist eine Aufgabe der vorliegenden Erfindung, Informationen von Webseiten
einer überwachten
Vorrichtung zuverlässiger
zu erhalten.
-
Diese
Aufgabe wird gelöst
durch das Verfahren von Anspruch 1, das System von Anspruch 7 und
das Computerprogrammprodukt von Anspruch 12. Bevorzugte Ausführungsformen
der vorliegenden Erfindung sind in den abhängigen Ansprüchen festgelegt.
-
Das
System und Verfahren der vorliegenden Erfindung wenden sich Lösungen für die vorstehend identifizierten
Probleme zu, indem die Überwachung
von Vorrichtungen, die mit einem Netz verbunden sind, ermöglicht wird.
Folglich wird ein Verfahren zur Überwachung
einer Vorrichtung unter verschiedenen Vorrichtungen, die mit einem
Netz kommunikativ gekoppelt sind, beschrieben.
-
Das
Verfahren umfasst das Zugreifen auf eine erste Datenbank über ein
Hardwarezugriffsmodul, wobei die erste Datenbank dazu konfiguriert
ist, mehrere Kommunikationsprotokolle zu unterstützen. In der ersten Datenbank
sind Informationen gespeichert, die von den mehreren Kommunikationsprotokollen
verwendet werden, um verschiedene Informationen, wie z. B. Hersteller-
und Modellinformationen einer überwachten
Vorrichtung, zu erhalten. Ein Kommunikationsprotokoll wird unter
mehreren Kommunikationsprotokollen ausgewählt und das ausgewählte Kommunikationsprotokoll
ist dazu konfiguriert, Statusinformationen von der überwachten
Vorrichtung zu empfangen. Das Verfahren umfasst ferner das Zugreifen
auf die überwachte
Vorrichtung unter Verwendung des ausgewählten Kommunikationsprotokolls
und auf Informationen von der ersten Datenbank, wobei Statusinformationen
von der Vorrichtung, auf die zugegriffen wird, empfangen werden
und die empfangenen Statusinformationen in einer zweiten Datenbank
(DeviceODBC) gespeichert werden.
-
In
einer anderen Ausführungsform
schafft die vorliegende Erfindung ein Verfahren zur Überwachung einer
Vorrichtung unter verschiedenen Vorrichtungen, die mit einem Netz
kommunikativ gekoppelt sind. Mehrere Kommunikationsprotokolle können verwendet
werden, um Informationen von einer überwachten Vorrichtung abzurufen.
Ein SNMP-Protokoll wird beispielsweise zuerst ausgewählt, um
auf eine überwachte
Vorrichtung zuzugreifen, und Vorrichtungsinformationen, die so konfiguriert
sind, dass sie unter Verwendung des SNMP-Protokoll effizient abgerufen
werden, werden erhalten. Anschließend werden HTTP- und FTP-Protokolle
ausgewählt,
um Informationen zu erhalten, die zu einer effizienten Wiedergewinnung
unter Verwendung des SNMP-Protokolls außerstande waren, wenn die Vorrichtung
die zusätzlichen
Protokolle unterstützt.
Die Auswahl von Protokollen wird von einem Protokollmanager in Verbindung
mit in einer Datenbank gespeicherten Unterstützungsinformationen durchgeführt.
-
In
der vorliegenden Erfindung ermöglicht
ein Überwachungssystem
die Überwachung
von mindestens einer Vorrichtung (überwachten Vorrichtung), die
mit einem Netz wie beispielsweise einem LAN oder einem WAN verbunden
ist. Die überwachte
Vorrichtung ist so konfiguriert, dass sie eine eindeutige IP-Adresse
besitzt. Die der überwachten
Vorrichtung zugeordnete IP-Adresse und die Details des Verkäufers/Herstellers
für die überwachte
Vorrichtung werden in einer Datenbank gespeichert. Durch Abtasten
des Netzes und Abfragen der Vorrichtungen können die IP-Adressen der Vorrichtungen erhalten
werden. Solche Verfahren sind bekannt. Daher wird angenommen, dass
die IP-Adressen der zu überwachenden
Vorrichtungen bereits erfasst und in einer Datenbank gespeichert
sind.
-
Die
vorliegende Erfindung legt fest, wie erforderliche Informationen
von den HTML-Informationen
zu extrahieren sind, die von einer überwachten Vorrichtung empfangen
werden. Sobald auf einen Webseitenort der überwachten Vorrichtung zugegriffen
wird (d. h. über
die IP-Adresse und den festgelegten Port), wird eine der überwachten
Vorrichtung entsprechende spezielle Webseite angezeigt. Informationen
in der Webseite liegen in Form von Schlüssel- und Wertpaaren vor. Der
Tonerpegel kann beispielsweise als "Schwarz 100%" auf der Farbdrucker-Webseite gezeigt
werden. Ein HTML/XML-Parser wird verwendet, um die Seite zu analysieren,
um erforderliche Informationen von den Informationen auf der Webseite
wiederzugewinnen. Die erforderlichen Informationen und Parameterwerte,
die von der Webseite unter Verwendung des HTML/XML-Parsers extrahiert
werden, werden in der Unterstützungsdatenbank
gespeichert.
-
Die
vorliegende Erfindung identifiziert auch verschiedene Verkäufer von überwachten
Vorrichtungen und die Vorrichtungsmodelle, die vom Überwachungssystem
unterstützt
werden, wie hierin beschrieben. Da verschiedene Verkäufer der überwachten
Vorrichtungen Informationen über
eine überwachte
Vorrichtung in einer für
den Verkäufer
spezifischen Weise darstellen, ermöglicht die vorliegende Erfindung
die Identifikation des Verkäufers
und des Modells der überwachten
Vorrichtung, um den Betriebsstatus der überwachten Vorrichtung zu bestimmen.
-
Gemäß einem
Aspekt der vorliegenden Erfindung werden ein Verfahren, ein System
und ein Computerprogrammprodukt zum Initialisieren von mehreren
Protokollobjekten geschaffen, die jeweiligen Kommunikationsprotokollen
zugeordnet sind, die verwendet werden, um Statusinformationen in
Bezug auf eine überwachte
Vorrichtung zu extrahieren, die mit einem Netz kommunikativ gekoppelt
ist, umfassend: (1) Auswählen eines
Kommunikationsprotokolls aus den jeweiligen Kommunikationsprotokollen;
(2) Abrufen von Informationen zum Zugreifen auf die Vorrichtung
unter Verwendung des ausgewählten
Kommunikationsprotokolls aus einem ersten Speicher; (3) Zugreifen
auf die Vorrichtung unter Verwendung des ausgewählten Kommunikationsprotokolls
und der vom ersten Speicher abgerufenen Informationen, um zu versuchen,
Verkäuferinformationen
in Bezug auf die Vorrichtung zu erhalten; (4) Feststellen, ob die
Verkäuferinformationen
von der Vorrichtung erhalten wurden; (5) wenn die Verkäuferinformationen
von der Vorrichtung erhalten wurden, Erhalten von Unterstützungsinformationen
zum Extrahieren der Statusinformationen unter Verwendung von jedem
der jeweiligen Kommunikationsprotokolle von einem zweiten Speicher
und Speichern der Verkäuferinformationen und
der jeweiligen Unterstützungsinformationen
in jedem Protokollobjekt der mehreren Protokollobjekte; und (6),
wenn die Verkäuferinformationen
nicht von der Vorrichtung erhalten wurden, Wiederholen der vorangehenden
Schritte, bis die Verkäuferinformationen
erhalten werden oder bis jedes Kommunikationsprotokoll der jeweiligen
Kommunikationsprotokolle ausgewählt
wurde.
-
Gemäß einem
weiteren Aspekt der vorliegenden Erfindung werden ein Verfahren,
ein System und ein Computerprogrammprodukt zum Feststellen, welche
Arten von Statusinformationen von einer überwachten Vorrichtung zu extrahieren
sind, die mit einem Netz kommunikativ gekoppelt ist, geschaffen,
umfassend: (1) Auswählen
eines Kommunikationsprotokolls aus mehreren Kommunikationsprotokollen,
die verwendet werden, um Statusinformationen von der Vorrichtung
zu extrahieren; (2) Abrufen eines Protokollobjekts, das dem ausgewählten Kommunikationsprotokoll
zugeordnet ist, von einem ersten Speicher, wobei das Protokollobjekt mindestens
einen Typ von Statusinformationen, ein Gewicht der Statusinformationen
und Informationen zum Extrahieren des Typs von Statusinformationen
von der Vorrichtung unter Verwendung des ausgewählten Kommunikationsprotokolls
umfasst; (3) Feststellen, ob der Typ von Statusinformationen in
einem zweiten Speicher vorliegt, wobei der zweite Speicher vorher
von der Vorrichtung extrahierte Statusinformationen umfasst; (4) wenn
der Feststellungsschritt feststellt, dass der Typ von Statusinformationen
im zweiten Speicher vorhanden ist, Prüfen, ob das Gewicht der im
Protokollobjekt gespeicherten Statusinformationen größer ist
als ein entsprechendes Gewicht, das den Statusinformationen desselben
Typs, die im zweiten Speicher gespeichert sind, zugeordnet ist;
(5) wenn (a) der Feststellungsschritt feststellt, dass der Typ von
Statusinformationen nicht im zweiten Speicher vorhanden ist, oder
(b) wenn der Feststellungsschritt feststellt, dass der Typ von Statusinformationen
im zweiten Speicher vorhanden ist, aber der Prüfungsschritt feststellt, dass
das Gewicht der Statusinformationen größer ist als das entsprechende
Gewicht, das den Statusinformationen desselben Typs, die im zweiten
Speicher gespeichert sind, zugeordnet ist, Zugreifen auf die Vorrichtung
unter Verwendung des ausgewählten
Kommunikationsprotokolls und der Informationen zum Extrahieren der
Vorrichtung, die im Protokollobjekt enthalten sind, um die Statusinformationen
zu erhalten.
-
Gemäß noch einem
weiteren Aspekt der vorliegenden Erfindung werden ein Verfahren,
ein System und ein Computerprogrammprodukt zum Mangen von Informationen
in Bezug auf mindestens eine überwachte Vorrichtung,
die mit einem Netz kommunikativ gekoppelt ist, geschaffen, umfassend:
(1) Auswählen
eines Kommunikationsprotokolls aus mehreren Kommunikationsprotokollen,
die verwendet werden, um Statusinformationen von der mindestens
einen überwachten
Vorrichtung zu extrahieren; (2) Abrufen eines Protokollobjekts,
das dem ausgewählten
Kommunikationsprotokoll zugeordnet ist, von einem ersten Speicher,
wobei das Protokollobjekt Verkäufer-
und Modellinformationen der mindestens einen überwachten Vorrichtung umfasst; (3)
Erhalten eines Verkäufernamens
der überwachten
Vorrichtung der mindestens einen überwachten Vorrichtung, die
vom ausgewählten
Kommunikationsprotokoll unterstützt
wird, vom Protokollobjekt; (4) Erhalten eines dem erhaltenen Verkäufernamen
entsprechenden Modellnamens vom Protokollobjekt; (5) Erzeugen eines
beschreibenden String unter Verwendung des erhaltenen Verkäufernamens
und des erhaltenen Modellnamens; (6) Feststellen, ob der beschreibende
String in einem zweiten Speicher vorhanden ist; und (7) wenn der
Feststellungsschritt feststellt, dass der beschreibende String nicht
im zweiten Speicher vorhanden ist, Speichern des beschreibenden
String im zweiten Speicher in Zusammenhang mit dem Protokollobjekt.
-
Gemäß noch einem
weiteren Aspekt der vorliegenden Erfindung werden ein Verfahren,
ein System und ein Computerprogrammprodukt zum Managen von Informationen,
die zum Extrahieren von Statusinformationen von einer überwachten
Vorrichtung erforderlich sind, die mit einem Netz kommunikativ gekoppelt
ist, geschaffen, umfassend: (1) Auswählen eines Kommunikationsprotokolls
aus mehreren Kommunikationsprotokollen, die verwendet werden, um
die Statusinformationen von der überwachten
Vorrichtung zu extrahieren; (2) Abrufen eines beschreibenden String
aus einem ersten Speicher, wobei der beschreibende String einen Verkäufernamen
und einen entsprechenden Modellnamen umfasst, die vom ausgewählten Kommunikationsprotokoll
unterstützt
werden; (3) Extrahieren des Verkäufernamens
und des entsprechenden Modellnamens vom beschreibenden String; (4)
Feststellen, ob der extrahierte Verkäufername und der extrahierte
Modellname einem Verkäufernamen
bzw. Modellnamen der überwachten
Vorrichtung entsprechen; und (5), wenn der Feststellungsschritt
feststellt, dass der extrahierte Verkäufername und der extrahierte
Modellname dem Verkäufernamen
bzw. dem Modellnamen der überwachten
Vorrichtung entsprechen, Zugreifen auf die Vorrichtung, um die Statusinformationen
zu erhalten, unter Verwendung des ausgewählten Protokolls.
-
Gemäß noch einem
weiteren Aspekt der vorliegenden Erfindung werden ein Verfahren,
ein System und ein Computerprogrammprodukt zum Feststellen, welche,
falls überhaupt,
Kommunikationsprotokolle verwendet werden können, um Statusinformationen
in Bezug auf eine Netzvorrichtung zu extrahieren, geschaffen, umfassend:
(1) Auswählen
eines Kommunikationsprotokolls aus mehreren Kommunikationsprotokollen; (2)
Erhalten von Informationen zum Zugreifen auf die Netzvorrichtung
unter Verwendung des ausgewählten Kommunikationsprotokolls
von einem Vorrichtungsobjekt, das der Netzvorrichtung zugeordnet
ist; (3) Feststellen, ob auf die Netzvorrichtung unter Verwendung
des ausgewählten
Kommunikationsprotokolls und der Informationen zum Zugreifen auf
die Netzvorrichtung, die vom Vorrichtungsobjekt erhalten werden,
zugegriffen werden kann; (4) wenn der Feststellungsschritt feststellt,
dass auf die Netzvorrichtung nicht unter Verwendung des ausgewählten Kommunikationsprotokolls
zugegriffen werden kann, Entfernen der Informationen zum Zugreifen
auf die Netzvorrichtung unter Verwendung des ausgewählten Kommunikationsprotokolls
vom Vorrichtungsobjekt; und (5) wenn der Feststellungsschritt feststellt,
dass auf die Netzvorrichtung unter Verwendung des ausgewählten Kommunikationsprotokolls
zugegriffen werden kann, Durchführen
von weiteren Tests, um festzustellen, ob das ausgewählte Kommunikationsprotokoll
verwendet werden kann, um die Statusinformationen von der Netzvorrichtung
zu extrahieren.
-
Ferner
umfasst der Schritt zum Durchführen
von weiteren Tests: (1) Feststellen, ob ein Verkäufer der Netzvorrichtung von
der Netzvorrichtung unter Verwendung des ausgewählten Kommunikationsprotokolls
erhalten werden kann; (2) wenn der vorangehende Feststellungsschritt
feststellt, dass der Verkäufer
nicht unter Verwendung des ausgewählten Kommunikationsprotokolls
erhalten werden kann, Prüfen,
ob das ausgewählte Kommunikationsprotokoll
einen allgemeinen Verkäufer
unterstützt,
und wenn das ausgewählte
Kommunikationsprotokoll den allgemeinen Verkäufer nicht unterstützt, Entfernen
der Informationen zum Zugreifen auf die Netzvorrichtung unter Verwendung
des ausgewählten
Kommunikationsprotokolls vom Vorrichtungsobjekt; (3) wenn der vorangehende
Feststellungsschritt feststellt, dass der Verkäufer unter Verwendung des ausgewählten Kommunikationsprotokolls
erhalten werden kann, Erhalten des Verkäufers von der Netzvorrichtung
und Feststellen, ob der erhaltene Verkäufer vom ausgewählten Kommunikationsprotokoll
unterstützt
wird; (4) wenn der erhaltene Verkäufer nicht vom ausgewählten Kommunikationsprotokoll
unterstützt
wird, Prüfen,
ob das ausgewählte
Kommunikationsprotokoll den allgemeinen Verkäufer unterstützt, und
wenn das ausgewählte Kommunikationsprotokoll
den allgemeinen Verkäufer
nicht unterstützt,
Entfernen der Informationen zum Zugreifen auf die Netzvorrichtung
unter Verwendung des ausgewählten
Kommunikationsprotokolls vom Vorrichtungsobjekt; und (5) wenn der
erhaltene Verkäufer
vom ausgewählten
Kommunikationsprotokoll unterstützt wird,
Durchführen
von weiteren Tests in Bezug auf die Modellinformationen.
-
Außerdem umfasst
der Schritt zum Durchführen
von weiteren Tests in Bezug auf die Modellinformationen: (1) Feststellen,
ob ein Modell der Netzvorrichtung von der Netzvorrichtung unter
Verwendung des ausgewählten
Kommunikationsprotokolls erhalten werden kann; (2) wenn der vorangehende
Feststellungsschritt feststellt, dass das Modell nicht unter Verwendung
des ausgewählten
Kommunikationsprotokolls erhalten werden kann, Prüfen, ob
das ausgewählte
Kommunikationsprotokoll ein allgemeines Modell unterstützt, und
wenn das ausgewählte
Kommunikationsprotokoll das allgemeine Modell nicht unterstützt, Entfernen
der Informationen zum Zugreifen auf die Netzvorrichtung unter Verwendung
des ausgewählten
Kommunikationsprotokolls vom Vorrichtungsobjekt; (3) wenn der vorangehende
Feststellungsschritt feststellt, dass das Modell unter Verwendung
des ausgewählten
Kommunikationsprotokolls erhalten werden kann, Erhalten des Modells
von der Netzvorrichtung und Feststellen, ob das erhaltene Modell
vom ausgewählten
Kommunikationsprotokoll unterstützt
wird; und (4) wenn das erhaltene Modell vom ausgewählten Kommunikationsprotokoll
nicht unterstützt wird,
Prüfen,
ob das ausgewählte
Kommunikationsprotokoll das allgemeine Modell unterstützt, und
wenn das ausgewählte
Kommunikationsprotokoll das allgemeine Modell nicht unterstützt, Entfernen
der Informationen zum Zugreifen auf die Netzvorrichtung unter Verwendung
des ausgewählten
Kommunikationsprotokolls aus dem Vorrichtungsobjekt.
-
Außerdem werden
gemäß einem
weiteren Aspekt der vorliegenden Erfindung ein Verfahren, ein System
und ein Computerprogrammprodukt zum Extrahieren von Statusinformationen
in Bezug auf eine überwachte
Vorrichtung, die mit einem Netz kommunikativ gekoppelt ist, unter
Verwendung eines ausgewählten Kommunikationsprotokolls
geschaffen, umfassend: (1) Abrufen von mehreren Implementierungsidentifizierern von
einem ersten Speicher, wobei jeder Implementierungsidentifizierer
eine erste Zugriffsfunktion, die dazu konfiguriert ist, auf die überwachte
Vorrichtung unter Verwendung des ausgewählten Kommunikationsprotokolls
zuzugreifen, um Verkäufer-
und Modellinformationen der überwachten
Vorrichtung zu erhalten, und eine zweite Zugriffsfunktion, die dazu
konfiguriert ist, auf die überwachte
Vorrichtung unter Verwendung des ausgewählten Kommunikationsprotokolls
zuzugreifen, um Statusinformationen der überwachten Vorrichtung zu erhalten,
identifiziert; (2) Auswählen
eines Implementierungsidentifizierers aus den mehreren Implementierungsidentifizierern;
(3) Zugreifen auf die Vorrichtung unter Verwendung des ausgewählten Kommunikationsprotokolls
und der ersten Zugriffsfunktion, die dem ausgewählten Implementierungsidentifizierer
zugeordnet ist, um zu versuchen, Verkäufer- und Modellinformationen
in Bezug auf die Vorrichtung zu erhalten; (4) Feststellen, ob die
Verkäufer-
und Modellinformationen von der Vorrichtung erhalten wurden; (5)
wenn die Verkäufer-
und Modellinformationen von der Vorrichtung erhalten wurden, Speichern
des ausgewählten
Implementierungsidentifizierers in Zusammenhang mit den erhaltenen
Verkäufer-
und Modellinformationen in einem zweiten Speicher; und (6) wenn
die Verkäufer-
und Modellinformationen nicht von der Vorrichtung erhalten wurden, Wiederholen
der Auswahl-, Zugriffs- und Feststellungsschritte, bis die Verkäufer- und
Modellinformationen erhalten werden oder bis jeder Implementierungsidentifizierer
in den mehreren Implementierungsidentifizierern ausgewählt wurde.
-
Gemäß einem
weiteren Aspekt der vorliegenden Erfindung werden überdies
ein Verfahren, ein System und ein Computerprogrammprodukt zum Extrahieren
von Informationen in Bezug auf eine überwachte Vorrichtung, die
kommunikativ mit einem Netz gekoppelt ist, unter Verwendung eines
ausgewählten
Kommunikationsprotokolls geschaffen, umfassend: (1) Abrufen von
mehreren Implementierungsidentifizierern von einem ersten Speicher,
wobei jeder Implementierungsidentifizierer (a) eine erste Zugriffsfunktion,
die dazu konfiguriert ist, auf die überwachte Vorrichtung unter
Ver wendung des ausgewählten
Kommunikationsprotokolls zuzugreifen, um Verkäufer- und Modellinformationen der überwachten
Vorrichtung zu erhalten, und (b) eine zweite Zugriffsfunktion, die
dazu konfiguriert ist, auf die überwachte
Vorrichtung unter Verwendung des ausgewählten Kommunikationsprotokolls
zuzugreifen, um Statusinformationen der überwachten Vorrichtung zu erhalten, identifiziert;
(2) Auswählen
eines Implementierungsidentifizierers aus den mehreren Implementierungsidentifizierern;
(3) Zugreifen auf die Vorrichtung unter Verwendung des ausgewählten Kommunikationsprotokolls
und der ersten Zugriffsfunktion, die dem ausgewählten Implementierungsidentifizierer
zugeordnet ist, um zu versuchen, Verkäufer- und Modellinformationen
in Bezug auf die Vorrichtung zu erhalten; (4) Feststellen, ob die
Verkäufer-
und Modellinformationen von der Vorrichtung erhalten wurden; (5)
wenn der Feststellungsschritt feststellt, dass die Verkäufer- und
Modellinformationen von der Vorrichtung erhalten wurden, Speichern
des ausgewählten
Implementierungsidentifizierers in Zusammenhang mit den erhaltenen
Verkäufer-
und Modellinformationen in einem zweiten Speicher; und (6) wenn
der Feststellungsschritt feststellt, dass die Verkäufer- und Modellinformationen
nicht von der Vorrichtung erhalten wurden, Wiederholen der Auswahl-,
Zugriffs- und Feststellungsschritte, bis die Verkäufer- und
Modellinformationen erhalten werden oder bis jeder Implementierungsidentifizierer
in den mehreren Implementierungsidentifizierern ausgewählt wurde.
-
Gemäß einem
weiteren Aspekt der vorliegenden Erfindung werden überdies
ein Verfahren, ein System und ein Computerprogrammprodukt zum Managen
von Informationen geschaffen, die dazu konfiguriert sind, von einem
ausgewählten
Kommunikationsprotokoll verwendet zu werden, um Informationen in
Bezug auf eine überwachte
Vorrichtung unter verschiedenen Vorrichtungen, die kommunikativ
mit einem Netz gekoppelt sind, zu extrahieren, umfassend: (1) Abrufen
von mehreren Implementierungsidentifizierern von einem ersten Speicher,
wobei jeder Implementierungsidentifizierer (a) eine erste Zugriffsfunktion,
die dazu konfiguriert ist, auf die überwachte Vorrichtung unter
Verwendung des ausgewählten
Kommunikationsprotokolls zuzugreifen, um Verkäufer- und Modellinformationen
der überwachten
Vorrichtung zu erhalten, und (b) eine zweite Zugriffsfunktion, die
dazu konfiguriert ist, auf die überwachte
Vorrichtung unter Verwendung des ausgewählten Kommunikationsprotokolls
zuzugreifen, um Statusinformationen der überwachten Vorrichtung zu erhalten,
identifiziert; (2) Auswählen
eines Implementierungsidentifizierers aus den mehreren Implementierungsidentifizierern;
(3) Zugreifen auf eine externe Informationsspeichereinheit, um Unterstützungsinformationen
zum Zugreifen auf die überwachte
Vorrichtung zu erhalten, unter Verwendung von mindestens einer der
ersten Zugriffsfunktion und der zweiten Zugriffsfunktion unter Verwendung
des ausgewählten Kommunikationsprotokolls,
wobei die Unterstützungsinformationen
Vorbedingungsinformationen umfassen, die zum Erhalten der Status-
oder der Verkäufer-
und Modellinformationen von der überwachten
Vorrichtung verwendet werden; und (4) Speichern der Unterstützungsinformationen
in mindestens einer internen Speichertabelle, wobei die Vorbedingungsinformationen
einen Ort eines Typs von interessierenden Informationen, die von
der überwachten
Vorrichtung erhältlich
sind, einschränken.
-
Gemäß einem
weiteren Aspekt der vorliegenden Erfindung werden überdies
ein Verfahren, ein System und ein Computerprogrammprodukt zum Extrahieren
von Informationen, die einer überwachten
Vorrichtung zugeordnet sind, die mit einem Netz kommunikativ gekoppelt
ist, geschaffen, umfassend: (1) Zugreifen auf einen ersten Speicher,
um Zugriffsinformationen zum Zugreifen auf die überwachte Vorrichtung zu erhalten,
wobei die Zugriffsinformationen einen Typ von Statusinformationen,
die von der überwachten
Vorrichtung zu erhalten sind, und Vorbedingungsinformationen, die
verwendet werden, um den Typ von Statusinformationen von der überwachten
Vorrichtung zu erhalten, umfassen, wobei die Vorbedingungsinformationen
einen Ort des Typs von Statusinformationen, die von der überwachten
Vorrichtung erhältlich
sind, einschränken;
(2) Zugreifen auf die Vorrichtung unter Verwendung eines HTTP-Protokolls und einer
IP-Adresse der überwachten
Vorrichtung, um einen informationsstring zu erhalten, der der überwachten
Vorrichtung zugeordnet ist; (3) Extrahieren von Informationen, die
dem Typ von Statusinformationen entsprechen, aus dem Informationsstring
unter Verwendung der Vorbedingungsinformationen; und (4) Speichern
der extrahierten Informationen in Zusammenhang mit der IP-Adresse
der überwachten
Vorrichtung.
-
Überdies
werden gemäß einem
weiteren Aspekt der vorliegenden Erfindung ein Verfahren, ein System und
ein Computerprogrammprodukt zum Extrahieren von Informationen, die
einer überwachten
Vorrichtung zugeordnet sind, die mit einem Netz kommunikativ gekoppelt
ist, unter Verwendung eines SNMP-Protokolls geschaffen, umfassend:
(1) Zugreifen auf einen ersten Speicher, um Zugriffsinformationen
zum Zugreifen auf die überwachte
Vorrichtung zu erhalten, wobei die Zugriffsinformationen (a) einen
Typen von Statusinformationen, die von der überwachten Vorrichtung zu erhalten
sind, und (b) einen Zugriffsstring, der zum Erhalten des Typs von
Statusinformationen von der überwachten
Vorrichtung verwendet wird, umfassen; (2) Analysieren des Zugriffsstrings,
um festzustellen, ob der Zugriffsstring leer ist, und um festzustellen,
ob der Zugriffsstring einen ersten vorbestimmten String umfasst,
wenn der Zugriffsstring nicht leer ist; (3) wenn der Analyseschritt feststellt,
dass der Zugriffsstring nicht leer ist und dass der Zugriffsstring
den ersten vorbestimmten String umfasst, Zugreifen auf die Vorrichtung
unter Verwendung einer ersten SNMP-Zugriffsfunktion, um einen Wert zu erhalten,
der dem Typ von Statusinformationen zugeordnet ist; und (4) wenn
der Analyseschritt feststellt, dass der Zugriffsstring leer ist
oder dass der Zugriffsstring nicht den ersten vorbestimmten String
umfasst, Zugreifen auf die Vorrichtung unter Verwendung einer zweiten
SNMP-Zugriffsfunktion,
um den Wert zu erhalten, der dem Typ von Statusinformationen zugeordnet
ist.
-
Überdies
werden gemäß einem
weiteren Aspekt der vorliegenden Erfindung ein Verfahren, ein System und
ein Computerprogrammprodukt zum Codieren von Daten, die Zugriffsinformationen
darstellen, die dazu konfiguriert sind, von einem ausgewählten Kommunikationsprotokoll
verwendet zu werden, um Zusammenfassungsinformation in Bezug auf
eine überwachte
Vorrichtung unter verschiedenen Vorrichtungen zu extrahieren, die
mit einem Netz kommunikativ gekoppelt sind, geschaffen, umfassend:
(1) Reservieren von Speicherstellen für Verkäuferinformationen der überwachten
Vorrichtung in einem Speicherpuffer; (2) Schreiben der Verkäuferinformationen
in den Speicherpuffer; (3) Reservieren von Speicherstellen für Modellinformationen der überwachten
Vorrichtung in einem Speicherpuffer, wobei die Speicherstellen für Modellinformationen
den Speicherstellen für
Verkäuferinformationen
zugeordnet sind; (4) Schreiben der Modellinformationen in den Speicherpuffer;
(5) Reservieren von Speicherstellen für Unterstützungsinformationen zum Zugreifen
auf die überwachte
Vorrichtung in einem Speicherpuffer, einschließlich Vorbedingungsinformationen,
die zum Erhalten der Statusinformationen von der überwachten
Vorrichtung verwendet werden, wobei die Speicherstellen für Unterstützungsinformationen
den Speicherstellen für
Verkäuferinformationen
und den Speicherstellen für Modellinformationen
zugeordnet sind; und (6) Schreiben der Unterstützungsinformationen in den
Speicherpuffer, wobei die Vorbedingungsinformationen einen Ort eines
Typs von interessierenden Informationen, die von der überwachten
Vorrichtung erhältlich
sind, einschränken.
-
Überdies
wird gemäß einem
weiteren Aspekt der vorliegenden Erfindung eine Überwachungsvorrichtung mit
einem Speicher, der Daten enthält,
die Zugriffsinformationen darstellen, die dazu konfiguriert sind,
von einem ausgewählten
Kommunikationsprotokoll verwendet zu werden, um Informationen in
Bezug auf eine überwachte
Vorrichtung unter verschiedenen Vorrichtungen, die kommunikativ
mit einem Netz gekoppelt sind, zu extrahieren, geschaffen, wobei
die Zugriffsinformationen durch ein Verfahren erzeugt werden, das
umfasst: (1) Abrufen von mehreren Implementierungsidentifizierern
von einer externen Speichervorrichtung, wobei jeder Implementie rungsidentifizierer
mindestens eine Zugriffsfunktion identifiziert, die dazu konfiguriert
ist, auf die überwachte
Vorrichtung unter Verwendung des ausgewählten Kommunikationsprotokolls
zuzugreifen, um mindestens eine von Modellinformationen, eines eindeutigen
Identifizierers und Statusinformationen der überwachten Vorrichtung zu erhalten;
(2) Auswählen
eines Implementierungsidentifizierers aus den mehreren Implementierungsidentifizierern;
(3) Zugreifen auf eine externe Informationsspeichereinheit, um Unterstützungsinformationen
zum Zugreifen auf die überwachte
Vorrichtung unter Verwendung mindestens einer Zugriffsfunktion zu
erhalten, wobei die Unterstützungsinformationen
Vorbedingungsinformationen umfassen, die zum Erhalten der mindestens
einen der Modellinformationen, des eindeutigen Identifizierers und
der Statusinformationen von der überwachten
Vorrichtung verwendet werden, wobei die Vorbedingungsinformationen
einen Ort eines Typs von interessierenden Informationen, die von
der überwachten
Vorrichtung erhältlich
sind, einschränken;
und (4) Speichern der Unterstützungsinformationen
in Zusammenhang mit dem Implementierungsidentifizierer und den Verkäuferinformationen
der überwachten
Vorrichtung als Daten, die die Zugriffsinformationen darstellen.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Eine
vollständigere
Einschätzung
der Erfindung und von vielen von den zugehörigen Vorteilen derselben wird
leicht erhalten, wenn dieselbe mit Bezug auf die folgende ausführliche
Beschreibung besser verständlich
wird, wenn sie in Verbindung mit den zugehörigen Zeichnungen betrachtet
wird, in denen:
-
1 drei
vernetzte Geschäftsbürovorrichtungen
darstellt, die mit einem Netz von Computern und Datenbanken über das
Internet verbunden sind;
-
2 die
Komponenten einer digitalen Bilderzeugungsvorrichtung darstellt;
-
3 die
elektronischen Komponenten der in 2 dargestellten
digitalen Bilderzeugungsvorrichtung darstellt;
-
4 die
Details einer Kommunikationsschnittstelle mit mehreren Ports, die
in 3 dargestellt ist, darstellt;
-
5 eine
alternative Systemkonfiguration darstellt, in der Geschäftsbürovorrichtungen
entweder direkt mit dem Netz verbunden sind oder mit einem Computer
verbunden sind, der mit dem Netz verbunden ist;
-
6A ein Blockdiagramm ist, das einen Fluss von
Informationen zu und von einer Anwendungseinheit unter Verwendung
von elektronischer Post darstellt;
-
6B eine alternative Weise zur Kommunikation unter
Verwendung von elektronischer Post darstellt, in der ein Computer,
der mit der Anwendungseinheit verbunden ist, auch als Nachrichtenübertragungsagent
(MTA) dient;
-
6C eine alternative Weise zur Kommunikation unter
Verwendung von elektronischer Post darstellt, in der eine Anwendungseinheit
einen Nachrichtenübertragungsagenten
zum Austauschen von elektronischer Post umfasst;
-
6D eine alternative Weise zur Kommunikation unter
Verwendung von elektronischer Post darstellt, in der ein Postserver
als POP3-Server zum Empfangen von Post von einem Gerät/einer
Vorrichtung und als Server für
Simple Mail Transfer Protocol (SMTP) zum Senden von Post für das Gerät/die Vorrichtung
wirkt;
-
7 eine
alternative Weise zum Senden von Nachrichten über das Internet darstellt;
-
8 einen
beispielhaften Computer darstellt, der mit einem Gerät/einer
Vorrichtung verbunden sein kann und verwendet wird, um Nachrichten
von elektronischer Post zu übertragen;
-
9 eine
schematische Darstellung des Gesamtsystems gemäß einer beispielhaften Ausführungsform
der vorliegenden Erfindung ist;
-
10 Module darstellt, die bei der Überwachung
der Daten und ihrer Schnittstellenfunktionen gemäß einer beispielhaften Ausführungsform
der vorliegenden Erfindung darstellt;
-
11 Details innerhalb des Überwachungsmoduls und ihrer
Anruffunktionen zwischen den Untermodulen zeigt;
-
12 eine Datenstruktur zeigt, die vom HWaccess-Untermodul
verwendet wird, wie in 11 dargestellt;
-
13 die Sequenz der init-Funktion des Überwachungsmoduls,
das in 10 dargestellt ist, zeigt;
-
14 eine beispielhafte Sequenz der Statusüberwachungsfunktion
zeigt, um den Status einer überwachten
Vorrichtung durch den MonitorManager zu bestimmen, wie in 11 gezeigt;
-
15 einen Vektor der Referenz zu den Vorrichtungen
zeigt, der durch CDevice-Factory
erzeugt wird und vom MonitorManager verwendet wird, wie in 13 dargestellt,
-
16 die Klassenstruktur des DeviceODBC-Moduls mit
der abstrakten Klasse CAbsProtocolParameters zeigt;
-
17 die SParameter-Datenstruktur, die zum Speichern
von Parameterwerten verwendet wird, die erforderlich sind, um auf überwachte
Vorrichtungen zuzugreifen, gemäß einer
Ausführungsform
der vorliegenden Erfindung darstellt;
-
18 eine Abbildungsstruktur, die verwendet wird,
um Parameterwerte zu speichern, die erforderlich sind, um auf überwachte
Vorrichtungen zuzugreifen, gemäß einer
Ausführungsform
der vorliegenden Erfindung darstellt;
-
19 die Organisation der Überwachungsdatenbank darstellt,
die in einer Ausführungsform
der vorliegenden Erfindung verwendet wird;
-
20–22 die
Organisation einer Unterstützungsdatenbank,
die gemäß dem Kommunikationsprotokoll
beschaffen ist, gemäß einer
Ausführungsform
der vorliegenden Erfindung darstellen;
-
23 die Klassenstruktur des HWaccess-Moduls gemäß einer
Ausführungsform
der vorliegenden Erfindung darstellt;
-
24 die Klassenstruktur des SNMP-Moduls gemäß einer
Ausführungsform
der vorliegenden Erfindung darstellt;
-
25 die Klassenstruktur des HTTP-Moduls gemäß einer
Ausführungsform
der vorliegenden Erfindung darstellt;
-
26 die Klassenstruktur des FTP-Moduls gemäß einer
Ausführungsform
der vorliegenden Erfindung darstellt;
-
27A–27D die Datenstrukturen, die im HWaccess-Modul
von 23 verwendet werden, um Informationen
zu verwalten, die erforderlich sind, um auf die überwachten Vorrichtungen zuzugreifen
und um Statusinformationen von den überwachten Vorrichtungen zu
erhalten, gemäß einer
Ausführungsform
der vorliegenden Erfindung darstellen;
-
28 einen Ablaufplan zeigt, der den Prozess der
Initialisierung der Protokollobjekte mit Verkäuferinformationen einer überwachten
Vorrichtung gemäß einer
Ausführungsform
der vorliegenden Erfindung darstellt;
-
29A–29D die Datenstrukturen, die verwendet werden,
um die Statusinformationen einer überwachten Vorrichtung eines
speziellen Verkäufers
und Modells für
jedes Protokollobjekt zu erhalten, gemäß einer Ausführungsform
der vorliegenden Erfindung darstellen;
-
30 ein Beispiel von Musterdaten für die Datenstrukturen
von 27D, 29C und 29D, die verwendet werden, um Statusinformationen
von einer überwachten
Vorrichtung unter Verwendung des FTP-Protokolls zu erhalten, gemäß einer
Ausführungsform
der vorliegenden Erfindung darstellt;
-
31A einen Ablaufplan, der den Prozess des Erhaltens
von Statusinformationen von einer überwachten Vorrichtung für ein Kommunikationsprotokoll
beschreibt, gemäß einer
Ausführungsform
der vorliegenden Erfindung zeigt;
-
31B einen Ablaufplan, der den Prozess des Erhaltens
von Statusinformationen von einer überwachten Vorrichtung unter
Verwendung von allen Kommunikationsprotokollen beschreibt, gemäß einer
Ausführungsform
der vorliegenden Erfindung zeigt;
-
32A die Datenstruktur, die zum Verwalten von Informationen über die
Verkäufer
und Modelle von überwachten
Vorrichtungen, die von einem gegebenen Protokoll unterstützt werden,
verwendet wird, gemäß einer
Ausführungsform
der vorliegenden Erfindung zeigt;
-
32B ein Beispiel der in 32A gezeigten
Datenstruktur zeigt;
-
33 einen Ablaufplan, der das Verfahren zum Hinzufügen von
unterstützten
Verkäufern
und Modellen zu der Datenstruktur von 32A beschreibt,
gemäß einer
Ausführungsform
der vorliegenden Erfindung zeigt;
-
34 einen Ablaufplan, der das Verfahren zum Erhalten
des unterstützten
Verkäufers
und Modells durch ein Protokoll von der Datenstruktur von 32A beschreibt, gemäß einer Ausführungsform
der vorliegenden Erfindung zeigt;
-
35 die Klassenstruktur des Device-Moduls gemäß einer
Ausführungsform
der vorliegenden Erfindung zeigt;
-
36A die Datenstruktur, die von den Softwareobjekten
verwendet wird, die die überwachten
Vorrichtungen darstellen, um festzustellen, welche Protokolle verwendet
werden, um auf eine überwachte
Vorrichtung zuzugreifen, gemäß einer
Ausführungsform
der vorliegenden Erfindung zeigt;
-
36B Musterdaten in der Datenstruktur von 36A zeigt; und
-
37 einen Ablaufplan, der beschreibt, wie die Datenstruktur
von 36A aktualisiert wird, um festzustellen,
welche Protokolle verwendet werden, um Statusinformationen für eine überwachte
Vorrichtung zu erhalten, gemäß einer
Ausführungsform
der vorliegenden Erfindung zeigt.
-
38A–38C Beispiele von HTML-Dateien darstellen, die
an überwachten
Vorrichtungen erhältlich
sind;
-
39 ein Paketdiagramm für jedes der Protokollpakete
von 23 darstellt, wobei sich "XXX" auf beispielsweise
HTTP, FTP oder SNMP bezieht;
-
40 ein alternatives Paketdiagramm für jedes
der Protokollpakete von 23 darstellt,
wobei sich "XXX" auf HTTP, FTP oder
SNMP bezieht;
-
41 ein Paketdiagramm für das HTTP-Protokoll gemäß einer
Ausführungsform
der vorliegenden Erfindung zeigt;
-
42 die Klassenspezifikation für die abstrakte Klasse cAbsHTTPImplementation
zeigt;
-
43 die Datenstruktur m_ImplementationMap der CHTTPProtocol-Klasse
von 41 darstellt;
-
44 die Datenstruktur m_VendorModelSupportMap der
CHTTPProtocol-Klasse von 41 darstellt;
-
45 ein Ablaufplan der Funktion canAccesslP() der
CHTTPProtocol-Klasse ist;
-
46 ein Ablaufplan der Funktion obtainStatus()
der CHTTPProtocol-Klasse ist;
-
47 das Paketdiagramm des FirstHTTPImplementation-Pakets
darstellt;
-
48 das Paketdiagramm des SecondHTTPImplementation-Pakets
darstellt;
-
49 Tabellen in der Unterstützungsdatenbank darstellt,
die von der ersten Implementierung von HTTP verwendet werden;
-
50 Tabellen in der Unterstützungsdatenbank darstellt,
die von der zweiten Implementierung von HTTP verwendet werden;
-
51 die Klassenstruktur des FirstHTTPODBC-Pakets
darstellt;
-
52 die Klassenstruktur des SecondHTTPODBC-Pakets
darstellt;
-
53 die Abbildungsstruktur m_VendorModelWebInfoMap
der CSecondHTTPImplementation-Klasse darstellt;
-
54 die Abbildungsstruktur m_ModelWebInfoForVendorMap
der CSecondHTT-PImplementation-Klasse
darstellt;
-
55 die Abbildungsstruktur m_VendorModelUniqueIDInfoMap
der CSecondHTT-PImplementation-Klasse
zeigt;
-
56 ein Ablaufplan der Funktion obtainStatus()
der CSecondHTTPImplementation-Klasse ist;
-
57 und 58 die
Vektorstrukturen m_KeyValueVector bzw. m_LocateValueVector darstellen,
die von der CSecondHTMLProcessor-Klasse verwendet werden;
-
59 die Vektorstrukturen m_KeyValueVector und m_LocateValueVector
darstellt, die in der ersten Implementierung von HTTP verwendet
werden und die von der CFirstHTMLProcessor-Klasse verwendet werden;
-
60 ein Ablaufplan der Funktion initDataSearchInfo()
der CSecondHTMLProcessor-Klasse ist;
-
61 ein Ablaufplan für die Verarbeitung von Text
durch die Funktion searchAndObtainDataFromValue() der CSecondHTMLProcessor-Klasse
ist;
-
62 Mustereinträge
in einer Unterstützungsdatenbanktabelle
darstellt, die verwendet wird, um Statusinformationen unter Verwendung
des SNMP-Protokolls zu erhalten;
-
63 die Klassenstruktur des SNMP-Pakets darstellt;
-
64 die Klassenstruktur des SNMPaccess-Pakets darstellt;
und
-
65 ein Ablaufplan zur Verarbeitung einer SNMP-Anforderung
für einen
String, der Informationen des SNMP-Anforderungstyps und des Objektidentifizierers
enthält,
ist.
-
AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN
AUSFÜHRUNGSFORMEN
-
1 stellt
ein Diagramm mit verschiedenen Vorrichtungen und Computern zum Überwachen,
Diagnostizieren und Steuern des Betriebs der Vorrichtungen dar.
Insbesondere umfasst 1 ein erstes Netz 16 wie
z. B. ein lokales Netz (LAN), das mit Computerarbeitsplatzrechnern 17, 18, 20 und 22 verbunden
ist. Die Arbeitsplatzrechner können
eine beliebige Art von Computern sein, einschließlich, z. B. Personalcomputervorrichtungen,
Computern auf Unix-Basis, Computern auf Linux-Basis oder Apple Macintoshs.
Mit dem Netz 16 sind auch eine digitale Bilderzeugungsvorrichtung 24,
ein Faxgerät 28 und
ein Drucker 32 verbunden. Wie von einem üblichen
Fachmann erkannt werden würde,
können
zwei oder mehr der Komponenten des digitalen Kopierers/Druckers 24 und
des Faxgeräts 28 zu
einer vereinheitlichten "Bilderzeugungsvorrichtung" kombiniert sein.
Der Kopierer/Drucker 24, das Faxgerät 28, der Drucker 32 und
die Arbeitsplatzrechner 17, 18, 20 und 22 können beispielsweise als
Maschinen oder überwachte
Vorrichtungen bezeichnet werden. In einigen Konfigurationen können ein
oder mehrere Arbeitsplatzrechner in Geschäftsbürogeräte umgewandelt werden. Außerdem kann
irgendein Netz-Geschäftsbürogerät/irgendeine
Netz-Geschäftsbürovorrichtung
am Netz 16 angebracht werden. Irgendein Arbeitsplatzrechner 17, 18, 20 und 22 und
ein Bürogerät 27 können auch
als Zwischenüberwachungsvorrichtung
fungieren, um die überwachten
Vorrichtungen im Netz 16 abzufragen und die gesammelten
Daten zur Überwachungsvorrichtung
zu senden.
-
Ein
Beispiel eines solchen Geschäftsbürogeräts ist eCabinet® von
Ricoh Corporation. Ein Faxserver (nicht dargestellt) kann auch mit
dem Netz 16 verbunden sein und eine Telephon-, Kabel- oder
drahtlose Verbindung aufweisen. Jeder des digitalen Kopierers/Druckers 24,
des Faxgeräts 28 und
des Druckers 32 kann zusätzlich dazu, dass er mit dem
Netz 16 verbunden ist, auch herkömmliche Telephon- und/oder
Kabel- und/oder drahtlose Verbindungen 26, 30 bzw. 34 umfassen.
Wie nachstehend erläutert,
kommunizieren die überwachten
Vorrichtungen 24, 28 und 32 mit einer
entfernten Überwachungs-,
Diagnose- und Steuerstation, die auch als Überwachungsvorrichtung bezeichnet
wird, über
beispielsweise das Internet über
das Netz 16 oder durch eine direkte Telephon-, drahtlose
oder Kabelverbindung.
-
In
einer weiteren beispielhaften Geschäftsumgebung können überwachte
Vorrichtungen solche Vorrichtungen wie eine Multifunktions-Abbildungsvorrichtung,
einen Scanner, einen Projektor, ein Konferenzsystem und einen Aktenvernichter
umfassen. In einer weiteren Anwendung kann das Netz 16 ein
Heimnetz sein, in dem überwachte
Vorrichtung Messgeräte
(Elektrizität,
Gas, Wasser) oder Geräte
wie beispielsweise ein Mikrowellenofen, eine Waschmaschine, ein
Trockner, ein Geschirrspüler,
ein Heimunterhaltungssystem, ein Kühlschrank, ein Reiskocher,
eine Heizvorrichtung, eine Klimaanlage, ein Wassererhitzer, eine
Sicherheitskamera sind.
-
In 1 ist
ein weiträumiges
Netz (WAN) (z. B. das Internet oder sein Nachfolger) im Allgemeinen
mit 10 bezeichnet. Das WAN 10 kann entweder ein
privates WAN, ein öffentliches
WAN oder ein Hybridtyp sein. Das WAN 10 umfasst mehrere
miteinander verbundene Computer und Router, die mit 12A–12I bezeichnet sind.
Die Weise der Kommunikation über
ein WAN ist durch eine Reihe von Dokumenten von Request for Comments
(RFC) bekannt, die von der Internet Engineering Task Force (IETF)
auf www.ietf.org/rfc.html erhältlich sind,
einschließlich
RFC 821 mit dem Titel "Simple
Mail Transfer Protocol";
RFC 822 mit dem Titel "Standard for
the Format of ARPA Internet Text Message"; RFC 959 mit dem Titel "File Transfer Protocol
(FTP"); RFC 2045
mit dem Titel "Multipurpose
Internet Mail Extensions (MIME) Part One: Format of Internet Message
Bodies"; RFC 1894
mit dem Titel "An
Extensible Message Format for Delivery Status Notifications"; RFC 1939 mit dem
Titel "Post Office
protocol – Version
3"; RFC 2068, "Hypertext Transfer
Protocol – HTTP/1.1"; und RFC 2298 mit
dem Titel "An Extensible
Message Format for Message Disposition Notifications". Die Inhalte von
jeder dieser Referenzen werden durch den Hinweis hierin aufgenommen.
-
Die
mit dem Transmission Control Protocol/Internet Protocol (TCP/IP)
in Beziehung stehende Kommunikation ist beispielsweise in dem Buch "TCP/IP" Illustrated", Band 1, The Protocols,
von W. R. Stevens, von Addison-Wesley Publishing Company, 1994,
beschrieben, dessen gesamte Inhalte durch den Hinweis hierin aufgenommen
werden. Die Bände
1–3 von "Internetworking with
TCP/IP" von Corner
und Stevens werden auch durch den Hinweis in ihrer Gesamtheit hierin
aufgenommen.
-
Mit
weiterem Bezug auf 1 ist eine Firewall 50A zwischen
das WAN 10 und das Netz 16 geschaltet. Eine Firewall
ist eine Vorrichtung, die nur berechtigten Computern auf einer Seite
der Firewall erlaubt, auf das Netz, Computer oder individuelle Teile
auf der anderen Seite der Firewall zuzugreifen. Firewalls sind bekannte und
kommerziell erhältliche
Vorrichtungen und/oder Software (z. B. ZoneAlarm von Zone Labs).
Ebenso trennen die Firewalls 50B und 50C das WAN 10 von
einem Netz 52 bzw. einem Arbeitsplatzrechner 42.
Zusätzliche Details über Firewalls
sind in "Firewalls
and Internet Security" von
W. R. Cheswick und S. M. Bellovin, 1994, Addison Wesley Publishing,
und "Building Internet
Firewalls", von
D. B. Chapman und E. D. Zwicky, 1995, O'Reilly & Associates, Inc., zu finden. Die
gesamten Inhalte dieser zwei Referenzen werden durch den Hinweis hierin
aufgenommen.
-
Das
Netz 52 ist ein herkömmliches
Netz und umfasst mehrere Arbeitsplatzrechner 56, 62, 68 und 74. Diese
Arbeitsplatzrechner können
in verteilter Weise innerhalb verschiedener Abteilungen (z. B. Verkaufs-,
Bestellungsverarbeitungs-, Buchhaltungs-, Abrechnungs-, Vermarktungs-,
Fertigungs-, Konstruktionstechnik- und Kundendienstabteilungen)
innerhalb einer einzelnen Firma angeordnet sein. Zusätzlich zu
den über
das Netz 52 verbundenen Arbeitsplatzrechnern ist auch ein
Arbeitsplatzrechner 42, der nicht direkt mit dem Netz 52 verbunden
ist, vorgesehen. Informationen in einer Datenbank, die auf einer
Platte 46 gespeichert ist, die mit dem Arbeitsplatzrechner 42 verbunden
ist, können
unter Verwendung von geeigneter Verschlüsselung und Protokollen über das
WAN 10 von den Arbeitsplatzrechnern, die direkt mit dem
Netz 52 verbunden sind, gemeinsam genutzt werden. Der Arbeitsplatzrech ner 42 umfasst
auch eine direkte Verbindung mit einer Telephonleitung und/oder
einem Kabelnetz und/oder einem drahtlosen Netz 44 und auf
die Datenbank auf der Platte 46 kann über die Telephonleitung, das
Kabelnetz oder über
das drahtlose Netz 44 zugegriffen werden. Das von dieser
Erfindung verwendete Kabelnetz kann unter Verwendung eines Kabelnetzes,
das typischerweise verwendet wird, um ein Fernsehprogramm zu übertragen,
eines Kabels, das eine Hochgeschwindigkeitskommunikation von digitalen
Daten bereitstellt, die typischerweise bei Computern oder dergleichen
verwendet werden, oder irgendeines anderen gewünschten Typs von Kabel implementiert
werden.
-
In
einer weiteren Ausführungsform
kann der Arbeitsplatzrechner 42 ein Laptopcomputer, ein
PDA, ein Palmtop-Computer oder ein Mobiltelephon mit Netzfähigkeit
sein. Diese Vorrichtungen können
verwendet werden, um auf Informationen, die in der auf der Platte 46 gespeicherten
Datenbank gespeichert sind, zuzugreifen.
-
Informationen
in Bezug auf den digitalen Kopierer/Drucker 24, das Bürogerät 27,
das Faxgerät 28 bzw. den
Drucker 32 können
in einer oder mehreren der Datenbanken, die auf den Platten 46, 54, 58, 64, 70 und 76 gespeichert
sind, gespeichert sein. Bekannte Datenbanken umfassen (1) SQL-Datenbanken
von Microsoft, IBM, Oracle und Sybase; (2) andere relationale Datenbanken;
und (3) nicht relationale Datenbanken (einschließlich objektorientierter Datenbanken
von Objectivity, JYD Software Engineering und Orient Technologies).
Jede der Verkaufs-, Bestellungsverarbeitungs-, Buchhaltungs-, Abrechnungs-,
Kundendienst-, Vermarktungs-, Fertigungs- und Konstruktionsabteilungen
kann ihre eigene Datenbank besitzen oder kann sich eine oder mehrere
Datenbanken teilen. Jede der Platten, die zum Speichern von Datenbanken
verwendet werden, ist ein nicht flüchtiger Speicher wie z. B.
eine Festplatte oder optische Platte. Alternativ können die
Datenbanken in irgendeiner Speichervorrichtung gespeichert werden,
einschließlich
Festkörper-
und/oder Halbleiterspeichervorrichtungen. Auf der Platte 64 kann
beispielsweise eine Vermarktungsdatenbank gespeichert werden, auf
der Platte 58 kann eine Fertigungsdatenbank gespeichert
werden, auf der Platte 70 kann eine Konstruktionsdatenbank
gespeichert werden und auf der Platte 76 kann eine Kundendienstdatenbank
gespeichert werden. Alternativ können
auf den Platten 54 und 46 eine oder mehrere der
Datenbanken gespeichert werden.
-
Zusätzlich zu
den Arbeitsplatzrechnern 56, 62, 68, 74 und 42,
die mit dem WAN 10 verbunden sind, können diese Arbeitsplatzrechner
auch eine Verbindung mit einer Telephonleitung, einem Kabel oder
drahtlosen Netzen umfassen, um eine sichere Verbindung mit der Maschine/Vorrichtung,
die überwacht,
diagnostiziert und/oder gesteuert wird, zu schaffen. Wenn eines
der Kommunikationsmedien nicht korrekt arbeitet, kann außerdem eines
der anderen automatisch als Reserve für die Kommunikation verwendet
werden.
-
Ein
Merkmal der vorliegenden Erfindung ist die Verwendung einer Kommunikationsbetriebsart "Speichern und Weiterleiten" (z. B. elektronische
Internetpost, hierin auch als E-Mail bezeichnet) oder die Übertragung
zwischen einer Maschine und einem Computer/Überwachungssystem zum Diagnostizieren
und Steuern der Maschine. Alternativ kann die Nachricht, die übertragen
wird, unter Verwendung einer Kommunikationsbetriebsart implementiert
werden, die direkte Ende-zu-Ende-Verbindungen herstellt (z. B. unter
Verwendung einer Buchsenverbindung mit dem letztlichen Ziel) wie
z. B. FTP und Hyper Text Transfer Protocol (HTTP).
-
2 stellt
die mechanische Anordnung des digitalen Kopierers/Druckers 24 dar,
der in 1 dargestellt ist. In 2 ist 101 ein
Gebläse
für den
Scanner, 102 ist ein Polygonspiegel, der mit einem Laserdrucker verwendet
wird, und 103 bezeichnet eine F-θ-Linse, die verwendet wird,
um Licht von einem Laser (nicht dargestellt) zu kollimieren. Das
Bezugszeichen 104 bezeichnet einen Sensor zum Erfassen
von Licht vom Scanner. Das Bezugszeichen 105 bezeichnet
eine Linse zum Fokussieren von Licht vom Scanner auf den Sensor 104 und
das Bezugszeichen 106 bezeichnet eine Löschlampe, die verwendet wird,
um Bilder auf der photoleitenden Trommel 132 zu löschen. Es
ist eine Aufladungskoronaeinheit 107 und eine Entwicklungswalze 108 vorhanden.
Das Bezugszeichen 109 bezeichnet eine Lampe, die verwendet
wird, um ein zu scannendes Dokument darzustellen, und Elemente 110, 111 und 112 bezeichnen
Spiegel zum Reflektieren von Licht auf den Sensor 104.
Ein Trommelspiegel 113 ist vorgesehen, um Licht auf die
photoleitende Trommel 132 zu reflektieren, das vom Polygonspiegel 102 stammt.
Ein Gebläse 114 wird
verwendet, um den Aufladungsbereich der digitalen Bilderzeugungsvorrichtung
zu kühlen,
und eine erste Papiervorschubwalze 115 wird zum Vorschieben
von Papier von der ersten Papierkassette 117 verwendet
und ein Bezugszeichen 116 bezeichnet einen Tisch zum manuellen
Vorschub. Ebenso wird eine zweite Papiervorschubwalze 118 in
Verbindung mit der zweiten Kassette 119 verwendet. Das
Bezugszeichen 120 bezeichnet eine Vermittlungswalze, 121 bezeichnet eine
Deckungswalze, 122 bezeichnet einen Bilddichtesensor und 123 bezeichnet
eine Übertragungs-/Trennkoronaeinheit.
Das Bezugszeichen 124 bezeichnet eine Reinigungseinheit, 125 bezeichnet
ein Vakuumgebläse, 126 bezeichnet
einen Transportriemen, 127 bezeichnet eine Druckwalze und 128 bezeichnet
eine Austrittswalze. Eine heiße
Walze 129 wird verwendet, um Toner auf dem Papier zu fixieren. 130 bezeichnet
ein Auslassgebläse
und ein Hauptmotor 131 wird verwendet, um den digitalen
Kopierer/Drucker 24 anzutreiben.
-
3 ist
ein Blockdiagramm, das die elektronischen Komponenten des digitalen
Kopierers/Druckers 24 von 2 darstellt,
wobei die CPU 160 ein Mikroprozessor ist, der als Steuereinheit
der Vorrichtung wirkt. Ein Direktzugriffsspeicher (RAM) 162 speichert
sich dynamisch ändernde
Informationen, einschließlich
Betriebsparametern des digitalen Kopierers/Druckers 24.
Ein nicht flüchtiger
Speicher (z. B. ein Festwertspeicher (ROM) 164 oder ein
Flash-Speicher) speichert einen Programmcode, der verwendet wird,
um den digitalen Kopierer/Drucker zu betreiben, sowie Daten im statischen
Zustand, die den Kopierer/Drucker 24 beschreiben (z. B.
den Modellnamen, die Modellnummer, die Seriennummer der Vorrichtung
und Vorgabeparameter).
-
Eine
Netzschnittstelle 166 mit mehreren Ports ist vorgesehen,
um zu ermöglichen,
dass der digitale Kopierer/Drucker 24 mit externen Vorrichtungen über mindestens
ein Kommunikationsnetz kommuniziert. Das Bezugszeichen 168 stellt
eine Telephon, eine drahtlose oder eine Kabelleitung dar und das
Zeichen 170 stellt eine andere Art von Netz dar, das von
dem bei 168 identifizierten Netz verschieden ist. Zusätzliche
Details der Netzschnittstelle mit mehreren Ports werden mit Bezug
auf 4 dargelegt. Eine Schnittstellensteuereinheit 172 wird
verwendet, um ein Bedienfeld 174 mit einem Systembus 186 zu
verbinden. Das Bedienfeld 174 umfasst Standard-Eingabe- und Ausgabevorrichtungen,
die an einem digitalen Kopierer/Drucker 24 zu finden sind,
einschließlich
einer Kopiertaste, Tasten zum Steuern des Betriebs der Bilderzeugungsvorrichtung,
wie beispielsweise der Anzahl von Kopien, Verkleinerung/Vergrößerung,
Dunkelheit/Helligkeit usw. Außerdem kann
eine Flüssigkristallanzeige
innerhalb des Bedienfeldes 174 enthalten sein, um Parameter
und Nachrichten des digitalen Kopierers/Druckers 24 für einen
Benutzer anzuzeigen.
-
Eine
lokale Verbindungsschnittstelle 171 ist eine Verbindung
durch lokale Ports wie z. B. RS232, den parallelen Druckerport,
USB und IEEE 1394. FireWire (IEEE 1394) ist in Wickelgren, I., "The Facts About "FireWire", IEEE Spectrum,
April 1997, Band 34, Nummer 4, S. 19–25, beschrieben, dessen gesamte
Inhalte durch den Hinweis hierin aufgenommen wird. Vorzugsweise
wird ein "zuverlässiges" Kommunikationsprotokoll
verwendet, das eine Fehlererkennung und Neuübertragung umfasst.
-
Eine
Speicherschnittstelle 176 verbindet Speichervorrichtungen
mit dem Systembus 186. Die Speichervorrichtungen umfassen
beispielsweise einen Flash-Speicher 178, der gegen einen
herkömmlichen
elektrisch löschbaren
programmierbaren Festwert speicher (EEPROM) ausgetauscht werden kann,
und eine Platte 182. Die Platte 182 kann eine
Festplatte, eine optische Platte und/oder ein Diskettenlaufwerk
sein. Zusätzliche Speichervorrichtungen
können über die
Verbindung 180 mit dem digitalen Kopierer/Drucker 24 verbunden
werden. Der Flash-Speicher 178 wird verwendet, um Daten
im halbstatischen Zustand zu speichern, die Parameter des digitalen
Kopierers/Druckers 24 beschreiben, die sich über die
Lebensdauer der Vorrichtung 24 selten ändern. Solche Parameter umfassen
beispielsweise die Optionen und Konfiguration des digitalen Kopierers/Druckers.
Eine Optionsschnittstelle 184 ermöglicht, dass zusätzliche
Hardware wie z. B. eine externe Schnittstelle mit dem digitalen
Kopierer/Drucker 24 verbunden wird. Ein Takt/Zeitgeber 187 wird
verwendet, um sowohl die Zeit als auch das Datum zu verfolgen und
auch um die abgelaufene Zeit zu messen.
-
3 stellt
auch die verschiedenen Abschnitte dar, die den digitalen Kopierer/Drucker 24 bilden.
Das Bezugszeichen 202 bezeichnet einen Sortiere und enthält Sensoren
und Stellglieder, die verwendet werden, um die Ausgabe des digitalen
Kopierers/Druckers 24 zu sortieren. Eine Doppelseitenvorrichtung 200 ermöglicht das
Durchführen
eines Doppelseitenvorgangs. Die Doppelseitenvorrichtung 200 umfasst
herkömmliche Sensoren
und Stellglieder. Eine Tabletteinheit 198 mit großem Fassungsvermögen ist
vorgesehen, um zu ermöglichen,
dass Papiertabletts eine große
Anzahl von Blättern
halten. Wie bei der Doppelseitenvorrichtung 200 umfasst
die Tabletteinheit 198 ebenso herkömmliche Sensoren und Stellglieder.
-
Eine
Papiervorschubsteuereinheit 196 wird verwendet, um den
Vorgang des Vorschubs von Papier in und durch die digitale Bilderzeugungsvorrichtung
zu steuern. Ein Scanner 194 wird verwendet, um Bilder in
die digitale Bilderzeugungsvorrichtung zu scannen, und umfasst herkömmliche
Scannelemente wie z. B. ein Licht, einen Spiegel usw. Außerdem werden
Scannersensoren verwendet, wie z. B. ein Ruhepositionssensor, um festzustellen,
dass sich der Scanner in der Ruheposition befindet, und ein Lampenthermistor
wird verwendet, um einen korrekten Betrieb der Scannlampe sicherzustellen.
Ein Drucker/eine Abbildungsvorrichtung 192 druckt die Ausgabe
der digitalen Bilderzeugungsvorrichtung und umfasst einen herkömmlichen
Laserdruckmechanismus, einen Tonersensor und einen Bilddichtesensor.
Der Fixierer 190 wird verwendet, um den Toner auf die Seite
unter Verwendung einer Hochtemperaturwalze zu fixieren, und umfasst
einen Austrittssensor, einen Thermistor, um sicherzustellen, dass
sich der Fixierer 190 nicht überhitzt, und einen Ölsensor.
Außerdem
ist eine Schnittstelle 188 einer optionalen Einheit vorhanden,
die verwendet wird, um optionale Elemente der digitalen Bilderzeugungsvorrichtung
anzuschließen, wie
z. B. eine automatische Dokumentenvorschubeinrichtung, eine andere
Art von Sortierer/Prüfer
oder andere Elemente, die zur digitalen Bilderzeugungsvorrichtung hinzugefügt werden
können.
Andere Elemente umfassen eine GPS-Einheit, die den Ort der Vorrichtung
identifizieren kann.
-
4 stellt
Details der Netzschnittstelle 166 mit mehreren Ports dar.
Die digitale Bilderzeugungsvorrichtung kann mit externen Vorrichtungen über eine
Token-Ring-Schnittstelle 220,
eine Kabelmodemeinheit 222, die eine Hochgeschwindigkeitsverbindung über ein
Kabel aufweist, eine herkömmliche
Telephonschnittstelle 224, die mit einer Telephonleitung 168A verbindet,
eine drahtlose Schnittstelle 228 oder eine Ethernet-Schnittstelle 230,
die mit einem LAN 170 verbindet, kommunizieren. Andere
Schnittstellen können
umfassen, sind jedoch nicht begrenzt auf eine digitale Teilnehmerleitung
(DSL) (ursprüngliche
DSL, konzentrische DSL und asymmetrische DSL). Eine einzelne Vorrichtung,
die mit sowohl einem lokalen Netz als auch einer Telephonleitung
verbindet, ist von Intel kommerziell erhältlich und ist als Intel Pro
10/100+ Modem bekannt.
-
Die
CPU oder ein anderer Mikroprozessor oder eine andere Schaltungsanordnung
führt einen Überwachungsprozess
aus, um den Zustand von jedem der Sensoren der digitalen Bilderzeugungsvorrichtung
zu überwachen,
und ein Ablaufsteuerungsprozess wird verwendet, um die Befehle des
Codes auszuführen,
der zum Steuern und Betreiben der digitalen Bilderzeugungsvorrichtung
verwendet wird. Außerdem
wird (1) ein Zentralsystem-Steuerprozess ausgeführt, um den Gesamtbetrieb der
digitalen Bilderzeugungsvorrichtung zu steuern, und (2) ein Kommunikationsprozess
wird verwendet, um eine zuverlässige
Kommunikation mit externen Vorrichtungen, die mit der digitalen
Bilderzeugungsvorrichtung verbunden sind, sicherzustellen. Der Systemsteuerprozess überwacht
und steuert die Datenspeicherung in einem statischen Zustandsspeicher
(z. B. dem ROM 164 in 2), einem
halbstatischen Speicher (z. B. dem Flash-Speicher 178 oder
der Platte 182) oder dem dynamischen Zustandsspeicher (z.
B. einem flüchtigen
oder nicht flüchtigen
Speicher (z. B. dem RAM 162, dem Flash-Speicher 178 oder
der Platte 182.). Außerdem
kann der statische Zustandsspeicher eine andere Vorrichtung als
der ROM 164 wie z. B. ein nicht flüchtiger Speicher, einschließlich eines
des Flash-Speichers 178 oder der Platte 182, sein.
-
Die
obigen Details wurden in Bezug auf eine digitale Bilderzeugungsvorrichtung
beschrieben, aber die vorliegende Erfindung ist gleichermaßen auf
andere Geschäftsbüromaschinen
oder -vorrichtungen wie z. B. einen analogen Kopierer, ein Faxgerät, einen
Scanner, einen Drucker, einen Faxserver, einen Projektor, eine Konferenzan tage,
einen Aktenvernichter oder andere Geschäftsbüromaschinen, ein Geschäftsbürogerät oder andere
Geräte
(z. B. einen Mikrowellenofen, einen VCR, eine DVD, eine Digitalkamera,
digitale Camcorder, ein Mobiltelephon, einen Palmtop-Computer) anwendbar.
Außerdem
umfasst die vorliegende Erfindung andere Arten von Vorrichtungen,
die unter Verwendung einer Speicher- und Weiterleitungs-Kommunikation
oder einer Kommunikation auf der Basis einer direkten Verbindung
arbeiten. Solche Vorrichtungen umfassen, Messsysteme (einschließlich Gas-,
Wasser- oder Elektrizitätsmesssystemen),
Verkaufautomaten, oder eine beliebige mechanische Vorrichtung (z.
B. Kraftfahrzeuge, Motorräder,
Waschmaschine, Trockner), die während
des Betriebs oder einer Ferndiagnose überwacht werden muss. Zusätzlich zur Überwachung
von Spezialmaschinen und Computern kann die Erfindung verwendet
werden, um einen Universalcomputer zu überwachen, zu steuern und zu
diagnostizieren, der die überwachte
und/oder gesteuerte Vorrichtung wäre.
-
5 stellt
ein alternatives Systemdiagramm der vorliegenden Erfindung dar,
in dem verschiedene Vorrichtungen und Untersysteme mit dem WAN 10 verbunden
sind. Es besteht jedoch keine Anforderung, dass jede dieser Vorrichtungen
oder jedes dieser Untersysteme als Teil der Erfindung vorliegt.
Jede Komponente oder jedes Untersystem, das in 5 dargestellt
ist, ist individuell ein Teil der Erfindung. Ferner können die
in 1 dargestellten Elemente mit dem WAN 10 verbunden
sein, das in 5 dargestellt ist. In 5 ist
eine Firewall 50-1 dargestellt, die mit einem Intranet 260-1 verbunden
ist. Eine Dienstmaschine 254, die mit dem Intranet 260-1 verbunden
ist, umfasst darin Daten 256, die in einem Datenbankformat
gespeichert sein können,
oder ist mit diesen verbunden. Die Daten 256 umfassen eine
Geschichte, Leistung, Funktionsstörung und beliebige andere Informationen,
wie z. B. statistische Informationen des Betriebs oder Ausfalls
oder der Einrichtung der überwachten
Vorrichtungen, oder Konfigurationsinformationen, wie z. B. welche
Komponenten oder optionale Anlage in den überwachten Vorrichtungen enthalten
ist. Die Dienstmaschine 254 kann als Vorrichtung oder Computer
implementiert werden, der die überwachten
Vorrichtungen auffordert, Daten zu übertragen, oder der anfordert,
dass eine Fernsteuerung und/oder Diagnosetests an den überwachten
Vorrichtungen durchgeführt
werden. Die Dienstmaschine 254 kann als beliebige Art von
Vorrichtung implementiert werden und wird vorzugsweise unter Verwendung
einer computerisierten Vorrichtung wie z. B. eines Universalcomputers
implementiert. Die Dienstmaschine 254 kann auch aus mehreren
Computern über
das Netz mit einer unterschiedlichen Datenbank, einschließlich Abrechnung,
Buchhaltung, Dienstverarbeitung, Teileverfolgung und Berichten,
bestehen.
-
Ein
weiteres Untersystem von 5 umfasst
eine Firewall 50-2, ein Intranet 260-2 und einen
Drucker 262, der damit verbunden ist. In diesem Untersystem
werden die Funktionen des Sendens und Empfangens von elektronischen
Nachrichten durch den Drucker 262 (und ebenso durch einen
Kopierer 286) durch (1) eine Schaltungsanordnung, (2) einen
Mikroprozessor oder (3) irgendeine andere Art von Hardware, die
in dem Drucker 262 enthalten oder an diesem angebracht
ist (d. h. ohne Verwendung eines separaten Universalcomputers),
durchgeführt.
-
Eine
alternative Art von Untersystem umfasst die Verwendung eines Internet-Dienstanbieters 264,
der eine beliebige Art von Internet-Dienstanbieter (ISP) sein kann,
einschließlich
bekannter kommerzieller Gesellschaften, wie z. B. America Online,
Earthlink und Niftyserve. In diesem Untersystem ist ein Computer 266 mit dem
ISP 264 über
ein digitales oder analoges Modem (z. B. ein Telephonleitungsmodem,
ein Kabelmodem, Modems, die eine beliebige Art von Drähten verwenden,
wie z. B. Modems, die über
einer asymmetrischen digitalen Teilnehmerleitung (ADSL) verwendet
werden, Modems, die eine Rahmenweiterleitungskommunikation verwenden,
drahtlose Modems wie z. B. ein Hochfrequenzmodem, ein faseroptisches
Modem oder eine Vorrichtung, die Infrarotlichtwellen verwendet)
verbunden. Ferner ist eine Geschäftsbürovorrichtung 268 mit dem
Computer 266 verbunden. Als Alternative zur Geschäftsbürovorrichtung 268 (oder
irgendeiner anderen Vorrichtung, die in 5 dargestellt
ist), kann eine andere Art von Maschine überwacht oder gesteuert werden, wie
z. B. ein digitaler Kopierer, eine beliebige Art von Gerät, ein Sicherheitssystem
oder ein Versorgungsmessgerät,
wie z. B. ein elektrisches, Wasser- oder Gasversorgungsmessgerät, oder
irgendeine andere hierin erörterte
Vorrichtung.
-
In 5 ist
auch eine Firewall 50-3, die mit einem Netz 274 verbunden
ist, dargestellt. Das Netz 274 kann als beliebige Art von
Computernetz (z. B. ein Ethernet oder Token-Ring-Netz) implementiert
werden. Eine Vernetzungssoftware, die verwendet werden kann, um
das Netz zu steuern, umfasst eine beliebige gewünschte Vernetzungssoftware,
einschließlich
einer Software, die von Novell oder Microsoft kommerziell erhältlich ist. Das
Netz 274 kann als Intranet implementiert werden, falls
erwünscht.
Ein mit dem Netz 274 verbundener Computer 272 kann
verwendet werden, um Informationen von einer Geschäftsbürovorrichtung 278 zu
erhalten und Berichte wie z. B. Berichte, die Probleme zeigen, die
in verschiedenen mit dem Netz verbundenen Maschinen aufgetreten
sind, und einen monatlichen Nutzungsbericht der mit dem Netz 274 verbundenen
Vorrichtungen zu erzeugen. In dieser Ausführungsform ist ein Computer 276 zwischen
die Geschäftsbürovorrichtung 278 und
das Netz 274 geschaltet. Dieser Computer empfängt Kommunikationen
vom Netz und leitet die geeigneten Befehle oder Daten oder beliebige
andere Informationen zur Geschäftsbürovorrichtung 278 weiter.
-
Die
Kommunikation zwischen der Geschäftsbürovorrichtung 278 und
dem Computer 276 kann unter Verwendung von Verfahren auf
Drahtbasis oder drahtlosen Verfahren bewerkstelligt werden, einschließlich, jedoch
nicht begrenzt auf Hochfrequenzverbindungen, elektrische Verbindungen
und Lichtverbindungen (z. B. eine Infrarotverbindung oder eine faseroptische
Verbindung). Ebenso kann jedes der verschiedenen Netze und Intranets,
die in 5 dargestellt sind, unter Verwendung
einer beliebigen gewünschten
Weise aufgebaut werden, einschließlich durch den Aufbau von
drahtlosen Netzen wie z. B. Hochfrequenznetzen. Die hierin beschriebene
drahtlose Kommunikation kann unter Verwendung von Streuspektrumverfahren
aufgebaut werden, einschließlich
Verfahren, die einen Streucode und Frequenzsprungverfahren verwenden,
wie z. B. das drahtlose Frequenzsprungverfahren, das in der Bluetooth-Spezifikation offenbart
ist (erhältlich
auf der Site des Word Wide Web www.bluetooth.com), die durch den
Hinweis hierin aufgenommen wird.
-
Ein
weiteres Untersystem, das in 5 dargestellt
ist, umfasst eine Firewall 50-4, ein Intranet 260-4, einen
Computer 282, der damit verbunden ist, ein Geschäftsbürogerät 285 und
einen Kopierer 286. Der Computer 282 kann verwendet
werden, um Berichte zu erzeugen und Diagnose- oder Steuerprozeduren
anzufordern. Diese Diagnose- und Steuerprozeduren können in
Bezug auf das Geschäftsbürogerät 285 und
den Kopierer 286 oder irgendeine der anderen Vorrichtungen,
die in 5 dargestellt sind oder verwendet
werden, durchgeführt
werden. Obwohl 5 mehrere Firewalls darstellt,
sind die Firewalls eine bevorzugte, aber optionale Ausrüstung und
daher kann die Erfindung ohne Verwendung von Firewalls betrieben
werden, falls erwünscht.
Für die Überwachung
und Steuerung der vernetzten Anlage können anstelle von 254 beliebige
Computer (266, 272 oder 282) verwendet
werden. Außerdem
kann irgendein Computer auf 254 zugreifen, um erforderliche
Vorrichtungsinformationen oder Verwendungsinformationen über das
Web abzurufen.
-
6A stellt eine Vorrichtung/ein Gerät 300 dar,
das mit einem typischen E-Mail-Austauschsystem verbunden
ist, das die Komponenten 302, 304, 306, 308, 310, 312, 314, 316 und 318 umfasst,
die in einer herkömmlichen
Weise implementiert werden können
und von 28.1 von Stevens, vorstehend,
angepasst sind. Eine Computerschnittstelle 302 bildet mit
irgendeiner der Anwendungseinheiten oder Vorrichtungen/Geräten 300,
die hierin beschrieben sind, eine Schnittstelle. Obwohl 6A darstellt, dass die Vorrichtung/das Gerät 300 der
Sender ist, können
die Sende- und Empfangsfunktionen in 6A umgekehrt
werden. Ferner kann der Benutzer, falls erwünscht, mit der Vorrichtung/dem
Gerät 300 überhaupt
keine Schnittstelle bilden müssen. Die
Computerschnittstelle 302 wirkt dann mit einem Postagenten 304 zusammen.
Populäre
Postagenten für Unix
umfassen MH, Berkeley Mail, Elm und Mush. Postagenten für die Windows-Familie
von Betriebssystemen umfassen Microsoft Gutlook und Microsoft Gutlook
Express. Bei der Anforderung der Computerschnittstelle 302 erzeugt
der Postagent 304 zu sendende E-Mail-Nachrichten und setzt,
falls erwünscht,
diese zu sendenden Nachrichten in eine Warteschlange 306.
Die zu sendende Post wird zu einem Nachrichtenübertragungsagenten (MTA) 308 weitergeleitet.
Ein üblicher
MTA für
Unix-Systeme ist Sendmail. Typischerweise tauschen die Nachrichtenübertragungsagenten 308 und 312 Kommunikationen
unter Verwendung einer TCP/IP-Verbindung 310 aus. Beachtenswerterweise
kann die Kommunikation zwischen den Nachrichtenübertragungsagenten 308 und 312 über ein
Netz mit beliebiger Größe (z. B.
WAN oder LAN) stattfinden. Ferner können die Nachrichtenübertragungsagenten 308 und 312 ein
beliebiges Kommunikationsprotokoll verwenden. In einer Ausführungsform
der vorliegenden Erfindung befinden sich die Elemente 302 und 304 von 6A in der Bibliothek, um die Verwendung der Anwendungseinheit
zu überwachen.
-
Vom
Nachrichtenübertragungsagenten 312 werden
E-Mail-Nachrichten in Benutzerbriefkästen 314 gespeichert,
die zum Postagenten 316 übertragen und schließlich zum
Benutzer an einem Endgerät 318 übertragen
werden, das als Empfangsendgerät
fungiert.
-
Dieser
Prozess zum "Speichern
und Weiterleiten" entlastet
den Sendepostagenten 304 davon, dass er warten muss, bis
eine direkte Verbindung mit dem Postempfänger aufgebaut ist. Aufgrund
von Netzverzögerungen
könnte
die Kommunikation eine beträchtliche
Menge an Zeit erfordern, während
der die Anwendung nicht reagieren würde. Solche Verzögerungen
im Ansprechvermögen
könnten
für Benutzer
der Anwendungseinheit im Allgemeinen unannehmbar sein. Unter Verwendung
von E-Mail als Prozess zum Speichern und Weiterleiten geschehen
Neuübertragungsversuche
nach Ausfällen
automatisch für
einen festgelegten Zeitraum (z. B. drei Tage). In einer alternativen
Ausführungsform
kann die Anwendung das Warten vermeiden, indem sie Kommunikationsanforderungen
zu einem oder mehreren separaten Teilprozessen leitet. Diese Teilprozesse können dann
die Kommunikation mit dem Empfangsendgerät 318 steuern, während die
Anwendung beginnt, wieder auf die Benutzerschnittstelle zu reagieren.
In noch einer weiteren Ausführungsform,
in der ein Benutzer wünscht,
dass die Kommunikation vor der Fortsetzung beendet wird, wird eine direkte
Kommunikation mit dem Empfangsendgerät verwendet. Eine solche direkte
Kommunikation kann ein beliebiges Protokoll verwenden, das nicht
durch eine Firewall zwischen dem Sende- und dem Empfangsendgerät blockiert
wird. Beispiele solcher Protokolle umfassen Telnet, File Transfer
Protocol (FTP) und Hyper Text Transfer Protocol (HTTP).
-
Öffentliche
WANs wie z. B. das Internet werden im Allgemeinen nicht als sicher
betrachtet. Wenn es erwünscht
ist, Nachrichten vertraulich zu halten, können daher Nachrichten, die über die öffentlichen
WANs (und private WANs mehrerer Firmen) übertragen werden, verschlüsselt werden.
Verschlüsselungsmechanismen
sind bekannt und kommerziell erhältlich
und können
bei der vorliegenden Erfindung verwendet werden. Eine C++-Bibliotheksfunktion,
crypt(), steht beispielsweise von Sun Microsystems zur Verwendung
beim Unix-Betriebssystem zur Verfügung. Verschlüsselungs-
und Entschlüsselungs-Softwarepakete
sind bekannt und kommerziell erhältlich
und können
auch bei dieser Erfindung verwendet werden. Ein solches Paket ist PGP,
das von PGP Corporation erhältlich
ist.
-
Als
Alternative zur allgemeinen Struktur von 6A kann
ein einzelner Computer, der als Computerschnittstelle 302,
als Postagent 304, als Postwarteschlange 306 und
als Nachrichtenübertragungsagent 308 funktioniert,
verwendet werden. Wie in 6B dargestellt,
ist die Vorrichtung/das Gerät 300 mit
einem Computer 301 verbunden, der den Nachrichtenübertragungsagenten 308 umfasst.
-
Eine
weitere alternative Struktur ist in 6C gezeigt,
in der der Nachrichtenübertragungsagent 308 als
Teil der Vorrichtung/des Geräts 300 gebildet
ist. Ferner ist der Nachrichtenübertragungsagent 308 mit
dem Nachrichtenübertragungsagenten 312 durch
eine TCP/IP-Verbindung 310 verbunden. In der Ausführungsform von 6C ist die Vorrichtung/das Gerät 300 direkt mit der
TCP/IP-Verbindung 310 mit einer E-Mail-Fähigkeit verbunden. Eine Verwendung
der Ausführungsform
von 6C umfasst die Verwendung eines
Faxgeräts
mit einer E-Mail-Fähigkeit
(z. B. wie in RFC 2305 (eine einfache Betriebsart von Fax unter
Verwendung von Internet-Post) definiert) als Vorrichtung/Gerät 300.
-
6D stellt ein System dar, in dem die Vorrichtung/das
Gerät 300 nicht
selbst die Fähigkeit
hat, E-Mail direkt zu empfangen, sondern eine Verbindung 310 mit
einem Postserver/POP3-Server mit einem Nachrichtenübertragungsagenten 308 und
einem Briefkasten 314 aufweist, so dass die Vorrichtung/das
Gerät 300 das
POP3-Protokoll verwendet, um empfangene Post vom Postserver abzurufen.
-
7 stellt
eine alternative Implementierung der Übertragung von Post dar und
ist von 28.3 von Stevens angepasst,
auf das vorher Bezug genommen wurde. 7 stellt
ein elektronisches Postsystem mit einem Weiterleitungssystem an
jedem Ende dar. Die Anordnung von 7 ermöglicht,
dass ein System in einer Organisation als Post-Hub wirkt. In 7 sind
vier MTAs zwischen die zwei Postagenten 304 und 316 geschaltet.
Diese MTAs umfassen einen lokalen MTA 332A, einen Weiterleitungs-MTA 328A,
einen Weiterleitungs-MTA 328B und einen lokalen MTA 322D.
Das üblichste
Protokoll, das für
Postnachrichten verwendet wird, ist SMTP (Simple Mail Transfer Protocol),
das bei dieser Erfindung verwendet werden kann, obwohl ein beliebiges
gewünschtes
Postprotokoll verwendet werden kann. In 7 bezeichnet 320 einen
sendenden Host, der die Computerschnittstelle 302, den
Postagenten 304 und den lokalen MTA 322A umfasst.
Die Vorrichtung/das Gerät 300 ist
mit dem sendenden Host 320 verbunden oder alternativ in
diesem enthalten. Als weiterer Fall können sich die Vorrichtung/das
Gerät 300 und
der Host 320 in einer Maschine befinden, wobei die Host-Fähigkeit
in die Vorrichtung/das Gerät 300 eingebaut
ist. Andere lokale MTAs 3228, 322C, 322E und 322F können auch
enthalten sein. Zu sendende und zu empfangende Post kann in eine
Postwarteschlange 306B des Weiterleitungs-MTA 328A gestellt
werden. Die Nachrichten werden über
die TCP/IP-Verbindung 310 (z. B. eine Internet-Verbindung
oder eine Verbindung über
irgendeine andere Art von Netz) übertragen.
-
Die übertragenen
Nachrichten werden vom Weiterleitungs-MTA 328B empfangen
und, falls erwünscht,
in einer Postwarteschlange 306C gespeichert. Die Post wird
dann zum lokalen MTA 322D eines empfangenden Host 342 weitergeleitet.
Die Post kann in einen oder mehrere der Benutzerbriefkästen 314 gegeben und
anschließend
zum Postagenten 316 weitergeleitet und schließlich zum
Benutzer an einem Endgerät 318 weitergeleitet
werden. Falls erwünscht,
kann die Post ohne Benutzereingriff direkt zum Endgerät weitergeleitet werden.
-
Die
in der vorliegenden Erfindung verwendeten verschiedenen Computer,
einschließlich
der Computer 266 und 276 von 5,
können
wie in 8 dargestellt implementiert
werden. Ferner kann irgendein anderer Computer, der in dieser Erfindung
verwendet wird, in einer ähnlichen
Weise zu dem in 8 dargestellten Computer implementiert
werden, falls erwünscht,
einschließlich
der Dienstmaschine 254, des Computers 272 und
des Computers 282 von 5. Nicht
jedes in 8 dargestellte Element ist
jedoch in jedem dieser Computer erforderlich.
-
In 8 umfasst
der Computer 360 eine CPU 362, die als beliebige
Art von Prozessor implementiert werden kann, einschließlich kommerziell
erhältlicher
Mikroprozessoren von Firmen wie z. B. Intel, AMD, Motorola, Hitachi
und NEC. Es ist ein Arbeitsspeicher wie z. B. ein RAM 364 und
eine drahtlose Schnittstelle 366, die mit einer drahtlosen
Vorrichtung 368 kommuniziert, vorhanden. Die Kommunikation
zwischen der Schnittstelle 366 und der Vorrichtung 368 kann
ein beliebiges drahtloses Medium (z. B. Funkwellen oder Lichtwellen) verwenden.
Die Funkwellen können
unter Verwendung eines Streuspektrumverfahrens wie z. B. einer Kommunikation
mit Code Division Multiple Access (CDMA) oder unter Verwendung eines
Frequenzsprungverfahrens wie z. B. des in der Bluetooth-Spezifikation
offenbarten implementiert werden.
-
Der
Computer 360 umfasst einen ROM 370 und einen Flash-Speicher 371,
obwohl eine beliebige andere Art von nicht flüchtigem Speicher (z. B. ein
löschbarer
programmierbarer ROM oder ein EEPROM) zusätzlich zu oder anstelle von
dem Flash-Speicher 371 verwendet
werden kann. Mit einer Eingabesteuereinheit 372 ist eine
Tastatur 374 und eine Maus 376 verbunden. Eine
serielle Schnittstelle 378 ist mit einer seriellen Vorrichtung 380 verbunden.
Außerdem
ist eine parallele Schnittstelle 382 mit einer parallelen
Vorrichtung 384 verbunden, eine Schnittstelle 386 eines
universellen seriellen Busses (USB) ist mit einer Vorrichtung 388 eines universellen
seriellen Busses verbunden, und es ist auch eine Vorrichtung 400 für IEEE 1394
vorhanden, die üblicherweise
als Firewire-Vorrichtung bezeichnet wird, die mit einer Schnittstelle 398 für IEEE 1394
verbunden ist. Ein Systembus 390 verbindet die verschiedenen
Elemente des Computers 360. Eine Plattensteuereinheit 396 ist
mit einem Diskettenlaufwerk 394 und einem Festplattenlaufwerk 392 verbunden.
Eine Kommunikationssteuereinheit 406 ermöglicht,
dass der Computer 360 mit anderen Computern (z. B. durch
Senden von E-Mail-Nachrichten) über
ein Netz 404 kommuniziert. Eine E/A-Steuereinheit (Eingabe/Ausgabe-Steuereinheit) 408 ist
mit einem Drucker 410 und einer Festplatte 412 beispielsweise
unter Verwendung eines SCSI-Busses
(Bus einer Schnittstelle für
ein kleines Computersystem) verbunden. Eine Anzeigesteuereinheit 416 ist
auch mit einer CRT (Kathodenstrahlröhre) 414 verbunden,
obwohl irgendeine andere Art von Anzeige verwendet werden kann,
einschließlich
einer Flüssigkristallanzeige,
einer Leuchtdiodenanzeige, einer Plasmaanzeige usw.
-
Mit
Bezug nun auf 9 ist eine schematische Darstellung
des Gesamtsystems 900 gemäß einer beispielhaften Ausführungsform
der vorliegenden Erfindung gezeigt. Es ist gezeigt, dass das System 900 mehrere
Vorrichtungen umfasst, beispielsweise einen Laserdrucker 908,
einen Scanner 910, eine Netzvorrichtung 912 und
einen Multifunktionsdrucker 914, die alle mit einem Netz 100 verbunden
sind. Diese mehreren Vorrichtungen werden hierin im Allgemeinen
als "überwachte
Vorrichtungen" bezeichnet.
Das System 900 umfasst auch ein Arbeitsplatzrechner-/Überwachungssystem 902 (nachstehend
als Steuereinheit 902 bezeichnet), das mit dem Netz 100 zur Überwachung
und Steuerung der überwachten
Vorrichtungen 908, 910, 912 und 914 verbunden
ist. Jeder der überwachten
Vorrichtungen 908, 910, 912 und 914 ist
eine eindeutige Adresse gegeben. Beispielsweise dient eine einer
Vorrichtung zugewiesene IP-Adresse als eindeutige Adresse für die Vorrichtung.
Folglich kann ein Benutzer an der Steuereinheit 902 auf
eine jeweilige Vorrichtung unter den überwachten Vorrichtungen 908–914 zugreifen,
indem er auf die eindeutige IP-Adresse,
die der jeweiligen überwachten
Vorrichtung zugewiesen ist, zugreift. Es ist zu erkennen, dass die
vorliegende Erfindung nicht auf die Verwendung von IP-Adressen zum eindeutigen
Identifizieren von Vorrichtungen, die mit einem Netz verbunden sind,
begrenzt ist.
-
Die
Steuereinheit 902 erhält
beim Zugreifen auf eine Vorrichtung unter den überwachten Vorrichtungen 908–914 verschiedene
Informationen über
SNMP- und/oder HTTP-Protokolle. Solche Informationen umfassen detaillierte
Informationen über
den Betriebsstatus der Vorrichtung, einschließlich einer Fehlersuchinformation.
Die Steuereinheit 902 greift beispielsweise auf den Stauort
einer speziellen Vorrichtung zu und erhält diesen und sendet eine Nachricht
zu der Person, die für
die Vorrichtung verantwortlich ist, um den Stau zu beseitigen. Der
Betriebsstatus/die Details des Laserdruckers 908 umfassen
solche Details wie Tonerpegel, Angabe von Papierstau, Menge von
Druckpapier in den Druckertabletts usw.
-
Es
ist zu erkennen, dass die Steuereinheit 902 mit dem Netz 100 entweder
physikalisch verbunden oder drahtlos gekoppelt sein kann. Ein persönlicher
digitaler Assistent (PDA) 920 oder ein Laptopcomputer 922,
die als drahtlos mit dem Netz 100 gekoppelt gezeigt sind,
kann beispielsweise auch als Steuereinheit 902 verwendet
werden. Ein Zugriffspunkt 924 wirkt als Schnittstelle,
um drahtlose Kommunikationen zwischen dem Netz 100 und
dem PDA 922 oder Laptopcomputer 922 zu ermöglichen.
Von nun an wird die vorliegende Erfindung unter der Annahme beschrieben,
dass die Steuereinheit 902 den Status der mit dem Netz
verbundenen überwachten
Vorrichtungen steuert und überwacht.
-
Das
Netz 100 erleichtert die Kommunikation zwischen der Steuereinheit 902 und
den überwachten Vorrichtungen 908–914,
um die Überwachung
und Steuerung von solchen überwachten
Vorrichtungen zu ermöglichen.
Die Anzahl von Vorrichtungen, die mit dem Netz verbunden sind, ist
keine Begrenzung der vorliegenden Erfindung. Es ist zu erkennen,
dass das Netz 100 ein lokales Netz (LAN) oder ein weiträumiges Netz (WAN)
sein kann. Ebenso sind die überwachten
Vorrichtungen 908, 910, 912 und 914 als
lediglich beispielhaft gezeigt.
-
Die
Steuereinheit 902 ist mit einer Speichervorrichtung 904 und
einer Datenbank 906 kommunikativ gekoppelt. Die Speichervorrichtung 904 umfasst
eine Festplatte, eine optische Platte und/oder ein externes Plattenlaufwerk.
Die Datenbank 906 ist mit der Speichervorrichtung 904 kommunikativ
gekoppelt und umfasst ein Managementsystem für eine relationale Datenbank
(RDBMS) für
eine leichte Suche und ein leichtes Abrufen von Daten, die in der
Speichervorrichtung 904 gespeichert sind. Die Speichervorrichtung 904 speichert
vorzugsweise detaillierte Informationen über jede der überwachten
Vorrichtungen 908–914.
Detaillierte Informationen wie z. B. Herstellung, Modell und verschiedene
Funktionen und Fehlersuchdetails des Laserdruckers 908 werden
beispielsweise in der Speichervorrichtung 904 gespeichert.
Abweichungswerte über
den Betriebsstatus des Laserdruckers im Vergleich zu vorbestimmten
Referenzwerten können
auch in der Speichervorrichtung 904 gespeichert werden.
Obwohl die Datenverarbeitung 906 und die Speichervorrichtung 904 als
mit der Steuereinheit 902 kommunikativ gekoppelt beschrieben
werden, ist zu erkennen, dass die Steuereinheit 902 so
aufgebaut sein kann, dass die Speichervorrichtung und die Datenbank
darin installiert sind. In einem solchen Fall würden die Speichervorrichtung 906 und
die Datenbank 904 als innerhalb der Steuereinheit 902 dargestellt werden.
-
In
der Steuereinheit 902 ist eine Software installiert, um
die Überwachung
und Steuerung der mehreren Vorrichtungen 908–914 zu
erleichtern. Ein Simple Network Management Protocol (SNMP), File
Transfer Protocol (FTP) und Hyper Text Transfer Protocol (HTTP)
werden von der Steuereinheit 902 zur Überwachung der mehreren Vorrichtungen 908–914 verwendet
und die von den mehreren Vorrichtungen 908–914 empfangenen
Daten werden in Form des ASN.1 Binärformats oder HTML- oder XML-Formaten
dargestellt, wie in 950 gezeigt.
-
Obwohl 9 nur
die Abbildungsvorrichtungen darstellt, kann das Netz für die Kommunikation
von Informationen zwischen der Überwachungsvorrichtung
und den mehreren überwachten
Vorrichtungen das Heimnetz umfassen, wobei die Geräte und Messgeräte mit dem
Netz verbunden sind. Es ist zu erkennen, dass die von der Steuereinheit/vom
Arbeitsplatzrechner 902 gesammelten Daten über E-Mail,
FTP oder irgendein anderes Kommunikationsprotokollmittel zu einer
entfernten Vorrichtung zur Weiterverarbeitung gesandt werden können. Obwohl
der Arbeitsplatzrech ner 902, der PDA 920 oder
der Laptop 922 die Steuereinheit sein kann, die die Daten
sammelt und die Daten speichert oder die Daten über ein Kommunikationsprotokoll
sendet, ist zu erkennen, dass die Steuereinheit eine beliebige der
mit dem Netz verbundenen Vorrichtungen sein kann. Beliebige der
Netzvorrichtungen (z. B. Drucker) können das Überwachungssystem enthalten,
das in der Lage ist, den Status anderer Vorrichtungen im Netz zu überwachen,
die gesammelten Daten zu speichern und/oder die gesammelten Daten über irgendein
anderes Kommunikationsprotokollmittel (z. B. E-Mail, FTP) zu senden. Verschiedene
Modelle von einigen Verkäufern
sind in der Lage, E-Mail zu senden.
-
Überwachungssystemarchitektur
-
10 stellt ein Überwachungssystem 1000 (und
zugehörige
Schnittstellenfunktionen), die bei der Überwachung von Daten verwendet
werden, die entfernten Vorrichtungen zugeordnet sind, gemäß einer
beispielhaften Ausführungsform
der vorliegenden Erfindung dar. Das Überwachungssystem 1000 umfasst
das Softwaremodul MonitorService 1004, das ein im Computer
befindliches Programm wie z. B. Service in NT oder Windows 2000
und Daemon in Unix ist. In einer bevorzugten Ausführungsform
wird das Überwachungssystem unter
Verwendung einer objektorientierten Softwareumgebung implementiert.
Im Überwachungssystem 1000 sind
auch ein Zeitgebermodul 1002 und ein Überwachungsmodul 1006 enthalten.
Das Zeitgebermodul 1002 und das Überwachungsmodul 1006 sind
Bibliotheksfunktionen, die vom MonitorService-Modul 1004 aufgerufen
werden sollen. MonitorService 1004 initialisiert beispielsweise
das Zeitgebermodul 1002 durch Aufrufen der Funktion InitTimer 1003 und
erhält
Verzögerungs-
und Handlungsparameter durch Aufrufen der Funktion obtainDelayAndAction
(int &, int &). Die init()-Funktion
wird auch vom MonitorService-Modul 1004 aufgerufen, um
verschiedene Module im Überwachungsmodul 1006 zu
initialisieren, wie in 13 dargestellt.
Die finit()-Funktion kann verwendet werden, um die IP-Adresse und
einen Parameterwert, die einer überwachten Vorrichtung
zugewiesen sind, über
eine externe Quelle, die IP-Adressen, Parameternamen und Werte,
die durch bekannte Verfahren gesammelt werden, enthält, zu erhalten.
Das Überwachungsmodul 1006 ist
mit einer Unterstützungsdatenbank 1024 und
mit einer Überwachungsdatenbank 1014,
die nachstehend genauer beschrieben werden, kommunikativ gekoppelt.
-
Sobald
die IP-Adresse einer überwachten
Vorrichtung erhalten ist, wird die IP-Adresse vom Überwachungssystem verwendet,
um die überwachte
Vorrichtung zu kontaktieren, um Informationen wie z. B. Herstellerinformationen
(Verkäuferinformati onen)
und Modellinformationen zu erhalten. Einige der vom Überwachungssystem 1000 ausgeführten Funktionen
umfassen:
-
void initTimer(void)
-
Diese
Funktion initialisiert den Zeitgeber. Insbesondere löst diese
Funktion das Zeitgeberobjekt aus, um die Zeitablaufinformationen
von der Registrierdatenbank zu erhalten.
-
void obtainDelayAndAction(int & out_nDelay, int & out_nAction)
-
Diese
Funktion gibt die Verzögerungszeit
in Sekunden für
die ::Sleep-Funktion (muss 1000 multiplizieren) und den Handlungsindikator
zurück.
Der Handlungsindikator ist folgendermaßen definiert: 0 = Ereignisprüfung; 1
= Senden der überwachten
Daten; und 2 = Überwachen
und Speichern der Daten in der lokalen Datenbank.
-
int init(void)
-
Diese
Funktion initialisiert die Überwachungseinrichtung.
Außerdem
erzeugt sie die zu überwachenden
Vorrichtungen. Die Rückgabe
int ist der Fehlercode, in dem Null als kein Fehler definiert ist.
-
int monitorStatus(int in_nAction)
-
Diese
Funktion überwacht
die vorgegebenen Informationen. Die Rückgabe int ist der Fehlercode,
in dem Null als kein Fehler definiert ist.
-
int end(void)
-
Diese
Funktion bereinigt die Überwachungseinrichtung,
bevor die Objekte geschlossen werden. Die Rückgabe int ist der Fehlercode,
in dem Null als kein Fehler definiert ist.
-
Überwachungsmodul
-
11 zeigt die Strukturdetails des Überwachungsmoduls 1006,
einschließlich
der verschiedenen Softwareuntermodule, und die Aufruffunktionen
zwischen den Untermodulen des Überwachungsmoduls 1006. Das Überwachungsmodul 1006 umfasst
ein Common-Modul 1101, das Klassen enthält, die von vielen Modulen
verwendet werden, ein MonitorManager-Modul 1102, das die
anderen Untermodule managt (einschließlich des DeviceODBC-Moduls 1004,
des Device-Moduls 1110 und des HWaccess-Moduls 1116),
um die durch die Schnittstellenfunktionen definierten Auf gaben zu
vollenden, wie in 10 dargestellt. Insbesondere
wird auf das Device-ODBC-Modul 1104 zugegriffen,
um auf externe Vorrichtungsinformationen über die Standardschnittstelle
zuzugreifen. Das HWaccess-Modul 1116 enthält Verkäuferinformationen,
Modellinformationen, Informationen der eindeutigen ID und Statusinformationen
von den überwachten
Vorrichtungen unter Verwendung eines ausgewählten Kommunikationsprotokolls
unter mehreren Kommunikationsprotokollen (z. B. HTTP, SNMP und FTP).
Jedes der Überwachungssoftwaremodule
wird nachstehend genauer beschrieben.
-
Das
Folgende ist eine teilweise Auflistung und Beschreibung der Schnittstellen
zwischen den vorstehend erörterten Überwachungsmodulen.
Einige Module können
beispielsweise "init"-Funktionen oder
zusätzliche
Funktionen aufweisen müssen,
um die Informationen in zweckmäßigen Formaten
zu erhalten.
-
void updateConfig(std::map<infoType, std::string> &)
-
Bevor
diese Funktion aufgerufen wird, ist es bevorzugt, dass die Aufruffunktion
die Verkäufer-
und Modelleinträge
nicht ersetzt, wenn die Erhaltungsfunktionen einen Nullstring zurückgeben.
Diese Funktion aktualisiert die Vorrichtungsinformationsdatenbank
des aktuellen Datensatzes in DeviceODBC 1104. Diese Funktion
ist am effizientesten, wenn das nachstehende ObtainConfig anfänglich aufgerufen
wird. Zuerst prüft
diese Funktion, ob die IP-Adresse dieselbe in DeviceODBC 1104 ist.
Wenn die IP-Adressen-Felder nicht gleich sind, wird der Datensatz
mit der korrekten IP-Adresse
von der Datenbank erhalten. Dann werden die anderen Felder kopiert
und der Datensatz wird aktualisiert.
-
bool obtainConfig(std::map<infoType, std::string> &, std::map<std::string, std::vector<SParameter>> &)
-
Diese
Funktion erhält
die Abbildung von DeviceODBC 1104 für die Vorrichtungsinformationen
im gegebenen Format und die Abbildung von Protokollen und zugeordneten
Parametern. Die Funktion gibt wahr zurück, wenn Daten zurückgegeben
werden, falsch wenn keine weiteren Daten vorhanden sind.
-
bool saveStatus(std::map<infoType, std::string> &)
-
Diese
Funktion speichert die Statusinformationen in der DeviceODBC 1104.
Die Funktion gibt wahr zurück,
wenn das Speichern erfolgreich ist, ansonsten falsch.
-
CDevice*createDevice(const std::string & in_sIP, CHWaccess & in_HWaccess,
std::map<std::string,
std::vector<SParameter>> & in_ProtocolParameters)
-
Diese
Funktion erzeugt die Vorrichtung auf der Basis von in_sIP und in_ProtocolParameters.
Die erzeugte Vorrichtung wird über
CHWaccess mit der Hardware verbunden. Wenn die Vorrichtung nicht
erzeugt werden kann, gibt die Funktion 0 zurück. Daher sollte das aufrufende
Objekt prüfen,
ob der Rückgabeobjektzeiger
0 ist oder nicht.
-
bool canAccessHW(void)
-
Diese
Funktion gibt wahr zurück,
wenn auf die Hardware über
das Netz zugegriffen werden kann, ansonsten falsch.
-
bool getVendor(std::string & out_sVendor)
-
Diese
Funktion gibt den Verkäufernamen
zurück.
Wenn die Vorrichtung vom System nicht unterstützt wird, aber auf diese über eines
der Protokolle zugegriffen werden kann, soll der String "ALLGEMEIN" enthalten. Wenn
der Fehler im Prozess erfasst wird, gibt die Funktion falsch mit
einem Nullstring zurück.
Ansonsten gibt die Funktion wahr zurück.
-
bool getModel(std::string & out_sModel)
-
Diese
Funktion erhält
das Modell der Vorrichtung. Wenn das Modell erhalten wird, gibt
die Funktion wahr zurück.
Wenn der Fehler im Prozess erfasst wird, gibt die Funktion falsch
mit einem Nullstring zurück.
-
bool getUniqueID(std::string & out_sUniqueID)
-
Diese
Funktion gibt die eindeutige ID der Vorrichtung zurück. Wenn
die eindeutige ID erhalten wird, gibt die Funktion wahr zurück. Wenn
der Fehler im Prozess erfasst wird, gibt die Funktion falsch mit
einem Nullstring zurück.
-
bool obtainStatus(map<infoType, std::string> & out StatusMap)
-
Diese
Funktion gibt die Statusabbildung zurück. Die Funktion gibt wahr
zurück,
wenn der Status zurückgegeben
wird, falsch, wenn der Status nicht erhalten werden konnte. Es ist
zu beachten, dass diese Funktion die verschiedenen Abbildungen von
den HWaccess- und Device-Modulen zurückgibt. Im Device-Modul werden
Ereignisstatusinformationen zu der von HWaccess zurückgegebenen
Abbildung hinzugefügt
und werden gelöscht.
-
enum checkEventStatus(void)
-
Diese
Funktion löst
das Erhalten des Ereignisses der Netzvorrichtung aus. Der enum-Typ
und Werte sollten in den Klassen definiert sein. Die enum-Werte
sollten Werte eNoEventSinceClearAndNoEventDetected, eNoEventSinceClearAndEventDetected,
eEventSinceClearAndNoEventDetected, eEventSinceClearAndEventDetected
umfassen.
-
bool obtainEventStatus(std::mapinfoType,
std::string> & out-EventStatusMap)
-
Diese
Funktion erhält
Ereignisstatusinformationen. Die Funktion gibt wahr zurück, wenn
der Status zurückgegeben
wird, falsch, wenn der Status nicht erhalten werden konnte.
-
void clearEventStatus(void)
-
Diese
Funktion löscht
den Ereignisstatus, der seit dem letzten obtainStatus-Funktionsaufruf oder
clearEventStatus erhalten wurde.
-
void initBegin(void)
-
Diese
Funktion startet den Initialisierungsprozess durch HWaccess, insbesondere
um die Softwarevorrichtungsobjekte zu erzeugen.
-
void initEnd(void)
-
Diese
Funktion beendet den Initialisierungsprozess durch HWaccess, was
bedeutet, dass die Vorrichtungsobjekterzeugung beendet ist.
-
bool canAccessIP(const std::string & in_sIP, std::map<std::string, std::vector<SParameter>> & in_ProtocolParameters)
-
Diese
Funktion gibt wahr zurück,
wenn auf die Vorrichtung an der IP-Adresse zugegriffen werden kann,
ansonsten falsch.
-
bool obtainVendor(std::string & out_sVendor,
std::map<std::string,
std::vector<SParameter>> & inOut_ProtocolParameters,
const std::string & in_sIP)
-
Diese
Funktion erhält
den Verkäufer.
Die Funktion gibt wahr zurück,
wenn die Operation erfolgreich ist, ansonsten falsch mit dem leeren
String. Während
dieses Funktionsaufrufs werden die Protokolle untersucht, und wenn
ein spezielles Protokoll für
die Statusüberwachung
nicht verwendet werden kann, soll das Protokoll aus den inOut_ProtocolParameters
gelöscht
werden.
-
bool obtainModel(std::string & out_sModelName,
std::map<std::string,
std::vector<SParameter>> & Out_ProtocolParameters,
const std::string & in_sIP)
-
Diese
Funktion erhält
den Modellnamen. Die Funktion gibt wahr zurück, wenn die Operation erfolgreich
ist, ansonsten falsch mit dem leeren String. Während dieses Funktionsaufrufs
werden die Protokolle untersucht, und wenn ein spezielles Protokoll
nicht für
die Statusüberwachung
verwendet werden kann, soll das Protokoll aus den inOut_ProtocolParameters
gelöscht
werden.
-
bool obtainUniqueID(std::string & out_sUniqueID,
std::map<std::string,
std::vector<SParameter>> & inOut_ProtocolParameters,
const std::string in_sIP)
-
Diese
Funktion erhält
die eindeutige ID. Die Funktion gibt wahr zurück, wenn die Operation erfolgreich ist,
ansonsten falsch mit dem leeren String. Während dieses Funktionsaufrufs
werden die Protokolle untersucht, und wenn ein spezielles Protokoll
nicht für
die Statusüberwachung
verwendet werden kann, soll das Protokoll aus den inOut_ProtocolParameters
gelöscht
werden.
-
EerrorCode
obtainEventStatus(std::map<infoType,
std::string> & out_StatusMap,
const std::string & in_sIP,
std::map<std::string,
std::vector<SParameter>> & in_ProtocolParameters)
Diese Funktion erhält
den Ereignisstatus. Der EerrorCode ist nachstehend definiert.
-
bool obtainStatus(std::map<infoType, std::string> & out_StatusMap, const std::string & in_sIP, const
std::string & in_sVendor,
const std::string & in_sModel,
std::map<std::string,
std::vector<SParameter>> & in_ProtocolParameters)
-
Diese
Funktion erhält
den Status der Vorrichtung. Die Funktion gibt wahr zurück, wenn
die Operation erfolgreich ist, ansonsten falsch mit der leeren Abbildung.
-
12 zeigt die Datenstruktur, die vom HWaccess-Modul 1116 verwendet
wird, wie in 11 dargestellt, um Informationen
für das
Abrufen von Werten auszutauschen, die Schlüsselwerten zugeordnet sind,
die vom HWaccess-Modul 1116 empfangen werden. Die skeyValueInfo-Datenstruktur,
wie in 12 gezeigt, wird beispielsweise
verwendet, um zu bestimmen, wie Informationen, die einem speziellen
Informationstyp (entsprechend m_infoType 1202) entsprechen,
innerhalb einer gegebenen Webseite zu erhalten sind. Typischerweise
verwenden eine Mehrzahl von Verkäufern
verkäuferspezifische
Identifizierer und eine verkäuferspezifische
Nomenklatur, um Schlüsselinformationen
zu identifizieren, die auf ihren jeweiligen Webseiten angezeigt werden,
die mit einer überwachten
Vorrichtung in Beziehung stehen. Um beispielsweise die Anzahl von
Seiten, die von einer Druckervorrichtung gedruckt werden, zu bestimmen,
verwendet ein Verkäufer
das "Seitenzahl"-Merkmal, während ein
anderer Verkäufer
dieselbe unter Verwendung eines Merkmals "gelieferte gesamte Blätter identifiziert.
Ein Merkmal der vorliegenden Erfindung besteht darin, die Varianzen
von Verkäufer
zu Verkäufer
zu beseitigen und dadurch ein standardisiertes und einheitliches
Verfahren zum Identifizieren von vorrichtungsspezifischen Informationen
bereitzustellen und den Wert, der den Informationen entspricht,
unter Verwendung einer Datenstruktur/SKeyValueInfo-Struktur 1200 zu
extrahieren. Die SKeyValueInfo-Datenstruktur 1200 umfasst
Attribute, die öffentlich
sind.
-
SKeyValueInfo
ist typischerweise eine Datenstruktur, die erzeugt wird, um Wertinformationen
aus Informationen zu identifizieren, die von einer überwachten
Vorrichtung in Form eines Datenstrings oder eines Schlüsselstrings
empfangen werden. SKeyValueInfo umfasst mehrere Felder, wobei jedes
Feld durch in 12 dargestellte Informationen
dargestellt wird. Die SKeyValueInfo-Struktur 1200 umfasst
ein m_sKey-Feld 1204, das einen Stringschlüssel darstellt,
ein m_nPosition-Feld 1206, das vorzugsweise ein Wert auf
Tag-Basis ist, der die Anzahl von Positionen im String angibt, in
denen eine Wertinformation angeordnet sein könnte, und ein m_nIn_inePosition-Feld 1212.
Die Seitenzahl einer Druckervorrichtung, die einer Überwachung
unterliegt, kann beispielsweise in einer zweiten Position, die einem
Schlüsselwort
fort, gefunden werden. m_sType 1208 stellt den Typ von
Informationen dar, die von einer angezeigten Webseite einer überwachten
Vorrichtung abgerufen werden können.
-
Wenn
der Wert, wie beispielsweise der Modellname der überwachten Vorrichtung, innerhalb
derselben Datenzeile des Schlüssels
(Produktname) zu finden ist, ist das m_nPositon-Feld "0". m_sDelimiter 1210 gibt einen
speziellen Begrenzer an, der verwendet wird, um den dem Schlüssel zugeordneten
Wert zu extrahieren. Die SKeyValueInfo-Datenstruktur gibt an, wie
die Wertinformationen von Informationen zu extrahieren sind, die von
einer überwachten
Vorrichtung in einem HTML-Format empfangen werden.
-
13 zeigt die Sequenz der init()-Funktion, um die
Aufrufsequenz des Überwachungsmoduls 1006 zu
beschreiben, wie in 10 dargestellt. Der MonitorManager 1102 intialisiert
das HWaccess-Modul 1116, um die Initialisierungsfunktion
zu starten. Anschließend
erhält
der MonitorManager 1102 Informationen über eine über wachte Vorrichtung und verwendet
eine IP-Adresse, die der überwachten
Vorrichtung zugewiesen ist, um mit der überwachten Vorrichtung zu kommunizieren.
Der MonitorManager 1102 greift auf DeviceODBC 1104 zu,
um Konfigurationsinformationen der überwachten Vorrichtung zu erhalten.
Die zum MonitorManager 1102 zurückgegebenen Konfigurationsinformationen
umfassen beispielsweise eine IP-Adresse
der überwachten
Vorrichtung, Parameternamen und zugehörige Werte für jedes
Protokoll und Verkäufer/Hersteller-
und Modellinformationen der überwachten
Vorrichtung. Sobald die IP-Adresse erhalten ist, legt der MonitorManager 1102 die
IP-Adresse, Parameternamen und zugehörigen Werte für jedes
Protokoll fest, um ein Softwareobjekt auf der Basis der Klassenstruktur
des Device-Moduls 1110 durch die CDeviceFactory-Klasse 1302 von 35 zu erzeugen. Wenn das Vorrichtungssoftwareobjekt
erfolgreich erzeugt wird, wird das HWaccess-Modul 1116 verwendet,
um den Verkäufer,
das Modell und die eindeutige ID von der überwachten Vorrichtung zu erhalten, damit
sie in dem erzeugten Vorrichtungssoftwareobjekt gespeichert werden.
-
Sobald
der Verkäufer,
die Modellinformationen und die eindeutige ID vom Vorrichtungssoftwareobjekt erhalten
sind, aktualisiert der MonitorManager 1102 die Datenbank
(beispielsweise DeviceODBC 1104) mit Informationen, die
von der überwachten
Vorrichtung empfangen werden. Obwohl 13 eine
Vorrichtung zeigt, werden die Schritte von obtainConfig bis updateConfig
wiederholt, um alle Vorrichtungen, die in der externen Quelle festgelegt
sind, abzudecken. Außerdem
wird jedes in 23, 24, 25 und 26 festgelegte Protokoll
initialisiert. Auf die Datenbanktabellen, die ODBC in 24, 25 und 26 entsprechen,
wird zugegriffen und erforderliche Informationen für Vorrichtungen,
auf die zugegriffen wird, werden vom externen Speicher zur internen
Datenstruktur übertragen,
so dass die Statusinformationssammlung von den Vorrichtungen, auf
die zugegriffen wird, schneller ist.
-
14 zeigt die Sequenz der Statusüberwachungsfunktion,
um den Status einer überwachten
Vorrichtung durch das MonitorManager-Modul 1102 zu bestimmen,
wie in 11 dargestellt. Wenn die obtainStatus-Funktion
von Device an HWaccess ausgegeben wird, gibt die CHWaccess-Klasse
wiederum einen obtainStatus-Funktionsaufruf
an jedes in 23, 24, 25 und 26 beschriebene
Protokoll durch die abstrakte Klasse mit verschiedenen Parametern
aus, wie nachstehend beschrieben. Jedes Protokollmodul hat bereits
Informationen im Cache gespeichert, die zum Extrahieren der Statusinformationen
von den überwachten
Vorrichtungen erforderlich sind, auf die bereits einmal während der
in 13 beschriebenen Initialisierungszeit zugegriffen
wurde. Daher können
die Statusinformationen schnell von den überwach ten Vorrichtungen extrahiert
werden, ohne während
der Statusüberwachung
auf die externe Quelle zuzugreifen. Dieser Prozess wird über alle überwachten
Vorrichtungen, die im Vektor gespeichert sind, wiederholt, wie in 15 gezeigt.
-
Mit
Bezug auf 15 ist ein Vektor 1500 mit
Referenz auf die Vorrichtungen, der von CDeviceFactory 1302 von 35 erzeugt und vom MonitorManager 1102 verwendet
wird, wie in 13 und 14 dargestellt,
gezeigt. Der MonitorManager 1102 speichert Vorrichtungszeiger,
wie beispielsweise einen Zeiger auf CDeviceObject 1502 und
einen Zeiger auf CDevice Object 1504, die von CDeviceFactory 1302 von 35 erzeugt werden, im Vektor. Die Vektorsequenz
wird iteriert, um den Status einer überwachten Vorrichtung zu erhalten.
Das Abfragen von überwachten
Vorrichtungen wird über
das Vorrichtungsobjekt durch Ausgeben eines obtainStatus-Befehls
durchgeführt.
Sobald der Status von jedem der Softwareobjekte erhalten ist, wird
ein solcher Status durch DeviceODBC 1104 aktualisiert.
Die Statusüberwachungssequenz
wurde vorstehend bei 14 beschrieben und wird hierin
nicht wiederholt.
-
Die
in Tabelle 1 gezeigte DeviceInfo-Struktur stellt die Informationen
hinsichtlich einer überwachten Beispielvorrichtung
dar. Die DeviceInfo-Struktur umfasst die E-Mail-Adresse der Kontaktperson zusätzlich zur Telephonnummer. Tabelle 1
Typ | Name | Beschreibung |
std::string | m_sVendor | Ein
String, der den Verkäufer,
des Netzdruckers darstellt. |
std::string | m_sModel | Ein
String, der das Modell des Netzdruckers darstellt. |
std::string | m_sUniqueID | Ein
String, der die eindeutige ID des Netzdruckers darstellt. Diese ID
kann eine Seriennummer oder MAC-Adresse oder irgendeine eindeutige
ID, die vom Netzdrucker erhältlich
ist, sein. |
std::string | m_sIPAddress | Ein
String, der die IP-Adresse des Netzdruckers darstellt. |
std::string | m_sCompanyName | Ein
String, der den Namen der Firma darstellt, die den Netzdrucker besitzt. |
std::string | m_sStreet | Ein
String, der die Straßenadresse
der Firma darstellt. |
std::string | m_sCity | Ein
String, der die Stadt darstellt, in der sich die |
std::string | m_sState | Ein
String, der den Staat darstellt, in dem sich die Firma befindet. |
std::string | m_sZipCode | Ein
String, der die Postleitzahl der Firma darstellt. |
std::string | m_sLocation | Ein
String, der den Ort des Netzdruckers innerhalb der Firma darstellt. |
std::string | m_sContactPerson | Ein
String, der den Namen der Kontaktperson darstellt, die für den Netzdrucker
verantwortlich ist. |
std::string | m_sPhoneNumber | Ein
String, der die Telephonnummer der Kontaktperson darstellt. |
std::string | m_sEMailAddress | Ein
String, der die E-Mail-Adresse der Kontaktperson darstellt. |
-
Überwachungsdatenbank
-
19 stellt die Organisation der Überwachungsdatenbank
dar, die die Vorrichtungsinformationen für jede überwachte Vorrichtung umfasst
(siehe auch Tabelle I). Wie in
-
19 gezeigt, ist ein Satz von Parametern, ein Satz
für jedes
Kommunikationsprotokoll (z. B. SNMP, HTTP und FTP), den Vorrichtungsinformationen
DeviceInfo 1902 für
jede überwachte
Vorrichtung zugeordnet. Überdies
ist jeder Satz von Parametern für
ein spezielles Protokoll (z. B. SNMP 1908, HTTP 1910 und
FTP 1912) als Liste von Parameternamen- und Wertpaaren
organisiert, z. B. sPar1Name und sPar1Wert. Es ist zu beachten,
dass die Anzahl von Parametern für
jedes Protokoll kürzer
oder länger
sein kann als die in 19 gezeigte Anzahl. Ein Benutzername
und ein Passwort können
beispielsweise als FTP-Parameter gespeichert werden, während ein
Gemeinschaftsname und ein Passwort als SNMP-Parameter für eine gegebene überwachte
Vorrichtung gespeichert werden können.
Wie in 19 gezeigt, umfasst die Überwachungsdatenbank auch
Informationen in Bezug auf DeviceHistory 1904 und EnumCorrespondence 1906.
-
17 stellt die SParameter-Datenstruktur 1700 dar,
die verwendet wird, um die von den verschiedenen Kommunikationsprotokollen
verwendeten Parameter zu übergeben.
SParameter umfasst zwei Felder: m_sParName 1702 und m_sParValue 1704,
die den Namen bzw. Wert des Parameters darstellen.
-
18 stellt die Abbildungsstruktur 1800 dar,
die verwendet wird, um einen Vektor von Parametern für jedes
Protokoll, der von der Überwachungsdatenbank
erhalten wird, an ein Softwareobjekt zu übergeben, das jeder überwachten
Vorrichtung zugeordnet ist. Die Abbildungsstruktur 1800 ordnet
jedes Protokoll/Schlüssel-Feld 1802, 1804 und 1806 einem
entsprechenden Vektor von Parametern 1808, 1810 bzw. 1812 zu,
die gemäß dem in 17 gezeigten SParameter-Format angeordnet sind.
Für das
SNMP-Protokoll 1802 kann der Vektor von Parametern 1808 beispielsweise
eine Liste von Parameternamen-, Parameterwertpaaren umfassen, die
verwendet werden, um auf die überwachte
Vorrichtung mit dem SNMP-Protokoll zuzugreifen. Die im Vektor 1808 gespeicherten
SNMP-Parameternamen könnten
beispielsweise "Gemeinschaftsname" und "Passwort" zusammen mit den
entsprechenden Parameterwerten umfassen. Es ist jedoch zu beachten,
dass die Organisation der Abbildungsstruktur 1800 eine
beliebige Anzahl von Protokollen und zugeordneten Parametervektoren
ermöglicht
und nicht auf die in 18 gezeigten SNMP-, HTTP- und
FTP-Protokolle begrenzt ist.
-
Unterstützungsdatenbank
-
20–22 stellen
die Organisation der Unterstützungsdatenbank 1024 dar,
die in 10 gezeigt ist. Die Unterstützungsdatenbank,
die Informationen umfasst, die erforderlich sind, um Statusinformationen von
jeder überwachten
Vorrichtung zu extrahieren, wird durch ein Kommunikationsprotokoll
organisiert. 20, die die Organisation der
Unterstützungsdatenbank
für mit
SNMP in Beziehung stehende Unterstützungsinformationen darstellt,
die verwendet werden, um Informationen von einer überwachten
Vorrichtung zu extrahieren, umfasst beispielsweise Datenstrukturen
SNMPVendor 2002, SNMPComVendorStatus 2004, EnumCorrespondence 2006 und
SNMPVendorModelStatus 2008. Eine gegebene Datenstruktur
in der Unterstützungsdatenbank
kann Parameter, die den Typ von zu extrahierenden Statusinformationen
eindeutig identifizieren, zusammen mit Parametern, die die Extraktion
steuern, umfassen. Die SNMPComVendorStatus-Datenstruktur 2004 umfasst
beispielsweise ein nENUM-Feld 2009, das den Typ von zu
extrahierenden Informationen (z. B. Tonerpegel) identifiziert, und
ein nRelativePriority-Feld 2010, das das Gewicht oder die
Bedeutung der extrahierten Informationen relativ zu anderen Protokollen
angibt. Wenn dieselben Informationen von der überwachten Vorrichtung unter
Verwendung von mehr als einem Protokoll extrahiert werden können, gibt
folglich der nRelativePriority-Wert eine relative Angabe dessen,
welcher extrahierte Wert welches Protokolls verwendet werden sollte.
Wenn beispielsweise HTTP nur Informationen extrahieren kann, die
angeben, ob der Tonerpegel "hoch" oder "niedrig" ist, während das
SNMP-Protokoll den Prozentsatzpegel von restlichem Toner extrahieren
kann, wäre
das Prioritätsniveau
für den
Tonerpegel für
SNMP höher
als der entsprechende Wert für
HTTP. Außerdem
kann die Unterstützungsdatenbank
Vorgabeprioritätswerte
für ein
ganzes Protokoll vorsehen. In einer Ausführungsform wird dem SNMP-Protokoll ein Prioritätswert von
10000 in einem System gegeben, in dem Protokollwerte im Bereich
von 0 bis 32000 liegen können.
-
21 und 22 stellen
die Datenstrukturen dar, die in den HTTP- und FTP-Abschnitten der Unterstützungsdatenbank 1024 enthalten
sind, und umfassen Datenstrukturen, die zu den vorstehend mit Bezug
auf 20 beschriebenen Datenstrukturen
analog sind.
-
Beispielhafte
enum-Typen, die von der vorliegenden Erfindung verwendet werden,
ist der nachstehend definierte infoType. (Die enum-Typen sind nur
beispielhaft und sollten daher nicht als Begrenzung der vorliegenden
Erfindung aufgefasst werden.)
-
infoType(typedef int info Type)
-
Dieser
Abschnitt beschreibt die Definition des infoType (int). Der Wertebereich
0 bis 99 ist dem Datentyp zugewiesen. Der Wertebereich 100 bis 499
ist den Vorrichtungsinformationen zugewiesen. Der Wertebereich 500
bis 1999 ist den allgemeinen Parametern, einschließlich Standard-MIB-Parametern,
zugewiesen. Der Bereich 2000 bis 3999 ist Ricoh-spezifischen Informationen
zugewiesen. Der Bereich 4000 bis 4999 ist dem Verkäufer 1 zugewiesen.
Der Bereich 5000 bis 5999 ist dem Verkäufer 2 zugewiesen. Der Bereich
6000 bis 6999 ist dem Verkäufer
3 zugewiesen. Die Werte sind wie folgt definiert:
- infoType
{eNotDefine = 0, eDeviceInformation = 1, eStatusInformation = 2,
eVendor = 100, eModel, eUniqueID, eIPAddress, eCompanyName, eStreet,
eCity, eState, eZipCode, eLocation, eContactPerson, ePhoneNumber, eEMailAddress,
eDateTime = 500, eHrDeviceErrors, eLowPaper, eNoPaper, eLowToner,
eNoToner, eDoorOpen, eJammed, eOffline, eServiceRequested, ePrtGeneralConfigChanges
= 600, ePrtLifeCount, ePrtAlertDesc1, ePrtAlertDesc2, ePrtAlertDesc3,
ePrtAlertDesc4, ePrtAlertDesc5, eBlack = 700, eMagenta, eCyan, eVellow,
eTonerCollector = 800, eBlack-Developer
= 810, eColorDeveloper, eFuser = 820, eDrum = 830, eTransfer = 840,
eMaintenanceKit = 850, eOilKit = 860, eStationInfo1 = 901, eStationInfo2,
eStationInfo3, eStationInfo4, eStationInfo5, eRicohEngineCounterTotal
= 2000, eRicohEngineCounter-Printer,
eRicohEngineCounterFax, eRicohEngineCounterCopier}.
-
EerrorCode
-
Die
folgenden Codes sind lediglich beispielhaft und mehr Codes können zum
existierenden Satz hinzugefügt
werden. Der Bereich 0–99
ist reserviert. Der Bereich 100–199
ist für
SMTP, 200–299
ist für
POP3, 300–399
ist für
Socket und 400–499
ist für
HTTP und 500–599
ist für
FTP. Andere Bereiche, die nicht festgelegt sind, können von
einem Benutzer definiert werden, falls erforderlich.
- enum
EerrorCode (eNoError = 0, eUnknownError = 1, eSomeError, eCompleteFailure,
eSomeDeviceCreationError = 20, eCreateDeviceError, eNoDeviceCreated,
eObtainConfigError, eSaveStatusError, eObtainUniqueIDError, eObtainStatusError,
eStartSendErorr, eSomeDataSendError, eCompleteDataSendFailure, eEndSendError,
eSendHeloCommandFailed = 100, eSendMailCommandFailed, eSendRcptCommandFailed, eSendDataCommandFailed,
eSendDataFailed, eSendQuitCommandFailed, eSendUserCommandFailed
= 200, eSendPassCommandFailed, eSendStatCommandFailed, eSendRetrCommandFailed,
eSendDeleCommandFailed, eSendQuitPop3CommandFailed, eCreateSocketFailed
= 300, eConnectSocketFailed, eBadRequest = 400, eUnauthorized, ePaymentRequired,
eForbidden, eNotFound, eMethodNotAllowed, eNotAcceptable, eProxyAuthenticationRequired,
eRequestTimeOut, eConflict, eGone, eLengthRequired, ePreconditionFailed,
eRequestEntityTooLarge, eRequestURITooLarge, eUnsupportedMediaType,
eRequestedRangeNotSatisfiable, eExpectationFailed, elnternalServerError
= 450, eNotImplemented, eBadGateway, eServiceUnavailable, eGatewayTimeOut,
eHTTPVersionNotSupported, eMultipleChoices = 480, eMovedPermanently, eFound,
eSeeOther, eNotModified, eUseProxy, eTemporaryRedirect).
-
Abstrakte Klassen im DeviceODBC-Modul
-
16 stellt die DeviceODBC-Modul-Klassenstruktur
gemäß der vorliegenden
Erfindung dar und zeigt, wie die CAbsProtocolParameters-Klassenstruktur
innerhalb des DeviceODBC-Moduls verwendet wird. Die CAbsProtocolParameters-Klasse
ist dazu ausgelegt, mit der Überwachungsdatenbank 1014 eine
Schnittstelle zu bilden und Informationen zum Zugreifen auf die überwachten
Vorrichtungen unter Verwendung eines speziellen Kommunikationsprotokolls
zu erhalten. Die CAbsProtocolParameters-Klasse besitzt zwei virtuelle Funktionen,
die vom Protokoll abhängen:
- (1) std::string obtainProtocolName(void); und
- (2) bool obtainParameterVector(std::vector<SParameter> & out_ParameterVector,
const std::string in_sIP).
-
Unter
Verwendung dieser Funktionen kann die CDeviceODBC-Klasse so viele
Protokolle und ihre zugehörigen
Parameternamen und Werte durch den Zeiger auf den CAbsProtocolParameter-Typ
handhaben, ohne das Protokoll zu identifizieren. Die erhaltenen
Informationen für
jede Vorrichtung (z. B. IP-Adresse) werden in der Datenstruktur
von 18 gespeichert und zum MonitorManager-Modul 1102 durch
die obtainConfig-Funktion geleitet. Aus der CDeviceODBC-Perspektive
werden alle Objekte, die verwendet werden, um den Protokollnamen
und die zugehörigen
Parameternamen und Werte zu erhalten, als Typ von CAbsProtocol-Parametern
betrachtet. Wenn ein neues Protokoll hinzugefügt wird, sollte daher das neue
Objekt erzeugt und im Vektor von Zeigern auf die CAbsProtocolParameters-Klasse
gespeichert werden. Die anderen Funktionen müssen nicht geändert werden.
-
Abstrakte Klassen im HWaccess-Modul
-
23 zeigt das Paketdiagramm für das HWaccess-Paket. Dieses
Paket ist für
das Identifizieren der zu überwachenden
Netzvorrichtungen und für
das Erhalten von Informationen über
die Netzvorrichtungen unter Verwendung von verschiedenen Netzprotokollen
(z. B. SNMP, HTTP und FTP) verantwortlich. Das Paket enthält die Pakete
HTTP 2302, SNMP 2304 und FTP 2306 und
die Klassen CHWaccess 2300, CAbsProtocol 2308 und
CRecordSet 2310. Die Pakete HTTP 2302, SNMP 2304 und
FTP 2306 implementieren die Netzprotokolle zum Zugreifen
auf die Netzvorrichtungen, um Informationen von ihnen zu erhalten.
Das HTTP-Paket 2302 implementiert beispielsweise das HTTP-Protokoll,
um auf Webseiten der Netzvorrichtungen zuzugreifen, um Informationen
von den Webseiten zu erhalten. Die Klasse CHWaccess 2300 managt
alle Protokollpakete, um die erforderlichen Informationen von den
Netzvorrichtungen zu erhalten. Die Klasse CAbsProtocol 2308 ist eine
abstrakte Klasse, die irgendein Protokoll darstellt. Diese Klasse
stellt die Schnittstelle zwischen CHWaccess 2300 und den
Protokollpaketen bereit. Die Klasse CAbsProtocol 2308 stellt
einen Satz von gemeinsamen Funktionen, wie in 23 gezeigt, für
CHWaccess 2300 bereit, wobei alle Protokolle für CHWaccess 2300 die erforderlichen
Informationen bereitstellen. Die von CAbsProtocol 2308 abgeleiteten
Klassen, wie in späteren Fig.
beschrieben, stellen das Verfahren für jede der Funktionen für die geeigneten
Protokolle bereit. Die Klasse CRecordSet 2310 ist eine
Klasse der Microsoft Foundation Class, die jedem Protokollpaket
Zugriff auf die Datenbank gewährt,
um Informationen darüber,
welcher Verkäufer
und welches Modell von Netzvorrichtun gen unterstützt werden und welche Informationen
von diesen Netzvorrichtungen zu erhalten sind, zu erhalten.
-
24 zeigt das Paketdiagramm für eine erste Ausführungsform
des SNMP-Pakets 2304. Es ist zu beachten, dass viele der
in 24 gezeigten Komponenten in die zweite Ausführungsform
des SNMP-Pakets, das in 63 gezeigt
ist, integriert sind. Diese Paket ist für das Bestimmen des Verkäufers und
Modells von Netzvorrichtungen, die vom SNMP-Protokoll unterstützt werden,
und der von den Netzvorrichtungen durch das SNMP-Protokoll zu erhaltenden
Informationen und zum Zugreifen auf die Netzvorrichtung durch das SNMP-Protokoll,
um Informationen von den Netzvorrichtungen zu erhalten, verantwortlich.
Das Paket enthält die
Pakete SNMPaccess 2404 und SNMPODBC 2406 und die
Klasse CSNMPProtocol 2402 und verwendet die Klassen CAbsProtocol 2400 und
CRecordSet 2408, wie in 23 beschrieben.
Das SNMPaccess-Paket 2404 implementiert das SNMP-Protokoll,
um auf die Netzvorrichtungen zuzugreifen und um Informationen von den
Netzvorrichtungen zu erhalten. Das SNMPODBC-Paket 2406 greift
auf Informationen von der Datenbank über den Verkäufer und
das Modell von Netzvorrichtungen, die vom SNMP-Protokoll unterstützt werden,
und die von den Netzvorrichtungen durch das SNMP-Protokoll zu erhaltenden
Informationen zu und erhält
diese. Die CSNMPProtocol-Klasse 2402 ist eine Klasse, die
von der CAbsProtocol-Klasse 2400 abgeleitet ist. CSNMPProtocol 2402 erhält die erforderlichen
Informationen von den Netzvorrichtungen unter Verwendung des SNMP-Protokolls.
CSNMPProtocol 2402 stellt das Verfahren für alle Schnittstellenfunktionen
von CAbsProtocol 2400 bereit, wie in 23 beschrieben. 24 zeigt
auch die Funktionen der Pakete SNMPaccess 2404 und SNMPODBC 2406,
die CSNMPProtocol 2402 verwendet. Das SNMPODBC-Paket 2406 verwendet die
Klasse CRecordSet 2408, um Informationen von der Datenbank
zu erhalten.
-
25 zeigt das Paketdiagramm für eine erste Ausführungsform
des HTTP-Pakets 2302. Es ist zu beachten, dass viele der
in 25 gezeigten Komponenten in die zweite Ausführungsform
des HTTP-Pakets, das in 41 gezeigt
ist, integriert sind. Dieses Paket ist für das Bestimmen des Verkäufers und
Modells von Netzvorrichtungen, die vom HTTP-Protokoll unterstützt werden,
und der von den Netzvorrichtungen durch das HTTP-Protokoll zu erhaltenden
Informationen und zum Zugreifen auf die Netzvorrichtungen durch
das HTTP-Protokoll, um Informationen von den Netzvorrichtungen zu
erhalten, verantwortlich. Das Paket enthält die Pakete HTTPaccess 2504 und
HTTPODBC 2506 und die Klasse CHTTPProtocol 2502 und
verwendet die Klassen CAbsProtocol 2500 und CRecordSet 2508,
wie in 23 beschrieben. Das HTTPaccess-Paket 2504 implementiert
das HTTP-Protokoll, um auf die Netzvorrich tungen zuzugreifen und
um Informationen von den Netzvorrichtungen zu erhalten. Das HTTPODBC-Paket 2506 greift
auf Informationen von der Datenbank über den Verkäufer und
das Modell von Netzvorrichtungen, die vom HTTP-Protokoll unterstützt werden,
und die von den Netzvorrichtungen durch das HTTP-Protokoll zu erhaltenden
Informationen zu und erhält
diese. Die CHTTPProtocol-Klasse 2502 ist eine Klasse, die
von der CAbsProtocol-Klasse 2500 abgeleitet ist. CHTTPProtocol 2502 erhält die erforderlichen
Informationen von den Netzvorrichtungen unter Verwendung des HTTP-Protokolls.
CHTTPProtocol 2502 stellt das Verfahren für alle Schnittstellenfunktionen
von CAbsProtocol 2500 bereit, wie in 23 beschrieben. 25 zeigt
auch die Funktionen der Pakete HTTPaccess 2504 und HTTPODBC 2506,
die das CHTTPProtocol 2502 verwendet. Das HTTPODBC-Paket 2506 verwendet
die Klasse CRecordSet 2508, um Informationen von der Datenbank
zu erhalten.
-
26 zeigt das Paketdiagramm für das FTP-Paket 2306.
Dieses Paket ist für
das Bestimmen des Verkäufers
und Modells von Netzvorrichtungen, die vom FTP-Protokoll unterstützt werden, und der von den Netzvorrichtungen
durch das FTP-Protokoll
zu erhaltenden Informationen und zum Zugreifen auf die Netzvorrichtungen
durch das FTP-Protokoll, um Informationen von den Netzvorrichtungen
zu erhalten, verantwortlich. Das Paket enthält die Pakete FTPaccess 2604 und
FTPODBC 2606 und die Klasse CFTPProtocol 2602 und verwendet
die Klassen CAbsProtocol 2600 und CRecordSet 2608,
wie in 23 beschrieben. Das FTPaccess-Paket 2604 implementiert
das FTP-Protokoll, um auf die Netzvorrichtungen zuzugreifen und
um Informationen von den Netzvorrichtungen zu erhalten. Das FTPODBC-Paket 2606 greift
auf Informationen von der Datenbank über den Verkäufer und
das Modell von Netzvorrichtungen, die vom FTP-Protokoll unterstützt werden, und
die von den Netzvorrichtungen durch das FTP-Protokoll zu erhaltenden
Informationen zu und erhält
diese. Die CFTPProtocol-Klasse 2602 ist eine Klasse, die
von der CAbsProtocol-Klasse 2600 abgeleitet
ist. CFTPProtocol 2602 erhält die erforderlichen Informationen
von den Netzvorrichtungen unter Verwendung des FTP-Protokolls. CFTPProtocol 2602 stellt
das Verfahren für
alle Schnittstellenfunktionen von CAbsProtocol 2600 bereit,
wie in 23 beschrieben. 26 zeigt auch die Funktionen der Pakete FTPaccess 2604 und FTPODBC 2606,
die CFTPProtocol 2602 verwendet. Das FTPODBC-Paket 2606 verwendet
die Klasse CRecordSet 2608, um Informationen von der Datenbank
zu erhalten.
-
Jedes
der Protokollpakete HTTP 2302, SNMP 2304 und FTP 2306,
wie in 23 bis 26 beschrieben,
enthält
eine Klasse, die den Zugriff auf die Netzvorrichtung managt, um
Informationen von der Vorrichtung zu erhalten. Die Klasse wird von
der abstrakten Klasse CAbsProtocol 2308 abgeleitet, die
das Verfahren zum Implementieren der Protokolle zum Zugreifen auf
Informationen von der Netzvorrichtung bereitstellt. Eine abstrakte
Klasse stellt nur die Schnittstellenfunktionen bereit, aber führt irgendeinen
Prozess durch. Die von der abstrakten Klasse abgeleiteten Klassen
sehen das Verfahren zum Durchführen
des Prozesses für
die Schnittstellenfunktionen vor. Es können viele abgeleitete Klassen
der abstrakten Klasse vorhanden sein, so dass die verschiedenen
abgeleiteten Klassen den Prozess der Schnittstellenfunktion unterschiedlich
durchführen
können.
Eine Schnittstellenfunktion von CAbsProtocol ist beispielsweise
obtainStatus(). Die abgeleitete Klasse CSNMPProtocol 2402 enthält die Funktion
obtainStatus(), die das Verfahren zum Erhalten der Statusinformationen
einer Netzvorrichtung unter Verwendung von SNMP bereitstellt, während die
abgeleitete Klasse CHTTPProtocol 2502 die Funktion obtainStatus()
enthält,
die das Verfahren zum Erhalten der Statusinformationen einer Netzvorrichtung
unter Verwendung von HTTP bereitstellt. Aus der Konstruktion des
HWaccess-Pakets kann ein neues Protokoll zum System hinzugefügt werden,
indem ein neues Paket hinzugefügt
wird, das eine abgeleitete Klasse von CAbsProtocol enthält, das
das neue Paket managt, um auf die Netzvorrichtung unter Verwendung
des neuen Protokolls zuzugreifen. Die abstrakte Klasse ermöglicht die
Merkmalserweiterung des Systems.
-
27A–27D zeigen die Datenstrukturen, die im HWaccess-Paket
von 23 verwendet werden, um alle
Protokolle zum Zugreifen auf und Erhalten von Informationen von
den Netzvorrichtungen zu verwalten. In 27A ist
die Datenstruktur ein Vektor 500 von Zeigern auf CAbsProtocol 2308.
Die Klasse CHWaccess 2300 enthält und verwendet diese Datenstruktur.
Selbst wenn der Vektor 500 Zeiger auf Klassen enthält, die
von CAbsProtocol 2308 abgeleitet sind, sieht CHWaccess 2300 den
Vektor als Zeiger auf CAbsProtocol 2308 enthaltend und
ruft die Schnittstellenfunktionen von CAbsProtocol 2308 durch
den virtuellen Funktionsaufrufmechanismus auf. Tatsächlich ruft
CHWaccess 2300 die Schnittstellenfunktionen der abgeleiteten
Klassen von CAbsProtocol 2308 auf. Der Zeiger auf CAbsProtocol 502 im
ersten Eintrag im Vektor kann beispielsweise ein Zeiger auf die
abgeleitete Klasse CSNMPProtocol 2402 sein, der Zeiger
auf CAbsProtocol 504 im zweiten Eintrag des Vektors kann
ein Zeiger auf die abgeleitete Klasse CHTTPProtocol 2502 sein
und der Zeiger auf CAbsProtocol 506 im dritten Eintrag
im Vektor kann ein Zeiger auf die abgeleitete Klasse CFTPProtocol 2602 sein.
Wenn CHWaccess 2300 die Schnittstellenfunktionen von CAbsProtocol 2308 im
Vektor aufruft, ruft es somit tatsächlich die Schnittstellenfunktionen
von CSNMPProtocol 2402, CHTTPProtocol 2502 und
CFTPProtocol 2602 auf. Die Verwendung der abstrakten Klasse
CAbsProtocol 2308 im Vektor 500 ermöglicht,
dass irgendein Protokoll verwendet wird, um auf Informationen von
den Netzvorrichtungen zuzugreifen und diese zu erhalten. Die abstrakte
Klasse CAbsProtocol 2308 verbirgt das Detail dessen, welches
Protokoll verwendet wird.
-
27B zeigt die Datenstruktur, die von CSNMPProtocol
verwendet wird, um Informationen über den Verkäufer und
das Modell von Netzvorrichtungen, die durch SNMP überwacht
werden, und Informationen, die verwendet werden, um Statusinformationen
von ihnen zu erhalten, zu verwalten. Die Datenstruktur ist eine
Abbildung 510. Der Schlüssel
für die
Abbildung 510 ist ein String 512, der den Verkäufernamen
der Netzvorrichtung darstellt. Der Wert für die Abbildung 510 ist
eine weitere Abbildung 514. Der Schlüssel für die Abbildung 514 ist
ein String 516, der den Modellnamen der Netzvorrichtung
darstellt. Der Wert für
die Abbildung 514 ist ein Vektor 518 von Paaren.
Die Paare enthalten die Struktur SOIDinfoType und eine ganze Zahl.
Die Struktur SOIDinfoType enthält
Informationen, die verwendet werden, um eine einzelne Statusinformation
von der Netzvorrichtung unter Verwendung von SNMP zu erhalten. Daher
enthält
der Vektor 518 von Paaren Informationen, um alle Statusinformationen
für die
Netzvorrichtung für
einen speziellen Verkäufer
und ein spezielles Modell zu erhalten. Die Abbildung 510 wird
mit Informationen unter Verwendung des in 28 beschriebenen
Prozesses initialisiert. Die Abbildung 510 zeigt Mustereinträge für den String 512 für den Verkäufer und
den String 516 für
das Modell.
-
27C zeigt die Datenstruktur, die von CHTTPProtocol
verwendet wird, um Informationen über den Verkäufer und
das Modell von Netzvorrichtungen, die durch HTTP überwacht
werden, und der Informationen, die verwendet werden, um Statusinformationen
von ihnen zu erhalten, zu verwalten. Die Datenstruktur ist eine Abbildung 520.
Der Schlüssel
für die
Abbildung 520 ist ein String 522, der den Verkäufernamen
der Netzvorrichtung darstellt. Der Wert für die Abbildung 520 ist
eine weitere Abbildung 524. Der Schlüssel für die Abbildung 524 ist
ein String 526, der den Modellnamen der Netzvorrichtung
darstellt. Der Wert für
die Abbildung 524 ist ein Vektor 528 von SWebPageInfo.
Die Struktur SWebPageInfo enthält
Informationen, die verwendet werden, um alle Statusinformationen
von einer Webseite der Netzvorrichtung unter Verwendung von HTTP
zu erhalten. Daher enthält
der Vektor 528 von SWeb-PageInfo
Informationen, um alle Statusinformationen für die Netzvorrichtung für einen
speziellen Verkäufer
und ein spezielles Modell von allen ihren Webseiten zu erhalten. Die
Abbildung 520 wird mit Informationen unter Verwendung des
in 28 beschriebenen Prozesses initialisiert. Die
Abbildung 520 zeigt Mustereinträge für den String 522 für den Verkäufer und
den String 526 für
das Modell.
-
27D zeigt die Datenstruktur, die von CFTTPProtocol
verwendet wird, um Informationen über den Verkäufer und
das Modell von Netzvorrichtungen, die von FTP überwacht werden, und die Informationen,
die verwendet werden, um Statusinformationen von ihnen zu erhalten,
zu verwalten. Die Datenstruktur ist eine Abbildung 530.
Der Schlüssel
für die
Abbildung 530 ist ein String 532, der den Verkäufernamen
der Netzvorrichtung darstellt. Der Wert für die Abbildung 530 ist
eine weitere Abbildung 534. Der Schlüssel für die Abbildung 534 ist
ein String 536, der den Modellnamen der Netzvorrichtung
darstellt. Der Wert für
die Abbildung 534 ist ein Vektor 538 von SDirFileStatusInfo.
Die Struktur SDirFileStatusInfo enthält Informationen, die verwendet werden,
um alle Statusinformationen von einer FTP-Datei der Netzvorrichtung
unter Verwendung von FTP zu erhalten. Daher enthält der Vektor 538 von
SDirFileStatusInfo Informationen, die verwendet werden, um alle Statusinformationen
für die
Netzvorrichtung für
einen speziellen Verkäufer
und ein spezielles Modell von allen ihren FTP-Dateien zu erhalten.
Die Abbildung 530 wird mit Informationen unter Verwendung
des in 28 beschriebenen Prozesses
initialisiert. Die Abbildung 530 zeigt Mustereinträge für den String 532 für den Verkäufer und
den String 536 für
das Modell.
-
28 zeigt einen Ablaufplan, der den Prozess der
Initialisierung aller Protokollobjekte mit Informationen über den
Verkäufer
einer durch das System überwachten
Netzvorrichtung beschreibt. Ein ähnlicher
Prozess wird für
die Initialisierung aller Protokollobjekte mit Informationen über das
Modell einer durch das System überwachten
Netzvorrichtung verwendet. Für
eine überwachte
gegebene Netzvorrichtung können
der Verkäufer
und das Modell der Netzvorrichtung bekannt sein müssen, um
festzustellen, welche Informationen von der Netzvorrichtung erhalten
werden müssen.
Jedes zum Zugreifen auf und Erhalten von Informationen von der Netzvorrichtung
verwendete Protokollobjekt kann den Verkäufer und das Modell kennen
müssen,
um festzustellen, welche Informationen und wie die Informationen
von der Netzvorrichtung zu erhalten sind. Die Protokollobjekte,
die eine Initialisierung erfordern, sind jene, die den Klassen entsprechen,
die von CAbsProtocol 2308 abgeleitet sind, die CSNMPProtocol,
CHTTPProtocol und CFTPProtocol sind. Die Initialisierung des Protokollobjekts
beinhaltet das Hinzufügen
von Informationen zu den in 27B, 27C und 27D beschriebenen
Datenstrukturen, die den Protokollen entsprechen. Die Konstruktion
des Systems zeigt, dass Informationen, die zu den Datenstrukturen
von 27B, 27C und 27D hinzugefügt
werden, von einer Datenbank stammen, aber sie können von anderen externen Quellen
wie z. B. einer Textdatei oder einer Tabellenkalkulation stammen.
Der Vektor von Zeigern auf CAbsProtocol 2308, der in 27A beschrieben ist, wird verwendet, um alle Protokollobjekte
zu initialisieren. Der Prozess des Ablaufplans durchschreitet den
Vektor zweimal. Das erste Mal, wenn er den Vektor durchschreitet,
werden die Protokollobjekte verwendet, um den Verkäufer der
Netzvorrichtung zu finden. Wenn der Verkäufername von einem der Protokollobjekte
erhalten wird, werden alle Protokollobjekte mit dem Verkäufernamen
initialisiert, wenn der Vektor ein zweites Mal durchschritten wird.
In Schritt 602 wird ein Protokollobjekt vom Vektor von
Zeigern auf CAbsProtocol erhalten. Das Protokollobjekt entspricht
einem der Protokolle zum Zugreifen auf die Netzvorrichtung (z. B.
SNMP, HTTP und FTP). In Schritt 604 wird eine Prüfung durchgeführt, um
festzustellen, ob weitere Protokollobjekte vorliegen, die vom Vektor
erhalten werden können.
Diese Prüfung
wird durch Feststellen, ob das Ende des Vektors erreicht wurde,
durchgeführt.
Wenn keine weiteren Protokollobjekte erhalten werden können, dann
misslingt es dem System, den Verkäufernamen der Netzvorrichtung
zu erhalten. Allen Protokollobjekten ist es misslungen, den Verkäufernamen
zu erhalten, und die Initialisierung der Protokollobjekte für die Netzvorrichtung
wird in Schritt 606 vollendet. Wenn ein Protokollobjekt
vom Vektor erhalten wird, dann wird das Protokollobjekt verwendet,
um den Verkäufernamen
der Netzvorrichtung in Schritt 608 zu erhalten. In Schritt 610 wird
eine Prüfung
durchgeführt,
um festzustellen, ob das Protokollobjekt den Verkäufernamen
der Netzvorrichtung erhalten kann. Die Protokollobjekte erhalten
Informationen von der Datenbank, die zum Bestimmen des Verkäufers der
Netzvorrichtung verwendet werden. Wenn der Verkäufername nicht vom Protokollobjekt
erhalten werden kann, dann versucht der Prozess, den Verkäufernamen
unter Verwendung eines anderen Protokollobjekts in dem Vektor zu
erhalten, indem er zu Schritt 602 zurückgeht. Wenn der Verkäufername
vom Protokollobjekt erhalten werden kann, dann initialisiert der
Prozess das Protokollobjekt mit dem Verkäufernamen in Schritt 612.
Das Protokollobjekt wird mit Informationen darüber initialisiert, wie Statusinformationen
von der Netzvorrichtung des erhaltenen Verkäufernamens zu erhalten sind.
Informationen werden zu den Datenstrukturen hinzugefügt, wie in 27B, 27C und 27D beschrieben. In Schritt 614 wird
ein Protokollobjekt vom Vektor von Zeigern auf CAbsProtocol erhalten.
In Schritt 616 wird eine Prüfung durchgeführt, um
festzustellen, ob weitere Protokollobjekte vorhanden sind, die vom
Vektor erhalten werden können.
Wenn keine weiteren Protokollobjekte erhalten werden können, dann
wurden alle Protokollobjekte mit dem Verkäufernamen initialisiert und
die Initialisierung aller Protokollobjekte ist in Schritt 606 vollständig. Alle
Protokollobjekte besitzen aktualisierte Informationen über den
Verkäufer.
Wenn ein Protokollobjekt vorhanden ist, das vom Vektor erhalten
wird, dann wird das Protokollobjekt mit dem Verkäufernamen in Schritt 618 initialisiert.
Genau wie in Schritt 612 wird das Protokollobjekt mit Informationen
darüber
initialisiert, wie Statusinformationen von der Netzvorrichtung des
erhaltenen Verkäufernamens
zu erhalten sind. Nach der Initialisierung des Protokollobjekts
mit dem Verkäufernamen
initialisiert der Prozess ein anderes Protokollobjekt mit dem Verkäufernamen,
indem er zu Schritt 614 zurückgeht.
-
In
Schritt 608 von 28 erhält das Protokollobjekt
den Verkäufernamen
der Netzvorrichtung. Die SNMP-, HTTP- und FTP-Protokollobjekte können auf
die Netzvorrichtung zugreifen, um den Verkäufernamen zu erhalten. Informationen
darüber,
wo der Verkäufername
gefunden werden kann, werden von der Datenbank erhalten. Zusammen
mit den Informationen über
den Verkäufer
der Netzvorrichtung, die von einem Protokoll unterstützt wird,
liefert die Datenbank die Informationen, um den Verkäufernamen
einer Netzvorrichtung aufzufinden. Für SNMP werden Informationen über den
Unternehmensobjektidentifizierer, der einem Verkäufernamen zugeordnet ist, und
den Objektidentifizierer, der verwendet wird, um den Unternehmensobjektidentifizierer
innerhalb der MIB einer Netzvorrichtung aufzufinden, vom SNMP-Protokollobjekt
verwendet, um den Verkäufernamen
zu erhalten. Für
HTTP werden Informationen über
die Webseiten und den Ort innerhalb der Webseiten vom HTTP-Protokollobjekt
verwendet, um den Verkäufernamen
zu erhalten. Für
FTP werden Informationen über
die FTP-Dateien und den Ort innerhalb der FTP-Dateien vom FTP-Protokollobjekt
verwendet, um den Verkäufernamen
zu erhalten.
-
29A–29D zeigen die verschiedenen Datenstrukturen,
die verwendet werden, um die Statusinformationen einer Netzvorrichtung
eines speziellen Verkäufers
und Modells für
die verschiedenen Protokolle zu erhalten. Verschiedene Protokolle
können
verwendet werden, um dieselben Statusinformationen zu erhalten.
Die von einem Protokoll erhaltenen Statusinformationen können jedoch
mehr Informationen als ein anderes bereitstellen, so dass die Statusinformationen,
die von dem Protokoll erhalten werden, das mehr Informationen bereitstellt,
verwendet werden sollten. Der Tonerpegel einer Druckerkassette kann
beispielsweise von einem Netzdrucker unter Verwendung von SNMP und
HTTP erhalten werden. Die Statusinformationen für den Tonerpegel, die von SNMP
erhalten werden, können "VOLL", "OK" oder "LEER" sein, während dieselben
Statusinformationen, die von HTTP erhalten werden, der Prozentsatz
des restlichen Toners sein können.
In diesem Beispiel sind die unter Verwendung von HTTP erhaltenen
Statusinformationen informativer, so dass die von HTTP erhaltenen
Statusinformationen verwendet werden sollten. Die Datenstrukturen
von 29A bis 29D stellen
sicher, dass die informativsten Statusinformationen erhalten werden. 29A zeigt die Datenstruktur, die verwendet wird,
um die Statusinformationen für
eine Netzvorrichtung eines speziellen Verkäufers und Modells unter Verwendung
des SNMP-Protokolls zu erhalten. Die Datenstruktur ist ein Vektor 700 von Paaren
(z. B. 702 und 704), wobei die Paare aus der Struktur
SOIDinfoType 706 und einer ganzen Zahl bestehen. Die Struktur
SOIDinfoType 706 enthält
Informationen, die verwendet werden, um spezielle Statusinformationen
von der Netzvorrichtung unter Verwendung von SNMP zu erhalten. Die
Struktur von SOIDinfoType 706 ist in 29A gezeigt. Die ganze Zahl in dem Paar bestimmt
das Gewicht oder die Priorität
der Statusinformationen. Je größer der
Wert für
die ganze Zahl ist, desto wahrscheinlicher werden die erhaltenen
Statusinformationen behalten, da sie informativer sind. Je niedriger
der Wert für
die ganze Zahl ist, desto wahrscheinlicher werden dieselben Statusinformationen,
die von anderen Protokollen erhalten werden, behalten. CSNMPProtocol 2402 verwendet
den Vektor 700, um zu bestimmen, welche Statusinformationen
von der Netzvorrichtung zu erhalten sind. Die in den Vektor 700 gesetzten
Informationen werden von der Datenstruktur in 27B für einen
speziellen Verkäufer
und ein spezielles Modell erhalten.
-
29B zeigt die Datenstruktur, die verwendet wird,
um die Statusinformationen für
eine Netzvorrichtung eines speziellen Verkäufers und Modells unter Verwendung
des HTTP-Protokolls zu erhalten. Die Datenstruktur ist ein Vektor 708 von
Paaren (z. B. 710 und 712), wobei die Paare aus
der Struktur SkeyValueInfo 714 und einer ganzen Zahl bestehen.
Die Struktur SkeyValueInfo 714 enthält Informationen, die verwendet
werden, um spezielle Statusinformationen von einer Webseite einer
Netzvorrichtung unter Verwendung von HTTP zu erhalten. Die Struktur
von SkeyValueInfo 714 ist in 29B gezeigt.
Die ganze Zahl in dem Paar bestimmt das Gewicht oder die Priorität der Statusinformationen.
CHTTPProtocol 2502 verwendet den Vektor 708, um
zu bestimmen, welche Statusinformationen von der Netzvorrichtung
zu erhalten sind. Die in den Vektor 708 gesetzten Informationen
werden von der Datenstruktur in 27C für einen
speziellen Verkäufer
und ein spezielles Modell erhalten.
-
29C zeigt die Datenstruktur, die verwendet wird,
um die Statusinformationen für
eine Netzvorrichtung eines speziellen Verkäufers und Modells unter Verwendung
des FTP-Protokolls zu erhalten. Die Datenstruktur ist ein Vektor 716 von
Paaren (z. B. 718 und 720), wobei die Paare aus
der Struktur SKeyInfoType 722 und einer ganzen Zahl bestehen.
Die Struktur SKeyInfoType 722 enthält Informationen, die verwendet
werden, um spezielle Statusinformationen von einer FTP-Datei einer
Netzvorrichtung unter Verwendung von FTP zu erhalten. Die Struktur
von SKeyInfoType 722 ist in 29C gezeigt.
Die ganze Zahl in dem Paar bestimmt das Gewicht oder die Priorität der Statusinformationen.
CFTPProtocol 2602 verwendet den Vektor 716, um
zu bestimmen, welche Statusinformationen von der Netzvorrichtung
zu erhalten sind.
-
Die
in den Vektor 716 gesetzten Informationen werden von der
Datenstruktur in 27D für einen speziellen Verkäufer und
ein spezielles Modell erhalten.
-
29D zeigt die Datenstruktur, die verwendet wird,
um die durch die verschiedenen Protokolle erhaltenen Statusinformationen
zu verwalten. Sie verwaltet keine Informationen darüber, welches
Protokoll verwendet wurde, um die Statusinformationen zu erhalten.
Die Datenstruktur ist eine Abbildung 724. Der Schlüssel 726 für die Abbildung 724 ist
ein infoType. infoType ist eine Zahl, die einen Typ von Informationen
darstellt. Der Wert 728 für die Abbildung 724 ist
ein Paar. Das Paar besteht aus einem String und einer ganzen Zahl. Der
String in dem Paar ist die Statusinformationen, die von der Netzvorrichtung
erhalten werden, die dem infoType entspricht. Die ganze Zahl in
dem Paar ist das Gewicht oder die Priorität der Statusinformationen,
wie von einem Protokoll erhalten. Als Beispiel für den infoType von 700,
der den Pegel von schwarzem Toner in der Druckerkassette darstellen
kann, kann das Paar den String "75%" und die ganze Zahl
10000 enthalten. Der String "75%" gibt an, dass 75%
des Toners in der Kassette verbleiben, und die ganze Zahl 10000
ist das Gewicht oder die Priorität
der Statusinformationen. CSNMPProtocol 2402, CHTTPProtocol 2502 und
CFTPProtocol 2602 fügt
Statusinformationen, die es von den Netzvorrichtungen erhält, zur
Abbildung 724 hinzu.
-
30 zeigt ein Beispiel dessen, wie die Datenstrukturen
von 27D, 29C und 29D verwendet werden, um Statusinformationen von
einer Netzvorrichtung unter Verwendung des FTP-Protokolls zu erhalten.
Die Abbildung 800, die Musterdaten enthält, entspricht der Datenstruktur,
wie in 27D beschrieben. Die Musterdaten
in der Abbildung 800 liefern Informationen zum Zugreifen
auf Statusinformationen für
die Netzvorrichtung für
den Verkäufer
Ricoh und das Modell Aficio 120 unter Verwendung von FTP.
Jede der Strukturen in dem Vektor, SDirFileStatusInfo1, SdirFileStatusInfo2
und SDirFileStatusInfo3, liefert Informationen zum Zugreifen auf
Statusinformationen von einer FTP-Datei in der Netzvorrichtung.
SDirFileStatusInfo1 802 enthält Informationen zum Zugreifen
auf Statusinformationen von der Netzvorrichtung von der FTP-Datei
status.txt im Verzeichnis/pub. Fünf
Statusinformationswerte können
von der FTP-Datei unter Verwendung des Vektors der Paare von SKeyInfoType
und der ganzen Zahl erhalten werden. Jeder des SKeyInfoType in den Vektorpaaren
entspricht verschiedenen Statusinformationen entsprechend dem info-Type, wie in 30 gezeigt. Die Abbildung 804 enthält Musterdaten,
die der Datenstruktur entsprechen, wie in 29D beschrieben. Die
Abbildung 804 enthält
Statusinformationen, die vorher von anderen Protokollen erhalten
wurden. Die Abbildung 804 enthält drei Typen von Statusinformationen,
die dem infoType 600, 610 und 700 entsprechen.
Die Statusinformationen für
infoType 600 sind "Papier
niedrig" mit dem
Gewicht von 500. Die Statusinformationen für infoType 610 sind "24321" mit dem Gewicht
von 10000.
-
Die
Statusinformationen für
infoType 70 sind "OK" mit dem Gewicht
von 2500. Um festzustellen, welche Statusinformationen unter Verwendung
des FTP-Protokolls erhalten werden, wird ein Vektor 806 erzeugt, um
die zu erhaltenden Statusinformationen zu enthalten. Die zum Vektor 806 hinzuzufügenden Informationen werden
durch die Informationen in der Abbildung 800 (insbesondere
den Vektor von Paaren in der Struktur SDirFileStatusInfo1 802)
und die Statusinformationen in der Abbildung 804 bestimmt.
Wenn die von der Abbildung 800 zu erhaltenden Statusinformationen
noch nicht in der Abbildung 804 erhalten wurden, dann fügt der Prozess
die zum Erhalten der Statusinformationen erforderlichen Informationen
im Vektor 806 hinzu. Wenn die von der Abbildung 800 zu
erhaltenden Statusinformationen bereits in der Abbildung 804 erhalten
wurden, dann wird geprüft,
ob die durch das FTP-Protokoll zu erhaltenden Statusinformationen
informativer sind als die Statusinformationen in der Abbildung 804,
indem das Gewicht verglichen wird. Informationen zum Erhalten der Statusinformationen
werden zum Vektor 806 nur dann hinzugefügt, wenn das Gewicht der Statusinformationen,
die durch FTP erhalten werden, größer ist als das Gewicht der
Statusinformationen, die sich bereits in der Abbildung 804 befinden.
Die durch FTP zu erhaltenden Statusinformationen entsprechend SDirFileStatusInfo1 802 sind
der infoType 600, 610, 620, 700 und 710.
Der InfoType 620 und 710 befinden sich nicht in
der Statusinformationsabbildung 804, so dass die Statusinformationen
unter Verwendung von FTP erhalten werden müssen. Daher werden die Informationen,
die verwendet werden, um die Statusinformationen zu erhalten, die 620 (SKeyInfoType3)
und 710 (SKeyInfoType5) entsprechen, zum Vektor 806 hinzugefügt. Der
infoType 600 und 700 befinden sich in der Statusinformationsabbildung 804.
Das Gewicht der durch FTP erhaltenen Statusinformationen für diese
infoTypes, wie in 802 gezeigt, ist größer als ihr Gewicht in der
Statusinformationsabbildung 804. Somit sind die für diese
zwei infoTypes durch FTP erhaltenen Statusinformationen informativer als
die Statusinformationen, die in der Abbildung 804 existieren.
Daher werden Informationen zum Erhalten der Statusinformationen
für infoType 600 (SKeyInfoType1)
und 700 (SKeylnfoType4) zum Vektor 806 hinzufügt. Der
infoType 610 befindet sich in der Statusinformationsabbildung 804.
Das Gewicht der durch FTP erhaltenen Statusinformationen für diesen
infoType, wie in 802 gezeigt, ist geringer als sein Gewicht
in der Statusinformationsabbildung 804. Somit sind die
für diesen
infoType durch FTP erhaltenen Statusinformationen weniger informativ
als die Statusinformationen, die in der Abbildung 804 existieren.
Daher werden Informationen zum Erhalten der Status informationen
für infoType 610 (SKeyInfoType2)
nicht zum Vektor 806 hinzugefügt. Dieser Vektor 806 wird
vom FTP-Protokoll verwendet, um die Statusinformationen für infoType 600, 620, 700 und 710 zu
erhalten. Zwei Statusinformationswerte werden zur Statusinformationsabbildung 804 hinzugefügt und zwei
Statusinformationswerte werden in der Statusinformationsabbildung 804 überschrieben,
wenn FTP beim Erhalten der Statusinformationen erfolgreich ist. 30 zeigt ein Beispiel dessen, wie die Datenstrukturen
verwendet werden, um die Statusinformationen für das FTP-Protokoll zu erhalten. Ein ähnlicher
Prozess bei der Verwendung der Datenstrukturen von 27B, 27C, 29A und 29B wird
verwendet, um die Statusinformationen für SNMP und HTTP zu erhalten.
-
31A ist ein Ablaufplan, der das Verfahren zum
Erhalten von Statusinformationen beschreibt. Alle Protokolle verwenden
dasselbe hierin beschriebene Verfahren. Bevor ein Protokollobjekt
verwendet wird, um spezielle Statusinformationen zu erhalten, prüft das Protokollobjekt,
um festzustellen, ob die Statusinformationen bereits von einem anderen
Protokollobjekt erhalten wurden. Wenn die Statusinformationen bereits
erhalten wurden, muss es prüfen,
um festzustellen, ob die Statusinformationen, die es erhält, informativer
sind als das, was bereits von einem anderen Protokollobjekt erhalten
wurde. Die informativsten Statusinformationen werden behalten. Das
Verfahren des Ablaufplans stellt sicher, dass die informativsten
Statusinformationen erhalten werden. Die Datenstrukturen 510, 520 und 530 von 27B, 27C und 27D werden von ihrem entsprechenden Protokoll
verwendet, um festzustellen, welche Statusinformationen zu erhalten
sind. In Schritt 3102 wird ein Vektor von Paaren, der Informationen
enthält,
die verwendet werden, um Statusinformationen von der Netzvorrichtung
zu erhalten, ohne Einträge
erzeugt. Der Vektor von Paaren entspricht einer der Datenstrukturen 700, 708 oder 716 von 29A bis 29C in
Abhängigkeit
von dem verwendeten Protokoll. In Schritt 3104 werden Informationen
erhalten, die verwendet werden, um einen Typ von Statusinformationen von
der Netzvorrichtung eines gegebenen Verkäufers und Modells zu erhalten.
Alle Protokollobjekte verwalten Informationen darüber, welche
Statusinformationen für
jeden Verkäufer
und jedes Modell, die es unterstützt, zu
erhalten sind. Alle Protokollobjekte werden mit diesen Informationen
durch den in 28 beschriebenen Initialisierungsprozess
initialisiert. Die Informationen, die verwendet werden, um eine
Statusinformation zu erhalten, werden in einer der Strukturen SOIDinfoType 706,
SKeyValueInfo 714 oder SKeyInfoType 722 von 29A, 29B und 29C in Abhängigkeit
von dem verwendeten Protokoll gespeichert. In Schritt 3106 wird
eine Prüfung
durchgeführt,
um festzustellen, ob weitere Informationen vorhanden sind, die verwendet werden,
um Statusinformationen von der Netzvorrichtung zu erhalten. Wenn
keine weiteren Informationen vor handen sind, dann enthält der Vektor
von Paaren, der in Schritt 3102 erzeugt wird, alle Informationen,
die erforderlich sind, um alle Statusinformationen von der Netzvorrichtung
für das
Protokoll zu erhalten. in Schritt 3108 verwendet das Protokollobjekt
den Vektor von Paaren, um die Statusinformationen von der Netzvorrichtung
zu erhalten, und die Statusinformationen werden in die Statusinformationsabbildung 724,
die in 29D beschrieben ist, gegeben.
Das Erhalten von Statusinformationen durch ein Protokoll ist in
Schritt 3110 vollendet. Wenn weitere Informationen vorliegen,
die verwendet werden, um Statusinformationen von der Netzvorrichtung
zu erhalten, dann wird in Schritt 3112 geprüft, um festzustellen,
ob die Statusinformationen bereits erhalten wurden. Dies wird durch
Betrachten der Abbildung, die die Statusinformationen enthält, wie
in 29D beschrieben, um festzustellen,
ob die Statusinformationen in der Abbildung bereits existieren,
durchgeführt. Wenn
die Statusinformationen nicht in der Abbildung existieren, dann
werden die Informationen, die verwendet werden, um die Statusinformationen
zu erhalten, zum Vektor von Paaren in Schritt 3114 hinzugefügt. Nach dem
Hinzufügen
der Informationen zum Vektor von Paaren wird zu Schritt 3104 zurückgegangen,
um weitere Informationen zu erhalten, die verwendet werden, um Statusinformationen
zu erhalten. Wenn die Statusinformationen bereits erhalten wurden,
dann wird das Gewicht der Statusinformationen, die bereits erhalten
wurden, mit dem Gewicht oder der Priorität der Statusinformationen,
die durch das Protokoll erhalten werden können, in Schritt 3116 verglichen.
Wenn das Gewicht oder die Priorität der Statusinformationen in
der Abbildung für
die Statusinformationen der Netzvorrichtung größer ist als das Gewicht oder
die Priorität
der vom Protokoll zu erhaltenden Statusinformationen, dann werden
die Informationen, die zum Erhalten der Statusinformationen verwendet
werden, nicht zum Vektor von Paaren hinzugefügt. Statt dessen wird zu Schritt 3104 zurückgegangen,
um weitere Informationen zu erhalten, die zum Erhalten von Statusinformationen
verwendet werden. Wenn das Gewicht oder die Priorität der Statusinformationen
in der Abbildung nicht größer ist
als das Gewicht oder die Priorität
der durch das Protokoll zu erhaltenden Statusinformationen, dann
werden die Informationen, die verwendet werden, um die Statusinformationen
zu erhalten, zum Vektor von Paaren in Schritt 3114 hinzugefügt. Nach
dem Hinzufügen
der Informationen zum Vektor von Paaren wird zu Schritt 3104 zurückgegangen, um
weitere Informationen zu erhalten, die zum Erhalten von Statusinformationen
verwendet werden.
-
31B zeigt einen Ablaufplan, der den Prozess zum
Erhalten von Statusinformationen über die Netzvorrichtungen unter
Verwendung aller Protokolle beschreibt. Nachdem die Protokollobjekte
mit Informationen über
den Verkäufer
und das Modell von Netzvorrichtungen, die es unterstützt, initialisiert
wurden, wie in 28 beschrie ben, können die
Protokollobjekte verwendet werden, um Statusinformationen von den
Netzvorrichtungen zu erhalten. Die Protokollobjekte enthalten Informationen
darüber,
wie Statusinformationen für gegebene
Verkäufer
und Modelle unter Verwendung der Datenstrukturen, wie in 27B, 27C und 27D beschrieben, zu erhalten sind. Der Vektor
von Zeigern auf CAbsProtocol 2308, der in 27A beschrieben ist, wird verwendet, um die Statusinformationen
für alle
Protokollobjekte zu erhalten. Der Prozess des Ablaufplans durchschreitet
den Vektor einmal. In Schritt 3122 wird ein Protokollobjekt
vom Vektor von Zeigern auf CAbsProtocol erhalten. Das Protokollobjekt
entspricht einem der Netzprotokolle zum Zugreifen auf die Netzvorrichtung
(z. B. SNMP, HTTP und FTP). In Schritt 3124 wird eine Prüfung durchgeführt, um
festzustellen, ob weitere Protokollobjekte vorhanden sind, die vom
Vektor erhalten werden können.
Diese Prüfung wird
durch Feststellen, ob das Ende des Vektors erreicht wurde, durchgeführt. Wenn
keine weiteren Protokollobjekte erhalten werden können, dann
ist das System mit dem Erhalten der Statusinformationen von der
Netzvorrichtung unter Verwendung aller Protokollobjekte in Schritt 3126 fertig.
Wenn ein Protokollobjekt, das vom Vektor erhalten wird, vorliegt,
dann wird das Protokollobjekt verwendet, um die Statusinformationen
der Netzvorrichtung in Schritt 3128 zu erhalten. Nach dem
Erhalten der Statusinformationen unter Verwendung des Protokollobjekts
werden weitere Statusinformationen unter Verwendung eines anderen
Protokollobjekts erhalten, indem zu Schritt 3122 zurückgegangen
wird.
-
32A zeigt die Datenstruktur, die verwendet wird,
um Informationen über
die Verkäufer
und Modelle von Netzvorrichtungen, die von einem gegebenen Protokoll
unterstützt
werden, zu verwalten, während 32B ein Beispiel von Informationen, die in der
Datenstruktur verwendet werden, zeigt. Die Organisation von Informationen
in der Datenbank über
die unterstützten
Verkäufer
und Modelle und, wie die Statusinformationen von ihnen zu erhalten
sind, variiert unter den Protokollen. Daher unterscheidet sich das
Erhalten der unterstützten
Verkäufer
und Modelle von der Datenbank für
verschiedene Protokolle voneinander. Um den Zugriff auf unterstützte Verkäufer und
Modelle zu vereinfachen, kann eine Abbildungsstruktur verwendet
werden, um diese Informationen für
alle Protokolle zu speichern und auf diese zuzugreifen. 32A zeigt die Verkäufer-Modell-Unterstützungsabbildung 3200.
Der Schlüssel 3202 für die Abbildung 3200 ist
ein String, der Informationen über
den Verkäufer
und das Modell, die von einem Protokoll unterstützt werden, enthält. Der
Wert 3204 für
die Abbildung 3200 ist eine ganze Zahl, die verwendet werden
kann, um Informationen in Bezug auf den Verkäufer und das Modell darzustellen,
wie z. B. eine Verkäufer-Modell-Identifikationsnummer.
Der Grund dafür,
dass eine Abbildungsstruktur zum Enthalten von Informationen über die
Verkäufer
und Modelle, die von einem Protokoll unterstützt werden, gewählt wurde,
bestand darin, dass eine Abbildungsstruktur einen Nachschlagemechanismus
aufweist, um leicht einen Schlüssel
in einer Abbildung zu finden. Folglich ist es leicht festzustellen,
ob ein Verkäufer
und ein Modell in der Abbildung gespeichert ist. Obwohl die Erörterung
von 32A angegeben hat, dass die
Informationen über
den Verkäufer
und das Modell für
verschiedene Protokolle von der Datenbank stammen, können die
Informationen von irgendeiner externen Quelle wie z. B. einer Textdatei
oder einer Tabellenkalkulation stammen.
-
32B zeigt eine Verkäufer-Modell-Unterstützungsabbildung 3206 mit
Mustereinträgen
in der Abbildung. Der Schlüssel 3208 für die Abbildung 3206 ist
ein String, der den Verkäufernamen,
ein Trennzeichen "%%%%%" und den Modellnamen
enthält.
Für den
Verkäufer "Verkäufer 1" und das Modell "Modell 1" ist beispielsweise
der String für
den Schlüssel 3208 für die Abbildung 3206 "Verkäufer1%%%%%Modelll". Obwohl das Trennzeichen "%%%%%" in dem Beispiel
verwendet wurde, kann ein beliebiges Trennzeichen verwendet werden,
das nicht als Teil des Verkäufernamens
oder Modellnamens betrachtet werden würde, wie z. B. "@@@@@". Der Grund dafür, dass
ein Trennzeichen verwendet wird, besteht darin, den Verkäufer vom
Modell zu unterscheiden, so dass der Verkäufer und das Modell leicht
aus dem String erhalten werden können. Der
Wert 3210 für
die Abbildung 3206 ist die ganze Zahl 1. Der Wert 3210 für die Abbildung 3206 kann
eine beliebige ganze Zahl sein. Jedes Protokoll verwaltet eine Verkäufer-Modell-Unterstützungsabbildung 3200.
-
33 ist ein Ablaufplan, der das Verfahren zum Hinzufügen von
unterstützten
Verkäufern
und Modellen zur Verkäufer-Modell-Unterstützungsabbildung 3200 von 32A beschreibt, so dass alle Verkäufer und
Modelle, die von einem Protokoll unterstützt werden, enthalten sind.
In Schritt 3302 werden der Verkäufer und das Modell von der
Datenbank erhalten. Wie der Verkäufer
und das Modell von der Datenbank erhalten werden, unterscheidet
sich unter den Protokollen. Dies hängt von den Tabellen in der
Datenbank ab, die die unterstützten
Verkäufer
und Modelle enthalten. In Schritt 3304 wird eine Prüfung durchgeführt, um
festzustellen, ob weitere Verkäufer- und Modellinformationen
von der Datenbank zu erhalten sind. Wenn keine weiteren zu erhalten
sind, dann wird das Verfahren zum Belegen der Verkäufer-Modell-Unterstützungsabbildung 3200 mit
unterstützten
Verkäufern
und Modellen in Schritt 3306 vollendet. Die Verkäufer-Modell-Unterstützungsabbildung 3200 enthält alle
Verkäufer
und Modelle, die von einem Protokoll unterstützt werden. Kein weiterer Zugriff
auf die Datenbank ist erforderlich, um die Informationen von unterstützten Verkäufern und
Modellen zu erhalten. Wenn ein Verkäufer und Modell vorliegen,
die von der Datenbank erhalten werden, dann wird ein String, der
als Schlüssel
für die Verkäufer-Modell-Unterstützungsabbildung 3200 verwendet
werden soll, in Schritt 3308 erzeugt. Der String besteht
aus dem Verkäufernamen,
einem Trennzeichen und dem Modellnamen. Wie vorher beschrieben,
kann das Trennzeichen ein beliebiger String sein, der nicht als
Teil des Verkäufernamens oder
Modellnamens betrachtet werden würde.
In Schritt 3310 wird eine Prüfung durchgeführt, um
festzustellen, ob der String, der aus dem Verkäufernamen, dem Trennzeichen
und dem Modellnamen besteht, bereits in der Verkäufer-Modell-Unterstützungsabbildung 3200 existiert.
Wenn der String bereits in der Abbildung 3200 existiert,
dann wird ein anderer Verkäufer
und ein anderes Modell aus der Datenbank in Schritt 3302 erhalten. Wenn
der String in der Abbildung 3200 nicht existiert, dann
werden der String und eine ganze Zahl zur Abbildung 3200 hinzugefügt. Nachdem
der String zur Abbildung 3200 hinzugefügt wurde, dann wird ein weiterer Verkäufer und
ein weiteres Modell von der Datenbank in Schritt 3302 erhalten.
-
34 ist ein Ablaufplan, der das Verfahren zum Erhalten
des Verkäufers
und Modells, die von einem Protokoll unterstützt werden, von der Verkäufer-Modell-Unterstützungsabbildung 3200 von 32A beschreibt. In Schritt 3402 wird
ein String für
den Schlüssel
von der Verkäufer-Modell-Unterstützungsabbildung 3200 erhalten.
In Schritt 3404 wird eine Prüfung durchgeführt, um
festzustellen, ob weitere Schlüssel
von der Abbildung 3200 zu erhalten sind. Wenn keine weiteren
Schlüssel
vorhanden sind, dann wurden alle von einem Protokoll unterstützten Verkäufer und
Modelle erhalten und das Erhalten des Verkäufers und Modells ist in Schritt 3406 vollständig. Wenn
ein String für
den Schlüssel
von der Abbildung 3200 erhalten wurde, dann wird der Teilstring
vor dem Trennzeichen erhalten, um den Verkäufernamen in Schritt 3408 zu
erhalten. In Schritt 3410 wird der Teilstring nach dem
Trennzeichen erhalten, um den Modellnamen zu erhalten. Dann ist
in Schritt 3406 das Erhalten des Verkäufers und Modells vollendet.
Indem alle Einträge
in der Abbildung 3200 durchlaufen werden, können alle
von einem Protokoll unterstützten
Verkäufer
und Modelle erhalten werden.
-
35 zeigt das Paketdiagramm des Vorrichtungspakets.
Das Paket ist für
das Erzeugen der Softwareobjekte, die die Netzvorrichtungen darstellen,
verantwortlich. Das Vorrichtungspaket 1300 besteht aus zwei
Klassen, CDeviceFactory 1302 und CDevice 1304.
Die Klasse CDeviceFactory 1302 ist für das Erzeugen und Initialisieren
des Softwareobjekts für
eine Netzvorrichtung verantwortlich. Das Initialisieren des Softwareobjekts
umfasst das Bestimmen des Verkäufers,
Modells und des eindeutigen Identifizierers der Netzvorrichtung
und das Festlegen der Protokolle, die verwendet werden können, um
auf die Netzvorrichtungen zuzugreifen. Wenn auf die Netzvorrichtung
nicht zugegriffen werden kann, dann wird kein Softwareobjekt für die Netzvorrichtung
erzeugt. Die Klasse CDevice 1304 stellt das Softwareobjekt
für eine
Netzvorrichtung dar. CDevice 1304 verwaltet Informationen über die
Netzvorrichtung und erhält
Statusinformationen über
die Netzvorrichtung. CDevice 1304 verwendet das HWaccess-Paket 1304,
das in 23 beschrieben ist, um auf
die Netzvorrichtung durch verschiedene Protokolle zuzugreifen, um
Informationen von der Vorrichtung zu erhalten.
-
36A zeigt eine Datenstruktur, die von den Softwareobjekten
verwendet wird, die die Netzvorrichtungen darstellen, CDevice 1304,
wie in 35 beschrieben, um festzustellen,
welche Protokolle verwendet werden, um auf die Netzvorrichtung zuzugreifen.
CDevice 1304 enthält
die Protokollparameterabbildung 1400. Der Schlüssel 1402 für die Abbildung 1400 ist
ein String, der das Protokoll (z. B. SNMP, HTTP, FTP) darstellt. Der
Wert 1404 für
die Abbildung 1400 ist ein Vektor der Struktur SParameter.
Die Struktur SParameter 1406 enthält Informationen, die verwendet
werden, um auf die Netzvorrichtung für ein gegebenes Protokoll zuzugreifen.
Der SParameter 1406 enthält Informationen, die vielmehr
für die
Netzvorrichtung charakteristisch sind als für den Verkäufer und das Modell der Vorrichtung
charakteristisch sind. Die Informationen können beispielsweise der Gemeinschaftsname
sein, um auf die Netzvorrichtung durch SNMP zuzugreifen, oder die
Informationen können
der Benutzername und das Passwort sein, um auf die Netzvorrichtung
durch FTP zuzugreifen. Diese sind gemeinsame Informationswerte,
die verwendet werden, um auf irgendeine Netzvorrichtung durch SNMP
oder FTP zuzugreifen. Informationen von der Datenbank, die durch
das DeviceODBC-Paket erhalten werden, werden zu der Abbildung hinzugefügt, so dass
auf die Netzvorrichtung durch die verschiedenen Protokolle zugegriffen
werden kann. Einträge
in der Abbildung werden für
ein Protokoll entfernt, wenn das Protokoll nicht auf die Netzvorrichtung
unter Verwendung des Protokolls zugreifen kann und wenn der Verkäufer und das
Modell vom Protokoll nicht unterstützt werden. Einige Protokolle
greifen auf die Netzvorrichtung zu, selbst wenn der Verkäufer und
das Modell nicht vom Protokoll unterstützt werden können. Ein
solches Protokoll ist SNMP.
-
36B zeigt Musterdaten in der Protokollparameterabbildung 1400 von 36A für
eine Netzvorrichtung. Die Netzvorrichtung verwendet zwei Protokolle,
um Statusinformationen zu erhalten – SNMP und FTP. Daher enthält die Abbildung 1410 für die Netzvorrichtung
zwei Einträge
für den
Schlüssel "SNMP" und "FTP". Um auf die Netzvorrichtung
unter Verwendung von SNMP zuzugreifen, ist der Gemeinschaftsname
erforderlich. Der Vektor von SParameter für SNMP enthält Informationen über den
Gemeinschaftsnamen. Der Parametername von GEMEINSCHAFT und ein Parameterwert
von "privat" wird für einen
SParameter verwendet, um den Zugriff auf die Netzvorrichtung zu
ermöglichen.
Um auf die Netzvorrichtung unter Verwendung von FTP zuzugreifen,
sind der Benutzername und das Passwort erforderlich. Der Vektor
von SParameter für
FTP enthält
Informationen über
den Benutzernamen und das Passwort. Der Parametername von BENUTZERNAME
mit einem Parameterwert von "abc" wird für einen
SParameter verwendet und der Parameter von PASSWORT mit einem Parameterwert
von "xyz" wird für einen
anderen SParameter verwendet, um den Zugriff auf die Netzvorrichtung
zu ermöglichen.
-
37 zeigt einen Ablaufplan, der beschreibt, wie
die Protokollparameterabbildung 1400 von 36A aktualisiert wird, um festzustellen, welche
Protokolle verwendet werden, um die Statusinformationen von einer
Netzvorrichtung zu erhalten. Die Schritte in 37 werden
durchgeführt,
um den Verkäufernamen und
den Modellnamen einer Netzvorrichtung für ein Protokoll zu erhalten.
In Schritt 3702 wird eine Prüfung durchgeführt, um
festzustellen, ob auf die Netzvorrichtung unter Verwendung eines
Protokolls zugegriffen werden kann. Auf die Netzvorrichtung wird
durch das Protokoll unter Verwendung der Informationen in der Abbildung 1400 zugegriffen.
Wenn auf die Netzvorrichtung nicht durch das Protokoll zugegriffen
werden kann, wird das Protokoll aus der Protokollparameterabbildung 1400 in
Schritt 3704 entfernt und die Aktualisierung der Abbildung 1400 wird
in Schritt 3714 vollendet. Wenn auf die Netzvorrichtung
durch das Protokoll zugegriffen werden kann, dann wird in Schritt 3706 eine
Prüfung
durchgeführt,
um festzustellen, ob der Verkäufer
der Netzvorrichtung unter Verwendung des Protokolls erhalten werden
kann. Wenn der Verkäufer
nicht erhalten werden kann, dann wird in Schritt 3707 eine
Prüfung
durchgeführt,
ob der ALLGEMEINE Verkäufer
vom Protokoll unterstützt
wird. Die Unterstützung
für den
ALLGEMEINEN Verkäufer
für ein
Protokoll bedeutet, dass ein Protokoll Statusinformationen erhalten
kann, die allen Vorrichtungen gemeinsam sind (gemeinsame Statusinformationen),
selbst wenn es nicht den Verkäufer
der Vorrichtungen erhalten kann oder diesen unterstützt. Wenn
der ALLGEMEINE Verkäufer
vom Protokoll nicht unterstützt
wird, dann wird das Protokoll aus der Protokollparameterabbildung 1400 in
Schritt 3704 entfernt und die Aktualisierung der Abbildung 1400 wird
in Schritt 3714 vollendet. Wenn der ALLGEMEINE Verkäufer vom
Protokoll unterstützt
wird, dann bleibt das Protokoll in der Protokollparameterabbildung 1400 und
die Aktualisierung der Abbildung wird in Schritt 3714 vollendet.
Wenn der Verkäufer
in Schritt 3706 erhalten werden kann, dann wird in Schritt 3708 eine
Prüfung
durchgeführt,
um festzustellen, ob der Verkäufer
der Netzvorrichtung vom Protokoll unterstützt wird. Wenn der Verkäufer nicht vom
Protokoll unterstützt
wird, dann wird in Schritt 3707 eine Prüfung durchgeführt, um
festzustellen, ob der ALLGEMEINE Verkäufer vom Protokoll unterstützt wird.
Die Sequenz von Schritten, die Schritt 3707 folgt, ist vorstehend
erörtert.
-
Wenn
der Verkäufer
vom Protokoll unterstützt
wird, dann wird in Schritt 3710 eine Prüfung durchgeführt, um
festzustellen, ob das Modell der Netzvorrichtung unter Verwendung
des Protokolls erhalten werden kann. Wenn das Modell nicht erhalten
werden kann, dann wird in Schritt 3711 eine Prüfung durchgeführt, ob das
ALLGEMEINE Modell vom Protokoll unterstützt wird. Die Unterstützung für das ALLGEMEINE
Modell für ein
Protokoll bedeutet, dass ein Protokoll Statusinformationen erhalten
kann, die allen Vorrichtungen eines Verkäufers gemeinsam sind (verkäuferspezifische
Statusinformationen), selbst wenn es nicht das Modell der Vorrichtungen
erhalten kann oder dieses nicht unterstützt. Wenn das ALLGEMEINE Modell
vom Protokoll nicht unterstützt
wird, dann wird das Protokoll aus der Protokollparameterabbildung 1400 in
Schritt 3704 entfernt und die Aktualisierung der Abbildung 1400 wird
in Schritt 3714 vollendet. Wenn das ALLGEMEINE Modell vom Protokoll
unterstützt
wird, dann bleibt das Protokoll in der Protokollparameterabbildung 1400 und
die Aktualisierung der Abbildung wird in Schritt 3714 vollendet.
Wenn das Modell in Schritt 3710 erhalten werden kann, dann
wird in Schritt 3712 eine Prüfung durchgeführt, um
festzustellen, ob das Modell der Netzvorrichtung vom Protokoll unterstützt wird.
Wenn das Modell vom Protokoll nicht unterstützt wird, dann wird in Schritt 3711 eine Prüfung durchgeführt, ob
das ALLGEMEINE Modell vom Protokoll unterstützt wird. Die Sequenz von Schritten, die 3711 folgt,
ist vorstehend erörtert.
Wenn das Modell vom Protokoll unterstützt wird, dann kann das Protokoll verwendet
werden, um Statusinformationen für
die Netzvorrichtung zu erhalten, und die Aktualisierung der Protokollparameterabbildung 1400 wird
in Schritt 3714 vollendet. Wenn der Verkäufer und
das Modell nicht erhalten werden oder nicht unterstützt werden,
dann wird das Protokoll aus der Protokollparameterabbildung 1400 entfernt
und das Protokoll wird nicht verwendet, um Statusinformationen zu
erhalten. Es gibt Veränderungen
an dem in 37 gezeigten Prozess in Abhängigkeit
von dem Protokoll. Während
HTTP und FTP der Beschreibung im Ablaufplan folgen, wird SNMP unterstützt und
verwendet, um die Statusinformationen zu erhalten, selbst wenn der
Verkäufer
unterstützt
wird, aber das Modell und allgemeine Modell nicht unterstützt werden.
-
Wie
vorstehend erörtert,
können
Statusinformationen durch SNMP von der Netzvorrichtung erhalten werden,
selbst wenn der Verkäufer
und das Modell nicht erhalten oder unterstützt werden. Solange die Netzvorrichtung
SNMP unterstützt
und auf diese durch SNMP zugegriffen werden kann, können Informationen
von der Manage mentinformationsbasis (MIB) der Netzvorrichtung erhalten
werden. Wenn in Schritt 3702 auf die Netzvorrichtung nicht
durch SNMP zugegriffen werden kann, dann kann das SNMP-Protokoll
aus der Protokollparameterabbildung 1400 in Schritt 3704 entfernt
werden. Wenn jedoch auf die Netzvorrichtung durch SNMP zugegriffen
werden kann, dann bleibt das SNMP-Protokoll in der Protokollparameterabbildung 1400,
ob der Verkäufer
oder das Modell erhalten und unterstützt wird oder nicht. Netzvorrichtungen,
die SNMP unterstützen,
sehen eine MIB vor, so dass das entfernte System immer Informationen
von den Vorrichtungen erhalten kann. Die Art und Anzahl von Informationen,
die von der Netzvorrichtung erhalten werden können, hängen jedoch davon ab, ob der
Verkäufer
und das Modell erhalten und unterstützt werden. Mehr Informationen
können
von der Netzvorrichtung durch SNMP erhalten werden, wenn der Verkäufer und
das Modell erhalten werden und bekannt sind. Wenn der Verkäufer und
das Modell nicht erhalten werden können, kann SNMP dennoch Informationen
erhalten, die alle Vorrichtungen bereitstellen können, wie z. B. die Systembeschreibung oder
die Zeit, die das System gelaufen ist. SNMP kann verwendet werden,
um Informationen von der Netzvorrichtung zu erhalten, unter den
drei Bedingungen: (1) Der Verkäufer
und das Modell werden unterstützt,
(2) der Verkäufer
wird unterstützt,
aber das Modell wird nicht unterstützt, und (3) der Verkäufer und
das Modell werden nicht unterstützt.
HTTP und FTP besitzen nicht die Eigenschaften wie SNMP. Wenn SNMP
eine Standard-MIB aufweist, der alle Netzvorrichtungen folgen können, so
dass Informationen erhalten werden können, variieren Webseiten und
FTP-Dateien unter Netzvorrichtungen verschiedener Verkäufer und
Modelle. Es besteht kein Standard für Webseiten und FTP-Dateien,
denen Netzvorrichtungen folgen, um Informationen zu erhalten.
-
Um
das vorstehend mit Bezug auf 38A–38C beschriebene Problem anzugehen, wurden Ausführungsformen
der vorliegenden Erfindung so ausgelegt, dass sie mehrere Verfahren
zum Extrahieren von Informationen von HTML-Dateien von überwachten
Vorrichtungen ermöglichen
und die Erweiterung von zukünftigen
Verfahren in Abhängigkeit
vom Format der HTML-Dateien ermöglichen.
Die hierin beschriebenen Verfahren können auf andere Protokolle
angewendet werden, selbst wenn das HTTP-Protokoll als Beispiel verwendet
wird.
-
39 zeigt das Paketdiagramm, das innerhalb jedes
der Protokollpakete von 23 verwendet wird,
wobei XXX entweder SNMP, HTTP oder FTP ist. Die abstrakte Klasse
CAbsProtocol stellt die Schnittstellenfunktionen zum Erhalten von
Informationen von den Vorrichtungen bereit, stellt jedoch nicht
das Verfahren zum Erhalten der Informationen bereit. Klassen, die
von CAbsProtocol abgeleitet sind, stellen das Ver fahren bereit,
das es zweckmäßig macht,
neue Protokolle zum Erhaltenen von Informationen von Vorrichtungen
hinzuzufügen.
Die CXXXProtocollmp1-Klasse ist die Schnittstelle für das XXX-Paket
und managt alle anderen Klassen/Pakete innerhalb des Pakets. Da
CXXXProtocollmp1 von CAbsProtocol abgeleitet ist, stellt diese Klasse
das Verfahren zum Erhalten von Informationen von den Vorrichtungen
für ein
gegebenes Protokoll bereit. Das XXXaccess-Paket implementiert das
Protokoll zum Zugreifen auf die Vorrichtung und zum Erhalten von
Informationen von der Vorrichtung. Das XXXODBC-Paket erhält die Protokollunterstützungsinformationen von
der Unterstützungsdatenbank.
Diese Informationen umfassen die Verkäufer- und Modellinformationen,
die das Protokoll unterstützt,
wie Informationen über
den Verkäufer,
das Modell und den eindeutigen Identifizierer von der Vorrichtung
zu erhalten sind und wie die Statusinformationen von der Vorrichtung
zu erhalten sind. 24, 25 und 26 sind
spezielle Verwendungen dieses Paketdiagramms für SNMP, HTTP und FTP. Irgendwelche
neuen Protokolle, die verwendet werden, um Statusinformationen von
der Vorrichtung zu erhalten, folgen dieser Struktur für ihr Paketdiagramm.
Ein solches neues Protokoll kann Web Services sein. Verschiedene
Implementierungen eines Protokolls können auch dieser Struktur für ihr Paketdiagramm
folgen.
-
40 zeigt ein alternatives Paketdiagramm, das innerhalb
jedes der Protokollpakete von 23 verwendet
werden kann, wobei wieder XXX entweder SNMP, HTTP oder FTP ist.
Selbst wenn dieses Paketdiagramm auf irgendeines der Protokolle
angewendet werden kann, wird das HTTP-Protokoll als Beispiel verwendet.
Diese Paketstruktur ermöglicht
die Erweiterung von neuen Implementierungen eines Protokolls, um
Informationen von einer Vorrichtung zu erhalten. Dies ist erforderlich,
wenn die existierenden Implementierungen der Protokolle zum Erhalten
von Informationen für
neue Formate der Informationen nicht arbeiten, wie z. B. die Beispielwebseiten
von 38B und 38C.
Die abstrakte Klasse CAbsProtocol wird auch von diesem Paketdiagramm
verwendet, wie in 39 gezeigt. Die CXXXProtocol-Klasse
ist von CAbsProtocol abgeleitet. CXXXProtocol stellt eine Schnittstelle
für das
XXX-Paket bereit und managt alle Klassen, die verschiedenen Verfahren
beim Erhalten von Informationen von den Vorrichtungen entsprechen.
-
Die
Klassen CXXXProtocollmp1 und CXXXProtocollmp2 implementieren zwei
verschiedene Verfahren zum Erhalten von Informationen unter Verwendung
desselben Protokolls. Die CXXXProtocollmp1-Klasse stellt eine Implementierung
zum Erhalten von Informationen von einer Vorrichtung bereit und
verwendet die Pakete XXXaccess1 und XXXODBC1. Das XXXaccess1-Paket
implementiert das Protokoll zum Zugreifen auf die Vorrichtung und
zum Erhalten von Informationen von der Vorrich tung. Das XXXODBC1-Paket
erhält
die Protokollunterstützungsinformationen
von der Datenbank. Diese Informationen umfassen den Verkäufer und das
Modell, die das Protokoll unterstützt, wie die Informationen
des Verkäufers,
des Modells und des eindeutigen Identifizierers von der Vorrichtung
zu erhalten sind und wie die Statusinformationen von der Vorrichtung zu
erhalten sind. Die CXXXProtocollmp2-Klasse stellt eine weitere Implementierung
zum Erhalten von Informationen von der Vorrichtung unter Verwendung
desselben Protokolls wie CXXXProtocollmp1 bereit. CXXXProtocollmp2
verwendet die Pakete XXXaccess2 und XXXODBC2. Das XXXaccess2-Paket
implementiert das Protokoll zum Zugreifen auf die Vorrichtung und
zum Erhalten von Informationen von der Vorrichtung. Das XXXODBC2-Paket
erhält
die Protokollunterstützungsinformationen
von der Datenbank genau wie XXXODBC1. Die Konstruktion dieses Pakets
ermöglicht
neue Implementierungen des Protokolls. Wenn eine neue Implementierung
erforderlich ist, wird eine weitere Implementierungsklasse zusammen
mit ihrem Unterstützungspaket
zum Zugreifen auf die Vorrichtung unter Verwendung des Protokolls
und zum Erhalten von Informationen von der Unterstützungsdatenbank
hinzugefügt.
Ausführungsformen
des vorliegenden Systems arbeiten mit den existierenden Implementierungen,
um Informationen von Vorrichtungen, die es bereits unterstützt, zusammen
mit den neuen Vorrichtungen mit den neuen Implementierungen zu erhalten.
-
Die
Paketdiagramme für
SNMP und FTP folgen der Paketstruktur von 39 und
sind in 24 und 26 gezeigt.
Das Paketdiagramm für
HTTP dieses Systems folgt der Paketstruktur von 40.
-
41 zeigt eine zweite Ausführungsform des Paketdiagramms
für HTTP,
das auf den in 25 und 40 gezeigten
Paketdiagrammen basiert. Das Paket enthält zwei Implementierungen von
HTTP, um Informationen von den Webseiten zu erhalten, wie in 38A–C
gezeigt. Dieses Paket verwendet die abstrakte Klasse CAbsProtocol,
wie in 39 vorstehend beschrieben.
Die CHTTPProtocol-Klasse ist von CAbsProtocol abgeleitet. CHTTPProtocol
ist die Schnittstelle für
das HTTP-Paket und managt die Pakete, die zwei verschiedenen Implementierungen
von HTTP entsprechen, um Informationen von den Vorrichtungen zu
erhalten. Das FirstHTTPImplementation-Paket ist die Implementierung
von HTTP, um Informationen von der Webseite einer Vorrichtung zu
erhalten, wie in 38A gezeigt. Das FirstHTTPImplementation-Paket
entspricht der Implementierung von HTTP, um Informationen zu erhalten,
wie vorstehend beschrieben. Das FirstHTTPImplementation-Paket verwendet
das FirstHTTPODBC-Paket, um Unterstützungsinformationen von der
Datenbank über
die unterstützten
Vorrichtungen und, wie die Informationen von der Vorrichtung zu
erhalten sind, zu erhalten. Das SecondHTTPImplementation-Paket stellt eine
weitere Implementierung von HTTP bereit, um Informationen von der
Webseite einer Vorrichtung zu erhalten, wie z. B. in 38B und 38C gezeigt.
Das SecondHTTPImplementation-Paket verwendet das SecondHTTPODBC-Paket,
um Unterstützungsinformationen von
der Datenbank über
die unterstützten
Vorrichtungen und, wie die Informationen von der Vorrichtung zu
erhalten sind, zu erhalten. Die zweite Implementierung von HTTP
durch das SecondHTTPImplementation-Paket behandelt das Problem des Erhaltens
von Informationen von einer Vorrichtung, wenn derselbe Schlüssel verwendet
wird, um verschiedene Statusinformationen zu erhalten, wie vorstehend
in 38B und 38C beschrieben.
HTTP_HTMLTool ist als Paket gezeigt, aber es ist ein Namensraum,
der Objekte enthält,
die von den zwei Implementierungspaketen verwendet werden. Unter
Verwendung eines Namensraums können
die Objekte, die er enthält,
innerhalb des HTTP-Pakets verwendet werden. Dies ermöglicht,
dass alle Klassen und Pakete von HTTP sich die Objekte des Namensraums
teilen. Das HTTP-Paket enthält
die abstrakte Klasse CAbsHTTPImplementation, die die Schnittstelle
zum Erhalten von Informationen über
die Vorrichtung durch HTTP bereitstellt. Klassen, die von CAbsHTTPImplementation
abgeleitet sind, stellen das Verfahren zum tatsächlichen Erhalten der Informationen
bereit. Das FirstHTTPImplementation- und SecondHTTPImplementation-Paket
enthalten eine Klasse, die von CAbsHTTPImplementation abgeleitet
ist, die das Verfahren definiert, um die Informationen zu erhalten.
Die Konstruktion des HTTP-Pakets
ermöglicht
die zukünftige
Erweiterung. Wenn die aktuellen Implementierungen Informationen
nicht von den Webseiten einer Vorrichtung erhalten können, dann
kann die Konstruktion für
eine neue Implementierung hinzugefügt werden, indem eine Implementierung
und das ODBC-Paket hinzugefügt
werden.
-
42 zeigt die Klassenspezifikation für die abstrakte
Klasse CAbsHTTPImplementation. Diese abstrakte Klasse stellt die
Schnittstelle zum Erhalten von Informationen von einer Vorrichtung,
d. h. Statusinformationen, Verkäufername,
Modellname und eindeutigen Identifizierer, bereit. Die abstrakte
Klasse stellt jedoch nicht das tatsächliche Verfahren zum Erhalten
der Informationen bereit. Klassen, die von CAbsHTTPImplementation
abgeleitet sind, stellen das Verfahren zum Erhalten dieser Informationen
bereit. Daher kann jede von CAbsHTTPImplementation abgeleitete Klasse
ein anderes Verfahren zum Erhalten dieser Informationen bereitstellen.
Die Verwendung von abstrakten Klassen ermöglicht folglich Flexibilität in der
Konstruktion.
-
43 und 44 beschreiben
die Datenstrukturen m_ImplementationMap und m_VendorModelSupportMap
der CHTTPProtocol-Klasse von 41.
In 43 ist der Schlüssel für die Abbildungsstruktur m_ImplementationMap
ein Zeiger auf die CAbsHTTPImplementation-Klasse. Obwohl der Schlüssel ein
Zeiger auf die abstrakte Klasse CAbsHTTPImplementation ist, zeigt
der Zeiger tatsächlich
auf eine abgeleitete Klasse von CAbsHTTPImplementation. 43 zeigt zwei Mustereinträge in der Abbildung, die den
zwei abgeleiteten Klassen von CAbsHTTPImplementation entsprechen,
CFirstHTTPImplementation und CSecondHTTPImplementation. Der Wert
für die
Abbildung ist ein boolescher Ausdruck, der angibt, ob die Implementierungsklasse,
auf die im Schlüssel
gezeigt wird, verwendet wird. Diese Abbildung wird initialisiert, wenn
der Konstruktor von CHTTPProtocol die private Funktion initImplementationMap()
aufruft, wenn das System startet. Diese private Funktion belegt
die Abbildung mit allen verschiedenen Implementierungen von HTTP, das
Informationen erhält
und ihren Booleschen Wert auf falsch setzt. Während des Entdeckungsprozesses
(Initialisierung) zum Bestimmen, welche Vorrichtungen überwacht
werden, wird festgestellt, welche Implementierungen erforderlich
sind. Wenn eine Implementierung erforderlich ist, um Informationen
von den Vorrichtungen zu erhalten, dann wird der Boolesche Wert
auf wahr gesetzt. Nachdem der Entdeckungsprozess vollendet ist und
wenn der Boolesche Wert, der einer Implementierung entspricht, falsch
ist, wird die Implementierung aus der Abbildung entfernt.
-
44 zeigt die Abbildungsstruktur m_VendorModelSupportMap
mit Mustereinträgen.
Diese Abbildung wird verwendet, um festzustellen, welche Implementierung
von HTTP zu verwenden ist, um Informationen für einen speziellen Verkäufer und
ein spezielles Modell einer überwachten
Vorrichtung zu erhalten. Der Schlüssel für die Abbildung ist ein String
für den
Namen des Verkäufers
der Vorrichtung. Der Wert, der dem Schlüssel entspricht, ist eine weitere
Abbildung. In der inneren Abbildung ist der Schlüssel ein String für den Namen
des Modells der Vorrichtung und der Wert ist ein Zeiger auf die
abstrakte Klasse CAbsHTTPImplementation. Genau wie für m_ImplementationMap
zeigt der Zeiger tatsächlich
auf eine abgeleitete Klasse von CAbsHTTPImplementation, die die
Implementierung von HTTP für
das Modell der Vorrichtung bereitstellt. Tatsächlich entspricht der Zeiger
einem der Zeiger in der Abbildung m_ImplementationMap. Die Abbildung m_VendorModelSupportMap
wird während
der Initialisierung des Systems belegt, wenn das System feststellt, welche
Vorrichtungen überwacht
werden.
-
45 zeigt den Ablaufplan der Funktion canAccessIP()
von CHTTPProtocol, die eine Implementierung zur Abbildung m_VendorModelSupportMap
hinzufügen
kann, wenn der Verkäufer
und Modellname erhalten werden können
und wenn der Verkäufer
und das Modell HTTP unterstützen.
Diese Funktion wird für
jede Vorrichtung auf gerufen, die vom System überwacht wird, um festzustellen,
ob die Vorrichtung durch HTTP unterstützt wird. Diese Funktion bestimmt,
welche Implementierung von HTTP verwendet wird, um Informationen von
der Vorrichtung zu erhalten. Die Funktion läuft in einer Schleife über die
Abbildung m_ImplementationMap und verwendet die Implementierung,
auf die vom Schlüssel
der Abbildung gezeigt wird, bis der Verkäufer, das Modell und der eindeutige
Identifizierer der Vorrichtung unter Verwendung einer gegebenen
Implementierung erhalten sind.
-
46 zeigt den Ablaufplan der Funktion obtainStatus()
von CHTTPProtocol, die die Abbildung m_VendorModelSupportMap verwendet.
Die geeignete Implementierung von HTTP wird auf der Basis des eingegebenen
Verkäufers
und Modells verwendet.
-
47 zeigt das Paketdiagramm des FirstHTTPImplementation-Pakets.
Dieses Paket implementiert HTTP, um Informationen von der Webseite
einer Vorrichtung zu erhalten, wie z. B. der Webseite von 38A. Die Klasse CFirstHTTPImplementation ist die
Schnittstelle für
dieses Paket und managt die anderen Klassen und Pakete, um ein Verfahren
zum Erhalten von Informationen von den Webseiten einer Vorrichtung
zu implementieren. CFirstHTTPImplementation ist eine Klasse, die
von CAbsHTTPImplementation abgeleitet ist. Der Anhang 1 zeigt die
Funktionen, definierten Typen und Klassenattribute von CFirstHTTPImplementation.
Das FirstHTTPODBC-Paket und HTTP HTMLTool-Paket ist vorstehend im
Hinblick auf 41 beschrieben. Die Klasse
CFirstHTMLProcessor verarbeitet die Webseite einer Vorrichtung,
um die gewünschten
Informationen zu erhalten. CFirstHTMLProcessor enthält ein Verfahren
zum Verarbeiten des Texts der Webseiten eines speziellen Formats,
um die gewünschten
Informationen zu erhalten. Der Anhang 3 zeigt die Funktionen, definierten
Typen und Klassenattribute von CFirstHTMLProcessor.
-
48 zeigt das Paketdiagramm des SecondHTTPImplementation-Pakets.
Dieses Paket implementiert HTTP, um Informationen von der Webseite
einer Vorrichtung zu erhalten, wie z. B. der Webseite von 38B und 38C.
Insbesondere behandelt dieses Paket Webseiten, in denen das Schlüsselwort
zum Auffinden der Informationen mehrere Male in einer Webseite vorkommt.
Die Klasse CSecondHTTPImplementation ist die Schnittstelle für dieses
Paket und managt die anderen Klassen und Pakete, um ein anderes
Verfahren zum Erhalten von Informationen von den Webseiten einer
Vorrichtung zu implementieren. CSecondHTTPImplementation ist eine
Klasse, die von CAbsHTTPImplementation abgeleitet ist. Der Anhang
2 zeigt die Funktionen, definierten Typen und Klassenattribute von
CSecondHTTPImplementation. Das SecondHTTPODBC-Paket und HTTP HTMLTool-Paket
ist vorstehend im Hinblick auf 41 beschrieben.
Die Klasse CSecondHTMLProcessor verarbeitet die Webseite einer Vorrichtung,
um die gewünschten
Informationen zu erhalten. Diese Klasse enthält ein Verfahren zum Verarbeiten
des Texts der Webseiten eines speziellen Formats, um die gewünschten
Informationen zu erhalten. Insbesondere behandelt diese Klasse Webseiten,
in denen das Schlüsselwort
zum Auffinden der Informationen an mehreren Stellen auf den Webseiten
vorkommt. Der Anhang 4 zeigt die Funktionen, definierten Typen und
Klassenattribute von CSecondHTMLProcessor.
-
49 zeigt die Tabellen der Unterstützungsdatenbank
für die
erste Implementierung von HTTP, um Informationen von den Webseiten
von Vorrichtungen wie z. B. der Webseite von 38A zu
erhalten. Diese Tabellen entsprechen den in 21 gezeigten
Tabellen mit zwei Änderungen.
Erstens wurden alle Tabellennamen außer EnumCorrespondence von 21 so geändert,
dass "_1" an ihren Namen angehängt ist.
Das "_1" wird verwendet,
um anzugeben, dass die Tabellen der ersten Implementierung von HTTP,
um Informationen von den Vorrichtungen zu erhalten, entsprechen.
Zweitens ist die HTTPVendorModel_1-Tabelle nicht eindeutig anderen
Tabellen zugeordnet, da dieselben Verkäufer mehr als eine Webseite
für das
Modell haben können.
-
50 zeigt die Tabellen der Unterstützungsdatenbank
für die
zweite Implementierung von HTTP, um Informationen von den Webseiten
von Vorrichtungen wie z. B. den Webseiten von 38B und 38C zu erhalten.
Diese Tabellen besitzen dieselben Namen wie die Tabellen der Unterstützungsdatenbank
von 49, außer dass sich 2 am Ende des
Namens anstelle von 1 befindet, und des Zusatzes von "Vorbedingung" zum HTTPStatusKeyValue-Tabellennamen.
Eine "2" wird verwendet,
um anzugeben, dass die Tabellen der zweiten Implementierung von
HTTP entsprechen. Die Tabellen der zweiten Implementierung unterscheiden
sich von den Tabellen der ersten Implementierung mit dem Zusatz
des sPrecondition-Eintrages zu drei Tabellen, HTTPVendorModel_2,
HTTPUniqueIDWebPage_2 und HTTPPreconditionStatusKeyValue_2. Der sPrecondition-Eintrag
wird zum Erhalten der Informationen von der Webseite verwendet,
wenn das Schlüsselwort
zum Auffinden der gewünschten
Informationen mehr als einmal auf der Webseite erscheint. Die Verwendung
von sPrecondition wird nachstehend genauer beschrieben. Wenn sPrecondition
leer ist, dann ist der Prozess der zweiten Implementierung zum Erhalten
der gewünschten
Informationen derselbe wie der Prozess der ersten Implementierung
zum Erhalten der gewünschten
Informationen.
-
Eine
Beschreibung von "Vorbedingung" wird gegeben. Wie
mit Bezug auf 38B beschrieben, wird in dem
Fall, in dem die restliche Lebensdauer der Abbildungseinheit "Schwarz" als Statusinformationen
erhalten werden soll, gemäß dem Stand
der Technik ein Wort "Schwarz" einfach auf einer
Webseite gesucht. Wenn das System das erste "Schwarz" von "Tonerkassette" findet, erhält das System irrtümlich einen
Wert "Ok", der dem ersten "Schwarz" der "Tonerkassette" entspricht. Wenn
ein Wort "Schwarz" mit den Worten "Abbildungseinheiten" als Vorbedingung
gesucht wird, kann das System die gewünschten Statusinformationen "100%" erhalten.
-
51 zeigt das Klassendiagramm für das FirstHTTPODBC-Paket.
Dieses Paket gewährt
einen Zugriff auf Informationen in der Unterstützungsdatenbank, die vom FirstHTTPImplementation-Paket
von 47 verwendet werden, um Informationen
von den Webseiten einer Vorrichtung zu erhalten. Die CHTTODBC_1-Klasse
ist die Schnittstelle für
dieses Paket und managt die anderen Klassen, um die geeigneten Informationen
von den Tabellen der Unterstützungsdatenbank
zu erhalten. Die CXXXData_1-Klasse und ihre entsprechende CXXXTable_1-Klasse
gewähren
einen Zugriff auf die XXX-Tabelle der Unterstützungsdatenbank von 49, um Informationen von der Tabelle zu erhalten.
-
52 zeigt das Klassendiagramm für das SecondHTTPODBC-Paket.
Dieses Paket gewährt
einen Zugriff auf Informationen in der Unterstützungsdatenbank, die vom SecondHTTPIMplementation-Paket
von 48 verwendet werden, um Informationen
von den Webseiten einer Vorrichtung zu erhalten. Die CHTTPODBC_2-Klasse
ist die Schnittstelle zu diesem Paket und managt die anderen Klassen,
um die geeigneten Informationen von den Tabellen der Unterstützungsdatenbank
zu erhalten. Die CXXXData_2-Klasse und ihre entsprechende CXXXTable_2-Klasse
gewähren
Zugriff auf die XXX-Tabelle der Unterstützungsdatenbank von 50, um Informationen von der Tabelle zu erhalten.
-
Das
vom FirstHTTPImplementation-Paket verwendete Verfahren, um die gewünschten
Informationen von den Webseiten einer Vorrichtung zu erhalten, ist
in der verwandten Anmeldung Seriennr. 10/328 026 mit dem Titel "Method of using Vectors
of Structures for Extracting Information from the Web Pages of Remotely Monitored
Devices", eingereicht
am 26. Dezember 2002, beschrieben, deren Inhalte durch den Hinweis
hierin aufgenommen werden. Das Verfahren des FirsthTTPImplementation-Pakets verwendet
das erste Auftreten des Schlüsselworts,
um die gewünschten
Informationen aufzufinden, was für
einige der gewünschten
Informationen falsch sein könnte.
-
Wie
vorstehend erörtert,
wurde zum Angehen von Problemen, die die erste HTTP-Implementierung nicht
handhaben konnte, ein neues System entworfen, um das Folgende durchzuführen: (1)
Hinzufügen
eines neuen Verfahrens zum korrekten Erhalten der gewünschten
Informationen von den Webseiten, auf denen mehr als ein Auftreten
des Schlüsselworts
besteht, das verwendet wird, um die gewünschten Informationen aufzufinden;
(2) Ermöglichen
des Hinzufügens
von neuen Verfahren, wenn neue Webseiten vorhanden sind, in denen
die zwei Verfahren (FirstHTTPImplementation und SecondHTTPImplementation)
die gewünschten Informationen
nicht erhalten können;
und (3) Abwärtskompatibilität, so dass
das System immer noch die gewünschten
Informationen von den Webseiten von Vorrichtungen erhalten können sollte,
von denen das System sie vorher erhielt.
-
Die
Konstruktion des HTTP-Pakets gemäß 40 und 41 führt diese
gewünschten
Merkmale durch. Das Hinzufügen
des SecondHTTPImplementation-Pakets in 41 und
das Hinzufügen
der Tabellen in 50 zur Unterstützungsdatenbank,
fügte eine
Implementierung von HTTP hinzu, um Informationen von den Webseiten
einer Vorrichtung zu erhalten, auf denen mehrere Vorkommnisse des
Schlüsselworts
waren, um die gewünschten
Informationen aufzufinden. Die abstrakte Klasse CAbsHTT-PImplementation von 41 und die Paketstruktur von 40 ermöglichen
das Hinzufügen
von neuen Implementierungen von HTTP, um Informationen von den Webseiten
einer Vorrichtung zu erhalten. Neue Tabellen werden zur Datenbank
hinzugefügt,
um Informationen darüber
vorzusehen, wie Informationen von den Webseiten zu erhalten sind.
Das CHTTPProtocol, wie in 41 gezeigt,
managt und verwendet die geeignete Implementierung von HTTP, um Informationen
von den Webseiten zu erhalten. Die Ablaufpläne in 45 und 46 beschreiben,
wie CHTTPProtocol die verschiedenen Implementierungen von HTTP managt
und verwendet, um Informationen zu erhalten. Ausführungsformen
des vorliegenden Systems enthalten und verwenden verschiedene Implementierungen
von HTTP, so dass sie Informationen von vorherigen Webseiten erhalten
können,
zusammen mit neuen Implementierungen von HTTP für neue Webseiten.
-
53 zeigt die Abbildungsstruktur m_VendorModelWebInfoMap
von CSecondHTTPImplementation, die von der zweiten Implementierung
von HTTP verwendet wird, um Statusinformationen einer Vorrichtung
von den Vorrichtungswebseiten zu erhalten. Der Schlüssel der
Abbildung ist ein String des Namens des Verkäufers der Vorrichtung. Der
Wert der Abbildung ist eine andere Abbildung, die Informationen
enthält,
die verwendet werden, um Statusinformationen von den Webseiten der
Vor richtung eines gegebenen Modells zu erhalten. Der Schlüssel der
inneren Abbildung ist ein String für den Namen des Modells der
Vorrichtung und sein Wert ist ein Vektor von Strukturen, SWebPageInfo,
der Informationen über
die Webseiten und, wie Statusinformationen von den Webseiten zu
erhalten sind, enthält.
Die Struktur SWebPageInfo enthält
die Struktur SPreconKeyValueInfo, die alle Informationen bereitstellt,
die erforderlich sind, um einen einzelnen Informationsteil von einer
Webseite zu erhalten. SPreconKeyValueInfo ist ähnlich zur Struktur SKeyValueInfo,
die verwendet wird, um einen einzelnen Informationsteil von einer
Webseite unter Verwendung der ersten Implementierung von HTTP zu
erhalten, mit dem Zusatz des Stringattributs SPrecondition. Der
Anhang 5 zeigt die Strukturspezifikation von SPreconKeyValueInfo.
Es ist zu beachten, dass die erste Implementierung von HTTP die
Struktur SKeyValueInfo verwendet und die zweite Implementierung
von HTTP die Struktur SPreconKeyValueInfo verwendet. Die Abbildungsstruktur
ist mit Informationen von den Tabellen der Unterstützungsdatenbank
für die zweite
Implementierung von HTTP belegt, wie in 50 beschrieben.
Die CSecondHTTPImplementation verwendet das SecondHTTPODBC-Paket,
um Informationen von den Tabellen der Datenbank zu erhalten.
-
54 zeigt die Abbildungsstruktur m_ModelWebInfoForVendorMap
von CSecondHTTPImplementation, die von der zweiten Implementierung
von HTTP verwendet wird, um das Modell der Vorrichtung von den Vorrichtungswebseiten
zu erhalten. Der Schlüssel
für die
Abbildung ist ein String für
den Namen des Verkäufers
der Vorrichtung. Der Wert ist ein Vektor von Paaren, die Informationen
für alle
unterstützten
Modelle des Verkäufers über die
Webseite, die den Modellnamen enthält, und wie der Modellname
zu erhalten ist, enthält. Die
Abbildungsstruktur ist mit Informationen von den Tabellen der Unterstützungsdatenbank
für die
zweite Implementierung von HTTP belegt, wie in 50 beschrieben.
-
55 zeigt die Abbildungsstruktur m_VendorModelUniqueIDInfoMap
von CSecondHTTPImplementation, die von der zweiten Implementierung
von HTTP verwendet wird, um den eindeutigen Identifizierer der Vorrichtung
von der Vorrichtungswebseite zu erhalten. Der eindeutige Identifizierer
ist ein String, der die Vorrichtung identifiziert, z. B. die Seriennummer
oder MAC-Adresse. Der Schlüssel
für die
Abbildung ist ein String für
den Namen des Verkäufers
der Vorrichtung. Der Wert ist eine andere Abbildung, die Informationen
enthält, die
verwendet werden, um den eindeutigen Identifizierer für das Modell
der Vorrichtung zu erhalten. Der Schlüssel für die innere Abbildung ist
ein String für
den Namen des Modells und der Wert ist die Struktur SWebPageInfo,
die Informationen über
die Webseite und, wie der eindeutige Identifi zierer von der Webseite
zu erhalten ist, enthält.
Die Abbildungsstruktur ist mit Informationen von den Tabellen der
Unterstützungsdatenbank für die zweite
Implementierung von HTTP belegt, wie in 50 beschrieben.
-
56 ist ein Ablaufplan der Funktion obtainStatus()
von CSecondHTTPImplementation, die verwendet wird, um Statusinformationen
von den Webseiten einer Vorrichtung unter Verwendung der Abbildungsstruktur
m_VendorModelWebInfoMap zu erhalten. Die Funktion selectEntries(),
die in obtainStatus() aufgerufen wird, bestimmt, welche Statusinformationen
von der Vorrichtung über
HTTP zu erhalten sind. Bestimmte Informationen werden entsprechend
dem Verkäufer
und Modell der Vorrichtung erhalten. selectEntries() gibt einen
Vektor loc_InputVector zurück,
der Informationen darüber
enthält,
welche Informationen zu erhalten sind. Einige Informationen können bereits
in der Statusabbildung inOut_Data existieren. Wenn in diesem Fall
die Statusinformationen, die durch HTTP erhalten werden, eine höhere Priorität (oder
ein höheres
Gewicht) besitzen als das, was sich in der Statusabbildung befindet,
setzt selectEntries() diese Informationen in den Vektor loc_inputVector,
um sicherzustellen, dass die Statusinformationen durch HTTP erhalten
werden. obtainDataFromHTMLFile(), das in obtainStatus() aufgerufen
wird, erhält
alle Statusinformationen für
die Webseite. obtainDataFromHTMLFile() verwendet ein Objekt der
Klasse CSecondHTMLProcessor, um die Daten von der Webseite zu verarbeiten,
um die Statusinformationen zu erhalten. Das von dieser Funktion
verwendete Verfahren ist ähnlich
zu dem von der ersten Implementierung von HTTP verwendeten. Es unterscheidet
sich darin, dass die zweite Implementierung die Struktur SPreconKeyValueInfo
verwendet, wohingegen die erste Implementierung die Struktur SKeyValueInfo
verwendet.
-
57 und 58 zeigen
die Vektorstrukturen m_KeyValueVector und m_LocateValueVector, die
in CSecondHTMLProcessor verwendet werden, um die Daten von den Webseiten
zu verarbeiten, um die gewünschten
Informationen unter Verwendung der zweiten Implementierung von HTTP
zu erhalten. In 57 enthält der Vektor m_KeyValueVector
Informationen darüber,
wie jeder Typ von Statusinformationen von der Webseite einer überwachten
Vorrichtung zu erhalten ist. Die Struktur SPreconkeyValueInfo stellt
Informationen bereit, die verwendet werden, um die Statusinformationen
aufzufinden und von der Webseite zu extrahieren. In 58 wird der Vektor m_LocateValueVector bei der
Verarbeitung der von den Webseiten erhaltenen Informationen zum
Extrahieren der Statusinformationen verwendet. Die zwei Vektoren
werden zusammen im Prozess des Extrahierens der Statusinformationen
verwendet. Es besteht eine Eins-zu-Eins-Entsprechung zwischen m_KeyValueVector
und m_LocateValueVector. Der erste Eintrag in m_KeyValueVector wird
zusammen mit dem ersten Eintrag in m_LocateValueVector verwendet,
um die Statusinformationen zu erhalten, und so weiter mit den restlichen
Einträgen
in den zwei Vektoren.
-
Die
Vektorstrukturen von 57 und 58 sind
zu den Vektorstrukturen ähnlich,
die für
die erste Implementierung von HTTP verwendet werden, die in der
verwandten Anmeldung Nr. 10/328 026 ("der '026-Anmeldung") beschrieben ist. 59 ist eine modifizierte Version von 26 der '026-Anmeldung.
Einige der Änderungen
von der '026-Anmeldung
sind Änderungen
im Namen der Struktur (unter Verwendung von S anstelle von C) und Änderungen
an den Namen der Attributelemente von SKeyValueInfo. CFirstHTMLProcessor verwendet
diese zwei Vektorstrukturen zum Erhalten der Statusinformationen
von der Webseite unter Verwendung des in der '026-Anmeldung
beschriebenen Verfahrens, deren Inhalte durch den Hinweis hierin
aufgenommen werden.
-
60 zeigt den Ablaufplan der Funktion initDataSearchInfo()
von CSecondHTMLProcessor, die zum Festlegen der Vektorstrukturen
von 57 und 58 verwendet
wird. Diese Funktion wird durch die Funktion obtainDataFromHTMLFile()
von CSecondHTMLProcessor aufgerufen, bevor die Statusinformationen
von der Webseite erhalten werden.
-
Für jedes
SPreconKeyValueInfo im Vektor m_KeyValueVector ist ein SLocateValueInfo
in den Vektor m_LocateValueVector gesetzt. Das m_bPreconditionOK-Attribut von SLocateValueInfo
wird auf wahr gesetzt, wenn der m_sPrecondition-Attributstring von SPreconKeyValueInfo
leer ist, wodurch angegeben wird, dass keine Vorbedingung besteht,
um die Statusinformationen aufzufinden. Wenn der m_sPrecondition-String
nicht leer ist, dann wird m_bPreconditionOK auf falsch gesetzt.
-
Analog
zur ersten Implementierung von HTTP erhält die zweite Implementierung
von HTTP Statusinformationen vom Text (Nicht-Tag-Elemente) des HTML-Dokuments.
Der Anhang 6 zeigt einen Teil des HTML-Dokuments für die Webseite
entsprechend 38B. Der Text des HTML-Dokuments
ist fett. 61 ist ein Ablaufplan zur Verarbeitung
des Texts durch die Funktion searchAndObtainDataFromValue() von
CSecondHTMLProcessor zum Erhalten der Statusinformationen. Diese
Funktion verwendet die Vektorstrukturen von 57 und 58.
Diese Funktion wird durch die Funktion obtainDataFormatHTMLFile()
von CSecondHTMLProcessor aufgerufen, wenn Text (ein Nicht-Tag-Element)
von der Webseite erhalten wird. Der Prozess von searchAndObtainDataFromValue()
behandelt die Situation, in der der Schlüsselwert zum Auffinden der Statusinformationen
mehrere Male vorkommt. Wenn dies der Fall ist, wird ein Vorbedingungsstring
verwendet. Der Prozess sucht zuerst nach einem Vorbedingungsstring.
Sobald der Vorbedingungsstring gefunden ist, wird eine Suche nach
dem Schlüsselwert
durchgeführt.
Sobald der Schlüsselwert
gefunden ist, können
die Statusinformationen extrahiert werden. Jeder Typ von Statusinformationen
für denselben
Schlüsselwert
auf einer Webseite weist einen eindeutigen Vorbedingungsstring auf.
Unter Verwendung des Beispiels im Anhang 6 wird der Schlüsselwert
von "Schwarz" verwendet, um den
Status der Kassette für
schwarzen Toner und der schwarzen Abbildungseinheit zu finden. Ohne
Verwendung einer Vorbedingung wäre "Ok" der Status für sowohl
die Kassette für
schwarzen Toner als auch die schwarze Abbildungseinheit. Unter Verwendung
einer Vorbedingung von "Tonerkassetten" für den Status
der Kassette für
schwarzen Toner und "Abbildungseinheiten" für den Status
der schwarzen Abbildungseinheit werden die korrekten Statusinformationen
für beide
erhalten.
-
Wenn
m_sPrecondition von SPreconKeyValueInfo leer ist, dann ist sein
entsprechendes m_bPreconditionOK wahr und der Prozess des Erhaltens
der Statusinformationen für
SPreconKeyValueInfo ist exakt derselbe wie für das Erhalten der Statusinformationen
unter Verwendung der ersten Implementierung von HTTP.
-
Eine
Ausführungsform
des vorliegenden Systems implementiert sowohl die SNMP-Get- als auch -GetNext-Anforderung,
um alle Informationen in der MIB der Vorrichtung zu erhalten. Eine
vorherige Ausführungsform
durch die vorliegenden Erfinder verwendete nur die SNMP-GetNext-Anforderung,
die die Fähigkeit
des Systems auf den Zugriff auf alle Informationen in der MIB der
Vorrichtung begrenzte. Im vorherigen System enthielt die Datenbank
den String für
den Objektidentifizierer, um festzustellen, welche Informationen
von der MIB der Vorrichtung zu extrahieren sind. In einer bevorzugten
Ausführungsform
enthält
der String für
den Objektidentifizierer Informationen über den Typ der zu stellenden
SNMP-Anforderung zusammen mit dem Objektidentifizierer. Dem Objektidentifizierer
im String geht ein "G" voran, um anzugeben,
dass die Get-Anforderung gestellt werden soll, und ein "N", um anzugeben, dass die GetNext-Anforderung
gestellt werden soll. Wenn sich kein Buchstabe vor dem Objektidentifizierer
befindet, dann wird die Vorgabe-GetNext-Anforderung gestellt. Wenn
irgendein anderer Buchstabe als "G" oder "N" vor dem Objektidentifizierer liegt,
dann wird keine Anforderung gestellt. Wenn der String für den Objektidenti fizierer
leer ist oder nur den Buchstaben "N" enthält, dann
wird die GetNext-Anforderung
gestellt.
-
62 zeigt Mustereinträge in einer Tabelle der Unterstützungsdatenbank,
die verwendet wird, um Informationen von Vorrichtungen von verschiedenen
Verkäufern
und Modellen unter Verwendung von SNMP zu erhalten.
-
63 zeigt das Klassendiagramm des SNMP-Pakets,
das auf dem in 24 gezeigten Paketdiagramm
basiert. Es ist zu beachten, dass der Typ von Anforderung in den
String für
den Objektidentifizierer eingebettet ist.
-
64 zeigt das Klassendiagramm des SNMPaccess-Pakets.
Die CSNMPaccess-Klasse
ist die Schnittstelle für
dieses Paket und bestimmt den Typ von zu verwendender SNMP-Anforderung,
um die Daten zu erhalten. Die Klassen CSNMP, CSnmpSession und CSnmpUtility
implementieren das SNMP-Protokoll, um Informationen von der MIB
der Vorrichtung zu erhalten.
-
65 ist ein Ablaufplan zur Verarbeitung der SNMP-Anforderung
für einen
String, der Informationen über
den SNMP-Anforderungstyp und den Objektidentifizierer enthält. Der
Prozess folgt der Funktion obtainValue() von CSNMPaccess. obtainValueFromXXXRequest()
weist einen Wert out_sValue zu, wenn die SNMP-Anforderung erfolgreich ist, wobei XXX
Get oder GetNext ist. Es ist möglich,
dass ein leerer String für out_sValue
zurückgegeben
wird.
-
Obwohl
gezeigt ist, dass die vorliegende Erfindung wenige Vorrichtungen
umfasst, die eine Überwachung
erfordern und die mit einem Netz verbunden sind, ist zu erkennen,
dass eine beliebige Anzahl von Vorrichtungen mit dem Netz verbunden
sein kann, ohne vom Schutzbereich der Erfindung abzuweichen. Die
vorliegende Erfindung kann auch in einer Heimumgebung angewendet
werden, in der verschiedene Vorrichtungen überwacht und gesteuert werden
müssen.
-
Ausführungsformen
der vorliegenden Erfindung ermöglichen
die Überwachung
der verschiedenen Vorrichtungen in einer Umgebung mehrerer Verkäufer und
erleichtern ferner das Abrufen und Anzeigen von detaillierten Informationen
in einer für
den Benutzer verständlichen
oder benutzerfreundlichen Weise selbst ohne spezielle Informationen
einer privaten Managementinformationsbasis (MIB). Ferner können die
Informationen unter Verwendung von verschiedenen Verfahren wie z.
B. SMTP, FTP oder Web Services umverteilt werden.
-
Die
Steuereinheit der vorliegenden Erfindung kann unter Verwendung eines
herkömmlichen
digitalen Universalcomputers oder eines Mikroprozessors, der gemäß den Lehren
der vorliegenden Spezifikation programmiert ist, zweckmäßig implementiert
werden, wie für
Computerfachleute zu erkennen ist. Eine geeignete Softwarecodierung
kann von geschulten Programmierern leicht auf der Basis der Lehren
der vorliegenden Offenbarung hergestellt werden, wie für Softwarefachleute
ersichtlich ist. Die Erfindung kann auch durch die Vorbereitung
von anwendungsspezifischen integrierten Schaltungen oder durch Verbinden
eines geeigneten Netzes von herkömmlichen
Komponentenschaltungen miteinander implementiert werden, wie für Fachleute
leicht ersichtlich ist.
-
Die
vorliegende Erfindung umfasst ein Computerprogrammprodukt, das sich
auf einem Speichermedium befindet, mit Befehlen, die verwendet werden
können,
um einen Computer zu programmieren, um einen Prozess der Erfindung
durchzuführen.
Das Speichermedium kann umfassen, ist jedoch nicht begrenzt auf
eine beliebige Art von Platte, einschließlich Disketten, optischen
Platten, CD-ROMs und magnetooptischen Platten, ROMs, RAMs, EPROMs,
EEPROMs, magnetische oder optische Karten oder eine beliebige Art
von Medien, die zum Speichern von elektronischen Befehlen geeignet
sind.
-
Zahlreiche
Modifikationen und Veränderungen
der vorliegenden Erfindung sind angesichts der obigen Lehren möglich. Daher
soll es selbstverständlich
sein, dass innerhalb des Schutzbereichs der beigefügten Ansprüche die
Erfindung anders als speziell hierin beschriebenen ausgeführt werden
kann. Anhang
1. CFirstHTTPImplementation-Klassenspezifikation
Appendix
2. CSecondHTTPImplementation-Klassenspezifikation
Appendix
3. CFirstHTMLProcessor-Klassenspezifikation
Appendix
4. CSecondHTMLProcessor-Klassenspezifikation
Appendix
5. SPreconKeyValueInfo-Strukturspezifikation
Appendix
6. Teil des HTML-Dokuments für
die Webseite von Fig. 38B