DE112010004809T5 - Mehrfachgranulare Datenstromverarbeitung - Google Patents

Mehrfachgranulare Datenstromverarbeitung Download PDF

Info

Publication number
DE112010004809T5
DE112010004809T5 DE112010004809T DE112010004809T DE112010004809T5 DE 112010004809 T5 DE112010004809 T5 DE 112010004809T5 DE 112010004809 T DE112010004809 T DE 112010004809T DE 112010004809 T DE112010004809 T DE 112010004809T DE 112010004809 T5 DE112010004809 T5 DE 112010004809T5
Authority
DE
Germany
Prior art keywords
data streams
data
component
processing
programmable device
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.)
Granted
Application number
DE112010004809T
Other languages
English (en)
Other versions
DE112010004809B4 (de
DE112010004809T8 (de
Inventor
Rajaram Krishnamurthy
Carl Joseph Parris
Charles Boice
Lurng-Kuo Liu
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 DE112010004809T5 publication Critical patent/DE112010004809T5/de
Application granted granted Critical
Publication of DE112010004809T8 publication Critical patent/DE112010004809T8/de
Publication of DE112010004809B4 publication Critical patent/DE112010004809B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Debugging And Monitoring (AREA)
  • Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)
  • Image Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

Eine Datenstromverarbeitung wird vereinfacht, indem die Verantwortung für die Verarbeitung des Datenstroms auf mehrere Komponenten einer Computerumgebung aufgeteilt wird. Eine programmierbare Einheit empfängt einen oder mehrere Datenströme und bestimmt die für den einen oder die mehreren Datenströme durchzuführenden Operationen sowie, von welchen Komponenten der Computerumgebung diese Operationen durchzuführen sind. Sie leitet die Daten bezüglich des einen oder der mehreren Datenströme zu Verarbeitungs- und/oder Informationszwecken an eine oder mehrere Komponenten der Computerumgebung weiter.

Description

  • Diese Erfindung betrifft im Allgemeinen das Erleichtern der Verarbeitung innerhalb einer Computerumgebung und insbesondere das Erleichtern der Datenstromverarbeitung (stream processing) innerhalb der Computerumgebung.
  • Momentan gibt es Umgebungen zur Datenstromverarbeitung, bei denen ein Server mit einem Datenstrom-Cluster verbunden ist. Der Datenstrom-Cluster weist einen oder mehrere Beschleuniger auf, die zum Erhöhen der Verarbeitungskapazitäten des Servers verwendet werden. Insbesondere sind die Beschleuniger optimiert, um bestimmte Funktionen bei höheren Geschwindigkeiten durchzuführen, als wenn diese Funktionen durch den Server durchgeführt würden.
  • Insbesondere empfängt der Server Datenströme und extrahiert aus den Datenströmen Daten und andere Informationen. Diese Daten/Informationen werden dann vom Server an den einen oder die mehreren Beschleuniger zur Verarbeitung geschickt. Wenn die Beschleuniger die Verarbeitung abgeschlossen haben, leiten sie die Ergebnisse an den Server weiter.
  • In solchen Umgebungen ist der Server für das Empfangen der Datenströme, das Extrahieren von Daten oder anderen Informationen aus den Datenströmen, das Weiterleiten der Daten/Informationen an die Beschleuniger und das Empfangen der Ergebnisse verantwortlich. Zudem führt er andere Verarbeitungen in Verbindung mit den Datenströmen durch.
  • Um die Effizienz solcher Systeme zu erhöhen, wird gemäß einem Aspekt der vorliegenden Erfindung die Datenstromverarbeitung unter einer Anzahl von Komponenten der Computerumgebung aufgeteilt. Die Durchführung aller Koordinationsschritte liegt nun nicht länger in der Verantwortung des Servers.
  • Durch die Bereitstellung eines Computerprogrammprodukts zum Erleichtern der Datenstromverarbeitung in einer Computerumgebung werden die Unzulänglichkeiten des Standes der Technik überwunden und weitere Vorteile bereitgestellt. Das Computerprogrammprodukt umfasst ein Speichermedium, das durch eine Verarbeitungsschaltung lesbar ist und Anweisungen zur Ausführung durch die Verarbeitungsschaltung speichert, die dazu dienen, ein Verfahren auszuführen. Das Verfahren umfasst zum Beispiel Folgendes: Erhalten einer Beschreibung eines oder mehrerer durch eine programmierbare Einheit zu empfangender Datenströme durch die programmierbare Einheit, wobei die programmierbare Einheit zumindest teilweise durch eine erste Komponente der Computerumgebung programmiert wird; Empfangen des einen oder der mehreren Datenströme durch die programmierbare Einheit und Verarbeiten des einen oder der mehreren Datenströme durch die programmierbare Einheit auf der Grundlage eines Typs der erhaltenen Beschreibung, wobei das Verarbeiten mindestens eines der folgenden Elemente umfasst: Bereitstellen von Daten bezüglich des einen oder der mehreren Datenströme an die erste Komponente; Durchführen eines Satzes von einer oder mehreren Operationen für den einen oder die mehreren Datenströme bei der programmierbaren Einheit und Weiterleiten von Informationen bezüglich des einen oder der mehreren Datenströme an eine zweite Komponente der Computerumgebung, um einen weiteren Satz von einer oder mehreren Operationen für den einen oder die mehreren Datenströme durchzuführen.
  • Verfahren und Systeme bezüglich eines oder mehrerer Aspekte der vorliegenden Erfindung werden hierin ebenfalls beschrieben und beansprucht. Weiterhin werden Dienste bezüglich eines oder mehrerer Aspekte der vorliegenden Erfindung hierin ebenfalls beschrieben und können beansprucht werden.
  • Weitere Merkmale und Vorteile der Erfindung werden durch die Techniken der vorliegenden Erfindung realisiert. Weitere Ausführungsformen und Aspekte der Erfindung werden hierin detailliert beschrieben und als Teil der beanspruchten Erfindung angesehen.
  • Ein oder mehrere Aspekte der vorliegenden Erfindung werden in den Ansprüchen am Ende der Beschreibung beispielhaft besonders dargelegt und unterscheidend beansprucht. Die vorhergehenden und weitere Gegenstände, Merkmale und Vorteile der Erfindung werden anhand der folgenden detaillierten Beschreibung in Verbindung mit den beigefügten Zeichnungen ersichtlich, in denen:
  • 1 ein Beispiel für eine Computerumgebung zur Beinhaltung und Verwendung eines oder mehrerer Aspekte der vorliegenden Erfindung zeigt;
  • 2A eine Ausführungsform einer Datenstrom-Metadaten-Datenstruktur, die gemäß einem Aspekt der vorliegenden Erfindung verwendet wird;
  • 2B ein Beispiel für eine Datenstrom-Verbund-Datenstruktur zeigt, die gemäß einem Aspekt der vorliegenden Erfindung verwendet wird;
  • 3A ein Beispiel für einen Zusammenfassungsdatensatz zeigt, der gemäß einem Aspekt der vorliegenden Erfindung verwendet wird;
  • 3B ein Beispiel für ein Format einer Arbeitslast-Datenstromverarbeitungsdirektive zeigt, die gemäß einem Aspekt der vorliegenden Erfindung verwendet wird;
  • 4 eine Ausführungsform der Logik zum Durchführen der Datenstromverarbeitung auf der Grundlage von mitlaufenden (inline) Zusammenfassungsdatensätzen gemäß einem Aspekt der vorliegenden Erfindung zeigt;
  • 5 eine Ausführungsform der Logik zum Durchführen der Datenstromverarbeitung auf der Grundlage von Arbeitslastdirektiven gemäß einem Aspekt der vorliegenden Erfindung zeigt;
  • 6 eine Ausführungsform der Logik zum Durchführen der Datenstromverarbeitung auf der Grundlage von mehrfachgranularer Extrahierung gemäß einem Aspekt der vorliegenden Erfindung zeigt und
  • 7 eine Ausführungsform eines Computerprogrammprodukts zeigt, das einen oder mehrerer Aspekte der vorliegenden Erfindung beinhaltet.
  • Gemäß einem Aspekt der vorliegenden Erfindung wird die Datenstromverarbeitung in Hybrid-Computerumgebungen sowie in anderen Umgebungen erleichtert. In einem Beispiel einer Hybrid-Computerumgebung ist eine programmierbare Steuerungseinheit, wie beispielsweise ein intelligenter Verteiler (switch), mit mehreren Komponenten der Computerumgebung, darunter zum Beispiel ein Server und ein Datenstrom-Cluster, verbunden. Der Datenstrom-Cluster enthält eine oder mehrere Computereinheiten wie beispielsweise einen oder mehrere Beschleuniger.
  • Der Verteiler (oder die andere programmierbare Steuerungseinheit) empfängt Datenströme von einer oder mehreren Quellen und verarbeitet diese Datenströme auf der Grundlage von Beschreibungen, die entweder von den Quellen oder dem Server empfangen werden. Als Reaktion auf das Empfangen eines oder mehrerer Datenströme bestimmt der Verteiler, welche Operationen des Datenstroms durch die verschiedenen Komponenten der Hybrid-Computerumgebung durchzuführen sind. Zum Beispiel kann der Verteiler feststellen, dass ein Satz einer oder mehrerer Operationen durch den Verteiler selbst und ein anderer Satz einer oder mehrerer Operationen (z. B. die rechenintensiveren Operationen) durch den Datenstrom-Cluster durchzuführen ist. Weiterhin sendet der Verteiler in einer oder mehreren Ausführungsformen als Reaktion auf das Empfangen der Datenströme und/oder als Reaktion auf die Datenstromverarbeitung beschreibende Daten an den Server.
  • Zum Beispiel kann der Verteiler datenstrominterne oder datenstromübergreifende Berechnungen, z. B. Summen-, Differenz- und Faltungsoperationen, an Datenströmen durchführen, wenn Bytes eines Datenstroms empfangen werden. Der Datenstrom-Cluster kann zum Beispiel in der ersten Minute und der 65. Minute eines Videoüberwachungsdatenstroms empfangene Videorahmen (video frames) mittels komplexer Bildverarbeitungsalgorithmen vergleichen. Der Verteiler führt Datenstromoperationen durch, die mit der Leitungsgeschwindigkeit der eingehenden Datenströme durchgeführt werden können. Solche Operationen weisen üblicherweise einen geringen Speicherbedarf auf. Der Datenstrom-Cluster führt Operationen durch, die rechen- und speicherintensiv sind und einen oder mehrere Durchlaufe extrahierter Datenstromdaten erfordern. Eine Verarbeitung von durch Zeitintervalle voneinander getrennten Daten kann ebenso erforderlich sein. Der Verteiler kann Daten so steuern, dass die richtigen Datenstromdaten die Recheneinheiten des Datenstrom-Clusters direkt erreichen, wodurch eine hohe Recheneffizienz und Leistung erzielt wird. Auf dem Datenstrom-Cluster können sich Zeitreihen-Datenbanken befinden, in denen Datenstromdaten über Zeitperioden hinweg aggregiert werden. Der Server verfügt über Datenbanken mit Zeilenspeicherung und Spaltenspeicherung, die Datenströme, Datenstromoperationen und andere über Zeitperioden angesammelte Datenstromdaten zusammenfassen und speichern. Indem es mehreren Komponenten des mehrfachgranularen Systems ermöglicht wird, mit verschiedenen Granularitäten (fein-, mittel- und grobgranular) an Datenstromdaten zu arbeiten, wird hohe Effizienz und hohe Leistung ermöglicht.
  • Eine Ausführungsform einer Computerumgebung zur Beinhaltung und Verwendung eines oder mehrerer Aspekte der vorliegenden Erfindung ist in 1 abgebildet. In diesem Beispiel ist ein Server 100 mit einem Datenstrom-Cluster 110 verbunden. Der Server 100 enthält zum Beispiel einen oder mehrere Prozessoren 102, einen Speicher 104 und eine oder mehrere Eingabe/Ausgabe(E/A)-Einheiten oder Schnittstellen 106, die über einen oder mehrere Busse 108 miteinander verbunden sind. In Beispielen handelt es sich bei dem Server 100 um einen von der International Business Machines Corporation (IBM®), Armonk, New York, angebotenen Server des Typs „System p®”, „System x®” oder „System z®”. IBM®, System p®, System x® und System z® sind eingetragene Marken der International Business Machines Corporation, Armonk, New York. Bei anderen hierin verwendeten Namen kann es sich um eingetragene Marken, Marken oder Produktnamen der International Business Machines Corporation oder anderen Unternehmen handeln.
  • In einer anderen Ausführungsform enthält der Server eine oder mehrere Partitionen oder Zonen. Zum Beispiel kann es sich bei dem Server um einen logisch partitionierten „System z®”-Server auf Basis der durch die International Business Machines Corporation, Armonk, New York, angebotenen Architektur „z/Architecture®” handeln. Die z/Architecture® wird in einer durch Bezugnahme hierin vollständig aufgenommenen Veröffentlichung von IBM® mit dem Titel „z/Architecture Principles of Operation” (Fuktionsprinzipien der z/Architecture” vom Februar 2009 mit der IBM Publikationsnummer SA22-7832-07 beschrieben. z/Architecture® ist eine eingetragene Marke der International Business Machines Corporation, Armonk, New York.
  • In einem Beispiel enthält der Datenstrom-Cluster 110 eine oder mehrere Computereinheiten 112. In Beispielen handelt es sich bei den Computereinheiten um Hardware-Beschleuniger, wie beispielsweise Blades in einem Blade Center oder Chassis. Zu Beispielen für Beschleuniger zählen „IBM® Cell BE”-Blades; „IBM® Datapower”-Einheiten; nVidia GPUs und/oder „System p®”- oder „System x®”-Blades, die von der International Business Machines Corporation angeboten werden. In einem weiteren Beispiel handelt es sich bei den Computereinheiten um Server wie „System x®”-, „System p®”- oder „System z®”-Server. Viele weitere Beispiele sind ebenfalls möglich. Der Cluster kann eine Kombination unterschiedlicher Computereinheiten enthalten, wie beispielsweise eine Kombination unterschiedlicher Beschleunigertypen.
  • In einem Beispiel tauscht der Server 100 mit dem Datenstrom-Cluster 110 zum Beispiel über ein Netzwerk wie PCI Express, InfiniBand, Ethernet usw. Daten aus. Weiterhin sind der Server 100 und der Datenstrom-Cluster 110 mit mindestens einer programmierbaren Steuerungseinheit wie dem Verteiler 120 zum Beispiel über InfiniBand oder über ein Ethernet-Netzwerk verbunden. Bei dem Verteiler 120 handelt es sich zum Beispiel um einen Server wie einen Server des Typs „System x®”, „System p®” oder „System z®” oder eine beispielsweise von Cisco Systems, Inc. oder der International Business Machines Corporation angebotene Verteilereinheit. Der Verteiler empfängt Datenströme von einer oder mehreren Quellen und verarbeitet diese Datenströme, wie hierin beschrieben.
  • Um die Datenstromverarbeitung zu erleichtern, wird gemäß einem Aspekt der vorliegenden Erfindung eine Anzahl von Datenstrukturen (z. B. Tabellen) dazu verwendet, verschiedene Informationen zu erhalten. Zu diesen Datenstrukturen zählen zum Beispiel eine Datenstrom-Metadaten-Tabelle und eine Datenstrom-Verbund-Tabelle, die beide nachfolgend beschrieben werden.
  • In einem Beispiel wird die Datenstrom-Metadaten-Tabelle durch den Server unterhalten. Unter Bezugnahme auf 2A enthält eine Datenstrom-Metadaten-Tabelle 200 zum Beispiel einen oder mehrere Einträge, von denen jeder einen Datenstromnamen 202, der einen Datenstrom angibt, und einen Datenstromtyp 204, der die Art des Datenstroms angibt (z. B. Video, Audio, Daten usw.), enthält.
  • Zusätzlich zur Datenstrom-Metadaten-Tabelle führt der Server eine Datenstrom-Verbund-Tabelle, für die ein Beispiel in 2B abgebildet ist. Eine Datenstrom-Verbund-Tabelle 220 enthält einen Namen eines Verbundes von Datenströmen 222, die zusammen verarbeitet werden sollen, eine Liste von Datenströmen im Verbund 224 und eine Operationsliste 226, die für die aufgeführten Datenströme durchzuführende Operationen angibt.
  • Zusätzlich zu den oben angegebenen Datenstrukturen wird in einem oder mehreren Beispielen die Verarbeitung durch die Verwendung eines Zusammenfassungsdatensatzes und/oder einer Arbeitslast-Datenstromverarbeitungsdirektive erleichtert, die allesamt nachfolgend beschrieben werden.
  • Unter Bezugnahme auf 3A enthält ein Zusammenfassungsdatensatz 300 zum Beispiel eine Datenstromliste 302, die eine Liste zusammen zu verarbeitender Datenströme enthält; eine Operatorliste 304, welche die an der Liste von Datenströmen durchzuführenden Operationen angibt; eine Datenstrom-Kopfformatliste (stream header formst list) 306, die das Format jedes Datenstroms in der Liste angibt, und eine Ankunftszeitliste 308, welche die Ankunftszeit jedes Datenstroms in der Liste angibt. Bei den Ankunftszeiten handelt es sich um relative Ankunftszeiten zueinander. Ein Zusammenfassungsdatensatz kann zum Beispiel Folgendes enthalten: „S1, S2; extract (S1 + S2, Objekt); Format1, Format2; 0, 7”, wobei S1 und S2 die Datenströme sind; „extract” (extrahieren) und „aggregate” (+) (aggregieren) Operationen sind, bei denen S1 und S2 aggregiert werden und ein bestimmtes Objekt daraus extrahiert wird; „Format1” und „Format2” die Formate sind (z. B. MPEG, hochauflösend (High Definition) usw.) und 0 und 7 relative Ankunftszeiten sind. Die Definition für jede Operation hängt von dem Typ der Datenströme ab. Wenn es sich bei den Datenströmen zum Beispiel um Video handelt, kann das „+” als „aggregieren” definiert sein; handelt es sich bei den Datenströmen jedoch um den Typ „Daten”, kann das „+” als Additionsoperator definiert sein. Viele weitere Beispiele sind möglich.
  • Eine Ausführungsform eines Formats einer Arbeitslast-Datenstromverarbeitungsdirektive wird unter Bezugnahme auf 3B beschrieben. Eine Arbeitslast-Datenstromverarbeitungsdirektive 350 enthält eine oder mehrere Datenstromquelladressen 352, welche die Quellen angeben, von denen aus die Datenströme ankommen sollen; eine Datenstromoperatorliste 354, welche die durchzuführenden Operationen dieser Datenströme angibt, und eine Liste erforderlicher Ausgabeformate 356, welche das gewünschte Ausgabeformat der Datenströme angibt.
  • Die Zusammenfassungsdatensätze und/oder die Arbeitslast-Datenstromverarbeitungsdirektiven werden gemäß einem Aspekt der vorliegenden Erfindung dazu verwendet, die eingehenden, zu verarbeitenden Datenströme zu beschreiben. In den hierin beschriebenen Ausführungsformen werden diese beschreibenden Informationen der programmierbaren Steuerungseinheit bereitgestellt, welche diese Informationen verwendet, um die in den beschreibenden Informationen angegebenen Datenströme zu verarbeiten. Bei der programmierbaren Steuerungseinheit handelt es sich in diesen Ausführungsformen um einen Verteiler, der Intelligenz besitzt (z. B. Datenverarbeitungs- und Paketverarbeitungslogik). In einer Ausführungsform wird der Verteiler vom Server auf der Grundlage der zu verarbeitenden Datenströme programmiert. Der Server programmiert den Verteiler so, dass der Verteiler als Reaktion auf das Empfangen der Datenströme bestimmte Entscheidungen hinsichtlich der Verarbeitung der Datenströme treffen kann. Obwohl beispielhaft der Verteiler vorgesehen ist, können auch andere Komponenten als programmierbare Steuerungseinheiten verwendet werden.
  • Der Verteiler empfängt die beschreibenden Informationen und einen oder mehrere Datenströme und verarbeitet die Datenströme auf der Grundlage eines Formats der beschreibenden Informationen. Zum Beispiel beruht die Verarbeitung der Datenströme darauf, ob ein Zusammenfassungsdatensatz zur Beschreibung der Datenströme oder die Arbeitslastdirektive verwendet wird. Als Reaktion auf das Empfangen der Datenströme bestimmt der Verteiler, welche Operationen durchzuführen sind und welche Komponenten (z. B. Verteiler, Datenstrom-Cluster und/oder Server) der Computerumgebung die Operationen durchführen sollen. Zum Beispiel führt in einer bestimmten Ausführungsform der Cluster rechenintensive Operationen (wie sie in einem Beispiel durch das System definiert sind) durch, und der Verteiler selbst führt weniger rechenintensive Operationen durch. Dadurch kann die Datenstromverarbeitung unter den verschiedenen Komponenten der Computerumgebung aufgeteilt werden, wie detaillierter unter Bezugnahme auf 4 bis 6 beschrieben wird.
  • Insbesondere zeigt 4 eine Ausführungsform der Datenstromverarbeitung, in der ein Zusammenfassungsdatensatz empfangen wird; 5 zeigt eine Ausführungsform der Datenstromverarbeitung, in der eine Arbeitslastdirektive verwendet wird, und 6 zeigt eine Ausführungsform der Datenstromverarbeitung, in der entweder ein Zusammenfassungsdatensatz oder eine Arbeitslastdirektive verwendet werden und dem Server statistische Informationen bereitzustellen sind. Obwohl diese Beispiele bereitgestellt werden, können viele andere Beispiele beschrieben werden. Weiterhin können Änderungen an diesen Beispielen vorgenommen werden, ohne vom Gedanken der vorliegenden Erfindung abzuweichen.
  • Im Beispiel von 4 wird ein Zusammenfassungsdatensatz verwendet, der wie vorstehend beschrieben die folgenden Felder enthält: S1, S2; extract (S1 + S2, Objekt); Format1, Format2; 0, 7. Die Ankunftszeiten sind nahezu dieselben (d. h., es ist ausreichend Speicher vorhanden, um beide zu Puffern), so dass der Server die Ausführung von „S1 + S2” auf dem Verteiler anfordern kann. Die Extrahieroperation wird auf dem Datenstrom-Cluster durchgeführt. Wenn jedoch die Ankunftszeiten weit genug auseinanderliegen, so dass auf dem Verteiler nicht genug Speicher vorhanden ist, um die Datenströme zu Puffern und andere Tätigkeiten durchzuführen, wird der Server als Ergänzungsspeicher verwendet und die „+”-Operation vom Server-Cluster und nicht vom Verteiler durchgeführt. Weitere Beispiele sind ebenfalls möglich.
  • Unter Bezugnahme auf 4 kommt ein Zusammenfassungsdatensatz von einer oder mehreren mit dem Verteiler verbundenen Quellen beim Verteiler an, SCHRITT 400. Bei einer Quelle kann es sich um einen Videorekorder, einen Computer, eine Einheit zur Bereitstellung von Finanzmarktdaten oder eine beliebige andere Einheit handeln, die in der Lage ist, Datenströme bereitzustellen. Der Zusammenfassungsdatensatz kann zum Beispiel durch Verarbeitung auf diesen Quellen oder durch einen Benutzer dieser Quellen erstellt werden.
  • Als Reaktion auf das Empfangen des Zusammenfassungsdatensatzes puffert der Verteiler alle dem Zusammenfassungsdatensatz folgenden Datenstrom-Bytes bis zu einer zuvor festgelegten Pufferkapazität, SCHRITT 402. Weiterhin kann er beispielsweise über eine Pausennachricht die Quelle auffordern, das Senden von Bytes anzuhalten, bis das mehrfachgranulare System eingestellt ist, SCHRITT 404. Dies geschieht zum Beispiel, wenn dem Verteiler und dem Serverergänzungsspeicher die Speicherressourcen ausgehen. Diese Einstellung umfasst die nachfolgend beschriebenen Schritte (z. B. SCHRITTE 406 bis 416).
  • Der Verteiler lenkt den Zusammenfassungsdatensatz zum Server, SCHRITT 406, und der Server aktualisiert die Datenstrom-Metadaten- und die Datenstrom-Verbund-Tabelle, SCHRITT 408. Zum Beispiel fügt der Server als Reaktion auf das Empfangen des Zusammenfassungsdatensatzes Einträge zur Datenstrom-Metadaten-Tabelle hinzu, von denen jeder den Namen des Datenstroms und den Typ des Datenstroms enthält. Zum Beispiel wird der Tabelle für den konkreten hierin beschriebenen Zusammenfassungsdatensatz ein Eintrag für S1 und S2 hinzugefügt. Weiterhin verwendet der Server den Zusammenfassungsdatensatz, um der Datenstrom-Verbund-Tabelle einen Eintrag hinzuzufügen, der einen Namen des Verbundes (z. B. „S1 + S2”), die Liste von Datenströmen für diesen Verbund (z. B. „S1 und S2”) und die Operationsliste (z. B. „+, extract”) enthält.
  • Zudem programmiert der Server als Reaktion auf das Empfangen des Zusammenfassungsdatensatzes den Verteiler und eine oder mehrere Computereinheiten des Datenstrom-Clusters so, dass sie die Operationen der Datenströme ausführen können, SCHRITT 410. Insbesondere verwendet der Server zuvor festgelegte Regeln oder Heuristiken, um zu bestimmen, welche der in dem Zusammenfassungsdatensatz angegebenen Operationen durch den Verteiler durchzuführen sind und welche Operationen durch den Cluster durchzuführen sind. Der Server stellt dann dem Verteiler und dem Cluster eine geeignete Verarbeitungslogik bereit, um ihnen das Durchführen ihrer Operationen zu ermöglichen. Zum Beispiel speichert der Server eine Liste von durch den Verteiler durchzuführenden Operationen sowie welche Operationen auf dem Datenstrom-Cluster effizienter durchzuführen sind. Der Server kann Kennzeichner bereitstellen, um auf dem Verteiler und dem Datenstrom-Cluster Verarbeitungscode zu aktivieren, der für die Operationen von Bedeutung ist. Er kann dem Verteiler oder Datenstrom-Cluster Verarbeitungscode auch direkt bereitstellen, falls solche Codes nicht auf dem Verteiler oder dem Datenstrom-Cluster vorhanden sind.
  • Auf der Grundlage der durch den Server bereitgestellten Informationen kalibriert sich der Verteiler selbst und richtet seine Pufferspeicher und Verarbeitungslogik ein, SCHRITT 412. Dies beinhaltet zum Beispiel eine Größenanpassung der Pufferspeicher auf eine für die Datenströme und die vom Verteiler durchzuführenden Operationen angemessene Größe sowie ein Anordnen der vom Server empfangenen Verarbeitungslogik entweder in Hardware (z. B. anwenderprogrammierbare Verknüpfungsfelder (field programmable gate arrays)) oder Software (bei einem Prozessor des Verteilers). Weiterhin kalibriert sich auch der Datenstrom-Cluster (d. h. eine oder mehrere Computereinheiten des Datenstrom-Clusters) selbst und richtet seine Pufferspeicher und Verarbeitungslogik gleichartig derjenigen des Verteilers ein, SCHRITT 414.
  • Der Server kann dann den Verteiler anleiten, Datenstrom-Bytes anzunehmen, da die Einstellung des mehrfachgranularen Systems nun abgeschlossen ist, SCHRITT 416. Dies geschieht zum Beispiel, wenn dem Verteiler die Speicherressourcen ausgegangen sind und er Flusskontrollnachrichten an die Datenstromquellen senden musste. Als Reaktion hierauf sendet der Verteiler eine Nachricht an die eine oder die mehreren Quellen mit dem Inhalt, dass er nun Datenstromdaten annimmt. Der Verteiler empfängt Datenstrom-Bytes von einer oder mehreren Quellen und bestimmt, welche Operationen gegebenenfalls von ihm durchzuführen sind und welche Operationen durch den Datenstrom-Cluster durchzuführen sind, wie dies vom Server angewiesen wurde. Der Verteiler führt die von ihm durchzuführenden Operationen durch und leitet die Datenströme oder notwendigen Daten an den Datenstrom-Cluster weiter, so dass der Datenstrom-Cluster seine Operationen durchführen kann, SCHRITT 418. Zum Beispiel führt der Verteiler die „+”-Operation an S1 und S2 durch und leitet dann das Ergebnis an eine oder mehrere Computereinheiten des Datenstrom-Clusters weiter, der die Objektextrahierung durchführt (z. B. Extrahieren aller Fahrzeuge aus einem Videoüberwachungsdatenstrom). Die sich ergebenden Ausgaben werden dann an den Server weitergeleitet, SCHRITT 420. In einem Beispiel sendet der Cluster die sich ergebenden Ausgaben an den Server. In anderen Beispielen senden abhängig von den durchzuführenden Operationen und den Anfragen der Verteiler und/oder der Cluster Ausgaben an den Server.
  • Mindestens eine Quelle sendet eine Beendigungsanfrage an den Verteiler, SCHRITT 422. Als Reaktion auf diese Anfrage leitet der Verteiler die Beendigungsanfrage sowohl an den Server als auch den Datenstrom-Cluster weiter, so dass jede dieser Komponenten ihren Zustand bezüglich der Datenstromverarbeitung speichern kann. Dadurch wird die Verarbeitung beendet.
  • In einem weiteren Beispiel wird kein Zusammenfassungsdatensatz verwendet, sondern stattdessen weist eine Arbeitslast auf dem Server den Server hinsichtlich der von unterschiedlichen Quellen zu empfangenden Datenströme an. Die Arbeitslast kennt das Format der Datenströme nicht, kennt jedoch die Daten, die für sie aus den Datenströmen extrahiert werden müssen. Die Arbeitslast stellt diese Informationen in einer Arbeitslastdirektive bereit, die dem Server bereitgestellt wird. Eine Ausführungsform der Logik zum Durchführen dieser Verarbeitung wird unter Bezugnahme auf 5 beschrieben.
  • Zu Beginn empfängt der Server eine Datenstromverarbeitungsdirektive von der Arbeitslast, SCHRITT 500. Diese Direktive enthält zum Beispiel die Quellenadressen für einen oder mehrere Datenströme, die für den einen oder die mehreren Datenströme durchzuführenden Operationen und das gewünschte Ausgabeformat. Auf der Grundlage dieser Informationen programmiert der Server den Verteiler und den Datenstrom-Cluster, SCHRITT 502, auf ähnliche Weise wie oben beschrieben. Zum Beispiel stellt der Server dem Verteiler und einer oder mehreren Computereinheiten des Clusters die Logik zum Durchführen der für sie spezifizierten Operationen bereit. Da an diesem Punkt das Format der Datenströme nicht bekannt ist, verwendet der Verteiler universelle Pufferspeicher und universellen Code, um die Datenströme zu Beginn zu empfangen, SCHRITT 504. Gleichermaßen verwendet der Datenstrom-Cluster universelle Pufferspeicher und universellen Code bei seiner anfänglichen Verarbeitung des einen oder der mehreren Datenströme, SCHRITT 506. Der universelle Pufferspeicher und der universelle Code sehen eingehende Datenströme als Folge von Bytes. Es werden Pufferspeicher und Code instanziiert, die einen Datenstrom als Folge von Bytes sehen.
  • Als Reaktion auf das Empfangen eines Datenstroms und insbesondere auf das Empfangen eines ausreichenden Teils des Datenstroms, um seine Charakteristika zu bestimmen, rekalibriert sich der Verteiler allerdings, SCHRITT 508. Bei der Rekalibrierung handelt es sich um einen Prozess, durch den datenstromspezifische Pufferspeicher und datenstromspezifischer Verarbeitungscode verwendet werden, um die Leistungsfähigkeit zu erhöhen. Zum Beispiel legt der Verteiler eine angemessene Pufferspeichergröße für den Eingangsdatenstrom und die an ihm durchzuführenden Operationen fest und passt die Größe des generischen Pufferspeichers neu an, damit er die entsprechende Größe aufweist. Weiterhin instanziiert er die Verarbeitungslogik entsprechend den Datenströmen und den durchzuführenden Operationen. Zum Beispiel führt der Verteiler eine tiefgreifende Paketinspektion an dem Datenstrom durch, um das Datenformat des Datenstroms und die relevanten Dienstgüteparameter (quality of service (QoS) parameters) zu bestimmen. Nach Bestimmen des Datenformats instanziiert er den relevanten Verarbeitungscode zum Beispiel für Daten (numerisch, alphanumerisch) oder Video (high-definition, mpeg, roh) oder Audio (unterschiedliche Komprimierungs/Verschlüsselungsschemata). Weitere Formate sind ebenfalls möglich. Anschließend passt er die Größe von Pufferspeichern auf der Grundlage der Dienstgüteanforderungen wie beispielsweise Zittern (jitter) oder Verzögerung (delay) an. Gleichermaßen führt der Cluster eine Rekalibrierung auf der Grundlage der Datenstromdaten (z. B. Datenströme, Datenstromausgabe, andere Daten) durch, die er vom Verteiler erhält.
  • Der Verteiler und der Datenstrom-Cluster verarbeiten dann den Datenstrom wie vom Server angegeben, SCHRITT 510. Zum Beispiel bestimmt der Verteiler die von ihm durchzuführenden Operationen (z. B. „+”), führt diese Operationen durch und sendet die Ausgabe an den Datenstrom-Cluster. Der Datenstrom-Cluster führt dann die für ihn bestimmten Operationen durch (z. B. Extrahieren). Die Ergebnisse werden dann abhängig von den durchzuführenden Operationen und der vom Server gewünschten Ausgabe vom Datenstrom-Cluster und/oder vom Verteiler an den Server gesendet, SCHRITT 512.
  • Zusätzlich zum Vorhergehenden wird ein Beispiel bereitgestellt, in dem der Zusammenfassungsdatensatz oder die Arbeitslastdirektive verwendet werden kann. In diesem Beispiel fordert der Server aggregierte Daten an. Eine Ausführungsform dieser Logik wird unter Bezugnahme auf 6 beschrieben. Zu Beginn programmiert der Server den Verteiler und den Datenstrom-Cluster, so dass jede Komponente eine oder mehrere Operationen durchführen kann, um dem Server die angeforderten aggregierten Daten bereitzustellen, SCHRITT 600. Diese Programmierung beruht zum Beispiel auf einem vom Server empfangenen Zusammenfassungsdatensatz oder einer Arbeitslastdirektive.
  • Mindestens ein Datenstrom wird dem Verteiler von einer oder mehreren Quellen als Eingabe zugeführt, SCHRITT 602. Der Verteiler extrahiert (wie durch das System festgelegt) periodisch vom Server gewünschte Metadaten und sendet diese Metadaten an den Server, SCHRITT 604. Die Metadaten enthalten zum Beispiel grobgranulare Daten wie Typ und Anzahl von Objekten in einem Videodatenstrom. Die feingranulareren Merkmale der Objekte können hingegen in einem Beispiel vom Datenstrom-Cluster anstelle des Verteilers verarbeitet werden. Der Verteiler kann den Server als Ergänzungsspeicher für jeglichen erweiterten Speicherbedarf verwenden.
  • Darüber hinaus extrahiert der Verteiler Datensätze und sendet sie an den Datenstrom-Cluster, SCHRITT 606. Bei einem Datensatz handelt es sich zum Beispiel um eine Ansammlung von Datengruppen, und bei jeder Datengruppe handelt es sich zum Beispiel um eine Ansammlung von Bits oder Bytes von Datenstromdaten. Der Datenstrom-Cluster verarbeitet diese Daten, um dem Server auf der Grundlage der vom Server bereitgestellten Aggregierungscharakteristika die angefragten Statistiken bereitzustellen.
  • Der Server liefert dem Datenstrom-Cluster die Datenaggregierungscharakteristika auf der Grundlage der empfangenen Metadaten oder sonstigen Bedarfs des Servers an analytischer Verarbeitung, SCHRITT 608. Als Reaktion darauf aggregiert der Datenstrom-Cluster die Daten (auf der Grundlage bestimmter Operationen und/oder Regeln) und stellt die aggregierte Statistik dem Server wie angefragt bereit, SCHRITT 610. In anderen Beispielen können andere statistische Operationen oder Analyseverarbeitungen durchgeführt werden.
  • Eine Quelle beendet einen oder mehrere Datenströme, SCHRITT 612. Dadurch wird die Verarbeitung beendet.
  • Im Vorstehenden wurde eine Fähigkeit detailliert beschrieben, die dazu dient, die Datenstromverarbeitung zu erleichtern, indem Funktionalität der Datenstromverarbeitung unter den verschiedenen Komponenten der Computerumgebung aufgeteilt wird. Zum Beispiel empfängt der Verteiler den Datenstrom und besitzt Intelligenz, die ihn befähigt, den Datenstrom zu analysieren (parse), die Informationen an den Server zu senden, bestimmte Operationen selbst durchzuführen und/oder Operationen zur Durchführung an den Datenstrom-Cluster zu senden. Beschreibungen des einen oder der mehreren beim Verteiler empfangenen Datenströme auf hoher Ebene werden entweder von der einen oder den mehreren Quellen in Zusammenfassungsdatensätzen oder vom Server in Arbeitslastdirektiven bereitgestellt.
  • Wie für den Fachmann ersichtlich ist, können Aspekte der vorliegenden Erfindung als System, Verfahren, oder Computerprogrammprodukt ausgeführt sein. Dementsprechend können Aspekte der vorliegenden Erfindung vollständig in Hardware oder vollständig in Software (darunter Firmware, residente Software, Mikrocode usw.) ausgebildet sein oder in einer Ausführungsform vorliegen, die Software- und Hardware-Aspekte kombiniert, was hierin sämtlich allgemein als „Schaltung”, „Modul” oder „System” bezeichnet sein kann. Weiterhin können Aspekte der vorliegenden Erfindung in Form eines Computerprogrammprodukts vorliegen, das in einem oder mehreren computerlesbaren Datenträgern mit darauf befindlichem computerlesbarem Programmcode ausgeführt sein kann.
  • Jede Kombination aus einem oder mehreren computerlesbaren Datenträgern kann verwendet werden. Bei dem computerlesbaren Datenträger kann es sich um ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium handeln. Ein computerlesbares Signalmedium kann ein sich ausbreitendes Datensignal umfassen, in dem der computerlesbare Programmcode zum Beispiel in einem Basisbandsignal (baseband) oder als Teil einer Trägerwelle (carrier wave) ausgeführt ist. Solch ein sich ausbreitendes Signal kann in jeder beliebigen einer Vielzahl von Formen vorliegen, wie beispielsweise, jedoch nicht beschränkt auf, elektromagnetische, optische oder jede geeignete Kombination davon. Bei einem computerlesbaren Signalmedium kann es sich um ein beliebiges computerlesbares Medium handeln, das kein computerlesbares Speichermedium ist und das ein Programm übertragen, verbreiten oder transportieren kann, das durch ein System, eine Vorrichtung oder eine Einheit zur Ausführung von Anweisungen oder in Verbindung mit einem solchen System bzw. einer solchen Vorrichtung oder Einheit benutzt werden kann.
  • Bei dem computerlesbaren Speichermedium kann es sich zum Beispiel, ohne darauf beschränkt zu sein, um ein elektronisches, magnetisches, optisches oder elektromagnetisches System bzw. eine solche Vorrichtung oder Einheit oder um ein Infrarot- oder Halbleiter-System bzw. eine solche Vorrichtung oder Einheit oder um eine beliebige geeignete Kombination des zuvor Genannten handeln. Speziellere Beispiele für das computerlesbare Speichermedium sind unter anderem (eine nicht erschöpfende Liste): eine elektrische Verbindung mit einer oder mehreren Leitungen, eine transportable Computerdiskette, eine Festplatte, ein Speicher mit wahlfreiem Zugriff (random access memory (RAM)), ein Nur-Lese-Speicher (read-only memory (ROM)), ein löschbarer programmierbarer Nur-Lese-Speicher (erasable programmable read-only memory EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein transportabler Compact-Disk-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine beliebige geeignete Kombination des zuvor Genannten. Im Kontext dieses Dokuments kann es sich bei einem computerlesbaren Speichermedium um jedes physisch greifbare Medium handeln, das ein Programm beinhalten oder speichern kann, das durch ein System, eine Vorrichtung oder eine Einheit zur Ausführung von Anweisungen oder in Verbindung mit einem solchen System bzw. einer solchen Vorrichtung oder Einheit benutzt werden kann.
  • Unter Bezugnahme auf 7 weist in einem Beispiel ein Computerprogrammprodukt 700 zum Beispiel ein oder mehrere computerlesbare Speichermedien 702 auf, die dazu dienen, computerlesbare Programmcodemittel oder Logik 704 darauf zu speichern, um einen oder mehrere Aspekte der vorliegenden Erfindung bereitzustellen und zu erleichtern.
  • Programmcode, der auf einem computerlesbaren Datenträger ausgeführt ist, kann mittels eines geeigneten Mediums übertragen werden, wiebeispielsweise, ohne darauf beschränkt zu sein, kabellos, kabelgebunden, per Lichtwellenleiterkabel oder Hochfrequenz (HF) usw. oder mithilfe einer beliebigen geeigneten Kombination des zuvor Genannten.
  • Computerprogrammcode zur Ausführung von Operationen für Aspekte der vorliegenden Erfindung kann in jeder Kombination aus einer oder mehrerer Programmiersprachen wie beispielsweise einer objektorientierten Programmiersprache wie Java, Smalltalk, C++ oder Ähnliches und herkömmlicher prozeduraler Programmiersprachen wie die Programmiersprache „C” oder ähnliche Programmiersprachen geschrieben sein. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten (remote) Computer oder vollständig auf einem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über jede beliebige Art von Netzwerk wie beispilesweise ein Nahbereichsnetzwerk (local area network (LAN)) oder ein Weitbereichsnetzwerk (wide area network (WAN)) verbunden sein, oder es kann eine Verbindung zu einem externen Computer (zum Beispiel mittels eines Internetdienstanbieters über das Internet) hergestellt werden.
  • Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Abbildungen von Ablaufplänen und/oder Blockschaltbildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß den Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Abbildungen der Ablaufpläne und/oder Blockschaltbilder sowie Kombinationen von Blöcken in den Abbildungen der Ablaufpläne und/oder den Blockschaltbildern durch Computerprogrammanweisungen realisiert werden können. Diese Computerprogrammanweisungen können einem Prozessor eines universellen Computers, eines zweckbestimmten Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die Anweisungen, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zur Realisierung der im Block oder in den Blöcken des Ablaufplans und/oder Blockschaltbildes angegebenen Funktionen/Handlungen erzeugen.
  • Diese Computerprogrammanweisungen können auch in einem computerlesbaren Datenträger gespeichert sein, der einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anleiten kann, auf eine bestimmte Weise zu funktionieren, so dass die in dem computerlesbaren Datenträger gespeicherten Anweisungen ein Erzeugnis ergeben, das Anweisungen enthält, welche die im Block oder in den Blöcken des Ablaufplans und/oder des Blockschaltbilds angegebenen Funktionen/Handlungen realisieren.
  • Die Computerprogrammanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um zu bewirken, dass auf dem Computer, der anderen programmierbaren Vorrichtung oder den anderen Einheiten eine Reihe von Arbeitsschritten durchgeführt werden, wodurch ein computerimplementierter Prozess derart erzeugt wird, dass die auf dem Computer oder der anderen programmierbaren Vorrichtung ausgeführten Anweisungen Prozesse zur Realisierung der im Block oder in den Blöcken des Ablaufplans und/oder Blockschaltbilds angegebenen Funktionen/Handlungen bereitstellen.
  • Der Ablaufplan und die Blockschaltbilder in den Figuren veranschaulichen die Architektur, Funktionalität und die Arbeitsweise möglicher Realisierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedener Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block im Ablaufplan oder den Blockschaltbildern für ein Modul, ein Segment oder einen Codeabschnitt stehen, der eine oder mehrere ausführbare Anweisungen zur Realisierung der angegebenen logischen Funktion oder Funktionen umfasst. Es soll zudem angemerkt werden, dass bei einigen alternativen Realisierungen die im Block angegeben Funktionen in anderer Reihenfolge als der in den Figuren angegebenen auftreten können. Zum Beispiel können zwei aufeinander folgend abgebildete Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach der involvierten Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es wird ebenfalls angemerkt, dass jeder Block der Blockschaltbilder und/oder Abbildungen von Ablaufplänen und Kombinationen von Blöcken in den Blockschaltbildern und/oder Abbildungen von Ablaufplänen durch zweckbestimmte hardwaregestützte Systeme oder Kombinationen von zweckbestimmter Hardware und Computeranweisungen realisiert werden kann, welche die angegebenen Funktionen oder Handlungen ausführen.
  • Zusätzlich zum Vorstehenden können ein oder mehrere Aspekte der vorliegenden Erfindung durch einen Dienstanbieter, der die Verwaltung von Kundenumgebungen anbietet, bereitgestellt, angeboten, eingesetzt, verwaltet, gewartet usw. werden. Zum Beispiel kann der Dienstanbieter Computercode und/oder eine Computerinfrastruktur erstellen, warten, unterstützen usw., die einen oder mehrere Aspekte der vorliegenden Erfindung für einen oder mehrere Kunden durchführt. Im Gegenzug kann der Dienstanbieter vom Kunden zum Beispiel ihm Rahmen eines Abonnements und/oder einer Gebührenvereinbarung Bezahlung erhalten. Zusätzlich oder alternativ dazu kann der Dienstanbieter eine Bezahlung aus dem Verkauf von Werbeinhalten an eine oder mehrere Drittparteien erhalten.
  • Unter einem Aspekt der vorliegenden Erfindung kann eine Anwendung bereitgestellt (deployed) werden, die dazu dient, einen oder mehrerer Aspekte der vorliegenden Erfindung durchzuführen. In einem Beispiel umfasst das Bereitstellen (Deploying) einer Anwendung das Bereitstellen von Computerinfrastruktur, die in der Lage ist, einen oder mehrere Aspekte der vorliegenden Erfindung durchzuführen.
  • Unter einem weiteren Aspekt der vorliegenden Erfindung kann eine Computerinfrastruktur bereitgestellt werden, die das Integrieren von computerlesbarem Code in ein Computersystem umfasst, in dem der Code in Verbindung mit dem Computersystem in der Lage ist, einen oder mehrere Aspekte der vorliegenden Erfindung durchzuführen.
  • Als noch ein weiterer Aspekt der vorliegenden Erfindung kann ein Prozess zum Integrieren von Computerinfrastruktur bereitgestellt werden, der das Integrieren von computerlesbarem Code in ein Computersystem umfasst. Das Computersystem umfasst einen computerlesbaren Datenträger, wobei der Computerdatenträger einen oder mehrere Aspekte der vorliegenden Erfindung umfasst. Der Code ist in Verbindung mit dem Computersystem in der Lage, einen oder mehrere Aspekte der vorliegenden Erfindung durchzuführen.
  • Obwohl vorstehend verschiedene Ausführungsformen beschrieben sind, handelt es sich dabei lediglich um Beispiele. Zum Beispiel können Computerumgebungen mit anderen Architekturen einen oder mehrere Aspekte der vorliegenden Erfindung aufweisen bzw. verwenden, und/oder es können unterschiedliche Typen von Servern, Beschleunigern oder anderen Computereinheiten und/oder Verteilern oder anderen programmierbaren Steuerungseinheiten verwendet werden. Zudem können sich die in den verschiedenen Datenstrukturen und/oder Datensätzen oder Direktiven bereitgestellten Informationen von den hierin genannten unterscheiden. Weiterhin können andere Strukturen als Zusammenfassungsdatensätze und Direktiven verwendet werden. Weitere Beispiele sind ebenfalls möglich. Viele weitere Änderungen können an diesen Beispielen vorgenommen werden, ohne vom Gedanken der vorliegenden Erfindung abzuweichen.
  • Weiterhin können andere Typen von Computerumgebungen von einem oder mehreren Aspekten der vorliegenden Erfindung profitieren. Als Beispiel kann eine Umgebung einen Emulator (z. B. Software oder andere Emulationsmechanismen) enthalten, in dem eine bestimmte Architektur (darunter zum Beispiel das Ausführen von Anweisungen, Architekturfunktionen wie die Adressenübersetzung und Architekturregister) oder ein Teilsatz dessen emuliert wird (z. B. auf einem nativen Computersystem mit Prozessor und Speicher). In solch einer Umgebung können eine oder mehrere Emulationsfunktionen des Emulators einen oder mehrere Aspekte der vorliegenden Erfindung realisieren, auch wenn ein den Emulator ausführender Computer eine andere Architektur aufweist als die emulierten Funktionen. Als ein Beispiel wird im Emulationsmodus eine konkrete emulierte Anweisung oder Operation decodiert und eine geeignete Emulationsfunktion so aufgebaut, dass sie die spezielle Anweisung oder Operation realisiert.
  • In einer Emulationsumgebung weist ein Host-Computer zum Beispiel Folgendes auf: einen Speicher zum Speichern von Anweisungen und Daten; eine Anweisungsholeinheit, um Anweisungen vom Speicher zu holen und optional eine lokale Pufferung für die geholte Anweisung bereitzustellen; eine Anweisungsdecodiereinheit, um die geholten Anweisungen zu empfangen und den Typ der Anweisungen zu bestimmen, die geholt wurden; und eine Einheit zur Ausführung von Anweisungen, um die Anweisungen auszuführen. Die Ausführung kann das Laden von Daten aus dem Speicher in ein Register; das Speichern von Daten aus einem Register zurück in den Speicher oder das Durchführen einer Art arithmetischer oder logischer Operation umfassen, wie durch die Decodiereinheit bestimmt. In einem Beispiel ist jede Einheit in Software realisiert. Zum Beispiel sind die durch die Einheiten durchgeführten Operationen als eine oder mehrere Subroutinen innerhalb der Emulatorsoftware realisiert.
  • Weiterhin ist ein Datenverarbeitungssystem verwendbar, das für das Speichern und/oder Ausführen von Programmcode geeignet ist und mindestens einen über einen Systembus direkt oder indirekt mit Speicherelementen verbundenen Prozessor aufweist. Die Speicherelemente können zum Beispiel Folgendes umfassen: lokalen Speicher, der während der tatsächlichen Ausführung des Programmcodes eingesetzt wird, Massenspeicher und Cachespeicher,, welcher die vorübergehende Speicherung mindestens einigen Programmcodes bereitstellt, um die Häufigkeit des Nachladens von Code aus dem Massenspeicher während der Ausführung zu verringern.
  • Eingabe/Ausgabe- bzw. E/A-Einheiten (darunter, jedoch nicht beschränkt auf, Tastaturen, Anzeigen, Zeigeeinheiten, DASD (direct access storage device – Speichereinheit mit Direktzugriff), Band, CDs, DVDs, USB-Sticks und andere Speichermedien usw.) können mit dem System entweder direkt oder über zwischengeschaltete E/A-Steuereinheiten (I/O controllers) verbunden sein. Netzwerkadapter können ebenfalls mit dem System verbunden sein, damit das Datenverarbeitungssystem mit anderen Datenverarbeitungssystemen oder entfernt angeordneten Druckern oder Speichereinheiten durch zwischengeschaltete private oder öffentliche Netzwerke verbunden werden kann. Modems, Kabelmodems und Ethernet-Karten stellen nur einige wenige der erhältlichen Arten von Netzwerkadaptern dar.
  • Die hierin verwendete Terminologie dient lediglich dem Zwecke der Beschreibung konkreter Ausführungsformen und ist nicht als die Erfindung einschränkend aufzufassen. Die hierin verwendeten Singularformen „ein”, „eine” und „der”, „die”, „das” sowie deren Deklinationen sollen ebenso die Pluralformen einschließen, es sei denn, dies ist im Kontext deutlich anderweitig angegeben. Es versteht sich weiterhin, dass die Begriffe „umfassen” bzw. „aufweisen” und/oder „umfassend” in diesem Dokument das Vorhandensein von angegebenen Merkmalen, ganzen Zahlen, Schritten, Vorgängen, Elementen und/oder Komponenten angeben, jedoch nicht das Vorhandensein oder Hinzufügen eines oder mehrerer Merkmale, ganzer Zahlen, Schritte, Vorgänge, Elemente, Komponenten und/oder Gruppen davon ausschließen.
  • Die entsprechenden Strukturen, Materialien, Handlungen und Äquivalente aller Mittel oder Elemente aus Schritt und Funktion in den nachfolgenden Ansprüchen sollen, falls vorhanden, alle Strukturen, Materialien oder Handlungen zur Durchführung der Funktion in Kombination mit anderen beanspruchten Elementen wie speziell beansprucht umfassen. Die Beschreibung der vorliegenden Erfindung wurde zum Zwecke der Veranschaulichung und Beschreibung vorgelegt, ist jedoch nicht als abschließend oder auf die Erfindung in der offenbarten Form beschränkt aufzufassen. Viele Änderungen und Varianten sind für den Durchschnittsfachmann naheliegend, ohne vom Schutzumfang und Gedanken der Erfindung abzuweichen. Die Ausführungsform wurde gewählt und beschrieben, um die Grundgedanken der Erfindung und die praktische Anwendung bestmöglich zu beschreiben und anderen Fachleuten das Verständnis der Erfindung für verschiedene Ausführungsformen mit verschiedenen Änderungen zu ermöglichen, wie sie für den konkret beabsichtigten Anwendungsfall geeignet sind.

Claims (20)

  1. Computerprogrammprodukt zum Erleichtern von Datenstromverarbeitung in einer Computerumgebung, wobei das Computerprogrammprodukt aufweist: ein Speichermedium, das durch eine Verarbeitungsschaltung lesbar ist und Anweisungen zur Ausführung durch die Verarbeitungsschaltung speichert, die dazu dienen, ein Verfahren durchzuführen, das Folgendes aufweist: Erhalten einer Beschreibung eines oder mehrerer durch eine programmierbare Einheit zu empfangender Datenströme durch die programmierbare Einheit, wobei die programmierbare Einheit zumindest teilweise durch eine erste Komponente der Computerumgebung programmiert wird; Empfangen des einen oder der mehreren Datenströme durch die programmierbare Einheit; und Verarbeiten des einen oder der mehreren Datenströme durch die programmierbare Einheit auf der Grundlage eines Typs der erhaltenen Beschreibung, wobei das Verarbeiten mindestens eines der folgenden Elemente aufweist: Bereitstellen von Daten bezüglich des einen oder der mehreren Datenströme an die erste Komponente; Durchführen eines Satzes einer oder mehrerer Operationen für den einen oder die mehreren Datenströme durch die programmierbare Einheit und Weiterleiten von Informationen bezüglich des einen oder der mehreren Datenströme an eine zweite Komponente der Computerumgebung, um einen weiteren Satz einer oder mehrerer Operationen für den einen oder die mehreren Datenströme durchzuführen.
  2. Computerprogrammprodukt nach Anspruch 1, wobei das Erhalten ein Empfangen eines Zusammenfassungsdatensatzes von mindestens einer Quelle des einen oder der mehreren Datenströme aufweist, wobei der Zusammenfassungsdatensatz ein oder mehrere Charakteristika des einen oder der mehreren Datenströme enthält.
  3. Computerprogrammprodukt nach Anspruch 2, wobei die erste Komponente einen mit der programmierbaren Einheit verbundenen Server aufweist und wobei das Bereitstellen von Daten ein Bereitstellen des Zusammenfassungsdatensatzes an den Server aufweist.
  4. Computerprogrammprodukt nach Anspruch 3, wobei das Verfahren weiterhin Folgendes aufweist: Aktualisieren einer oder mehrerer Datenstrom-Datenstrukturen durch den Server in Reaktion auf das Empfangen des Zusammenfassungsdatensatzes.
  5. Computerprogrammprodukt nach Anspruch 1, wobei das Erhalten ein Empfangen einer Arbeitslastdirektive von der ersten Komponente aufweist, wobei die Arbeitslastdirektive ein oder mehrere Charakteristika bezüglich des einen oder der mehreren Datenströme beschreibt.
  6. Computerprogrammprodukt nach Anspruch 1, wobei die Informationen ein Ergebnis eines Durchführens einer Operation an dem einen oder den mehreren Datenströmen aufweisen.
  7. Computerprogrammprodukt nach Anspruch 1, wobei das Verarbeiten weiterhin ein Bestimmen des einen Satzes von durch die programmierbare Einheit durchzuführenden Operationen und des weiteren Satzes von durch die zweite Komponente durchzuführenden Operationen durch die programmierbare Einheit aufweist.
  8. Computerprogrammprodukt nach Anspruch 7, wobei das Bestimmen zumindest teilweise auf einem Programmieren der programmierbaren Einheit durch die erste Komponente beruht.
  9. Computerprogrammprodukt nach Anspruch 7, wobei die zweite Komponente eine oder mehrere Computereinheiten eines Datenstrom-Clusters aufweist, der mit der programmierbaren Einheit verbunden ist.
  10. Computerprogrammprodukt nach Anspruch 9, wobei die eine oder die mehreren Computereinheiten einen oder mehrere Beschleuniger umfassen.
  11. Computerprogrammprodukt nach Anspruch 1, wobei das Verfahren weiterhin ein Bereitstellen von aus der Verarbeitung des Datenstroms herrührenden Ausgaben an die erste Komponente aufweist, wobei das Bereitstellen der Ausgaben durch mindestens eines der folgenden Elemente, die programmierbare Einheit und die zweite Komponente, durchgeführt wird.
  12. Computersystem zum Erleichtern von Datenstromverarbeitung in einer Computerumgebung, das Folgendes aufweist: einen Speicher; und einen Prozessor, der mit dem Speicher Daten austauscht, wobei das Computersystem in der Lage ist, ein Verfahren durchzuführen, das Folgendes aufweist: Erhalten einer Beschreibung eines oder mehrerer durch eine programmierbare Einheit zu empfangenden Datenströme durch die programmierbare Einheit, wobei die programmierbare Einheit zumindest teilweise durch eine erste Komponente der Computerumgebung programmiert wird; Empfangen des einen oder der mehreren Datenströme durch die programmierbare Einheit und Verarbeiten des einen oder der mehreren Datenströme durch die programmierbare Einheit auf der Grundlage eines Typs der erhaltenen Beschreibung, wobei das Verarbeiten mindestens eines der folgenden Elemente aufweist: Bereitstellen von Daten bezüglich des einen oder der mehreren Datenströme an die erste Komponente; Durchführen eines Satzes einer oder mehrerer Operationen für den einen oder die mehreren Datenströme durch die programmierbare Einheit und Weiterleiten von Informationen bezüglich des einen oder der mehreren Datenströme an eine zweite Komponente der Computerumgebung, um einen weiteren Satz einer oder mehrerer Operationen für den einen oder die mehreren Datenströme durchzuführen.
  13. Computersystem nach Anspruch 12, wobei das Erhalten ein Empfangen eines Zusammenfassungsdatensatzes von mindestens einer Quelle des einen oder der mehreren Datenströme aufweist, wobei der Zusammenfassungsdatensatz ein oder mehrere Charakteristika des einen oder der mehreren Datenströme enthält.
  14. Computersystem nach Anspruch 12, wobei das Erhalten ein Empfangen einer Arbeitslastdirektive von der ersten Komponente aufweist, wobei die Arbeitslastdirektive ein oder mehrere Charakteristika bezüglich des einen oder der mehreren Datenströme beschreibt.
  15. Computersystem nach Anspruch 12, wobei das Verarbeiten weiterhin ein Bestimmen des einen Satzes von durch die programmierbare Einheit durchzuführenden Operationen und des weiteren Satzes von durch die zweite Komponente durchzuführenden Operationen durch die programmierbare Einheit aufweist.
  16. Computersystem nach Anspruch 15, wobei das Bestimmen zumindest teilweise auf einem Programmieren der programmierbaren Einheit durch die erste Komponente beruht.
  17. Computersystem nach Anspruch 12, wobei das Verfahren weiterhin ein Bereitstellen von aus der Verarbeitung des Datenstroms herrührenden Ausgaben an die erste Komponente aufweist, wobei das Bereitstellen der Ausgaben durch mindestens eines der folgenden Elemente, die programmierbare Einheit und/oder die zweite Komponente, durchgeführt wird.
  18. Verfahren zum Erleichtern von Datenstromverarbeitung in einer Computerumgebung, wobei das Verfahren Folgendes aufweist: Erhalten einer Beschreibung eines oder mehrerer durch eine programmierbare Einheit zu empfangender Datenströme durch die programmierbare Einheit, wobei die programmierbare Einheit zumindest teilweise durch eine erste Komponente der Computerumgebung programmiert wird; Empfangen des einen oder der mehreren Datenströme durch die programmierbare Einheit und Verarbeiten des einen oder der mehreren Datenströme durch die programmierbare Einheit auf der Grundlage eines Typs der erhaltenen Beschreibung, wobei das Verarbeiten mindestens eines der folgenden Elemente aufweist: Bereitstellen von Daten bezüglich des einen oder der mehreren Datenströme an die erste Komponente; Durchführen eines Satzes einer oder mehrerer Operationen für den einen oder die mehreren Datenströme bei der programmierbaren Einheit und Weiterleiten von Informationen bezüglich des einen oder der mehreren Datenströme an eine zweite Komponente der Computerumgebung, um einen weiteren Satz einer oder mehrerer Operationen für den einen oder die mehreren Datenströme durchzuführen.
  19. Verfahren nach Anspruch 18, wobei das Erhalten ein Empfangen eines Zusammenfassungsdatensatzes von mindestens einer Quelle des einen oder der mehreren Datenströme aufweist, wobei der Zusammenfassungsdatensatz ein oder mehrere Charakteristika des einen oder der mehreren Datenströme enthält.
  20. Verfahren nach Anspruch 18, wobei das Erhalten ein Empfangen einer Arbeitslastdirektive von der ersten Komponente aufweist, wobei die Arbeitslastdirektive ein oder mehrere Charakteristika bezüglich des einen oder der mehreren Datenströme beschreibt.
DE112010004809.6T 2009-12-15 2010-11-25 Mehrfachgranulare Datenstromverarbeitung Active DE112010004809B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/637,972 2009-12-15
US12/637,972 US8892762B2 (en) 2009-12-15 2009-12-15 Multi-granular stream processing
PCT/EP2010/068205 WO2011073008A1 (en) 2009-12-15 2010-11-25 Multi-granular stream processing

Publications (3)

Publication Number Publication Date
DE112010004809T5 true DE112010004809T5 (de) 2012-09-20
DE112010004809T8 DE112010004809T8 (de) 2012-10-11
DE112010004809B4 DE112010004809B4 (de) 2021-10-07

Family

ID=43618340

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112010004809.6T Active DE112010004809B4 (de) 2009-12-15 2010-11-25 Mehrfachgranulare Datenstromverarbeitung

Country Status (6)

Country Link
US (1) US8892762B2 (de)
JP (1) JP5802215B2 (de)
CN (1) CN102656860B (de)
DE (1) DE112010004809B4 (de)
GB (1) GB2488454B (de)
WO (1) WO2011073008A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8874638B2 (en) * 2009-12-15 2014-10-28 International Business Machines Corporation Interactive analytics processing
US8892762B2 (en) 2009-12-15 2014-11-18 International Business Machines Corporation Multi-granular stream processing
US8819183B2 (en) * 2009-12-15 2014-08-26 International Business Machines Corporation Concurrent execution of request processing and analytics of requests
WO2013052028A2 (en) * 2011-10-03 2013-04-11 Affirmed Networks, Inc. Mobile content delivery
EP2819013B1 (de) 2013-06-24 2019-11-27 Alcatel Lucent Automatisierte Anpassung eines Codec
US10721323B2 (en) * 2018-06-19 2020-07-21 Salesforce.Com, Inc. High-performance data streaming
CN114860684A (zh) * 2021-02-04 2022-08-05 华为技术有限公司 一种流数据存储系统中流数据访问方法及装置

Family Cites Families (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4636947A (en) * 1984-03-14 1987-01-13 Docutel/Olivetti Corporation ATM task scheduling system for simultaneous peripheral device transactions processing
US6704861B1 (en) * 1993-06-17 2004-03-09 Hewlett-Packard Development Company, L.P. Mechanism for executing computer instructions in parallel
US5526409A (en) * 1993-10-26 1996-06-11 Visa International Service Association Adaptive communication system within a transaction card network
US5533204A (en) * 1994-04-18 1996-07-02 Compaq Computer Corporation Split transaction protocol for the peripheral component interconnect bus
US7096003B2 (en) * 1996-08-08 2006-08-22 Raymond Anthony Joao Transaction security apparatus
US6442533B1 (en) * 1997-10-29 2002-08-27 William H. Hinkle Multi-processing financial transaction processing system
US6665728B1 (en) * 1998-12-30 2003-12-16 Intel Corporation Establishing optimal latency in streaming data applications that use data packets
JP2000353066A (ja) 1999-06-11 2000-12-19 Canon Inc 情報処理装置、情報処理方法、及び記憶媒体
US6813251B1 (en) * 1999-07-27 2004-11-02 Intel Corporation Split Transaction protocol for a bus system
US6647381B1 (en) * 1999-10-27 2003-11-11 Nec Usa, Inc. Method of defining and utilizing logical domains to partition and to reorganize physical domains
US7159233B2 (en) * 2000-01-28 2007-01-02 Sedna Patent Services, Llc Method and apparatus for preprocessing and postprocessing content in an interactive information distribution system
US6941513B2 (en) * 2000-06-15 2005-09-06 Cognisphere, Inc. System and method for text structuring and text generation
US7389531B2 (en) * 2000-06-16 2008-06-17 Entriq Inc. Method and system to dynamically present a payment gateway for content distributed via a network
US6407680B1 (en) * 2000-12-22 2002-06-18 Generic Media, Inc. Distributed on-demand media transcoding system and method
US7327704B2 (en) 2001-10-03 2008-02-05 Motorola, Inc. Method and apparatus for facilitating dormant mode, packet data mobile handoffs
MXPA04005734A (es) * 2001-12-15 2004-12-06 Thomson Licensing Sa Sistema y metodo para entregar corriente de datos de multiples tipos de datos a diferentes niveles de prioridad.
CN1232068C (zh) 2002-01-21 2005-12-14 华为技术有限公司 锁定网络设备的方法
US20030191805A1 (en) * 2002-02-11 2003-10-09 Seymour William Brian Methods, apparatus, and systems for on-line seminars
US6868439B2 (en) * 2002-04-04 2005-03-15 Hewlett-Packard Development Company, L.P. System and method for supervising use of shared storage by multiple caching servers physically connected through a switching router to said shared storage via a robust high speed connection
CN1232086C (zh) 2002-08-07 2005-12-14 华为技术有限公司 实现组播代理多粒度用户管理的方法
US20040039691A1 (en) * 2002-08-15 2004-02-26 Barratt Robert E. Electronic funds transaction system
US7296263B1 (en) * 2002-12-12 2007-11-13 F5 Networks, Inc. Method and system for performing operations on data using XML streams
US20040167863A1 (en) * 2003-02-21 2004-08-26 Knowles W. Jeffrey System and method of transferring data through transaction process
US8209375B2 (en) * 2003-03-07 2012-06-26 Ricoh Co., Ltd. Communication of compressed digital images with restricted access and server/client hand-offs
US7353299B2 (en) * 2003-05-29 2008-04-01 International Business Machines Corporation Method and apparatus for managing autonomous third party data transfers
CN100539601C (zh) * 2003-10-15 2009-09-09 株式会社Ntt都科摩 控制多个通信层的操作的设备和方法
US7478400B1 (en) * 2003-12-31 2009-01-13 Symantec Operating Corporation Efficient distributed transaction protocol for a distributed file sharing system
US7761375B2 (en) * 2004-03-16 2010-07-20 Hewlett-Packard Development Company, L.P. Transaction switch and a method for use thereof
WO2006006897A1 (en) * 2004-07-09 2006-01-19 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangement for providing different services in a multimedia communication system
US7797720B2 (en) * 2004-10-22 2010-09-14 Microsoft Corporation Advanced trick mode
US7987272B2 (en) * 2004-12-06 2011-07-26 Cisco Technology, Inc. Performing message payload processing functions in a network element on behalf of an application
US7574405B2 (en) * 2004-12-23 2009-08-11 General Electric Captical Corporation Apparatus and method for verifying source of funds regarding financial transactions
JP2007004595A (ja) * 2005-06-24 2007-01-11 Hitachi Ltd コンピュータ制御方法、コンピュータ、情報処理システム、及びプログラム
US7505686B2 (en) * 2005-09-01 2009-03-17 Alcatel-Lucent Usa Inc. Highly scalable multi-granular node architecture
JP2006146951A (ja) 2005-12-28 2006-06-08 Nec Corp コンテンツ動的ミラーリングシステム
US20080082647A1 (en) * 2006-09-29 2008-04-03 Dennis Baker Connection reservation in dynamic node allocation computing environments
US7743161B2 (en) * 2006-10-10 2010-06-22 Ortiva Wireless, Inc. Digital content buffer for adaptive streaming
JP4606404B2 (ja) * 2006-12-01 2011-01-05 富士通株式会社 計算資源管理プログラムおよび計算資源管理装置
US8086827B2 (en) * 2006-12-28 2011-12-27 Intel Corporation Mechanism for irrevocable transactions
US20080184012A1 (en) * 2007-01-30 2008-07-31 Nema Labs Ab Speculative Throughput Computing
JP2008197783A (ja) 2007-02-09 2008-08-28 Canon Inc データ処理装置、ネットワークシステム、及びコンピュータプログラム
US8108234B2 (en) * 2007-03-13 2012-01-31 Sap Ag System and method for deriving business processes
US20090028142A1 (en) * 2007-07-25 2009-01-29 Schmidt Brian K Streaming data content in a network
US20090132582A1 (en) * 2007-11-15 2009-05-21 Kim Moon J Processor-server hybrid system for processing data
US8726289B2 (en) * 2008-02-22 2014-05-13 International Business Machines Corporation Streaming attachment of hardware accelerators to computer systems
US8770470B2 (en) * 2008-04-29 2014-07-08 Visa U.S.A. Inc. Device including form factor indicator
CN100570569C (zh) 2008-06-13 2009-12-16 南京邮电大学 网格计算环境下的作业跨域控制方法
US8499059B2 (en) * 2009-05-04 2013-07-30 Rovi Solutions Corporation System and methods for buffering of real-time data streams
US20110126197A1 (en) * 2009-11-25 2011-05-26 Novell, Inc. System and method for controlling cloud and virtualized data centers in an intelligent workload management system
US20110137795A1 (en) * 2009-12-03 2011-06-09 Mastercard International, Inc. Automated teller machine system
US8819183B2 (en) * 2009-12-15 2014-08-26 International Business Machines Corporation Concurrent execution of request processing and analytics of requests
US8892762B2 (en) 2009-12-15 2014-11-18 International Business Machines Corporation Multi-granular stream processing
US8874638B2 (en) * 2009-12-15 2014-10-28 International Business Machines Corporation Interactive analytics processing

Also Published As

Publication number Publication date
DE112010004809B4 (de) 2021-10-07
US20110145429A1 (en) 2011-06-16
CN102656860B (zh) 2016-02-17
GB201206886D0 (en) 2012-06-06
US8892762B2 (en) 2014-11-18
DE112010004809T8 (de) 2012-10-11
GB2488454A (en) 2012-08-29
JP2013513876A (ja) 2013-04-22
CN102656860A (zh) 2012-09-05
JP5802215B2 (ja) 2015-10-28
GB2488454B (en) 2016-06-08
WO2011073008A1 (en) 2011-06-23

Similar Documents

Publication Publication Date Title
DE112013000752B4 (de) Verwalten von Verarbeitungselementen in einem Streaming-Datensystem
DE112010004809T5 (de) Mehrfachgranulare Datenstromverarbeitung
DE102013207049B4 (de) Überwachen der Datenstrompufferung zur Optimierung der Operatorverarbeitung
DE112010003886B4 (de) Bereitstellung von Diensten unter Verwendung eines Cloud-Dienste-Katalogs
DE112012004747B4 (de) Verborgenes automatisiertes Spiegeln von Daten für native Schnittstellen in verteilten virtuellen Maschinen
DE112016005477T5 (de) System zum parallelen puffern und vorverarbeiten von datenströmen auf grundlage eines kontextes auf mehreren ebenen in fahrzeugdomänen
DE202012013432U1 (de) Speichern von Daten auf Speicherknoten
DE102012213631A1 (de) Zwischenspeichern von Kontextdatenstrukturen in einer Vektorregisterdatei zum Beibehalten von Zustandsdaten in einer Multithread-Bildverarbeitungs-Pipeline
DE102015002366A1 (de) Systemkohärenz in einer verteilten Graphikprozessorhierarchie
DE102016119298B4 (de) Zeitpunktkopieren mit klonen von ketten
DE112012003540T5 (de) Leistungsüberwachungsmasszahlen für Datenstromanwendung
DE112012005030T5 (de) Dynamisch konfigurierbare Platzierungs-Engine
DE202014011539U1 (de) System zum verteilten Verarbeiten in einer Nachrichtenübermittlungsplattform
DE112013000656T5 (de) System und Verfahren zum Verringern der Speichernutzung durch optimales Platzieren von virtuellen Maschinen in einem virtualisierten Rechenzentrum
DE202017106604U1 (de) Benutzerdefinierte digitale Komponenten
DE112017003294T5 (de) Technologien für ein skalierbares Senden und Empfangen von Paketen
DE112007001135T5 (de) Gemeinschaftliche Nutzung von Daten durch Partitionen in einem partitionierbaren System
DE102019127726A1 (de) Für fernarbeitsplatz-anwendungen geeignetes streaming individueller anwendungsfenster
DE112020004651B4 (de) Multi-tenant-etl-ressourcenaufteilung
DE112015001914T5 (de) Dauerhaftes Speichern und Verwalten von Anwendungsnachrichten
DE202015009292U1 (de) Erzeugung eines Aktivitätsflusses
DE102017213160B4 (de) Kompilierung für knotenvorrichtungs-GPU-basierte Parallelverarbeitung
DE202014010940U1 (de) Dynamische Shuffle-Rekonfiguration
DE202014010885U1 (de) Beschleunigung basierend auf zwischengespeicherte Flüsse
DE202020005703U1 (de) Auf verteilten Metadaten basierendes Cluster-Computing

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R083 Amendment of/additions to inventor(s)
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0029060000

Ipc: G06F0015160000

R083 Amendment of/additions to inventor(s)
R082 Change of representative

Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE

Representative=s name: SPIES DANNER & PARTNER PATENTANWAELTE PARTNERS, DE

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R082 Change of representative

Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R016 Response to examination communication
R082 Change of representative

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R082 Change of representative

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final