KR20120088744A - 공표/구독 메시지 아키텍쳐 내의 애플리케이션 레벨 부하 균형을 위한 방법 및 시스템 - Google Patents

공표/구독 메시지 아키텍쳐 내의 애플리케이션 레벨 부하 균형을 위한 방법 및 시스템 Download PDF

Info

Publication number
KR20120088744A
KR20120088744A KR1020127012215A KR20127012215A KR20120088744A KR 20120088744 A KR20120088744 A KR 20120088744A KR 1020127012215 A KR1020127012215 A KR 1020127012215A KR 20127012215 A KR20127012215 A KR 20127012215A KR 20120088744 A KR20120088744 A KR 20120088744A
Authority
KR
South Korea
Prior art keywords
central
repeater
message
remote
repeaters
Prior art date
Application number
KR1020127012215A
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 KR20120088744A publication Critical patent/KR20120088744A/ko

Links

Images

Classifications

    • 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/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
    • 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/21Monitoring or handling of messages
    • H04L51/214Monitoring or handling of messages using selective forwarding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/403Arrangements for multi-party communication, e.g. for conferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/288Distributed intermediate devices, i.e. intermediate devices for interaction with other intermediate devices on the same level
    • 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/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • 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/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams

Abstract

메시지를 공표하는 방법은 첫 번째 클라이언트로부터 첫 번째 원격 중계기에서 구독 요청을 수신하는 단계 및 첫 번째 세트의 중앙 중계기의 각각에 원격 중계기로부터의 구독 메시지를 전송하는 단계를 포함한다. 상기 방법은 또한 두 번째 클라이언트로부터 두 번째 원격 중계기에서 공표 요청을 수신하는 단계 및 두 번째 원격 중계기로부터의 공표 메시지를 첫 번째 세트의 중앙 중계기 중 첫 번째 중앙 중계기 및 두 번째 세트의 중앙 중계기 중 두 번째 중앙 중계기에 전송하는 단계를 포함한다. 상기 방법은 타겟이 패턴의 적어도 일부와 매치하는지를 첫 번째 중앙 중계기에서 결정하는 단계, 메시지열을 첫 번째 중앙 중계기에서 첫 번째 원격 중계기로 전송하는 단계 및 타겟이 패턴의 적어도 일부와 매치하는지를 첫 번째 원격 중계기에서 결정하는 단계; 및 메시지열을 첫 번째 클라이언트로 전송하는 단계를 더 포함한다.

Description

공표/구독 메시지 아키텍쳐 내의 애플리케이션 레벨 부하 균형을 위한 방법 및 시스템{Method and system for application level load balancing in a publish/subscribe message architecture}
본 발명은 공표/구독 메시지 아키텍쳐에서의 애플리케이션 레벨 부하 균형(load balancing)을 위한 방법 및 시스템에 대한 것이다.
공표 및 구독(공표/구독) 시스템은 비-동기화된 메시징 시스템이다. 메시지는 클래스로 분류되며 구독자가 하나 이상의 클래스에 대한 관심을 서버에게 표현한다. 메시지 공표자는 상기 메시지를 특정 수신자(구독자)에게 보내지 않고, 상기 메시지를 (만약 있다면) 어떤 구독자가 상기 메시지를 수신할지 여부에 대한 지식 없이 서버에게 공표한다. 메시지가 공표를 위해 수신될 때 서버는 메시지를 메시지와 연관된 클래스에 대해 관심을 표현한 구독자에게 전송한다. 따라서 공표자 및 구독자는 공표 및 구독 시스템에서 디-커플링되며 서로 독립적으로 작동한다.
최초의 공표 및 구독 시스템은 아이시스 툴킷(Isis Toolkit) 내의 "뉴스" 서브시스템인데 이는 운영체제 원리 컨퍼런스(Operating Systems Principles conference)에 대한 1987 ACM 심포지엄에서 논문 "Exploiting Virtual Synchrony in Distributed System"에 설명되어 있다(p.123-138).
각 사용자가 다양한 클래스의 메시지를 구독함에 따라 구독자는 공표된 총 메시지의 서브세트만을 통상적으로 수신한다. 예컨대 구독자가 메시지의 토픽을 기초로 해서 메시지에 대해 구독할 수 있다. 토픽-기반 시스템 내의 구독자는 그들이 구독하는 토픽에 대해 공표된 모든 메시지를 수신할 것이다. 하나의 토픽에 대한 모든 구독자는 동일한 메시지를 수신한다. 또 하나의 예로서 구독자가 메시지의 콘텐트를 기초로 해서 메시지에 대해 구독할 수 있다. 콘텐트-기반 시스템에서 메시지의 속성이나 콘텐츠가 구독자에 의해 정해진 제약과 매치하는 경우에 한하여 메시지가 오직 구독자에게 전달될 수 있다. 일부 공표 및 구독 시스템은 복합 방식으로 토픽과 콘텐트를 조합한다.
통상적인 공표 및 구독 시스템에서 서버는 토픽이나 콘텐트를 기초로 해서 메시지를 수신하기를 원하는 클라이언트로부터 구독 요청을 수신한다. 사용자가 메시지를 공표하기를 원할 때 상기 메시지는 상기 서버에게 보내지는데, 상기 서버는 이후 메시지 특성과 매치하는 구독 요청을 제출한 다양한 사용자에게 상기 메시지를 포워딩한다. 이러한 방식으로 상기 서버는 오직 관심 있는 구독자에게 상기 메시지를 전송해서 필터링 기능을 수행한다. 공표자로부터의 메시지를 구독자에게 라우팅하고, 일시적으로 상기 공표자와 구독자를 디-커필링하는 프로세스 동안 일부 서버는 저장-및-포워딩 기능을 수행할 수도 있다. 이러한 일시적인 디-커플링의 예는 대역폭 쓰로틀링(bandwidth throttling) 형태를 생성하면서, 상기 구독자가 백로그(backlog)를 통해 작동하는 것을 허용하기 위해 공표자를 일시적으로 분리한다.
비교적 소규모 설치에 대해 병렬 동작, 메시지 캐싱 및 이와 유사한 것 등을 통해 공표/구독 시스템은 전통적인 클라이언트-서버 시스템보다 더 나은 확장성(scalability)을 제공할 수 있다. 그러나 공표/구독 시스템이 확장됨에 따라 공표/구독 시스템에 의해 제공된 혜택이 종종 상실된다. 따라서 종래의 공표/구독 시스템에 의해 제공된 기능에도 불구하고, 개선된 공표/구독 시스템 및 이러한 시스템을 사용하기 위한 방법에 대한 요구가 해당 기술 분야에 존재한다.
본 발명은 일반적으로 컴퓨터 네트워크에 대한 것이다. 더 구체적으로 본 발명은 공표/구독 시스템을 작동시키는 방법에 대한 것이다. 본 발명의 실시예로서 본 발명은 공표/구독 시스템에 적용되는데 이 시스템에서 다수 세트의 중앙 중계기와 통신하는 원격 중계기가 클라이언트로부터 구독 요청을 수신해서 한 세트의 중앙 중계기 내의 중앙 중계기 모두에게 구독한다. 클라이언트로부터의 공표 메시지가 각각의 세트의 중앙 중계기 내의 단지 하나의 중앙 중계기에게 공표된다. 따라서 본 발명의 실시형태는 공표 메시지 부하 균형이 애플리케이션 레벨에서 제공되는 아키텍쳐를 구현한다. 상기 방법 및 기술은 다양한 컴퓨터 네트워크 및 통신 시스템에 적용될 수 있다.
본 발명의 일 실시예에 따르면 메시지를 공표하는 방법이 제공된다. 상기 방법은 첫 번째 클라이언트로부터 첫 번째 원격 중계기에서 구독 요청을 수신하는 단계 및 첫 번째 세트의 중앙 중계기의 각각에 원격 중계기로부터의 구독 메시지를 전송하는 단계를 포함한다. 상기 구독 요청 및 구독 메시지는 타겟을 포함한다. 상기 방법은 또한 두 번째 클라이언트로부터 두 번째 원격 중계기에서 공표 요청을 수신하는 단계 및 두 번째 원격 중계기로부터의 공표 메시지를 첫 번째 세트의 중앙 중계기 중 첫 번째 중앙 중계기 및 두 번째 세트의 중앙 중계기 중 두 번째 중앙 중계기에 전송하는 단계를 포함한다.
상기 공표 요청은 패턴에 의해 특징지어지는 메시지열(message string)을 포함하며 공표 메시지는 메시지열을 포함한다. 상기 방법은 타겟이 패턴의 적어도 일부와 매치하는지를 첫 번째 중앙 중계기에서 결정하는 단계, 메시지열을 첫 번째 중앙 중계기에서 첫 번째 원격 중계기로 전송하는 단계, 첫 번째 원격 중계기에서 타겟이 패턴의 적어도 일부와 매치하는지를 결정하는 단계 및 메시지열을 첫 번째 클라이언트로 전송하는 단계를 더 포함한다.
본 발명의 또 하나의 실시예에 따르면 첫 번째 세트의 공표/구독 메시지 아키텍쳐가 제공된다. 상기 공표/구독 메시지 아키텍쳐는 첫 번째 세트의 중앙 중계기, 두 번째 세트의 중앙 중계기 및 첫 번째 세트의 중앙 중계기와 통신하는 첫 번째 원격 중계기를 포함한다. 상기 공표/구독 메시지 아키텍쳐는 또한 첫 번째 원격 중계기와 통신하는 첫 번째 클라이언트를 포함한다. 상기 첫 번째 원격 중계기는 구독 요청을 첫 번째 세트의 중앙 중계기 내의 각각의 중앙 중계기에게 전송하도록 동작할 수 있다. 상기 공표/구독 메시지 아키텍쳐는 두 번째 세트의 중앙 중계기와 통신하는 두 번째 원격 중계기 및 두 번째 원격 중계기와 통신하는 두 번째 클라이언트를 더 포함한다. 상기 두 번째 원격 중계기는 첫 번째 세트의 중앙 중계기 내의 중앙 중계기 중 하나 및 두 번째 세트의 중앙 중계기 내의 중앙 중계기 중 하나에 공표 메시지를 전송하도록 동작할 수 있다.
본 발명의 구체적인 실시예에 따르면 원격 중계기를 동작시키는 방법이 제공된다. 상기 방법은 첫 번째 원격 중계기에서 구독 요청을 첫 번째 원격 클라이언트로부터 수신하는 단계 및 첫 번째 원격 클라이언트와 연관된 식별 정보를 첫 번째 원격 중계기의 컴퓨터 판독가능 매체에 기록하는 단계를 포함한다. 상기 구독 요청은 타겟을 포함하며 타겟과 연관된 정보가 또한 첫 번째 원격 중계기의 컴퓨터 판독가능 매체에 기록된다. 상기 방법은 또한 구독 메시지를 첫 번째 세트의 원격 중계기 각각에 전송하는 단계를 포함한다. 상기 구독 메시지는 상기 타겟을 포함한다.
상기 방법은 두 번째 원격 중계기에서 공표 요청을 두 번째 원격 클라이언트로부터 수신하는 단계 및 공표 메시지를 두 번째 원격 중계기로부터 첫 번째 세트의 중앙 중계기 중 첫 번째 중앙 중계기로 그리고 두 번째 세트의 중앙 중계기 중 두 번째 중앙 중계기로 전송하는 단계를 더 포함한다. 상기 공표 요청은 패턴에 의해 특징지어지는 메시지열을 포함하며 공표 메시지는 메시지열을 포함한다.
또한 상기 방법은 첫 번째 원격 중계기에서 메시지열을 첫 번째 중앙 중계기로부터 수신하는 단계, 첫 번째 원격 중계기에서 타겟이 패턴의 적어도 일부분과 매치하는지를 결정하는 단계 및 메시지열을 상기 첫 번째 원격 중계기로부터 첫 번째 클라이언트로 전송하는 단계를 포함한다.
다수의 혜택이 종래 기술 이상의 본 발명을 통해 달성된다. 예컨대 본 명세서에 설명된 공표/구독 아키텍쳐를 활용함으로써 부하 균형이 애플리케이션 레벨에서 제공된다. 계층적 구조를 활용해서 원격 사이트로부터 중앙 사이트로의 커넥션의 수가 대단히 감소된다. 커넥셕 수의 감소는 구성, 유지 및 IP 네트워크 운용과 관련된 감소된 시스템 복잡도, 향상된 보안성 및 향상된 시스템 성능을 가져온다. 추가로 본 발명의 실시형태는 중복 공표의 수를 감소시킴으로써 시스템 성능을 향상시킨다.
더욱이 본 발명의 실시형태에서는 취급될 수 있는 초당 메시지 면에서 대체로 상기 시스템의 성능을 증가시킴으로써 시스템 확장성을 가능하게 한다. 예컨대 동일한 작업량을 수행하고 있는 세 개의 애플리케이션 부하 균형 서버에 걸쳐 트래픽이 밸런싱되는 경우 각 서버가 해당 사이트를 위한 상기 트래픽의 1/3을 취급한다. 네 번째 서버를 추가하는 것은 용량을 증가시킬 것인데 이는 각 서버가 이때 상기 사이트에서 현재 트래픽의 1/4를 취급하기 때문이다. 상기 네 번째 서버의 추가로부터 발생하는 각 서버 상의 여분의 용량으로 인해 전체적인 용량이 상기 트래픽 레이트가 증가하는 만큼 증가될 수 있다. 본 발명의 실시형태는 시스템 확장성에서 실제로 임의의 향상을 가능하게 한다.
나아가 본 발명의 실시형태는 높은 유용성 및 신뢰도에 의해 특징지어지는 시스템을 제공한다. 예컨대 클라이언트 또는 서버가 메시지를 한 세트의 부하 균형된 서버에게 보낼 때 상기 메시지를 유효한 커넥션을 갖고 있는 서버에 보낼 책임이 있다. 상기 시스템의 요소로서 더 많은 서버를 갖는 것은 메시지가 상기 시스템을 통해 여전히 전송되는 것을 가능하게 하는데, 상기 서버 중 다수가 실패한 상태에 있음에도 그러하다. 예컨대 두 개의 서버가 하나의 세트 내에 존재하고 둘 다 실패한 상태에 있는 경우 보내는 쪽은 서버를 이용해서 상기 메시지를 보낼 수 없다. 그러나 예컨대 다섯 개의 서버가 하나의 세트 내에 존재하고 두 개가 실패한 상태에 있는 경우 세 개의 서버가 상기 메시지를 상기 시스템을 통해 전송하는 것이 여전히 가능하다.
본 발명의 많은 이점 및 특성과 함께 본 발명의 이러한 실시형태가 아래 설명 및 첨부 도면을 통해 더 상세히 설명된다.
도 1은 본 발명의 하나의 실시예에 따른 계층적 공표/구독 아키텍쳐의 간략화된 개략도이다.
도 2a는 본 발명의 하나의 실시예에 따른 구독 요청을 다수의 중앙 중계기에 전송하는 원격 중계기 및 원격 클라이언트의 간략화된 개략도이다.
도 2b는 본 발명의 하나의 실시예에 따른 다수의 중앙 중계기로의 메시지 공표를 구현하는 원격 클라이언트 및 원격 중계기의 간략화된 개략도이다.
도 3은 본 발명의 하나의 실시예에 따른 공표/구독 시스템에서 공표 메시지 부하 균형을 구현하는 방법을 도시하는 간략화된 흐름도이다.
도 4는 본 발명의 하나의 실시예에 따른 공표/구독 시스템에서 메시지 흐름을 도시하는 도표이다.
도 5는 본 발명의 하나의 실시예에 따른 원격 중계기의 요소의 간략화된 개략도이다.
상기한 바와 같이 통상적인 공표 및 구독 시스템은 하나의 서버가 구독자 및 공표자와 상호작용하여 구현된다. 각각의 구독자가 구독 요청을 서버에 제출하고 각각의 공표 요청이 또한 서버에 제출된다. 종래의 하나-레벨 시스템을 이용하는 것의 단점은 각각의 클라이언트(공표자 또는 구독자)가 서버에 연결되며, 이는 클라이언트와 서버 사이에 다수의 커넥션을 야기한다는 것이다. 상기 커넥션의 수는 차례로 방화벽 규칙, 다수의 논리 경로의 구성 및 이와 유사한 것들로 인해 네트워크를 구성하는 것, 유지하는 것 및 운영하는 것에 있어서 혼잡을 야기시킨다.
본 발명의 실시형태는 계층적 구조를 활용하는데 이 구조는 클라이언트로부터 중앙 사이트로의 커넥션의 수를 예컨대 10배만큼 감소시킨다. 커넥션의 수를 감소시키는 것은 상기 네트워크 및 연관된 구성 및 유지 업무의 복잡도를 감소시킨다. 추가로 클라이언트와 중앙 사이트 사이의 커넥션의 수를 감소시키는 것은 보안을 향상시키는데 이는 더 적은 커넥션이 확립되고 상기 감소된 수의 커넥션이 더 주의 깊게 추적 및 제어될 수 있기 때문이다. 더욱이 커넥션의 수를 감소시키는 것은 상기 서버 및 클라이언트에 대한 성능을 개선시키는데, 이는 커넥션 처리를 취급하는 것과 연관된 이러한 시스템에 대한 부하가 감소되기 때문이다. 본 명세서에 설명된 부하 균형을 하는 상기 계층적 공표 및 구독 시스템은 반복 중복성(redundancy), 보안 및 성능을 포함하는 종래 기술에서 이용할 수 없는 혜택을 제공한다.
베리사인(VeriSign)의 HMS(히드라 메시징 서비스, Hydra Messaging Service) 시스템은 메시지 전달을 위한 공표/구독 구현예이다. 이것은 또한 메시지 버스로도 불린다. 상기 시스템은 모니터링 데이터 및 모니터링 명령어를 전송 및 수신하기 위해 에지 사이트(원격 사이트로 표현됨)와 중앙 중계기를 포함하는 중앙 데이터 센터 사이에서 메시지를 보내는 기능을 제공한다. 이것은 SDNS, Whois, TGV, CRL 및 이와 유사한 것의 작용에 대한 통계를 포함한다. 이러한 통계는 HMS를 신청하는 자바 HUD 및 아르고스(Argus) HUD에 의해 실시간으로 디스플레이되며, 또한 히드라 데이터베이스(hydra database), 히드라 플롯(hydra Plots) 및 그 밖의 사용자와 관계 있는 히스토리컬 보고를 위해 사용된다.
본 발명의 실시형태는 부하 균형을 하는 계층적 아키텍쳐를 도입하는 기존의 HMS 시스템에 대한 개선책을 제공한다. 하나의 구현예에서 두 계층 레벨이 존재한다 - 원격 중계기 및 중앙 중계기. 통상적으로 상기 중앙 중계기는 데이터 센터 내에 위치한다. 그러나 본 발명은 임의의 수의 계층 레벨로 확장될 수 있다.
도 1은 본 발명의 하나의 실시예에 따른 계층적 공표/구독 아키텍쳐의 간략화된 개략도이다. 도 1을 참조하면 다수의 원격 클라이언트(110 및 120)가 네트워크 커넥션(120)을 통해 원격 중계기(124)에 연결된다. 네트워크 커넥션(120)은 다수의 네트워크 중 하나일 수 있는데, 네트워크는 상기 원격 클라이언트(110/112)와 원격 중계기(124) 사이의 통신에 적합한 인터넷 또는 그 밖의 네트워크를 포함한다.
원격 중계기(124)는 네트워크 커넥션(130)을 통해 두 번째 원격 중계기(134)에 연결된다. 원격 중계기(134)는 네트워크 커넥션(140)을 통해 첫 번째 데이터 센터(150) 내의 하나 이상의 중앙 중계기(중앙 중계기 1(150a) ? 중앙 중계기 n(150n))와 연결된다. 첫 번째 데이터 센터(150)와의 커넥션에 덧붙여 원격 중계기(134)는 또한 네트워크 커넥션(140)을 통해 두 번째 데이터 센터(152)에 연결된다.
따라서 본 발명의 실시형태는 계층적 공표/구독 시스템을 제공하는데, 이 시스템에서 하나 이상의 원격 중계기가 원격 클라이언트와 원격 중계기 사이의 통신을 제공하기 위해 활용될 수 있다. 계층적 공표/구독 시스템의 추가적인 설명이 동시 계류중이며 공동으로 양도된 미국 특허 출원 번호 제12/610,066호에 제공되는데, 상기 출원서는 2009년 10월 30일에 제출되었고, 발명의 명칭이 "Hierarchical publish and subscribe system"으로서 상기 출원의 개시 내용은 그 전체가 본 명세서 내에 참고문헌으로 통합될 수 있다.
도 1은 원격 클라이언트 레벨 내의 원격 클라이언트와 연결된 원격 중계기 및 데이터 센터 레벨 내의 중앙 중계기를 도시한다. 세 계층 레벨이 도 1에 도시되나(하나의 중앙 중계기 레벨 및 두 원격 중계기 레벨(예컨대 원격 중계기 레벨 1 및 원격 중계기 레벨 2)), 본 발명의 실시형태는 이러한 특정한 수의 계층적 레벨로 제한되지 않으며, 다른 계층 레벨이 본 발명의 범위 내에 포함된다.
하나의 예로서 계층 레벨의 수는 두 레벨, 네 레벨 또는 구체적인 구현예에 적당한 더 많은 레벨일 수 있다. 추가로 원격 클라이언트가 오직 원격 중계기 레벨 2 내의 원격 중계기와 연결되나, 추가적인 원격 클라이언트(미도시)가 네트워크 커넥션을 통해 원격 중계기 레벨 1 내의 원격 중계기와 연결될 수 있다. 더욱이 추가적인 원격 중계기가 원격 중계기 레벨 2에서 제공될 수 있으며, 추가적인 원격 중계기가 원격 중계기 레벨 1에서 제공될 수도 있다. 당업자는 많은 변형예, 수정예 및 대안을 인식할 수 있을 것이다.
네트워크 커넥션(120, 130, 및 140)이 별개 네트워크로서 도 1에 도시되나 이는 본 발명에 의해 요구되는 것은 아니다. 네트워크 커넥션은 단일 네트워크 예컨대 인터넷의 구성요소로서 제공될 수 있으며, 그럼으로써 다양한 원격 클라이언트, 원격 중계기 및 중앙 중계기 사이에서의 통신을 제공한다.
두 번째 데이터 센터(152)는 다수의 중앙 중계기(중앙 중계기 1(152) ? 중앙 중계기 n(152n))를 포함한다. 두 번째 데이터 센터(152) 내의 중앙 중계기는 원격 중계기 레벨 1 및 원격 중계기 레벨 2에 각각 배치된 원격 중계기(136 및 126)의 계층적 구조를 통해 원격 클라이언트(114 및 116)와 통신한다.
본 명세서 전체에 걸쳐 설명된 바와 같이 원격 클라이언트(110)에서 나오는 구독 요청이 원격 중계기(124 및 134/136)를 통해 첫 번째 데이터 센터(150) 및 두 번째 데이터 센터(152)에 전송될 수 있다. 원격 클라이언트(114)로부터의 공표 요청이 원격 중계기(126 및 134/136)를 통해 첫 번째 및 두 번째 데이터 센터에 전송될 수 있다. 이로써 원격 클라이언트(114)에 의해 공표된 메시지 콘텐트가 원격 클라이언트(110)에 의해 제출된 구독 요청과 매치하는 경우, 이러한 콘텐트가 본 명세서에 설명된 공표/구독 시스템을 이용해서 원격 클라이언트(110)에 제공될 수 있다.
데이터 센터를 통해 트래픽에 대한 부하 균형을 제공하기 위해 구독 및 공표 메시지가 본 명세서 전체를 통해 하기와 같이 더 구체적으로 설명된 바와 같이 미리 결정된 중앙 중계기에 전송된다. 구독 요청에 대하여 원격 중계기는 원격 클라이언트로부터 수신될 때 구독 요청을 기록하며 이후 구독 요청을 데이터 센터 중 하나 내의 각각의 중앙 중계기에 포워딩한다. 구독 요청을 수신하는 중앙 중계기는 구독 요청을 기록할 것이다. 다른 데이터 센터 내의 중앙 중계기는 구독 요청을 수신하지 않는다. 원격 클라이언트가 공표 요청을 원격 중계기에 전송할 때, 원격 중계기는 공표 요청을 각각의 데이터 센터 내의 중앙 중계기 중 하나에 포워딩한다. 하나의 실시예에서 공표 요청을 수신하는 각각의 데이터 센터 내의 특정한 중앙 중계기는 상이한 원격 중계기가 그들의 공표 메시지를 상이한 중앙 중계기로 전송할 수 있도록 원격 중계기에 대한 구성 데이터 내에서 정의된다.
공표 요청을 수신한 후에 대응하는 구독 요청을 기록한 중앙 중계기가 요구된 메시지를 구독 요청이 수신된 원격 중계기에 이후 전송할 것이다. 차례로 원격 중계기가 요구된 메시지를 구독 요청을 제출한 상기 원격 클라이언트에 전송할 것이다.
본 명세서에 설명된 계층적 아키텍쳐를 활용하는 본 발명의 실시형태는 네트워크 트래픽을 모니터링하는 시스템을 포함하는 응용에 적합한데 이 시스템은 DNS 지원 시스템(예컨대 SDNS, TGV, Whois 및 이와 유사한 것)을 포함한다. 본 발명은 또한 시스템 성능 및 보안을 증가시킬 애플리케이션 레벨에서 부하 균형을 제공하는 다른 공표/구독 시스템에서 사용하기에도 적합하다. 네트워크 레벨에서 부하 균형을 제공하는 종래 기술(예컨대 패킷 부하 밸런서)과 대조적으로 본 발명의 실시형태는 애플리케이션 레벨에서 부하 균형을 제공한다는 것이 주목되어야 한다.
도 2a는 본 발명의 하나의 실시예에 따른 구독 요청을 다수의 중앙 중계기에 전송하는 원격 중계기 및 원격 클라이언트의 간략화된 개략도이다. 원격 클라이언트(210)(원격 중계기(220)와 통신하는 n개의 원격 클라이언트 중 하나)가 구독 요청을 원격 중계기(220)에 전송한다(프로세스 1). 상기 구독 요청은 타겟을 포함할 것이다. 예컨대 원격 클라이언트(210)는 "x로 시작하는" 메시지에 관심이 있을 수 있다. 선택적 구독 요청이 원격 클라이언트(212)로부터 나온다(프로세스 2). 상기 선택적 구독 요청은 동일한 메시지 타입 또는 상이한 메시지 타입 예컨대 "y로 시작하는" 메시지일 수 있다.
하나의 실시예에서 구독 요청이 동일한 메시지 타입인 경우 원격 중계기(220)는 원격 클라이언트(210) 및 원격 클라이언트(212) 둘 다 특정한 메시지 타입에 관심이 있다는 표시를 기록하는 집성 및 통합 기능을 수행할 것이다. 구독 요청이 또 하나의 원격 클라이언트에 의해 이미 요청된 이러한 구독을 위해 이미 준비되었기 때문에, 원격 중계기는 원래의 구독 요청을 기초로 해서 새롭게 구독하는 원격 클라이언트의 아이덴터티를 목록에 단지 추가하는 콘덴싱(condensing) 기능을 수행할 것이다. 이러한 목록은 원격 중계기의 컴퓨터-판독가능 메모리에 저장될 수 있다.
예컨대 서버 상에서 동작하는 DNS 서비스가 일정 시간 기간 내에 DNS 번역(translation)의 수를 추적할 수 있다. 이러한 DNS 번역 레이트는 다른 클라이언트가 수신에 관심 있을 수 있는 통계자료로서 공표될 수 있다. 이러한 DNS 번역 통계는 예를 들어 “DNST.”와 같은 미리 설정된 문자 또는 스트링부터 시작할 수 있다. 구독 요청에 대한 이러한 DNS 번역 통계는 그러므로 공표 메시지 내의 스트링이 만족할 조건을 포함할 것이다. 예컨대 상기 조건은 "DNST."로 시작하는 스트링일 것이다.
이러한 조건은 또한 타겟으로 불릴 수 있으며 공표 메시지 내의 스트링은 패턴으로 불릴 수 있다. 예컨대 패턴은 일 초에 100 번의 DNS 번역을 나타내는 DNST100일 수 있다. 중계기가 시스템에 배포되는 통계 목록 내의 이러한 패턴 또는 스트링을 수신할 때 타겟 DNST는 패턴 DNST100과 비교될 것이며, 타겟 DNST로 시작하는 패턴은 정해진 조건을 만족할 것이다. 이로써 중계기는 이러한 통계를 이러한 DNS 번역 통계에 대해 구독을 신청한 클라이언트에게 전달할 것이다.
또 하나의 예로서 명령어를 특정한 기계에 보내는 것이 바람직할 수 있다. 이 명령어를 보내기 위해 기계는 기계 이름을 원격 중계기에 제공해서 구독할 수 있다. 다른 기계가 이후 관심 있는 기계 이름을 포함하는 공표 메시지를 보낼 수 있다. 공표 처리 중 요청된 기계는 관심 있는 기계 이름에 기초하여 메시지를 수신할 것이다. 이러한 명령어 모드에 대한 또 하나의 변형예는 공표 메시지가 와일드카드를 이용해서 모든 기계에 보내질 수 있다는 것이다. 당업자는 많은 변형예, 수정예 및 대안을 인식할 수 있을 것이다.
따라서 구독 메시지는 타겟으로 불리는 조건을 가지며, 공표된 메시지는 공표된 메시지 내의 스트링이 구독 메시지에 의해 정해진 조건을 만족하는 패턴을 지니는지 여부를 결정하기 위해 중앙 중계기 및 원격 중계기에 의해 조사된다. 예컨대 타겟은 첫 번째 길이(예컨대 4 글자)의 스트링일 수 있으며, 패턴은 첫 번째 길이보다 큰 두 번째 길이(예컨대 10 글자)의 스트링일 수 있다. 공표된 메시지는 메시지 내의 패턴의 부분이 관심 있는 타겟과 매치하는지를 결정하기 위해 조사된다.
타겟과 타겟 내의 일부 또는 전부 사이에 일치(match)가 존재하는 경우 중계기는 공표된 메시지 또는 이 메시지의 일부 또는 변형을 타겟을 이용해서 구독하는 다른 중계기 및 클라이언트에게 보낼 것이다. 공표된 메시지는 타겟을 이용해서 구독하는 클라이언트가 그들의 구독과 관련된 정보를 수신하는 한 또 하나의 메시지로 변할 수 있다.
다시 도 2a를 참조하면 새로운 구독 요청이 원격 중계기(220)에 의해 수신된 후, 원격 중계기는 구독 요청 내의 타겟이 추후에 원격 중계기에 의해 수신된 메시지와 비교될 수 있도록 구독 요청을 기록한다.
원격 중계기(220)는 이후 구독 메시지를 데이터 센터 #1과 연관된 중앙 중계기(230a-230n) 모두에게 포워딩한다(프로세스 3). 상기한 바와 같이 구독이 원격 중계기에 대한 새로운 구독이 아닌 경우 콘덴싱 기능이 수행되며, 어떠한 추가적인 구독 메시지도 중앙 중계기로 전송되지 않을 것이다. 도 2a에 도시된 바와 같이 두 개의 데이터 센터, 즉 데이터 센터 #1 및 데이터 센터 #2가 계층적인 공표/구독 시스템의 일부로서 제공된다. 다른 실시예에서 추가적인 데이터 센터가 제공될 수 있다. 다수의 데이터 센터의 제공은 시스템 리던던시 및 개선된 보안 및 성능을 위해서이다. 도 2a에 도시된 중앙 중계기(230a-230n)는 구체적인 시스템 구현예에 적당하게 하나의 물리적 설비 내에 공동-위치되거나 지리적으로 분산될 수 있다. 하나의 실시예에서 중앙 중계기는 본 출원인에 의해 관리되는 하나의 안전한 설비 내에 공동-위치된다.
구독 메시지는 첫 번째 세트의 중앙 중계기(데이터 센터 #1) 내의 모든 중앙 중계기로 전송된다. 도시된 예에서 세 개의 중앙 중계기가 도시되어 있으나, 더 적은 수의 중앙 중계기 또는 더 많은 수의 중앙 중계기가 본 발명의 범위 내에 포함된다. 구독 메시지는 두 번째 세트의 중앙 중계기(데이터 센터 #2) 내의 중앙 중계기에게 보내지지 않는다.
대안적인 실시예에서 상기 타겟을 포함하는 구독 메시지의 변형이 첫 번째 세트의 중앙 중계기 내의 각각의 중앙 중계기에 보내진다. 통상적으로 원격 중계기는 특정한 원격 중계기가 구독 메시지를 전송할 중앙 중계기 세트를 정의하는 구성 데이터를 저장할 것이다. 하기 하는 바와 같이 오직 한 세트의 중앙 중계기로의 구독 메시지의 전송은 중복 메시지 전달을 없애서 공표 메시지의 부하 균형을 제공할 것이다. 구독 메시지를 수신하는 중앙 중계기는 새로운 구독인 경우에 구독 메시지에 관한 정보를 기록할 것이다. 구독 메시지가 현재 새로운 것인 경우 중앙 중계기는 원격 중계기에 의해 구독 메시지의 수신에 대해 논의된 바와 같이 콘덴싱 기능을 수행할 것이다. 예컨대 구독 메시지 내의 타겟이 이미 중앙 중계기에 의해 처리된 경우 중앙 중계기의 아이덴터티가 타겟 및 타겟에 대해 이미 구독된 다른 원격 중계기의 아이덴터티를 포함하는 목록에 추가될 것이다.
본 발명에 의해 요구되지 않으나 중앙 중계기(150a?150n)는 첫 번째 데이터 센터(150)에 공동-위치되고 중앙 중계기(152a?152n)는 두 번째 데이터 센터(152) 내에 공동-위치되며, 점선들(150 및 152)은 지리적 경계, 즉 데이터 센터와 연관된 지리적 영역을 나타낸다. 다수의 지리적 위치를 갖지 않고 다수 레벨의 계층을 갖는 것도 가능하다. 도 1에 도시된 실시예에서 두 레벨의 원격 중계기 및 하나의 레벨의 중앙 중계기 모두가 상이한 지리적 위치에 도시되나, 이는 단지 예이며 본 발명은 이러한 특정한 예로 제한되지 않는다.
본 출원인은 전 세계에 걸친 많은 나라들에 위치된 원격 클라이언트(에지 사이트 또는 원격 사이트로도 지칭되는)를 유지한다. 추가로 본 출원인은 하나 이상의 레벨의 원격 중계기를 통해 이러한 원격 클라이언트에 연결된 다수의 데이터 센터를 유지한다. 그러므로 오직 두 개의 데이터 센터만이 도시되나, 본 발명은 이러한 특정한 구현예로 제한되지 않는다.
도 2b는 본 발명의 하나의 실시예에 따른 다수의 중앙 중계기로의 메시지 공표를 구현하는 원격 클라이언트 및 원격 중계기의 간략화된 개략도이다. 원격 클라이언트(250)가 공표 요청을 원격 중계기(260)에 전송한다(프로세스 4). 공표 요청은 성능 통계 또는 이와 유사한 것을 포함하는 메시지일 수 있다. 따라서 용어 요청은 응답을 요구하지 않는다는 의미로 사용된다. 상기한 바와 같이 원격 클라이언트(250)의 성능과 관련된 통계는 관심 있는 클라이언트로의 배포를 위해 원격 중계기(260)에 전송될 수 있다.
공표 요청은 패턴에 의해 특징지어지는 메시지열을 포함할 것이다. 원격 중계기(260)가 공표 요청을 수신할 때 공표 메시지가 원격 중계기(260)로부터 첫 번째 세트의 중앙 중계기 중 첫 번째 중앙 중계기(예컨대 중앙 중계기(230a)) 및 두 번째 세트의 중앙 중계기 중 두 번째 중앙 중계기(예컨대 중앙 중계기(240b))로 전송된다(프로세스 5). 공표 요청과 동일하거나 공표 요청의 변형일 수 있는 공표 메시지는 메시지열을 포함할 것이다. 따라서 공표 메시지는 첫 번째 세트의 중앙 중계기 내의 하나의 중앙 중계기 및 두 번째 세트의 중앙 중계기 내의 하나의 중앙 중계기에 전송된다.
그러므로 본 발명의 실시형태는 계층적 공표/구독 시스템을 제공하는데 이 시스템 내에서 구독 메시지가 하나의 세트의 중앙 중계기 내의 모든 중앙 중계기에 의해 수신되고(프로세스 3) 공표 메시지는 각각의 세트의 중앙 중계기 내의 하나의 중앙 중계기에 의해 수신된다(프로세스 5).
구독 메시지가 첫 번째 세트(데이터 센터 #1) 내의 모든 중앙 중계기에 의해 수신되었기 때문에 공표 메시지를 수신하는 중앙 중계기(중앙 중계기(230a))는 공표 메시지 내의 패턴과 구독 메시지 내의 타겟 사이의 매치를 결정할 수 있다. 예컨대 타겟이 "DNST"이고 패턴이 "DNST100"인 경우 중앙 중계기(230a)는 타겟이 패턴의 일부와 매치되었다고 결정할 것인데 이는 중앙 중계기가 이러한 메시지 타입에 관심 있는 원격 중계기로부터 구독 메시지를 수신했다는 것을 나타낸다. 따라서 패턴이 타겟과 연관된 조건을 만족하는지 여부에 대해 결정이 이루어진다.
구독 메시지가 두 번째 세트의 중앙 중계기(데이터 센터 #2)에서 수신되지 않았기 때문에 중앙 중계기(240b)에 의한 상기 공표 메시지의 수령이 타겟과 패턴의 적어도 일부 사이에 매치를 야기하지 않는다. 공표 메시지 부하가 다양한 데이터 센터 내의 여러 중앙 중계기 사이에서 분배되기 때문에 본 발명의 실시형태는 애플리케이션 레벨 부하 균형을 위하여 제공된다. 바람직하게는 후속적인 공표 메시지가 다른 원격 중계기로부터 상기 데이터 센터에서 수신될 때 메시지는 데이터 센터 내의 다양한 중앙 중계기 사이에서 평균적으로 대략적으로 균일하게 분포될 것이다. 따라서 단일의 중앙 중계기가 공표 업무의 대부분을 수행하는 것보다 워크로드가 다양한 중앙 중계기 사이에서 분산된다. 데이터 센터 내의 각각의 중앙 중계기가 구독 메시지를 수신하고 타겟을 기록하나 공표 메시지는 오직 데이터 센터 내의 하나의 중앙 중계기에 의해 수신되며, 이는 오직 하나의 중앙 중계기가 패턴과 타겟 사이의 매치를 결정하기 위해 공표 메시지를 처리하는 것을 야기한다.
일단 중앙 중계기(230a)가 매치를 결정하면 메시지열은 원격 중계기(220)에 전송되는데(프로세스 6) 이 원격 중계기는 이러한 특정한 메시지 타입에 관심을 나타내는 중앙 중계기에 의해 유지되는 목록 내에 포함되어 있다. 메시지열에 덧붙여 추가적인 정보가 메시지열과 함께 포함될 수 있다. 원격 중계기(220)는 차례로 타겟이 패턴의 적어도 일부와 매치하는지를 결정하고 메시지열을 원격 클라이언트(210)에 전송한다(프로세스 7). 원격 클라이언트(212)가 유사한 구독 요청을 제출한 경우(선택적 프로세스2) 메시지열은 역시 원격 클라이언트(212)로 전송된다.
오직 한 세트의 중앙 중계기가 있는 구현예에서 본 발명의 실시형태는 애플리케이션 레벨 부하 균형을 여전히 제공할 것이다. 이러한 구현예에서 구독 메시지가 세트 내의 각각의 중앙 중계기, 즉 시스템 내의 모든 중앙 중계기로 전달될 것이다. 공표 메시지는 이후 중앙 중계기 중 하나로 전송되고 하나에 의해 수신될 것이다. 공표 메시지를 수신하는 중앙 중계기는 이후 공표 메시지를 구독하는 원격 중계기로 전달할 것이다. 그러므로 단일 세트의 중앙 중계기를 이용하는 구현예에서도 "모두로의 구독 및 하나로의 공표"의 모델이 애플리케이션 레벨 부하 균형을 야기할 것이다. 이러한 단일 세트의 구현예에서 공표 메시지는 다수 세트의 중앙 중계기의 각각 내의 하나의 중앙 중계기 대신에 세트의 중앙 중계기 내의 하나의 중앙 중계기로 보내질 것이라는 것이 주목될 것이다.
도 2a 및 도 2b는 구독 및 공표 둘 다 할 수 있는 원격 클라이언트를 도시한다. 통상적으로 데이터(예컨대 성능 리포팅, 샘플링된 로(raw) 데이터 패킷, 인증 요청 및 이와 유사한 것)는 원격 클라이언트로부터 데이터 센터로 흐르는 트래픽의 대부분을 구성하는 반면에 명령어는 데이터 센터로부터 원격 클라이언트로의 흐름의 대부분을 구성한다. 다른 응용에 있어 데이터 및 명령 흐름은 변화될 수 있다. 당업자는 많은 변형, 수정 및 대안을 인식할 수 있을 것이다.
도 3은 본 발명의 하나의 실시예에 따른 공표/구독 시스템에서 공표 메시지 부하 균형을 구현하는 방법을 도시하는 간략화된 흐름도이다. 상기 방법은 첫 번째 원격 클라이언트로부터 첫 번째 원격 중계기에서 구독 요청을 수신하는 것을 포함한다(310). 첫 번째 원격 클라이언트의 아이덴터티가 타겟과 함께 첫 번째 원격 중계기에서 기록된다. 타겟은 상기 첫 번째 원격 중계기에 의해 후속적으로 수신되는 메시지열과 타겟 사이의 매치를 결정하기 위해 사용될 것이다. 다시 말하면 원격 중계기는 첫 번째 원격 클라이언트가 특정한 공표 메시지 타입에 관심 있다는 표시를 저장한다. 구독 메시지는 다수의 원격 클라이언트에 공통이 될 수 있는데 이는 구독 요청의 집성 및 시스템 효율에서의 개선책을 제공한다.
구독 메시지가 첫 번째 원격 중계기로부터 첫 번째 세트의 중앙 중계기의 각각으로 전송된다(312). 구독 메시지는 원격 중계기가 첫 번째 원격 클라이언트에 의해 표시된 특정한 공표 메시지 타입에 관심 있다는 표시를 중앙 중계기에게 제공하는 타겟을 포함한다.
도 2a에 도시된 바와 같이 구독 메시지는 첫 번째 세트의 중앙 중계기 내의 모든 중앙 중계기에게 전송된다. 구독 메시지는 따라서 오직 이러한 도시된 실시예에서 세트의 중앙 중계기 중 한 세트로만 전송된다. 구독 메시지가 전송되는 특정한 세트의 중앙 중계기는 상기 원격 중계기를 위한 구성 파일 내에서 정해지거나 핸드셰이킹 동작 동안에 정해지거나, 시스템 운영자에 의해 할당되거나 이와 유사한 방식으로 정해진다. 첫 번째 세트의 중앙 중계기 내의 중앙 중계기는 구독 메시지에 대한 정보, 예컨대 타겟 및 첫 번째 원격 중계기의 아이덴터티를 기록한다. 구독 메시지는 중앙 중계기에 도착하기 전에 하나 이상의 원격 중계기를 통과할 수 있다.
공표/구독 시스템의 상기 공표 부분은 공표 요청이 두 번째 원격 클라이언트로부터 두 번째 원격 중계기로 전송될 때 개시된다(314). 공표 요청은 패턴에 의해 특징지어지는 메시지열을 포함한다. 두 번째 원격 중계기는 도 2b에 도시된 중앙 중계기와 통신하는 다수의 원격 중계기 중 하나이다. 공표 메시지가 두 번째 원격 중계기로부터 첫 번째 세트의 중앙 중계기 중 첫 번째 중앙 중계기 및 두 번째 세트의 중앙 중계기 중 두 번째 중앙 중계기로 전송된다(316). 공표 메시지는 패턴에 의해 특징지어지는 메시지열을 포함한다. 공표 메시지가 전송되는 특정한 중앙 중계기는 원격 중계기를 위한 구성 파일 내에서 정해지거나 핸드셰이킹 동작 동안에 정해지거나, 시스템 운영자에 의해 할당되거나 이와 유사한 방식으로 정해진다. 공표 메시지를 각 세트 내의 하나의 중앙 중계기로 전송함에 의해 공표 메시지의 중복이 제거된다. 일부 실시예에서 중앙 중계기에 대한 트래픽 부하가 모니터링되며, 원격 중계기의 적응적 제어가 시스템의 부하 균형 성능을 개선하기 위해 구현된다.
(첫 번째 중앙 중계기를 포함하는) 첫 번째 세트의 중앙 중계기 내의 모든 중앙 중계기가 구독 메시지를 수신했다. 그러나 (두 번째 중앙 중계기를 포함하는) 두 번째 세트의 중앙 중계기 내의 중앙 중계기 중 어느 것도 구독 메시지를 수신하지 못했다. 따라서 공표 메시지가 첫 번째 중앙 중계기에 의해 수신될 때, 타겟이 패턴의 적어도 일부와 매치하는지를 결정할 수 있다(318). 다른 한편 두 번째 세트의 중앙 중계기 내의 중앙 중계기가 공표 메시지를 수신하지 못했기 때문에 두 번째 세트의 중앙 중계기의 중앙 중계기 내에 저장된 타겟과 패턴 사이에 비-매치가 발견된다. 물론 이전에 또 하나의 원격 중계기가 타겟을 포함하는 구독 메시지를 두 번째 세트의 중앙 중계기로 제출한 경우 두 번째 중앙 중계기가 첫 번째 중앙 중계기와 유사한 방식으로 매치를 결정한다. 그러나 도 3에 도시된 상기 방법에서 간략화된 예는 명료함을 위해 제공된다.
매치를 결정한 후에 첫 번째 중앙 중계기는 첫 번째 원격 중계기가 공표 메시지와 연관된 메시지 타입에 관심 있다고 결정한 것에 응답해서 메시지열을 상기 첫 번째 원격 중계기에 전송한다(320). 이러한 특정한 예에서 공표 메시지가 오직 상기 첫 번째 원격 중계기에 보내지나 당업자는 공표 메시지가 첫 번째 중앙 중계기에 의해 다수의 원격 중계기에 보내질 수 있다는 것을 인식할 것이다. 예컨대 첫 번째 중앙 중계기가 90 개의 원격 중계기 중 15개로부터 동일한 타겟을 갖는 구독 메시지를 수신한 경우 첫 번째 중앙 중계기는 이후 공표 메시지 또는 이 메시지의 변형을 이 특정한 메시지 타입에 대해 구독한 15개의 원격 중계기에 전송한다. 당업자는 많은 변형예, 수정예 및 대안을 인식할 것이다.
첫 번째 원격 중계기에서 타겟이 패턴의 적어도 일부와 매치하는지에 대한 결정이 이루어진다(322). 매치를 기초로 해서 첫 번째 원격 중계기가 메시지를 상기 첫 번째 클라이언트에 전송한다(324). 따라서 첫 번째 클라이언트는 초기 구독 요청에 응답해서 요구된 정보를 수신할 수 있다.
단일한 구독 요청 및 단일한 공표 요청이 도 3에 도시된 상기 방법에 사용되나, 본 발명은 이러한 특정 구현에 한정되지 않는다는 것이 주목되어야 한다. 원격 중계기에 의해 복수의 구독 요청이 수신되고 처리되며 및 중앙 중계기로 전송될 수 있다. 다수의 원격 중계기는 구독 메시지를 한 세트의 중앙 중계기에 전송해서, 중앙 중계기와 통신할 수 있다. 따라서 오직 두 개의 원격 중계기가 도 2a 및 도 2b에 도시되나, 훨씬 더 많은 개수 예컨대 80개 이상의 원격 중계기가 일부 구현예에서 중앙 중계기와 통신한다. 원격 중계기의 구체적인 수 및 계층 레벨의 수는 구체적인 응용예에 의존한다. 당업자는 많은 변형예, 수정예 및 대안을 인식할 것이다.
도 3에 도시된 구체적인 단계는 본 발명의 하나의 실시예에 따른 공표/구독 시스템 내에서 공표 메시지 부하 균형을 구현하는 구체적인 방법을 제공한다는 것이 인식되어야 한다. 단계에 대한 다른 시퀀스들이 대안적인 실시예에 따라 수행될 수도 있다. 예컨대 본 발명의 대안적인 실시형태는 위에서 개괄된 단계를 상이한 순서로 수행할 수 있다. 더욱이 도 3에 도시된 개별적인 단계는 개별적인 단계에 적당하게 다양한 시퀀스들로 실행될 수 있는 다수의 하위-단계를 포함할 수 있다. 나아가 추가적인 단계가 구체적인 응용예에 의존해서 추가되거나 제거될 수 있다. 당업자는 많은 변형예, 수정예 및 대안을 인식할 것이다.
도 4는 본 발명의 하나의 실시예에 따른 공표/구독 시스템에서 메시지 흐름을 도시하는 도표이다. 왼쪽 열은 이벤트를 나열한다. 중간 열 및 오른쪽 열은 이벤트에 응답해서 원격 중계기 또는 중앙 중계기 각각에 의해 취해진 동작을 나열한다. 도표의 첫 번째 행을 참조하면 구독 요청/구독 메시지가 원격 중계기에 의해 수신되는 경우 구독이 중복이 아닌 한 구독을 기록할 것이다.
구독 요청이 특정한 원격 클라이언트로부터의 중복 요청인 경우 원격 중계기는 이러한 중복 요청을 폐기할 것이다. 추가로 유사한 구독 요청이 이미 또 하나의 소스로부터 수신된 경우, 원격 중계기는 새로운 요청자가 이미 저장된 타겟과 연관되도록 새로운 요청자의 아이덴터티를 이용해서 자신의 데이터베이스를 갱신할 수 있다. 기록 프로세스 동안에 상기 요청자의 아이덴터티, 예컨대 원격 클라이언트 또는 다른 원격 중계기가 상기 요청과 연관된 타겟과 함께 저장될 것이다.
통상적으로 구독 요청/메시지가 새로운 경우, 구독 요청/메시지는 기록 프로세스 이후에 상기 원격 중계기에 의해 전송될 것이다. 대안적으로 다수의 요청이 배치(batch) 동작 모드로 전송되기 전에 원격 중계기에 의해 묶일 수 있다. 구독을 기록한 후에 원격 중계기가 원격 중계기 아래의 계층 레이어 내에 있는 경우(예컨대 원격 중계기 레벨 2), 구독 메시지는 중앙 중계기에 더 가까운 계층 레이어 내에 있는 원격 중계기로 포워딩될 것이다. 원격 중계기가 중앙 중계기에 인접한 계층 레이어 내에 있는 경우(예컨대 원격 중계기 레벨 1), 원격 중계기는 구독 메시지를 하나의 세트의 중앙 중계기 내의 각각의 중앙 중계기에 전송할 것이다.
도표의 첫 번째 행을 계속해서 보면 구독 요청이 중앙 중계기에 의해 수신되는 경우, 구독이 기록될 것이다. 따라서 공표 메시지가 수신되는 경우, 공표 메시지, 이 메시지의 몇몇 부분 또는 이 메시지의 변형이 중앙 중계기에 의해 기록된 정보를 기초로 해서 원격 중계기에 전송될 수 있다. 통상적으로 원격 중계기의 아이덴터티 및 타겟이 구독 요청에 포함된다.
도표의 두 번째 행은 원격 클라이언트로부터 공표 요청의 수령에 대한 것이다. 원격 중계기는 공표 요청과 관련된 공표 메시지를 각각의 세트의 중앙 중계기 내의 하나의 중앙 중계기에 포워딩할 것이다. 공표 메시지는 원격 클라이언트로부터 수신된 공표 요청, 공표 요청의 일부, 공표 요청의 변형 또는 이와 유사한 것일 수 있다. 예컨대 공표 요청으로부터의 메시지열이 중앙 중계기로 포워딩 될 수 있다. 두 번째 행의 오른쪽 열은 비어있는데 이는 하나의 구현예에서 어떠한 원격 클라이언트도 중앙 중계기와 직접 연결되지 않기 때문이다. 이 구현예에서 모든 원격 클라이언트는 원격 중계기 통해 중앙 중계기와 연결되며, 따라서 공표 요청은 원격 클라이언트로부터 중앙 중계기에서 수신되지 않는다. 다른 구현예에서 원격 클라이언트는 원격 중계기를 통한 연결 없이 중앙 중계기에 직접 연결될 수 있다.
도표의 세 번째 행은 원격 중계기로부터의 공표 메시지의 수령에 대한 것이다. 공표 메시지가 중앙 중계기에 인접한 계층 내의 원격 중계기에서(예컨대 더 낮은 레벨의 계층에 있는 원격 중계기로부터) 수신되는 경우 공표 메시지는 각각의 세트의 중앙 중계기 내의 하나의 중앙 중계기에 포워딩 될 것이다. 이러한 프로세스는 도 2b에 프로세스 5에 의해 도시된다. 공표 메시지가 중앙 중계기에서 수신되는 경우 공표 메시지는 이러한 특정한 메시지 타입에 대해 구독한 원격 중계기로 전송될 것이다. 도 3에 대해 논의된 바와 같이 메시지열의 적어도 일부가 상기 중앙 중계기에 의해 저장된 타겟과 매치하는 경우 결정이 이루어질 것이다.
도표의 네 번째 행은 중앙 중계기로부터의 공표 메시지의 수령에 대한 것이다. 계층 내의 원격 클라이언트와 인접한 원격 중계기가 이러한 공표 메시지를 수신하는 경우 원격 중계기는 공표 메시지를 특정 메시지 타입에 대하여 구독하고 있는 원격 클라이언트로 전송할 것이다. 도 3과 관련되어 논의된 바와 같이 메시지열의 적어도 일부가 원격 중계기에 의해 저장된 타겟과 매치하는 경우 결정이 이루어질 것이다.
공표 메시지를 수신하는 원격 중계기가 계층 내의 원격 클라이언트와 인접하지 않은 경우 이러한 특정한 메시지 타입에 대해 구독한 그 다음의 하위 레벨의 계층 내의 원격 중계기 내의 임의의 원격 중계기로 공표 메시지를 포워딩할 것이다. 차례로 그 다음의 하위 레벨의 계층 내의 원격 중계기는 메시지가 구독하는 원격 클라이언트로 전달될 때까지 공표 메시지를 계속해서 포워딩할 것이다.
도 5는 본 발명의 하나의 실시예에 따른 원격 중계기의 요소의 간략화된 개략도이다. 원격 중계기(500)는 프로세서(512)(데이터 프로세서로도 불림), 통신 모듈(514) 및 메모리(516)를 포함한다. 프로세서(512)는 명령어 및 데이터를 실행하도록 설정된 범용 마이크로프로세서 이를테면 캘리포니아 산타 클라라 소재 인텔사에 의해 제조된 프리미엄 프로세서일 수 있다.
프로세서는 또한 소프트웨어, 펌웨어 및/또는 하드웨어로 본 발명에 따른 상기 방법을 수행하기 위한 명령어의 적어도 일부를 구현하는 주문형 반도체(ASIC)일 수 있다. 예컨대 이러한 프로세서는 전용 회로, ASIC, 조합 로직, 그 밖의 프로그래머블 프로세서, 이들의 조합 및 이와 유사한 것을 포함할 수 있다.
프로세서(512)는 계층적 공표/구독 시스템의 동작 동안에 사용하기 위한 정보를 저장 및 저장된 정보에 액세스하기 위해 메모리(516)에 연결된다. 메모리(데이터베이스 또는 컴퓨터 판독가능 매체로도 불림)(516)는 구체적인 응용예에 적당하게 로컬형 또는 분산형일 수 있다. 메모리의 예는 하드 드라이브, 플래시 메모리 또는 이와 유사한 것이다. 선택적인 입출력 인터페이스(518)가 시스템 운영자에 의한 상기 원격 중계기의 제어를 용이하게 하기 위해 제공된다. 선택적 입출력 인터페이스(518)는 또한 시스템 운영자, 그 밖의 적합한 직원 또는 적합한 컴퓨터 시스템로 성능 리포트를 전달하기 위한 메커니즘을 제공한다. 더 통상적으로 상기 원격 중계기는 통신 모듈(514)을 통해 제어되는데 상기 통신 모듈을 통해 시스템 운영자가 상기 원격 중계기와 상호작용할 수 있다.
통신 모듈(514)은 또한 상기 원격 중계기와 원격 클라이언트(520), 그 밖의 원격 중계기(522) 및/또는 중앙 중계기(524) 사이의 통신을 위해 제공한다.
본 명세서에 설명된 상기 예들 및 실시형태는 오직 예시적인 목적을 위한 것이며 이에 비추어 다양한 수정예 또는 변형예가 당업자에게 암시될 것이며 본 출원의 사상 및 범주 그리고 첨부된 청구항의 범위 내에 포함되어야 한다는 것이 또한 이해된다.

Claims (23)

  1. ⅰ) 첫 번째 원격 중계기에서 첫 번째 클라이언트로부터의 타겟(target)을 포함하는 구독 요청(subscription request)을 수신하는 단계;
    ⅱ) 원격 중계기로부터 타겟을 포함하는 구독 메시지를 첫 번째 세트 중앙 중계기 각각에 전송하는 단계;
    ⅲ) 두 번째 원격 중계기에서 두 번째 클라이언트로부터 패턴에 의해 특징지어지는 메시지열(message string)을 포함하는 공표 요청을 수신하는 단계;
    ⅳ) 두 번째 원격 중계기로부터의 메시지열을 포함하는 공표 메시지를 첫 번째 세트 중앙 중계기의 첫 번째 중앙 중계기 및 두 번째 세트 중앙 중계기의 두 번째 중앙 중계기에 전송하는 단계;
    ⅴ) 첫 번째 중앙 중계기에서 타겟이 패턴의 적어도 일부와 매치하는지를 결정하는 단계;
    ⅵ) 메시지열을 첫 번째 중앙 중계기로부터 첫 번째 원격 중계기로 전송하는 단계;
    ⅶ) 첫 번째 원격 중계기에서 타겟이 패턴의 적어도 일부와 매치하는지를 결정하는 단계; 및
    ⅷ) 메시지열을 첫 번째 클라이언트로 전송하는 단계;
    를 포함하는 메시지의 공표 방법.
  2. 제 1항에 있어서, 상기 첫 번째 세트의 중앙 중계기는 첫 번째 데이터 센터 내에 위치되고 두 번째 세트의 중앙 중계기는 두 번째 데이터 센터 내에 위치함을 특징으로 하는 공표 방법.
  3. 제 1항에 있어서, 상기 방법은 첫 번째 원격 중계기에서 구독 요청을 기록하는 단계를 더욱 포함함을 특징으로 하는 공표 방법.
  4. 제 1항에 있어서, 상기 공표 메시지를 두 번째 원격 중계기로부터 전송하는 단계는 ⅰ) 공표 메시지를 첫 번째 세트 중앙 중계기의 단일 중앙 중계기로 전송하는 단계; 및 ⅱ) 공표 메시지를 두 번째 세트 중앙 중계기의 단일 중앙 중계기로 전송하는 단계;를 포함함을 특징으로 하는 공표 방법.
  5. 제 1항에 있어서, 상기 공표 메시지는 오직 첫 번째 중앙 중계기 및 두 번째 중앙 중계기로만 전송됨을 특징으로 하는 공표 방법.
  6. 제 1항에 있어서, 상기 타겟은 미리 설정된 문자열을 포함하는 패턴을 포함함을 특징으로 하는 공표 방법.
  7. 제 6항에 있어서, 상기 패턴은 미리 설정된 문자열로 시작함을 특징으로 하는 공표 방법.
  8. 제 6항에 있어서, 상기 패턴은 미리 설정된 문자열로 종료됨을 특징으로 하는 공표 방법.
  9. ⅰ) 첫 번째 세트의 중앙 중계기;
    ⅱ) 두 번째 세트의 중앙 중계기;
    ⅲ) 첫 번째 세트의 중앙 중계기와 통신하는 첫 번째 원격 중계기;
    ⅳ) 구독 요청을 첫 번째 세트의 중앙 중계기 내의 각각의 중앙 중계기로 전송하는 첫 번째 원격 중계기와 통신하는 첫 번째 클라이언트;
    ⅴ) 두 번째 세트의 중앙 중계기와 통신하는 두 번째 원격 중계기; 및
    ⅵ) 첫 번째 세트의 중앙 중계기 내의 중앙 중계기 중 하나 및 두 번째 세트의 중앙 중계기 내의 중앙 중계기 중 하나로 공표 메시지를 전송 가능하게 작동 가능한 두 번째 원격 중계기와 통신하는 두 번째 클라이언트;
    를 포함하는 공표/구독 메시지 아키텍쳐.
  10. 제 9항에 있어서, 상기 첫 번째 세트의 중앙 중계기는 첫 번째 장소에 공동-위치(co-located)하고, 두 번째 세트의 중앙 중계기는 첫 번째 장소로부터 지리적으로 떨어진 두 번째 장소에 공동-위치함을 특징으로 하는 공표/구독 메시지 아키텍쳐.
  11. 제 9항에 있어서, 상기 구독 요청은 첫 번째 클라이언트에서 유래(originate)함을 특징으로 하는 공표/구독 메시지 아키텍쳐.
  12. 제 9항에 있어서, 상기 공표 메시지는 첫 번째 클라이언트와 상이한 두 번째 클라이언트에서 유래함을 특징으로 하는 공표/구독 메시지 아키텍쳐.
  13. 제 9항에 있어서, 상기 첫 번째 원격 중계기는 구독 요청을 기록할 수 있도록 작동 가능함을 특징으로 하는 공표/구독 메시지 아키텍쳐.
  14. 제 9항에 있어서, 상기 구독 요청은 타겟을 포함함을 특징으로 하는 공표/구독 메시지 아키텍쳐.
  15. 제 14항에 있어서, 상기 타겟은 미리 설정된 문자열을 포함하는 패턴을 포함함을 특징으로 하는 공표/구독 메시지 아키텍쳐.
  16. 제 15항에 있어서, 상기 패턴은 미리 설정된 문자열로 시작함을 특징으로 하는 공표/구독 메시지 아키텍쳐.
  17. 제 15항에 있어서, 상기 패턴은 미리 설정된 문자열로 종료함을 특징으로 하는 공표/구독 메시지 아키텍쳐.
  18. 제 9항에 있어서, 상기 아키텍쳐는 첫 번째 원격 중계기와 통신하는 세 번째 클라이언트를 더욱 포함함을 특징으로 하는 공표/구독 메시지 아키텍쳐.
  19. 제 9항에 있어서, 상기 아키텍쳐는 두 번째 원격 중계기와 통신하는 네 번째 클라이언트를 더욱 포함함을 특징으로 하는 공표/구독 메시지 아키텍쳐.
  20. ⅰ) 첫 번째 원격 중계기에서 첫 번째 원격 클라이언트로부터 타겟을 포함하는 구독 요청을 수신하는 단계;
    ⅱ) 첫 번째 원격 클라이언트와 연관된 식별 정보 및 타겟과 연관된 정보를 첫 번째 원격 중계기의 컴퓨터 판독가능 매체에 기록하는 단계;
    ⅲ) 타겟을 포함하는 구독 메시지를 첫 번째 세트의 원격 중계기 각각에 전송하는 단계;
    ⅳ) 두 번째 원격 중계기에서 두 번째 원격 클라이언트로부터 패턴에 의해 특징지어지는 메시지열을 포함하는 공표 요청을 수신하는 단계;
    ⅴ) 두 번째 원격 중계기로부터 메시지열을 포함하는 공표 메시지를 첫 번째 세트의 중앙 중계기의 첫 번째 중앙 중계기 및 두 번째 세트의 중앙 중계기의 두 번째 중앙 중계기로 전송하는 단계;
    ⅵ) 첫 번째 원격 중계기에서 첫 번째 중앙 중계기로부터 메시지열을 수신하는 단계;
    ⅶ) 첫 번째 원격 중계기에서 타겟이 패턴의 적어도 일부분과 매치하는지를 결정하는 단계; 및
    ⅷ) 첫 번째 원격 중계기로부터 메시지열을 첫 번째 클라이언트로 전송하는 단계;
    를 포함하는 원격 중계기의 작동 방법.
  21. 제 20항에 있어서, 상기 구독 메시지는 첫 번째 원격 중계기와 연관된 식별 정보를 포함함을 특징으로 하는 작동 방법.
  22. 제 20항에 있어서, 상기 공표 메시지는 메시지열임을 특징으로 하는 작동 방법.
  23. 제 20항에 있어서, 상기 공표 메시지를 전송하는 단계는 첫 번째 세트 중앙 중계기의 첫 번째 중앙 중계기 및 두 번째 세트 중앙 중계기의 두 번째 중앙 중계기로만 공표 메시지를 전송하는 단계를 포함함을 특징으로 하는 작동 방법.
KR1020127012215A 2009-11-09 2010-09-22 공표/구독 메시지 아키텍쳐 내의 애플리케이션 레벨 부하 균형을 위한 방법 및 시스템 KR20120088744A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/615,205 2009-11-09
US12/615,205 US8982882B2 (en) 2009-11-09 2009-11-09 Method and system for application level load balancing in a publish/subscribe message architecture
PCT/US2010/049872 WO2011056312A1 (en) 2009-11-09 2010-09-22 Method and system for application level load balancing in a publish/subscribe message architecture

Publications (1)

Publication Number Publication Date
KR20120088744A true KR20120088744A (ko) 2012-08-08

Family

ID=43970229

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127012215A KR20120088744A (ko) 2009-11-09 2010-09-22 공표/구독 메시지 아키텍쳐 내의 애플리케이션 레벨 부하 균형을 위한 방법 및 시스템

Country Status (6)

Country Link
US (2) US8982882B2 (ko)
EP (1) EP2499561B1 (ko)
KR (1) KR20120088744A (ko)
CN (1) CN102713833A (ko)
CA (1) CA2779054A1 (ko)
WO (1) WO2011056312A1 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2495671A1 (en) 2001-11-01 2012-09-05 Verisign, Inc. Method and system for validating a data transmission to a remote database
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
US8982813B2 (en) * 2009-06-03 2015-03-17 Lg Electronics Inc. Method and apparatus for transmitting sounding reference signal
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
US8327019B2 (en) 2009-08-18 2012-12-04 Verisign, Inc. Method and system for intelligent routing of requests over EPP
US8856344B2 (en) 2009-08-18 2014-10-07 Verisign, Inc. Method and system for intelligent many-to-many service routing over EPP
US8175098B2 (en) 2009-08-27 2012-05-08 Verisign, Inc. Method for optimizing a route cache
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
US9762405B2 (en) 2009-10-30 2017-09-12 Verisign, Inc. Hierarchical publish/subscribe system
US9269080B2 (en) * 2009-10-30 2016-02-23 Verisign, Inc. Hierarchical publish/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
US8935330B2 (en) * 2011-05-11 2015-01-13 International Business Machines Corporation Redirecting messages in a publish/subscribe messaging system
CN103037000B (zh) * 2012-12-21 2015-07-08 北京邮电大学 一种发布订阅系统及其通知消息处理方法
GB2520972A (en) 2013-12-05 2015-06-10 Ibm Workload management
CN105591877A (zh) * 2014-10-23 2016-05-18 阿里巴巴集团控股有限公司 一种业务消息传输方法、装置及系统
US9886513B2 (en) * 2015-05-25 2018-02-06 International Business Machines Corporation Publish-subscribe system with reduced data storage and transmission requirements
CN109656726B (zh) * 2018-11-28 2020-10-23 中国船舶重工集团公司第七一九研究所 一种适用于数据中心的工业信息交互系统及方法
US11509611B2 (en) * 2020-06-09 2022-11-22 Jpmorgan Chase Bank, N.A. Method and system for providing high efficiency, bidirectional messaging for low latency applications
CN112636964A (zh) * 2020-12-16 2021-04-09 四川长虹电器股份有限公司 监测设备远程配置方法及系统

Family Cites Families (80)

* 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
AU3390500A (en) 1999-03-03 2000-09-21 Ultradns, Inc. Scalable and efficient domain name resolution
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
KR100751622B1 (ko) * 1999-11-26 2007-08-22 네테카 인코포레이티드 네트워크 어드레스 서버, 도메인 명칭 분석 방법, 및 컴퓨터 판독 가능 기록 매체
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
US7478148B2 (en) * 2001-01-16 2009-01-13 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
EP2495671A1 (en) 2001-11-01 2012-09-05 Verisign, Inc. Method and system for validating a data transmission to a remote database
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
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
US20050105513A1 (en) 2002-10-27 2005-05-19 Alan Sullivan Systems and methods for direction of communication traffic
US20050027882A1 (en) 2003-05-05 2005-02-03 Sullivan Alan T. 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
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
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
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
AU2006251563A1 (en) 2005-05-24 2006-11-30 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
US7509235B2 (en) * 2005-08-31 2009-03-24 General Electric Company Method and system for forecasting reliability of assets
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
WO2007084713A2 (en) * 2006-01-20 2007-07-26 Paxfire, Inc. Systems and methods for discerning and controlling communication traffic
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
US20080133729A1 (en) 2006-08-17 2008-06-05 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
WO2008079433A1 (en) 2006-12-20 2008-07-03 Rowley, Richard 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
WO2008130708A1 (en) * 2007-04-20 2008-10-30 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
US8307054B2 (en) * 2007-08-30 2012-11-06 Software Ag Systems and/or methods for location transparent routing and execution of processes
WO2009052408A2 (en) * 2007-10-18 2009-04-23 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
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
US8527658B2 (en) 2009-04-07 2013-09-03 Verisign, Inc Domain traffic ranking
US9292612B2 (en) 2009-04-22 2016-03-22 Verisign, Inc. Internet profile service
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
US8977705B2 (en) 2009-07-27 2015-03-10 Verisign, Inc. Method and system for data logging and analysis
US20110035497A1 (en) 2009-08-05 2011-02-10 Dynamic Network Services, Inc. System and method for providing global server load balancing
US8380870B2 (en) 2009-08-05 2013-02-19 Verisign, Inc. Method and system for filtering of network traffic
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
US8291025B2 (en) * 2009-10-23 2012-10-16 International Business Machines Corporation Controlling retention of publication
US8982882B2 (en) 2009-11-09 2015-03-17 Verisign, Inc. Method and system for application level load balancing in a publish/subscribe message architecture
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
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
US9286369B2 (en) 2009-12-30 2016-03-15 Symantec Corporation Data replication across enterprise boundaries

Also Published As

Publication number Publication date
EP2499561A1 (en) 2012-09-19
EP2499561A4 (en) 2013-06-05
WO2011056312A1 (en) 2011-05-12
CA2779054A1 (en) 2011-05-12
US8982882B2 (en) 2015-03-17
WO2011056312A9 (en) 2012-06-14
US20110110267A1 (en) 2011-05-12
CN102713833A (zh) 2012-10-03
US20150195350A1 (en) 2015-07-09
US9124592B2 (en) 2015-09-01
EP2499561B1 (en) 2014-11-12

Similar Documents

Publication Publication Date Title
KR20120088744A (ko) 공표/구독 메시지 아키텍쳐 내의 애플리케이션 레벨 부하 균형을 위한 방법 및 시스템
US11184299B2 (en) Hierarchical publish and subscribe system
US9235829B2 (en) Hierarchical publish/subscribe system
US9269080B2 (en) Hierarchical publish/subscribe system
CN106031130B (zh) 具有边缘代理的内容传送网络架构
US9762405B2 (en) Hierarchical publish/subscribe system
CA2748688C (en) Multi-source transmission system and method of instant messaging file
US9569753B2 (en) Hierarchical publish/subscribe system performed by multiple central relays
US20030005152A1 (en) Content-request redirection method and system
CN103108008B (zh) 一种下载文件的方法及文件下载系统
US20020198937A1 (en) Content-request redirection method and system
US20030145093A1 (en) System and method for peer-to-peer file exchange mechanism from multiple sources
US10708767B2 (en) Anycast manifest retrieval, unicast content retrieval
US8805950B1 (en) Client web cache
US10691820B1 (en) Real-time distribution of messages via a network with multi-region replication in a hosted service environment
SE511823C2 (sv) Datakommunikationsnät och förfarande relaterande därtill
EP2680539B1 (en) Hierarchical publish/subscribe system
US7620699B1 (en) Method and system for managing high-bandwidth data sharing
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