KR20110065448A - 메시지 처리 파이프라인 구성 - Google Patents

메시지 처리 파이프라인 구성 Download PDF

Info

Publication number
KR20110065448A
KR20110065448A KR1020117004625A KR20117004625A KR20110065448A KR 20110065448 A KR20110065448 A KR 20110065448A KR 1020117004625 A KR1020117004625 A KR 1020117004625A KR 20117004625 A KR20117004625 A KR 20117004625A KR 20110065448 A KR20110065448 A KR 20110065448A
Authority
KR
South Korea
Prior art keywords
pipeline
message processing
application
components
transform
Prior art date
Application number
KR1020117004625A
Other languages
English (en)
Other versions
KR101558289B1 (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 KR20110065448A publication Critical patent/KR20110065448A/ko
Application granted granted Critical
Publication of KR101558289B1 publication Critical patent/KR101558289B1/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/544Buffers; Shared memory; Pipes
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • 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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/547Messaging middleware

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Communication Control (AREA)

Abstract

본 발명은 메시지 처리 파이프라인을 구성하는 방법, 시스템 및 컴퓨터 프로그램 제품에 관한 것이다. 실시예는, 파이프라인내 통신 링크를 이용하여, 파이프라인 단계를 물리적으로 및/또는 시간적으로 분리시키고 메시지 흐름의 분기를 구성하며 프로토콜을 브리징한다. 파이프라인내 통신 링크의 사용은, 파이프라인 구성요소 또는 응용 프로그램을 변경할 필요없이, 메시지 처리 파이프라인을 구성하는 것을 가능하게 해준다. 각각의 통신 링크 자체는 메시지 처리 요구사항을 만족시키는 응용 프로그램 논리와 시간 및/또는 공간에 걸쳐 메시지를 브리징하는 수신 및 송신 메시지 처리 파이프라인을 갖는 응용 프로그램이다.

Description

메시지 처리 파이프라인 구성{COMPOSING MESSAGE PROCESSING PIPELINES}
컴퓨터 시스템 및 관련 기술이 사회의 많은 측면에 영향을 미치고 있다. 실제로, 컴퓨터 시스템의 정보 처리 능력은 우리가 살고 일하는 방식을 바꾸어 놓았다. 컴퓨터 시스템이 이제는 흔히 컴퓨터 시스템의 출현 이전에 수작업으로 수행되었던 다수의 작업(예를 들어, 워드 프로세싱, 스케줄링, 회계, 기타)을 수행한다. 보다 최근에, 컴퓨터 시스템은 유선 및 무선 컴퓨터 네트워크 둘다를 형성하기 위해 서로 또한 다른 전자 장치와 결합되며 이 네트워크를 통해 컴퓨터 시스템 및 다른 전자 장치가 전자 데이터를 전송할 수 있다. 따라서, 많은 컴퓨팅 작업의 수행이 다수의 서로 다른 컴퓨터 시스템 및/또는 다수의 서로 다른 컴퓨팅 환경에 걸쳐 분산된다.
분산 컴퓨팅 환경에서, 서비스를 연결하는 프로토콜 구현을 응용 프로그램 처리 논리와 분리시키는 것이 종종 바람직하다. 이러한 조합에 대한 확립된 패턴은 각각의 층이 기반 프로토콜의 특징 상에 구축되는 계층화된 프로토콜 스택을 구현하는 것이다. 예를 들어, 기본 계층은 원시 데이터 연결을 제공할 수 있는 반면, 상위 계층은 보안 또는 전달 보장을 추가한다. 메시지 추상화를 사용하여, 프로토콜 계층은 또한 어느 정도의 구성 독립성을 가질 수 있다. 예를 들어, 보안 프로토콜은 많은 다른 전송 프로토콜과 함께 사용가능할 수 있다.
계층화된 프로토콜 스택은 종종 메시지 처리 파이프라인으로서 추상화된다. 응용 프로그램 논리는 이어서 프로토콜 독립적인 방식으로 작성되고 나중에 하나 이상의 파이프라인과 결합된다. 그렇지만, 몇가지 기술에서의 현재의 메시지 처리 파이프라인 실현은 다수의 서로 다른 제한을 공유한다. 예를 들어, 메시지 처리 파이프라인 내의 구성요소는 통상적으로 시간적으로 물리적으로 결합된 방식으로 구성된다.
프로토콜 스택에서의 시간적 결합은 응용 프로그램의 거동을 제약한다, 예를 들어, 응용 프로그램으로 하여금 전진하기 전에 메시지 처리 파이프라인이 동작을 완료하기를 기다리게 한다. 시간적 결합의 일례는 그 다음 프로토콜이 실행될 수 있기 전에 프로토콜이 메시지에 대한 승인을 필요로 할 때이다. 또 하나의 일례는 프로토콜이 몇개의 메시지를 그 다음 프로토콜이 송신하기 위한 하나의 메시지로 배치(batch)할 때이다. 이들 일례는 프로토콜 간의 동기화를 필요로 하며, 응용 프로그램이 특정 메시지-교환 패턴을 구현하기 위해 그 동기화에 참여할 것을 필요로 할지도 모른다.
물리적 결합은 프로토콜 스택이 그의 실행 환경에 의존관계를 가질 때 일어난다. 예를 들어, 프로토콜은 특정의 소프트웨어 라이브러리가 로컬 머신에 설치되어 있는 것에 의존할 수 있다. 몇개의 프로토콜 각각이 이러한 의존관계를 가질 수 있다. 프로토콜 스택은 모든 의존관계를 동시에 만족시키는 실행 환경에만 배포될 수 있다. 각각의 배포된 파이프라인이 서로 다른 의존관계 요구사항을 가지기 때문에, 회사는 이러한 실행 환경을 구성하기 위해 부가의 소프트웨어 또는 하드웨어를 구입해야만 할지도 모른다.
<발명의 개요>
본 발명은 메시지 처리 파이프라인을 구성하는 방법, 시스템 및 컴퓨터 프로그램 제품에 관한 것이다. 컴퓨터 시스템은 응용 프로그램에 대한 현재의 파이프라인 사양에 액세스한다. 현재의 파이프라인 사양은, 응용 프로그램에 대한 메시지 처리 파이프라인에 포함되어야 하는 메시징 구성요소를 명시하는 것을 포함하여, 응용 프로그램에 대한 메시지 처리 파이프라인을 어떻게 구성하는지를 명시하고 있다. 컴퓨터 시스템은 응용 프로그램에 대한 부가의 메시지 처리 요구사항에 액세스한다. 부가의 메시지 처리 요구사항은, 예를 들어, 구성 파일, 사용자 명령 또는 제2 파이프라인 사양에 명시적으로 포함될 수 있다. 부가의 메시지 처리 요구사항은 또한, 예를 들어, 구성 파일, 사용자 명령 또는 제2 파이프라인 사양의 내용과 관련하여, 현재의 사양의 내용으로부터 추론될 수 있다.
컴퓨터 시스템은 부가의 메시지 처리 요구사항을 만족시키는 부가의 메시지 처리 기능을 명시하기 위해 현재의 파이프라인 사양에 적용될 수 있는 변환을 식별한다. 메시지 처리 파이프라인에 포함시키도록 이미 명시된 메시징 구성요소에 기초하여 또한 부가의 메시지 처리 요구사항에 기초하여 변환이 식별된다. 변환은 또한 컴퓨터 시스템이 어느 메시징 구성요소를 이용할 수 있는지에 기초하여 식별될 수 있다.
컴퓨터 시스템은 현재의 파이프라인 사양에 식별된 변환을 적용하여, 응용 프로그램에 대한 변환된 파이프라인 사양을 생성한다. 변환된 파이프라인 사양은 부가의 메시지 처리 요구사항을 만족시키는 응용 프로그램에 대한 메시지 처리 파이프라인을 어떻게 구성할지를 명시한다. 변환된 파이프라인 사양은 부가의 메시지 처리 요구사항을 만족시키기 위해 메시지 처리 파이프라인에 포함되어야 하는 메시징 구성요소의 배열을 명시한다. 컴퓨터 시스템은 변환된 파이프라인 사양을 해석하여 응용 프로그램에 대한 메시지 처리 파이프라인을 인스턴스화한다. 인스턴스화된 메시지 처리 파이프라인은 응용 프로그램에 대한 부가의 메시지 처리 요구사항을 만족시키도록 구성된다.
이 요약은 이하에서 상세한 설명에 더 기술되는 일련의 개념을 간략화된 형태로 소개하기 위해 제공된 것이다. 이 요약은 청구된 발명 대상의 주요 특징 또는 필수적인 특징을 확인하기 위한 것이 아니며, 청구된 발명 대상의 범위를 정하는 데 보조 수단으로 사용되기 위한 것도 아니다.
본 발명의 부가의 특징 및 이점이 이하의 설명에서 기술될 것이며, 부분적으로 이 설명으로부터 명백하게 되거나 본 발명의 실시에 의해 알게 될 수 있다. 본 발명의 특징 및 이점이 첨부된 청구항에 특정되어 있는 수단 및 조합에 의해 실현되고 획득될 수 있다. 본 발명의 이들 및 기타 특징이 이하의 설명 및 첨부된 특허청구범위로부터 더욱 명백하게 되거나, 이후에 설명되는 바와 같이 본 발명의 실시에 의해 알게 될 수 있다.
본 발명의 상기한 이점 및 특징과 기타 이점 및 특징이 달성될 수 있는 방식을 설명하기 위해, 이상에서 간략히 설명한 본 발명의 보다 상세한 설명이 첨부 도면에 도시되어 있는 본 발명의 구체적인 실시예를 참조하여 행해질 것이다. 이들 도면이 본 발명의 통상적인 실시예만을 도시하고 있고 따라서 본 발명의 범위를 제한하는 것으로 간주되어서는 안된다는 것을 염두에 두고서, 첨부 도면을 사용하여 보다 구체적이고 상세하게 본 발명에 대해 기술하고 설명할 것이다.
도 1은 메시지 처리 파이프라인을 구성하는 것을 용이하게 해주는 예시적인 컴퓨터 아키텍처를 나타낸 것이다.
도 2는 메시지 처리 파이프라인을 구성하는 예시적인 방법의 플로우차트.
도 3은 예시적인 메시지 처리 파이프라인을 나타낸 도면.
도 4는 논리적 파이프라인 및 그의 대응하는 물리적 배포를 포함하는 컴퓨터 아키텍처를 나타낸 도면.
도 5는 메시지 처리 파이프라인 구성요소가 안정된 큐에 의해 분리되어 있는 컴퓨터 아키텍처를 나타낸 도면.
본 발명은 메시지 처리 파이프라인을 구성하는 방법, 시스템 및 컴퓨터 프로그램 제품에 관한 것이다. 컴퓨터 시스템은 응용 프로그램에 대한 현재의 파이프라인 사양에 액세스한다. 현재의 파이프라인 사양은, 응용 프로그램에 대한 메시지 처리 파이프라인에 포함되어야 하는 메시징 구성요소를 명시하는 것을 포함하여, 응용 프로그램에 대한 메시지 처리 파이프라인을 어떻게 구성하는지를 명시하고 있다. 컴퓨터 시스템은 응용 프로그램에 대한 부가의 메시지 처리 요구사항에 액세스한다. 부가의 메시지 처리 요구사항은, 예를 들어, 구성 파일, 사용자 명령 또는 제2 파이프라인 사양에 명시적으로 포함될 수 있다. 부가의 메시지 처리 요구사항은 또한, 예를 들어, 구성 파일, 사용자 명령 또는 제2 파이프라인 사양의 내용과 관련하여, 현재의 사양의 내용으로부터 추론될 수 있다.
컴퓨터 시스템은 부가의 메시지 처리 요구사항을 만족시키는 부가의 메시지 처리 기능을 명시하기 위해 현재의 파이프라인 사양에 적용될 수 있는 변환을 식별한다. 메시지 처리 파이프라인에 포함시키도록 이미 명시된 메시징 구성요소에 기초하여 또한 부가의 메시지 처리 요구사항에 기초하여 변환이 식별된다. 변환은 또한 컴퓨터 시스템이 어느 메시징 구성요소를 이용할 수 있는지에 기초하여 식별될 수 있다.
컴퓨터 시스템은 현재의 파이프라인 사양에 식별된 변환을 적용하여, 응용 프로그램에 대한 변환된 파이프라인 사양을 생성한다. 변환된 파이프라인 사양은 부가의 메시지 처리 요구사항을 만족시키는 응용 프로그램에 대한 메시지 처리 파이프라인을 어떻게 구성할지를 명시한다. 변환된 파이프라인 사양은 부가의 메시지 처리 요구사항을 만족시키기 위해 메시지 처리 파이프라인에 포함되어야 하는 메시징 구성요소의 배열을 명시한다. 컴퓨터 시스템은 변환된 파이프라인 사양을 해석하여 응용 프로그램에 대한 메시지 처리 파이프라인을 인스턴스화한다. 인스턴스화된 메시지 처리 파이프라인은 응용 프로그램에 대한 부가의 메시지 처리 요구사항을 만족시키도록 구성된다.
본 발명의 실시예는, 이하에서 더 상세히 설명하는 바와 같이, 컴퓨터 하드웨어를 포함하는 전용 또는 범용 컴퓨터를 포함하거나 이용할 수 있다. 본 발명의 범위 내의 실시예는 또한 컴퓨터-실행가능 명령어 및/또는 데이터 구조를 전달 또는 저장하는 실제 및 기타 컴퓨터-판독가능 매체를 포함한다. 이러한 컴퓨터 판독가능 매체는 범용 또는 전용 컴퓨터 시스템에 의해 액세스될 수 있는 매체라면 어느 것이라도 될 수 있다. 컴퓨터-실행가능 명령어를 저장하는 컴퓨터-판독가능 매체는 실제 저장 매체이다. 컴퓨터-실행가능 명령어를 전달하는 컴퓨터-판독가능 매체는 전송 매체이다. 따라서, 제한이 아닌 예로서, 본 발명의 실시예는 적어도 2개의 서로 다른 종류의 컴퓨터-판독가능 매체, 즉 실제 저장 매체 및 전송 매체를 포함할 수 있다.
실제 저장 매체는 컴퓨터-실행가능 명령어 또는 데이터 구조 형태의 원하는 프로그램 코드 수단을 저장하는 데 사용될 수 있고 또 범용 또는 전용 컴퓨터에 의해 액세스될 수 있는 RAM, ROM, EEPROM, CD-ROM 또는 기타 광 디스크 저장 장치, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 임의의 다른 매체를 포함한다.
"네트워크"는 컴퓨터 시스템 및/또는 모듈 및/또는 기타 전자 장치 간의 전자 데이터의 전송을 가능하게 해주는 하나 이상의 데이터 링크로서 정의된다. 정보가 네트워크 또는 다른 통신 연결(유선, 무선 또는 유선과 무선의 조합)을 통해 컴퓨터로 전송 또는 제공될 때, 컴퓨터는 적절하게도 이 연결을 전송 매체로 본다. 전송 매체는 컴퓨터-실행가능 명령어 또는 데이터 구조의 형태의 원하는 프로그램 코드 수단을 전달하는 데 사용될 수 있는 또한 범용 또는 전용 컴퓨터에 의해 액세스될 수 있는 네트워크 및/또는 데이터 링크를 포함할 수 있다. 상기한 것들의 조합도 역시 컴퓨터-판독가능 매체의 범위 내에 포함되어야 한다.
게다가, 다양한 컴퓨터 시스템 구성요소에 도달할 때, 컴퓨터-실행가능 명령어 또는 데이터 구조 형태의 프로그램 코드 수단이 전송 매체로부터 실제 저장 매체로(또는 그 반대로) 자동으로 전달될 수 있다. 예를 들어, 네트워크 또는 데이터 링크를 통해 수신되는 컴퓨터-실행가능 명령어 또는 데이터 구조가 네트워크 인터페이스 모듈(예를 들어, "NIC") 내의 RAM에 버퍼링될 수 있고, 그 다음에 궁극적으로 컴퓨터 시스템 RAM 및/또는 컴퓨터 시스템에 있는 저휘발성(less volatile) 실제 저장 매체로 전달될 수 있다. 따라서, 실제 저장 매체가 전송 매체도 역시(또는 심지어 전송 매체를 주로) 이용하는 컴퓨터 시스템 구성요소에 포함될 수 있다는 것을 잘 알 것이다.
컴퓨터-실행가능 명령어는, 예를 들어, 범용 컴퓨터, 전용 컴퓨터 또는 전용 처리 장치로 하여금 어떤 기능 또는 어떤 일군의 기능들을 수행하게 하는 명령어 및 데이터를 포함한다. 컴퓨터-실행가능 명령어는, 예를 들어, 바이너리, 어셈블리어 등의 중간 포맷 명령어(intermediate format instruction), 또는 심지어 소스 코드일 수 있다. 발명 대상이 구조적 특징 및/또는 방법적 동작과 관련하여 기술되어 있지만, 첨부된 특허청구범위에 정의된 발명 대상이 상기한 기술된 특징 또는 동작으로 반드시 제한되는 것은 아니라는 것을 잘 알 것이다. 오히려, 기술된 특징 및 동작은 청구항을 구현하는 예시적인 형태로서 개시되어 있다.
당업자라면 본 발명이 개인용 컴퓨터, 데스크톱 컴퓨터, 랩톱 컴퓨터, 메시지 프로세서, 핸드헬드 장치, 멀티프로세서 시스템, 마이크로프로세서-기반 또는 프로그램가능 가전 제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 휴대폰, PDA, 페이저, 라우터, 스위치, 기타 등등을 비롯한 많은 종류의 컴퓨터 시스템 구성을 갖는 네트워크 컴퓨팅 환경에서 실시될 수 있다는 것을 잘 알 것이다. 본 발명은 또한 네트워크를 통해 (유선 데이터 링크, 무선 데이터 링크, 또는 유선 및 무선 데이터 링크의 조합에 의해) 연결되어 있는 로컬 및 원격 컴퓨터 시스템 둘다가 작업을 수행하는 분산 시스템 환경에서 실시될 수 있다. 분산 시스템 환경에서는, 프로그램 모듈이 로컬 및 원격 메모리 저장 장치 둘다에 위치할 수 있다.
도 1은 메시지 처리 파이프라인을 구성하는 것을 용이하게 해주는 예시적인 컴퓨터 아키텍처(100)를 나타낸 것이다. 도 1을 참조하면, 컴퓨터 아키텍처(100)는 파이프라인 사양 미세 조정 모듈(101), 파이프라인 사양 해석기(106), 및 응용 프로그램(107)을 포함한다. 도시된 컴퓨터 시스템들 각각은, 예를 들어, 근거리 통신망(LAN), 원거리 통신망(WAN), 또는 심지어 인터넷 등의 네트워크(또는 그의 일부)를 통해 서로 연결된다. 따라서, 도시된 컴퓨터 시스템들 각각은 물론 임의의 다른 연결된 컴퓨터 시스템 및 그의 구성요소는 메시지 관련 데이터를 생성하고 메시지 관련 데이터[예를 들어, 인터넷 프로토콜(IP) 데이터그램 및 IP 데이터그램을 이용하는 기타 상위 계층 프로토콜(TCP(Transmission Control Protocol), HTTP(Hypertext Transfer Protocol), SMTP(Simple Mail Transfer Protocol), 기타 등등)]를 네트워크를 통해 교환할 수 있다.
일반적으로, 파이프라인 사양 미세 조정 모듈(101)은, 부가의 메시지 처리 요구사항을 고려하여, 파이프라인 사양을 부가의 메시지 처리 요구사항을 만족시키는 메시지 처리 파이프라인을 명시하는 파이프라인 사양으로 변환하도록 구성되어 있다. 파이프라인 사양 미세 조정 모듈(101)은 요구사항 식별 모듈(102), 변환 식별 모듈(103), 및 변환 적용 모듈(104)을 포함한다.
요구사항 식별 모듈(102)은 메시지 처리 파이프라인에 대한 부가의 처리 요구사항을 식별하도록 구성되어 있다. 부가의 요구사항은 파이프라인 사양 미세 조정 모듈(101)에 제공되는 부가의 정보에, 예를 들어, 구성 파일, 사용자 명령 또는 제2 파이프라인 사양 등에 명시적으로 포함될 수 있다. 예를 들어, 구성 파일은 프로토콜 스택 내의 서로 다른 계층 간의 암호화 또는 안정성이 필요하다는 것을 나타낼 수 있다. 요구사항 식별 모듈(102)은 부가의 정보에 액세스하고 부가의 정보에 포함되어 있는 부가의 처리 요구사항을 식별할 수 있다.
요구사항 식별 모듈(102)은 또한 부가의 정보의 내용을 고려하여 파이프라인 사양의 내용에 기초하여 부가의 처리 요구사항을 추론할 수 있다. 따라서, 요구사항 식별 모듈(102)은, 예를 들어, 구성 파일, 사용자 명령 또는 제2 파이프라인 사양을 고려하여 파이프라인 사양의 내용에 기초하여 부가의 메시지 처리 요구사항을 추론할 수 있다. 예를 들어, 하나의 파이프라인 사양이 제1 전송 계층 프로토콜을 명시하고 다른 파이프라인 사양이 다른 제2 전송 프로토콜을 명시할지도 모른다. 따라서, 요구사항 식별 모듈(102)은 제1 전송 프로토콜과 제2 전송 프로토콜 사이에서의 프로토콜 브리지의 사용이 부가의 메시지 처리 요구사항이라는 것을 추론할 수 있다.
변환 식별 모듈(103)은 부가의 메시지 처리 요구사항을 만족시키는 메시지 처리 파이프라인을 명시하도록 파이프라인 사양을 변환하기 위해 파이프라인 사양에 적용될 수 있는 변환을 식별하도록 구성되어 있다. 예를 들어, 현재의 파이프라인 사양 및 부가의 요구사항에 기초하여, 변환 식별 모듈(103)은 현재의 파이프라인 사양을 변환된 파이프라인 사양으로 변환하는 변환을 식별할 수 있다. 변환된 파이프라인 사양은, 예를 들어, 부가의 메시지 처리 요구사항을 만족시키는 메시지 처리 구성요소의 배열을 가지는 파이프라인내 통신 링크(intra-pipeline communication link)를 명시할 수 있다.
변환을 식별할 때, 변환 식별 모듈(103)은 또한 메시지 처리 파이프라인에 포함될 수 있는 이용가능한 파이프라인 구성요소(예를 들어, 메시지 펌프, 메시지 변환기, 안정된 저장소, 통신 매체, 라이브러리 등)의 기능을 고려할 수 있다. 이용가능한 파이프라인 구성요소는 파이프라인 사양 미세 조정 모듈(101)과 동일한 곳에 위치될 수 있고 및/또는 파이프라인 사양 미세 조정 모듈(101)에 대해 원격지에 위치될 수 있다. 따라서, 메시지 처리 파이프라인에 포함되도록 명시된 이용가능한 구성요소는 로컬적으로 및/또는 원격적으로 액세스될 수 있다.
이용가능한 파이프라인 구성요소에 따라, 변환 식별 모듈(103)은 사양에 적용할 서로 다른 변환을 식별할 수 있다. 그렇지만, 다른 파이프라인 구성요소 조합이 동일한 결과를 달성할 수 있기 때문에, 파이프라인 사양에 대한 다른 변환이 여전히 부가의 메시지 처리 요구사항을 만족시키는 메시지 처리 파이프라인을 정의할 수 있다. 즉, 이용가능한 파이프라인 구성요소의 기능에 따라, 부가의 메시지 처리 요구사항을 만족시키는 다른 파이프라인 구성요소 조합이 명시될 수 있다.
변환 적용 모듈(104)은 파이프라인 사양을 부가의 메시지 처리 요구사항을 만족시키는 변환된 사양으로 변환하기 위해 파이프라인 사양에 식별된 변환을 적용하도록 구성되어 있다. 예를 들어, 변환 적용 모듈(104)은 파이프라인 사양 및 변환을 수신하고 파이프라인 사양에 변환을 적용하여 변환된 파이프라인 사양을 생성할 수 있다. 얻어진 변환된 사양은 파이프라인 사양 해석기의 구문 및 의미 제약조건을 준수할 수 있다. 예를 들어, 파이프라인 사양이 파이프라인 사양 해석기에 입력되도록 구성되어 있는 경우, 파이프라인 사양에 기초한 변환된 파이프라인 사양도 역시 동일한 파이프라인 사양 해석기에 입력되도록 구성될 수 있다. 그렇지만, 또한 변환이 다른 파이프라인 사양 해석기에 입력되는 파이프라인 사양의 구성을 변경하는 것도 가능하다. 파이프라인 사양을 변환하는 것은 파이프라인 사양의 내용을 변경하는 것(예를 들어, 메시지 처리 파이프라인 기능 및/또는 구성요소를 명시하도록 텍스트 편집 또는 기타 변경을 하는 것 등)을 포함할 수 있다.
파이프라인 사양 해석기(106)는 파이프라인 사양을 해석하고 파이프라인 사양으로부터 메시지 처리 파이프라인을 인스턴스화하도록 구성되어 있다. 예를 들어, 파이프라인 사양 해석기(106)는 적절히 구성된 파이프라인 사양을 수신할 수 있다. 파이프라인 사양을 수신한 것에 응답하여, 파이프라인 사양 해석기(106)는 파이프라인 사양에 명시된 메시지 처리 파이프라인을 인스턴스화하는 메시지 처리 구성요소를 식별할 수 있다. 파이프라인 사양 해석기(106)는 이어서, 예를 들어, 식별된 메시지 처리 구성요소가 임의의 부가의 요구사항을 만족시키는 것을 비롯한 원하는 메시지 처리 기능을 제공하는 방식으로 배열되어 있는 파이프라인내 통신 링크를 포함하는 메시지 처리 파이프라인을 인스턴스화할 수 있다.
메시지 처리 파이프라인의 서로 다른 부분이 서로 다른 머신에서 또는 동일한 머신에서의 서로 다른 프로세스에서 인스턴스화될 수 있다. 파이프라인내 통신 링크는 하나의 머신(또는 프로세스)에서의 메시지 처리 파이프라인의 일부분을 다른 머신(또는 프로세스)에서의 메시지 처리 파이프라인의 일부분에 연결시키는 데 사용될 수 있다. 메시지 처리 파이프라인을 통한 메시지 흐름은 또한, 예를 들어, 메시지 속성, 프로토콜 속성, 머신 속성, 기타 등등에 기초하여, 서로 다른 파이프라인 구성요소 간에 분기될 수 있다. 파이프라인내 통신 링크는, 안정된 통신 링크를 제공하기 위해, 안정된 저장소(예를 들어, 안정된 메시지 큐잉 제품 등)를 추상화할 수 있다. 안정된 통신 링크는, 그렇지 않은 경우 계속하기 위해 다른 파이프라인 구성요소로부터의 응답을 기다려야만 할 때, 파이프라인 구성요소가 메시지 처리를 계속할 수 있게 해준다. 메시지 처리 파이프라인은 또한 파이프라인 구성요소 간의 프로토콜 브리징 및 기타 변환 서비스를 용이하게 해주는 파이프라인 구성요소를 포함할 수 있다.
컴퓨터 아키텍처(100)에 나타낸 바와 같이, 응용 프로그램(107)은 메시지 처리 파이프라인(108)과 분리되어 있다. 그렇지만, 본 발명의 실시예는 또한 메시지 처리 파이프라인 내에 파이프라인 구성요소로서 응용 프로그램을 포함하는 메시지 처리 파이프라인을 포함한다.
도 2는 메시지 처리 파이프라인을 구성하는 예시적인 방법(200)의 플로우차트를 나타낸 것이다. 방법(200)은 컴퓨터 아키텍처(100)의 구성요소 및 데이터와 관련하여 기술될 것이다.
방법(200)은 응용 프로그램에 대한 현재의 파이프라인 사양에 액세스하는 단계 - 현재의 파이프라인 사양은, 응용 프로그램에 대한 메시지 처리 파이프라인에 포함되어야 하는 메시징 구성요소를 명시하는 것을 포함하여, 응용 프로그램에 대한 메시지 처리 파이프라인을 어떻게 구성하는지를 명시함 - (단계 201)를 포함한다. 예를 들어, 파이프라인 사양 미세 조정 모듈은 파이프라인 사양(121)에 액세스할 수 있다. 파이프라인 사양(121)은 응용 프로그램(107)에 대한 메시지 처리 파이프라인을 어떻게 구성하는지를 명시할 수 있다. 파이프라인 사양(121)은, 이용가능한 파이프라인 구성요소(142) 중에서, 응용 프로그램(107)에 대한 메시지 처리 파이프라인에 포함되어야 하는 파이프라인 구성요소를 명시할 수 있다.
이용가능한 파이프라인 구성요소(142)는 파이프라인 사양 모듈(101)에 대해 로컬에 및/또는 원격지에(예를 들어, 네트워크 통신을 통해 액세스되는 다른 머신에) 위치하는 파이프라인 구성요소를 포함할 수 있다. 예를 들어, 메시지 펌프(예를 들어, 143), 메시지 변환기(예를 들어, 144), 안정된 통신 링크를 제공하는 안정된 저장소(예를 들어, 146)의 추상화, 통신 매체(예를 들어, 147) 및 라이브러리(예를 들어, 148) 등의 이용가능한 파이프라인 구성요소(142)는 각종의 서로 다른 기능을 구현하도록 구성될 수 있다. 이용가능한 파이프라인 구성요소(142) 내의 파이프라인 구성요소들이 파이프라인 사양에 명시된 메시지 처리 기능(예를 들어, 암호화, 서명, 안정성, 프로토콜 브리징, 메시지 변환, 파이프라인 분기 등)을 제공하기 위해 메시지 처리 파이프라인 내에서, 예를 들어, 파이프라인내 통신 링크에서 서로 연결될 수 있다.
요구사항 식별 모듈(102)은 파이프라인 사양(121)에 대한 부가의 요구사항을 식별할 수 있다. 예를 들어, 요구사항 식별 모듈(102)은 부가의 정보(122) 및/또는 파이프라인 사양(121)의 내용에 기초하여 부가의 요구사항(131)을 식별할 수 있다. 일부 실시예에서, 부가의 정보(122)의 내용은 부가의 요구사항을 명시적으로 나타낸다. 예를 들어, 부가의 정보(122)는 부가의 요구사항(131)을 명시적으로 표시하는 [예를 들어, 응용 프로그램(107)과 통신해야 하는 응용 프로그램에 대한] 다른 파이프라인 사양, 구성 파일, 사용자 명령 등의 내용을 나타낼 수 있다. 요구사항 식별 모듈(102)은 부가의 정보(122)로부터 명시적으로 표시된 부가의 요구사항을 식별할 수 있다.
다른 대안으로서 또는 명시적으로 표시된 부가의 요구사항을 식별하는 것과 결합하여, 요구사항 식별 모듈(102)은 또한 부가의 요구사항을 추론할 수 있다. 예를 들어, 요구사항 식별 모듈(102)은 부가의 정보(122) 및 파이프라인 사양(121)에 액세스할 수 있다. 부가의 정보(122) 및 파이프라인 사양(121)의 내용으로부터, 요구사항 식별 모듈(102)은 부가의 요구사항(131)을 추론할 수 있다.
요구사항 식별 모듈(102)은 부가의 정보(122)의 내용을 파이프라인 사양(121)의 내용과 비교하고 비교에 기초하여 추론을 할 수 있다. 예를 들어, 부가의 정보(122)는 통신할 때 (지정된 메시지 기능을 포함하는 것이 요구사항이라는 것을 명시적으로 나타내지 않고) 다른 응용 프로그램이 지정된 메시징 기능(예를 들어, 암호화, 신뢰할 수 있는 메시징 등)을 사용한다는 것을 나타낼 수 있다. 한편, 파이프라인 사양(121)은 메시지 처리 파이프라인 응용 프로그램(107)에 포함시키기 위한 지정된 메시지 기능을 명시하지 않을 수 있다.
부가의 정보(122)와 파이프라인 사양(121) 간의 비교로부터, 요구사항 식별 모듈(102)은 다른 응용 프로그램이 지정된 메시징 기능을 사용하지만 파이프라인 사양(121)이 지정된 메시징 기능을 명시하고 있지 않은 것으로 판정할 수 있다. 따라서, 요구사항 식별 모듈(102)은 응용 프로그램(107)에 대한 메시지 처리 파이프라인이 다른 응용 프로그램과 통신하기 위해 지정된 메시징 기능을 포함해야 하는 것으로 추론할 수 있다. 따라서, 요구사항 식별 모듈(102)은 파이프라인 사양(121)이 지정된 메시징 기능을 명시해야 한다는 부가의 요구사항을 식별할 수 있다.
요구사항 식별 모듈(102)은 부가의 요구사항(131)을 변환 식별 모듈(103)로 전송할 수 있다. 따라서, 방법(200)은 응용 프로그램에 대한 부가의 메시지 처리 요구사항에 액세스하는 단계(단계 202)를 포함한다. 예를 들어, 변환 식별 모듈(103)은 부가의 요구사항(131)을 수신할 수 있다.
방법(200)은 부가의 메시지 처리 요구사항을 만족시키는 부가의 메시지 처리 기능을 명시하기 위해 현재의 파이프라인 사양에 적용될 수 있는 변환을 식별하는 단계 - 변환은 메시지 처리 파이프라인에 포함되도록 이미 명시된 메시징 구성요소에 기초하여 또한 부가의 메시지 처리 요구사항에 기초하여 식별됨 - (단계 203)를 포함한다. 예를 들어, 변환 식별 모듈(103)은 변환(132)을 식별할 수 있다. 부가의 메시지 처리 기능[예를 들어, 부가의 요구사항(131)을 만족시키는 파이프라인내 통신 링크 등]을 명시하기 위해 변환(132)이 파이프라인 사양(121)에 적용될 수 있다. 파이프라인 사양(121) 및 부가의 요구사항(131)에 이미 명시된 파이프라인 구성요소에 기초하여 변환(132)이 식별될 수 있다.
변환(132)은 또한 이용가능한 파이프라인 구성요소(142)에 포함된 구성요소에 기초할 수 있다. 예를 들어, 목록(151)은 이용가능한 파이프라인 구성요소(142)에 포함된 구성요소는 물론 그의 기능을 식별해줄 수 있다. 목록(151)으로부터, 변환 식별 모듈(103)은 사양(121)에 어느 변환(132)을 적용해야 하는지를 식별할 수 있다. 식별된 변환(132)은 [이용가능한 파이프라인 구성요소(142) 중에서] 부가의 요구사항(131)을 만족시키는 메시지 처리 기능을 구현하는 구성요소를 명시하기 위해 파이프라인 사양(121)의 일부분을 변환하는 데 사용될 수 있다.
사양(121)에 어느 파이프라인 구성요소가 이미 명시되어 있는지에 따라, 부가의 요구사항(131)을 만족시키는 메시지 처리 기능을 명시하기 위해 서로 다른 변환이 식별될 수 있다. 변환 식별 모듈(103)은 변환(132)을 변환 적용 모듈(104)로 전송할 수 있다. 변환 적용 모듈(104)은 변환 식별 모듈(103)로부터 변환(132)을 수신할 수 있다.
방법(200)은 현재의 파이프라인 사양에 식별된 변환을 적용하여 응용 프로그램에 대한 변환된 파이프라인 사양을 생성하는 단계 - 변환된 파이프라인 사양은, 부가의 메시지 처리 요구사항을 만족시키기 위해 메시지 처리 파이프라인에 포함되어야 하는 메시징 구성요소의 배열을 명시하는 것을 포함하여, 부가의 메시지 처리 요구사항을 만족시키는 응용 프로그램에 대한 메시지 처리 파이프라인을 어떻게 구성해야 하는지를 명시함 - (단계 204)를 포함한다. 예를 들어, 변환 적용 모듈(104)은 파이프라인 사양(121)에 변환(132)을 적용하여 변환된 파이프라인 사양(121T)을 생성할 수 있다. 변환된 파이프라인 사양(121T)은 부가의 요구사항(131)을 만족시키는 메시지 처리 파이프라인을 어떻게 구성하는지를 명시한다. 변환된 파이프라인 사양(121T)은 [예를 들어, 이용가능한 파이프라인 구성요소(142) 중에서] 부가의 요구사항(131)을 만족시키기 위해 메시지 처리 파이프라인에 포함되어야 하는[예를 들어, 통신 링크(113) 등에 포함되어야 하는] 파이프라인 구성요소의 배열을 명시할 수 있다.
방법(200)은 변환된 파이프라인 사양을 해석하여 응용 프로그램에 대한 메시지 처리 파이프라인을 인스턴스화하는 단계 - 인스턴스화된 메시지 처리 파이프라인은 응용 프로그램에 대한 부가의 메시지 처리 요구사항을 만족시키도록 구성됨 - (단계 205)를 포함한다. 예를 들어, 파이프라인 사양 해석기(106)는 변환된 파이프라인 사양(121T)을 해석하여 메시지 처리 파이프라인(108)을 인스턴스화할 수 있다. 파이프라인 사양 해석기(106)는 메시지 처리 파이프라인(108)을 인스턴스화하기 위해 구성요소(152)에 액세스할 수 있다. 파이프라인 사양 해석기(106)는 변환된 파이프라인 사양(121T)에 명시된 대로 구성요소(152)를 배열할 수 있다. 따라서, 사양 해석기(106)는 통신 링크(113)가 부가의 요구사항(131)을 만족시키도록 메시지 처리 파이프라인(108)을 인스턴스화할 수 있다.
메시지 처리 파이프라인(108)은 통신 매체(111), 파이프라인 구성요소(112), 통신 링크 논리(114)를 갖는 통신 링크(113), 및 파이프라인 구성요소(116A, 116B)를 포함한다. 도 1에 나타낸 바와 같이, 메시지 처리 파이프라인(108)은 논리적으로 표현되어 있다. 메시지 처리 파이프라인 내의 서로 다른 구성요소가 실제로는 서로 다른 머신에 위치할 수 있다. 예를 들어, 파이프라인 구성요소(112), 파이프라인 구성요소(116A), 파이프라인 구성요소(116B) 및 응용 프로그램(107) 모두가 어쩌면 실제로는 서로 다른 머신에 위치할 수 있다. 파이프라인 구성요소(116A, 116B)는, 메시지 속성, 프로토콜 속성, 머신 속성 등에 기초하여, 메시지 처리 파이프라인(108)에서의 메시지 처리가 분기될 수 있다는 것을 나타낸다.
통신 링크(113)는 파이프라인 구성요소(112)로부터 메시지를 수신할 수 있다. 통신 링크 논리(114)는 부가의 요구사항(131)을 만족시키도록 파이프라인 구성요소(112)로부터 수신된 메시지의 처분을 결정할 수 있다. 통신 링크(113)는 메시지를 파이프라인 구성요소(116A 및/또는 116B)로 전송할 수 있다.
일반적으로, 파이프라인내 통신 링크는 어떤 기반 통신 매체라도 사용할 수 있다. 통신 매체의 사용은 파이프라인내 통신 링크 전후의 파이프라인 구성요소의 위치에 기초할 수 있다. 예를 들어, 파이프라인 구성요소가 동일한 머신 상의 서로 다른 프로세스에 배포되는 경우, 시스템 버스가 통신 매체로서 사용될 수 있다. 한편, 파이프라인 구성요소가 서로 다른 머신에 배포되는 경우, 네트워크 매체(유선 및/또는 무선)가 통신 매체로서 사용될 수 있다.
따라서, 보다 구체적으로는, 파이프라인내 통신 링크는 파이프라인 구성요소를 이전의 파이프라인 구성요소에 연결시키는 수신 통신 매체(incoming communication medium)를 포함할 수 있다. 파이프라인내 통신 링크는 또한 수신 통신 매체로부터의 메시지를 처리하는 수신측 메시지 처리 파이프라인을 포함할 수 있다. 파이프라인내 통신 링크는 또한 메시지를 처리하고 그의 처분을 결정하는 통신 링크 응용 프로그램을 포함할 수 있다. 파이프라인내 통신 링크는 또한 파이프라인 구성요소를 이후의 파이프라인 구성요소에 연결시키는 하나 이상의 송신 통신 매체(outgoing communication media)를 포함할 수 있다. 파이프라인내 통신 링크는 또한 메시지를 대응하는 송신 통신 매체로 전송하는 하나 이상의 송신측 메시지 처리 파이프라인을 포함할 수 있다.
도 3은 파이프라인내 통신 링크(321)를 포함하는 예시적인 메시지 처리 파이프라인(300)을 나타내고 있다. 메시지 처리 파이프라인(300)은 통신 매체(301), 파이프라인 구성요소(302), 파이프라인내 통신 링크(321), 파이프라인 구성요소(309A, 309B) 및 응용 프로그램(311)을 포함한다. 도시된 바와 같이, 파이프라인내 통신 링크(321)는 파이프라인 구성요소(302)를 파이프라인 구성요소(309A, 309B)에 연결시킨다.
파이프라인내 통신 링크(321)는 수신 통신 매체(303), 수신측 메시지 처리 파이프라인(304), 통신 링크 논리(306), 송신측 메시지 처리 파이프라인(307A, 307B) 및 송신 통신 매체(308A, 308B)를 포함한다. 수신 통신 매체(303)는 파이프라인내 통신 링크(321)를 파이프라인 구성요소(302)에 연결시킨다. 수신측 메시지 처리 파이프라인(304)은 수신 통신 매체(303)를 통해 파이프라인 구성요소(302)로부터 메시지를 수신한다.
통신 링크 논리(306)는 메시지를 어떻게 처분해야 하는지를 결정하기 위해 메시지를 처리한다. 예를 들어, 메시지의 내용 또는 메시지와 연관된 프로토콜에 기초하여, 통신 링크 논리(306)는 메시지가 메시지 처리 파이프라인(307A)으로 송신되어야 하는지 메시지 처리 파이프라인(307B)으로 송신되어야 하는지를 결정할 수 있다.
송신 통신 매체(308A, 308B)는 파이프라인내 통신 링크(321)를 파이프라인 구성요소(309A, 309B)에 각각 연결시킨다. 송신측 메시지 처리 파이프라인(307A, 307B)은 메시지를 송신 통신 매체(308A, 308B)로 각각 전송한다.
따라서, 메시지 처리 파이프라인 내에서의 통신 링크의 사용은 실행의 흐름이 다수의 파이프라인 구성요소 간에 분기할 수 있게 해준다. 그에 따라, 각각이 서로 다른 유형의 메시지를 처리할 수 있는 파이프라인 구성요소의 몇개의 서로 다른 인스턴스가 존재할 수 있다. 통신 링크는 수신된 메시지의 유형에 따라 파이프라인 구성요소의 특정의 인스턴스로 분기할 수 있다. 분기가 일어났다는 것을 응용 프로그램이 알지 못하도록, 파이프라인이 이어서 나중에 메시지가 응용 프로그램에 도달하기 전에 재결합될 수 있다. 다른 대안으로서, 응용 프로그램 논리가 이와 유사하게 메시지의 유형에 따라 분할될 수 있고, 따라서 분기된 파이프라인이 응용 프로그램에 이르기까지 계속되는 것이 바람직할 수 있다.
예를 들어, 파이프라인 구성요소(309A) 및 파이프라인 구성요소(309B) 둘다가 메시지를 응용 프로그램(311)으로 송신한다. 그렇지만, 파이프라인내 통신 링크(300)의 분기가 동일한 응용 프로그램으로 통합될 필요는 없다. 예를 들어, 파이프라인 구성요소(309A)는 메시지를 응용 프로그램(311)으로 송신할 수 있고, 파이프라인 구성요소(309B)는 메시지를 어떤 다른 응용 프로그램으로 송신할 수 있다.
본 발명의 실시예는, 어쩌면 그 특정의 머신 상에서 이용가능한 리소스에 따라, 파이프라인 구성요소를 서로 다른 머신 상에 배포하는 것을 포함한다. 파이프라인내 통신 링크는, 각각의 파이프라인 구성요소가 적절히 구성된 개별 머신에 배포될 수 있도록, 머신들 간의 연결을 브리징하는 데 사용될 수 있다.
앞서 기술한 바와 같이, 파이프라인 구성요소가 서로 다른 머신에 배포되어 있을 때 파이프라인 구성요소 간에 통신하기 위해, 파이프라인내 통신 링크는 네트워크 매체를 사용할 수 있다. 도 4를 참조하면, 도 4는 논리적 파이프라인(420) 및 그의 대응하는 물리적 배포(440)를 포함하는 컴퓨터 아키텍처(400)를 나타낸 것이다. 도시된 바와 같이, 논리적 파이프라인(420)은 통신 매체(426), 파이프라인 구성요소(424), 파이프라인 구성요소(423), 파이프라인 구성요소(422) 및 응용 프로그램(421)을 포함한다. 통신 매체(426) 및 파이프라인 구성요소(424)는 머신(446) 상에 배포되어 있다. 통신 매체(426) 및 파이프라인 구성요소(424) 중 하나 이상이 라이브러리(453)를 이용할 수 있다(심지어 필요로 할 수 있다).
파이프라인 구성요소(423)는 머신(443) 상에 배포되어 있다. 파이프라인 구성요소(423)는 라이브러리(452)를 이용할 수 있다(심지어 필요로 할 수 있다). 파이프라인 구성요소(422) 및 응용 프로그램(421)은 머신(441) 상에 배포되어 있다. 파이프라인 구성요소(422) 및 응용 프로그램(421)은 라이브러리(451)를 이용할 수 있다(심지어 필요로 할 수 있다).
한 머신에 배포된 파이프라인 구성요소를 다른 머신에 배포된 파이프라인 구성요소에 연결시키기 위해 파이프라인내 통신 링크가 사용될 수 있다. 예를 들어, 통신 링크(444)는 파이프라인 구성요소(424)를 파이프라인 구성요소(423)에 연결시키고 그 반대도 마찬가지이다. 이와 유사하게, 통신 링크(442)는 파이프라인 구성요소(423)를 파이프라인 구성요소(422)에 연결시키고 그 반대도 마찬가지이다.
그렇지만, 머신 분리 경계(machine isolation boundary)를 사용하여 파이프라인 구성요소를 분리시키는 것이 가능한 유일한 세분성이 아니다. 다른 종류의 분리 경계(예를 들어, 동일한 머신 상의 개별 프로세스에 배포하는 것 등)도 사용될 수 있다.
다른 실시예에서, 파이프라인 구성요소의 물리적 배포가 안정된 메시지 큐에 의해 분리될 수 있다. 파이프라인 구성요소 간에 안정된 저장소를 배치하는 것에 의해 파이프라인 구성요소가 시간적으로 독립된 방식으로 실행될 수 있다. 도 5는 메시지 처리 파이프라인 구성요소가 안정된 큐에 의해 분리되어 있는 컴퓨터 아키텍처(500)를 나타낸 것이다.
도 5에 도시된 바와 같이, 요청 메시지[예를 들어, 요청 메시지(531) 등]가 프로세스(502)에 들어간다. 마찬가지로, 회신 메시지[예를 들어, 회신 메시지(532) 등]가 프로세스(502)에서 빠져나간다. 머신(501)은 프로세스(502, 503)를 포함하고 있다. 프로세스(502)는 구성요소(503)를 포함하고, 프로세스(506)는 구성요소(507, 508)를 포함한다. 안정된 큐(504)는, 머신(501)에서의 로컬 통신 매체를 통해, 구성요소(503)와 구성요소(507, 508)를 분리시킨다. 머신(521)은 프로세스(522, 526)를 포함하고 있다. 프로세스(522)는 구성요소(523)를 포함하고, 프로세스(526)는 응용 프로그램(527)(예를 들어, 다른 파이프라인 구성요소)을 포함한다. 안정된 큐(524)는, 머신(521)에서의 로컬 통신 매체를 통해, 구성요소(523)와 응용 프로그램(527)을 분리시킨다. 안정된 큐(511)는, 머신(501, 502)에서의 네트워크 통신 매체를 통해, 구성요소(507, 508)와 구성요소(523)를 분리시킨다.
컴퓨터 아키텍처(500) 내에서, 구성요소(507 또는 508)가 대역외 메커니즘(예를 들어, 아웃바운드 메시지 승인)을 사용하여 요청 메시지(531)의 송신자에 응답해야 하는 경우, 이들 구성요소는, 구성요소(503)에 의해 송신된 전송 승인(transfer acknowledgement)과 독립적으로 또한 나중의 파이프라인 실행 및 응용 프로그램과 독립적으로, 자유롭게 그렇게 할 수 있다. 파이프라인 구성요소(503)은 또한 요청 메시지(531)가 안정된 큐(504)에 배치되자마자 요청 메시지(531)에 대한 응답을 송신할 수 있다. 파이프라인 구성요소(507)는 승인을 송신할 수 없는 것으로 인해 일시적인 장애를 겪을 수 있지만, 이것은 파이프라인 구성요소(503)가 추가의 요청을 계속 처리하는 것을 방해하지 않는다. 이와 유사하게, 안정된 큐(511)도 이후의 파이프라인 구성요소 및 응용 프로그램(527)이 이미 승인된 요청을 계속 처리할 수 있게 해준다.
따라서, 통신 링크의 명시가 파이프라인에 대한 전체적인 명시의 일부인 것으로 생각될 수 있다. 각각의 통신 링크가 하나의 파이프라인 사양 내에 인라인으로 명시될 수 있거나 다른 사양에 대한 참조를 사용하여 서로 연결될 수 있다. 어떤 경우에, 통신 링크의 사양을 자동으로 추론할 수 있다. 예를 들어, 제1 파이프라인 구성요소가 제1 메시지 형식을 사용하는 메시지를 방출하고 제2 파이프라인 구성요소가 제2 메시지 형식을 사용하는 메시지를 소비하도록 2개의 인접한 파이프라인 구성요소가 구성되어 있는 경우, 제1 메시지 형식과 제2 메시지 형식 간에 변환을 하는 통신 링크의 존재가, 명시적인 사양을 필요로 하기 보다는, 시스템에 의해 추론될 수 있다.
따라서, 본 발명의 실시예는 구성가능한 메시지 처리 파이프라인을 용이하게 해준다. 실시예는 파이프라인내 통신 링크를 이용하여 파이프라인 단계를 분리시킨다. 파이프라인내 통신 링크의 사용은, 파이프라인 구성요소 또는 응용 프로그램을 변경할 필요없이, 메시지 처리 파이프라인을 구성하는 것을 가능하게 해준다. 각각의 통신 링크 자체는, 예를 들어, 연결되어 있는 파이프라인 구성요소가 응용 프로그램 개발자가 제거하고자 하는 시간적 또는 물리적 결합을 가지는지 여부에 따라, 시간 및/또는 공간에 걸쳐 메시지를 브리징하는 수신 및 송신 메시지 처리 파이프라인을 갖는 응용 프로그램이다.
예를 들어, 응용 프로그램 개발자는, 통신 링크로 하여금 메시지를 그 다음 파이프라인 구성요소가 위치해 있는 다른 머신으로 전송하게 함으로써, 물리적 결합을 제거할 수 있다. 응용 프로그램 개발자는, 그 다음 파이프라인 구성요소가 나중에 실행할 수 있도록 통신 링크로 하여금 안정된 저장소로부터 메시지를 판독하고 안정된 저장소에 메시지를 기록하게 함으로써, 시간적 결합을 제거할 수 있다. 따라서, 통신 링크를 메시지 처리 파이프라인에 삽입하기 위한 통신 링크 응용 프로그램, 통신 링크 파이프라인, 및 대응하는 연결이, 응용 프로그램 개발자가 통신 링크를 개별적으로 프로그램할 필요없이, 파이프라인 사양으로부터 구성될 수 있다.
본 발명은 그의 사상 또는 본질적인 특성을 벗어나지 않고 다른 구체적인 형태로 구현될 수 있다. 기술된 실시예가 모든 점에서 제한적이 아니라 단지 예시적인 것으로 간주되어야 한다. 따라서, 본 발명의 범위는 이상의 설명이 아니라 첨부된 특허청구범위에 의해 나타내어진다. 특허청구범위의 등가성의 의미 및 범위 내에 속하는 모든 변경이 발명의 범위 내에 포함된다.

Claims (15)

  1. 하나 이상의 프로세서 및 시스템 메모리를 포함하는 컴퓨터 시스템에서, 응용 프로그램(107)에 대한 메시지 처리 파이프라인을 구성하는 방법으로서,
    상기 응용 프로그램에 대한 현재의 파이프라인 사양(121)에 액세스하는 단계 - 상기 현재의 파이프라인 사양(121)은, 상기 응용 프로그램(107)에 대한 메시지 처리 파이프라인(108)에 포함되어야 하는 메시징 구성요소(116A, 116B, 112)를 명시하는 것을 포함하여, 상기 응용 프로그램(107)에 대한 메시지 처리 파이프라인(108)을 어떻게 구성하는지를 명시하고 있음 - ;
    상기 응용 프로그램(107)에 대한 부가의 메시지 처리 요구사항(131)에 액세스하는 단계;
    상기 부가의 메시지 처리 요구사항(131)을 만족시키는 부가의 메시지 처리 기능을 명시하기 위해 상기 현재의 파이프라인 사양(122)에 적용될 수 있는 변환(132)을 식별하는 단계 - 상기 변환(132)은 상기 메시지 처리 파이프라인에 포함되도록 이미 명시된 메시징 구성요소들에 기초하여 또한 상기 부가의 메시지 처리 요구사항(131)에 기초하여 식별됨 - ;
    상기 현재의 파이프라인 사양(121)에 식별된 상기 변환(132)을 적용하여 상기 응용 프로그램(107)에 대한 변환된 파이프라인 사양(121T)을 생성하는 단계 - 상기 변환된 파이프라인 사양(107T)은, 상기 부가의 메시지 처리 요구사항(131)을 만족시키기 위해 메시지 처리 파이프라인에 포함되어야 하는 메시징 구성요소의 배열을 명시하는 것을 포함하여, 상기 부가의 메시지 처리 요구사항(131)을 만족시키는 응용 프로그램(107)에 대한 메시지 처리 파이프라인(108)을 어떻게 구성해야 하는지를 명시함 - ; 및
    변환된 파이프라인 사양(121T)을 해석하여 상기 응용 프로그램(107)에 대한 메시지 처리 파이프라인(108)을 인스턴스화하는 단계 - 인스턴스화된 메시지 처리 파이프라인(108)은 상기 응용 프로그램에 대한 상기 부가의 메시지 처리 요구사항(131)을 만족시키도록 구성됨 - 를 포함하는 방법.
  2. 제1항에 있어서, 상기 메시지 처리 파이프라인에 포함시키기 위해 상기 컴퓨터 시스템이 이용가능한 구성요소들을 식별하는 단계를 더 포함하고,
    상기 현재의 파이프라인 사양에 적용될 수 있는 변환을 식별하는 단계가 식별된 상기 이용가능한 구성요소들에 기초하여 현재의 파이프라인에 적용될 수 있는 변환을 식별하는 단계를 포함하는 방법.
  3. 제2항에 있어서, 상기 변환된 파이프라인 사양을 해석하여 상기 응용 프로그램에 대한 메시지 처리 파이프라인을 인스턴스화는 단계가 상기 부가의 메시지 처리 요구사항을 만족시키기 위해 상기 식별된 이용가능한 구성요소들 중 하나 이상의 구성요소를 상기 메시지 처리 파이프라인에 삽입하는 단계를 포함하는 방법.
  4. 제1항에 있어서, 상기 응용 프로그램에 대한 부가의 메시지 처리 요구사항에 액세스하는 단계가 제2 파이프라인 사양에 액세스하는 단계를 포함하는 방법.
  5. 제5항에 있어서, 상기 응용 프로그램에 대한 부가의 메시지 처리 요구사항에 액세스하는 단계가 상기 현재의 파이프라인 사양과 상기 제2 파이프라인 사양을 비교한 결과로부터 상기 부가의 처리 요구사항을 추론하는 단계를 포함하는 방법.
  6. 제1항에 있어서, 상기 부가의 메시지 처리 요구사항을 만족시키는 부가의 메시지 처리 기능을 명시하기 위해 상기 현재의 파이프라인 사양에 적용될 수 있는 변환을 식별하는 단계가 상기 부가의 메시지 처리 요구사항을 만족시킬 수 있는 파이프라인내 통신 링크를 명시하기 위해 적용될 수 있는 변환을 식별하는 단계를 포함하는 방법.
  7. 제6항에 있어서, 상기 부가의 메시지 처리 요구사항을 만족시킬 수 있는 파이프라인내 통신 링크를 명시하기 위해 적용될 수 있는 변환을 식별하는 단계가 상기 메시지 처리 파이프라인 내의 다른 파이프라인 구성요소들 간에 프로토콜을 브리징하는(bridges) 파이프라인내 통신 링크를 명시하기 위해 적용될 수 있는 변환을 식별하는 단계를 포함하는 방법.
  8. 제6항에 있어서, 상기 부가의 메시지 처리 요구사항을 만족시킬 수 있는 파이프라인내 통신 링크를 명시하기 위해 적용될 수 있는 변환을 식별하는 단계가 상기 파이프라인내 통신 링크가 메시지를 한 형식으로부터 다른 형식으로 변환하도록 명시하기 위해 적용될 수 있는 변환을 식별하는 단계를 포함하는 방법.
  9. 제6항에 있어서, 상기 부가의 메시지 처리 요구사항을 만족시킬 수 있는 파이프라인내 통신 링크를 명시하기 위해 적용될 수 있는 변환을 식별하는 단계가 다른 파이프라인 구성요소들을 물리적으로 분리시키는 파이프라인내 통신 링크를 명시하기 위해 적용될 수 있는 변환을 식별하는 단계를 포함하는 방법.
  10. 제6항에 있어서, 상기 부가의 메시지 처리 요구사항을 만족시킬 수 있는 파이프라인내 통신 링크를 명시하기 위해 적용될 수 있는 변환을 식별하는 단계가 다른 파이프라인 구성요소들을 시간적으로 분리시키는 파이프라인내 통신 링크를 명시하기 위해 적용될 수 있는 변환을 식별하는 단계를 포함하는 방법.
  11. 제6항에 있어서, 상기 부가의 메시지 처리 요구사항을 만족시킬 수 있는 파이프라인내 통신 링크를 명시하기 위해 적용될 수 있는 변환을 식별하는 단계가 다른 파이프라인 구성요소들 간에 분기하는 파이프라인내 통신 링크를 명시하기 위해 적용될 수 있는 변환을 식별하는 단계를 포함하는 방법.
  12. 하나 이상의 프로세서,
    시스템 메모리; 및
    파이프라인 변환 모듈 및 이용가능한 메시징 파이프라인 구성요소들의 집합체를 나타내는 컴퓨터 실행가능 명령어를 저장하는 하나 이상의 컴퓨터 기억 매체를 포함하고,
    각각의 이용가능한 메시징 파이프라인 구성요소는 서로 다른(differing) 메시지 파이프라인 처리 기능을 제공하며,
    상기 파이프라인 변환 모듈은,
    메시지 처리 파이프라인(300)이 만족시켜야 하는 일련의 응용 프로그램 요구사항(131)을 수신하고,
    상기 일련의 요구사항(131)을 만족시키기 위해 상호작용할 수 있는 이용가능한 메시징 파이프라인 구성요소(309A, 309B)의 배열을 식별하며,
    메시지 처리 파이프라인 사양(121)을 변환하도록 - 상기 변환은 이용가능한 메시징 파이프라인 구성요소(309A, 309B)의 배열 간의 상호작용이 상기 메시지 처리 파이프라인 사양으로부터 인스턴스화된 메시지 처리 파이프라인(300)에 포함된 다른 파이프라인 구성요소(302, 311) 간의 파이프라인내 통신 링크(321) 내에 포함되어야 하는 것을 명시함 - 구성되어 있는 것인 컴퓨터 시스템.
  13. 제12항에 있어서, 메시지 처리 파이프라인 사양을 변환하도록 구성되어 있는 파이프라인 변환 모듈이 상기 메시지 처리 파이프라인에 포함된 다른 파이프라인 구성요소들을 물리적으로 분리시키는 파이프라인내 통신 링크를 명시하도록 구성되어 있는 파이프라인 변환 모듈을 포함하는 컴퓨터 시스템.
  14. 제12항에 있어서, 메시지 처리 파이프라인 사양을 변환하도록 구성되어 있는 파이프라인 변환 모듈이 상기 메시지 처리 파이프라인에 포함된 다른 파이프라인 구성요소들을 시간적으로 분리시키는 파이프라인내 통신 링크를 명시하도록 구성되어 있는 파이프라인 변환 모듈을 포함하는 컴퓨터 시스템.
  15. 하나 이상의 프로세서 및 시스템 메모리를 포함하는 컴퓨터 시스템에서, 응용 프로그램에 대한 메시지 처리 파이프라인을 구성하기 위한 방법으로서,
    상기 응용 프로그램에 대한 제1 파이프라인 사양(121)에 액세스하는 단계 - 상기 제1 파이프라인 사양은 제1 파이프라인 구성요소가 상기 응용 프로그램에 대한 메시지 처리 파이프라인에 포함되어야 한다는 것을 명시하고 상기 제1 파이프라인 구성요소는 제1 코드 라이브러리에 의존함 -,
    상기 응용 프로그램에 대한 제2 파이프라인 사양(122)에 액세스하는 단계 - 상기 제2 파이프라인 사양은 제2 파이프라인 구성요소가 상기 제1 파이프라인 구성요소 이후에 상기 응용 프로그램에 대한 상기 메시지 처리 파이프라인에 포함되어야 한다는 것을 명시하고, 상기 제2 파이프라인 구성요소는 제2 코드 라이브러리에 의존함 -,
    제1 라이브러리(451)가 제1 컴퓨터 시스템에서 이용가능한지를 판정하는 단계,
    제2 라이브러리(452)가 다른 제2 컴퓨터 시스템에서 이용가능한지를 판정하는 단계,
    상기 제1 파이프라인 구성요소를 상기 제2 파이프라인 구성요소에 연결시키기 위한 파이프라인내 통신 링크(321)를 포함하도록 제1 사양을 변환하는 단계 - 상기 파이프라인내 통신 링크는 상기 제1 파이프라인 구성요소로부터 메시지를 수신하는 수신 통신 매체(incoming communication medium; 303), 상기 제2 파이프라인 구성요소로 메시지를 송신하는 송신 통신 매체(outgoing communication medium; 308a), 및 상기 수신 통신 매체(303)로부터 상기 송신 통신 매체(308a)로 메시지를 펌핑하는 메시지 펌프(143)를 포함함 -, 및
    상기 제1 파이프라인 구성요소를 상기 제1 컴퓨터 시스템에 배포하고, 상기 제2 파이프라인 구성요소를 상기 제2 컴퓨터 시스템에 배포하며, 파이프라인내 통신 링크(321)를 이용하여 상기 제1 파이프라인 구성요소로부터 상기 제2 파이프라인 구성요소로 메시지를 전송하는 응용 프로그램에 대한 메시지 처리 파이프라인을 인스턴스화하는 단계를 포함하는 방법.
KR1020117004625A 2008-09-03 2009-08-11 메시지 처리 파이프라인 구성 KR101558289B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/203,527 US7895280B2 (en) 2008-09-03 2008-09-03 Composing message processing pipelines
US12/203,527 2008-09-03

Publications (2)

Publication Number Publication Date
KR20110065448A true KR20110065448A (ko) 2011-06-15
KR101558289B1 KR101558289B1 (ko) 2015-10-12

Family

ID=41726916

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117004625A KR101558289B1 (ko) 2008-09-03 2009-08-11 메시지 처리 파이프라인 구성

Country Status (6)

Country Link
US (3) US7895280B2 (ko)
EP (1) EP2321721A4 (ko)
JP (1) JP5362011B2 (ko)
KR (1) KR101558289B1 (ko)
CN (1) CN102144215B (ko)
WO (1) WO2010027610A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9396050B2 (en) 2011-07-07 2016-07-19 Nec Corporation Distributed execution system and distributed program execution method
US11010707B1 (en) 2020-03-02 2021-05-18 Coupang Corp. Systems and methods for interconnecting network devices based on queuing and servicing responses

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7895280B2 (en) 2008-09-03 2011-02-22 Microsoft Corporation Composing message processing pipelines
US8375095B2 (en) * 2009-12-22 2013-02-12 Microsoft Corporation Out of order durable message processing
US8392508B2 (en) 2010-06-11 2013-03-05 International Business Machines Corporation Selectively controlling information flow in a collaborative environment
US9081743B2 (en) * 2012-05-25 2015-07-14 Pro Design Electronic Gmbh Communication system and communicaton method
CN104615413A (zh) * 2015-02-13 2015-05-13 赛诺威盛科技(北京)有限公司 一种流水线任务自适应并行方法
CN114942791A (zh) * 2022-05-26 2022-08-26 统信软件技术有限公司 一种进程唤醒方法、装置、计算设备及可读存储介质

Family Cites Families (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58207152A (ja) 1982-05-28 1983-12-02 Nec Corp パイプライン演算装置テスト方式
US5557798A (en) 1989-07-27 1996-09-17 Tibco, Inc. Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
JPH07175738A (ja) * 1992-05-28 1995-07-14 Kawasaki Steel Corp 通信装置
US5918034A (en) 1997-06-27 1999-06-29 Sun Microsystems, Inc. Method for decoupling pipeline stages
US6987777B1 (en) 1999-12-02 2006-01-17 Nortel Networks Ltd Priority forwarding in a communication system
US6629167B1 (en) 2000-02-18 2003-09-30 Hewlett-Packard Development Company, L.P. Pipeline decoupling buffer for handling early data and late data
EP1198102B1 (en) * 2000-10-13 2007-06-27 Sun Microsystems, Inc. Extendable provisioning mechanism for a service gateway
US7181536B2 (en) * 2002-03-27 2007-02-20 International Business Machines Corporation Interminable peer relationships in transient communities
US7127520B2 (en) * 2002-06-28 2006-10-24 Streamserve Method and system for transforming input data streams
JP3952181B2 (ja) * 2002-09-06 2007-08-01 村田機械株式会社 ネットワーク装置
KR100479333B1 (ko) * 2002-11-22 2005-03-31 한국전자통신연구원 ebXML 레지스트리에 기반을 둔 UDDI 웹서비스레지스트리 시스템과 그 관리 방법
JP3969654B2 (ja) * 2003-03-07 2007-09-05 インターナショナル・ビジネス・マシーンズ・コーポレーション Soapメッセージ作成方法並びに処理方法、情報処理方法、情報処理装置及びプログラム
US7200676B2 (en) 2003-03-26 2007-04-03 Microsoft Corporation Transmitting and receiving messages through a customizable communication channel and programming model
US7185060B2 (en) * 2003-03-26 2007-02-27 Microsoft Corporation Message processing pipeline for streams
US7194733B2 (en) * 2003-06-11 2007-03-20 Microsoft Corporation Transformation of an asynchronous transactional messaging language into a web services compatible language
CA2432658C (en) * 2003-06-17 2008-04-01 Ibm Canada Limited - Ibm Canada Limitee Simple types in xml schema complex types
US7478402B2 (en) * 2004-02-12 2009-01-13 Microsoft Corporation Configurable message pipelines
GB0407145D0 (en) * 2004-03-30 2004-05-05 British Telecomm Inter-agent communication
US20060036755A1 (en) * 2004-05-07 2006-02-16 Abdullah Ibrahim S Meta-protocol
US7310684B2 (en) * 2004-05-21 2007-12-18 Bea Systems, Inc. Message processing in a service oriented architecture
US20050267947A1 (en) * 2004-05-21 2005-12-01 Bea Systems, Inc. Service oriented architecture with message processing pipelines
US7653008B2 (en) * 2004-05-21 2010-01-26 Bea Systems, Inc. Dynamically configurable service oriented architecture
US20060069791A1 (en) * 2004-05-21 2006-03-30 Bea Systems, Inc. Service oriented architecture with interchangeable transport protocols
US7584422B2 (en) * 2004-07-12 2009-09-01 Informatica Corporation System and method for data format transformation
US8037123B2 (en) * 2004-08-27 2011-10-11 Microsoft Corporation Securely and efficiently extending data processing pipeline functionality
US8078671B2 (en) * 2005-09-21 2011-12-13 Sap Ag System and method for dynamic web services descriptor generation using templates
US8554846B2 (en) * 2005-09-27 2013-10-08 Oracle International Corporation System and method for providing a messaging kernel
US7814211B2 (en) * 2006-01-31 2010-10-12 Microsoft Corporation Varying of message encoding
US20080021955A1 (en) 2006-07-24 2008-01-24 Raytheon Company Message oriented middleware server pipeline architecture
US8463589B2 (en) * 2006-07-28 2013-06-11 Synopsys, Inc. Modifying a virtual processor model for hardware/software simulation
US8566777B2 (en) * 2007-04-13 2013-10-22 International Business Machines Corporation Work packet forecasting in a software factory
US7958494B2 (en) * 2007-04-13 2011-06-07 International Business Machines Corporation Rapid on-boarding of a software factory
US8464205B2 (en) * 2007-04-13 2013-06-11 International Business Machines Corporation Life cycle of a work packet in a software factory
US8327318B2 (en) * 2007-04-13 2012-12-04 International Business Machines Corporation Software factory health monitoring
US20080256390A1 (en) * 2007-04-13 2008-10-16 Chaar Jarir K Project Induction in a Software Factory
US8359566B2 (en) * 2007-04-13 2013-01-22 International Business Machines Corporation Software factory
US8296719B2 (en) * 2007-04-13 2012-10-23 International Business Machines Corporation Software factory readiness review
US8141040B2 (en) * 2007-04-13 2012-03-20 International Business Machines Corporation Assembling work packets within a software factory
US7792117B1 (en) * 2007-05-03 2010-09-07 Xilinx, Inc. Method for simulating a processor of network packets
US7856505B2 (en) * 2007-06-29 2010-12-21 Microsoft Corporation Instantiating a communication pipeline between software
US8141030B2 (en) * 2007-08-07 2012-03-20 International Business Machines Corporation Dynamic routing and load balancing packet distribution with a software factory
US8332807B2 (en) * 2007-08-10 2012-12-11 International Business Machines Corporation Waste determinants identification and elimination process model within a software factory operating environment
US9189757B2 (en) * 2007-08-23 2015-11-17 International Business Machines Corporation Monitoring and maintaining balance of factory quality attributes within a software factory environment
US8539437B2 (en) * 2007-08-30 2013-09-17 International Business Machines Corporation Security process model for tasks within a software factory
US8020168B2 (en) * 2008-05-09 2011-09-13 International Business Machines Corporation Dynamic virtual software pipelining on a network on chip
US8595044B2 (en) * 2008-05-29 2013-11-26 International Business Machines Corporation Determining competence levels of teams working within a software
US8667469B2 (en) * 2008-05-29 2014-03-04 International Business Machines Corporation Staged automated validation of work packets inputs and deliverables in a software factory
US8527329B2 (en) * 2008-07-15 2013-09-03 International Business Machines Corporation Configuring design centers, assembly lines and job shops of a global delivery network into “on demand” factories
US8452629B2 (en) * 2008-07-15 2013-05-28 International Business Machines Corporation Work packet enabled active project schedule maintenance
US8140367B2 (en) * 2008-07-22 2012-03-20 International Business Machines Corporation Open marketplace for distributed service arbitrage with integrated risk management
US20100023920A1 (en) * 2008-07-22 2010-01-28 International Business Machines Corporation Intelligent job artifact set analyzer, optimizer and re-constructor
US8375370B2 (en) * 2008-07-23 2013-02-12 International Business Machines Corporation Application/service event root cause traceability causal and impact analyzer
US8418126B2 (en) * 2008-07-23 2013-04-09 International Business Machines Corporation Software factory semantic reconciliation of data models for work packets
US8336026B2 (en) * 2008-07-31 2012-12-18 International Business Machines Corporation Supporting a work packet request with a specifically tailored IDE
US8271949B2 (en) * 2008-07-31 2012-09-18 International Business Machines Corporation Self-healing factory processes in a software factory
US8448129B2 (en) * 2008-07-31 2013-05-21 International Business Machines Corporation Work packet delegation in a software factory
US7895280B2 (en) 2008-09-03 2011-02-22 Microsoft Corporation Composing message processing pipelines

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9396050B2 (en) 2011-07-07 2016-07-19 Nec Corporation Distributed execution system and distributed program execution method
US11010707B1 (en) 2020-03-02 2021-05-18 Coupang Corp. Systems and methods for interconnecting network devices based on queuing and servicing responses

Also Published As

Publication number Publication date
CN102144215B (zh) 2013-02-13
US20110138399A1 (en) 2011-06-09
US8386556B2 (en) 2013-02-26
US20130160027A1 (en) 2013-06-20
WO2010027610A3 (en) 2010-04-22
JP2012512445A (ja) 2012-05-31
CN102144215A (zh) 2011-08-03
US9164819B2 (en) 2015-10-20
KR101558289B1 (ko) 2015-10-12
JP5362011B2 (ja) 2013-12-11
EP2321721A2 (en) 2011-05-18
US20100057863A1 (en) 2010-03-04
EP2321721A4 (en) 2012-10-24
WO2010027610A2 (en) 2010-03-11
US7895280B2 (en) 2011-02-22

Similar Documents

Publication Publication Date Title
US8205007B2 (en) Native format tunneling
US9852116B2 (en) System and method for processing messages using native data serialization/deserialization in a service-oriented pipeline architecture
KR100328516B1 (ko) 응용프로그램사이에통신프로토콜을설정하기위한시스템및방법
KR20110065448A (ko) 메시지 처리 파이프라인 구성
US8219970B2 (en) XML push and remote execution of a wireless applications
RU2356089C2 (ru) Передача и прием сообщений посредством индивидуально конфигурируемых канала обмена данных и модели программирования
US8806506B2 (en) System and method for processing messages using a common interface platform supporting multiple pluggable data formats in a service-oriented pipeline architecture
US7346893B2 (en) Exchange infrastructure system and method
US20030009539A1 (en) Distributed object middleware connection method
US7904111B2 (en) Mobile exchange infrastructure
WO2004070494A2 (en) Data-driven application integration adapters
EP1161052A2 (en) Operating system for network interface
EP1506478B1 (en) Exchange infrastructure system and method
US7908397B1 (en) Application server gateway technology
US20080313309A1 (en) Client-server data transfer control
US7367029B2 (en) Method and system for handling data
KR100494827B1 (ko) 하드웨어 독립적인 통신 인터페이스를 가지는 분산객체모델 기반의 라디오 서버와 이를 이용한 통신제어방법
AU2022204692A1 (en) Methods and systems for persistent communications between client applications and application servers
KR100755712B1 (ko) 웹 서비스를 이용한 임베디드 디바이스의 원격 관리 방법
JP2008225625A (ja) 分散処理システム連携システム、分散処理システム連携方法および分散処理システム連携プログラム
Sward Using ada in a service-Ooriented architecture
WO2003107205A1 (ja) 分散オブジェクトミドルウェア連携方法及びプログラムを記録した記録媒体並びにプログラム

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
N231 Notification of change of applicant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180918

Year of fee payment: 4