DE602004012660T2 - System und Verfahren für einen nachrichtenorientierten anpassungsfähigen Datentransport - Google Patents

System und Verfahren für einen nachrichtenorientierten anpassungsfähigen Datentransport Download PDF

Info

Publication number
DE602004012660T2
DE602004012660T2 DE602004012660T DE602004012660T DE602004012660T2 DE 602004012660 T2 DE602004012660 T2 DE 602004012660T2 DE 602004012660 T DE602004012660 T DE 602004012660T DE 602004012660 T DE602004012660 T DE 602004012660T DE 602004012660 T2 DE602004012660 T2 DE 602004012660T2
Authority
DE
Germany
Prior art keywords
data
message
network
session
message objects
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.)
Expired - Lifetime
Application number
DE602004012660T
Other languages
English (en)
Other versions
DE602004012660D1 (de
Inventor
Kestutis 98074 Patiejunas
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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of DE602004012660D1 publication Critical patent/DE602004012660D1/de
Application granted granted Critical
Publication of DE602004012660T2 publication Critical patent/DE602004012660T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/10Streamlined, light-weight or high-speed protocols, e.g. express transfer protocol [XTP] or byte stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Debugging And Monitoring (AREA)
  • Communication Control (AREA)
  • Information Transfer Between Computers (AREA)

Description

  • FELD DER ERFINDUNG
  • Die Erfindung bezieht sich auf das Feld der Informationstechnologie, und im Speziellen auf eine Plattform, die eingerichtet ist, um Sicherungen großer Netzwerke und anderer Daten oder Übertragungen über effiziente, nachrichtenbasierte Sitzungen zu initiieren und zu verarbeiten.
  • HINTERGRUND DER ERFINDUNG
  • Der gesteigerte Bedarf an Datenunternehmens- und anderen Speicher-Lösungen hat den Bedarf an Datensicherungs- und Verwaltungswerkzeugen verstärkt. Firmen, Regierungs- und Wissenschaftsorganisationen und Andere benötigen zu Archivierungszwecken und weiteren Zwecken die verlässliche Sicherung von Gigabyte, Terabyte oder mehr an Daten. Während physikalische Speichermedien wie Speichernetzwerke, optische Speichermedien, RAID (Redundant Arrays of Inexpensive Disks) oder andere Plattformen die gesamte Archivierungskapazität, die für Datenverwalter verfügbar ist, gesteigert haben, ist die Fähigkeit, um große Datensicherungen effizient auszuführen nicht immer ähnlich vorangeschritten.
  • Zum Beispiel könnte ein Netzwerkadministrator periodisch die Datensicherungen, die in einem Netzwerkspeicher, wie beispielsweise ein Serverlaufwerk in einem lokalen Netzwerk (LAN), gespeichert sind, extrahieren wollen, und diese Daten zu einem sicheren Datensicherungsrepositorium an einer entfernten Stelle transportieren wollen. Jedoch ist das Planen und Ausführen von Datentransporten in dieser Größenordnung unter Benutzung von aktuellen Technologien nicht immer effizient. Zum Beispiel kann der Administrator im Fall der Speicherung von LAN-Daten an einer entfernten Stelle versuchen, die Menge an Daten unter Benutzung eines herkömmlichen Netzwerkprotokolls, wie beispielsweise das Transfer Control Protocol „TCP", zu bewegen.
  • Es kann sich jedoch herausstellen, dass TCP als Transportlösung ein ungeeignetes Mittel ist, um die Datensicherung mit einem entfernten Host zu kommunizieren, teilweise deshalb, weil TCP dazu neigt, die Daten in vergleichsweise kleine Pakete in der Größenordnung von wenigen 10 Byte bis hin zu 1.000 Byte zu (zer)stückeln. Wenn man versucht, Gigabytes von Original- oder Aktualisierungsdaten von entfernten Host zu bewegen, wird diese Skala nicht für einen effizienten Transport genügen. Des Weiteren kann TCP, wenn man eine Datenflusssteuerung in dem Kanal ausführt, pausieren um nach verfügbarer Bandbreite oder Ka pazität von wenigen tausend Bytes zu suchen, anhalten und den verfügbaren Platz in der Pipe (gepufferter Datenstrom/Pufferspeicher) füllen, und dann auf zusätzliche offene Schlitze warten. Ferner ist das Verschieben von Daten in der Größenordnung von Megabytes, Gigabytes oder mehr durch einen intermittierenden Kanal bei solchen Größenordnungen nicht effizient, wenn man die Granularität eines TCP API benutzt. Deshalb sind bessere Datensicherungstechnologien für solche Größenordnungen wünschenswert. Darüber hinaus gibt es weitere Probleme.
  • US 2003/031172 A1 bezieht sich auf eine TCP-Empfängerbeschleunigung. Ein Datenpaket wird empfangen, wobei das Datenpaket einen Kopfteil, Nutzdaten und einen Verbindungskontext umfasst. Der Empfänger umfasst eine Analyse-Engine, welche den Kopfteil des empfangenen Paketes klassifiziert. Um die Implementierung des TCP-Empfängers zu optimieren, werden die Aufgaben des TCP-Empfängers partitioniert. Die Partition der TCP-Empfängerverarbeitung basiert auf der Ermittlung einer Nummer von einem Pfad. Die Pfade sind als ein großer Entscheidungsbaum mit mehreren Eingangspunkten gedacht. Ein ankommendes TCP-Segment wird über einen dieser Eingangspunkte zusammen mit einem gegebenen Pfad gemäß der Klassifizierung des Segmentes geleitet. Das TCP-Segment, welches ein Kopfteil und Nutzdaten umfasst, wird von einem Segmentvalidierungsmodul bearbeitet. Während der Kopfteil verarbeitet wird, werden die Daten in einem Pufferspeicher gespeichert. Nach dem Verarbeiten werden die TCP-Nutzdaten aus dem Speicher angefordert und zu einem Host gesendet.
  • US-B-6 223 2071 bezieht sich auf Datenstrukturen für eine Eingabe-Ausgabekomplettierungsportwarteschlange und ein Verfahren für die Benutzung derselben. Eine Technik für das Durchführen von mehreren simultanen asynchronen Eingabe-/Ausgabeoperationen in Computerbetriebssystemen wird beschrieben. Das E/A-Komplettierungsportobjekt ist ein EIA-Objekt mit einer Warteschlange, die einen einzelnen Synchronisierungspunkt sowie einen steuerbaren gleichzeitigen Zugriff für mehrere gleichzeitige asynchrone E/A-Operationen aufweist. Ein E/A-Komplettierungsport kann benutzt werden, um hunderte von Netzwerk-E/A-Operationen zu synchronisieren.
  • Es ist die Aufgabe der vorliegenden Erfindung, eine verbesserte Datenübertragungsvorrichtung sowie ein verbessertes Datenübertragungsverfahren anzugeben.
  • Diese Aufgabe wird durch den Gegenstand der unabhängigen Ansprüche gelöst.
  • Bevorzugte Ausführungsformen werden in den abhängigen Ansprüchen beschrieben.
  • Die Erfindung, die diese und weitere Probleme, die in diesem Gebiet bekannt sind, behebt, bezieht sich in einer Hinsicht auf ein System und ein Verfahren für nachrichtenbasierten, skalierbaren Datentransport, bei welchem ein oder mehrere einzelne Server oder andere Knoten Datensicherungen und weitere Informationen mit einem entfernten Speicherhost über eine Kommunikations-Engine kommunizieren. In Ausführungsformen kann die Kommunikationsengine eine Schnittstelle mit einer darunterliegenden Transportschicht, wie beispielsweise TCP oder andere Protokolle, aufweisen und den Datenfluss von dem entfernten Speicher vermitteln. Die Kommunikationsengine kann die Daten, die transportiert werden sollen, in einen Satz von Nachrichtenobjekten zerlegen, welche über Verbindungen, die in errichteten Daten-Pipes gebündelt werden, gepuffert werden. Die Einkapselung der Daten in fundamentale Nachrichtenobjekte ermöglicht die kontinuierliche Lieferung der Nutzdaten, da der Datentransfer so lange fortgeführt wird, wie die Verbindung nicht belegt und klar ist, im Gegensatz z. B. zu reinen TCP-Transporten, welche ein „stotterndes" oder Stop-and-go-Verhalten zeigen können. In Ausführungsformen kann eine anfängliche Sitzung (Session) Daten über mehr als eine Verbindung übertragen, um die Kanalbenutzung zu maximieren. Die Kommunikationsengine kann eine Kontrolle des Verkehrs, basierend auf der Abfrage von Abschluss-Anschlüssen (completion ports) um den Abschluss einer Nachricht anzuzeigen oder auf anderen Kanalmechanismen, durchführen, aber im Allgemeinen wird das Bestätigen von individuellen Paketen oder vergleichsweise kleineren Datenobjekten nicht benötigt. Durch eine erfindungsgemäße Plattform und ein erfindungsgemäßes Protokoll können hohe Datendurchsätze erreicht werden.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 stellt eine Abbildung der Anordnung eines Gesamtnetzwerkes für das Verarbeiten von Datensicherungen und anderen Übertragungen gemäß einer Ausführungsform der Erfindung dar.
  • 2 stellt eine Architektur für einen nachrichtenbasierten Datentransfer gemäß einer Ausführungsform der Erfindung dar.
  • 3 stellt ein Zugangsdiagramm für einen nachrichtenbasierten Datentransfer gemäß einer Ausführungsform der Erfindung dar.
  • 4 stellt ein Flussdiagramm eines nachrichtenbasierten Datentransfers und eines verknüpften Protokolls gemäß einer Ausführungsform der Erfindung dar.
  • DETAILLIERTE BESCHREIBUNG VON AUSFÜHRUNGSFORMEN
  • 1 stellt eine Architektur dar, in welcher ein System und ein Verfahren für nachrichtenbasierten skalierbaren Datentransport gemäß einer Ausführungsform der Erfindung operieren kann. Wie in dieser Figur gezeigt, kann in Ausführungsformen ein Satz von Datenquellen 102 untereinander und mit entfernten Ressourcen über ein Netzwerk 104 kommunizieren. In Ausführungsformen kann der Satz von Datenquellen 102 z. B. individuelle Server, Klienten oder andere Knoten oder Einrichtungen umfassen, die über Festplatten, Magnetbänder, optische oder andere Speichermedien verfügen. Das Netzwerk 104 kann in Ausführungsformen ein LAN (Local Area Network) wie beispielsweise ein Ethernet-Netzwerk, ein WAN (Wide Area Network) oder ein anderer Netzwerktyp oder Topologie sein oder umfassen. Das Netzwerk 104 kann in weiteren Ausführungsformen ein dediziertes Netzwerk für den Zweck von Datensicherung, ein geteiltes (shared) Netzwerk, welches periodisch für Datentransporte benutzt wird, das Internet, oder weitere Netzwerke oder Einrichtungen sein oder umfassen. Jedoch können im Allgemeinen eine oder mehrere der Datenquellen in dem Satz von Datenquellen 102 die Aufgabe haben, Daten im Ganzen oder teilweise, auf einer periodischen oder anderen Basis und in vergleichsweise großen Mengen zu sichern.
  • In Ausführungsformen können, wenn Datensicherungen oder andere Datenübertragungen wie gezeigt erzeugt werden, die Daten, die von ein oder mehreren der Datenquellen in dem Satz von Datenquellen 102 übertragen werden, zu einem Speicherserver kommuniziert werden, welcher wiederum die Daten zu einem Speicher 108 kommuniziert. Der Speicher 108 kann in Ausführungsformen Festplattenressourcen wie RAID-Bänke, optische Medien wie z. B. wiederbeschreibbare CD-ROMs oder DVD-ROMs oder andere, Magnetbandlaufwerke, elektronische Speichereinrichtungen wie RAM, Flash-Speicher oder andere elektronische Komponenten, oder andere Speichermedien sein oder umfassen. In Ausführungsformen kann der Speicher 108 auch Datenspeicherressourcen wie SANs (Storage Area Networks) oder andere Einrichtungen sein, umfassen oder mit diesen eine Schnittstelle aufweisen. In Ausführungsformen kann der Speicher 108 eingerichtet sein, um relativ große Mengen von Datensicherungen, z. B. Megabytes, Gigabytes, Terabytes oder mehr für Unternehmens- und andere Zwecke, zu akzeptieren und zu speichern.
  • Wie in 2 gezeigt kann gemäß einer Ausführungsform der Erfindung jede der Quellen innerhalb des Satzes von Datenquellen 102 mit einer Kommunikationsengine 110 kommunizieren, um eine Datentransportsitzung mit einem Datenserver 106 oder einem anderen entfernten oder lokalen Ziel zu initiieren, zu verwalten und auszuführen. Die Kommunikationsengine kann ein API (Application Programming Interface) 112 sein oder umfassen, welches Variablen, Aufrufe oder andere Schnittstellenparameter an den Satz von Datenquellen 102 übergibt, um einen effektiven Datentransfer auszuführen. In den gezeigten Ausführungsformen kann jede der Datenquellen in dem Satz von Datenquellen 102 eine entsprechende Sitzung innerhalb eines Satzes von Sitzungen 114 erzeugen oder mit einer solchen verknüpft sein. Der Satz von Sitzungen 104 kann eine Warteschlange von Eingabe-/Ausgabepuffern 116 umfassen, wobei ein oder mehrere Eingabe-/Ausgabepuffer jeder Sitzung zugewiesen sind. Andere Anordnungen von Sitzungen, Warteschlangen, Puffern und anderen Ressourcen sind möglich. Ein Beispiel eines erläuternden Codes, welcher in Ausführungsformen eine neue Sitzung aus einer Sitzungsobjektklasse instanziieren kann, ist im Folgenden gezeigt: Tabelle 1 CSession Object:
    Figure 00050001
    Client Thread:
    Figure 00060001
  • Ein anderer Code, andere Sprachen oder Module oder andere APis sind möglich.
  • Wie gezeigt, kann jede der Sitzungen in dem Satz von Sitzungen 114 wiederum mit einem Abfertigungsmodul in dem Satz von Abfertigungsmodulen 118 kommunizieren. Der Satz von Abfertigungsmodulen 118 kann die Verbindung mit einem oder mehreren eines Satzes von Verbindungen 120 sichern. Der Satz von Verbindungen 120 (der eine oder mehrere umfassen kann) kann in Ausführungsformen mehrere mögliche darunter liegende Kommunikationsmechanismen wie TCP über Winsock, Pipes oder andere benutzen. Jede der Verbindungen in dem Satz von Verbindungen 120, welche in einer logischen Pipe 122 vereint sind, können mit einem Speicherserver 106 oder anderen entfernten oder lokalen Hosts oder Ressourcen kommunizieren. In Ausführungsformen kann die Pipe 122 vor dem Errichten des Satzes von Verbindungen 120 innerhalb dieser Struktur eingerichtet sein, aber es sind auch andere Einrichtungsphasen und Konfigurationen möglich. In Ausführungsformen kann die Erfindung eine große Zahl von Verbindungen in ein oder mehreren Pipes unterstützen oder anwenden, z. B. in der Größenordnung von 1.000 gleichzeitigen Verbindungen oder, abhängig von der Implementierung, auch mehr.
  • Wie gezeigt, kann der Speicherserver 106 eine Eingabe-/Ausgabe-Ziel-Warteschlange 124 umfassen, um eingehenden oder ausgehenden Nachrichtenverkehr mit dem Speicherserver 106 oder einem anderen Ziel zu puffern. Genauer gesagt können ein oder mehrere der Quellen aus dem Satz von Datenquellen 102 einen Datentransfer zu dem Speicherserver 106 über die Kommunikationsengine 110 und verknüpfte Ressourcen, zu festgelegten, per odischen, ausgewählten oder anderen Zeitpunkten initiieren. Der Datentransfer kann z. B. das Sichern einer Serverfestplatte oder anderen Speichern, das Erfassen von großen Mengen an wissenschaftlichen oder kommerziellen Daten oder andere Datentransportaufgaben sein oder umfassen. Die Kommunikationsengine 110 kann die residenten Daten von den einen oder mehreren Quellen aus dem Satz von Quellen 102 in einen Satz von Nachrichtenobjekten für ein effizienteres Einreihen in die Warteschlange und eine effizientere Übertragung zerlegen.
  • Wie gezeigt, kann die Sitzung, die als Sitzung A in dem Satz von Sitzungen 114 gezeigt ist, zwei Nachrichten, welche als Nachricht 1 und Nachricht 2 bezeichnet sind, für den Transfer zum Speicherserver 106 erzeugen. Diese und andere Nachrichten können in Ausführungsformen die Größenordnung von vielen Megabytes haben, aber auch größer oder kleiner sein. Die ebenso gezeigte Sitzung B hat eine Nachricht, die als Nachricht 3 bezeichnet ist, für den Transport zu dem Speicherserver 106 erzeugt. Die Sitzung C ist als eine als Nachricht 4 bezeichnete Nachricht auf der Eingangsseite empfangend gezeigt.
  • Die Abfertigungsmodule in dem Satz von Abfertigungsmodulen 118 können mehrere Nachrichtenströme von dem Satz von Eingabe-/Ausgabepuffern 116 in ein oder mehrere Verbindungen in dem Satz von Verbindungen 120 binden und die Nachrichten von unterschiedlichen Sitzungen in die gleiche Pipe von Verbindungen multiplexen. Wie gezeigt kommuniziert das als D1 bezeichnete Abfertigungsmodul den Verkehr von Sitzung A, welcher die Nachrichten 1 und 2 umfasst, zur Verbindung 1, während das Abfertigungsmodul D2 den Nachrichtenstrom von und zu Sitzung B und der Sitzung für die Verbindung mit der Verbindung 2 kombiniert. Andere Kombinationen sind möglich. Wie gezeigt, kann die Kommunikationsengine 110, welche mit dem Satz von Sitzungen 114 und dem Satz von Abfertigern 118 und anderen Ressourcen interagiert, versuchen, die größtmögliche Anzahl von hängigen Nachrichten durch den Satz von Verbindungen 120 der Pipe 122 zu schicken, um die größtmögliche Nutzung der verfügbaren Bandbreite zum Speicherserver 106 zu erreichen. In Ausführungsformen können einzelne Sitzungen in dem Satz von Sitzungen 114 unterschiedliche Typen von Netzwerkverbindungen, wie beispielsweise Ports, Sockets oder andere Parameter, für unterschiedliche Nachrichten oder Sätze von Nachrichten spezifizieren.
  • Sowohl jede der Datenquellen in dem Satz von Datenquellen, als auch einzelne Verbindungen in dem Satz von Verbindungen 120 und andere Verbindungen in der Transportkette zum Speicherserver 106, können unterschiedliche verfügbare Bandbreiten oder andere Verbindungscharakteristiken haben. Die Warteschlange der Eingabe-/Ausgabepuffer 116, zusammen mit anderen Übertragungsressourcen, ermöglicht das Puffern, um der langsamsten Verbindung oder den langsamsten Verbindungen in dieser Kette, sowie unterschiedlichen Charakteristiken des sender- und empfängerseitigen Verkehrs Rechnung zu tragen, während der Datentransport bei der größtmöglichen Auslastung betrieben wird. Die Kommunikationsengine 110 kann beispielsweise den Satz von Verbindungen 120 kontinuierlich oder periodisch überprüfen, um festzustellen, ob diese mit einem ausgehenden oder eingehenden Nachrichtenstrom belegt sind.
  • In Ausführungsformen können diese Prüfungen oder Scans unter Benutzung der Abschluss-Porteinrichtung, welche unter der Microsoft Windows Betriebssystemfamilie verfügbar ist, gemacht werden, gemäß dessen der „GetQueuedCompletionStatus" und andere Anweisungen Nachrichten zurückliefern können, welche das Absenden oder Nichtabsenden einer gegebenen Nachricht von der Warteschlange anzeigen können. Da die Kommunikationsengine 110, der Satz von Abfertigern 118 und andere Ressourcen auf ein Nachrichtenobjekt als fundamentale Einheit des Datentransfers angewiesen sein können, kann die gesamte Funktion der Erfindung in den Ausführungsformen auf schnelle, groß angelegte Transfers gerichtet sein, da es dort keinen Stop-and-Go-Effekt aus der Verarbeitung von einzelnen Teilen von Daten wie in einem reinen TCP-Übertragungsmodus gibt. Stattdessen kann erfindungsgemäß eine vergleichsweise große Nachricht erzeugt werden, in eine Warteschlange der Eingabe-/Ausgabepuffer 116 eingereiht werden, und für die Übertragung zu dem Speicherserver 106 oder ein anderes Ziel freigegeben werden.
  • In Ausführungsformen kann jede Sitzung aus dem Satz von Sitzungen 114 oder die Kommunikationsengine 110 warten, um die Warteschlange aufzufüllen, bis die Sitzung selbst feststellt, dass die Übertragung des Nachrichtenobjektes abgeschlossen ist. Da die Aufgabe, den Status zu bestätigen, auf der Senderseite ist, gibt es keine Feedback-Schleife von der Empfängerseite, womit eine solche Art von Overhead vermieden wird. Der Satz von Sitzungen 114 kann stattdessen auf eine Bestätigung, dass sich ein Platz in der Warteschlange geöffnet hat, von der Warteschlange der Eingabe-/Ausgabepuffer 116 warten, um die nächste Nachricht zur Transmission vorzubereiten. Der Satz von Sitzungen 114 könnte daher nicht versuchen, die Warteschlange wieder aufzufüllen bis alle Nachrichteneinheiten verarbeitet sind. Der Satz von Sitzungen 114 kann eine Time-out-Funktion umfassen, um eine Nachricht aus der Warteschlange der Eingabe-/Ausgabepuffer 116 zu entfernen, wenn der entsprechende Eingabe-/Ausgabepuffer das Absenden der Nachricht zu dem Satz von Verbindungen 120 nicht innerhalb einer festen Zeit, wie beispielsweise eine Minute, bestätigt. Der Satz von Sitzungen 114 kann andere Time-out- oder weitere Prüfungskriterien, wie beispielsweise variable Verzögerungszeiten, eine feste oder variable Zahl von wiederholten Versuchen, die gemacht werden sollen, bevor eine Nachricht getilgt wird, oder weitere, anwenden.
  • Jedes der Nachrichtenobjekte selbst kann über die Verbindungen in dem Satz von Verbindungen 120 unter Benutzung von TCP selbst als Protokoll auf niedrigerer Ebene kommuniziert werden. Andere Protokolle sind möglich. Weil die Kommunikationsengine 110 und deren verknüpfte nachrichtenbasierte Protokolle eine Flusskontrolle auf höhere Ebene steuern, können TCP-Datagramme ohne kleine Flusskontrolle, Fehlerüberprüfung oder andere Verarbeitungen fließen, welche dazu neigen würden, große, skalierbare Transfers des Typs, der von Ausführungsformen der Erfindung gesteuert wird, zu verlangsamen.
  • In Ausführungsformen können die Kommunikationsengine 110, API 112 und andere Ressourcen Schichten des Sicherheitsschutzes einführen, um die Daten, die zu dem Speicherserver 106 oder anderen Zielen transportiert werden, zu schützen. Zum Beispiel kann jede Sitzung in dem Satz von Sitzungen 114 oder Verbindung in dem Satz von Verbindungen 120 über digitale Zertifikate, wie beispielsweise Kerberos, X.509 oder andere Objekte, sichere Socketschichten oder anderen Mechanismen authentifiziert werden, bevor zugelassen wird, dass diese in der Pipe 122 vereinigt werden. Individuelle Nachrichten können ebenso selbst verschlüsselt sein, um das Abfangen oder Verändern der Daten, welche zum Speicherserver 106 bewegt werden, zu verhindern. Zahlreiche Sicherheits-, Verschlüsselungs- oder andere Techniken, wie beispielsweise Microsoft Security Support Provider Interface (SSPI), Public Key wie beispielsweise RSA-Standard, private Schlüssel, wie z. B. DES(Digital Encryption System)-Mechanismen, oder weitere, können angewendet werden, um den Inhalt von Nachrichten oder andere Aspekte des Übertragungsvorgangs zu schützen. In Ausführungsformen können die Authentisierung, Verschlüsselung und verwandte Informationen in der Schicht von API 112 exponiert sein.
  • 3 zeigt einen Satz von Zustandsmaschinen 126, welche sukzessive Zustände des Kommunikationsablaufs gemäß einer Ausführungsform der Erfindung zeigen. Wie in dieser Figur gezeigt, kann API 112 eine Schnittstelle darstellen, um Kommunikationsressourcen aufzurufen, um einen nachrichtenbasierten Datentransport, wie beispielsweise Serversiche rung, eine Aufnahme von großen Datenmengen, wie beispielsweise wissenschaftliche oder kommerzielle Daten, oder andere Zwecke zu bewirken. Das Liefern von Nachrichten über. den Satz von Sitzungen 114 kann in Ausführungsformen verlässlich in dem Sinn sein, dass individuelle Nachrichten entweder als Ganzes übertragen werden oder für die Wiederübertragung in einer Warteschlange eingereiht werden. Wie gezeigt, können mehrere Sitzungen zu mehreren Zielen eingerichtet sein, zur Veranschaulichung verbindet Sitzung 1 mit Ziel 1, Sitzung 2 verbindet mit Ziel 1, und Sitzung 3 verbindet mit Ziel 3. Wie gezeigt können Sitzung 1 und Sitzung 2 zwischen Zuständen 1 und 2 kreisen, während diese auf das Abschließen der Übertragung der jeweiligen Nachrichten zum Ziel 1 oder auf andere Auslöse-Ereignisse warten. Die Kommunikation mit Ziel 1 kann über die Zustandsmaschine der Verbindung 1 für die Sitzung 1, und die Zustandsmaschine der Verbindung 2 für die Sitzung 2 erfolgen. Jede der Verbindungen 1 oder 2 kann mit verknüpften Verschlüsselungs- oder Authentifizierungszustandsmaschinen kommunizieren, um sich gegen das nichtautorisierte Anzeigen oder Verändern von Nachrichtenobjekten abzusichern. Jede der Verbindungen 1 oder 2 kann gleichermaßen mit einer entsprechenden Socket-EIA-Zustandsmaschine kommunizieren, welche den Zugriff auf entsprechende Socket-1- und Socket-2-Verbindungen zum Ziel 1 reguliert. Die Sitzung 3 kann mit ähnlichen Zustandsmaschinen kommunizieren, welche die Übertragung, Verschlüsselung, Authentifizierung und Socketverbindungen zum Ziel 3 verarbeiten. In Ausführungsformen kann die Transmission von individuellen Nachrichten asynchron sein, so dass Nachrichten gemäß der Kanalbelegung und anderer Faktoren in Warteschlangen eingereiht und freigegeben werden können, anstatt dass dies gemäß Zeitschlitzen vorgenommen wird. Das Erzeugen von individuellen Verbindungen und Sitzungen kann in manchen Ausführungsformen gleichermaßen asynchron sein. Zusätzliche Zustandmaschinen und Verbindungen sind möglich, und für jede Zustandsmaschine oder Prozess sind andere Zustände möglich.
  • Die gesamte Datentransportverarbeitung ist in 4 illustriert. In Schritt 402 werden ein oder mehrere Sitzungen in dem Satz von Sitzungen 114 erzeugt. In Schritt 104 kann eine Sitzungssynchronisierungsnachricht von einer Datenquelle in den Satz von Datenquellen 102 gesendet werden und zu dem Ziel-Eingabe-/Ausgabepuffer 124 des Speicherservers 106 gesendet werden. In Schritt 406 kann eine Ausführungsnachricht für die Sitzungssynchronisierung zum Speicherserver 106 gesendet werden. In Schritt 408 kann der Speicherserver 106 die Sitzungsanfrage akzeptieren.
  • In Schritt 410 kann eine Sitzungssynchronisierungsbestätigungsnachricht von dem Ziel-Eingabe-/Ausgabepuffer 124 des Speicherservers 106 zu dem entsprechenden Eingabe-/Ausgabepuffer in dem Satz von Eingabe-/Ausgabepuffern 114 für die anfordernde Datenquelle gesendet werden. In Schritt 412 kann eine Ausführungsnachricht für die Sitzungsbestätigung zu der absendenden Datenquelle in dem Satz von Datenquellen 102 gesendet werden. In Schritt 414 kann die sendende Datenquelle eine erste Nachricht, die als Nachricht 1 bezeichnet ist, zu ihrem verknüpften Eingabe-/Ausgabepuffer in dem Satz von Eingabe-/Ausgabepuffern 114 senden. In Schritt 416 kann die sendende Datenquelle eine zweite Nachricht, die als Nachricht 2 bezeichnet ist, zu ihrem verknüpften Eingabe-/Ausgabepuffer in dem Satz von Eingabe-/Ausgabepuffern 114 senden. In Schritt 418 kann die sendende Datenquelle eine dritte Nachricht, die als Nachricht 3 bezeichnet ist, zu ihrem verknüpften Eingabe-/Ausgabepuffer in dem Satz von Eingabe-/Ausgabepuffern 114 senden. In Schritt 420 kann die Datenquelle eine Fehler-Nachricht empfangen, die anzeigt, dass der entsprechende Eingabe-/Ausgabepuffer voll ist, so dass Nachricht 3 nicht in der Warteschlange akzeptiert wurde. In Schritt 422 kann die Nachricht 1 zu dem Ziel-Eingabe-/Ausgabepuffer 124 des Speicherservers 106 gesendet werden. In Schritt 424 kann eine Ausführungsnachricht für die Übertragung der Nachricht 1 zum Speicherserver 106 oder einem anderen Ziel gesendet werden. In Schritt 426 kann eine Bestätigungsnachricht, welche das Empfangen der Nachricht 1 bestätigt, zu dem Eingabe-/Ausgabepuffer der Datenquelle dieser Nachricht gesendet werden. In Schritt 428 kann eine Ausführungsnachricht für die Nachricht 1 zu der entsprechenden Datenquelle gesendet werden.
  • In Schritt 430 kann die Nachricht 2 zu dem Ziel-Eingabe-/Ausgabepuffer 120 des Speicherservers 106 oder einem anderen Ziel gesendet werden. In Schritt 432 kann eine Ausführungsnachricht für die Nachricht 2 zu dem Speicherserver 106 gesendet werden. In Schritt 434 kann die Nachricht 3 erneut zu dem Eingabe-/Ausgabepuffer gesendet werden, der der Datenquelle dieser Nachricht entspricht. In Schritt 436 kann eine Bestätigungsnachricht, die den Empfang der Nachricht 2 mit einer Fenstergröße (WndSize) von null Einheiten anzeigt, zu dem Eingabe-/Ausgabepuffer der Datenquelle für diese Nachricht gesendet werden. In Schritt 438 kann eine Ausführungsnachricht für die Nachricht 2 zu dieser Quelle gesendet werden. In Schritt 440 kann eine Nachricht 4 von einer Datenquelle aus dem Satz von Datenquellen 102 zu dem entsprechenden Eingabe-/Ausgabepuffer aus der Warteschlange von Eingabe-/Ausgabepuffern 116 gesendet werden.
  • In Schritt 442 empfängt die Client-Anwendung oder eine andere Ressource, die die Nachricht 1 empfangen soll, die Nachricht 1 von dem Ziel-Eingabe-/Ausgabepuffer 124. In Schritt 444 kann eine Bestätigungsnachricht für die Nachricht 2 mit einer Fenstergröße (WndSize) von einer Einheit an den entsprechenden Eingabe-/Ausgabepuffer der Quelle dieser Nachricht gesendet werden. In Schritt 446 kann die Nachricht 3 zu dem Ziel-Eingabe-/Ausgabepuffer 124 des Speicherservers 106 gesendet werden. In Schritt 448 kann die Verarbeitung enden, sich wiederholen oder zu einem zurückliegenden Verarbeitungspunkt zurückkehren.
  • Die vorangehende Beschreibung der Erfindung ist illustrativ, und Änderungen in der Konfiguration und Implementierung sind dem Fachmann möglich. Während zum Beispiel die Erfindung in den Ausführungsformen in Bezug auf mehrere Datenquellen beschrieben wurde, die über eine Kommunikationsverbindung mit einem entfernten Host kommunizieren, können in Ausführungsformen ein oder mehrere Knoten oder Sitzungen über getrennte physikalische oder logische Verbindungen mit einem entfernten Datenhost oder einem anderen Ziel kommunizieren.
  • Während die Erfindung in Ausführungsformen beschrieben derart wurde, dass Sicherungsdaten zu einem einzelnen entfernten Host transportiert werden, können in Ausführungsformen ähnlicherweise die Daten zu getrennten logischen oder physikalischen Hosts oder Medien geliefert werden. Andere Hardware, Software oder weitere Ressourcen, die in den Ausführungsformen als einzeln beschrieben wurden, können in anderen Ausführungsformen auch verteilt sein, und ähnlicherweise können Ressourcen, die als verteilt beschrieben wurden, auch kombiniert sein. Der Umfang der Erfindung soll demnach nur durch die nachfolgenden Ansprüche beschränkt sein.

Claims (36)

  1. System für das Steuern der Übertragung von Daten, wobei das System umfasst: eine Eingabeschnittstelle, um eine Vielzahl von Nachrichtenobjekten, welche aus Daten von mindestens einer Datenquelle (102) erzeugt wurden, zu empfangen, wobei jede der Datenquellen mit mindestens einer dazugehörigen Sitzung verknüpft ist; eine Transportschnittstelle zu einer Transportschicht; eine Kommunikations-Engine (110), welche eingerichtet ist, um mit der Eingabeschnittstelle und der Transportschnittstelle zu kommunizieren, wobei die Kommunikations-Engine eingerichtet ist, um die Nachrichtenobjekte für die Übertragung zu dem entfernten Ziel über die Transportschicht zu puffern, wobei die Kommunikations-Engine (110) eingerichtet ist, um mehr als eine Sitzung (114) an mindestens eine der Verbindungen (120) zu dem entfernten Ziel zu binden; und eine Datenaustauschsitzung (114), welche durch eine der Datenquellen (102) erzeugt wurde, wobei die Datenaustauschsitzung (114) eingerichtet ist, um eines der Nachrichtenobjekte durch das Einkapseln einer Vielzahl von Daten in das Nachrichtenobjekt zu erzeugen.
  2. System gemäß Anspruch 1, wobei die mindestens eine Datenquelle (102) ein Netzwerk umfasst.
  3. System gemäß Anspruch 2, wobei das Netzwerk mindestens einen Server umfasst.
  4. System gemäß Anspruch 3, wobei das Netzwerk ein Local-Area-Netzwerk umfasst.
  5. System gemäß Anspruch 1, wobei die Transportschicht eine Transport-Control-Protocol-Schicht umfasst.
  6. System gemäß Anspruch 1, wobei das entfernte Ziel einen Speicher-Hostcomputer (106) umfasst.
  7. System gemäß Anspruch 1, wobei die Kommunikations-Engine (110) die Nachrichtenobjekte in mindestens einen Ausgabepuffer einreiht.
  8. System gemäß Anspruch 1, wobei die mindestens eine Datenquelle (102) eine Vielzahl von Datenquellen umfasst.
  9. System gemäß Anspruch 1, wobei das Puffern der Nachrichtenobjekte, zumindest teilweise gemäß eines Zustands eines Message Completion Port (Nachrichtenabschluss-Anschluss) durchgeführt wird.
  10. Verfahren für das Steuern der Übertragung von Daten, wobei das Verfahren umfasst: Erzeugen (402) einer Datenaustauschsitzung; Empfangen von Daten von mindestens einer Datenquelle; Einkapseln der Daten in eine Vielzahl von Nachrichtenobjekte durch die Datenaustauschsitzung; und Puffern der Nachrichtenobjekte für die Übertragung zu einem entfernten Ziel über eine Transportschicht; wobei jede der Datenquellen an mindestens eine zugehörige Sitzung gebunden ist; und wobei der Schritt des Bindens einen Schritt des Bindens von mehr als einer Sitzung an mindestens eine der Verbindungen zu dem entfernten Ziel umfasst.
  11. Verfahren gemäß Anspruch 10, wobei die mindestens eine Datenquelle ein Netzwerk umfasst.
  12. Verfahren gemäß Anspruch 11, wobei das Netzwerk mindestens einen Server umfasst.
  13. Verfahren gemäß Anspruch 12, wobei das Netzwerk ein Local-Area-Netzwerk umfasst.
  14. Verfahren gemäß Anspruch 10, wobei die Transportschicht eine Transport-Control-Protocol-Schicht umfasst.
  15. Verfahren gemäß Anspruch 10, wobei das entfernte Ziel einen Speicher-Hostcomputer umfasst.
  16. Verfahren gemäß Anspruch 10, wobei der Schritt des Pufferns der Nachrichtenobjekte einen Schritt des Einreihens der Nachrichtenobjekte in mindestens einen Ausgabepuffer umfasst.
  17. Verfahren gemäß Anspruch 10, wobei die mindestens eine Datenquelle einer Vielzahl von Datenquellen umfasst.
  18. Verfahren gemäß Anspruch 10, wobei der Schritt des Pufferns der Nachrichtenobjekte zumindest teilweise gemäß eines Zustands eines Message Completion Port durchgeführt wird.
  19. Verfahren gemäß Anspruch 10, wobei der Schritt des Empfangens umfasst, dass die Daten von einer Datenbank empfangen werden.
  20. Verfahren gemäß Anspruch 19, wobei die mindestens eine Datenquelle ein Netzwerk umfasst.
  21. Verfahren gemäß Anspruch 20, wobei das Netzwerk mindestens einen Server umfasst.
  22. Verfahren gemäß Anspruch 21, wobei das Netzwerk ein Local-Area-Netzwerk umfasst.
  23. Verfahren gemäß Anspruch 19, wobei die Transportschicht eine Transport-Control-Protocol-Schicht umfasst.
  24. Verfahren gemäß Anspruch 19, wobei die Datenbank einen Speicher-Hostcomputer umfasst.
  25. Verfahren gemäß Anspruch 19, wobei der Schritt des Pufferns der Nachrichtenobjekte einen Schritt des Einreihens der Nachrichtenobjekte in mindestens einen Ausgabepuffer umfasst.
  26. Verfahren gemäß Anspruch 19, wobei die mindestens eine Datenquelle eine Vielzahl von Datenquellen umfasst.
  27. Verfahren gemäß Anspruch 19, wobei der Schritt des Pufferns der Nachrichtenobjekte zumindest teilweise gemäß eines Zustands eines Message Completion Port durchgeführt wird.
  28. Computerlesbares Medium, welches Anweisungen speichert, welche, wenn diese durch einen Computer ausgeführt werden, den Computer veranlassen, ein Verfahren auszuführen von: Erzeugen (402) einer Datenaustauschsitzung; Empfangen von Daten von mindestens einer Datenquelle, wobei jede der Datenquellen mit mindestens einer zugehörigen Sitzung verknüpft ist; Einkapseln der Daten in eine Vielzahl von Nachrichtenobjekten durch die Datenaustauschsitzung; Puffern von mindestens einem der Nachrichtenobjekte für die Übertragung zu einem entfernten Ziel über eine Transportschicht; und wobei das Verfahren des weiteren einen Schritt des Bindens von mehr als einer Sitzung an mindestens eine der Verbindungen zu dem entfernten Ziel umfasst.
  29. Computerlesbares Medium gemäß Anspruch 28, wobei die mindestens eine Datenquelle ein Netzwerk umfasst.
  30. Computerlesbares Medium gemäß Anspruch 29, wobei das Netzwerk mindestens einen Server umfasst.
  31. Computerlesbares Medium gemäß Anspruch 30, wobei das Netzwerk ein Local-Area-Netzwerk umfasst.
  32. Computerlesbares Medium gemäß Anspruch 28, wobei die Transportschicht eine Transport-Control-Protocol-Schicht umfasst.
  33. Computerlesbares Medium gemäß Anspruch 28, wobei das entfernte Ziel einen Speicher-Hostcomputer umfasst.
  34. Computerlesbares Medium gemäß Anspruch 28, wobei der Schritt des Pufferns des mindestens einen Nachrichtenobjekts einen Schritt des Einreihens des mindestens eines Datenobjekts in mindestens einen Ausgabepuffer umfasst.
  35. Computerlesbares Medium gemäß Anspruch 28, wobei die mindestens eine Datenquelle eine Vielzahl von Datenquellen umfasst.
  36. Computerlesbares Medium gemäß Anspruch 28, wobei der Schritt des Pufferns des mindestens einen Nachrichtenobjekts zumindest teilweise gemäß eines Zustands eines Message Completion Port durchgeführt wird.
DE602004012660T 2003-06-30 2004-06-04 System und Verfahren für einen nachrichtenorientierten anpassungsfähigen Datentransport Expired - Lifetime DE602004012660T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US608192 2003-06-30
US10/608,192 US7693998B2 (en) 2003-06-30 2003-06-30 System and method for message-based scalable data transport

Publications (2)

Publication Number Publication Date
DE602004012660D1 DE602004012660D1 (de) 2008-05-08
DE602004012660T2 true DE602004012660T2 (de) 2009-06-18

Family

ID=33435360

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004012660T Expired - Lifetime DE602004012660T2 (de) 2003-06-30 2004-06-04 System und Verfahren für einen nachrichtenorientierten anpassungsfähigen Datentransport

Country Status (7)

Country Link
US (1) US7693998B2 (de)
EP (1) EP1494424B1 (de)
JP (1) JP2005025758A (de)
KR (1) KR20050002604A (de)
CN (1) CN100593306C (de)
AT (1) ATE390789T1 (de)
DE (1) DE602004012660T2 (de)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7720973B2 (en) * 2003-06-30 2010-05-18 Microsoft Corporation Message-based scalable data transport protocol
US7693998B2 (en) 2003-06-30 2010-04-06 Microsoft Corporation System and method for message-based scalable data transport
US20050086384A1 (en) * 2003-09-04 2005-04-21 Johannes Ernst System and method for replicating, integrating and synchronizing distributed information
US8090837B2 (en) 2004-05-27 2012-01-03 Hewlett-Packard Development Company, L.P. Communication in multiprocessor using proxy sockets
ATE399340T1 (de) * 2004-10-27 2008-07-15 Sap Ag Rechnersystem und verfahren zum bewirken von veränderungen in einer softwaresystemlandschaft
ATE363096T1 (de) 2004-10-27 2007-06-15 Sap Ag Verfahren zur durchführung eines softwaredienstes in einer systemlandschaft
ATE402438T1 (de) * 2004-10-27 2008-08-15 Sap Ag Rechnersystem und verfahren zum bewirken von softwarewartung in einer softwaresystemlandschaft
EP1653317A1 (de) * 2004-10-27 2006-05-03 Sap Ag Verfahren und System zum Setzen von Änderungsoptionen von Softwaresystemen
EP1653348A1 (de) * 2004-10-27 2006-05-03 Sap Ag Verfahren zur Verfolgung von Transportaufträgen und Computersystem mit verfolgbaren Transportaufträgen
ATE400844T1 (de) * 2004-10-27 2008-07-15 Sap Ag Verfahren und system zur generierung eines transportweges durch eine softwaresystemlandschaft
ATE410729T1 (de) 2004-10-27 2008-10-15 Sap Ag Rechnersystem und verfahren zum bewirken eines einleitenden softwaredienstes in einem produktiven system einer softwaresystemlandschaft
US8332526B2 (en) * 2005-05-25 2012-12-11 Microsoft Corporation Data communication protocol including negotiation and command compounding
US7747894B2 (en) * 2005-06-06 2010-06-29 Microsoft Corporation Transport-neutral in-order delivery in a distributed system
US7913264B2 (en) * 2007-02-22 2011-03-22 Amadeus Sas Remote customisation module and system comprising said module
US8626927B2 (en) * 2010-05-06 2014-01-07 Verizon Patent And Licensing Inc. System for and method of distributing files
US9331955B2 (en) 2011-06-29 2016-05-03 Microsoft Technology Licensing, Llc Transporting operations of arbitrary size over remote direct memory access
US8856582B2 (en) 2011-06-30 2014-10-07 Microsoft Corporation Transparent failover
US20130067095A1 (en) 2011-09-09 2013-03-14 Microsoft Corporation Smb2 scaleout
US9606245B1 (en) 2015-03-24 2017-03-28 The Research Foundation For The State University Of New York Autonomous gamma, X-ray, and particle detector

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5758184A (en) 1995-04-24 1998-05-26 Microsoft Corporation System for performing asynchronous file operations requested by runnable threads by processing completion messages with different queue thread and checking for completion by runnable threads
JP3711156B2 (ja) * 1995-05-11 2005-10-26 Kddi株式会社 ファイル転送方法
JPH08314821A (ja) * 1995-05-22 1996-11-29 Canon Inc データ転送方法
US5956509A (en) 1995-08-18 1999-09-21 Microsoft Corporation System and method for performing remote requests with an on-line service network
US6298386B1 (en) 1996-08-14 2001-10-02 Emc Corporation Network file server having a message collector queue for connection and connectionless oriented protocols
JPH11242640A (ja) * 1998-02-25 1999-09-07 Kdd Corp ファイル転送方法
JPH11249978A (ja) * 1998-03-04 1999-09-17 Nippon Telegr & Teleph Corp <Ntt> データ転送方法および装置
AU5285200A (en) * 1999-05-24 2000-12-12 Adaptec, Inc. Reliable multi-unicast
US6978464B1 (en) * 1999-10-07 2005-12-20 Sprint Communications Company L.P. Communicating between a process and a destination
US6662213B1 (en) * 2000-01-10 2003-12-09 Sun Microsystems, Inc. System and method for ensuring delivery of a single communication between nodes
US6611879B1 (en) * 2000-04-28 2003-08-26 Emc Corporation Data storage system having separate data transfer section and message network with trace buffer
US7305486B2 (en) 2000-06-30 2007-12-04 Kanad Ghose System and method for fast, reliable byte stream transport
US7219346B2 (en) 2000-12-05 2007-05-15 Microsoft Corporation System and method for implementing a client side HTTP stack
US6662281B2 (en) * 2001-01-31 2003-12-09 Hewlett-Packard Development Company, L.P. Redundant backup device
WO2002097580A2 (en) 2001-05-31 2002-12-05 Espeed, Inc. Securities trading system with multiple levels-of-interest
US20030079121A1 (en) 2001-10-19 2003-04-24 Applied Materials, Inc. Secure end-to-end communication over a public network from a computer inside a first private network to a server at a second private network
JP2003152776A (ja) * 2001-11-14 2003-05-23 Nippon Telegr & Teleph Corp <Ntt> データ転送方法および装置
US6857053B2 (en) * 2002-04-10 2005-02-15 International Business Machines Corporation Method, system, and program for backing up objects by creating groups of objects
US7693998B2 (en) 2003-06-30 2010-04-06 Microsoft Corporation System and method for message-based scalable data transport
US7720973B2 (en) 2003-06-30 2010-05-18 Microsoft Corporation Message-based scalable data transport protocol

Also Published As

Publication number Publication date
US7693998B2 (en) 2010-04-06
CN100593306C (zh) 2010-03-03
JP2005025758A (ja) 2005-01-27
KR20050002604A (ko) 2005-01-07
ATE390789T1 (de) 2008-04-15
CN1578280A (zh) 2005-02-09
EP1494424A1 (de) 2005-01-05
US20040267935A1 (en) 2004-12-30
DE602004012660D1 (de) 2008-05-08
EP1494424B1 (de) 2008-03-26

Similar Documents

Publication Publication Date Title
DE602004012660T2 (de) System und Verfahren für einen nachrichtenorientierten anpassungsfähigen Datentransport
DE60111551T2 (de) Mechanismus zur vervollständigung von nachrichten im speicher
DE60114097T2 (de) Verfahren und System zur Verbesserung der Netzleistungsfähigkeit unter Verwendung eines leistungssteigernden Proxies
DE602005001815T2 (de) Verfahren zur effizienten Mehrfachverbreitung von Inhalten in einem Peer-to-peer Netzwerk
DE60019640T2 (de) Digitales Rechnersystem und Verfahren zur Beantwortung von über ein externes Netzwerk empfangenen Anfragen
DE112013000398B4 (de) Multisprung-Fehlerbehebung
DE69934124T2 (de) Verfahren und vorrichtung für wiederversuch, versagen und wiederanlauf einer eingang/ausgangsverbindung in einem computernetz
DE69628631T2 (de) Dateneingangs/-ausgangsvorrichtung durch Referenzierung zwischen zentralen Verarbeitungseinheiten und Ein-/Ausgabevorrichtungen
DE602005003142T2 (de) Vorrichtung und verfahren zur unterstützung von verbindungsherstellung in einem offload der netzwerkprotokollverarbeitung
DE602004011638T2 (de) Verringern von Pufferanforderungen in einem Nachrichtenübermittlungssystem
DE602004010703T2 (de) Eine persistente und zuverlässige sitzung, die neztwerkkomponenten unter verwendung eines verkapselungsprotokolls sicher durchläuft
DE69812777T2 (de) Verbindung von Ethernetkompatiblen Netzwerken
DE69433293T2 (de) Netzwerkübertragungsverfahren für Systeme mit virtuellem Speicher
DE19740547B4 (de) Vorrichtung und Verfahren zum Sicherstellen sicherer Kommunikation zwischen einer anfordernden Entität und einer bedienenden Entität
DE60316587T2 (de) Integrierter schaltkreis und verfahren zum erstellen von transaktionen
DE60128007T2 (de) Vorrichtung und verfahren zur sicherheitsbearbeitung von kommunikationspaketen
Nahum et al. Performance issues in parallelized network protocols
DE60201682T2 (de) Anordnung zur erzeugung mehrerer virtueller warteschlangenpaare aus einer komprimierten warteschlange auf der basis gemeinsamer attribute
DE69928408T2 (de) Virtuelle transportschicht-schnittstelle und nachrichten untersystem für hochgeschwindigkeit-datenübertragung zwischen heterogenen computersystemen
DE60038448T2 (de) Vorrichtung und verfahren zur hardware-ausführung oder hardware-beschleunigung von betriebssystemfunktionen
US20100185586A1 (en) Message-based scalable data transport protocol
DE19924922A1 (de) System und Verfahren für Nachrichtenübermittlung zwisfchen Netzwerkknoten, die durch parallele Verbindungen verbunden sind
DE10205108A1 (de) System und Verfahren zum Zugreifen auf Softwarekomponenten in einer verteilten Netzwerkumgebung
DE60316419T2 (de) Serialisierung von eine Verteiltenapplikation einer Router
DE60031665T2 (de) System und verfahren zur dateienfernübertragung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition