KR101137132B1 - 맞춤형 태그기반 프로토콜에서의 참조에 의한 전송 - Google Patents

맞춤형 태그기반 프로토콜에서의 참조에 의한 전송 Download PDF

Info

Publication number
KR101137132B1
KR101137132B1 KR1020040094649A KR20040094649A KR101137132B1 KR 101137132 B1 KR101137132 B1 KR 101137132B1 KR 1020040094649 A KR1020040094649 A KR 1020040094649A KR 20040094649 A KR20040094649 A KR 20040094649A KR 101137132 B1 KR101137132 B1 KR 101137132B1
Authority
KR
South Korea
Prior art keywords
message
tag
buffer
based message
receiver
Prior art date
Application number
KR1020040094649A
Other languages
English (en)
Other versions
KR20050049371A (ko
Inventor
콘로이데이비드지.
크리산타코폴로스조지오스
닐센헨리크프리스티크
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
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20050049371A publication Critical patent/KR20050049371A/ko
Application granted granted Critical
Publication of KR101137132B1 publication Critical patent/KR101137132B1/ko

Links

Images

Classifications

    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/289Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Communication Control (AREA)

Abstract

본 발명의 다양한 실시예에서, 맞춤형 태그기반 메시지(customizable, tag-based message)는 한 디바이스에서 다른 디바이스로 전기적으로 전송되는 정보 단위이며, 이는 하나 이상의 정보에 대한 하나 이상의 참조를 포함할 수 있으며, 이들 정보는 맞춤형 태그기반 메시지내에 포함될 필요가 없다. 맞춤형 태그기반 메시지는 소정의 적절한 프로토콜을 따를 수 있다. 이러한 적절한 프로토콜 중 하나는 SOAP와 같은 맞춤형 태그기반 프로토콜을 포함할 수 있지만, 다른 프로토콜이 이용될 수도 있다.
Figure R1020040094649
맞춤형 태그기반 메시지, 참조, 헤더, 본문

Description

맞춤형 태그기반 프로토콜에서의 참조에 의한 전송{SEND BY REFERENCE IN A CUSTOMIZABLE, TAG-BASED PROTOCOL}
도 1은 메시지 송신기와 메시지 수신기 사이에 정보를 전송하기 위하여 SOAP 메시지내에 데이터를 포함하는 통상적인 시스템을 도시하는 블럭도.
도 2a는 SOAP 메시지내에 정보를 포함하지 않고서 참조에 의해서 메시지 송신기와 메시지 수신기 사이에 정보를 전송하는 예시적인 시스템을 도시하는 블럭도.
도 2b는 SOAP 메시지내에 정보를 포함하지 않고서 참조에 의해서 메시지 송신기, 메시지 수신기 및 중개기 사이에 정보를 전송하는 다른 예시적인 시스템을 도시하는 블럭도.
도 2c는 SOAP 메시지내에 정보를 포함하지 않고서 참조에 의해서 메시지 송신기, 메시지 수신기 및 중개기 사이에 정보를 전송하는 또 다른 예시적인 시스템을 도시하는 블럭도.
도 3은 SOAP 메시지내에 정보를 포함할 필요가 없이, 그 정보에 대한 참조를 포함하는 예시적인 SOAP 메시지를 도시하는 구조도.
도 4a는 SOAP 메시지내의 참조에 의해서 정보를 전송하는 예시적인 네트워크 시스템을 도시하는 블럭도.
도 4b는 SOAP 메시지내의 참조에 의해서 정보를 전송하는 다른 예시적인 네트워크 시스템을 도시하는 블럭도.
도 5a 내지 도 5i는 본 발명의 일 실시예에 따라, 맞춤형 태그기반 프로토콜에서 참조에 의해서 정보를 전송하는 방법을 도시하는 처리도.
본 발명은 전반적으로 맞춤형 태그기반 메시지(customizable, tag-based message)에 관한 것으로, 특히 맞춤형 태그기반 프로토콜을 통한 서비스 중 맞춤형 태그기반 메시지에서의 참조에 의한 정보 전송 수단에 관한 것이다.
SOAP는 원래 "단순 객체 액세스 프로토콜(Simple Object Access Protocol)"을 의미하였지만, 시간이 지나면서, SOAP는 단지 객체에 액세스하는 것에서 벗어나 일반적인 확장형 메시징 프레임워크로 발전하였다. 비록 SOAP에 대한 대중적인 네트워크 표현은 웹상에서 구조화되고 타입화된 정보를 교환하도록 의도된 XML 기반 프로토콜이지만, SOAP는 다양한 현존 인터넷 프로토콜과 결합하여 이용될 수 있으며, 메시징 시스템에서 원격 프로시저 호출(RPC)에 이르는 넓은 범위의 애플리케이션을 지원할 수 있다.
간단히 말하면, SOAP는 메시지를 메시지 송신기(102)와 같은 A 지점으로부터 메시지 수신기(104)와 같은 B 지점으로 이동시키는 길을 규정한다. 도 1을 참조하면, SOAP는 개별적인 일방향 메시지를 처리하는 모델을 규정한다. 다수의 메시지 를 전체 메시지 교환으로 결합할 수도 있다. 도 1은 간단한 일방향 메시지가 메시지 송신기(102)에 의해서 송신되는 시스템(100)을 도시하는데, 여기서 메시지 송신기는 메시지 수신기(104)로부터의 응답을 요구하지 않는다. 그러나, 수신기(104)는 메시지 송신기(102)에 응답을 전송할 수 있다. SOAP는 요청/응답이 단지 하나인 어떠한 수의 메시지 교환 패턴도 가능하게 한다. 다른 예는 통지(notification) 및 장시간의 피어 투 피어 대화(peer-to-peer conversation)를 포함한다.
SOAP 메시징 프레임워크는 상호운영성이 오랫동안 해결하기 어려운 문제였던 이질적인 환경에서의 XML 메시지 교환을 돕는다. SOAP 메시징 프레임워크는 XML 메시지(106)와 같은 임의의 XML 메시지의 패키징(packaging)을 위한, 메시지 송신기(102) 및 메시지 수신기(104)와 같은 시스템간의 전송을 위한 XML 요소의 군을 규정한다. 프레임워크는 엔빌로프(envelope), 헤더(header) 및 본문(body)과 같은 몇몇 핵심 XML 요소를 포함한다.
엔빌로프 요소(개시 태그(106A) <SOAP:ENVELOPE>와 이에 수반되는 종료 태그(106J) </SOAP:ENVELOPE>로 표현됨)는 항상 SOAP 메시지(106)와 같은 SOAP 메시지의 루트 요소이다. 이것은 메시지 송신기(102) 및 메시지 수신기(104)가 간단히 루트 요소의 명칭(name)을 확인함으로써 SOAP 메시지를 식별하는 것을 용이하게 한다.
엔빌로프 요소는 선택사항인 헤더 요소를 포함하는데, 이는 개시 태그(106C) <SOAP:HEADER>와 이에 수반되는 종료 태그(106E) </SOAP:HEADER>에 의해서 표현된 다. 본문 요소와는 달리, 헤더 요소는 제어 정보의 일반적인 컨테이너(a generic container)이다. 이것은 (SOAP 명칭 공간이 아닌)소정의 명칭 공간으로부터의 어떠한 수의 요소라도 포함할 수 있을 것이다. 헤더 요소내에 위치한 요소는 헤더 블럭(header block)으로 불리운다. 다른 프로토콜에서와 마찬가지로, 헤더 블럭은 페이로드(payload) 처리에 영향을 미치는 정보를 포함한다. 헤더 블럭에는 mustUnderstand라는 명칭의 전역 SOAP 속성(a global SOAP attribute)이 주석으로 달릴 수 있는데, 이는 메시지 및 다른 속성이 처리되기 전에 수신기가 헤더를 이해할 것이 요청되는지 여부를 나타낸다.
헤더 요소는 필수 본문 요소에 앞서며, 이 필수 본문 요소는 개시 태그(106F) <SOAP:BODY>와 이에 수반하는 종료 태그(106H) </SOAP:BODY>로 표현된다. 본문 요소는 메시지 페이로드를 나타내며, 페이로드로서, 본문 요소는 소정의 명칭 공간으로부터 어떠한 수의 요소도 포함할 수 있는 일반적인 컨테이너이다. 이것은 메시지 송신기(102)가 SOAP 메시지(106)내에 포함된 데이터를 메시지 수신기(104)에 전송하려고 하는 경우에 종국적으로 데이터가 어디에 포함될 것인가에 관한 것이다. SOAP 메시지내에 각기 제어 및 데이터 정보를 포함하도록 하는 이러한 최소의 헤더 및 본문 요소의 설계는 이질적인 환경들의 통신을 허용하는 간단한 아키텍처를 구성하는 것을 돕는다. 그러나, 이러한 설계는 데이터 집중 통신(data intensive communications)에서의 SOAP 프로토콜의 애플리케이션을 방해하기도 한다. 도 1은 이러한 문제점 및 다른 문제점을 보다 상세히 설명한다.
메시지 송신기(102)가 통신뿐만 아니라 (달력, 메모, 데이터베이스, 계산기 등의)개인적인 기능과 같은 특정 기능을 제공하도록 의도된 경량의 컴퓨터인 개인용 정보 단말기(PDA)라고 가정하자. 보다 향상된 개인용 정보 단말기는 음악 재생과 같은 멀티미디어 특성 또한 제공한다. 많은 개인용 정보 단말기는 입력을 위해서 키보드 또는 마우스 대신에 펜 또는 다른 포인팅 디바이스(pointing device)에 의존하며, 몇몇 개인용 정보 단말기는 타이핑하기에 매우 작은, 펜 또는 포인팅 디바이스와 함께 이용되는 키보드를 제공한다. 데이터 저장을 위하여, 개인용 정보 단말기는 전력 소모가 심한 디스크 드라이브 대신에 플래쉬 메모리에 의존한다. 또한, 메시지 수신기(104)는 음성의 디지털 부호화를 포함하는 메시지를 수용하여 메시지 수신기(104)의 사용자가 들을 수 있을 만한 크기의 소리를 발생시키는 한 쌍의 인텔리전트 스피커라고 가정하자.
(음악을 재생할 수 있는 개인용 정보 단말기와 같은)메시지 송신기(102)가 노래를 디지털 음성 형태로 메시지 수신기(104)에 전송하는 상황을 고려하자. SOAP 프로토콜을 이용하여, 메시지 송신기(102)는 본문 요소(106F, 106H 태그에 의해서 표현됨)내에 디지털 음성, 즉 원래 노래를 나타내는 ASCII 데이터를 삽입한다. 디지털 음성은 전형적으로 음질을 상당히 저하시키지 않고서 디지털 음성 화일의 크기를 줄이기 위해서 MP3와 같은 부호화 체계를 이용하여 압축되는 반면에, ASCII는 압축 체계가 아니다. 필수사항은 아니지만, 대다수의 SOAP 메시지가 전형적으로 UTF-8 또는 UTF-16과 같은 몇몇 텍스트 지향 부호화(text-oriented encoding)를 이용하는 XML/1.0 문서로서 교환된다. 대부분의 디지털 음성 파일은 평균 약 3 메가바이트의 데이터로 압축된다. 이러한 디지털 음성 파일을 SOAP 메 시지내에 포함될 수 있도록하기 위해서 XML/1.0에 의해서 지원되는 표현으로 변환하게 되면 SOAP 메시지의 크기가 상당히 커지게 될 것이다.
그러나, 보다 중요한 것은 데이터가 본문 요소내에 포함되는 경우에는 수신기에서의 메시지 처리가 개시될 수 있기 전에 데이터가 전체로서 교환되어야 한다는 문제이다. 이것이 바람직하지 못한 많은 경우가 있다. 수신기는 송신기에 의해서 제공되는 형태로는 데이터를 처리할 수 없을 수도 있어서, 송신기에 상이한 형태로 데이터를 제공해 줄 것을 요청할 것이다. 따라서, 데이터가 메시지의 본문내에 포함되는 경우에는 데이터는 2회 전송되는 결과가 될 것이다. 수신기는 메시지내의 모든 데이터가 필요하지는 않을 수도 있다. 그러나, 데이터가 메시지의 본문내에 포함되는 경우라면, 수신기는 선택의 여지가 없이 모든 데이터를 수신하여 수신기가 필요로 하지 않는 부분은 버려야할 것이다. 혹은, 네트워크내의 결함이 메시지의 상당량이 교환된 이후에 메시지가 왜곡되도록 할 수도 있다. 따라서, 데이터가 메시지의 본문내에 포함되는 경우라면, 메시지를 전체로서 교환하는 수 밖에 다른 대안이 없다. 이러한 모든 상황에서, 메시지의 본문내에 데이터를 포함하는 것은 네트워크 자원의 불필요한 소비를 야기한다.
본문 요소내의 많은 양의 데이터에 기인한 대량 SOAP 메시지는 송신 프로세스(sending process), 전송 프로세스(transferring process) 및 수신 프로세스(receiving process)에서의 성능을 저하시킨다. SOAP 프로토콜이 공유된 개방 웹 기본구조에 기반하는 풍부하고 자동화된 웹 서비스를 가능하게끔 도운 측면이 있지만, SOAP 메시지는 원래 멀티미디어 데이터와 같은 많은 양의 데이터를 전송하도록 의도된 것은 아니었다. SOAP 메시지의 헤더내의 제어 정보를 SOAP 메시지의 본문내의 데이터 정보로부터 분리하기 위한 해결 방안이 없다면, SOAP 프로토콜은 자신의 애플리케이션에 한정될 것이며, 결국 사용자들은 저하된 성능때문에 더 이상 시스템(100)이 원하는 컴퓨팅 결과를 제공할 것이라는 신뢰를 더 이상 가지지 못하게 되어 시스템(100)에 대한 시장에서의 요구가 줄어들 것이다. 따라서, 현재의 시스템과 관련된 상기한 문제점 또는 다른 문제점들을 피하거나 줄이면서 참조에 의해서 정보를 전송하는 방법 및 시스템에 대한 요구가 존재하게 된다.
본 발명에 따르면, 맞춤형 태그기반 프로토콜에서 참조에 의해서 전송하는 시스템, 방법 및 컴퓨터 판독가능 매체가 제공된다. 본 발명의 시스템 형태는 네트워크 시스템을 포함한다. 네트워크 시스템은 제 1 버퍼에의 참조를 포함하는 맞춤형 태그기반 메시지를 전송하는 메시지 송신기를 포함한다. 네트워크 시스템은 맞춤형 태그기반 메시지를 수신하는 메시지 수신기를 더 포함한다. 이 메시지 수신기는 맞춤형 태그기반 메시지내의 참조를 처리하여 제 1 버퍼에 저장된 정보가 제 2 버퍼에 전송되거나, 제 2 버퍼에 저장된 정보가 제 1 버퍼에 전송되도록 할 수 있다.
본 발명의 다른 시스템 형태는 네트워크 시스템을 포함한다. 네트워크 시스템은 제 1 버퍼에의 참조를 포함하는 맞춤형 태그기반 메시지를 전송하는 메시지 송신기를 포함한다. 네트워크 시스템은 맞춤형 태그기반 메시지를 인터셉트(intercept)하는 중개기를 더 포함한다. 네트워크 시스템은 상기 중개기로부터 맞 춤형 태그기반 메시지를 수신하는 메시지 수신기를 더 포함한다. 메시지 수신기는 맞춤형 태그기반 메시지의 참조를 처리하여 다른 버퍼내의 정보가 제 2 버퍼로 전송되거나, 제 2 버퍼에 저장된 정보가 다른 버퍼로 전송되도록 할 수 있다.
본 발명의 컴퓨터 판독가능 매체 형태는 참조에 의해서 정보를 전송하는 동작을 처리하는 네트워크 시스템에 의해서 이용되기 위해 컴퓨터 판독가능 매체에 저장된 맞춤형 태그기반 데이터 구조를 포함한다. 이러한 데이터 구조는 제어 정보를 표시하는 헤더 태그를 포함한다. 헤더 태그는 버퍼를 나타내는 서비스를 표시하는 서비스 태그를 포함한다. 서비스 태그는 버퍼를 나타내는 서비스의 URI를 표시하는 URI 속성 및 서비스의 URI를 통한 버퍼와 관련된 식별자 속성을 포함한다. 이러한 데이터 구조는 데이터 정보를 표시하는 본문 태그를 더 포함하며, 본문 태그는 식별자 속성을 버퍼를 참조하는 데에 이용할 수 있다.
본 발명의 추가적인 시스템 형태는 네트워크 시스템을 포함한다. 네트워크 시스템은 CPU, 제 1 버퍼를 포함하는 메모리 및 맞춤형 태그기반 메시지내의 참조를 처리하여 CPU가 복사 명령을 실행할 것을 요청하지 않고서도 제 1 버퍼에 저장된 정보가 다른 버퍼로 전송되거나, 다른 버퍼에 저장된 정보가 제 1 버퍼로 전송될 수 있는 네트워크 인터페이스 카드를 포함한다.
본 발명의 방법 형태는 맞춤형 태그기반 프로토콜에서 참조에 의한 전송을 위한 컴퓨터 실행 방법을 포함한다. 컴퓨터 실행 방법은 맞춤형 태그기반 메시지가 전송 컨텍스트를 포함하도록 준비하는 단계를 포함할 수 있다. 전송 컨텍스트는 맞춤형 태그기반 메시지내에 정보를 포함할 필요없이, 정보를 저장하는 제 1 버 퍼에의 참조를 포함한다. 컴퓨터 수행 방법은 맞춤형 태그기반 메시지를 네트워크에 전송하는 단계를 더 포함한다.
본 발명의 다른 컴퓨터 판독가능 매체 형태는 맞춤형 태그기반 프로토콜에서 참조에 의해 전송하는 방법을 수행하는 컴퓨터 실행가능 명령을 가지는 컴퓨터 판독가능 매체를 포함한다. 이러한 방법은 맞춤형 태그기반 메시지가 전송 컨텍스트를 포함하도록 준비하는 단계를 포함한다. 전송 컨텍스트는 맞춤형 태그기반 메시지내에 정보를 포함할 필요없이, 정보를 저장하는 제 1 버퍼에의 참조를 포함한다. 이러한 방법은 맞춤형 태그기반 메시지를 네트워크에 전송하는 단계를 더 포함한다.
본 발명의 다양한 실시예에서, 맞춤형 태그기반 메시지는 한 디바이스에서 다른 디바이스로 전기적으로 전송되는 정보 단위이며, 이는 하나 이상의 정보에 대한 하나 이상의 참조를 포함하여 이들 정보가 맞춤형 태그기반 메시지내에 포함될 필요가 없도록 할 수 있을 것이다. 맞춤형 태그기반 메시지는 소정의 적절한 프로토콜을 따를 수 있을 것이다. 이러한 소정의 적절한 프로토콜은 SOAP와 같은 맞춤형 태그기반 프로토콜을 포함하며, 다른 프로토콜이 이용될 수도 있다. 예시적인 맞춤형 태그기반 메시지는 헤더와 본문으로 나누어지는 하나 이상의 텍스트 블럭을 포함할 수 있다. 정보가 맞춤형 태그기반 언어내에 포함되기에는 그 크기가 너무 큰 경우에는 헤더는 바람직하게 정보에 대한 참조를 포함한다. 참조는 소정의 적절한 형태로부터 생성될 수 있다. 이러한 소정의 적절한 형태는 URI(Uniform Resource Identifier)를 포함하며, 다른 형태가 이용될 수도 있다. 헤더내의 참조는 그 범위가 맞춤형 태그기반 언어에 한정되는 명칭과 관련될 수도 있다. 통상적으로, 헤더는 URI를 어떻게 분석할 것인가에 대한(결과적으로는 URI에 의해서 식별된 버퍼를 어떻게 찾을 것인가에 대한) 힌트를 포함한다. 맞춤형 태그기반 언어의 본문은 정보를 참조하는 데에 URI 대신에 이러한 명칭을 이용할 수 있다. 이러한 명칭은 정보에 대한 우회로(an indirection)로서 작용하여, 본문에 대한 보안을 이루어 권한이 부여되지 않은 액세스를 방지할 수 있도록 한다. 또한, 이러한 명칭은 URI의 정보에 대한 관계는 영향을 받지 않은 상태로 유지하면서 헤더내에서 URI가 변경될 수 있도록 한다(예컨대, URI는 방화벽과 같은 중개기에 의해서 변경될 수 있음). 이러한 명칭을 사용하지 않는 다양한 실시예에서, URI의 정보에 대한 관계는 변경되지 않은 상태로 유지하는 반면, 힌트(hint)는 중개기에 의해서 변경될 수 있을 것이다. 맞춤형 태그기반 메시지는 물리적 연결을 통해서 송신기로부터 수신기로 직접적으로 라우팅(routing)될 수 있으며, 혹은 맞춤형 태그기반 메시지가 목적지에 도착할 때까지 한 시스템에서 다른 시스템으로 맞춤형 태그기반 메시지를 라우팅하는 하나이상의 중개기를 통하여 전체적으로 또는 부분적으로 전달될 수 있다.
이러한 메시지는 시스템(200)내의 맞춤형 태그기반 메시지(206)에 의해서 설명된다. 도 2a를 살펴보면, 시스템(200)은 메시지 송신기(202) 및 메시지 수신기(204)를 포함한다. 메시지 송신기(202) 및 메시지 수신기(204)는 소정의 적절한 컴퓨터 디바이스로부터 형성될 수 있다. 메시지 송신기(202)를 위한 적절한 컴퓨 터 디바이스는 멀티미디어 정보와 같은 정보의 전송을 발생시키거나 이에 조력하는 컴퓨터 디바이스를 포함한다. 이러한 소정의 적절한 메시지 송신기(202)는 비디오 카메라와 비디오카세트 레코더를 결합하는 작은 이동장치인 캠코더를 포함한다. 메시지 수신기(204)를 위한 적절한 컴퓨터 디바이스는 멀티미디어 정보와 같은 정보를 수신, 처리, 프리젠테이션 또는 디스플레이할 수 있는 컴퓨터 디바이스를 포함한다. 이러한 소정의 적절한 메시지 수신기(204)는 태블릿 PC(a tablet PC)를 포함하는데, 이는 스타일러스(stylus) 또는 디지털 펜을 이용하는 수기된 텍스트의 입력을 위한, 터치 감응식(touch-sensitive) 컴퓨터 스크린 메모장이며, 이는 필기 디바이스뿐만 아니라 주된 퍼스널 컴퓨터로 기능할 수 있다. 시스템(200)은 전송 실패의 경우에 맞춤형 태그기반 메시지(206)와 같은 맞춤형 태그기반 메시지의 향상된 전송을 가능하게 하는데, 이는 실패 지점으로부터 재전송하기 위한 많은 재시도가 가능하기 때문이다.
맞춤형 태그기반 메시지(206)는 루트 태그(206A) <SOAP:ENVELOPE>와 이에 수반하는 종료 태그(206P) </SOAP:ENVELOPE>를 포함한다. 태그 206A 및 206P사이에 는 태그(206C) <SOAP:HEADER>와 이에 수반하는 종료 태그(206E) </SOAP:HEADER> 사이에 규정된 헤더 요소가 포함된다. 헤더 요소는 메시지 송신기(202)로부터 메시지 수신기(204)로 전송된 제어 정보를 포함하도록 의도된다. 헤더 요소는 그 컨텐츠가 본 명세서에서는 논의될 필요가 없음을 나타내는 생략부호("…")를 포함하여 도시되어 있다. 본 발명의 다양한 실시예는 헤더 요소가 맞춤형 태그기반 메시지(206)내에 존재할 것을 요구하지 않는다. 한 쌍의 태그(206G) <SOAP:BODY>와 태그 (206O) </SOAP:BODY>는 맞춤형 태그기반 메시지(206)의 본문 요소를 규정한다. 태그 206G 및 206O 사이에는 태그(206I) <M:MULTIMEDIA>와 이에 수반하는 종료 태그(206M) </M:MULTIMEDIA> 사이에 규정된 멀티미디어 요소가 포함된다. 태그(206I)는 멀티미디어 요소의 명칭 공간을 규정하는 속성 XMLNS:M을 포함한다. 속성 XMLNS:M은 주소 "HTTP://E.ORG/MULTIMEDIA"에서 규정된다. 태그 206I와 206M 사이에 포함된 것은 비디오 요소이며, 이는 라인 206K에서 태그 <M:VIDEO>와 이에 수반하는 종료 태그 </M:VIDEO>에 의해서 규정된다. 비디오 요소는 비디오 정보를 포함하는 대신에, (비디오 정보에 대한)참조를 포함하며, 그 값은 "ID:09233523"이다. 참조값은 버퍼(202A)를 식별하는 URI(202B)이며, 이는 전송될 정보를 포함하거나, 정보를 수신하기 위한 리포지터리(repository)로 동작한다. 상기 예에서, URI(202B)는 버퍼(202A)를 식별하며, 이 버퍼는 메시지 송신기(202)로부터 메시지 수신기(204)로 전송되어야 할 비디오 정보를 포함한다. 메시지 수신기(204)는 정보를 송신 또는 수신하기 위해서 URI(204B)에서 식별가능한 버퍼(204A)를 포함한다.
도 2a에 도시된 다양한 요소들이 도 2b에서도 반복되며, 따라서, 간략히 하기 위하여 이들 요소에 대한 설명은 되풀이되지 않는다. 도 2b는 중개기(208)를 추가적으로 도시한다. 중개기(208)는 메시지 송신기(202)와 메시지 수신기(204) 사이에 자신을 개재시키며(interpose), 맞춤형 태그기반 메시지(206)를 인터셉트(intercept)할 수 있다. 중개기(208)는 맞춤형 태그기반 메시지 송신기와 맞춤형 태그기반 수신기의 역할을 동시에 수행한다. 중개기(208)가 버퍼(204A)로 운반되 는 버퍼(202A)내의 정보가 중개기(208)에 의해서 인터셉트될 것을 요구하지 않는 경우에는, 메시지 수신기(204)는 URI(202B)를 경유하여 버퍼(202B)와 직접 통신하여 버퍼(202A)내의 정보를 판독할 수 있다.
도 2a 및 2b에 도시된 바와 같이 맞춤형 태그기반 메시지(206)는 본 발명의 일 실시예에 따라 정보에 대한 참조를 맞춤형 태그기반 메시지(206)의 본문 요소내에 둔다. 이러한 실시예에서, 헤더는 이용될 필요가 없다. 본 실시예는 맞춤형 태그기반 메시지(206)가 암호화 또는 다른 수단에 의해서 보안이 이루어지지 않는 경우에 특히 유용하다. 본 실시예는 중개기(208)를 거치지 않고서 정보를 버퍼(202A)로부터 판독하거나 버퍼(202A)에 기록하기 위해서 메시지 수신기(204)가 메시지 송신기(202)와 직접 통신할 수 있는 경우에도 이용될 수 있다.
도 2a 및 2b에 도시된 다양한 요소들이 도 2c에서 반복되며, 따라서, 간략히 하기 위하여 이들 요소의 설명은 되풀이되지 않는다. 도 2c는 맞춤형 태그기반 메시지(207) 및 중개기(208)를 위한 스테이징 버퍼(staging buffer)(208A)를 추가적으로 도시한다. 도 2c는 중개기(208)가 맞춤형 태그기반 메시지(207)와 같은 맞춤형 태그기반 메시지와 맞춤형 태그기반 메시지(207)에 의해서 참조되는 정보의 인터셉션(interception)을 요구하는 실시예를 도시한다.
맞춤형 태그기반 메시지에 관해서는, 태그 206C와 206E 사이에는 개시 태그(206R) <R:BUFFER>와 이에 수반하는 종료 태그(206X) </R:BUFFER>에 의해서 규정된 버퍼 요소가 포함된다. 태그(206R)는 "ID1"을 포함하도록 규정된 속성 ID를 포함한다. 속성 ID는 맞춤형 태그기반 메시지(207)에 대한 지역 범위의 명칭이며, 이 는 이후에 맞춤형 태그기반 메시지(207)의 (태그 206G, 206O에 의해서 규정된)본문 요소에서 이용된다. 라인 206T는 버퍼(202A)에의 참조를 포함하는데, 이는 버퍼(202A)의 URI(202B)이다. 라인 206T는 개시 태그 <R:ENDPOINT>와 이에 수반하는 종료 태그 </R:ENDPOINT>에 의해서 규정된 종점 요소를 포함하며, 이들 태그 사이의 컨텐츠는 ID:09233523이며 이는 URI(202B)를 규정한다. 버퍼 요소는 종점 요소를 통하여 속성 ID와 버퍼(202A)의 URI(202B)사이의 관계를 생성한다.
라인 206V는 비디오 요소가 (버퍼(202A)내에 저장된 정보를 포함하는 대신에)이전에 헤더 요소내에서 선언된 속성 ID를 참조에 의해서 포함하도록 규정한다. 속성 ID는 헤더에서 선언된 속성 ID와 관련된 URI가 중개기(208)에 의해서 변경되는 경우일지라도, 버퍼(202A)에 저장된 정보에 대한 맞춤형 태그기반 메시지(207)의 본문 요소에서의 관계를 생성한다. 라인 206V의 비디오 요소는 속성 HREF와 함께 태그 <M:VIDEO>를 규정한다. HREF 속성은 "#ID1"을 포함하도록 규정되는데, 여기서 #은 명칭 ID1이 라인 206T에서 규정된 관련 URI와 함께 헤더내에서 규정됨을 나타내는 구분기호이다.
상기된 바와 같이, 태그 206G와 206O 사이에 규정된 맞춤형 태그기반 메시지(207)의 본문은 권한이 부여되지 않은 액세스를 방지하도록 보안이 이루어질 수 있다. 중개기(208)는 맞춤형 태그기반 메시지(207)의 본문을 처리할 필요가 없다. 중개기(208)는 맞춤형 태그기반 메시지(207)의 헤더 요소내의 정보를 이용해서 스테이징 버퍼(208A)를 생성하여 버퍼(202A)내의 정보가 버퍼(204A)로 직접 전송될 수 없는 상황을 조절할 수 있다. 이러한 상황은 중개기가 메시지 송신기(202)와 메시지 수신기(204) 사이에서 방화벽으로 작용하는 경우를 포함한다.
바람직하게, 스테이징 버퍼(208A)는 URI(208B)를 가져서, 버퍼(202A)가 스테이징 버퍼에게 정보를 통신하고 전송할 수 있다. 그 후에, 중개기(208)는 스테이징 버퍼(208A)가 정보를 버퍼(204A)에 전송하는 것을 가능하게 한다. 메시지 수신기(204)는 스테이징 버퍼(208A)의 URI(208C)을 이용하여 스테이징 버퍼(208A)에 메타 데이터 정보를 문의할 수 있다. 이러한 방식으로 동작하는 중개기(208)의 일례는 상기된 바와 같이 방화벽이다. 방화벽은 조직 네트워크를 인터넷과 같은 다른 네트워크로부터 유입되는 보안이 이루어지지 않은 액세스로부터 보호하도록 의도된 보안 시스템이다. 방화벽은 조직 네트워크내의 메시지 송신기(202)와 같은 컴퓨터가 메시지 수신기(204)와 같은 네크워크 외부의 컴퓨터와 직접 통신하는 것을 방지한다. 그 역인 경우도 마찬가지이다. 모든 통신은 조직 네트워크의 경계에서 중개기(208)를 통해서 라우팅되며, 방화벽으로 동작하는 중개기(208)는 버퍼(202A)에 저장된 정보와 같은 특정한 메시지가 경계를 통과하도록 두는 것이 안전한지 여부를 결정한다.
도 3은 메시지 송신기(202)로부터 메시지 수신기(204)로 보내어질 수 있는, 하나 이상의 중개기(208)에 의해서 인터셉트될 수도 있는 예시적인 맞춤형 태그기반 메시지(300)의 구조도를 도시한다. 맞춤형 태그기반 메시지(300)는 루트 태그(302) <SOAP:ENVELOPE>와 이에 수반하는 종료 태그(338) </SOAP:ENVELOPE> 사이에 규정된 엔빌로프 요소를 포함한다. 태그(302)는 SOAP 메시지를 위한 네임스페이스(a namespace)를 규정하는 속성 XMLNS:S를 포함한다. 속성 XMLNS:S는 주소 "HTTP://WWW.W3.ORG/2003/05/SOAP-ENVELOPE"와 동일시된다.
태그 302와 338 사이에는 개시 태그(304) <SOAP:HEADER>와 이에 수반하는 종료 태그(326) </SOAP:HEADER> 사이에서 규정된 헤더 요소가 포함된다. 태그 304와 326 사이에는 개시 태그(306) <R:RDMA>와 이에 수반하는 종료 태그(324) </R:RDMA> 사이에서 규정된 RDMA 요소가 포함되며, 이는 원격 직접 메모리 액세스(RDMA) 전송 세션에 관련된 제어 정보를 포함한다. 태그(306)는 RDMA 요소에 대한 네임스페이스를 규정하는 속성 XMLNS:R를 포함한다. 네임스페이스 XMLNS:R는 주소 "HTTP://MAGNET/CONTRACT/2003/08/RDMA.XSD"와 동일시된다. 태그 306과 324 사이에는 개시 태그(308) <R:SERVICEINFO>와 이에 수반하는 종료 태그(322) </R:SERVICEINFO> 사이에 규정된 세션 서비스 요소가 포함되며, 이는 (도 4b에서)노드(402)의 버퍼(402B1)를 나타내는 세션 서비스(402F)에 관련된 제어 정보를 포함한다. 태그(308)는 속성 SERVICE를 포함하는데, 이는 세션 서비스(402F)의 URI(402F1)와 동일시되며, 본 경우에서는 "RDMAP:09233523-345B-4351-B623-5DSF35SGS5D6"으로 규정된다. 태그 308과 322 사이에는 서버 컴퓨터 또는 네트워크 상의 다른 컴퓨터에 액세스하는 노드(402)를 규정하는 태그(310) <R:HOST>가 포함된다. 본 경우에, 태그(310)는 "EXAMPLE.COM"으로 규정된다. 태그 308과 322 사이에는 프로토콜을 규정하는 태그(312) <R:PROTOCOL>이 포함되며, 이는 컴퓨터가 서로 접속하고, 가능한한 적은 에러를 가지고서 정보를 교환할 수 있도록 의도된 규칙의 세트, 즉 표준이다. 본 경우에 있어서, 태그(312)는 숫자 6으로 규정된다. 태그 308과 322 사이에는 네트워크 통신이 가능하도록 태그(310)에 의해서 규정된 호스트상의 포트를 규정하는 태그(314) <R:PORT>가 포함된다. 본 경우에 있어서, 태그(314)는 숫자 808로 규정된다. 태그 308과 322 사이에는 버퍼(402B1)를 나타내는 세션 서비스(402F)의 하나 이상의 동작을 기술하는 계약을 규정하는 태그(316) <R:CONTRACT>가 포함된다. 이러한 계약의 적절한 실시예는 본 명세서와 동시 계류중인 "Decentralized, Distributed Operating System"이라는 명칭의 미국 특허 출원에 기술되어 있다. 태그(316)는 버퍼(202A)를 나타내는 서비스에 대한 계약이 "HTTP://EXAMPLE.ORG/RDMA/READ"일 수 있는 주소를 포함한다. 태그 308과 322 사이에는 스티어링 태그(a steering tag)를 규정하는 태그(318) <R:TAG>가 포함되며, 이는 RNIC(네트워크 인터페이스 카드 및 다른 지원 하부구조를 포함하는 원격 직접 메모리 액세스 동작을 이해할 수 있는 네트워크 인터페이스)에 의해서 이용될 수 있다. 본 경우에 태그(318)는 수열 983452346을 포함하는데, 이는 버퍼(402B1)의 물리적 주소와 관련된 스티어링 태그에 대한 식별자이다. 태그 308과 322 사이에는 버퍼(202A)의 길이를 규정하는 태그(320) <R:LENGTH>가 포함된다. 본 경우에 있어서, 태그(320)는 버퍼(402B1)의 길이를 규정하는데, 여기서는 231245646이다. 태그 310 내지 320은 네트워크 성능을 향상시키도록 헤더 요소내에 선택사항으로서 위치한 힌트이어서, 다른 노드는 태그 310 내지 320에 의해서 기술된 힌트를 하나이상 획득하기 위하여 맞춤형 태그기반 메시지(300)의 발신자(originator)와 통신할 필요가 없다.
맞춤형 태그기반 메시지(300)는 개시 태그(328) <SOAP:BODY>와 이에 수반하는 종료 태그(336) </SOAP:BODY> 사이에 규정된 본문 요소를 포함한다. 본 발명의 다양한 실시예에 있어서의 참조의 이용에 기인하여, 맞춤형 태그기반 메시지(300)의 본문은 실제 정보를 포함할 필요는 없으며, 맞춤형 태그기반 메시지(300) 밖에 저장된 정보를 참조하는 하나 이상의 참조를 이용할 수 있다. 태그 328과 336 사이에는 개시 태그(330) <M:MULTIMEDIA>와 이에 수반하는 종료 태그(334) </M:MULTIMEDIA> 사이에서 규정된 멀티미디어 요소가 포함된다. 태그 330과 334 사이에는 태그(332) <M:VIDEO>와 이에 수반하는 종료 태그 </M:VIDEO>에 의해서 규정된 비디오 요소가 포함되며, 이는 참조를 포함하는데, 본 경우에 있어서는 "RDMAP:09233523-345B-4351-B623-5DSF35SGS5D6"이다.
네트워크 시스템(400)은 메시지 송신기(202)와 같은 메시지 송신기를 포함하는 노드(402) 및 메시지 수신기(204)와 같은 메시지 수신기를 포함하는 노드(404)를 포함한다. 도 4a를 참조하면, 노드(402,404)는 CPU(402A,404A)를 포함한다. CPU(402A,404A)는 각기 컴퓨터 디바이스의 계산 및 제어 유닛이다. CPU(402A,404A)는 명령을 해석하여 수행하는 디바이스이다. CPU는 명령을 패치, 복호화 및 실행하며, 컴퓨터의 주 데이터 전송 경로 또는 버스를 통하여 정보를 다른 자원에/자원으로부터 전송하는 능력을 구비하고 있다. 본 발명의 다양한 실시예에서, CPU라는 용어는 노드(402,404)의 프로세서를 포함한다.
노드(402,404)는 메모리(402B,404B)를 포함한다. 메모리(402B,404B)는 정보가 저장되고 검색될 수 있는 디바이스를 포함한다. 메모리(402B,404B)는 디스크 드라이브 또는 테이프 드라이브와 같은 외부 저장장치를 참조할 수 있으며, 또한 CPU(402A,404A)에 직접 접속되는 가장 빠른 반도체 저장장치(RAM)인 컴퓨터의 메인 메모리를 참조할 수도 있다. 메모리(402B,404B)는 버퍼(402B1,404B1)를 포함하며, 이들은 각기 2개의 위치 또는 디바이스 사이에 전송되기를 기다리는 동안 정보가 일시적으로 저장되는 중간 리포지터리로서 이용하기 위하여 예약된 메모리의 영역이다.
노드(402,404)는 RNIC(402C,404C)를 포함한다. RNIC(402C,404C)는 케이블링과 같이, 노드(402,404)와 네트워크 전송이 이루어지는 물리적 미디어 사이를 조정한다. RNIC(402C,404C)는 버퍼 주소(402C1,404C1)를 (도 4a, 4b에 S-TAG로 도시된)스티어링 태그(402C2,404C2)와 결합시킨다. 버퍼 주소(402C1,404C1)는 버퍼(402B1,404B1)의 주소를 참조한다. 스티어링 태그(402C2,404C2)는 RNIC(402C,404C)에 의해서 이용되어, CPU(402A,404A)가 복사 명령을 수행할 필요없이 버퍼(402B1,404B1)내의 정보를 전송한다.
RNIC(402C,404C)는 네트워크(406)에 의해서 함께 결합된다. 네트워크(406)는 통신 설비에 의해서 접속된 컴퓨터 및 관련 디바이스의 그룹이다. 네트워크(406)는 케이블과 같은 영구적인 접속 또는 전화 또는 다른 통신 연결을 통해서 이루어지는 일시적인 접속을 포함할 수 있다. 네트워크(406)는 몇몇 컴퓨터, 프린터 및 다른 디바이스로 구성되는 LAN(local area network)만큼 작을 수 있으며, 혹은 거대한 지리적 영역(WAN(wide area network))에 걸쳐서 분산된 소형 및 대형 컴퓨터로 구성될 수도 있다. 본 발명의 다양한 실시예는 맞춤형 태그기반 메시지(300)가 맞춤형 태그 기반 메시지(300)와 함께 많은 양의 데이터를 포함할 필요없이 노드(402,404) 사이에 통신되는 제어 정보를 포함할 수 있도록 한다.
본 발명의 다양한 실시예는 맞춤형 태그기반 메시지(300)내의 하나 이상의 참조를 이용하여 버퍼(402B1,404B1)내에 저장된 정보를 맞춤형 태그기반 메시지(300)의 본체 요소내에 포함할 필요없이 버퍼(402B1,404B1)내에 저장된 하나 이상의 정보를 참조한다. 맞춤형 태그기반 메시지(300)가 적절한 노드(402,404)에 의해서 수신된 경우에, 참조가 리졸브(resolve)되고 RNIC(402C,404C)는 서로간에 통신하여 CPU(402A,404A)가 복사 명령을 수행할 것을 요구하지 않고서 정보의 전송이 가능하게끔 한다.
도 4a에 도시된 다양한 요소는 도 4b에서도 반복되며, 따라서 이들 요소에 대한 설명은 간략히 하기 위하여 되풀이되지 않는다. 도 4b는 다른 네트워크 시스템을 도시한다. 노드(402)는 URI(402D1)에서 식별가능한 송신기 서비스(402D)를 포함한다. 서비스의 한 적절한 실시예는 "Decentralized, Distributed Operating System"이라는 명칭의, 본 명세서와 동시 계류 중인 상기 인용된 미국 특허 출원에 기술되어 있다. 송신기 서비스(402D)는 메시지 송신기(202)와 같은 메시지 송신기를 나타낸다.
송신기 서비스(402D)는 맞춤형 태그기반 메시지(300)의 발신자이며, 이는 제어 정보 및 버퍼(402B1)내에 저장된 정보에의 참조를 포함한다. 노드(402)는 URI(402E1)에서 식별가능한 세션 관리 서비스(session manager service)(402E)를 포함한다. 세션 관리 서비스(402E)는 노드(402)와 노드(404) 사이에 새로운 전송 세션을 생성하는 데에 책임이 있다. 바람직하게, 세션 관리 서비스(402E)는 노드 402에서 송신 서비스(402D)와 함께 위치한다. 노드(402)는 URI(402F1)에서 식별가 능한 세션 서비스(402F)를 포함한다. 세션 서비스(402F)는 세션 관리 서비스(402E)에 의해서 생성되어 스티어링 태그(402C2)를 버퍼(402B1)가 상주하는 버퍼 주소(402C1)와 결합시킨다. 세션 서비스(402F)는 본질적으로 버퍼(402B1)를 나타낸다. 노드(402) 내부 및 외부의 다양한 서비스는 세션 서비스(402F)에 문의하여 길이, 스티어링 태그(402C2) 등과 같은 버퍼(402B1)에 대한 메타데이터 정보를 획득할 수 있다.
노드(404)는 URI(404D1)에서 식별가능한 수신기 서비스(404D)를 포함한다. 수신기 서비스(404D)는 메시지 수신기(204)와 같은 메시지 수신기를 나타낸다. 수신기 서비스(404D)가 송신기 서비스(402D)에 의해서 전송된 맞춤형 태그기반 메시지(300)를 수신한 경우에, 수신기 서비스는 맞춤형 태그기반 메시지(300)를 분석한다. 수신기 서비스(404D)가 맞춤형 태그기반 메시지(300)의 본문 요소내의 정보에 대한 참조를 대하게 되면, 수신기 서비스(404D)는 바람직하게 URI(404E1)에서 식별가능한 세션 관리 서비스(404E)의 도움을 요청한다. 세션 관리 서비스(404E)는 URI(402F1)에서 세션 셔비스(402F)와 통신하여 스티어링 태그(402C2)를 획득하거나, 스티어링 태그(402C2)가 맞춤형 태그기반 메시지(300)의 헤더내에 이미 포함된다. 스티어링 태그(402C2)를 이용하여, RNIC(404C)는 RNIC(402C)와 통신하여 버퍼(402B1)의 버퍼 주소(402C1)를 획득하고, 버퍼(402B1)내의 정보를 네트워크(406)를 가로질러 메모리(404B)의 버퍼(404B1)에 전송하는데, 이 때에 CPU(402A,404A)에 의한 복사 명령을 수행할 필요는 없다.
도 5a 내지 5i는 맞춤형 태그기반 프로토콜에서의 참조에 의한 전송 방법 (500)을 도시한다. 명료하게 하기 위하여, 방법(500)에 대한 아래의 설명은 메시지 송신기(202), 메시지 수신기(204)(도 2a 참조), 중개기(208)(도 2c 참조), 스테이징 버퍼(208A)(도 2c 참조), 맞춤형 태그기반 메시지(300)(도 3 참조) 및 다양한 서비스(402D,402E,402F,404D 및 404E)(도 4b 참조)와 관련하여 기술된 다양한 요소를 참조한다. 개시 블럭으로부터, 방법(500)은 단계 502의 세트로 진행하며, 이는 계속 터미널("터미널 A") 및 종료 터미널("터미널 B")사이에서 규정된다. 단계 502의 세트는 송신기 서비스가 하나 이상의 버퍼에 대한 하나 이상의 참조를 가지는 맞춤형 태그기반 메시지를 준비하는 프로세스를 기술한다(도 5b 내지 5d 참조).
터미널 A(도 5b 참조)로부터, 방법(500)은 블럭 508로 진행하여 메시지 송신기(202)와 같은 송신기 서비스(402D)가 노드(402)와 같은 제 1 노드에서 디렉토리로부터 세션 관리 서비스(402E)와 같은 세션 관리 서비스를 발견한다. 블럭 510에서, 송신기 서비스(402D)는 세션 관리 서비스(402E)에 전송 세션 생성 요청을 발행한다. 전송 세션 생성 요청은 노드(404)와 같은 제 2 노드에서 메시지 수신기(204)와 같은 수신기 서비스(404D)의 URI(404D1)를 식별하는 파라미터와 함께 전송된다. 블럭 512를 참조하라.
방법(500)은 블럭 514로 진행하며, 여기서 세션 관리 서비스는 URI(404D1)와 같은 수신기 서비스의 URI를 식별하는 파라미터와 함께 전송 세션 생성 요청을 수신한다. 블럭 516에서, 세션 관리기는 네트워크 관리기(도시되지 않음)에 맵핑 요청(a mapping request)을 발행한다. 맵핑 요청은 수신기 서비스(404D)의 URI(404D1) 및 버퍼(402B1)와 같은 로컬 버퍼의 주소(402C1)와 함께 전송된다. 블 럭 518을 참조하라. 방법(500)은 블럭 520으로 진행하며, 여기서 네트워크 관리기는 로컬 버퍼의 주소(요소(402C1))를 RNIC(402C)와 같은 RNIC로 보내며, 스티어링 태그(402C2)와 같은 스티어링 태그를 요청한다. 그런 다음, 방법(500)은 다른 계속 터미널("터미널 A1")로 진입한다.
터미널 A1으로부터(도 5 참조), 방법(500)은 블럭 522로 진행하며, 여기서 RNIC(402C)는 스티어링 태그(402C2)를 로컬 버퍼의 주소(402C1)와 결합시키고, 네트워크 포트 번호와 함께 스티어링 태그(402C2)를 리턴한다. 네트워크 포트 번호는 특정 세션동안 네트워크 통신이 발생하는 RNIC(402C)상의 포트의 식별자이다. 블럭 524에서, 세션 관리기(402E)는 URI(402F1)를 가지고 세션 서비스(402F)를 생성하며, 이는 전송 컨텐스트를 이러한 정보를 요청하는 다른 서비스에 제공할 수 있다. 그런 다음, 세션 관리기(402E)는 전송 컨텍스트를 생성하며, 이는 스티어링 태그(402C2)를 로컬 버퍼의 주소(402C1)와 관련시킨다. 블럭 526을 참조하라. 일 실시예에서, 전송 컨택스트는 바람직하게 노드(402)의 호스트, 프로토콜, RNIC(402C)에 의해서 생성된 포트, 세션 서비스(402F)와 관련된 계약, 스티어링 태그(402C2) 및 버퍼(402B1)의 길이와 같은 정보를 포함한다. 다른 실시예에서, 전송 컨텍스트는 상기된 다양한 정보를 포함하며, 추가적으로 세션 서비스(402F)의 URI(402F1)를 포함한다. 전송 컨텍스트의 한 예시적인 실시예가 도 3에서 태그 308,310,312,314,316,318 및 320에 의해서 나타나있다.
방법(500)은 블럭 528로 진행하며, 여기서 세션 서비스는, 본질적으로, 다른 서비스가 상기된 전송 컨텍스트와 같은 메타데이터 정보를 문의하는 것을 허여하는 로컬 버퍼(402B1)를 나타낸다. 블럭 530에서, 세션 관리기(402E)는 전송 세션 생성 응답을 송신기 서비스(402D)에 발행한다. 응답과 함께 세션 서비스(402F)의 URI(402F1) 및 전송 컨텍스트가 전송된다. 송신기 서비스(402D1)는 세션 관리기 서비스(402E)로부터 세션 서비스(402F)의 URI(402F1) 및 전송 컨텍스트와 함께 전송 세션 생성 응답을 수신한다. 블럭 532를 참조하라. 방법(500)은 다른 계속 터미널("터미널 A2")로 계속된다.
터미널 A2로부터(도 5d 참조), 방법(500)은 블럭 534로 진행하며, 여기서 송신기 서비스(402D)는 맞춤형 태그기반 메시지(300)와 같은 맞춤형 태그기반 메시지의 (태그 304와 326 사이에서 규정된 헤더 요소와 같은)헤더 요소를 구성하며, 이는 세션 서비스(402F)의 URI(402F1)와, 바람직하게는 전송 컨텍스트를 포함한다. 블럭 536에서, 송신기 서비스(402D1)는 (라인 206R에서 규정된 속성 ID와 같은)속성을 구성하며, 이는 세션 서비스(402F)의 URI(402F1)에의 참조를 나타낸다. 송신기 서비스(402D1)는 버퍼(402B1)를 기술하는 데에 속성을 이용하는 맞춤형 태그기반 메시지(300)의 (태그 328과 336 사이에 규정된 본문 요소와 같은)본문 요소를 구성한다. 블럭 538을 참조하라. 송신기 서비스(402D)는 맞춤형 태그기반 메시지의 본문을 선택적으로 부호화하여, 권한이 부여되지 않은 탬퍼링(tampering) 또는 권한이 부여되지 않은 액세스, 또는 이들 모두로부터 보안을 유지한다. 블럭 540을 참조하라. 블럭 542에서, 송신기 서비스(402D1)는 세션 서비스(402F)의 URI(402F1)를 포함하는 맞춤형 태그기반 메시지(300)와 함께 갱신 요청을 전송한다. 제 1 노드(402)의 RNIC(402C)는 맞춤형 태그기반 메시지(300)를 네트워크 (406)와 같은 네트워크를 가로질러 (연속적인 형태로)전송한다. 블럭 544를 참조하라. 방법(500)은 종료 터미널 B로 계속된다.
터미널 B로부터(도 5a 참조), 방법(500)은 계속 터미널("터미널 C")과 종료 터미널("터미널 D") 사이에 규정된 단계 504의 세트로 진행한다. 단계 504의 세트는 중간 노드가 하나 이상의 버퍼에 대한 하나 이상의 참조를 가지는 맞춤형 태그기반 메시지를 처리하는 프로세스를 기술한다(도 5e 내지 5f 참조).
터미널 C(도 5e 참조)로부터, 방법(500)은 판정 블럭 546으로 진행하며, 여기서 맞춤형 태그기반 메시지(300)를 인터셉트하는 중개기(208)와 같은 중개기가 존재하는지 여부를 판정하는 테스트가 이루어진다. 판정 블럭 546의 테스트에 대한 대답이 "아니오"인 경우에는, 방법(500)은 종료 터미널 D로 진행한다. 그렇지 않고서, 판정 블럭 546의 테스트에 대한 대답이 "예"인 경우에는, 방법(500)은 다른 판정 블럭 548로 진행하며, 여기서 다른 테스트가 이루어져서 버퍼(402B1)로부터 버퍼(404B1)로 전달되는 정보가 중개기를 거칠 것을 중개기가 요구하는지 여부를 판정한다. 판정 블럭 548의 테스트에 대한 대답이 "아니오"인 경우에는, 방법(500)은 종료 터미널 D로 진행한다. 판정 블럭 548의 테스트에 대한 대답이 "예"인 경우에, 중개기의 RNIC는 연속적인 맞춤형 태그기반 메시지(300)를 수신하고 이를 재구성하여 맞춤형 태그기반 메시지(300)가 중개기에 의해서 분석될 수 있도록 한다. 일 실시예에서, RNIC는 맞춤형 태그기반 메시지(300)를 재구성할 필요가 없으며, 대신에 연속적인 형태에 대하여 직접 작업한다. 방법(500)은 다른 계속 터미널("터미널 C1")로 계속된다.
터미널 C1으로부터(도 5 참조), 방법(500)은 블럭 552로 진행하며, 여기서 중개기는 맞춤형 태그기반 메시지(300)의 헤드를 분석하여 전송 컨텍스트를 발견한다. 블럭 544에서, 중개기는 전송 컨텍스트내의 정보에 근거하여 처리 단계 520 내지 532(도 5b 내지 5c 참조)를 반복하여 스테이징 버퍼(208A)와 같은 스테이징 버퍼를 생성한다. 단계 520 내지 532는 중개기의 컨텍스트내에서 수행된다. 방법(500)은 판정 블럭 556으로 진행하며, 여기서 맞춤형 태그기반 메시지(300)가 정보를 전달하고 있는지 여부를 판정하는 테스트가 이루어진다. 판정 블럭 556의 테스트에 대한 대답이 "아니오"인 경우에, 방법(500)은 터미널 C로 진행한다. 그렇지 않고서, 판정 블럭 556의 테스트에 대한 대답이 "예"인 경우에, 방법(500)은 블럭 558로 진행하며, 여기서 이전 전송 컨텍스트의 버퍼(402B1)의 컨텐츠는 RDMA와 같은 적절한 전송 메카니즘을 통하여 중개기의 스테이징 버퍼(208A)내로 전송된다. 블럭 560에서, 중개기는 스테이징 버퍼(208A)의 URI 및 중개기에 의해서 생성된 전송 컨텍스트를 포함하도록 맞춤형 태그기반 메시지(300)의 헤더를 변경시킨다. 중개기의 RNIC(도시되지 않음)는 맞춤형 태그기반 메시지(300)를 (연속적인 형태로)네트워크(406)를 가로질러 목적지를 향하여 전송한다. 블럭 562를 참조하라. 방법(500)은 터미널 C로 계속된다.
터미널 D로부터(도 5a 참조), 방법(500)은 계속 터미널("터미널 E")과 종료 터미널("터미널 F") 사이에 규정된 단계의 세트 506으로 진행한다. 단계 506의 세트는 수신기 서비스가 하나 이상의 버퍼에 대한 하나 이상의 참조를 가지는 맞춤형 태그기반 메시지를 처리하는 프로세스를 기술한다(도 5g 내지 5i 참조).
터미널 E로부터(도 5g 참조), 방법(500)은 블럭 564로 진행하며, 여기서 제 2 노드(404)의 수신기 서비스(404D)는 갱신 요청을 수신하고 맞춤형 태그기반 메시지(300)의 본문을 분석한다. 블럭 566에서, 맞춤형 태그기반 메시지(300)의 본문내의 (버퍼(402B1) 또는 중개기(208)의 스테이징 버퍼(208A)와 같은 버퍼를 기술하는)속성을 대하는 경우에, 수신기 서비스(404D)는 헤더내에 기술된 전송 컨텍스트를 발견한다. 이러한 동작이 정보 전송 중 하나인지 여부를 판정하는 테스트가 이루어진다. 판정 블럭 568을 참조하라. 판정 블럭 568의 테스트에 대한 대답이 "예"인 경우에, 방법(500)은 블럭 570으로 진행하며, 여기서 수신기 서비스(404D)는 전송 컨텍스트내의 정보에 근거하여 버퍼(404B1)와 같은 로컬 버퍼를 할당한다. 그렇지 않고서, 판정 블럭 568의 테스트에 대한 대답이 "아니오"인 경우에, 방법(500)은 블럭 572로 진행하며, 여기서 수신기 서비스(404D)는 버퍼(404B1)와 같은 로컬 버퍼를 원하는 정보를 포함하는 제 2 노드(404)에 위치시킨다. 양 블럭 570 및 572 모두로부터, 방법(500)은 블럭 574로 진행하며, 여기서 수신기 서비스(404D)는 제 2 노드(404)상의 세션 관리 서비스(404E)에 삽입 요청을 발행한다. 삽입 요청과 함께 맞춤형 태그기반 메시지(300)로부터 획득된 전송 컨텍스트가 전송된다.
터미널 E1로부터(도 5h 참조), 방법(500)은 블럭 576으로 진행하며, 여기서 세션 관리기(404E)는 삽입 요청을 수신하고 전송 컨텍스트를 분석한다. 세션 관리기(404E)는 네트워크 관리기(도시되지 않음)를 호출하고 RNIC(404C)와 통신하여 정보를 전송한다. 이러한 동작이 정보 전달 중 하나인지 여부를 판정하는 테스트가 이루어진다. 판정 블럭 580을 참조하라. 판정 블럭 580의 테스트에 대한 대답이 "예"인 경우에, 다른 노드(402)의 RNIC(402C)(또는 맞춤형 태그기반 메시지(300)를 인터셉트한 중개기가 존재하는 경우에는 그 중개기의 RNIC)는 CPU(402A,404A)로부터의 복사 명령을 수행하지 않고서 전송 컨텍스트내의 스티어링 태그(402C2)를 이용하여 버퍼(402B1)로부터 제 2 노드(404)의 RNIC(404C)로 정보를 전송한다(이는 정보를 버퍼(404B1)로 전송함). 그렇지 않고서, 판정 블럭 580의 테스트에 대한 대답이 "아니오"인 경우에, 방법(500)은 블럭 584로 진행하며, 여기서 제 2 노드(404)의 RNIC(404C)는 전송 컨텍스트내의 스티어링 태그(402C2)를 이용하여 버퍼(404B1)로부터 다른 노드(402)의 RNIC(402C)(또는 맞춤형 태그기반 메시지(300)를 인터셉트한 중개기가 존재하는 경우에는 그 중개기의 RNIC)로 정보를 전송한다. 양 블럭 582 및 584 모두로부터, 방법(500)은 블럭 586으로 진행하며, 전송이 완료된 후에, 세션 관리기(402E)는 수신기 서비스(404D)에 삽입 응답을 발행한다. 방법(500)은 다른 터미널("터미널 E2")로 계속된다.
터미널 E2로부터(도 5i), 방법(500)은 블럭 588로 진행하며, 여기서 수신기 서비스(404D)는 세션 관리 서비스(404E)로부터 삽입 응답을 수신하고, 송신기 서비스(402D)를 위한 갱신 응답을 발행한다. 이전에 맞춤형 태그기반 메시지(300)를 인터셉트한 중개기가 노드 402와 404 사이에 하나이상 존재하는 경우에는, 노드 C와 D 사이의 처리 단계가 반복되어 삽입 응답을 포함하는 새로운 맞춤형 태그기반 메시지를 처리하고, 그 후에 송신기 서비스(402D)로 다시 진행한다. 결국, 송신기 서비스(402D)는 수신기 서비스(404D)로부터 갱신 응답을 수신하고, 세션 서비스 (402F)에 드롭 메시지(a drop message)를 발행한다. 블럭 562를 참조하라. 블럭 564에서, 세션 서비스(402F)는 드롭 메시지를 수신하는 때에 수행을 종료한다. 방법(500)은 종료 터미널 F로 계속되어, 방법(500)은 수행을 종료한다.
본 발명의 바람직한 실시예가 도시되고 기술되었지만, 본 발명의 기술적 사상 및 본 발명의 범위를 벗어나지 않고서 다양한 변경이 이루어질 수 있음을 이해할 수 있을 것이다.
본 발명은 전반적으로 맞춤형 태그기반 메시지에 관한 것으로, 특히 맞춤형 태그기반 프로토콜을 통한 서비스 중 맞춤형 태그기반 메시지에서의 참조에 의한 정보 전송 수단에 관한 것이다. 본 발명에서는 데이터가 본문 요소내에 포함되는 경우에 발생할 수 있는 문제점에 대한 기존의 시스템과 관련된 문제점들을 회피할 수 있는 수단을 제공한다.

Claims (30)

  1. 네트워크를 통해 참조(reference)에 의한 데이터를 송신하는 메시지 디바이스로서,
    적어도 하나의 프로세서;
    외부 메시지 디바이스에 상주(residing)하는 외부 버퍼와 통신하도록 구성되는 로컬 버퍼; 및
    상기 외부 메시지 디바이스에 제1 태그 기반 메시지를 전송하는 것을 용이하게 하도록 구성되는 RNIC 컴포넌트 - 상기 제1 태그 기반 메시지는 상기 로컬 버퍼에 의해 보유되는 부분 및 상기 제1 태그 기반 메시지의 나머지 부분을 포함함 -
    를 포함하고,
    상기 RNIC 컴포넌트는,
    상기 외부 메시지 디바이스의 원격 직접 메모리 액세스 동작(remote direct memory access operation)을 이해하고, 또한
    상기 메시지 디바이스 및 상기 외부 메시지 디바이스가 상기 메시지 디바이스로부터 상기 외부 메시지 디바이스로의 데이터 전송을 위한 복사 명령들을 실행하지 않고 상기 로컬 버퍼로부터 상기 외부 메시지 디바이스의 저장 컴포넌트로 데이터 전송을 실행하도록 구성되는 메시지 디바이스.
  2. 제1항에 있어서,
    상기 제1 태그 기반 메시지는 데이터를 포함하기 위한 본문 요소(body element)를 포함하며, 상기 제1 태그 기반 메시지의 상기 본문 요소는 상기 로컬 버퍼에 의해 보유되는 상기 제1 태그 기반 메시지의 상기 부분에 대한 참조를 포함하는 메시지 디바이스.
  3. 제1항에 있어서,
    상기 제1 태그 기반 메시지는 제어 정보를 포함하기 위한 헤더 요소를 포함하는 메시지 디바이스.
  4. 제1항에 있어서,
    상기 제1 태그 기반 메시지는 맞춤형(customizable) 태그 기반 프로토콜을 통해 송신되는 메시지 디바이스.
  5. 태그 기반 전자 통신을 용이하게 하는 방법으로서,
    프로세서를 이용하여 컴퓨터 판독 가능 저장 매체에 저장된 컴퓨터 실행 가능 명령어들을 실행하는 단계를 포함하며,
    상기 컴퓨터 실행 가능 명령어들은,
    제1 태그 기반 메시지를 로컬 디바이스에 상주하는 로컬 버퍼로부터 외부 메시지 디바이스에 상주하는 외부 버퍼로 송신하는 액트 - 상기 제1 태그 기반 메시지는 상기 로컬 버퍼에 의해 보유되는 부분 및 상기 제1 태그 기반 메시지의 나머지 부분을 포함하며, 상기 송신하는 액트는 상기 나머지 부분 및 상기 로컬 버퍼에 의해 보유되는 부분에 대한 참조를 상기 외부 메시지 디바이스에 동시에 송신하는 것을 포함함 - ;
    상기 외부 메시지 디바이스로부터 제2 태그 기반 메시지를 수신하는 액트 - 상기 제2 태그 기반 메시지는 상기 외부 메시지 디바이스에 할당된 외부 버퍼에 대한 참조를 포함하고, 상기 제2 태그 기반 메시지는 상기 로컬 디바이스의 상기 로컬 버퍼에 보유되는 부분의 상기 외부 디바이스로의 전송을 개시하라는 삽입 요청(insert request)임 - ;
    상기 제2 태그 기반 메시지에 응답하여, 상기 로컬 디바이스의 상기 로컬 버퍼에 보유되는 부분을 RNIC 컴포넌트를 통해 상기 외부 메시지 디바이스에 전송하는 액트 - 상기 RNIC 컴포넌트는,
    상기 외부 메시지 디바이스의 원격 직접 메모리 액세스 동작을 이해하고, 또한
    상기 로컬 디바이스 또는 상기 외부 메시지 디바이스의 프로세서들로 하여금 데이터 전송의 복사 명령들을 실행하도록 요구하지 않고 상기 로컬 디바이스의 상기 로컬 버퍼로부터 상기 외부 메시지 디바이스의 참조된 외부 버퍼로의 직접적인 데이터 전송을 실행하도록 구성됨 -
    를 구현하는 방법.
  6. 제5항에 있어서,
    상기 송신하는 액트는 상기 제1 태그 기반 메시지에 본문 요소를 포함시키는 액트를 더 포함하고, 상기 본문 요소 내에는 상기 로컬 버퍼에 의해 보유되는 상기 제1 태그 기반 메시지의 부분에 대한 참조가 구현되는 방법.
  7. 제5항에 있어서,
    상기 송신하는 액트는 상기 제1 태그 기반 메시지에 헤더 요소를 포함시키는 액트를 더 포함하고, 상기 헤더 요소 내에는 상기 제1 태그 기반 메시지에 대한 제어 정보가 임베드되는 방법.
  8. 중개기(intermediary)에 의해 구현되는, 메시지 송신기로부터 제1 태그 기반 메시지를 인터셉트(intercepting)하고 제2 태그 기반 메시지를 메시지 수신기에 전달하는 방법으로서,
    프로세서를 이용하여 컴퓨터 판독 가능 저장 매체에 저장된 컴퓨터 실행 가능 명령어들을 실행하는 단계를 포함하며,
    상기 컴퓨터 실행 가능 명령어들은,
    상기 중개기의 RNIC를 통해, 맞춤형의 상기 제1 태그 기반 메시지를 상기 메시지 송신기로부터 인터셉트하는 액트 - 맞춤형의 상기 제1 태그 기반 메시지는,
    상기 메시지 수신기 내의 수신기 서비스의 URI(Uniform Resource Identifier); 상기 제1 태그 기반 메시지의 일부가 보유되는 상기 메
    시지 송신기 내의 로컬 버퍼의 어드레스; 및 상기 메시지 송신기의 RNIC에 의해 이용되는 스티어링 태그(steering tag)를 포함함 - ;
    맞춤형의 상기 제1 태그 기반 메시지를 구문 분석하여 스테이징 버퍼를 생성하는 액트;
    맞춤형의 상기 제1 태그 기반 메시지가 전달 정보인지의 여부를 판정하는 액트;
    상기 메시지 송신기의 로컬 버퍼 내에 보유되는 상기 제1 태그 기반 메시지의 부분을 RDMA를 통해 상기 중개기의 스테이징 버퍼에 전송하는 액트 - 상기 RDMA는, 원격 직접 메모리 액세스 전송 세션에 관한 제어 정보를 포함하고, 또한 상기 중개기 또는 상기 메시지 송신기의 프로세서로 하여금 데이터 전송의 복사 명령들을 실행하도록 요구하지 않고 데이터 전송을 실행하도록 구성되는 전송 메카니즘임 - ;
    맞춤형의 상기 제1 태그 기반 메시지를 맞춤형의 상기 제2 태그 기반 메시지로 변경하는 액트 - 맞춤형의 상기 제2 태그 기반 메시지는 상기 제1 태그 기반 메시지의 부분이 보유되는 상기 중개기의 스테이징 버퍼에 대한 참조 및 상기 스테이징 버퍼의 URI를 포함함 - ;
    맞춤형의 상기 제2 태그 기반 메시지를 상기 메시지 수신기에 송신하는 액트;
    상기 메시지 수신기로부터 삽입 요청을 수신하는 액트 - 상기 삽입 요청은 상기 중개기의 스테이징 버퍼에 보유되는 부분의 상기 메시지 수신기로의 전송을 개시하라는 상기 메시지 수신기에 할당된 버퍼에 대한 참조를 포함함 - ; 및
    상기 삽입 요청에 응답하여, 상기 중개기의 상기 스테이징 버퍼에 보유되는 부분을 RNIC 컴포넌트를 통해 상기 메시지 수신기에 전송하는 액트 - 상기 RNIC 컴포넌트는,
    상기 메시지 수신기의 원격 직접 메모리 액세스 동작을 이해하고,
    상기 중개기 또는 상기 메시지 수신기의 프로세서들로 하여금 데이터 전송의 복사 명령들을 실행하도록 요구하지 않고 상기 중개기의 상기 스테이징 버퍼로부터 상기 메시지 수신기의 참조된 버퍼로의 직접적인 데이터 전송을 실행하도록 구성됨 -
    를 구현하는 방법.
  9. 제8항에 있어서,
    맞춤형의 상기 제1 태그 기반 메시지는 제1 버퍼에 대한 참조를 포함하는 헤더 요소를 포함하며, 상기 헤더 요소는 상기 제1 버퍼에 대한 참조와 관련된 속성을 더 포함하는 방법.
  10. 제8항에 있어서,
    맞춤형의 상기 제1 태그 기반 메시지는 제1 버퍼를 참조하는 속성을 이용하는 본문 요소를 포함하는 방법.
  11. 제8항에 있어서,
    맞춤형의 상기 제1 태그 기반 메시지는,
    제어 정보의 표시자인 헤더 태그 - 상기 헤더 태그는 상기 메시지 송신기의 로컬 버퍼를 나타내기 위한 서비스를 나타내는 서비스 태그를 포함하고, 상기 서비스 태그는 상기 메시지 송신기의 상기 로컬 버퍼를 나타내는 서비스의 URI를 나타내는 URI 속성 및 상기 서비스 태그와 관련된 식별자 속성을 포함함 - ; 및
    데이터 정보를 나타내는 본문 태그 - 상기 본문 태그는 상기 식별자 속성을 이용하여 상기 메시지 송신기의 제1 버퍼를 나타내는 서비스를 참조할 수 있음 -
    를 포함하는 데이터 구조를 더 포함하는 방법.
  12. 복수의 명령어들이 저장된 하나 이상의 컴퓨터 판독 가능 기록 매체로서,
    상기 복수의 명령어들은, 하나 이상의 프로세서를 갖는 컴퓨팅 디바이스에 의해 실행되는 경우, 상기 하나 이상의 프로세서로 하여금 제8항에 기재된 방법을 실행하게 하는 하나 이상의 컴퓨터 판독 가능 기록 매체.
  13. 메시지 수신기에 의해 구현되는 맞춤형 태그 기반 메시지를 수신하는 방법으로서,
    메시지 수신기의 프로세서를 이용하여 컴퓨터 판독 가능 저장 매체에 저장된 컴퓨터 실행 가능 명령어들을 실행하는 단계를 포함하며,
    상기 컴퓨터 실행 가능 명령어들은,
    상기 맞춤형 태그 기반 메시지를 메시지 송신기로부터 수신하는 액트 - 상기 맞춤형 태그 기반 메시지는,
    상기 맞춤형 태그 기반 메시지의 부분이 보유되는 상기 메시지 송신기의 로컬 버퍼의 물리적 어드레스를 나타내는 스티어링 태그; 및
    상기 메시지 송신기의 로컬 버퍼의 길이를 나타내는 길이 태그
    를 포함함 - ;
    전송될 상기 메시지 수신기에 보유되는 상기 맞춤형 태그 기반 메시지의 부분에 대한 로컬 버퍼의 크기를 상기 메시지 수신기 내에 할당하는 액트; 및
    상기 메시지 송신기 내에 보유되는 상기 맞춤형 태그 기반 메시지의 부분을 RDMA를 통해 상기 메시지 수신기의 로컬 버퍼에 전송되게 하는 액트 - 상기 RDMA는, 원격 직접 메모리 액세스 전송 세션에 관한 제어 정보를 포함하고, 또한 상기 메시지 수신기 또는 상기 메시지 송신기의 프로세서들로 하여금 상기 맞춤형 태그 기반 메시지의 보유된 부분을 상기 메시지 송신기로부터 상기 메시지 수신기로 전송의 복사 명령들을 실행하도록 요구하지 않고 데이터 전송을 실행하도록 구성되는 전송 메카니즘임 - ;
    를 구현하는 방법.
  14. 제13항에 있어서,
    상기 메시지 송신기의 로컬 버퍼의 어드레스를 상기 스티어링 태그와 연관시키기 위한 세션 서비스가 상기 메시지 송신기에 결합(engaged)되는 방법.
  15. 복수의 명령어들이 저장된 하나 이상의 컴퓨터 판독 가능 기록 매체로서,
    상기 복수의 명령어들은, 하나 이상의 프로세서를 갖는 컴퓨팅 디바이스에 의해 실행되는 경우, 상기 하나 이상의 프로세서로 하여금 제13항에 기재된 방법을 실행하게 하는 하나 이상의 컴퓨터 판독 가능 기록 매체.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
KR1020040094649A 2003-11-20 2004-11-18 맞춤형 태그기반 프로토콜에서의 참조에 의한 전송 KR101137132B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/717,741 US7716290B2 (en) 2003-11-20 2003-11-20 Send by reference in a customizable, tag-based protocol
US10/717,741 2003-11-20

Publications (2)

Publication Number Publication Date
KR20050049371A KR20050049371A (ko) 2005-05-25
KR101137132B1 true KR101137132B1 (ko) 2012-06-21

Family

ID=34435760

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040094649A KR101137132B1 (ko) 2003-11-20 2004-11-18 맞춤형 태그기반 프로토콜에서의 참조에 의한 전송

Country Status (5)

Country Link
US (1) US7716290B2 (ko)
EP (1) EP1533959A1 (ko)
JP (1) JP2005160075A (ko)
KR (1) KR101137132B1 (ko)
CN (1) CN1625179B (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4061288B2 (ja) * 2004-04-08 2008-03-12 インターナショナル・ビジネス・マシーンズ・コーポレーション Webサービス・システム、リクエスタ、soapメッセージ用中間処理装置、リクエスタのリクエスト用soapメッセージ処理方法、リクエスタのレスポンス用soapメッセージ処理方法、soapメッセージ用中間処理装置のリクエスト用soapメッセージ処理方法、soapメッセージ用中間処理装置のレスポンス用soapメッセージ処理方法、及びプログラム
US7577707B2 (en) * 2004-04-21 2009-08-18 International Business Machines Corporation Method, system, and program for executing data transfer requests
US7613830B2 (en) * 2004-12-10 2009-11-03 Microsoft Corporation Reliably transferring queued application messages
CN100417144C (zh) * 2005-12-12 2008-09-03 华为技术有限公司 一种消息业务中多消息关联系统和方法
US20080050017A1 (en) * 2006-08-25 2008-02-28 Via Telecom Co., Ltd Transmission and reception of handwritten data on wireless devices without character recognition
US8010654B2 (en) * 2006-12-21 2011-08-30 International Business Machines Corporation Method, system and program product for monitoring resources servicing a business transaction
US8271669B2 (en) * 2007-05-30 2012-09-18 Broadcom Corporation Method and system for extended steering tags (STAGS) to minimize memory bandwidth for content delivery servers
US8141151B2 (en) * 2007-08-30 2012-03-20 International Business Machines Corporation Non-intrusive monitoring of services in a service-oriented architecture
US9710817B2 (en) * 2008-09-30 2017-07-18 Microsoft Technology Licensing, Llc Adaptive run-time advertisements
WO2011047216A2 (en) * 2009-10-15 2011-04-21 Masimo Corporation Physiological acoustic monitoring system
KR101731423B1 (ko) * 2010-03-19 2017-04-28 삼성전자주식회사 맞춤 태그를 이용하는 메시지 송수신 방법 및 장치
US9288640B2 (en) 2010-03-19 2016-03-15 Samsung Electronics Co., Ltd. Method and apparatus for transmitting and receiving message using customized tag
US9276998B2 (en) * 2011-10-06 2016-03-01 International Business Machines Corporation Transfer of files with arrays of strings in soap messages
US9715325B1 (en) 2012-06-21 2017-07-25 Open Text Corporation Activity stream based interaction
US9692675B1 (en) 2012-06-21 2017-06-27 Open Text Corporation Activity stream based collaboration
US9955937B2 (en) 2012-09-20 2018-05-01 Masimo Corporation Acoustic patient sensor coupler
CN105446936B (zh) * 2015-11-16 2018-07-03 上海交通大学 基于htm和单向rdma操作的分布式哈希表方法
US10498654B2 (en) 2015-12-28 2019-12-03 Amazon Technologies, Inc. Multi-path transport design
US10148570B2 (en) 2015-12-29 2018-12-04 Amazon Technologies, Inc. Connectionless reliable transport
US9985904B2 (en) 2015-12-29 2018-05-29 Amazon Technolgies, Inc. Reliable, out-of-order transmission of packets
CN110719294B (zh) * 2015-12-29 2021-06-01 亚马逊技术股份有限公司 网络技术
US11729588B1 (en) 2021-09-30 2023-08-15 T-Mobile Usa, Inc. Stateless charging and message handling

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6505236B1 (en) * 1999-04-30 2003-01-07 Thinmail, Inc. Network-based mail attachment storage system and method

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2345157B (en) * 1998-12-23 2003-06-18 Ibm Publish and subscribe data processing apparatus, method and computer program product with declaration of a unique publisher broker
JP3322754B2 (ja) * 1994-05-17 2002-09-09 富士通株式会社 並列計算機
US5781901A (en) * 1995-12-21 1998-07-14 Intel Corporation Transmitting electronic mail attachment over a network using a e-mail page
JP4006807B2 (ja) * 1998-01-19 2007-11-14 ブラザー工業株式会社 ネットワークシステム、及び端末装置
US6314402B1 (en) * 1999-04-23 2001-11-06 Nuance Communications Method and apparatus for creating modifiable and combinable speech objects for acquiring information from a speaker in an interactive voice response system
US6477576B2 (en) * 1999-06-17 2002-11-05 International Business Machines Corporation Methods, systems and computer program products for the automated discovery of a services menu
WO2002021413A2 (en) * 2000-09-05 2002-03-14 Zaplet, Inc. Methods and apparatus providing electronic messages that are linked and aggregated
JP2002215545A (ja) * 2001-01-16 2002-08-02 Canon Inc 情報処理装置及びシステム並びにそれらの方法
WO2002061974A1 (fr) * 2001-01-31 2002-08-08 Net Time Corporation Systeme de communication de donnees, procede de communication de donnees, dispositif de transmission de donnees, assistant numerique personnel et dispositif portable
US6804673B2 (en) * 2001-04-19 2004-10-12 Fujitsu Limited Access assurance for remote memory access over network
US7117267B2 (en) * 2001-06-28 2006-10-03 Sun Microsystems, Inc. System and method for providing tunnel connections between entities in a messaging system
US20030079030A1 (en) * 2001-08-22 2003-04-24 Cocotis Thomas A. Output management system and method for enabling access to private network resources
US7426534B2 (en) 2001-12-19 2008-09-16 International Business Machines Corporation Method and system for caching message fragments using an expansion attribute in a fragment link tag
WO2003084186A1 (en) * 2002-03-27 2003-10-09 International Business Machines Corporation Dynamic addressing in transient networks

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6505236B1 (en) * 1999-04-30 2003-01-07 Thinmail, Inc. Network-based mail attachment storage system and method

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
김용수, 외 1인, "SOAP 기반의 메시지 Broker 시스템 설계 및 구현," 멀티미디어학회 논문지, 제6권, 제6호, pp. 1071-1078, 2003년 10월. *
김용수, 외 1인, "SOAP 기반의 메시지 Broker 시스템 설계 및 구현," 멀티미디어학회 논문지, 제6권, 제6호, pp. 1071-1078, 2003년 10월.*

Also Published As

Publication number Publication date
US20050114455A1 (en) 2005-05-26
KR20050049371A (ko) 2005-05-25
CN1625179A (zh) 2005-06-08
US7716290B2 (en) 2010-05-11
JP2005160075A (ja) 2005-06-16
EP1533959A1 (en) 2005-05-25
CN1625179B (zh) 2010-10-06

Similar Documents

Publication Publication Date Title
KR101137132B1 (ko) 맞춤형 태그기반 프로토콜에서의 참조에 의한 전송
KR101066682B1 (ko) 공유 자원에 대한 통지 방법
US6925481B2 (en) Technique for enabling remote data access and manipulation from a pervasive device
US8739183B2 (en) Annotating portions of a message with state properties
US7117267B2 (en) System and method for providing tunnel connections between entities in a messaging system
US7028091B1 (en) Web server in-kernel interface to data transport system and cache manager
US20030145230A1 (en) System for exchanging data utilizing remote direct memory access
EP0883270A1 (en) A distributed network computing system
KR100794432B1 (ko) 데이터 통신 프로토콜
US10303529B2 (en) Protocol for communication of data structures
US20020116500A1 (en) Protocol for wireless devices
US6934761B1 (en) User level web server cache control of in-kernel http cache
US6654892B1 (en) Methods and apparatus for permitting transactions across firewalls
KR101137098B1 (ko) 바이트 스트림을 제공하는 프로토콜에 구조화된 데이터 프로토콜을 바인딩하는 메커니즘
US6668279B1 (en) User level web server in-kernel network I/O accelerator
US7367029B2 (en) Method and system for handling data
KR20010044464A (ko) 지정된 응용 모듈의 기능을 차용하는 그룹-독립형 메시지전송 방법 및 시스템
US20090106395A1 (en) Satellite Data Network Acceleration

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee