KR101609532B1 - 확장형 게시-구독 메시징 서비스 방법 및 시스템 - Google Patents

확장형 게시-구독 메시징 서비스 방법 및 시스템 Download PDF

Info

Publication number
KR101609532B1
KR101609532B1 KR1020140161797A KR20140161797A KR101609532B1 KR 101609532 B1 KR101609532 B1 KR 101609532B1 KR 1020140161797 A KR1020140161797 A KR 1020140161797A KR 20140161797 A KR20140161797 A KR 20140161797A KR 101609532 B1 KR101609532 B1 KR 101609532B1
Authority
KR
South Korea
Prior art keywords
node
subscription
message
publication
response
Prior art date
Application number
KR1020140161797A
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 경북대학교 산학협력단
Priority to KR1020140161797A priority Critical patent/KR101609532B1/ko
Application granted granted Critical
Publication of KR101609532B1 publication Critical patent/KR101609532B1/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
    • 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/02User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
    • 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]

Landscapes

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

Abstract

본 발명은 확장형 게시-구독 메시징 서비스 시스템에 관한 발명이다. 본 발명에 일 실시예에 따른 확장형 게시-구독 메시징 서비스 시스템은, 토픽에 대한 게시 메시지를 전송하고 상기 게시 메시지에 대한 응답으로 응답 메시지를 수신하며 상기 응답 메시지에 대한 응답으로 대화 메시지를 전송하는 게시 노드, 상기 게시 메시지를 수신하고 상기 게시 메시지에 대한 응답으로 응답 메시지를 전송하며 상기 응답 메시지에 대한 응답으로 상기 대화 메시지를 수신하는 구독 노드 및 상기 게시 메시지를 수신하면 상기 구독 노드에 전송하고 상기 응답 메시지를 수신하면 상기 게시 노드에 전송하며, 상기 게시 노드로부터 상기 대화 메시지를 수신하면 상기 대화 메시지를 상기 구독 노드에 전송하는 브로커를 포함하되, 상기 게시 메시지는, 상기 게시 노드의 아이디, 상기 토픽 및 상기 토픽에 대한 서비스 요구 사항을 포함하며, 상기 응답 메시지는, 상기 구독 노드의 아이디, 상기 게시 노드의 아이디 및 상기 토픽에 대한 서비스 응답을 포함하며, 상기 대화 메시지는, 상기 구독 노드의 아이디 및 대화 내용을 포함한다.

Description

확장형 게시-구독 메시징 서비스 방법 및 시스템{EXPANDED PUBLISH-SUBSCRIBE MESSAGING SERVICE METHOD AND SYSTEM}
본 발명은 확장형 게시-구독 메시징 서비스 방법 및 시스템에 관한 것이다. 보다 자세하게는, 게시-구독 모델 기반의 메시징 서비스를 확장하여 게시자와 구독자 간에 직접 메시징 전달이 가능한 서비스 방법 및 그 시스템에 관한 것이다.
모든 사물을 인터넷에 연결하여 사람들뿐만 아니라 사람과 사물, 사물과 사물들 간에 인터넷 서비스를 제공하는 IoT(Internet of Things) 기술이 최근 활발히 연구 개발되고 있다.
IoT에서는 사물(Things)간 통신을 요구한다. IoT 메시징 서비스로 IBM에서 개발하고 현재 OASIS 표준인 MQTT(Messaging Queuing Telemetry Transport)가 있다. MQTT는 기본적으로 게시-구독 모델(Publish/Subscribe Model) 에 기반하여 사물간 메시징 서비스(Messaging Service)를 제공한다.
게시-구독 모델은 클라이언트-서버 모델과 달리 메시지 송신자와 수신자가 직접 연결되지 않기 때문에, 게시-구독 모델 기반의 메시징 서비스는 클라이언트-서버 모델에 비하여 유연한 메시징 서비스를 제공할 수 있다.
게시-구독 모델은 메시지 송신자인 게시자(Publisher)가 메시지 수신자인 구독자(Subscriber)의 아이디(ID) 정보를 가지고 있지 않는다. 대신에 게시자가 특정 토픽(topic)을 지정하여 브로커(Broker)에 메시지를 보내면 브로커가 특정 토픽에 가입한 구독자를 확인하여 메시지를 전달해 준다.
IoT가 스마트 홈 등의 가전에 응용되기 시작하면서 게시자와 구독자 간의 메시지 직접 통신에 대한 필요성이 제기되고 있다. 메시지 직접 통신이랑 게시자와 구독자가 상대방의 아이디를 기반으로 메시지를 주고 받는 것을 의미한다. 일반적인 게시-구독 모델은 게시자와 구독자가 상호 간의 아이디 정보를 가지고 있지 않기 때문에 단순 메시지 게시 및 구독만 할 수 있고 메시지 직접 통신을 제공할 수 없다.
따라서 게시-구독 모델 기반의 메시징 서비스에서 메시지 직접 통신을 제공할 수 있는 기술에 대한 필요성이 커지고 있다.
한국공개특허 제 2010-0126786 호
본 발명이 해결하고자 하는 기술적 과제는 게시-구독 모델을 확장하여 메시지 직접 통신을 지원하는 확장형 게시-구독 메시징 서비스 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는 게시-구독 모델을 확장하여 메시지 직접 통신을 지원하는 확장형 게시-구독 메시징 서비스 시스템을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해 될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 태양에 따른 확장형 게시-구독 메시징 서비스 방법은, 브로커가 게시 노드로부터 게시 노드 아이디, 게시 토픽 및 서비스 요구 사항이 포함된 게시 메시지를 수신하는 단계, 상기 브로커가 상기 게시 토픽를 구독하는 구독 노드에, 상기 게시 메시지를 전송하는 단계, 상기 브로커가 상기 구독 노드로부터 상기 게시 노드 아이디, 상기 구독 노드 아이디 및 상기 서비스 요구 사항에 대한 서비스 응답이 포함된 응답 메시지를 수신하는 단계, 상기 브로커가 상기 응답 메시지에 포함된 상기 게시 노드 아이디가 가리키는 노드에 상기 응답 메시지를 전송하는 단계, 상기 브로커가 상기 게시 노드로부터 상기 구독 노드 아이디가 포함된 대화 메시지를 수신하는 단계 및 상기 브로커가 상기 대화 메시지에 포함된 상기 구독 노드 아이디가 가리키는 노드에 상기 대화 메시지를 전송하는 단계를 포함할 수도 있다.
일 실시예에 따르면, 상기 확장형 게시-구독 메시징 서비스 방법은, 상기 브로커가 상기 게시 메시지를 수신하는 단계 이전에, 상기 브로커가 상기 게시 노드로부터 상기 게시 노드 아이디 및 상기 게시 토픽이 포함된 게시 등록 요청 메시지를 수신하는 단계, 상기 브로커가 상기 구독 노드로부터 상기 구독 노드 아이디 및 상기 구독 토픽이 포함된 구독 등록 요청 메시지를 수신하는 단계 및 상기 브로커가 상기 구독 토픽과 일치하는 상기 게시 토픽의 구독 리스트에 상기 구독 노드 아이디를 추가하는 단계를 더 포함할 수도 있다.
일 실시예에 따르면, 상기 브로커가 상기 게시 메시지를 전송하는 단계는, 상기 게시 노드로부터 수신된 게시 메시지에 포함 된 게시 토픽의 모든 구독 노드에, 상기 게시 메시지를 전송하는 단계를 포함할 수도 있다.
일 실시예에 따르면, 상기 서비스 요구 사항은, 서비스 요구 항목을 가리키는 하나 이상의 속성을 포함하며, 상기 서비스 응답은, 상기 서비스 요구 사항의 각 속성에 대한 상기 구독 노드의 응답을 포함할 수도 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 다른 태양에 따른 확장형 게시-구독 메시징 서비스 방법은, 게시 노드가 브로커에 게시 노드 아이디, 게시 토픽 및 서비스 요구 사항이 포함된 게시 메시지를 전송하는 단계, 상기 게시 노드가 상기 브로커로부터 제1 구독 노드의 제1 구독 노드 아이디 및 제1 서비스 응답이 포함된 제1 응답 메시지를 수신하는 단계, 상기 게시 노드가 상기 브로커로부터 제2 구독 노드의 제2 구독 노드 아이디 및 제2 서비스 응답이 포함된 제2 응답 메시지를 수신하는 단계, 상기 게시 노드가 상기 제1 서비스 응답 및 상기 제2 서비스 응답을 바탕으로 상기 제1 구독 노드 아이디 및 제2 구독 노드 아이디 중에서 어느 하나를 선정하는 단계 및 상기 게시 노드가 상기 선정된 아이디를 수신자로 지정하고, 상기 게시 노드의 아이디를 포함하는 제1 대화 메시지를 상기 브로커에게 전송하고, 상기 대화 메시지에 대한 응답으로 상기 게시 노드의 아이디를 수신자로 지정한 제2 대화 메시지를 상기 선정 된 아이디를 가지는 노드로부터 상기 브로커를 통하여 수신하는 단계를 포함할 수도 있다.
일 실시예에 따르면, 상기 확장형 게시-구독 메시징 서비스 방법은, 상기 게시 노드가 상기 게시 메시지를 전송하는 단계 이전에, 상기 게시 노드가 상기 브로커에게 상기 게시 노드 아이디 및 상기 게시 토픽이 포함된 게시 등록 요청 메시지를 전송하는 단계를 더 포함할 수도 있다.
일 실시예에 따르면, 상기 서비스 요구 사항은, 서비스 요구 항목을 가리키는 하나 이상의 속성을 포함하며, 상기 제1 서비스 응답 및 상기 제2 서비스 응답은, 상기 서비스 요구 사항의 상기 각 속성에 대한 응답을 포함하고, 상기 게시 노드가 상기 제1 구독 노드 아이디 및 제2 구독 노드 아이디 중에서 어느 하나를 선정하는 단계는, 상기 제1 서비스 응답에 포함된 상기 각 속성에 대한 응답과 사전에 정의된 상기 각 속성에 대한 중요도를 곱하여 산출된 값을 상기 각 속성에 대하여 모두 산출하여 덧셈한 제1 평가치를 산출하는 단계, 상기 제2 서비스 응답에 포함된 상기 각 속성에 대한 응답과 상기 각 중요도를 곱하여 산출된 값을 상기 각 속성에 대하여 모두 산출하여 덧셈한 제2 평가치를 산출하는 단계 및 상기 제1 평가치가 상기 제2 평가치 보다 높으면 상기 제1 구독 노드 아이디를 선정하고, 상기 제2 평가치가 상기 제1 평가치보다 높으면 상기 제2 구독 노드 아이디를 선정하며, 상기 제1 평가치와 상기 제2 평가치가 동일하면 상기 제1 구독 노드 아이디 및 상기 제2 구독 노드 아이디 모두를 선정하는 단계를 포함할 수도 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 또 다른 태양에 따른 확장형 게시-구독 메시징 서비스 방법은, 구독 노드가 브로커로부터 게시 노드 아이디, 게시 토픽 및 서비스 요구 사항이 포함된 게시 메시지를 수신하는 단계, 상기 구독 노드가 상기 서비스 요구 사항에 대한 응답을 포함하는 서비스 응답을 생성하는 단계, 상기 구독 노드가 상기 게시 노드 아이디, 상기 구독 노드 아이디 및 상기 서비스 응답이 포함된 응답 메시지를 상기 브로커에게 전송하는 단계, 상기 게시 노드 아이디가 가리키는 게시 노드에 의하여 상기 구독 노드가 대화 상태로 선택 된 결과로 생성된 대화 메시지를 상기 게시 노드로부터 상기 브로커를 통하여 수신하는 단계를 포함할 수도 있다.
일 실시예에 따르면, 상기 확장형 게시-구독 메시징 서비스 방법은, 상기 구독 노드가 상기 브로커로부터 상기 게시 메시지를 수신하는 단계 이전에, 상기 구독 노드가 상기 브로커에게 상기 구독 노드 아이디 및 상기 구독 토픽이 포함된 구독 등록 요청 메시지를 전송하는 단계를 더 포함할 수도 있다.
일 실시예에 따르면, 상기 서비스 요구 사항은, 서비스 요구 항목을 가리키는 하나 이상의 속성을 포함하며, 상기 서비스 응답을 생성하는 단계는, 상기 서비스 요구 사항의 상기 각 속성에 대한 응답을 생성하는 단계, 및 상기 각 속성에 대하여 생성된 응답을 모두 포함하는 서비스 응답을 생성하는 단계를 포함할 수도 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 또 다른 태양에 따른 확장형 게시-구독 메시징 서비스 시스템은, 토픽에 대한 게시 메시지를 전송하고 상기 게시 메시지에 대한 응답으로 응답 메시지를 수신하며 상기 응답 메시지에 대한 응답으로 대화 메시지를 전송하는 게시 노드, 상기 게시 메시지를 수신하고 상기 게시 메시지에 대한 응답으로 응답 메시지를 전송하며 상기 응답 메시지에 대한 응답으로 상기 대화 메시지를 수신하는 구독 노드 및 상기 게시 메시지를 수신하면 상기 구독 노드에 전송하고 상기 응답 메시지를 수신하면 상기 게시 노드에 전송하며, 상기 게시 노드로부터 상기 대화 메시지를 수신하면 상기 대화 메시지를 상기 구독 노드에 전송하는 브로커를 포함하되, 상기 게시 메시지는, 상기 게시 노드의 아이디, 상기 토픽 및 상기 토픽에 대한 서비스 요구 사항을 포함하며, 상기 응답 메시지는, 상기 구독 노드의 아이디, 상기 게시 노드의 아이디 및 상기 토픽에 대한 서비스 응답을 포함하며, 상기 대화 메시지는, 상기 구독 노드의 아이디 및 대화 내용을 포함할 수도 있다.
일 실시예에 따르면, 상기 게시 노드는, 상기 게시 메시지 전송 전에 상기 브로커에 상기 게시 노드 아이디 및 상기 토픽을 포함하는 게시 등록 요청 메시지를 전송하고, 상기 구독 노드는, 상기 게시 메시지 수신 전에 상기 브로커에 상기 구독 노드 아이디 및 상기 토픽을 포함하는 구독 등록 요청 메시지를 전송하며, 상기 브로커는, 상기 토픽, 상기 게시 노드 아이디 및 상기 구독 노드 아이디를 포함하는 중계 정보를 저장하는 관리 DB(Database)를 포함하고, 상기 게시 등록 요청 메시지를 수신하면 상기 토픽에 대한 중계 정보에 상기 게시 노드 아이디를 추가하여 상기 중계 정보를 상기 관리 DB에 저장하며, 상기 구독 등록 요청 메시지를 수신하면 상기 토픽에 대한 중계 정보에 상기 구독 노드 아이디를 추가하여 상기 중계 정보를 상기 관리 DB에 저장하고, 상기 게시 메시지를 수신하면 상기 게시 메시지에 포함된 상기 토픽에 대한 상기 구독 노드 아이디를 상기 관리 DB에서 조회하여 상기 조회된 구독 노드 아이디에 대응되는 상기 구독 노드에 상기 게시 메시지를 전송할 수도 있다.
일 실시예에 따르면, 상기 브로커는, 상기 응답 메시지를 수신하면 상기 응답 메시지에 포함된 상기 게시 노드 아이디에 대응되는 게시 노드에 상기 응답 메시지를 전송하고, 상기 대화 메시지를 수신하면 상기 대화 메시지에 포함된 수신 대상 노드에 대응되는 노드에 상기 대화 메시지를 전송할 수도 있다.
상기와 같은 본 발명에 따르면, 게시-구독 모델을 바탕으로 게시 노드와 구독 노드는 메시지에 수신하는 노드의 아이디를 포함시켜, 게시 노드와 구독 간에 메시지 직접 통신을 할 수 있는 효과가 있다.
또한, 상기와 갈은 본 발명에 따르면, 게시 노드는 게시 메시지에 응답한 하나 이상의 구독 노드 중에서 소정의 기준에 따라 하나 이상의 구독 노드를 선정하여 단일 대화 또는 그룹 대화를 할 수 있는 효과가 있다.
도 1은 종래의 게시-구독 모델에 기반한 메시징 서비스의 구성도이다.
도 2는 종래의 게시-구독 모델의 브로커가 관리하는 관리 DB의 테이블을 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른, 확장형 게시-구독 메시지 서비스 시스템의 구성도이다.
도 4는 본 발명의 몇몇 실시예에서 참조 되는, 확장형 게시-구독 메시지 서비스 시스템의 브로커가 관리하는 관리 DB의 게시-구독 테이블을 나타낸 도면이다.
도 5는 본 발명의 일 실시예에 따른, 게시 노드 및 구독 노드의 하드웨어 구성도이다.
도 6은 본 발명의 몇몇 실시예에서 게시 노드, 브로커 및 구독 노드 사이에 전송되는 메시지의 형식을 나타낸 도면이다.
도 7은 본 발명의 몇몇 실시예에서, 게시 메시지에 포함된 서비스 요구 사항의 구성과 응답 메시지에 포함된 서비스 응답 및 상기 서비스 응답을 평가하여 평가치를 산출하는 수식을 나타낸 도면이다.
도 8은 본 발명의 일 실시예에 따른 확장형 게시-구독 메시지 서비스 방법에 따른 각 노드 간의 메시지 흐름을 나타내는 신호 흐름도이다.
도 9은 본 발명의 일 실시예에 따른 확장형 게시-구독 메시지 서비스 방법 중, 브로커의 동작을 나타낸 순서도이다.
도 10는 본 발명의 일 실시예에 따른 확장형 게시-구독 메시지 서비스 방법 중, 구독 노드의 동작을 나타낸 순서도이다.
도 11은 본 발명의 일 실시예에 따른 확장형 게시-구독 메시지 서비스 방법 중, 게시 노드의 동작을 나타낸 순서도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
도 1은, 종래의 게시-구독 모델에 기반한 메시징 서비스의 구성도(100)이며, 도 2는 브로커가 관리하는 관리 DB의 테이블(200)의 일 실시예이다.
도 1 내지 도 2를 참조하여, 종래의 게시-구독 모델에 기반한 메시징 서비스 방법을 자세하게 설명한다.
종래의 게시-구독 모델(100)은 게시 노드 A(110), 브로커(120), 구독 노드B(130), 구독 노드 D(140) 및 관리 DB(125)를 포함할 수 있다.
게시 노드 A(110)은 브로커(120)에 게시하고자 하는 토픽과 상기 토픽의 내용을 포함한 게시 메시지를 전송할 수 있다.
브로커(120)는 상기 게시 노드 A(110)가 전송한 상기 게시 메시지를 수신할 수 있다. 브로커(120)는 관리 DB(125)에서 상기 게시 메시지에 포함된 상기 토픽에 관한 구독 노드 아이디를 수집한다. 브로커(120)은 상기 수집된 구독 노드 아이디에 대응되는 구독 노드에 상기 수신된 게시 메시지를 전송한다.
관리 DB(125)는, 도 2를 참조하면, 토픽에 대한 구독 노드의 아이디를 테이블 형식으로 저장할 수 있다.
예를 들어, 게시 노드 A(110)가 ‘온도’라는 토픽을 포함하는 게시 메시지를 브로커(120)에게 전송하고, 관리 DB(125)에 ‘온도’라는 토픽의 구독 노드 아이디로 B 및 C가 저장되어 있으면(도 2의 첫번째 행을 참조), 브로커(120)는 게시 노드 A(110)로부터 수신된 상기 게시 메시지를 구독 노드 B(130) 및 구독 노드 C(140)에 전송한다.
종래의 게시-구독 모델에서는, 상기 게시 메시지에 게시 노드의 아이디 정보를 포함하지 않기 때문에 상기 게시 메시지를 수신한 구독 노드는 상기 게시 노드에 응답 메시지를 전송할 수 없다. 따라서, 게시 노드는 일방적으로 토픽에 대한 정보를 게시만할 수 있으며, 구독 노드는 토픽에 대한 정보를 구독만할 수 있으며, 구독 노드와 게시 노드 간의 직접 메시지를 교환할 수 없다.
도 3은 본 발명의 일 실시예에 따른 확장형 게시-구독 메시지 서비스 시스템(300)의 구성도이다. 도 4는 본 발명의 일 실시예에 따른 관리 DB(325)의 게시-구독 테이블(400)이다.
도 3 및 도 4를 참조하여, 본 발명의 일 실시예에 따른 확장형 게시-구독 메시지 서비스 시스템(300)의 구성에 대해서 자세하게 설명한다.
본 발명의 일 실시예에 따른 확장형 게시-구독 메시지 서비스 시스템(300)은 게시 노드 A(310), 브로커(320), 관리 DB(325), 구독 노드 B(330) 및 구독 노드 C(340)를 포함할 수 있다.
이하, 본 발명의 일 실시예에 따른 확장형 게시-구독 메시지 서비스 시스템(300)에서 사용하는 용어에 대해서 정의하면 다음과 같다.
토픽은 게시-구독 모델에서 게시 노드와 구독 노드를 연결하는 키(key)이다. 상기 게시 노드는 특정한 토픽에 대하여 게시자로 등록하고, 상기 구독 노드는 상기 특정 토픽에 대하여 구독자로 등록한다. 상기 게시 노드 특정한 토픽에 대하여 메시지를 게시하면, 상기 특정 토픽에 대하여 구독하는 구독 노드에 상기 메시지가 전달된다.
게시 노드는, 상기 토픽에 대한 메시지를 게시하는 노드이다. 이를 위해서, 상기 게시 노드는 브로커에 상기 토픽에 대한 게시자로 등록 한다. 상기 등록 이후 상기 게시 노드가 상기 토픽에 대한 메시지를 상기 브로커에 전송하면, 상기 브로커는 상기 토픽에 대하여 구독자로 등록된 구독 노드에 상기 메시지를 전송한다.
구독 노드는, 상기 토픽에 대한 메시지를 수신하는 노드이다. 이를 위해서, 상기 구독 노드는 브로커에 상기 토픽에 대한 구독자로 등록 한다. 상기 브로커가 상기 토픽에 대한 메시지를 수신하면, 상기 토픽에 대하여 구독자로 등록된 상기 구독 노드에 상기 메시지가 전송된다.
브로커는, 토픽별로 게시 노드와 구독 노드의 목록을 관리하고 상기 게시 노드와 구독 노드 간의 메시지 전송을 중계한다. 상기 브로커는 상기 토픽에 대하여 게시자로 게시 노드를 등록하고, 구독자로 구독 노드를 등록한다. 상기 토픽에 대한 게시자는 하나 이상의 게시 노드를 포함할 수 있고, 구독자는 하나 이상의 구독 노드를 포함할 수 있다. 상기 브로커는 상기 토픽에 대한 게시 노드의 메시지를 수신하면, 상기 토픽에 대한 구독자로 등록된 구독 노드에 상기 메시지를 전송한다.
본 발명의 몇몇 실시예에 따르면, 상기 게시 노드 및 상기 구독 노드는 IoT(Internet of Things) 환경의 사물(thing)에 해당할 수 있다. 상기 사물(thing)간의 메시지 전송에 본 발명의 일 실시예에 따른 확장형 게시-구독 메시지 서비스 방법이 사용될 수 있다.
예를 들어서, 상기 토픽이 “우유 배송”이면, 상기 토픽에 대한 상기 게시 노드는 냉장고 일 수 있고, 상기 구독 노드는 우유 배송업자의 스마트폰일 수 있다. 상기 브로커는 고정된 IP(Internet Protocol) 주소를 가진 서버일 수 있다. 상기 냉장고는 상기 서버에 “우유 배송”이라는 토픽에 대한 게시 노드로 등록하고, 상기 스마트폰은 상기 서버에 “우유 배송”이라는 토픽에 대한 구독 노드로 등록한다. 상기 냉장고에 우유가 필요하다고 판단되면, 상기 냉장고는 상기 서버로 “우유 배송”에 관한 “우우 배송 입찰(가격, 배송 시간, 저지방 여부)”메시지를 전송할 수 있다. 상기 서버는 상기 메시지를 수신하여, 상기 “우유 배송”에 구독 노드로 등록된 상기 스마트폰에 상기 메시지를 전송한다. 상기 스마트폰은 상기 메시지에 대한 응답 메시지를 상기 서버에 전송하면, 상기 서버는 상기 응답 메시지를 상기 냉장고에 전송한다. 상기 냉장고는 상기 응답 메시지를 수신하여, 상기 응답 메시지에 포함된 서비스 응답을 바탕으로 상기 응답 메시지를 전송한 상기 스마트폰의 우유 배송업자를 배송자로 선정할 수 있다.
본 발명의 몇몇 실시예에 따른 확장형 게시-구독 메시지 서비스 시스템(300)에 포함된 상기 게시 노드는 토픽에 따라서 구독 노드로 동작할 수 도 있고, 상기 구독 노드는 토픽에 따라서 게시 노드로 동작할 수 있다. 상기 게시 노드와 상기 구독 노드는 동일한 서비스 노드 일 수 있으며, 상기 서비스 노드에는 본원 발명의 확장형 게시-구독 메시지 서비스 방법이 구현된 프로그램이 실행될 수 있다. 상기 프로그램의 동작에 따라 상기 서비스 노드는 게시 노드가 될 수도 있고 구독 노드가 될 수 있다. 즉, 게시 노드와 구독 노드는 상기 서비스 노드의 동작에 따른 구분일 수 있다.
예를 들어서, “A”라는 토픽에 대하여 게시 노드로 동작하는 서비스 노드가 “B”라는 토픽에 대해서는 구독 노드로 동작할 수 있다. 반대로 “A”라는 토픽에 대하여 구독 노드로 동작하는 서비스 노드가 “C”라는 토픽에 대해서는 게시 노드로 동작할 수 있다.
게시 노드 A(310)는 브로커(320)에게 특정 토픽에 대한 게시 노드로서 등록을 요청하는 게시 등록 요청 메시지를 전송한다. 구독 노드 B(330) 및 구독 노드 C(340)는 브로커(320)에게 상기 특정 토픽에 대한 구독 노드로서 등록을 요청하는 구독 등록 요청 메시지를 전송한다. 브로커(320)는 상기 게시 등록 요청 메시지를 수신하면, 상기 게시 등록 요청 메시지에 포함된 토픽과 게시 노드 아이디를 관리 DB(325)의 게시-구독 테이블(400)에 저장한다. 브로커(320)는 상기 구독 등록 요청 메시지를 수신하면, 상기 구독 등록 요청 메시지에 포함된 토픽과 구독 노드 아이디를 관리 DB(325)의 게시-구독 테이블(400)에 저장한다.
도 4를 참조하면, 게시-구독 테이블(400)은 ‘토픽’, ‘게시 노드 아이디’ 및 ‘구독 노드 아이디’를 컬럼으로 가지는 테이블일 수 있다. 게시-구독 테이블(400)의 각 행은, 게시 노드가 게시하고자 하는 토픽이 상기 ‘토픽’ 컬럼에 저장되고, 상기 게시 노드의 아이디가 ‘게시 노드 아이디’컬럼에 저장되며, 상기 토픽에 대하여 구독하는 구독 노드의 아이디가 ‘구독 노드 아이디’ 컬럼에 저장된다.
게시 노드 A(310)가 토픽 ‘우유 배송’, 게시 노드 아이디 ‘A’를 포함하는 게시 등록 요청 메시지를 브로커(320)에 보내고, 구독 노드 B(330)가 토픽 ‘우유 배송’, 구독 노드 아이디 ‘B’를 포함하는 구독 등록 요청 메시지를 브로커(320)에게 보내며, 구독 노드 C(340)가 토픽 ‘우유 배송’, 구독 노드 아이디 ‘C’를 포함하는 구독 등록 요청 메시지를 브로커(320)에게 보낸다고 가정하자. 이 때, 브로커(320)는 도 4의 게시-구독 테이블(400)의 첫 번째 행과 같이, ‘우유 배송’라는 토픽에 대하여 게시 노드 아이디는 ‘A’이며 구독 노드 아이디는 ‘B’ 및 ‘C’라고 저장한다.
게시 노드 A(310)가 게시 메시지를 브로커(320)에게 전송한다. 상기 게시 메시지는 게시 노드의 아이디, 토픽 및 상기 토픽에 대한 서비스 요구 사항을 포함할 수 있다. 브로커(320)는 상기 게시 메시지를 수신하면 상기 게시 메시지에 포함된 토픽에 대한 구독 노드 아이디를 관리 DB(325)에서 수집한다. 브로커(320)는 상기 수집된 구독 노드 아이디에 대응되는 구독 노드에 상기 게시 메시지를 전송한다.
예를 들어서, 게시 노드 A(310)가 토픽은 ‘우유 배송’, 게시 노드 아이디는 ‘A’ 및 서비스 요구 사항은 ‘가격, 배송 시간, 저지방 여부’를 포함하는 게시 메시지를 브로커(320)에게 전송할 수 있다. 브로커(320)는 상기 게시 메시지에 포함된 ‘우유 배송’이라는 토픽에 대한 구독 노드 아이디 목록을 관리 DB(325)에서 조회할 수 있다. 도 4를 참고하면, 브로커(320)는 구독 노드 아이디로 ‘B’및 ‘C’를 조회할 수 있다. 브로커(320)는 상기 구독 노드 아이디 ‘B’에 대응되는 구독 노드 B(330) 및 상기 구독 노드 아이디 ‘C’에 대응되는 구독 노드 C(340)에 상기 수신된 게시 메시지를 전송할 수 있다.
게시 메시지를 수신한 구독 노드는, 수신된 상기 게시 메시지에 포함된 서비스 요구 사항을 검토한 결과인 서비스 응답을 생성하고, 상기 생성된 서비스 응답이 포함된 응답 메시지를 브로커(320)에게 전송한다. 브로커(320)는 상기 응답 메시지를 수신하여, 상기 응답 메시지에 포함된 게시 노드 아이디에 대응되는 게시 노드에 상기 응답 메시지를 전송한다.
예를 들어서, 게시 메시지에 포함된 서비스 요구 사항이 ‘가격, 배송 시간, 저지방 여부’인 경우에, 구독 노드 B(330)는 상기 게시 메시지를 수신하면 ‘1000, 10, 1’이라는 제1 서비스 응답을 생성하고, 상기 게시 노드 아이디 ‘A’, 구독 노드 B(330)의 구독 노드 아이디 ‘B’ 및 상기 제1 서비스 응답을 포함하는 제1 응답 메시지를 생성하여 브로커(320)에게 전달한다. 구독 노드 C(340)는 상기 게시 메시지를 수신하면 ‘2000, 5, 0’이라는 제2 서비스 응답을 생성하고, 상기 게시 노드 아이디 ‘A’, 구독 노드 C(340)의 구독 노드 아이디 ‘C’ 및 상기 제2 서비스 응답을 포함하는 제2 응답 메시지를 생성하여 브로커(320)에게 전달한다. 브로커(320)는 상기 제1 응답 메시지를 수신하면 상기 게시 노드 아이디 ‘A’에 해당하는 게시 노드 A(310)에 상기 제1 응답 메시지를 전송한다. 브로커(320)는 상기 제2 응답 메시지를 수신하면 상기 게시 노드 아이디 ‘A’에 해당하는 게시 노드 A(310)에 상기 제2 응답 메시지를 전송한다.
게시 노드 A(310)는 상기 게시 메시지에 대한 응답으로 응답 메시지를 수신하면, 상기 응답 메시지에 포함된 서비스 응답에 대하여 평가한다. 상기 평가 결과, 상기 서비스 응답이 소정의 기준을 만족하는 경우 상기 응답 메시지를 발신한 구독 노드의 아이디가 포함된 대화 메시지를 브로커(320)에 전송한다. 게시 노드 A(310)는 하나 이상의 응답 메시지를 수신하면, 상기 하나 이상의 응답 메시지에 포함된 각각의 서비스 응답을 평가하고, 상기 평가를 바탕으로 상기 기준을 만족하는 서비스 응답을 선정할 수 있다. 게시 노드 A(310)는 상기 선정된 하나 이상의 서비스 응답에 대응되는 응답 메시지를 전송한 각각의 구독 노드의 아이디가 포함된 각 대화 메시지를 생성하여 브로커(320)에게 전송한다.
브로커(320)는 상기 대화 메시지를 수신하면, 상기 대화 메시지를 상기 대화 메시지에 포함된 상기 구독 노드의 아이디에 대응되는 상기 구독 노드에 전송한다.
상기 대화 메시지에는 게시 노드의 아이디 및 구독 노드의 아이디가 포함된다. 상기 대화 메시지를 수신한 구독 노드는 상기 대화 메시지에 포함된 상기 게시 노드의 아이디를 목적지로 하는 새로운 대화 메시지를 생성하여 브로커(320)에게 전송한다.
게시 노드와 구독 노드는 서로의 아이디가 포함된 상기 대화 메시지를 브로커(320)에게 전송하고, 브로커(320)의 중계를 통해서, 직접 메시지를 교환하는 것과 같은 효과가 있다.
도 3을 다시 참조하면, 도 3의 확장형 게시-구독 서비스 시스템(300)의 각 구성은 소프트웨어(software) 또는, FPGA(field-programmable gate array)나 ASIC(application-specific integrated circuit)과 같은 하드웨어(hardware)를 의미할 수 있다. 그렇지만 상기 구성요소들은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 어드레싱(addressing)할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 상기 구성요소들 안에서 제공되는 기능은 더 세분화된 구성요소에 의하여 구현될 수 있으며, 복수의 구성요소들을 합하여 특정한 기능을 수행하는 하나의 구성요소로 구현할 수도 있다.
도 5를 참조하면, 본 발명의 또 다른 실시예에 따른 확장형 게시-구독 서비스 시스템(300)에 포함된 게시 노드 A(310), 구독 노드 B(330), 구독 노드 C(340) 및 브로커(320)는 도 5에 도시 된 하드웨어 구성(10)을 가질 수 있다. 게시 노드 A(310), 구독 노드 B(330), 구독 노드 C(340) 및 브로커(320)는 명령어를 수행하는 프로세서(20), 도 3 및 도 4를 참조하여 설명한 본 발명의 일 실시예에 따른 확장형 게시-구독 메시징 서비스 방법을 실행하는 컴퓨터 프로그램이 저장되는 스토리지(40), 메모리(30), 외부 장치와의 데이터 송수신을 위한 네트워크 인터페이스(50) 및 스토리지(40), 네트워크 인터페이스(50), 프로세서(20) 및 메모리(30)와 연결되어 데이터 이동 통로가 되는 시스템 버스(60)를 포함할 수 있다.
하드웨어 구성(10)이 게시 노드(310)를 구현하는 것인 경우, 상기 컴퓨터 프로그램은 브로커(320)에 게시 노드 아이디, 게시 토픽 및 서비스 요구 사항이 포함된 게시 메시지를 전송하는 오퍼레이션, 브로커(320)로부터 제1 구독 노드의 제1 구독 노드 아이디 및 제1 서비스 응답이 포함된 제1 응답 메시지를 수신하는 오퍼레이션, 브로커(320)로부터 제2 구독 노드의 제2 구독 노드 아이디 및 제2 서비스 응답이 포함된 제2 응답 메시지를 수신하는 오퍼레이션, 상기 제1 서비스 응답 및 상기 제2 서비스 응답을 바탕으로 상기 제1 구독 노드 아이디 및 제2 구독 노드 아이디 중에서 어느 하나를 선정하는 오퍼레이션, 상기 선정된 아이디를 수신자로 지정하고 게시 노드(310)의 아이디를 포함하는 제1 대화 메시지를 상기 브로커(320)에게 전송하고 상기 대화 메시지에 대한 응답으로 게시 노드(310)의 아이디를 수신자로 지정한 제2 대화 메시지를 상기 선정 된 아이디를 가지는 구독 노드로부터 브로커(320)를 통하여 수신하는 오퍼레이션을 포함할 수 있다.
하드웨어 구성(10)이 구독 노드(330, 340)를 구현하는 것인 경우, 상기 컴퓨터 프로그램은 브로커(320)로부터 게시 노드 아이디, 게시 토픽 및 서비스 요구 사항이 포함된 게시 메시지를 수신하는 오퍼레이션, 상기 서비스 요구 사항에 대한 응답을 포함하는 서비스 응답을 생성하는 오퍼레이션, 구독 노드(330, 340)가 상기 게시 노드 아이디, 상기 구독 노드 아이디 및 상기 서비스 응답이 포함된 응답 메시지를 브로커(320)에게 전송하는 오퍼레이션, 상기 게시 노드 아이디가 가리키는 게시 노드에 의하여 상기 구독 노드가 대화 상태로 선택 된 결과로 생성된 대화 메시지를 상기 게시 노드로부터 브로커(320)를 통하여 수신하는 오퍼레이션을 포함할 수 있다.
하드웨어 구성(10)이 브로커(320)를 구현하는 것인 경우, 상기 컴퓨터 프로그램은 게시 노드(310)로부터 게시 노드 아이디, 게시 토픽 및 서비스 요구 사항이 포함된 게시 메시지를 수신하는 오퍼레이션, 상기 게시 토픽를 구독하는 구독 노드에, 상기 게시 메시지를 전송하는 오퍼레이션, 상기 구독 노드로부터 상기 게시 노드 아이디, 상기 구독 노드 아이디 및 상기 서비스 요구 사항에 대한 서비스 응답이 포함된 응답 메시지를 수신하는 오퍼레이션, 상기 응답 메시지에 포함된 상기 게시 노드 아이디가 가리키는 노드에 상기 응답 메시지를 전송하는 오퍼레이션, 상기 게시 노드로부터 상기 구독 노드 아이디가 포함된 대화 메시지를 수신하는 오퍼레이션, 상기 대화 메시지에 포함된 상기 구독 노드 아이디가 가리키는 노드에 상기 대화 메시지를 전송하는 오퍼레이션을 포함할 수 있다.
도 6는 본 발명의 몇몇 실시예에서, 게시 노드, 브로커 및 구독 노드 사이에 전송되는 메시지의 형식을 나타낸 도면이다.
게시 노드와 브로커 또는 구독 노드와 브로커 사이에 전송되는 게시 등록 요청 메시지, 구독 등록 요청 메시지, 게시 메시지, 응답 메시지 및 대화 메시지는 도 6에 도시된 전송 메시지 형식(500)을 가질 수 있다.
도 6에 도시된 바와 같이, 전송 메시지(500)는 식별 코드(510), 전송 노드 아이디(520), 수신 노드 아이디(530), 토픽(540) 및 컨텐츠(550)를 포함할 수 있다.
식별 코드(510)는 전송 메시지(500)가 어떤 메시지인지 나타내는 코드이다. 예를 들어, 식별 코드(510)는 게시 등록 요청 메시지를 가리키는 코드, 구독 등록 요청 메시지를 가리키는 코드, 게시 메시지를 가리키는 코드, 응답 메시지를 가리키는 코드 및 대화 메시지를 가리키는 코드 중 하나일 수 있다. 전송 노드 아이디(520)는 상기 전송 메시지를 전송하는 노드의 아이디이다. 수신 노드 아이디(530)는 상기 전송 메시지를 수신하는 노드의 아이디이다. 토픽(540)은 상기 전송 메시지가 연관된 토픽이다. 컨텐츠(550)는 상기 토픽과 관련하여 전달하고자 하는 메시지의 내용이다.
상기 전송 메시지의 길이는 사전에 정해진 값일 수 있으며, 식별 코드(510), 전송 노드 아이디(520), 수신 노드 아이디(530), 토픽(540) 및 컨텐츠(550)는 사전에 정해진 길이 및 상기 전송 메시지 내에서의 위치를 가질 수 있지만, 이에 한정된 것은 아니다.
본 발명의 일 실시예에 따르면, 상기 게시 등록 요청 메시지는 식별 코드(510)가 “01”이고, 전송 노드 아이디(520)는 게시 노드 A(310)의 아이디를 가리키는 “A”이며, 수신 노드 아이디(530)는 브로커(320)를 가리키는 “Broker” 이고, 토픽(540)은 게시 노드 A(310)가 게시하려는 메시지를 나타내는 “우유 배송”이며, 컨텐츠(550)는 내용 없이 비어 있을 수 있다.
본 발명의 일 실시예에 따르면, 상기 구독 등록 요청 메시지는 식별 코드(510)가 “02”이고, 전송 노드 아이디(520)는 구독 노드 B(330)의 아이디를 가리키는 “B”이며, 수신 노드 아이디(530)는 브로커(320)를 가리키는 “Broker”이고, 토픽(540)은 구독 노드 B(330)가 구독하려는 메시지를 나타내는 “우유 배송”이며, 컨텐츠(550)는 내용 없이 비어 있을 수 있다.
본 발명의 일 실시예에 따르면, 상기 게시 메시지는 식별 코드(510)가 “03”이고, 전송 노드 아이디(520)는 게시 노드 A(310)의 아이디를 가리키는 “A”이며, 수신 노드 아이디(530)는 브로커(320)를 가리키는 “Broker”이고, 토픽(540)은 게시 노드 A(310)가 게시하려는 메시지를 나타내는 “우유 배송”이며, 컨텐츠(550)는 “우유 배송”에 요구되는 서비스 요구 사항인 “가격, 배송 시간, 저지방 여부”일 수 있다.
본 발명의 일 실시예에 따르면, 상기 응답 메시지는 식별 코드(510)가 “04”이고, 전송 노드 아이디(520)는 구독 노드 B(330)의 아이디를 가리키는 “B”이며, 수신 노드 아이디(530)는 게시 노드 A(310)를 가리키는 “A”이고, 토픽(540)은 게시 노드 A(310)가 게시한 메시지를 나타내는 “우유 배송”이며, 컨텐츠(550)는 “우유 배송”의 서비스 요구 사항에 대한 서비스 응답인 “1000, 10, 1”일 수 있다.
본 발명의 일 실시예에 따르면, 게시 노드 A(310)에서 구독 노드 B(330)로 전송되는 상기 대화 메시지는 식별 코드(510)가 “05”, 전송 노드 아이디(520)는 “A”, 수신 노드 아이디(530)는 “B”, 토픽(540)은 비어 있으며, 컨텐츠(550)는 대화 내용을 포함할 수 있다. 구독 노드 B(330)에서 게시 노드 A(310)로 전송되는 상기 대화 메시지는 식별 코드(510)가 “05”, 전송 노드 아이디(520)는 “B”, 수신 노드 아이디(530)는 “A”, 토픽(540)은 비어 있으며, 컨텐츠(550)는 대화 내용을 포함할 수 있다.
도 7은, 본 발명의 몇몇 실시예에서, 게시 메시지에 포함된 서비스 요구 사항의 구성과 응답 메시지에 포함된 서비스 응답 및 상기 서비스 응답을 평가하여 평가치를 산출하는 수식을 나타낸 도면이다.
도 7을 참조하여, 서비스 요구 사항 및 서비스 응답의 구성을 자세히 설명하고, 상기 서비스 응답을 바탕으로 평가치를 산출하는 방법을 자세하게 설명한다.
상기 서비스 요구 사항은 토픽에서 요구 되는 하나 이상의 속성을 포함할 수 있다. 상기 서비스 요구 사항은 토픽을 게시한 게시 노드에 의해서 지정될 수 있다.
예를 들어서, “우유 배송”이라는 토픽에 대한 상기 서비스 요구 사항은 “가격, 배송 시간, 저지방 여부”일 수 있다. 상기 서비스 요구 사항의 각 속성은 “가격”, “배송 시간” 및 “저지방 여부”이다.
상기 서비스 응답은 상기 서비스 요구 사항의 각 속성에 대한 구독 노드의 응답이다. 구독 노드는 게시 메시지에 포함된 서비스 요구 사항을 확인하고, 상기 확인된 서비스 요구 사항의 각 속성에 대한 응답을 포함하는 서비스 응답을 생성하고, 상기 서비스 응답을 포함한 응답 메시지를 생성하여 상기 게시 메시지를 전송한 게시 노드에 상기 응답 메시지를 전송할 수 있다.
예를 들어서, “우유 배송”이라는 토픽에 대한 서비스 요구 사항으로 “가격, 배송 시간, 저지방 여부”를 포함하는 게시 메시지를 수신한 구독 노드는, 저지방인 우유를 1000원의 가격으로 10시간 이내로 배송할 수 있는 경우, “1000, 10, 1”이라는 서비스 응답을 생성할 수 있다.
게시 노드는 상기 응답 메시지를 수신하면, 상기 응답 메시지에 포함된 서비스 응답을 평가할 수 있다. 이를 위해서, 상기 게시 노드는 상기 서비스 요구 사항의 각 속성에 대한 중요도를 이용할 수 있다. 상기 각 속성이 동일하게 중요하면, 상기 각 속성의 중요도는 ‘1’일 수 있다. 상기 중요도는 각 속성의 중요한 정도에 비례하여 상대적인 값을 가질 수 있다. 상기 게시 노드는 각 속성에 대한 상기 서비스 응답과 상기 중요도를 이용하여 상기 구독 노드의 응답의 평가치를 산출할 수 있다. 상기 게시 노드는 상기 평가치가 소정의 기준을 만족하는 구독 노드를 대화 상대로 선정할 수 있다.
예를 들어서, 상기 평가치는 서비스 요구 사항의 각 속성에 대한 서비스 응답과 중요도를 곱한 값을 모두 더한 값일 수 있다. “가격, 배송 시간, 저지방 여부”라는 서비스 요구 사항에 대한 각 속성의 중요도가 “2, 5, 10”인 경우, 구독 노드의 서비스 응답이 “1000, 10, 1”이면, 평가치는 “1000x2 + 10x5 + 1x10”연산을 통해서 2060일 수 있다. 게시 노드의 평가치 기준이 1000인 경우, 상기 평가치는 상기 기준보다 높은 값이므로 상기 기준을 만족할 수 있다. 상기 게시 노드는 상기 서비스 응답을 포함한 응답 메시지를 전송한 구독 노드를 대화 상대로 선정할 수 있다.
본 발명의 일 실시예에 따르면, 서비스 요구 사항(610)이 n 개의 속성을 가지는 경우, 서비스 요구 사항(610)은 제1 속성 내지 제n 속성을 포함할 수 있다. 구독 노드 B(330)의 제1 서비스 응답(620)은 상기 제1 속성 내지 제n 속성에 대하여 각각 a1 내지 an 일 수 있다. 구독 노드 C(340)의 제2 서비스 응답(630)은 상기 제1 속성 내지 제n 속성에 대하여 각각 b1 내지 bn 일 수 있다. 서비스 요구 사항(610)의 각 속성의 중요도(640)는 각각 λ1 내지 λ2 일 수 있다. 제1 서비스 응답(620)에 대한 제1 평가치(650)는 일 수 있다. 제2 서비스 응답(630)에 대한 제2 평가치(660)는 일 수 있다.
도 8은 본 발명의 일 실시예에 따른 확장형 게시-구독 메시지 서비스 방법에 따른 각 노드 간의 메시지 흐름을 나타내는 신호 흐름도이다. 도 7을 참조하여, 확장형 게시-구독 메시지 서비스 시스템(300)에 포함된 게시 노드 A(310), 브로커(320), 구독 노드 B(330) 및 구독 노드 C(340) 사이의 메시지 흐름을 설명한다.
게시 노드 A(310)는 브로커(320)에게 게시 등록 요청 메시지를 전송한다(S710). 상기 게시 등록 메시지는, 게시 노드 A(310)의 아이디(“A”) 및 토픽을 포함할 수 있다.
구독 노드 B(330)는 브로커(320)에게 구독 등록 요청 메시지를 전송한다(S720). 상기 구독 등록 요청 메시지는 구독 노드 B(330)의 아이디(“B”) 및 토픽을 포함할 수 있다.
구독 노드 C(340)는 브로커(320)에게 구독 등록 요청 메시지를 전송한다(S725). 상기 구독 등록 요청 메시지는 구독 노드 C(340)의 아이디(“C”) 및 토픽을 포함할 수 있다.
브로커(320)는 상기 토픽, 상기 게시 등록 요청 메시지에 포함된 게시 노드 아이디 및 상기 구독 등록 요청 메시지에 포함된 구독 노드 아이디를 게시-구독 테이블(400)에 저장함으로써 게시-구독 테이블(400)을 갱신한다(S730)
게시 노드 A(310)는 브로커(320)에게 상기 토픽에 대한 게시 메시지를 전송한다(S740). 상기 게시 메시지는 게시 노드 A(310)의 아이디(“A”), 상기 토픽 및 서비스 요구 사항을 포함할 수 있다.
브로커(320)는 상기 게시 메시지를 수신하고, 상기 수신된 게시 메시지에 포함된 상기 토픽에 대한 구독 노드 리스트를 조회한다(S742).
브로커(320)는 상기 조회된 구독 노드 리스트에 포함된 구독 노드 B(330) 및 구독 노드 C(340)에게 상기 수신된 게시 메시지를 전송한다(S746, S748).
구독 노드 B(330)는 상기 게시 메시지를 수신하고, 상기 게시 메시지에 포함된 서비스 요구 사항에 대한 응답인 제1 서비스 응답을 생성한다(S750).
구독 노드 B(330)는 상기 제1 서비스 응답을 포함한 제1 응답 메시지를 브로커(320)에게 전송한다(S752). 상기 제1 응답 메시지는 구독 노드 B(330)의 아이디(“B”), 게시 노드 A(310)의 아이디(“A”) 및 상기 제1 서비스 응답을 포함할 수 있다.
브로커(320)는 상기 제1 응답 메시지를 게시 노드 A(310)에게 전송한다(S754).
구독 노드 C(340)는 상기 게시 메시지를 수신하고, 상기 게시 메시지에 포함된 서비스 요구 사항에 대한 응답인 제2 서비스 응답을 생성한다(S760).
구독 노드 C(340)는 상기 제2 서비스 응답을 포함한 제2 응답 메시지를 브로커(320)에게 전송한다(S762). 상기 제2 응답 메시지는 구독 노드 C(340)의 아이디(“C”), 게시 노드 A(310)의 아이디(“A”) 및 상기 제2 서비스 응답을 포함할 수 있다.
브로커(320)는 상기 제2 응답 메시지를 게시 노드 A(310)에게 전송한다(S764).
게시 노드 A(310)는 상기 제1 응답 메시지 및 상기 제2 응답 메시지를 바탕으로, 대화 상대 노드를 선정한다(S770). 설명의 편의를 위하여, 구독 노드 B(330)가 대화 상대 노드로 선정된다고 가정한다.
게시 노드 A(310)는 대화 메시지를 브로커(320)에게 전송한다(S780). 상기 대화 메시지는 상기 선정된 대화 상대 노드의 아이디(“B”), 게시 노드의 아이디(“A”) 및 대화 내용을 포함할 수 있다.
브로커(320)는 상기 대화 메시지를 수신하고, 상기 대화 메시지에 포함된 대화 상대 노드의 아이디가 가리키는 구독 노드에 상기 대화 메시지를 전송한다(S782).
도 9는, 본 발명의 일 실시예에 따른 브로커의 동작을 나타낸 순서도이다.
도 9를 참조하여, 본 발명의 일 실시예에 따른 브로커의 동작을 자세하게 설명한다.
브로커는 게시 등록 요청 메시지를 수신한다(S810). 상기 게시 등록 요청 메시지는 게시 노드로부터 전송될 수 있다. 상기 게시 등록 요청 메시지는 게시 노드 아이디 및 토픽을 포함할 수 있다.
상기 브로커는 상기 게시 등록 요청 메시지에 포함된 게시 노드 아이디 및 토픽을 게시등록 테이블에 저장함으로써 게시등록 테이블을 갱신한다(S815). 상기 게시 노드 아이디는 상기 토픽에 관한 게시 노드의 정보로써 저장될 수 있다.
상기 브로커는 구독 등록 요청 메시지를 수신한다(S820). 상기 구독 등록 요청 메시지는 구독 노드로부터 전송될 수 있다. 상기 구독 등록 요청 메시지는 구독 노드 아이디 및 토픽을 포함할 수 있다.
상기 브로커는 상기 구독 등록 요청 메시지에 포함된 구독 노드 아이디 및 토픽을 게시등록 테이블에 저장함으로써 게시등록 테이블을 갱신한다(S825). 상기 구독 노드 아이디는 상기 토픽에 관한 구독 노드의 정보로써 저장될 수 있다.
상기 브로커는 게시 메시지를 수신한다(S830). 상기 게시 메시지는 상기 게시 노드로부터 전송될 수 있다. 상기 게시 메시지는 상기 게시 노드 아이디, 토픽 및 서비스 요구 사항을 포함할 수 있다.
상기 브로커는 상기 게시등록 테이블에서 상기 게시 메시지에 포함된 상기 토픽에 대한 구독 노드 리스트를 조회한다(S840). 상기 구독 노드 리스트는 상기 토픽에 대하여 구독 노드로 저장된 구독 노드의 아이디 리스트를 포함한다.
상기 브로커는 상기 구독 노드 리스트가 조회된 경우, 상기 구독 노드 리스트에 포함된 구독 노드 아이디에 대응되는 구독 노드에 상기 수신된 게시 메시지를 전달한다(S850). 상기 전달은 상기 대응되는 구독 노드 모두에 상기 수신된 게시 메시지를 각각 전송하는 것을 포함한다.
상기 브로커는 응답 메시지를 수신한다(S860). 상기 응답 메시지는 상기 구독 노드로부터 전송될 수 있다. 상기 응답 메시지는 게시 노드 아이디, 구독 노드 아이디 및 서비스 응답을 포함할 수 있다.
상기 브로커는 상기 수신된 응답 메시지를 상기 응답 메시지에 포함된 게시 노드 아이디에 대응되는 게시 노드에 전송한다(S865).
상기 브로커는 대화 메시지를 수신한다(S870). 상기 대화 메시지는 게시 노드로부터 전송될 수 있다. 상기 대화 메시지는 게시 노드 아이디, 구독 노드 아이디 및 대화를 포함할 수 있다.
상기 브로커는 상기 수신된 대화 메시지에 포함된 구독 노드 아이디에 대응된 구독 노드에 상기 수신된 대화 메시지를 전송한다(S875).
도 10은, 본 발명의 일 실시예에 따른, 구독 노드의 동작을 나타낸 순서도이다.
도 10을 참조하여, 구독 노드의 동작을 자세하게 설명한다.
구독 노드는 구독 등록 요청 메시지를 전송한다(S910). 상기 구독 등록 요청 메시지는 브로커에게 전송될 수 있다. 상기 구독 등록 요청 메시지는 상기 구독 노드의 아이디 및 토픽을 포함할 수 있다.
구독 노드는 게시 메시지를 수신한다(S920). 상기 게시 메시지는 게시 노드의 아이디, 토픽 및 서비스 요구 사항을 포함할 수 있다.
상기 구독 노드는 상기 서비스 요구 사항에 포함된 각 속성에 대한 응답인 서비스 응답을 생성한다(S930).
상기 구독 노드는 상기 서비스 응답을 포함하는 응답 메시지를 생성한다(S940). 상기 응답 메시지는 상기 게시 노드의 아이디 및 서비스 응답을 포함할 수 있다. 상기 응답 메시지에 포함된 상기 게시 노드의 아이디는 상기 응답 메시지가 도달할 노드의 아이디를 가리킨다.
상기 구독 노드는 상기 생성된 응답 메시지를 전송한다(S950). 상기 응답 메시지는 상기 브로커에게 전송될 수 있다.
도 11은, 본 발명의 일 실시예에 따른 게시 노드의 동작을 나타낸 순서도이다.
도 11을 참조하여, 게시 노드의 동작을 자세하게 설명한다.
게시 노드는 게시 등록 요청 메시지를 전송한다(S1010). 상기 게시 등록 요청 메시지는 브로커에게 전송될 수 있다. 상기 게시 등록 요청 메시지는 상기 게시 노드의 아이디 및 토픽을 포함할 수 있다.
게시 노드는 게시 메시지를 전송한다(S1020). 상기 게시 메시지는 상기 브로커에게 전송될 수 있다. 상기 게시 메시지는, 상기 토픽 및 서비스 요구 사항을 포함할 수 있다. 상기 서비스 요구 사항은 하나 이상의 구성을 포함할 수 있다.
상기 게시 노드는 제1 응답 메시지를 수신한다(S1030). 상기 제1 응답 메시지는 제1 서비스 응답을 포함할 수 있다. 상기 제1 서비스 응답은 상기 서비스 요구 사항의 각 구성에 대한 응답을 포함할 수 있다.
상기 게시 노드는 상기 제1 응답 메시지에 포함된 상기 제1 서비스 응답을 바탕으로 제1 평가치를 산출한다(S1040). 상기 제1 평가치는 상기 제1 서비스 응답에 포함된 상기 서비스 요구 사항의 각 구성에 대한 응답값과 상기 구성에 대한 소정의 중요도를 곱하여 산출한 값을 상기 각 구성에 대하여 모두 산출하여 덧셈한 값일 수 있다.
상기 게시 노드는 응답 대기 시간이 만료되었는지 확인한다(S1050). 상기 응답 대기 시간은 사전에 정의된 값일 수 있다. 상기 응답 대기 시간은 상기 게시 노드가 상기 게시 메시지를 전송한 후, 마지막 응답 메시지를 수신할 때까지의 최대 대기 시간을 가리킬 수 있다.
상기 게시 노드는 상기 응답 대기 시간이 만료되지 않았으면, 제2 응답 메시지를 수신한다(S1060). 상기 제2 응답 메시지는 제2 서비스 응답을 포함할 수 있다. 상기 제2 서비스 응답은 상기 서비스 요구 사항의 각 구성에 대한 응답을 포함할 수 있다.
상기 게시 노드는 상기 제2 응답 메시지에 포함된 상기 제2 서비스 응답을 바탕으로 제2 평가치를 산출한다(S1070). 상기 제2 평가치는 상기 제2 서비스 응답에 포함된 상기 서비스 요구 사항의 각 구성에 대한 응답값과 상기 구성에 대한 소정의 중요도를 곱하여 산출한 값을 상기 각 구성에 대하여 모두 산출하여 덧셈한 값일 수 있다.
상기 게시 노드는 상기 응답 대기 시간이 만료되었으면, 상기 제1 평가치 내지 제2 평가치를 바탕으로 대화 상대 노드를 선정한다(S1080). 상기 게시 노드는 상기 제1 평가치 내지 상기 제2 평가치 중에서 소정의 기준 이상의 값을 가지는 평가치를 모두 선정하고, 상기 선정된 평가치에 대응되는 서비스 응답을 전송한 구독 노드를 상기 대화 상대 노드로 선정할 수 있다.
상기 게시 노드는 상기 대화 상대 노드의 아이디를 포함하는 대화 메시지를 생성하고, 상기 대화 메시지를 브로커에게 전송한다(S1090).
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.

Claims (13)

  1. 삭제
  2. 브로커가 게시 노드로부터 게시 노드 아이디, 게시 토픽 및 서비스 요구 사항이 포함된 게시 메시지를 수신하는 단계;
    상기 브로커가 상기 게시 토픽를 구독하는 구독 노드에, 상기 게시 메시지를 전송하는 단계;
    상기 브로커가 상기 구독 노드로부터 상기 게시 노드 아이디, 구독 노드 아이디 및 상기 서비스 요구 사항에 대한 서비스 응답이 포함된 응답 메시지를 수신하는 단계;
    상기 브로커가 상기 응답 메시지에 포함된 상기 게시 노드 아이디가 가리키는 노드에 상기 응답 메시지를 전송하는 단계;
    상기 브로커가 상기 게시 노드로부터 상기 구독 노드 아이디가 포함된 대화 메시지를 수신하는 단계; 및
    상기 브로커가 상기 대화 메시지에 포함된 상기 구독 노드 아이디가 가리키는 노드에 상기 대화 메시지를 전송하는 단계를 포함하되,
    상기 브로커가 상기 게시 메시지를 수신하는 단계 이전에,
    상기 브로커가 상기 게시 노드로부터 상기 게시 노드 아이디 및 상기 게시 토픽이 포함된 게시 등록 요청 메시지를 수신하는 단계;
    상기 브로커가 상기 구독 노드로부터 상기 구독 노드 아이디 및 구독 토픽이 포함된 구독 등록 요청 메시지를 수신하는 단계; 및
    상기 브로커가 상기 구독 토픽과 일치하는 상기 게시 토픽의 구독 리스트에 상기 구독 노드 아이디를 추가하는 단계를 더 포함하는,
    확장형 게시-구독 메시징 서비스 방법.
  3. 브로커가 게시 노드로부터 게시 노드 아이디, 게시 토픽 및 서비스 요구 사항이 포함된 게시 메시지를 수신하는 단계;
    상기 브로커가 상기 게시 토픽를 구독하는 구독 노드에, 상기 게시 메시지를 전송하는 단계;
    상기 브로커가 상기 구독 노드로부터 상기 게시 노드 아이디, 구독 노드 아이디 및 상기 서비스 요구 사항에 대한 서비스 응답이 포함된 응답 메시지를 수신하는 단계;
    상기 브로커가 상기 응답 메시지에 포함된 상기 게시 노드 아이디가 가리키는 노드에 상기 응답 메시지를 전송하는 단계;
    상기 브로커가 상기 게시 노드로부터 상기 구독 노드 아이디가 포함된 대화 메시지를 수신하는 단계; 및
    상기 브로커가 상기 대화 메시지에 포함된 상기 구독 노드 아이디가 가리키는 노드에 상기 대화 메시지를 전송하는 단계를 포함하되,
    상기 브로커가 상기 게시 메시지를 전송하는 단계는,
    상기 게시 노드로부터 수신된 게시 메시지에 포함 된 게시 토픽의 모든 구독 노드에, 상기 게시 메시지를 전송하는 단계를 포함하는,
    확장형 게시-구독 메시징 서비스 방법.
  4. 브로커가 게시 노드로부터 게시 노드 아이디, 게시 토픽 및 서비스 요구 사항이 포함된 게시 메시지를 수신하는 단계;
    상기 브로커가 상기 게시 토픽를 구독하는 구독 노드에, 상기 게시 메시지를 전송하는 단계;
    상기 브로커가 상기 구독 노드로부터 상기 게시 노드 아이디, 구독 노드 아이디 및 상기 서비스 요구 사항에 대한 서비스 응답이 포함된 응답 메시지를 수신하는 단계;
    상기 브로커가 상기 응답 메시지에 포함된 상기 게시 노드 아이디가 가리키는 노드에 상기 응답 메시지를 전송하는 단계;
    상기 브로커가 상기 게시 노드로부터 상기 구독 노드 아이디가 포함된 대화 메시지를 수신하는 단계; 및
    상기 브로커가 상기 대화 메시지에 포함된 상기 구독 노드 아이디가 가리키는 노드에 상기 대화 메시지를 전송하는 단계를 포함하되,
    상기 서비스 요구 사항은,
    서비스 요구 항목을 가리키는 하나 이상의 속성을 포함하며,
    상기 서비스 응답은,
    상기 서비스 요구 사항의 각 속성에 대한 상기 구독 노드의 응답을 포함하는,
    확장형 게시-구독 메시징 서비스 방법.
  5. 게시 노드가 브로커에 게시 노드 아이디, 게시 토픽 및 서비스 요구 사항이 포함된 게시 메시지를 전송하는 단계;
    상기 게시 노드가 상기 브로커로부터 제1 구독 노드의 제1 구독 노드 아이디 및 제1 서비스 응답이 포함된 제1 응답 메시지를 수신하는 단계;
    상기 게시 노드가 상기 브로커로부터 제2 구독 노드의 제2 구독 노드 아이디 및 제2 서비스 응답이 포함된 제2 응답 메시지를 수신하는 단계;
    상기 게시 노드가 상기 제1 서비스 응답 및 상기 제2 서비스 응답을 바탕으로 상기 제1 구독 노드 아이디 및 제2 구독 노드 아이디 중에서 어느 하나를 선정하는 단계; 및
    상기 게시 노드가 상기 선정된 아이디를 수신자로 지정하고, 상기 게시 노드의 아이디를 포함하는 제1 대화 메시지를 상기 브로커에게 전송하고, 상기 대화 메시지에 대한 응답으로 상기 게시 노드의 아이디를 수신자로 지정한 제2 대화 메시지를 상기 선정 된 아이디를 가지는 노드로부터 상기 브로커를 통하여 수신하는 단계를 포함하는,
    확장형 게시-구독 메시징 서비스 방법.
  6. 제5항에 있어서,
    상기 게시 노드가 상기 게시 메시지를 전송하는 단계 이전에,
    상기 게시 노드가 상기 브로커에게 상기 게시 노드 아이디 및 상기 게시 토픽이 포함된 게시 등록 요청 메시지를 전송하는 단계를 더 포함하는,
    확장형 게시-구독 메시징 서비스 방법.
  7. 제5항에 있어서,
    상기 서비스 요구 사항은,
    서비스 요구 항목을 가리키는 하나 이상의 속성을 포함하며,
    상기 제1 서비스 응답 및 상기 제2 서비스 응답은,
    상기 서비스 요구 사항의 상기 각 속성에 대한 응답을 포함하고,
    상기 게시 노드가 상기 제1 구독 노드 아이디 및 제2 구독 노드 아이디 중에서 어느 하나를 선정하는 단계는,
    상기 제1 서비스 응답에 포함된 상기 각 속성에 대한 응답과 사전에 정의된 상기 각 속성에 대한 중요도를 곱하여 산출된 값을 상기 각 속성에 대하여 모두 산출하여 덧셈한 제1 평가치를 산출하는 단계;
    상기 제2 서비스 응답에 포함된 상기 각 속성에 대한 응답과 상기 각 중요도를 곱하여 산출된 값을 상기 각 속성에 대하여 모두 산출하여 덧셈한 제2 평가치를 산출하는 단계; 및
    상기 제1 평가치가 상기 제2 평가치 보다 높으면 상기 제1 구독 노드 아이디를 선정하고, 상기 제2 평가치가 상기 제1 평가치보다 높으면 상기 제2 구독 노드 아이디를 선정하며, 상기 제1 평가치와 상기 제2 평가치가 동일하면 상기 제1 구독 노드 아이디 및 상기 제2 구독 노드 아이디 모두를 선정하는 단계를 포함하는,
    확장형 게시-구독 메시징 서비스 방법.
  8. 삭제
  9. 구독 노드가 브로커로부터 게시 노드 아이디, 게시 토픽 및 서비스 요구 사항이 포함된 게시 메시지를 수신하는 단계;
    상기 구독 노드가 상기 서비스 요구 사항에 대한 응답을 포함하는 서비스 응답을 생성하는 단계;
    상기 구독 노드가 상기 게시 노드 아이디, 구독 노드 아이디 및 상기 서비스 응답이 포함된 응답 메시지를 상기 브로커에게 전송하는 단계;
    상기 게시 노드 아이디가 가리키는 게시 노드에 의하여 상기 구독 노드가 대화 상태로 선택 된 결과로 생성된 대화 메시지를 상기 게시 노드로부터 상기 브로커를 통하여 수신하는 단계를 포함하되,
    상기 구독 노드가 상기 브로커로부터 상기 게시 메시지를 수신하는 단계 이전에,
    상기 구독 노드가 상기 브로커에게 상기 구독 노드 아이디 및 구독 토픽이 포함된 구독 등록 요청 메시지를 전송하는 단계를 더 포함하는,
    확장형 게시-구독 메시징 서비스 방법.
  10. 구독 노드가 브로커로부터 게시 노드 아이디, 게시 토픽 및 서비스 요구 사항이 포함된 게시 메시지를 수신하는 단계;
    상기 구독 노드가 상기 서비스 요구 사항에 대한 응답을 포함하는 서비스 응답을 생성하는 단계;
    상기 구독 노드가 상기 게시 노드 아이디, 구독 노드 아이디 및 상기 서비스 응답이 포함된 응답 메시지를 상기 브로커에게 전송하는 단계;
    상기 게시 노드 아이디가 가리키는 게시 노드에 의하여 상기 구독 노드가 대화 상태로 선택 된 결과로 생성된 대화 메시지를 상기 게시 노드로부터 상기 브로커를 통하여 수신하는 단계를 포함하되,
    상기 서비스 요구 사항은,
    서비스 요구 항목을 가리키는 하나 이상의 속성을 포함하며,
    상기 서비스 응답을 생성하는 단계는,
    상기 서비스 요구 사항의 상기 각 속성에 대한 응답을 생성하는 단계; 및
    상기 각 속성에 대하여 생성된 응답을 모두 포함하는 서비스 응답을 생성하는 단계를 포함하는,
    확장형 게시-구독 메시징 서비스 방법.
  11. 토픽에 대한 게시 메시지를 전송하고 상기 게시 메시지에 대한 응답으로 응답 메시지를 수신하며 상기 응답 메시지에 대한 응답으로 대화 메시지를 전송하는 게시 노드;
    상기 게시 메시지를 수신하고 상기 게시 메시지에 대한 응답으로 응답 메시지를 전송하며 상기 응답 메시지에 대한 응답으로 상기 대화 메시지를 수신하는 구독 노드; 및
    상기 게시 메시지를 수신하면 상기 구독 노드에 전송하고 상기 응답 메시지를 수신하면 상기 게시 노드에 전송하며, 상기 게시 노드로부터 상기 대화 메시지를 수신하면 상기 대화 메시지를 상기 구독 노드에 전송하는 브로커를 포함하되,
    상기 게시 메시지는,
    상기 게시 노드의 아이디, 상기 토픽 및 상기 토픽에 대한 서비스 요구 사항을 포함하며,
    상기 응답 메시지는,
    상기 구독 노드의 아이디, 상기 게시 노드의 아이디 및 상기 토픽에 대한 서비스 응답을 포함하며,
    상기 대화 메시지는,
    상기 구독 노드의 아이디 및 대화 내용을 포함하는,
    확장형 게시-구독 메시징 서비스 시스템.
  12. 제11항에 있어서,
    상기 게시 노드는,
    상기 게시 메시지 전송 전에 상기 브로커에 상기 게시 노드 아이디 및 상기 토픽을 포함하는 게시 등록 요청 메시지를 전송하고,
    상기 구독 노드는,
    상기 게시 메시지 수신 전에 상기 브로커에 상기 구독 노드 아이디 및 상기 토픽을 포함하는 구독 등록 요청 메시지를 전송하며,
    상기 브로커는,
    상기 토픽, 상기 게시 노드 아이디 및 상기 구독 노드 아이디를 포함하는 중계 정보를 저장하는 관리 DB(Database)를 포함하고, 상기 게시 등록 요청 메시지를 수신하면 상기 토픽에 대한 중계 정보에 상기 게시 노드 아이디를 추가하여 상기 중계 정보를 상기 관리 DB에 저장하며, 상기 구독 등록 요청 메시지를 수신하면 상기 토픽에 대한 중계 정보에 상기 구독 노드 아이디를 추가하여 상기 중계 정보를 상기 관리 DB에 저장하고, 상기 게시 메시지를 수신하면 상기 게시 메시지에 포함된 상기 토픽에 대한 상기 구독 노드 아이디를 상기 관리 DB에서 조회하여 상기 조회된 구독 노드 아이디에 대응되는 상기 구독 노드에 상기 게시 메시지를 전송하는,
    확장형 게시-구독 메시징 서비스 시스템.
  13. 제 11항에 있어서,
    상기 브로커는,
    상기 응답 메시지를 수신하면 상기 응답 메시지에 포함된 상기 게시 노드 아이디에 대응되는 게시 노드에 상기 응답 메시지를 전송하고, 상기 대화 메시지를 수신하면 상기 대화 메시지에 포함된 수신 대상 노드에 대응되는 노드에 상기 대화 메시지를 전송하는,
    확장형 게시-구독 메시징 서비스 시스템.
KR1020140161797A 2014-11-19 2014-11-19 확장형 게시-구독 메시징 서비스 방법 및 시스템 KR101609532B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140161797A KR101609532B1 (ko) 2014-11-19 2014-11-19 확장형 게시-구독 메시징 서비스 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140161797A KR101609532B1 (ko) 2014-11-19 2014-11-19 확장형 게시-구독 메시징 서비스 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR101609532B1 true KR101609532B1 (ko) 2016-04-20

Family

ID=55917569

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140161797A KR101609532B1 (ko) 2014-11-19 2014-11-19 확장형 게시-구독 메시징 서비스 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR101609532B1 (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180031852A (ko) * 2016-09-19 2018-03-29 충남대학교산학협력단 Mqtt 프로토콜 연동을 위한 어댑터 및 그를 이용한 데이터 교환 시스템
KR20180052289A (ko) 2016-11-10 2018-05-18 서강대학교산학협력단 토픽 가상화를 통한 매쉬업 콘텐츠를 제공하는 발행/구독 기반의 콘텐츠 전달 플랫폼 시스템, 매쉬업 서버 및 콘텐츠 전달 방법
KR20190057604A (ko) * 2017-11-20 2019-05-29 아주대학교산학협력단 게시-구독 메시지 서비스 방법
KR20200048907A (ko) * 2018-10-31 2020-05-08 아주대학교산학협력단 발행 및 구독 통신 시스템 및 그 동작 방법
US10826979B2 (en) 2016-12-22 2020-11-03 University-Industry Cooperation Group Of Kyung-Hee University Apparatus and method for logically grouping client nodes in an IoT environment using client identifiers
CN115022392A (zh) * 2022-06-24 2022-09-06 浪潮软件集团有限公司 面向iot的分布式发布订阅服务方法和***
KR102477368B1 (ko) * 2021-11-04 2022-12-15 주식회사 라온아이오티 MQTT 프로토콜을 이용한 IoT 기기간 메시지 전달 방법 및 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030018716A1 (en) 2001-02-21 2003-01-23 Brandyn Webb Populating online forums
US20050021622A1 (en) 2002-11-26 2005-01-27 William Cullen Dynamic subscription and message routing on a topic between publishing nodes and subscribing nodes

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030018716A1 (en) 2001-02-21 2003-01-23 Brandyn Webb Populating online forums
US20050021622A1 (en) 2002-11-26 2005-01-27 William Cullen Dynamic subscription and message routing on a topic between publishing nodes and subscribing nodes

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180031852A (ko) * 2016-09-19 2018-03-29 충남대학교산학협력단 Mqtt 프로토콜 연동을 위한 어댑터 및 그를 이용한 데이터 교환 시스템
KR101890310B1 (ko) 2016-09-19 2018-08-22 충남대학교산학협력단 Mqtt 프로토콜 연동을 위한 어댑터 및 그를 이용한 데이터 교환 시스템
KR20180052289A (ko) 2016-11-10 2018-05-18 서강대학교산학협력단 토픽 가상화를 통한 매쉬업 콘텐츠를 제공하는 발행/구독 기반의 콘텐츠 전달 플랫폼 시스템, 매쉬업 서버 및 콘텐츠 전달 방법
US10826979B2 (en) 2016-12-22 2020-11-03 University-Industry Cooperation Group Of Kyung-Hee University Apparatus and method for logically grouping client nodes in an IoT environment using client identifiers
KR20190057604A (ko) * 2017-11-20 2019-05-29 아주대학교산학협력단 게시-구독 메시지 서비스 방법
KR102022602B1 (ko) 2017-11-20 2019-11-04 아주대학교산학협력단 게시-구독 메시지 서비스 방법
KR20200048907A (ko) * 2018-10-31 2020-05-08 아주대학교산학협력단 발행 및 구독 통신 시스템 및 그 동작 방법
KR102127652B1 (ko) 2018-10-31 2020-06-29 아주대학교산학협력단 발행 및 구독 통신 시스템 및 그 동작 방법
KR102477368B1 (ko) * 2021-11-04 2022-12-15 주식회사 라온아이오티 MQTT 프로토콜을 이용한 IoT 기기간 메시지 전달 방법 및 시스템
CN115022392A (zh) * 2022-06-24 2022-09-06 浪潮软件集团有限公司 面向iot的分布式发布订阅服务方法和***
CN115022392B (zh) * 2022-06-24 2024-04-30 浪潮软件集团有限公司 面向iot的分布式发布订阅服务方法和***

Similar Documents

Publication Publication Date Title
KR101609532B1 (ko) 확장형 게시-구독 메시징 서비스 방법 및 시스템
KR102605458B1 (ko) 분석 기능 발견 방법 및 장치
RU2495535C2 (ru) Система, способ и клиент для присоединения к группе
US20050228895A1 (en) Method, Web service gateway (WSG) for presence, and presence server for presence information filtering and retrieval
US7802304B2 (en) Method and system of providing an integrated reputation service
JP5847185B2 (ja) コンテンツ中心のネットワーク環境でグループ変更に関する情報を用いるコンテンツ共有方法及び装置
CN103326929B (zh) 一种消息传输方法和装置
KR20140072044A (ko) 다중-소스 푸시 통지를 다수의 타겟들로의 분배 기법
CN101505458A (zh) 基于通信标识符提供相关广告或其它内容
JP2016066882A (ja) 通信システム、ノード装置、ノードプログラム、および、通信プログラム
CN113746722A (zh) 信息处理方法、装置、设备以及存储介质
JP2003158552A (ja) メッセージ配信システムおよび方法並びにシステムのプログラム
KR20070052038A (ko) 개방형 모바일 비즈니스 지원 시스템의 api 제공 방법
WO2014187397A1 (zh) 多媒体消息的发布方法及装置
KR101513472B1 (ko) 전화번호 기반의 친구 확인 장치 및 방법
KR20090087791A (ko) 비통합메시징 서비스와 인터워킹하기 위한 통합메시징서비스 제공 시스템 및 방법
KR101790883B1 (ko) 지능망 환경에서의 전화 상담 및 채팅 상담 간의 전환을 위한 지능망 서버의 동작 방법, 및 지능망 서버
US20110191427A1 (en) Communication method adapted for users using multiple communication facilities
RU2658157C1 (ru) Способ построения временных каналов передачи данных между клиентами служб обмена мгновенными сообщениями, использующими различные коммуникационные протоколы
KR20110065917A (ko) 분산컴퓨팅 통신망에서 분산된 모듈 간의 통신을 지원하는 통신시스템 및 그 시스템을 이용한 통신방법
JP2013539296A (ja) 位置基盤メッセージ送受信システム及びその方法
CN116155852A (zh) Feed流实现方法、装置、终端及存储介质
JP6369273B2 (ja) 印刷制御サーバーおよび印刷制御方法
US20130117371A1 (en) Apparatus for transmitting scheduled messages classified by transmission mode
JP2014178822A (ja) メッセージ送信方法、装置およびシステム

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190304

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200302

Year of fee payment: 5