-
HINTERGRUND
-
Die vorliegende Erfindung betrifft allgemein das Gebiet von Netzwerkanalyse und insbesondere ein Erfassen von zugrunde liegenden Regeln in einem Netzwerk.
-
Deep-Learning stellt hochleistungsfähige Lösungen für Asset-Inventarisierung, Asset-Inventarüberwachung und andere Analysen für Netzwerkdatenverkehr bereit. Das Asset-Management für Unternehmen umfasst mehrere Schlüsselaufgaben, darunter Asset-Inventarisierung, Asset-Lebenszyklusverwaltung und Asset-Inventarüberwachung. Deep-Learning-Modelle bieten die Funktionen mit deutlich höherer Leistung in Bezug auf Messgrößen wie Präzision, Rückruf, f1-Score und dergleichen.
-
Charakteristik-Zuordnungen (saliency maps) sind eine Bildverarbeitungstechnik, die zum Unterscheiden von visuellen Merkmalen in Bildern verwendet wird. Zum Beispiel werden Vollfarbenbilder in Schwarz-Weiß-Bilder umgewandelt, um die stärksten Farben, die in dem Bild vorhanden sind, zu analysieren und darzustellen. Andere Beispiele können ein Verwenden von Nachtsicht-Technologien umfassen, um Lichtquellen zu erfassen und darzustellen, wobei Grün zum Darstellen von Helligkeit verwendet werden kann und Schwarz dunkle Bereiche darstellt. Charakteristik-Zuordnungskonzepte werden hierin als auf Anwendungen außerhalb einer Bildanalyse erweitert und auf Grundlage von Merkmalen beschrieben, die zum Beschreiben von anderen als reinen Bilddaten verwendet werden können.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Wie hierin offenbart, umfasst ein durch einen Computer umgesetztes Verfahren zum Analysieren von Netzwerkverbindungen ein Identifizieren einer Verbindung von Interesse und einer entsprechenden Gruppe von Verbindungsdaten. Das Verfahren umfasst außerdem ein Generieren von einer oder mehreren Charakteristik-Zuordnungen, die der Verbindung von Interesse entspricht bzw. entsprechen. Das Verfahren umfasst außerdem ein Zuordnen der generierten einen oder mehreren Charakteristik-Zuordnungen zu zugrunde liegende Protokollen und Feldern und ein Identifizieren von einem oder mehreren Werten, der bzw. die jedem der zugrunde liegenden Protokolle entspricht bzw. entsprechen. Das Verfahren umfasst außerdem ein Extrahieren von allgemeinen Entsprechungen aus dem identifizierten einen Wert oder den identifizierten mehreren Werten, der bzw. die jedem der zugrunde liegenden Protokolle und Felder entspricht bzw. entsprechen. Ein Computerprogrammprodukt und ein Computersystem, die dem Verfahren entsprechen, werden ebenfalls offenbart.
-
Figurenliste
-
- 1 ist ein Blockschaubild, das ein Analysesystem für Netzwerkdatenverkehr gemäß mindestens einer Ausführungsform der vorliegenden Erfindung darstellt;
- 2 ist ein Ablaufplan, der ein Analyseverfahren für Netzwerkdatenverkehr gemäß mindestens einer Ausführungsform der vorliegenden Erfindung darstellt;
- 3 stellt eine beispielhafte Bytestrom-Zuordnung gemäß mindestens einer Ausführungsform der vorliegenden Erfindung dar;
- 4 ist ein Blockschaubild von Komponenten eines Datenverarbeitungssystems, das das Bildanalysesystem gemäß einer Ausführungsform der vorliegenden Erfindung ausführt.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Charakteristik-Zuordnungen, wie in Bezug auf Deep-Learning beschrieben, entsprechen einer Visualisierungstechnik, die zum Berechnen von Bildern verwendet wird. Die Technik wird von dem Konzept einer Charakteristik in einem Bild abgeleitet, die auf eindeutige Merkmale verweist, wie zum Beispiel Pixel, Auflösung usw. des Bilds in dem Kontext einer visuellen Verarbeitung. Die eindeutigen Merkmale stellen Positionen von Interesse in einem Bild unverwechselbar dar, und eine Charakteristik-Zuordnung ist eine topografische Darstellung der Positionen von Interesse in Bezug auf das Bild. Insbesondere stellen Charakteristik-Zuordnungen die Auffälligkeit oder Charakteristik jeder Position in dem Sichtbereich über eine skalare Größe dar und bestimmen letztendlich die Auswahl von eindeutigen Positionen auf Grundlage der räumlichen Charakteristik-Verteilung.
-
1 ist ein Blockschaubild, das ein Analysesystem 100 für Netzwerkdatenverkehr gemäß mindestens einer Ausführungsform der vorliegenden Erfindung darstellt. Wie dargestellt, umfasst das Analysesystem 100 für Netzwerkdatenverkehr ein Datenverarbeitungssystem 110, ein Netzwerk 120 und Datenverarbeitungssysteme 130. Das Analysesystem 100 für Netzwerkdatenverkehr kann eine Analyse und eine Identifizierung von Regeln und Abhängigkeiten in Bezug auf Verbindungen innerhalb eines Systems ermöglichen.
-
Das Datenverarbeitungssystem 110 kann ein Desktop-Computer, ein Laptop-Computer, ein spezieller Computer-Server oder ein beliebiges im Stand der Technik bekanntes Computersystem sein. In einigen Ausführungsformen stellt das Datenverarbeitungssystem 110 Computersysteme dar, die gruppierte Computer verwenden, um wie ein einzelner Pool von nahtlosen Ressourcen zu wirken. Im Allgemeinen steht das Datenverarbeitungssystem 110 für jede elektronische Einheit oder Kombination von elektronischen Einheiten, die fähig ist bzw. sind, Daten zu empfangen und zu übertragen, wie in Bezug auf 4 ausführlicher beschrieben wird. Das Datenverarbeitungssystem 110 kann interne und externe Hardware-Komponenten umfassen, wie unter Bezugnahme auf 4 ausführlicher dargestellt und beschrieben wird.
-
Wie dargestellt, umfasst das Datenverarbeitungssystem 110 eine Anwendung 115 zur Verbindungsanalyse. Die Anwendung 115 zur Verbindungsanalyse kann konfiguriert werden, um ein Analyseverfahren für Netzwerkdatenverkehr wie zum Beispiel das in Bezug auf 2 beschriebene auszuführen. Die Anwendung 115 zur Verbindungsanalyse kann fähig sein, jeden der oben oder im Folgenden ausführlich beschriebenen Arbeitsschritte auszuführen. In mindestens einigen Ausführungsformen ist die Anwendung 115 zur Verbindungsanalyse konfiguriert, um Verbindungen zwischen jedem Datenverarbeitungssystem 110 und Datenverarbeitungssystemen 130A und 130B zu analysieren.
-
Die Datenverarbeitungssysteme 130 können jeweils ein Desktop-Computer, ein Laptop-Computer, ein spezialisierter Computer-Server oder ein beliebiges im Stand der Technik bekanntes Computersystem sein. In einigen Ausführungsformen stellen die Datenverarbeitungssysteme 130 Computersysteme dar, die gruppierte Computer verwenden, um wie ein einzelner Pool von nahtlosen Ressourcen zu wirken. Im Allgemeinen stehen die Datenverarbeitungssysteme 130 für jede elektronische Einheit oder Kombination von elektronischen Einheiten, die fähig ist oder sind, Daten zu empfangen und zu übertragen, wie in Bezug auf 4 ausführlicher beschrieben wird. Die Datenverarbeitungssysteme 130 können interne und externe Hardware-Komponenten umfassen, wie unter Bezugnahme auf 4 ausführlicher dargestellt und beschrieben wird.
-
Das Netzwerk 120 kann zum Beispiel ein lokales Netzwerk (LAN), ein Weitverkehrsnetzwerk (WAN) wie das Internet oder eine Kombination aus beiden sein und drahtgebundene, drahtlose oder Lichtwellenleiter-Verbindungen umfassen. Im Allgemeinen kann das Netzwerk 120 jede Kombination von Verbindungen und Protokollen sein, die Datenübertragungen zwischen dem Datenverarbeitungssystem 110 und den Datenverarbeitungssystemen 130 unterstützen.
-
2 ist ein Ablaufplan, der ein Analyseverfahren 200 für Netzwerkdatenverkehr gemäß mindestens einer Ausführungsform der vorliegenden Erfindung darstellt. Wie dargestellt, umfasst das Analyseverfahren 200 für Netzwerkdatenverkehr ein Identifizieren (210) einer Verbindung von Interesse, ein Generieren (220) von Charakteristik-Zuordnungen, die der Verbindung von Interesse entsprechen, ein Zuordnen (230) der generierten Charakteristik-Zuordnungen zu zugrunde liegenden Protokollen und Feldern, ein Identifizieren (240) von einem oder mehreren Werten, der bzw. die jedem der zugrundeliegenden Protokolle und Felder entspricht bzw. entsprechen, ein Extrahieren (250) von allgemeinen Entsprechungen aus dem identifizierten einen Wert oder den identifizierten mehreren Werten, der bzw. die jedem der zugrunde liegenden Protokolle und Felder entspricht bzw. entsprechen, und ein Generieren (260) von allgemeinen Regeln, die die extrahierten Entsprechungen darstellen.
-
Das Identifizieren (210) eines Netzwerks oder einer Verbindung von Interesse kann ein Empfangen einer Angabe einer Verbindung oder einer Gruppe von Verbindungen umfassen, die analysiert werden soll bzw. sollen. In mindestens einigen Ausführungsformen umfasst das Identifizieren (210) einer Verbindung von Interesse ein Identifizieren einer Gruppe von Netzwerkverkehrsdaten. Die Netzwerkverkehrsdaten können einen Bytestrom oder mehrere Byteströme umfassen. In mindestens einigen Ausführungsformen umfasst das Identifizieren (210) einer Verbindung von Interesse ein Identifizieren von einem oder mehreren gut definierten Protokollen, durch die Daten jeweils zu der Verbindung von Interesse gesendet werden.
-
Das Generieren (220) von Charakteristik-Zuordnungen, die der Verbindung von Interesse entsprechen, kann ein Umsetzen eines auf Beachtung beruhenden Modellierens in Daten umfassen, die der Verbindung von Interesse entsprechen. In mindestens einigen Ausführungsformen weist das Generieren (220) von Charakteristik-Zuordnungen, die der Verbindung von Interesse entsprechen, ein Anwenden eines auf Beachtung beruhenden Modells auf einen Datenstrom oder mehrere Datenströme auf, der bzw. die der Verbindung von Interesse entspricht bzw. entsprechen. Das auf Beachtung beruhende Modell kann konfiguriert werden, um verschiedenen Teilen des Bytestroms Beachtungsgewichtungen zuzuweisen. In mindestens einigen Ausführungsformen werden die Beachtungsgewichtungen angewendet, um die Wichtigkeit der analysierten Teile des Bytestroms genau wiederzugeben. Das Beachtungsmodell kann Beachtung in zwei Typen unterteilen, globale Beachtung und lokale Beachtung. In Fällen, in denen globale Beachtung umgesetzt wird, wird Beachtung auf alle Quellenpositionen in dem Bytestrom angewendet; in Fällen, in denen lokale Beachtung umgesetzt wird, wird Beachtung nur in einigen Quellenpositionen in dem Bytestrom angewendet. In Bezug auf lokale Beachtung entsprechen die Positionen, auf die Beachtung angewendet wird, Positionen, die am wahrscheinlichsten einflussreiche Bytes enthalten. In Bezug auf globale Beachtung kann es nicht machbar oder unpräzise sein, auf bestimmte oder irgendwelche Bytes Beachtung anzuwenden, sodass Beachtung gleichmäßig auf alle Bytepositionen übergreifend angewendet werden kann. In zusätzlichen Ausführungsformen kann lokale und globale Beachtung auf die Diversifizierung verweisen, wie viel Beachtung einer Byteposition geschenkt wird. Zum Beispiel kann ein Bytestrom in verschiedene größere Stücke oder Segmente aufgebrochen werden. In Bezug auf jedes dieser Segmente können Bytepositionen eine eindeutige „Wichtigkeit“ oder Gewichtung haben. Daher kann in derartigen Situationen lokale Beachtung so angewendet werden, dass eine Byteposition in Bezug auf ein erstes Segment eine erste Gewichtung hat, und ein Byte in derselben Position in Bezug auf ein zweites Segment eine zweite Gewichtung hat. In Ausführungsformen, in denen eine Identifizierung von derartigen Segmenten nicht anwendbar ist, oder in denen eine Identifizierung der verschiedenen Bytepositionen nicht vor der Analyse des Bytestroms durchgeführt werden kann, kann stattdessen globale Beachtung umgesetzt werden, um Werte in dem Bytestrom nicht unangemessen zu charakterisieren. In mindestens einigen Ausführungsformen wird das verwendete, auf Beachtung beruhende Modell auf einem TCP/UDP-Rohstrom geschult. Die Beachtungsgewichtungen des Modells stellen die Charakteristik-Zuordnungen durch optisches Hervorheben von Bytesequenzen bereit, die eine wichtige Rolle in der Vorhersage spielen.
-
Das Generieren (220) von Charakteristik-Zuordnungen, die der Verbindung von Interesse entsprechen, kann außerdem ein Erstellen von Gauß-Pyramiden umfassen, um Merkmalszuordnungen in Bezug auf ein oder mehrere Merkmale von Interesse zu erstellen, die der Verbindung von Interesse entsprechen. Die Pyramidendarstellung ist ein Typ einer mehrskaligen Signaldarstellung, in der ein Signal oder ein Bild einer wiederholten Glättung und Unterabtastung unterzogen wird. Die Pyramidendarstellung kann in zwei Haupttypen unterteilt werden, Tiefpass und Bandpass. Das Erstellen einer Tiefpass-Pyramide umfasst eine Glättung eines Bilds oder eines Signals und eine Unterabtastung des geglätteten Bilds, manchmal um einen Faktor 2 entlang jeder Koordinatenrichtung. Das sich daraus ergebende Bild oder Signal wird anschließend derselben Prozedur unterzogen, und der Zyklus wird wiederholt ausgeführt. Jeder Zyklus führt zu einem kleineren sich daraus ergebenden Bild oder Signal mit stärkerer Glättung, aber mit verringerter räumlicher Abtastdichte. Bei einer Ausführung in Bezug auf ein Bild ergibt eine grafische Darstellung dieser Ergebnisse eine Pyramide, wobei sich das ursprüngliche Bild an der Spitze befindet und die sich ergebenden Bilder von da aus aufeinander gestapelt werden. Gauß-Pyramiden werden insbesondere durch Verwenden eines Gaußschen Mittelwerts abwärts gewichtet und entsprechend nach unten skaliert. Jedes Pixel oder Byte, das einen lokalen Mittelwert enthält, entspricht einem benachbarten Pixel oder Byte oder einer niedrigeren Ebene der Pyramide.
-
In einigen Ausführungsformen umfasst das Generieren (220) von Charakteristik-Zuordnungen, die der Verbindung von Interesse entsprechen, ein Aggregieren von einer oder mehreren generierten Charakteristik-Zuordnungen über eine Klasse, um eine Regel für die Klasse zu bilden. Zum Veranschaulichen dieses Punkts sollten alle Verbindungen von Einheiten von einem spezifischen Anbieter betrachtet werden. Ein Aggregieren von verbindungsübergreifenden Ergebnissen kann aufzeigen, dass ein Wert V in einem Feld k für den spezifischen Anbieter sehr charakteristisch sein kann. Für jede Eingabe summiert ein Gleitfenster die Beachtungsgewichtungen für jede Sequenz. Die Gewichtungen für jede Sequenz werden anschließend berechnet und instanzübergreifend summiert, wobei jede Instanz einer separaten Verbindung entsprechen kann. Das Ziel des Fensters ist es, wichtige Sequenzen zu erkennen. In der Fortsetzung des obigen Beispiels kann aufgezeigt werden, dass eine Sequenz „A B C D“ in dem Feld k sehr charakteristisch für einen anderen Anbieter sein kann. Ausführungsformen der vorliegenden Erfindung erstellen Charakteristik-Zuordnungen gemäß Bytewerten; anders ausgedrückt hat jedes Byte gemäß einem Bytestrom einen Wert, und die Charakteristik-Verfahren weisen jedem Byte eine Relevanzbewertung zu. Es sollte klar sein, dass die Wichtigkeit eines Werts in Bezug auf ein Byte vollkommen abhängig von dem Kontext des Bytestroms ist, weshalb es unnütz ist, zu versuchen zu verallgemeinern, welche Werte als wichtig bewertet werden können und welche nicht. Den Bytewerten können im Hinblick auf eine verstandene Wichtigkeit in Bezug auf den Kontext des empfangenen Bytestroms Relevanzbewertungen zugewiesen werden, bevor der Bytestrom empfangen wird.
-
Das Zuordnen (230) der generierten Charakteristik-Zuordnungen zu zugrunde liegenden Protokollen und Feldern kann ein Aufbauen eines Zusammenhangs zwischen Teilen des Bytestroms in Bezug auf die Verbindung von Interesse und zugrunde liegende Protokolle umfassen, die durch die Teile des Bytestroms angegeben werden. Unter Bezugnahme auf eine TCP-Verbindung können zum Beispiel die Bytes X bis (X+K) für die Position X und X+K durch die Charakteristik-Zuordnungen optisch hervorgehoben werden. Nach einer Bestimmung, dass diese Bytes oder Teile auf Grundlage der Ergebnisse der Charakteristik-Zuordnung von besonderem Interesse sind, fährt das Zuordnen (230) der generierten Charakteristik-Zuordnungen zu zugrunde liegenden Protokollen mit einem Identifizieren der Position der Bytes und einem Verarbeiten fort, ob die Position einem bestimmten Feld entspricht. Unter Bezugnahme auf das vorher beschriebene TCP-Verbindungsbeispiel kann eine Analyse der Bytes X bis X+K in Bezug auf die TCP-Verbindung ergeben, dass die Bytes einem Feld „Benutzer-Agent“ des entsprechenden HTTP-Protokolls entsprechen. In diesem Fall umfasst das Zuordnen (230) der generierten Charakteristik-Zuordnungen zu zugrunde liegenden Protokollen und Feldern ein Verknüpfen der relevanten Teile der Charakteristik-Zuordnungen (d.h. die Teile, die zum Beispiel den Bytes X bis X+K entsprechen) mit dem Feld „Benutzer-Agent“, das von diesen Teilen betroffen ist.
-
3 stellt ein Beispiel eines Prozesses zum Zuordnen von Abschnitten eines Bytestroms zu einer zugrunde liegenden Protokollstruktur und zugrunde liegenden Feldern dar. Wie dargestellt, wird der Bytestrom in Abschnitte segmentiert, wie durch die Grauskala angegeben. Jeder dieser Abschnitte wird als einem oder mehreren Feldern in der bzw. in den dargestellten Protokollstruktur(en) entsprechend identifiziert. Wie dargestellt, entsprechen verschiedene Abschnitte des Bytestroms einer Mehrzahl von Protokollstrukturtypen. Diese Entsprechungen werden durch die Linien dargestellt, die jeden Abschnitt des Bytestroms mit einem oder mehreren Feldern in einem oder mehreren der zugrunde liegenden Protokollstrukturen verbinden. Es sollte klar sein, dass 3 nur einem einzelnen Beispiel für eine Zuordnung aus einer Charakteristik-Zuordnung (oder einem Bytestrom) zu zugrunde liegenden Feldern und Protokollen entspricht. Es kann Ausführungsformen geben, in denen einige
-
Das Identifizieren (240) von einem oder mehreren Werten, die jedem der zugrunde liegenden Protokolle und Felder entsprechen, kann ein Identifizieren von mindestens einem Wert umfassen, der jedem der Felder entspricht, die in Bezug auf die Zusammenhänge zwischen der generierten Charakteristik-Zuordnung und der Verbindung von Interesse identifiziert werden.
-
Das Extrahieren (250) von allgemeinen Entsprechungen aus dem identifizierten einen Wert oder den identifizierten mehreren Werten, der bzw. die jedem der zugrunde liegenden Protokolle und Felder entspricht bzw. entsprechen, kann ein Identifizieren von einer oder mehreren Entitäten oder einem oder mehreren Merkmalen umfassen, die durch den identifizierten einen Wert oder die identifizierten mehreren Werte angegeben werden, der bzw. die jedem der zugrunde liegenden Protokolle und Felder entspricht bzw. entsprechen. Zum Beispiel können in einigen Fällen Werte in Bezug auf bestimmte Felder für eine Netzwerkadresse indikativ sein, die eine Entität oder eine Einheit angibt, die Daten bereitstellen oder empfangen kann, die dem betreffenden Feld oder dem zugrunde liegenden Protokoll entsprechen. Mit anderen Worten, der identifizierte eine Wert oder die identifizierten mehreren Werte kann bzw. können eine oder mehreren Entitäten, Einheiten oder Adressen angeben, die sich auf Teile von Byteströmen auswirken oder zu diesen beitragen, die über die Verbindung von Interesse übertragen werden, die gemäß einer Beachtungsmodellierung äußerst wichtig sind. Zum Beispiel wird eine Situation betrachtet, in der fünf Teile eines Bytestroms gemäß einem entsprechenden auf Beachtung beruhenden Modell als von hoher Wichtigkeit identifiziert werden. Diese Teile können die Teile sein, denen die meiste Beachtung geschenkt wird; das heißt, die Teile, die betrachtet werden oder die am meisten aufeinander wirken. In dieser Ausführungsform entsprechen vier der identifizierten Teile des Bytestroms einer Netzwerkadresse X. Mit anderen Worten, diese Teile des Bytestroms wirken sich auf die eine oder andere Weise auf eine Einheit aus oder werden von einer Einheit beeinflusst, die sich an der Netzwerkadresse X befindet. In einem solchen Fall kann davon ausgegangen werden, dass die Daten, die von der Einheit oder für die Einheit bereitgestellt werden, die der Netzwerkadresse X entspricht, von hoher Wichtigkeit sind.
-
In zusätzlichen Ausführungsformen umfasst das Extrahieren (250) von allgemeinen Entsprechungen aus dem identifizierten einen Wert oder den identifizierten mehreren Werten, der bzw. die jedem der zugrunde liegenden Protokolle und Felder entspricht bzw. entsprechen, zusätzlich ein Bestimmen, ob der identifizierte eine Wert oder die identifizierten mehreren Werte eine Beziehung zueinander hat bzw. haben. Zum Beispiel können zwei Teile des Bytestroms Anforderungen oder Befehlen entsprechen, die voneinander abhängig sind. Eine einfache beispielhafte Ausführungsform wäre eine, in der ein ursprünglich identifizierter Teil eines Bytestroms einige Daten X bereitstellt, und ein späterer Teil des Bytestroms einen Teil der Daten X nutzt. Derartige Teile können als sich entsprechend oder als voneinander abhängig markiert oder gekennzeichnet werden.
-
Das Generieren (260) von allgemeinen Regeln, die die extrahierten Entsprechungen darstellen, kann ein Bestimmen umfassen, ob Trends zwischen identifizierten Teilen der Byteströme, identifizierten Werten in Bezug auf die identifizierten Teile und Entsprechungen vorhanden sind. Zum Beispiel kann das Generieren (260) von allgemeinen Regeln, die die extrahierten Entsprechungen darstellen, ein Bestimmen umfassen, dass jeder Teil des Bytestroms, der einen Wert von X angibt, als wichtig identifiziert worden ist. Anschließend kann eine entsprechende Regel so generiert werden, dass, sobald bestimmt worden ist, dass ein Teil des Bytestroms dem Wert X entspricht, dieser Teil umgehend vor jeder weiteren Analyse als wichtig markiert werden kann. Zum Beispiel kann bestimmt werden, wenn ein Bytestrom einen bestimmten Wert V in der Position k aufweist, dass die entsprechende Einheit eine Verbindung zu einem Server X herstellt. Ein Identifizieren von derartigen Entsprechungen kann eine Erstellung auch von nachfolgenden Regeln auf Grundlage der Annahmen ermöglichen, die im Hinblick auf die Entsprechungen getroffen werden können. In anderen Ausführungsformen umfasst das Generieren (260) von allgemeinen Regeln, die die extrahierten Entsprechungen darstellen, ein Bestimmen, ob alle Instanzen eines Werts Daten entsprechen, die von einer bestimmten Position empfangen wurden; in derartigen Ausführungsformen kann die Regel angeben, dass jeder Bytestrom-Teil mit einem Wert X in einem bestimmten Feld Daten entspricht, die von einer bestimmten Einheit bereitgestellt wurden. Das Generieren einer derartigen Regel kann einen Bedarf an einer Vorab-Analyse in Bezug auf anschließende Verbindungen beseitigen, wodurch ein Bedarf an einer zusätzlichen Verarbeitung beseitigt wird.
-
4 stellt ein Blockschaubild von Komponenten des Datenverarbeitungssystems 110 gemäß einer veranschaulichenden Ausführungsform der vorliegenden Offenbarung dar. Es sollte klar sein, dass 4 nur eine Veranschaulichung einer Umsetzung bereitstellt und keine Einschränkungen hinsichtlich der Umgebungen impliziert, in denen verschiedene Ausführungsformen umgesetzt werden können. An der dargestellten Umgebung können viele Modifizierungen vorgenommen werden.
-
Wie dargestellt, enthält der Computer 400 eine Datenübertragungsstruktur 402, die Datenübertragungen zwischen einem oder mehreren Computerprozessoren 404, einem Arbeitsspeicher 406, einem permanenten Speicher 408, einer Datenübertragungseinheit 412 und einer oder mehreren Eingabe/Ausgabe- (E/A) Schnittstellen 414 bereitstellt. Die Datenübertragungsstruktur 402 kann mit jeder Architektur umgesetzt werden, die für ein Übergeben von Daten und/oder ein Steuern von Informationen zwischen Prozessoren (wie Mikroprozessoren, Datenübertragungs- und Netzwerkprozessoren usw.). Systemarbeitsspeichern, Peripherie-Einheiten und allen anderen Hardware-Komponenten in einem System ausgelegt ist. Zum Beispiel kann die Datenübertragungsstruktur 402 mit einem oder mehreren Bussen umgesetzt werden.
-
Der Arbeitsspeicher 406 und der permanente Speicher 408 sind durch einen Computer lesbare Speichermedien. In dieser Ausführungsform enthält der Arbeitsspeicher 406 einen Direktzugriffsspeicher (RAM) 416 und einen Cachespeicher 418. Im Allgemeinen kann der Arbeitsspeicher 406 jedes geeignete flüchtige oder nicht flüchtige durch einen Computer lesbare Speichermedium enthalten.
-
Ein oder mehrere Programme können im permanenten Speicher 408 für einen Zugang und/oder eine Ausführung durch einen oder mehrere der jeweiligen Computerprozessoren 404 über einen oder mehrere Arbeitsspeicher des Arbeitsspeichers 406 gespeichert werden. In dieser Ausführungsform umfasst der permanente Speicher 408 eine Magnetfestplatte. Alternativ oder zusätzlich zu einer Magnetfestplatte kann der permanente Speicher 408 einen Solid-State-Festplattenspeicher, eine Halbleiter-Speichereinheit, einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM), einen Flash-Speicher oder jedes andere durch einen Computer lesbare Speichermedium umfassen, das fähig ist, Programmanweisungen oder digitale Informationen zu speichern.
-
Die von dem permanenten Speicher 408 verwendeten Medien können auch entfernbar sein. Zum Beispiel kann eine entfernbare Festplatte für den permanenten Speicher 408 verwendet werden. Weitere Beispiele umfassen optische und magnetische Platten, USB-Sticks und Smart-Cards, die für einen Datentransfer in ein anderes durch einen Computer lesbares Speichermedium, das ebenfalls Teil des permanenten Speichers 408 ist, in ein Laufwerk eingesetzt werden.
-
Die Datenübertragungseinheit 412 stellt in diesen Beispielen Datenübertragungen mit anderen Datenverarbeitungssystemen oder-einheiten bereit. In diesen Beispielen enthält die Datenübertragungseinheit 412 eine oder mehrere Netzwerk-Schnittstellenkarten. Die Datenübertragungseinheit 412 kann Datenübertragungen durch die Verwendung von physischen und/oder drahtlosen Kommunikationsverbindungen bereitstellen.
-
Die E/A-Schnittstelle(n) 414 ermöglicht bzw. ermöglichen die Eingabe und Ausgabe von Daten mit anderen Einheiten, die mit dem Computer 400 verbunden sein können. Zum Beispiel kann die E/A-Schnittstelle 414 eine Verbindung zu externen Einheiten 420 bereitstellen, wie zum Beispiel einer Tastatur, einem Tastenfeld, einem Berührungsbildschirm und/oder einer anderen geeigneten Eingabeeinheit. Die externen Einheiten 420 können auch tragbare, durch einen Computer lesbare Speichermedien umfassen, wie zum Beispiel USB-Sticks, tragbare optische oder Magnetplatten und Speicherkarten. Die Software und verwendeten Daten, die zum Ausüben von Ausführungsformen der vorliegenden Erfindung verwendet werden, können auf derartigen durch einen tragbaren Computer lesbaren Speichermedien gespeichert werden und können auf den permanenten Speicher 408 über die E/A-Schnittstelle(n) 414 geladen werden. Die E/A-Schnittstelle(n) 414 ist bzw. sind auch mit einer Anzeige 422 verbunden.
-
Die Anzeige 422 stellt einen Mechanismus zum Anzeigen von Daten für einen Benutzer bereit und kann zum Beispiel ein Computermonitor sein.
-
Die hierin beschriebenen Programme werden auf Grundlage der Anwendung identifiziert, für die sie in einer bestimmten Ausführungsform der Erfindung umgesetzt werden. Es sollte jedoch klar sein, dass jede bestimmte Programm-Nomenklatur hierin aus rein praktischen Gründen verwendet wird, und die Erfindung somit nicht allein auf die Verwendung in einer bestimmten identifizierten Anwendung und/oder durch eine derartige Nomenklatur umgesetzt eingeschränkt sein soll.
-
Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt auf jeder möglichen technischen Detailintegrationsebene handeln. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium (oder -medien) enthalten, auf dem 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 Einheit zum Ausführen von Anweisungen beibehalten und speichern kann. Das durch einen Computer lesbare Speichermedium kann zum Beispiel eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiter-Speichereinheit oder jede geeignete Kombination aus dem Vorgenannten sein, es ist aber nicht darauf beschränkt. Zu einer nicht erschöpfenden Liste von spezifischeren Beispielen 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 CD-ROM, eine DVD, ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination des Vorgenannten. Ein durch einen Computer lesbares Speichermedium soll, wie hierin verwendet, 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 andere Übertragungsmedien 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 durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten, Konfigurationsdaten für integrierte Schaltungen oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. 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 dem letzteren Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch jeden Typ von Netzwerk verbunden werden, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann zu 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, feldprogrammierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die computerlesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der computerlesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
-
Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Veranschaulichungen von Ablaufplänen und/oder Blockschaubildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es sollte klar sein, dass jeder Block der Ablaufplanveranschaulichungen und/oder der Blockschaubilder und Kombinationen von Blöcken in den Ablaufplanveranschaulichungen und/oder den Blockschaubildern mittels durch einen Computer lesbare Programmanweisungen umgesetzt werden können.
-
Diese durch einen Computer lesbaren Programmanweisungen können für einen Prozessor eines Computers oder eine andere programmierbare Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die über den Prozessor des Computers bzw. eine andere programmierbare Datenverarbeitungsvorrichtung ausgeführten Anweisungen Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen Funktionen/Schritte erstellen. 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, sodass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, die Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaubilder 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 Arbeitsschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen durch einen Computer umgesetzten Prozess zu erzeugen, sodass 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 Blockschaubilder angegebenen Funktionen/Schritte umsetzen.
-
Die Ablaufpläne und Blockschaubilder 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 den Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zum Umsetzen der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Umsetzungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt auftreten. Zum Beispiel können zwei nacheinander gezeigte Blöcke tatsächlich als ein Schritt durchgeführt werden, der gleichzeitig, im Wesentlichen gleichzeitig, in einer teilweise oder vollständig zeitlich überlappenden Weise ausgeführt wird, oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden, was von der beteiligten Funktionalität abhängt. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder der Ablaufplandarstellungen sowie Kombinationen von Blöcken in den Blockschaubildern und/oder der Ablaufplandarstellung durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die angegebenen Funktionen oder Handlungen durchführen oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
-
Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden zum Zweck der Veranschaulichung erstellt, sie sollen aber keineswegs erschöpfend oder auf die offenbarten Ausführungsformen eingeschränkt sein. Für Fachleute sind viele Modifizierungen und Variationen offenkundig, die nicht von dem Schutzumfang und Erfindungsgedanken der Erfindung abweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsform, die praktische Anwendung oder technische Verbesserung gegenüber auf dem Markt gefundenen Technologien bestmöglich zu erklären oder anderen Fachleuten das Verständnis der hierin offenbarten Ausführungsformen zu ermöglichen.