KR101183323B1 - 통신 채널 모델 - Google Patents

통신 채널 모델 Download PDF

Info

Publication number
KR101183323B1
KR101183323B1 KR1020060000119A KR20060000119A KR101183323B1 KR 101183323 B1 KR101183323 B1 KR 101183323B1 KR 1020060000119 A KR1020060000119 A KR 1020060000119A KR 20060000119 A KR20060000119 A KR 20060000119A KR 101183323 B1 KR101183323 B1 KR 101183323B1
Authority
KR
South Korea
Prior art keywords
channel
message
communication
semantics
channel component
Prior art date
Application number
KR1020060000119A
Other languages
English (en)
Other versions
KR20060089624A (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 KR20060089624A publication Critical patent/KR20060089624A/ko
Application granted granted Critical
Publication of KR101183323B1 publication Critical patent/KR101183323B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • 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
    • G06F15/163Interprocessor communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/547Messaging middleware

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

본 발명은 플러그가능한 모듈러 채널 컴포넌트를 갖는 런타임 통신 채널을 생성할 수 있는 채널 모델을 제공한다. 이러한 채널 컴포넌트는 다형으로 표현되는 컴포넌트들 간의 통신 시멘틱(communication semantics)의 세부 프로세싱을 가능하게 하는 표준 인터페이스들의 집합 중 하나의 표준 인터페이스를 구현한다. 메시지 및 대응하는 통신 시멘틱은 표준 인터페이스를 이용하여 채널 컴포넌트를 통해 반복적으로 전달되며, 이에 의해, 통신 시멘틱이 수행되는 방법의 특정 구현 세부사항으로부터 다른 모듈들 및 컴포넌트들을 추출(abstract)한다. 그 후, 메시지가 더 이상의 프로세싱을 위해 다음의 적절한 모듈에 송신될 수도 있고, 프로세싱이 그 특정 컴포넌트 또는 모듈에서 완료될 수도 있다. 또한, 메시지는 상술된 것과 유사한 방식으로 서비스 측 상에서 역다중화될 수 있다는 것도 유념한다.
Figure R1020060000119
채널 컴포넌트, 통신 시멘틱, 역다중화

Description

통신 채널 모델{COMMUNICATION CHANNEL MODEL}
도 1a는 본 발명의 예시적인 실시예에 따라 생성된 런타임 통신 채널을 갖는 분산 시스템을 도시.
도 1b는 예시적인 실시예에 따라 런타임 통신 채널의 채널 컴포넌트들 사이에서 표준 인터페이스들의 집합 중 하나의 표준 인터페이스를 사용하는 것을 도시.
도 1c는 예시적인 실시예에 따라 공통 상태 기계 변환을 도시.
도 2는 예시적인 실시예에 따라 엔드포인트들 간의 전송을 위한 메시지를 구성하는 방법의 순서도.
도 3은 예시적인 실시예에 따라 런타임 채널을 수용하기 위한 방법의 순서도.
도 4는 예시적인 실시예에 따라 엔드포인트에서의 소비를 위해 메시지를 역다중화하는 방법의 순서도.
도 5는 본 발명에 적합한 오퍼레이팅 환경을 제공하는 예시적인 시스템.
<도면의 주요 부분에 대한 부호의 설명>
105 : 클라이언트 또는 프록시
110 : 메시지
120 : 런타임 통신 채널
125 : 채널 컴포넌트
130 : 채널 팩토리
145 : 청취자
147 : 서비스 통신 채널
150 : 메시지 필터
155 : 엔드포인트
160 : 서비스
170 : 청취자 팩토리
175 : 역다중화기
본 발명은 일반적으로 서비스 지향 시스템(service oriented system) 내의 엔드포인트들 간의 메시지 전송에 관한 것이다. 더 상세하게, 본 발명은 표준 인터페이스들의 집합 중 하나의 표준 인터페이스를 이용하는 플러그가능한 모듈러 채널 컴포넌트를 갖는 런타임 통신 채널을 제공한다. 그러한 시스템으로 인해, 다형으로 표현되는 채널 컴포넌트들 간의 통신 시멘틱(communication semantics)의 세부 프로세싱을 가능하게 할 수 있다.
컴퓨터 시스템 및 관련 기술은 사회의 여러 면에 영향을 준다. 실제로, 정 보를 처리하는 컴퓨터 시스템의 능력은 우리가 살아가고 일하는 방식을 변형시켰다. 이제, 컴퓨터 시스템은 주로, 컴퓨터 시스템의 출현 전에 수동으로 수행되었던 다수의 태스크(예를 들어, 워드 프로세싱, 스케줄링, 데이터베이스 관리 등)를 수행한다. 더 최근에, 컴퓨터 시스템들은 서로 연결되어, 컴퓨터 시스템이 데이터를 공유하기 위해 전자적으로 통신할 수 있는 컴퓨터 네트워크를 형성하였다. 서비스 지향 시스템(예를 들어, 웹 서비스)은 컴퓨터 시스템들 간의 그러한 통신을 촉진하는 구동력이었으며, 우리가 소프트웨어를 구축하고 사용하는 방식을 뒤집고 있다.
서비스 지향 아키텍처는 어플리케이션이 데이터를 공유하게 하며, 더 강력하게는, 어플리케이션이 어떻게 구축되었는지, 어플리케이션이 어떤 오퍼레이팅 시스템 또는 플랫폼 상에서 실행되는지, 및 어플리케이션에 액세스하는 데 어떤 장치가 사용되는지에 상관없이, 다른 어플리케이션으로부터의 기능들을 호출하게 한다. 일반적으로, 이러한 시스템은 SOAP(Simple Object Access Protocol), XML(eXtensible Mark Language), UDDI(Universal Description Discovery Integration), WSDL(Web Service Description Language) 등을 포함하는 산업-표준 프로토콜에 의해 인터넷을 통해 호출된다. 이러한 서비스는 서로에 대해 독립적인 것으로 남아있지만, 특정 태스크를 수행하는 협력 그룹에 자기 자신을 약하게 링크시킬 수 있다.
종종, 서비스 지향 네트워크에서의 전자 통신은, 서버 컴퓨터 시스템(이하, "서비스"라고 지칭)에서 네트워크 서비스(들)(예를 들어, 웹 서비스)로부터의 액세 스를 요구하는 클라이언트 컴퓨터 시스템(이하, "클라이언트"라고 지칭)을 포함한다. 따라서, 클라이언트는 서비스의 시스템 자원으로의 특정 액세스를 위한 요구를 서비스에 송신하는데, 이 때, 클라이언트가 인가 및 검증되면, 서비스는 예를 들어, 요구된 정보를 제공하는 응답 메시지를 이용하여 응답한다. 물론, 클라이언트와 서비스 간의 다른 메시지 교환 패턴(또한, 이하에 설명되는 다른 통신 시멘틱)이 이용가능하며, 간단한 단독 메시지 뿐만 아니라, 예를 들어, 통지, 요청-응답(solicit-response), 펍-서브 패턴(pub-sub pattern), 폴링(polling), 큐잉(queuing) 등과 같은 더 복잡한 다중-메시지 교환도 포함한다.
서비스를 생성하기 위해, 개발자는 특정 프로그래밍 모델에 따라 소스 코드(예를 들어, C#, C++ 또는 비주얼 베이직)를 작성한다. 소스 코드는 서비스 타입으로 컴파일될 수 있고, 서비스 타입은 서버 런타임에 실행되어 클라이언트 소비자에게 서비스를 제공할 수 있다. 그러나, 서로 다른 프로그래밍 모델들은 서로 다른 메소드로 분산 메시징 기능을 구현할 수 있다. 예를 들어, 한 프로그래밍 모델은 별도의 메소드들을 갖는 단일의 인터페이스를 이용하여 요구 메시지와 대응하는 응답 메시지 둘 다를 구현할 수 있다. 그 단일의 인터페이스는 요구 메시지를 위한 한 메소드, 및 대응하는 응답 메시지를 위한 제2의 상이한 메소드를 가질 수 있다.
서로 다른 프로그래밍 모델은 또한, 서로 다른 통신 시멘틱에 따라 구현될 수 있다. 예를 들어, 각각의 모델은 서로 다른 인코딩, 전송, 보안 옵션, 신뢰성 메시징 옵션, 메시지 로깅 옵션, 접속 스로팅(throtting) 옵션 등을 가질 수 있다. 따라서, (예를 들어, 수학 연산을 수행하는) 동일한 기능을 구현하도록 설계된 두 개의 서비스는 그 기능을 서로 다르게 구현할 수 있다.
또한, 분산 어플리케이션은 일반적으로, 자신의 프로그래밍 모델에 대해서 엄격하여, 자신의 서비스 런타임에 단단히 연결되어 있는 하나의 프로그래밍 모델만을 허용한다. 따라서, 호환성을 위해, (예를 들어 서비스 소비자에서의) 클라이언트 런타임은 일반적으로, 서버 런타임과 동일한 프로그래밍 모델에 따라 개발된 클라이언트 프로그램 또는 모듈을 이용하도록 요구된다. 예를 들어, 요구 및 응답 메시지를 위한 별도의 인터페이스를 이용하여 서비스가 개발되었거나, 서비스가 특정 메시지 인코딩 및 전송 프로토콜을 사용하면, 서비스 소비자는 그러한 것도 구현해야 한다. 동일한 프로그래밍 모델에 따라 개발된 클라이언트 프로그램 또는 모듈을 사용하는 것에 실패하면, 클라이언트 런타임은 서비스 런타임과 통신하지 못할 수 있다.
그러한 엄격성, 및 서비스 개발자에 의해 지정된 특정 통신 시멘틱과의 단단한 연결은 몇몇 고유한 단점을 갖는다. 예를 들어, 일반적으로, 회사는 속성 네트워크 통신 시멘틱을 이용하여 자신의 네트워크 내에서 서비스를 배포한다. 그들은 보안, 신뢰성, 사용할 전송 및 인코딩 타입 등에 대한 특정 요건을 가질 수 있다. 그 회사가 (예를 들어, 합병 또는 인수를 통해) 다른 회사를 획득한다면, 획득된 회사 시스템은 이러한 특정 통신 시멘틱 또는 프로토콜도 구현할 수 있어야 한다. 그러나, 그러한 요건은 매우 실현가능성이 적으며, 마찬가지로 획득된 회사의 어플리케이션(또는, 획득하는 회사의 어플리케이션)은 그 특정 통신 시멘틱에 맞도록 재작성 또는 구성되어야 한다.
쉽게 알 수 있는 바와 같이, 그러한 재작업 및/또는 재구성은 비용이 많이 들 수 있고, 환경에 독립적인 방식으로 다수의 장치에 서비스를 제공하고자 하는 서비스 지향 아키텍처(예를 들어, 웹 서비스)의 근본 목적을 정확하게 반영하지 않는다. 따라서, 시스템이 변경 요구에 더 유연하게 하기 위해, 확장가능하고 플러그가능한 방식으로 통신 시멘틱을 모델링할 필요가 있다.
현재의 분산 시스템에 대한 상술된 장애 및 단점은 본 발명의 다양한 예시적인 실시예를 통해 극복된다. 예를 들어, 본 발명은 런타임 통신 채널의 플러그가능한 모듈러 채널 컴포넌트들을 통해 메시지를 반복적으로 전달함으로써 엔드포인트들 간의 전송을 위해 메시지를 구성할 수 있는 채널 모델을 제공한다. 플러그가능한 모듈러 채널 컴포넌트들 각각은 다형으로 표현되는 컴포넌트들 간의 통신 시멘틱의 세부 프로세싱을 가능하게 하는 표준 인터페이스들의 집합 중 하나의 표준 인터페이스를 구현한다.
일 예시적인 실시예에서, 통신 시멘틱은 런타임 통신 채널 내의 제1 채널 컴포넌트에서 수신된다. 통신 시멘틱은 적어도 메시지 교환 패턴을 포함하고, 그 메시지 교환 패턴에 기초하여 복수의 표준 인터페이스들로부터 선택된 표준 인터페이스를 통해 수신된다. 메시지도 그 표준 인터페이스를 통해 수신되고 메시지 교환 패턴의 일부분이다. 통신 시멘틱 중 적어도 일부분은 메시지에 대해 수행될 수 있는데, 여기서, 표준 인터페이스는 런타임 통신 채널과 인터랙트하는 다른 컴포넌트 들 또는 모듈들로부터, 메시지에 대해 통신 시멘틱의 적어도 일부분을 수행하기 위한 구현 세부사항을 추출(abstract)한다. 통신 시멘틱의 적어도 일부분의 역다중화(de-multiplex)도 유사한 방식으로 채널 컴포넌트를 이용하여 수행될 수 있다.
다른 예시적인 실시예는 메시지를 역다중화하기 위한 런타임 통신을 수용하도록 구성된 채널 모델을 제공한다. 이 실시예에서, 청취자(listener)에서, 런타임 통신 채널을 수용하기 위한 요구가 수신된다. 런타임 통신 채널은 수용되고, 적어도 메시지 교환 패턴을 포함하는 통신 시멘틱에 대응한다. 그 이후, 또는 그 이전에, 통신 시멘틱에 따라 프로세싱되었고 메시지 교환 패턴의 일부분인 메시지가 수신된다. 또한, 통신 시멘틱에 따라 메시지를 역다중화하기 위한 서비스 통신 채널이 생성되고, 통신 시멘틱은 서비스 통신 채널 내의 제1 채널 컴포넌트에 전달될 수 있다. 통신 시멘틱은 메시지 교환 패턴에 기초하여 복수의 표준 인터페이스들로부터 선택된 표준 인터페이스를 통해 전달된다. 메시지도 통신 시멘틱의 적어도 일부분을 역다중화하기 위해 표준 인터페이스를 통해 제1 채널 컴포넌트에 전달되며, 여기서, 표준 인터페이스는 런타임 통신 채널과 인터랙트하는 다른 컴포넌트들 또는 모듈들로부터, 메시지에 대해 통신 시멘틱의 적어도 일부분을 수행하기 위한 구현 세부사항을 추출한다.
본 발명의 추가적인 특징 및 장점은 후속하는 설명에서 기술될 것이고, 부분적으로 이 설명으로부터 명백해질 것이며, 본 발명의 실시에 의해 학습될 수도 있다. 본 발명의 특징 및 장점은 첨부된 청구범위에서 자세히 나타난 명령어들 및 조합들에 의해 인지되고 획득될 수 있다. 본 발명의 이러한 특징 및 그 외의 특징 은 다음의 설명 및 첨부된 청구범위로부터 더 명백해질 것이며, 이후에 설명되는 본 발명의 실시에 의해 학습될 수도 있다.
본 발명의 상술된 장점 및 특징과 그 외의 장점 및 특징이 획득될 수 있는 방식을 설명하기 위해, 첨부된 도면에 도시된 특정 실시예를 참조하여, 간단히 상술된 본 발명에 대한 더 자세한 설명이 주어질 것이다. 이러한 도면은 본 발명의 일반적인 실시예를 나타낼 뿐이며 따라서, 범주의 제한인 것으로 간주되지 않는다는 것을 이해하면서, 본 발명은 첨부 도면의 사용을 통해 추가적인 특이성 및 세부사항을 가지고 기술되고 설명될 것이다.
본 발명은 표준 인터페이스들의 집합 중에서 하나의 인터페이스를 이용하는 플러그가능한 모듈러 채널 컴포넌트를 갖는 런타임 통신 채널에 대한 방법, 시스템 및 컴퓨터 프로그램 제품에 관한 것이다. 본 발명의 실시예는 이하에 더 상세히 설명되는 바와 같이, 다양한 컴퓨터 하드웨어를 포함한 특수 목적 또는 범용 컴퓨터를 포함할 수 있다.
일반적으로, 본 발명은 플러그가능한 모듈러 채널 컴포넌트를 갖는 런타임 통신 채널을 생성할 수 있는 채널 모델을 제공한다. 이러한 채널 컴포넌트는 다형으로 표현되는 컴포넌트들 또는 모듈들 간의 통신 시멘틱의 세부 프로세싱을 가능하게 하는 표준 인터페이스들의 집합 중 하나의 표준 인터페이스를 구현한다. 도 1a는 서비스 지향 시스템에서 그러한 예시적인 통신 채널의 특정 예를 도시한다.
분산 시스템(100)에서, 클라이언트 또는 프록시(105)는 서비스(160)에 의해 제공된 서비스로의 액세스를 요구하고, 프로세싱을 위해 서비스(160)에 메시지 (110)를 송신한다. 대체로 말하자면, 서비스(160)는 엔드포인트들(155)의 컬렉션이며, 엔드포인트(155)는 한 위치에서, 특정 타입의 메시지를 송수신할 수 있는 코드부를 타나낸다. 서비스에 액세스하기 위해, 클라이언트는 능동적으로 채널 팩토리(130)로부터의 채널을 요구한다. 채널 팩토리(130)는 채널을 생성하기 위한 메커니즘을 서비스(160)의 엔드포인트(155)에 제공한다. 채널, 예를 들어, 런타임 통신 채널(120)은 클라이언트(105)와 서비스(160) 간의 메시지 교환을 위한 코어 추출을 나타낸다. 이하에 더 상세히 설명되는 바와 같이, 런타임 통신 채널(120)은 표준 인터페이스들의 집합 중 하나의 표준 인터페이스를 이용하여 여러 채널 컴포넌트들(125) 및 모듈들 사이에서 통신하고, 이에 의해, 분산 시스템 내의 다른 컴포넌트들(125) 및 모듈들로부터 각각의 채널 컴포넌트(125) 내의 특정 구현 세부사항을 추출한다(여기서, "컴포넌트" 및 "모듈"이라는 용어는 상호교환적으로 사용됨을 유념한다).
채널 팩토리(130)는 런타임 통신 채널(120)을 생성하고, 다시 클라이언트(105)에 핸들(140)(런타임 통신 채널(165) 또는 그것의 식별자일 수 있음)을 반환한다. 클라이언트(105)는 런타임 통신 채널을 이용하여, 일반적으로 서비스 개발자가 유도한 특정 통신 시멘틱에 따라 메시지(110)를 서비스(160)에 전달할 수 있다(그러나, 통신 시멘틱은 디폴트 값일 수도 있고, 서비스 측의 시스템 운영자에 의해 오버라이드된 값일 수도 있음을 유념한다). 예시적인 실시예는 다양한 통신 시멘틱, 예를 들어 그것이 구현하는 메시지 교환 패턴(MEP)에 따라 채널(120, 125)이 타입지정되고 생성되도록 규정한다. 메시지 교환 패턴은 클라이언트(105)와 서 비스(160), 또는 경우에 따라 다른 서비스 엔드포인트들 간의 메시지 통신을 위한 패턴을 나타낸다. 현재의 실시예는 일방향(예를 들어, 출력 채널 및 입력 채널) 요구-응답(요구 채널 및 응답 채널) 및 이중 메시징(이중 채널)을 포함하지만 이것으로 제한되지 않는 다수의 원시 메시지 교환 패턴을 지원한다. 이러한 MEP는 완전히 확장가능한 것임을 유념한다. 그러한 것으로서, 필요 시, 상술된 MEP의 하위-집합 또는 변이가 구현될 수 있다. 또한, 이하에 더 상세히 설명되는 바와 같이, 이러한 MEP 각각은 세션적(sessionful)일 수 있다.
신뢰성(예를 들어, WS-ReliableMessaging, HTTPR 등), 보안(예를 들어, WS-Security, HTTPS, 서명 타입, 암호화 타입 등), 채널이 유니캐스트 또는 멀티캐스트를 지원하는지의 여부, 세션이 지원되는지의 여부, 트랜잭션된 지원, 큐잉, 발행 및 구독, 인코딩 메커니즘(예를 들어, SOAP 엔벨로프, 이진, 텍스트 등), 및 메시지를 서비스와 교환하는 데 어떤 전송(예를 들어, HTTP(HyperText Transport Protocol), FTP(File Transfer Protocol), SMTP(Simple Message Transfer Protocol), TCP(Transmission Control Protocol), UDP(User Datagram Protocol), SMS(Short Message Service), SNA(Systems Network Architecture), GPRS(General Packet Radio Service) 등)을 사용하는지와 같은 다른 통신 시멘틱에 따라 런타임 통신 채널(120)(개별적인 채널 컴포넌트들(125)을 포함)이 타입지정되고 생성될 수 있도록 규정한다.
또한, 런타임 통신 채널(120)을 타입지정하는 데 사용되는 통신 시멘틱의 다수의 다른 타입이 있음을 유념한다. 따라서, 상술된 목록은 모두 포괄적인 것으로 의도되지 않고, 런타임 통신 채널(120)을 생성하거나 타입지정하기 위한 통신 시멘틱에 대한 임의의 특정 참조는 설명을 위해 사용된 것일 뿐이며, 명확히 주장하지 않는 한 본 발명의 범주를 제한하거나 달리 좁히는 것으로 의도되지 않는다.
런타임 통신 채널(120)이 타입지정되고 생성되는 방법에 상관없이, 채널(120)은 입/출력(I/O) 추출을 나타내며, (1) 어플리케이션 데이터 또는 메시지(110)(예를 들어, SOAP 메시지)를 수용하고; (2) (신뢰성 채널 컴포넌트(125), 보안 채널 컴포넌트(125) 및 전송 채널 컴포넌트(125)로서 여기에 도시된) 다양한 통신 시멘틱을 구현하고; (3) 채널 컴포넌트(125)에 따라 전송을 위한 메시지(110)를 포맷팅하고; (4) "배선"을 통해 메시지(110)를 전송하는 것을 담당한다.
서비스 측(160)에서, 청취자 팩토리(170)는 특정 네트워크 주소 상에서 새로운 메시지, 예를 들어, 메시지(110)를 듣고, 서비스의 특정 엔드포인트(155)와 통신하는 청취자(145)를 생성하기 위한 메커니즘을 제공한다. 각각의 특정 청취자(145)는 유일한 메시지 필터(150)를 가짐으로써, 특정 청취자(145)의 필터에 매칭되는 청취자 팩토리(170)로부터 수신되는 메시지(110)가 해당 청취자(145)에게 전달되도록 한다. 다시 말하면, 청취자 팩토리(170)는 역다중화기(175)를 이용하여, 메시지(110)의 일부분을 역다중화하고 그 메시지를 그것의 메시지 필터(150)에 기초하여 적절한 청취자(145)에게 송신한다.
청취자(145)는 서비스 측(160) 상에서 새로운 런타임 통신 채널(120)을 듣고 수용하기 위한 추출을 나타낸다. 엔드포인트(155)는 준비되어 있을 때, "accept channel"을 호출할 것이다. 청취자(145)에 의해 새로운 채널(120)이 검출될 때, "accept channel"의 호출은 적절한 엔드포인트(155)에게 새로운 채널(120)의 존재를 알리면서 완료할 수 있다. 이 서비스 통신 채널(147)은 엔드포인트(155)가 메시지(110)를 적절히 프로세싱하게 하기 위해 메시지(1110)에 대한 통신 시멘틱을 역다중화하기 위해 런타임 통신 채널(120)의 역 방향으로 사용될 수 있다. 다시 말하면, 메시지(110)는 런타임 통신 채널(120)에서 구현된 통신 시멘틱을 역다중화하기 위한 서비스 통신 채널(147)의 플러그가능한 모듈러 채널 컴포넌트를 통해 반복적으로 통과된다.
상이한 통신 채널이 생성되더라도, 세션 통신 채널은 런타임 통신 채널(120)과 동일할 수 있음을 유념한다. 다시 말하면, 청취자(145)는 단지 역 순서로일 뿐, 동일한 런타임 통신 채널(120)을 사용할 수 있다. 따라서, 서비스 통신 채널(147)은 넓게, 런타임 통신 채널(120)을 포함하도록 구성되어야 한다.
다른 예시적인 실시예는 상술된 메시지 교환 패턴이 접속없는 채널과 접속-지향의 채널, 예를 들어, 세션 채널 둘 다를 가질 수 있도록 규정한다. 일반적으로, 세션은 메시지 교환 패턴의 모든 참여자들 사이에서 공유된 문맥이다. 세션은 3개의 주요 컴포넌트, (1)세션 설정(모든 참여자들 사이에서 공유된 문맥을 설정하기 위한 프로세스); (2)메시지 상호관련(메시지 그룹을 공유된 문맥의 인스턴스에 상호관련시키는 메소드); (3)세션 종료(모든 참여자들 사이에서 공유된 문맥을 종료하기 위한 프로세스)를 가질 수 있다. 세션 설정과 세션 종료 둘 다는 명시적일 수도 있고 내재적일 수도 있음을 유념한다. 즉, (예를 들어, 신뢰성 및 TCP에서) 명시적인 세션 설정이 있을 수도 있고, 세션 설정은 내재적일 수도 있다(예를 들 어, 상호관련 ID가 사용됨). 예시적인 실시예는 또한, 직접적인 세션(세션의 수명은 채널(120)의 수명에 결부됨) 및 큐잉된 세션(이 두 수명이 결부되지 않음)인 세션 채널을 제공한다.
관련없는 채널에 대하여, 예시적인 실시예는 클라이언트(105)가 런타임 통신 채널(120)을 호출 또는 요구할 수 있는 횟수와 서비스(160)가 호출을 생성하거나 채널(120)(일반적으로 이러한 타입의 채널(120)을 통해 전송되는 모든 메시지는 데이터 그램으로 간주됨)을 수용하는 횟수 간의 어떠한 상호관련성도 제공하지 않는다. "직접" 세션에 있어서, 일반적으로, 클라이언트가 서비스(160)에 채널을 호출 또는 요구(135)하는 횟수와 서비스(160)가 "accept channel"을 호출하는 횟수 간에는 일대일 대응이 존재한다. "큐잉된" 세션에 있어서, 연관된 부품들 사이에서 공유되는 단일의 세션이 존재한다. 채널은 세션의 상태를 경고하지 않고서 세션에 부착되고/그것으로부터 분리될 수 있다. 따라서, 클라이언트(105)가 런타임 통신 채널(120)을 요구하는 횟수와 서비스(160)가 채널(120)을 수용하는 횟수 간의 일치는 존재하지 않는다.
예시적인 실시예는 통신 오브젝트(예를 들어, 채널 팩토리(130), 청취자 팩토리(170), 청취자(145) 및 채널(120))가 공통 상태 기계를 공유하도록 규정한다. 공통 상태 기계 변환의 일례가 도 1c에 도시되어 있으며, 3개의 주요 상태 및 3개의 중간 상태를 갖는다. 일반적으로, 통신 오브젝트는 생성된 상태(192)에서 시작한다. 생성된 상태(192)에서, 오브젝트의 구성, 이벤트 등록의 발생 등이 일어날 수 있다. 사용자가 오브젝트의 구성을 마치면, 사용자는 Open() 호출을 이용하여 오브젝트를 오픈된 상태(196)로 변환시킬 수 있다. 이것은 오브젝트가 활성화 및 이용가능해지도록 할 것이다. 생성된 상태(192)와 오픈된 상태(196) 사이에 중간 상태가 존재하는데, 이것은 오브젝트가 Open() 호출의 시작과 Open() 호출이 완료될 때 사이에 있는 상태임을 유념한다. 따라서, 통신 오브젝트는 록 다운(lock down)되고 활성될 수 있지만, I/O는 아직 수용되어서는 안된다.
오브젝트는 적절하거나 적절하지 못한 방식으로 사용가능한 상태를 멈출 수 있다. 오브젝트는 오픈된 상태(196)로부터 Close() 이벤트를 호출함으로써 적절히 종료할 수 있는데, 이것은 오브젝트를 오픈된 상태(196)로부터 종료된 상태(198)로 변환시킬 것이다. 대안적으로, 에러 조건 또는 외부 자극이 오브젝트를 멈추게 하여, 적절하지 못하게 중단하게 할 수 있다. 따라서, 도 1c에 나타난 바와 같이, 임의의 주요 상태에서, 통신 오브젝트를 현재 상태로부터 종료된 상태(198)로 변환시키기 위해 Abort() 호출이 형성될 수 있다. 데이터를 핸들링하기 전에 에러가 발생할 수 있고, 그 에러는 메시지(110)의 프로세싱 동안 표준 예외를 통해 전파된다는 것을 유념한다. 세션 실패도 Abort() 이벤트를 통해 전파될 수 있다는 것도 유념한다.
도 1b는 예시적인 실시예에 따른 런타임 통신 채널(120)의 더 상세한 모델을 도시한다. 도시된 바와 같이, 통신 채널(120) 내의 각각의 오브젝트는 표준 인터페이스(180)를 이용하여 통신한다. 표준 인터페이스(180)는 하나의 모듈(165) 또는 컴포넌트(185, 190)로부터 다른 모듈 또는 컴포넌트로 통신 시멘틱을 전달하는 단순한 인터페이스이다. 또한, 이 표준 인터페이스(180)는 상술된 메시지 교환 패 턴들 중 임의의 것에 기초하여 선택되는 표준 인터페이스들의 집합 중 하나의 표준 인터페이스이다. 다양한 채널 컴포넌트(185, 190)(또는, 심지어 어플리케이션 모듈(165))는 통신 시멘틱의 일부분을 수행할 수 있다. 남아있는 부분들은 표준 인터페이스(180)를 통해 통신 채널(120) 내의 다음의 채널 컴포넌트(185, 190)에 전달될 수 있다.
다양한 채널 컴포넌트들(185, 190) 중 임의의 하나의 채널 컴포넌트는 메시지(110)에 대해 통신 시멘틱을 완료할 수 있음을 유념한다. 예를 들어, 채널 컴포넌트가 신뢰성 컴포넌트이고 메시지(110)가 사본이면, 채널 컴포넌트는 단순히 메시지(110)를 드롭함으로써 통신 시멘틱을 완료할 수 있다. 다른 예는 명확한 세션 생성을 이용하는 프로토콜로 세션을 설정하는 것일 수 있는데, 여기서, 더 낮은 채널 컴포넌트들(예를 들어, 전송 채널 컴포넌트(190)) 사이에서 교환될 수 있는 메시지(110)가 존재하고, 더 높은 채널 컴포넌트(예를 들어, 채널 컴포넌트(185)) 또는 모듈은 이 메시지(110)에 관해 알고 있지 못한다. 그러한 것으로서, 메시지(110)는 각각의 채널 컴포넌트(185, 190), 또는 런타임 통신 채널(120)과 인터랙트하는 다른 컴포넌트 또는 모듈들(예를 들어, 어플리케이션 모듈(165))을 통해 전파될 수도 있고 전파되지 않을 수도 있다.
예를 들어, 메시지(110)는 어플리케이션 모듈(165)에서 수신될 수 있으며, 여기서, 요구-응답 및 보안의 통신 시멘틱이 수신된다. 어플리케이션 모듈(165)은 표준 인터페이스(180)를 이용하여, 다양한 통신 컴포넌트들(185, 190)을 통해 이러한 통신 시멘틱을 릴레이(relay)하거나 델리게이트(delegate)할 수 있는데, 여기 서, 각각의 채널 컴포넌트는 다른 컴포넌트들(185, 190) 또는 모듈들(165)의 특정 구현 세부사항으로부터 추출된다. 예를 들어, 채널 컴포넌트(185)는 예를 들어, WS-Security를 이용하여 보안 컴포넌트를 구현할 수 있고, 전송 채널 컴포넌트(190)는 요구-응답 전송, 예를 들어, HTTP일 수 있다. 따라서, 통신 시멘틱은 통신 채널(120) 내의 서로 다른 채널 컴포넌트들(185, 190)에 의해 수행될 수 있는 한편, 다른 컴포넌트(185, 190) 또는 모듈(165)은 특정 구현 세부사항으로부터 추출된다.
이러한 추출 계층으로 인해, 특정 통신 시멘틱을 수행하는 컴포넌트(185, 190) 또는 모듈(165)은 다형으로 제공된다. 따라서, 대안으로서, 어플리케이션 모듈(165)은 표준 인터페이스(180)를 통해 예를 들어, HTTPS를 이용하여 지시된 통신 시멘틱을 실행할 수 있는 단일의 채널 컴포넌트(특히, 전송 채널 컴포넌트(190))에 동일한 통신 시멘틱(즉, 요구-응답 및 보안)을 전달할 수 있다. 또한, 임의의 개수의 채널 컴포넌트(185)는 표준 인터페이스(180)를 통해 통신하고, 전체 통신 시멘틱의 일부분을 제공할 수 있다. 그 후, 채널 컴포넌트(185, 190)(또는 모듈, 예를 들어, 어플리케이션 모듈(165))는 표준 인터페이스(180)를 통해 남아있는 부분을 전달할 수 있고, 통신 시멘틱이 계층화되는 방법의 특정 구현으로부터 추출될 수 있다.
보여지는 바와 같이, 각각의 채널 컴포넌트(185, 190)는 완전히 플러그가능할 수 있어, 새로운 채널 컴포넌트(185, 190)가 필요할 때나, 오래된 채널 컴포넌트가 요구되지 않을 때, 그것은 단순히 전체 통신 채널(120)에 플러그인될 수 있고 그로부터 플러그아웃될 수 있다. 또한, 모델은 다형으로 나타나기 때문에, 채널은 스스로 확장가능하다. 예를 들어, 상기 주어진 예에서, 요구-응답 통신 시멘틱은 모델을 깨뜨리지 않고서 대안적인 전송, 예를 들어, TCP에 의해 만족되었다. 따라서, 각각의 채널 컴포넌트(185)는 완전히 확장가능할 뿐만 아니라 플러그가능하고, 이에 의해, 통신 채널(120)을 메시지 교환 패턴에만 바인딩한다. 이러한 완전히 확장가능하고 플러그가능한 모델은 몇몇 이로운 특징을 갖는다. 예를 들어, 업데이트된 버전 및 새로운 통신 시멘틱이 이용가능해질 수 있을 때, 그것은 현재의 통신 채널(120)을 깨뜨리거나 재작성할 필요 없이, 시스템에 플러그인될 수 있다.
통신 채널이 MEP에 바인딩되더라도, 상술된 바와 같이, 메시지 교환 패턴 자체는 역시 확장가능하고 플러그될 수 있다. 따라서, 새로운 메시지 교환 패턴이 식별되고 개발될 때, 또한, 이러한 통신 시멘틱은 상술된 것과 유사한 방식으로 모델링 또는 추가될 수 있다. 각각의 통신 컴포넌트(185, 190)는 확장가능하고 플러그가능하기 때문에, 본 발명은 특정 메시지 교환 패턴이 아닌 다른 어떤 특정 통신 시멘틱에도 연계되지 않는다는 것을 유념한다. 그러한 것으로서, 통신 시멘틱에 대한 임의의 특정 참조는 오직 설명의 목적을 위해 사용되며, 명백하게 주장되지 않는 한 본 발명의 범주를 제한하거나 달리 좁게하는 것으로 의도되지 않는다.
또한, 채널 컴포넌트들(185)의 순서는 상호변경가능할 수 있음을 유념한다. 예를 들어, 보안을 위한 채널 컴포넌트(185)는 신뢰성을 위한 채널 컴포넌트(185) 이전에 발생할 수 있다. 그러나, 이러한 두 개의 채널 컴포넌트(185)의 순서는 상호교환가능해서, 신뢰성 통신 시멘틱이 보안 통신 시멘틱 이전에 발생하도록 할 수 있다. 따라서, 다른 엄격한 모델과 달리, 이 통신 채널은 유연하고, 스케일러블하고, 플러그가능하고, 확장가능하다.
채널 컴포넌트(185)의 특정 구현 세부사항이 어플리케이션 모듈(165)로부터 추출되더라도, 어플리케이션(165)은 특정 통신 시멘틱이 지원되는지를 알 필요가 있을 때가 있다. 따라서, 본 발명은 채널 검사 및 제어를 제공하며, 여기서, 통신 채널(120) 내의 다양한 채널 컴포넌트는 그것이 전체 통신 시멘틱의 일부분을 수행하는지를 결정하기 위해 질의될 수 있다. 이 정보는 어플리케이션 모듈(165)에 리레이된다. 어플리케이션 모듈(165)은 통신 시멘틱이 만족될 수 있다고 결정할 수 있지만, 여전히, 어느 채널 컴포넌트(185, 190)가 통신 시멘틱을 수행할 것인지, 및 어떻게 수행할 것인지와 같은 특정 구현 세부사항을 알 수 없음을 유념한다.
특정 메시지 교환 패턴(예를 들어, 이중 MEP)의 이벤트에서, 역 런타임 통신 채널(120)이 필요할 수 있음을 유념한다. 따라서, 다른 예시적인 실시예는 런타임 통신 채널(120)이 제1 런타임 통신 채널(120)의 수신에 기초하여 타입지정되고/되거나 생성될 수 있도록 규정한다. 이 실시예에서, 서비스(160) 및 클라이언트(105)의 역할은 클라이언트(105)로부터 런타임 통신 채널(120)을 수신하고 수용하는 서비스(160)에 따라 반대가 된다. 특히, 클라이언트(105)로부터 런타임 통신 채널(120)을 수신할 때, 서비스(160)는 채널 팩토리(130)로부터 채널을 요구(135)하고, 핸들(140)을 수신하고, 채널 팩토리(130)로부터 생성된 런타임 통신 채널(120)에 따라 응답 메시지를 프로세싱할 수 있다. 클라이언트(105)는 상술된 예시적인 실시예에 따라 응답 메시지를 역다중화할 수 있다.
본 발명은 또한, 기능 단계 및/또는 비-기능 동작을 포함하는 방법의 측면에서 설명될 수 있다. 다음은 본 발명을 실시하는 데 수행될 수 있는 단계 및/또는 동작에 대한 설명이다. 보통, 기능 단계는 성취되는 결과의 측면에서 본 발명을 설명하는 반면, 비-기능 동작은 특정 결과를 성취하기 위한 보다 더 특정적인 액션을 설명한다. 기능 단계 및/또는 비-기능 동작은 특정 순서로 설명 또는 주장될 수 있지만, 본 발명은 어떠한 특정 순서, 또는 단계 및/또는 동작의 조합으로도 제한될 필요가 없다. 또한, 청구범위의 인용(및, 도 2 내지 4의 순서도에 대한 다음의 설명)에 단계 및/또는 동작을 사용하는 것은, 그러한 용어의 요구된 특정 사용을 나타내는 데 사용된다.
도 2 내지 도 4는 본 발명의 다양한 예시적인 실시예에 대한 예시적인 순서도를 도시한다. 도 2 내지 도 4에 대한 다음의 설명은 때때로, 도 1a 내지 도 1c의 대응 구성요소를 참조한다. 이들 도면의 특정 구성요소에 대한 참조가 이루어질 수 있지만, 그러한 구성요소는 단지 설명을 위해 사용되는 것이며, 명백히 주장되지 않는 한 본 발명의 범주를 제한하거나 달리 좁게하는 것으로 의도되지 않는다.
도 2는 런타임 통신 채널의 플러그가능한 모듈러 채널 컴포넌트를 통해 메시지를 반복적으로 전달함으로써 엔드포인트들 간의 전송을 위해 메시지를 구성하는 방법(200)의 예시적인 순서도를 도시한다. 플러그가능한 모듈러 채널 컴포넌트 각각은, 다형으로 표현되는 컴포넌트들 간의 통신 시멘틱의 세부 프로세싱을 가증하게 하는 복수의 표준 인터페이스들 중 하나의 표준 인터페이스를 구현한다.
방법(200)은 적어도 메시지 교환 패턴을 포함하는 통신 시멘틱을 수신하는 단계(205)를 포함한다. 예를 들어, 런타임 통신 채널(120) 내의 제1 채널 컴포넌트(185)는 입력, 출력, 요구, 응답, 이중화 또는 이들 중 임의의 것에 대한 세션 상태(sessionful state) 중 하나 이상을 포함하는 통신 시멘틱을 수신할 수 있다. 다른 통신 시멘틱은 또한, 전송 타입, 인코딩 타입, 유니캐스트 지원, 멀티캐스트 지원, 트랜잭션 지원, 보안 지원, 보호 지원, 신뢰성 메시징 보증, 발행 & 구독 지원 및 큐잉된 지원을 포함한다. 그러한 통신 시멘틱은 메시지 교환 패턴에 기초하여 복수의 표준 인터페이스들로부터 선택된 하나의 표준 인터페이스를 통해 수신된다. ("집합"(모든 이용가능한 옵션을 의미할 수 있음)이 아닌 "복수"(2 이상을 의미)가 순서도에 대한 다음의 설명 및 청구범위의 인용에서 사용된다. 따라서, 본 발명은 모든 표준 인터페이스가 선택하는 데 이용가능하도록 요구하지 않는다)
방법(200)은 또한, 표준 인터페이스를 통해, 메시지 교환 패턴의 일부분인 메시지를 수신하는 단계(210)를 포함한다. 예를 들어, 통신 컴포넌트(185)는 표준 인터페이스(180)를 통해 메시지(110)를 수신할 수 있다. 그 후, 방법(200)은 또한, 메시지에 대한 통신 시멘틱의 적어도 일부분을 수행하는 단계(215)를 포함한다. 예를 들어, 통신 시멘틱이 요구-응답 메시지 교환 패턴인 상술된 예에서와 같이, 보안(예를 들어, WS-Security) 채널 컴포넌트(185)는 메시지에 대해 통신 시멘틱의 보안 부분을 수행할 수 있다.
표준 인터페이스(180)는 런타임 통신 채널과 인터랙트하는 다른 컴포넌트들 또는 모듈들로부터, 메시지(110)에 대해 통신 시멘틱의 적어도 일부분을 수행하기 위한 구현 세부사항을 추출한다. 예를 들어, 제1 채널 컴포넌트(185) 내의 구현 세부사항은 어플리케이션 모듈(165), 전송 채널 컴포넌트(190), 및 런타임 통신 채널(120)과 인터랙트하는 다른 모듈 또는 컴포넌트로부터 추출된다.
그 후, 메시지(110) 및 그것의 남아있는 통신 시멘틱은, 있다면, 더 이상의 프로세싱을 위해 다음의 적절한 모듈 또는 컴포넌트에 송신될 수 있다. 예를 들어, 통신 컴포넌트(185)는 메시지(110) 및 임의의 남아있는 통신 시멘틱을 표준 인터페이스(180)를 통해 송신할 수 있다. 이 프로세스는 통신 시멘틱 전부가 구현될 때까지(이 때, 통신 시멘틱의 역다중화를 위해 메시지(110)를 서비스에 송신할 수 있음) 그러한 모듈러 컴포넌트를 통해 반복적으로 수행될 수 있다. 대안적으로, 제1 채널 컴포넌트(185)가 통신 시멘틱을 완료하면, 메시지(110)는 런타임 통신 채널(120)과 인터랙트하는 다른 채널 컴포넌트(190) 또는 모듈(165)에 전달되지 않을 것이다.
도 3은 메시지로부터 통신 시멘틱을 역다중화하도록 구성된 서비스 통신 채널을 생성하는 방법(300)의 예시적인 순서도를 도시한다. 방법(300)은 런타임 통신 채널을 수용하기 위한 요구를 수신하는 단계(305)를 포함한다. 따라서, 서비스(160)에서, 청취자 팩토리(170) 또는 청취자(145)는 메시지(110)를 수신할 수 있다. 청취자 팩토리(170)는 메시지(110)를 수신하면, 역다중화기(175)를 이용하여, 메시지의 일부분을 역다중화하고 적절한 청취자(145)를 생성할 수 있다. 그 후, 적절한 메시지 필터(150)를 갖는 청취자는 런타임 통신 채널(120)을 송신받을 수 있다.
방법(300)은 또한, 런타임 통신 채널을 수용하는 단계(310)를 포함한다. 예를 들어, 엔드포인트(155)가 준비되어 있을 때, 그것은 "accept channel"을 호출할 것이고, 그 호출은 청취자(145)가 런타임 통신 채널(120)을 검출할 때 반환될 수 있다. 런타임 통신 채널(120)은 적어도 메시지 교환 패턴을 포함하는 통신 시멘틱에 대응한다. 이 메시지 교환 패턴은 전술된 교환 패턴들 중 임의의 패턴일 수도 있고, 새로운 패턴 또는 다른 잘 알려진 메시지 교환 패턴일 수도 있다.
그 후, 방법(300)은 또한, 통신 시멘틱에 따라 프로세싱된 메시지를 수신하는 단계(315)를 포함한다. 예를 들어, 청취자(145)는 신뢰성, 보안 및 요구-응답 메시지 교환 패턴과 같은 그러한 통신 시멘틱에 따라 프로세싱된 메시지(110)를 수신할 수 있다. 방법(300)은 또한, 서비스 통신 채널을 생성하는 단계(320)를 포함한다. 예를 들어, 메시지, 및 메시지 교환 패턴과 같은 통신 시멘틱을 수신할 때, 청취자(145)는 통신 시멘틱에 따라 메시지를 역다중화하기 위한 서비스 통신 채널(147)을 생성할 수 있다. 그 후, 방법(300)은 메시지(100)의 적어도 일부분을 역다중화하기 위한 표준 인터페이스를 통해 통신 시멘틱 및 메시지를 서비스 통신 채널 내의 제1 채널 컴포넌트에 전달하는 단계(325)를 포함한다. 표준 인터페이스(180)는 메시지 교환 패턴에 기초하여 복수의 표준 인터페이스들로부터 선택된다. 또한, 표준 인터페이스(180)는 서비스 통신 채널(120)과 인터랙트하는 다른 컴포넌트 또는 모듈로부터, 메시지(110)의 적어도 일부분의 역다중화를 위한 구현 세부사항을 추출한다.
메시지 및 통신 시멘틱은 런타임 통신 채널(120)에 관하여 상술된 것과 유사 한 방식으로 델리게이트될 수 있다. 그러나, 통신 시멘틱에 따라 메시지(110)를 프로세싱하는 것 보다, 메시지는 역다중화되는데, 여기서, 메시지의 적어도 일부분은 통신 시멘틱에 따라 역다중화된다. 그 후, 메시지는 더 이상의 프로세싱을 위해 다른 모듈 및 컴포넌트에 반복적으로 전달될 수 있다(예를 들어, 메시지는 메시지를 프로세싱하고 출력으로 응답하기 위한 엔트포인트(155)에 송신될 수 있음).
더 상세하게, 도 4에 도시된 바와 같이, 본 발명은 서비스 통신 채널의 플러그가능한 모듈러 채널 컴포넌트를 통해 메시지를 반복적으로 전달함으로써, 서비스 내의 엔드포인트에서의 소비를 위해 메시지를 프로세싱하는 방법(400)을 제공한다. 방법(300)과 마찬가지로, 방법(400)은 적어도 메시지 교환 패턴을 포함하는 통신 시멘틱을 수신하는 단계(405)를 포함한다. 상술된 바와 같이, 통신 시멘틱은 메시지 교환 패턴에 기초하여 복수의 표준 인터페이스들로부터 선택된 표준 인터페이스를 통해 수신된다. 방법(400)은 또한, 표준 인터페이스를 통해, 메시지 교환 패턴의 일부분인 메시지를 수신하는 단계(410)를 포함한다. 메시지(110)는 예를 들어, 신뢰성, 보안, 및 메시지 교환 패턴에 대한 출력과 같은 다양한 통신 시멘틱에 따라 프로세싱된다.
그 후, 방법(400)은 메시지에 대해 통신 시멘틱의 적어도 일부분을 역다중화하는 단계(415)를 포함한다. 특히, 서비스 채널(147) 내의 채널 컴포넌트는 메시지에 대한 것인 통신 시멘틱의 적어도 일부분, 예를 들어, 신뢰성 부분을 역다중화할 수 있다. 표준 인터페이스는 서비스 통신 채널과 인터랙트하는 다른 컴포넌트 또는 모듈로부터, 메시지에 대해 통신 시멘틱의 적어도 일부분을 역다중화하기 위 한 구현 세부사항을 추출한다.
이전과 같이, 메시지 및 남아있는 통신 시멘틱은 적절한 프로세싱을 위해 다른 채널 컴포넌트 또는 모듈, 예를 들어, 엔드포인트(155)에 송신 또는 전달될 수도 있고 송신 또는 전달되지 않을 수도 있다. 이것은 상술된 바와 같이, (메시지(110)가 보다 더 낮은 컴포넌트들 사이에서만 드롭 또는 통신될 때) 채널 컴포넌트가 통신 시멘틱을 완료하는지의 여부에 대한 조건이 된다.
본 발명의 범주 내의 실시예는 또한, 컴퓨터-실행가능 명령어 또는 데이터 구조를 수반하거나 저장한 컴퓨터-판독가능 매체를 포함한다. 그러한 컴퓨터-판독가능 매체는 범용 또는 특수 목적 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있다. 예를 들어, 그러한 컴퓨터-판독가능 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광 디스크 저장장치, 자기 디스크 저장장치 또는 다른 자기 저장 장치, 또는 컴퓨터-실행가능 명령어 또는 데이터 구조의 형태의 요구된 프로그램 코드 수단을 수반 또는 저장하는 데 사용될 수 있고 범용 또는 특수 목적 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있지만, 이것으로 제한되지 않는다. 네트워크 또는 다른 통신 접속(유선, 무선, 또는 유선 또는 무선의 조합)을 통해 컴퓨터에 정보가 전송 또는 제공될 때, 컴퓨터는 적절히 그 접속을 컴퓨터-판독가능 매체로서 본다. 따라서, 임의의 그러한 접속은 적절히, 컴퓨터-판독가능 매체라고 불린다. 상술된 것의 조합도 컴퓨터-판독가능 매체의 범주 내에 포함되어야 한다. 컴퓨터-실행가능 명령어는 예를 들어, 범용 컴퓨터, 특수 목적 컴퓨터, 또는 특수 목적 프로세싱 장치가 특정 기능 또는 기능들의 그룹을 수행하게 하는 명령어 및 데이터를 포함한다.
도 5 및 다음의 설명은 본 발명이 구현될 수 있는 적합한 컴퓨팅 환경에 대한 간단하고 일반적인 설명을 제공하는 것으로 의도된다. 요구되지는 않지만, 본 발명은 네트워크 환경에서 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터-실행가능 명령어의 일반적 문맥으로 설명될 것이다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 타입을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트 데이터 구조 등을 포함한다. 컴퓨터-실행가능 명령어, 관련된 데이터 구조 및 프로그램 모듈은 본 명세서에 개시된 방법의 단계들을 실행하기 위한 프로그램 코드 수단의 예를 나타낸다. 그러한 실행가능 명령어 또는 관련된 데이터 구조의 특정 시퀀스는 그러한 단계들에서 설명된 기능을 구현하기 위한 대응 동작의 예를 나타낸다.
본 기술분야에 숙련된 기술자는, 본 발명이 개인용 컴퓨터, 핸드-헬드 장치, 멀티-프로세서 시스템, 마이크로프로세서-기반 또는 프로그램가능한 소비자 전자기기, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함한 여러 타입의 컴퓨터 시스템 구성을 갖는 네트워크 컴퓨팅 환경에서 실시될 수 있음을 이해할 것이다. 본 발명은 또한, 통신 네트워크를 통해 (유선 링크, 무선 링크, 또는 유선 또는 무선 링크의 조합에 의해) 링크되어 있는 로컬 및 원격 프로세싱 장치에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그래밍 모듈은 로컬 및 원격 메모리 저장 장치 둘 다에 배치될 수 있다.
도 5를 참조하여, 본 발명을 구현하기 위한 예시적인 시스템은 프로세싱 유 닛(521), 시스템 메모리(522), 및 시스템 메모리(522)를 포함한 다양한 시스템 컴포넌트를 프로세싱 유닛(521)에 연결시키는 시스템 버스(523)를 포함하여, 통상적인 컴퓨터(520) 형태의 범용 컴퓨팅 장치를 포함한다. 시스템 버스(523)는 메모리 버스 또는 메모리 제어기, 주변장치 버스, 및 다양한 버스 아키텍처들 중 임의의 것을 사용하는 로컬 버스를 포함한 여러 타입의 버스 구조들 중 임의의 것일 수 있다. 시스템 메모리는 ROM(524) 및 RAM(525)을 포함한다. 시작 동안 등에 컴퓨터(520) 내의 구성요소들 간의 정보의 전송을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(BIOS)(526)은 ROM(524) 내에 저장될 수 있다.
컴퓨터(520)는 또한, 자기 하드 디스크(539)에 대해 판독 및 기록하기 위한 자기 하드 디스크 드라이브(527), 분리형 자기 디스크(529)에 대해 판독 또는 기록하기 위한 자기 디스크 드라이브(528), 및 CD-ROM 또는 기타 광 매체와 같은 분리형 광 디스크(531)에 대해 판독 또는 기록하기 위한 광 디스크 드라이브(530)를 포함할 수 있다. 자기 하드 디스크 드라이브(527), 자기 디스크 드라이브(528) 및 광 디스크 드라이브(530)는 각각, 하드 디스크 드라이브 인터페이스(532), 자기 디스크 드라이브-인터페이스(533) 및 광 드라이브 인터페이스(534)에 의해 시스템 버스(523)에 접속된다. 드라이브 및 그에 관련된 컴퓨터-판독가능 매체는 컴퓨터-실행가능 명령어, 데이터 구조, 프로그램 모듈 및 다른 데이터의 비휘발성 저장장치를 컴퓨터(520)에 제공한다. 본 명세서에 설명된 예시적인 환경은 자기 하드 디스크(539), 분리형 자기 디스크(529) 및 분리형 광 디스크(531)를 채용하지만, 자기 카세트, 플래시 메모리 카드, DVD, 베르누이 카트리지, RAM, ROM 등을 포함한 데이 터를 저장하기 위한 다른 타입의 컴퓨터 판독가능 매체가 사용될 수 있다.
오퍼레이팅 시스템(535), 하나 이상의 어플리케이션 프로그램(536), 다른 프로그램 모듈(537) 및 프로그램 데이터(538)를 포함한 하나 이상의 프로그램 모듈을 포함한 프로그램 코드 수단은 하드 디스크(539), 자기 디스크(529), 광 디스크(531), ROM(524) 또는 RAM(525) 상에 저장될 수 있다. 사용자는 키보드(540), 포인팅 장치(542), 또는 마이크로폰, 조이 스틱, 게임패드, 위성 접시, 스캐너 등과 같은 다른 입력 장치(도시되지 않음)를 통해 컴퓨터(520)에 명령어 및 정보를 입력할 수 있다. 이러한 입력 장치 및 그 외의 입력 장치는 종종, 시스템 버스(523)에 연결된 직렬 포트 인터페이스(546)를 통해 프로세싱 유닛(521)에 접속된다. 대안적으로, 입력 장치는 병렬 포트, 게임 포트 또는 USB와 같은 다른 인터페이스에 의해 접속될 수 있다. 모니터(547) 또는 다른 디스플레이 장치는 또한, 비디오 어댑터(548)와 같은 인터페이스를 통해 시스템 버스(523)에 접속된다. 모니터 외에, 개인용 컴퓨터는 일반적으로, 스피커 및 프린터와 같은 다른 주변 출력 장치(도시되지 않음)를 포함한다.
컴퓨터(520)는 원격 컴퓨터(549a 및 549b)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 이용하여 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(459a 및 549b)는 각각 또다른 개인용 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 다른 공통 네트워크 노드일 수 있으며, 메모리 저장 장치(550a 및 550b) 및 그에 관련된 어플리케이션 프로그램(536a 및 536b)만이 도 5에 도시되었지만, 일반적으로 컴퓨터(520)에 관해 상술된 구성요소들 중 다수 또는 전부를 포함한다. 도 5에 도시된 논리적 접속은 예로써 여기에 나타난 LAN(551) 및 WAN(552)을 포함하지만, 이것으로 제한되지 않는다. 그러한 네트워킹 환경은 사무실형 또는 기업형 컴퓨터 네트워크, 인트라넷 및 인터넷에서 흔하다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(520)는 네트워크 인터페이스 또는 어댑터(553)를 통해 로컬 네트워크(551)에 접속된다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(520)는 모뎀(554), 무선 링크, 또는 인터넷과 같은 광역 네트워크(552)를 통해 통신을 설정하기 위한 다른 수단을 포함할 수 있다. 내장형 또는 외장형일 수 있는 모뎀(554)은 직렬 포트 인터페이스(546)를 통해 시스템 버스(523)에 접속된다. 네트워크 환경에서, 컴퓨터(520)에 관해 도시된 프로그램 모듈, 또는 그것의 부분들은 원격 메모리 저장 장치 내에 저장될 수 있다. 도시된 네트워크 접속은 예시적이며, 광역 네트워크(552)를 통한 통신을 설정하는 다른 수단이 사용될 수 있음을 이해할 것이다.
본 발명은 그 취지 또는 필수적인 특징으로부터 벗어나지 않고서 다른 특정 형태로 구현될 수 있다. 본 명세서에 개시된 실시예는 모든 면에서 단지 예시적일 뿐이며 제한적이지 않은 것으로서 고려되어야 한다. 따라서, 본 발명은 상술된 설명에 의해서 보다는, 첨부된 청구범위에 의해 나타난다. 본 청구범위의 등가물의 의미 및 범주 내에 있는 모든 변경은 그 범주 내에 포함되어야 한다.
본 발명의 통신 채널은 유연하고, 스케일러블하고, 플러그가능하고, 확장가능하다.

Claims (20)

  1. 분산 시스템에서, 런타임 통신 채널의 플러그가능한 모듈러 채널 컴포넌트들을 통해 메시지를 반복적으로(recursively) 전달함으로써 - 상기 플러그가능한 모듈러 채널 컴포넌트들 각각은, 다형(polymorphic)으로 표현되는 다른 컴포넌트들 또는 모듈들 간의 통신 시멘틱(communication semantics)의 세부 프로세싱을 가능하게 하는 복수의 표준 인터페이스들 중 하나의 표준 인터페이스를 구현함 -, 엔드포인트들 간의 전송을 위한 상기 메시지를 구성하는 방법으로서,
    복수의 채널 컴포넌트를 포함하는 런타임 통신 채널을 생성하는 단계 - 각각의 채널 컴포넌트는 표준 인터페이스를 구현하고, 상기 표준 인터페이스를 통해 메시지 및 상기 메시지에 적용하기 위한 통신 시멘틱이 상기 런타임 통신 채널 내의 또 다른 채널 컴포넌트로부터 수신되며, 각각의 채널 컴포넌트는 상기 메시지에 대한 통신 시멘틱의 분리된 일부분을 구현함 -;
    상기 런타임 통신 채널 내의 제1 채널 컴포넌트에서, 상기 통신 시멘틱에서 지정된 메시지 교환 패턴의 메시지들에 적용하기 위해 상기 통신 시멘틱을 수신하는 단계 - 상기 통신 시멘틱은 상기 메시지 교환 패턴에 기초하여 복수의 표준 인터페이스로부터 선택된 표준 인터페이스를 통해 수신됨 -;
    상기 제1 채널 컴포넌트에서, 상기 선택된 표준 인터페이스를 통해 상기 메시지 교환 패턴의 일부분인 메시지를 수신하는 단계;
    상기 제1 채널 컴포넌트에 의해, 상기 메시지 교환 패턴의 일부분인 메시지에 대한 상기 통신 시멘틱의 일부분을 수행하는 단계;
    상기 제1 채널 컴포넌트에 의해, 상기 선택된 표준 인터페이스를 통해 상기 런타임 통신 채널에서 상기 메시지 교환 패턴의 일부분인 메시지 및 상기 통신 시멘틱을 제2 채널 컴포넌트에 전달하는 단계; 및
    상기 제2 채널 컴포넌트에 의해, 상기 제1 채널 컴포넌트에 의해 수행된 부분과는 상이한 상기 메시지 교환 패턴의 일부분인 메시지에 대한 통신 시멘틱의 일부분을 수행하는 단계를 포함하고,
    상기 선택된 표준 인터페이스는 상기 런타임 통신 채널에서 상기 메시지 교환 패턴의 일부분인 메시지에 대한 통신 시멘틱의 일부분을 상기 제2 채널 컴포넌트가 수행하는 구현 세부사항을 상기 제1 채널 컴포넌트로부터 추출(abstract)하는 방법.
  2. 제1항에 있어서,
    상기 제2 채널 컴포넌트에 의해, 추가 프로세싱을 위해 상기 선택된 표준 인터페이스를 통해 상기 런타임 통신 채널에서 상기 메시지 교환 패턴의 일부분인 메시지 및 상기 통신 시멘틱을 제3 채널 컴포넌트에 전달하는 단계를 더 포함하는 방법.
  3. 제1항에 있어서,
    상기 런타임 통신 채널에서 상기 제1 채널 컴포넌트와 상기 제2 채널 컴포넌트의 순서는 상호교환가능한 방법.
  4. 제1항에 있어서,
    상기 제1 채널 컴포넌트는 어플리케이션 모듈로부터 상기 메시지 교환 패턴의 일부분인 메시지 및 통신 시멘틱을 수신하는 방법.
  5. 제4항에 있어서,
    상기 제1 채널 컴포넌트가 상기 어플리케이션 모듈로부터 상기 메시지 교환 패턴의 일부분인 메시지 및 통신 시멘틱을 수신하기 전에, 상기 어플리케이션 모듈은, 상기 런타임 통신 채널이 상기 통신 시멘틱을 지원한다고 판정하는 방법.
  6. 제1항에 있어서,
    상기 런타임 통신 채널은 제3 채널 컴포넌트를 포함하고,
    상기 방법은,
    상기 제2 채널 컴포넌트에 의해, 상기 통신 시멘틱이 상기 메시지 교환 패턴의 일부분인 메시지에 대해 완료되었다고 판정하고, 이에 응답하여 상기 런타임 통신 채널에서 상기 메시지 교환 패턴의 일부분인 메시지를 상기 제3 채널 컴포넌트에 전달하지 않는 단계를 더 포함하는 방법.
  7. 제1항에 있어서,
    상기 메시지 교환 패턴은 입력, 출력, 요구, 응답 또는 이중화(duples)로부터 선택되는 방법.
  8. 제1항에 있어서,
    상기 런타임 통신 채널은 클라이언트로부터 이전의 런타임 통신 채널을 수용하는 것에 응답하여 서비스에서 생성되는 방법.
  9. 제1항에 있어서,
    상기 통신 시멘틱은 전송 타입, 인코딩 타입, 유니캐스트 지원, 멀티캐스트 지원, 세션 지원, 트랜잭션 지원, 보안 지원, 보호 지원, 신뢰성 메시징 보증 및 큐잉된 지원 중 하나 이상을 포함하는 방법.
  10. 분산 시스템에서, 서비스 통신 채널의 플러그가능한 모듈러 채널 컴포넌트들을 통해 메시지를 반복적으로 전달함으로써 - 상기 플러그가능한 모듈러 채널 컴포넌트들 각각은, 다형으로 표현되는 컴포넌트들 또는 모듈들 간의 통신 시멘틱의 세부 프로세싱을 가능하게 하는 복수의 표준 인터페이스들 중 하나의 표준 인터페이스를 구현함 -, 서비스 내의 엔드포인트에서의 소비를 위해 상기 메시지를 프로세싱하는 방법으로서,
    청취자(listener)에서, 런타임 통신 채널을 수용하라는 요구를 수신하는 단계;
    적어도 메시지 교환 패턴을 포함하는 통신 시멘틱에 대응하는 런타임 통신 채널을 수용하는 단계;
    상기 청취자에서, 상기 통신 시멘틱에 따라 프로세싱되었고 상기 메시지 교환 패턴의 일부분인 메시지를 수신하는 단계;
    상기 메시지를 프로세싱하기 위한 서비스 통신 채널을 생성하는 단계 - 상기 서비스 통신 채널은 복수의 채널 컴포넌트를 포함하고, 각각의 채널 컴포넌트는 표준 인터페이스를 구현하고, 상기 표준 인터페이스를 통해 상기 통신 시멘틱 및 상기 통신 시멘틱에 따라 포맷팅된 상기 메시지 교환 패턴의 메시지가 상기 서비스 통신 채널 내의 다른 채널 컴포넌트로부터 수신되며, 각각의 채널 컴포넌트는 상기 메시지로부터 상기 통신 시멘틱의 분리된 일부분을 제거함 -;
    상기 메시지 교환 패턴에 기초하여 복수의 표준 인터페이스로부터 선택된 표준 인터페이스를 통해 상기 통신 시멘틱을 상기 서비스 통신 채널 내의 제1 채널 컴포넌트에 전달하는 단계; 및
    상기 선택된 표준 인터페이스를 통해 상기 메시지를 상기 제1 채널 컴포넌트에 전달하는 단계;
    상기 제1 채널 컴포넌트에 의해, 상기 메시지로부터 상기 통신 시멘틱의 일부분을 제거하는 단계;
    상기 선택된 표준 인터페이스를 통해 상기 메시지를 상기 서비스 통신 채널 내의 제2 채널 컴포넌트에 전달하는 단계; 및
    상기 제2 채널 컴포넌트에 의해, 상기 제1 채널 컴포넌트에 의해 제거된 상기 일부분과는 다른 상기 메시지로부터 상기 통신 시멘틱의 일부분을 제거하는 단계
    를 포함하고,
    상기 선택된 표준 인터페이스는 상기 제2 채널 컴포넌트가 상기 서비스 통신 채널 내의 상기 제1 채널 컴포넌트로부터의 메시지로부터 상기 통신 시멘틱의 상기 일부분을 제거하는 구현 세부사항을 추출하는 방법.
  11. 제10항에 있어서,
    상기 통신 시멘틱은 전송 타입, 인코딩 타입, 유니캐스트 지원, 멀티캐스트 지원, 세션 지원, 트랜잭션 지원, 보안 지원, 보호 지원, 신뢰성 메시징 보증 및 큐잉된 지원 중 하나 이상을 포함하는 방법.
  12. 제10항에 있어서,
    상기 메시지는 상기 청취자를 위한 메시지 필터에 기초하여 청취자 팩토리(listener factory)로부터 상기 청취자에게 전달되는 방법.
  13. 분산 시스템에서, 서비스 통신 채널의 플러그가능한 모듈러 채널 컴포넌트들을 통해 메시지를 반복적으로 전달함으로써 - 상기 플러그가능한 모듈러 채널 컴포넌트들 각각은, 다형으로 표현되는 컴포넌트들 또는 모듈들 간의 통신 시멘틱의 세부 프로세싱을 가능하게 하는 복수의 표준 인터페이스들 중 하나의 표준 인터페이스를 구현함 -, 서비스 내의 엔드포인트에서의 소비를 위해 상기 메시지를 프로세싱하는 방법으로서,
    복수의 채널 컴포넌트를 포함하는 서비스 통신 채널을 생성하는 단계 - 각각의 채널 컴포넌트는 표준 인터페이스를 구현하고, 상기 표준 인터페이스를 통해 통신 시멘틱 및 상기 통신 시멘틱에 따라 포맷팅된 메시지 교환 패턴의 메시지가 상기 서비스 통신 채널 내의 또 다른 채널 컴포넌트로부터 수신되며, 각각의 채널 컴포넌트는 상기 통신 시멘틱의 분리된 일부분을 상기 메시지로부터 제거함 -;
    상기 서비스 통신 채널 내의 제1 채널 컴포넌트에서, 적어도 메시지 교환 패턴을 포함하는 상기 통신 시멘틱을 수신하는 단계 - 상기 통신 시멘틱은 상기 메시지 교환 패턴에 기초하여 복수의 표준 인터페이스로부터 선택된 표준 인터페이스를 통해 수신됨 -;
    상기 제1 채널 컴포넌트에서, 상기 통신 시멘틱에 따라 프로세싱되었고 상기 메시지 교환 패턴의 일부분인 메시지를 상기 선택된 표준 인터페이스를 통해 수신하는 단계; 및
    상기 제1 채널 컴포넌트에 의해, 상기 메시지로부터 상기 통신 시멘틱의 일부분을 제거하는 단계;
    상기 선택된 표준 인터페이스를 통해 상기 메시지를 상기 서비스 통신 채널 내의 제2 채널 컴포넌트에 전달하는 단계; 및
    상기 제2 채널 컴포넌트에 의해, 상기 제1 채널 컴포넌트에 의해 제거된 상기 일부분과는 상이한 상기 메시지로부터 상기 통신 시멘틱의 일부분을 제거하는 단계
    를 포함하고,
    상기 선택된 표준 인터페이스는, 상기 제2 채널 컴포넌트가 상기 메시지로부터 상기 통신 시멘틱의 일부분을 제거하는 구현 세부사항을 상기 서비스 통신 채널 내의 상기 제1 채널 컴포넌트로부터 추출하는 방법.
  14. 제13항에 있어서,
    상기 통신 시멘틱은 전송 타입, 인코딩 타입, 유니캐스트 지원, 멀티캐스트 지원, 세션 지원, 트랜잭션 지원, 보안 지원, 보호 지원, 신뢰성 메시징 보증 및 큐잉된 지원 중 하나 이상을 포함하는 방법.
  15. 제13항에 있어서,
    상기 서비스 통신 채널 내의 상기 제1 채널 컴포넌트와 상기 제2 채널 컴포넌트의 순서는 상호교환가능한 방법.
  16. 제13항에 있어서,
    상기 메시지 교환 패턴은 입력, 출력, 요구, 응답 또는 이중화로부터 선택되는 방법.
  17. 제13항에 있어서,
    상기 서비스 통신 채널은 제3 채널 컴포넌트를 포함하고,
    상기 방법은,
    상기 제2 채널 컴포넌트에 의해, 상기 메시지로부터의 상기 통신 시멘틱의 제거가 완료되었다고 판정하고, 이에 응답하여 상기 메시지를 상기 서비스 통신 채널 내의 상기 제3 채널 컴포넌트에 전달하지 않는 단계를 더 포함하는 방법.
  18. 삭제
  19. 삭제
  20. 삭제
KR1020060000119A 2005-02-04 2006-01-02 통신 채널 모델 KR101183323B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/051,238 2005-02-04
US11/051,238 US7882236B2 (en) 2005-02-04 2005-02-04 Communication channel model

Publications (2)

Publication Number Publication Date
KR20060089624A KR20060089624A (ko) 2006-08-09
KR101183323B1 true KR101183323B1 (ko) 2012-09-14

Family

ID=36616996

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060000119A KR101183323B1 (ko) 2005-02-04 2006-01-02 통신 채널 모델

Country Status (5)

Country Link
US (1) US7882236B2 (ko)
EP (1) EP1691285A3 (ko)
JP (1) JP4896532B2 (ko)
KR (1) KR101183323B1 (ko)
CN (1) CN1816048B (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7882236B2 (en) 2005-02-04 2011-02-01 Microsoft Corporation Communication channel model
CN101304275B (zh) * 2008-05-13 2012-02-01 南京邮电大学 应用于移动通信网络的无线信道建模与仿真方法
KR101190597B1 (ko) * 2008-12-19 2012-10-15 한국전자통신연구원 로봇 소프트웨어 컴포넌트를 위한 메소드 포트 장치 및 구성 방법
US20100185714A1 (en) * 2009-01-15 2010-07-22 Microsoft Corporation Distributed communications between database instances
US8307368B2 (en) * 2009-05-26 2012-11-06 Microsoft Corporation Locality-based scheduling in continuation-based runtimes
CN102469035B (zh) * 2010-11-05 2016-01-20 腾讯科技(深圳)有限公司 跨进程通信的方法和装置
TWI426791B (zh) * 2010-06-09 2014-02-11 Univ Ishou Interrupt capacity calculation device and method
US9292342B2 (en) * 2012-12-26 2016-03-22 Microsoft Technology Licensing, Llc Schedule based execution with extensible continuation based actions

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004062890A (ja) 2002-06-28 2004-02-26 Microsoft Corp デジタル権利管理サービスを提供するシステムおよび方法
JP2004295898A (ja) 2003-03-26 2004-10-21 Microsoft Corp カスタマイズ可能な通信チャネルおよびプログラミングモデルを通じたメッセージの送受信

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991535A (en) * 1996-07-03 1999-11-23 Sun Microsystems, Inc. Visual composition tool for constructing application programs using distributed objects on a distributed object network
US6442620B1 (en) * 1998-08-17 2002-08-27 Microsoft Corporation Environment extensibility and automatic services for component applications using contexts, policies and activators
US6425017B1 (en) * 1998-08-17 2002-07-23 Microsoft Corporation Queued method invocations on distributed component applications
GB9826158D0 (en) * 1998-11-27 1999-01-20 British Telecomm Anounced session control
AU3115600A (en) 1998-12-11 2000-06-26 Microsoft Corporation Accelerating a distributed component architecture over a network using a direct marshaling
AU3352500A (en) * 1999-01-29 2000-08-18 Iona Technologies Inc. Method and system for dynamic configuration of interceptors in a client-server environment
US6922685B2 (en) * 2000-05-22 2005-07-26 Mci, Inc. Method and system for managing partitioned data resources
DE60136247D1 (de) 2000-06-16 2008-12-04 Microsoft Corp System und Verfahren zur interaktiven Kommunikation zwischen Objekten in einer verteilten Rechnerumgebung
CN1300677C (zh) * 2000-06-22 2007-02-14 微软公司 分布式计算服务平台
US6996800B2 (en) * 2000-12-04 2006-02-07 International Business Machines Corporation MVC (model-view-controller) based multi-modal authoring tool and development environment
AU2002234258A1 (en) * 2001-01-22 2002-07-30 Sun Microsystems, Inc. Peer-to-peer network computing platform
US7197565B2 (en) * 2001-01-22 2007-03-27 Sun Microsystems, Inc. System and method of using a pipe advertisement for a peer-to-peer network entity in peer-to-peer presence detection
US7165107B2 (en) * 2001-01-22 2007-01-16 Sun Microsystems, Inc. System and method for dynamic, transparent migration of services
US7120896B2 (en) * 2001-10-31 2006-10-10 Vitria Technology, Inc. Integrated business process modeling environment and models created thereby
US7222187B2 (en) * 2001-07-31 2007-05-22 Sun Microsystems, Inc. Distributed trust mechanism for decentralized networks
US7383433B2 (en) * 2001-07-31 2008-06-03 Sun Microsystems, Inc. Trust spectrum for certificate distribution in distributed peer-to-peer networks
US7203753B2 (en) * 2001-07-31 2007-04-10 Sun Microsystems, Inc. Propagating and updating trust relationships in distributed peer-to-peer networks
US7308496B2 (en) * 2001-07-31 2007-12-11 Sun Microsystems, Inc. Representing trust in distributed peer-to-peer networks
AU2002355575A1 (en) 2001-08-08 2003-02-24 Trivium Systems Inc. Scalable messaging platform for the integration of business software components
US7159224B2 (en) * 2002-04-09 2007-01-02 Sun Microsystems, Inc. Method, system, and articles of manufacture for providing a servlet container based web service endpoint
US7774831B2 (en) * 2002-12-24 2010-08-10 International Business Machines Corporation Methods and apparatus for processing markup language messages in a network
US7882236B2 (en) 2005-02-04 2011-02-01 Microsoft Corporation Communication channel model

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004062890A (ja) 2002-06-28 2004-02-26 Microsoft Corp デジタル権利管理サービスを提供するシステムおよび方法
JP2004295898A (ja) 2003-03-26 2004-10-21 Microsoft Corp カスタマイズ可能な通信チャネルおよびプログラミングモデルを通じたメッセージの送受信

Also Published As

Publication number Publication date
EP1691285A3 (en) 2008-04-02
CN1816048A (zh) 2006-08-09
JP2006216033A (ja) 2006-08-17
EP1691285A2 (en) 2006-08-16
KR20060089624A (ko) 2006-08-09
US7882236B2 (en) 2011-02-01
JP4896532B2 (ja) 2012-03-14
CN1816048B (zh) 2012-05-09
US20060178152A1 (en) 2006-08-10

Similar Documents

Publication Publication Date Title
KR101159357B1 (ko) 통신 바인딩 객체를 형성 및 사용하기 위한 시스템 및 방법
KR101183323B1 (ko) 통신 채널 모델
KR101037818B1 (ko) 메시징 인프라스트럭처 내의 다양한 처리 계층을 추상화하는 컴퓨터 시스템 및 방법, 및 컴퓨터 프로그램 제품
Daigneau Service Design Patterns: fundamental design solutions for SOAP/WSDL and restful Web Services
US20140245262A1 (en) Integrated Software Development and Deployment Architecture and High Availability Client-Server Systems Generated Using the Architecture
US20130290453A1 (en) System and method for a connector being able to adapt to newer features introduced to a messaging provider with only configuration changes
US10536560B2 (en) System and method for implementing augmented object members for remote procedure call
US20030037102A1 (en) Message broker
EP1696633B1 (en) Bidirectional SOAP communication by means of a single HTTP session
US8224975B1 (en) Web service initiation protocol for multimedia and voice communication over internet protocol
US7165118B2 (en) Layered message processing model
US20030069980A1 (en) Message broker
EP1296490A2 (en) Message broker
US9977700B2 (en) System and method for providing an application programming interface for deploying a service bus artifact from a local development environment to a cloud environment
Akilli Analysis of transformation capabilities between communication types of cloud application components
Daadoo Developing and Implementation of Distributed Chat Applications using WPF and WCF
Jayalath et al. A modular architecture for secure and reliable distributed communication
Kiss et al. D7. 4-FINAL BULK DEPLOYMENT TOOL
Toolchain et al. D7. 3-INITIAL BULK DEPLOYMENT TOOL
Bosanac et al. ActiveMQ in Action
Öh Analysis and implementation of remote support for ESAB’s welding systems: using WeldPoint and web services
Stöcklin Group Communication and APEX
Webber et al. Realizing Service-Oriented Architectures with Web Services
Fink et al. Communication Between Front and Back End
Graham Web Services

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
FPAY Annual fee payment

Payment date: 20150819

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160818

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170818

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180816

Year of fee payment: 7