KR20100126786A - 발행/구독 메시지 브로커 - Google Patents

발행/구독 메시지 브로커 Download PDF

Info

Publication number
KR20100126786A
KR20100126786A KR1020107022202A KR20107022202A KR20100126786A KR 20100126786 A KR20100126786 A KR 20100126786A KR 1020107022202 A KR1020107022202 A KR 1020107022202A KR 20107022202 A KR20107022202 A KR 20107022202A KR 20100126786 A KR20100126786 A KR 20100126786A
Authority
KR
South Korea
Prior art keywords
message
topic
sequence
subject
new
Prior art date
Application number
KR1020107022202A
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 KR20100126786A publication Critical patent/KR20100126786A/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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • 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/542Event management; Broadcasting; Multicasting; Notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명에 따른 발행/구독 메시지 브로커를 운영하기 위한 방법은, 발행자로부터 하나의 주제에 관한 메시지를 수신하는 단계, 상기 메시지를 메시지들의 시퀀스의 시작으로서 식별하는 단계, 상기 메시지를 상기 주제에 대한 하나 또는 그 이상의 기존 구독자들에게 송신하는 단계, 상기 주제에 대한 신규 구독자를 등록하는 단계, 발행자로부터 상기 주제에 관한 추가 메시지를 수신하는 단계, 및 상기 추가 메시지를 상기 주제에 대한 상기 하나 또는 그 이상의 기존 구독자들에게 송신하는 단계 - 그러나, 상기 주제에 대항 상기 등록된 신규 구독자에게는 송신하지 않음 - 를 포함한다. 이것이 달성될 수 있는 한 가지 방법은, 상기 메시지를 메시지들의 시퀀스의 시작으로서 식별하는 단계 이후에, 상기 메시지 브로커가, 메시지들의 시퀀스에 대응하는 신규 소주제를 생성하고 상기 신규 주제에 대해 상기 하나 또는 그 이상의 기존 구독자들이 구독하도록 하는 것이다. 상기 시퀀스와 관련되는 수신된 어떤 신규 메시지들은 상기 소주제에 대해 발행되지만, 상기 원 주제에 대해서는 그렇지 않다. 상기 주제에 대한 어떤 신규 발행자들도 상기 소주제를 구독하게 되지 않는다.

Description

발행/구독 메시지 브로커{A PUBLISH/SUBSCRIBE MESSAGE BROKER}
본 발명은 발행/구독 메시지 브로커(publish/subscribe message broker), 상기 메시지 브로커 자체를 운영(operate)하는 방법과 관련되고, 상기 발행/구독 메시지 브로커를 운영하기 위한 컴퓨터 판독가능 매체 상의 컴퓨터 프로그램 제품과 관련된다.
발행/구독(pub/sub)은 비동기식 메시징 패러타임(asynchronous messaging paradigm)이다. pub/sub 시스템에서, 발행자들(publishers)은 메시지들을 메시지 브로커(message broker)에게 발송하고, 구독자들(subscribers)은 그 브로커에 구독들(subscriptions)을 등록한다. 주제-기반 시스템(topic-based system)에서, 메시지들은 상기 브로커에 의해 관리되는 주제들에 대해 발행된다. 주제-기반 시스템에서 구독자들은 그들이 구독하는 주제들에 대해 발행된 모든 메시지들을 수신할 것이고, 하나의 주제에 대한 모든 구독자들은 동일한 메시지들을 수신할 것이다. pub/sub는 매우 가치있는 패러다임이며, 각각의 pub/sub 메시지는 메시지 자체(일반적으로는 주제, 때로는 내용)의 특성들에 따라 경로가 설정된다. 각각의 메시지가 도착함에 따라, 제1 단계로서, 상기 브로커는 메시지를 분석하고 구독자들의 적절한 세트를 결정하며, 제2 단계는 그에 따라 상기 메시지를 분배한다. 상기 시스템은 비동기식(asynchronous)이다. 현재의 발행/구독 환경에서, 발행자들은 구독자들이 메시지들을 수신할 수 있는 주제(topic)에 대해 메시지들을 발행할 수 있다. 일부 시나리오에 있어서는, 발행들(publications)과 구독들 모두를 특정된 주제에서 또 다른 주제로 재지정(redirect)하는 것은 유용할 것이다.
본 발명의 제1 측면에 따라, 발행/구독 메시지 브로커를 운영하는 방법이 제공된다. 상기 방법은, 발행자로부터 하나의 주제(a topic)에 관한 메시지를 수신하는 단계, 상기 메시지를 메시지들의 시퀀스(sequence of messages)의 시작으로서 식별하는 단계, 상기 메시지를 상기 주제에 대한 하나 또는 그 이상의 기존 구독자들에게 송신하는 단계, 상기 주제에 대한 신규 구독자를 등록(register)하는 단계, 발행자로부터 상기 주제에 관한 추가 메시지를 수신하는 단계, 및 상기 추가 메시지를 상기 주제에 대한 상기 하나 또는 그 이상의 기존 구독자들에게는 송신하지만, 상기 주제에 대한 상기 등록된 신규 구독자에게는 송신하지 않는 단계를 포함한다.
본 발명의 제2 측면에 따라, 발행/구독 메시지 브로커가 제공된다. 상기 발행/구독 메시지 브로커는, 발행자로부터 하나의 주제에 관한 메시지를 수신하고, 상기 메시지를 메시지들의 시퀀스의 시작으로서 식별하고, 상기 메시지를 상기 주제에 대한 하나 또는 그 이상의 기존 구독자들에게 송신하고, 상기 주제에 대한 신규 구독자를 등록하고, 발행자로부터 상기 주제에 관한 추가 메시지를 수신하고, 상기 추가 메시지를 상기 주제에 대한 상기 하나 또는 그 이상의 기존 구독자들에게는 송신하지만, 상기 주제에 대한 상기 등록된 신규 구독자에게는 송신하지 않도록 준비(arrange)된다.
본 발명의 제3 측면에 따라, 발행/구독 메시지 브로커를 운영하기 위해 컴퓨터 판독가능 매체 상에 컴퓨터 프로그램 제품이 제공된다. 상기 컴퓨터 프로그램 제품은, 발행자로부터 하나의 주제에 관한 메시지를 수신하고, 상기 메시지를 메시지들의 시퀀스의 시작으로서 식별하고, 상기 메시지를 상기 주제에 대한 하나 또는 그 이상의 기존 구독자들에게 송신하고, 상기 주제에 대한 신규 구독자를 등록하고, 발행자로부터 상기 주제에 관한 추가 메시지를 수신하고, 상기 추가 메시지를 상기 주제에 대한 상기 하나 또는 그 이상의 기존 구독자들에게는 송신하지만, 상기 주제에 관한 상기 등록된 신규 구독자에게는 송신하지 않기 위한, 명령들을 포함한다.
바람직한 실시예에 따라, 만약 하나의 주제가 하나의 시퀀스를 시작했다면, 상기 주제를 운영할 메시지 브로커(message broker)를 제공하여 신규 구독자들이 상기 주제로부터 메시지들을 수신하지 않도록 하는 것이 가능하다. 상기 바람직한 실시예는 발행자들과 구독자들 모두에 의해 사용되는 주제가 클라이언트 정보(client knowledge) 없이도 하나의 주제 또는 많은 다른 주제들로 재지정될 수 있는 방법을 기술한다.
이러한 것이 유용할 수 있는 하나의 특정 상황은, 의미가 있도록(make any sense) 모두가 수신되어야 하는 메시지들의 시퀀스를 발행할 경우, 즉, 하나의 메시지를 제외한 모두를 수신하는 것이 유용하지 않을 경우이다. 체스 게임들을 고려하면, 이 체스 게임들에서 발행자들은 특정 주제에 대해 그 게임에서의 각각의 움직임을 발행한다. (진행중인 모든 피쓰들(pieces)의 현재 위치를 상기 구독자가 이해하기 위해) 하나의 게임 중간에 이들 발행들을 구독자들이 수신하는 것은 의미가 없을 것이다. 왜냐하면 그것들은 이전의 메시지들이 없이는 의미가 없을 것이기 때문이다.
바람직하게는, 상기 메시지 브로커를 운영하는 방법에 있어서, 상기 메시지를 메시지들의 시퀀스의 시작으로서 식별하는 단계는, 상기 수신된 메시지의 내용에 접근하는 단계, 및 상기 메시지를 상기 접근된 메시지의 내용으로부터 메시지들의 시퀀스의 시작으로서 식별하는 단계를 포함한다. 상기 메시지 브로커는 메시지들의 신규 시퀀스가 시작될 때를 식별해야 한다. 이를 쉽게 달성할 수 있는 한 가지 방법은 상기 수신된 메시지의 내용을 조사하여 상기 메시지의 내용 내의 명료하거나 암시적인 마커(marker)를 찾는 것이다. 상기 마커는 상기 메시지가 신규 시퀀스의 시작임을 나타낸다. 예를 들어, 상기 발행자는 상기 메시지의 바디 내에 미리 정해진 플래그(flag)를 포함시킬 수 있다. 상기 플래그는 상기 메시지 브로커에게 이 메시지가 신규 시퀀스의 제1 메시지임을 나타낸다. 만약 플래그가 없다면, 상기 메시지 브로커는 상기 메시지가 하나의 시퀀스의 시작임을 상기 메시지의 상기 내용으로부터 결정하도록 지능적으로(intelligently) 구성될 수 있다. 예를 들어, 위에서 체스 게임들의 움직임들을 따라 유지되는 주제에 관한 예에서, 예를 들어, "1.e4" 또는 이와 유사한 어떤 것의 존재는 신규 시퀀스를 나타낼 것이다. 신규 시퀀스의 시작으로서의 상기 메시지의 식별은 상기 메시지의 상기 내용 이외의 어떤 것, 예를 들어, 상기 발행자의 위치, 또는 상기 메시지가 송신된 시간(아마도 이전의 메시지가 송신된 시간에 대한 상대적인 시간)에 기초할 수 있다.
바람직하게는, 상기 메시지 브로커를 운영하는 방법은 상기 주제에 관한 또 다른 추가 메시지(yet further message)를 수신하는 단계, 상기 또 다른 추가 메시지(yet further message)를 상기 메시지들의 시퀀스의 끝으로서 식별하는 단계, 및 상기 주제에 관한 모든 장래 메시지들을 상기 주제에 대한 상기 하나 또는 그 이상의 기존 구독자들에게, 그리고 상기 주제에 대한 상기 등록된 신규 구독자에게 송신하는 단계를 더 포함한다. 또한 상기 메시지 브로커는 상기 시퀀스의 끝을 식별하고, 그래서 상기 시퀀스 상황(sequence condition)과 연관된 특정 운영 절차를 효과적으로 종료하도록 구성될 수 있다. 상기 끝이 결정되면, 모든 구독자들은 동일한 입장(footing)으로 돌아오고, 상기 주제에 관해 수신된 신규 메시지들은 이제 오래된 것이거나 신규한 것이거나 상관없이 모든 구독자들에게 송신될 것이다. 만약 신규 시퀀스를 시작하는 또 다른 메시지가 수신된다면, 상기 프로세스는 다시 시작될 수 있다.
이상적으로는, 상기 메시지 브로커를 운영하는 방법은, 상기 메시지를 메시지들의 시퀀스의 시작으로서 식별하는 단계 이후, 상기 메시지들의 시퀀스에 대응하는 신규 주제를 생성하는 단계, 및 상기 신규 주제에 대해 상기 하나 또는 그 이상의 기존 구독자들이 구독하도록 하는 단계를 더 포함한다. 그런 다음, 상기 방법은 각각의 메시지를 상기 주제에 관해 발행할 것인지 또는 상기 신규 주제에 관해 발행할 것인지의 여부를, 상기 주제에 관해 수신되는 모든 장래 메시지들에 대해 결정하는 단계를 더 포함할 수 있다. 이는 상기 메시지 브로커가 상기 기존 메시지들의 시퀀스로부터 상기 신규 구독자들의 구분을 구현할 수 있는 한 가지 방법이다. 상기 메시지 브로커는, 상기 메시지들의 시퀀스에 대응하는 신규 소주제(sub-topic)를 생성하고 상기 신규 주제에 대해 상기 하나 또는 그 이상의 기존 구독자들이 구독하도록 한다. 상기 시퀀스와 관련하여 수신되는 어떤 신규 메시지들도 원 주제(original topic)가 아니라 상기 소주제에 대해 발행된다. 상기 주제에 대한 어떤 신규 구독자들도 상기 소주제에 대해서는 구독하게 되지 않는다.
본 발명의 실시예들은 이제 첨부되는 도면들을 참조하여 기술될 것인데, 이 도면들은 단지 예로서 제시된 것이다.
도 1은 발행/구독 시스템의 개략도이다.
도 2는 상기 발행/구독 시스템의 추가 개략도이다.
도 3은 상기 발행/구독 시스템의 메시지 브로커를 운영하는 방법의 흐름도이다.
도 4 내지 6은 상기 발행/구독 시스템의 제2 실시예의 개략도들이다.
도 1에는 발행/구독 시스템의 간단한 실시예가 도시되어 있다. 이 시스템은 메시지 브로커(10), 발행자(12) 및 구독자들(둘 모두 14로 표시됨)을 포함한다. 메시지 브로커(10)는 서버에서 실행되는데, 상기 서버는 적절한 네트워크를 통해 접근된다. 발행자(12) 및 구독자들(14)은 브로커(10)를 실행하는 서버에 접속하는 기능을 갖는 컴퓨팅 펑션일 수 있다. 발행자(12) 및 구독자들(14)은 데스크탑 컴퓨터들 또는 모바일 디바이스들(예를 들어, 모바일 폰 또는 PDA등)일 수 있다. 발행자 또는 구독자로서의 접속 디바이스(connecting devices)의 명칭은 논리적 상태이며, 사실상, 어떤 접속 디바이스는 다른 시간에 발행자와 구독자 모두가 될 수도 있다.
브로커(10)는 주제들(16)의 리스트들을 유지한다. 이 예에서 주제들(16)의 리스트는 제1 주제(T1) 및 제2 주제(T2)이다. 알려진 인터페이스들을 통해, 접속 디바이스들은 브로커(10)에 의해 유지되는 주제들을 찾아낼 수 있고, 원하는 바에 따라 주제들에 가입(join) 및 탈퇴(leave)할 수 있다. 또한 접속 디바이스들은 브로커(10)에 의해 유지되는 적절한 허가 방침(permission policy)에 대한 상기 접속 디바이스들의 상태에 의존하여 주제들을 생성할 수도 있다. 구독자(S1)는 주제(T1) 및 주제(T2) 모두에 대해 구독하게 된다. 브로커(10)는 이들 주제들(16)에 대한 구독자(14)를 등록한 것이라 할 수 있다. 이와는 대조적으로, 구독자(S2)는 단지 주제(T1)에 대해서만 구독자이다. 일반적으로, 주제들(16)은 "게임들"과 같은 명칭 - 이는 더 서술적(descriptive)임 - 을 가질 것이며, 주제들(14)의 존재에 대해 쿼리(query)하고 있는 디바이스는 또한 주제(14)에 관한 정보를 찾아낼 수 있다.
도 1은 발행/구독 시스템의 매우 간단한 실시예를 보여주는데, 실제로, 브로커(10)는 매우 많은 주제들을 그것들의 구독자들과 함께 저장할 것이다. 각각의 구독자는 브로커(10)에 의해 저장되고, 주소를 갖는다. 이 주소(예를 들어, IP 주소)는 관련 구독 디바이스에 대한 경로 설정(routing)을 정의한다.
도 1에는 또한 메시지(18)가 도시되는데, 이 메시지(18)는 그것과 관련되는 주제에 관한 정보를 포함한다. 도 1의 간단한 시스템에서, 브로커(10)로 송신되는 각각의 메시지(18)는 헤더와 바디를 포함할 것이다. 상기 헤더는 주제 명칭(예를 들어, T1)을 포함하거나 주제 명칭으로 구성될 것이고, 상기 바디는 메시지(18)의 텍스트를 포함할 것이다. 브로커(10)는 관련 구독자들(14)에 대해 메시지(18)의 경로를 설정한다. 이 경우, 메시지(18)는 주제(T1)와 관련이 있으므로, 브로커(10)는 메시지(18)를 두 개의 구독자들(S1 및 S2)로 경로를 설정한다. 비록 브로커(10)에 대한 관리상의 접근(administrative access)을 통해 조정(adapt)될 수 있지만, 일반적으로, 브로커(10)는 메시지(18)의 사본(copy)을 유지하지 않는다. 예를 들어, 브로커(10)는 각각의 주제(16)에 관해 마지막 메시지(18)를 저장하여, 주제(16)에 대한 어떤 신규 구독자에게 그 메시지를 송신하도록 할 수 있다.
도 2는 신규 구독자(S3)가 주제(T1)를 구독한 후, 발행/구독 시스템에 어떤 상황이 발생했는지를 보여준다. 신규 구독자(14)는, 브로커(10)에게 적절한 관리 메시지(administration message)를 송신함으로써, 그들이 주제(T1)를 구독하기를 원한다는 것을 브로커(10)에 등록할 것이다. 도 2에서 볼 수 있는 바와 같이, 브로커(10)는 주제(T1)에 대해 그것들의 리스트(16)에 신규 구독자를 등록했다. 발행자(12)로부터의 신규 메시지(18')가 수신되는 경우, 브로커(10)는 메시지(18')를 그 주제에 대한 현재의 모든 구독자들(구독자들 S1, S2 및 S3)에게 배포한다. 브로커(10)에 의해 유지되는 리스트들(16)은 구독자들이 특정 주제들(14)에 가입 및 탈퇴함에 따라 끊임없이 변하고 있다.
그러나, 표준 메시징 브로커의 운영은 도 3의 흐름도에 따라 개선될 수 있다. 이는 표준 구성에서 신규 구독자(14)가 그들이 주제(16)를 구독하자마자 메시지들(18)을 잘 수신하기 시작할 수 있고, 결국, 신규 구독자(14)가 시퀀스의 더 이른 부분(earlier part)을 형성하는 메시지들(18)을 수신하지 않을 경우, 그들이 상기 시퀀스의 일부를 형성하는 메시지들(18)을 수신하는 결과가 될 수 있기 때문이다. 이러한 더 늦은 메시지 내용(later message content)은 생각컨대 더 나중의(latter) 구독자(14)에게 혼란을 주거나 의미없게 될 수 있다. 이러한 상황을 처리하기 위해, 도 1 및 2의 메시지 브로커(10)는 도 3의 프로세스 흐름도에 따라 운영하도록 구성된다.
발행/구독 메시지 브로커를 운영하는 방법은, 첫 번째로, 발행자(12)로부터 주제(16)에 관한 메시지(18)를 수신하는 단계(S1), 두 번째로, 메시지(18)를 메시지들의 시퀀스의 시작으로서 식별하는 단계(S2)를 포함한다. 브로커(10)는 수신된 메시지(18)를 메시지들의 신규 시퀀스의 시작으로서 식별해야만 한다. 이것을 달성하기 위한 한 가지 스킴은 수신된 메시지(18)의 내용을 조사하여 메시지(18)의 내용 내에서 마커(이는 명료하거나 암시적일 수 있음)를 찾는 것이다. 상기 마커는 상기 메시지(18)가 신규 시퀀스의 시작임을 나타낸다.
예를 들어, 메시지(18)의 원 발행자(12)는 미리 정해진 규약에 따라 그 메시지의 바디 내에 플래그(flag)를 포함시킬 수 있다. 상기 플래그는 메시지(18)가 메시지들의 신규 시퀀스의 시작임을 메시지 브로커(10)에게 나타낸다. 만약 플래그가 없다면, 메시지 브로커(10)는 메시지(18)가 메시지들의 시퀀스의 처음이라는 것을 메시지의 내용으로부터(하나 또는 그 이상의 프로세싱 알고리즘을 통해) 결정하도록 구성될 수 있다. 예를 들어, 만약 주제(16)가 하나 또는 그 이상의 체스 게임들의 움직임들을 따라 유지된다면, 예를 들어, "1.e4", 또는 이와 유사한 어떤 것의 존재는 신규 시퀀스가 시작했음을 나타낼 것이다.
상기 메시지를 신규 시퀀스의 시작으로서 식별하는 것은 메시지(18)의 내용 이외의 어떤 것에 기초할 수 있다. 예를 들어, 메시지 브로커(10)는 메시지들(18)의 신규 시퀀스의 소스로서 특정 발행자(12)를 식별하도록 구성될 수 있고, 이 경우, 단계 S2에서 메시지(18)의 식별은 발행자(12)의 위치에 기초한다. 브로커(10)에 의해 실행되는 다른 가능한 스킴들은, 절대 시간(그 날의 제1 메시지)으로서, 또는 예를 들어 이전의 메시지가 송신된 시간과 관련되는 상대 시간과 같이, 그 메시지가 송신된 시간과 관련될 수 있다.
메시지(18)를 수신한 후, 단계 S3에서, 메시지 브로커(10)는 메시지(18)를 주제(16)에 대한 (하나 또는 그 이상의) 기존 구독자들(14)에게 송신하도록 준비된다. 이 시점에서, 브로커(10)는 마치 정확히 그것이 보통의(ordinary) 메시지(18)인 것처럼 그 수신된 메시지를 처리하고 있고, 그 메시지(18)를 각각의 주제(16)와 함께 등록된 현재의 모든 구독자들(14)에게 송신한다. 실제로 만약 메시지들(18)의 시퀀스가 시작된 후 어떠한 신규 구독자들(14)도 주제(16)를 구독하지 않는다면, 메시지 브로커(10)의 운영에 어떠한 변화도 일어나지 않는다.
그러나, 단계 S4에서, 메시지 브로커(10)는 주제(16)에 대한 신규 구독자(14)를 등록한다. 신규 구독자(14)가 주제(16)에 추가되면, 단계 S5에서, 발행자(12)로부터 주제(16)에 관한 추가 메시지(18)를 수신할 경우, 메시지 브로커(10)는 추가 메시지(18)를 주제(16)에 대한 기존 구독자들(14)에게는 송신하지만, 주제(16)에 대한 등록된 신규 구독자(14)에게는 송신하지 않도록 준비된다. 사실상, 신규 시퀀스가 시작된 후 주제(16)에 가입한 구독자(14)는 주제(16)에 관한 추가 메시지들(18)을 수신하지 않을 것이다. 단지 기존 구독자들(14)만이 신규 메시지들(18)을 수신할 것이다.
또한 브로커(10)는 또 다른 추가 메시지들(18)을 메시지들의 시퀀스의 끝으로서 식별하기 위해, 그리고 주제(16)에 대한 기존 구독자들(14), 및 주제(16)에 대한 등록된 신규 구독자(14)에게 주제(16)에 관한 모든 장래 메시지들(18)을 전송하기 위해, 주제(16)에 관한 또 다른 추가 메시지(18)를 수신하도록 준비된다. 브로커(10)는 그 시퀀스를 종료(close)하고 운영의 노멀 모드로 복귀하기 위한 절차를 실행하고 있다. 하나의 시퀀스에 대해 상기 종료 메시지가 검출된 후, 그 시퀀스가 계속 진행중(ongoing)인 동안 주제(16)에 대해 등록된 신규 구독자(들)(14)은 이제 주제(16)에 대해 발행되는 모든 신규 메시지들(18)을 수신할 것이다.
브로커(10)가 기존 구독자들 및 신규 구독자들의 구분을 구현하도록 구성될 수 있는 한 가지 방법은, 그 시퀀스를 유지하기 위해 백그라운드로 신규 소주제를 생성하는 것이다. 발행자들(12) 및 구독자들(14)은 소주제의 존재를 알지 못하지만, 메시지들의 시퀀스의 시작으로서 메시지(18)를 식별하는 단계(단계 S2) 이후, 브로커(10)는 메시지들의 시퀀스에 대응하는 신규 주제를 생성하고 또한 그 신규 주제에 대해 하나 또는 그 이상의 기존 구독자들(14)이 구독하도록 준비된다.
상술한 사항들이 어떻게 작용하는지에 관한 개요는 이하와 같이 도 4를 참조하여 기술된다. 도 4에서, 구독자(S1)는 명칭(name) "게임들"을 갖는 주제(16)를 구독했다. 브로커(10)는 주제(16)에 대한 구독자(S1)의 구독을 등록한다. 그런 다음, 발행자(P1)는 주제 "게임들"에 대해 게임1(Game1)을 위한 제1 메시지(18)를 발행한다. 브로커(10)는 발행된 메시지(18)를 수신하고 이 메시지(18)를 메시지들(18)의 신규 시퀀스의 시작으로서 식별한다. 브로커(10)는 실제로 소주제(20)를 생성할 것이고, "게임들/게임1(games/game1)" 이라고 제목이 붙여진 주제(20)에 관한 메시지(18)를 발행할 것이다. 발행된 메시지(18)를 송신하기 전에, 브로커(10)는 소주제(20)에 대해 모든 기존 구독자들(14)(즉, 구독자 S1)에 대한 구독(subscription)을 생성한다. 구독자(S1)는 이제 주제 "게임들" 및 소주제 "게임들/게임1"을 구독하게 되고, 게임1에 대한 제1의 발행된 메시지(18)를 수신한다.
도 5는 신규 구독자(S2)가 주제 "게임들"을 구독할 경우 발생할 수 있는 상황을 보여준다. 브로커(10)는, 주제 "게임들"에 대한 구독자(S2)의 구독을 등록하지만, 신규 구독자(S2)가 메시지 브로커(10)에 의해 등록되었을 때 이미 존재하고 있었고 실행중이었던 소주제(20)에 대해서는 구독자(S2)의 구독을 등록하지 않는다. 발행자(P1)가 주제 "게임들"에 대해 게임1을 위한 추가 메시지(18)를 발행하는 경우, 브로커(10)는 발행된 메시지(10)를 수신하고 그것을 주제 "게임들/게임1"에 대해 발행한다. 기존 구독자들(S1)은 신규 메시지(18)를 수신하지만, 신규 구독자(S2)는 신규 메시지(18)를 수신하지 않는다. 구독자(S1)는 게임1을 위한 제2 메시지를 수신하지만, 구독자(S2)는 게임1을 위한 제2 메시지를 수신하지 않는다.
메시지들의 시퀀스들의 네스팅(nesting)이 발생할 수 있다. 예를 들어, 신규 소주제(20)로서 제1 시퀀스가 계속 진행중인 동안 메시지들의 신규 시퀀스들이 시작되는 것이 가능하다. 이것은 도 6에 도시된다. 이 예에서, 발행자(P2)는 주제 "게임들"에 대해 게임2를 위한 제1 메시지(18)를 발행한다. 브로커(10)는 발행된 메시지(18)를 수신하고 메시지(18)를 메시지들(18)의 신규 시퀀스의 시작으로서 식별하고, 그에 따라 제2 소주제(20)를 생성한다. 브로커(10)는 실제로 주제 "게임들/게임2"에 관한 메시지(18)를 발행할 것이다. 발행된 메시지(18)를 송신하기 전에, 브로커는 소주제 "게임들/게임2"에 대해 모든 기존 구독자들(즉, 구독자 S1 및 구독자 S2)을 위한 구독을 생성한다. 구독자(S1)는 이제 주제 "게임들" 및 소주제들 "게임들/게임1" 및 "게임들/게임2"을 구독하게 되고, 구독자(S2)는 이제 주제 "게임들" 및 소주제 "게임들/게임2"을 구독하게 된다. 구독자(S1) 및 구독자(S2) 모두는 게임2를 위한 제1 메시지(18)를 수신한다.
소주제(20)의 이름이 결정될 수 있는 방법에는 여러 가지가 있다. 예를 들어, 그것은 브로커(10)에 관해 관리가능(administerable)할 수 있고, 또는 신규 시퀀스의 시작을 표시하는 메시지(18)의 타임스탬프(timestamp)에 기초할 수 있다(사실, 소주제(20)의 명칭은 사람이 판독가능할 필요가 없으므로, 그 명칭은 문자들의 배열을 포함할 수 있다).
이러한 것이 구현되고 확장될 수 있는 방법에는 여러 가지가 있다. 모든 시나리오들은 하나의 주제 기반(per topic basis)이고, 다수의 주제들에 관한 메시지 시퀀스들은 허용되지 않는다(어떤 클라이언트들이 알고 있는 한, 다른 주제들은 명백하게 브로커에 의해 사용된다).
메시지들의 시퀀스의 시작과 끝을 결정함에 있어서는 많은 다른 방법들이 있다. 예를 들어, 메시지 시퀀스들을 발행자 클라이언트 ID로 분할(split)하는 것이 가능하다. 이 경우, 발행자는 메시지 시퀀스들을 알지 못하고, 현재의 발행자 구현들에 있어서는 어떠한 변화도 요구되지 않는다. 또 다른 방법은 메시지 시퀀스의 시작과 끝을 특정하기 위해, 발행자들이 브로커(10)에 대해 API 콜(call)을 하도록 허용하게 될 수 있다(발행자는 한 번에 하나의 메시지 시퀀스들을 관리할 수 있다). 제3의 대안은 발행자들이 메시지 헤더에서 시퀀스 ID를 특정하도록 허용하는 것이다. 여기서는, 발행자들이 다수의 메시지 시퀀스들을 한 번에 관리하도록 허용하며, 다수의 메시지 시퀀스들은 인터리브(interleave)될 수 있다. 충돌을 피하기 위해 고유의 시퀀스 ID들을 획득하기 위한 방법이 상기 브로커로부터 요구될 수 있음을 주목하자.
주제들에서 소주제들로 구독자를 재지정할 때를 결정하는 것은 복수의 방침들에 기초할 수 있다. 예를 들어, 구독자들이 상기 소주제들이 생성되는 (메인(main)) 주제(topic)로부터 탈퇴(unsubscribe)할 때까지, 구독자는 계속해서 생성된 모든 소주제들을 구독하게 된다. 구독자는 어떤 재지정(redirection)도 알지 못하고, 하나의 알려진 구독을 통해, 즉, 현재의 구독자 구현에 대한 어떠한 변화도 없이, 실제로 다수의 주제들을 구독한다. 이와는 다르게, 구독자는 단지 그 다음으로 신규로 생성된 소주제만을 구독하게 되고(그 다음으로 신규로 생성된 소주제에서 그것들의 주 구독이 제거됨을 나타냄), 또 구독자는 어떤 재지정도 알지 못한다. 즉 현재의 구독자 구현에 대한 어떠한 변화도 없다. 구독자는 API 구독 콜의 일부로서 상기의 것들 중 하나를 선택할 수 있고, 이 경우, 구독자는 주제 재지정(topic redirection)이 발생하지만 그것들이 재지정되는 실제 주제들에 관해서는 그렇지 않음을 안다.
소주제들(20)을 사용하는 발명의 실시예들에서, 소주제(20)가 생성되면 기본 주제(16)로부터 구독자(14)가 탈퇴하는 것이 가능하다. 이것은 구독자들(14)에게 유용한 특징을 제공한다. 예를 들어, 메시지 브로커(10)의 운영에 대한 확장은 구독자(14)가 이 특징을 알도록 하게 될 것이고, 구독자가 메시지 브로커(10)를 유효하게 지시하도록 허용한다 - "기본 주제에 관한 제1 트랜잭션(transaction)을 구독하라. 나는 장래의 트랜잭션들에 관해서는 알기를 원치 않고, 다만 함께 오는 제1 트랜잭션만을 알기를 원한다". 이는 신규 소주제(20)가 생성되고 그것들이 자동적으로 기본 주제를 구독하게 되자마자, 기본 주제(16)에 대한 그것들의 구독을 제거하기 위한, 브로커(10)에 대한 명령일 것이다.
기존 발행/구독 시스템들에 있어서, 구독자가 접속이 끊어진(disconnect) 후의 그것들의 실제 구독들을 유지하기 위해, 구독들이 지속가능(durable)해야만 한다. 지속가능하지 않은(non-durable) 구독자 재접속(subscriber reconnecting)은 어떤 이전의 소주제들로 재지정되지 않을 것이다. 구독자가 메인 주제(main topic)로부터 탈퇴할 경우, 모든 연관된 소주제 구독들은 또한 제거되어야 한다. 이들 연관성들은 브로커에 의해 유지되어야 함을 주목하자.
주요 구성의 다른 확장들이 가능하다. 예를 들어, 시스템은 소주제로 경로 재설정되어야 하는 구독자들의 수를 특정할 수 있도록 준비될 수 있다. 하나(또는 n) 및 단지 하나(또는 n)의 구독자(들)이 메시지들의 주어진 시퀀스를 수신하는 것을 발행자가 특정하는 것은 유용할 수 있다.

Claims (19)

  1. 발행/구독 메시지 브로커(publish/subscriber message broker)를 운영하는 방법에 있어서,
    발행자(publisher)로부터 하나의 주제(a topic)에 관한 메시지를 수신하는 단계;
    상기 메시지를 메시지들의 시퀀스의 시작으로서 식별하는 단계;
    상기 메시지를 상기 주제에 대한 하나 또는 그 이상의 기존 구독자들(subscribers)에게 송신하는 단계; 및
    상기 주제에 대한 새로운 구독자 등록과, 발행자로부터 상기 주제에 관해 수신되고 있는 상기 시퀀스와 연관된 추가 메시지에 응답하여, 상기 추가 메시지를 상기 주제에 대한 상기 하나 또는 그 이상의 기존 구독자들에게는 송신하지만, 상기 주제에 대한 상기 등록된 신규 구독자에게는 송신하지 않는 단계를 포함하는
    발행/구독 메시지 브로커 운영 방법.
  2. 청구항 1에 있어서, 상기 메시지를 메시지들의 시퀀스의 시작으로서 식별하는 단계는,
    상기 수신된 메시지의 내용에 접근하는 단계, 및
    상기 메시지를 상기 접근된 메시지의 내용에 따라 메시지들의 시퀀스의 시작으로서 식별하는 단계를 포함하는
    발행/구독 메시지 브로커 운영 방법.
  3. 청구항 1 또는 2에 있어서, 상기 발행/구독 메시지 브로커 운영 방법은,
    상기 주제에 관한 또 다른 추가 메시지(yet further message)를 수신하는 단계,
    상기 또 다른 추가 메시지를 상기 메시지들의 시퀀스의 끝으로서 식별하는 단계, 및
    상기 주제에 대한 상기 하나 또는 그 이상의 기존 구독자들에게, 그리고 상기 주제에 대해 등록된 신규 구독자에게, 상기 시퀀스와 연관되지 않은 주제에 관한 각각의 추가 메시지를 송신하는 단계를 더 포함하는
    발행/구독 메시지 브로커 운영 방법.
  4. 청구항 1 내지 3 중 어느 한 항에 있어서, 상기 발행/구독 메시지 브로커 운영 방법은,
    상기 시퀀스와 연관되지 않은 메시지를 수신하는 것에 응답하여, 상기 시퀀스와 연관되지 않은 메시지와 연관된 신규 주제를 생성하는 단계, 및
    상기 신규 주제에 대해 상기 신규 구독자가 구독하도록 하는 단계를 더 포함하는
    발행/구독 메시지 브로커 운영 방법.
  5. 청구항 1 내지 4 중 어느 한 항에 있어서, 상기 발행/구독 메시지 브로커 운영 방법은,
    상기 메시지를 메시지들의 시퀀스의 시작으로서 식별하는 단계 이후, 상기 메시지들의 시퀀스에 대응하는 신규 주제를 생성하는 단계, 및
    상기 신규 주제에 대해 상기 하나 또는 그 이상의 기존 구독자들이 구독하도록 하는 단계를 더 포함하는
    발행/구독 메시지 브로커 운영 방법.
  6. 청구항 4 또는 5에 있어서, 상기 발행/구독 메시지 브로커 운영 방법은,
    상기 주제에 관해 수신된 메시지에 대해, 상기 메시지를 상기 주제에 관해 발행할 것인지 또는 상기 신규 주제에 관해 발행할 것인지의 여부를 결정하는 단계를 더 포함하는
    발행/구독 메시지 브로커 운영 방법.
  7. 발행/구독 메시지 브로커(publush/subscribe message broker)에 있어서,
    발행자(publisher)로부터 하나의 주제(a topic)에 관한 메시지를 수신하고;
    상기 메시지를 메시지들의 시퀀스의 시작으로서 식별하고;
    상기 메시지를 상기 주제에 대한 하나 또는 그 이상의 기존 구독자들(subscribers)에게 송신하고;
    상기 주제에 대한 신규 구독자 등록에 응답하고 상기 시퀀스와 연관된 추가 메시지를 상기 발행자로부터 상기 주제에 관해 수신하는 것에 응답하여, 상기 추가 메시지를 상기 주제에 대한 상기 하나 또는 그 이상의 기존 구독자들에게는 송신하지만, 상기 주제에 대한 상기 등록된 신규 구독자에게는 송신하지 않도록 준비(arrange)되는
    발행/구독 메시지 브로커.
  8. 청구항 7에 있어서, 상기 메시지 브로커는,
    상기 메시지를 메시지들의 시퀀스의 시작으로서 식별할 경우,
    상기 수신된 메시지의 내용에 접근하고,
    상기 메시지를 상기 접근된 메시지의 내용에 따라 메시지들의 시퀀스의 시작으로서 식별하도록, 준비되는
    발행/구독 메시지 브로커.
  9. 청구항 7 또는 8에 있어서, 상기 메시지 브로커는,
    상기 주제에 관한 또 다른 추가 메시지(yet further message)를 수신하고,
    상기 또 다른 추가 메시지를 상기 메시지들의 시퀀스의 끝으로서 식별하고,
    상기 주제에 대한 상기 하나 또는 그 이상의 기존 구독자들에 대해, 그리고 상기 주제에 대한 상기 등록된 신규 구독자에 대해, 상기 주제에 관한 상기 시퀀스와 연관되지 않은 각각의 추가 메시지를 송신하도록 더 준비되는
    발행/구독 메시지 브로커.
  10. 청구항 7 내지 9 중 어느 한 항에 있어서, 상기 메시지 브로커는,
    상기 시퀀스와 연관되지 않은 메시지를 수신하는 것에 응답하여, 상기 시퀀스와 연관되지 않은 메시지와 연관된 신규 주제를 생성하고,
    상기 신규 주제에 대해 상기 신규 구독자가 구독하도록 더 준비되는
    발행/구독 메시지 브로커.
  11. 청구항 7 내지 10 중 어느 한 항에 있어서, 상기 메시지 브로커는,
    상기 메시지를 메시지들의 시퀀스의 시작으로서 식별하는 것 이후, 상기 메시지들의 시퀀스에 대응하는 신규 주제를 생성하고,
    상기 신규 주제에 대해 상기 하나 또는 그 이상의 기존 구독자들이 구독하도록 준비되는
    발행/구독 메시지 브로커.
  12. 청구항 10 또는 11에 있어서, 상기 메시지 브로커는,
    상기 주제에 관해 수신된 메시지에 대해, 상기 메시지를 상기 주제에 관해 발행할 것인지 또는 상기 신규 주제에 관해 발행할 것인지의 여부를 결정하도록 더 준비되는
    발행/구독 메시지 브로커.
  13. 발행/구독 메시지 브로커(publish/subscribe message broker)를 운영하기 위한 컴퓨터 판독가능 매체 상의 컴퓨터 프로그램 제품에 있어서,
    발행자(publisher)로부터 하나의 주제(a topic)에 관한 메시지를 수신하고;
    상기 메시지를 메시지들의 시퀀스의 시작으로서 식별하고;
    상기 메시지를 상기 주제에 대한 하나 또는 그 이상의 기존 구독자들(subscribers)에게 송신하고;
    상기 주제에 대한 신규 구독자 등록과, 발행자로부터 상기 주제에 관해 수신되고 있는 상기 시퀀스와 연관된 추가 메시지에 응답하여, 상기 추가 메시지를 상기 주제에 대한 상기 하나 또는 그 이상의 기존 구독자들에게는 송신하지만, 상기 주제에 관한 상기 등록된 신규 구독자에게는 송신하지 않기 위한, 명령들을 포함하는
    컴퓨터 프로그램 제품.
  14. 청구항 13에 있어서, 상기 메시지를 메시지들의 시퀀스의 시작으로서 식별하기 위한 명령들은,
    상기 수신된 메시지의 내용에 접근하고,
    상기 메시지를 상기 접근된 메시지의 내용에 따라 메시지들의 시퀀스의 시작으로서 식별하기 위한, 명령들을 포함하는
    컴퓨터 프로그램 제품.
  15. 청구항 13 또는 14에 있어서, 상기 컴퓨터 프로그램 제품은,
    상기 주제에 관한 또 다른 추가 메시지(yet further message)를 수신하고,
    상기 또 다른 추가 메시지를 상기 메시지들의 시퀀스의 끝으로서 식별하고,
    상기 주제에 관해 상기 시퀀스와 연관되지 않은 각각의 추가 메시지를 상기 주제에 대한 상기 하나 또는 그 이상의 기존 구독자들에게, 그리고 상기 주제에 대한 상기 등록된 신규 구독자에게 송신하기 위한, 명령들을 더 포함하는
    컴퓨터 프로그램 제품.
  16. 청구항 13 내지 15 중 어느 한 항에 있어서, 상기 컴퓨터 프로그램 제품은,
    상기 시퀀스와 연관되지 않은 메시지를 수신하는 것에 응답하여, 상기 시퀀스와 연관되지 않은 메시지와 연관된 신규 주제를 생성하고,
    상기 신규 주제에 대해 상기 신규 구독자가 구독하도록 하기 위한, 명령들을 더 포함하는
    컴퓨터 프로그램 제품.
  17. 청구항 13 내지 16 중 어느 한 항에 있어서, 상기 컴퓨터 프로그램 제품은,
    상기 메시지를 메시지들의 시퀀스의 시작으로서 식별하는 것 이후, 상기 메시지들의 시퀀스에 대응하는 신규 주제를 생성하고,
    상기 신규 주제에 대해 상기 하나 또는 그 이상의 기존 구독자들이 구독하도록 하기 위한, 명령들을 더 포함하는
    컴퓨터 프로그램 제품.
  18. 청구항 16 또는 17에 있어서, 상기 컴퓨터 프로그램 제품은,
    상기 주제에 관해 수신된 메시지에 대해, 상기 메시지를 상기 주제에 관해 발행할 것인지 또는 상기 신규 주제에 대해 발행할 것인지의 여부를 결정하기 위한, 명령들을 더 포함하는
    컴퓨터 프로그램 제품.
  19. 발행/구독 메시지 브로커(publish/subscribe message broker)와 함께 사용하기 위한 장치에 있어서,
    발행자(publisher)로부터 하나의 주제에 관한 메시지를 수신하기 위한 수신 컴포넌트;
    상기 메시지를 메시지들의 시퀀스의 시작으로 식별하기 위한 식별 컴포넌트;
    상기 메시지를 상기 주제에 대한 하나 또는 그 이상의 기존 구독자들(subscribers)에게 송신하기 위한 제1 송신기;
    상기 주제에 대한 신규 구독자 등록에 응답하고 상기 시퀀스와 연관된 추가 메시지의 발행자로부터의 상기 주제에 관한 수신에 응답하여, 상기 주제에 대한 상기 하나 또는 그 이상의 기존 구독자들에게는 상기 추가 메시지를 송신하지만 상기 주제에 대한 상기 등록된 신규 구독자에게는 송신하지 않기 위한 제2 송신기를 포함하는
    장치.
KR1020107022202A 2008-03-05 2009-02-25 발행/구독 메시지 브로커 KR20100126786A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP08152331 2008-03-05
EP08152331.8 2008-03-05

Publications (1)

Publication Number Publication Date
KR20100126786A true KR20100126786A (ko) 2010-12-02

Family

ID=40640336

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107022202A KR20100126786A (ko) 2008-03-05 2009-02-25 발행/구독 메시지 브로커

Country Status (6)

Country Link
US (1) US8140630B2 (ko)
EP (1) EP2250790B1 (ko)
JP (1) JP5270697B2 (ko)
KR (1) KR20100126786A (ko)
CN (1) CN101960825B (ko)
WO (1) WO2009109497A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190056185A (ko) * 2017-11-16 2019-05-24 경북대학교 산학협력단 분산된 게시-구독 기법을 이용한 CoAP 기반 사물 인터넷 시스템의 작동 방법
KR20220087759A (ko) 2020-12-18 2022-06-27 주식회사 비카누스 메시지 브로커 기반 데이터 처리 시스템

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7707178B2 (en) 2005-11-28 2010-04-27 Commvault Systems, Inc. Systems and methods for classifying and transferring information in a storage network
US20200257596A1 (en) 2005-12-19 2020-08-13 Commvault Systems, Inc. Systems and methods of unified reconstruction in storage systems
US7882077B2 (en) 2006-10-17 2011-02-01 Commvault Systems, Inc. Method and system for offline indexing of content and classifying stored data
US8370442B2 (en) 2008-08-29 2013-02-05 Commvault Systems, Inc. Method and system for leveraging identified changes to a mail server
US8977673B2 (en) 2008-08-29 2015-03-10 Red Hat, Inc. Information on availability of services provided by publish-subscribe service
US9077750B2 (en) * 2009-02-27 2015-07-07 Red Hat, Inc. Using forums as a message transport in an enterprise service bus
KR101198686B1 (ko) * 2009-11-11 2012-11-12 김현수 구독자 기반의 주제별 정보중개방법 및 그 시스템
US9026567B2 (en) 2010-05-14 2015-05-05 2236008 Ontario Inc. Publish-subscribe system
US8874667B2 (en) * 2010-05-18 2014-10-28 International Business Machines Corporation Linking topics in a publish/subscribe messaging environment
US9367595B1 (en) * 2010-06-04 2016-06-14 Software AG USA Inc. Method and system for visual wiring tool to interconnect apps
US8505033B2 (en) * 2010-08-26 2013-08-06 Verizon Patent And Licensing Inc. Universal registration in broker-based messaging systems and methods
US8793322B2 (en) * 2011-02-20 2014-07-29 International Business Machines Corporation Failure-controlled message publication and feedback in a publish/subscribe messaging environment
US8843580B2 (en) 2011-02-20 2014-09-23 International Business Machines Corporation Criteria-based message publication control and feedback in a publish/subscribe messaging environment
US8959162B2 (en) 2011-02-23 2015-02-17 International Business Machines Corporation Publisher-based message data cashing in a publish-subscription environment
US8874666B2 (en) 2011-02-23 2014-10-28 International Business Machines Corporation Publisher-assisted, broker-based caching in a publish-subscription environment
US8489694B2 (en) 2011-02-24 2013-07-16 International Business Machines Corporation Peer-to-peer collaboration of publishers in a publish-subscription environment
US8725814B2 (en) 2011-02-24 2014-05-13 International Business Machines Corporation Broker facilitated peer-to-peer publisher collaboration in a publish-subscription environment
US8719264B2 (en) 2011-03-31 2014-05-06 Commvault Systems, Inc. Creating secondary copies of data based on searches for content
US8935330B2 (en) 2011-05-11 2015-01-13 International Business Machines Corporation Redirecting messages in a publish/subscribe messaging system
WO2012156851A1 (en) 2011-05-18 2012-11-22 International Business Machines Corporation Managing a message subscription in a publish/subscribe messaging system
US8473419B1 (en) 2011-09-26 2013-06-25 Google Inc. Dependency resolution in publish/subscribe
US8990301B2 (en) * 2012-08-22 2015-03-24 International Business Machines Corporation Broker designation and selection in a publish-subscription environment
US9888086B1 (en) * 2013-03-15 2018-02-06 Google Llc Providing association recommendations to users
CN104079614B (zh) 2013-03-29 2017-09-12 国际商业机器公司 用于分布式发布订阅系统消息有序获取的方法和系统
US10491687B2 (en) 2013-05-20 2019-11-26 Packsize Llc Method and system for flexible node composition on local or distributed computer systems
WO2014194452A1 (zh) * 2013-06-03 2014-12-11 华为技术有限公司 消息发布与订阅的方法及装置
GB2520514A (en) 2013-11-22 2015-05-27 Ibm Message delivery in a messaging system
US9544356B2 (en) 2014-01-14 2017-01-10 International Business Machines Corporation Message switch file sharing
CN105338014A (zh) * 2014-06-26 2016-02-17 青岛海尔智能家电科技有限公司 一种基于订阅机制的通信方法和主题服务器
US10554709B2 (en) * 2014-07-08 2020-02-04 Microsoft Technology Licensing, Llc Stream processing utilizing virtual processing agents
GB2532490B (en) * 2014-11-21 2017-02-22 Ibm Publish/subscribe messaging using message structure
US10225219B2 (en) * 2016-02-22 2019-03-05 International Business Machines Corporation Message delivery in a message system
US10540516B2 (en) 2016-10-13 2020-01-21 Commvault Systems, Inc. Data protection within an unsecured storage environment
JP6584440B2 (ja) * 2017-01-27 2019-10-02 キヤノン株式会社 情報処理システム、情報処理ステムの制御方法およびそのプログラム。
US10439963B2 (en) * 2017-03-09 2019-10-08 Citrix Systems, Inc. Increasing capacity in a topic-subscription messaging system
JP7074130B2 (ja) 2017-04-12 2022-05-24 ソニーグループ株式会社 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム
US10984041B2 (en) 2017-05-11 2021-04-20 Commvault Systems, Inc. Natural language processing integrated with database and data storage management
WO2018223229A1 (en) * 2017-06-05 2018-12-13 2689090 Canada Inc. System and method for displaying an asset of an interactive electronic technical publication synchronously in a plurality of extended reality display devices
KR101996598B1 (ko) * 2017-11-20 2019-07-04 광운대학교 산학협력단 차등적인 IoT 서비스를 제공하는 우선순위 기반의 MQTT 시스템 및 방법
KR102036154B1 (ko) * 2017-11-30 2019-10-24 한림대학교 산학협력단 IoT 서비스를 위한 메시지 관리 장치 및 방법
US20190251204A1 (en) 2018-02-14 2019-08-15 Commvault Systems, Inc. Targeted search of backup data using calendar event data
US11159469B2 (en) 2018-09-12 2021-10-26 Commvault Systems, Inc. Using machine learning to modify presentation of mailbox objects
US10917458B2 (en) 2018-11-12 2021-02-09 Pivotal Software, Inc. Message broker configuration
US11201937B2 (en) 2018-11-22 2021-12-14 Jeffrey Alan Carley Message broker customization with user administered policy functions
KR102200590B1 (ko) * 2019-10-15 2021-01-08 에이치투오시스템테크놀로지(주) 엠큐티티 프로토콜 기반 긴급 메시지 처리 장치 및 방법
WO2021201870A1 (en) * 2020-04-02 2021-10-07 Hewlett-Packard Development Company, L.P. Configuring a publisher device of a publish-subscribe system
US11494417B2 (en) 2020-08-07 2022-11-08 Commvault Systems, Inc. Automated email classification in an information management system
US11354161B2 (en) 2020-08-10 2022-06-07 Bank Of America Corporation Controlling memory utilization by a topic in a publish-subscribe environment
US11340828B2 (en) 2020-08-10 2022-05-24 Bank Of America Corporation Restoring messages to a memory utilized by a topic in a publish-subscribe environment
US11392433B1 (en) 2021-01-26 2022-07-19 Red Hat, Inc. Generation of asynchronous application programming interface specifications for messaging topics
US11722451B2 (en) * 2021-12-07 2023-08-08 Dell Products L.P. Distributing event messages from a first service to additional services using a message store
JP7284908B1 (ja) 2022-06-29 2023-06-01 17Live株式会社 データ処理方法、システム及びコンピュータプログラム
CN115766318A (zh) * 2022-10-31 2023-03-07 海尔优家智能科技(北京)有限公司 组件间的消息传递方法和装置、存储介质及电子装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6425012B1 (en) 1998-12-28 2002-07-23 Koninklijke Philips Electronics N.V. System creating chat network based on a time of each chat access request
US6651086B1 (en) 2000-02-22 2003-11-18 Yahoo! Inc. Systems and methods for matching participants to a conversation
US7502825B2 (en) 2001-02-21 2009-03-10 Adobe Systems Incorporated Populating online forums
US7406537B2 (en) * 2002-11-26 2008-07-29 Progress Software Corporation Dynamic subscription and message routing on a topic between publishing nodes and subscribing nodes
JP2004102547A (ja) 2002-09-06 2004-04-02 Nec Corp コミュニケーションシステム、コミュニケーションサーバ、及び、コミュニケーション方法
GB0426846D0 (en) * 2004-12-08 2005-01-12 Ibm Method and system for administration of a broker-based publish/subscribe messaging system
EP1851662A2 (en) * 2005-02-24 2007-11-07 Xeround Systems Ltd. Method and apparatus for distributed data management in a switching network
US7684815B2 (en) * 2005-04-21 2010-03-23 Microsoft Corporation Implicit group formation around feed content for mobile devices
GB0609997D0 (en) * 2006-05-19 2006-06-28 Ibm Method, apparatus and computer program for controlling retention of data messages
GB0613195D0 (en) * 2006-07-01 2006-08-09 Ibm Methods, apparatus and computer programs for managing persistence in a messaging network
JP2008124977A (ja) * 2006-11-15 2008-05-29 Hitachi Ltd メッセージ配送方法、装置及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190056185A (ko) * 2017-11-16 2019-05-24 경북대학교 산학협력단 분산된 게시-구독 기법을 이용한 CoAP 기반 사물 인터넷 시스템의 작동 방법
KR20220087759A (ko) 2020-12-18 2022-06-27 주식회사 비카누스 메시지 브로커 기반 데이터 처리 시스템

Also Published As

Publication number Publication date
JP5270697B2 (ja) 2013-08-21
JP2011514087A (ja) 2011-04-28
EP2250790A1 (en) 2010-11-17
US8140630B2 (en) 2012-03-20
US20090228563A1 (en) 2009-09-10
WO2009109497A1 (en) 2009-09-11
CN101960825B (zh) 2013-10-23
CN101960825A (zh) 2011-01-26
EP2250790B1 (en) 2016-12-14

Similar Documents

Publication Publication Date Title
KR20100126786A (ko) 발행/구독 메시지 브로커
CN110383772B (zh) 用于消息收发机器人丰富通信的技术
EP3117590B1 (en) Computer system to support failover in an event stream processing system
US20170250935A1 (en) Techniques for messaging bot app interactions
US7599996B2 (en) Communication using delegates, such as delegates specified in an email or scheduling application
US20140229632A1 (en) Communication using delegates, such as delegates specified in an email or scheduling application
US11348074B2 (en) Binding separate communication platform meetings
US10080118B2 (en) Methods, systems, and computer readable media for managing associations between users in multiple over-the-top service platforms
KR20100044705A (ko) 프로파일 관리 방법 및 장치
WO2017176934A1 (en) Apparatus and method for automated email and password creation and curation across multiple websites
US11704629B2 (en) Methods and devices for processing information card
JP2014038483A (ja) データ配信システム、データ配信方法、およびプログラム
US10685069B2 (en) Message system for social networks
Kolberg et al. Feature interaction in a federated communications-enabled collaboration platform
US9047606B2 (en) Social and contextual recommendations
US20160188748A1 (en) Method for providing information to determine a graph associated with a data item
US20110191857A1 (en) Method for masking data
US20240069990A1 (en) Efficient directed content in pub/sub systems
KR20160083294A (ko) 기가 미디어 서비스 장치 및 방법
JP2023505207A (ja) 複数管理者オプト・アウト・システム及び方法
KR20140018529A (ko) 콘텐츠가 포함된 폴더 공유 시스템

Legal Events

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