KR20120074300A - 계층적 공표 및 가입 시스템 - Google Patents

계층적 공표 및 가입 시스템 Download PDF

Info

Publication number
KR20120074300A
KR20120074300A KR1020127011878A KR20127011878A KR20120074300A KR 20120074300 A KR20120074300 A KR 20120074300A KR 1020127011878 A KR1020127011878 A KR 1020127011878A KR 20127011878 A KR20127011878 A KR 20127011878A KR 20120074300 A KR20120074300 A KR 20120074300A
Authority
KR
South Korea
Prior art keywords
client
central
repeater
remote
message
Prior art date
Application number
KR1020127011878A
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 KR20120074300A publication Critical patent/KR20120074300A/ko

Links

Images

Classifications

    • 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
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/107Computer-aided management of electronic mailing [e-mailing]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1854Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with non-centralised forwarding system, e.g. chaincast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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)
  • Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

공개 메시지를 공표하는 방법은 다수의 첫 번째 중계기 중 하나의 중계기에서 첫 번째 클라이언트로부터 가입 요청을 수신하는 단계와 가입 요청을 다수의 첫 번째 중계기 중 상기 하나의 중계기로부터 다수의 중앙 중계기 중 하나에만 전송하는 단계를 포함한다. 상기 방법은 또한 다수의 첫 번째 중계기 중 또 하나의 중계기에서 두 번째 클라이언트로부터 공개 요청을 수신하는 단계를 포함한다. 공개 요청은 공개 메시지를 포함한다. 상기 방법은 공개 메시지를 다수의 첫 번째 중계기 중 상기 또 하나의 중계기로부터 다수의 중앙 중계기 전부에 전송하는 단계와 공개 메시지를 다수의 중앙 중계기 중의 적어도 하나로부터 다수의 첫 번째 중계기 중 상기 하나의 중계기에 전송하는 단계와 공개 메시지를 다수의 첫 번째 중계기 중 상기 하나의 중계기로부터 첫 번째 클라이언트에게 전송하는 단계를 포함한다.

Description

계층적 공표 및 가입 시스템 {Hierarchical publish and subscribe system}
본 발명은 전반적으로 컴퓨터 네트워크에 관한 것이다. 보다 구체적으로 본 발명은 공표 및 가입 시스템의 운영을 위한 방법에 관한 것이다.
공표 및 가입(공표/가입) 시스템은 비-동기화된 메시징 시스템이다. 메시지는 클래스로 분류되고, 가입자는 하나 이상의 클래스의 메시지에 대한 관심을 서버에 표명한다. 가입자(존재하는 경우)가 어떤 메시지를 수신할 것인지에 대한 지식 없이 메시지의 공표자(publisher)는 메시지를 특정 수신자(가입자)에게 발송하지 않고, 메시지를 서버에 공표(publishing)한다. 메시지가 공개를 위해 수신될 때 서버는 그 메시지를 그 메시지에 연관된 클래스에 관심을 표명한 가입자에게 전송한다. 그러므로 공표자와 가입자가 공표 및 가입 시스템에서 분리되어 서로 독립적으로 동작한다.
최초의 공표 및 가입 시스템은 1987 ACM Symposium on Operating Systems Principles conference에서 "Exploiting Virtual Synchrony in Distributed Systems"를 타이틀로 하여 발표된 논문(p. 123-138)에 기술된 이시스 툴키트(Isis Toolkit)의 "새로운" 서브시스템이었다.
각각의 사용자가 다양한 클래스의 메시지에 가입함에 따라 가입자는 통상적으로 공표된 전체 메시지의 서브-세트만을 수신한다. 하나의 예로서 가입자는 메시지의 주제에 기초하여 메시지를 구독할 것이다. 주제 기반 시스템(topic-based system)에서의 가입자는 이들이 가입하는 주제에 공표된 모든 메시지를 수신할 것이다. 하나의 주제에 대한 모든 가입자는 동일한 메시지를 수신한다. 또 다른 예로서 가입자는 메시지의 내용에 기초하여 메시지를 구독할 수도 있다. 내용 기반 시스템에서 메시지는 메시지의 속성 또는 내용이 가입자에 의해 정해진 제한과 매칭되는 경우에만 가입자에게 배달된다.
전형적인 공표 및 가입 시스템에서 서버는 주제 또는 내용에 기초하여 메시지를 수신하기를 원하는 클라이언트로부터 가입 요청을 수신한다. 사용자가 메시지를 공표하기를 원할 때 이 메시지는 서버에 발송되며, 이 서버가 그 후 이 메시지를 메시지 특성과 매칭시키는 가입 요청을 제출한 다양한 사용자에게 포워딩한다. 이러한 방식으로 서버는 관심을 갖는 가입자에게만 메시지를 전송하는 필터링 기능을 수행한다. 일부 서버는 공표자와 가입자를 일시적으로 분리시키는 메시지를 공표자로부터 가입자에게 라우팅하는 프로세스 동안의 저장 및 포워딩 기능을 수행할 수도 있다. 이 일시적인 분리의 예는 가입자가 대역폭 쓰로틀링(bandwidth throttling)의 형태를 발생하는 백로그(backlog)를 통해 작업을 할 수 있도록 하기 위해 공표자를 일시적으로 다운시킨다.
비교적 소규모의 설치의 경우 공표 및 가입 시스템은 병렬 연산, 메시지 캐싱 등을 통해, 종래의 클라이언트-서버 시스템보다 우수한 규모 확대 가능성(scalability)을 제공할 수 있다. 그러나 공표 및 가입 시스템이 규모가 커짐에 따라 공표 및 가입 시스템에 의해 제공된 이점이 상실되는 경우가 있다. 그러므로 종래의 공표 및 가입 시스템에 의해 제공되는 기능에도 불구하고, 향상된 공표 및 가입 시스템 및 이러한 시스템을 이용하는 방법이 요망되고 있다.
본 발명은 전반적으로 컴퓨터 네트워크에 관한 것이다. 보다 구체적으로 본 발명은 공표 및 가입 시스템의 운영을 위한 방법에 관한 것이다. 단지 예로서 본 발명은 원격 중계기가 클라이언트로부터 가입 요청을 수신하고, 하나의 중앙 중계기에 가입하는 공표 및 가입 시스템에 적용된다. 클라이언트로부터의 공개 요청은 메시지가 특정 공개에 대해 가입한 모든 원격 중계기로 전송되게 한다. 그러므로 "하나에 가입/전부에 공표"의 시스템이 본 발명의 실시예에 의해 구현된다. 본 발명의 방법 및 기술은 다양한 컴퓨터 네트워크 및 통신 시스템에 적용될 수 있다.
본 발명의 실시예에 따라 공개 메시지를 공표하는 방법이 제공된다. 상기 방법은 다수의 첫 번째 중계기 중 하나의 중계기에서 첫 번째 클라이언트로부터 가입 요청을 수신하는 단계와 상기 가입 요청을 상기 다수의 첫 번째 중계기 중 상기 하나의 중계기로부터 다수의 중앙 중계기 중 하나의 중앙 중계기로만 전송하는 단계를 포함한다. 상기 방법은 또한 상기 다수의 첫 번째 중계기 중 또 하나의 중계기에서 두 번째 클라이언트로부터 공개 요청을 수신하는 단계를 포함한다. 공개 요청은 공개 메시지를 포함한다.
상기 방법은 또한 상기 공개 메시지를 상기 다수의 첫 번째 중계기 중 상기 또 하나의 중계기로부터 상기 다수의 중앙 중계기 전부로 전송하는 단계와 상기 공개 메시지를 상기 다수의 중앙 중계기 중 적어도 하나의 중앙 중계기로부터 상기 다수의 첫 번째 중계기 중 상기 하나의 중계기로 전송하는 단계와 상기 공개 메시지를 상기 다수의 첫 번째 중계기 중 상기 하나의 중계기로부터 상기 첫 번째 클라이언트로 전송하는 단계를 포함한다.
본 발명의 또 다른 실시예에 따라 다수의 클라이언트에 대해 공개 메시지를 공표하는 방법이 제공된다. 상기 방법은 원격 중계기에서 첫 번째 클라이언트로부터 첫 번째 요청을 수신하는 단계와 상기 원격 중계기에서 두 번째 클라이언트로부터 두 번째 요청을 수신하는 단계를 포함한다. 첫 번째 요청 및 두 번째 요청은 타겟을 포함한다. 상기 방법은 또한 상기 원격 중계기로부터 중앙 중계기로 가입 메시지를 전송하는 단계를 포함한다. 가입 메시지는 타겟을 포함한다.
상기 방법은 또한 상기 중앙 중계기에서 세 번째 클라이언트로부터 공개 메시지를 수신하는 단계를 포함한다. 공개 메시지는 패턴의 적어도 일부분이 상기 타겟과 매칭되는 패턴을 포함한다. 상기 방법은 또한 상기 공개 메시지의 적어도 일부분을 상기 중앙 중계기로부터 상기 원격 중계기로 전송하는 단계와 상기 공개 메시지의 적어도 일부분을 상기 원격 중계기로부터 상기 첫 번째 클라이언트 및 상기 두 번째 클라이언트로 전송하는 단계를 포함한다.
본 발명의 특정 실시예에 따라 공개 메시지를 공표하는 방법이 제공된다. 상기 방법은 다수의 중앙 중계기 중 하나의 중앙 중계기에서 첫 번째 클라이언트로부터 가입 요청을 수신하는 단계를 포함한다. 가입 요청은 타겟을 포함한다. 상기 방법은 또한 또 하나의 중계기에서 두 번째 클라이언트로부터 공개 메시지를 수신하는 단계를 포함한다. 공개 메시지는 패턴을 포함한다. 상기 방법은 또한 상기 타겟이 상기 패턴의 적어도 일부분과 매칭되는지를 판정하는 단계와 상기 공개 메시지의 적어도 일부분을 상기 또 하나의 중계기로부터 상기 다수의 중앙 중계기 전부로 전송하는 단계와 상기 공개 메시지의 적어도 일부분을 적어도 중앙 중계기로부터 상기 첫 번째 클라이언트로 전송하는 단계를 포함한다.
본 발명의 또 다른 특정 실시예에 따라 공개 메시지를 공표하는 방법이 제공된다. 상기 방법은 다수의 중앙 중계기의 첫 번째 중앙 중계기에서 첫 번째 클라이언트로부터 가입 요청을 수신하는 단계를 포함한다. 가입 요청은 타겟을 포함한다. 상기 방법은 또한 상기 다수의 중앙 중계기의 두 번째 중앙 중계기에서 두 번째 클라이언트로부터 공개 요청을 수신하는 단계를 포함한다. 공개 요청은 공개 메시지를 포함하고, 공개 메시지는 패턴을 포함한다. 상기 방법은 또한 상기 타겟이 상기 패턴에 상관되는지를 판정하는 단계와 상기 공개 메시지를 상기 두 번째 중앙 중계기로부터 상기 첫 번째 중앙 중계기와 상기 다수의 중앙 중계기의 다른 중앙 중계기로 전송하는 단계와, 상기 공개 메시지를 상기 첫 번째 중앙 중계기로부터 상기 첫 번째 클라이언트로 전송하는 단계를 포함한다.
본 발명의 다른 실시예에 따라 패턴을 포함하는 공개 메시지를 공표하는 방법이 제공된다. 상기 방법은 다수의 중앙 중계기 중 하나의 중앙 중계기에서 첫 번째 클라이언트로부터 가입 요청을 수신하는 단계를 포함한다. 가입 요청은 타겟에 연관된 조건(condition)을 포함한다. 상기 방법은 또한 두 번째 중계기에서 두 번째 클라이언트로부터 공개 요청을 수신하는 단계를 포함한다. 공개 요청은 공개 메시지를 포함한다.
상기 방법은 또한 상기 두 번째 중계기가 중앙 중계기가 아닌 경우 상기 공개 메시지를 상기 두 번째 중계기로부터 상기 다수의 중앙 중계기 전부로 전송하는 단계 또는 상기 두 번째 중계기가 중앙 중계기인 경우 상기 공개 메시지를 상기 두 번째 중계기를 제외한 상기 다수의 중앙 중계기 전부로 전송하는 단계를 포함한다. 상기 방법은 또한 상기 공개 메시지 내의 상기 패턴이 상기 타겟에 연관된 상기 조건을 충족하는지를 판정하는 단계와 상기 공개 메시지를 상기 하나의 중앙 중계기로부터 상기 첫 번째 클라이언트로 전송하는 단계를 포함한다.
본 발명을 통하여 종래의 기술에 비하여 다수의 이점이 얻어진다. 예컨대 공표 및 가입 시스템에 계층 구조를 도입함으로써 원격 사이트로부터 중앙 사이트로의 접속의 수가 크게 감소된다. 접속수의 감소는 IP 네트워크를 구성하고 유지하고 작동시키는 것과 관련한 시스템 복잡성을 감소시키며, 보안을 강화시키고, 시스템 성능을 향상시킨다.
또한 본 발명의 실시예는 복제 가입(duplicate subscription)의 수를 감소시킴으로써 시스템 성능을 향상시킨다. 또한 본 발명의 실시예는 서버 프로세스가 중앙 중계기 상에서 작동하지 않는 동안에도 클라이언트가 메시지를 원격 중계기에 포스팅하고 원격 중계기로부터 메시지를 수신할 수 있도록 한다. 또한 데이터가 작동 동안에 로그(log)될 수 있어 감사 추적(audit trail)을 제공한다. 본 발명의 이러한 실시예 및 기타 실시예는 이들 실시예의 다수의 특징 및 장점과 함께, 아래의 상세한 설명 및 첨부 도면을 참조하여 더욱 상세하게 설명된다.
도 1a는 본 발명의 실시예에 따라 다수의 원격 클라이언트로부터의 가입 요청을 구현하는 원격 사이트 및 중앙 데이터 센터의 간략화된 개략도이다.
도 1b는 본 발명의 실시예에 따라 원격 클라이언트로부터의 메시지의 공개의 첫 번째 단계를 구현하는 원격 사이트 및 중앙 데이터 센터의 간략화된 개략도이다.
도 1c는 본 발명의 실시예에 따라 원격 클라이언트로부터의 메시지의 공개의 두 번째 단계를 구현하는 원격 사이트 및 중앙 데이터 센터의 간략화된 개략도이다.
도 2a는 다수의 원격 클라이언트로부터의 가입 요청을 구현하는 원격 사이트 및 중앙 데이터 센터의 간략화된 개략도이다.
도 2b는 본 발명의 실시예에 따라 중앙 클라이언트로부터의 메시지의 공개의 첫 번째 단계를 구현하는 원격 사이트 및 중앙 데이터 센터의 간략화된 개략도이다.
도 2c는 본 발명의 실시예에 따라 중앙 클라이언트로부터의 메시지의 공개의 두 번째 단계를 구현하는 원격 사이트 및 중앙 데이터 센터의 간략화된 개략도이다.
도 3a는 중앙 클라이언트로부터의 가입 요청을 구현하는 원격 사이트 및 중앙 데이터 센터의 간략화된 개략도이다.
도 3b는 원격 클라이언트로부터의 메시지의 공개를 구현하는 원격 사이트 및 중앙 데이터 센터의 간략화된 개략도이다.
도 4a는 중앙 클라이언트로부터의 가입 요청을 구현하는 원격 사이트 및 중앙 데이터 센터의 간략화된 개략도이다.
도 4b는 중앙 클라이언트로부터의 메시지의 공개를 구현하는 원격 사이트 및 중앙 데이터 센터의 간략화된 개략도이다.
도 5는 본 발명의 실시예에 따라 원격 클라이언트로부터 가입하고 원격 클라이언트로부터 공표하는 방법을 도시하는 간략화된 흐름도이다.
도 6은 본 발명의 실시예에 따라 원격 클라이언트로부터 가입하고 중앙 클라이언트로부터 공표하는 방법을 도시하는 간략화된 흐름도이다.
도 7은 본 발명의 실시예에 따라 중앙 클라이언트로부터 가입하고 원격 클라이언트로부터 공표하는 방법을 도시하는 간략화된 흐름도이다.
도 8은 본 발명의 실시예에 따라 중앙 클라이언트로부터 가입하고 중앙 클라이언트로부터 공표하는 방법을 도시하는 간략화된 흐름도이다.
도 9는 본 발명의 실시예에 따라 첫 번째 클라이언트로부터 가입하고 두 번째 클라이언트로부터 공표하는 방법을 도시하는 간략화된 흐름도이다.
도 10a는 본 발명의 실시예에 따라 원격 클라이언트로부터의 가입 요청을 구현하는 원격 사이트 및 중앙 데이터 센터의 간략화된 개략도이다.
도 10b는 본 발명의 실시예에 따라 원격 클라이언트로부터의 메시지의 공개의 첫 번째 단계를 구현하는 원격 사이트 및 중앙 데이터 센터의 간략화된 개략도이다.
도 10c는 본 발명의 실시예에 따라 원격 클라이언트로부터의 메시지의 공개의 두 번째 단계를 구현하는 원격 사이트 및 중앙 데이터 센터의 간략화된 개략도이다.
전술한 바와 같이 전형적인 공표 및 가입 시스템은 서버가 가입자 및 공표자와 대화하는 1-레벨 구현예이다. 각각의 가입자는 가입 요청을 서버에 제출하고, 각각의 공개 요청 또한 서버에 제출된다. 종래의 1-레벨 시스템을 이용하는 단점은 각각의 클라이언트(공표자 또는 가입자 중 하나)가 서버에 연결되어 클라이언트와 서버간에 다수의 접속이 이루어진다는 것이다. 다수의 접속은 방화벽 룰(firewall rule), 다수의 논리 경로의 구성 등으로 인하여 네트워크를 구성, 유지 및 작동시키는 것을 복잡하게 한다.
본 발명의 실시예는 클라이언트로부터 중앙 사이트로의 접속의 수를 예컨대 한 자리수 정도 감소시키는 계층 구조를 활용한다. 접속의 수를 감소시키는 것은 네트워크 및 그와 관련된 구성, 유지 등의 복잡성을 감소시킨다. 추가로 클라이언트와 중앙 사이트간의 접속의 수를 감소시키는 것은 더 적은 접속이 구축되고 또한 감소된 개수의 접속이 더욱 세밀하게 추적 및 제어될 수 있기 때문에, 보안을 강화시킨다. 더욱이 접속의 수를 감소시키는 것은 접속 프로세스의 처리에 관련된 이 시스템 상의 부하가 감소되므로 서버 및 클라이언트 양자의 성능을 향상시킨다.
본 출원의 출원인에 의해 운영되는 HMS(hydra messaging service) 시스템은 메시지 전달(message passing)을 위해 이용되는 공표 및 가입의 구현예이다. 이 시스템은 또한 메시지 버스로서도 지칭될 수 있다. HMS 시스템을 이용하면 예컨대 모니터링 데이터 및 명령을 전송 및 수신하기 위해 외곽 사이트(edge site)와 중앙 사이트간에 메시지가 발송될 수 있다. 메시지는 SDNS, WHOIS, TGV, CRL 등의 기능에 대한 통계(statistics)를 포함할 수 있다. 이 통계는 헤드업 디스플레이 또는 다른 적합한 보고 시스템을 이용하여 시스템 운영자에게 실시간으로 제공될 수 있다. 추가로 이 메시지는 시스템 기능성 및 성능에 관련된 계층 데이터의 분석 및 보고를 위해 저장 및 이용될 수 있다.
본 발명의 실시예는 공표 및 가입 시스템을 위해 계층 아키텍처를 활용한다. 본 명세서에서는 2 레벨의 계층(즉 원격 중계기 및 중앙 중계기)이 예시되고 설명되지만, 본 발명은 2 레벨로 한정되지 않으며 본 시스템은 임의의 개수의 레벨의 계층을 특정 어플리케이션에 적합한 만큼 확장시킬 수도 있다. 본 명세서에서 설명되는 계층적 공표 및 가입 시스템은 중복성(redundancy), 보안 및 성능을 포함한 종래의 기술을 이용하여 얻어질 수 없는 이점을 제공한다.
개요를 설명하면 원격 클라이언트가 특정 메시지 그룹에 가입하기를 원할 때, 원격 클라이언트로부터 원격 중계기에 가입 요청이 전송되며, 이 원격 중계기는 그 후 가입 요청을 정확히 하나의 중앙 중계기에 전달한다. 원격 클라이언트가 메시지를 공표하길 원할 때 원격 클라이언트가 원격 중계기에 공표하고, 이 원격 중계기는 그 후 메시지(공개 요청의 형태의)를 중앙 중계기 전부에 공표한다. 중앙 중계기는 그 후 이 메시지를 특정 메시지 그룹에 가입되어 있는 원격 중계기에 공표하고(통상적으로 중앙 중계기에 의해 저장된 룩업 테이블을 이용하여), 이 원격 중계기는 그 다음에 메시지를 특정 메시지 그룹에 가입되어 있는 클라이언트에 공표한다(마찬가지로 통상적으로 원격 중계기에 의해 저장된 룩업 테이블을 이용하여)여 중앙 중계기는 또한 메시지를 직접 접속된 클라이언트(예컨대 중앙 중계기와 함께 위치되어 있는(co-located) 중앙 클라이언트)에 공표할 수 있다.
"직접 접속된"이라는 표현은 물리적으로 연결되지는 않았지만 원격 중계기를 경유하여 접속된 클라이언트를 포함한다. 그러므로 클라이언트는 지리적으로 원거리에 위치될 수도 있으며, 접속은 다수의 라우터/스위치/네트워크를 거치게 될 수도 있다. 함께 위치되어 있는 클라이언트라는 언급에서는 클라이언트가 마찬가지로 전술한 바와 같이 직접 접속될 수도 있다. 각각의 중앙 중계기는 원격 중계기 및 중앙 클라이언트로부터 수신된 가입 요청의 목록을 저장한다.
표 1은 클라이언트로부터 수신된 가입 및 공개 요청에 관련하여 수행된 프로세스를 예시하고 있다. 원격 중계기에 대해서는 가입 요청(가입)이 수신될 때, 원격 중계기가 특정 메시지 타입에 대한 가입을 입력하고나서 가입 요청을 중앙 서버에 포워딩한다. 가입 요청은 타겟 및 리더를 기록한다. 가입 요청의 포워딩은 가입 요청을 발원한 클라이언트를 대신하여 단일의 중앙 중계기에 가입하는 원격 중계기를 포함한다. 중앙 중계기에 대해서는 가입 요청이 수신될 때, 중앙 중계기가 가입을 입력하지만 가입 요청을 포워딩할 필요는 없다. 실제로 원격 중계기가 단일의 중앙 중계기에만 가입하고, 중앙 중계기가 가입 요청을 포워딩하지 않는 것에 의해 본 발명의 실시예는 복제 또는 중복 공개(duplicate or redundant publication)뿐만 아니라 복제 또는 중복 가입을 방지한다.
공개 요청(공표)에 관련하여 원격 중개기가 클라이언트로부터 공개 요청을 수신할 때, 원격 중계기는 공개 요청을 원격 중계기에 의해 유지된 중앙 중계기의 목록에 포함된 중앙 중계기 전부에 포워딩한다. 중앙 중계기가 클라이언트로부터 공개 요청을 수신할 때 중앙 중계기는 공개 메시지를 타겟에 가입된 모든 리더(reader)에 공표하고, 공개 요청을 다른 중앙 중계기 전부에 포워딩한다.
원격 중계기가 서버로부터 공개 요청을 수신할 때, 원격 중계기는 공개 요청(또는 공개 메시지와 같은 공개 요청의 일부분)을 타겟에 가입된 리더 전부에 공표할 것이다. 마찬가지로 중앙 중계기가 서버로부터 공개 요청을 수신할 때, 중앙 중계기는 공개 요청(또는 공개 메시지와 같은 공개 요청의 일부분)을 타겟에 가입된 리더 전부에 공표할 것이다.
Figure pct00001

도 1a는 본 발명의 실시예에 따라 다수의 원격 클라이언트로부터의 가입 요청을 구현하는 원격 사이트 및 중앙 데이터 센터의 간략화된 개략도이다. 클라이언트 가입자는 이 가입자가 특정한 특징을 갖는 모든 메시지를 얻기를 희망한다는 것을 나타내는 가입 메시지를 발송할 것이다. 종래의 1-레벨 시스템에서는 클라이언트가 가입 요청을 서버에 발송할 것이다. 본 발명의 실시예는 클라이언트가 가입 요청을 중앙 중계기 또는 원격 중계기 중 하나에 발송하여도 되는 다수 레벨의 계층을 제공한다.
도 1a를 참조하면 원격 클라이언트(110)가 가입 요청(1)을 원격 중계기(120)에 발송한다. 추가로 원격 클라이언트(112)가 가입 요청(2)을 원격 중계기(120)에 발송한다. 가입 요청은 동일한 타입의 메시지에 대한 것일 수도 있고 즉 가입 메시지가 여러 개의 가입 메시지에 의해 공유되는 타겟을 포함하거나 또는 상이한 메시지에 대한 것일 수도 있다. 일례로서 원격 클라이언트(110)는 "x로 시작하는" 메시지에 관심을 둘 수도 있고, 원격 클라이언트(112)는 "y로 시작하는" 메시지에 관심을 둘 수도 있다.
하나의 예로서 서버 상에서 작동하는 DNS 서비스는 소정의 시간 간격 내에서의 DNS 트랜슬레이션(translation)의 개수를 추적할 수도 있다. 이 DNS 트랜슬레이션 비율은 다른 클라이언트가 수신에 관심을 둘 수도 있다는 통계로서 공표될 수 있다. 이 DNS 트랜슬레이션 통계는 예컨대 "DNST"와 같은 사전 결정된 문자 또는 문자열(string)로 시작할 수 있다. 따라서 이 DNS 트랜슬레이션 통계에 대한 가입 요청은 공개 메시지 내의 문자열이 충족할 조건을 포함할 것이다. 이 예의 경우 조건은 "DNST"으로 개시하는 문자열일 것이다. 이 조건은 또한 타겟으로서 지칭될 수 있으며, 공개 메시지 내의 문자열은 패턴으로서 지칭될 수 있다.
이 예의 경우 패턴은 1초에 100개의 DNS 트랜슬레이션을 나타내는 DNST100이 될 수 있다. 중계기가 이 패턴 또는 시스템에 분배되어 있는 통계의 목록 내의 문자열을 수신할 때, 타겟 DNST는 패턴 DNTS100에 대하여 비교될 것이며 타겟 DNST로 시작되는 패턴은 정해진 조건을 충족할 것이다. 이에 따라 중계기는 이 통계를 이 DNS 트랜슬레이션 통계에 가입한 클라이언트에 건네 줄 것이다.
또 다른 예에서는 명령을 특정 기기에 발송하는 것이 바람직할 수도 있다. 이 명령을 발송하기 위해 기기는 가입하여 자신의 기기명을 원격 중계기에 제공할 수 있다. 또 다른 기기가 그 후 대상으로 하는 기기명을 포함하는 공개 메시지를 발송할 수 있다. 공개 프로세스 동안 요구된 기기는 대상으로 하는 기기명에 기초하여 메시지를 수신할 것이다. 이 명령 모드의 또 다른 변형예에서는 공개 메시지가 와일드카드(wildcard)를 이용하여 모든 기기에 발송될 수 있다. 당해 기술 분야에 통상의 지식을 가진 자는 다수의 변형예, 수정예 및 대안을 인지할 것이다.
그러므로 가입 메시지는 타겟으로서도 지칭되는 조건을 가지며, 공표된 메시지는 공표된 메시지에 포함된 문자열이 가입 메시지에 의해 정해진 조건을 충족하는 패턴을 갖는지를 판정하기 위해 중앙 중계기 및 원격 중계기에 의해 검사된다. 일례로서 타겟은 첫 번째 길이(예컨대 4개의 문자)의 문자열일 수 있고, 패턴은 첫 번째 길이보다 큰 두 번째 길이(예컨대 10개의 문자)의 문자열일 수 있다. 공표된 메시지는 관심 대상의 타겟이 메시지 내의 패턴의 일부분과 매칭되는지를 판정하기 위해 검사된다. 타겟이 패턴의 일부 또는 전부와 매칭되면 중계기는 공표된 메시지 또는 공표된 메시지의 일부분이나 변형물을 타겟을 이용하여 가입된 다른 중계기 및 클라이언트에 보낼 것이다. 공표된 메시지는 타겟을 이용하여 가입된 클라이언트가 이들의 가입에 관련되었다는 것을 나타내는 정보를 수신하는 한 또 다른 메시지로 변경될 수도 있다.
원격 중계기(120)는 타겟에 연계된 조건과 매칭하는 문자열을 갖는 메시지를 이들 메시지를 수신하기 위해 가입된 다양한 클라이언트에게 제공하기 위해 가입 요청의 기타 목록 또는 데이터베이스를 유지할 것이다.
본 발명에서 요구되지는 않지만 원격 클라이언트(110, 112) 및 원격 중계기(120)는 원격 사이트 A에 함께 위치되며, 이 원격 사이트 A는 지리학적 경계, 즉 원격 사이트 A에 연관된 지리학적 영역이 점선(128)으로 나타내어져 있다. 다수의 지리학적 위치를 갖지 않아도 다수 레벨의 계층을 갖는 것이 가능하다. 도 1a에 예시된 실시예에서는 모두 상이한 지리학적 위치에 있는 2개의 원격 사이트 및 2개의 데이터 센터가 도시되어 있지만, 이것은 단지 일례로 예시된 것이며 본 발명은 이러한 특정의 예로 한정되지 않는다. 본 발명의 출원인은 세계 도처에 걸쳐 다수의 국가에 위치된 원격 사이트(외곽 사이트로도 지칭됨)를 유지하고 있다. 추가로 본 발명의 출원인은 이 원격 사이트에 연결된 데이터 센터를 유지하고 있다.
원격 중계기(120)가 원격 클라이언트(110, 112)로부터 가입 요청을 수신한 후, 하나의 가입 요청이 하나의 중앙 중계기(140)로 전송된다. 이 예에서 가입 요청은 동일한 메시지 타입을 지정하지만, 즉 가입 요청이 동일한 타겟을 갖지만 가입 요청은 상이한 타입의 메시지에 대한 것일 수도 있다는 것을 이해할 것이다.
상기 간략화된 예에서는 원격 중계기(110, 112)로부터의 가입 요청이 동일한 메시지 타입에 대한 것이므로 원격 중계기(120)는 다수의 요청을 하나의 가입 요청으로 취합하여 네트워크 대역폭을 절약한다. 가입 요청의 데이터베이스를 활용하면 양자의 원격 클라이언트는 아래에 보다 상세하게 설명되는 바와 같이 원격 중계기(120)에 의해 수신될 때에 요구된 메시지를 수신할 것이다. 가입 요청의 특징에 따라서는 가입 요청이 취합되지 않을 수도 있다. 당해 기술 분야에 통상의 지식을 가진 자는 다수의 변형예, 수정예 및 대안을 인지할 것이다. 원격 중계기(120)로부터의 가입 요청은 단지 하나의 중앙 중계기(140)에 발송된다. 다수의 가입 요청이 후속하여 수신되면 본 명세서 전반에 걸쳐 더욱 상세하게 설명된 바와 같이 각각의 원격 중계기가 한 번에 하나의 중앙 중계기에 가입하므로 이 가입 요청 또한 하나의 중앙 중계기에 발송될 것이다.
본 발명의 실시예에 의해 제공된 계층 구조는 데이터 센터에 위치된 클라이언트뿐만 아니라 원격 클라이언트가 직접적으로 데이터 센터에 연결되는 종래의 기술에 비하여 시스템 복잡성을 감소시킨다. 그러므로 각각의 클라이언트가 접속을 가질 것이다. 이 접속 전부와 함께, 방화벽 룰, 보안 구멍, 네트워크 트래픽 등이 수반된다. 전술한 바와 같이 원격 중계기를 통해 접속함으로써 다수의 동등한(identical) 가입 요청(다수의 클라이언트로부터 수신된)이 원격 중계기로부터 단일 중앙 중계기로 전송되는 하나의 가입 요청으로 취합된다. 그러므로 다수의 클라이언트로부터의 다수의 동등한 가입 요청이 아닌 하나의 가입 요청이 이용될 수 있으므로 시스템 복잡성을 감소시킨다.
중복되는 동등한 메시지를 제거하기 위해 각각의 원격 중계기 및 각각의 중앙 클라이언트는 단지 하나의 중앙 중계기에 가입한다. 도 1a를 참조하면 원격 중계기(120)만이 그 가입 요청을 데이터 센터 #2에 위치되어 있는 중앙 중계기(140)로 전송한다. 각각의 중앙 중계기는 특정의 중앙 중계기에 의해 수신된 가입 요청에 관련된 정보를 포함하는 데이터 베이스 또는 기타 목록을 유지할 것이다. 단일 중앙 중계기에 가입함으로써 메시지가 공표될 때, 각각의 중앙 중계기는 메시지를 단지 특정 메시지 타입에 가입한 원격 중계기 및 중앙 클라이언트에게만 공표할 것이다. 각각의 원격 중계기가 단지 하나의 중앙 중계기에만 가입하기 때문에 메시지의 복제가 발생하지 않고, 이에 의해 각각의 원격 중계기에 관심 대상의 메시지의 단지 하나의 카피만을 제공한다. 그 다음 원격 중계기는 관심 대상의 메시지를 특정의 원격 중계기에 가입한 다양한 원격 클라이언트에 전달할 것이다. 원격 중계기가 가입하는 특정의 중앙 중계기는 시스템 구성에 의해 결정될 것이며 본 발명의 실시예를 한정하지 않는다.
도 1a에 예시된 바와 같이 중앙 중계기와 원격 중계기간에 접속이 제공된다. 논리 레벨에서 네트워크(예컨대 인터넷)가 중계기 아래에 있어서 원격 중계기 또는 중앙 중계기 중의 어느 하나의 각각의 중계기로부터의 정보가 다른 중계기 전부에 통신될 수 있다. 일부 접속이 방화벽 룰 등에 의해 충격을 받을 수도 있지만, 네트워크는 다양한 중계기간의 접속을 제공할 수 있다. 일부 구현예에서 네트워크는 TCP/IP 레벨로 존재할 수 있다. 또 다른 구현예에서 네트워크는 UDP 레벨로 존재할 수 있다. 본 발명은 이들 특정 구현예 중의 어느 하나로 제한되지 않으며, 다른 프로토콜이 활용될 수도 있다.
하나의 구현예에서 TCP/IP 스택의 바닥 레벨(bottom level)에서의 접속은 보안을 이유로 중앙 중계기로부터 원격 중계기로 개시된다. 실제 어플리케이션 레벨 접속은 하위 레벨 접속과는 상이할 수도 있다. 이 구현예에서 가입 요청은 외곽으로부터 중앙으로(즉 원격 중계기로부터 중앙 중계기로) 전송되지만 2개의 TCP/IP 엔드포인트(endpoint)를 접속하기 위해 사용된 하위 레벨 접속은 중앙으로부터 외곽으로 전송된다.
다시 도 1a를 참조하면 원격 클라이언트(114)는 가입 요청(4)을 원격 중계기(122)로 전송하고, 이 원격 중계기는 그 다음에 가입 요청(5)을 데이터 센터 #1에 위치된 단일 중앙 중계기(130)로 전송한다. 추가로 중앙 클라이언트(134)가 가입 요청(6)을 단일 중앙 중계기(130)에 통신함으로써 어떠한 메시지 타입에 가입한다. 도시를 명확하게 하기 위해 각각의 원격 또는 중앙 클라이언트에 대해 단지 하나의 가입 요청이 도시되어 있으며 본 발명은 이러한 하나의 요청으로 한정되지 않는다. 상이한 메시지 타입에 대한 다수의 요청이 클라이언트에 의해 발생될 수 있다. 당해 기술 분야에 통상의 지식을 가진 자는 다수의 변형예, 수정예 및 대안을 인지할 것이다.
원격 클라이언트(110) 및 원격 클라이언트(112)가 원격 중계기(120)에 접속되지만 이들 원격 클라이언트에 대한 구성 데이터는 원격 중계기(120)에 대한 백업으로서 작용할 수 있는 원격 중계기(126)에 관련된 정보를 포함할 수 있다. 원격 중계기(120)가 다운되면 클라이언트(110, 112)가 수신 서비스를 지속하기 위해 원격 중계기(126)에의 접속을 개시할 수 있으므로 중복성이 제공된다. 원격 중계기(126)에의 새로운 접속이 자동으로 또는 이와 다르게 생성될 수 있다.
도 1b는 본 발명의 실시예에 따라 원격 클라이언트로부터의 메시지의 공개의 첫 번째 단계를 구현하는 원격 사이트 및 중앙 데이터 센터의 간략화된 개략도이다. 원격 클라이언트(116)는 공개 요청(7)을 원격 중계기(122)로 전송한다. 원격 클라이언트(116) 및 원격 중계기(122) 양자는 원격 사이트 B에 함께 위치된다. 패턴을 갖는 메시지를 포함하는 공개 요청을 수신한 후 원격 중계기(122)는 공개 요청 또는 공개 요청의 수정된 버전을 중앙 중계기의 전부 즉 데이터 센터 #1에 위치된 중앙 중계기(130, 132) 및 데이터 센터 #2에 위치된 중앙 중계기(140, 142)로 전송한다.
본 발명의 실시예는 원격 중계기가 한 번에 단지 하나의 중앙 중계기에만 가입하지만 이들의 메시지를 중앙 중계기 전부에 공표하기 때문에 중복성을 제공한다. 도 1b에 도시된 바와 같이 원격 클라이언트(116)가 메시지를 포함하는 가입 요청을 전송할 때, 이 메시지는 원격 중계기(122)로부터 중앙 중계기(130, 132, 140, 142) 전부에 발송된다. 일부 구현예에서 원격 중계기의 구성은 중앙 중계기 전부에 대한 정보를 포함하여 이러한 "전부에 공표" 동작을 가능하게 한다. 다른 실시예에서 중앙 중계기는 접속 구축 단계에서 수행된 핸드세이킹(handshaking) 동안 자신을 식별한다. 본 명세서 전반에 걸쳐 더욱 상세하게 설명되는 바와 같이 가입 요청이 중앙 중계기에서 수신되면 이것은 관심 대상의 메시지를 중앙 중계기에 의해 서비스를 받는 원격 중계기 및 중앙 클라이언트에 공표하는 것으로 충분하므로 중앙 중계기는 가입 메시지를 서로에 공표하지 않는다.
"하나에 가입, 전부에 공표"의 구현은 클라이언트가 클라이언트의 가입 기준을 충족하는 각각의 메시지의 단지 하나의 카피만을 신뢰적으로 수신할 수 있도록 한다. 클라이언트는 각각의 메시지의 하나보다 많은 카피를 수신하기를 원하지 않을 것이며, 그 이유는 각각의 메시지의 하나보다 많은 카피를 수신하게 되는 것이 복제 메시지의 결과를 초래할 것이기 때문이다. 예컨대 메시지가 메저먼트(measurement)를 포함하고 있으면, 클라이언트는 메저먼트를 더블 카운팅(double counting)하는 것을 효과적으로 끝낼 것이다. 또한 원격 중계기가 메시지를 중앙 중계기 형태의 다수의 수령인에게 전송하지만, 클라이언트는 단지 하나의 중계기에의 가입에 기초하여 복제되지 않은 단지 하나의 메시지만을 수신할 것이 분명하다.
도 1b에 도시된 예에서 하나의 원격 클라이언트가 메시지를 공표하지만, 다수의 원격 클라이언트가 본 명세서에 설명된 방법을 이용하여 메시지를 공표할 수도 있다는 것을 이해할 것이다.
도 1c는 본 발명의 실시예에 따라 원격 클라이언트로부터의 메시지의 공개의 두 번째 단계를 구현하는 원격 사이트 및 중앙 데이터 센터의 간략화된 개략도이다. 중앙 중계기는 원격 중계기 및 중앙에 위치된 클라이언트에 의해 요청된 메시지의 타입을 포함하는 데이터베이스를 유지한다. 중앙 중계기(140)가 원격 클라이언트(116)에 의해 공표된 메시지와 매칭하는 가입 요청을 수신하므로 중앙 중계기(140)는 메시지를 중앙 중계기(120)로 전송한다(9). 원격 중계기가 메시지를 수신할 때 메시지를 특정 메시지에 관심을 두고 있는 클라이언트에게 포워딩할 수 있다. 원격 중계기는 이들이 클라이언트로부터 수신한 가입 요청의 데이터베이스를 유지한다.
그러므로 중앙 중계기는 원격 중계기로부터 메시지를 수신할 다양한 클라이언트의 아이덴티티를 반드시 알아야 할 필요는 없다. 그러므로 원격 중계기(120)는 그 후 메시지를 원격 클라이언트(110)에게 전송하고(10), 또한 원격 클라이언트(112)에게 전송한다(11). 추가로 중앙 중계기(130)는 메시지를 원격 중계기(122)에 전송하고(12), 원격 중계기가 메시지를 원격 클라이언트(114)에게 전송한다(13). 중앙 중계기(130)는 또한 메시지를 중앙 클라이언트(134)에게 전송한다(14). 그러므로 이 메시지 타입에 가입한 3개의 클라이언트가 메시지의 공표 시 메시지를 수신한다.
단지 2개의 데이터 센터만이 도시되어 있지만 이것은 예에 불과하며, 추가의 데이터 센터가 활용될 수도 있다. 마찬가지로 데이터 센터당의 원격 사이트의 수는 하나보다 많을 수도 있다. 또한 단지 2 레벨의 계층이 도시되어 있지만 추가의 레벨이 활용되어, 가장 원격이 레벨이 데이터 센터에 접속되는 덜 원격의 레벨에 연결될 수 있다. 다른 실시예에서 다수의 원격 중계기 계층의 원격 중계기가 있으며, 각각의 원격 중계기가 시스템 내의 더 높은 레벨의 원격 중계기에 종속된다. 각각의 원격 중계기는 가입 목록을 유지할 것이다. 다수의 원격 중계기 계층을 갖는 이 시스템에서 "원격"이라는 표현은 시스템의 바닥에 있는 원격 중계기일 것이기 때문에 상대적인 것이며, 중간 중계기가 더 높은 레벨의 계층에서 작동하고, 중앙 중계기가 계층의 상단에서 작동한다. 중앙 중계기가 최고 레벨에 있는 것으로 하면 도시 레벨에서는 원격 중계기, 국가 레벨에서는 중간 중계기, 주 레벨(state level)에서는 또 다른 중간 중계기 등으로 하는 아키텍처가 고려될 수 있다.
도 1a 내지 도 1c는 가입 및 공표 양자가 가능한 클라이언트를 도시하고 있다. 이들 클라이언트는 데이터 센터 내의 중앙 중계기로부터 원거리에 위치되거나(예컨대 원격 클라이언트(110)) 또는 데이터 센터 내의 중앙 중계기와 함께 위치될 수 있다(예컨대 중앙 클라이언트(134)). 통상적으로 원격 사이트로부터 데이터 센터로 흐르는 트래픽의 대부분을 데이터(예컨대 성능 리포팅, 샘플링되는 미가공 데이터 패킷, 인증 요청 등)가 차지하는 한편 데이터 센터로부터 원격 사이트로의 흐름의 대부분을 명령이 차지한다. 다른 어플리케이션에서, 데이터 및 명령 흐름은 변화될 수도 있다. 당해 기술 분야에 통상의 지식을 가진 자는 다수의 변형예, 수정예 및 대안을 인지할 것이다.
본 발명의 일부 실시예에 따라 가입 요청 및 공개 요청이 동일한 원격 중계기에 라우팅되면 이 원격 중계기가 연결된 중앙 중계기는 이 가입 및 공표 요청의 목록을 유지하여, 중앙 중계기가 원격 중계기로부터 공개 메시지를 수신하고나서 동일한 공개 메시지를 원격 중계기에 역으로 발송할 필요가 없게 할 수 있다. 그러므로 일부 실시예에서 가입 요청 및 공개 요청의 처리가 원격 중계기에서 수행될 수 있어, 시스템 자원을 절약할 수 있다.
도 2a는 다수의 원격 클라이언트로부터의 가입 요청을 구현하는 원격 사이트 및 중앙 데이터 센터의 간략화된 개략도이다. 도 2a 및 도 2b에 도시된 실시예에서, 원격 클라이언트는 가입 요청을 제출하고, 중앙 클라이언트는 공개 요청을 제출한다. 원격 클라이언트(110, 112)는 가입 요청을 원격 중계기(120)에 제출한다(1 및 2). 이 가입 요청은 단일 중앙 중계기(140)로 전송된다(3). 원격 클라이언트(110, 112)에 추가하여, 원격 클라이언트(114)에 의해서도 가입 요청이 제출되고(4), 원격 클라이언트(134)에 의해서도 가입 요청이 제출된다(6). 원격 중계기(122)는, 원격 클라이언트(114)로부터의 가입 요청을 중앙 중계기(130)로 전송하며(5), 이 중앙 중계기(130)는 또한 중앙 클라이언트(134)로부터 가입 요청도 수신한다.
도 2b는 본 발명의 실시예에 따라 중앙 클라이언트로부터의 메시지의 공개의 첫 번째 단계를 구현하는 원격 사이트 및 중앙 데이터 센터의 간략화된 개략도이다. 공개 요청이 중앙 클라이언트(146)로부터 중앙 중계기(142)로 전송된다(7). 중앙 중계기는 공개 요청을 다른 중앙 중계기의 각각에(즉 공개 요청을 최초에 수신한 중앙 중계기를 제외한 모든 중앙 중계기에) 통신한다. 그러므로 공개 요청은 본 발명의 일부 실시예에 의해 제공된 "하나에 가입, 전부에 공표" 기술에 따라 중앙 중계기 전부에 전송된다(8).
도 2c는 본 발명의 실시예에 따라 중앙 클라이언트로부터의 메시지의 공개의 두 번째 단계를 구현하는 원격 사이트 및 중앙 데이터 센터의 간략화된 개략도이다. 가입 요청을 수신한 중앙 중계기(130, 140)는 공개 요청을 가입하고 있는 원격 중계기(102, 122)에 공표한다(9). 원격 중계기는 그 후 공개 메시지를 가입 요청을 제출한 원격 클라이언트에 공표한다. 그러므로 원격 중계기(120)는 원격 클라이언트(110, 112)가 이 메시지 타입에 관심이 있는 것으로 표명하였기 때문에 원격 클라이언트(110, 112)에 공표하며(10, 11), 원격 중계기(122)는 원격 클라이언트(114)에 공표한다(12). 중앙 중계기(130) 또한 공개 메시지를 중앙 클라이언트(134)에 공표한다(13). 그러므로 모든 가입 클라이언트가 중앙 클라이언트(146)로부터 발송된 공개 메시지를 수신한다.
전술한 바와 같이 계층은 중앙 중계기로 전송되는 가입 요청의 수를 감소시킬 수 있다. 유사한 방식으로 계층은 중앙 중계기로부터 전송되는 메시지의 수를 감소시킬 수 있다. 일례로서 클라이언트(146)가 관심 대상의 메시지를 원격 클라이언터(110, 112) 양자에게 전송할 때 중앙 중계기(140)로부터 2개의 메시지가 발송되지 않고, 중앙 중계기(140)로부터 원격 중계기(120)로 하나의 메시지만이 전송된다. 중앙 중계기로부터의 메시지 트래픽의 감소는 이행 비용(transition cost), 유지, 보안 규칙, CPU 사이클 등에 대한 절감을 발생한다.
본 명세서에서 설명된 계층 시스템에 의해 제공된 추가의 이점은 원격 중계기가 동등한 메시지를 상이한 데이터 센터에 위치된 다수의 중앙 중계기로 전송할 수 있다는 점이라는 것에 유념하여야 한다. 그러므로 원격 중계기는 하나의 데이터 센터가 다운되면 메시지가 다른 데이터 센터에서 여전히 수신되도록 메시지를 복제하고 나서 복제 메시지를 상이한 데이터 센터에 발송할 수 있으며, 이에 의해 추가의 레벨의 시스템 중복성을 제공한다.
본 발명의 실시예는 클라이언트에게 높은 레벨의 유연성을 제공한다. 클라이언트는 새로운 가입에 참여할 수 있고, 새로운 서비스를 용이하게 제공한다. 분권화된 시스템(decentralize system)은 클라이언트로 하여금 중앙 서버에 등록할 필요 없이 특정 부류의 메시지에의 관심을 나타낼 수 있게 한다.
도 3a는 중앙 클라이언트로부터의 가입 요청을 구현하는 원격 사이트 및 중앙 데이터 센터의 간략화된 개략도이다. 본 실시예에서 중앙 클라이언트(134)는 중앙 클라이언트(134)가 관심을 두고 있는 타입의 메시지를 나타내는 가입 요청을 중앙 중계기(130)에게 제출한다(1). 가입 요청은 메시지 타입의 표시자(indicator)로서도 지칭될 수 있는 타겟을 포함한다. 본 발명의 실시예에 따라 가입 요청이 중앙 중계기(130)에서 수신된 후 다른 중앙 중계기가 가입 요청에 대해 통보될 필요가 없기 때문에 가입 요청에 관련된 추가의 동작이 초기에 취해지지 않는다.
도 3b는 원격 클라이언트로부터의 메시지의 공개를 구현하는 원격 사이트 및 중앙 데이터 센터의 간략화된 개략도이다. 원격 클라이언트(116)는 패턴의 일부분이 그 가입 요청에서 중앙 클라이언트(134)에 의해 나타내진 타겟과 매칭하는 패턴을 갖는 메시지를 포함하는 공개 요청을 전송한다(2). 공개 요청, 메시지 또는 공개 요청의 변형이 원격 중계기(122)에 의해 중앙 중계기 전부에 전송된다(3). 그 다음으로 이 특정 타입의 메시지에서의 중앙 클라이언트(134)의 관심 대상을 포함하는 데이터베이스를 유지하는 중앙 중계기(130)가 메시지를 중앙 클라이언트(134)에게 전송한다(4). 이 예에서는 다른 중앙 중계기가 가입 요청을 수신하지 않기 때문에 이들은 동작을 취하지 않으며, 이들 중앙 중계기에 의한 어떠한 후속 결과의 동작없이 공개 요청이 수신된다. 즉 중앙 중계기(130)만이 가입 요청을 수신하므로, 이 중앙 중계기가 공개 메시지를 공표할 필요가 있는 유일한 중계기가 된다.
도 4a는 중앙 클라이언트로부터의 가입 요청을 구현하는 원격 사이트 및 중앙 데이터 센터의 간략화된 개략도이다. 도 3a에 도시된 가입 요청과 유사하게 중앙 클라이언트(136)는 가입 요청을 단일 중앙 중계기(132)에 제출한다(1). 도 4b는 중앙 클라이언트로부터의 메시지의 공개를 구현하는 원격 사이트 및 중앙 데이터 센터의 간략화된 개략도이다. 중앙 클라이언트(146)는 공개 요청을 중앙 중계기(142)에게 전송하며(2), 중앙 중계기(142)는 그 후 공개 요청을 다른 중앙 중계기 전부에 전송한다(3). 중앙 중계기(132)는 그 후 메시지를 이 특정 메시지 타입에 관심을 표명한 클라이언트(136)에게 전송한다(4). 도 3b에 관련하여 설명한 바와 같이 중앙 중계기(132)만이 공개 요청을 수신하므로 이 중앙 중계기가 클라이언트(146)로부터의 메시지를 공표할 유일한 중앙 중계기가 된다.
도 10a는 본 발명의 실시예에 따라 원격 클라이언트로부터의 가입 요청을 구현하는 원격 사이트 및 중앙 데이터 센터의 간략화된 개략도이다. 원격 클라이언트(110)는 공개 요청을 원격 중계기(120)에게 전송하며(1) 이 원격 중계기가 그 다음에 하나의 중앙 중계기(140)에 가입한다(2).
도 10b는 본 발명의 실시예에 따라 원격 클라이언트로부터의 메시지의 공개의 첫 번째 단계를 구현하는 원격 사이트 및 중앙 데이터 센터의 간략화된 개략도이다. 원격 클라이언트(112)는 공개 요청 또는 공개 메시지를 원격 중계기(120)에게 전송하며(3), 이 원격 중계기가 공개 메시지를 중앙 중계기 전부에 공표한다(4). 도 10c는 본 발명의 실시예에 따라 원격 클라이언트로부터의 메시지의 공개의 두 번째 단계를 구현하는 원격 사이트 및 중앙 데이터 센터의 간략화된 개략도이다. 공개 메시지를 수신한 후, 중앙 중계기(140)는 공개 메시지에 대한 가입 요청을 수신한 것으로 판정하고, 공개 메시지를 원격 중계기(120)에게 전송하며(5), 이 원격 중계기(120)가 그 다음으로 메시지를 원격 클라이언트(110)에게 전달한다(6).
이 예에서 원격 중계기(120)가 가입 요청 및 공개 요청 양자를 수신하지만, 메시지는 도 10b에 도시된 바와 같이 중앙 중계기에 전송된다. 본 발명의 발명자는 다수의 구현예에서 도 10b 및 도 10c에서 전송된 여분의 메시지가 중복 가입의 수의 감소 및 이에 대응하는 시스템 성능의 이득에 의해 개수가 많아지는 것으로 판정하였다.
도 5는 본 발명의 실시예에 따라 원격 클라이언트로부터 가입하고 원격 클라이언트로부터 공표하는 방법을 도시하는 간략화된 흐름도이다. 본 방법은 첫 번째 클라이언트로부터 가입 요청을 수신하는 단계(510)를 포함한다. 가입 요청은 원격 중계기에서 수신되며, 첫 번째 클라이언트가 수신에 관심을 두고 있는 메시지 내의 패턴의 일부분과 매칭할 타겟을 포함한다. 본 방법은 또한 가입 요청을 다수의 중앙 중계기 중 하나에 전송하는 단계(512)를 포함한다. 본 발명의 실시예에 따라 가입 요청은 본 명세서에 설명된 "하나에 가입, 전부에 공표" 기술을 이용하여 원격 중계기로부터 단일 중앙 중계기에 전송된다.
공표 요청으로도 지칭되는 공개 요청이 두 번째 클라이언트로부터 수신된다(514). 공개 요청은 원격 중계기에서 수신되며, 가입 요청에서 발견되는 타겟에 부분적으로 또는 전체적으로 매칭하는 패턴을 갖는 메시지를 포함한다. 메시지는 공개 메시지로서 지칭될 수 있다. 이것은 첫 번째 클라이언트가 수신에 관심을 보이고 있는 메시지이다. 공개 요청은 중앙 중계기 전부에 전송된다(516). 그 다음에 첫 번째 클라이언트로부터 가입 요청을 수신한 원격 중계기가 공개 메시지를 첫 번째 클라이언트에게 전송한다(518).
도 5에 예시된 구체적인 단계는 본 발명의 실시예에 따라 원격 클라이언트로부터 가입하고 원격 클라이언트로부터 공표하는 특정한 방법을 제공한다는 것을 이해하여야 한다. 대안의 실시예에 따라 다른 시퀀스의 단계가 수행될 수도 있다. 예컨대 본 발명의 대안의 실시예는 위에서 개략 설명된 단계를 상이한 순서로 수행할 수도 있다. 더욱이 도 5에 도시된 개개의 단계는 개개의 단계에 적합한 바대로 다양한 순서로 수행될 수 있는 다수의 서브 단계를 포함할 수 있다. 또한 특정 어플리케이션에 따라서는 추가의 단계가 추가되거나 제거될 수 있다. 당해 기술 분야에 통상의 지식을 가진 자는 다수의 변형예, 수정예 및 대안을 인지할 것이다.
도 6은 본 발명의 실시예에 따라 원격 클라이언트로부터 가입하고 중앙 클라이언트로부터 공표하는 방법을 예시하는 간략화된 흐름도이다. 본 방법은 원격 중계기에서 첫 번째 요청, 즉 가입 요청을 수신하는 단계(610)를 포함한다. 첫 번째 요청은 첫 번째 클라이언트로부터 수신된다. 일례로서 첫 번째 클라이언트는 중앙 데이터 센터에 대하여 원격 위치에 위치된 클라이언트이다. 본 방법은 또한 원격 중계기에서 두 번째 클라이언트로 두 번째 요청을 수신하는 단계(612)를 포함한다. 이 예에서 두 번째 요청은 가입 요청이며, 두 번째 클라이언트 또한 중앙 데이터 센터에 대하여 원격 위치에 위치된다. 원격 중계기는 가입 메시지를 중앙 중계기에 전송한다(614). 도시된 실시예에서 가입 메시지는 첫 번째 및 두 번째 클라이언트로부터 수신된 2개의 가입 요청을 조합한 것이어서 모든 가입 요청을 직접 중앙 중계기에 발송하는 시스템에 비하여 네트워크 대역폭이 절약된다. 가입 요청의 특성에 따라서는 취합이 수행되지 않을 수도 있다.
메시지(즉 공개 메시지)가 중앙 중계기에서 세 번째 클라이언트로부터 수신된다(616). 세 번째 클라이언트는 중앙 중계기와 함께 위치되는 클라이언트이거나 또 다른 중앙 중계기와 함께 위치되는 클라이언트이거나 또는 또 다른 원격 중계기와 통신하는 원격 클라이언트이어도 된다. 공개 메시지는 중앙 중계기로부터 원격 중계기에 전송된다(618). 공개 메시지는 공개 메시지에 추가하여 다른 정보를 포함할 수 있으며, 공개 메시지의 변형 등이어도 된다. 공개 메시지는 그 후 원격 중계기로부터 첫 번째 클라이언트 및 두 번째 클라이언트에게 전송된다(620). 메시지를 공개 메시지와 연관된 특정 메시지 타입에 가입한 클라이언트에게 전송하기 위해 가입 요청의 데이터베이스가 활용된다.
원격 클라이언트로부터 수신된 가입 요청에 추가하여, 중앙 클라이언트로부터 추가의 가입 요청이 수신될 수도 있다. 그러므로 원격 클라이언트 또는 중앙 클라이언트 중 하나로부터 공개 요청이 수신될 때 공개 요청에 연관된 특정 메시지 타입을 요청한 클라이언트가 요청에 따라 이들의 공개 메시지를 수신할 수 있다.
도 6에 도시된 구체적인 단계는 본 발명의 실시예에 따라 원격 클라이언트로부터 가입하고 중앙 클라이언트로부터 공표하는 특정 방법을 제공한다는 것을 이해하여야 한다. 대안의 실시예에 따라 다른 시퀀스의 단계가 수행될 수도 있다. 예컨대 본 발명의 대안의 실시예는 위에서 개략 설명된 단계를 상이한 순서로 수행할 수도 있다. 더욱이 도 6에 도시된 개개의 단계는 개개의 단계에 적합한 바대로 다양한 순서로 수행될 수 있는 다수의 서브 단계를 포함할 수 있다. 또한 특정 어플리케이션에 따라서는 추가의 단계가 추가되거나 제거될 수 있다. 당해 기술 분야에 통상의 지식을 가진 자는 다수의 변형예, 수정예 및 대안을 인지할 것이다.
도 7은 본 발명의 실시예에 따라 중앙 클라이언트로부터 가입하고 원격 클라이언트로부터 공표하는 방법을 도시하는 간략화된 흐름도이다. 본 방법은 중앙 중계기에서 첫 번째 클라이언트로부터 가입 요청을 수신하는 단계(710) 및 또 다른 중계기(추가의 중계기로 지칭됨)에서 두 번째 클라이언트로부터 공개 메시지를 포함하는 공개 요청을 수신하는 단계(712)를 포함한다. 이 예에서 첫 번째 클라이언트는 중앙 중계기와 함께 위치되는 클라이언트(중앙 클라이언트)이며 두 번째 클라이언트는 중앙 중계기에 대하여 원격 위치에 위치되는 클라이언트(원격 클라이언트)이다. 첫 번째 클라이언트가 중앙 중계기와 함께 위치되어 있는 것에 추가하여, 첫 번째 클라이언트는 중앙 중계기에 집적 접속될 수 있다. 추가의 중계기는 특정 구현예에 따라서는 중앙 중계기 또는 원격 중계기 중 하나이어도 된다.
추가의 중계기로부터 다수의 중앙 중계기 전부에 공개 요청이 전송된다(714). 추가의 중계기가 원격 중계기인 실시예에서 본 명세서에서 설명된 "전부에 공표" 방법에 따라 중앙 중계기 전부에 공개 요청이 전송된다. 추가의 중계기가 중앙 중계기이면 공개 요청은 이미 공개 요청을 수신한 추가의 중계기를 제외한 모든 중앙 중계기에 공표된다. 공개 메시지가 중앙 중계기로부터 첫 번째 클라이언트로 전송된다(716). 또한 공개 메시지는 중앙 중계기로부터 다른 클라이언트 또는 원격 중계기로 전송될 수 있다. 원격 클라이언트가 공개 메시지에 연관된 메시지 타입에 가입하였으면 공개 메시지를 클라이언트로 전송하는 것은 공개 메시지를 원격 중계기로 전송하고, 그리고나서 원격 클라이언트 및 가능하게는 다른 원격 클라리언트에 전송하는 것을 포함할 것이다.
도 7에 도시된 구체적인 단계는 본 발명의 실시예에 따라 중앙 클라이언트로부터 가입하고 원격 클라이언트로부터 공표하는 특정 방법을 제공한다는 것을 이해하여야 한다. 대안의 실시예에 따라 다른 시퀀스의 단계가 수행될 수도 있다. 예컨대 본 발명의 대안의 실시예는 위에서 개략 설명된 단계를 상이한 순서로 수행할 수도 있다. 더욱이 도 7에 도시된 개개의 단계는 개개의 단계에 적합한 바대로 다양한 순서로 수행될 수 있는 다수의 서브 단계를 포함할 수 있다. 또한 특정 어플리케이션에 따라서는 추가의 단계가 추가되거나 제거될 수 있다. 당해 기술 분야에 통상의 지식을 가진 자는 다수의 변형예, 수정예 및 대안을 인지할 것이다.
도 8은 본 발명의 실시예에 따라 중앙 클라이언트로부터 가입하고 중앙 클라이언트로부터 공표하는 방법을 도시하는 간략화된 흐름도이다. 본 방법은 첫 번째 중앙 중계기에서 첫 번째 클라이언트로부터 가입 요청을 수신하는 단계(810)를 포함한다. 본 방법은 또한 두 번째 중앙 중계기에서 두 번째 클라이언트로부터 공개 요청을 수신하는 단계(812)를 포함한다. 이 예에서 첫 번째 클라이언트 및 두 번째 클라이언트 모두는 중앙 클라이언트이다. 공개 요청에 연관된 공개 메시지는 두 번째 중앙 중계기로부터 첫 번째 중앙 중계기에 전송되고 또한 두 번째 중앙 중계기 이외의 다른 중앙 중계기에도 전송된다(814). 공개 메시지는 그 후 첫 번째 중앙 중계기로부터 첫 번째 클라이언트에게 전송된다(816).
도 8에 도시된 구체적인 단계는 본 발명의 실시예에 따라 중앙 클라이언트로부터 가입하고 중앙 클라이언트로부터 공표하는 특정 방법을 제공한다는 것을 이해하여야 한다. 대안의 실시예에 따라 다른 시퀀스의 단계가 수행될 수도 있다. 예컨대 본 발명의 대안의 실시예는 위에서 개략 설명된 단계를 상이한 순서로 수행할 수도 있다. 더욱이 도 8에 도시된 개개의 단계는 개개의 단계에 적합한 바대로 다양한 순서로 수행될 수 있는 다수의 서브 단계를 포함할 수 있다. 또한 특정 어플리케이션에 따라서는 추가의 단계가 추가되거나 제거될 수 있다. 당해 기술 분야에 통상의 지식을 가진 자는 다수의 변형예, 수정예 및 대안을 인지할 것이다.
도 9는 본 발명의 실시예에 따라 첫 번째 클라이언트로부터 가입하고 두 번째 클라이언트로부터 공표하는 방법을 도시하는 간략화된 흐름도이다. 도 9에 도시된 실시예에서 첫 번째 클라이언트는 원격 중계기를 통해 네트워크에 액세스하는 원격 클라이언트일 수도 있고, 또는 데이터 센터 내의 중앙 중계기와 함께 위치되는 중앙 클라이언트일 수도 있다. 추가로 첫 번째 클라이언트는 원거리에 위치되는 클라이언트일 수도 있으며, 본 명세서에서 설명된 계층 구조의 구현 전에 존재하는 리가시 클라이언트와 같이 데이터 센터 내의 중앙 중계기에 대한 직접 접속을 여전히 갖는다.
본 방법은 단일 중앙 중계기에서 첫 번째 클라이언트로부터 가입 요청을 수신하는 단계(910)를 포함한다. 가입 요청은 첫 번째 클라이언트가 수신에 관심을 두고 있는 특정 타입의 공개 메시지를 나타낸다. 가입 요청은 원격 클라이언트로부터 원격 중계기 및 그 후 하나의 중앙 중계기에 전송될 수 있다. 가입 요청은 중앙 클라이언트 또는 원거리에 위치되어 있지만 하나의 중앙 중계기에 직접 접속된 클라이언트로부터 전송될 수 있다. 본 방법은 또한 두 번째 중계기에서 두 번째 클라이언트로부터 공개 요청을 수신하는 단계(912)를 포함한다. 공개 요청은 첫 번째 클라이언트에 의해 지정된 특정 타입의 공개 메시지를 포함한다. 두 번째 클라이언트는 원격 중계기를 통해 네트워크에 액세스하는 원격 클라이언트일 수도 있고, 중앙 클라이언트일 수도 있으며, 또는 원거리에 위치되어 있지만 하나의 중앙 중계기에 직접 접속된 클라이언트일 수도 있다.
두 번째 중계기가 중앙 중계기인지의 여부에 대한 판정이 이루어진다(914). 두 번째 중계기가 원격 중계기이면 공개 메시지가 두 번째 중계기로부터 중앙 중계기 전부에 전송된다(920). 공개 메시지에 추가하여 가입 요청의 변형과 같은 추가의 정보가 전송될 수 있다. 두 번째 중계기가 중앙 중계기이면 공개 메시지는 두 번째 중계기로부터 이미 공개 메시지를 수신한 두 번째 중계기를 제외한 모든 중앙 중계기에 전송된다(922). 그러므로 가입 요청은 하나의 중앙 중계기에 제출되며 공개 요청, 공개 메시지 또는 이들의 일부의 조합이 중앙 중계기 전부에 전송된다.
가입 요청이 첫 번째 클라이언트에 연관된 것으로 판정되며(930), 공개 메시지가 단일 중앙 중계기로부터 첫 번째 클라이언트에게 전송된다(932). 첫 번째 클라이언트에 추가하여 다른 클라이언트 또한 가입할 수 있다는 것에 유의하여야 한다. 이 경우 공개 메시지는 적합한 중계기에 의해 이들 추가의 클라이언트에게 전송될 것이다.
도 9에 도시된 구체적인 단계는 본 발명의 실시예에 따라 첫 번째 클라이언트로부터 가입하고 두 번째 클라이언트로부터 공표하는 특정 방법을 제공한다는 것을 이해하여야 한다. 대안의 실시예에 따라 다른 시퀀스의 단계가 수행될 수도 있다. 예컨대 본 발명의 대안의 실시예는 위에서 개략 설명된 단계를 상이한 순서로 수행할 수도 있다. 더욱이 도 9에 도시된 개개의 단계는 개개의 단계에 적합한 바대로 다양한 순서로 수행될 수 있는 다수의 서브 단계를 포함할 수 있다. 또한 특정 어플리케이션에 따라서는 추가의 단계가 추가되거나 제거될 수 있다. 당해 기술 분야에 통상의 지식을 가진 자는 다수의 변형예, 수정예 및 대안을 인지할 것이다.
공표 및 가입 시스템에 추가의 신뢰성을 부가하기 위해, 중앙 중계기가 이들 중앙 중계기에 가입 요청을 보낸 원격 중계기 및 중앙 클라이언트뿐만 아니라 마찬가지로 다른 중앙 중계기에도 메시지를 공표할 수 있는 "대신 공표(publish on behalf of)" 기능이 구현될 수 있다. 도 1b를 참조하면 원격 중계기(122)와 중앙 중계기(140, 142) 간의 접속이 다운되면 중앙 중계기(130 및/또는 132)는 이들이 원격 중계기(122)로부터 공개 요청을 수신한 후에 이 공개 요청을 재전송하도록 구성될 수 있다. 이러한 재전송은 중앙 중계기(140/142)와 원격 중계기(122) 간의 접속 장애에도 불구하고 중앙 중계기(140/142)에 메시지를 제공할 것이다. 그 다음에 중앙 중계기(140/142)가 메시지 그룹에 가입한 원격 중계기/중앙 클라이언트에게 메시지를 전송할 수 있다.
이 특징은 시스템 조작자로부터의 입력에 응답하여 구현될 수도 있고, 또는 원격 중계기(122)와 중앙 중계기(140/142) 간에 접속이 상실되었다는 판정에 기초하여 자동으로 구현될 수도 있다. 네트워크 사용불능(network outage)의 경우 이 백업 시스템은 네트워크 사용불능이 존재함에도 불구하고 메시지가 공표될 수 있도록 할 것이다. 원래의 중앙 중계기에 대한 접속을 상실한 원격 중계기 대신에 공표하는 이 추가의 기능은 원격 사이트와 데이터 센터 간의 접속이 일반적으로 2개의 데이터 센터 간의 고급 접속보다 문제가 많기 때문에 유용하다.
본 명세서에서 설명된 예 및 방법은 단지 예시를 목적으로 하는 것이며 이들의 다양한 수정예 또는 변경예가 당업자에게 제안될 것이고, 이들은 본 출원의 사상 및 범위와 첨부된 첨구범위의 요지 내에 포함될 것이다.

Claims (31)

  1. ⅰ) 다수의 첫 번째 중계기 중 하나에서 첫 번째 클라이언트로부터 가입 요청을 수신하는 단계;
    ⅱ) 가입 요청을 다수의 첫 번째 중계기 중 하나로부터 다수의 중앙 중계기 중 하나에만 전송하는 단계;
    ⅲ) 다수의 첫 번째 중계기 중 또 다른 하나에서 두 번째 클라이언트로부터 공개 메시지를 포함하는 공개 요청을 수신하는 단계;
    ⅳ) 공개 메시지를 다수의 첫 번째 중계기 중 또 다른 하나로부터 다수의 중앙 중계기 전부에 전송하는 단계;
    ⅴ) 공개 메시지를 다수의 중앙 중계기 중 적어도 하나로부터 다수의 첫 번째 중계기 중 하나에 전송하는 단계; 및
    ⅵ)공개 메시지를 다수의 첫 번째 중계기 중 하나로부터 첫 번째 클라이언트에게 전송하는 단계;
    를 포함하는 공개 메시지의 공표방법.
  2. 제 1항에 있어서, 상기 첫 번째 중계기는 원격 중계기를 포함함을 특징으로 하는 공표방법.
  3. 제 2항에 있어서, 다수의 상기 원격 중계기는 다수의 중앙 중계기의 각각으로부터 지리적으로 분리됨을 특징으로 하는 공표방법.
  4. 제 1항에 있어서, 상기 다수의 첫 번째 중계기 중 하나에서 첫 번째 클라이언트로부터 가입 요청을 수신하는 단계는 첫 번째 클라이언트 및 다수의 첫 번째 중계기 중 하나와 통신하는 원격 중계기로부터 가입 요청을 수신하는 단계를 포함함을 특징으로 하는 공표방법.
  5. 제 4항에 있어서, 상기 공개 메시지를 다수의 첫 번째 중계기 중 하나로부터 첫 번째 클라이언트에게 전송하는 단계는
    ⅰ) 공개 메시지를 다수의 첫 번째 중계기 중 하나로부터 원격 중계기에 전송하는 단계; 및
    ⅱ) 그 후 공개 메시지를 원격 중계기로부터 첫 번째 클라이언트에게 전송하는 단계;
    를 포함함을 특징으로 하는 공표방법.
  6. ⅰ) 원격 중계기에서 첫 번째 클라이언트로부터 타겟을 포함하는 첫 번째 요청을 수신하는 단계;
    ⅱ) 원격 중계기에서 두 번째 클라이언트로부터 타겟을 포함하는 두 번째 요청을 수신하는 단계;
    ⅲ) 원격 중계기로부터 중앙 중계기에 타겟을 포함하는 가입 메시지를 전송하는 단계;
    ⅳ) 중앙 중계기에서 세 번째 클라이언트로부터 패턴의 적어도 일부분이 타겟과 매칭되는 패턴을 포함하는 공개 메시지를 수신하는 단계;
    ⅴ) 공개 메시지의 적어도 일부분을 중앙 중계기로부터 원격 중계기에 전송하는 단계; 및
    ⅵ) 공개 메시지의 적어도 일부분을 원격 중계기로부터 첫 번째 클라이언트 및 두 번째 클라이언트에게 전송하는 단계;
    를 포함하는 공개 메시지의 공표방법.
  7. 제 6항에 있어서, 상기 패턴은 첫 번째 길이의 문자열(string)이고 타겟은 첫 번째 길이보다 작은 두 번째 길이의 문자열임을 특징으로 하는 공표방법.
  8. 제 6항에 있어서, 상기 첫 번째 요청은 가입 메시지이며 첫 번째 클라이언트는 원격 클라이언트임을 특징으로 하는 공표방법.
  9. 제 6항에 있어서, 상기 두 번째 요청은 가입 메시지이며 두 번째 클라이언트는 원격 클라이언트임을 특징으로 하는 공표방법.
  10. 제 6항에 있어서, 상기 첫 번째 클라이언트 및 두 번째 클라이언트는 원격 중계기와 함께 위치되어 있음을 특징으로 하는 공표방법.
  11. 제 6항에 있어서, 상기 방법은
    ⅰ) 또 다른 중앙 중계기에서 네 번째 클라이언트로부터 타겟을 포함하는 세 번째 요청을 수신하는 단계; 및
    ⅱ) 공개 메시지의 적어도 일부분을 또 다른 중앙 중계기로부터 네 번째 클라이언트에게 전송하는 단계;
    를 더욱 포함함을 특징으로 하는 공표방법.
  12. 제 11항에 있어서, 상기 네 번째 클라이언트는 중앙 클라이언트를 포함함을 특징으로 하는 공표방법.
  13. 제 6항에 있어서, 상기 세 번째 클라이언트는 중앙 클라이언트를 포함함을 특징으로 하는 공표방법.
  14. ⅰ) 다수의 중앙 중계기 중 하나의 중앙 중계기에서 첫 번째 클라이언트로부터 타겟을 포함하는 가입 요청을 수신하는 단계;
    ⅱ) 다른 하나의 중계기에서 두 번째 클라이언트로부터 패턴을 포함하는 공개 메시지를 수신하는 단계;
    ⅲ) 타겟이 패턴의 적어도 일부분과 매칭되는지를 판정하는 단계;
    ⅳ) 공개 메시지의 적어도 일부분을 다른 하나의 중계기로부터 다수의 중앙 중계기 전부에 전송하는 단계; 및
    ⅴ) 공개 메시지의 적어도 일부분을 적어도 중앙 중계기로부터 첫 번째 클라이언트에게 전송하는 단계;
    를 포함하는 공개 메시지의 공표방법.
  15. 제 14항에 있어서, 상기 다른 하나의 중계기는 원격 중계기를 포함함을 특징으로 하는 공표방법.
  16. 제 14항에 있어서, 상기 공개 메시지는 다른 하나의 중계기에 의해 수신된 공개 요청에 포함됨을 특징으로 하는 공표방법.
  17. 제 14항에 있어서, 상기 방법은
    ⅰ) 두 번째 중앙 중계기에서 두 번째 클라이언트로부터 타겟을 포함하는 두 번째 가입 요청을 수신하는 단계; 및
    ⅱ) 공개 메시지의 적어도 일부분을 두 번째 중앙 중계기로부터 두 번째 클라이언트에게 전송하는 단계;
    를 더욱 포함함을 특징으로 하는 공표방법.
  18. 제 14항에 있어서, 상기 첫 번째 클라이언트는 중앙 중계기와 함께 위치한 클라이언트를 포함함을 특징으로 하는 공표방법.
  19. 제 14항에 있어서, 상기 두 번째 클라이언트는 원격 클라이언트를 포함함을 특징으로 하는 공표방법.
  20. ⅰ) 다수의 중앙 중계기의 첫 번째 중앙 중계기에서 첫 번째 클라이언트로부터 타겟을 포함하는 가입 요청을 수신하는 단계;
    ⅱ) 다수의 중앙 중계기의 두 번째 중앙 중계기에서 두 번째 클라이언트로부터 패턴을 포함한 공개 메시지를 포함하는 공개 요청을 수신하는 단계;
    ⅲ) 타겟이 패턴에 상호 관련되어 있는지를 판정하는 단계;
    ⅳ) 공개 메시지를 두 번째 중앙 중계기로부터 첫 번째 중앙 중계기와 다수의 중앙 중계기 내의 다른 중앙 중계기에 전송하는 단계; 및
    ⅴ) 공개 메시지를 첫 번째 중앙 중계기로부터 첫 번째 클라이언트에게 전송하는 단계;
    를 포함하는 공개 메시지의 공표방법.
  21. 제 20항에 있어서, 상기 첫 번째 클라이언트는 첫 번째 중앙 중계기와 함께 위치한 클라이언트를 포함함을 특징으로 하는 공표방법.
  22. 제 20항에 있어서, 상기 첫 번째 클라이언트는 원격 중계기를 포함함을 특징으로 하는 공표방법.
  23. 제 20항에 있어서, 상기 두 번째 중앙 중계기는 첫 번째 중앙 중계기를 포함함을 특징으로 하는 공표방법.
  24. 제 20항에 있어서, 상기 공개 메시지를 전송하는 단계는 공개 요청의 일부분을 전송하는 단계를 포함함을 특징으로 하는 공표방법.
  25. ⅰ) 다수의 중앙 중계기 중 하나의 중앙 중계기에서 첫 번째 클라이언트로부터 타겟에 관련된 조건(condition)을 포함하는 가입 요청을 수신하는 단계;
    ⅱ) 두 번째 중계기에서 두 번째 클라이언트로부터 공개 메시지를 포함하는 공개 요청을 수신하는 단계;
    ⅲ) 두 번째 중계기가 중앙 중계기가 아닌 경우 공개 메시지를 두 번째 중계기로부터 다수의 중앙 중계기 전부에 전송하는 단계;
    ⅳ) 두 번째 중계기가 중앙 중계기인 경우 공개 메시지를 두 번째 중계기를 제외한 다수의 중앙 중계기 전부에 전송하는 단계;
    ⅴ) 공개 메시지 내의 패턴이 타겟에 관련된 조건을 충족하는지를 판정하는 단계; 및
    ⅵ) 공개 메시지를 하나의 중앙 중계기로부터 첫 번째 클라이언트에게 전송하는 단계;
    로 이루어진 패턴을 포함하는 공개 메시지의 공표방법.
  26. 제 25항에 있어서, 상기 다수의 중앙 중계기 중 하나의 중앙 중계기에서 첫 번째 클라이언트로부터 가입 요청을 수신하는 단계는
    ⅰ) 원격 중계기에서 첫 번째 클라이언트로부터 가입 요청을 수신하는 단계; 및
    ⅱ) 가입 요청을 원격 중계기로부터 하나의 중앙 중계기에 전송하는 단계;
    를 포함함을 특징으로 하는 공표방법.
  27. 제 25항에 있어서, 상기 첫 번째 클라이언트는 원격 클라이언트를 포함함을 특징으로 하는 공표방법.
  28. 제 25항에 있어서, 상기 메시지를 하나의 중앙 중계기로부터 첫 번째 클라이언트에게 전송하는 단계는
    ⅰ) 메시지를 하나의 중앙 중계기로부터 원격 중계기에 전송하는 단계; 및
    ⅱ) 메시지를 원격 중계기로부터 첫 번째 클라이언트에게 전송하는 단계;
    를 포함함을 특징으로 하는 공표방법.
  29. 제 25항에 있어서, 상기 방법은
    ⅰ) 세 번째 중계기에서 세 번째 클라이언트로부터 타겟에 관련된 조건을 포함하는 다른 하나의 가입 요청을 수신하는 단계; 및
    ⅱ) 공개 메시지를 세 번째 중계기로부터 세 번째 클라이언트에게 전송하는 단계;
    를 더욱 포함함을 특징으로 하는 공표방법.
  30. 제 29항에 있어서, 상기 세 번째 중계기는 두 번째 중계기임을 특징으로 하는 공표방법.
  31. 제 25항에 있어서, 상기 첫 번째 클라이언트는 가입 요청을 하나의 원격 중계기에 전송함을 특징으로 하는 공표방법.
KR1020127011878A 2009-10-30 2010-10-29 계층적 공표 및 가입 시스템 KR20120074300A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/610,066 US9047589B2 (en) 2009-10-30 2009-10-30 Hierarchical publish and subscribe system
US12/610,066 2009-10-30

Publications (1)

Publication Number Publication Date
KR20120074300A true KR20120074300A (ko) 2012-07-05

Family

ID=43922596

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127011878A KR20120074300A (ko) 2009-10-30 2010-10-29 계층적 공표 및 가입 시스템

Country Status (6)

Country Link
US (3) US9047589B2 (ko)
EP (1) EP2494461B1 (ko)
KR (1) KR20120074300A (ko)
CN (1) CN102640137A (ko)
CA (1) CA2778980A1 (ko)
WO (1) WO2011053847A1 (ko)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100970122B1 (ko) * 2001-11-01 2010-07-13 베리사인 인코포레이티드 고속 논-콘커런시 제어된 데이터베이스
US9292612B2 (en) 2009-04-22 2016-03-22 Verisign, Inc. Internet profile service
US8527945B2 (en) 2009-05-07 2013-09-03 Verisign, Inc. Method and system for integrating multiple scripts
US8510263B2 (en) 2009-06-15 2013-08-13 Verisign, Inc. Method and system for auditing transaction data from database operations
US8977705B2 (en) * 2009-07-27 2015-03-10 Verisign, Inc. Method and system for data logging and analysis
US8856344B2 (en) 2009-08-18 2014-10-07 Verisign, Inc. Method and system for intelligent many-to-many service routing over EPP
US8327019B2 (en) * 2009-08-18 2012-12-04 Verisign, Inc. Method and system for intelligent routing of requests over EPP
US8175098B2 (en) 2009-08-27 2012-05-08 Verisign, Inc. Method for optimizing a route cache
US8370443B2 (en) * 2009-09-08 2013-02-05 Microsoft Corporation Reliable messaging using publish subscribe mechanism
US9235829B2 (en) 2009-10-30 2016-01-12 Verisign, Inc. Hierarchical publish/subscribe system
US9569753B2 (en) 2009-10-30 2017-02-14 Verisign, Inc. Hierarchical publish/subscribe system performed by multiple central relays
US8982882B2 (en) 2009-11-09 2015-03-17 Verisign, Inc. Method and system for application level load balancing in a publish/subscribe message architecture
US9269080B2 (en) * 2009-10-30 2016-02-23 Verisign, Inc. Hierarchical publish/subscribe system
US9047589B2 (en) 2009-10-30 2015-06-02 Verisign, Inc. Hierarchical publish and subscribe system
US9762405B2 (en) * 2009-10-30 2017-09-12 Verisign, Inc. Hierarchical publish/subscribe system
US8935330B2 (en) 2011-05-11 2015-01-13 International Business Machines Corporation Redirecting messages in a publish/subscribe messaging system
CN103457826B (zh) * 2012-06-01 2019-02-12 中兴通讯股份有限公司 一种消息发送方法、系统及客户端
EP2680537B1 (en) * 2012-06-27 2016-09-28 Verisign, Inc. Hierarchical publish/subscribe system
US8730599B2 (en) 2012-10-01 2014-05-20 Apple Inc. Piezoelectric and MEMS actuator
CN102984174B (zh) * 2012-12-21 2016-04-06 北京邮电大学 一种发布订阅系统中可靠性保障方法及系统
US9894009B2 (en) * 2014-08-29 2018-02-13 Microsoft Technology Licensing, Llc Client device and host device subscriptions
US20170076413A1 (en) * 2015-09-16 2017-03-16 eBackpack, Inc. Gradebook clearinghouse
WO2017214811A1 (zh) * 2016-06-13 2017-12-21 深圳天珑无线科技有限公司 分布式网络的消息处理方法及节点
WO2017214817A1 (zh) * 2016-06-13 2017-12-21 深圳天珑无线科技有限公司 分布式网络的消息处理方法及节点
US10708320B2 (en) * 2017-06-27 2020-07-07 Atlassian Pty Ltd Selective internal forwarding in conferences with distributed media servers
CN109391500B (zh) * 2017-08-11 2021-08-31 华为技术有限公司 一种配置管理方法、装置及设备
US11303597B2 (en) * 2017-09-08 2022-04-12 Nader Asghari Kamrani Blockchain-based community messaging system and method thereof
CN108566299B (zh) * 2018-04-20 2021-02-19 浪潮集团有限公司 一种物联网云平台终端组管理方法
CN110275745A (zh) * 2019-04-11 2019-09-24 上海盛付通电子支付服务有限公司 一种管理资讯账号的方法与设备
US12088547B2 (en) * 2022-04-14 2024-09-10 Microsoft Technology Licensing, Llc Efficient forwarding of messages through brokers by topic
US20230336547A1 (en) * 2022-04-14 2023-10-19 Microsoft Technology Licensing, Llc Efficient attribute-based access control authorization for a message broker

Family Cites Families (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2345157B (en) 1998-12-23 2003-06-18 Ibm Publish and subscribe data processing apparatus, method and computer program product with declaration of a unique publisher broker
US6216132B1 (en) 1997-11-20 2001-04-10 International Business Machines Corporation Method and system for matching consumers to events
US6487583B1 (en) 1998-09-15 2002-11-26 Ikimbo, Inc. System and method for information and application distribution
US6578066B1 (en) 1999-09-17 2003-06-10 Alteon Websystems Distributed load-balancing internet servers
GB2345158A (en) * 1998-12-23 2000-06-28 Ibm Publish and subscribe data processing with ability to specify a local publication/subscription
DE60037502T2 (de) 1999-03-03 2008-12-11 Ultradns, Inc., Danville Domänennamen-Auflösungssystem mit einem oder mehreren Servern
GB2354912B (en) 1999-09-17 2004-03-10 Ericsson Telefon Ab L M Routing in a packet switched network
US7020697B1 (en) 1999-10-01 2006-03-28 Accenture Llp Architectures for netcentric computing systems
KR100856149B1 (ko) 1999-11-26 2008-09-03 네테카 인코포레이티드 전자 메일 서버 및 전자 메일 통신을 용이하게 하기 위한 방법
US7734815B2 (en) 2006-09-18 2010-06-08 Akamai Technologies, Inc. Global load balancing across mirrored data centers
US7725602B2 (en) 2000-07-19 2010-05-25 Akamai Technologies, Inc. Domain name resolution using a distributed DNS network
WO2002069608A2 (en) 2001-01-16 2002-09-06 Akamai Technologies, Inc. Using virtual domain name service (dns) zones for enterprise content delivery
US7133869B2 (en) 2001-03-06 2006-11-07 Knowledge Vector, Inc. Methods and systems for and defining and distributing information alerts
US6944135B2 (en) 2001-07-16 2005-09-13 International Business Machines Corporation Methods and arrangements for establishing a group collaboration session utilizing multiple multicast distribution trees
KR100970122B1 (ko) 2001-11-01 2010-07-13 베리사인 인코포레이티드 고속 논-콘커런시 제어된 데이터베이스
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
US7523198B2 (en) 2002-01-25 2009-04-21 Architecture Technology Corporation Integrated testing approach for publish/subscribe network systems
US20030208539A1 (en) 2002-05-02 2003-11-06 Gildenblat Ilya G. Event-driven information publication
US7672275B2 (en) 2002-07-08 2010-03-02 Precache, Inc. Caching with selective multicasting in a publish-subscribe network
US20040078450A1 (en) 2002-07-08 2004-04-22 Tsu-Wei Chen Packet routing via payload inspection for digital content delivery
US20050105513A1 (en) 2002-10-27 2005-05-19 Alan Sullivan Systems and methods for direction of communication traffic
US7310686B2 (en) 2002-10-27 2007-12-18 Paxfire, Inc. Apparatus and method for transparent selection of an Internet server based on geographic location of a user
US20050027882A1 (en) 2003-05-05 2005-02-03 Sullivan Alan T. Systems and methods for direction of communication traffic
GB0305066D0 (en) 2003-03-06 2003-04-09 Ibm System and method for publish/subscribe messaging
US7200675B2 (en) 2003-03-13 2007-04-03 Microsoft Corporation Summary-based routing for content-based event distribution networks
US7769826B2 (en) 2003-06-26 2010-08-03 Nominum, Inc. Systems and methods of providing DNS services using separate answer and referral caches
US7761570B1 (en) 2003-06-26 2010-07-20 Nominum, Inc. Extensible domain name service
JP4368184B2 (ja) 2003-11-19 2009-11-18 株式会社日立製作所 ブラックリストによる緊急アクセス遮断装置
US8086492B2 (en) 2004-03-23 2011-12-27 Douglas Ashbaugh Frame-based network advertising and exchange therefor
US20060031432A1 (en) 2004-05-21 2006-02-09 Bea Systens, Inc. Service oriented architecture with message processing pipelines
GB0420812D0 (en) * 2004-09-18 2004-10-20 Ibm A retained publish/subscribe system
US7761678B1 (en) 2004-09-29 2010-07-20 Verisign, Inc. Method and apparatus for an improved file repository
US7822801B2 (en) 2004-10-14 2010-10-26 International Business Machines Corporation Subscription propagation in a high performance highly available content-based publish/subscribe system
US7895158B2 (en) 2004-12-27 2011-02-22 Solace Systems Inc. Data logging in content routed networks
US7685270B1 (en) 2005-03-31 2010-03-23 Amazon Technologies, Inc. Method and apparatus for measuring latency in web services
US20060235885A1 (en) 2005-04-18 2006-10-19 Virtual Reach, Inc. Selective delivery of digitally encoded news content
EP1891539A2 (en) 2005-05-24 2008-02-27 Paxfire, Inc. Enhanced features for direction of communication traffic
US7546368B2 (en) 2005-06-01 2009-06-09 Neustar, Inc. Systems and methods for isolating local performance variation in website monitoring
GB2428828A (en) * 2005-07-30 2007-02-07 Ibm Publish/subscribe messaging system
US20070061282A1 (en) 2005-09-14 2007-03-15 Nec Laboratories America, Inc. Data network information distribution
US7477575B2 (en) 2005-09-23 2009-01-13 Verisign, Inc. Redundant timer system and method
GB0521355D0 (en) 2005-10-19 2005-11-30 Ibm Publish/subscribe system and method for managing subscriptions
US7680937B2 (en) 2005-12-22 2010-03-16 Microsoft Corporation Content publication
JP2009524355A (ja) 2006-01-20 2009-06-25 パックスファイアー インコーポレイテッド 通信トラフィックを判別し、制御するためのシステムおよび方法
WO2007114606A1 (en) 2006-03-30 2007-10-11 Nhn Corporation Server mirroring method and system therefor
US8606926B2 (en) 2006-06-14 2013-12-10 Opendns, Inc. Recursive DNS nameserver
US8713188B2 (en) 2007-12-13 2014-04-29 Opendns, Inc. Per-request control of DNS behavior
WO2008021512A2 (en) 2006-08-17 2008-02-21 Neustar, Inc. System and method for handling jargon in communication systems
EP2054830A2 (en) 2006-08-17 2009-05-06 Neustar, Inc. System and method for managing domain policy for interconnected communication networks
US8234379B2 (en) 2006-09-14 2012-07-31 Afilias Limited System and method for facilitating distribution of limited resources
US20080133646A1 (en) 2006-12-04 2008-06-05 Bea Systems, Inc. System and method for fully distributed network with agents
US20080155254A1 (en) 2006-12-20 2008-06-26 Comodo Ca, Ltd. Method and system for installing a root certificate on a computer with a root update mechanism
WO2008127762A1 (en) 2007-02-01 2008-10-23 Invidi Technologies Corporation Targeting content based on location
US7694016B2 (en) 2007-02-07 2010-04-06 Nominum, Inc. Composite DNS zones
US8688850B2 (en) 2007-04-10 2014-04-01 International Business Machines Corporation Method for inter-site data stream transfer in cooperative data stream processing
EP2143230A1 (en) * 2007-04-20 2010-01-13 Tekelec Methods, systems, and computer program products for providing fault-tolerant service interaction and mediation function in a communications network
US20080307436A1 (en) 2007-06-06 2008-12-11 Microsoft Corporation Distributed publish-subscribe event system with routing of published events according to routing tables updated during a subscription process
US8527404B2 (en) 2007-07-19 2013-09-03 First Data Corporation Merchant-initiated adjustments
US8307054B2 (en) 2007-08-30 2012-11-06 Software Ag Systems and/or methods for location transparent routing and execution of processes
US7925747B2 (en) 2007-10-18 2011-04-12 Neustar, Inc. System and method for sharing web performance monitoring data
US8566423B2 (en) 2007-11-22 2013-10-22 International Business Machines Corporation Scalable publish/subscribe messaging systems and methods
US8135594B2 (en) * 2008-01-16 2012-03-13 International Business Machines Corporation Limiting proxy subscription propagation in a publish/subscribe message broker network
US20090235359A1 (en) 2008-03-12 2009-09-17 Comodo Ca Limited Method and system for performing security and vulnerability scans on devices behind a network security device
US7925782B2 (en) 2008-06-30 2011-04-12 Amazon Technologies, Inc. Request routing using network computing components
US20090282027A1 (en) 2008-09-23 2009-11-12 Michael Subotin Distributional Similarity Based Method and System for Determining Topical Relatedness of Domain Names
US9172713B2 (en) 2008-09-24 2015-10-27 Neustar, Inc. Secure domain name system
US8495127B2 (en) 2008-09-26 2013-07-23 International Business Machines Corporation Improving scalability and throughput of a publish/subscribe network
US7930393B1 (en) 2008-09-29 2011-04-19 Amazon Technologies, Inc. Monitoring domain allocation performance
US9292612B2 (en) 2009-04-22 2016-03-22 Verisign, Inc. Internet profile service
US8521908B2 (en) 2009-04-07 2013-08-27 Verisign, Inc. Existent domain name DNS traffic capture and analysis
US8676989B2 (en) 2009-04-23 2014-03-18 Opendns, Inc. Robust domain name resolution
US8527945B2 (en) 2009-05-07 2013-09-03 Verisign, Inc. Method and system for integrating multiple scripts
US8682342B2 (en) 2009-05-13 2014-03-25 Microsoft Corporation Constraint-based scheduling for delivery of location information
US8510263B2 (en) 2009-06-15 2013-08-13 Verisign, Inc. Method and system for auditing transaction data from database operations
US8453163B2 (en) 2009-06-29 2013-05-28 Software Ag Usa, Inc. Systems and/or methods for policy-based JMS broker clustering
US8880524B2 (en) * 2009-07-17 2014-11-04 Apple Inc. Scalable real time event stream processing
US8977705B2 (en) 2009-07-27 2015-03-10 Verisign, Inc. Method and system for data logging and analysis
US8380870B2 (en) 2009-08-05 2013-02-19 Verisign, Inc. Method and system for filtering of network traffic
US20110035497A1 (en) 2009-08-05 2011-02-10 Dynamic Network Services, Inc. System and method for providing global server load balancing
US8327019B2 (en) 2009-08-18 2012-12-04 Verisign, Inc. Method and system for intelligent routing of requests over EPP
US8175098B2 (en) 2009-08-27 2012-05-08 Verisign, Inc. Method for optimizing a route cache
US9384097B2 (en) 2009-09-09 2016-07-05 Verisign, Inc. Method and system for recovery of a failed registry
US8291025B2 (en) 2009-10-23 2012-10-16 International Business Machines Corporation Controlling retention of publication
US9762405B2 (en) 2009-10-30 2017-09-12 Verisign, Inc. Hierarchical publish/subscribe system
US9569753B2 (en) 2009-10-30 2017-02-14 Verisign, Inc. Hierarchical publish/subscribe system performed by multiple central relays
US9047589B2 (en) 2009-10-30 2015-06-02 Verisign, Inc. Hierarchical publish and subscribe system
US9235829B2 (en) 2009-10-30 2016-01-12 Verisign, Inc. Hierarchical publish/subscribe system
US8982882B2 (en) 2009-11-09 2015-03-17 Verisign, Inc. Method and system for application level load balancing in a publish/subscribe message architecture
US9269080B2 (en) 2009-10-30 2016-02-23 Verisign, Inc. Hierarchical publish/subscribe system
US9286369B2 (en) 2009-12-30 2016-03-15 Symantec Corporation Data replication across enterprise boundaries

Also Published As

Publication number Publication date
EP2494461B1 (en) 2018-04-11
US20190109805A1 (en) 2019-04-11
US20150256490A1 (en) 2015-09-10
EP2494461A1 (en) 2012-09-05
EP2494461A4 (en) 2015-01-14
US9047589B2 (en) 2015-06-02
US11184299B2 (en) 2021-11-23
US10178055B2 (en) 2019-01-08
CN102640137A (zh) 2012-08-15
WO2011053847A1 (en) 2011-05-05
US20110106891A1 (en) 2011-05-05
CA2778980A1 (en) 2011-05-05

Similar Documents

Publication Publication Date Title
US11184299B2 (en) Hierarchical publish and subscribe system
US9124592B2 (en) Method and system for application level load balancing in a publish/subscribe message architecture
US10367852B2 (en) Multiplexed demand signaled distributed messaging
US9235829B2 (en) Hierarchical publish/subscribe system
US9269080B2 (en) Hierarchical publish/subscribe system
US9762405B2 (en) Hierarchical publish/subscribe system
JP3956365B2 (ja) 分散コンピュータ・ネットワーク内の資源要求に応答するシステムおよび方法
US9569753B2 (en) Hierarchical publish/subscribe system performed by multiple central relays
US9253243B2 (en) Systems and methods for network virtualization
US20020007374A1 (en) Method and apparatus for supporting a multicast response to a unicast request for a document
US20090113024A1 (en) Multicase Downloading Using Path Information
US20030229674A1 (en) Internet scaling in a PUB/SUB ENS
WO2003090423A1 (en) Method for implementing content delivery network (cdn) internetworking, respective networks and interface component
CN108540367B (zh) 一种消息处理方法及系统
EP2680539B1 (en) Hierarchical publish/subscribe system
Wang et al. NCDN: A Node‐Failure Resilient CDN Solution with Reinforcement Learning Optimization
EP2680537B1 (en) Hierarchical publish/subscribe system
EP2680538A1 (en) Hierarchical publish/subscribe system

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid