DE112018002266T5 - Kognitives Datenfiltern für Speicherumgebungen - Google Patents

Kognitives Datenfiltern für Speicherumgebungen Download PDF

Info

Publication number
DE112018002266T5
DE112018002266T5 DE112018002266.8T DE112018002266T DE112018002266T5 DE 112018002266 T5 DE112018002266 T5 DE 112018002266T5 DE 112018002266 T DE112018002266 T DE 112018002266T DE 112018002266 T5 DE112018002266 T5 DE 112018002266T5
Authority
DE
Germany
Prior art keywords
data
query
groups
cognitive
filters
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112018002266.8T
Other languages
English (en)
Inventor
Subashini Balachandran
Rui Zhang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112018002266T5 publication Critical patent/DE112018002266T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24549Run-time optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/335Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Abstract

Ein Verfahren für ein kognitives Filtern von Daten in einer Speicherumgebung beinhaltet ein Erzeugen einer Mehrzahl von kognitiven Datenfiltern auf Grundlage von einem oder mehreren Faktoren, um eine Mehrzahl von Gruppen zu erzeugen. Das Verfahren beinhaltet außerdem ein kognitives Filtern von Daten, die durch ein globales Daten-Repository empfangen werden, um unter Verwendung der Mehrzahl von kognitiven Filtern vor einem Empfangen einer Abfrage in dem globalen Daten-Repository unabhängige Teile der Daten in der Mehrzahl von Gruppen zu platzieren. Daten innerhalb einer jeden aus der Mehrzahl von Gruppen teilen ein gemeinsames, definierbares Merkmal.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung bezieht sich auf ein Datenfiltern und im Besonderen auf ein kognitives Datenfiltern für Speicherumgebungen.
  • Große Dateisysteme, die gewaltige Mengen an Daten speichern, z.B. zentrale, verteilte, geclusterte Dateisysteme, sind in der Lage, allen berechtigten Benutzern Zugriff auf alle Dateien und/oder Objekte bereitzustellen, die innerhalb der Dateisysteme gespeichert sind. Wenn ein Benutzer auf Daten in dem Dateisystem zugreifen möchte, wird üblicherweise eine Abfrage an einen Controller oder Speicher-Manager gesendet und ermittelt, welche Daten aus einem globalen Daten-Repository eine angemessene Antwort auf eine solche Abfrage darstellen. Allerdings verbraucht diese Aufgabe eines Untersuchens oder Durchsuchens der gewaltigen Mengen an Daten, die in dem globalen Daten-Repository gespeichert sind, sehr viele Ressourcen und verursacht - neben der zusätzlichen Latenz bei der Verwendung des Dateisystems für andere Abfragen und Operationen - auch Verzögerungen beim Antworten auf solche Abfragen.
  • Darüber hinaus können Big-Data-Analysen ein Untersuchen von sehr großen Teilen (oder der Gesamtheit) der Daten erfordern, die in dem globalen Daten-Repository gespeichert sind. Unter Umständen kann es zu viele Ressourcen verbrauchen, alle Abfragen direkt in dem globalen Daten-Repository auszuführen, und daher werden Abfragen unter Umständen in einer anderen Einheit als dem Controller ausgeführt, die Zugriff auf das globale Daten-Repository hat, indem sie alle Daten aus dem globalen Daten-Repository in die andere Einheit kopiert. Nach dem Ausführen der Analyseoperation(en) werden in manchen Fällen die kopierten Daten aus der anderen Einheit gelöscht, wodurch zur Ausführung einer nachfolgenden Analyseoperation daraufhin ein erneutes Kopieren aller Daten aus dem globalen Daten-Repository erforderlich ist. In anderen Fällen können die kopierten Daten zwischengespeichert werden, was eine gewaltige Menge an lokalem Speicher in der anderen Einheit erfordert. In beiden Fällen beinhalten die kopierten Daten alle Daten in dem globalen Daten-Repository, da es keine Intelligenz gibt, die ermittelt, welche Daten bei der Analyseoperation verwendet werden sollen und was nicht aus dem globalen Daten-Repository kopiert werden muss. Darüber hinaus werden womöglich nicht alle kopierten Daten bei der Analyseoperation verwendet und bei der Verarbeitung der Abfrage daher einfach verworfen, wodurch beträchtliche Ressourcen wie z.B. Netzwerkbandbreite, Verarbeitungsbandbreite, Arbeitsspeicherkapazität, Zeit usw. verschwendet werden.
  • Wenn in dem globalen Daten-Repository ausreichend Verarbeitungskapazität vorhanden ist, um alle Abfragen zu verarbeiten, können die Daten alternativ dennoch zwischengespeichert (d.h. kopiert und in einem lokalen Arbeitsspeicher des globalen Daten-Repositories beibehalten) werden, um die Abfrageverarbeitung zu beschleunigen. Wenn die Abfragen auf diese Weise ausgeführt werden, entsteht ein ähnlicher Ressourcenaufwand, wie wenn die Daten kopiert werden, um die Abfragen in der anderen Einheit auszuführen.
  • KURZDARSTELLUNG
  • Bei einer Ausführungsform beinhaltet ein Verfahren ein Erzeugen einer Mehrzahl von kognitiven Datenfiltern auf Grundlage von einem oder mehreren Faktoren, um eine Mehrzahl von Gruppen zu erzeugen, und ein kognitives Filtern von Daten, die durch ein globales Daten-Repository empfangen werden, um unter Verwendung der Mehrzahl von kognitiven Filtern vor einem Empfangen einer Abfrage in dem globalen Daten-Repository unabhängige Teile der Daten in der Mehrzahl von Gruppen zu platzieren. Daten innerhalb einer jeden aus der Mehrzahl von Gruppen teilen ein gemeinsames, definierbares Merkmal.
  • Bei einer weiteren Ausführungsform beinhaltet ein Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium mit darin enthaltenen Programmanweisungen. Bei dem durch einen Computer lesbaren Speichermedium handelt es sich nicht über ein flüchtiges Signal an sich. Außerdem sind die enthaltenen Programmanweisungen durch eine Verarbeitungsschaltung ausführbar, um die Verarbeitungsschaltung zu veranlassen, durch die Verarbeitungsschaltung eine Mehrzahl von kognitiven Datenfiltern auf Grundlage von einem oder mehreren Faktoren zu erzeugen, um eine Mehrzahl von Gruppen zu erzeugen. Zusätzlich sind die enthaltenen Programmanweisungen durch die Verarbeitungsschaltung ausführbar, um die Verarbeitungsschaltung zu veranlassen, durch die Verarbeitungsschaltung kognitiv Daten zu filtern, die durch ein globales Daten-Repository empfangen werden, um unter Verwendung der Mehrzahl von kognitiven Filtern vor einem Empfangen einer Abfrage in dem globalen Daten-Repository unabhängige Teile der Daten in der Mehrzahl von Gruppen zu platzieren. Daten innerhalb einer jeden aus der Mehrzahl von Gruppen teilen ein gemeinsames, definierbares Merkmal.
  • Bei einer weiteren Ausführungsform beinhaltet ein System eine Verarbeitungsschaltung, einen Arbeitsspeicher und in dem Arbeitsspeicher gespeicherte Logik, die bei Ausführung durch die Verarbeitungsschaltung die Verarbeitungsschaltung veranlasst, eine Mehrzahl von kognitiven Datenfiltern auf Grundlage von einem oder mehreren Faktoren zu erzeugen, um eine Mehrzahl von Gruppen zu erzeugen. Darüber hinaus veranlasst die Logik die Verarbeitungsschaltung, Daten, die durch ein globales Daten-Repository empfangen werden, kognitiv zu filtern, um unter Verwendung der Mehrzahl von kognitiven Filtern vor einem Empfangen einer Abfrage in dem globalen Daten-Repository unabhängige Teile der Daten in der Mehrzahl von Gruppen zu platzieren. Daten innerhalb einer jeden aus der Mehrzahl von Gruppen teilen ein gemeinsames, definierbares Merkmal.
  • Bei einer weiteren Ausführungsform beinhaltet ein Verfahren ein Empfangen von Daten aus einer oder mehreren Quellen in einem globalen Daten-Repository. Die Daten beinhalten Text- und unstrukturierte Daten. Das Verfahren beinhaltet auch ein Speichern der Daten in dem globalen Daten-Repository und ein Konvertieren der unstrukturierten Daten in Daten auf Textgrundlage. Zusätzlich beinhaltet das Verfahren ein Speichern der Daten auf Textgrundlage in dem globalen Daten-Repository und ein Erzeugen einer Mehrzahl von kognitiven Datenfiltern auf Grundlage von einem oder mehreren Faktoren, um eine Mehrzahl von Gruppen zu erzeugen. Die Faktoren beinhalten ein oder mehrere Schlüsselwörter. Außerdem beinhaltet das Verfahren ein kognitives Filtern der Daten, um unter Verwendung der Mehrzahl von kognitiven Filtern vor einem Empfangen einer Abfrage in dem globalen Daten-Repository unabhängige Teile der Daten in der Mehrzahl von Gruppen zu platzieren. Daten innerhalb einer jeden aus der Mehrzahl von Gruppen teilen ein gemeinsames, definierbares Merkmal, und die Mehrzahl von kognitiven Datenfiltern wird auf die Daten auf Textgrundlage angewendet, nachdem diese aus den unstrukturierten Daten konvertiert wurden. Darüber hinaus beinhaltet das Verfahren ein Empfangen einer Angabe zu der Abfrage und ein Ermitteln und Vorabrufen von mindestens einer Gruppe aus der Mehrzahl von Gruppen, die der Abfrage entspricht. Des Weiteren beinhaltet das Verfahren ein Antworten auf die Abfrage, indem Daten innerhalb der mindestens einen Gruppe in eine anfordernde Einheit, welche die Angabe zu der Abfrage bereitgestellt hat, dupliziert werden, und ein Empfangen einer Angabe zur Verwendung von Daten innerhalb der mindestens einen Gruppe, die der anfordernden Einheit in Bezug auf die Abfrage bereitgestellt wird. Darüber hinaus beinhaltet das Verfahren ein Anpassen der Mehrzahl von kognitiven Datenfiltern im Laufe der Zeit, um eine Wirksamkeit der Mehrzahl von kognitiven Datenfiltern, bezogen auf die Verwendung der Daten innerhalb der mindestens einen Gruppe zu verbessern, die der anfordernden Einheit bereitgestellt wird. Die Wirksamkeit der Mehrzahl von kognitiven Datenfiltern beruht auf jedem der folgenden Kriterien: einem Teil der Daten innerhalb der mindestens einen Gruppe, die der anfordernden Einheit bereitgestellt wird, der tatsächlich durch die Abfrage verwendet wird, und einem Prozentsatz aller in der anfordernden Einheit gespeicherten Daten, der für eine Verwendung in der Abfrage verfügbar ist, der innerhalb der mindestens einen Gruppe bereitgestellt wird.
  • Andere Aspekte und Ausführungsformen der vorliegenden Erfindung ergeben sich aus der folgenden ausführlichen Beschreibung, die in Zusammenhang mit den Zeichnungen die Grundgedanken der Erfindung beispielhaft veranschaulicht.
  • Figurenliste
    • 1 stellt einen Cloud-Computing-Knoten gemäß einer Ausführungsform der vorliegenden Erfindung dar.
    • 2 stellt eine Cloud-Computing-Umgebung gemäß einer Ausführungsform der vorliegenden Erfindung dar.
    • 3 stellt Abstraktionsmodellschichten gemäß einer Ausführungsform der vorliegenden Erfindung dar.
    • 4 veranschaulicht ein mehrstufiges Datenspeichersystem gemäß einer Ausführungsform.
    • Die 5A bis 5C zeigen ein verteiltes System während mehrerer Phasen eines Datenfilterns und -gruppierens für ein effizientes Verarbeiten einer Abfrage gemäß einer Ausfü h ru ngsform.
    • 6 zeigt ein Datenfiltern und -gruppieren für ein effizientes Verarbeiten einer Abfrage in einem beispielhaften verteilten System.
    • 7 zeigt ein System, das ein kognitives Datenfiltern ermöglicht, gemäß einer Ausfü h ru ngsform.
    • 8 zeigt einen Ablaufplan eines Verfahrens gemäß einer Ausführungsform.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die folgende Beschreibung dient zur Veranschaulichung der allgemeinen Grundgedanken der vorliegenden Erfindung und ist nicht als Einschränkung der hier beanspruchten erfinderischen Konzepte gedacht. Darüber hinaus können bestimmte hier beschriebene Merkmale in Kombination mit anderen beschriebenen Merkmalen in jeder der verschiedenen möglichen Kombinationen und Umsetzungen verwendet werden.
  • Sofern hier nicht anderweitig konkret genannt, sind sämtliche Begriffe in ihrer größtmöglichen Auslegung zu verstehen, einschließlich aus der Beschreibung hervorgehende Bedeutungen sowie durch einen Fachmann verstandene und/oder in Wörterbüchern, Abhandlungen usw. definierte Bedeutungen.
  • Darüber hinaus ist zu beachten, dass die in der Beschreibung und den beigefügten Ansprüchen verwendeten Singularformen „ein/eine/eines“ und „der/die/das“ auch die Pluralformen einschließt, soweit dies nicht anderweitig angegeben wird. Des Weiteren wird darauf verwiesen, dass die Begriffe „weist auf“ und/oder „aufweisend“ in dieser Beschreibung das Vorhandensein der genannten Merkmale, Ganzzahlen, Schritte, Operationen, Elemente und/oder Komponenten angeben, ohne jedoch das Vorhandensein oder die Hinzufügung von einem/einer oder mehreren anderen Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen, Komponenten und/oder Gruppen derselben auszuschließen. Wie für den Fachmann offensichtlich sein sollte, gibt der Begriff „ungefähr“, wie hierin verwendet, den Wert an, der dem Begriff „ungefähr“ vorangeht, sowie jegliche Werte, die angemessen nahe dem Wert sind, der dem Begriff „ungefähr“ vorangeht. Sofern nicht anderweitig angegeben, bezeichnet der Begriff „ungefähr“ den Wert, der dem Begriff „ungefähr“ vorangeht, ±10 % des Werts. Zum Beispiel gibt „ungefähr 10“ alle Werte von einschließlich 9,0 bis einschließlich 11,0 an.
  • Die folgende Beschreibung offenbart mehrere bevorzugte Ausführungsformen von Systemen, Verfahren und Computerprogrammprodukten für ein kognitives Filtern von Dateien und Objekten in einer Speicherumgebung.
  • Bei einer allgemeinen Ausführungsform beinhaltet ein Verfahren ein Erzeugen einer Mehrzahl von kognitiven Datenfiltern auf Grundlage von einem oder mehreren Faktoren, um eine Mehrzahl von Gruppen zu erzeugen, und ein kognitives Filtern von Daten, die durch ein globales Daten-Repository empfangen werden, um unter Verwendung der Mehrzahl von kognitiven Filtern vor einem Empfangen einer Abfrage in dem globalen Daten-Repository unabhängige Teile der Daten in der Mehrzahl von Gruppen zu platzieren. Daten innerhalb einer jeden aus der Mehrzahl von Gruppen teilen ein gemeinsames, definierbares Merkmal.
  • Bei einer weiteren allgemeinen Ausführungsform beinhaltet ein Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium mit darin enthaltenen Programmanweisungen. Bei dem durch einen Computer lesbaren Speichermedium handelt es sich nicht über ein flüchtiges Signal an sich. Außerdem sind die enthaltenen Programmanweisungen durch eine Verarbeitungsschaltung ausführbar, um die Verarbeitungsschaltung zu veranlassen, durch die Verarbeitungsschaltung eine Mehrzahl von kognitiven Datenfiltern auf Grundlage von einem oder mehreren Faktoren zu erzeugen, um eine Mehrzahl von Gruppen zu erzeugen. Zusätzlich sind die enthaltenen Programmanweisungen durch die Verarbeitungsschaltung ausführbar, um die Verarbeitungsschaltung zu veranlassen, durch die Verarbeitungsschaltung kognitiv Daten zu filtern, die durch ein globales Daten-Repository empfangen werden, um unter Verwendung der Mehrzahl von kognitiven Filtern vor einem Empfangen einer Abfrage in dem globalen Daten-Repository unabhängige Teile der Daten in der Mehrzahl von Gruppen zu platzieren. Daten innerhalb einer jeden aus der Mehrzahl von Gruppen teilen ein gemeinsames, definierbares Merkmal.
  • Bei einer weiteren allgemeinen Ausführungsform beinhaltet ein System eine Verarbeitungsschaltung, einen Arbeitsspeicher und in dem Arbeitsspeicher gespeicherte Logik, die bei Ausführung durch die Verarbeitungsschaltung die Verarbeitungsschaltung veranlasst, eine Mehrzahl von kognitiven Datenfiltern auf Grundlage von einem oder mehreren Faktoren zu erzeugen, um eine Mehrzahl von Gruppen zu erzeugen. Darüber hinaus veranlasst die Logik die Verarbeitungsschaltung, Daten, die durch ein globales Daten-Repository empfangen werden, kognitiv zu filtern, um unter Verwendung der Mehrzahl von kognitiven Filtern vor einem Empfangen einer Abfrage in dem globalen Daten-Repository unabhängige Teile der Daten in der Mehrzahl von Gruppen zu platzieren. Daten innerhalb einer jeden aus der Mehrzahl von Gruppen teilen ein gemeinsames, definierbares Merkmal.
  • Bei einer weiteren allgemeinen Ausführungsform beinhaltet ein Verfahren ein Empfangen von Daten aus einer oder mehreren Quellen in einem globalen Daten-Repository. Die Daten beinhalten Text- und unstrukturierte Daten. Das Verfahren beinhaltet auch ein Speichern der Daten in dem globalen Daten-Repository und ein Konvertieren der unstrukturierten Daten in Daten auf Textgrundlage. Zusätzlich beinhaltet das Verfahren ein Speichern der Daten auf Textgrundlage in dem globalen Daten-Repository und ein Erzeugen einer Mehrzahl von kognitiven Datenfiltern auf Grundlage von einem oder mehreren Faktoren, um eine Mehrzahl von Gruppen zu erzeugen. Die Faktoren beinhalten ein oder mehrere Schlüsselwörter. Außerdem beinhaltet das Verfahren ein kognitives Filtern der Daten, um unter Verwendung der Mehrzahl von kognitiven Filtern vor einem Empfangen einer Abfrage in dem globalen Daten-Repository unabhängige Teile der Daten in der Mehrzahl von Gruppen zu platzieren. Daten innerhalb einer jeden aus der Mehrzahl von Gruppen teilen ein gemeinsames, definierbares Merkmal, und die Mehrzahl von kognitiven Datenfiltern wird auf die Daten auf Textgrundlage angewendet, nachdem diese aus den unstrukturierten Daten konvertiert wurden. Darüber hinaus beinhaltet das Verfahren ein Empfangen einer Angabe zu der Abfrage und ein Ermitteln und Vorabrufen von mindestens einer Gruppe aus der Mehrzahl von Gruppen, die der Abfrage entspricht Des Weiteren beinhaltet das Verfahren ein Antworten auf die Abfrage, indem Daten innerhalb der mindestens einen Gruppe in eine anfordernde Einheit, welche die Angabe zu der Abfrage bereitgestellt hat, dupliziert werden, und ein Empfangen einer Angabe zur Verwendung von Daten innerhalb der mindestens einen Gruppe, die der anfordernden Einheit in Bezug auf die Abfrage bereitgestellt wird. Darüber hinaus beinhaltet das Verfahren ein Anpassen der Mehrzahl von kognitiven Datenfiltern im Laufe der Zeit, um eine Wirksamkeit der Mehrzahl von kognitiven Datenfiltern, bezogen auf die Verwendung der Daten innerhalb der mindestens einen Gruppe zu verbessern, die der anfordernden Einheit bereitgestellt wird. Die Wirksamkeit der Mehrzahl von kognitiven Datenfiltern beruht auf jedem der folgenden Kriterien: einem Teil der Daten innerhalb der mindestens einen Gruppe, die der anfordernden Einheit bereitgestellt wird, der tatsächlich durch die Abfrage verwendet wird, und einem Prozentsatz aller in der anfordernden Einheit gespeicherten Daten, der für eine Verwendung in der Abfrage verfügbar ist, der innerhalb der mindestens einen Gruppe bereitgestellt wird.
  • Es sei von vornherein klargestellt, dass das Umsetzen der hierin angeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist, obwohl diese Offenbarung eine ausführliche Beschreibung von Cloud-Computing enthält. Stattdessen können Ausführungsformen der vorliegenden Erfindung gemeinsam mit jeder beliebigen Art von jetzt bekannter oder später erfundener Datenverarbeitungsumgebung umgesetzt werden.
  • Cloud-Computing ist ein Servicebereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Hauptspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Service schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften enthalten, mindestens drei Dienstmodelle und mindestens vier Implementierungsmodelle.
  • Bei den Eigenschaften handelt es sich um die Folgenden:
    • On-Demand Self-Service: Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf für Datenverarbeitungsfunktionen wie Serverzeit und Netzwerkspeicher sorgen, ohne dass eine menschliche Interaktion mit dem Anbieter der Dienste erforderlich ist.
  • Broad Network Access: Es sind Funktionen über ein Netzwerk verfügbar, auf die durch Standardmechanismen zugegriffen wird, welche die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
  • Resource-Pooling: Die Datenverarbeitungsressourcen des Anbieters werden zusammengeschlossen, um mehreren Nutzern unter Verwendung eines Multi-Tenant-Modells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen (z.B. Land, Staat oder Rechenzentrum).
  • Rapid Elasticity: Funktionen können für eine schnelle horizontale Skalierung (Scale-out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt und sie können jederzeit in jeder beliebigen Menge gekauft werden.
  • Measured Service: Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Der Ressourcen-Verbrauch kann überwacht, gesteuert und gemeldet werden wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
  • Bei den Dienstmodellen handelt es sich um die Folgenden:
    • Software as a Service (SaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur laufenden Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine Thin-Client-Schnittstelle wie einen Web-Browser (z.B. auf dem Web beruhende E-Mail) von verschiedenen Client-Einheiten her zugänglich. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von eingeschränkten benutzerspezifischen Anwendungskonfigurationseinstellungen.
  • Platform as a Service (PaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen des Application Hosting Environment.
  • Infrastructure as a Service (laaS): Die dem Nutzer bereitgestellte Funktion besteht darin, das Verarbeiten, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
  • Bei den Einsatzmodellen handelt es sich um die Folgenden:
    • Private Cloud: Die Cloud-Infrastruktur wird einzig und allein für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder in fremden Räumen befinden.
  • Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Benutzergemeinschaft, die gemeinsame Angelegenheiten hat (z.B. Mission, Sicherheitsanforderungen, Richtlinien sowie Überlegungen bezüglich der Einhaltung von Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann in den eigenen Räumen oder fremden Räumen stehen.
  • Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und sie gehört einer Cloud-Dienste verkaufenden Organisation.
  • Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Einheiten bleiben, aber durch eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die Daten- und Anwendungsportierbarkeit ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastenausgleich zwischen Clouds).
  • Eine Cloud-Computing-Umgebung ist dienstorientiert mit Fokus auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität. Im Herzen von Cloud-Computing liegt eine Infrastruktur, die ein Netzwerk aus zusammengeschalteten Knoten aufweist.
  • Unter Bezugnahme auf 1 wird eine schematische Darstellung eines Beispiels für einen Cloud-Computing-Knoten gezeigt. Ein Cloud-Computing-Knoten 10 ist lediglich ein Beispiel für einen geeigneten Cloud-Computing-Knoten und nicht als eine wie auch immer geartete Beschränkung von Verwendungsumfang oder Funktionalität von Ausführungsformen der hier beschriebenen Erfindung gedacht. Unabhängig davon kann der Cloud-Computing-Knoten 10 mit jeder beliebigen hier dargelegten Funktionalität realisiert sein und/oder diese durchführen.
  • In dem Cloud-Computing-Knoten 10 gibt es ein Computersystem/einen Server 12, das bzw. der mit zahlreichen anderen Universal- oder Spezial-Datenverarbeitungssystemumgebungen oder -konfigurationen betrieben werden kann. Beispiele bekannter Datenverarbeitungssysteme, -umgebungen und/oder -konfigurationen, die für eine Verwendung mit einem Computersystem/Server 12 geeignet sein könnten, sind, ohne jedoch darauf beschränkt zu sein, Personal-Computersysteme, Server-Computersysteme, Thin Clients, Thick Clients, Handheld- oder Laptop-Einheiten, Mehrprozessorsysteme, Systeme auf Grundlage von Mikroprozessoren, Set-Top-Boxen, programmierbare Unterhaltungselektronik, Netzwerk-PCs, Mini-Computersysteme, Mainframe-Computersysteme sowie verteilte Cloud-Computing-Umgebungen, die ein beliebiges der obigen Systeme oder eine beliebige der obigen Einheiten beinhalten, und dergleichen.
  • Das Computersystem/der Server 12 lässt sich im allgemeinen Zusammenhang von Anweisungen beschreiben, die durch ein Computersystem ausführbar sind, wie z.B. Programmmodule, die durch ein Computersystem ausgeführt werden. Allgemein können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen usw. beinhalten, die bestimmte Aufgaben durchführen oder bestimmte abstrakte Datentypen realisieren. Das Computersystem/der Server 12 kann in verteilten Cloud-Computing-Umgebungen eingesetzt werden, wo Aufgaben von entfernt angeordneten Verarbeitungseinheiten durchgeführt werden, die über ein Datenübertragungsnetzwerk verbunden sind. In einer verteilten Cloud-Computing-Umgebung können sich Programmmodule sowohl in lokalen als auch in entfernt angeordneten Computersystem-Speichermedien wie beispielsweise Arbeitsspeichereinheiten befinden.
  • 1 zeigt das Computersystem/den Server 12 in dem Cloud-Computing-Knoten 10 als eine Universal-Datenverarbeitungseinheit. Die Komponenten des Computersystems/Servers 12 können eine(n) oder mehrere Prozessoren oder Verarbeitungseinheiten 16, einen Systemarbeitsspeicher 28 und einen Bus 18 beinhalten, der verschiedene Systemkomponenten wie z.B. den Systemarbeitsspeicher 28 mit dem Prozessor 16 verbindet, ohne jedoch darauf beschränkt zu sein.
  • Der Bus 18 steht für mindestens eine von beliebigen mehreren Arten von Busstrukturen, z.B. ein Speicherbus oder ein Arbeitsspeicher-Controller, ein Peripheriebus, ein Accelerated Graphics Port (AGP) und ein Prozessor- oder lokaler Bus, wobei eine beliebige aus einer Vielfalt von Busarchitekturen verwendet werden kann. Beispielhaft und nicht als Beschränkung zu verstehen, beinhalten derartige Architekturen einen ISA-Bus (Industry Standard Architecture), einen MCA-Bus (Micro Channel Architecture), einen EISA-Bus (Enhanced ISA), einen lokalen VESA-Bus (Video Electronics Standards Association) und einen PCI-Bus (Peripheral Component Interconnect).
  • Das Computersystem/der Server 12 beinhaltet üblicherweise eine Vielfalt von Medien, die durch ein Computersystem lesbar sind. Derartige Medien können beliebige verfügbare Medien sein, auf die das Computersystem/der Server 12 zugreifen kann, und sowohl flüchtige als auch nicht flüchtige, entfernbare als auch nicht entfernbare Medien beinhalten.
  • Der Systemarbeitsspeicher 28 kann ein durch ein Computersystem lesbares Medium in Form eines flüchtigen Arbeitsspeichers wie z.B. eines RAM 30 (Random Access Memory) und/oder eines Caches 32 beinhalten. Das Computersystem/der Server 12 kann des Weiteren andere entfernbare/nicht entfernbare, flüchtige/nicht flüchtige Computersystem-Speichermedien beinhalten. Nur um ein Beispiel zu geben, kann ein Speichersystem 34 zum Lesen von und Schreiben auf ein nicht entfernbares, nicht flüchtiges magnetisches Medium bereitgestellt werden (das nicht gezeigt ist und üblicherweise als eine „Festplatte“ bezeichnet wird). Obwohl hier nicht abgebildet, können ein Magnetplattenlaufwerk zum Lesen von und Schreiben auf eine entfernbare, nicht flüchtige Magnetplatte (z.B. eine „Diskette“) sowie ein optisches Plattenlaufwerk zum Lesen von oder Schreiben auf eine entfernbare, nicht flüchtige optische Platte wie z.B. einen CD-ROM, einen DVD-ROM oder ein anderes optisches Medium bereitgestellt werden. In diesen Fällen kann jedes Laufwerk über eine oder mehrere Datenmedienschnittstellen mit dem Bus 18 verbunden sein. Wie weiter unten ausführlicher dargestellt und beschrieben, kann der Arbeitsspeicher 28 mindestens ein Programmprodukt mit einem Satz von (z.B. mindestens einem) Programmmodulen beinhalten, die konfiguriert sind, um die Funktionen von Ausführungsformen der Erfindung durchzuführen.
  • Zum Beispiel und ohne als Beschränkung gedacht zu sein, kann ein Programm/Dienstprogramm 40 mit einem Satz von (mindestens einem) Programmmodulen 42 in dem Arbeitsspeicher 28 gespeichert sein, ebenso wie ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten. Das Betriebssystem, das eine oder die mehreren Anwendungsprogramme, die anderen Programmmodule und die Programmdaten oder eine Kombination hiervon können jeweils eine Realisierung einer Netzwerkumgebung beinhalten. Die Programmmodule 42 führen im Allgemeinen die Funktionen und/oder Verfahrensweisen von Ausführungsformen der hier beschriebenen Erfindung aus.
  • Das Computersystem/der Server 12 kann zudem mit einer oder mehreren externen Einheiten 14 Daten austauschen, z.B. mit einer Tastatur, einer Zeigeeinheit, einer Anzeige 24 usw.; mit einer oder mehreren Einheiten, die einem Benutzer gestatten, mit dem Computersystem/Server 12 zu interagieren; und/oder mit beliebigen Einheiten (z.B. Netzwerkkarte, Modem usw.), die dem Computersystem/Server 12 ermöglichen, mit einer oder mehreren anderen Datenübertragungseinheiten Daten auszutauschen. Eine derartige Datenübertragung kann über Eingabe-/Ausgabe-Schnittstellen (E/A-Schnittstellen) 22 erfolgen. Des Weiteren kann das Computersystem/der Server 12 über einen Netzwerkadapter 20 mit einem oder mehreren Netzwerken Daten austauschen, z.B. mit einem lokalen Netzwerk (Local Area Network, LAN), einem Weitverkehrsnetzwerk (Wide Area Network, WAN) und/oder einem öffentlichen Netzwerk (z.B. dem Internet). Wie dargestellt, tauscht der Netzwerkadapter 20 über den Bus 18 Daten mit den anderen Komponenten des Computersystems/Servers 12 aus. Dabei sollte klar sein, dass - obwohl sie hier nicht abgebildet sind - auch andere Hardware- und/oder Software-Komponenten in Verbindung mit dem Computersystem/Server 12 verwendet werden könnten. Beispiele hierfür sind, ohne darauf beschränkt zu sein, Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Plattenlaufwerksstapel, RAID-Systeme, Bandlaufwerke und Datenarchivierungsspeichersysteme usw.
  • Unter Bezugnahme auf 2 ist eine veranschaulichende Cloud-Computing-Umgebung 50 dargestellt. Wie gezeigt ist, beinhaltet die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 10, mit denen von Cloud-Benutzern verwendete lokale Datenverarbeitungseinheiten wie der elektronische Assistent (PDA, Personal Digital Assistant) oder das Mobiltelefon 54A, der Desktop Computer 54B, der Laptop Computer 54C und/oder das Automobil-Computer-System 54N Daten austauschen können. Die Knoten 10 können miteinander Daten austauschen. Sie können physisch oder virtuell in ein oder mehrere Netzwerke wie private, Benutzergemeinschafts-, öffentliche oder hybride Clouds gruppiert werden (nicht gezeigt), wie vorstehend beschrieben wurde, oder in eine Kombination daraus. Dies ermöglicht es der Cloud-Computing-Umgebung 50, Infrastruktur, Plattformen und/oder Software als Dienst anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es sei darauf hingewiesen, dass die Arten von in 2 gezeigten Datenverarbeitungseinheiten 54A bis N lediglich veranschaulichend sein sollen und dass die Datenverarbeitungsknoten 10 und die Cloud-Computing-Umgebung 50 über eine beliebige Art Netzwerk und/oder über eine beliebige Art von über ein Netzwerk aufrufbarer Verbindung (z.B. unter Verwendung eines Web-Browsers) mit einer beliebigen Art von computergestützter Einheit Daten austauschen können.
  • Unter Bezugnahme auf 3 wird ein Satz von funktionalen Abstraktionsschichten gezeigt, die durch die Cloud-Computing-Umgebung 50 (2) bereitgestellt werden. Es sollte von vornherein klar sein, dass die in 2 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie abgebildet ist, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt.
  • Eine Hardware- und Software-Schicht 60 enthält Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten gehören: Mainframe Computer 61; auf der RISC-(Reduced Instruction Set Computer) Architektur beruhende Server 62; Server 63; Blade-Server 64; Speichereinheiten 65; und Netzwerke sowie Netzwerkkomponenten 66. In einigen Ausführungsformen beinhalten Software-Komponenten eine Netzwerk-Anwendungsserver-Software 67 und eine Datenbank-Software 68.
  • Eine Virtualisierungsschicht 70 stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Einheiten bereitgestellt werden können: virtuelle Server 71, virtueller Speicher 72, virtuelle Netzwerke 73, darunter virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme 74; und virtuelle Clients 75.
  • In einem Beispiel kann eine Verwaltungsschicht 80 die nachfolgend beschriebenen Funktionen bereitstellen. Eine Ressourcen-Bereitstellung 81 stellt die dynamische Beschaffung von Datenverarbeitungsressourcen sowie anderen Ressourcen bereit, die zum Durchführen von Aufgaben innerhalb der Cloud-Computing-Umgebung verwendet werden. Ein Messen und eine Preisfindung 82 stellen die Kostenverfolgung beim Verwenden von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie die Abrechnung oder Rechnungsstellung für den Verbrauch dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungs-Software-Lizenzen aufweisen. Die Sicherheit stellt die Identitätsüberprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 83 stellt Nutzern und Systemadministratoren den Zugang zu der Cloud-Computing-Umgebung bereit. Eine Verwaltung des Dienstumfangs 84 stellt die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, so dass die benötigten Dienstziele erreicht werden. Ein Planen und Erfüllen von Vereinbarungen zum Dienstumfang (SLA, Service Level Agreement) 85 stellt die Anordnung vorab und die Beschaffung von Cloud-Computing-Ressourcen, für die eine zukünftige Anforderung vorausgesehen wird, gemäß einem SLA bereit.
  • Eine Arbeitslastschicht 90 stellt Beispiele für die Funktionalität bereit, für welche die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören: Abbildung und Navigation 91; Software-Entwicklung und Lebenszyklusverwaltung 92; Bereitstellung von Ausbildung in virtuellen Klassenzimmern 93; Datenanalytikverarbeitung 94; Transaktionsverarbeitung 95; und kognitive Datei-/Objektfilterung für Speicherumgebungen 96.
  • Unter Bezugnahme auf 4 ist ein mehrstufiges Speichersystem 400 gemäß einer Ausführungsform gezeigt, das bei manchen Ansätzen für einen öffentlichen, mehrstufigen Objektspeicher stehen kann. Es sei darauf hingewiesen, dass einige der in 4 gezeigten Elemente gemäß verschiedenen Ausführungsformen als Hardware und/oder Software realisiert sein können. Das Speichersystem 400 kann einen Speichersystem-Manager 412 für eine Datenübertragung mit einer Mehrzahl von Medien in mindestens einer höheren Speicherstufe 402 und mindestens einer niedrigeren Speicherstufe 406 beinhalten. Die höhere(n) Speicherstufe(n) 402 kann bzw. können vorzugsweise Medien 404 mit wahlfreiem und/oder direktem Zugriff wie z.B. einen nicht flüchtigen Arbeitsspeicher (Non-Volatile Memory, NVM), einen Halbleiterspeicher in Halbleiterlaufwerken (Solid State Drives, SSDs), einen Flash-Speicher, SSD-Arrays, Flash-Speicher-Arrays, Festplatten in Festplattenlaufwerken (Hard Disk Drives, HDDs) usw. und/oder andere hier erwähnte oder nach dem Stand der Technik bekannte Medien beinhalten. Die niedrigere(n) Speicherstufe(n) 406 kann bzw. können vorzugsweise ein oder mehrere weniger leistungsstarke Speichermedien 408 wie z.B. langsamer zugreifende HDDs, Medien mit sequenziellem Zugriff wie Magnetband in Bandlaufwerken und/oder optische Medien usw. und/oder andere hier bekannte oder nach dem Stand der Technik bekannte Medien beinhalten. Eine oder mehrere zusätzliche Speicherstufen 416 können eine beliebige Kombination von Speichermedien beinhalten, wie dies durch einen Konstrukteur des Systems 400 gewünscht wird. Darüber hinaus kann jede der höheren Speicherstufen 402 und/oder der niedrigeren Speicherstufen 406 eine wie auch immer geartete Kombination von Speichereinheiten und/oder Speichermedien beinhalten.
  • Der Speichersystem-Manager 412 kann mit den Speichermedien 404, 408 in der bzw. den höheren Speicherstufe(n) 402 und niedrigeren Speicherstufe(n) 406 über ein Netzwerk 410 wie beispielsweise ein Speicherbereichsnetzwerk (Storage Area Network, SAN), wie es z.B. in 4 gezeigt wird, oder aber mit einem anderweitigen geeigneten Netzwerktyp Daten austauschen. Der Speichersystem-Manager 412 kann außerdem über eine Host-Schnittstelle 414, die ein Teil des Speichersystem-Managers 412 sein kann, mit einem oder mehreren (nicht gezeigten) Host-Systemen Daten austauschen. Der Speichersystem-Manager 412 und/oder jedwede andere Komponente des Speichersystems 400 kann in Hardware und/oder Software realisiert sein und einen (nicht gezeigten) Prozessor zum Ausführen von Befehlen eines nach dem Stand der Technik bekannten Typs verwenden, z.B. eine Zentraleinheit (Central Processing Unit, CPU), ein feldprogrammierbares Gatter-Array (Field Programmable Gate Array, FPGA), eine anwendungsspezifische integrierte Schaltung (Application Specific Integrated Circuit, ASIC) usw. Selbstverständlich kann eine beliebige Anordnung eines Speichersystems verwendet werden, wie für den Fachmann beim Lesen der vorliegenden Beschreibung offensichtlich sein dürfte.
  • Bei weiteren Ausführungsformen kann das Speichersystem 400 eine beliebige Anzahl von Datenspeicherstufen beinhalten und innerhalb einer jeden Speicherstufe dieselben oder verschiedene Speichermedien beinhalten. Zum Beispiel kann jede Datenspeicherstufe dieselbe Art von Speichermedien wie z.B. HDDs, SSDs, Medien mit sequenziellem Zugriff (Band in Bandlaufwerken, optische Platte in optischen Plattenlaufwerken usw.), Direktzugriffsmedien (CD-ROM, DVD-ROM usw.) oder eine beliebige Kombination von Medienspeichertypen beinhalten. Bei einer solchen Konfiguration kann eine höhere Speicherstufe 402 eine Mehrheit von SSD-Speichermedien (bis hin zu und einschließlich aller SSD-Speichermedien) zum Speichern von Daten in einer leistungsstärkeren Speicherumgebung beinhalten, und die verbleibenden Speicherstufen wie z.B. die niedrigere Speicherstufe 406 und die zusätzlichen Speicherstufen 416 können eine beliebige Kombination von SSDs, HDDs, Bandlaufwerken usw. zum Speichern von Daten in einer weniger leistungsstarken Speicherumgebung beinhalten. Auf diese Weise können Daten, auf die häufiger zugegriffen wird, Daten mit einer höheren Priorität, Daten, auf die schneller zugegriffen werden muss usw. in der höheren Speicherstufe 402 gespeichert werden, während Daten ohne eines dieser Merkmale in den zusätzlichen Speicherstufen 416 wie z.B. der niedrigeren Speicherstufe 406 gespeichert werden können. Selbstverständlich sollte ein Fachmann beim Lesen der vorliegenden Beschreibungen in der Lage sein, gemäß den hier dargelegten Ausführungsformen viele andere Kombinationen von Speichermedientypen für eine Realisierung in verschiedenen Speicherschemata zu entwickeln.
  • Bei einer bestimmten Ausführungsform kann das Speichersystem 400 eine Kombination von SSDs und HDDs beinhalten, wobei die höhere Speicherstufe 402 SSDs (und möglicherweise einen wie auch immer gearteten Pufferspeicher) und die niedrigere Speicherstufe 406 HDDs (und möglicherweise einen wie auch immer gearteten Pufferspeicher) beinhaltet. Gemäß einer weiteren Ausführungsform kann das Speichersystem 400 eine Kombination von SSDs und Magnetband mit Magnetbandlaufwerken beinhalten, wobei die höhere Speicherstufe 402 SSDs (und möglicherweise einen wie auch immer gearteten Pufferspeicher) und die niedrigere Speicherstufe 406 Magnetband (und möglicherweise einen wie auch immer gearteten Pufferspeicher) sowie Magnetbandlaufwerke zum Zugreifen auf Daten auf den Magnetbändern beinhaltet. Bei einer weiteren Ausführungsform kann das Speichersystem 400 eine Kombination von HDDs und Magnetband beinhalten, wobei die höhere Speicherstufe 402 HDDs (und möglicherweise einen wie auch immer gearteten Pufferspeicher) und die niedrigere Speicherstufe 406 Magnetband (und möglicherweise einen wie auch immer gearteten Pufferspeicher) beinhaltet.
  • Unter Bezugnahme auf 5A wird ein zentrales, verteiltes und geclustertes Dateisystem 500 (im Folgenden „verteiltes System 500“) gemäß einer Ausführungsform gezeigt. Dieses verteilte System 500 kann gemäß verschiedenen Ausführungsformen bei einem beliebigen der hier beschriebenen kognitiven Filterverfahren verwendet werden. Das verteilte System 500 kann eine beliebige Anzahl von Dateien und/oder Objekten (im Folgenden „Dateien 504“) beinhalten, die Informationen und/oder Daten speichern und/oder beinhalten und auf die ein oder mehrere Benutzer 502 des verteilten Systems 500 zugreifen können. Darüber hinaus beinhaltet das verteilte System 500 einen zentralen Cluster 506, der als ein globales Daten-Repository konfiguriert ist, eine Mehrzahl von lokalen Cache-Clustern 508a, 508b, ..., 508n (im Folgenden „lokale Cluster 508“, wenn auf sie als Gruppe Bezug genommen wird), die sich in geografischer Hinsicht von dem zentralen Cluster unterscheiden, und ein oder mehrere Netzwerke 510, welche die verschiedenen lokalen Cluster 508 mit dem zentralen Cluster 506 verbinden. Wie für den Fachmann beim Lesen der vorliegenden Beschreibungen offensichtlich sein dürfte, kann eine beliebige Art von Netzwerk(en) 510 verwendet werden, z.B. das Internet, ein WAN, ein LAN, ein SAN usw., ohne jedoch darauf beschränkt zu sein.
  • Zusätzlich beinhalten der zentrale Cluster 506 und jeder der lokalen Cluster 508 eine Hardware-Verarbeitungsschaltung, die konfiguriert ist, um ihr bereitgestellte Programmanweisungen auszuführen. Andere Hardware- und/oder Software-Komponenten, die hier nicht ausdrücklich beschrieben sind, können ebenfalls in dem zentralen Cluster 506 und/oder einem oder mehreren der lokalen Cluster 508 enthalten sein, wie dem Fachmann bekannt sein dürfte.
  • Bei einer Ausführungsform können eine oder mehrere der Hardware-Komponenten innerhalb des zentralen Clusters 506 und/oder einem oder mehreren der lokalen Cluster 508 redundante Komponenten aufweisen, die parallel angeordnet sind, um in Fällen eine redundante Funktionalität durchzuführen, in denen eine primäre Hardware-Komponente ausfällt, nicht mehr mit Strom versorgt wird usw. und nicht verfügbar ist, um die ihr zugewiesene(n) Aufgabe(n) durchzuführen.
  • Zusätzlich beinhalten der zentrale Cluster 506 und jeder der lokalen Cluster 508 eine oder mehrere Arten von durch einen Computer lesbaren Speichermedien 512. In dem zentralen Cluster 506 und den verschiedenen lokalen Clustern 508 kann jede Art von der durch einen Computer lesbaren Speichermedien 512 verwendet werden, z.B., ohne jedoch darauf beschränkt zu sein, Speichereinheiten mit einem nicht flüchtigen Arbeitsspeicher (NVM), Direktzugriffsspeicher-Einheiten (Direct Access Storage Devices, DASDs), ArbeitsspeicherEinheiten usw. Alle beliebigen geeigneten NVM-Einheiten können verwendet werden, z.B. ein Flash-Speicher, ein RAM, ein löschbarer programmierbarer Nur-Lese-Speicher (Erasable Programmable Read-Only Memory, EPROM), Halbleiterlaufwerkseinheiten (SSDs) usw. Darüber hinaus können beliebige DASDs verwendet werden, z.B. HDDs, Bandmedien zur Verwendung mit einem Bandlaufwerk, optische Laufwerke usw. Zusätzlich kann in den durch einen Computer lesbaren Speichermedien 512 ein Cache oder Puffer vorhanden sein, um vor einer Speicherung in den durch einen Computer lesbaren Speichermedien 512 eine Datenbereitstellung durchzuführen.
  • Die in dem zentralen Cluster 506 gespeicherten Dateien 504 und die in den lokalen Clustern 508 gespeicherten Dateien können Informationen von unterschiedlicher Art (Textdaten, Videodaten, Audiodaten, unstrukturierte Daten usw.), Größe, von unterschiedlichem Gehalt oder Inhalt beinhalten, wie dem Fachmann klar sein dürfte. Darüber hinaus können bei manchen Ansätzen Metadaten, die den Dateien 504 zugehörig sind, mindestens einige der Merkmale der verschiedenen Dateien 504 angeben. Allerdings sind die in dem zentralen Cluster 506 gespeicherten Dateien 504 bei herkömmlichen Ansätzen nicht in einer wie auch immer gearteten aussagekräftigen Weise organisiert, die ein effizientes Durchsuchen und/oder Filtern der Dateien bereitstellen würde.
  • Unter Bezugnahme auf 5B wird ein Prozess beschrieben, der ein kognitives Filtern der Dateien 504 in Untercontainer des zentralen Clusters 506 gemäß einer Ausführungsform bereitstellt. Bei verschiedenen Ansätzen verbessert und fördert dieser Prozess die Fähigkeit, die in dem zentralen Cluster 506 gespeicherten Dateien 504 zu durchsuchen und/oder zu filtern, um Dateien zu ermitteln, die mit größerer Wahrscheinlichkeit relevant für eine Abfrage sind.
  • Neben proprietären Algorithmen, die von großen Technologieunternehmen wie Google®, Microsoft®, Baidu®, Tencent® usw. bereitgestellt werden, kann jeder beliebige bekannte Suchalgorithmus verwendet werden, z.B., ohne jedoch darauf beschränkt zu sein, der Rabin-Karp-Zeichenketten-Suchalgorithmus, ein Suchalgorithmus auf Grundlage eines Zustandsautomaten, der Knuth-Morris-Pratt-Algorithmus usw.
  • Um die Dateien 504 in dem zentralen Cluster 506 zu organisieren, werden alle in den Dateien 504 gespeicherten unstrukturierten Daten in Text in Dateien auf Textgrundlage oder in mit Text annotierte Dateien konvertiert (im Falle von Bildern und/oder Videodateien können Textannotationen den Originaldateien als Metadaten hinzugefügt werden), die unter Verwendung einer Mehrzahl von herkömmlichen Suchalgorithmen einfach und effizient durchsuchbar sind. Im weiteren Verlauf dieser Beschreibungen werden reine Textdateien und mit Text annotierte Dateien gemischten Inhalts als Dateien auf Textgrundlage bezeichnet. Sobald eine Originaldatei aus den Dateien 504 in eine Datei auf Textgrundlage konvertiert wird, wird eine Verbindung zwischen der ursprünglichen Datei und der erzeugten Datei auf Textgrundlage hergestellt, so dass jede beliebige Suche, welche die Datei auf Textgrundlage zurückgibt, zu der Originaldatei zurückverfolgt werden kann.
  • Bei einer Ausführungsform können eine oder mehrere Anwendungsprogrammschnittstellen (Application Program Interfaces, APIs) verwendet werden, um die unstrukturierten Daten in Daten auf Textgrundlage zu konvertieren Auf jede Art von unstrukturierten Daten kann eine andere Art von API angewendet werden, um die unstrukturierten Daten in Daten auf Textgrundlage zu konvertieren Bei einer Ausführungsform können IBM® BlueMix® Watson-APIs für die Konvertierung in Daten auf Textgrundlage verwendet werden.
  • Gemäß einer Ausführungsform können alle in dem zentralen Cluster 506 gespeicherten Dateien 504 unter Verwendung eines oder mehrerer Suchalgorithmen durchsucht werden, die zum Durchsuchen eines bestimmten Inhalts oder bestimmter unstrukturierter Daten innerhalb der Dateien 504 ausgestaltet sind. In einem Beispiel kann ein Bildsuchalgorithmus konfiguriert sein, um im Besonderen Bilddateien zu durchsuchen und ein bzw. mehrere in der Suche angegebene Bilder zurückzugeben, so dass jede der Dateien, welche die Bilddaten enthalten, unter Verwendung dieses Algorithmus durchsucht werden kann, und diejenigen Dateien, welche das bzw. die angegebenen Bilder enthalten, durch die Bildsuche zurückgegeben werden. In einem weiteren Beispiel wird auf Dateien, welche die Bilddaten nicht enthalten, dieser Bildsuchalgorithmus nicht angewendet.
  • In einem weiteren Beispiel kann ein Audiosuchalgorithmus konfiguriert sein, um im Besonderen Audiodateien zu durchsuchen und in der Suche angegebene Audiodaten zurückzugeben, so dass jede der Dateien, die Audiodaten enthalten, unter Verwendung dieses Algorithmus durchsucht werden kann, und diejenigen Dateien, welche die angegebenen Audiodaten enthalten, durch die Audiosuche zurückgegeben werden. In einem weiteren Beispiel wird auf Dateien, welche die Audiodaten nicht enthalten, dieser Audiosuchalgorithmus nicht angewendet.
  • Wie für den Fachmann beim Lesen der vorliegenden Beschreibungen offensichtlich sein dürfte, können in verschiedenen zusätzlichen Ausführungsformen beim Durchsuchen und Organisieren der in dem zentralen Cluster 506 gespeicherten Dateien 504 selbstverständlich viele andere inhaltsspezifische Suchalgorithmen und/oder Suchalgorithmen für unstrukturierte Daten verwendet werden, z.B. jene, die für das Durchsuchen von kundenspezifischen und/oder proprietären Datenformen ausgestaltet sind.
  • Die Dateien auf Textgrundlage und/oder alle in dem zentralen Cluster 506 gespeicherten Dateien 504 werden analysiert, um eine oder mehrere relevante Kategorien für jede der Dateien auf Textgrundlage und/oder alle in dem zentralen Cluster 506 gespeicherten Dateien zu ermitteln, so dass für die verschiedenen Dateien 504 (und letztlich die zugehörigen Dateien) ein Filtern und Gruppieren durchgeführt werden kann. Die Relevanz der Kategorien wird auf Grundlage von Interessen eines bestimmten Benutzers ausgewählt, z.B. einer Art von Geschäft, an dem der Benutzer beteiligt ist, einem geografischen Standort (z.B. des Benutzers, einer Privatadresse, eines Unternehmens usw.), eines Datums der Abfrage usw. Darüber hinaus können die Kategorien, in welche die Gruppierung erfolgt, ausschließend sein (so dass z.B. eine Datei nur in jeweils einer Gruppe vorhanden sein kann) oder sie können einschließend sein (so dass z.B. eine Datei in mehreren Gruppen gleichzeitig vorhanden sein kann, wodurch eine Überlappung von Inhalt zwischen verschiedenen Gruppen bereitgestellt wird).
  • Ein Datenfiltern in dem zentralen Cluster 506 ist ein zentraler Baustein, der viele fortschrittliche Speicherfunktionen ermöglicht (z.B. Zwischenspeichern, Zugriffskontrolle, Sicherheit, Durchsuchen usw.). Diese fortschrittlichen Funktionen können sich auf viele Aspekte eines Datenspeichers beziehen und sich darauf stützen, z.B. auf die Datenspeicherleistung und Datensicherheit, ohne jedoch darauf beschränkt zu sein. Datenfilter, die für ein solches Datenfiltern verwendet werden, sollten jedoch nicht unverändert bleiben und sind besser, wenn sie im Lauf der Zeit modifiziert werden und lernen können, um Änderungen bei der Speicherumgebung, Änderungen der in dem globalen Daten-Repository gespeicherten Daten, Änderungen von Zugriffsmustern und Nachfrage von Benutzern sowie andere unvorhersehbare Änderungen zu berücksichtigen. Darüber hinaus können Datenfilter auch angepasst werden, um Änderungen an Speicherrichtlinien zu berücksichtigen, die durch einen Administrator der Speicherumgebung vorgenommen werden.
  • In verschiedenen nicht beschränkenden Beispielen können die Dateien auf Textgrundlage und/oder alle in dem zentralen Cluster 506 gespeicherten Dateien 504 gemäß einem den einzelnen Dateien zugehörigen Datum (z.B. einem Wert), einem geografischen Standort, der in den einzelnen Dateien erwähnt wird und/oder ihnen zugehörig ist (z.B. ein Schlüsselwort), einem geografischen Standort einer Erzeugung der einzelnen Dateien (z.B. ein Schlüsselwort), einem ähnlichen und/oder gemeinsamen Inhalt der einzelnen Dateien (der auf einem bzw. mehreren Schlüsselwörtern innerhalb der einzelnen Dateien beruhen kann), einer ähnlichen Verwendung der einzelnen Dateien (z.B. einer Kontext-Metadatensuche, die das letzte Zugriffsdatum für Dateien zurückgibt), einer Häufigkeit eines Zugriffs auf die einzelnen Dateien (z.B. eine Kontext-Metadatensuche, die eine Häufigkeit eines Zugriffs auf Dateien zurückgibt) usw. gefiltert und gruppiert werden.
  • In einem weiteren nicht beschränkenden Beispiel können die Dateien auf Textgrundlage und/oder alle in dem zentralen Cluster 506 gespeicherten Dateien 504 gemäß einem Wert, mehreren Werten und/oder einem Bereich von Werten, die innerhalb der einzelnen Werte gespeichert sind, gefiltert und gruppiert werden, wobei sich die Werte auf einen angegebenen Parameter in der Abfrage beziehen, z.B. ein Datum, eine Währung, eine Uhrzeit, einen virtuellen oder physischen Standort, eine oder mehrere Benutzergruppen, ein Zugriffsrecht oder einen anderweitigen angegebenen Wert, der für den Erzeuger der Abfrage interessant ist. Der angegebene interessante Wert kann alles sein, was in Zusammenhang mit einem Geschäft, einer Ausbildung, einem Vorhaben und/oder Interesse von Bedeutung ist, für das bzw. die in dem verteilten Speichersystem Daten gespeichert sind. In mehreren Beispielen kann ein angegebener interessanter Wert bei einer Anwendung in der Medizinbranche eine oder mehrere Patientenkategorisierungen (z.B. Alter, Geschlecht, ethnische Zugehörigkeit, bestehende Vorerkrankungen usw.), eine oder mehrere Krankheitskategorisierungen (z.B. Krebs, Asthma, Streptokokken-Infektion, Arthritis usw.), eine oder mehrere Untersuchungskategorisierungen (z.B. Röntgenuntersuchung, Genuntersuchung, körperliche Untersuchung usw.) usw. sein; bei einer Anwendung in der Finanzbranche kann ein angegebener interessanter Wert ein oder mehrere Ticker-Symbole (z.B. MSFT, INTL, T usw.), eine oder mehrere Branchenkategorisierungen (z.B. Technologie, Software, Pharmazeutik, Produktion usw.), eine oder mehrere Bewertungsmaßzahlen (z.B. Marktkapitalisierung von über 1 Milliarde, Small-, Mid-, Large-Cap usw.) usw. sein; bei einer Anwendung in der Pharmabranche kann ein angegebener interessanter Wert eine oder mehrere Kategorisierungen auf Arzneimittelgrundlage (z.B. Statin, Koffein, Benzodiazepin, Fentanyl, Paracetamol, Morphin, Opiat, Oxycodon usw.), ein oder mehrere Wissenschaftler, die einer Behandlung zugehörig sind, eine oder mehrere Behandlungsanwendungen (Schmerzmittel, abschwellendes Medikament, Lokalanästhetikum usw.), eine oder mehrere Dosierung usw. sein.
  • Wie einem Fachmann beim Lesen der vorliegenden Beschreibungen klar sein dürfte, können bei verschiedenen Ausführungsformen ein oder mehrere spezifische interessante Werte auf Grundlage einer bestimmten Anwendung und der spezifischen Abfragen, die den bzw. die spezifischen interessanten Werte verwenden, kundenspezifisch definiert sein.
  • In einem weiteren nicht beschränkenden Beispiel können die Dateien auf Textgrundlage und/oder alle in dem zentralen Cluster 506 gespeicherten Dateien 504 gemäß einer Popularität der in den einzelnen Dateien enthaltenen Informationen, bezogen auf den zentralen Cluster 506 und darauf, wie häufig eine bestimmte Datei in einen der lokalen Cluster 508 dupliziert wird, gefiltert und gruppiert werden.
  • Gemäß einer weiteren Ausführungsform können innerhalb einer Gruppe Untergruppen erzeugt werden, und innerhalb einer bestimmten Gruppe können mehrere zusätzliche Ebenen von Untergruppen in einer Baumstruktur vorhanden sein. Auf diese Weise können Dateien, die in die bestimmte Gruppe einsortiert werden, des Weiteren in Untergruppen einsortiert werden, die noch feiner differenziert sind als die bestimmte Gruppe. Beim Gruppieren nach Standort können die obersten Gruppen mit dem Land gefüllt sein, gefolgt von Untergruppen für Bundesstaaten oder Provinzen, danach von Untergruppen für Städte, gefolgt von Untergruppen für Stadtteile innerhalb von Städten usw.
  • Bei einer Ausführungsform kann diese Filter- und Gruppierungsoperation als ein fortlaufender Hintergrundprozess ausgeführt werden, der in dem zentralen Cluster 506 ausgeführt wird, so dass beim Hinzufügen von neuen Dateien zu dem zentralen Cluster 506 diese (bei Bedarf) konvertiert und effizient und mit wenig Auswirkung auf die übrige Funktionalität des verteilten Systems 500 kategorisiert werden können. Bei einer weiteren Ausführungsform kann die Filter- und Gruppierungsoperation in regelmäßigen Abständen oder als Reaktion auf das Stattfinden eines auslösenden Ereignisses ausgeführt werden. Jedes geeignete auslösende Ereignis kann verwendet werden, z.B. ein Hinzufügen von einer oder mehreren neuen Dateien zu dem zentralen Cluster 506, ein Modifizieren von einer oder mehreren Dateien in dem zentralen Cluster 506, ein Hinzufügen und/oder ein Modifizieren einer vorgegebenen Schwellenanzahl von Dateien zu dem bzw. in dem zentralen Cluster 506, eine ausdrückliche Anforderung von einem Administrator usw.
  • Um derartige Datenfilter bereitzustellen, werden hier in verschiedenen Ausführungsformen Mechanismen für eine kognitive Datenfilterung beschrieben, die kognitive Datenfilter gemäß ihrer Wirksamkeit bezogen auf mehrere Faktoren dynamisch anpassen. Neben anderen möglichen Faktoren beinhalten diese Faktoren Datenanforderungen, Richtlinienanforderungen und Benutzererwartungen.
  • Gemäß einer Ausführungsform verwendet der Mechanismus für eine kognitive Datenfilterung einen Satz von einem oder mehreren vordefinierten Schlüsselwörtern, Werten und/oder Bereichen, die verwendet werden, um eine Mehrzahl von kognitiven Datenfiltern zu definieren, einen oder mehrere Messwerte für eine Wirksamkeit eines einzelnen Datenfilters bezogen auf Datennutzung, Benutzererwartungen und Richtlinienanforderungen sowie ein Auswahlmodul, das konfiguriert ist, um einen oder mehrere aus der Mehrzahl von kognitiven Datenfiltern zu ermitteln und auszuwählen, die mit der größten Wahrscheinlichkeit einen Satz von Daten zurückgeben, der einer empfangenen Abfrage entspricht. Diese Wirksamkeit kann zu jeder Zeit und über eine oder mehrere frühere Zeitspannen hinweg (z.B. ein oder mehrere bewegliche Zeitfenster) gemessen werden.
  • Gemäß einer Ausführungsform kann die Mehrzahl von kognitiven Datenfiltern lernen, beim Vorbereiten von Daten wirksamer zu sein, die als Reaktion auf empfangene Abfragen zurückgegeben werden sollen. Dieser Lernprozess kann dazu führen, dass zusätzliche kognitive Datenfilter erzeugt, vorhandene kognitive Datenfilter gelöscht und/oder entfernt und vorhandene kognitive Datenfilter modifiziert werden, um Änderungen von Daten, Benutzererwartungen und/oder Datenstruktur zu berücksichtigen.
  • Bei dieser Ausführungsform kann die Mehrzahl von kognitiven Datenfiltern ein oder mehrere Schlüsselwörter verwenden, um die in dem globalen Daten-Repository gespeicherten Daten vorzusortieren, um zu ermitteln, welche Daten für Abfragen, die im Anschluss an das Vorsortieren empfangen werden, vorabgerufen und/oder zwischengespeichert werden sollten. Die Daten werden nach dem einen oder den mehreren Schlüsselwörtern sortiert, um zu ermitteln, welche Dateien und/oder Objekte das eine oder die mehreren Schlüsselwörter enthalten, und anschließend werden die Dateien und/oder Objekte, die das eine oder die mehreren Schlüsselwörter enthalten, in einen Container platziert und auf eine Art und Weise gekennzeichnet, die den Container und die darin gespeicherten Dateien und/oder Objekte als Reaktion auf eine Abfrage finden kann, die Daten anfordert, welche das bzw. die Schlüsselwörter beinhalten. Auf Grundlage einer empfangenen Angabe zu Abfrageinteressen, die von Benutzern erhalten oder aus deren Abfragehistorie abgeleitet werden können, können solcherart erzeugte Container für eine Verwendung bei nachfolgenden und/oder künftigen eingehenden Abfragen, die sich auf das eine oder die mehreren Schlüsselwörter beziehen, vorabgerufen und/oder zwischengespeichert werden (z.B. über ein WAN oder ein anderweitiges geeignetes Netzwerk bzw. eine entsprechende Verbindung zwischen dem globalen Daten-Repository und einer anfordernden Einheit kopiert oder in einem Arbeitsspeicher des globalen Daten-Repositories oder einer anfordernden Einheit gespeichert werden).
  • Bei anderen Ausführungsformen können ein oder mehrere Werte in den Daten, die in dem globalen Daten-Repository gespeichert sind, gesucht werden, so dass eine etwaige Datei und/oder ein etwaiges Objekt, die bzw. das den bzw. die gesuchten Werte enthält, in einen Container platziert und auf eine Art und Weise gekennzeichnet werden, die den Container und die darin gespeicherten Dateien und/oder Objekte als Reaktion auf eine Abfrage finden kann, die Daten anfordert, welche den bzw. die Werte beinhalten. Bei einer weiteren Ausführungsform können Daten, die einen Bereich von Werten beinhalten, zur künftigen Verwendung vorab in einen Container einsortiert werden, z.B. alle Daten, die einen Parameter x mit einem Bereich von einem Wert 1 bis zu einem Wert 2 beinhalten (sortiere alle Daten in einen Container 1 ein, wobei die Daten einen Parameter x mit einem Wert in dem folgenden Bereich beinhalten: Wert 1 < x < Wert 2). Selbstverständlich kann der Bereich die Endpunkte einschließen, die Endpunkte ausschließen oder eine Mischung aus einschließend und ausschließend sein.
  • Indem in dem globalen Daten-Repository immer mehr Container erzeugt werden, um Daten darin einzusortieren, und indem unter Verwendung der Daten in den Containern immer mehr Abfragen empfangen und beantwortet werden, kann die Wirksamkeit des Vorsortierens im Laufe der Zeit ermittelt werden, und die kognitiven Datenfiltern können verfeinert werden, um die Daten vor einem Empfangen der Abfragen besser vorzusortieren.
  • Bei verschiedenen Ausführungsformen können eine oder mehrere Wirksamkeitsmaßzahlen verwendet werden, um die Wirksamkeit eines jeden aus der Mehrzahl von kognitiven Datenfiltern individuell zu berechnen. Bei jeder Ausführungsform kann die Wirksamkeit eines einzelnen kognitiven Datenfilters unter Verwendung einer Filtergenauigkeit (Filter Precision) FP(k) berechnet werden, die angibt, wie groß ein Anteil an zwischengespeicherten, vorabgerufenen und/oder umkopierten Daten (z.B. Daten, die über ein WAN oder ein anderweitiges geeignetes Netzwerk oder eine entsprechende Verbindung zwischen dem globalen Daten-Repository und einer anfordernden Einheit kopiert werden) in Vorwegnahme einer Abfrage (unter Verwendung von einem oder mehreren Filtern) oder als Reaktion auf eine Abfrage, die mindestens ein Schlüsselwort, einen Parameter oder Bereich (als „k“ bezeichnet) enthält, tatsächlich durch die Abfrage auf der anfordernden Einheit (z.B. einen lokalen Cluster) verwendet wird. Ein Filterabruf (Filter Recall) FR(k) gibt einen Prozentsatz aller in der anfordernden Einheit gespeicherten Daten an, die für eine Verwendung in Abfragen zur Verfügung stehen, der aufgrund des Werts von k für die empfangene Abfrage kopiert wird, z.B. können bereits in der anfordernden Einheit gespeicherte Daten in der Abfrage verwendet werden, und dies kann dazu führen, dass manche der kopierten Daten verworfen werden, da sie in der anfordernden Einheit bereits vorhanden sind. Aus diesem Grund sollten diese doppelt vorhandenen Daten für keinen bestimmten Satz von k zur Bestimmung der Wirksamkeit des Datenfilters herangezogen werden.
  • Im Einklang mit einer Ausführungsform kann eine erste Wirksamkeitsmaßzahl, die als ein erster Filter-F-Score FF(k)1 für ein einzelnes Schlüsselwort, einen einzelnen Parameter oder Bereich bzw. für einen Satz von Schlüsselwörtern, Parametern oder Bereichen bezeichnet wird, gemäß Algorithmus 1 berechnet werden: F F ( k ) 1 = F P ( k ) F R ( k )
    Figure DE112018002266T5_0001
  • Bei Algorithmus 1 wird die Quadratwurzel einer einfachen Multiplikationsoperation gezogen, um ein geometrisches Mittel des Produkts der Filtergenauigkeit FP(k) und des Filterabrufs FR(k) zu ermitteln, um den ersten Filter-F-Score FF(k)1 zu berechnen. Diese Wirksamkeitsmaßzahl, z.B. der erste Filter-F-Score FF(k)1, kann dann verwendet werden, um die Mehrzahl von kognitiven Datenfiltern weiter zu verfeinern, wie weiter unten ausführlicher beschrieben wird. Ein höherer erster Filter-F-Score FF(k)1 zeigt einen Datenfilter mit einer besseren Leistung an, wohingegen ein niedrigerer erster Filter-F-Score FF(k)1 einen Datenfilter anzeigt, der für einen bestimmten Satz von k nicht wirksam funktioniert.
  • Bei einer weiteren Ausführungsform kann eine zweite Wirksamkeitsmaßzahl FF(k)2 für ein einzelnes Schlüsselwort, einen einzelnen Parameter oder Bereich bzw. für einen Satz von Schlüsselwörtern, Parametern oder Bereichen gemäß Algorithmus 2 berechnet werden: F F ( k ) 2 = ( 2 F P ( k ) F R ( k ) ) ( F P ( k ) + F R ( k ) )
    Figure DE112018002266T5_0002
  • Bei Algorithmus 2 werden mehrere Multiplikationsoperationen (und/oder Divisionsoperationen) durchgeführt, um das Produkt von zwei Mal der Filtergenauigkeit FP(k) und dem Filterabruf FR(k) multipliziert mit dem Kehrwert der Summe der Filtergenauigkeit FP(k) und dem Filterabruf FR(k) zu ermitteln. Die zweite Wirksamkeitsmaßzahl FF(k)2 wird mit der Summe der Filtergenauigkeit FP(k) und des Filterabrufs FR(k) normalisiert, wodurch Daten besser berücksichtigt werden, die bereits in der anfordernden Einheit vorhanden sind. Diese zweite Wirksamkeitsmaßzahl FF(k)2 kann dann verwendet werden, um die Mehrzahl von kognitiven Datenfiltern weiter zu verfeinern, wie weiter unten ausführlicher beschrieben wird. Ein höherer zweiter Filter-F-Score FF(k)2 zeigt einen Datenfilter mit einer besseren Leistung an, wohingegen ein niedrigerer zweiter Filter-F-Score FF(k)2 einen Datenfilter anzeigt, der für einen bestimmten Satz von k nicht wirksam funktioniert.
  • Um eine der Wirksamkeitsmaßzahlen zu initialisieren, z.B. FF(k)1 oder FF(k)2, wird ein potenzieller Satz von k bestimmt, der hier als KS bezeichnet wird (und ein oder mehrere Schlüsselwörter, ein oder mehrere Werte und/oder ein oder mehrere Bereiche von Werten beinhalten kann). Dieser KS wird auf Grundlage einer in dem globalen Daten-Repository verwendeten Taxonomie und/oder einem Domänenwissen, über das ein Administrator des globalen Daten-Repositories verfügt, sowie etwaiger verfügbarer Verknüpfungen bestimmt. Die Taxonomie definiert, wie Dateien und/oder Objekte benannt werden, wie sie in dem globalen Daten-Repository gespeichert werden, welche Metadaten für einige oder alle der Dateien und/oder Objekte vorhanden sind, wie die Dateien und/oder Objekte in dem globalen Daten-Repository durchsucht, sortiert, gefiltert usw. werden, und dergleichen mehr.
  • Ein aktiver Satz von k, der hier als AS bezeichnet wird, ist als leerer Satz definiert, z.B. {}. Danach wird für jedes Schlüsselwort, jeden Wert und/oder Bereich innerhalb von KS für jedes Zeitfenster w eine Wirksamkeitsmaßzahl w berechnet. Um zu einem besseren Verständnis zu gelangen, wie gut die zurückgegebenen Daten verwendet werden, können verschiedene Zeitfenster wie z.B. 30 Sekunden, 1 Minute, 30 Minuten, 1 Stunde, 6 Stunden,12 Stunden, 1 Tag usw. zur Berechnung der Wirksamkeitsmaßzahl(en) verwendet werden und als Grundlage eine Häufigkeit eines Empfangens von Abfragen in dem globalen Daten-Repository haben.
  • Nach der Berechnung von einer oder mehreren Wirksamkeitsmaßzahlen wird der AS aktualisiert, um lediglich einen Teil n von k aus dem KS zu beinhalten. Der in dem AS enthaltene Teil hat als Grundlage FF, FP und/oder FR. Bei einer Ausführungsform ist nur ein leistungsstärkster Prozentsatz von k auf Grundlage von FF enthalten. Bei einer weiteren Ausführungsform ist nur ein leistungsstärkster Prozentsatz von k auf Grundlage eines Einhaltens von Schwellenwerten enthalten, die sowohl für FP als auch für FR definiert werden, z.B. > 0,7, > 0,8 usw.
  • Als Reaktion auf ein Verwenden eines leistungsstärksten Prozentsatzes von k auf Grundlage von FF wird der AS dann - entsprechend deren FF-Bewertungen - als die besten n Schlüsselwörter definiert. Als Reaktion auf ein Verwenden von k auf Grundlage eines Einhaltens von Schwellenwerten, die sowohl für FP als auch für FR definiert werden, werden 1) ein oder mehrere Schlüsselwörter, Werte und/oder Bereiche, die eine Leistung unterhalb eines ersten Schwellenwerts für FP erbringen, aus dem AS entfernt, ; 2) ein oder mehrere Schlüsselwörter, Werte und/oder Bereiche, die eine Leistung unterhalb eines zweiten Schwellenwerts für FR erbringen, aus dem AS entfernt; 3) ein oder mehrere Schlüsselwörter, Werte und/oder Bereiche, die eine Leistung im Bereich oder oberhalb des ersten Schwellenwert für FP erbringen, zu dem AS hinzugefügt; und ein oder mehrere Schlüsselwörter, Werte und/oder Bereiche, die eine Leistung im Bereich oder oberhalb des zweiten Schwellenwerts für FR erbringen, zu dem AS hinzugefügt. Bei verschiedenen Ansätzen können der erste Schwellenwert und der zweite Schwellenwert verschiedene Werte oder denselben Wert aufweisen.
  • Bei einer Ausführungsform können die Dateien auf Textgrundlage und/oder alle in dem zentralen Cluster 506 gespeicherten Dateien 504 gemäß einem oder mehreren Schlüsselwörtern gefiltert und gruppiert werden. Das eine bzw. die mehreren Schlüsselwörter können auf Grundlage einer Eingabe von einer Anzahl von Benutzern, die mit den verschiedenen lokalen Clustern 508 interagieren, automatisch erzeugt werden und können für Begriffe stehen, die über eine vorgegebene Zeitspanne hinweg am häufigsten abgefragt werden.
  • Wenn eine Abfrage in einem lokalen Cluster ausgeführt wird, wird die Abfrage oder eine wie auch immer geartete Angabe zu der Abfrage üblicherweise an den zentralen Cluster 506 gesendet, um zu ermitteln, welche der Dateien 504 der Abfrage entsprechen. Dabei kann jede beliebige Art von Abfrage verwendet werden, z.B. eine Suchabfrage, eine Analyseabfrage, die etwas über die zugrundeliegenden Daten ermittelt, die durch die Analyseabfrage zurückgegeben werden (z.B. einen oder mehrere Aspekte, ein oder mehrere Merkmale, eine oder mehrere Ähnlichkeiten und/oder ein oder mehrere Unterschiede zwischen Daten in der Abfrage). Herkömmlicherweise werden alle Dateien 504 in den lokalen Cluster dupliziert, der die Abfrage anfordert. Bei einer weiteren herkömmlichen Ausführungsform kann die Abfrage in dem zentralen Cluster 506 ausgeführt werden, wodurch wertvolle Ressourcen des zentralen Clusters 506 aufgebraucht werden, anstatt die Arbeitslast an einen der lokalen Cluster 508 auszulagern.
  • Wie in 5C gezeigt, können als Reaktion auf Gruppen 516, die in dem zentralen Cluster 506 vorab vorhanden sind und die kognitiv erzeugt werden, um gängigen Abfragen zu entsprechen, für eine bestimmte Abfrage 514 relevante Dateien schnell ermittelt und in einen lokalen Cluster 518, von dem die Abfrage 514 stammt, dupliziert werden, anstatt alle Dateien 504 in den lokalen Cluster 518 zu duplizieren, von dem die Abfrage 514 stammte. Dies spart beträchtliche Ressourcen gegenüber herkömmlichen Prozessen, da es nicht notwendig ist, Ergebnisse unter Verwendung von Ressourcen (z.B. Arbeitsspeicherplatz, Prozessorkapazität usw.) des zentralen Clusters 506 zu filtern bzw. alle Dateien zu filtern, nachdem sie in den lokalen Cluster 518 dupliziert wurden, um zu ermitteln, welche der Dateien 504 für die Abfrage relevant sind. Dies erfolgt teilweise, weil Ressourcen des lokalen Clusters 518 nur zum Filtern eines Teilsatzes der Dateien 504 genutzt werden, z.B. denjenigen, die sich innerhalb einer oder mehrerer bestimmter Gruppen 520 in dem zentralen Cluster 506 befinden, die sich auf die Abfrage beziehen, wie durch den zentralen Cluster 506 beim Empfangen der Abfrage 514 ermittelt wurde.
  • Nachdem für mindestens einige der Dateien 504 des zentralen Clusters 504 ein Filtern und Gruppieren durchgeführt wird, lernen die verschiedenen Filter, die zum Gruppieren der Dateien 504 verwendet werden, auf Grundlage der Nützlichkeit von vorhandenen Gruppen und der Nutzungsmuster der lokalen Cluster 508 für Gruppen in dem zentralen Cluster 506 mit der Zeit und passen sich an. Dieses Lernen passt die Filter an, so dass sie Gruppen bereitstellen können, die Filter beinhalten, welche relevanter für die empfangenen Abfragen sind, so dass als Reaktion auf den künftigen Empfang von Abfragen weniger Ressourcen des zentralen Clusters 506 verbraucht werden. Auch wenn selbstverständlich nicht vollständig vorhergesagt werden kann, welche Abfragen künftig empfangen werden, sind intelligente, lernende Filter in der Lage, Gruppen bereitzustellen, die dafür verwendet werden können, mehr als 90 % aller empfangenen Abfragen zu beantworten, wobei auf die verbleibenden Abfragen mit Ergebnissen geantwortet wird, nachdem die Dateien 504 in dem zentralen Cluster 506 gefiltert wurden. Das Lernen und die Anpassung der Filter kann dazu führen, dass die verschiedenen Gruppen 516 als Reaktion auf die Änderungen an den Dateien 504 abgewandelt und/oder modifiziert werden, z.B. durch ein Hinzufügen von einer oder mehreren neuen Gruppen, ein Modifizieren der Dateien, die sich innerhalb einer oder mehreren Gruppen befinden, ein Entfernen von einer oder mehreren vorhandenen Gruppen usw.
  • Bei einer weiteren Ausführungsform können die einzelnen Dateien, die in einer einzigen Gruppe zusammengefasst sind (z.B. der Gruppe 520), als Reaktion auf die Änderungen im Laufe der Zeit abgewandelt und/oder modifiziert werden, z.B. durch ein Hinzufügen von einer oder mehreren neuen Dateien zu einer Gruppe, ein Entfernen von einer oder mehreren vorhandenen Dateien aus einer Gruppe, ein Modifizieren der Gruppen, zu denen eine bestimmte Datei gehört, usw.
  • Etwaige relevante Änderungen können in der Gruppierung von einzelnen Dateien und in den Gruppen 516 selbst in dem zentralen Cluster 506 berücksichtigt werden, z.B. Änderungen an Rohdaten, die den gefilterten Ergebnissen zugrunde liegen (so können Änderungen an Rohdaten z.B. dazu führen, dass eine Datei nicht mehr relevant für eine Gruppe ist und/oder dass die Datei für eine Gruppe relevant wird, zu der sie noch nicht hinzugefügt wurde), eine Maßzahl auf Leistungsgrundlage, die einen Gruppierungserfolg misst (z.B. wie erfolgreich das Gruppieren beim Einsparen von Ressourcen für Abfragen ist, die von den lokalen Clustern 508 abgeschickt wurden), eine Popularität von Dateien innerhalb einer bestimmten Gruppe (z.B. wie häufig eine bestimmte Gruppe in einen lokalen Cluster dupliziert wird, gegenüber einem normalisierten Durchschnittswert aller Gruppen), Taxonomieänderungen usw.
  • Bei einer weiteren Ausführungsform können Richtlinien für die Cache-Leerung verwendet werden, um zu ermitteln, welche Gruppen 516 in einem beliebigen bestimmten lokalen Cluster (oder bei einer weiteren Ausführungsform in allen lokalen Clustern 508) verbleiben sollen und welche Gruppen gelöscht (oder überschreibbar gemacht) werden sollen, um Platz für Informationen freizugeben, auf die häufiger zugegriffen wird oder die häufiger angefordert werden. Nachdem eine Gruppe (wie z.B. die Gruppe 520) als Reaktion auf eine Ausführung einer Abfrage in dem lokalen Cluster in einen lokalen Cluster (wie z.B. den lokalen Cluster 518) dupliziert wurde, kann die Gruppe zum Beispiel für eine vorbestimmte Zeitspanne, wie sie durch eine Richtlinie für die Cache-Leerung vorgegeben wird, z.B. 1 Woche, 1 Tag, 12 Stunden, 3 Stunden usw., innerhalb des lokalen Clusters beibehalten werden. Als Reaktion darauf, dass die Gruppe für eine weitere Abfrage verwendet wird (ob alle Dateien in der Gruppe oder eine Untergruppierung hiervon), kann die vorbestimmte Zeitspanne für diese bestimmte Gruppe ausgesetzt werden, so dass sie - im Gegensatz zu einer Gruppe, die nur für die erste Abfrage verwendet wird - für eine erweiterte Zeitspanne (Zeit nach der ersten Abfrage bis zur zweiten Abfrage + vorbestimmte Zeitspanne) in dem lokalen Cluster verbleibt.
  • Die Zeitspanne für ein Beibehalten einer Gruppe (wie z.B. der Gruppe 520) in dem lokalen Cluster (wie z.B. dem lokalen Cluster 518), wie sie durch eine oder mehrere Richtlinien für die Cache-Leerung vorgegeben wird, kann bei einer Ausführungsform so festgelegt werden, dass sie für einen einzigen lokalen Cluster gilt, bei einer weiteren Ausführungsform kann sie so festgelegt werden, dass sie für einen Teilsatz von lokalen Clustern gilt und bei einer weiteren Ausführungsform so, dass sie global für alle lokalen Cluster 508 gilt. Ein Administrator kann die Richtlinie für die Cache-Leerung nach Belieben festlegen.
  • Auf diese Weise kann eine Gruppe (wie z.B. die Gruppe 520) einmal oder mehrmals wiederverwendet werden, nachdem eine anfängliche Abfrage ausgeführt wird, solange sie in dem lokalen Cluster (wie z.B. dem lokalen Cluster 518) verbleibt, so dass die zugrundeliegenden Dateien der Gruppe nicht jedes Mal, wenn eine Abfrage einen Zugriff auf die Dateien der Gruppe vorsieht, erneut in die lokalen Cluster dupliziert werden müssen.
  • In einem in 6 gezeigten Beispiel für ein verteiltes System 600, das medizinische Daten 602 bereitstellt, soll eine Abfrage 606 der in dem verteilten System 600 gespeicherten Daten auf medizinische Daten ausgeführt werden, die „Röntgenbilder“ betreffen. Darüber hinaus soll der zentrale Cluster 604 die darin gespeicherten medizinischen Daten 602 bereits nach medizinischem Typ gruppiert haben, z.B. „Röntgenbilder“ 608, „PET-Bilder“ 610, „CT-Bilder“ 612, „Ultraschallbilder“ 614 usw. Als Reaktion auf die Abfrage von „Röntgenbilder“ werden nur die Daten, die sich innerhalb der Gruppe „Röntgenbilder“ 608 befinden, an den lokalen Cluster 616 gesendet, von dem die Abfrage ausgegangen ist. Danach werden anstatt der Ressourcen des zentralen Clusters 604 die Ressourcen des lokalen Clusters 616 verwendet, um die Analyseabfrage der Daten auszuführen, die sich innerhalb der Gruppe „Röntgenbilder“ 608 befinden. Im Anschluss an die ursprüngliche Abfrage kann eine Richtlinie für die Cache-Leerung darüber hinaus einen Zeitpunkt bestimmen, zu dem die Daten, die sich innerhalb der Gruppe „Röntgenbilder“ 608 befinden, aus dem lokalen Cluster 616 gelöscht werden, so dass die Daten bei zusätzlichen Abfragen in dem lokalen Cluster 616 wiederverwendet werden können.
  • Unter Bezugnahme auf 7 wird ein System 700 gezeigt, dass ein kognitives Filtern von Daten in einem globalen Daten-Repository 720 gemäß einer Ausführungsform ermöglicht. Das System 700 beinhaltet einen Satz von kognitiven Leistungsfiltern 708 und einen Satz von kognitiven Sicherheitsfiltern 710, die konfiguriert sind, um Daten in dem globalen Daten-Repository für jeden denkbaren Zweck vorzusortieren, z.B. in Erwartung von Abfragen, die von einer oder mehreren anfordernden Einheiten 722 empfangen werden, um ausgewählten Benutzern einen Zugriff zu verwehren oder bereitzustellen usw.
  • Unstrukturierte Daten 702 werden durch das System 700 empfangen, wobei die unstrukturierten Daten 702 Audiodateien, Videodateien, Bilddateien usw. beinhalten, die bei einer Ausführungsform unter Verwendung von einer oder mehreren Konvertierungsschnittstellen 704 wie Konvertierungs-APIs von IBM® Watson in Dateien 706 auf Textgrundlage konvertiert werden. Die Dateien 706 auf Textgrundlage beinhalten zusätzlich zu den konvertierten unstrukturierten Daten 702 auch native Dateien auf Textgrundlage, die durch das System 700 eingespeist werden (nicht gezeigt).
  • Bei einer Ausführungsform werden ein oder mehrere kognitive Leistungsfilter aus dem Satz von kognitiven Leistungsfiltern 708 auf die Dateien 706 auf Textgrundlage angewendet, um die Daten vorab in eine Mehrzahl von Leistungscontainern 712 in dem globalen Daten-Repository 720 einzusortieren. Die Leistungscontainer 712 werden erzeugt, um die Leistung des System 700 beim Reagieren auf empfangene Abfragen zu verbessern (z.B. schneller auf eine empfangene Abfrage zu reagieren, auf eine empfangene Abfrage hin nützlichere Daten bereitzustellen, beim Antworten auf eine Abfrage weniger Ressourcen zu verbrauchen usw.).
  • Die Mehrzahl von Leistungscontainern 712 kann die Leistung des System 700 verbessern, indem durch ein verbessertes Zwischenspeichern von Daten in einer oder mehreren anfordernden Einheiten 722 ein effizienteres Abstufen von Daten innerhalb einer Mehrzahl von Stufen ermöglicht wird, die in dem globalen Daten-Repository 720 vorhanden sind, um darin Daten zu speichern, usw.
  • Zusätzlich können neue kognitive Leistungsfilter 708 erzeugt werden, vorhandene kognitive Leistungsfilter 708 können gelöscht oder entfernt werden, und vorhandene kognitive Leistungsfilter 708 können modifiziert werden, um ihre Wirksamkeit im Laufe der Zeit auf Grundlage von einer oder mehreren Wirksamkeitsmaßzahlen zu erhöhen. Bei verschiedenen Ansätzen können diese Änderungen zu Änderungen (Hinzufügung, Löschung, Modifizierung) der Mehrzahl von Leistungscontainern 712 führen.
  • Als Reaktion darauf, dass eine anfordernde Einheit 722 Daten von dem globalen Daten-Repository 720 empfängt, können dem System 700 ein bzw. mehrere zusätzliche kognitive Leistungsfilter 724 bereitgestellt werden, die für tatsächliche Datenabfragen konfiguriert sind, welche in der bzw. den anfordernden Einheiten 722 ausgeführt werden, wodurch zusätzliche Leistungscontainer 716 in dem globalen Daten-Repository 720 erzeugt werden können, die nur der anfordernden Einheit 722, welche den bzw. die zusätzlichen kognitiven Leistungsfilter 724 bereitgestellt hat, oder - bei mehreren Ansätzen - einigen oder allen Benutzern des globalen Daten-Repositories 720 zur Verfügung gestellt werden können.
  • Bei einer weiteren Ausführungsform werden ein oder mehrere kognitive Sicherheitsfilter aus dem Satz von kognitiven Sicherheitsfiltern 710 auf die Dateien 706 auf Textgrundlage angewendet, um die Daten vorab in eine Mehrzahl von Sicherheitscontainern 714 in dem globalen Daten-Repository 720 einzusortieren. Die Sicherheitscontainer 714 werden erzeugt, um eine bessere Zugriffskontrolle für Daten in dem globalen Daten-Repository 720 bereitzustellen, so dass die Leistung des Systems 700 beim Verweigern oder Erlauben des Zugriffs auf Teilsätze von Dateien und/oder Objekte in dem globalen Daten-Repository 720 verbessert wird. Die Mehrzahl von Sicherheitscontainern 714 kann die Leistung des Systems 700 verbessern, indem ein effizienteres Überwachen einer Zugriffskontrolle für Benutzer auf Daten ermöglicht wird, die in dem globalen Daten-Repository 720 gespeichert sind, indem Daten vorsortiert werden, auf die ausgewählte Gruppen von Benutzer zugreifen können, so dass ein etwaiger Zugriff, der durch einen solchen Benutzer versucht wird, nur mit den Daten beantwortet wird, die in dem Sicherheitscontainer 714 verfügbar sind, der dem Benutzer zugewiesen ist.
  • Zusätzlich können neue kognitive Leistungsfilter 710 erzeugt werden, vorhandene kognitive Sicherheitsfilter 710 können gelöscht oder entfernt werden, und vorhandene kognitive Sicherheitsfilter 710 können modifiziert werden, um ihre Wirksamkeit im Laufe der Zeit auf Grundlage von einer oder mehreren Wirksamkeitsmaßzahlen zu erhöhen. Bei verschiedenen Ansätzen können diese Änderungen zu Änderungen (Hinzufügung, Löschung, Modifizierung) der Mehrzahl von Sicherheitscontainern 714 führen.
  • Als Reaktion darauf, dass eine anfordernde Einheit 722 Daten von dem globalen Daten-Repository 720 empfängt, können dem System 700 ein bzw. mehrere zusätzliche kognitive Sicherheitsfilter 726 bereitgestellt werden, die für tatsächliche Datenabfragen konfiguriert sind, welche in der bzw. den anfordernden Einheiten 722 ausgeführt werden, wodurch zusätzliche Sicherheitscontainer 718 in dem globalen Daten-Repository 720 erzeugt werden können, die nur der anfordernden Einheit 722, welche den bzw. die zusätzlichen kognitiven Sicherheitsfilter 726 bereitgestellt hat, oder - bei mehreren Ansätzen - einigen oder allen Benutzern des globalen Daten-Repositories 720 zur Verfügung gestellt werden können.
  • Unter Bezugnahme auf 8 wird ein Verfahren 800 gemäß einer Ausführungsform gezeigt. Das Verfahren 800 kann gemäß der vorliegenden Erfindung in jeder der Umgebungen durchgeführt werden, die u.a. in den 1 bis 7 in verschiedenen Ausführungsformen dargestellt werden. Selbstverständlich können in dem Verfahren 800 mehr oder weniger Operationen als in 8 konkret beschrieben enthalten sein, wie dem Fachmann beim Lesen der vorliegenden Beschreibungen klar sein dürfte.
  • Jeder der Schritte des Verfahrens 800 kann durch jede geeignete Komponente der Betriebsumgebung durchgeführt werden. Zum Beispiel kann bei verschiedenen Ausführungsformen das Verfahren 800 teilweise oder vollständig durch einen Mikroprozessor, einen Server, einen Cluster von Datenverarbeitungseinheiten (z.B. einen lokalen Cluster), eine Verarbeitungsschaltung mit einem oder mehreren darin befindlichen Prozessoren oder eine anderweitige Einheit durchgeführt werden, die einen oder mehrere Prozessoren aufweist. Die Verarbeitungsschaltung, z.B. Prozessor(en), Chip(s) und/oder Modul(e), die in Hardware und/oder in Software realisiert werden und vorzugsweise mindestens eine Hardware-Komponente enthalten, kann in jeder Einheit genutzt werden, um einen oder mehrere Schritte des Verfahrens 800 durchzuführen. Veranschaulichende Prozessoren beinhalten, ohne jedoch darauf beschränkt zu sein, eine MPU, eine CPU, eine ASIC, ein FPGA usw., Kombinationen hiervon oder jede andere geeignete Datenverarbeitungseinheit nach dem Stand der Technik.
  • Wie in 8 gezeigt, kann das Verfahren 800 mit Operation 802 beginnen, in der eine Mehrzahl von kognitiven Datenfiltern auf Grundlage von einem oder mehreren Faktoren erzeugt werden, um eine Mehrzahl von Gruppen zu erzeugen. Die Faktoren, die als Grundlage für die Mehrzahl von kognitiven Datenfiltern dienen, werden aus einem Satz von Faktoren ausgewählt, die z.B., ohne jedoch darauf beschränkt zu sein, ein Schlüsselwort, einen Satz von Schlüsselwörtern, einen Wert, einen Satz von Werten, einen Bereich von Werten und einen Satz von Bereichen von Werten beinhalten.
  • Diese Mehrzahl von kognitiven Datenfiltern kann verwendet werden, um in dem globalen Daten-Repository gespeicherte Daten in die Mehrzahl von Gruppen einzusortieren, wobei Daten innerhalb mehr als einer Gruppe platziert werden können und wobei jede Gruppe unabhängig verwaltet (z.B. modifiziert, gelöscht, hinzugefügt usw.) werden kann.
  • In Operation 804 werden durch ein globales Daten-Repository empfangene Daten kognitiv gefiltert, um unabhängige Teile der Daten unter Verwendung der Mehrzahl von kognitiven Datenfiltern in der Mehrzahl von Gruppen zu platzieren. Dieses Filtern findet statt, bevor eine Abfrage in dem globalen Daten-Repository empfangen wird. Darüber hinaus teilen Daten innerhalb einer jeden aus der Mehrzahl von Gruppen ein gemeinsames, definierbares Merkmal, wodurch jeder aus der Mehrzahl von kognitiven Datenfiltern die Daten in die verschiedenen Gruppen einsortieren und filtern kann. Jede Gruppe kann auf mindestens einem unterschiedlichen definierbaren Merkmal der in die bestimmte Gruppe einsortierten Daten beruhen, gegenüber dem bzw. den Merkmalen von Daten, die zur Erzeugung anderer Gruppen verwendet werden.
  • Bei einer weiteren Ausführungsform kann das Verfahren 800 ein Empfangen der Daten aus einer oder mehreren Quellen in dem globalen Daten-Repository beinhalten, wobei die Daten Text- und unstrukturierte Daten beinhalten. Außerdem kann es ein Speichern der Daten in dem globalen Daten-Repository und ein Konvertieren der unstrukturierten Daten in Daten auf reiner Textgrundlage und/oder in mit Text annotierte Daten beinhalten (zusammenfassend als „Daten auf Textgrundlage“ bezeichnet). Zusätzlich kann das Verfahren 800 ein Speichern der Daten auf Textgrundlage in dem globalen Daten-Repository, wobei die Mehrzahl von kognitiven Datenfiltern auf die Daten auf Textgrundlage nach deren Konvertierung aus den unstrukturierten Daten (oder auf als solche empfangene Daten auf Textgrundlage) angewendet wird, sowie ein Empfangen einer Angabe zu der Abfrage in dem globalen Daten-Repository beinhalten. Bei der Angabe zu der Abfrage kann es sich um die Abfrage selbst, um einen Satz von Abfragen, die zuvor empfangen wurden und/oder deren Empfang in der Zukunft erwartet wird, und/oder um Interessen handeln, die durch einen oder mehrere Benutzer ausgedrückt werden, welche die Grundlage für eine künftige Abfrage bilden können und die dazu verwendet werden können, Daten für eine solche künftige Abfrage vorabzurufen. Des Weiteren kann das Verfahren 800 ein Ermitteln und Vorabrufen (z.B. Kopieren) von mindestens einer Gruppe, die der Abfrage entspricht, in einen Speicherbereich beinhalten, um für ein Ansammeln von vorabgerufenen Daten verwendet werden zu werden. Danach kann das Verfahren 800 ein Antworten auf die Abfrage beinhalten, indem Daten innerhalb der mindestens einen Gruppe in eine anfordernde Einheit dupliziert werden, welche die Abfrage bereitgestellt hat. Jeder dieser Schritte kann für sich genommen oder zusätzlich zu beliebigen anderen Schritten durchgeführt werden, die bei verschiedenen Ansätzen für das Verfahren 800 beschrieben werden.
  • Bei einer weiteren Ausführungsform kann das Verfahren 800 des Weiteren ein Empfangen einer Angabe zur Verwendung von Daten innerhalb der mindestens einen Gruppe beinhalten, die der anfordernden Einheit in Bezug auf die Abfrage bereitgestellt wird. Diese Angabe kann verwendet werden, um eine Wirksamkeit der Mehrzahl von kognitiven Datenfiltern in Bezug auf eine beliebige bestimmte Abfrage zu ermitteln (z.B. eines Satzes von k, wie durch die Abfrage vorgegeben).
  • Darüber hinaus kann bei einem Ansatz das Verfahren 800 ein Anpassen der Mehrzahl von kognitiven Datenfiltern im Laufe der Zeit beinhalten, um eine Wirksamkeit der Mehrzahl von kognitiven Datenfiltern bezogen auf die Verwendung von Daten innerhalb einer oder mehrerer Gruppen zu verbessern, die einer anfordernden Einheit als Reaktion auf ein Empfangen einer Angabe zu einer Abfrage von der anfordernden Einheit bereitgestellt werden. Dieser Prozess wird hier auch als ein Lernen der kognitiven Datenfilter auf Grundlage einer vergangenen Leistung und vergangener Benutzererwartungen bezeichnet. Die Wirksamkeit der Mehrzahl von kognitiven Datenfiltern kann auf einem oder mehreren eines Teils der Daten innerhalb der einen oder der mehreren Gruppen beruhen, die der anfordernden Einheit bereitgestellt werden, der tatsächlich durch die Abfrage verwendet wird, und einem Prozentsatz aller in der anfordernden Einheit gespeicherten Daten, der für eine Verwendung in der Abfrage verfügbar ist, der innerhalb der mindestens einen oder der mehreren Gruppen bereitgestellt wird. Bei einer Ausführungsform können beide Messwerte miteinander kombiniert werden, um die Wirksamkeit der Mehrzahl von kognitiven Datenfiltern zu berechnen, die hier als ein Filter-F-Score bezeichnet wird.
  • Gemäß einer Ausführungsform kann die Wirksamkeit der Mehrzahl von kognitiven Datenfiltern, FF(k)1, gemäß Algorithmus 1 berechnet werden, wie weiter oben definiert.
  • Gemäß einer alternativen Ausführungsform kann die Wirksamkeit der Mehrzahl von kognitiven Datenfiltern, FF(k)2, gemäß Algorithmus 2 berechnet werden, wie weiter oben definiert.
  • Bei einer weiteren Ausführungsform kann das Verfahren 800 ein Aktualisieren der Mehrzahl von Gruppen beinhalten, um Änderungen von Daten zu berücksichtigen, die in dem globalen Daten-Repository gespeichert sind. Dieses Aktualisieren kann in regelmäßigen Abständen auf Grundlage eines vorgegebenen Zeitplans, fortlaufend als eine Hintergrundoperation oder als Reaktion auf ein auslösendes Ereignis stattfinden. Dieses Aktualisieren der Mehrzahl von Gruppen kann zudem eine Aktion wie z.B. ein Entfernen von einer oder mehreren Gruppen, ein Hinzufügen von einer oder mehreren Gruppen, ein Hinzufügen von zusätzlichen Daten zu einer bestimmten Gruppe, ein Entfernen von vorhandenen Daten aus der bestimmten Gruppe usw. beinhalten.
  • Darüber hinaus kann das auslösende Ereignis aus einem Satz ausgewählt werden, der eine Löschung von vorhandenen Daten aus dem globalen Daten-Repository, eine Hinzufügung von zusätzlichen Daten zu dem globalen Daten-Repository, eine Hinzufügung eines neuen Typs von Daten zu dem globalen Daten-Repository und eine Aktualisierung eines Textkonvertierungsprozesses des globalen Daten-Repositories beinhalten, ohne jedoch darauf beschränkt zu sein.
  • Das Verfahren 800 kann in einem System, einem Verfahren und/oder einem Computerprogrammprodukt realisiert sein. Zum Beispiel kann ein System eine Verarbeitungsschaltung und eine mit der Verarbeitungsschaltung integrierte Logik beinhalten, die durch die Verarbeitungsschaltung ausführbar ist oder die mit der Verarbeitungsschaltung integriert und durch diese ausführbar ist. „Integriert mit“ bedeutet, dass die Verarbeitungseinheit ein Hardware-Prozessor ist, der fest codierte Logik beinhaltet, z.B. eine ASIC, ein FPGA usw. „Ausführbar durch“ bedeutet, dass der Prozessor zum Ausführen von Software-Logik konfiguriert ist, um eine durch die Software-Logik vorgegebene Funktionalität zu realisieren, wobei der Prozessor eine MPU, eine CPU, ein Mikroprozessor usw. sein kann. Die Logik ist konfiguriert, um die Verarbeitungsschaltung zum Durchführen des Verfahrens 800 zu veranlassen.
  • Bei einem weiteren Beispiel kann ein Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium mit darin enthaltenen Programmanweisungen beinhalten. Das durch einen Computer lesbare Speichermedium kann jedes geeignete Speichermedium sein, dass nach dem Stand der Technik bekannt und konfiguriert ist, um Daten zu speichern und einem Computer einen Zugriff auf darin gespeicherte Daten zu ermöglichen. Die enthaltenen Programmanweisungen sind durch eine Verarbeitungsschaltung ausführbar, um die Verarbeitungsschaltung zum Durchführen des Verfahrens 800 zu veranlassen.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) beinhalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Anweisungsausführungseinheit behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Compact-Disc-Nur-Lese-Speicher (CD-ROM), eine DVD (Digital Versatile Disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. durch ein Lichtwellenleiterkabel geleitete Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei computerlesbaren Programmbefehlen zum Durchführen von Operationen der vorliegenden Erfindung kann es sich um Assembler-Befehle, ISA-Befehle (Instruction-Set-Architecture), Maschinenbefehle, maschinenabhängige Befehle, Mikrocode, Firmware-Befehle, einen Zustand festlegende Daten oder aber entweder um Quellcode oder um Objektcode handeln, der in einer beliebigen Kombination von einer oder mehreren Programmiersprachen wie z.B. einer objektorientierten Programmiersprache wie Smalltalk, C++ oder dergleichen, sowie in herkömmlichen prozeduralen Programmiersprachen wie z.B. der Programmiersprache „C“ oder ähnlichen Programmiersprachen geschrieben ist. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, im Feld programmierbare Gatter-Anordnungen (FPGA, Field Programmable Gate Arrays) oder programmierbare Logikanordnungen (PLA, Programmable Logic Arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen durch einen Computer umgesetzten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Darüber hinaus kann ein System gemäß verschiedenen Ausführungsformen einen Prozessor und Logik enthalten, die mit dem Prozessor integriert und/oder durch diesen ausführbar ist, wobei die Logik so konfiguriert werden kann, dass sie einen oder mehrere der hier genannten Prozessschritte ausführt. Dabei bedeutet „integriert“, dass der Prozessor über Logik verfügt, die in Form von Hardware-Logik in ihn eingebettet ist, wie z.B. eine ASIC, ein FPGA usw. „Durch den Prozessor ausführbar“ bedeutet, dass es sich bei der Logik um Hardware-Logik; Software-Logik wie z.B. Firmware, ein Teil eines Betriebssystems, ein Teil eines Anwendungsprogramms; usw. oder um eine Kombination von Hardware- und Software-Logik handelt, auf die der Prozessor zugreifen kann und die so konfiguriert wird, dass sie den Prozessor veranlasst, bei Ausführung durch den Prozessor eine Funktionalität durchzuführen. Software-Logik kann in einem lokalen und/oder entfernt angeordneten Arbeitsspeicher eines beliebigen Arbeitsspeichertyps nach dem Stand der Technik gespeichert werden. Jeder Prozessor nach dem Stand der Technik kann verwendet werden, z.B. ein Software-Prozessormodul und/oder ein Hardware-Prozessormodul wie beispielsweise eine ASIC, ein FPGA, eine CPU, eine integrierte Schaltung (Integrated Circuit, IC), ein Grafikprozessor (Graphics Processing Unit, GPU) usw.
  • Es dürfte offensichtlich sein, dass die verschiedenen Merkmale der vorgenannten Systeme und/oder Methodiken auf eine beliebige Weise kombiniert werden können, so dass sich aus den oben dargelegten Beschreibungen eine Vielfalt von Kombinationen ergibt.
  • Obwohl oben verschiedene Ausführungsformen beschrieben wurden, sollte deutlich sein, dass diese lediglich als Beispiel und nicht als Einschränkung dargelegt wurden. Umfang und inhaltliche Reichweite einer bevorzugten Ausführungsform werden daher durch keine der oben beschriebenen beispielhaften Ausführungsformen beschränkt, sondern lediglich durch die folgenden Ansprüche und deren Entsprechungen definiert.

Claims (25)

  1. Verfahren, aufweisend: ein Erzeugen einer Mehrzahl von kognitiven Datenfiltern auf Grundlage von einem oder mehreren Faktoren, um eine Mehrzahl von Gruppen zu erzeugen; und ein kognitives Filtern von Daten, die durch ein globales Daten-Repository empfangen werden, um unter Verwendung der Mehrzahl von kognitiven Datenfiltern vor einem Empfangen einer Abfrage in dem globalen Daten-Repository unabhängige Teile der Daten in der Mehrzahl von Gruppen zu platzieren, wobei Daten innerhalb einer jeden aus der Mehrzahl von Gruppen ein gemeinsames, definierbares Merkmal teilen.
  2. Verfahren nach Anspruch 1, des Weiteren aufweisend: ein Empfangen der Daten aus einer oder mehreren Quellen in dem globalen Daten-Repository, wobei die Daten Text- und unstrukturierte Daten beinhalten; ein Speichern der Daten in dem globalen Daten-Repository; ein Konvertieren der unstrukturierten Daten in Daten auf Textgrundlage; ein Speichern der Daten auf Textgrundlage in dem globalen Daten-Repository, wobei die Mehrzahl von kognitiven Datenfiltern auf die Daten auf Textgrundlage nach deren Konvertierung aus den unstrukturierten Daten angewendet werden; ein Empfangen einer Angabe zu der Abfrage in dem globalen Daten-Repository; ein Ermitteln und Vorabrufen von mindestens einer Gruppe, die der Abfrage entspricht; und ein Antworten auf die Abfrage, indem Daten innerhalb der mindestens einen Gruppe in eine anfordernde Einheit dupliziert werden, welche die Angabe zu der Abfrage bereitgestellt hat.
  3. Verfahren nach Anspruch 2, des Weiteren aufweisend: ein Empfangen einer Angabe zur Verwendung von Daten innerhalb der mindestens einen Gruppe, die der anfordernden Einheit in Bezug auf die Abfrage bereitgestellt wird, wobei der eine oder die mehreren Faktoren aus der Gruppe bestehend aus einem Schlüsselwort, einem Satz von Schlüsselwörtern, einem Wert, einem Satz von Werten, einem Bereich von Werten und einem Satz von Bereichen von Werten ausgewählt werden.
  4. Verfahren nach einem vorhergehenden Anspruch, des Weiteren aufweisend: ein Anpassen der Mehrzahl von kognitiven Datenfiltern im Laufe der Zeit, um eine Wirksamkeit der Mehrzahl von kognitiven Datenfiltern bezogen auf die Verwendung von Daten innerhalb einer oder mehrerer Gruppen zu verbessern, die einer anfordernden Einheit als Reaktion auf ein Empfangen einer Angabe zu einer Abfrage von der anfordernden Einheit bereitgestellt werden, wobei die Wirksamkeit der Mehrzahl von kognitiven Datenfiltern auf jedem der folgenden Kriterien beruht: einem Teil der Daten innerhalb der einen oder der mehreren Gruppen, die der anfordernden Einheit bereitgestellt werden, der tatsächlich durch die Abfrage verwendet wird, und einem Prozentsatz aller in der anfordernden Einheit gespeicherten Daten, der für eine Verwendung in der Abfrage verfügbar ist, der innerhalb der mindestens einen Gruppe bereitgestellt wird.
  5. Verfahren nach Anspruch 4, wobei die Wirksamkeit der Mehrzahl von Datenfiltern FF(k)1 gemäß einem ersten Algorithmus F F ( k ) 1 = F P ( k ) F R ( k )
    Figure DE112018002266T5_0003
    berechnet wird, wobei FP(k) den Teil der Daten innerhalb der einen oder der mehreren Gruppen angibt, die der anfordernden Einheit bereitgestellt werden, der tatsächlich durch die Abfrage verwendet wird, und einen ersten Wert in einem Bereich aufweist, der Null, Eins und alle dazwischen liegenden Werte beinhaltet, und wobei FR(k) den Prozentsatz aller Daten angibt, die in der anfordernden Einheit gespeichert werden, der für eine Verwendung in der Abfrage verfügbar ist, der innerhalb der einen oder der mehreren Gruppen bereitgestellt wird, und einen zweiten Wert in dem Bereich aufweist.
  6. Verfahren nach Anspruch 4, wobei die Wirksamkeit der Mehrzahl von kognitiven Datenfiltern FF(k)2 gemäß einem zweiten Algorithmus FF(k)2 = (2 * FP(k) * FR(k)) / (FP(k) + FR(k)) berechnet wird, wobei FP(k) den Teil der Daten innerhalb der einen oder der mehreren Gruppen angibt, die der anfordernden Einheit bereitgestellt werden, der tatsächlich durch die Abfrage verwendet wird, und einen ersten Wert in einem Bereich aufweist, der Null, Eins und alle dazwischen liegenden Werte beinhaltet, und wobei FR(k) den Prozentsatz aller Daten angibt, die in der anfordernden Einheit gespeichert werden, der für eine Verwendung in der Abfrage verfügbar ist, der innerhalb der einen oder der mehreren Gruppen bereitgestellt wird, und einen zweiten Wert in dem Bereich aufweist.
  7. Verfahren nach Anspruch 1, des Weiteren aufweisend: ein Aktualisieren der Mehrzahl von Gruppen, um Änderungen von Daten zu berücksichtigen, die in dem globalen Daten-Repository gespeichert sind, wobei das Aktualisieren der Mehrzahl von Gruppen in regelmäßigen Abständen auf Grundlage eines vorgegebenen Zeitplans, fortlaufend als eine Hintergrundoperation oder als Reaktion auf ein auslösendes Ereignis stattfindet und wobei das Aktualisieren der Mehrzahl von Gruppen eine Aktion beinhaltet, die aus einem Satz von Aktionen ausgewählt wird, aufweisend: ein Entfernen von einer oder mehreren Gruppen, ein Hinzufügen von zusätzlichen Daten zu einer bestimmten Gruppe und ein Entfernen von vorhandenen Daten aus der bestimmten Gruppe.
  8. Verfahren nach Anspruch 7, wobei das auslösende Ereignis aus einem Satz ausgewählt wird, aufweisend: eine Löschung von vorhandenen Daten aus dem globalen Daten-Repository, eine Hinzufügung von zusätzlichen Daten zu dem globalen Daten-Repository, eine Hinzufügung eines neuen Typs von Daten zu dem globalen Daten-Repository und eine Aktualisierung eines Textkonvertierungsprozesses des globalen Daten-Repositories.
  9. Computerprogrammprodukt, wobei das Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium mit darauf enthaltenen Programmanweisungen aufweist, wobei das durch einen Computer lesbare Speichermedium kein flüchtiges Signal an sich ist, wobei die Programmanweisungen durch eine Verarbeitungsschaltung ausführbar sind, um die Verarbeitungsschaltung zu veranlassen: eine Mehrzahl von kognitiven Datenfiltern auf Grundlage von einem oder mehreren Faktoren durch die Verarbeitungseinheit zu erzeugen, um eine Mehrzahl von Gruppen zu erzeugen; und Daten, die durch ein globales Daten-Repository empfangen werden, durch die Verarbeitungseinheit kognitiv zu filtern, um unter Verwendung der Mehrzahl von kognitiven Datenfiltern vor einem Empfangen einer Abfrage in dem globalen Daten-Repository unabhängige Teile der Daten in der Mehrzahl von Gruppen zu platzieren, wobei Daten innerhalb einer jeden aus der Mehrzahl von Gruppen ein gemeinsames, definierbares Merkmal teilen.
  10. Computerprogrammprodukt nach Anspruch 9, wobei die enthaltenen Programmanweisungen des Weiteren durch die Verarbeitungsschaltung ausführbar sind, um die Verarbeitungsschaltung zu veranlassen: Daten aus einer oder mehreren Quellen durch die Verarbeitungseinheit in dem globalen Daten-Repository zu empfangen, wobei die Daten Text- und unstrukturierte Daten beinhalten; die Daten durch die Verarbeitungseinheit in dem globalen Daten-Repository zu speichern; die unstrukturierten Daten durch die Verarbeitungseinheit in Daten auf Textgrundlage zu konvertieren; die Daten auf Textgrundlage durch die Verarbeitungseinheit in dem globalen Daten-Repository zu speichern, wobei die Mehrzahl von kognitiven Datenfiltern auf die Daten auf Textgrundlage nach deren Konvertierung aus den unstrukturierten Daten angewendet werden; eine Angabe zu der Abfrage durch die Verarbeitungseinheit in dem globalen Daten-Repository zu empfangen; mindestens eine Gruppe, die der Abfrage entspricht, durch die Verarbeitungseinheit zu ermitteln und vorabzurufen; und durch die Verarbeitungseinheit auf die Abfrage zu antworten, indem Daten innerhalb der mindestens einen Gruppe in eine anfordernde Einheit dupliziert werden, welche die Angabe zu der Abfrage bereitgestellt hat.
  11. Computerprogrammprodukt nach Anspruch 10, wobei die enthaltenen Programmanweisungen des Weiteren durch die Verarbeitungsschaltung ausführbar sind, um die Verarbeitungsschaltung zu veranlassen: eine Angabe zur Verwendung von Daten innerhalb der mindestens einen Gruppe, die der anfordernden Einheit in Bezug auf die Abfrage bereitgestellt wird, durch die Verarbeitungseinheit zu empfangen, wobei der eine oder die mehreren Faktoren aus der Gruppe bestehend aus einem Schlüsselwort, einem Satz von Schlüsselwörtern, einem Wert, einem Satz von Werten, einem Bereich von Werten und einem Satz von Bereichen von Werten ausgewählt werden.
  12. Computerprogrammprodukt nach Anspruch 9, wobei die enthaltenen Programmanweisungen des Weiteren durch die Verarbeitungsschaltung ausführbar sind, um die Verarbeitungsschaltung zu veranlassen: die Mehrzahl von kognitiven Datenfiltern durch die Verarbeitungseinheit im Laufe der Zeit anzupassen, um eine Wirksamkeit der Mehrzahl von kognitiven Datenfiltern bezogen auf die Verwendung von Daten innerhalb einer oder mehrerer Gruppen zu verbessern, die einer anfordernden Einheit als Reaktion auf ein Empfangen einer Angabe zu einer Abfrage von der anfordernden Einheit bereitgestellt werden, wobei die Wirksamkeit der Mehrzahl von kognitiven Datenfiltern auf jedem der folgenden Kriterien beruht: einem Teil der Daten innerhalb der einen oder der mehreren Gruppen, die der anfordernden Einheit bereitgestellt werden, der tatsächlich durch die Abfrage verwendet wird, und einem Prozentsatz aller in der anfordernden Einheit gespeicherten Daten, der für eine Verwendung in der Abfrage verfügbar ist, der innerhalb der mindestens einen Gruppe bereitgestellt wird.
  13. Computerprogrammprodukt nach Anspruch 12, wobei die Wirksamkeit der Mehrzahl von Datenfiltern FF(k)1 gemäß einem ersten Algorithmus F F ( k ) 1 = F P ( k ) F R ( k )
    Figure DE112018002266T5_0004
    berechnet wird, wobei FP(k) den Teil der Daten innerhalb der einen oder der mehreren Gruppen angibt, die der anfordernden Einheit bereitgestellt werden, der tatsächlich durch die Abfrage verwendet wird, und einen ersten Wert in einem Bereich aufweist, der Null, Eins und alle dazwischen liegenden Werte beinhaltet, und wobei FR(k) den Prozentsatz aller Daten angibt, die in der anfordernden Einheit gespeichert werden, der für eine Verwendung in der Abfrage verfügbar ist, der innerhalb der einen oder der mehreren Gruppen bereitgestellt wird, und einen zweiten Wert in dem Bereich aufweist.
  14. Computerprogrammprodukt nach Anspruch 12, wobei die Wirksamkeit der Mehrzahl von kognitiven Datenfiltern FF(k)2 gemäß einem zweiten Algorithmus FF(k)2 = (2 * FP(k) * FR(k)) / (FP(k) + FR(k)) berechnet wird, wobei FP(k) den Teil der Daten innerhalb der einen oder der mehreren Gruppen angibt, die der anfordernden Einheit bereitgestellt werden, der tatsächlich durch die Abfrage verwendet wird, und einen ersten Wert in einem Bereich aufweist, der Null, Eins und alle dazwischen liegenden Werte beinhaltet, und wobei FR(k) den Prozentsatz aller Daten angibt, die in der anfordernden Einheit gespeichert werden, der für eine Verwendung in der Abfrage verfügbar ist, der innerhalb der einen oder der mehreren Gruppen bereitgestellt wird, und einen zweiten Wert in dem Bereich aufweist.
  15. Computerprogrammprodukt nach Anspruch 9, wobei die enthaltenen Programmanweisungen des Weiteren durch die Verarbeitungsschaltung ausführbar sind, um die Verarbeitungsschaltung zu veranlassen: die Mehrzahl von Gruppen durch die Verarbeitungseinheit in regelmäßigen Abständen auf Grundlage eines vorgegebenen Zeitplans, fortlaufend als eine Hintergrundoperation oder als Reaktion auf ein auslösendes Ereignis zu aktualisieren, um Änderungen von Daten zu berücksichtigen, die in dem globalen Daten-Repository gespeichert sind, wobei das Aktualisieren ein Durchführen einer Aktion beinhaltet, die aus einem Satz von Aktionen ausgewählt wird, aufweisend: ein Entfernen von einer oder mehreren Gruppen, ein Hinzufügen von zusätzlichen Daten zu einer bestimmten Gruppe und ein Entfernen von vorhandenen Daten aus der bestimmten Gruppe.
  16. Computerprogrammprodukt nach Anspruch 15, wobei das auslösende Ereignis aus einem Satz ausgewählt wird, aufweisend: eine Löschung von vorhandenen Daten aus dem globalen Daten-Repository, eine Hinzufügung von zusätzlichen Daten zu dem globalen Daten-Repository, eine Hinzufügung eines neuen Typs von Daten zu dem globalen Daten-Repository und eine Aktualisierung eines Textkonvertierungsprozesses des globalen Daten-Repositories.
  17. System, aufweisend: eine Verarbeitungsschaltung; einen Arbeitsspeicher; und in dem Arbeitsspeicher gespeicherte Logik, die bei Ausführung durch die Verarbeitungsschaltung die Verarbeitungsschaltung veranlasst: eine Mehrzahl von kognitiven Datenfiltern auf Grundlage von einem oder mehreren Faktoren zu erzeugen, um eine Mehrzahl von Gruppen zu erzeugen; und Daten, die durch ein globales Daten-Repository empfangen werden, kognitiv zu filtern, um unter Verwendung der Mehrzahl von kognitiven Datenfiltern vor einem Empfangen einer Abfrage in dem globalen Daten-Repository unabhängige Teile der Daten in der Mehrzahl von Gruppen zu platzieren, wobei Daten innerhalb einer jeden aus der Mehrzahl von Gruppen ein gemeinsames, definierbares Merkmal teilen.
  18. System nach Anspruch 17, wobei die Logik die Verarbeitungsschaltung des Weiteren veranlasst: die Daten aus einer oder mehreren Quellen in dem globalen Daten-Repository zu empfangen, wobei die Daten Text- und unstrukturierte Daten beinhalten; die Daten in dem globalen Daten-Repository zu speichern; die unstrukturierten Daten in Daten auf Textgrundlage zu konvertieren; die Daten auf Textgrundlage in dem globalen Daten-Repository zu speichern, wobei die Mehrzahl von kognitiven Datenfiltern auf die Daten auf Textgrundlage nach deren Konvertierung aus den unstrukturierten Daten angewendet werden; eine Angabe zu der Abfrage in dem globalen Daten-Repository zu empfangen; mindestens eine Gruppe, die der Abfrage entspricht, zu ermitteln und vorabzurufen; und auf die Abfrage zu antworten, indem Daten innerhalb der mindestens einen Gruppe in eine anfordernde Einheit dupliziert werden, welche die Angabe zu der Abfrage bereitgestellt hat.
  19. System nach Anspruch 18, wobei die Logik die Verarbeitungsschaltung des Weiteren veranlasst: eine Angabe zur Verwendung von Daten innerhalb der mindestens einen Gruppe zu empfangen, die der anfordernden Einheit in Bezug auf die Abfrage bereitgestellt wird, wobei der eine oder die mehreren Faktoren aus der Gruppe bestehend aus einem Schlüsselwort, einem Satz von Schlüsselwörtern, einem Wert, einem Satz von Werten, einem Bereich von Werten und einem Satz von Bereichen von Werten ausgewählt werden.
  20. System nach Anspruch 17, wobei die Logik die Verarbeitungsschaltung des Weiteren veranlasst: die Mehrzahl von kognitiven Datenfiltern im Laufe der Zeit anzupassen, um eine Wirksamkeit der Mehrzahl von kognitiven Datenfiltern bezogen auf die Verwendung von Daten innerhalb einer oder mehrerer Gruppen zu verbessern, die einer anfordernden Einheit als Reaktion auf ein Empfangen einer Angabe zu einer Abfrage von der anfordernden Einheit bereitgestellt werden, wobei die Wirksamkeit der Mehrzahl von kognitiven Datenfiltern auf jedem der folgenden Kriterien beruht: einem Teil der Daten innerhalb der einen oder der mehreren Gruppen, die der anfordernden Einheit bereitgestellt werden, der tatsächlich durch die Abfrage verwendet wird, und einem Prozentsatz aller in der anfordernden Einheit gespeicherten Daten, der für eine Verwendung in der Abfrage verfügbar ist, der innerhalb der mindestens einen Gruppe bereitgestellt wird.
  21. System nach Anspruch 20, wobei die Wirksamkeit der Mehrzahl von Datenfiltern FF(k)1 gemäß einem ersten Algorithmus F F ( k ) 1 = F P ( k ) F R ( k )
    Figure DE112018002266T5_0005
    berechnet wird, wobei FP(k) den Teil der Daten innerhalb der einen oder der mehreren Gruppen angibt, die der anfordernden Einheit bereitgestellt werden, der tatsächlich durch die Abfrage verwendet wird, und einen ersten Wert in einem Bereich aufweist, der Null, Eins und alle dazwischen liegenden Werte beinhaltet, und wobei FR(k) den Prozentsatz aller Daten angibt, die in der anfordernden Einheit gespeichert werden, der für eine Verwendung in der Abfrage verfügbar ist, die innerhalb der einen oder der mehreren Gruppen bereitgestellt wird, und einen zweiten Wert in dem Bereich aufweist.
  22. System nach Anspruch 20, wobei die Wirksamkeit der Mehrzahl von kognitiven Datenfiltern FF(k)2 gemäß einem zweiten Algorithmus FF(k)2 = (2 * FP(k) * FR(k)) / (FP(k) + FR(k)) berechnet wird, wobei FP(k) den Teil der Daten innerhalb der einen oder der mehreren Gruppen angibt, die der anfordernden Einheit bereitgestellt werden, der tatsächlich durch die Abfrage verwendet wird, und einen ersten Wert in einem Bereich aufweist, der Null, Eins und alle dazwischen liegenden Werte beinhaltet, und wobei FR(k) den Prozentsatz aller Daten angibt, die in der anfordernden Einheit gespeichert werden, der für eine Verwendung in der Abfrage verfügbar ist, die innerhalb der einen oder der mehreren Gruppen bereitgestellt wird, und einen zweiten Wert in dem Bereich aufweist.
  23. System nach Anspruch 17, wobei die Logik die Verarbeitungsschaltung des Weiteren veranlasst: die Mehrzahl von Gruppen zu aktualisieren, um Änderungen von Daten zu berücksichtigen, die in dem globalen Daten-Repository gespeichert sind, wobei das Aktualisieren der Mehrzahl von Gruppen in regelmäßigen Abständen auf Grundlage eines vorgegebenen Zeitplans, fortlaufend als eine Hintergrundoperation oder als Reaktion auf ein auslösendes Ereignis stattfindet und wobei das Aktualisieren der Mehrzahl von Gruppen eine Aktion beinhaltet, die aus einem Satz von Aktionen ausgewählt wird, aufweisend: ein Entfernen von einer oder mehreren Gruppen, ein Hinzufügen von zusätzlichen Daten zu einer bestimmten Gruppe und ein Entfernen von vorhandenen Daten aus der bestimmten Gruppe.
  24. System nach Anspruch 23, wobei das auslösende Ereignis aus einem Satz ausgewählt wird, aufweisend: eine Löschung von vorhandenen Daten aus dem globalen Daten-Repository, eine Hinzufügung von zusätzlichen Daten zu dem globalen Daten-Repository, eine Hinzufügung eines neuen Typs von Daten zu dem globalen Daten-Repository und eine Aktualisierung eines Textkonvertierungsprozesses des globalen Daten-Repositories.
  25. Verfahren, aufweisend: ein Empfangen von Daten aus einer oder mehreren Quellen in dem globalen Daten-Repository, wobei die Daten Text- und unstrukturierte Daten beinhalten; ein Speichern der Daten in dem globalen Daten-Repository; ein Konvertieren der unstrukturierten Daten in Daten auf Textgrundlage; ein Speichern der Daten auf Textgrundlage in dem globalen Daten-Repository; ein Erzeugen einer Mehrzahl von kognitiven Datenfiltern auf Grundlage von einem oder mehreren Faktoren, um eine Mehrzahl von Gruppen zu erzeugen, wobei die Faktoren ein oder mehrere Schlüsselwörter beinhalten; ein kognitives Filtern der Daten, um unter Verwendung der Mehrzahl von kognitiven Datenfiltern vor einem Empfangen einer Abfrage in dem globalen Daten-Repository unabhängige Teile der Daten in der Mehrzahl von Gruppen zu platzieren, wobei Daten innerhalb einer jeden aus der Mehrzahl von Gruppen ein gemeinsames, definierbares Merkmal teilen und wobei die Mehrzahl von kognitiven Datenfiltern auf die Daten auf Textgrundlage nach deren Konvertierung aus den unstrukturierten Daten angewendet werden; ein Empfangen einer Angabe zu der Abfrage; ein Ermitteln und Vorabrufen von mindestens einer Gruppe aus der Mehrzahl von Gruppen, die der Abfrage entspricht; ein Antworten auf die Abfrage, indem Daten innerhalb der mindestens einen Gruppe in eine anfordernde Einheit dupliziert werden, welche die Angabe zu der Abfrage bereitgestellt hat; ein Empfangen einer Angabe zur Verwendung von Daten innerhalb der mindestens einen Gruppe, die der anfordernden Einheit in Bezug auf die Abfrage bereitgestellt wird; und ein Anpassen der Mehrzahl von kognitiven Datenfiltern im Laufe der Zeit, um eine Wirksamkeit der Mehrzahl von kognitiven Datenfiltern bezogen auf die Verwendung der Daten innerhalb der mindestens einen Gruppe zu verbessern, die der anfordernden Einheit bereitgestellt wird, wobei die Wirksamkeit der Mehrzahl von kognitiven Datenfiltern auf jedem der folgenden Kriterien beruht: einem Teil der Daten innerhalb der mindestens einen Gruppe, die der anfordernden Einheit bereitgestellt wird, der tatsächlich durch die Abfrage verwendet wird, und einem Prozentsatz aller in der anfordernden Einheit gespeicherten Daten, der für eine Verwendung in der Abfrage verfügbar ist, der innerhalb der mindestens einen Gruppe bereitgestellt wird.
DE112018002266.8T 2017-07-26 2018-07-17 Kognitives Datenfiltern für Speicherumgebungen Pending DE112018002266T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/660,733 US10817515B2 (en) 2017-07-26 2017-07-26 Cognitive data filtering for storage environments
US15/660,733 2017-07-26
PCT/IB2018/055295 WO2019021113A1 (en) 2017-07-26 2018-07-17 FILTERING COGNITIVE DATA FOR STORAGE ENVIRONMENTS

Publications (1)

Publication Number Publication Date
DE112018002266T5 true DE112018002266T5 (de) 2020-02-20

Family

ID=65038583

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018002266.8T Pending DE112018002266T5 (de) 2017-07-26 2018-07-17 Kognitives Datenfiltern für Speicherumgebungen

Country Status (6)

Country Link
US (1) US10817515B2 (de)
JP (1) JP7124051B2 (de)
CN (1) CN110914817B (de)
DE (1) DE112018002266T5 (de)
GB (1) GB2579512A (de)
WO (1) WO2019021113A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10884980B2 (en) 2017-07-26 2021-01-05 International Business Machines Corporation Cognitive file and object management for distributed storage environments
US11055420B2 (en) * 2018-02-05 2021-07-06 International Business Machines Corporation Controlling access to data requested from an electronic information system
US10447592B2 (en) * 2018-02-08 2019-10-15 Ricoh Company, Ltd. Output device discovery using network switches
US11509531B2 (en) * 2018-10-30 2022-11-22 Red Hat, Inc. Configuration sharing and validation for nodes in a grid network
CN112311559A (zh) 2019-07-24 2021-02-02 中兴通讯股份有限公司 计数器自定义过滤方法、装置以及计算机可读存储介质
US11606242B1 (en) 2022-03-10 2023-03-14 Ricoh Company, Ltd. Coordinated monitoring of legacy output devices
US11894973B2 (en) 2022-03-10 2024-02-06 Ricoh Company, Ltd. Assigning and prioritizing mediation servers for monitoring legacy devices

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3177999B2 (ja) 1991-04-25 2001-06-18 カシオ計算機株式会社 システム構成図作成装置
US6470389B1 (en) 1997-03-14 2002-10-22 Lucent Technologies Inc. Hosting a network service on a cluster of servers using a single-address image
US6205481B1 (en) 1998-03-17 2001-03-20 Infolibria, Inc. Protocol for distributing fresh content among networked cache servers
US6952737B1 (en) 2000-03-03 2005-10-04 Intel Corporation Method and apparatus for accessing remote storage in a distributed storage cluster architecture
US6675159B1 (en) * 2000-07-27 2004-01-06 Science Applic Int Corp Concept-based search and retrieval system
JP2004178217A (ja) 2002-11-26 2004-06-24 Sony Corp ファイル管理装置、ファイル管理方法、ファイル管理プログラム及び、ファイル管理プログラムを記録したコンピュータ読み取り可能なプログラム格納媒体
US7831581B1 (en) * 2004-03-01 2010-11-09 Radix Holdings, Llc Enhanced search
US7844691B2 (en) 2004-12-30 2010-11-30 Xstor Systems, Inc. Scalable distributed storage and delivery
US7835578B2 (en) * 2006-04-19 2010-11-16 Sarnoff Corporation Automated video-to-text system
US8099401B1 (en) 2007-07-18 2012-01-17 Emc Corporation Efficiently indexing and searching similar data
US7890488B2 (en) 2007-10-05 2011-02-15 Yahoo! Inc. System and method for caching posting lists
US7437686B1 (en) 2007-11-16 2008-10-14 International Business Machines Corporation Systems, methods and computer program products for graphical user interface presentation to implement filtering of a large unbounded hierarchy to avoid repetitive navigation
US10719149B2 (en) * 2009-03-18 2020-07-21 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
CN103119621B (zh) * 2010-04-30 2016-12-07 当今技术(Ip)有限公司 内容管理装置
US9699503B2 (en) * 2010-09-07 2017-07-04 Opentv, Inc. Smart playlist
US8661449B2 (en) 2011-06-17 2014-02-25 Microsoft Corporation Transactional computation on clusters
US9886188B2 (en) 2011-08-25 2018-02-06 International Business Machines Corporation Manipulating multiple objects in a graphic user interface
JP5895756B2 (ja) 2012-07-17 2016-03-30 富士ゼロックス株式会社 情報分類プログラム及び情報処理装置
CN103020158B (zh) 2012-11-26 2016-09-07 中兴通讯股份有限公司 一种报表创建方法、装置和系统
US9152622B2 (en) * 2012-11-26 2015-10-06 Language Weaver, Inc. Personalized machine translation via online adaptation
US9405811B2 (en) 2013-03-08 2016-08-02 Platfora, Inc. Systems and methods for interest-driven distributed data server systems
US9075960B2 (en) * 2013-03-15 2015-07-07 Now Technologies (Ip) Limited Digital media content management apparatus and method
US20140365241A1 (en) 2013-06-05 2014-12-11 ESO Solutions, Inc. System for pre-hospital patient information exchange and methods of using same
US9245026B1 (en) * 2013-06-26 2016-01-26 Amazon Technologies, Inc. Increasing the relevancy of search results across categories
US10242045B2 (en) * 2013-10-30 2019-03-26 Dropbox, Inc. Filtering content using synchronization data
CN104866497B (zh) 2014-02-24 2018-06-15 华为技术有限公司 分布式文件系统列式存储的元数据更新方法、装置、主机
EP3143526A4 (de) 2014-05-12 2017-10-04 Diffeo, Inc. Entitätszentrierte wissensentdeckung
EP2966562A1 (de) 2014-07-09 2016-01-13 Nexenta Systems, Inc. Verfahren zur Inline I/O Verarbeitung in Tiered Optimieren verteilter Speichersysteme
CN104318340B (zh) 2014-09-25 2017-07-07 中国科学院软件研究所 基于文本履历信息的信息可视化方法及智能可视分析系统
CN105550180B (zh) 2014-10-29 2019-02-12 北京奇虎科技有限公司 数据处理的方法、装置及系统
CN104484404B (zh) 2014-12-15 2017-11-07 中国科学院东北地理与农业生态研究所 一种改善分布式文件系统中地理栅格数据文件处理方法
WO2016149552A1 (en) 2015-03-17 2016-09-22 Cloudera, Inc. Compaction policy
CN104767813B (zh) 2015-04-08 2018-06-08 江苏国盾科技实业有限责任公司 基于openstack的公众行大数据服务平台
CN106250381B (zh) * 2015-06-04 2020-11-17 微软技术许可有限责任公司 用于确定表格式存储的列布局的系统和方法
US9774993B1 (en) * 2016-05-17 2017-09-26 International Business Machines Corporation System, method, and recording medium for geofence filtering
CN106056427A (zh) 2016-05-25 2016-10-26 中南大学 一种基于Spark的大数据混合模型的移动推荐方法
CN106527993B (zh) 2016-11-09 2019-08-30 北京搜狐新媒体信息技术有限公司 一种分布式系统中的海量文件储存方法及装置
US10884980B2 (en) 2017-07-26 2021-01-05 International Business Machines Corporation Cognitive file and object management for distributed storage environments
JP2018092679A (ja) 2018-03-14 2018-06-14 株式会社メイキップ 適正サイズ提示方法、適正サイズ提示システム、サーバ装置、及びプログラム

Also Published As

Publication number Publication date
CN110914817A (zh) 2020-03-24
CN110914817B (zh) 2024-02-02
GB202002250D0 (en) 2020-04-01
JP7124051B2 (ja) 2022-08-23
WO2019021113A1 (en) 2019-01-31
US20190034487A1 (en) 2019-01-31
GB2579512A (en) 2020-06-24
US10817515B2 (en) 2020-10-27
JP2020528617A (ja) 2020-09-24

Similar Documents

Publication Publication Date Title
DE112018002266T5 (de) Kognitives Datenfiltern für Speicherumgebungen
DE112018002955T5 (de) Kognitive datei- und objektverwaltung für verteilte speicherumgebungen
DE112020003820T5 (de) Erkennung von Anomalien und Abweichungen unter Verwendung eines domänenindizierten Einschränkungs-Repository
DE102013204186B4 (de) Ermitteln von Prioritäten für zwischengespeicherte Objekte zum Ordnen des Übertragens von Änderungen an zwischengespeicherten Objekten beruhend auf gemessener Netzwerkbandbreite
DE112019002235T5 (de) Einbinden eines wörterbuch-bearbeitungssystems in ein text mining
DE112017007510T5 (de) Blockchain für offene wissenschaftliche forschung
DE102016105472A1 (de) Speicherebenenverteilung und parallele Zuordnung auf Blockebene bei Dateisystemen
DE102013222384A1 (de) Sicherheits-Screening auf Kontextgrundlage für Zugriff auf Daten
DE112012004238T5 (de) Auf Erkennung beruhende Identifizierung und Migration von leicht in eine Cloud verlagerbaren Anwendungen
DE112012005032T5 (de) Entfernen der Datenremanenz in deduplizierten Speicher-Clouds
DE112016001902T5 (de) Schätzen von Rechenressourcen für die Ausführung von Data-Mining-Diensten
DE102014103279A1 (de) Pivot-Facets für Text-Mining und Suche
DE112018005076T5 (de) Erstellen einer rangfolge von dokumenten auf grundlage ihres semantischen reichtums
DE112017005588T5 (de) Speichern und abrufen von eingeschränkten datensätzen in und aus einem cloud-netzwerk mit nichteingeschränkten datensätzen
DE112021005422T5 (de) Auf lernen beruhende arbeitslast-ressourcenoptimierung für datenbank-managementsysteme
DE112020005323T5 (de) Elastische ausführung von machine-learning-arbeitslasten unter verwendung einer anwendungsbasierten profilierung
DE112018004008T5 (de) Auf dateisysteminhalten beruhende sicherheit
DE112020000545T5 (de) Deep-forest-modell-entwicklung und -training
DE112017005022T5 (de) Umladen der Bandverarbeitung auf Objektspeicher
DE112019000421T5 (de) Arbeitslastverwaltung mit datenzugriffserkennung in einem datenverarbeitungscluster
DE112020000891T5 (de) Erzeugung von nativem code für cloud-services
DE112021003943T5 (de) Sprachantwortsysteme auf Grundlage eines personalisierten Wortschatzes und einer Benutzerprofilerstellung - Personalisierte linguistische KI-Engines
DE112021003668T5 (de) Zuteilen von aufgaben und daten unter verwendung von multi-access edge computing
DE112021004380T5 (de) Maschinelles merkmalslernen zur produktformulierung
DE102021123058A1 (de) Maskieren von sensiblen informationen in einem dokument

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017300000

Ipc: G06F0016300000

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0016300000

Ipc: G06F0016270000