HK1069495B - Reducing buffer requirements in a messaging system - Google Patents

Reducing buffer requirements in a messaging system Download PDF

Info

Publication number
HK1069495B
HK1069495B HK05101826.3A HK05101826A HK1069495B HK 1069495 B HK1069495 B HK 1069495B HK 05101826 A HK05101826 A HK 05101826A HK 1069495 B HK1069495 B HK 1069495B
Authority
HK
Hong Kong
Prior art keywords
message
message object
recited
streamed
handlers
Prior art date
Application number
HK05101826.3A
Other languages
English (en)
French (fr)
Chinese (zh)
Other versions
HK1069495A1 (en
Inventor
Eric B. Christensen
Douglas A. Walter
Michael J. Coulson
Kenneth D. Wolf
Original Assignee
微软公司
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
Priority claimed from US10/401,220 external-priority patent/US7185060B2/en
Application filed by 微软公司 filed Critical 微软公司
Publication of HK1069495A1 publication Critical patent/HK1069495A1/en
Publication of HK1069495B publication Critical patent/HK1069495B/en

Links

Claims (28)

  1. Verfahren in einem Datenübertragungssystem (messaging system) mit einer gegebenen Puffergröße zum Senden oder Empfangen von Nachrichten (100, 300, 400, 500, 600) über einen oder mehrere Nachrichtentransporte (message transports), wobei das Verfahren zum Bearbeiten einer Nachricht ist, das zumindest für einen Teil der Nachricht die Puffererfordernisse reduziert, und wobei das Verfahren Schritte umfasst zum:
    Bereitstellen (720) eines oder mehrerer Nachrichtenhandler (332-336, 342-346), von denen jeder eine entsprechende Verarbeitungsfunktion (432A - 436A) identifiziert, die auf mindestens einem gestreamten Teil (120, 420, 520, 620) des Inhaltes eines Nachrichtenobjekts durchgeführt werden soll;
    Bereitstellen (730) einer Nachrichtenpipeline (330, 340), die eine geordnete Sammlung von dem einen oder den mehreren Nachrichtenhandlern umfasst; und
    Verarbeiten (740) des Nachrichtenobjekts mit dem einen oder den mehreren Nachrichtenhandlern aus der Nachrichtenpipeline, wobei mindestens ein Nachrichtenhandler den mindestens einen gestreamten Teil des Nachrichtenobjekts mit seiner entsprechenden Verarbeitungsfunktion verkapselt und wobei jede Verarbeitungsfunktion, die den mindestens einen gestreamten Teil verkapselt, zu einem zukünftigen Zeitpunkt durchgeführt wird, wenn der mindestens eine gestreamte Teil geschrieben oder gelesen wird, ohne dass der mindestens eine gestreamte Teil des Nachrichtenobjekts in einem Puffer zwischengespeichert wird.
  2. Verfahren nach Anspruch 1, wobei der Schritt des Bereitstellens einer Nachrichtenpipeline den Vorgang des Identifizierens und Ordnens (732) des einen oder der mehreren Nachrichtenhandler umfasst.
  3. Verfahren nach Anspruch 1, wobei das Nachrichtenobjekt einen oder mehrere Anhangsteile umfasst.
  4. Verfahren nach Anspruch 1, wobei der Schritt des Verarbeitens des Nachrichtenobjekts das Aufrufen des einen oder der mehreren Nachrichtenhandler aus der Nachrichtenpipeline einschließt, und wobei das Aufrufen stattfindet, bevor ein Datenstrom dem mindestens einen Datenstromteil des Nachrichtenobjekts zugewiesen wird (752).
  5. Verfahren nach Anspruch 1, wobei das Datenübertragungssystem ein Endpunkt ist, und das Verfahren des Weiteren einen Schritt zum Empfangen (790) des Nachrichtenobjekts von einem anderen Endpunkt oder einem dazwischenliegenden Punkt (530) umfasst, und wobei der Schritt des Empfangens des Nachrichtenobjekts verursacht, dass die mindestens eine Verarbeitungsfunktion auf den mindestens einen gestreamten Teil des Nachrichtenobjekts angewandt wird.
  6. Verfahren nach Anspruch 1, wobei das Nachrichtenobjekt einen oder mehrere nichtgestreamte Teile (112-116, 510) umfasst, und wobei das Verfahren des Weiteren einen Schritt zum Zwischenspeichern (760) des einen oder der mehreren nichtgestreamten Teile umfasst.
  7. Verfahren nach Anspruch 1, wobei das Datenübertragungssystem einen Nachrichtenkonsumenten umfasst, und wobei das Verfahren des Weiteren einen Vorgang des Zwischenspeicherns auf Abfrage durch den Nachrichtenkonsumenten von dem mindestens einen gestreamten Teil des Nachrichtenobjekts umfasst.
  8. Verfahren nach Anspruch 1, das des Weiteren einen Schritt des Duplizierens (664) des Nachrichtenobjekts zum Liefern an eine Vielzahl von Endpunkten umfasst, ohne dass der mindestens eine gestreamte Teil des Nachrichtenobjekts in einem Puffer zwischengespeichert wird.
  9. Verfahren nach Anspruch 1, wobei eine Vielzahl von Nachrichtenpipelines bereitgestellt werden, und wobei das Verfahren des Weiteren einen Schritt zum Verarbeiten des Nachrichtenobjekts mit jedem des einen oder der mehreren Nachrichtenhandler aus jeder Nachrichtenpipeline umfasst.
  10. Verfahren nach Anspruch 9, wobei mindestens eine (340) der Nachrichtenpipelines in einer anderen Nachrichtenpipeline (330) verschachtelt ist.
  11. Verfahren nach Anspruch 1, wobei das Datenübertragungssystem ein Endpunkt ist, und wobei das Verfahren des Weiteren den Schritt des Sendens (780) des Nachrichtenobjekts an einen anderen Endpunkt umfasst, und wobei der Schritt des Sendens des Nachrichtenobjekts verursacht, dass die mindestens eine Verarbeitungsfunktion auf den mindestens einen gestreamten Teil des Nachrichtenobjekts angewandt wird.
  12. Verfahren nach Anspruch 1, wobei das Bereitstellen eines oder mehrerer Nachrichtenhandler das Definieren (722) des einen oder der mehreren Nachrichtenhandler umfasst; wobei das Bereitstellen der Nachrichtenpipeline das Identifizieren (732) und das Ordnen des einen oder der mehreren Nachrichtenhandler umfasst, die in einer konfigurierbaren Nachrichtenpipeline eingeschlossen sein sollen; und wobei das Verarbeiten des Nachrichtenobjekts das Aufrufen (742) des einen oder der mehreren Nachrichtenhandler aus der Nachrichtenpipeline umfasst, um das Nachrichtenobjekt zu verarbeiten.
  13. Verfahren nach Anspruch 12, wobei das Datenübertragungssystem ein Endpunkt ist, und wobei das Verfahren des Weiteren einen Vorgang des Schreibens (664, 782) des Nachrichtenobjekts auf einen Nachrichtentransportdatenstrom umfasst, wobei der Vorgang des Schreibens des Nachrichtenobjekts auf den Transportdatenstrom verursacht, dass die mindestens eine Verarbeitungsfunktion auf den mindestens einen gestreamten Teil des Nachrichtenobjekts angewandt wird.
  14. Verfahren nach Anspruch 12, wobei das Datenübertragungssystem einen Nachrichtenkonsumenten umfasst, und wobei das Verfahren des Weiteren einen Vorgang des Zwischenspeicherns auf Abfrage durch den Nachrichtenkonsumenten von dem mindestens einen gestreamten Teil des Nachrichtenobjekts umfasst.
  15. Verfahren nach Anspruch 12, wobei eine Vielzahl von Nachrichtenpipelines definiert wird, und wobei das Verfahren des Weiteren einen Vorgang zum Aufrufen des einen oder der mehreren Nachrichtenhandler von jeder Nachrichtenpipeline umfasst, um das Nachrichtenobjekt zu verarbeiten.
  16. Verfahren nach Anspruch 15, wobei mindestens eine der Nachrichtenpipelines in einer anderen Nachrichtenpipeline verschachtelt ist.
  17. Verfahren nach Anspruch 12, wobei das Nachrichtenobjekt einen oder mehrere Anhangsteile umfasst.
  18. Verfahren nach Anspruch 12, wobei das Aufrufen des einen oder der mehreren Nachrichtenhandler aus der Nachrichtenpipeline stattfindet, bevor ein Datenstrom dem mindestens einen Datenstromteil des Nachrichtenobjekts zugewiesen wird (752).
  19. Verfahren nach Anspruch 12, wobei das Datenübertragungssystem ein Endpunkt ist, und wobei das Verfahren des Weiteren den Vorgang des Lesens (792) des Nachrichtenobjekts aus einem Nachrichtentransportdatenstrom umfasst, wobei der Vorgang des Lesens des Nachrichtenobjekts aus dem Transportdatenstrom verursacht, dass die mindestens eine Verarbeitungsfunktion auf den mindestens einen gestreamten Teil des Nachrichtenobjekts angewandt wird.
  20. Verfahren nach Anspruch 12, wobei das Nachrichtenobjekt einen oder mehrere nichtgestreamte Teile umfasst, und wobei das Verfahren des Weiteren einen Vorgang des Speicherns (762) des einen oder der mehreren nichtgestreamten Teile in einem Puffer umfasst.
  21. Verfahren nach Anspruch 12, wobei das Verfahren des Weiteren einen Vorgang des Schreibens (664) des Nachrichtenobjekts auf eine Vielzahl von Transportdatenströmen zum Liefern an eine Vielzahl von Endpunkten umfasst, ohne dass der mindestens eine gestreamte Teil des Nachrichtenobjekts in einem Puffer zwischengespeichert wird.
  22. Verfahren nach Anspruch 1 oder 12, wobei die Pipeline eine Vielzahl von Nachrichtenhandlern umfasst, und wobei jeder der Vielzahl von Nachrichtenhandlern den mindestens einen gestreamten Teil des Nachrichtenobjekts mit seiner entsprechenden Verarbeitungsfunktion nacheinander verkapselt, so dass eine Vielzahl von Verarbeitungsfunktionen schichtweise (layered) auf den mindestens einen Datenstromteil des Nachrichtenobjekts gelegt wird.
  23. Verfahren nach Anspruch 1 oder 12, wobei das Nachrichtenobjekt einen oder mehrere Kopfteile (header portions) und mindestens einen Hauptteil (body portions) umfasst, und wobei der Hauptteil den mindestens einen gestreamten Teil des Nachrichtenobjekts umfasst.
  24. Verfahren nach Anspruch 23, wobei das Nachrichtenobjekt ein SOAP-Nachrichtenobjekt umfasst.
  25. Verfahren nach Anspruch 24, wobei das Datenübertragungssystem ein dazwischenliegendes System (530) (intermediary) ist, das für das Routing des Nachrichtenobjekts verantwortlich ist.
  26. Verfahren nach Anspruch 25, wobei das dazwischenliegende System mindestens einen Header für das Routen der Nachricht puffert, ohne den mindestens einen gestreamten Teil des Nachrichtenobjekts zwischenzuspeichern.
  27. Verfahren nach Anspruch 1 oder 12, wobei das Verfahren des Weiteren den Vorgang des Erzeugens (712) oder Spezifizierens (710) einer Nachrichtenobjektsdefinition für das Nachrichtenobjekt umfasst, und wobei die Nachrichtenobjektsdefinition den mindestens einen gestreamten Teil und eine entsprechende Datenstrom-orientierte Schnittstelle für das Nachrichtenobjekt definiert.
  28. Computerprogrammerzeugnis, das ein oder mehrere computerlesbare Datenträger umfasst, die computerausführbare Instruktionen tragen, die eingerichtet sind, alle Schritte des Verfahrens gemäß einem der Ansprüche 1 bis 27 zu implementieren.
HK05101826.3A 2003-03-26 2005-03-02 Reducing buffer requirements in a messaging system HK1069495B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/401,220 US7185060B2 (en) 2003-03-26 2003-03-26 Message processing pipeline for streams
US401220 2003-03-26

Publications (2)

Publication Number Publication Date
HK1069495A1 HK1069495A1 (en) 2005-05-20
HK1069495B true HK1069495B (en) 2008-08-01

Family

ID=

Similar Documents

Publication Publication Date Title
EP1463262B1 (de) Verringern von Pufferanforderungen in einem Nachrichtenübermittlungssystem
US8805948B2 (en) Intelligent network interface system and method for protocol processing
US6629141B2 (en) Storing a frame header
US9729664B2 (en) System and method for managing connections between a client and a server
KR100437146B1 (ko) 지능망 인터페이스 장치 및 통신 가속 시스템
JP5066702B2 (ja) インテリジェントネットワークストレージインタフェースシステム及びデバイス
US20040205331A1 (en) Apparatus and method for allocating resources within a security processing architecture using multiple groups
US20100202287A1 (en) System and method for network optimization by managing low priority data transfers
US6983382B1 (en) Method and circuit to accelerate secure socket layer (SSL) process
US7882257B2 (en) Stream processing node
US20250158953A1 (en) In-line transmission control protocol processing engine using a systolic array
US7580410B2 (en) Extensible protocol processing system
HK1069495B (en) Reducing buffer requirements in a messaging system
Gettys et al. MUX protocol specification
US20040237089A1 (en) Separation of data and instruction for improving system performance in a multiple process environment
US20020085574A1 (en) Stream switch fabric
JP2005167870A (ja) データ処理方法およびデータ処理装置
CN116208349A (zh) 一种网络访问的监控方法与系统