KR20020070274A - 메세지 대기 시스템 및 방법 - Google Patents

메세지 대기 시스템 및 방법 Download PDF

Info

Publication number
KR20020070274A
KR20020070274A KR1020027005633A KR20027005633A KR20020070274A KR 20020070274 A KR20020070274 A KR 20020070274A KR 1020027005633 A KR1020027005633 A KR 1020027005633A KR 20027005633 A KR20027005633 A KR 20027005633A KR 20020070274 A KR20020070274 A KR 20020070274A
Authority
KR
South Korea
Prior art keywords
message
electrical
status
queue
messages
Prior art date
Application number
KR1020027005633A
Other languages
English (en)
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 KR20020070274A publication Critical patent/KR20020070274A/ko

Links

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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Abstract

지능형 대기행렬을 사용하여 일련의 사무응용 프로그램들 간의 통신을 원활하게 할 수 있다. 한가지 실시태양에서, 전기 지능형 대기행렬은 다양한 데이타 저장 장치(data store product)를 통하여 일관된 서비스 양식을 제공하는 여러 사무응용 프로그램들과 상호작용할 수 있다. 전기 지능형 대기행렬은 메세지 저장 확장, 효율적인 저널화(journalling), 다른 지능형 대기행렬과의 호환(interoperability), 부하 조정(load balancing), 단회(once-only) 처리, 및 전기 송신자(sender) 및 전기 수신자(recipient) 양측으로부터 전기 각 메세지의 상태를 탐지하는 상세한 메세지 상태 정보를 제공한다.

Description

메세지 대기 시스템 및 방법{Systems and Methods of Message Queuing}
소프트웨어 산업의 지속적인 성장은 대중에게 이용가능한 광범위한 응용 프로그램을 가져왔고, 대중 역시 이에 쉽게 적응해왔다. 더구나, 기업내 신속함을 요하는 사무 업무에서 복합적인 응용 프로그램은 일반적인 일이다. 이들 응용 프로그램은 다양한 판매자에 의해 제공되기 때문에, 일상적인 사무 운영을 지원하는 조정(coordination)은 어디든지 사용될 수 있었던 자원에 의해 제공되는 수작업을 자주 필요로 하는 위압적인 작업이 된다. 따라서, 사무 업무에서 전기 응용 프로그램이 효율적이고도 안전한 방법으로 의사소통하고, 정보를 공유하는 것을 가능하게 하도록 하는 것이 중요하다.
기업들은 정보를 조화시키고, 공유하는 그들의 응용 프로그램을 통합하는 능력을 필요로 하는 한편, 그러한 통합을 수행하는 비용을 최소로 하고 싶어한다. 종래의 접근에 관한 하나의 일반적인 문제는 비즈니스가 비싸면서도 기존의 시스템에 통합되기 어려운 주문 메세지 대기행렬의 구입을 필요로 한다는 것이다. 비즈니스가 변화함에 따라, 주문의 대기행렬은 교체되어야 하거나 또는 많은 시간과 비용을 들여 갱신되어야만 한다.
종래의 접근에 관한 추가적인 문제는 시스템 운용자가 다량의 데이타 저장요소를 운용하는 성가신 작업에 직면한다는 것이다. 메세지가 보통의 통신이 수행되는 동안 뿐만 아니라, 시스템에 오류(failure)가 생긴 시간 동안의 모두를 탐지하는 것은 어렵다.
종래의 접근에 관한 추가적인 문제는 그들이 메세지의 이중처리(duplicate processing)를 허락한다는 것이다. 어떠한 경우에는 메세지가 단 한번만 수행되어야 하는 것이 필수적이다. 예를 들면, 금융상의 응용은 각 처리에 대해 사용자의 금액을 단 한 번만 기입해야 한다. 메세지의 이중처리는 부정확한 정보를 가져오고, 데이타를 적절한 상태로 복원하기 위해서는 방대한 양의 자원이 요구된다.
종래의 접근에 관한 또 다른 문제는 대기행렬이 시스템 내에서 병목을 초래하면서 자주 과부하된다는 것이다.
발명의 요약
본 발명의 하나의 실시태양은 제 1의 데이타 저장형의 첫번째 메세지 대기행렬과 제 2의 데이타 저장형의 두번째 메세지 대기행렬을 운용하기 위해 형성된 메세지 대기행렬 운용 시스템으로, 첫번째 메세지 대기행렬과 두번째 메세지 대기행렬은 복수의 컴퓨터 매체에서 일관된 양식을 나타낸다. 메세지 대기행렬 운용 시스템은 저널화된 상태(journalled state)를 포함하는 첫번째 메세지 대기행렬과 두번째 메세지 대기행렬에 보유된 메세지의 메세지 상태를 탐지하고 운용하기 위해 형성된 저널화된 모듈(module)을 포함하고, 이에 의하여 저널화된 메세지는 첫번째 메세지 대기행렬과 두번째 메세지 대기행렬에 유지되게 된다. 메세지 대기행렬 운용 시스템은 또한 첫번째 메세지 대기행렬과 두번째 메세지 대기행렬에 보관되어 이전에 처리되었던 메세지의 재처리(re-processing)를 막기 위하여, 복수의 메세지 상태를 탐지하기 위해 형성된 메세지 단회(once-only) 처리 모듈을 포함한다. 게다가, 메세지 대기행렬 운용 시스템은 저널화된 모듈이 저널화된 상태를 특정화할 때, 첫번째 메세지 대기행렬과 두번째 메세지 대기행렬에 메세지를 유지시키기 위해 형성된 확장된 저장 모듈 및 오류시, 첫번째 메세지 대기행렬과 두번째 메세지 대기행렬에서 데이타 복구(recovery)를 수행하기 위하여, 첫번째 메세지 대기행렬과 두번째 메세지 대기행렬 사이의 상호작용을 조정하기 위해 형성된 호환 모듈(interoperating module)을 추가로 포함한다. 또한, 메세지 대기행렬 운용 모듈은 첫번째 메세지 대기행렬과 두번째 메세지 대기행렬에 보유되어 이전에 처리되었던 메세지의 재처리를 막기 위하여, 복수의 메세지 상태를 탐지하기 위해 형성된 단회 메세지 수행 모듈을 포함한다. 게다가, 메세지 대기행렬 운용 단위는 분산된 작업흐름(workflow)을 가능하게 하는 복수의 대기행렬 사이의 상호작용을 조정하기 위해 형성된 호환 모듈 및 오류시, 복수의 대기행렬에서 데이타 복구를 수행하기 위하여 형성된 복구 모듈을 포함한다. 메세지 대기행렬 운용 모듈은 복수의 가입자(subscriber)와 발행자(publisher)를 조절함으로써 복수의 대기행렬의 단일 통제를 제공하는 중앙 운용 모듈 및 복수의 가입자의 하위단위를 가입자 풀(subscriber pool)의 최소한 첫번째 메세지 대기행렬로 지정하고, 그에 의하여 첫번째 메세지 대기행렬의 메세지가 가입자 풀에서 최초의 이용가능한 가입자에 의해 수행되어지도록 하기 위해 형성된 부하 조정(load balancing) 모듈을 포함한다.
본 발명의 다른 실시태양은 설정된 사무응용 프로그램 사이의 통신을 용이하게 하기위해 사용되는 지능형 대기행렬(intelligent queue)이다. 지능형 대기행렬은 다양한 데이타 저장 장치를 사용하는 여러가지 사무응용 프로그램과 상호 작용할 수도 있다. 지능형 대기행렬은 확장된 메세지 저장, 단회 처리, 및/또는 송신자(sender)와 수신자(recipient)의 관점으로부터 메세지의 상태를 탐지하는 상세한 메세지 상태 정보를 제공한다.
하나의 실시태양에서, 본 발명은 신뢰할 수 있는 통신을 제공하고, 단발성(non-repetitive) 전송을 수행하며, 매체-비의존적인 환경에서 실행되는 컴퓨터 네트워크를 위한 메세지 대기행렬 시스템이다.
메세지 대기행렬 시스템은 다양한 환경 중 하나에서 운영되고, 메세지 발행자로부터 받은 메세지를 저장하기 위해 형성된 메세지 대기행렬을 포함한다. 게다가, 메세지는 복수의 메세지 가입자에 의한 검색을 감시하고, 이때, 메세지는 복수의 메세지 가입자 중 적어도 한 명이 메세지에 접근하여 메세지로의 추가적인 접근이 허용된 후에, 메세지 대기행렬에 저장되어진다. 메세지 상태 모듈은 메세지의 메세지 상태를 탐지하기 위해 형성된 것으로, 메세지 상태 정보는 메세지가 복수의 가입자 중 적어도 한 명에 의해 만들어지고 검색되는지의 여부를 나타내어 준다.기록(recording) 모듈은 적어도 메세지가 메세지 대기행렬로부터 삭제될 때까지 해당 메세지에 관한 메세지 상태 정보를 선택적으로 보유하도록 구조화되어 있다. 인터페이스(interface) 모듈은 메세지에 있는 다양한 종류의 데이타 객체(data object)를 송수신하거나, 메세지 발행자 또는 메세지 가입자로서 작용하는 다양한 종류의 데이타 메세지 시스템과 통신하도록 구조화되어 있다.
본 발명의 다른 실시태양은 복수의 메세지 발행자와 복수의 메세지 가입자 간에 메세지를 대기시키는 방법이다. 전기 방법은 메세지 발행자로부터의 적어도 한 명의 메세지 가입자를 목적으로 한 데이타 객체를 수신하는 단계; 전기 데이타 객체를 처리하여 해당 메세지를 생성하는 단계(이때, 전기 해당 메세지는 전기 데이타 객체 및 메세지 정보를 포함한다); 전기 메세지를 어떤 메세지 대기행렬에 저장하는 단계; 전기 메세지의 상태를 전기 메세지 발행자 측에서 탐지하는 단계; 전기 메세지의 상태를 적어도 한 명의 메세지 가입자 측에서 탐지하는 단계; 및, 전기 메세지가 적어도 한 명의 메세지 가입자에 의해 검색된 후, 전기 메세지 대기행렬에 남아있도록 전기 메세지를 선택적으로 보유하는 단계를 포함한다.
본 발명의 추가적인 실시태양은 복수의 해당 메세지 상태를 포함하는 복수의 메세지를 메세지 대기행렬에 저널화하는 방법이다. 전기 방법은 어떤 메세지를 수신하는 단계를 포함하며, 이때, 전기 메세지는 발행자 메세지 상태와 가입자 메세지 상태를 포함한다. 전기 방법은 또한 메세지를 메세지 대기행렬에 배치하고, 메세지의 발행자 메세지 상태를 저널화된 상태로 변경시키는 단계를 포함한다. 게다가, 전기 방법은 메세지 대기행렬에 메세지를 보유하는 단계를 포함한다.
본 발명의 다른 실시태양은 다수의 메세지를 어떤 메세지 대기행렬에 구독자 풀링(pooling)하는 방법이며, 이때, 전기 다수의 메세지는 해당 발행자 상태를 포함한다. 전기 방법은 메세지를 메세지 대기행렬에 배치하고, 전기 메세지가 사용가능함을 복수의 가입자 중 한 명에게 알리고, 발행자 메세지 상태를 단말(terminal)의 상태로 변경함으로써 다른 복수의 가입자가 전기 메세지를 검색하는 것을 방지하는 것을 포함한다.
본 발명의 추가적인 실시태양은 복수의 메세지 발행자와 복수의 메세지 가입자 사이의 메세지를 대기시키는 시스템으로, 전기 시스템은 복수의 메세지 발행자와 복수의 메세지 가입자 간 의사소통 및 복수의 메세지 가입자 중의 적어도 한 명을 목적으로 한 메세지 발행자로부터의 데이타 객체를 수신하도록 구조화된 메세지 대기행렬 모듈을 포함한다. 데이타 객체 처리 모듈은 해당 메세지를 생성하기 위하여, 데이타 객체를 처리하도록 구조화된 것으로, 해당 메세지는 데이타 객체와 메세지 정보를 포함한다. 발행자 탐지 모듈(publisher tracking module)은 메세지 발행자의 관점에서 메세지의 상태를 탐지하기 위해 형성된다. 복수의 가입자 탐지 모듈은 복수의 지정된 메세지 가입자 중 적어도 한 명의 관점에서 메세지의 상태를 탐지하도록 구조화되어 있다. 메세지 탐지 모듈은 메세지가 복수의 지정된 메세지 가입자 중 적어도 한 명에 의해 검색된 후, 메세지를 메세지 대기행렬에 선택적으로 보유하도록 구조화되어 있다.
본 발명의 다른 실시태양은 발행자로부터 수신된 가입자 검색용 메세지를 대기시키는 방법으로, 대기행렬 및 대기행렬 인터페이스 모듈을 이용하여 메세지들을저장하는 단계(이때, 전기 대기행렬 인터페이스 모듈은 복수의 데이터베이스 프로토콜(protocol)과 연계하도록(interface) 구조화될 수 있다), 메세지가 목적으로 한 모든 가입자에 의해 검색되는 시각 이후에까지로 메세지 저장을 연장하는 단계, 및 단회 전송이 이루어지도록 메세지 상태를 탐지하는 단계를 포함한다.
본 발명의 다른 실시태양은 제 1 형의 데이타 저장을 이용하여 구현된 첫번째 메세지 대기행렬 및 제 2 형의 데이타 저장을 이용하여 구현된 두번째 메세지 대기행렬 간의 메세지 통신을 복원하는 방법이다. 전기 방법은 첫번째 메세지 대기행렬을 처리하여 노출되지 않았던(unrevealed) 메세지를 배치하는 단계를 포함한다. 노출되지 않았던 메세지에 대하여, 경로 정보(path information)를 추출하여 전기 메세지의 모체 메세지(message parent)를 찾고, 두번째 메세지 대기행렬에서의 모체 메세지의 상태를 조사한다. 모체 메세지들 중 적어도 하나가 "완료(done)"로 표시되어 있으면, 모체 메세지들은 "완료"로 및 전기 메세지들은 "노출(revealed)"로 표시된다. 추가로, 전기 방법은 전기 모체 메세지가 "완료"로 표시되어 있지 않을 때, 모든 모체 메세지들을 "클린(clean)"으로 및 전기 메세지를 "삭제(deleted)"로 표시하는 단계, 어떤 모체 메세지도 없을 경우, 전기 메세지를 "노출"로 표시하는 단계를 포함한다. 또한, "클린"으로 표시된 메세지는 복구되고, 전기 두번째 메세지 대기행렬은 처리되어 "불러오기" 및 "완료"로 표시된 메세지를 찾는다. 나아가, 두번째 메세지 대기행렬에서 "불러오기" 및 "완료"로 표시된 메세지는 "클린"으로 표시된다.
본 발명의 다른 실시태양은 발행자로부터 수신된 가입자 검색용 메세지를 대기시키는 시스템으로, 대기행렬 및 대기행렬 인터페이스 모듈을 이용하여 메세지들을 저장하는 매체(mean)(이때, 전기 대기행렬 인터페이스 모듈은 복수의 데이터베이스 프로토콜과 연계하도록 구조화될 수 있다), 전기 메세지가 목적으로 한 모든 가입자에 의해 검색된 시각 이후에까지 메세지 저장을 연장하는 매체, 및 단회 전송이 이루어지도록 메세지 상태를 탐지하는 매체들을 포함한다.
이하의 설명은 본 발명의 구체적인 양상, 장점 및 신규한 특징으로서, 본 발명을 개괄하기 위해 주어진 것이며, 본 발명의 구체적인 실시태양에 따른 필연적인 모든 장점이 수행될 수 없음은 자명할 것이다. 따라서, 당업계의 통상의 지식을 가진 자에게 있어서, 이러한 구체적 기술은 단지 바람직한 실시태양일 뿐이며, 이에 의해 본 발명의 범위가 제한되는 것이 아닌 점은 명백한 것이다.
본 발명은 네트워크 메시징(messaging)의 분야, 좀 더 구체적으로는 대기행렬(queue)에 관한 것이다.
도 1A는 지능형 대기행렬을 포함하는 응용 통합시스템의 한 실시태양의 고수준 블럭도를 나타낸다.
도 1B는 지능형 대기행렬을 포함하는 응용 통합시스템의 다른 실시태양의 고수준 블럭도를 나타낸다.
도 2A는 지능형 대기행렬을 포함하는 응용 통합시스템의 또 다른 실시태양의 고수준 블럭도를 나타낸다.
도 2B는 지능형 대기행렬을 포함하는 응용 통합시스템의 또 다른 실시태양의 고수준 블럭도를 나타낸다.
도 3은 지능형 대기행렬의 한 실시태양의 고수준 도표를 나타낸다.
도 4는 메세지 상태에 관한 상태도의 한 실시태양의 순서도를 나타낸다.
도 5는 메세지 정보기록의 한 실시태양을 나타낸다.
도 6은 수신메세지 프로세스(receive message process)의 한 실시태양의 순서도를 나타낸다.
도 7은 갱신메세지 상태 프로세스(update message state process)의 한 실시태양의 순서도를 나타낸다.
도면을 참고로 하여 지금부터 본 발명의 한 실시태양과 응용을 나타내는 시스템과 방법을 설명할 것이다. 또한, 이 시스템의 변형과 다른 실시태양을 나타내는 방법을 설명할 것이다. 한 개시된 실시태양에서, 이 시스템과 방법은 사무응용 프로그램 세트간에 통신이 이루어지도록 사용된다.
설명을 위하여, 사무응용 프로그램 문맥으로 한 실시태양을 설명할 것이다. 본 발명자들은 설명되는 프로그램 형태가 본 발명을 한정하지 아니하며, 객체의 형태는 어떤 프로그램, 예를 들면 소프트웨어 모듈, 사무응용 프로그램, 데이타베이스, 회계 프로그램, 음악 프로그램, 전화 시스템, 기타등등을 포함할 수 있다고 예측한다. 그러나, 도면과 설명은 사무응용 프로그램인 본 발명의 실시태양에 관한 것이다. 또한, 다른 실시태양에서, 메세지를 대기시키는 시스템과 방법은 단일 모듈 및/또는 다양한 다른 모듈 및 유사한 모듈과 함께 구체화될 수 있다고 인식된다. 아울러, 여기에서 설명되는 지정된 구체화는 본 발명을 설명하기 위한 것이고, 한정하려는 것이 아니다. 본 발명의 범위는 동봉된 청구범위에 의해 규정된다.
이제부터 상기에서 요약된 도면을 참조로 이러한 특징 및 기타 특징을 설명할 것이다. 도면 및 도면에 대한 설명은 본 발명의 실시태양을 설명하기 위하여 제공되는 것이고, 본 발명의 범위를 한정하려는 것이 아니다. 도면 전체에 걸쳐, 참조 번호는 참조된 구성요소간에 상응물을 나타내도록 반복하여 사용될 수 있다. 또한, 각 참조 번호의 첫 번째 숫자는 각 구성요소가 최초로 나타나는 도면을 가리킨다.
응용 통합시스템에 있어서, 신규한 지능형 대기행렬은 사무응용 프로그램 세트간에 통신을 용이하게 하기 위하여 사용될 수 있다. 한 실시태양에 있어서, 지능형 대기행렬은 다양한 데이타 저장장치를 이용하는 다양한 사무응용 프로그램과 상호작용할 수 있다. 지능형 대기행렬은 메세지 저장 확장, 단회 처리, 및/또는 송신자 및 수신자 측으로부터 각 메세지의 상태(status)를 탐지하는 상세한 메세지 상태 정보를 제공한다.
한 실시태양의 잇점은 지능형 대기행렬은 다양한 데이타 저장소자, 예를 들면 B+ 트리, Sybase CT Lib 데이타베이스, Oracle OCI 데이타베이스, Oracle AQ 데이타베이스, IBM-MQ Series 데이타베이스, Microsoft MSMQ 데이타베이스, 평면 파일 디렉토리(flat file directory), 기타 등등을 이용할 수 있다는 점에서 매체-비의존적이다. 따라서, 시스템 관리자가 다른 데이타 저장장치로 구체화된 다섯 개의 다른 대기행렬을 처리할 수 있는 반면에, 다섯 개의 지능형 대기행렬은 기초가 되는 데이타 저장과 무관하게 동일하게 작동하고 상호작용할 수 있다. 또한, 이러한 유연성때문에 종래의 상업적 장치를 사용하는 사무가 전체 시스템을 파괴하고 재조직함이 없이도 지능형 대기행렬을 뒷받침하고 데이타 저장을 변화시킬 수 있도록 한다.
한 실시태양의 또 다른 잇점은 지능형 대기행렬이 대규모 환경에서 쉽게 운영된다는 것이다. 대기업은 수백 가지의 지능형 대기행렬을 사용할 수 있다. 따라서, 시스템 전체에 걸쳐 단일한 형태의 대기행렬을 사용할 수 있다면, 시스템 관리자는 기초가 되는 데이타 저장과 무관하게 단지 한 형태의 대기행렬을 처리하고 메세지 탐지를 수행할 수 있다.
한 실시태양의 또 다른 잇점은 지능형 대기행렬이 시스템 운영부가 송신자와 수신자 측으로부터 메세지의 상태를 인지하도록 메세지 상태를 탐지하는 방법을 제공한다는 것이다. 또한, 메세지 상태를 인지하면 메세지가 시스템 오류뒤에 복구되고 재송신 되어진다. 아울러, 메세지의 상태는 메세지를 다른 위치로 이동하거나 삭제하도록 시스템 리소스(resource)를 결합하기 보다는 액티비티(activity)를 표시하도록 변화되어질 수 있다. 또한, 다른 데이타 저장장치를 이용하여 구체화된 대기행렬간의 호환을 제공한다. 데이타 저장 형태에 무관하게 메세지는 시스템 오류시에 복구될 수 있다.
한 실시태양의 또 다른 잇점은 지능형 대기행렬이 확장 메세지 저장장치를 제공한다는 점이다. 메세지가 지능형 대기행렬로부터 제거되어야 할때, 시스템 관리자는 모든 메세지에 대한 가입자가 메세지를 처리한 이후에조차 메세지가 지능형 대기행렬에 남아있도록 지정할 수 있다. 따라서, 시스템 관리자는 필요시에 다른 관리 일을 탐지, 분배, 보관, 편집 및 수행할 수 있는 시간을 갖게 된다. 또한, 시스템 오류가 발생할 때, 시스템 관리자는 메세지를 대기행렬로 관찰할 수 있으며, 적당한 메세지 복구를 수행할 수 있다. 지능형 대기행렬은 이미 처리된 메세지를 노출시키지 않고도, 처리되지 않은 메세지를 적합한 응용으로 유용하게 만들 수 있다.
한 실시태양의 또 다른 잇점은 지능형 대기행렬이 가입자 풀링(subscriber pooling)의 이용을 통한 부하 조정을 제공할 수 있다는 것이다. 메세지는 여러 수신자에 유용하도록 제작될 수 있어서 첫번째 유용한 수신자가 메세지를 최대화된 리소스로 처리하고 메세지 대기 효율을 향상시킨다. 또한, 지능형 대기행렬은 수신자가 가입자 풀의 회원으로 표시되도록 할 수 있다. 아울러, 부하 조정 및 발표/가입 작동의 결합은 효율이 향상되도록 사용될 수 있다. 예를 들면, 가입자 풀의 회원은 가입자 풀이 아닌 수신자와 병행으로 지능형 대기행렬에 메세지를 신청할 수 있다.
한 실시태양의 또 다른 잇점은 원격 이용자가 다양한 지능형 대기행렬의 유지관리 및 감시(monitoring)를 수행하도록 지능형 대기행렬을 중앙집중 운영할 수 있다는 것이다.
지능형 대기행렬(IQ)은 다양한 응용체와 소자간 통신을 촉진하도록 지속적인 데이타 저장을 제공한다. 다음의 실시태양은 발표/가입 방식으로 작동하는 IQ를나타낸다. 도 1A는 자동화된 크레디트 승인 시스템(120)에 의한 크레디트 승인을 위한 트랜잭션(transaction)을 송신하는 판매 시스템(110)의 한 지점을 포함하는 트랜잭션 시스템을 나타낸다. 먼저, 판매(POS) 모듈(130)의 한 지점이 판매 시스템의 지점(110)으로부터 트랜잭션을 수신하고 트랜잭션을 표준 메세지 포맷으로 전환한다. 이때, 판매 모듈(130)의 지점은 Sybase 데이타베이스를 이용하여 구체화된 Sybase IQ(140)로 메세지를 발송한다. 다음, 고객 데이타베이스 모듈(150)이 Sybase IQ(140)로부터 메세지를 검색하고 관련된 고객정보(예를 들면, 신용계좌, 은행거래 관습 등)에 관한 고객 데이타베이스(160)를 질문한다. 다시, 고객 데이타베이스 모듈(150)이 관련된 고객 정보를 메세지에 부가하고 메세지를 Microsoft의 MSMQ 대기행렬을 이용하여 구체화된 MSMQ IQ(170)로 발송한다. 결국, 크레디트 승인 모듈(180)은 MSMQ IQ(170)로부터 메세지를 검색하고 메세지를 크레디트 승인 시스템(120)에 의해 이해되는 포맷으로 전환한다.
도 1B는 중앙 운용 모듈(190)뿐만 아니라 자동화된 크레디트 승인 시스템(120)에 크레디트 승인을 위한 트랜잭션을 송출하는 판매 시스템(110)의 한 지점을 포함하는 트랜잭션 시스템의 다른 실시태양을 나타낸다. 중앙 운용 모듈(190)을 통해서 원격 위치로부터 지능형 대기행렬의 운영과 감시가 가능하다. 예를 들면, 중앙 운용 모듈(190)을 경유하여, 가입자와 발행자의 할당 및/또는 에러 검사가 시행될 수 있다. 한 실시태양에 있어서, 중앙 운용 모듈(190)은 하나 또는 모든 지능형 대기행렬로부터 멀리 떨어진 시스템에 구체화될 수 있다. 중앙 운용 모듈의 한 실시태양의 상세한 설명은 내부 참조번호 SOFTECP.014A로 여기에서참고로 삽입된 "이형질적 분포화된 대기업 응용통합 객체의 중앙 운용을 제공하기 위한 시스템과 방법(SYSTEMS AND METHODS FOR PROVIDING CENTRALIZED MANAGEMENT OF HETEROGENOUS DISTRIBUTED ENTERPRISE APPLICATION INTEGRATION OBJECTS)" 제목으로 병행된 파일의 출원으로 개시되었다. 도 2A는 고객 데이타베이스 모듈(150)과 MSMQ IQs(170)가 부하 조정이 이루어지도록 복제된 제 2의 실시태양 트랜잭션 시스템을 나타낸다. 제 2의 트랜잭션 시스템에 있어서, Sybase IQ(140)는 어떤 고객 데이타베이스 모듈(150)에 의해서도 검색될 수 있는 메세지를 포함할 수 있다. 이 부하 조정은 가입자 풀을 이용하여 구체화되므로 제 1의 유용한 고객 데이타베이스 모듈(150)이 메세지를 처리할 수 있다. 이 시스템은 병목현상의 출현을 감소시키고, 메세지가 Sybase IQ(140)로부터 검색되는 전체 시간을 향상시킨다.
도 2B는 일부 고객 데이타베이스 모듈(150)과 MSMQ IQ(170)가 발표/가입 모드인 반면에 다른 고객 데이타베이스 모듈(150)과 MSMQ IQ(170)는 부하 조정과 가입자 풀이 가능하도록 복제된 제 3의 트랜잭션 시스템의 실시태양이다. 제 2의 트랜잭션 시스템에 있어서, Sybase IQ(140)는 어떤 고객 데이타베이스 모듈(150)에 의해서도 검색될 수 있는 메세지를 포함할 수 있다. 이러한 부하 조정은 가입자 풀을 이용하여 구체화되므로 제 1의 유용한 고객 데이타베이스 모듈(150)은 메세지를 처리할 수 있다. 이 시스템은 병목현상의 출현을 감소시키고, 메세지가 Sybase IQ(140)로부터 검색되는 전체 시간을 향상시킨다.
도 2A와 도 2B에서 설명된 실시태양은 중앙 운용 모듈(190)을 포함하지 않는 반면에, 하나 또는 그 이상의 지능형 대기행렬이 부하 조정 모드라면 다른 실시태양은 또한 중앙 운용 모듈(190)을 포함할 수 있다. 도 3은 지능형 대기행렬(310)의 한 실시태양을 나타낸다. 지능형 대기행렬(310)은 지능형 대기행렬 프로세스(320), 색인 데이타베이스(330)와 데이타 저장소자(340)의 세트를 포함한다.
지능형 대기행렬(310)은 대기행렬에 정보를 부가 및 대기행렬로부터 정보를 추출하는데 이용될 수 있는 많은 프로세스를 포함할 수 있다. 한 실시태양에서, 지능형 대기행렬 프로세스는 대기행렬에 메세지에 관한 정보를 제공할 수 있는 몇 다른 프로세스(326)뿐만 아니라 수신메세지 프로세스(322), 갱신메세지 상태 프로세스(324)를 포함한다. 지능형 대기행렬 프로세스(320)는 하기에서 보다 상세히 설명된다. 색인 데이타베이스(330)는 대기행렬로 발송되는 각 메세지에 관한 메세지 상태 정보를 저장한다. 한 실시태양에서, 색인 데이타베이스(330)는 평면 파일 구조를 이용하여 구체화되고 메세지 상태가 변화할 때마다 갱신된다. 색인 데이타베이스(330)는 정보가 주기를 기초로, 예를 들면 시간 간격, 일 간격, 주 간격, 2주 간격, 기타 등등으로 저장되는 보존 데이타베이스(표시하지 않음)와 통신할 수 있다. 색인 데이타베이스(330)는 오류 전ㆍ후에 각 메세지의 상태를 결정하기 위하여, 그리고 시스템이 복원되어야 하는 방식에 관한 정보를 제공하기 위하여 시스템 오류 이후에 사용될 수 있다.
데이타 저장 소자(340)는 가입자에 의한 검색을 위하여 메세지를 저장하는 소자이다. 데이타 저장 소자(340)는 모든 가입자가 메세지를 불러오고(fetch) 처리할 수 있을 때까지 메세지를 발송하고 저장할 수 있는 임시 기억장치로써 작용한다.
색인 데이타베이스(330)와 데이타 저장 소자(340)는 두 분리된 데이타 구조로써 나타내어지는 반면에, 다른 실시태양에서 색인 데이타베이스(330)와 데이타 저장 소자(340)는 동일한 데이타 구조를 이용하여 결합 및/또는 구체화될 수 있다. 예를 들면, 색인 데이타베이스(330)와 데이타 저장 소자(340)는 동일한 관계 데이타베이스내에서 테이블 세트로 구체화될 수 있다. 또한, 다양한 데이타 구조는 색인 데이타베이스(330) 및/또는 데이타 저장 소자(340), 예를 들면 연계 리스트, 평면 파일 , 2진 트리, B+ 트리, 배열, 대기행렬, 데이타베이스, 기타 등등을 구체화하는데 사용될 수 있다고 인식된다. 아울러, 데이타베이스의 다른 형태, 예를 들면 관계 데이타베이스, 객체 지향 데이타베이스, 계층적 데이타베이스, 기타 등등이 사용될 수 있다. 또한, 몇 상업적 데이타 저장장치, 예를 들면 다른 개인소유의 데이타베이스뿐만 아니라 Sybase CT Lib 데이타베이스, Oracle OCI 데이타베이스, Oracle AQ 데이타베이스, IBM-MQ Series 데이타베이스, Microsoft MSMQ 데이타베이스, Microsoft Access, Oracle, Paradox, Fox Pro, Microsoft SQL®Server가 사용될 수 있다.
도 3의 지능형 대기행렬(310)은 몇 소자를 이용하여 구체화되는 반면에, 다른 실시태양에서는 지능형 대기행렬(310)이 지능형 대기행렬 프로세스(320)뿐만 아니라 색인 데이타베이스(320)를 포함하는 개인소유 데이타 저장소자(340)와 같은 단일 소자(310)로써 구체화될 수 있다.
지능형 대기행렬(310)은 발표/가입 모드, 부하 조정 모드 및/또는 결합 모드와 같은 다양한 모드에서 실행될 수 있다.
지능형 대기행렬(310)은 발행자가 하나 또는 그 이상의 가입자에 의해 검색되는 지능형 대기행렬에 메세지를 추가하는 발표/가입 모드에서 수행될 수 있다. 이러한 발표/가입 모드는 비록 몇 가입자에 의해 접근될 수 있지만 단지 하나의 메세지 인스턴스(instance)를 대기행렬에 세이브(save)함으로써 메세지 중복을 피한다.
또한, 지능형 대기행렬(310)은 지능형 대기행렬이 가입자 풀을 인정하는 부하 조정 모드에서 수행될 수 있다. 부하 조정 모드에서, 지능형 대기행렬(310)은 몇 가입자의 하나로 예정된 발행자로부터 메세지를 수신할 수 있다. 한 가입자 이상이 메세지를 불러오지 않는 한, 발행자는 어느 가입자가 메세지를 불러오는지를 염려하지 않아도 된다. 부하 조정 특성이 평균 대기시간의 길이를 단축하고 병목현상을 경감하는 것을 돕는다.
지능형 대기행렬(310)은 항상 발표/가입 모드에서 작동하도록 구성될 수 있다. 다른 실시태양에서, 지능형 대기행렬(310)은 항상 부하 조정 모드에서 작동하도록 구성될 수 있으며, 또는 다른 실시 태양에서 지능형 대기행렬(310)은, 예를 들면 네트워크 통신량(network traffic)이 이미 결정되어진 역치를 초과할 때와 같이, 몇 결합점의 트리거(trigger)시에 부하 조정 모드에서 작동하도록 설계될 수 있다. 또 다른 실시태양에서, 지능형 대기행렬(310)은 발표/가입 모드, 부하 조정 모드와 각 개별 메세지에 따른 결합 모드로 실행되도록 설계될 수 있다.
지능형 대기행렬(310)은 메세지가 유입되는 각 상태에 있어서 메세지 상태를 탐지한다. 이들 메세지 상태는 발행자 조망과 가입자 조망으로부터 발생하는 결합점에 상응한다. 도 4는 메세지 상태와 이들 전환의 한 실시태양을 나타낸다.
지능형 대기행렬은 메세지 상태의 두 분류에게 발행자 상태(410)와 가입자 상태(420)를 제공한다.
발행자 상태(410)는 발행자가 지능형 대기행렬에 메세지를 추가한 이후에 메세지 발행자가 각 메세지의 상태를 지정하도록 한다.
추가(PUT): 발행자가 지능형 대기행렬에 메세지를 추가한다.
노출(REVEALED): 발행자가 메세지를 가입자에게 이용가능하도록 제작
한다.
사용불능(UNAVAILABLE): 메세지는 어떤 가입자에게도 이용가능하지 않다.
저널화(JOURNALLED): 모든 예정된 가입자는 메세지를 검색한다. 메세지는
저널화된 상태(따라서, 연장된 메세지 저장시간의 확
보가 가능)로 남아 있을 것이므로, 메세지의 다른
처리가 수행될 수 있다(예를 들면, 시스템 관리자에
의한 보관, 비가입자에 의한 검색 등).
발행자가 지능형 대기행렬에 메세지를 이용가능하도록 제작한 이후에, 가입자 상태(420)는 각 메세지 가입자가 각 메세지 상태를 지정하도록 한다. 메세지상태 정보는 각 메세지 가입자의 상태를 기록하므로, 이미 검색된 메세지의 검색으로부터 가입자는 배제될 수 있다.
읽기(GET): 메세지 가입자가 검색 처리를 시작하였다.
불러오기(FETCHED): 메세지 가입자가 메세지를 성공적으로 검색하지만,
아직 검색을 완료하지는 못하였다.
처리중(IN PROCESS): 메세지 가입자가 메세지를 처리하고 있다.
사용불가(UNUSABLE): 메세지에 대한 메세지 가입자의 검색이 실패하였다.
완료(DONE): 가입자가 메세지 검색 및, 필요하다면 메세지 처리를
완료한다.
저널화(JOURNALLED): 메세지 가입자가 성공적으로 메세지를 검색하고, 및
필요시, 예를 들어 메세지 검색 실패시 또는 메세지
소멸시에 메세지를 처리한 후, 전기 메시징을 종료한
다. 메세지는 저널화된 상태(따라서, 연장된 메세지
저장시간의 확보가 가능)에 남아있을 것이므로 메세
지의 다른 처리가 수행될 수 있다(예를 들면, 시스템
관리자에 의한 추출, 비가입자에 의한 검색 등).
소멸(EXPIRED): 메세지는 미리 지정된 시간 한계 초과시에 소멸된다.
이 상태는 자동적으로 조절될 수 있거나, 발행자 또
는 가입자에 의해 트리거될 수 있다.
도 4에 설명된 실시태양에 있어서, 사용불능(UNAVAILABE) 상태, 저널화(JOURNALLED) 상태, 소멸(EXPIRED) 상태, 사용불가(UNUSABLE) 상태, 완료(DONE) 상태와 저널화(암시)(JOURNALLED(IMPLIED)) 상태를 포함하는 몇 개의단말 상태가 있다. 메세지 상태를 변화시킴에 의해서, 메세지를 복제할 필요나 보존된 디렉토리로 이동시킬 필요가 없으므로, 메세지가 효율적으로 저널화될 수 있다. 보통 메세지를 복제하거나 이동시키는데 필요한 리소스는 다른 태스크(task)로 할당될 수 있다.
발표/가입 모드를 설명하기 위하여, 발행자 X는 가입자 0, 가입자 1과 가입자 2가 메세지를 검색하도록 발송하기를 원한다고 하자. 발행자 X는 메세지가 검색되는 순서에 대하여는 문제삼지 않으나, 모든 가입자가 메세지 검색하는 것을 보장하길 원할 수 있다. 다른 실시태양에서, 예를 들면 발행자는 메세지가 한번에 하나씩 각 가입자에 노출되도록 하여, 메세지가 검색되는 순서를 지시할 수 있다.
제 1의 실시태양을 언급한다면, 먼저 발행자 X는 발표/가입 메세지로써 메세지를 대기행렬에 배치한다. 다음, 발행자 X는 가입자 0, 가입자 1과 가입자 2를 노출시킨다.
이때, 가입자 2가 메세지를 처리하기 시작하고 읽기 상태로 들어갔다고 가정하자. 다시, 가입자 2가 메세지를 불러오고 완료 상태를 거쳐 저널화 상태로 진행한다.
가입자 2가 불러오기 상태에 있는 동안에, 가입자 0는 다시 읽기 상태에서 메세지를 처리하기 시작할 수 있고, 메세지를 불러오며 불러오기 상태로 진행한다. 가입자 0는 메세지가 해독될 수 없는가를 결정할 수 있고, 사용불가 상태와 저널화 상태로 진행한다. 이때, 가입자 0는 발행자 X에게 메세지를 불러올 수 없다고 보고할 수 있다.
결국, 가입자 1은 읽기 상태로 메세지를 처리하기 시작하고, 다시 불러오기 상태로 이동할 수 있다. 다시, 가입자 1은 메세지를 처리중 상태로 처리하고 완료 상태를 거쳐 저널화 상태로 진행할 수 있다.
가입자 0, 가입자 1과 가입자 2가 모두 저널화 상태로 들어간 이후에, 발행자 X는 저널화 상태로 진행한다.
이러한 실시태양에서, 부하 조정 모드를 설명하기 위하여, 발행자 X가 가입자 0, 가입자 1 또는 가입자 2에 의해 검색되는 메세지를 발표하기를 원한다고 가정하자. 발행자 X는 어느 가입자가 메세지를 검색하는 지는 문제시 삼지 않으나, 첫 번째 이용 가능한 가입자에 의해 검색되기를 원할 것이다. 먼저, 발행자 X는 부하/평형 메세지로써 대기행렬에 메세지를 배치한다. 다음, 발행자 X는 가입자 0, 가입자 1 또는 가입자 2에 대한 메세지를 노출시킨다. 이때, 가입자 2가 메세지를 처리하기 시작하고, 읽기 상태로 들어간다고 가정하자. 가입자 0와 가입자 1이 자유로울때, 가입자 0와 가입자 1에 관한 메세지 상태는 가입자 0와 가입자 1가 다른 메세지로 처리하도록 소멸과 저널화로 변화한다. 가입자 2가 성공적으로 메세지를 불러오고 저널화 상태로 이동시에, 발행자 X는 메세지 상태를 저널화로 변화시킨다.
상기 실시태양은 발표/가입 모드 또는 부하 조정 모드로 표시된 메세지를 처리하는 지능형 대기행렬을 설명하는 반면에, 메세지는 양 모드의 결합으로써 표시될 수 있다고 인식된다. 예를 들면, 발행자 X는 가입자 0 또는 가입자 1, 가입자 2와 가입자 3에 의해 검색되어진 메세지를 발송하기를 원할 수 있다. 따라서, 결국 가입자 0, 가입자 2와 가입자 3가 검색된 메세지를 갖거나, 또는 가입자 1, 가입자 2와 가입자 3가 메세지를 가져야 한다.
첫째, 발행자 X는 메세지를 대기행렬에 배치한다. 한 실시태양에서, 한 메세지는 가입자 0와 가입자 1간에 부하 조정을 이용하는 것이고, 다른 메세지는 가입자 2와 가입자 3와 발표/가입 모드를 이용하는 것으로, 지능형 대기행렬은 이것을 두 메세지로써 처리할 수 있다. 다른 실시태양에서, 발행자는 메세지가 어느 가입자에게로 노출되는지를 표시할 수 있다. 따라서, 가입자 0 또는 가입자 1은 메세지를 처리하기 시작한 이후에, 메세지는 메세지를 검색하지 않았던 가입자(들)에게서 소멸된다.
본 발명의 한 실시태양의 잇점은 시스템 오류가 발생할 때, 메세지 복구를 수행하는 능력이다. 또한, 메세지 복구는 다른 데이타 저장을 이용하여 구체화된 지능형 대기행렬간에 호환을 가능하도록 한다. 아울러, 호환은 데이타 번역, 연계(interfacing), 상관관계 서비스 및/또는 데이타 복구를 가능하도록 한다. 데이타 번역은 데이타가 한 포맷에서 다른 포맷으로, 예를 들면 MS IQ 포맷에서 Oracle IQ 포맷으로 번역되도록 할 수 있다. 또한, 연계는 접속 상세(connection detail)를 제공함을, 예를 들면 네트워크 프로토콜, 응용 프로그래밍 접속 호출, 장접속(long connection), 기타등등을 포함할 수 있다. 상관관계 서비스는 복수의 메세지를 단일 메세지로 결합하는 것과 그것을 다른 메세지 대기행렬로 발송하는 것을 포함할 수 있다. 데이타 복구는 대기행렬에 메세지를 복원하는 절차를 포함할 수 있다. 따라서, 데이타 저장 형태에 무관하게 메세지는 시스템 오류시에복구될 수 있다.
이 실시태양에서, 작동중인 메세지 상태 정보를 이용하여 메세지 복구를 설명하기 위하여, 도 1A에서 설명된 시스템이 시스템 오류로부터 복구되는 과정에 있다고 가정하자. 또한, Sybase IQ(140)가 본류행(inbound)의 대기행렬이고 MSMQ IQ(170)가 외류행(outbound)의 대기행렬이라 가정하자. 메세지가 모듈에 의해 처리될 때, 최초의 메세지는 모체 메세지로 언급되고, 처리된 메세지는 자식 메세지(child message)로 언급된다. 다음은 시스템을 복구하는데 사용될 수 있는 복구 로직단계(recovery logic step) 세트의 한 실시태양을 제공한다.
단계 1: "노출"로 표시되지 아니한 메세지를 발견하기 위하여 MSMQ
IQ(170)로 진행하라. 이들 메세지는 "클린(clean)" 상태를 갖는
다.
단계 2: 일단 "클린" 메세지가 발견되면, 메세지의 모체를 발견하기
위하여 경로 정보를 추출하라. 메세지가 모체를 갖지 않는다면,
단계 4로 진행하라.
단계 3: 각 모체 메세지 상태를 체크하는 Sybase IQ(140)로 진행하라. 모체
메세지 중 하나가 "완료" 표시된다면, 이때 모든 모체 메세지를 "
완료" 표시하고 자식 메세지를 "노출" 표시하라. 모체 메세지 중
의 어느 것도 "완료" 표시되지 않는다면, 이때 모든 모체 메세지를
"클린" 표시하고 자식 메세지를 "삭제"로 표시하라.
단계 4: 메세지가 모체를 갖지 않는다면, 이 메세지를 "노출" 표시하라.
단계 5: MSMQ IQ(170)내에 "클린" 메세지가 처리 "복구"된 이후에 "불러오
기" 표시되고 "완료" 표시되지 아니한 메세지를 발견하기 위하여
Sybase IQ(140)으로 진행하라. 이 "불러오기 및 미완료"(Fetch
but not Done) 메세지를 "클린"으로 표시하라.
따라서, POS 모듈(130)이 실패하면, 다음의 지침이 메세지를 복구하는데 사용될 수 있다.
시나리오 1: 메세지가 Sybase IQ(140)위에 발송되고 메세지가 불러오지 않는
다면, 단계 1, 단계 2와 단계 4를 따르라.
사나리오 2: 메세지가 Sybase IQ(140)위에 놓여지고 메세지가 "불러오기"
(Fetch) 표시된다면, 가입자가 복구되도록 하라.
크레디트 승인 모듈(180)이 실패하면, 다음의 지침이 메세지를 복구하는데 사용될 수 있다.
시나리오 1: 메세지가 불러오지만 "완료"(Done) 표시되지 않는다면, 단계 5
를 따르라.
고객 데이타베이스 모듈(150)이 실패하면, 다음의 지침이 메세지를 복구하는데 사용될 수 있다.
시나리오 1: 메세지가 Sybase IQ(140)로부터 불러오지만 MSMQ IQ(170)위에
추가되지 않는다면, 단계 5를 따르라.
시나리오 2: 메세지가 Sybase IQ(140)로부터 불러오고 MSMQ IQ(170)위에 추
가된다면, 단계 1, 단계 2와 단계 3를 따르라.
시나리오 3: 메세지가 Sybase IQ(140)로부터 불러오고 MSMQ IQ(170)위에 추
가되며 Sybase IQ(140)에서 "완료"(Done) 표시된다면, 단계 1,
단계 2와 단계 3를 따르라.
상기 복구로직이 메세지 상태 정보를 이용하여 메세지 복구의 한 실시태양을 나타내고 다른 실시태양이 이용될 수도 있다고 인식된다.
한 실시태양에서, 메세지 상태는 메세지에 상응하는 파일로 기록되고 지능형 대기행렬 색인에 저장된다. 다른 실시태양에서, 메세지 상태는 다른 데이타 구조, 예를 들면 연계 리스트, 유한 상태 기계, 트리, 그래프, 기타등등에 기록될 수 있다고 인식된다. 또한, 다른 실시태양에서, 메세지 상태 정보는 다른 메세지에 관한 정보 등과 함께 메세지내에 위치될 수 있다.
도 5는 메세지 객체(510)의 한 실시태양을 나타낸다. 메세지 객체(510)는 메세지 식별자(message identifier), 발행자 ID 및 가입자 ID와 같은 메세지 상태 정보를 포함한다. 또한, 각 발행자와 가입자에 있어서, 메세지 상태 정보는 이미 발생한 각 상태와 현재의 상태에 대한 시각 표시(time stamp)를 포함한다. 다른 실시태양에서, 메세지 정보의 다른 포맷이 사용될 수 있다고 인식된다. 예를 들면, 한 실시태양에서 메세지 식별자는 메세지의 발행자에 의해 할당될 수 있는 반면에, 다른 실시태양에서는 메세지 식별자가 지능형 대기행렬에 의해 자동적으로 생성될 수 있다.
예를 들면, 도 5에서 예시적 메세지 객체(510)는 발표/가입 모드에서 발행자 X에 의해 발송되고 가입자 0 내지 2을 위하여 예정되었다. 발행자 X는 12:14:03시에 대기행렬에 메세지를 배치하였다. 9초 뒤에 메세지는 노출되고, 따라서 가입자에 의해 검색되도록 이용되었다. 결국, 메세지가 모든 가입자에 의해 저널화된 이후에, 발행자는 12:16:09시에 메세지를 저널화하였다.
가입자 0은 12:14:13시에 메세지를 처리하기 시작하였다. 13초 뒤에, 그는 메세지를 불러왔고, 12:14:54시에 메세지를 검색하는 것을 완료하였다. 이때, 가입자 0는 12:05:02시에 메세지를 저널화하였다.
가입자 1은 12:14:25시에 메세지를 처리하기 시작하였고, 61초 뒤에 메세지를 불러왔다. 12:15:51시에 가입자 1은 메세지를 처리하기 시작하였고 10초 뒤에 완료하였다. 12:16:07시에 가입자 1은 메세지를 저널화하였다.
가입자 2는 12:15:08시에 메세지를 처리하기 시작하였다. 12:15:32시에 가입자 2는 메세지를 불러왔고, 12:15:44시에 가입자 2는 메세지를 사용할 수 없다고 발송하고, 12:15:59시에 메세지를 저널화하였다.
메세지가 저널화된 이후에, 가입자 2는 발행자에게 메세지 검색시에 문제가 발생했다고 보고하였고, 따라서 발행자는 가입자 2를 위해 다시 메세지를 이용 가능하게 만들 수 있다.
또한, 시스템 오류가 발생했다면, 시스템 관리자는 단지 가입자 2가 메세지를 필요로하고, 가입자 0 및 가입자 1은 성공적으로 메세지를 검색했다는 것을 인식하였을 것이다.
지능형 대기행렬(310)은 대기행렬에 정보를 부가하고 대기행렬로부터 정보를 추출하는데 사용될 수 있는 지능형 대기행렬 프로세스(320)를 포함한다. 한 실시태양에서, 지능형 대기행렬 프로세스(320)는 대기행렬에 정보에 관한 정보를 제공할 수 있는 몇 개의 다른 프로세스(326)뿐만 아니라 수신메세지 프로세스(322), 갱신메세지 상태 프로세스(324)를 포함한다.
수신메세지 프로세스(322)는 발행자로부터 메세지 객체를 수신하고 대기행렬에 메세지 객체를 배치한다. 도 6은 가입자가 지능형 대기행렬에 메세지 객체를 송신하는 수신메세지 프로세스(322)의 한 실시태양을 나타낸다.
시작 상태(블럭 610)에서 시작하여, 수신메세지 프로세스(322)는 발행자로부터 메세지 객체를 수신한다(블럭 620). 다음, 수신메세지 프로세스(322)는 메세지 객체에 체크, 예를 들면 오류 검출, 오류 교정 및/또는 발신자 검증을 수행한다(블럭 630). 이때, 수신메세지 프로세스(322)는 데이타 저장장치에 메세지를 저장한다(블럭 640). 상기에서 설명했듯이, 데이타 저장은 다양한 데이타 구조, 예를 들면 B+ 트리, 평면 파일 디렉토리, 연계 리스트, 트리, 배열, 데이타베이스, 기타등등을 이용하여 구체화될 수 있다. 다음, 수신메세지 프로세스(322)는 색인 메세지에 상응하는 메세지 정보를 저장한다(블럭 650). 한 실시태양에서, 메세지 정보는 발행자로부터 송신될 수 있는 반면에, 다른 실시태양에서는 수신메세지 프로세스(322)는 메세지 헤더(message header), 기본값(default value), 기타 등등으로부터 메세지 정보를 도출할 수 있다. 이때, 수신메세지 프로세스(322)는 어느 가입자가 메세지를 검색할 것인지를 결정할 수 있다(블럭 660). 이것은 부하 조정 모드에서와 같이 메세지를 검색하는데 적합한 모든 가입자뿐만 아니라 발표/가입 모드에서와 같이 메세지를 검색하여야 하는 모든 가입자를 결정하는 것을 포함할 수있다. 결국, 각 가입자에 있어서, 수신메세지 프로세스(322)는 가입자에게 메세지가 대기행렬에서 이용 가능하고(블럭 670), 종료 상태로 진행한다(블럭 680)는 것을 보고하는 경보를 가입자에게 송신한다.
갱신메세지 상태 프로세스(324)는 발행자 또는 가입자로부터 갱신 요구를 수신하고 색인에서 상응하는 메세지 상태를 갱신한다. 도 7은 발행자 또는 가입자가 갱신 요구를 지능형 대기행렬에 송출하는 갱신메세지 상태 프로세스(324)의 한 실시태양을 나타낸다.
시작 상태(블럭 710)에서 시작하여 갱신메세지 상태 프로세스(324)는 발행자 또는 가입자로부터 갱신 요구를 수신한다(블럭 720). 갱신 요구는 다양한 포맷, 예를 들면 전자우편, 데이타 구조, 데이타 기록, 메세지 객체, 기타 등등으로 존재할 수 있다. 다음, 갱신메세지 상태 프로세스(324)는 갱신 요구에 상응하는 색인에 메세지 상태 정보를 위치시킨다(블럭 730). 결국, 갱신메세지 상태 프로세스(324)는 갱신 정보를 갖는 메세지 상태 정보를 갱신하고(블럭 740), 종료 상태로 진행한다(블럭 750). 예를 들면, 갱신메세지 상태 프로세스(324)는 현재의 상태의 새로운 시각 표시를 상응하는 상태에 부가할 수 있고, "현재 상태"(current state) 필드의 값을 현재 상태로 변화시킬 수 있다.
다른 실시태양에서, 메세지 상태 정보는 자동적으로 갱신될 수 있다고 인식된다. 예를 들면, 가입자가 메세지를 검색할 때, 지능형 대기행렬은 자동적으로 검색이 이루어진 시각을 기록할 수 있다.
지능형 대기행렬 프로세스(320)는 대기행렬에 정보에 관한 정보를 제공하는다른 프로세스를 포함할 수 있다. 예를 들면, 지능형 대기행렬은 대기행렬로부터 메세지의 한 복사를 검색하고 그 복사를 가입자에게 전송하는 검색메세지 프로세스를 포함할 수 있다. 또한 지능형 대기행렬은 정보에 어떤 변형을 초래함이 없이, 외부 관계자가 메세지 정보 및/또는 대기행렬에 있는 메세지 상태 정보를 관찰하도록 하는 뷰 메세지 프로세스(view message process)를 포함할 수 있다. 아울러, 메세지에 관한 정보의 지정된 단편, 예를 들면 메세지 주제, 메세지 조정, 메세지 헤더, 기타 등등을 검색하는 겟 정보 프로세스(get information process)뿐만 아니라 대기행렬내 메세지의 우선순위를 정한 메세지 우선순위 프로세스 세트가 포함될 수 있다.
본 발명의 다양한 실시태양이 이용될 수 있고, 상기의 제공된 실시태양은 단지 본 발명의 다양한 용도를 설명하기 위한 것이며, 본 발명의 범위를 한정하지는 않는다.
본 발명의 몇 실시태양들이 설명되었지만, 이들 실시태양은 단지 예시의 방식으로 제공되었으며, 본 발명의 범위를 한정하려는 의도가 아니다. 따라서, 본 발명의 폭과 범위는 이하의 청구범위와 그 등가물에 따라 규정되어야 한다.

Claims (52)

  1. 저널화된(journalled) 메세지가 첫번째 메세지 대기행렬(queue) 및 두번째 메세지 대기행렬에 보유된 상태인 저널화된 상태(journalled state)를 포함한, 첫번째 메세지 대기행렬 및 두번째 메세지 대기행렬에 저장된 메세지들의 메세지 상태를 탐지하고 운용하도록 구조화된 저널화 모듈(journalling module);
    복수의 메세지 상태를 탐지하여 첫번째 메세지 대기행렬 및 두번째 메세지 대기행렬에 저장되어 있는 이전에 처리된(processing) 메세지들의 재처리를 방지하도록 구조화된 메세지 단회(once-only) 처리 모듈;
    분산된 작업흐름(workflow)이 가능하도록 전기 복수의 대기행렬 사이의 상호작용을 조정하도록 구조화된 호환 모듈(interoperability module);
    오류(failure)시 전기 복수의 대기행렬 상에서 데이타 복구(recovery)를 수행하도록 구조화된 복구 모듈;
    전기 복수의 대기행렬에 대하여 단일 지점 제어(single point control)를 제공하도록 구조화된 중앙 운용 모듈(이때, 전기 단일 지점 제어는 복수의 발행자(publisher) 및 복수의 가입자(subscriber)를 제어하는 것을 포함한다); 및,
    전기 복수의 가입자의 어떤 부분집합을 어떤 가입자 풀(subscriber pool)내의 최소한 첫번째 메세지 대기행렬에 지정하여 전기 첫번째 메세지 대기행렬내의 메세지들이 전기 가입자 풀내의 최초 이용가능 가입자에 의하여 처리되도록 구조화된 부하 조정(load balancing) 모듈을 포함하며, 제 1의 데이타 저장형(storetype)의 첫번째 메세지 대기행렬 및 제 2의 데이타 저장형의 두번째 메세지 대기행렬을 포함한 복수의 대기행렬을 운용하도록 구조화된 메세지 대기행렬 운용 시스템(이때, 전기 첫번째 메세지 대기행렬 및 두번째 메세지 대기행렬은 복수의 컴퓨터 매체를 통하여 일관된 동작을 보인다).
  2. 제 1항에 있어서,
    전기 부하 조정 모듈은 추가적으로 전기 가입자들이 적어도 첫번째 메
    세지 대기행렬에 대하여 전기 가입자 풀내에 있지 않는 가입자들과 동
    시에 접근할 수 있게 하도록 구조화된 것을 특징으로 하는
    메세지 대기행렬 운용 시스템
  3. 복수의 환경들 중 하나에서 실행되며, 메세지 발행자들로부터 수신된 메세지들을 저장하고 복수의 메세지 가입자들에 의한 검색을 감시하도록 구조화된 메세지 대기행렬(이때, 메세지는 전기 복수의 메세지 가입자들 중 적어도 한 명이 전기 메세지에 접근한 후에, 전기 메세지에 대하여 추가적인 접근이 가능하도록 전기 메세지 대기행렬에 보유된다);
    어떤 메세지의 메세지 상태들을 탐지하도록 구조화된 메세지 상태 모듈(이때, 메세지 상태 정보는 전기 메세지가 전기 복수의 메세지 가입자들 중 적어도 한명에 대하여 이용가능하고 검색되어 왔는지를 가리킨다);
    적어도 해당 메세지가 전기 메세지 대기행렬에서 제거될 때까지는 전기 메세지에 관한 전기 메세지 상태 정보를 선택적으로 보유하도록 구조화된 기록(recording) 모듈; 및,
    메세지들내의 다양한 형태의 데이타 객체(data object)들을 송수신하며, 및, 메세지 발행자 또는 메세지 가입자 역할을 하는 다양한 형태의 데이타 메시징 시스템(data messaging system)과 통신하도록 구조화된 인터페이스(interface) 모듈을 포함하고 있고, 신뢰성 있는 통신을 제공하고, 단발성(non-repetitive) 전송을 보증하며, 및, 매체-비의존적 환경에서 구현되는 컴퓨터 네트워크용 메세지 대기 시스템(message queuing system).
  4. 제 3항에 있어서,
    전기 다양한 데이타 메시징 시스템들 중 적어도 하나는 메세지 발행자
    및 메세지 가입자 둘 다의 역할을 하는 것을 특징으로 하는
    메세지 대기 시스템.
  5. 제 3항에 있어서,
    전기 메세지 대기행렬은 추가적으로 부하 조정을 제공하도록 구조화된것을 특징으로 하는
    메세지 대기 시스템.
  6. 제 5항에 있어서,
    전기 부하 조정은 가입자 풀링(pooling)을 사용하여 구현되는 것을
    특징으로 하는
    메세지 대기 시스템.
  7. 제 3항에 있어서,
    전기 메세지 상태 정보는 메세지들이 전기 복수의 메세지 가입자들 중
    적어도 한 명에 의하여 지정된 순서대로 획득되는 것을 보증하기 위
    하여 사용되는 것을 특징으로 하는
    메세지 대기 시스템.
  8. 제 3항에 있어서,
    메세지는 단일 메세지 가입자를 목적으로 한 것을 특징으로 하는
    메세지 대기 시스템.
  9. 제 3항에 있어서,
    메세지는 복수의 메세지 가입자들을 목적으로 한 것을 특징으로 하는
    메세지 대기 시스템.
  10. 제 3항에 있어서,
    전기 메세지는 지정된 클린 업 과정(clean up process) 동안에 전기
    메세지 대기행렬로부터 제거되는 것을 특징으로 하는
    메세지 대기 시스템.
  11. 제 3항에 있어서,
    전기 메세지는 시스템 오류시에 메세지 대기행렬에 보유되어 메세지
    복구를 돕는 것을 특징으로 하는
    메세지 대기 시스템.
  12. 제 3항에 있어서,
    전기 메세지는 시스템 오류시에 메세지 대기행렬에 보유되어 전기 메
    세지의 저장, 수동 배포, 편집 또는 재전송 중 적어도 하나를 돕는 것
    을 특징으로 하는
    메세지 대기 시스템.
  13. 제 3항에 있어서,
    메세지는 복수의 메세지 가입자들을 목적으로 한 것을 특징으로 하는
    메세지 대기 시스템.
  14. 제 3항에 있어서,
    전기 메세지 상태 정보는 메세지 발행자 상태 정보 및 해당 메세지 구
    독자 상태 정보를 포함하는 것을 특징으로 하는
    메세지 대기 시스템.
  15. 제 14항에 있어서,
    전기 메세지 상태 정보는 전기 메세지내에 저장되는 것을 특징으로 하
    메세지 대기 시스템.
  16. 제 3항에 있어서,
    전기 메세지 상태는 전기 목적으로 한 메세지 가입자들과 관련한 메세
    지 발행자의 메세지 상태 및 해당 개별 메세지 가입자와 관련한 개별
    메세지 가입자의 메세지 상태를 나타내는 것을 특징으로 하는
    메세지 대기 시스템.
  17. 제 3항에 있어서,
    전기 메세지 상태는 순차 번호(sequence number), 발행자 상태 정보,
    및, 가입자 상태 정보를 포함하는 것을 특징으로 하는
    메세지 대기 시스템.
  18. 제 17항에 있어서,
    전기 발행자 상태 정보는 "비노출(unrevealed)" 상태와 관련한 정보,
    "노출(revealed)" 상태와 관련한 정보, "사용불능
    (unavailable)" 상태와 관련한 정보 및 "저널화(journalled)" 상태
    와 관련한 정보를 포함하는 것을 특징으로 하는
    메세지 대기 시스템.
  19. 제 17항에 있어서,
    전기 가입자 상태 정보는 "읽기(get)" 상태와 관련한 정보, "불러오기
    (fetched)" 상태와 관련한 정보, "사용불가(unusable)" 상태와 관련한
    정보, "소멸(expired)" 상태와 관련한 정보, "처리중(inprocess)" 상
    태와 관련한 정보, "완료(done)" 상태와 관련한 정보 및 "저널화" 상
    태와 관련한 정보를 포함하는 것을 특징으로 하는
    메세지 대기 시스템.
  20. 제 3항에 있어서,
    전기 메세지 대기행렬은 복수의 서로 다른 데이타베이스 프로토콜
    (protocol)과 연계하도록(interface) 구조화된 것을 특징으로 하는
    메세지 대기 시스템.
  21. 제 3항에 있어서,
    전기 복수의 데이타 메시징 시스템들의 형태들 중 적어도 하나는 데이
    타베이스인 것을 특징으로 하는
    메세지 대기 시스템.
  22. 제 3항에 있어서,
    전기 복수의 데이타 메시징 시스템들의 형태들 중 적어도 하나는 평면
    파일 디렉토리(flat file directory)인 것을 특징으로 하는
    메세지 대기 시스템.
  23. 제 3항에 있어서,
    전기 복수의 데이타 메시징 시스템들의 형태들 중 적어도 하나는 제 2
    메세지 대기 시스템인 것을 특징으로 하는
    메세지 대기 시스템.
  24. 제 3항에 있어서,
    다양한 데이타 객체들 중 적어도 하나는 데이타베이스 레코드
    (database record)인 것을 특징으로 하는
    메세지 대기 시스템.
  25. 제 3항에 있어서,
    다양한 데이타 객체들 중 적어도 하나는 전자 우편(electronic mail)
    메세지인 것을 특징으로 하는
    메세지 대기 시스템.
  26. 제 3항에 있어서,
    다양한 데이타 객체들 중 적어도 하나는 웹페이지(web page)인 것을
    특징으로 하는
    메세지 대기 시스템.
  27. 메세지 발행자로부터 적어도 한 명의 메세지 가입자를 목적으로 한 어떤 데이타 객체를 수신하는 단계;
    전기 데이타 객체를 처리하여 해당 메세지를 생성하는 단계(이때, 전기 해당 메세지는 전기 데이타 객체 및 메세지 정보를 포함한다);
    전기 메세지를 어떤 메세지 대기행렬에 저장하는 단계;
    전기 메세지의 상태를 전기 메세지 발행자 측에서 탐지하는 단계;
    전기 메세지의 상태를 적어도 한 명의 전기 메세지 가입자 측에서 탐지하는 단계; 및,
    전기 메세지가 적어도 한 명의 전기 메세지 가입자에 의하여 검색된 후 전기 메세지 대기행렬에 남아있도록 전기 메세지를 선택적으로 보유하는 단계를 포함하는, 복수의 메세지 발행자 및 복수의 메세지 가입자 사이에서 메세지를 대기시키는 방법.
  28. 제 27항에 있어서,
    전기 메세지 대기행렬은 복수의 플랫폼(platform) 상에서 실행되도록
    구조화될 수 있는 것을 특징으로 하는
    복수의 메세지 발행자 및 복수의 메세지 가입자 사이에서 메세지를 대기시키는 방법.
  29. 제 27항에 있어서,
    전기 메세지 대기행렬은 부하 조정을 제공하도록 구조화될 수 있는 것
    을 특징으로 하는
    복수의 메세지 발행자 및 복수의 메세지 가입자 사이에서 메세지를 대기시키는 방법.
  30. 제 27항에 있어서,
    전기 메세지 대기행렬은 가입자 풀링을 제공하도록 구조화될 수 있는
    것을 특징으로 하는
    복수의 메세지 발행자 및 복수의 메세지 가입자 사이에서 메세지를 대기시키는 방법.
  31. 제 27항에 있어서,
    전기 메세지 정보는 메세지 식별자(identifier) 및 메세지
    헤더(header)를 포함하는 것을 특징으로 하는
    복수의 메세지 발행자 및 복수의 메세지 가입자 사이에서 메세지를 대기시키는 방법.
  32. 제 28항에 있어서,
    전기 메세지 헤더는 메세지 상태 정보를 포함하는 것을 특징으로 하는
    복수의 메세지 발행자 및 복수의 메세지 가입자 사이에서 메세지를 대기시키는 방법.
  33. 제 28항에 있어서,
    전기 메세지 헤더는 전기 메세지 발행자 및 적어도 한 명의 메세지
    가입자에 대한 메세지 상태 정보를 포함하는 것을 특징으로 하는
    복수의 메세지 발행자 및 복수의 메세지 가입자 사이에서 메세지를 대기시키는 방법.
  34. 제 33항에 있어서,
    전기 메세지 발행자에 대한 메세지 상태 정보는 메세지 발행자 상태와
    관련된 정보를 포함하는 것을 특징으로 하는
    복수의 메세지 발행자 및 복수의 메세지 가입자 사이에서 메세지를 대기시키는 방법(이때, 전기 메세지 발행자 상태는 "추가(put)" 상태, "사용불능" 상태, "노출" 상태 및 "저널화" 상태를 포함한다).
  35. 제 33항에 있어서,
    적어도 한 명의 전기 메세지 가입자에 대한 메세지 정보는 메세지 구
    독자 상태와 관련된 정보를 포함하는 것을 특징으로 하는
    복수의 메세지 발행자 및 복수의 메세지 가입자 사이에서 메세지를 대기시키는 방법(이때, 전기 메세지 가입자 상태는 "읽기" 상태, "불러오기" 상태, "사용불가" 상태, "소멸" 상태, "처리중" 상태, "완료" 상태 및 "저널화" 상태를 포함한다).
  36. 제 32항에 있어서,
    전기 메세지 상태 정보는 전기 해당 메세지 상태에 대한 시각 표시
    (time stamp)를 포함하는 어떤 로그에 저장되는 것을 특징으로 하는
    복수의 메세지 발행자 및 복수의 메세지 가입자 사이에서 메세지를 대기시키는 방법.
  37. 어떤 메세지를 수신하는 단계(이때, 전기 메세지는 발행자 메세지 상태 및 가입자 메세지 상태를 포함한다);
    전기 메세지를 어떤 메세지 대기행렬에 배치하는 단계;
    전기 메세지에 대한 전기 발행자 메세지 상태를 저널화된 상태로 변경하는 단계; 및,
    전기 메세지를 전기 메세지 대기행렬에 보유하는 단계를 포함하는, 메세지대기행렬에 복수의 메세지를 저널화하는 방법(이때, 전기 복수의 메세지는 복수의 해당 메세지 상태를 포함한다).
  38. 제 37항에 있어서,
    전기 메세지에 대한 전기 가입자 메세지 상태를 단말(terminal) 상태
    로 변경하는 단계를 추가로 포함하는 것을 특징으로 하는
    메세지 대기행렬에 복수의 메세지를 저널화하는 방법.
  39. 어떤 메세지를 메세지 대기행렬에 배치하는 단계;
    복수의 가입자에게 전기 메세지가 사용가능함을 알리는 단계; 및,
    전기 복수의 가입자 중 한 사람에 의해 검색시, 전기 발행자 메세지 상태를 단말 상태로 변경함으로써 전기 복수의 가입자 중 여타의 가입자가 전기 메세지를 검색하는 것을 방지하는 단계를 포함하는, 복수의 메세지를 어떤 메세지 대기행렬에 가입자 풀링하는 방법(이때, 전기 복수의 메세지는 해당 발행자 상태를 포함한다).
  40. 복수의 메세지 발행자 및 복수의 메세지 가입자와 통신하며, 및, 어떤 메세지 발행자로부터의 복수의 메세지 가입자 중 적어도 한 명을 목적으로 한 어떤 데이타 객체를 수신하도록 구조화된 메세지 대기행렬 모듈(message queue module);
    전기 데이타 객체를 처리하여 어떤 해당 메세지를 생성하도록 구조화된 데이타 객체 처리 모듈(이때, 전기 해당 메세지는 전기 데이타 객체 및 메세지 정보를 포함한다);
    전기 메세지 발행자 측에서 전기 메세지의 상태를 탐지하도록 구조화된 발행자 탐지 모듈(publisher tracking module);
    목적으로 한 복수의 메세지 가입자 중 적어도 한 명 측에서 전기 메세지의 상태를 탐지하도록 구조화된 복수의 가입자 탐지 모듈; 및,
    전기 메세지가 전기 목적으로 한 복수의 메세지 가입자 중 적어도 한 명에 의하여 검색된 후 전기 메세지 대기행렬에 남아있도록 전기 메세지를 선택적으로 보유하도록 구조화된 메세지 탐지 모듈을 포함하는, 복수의 메세지 발행자 및 복수의 메세지 가입자 사이에서 메세지를 대기시키는 시스템.
  41. 제 40항에 있어서,
    전기 메세지 대기행렬 모듈은 추가로 부하 조정을 제공하도록 구조화
    복수의 메세지 발행자 및 복수의 메세지 가입자 사이에서 메세지를 대기시키는 시스템.
  42. 제 40항에 있어서,
    전기 메세지 대기행렬 모듈은 추가로 가입자 풀링을 제공하도록 구조
    화된
    복수의 메세지 발행자 및 복수의 메세지 가입자 사이에서 메세지를 대기시키는 시스템.
  43. 제 40항에 있어서,
    전기 메세지 정보는 메세지 식별자 및 메세지 헤더를 포함하는 것을
    특징으로 하는
    복수의 메세지 발행자 및 복수의 메세지 가입자 사이에서 메세지를 대기시키는 시스템.
  44. 제 41항에 있어서,
    전기 메세지 헤더는 전기 메세지 발행자 및 적어도 한 명의 메세지
    가입자에 대한 메세지 상태 정보를 포함하는 것을 특징으로 하는
    복수의 메세지 발행자 및 복수의 메세지 가입자 사이에서 메세지를 대기시키는 시스템.
  45. 제 40항에 있어서,
    전기 메세지 정보는 메세지 상태 정보를 포함하는 것을 특징으로 하는
    복수의 메세지 발행자 및 복수의 메세지 가입자 사이에서 메세지를 대기시키는 시스템.
  46. 제 45항에 있어서,
    전기 메세지 상태 정보는 전기 해당 메세지 상태에 대한 시각 표시를
    포함하는 어떤 로그에 저장되는 것을 특징으로 하는
    복수의 메세지 발행자 및 복수의 메세지 가입자 사이에서 메세지를 대기시키는 시스템.
  47. 어떤 대기행렬 및 대기행렬 인터페이스 모듈을 사용하여 메세지들을 저장하는 단계(이때, 전기 대기행렬 인터페이스 모듈은 복수의 데이타베이스 프로토콜과 연계하도록 구조화될 수 있다);
    전기 메세지가 목적으로 한 모든 가입자에 의하여 검색된 시각 이후에까지로메세지 저장을 연장하는 단계; 및,
    단회(once-only) 전송이 이루어지도록 메세지 상태를 탐지하는 단계를 포함하는, 발행자로부터 수신된 가입자 검색용 메세지들을 대기시키는 방법.
  48. 제 47항에 있어서,
    메세지 상태를 탐지하는 단계는 메세지 발행자 상태 및 메세지 가입자
    상태와 관련된 정보를 탐지하는 단계를 포함하는 것을 특징으로 하는
    발행자로부터 수신된 가입자 검색용 메세지들을 대기시키는 방법.
  49. 제 48항에 있어서,
    전기 메세지 발행자 상태는 "추가" 상태, "사용불능" 상태,
    "노출" 상태 및 "저널화" 상태를 포함하는 것을 특징으로 하는
    발행자로부터 수신된 가입자 검색용 메세지들을 대기시키는 방법.
  50. 제 48항에 있어서,
    전기 메세지 발행자 상태는 "읽기" 상태, "불러오기" 상태, "사용불
    가" 상태, "소멸" 상태, "처리중" 상태, "완료" 상태 및 "저널화"
    상태를 포함하는 것을 특징으로 하는
    발행자로부터 수신된 가입자 검색용 메세지들을 대기시키는 방법.
  51. 어떤 대기행렬 및 대기행렬 인터페이스 모듈을 사용하여 메세지들을 저장하는 매체(mean)들(이때, 전기 대기행렬 인터페이스 모듈은 복수의 데이타베이스 프로토콜과 연계하도록 구조화될 수 있다);
    전기 메세지가 목적으로 한 모든 가입자에 의하여 검색된 시각 이후에까지로 메세지 저장을 연장하는 매체들; 및,
    단회 전송이 이루어지도록 메세지 상태를 탐지하는 매체들을 포함하는, 발행자로부터 수신된 가입자 검색용 메세지들을 대기시키는 시스템.
  52. 첫번째 메세지 대기행렬을 처리하여 드러나지 않았던 메세지들을 배치하는 단계;
    노출되지 않았던 메세지들에 대하여:
    경로(path) 정보를 추출하여 전기 메세지의 모체 메세지(message parent)들을 찾는 단계;
    전기 두번째 메세지 대기행렬에 있는 전기 모체 메세지들을 점검하는 단계;
    전기 모체 메세지들 중 최소 하나가 "완료"로 표시되어 있으면, 모체 메세지들을 "완료"로 및 전기 메세지를 "노출"로 표시하는 단계;
    전기 모체 메세지들이 "완료"로 표시되어 있지 않을 때는, 모체 메세지들을 "클린(clean)"으로 및 전기 메세지를 "삭제(deleted)"로 표시하는 단계; 및,
    어떤 모체 메세지도 없을 경우, 전기 두번째 메세지 대기행렬에 있는 전기 메세지를 "노출"로 표시하는 단계;
    "클린"으로 표시된 메세지들을 복구하는 단계;
    전기 두번째 메세지 대기행렬을 처리하여 "불러오기" 및 "미완료"로 표시된 메세지들을 찾는 단계; 및,
    전기 "불러오기" 및 "미완료"로 표시된 메세지들을 "클린"으로 표시하는 단계를 포함하는, 제 1의 데이타 저장형을 사용하여 구현된 첫번째 메세지 대기행렬 및 제 2의 데이타 저장형을 사용하여 구현된 두번째 메세지 대기행렬 간의 메세지 통신을 복원하는 방법.
KR1020027005633A 1999-11-01 2000-11-01 메세지 대기 시스템 및 방법 KR20020070274A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16292799P 1999-11-01 1999-11-01
US60/162,927 1999-11-01
PCT/US2000/041737 WO2001033407A2 (en) 1999-11-01 2000-11-01 Systems and methods of message queuing

Publications (1)

Publication Number Publication Date
KR20020070274A true KR20020070274A (ko) 2002-09-05

Family

ID=22587708

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027005633A KR20020070274A (ko) 1999-11-01 2000-11-01 메세지 대기 시스템 및 방법

Country Status (6)

Country Link
EP (1) EP1287439A2 (ko)
JP (1) JP2003524827A (ko)
KR (1) KR20020070274A (ko)
AU (1) AU2620701A (ko)
CA (1) CA2389530A1 (ko)
WO (1) WO2001033407A2 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2378781B (en) 2001-08-16 2005-06-01 Sun Microsystems Inc Message brokering
GB2378782B (en) * 2001-08-16 2005-04-13 Sun Microsystems Inc Message brokering
WO2004008702A1 (en) * 2002-07-11 2004-01-22 Ravi Shankar Using smart nomadic objects to implement secure distributed multimedia messaging applications and services
US7631315B2 (en) * 2005-03-28 2009-12-08 Microsoft Corporation Using subqueues to enhance local message processing
CN1957577B (zh) 2005-04-18 2012-02-08 捷讯研究有限公司 处理非永久通信链路上的通信的方法
US8869169B2 (en) 2007-04-30 2014-10-21 Accenture Global Services Limited Alternately processing messages
EP1988461B1 (en) 2007-04-30 2016-04-20 Accenture Global Services Limited Alternating processing method, system, and computer program product
GB2533328A (en) 2014-12-16 2016-06-22 Ibm Message processing

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995010805A1 (en) * 1993-10-08 1995-04-20 International Business Machines Corporation Message transmission across a network
US5873084A (en) * 1996-01-18 1999-02-16 Sun Microsystems, Inc. Database network connectivity product
JP2002505050A (ja) * 1997-06-24 2002-02-12 ノーテル・ネットワークス・リミテッド 非同期メッセージ処理システム及び方法

Also Published As

Publication number Publication date
EP1287439A2 (en) 2003-03-05
AU2620701A (en) 2001-05-14
CA2389530A1 (en) 2001-05-10
WO2001033407A2 (en) 2001-05-10
WO2001033407A3 (en) 2002-12-05
JP2003524827A (ja) 2003-08-19

Similar Documents

Publication Publication Date Title
US6970945B1 (en) Systems and methods of message queuing
US8214444B2 (en) Email attachment management in a computer system
US8285580B2 (en) System and method for filtering exceptions generated by forecasting and replenishment engine
US9955004B2 (en) System and method for utilizing customer data in a communication system
US20150112761A1 (en) Centralized customer contact database
US7287249B2 (en) Method and system for tracking and exchanging incremental changes to hierarchical objects
US6067354A (en) Method and system for processing data records from a telephone data repository to a receiving system
US20030065759A1 (en) Event driven storage resource metering
MXPA04006722A (es) Administrador de integridad de integracion.
US7484134B2 (en) Method and system for internet-based software support
US20020027567A1 (en) Listing network for classified information
US7853562B2 (en) System and method for obtaining information from a data management system
US20050235008A1 (en) Apparatus and method for collateral recovery
US20040083230A1 (en) Method and system for automatically managing an address database
JPS62125445A (ja) デ−タ・オブジエクト・レプリカの管理方法
JPH09325939A (ja) エージェント機能を備えるグループウェアシステム
WO2007059469A2 (en) System and method for delivering results of a search query in an information management system
US20050055422A1 (en) Transfer client of a secure system for unattended remote file and message transfer
US20090031174A1 (en) Server outage data management
TW200821863A (en) Work item event procession
CN1980153A (zh) 管理对于计算机系统的改变的系统和方法
EP0438020B1 (en) Method and system for automatically controlling the distribution of data objects
US8386503B2 (en) Method and apparatus for entity removal from a content management solution implementing time-based flagging for certainty in a relational database environment
KR20020070274A (ko) 메세지 대기 시스템 및 방법
US8032500B2 (en) Dynamic sending policies and client-side disaster recovery mechanism for messaging communication

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application