KR102022602B1 - 게시-구독 메시지 서비스 방법 - Google Patents

게시-구독 메시지 서비스 방법 Download PDF

Info

Publication number
KR102022602B1
KR102022602B1 KR1020170154741A KR20170154741A KR102022602B1 KR 102022602 B1 KR102022602 B1 KR 102022602B1 KR 1020170154741 A KR1020170154741 A KR 1020170154741A KR 20170154741 A KR20170154741 A KR 20170154741A KR 102022602 B1 KR102022602 B1 KR 102022602B1
Authority
KR
South Korea
Prior art keywords
topic
message
loop operation
subscription
broker
Prior art date
Application number
KR1020170154741A
Other languages
English (en)
Other versions
KR20190057604A (ko
Inventor
김재훈
김주현
Original Assignee
아주대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 아주대학교산학협력단 filed Critical 아주대학교산학협력단
Priority to KR1020170154741A priority Critical patent/KR102022602B1/ko
Publication of KR20190057604A publication Critical patent/KR20190057604A/ko
Application granted granted Critical
Publication of KR102022602B1 publication Critical patent/KR102022602B1/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/14Session management
    • H04L67/2809
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

게시-구독 메시지 서비스 방법을 개시한다. 본 발명의 일 실시예에 따른 게시-구독 메시지 서비스 방법은, 구독 노드(Subscriber)는, 토픽이 포함된 구독 메시지(Subscribe)를 브로커로 전송하고, 일정 주기(interval)의 루프 오퍼레이션(loop operation)을 지속적으로 실행하여 상기 브로커와의 연결(connection)을 유지하는 단계, 상기 브로커는, 게시 노드(Publisher)로부터 토픽이 포함된 게시 메시지(Publish) 수신 시, 상기 토픽에 대한 게시 메시지의 게시 빈도에 기초하여 상기 루프 오퍼레이션의 주기 조정 필요 여부를 판단하고, 필요 시 루프 오퍼레이션 주기 조정 메시지를 상기 구독 노드로 전송하는 단계, 상기 구독 노드는 상기 토픽에 대한 게시 빈도에 기초하여 루프 오퍼레이션의 주기를 조정하는 단계를 포함한다.

Description

게시-구독 메시지 서비스 방법{Publish-Subscribe message service method}
본 발명은 게시-구독 메시지 서비스 방법에 관한 것으로, 특히 루프 오퍼레이션(loop operation)에 의한 게시-구독 메시지 서비스를 실행하는 동안 토픽에 대한 게시 메시지의 게시 빈도에 따라 루프 오퍼레이션의 주기를 동적으로 변경하는 게시-구독 메시지 서비스 방법에 관한 것이다.
모든 사물을 인터넷에 연결하여 사람들뿐만 아니라 사람과 사물, 사물과 사물들 간에 인터넷 서비스를 제공하는 IoT(Internet of Things) 기술이 최근 활발히 연구 개발되고 있다.
IoT에서는 사물(Things)간 통신을 요구한다. IoT 메시징 서비스로 IBM에서 개발하고 현재 OASIS 표준인 MQTT(Messaging Queuing Telemetry Transport)가 있다. MQTT는 기본적으로 게시-구독 모델(Publish/Subscribe Model)에 기반하여 사물간 메시징 서비스(Messaging Service)를 제공한다.
MQTT 프로토콜은 게시-구독(Pub/Sub) 통신 구조를 이용하여 M2M(Machine-to-machine)과 사물인터넷 환경에서 효율적인 통신을 위해서 기술된 것으로, 낮은 전력, 낮은 대역폭 환경에서도 통신이 가능하다.
MQTT 게시-구독(Pub/Sub) 통신 구조는 특정한 메시지를 보내는 1개 이상의 게시노드(Publisher)와 그 메시지를 수신하는 1개 이상의 구독노드(Subscriber) 그리고 브로커를 포함한다. 이러한 구조를 갖는 MQTT는 도 1에 도시된 게시-구독 메시지 서비스를 수행한다. 도 1을 참조하면, 구독노드(Subscriber)는 내부의 루프 오퍼레이션(Loop Operation)을 지속적으로 수행해 커넥션(Connection)을 유지하고, 수신하고자하는 토픽 이름 (Topic Name)을 가지고 브로커에 Subscribe한다. 브로커는 여러 게시노드(Publisher)가 송신하는 게시 메시지(Publish)를 게시 메시지에 적힌 토픽 이름을 기준으로 저장한다. 구독노드(Subscriber)는 루프 오퍼레이션을 통해 계속적으로 브로커에 보관되고 있는 게시 메시지의 토픽 이름을 검색하게 되고, 자신이 수신하고자 하는 토픽 이름과 동일한 토픽 이름을 가진 게시 메시지가 확인되면, 이 게시 메시지를 자신에게 Publish하도록 브로커에 요청한다. 브로커는 이제 동일한 토픽을 가진 구독 노드에 게시 노드의 메시지를 Publish하게 된다.
상술한 게시-구독 메시지 서비스는 정해지거나 적은 수의 클라이언트들이 존재하는 네트워크 환경에는 효과가 인정되고 있다.
그러나, 다수의 클라이언트가 존재하고 동적인 환경의 엣지 네트워크(Edge Network)와 같은 미래형 네트워크 환경에서는 브로커에 커넥션을 유지하는 Subscriber 수가 증가하게 되어, 작업에 부하가 걸리는 문제가 있다.
또한, 구독노드(Subscriber)가 루프 오퍼레이션(Loop Operation)을 진행하여 연결(connection)을 유지하는 과정에 있어서 동일한 토픽에 대한 메시지가 브로커에 게시(Publish)되지 않는다면 불필요한 자원의 소모가 이루어지는 단점이 있다.
따라서, 미래형 네트워크 환경에서도 작업에 걸리는 부하가 적고, 구독 노드의 불필요한 자원 소모를 줄일 수 있는 게시-구독 메시지 서비스에 대한 기술 개발이 요구되고 있다.
이에 관련하여, 발명의 명칭이 "확장형 게시-구독 메시징 서비스 방법 및 시스템 "인 한국등록특허 제10-1609532호가 존재한다.
본 발명이 해결하고자 하는 기술적 과제는 구독노드의 루프 오퍼레이션 주기를 동적으로 조정하여, 구독 노드의 효율적인 에너지 활용과 작업 부하가 적게 걸리게 하는 게시-구독 메시지 서비스 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는 루프 오퍼레이션의 주기(interval)가 일정 수준 이상으로 증가할 경우, 루프 오퍼레이션을 이벤트 기반 오퍼레이션으로 변경하여 보다 효율적인 통신을 가능하게 하는 게시-구독 메시지 서비스 방법을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 게시-구독 메시지 서비스 방법은, 구독 노드(Subscriber)는, 토픽이 포함된 구독 메시지(Subscribe)를 브로커로 전송하고, 일정 주기(interval)의 루프 오퍼레이션(loop operation)을 지속적으로 실행하여 상기 브로커와의 연결(connection)을 유지하는 단계, 상기 브로커는, 게시 노드(Publisher)로부터 토픽이 포함된 게시 메시지(Publish) 수신 시, 상기 토픽에 대한 게시 메시지의 게시 빈도에 기초하여 상기 루프 오퍼레이션의 주기 조정 필요 여부를 판단하고, 필요 시 루프 오퍼레이션 주기 조정 메시지를 상기 구독 노드로 전송하는 단계, 상기 구독 노드는 상기 토픽에 대한 게시 빈도에 기초하여 루프 오퍼레이션의 주기를 조정하는 단계를 포함한다.
바람직하게는, 상기 루프 오퍼레이션은, 상기 브로커에 등록된 게시 메시지의 토픽을 검색하여 구독 토픽과 매칭되는 토픽 검색 시, 해당 게시 메시지의 구독을 요청하여 수신하는 동작으로, 일정 주기로 지속적으로 실행되어 상기 브로커와의 연결을 유지할 수 있다.
바람직하게는, 상기 구독 노드로 전송하는 단계는, 상기 토픽에 대한 게시 메시지의 게시 빈도를 갱신하는 단계, 상기 토픽에 대해서, 최근 루프 오퍼레이션 주기에서의 게시 빈도와 최근 이전 루프 오퍼레이션 주기에서의 게시 빈도의 차이를 산출하는 단계, 상기 산출된 차이에 기초한 절대값이 기 설정된 임계값을 초과하는 경우, 상기 루프 오퍼레이션의 주기 조정이 필요하다고 판단하여 루프 오퍼레이션 주기 조정 메시지를 상기 구독 노드로 전송하는 단계를 포함할 수 있다.
바람직하게는, 상기 루프 오퍼레이션의 주기를 조정하는 단계는, 상기 차이에 기초한 값이 제1 임계값 이상인 경우 기 설정된 기준에 기초하여 루프 오퍼레이션의 주기를 감소시키고, 상기 차이에 기초한 값이 제2 임계값 이하인 경우 기 설정된 기준에 기초하여 루프 오퍼레이션의 주기를 증가시킬 수 있다.
바람직하게는, 상기 구독 노드는, 상기 루프 오퍼레이이션의 주기가 기 설정된 일정 값 이상으로 증가된 경우, 루프 오퍼레이션 실행을 종료하고, 이벤트 기반 오퍼레이션을 실행하는 단계를 더 포함하되, 상기 이벤트 기반 오퍼레이션은, 구독 토픽 등록 및 구독 토픽에 대응되는 게시 메시지 수신 시에 상기 브로커와 연결을 설정할 수 있다.
바람직하게는, 상기 이벤트 기반 오퍼레이션을 실행하는 단계는, 상기 구독 노드는 커넥션 명령을 통해 상기 브로커와 연결을 설정하여, 구독 노드 식별정보 및 구독 토픽이 포함된 구독 등록 요청 메시지를 상기 브로커로 전송하는 단계, 상기 브로커는 상기 구독 노드 식별정보 및 구독 토픽을 토픽 레지스트리에 등록한 후, 상기 구독 노드와의 연결을 해제하는 단계, 상기 브로커는 게시 노드로부터 게시 메시지를 수신하고, 상기 수신된 게시 메시지의 토픽이 상기 토픽 레지스트리에 등록된 경우, 상기 토픽을 등록한 구독 노드와 연결을 설정하여 상기 게시 메시지를 전송하고, 상기 연결을 해제하는 단계를 포함할 수 있다.
바람직하게는, 상기 게시 메시지를 전송하고, 상기 연결을 해제하는 단계 이후, 상기 브로커는 상기 토픽에 대한 게시 메시지의 게시 빈도를 카운트하고, 상기 카운트된 게시 빈도가 기 설정된 일정 값 이상인 경우 루프 오퍼레이션 실행 가능 메시지를 상기 구독 노드로 전송하는 단계를 더 포함할 수 있다.
본 발명에 따르면, 구독노드가 루프 오퍼레이션을 수행하는 동안 토픽에 대한 게시 메시지의 게시 빈도에 따라 루프 오퍼레이션의 주기를 동적으로 변경함으로써, 구독노드의 효율적인 에너지 활용과 작업에 걸리는 부하를 적게할 수 있다.
또한, 본 발명에 따르면, 루프 오퍼레이션의 주기(interval)가 일정 수준 이상으로 증가할 경우, 루프 오퍼레이션을 이벤트 기반 오퍼레이션으로 변경함으로써, 보다 효율적인 통신을 가능하게 할 수 있다. 이를 통해 여러 클라이언트가 포함된 네트워크 환경 속에서 클라이언트가 필요한 정보가 있는 경우에만 통신을 진행하여 네트워크 자원을 보다 효과적으로 활용할 수 있고, 브로커의 불필요한 자원 소모를 줄일 수 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 종래의 게시-구독 메시지 서비스를 설명하는 도면이다.
도 2는 본 발명의 일 실시예에 따른 게시-구독 메시지 서비스 시스템을 나타낸 도면이다.
도 3는 본 발명의 일 실시예에 따른 토픽 레지스트리의 토픽 테이블을 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 게시-구독 메시지 서비스 방법을 설명하는 도면이다.
도 5는 본 발명의 일 실시예에 따른 루프 오퍼레이션의 주기 조정을 설명하는 예시도이다.
도 6은 본 발명의 일 실시예에 따른 이벤트 기반 오퍼레이션을 설명하는 도면이다.
도 7은 본 발명의 일 실시예에 따른 브로커가 루프 오퍼레이션의 주기를 조정하는 방법을 나타낸 순서도이다.
도 8은 본 발명의 일 실시예에 따른 구독 노드가 루프 오퍼레이션의 주기를 조정하는 방법을 나타낸 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하에서는 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 2는 본 발명의 일 실시예에 따른 게시-구독 메시지 서비스 시스템을 나타낸 도면, 도 3는 본 발명의 일 실시예에 따른 토픽 레지스트리의 토픽 테이블을 나타낸 도면이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 게시-구독 메시지 서비스 시스템은 적어도 하나 이상의 게시 노드(100), 브로커(200), 적어도 하나 이상의 구독 노드(300)를 포함한다.
게시 노드(100)는 브로커(200)에 특정 토픽에 대한 메시지를 게시하는 노드로, 게시하고자 하는 토픽과 그 토픽의 내용을 포함하는 게시 메시지를 브로커(200)로 전송한다. 여기서, 토픽은 게시-구독 모델에서 게시 노드(100)와 구독 노드(200)를 연결하는 키(key)이다.
구독 노드(300)는 토픽에 대한 메시지를 수신하는 노드이다. 이때, 구독 노드(300)는 루프 오퍼레이션(loop operation) 또는 이벤트 기반 오퍼레이션을 실행하여 구독 토픽과 매칭되는 게시 메시지를 수신한다. 여기서, 루프 오퍼레이션은 기 설정된 일정 주기로 브로커에 등록된 게시 메시지의 토픽을 검색하여 구독 토픽과 매칭되는 토픽 검색 시, 해당 게시 메시지의 구독을 요청하여 수신하는 오퍼레이션일 수 있다. 이벤트 기반 오퍼레이션은 구독 토픽 등록 및 구독 토픽에 대응되는 게시 메시지 수신 시에만 브로커(200)와 연결을 설정하는 오페레이션일 수 있다. 루프 오퍼레이션과 이벤트 기반 오퍼레이션에 대한 상세한 설명은 후술하기로 한다.
구독 노드는(300) 루프 오퍼레이션 실행 시 구독 토픽에 대한 게시 빈도에 기초하여 루프 오퍼레이션의 주기를 조정한다. 또한, 구독 노드(300)는 루프 오퍼레이이션의 주기가 기 설정된 일정 값 이상으로 증가된 경우, 루프 오퍼레이션 실행을 종료하고, 이벤트 기반 오퍼레이션을 실행할 수 있다.
브로커(200)는 토픽별로 게시 노드(100)와 구독 노드(300)의 목록을 관리하고, 게시 노드(100)와 구독 노드(300) 간의 메시지 전송을 중계한다. 브로커(200)는 토픽에 대하여 게시자로 게시 노드(100)를 등록하고, 구독자로 구독 노드(300)를 등록한다. 상기 토픽에 대한 게시자는 하나 이상의 게시 노드를 포함할 수 있고, 구독자는 하나 이상의 구독 노드를 포함할 수 있다.
브로커(200)는 게시 노드(100)로부터 게시 메시지가 수신되면, 게시 메시지에 적힌 토픽 이름을 기준으로 저장한다. 이때, 브로커(200)는 게시 메시지에 포함된 토픽을 토픽 레지스트리(Topic Registry)(250)에 저장하고, 토픽 게시 빈도를 증가시킨다.
브로커(200)는 구독 노드(200)와 루프 오퍼레이션(loop operation)을 이용한 연결을 유지하고 있는 상태에서 게시 노드(100)로부터 토픽이 포함된 게시 메시지가 수신되면, 그 토픽에 대한 게시 메시지의 게시 빈도에 기초하여 루프 오퍼레이션의 주기 조정 필요 여부를 판단하고, 필요 시 루프 오퍼레이션의 주기를 조정하도록 하는 루프 오퍼레이션 주기 조정 메시지를 상기 토픽을 구독하는 구독 노드(300)로 전송한다. 이때, 루프 오퍼레이션 주기 조정 메시지는 토픽, 최근 루프 오퍼레이션 주기에서의 게시 빈도, 최근 이전 루프 오퍼레이션 주기에서의 게시 빈도, 두 게시 빈도의 차이, 루프 오프레이션 주기의 증가율 또는 감소율 등을 포함할 수 있다.
또한, 브로커(200)는 구독노드(300)로부터 구독 등록 요청 메시지가 수신되면, 구독 등록 요청 메시지에 포함된 토픽과 구독 노드 식별정보를 토픽 레지스트리(250)의 토픽 테이블에 저장한다.
토픽 레지스트리(250)는 브로커(200)가 가지고 있으며, 구독 노드(300)가 구독하고자 하는 토픽을 저장하는 데이터베이스일 수 있다. 토픽 레지스트리(250)는 구독 노드(300)가 등록하는 토픽을 토픽 테이블에 저장하고 있어 게시 노드(100)가 브로커(200)에 보내는 메시지의 토픽과 비교하여 매칭할 수 있도록 구성된다.
토픽 테이블에 대해 도 3을 참조하면, 토픽 테이블은 '토픽', '게시 노드', '구독 노드', '토픽 게시 빈도'를 컬럼으로 가지는 테이블일 수 있다. 토픽 테이블의 각 행은 게시 노드가 게시하고자 하는 토픽과 구독 노드가 구독하고자 하는 토픽이 '토픽' 컬럼에 저장되고, 게시 노드 식별정보가 '게시 노드' 컬럼에 저장되며, 구독 노드 식별정보가 '구독 노드' 컬럼에 저장되고, 토픽의 시간에 따른 게시 빈도가 '토픽 게시 빈도' 컬럼에 저장된다.
본 발명의 실시예에 따르면, 게시-구독 메시지 서비스 시스템에 포함된 게시 노드(100)는 토픽에 따라서 구독 노드(300)로 동작할 수 도 있고, 구독 노드(300)는 토픽에 따라서 게시 노드(100)로 동작할 수 있다. 게시 노드(100)와 구독 노드(300)는 동일한 서비스 노드 일 수 있으며, 서비스 노드에는 본원 발명의 게시-구독 메시지 서비스 방법이 구현된 프로그램이 실행될 수 있다. 프로그램의 동작에 따라 서비스 노드는 게시 노드(100)가 될 수도 있고 구독 노드(300)가 될 수 있다. 즉, 게시 노드(100)와 구독 노드(300)는 서비스 노드의 동작에 따른 구분일 수 있다.
도 4는 본 발명의 일 실시예에 따른 게시-구독 메시지 서비스 방법을 설명하는 도면, 도 5는 본 발명의 일 실시예에 따른 루프 오퍼레이션의 주기 조정을 설명하는 예시도, 도 6은 본 발명의 일 실시예에 따른 이벤트 기반 오퍼레이션을 설명하는 도면이다.
도 4를 참조하면, 구독 노드(Subscriber)는 구독 토픽이 포함된 구독 메시지(Subscribe)를 브로커로 전송하고(S410), 일정 주기(interval)의 루프 오퍼레이션(loop operation)을 지속적으로 실행하여 브로커와의 연결(connection)을 유지한다(S420). 이때, 구독 메시지를 수신한 브로커는 구독 토픽, 구독 노드 식별정보를 토픽 레지스트리에 등록한다. 루프 오퍼레이션은 브로커에 등록된 게시 메시지의 토픽을 검색하여 구독 토픽과 매칭되는 토픽 검색 시, 해당 게시 메시지의 구독을 요청하여 수신하는 동작으로, 일정 주기로 지속적으로 실행되어 브로커와의 연결을 유지하게 된다.
단계 S420이 수행되는 동안, 브로커는 게시 노드로부터 토픽이 포함된 게시 메시지가 수신되면(S430), 토픽에 대한 게시 메시지의 게시 빈도를 갱신한다(S440). 즉, 브로커는 게시노드로부터 게시 메시지가 수신되면, 게시 메시지를 저장함은 물론, 토픽 테이블에 토픽을 저장한다. 이때, 게시 메시지의 토픽이 토픽 테이블에 존재하는 경우 토픽의 게시 빈도를 증가(예컨대, '1'증가)시켜 토픽 테이블에 저장한다.
단계 S440이 실행되면, 브로커는 토픽에 대한 게시 빈도에 기초하여 루프 오퍼레이션의 주기 조정의 필요 여부를 판단한다(S450). 이때, 브로커는 상기 토픽에 대해서, 최근 루프 오퍼레이션 주기에서의 게시 빈도와 최근 이전 루프 오퍼레이션 주기에서의 게시 빈도의 차이를 산출하고, 산출된 차이의 절대값이 기 설정된 임계값을 초과하는 경우, 루프 오퍼레이션의 주기 조정이 필요하다고 판단한다. 루프 오퍼레이션의 주기는 루프 오퍼레이션이 실행되는 시간 간격(interval)을 의미할 수 있다.
예를 들어, 최근이 t-1 시간이고, 최근 이전이 t-2 시간이며, 임계값이 'a'라고 가정하면, 브로커는 아래 기재된 수학식 1을 만족하는 경우 루프 오퍼레이션의 주기 조정이 필요하다고 판단할 수 있다.
Figure 112017115193620-pat00001
여기서, TPCt -1은 t-1의 루프 오퍼레이션(loop operation) 주기에서의 게시 빈도, TPCt -2는 t-2의 루프 오퍼레이션(loop operation) 주기에서의 게시 빈도일 수 있다.
한편, 본 발명의 실시예에서는 최근 루프 오퍼레이션 주기에서의 게시 빈도와 최근 이전 루프 오퍼레이션 주기에서의 게시 빈도의 차이를 이용하여 루프 오퍼레이션의 주기 조정 여부를 판단하는 것으로 설명하였으나, 일정 시간동안의 게시 빈도 총합을 이용하여 루프 오퍼레이션 주기 조정 여부를 판단할 수도 있다. 예컨대, 기 설정된 일정 시간동안의 게시 빈도의 총합이 기 설정된 제1 값 이상이거나 제2 값 이하인 경우 루프 오퍼레이션의 주기 조정이 필요하다고 판단할 수도 있다. 이 방법 외에 브로커는 토픽에 대한 게시 빈도에 기초한 다양한 방법을 이용하여 루프 오퍼레이션의 주기 조정 필요 여부를 판단할 수 있다.
단계 S450의 판단결과, 루프 오퍼레이션의 주기 조정이 필요하면, 브로커는 루프 오퍼레이션의 주기를 조정하도록 하는 루프 오퍼레이션 주기 조정 메시지를 구독 노드로 전송한다(S460). 이때, 루프 오퍼레이션 주기 조정 메시지는 토픽, 최근 루프 오퍼레이션 주기에서의 게시 빈도, 최근 이전 루프 오퍼레이션 주기에서의 게시 빈도, 두 게시 빈도의 차이 등을 포함할 수 있다. 또한, 루프 오퍼레이션 주기 조정 메시지는 루프 오퍼레이션 주기의 증가율 또는 감소율 등을 포함할 수도 있다.
단계 S460이 수행되면, 구독 노드는 토픽에 대한 게시 빈도에 기초하여 루프 오퍼레이션의 주기를 조정한다(S470). 이때, 구독 노드는 최근 루프 오퍼레이션 주기에서의 게시 빈도와 최근 이전 루프 오퍼레이션 주기에서의 게시 빈도의 차이에 기초한 값이 제1 임계값 이상인 경우 기 설정된 기준에 기초하여 루프 오퍼레이션 주기를 감소시키고, 상기 차이에 기초한 값이 제2 임계값 이하인 경우 기 설정된 기준에 기초하여 루프 오퍼레이션 주기를 증가시킬 수 있다. 여기서, 제1 임계값은 단계 S450에서 루프 오퍼레이션 주기 조정 필요 여부 판단시 이용한 임계값의 양수 값으로, 양(+)의 임계값일 수 있다. 제2 임계값은 단계 S450에서 루프 오퍼레이션 주기 조정 필요 여부 판단시 이용한 임계값의 음수 값으로, 음(-)의 임계값일 수 있다.
즉, 구독 노드는 수학식 1에 기초하여 루프 오퍼레이션이 실행되는 시간(주기, 인터벌)을 증가 또는 감소시킨다. 예컨대, 수학식 1에서 ((TPCt -1 -TPCt -2)/TPCt -1)의 값이 a이상일 경우 해당 토픽에 대한 게시 메시지의 빈도가 증가하는 추세이기 때문에 루프 오퍼레이션을 더 자주 발생시키도록 루프 오퍼레이션의 주기(시간, 인터벌)를 더 짧게 조정한다. 또한, ((TPCt -1 -TPCt -2)/TPCt -1)의 값이 -a이하일 경우 해당 토픽에 대한 게시 메시지의 빈도가 감소하는 추세이기 때문에 루프 오퍼레이션을 더 적게 발생시키도록 루프 오퍼레이션의 주기(시간, 인터벌)를 더 길게 조정한다.
또한, 구독 노드는 루프 오퍼레이션 주기의 증가율 또는 감소율 등을 포함하는 루프 오퍼레이션 주기 조정 메시지가 수신된 경우, 현재의 주기에서 증가율 또는 감소율만큼 주기를 증가 또는 감소시킬 수도 있다.
단계 S470의 수행으로, 루프 오퍼레이션의 주기가 증가되어 기 설정된 일정 주기 이상이 되면(S480), 구독 노드는 루프 오퍼레이션 실행을 종료하고, 이벤트 기반 오퍼레이션을 실행한다(S490). 즉, 루프 오퍼레이션의 주기가 임계 주기 이상으로 증가하는 경우, 구독 노드는 루프 오프레이션을 통한 브로커와의 연결을 해제하고, 이벤트 기반 오퍼레이션을 위한 connect 명령을 브로커에 전송하여 연결을 설정하며, 구독 노드 식별정보 및 구독 토픽이 포함된 구독 등록 요청 메시지를 브로커로 전송한다. 그러면, 브로커는 구독 노드 식별정보 및 구독 토픽을 토픽 레지스트리에 등록한 후, disconnect 명령으로 구독 노드와의 연결을 해제한다. 그 후, 브로커는 게시 노드로부터 게시 메시지가 수신되면, 수신한 게시 메시지의 토픽을 토픽 레지스트리의 토픽들과 비교하고, 토픽 레지스트리에 동일한 토픽이 등록되어 있으면 해당 토픽을 구독하는 구독 노드들과 connect 명령을 통해 연결을 설정하여 해당 게시 메시지를 전송한 후 연결을 해제한다. 이때, 브로커는 게시 메시지를 저장한다. 또한, 브로커는 게시 메시지의 토픽과 동일한 토픽이 토픽 레지스트리에 등록되어 있지 않으면 그 게시 메시지를 등록만 한다.
한편, 브로커는 이벤트 기반 오퍼레이션이 실행되는 동안에도 토픽에 대한 게시 메시지의 게시 빈도를 카운트하고, 카운트된 게시 빈도가 기 설정된 일정 값 이상인 경우 루프 오퍼레이션 실행 가능 메시지를 구독 노드로 전송하여, 구독 노드가 루프 오퍼레이션을 다시 실행할 수 있도록 할 수 있다.
구독 노드가 루프 오퍼레이션을 실행하고, 토픽 게시 빈도에 따라 루프 오퍼레이션의 주기를 조정하는 예시가 도 5에 도시되어 있고, 루프 노드가 이벤트 기반 오퍼레이션을 실행하는 예시가 도 6에 도시되어 있다.
먼저 루프 오퍼레이션에 대해 도 5를 참조하면, 구독 노드는 수신하고자 하는 토픽인 'ABC'를 가지고 브로커에 Subscribe하고, A영역에 도시된 바와 같이 t주기의 루프 오퍼레이션을 지속적으로 실행하여 브로커와의 커넥션(Connection)을 유지한다. 브로커는 여러 게시 노드가 송신하는 게시 메시지를 게시 메시지에 적힌 토픽 이름을 기준으로 저장한다. 구독 노드는 루프 오퍼레이션을 통해 브로커에 저장된 게시 메시지의 토픽 이름을 검색하게 되고, 자신이 수신하고자 하는 토픽 이름 'ABC'와 동일한 토픽 이름을 가진 게시 메시지가 확인되면 이 게시 메시지를 브로커에 요청하고, 브로커는 구독 노드에게 검색된 게시 메시지(제1 Publish)를 전송하게 된다. 즉, 구독 노드는 t주기의 제1 루프 오퍼레이션(A-1)을 실행하여 브로커로부터 해당 토픽에 대한 제1 게시 메시지(제1 Publish)를 수신하고, t주기의 제2 루프 오퍼레이션(A-2)을 실행하여 브로커로부터 해당 토픽에 대한 제2 게시 메시지(제2 Publish)를 수신한다.
또한, 브로커가 토픽에 대한 게시 빈도에 기초하여 루프 오퍼레이션의 주기 조정이 필요하다고 판단한 경우, 브로커는 B와 같이 루프 오퍼레이션 주기 조정 메시지를 구독 노드로 전송한다.
그러면, 구독 노드는 C와 같이 t의 주기를 t-1의 주기로 감소시킨 제3 루프 오퍼레이션을 실행한다.
다음으로, 구독 노드와 브로커 사이에 이벤트 기반 오퍼레이션이 수행된 경우에 대해 도 6을 참조하기로 한다. 도 6을 참조하면, 구독노드는 connect 명령을 통해 브로커와의 연결을 설정하여, 수신하고자 하는 토픽인 'ABC'를 포함하는 구독 등록 요청 메시지(Subscribe)를 브로커로 전송한다. 그러면, 브로커는 토픽 레지스트리에 구독 노드가 subscribe 하려는 토픽인 'ABC'를 저장한다. 브로커는 토픽을 저장한 후 disconnect 명령으로 구독 노드와의 연결을 해제한다.
그 후, 브로커는 게시 노드로부터 'XYZ' 토픽 이름을 가진 게시 메시지가 수신되면, 'XYZ' 토픽이 토픽 레지스트리에 등록되어 있는지 판단하고, 'XYZ' 토픽이 등록되어 있지 않으므로 그 게시 메시지를 등록만 한다. 또한, 브로커는 게시 노드로부터 'ABC' 토픽 이름을 가진 게시 메시지가 수신되면, 'ABC' 토픽이 토픽 레지스트리에 등록되어 있으므로, 그 게시 메시지를 등록함은 물론 'ABC' 토픽을 등록한 구독노드와 connect 명령을 통해 연결을 설정하여 'ABC' 토픽에 대한 게시 메시지는 전송한 후 연결을 해제한다.
전술한 바와 같이, 구독 노드는 루프 오퍼레이션의 주기를 해당 토픽에 대해 publish된 메시지의 수에 기초하여 유동적으로 변경할 수 있다. 즉, 토픽에 대하여 Publish 된 메시지 수를 확인하여 루프 오퍼레이션 내의 t-1의 루프와 t의 루프 사이의 시간을 확인하는 timeout 시간을 조정할 수 있다. 이를 통해 불필요한 루프 횟수를 줄일 수 있다.
또한, 루프 오퍼레이이션의 주기가 기 설정된 일정 값 이상으로 증가되면, 루프 오퍼레이션 실행을 중단하고 이벤트 기반의 연결 오퍼레이션을 진행함으로써, 부하를 줄일 수 있다. 루프 오퍼레이션은 loop를 실행할 수 있는지를 확인하는 과정과 메시지를 read 및 write하는 과정을 포함한다. 루프 오퍼레이션 중 read 및 write 과정은 예컨대, 최대 1초에 1번 실행이 가능하게 설정될 수 있다. 따라서, 루프 오퍼레이션을 실행하지 않으면 read 및 write 과정이 제거되므로, 부하를 감소시킬 수 있다.
예를 들어, 트래픽 전송을 위한 이벤트가 발생하는 빈도가 단위 기간당(예컨대, 1초 기준) b회라고 하면 아래 수학식 2와 같은 정도의 부하 감소가 가능하다.
Figure 112017115193620-pat00002
이를 통해 여러 클라이언트가 포함된 네트워크 환경 속에서 효과적인 클라이언트-서버의 연결로 클라이언트와 브로커의 불필요한 자원 소모를 감소시킬 수 있다.
도 7은 본 발명의 일 실시예에 따른 브로커가 루프 오퍼레이션의 주기를 조정하는 방법을 나타낸 순서도이다.
도 7을 참조하면, 브로커는 게시 노드로부터 토픽이 포함된 게시 메시지가 수신되면(S710), 토픽이 토픽 레지스트리에 존재하는지를 판단한다(S720).
단계 S720의 판단결과 게시 메시지에 포함된 토픽이 토픽 레지스트리에 존재하면, 브로커는 게시 메시지를 저장함은 물론, 토픽의 게시 빈도를 갱신한다(S730). 이때, 브로커는 토픽의 게시 빈도를 증가(예컨대, '1' 증가)시켜 토픽 테이블에 저장한다.
단계 S730의 수행 후, 브로커는 상기 토픽에 대해서, 최근 루프 오퍼레이션 주기에서의 게시 빈도와 최근 이전 루프 오퍼레이션 주기에서의 게시 빈도의 차이에 기초한 절대값이 기 설정된 임계값을 초과하는지를 판단한다(S740).
단계 S740의 판단결과 절대값이 임계값을 초과하면, 브로커는 루프 오퍼레이션의 주기 조정이 필요하다고 판단하여 루프 오퍼레이션 주기 조정 메시지를 상기 토픽을 구독하는 구독 노드로 전송한다(S750). 이때, 루프 오퍼레이션 주기 조정 메시지는 토픽, 최근 루프 오퍼레이션 주기에서의 게시 빈도, 최근 이전 루프 오퍼레이션 주기에서의 게시 빈도, 두 게시 빈도의 차이 등을 포함할 수 있다. 또한, 루프 오퍼레이션 주기 조정 메시지는 루프 오퍼레이션 주기의 증가율 또는 감소율 등을 포함할 수도 있다.
도 8은 본 발명의 일 실시예에 따른 구독 노드가 루프 오퍼레이션의 주기를 조정하는 방법을 나타낸 순서도이다.
도 8을 참조하면, 구독 노드는 일정 주기로 루프 오퍼레이션을 실행하는 동안(S810), 브로커로부터 루프 오퍼레이션 주기 조정 메시지가 수신되면(S820), 그 메시지에 포함된 최근 루프 오퍼레이션 주기에서의 게시 빈도와 최근 이전 루프 오퍼레이션 주기에서의 게시 빈도의 차이에 기초한 값이 기 설정된 양(+)의 임계값 이상인지를 판단한다(S830).
단계 S830의 판단결과 상기 차이에 기초한 값이 양의 임계값 이상이면, 구독 노드는 루프 오퍼레이션 주기를 감소시킨다(S840). 즉, 구독 노드는 게시 빈도의 차이에 기초한 값이 양의 임계값 이상이면, 해당 토픽에 대한 게시 메시지의 빈도가 증가하는 추세이기 때문에 루프 오퍼레이션을 더 자주 발생시키도록 루프 오퍼레이션의 주기(시간, 인터벌)를 더 짧게 조정한다.
만약, 단계 S830의 판단결과, 상기 차이에 기초한 값이 양의 임계값 이상이 아니고, 음(-)의 임계값 이하이면, 구독 노드는 루프 오퍼레이션 주기를 증가시킨다(S850). 즉, 구독 노드는 게시 빈도의 차이에 기초한 값이 음의 임계값 이하이면, 해당 토픽에 대한 게시 메시지의 빈도가 감소하는 추세이기 때문에 루프 오퍼레이션을 더 적게 발생시키도록 루프 오퍼레이션의 주기(시간, 인터벌)를 더 길게 조정한다.
단계 S850의 수행으로, 루프 오퍼레이션의 주기가 증가되어 그 주기가 기 설정된 일정 주기 이상이면(S860), 구독 노드는 루프 오퍼레이션 실행을 종료하고, 이벤트 기반 오퍼레이션을 실행한다(S870).
이벤트 기반 오퍼레이션을 실행하고 있는 구독 노드는 브로커로부터 루프 오퍼레이션 실행 가능 메시지가 수신되면(S880), 이벤트 기반 오퍼레이션 실행을 종료하고 루프 오퍼레이션을 실행한다(S890). 즉, 브로커는 이벤트 기반 오퍼레이션이 실행되는 동안에도 토픽에 대한 게시 메시지의 게시 빈도를 카운트하고, 카운트된 게시 빈도가 기 설정된 일정 값 이상인 경우 루프 오퍼레이션 실행 가능 메시지를 구독 노드로 전송한다. 그러면, 구독 노드는 이벤트 기반 오퍼레이션 실행을 종료하고 루프 오퍼레이션을 실행한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
100 : 게시노드
200 : 브로커
300 : 구독노드

Claims (7)

  1. 구독 노드(Subscriber)는, 토픽이 포함된 구독 메시지(Subscribe)를 브로커로 전송하고, 일정 주기(interval)의 루프 오퍼레이션(loop operation)을 지속적으로 실행하여 상기 브로커와의 연결(connection)을 유지하는 단계;
    상기 브로커는, 게시 노드(Publisher)로부터 토픽이 포함된 게시 메시지(Publish) 수신 시, 상기 토픽에 대한 게시 메시지의 게시 빈도에 기초하여 상기 루프 오퍼레이션의 주기 조정 필요 여부를 판단하고, 필요 시 루프 오퍼레이션 주기 조정 메시지를 상기 구독 노드로 전송하는 단계; 및
    상기 구독 노드는 상기 토픽에 대한 게시 빈도에 기초하여 루프 오퍼레이션의 주기를 동적으로 조정하는 단계를 포함하는,
    게시-구독 메시지 서비스 방법.
  2. 제1항에 있어서,
    상기 루프 오퍼레이션은,
    상기 브로커에 등록된 게시 메시지의 토픽을 검색하여 구독 토픽과 매칭되는 토픽 검색 시, 해당 게시 메시지의 구독을 요청하여 수신하는 동작으로, 일정 주기로 지속적으로 실행되어 상기 브로커와의 연결을 유지하는 것을 특징으로 하는 게시-구독 메시지 서비스 방법.
  3. 제1항에 있어서,
    상기 구독 노드로 전송하는 단계는,
    상기 토픽에 대한 게시 메시지의 게시 빈도를 갱신하는 단계;
    상기 토픽에 대해서, 최근 루프 오퍼레이션 주기에서의 게시 빈도와 최근 이전 루프 오퍼레이션 주기에서의 게시 빈도의 차이를 산출하는 단계;
    상기 산출된 차이에 기초한 절대값이 기 설정된 임계값을 초과하는 경우, 상기 루프 오퍼레이션의 주기 조정이 필요하다고 판단하여 루프 오퍼레이션 주기 조정 메시지를 상기 구독 노드로 전송하는 단계를 포함하는 것을 특징으로 하는 게시-구독 메시지 서비스 방법.
  4. 제3항에 있어서,
    상기 루프 오퍼레이션의 주기를 조정하는 단계는,
    상기 차이에 기초한 값이 제1 임계값 이상인 경우 기 설정된 기준에 기초하여 루프 오퍼레이션의 주기를 감소시키고, 상기 차이에 기초한 값이 제2 임계값 이하인 경우 기 설정된 기준에 기초하여 루프 오퍼레이션의 주기를 증가시키는 것을 특징으로 하는 게시-구독 메시지 서비스 방법.
  5. 제4항에 있어서,
    상기 구독 노드는, 상기 루프 오퍼레이션의 주기가 기 설정된 일정 값 이상으로 증가된 경우, 루프 오퍼레이션 실행을 종료하고, 이벤트 기반 오퍼레이션을 실행하는 단계를 더 포함하되,
    상기 이벤트 기반 오퍼레이션은, 구독 토픽 등록 및 구독 토픽에 대응되는 게시 메시지 수신 시에 상기 브로커와 연결을 설정하는 것을 특징으로 하는 게시-구독 메시지 서비스 방법.
  6. 제5항에 있어서,
    상기 이벤트 기반 오퍼레이션을 실행하는 단계는,
    상기 구독 노드는 커넥션 명령을 통해 상기 브로커와 연결을 설정하여, 구독 노드 식별정보 및 구독 토픽이 포함된 구독 등록 요청 메시지를 상기 브로커로 전송하는 단계;
    상기 브로커는 상기 구독 노드 식별정보 및 구독 토픽을 토픽 레지스트리에 등록한 후, 상기 구독 노드와의 연결을 해제하는 단계;
    상기 브로커는 게시 노드로부터 게시 메시지를 수신하고, 상기 수신된 게시 메시지의 토픽이 상기 토픽 레지스트리에 등록된 경우, 상기 토픽을 등록한 구독 노드와 연결을 설정하여 상기 게시 메시지를 전송하고, 상기 연결을 해제하는 단계를 포함하는 것을 특징으로 하는 게시-구독 메시지 서비스 방법.
  7. 제6항에 있어서,
    상기 게시 메시지를 전송하고, 상기 연결을 해제하는 단계 이후,
    상기 브로커는 상기 토픽에 대한 게시 메시지의 게시 빈도를 카운트하고, 상기 카운트된 게시 빈도가 기 설정된 일정 값 이상인 경우 루프 오퍼레이션 실행 가능 메시지를 상기 구독 노드로 전송하는 단계를 더 포함하는 게시-구독 메시지 서비스 방법.
KR1020170154741A 2017-11-20 2017-11-20 게시-구독 메시지 서비스 방법 KR102022602B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170154741A KR102022602B1 (ko) 2017-11-20 2017-11-20 게시-구독 메시지 서비스 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170154741A KR102022602B1 (ko) 2017-11-20 2017-11-20 게시-구독 메시지 서비스 방법

Publications (2)

Publication Number Publication Date
KR20190057604A KR20190057604A (ko) 2019-05-29
KR102022602B1 true KR102022602B1 (ko) 2019-11-04

Family

ID=66672827

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170154741A KR102022602B1 (ko) 2017-11-20 2017-11-20 게시-구독 메시지 서비스 방법

Country Status (1)

Country Link
KR (1) KR102022602B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102200590B1 (ko) * 2019-10-15 2021-01-08 에이치투오시스템테크놀로지(주) 엠큐티티 프로토콜 기반 긴급 메시지 처리 장치 및 방법
KR102298679B1 (ko) * 2020-06-19 2021-09-06 한성대학교 산학협력단 메시지 수신 빈도 제어 방법 및 장치
KR20230019582A (ko) * 2021-08-02 2023-02-09 한화테크윈 주식회사 IoT 기반의 네트워크 카메라 및 모니터링 장치
CN115150380A (zh) * 2022-06-30 2022-10-04 广发证券股份有限公司 一种适用于多路行情源的行情订阅及发布方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101609532B1 (ko) 2014-11-19 2016-04-20 경북대학교 산학협력단 확장형 게시-구독 메시징 서비스 방법 및 시스템
US20170244657A1 (en) 2016-02-22 2017-08-24 International Business Machines Corporation Message delivery in a message system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10110631B2 (en) * 2009-02-12 2018-10-23 International Business Machines Corporation Introducing encryption, authentication, and authorization into a publication and subscription engine
KR20150067037A (ko) * 2013-12-06 2015-06-17 주식회사 케이티 M2m 시스템에서 구독의 기준정보 최적화 방법 및 장치
US10313858B2 (en) * 2014-07-21 2019-06-04 Convida Wireless, Llc Service layer interworking using MQTT protocol

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101609532B1 (ko) 2014-11-19 2016-04-20 경북대학교 산학협력단 확장형 게시-구독 메시징 서비스 방법 및 시스템
US20170244657A1 (en) 2016-02-22 2017-08-24 International Business Machines Corporation Message delivery in a message system

Also Published As

Publication number Publication date
KR20190057604A (ko) 2019-05-29

Similar Documents

Publication Publication Date Title
KR102022602B1 (ko) 게시-구독 메시지 서비스 방법
US7930214B2 (en) Management and arbitration of mobile service discovery
AU2009350895B2 (en) Cluster server in instant messaging system and method for communicating between clusters
EP2013763B1 (en) Managing rich presence collections
US9554239B2 (en) Opportunistic offloading of tasks between nearby computing devices
CN106453667B (zh) 更新缓存数据的方法及装置
US20070100831A1 (en) Managing rich presence collections
US9386115B2 (en) Selection of proxy device for connection pooling
US10657471B2 (en) Intelligent assignment of agents
US9282157B2 (en) Intermediary API for providing presence data to requesting clients
KR20120113976A (ko) 푸시 알림 서비스를 위한 서버 클러스터 및 방법
CN114338063B (zh) 消息队列系统、业务处理方法及计算机可读存储介质
US9907087B2 (en) Method for providing M2M data
CN105635083A (zh) 基于服务器和客户端架构的业务处理方法及业务处理系统
CN110888735A (zh) 基于一致性哈希的分布式消息分发方法、装置和调度节点
US9350606B2 (en) System and method for assigning server to terminal and efficiently delivering messages to the terminal
US11102293B2 (en) System and method for migrating an agent server to an agent client device
JP2007219637A (ja) 負荷分散システムおよびそのプログラム
US20130007130A1 (en) Method and system for subscribing presence information, resource list server, and presence server
CN110380967B (zh) 一种基于sse技术的服务器推送消息方法
Choi et al. Enhanced cluster-based CoAP in Internet-of-Things networks
JP3602512B2 (ja) 携帯インスタントメッセージサービスシステム及び携帯インスタントメッセージサービスプログラム
US9213735B1 (en) Flow control in very large query result sets using a release message to confirm that a client computer is ready to receive the data associated with a data collection operation
KR102367017B1 (ko) 통신 네트워크 시스템 및 그것의 제어방법
CN112398893B (zh) 一种机器人处理数据的方法及机器人

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right