-
HINTERGRUND DER ERFINDUNG
-
GEBIET DER ERFINDUNG
-
Diese
Erfindung betrifft die Überwachung
von Einrichtungen, die mit einem Netz verbunden sind. Insbesondere
betrifft sie ein Verfahren, ein System und ein Computerprogrammprodukt
für die
Fernüberwachung von
mit dem Netz verbundenen Einrichtungen 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 Vielzahl
von Hardware-Komponenten/Einrichtungen, die miteinander kommunizieren.
Das Computersystem kann ein eigenständiger Typ oder ein vernetzter
Typ sein. In einem Computersystem vom vernetzten Typ sind eine Vielzahl
von unterschiedlichen Einrichtungen mit einem Netz verbunden und
folglich wird eine Kommunikation zwischen diesen unterschiedlichen
Einrichtungen über
das Netz ermöglicht.
-
Ferner
muss die Software zum Betreiben der Hardware-Einrichtungen konfiguriert
sein, um die Kommunikation zwischen den Hardware-Einrichtungen zu
ermöglichen,
so dass den Hardware-Einrichtungen ermöglicht wird, in Zusammenarbeit
zu funktionieren. Um eine solche Kommunikation zu erleichtern, ist
es ferner auch erwünscht,
dass Hardware-Einrichtungen überwacht
werden und der Status jeder Hardware-Einrichtung identifiziert wird,
um sicherzustellen, dass jede Hardware-Einrichtung in einer effizienten Weise
funktioniert.
-
Das
Dokument US 2003/084176 offenbart den Oberbegriff des Systemanspruchs
11.
-
Für die Zwecke
dieser Patentanmeldung hat der Erfinder festgestellt, dass eine
Hardware-Einrichtung, die die Vielzahl von unterschiedlichen Einrichtungen
oder Hardware-Einrichtungen steuert, konfiguriert oder überwacht,
als Überwachungseinrichtung
bezeichnet werden würde
und die Hardware-Einrichtungen, die durch die Überwachungseinrichtung gesteuert,
konfiguriert oder überwacht
werden, als "überwachte
Einrichtungen" bezeichnet
werden würden.
-
Für Hardware-Einrichtungen,
die sich in einem Netz befinden, ist es erwünscht, dass diese Einrichtungen
auf Wartung, Verwendung und andere Zwecke überwacht werden. Angesichts
von Herstellerunterschieden in Bezug auf die Hardware-Einrichtungen
und Schnittstellen kann es jedoch für eine Überwachungseinrichtung schwierig
sein, mit verschiedenen anderen Einrichtungen, die mit einem Netz
verbunden sind, zu kommunizieren. Ein solcher Nachteil verhindert
höchstwahrscheinlich,
dass Netzadministratoren entscheidende Informationen über die
Leistung und die Effizienz der mit dem Netz verbundenen Einrichtungen
erhalten.
-
Das
Simple Network Management Protocol (SNMP) ist heute tatsächlich ein
Industriestandard für
die Überwachung
und das Management von Einrichtungen in Datenkommunikationsnetzen,
Telekommunikationssystemen und anderen global erreichbaren Einrichtungen.
Praktisch erwartet jede Organisation, die mit Computern und zugehörigen Vorrichtungen
umgeht, dass sie jede derartige Einrichtung über lokale und weiträumige Netze
zentral überwachen,
diagnostizieren und konfigurieren kann. SNMP ist das Protokoll,
das diese Wechselwirkung ermöglicht.
-
Damit
eine Einrichtung auf SNMP-Anforderungen antwortet, ist es erwünscht, die
Einrichtung mit der Software auszustatten, die ermöglicht,
dass sie eine SNMP-Anforderung
korrekt interpretiert, die von dieser Anforderung angeforderten
Handlungen durchführt
und eine SNMP-Antwort erzeugt. 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 Management-Informationsbank (MIB) bezeichnet.
Eine MIB kann auch eine Datenbank mit Informationen in Bezug auf
die Überwachung
von Einrichtungen 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 Einrichtungen ist schwierig, da private MIBs Werte umfassen,
die ohne einen gültigen
Schlüssel
schwierig zu entschlüsseln
sind. Eine Firma, die SNMP für die Überwachung
von verschiede nen Einrichtungen, die mit ihrem Netz verbunden sind,
verwendet, erzeugt einen eindeutigen Identifizierer/Schlüssel, der
als firmeneigene Information der Firma aufrechterhalten wird. Größtenteils
werden die Ergebnisse als binäre
oder ganzzahlige Werte angezeigt. Folglich misslingt es unter Verwendung
von SNMP Ergebnissen, die von den Einrichtungen empfangen werden,
die überwacht
werden ("überwachte
Einrichtungen"),
einen Anwender mit dem Status der überwachten Einrichtungen in
einer für
den Anwender verständlichen
Weise zu versehen.
-
Unter
Verwendung von SNMP ist es ferner für jemanden schwierig, detaillierte
Informationen über
eine überwachte
Einrichtung 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 verloren gegangene Pakete versagen. Wenn
die Überwachung
einer Einrichtung unter Verwendung von mehreren Protokollen der
Reihe nach in Reaktion auf einen Ausfall durchgeführt wird,
können
folglich einige Informationen, die von einer gegebenen Einrichtung
unter Verwendung der mehreren Protokolle extrahiert werden, für jedes
Protokoll dupliziert werden. Wenn die Extraktion von Daten von der
Einrichtung in solchen Situationen nicht zweckmäßig 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 Informationen, die durch ein Protokoll erhalten werden, für die Überwachungseinrichtung
nützlicher
sein als diejenigen, die über
ein anderes Protokoll erhalten werden.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Das
System und Verfahren der vorliegenden Erfindung wenden sich Lösungen für die vorstehend identifizierten
Probleme zu, indem sie die Überwachung
von Einrichtungen ermöglichen,
die mit einem Netz verbunden sind. Folglich wird ein Verfahren zum Überwachen
einer Einrichtung unter unterschiedlichen Einrichtungen, die kommunikativ
mit einem Netz verbunden sind, beschrieben.
-
Das
Verfahren umfasst das Zugreifen auf eine erste Datenbank über ein
Hardware-Zugriffsmodul, wobei die erste Datenbank so konfiguriert
ist, dass sie eine Vielzahl von Kommunikationsprotokollen unterstützt. Die
erste Datenbank ist mit Informationen gespeichert, die von der Vielzahl
von Kommunikationsprotokollen verwendet wird, um verschiedene Informationen
wie z. B. Hersteller- und Modellinformationen einer überwachten
Einrichtung zu erhalten. Ein Kommunikationsprotokoll wird unter
einer Vielzahl von Kommunikationsprotokollen ausgewählt und
das ausgewählte
Kommunikationsprotokoll ist dazu konfiguriert, Statusinformationen von
der überwachten
Einrichtung zu empfangen. Das Verfahren umfasst ferner das Zugreifen
auf die überwachte
Einrichtung unter Verwendung des ausgewählten Kommunikationsprotokolls
und von Informationen von der ersten Datenbank, das Empfangen von
Statusinformationen von der Vorrichtung, auf die zugegriffen wird,
und das Speichern der empfangenen Statusinformationen in einer zweiten
Datenbank (DeviceODBC).
-
In
einer weiteren Ausführungsform
schafft die vorliegende Erfindung ein Verfahren zum Überwachen einer
Einrichtung unter unterschiedlichen Einrichtungen, die kommunikativ
mit einem Netz gekoppelt sind. Eine Vielzahl von Kommunikationsprotokollen
kann verwendet werden, um Informationen von einer überwachten Einrichtung
zurückzugewinnen.
Ein SNMP-Protokoll wird beispielsweise zuerst ausgewählt, um
auf die überwachte
Einrichtung zuzugreifen, und Einrichtungsinformationen, die so konfiguriert
sind, dass sie unter Verwendung des SNMP-Protokolls effizient zurückgewonnen
werden können,
werden erhalten. Anschließend werden
ein HTTP- und ein FTP-Protokoll ausgewählt, um Informationen zu erhalten,
die zur effizienten Zurückgewinnung
unter Verwendung des SNMP-Protokolls außer Stande waren, wenn die
Einrichtung die zusätzlichen
Protokolle unterstützt.
Die Auswahl von Protokollen wird durch einen Protokoll-Manager in
Verbindung mit in einer Datenbank gespeicherten Unterstützungsinformationen
durchgeführt.
-
In
der vorliegenden Erfindung ermöglicht
ein Überwachungssystem
die Überwachung
von mindestens einer Einrichtung (überwachten Einrichtung), die
mit einem Netz, wie beispielsweise einem LAN oder WAN, verbunden
ist. Die überwachte
Einrichtung ist so konfiguriert, dass sie eine eindeutige IP-Adresse
besitzt. Die IP-Adresse,
die der überwachten
Einrichtung zugewiesen ist, und die Details des Verkäufers/Herstellers
für die überwachte
Einrichtung werden in einer Datenbank gespeichert. Durch Abtasten
des Netzes und Abfragen der Einrichtungen kann die IP-Adresse der
Einrichtungen erhalten werden. Solche Verfahren sind bekannt. Daher wird
angenommen, dass die IP-Adressen der zu überwachenden Einrich tungen
bereits erfasst und in einer Datenbank gespeichert sind.
-
Die
vorliegende Erfindung gibt an, wie erforderliche Informationen aus
den HTML-Informationen,
die von einer überwachten
Einrichtung empfangen werden, extrahiert werden sollen. Sobald auf
einen Web-Seiten-Ort der überwachten
Einrichtung zugegriffen ist (d. h. über die IP-Adresse und den
festgelegten Port), wird eine der überwachten Einrichtung entsprechende
spezifische Web-Seite angezeigt. Informationen in der Web-Seite
liegen in Form eines Schlüssels
und von Wertepaaren vor. Das Tonerniveau kann beispielsweise als "Schwarz 100 %" in der Farbdrucker-Web-Seite
angezeigt werden. Ein HTML/XML-Analysealgorithmus wird verwendet,
um die Seite zu analysieren, um erforderliche Informationen von
den Informationen in der Web-Seite zurückzugewinnen. Die erforderlichen
Informationen und Parameterwerte, die von der Web-Seite unter Verwendung
des HTML/XML-Analysealgorithmus extrahiert werden, werden in der
DeviceODBC-Datenbank
gespeichert.
-
In
einer Ausführungsform
der vorliegenden Erfindung wird ein Verfahren zum Überwachen
einer mit einem Netz verbundenen Einrichtung unter unterschiedlichen
Einrichtungen beschrieben. Das Verfahren umfasst das Zugreifen auf
eine erste Datenbank über
ein Hardware-Zugriffsmodul, wobei die erste Datenbank dazu konfiguriert
ist, eine Vielzahl von Kommunikationsprotokollen zu unterstützen. Die
erste Datenbank wird mit Informationen gespeichert, die von der
Vielzahl von Kommunikationsprotokollen verwendet werden, um verschiedene
Informationen, einschließlich
der Hersteller- und Modellinformationen einer überwachten Einrichtung, zu
bestimmen. Ein Kommunikationsprotokoll wird aus einer Vielzahl von
Kommunikationsprotokollen ausgewählt,
wobei das ausgewählte
Kommunikationsprotokoll verwendet wird, um verschiedene Informationen,
einschließlich
Statusinformationen von der überwachten
Einrichtung, zu empfangen. Das Verfahren umfasst ferner das Zugreifen
auf die überwachte
Einrichtung unter Verwendung des ausgewählten Kommunikationsprotokolls
und von Informationen aus der ersten Datenbank, das Empfangen von
Statusinformationen von der Einrichtung, auf die zugegriffen wird,
und das Speichern der empfangenen Statusinformationen in einer zweiten
Datenbank.
-
In
der vorliegenden Erfindung können
verschiedene Verkäufer
von überwachten
Einrichtungen und die Einrichtungsmodelle, die vom Überwachungssystem
unterstützt
werden, auch identifiziert werden. Da verschiedene Verkäufer der über wachten
Einrichtungen Informationen über
eine überwachte
Einrichtung in einer für
den Verkäufer
spezifischen Weise präsentieren,
ermöglicht
die vorliegende Erfindung die Identifikation des Verkäufers und
des Modells der überwachten
Einrichtung, um den Betriebszustand der überwachten Einrichtung zu bestimmen.
-
Gemäß einer
Ausführungsform
der vorliegenden Erfindung wird ein Verfahren und ein System zum Speichern
von Informationen geschaffen, die so konfiguriert sind, dass sie
für eine
Vielzahl von Kommunikationsprotokollen verwendet werden, um auf
eine überwachte
Einrichtung aus unterschiedlichen Einrichtungen, die kommunikativ
mit einem Netz verbunden sind, zuzugreifen, umfassend: (1) Zurückgewinnen
von Informationen zum Zugreifen auf die Einrichtung aus einem ersten
Speicher unter Verwendung von mindestens einem Kommunikationsprotokoll,
das von der Einrichtung unterstützt
wird; (2) Speichern der Informationen zum Zugreifen auf die Vorrichtung,
die vom ersten Speicher zurückgewonnen
werden, in einem zweiten Speicher; (3) Auswählen eines Kommunikationsprotokolls
aus der Vielzahl von Kommunikationsprotokollen; und (4) Zugreifen
auf die Einrichtung unter Verwendung des ausgewählten Kommunikationsprotokolls
und der Informationen, die aus dem ersten Speicher abgerufen wurden
und im zweiten Speicher gespeichert wurden.
-
Gemäß der vorliegenden
Erfindung werden ein Verfahren und ein System zum Speichern von
Informationen geschaffen, die so konfiguriert sind, dass sie für eine Vielzahl
von Kommunikationsprotokollen verwendet werden, um Statusinformationen
in Bezug auf eine überwachte
Einrichtung unter unterschiedlichen Einrichtungen, die kommunikativ
mit einem Netz gekoppelt sind, zu extrahieren, umfassend: (1) Zurückgewinnen
von Unterstützungsinformationen
zum Extrahieren der Statusinformationen aus einem ersten Speicher
unter Verwendung der Vielzahl von Kommunikationsprotokollen; (2)
Speichern der vom ersten Speicher erhaltenen Informationen zum Zugreifen
auf die Vorrichtung unter Verwendung der Vielzahl von Kommunikationsprotokollen
in einem zweiten Speicher; (3) Auswählen eines Kommunikationsprotokolls
aus der Vielzahl von Kommunikationsprotokollen; und (4) Zugreifen
auf die Vorrichtung unter Verwendung des ausgewählten Kommunikationsprotokolls
und der Informationen, die im zweiten Speicher gespeichert wurden,
um die Statusinformationen zu extrahieren, wobei die Statusinformationen
unter Verwendung von virtuellen Schnittstellenfunktionen, die einer
abstrakten Softwareklasse zugeordnet sind, extrahiert werden und
die virtuellen Schnittstellenfunktionen für jedes der Vielzahl von Kommunikationsprotokollen
gemein sam sind.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
Eine
vollständigere
Einschätzung
der Erfindung und von vielen von deren zugehörigen Vorteilen wird leicht
erhalten, wenn dieselbe mit Bezug auf die folgende ausführliche
Beschreibung besser verständlich
wird, wenn sie in Verbindung mit den begleitenden Zeichnungen betrachtet
wird, in denen:
-
1 drei
vernetzte Geschäftsbüroeinrichtungen
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 Details
einer Kommunikationsschnittstelle mit mehreren Ports, die in 3 dargestellt
ist, darstellt;
-
5 eine
alternative Systemkonfiguration darstellt, in der Geschäftsbüroeinrichtungen
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 zum Kommunizieren unter Verwendung von elektronischer
Post darstellt, in der ein Computer, der mit einer Anwendungseinheit
verbunden ist, auch als Nachrichtenübertragungsagent (MTA) dient;
-
6C eine
alternative Weise zum Kommunizieren unter Verwendung von elektronischer
Post darstellt, in der eine Anwendungseinheit einen Nachrichtenübertragungsagenten
zum Austauschen von elektronischer Post umfasst;
-
6D eine
alternative Weise zum Kommunizieren unter Verwendung von elektronischer
Post darstellt, in der ein Postserver als POP3-Server arbeitet,
um Post für
ein Gerät/eine
Einrichtung zu empfangen, und als Simple Mail Transfer Protocol
(SMTP) Server arbeitet, um Post für das Gerät/die Einrichtung zu senden;
-
7 eine
alternative Weise zum Senden von Nachrichten über das Internet darstellt;
-
8 einen
beispielhaften Computer darstellt, der mit einem Gerät/einer
Einrichtung verbunden werden kann und verwendet werden kann, um
elektronische Postnachrichten zu übertragen;
-
9 eine
schematische Darstellung des gesamten Systems gemäß einer
beispielhaften Ausführungsform
der vorliegenden Erfindung ist;
-
10 Module,
die bei der Überwachung
der Daten und ihrer Schnittstellenfunktionen verwendet werden, gemäß einer
beispielhaften Ausführungsform
der vorliegenden Erfindung darstellt;
-
11 Details
innerhalb des Monitor-Moduls und ihrer Aufruffunktionen 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 Monitor-Moduls, das in 10 dargestellt
ist, zeigt;
-
14 eine
beispielhafte Sequenz der Statusüberwachungsfunktion
zum Bestimmen des Status einer überwachten
Einrichtung durch den MonitorManager zeigt, wie in 11 gezeigt;
-
15 einen
Vektor der Referenz auf die Einrichtungen zeigt, der durch CDevice-Factory erzeugt wird und
vom MonitorManager verwendet wird, wie in 13 dargestellt;
-
16 die
Klassenstruktur des DeviceODBC-Moduls, einschließlich der abstrakten Klasse
CAbsProtocolParameters, zeigt;
-
17 die
SParameter-Datenstruktur darstellt, die zum Speichern von Parameterwerten
verwendet wird, die erforderlich sind, um auf überwachte Einrichtungen gemäß einer
Ausführungsform
der vorliegenden Erfindung zuzugreifen;
-
18 eine
Abbildungsstruktur darstellt, die verwendet wird, um Parameterwerte
zu speichern, die erforderlich sind, um auf überwachte Einrichtungen gemäß einer
Ausführungsform
der vorliegenden Erfindung zuzugreifen;
-
19 die
Organisation der Monitor-Datenbank darstellt, die in einer Ausführungsform
der vorliegenden Erfindung verwendet wird;
-
20–22 die
Organisation einer Unterstützungsdatenbank
darstellen, die gemäß einem
Kommunikationsprotokoll gemäß einer
Ausführungsform
der vorliegenden Erfindung beschaffen ist;
-
23 und 24 die
HWaccess-Klassenstruktur gemäß einer
Ausführungsform
der vorliegenden Erfindung darstellen; und
-
25 ein
Verfahren zum effizienten Speichern von Informationen, das so konfiguriert
ist, dass es für eine
Vielzahl von Kommunikationsprotokollen verwendet wird, um auf eine überwachte
Einrichtung unter unterschiedlichen Einrichtungen, die kommunikativ
mit einem Netz verbunden sind, zuzugreifen, gemäß einer Ausführungsform
der vorliegenden Erfindung darstellt.
-
AUSFÜHRLICHE
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
1 stellt
ein Diagramm mit verschiedenen Einrichtungen und Computern zum Überwachen,
Diagnostizieren und Steuern des Betriebs der Einrichtungen 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. Personalcomputer-Einrichtungen,
Computer auf Unix-Basis, Computer auf Linux-Basis oder Apple Macintoshes.
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 werden.
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
Einrichtungen bezeichnet werden. In einigen Konfigurationen können ein
oder mehrere Arbeitsplatzrechner in Geschäftsbürogeräte umgewandelt werden. Au-ßerdem kann
ein beliebiges Netz-Geschäftsbüro-Gerät/eine beliebige
Netz-Geschäftsbüro-Einrichtung
an das Netz 16 angehängt
werden. Irgendein Arbeitsplatzrechner 17, 18, 20 und 22 und
Bürogerät 27 kann
auch als Zwischenüberwachungseinrichtung
fungieren, um die überwachten
Einrichtungen im Netz 16 abzufragen und die gesammelten
Daten zur Überwachungseinrichtung
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 besitzen. 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 eine herkömmliche Telephon- und/oder
Kabel- und/oder drahtlose Verbindung 26, 30 bzw. 34 umfassen.
Wie nachstehend erläutert,
kommunizieren die überwachten
Einrichtungen 24, 28 und 32 mit einer
entfernten Überwachungs-,
Diagnose- und Steuerstation, die auch als Überwachungseinrichtung bezeichnet
wird, beispielsweise durch das Internet über das Netz 16 oder durch
eine direkte Telephon-, drahtlose oder Kabelverbindung.
-
In
einer anderen beispielhaften Geschäftsumgebung können die überwachten
Einrichtungen solche Einrichtungen wie eine Multifunktions-Abbildungseinrichtung,
einen Scanner, einen Projektor, ein Konferenzsystem und einen Aktenvernichter
umfassen. In einer anderen Anwendung kann das Netz 16 ein
Heimnetz sein, wobei die überwachten
Einrichtungen Zähler
(Strom, Gas, Wasser) oder Geräte,
wie beispielsweise ein Mikrowellenofen, eine Waschmaschine, ein
Trockner, eine Geschirrspülmaschine,
ein Heimunterhaltungssystem, ein Kühlschrank, ein Reiskocher,
eine Heizung, eine Klimaanlage, ein Wassererhitzer, eine Überwachungskamera,
sind.
-
In 1 ist
ein weiträumiges
Netz (WAN) (z. B. das Internet oder sein Nachfolger), das im Allgemeinen mit 10 bezeichnet
ist. Das WAN 10 kann entweder ein privates WAN, ein öffentliches
WAN oder ein Hybridtyp sein. Das WAN 10 umfasst eine Vielzahl
von miteinander verbundenen Computern und Routern, die mit 12A-12I
bezeichnet sind. Die Art und Weise der Kommunikation über ein
WAN ist durch eine Reihe von Request-for-Comments-Dokumenten (RFC-Dokumenten,
Anfrage-für-Kommentare-Dokumenten)
bekannt, die von der Internet Engineering Task Force (IETF) auf
www.ietf.org/rfc.html, 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", erhältlich sind.
-
Die
mit dem Transmission Control Protocol/Internet Protocol (TCP/IP)
8 in Zusammenhang 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.
Die Bände
1–3 von "Internetworking with TCP/IP" von Comer und Stevens
werden hier auch angegeben.
-
Mit
weiterem Bezug auf 1 ist eine Firewall 50A zwischen
das WAN 10 und das Netz 16 geschaltet. Eine Firewall
ist eine Einrichtung, die nur autorisierten Computern auf einer
Seite der Firewall gestattet, auf ein Netz, Computer oder einzelne
Teile auf der anderen Seite der Firewall zuzugreifen. Firewalls
sind bekannt und kommerziell erhältliche
Einrichtungen 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, AddisonWesley Publishing,
und "Building Internet
Firewalls" von D.B.
Chapman und E.D. Zwicky, 1995, O'Reilly & Associates, Inc.,
zu finden.
-
Das
Netz 52 ist ein herkömmliches
Netz und umfasst eine Vielzahl von Arbeitsplatzrechnern 56, 62, 68 und 74.
Diese Arbeitsplatzrechner können
in einer verteilten Weise innerhalb verschiedener Abteilungen (z. B.
Verkaufs-, Auftragsbearbeitungs-, Abrechnungs-, Buchungs-, Marketing-,
Fertigungs-, Entwurfskonstruktions- und Kundendienstabteilungen)
innerhalb einer einzelnen Firma angeordnet sein. Zusätzlich zu
den über das
Netz 52 verbundenen Arbeitsplatz rechnern, 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, kann unter Verwendung einer zweckmäßigen Verschlüsselung
und von zweckmäßigen Protokollen über das
WAN 10 von den Arbeitsplatzrechnern, die direkt mit dem Netz 52 verbunden
sind, gemeinsam genutzt werden. Der Arbeitsplatzrechner 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 eine Fernsehprogrammierung
auszuführen,
eines Kabels, das eine Hochgeschwindigkeitskommunikation von digitalen
Daten, die typischerweise mit Computern oder dergleichen verwendet
werden, schafft, oder irgendeiner anderen gewünschten Art von Kabel implementiert
werden.
-
In
einer weiteren Ausführungsform
kann der Arbeitsplatzrechner 42 ein Laptopcomputer, ein
PDA, ein Palmtop-Computer oder ein Zellentelephon mit Netzfähigkeit
sein. Diese Einrichtungen können
verwendet werden, um auf Informationen zuzugreifen, die in der auf
der Platte 46 gespeicherten Datenbank gespeichert sind.
-
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 auf den Platten 46, 54, 58, 64, 70 und 76 gespeicherten Datenbanken
gespeichert werden. 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-, Auftragsbearbeitungs-, Abrechnungs-, Buchungs-,
Kundendienst-, Marketing- Fertigungs- und Konstruktionsabteilungen kann ihre
eigene Datenbank haben oder kann sich eine oder mehrere Datenbanken
teilen. Jede der zum Speichern von Datenbanken verwendeten Platten
ist ein nicht flüchtiger Speicher,
wie z. B. eine Festplatte oder optische Platte. Alternativ können die
Datenbanken in einer beliebigen Speichervorrichtung gespeichert
werden, einschließlich
Festkörper-
und/oder Halbleiterspeichervorrichtungen. Die Platte 64 kann
beispielsweise mit einer Marketingdatenbank gespeichert werden,
die Platte 58 kann mit einer Fertigungsdatenbank gespeichert
werden, die Platte 70 kann mit einer Konstruktionsdatenbank
gespeichert werden und die Platte 76 kann mit einer Kundendienstdatenbank
gespeichert werden. Alternativ können
die Platten 54 und 46 mit einer oder mehreren
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 einer überwachten,
diagnostizierten und/oder gesteuerten Maschine/Einrichtung 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 einer Ausführungsform
der vorliegenden Erfindung ist die Verwendung einer "Speicher-und-Weiterleitungs"-Kommunikationsbetriebsart
(z. B. elektronische Internet-Post, hierin auch als E-Mail bezeichnet)
oder Ü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-an-Ende-Verbindungen herstellt (z. B. unter
Verwendung einer Sockelverbindung mit dem letztlichen Zielort) 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 bei 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 lichtempfindlichen Trommel 132 zu löschen. Es
sind eine Ladekoronaeinheit 107 und eine Entwicklungswalze 108 vorhanden.
Das Bezugszeichen 109 bezeichnet eine Lampe, die verwendet
wird, um ein zu scannendes Dokument darzustellen, und die Elemente 110, 111 und 112 bezeichnen
Spiegel zum Reflektieren von Licht auf den Sensor 104.
Ein Trommelspiegel 113 ist vorgesehen, um Licht auf die
lichtempfindliche Trommel 132 zu reflektieren, welches
vom Polybonspiegel 102 stammt. Ein Gebläse 114 wird verwendet,
um den Ladebereich der digitalen Bilderzeugungsvorrichtung zu kühlen, und
eine erste Papierzufuhrwalze 115 wird verwendet, um Papier von
der ersten Papierkassette 117 zuzuführen, und ein Bezugszeichen 116 bezeichnet
einen manuellen Zufuhrtisch. Ebenso wird eine zweite Papierzufuhrwalze 118 in
Verbindung mit der zweiten Kassette 119 verwendet. Das
Bezugszeichen 120 bezeichnet eine Übertragungswalze, 121 bezeichnet
eine Registrierungswalze, 122 bezeichnet einen Bilddichtesensor
und 123 bezeichnet eine Transfer/Trenn-Koronaeinheit. 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 Abluftgeblä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 eine 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 die digitale Bilderzeugungsvorrichtung zu betreiben, sowie Daten
im statischen Zustand, die den Kopierer/Drucker 24 beschreiben
(z. B. der Modellname, die Modellnummer, die Seriennummer der Einrichtung
und Standardparameter).
-
Eine
Netzschnittstelle 166 mit mehreren Ports ist vorgesehen,
um zu ermöglichen,
dass der digitale Kopierer/Drucker 24 mit externen Einrichtungen über mindestens
ein Kommunikationsnetz kommuniziert. Das Bezugszeichen 168 stellt
eine Telephon-, eine drahtlose oder eine Kabelleitung dar und die
Ziffer 170 stellt eine weitere Art von Netz dar, das von
dem bei 168 identifizierten Netz verschieden ist. Zusätzliche
Details der Netzschnittstelle mit mehreren Ports sind in 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 -Ausgabe-Einrichtungen, die auf einem digitalen Kopierer/Drucker 24 zu
finden sind, einschließlich
einer Kopiertaste, Tasten zum Steuern des Betriebs der Bilderzeugungsvorrichtung,
wie beispielsweise Anzahl von Kopien, Verkleinerung/Vergrößerung,
Dunkelheit/Helligkeit usw. Außerdem
kann eine Flüssigkristallanzeige
innerhalb des Bedienfeldes 174 enthalten sein, um Parameter
und Meldungen des digitalen Kopierers/Druckers 24 einem
Anwender anzuzeigen.
-
Eine
lokale Verbindungsschnittstelle 171 ist eine Verbindung über 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. 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 Festwertspeicher (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
mit dem digitalen Kopierer/Drucker 24 über die Verbindung 180 verbunden sein.
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
der digitalen Bilderzeugungsvorrichtung. Eine Optionsschnittstelle 184 ermöglicht,
dass eine 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 die abgelaufene Zeit zu messen.
-
3 stellt
auch die verschiedenen Abschnitte dar, die den digitalen Kopierer/Drucker 24 bilden.
Das Bezugszeichen 202 bezeichnet einen Sortierer und enthält Sensoren
und Stellglieder, die verwendet werden, um die Ausgabe des digitalen
Kopierers/Druckers 24 zu sortieren. Ein Duplexer ermöglicht die
Durchführung eines
Duplexbetriebs. Der Duplexer 200 umfasst herkömmliche
Sensoren und Stellglieder. Eine Tabletteinheit 198 mit
großem
Fassungsvermögen
ist vorgesehen, um Papiertabletts, die eine große Anzahl von Blättern halten,
zu gestatten. Wie bei dem Duplexer 200 umfasst die Tabletteinheit 198 ebenso
herkömmliche
Sensoren und Stellglieder.
-
Eine
Papierzufuhr-Steuereinheit 196 wird verwendet, um den Vorgang
des Zuführens
von Papier in und durch die digitale Bilderzeugungsvorrichtung zu
steuern. Ein Scanner 194 wird verwendet, um Bilder in die digitale
Bilderzeugungsvorrichtung abzutasten und umfasst herkömmliche
Abtastelemente 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 kor-rekten Betrieb der Abtastlampe sicherzustellen.
Ein Drucker/eine Abbildungseinrichtung 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 der 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 für optionale Einheiten vorhanden,
die verwendet wird, um mit optionalen Elementen der digitalen Bilderzeugungsvorrichtung,
wie z. B. einer automatischen Dokumenten-zufuhreinrichtung, einer
anderen Art von Sortierer/Mischer oder anderen Elementen, die zur
digitalen Bilderzeugungsvorrichtung hinzugefügt werden können, zu verbinden. Andere
Elemente umfassen eine GPS-Einheit, die den Ort der Einrichtung
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 22, die eine Hochgeschwindigkeitsverbindung über ein
Kabel besitzt, eine herkömmliche
Telephonschnittstelle 224, die mit einer Telephonleitung 168A verbindet,
eine drahtlose Schnittstelle 228 oder einer 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 Einrichtung,
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 zentraler Systemsteuerprozess, um den gesamten Betrieb
der digitalen Bilderzeugungsvorrichtung zu steuern, und (2) ein
Kommunikationsprozess, um eine zuverlässige Kommunikation mit externen
Vorrichtungen, die mit der digitalen Bilderzeugungsvorrichtung verbunden
sind, sicherzustellen, ausgeführt.
Der Systemsteuerprozess überwacht
und steuert die Datenspeicherung in einem Speicher mit statischem
Zustand (z. B. dem ROM 164 von 3), einem
halbstatischen Speicher (z. B. dem Flash-Speicher 178 oder
der Platte 182) oder dem Speicher mit dynamischem Zustand
(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 Speicher mit statischem Zustand eine andere Einrichtung
als der ROM 164 sein, wie z. B. ein nicht flüchtiger
Speicher mit entweder dem Flash-Speicher 178 oder der Platte 182.
-
Die
obigen Details wurden in Bezug auf eine digitale Bilderzeugungsvorrichtung
beschrieben, aber die vorliegende Erfindung ist gleichermaßen auf
andere Geschäftsbürogeräte oder
-einrichtungen, wie z. B. einen analogen Kopierer, ein Faxgerät, einen
Scanner, einen Drucker, einen Faxserver, einen Projektor, eine Konferenzanlage,
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,
ein Zellentelephon, einen Palmtop-Computer) anwendbar. Außerdem umfasst
die vorliegende Erfindung andere Arten von Einrichtungen, die unter
Verwendung einer Kommunikation auf Speicher- und Weiterleitungs-
oder Direktverbindungs-Basis arbeiten. Solche Einrichtungen umfassen
Zählsysteme
(einschließlich
Gas-, Wasser- oder Stromzählsysteme),
Verkaufsautomaten oder eine beliebige mechanische Einrichtung (z.
B. Kraftfahrzeuge, Waschmaschine, Trockner), die während des
Betriebs oder der entfernten Diagnose überwacht werden müssen. Zusätzlich zur Überwachung
von Spezialgeräten
und -computern kann die Erfindung verwendet werden, um einen Universalcomputer,
der die überwachte
und/oder gesteuerte Einrichtung wäre, zu überwachen, steuern und diagnostizieren.
-
5 stellt
ein alternatives Systemdiagramm der vorliegenden Erfindung dar,
in dem verschiedene Einrichtungen und Untersysteme mit dem WAN 10 verbunden
sind. Es besteht jedoch keine Anforderung, dass jede dieser Einrichtungen
oder jedes dieser Untersysteme ein Teil der Erfindung ist. Jede
Komponente oder jedes Untersystem, die/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. Ein Dienstgerät 254,
das 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
Einrichtungen, oder Konfigurationsinformationen, wie z. B., welche
Komponenten oder welche optionale Anlage in den überwachten Einrichtungen enthalten
ist. Das Dienstgerät 254 kann
als Einrichtung oder Computer implementiert werden, die/der die überwachten
Einrichtungen auffordert, Daten zu übertragen, oder die/der anfordert,
dass eine Fernsteuerung und/oder Diagnosetests an den überwachten
Einrichtungen durchgeführt
werden. Das Dienstgerät 254 kann
als beliebige Art von Einrichtung implementiert werden und wird
vorzugsweise unter Verwendung einer computerisierten Einrichtung
wie z. B. eines Universalcomputers implementiert. Das Dienstgerät 254 kann
auch aus mehreren Computern über das
Netz mit verschiedenen Datenbanken bestehen, einschließlich Buchung,
Abrechnung, Dienstbearbeitung, Teileverfolgung und Berichten.
-
Ein
weiteres Untersystem von 5 umfasst eine Firewall 50-2,
ein Intranet 260-2 und einen damit verbundenen Drucker 262.
In diesem Untersystem werden die Funktionen des Sendens und Empfangens
von elektronischen Nachrichten durch den Drucker 262 (und
ebenso durch einen Kopierer 286) von (1) einer Schaltungsanordnung,
(2) einem Mikroprozessor oder (3) irgendeiner anderen Art von Hardware,
die innerhalb des Druckers 262 enthalten ist oder in diesem
montiert 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,
z. B. Modems, die über
eine asymmetrische digitale Teilnehmerleitung (ADSL) verwendet werden,
Modems, die eine Rahmenwiederholungs-Kommunikation verwenden, drahtlose
Modems, wie z. B. ein Hochfrequenzmodem, ein faseroptisches Modem
oder eine Einrichtung, die Infrarotlichtwellen verwendet) verbunden.
Ferner ist eine Geschäftsbüroeinrichtung 268 mit
dem Computer 266 verbunden. Als Alternative zur Geschäftsbüroeinrichtung 268 (oder
irgendeiner anderen in 5 dargestellten Einrichtung)
kann eine andere Art von Maschine überwacht oder gesteuert werden,
wie z. B. ein digitaler Kopierer, irgendeine Art von Gerät, ein Sicherheitssystem
oder ein Versorgungszähler,
wie z. B. ein Strom-, Wasser- oder Gasversorgungszähler, oder
irgendein andere hierin erörterte
Einrichtung.
-
In 5 ist
auch eine Firewall 50-3 dargestellt, die mit einem Netz 274 verbunden
ist. Das Netz 274 kann als eine beliebige Art von Computernetz
(z. B. ein Ethernet- oder ein Token-Ring-Netz) implementiert werden.
Eine Vernetzungssoftware, die verwendet werden kann, um das Netz
zu steuern, umfasst eine beliebige gewünschte Vernetzungssoftware,
einschließlich
Software, die von Novell oder Microsoft kommerziell erhältlich ist.
Das Netz 274 kann, falls erwünscht, als Intra-net implementiert
werden. Ein Computer 272, der mit dem Netz 274 verbunden
ist, kann verwendet werden, um Informationen von einer Geschäftsbüroeinrichtung 278 zu
erhalten und Berichte zu erzeugen, wie z. B. Berichte, die Probleme
zeigen, die in verschiedenen mit dem Netz verbundenen Maschinen
aufgetreten sind, und einen monatlichen Verwendungsbericht der mit
dem Netz 274 ver-bun-denen Einrichtungen. In dieser Ausführungsform
ist ein Computer 276 zwi-schen die Geschäftsbüroeinrichtung 278 und
das Netz 274 geschaltet. Dieser Computer empfängt Kommunikationen
vom Netz und leitet die entsprechenden Befehle oder Daten oder beliebige
andere Informationen zur Geschäftsbüroeinrichtung 278 weiter.
-
Die
Kommunikation zwischen der Geschäftsbüroeinrichtung 278 und
dem Computer 276 kann unter Verwendung von Drahtbasis-
oder drahtlosen Verfahren durchgeführt werden, einschließlich, jedoch
nicht begrenzt auf Hochfrequenzverbindungen, elektrische Verbindungen
und Lichtverbindungen (z. B. eine Infrarotverbindung oder eine Faseroptikverbindung).
Ebenso kann jedes der in 5 dargestellten verschiedenen Netze
und Intranets unter Verwendung einer beliebigen gewünschten
Art und 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, wie
z. B. das drahtlose Frequenzsprungverfahren, das in der Bluetooth-Spezifikation
offenbart ist (erhältlich
auf der Site des World Wide Web www.bluetooth.com), verwenden.
-
Ein
weiteres in 5 dargestelltes Untersystem
umfasst eine Firewall 50-4, ein Intranet 260-4,
einen damit verbundenen Computer 282, 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 beliebige der dargestellten anderen
Einrichtungen, die sich in 5 befinden
oder in dieser verwendet werden, durchgeführt werden. Obwohl 5 eine
Vielzahl von Firewalls darstellt, sind die Firewalls eine bevorzugte,
aber optionale Ausrüstung
und daher kann die Erfindung ohne die Verwendung von Firewalls betrieben
werden, falls erwünscht.
Für die Überwachung
und Steuerung der vernetzten Anlage können beliebige Computer (266, 272 oder 282)
anstelle von 254 verwendet werden. Außerdem kann irgendein Computer
auf 254 zugreifen, um erforderliche Einrichtungsinformationen
oder Verwendungsinformationen über
das Web zurückzugewinnen.
-
6A stellt
eine Einrichtung/ein Gerät 300 dar,
die/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 aus 28.1 von Stevens, oben, angepasst
sind. Eine Computer-Schnittstelle 302 kommuniziert mit
irgendeiner der hierin beschriebenen Anwendungseinheiten oder Einrichtungen/Geräte 300.
Obwohl 6A darstellt, dass die Einrichtung/das
Gerät 300 der
Sender ist, können
die Sende- und die
Empfangsfunktion in 6A umgekehrt werden. Falls erwünscht, kann
der Anwender ferner überhaupt
nicht mit der Einrichtung/dem Gerät 300 kommunizieren
müssen.
Die Computer-Schnittstelle 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 Outlook und Microsoft Outlook
Express. Auf die Anforderung der Computer-Schnittstelle 302 erzeugt
der Postagent zu sendende E-Mail-Nachrichten und reiht diese zu
sendenden Nachrichten, falls erwünscht,
in eine Warteschlange 306 ein. 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. Die Kommunikation
zwischen den Nachrichtenübertragungsagenten 308 und 312 kann
bemerkenswerterweise ü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 Anwenderbriefkästen 314 gespeichert,
die zum Postagenten 316 übertragen und schließlich an
den Anwender an einem Endgerät 318 übertragen
werden, welches als empfangendes Endgerät fungiert.
-
Dieser "Speicher-und-Weiterleitungs"-Prozess entlastet
den sendenden Postagenten 304 davon, dass er warten muss,
bis eine direkte Verbindung mit dem Postempfänger hergestellt ist. Aufgrund
von Netzverzögerungen
könnte
die Kommunikation eine beträchtliche
Menge an Zeit erfordern, während
der die Anwendung nicht antworten würde. Solche Verzögerungen
des Ansprechvermögens
können
für Anwender
der Anwendungseinheit im Allgemeinen unannehmbar sein. Unter Verwendung
von E-Mail als Speicher- und Weiterleitungsprozess finden Neuübertragungsversuche
nach Ausfällen
automatisch für
eine feste Zeitdauer (z. B. drei Tage) statt. In einer alternativen
Ausführungsform
kann die Anwendung es vermeiden zu warten, indem sie Kommunikationsanforderungen
zu einem oder mehreren separaten Threads weiterleitet. Diese Threads
können
dann die Kommunikation mit dem empfangenden Endgerät 318 steuern,
während
die Anwendung beginnt, wieder auf die Anwenderschnittstelle zu antworten.
In noch einer weiteren Ausführungsform,
in der ein Anwender will, dass eine Kommunikation beendet wird,
bevor er fortfährt,
wird eine direkte Kommunikation mit dem empfangenden Endgerät verwendet.
Eine solche direkte Kommunikation kann ein beliebiges Protokoll
verwenden, das nicht durch eine Firewall zwischen dem sendenden
und dem empfangenden Endgerä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 geheim zu halten, können Nachrichten, die über die öffentlichen
WANs (und private WANs mehrerer Firmen) übertragen werden, daher 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 Computer-Schnittstelle 302,
als Postagent 304, als Post-Warteschlange 306 und
als Nachrichtenübertragungsagent 308 fungiert,
verwendet werden. Wie in 6B dargestellt,
ist die Einrichtung/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 Einrichtung/des Geräts 300 ausgebildet
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 Einrichtung/das Gerät 300 direkt mit der
TCP/IP-Verbindung 310 mit E-Mail-Fähigkeit verbunden. Eine Verwendung
der Ausführungsform
von 6C umfasst die Verwendung eines Faxgeräts mit E-Mail-Fähigkeit
(z. B. wie in RFC 2305 (eine einfache Betriebsart eines
Faxgeräts
unter Verwendung von Internet-Post) definiert) als Einrichtung/Gerät 300.
-
6D stellt
ein System dar, in dem eine Einrichtung/ein Gerät 300 selbst nicht
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 hat, so dass die Einrichtung/das
Gerät 300 das
POP3-Protokoll verwendet,
um empfangene Post vom Postserver zurückzugewinnen.
-
7 stellt
eine alternative Implementierung zur Übertragung von Post dar und
ist aus 28.3 von Stevens, auf das
vorher Bezug genommen wurde, angepasst. 7 stellt
ein elektronisches Postsystem mit einem Weiterleitungssystem an
jedem Ende dar. Die Anordnung von 7 ermöglicht,
dass ein System bei 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 322A, 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 Hauptrechner, der die Computer-Schnittstelle 302,
den Postagenten 304 und den lokalen MTA 322A umfasst. Die
Einrichtung/das Gerät 300 ist
mit dem sendenden Hauptrechner 320 verbunden oder alternativ
in diesem enthalten. Als weiterer Fall können die Einrichtung/das Gerät 300 und
der Hauptrechner 320 in einer Maschine sein, wobei die
Hauptrechnerfähigkeit
in die Einrichtung/das Gerät 300 eingebaut
ist. Andere lokale MTAs 322B, 322C, 322E und 322E können auch
enthalten sein. Zu sendende und zu empfangende Post kann in eine
Warteschlange von Post 306B des Weiterleitungs-MTA 328A eingereiht
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 Warteschlange von Post 306C gespeichert. Die Post
wird dann zum lokalen MTA 322D eines empfangenden Hauptrechners 342 weitergeleitet.
Die Post kann in einem oder mehreren der Anwenderbriefkästen 314 abgelegt
und anschließend
zum Postagenten 316 weitergeleitet werden und schließlich zu
einem Anwender an einem Endgerät 318 weitergeleitet
werden. Falls erwünscht,
kann die Post ohne Anwendereingriff 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
des Dienstgeräts 254,
des Computers 272 und des Computers 282 von 5.
Nicht jedes in 8 dargestellte Element ist jedoch
in jedem von diesen Computern 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
Einrichtung 368 kommuniziert, vorhanden. Die Kommunikation
zwischen der Schnittstelle 366 und der Einrichtung 368 kann
ein beliebiges drahtloses Medium (z. B. Funkwellen oder Lichtwellen) sein.
Die Funkwellen können
unter Verwendung eines Streuspektrumverfahrens, wie z. B. Codemultiplex zugriff-Kommunikation
(CDMA-Kommunikation) 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 des
Flash-Speichers 371 verwendet
werden kann. Mit einer Eingabesteuereinheit 372 sind eine
Tastatur 374 und eine Maus 376 verbunden. Eine
serielle Schnittstelle 378 ist mit einer seriellen Einrichtung 380 verbunden.
Außerdem
ist eine parallele Schnittstelle 382 mit einer parallelen
Einrichtung 384 verbunden, eine Schnittstelle 386 des
universellen seriellen Busses (USB) ist mit einer Einrichtung 388 des
universellen seriellen Busses verbunden und eine IEEE 1398 Einrichtung 400,
die üblicherweise
als FireWire-Einrichtung bezeichnet wird, ist mit einer IEEE 1394
Schnittstelle 398 verbunden. 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 (Small Computer
System Interface Bus), verbunden. Auch eine Anzeigesteuereinheit 416 ist
mit einer CRT (Katodenstrahlröhre) 414 verbunden,
obwohl eine 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 gesamten Systems 900 gemäß einer beispielhaften Ausführungsform
der vorliegenden Erfindung gezeigt. Es ist gezeigt, dass das System 900 eine Vielzahl
von Einrichtungen umfasst, beispielsweise einen Laserdrucker 908,
einen Scanner 910, eine Netzeinrichtung 912 und
einen Multifunktionsdrucker 914, die alle mit einem Netz 100 verbunden
sind. Diese Vielzahl von Einrichtungen sind im Allgemeinen hierin
als "überwachte
Einrichtungen" bezeichnet.
Das System 900 umfasst auch einen Arbeitsplatzrechner/ein Überwachungssystem 902 (nachstehend
als Steuereinheit 902 bezeichnet), der/das mit dem Netz 100 verbunden
ist, um die überwachten
Einrichtungen 908, 910, 912 und 914 zu überwachen
und zu steuern. Jeder der überwachten
Einrichtungen 908, 910, 912 und 914 ist
eine eindeutige Adresse gegeben. Eine IP-Adresse, die einer Einrichtung
zugewiesen ist, dient beispielsweise als eindeutige Adresse für die Einrichtung.
Folglich kann ein Anwender an der Steuereinheit 902 auf
eine jeweilige Einrichtung unter den überwachten Einrichtungen 908–914 durch
Zugreifen auf die eindeutige IP-Adresse, die der jeweiligen überwachten
Einrichtung zugewiesen ist, zugreifen. Es ist zu erkennen, dass
die vorliegende Erfindung nicht auf die Verwendung von IP-Adressen,
um mit einem Netz verbundene Einrichtungen eindeutig zu identifizieren,
begrenzt ist.
-
Die
Steuereinheit 902 erhält
beim Zugreifen auf eine Einrichtung unter den überwachten Einrichtungen 908–914 verschiedene
Informationen über
SNMP- und/oder HTTP-Protokolle.
Solche Informationen umfassen detaillierte Informationen über den
Betriebszustand der Einrichtung, einschließlich Problembehandlungsinformationen.
Die Steuereinheit 902 greift beispielsweise auf die Staustelle
einer speziellen Einrichtung zu und erhält diese und sendet eine Nachricht
an die Person, die für
die Einrichtung verantwortlich ist, um den Stau zu beseitigen. Der
Betriebszustand/Details des Laserdruckers 908 umfassen
solche Details wie Tonerniveau, Angabe eines Papierstaus, Menge
an Druckpapier in den Druckertabletts usw.
-
Es
ist zu erkennen, dass die Steuereinheit 902 entweder physikalisch
mit dem Netz 100 verbunden oder drahtlos mit diesem gekoppelt
sein kann. Ein persönlicher
digitaler Assistent (PDA) 920 oder ein Laptop-Computer 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 Laptop-Computer 922 zu ermöglichen.
Von nun an wird die vorliegende Erfindung unter der Annahme beschrieben,
dass die Steuereinheit 902 den Zustand der mit dem Netz
verbundenen überwachten
Einrichtungen steuert und überwacht.
-
Das
Netz 100 erleichtert die Kommunikation zwischen der Steuereinheit 902 und
den überwachten Einrichtungen 908–914,
um die Überwachung
und Steuerung von solchen überwachten
Einrichtungen zu ermöglichen.
Die Anzahl von Einrichtungen, 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
Einrichtungen 908, 910, 912 und 914 lediglich
als beispielhaft gezeigt.
-
Die
Steuereinheit 902 ist mit einer Speichervorrichtung 904 und
einer Datenbank 905 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
verbunden und umfasst ein relationales Datenbank-Managementsystem
(RDBMS) für
eine leichte Suche und Zurückgewinnung
von Daten, die in der Speichervorrichtung 904 gespeichert
sind. Die Speichervorrichtung 904 speichert vorzugsweise
detaillierte Informationen über
jede der überwachten
Einrichtungen 908–914.
Detaillierte Informationen, wie z. B. der Hersteller, das Modell
und verschiedene Funktionen und Problembehandlungsdetails des Laserdruckers 908,
sind beispielsweise in der Speichervorrichtung 904 gespeichert.
Abweichungswerte über
den Betriebszustand des Laserdruckers im Vergleich zu vorbestimmten
Bezugswerten können
auch in der Speichervorrichtung 904 gespeichert sein. Obwohl
die Datenbank 906 und die Speichervorrichtung 904 als
kommunikativ mit der Steuereinheit 902 gekoppelt beschrieben
sind, ist zu erkennen, dass die Steuereinheit 902 mit der
Speichervorrichtung gebaut sein kann und die Datenbank darin installiert
sein kann. In einem solchen Fall würden die Speichervorrichtung 906 und
die Datenbank 904 als innerhalb der Steuereinheit 902 dargestellt
werden.
-
Die
Steuereinheit 902 ist mit Software installiert, um die Überwachung
und Steuerung der Vielzahl von Einrichtungen 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 für die Überwachung der Vielzahl von
Einrichtungen 908–914 verwendet
und die von der Vielzahl von Einrichtungen 908–914 empfangenen
Daten werden in Form des ASN.1 Binärformats oder von HTML- oder
XML-Formaten präsentiert, wie
in 950 gezeigt.
-
Obwohl 9 nur
die Abbildungseinrichtungen darstellt, kann das Netzwerk zur Kommunikation
von Informationen zwischen der Überwachungseinrichtung
und der Vielzahl von überwachten
Einrichtungen das Heimnetz umfassen, bei dem die Geräte und Zähler mit
dem Netz verbunden sind. Es ist zu erkennen, dass durch die Steuereinheit/den
Arbeitsplatzrechner 902 gesammelte Daten über E-Mail,
FTP oder irgendein anderes Kommunikationsprotokollmittel zu einer
entfernten Einrichtung zur Weiterverarbeitung gesandt werden können.
-
Überwachung
der Systemarchitektur
-
10 stellt
ein Überwachungssystem 1000 (und
zugehörige
Schnittstellenfunktionen) dar, das bei der Überwachung von Daten, die entfernten
Einrichtungen zugeordnet sind, gemäß einer beispielhaften Ausführungsform
der vorliegenden Erfindung verwendet wird. Das Überwachungssystem 1000 umfasst
das Softwaremodul MonitorService 1004, das ein sich im
Computer befindendes Programm ist, wie z. B. Service in NT oder
Windows 2000 und Daemon in Unix. In einer bevorzugten Ausführungsform
wird das Überwachungssystem
unter Verwendung einer objektorientierten Softwareumgebung implementiert.
Im Überwachungssystem 1000 sind
auch ein Zeitgebermodul 1002 und ein Monitor-Modul 1006 enthalten.
Das Zeitgebermodul 1002 und das Monitor-Modul 1006 sind
Bibliothekfunktionen, die vom MonitorService-Modul 1004 aufgerufen
werden. MonitorService 1004 initialisiert beispielsweise
das Zeitgebermodul 1002 durch Aufrufen der Funktion Init-Timer 1003 und
erhält
Verzögerungs-
und Aktionsparameter durch Aufrufen der Funktion obtainDelayAndAction
(int &, int &). Die Funktion
init() wird auch vom MonitorService-Modul 1004 aufgerufen,
um verschiedene Module im Monitor-Modul 1006 zu initialisieren,
wie in 13 dargestellt. Die Funktion
init() kann verwendet werden, um die IP-Adresse und einen Parameterwert,
die einer überwachten
Einrichtung zugewiesen sind, über
eine externe Quelle zu erhalten, die IP-Adressen, Parameternamen
und Werte enthält,
die durch bekannte Verfahren gesammelt werden. Das Monitor-Modul 1006 ist
mit einer Unterstützungsdatenbank 1024 und
mit einer Monitor-Datenbank 1014 kommunikativ gekoppelt,
die nachstehend genauer beschrieben werden.
-
Sobald
die IP-Adresse einer überwachten
Einrichtung erhalten ist, wird die IP-Adresse vom Überwachungssystem verwendet,
um die überwachte
Einrichtung zu kontaktieren, um Informationen wie z. B. Hersteller
(Verkäufer)
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 Zeitgeber-Objekt aus, um die Zeitablaufinformationen
von der Registrierdatenbank zu erhalten.
-
void obtainDelayAndAction(int & out_nDelay, int & out_nAction)
-
Diese
Funktion führt
die Verzögerungszeit
in Sekunden für
die Funktion::Sleep (muss mit 1000 multipliziert werden) und den
Aktionsindikator zurück.
Der Aktionsindikator 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 Einrichtungen.
Die Rückführung 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ückführung 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ückführung int ist der Fehlercode,
in dem Null als kein Fehler definiert ist.
-
Monitor-Modul
-
11 zeigt
die Strukturdetails des Monitor-Moduls 1006, einschließlich der
verschiedenen Software-Untermodule, und die Aufruffunktionen zwischen
den Untermodulen des Monitor-Moduls 1006. Das Monitor-Modul 1006 umfasst
ein gemeinsames Modul 1102, das die anderen Untermodule
(einschließlich
des DeviceODBC-Moduls 1104, des Device-Moduls 1110 und
des HWaccess-Moduls 1116) managt, um die von den Schnittstellenfunktionen
definierten Aufgaben zu vollenden, wie in 10 dargestellt.
Insbesondere wird auf das DeviceODBC-Modul 1104 zugegriffen, um
auf externe Einrichtungsinformationen über die Standardschnittstelle
zuzugreifen. Das HWaccess-Modul 1116 erhält Verkäufer-, Modell-,
eindeutige ID- und Statusinformationen von den überwachten Einrichtungen unter
Verwendung eines ausgewählten
Kommunikationsprotokolls aus einer Vielzahl von Kommunikationsprotokollen
(z. B. HTTP, SNMP und FTP). Jedes der Überwachungssoftware-Module
wird nachstehend genauer beschrieben.
-
Das
Folgende ist eine teilweise Auflistung und Beschreibung der Schnittstellen
zwischen den vorstehend erörterten
Monitor-Modulen. Einige Module können
beispielsweise "init"-Funktionen oder
zusätzliche Funktionen
besitzen 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
nicht die Verkäufer- und
Modelleinträge
ersetzt, wenn Erhaltungsfunktionen einen Null-String zurückführen. Diese
Funktion aktualisiert die Einrichtungsinformationsdatenbank 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 an DeviceODBC 1104 dieselbe
ist. Wenn die IP-Adressenfelder 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 Einrichtungsinformationen
im gegebenen Format und die Abbildung von Protokollen und zugehörigen Parametern.
Die Funktion gibt Wahr zurück,
wenn Daten zurückgeführt werden,
Falsch, wenn keine weiteren Daten vorhanden sind.
-
Bool saveStatus(std::map<infoType, std::string> &)
-
Diese
Funktion speichert die Statusinformationen in DeviceODBC 1104.
Die Funktion führt
Wahr, wenn das Speichern erfolgreich ist, ansonsten Falsch zurück.
-
CDevice* createDevice(const
std::string & in_sIP,
CHWaccess & in_HWaccess,
std::map<std::string,
std::vector<SParameter>> & in_ProtocolParameters)
-
Diese
Funktion erzeugt die Einrichtung auf der Basis von in_sIP und in_ProtocolParameters.
Die erzeugte Einrichtung wird durch CHWaccess mit der Hardware verbunden.
Wenn die Einrichtung nicht erzeugt werden kann, führt die
Funktion 0 zurück.
Daher sollte das aufrufende Objekt prüfen, ob der Zeiger des zurückführenden
Objekts 0 ist oder nicht.
-
bool canAccessHW(void)
-
Diese
Funktion führt
Wahr, wenn auf die Hardware über
das Netz zugegriffen werden kann, ansonsten Falsch zurück.
-
bool getVendor(std::string & out_sVendor)
-
Diese
Funktion führt
den Verkäufernamen
zurück.
Wenn die Einrichtung nicht vom System unterstützt wird, aber auf diese durch
eines der Protokolle zugegriffen werden kann, soll der String "GENERIC" enthalten. Wenn
der Fehler in dem Prozess erfasst wird, führt die Funktion Falsch mit
einem Null-String zurück.
Ansonsten führt
die Funktion Wahr zurück.
-
bool getModel(std::string & out_sModel)
-
Diese
Funktion erhält
das Modell der Einrichtung. Wenn das Modell erhalten wird, führt die
Funktion Wahr zurück.
Wenn der Fehler in dem Prozess erfasst wird, führt die Funktion Falsch mit
einem Null-String zurück.
-
bool getUniqueID(std::string & out_sUniqueID)
-
Diese
Funktion führt
die eindeutige ID der Einrichtung zurück. Wenn die eindeutige ID
erhalten wird, führt
die Funktion Wahr zurück.
Wenn der Fehler in dem Prozess erfasst wird, führt die Funktion Falsch mit einem
Null-String zurück.
-
bool obtainStatus(map<infoType, std::string> & out_StatusMap)
-
Diese
Funktion führt
die Statusabbildung zurück.
Die Funktion führt
Wahr zurück,
wenn der Status zurückgeführt wird,
Falsch, wenn der Status nicht erhalten werden konnte. Es ist zu
beachten, dass diese Funktion die verschiedenen Abbildungen von
HWaccess und von den Device-Modulen zurückführt. Im Device-Modul werden Ereignisstatusinformationen
zu der von HWaccess zurückgeführten Abbildung
hinzugefügt
und gelöscht.
-
enum checkEventStatus(void)
-
Diese
Funktion löst
das Erhalten des Ereignisses der Netzeinrichtung aus. Der enum-Typ
und die Werte sollten in den Klassen definiert sein. Die enum-Werte
sollten die Werte eNoEventSinceClearAndNoEventDetected, eNoEventSinceClearAndEventDetected,
eEventSinceClearAndNoEventDetected, eEventSinceClearAndEventDetected
umfassen.
-
bool obtainEventStatus(std::map<infoType, std::
string> & out_EventStatusMap)
-
Diese
Funktion erhält
Ereignisstatusinformationen. Die Funktion führt Wahr, wenn der Status zurückgeführt wird,
Falsch, wenn der Status nicht erhalten werden konnte, zurück.
-
void clearEventStatus(void)
-
Diese
Funktion löscht
den Ereignisstatus, der seit dem letzten obtainStatus-Funktionsaufruf oder
clearEventStatus angesammelt wurde.
-
void initBegin(void)
-
Diese
Funktion startet den Initialisierungsprozess durch HWaccess, insbesondere
um die Software-Einrichtungsobjekte zu erzeugen.
-
void initEnd(void)
-
Diese
Funktion beendet den Initialisierungsprozess durch HWaccess, was
bedeutet, dass die Einrichtungsobjekterzeugung beendet ist.
-
bool canAccessIP (const
std::string & in_sIP,
std::map<std::string,
std::vector<SParameter>> & in_ProtocolParameters)
-
Diese
Funktion führt
Wahr, wenn auf die Einrichtung an der IP-Adresse zugegriffen werden
kann, ansonsten Falsch zurück.
-
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 führt
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 obtainModel(std::string & out_sModelName,
std::map<std::string,
std::vector<SPararneter>> & inOut_ProtocolParameters,
const std::string & in_sIP)
-
Diese
Funktion erhält
den Modellnamen. Die Funktion führt
Wahr, wenn die Operation erfolgreich ist, ansonsten Falsch mit dem
leeren String zurück.
Wäh rend
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 führt wahr, wenn die Operation
erfolgreich ist, ansonsten Falsch mit dem leeren String zurück. 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.
-
ErrorCode 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 ErrorCode 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 Einrichtung. Die Funktion führt Wahr, wenn die Operation
erfolgreich ist, ansonsten Falsch mit der leeren Abbildung zurück.
-
12 zeigt
die Datenstruktur, die vom HWaccess-Modul 1116 verwendet
wird, wie in 11 dargestellt, um Informationen
zum Zurückgewinnen
von Werten, die Schlüsselwerten
zugeordnet sind, die vom HWaccess-Modul 1116 empfangen
werden, auszutauschen. Die SKeyValueInfo-Datenstruktur, wie in 12 gezeigt,
wird beispielsweise verwendet, um festzustellen, wie Informationen,
die einem speziellen Informationstyp entsprechen (entsprechend m_infoType 1202)
innerhalb einer gegebenen Web-Seite zu erhalten sind. Typischerweise
verwenden eine Vielzahl von Verkäufern
verkäuferspezifische
Identifizierer und eine Nomenklatur, um Schlüsselinformationen, die auf
ihren jeweiligen Web-Seiten angezeigt werden, in Bezug auf eine überwachte
Einrichtung zu identifizieren. Um beispielsweise die Anzahl von
Seiten, die von einer Druckereinrichtung gedruckt werden, zu bestimmen,
verwendet Hewlett Packard das Merkmal "Page Count" (Seiten zahl), während Xerox dieselbe unter
Verwendung eines Merkmals "Total
Sheet Delivered" (gesamte
gelieferte Blätter)
identifiziert. Ein Merkmal der vorliegenden Erfindung besteht darin,
die Varianzen von Verkäufer
zu Verkäufer
zu überwinden
und dadurch ein standardisiertes und einheitliches Verfahren zum
Identifizieren von einrichtungsspezifischen Informationen zu schaffen
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
von Informationen zu identifizieren, die von einer überwachten
Einrichtung in Form eines Datenstrings oder eines Schlüsselstrings
empfangen werden. SKeyValueInfo umfasst eine Vielzahl von Feldern,
wobei jedes Feld durch in 12 dargestellte
Informationen dargestellt wird. Die SKeyValueInfo-Struktur 1200 umfasst
ein Feld 1204 m_sKey, das einen String-Schlüssel darstellt,
ein Feld 1206 m_nPosition, das vorzugsweise ein Wert auf Tag-Basis
ist, der die Anzahl von Positionen im String angibt, in denen Werteinformationen
angeordnet sein könnten,
und ein Feld 1212 m_nlnLinePosition. Page Count einer Druckereinrichtung,
der einer Überwachung unterliegt,
kann beispielsweise in einer zweiten Position, gefolgt von einem
Schlüsselwort,
gefunden werden. m_sType 1208 stellt den Informationstyp
dar, der von einer angezeigten Web-Seite einer überwachten Einrichtung zurückgewonnen
werden kann.
-
Wenn
der Wert, wie beispielsweise Modellname der überwachten Einrichtung, innerhalb
derselben Datenzeile des Schlüssels
(Produktname) gefunden wird, ist das Feld m_nPosition "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 aus Informationen, die von einer überwachten
Einrichtung in einem HTML-Format empfangen werden, zu extrahieren
sind.
-
13 zeigt
die Sequenz der Funktion init(), um die Aufrufsequenz des Monitor-Moduls 1006 zu
beschreiben, wie in 10 dargestellt. Der MonitorManager 1102 initialisiert
das HWaccess-Modul 1116, um die Initialisierungsfunktion
zu starten. Anschließend
erhält
der MonitorManager 1102 Informationen über eine überwachte Einrichtung und verwendet
eine der überwachten
Einrichtung zugewiesene IP-Adresse, um mit der überwachten Einrichtung zu kommunizieren.
Der Monitor- Manager 1102 greift
auf Device ODBC 1104 zu, um Konfigurationsinformationen
der überwachten
Einrichtung zu erhalten. Die zum MonitorManager 1102 zurückgeführten Konfigurationsinformationen
umfassen beispielsweise eine IP-Adresse der überwachten Einrichtung, Parameternamen
und die zugehörigen
Werte für
jedes Protokoll und den Verkäufer/Hersteller
und Modellinformationen der überwachten
Einrichtung. Sobald die IP-Adresse erhalten ist, legt der MonitorManager 1102 die
IP-Adresse, die Parameternamen und zugehörigen Werte für jedes
Protokoll fest, um ein Softwareobjekt auf der Basis einer Klassenstruktur
des Device-Moduls 1110 durch die CDeviceFactory-Klasse 2001 zu
erzeugen. Wenn das Einrichtungssoftwareobjekt erfolgreich erzeugt
ist, wird das HWaccess-Modul 1116 verwendet, um den Verkäufer, das
Modell und die eindeutige ID von der überwachten Einrichtung zu erhalten,
die im erzeugten Einrichtungssoftwareobjekt gespeichert werden sollen.
-
Sobald
der Verkäufer,
die Modellinformationen und die eindeutige ID vom Einrichtungssoftwareobjekt erhalten
sind, aktualisiert der MonitorManager 1102 die Datenbank
(beispielsweise DeviceODBC 1104) mit Informationen, die
von der überwachten
Einrichtung empfangen werden. Obwohl 13 eine
Einrichtung zeigt, werden die Schritte von obtainConfig bis updateConfig
wiederholt, um alle in der externen Quelle angegebenen Einrichtungen
abzudecken. Außerdem
wird jedes in 23 und 24 angegebene
Protokoll initialisiert. Auf die ODBC entsprechende Datenbanktabelle
in 24 wird zugegriffen und erforderliche Informationen
für Einrichtungen,
auf die zugegriffen wird, werden vom externen Speicher zur internen
Datenstruktur übertragen, so
dass die Statusinformationssammlung von den Einrichtungen, auf die
zugegriffen wird, schneller ist.
-
14 zeigt
die Sequenz der Statusüberwachungsfunktion,
um den Status einer überwachten
Einrichtung durch das MonitorManager-Modul 1102, wie in 11 dargestellt,
zu bestimmen. Wenn die obtainStatus-Funktion von Device an HWaccess
ausgegeben wird, gibt die CHWaccess-Klasse wiederum einen obtainStatus-Funktionsaufruf an
jedes in 23 und 24 durch
die abstrakte Klasse beschriebenes Protokoll mit verschiedenen Parametern
aus, wie nachstehend beschrieben. Jedes Protokollmodul hat bereits
Informationen im Cache gespeichert, die erforderlich sind, um die
Statusinformationen von den überwachten
Einrichtungen zu extrahieren, auf die bereits einmal während der
in 13 beschriebenen Initialisierungszeit zugegriffen
wurde. Daher können
die Statusinformationen schnell von den überwachten Einrichtungen extrahiert werden,
ohne während
der Statusüber wachung
auf die externe Quelle zuzugreifen. Dieser Prozess wird über alle
im Vektor, wie in 15 gezeigt, gespeicherten überwachten
Einrichtungen wiederholt.
-
Mit
Bezug auf 15 ist ein Vektor 1500 mit
Verweis auf die durch CDeviceFactory 1106 erzeugten und
vom MonitorManager 1102 verwendeten Einrichtungen, wie
in 13 und 14 dargestellt,
gezeigt. Der MonitorManager 1102 speichert Einrichtungszeiger,
wie beispielsweise einen Zeiger auf CDeviceObject 1502, und
einen Zeiger auf CDeviceObject 1504, die durch CDevice
Factory 1106 erzeugt werden, im Vektor. Die Vektorsequenz
wird iteriert, um den Status einer überwachten Einrichtung zu erhalten.
Die Abfrage der überwachten
Einrichtungen wird über
das Einrichtungsobjekt 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 in 14 beschrieben und wird hierin
nicht wiederholt.
-
Die
in Tabelle I gezeigte DeviceInfo-Struktur stellt die Informationen
hinsichtlich einer überwachten Beispieleinrichtung
dar. Die DeviceInfo-Struktur umfasst die E-Mail-Adresse der Kontaktperson zusätzlich zur Telephonnummer.
-
-
Überwachungsdatenbank
-
19 stellt
die Organisation der Überwachungsdatenbank
dar, die die Einrichtungsinformationen für jede überwachte Einrichtung enthält (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 Einrichtungsinformationen DeviceInfo 1902 für jede überwachte
Einrichtung 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 Wertepaaren
organisiert, z. B. sPar1Name und sPar1Value. 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 Anwendername
und ein Kennwort können
beispielsweise als FTP-Parameter gespeichert werden, während ein
Gemeinschaftsname und ein Kennwort als SNMP-Parameter für eine gegebene überwachte
Einrichtung gespeichert werden können.
Wie in 19 gezeigt, umfasst die Überwachungsdatenbank
auch Informationen in Bezug auf die DeviceHistory 1904 und
die EnumCorrespondence 1906.
-
17 stellt
die SParameter-Datenstruktur 1700 dar, die verwendet wird,
um die Parameter, die von den verschiedenen Kommunikationsprotokollen
verwendet werden, weiterzuleiten. SParameter umfasst zwei Felder:
m_sParName 1702 und m_sParValue 1704, die den
Namen bzw. den 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, zu einem Softwareobjekt weiterzuleiten, das jeder überwachten
Einrichtung zugeordnet ist. Die Abbildungsstruktur 1800 ordnet
jedem Protokoll/Schlüssel-Feld 1802, 1804 und 1806 einen
entsprechenden Vektor von Parametern 1808, 1810 bzw. 1812 zu,
die gemäß dem in 17 gezeigten
Parameterformat angeordnet sind. Für das SNMP-Protokoll 1802 kann der
Vektor von Parametern 1808 beispielsweise eine Liste von
Parameternamen-, Parameterwert-Paaren umfassen, die verwendet werden,
um auf die überwachte
Einrichtung mit dem SNMP-Protokoll
zuzugreifen. Die im Vektor 1808 gespeicherten SNMP-Parameternamen
könnten
beispielsweise "Gemeinschaftsname" und "Kennwort" zusammen mit den
entsprechenden Parameterwerten umfassen. Es ist jedoch zu beachten,
dass die Organisation der Abbildungsstruktur 1800 eine
beliebige Anzahl von Protokollen und zugehörigen 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,
die in 10 gezeigt ist, dar. Die Unterstützungsdatenbank,
die Informationen enthält,
die erforderlich sind, um Statusinformationen von jeder überwachten
Einrichtung zu extrahieren, wird durch ein Kommunikationsprotokoll
organisiert. 20, die beispielsweise die Organisation
der Unterstützungsdatenbank
für mit
SNMP in Zusammenhang stehende Unterstützungsinformationen darstellt,
die zum Extrahieren von Informationen von einer überwachten Einrichtung verwendet
werden, umfasst die 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 Feld 2009 nENUM, das den Typ von zu
extrahierenden Informationen (z. B. Tonerniveau) identifiziert,
und ein Feld 2010 nRelativePriority, das das Gewicht oder
die Bedeutung der extrahierten Informationen relativ zu anderen
Protokollen angibt. Wenn dieselben Informationen von der überwachten
Einrichtung unter Verwendung von mehr als einem Protokoll extrahiert
werden können,
gibt der nRelativePriority-Wert folglich eine relative Angabe dessen,
von welchem Protokoll der extrahierte Wert verwendet werden sollte.
Wenn beispielsweise HTTP nur Informationen extrahieren kann, die
angeben, ob das Tonerniveau "hoch" oder "niedrig" ist, während das
SNMP-Protokoll das
Prozentsatzniveau des restlichen Toners extrahieren kann, wäre das Prioritätsniveau
für das
Tonerniveau für
SNMP höher
als der entsprechende Wert für HTTP.
Außerdem
kann die Unterstützungsdatenbank
Vorgabe-Prioritätswerte
für ein
gesamtes Protokoll bereitstellen. In einer Ausführungsform ist 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 analog zu den vorstehend in Bezug auf 20 beschriebenen
Datenstrukturen.
-
Beispielhafte
enum-Typen, die von der vorliegenden Erfindung verwendet werden,
ist der nachstehend definierte infoType. (Die enum-Typen sind lediglich
beispielhaft und sollten daher nicht als Begrenzung der vorliegenden
Erfindung aufgefasst werden.)
-
infoType (typedef int
infoType)
-
Dieser
Abschnitt beschreibt die Definition des infoType (int). Der Wertebereich
0 bis 99 ist diesem Datentyp zugeordnet. Der Wertebereich 100 bis
499 ist den Device-Informationen zugeordnet. Der Wertebereich 500
bis 1999 ist den gemeinsamen Parametern, einschließlich Standard-MIB-Parametern,
zugeordnet. Der Bereich 2000 bis 3999 ist den Ricoh-spezifischen
Informationen zugeordnet. Der Bereich 4000 bis 4999 ist Xerox zugeordnet.
Der Bereich 5000 bis 5999 ist Lexmark zugeordnet. Der Bereich 6000
bis 6999 ist HP zugeordnet. Die Werte sind folgendermaßen 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, eYellow, eTonerCollector=800,
eBlackDeveloper=810, eColorDeveloper, eFuser=820, eDrum=830, eTransfer=840,
eMaintenanceKit=850, eOilKit=860, eStationInfo1=901, eStationInfo2,
eStationInfo3, eStationInfo4, eStationInfo5, eRicohEngineCounterTotal=2000,
eRicohEngineCounterPrinter, eRicohEngineCounterFax, eRicohEngineCounterCopier}.
-
Fehlercode
-
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 angegeben sind, können von
einem Anwender definiert werden, falls erforderlich.
-
enum
ErrorCode(eNoError=0, eUnknownError=1, eSomeError, eCompleteFailure,
eSomeDeviceCreationError=20, eCreateDeviceError, eNoDeviceCreated, eObtainConfigError,
eSaveStatusError, eObtainUniqueIDError, eObtainStatusError, eStartSendError,
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 so ausgelegt,
dass sie mit der Überwachungsdatenbank 1014 kommuniziert
und Informationen zum Zugreifen auf die überwachten Einrichtungen unter
Verwendung eines speziellen Kommunikationsprotokolls erhält. Die
CAbsProtocol-Parameters-Klasse
hat zwei virtuelle Funktionen, die vom Protokoll unabhängig sind:
- (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 Einrichtung (z. B. IP-Adresse) werden in der Datenstruktur
von 18 gespeichert und zum MonitorManager-Modul 1102 durch
die obtainConfig-Funktion weitergeleitet. Aus der CDeviceODBC-Perspek tive
werden alle Objekte, die zum Erhalten des Protokollnamens und der
zugehörigen
Parameternamen und Werte verwendet werden, als Typ von CAbsProtocol-Parameters betrachtet.
Wenn ein neuer Parameter 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
Klasse im HWaccess-Modul
-
23 stellt
die HWaccess-Modul-Klassenstruktur gemäß der vorliegenden Erfindung
dar und zeigt, wie die CAbsProtocol-Klassenstruktur innerhalb des
HWaccess-Moduls verwendet wird. Die CAbsProtocol-Klasse ist so ausgelegt,
dass sie mit der Unterstützungsdatenbank 1024 kommuniziert
und Unterstützungsinformationen
zum Extrahieren von Statusinformationen von den überwachten Einrichtungen unter
Verwendung eines speziellen Kommunikationsprotokolls erhält. Die
CAbsProtocol-Klasse hat die vorstehend beschriebenen virtuellen
Funktionen: initBegin, initEnd, canAccessIP, obtainVendor, obtainModel,
obtainUniqueID, obtainEventStatus und obtainStatus. Der erste Parameter
der Funktionen obtainEventStatus und obtainStatus hat jedoch einen
unterschiedlichen Typen. Anstelle von std::map<infoType, std::string> ist der Statustyp
std::map<infoType,
std::pair<std::string,
int>>. Dies ermöglicht die
Anpassung an nRelativePriority, die ermöglicht, dass die Statusinformationen
mit höchster
Priorität
erhalten werden, wie vorstehend erörtert. Für jede Einrichtung und jedes
Protokoll kann das System prüfen,
ob der spezielle infoType, der für
die Einrichtung erhalten werden kann, bereits in den Statusabbildungsdaten
ist. Wenn er nicht in den Statusabbildungsdaten ist, wird der spezielle
infoType zu den für
das Protokoll zu extrahierenden Informationen hinzugefügt. Wenn
er in den Statusabbildungsdaten ist, wird nRelativePriority verglichen.
Wenn die Priorität
in den Statusabbildungsdaten höher
oder gleich ist, soll der infoType nicht unter Verwendung des Protokolls
erhalten werden. Wenn die Priorität in den Statusabbildungsdaten
niedriger ist, wird der infoType zu den zu extrahierenden Informationen
hinzugefügt
und in den Statusabbildungsdaten ersetzt.
-
Die
CAbsProtocol-Klasse hat auch zwei andere virtuelle Funktionen, die
vom Protokoll unabhängig sind:
- (1) void initWithVendor(std::map<std::string, std::vector<SParameter>> & in Out_ProtocolParameters, const
std::string & in_sVendor);
und
- (2) void initWithModel(std::map<std::string, std::vector<SParameter>> & inOut_ProtocolParameters,
const std::string & in_sModel)
-
24 stellt
die einheitliche Klassenstruktur innerhalb der in 23 gezeigten
HTTP-, SNMP- und FTP-Module und die entsprechende Beziehung zur
CAbsProtocol-Klasse dar. Es ist zu beachten, dass sich "XXX" auf ein spezielles
Protokoll (z. B. HTTP, SNMP oder FTP) bezieht und dass die vorliegende
Erfindung für
eine Erweiterung der Anzahl von Protokollen ausgelegt ist. Diese
Verwendung von CAbsProtocol ermöglicht,
dass die CHWaccess-Klasse die Unterstützung eines zukünftigen
Protokolls handhabt, ohne die Hauptfunktionen zu ändern. Wenn
ein neues zu unterstützendes
Protokoll hinzugefügt
wird, sollte das neue Protokoll der Struktur von 23 und 24 folgen.
Dann muss die CHWaccess-Klasse nur das Objekt des hinzugefügten Protokolls
erzeugen und es in den Vektor der CAbsProtocol-Objektzeiger setzen.
-
Überwachungsverfahren
-
25 stellt
die Schritte in einem Verfahren zum effizienten Speichern von Informationen
dar, das so konfiguriert ist, dass es für eine Vielzahl von Kommunikationsprotokollen
verwendet wird, um auf eine überwachte
Einrichtung unter unterschiedlichen Einrichtungen, die mit einem
Netz kommunikativ gekoppelt sind, zuzugreifen.
-
In
Schritt 2502 wird auf einen ersten Speicher zugegriffen,
um Informationen zum Zugreifen auf die Einrichtung unter Verwendung
von mindestens einem von der Einrichtung unterstützten Kommunikationsprotokoll
zu erhalten. In der bevorzugten Ausführungsform ist die externe
Informationsspeichereinheit die Überwachungsdatenbank 1014,
die die in 19 gezeigten Einrichtungsinformationen
enthält.
Auf den ersten Speicher kann beispielsweise zugegriffen werden,
um (1) die IP-Adresse einer Einrichtung, (2) einen Anwendernamen
und ein Kennwort zum Zugreifen auf die Einrichtung unter Verwendung
von FTP oder (3) einen Gemeinschaftsnamen und ein Kennwort zum Zugreifen
auf die Einrichtung unter Verwendung von SNMP zu erhalten.
-
In
Schritt 2504 werden die Informationen zum Zugreifen auf
die Einrichtung, die vom ersten Speicher erhalten wurden, in einem
zweiten Speicher gespeichert. In der bevorzugten Ausführungsform
umfasst der zweite Speicher einen Vektor von Parameternamen- und
Parameterwertepaaren für
jedes der Vielzahl von Kommunikationsprotokollen. Überdies
werden die Informationen zum Zugreifen auf die Einrichtung in der
bevorzugten Ausführungsform
in einem Softwareobjekt gespeichert, das der Einrichtung zugeordnet
ist. Siehe 13.
-
In
Schritt 2506 wird als nächstes
ein Kommunikationsprotokoll (z. B. HTTP, SNMP, FTP usw.) aus einer Vielzahl
von Kommunikationsprotokollen zum Zugreifen auf die Einrichtung
ausgewählt.
-
Schließlich wird
in Schritt 2508 auf die Einrichtung unter Verwendung des
ausgewählten
Kommunikationsprotokolls und der im zweiten Speicher gespeicherten
Informationen zugegriffen. 25 stellt
die Schritte in einem Verfahren zum effizienten Speichern von Informationen
dar, das so konfiguriert ist, dass es für eine Vielzahl von Kommunikationsprotokollen
verwendet wird, um auf eine überwachte
Einrichtung unter unterschiedlichen Einrichtungen, die kommunikativ
mit einem Netz gekoppelt sind, zuzugreifen.
-
Obwohl
gezeigt ist, dass die vorliegende Erfindung wenige Einrichtungen
umfasst, die eine Überwachung
erfordern und die mit einem Netz verbunden sind, ist zu erkennen,
dass eine beliebige Anzahl von Einrichtungen mit dem Netz verbunden
werden kann, ohne vom Gedanken und Schutzbereich der Erfindung abzuweichen.
Die vorliegende Erfindung kann auch in einer Heimumgebung angewendet
werden, in der verschiedene Einrichtungen überwacht und gesteuert werden
müssen.
-
Die
vorliegende Erfindung ermöglicht
die Überwachung
der verschiedenen Einrichtungen in einer Umgebung mit mehreren Verkäufern und
erleichtert ferner das Zurückgewinnen
und Anzeigen von detaillierten Informationen in einer für den Anwender
verständlichen
oder anwenderfreundlichen Weise, selbst ohne spezifische private
Management-Informationsbank-Informationen (MIB-Informationen) zu
haben.
-
Die
Steuereinheit der vorliegenden Erfindung kann zweckmäßig unter
Verwendung eines herkömmlichen
digitalen Universalcomputers oder eines Mikroprozessors, der gemäß den Lehren
der vorliegenden Beschreibung programmiert ist, implementiert werden,
wie für
Computerfachleute ersichtlich ist. Eine geeignete Softwarecodierung
kann leicht durch geübte
Programmierer auf der Basis der Lehren der vorliegenden Offenbarung
erstellt werden, wie für
Softwarefachleute ersichtlich ist. Die Erfindung kann auch durch
die Herstellung von anwendungsspezifischen integrierten Schaltungen
oder durch Verbinden eines geeigneten Netzes von herkömmlichen
Komponentenschaltungen implementiert werden, wie für Fachleute
leicht ersichtlich ist.
-
Die
vorliegende Erfindung umfasst ein Computerprogrammprodukt, wie in
Anspruch 21 definiert, mit Ausführungsformen,
wie in den Ansprüchen
22 bis 30 angegeben.
-
Offensichtlich
sind zahlreiche Modifikationen und Veränderungen der vorliegenden
Erfindung angesichts der obigen Lehren möglich. Daher soll es selbstverständlich sein,
dass die Erfindung innerhalb des Schutzbereichs der beigefügten Ansprüche anders
als speziell in den verschiedenen Ausführungsformen beschrieben ausgeführt werden
kann.