-
Es gibt eine Anzahl von Softwareanwendungen, die Daten aus Computerdateien auf einem System sammeln und indizieren. Zum Beispiel indizieren Suchmaschinen oft Daten aus mehreren Dateien und benutzen die indizierten Daten, um schnell nach spezifischem Dateiinhalt in den Dateien zu suchen. Verschiedene Anwendungen, die für Zwecke der Datenverlustverhinderung, Spam-Filterung, Inhaltsverwaltung, Archivierung und Datensicherung verwendet werden, können auch Indizes von Dateien auf einem System erzeugen und benutzen. Jede Anwendung, die einen Dateiindex verwendet, muss oft den Dateiindex separat von anderen Programmen erzeugen. Dementsprechend kann eine Anzahl verschiedener Anwendungen auf einem System jeweils dieselben Programmdateien indizieren.
-
Obwohl Dateiindizes die Durchführung von Prozessen wie Suchen auf effiziente Weise ermöglichen können, verwendet die Erzeugung der Dateiindizes oft eine signifikante Menge von Verarbeitungsbetriebsmitteln. Viele Dateien können nicht direkt geparst werden, um einen Index zu erzeugen. Stattdessen müssen die Dateien zuerst in ein gemeinsames Format wie etwa HTML oder Klartext umgesetzt werden. Dementsprechend kann ein System, das verschiedene Indizierungsprogramme ausführt, beim mehrmaligen Indizieren der verschiedenen Systemdateien auf verschiedenen Anwendungen Zeit und Betriebsmittel verschwenden. Die Indizierungsprozesse können auch signifikant Systembandbreite und Eingangs/-Ausgangsleistungsfähigkeit abziehen. Dementsprechend identifiziert und behandelt die vorliegende Offenbarung eine Notwendigkeit von Systemen und Verfahren, die durch mehrere Anwendungen auf einem System ausgeführte Indizierungsfunktionen konsolidieren.
-
KURZFASSUNG
-
Wie später ausführlicher beschrieben werden wird, betrifft die vorliegende Offenbarung im Allgemeinen Systeme und Verfahren zum Indizieren von Daten zur Verwendung durch mehrere Anwendungen. Gemäß bestimmten Ausführungsformen kann ein computerimplementiertes Verfahren zum Indizieren von Daten zur Verwendung durch mehrere Anwendungen Folgendes umfassen: Empfangen eines Datenobjekts in einer ersten Anwendung von mehreren Anwendungen, Tokenisieren des Datenobjekts, um Tokens aus dem Datenobjekt zu extrahieren, Erzeugen eines Index der aus dem Datenobjekt extrahierten Token (wobei der Index formatiert wird, um durch jede der mehreren Anwendungen benutzt zu werden), und Speichern des Index in einer Datenbank, die den mehreren Anwendungen zugänglich ist. Die mehreren Anwendungen können zwei oder mehr Anwendungstypen umfassen. Das Datenobjekt gemeinsamer Form kann Markup-Sprache (z. B. HTML oder XML) und/oder Klartext umfassen.
-
Bei bestimmten Ausführungsformen kann das Datenobjekt ein programmspezifisches Datenobjekt umfassen, das für Zugriff durch mindestens einen Programmtyp ausgelegt ist, und das Verfahren kann ferner das Umsetzen des programmspezifischen Datenobjekts in ein Datenobjekt gemeinsamer Form umfassen. Das Verfahren kann außerdem umfassen, von einer zweiten Anwendung der mehreren Anwendungen eine Anforderung des Index zu empfangen und es der zweiten Anwendung zu erlauben, auf die Datenbank zuzugreifen.
-
Das Verfahren kann ferner das Erzeugen von mit dem programmspezifischen Datenobjekt assoziierten Metadaten und/oder einer mit dem programmspezifischen Datenobjekt assoziierten versteckten Datei umfassen. Das Verfahren kann außerdem das Ausführen einer Datenklassifikation des programmspezifischen Datenobjekts und das Assoziieren der Datenklassifikationsergebnisse mit dem Datenobjekt gemeinsamer Form und/oder dem Index umfassen. Bei mindestens einem Beispiel kann das Assoziieren der Datenklassifikationsergebnisse mit dem Datenobjekt gemeinsamer Form das Erzeugen von Daten-Tags umfassen, die die Datenklassifikationsergebnisse referenzieren. Bei bestimmten Beispielen kann das Ausführen der Datenklassifikation das Klassifizieren von Daten in dem programmspezifischen Datenobjekt auf der Basis mindestens einer der folgenden Alternativen umfassen: indizierte Metadaten, indizierter Inhalt, extrahierte Muster und/oder extrahierte Entitäten.
-
Gemäß bestimmten Ausführungsformen kann das Verfahren ferner das Ausführen mindestens einer Richtlinie auf der Basis der Datenklassifikation des programmspezifischen Datenobjekts umfassen. Die mindestens eine Richtlinie kann mindestens eine der folgenden Alternativen umfassen: eine Spam-Richtlinie, eine Antivirus-Richtlinie, eine Datenverlustverhinderungs-Richtlinie, eine Leckverhinderungsrichtlinie für geistiges Eigentum, eine Archivierungsrichtlinie, eine Datensicherungs-Richtlinie, eine Inhaltsverwaltungs-Richtlinie, eine Gesetzeinhaltungsrichtlinie und/oder eine Richtlinie elektronischer Entdeckungen. Bei bestimmten Beispielen können die mehreren Anwendungstypen zwei oder mehr der folgenden Alternativen umfassen: eine Suchmaschine, eine Archivierungsanwendung, eine Datenverlustverhinderungsanwendung, eine Spam-Filterungsanwendung, eine Antivirus-Anwendung, eine Datensicherungs-Anwendung, eine Inhaltsverwaltungs-Anwendung, eine Gesetzeinhaltungsanwendung und/oder eine Anwendung für elektronische Entdeckungen.
-
Gemäß verschiedenen Ausführungsformen kann die erste Anwendung mindestens eine der folgenden Alternativen ausführen: Umsetzen des programmspezifischen Datenobjekts in das Datenobjekt gemeinsamer Form, Tokenisieren des Datenobjekts gemeinsamer Form, Erzeugen des Index, Ausführen der Datenklassifikation des programmspezifischen Datenobjekts und/oder Ausführen von Sprachendetektion an dem Datenobjekt gemeinsamer Form. Bei bestimmten Beispielen kann die erste Anwendung eine dritte Anwendung anweisen, mindestens eine der folgenden Alternativen auszuführen: Umsetzen des programmspezifischen Datenobjekts in das Datenobjekt gemeinsamer Form, Tokenisieren des Datenobjekts gemeinsamer Form, Erzeugen des Index, Ausführen der Datenklassifikation des programmspezifischen Datenobjekts und/oder Ausführen von Sprachendetektion an dem Datenobjekt gemeinsamer Form.
-
Bei verschiedenen Beispielen kann das Verfahren das Ausführen mindestens einer der folgenden Alternativen umfassen: Sprachendetektion an dem Datenobjekt, Mustererkennung an dem Datenobjekt und/oder Entitätsextraktion an dem Datenobjekt. Das Verfahren kann zusätzlich umfassen, von einer zweiten Anwendung der mehreren Anwendungen eine Anforderung des Index zu empfangen und der zweiten Anwendung zu erlauben, auf den Index zuzugreifen.
-
Bei mindestens einer Ausführungsform kann ein computerimplementiertes Verfahren zum Indizieren von Daten zur Verwendung durch mehrere Anwendungen Folgendes umfassen: Empfangen eines Datenobjekts in einer ersten Anwendung von mehreren Anwendungen, Tokenisieren des Datenobjekts gemeinsamer Form, um Token aus dem Datenobjekt zu extrahieren, Erzeugen eines Objektindex der aus dem Datenobjekt extrahierten Token (wobei der Objektindex formatiert wird, um durch jede der mehreren Anwendungen benutzt zu werden), und Integrieren des Objektindex in einen Master-Index, der Indizierungsinformationen umfasst, die mit mehreren Datenobjekten assoziiert sind (wobei der Master-Index den mehreren Anwendungen zugänglich ist). Die mehreren Anwendungen können zwei oder mehr Anwendungstypen umfassen. Bei mindestens einem Beispiel kann der Master-Index mehrere Objektindizes umfassen, die von zwei oder mehr der mehreren Anwendungen empfangen werden.
-
Bei bestimmten Ausführungsformen kann ein System zum Indizieren von Daten zur Verwendung durch mehrere Anwendungen ein Kommunikationsmodul umfassen, das dafür programmiert ist, ein Datenobjekt in einer ersten Anwendung von mehreren Anwendungen zu empfangen. Das System kann außerdem ein Tokenisierungsmodul umfassen, das dafür programmiert ist, das Datenobjekt gemeinsamer Form zu tokenisieren, um Token aus dem Datenobjekt zu extrahieren, und ein Indizierungsmodul, das dafür programmiert ist, einen Index der aus dem Datenobjekt extrahierten Token zu erzeugen. Das System kann zusätzlich eine Datenbank zum Speichern des Index umfassen, wobei auf die Datenbank durch die mehreren Anwendungen zugegriffen werden kann.
-
Bei bestimmten Beispielen kann das System außerdem Folgendes umfassen: ein Umsetzungsmodul, das dafür programmiert ist, das programmspezifische Datenobjekt in ein Datenobjekt gemeinsamer Form umzusetzen, ein Sprachendetektionsmodul, das dafür programmiert ist, Sprachendetektion an dem Datenobjekt gemeinsamer Form auszuführen, ein Klassifikationsmodul, das dafür programmiert ist, Datenklassifikation des programmspezifischen Datenobjekts auszuführen und ein Sicherheitsmodul, das dafür programmiert ist, Datenzugang auf autorisierte Anwendungen zu begrenzen.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die beigefügten Zeichnungen veranschaulichen eine Anzahl beispielhafter Ausführungsformen und sind ein Teil der Beschreibung. Zusammen mit der folgenden Beschreibung demonstrieren und erläutern diese Zeichnungen verschiedene Prinzipien der vorliegenden Offenbarung.
-
1 ist ein Blockdiagramm eines beispielhaften Systems zum Indizieren von Daten zur Verwendung durch mehrere Anwendungen.
-
2 ist ein Blockdiagramm eines weiteren beispielhaften Systems zum Indizieren von Daten zur Verwendung durch mehrere Anwendungen.
-
3 ist ein Blockdiagramm eines weiteren beispielhaften Systems zum Indizieren von Daten zur Verwendung durch mehrere Anwendungen.
-
4 ist ein Blockdiagramm eines weiteren beispielhaften Systems zum Indizieren von Daten zur Verwendung durch mehrere Anwendungen.
-
5 ist ein Flussdiagramm eines beispielhaften Verfahrens zum Indizieren von Daten zur Verwendung durch mehrere Anwendungen.
-
6 ist ein Flussdiagramm eines weiteren beispielhaften Verfahrens zum Indizieren von Daten zur Verwendung durch mehrere Anwendungen.
-
7 ist ein Blockdiagram eines beispielhaften Datenverarbeitungssystems, das eine oder mehrere der hier beschriebenen und/oder dargestellten Ausführungsformen implementieren kann.
-
8 ist ein Blockdiagram eines beispielhaften Datenverarbeitungssystems, das eine oder mehrere der hier beschriebenen und/oder dargestellten Ausführungsformen implementieren kann.
-
In den Zeichnungen geben durchweg identische Bezugszeichen und Beschreibungen ähnliche, aber nicht unbedingt identische Elemente an. Obwohl es verschiedene Modifikationen und alternative Formen der hier beschriebenen beispielhaften Ausführungsformen gibt, wurden in den Zeichnungen als Beispiele spezifische Ausführungsformen gezeigt, die hier ausführlich beschrieben werden. Die hier beschriebenen beispielhaften Ausführungsformen sollen jedoch nicht auf die offenbarten konkreten Formen beschränkt sein. Stattdessen deckt die vorliegende Offenbarung alle Modifikationen, Äquivalente und Alternativen ab, die in den Schutzumfang der angefügten Ansprüche fallen.
-
AUSFÜHRLICHE BESCHREIBUNG VON BEISPIELHAFTEN AUSFÜHRUNGSFORMEN
-
Wie später ausführlicher beschrieben werden wird, betrifft die vorliegende Offenbarung im Allgemeinen verschiedene Verfahren und Systeme zum Indizieren von Daten zur Verwendung durch mehrere Anwendungen. Ausführungsformen der vorliegenden Offenbarung können eine Indizierung eines Datenobjekts (z. B. einer PDF-, DOC-, XLS-, PPT- oder MSG-Datei) durch eine erste Anwendung von mehreren Anwendungen in einem System (wie zum Beispiel mehreren Anwendungen zweier oder mehrerer verschiedener Anwendungstypen) ermöglichen. Der Index des Datenobjekts kann in einer Datenbank gespeichert werden, die jeder der mehreren Anwendungen in dem System zugänglich ist und kann von jeder der mehreren Anwendungen in dem System benutzt werden. Statt von jeder der mehreren Anwendungen zu erfordern, separat einen Index des Datenobjekts zu erzeugen, können dementsprechend die hier offenbarten Verfahren und Systeme es der ersten Anwendung, die auf das Datenobjekt trifft, ermöglichen, einen Index zu erzeugen, der jeder der mehreren Anwendungen zugänglich ist.
-
Zum Beispiel kann eine erste Anwendung ein programmspezifisches Datenobjekt empfangen und das programmspezifische Datenobjekt in ein Datenobjekt gemeinsamer Form (z. B. ein HTML-, XML- oder Klartextdokument) umsetzen. Die erste Anwendung kann dann das Datenobjekt gemeinsamer Form tokenisieren und einen Index von aus dem Datenobjekt gemeinsamer Form extrahierten Token (z. B. Wörtern, Felder und/oder Metadaten-Tags) erzeugen. Der Index kann formatiert werden, um durch jede der mehreren Anwendungen verwendet zu werden (z. B. eine Suchmaschine, eine Datenverlust-Verhinderungsanwendung, eine Spam-Filterungsanwendung, eine Antivirus-Anwendung, eine Inhaltsverwaltungsanwendung, eine Archivierungsanwendung und/oder eine Datensicherungs-Anwendung). Der Index kann dann in einer Datenbank gespeichert werden, die in einer der mehreren verschiedenen Anwendungen zugänglich ist.
-
Im Folgenden werden mit Bezug auf 1–4 ausführliche Beschreibungen beispielhafter Systeme zum Indizieren von Daten zur Verwendung durch mehrere Anwendungen gegeben. Ausführliche Beschreibungen entsprechender computerimplementierter Verfahren werden außerdem in Verbindung mit 5 und 6 gegeben. Zusätzlich werden ausführliche Beschreibungen eines beispielhaften Datenverarbeitungssystems und einer beispielhaften Netzwerkarchitektur mit der Fähigkeit zur Implementierung einer oder mehrerer der hier beschriebenen Ausführungsformen in Verbindung mit 7 bzw. 8 gegeben.
-
1 ist ein Blockdiagramm eines beispielhaften Systems 100 zum Indizieren von Daten zur Verwendung durch mehrere Anwendungen. Das beispielhafte System 100 kann ein oder mehrere Module 110 zum Ausführen einer oder mehrerer Aufgaben umfassen. Wie in 1 dargestellt, können die Module 110 ein Kommunikationsmodul 112, ein Sicherheitsmodul 113, ein Umsetzungsmodul 114, ein Sprachendetektionsmodul 115, ein Tokenisierungsmodul 116, ein Indizierungsmodul 117, ein Klassifikationsmodul 118 und ein Daten-Sharing-Modul 119 umfassen.
-
Das Kommunikationsmodul 112 kann dafür programmiert werden, ein Datenobjekt zu empfangen, wie zum Beispiel ein programmspezifisches Datenobjekt, das für Zugriff durch mindestens einen Programmtyp ausgelegt ist. Das Sicherheitsmodul 113 kann dafür programmiert werden, Anforderungen von Daten, wie zum Beispiel Index- und Klassifikationsdaten, auf der Basis von Sicherheitsrichtlinien zu filtern, um sicherzustellen, dass relevante Daten und Metadaten nur zu autorisierten Anwendungen und Benutzern übermittelt werden. Das Umsetzungsmodul 114 kann dafür programmiert werden, das Datenobjekt in ein Datenobjekt gemeinsamer Form umzusetzen. Das Sprachendetektionsmodul 115 kann dafür programmiert werden, Sprachendetektion an dem Datenobjekt auszuführen. Das Tokenisierungsmodul 116 kann dafür programmiert werden, das Datenobjekt durch Extrahieren von Token aus dem Datenobjekt nach der Sprachendetektion zu tokenisieren. Das Indizierungsmodul 117 kann dafür programmiert werden, einen Index der aus dem Datenobjekt extrahierten Token zu erzeugen. Das Klassifikationsmodul 118 kann dafür programmiert werden, eine Datenklassifikation des Datenobjekts auszuführen. Das Daten-Sharing-Modul 119 kann dafür programmiert werden, den Index mit mehreren Anwendungen zu teilen. Obwohl sie als separate Elemente dargestellt sind, können ein oder mehrere der Module 110 in 1 Teile eines einzigen Moduls oder einer einzigen Anwendung darstellen.
-
Bei bestimmten Ausführungsformen können ein oder mehrere der Moduls 110 in 1 eine oder mehrere Softwareanwendungen oder ein oder mehrere Programme darstellen (z. B. Software für Suchen, Datenverlustverhinderung, Spam-Filterung, Inhaltsverwaltung, Archivierung und/oder Datensicherung), die, wenn sie durch eine Datenverarbeitungseinrichtung ausgeführt werden, bewirken können, dass die Datenverarbeitungseinrichtung eine oder mehrere Aufgaben ausführt. Wie später ausführlicher erläutert werden wird, können zum Beispiel ein oder mehrere der Module 110 Softwaremodule darstellen, die gespeichert und dafür ausgelegt werden, eine oder mehrere Datenverarbeitungsanwendungen und/oder -einrichtungen auszuführen, wie zum Beispiel die in 2 dargestellten Anwendungen (d. h. die erste Anwendung 212, die zweite Anwendungen 222 und/oder das Datenbank-Subsystem 230), die in 3 dargestellten Anwendungen und Einrichtungen (d. h. die erste Anwendung 312, die zweite Anwendungen 322, die dritte Anwendungen 332 und/oder das Datenbank-Subsystem 340), die in 4 dargestellten Anwendungen und Einrichtungen (d. h. die erste Anwendung 412, die zweite Anwendungen 422 und/oder die Unternehmensanwendung 432), das Datenverarbeitungssystem 710 in 7 und/oder Teile der beispielhaften Netzwerkarchitektur 800 in 8. Ein oder mehrere der Module 110 in 1 können außerdem alle oder Teile von einem oder mehreren Spezialcomputern darstellen, die dafür ausgelegt sind, eine oder mehrere Aufgaben auszuführen.
-
Wie in 1 dargestellt, kann das beispielhafte System 100 außerdem eine oder mehrere Datenbanken 120 umfassen. Die Datenbanken 120 können Teile einer einzigen Datenbank oder Datenverarbeitungseinrichtung oder mehrere Datenbanken oder Datenverarbeitungseinrichtungen darstellen. Wie gezeigt, können die Datenbanken 120 eine Indexdatenbank 122 zum Speichern von Indizes von Datenobjekten umfassen. Die Datenbanken 120 können außerdem eine Datenobjektdatenbank 124 zum Speichern von Datenobjekten, wie zum Beispiel Datenobjekten gemeinsamer Form, und eine Klassifikationsdatenbank 126 zum Speichern von die Datenobjekte betreffenden Klassifikationsdaten umfassen. Bei bestimmten Ausführungsformen können eine oder mehrere der Datenbanken der Index selbst sein.
-
Die Datenbanken 120 in 1 können einen Teil einer oder mehrerer Datenverarbeitungseinrichtungen darstellen. Zum Beispiel können die Datenbanken 120 einen Teil eines Datenbanksubsystems 230 in 2, des Datenbanksubsystems 340 in 3, der Unternehmensdatenbank 434 in 4, des Datenverarbeitungssystems 710 in 7 darstellen und/oder Teile der beispielhaften Netzwerkarchitektur 800 in 8. Als Alternative können die Datenbanken 120 in 1 eine oder mehrere physisch separate Einrichtungen darstellen, auf die eine Datenverarbeitungseinrichtung zugreifen kann, wie zum Beispiel das Datenbanksubsystem 230 in 2, das Datenbanksubsystem 340 in 3, die Unternehmensdatenbank 434 in 4, das Datenverarbeitungssystem 710 in 7 und/oder Teile der beispielhaften Netzwerkarchitektur 800 in 8.
-
Bei mindestens einer Ausführungsform kann das System 100 ganz oder teilweise dafür ausgelegt sein, auf einer einzigen physischen Datenverarbeitungseinrichtung ausgeführt zu werden. Zum Beispiel kann das System 100 ganz oder teilweise mehrere verschiedene Anwendungen umfassen, die dafür ausgelegt sind, auf einer einzigen Datenverarbeitungseinrichtung ausgeführt zu werden. Bei zusätzlichen Ausführungsformen kann das System 100 dafür ausgelegt sein, auf mehreren Datenverarbeitungseinrichtungen ausgeführt zu werden, wie zum Beispiel auf mehreren vernetzten Datenverarbeitungseinrichtungen.
-
Bei bestimmten Ausführungsformen kann das beispielhafte System 100 ganz oder teilweise Teil des in 2 dargestellten Systems 200 auf Netzwerkbasis darstellen. 2 ist ein Blockdiagramm eines beispielhaften Systems 200 zum Indizieren von Daten zur Verwendung durch mehrere Anwendungen. Wie in der Figur dargestellt, kann das beispielhafte System 200 ein erstes Datenverarbeitungssubsystem 210 in Kommunikation mit einem zweiten Datenverarbeitungssubsystem 220 und einem Datenbanksubsystem 230 umfassen, die über ein Netzwerk 240 verbunden sind. Bei bestimmten Ausführungsformen kann das beispielhafte System 200 ganz oder teilweise Teile einer Cloud-Datenverarbeitungsumgebung darstellen. Cloud-Datenverarbeitungsumgebungen können verschiedene Dienste und Anwendungen über das Internet bereitstellen.
-
Das erste Datenverarbeitungssubsystem 210 und das zweite Datenverarbeitungssubsystem 220 können sich auf einer oder mehreren Datenverarbeitungseinrichtungen befinden. Zum Beispiel können sich das erste Datenverarbeitungssubsystem 210 und das Datenverarbeitungssubsystem 220 auf einer einzigen Datenverarbeitungseinrichtung befinden. Bei zusätzlichen Beispielen können sich das Datenverarbeitungssubsystem 210 auf einer ersten Datenverarbeitungseinrichtung und das zweite Datenverarbeitungssubsystem 220 auf einer zweiten Datenverarbeitungseinrichtung befinden, die von der ersten Datenverarbeitungseinrichtung getrennt ist. Das erste Datenverarbeitungssubsystem 210 und/oder das zweite Datenverarbeitungssubsystem 220 umfassende Datenverarbeitungseinrichtungen repräsentieren im Allgemeinen eine beliebige Art oder Form von Datenverarbeitungseinrichtung, die computerausführbare Anweisungen lesen kann, wie zum Beispiel Laptops, Desktops, Server, eingebettete Systeme, Kombinationen einer oder mehrerer dieser, das beispielhafte Datenverarbeitungssystem 710 in 7 oder beliebige andere geeignete Datenverarbeitungseinrichtungen.
-
Gemäß verschiedenen Ausführungsformen kann das Datenbanksubsystem 230 eine beliebige Art oder Form von Datenverarbeitungseinrichtung darstellen, die Datenspeicher- und/oder Daten-Sharing-Dienste bereitstellen kann. Beispiele für das Datenbanksubsystem 230 wären ohne Beschränkung verschiedene Arten von Datenverarbeitungseinrichtungen (z. B. die für das erste Datenverarbeitungssubsystem 210 und das zweite Datenverarbeitungssubsystem 220 aufgelisteten), Anwendungsserver, die dafür ausgelegt sind, bestimmte Softwareanwendungen auszuführen, und/oder Datenbankserver, die dafür ausgelegt sind, verschiedene Datenbankdienste bereitzustellen. Bei bestimmten Beispielen kann sich das Datenbanksubsystem 230 auf einer Datenverarbeitungseinrichtung befinden, die von dem ersten Datenverarbeitungssubsystem 210 und/oder dem zweiten Datenverarbeitungssubsystem 220 getrennt ist. Bei zusätzlichen Beispielen kann sich das Datenbanksubsystem 230 auf derselben Datenverarbeitungseinrichtung wie das erste Datenverarbeitungssubsystem 210 und/oder das zweite Datenverarbeitungssubsystem 220 befinden.
-
Das Netzwerk 240 repräsentiert im Allgemeinen ein beliebiges Medium oder eine beliebige Architektur mit der Fähigkeit zur Ermöglichung von Kommunikation oder Datentransfer. Beispiele für das Netzwerk 240 wären ohne Beschränkung mindestens ein Teil eines Intranet, ein großflächiges Netzwerk („WAN”), ein lokales Netzwerk („LAN”), ein persönliches Netzwerk („ PAN”), das Internet, Stromnetzkommunikation („PLC”), ein zellulares Netzwerk (z. B. ein GSM-Netzwerk), die beispielhafte Netzwerkarchitektur 800 in 8 oder dergleichen. Das Netzwerk 240 kann Kommunikation oder Datentransfer unter Verwendung von drahtlosen und/oder verdrahteten Verbindungen ermöglichen. Bei einer Ausführungsform kann das Netzwerk 240 Kommunikation zwischen dem ersten Datenverarbeitungssubsystem 210, dem zweiten Datenverarbeitungssubsystem 220 und/oder dem Datenbanksubsystem 230 ermöglichen.
-
Wie in 2 gezeigt, kann das erste Datenverarbeitungssubsystem 210 eine erste Anwendung 212 umfassen, und das zweite Datenverarbeitungssubsystem 220 kann eine zweite Anwendung 222 umfassen. Die erste Anwendung 212 und die zweite Anwendung 222 repräsentieren im Allgemeinen eine beliebige Art von Softwareanwendungen, die verschiedene computerausführbare Anweisungen ausführen kann. Beispiele für die erste Anwendung 212 und die zweite Anwendung 222 wären ohne Beschränkung eine Suchmaschine, eine Archivierungsanwendung, eine Datensicherungsanwendung, eine Datenverlust-Verhinderungsanwendung, eine Spam-Filterungsanwendung, eine Antivirus-Anwendung, eine Gesetzeinhaltungsanwendung, eine Anwendung für elektronische Entdeckungen, eine Inhaltsverwaltungsanwendung und/oder eine beliebige andere geeignete Anwendung, wie zum Beispiel eine Anwendung mit der Fähigkeit zum Ausführen einer Indizierungsfunktion.
-
Gemäß mindestens einer Ausführungsform kann die erste Anwendung 212 Folgendes umfassen: ein Kommunikationsmodul 112(a), ein Sicherheitsmodul 113(a), ein Umsetzungsmodul 114, ein Tokenisierungsmodul 116, ein Indizierungsmodul 117 und ein Klassifikationsmodul 118(a). Das Kommunikationsmodul 112(a) kann Daten zu einer oder mehreren Anwendungen senden und/oder von ihnen empfangen, wie zum Beispiel mit dem ersten Datenverarbeitungssubsystem 210 und/oder dem Netzwerk 240 verbundenen Anwendungen. Bei bestimmten Beispielen kann das Kommunikationsmodul 112(a) verschiedene Datenobjekte, wie zum Beispiel programmspezifische Daten-Dateien und/oder Dokumente (z. B. DOC-, PDF- XLS-, PPT- und/oder MSG-Dateien) senden und/oder empfangen. Beispiele für Datenobjekte, die durch das Kommunikationsmodul 112(a) gesendet und/oder empfangen werden können, wären ohne Beschränkung Textverarbeitungsdateien, portierbare Dokument-Dateien, Tabellenkalkulationsdateien, Instant-Nachrichtendateien, Textnachrichtendateien, Multimedia-Präsentationsdateien, E-Mail-Dateien, Textdateien, Hypertextdateien und/oder ein beliebiger anderer geeigneter Dateityp.
-
Das Kommunikationsmodul 112(a) kann dafür programmiert werden, ein programmspezifisches Datenobjekt zu empfangen, das für den Zugriff durch mindestens einen Programmtyp ausgelegt ist, wie zum Beispiel ein Textverarbeitungsprogramm, ein Betrachtungs- und/oder Editierprogramm für portierbare Dokumente, ein Tabellenkalkulationsprogramm, ein Instant-Nachrichtenprogramm, ein Textnachrichtenprogramm, ein Multimedia-Präsentationsprogramm, ein E-Mail-Programm, und/oder ein beliebiger anderer geeigneter Softwareprogrammtyp. Gemäß mindestens einer Ausführungsform kann die erste Anwendung 212 das programmspezifische Datenobjekt vor anderen Anwendungen, wie zum Beispiel der zweiten Anwendung 222, in dem System 200 empfangen.
-
Bei bestimmten Beispielen kann die erste Anwendung 212 bestimmen, ob das programmspezifische Datenobjekt zuvor von einer anderen Anwendung, wie zum Beispiel der zweiten Anwendung 222, in dem System 200 empfangen, editiert und/oder gespeichert wurde. Zum Beispiel kann die erste Anwendung 212 eine Anforderung zu dem Daten-Sharing-Modul 119 des Datenbanksubsystems 230 senden, die Daten, wie zum Beispiel Indizierungsdaten, anfordert, die mit dem programmspezifischen Datenobjekt assoziiert sind. Wenn die erste Anwendung 212 eine Antwort von dem Datenbanksubsystem 230 empfängt, die angibt, dass die mit dem programmspezifischen Datenobjekt assoziierten angeforderten Daten nicht in dem Datenbanksubsystem 230 oder an anderen Stellen in dem System 200 gespeichert sind, kann die erste Anwendung 212 damit fortfahren, das programmspezifische Datenobjekt zu indizieren. Die erste Anwendung 212 kann mit dem Objekt assoziierte Metadaten, wie zum Beispiel ihr Name, ihre Speicherstelle, ihre Größe, ihr Erzeugungsdatum, ihr Datum der letzten Modifikation und/oder einen Fingerabdruck des Objekts verwenden, um zu bestimmen, ob sie das Objekt zuvor gesehen hat. Der Fingerabdruck kann aus einem Hash oder einer Prüfsumme, wie zum Beispiel MD5 oder SHA-1 oder einem beliebigen anderen geeigneten Hashing-Algorithmus bestehen.
-
Das Umsetzungsmodul 114 kann ein programmspezifisches Datenobjekt in ein Datenobjekt gemeinsamer Form umsetzen. Zum Beispiel kann das Umsetzungsmodul 114 ein programmspezifische Datenobjekt, wie zum Beispiel eine DOC-, PDF-, XLS-, PPT- und/oder MSG-Datei, in ein Datenobjekt gemeinsamer Form umsetzen, wie zum Beispiel eine HTML-, XML- und/oder Textdatei. Das Sprachendetektionsmodul 115 kann Sprachendetektion an dem Datenobjekt gemeinsamer Form ausführen. Das Tokenisierungsmodul 116 kann dann das Datenobjekt gemeinsamer Form tokenisieren. Tokenisierung kann Identifikation und Extraktion von Token, wie zum Beispiel Wörtern und/oder anderen bedeutsamen Einheiten (z. B. Tags, Kanji- und/oder Teilwörter) in dem Datenobjekt gemeinsamer Form umfassen. Bei bestimmten Beispielen kann die Tokenisierung des Datenobjekts gemeinsamer Form auch Stemming verschiedener in dem Datenobjekt gemeinsamer Form identifizierter Wörter umfassen. Bei bestimmten Beispielen kann Sprachendetektion und/oder Tokenisierung an dem programmspezifischen Datenobjekt ausgeführt werden.
-
Das Indizierungsmodul 117 kann danach einen Index von aus dem Datenobjekt gemeinsamer Form und/oder dem programmspezifischen Datenobjekt extrahierten Token, wie zum Beispiel durch das Tokenisierungsmodul 116 extrahierten Token, erzeugen. Der durch das Indizierungsmodul 117 erzeugte Index kann formatiert werden, sodass er von mehreren verschiedenen Anwendungstypen benutzt werden kann. Zum Beispiel kann der Index formatiert werden, um von einer oder mehreren der folgenden Alternativen benutzt zu werden: einer Suchmaschine, einer Archivierungsanwendung, einer Datenverlustverhinderungsanwendung, einer Spam-Filterungsanwendung, einer Antivirus-Anwendung, einer Inhaltsverwaltungsanwendung, einer Gesetzeinhaltungsanwendung, einer Anwendung für elektronische Entdeckungen und/oder einem beliebigen anderen geeigneten Anwendungstyp, der dafür ausgelegt ist, einen Index von in dem System 200 gespeicherten Datenobjekten zu benutzen. Gemäß verschiedenen Beispielen kann das Klassifikationsmodul 118(a) eine Datenklassifikation des programmspezifischen Datenobjekts ausführen. Klassifikationsdaten können von einer oder mehreren Anwendungen verwendet werden, um Datenobjekte ohne Weiteres zu identifizieren und/oder zu kategorisieren. Gemäß mindestens einem Beispiel kann vor der Indizierung eine bestimmte Klassifikation des Datenobjekts ausgeführt werden. Zum Beispiel können reguläre Ausdrücke, die für Klassifikation und Musterdetektion benutzt werden (z. B. REGER), vor dem Indizieren des Datenobjekts ausgeführt werden. Bei zusätzlichen Beispielen können auch Musterdetektion und Entitätsextraktion vor der Indizierung an den Daten ausgeführt werden.
-
Gemäß verschiedenen Ausführungsformen kann die zweite Anwendung 222 ein Kommunikationsmodul 112(b), ein Sicherheitsmodul 113(b) und ein Klassifikationsmodul 118(b) umfassen. Das Kommunikationsmodul 112(b) kann Daten zu einer oder mehreren Anwendungen senden und/oder von diesen empfangen, wie zum Beispiel mit dem zweiten Datenverarbeitungssubsystem 210 und/oder dem Netzwerk 240 verbundenen Anwendungen. Das Klassifikationsmodul 118(b) kann Datenklassifikation von durch das Kommunikationsmodul 112(b) empfangene Daten ausführen. Gemäß mindestens einem Beispiel kann die zweite Anwendung 222 auch Folgendes umfassen: ein Umsetzungsmodul, ein Sprachendetektionsmodul, ein Tokenisierungsmodul und ein Indizierungsmodul ähnlich wie die oben mit Bezug auf die erste Anwendung 212 beschriebenen. Bei bestimmten Beispielen kann die zweite Anwendung 222 vor der ersten Anwendung 212 ein programmspezifisches Datenobjekt empfangen. In solchen Beispielen kann die zweite Anwendung 222 das programmspezifische Datenobjekt in ein Datenobjekt gemeinsamer Form umsetzen, Sprachendetektion an dem Datenobjekt gemeinsamer Form ausführen, das Datenobjekt gemeinsamer Form tokenisieren und/oder das Datenobjekt gemeinsamer Form indizieren.
-
Das Datenbanksubsystem 230 kann eine Indexdatenbank 122, eine Datenobjektdatenbank 124, eine Klassifikationsdatenbank 126 und/oder ein Daten-Sharing-Modul 119 umfassen. Die Indexdatenbank 122 kann einen oder mehrere Datenelementindizes speichern, wie zum Beispiel Indizes von Datenobjekten, die durch das Indizierungsmodul 117 erzeugt werden. Gemäß mindestens einer Ausführungsform kann die Indexdatenbank 122 einen Master-Index umfassen, der eine Zusammenstellung von zwei oder mehr Datenobjektindizes umfasst.
-
Die Datenobjektdatenbank 124 kann programmspezifische Datenobjekte und/oder Datenobjekte gemeinsamer Form speichern. Die Klassifikationsdatenbank 126 kann mit einem oder mehreren Datenobjekten assoziierte Klassifikationsinformationen speichern. Bei bestimmten Ausführungsformen können die Indexdatenbank 122, die Datenobjektdatenbank 124 und/oder die Klassifikationsdatenbank 126 in einem einzigen Index enthalten sein. Das Daten-Sharing-Modul 119 kann Indexinformationen, Klassifikationsinformationen und/oder Datenobjekte mit einer oder mehreren mit dem Netzwerk 240 verbundenen Anwendungen teilen, wie zum Beispiel mit der ersten Anwendung 212 und/oder der zweiten Anwendung 222. Gemäß mindestens einem Beispiel können auf dem Datenbanksubsystem 230 gespeicherte Daten mit einem oder mehreren Datenobjekten assoziiert werden.
-
Wie bereits erwähnt, kann das beispielhafte System 100 in 1 auf vielfältige Weise konfiguriert werden. Zum Beispiel kann das beispielhafte. System 100 ganz oder teilweise Teile des in 3 dargestellten beispielhaften Systems 300 auf Netzwerkbasis darstellen. 3 ist ein Blockdiagramm eines beispielhaften Systems 600 auf Netzwerkbasis zum Indizieren von Daten zur Verwendung durch mehrere Anwendungen. Wie in dieser Figur dargestellt, kann das beispielhafte System 300 Folgendes umfassen: ein erstes Datenverarbeitungssubsystem 310, ein zweites Datenverarbeitungssubsystem 320 und ein Datenbanksubsystem 340, die über ein Netzwerk 350 verbunden sind. Beispiele für das Netzwerk 350 wären ohne Beschränkung verschiedene Arten von Netzwerken (wie zum Beispiel die für das Netzwerk 240 in 2 aufgelisteten). Das erste Datenverarbeitungssubsystem 310, das zweite Datenverarbeitungssubsystem 320 und das Datenbanksubsystem 340 können sich auf einer oder mehreren Datenverarbeitungseinrichtungen befinden. Zum Beispiel können sich das erste Datenverarbeitungssubsystem 310, das zweite Datenverarbeitungssubsystem 320 und/oder das Datenbanksubsystem 340 auf einer einzigen Datenverarbeitungseinrichtung oder auf zwei oder mehr separaten Datenverarbeitungseinrichtungen befinden.
-
Gemäß verschiedenen Ausführungsformen kann das erste Datenverarbeitungssubsystem 310 eine erste Anwendung 312 umfassen, die ein Kommunikationsmodul 112(a), ein Sicherheitsmodul 113(a) und ein Klassifikationsmodul 118(a) umfasst, und ein zweites Datenverarbeitungssubsystem 320 kann eine zweite Anwendung 322 umfassen, die ein Kommunikationsmodul 112(b), ein Sicherheitsmodul 113(b) und ein Klassifikationsmodul 118(b) umfasst. Bei bestimmten Beispielen können sich zwei oder mehr Anwendungen und/oder Datenbanken (z. B. eine Desktop-Suchanwendung, eine Archivierungsanwendung, eine Datensicherungs-Anwendung und/oder eine Datenverlustverhinderungsanwendung) auf einer einzigen Datenverarbeitungseinrichtung, wie zum Beispiel einem Personal Desktop Computer, befinden. Zum Beispiel kann wie in 3 dargestellt das zweite Datenverarbeitungssubsystem 320 außerdem eine dritte Anwendung 332 umfassen. Gemäß verschiedenen Ausführungsformen kann die dritte Anwendung 332 Folgendes umfassen: ein Kommunikationsmodul 112(C), ein Sicherheitsmodul 113(b), ein Umsetzungsmodul 114, ein Sprachendetektionsmodul 115, ein Tokenisierungsmodul 116, ein Indizierungsmodul 117 und ein Klassifikationsmodul 118(c). Das Datenbanksubsystem 340 kann Folgendes umfassen: eine Indexdatenbank 122, eine Datenobjektdatenbank 124, eine Klassifikationsdatenbank 126 und ein Daten-Sharing-Modul 119. Beispiele für das erste Datenverarbeitungssubsystem 310, das zweite Datenverarbeitungssubsystem 320 und das Datenbanksubsystem 340 wären ohne Beschränkung: Verschiedene Arten von Datenverarbeitungseinrichtungen (wie zum Beispiel die für das erste Datenverarbeitungssubsystem 210, das zweite Datenverarbeitungssubsystem 220 und das Datenbanksubsystem 230 in 2 aufgelisteten).
-
Gemäß mindestens einer Ausführungsform kann die erste Anwendung 312 ein programmspezifisches Datenobjekt vor anderen Anwendungen in dem System 300, wie zum Beispiel der zweiten Anwendung 322 oder der dritten Anwendung 332, empfangen. Zum Beispiel kann das Kommunikationsmodul 112(a) der ersten Anwendung 312 das programmspezifische Datenobjekt empfangen. Nach dem Empfang des programmspezifischen Datenobjekts kann die erste Anwendung 312 eine andere Anwendung anweisen, das programmspezifische Datenobjekt in ein Datenobjekt gemeinsamer Form umzusetzen, Sprachendetektion an dem Datenobjekt ausführen, das Datenobjekt zu tokenisieren, das Datenobjekt zu indizieren und/oder das Datenobjekt zu klassifizieren. Zum Beispiel kann die erste Anwendung 312 die dritte Anwendung 332 anweisen, das programmspezifische Datenobjekt in ein Datenobjekt gemeinsamer Form umzusetzen, Sprachendetektion an dem Datenobjekt auszuführen, das Datenobjekt zu tokenisieren, einen Index von aus dem Datenobjekt extrahierten Daten zu erzeugen und dann dem Datenobjekt auf der Basis von Daten in dem Objekt verschiedenen Klassifikationen zuzuweisen.
-
Durch die dritte Anwendung 332 produzierte Indizierungsdaten können in dem Datenbanksubsystem 340 gespeichert werden. Datenobjekt gemeinsamer Form, Klassifikationsdaten und/oder beliebige andere durch die dritte Anwendung 332 erzeugte Daten können auch auf dem Datenbanksubsystem 340 gespeichert werden. Das Datenbanksubsystem 340 kann eine Anforderung eines Index von der zweiten Anwendung 322 (oder einer oder mehreren anderen Anwendungen in dem System 300) empfangen, wie zum Beispiel einen Index eines durch die dritte Anwendung 332 erzeugten Datenobjekts. Bei bestimmten Ausführungsformen kann das Datenbanksubsystem 340 außerdem eine Anforderung von der zweiten Anwendung 322 anderer mit dem Index und/oder dem Datenobjekt assoziierter Daten empfangen, darunter zum Beispiel Klassifikationsdaten und/oder ein Datenobjekt gemeinsamer Form, das das programmspezifische Datenobjekt repräsentiert. Bei mindestens einem Beispiel kann es das Daten-Sharing-Modul 119 des Datenbanksubsystems 340 der zweiten Anwendung 322 erlauben, gemäß Sicherheitsrichtlinien, die durch das Sicherheitsmodul 113(d) bestimmt werden, auf die angeforderten Daten zuzugreifen. Bei bestimmten Ausführungsformen kann das Daten-Sharing-Modul 119 die angeforderten Daten gemäß Sicherheitsrichtlinien, die durch das Sicherheitsmodul 113(d) bestimmt werden, zu der zweiten Anwendung 322 und/oder anderen Anwendungen in dem System 300 senden.
-
Gemäß verschiedenen Ausführungsformen kann das beispielhafte System 100 ganz oder teilweise Teile des in 4 dargestellten beispielhaften Systems 400 auf Netzwerkbasis darstellen. 4 ist ein Blockdiagramm eines beispielhaften Systems 400 auf Netzwerkbasis zum Indizieren von Daten zur Verwendung durch mehrere Anwendungen. Wie in der Figur dargestellt, kann das beispielhafte System 400 Folgendes umfassen: ein erstes Datenverarbeitungssubsystem 410, ein zweites Datenverarbeitungssubsystem 420 und ein Unternehmenssubsystem 430, die über ein Netzwerk 440 verbunden sind. Beispiele für das Netzwerk 440 wären ohne Beschränkung verschiedene Arten von Netzwerken (wie zum Beispiel die für das Netzwerk 240 in 2 aufgelisteten).
-
Das erste Datenverarbeitungssubsystem 410, das zweite Datenverarbeitungssubsystem 420 und das Unternehmenssubsystem 430 können sich auf einer oder mehreren Datenverarbeitungseinrichtungen befinden. Zum Beispiel können sich das erste Datenverarbeitungssubsystem 410, das zweite Datenverarbeitungssubsystem 420 und/oder das Unternehmenssubsystem 430 auf einer einzigen Datenverarbeitungseinrichtung oder auf zwei oder mehr separaten Datenverarbeitungseinrichtungen befinden. Beispiele für das erste Datenverarbeitungssubsystem 410, das zweite Datenverarbeitungssubsystem 420 und das Unternehmenssubsystem 430 wären ohne Beschränkung verschiedene Arten von Datenverarbeitungseinrichtungen (wie zum Beispiel die für das erste Datenverarbeitungssubsystem 210, das zweite Datenverarbeitungssubsystem 220 und das Datenbanksubsystem 230 in 2 aufgelisteten).
-
Gemäß verschiedenen Ausführungsformen kann das erste Datenverarbeitungssubsystem 410 eine erste Anwendung 412 umfassen, die ein Kommunikationsmodul 112(a), ein Sicherheitsmodul 113(a) und ein Klassifikationsmodul 118(a) umfasst, und ein zweites Datenverarbeitungssubsystem 420 kann eine zweite Anwendung 422 umfassen, die ein Kommunikationsmodul 112(b), ein Sicherheitsmodul 113(b) und ein Klassifikationsmodul 118(b) umfasst. Das Unternehmenssubsystem 430 kann eine Unternehmensanwendung 432 umfassen, die ein Kommunikationsmodul 112(c), ein Sicherheitsmodul 113(c), ein Umsetzungsmodul 114, ein Sprachendetektionsmodul 115, ein Tokenisierungsmodul 116, ein Indizierungsmodul 117 und ein Klassifikationsmodul 118(c) umfasst. Gemäß verschiedenen Ausführungsformen kann das Unternehmenssubsystem 430 auch eine Unternehmensdatenbank 434 umfassen, die eine Indexdatenbank 122, eine Datenobjektdatenbank 124, eine Klassifikationsdatenbank 126 und ein Daten-Sharing-Modul 119 umfasst.
-
Das Unternehmenssubsystem 430 kann ein Datenverarbeitungssubsystem umfassen, das dafür programmiert ist, Dienste für Datenverarbeitungseinrichtungen und/oder Subsysteme, wie zum Beispiel das erste Datenverarbeitungssubsystem 410 und das zweite Datenverarbeitungssubsystem 420 in dem beispielhaften System 400 bereitzustellen. Beispiele für durch das Unternehmenssubsystem 430 bereitgestellte Dienste wären ohne Beschränkung Datensuch- und/oder -Speicherdienste. Gemäß verschiedenen Ausführungsformen können verschiedene durch das Unternehmenssubsystem 430 bereitgestellte Dienste durch mehrere verschiedene Softwareanwendungstypen bereitgestellt werden. Gemäß bestimmten Beispielen können das erste Datenverarbeitungssubsystem 410 und/oder das zweite Datenverarbeitungssubsystem 420 auch verschiedene Datensicherungs-, Archivierungs-, Sicherheits- und/oder Inhaltsverwaltungsoperationen ausführen (z. B. Antivirus-Schutz-, Spam-Filterungs- und Datenverlustverhinderungs-Dienste). Das erste Datenverarbeitungssubsystem 410 und/oder das zweite Datenverarbeitungssubsystem 420 können durch das Unternehmenssubsystem 430 erhaltene Daten benutzen, wie zum Beispiel Index- und Klassifikationsdaten, um die Datensicherungs-, Archivierungs-, Sicherheits- und/oder Inhaltsverwaltungsoperationen auszuführen.
-
Bei mindestens einer Ausführungsform kann das Unternehmenssubsystem 430 eine Unternehmensanwendung 432 (z. B. ein Unternehmenssuchgerät, eine eingebettete Suchmaschine oder eine gehostete Suchmaschine) umfassen, die dafür programmiert ist, Dienste wie Such- und/oder Speicherdienste für Datenverarbeitungseinrichtungen und/oder Subsysteme in dem System 400 bereitzustellen. Zum Beispiel kann die Unternehmensanwendung 432 dafür programmiert werden, Elemente eines oder mehrerer Datenobjekte auf dem ersten Datenverarbeitungssubsystem 410 und/oder dem zweiten Datenverarbeitungssubsystem 420 zu durchsuchen. Um eine Durchsuchung der Datenobjekte zu ermöglichen, kann das Umsetzungsmodul 114 die Datenobjekte in Datenobjekte gemeinsamer Form umsetzen, das Sprachendetektionsmodul 115 kann Sprachendetektion an den Datenobjekten ausführen, das Tokenisierungsmodul 116 kann die Datenobjekte tokenisieren und das Indizierungsmodul 117 kann Indizes des einen bzw. der mehreren Datenobjekte erzeugen. Wenn eine Suchanforderung für das eine bzw. die mehreren Datenobjekte durch die Unternehmensanwendung 432 empfangen wird, können die Indizes durch die Unternehmensanwendung 432 durchsucht werden.
-
Gemäß mindestens einer Ausführungsform kann die erste Anwendung 412 ein programmspezifisches Datenobjekt vor anderen Anwendungen, wie zum Beispiel der zweiten Anwendung 422 in dem System 400 empfangen. Zum Beispiel kann das Kommunikationsmodul 112(a) der ersten Anwendung 412 das programmspezifische Datenobjekt empfangen. Nach dem Empfang des programmspezifischen Datenobjekts kann die erste Anwendung 412 die Unternehmensanwendung 432 anweisen, das programmspezifische Datenobjekt in ein Datenobjekt gemeinsamer Form umzusetzen, das Datenobjekt zu tokenisieren und/oder das Datenobjekt zu indizieren. Zum Beispiel kann die erste Anwendung 412 die Unternehmensanwendung 432 anweisen, das programmspezifische Datenobjekt in ein Datenobjekt gemeinsamer Form umzusetzen, Sprachendetektion an dem Datenobjekt auszuführen, das Datenobjekt gemeinsamer Form zu tokenisieren und einen Index von aus dem Datenobjekt gemeinsamer Form extrahierten Token zu erzeugen.
-
Bei bestimmten Beispielen kann die erste Anwendung 412 das programmspezifische Datenobjekt in ein Datenobjekt gemeinsamer Form umsetzen, Sprachendetektion an dem Datenobjekt ausführen, das Datenobjekt tokenisieren und/oder das Datenobjekt indizieren. Der durch die erste Anwendung 412 erzeugte Index des Datenobjekts und/oder beliebige andere geeignete mit dem programmspezifischen Datenobjekt assoziierte Daten, wie zum Beispiel das Datenobjekt gemeinsamer Form und/oder beliebige relevante Klassifikationsdaten, können von der ersten Anwendung 412 zu der Unternehmensanwendung 432 übermittelt werden.
-
Bei bestimmten Ausführungsformen kann die erste Anwendung 412 bestimmen, ob das programmspezifische Datenobjekt zuvor durch eine oder mehrere andere Anwendungen, wie zum Beispiel die zweite Anwendung 422, empfangen, umgesetzt, indiziert und/oder anderweitig in dem System 400 gespeichert wurde. Zum Beispiel kann die erste Anwendung 412 eine Anforderung zu dem Daten-Sharing-Modul 119 der Unternehmensanwendung 432 senden, die mit dem programmspezifischen Datenobjekt assoziierte Daten, wie zum Beispiel Indizierungsdaten, anfordert. Wenn die erste Anwendung 412 eine Antwort von der Unternehmensanwendung 432 empfängt, die angibt, dass die mit dem programmspezifischen Datenobjekt assoziierten angeforderten Daten nicht in der Unternehmensdatenbank 434 oder an anderen Stellen in dem System 400 gespeichert sind, kann die erste Anwendung 412 damit fortfahren, das programmspezifische Datenobjekt zu indizieren und/oder die Unternehmensanwendung 432 anleiten, das programmspezifische Datenobjekt zu indizieren.
-
5 ist ein Flussdiagramm eines beispielhaften computerimplementierten Verfahrens 500 zum Indizieren von Daten zur Verwendung durch mehrere Anwendungen. Die in 5 gezeigten Schritte können durch einen beliebigen geeigneten computerausführbaren Code und/oder ein beliebiges geeignetes Datenverarbeitungssystem ausgeführt werden. Bei bestimmten Ausführungsformen können die in 5 gezeigten Schritte durch eine oder mehrere der Komponenten des Systems 100 in 1, eines oder mehrere der Subsysteme des Systems 200 in 2, eines oder mehrere der Subsysteme des Systems 300 in 3 und/oder eines oder mehrere der Subsysteme des Systems 400 in 4 ausgeführt werden, wie später ausführlicher erläutert werden wird.
-
Im Schritt 510 in 5 kann das System ein Datenobjekt in einer ersten Anwendung von mehreren Anwendungen empfangen. Bei mindestens einem Beispiel kann das Datenobjekt ein programmspezifisches Datenobjekt umfassen, das für Zugriff durch mindestens einen Programmtyp ausgelegt ist. Zum Beispiel kann das Kommunikationsmodul 112 ein programmspezifisches Datenobjekt, wie zum Beispiel eine Textverarbeitungsdatei, empfangen. Das Kommunikationsmodul 112 kann das Datenobjekt in vielfältigen Kontexten empfangen. Zum Beispiel kann das Kommunikationsmodul 112 das Datenobjekt durch Identifizieren des programmspezifischen Datenobjekts während eines Indizierungsprozesses und Bestimmen, dass das programmspezifische Datenobjekt noch nicht durch eine andere Anwendung indiziert worden ist, empfangen. Bei bestimmten Ausführungsformen kann das Kommunikationsmodul 112 ein Plug-In (oder anderen Code) umfassen, das mit einer Anwendung mitgeliefert wird, die Indizierung ausführt, wie zum Beispiel eine Datensicherungsanwendung und/oder Desktop-Suchanwendung.
-
Die mehreren Anwendungen können zwei oder mehr Anwendungstypen umfassen. Zum Beispiel können die erste Anwendung 212 und eine zweite Anwendung 222 in 2 jeweils einen verschiedenen Anwendungstyp umfassen. Zur Veranschaulichung kann die erste Anwendung 212 eine Anwendung umfassen, die dafür programmiert ist, Datensuchen indizierter Datenobjekte in dem System 200 auszuführen. Die zweite Anwendung 222 kann dagegen dafür ausgelegt sein, Datensicherungsdateien von Datenobjekten in dem System 200 zu erzeugen. Die zweite Anwendung 222 kann mit den Datenobjekten assoziierte Indexdaten verwenden, um Datensicherung durchzuführen und danach datengesicherte Daten abzurufen. Der in dem System in einer Datenbank, wie zum Beispiel der Indexdatenbank 122, gespeicherte Index kann sowohl von der ersten Anwendung 212 als auch einer zweiten Anwendung 222 benutzt werden.
-
Bei bestimmten Ausführungsformen kann das Datenobjekt ein programmspezifisches Datenobjekt sein und das System kann das programmspezifische Datenobjekt in ein Datenobjekt gemeinsamer Form umsetzen. Zum Beispiel kann das Umsetzungsmodul 114 eine Textverarbeitungsdatei in ein Dateiformat umsetzen, das von zwei oder mehr Anwendungstypen leicht gelesen und/oder anderweitig benutzt werden kann. Ein Datenobjekt gemeinsamer Form kann zum Beispiel eine Markup-Sprache (z. B. HTML oder XML) und/oder Klartextsprache umfassen.
-
Bei mindestens einer Ausführungsform kann die erste Anwendung (z. B. die erste Anwendung 212) das programmspezifische Datenobjekt in das Datenobjekt gemeinsamer Form umsetzen. Bei zusätzlichen Beispielen kann die erste Anwendung eine andere Anwendung anweisen, das programmspezifische Datenobjekt in das Datenobjekt gemeinsamer Form umzusetzen. Zum Beispiel kann die erste Anwendung 312 in 3 die dritte Anwendung 332 anweisen, ein programmspezifisches Datenobjekt in ein Datenobjekt gemeinsamer Form umzusetzen. Bei mindestens einem Beispiel kann die erste Anwendung 412 in 4 die Unternehmensanwendung 432 anweisen, das programmspezifische Datenobjekt in ein Datenobjekt gemeinsamer Form umzusetzen. Das System kann dann Sprachendetektion an dem Datenobjekt ausführen. Zum Beispiel kann das Sprachendetektionsmodul 115 vor der Tokenisierung und Indizierung des Datenobjekts Sprachendetektion an dem Datenobjekt gemeinsamer Form ausführen. In der folgenden Besprechung der Schritte von 5 kann sich der Ausdruck „Datenobjekt” auf ein Datenobjekt beziehen, das nicht in ein Datenobjekt gemeinsamer Form umgesetzt worden ist, oder ein Datenobjekt, das in ein Datenobjekt gemeinsamer Form umgesetzt worden ist.
-
In Schritt 520 in 5 kann das System das Datenobjekt tokenisieren, um Token aus dem Datenobjekt zu extrahieren. Zum Beispiel kann das Tokenisierungsmodul 116 das Datenobjekt gemeinsamer Form durch Identifizieren von Wörtern in dem Datenobjekt gemeinsamer Form tokenisieren. Bei bestimmten Ausführungsformen können während der Tokenisierung des Datenobjekts andere bedeutsame Einheiten identifiziert werden, wie zum Beispiel Tags und/oder Teilwörter. Gemäß verschiedenen Ausführungsformen kann die erste Anwendung das Datenobjekt tokenisieren oder die erste Anwendung kann eine andere Anwendung (z. B. die dritte Anwendung 332 und/oder die Unternehmensanwendung 432) anweisen, das Datenobjekt zu tokenisieren.
-
Im Schritt 530 in 5 kann das System einen Index der aus dem Datenobjekt extrahierten Token erzeugen, der ein Index des Datenobjekts ist. Der Index kann für die Benutzung durch jede der mehreren Anwendungen formatiert werden. Zum Beispiel kann das Indizierungsmodul 117 einen Index von aus dem Datenobjekt extrahierten Token, wie zum Beispiel tokenisierte Wörter und/oder andere bedeutsame Einheiten in dem Datenobjekt, erzeugen. Die erste Anwendung kann den Index erzeugen und/oder die erste Anwendung kann eine andere Anwendung (z. B. die dritte Anwendung 332 und/oder die Unternehmensanwendung 432) anweisen, die Token aus dem Datenobjekt zu indizieren.
-
Im Schritt 540 kann das System den Index in einer Datenbank speichern, die den mehreren Anwendungen zugänglich ist. Zum Beispiel kann der Index in einer Datenbank auf Netzwerkbasis und/oder eine Datenbank auf Unternehmensbasis, wie zum Beispiel einer sich auf der Unternehmensdatenbank 434 befindenden Datenbank, speichern, die der ersten Anwendung 412 und der zweiten Anwendung 422 gemäß Sicherheitsrichtlinien zugänglich ist, die durch das Sicherheitsmodul 113(c) festgelegt und durchgesetzt werden. Gemäß bestimmten Ausführungsformen kann der Index in einem komprimierten Format in der Datenbank abgespeichert werden. Das komprimierte Format des Index kann den auf der Datenbank verwendeten Speicher verringern und/oder kann die zum Übermitteln des Index über das Netzwerk verwendete Bandbreite verringern.
-
Gemäß mindestens einer Ausführungsform kann das Verfahren 500 ferner das Empfangen einer Anforderung des Index von einer anderen Anwendung in dem System umfassen. Zum Beispiel kann die zweite Anwendung 222 in dem System 200 den Index von dem Datenbanksubsystem 230 anfordern. Bei bestimmten Beispielen kann das Verfahren ferner umfassen, es der zweiten Anwendung zu erlauben, auf den in der Indexdatenbank 122 gespeicherten Index zuzugreifen. Zum Beispiel kann es gemäß den durch das Sicherheitsmodul 113(c) festgelegten und durchgesetzten Sicherheitsrichtlinien der zweiten Anwendung 222 gestattet werden, den Index selbst zu durchsuchen oder die Unternehmensanwendung 432 zu benutzen, um den Index zu durchsuchen.
-
Gemäß verschiedenen Ausführungsformen kann das Verfahren 500 außerdem das Speichern des Datenobjekts in der Datenbank umfassen. Zum Beispiel kann ein Datenobjekt gemeinsamer Form, das ein programmspezifisches Datenobjekt repräsentiert, in der Datenobjektdatenbank 124 gespeichert werden. Bei bestimmten Beispielen kann das programmspezifische Datenobjekt auch in der Datenobjektdatenbank 124 gespeichert werden. Das programmspezifische Datenobjekt kann in der Datenbank mit dem Datenobjekt gemeinsamer Form und/oder dem Index des Datenobjekts assoziiert werden. Bei bestimmten Beispielen kann das Datenobjekt gemeinsamer Form in einem komprimierten Format in der Datenbank gespeichert werden.
-
Bei mindestens einer Ausführungsform kann das System außerdem mit dem programmspezifischen Datenobjekt assoziierte Metadaten und/oder eine mit dem programmspezifischen Datenobjekt assoziierte versteckte Datei erzeugen. Die Metadaten und/oder die versteckte Datei können zusammen mit dem programmspezifischen Datenobjekt zu einer anderen Anwendung übermittelt werden. Bei bestimmten Beispielen können, wenn das programmspezifische Datenobjekt gelöscht oder anderweitig aus dem System entfernt wird, die mit dem programmspezifischen Datenobjekt assoziierten Metadaten und/oder die mit dem programmspezifischen Datenobjekt assoziierte versteckte Datei auch aus dem System gelöscht werden.
-
Zum Beispiel kann für ein auf einem Dateisystem WINDOWS NTFS gespeichertes Textverarbeitungsdokument ein Datenobjekt gemeinsamer Form in einem alternativen Datenstrom derselben Datei gespeichert werden, die das Textverarbeitungsdokument selbst speichert. Der Index kann in einem noch anderen Strom dieser selben Datei gespeichert werden. Das Textverarbeitungsdokument betreffende Datenklassifikationsinformationen können in noch einem anderen Datenstrom gespeichert oder in die gemeinsame-Form- oder Index-Ströme aufgenommen werden. Mehrere Anwendungen können jeweils separate Datenklassifikationen für das Dokument bereitstellen und jede Anwendung kann ihre Klassifikationen in einem separaten Strom oder zu einem der anderen Ströme gruppiert speichern. Zum Beispiel kann eine Datenverlustverhinderungs-Anwendung eine Klassifikation bereitstellen, dass ein Dokument Kreditkartennummern und/oder Sozialversicherungsnummern enthält. Bei bestimmten Beispielen kann eine Antivirusanwendung ein Dokument als ein Makrovirus enthaltend klassifizieren. Bei zusätzlichen Beispielen kann eine Archivierungsanwendung ein Dokument als Aufbewahrung für sieben Jahre erfordernd klassifizieren. Alle diese alternativen Ströme können auf der Basis von durch ein Sicherheitsmodul, wie zum Beispiel das Sicherheitsmodul 113(c), festgelegten Sicherheitsrichtlinien vor dem Endbenutzer versteckt werden, aber anderen Anwendungen, wie zum Beispiel der ersten Anwendung 212 oder 222, die möglicherweise auf sei zugreifen möchten, zur Verfügung gestellt werden.
-
Wenn der Benutzer das Dokument löscht, können die alternativen Ströme automatisch gelöscht werden. Wenn der Benutzer das Dokument an eine andere Stelle auf demselben Volumen verlagert, können die alternativen Ströme mit dem Dokument verlagert werden. Wenn der Benutzer das Dokument kopiert, können abhängig von dem zum Ausführen der Kopieroperation verwendeten Verfahren die Ströme kopiert werden. Wenn zum Beispiel ein Dokument von MICROSOFT WORD (oder ein anderes Dokument von MICROSOFT OFFICE) modifiziert wird, kann WORD die neue Version des Dokuments in eine andere Datei schreiben, die alte Version löschen und dann die neue Version auf den korrekten Namen umbenennen. Dies kann alle Metadaten, die mit der älteren Version des Dokuments assoziiert waren, wie zum Beispiel Metadaten, die möglicherweise für die neue Version nicht gelten, automatisch löschen. Für Dateien, die an Stelle modifiziert werden, gelten die alternativen Ströme möglicherweise nicht mehr für die Datei. Es können Zeitstempel, Fingerabdrücke oder andere Metadaten verwendet werden, um zu bestimmen, wann die alternativen Datenströme veraltet sind.
-
Bei mindestens einer Ausführungsform kann das Verfahren 500 auch das Empfangen einer Anforderung des Datenobjekts gemeinsamer Form umfassen. Zum Beispiel kann die Anwendung 222 das Datenobjekt gemeinsamer Form von dem Datenbanksubsystem 230 anfordern und das Daten-Sharing-Modul 119 kann das Datenobjekt gemeinsamer Form gemäß den durch das Sicherheitsmodul 113(c) festgelegten und durchgesetzten Sicherheitsrichtlinien zu der zweiten Anwendung 222 senden. Zusätzlich kann das Daten-Sharing-Modul 119 auch etwaige andere angeforderte Daten senden, die mit dem Datenobjekt gemeinsamer Form und/oder dem programmspezifischen Datenobjekt assoziiert sind.
-
Gemäß bestimmten Ausführungsformen kann das Verfahren 500 ferner Folgendes umfassen: Ausführen einer Datenklassifikation des programmspezifischen Datenobjekts und Assoziieren der Datenklassifikationsergebnisse mit mindestens einer der folgenden Alternativen: Dem Datenobjekt gemeinsamer Form, dem programmspezifischen Datenobjekt und/oder dem Index. Zum Beispiel kann das Klassifikationsmodul 118 Elemente des Datenobjekts identifizieren und das Datenobjekt und/oder die identifizieren Elemente des Datenobjekts klassifizieren.
-
Gemäß bestimmten Ausführungsformen kann das Verfahren 500 ferner Folgendes umfassen: Ausführen einer Datenklassifikation des programmspezifischen Datenobjekts und Assoziieren der Datenklassifikationsergebnisse mit mindestens einer der folgenden Alternativen: dem Datenobjekt gemeinsamer Form, dem programmspezifischen Datenobjekt und/oder dem Index. Zum Beispiel kann das Klassifikationsmodul 118 Elemente des Datenobjekts identifizieren und das Datenobjekt und/oder die identifizieren Elemente des Datenobjekts klassifizieren. Bei mindestens einem Beispiel kann das Assoziieren von Datenklassifikationsergebnissen mit dem Datenobjekt gemeinsamer Form das Hinzufügen von Daten-Tags umfassen, die die Datenklassifikationsergebnisse referenzieren.
-
Bei zusätzlichen Beispielen kann das Verfahren 400 das Ausführen mindestens einer Richtlinie auf der Basis der Datenklassifikationsergebnisse umfassen. Beispiele für die mindestens eine Richtlinie wären ohne Beschränkung eine Spam-Richtlinie, eine Antivirus-Richtlinie, eine Datenverlustverhinderungs-Richtlinie, eine Verhinderungsrichtlinie von Lecks von geistigem Eigentum, eine Archivierungsrichtlinie und eine Datensicherungs-Richtlinie, eine Inhaltsverwaltungsrichtlinie (wie zum Beispiel eine Klassifikations- und/oder Filterungsrichtlinie), eine Richtlinie für elektronische Entdeckungen und/oder eine Gesetzeinhaltungsrichtlinie. Die Klassifikationsergebnisse können eine oder mehrere Richtlinien bestimmen, die auf das programmspezifische Datenobjekt angewandt werden. Zur Veranschaulichung kann eine Spam-Richtlinie ausgeführt werden, um das programmspezifische Datenobjekt in Quarantäne zu versetzen, wenn die Klassifikationsergebnisse angeben, dass das programmspezifische Datenobjekt eine Spam-E-Mail umfasst.
-
6 ist ein Flussdiagramm eines beispielhaften computerimplementierten Verfahrens 600 zum Indizieren von Daten zur Verwendung durch mehrere Anwendungen. Die in 6 gezeigten Schritte können durch einen beliebigen geeigneten computerausführbaren Code und/oder ein beliebiges geeignetes Datenverarbeitungssystem ausgeführt werden. Bei bestimmten Ausführungsformen können die in 6 gezeigten Schritte durch eine oder mehrere der Komponenten des Systems 100 in 1, eines oder mehrerer der Subsysteme des Systems 200 in 2, eines oder mehrerer der Subsysteme des Systems 300 in 3 und/oder eines oder mehrerer der Subsysteme des Systems 400 in 4 ausgeführt werden, wie später ausführlicher erläutert werden wird.
-
Im Schritt 610 in 6 kann das System ein Datenobjekt in einer ersten Anwendung von mehreren Anwendungen empfangen. Zum Beispiel kann das Datenobjekt ein programmspezifisches Datenobjekt umfassen, das für Zugriff durch mindestens einen Anwendungstyp ausgelegt ist. Bei bestimmten Ausführungsformen kann das System das programmspezifische Datenobjekt in ein Datenobjekt gemeinsamer Form umsetzen und kann Sprachendetektion an dem Datenobjekt ausführen. Im Schritt 620 in 2 kann das System das Datenobjekt tokenisieren. Im Schritt 630 in 6 kann das System einen Objektindex der aus dem Datenobjekt extrahierten Token erzeugen. Der Objektindex kann formatiert werden, um von jeder der mehreren Anwendungen benutzt zu werden. Die Schritt 610, 620 und 630 in 6 sind den Schritten 510, 520 und 530 in 5 ähnlich. Deshalb können die vorherigen Besprechungen der Schritte 510–530 auch für die Schritte 610–630 gelten.
-
Im Schritt 640 in 6 kann das System den Objektindex in einen Master-Index speichern, der Indizierungsinformationen umfasst, die mit mehreren Datenobjekten assoziiert sind. Zum Beispiel kann der Master-Index Objekt-Indizes für mehrere Datenobjekt gemeinsamer Form, die aus mehreren programmspezifischen Datenobjekten umgesetzt wurden, umfassen. Bei bestimmten Beispielen kann der Master-Index Indizes umfassen, die von mehreren Anwendungen empfangen werden. Der Master-Index kann einen Index umfassen, der in einer Datenbank auf Netzwerkbasis und/oder einer Datenbank auf Unternehmensbasis, wie zum Beispiel eine sich auf der Unternehmensanwendung 432 befindenden Datenbank, gespeichert wird. Bei bestimmten Ausführungsformen kann der Master-Index in einem versteckten Bereich an einer Stelle gespeichert werden, an der das programmspezifische Datenobjekt gespeichert wird, wie zum Beispiel in einer Datenbank auf dem ersten Datenverarbeitungssubsystem 210 in dem System 200. Es können auch individuelle Objektindizes als selbständige Indizes an einer Stelle gespeichert werden, an der das programmspezifische Datenobjekt gespeichert wird.
-
Gemäß verschiedenen Ausführungsformen kann der Master-Index mehreren Anwendungen in dem System zugänglich sein. Bei mindestens einem Beispiel können die mehreren Anwendungen zwei oder mehr Anwendungstypen umfassen. Zur Veranschaulichung kann mindestens eine der Anwendungen in dem System, wie zum Beispiel die erste Anwendung 212, eine Datenverlustverhinderungs-Anwendung umfassen, und eine andere der Anwendungen in dem System, wie zum Beispiel die zweite Anwendung 222, kann eine Archivierungsanwendung umfassen. Bei verschiedenen Ausführungsformen kann der Master-Index mehrere Objektindizes umfassen, die von zwei oder mehr der mehreren Anwendungen empfangen werden.
-
Wie bereits erläutert wurde, können die hier beschriebenen Systeme und Verfahren durch Bereitstellung eines Mittels zum Indizieren von Daten zur Verwendung durch mehrere Anwendungen einer ersten Anwendung mehrerer Anwendungen ermöglichen, einen Index eines Datenobjekts zu erzeugen, der von jeder der mehreren Anwendungen benutzt werden kann, sodass es überflüssig wird, dass jede der mehreren Anwendungen separat Indizes des Datenobjekts erzeugt.
-
Zum Beispiel kann die erste Anwendung 412 auf ein Dokument von MICROSOFT WORD treffen, das noch nicht indiziert worden ist. Sie kann eine Unternehmensanwendung 432 auf dem Unternehmenssubsystem 430 benachrichtigen, die zum Beispiel ein Unternehmenssuchgerät und/oder eine Unternehmenssuchmaschine sein kann, um das WORD-Dokument zu verarbeiten. Die Unternehmensanwendung 432 kann dann eine Version gemeinsamer Form des Dokuments erzeugen, Sprachendetektion an der Version gemeinsamer Form des Dokuments ausführen, die Version gemeinsamer Form des Dokuments tokenisieren, dann das Ergebnis indizieren, die Version gemeinsamer Form des Dokuments und den Index auf der Unternehmensdatenbank 434 speichern. Die erste Anwendung 412 kann dann die Version gemeinsamer Form des Dokuments oder den Index verwenden, um ihre Aufgaben auszuführen. Die zweite Anwendung 422 kann auf dasselbe Dokumente von MICROSOFT WORD treffen, bestimmen, dass es bereits indiziert worden ist, und den auf der Unternehmensdatenbank 434 gespeicherten Index verwenden, um eine Datenklassifikation des Dokuments auszuführen. Die zweite Anwendung 422 kann dann die Ergebnisse der Datenklassifikation auf der Unternehmensdatenbank 434 speichern, sodass die Klassifikation von einer beliebigen anderen Anwendung benutzt werden kann, die in der Lage sein kann, die Klassifikation zu benutzen.
-
7 ist ein Blockdiagramm eines beispielhaften Datenverarbeitungssystems 710, das eine oder mehrere der hier beschrieben und/oder dargestellten Ausführungsformen implementieren kann. Das Datenverarbeitungssystem 710 repräsentiert allgemein eine beliebige Einzel- oder Mehrprozessor-Datenverarbeitungseinrichtung bzw. ein System mit der Fähigkeit, computerlesbare Anwendungen auszuführen. Beispiele für das Datenverarbeitungssystem 710 wären ohne Beschränkung Workstations, Laptops, clientseitige Terminals, Server, verteilte Datenverarbeitungssysteme, in der Hand gehaltene Geräte oder ein beliebiges anderes Datenverarbeitungssystem oder eine beliebige andere Datenverarbeitungseinrichtung. In seiner einfachsten Konfiguration kann das Datenverarbeitungssystem 710 mindestens einen Prozessor 714 und einen Systemspeicher 716 umfassen.
-
Der Prozessor 714 repräsentiert im Allgemeinen eine beliebige Art oder Form von Verarbeitungseinheiten mit der Fähigkeit zum Verarbeiten von Daten oder Interpretieren und Ausführen von Anweisungen. Bei bestimmten Ausführungsformen kann der Prozessor 714 Anwendungen von einer Softwareanwendung oder einem Modul empfangen. Diese Anwendungen können bewirken, dass der Prozessor 714 die Funktionen einer oder mehrerer der hier beschriebenen und/oder dargestellten beispielhaften Ausführungsformen ausführt. Zum Beispiel kann der Prozessor 714 entweder alleine oder in Kombination mit anderen Elementen eine oder mehrere der folgenden Alternativen ausführen und/oder ein Mittel zu deren Ausführung sein: Hier beschriebene Schritte des Empfangens, Umsetzens, Tokenisierens, Erzeugens, Speicherns, Sendens, Ausführens, Erzeugens, Ausführens, Assoziierens und/oder Indizierens. Der Prozessor 714 kann auch beliebige andere hier beschriebene und/oder dargestellte Schritte, Verfahren oder Prozesse ausführen und/oder ein Mittel zu deren Ausführung sein.
-
Der Systemspeicher 716 repräsentiert eine beliebige Art oder Form von flüchtiger oder nichtflüchtiger Speichereinrichtung bzw. ein Medium, das Daten und/oder andere computerlesbare Anweisungen speichern kann. Beispiele für den Systemspeicher 716 wären ohne Beschränkung Direktzugriffsspeicher („RAM”), Nurlesespeicher („ROM”), Flash-Speicher oder eine beliebige andere geeignete Speichereinrichtung. Obwohl es nicht erforderlich ist, kann das Datenverarbeitungssystem 710 bei bestimmten Ausführungsformen sowohl eine flüchtige Speichereinheit (wie zum Beispiel den Systemspeicher 716) als auch einen nichtflüchtige Speichereinrichtung (wie zum Beispiel die später ausführlicher beschriebene primäre Speichereinrichtung 732) umfassen.
-
Bei einem Beispiel können ein oder mehrere der Module 110 von 1 in den Systemspeicher 716 geladen werden.
-
Bei bestimmten Ausführungsformen kann das beispielhafte Datenverarbeitungssystem 710 auch zusätzlich zu dem Prozessor 714 und dem Systemspeicher 716 eine oder mehrere Komponenten oder Elemente umfassen. Zum Beispiel kann das Datenverarbeitungssystem 710 wie in 7 dargestellt einen Speichercontroller 718, einen Controller 720 für Eingabe/Ausgabe („E/A”) und eine Kommunikationsschnittstelle 722 umfassen, die jeweils über eine Kommunikationsinfrastruktur 712 miteinander verbunden sind. Die Kommunikationsinfrastruktur 712 repräsentiert im Allgemeinen eine beliebige Art oder Form von Infrastruktur, die Kommunikation zwischen einer oder mehreren Komponenten einer Datenverarbeitungseinrichtung ermöglichen kann. Beispiele für die Kommunikationsinfrastruktur 712 wären ohne Beschränkung ein Kommunikationsbus (wie zum Beispiel ein ISA-, PCI-, PCIe- oder ähnlicher Bus) und ein Netzwerk.
-
Der Speichercontroller 718 repräsentiert im Allgemeinen eine beliebige Art oder Form von Einrichtung, die mit Speicher oder Daten umgehen oder Kommunikation zwischen einer oder mehreren Komponenten des Datenverarbeitungssystem 710 steuern kann. Zum Beispiel kann der Speichercontroller 718 bei bestimmten Ausführungsformen Kommunikation zwischen dem Prozessor 714, dem Systemspeicher 716 und dem E/A-Controller 720 über die Kommunikationsinfrastruktur 712 steuern. Bei bestimmten Ausführungsformen kann der Speichercontroller 718 entweder alleine oder in Kombination mit anderen Elementen einen oder mehrere der hier beschriebenen und/oder dargestellten Schritte oder eines oder mehrere der hier beschriebenen und/oder dargestellten Merkmale ausführen und/oder ein Mittel zu deren Ausführung sein: wie etwa Empfangen, Umsetzen, Tokenisieren, Erzeugen, Speichern, Senden, Ausführen, Assoziieren und/oder Indizieren.
-
Der E/A-Controller 720 repräsentiert im Allgemeinen eine beliebige Art oder Form von Modul, das die Eingabe-/und Ausgabefunktionen einer Datenverarbeitungseinrichtung koordinieren und/oder steuern kann. Zum Beispiel kann der E/A-Controller 720 bei bestimmten Ausführungsformen die Übermittlung von Daten zwischen einem oder mehreren Elementen des Datenverarbeitungssystems 710, wie zum Beispiel dem Prozessor 714, dem Systemspeicher 716, der Kommunikationsschnittstelle 722, dem Displayadapter 726, der Eingangsschnittstelle 730 und der Speicherschnittstelle 734, ermöglichen. Der E/A-Controller 720 kann zum Beispiel verwendet werden, um entweder alleine oder in Kombination mit anderen Elementen einen oder mehrere der folgenden hier beschriebenen Schritt auszuführen und/oder ein Mittel zu deren Ausführung zu sein: Empfangen, Umsetzen, Tokenisieren, Erzeugen, Speichern, Senden, Durchführen, Erzeugen, Ausführen, Assoziieren und/oder Indizieren. Der E/A-Controller 720 kann auch verwendet werden, um andere in der vorliegenden Offenbarung dargelegte Schritte und Merkmale auszuführen und/oder ein Mittel zu deren Ausführung zu sein.
-
Die Kommunikationsschnittstelle 722 repräsentiert allgemein eine beliebige Art oder Form von Kommunikationseinrichtung oder -adapter mit der Fähigkeit, Kommunikation zwischen dem beispielhaften Datenverarbeitungssystem 710 und einer oder mehreren zusätzlichen Einrichtungen zu ermöglichen. Zum Beispiel kann die Kommunikationsschnittstelle 722 bei bestimmten Ausführungsformen Kommunikation zwischen dem Datenverarbeitungssystem 710 und einem privaten oder öffentlichen Netzwerk, einschließlich zusätzlicher Datenverarbeitungssysteme, ermöglichen. Beispiele für die Kommunikationsschnittstelle 722 wären ohne Beschränkung eine verdrahtete Netzwerkschnittstelle (wie zum Beispiel eine Netzwerkschnittstellenkarte), eine drahtlose Netzwerkschnittstelle (wie zum Beispiel eine drahtlose Netzwerkschnittstellenkarte), ein Modem und eine beliebige andere geeignete Schnittstelle. Bei mindestens einer Ausführungsform kann die Kommunikationsschnittstelle 722 über eine Direktverbindung mit einem Netzwerk, wie zum Beispiel dem Internet, eine direkte Verbindung mit einem abgesetzten Server bereitstellen. Die Kommunikationsschnittstelle 722 kann auch indirekt eine solche Verbindung bereitstellen, zum Beispiel durch ein lokales Netzwerk (wie zum Beispiel ein Ethernet-Netzwerk), ein persönliches Netzwerk, ein Telefon- oder Kabelnetzwerk, eine zellulare Telefonverbindung, eine Satellitendatenverbindung oder eine beliebige andere geeignete Verbindung.
-
Bei bestimmten Ausführungsformen kann die Kommunikationsschnittstelle 722 auch einen Hostadapter repräsentieren, der dafür ausgelegt ist, über einen externen Bus oder Kommunikationskanal Kommunikation zwischen dem Datenverarbeitungssystem 710 und einer oder mehreren zusätzlichen Netzwerk- oder Speichereinrichtungen zu ermöglichen. Beispiele für Hostadapter wären ohne Beschränkung SCSI-Hostadapter, USB-Hostadapter, IEEE-794-Hostadapter, SATA- und eSATA-Hostadapter, ATA- und PATA-Hostadapter, Faserkanal-Schnittstellenadapter, Ethernet-Adapter oder dergleichen. Die Kommunikationsschnittstelle 722 kann es auch dem Datenverarbeitungssystem 710 erlauben, in verteilte oder abgesetzte Datenverarbeitung einzutreten. Zum Beispiel kann die Kommunikationsschnittstelle 722 Anweisungen von einer abgesetzten Einrichtung empfangen oder Anweisungen zur Ausführung zu einer abgesetzten Einrichtung senden. Bei bestimmten Ausführungsformen kann die Kommunikationsschnittstelle 722 entweder alleine oder in Kombination mit anderen Elementen einen oder mehrere der folgenden hier offenbarten Schritte ausführen und/oder ein Mittel zu deren Ausführung sein: Empfangen, Umsetzen, Tokenisieren, Erzeugen, Speichern, Senden, Durchführen, Erzeugen, Ausführen, Assoziieren, Klassifizieren und/oder Indizieren. Die Kommunikationsschnittstelle 722 kann auch verwendet werden, um andere in der vorliegenden Offenbarung dargelegte Schritte und Merkmale auszuführen und/oder ein Mittel zu deren Ausführung zu sein.
-
Wie in 7 dargestellt kann das Datenverarbeitungssystem 710 außerdem mindestens eine Anzeigeeinrichtung 724 umfassen, die über einen Displayadapter 726 mit der Kommunikationsinfrastruktur 712 gekoppelt ist. Die Anzeigeeinrichtung 724 repräsentiert im Allgemeinen eine beliebige Art oder Form von Einrichtung mit der Fähigkeit zum visuellen Anzeigen von durch den Displayadapter 726 weitergeleiteten Informationen. Ähnlich repräsentiert der Displayadapter 726 im Allgemeinen eine beliebige Art oder Form von Einrichtung, die dafür ausgelegt ist, Graphik-, Text- und andere Daten aus der Kommunikationsinfrastruktur 712 (oder aus einem Einzelbildpuffer wie in der Technik bekannt) zur Anzeige auf der Anzeigeeinrichtung 724 weiterzuleiten.
-
Wie in 7 dargestellt, kann das beispielhafte Datenverarbeitungssystem 710 außerdem mindestens eine Eingabeeinrichtung 728 umfassen, die über eine Eingangsschnittstelle 730 mit der Kommunikationsinfrastruktur 712 gekoppelt ist. Die Eingabeeinrichtung 728 repräsentiert im Allgemeinen eine beliebige Art oder Form von Eingabeeinrichtung mit der Fähigkeit zur Bereitstellung von Eingaben, die entweder vom Computer oder vom Menschen erzeugt werden, in das beispielhafte Datenverarbeitungssystem 710. Beispiele für die Eingabeeinrichtung 728 wären ohne Beschränkung eine Tastatur, eine Zeigeeinrichtung, eine Spracherkennungseinrichtung oder eine beliebige andere Eingabeeinrichtung. Bei mindestens einer Ausführungsform kann die Eingabeeinrichtung 728 entweder alleine oder in Kombination mit anderen Elementen einen oder mehrere der folgenden hier offenbarten Schritte ausführen und/oder ein Mittel zu deren Ausführung sein: Empfangen, Umsetzen, Tokenisieren, Erzeugen, Speichern, Senden, Durchführen, Erzeugen, Ausführen, Assoziieren, Klassifizieren und/oder Indizieren. Die Eingabeeinrichtung 728 kann auch verwendet werden, um andere in der vorliegenden Offenbarung dargelegte Schritte oder Merkmale auszuführen und/oder ein Mittel zu deren Ausführung zu sein.
-
Wie in 7 dargestellt kann das beispielhafte Datenverarbeitungssystem 710 außerdem eine primäre Speichereinrichtung 732 und eine Backup-Speichereinrichtung 733 umfassen, die über die Speicherschnittstelle 734 mit der Kommunikationsinfrastruktur 712 gekoppelt sind. Die Speichereinrichtungen 732 und 733 repräsentieren im Allgemeinen eine beliebige Art oder Form von Speichereinrichtung oder Medium mit der Fähigkeit zum Speichern von Daten und/oder anderen computerlesbaren Anweisungen. Zum Beispiel kann es sich bei den Speichereinrichtungen 732 und 733 um folgendes handeln: Ein magnetisches Plattenlaufwert (z. B. eine so genannte Festplatte), ein Floppy-Laufwerk, ein Magnetbandlaufwerk, ein optisches Laufwerk, ein Flash-Laufwerk oder dergleichen. Die Speicherschnittstelle 734 repräsentiert im Allgemeinen eine beliebige Art oder Form von Schnittstelle oder Einrichtung zum Übermitteln von Daten zwischen den Speichereinrichtungen 732 und 733 und anderen Komponenten des Datenverarbeitungssystem 710. Bei einem Beispiel können die Datenbanken 120 von 1 in der primären Speichereinrichtung 732 gespeichert werden.
-
Bei bestimmten Ausführungsformen können die Speichereinrichtungen 732 und 733 dafür ausgelegt werden, aus einer wechselbaren Speichereinheit zu lesen und/oder in diese zu schreiben, die dafür ausgelegt ist, Computersoftware, Daten oder andere computerlesbare Informationen zu speichern. Beispiele für geeignete wechselbare Speichereinheiten wären ohne Beschränkung eine Floppydisk, ein Magnetband, ein optischer Datenträger, eine Flash-Speichereinrichtung oder dergleichen. Die Speichereinrichtungen 732 und 733 können auch andere ähnliche Strukturen oder Einrichtungen umfassen, die ein Laden von Computersoftware, Daten oder anderen computerlesbaren Anweisungen in das Datenverarbeitungssystem 710 erlauben. Zum Beispiel können die Speichereinrichtungen 732 und 733 dafür ausgelegt werden, Software, Daten oder andere computerlesbare Informationen zu lesen und zu schreiben. Die Speichereinrichtungen 732 und 733 können auch Teil des Datenverarbeitungssystem 710 sein oder können eine separate Einrichtung sein, auf die durch andere Schnittstellensysteme zugegriffen wird.
-
Bei bestimmten Ausführungsformen können die Speichereinrichtung 732 und 733 zum Beispiel verwendet werden, um entweder alleine oder in Kombination mit anderen Elementen einen oder mehrere der folgenden hier offenbarten Schritte auszuführen und/oder ein Mittel für deren Ausführung zu sein: Empfangen, Umsetzen, Tokenisieren, Erzeugen, Speichern, Senden, Durchführen, Erzeugen, Ausführen, Assoziieren, Klassifizieren und/oder Indizieren. Die Speichereinrichtung 732 und 733 können auch verwendet werden, um andere in der vorliegenden Offenbarung dargelegte Schritte und Merkmale auszuführen und/oder ein Mittel zu deren Ausführung zu sein.
-
Es können viele andere Einrichtungen oder Subsysteme mit dem Datenverarbeitungssystem 710 verbunden werden. Umgekehrt müssen nicht alle der in 7 dargestellten Komponenten und Einrichtungen vorliegen, um die hier beschriebenen und/oder dargestellten Ausführungsformen auszuüben. Die oben erwähnten Einrichtungen und Subsysteme können außerdem anders als in 7 gezeigt miteinander verbunden sein. Das Datenverarbeitungssystem 710 kann auch eine beliebige Anzahl von Software-, Firmware- und/oder Hardwarekonfigurationen verwenden. Zum Beispiel können eine oder mehrere der hier offenbarten beispielhaften Ausführungsformen als ein Computerprogramm (das auch als Computersoftware, Softwareanwendungen, computerlesbare Anweisungen oder Computersteuerlogik bezeichnet wird) auf einem computerlesbaren Medium codiert sein. Der Ausdruck „computerlesbares Medium” bezieht sich im Allgemeinen auf eine beliebige Form von Einrichtung, Träger oder Medium mit der Fähigkeit zum Speichern oder Führen von computerlesbaren Anwendungen. Beispiele für computerlesbare Medien wären ohne Beschränkung Medien des Übertragungstyps, wie zum Beispiel Trägerwellen, und physische Medien, wie zum Beispiel magnetische Speichermedien (z. B. Festplattenlaufwerke und Floppydisks), optische Speichermedien (z. B. CD- oder DVD-ROM), elektronische Speichermedien (z. B. Halbleiterlaufwerke und Flash-Medien) und andere Verteilungssysteme.
-
Das computerlesbare Medium, das das Computerprogramm enthält, kann in das Datenverarbeitungssystem 710 geladen werden. Das auf dem computerlesbaren Medium kann das ganz oder teilweise in dem Systemspeicher 716 und/oder in verschiedenen Teilen der Speichereinrichtungen 732 und 733 gespeichert werden. Wenn es durch den Prozessor 714 ausgeführt wird, kann ein in das Datenverarbeitungssystem 710 geladenes Computerprogramm bewirken, dass der Prozessor 714 die Funktionen einer oder mehrerer der hier beschriebenen und/oder dargestellten beispielhaften Ausführungsformen ausführt und/oder ein Mittel zu deren Ausführung ist.
-
Zusätzlich oder als Alternative können eine oder mehrere der hier beschriebenen und/oder dargestellten beispielhaften Ausführungsformen in Firmware und/oder Hardware implementiert werden. Zum Beispiel kann das Datenverarbeitungssystem 710 als eine anwendungsspezifische integrierte Schaltung („ASIC”) konfiguriert werden, die dafür ausgelegt ist, eine oder mehrere der hier offenbarten beispielhaften Ausführungsformen zu implementieren.
-
8 ist ein Blockdiagramm einer beispielhaften Netzwerkarchitektur 800, in der Client-Systeme 810, 820 und 830 und Server 840 und 845 mit einem Netzwerk 850 gekoppelt sein können. Die Client-Systeme 810, 820 und 830 repräsentieren im Allgemeinen eine beliebige Art oder Form von Datenverarbeitungseinrichtung oder -system wie zum Beispiel das beispielhafte Datenverarbeitungssystem 710 in 7. Bei einem Beispiel können die Client-Systeme 810, 820 und 830 und/oder die Server 840 und/oder 845 das System 100 von 1 ganz oder teilweise umfassen.
-
Ähnlich repräsentieren die Server 840 und 845 im Allgemeinen Datenverarbeitungseinrichtungen oder -systeme, wie zum Beispiel Anwendungsserver oder Datenbankserver, die dafür ausgelegt sind, verschiedene Datenbankdienste bereitzustellen und/oder bestimmte Softwareanwendungen auszuführen. Das Netzwerk 850 repräsentiert im Allgemeinen ein beliebiges Telekommunikations- oder Computernetzwerk, darunter zum Beispiel ein Intranet, ein großflächiges Netzwerk („WAN”), ein lokales Netzwerk („LAN”), ein persönliches Netzwerk („PAN”) oder das Internet.
-
Wie in 8 dargestellt, können eine oder mehrere Speichereinrichtungen 860(1)–(N) direkt an den Server 840 angeschlossen werden. Ähnlich können eine oder Speichereinrichtungen 870(1)–(N) direkt an den Server 845 angeschlossen sein. Die Speichereinrichtungen 860(1)–(N) und Speichereinrichtungen 870(1)–(N) repräsentieren im Allgemeine eine beliebige Art oder Form von Speichereinrichtung oder Medium mit der Fähigkeit zum Speichern von Daten und/oder anderen computerlesbaren Anweisungen. Bei bestimmten Ausführungsformen können die Speichereinrichtungen 860(1)–(N) und die Speichereinrichtungen 870(1)–(N) netzwerkangeschlossene Einrichtungen zur Speicherung („NAS”) repräsentieren, die dafür ausgelegt sind, unter Verwendung verschiedener Protokolle, wie zum Beispiel NFS, SMB oder CIFS, mit den Servern 840 und 845 zu kommunizieren.
-
Die Server 840 und 845 können auch mit einem Feld 880 eines Speichernetzwerks („SAN”) verbunden werden. Das SAN-Feld 880 repräsentiert im Allgemeinen eine beliebige Art oder Form von Computernetzwerk oder Architektur mit der Fähigkeit zur Ermöglichung von Kommunikation zwischen mehreren Speichereinrichtungen. Das SAN-Feld 880 kann Kommunikation zwischen den Servern 840 und 845 und mehreren Speichereinrichtungen 890(1)–(N) und/oder einem intelligenten Speicherarray 895 ermöglichen. Das SAN-Feld 880 kann auch über das Netzwerk 850 und die Server 840 und 845 Kommunikation zwischen dem Client-Systemen 810, 820 und 830 und den Speichereinrichtungen 890(1)–(N) und/oder dem intelligenten Speicherarray 895 dergestalt ermöglichen, dass die Einrichtungen 890(1)–(N) und das Array 895 den Client-Systemen 810, 820 und 830 als logisch angeschlossene Einrichtungen erscheinen. Wie bei den Speichereinrichtungen 860(1)–(N) und den Speichereinrichtungen 870(1)–(N) repräsentieren die Speichereinrichtungen 890(1)–(N) und das intelligente Speicherarray 895 im Allgemeinen eine beliebige Art oder Form von Speichereinrichtung oder Medium mit der Fähigkeit zum Speichern von Daten und/oder anderen computerlesbaren Anweisungen.
-
Bei bestimmten Ausführungsformen und mit Bezug auf das beispielhafte Datenverarbeitungssystem 710 von 7 kann eine Kommunikationsschnittstelle, wie zum Beispiel die Kommunikationsschnittstelle 722 in 7, verwendet werden, um Konnektivität zwischen jedem Client-Systeme 810, 820 und 830 und dem Netzwerk 850 bereitzustellen. Die Client-Systeme 810, 820 und 830 können in der Lage sein, zum Beispiel unter Verwendung eines Web-Browsers oder anderer Client-Software auf Informationen auf dem Server 840 oder 845 zuzugreifen. Solche Software kann es den Client-Systemen 810, 820 und 830 erlauben, auf Daten zuzugreifen, die durch den Server 840, den Server 845, die Speichereinrichtungen 860(1)–(N), die Speichereinrichtungen 870(1)–(N), die Speichereinrichtungen 890(1)–(N) oder das intelligente Speicherarray 895 gehostet werden. Obwohl 8 die Verwendung eines Netzwerks (wie zum Beispiel das Internet) zum Austauschen von Daten abbildet, sind die hier beschriebenen und/oder dargestellten Ausführungsformen nicht auf das Internet oder irgendeine bestimmte Umgebung auf Netzwerkbasis beschränkt.
-
Bei mindestens einer Ausführungsform können eine oder mehrere der hier offenbarten beispielhaften Ausführungsformen ganz oder teilweise als ein Computerprogramm codiert und auf den Server 840, den Server 845, die Speichereinrichtungen 860(1)–(N), die Speichereinrichtungen 870(1)–(N), die Speichereinrichtungen 890(1)–(N), das intelligente Speicherarray 895 oder einer beliebigen Kombination davon geladen und durch diese ausgeführt werden. Eine oder mehrere der hier offenbarten beispielhaften Ausführungsformen können außerdem ganz oder teilweise als ein Computerprogramm codiert, in dem Server 840 gespeichert, durch den Server 845 ausgeführt und über das Netzwerk 850 zu den Client-Systemen 810, 820 und 830 verteilt werden. Dementsprechend kann die Netzwerkarchitektur 800 entweder alleine oder in Kombination mit anderen Elementen einen oder mehrere der folgenden hier offenbarten Schritte ausführen und/oder ein Mittel zu deren Ausführung sein: Empfangen, Umsetzen, Tokenisieren, Erzeugen, Speichern, Senden, Durchführen, Erzeugen, Ausführen, Assoziieren, Klassifizieren und/oder Indizieren. Die Netzwerkarchitektur 800 kann auch verwendet werden, um andere in der vorliegenden Offenbarung dargelegte Schritte und Merkmale auszuführen und/oder ein Mittel zu deren Ausführung zu sein.
-
Obwohl die obige Offenbarung verschiedene Ausführungsformen unter Verwendung spezifischer Blockdiagramme, Flussdiagramme und Beispiele darlegt, können alle hier dargestellten Blockdiagrammkomponenten, Flussdiagrammschritte, Operationen und/oder Komponenten individuelle und/oder kollektiv unter Verwendung einer Vielfalt von Hardware-, Software- oder Firmware-Konfigurationen (oder einer beliebigen Kombination davon) implementiert werden. Zusätzlich sollte jede Offenbarung von in anderen Komponenten enthaltenen Komponenten als von beispielhafter Beschaffenheit betrachtet werden, da viele andere Architekturen implementier werden können, um dieselbe Funktionalität zu erreichen.
-
Die hier beschriebenen und/oder dargestellten Prozessparameter und Schrittsequenzen werden lediglich als Beispiel angegeben und können gegebenenfalls variiert werden. Obwohl die hier dargestellten und/oder beschriebenen Schritte möglicherweise in einer bestimmten Reihenfolge gezeigt und besprochen wurden, müssen diese Schritte zum Beispiel nicht unbedingt in der dargestellten oder besprochenen Reihenfolge ausgeführt werden. Die verschiedenen hier beschriebenen und/oder dargestellten beispielhaften Verfahren können außerdem einen oder mehrere der hier beschriebenen oder dargestellten Schritte auslassen oder zusätzlich zu den offenbarten zusätzliche Schritte umfassen.
-
Obwohl verschiedene Ausführungsformen hier im Kontext von vollfunktionsfähigen Datenverarbeitungssystemen beschrieben und/oder dargestellt wurden, können eine oder mehrere dieser beispielhaften Ausführungsformen in vielfältigen Formen ungeachtet der konkreten Art zum tatsächlichen Ausführen der Verteilung verwendeten computerlesbaren Medien als ein Programmprodukt in vielfältigen Formen verteilt werden. Die hier offenbarten Ausführungsformen können auch unter Verwendung von Softwaremodulen implementiert werden, die bestimmte Aufgaben ausführen. Diese Softwaremodule können Script-, Batch- oder andere ausführbare Dateien umfassen, die auf einem computerlesbaren Speichermedium oder in einem Datenverarbeitungssystem gespeichert werden können. Bei bestimmten Ausführungsformen können diese Softwaremodule ein Datenverarbeitungssystem dafür konfigurieren, eine oder mehrere der hier offenbarten beispielhaften Ausführungsformen auszuführen.
-
Ein oder mehrere der hier beschriebenen Softwaremodule können Daten, physische Einrichtungen und/oder Darstellungen physischer Einrichtungen von einer Form in eine andere transformieren. Zum Beispiel können ein oder mehrere der hier beschriebenen Module den Zustand einer Datenspeichereinrichtung durch Speichern von Indizierungsdaten in der Datenspeichereinrichtung transformieren.
-
Die obige Beschreibung wurde angegeben, um es anderen Fachleuten zu ermöglichen, verschiedene Aspekte der hier offenbarten beispielhaften Ausführungsformen am Besten zu nutzen. Diese beispielhafte Beschreibung soll nicht erschöpfend oder auf irgendeine genaue offenbarte Form begrenzt sein. Es sind viele Modifikationen und Varianten möglich, ohne von dem Gedanken und Schutzumfang der vorliegenden Offenbarung abzuweichen. Die offenbarten Ausführungsformen sollten in jeder Hinsicht als veranschaulichend und nicht als einschränkend betrachtet werden. Es sollte bei der Bestimmung des Schutzumfangs der vorliegenden Offenbarung auf die angeführten Ansprüche und ihre Äquivalente Bezug genommen werden.
-
Sofern es nicht anders angegeben wird, sind die in der Beschreibung und in den Ansprüchen verwendeten Ausdrücke „ein” oder „eine” als „mindestens eines von” aufzufassen. Zusätzlich sind zur leichteren Verwendung die in der Beschreibung und in den Ansprüchen verwendeten Wörter „enthaltend” und „aufweisend” mit dem Wort „umfassend” austauschbar und besitzen dieselbe Bedeutung.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- IEEE-794-Hostadapter [0087]