KR20030020462A - 비동기 메시지 전송 시스템에서 사용하기 위한 방법 및 장치 - Google Patents

비동기 메시지 전송 시스템에서 사용하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20030020462A
KR20030020462A KR10-2003-7001891A KR20037001891A KR20030020462A KR 20030020462 A KR20030020462 A KR 20030020462A KR 20037001891 A KR20037001891 A KR 20037001891A KR 20030020462 A KR20030020462 A KR 20030020462A
Authority
KR
South Korea
Prior art keywords
message
delivery
result
delivery result
sent
Prior art date
Application number
KR10-2003-7001891A
Other languages
English (en)
Other versions
KR100537869B1 (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 KR20030020462A publication Critical patent/KR20030020462A/ko
Application granted granted Critical
Publication of KR100537869B1 publication Critical patent/KR100537869B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • 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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Between Computers (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

비동기 메시지 전송 시스템에서 사용하기 위한 컴퓨터 기반 방법은 (ⅰ) 상기 시스템에서 전송될 적어도 하나의 메시지에 대한 적어도 하나의 메시지 전달 결과 상태를 정의하고, 상기 적어도 하나의 메시지 전달 결과 상태와 상기 시스템에서 전송될 메시지를 연관시키는 단계와, (ⅱ) 상기 시스템에서 상기 연관된 메시지 전달 결과 상태와 함께 상기 메시지를 전송하는 단계와, (ⅲ) 상기 전송된 메시지의 전달을 모니터링하고, 상기 메시지의 송신자가 상기 메시지의 최종 수신자로의 전달 결과를 통보받을 수 있도록, 상기 연관된 메시지 전달 결과 상태에 대하여 상기 메시지의 전달 결과를 평가하는 단계를 포함한다.

Description

비동기 메시지 전송 시스템에서 사용하기 위한 방법 및 장치 {METHODS AND APPARATUS FOR USE IN AN ASYNCHRONOUS MESSAGING SYSTEM}
분산 및 병행 소프트웨어 시스템은 상이한 형태의 전자 통신을 채용한다. 메시지 전송은 그러한 한가지 통신 모델이다. 메시지 전송에서는 시스템 구성 요소가 메시지를 전송함으로써 서로 통신한다. 메시지는 애플리케이션 특유의 데이터를 운반한다.
메시지 전송은, 시스템 구성 요소가 어느 한 시점에 메시지를 보내고 메시지 전달 및 메시지의 수신자에 관계없이 계속해서 계산한다(compute)는 면에서 본질적으로 비동기적이다. 메시지 송신자는 나중 시점에 메시지에 대한 응답을 수신할지도 모른다. 메시지의 송신자와 수신자들은 시간에 독립적이다. 즉, 메시지의 송신자와 수신자들이 동시에 네트워크상에서 이용가능해야 할 필요는 없다.
많은 분산 및 병행 소프트웨어 시스템은 비동기 메시지 전송에 의존하고, 이러한 목적을 위하여 메시지 미들웨어를 사용한다. 메시지 미들웨어란 소프트웨어 시스템의 구성 요소 간에 메시지를 전송하는 동작에 영향을 미치는 하나 이상의소프트웨어 프로그램을 말한다. 메시지 미들웨어에서는 메시지가 일반적으로 어떤 형태의 목적지, 예를 들어, 메시지 큐로 보내지면, 그 후 이 메시지 큐로부터 메시지 미들웨어의 다른 클라이언트들, 예를 들어, 최종 메시지 수신자들이 이 메시지를 읽을 수 있다. 이렇게 해서, 메시지의 송신자와 수신자들은 반드시 서로의 존재를 알아야 할 필요는 없다.
각 메시지 전달의 실패 및 각 성공은 메시지의 송신자에게 중요하고 심지어는 아주 치명적일 수 있다. 메시지 전달 실패가 결정되는 애플리케이션 특유의 기준은 일반적으로 송신자마다 다르고 메시지마다 다를 수 있다. 그러나, 이러한 기준을 확정하고, 이 기준에 따라 메시지 전달을 평가하며, 평가 결과에 반응하는 것은 어렵고, 종래의 메시지 미들웨어에 의해 용이하게 지지되지 않는다.
종래의 메시지 미들웨어, 예를 들어, MQSeries(IBM 사의 상표) 또는 JAVA Message Service JMS (선마이크로시스템 사의 상표)는 매우 한정된 메시지 전달 실패의 개념(notion)만 지지하고, 메시지의 송신자가 메시지 별로 정의할 수 있었던 상이한 실패 개념간에 구별을 하지 않는다. 메시지의 송신자는 메시지의 목적지만 특정하고, 메시지 전달은 신뢰성 있다고 선언할 수 있다. 그러면, 메시지 미들웨어는 심지어 시스템 고장과 같은 실패가 있는 경우에도 메시지가 목적지에 전달되었다고 보장한다. 종래의 메시지 미들웨어는 메시지 전달의 실패와 성공이 결정될 수 있는 애플리케이션 특유의 기준을 정의하는 것을 지지하지 않는다.
본 발명은 비동기 메시지 전송을 이용하는 분산 및 병행(concurrent) 소프트웨어 시스템에 관한 것이다.
도 1은 본 발명의 일 실시예에 따른 메시지 전송을 사용하는 시스템의 블록도.
도 2는 도 4, 5, 6, 7의 흐름도에 관련된 본 발명의 일 실시예에 따른 메시지 전송 프로세스의 흐름도.
도 3은 본 발명의 일 실시예에 따른 메시지 실패 정의 프로세스의 흐름도.
도 4는 본 발명의 일 실시예에 따른 메시지 전송 프로세스의 흐름도.
도 5는 본 발명의 일 실시예에 따른 메시지 전달 감시 프로세스의 흐름도.
도 6은 본 발명의 일 실시예에 따른 메시지 실패 평가 프로세스의 흐름도.
도 7은 본 발명의 일 실시예에 따른 메시지 실패 상태 변경 프로세스의 흐름도.
도 8은 본 발명에 따른 메시지 전송 시스템을 구현하는데 적합한 컴퓨터 시스템의 일반화된 하드웨어 구조를 도시하는 블록도.
본 발명은 바람직하게는 메시지 단위로 메시지 전달 결과를 정의하고 처리하는 방법 및 장치를 제공한다. 바람직하게는 이 결과는 "성공" 또는 "실패" 중 하나이다.
본 발명의 일 측면에 의하면, 비동기 메시지 전송 시스템에 사용하기 위한 컴퓨터 기반의 방법은 상기 시스템에서 전송될 적어도 하나의 메시지에 대한 적어도 하나의 메시지 전달 결과 상태를 정의하고, 상기 적어도 하나의 메시지 전달 결과 상태와 상기 시스템에서 전송될 메시지를 연관시키는 단계와, 상기 시스템에서 상기 연관된 적어도 하나의 메시지 전달 결과 상태와 함께 상기 메시지를 전송하는 단계와, 상기 전송된 메시지의 전달을 모니터링하고, 상기 메시지의 송신자가 상기 메시지의 전달 결과를 통보받을 수 있도록, 상기 연관된 적어도 하나의 메시지 전달 결과 상태에 대하여 상기 메시지의 전달 결과를 평가하는 단계를 포함한다.
본 발명의 다른 측면에 의하면, 애플리케이션 프로그래밍 인터페이스가 제공되어 메시지의 송신자에 의해 사용되어, 메시지 단위로 메시지 전달 결과 상태들을 지정하는 단계와, 메시지들과 메시지 결과 상태들을 연관시키는 단계와, 상기 관련된 결과 상태들과 함께 메시지를 전송하는 단계와, 그 결과 상태에 관하여 메시지 전달 상태에 대하여 질의하는 단계와, 메시지에 대하여 특정된 상기 결과 상태들의 변경 및 대체 중 적어도 하나를 허가하는 단계와, 평가 결과 통보들을 수신하는 오브젝트를 지정하는 단계를 수행한다.
본 발명의 또다른 측면에 의하면, (ⅰ) 메시지 결과 상태들을 지속성 오브젝트들로서 표현하고, (ⅱ) 메시지 전달을 감시하고, (ⅲ) 메시지 결과 상태들을 평가하고, (ⅳ) 그 결과 상태들에 대하여 메시지 전달 상태에 대한 질의에 응답하며,(ⅴ) 메시지 송신자 또는 상기 송신자가 지정하는 오브젝트에게 전송된 각 메시지에 대한 평가 결과에 대하여 통보하는 동작 중 하나 이상의 동작을 수행하는 컴퓨터 기반의 장치가 제공된다. 이 장치는 본 발명의 사상을 구현하도록 적응된 종래의 메시지 미들웨어를 사용하여 구현될 수 있다.
비동기 메시지 전송을 사용하는 예시적인 소프트웨어 시스템을 가지고 본 발명을 설명하겠다. 이 시스템은 바람직하게는 분산 및 병행 시스템이다. 알려진바와 같이, 분산 소프트웨어 시스템이란 시스템의 구성 요소들이 통신 네트워크로 연결된 두 개 또는 그 이상의 컴퓨터 시스템에 존재할 수 있는 시스템이고, 병행 소프트웨어 시스템이란 여러 가지 계산 작업이 병렬적으로 즉, 병행적으로 처리될 수 있는 시스템이다. 그러나, 본 발명은 어떤 특정한 소프트웨어 시스템 구조에 한정되지 않는다는 것을 이해해야 할 것이다. 오히려 본 발명은 메시지 전달 결과를 정의하고 처리하는 것이 바람직한 임의의 소프트웨어 시스템 구조에 더 일반적으로 적용된다. 이하에서 설명되는 실시예들은 "성공"과 "실패"를 결과 상태로 간주할 것이지만, 본 발명은 이에 한정되는 것은 아니다.
전술한 바와 같이, 비동기 메시지 전송이란, 시간에 독립적인 소프트웨어 프로세스들 간에 메시지를 주고 받는 것을 말한다. 일반적으로, 메시지의 송신자는 메시지 미들웨어를 사용하여 메시지를 그 미들웨어에 의해 관리되는 어떤 형태의 목적지, 예를 들어, 메시지 큐로 전송한다. 메시지의 최종 수신자들은 이 목적지로부터 메시지를 판독하는 메시지 미들웨어의 임의의 다른 클라이언트들이다.
또한, 전술한 바와 같이, 각 메시지 전달의 실패와 각 성공은 메시지의 송신자에게 중요하고, 심지어는 충분히 치명적일 수 있다. 메시지 전달 실패가 결정되는 애플리케이션 특유의 기준은 일반적으로 송신자별로 메시지별로 상이할 수 있다. 예를 들어, 메시지 m1이 시간 윈도우 t1과 t2 내에 특정한 최종 수신자인 r1과 r2에 각각 도착하는 경우에만 메시지 m1이 성공적으로 전달되었다고 간주될 수 있다. 또는 시간 윈도우 t3 내에 다른 메시지 m2를 수신하는 익명의 최종 수신자가 다섯 명보다 적을 때, 메시지 m2가 실패했다고 간주될 수 있다.
그러나, 전술한 바와 같이, 이러한 기준을 특정하고, 이 기준에 따라 메시지 전달을 평가하고, 이 평가 결과에 반응하는 것은 어렵고, 종래의 메시지 미들웨어에 의해 쉽사리 지지되지 않는다.
종래의 메시지 미들웨어는 매우 제한된 메시지 전달 실패 개념만 지지하고, 메시지의 송신자가 메시지 단위로 정의할 수 있는 상이한 실패 개념들 간에 구별하지 않는다. 메시지의 송신자는 메시지의 목적지만을, 예를 들어 메시지 큐를 특정한다. 메시지의 최종 수신자들은 일반적으로 특정되지 않는다. 그리고, 메시지 미들웨어는 중간 목적지로의 메시지의 신뢰성있는 전달을 보장할 수 있지만, 최종 수신자가 메시지를 무사히 수신하였다는 것을 알려주는 것은 애플리케이션으로 코딩되어야 하고, 미들웨어에 의해 직접적으로 지지되지 않는다.
본 발명은 메시지 전달 실패 정의와 관리를 위한 보다 정교한 레벨을 소개한다. 여기서 설명하는 바와 같이, 메시지 전달 실패의 상이한 개념들이 용이하게 프로그램될 수 있고, 메시지 전달 실패를 관리하는 부담은 송신자에서 미들웨어로 옮겨간다. 한가지 특별한 애플리케이션은 액션이 상이한 실패 상태를 가질 수 있을 때, 송신자가 한 그룹의 액션, 즉, 송신된 메시지들의 전체 결과를 각 액션의 결과의 측면에서 정의할 수 있다. 이러한 특별한 케이스는 트랜잭션의 성공이 그 메시지의 성공적인 전달에 의존하는 트랜잭션이다.
이하에서 설명하는 바와 같이, 본 발명의 바람직한 측면에 따르면, 애플리케이션 프로그래밍 인터페이스가 제공되어 메시지의 송신자에 의해 사용되며, (ⅰ) 메시지 별로 메시지 전달 실패 상태를 특정하고, (ⅱ) 메시지와 메시지 실패 상태(의 오브젝트 표현)를 관련시키고, (ⅲ) 이러한 실패 상태와 함께 메시지를 전송하고, (ⅳ) 이 실패 상태에 대하여 메시지 전달 상태에 대하여 질의하고, (ⅴ) 메시지에 대하여 특정된 실패 상태의 변경 또는 대체를 허용하며, (ⅵ) 실패 평가 결과 통보를 수신하는 오브젝트를 지정한다.
또한, 이하에서 설명하는 바와 같이, 본 발명의 다른 측면에 따르면, 컴퓨터 기반 장치가 제공되어, (ⅰ) 메시지 실패 상태를 지속성 오브젝트(persistent object)로서 표현하고 (ⅱ) 메시지 전달을 감시하고 (ⅲ) 메시지 실패 상태를 평가하고 (ⅳ) 그 실패 상태에 대하여 메시지 전달 상태에 대한 질의에 응답하고 (ⅴ) 메시지 송신자에게 전송된 각 메시지에 대한 평가 결과에 대하여 통보한다. 이 장치는 여기서 제시된 발명의 사상을 구현하도록 적응된 기존의 메시지 미들웨어를 사용하여 구현될 수 있다.
메시지 전달 실패 상태를 나타내는 지속성 오브젝트에 설정될 값은 예를 들어, 의무적이거나 선택적인 수신자의 리스트, (메시지 큐와 같은) 목적지와 (목적지로부터 메시지를 판독하는 다른 애플리케이션 오브젝트와 같은) 최종 수신자 모두, 특정한 또는 무명의 최종 수신자가 메시지를 판독하기 위한 필요한 타임 윈도우와 타임 아웃의 명세(specification), 메시지를 수신해야 하는 다수의 또는 일정 범위의 임의의 최종 수신자의 카디널리티 명세, 및 송신자가 이용할 수 있거나 메시지 전달 시스템에 의해 노출된 다른 값들을 포함한다.
메시지 실패 상태의 표현은 다양한 형태로 서로 관련될 수 있다. 이는 예를 들어, 일반화-특수화(generalization-specialization) 계층 및 트리의 형태로 된순서(ordering), 또는 연결 리스트를 포함한다.
본 발명의 바람직한 실시예는 이하에서 예를 들어 상세히 설명한다.
먼저 도 1을 참조하면, 본 발명의 실시예에 따라 메시지 전송을 이용하는 시스템을 도시하는 블록도가 있다. 이 시스템은 메시지 송신자(102), 예를 들어, 메시지를 보내는 메시지 미들웨어의 클라이언트를 포함한다. 메시지 송신자(102)는 3개의 모듈을 사용한다. 실패 정의 모듈(104)은 메시지 전달 실패 상태를 정의하는데 사용된다. 실패 평가 모듈(108)은 그 실패 상태와 관하여 메시지 전달 상태에 대하여 질의하는데
실패 정의 모듈(104)은 실패 상태의 표현을 생성하고 관리한다. 이러한 표현은 전술한 것과 같은 값들을 가지는 지속성 오브젝트이다.
메시지 전달 모듈(106)은 관련된 실패 상태와 함께 메시지를 전송하고, 메시지의 목적지로의 전달 및 최종 수신자로의 전달을 감시한다. 이 모듈은 MQSeries 또는 JMS의 구현과 같은 기존의 메시지 미들웨어(110)을 사용한다.
실패 평가 모듈(108)은 메시지 전달 모듈(106)이 감시하는 대로 메시지와 관련된 실패 상태에 따라, 실제 메시지 전달에 기초하여 메시지 전달이 성공적인지 아니면 실패했는지를 평가한다. 평가 상태에 대하여 메시지가 전송된 이후 임의의 시간에 질의할 수 있고, 실패 평가 모듈(108)은 메시지 송신자 또는 송신자가 지정하는 오브젝트에게 평가 결과를 알린다. 애플리케이션 프로그래밍 인터페이스(API)의 일부로서 인터페이스가 이러한 목적을 위한 시스템에 의해 정의된다. 이 인터페이스는 메시지 송신자(또는 지정된 오브젝트)에 의해 애플리케이션의 일부로서 구현되고 제공된다.
여기서 "인터페이스"라는 용어는 소프트웨어 엔지니어링에서 사용되는 기술 용어인데, 인터페이스는 어떤 서비스 제공자(예를 들어, 오브젝트)가 제공하는 연산(기능)들의 집합을 그룹화한다. 따라서, 인터페이스는 연산 정의를 포함하고, 소프트웨어 구성 요소에 의해 구현된다. 소프트웨어 구성 요소는 애플리케이션 구성 요소이거나 아니면, 도 1에 도시된 바와 같이, 메시지 전달 시스템의 구성요소이다.
종래의 메시지 미들웨어(110)는 메시지를 메시지 큐 또는 JMS Topic 오브젝트와 같은 목적지(112)로 전달하는데 사용된다. 메시지의 최종 메시지 수신자(114)로의 전달을 감시하기 위하여, 최종 수신자는 목적지(112)로부터 메시지를 판독하기 전에 메시지 전달 모듈(106)에 등록하고, 감시 목적을 위하여 메시지 전달 모듈(106)에 의해 사용될 수 있는 인터페이스를 제공할 수 있다. 이 인터페이스는 API의 일부로서 시스템에 의해 정의되고, 시스템과의 통신 목적을 위해 애플리케이션(이 경우에, 최종 수신자)에 의해 구현된다. 다른 대안으로서, 최종 수신자(114)가 목적지로부터 메시지를 판독하기 위한 오브젝트와 특정 인터페이스를 사용할 수 있으므로, 최종 수신자가 목적지로부터 메시지를 판독할 때마다 이 오브젝트가 메시지 전달 모듈(106)에게 자동적으로 통보할 수 있다.
소프트웨어 시스템이 분산되어 있을 때, 실패 정의 모듈(104), 메시지 전달 모듈(106), 실패 평가 모듈(108), 메시지 미들웨어(110)가 하나 이상의 컴퓨터 시스템에 상주할 수 있는 반면, 메시지 송신자(102), 목적지(112), 및 최종 메시지수신자(114)가 그 자신의 독립된 컴퓨터 시스템에 상주할 수 있다. 각 컴퓨터 시스템은 적당한 통신 네트워크를 통하여 연결될 수 있다.
이제 도 2를 참조하면, 본 발명의 실시예에 따라 메시지 전송 프로세스를 도시하는 흐름도가 도시되어 있다. 구체적으로 도 2는 각 도면, 즉, 메시지 실패 정의와 메시지 전송(도 4, 도4는 도 3을 참조함), 메시지 전달 감시(도 5), 메시지 실패 평가(도 6), 메시지 실패 상태 변경(도 7)에서 상세히 나타나 있는 단계들과 관련되어 있다.
프로세스(200)는 (도 4에 도시된 바와 같이) 단계(202)에서 실패 상태와 함께 메시지를 전송함으로써 시작된다. 일단 메시지가 전송되면, 메시지의 전달이 단계(204)에서 감시되고(도 5), 병렬적으로 실패 상태가 단계(206)에서 평가된다(도 6). 선택적으로, 메시지의 실패 상태는 단계(208)에서 변경될 수 있다(도 7). 전달 감시 및 실패 평가는 메시지가 전송된 직후에 동시에 일어날 수 있다. 실패 상태는 실패 평가 프로세스의 결과에 영향을 미치면서, 메시지가 전송된 이후 어느 때라도 변경될 수 있다.
이제 도 3을 참조하면, 본 발명의 실시예에 따른 메시지 실패 정의를 도시하는 흐름도가 도시되어 있다. 프로세스(300)는 단계(302)에서 특별한 (애플리케이션 특유의) 메시지 실패 상태가 요구되는지 여부를 결정함으로써 시작된다. 특별한 실패 상태가 요구되지 않는다면, 단계(304)에서 다른 오브젝트 또는 지속성 스토어(store)로부터 표준의 미리 정해진 실패 모델의 표현이 생성되거나 얻어지고, 실패 정의 프로세스는 끝이 난다. 만일 특별한 실패 상태가 요구된다면,단계(306)에서 실패 정의 모듈을 사용하여 메시지 송신자에 의해 실패 상태가 정의된다. 일단 이 상태가 정의되면, 특별한 실패 모델의 표현이 단계(308)에서 생성되고, 프로세스는 끝난다. 실패 상태의 표현은 지속성 오브젝트이다.
이제 도 4를 참조하면, 본 발명의 실시예에 따라 실패 상태와 함께 메시지를 전송하는 프로세스를 도시하는 흐름도가 도시되어 있다.
프로세스(400)는 (도 3과 관련하여 전술한 것과 같이) 단계(402)에서 메시지 실패를 정의함으로써 시작되거나, 단계(404)에서 전송될 메시지를 생성함으로써 시작된다. 이 두 단계를 어떤 순서로 해도 상관없으나, 양쪽 모두 메시지와 실패 표현을 연관시키는 그 다음의 프로세스 단계(406)를 위해 완료될 필요가 있다. 실패 표현과 관련된 메시지는 그 후 단계(408)에서 메시지 전달 모듈을 사용하여 전송될 수 있다.
이제 도 5를 참조하면, 본 발명의 실시예에 따라 메시지 전달 감시을 도시하는 흐름도가 도시되어 있다.
프로세스(500)는 단계(502)에서 메시지 전달 모듈(또는 메시지 전달 모듈에 의해 지정된 엔티티)이 최종 메시지 수신자가 메시지를 수신하였다는 것을 알리는 통보를 수신하기를 기다리면서 시작된다. 이러한 수신 통보는 최종 수신자가 메시지 전달 모듈로 직접 통신하거나, 최종 수신자가 목적지로부터 판독하기 위하여 사용하는 오브젝트와 특별한 인터페이스를 사용하여 간접적으로 통신할 수 있다. 직접 통신의 경우에, 메시지를 판독하는 것과 수신 통보를 메시지 전달 모듈에 전송하는 것은 두 개의 별개의 구분된 행동이다. 간접 통신의 경우에, 수신 통보를전송하는 것은 수신자가 메시지를 판독할 때 시스템에 의해 묵시적으로 그리고 자동적으로 행해진다. 수신자는 이 경우 시스템에 의해 제공된 특정한 판독 동작을 사용한다.
하나의 수신 통보가 수신되면, 최종 수신자의 아이덴티티(identity)가 정해지고 단계(504)에서 메시지 전달 로그(log)에 기록된다. 메시지 전달 로그는 전송된 메시지에 대한 최종 메시지 수신자의 지속성 기록이다. 프로세스는 그 후 단계(506)에서 감시를 계속할 것인지 말 것인지 여부를 결정함으로써 계속된다. 이러한 결정은 외부 및 내부 타임 아웃을 고려한다. 내부 타임 아웃은 시스템 내에 특정된 메시지와 관련된 타임 아웃이다. 외부 타임 아웃은 시스템 외부에서(아마 애플리케이션에 의해) 관리되고 하나의 메시지와 관련이 없는 이벤트이다. 외부 타임 아웃은 프로세스가 종료되도록 하는 외부 이벤트이다. 만일 감시가 계속될 거라면, 수신 통보의 단계 즉, 단계(502)부터 프로세스가 반복된다. 만일 감시가 종료될 거라면, 프로세스는 종료된다.
이제 도 6을 참조하면, 본 발명의 실시예에 따라 메시지 실패 평가의 프로세스를 도시하는 흐름도가 도시되어 있다.
프로세스(600)는 단계(602)에서 전송된 메시지(m)에 대한 모든 평가되지 않은 실패 상태가 (도 3과 관련하여 전술한 바와 같은) 실패 표현과 (도 5와 관련하여 전술한 바와 같은) 메시지 전달 로그를 사용하여 평가되려고 하면서 시작된다. 일단 평가를 결정하는 기준이 이용가능하면, 상태가 참 또는 거짓인 것으로 평가된다; 예를 들어, 타임 아웃이 일어나거나, 최종 메시지 수신자에 의해 판독된 메시지의 수신 통보가 메시지 전달 로그로 들어간다. 다른 이벤트뿐만 아니라 이러한 이벤트는 상태의 평가를 트리거할 것이다.
하나의 상태가 평가되자 마자, 프로세스는 계속해서 단계(604)에서 특정한 실패 상태가 참인 것으로 평가되었는지 여부를 검사하는데, 실패 상태가 참인 것으로 평가된다는 의미는 메시지 전달이 실패했다는 의미이다. 만일 실패 상태가 참인 것으로 평가되면, 단계(606)에서 메시지 전달 실패의 결과 통보가 실패 평가 모듈에 의해 메시지 송신자 또는 결과 통보를 수신하기 위한 메시지 송신자에 의해 지정된 오브젝트로 전송된다.
메시지 전달 실패의 결과 통보가 전송된 다음에, 또는 상태가 거짓인 것으로 평가되면, 프로세스가 계속하여 단계(608)에서 평가를 계속할지 평가를 중지할지 여부를 결정한다. 이러한 결정은 전술한 바와 같이, 외부 및 내부 타임 아웃을 고려한다. 만일 평가가 계속될거라면, 프로세스는 메시지(m)에 대한 모든 평가되지 않은 실패 상태를 평가하는 단계, 즉, 단계(602)로부터 반복된다.
만일 실패 평가를 중지하는 결정을 내린다면, 프로세스는 단계(610)에서 모든 실패 상태가 평가되었는지 여부와 모든 상태가 실패로 평가되는지 여부를 결정한다. 만일 그렇다면, 단계(612)에서 메시지 전달 성공의 결과 통보가 메시지 송신자 또는 지정된 통보 오브젝트로 전송된다. 그 외의 경우 및 메시지 전달 성공 통보가 이미 전송되었다면, 프로세스는 종료한다.
실패 평가 모듈(108, 도 1)은 평가의 상태를 질의하기 위하여 즉, 어느 상태가 지금까지 평가되었는지 또는 최종 수신자로부터 얼마나 많은 수신 통보가 수신되었는지에 대하여 질의하기 위하여, 메시지 송신자가 언제든지 사용할 수 있는 인터페이스를 제공한다.
이제 도 7을 참조하면, 본 발명의 실시예에 따라 전송된 메시지에 대한 실패 상태를 변경하고/변경하거나 대체하는 프로세스를 나타내는 흐름도가 도시되어 있다.
프로세스(700)는 단계(702)에서 실패 상태 변경 즉, 각각의 대체가 요구되는지 아닌지 여부를 결정함으로써 시작된다. 이러한 결정은 메시지 송신자에 의해 내려질 수 있다. 상태를 변경하는 것이 요구되는 경우에, 도 3과 관련하여 전술한 프로세스에 따라 단계(704)에서 실패 상태가 정의되고, 그 결과로 변경된 실패 표현이나 새로운 실패 표현이 그 후 단계(706)에서 전송된 메시지와 관련된다. 프로세스는 계속해서 실패 상태 변경의 초기 결정 상태, 즉, 단계(702)로 되돌아간다. 만일 변경이 없다는 결정이 내려진다면, 프로세스는 종료된다.
전술한 상세한 설명은 본 발명을 실행하는 바람직한 방법에 관한 것이다. 당업자는 여기서 제시된 원리를 가지고 여러 가지 변형을 실현할 수 있을 것이다.
그 예로 실패 정의, 실패 평가, 및 메시지 전달의 3가지 모듈(도 1)이 단일 모듈로서 구현될 수 있거나, 심지어 더욱 세분화된 모듈(예를 들어, 별개의 메시지 전달 감시 모듈)로 나뉘어질 수 있다.
메시지 실패 상태에 더하여 또는 메시지 실패 상태 대신에 메시지 성공 상태가 특정될 수 있다. 메시지 성공 상태는 실패의 측면에서 정의될 수 있다. 즉, 대응하는 실패 상태에 매핑될 수 있으므로, 전술한 바와 같이, 본 발명을 구현하는바람직한 방법이 모든 면에서 성공 상태에 적용될 수 있다.
또다른 변형으로는, 메시지가 전송되기 전에 메시지 실패 정의와 메시지 생성을 변경가능한 순서로 한다거나, 최종 수신자가 메시지를 판독하는 것을 상이한 방법으로 감시한다거나, 메시지 송신자에게 메시지의 평가 결과에 대하여 상이한 방법으로 알려줄 수 있다.
이제 도 8을 참조하면, 여기서 상세히 설명되었고 도면에 도시된 메시지 전송 프로세스를 채용하는 시스템의 하나 이상의 다양한 기능적인 구성 요소들/모듈들을 구현하는데 적합한 컴퓨터 시스템의 일반화된 하드웨어 아키텍쳐 블록도가 도시되어 있다. 도 1과 관련하여 설명한 바와 같이, 메시지 전송 시스템의 개별 구성 요소는 하나의 이러한 컴퓨터 시스템상에 구현되거나, 하나 이상의 독립된 이러한 컴퓨터 시스템 상에 구현될 수 있다는 것을 이해해야 할 것이다.
도시된 바와 같이, 컴퓨터 시스템은 프로세서(800), 메모리(810), 및 I/O 장치(820)에 따라 구현될 수 있다. 여기서 사용된 "프로세서"란 용어는 예를 들어, CPU(중앙 처리 장치) 및/또는 다른 처리 회로를 포함하는 프로세싱 장치와 같은 임의의 프로세싱 장치를 포함하는 것을 의미한다. 여기서 사용된 "메모리"란 용어는 예를 들어, RAM, ROM, 고정 메모리 장치(예를 들어, 하드 드라이브), 탈착가능한 메모리 장치(예를 들어, 디스켓), 플래시 메모리 등과 같이, 프로세서 또는 CPU와 관련된 메모리를 포함하는 것을 의미한다. 또한, 여기서 사용된 "입력/출력 장치" 또는 "I/O 장치"는 예를 들어 데이터를 처리 장치에 집어넣기 위한 키보드와 같은 하나 이상의 입력 장치 및/또는 프로세싱 유닛과 관련된 결과를 제시하기 위한, 예를 들어, CRT 디스플레이 및/또는 프린터와 같은 하나 이상의 출력 장치를 포함하는 것을 의미한다. 또한, "프로세서"란 용어는 하나 이상의 프로세싱 장치를 가리키고, 프로세싱 장치와 관련된 다양한 구성 소자는 다른 프로세싱 장치들에 의해 공유될 수 있다는 것을 이해해야 한다.
따라서, 본 발명의 방법을 수행하기 위한 명령어 또는 코드를 포함하는 소프트웨어 구성 요소는 전술한 바와 같이, 하나 이상의 관련 메모리 장치(예를 들어, ROM, 고정 메모리, 또는 탈착가능한 메모리)에 저장될 수 있고, 이용할 준비가 되었을 때, 부분적으로 또는 전체적으로 (예를 들어, RAM으로) 로드되어 CPU에 의해 수행된다.
본 발명의 실시예가 도면을 참조하여 설명되었지만, 본 발명은 이러한 실시예에 한정되는 것이 아니고, 다양한 다른 변경 및 수정이 당업자에 의해 행해질 수 있다는 것을 이해해야 할 것이다.

Claims (35)

  1. 비동기 메시지 전송 시스템에서 사용하는 컴퓨터 기반 방법으로서,
    상기 시스템에서 전송될 적어도 하나의 메시지에 대한 적어도 하나의 메시지 전달 결과 상태를 정의하고, 상기 적어도 하나의 메시지 전달 결과 상태와 상기 시스템에서 전송될 메시지를 연관시키는 단계와,
    상기 시스템에서 상기 연관된 적어도 하나의 메시지 전달 결과 상태와 함께 상기 메시지를 전송하는 단계와,
    상기 전송된 메시지의 전달을 모니터링하고, 상기 메시지의 송신자가 상기 메시지의 전달 결과를 통보받을 수 있도록, 상기 연관된 적어도 하나의 메시지 전달 결과 상태에 대하여 상기 메시지의 전달 결과를 평가하는 단계를 포함하는 방법.
  2. 제1항에 있어서, 상기 전달 결과는 성공과 실패 중 하나인 방법.
  3. 제1항 또는 제2항에 있어서, 상기 적어도 하나의 메시지 전달 결과 상태는 특정한 메시지와 무관하게 정의되는 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 메시지 전달 결과 상태들은 지속성 오브젝트로서 표현되는 방법.
  5. 제4항에 있어서, 특정한 메시지 전달 결과 상태 표현은 관련된 오브젝트의 집합인 방법.
  6. 제1항 내지 제3항 중 어느 한 항에 있어서, 전송될 메시지는 하나 이상의 지속성 오브젝트의 형태로 메시지 전달 결과 상태들의 표현과 관련되는 방법.
  7. 제6항에 있어서, 메시지 전달 결과 상태들의 특정한 표현은 상이한 메시지들의 집합과 관련되는 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서, 하나 이상의 목적지와 하나 이상의 최종 메시지 수신자 중 적어도 하나에 따라 상기 전달 모니터링 단계가 수행되는 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서, 상기 전달 모니터링 단계는 지속성 메시지 전달 로그에 메시지 수신을 기록하는 단계를 포함하는 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서, 상기 전달 결과는 결과 표현 오브젝트들과 메시지 수신이 기록되는 메시지 전달 로그들을 사용하여 평가되는 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서, 전달 결과 평가의 상태는 상기 메시지 송신자에 의해 질의되는 방법.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서, 상기 전달 결과는 상기 메시지 송신자에게 전송되는 방법.
  13. 제1항 내지 제11항 중 어느 한 항에 있어서, 상기 전달 결과는 상기 메시지 송신자가 결과 통보들을 수신하도록 지정하는 오브젝트로 전송되는 방법.
  14. 제1항 내지 제13항 중 어느 한 항에 있어서, 상기 메시지 전달 모니터링과 전달 결과 평가 중 적어도 하나는 이와 관련된 타임 아웃을 가지는 방법.
  15. 제1항 내지 제14항 중 어느 한 항에 있어서, 메시지가 전송된 이후에 상기 메시지와 관련된 하나 이상의 메시지 전달 결과 상태들을 변경하는 단계를 더 포함하는 방법.
  16. 제1항 내지 제14항 중 어느 한 항에 있어서, 메시지가 전송된 이후에 상기 메시지와 관련된 하나 이상의 메시지 전달 결과 상태들을 대체하는 단계를 더 포함하는 방법.
  17. 비동기 메시지 전송 시스템에 사용하기 위한 장치로서,
    (ⅰ) 상기 시스템에서 전송될 적어도 하나의 메시지에 대하여 적어도 하나의 메시지 전달 결과 상태를 정의하고, 상기 메시지 전달 결과 상태를 상기 시스템에서 전송될 메시지와 연관시키고; (ⅱ) 상기 시스템에서 상기 연관된 메시지 전달 결과 상태와 함께 상기 메시기를 전송하며; (ⅲ) 상기 전송된 메시지의 전달을 모니터링하고 상기 메시지의 송신자가 상기 메시지의 전달 결과에 대하여 통보받을 수 있도록 상기 연관된 메시지 전달 결과 상태에 대하여 상기 메시지의 전달 결과를 평가하도록 동작하는 하나 이상의 프로세서를 포함하는 장치.
  18. 제17항에 있어서, 상기 메시지 전달 결과는 성공과 실패 중 하나인 장치.
  19. 제17항 또는 제18항에 있어서, 상기 적어도 하나의 메시지 전달 결과는 특정한 메시지와 무관하게 정의되는 장치.
  20. 제17항 내지 제19항 중 어느 한 항에 있어서, 메시지 전달 결과 상태들은 지속성 오브젝트로서 표현되는 장치.
  21. 제20항에 있어서, 특정한 메시지 전달 결과 상태 표현은 관련된 오브젝트들의 집합인 장치.
  22. 제17항 내지 제19항 중 어느 한 항에 있어서, 전송될 메시지는 하나 이상의 지속성 오브젝트의 형태로 메시지 전달 결과 상태들의 표현과 관련되는 장치.
  23. 제22항에 있어서, 메시지 전달 결과 상태들의 특정한 표현은 상이한 메시지들의 집합과 관련되는 장치.
  24. 제17항 내지 제23항 중 어느 한 항에 있어서, 하나 이상의 목적지와 하나 이상의 최종 메시지 수신자 중 적어도 하나에 따라 상기 메시지 전달 모니터링 동작이 수행되는 장치.
  25. 제17항 내지 제24항 중 어느 한 항에 있어서, 상기 메시지 전달 모니터링 동작은 지속성 메시지 전달 로그에 메시지 수신을 기록하는 것을 포함하는 장치.
  26. 제17항 내지 제25항 중 어느 한 항에 있어서, 상기 전달 결과는 결과 표현 오브젝트들과 메시지 수신이 기록되는 메시지 전달 로그들을 사용하여 평가되는 장치.
  27. 제17항 내지 제26항 중 어느 한 항에 있어서, 전달 결과 평가의 상태는 상기 메시지 송신자에 의해 질의되는 장치.
  28. 제17항 내지 제27항 중 어느 한 항에 있어서, 상기 전달 결과는 상기 메시지 송신자에게 전송되는 장치.
  29. 제17항 내지 제27항 중 어느 한 항에 있어서, 상기 전달 결과는 상기 메시지 송신자가 결과 통보들을 수신하도록 지정하는 오브젝트로 전송되는 장치.
  30. 제17항 내지 제29항 중 어느 한 항에 있어서, 상기 메시지 전달 결과 모니터링과 전달 결과 평가 중 적어도 하나는 이와 관련된 타임 아웃을 가지는 장치.
  31. 제17항 내지 제30항 중 어느 한 항에 있어서, 상기 하나 이상의 프로세서는 메시지가 전송된 이후에 상기 메시지와 관련된 하나 이상의 메시지 전달 결과 상태들을 변경하도록 더 동작하는 장치.
  32. 제17항 내지 제30항 중 어느 한 항에 있어서, 상기 하나 이상의 프로세서는 메시지가 전송된 이후에 상기 메시지와 관련된 하나 이상의 메시지 전달 결과 상태들을 대체하도록 더 동작하는 장치.
  33. 데이터 처리 시스템 상에서 수행될 때 상기 시스템이 제1항 내지 제16항 중 어느 한 항에 의한 방법을 수행하게끔 하는 명령어를 포함하는 컴퓨터 프로그램.
  34. 비동기 메시지 전송 시스템과 관련된 애플리케이션 프로그래밍 인터페이스에 있어서, 소프트웨어 코드가 실행될 때,
    메시지 단위로 메시지 전달 결과 상태들을 지정하는 단계와,
    메시지들과 메시지 결과 상태들을 연관시키는 단계와,
    상기 관련된 결과 상태들과 함께 메시지를 전송하는 단계와,
    그 결과 상태에 관하여 메시지 전달 상태에 대하여 질의하는 단계와,
    메시지에 대하여 특정된 상기 결과 상태들의 변경 및 대체 중 적어도 하나를 허가하는 단계와,
    평가 결과 통보들을 수신하는 오브젝트를 지정하는 단계를 구현하도록 허가하는 소프트웨어 코드를 포함하는 인터페이스.
  35. 비동기 메시지 전송 시스템에서 사용하기 위한 장치로서,
    (ⅰ) 메시지 결과 상태들을 지속성 오브젝트들로서 표현하고, (ⅱ) 메시지 전달을 감시하고, (ⅲ) 메시지 결과 상태들을 평가하고, (ⅳ) 그 결과 상태들에 대하여 메시지 전달 상태에 대한 질의에 응답하며, (ⅴ) 메시지 송신자 또는 상기 송신자가 지정하는 오브젝트에게 전송된 각 메시지에 대한 평가 결과에 대하여 통보하도록 작동하는 하나 이상의 프로세서를 포함하는 장치.
KR10-2003-7001891A 2000-08-15 2001-07-26 비동기 메시지 전송 시스템에서 사용하기 위한 방법 및 장치 KR100537869B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/638,762 2000-08-15
US09/638,762 US6832243B1 (en) 2000-08-15 2000-08-15 Methods and apparatus for defining, observing and evaluating message delivery outcome on a per-message basis
PCT/GB2001/003358 WO2002015008A2 (en) 2000-08-15 2001-07-26 Methods and apparatus for asynchronous messaging

Publications (2)

Publication Number Publication Date
KR20030020462A true KR20030020462A (ko) 2003-03-08
KR100537869B1 KR100537869B1 (ko) 2005-12-21

Family

ID=24561314

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-7001891A KR100537869B1 (ko) 2000-08-15 2001-07-26 비동기 메시지 전송 시스템에서 사용하기 위한 방법 및 장치

Country Status (8)

Country Link
US (1) US6832243B1 (ko)
EP (1) EP1405182B1 (ko)
JP (1) JP2004520640A (ko)
KR (1) KR100537869B1 (ko)
CN (1) CN1277194C (ko)
AU (1) AU2001272674A1 (ko)
DE (1) DE60125988T2 (ko)
WO (1) WO2002015008A2 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030037102A1 (en) * 2001-08-14 2003-02-20 Philippe Eckert Message broker
US7319858B2 (en) 2001-11-16 2008-01-15 Cingular Wireless Ii, Llc System and method for querying message information
US7793334B2 (en) 2001-11-16 2010-09-07 At&T Mobility Ii Llc System and method for password protecting a distribution list
US7657253B2 (en) * 2001-11-16 2010-02-02 At&T Mobility Ii Llc System and method for providing message notification
US7454195B2 (en) 2001-11-16 2008-11-18 At&T Mobility Ii, Llc System for the centralized storage of wireless customer information
US7317697B2 (en) 2001-11-16 2008-01-08 At&T Mobility Ii Llc System for handling file attachments
US8660537B2 (en) * 2001-11-16 2014-02-25 At&T Mobility Ii Llc System for the storage and retrieval of messages
US7401148B2 (en) 2001-11-16 2008-07-15 At&T Mobility Ii Llc System for customer access to messaging and configuration data
US7152180B2 (en) * 2002-12-06 2006-12-19 Ntt Docomo, Inc. Configurable reliable messaging system
US7277529B1 (en) 2003-02-27 2007-10-02 Cingular Wireless Ii, Llc System and method for voice mail service in an environment having multiple voice mail technology platforms
US7248857B1 (en) 2004-02-27 2007-07-24 Cingular Wireless Ii, Llc System and method for enhanced message notification
US7590701B2 (en) * 2003-07-11 2009-09-15 Salesforce.Com, Inc. Apparatus and method for generating alert messages in a message exchange network
US20070204275A1 (en) * 2005-08-29 2007-08-30 Rhysome, Inc. Method and system for reliable message delivery
US20100250684A1 (en) * 2009-03-30 2010-09-30 International Business Machines Corporation High availability method and apparatus for shared resources
US8701128B2 (en) 2011-02-14 2014-04-15 General Electric Company Method, system and computer program product for a client application programming interface (API) in a service oriented architecture
CN104145260B (zh) * 2012-03-26 2016-08-10 华为技术有限公司 一种分布式作业系统的业务处理方法、执行单元和系统
US20130298199A1 (en) * 2012-05-02 2013-11-07 Elwha Llc Control of Transmission to a Target Device with a Cloud-Based Architecture
US9148331B2 (en) 2012-05-02 2015-09-29 Elwha Llc Control of transmission to a target device with a cloud-based architecture
CN103019866B (zh) * 2012-10-24 2017-02-08 北京京东世纪贸易有限公司 基于消息队列的分布式方法和系统
CN103428273B (zh) * 2013-07-18 2016-12-28 北京百度网讯科技有限公司 在异步式交互中进行响应询问的方法与装置
CN104407917B (zh) * 2014-11-13 2018-10-16 中国建设银行股份有限公司 一种基于jms的交易处理方法及装置
US11863580B2 (en) 2019-05-31 2024-01-02 Varmour Networks, Inc. Modeling application dependencies to identify operational risk
US11711374B2 (en) 2019-05-31 2023-07-25 Varmour Networks, Inc. Systems and methods for understanding identity and organizational access to applications within an enterprise environment
US11876817B2 (en) 2020-12-23 2024-01-16 Varmour Networks, Inc. Modeling queue-based message-oriented middleware relationships in a security system
US11818152B2 (en) * 2020-12-23 2023-11-14 Varmour Networks, Inc. Modeling topic-based message-oriented middleware within a security system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0469199B1 (en) 1990-07-31 1998-05-27 Hewlett-Packard Company Object based system
US5379426A (en) 1991-01-25 1995-01-03 Sun Microsystems, Inc. Method and apparatus for object oriented interprocess message switching
IL111154A0 (en) 1993-10-21 1994-12-29 Martino Ii John A Systems and methods for electronic messaging
US5966663A (en) * 1997-01-14 1999-10-12 Ericsson Messaging Systems Inc. Data communications protocol for facilitating communications between a message entry device and a messaging center
GB9703996D0 (en) * 1997-02-26 1997-04-16 British Telecomm Message system
US6163802A (en) * 1997-04-04 2000-12-19 International Business Machines Corporation Message tracking system
JPH1115755A (ja) * 1997-06-20 1999-01-22 Matsushita Graphic Commun Syst Inc ファクシミリ型電子メール装置
US6529932B1 (en) * 1998-04-01 2003-03-04 Microsoft Corporation Method and system for distributed transaction processing with asynchronous message delivery
US6463462B1 (en) * 1999-02-02 2002-10-08 Dialogic Communications Corporation Automated system and method for delivery of messages and processing of message responses
US6584466B1 (en) * 1999-04-07 2003-06-24 Critical Path, Inc. Internet document management system and methods

Also Published As

Publication number Publication date
WO2002015008A3 (en) 2003-12-31
WO2002015008A2 (en) 2002-02-21
US6832243B1 (en) 2004-12-14
EP1405182A2 (en) 2004-04-07
JP2004520640A (ja) 2004-07-08
AU2001272674A1 (en) 2002-02-25
KR100537869B1 (ko) 2005-12-21
EP1405182B1 (en) 2007-01-10
CN1545655A (zh) 2004-11-10
DE60125988D1 (de) 2007-02-22
DE60125988T2 (de) 2007-10-18
CN1277194C (zh) 2006-09-27

Similar Documents

Publication Publication Date Title
KR100537869B1 (ko) 비동기 메시지 전송 시스템에서 사용하기 위한 방법 및 장치
US10528405B2 (en) Methods, apparatus and computer programs for managing persistence
US5835762A (en) Method and apparatus for processing electronic mail in parallel
US7689657B2 (en) Forwarding IM messages to E-mail
US6470398B1 (en) Method and apparatus for supporting a select () system call and interprocess communication in a fault-tolerant, scalable distributed computer environment
KR100324976B1 (ko) 비동기 클라이언트/서버 컴퓨팅 시스템에서 서버 그룹에 관한 작업부하 관리를 수행하는 데이터 처리 장치, 방법 및 컴퓨터 프로그램 제품
US7725541B2 (en) Forwarding to automatically prioritized IM accounts based upon priority and presence
US20020178227A1 (en) Routing instant messages using configurable, pluggable delivery managers
US7958215B2 (en) System management using real time collaboration
EP1462958A2 (en) Systems and methods for requesting and receiving database change notifications
US20010042122A1 (en) System and method for monitoring server performance using a server
US20080133337A1 (en) Method, apparatus and computer program for controlling retention of publications
US20040158610A1 (en) Client proxying for instant messaging
JPH0962523A (ja) 分散演算環境におけるイベント管理方法及びシステム
US8386559B2 (en) Method for exchanging requests between the computer application of a mobile terminal and an instantaneous messaging server
US20070143481A1 (en) Method and apparatus for communicating data between computer devices
US7870187B2 (en) Transport agnostic pull mode messaging service
JP3455482B2 (ja) イベント通知システム及びプログラムを記録したコンピュータ読み取り可能な記録媒体
US7010795B2 (en) Process for sending a notification in a data processing network with distributed applications
CN101305389A (zh) 独立消息存储和消息传输代理
US5913922A (en) Method of transmitting messages between software processes in a multitasking data processing system
US7035274B2 (en) Techniques for storing data on message queuing middleware servers without registration of the sending application
CN116319591A (zh) 消息队列集群的数据处理方法、电子设备及存储介质
US7971206B2 (en) Protocol for message delivery among independently evolving processes
US8090891B2 (en) Method of providing communication in distributed systems

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: 20121127

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20131128

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20141128

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20151127

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20161128

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20171128

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20181127

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20191126

Year of fee payment: 15