KR20190067894A - 클라이언트, 브로커, 통신 시스템, 통신 방법 및 프로그램 - Google Patents

클라이언트, 브로커, 통신 시스템, 통신 방법 및 프로그램 Download PDF

Info

Publication number
KR20190067894A
KR20190067894A KR1020197014674A KR20197014674A KR20190067894A KR 20190067894 A KR20190067894 A KR 20190067894A KR 1020197014674 A KR1020197014674 A KR 1020197014674A KR 20197014674 A KR20197014674 A KR 20197014674A KR 20190067894 A KR20190067894 A KR 20190067894A
Authority
KR
South Korea
Prior art keywords
connection
message
broker
topic
client
Prior art date
Application number
KR1020197014674A
Other languages
English (en)
Other versions
KR102209175B1 (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 미츠비시 쥬고 기카이 시스템 가부시키가이샤
Publication of KR20190067894A publication Critical patent/KR20190067894A/ko
Application granted granted Critical
Publication of KR102209175B1 publication Critical patent/KR102209175B1/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/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • H04L67/2809
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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
    • 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/226Delivery according to priorities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • 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
    • 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/141Setup of application sessions
    • H04L67/42
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • 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/222Monitoring or handling of messages using geographical location information, e.g. messages transmitted or received in proximity of a certain spot or area
    • 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/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

클라이언트(10)는, 브로커(20)와의 사이에서, 제1 메시지를 송수신하기 위한 제1 커넥션과, 제2 메시지를 송수신하기 위한 제2 커넥션을 확립시키는 접속 처리부(101)와, 상기 브로커(20)에 대하여, 제1 토픽을 지정하고, 당해 제1 토픽에 관련지어진 상기 제1 메시지를 상기 제1 커넥션을 이용하여 구독할 것을 요구하며, 제2 토픽을 지정하고, 당해 제2 토픽에 관련지어진 상기 제2 메시지를 상기 제2 커넥션을 이용하여 구독할 것을 요구하는 구독 요구부(102)와, 상기 브로커(20)에 대하여, 제3 토픽에 관련지은 상기 제1 메시지를 상기 제1 커넥션을 이용하여 송신하며, 제4 토픽에 관련지은 상기 제2 메시지를 상기 제2 커넥션을 이용하여 송신하는 메시지 송신부(103)를 구비한다.

Description

클라이언트, 브로커, 통신 시스템, 통신 방법 및 프로그램
본 발명은, 클라이언트, 브로커, 통신 시스템, 통신 방법 및 프로그램에 관한 것이다.
클라이언트와 서버의 사이에서 정보를 송수신하는 통신 시스템으로서, 예를 들면 특허문헌 1에서는, 브로커(중간 서버)가, 차재기 등의 클라이언트가 취득한 차량 정보 등을 수집하여 서버에 송신함과 함께, 서버로부터 송신된 메시지를 각 클라이언트에 전송하는 통신 시스템이 개시되어 있다.
특허문헌1: 일본 공개특허공보 2014-81872호
상술한 시스템에서는, 차재기 등의 클라이언트와 브로커와의 통신이 절단된 경우, 당해 클라이언트는 필요한 메시지를 송수신할 기회를 놓쳐 버리는 경우가 있다. 이로 인하여, 예를 들면 MQTT(Message Queue Telemetry Transport)와 같은 Publish/subscribe형의 프로토콜을 이용한 통신 시스템에서는, 브로커는, 클라이언트와의 통신이 절단되어 있는 동안에 서버로부터 송신된 메시지를 축적하고, 당해 클라이언트와의 통신을 재접속한 직후에 축적된 메시지를 일괄 전송하는 기능을 갖고 있다.
그러나, 축적된 메시지의 일괄 전송 중에, 예를 들면 클라이언트와 서버의 사이의 인증 처리 등, 즉시 송신 및 송달 확인이 필요한 메시지의 송수신이 요구된 경우, 일괄 전송이 완료될 때까지 당해 요구에 따른 메시지의 송수신을 행할 수 없다. 그 결과, 축적된 메시지의 용량이 크면, 즉시 송신 및 송달 확인이 필요한 메시지의 송수신이 지연되어, 요구되는 시간 내에 인증 처리 등을 행할 수 없게 될 가능성이 있다.
본 발명은, 이와 같은 과제를 감안하여 이루어진 것으로서, 재접속 시에 실행되는 축적된 메시지의 일괄 전송 처리에 의하여, 즉시 송신이 필요한 메시지의 송수신이 지연되는 것을 억제할 수 있는 클라이언트, 브로커, 통신 시스템, 통신 방법 및 프로그램을 제공한다.
본 발명의 제1 양태에 관한 클라이언트(10)는, 브로커(20)와 접속 가능하고, 당해 브로커를 통하여 서버(30)와의 사이에서 토픽별로 관련지어져 있는 메시지를 송수신하는 클라이언트로서, 상기 브로커와의 사이에서, 상기 메시지 중 제1 메시지를 송수신하기 위한 제1 커넥션과, 제2 메시지를 송수신하기 위한 제2 커넥션을 확립시키는 접속 처리부(101)와, 상기 브로커에 대하여, 제1 토픽을 지정하고, 당해 제1 토픽에 관련지어진 상기 제1 메시지를 상기 제1 커넥션을 이용하여 구독할 것을 요구하며, 제2 토픽을 지정하고, 당해 제2 토픽에 관련지어진 상기 제2 메시지를 상기 제2 커넥션을 이용하여 구독할 것을 요구하는 구독 요구부(102)와,
상기 브로커에 대하여, 제3 토픽에 관련지은 상기 제1 메시지를 상기 제1 커넥션을 이용하여 송신하며, 제4 토픽에 관련지은 상기 제2 메시지를 상기 제2 커넥션을 이용하여 송신하는 메시지 송신부(103)를 구비한다.
이와 같은 구성을 가짐으로써, 브로커와 클라이언트와의 재접속 후에, 브로커가 축적된 메시지의 일괄 전송 처리를 행하는 경우이더라도, 클라이언트는, 제1 커넥션 및 제2 커넥션 중 한쪽을 이용하여 일괄 전송된 메시지를 구독(수신)함과 함께, 다른 쪽을 이용하여 즉시 송신이 필요한 메시지의 송수신을 병행하여 행할 수 있다. 따라서, 클라이언트는, 일괄 전송된 메시지의 수신 처리에 의하여, 즉시 송신이 필요한 메시지의 송수신이 지연되는 것을 억제할 수 있다.
본 발명의 제2 양태에 의하면, 상술한 양태에 기재된 클라이언트에 있어서, 상기 접속 처리부는, 상기 브로커에 대하여 구독을 요구하고 있는 상기 제2 메시지를, 상기 제2 커넥션이 절단되어 있는 동안, 상기 브로커에 축적할 것을 요구한다.
이와 같은 구성을 가짐으로써, 클라이언트는, 브로커와의 제2 커넥션이 절단되어 있는 동안, 제2 메시지를 브로커에 축적시킬 수 있다. 그리고, 클라이언트는, 제2 커넥션이 재접속된 후에, 브로커로부터 축적된 제2 메시지의 일괄 전송을 받음으로써, 제2 메시지의 수신 누락을 억제하는 것이 가능해진다.
본 발명의 제3 양태에 의하면, 상술한 어느 한 양태에 기재된 클라이언트는, 상기 서버와의 사이에서 인증을 행하는 인증 처리부(104)를 더 구비하고, 상기 인증 처리부는, 상기 브로커와의 사이에서 상기 제1 커넥션이 확립된 후, 상기 제1 커넥션을 이용하여 상기 서버와의 인증에 이용되는 토픽에 관련지어진 상기 제1 메시지를 송수신한다.
이와 같은 구성을 가짐으로써, 클라이언트는, 브로커로부터 일괄 전송된 제2 메시지를 제2 커넥션을 이용하여 수신 중이더라도, 서버와의 인증 처리에 이용되는 즉시 송신이 필요한 제1 메시지를, 제1 커넥션을 이용하여 송수신할 수 있다. 이로써, 서버와의 인증 처리에 관한 메시지의 송수신이 지연되지 않아, 요구된 시간 내에 인증 처리가 완료되지 않는 등의 처리의 실패를 억제할 수 있다.
본 발명의 제4 양태에 의하면, 브로커는, 클라이언트 및 서버와 네트워크를 통하여 접속 가능하고, 상기 클라이언트 및 상기 서버 간에 있어서의 토픽별로 관련지어져 있는 메시지의 송수신을 중개하는 브로커로서, 상기 클라이언트와의 접속을 행할 때에 이용되는 접속 정보로서, 상기 메시지 중, 제1 메시지를 송수신하기 위한 제1 커넥션의 접속 정보와, 제2 메시지를 송수신하기 위한 제2 커넥션의 접속 정보를 상기 클라이언트별로 기억하는 접속 정보 기억부(201)와, 상기 클라이언트의 요구에 근거하여, 제1 토픽 및 상기 제1 커넥션의 접속 정보를 링크한 구독 정보와, 제2 토픽 및 상기 제2 커넥션의 접속 정보를 링크한 구독 정보를 기억하는 구독 정보 기억부(202)와, 상기 구독 정보에 근거하여, 상기 제1 커넥션이 확립되어 있는 동안, 상기 제1 토픽에 관련지어진 상기 제1 메시지를 상기 제1 커넥션을 이용하여 상기 클라이언트에 전송하고, 상기 제2 커넥션이 확립되어 있는 동안, 상기 제2 토픽에 관련지어진 상기 제2 메시지를 상기 제2 커넥션을 이용하여 전송하며, 상기 제2 커넥션이 절단되어 있는 동안, 상기 제2 토픽에 관련지어진 상기 제2 메시지를 축적하는 메시지 전송부(203)를 구비한다.
이와 같은 구성을 가짐으로써, 브로커는, 클라이언트와의 제1 커넥션 및 제2 커넥션이 절단되어 있는 동안, 제1 메시지는 축적하지 않고, 제2 메시지를 축적한다. 이로 인하여, 브로커는, 클라이언트와 제1 커넥션 및 제2 커넥션이 재접속된 후, 제1 메시지의 일괄 전송은 행하지 않고, 제2 메시지의 일괄 전송을 행할 수 있다. 그 결과, 브로커는, 클라이언트와 제1 커넥션 및 제2 커넥션이 재접속된 후, 제2 커넥션을 이용하여 축적된 제2 메시지의 일괄 전송을 계속한 채로, 제1 커넥션을 이용하여 즉시 송신이 필요한 제1 메시지의 전송을 병행하여 행할 수 있다. 따라서, 브로커는, 축적된 제2 메시지의 일괄 전송 처리에 의하여, 즉시 송신이 필요한 제1 메시지의 송수신이 지연되는 것을 억제할 수 있다.
본 발명의 제5 양태에 의하면, 통신 시스템은, 상술한 어느 한 양태에 기재된 클라이언트와, 상술한 양태에 기재된 브로커와, 상기 브로커를 통하여 상기 클라이언트와의 사이에서 메시지의 송수신을 행하는 서버를 구비한다.
본 발명의 제6 양태에 의하면, 통신 방법은, 브로커를 통하여 클라이언트와 서버의 사이에서 토픽별로 메시지를 송수신하는 통신 방법으로서, 상기 브로커와 상기 클라이언트의 사이에서, 상기 메시지 중 제1 메시지를 송수신하기 위한 제1 커넥션과, 제2 메시지를 송수신하기 위한 제2 커넥션을 확립시키는 단계와, 상기 브로커에 대하여, 제1 토픽을 지정하고, 당해 제1 토픽에 관련지어진 상기 제1 메시지를 상기 제1 커넥션을 이용하여 구독할 것을 요구하며, 제2 토픽을 지정하고, 당해 제2 토픽에 관련지어진 상기 제2 메시지를 상기 제2 커넥션을 이용하여 구독할 것을 요구하는 단계와, 상기 브로커에 대하여, 제3 토픽에 관련지은 상기 제1 메시지를 상기 제1 커넥션을 이용하여 송신하며, 제4 토픽에 관련지은 상기 제2 메시지를 상기 제2 커넥션을 이용하여 송신하는 단계를 갖는다.
본 발명의 제7 양태에 의하면, 브로커와 접속 가능하고, 당해 브로커를 통하여 서버와의 사이에서 토픽별로 메시지를 송수신하는 클라이언트의 컴퓨터를 기능시키는 프로그램은, 당해 컴퓨터를, 상기 브로커와의 사이에서, 상기 메시지 중 제1 메시지를 송수신하기 위한 제1 커넥션과, 제2 메시지를 송수신하기 위한 제2 커넥션을 확립시키는 접속 처리부와, 상기 브로커에 대하여, 제1 토픽을 지정하고, 당해 제1 토픽에 관련지어진 상기 제1 메시지를 상기 제1 커넥션을 이용하여 구독할 것을 요구하며, 제2 토픽을 지정하고, 당해 제2 토픽에 관련지어진 상기 제2 메시지를 상기 제2 커넥션을 이용하여 구독할 것을 요구하는 구독 요구부와, 상기 브로커에 대하여, 제3 토픽에 관련지은 상기 제1 메시지를 상기 제1 커넥션을 이용하여 송신하며, 제4 토픽에 관련지은 상기 제2 메시지를 상기 제2 커넥션을 이용하여 송신하는 메시지 송신부로서 기능시킨다.
상술한 클라이언트, 브로커, 통신 시스템, 통신 방법 및 프로그램에 의하면, 재접속 시에 실행되는 축적된 메시지의 일괄 전송 처리에 의하여, 즉시 송신이 필요한 메시지의 송수신이 지연되는 것을 억제할 수 있다.
도 1은 본 발명의 일 실시형태에 관한 통신 시스템의 전체 구성을 나타내는 도이다.
도 2는 본 발명의 일 실시형태에 관한 클라이언트 및 브로커의 기능 구성을 나타내는 도이다.
도 3은 본 발명의 일 실시형태에 관한 클라이언트의 구독 리스트의 예를 나타내는 도이다.
도 4는 본 발명의 일 실시형태에 관한 클라이언트의 발행 리스트의 예를 나타내는 도이다.
도 5는 본 발명의 일 실시형태에 관한 브로커의 접속 정보 테이블의 예를 나타내는 도이다.
도 6은 본 발명의 일 실시형태에 관한 브로커의 구독 정보 테이블의 예를 나타내는 도이다.
도 7은 본 발명의 일 실시형태에 관한 클라이언트의 접속 처리를 설명하기 위한 처리 플로이다.
도 8은 본 발명의 일 실시형태에 관한 클라이언트의 구독 처리를 설명하기 위한 처리 플로이다.
도 9는 본 발명의 일 실시형태에 관한 클라이언트 및 브로커의 접속 감시 처리를 설명하기 위한 처리 플로이다.
도 10은 본 발명의 일 실시형태에 관한 브로커의 메시지 처리를 설명하기 위한 제1 처리 플로이다.
도 11은 본 발명의 일 실시형태에 관한 브로커의 메시지 처리를 설명하기 위한 제2 처리 플로이다.
도 12는 본 발명의 일 실시형태에 관한 클라이언트 및 브로커의 하드웨어 구성의 예를 나타내는 도이다.
(통신 시스템의 전체 구성)
이하, 본 발명의 일 실시형태에 관한 통신 시스템(1)에 대하여, 도 1을 참조하면서 설명한다.
도 1은, 본 발명의 일 실시형태에 관한 통신 시스템의 전체 구성을 나타내는 도이다.
본 실시형태에 있어서, 통신 시스템(1)은, 예를 들면 MQTT를 이용한 Publish/subscribe형의 통신 시스템이다.
도 1에 나타내는 바와 같이, 통신 시스템(1)은, 복수의 클라이언트(10a, 10b, 10c…)와, 브로커(20)와, 서버(30)를 구비하고 있다. 또한, 이하의 설명에 있어서, 복수의 클라이언트(10a, 10b, 10c…)를 총칭하여, 클라이언트(10)라고도 기재한다.
클라이언트(10)는, 예를 들면 스마트폰 등의 휴대 통신 단말, 차량에 탑재되는 차재기 등이다. 클라이언트(10)는, 무선 통신에 의하여 브로커(20)와 접속 가능하고, 브로커(20)를 통하여 서버(30)와의 사이에서 메시지를 송수신한다.
브로커(20)는, 정보 센터(2)에 설치되고, 클라이언트(10)와는 무선 통신에 의하여 접속 가능하며, 서버(30)와는 유선 통신에 의하여 상시 접속되어 있다. 브로커(20)는, 클라이언트(10)와 서버(30)의 사이의 메시지의 송수신을 중개한다.
서버(30)는, 브로커(20)와 유선 통신 등에 의하여 상시 접속되어 있고, 브로커(20)를 통하여 클라이언트(10)와의 사이에서 메시지를 송수신한다.
또한, 서버(30)는, 도 1에 나타내는 바와 같이, 브로커(20)와 동일한 정보 센터(2) 내에 설치된 서버(30a)를 갖고 있다. 또, 서버(30)는, 정보 센터(2) 외에 설치된 서버(외부 서버)(30b)를 갖고 있어도 된다. 이때, 서버(30a) 및 서버(30b)는, 각각 다른 기능을 갖고 있어도 된다. 예를 들면, 서버(30a)는 클라이언트(10)가 유료 도로를 사용했을 때의 사용료를 과금하는 기능을 갖고, 서버(30b)는 도로별 정체 정보를 송신하는 기능을 갖고 있어도 된다.
또한, 서버(30)는 하나의 서버(30a)만을 갖고, 서버(30a)가 복수의 기능을 갖도록 해도 된다.
본 실시형태의 통신 시스템(1)에서는, 차재기(10) 및 서버(30)는, 메시지를 브로커(20)에 송신(발행)하는 퍼블리셔로서 기능함과 함께, 브로커(20)로부터 메시지를 수신(구독)하는 서브스크라이버(클라이언트)로서도 기능한다. 그리고, 브로커(20)는, 차재기(10) 및 서버(30)로부터 메시지를 수집함과 함께, 차재기(10) 및 서버(30)가 구독을 요구한 메시지를 당해 차재기(10) 및 서버(30)에 전송함으로써, 차재기(10)와 서버(30)의 사이의 메시지의 송수신을 중개한다.
또한, 차재기(10) 및 서버(30)는, 브로커(20)에 메시지를 송신할 때, 및 메시지의 구독을 브로커(20)에 요구할 때, 토픽을 지정하고, 당해 토픽에 관련지어진 메시지의 송신 및 구독의 요구를 행한다. 브로커(20)는, 메시지와 관련지어진 토픽과, 차재기(10) 및 서버(30)로부터 구독의 요구 시에 지정된 토픽을 대조함으로써, 각 메시지의 전송처가 되는 차재기(10) 및 서버(30)를 특정한다.
토픽이란, 메시지에 포함되는 정보의 속성을 나타내는 것이며, 메시지마다 하나의 토픽이 지정된다. 예를 들면, 클라이언트(10)가 메시지를 송신할 때에 지정하는 토픽으로서는, 클라이언트(10)의 현재 위치를 나타내는 토픽, 이동 속도를 나타내는 토픽, 가속도를 나타내는 토픽 등이 있다. 클라이언트(10)는, 예를 들면, 현재 위치를 나타내는 토픽을 지정하고, 클라이언트(10)의 현재 위치의 정보(위도, 경도 등)를 포함하는 메시지를 브로커(20)에 송신한다.
또, 예를 들면, 서버(30)가 메시지를 송신할 때에 지정하는 토픽으로서는, 도로별 정체 정보를 나타내는 토픽, 서비스 에어리어 등의 시설 정보를 나타내는 토픽, 지역별 이벤트 정보를 나타내는 토픽 등이 있다. 서버(30)는, 예를 들면, 도로 X의 정체 정보를 나타내는 토픽을 지정하고, 당해 도로 X의 정체 정보(혼잡 상황, 교통류 등)를 포함하는 메시지를 브로커(20)에 송신한다.
(클라이언트의 기능 구성)
다음으로, 도 2~도 4를 참조하여, 클라이언트(10)의 기능 구성을 설명한다.
도 2는, 본 발명의 일 실시형태에 관한 클라이언트 및 브로커의 기능 구성을 나타내는 도이다.
도 2에 나타내는 바와 같이, 클라이언트(10)는, 접속 처리부(101)와, 구독 요구부(102)와, 메시지 송신부(103)와, 인증 처리부(104)와, 접속 상태 감시부(105)와, 기억 매체(110)를 구비하고 있다.
접속 처리부(101)는, 브로커(20)와의 사이에서 무선 통신 접속을 행한다.
본 실시형태에 있어서, 접속 처리부(101)는, 브로커(20)와의 사이에서 커넥션 A(제1 커넥션)와 커넥션 B(제2 커넥션)와의 2개의 무선 통신의 접속을 행한다.
본 실시형태에 있어서, 커넥션 A는, 즉시 송신, 송달 확인, 암호화가 필요한 메시지를 송수신하기 위하여 이용된다. 예를 들면, 클라이언트(10)가 서버(30), 또는 서버(30)가 갖는 기능에 액세스하기 위한 인증 처리, 유료 도로의 사용 요금 등을 지불하기 위한 과금 처리 등에서는, 소정 기간 내에 필요한 메시지의 송수신을 행하지 않으면 처리가 실패한다. 즉, 소정 기간 내에 인증 처리를 완료할 수 있도록 서버(30) 및 클라이언트(10) 간에 필요한 메시지를 즉시 송신할 것, 서버(30)와 클라이언트(10)의 사이에서 확실하게 메시지가 도착하고 있는지를 확인하기 위하여 송달 확인 등을 행할 것이 요구된다. 또, 인증 처리, 과금 처리 등에서 송수신하는 메시지에는, 클라이언트(10)를 특정하는 정보 등이 포함되기 때문에, 암호화한 후에 메시지의 송수신을 행할 필요가 있다. 커넥션 A는, 이와 같이 즉시 송신, 송달 확인, 암호화가 필요한 인증 정보 토픽, 과금 정보 토픽 등에 관련지어진 메시지를 송수신하기 위하여 이용된다. 또한, 이후의 설명에서는, 즉시 송신, 송달 확인, 암호화가 필요한 메시지를 총칭하여, "지급(至急) 메시지(제1 메시지)"라고 칭하고, 지급 메시지에 부여되는 토픽을 "지급 토픽"이라고 칭한다.
한편, 커넥션 B는, 즉시 송신, 송달 확인, 암호화가 필요하지 않은 메시지를 송수신하기 위하여 이용된다. 예를 들면, 클라이언트(10)는, 현재 위치, 이동 속도, 가속도 등의 클라이언트(10)의 이동 상태를 나타내는 이동 정보를 정기적(예를 들면 10초마다)으로 취득하여 클라이언트별 이동 정보 토픽(현재 위치 토픽, 이동 속도 토픽, 가속도 토픽 등)에 관련지어진 메시지를 브로커(20)에 송신한다. 서버(30)는 각 클라이언트(10)의 이동 정보 토픽에 관련지어진 메시지를 구독하여 수집함과 함께, 이동 정보에 근거하여 도로별 정체 정보를 소정 기간(예를 들면 1시간)마다 생성하여 브로커(20)에 송신한다. 또, 클라이언트(10)는 예를 들면 주행 경로에 포함되는 도로의 정체 정보 토픽에 관련지어진 메시지를 구독하고, 필요에 따라서 새로운 이동 경로의 제안 등을 행한다. 이와 같은 이동 정보 토픽, 정체 정보 토픽에 관련지어진 메시지에서는, 메시지가 클라이언트(10) 및 서버(30)에 확실하게 도착했는지 여부를 확인할 필요는 없다. 또, 이와 같은 메시지의 송수신이 지연된 경우이더라도, 클라이언트(10) 및 서버(30)에서는 처리가 실패하는 등의 문제가 발생하지 않는다. 커넥션 B는, 이와 같이, 즉시 송신, 송달 확인, 암호화가 필요하지 않은 이동 정보 토픽, 정체 정보 토픽 등에 관련지어진 메시지를 송수신하기 위하여 이용된다. 또한, 이후의 설명에서는, 즉시 송신, 송달 확인, 암호화가 필요하지 않은 메시지를 총칭하여, "통상 메시지(제2 메시지)"라고 칭하고, 통상 메시지에 부여되는 토픽을 "통상 토픽"이라고 칭한다.
또한, 각 토픽에 관련지어진 메시지를 "지급 메시지" 및 "통상 메시지" 중 어느 것으로 취급할지는, 통신 시스템(1)별로 변경해도 된다. 예를 들면, 다른 실시형태에서는, 현재 위치 토픽에 관련지어진 메시지에는 암호화가 필요하다고 하여, "지급 메시지"로서 취급해도 된다.
구독 요구부(102)는, 브로커(20)에 대하여, 토픽을 지정하고, 당해 토픽에 관련지어진 메시지의 구독을 요구한다. 또한, 본 실시형태의 통신 시스템(1)에서는, 서버(30) 및 클라이언트(10)의 사이에서, 미리 토픽을 결정되어 있고, 구독 요구부(102)는, 미리 결정되어 있는 토픽으로부터 필요한 토픽을 지정하여 구독 요구를 행하도록 해도 된다.
도 3은, 본 발명의 일 실시형태에 관한 클라이언트의 구독 리스트의 예를 나타내는 도이다.
본 실시형태에서는, 구독 요구부(102)는, 도 3에 나타내는 바와 같이, 구독을 요구하는 정보를 지정하는 "토픽"과, 당해 토픽에 관련지어진 메시지의 구독을 행할 때에 이용하는 "접속 종별"을 링크한 구독 리스트(D11)를 기억 매체(110)에 기억하고 있다.
"접속 종별"이란, 커넥션 A 및 커넥션 B 중 어느 것을 이용하여 메시지를 구독하는지를 나타내는 정보이다. 구독 요구부(102)는, 메시지의 내용에 근거하여 접속 종별을 설정한다. 구독 요구부(102)는, 예를 들면, 인증 처리, 과금 처리 등을 행하기 위한 메시지의 구독을 요구하는 경우는, 이들 메시지는 지연 없이 구독할 필요가 있는 지급 메시지이다. 이로 인하여, 구독 요구부(102)는, 지급 메시지의 구독에 사용되는 지급 토픽(제1 토픽)에 대해서는, 접속 종별로 커넥션 A를 설정한다. 또, 예를 들면, 구독 요구부(102)는, 도로별 정체 정보 등의 통상 메시지의 구독에 사용되는 통상 토픽(제2 토픽)에 대해서는, 접속 종별로 커넥션 B를 설정한다. 즉, 구독 요구부(102)는, 브로커(20)에 대하여, 지급 토픽(제1 토픽)을 지정하여 구독 요구를 행하는 경우, 당해 지급 토픽에 관련지어진 지급 메시지를 커넥션 A를 이용하여 구독할 것을 요구한다. 또, 구독 요구부(102)는, 브로커(20)에 대하여, 통상 토픽(제2 토픽)을 지정하여 구독 요구를 행하는 경우, 당해 통상 토픽에 관련지어진 통상 메시지를 커넥션 B를 이용하여 구독할 것을 요구한다.
또한, 구독 요구부(102)는, 구독이 불필요해진 토픽을 구독 리스트(D11)로부터 삭제하도록 해도 된다.
구독 요구부(102)는, 커넥션 A 및 커넥션 B의 확립 시, 및 구독 리스트(D11)의 갱신 시 중 적어도 한쪽에 있어서, 브로커(20)에 대하여 토픽과, 접속 정보를 지정하고, 각 토픽에 관련지어진 메시지의 구독을 요구한다.
메시지 송신부(103)는, 메시지의 내용에 따른 접속 종별(커넥션 A 및 커넥션 B)을 이용하여, 메시지별로 토픽을 관련지은 메시지를 브로커(20)에 송신한다. 또한, 본 실시형태의 통신 시스템(1)에서는, 서버(30) 및 클라이언트(10)의 사이에서, 미리 토픽이 결정되어 있고, 메시지 송신부(103)는, 미리 결정되어 있는 토픽으로부터 필요한 토픽을 관련지은 메시지를 브로커(20)에 송신한다. 또, 본 실시형태에 있어서, 메시지 송신부(103)는, 커넥션 A를 이용하여 송신하는 메시지는 암호화를 한 후에 송신을 행하고, 커넥션 B를 이용하여 송신하는 메시지는 암호화를 하지 않고 송신을 행한다.
도 4는, 본 발명의 일 실시형태에 관한 클라이언트의 발행 리스트의 예를 나타내는 도이다.
본 실시형태에서는, 메시지 송신부(103)는, 도 4에 나타내는 바와 같이, 송신하는 메시지의 내용에 따라 미리 정해진 "토픽"과, 당해 토픽을 관련지은 메시지를 송신할 때에 이용하는 "접속 종별"을 링크한 발행 리스트(D12)를 기억 매체(110)에 기억하고 있다.
예를 들면, 인증 처리, 과금 처리 등을 행하기 위한 메시지를 송신하는 경우는, 이들 메시지는 지연 없이 송신할 필요가 있는 지급 메시지이다. 이로 인하여, 메시지 송신부(103)는, 지급 메시지의 송신에 사용되는 지급 토픽(제3 토픽)에 대해서는, 접속 종별로 커넥션 A를 설정한다. 또, 예를 들면, 메시지 송신부(103)는, 클라이언트(10)의 이동 속도 등의 통상 메시지의 송신에 사용되는 통상 토픽(제4 토픽)에 대해서는, 접속 종별로 커넥션 B를 설정한다. 즉, 메시지 송신부(103)는, 브로커(20)에 대하여, 지급 토픽(제3 토픽)을 관련지은 지급 메시지를 커넥션 A를 이용하여 송신한다. 또, 메시지 송신부(103)는, 브로커(20)에 대하여, 통상 토픽(제4 토픽)을 관련지은 통상 메시지를 커넥션 B를 이용하여 송신한다.
또한, 메시지 송신부(103)는, 송신이 불필요해진 토픽을 발행 리스트(D12)로부터 삭제하도록 해도 된다.
인증 처리부(104)는, 접속 처리부(101)가 브로커(20)와의 접속을 완료한 후에, 필요에 따라서 서버(30)에 액세스하기 위한 인증, 또는 서버(30)가 갖는 기능에 액세스하기 위한 인증을 요구하는 처리를 행한다.
또한, 본 실시형태에 있어서, 인증 처리부(104)는, 서버(30)와의 인증 처리에 관련하는 토픽은 "지급 토픽"으로서 취급한다. 이로 인하여, 인증 처리부(104)가 송신하는 메시지는, 모두 커넥션 A를 이용하여, 암호화된 후에 송신된다. 또, 인증 처리부(104)가 구독하는 메시지는, 모두 커넥션 A를 이용하여 구독되고, 인증 처리부(104)에 있어서 복호화된다.
접속 상태 감시부(105)는, 커넥션 A에 있어서의 브로커와의 무선 통신 접속의 상태, 및 커넥션 B에 있어서의 브로커(20)와의 무선 통신 접속의 상태를 감시한다. 본 실시형태에서는, 접속 상태 감시부(105)는, 커넥션 A 및 커넥션 B가 정상적으로 접속되어 있는지 여부를 감시한다.
기억 매체(110)는, 브로커(20)와의 통신에 관련하는 각종 정보를 기억한다. 또, 기억 매체(110)에는, 구독 요구부(102)가 갱신하는 구독 리스트(D11)와, 메시지 송신부(103)가 갱신하는 발행 리스트(D12)가 기억되어 있다.
(브로커의 기능 구성)
다음으로, 도 2 및 도 5~도 6을 참조하여, 브로커(20)의 기능 구성을 설명한다.
도 2에 나타내는 바와 같이, 브로커(20)는, MQTT 기능부(200)와 기억 매체(210)를 구비하고 있다. 또, MQTT 기능부(200)는, 접속 정보 기억부(201)와, 구독 정보 기억부(202)와, 메시지 전송부(203)와, 클라이언트 접속 감시부(204)를 갖고 있다.
도 5는, 본 발명의 일 실시형태에 관한 브로커의 접속 정보 테이블의 예를 나타내는 도이다.
접속 정보 기억부(201)는, 도 5에 나타내는 바와 같이, 클라이언트(10)와의 접속에 이용되는 접속 정보를 접속 정보 테이블(D21)에 추가하고, 기억 매체(210)에 기억시킨다.
접속 정보 테이블(D21)은, 클라이언트(10)를 특정 가능한 "클라이언트 ID"와, "접속 종별"과, 당해 클라이언트(10)와의 접속에 이용되는 "접속 ID" 및 "패스워드"와, "메시지 축적 필요 여부"와, "구독 정보 기억 필요 여부"를 관련지은 접속 정보를, 클라이언트별로 축적하는 테이블이다. "접속 종별"은, 클라이언트(10)가 지정하는 접속 종별로서, 커넥션 A 및 커넥션 B 중 어느 하나가 설정된다. "접속 ID" 및 "패스워드"는, 클라이언트(10)와 접속 종별과의 조합을 식별하기 위한 정보이며, 당해 조합별로 다른 ID 및 패스워드가 설정되어 있다. "메시지 축적 필요 여부"는, 클라이언트(10)가 지정하는 설정으로서, 클라이언트(10)와의 접속이 절단되어 있는 동안에 브로커(20)가 수집한 메시지 중, 클라이언트(10)가 구독을 요구하고 있는 메시지를 축적하고, 당해 클라이언트(10)와 재접속되었을 때에 축적된 메시지를 일괄 송신(일괄 전송)할지 여부를 나타내는 설정이다. "구독 정보 기억 필요 여부"는, 클라이언트(10)가 지정하는 설정으로서, 클라이언트(10)와 브로커(20)와의 접속이 절단된 경우, 클라이언트(10)로부터 구독 요구된 토픽을 포함하는 구독 정보(후술)를 기억하는지 여부를 나타내는 설정이다.
또한, 다른 실시형태에서는, "클라이언트 ID" 및 "접속 종별"을 생략하고, "접속 ID"만을 기억하는 양태여도 된다. 이 경우, 접속 정보 기억부(201)는, 하나의 클라이언트(예를 들면 클라이언트 10a)가 2개의 접속 종별에 의하여 브로커(20)와의 접속을 행하는 것을 인식하지 않고, 접속 ID별로 다른 접속을 행하는 것만을 인식하도록 해도 된다.
도 6은, 본 발명의 일 실시형태에 관한 브로커의 구독 정보 테이블의 예를 나타내는 도이다.
구독 정보 기억부(202)는, 도 6에 나타내는 바와 같이, 토픽과, 당해 토픽의 구독을 요구하고 있는 전송처인 클라이언트(10) 및 서버(30)를 특정 가능한 접속 정보를 링크한 구독 정보를 구독 정보 테이블(D22)에 추가하고, 기억 매체(210)에 기억시킨다. 또, 구독 정보 기억부(202)는, 클라이언트(10)와의 접속이 절단된 경우, 또한 접속 정보 테이블(D21)에 있어서 당해 클라이언트(10)의 "구독 설정 기억 필요 여부"가 "불필요"인 경우, 구독 정보 테이블(D22)로부터 당해 클라이언트(10)에 관련하는 구독 정보를 삭제한다.
구독 정보 테이블(D22)은, 클라이언트(10) 및 서버(30)를 특정 가능한 접속 정보와, 당해 클라이언트(10) 및 서버(30)가 구독을 요구하고 있는 "토픽"을 관련지어 축적하는 테이블이다. 또한, 본 실시형태에 있어서, 구독 정보 테이블(D22)에는, 접속 정보의 일부, 구체적으로는, "클라이언트 ID"와 "접속 종별"이 기록되어 있다. 또, 다른 실시형태에 있어서는, 구독 정보 테이블(D22)에는, 접속 정보의 다른 정보("접속 ID", "패스워드" 등)가 추가로 기록되어 있어도 된다.
또한, "클라이언트 ID"가 서버(30)를 나타내는 경우, "접속 종별"은 설정되어 있지 않아도 된다. 또, 다른 실시형태에서는, "클라이언트 ID" 및 "접속 종별" 대신에, "접속 ID"를 기억하는 양태여도 된다.
메시지 전송부(203)는, 클라이언트(10) 및 서버(30)로부터 송신(발행)된 메시지를, 구독 정보 테이블(D22)에 근거하여, 당해 메시지의 구독을 요구하고 있는 전송처인 클라이언트(10) 및 서버(30)에 전송한다. 메시지 전송부(203)는, 각 메시지의 구독을 요구하고 있는 전송처를, 각 메시지에 지정된 토픽을 키로 하여, 구독 정보 테이블(D22)로부터 검색하여 추출한다. 그리고, 메시지 전송부(203)는, 추출한 전송처에 대하여, 당해 토픽에 관련지어진 메시지를 전송한다. 또한, 전송처가 클라이언트(10)인 경우는, 구독 정보 테이블(D22)에 근거하여, 커넥션 A 및 커넥션 B 중 어느 하나를 이용하여, 클라이언트(10)에 메시지를 송신한다.
또, 메시지 전송부(203)는, 메시지의 구독을 요구하고 있는 클라이언트(10)와의 접속이 절단되어 있는 경우, 또한 접속 정보 테이블(D21)의 "메시지 축적 필요 여부"가 "필요"로 설정되어 있는 경우, 당해 클라이언트가 구독을 요구하고 있는 토픽에 대한 메시지를 기억 매체(210)에 기억하여 축적한다. 그리고, 메시지 전송부(203)는, 당해 클라이언트(10)와 재접속되었을 때에, 축적된 메시지를 기억 매체(210)로부터 독출하여 일괄 전송한다.
클라이언트 접속 감시부(204)는, 클라이언트(10)와의 접속 상태를 감시한다. 본 실시형태에서는, 클라이언트 접속 감시부(204)는, 클라이언트(10)의 커넥션 A 및 커넥션 B가, 각각 정상적으로 접속되어 있는지 여부를 감시한다.
기억 매체(210)에는, 클라이언트(10) 및 서버(30)로부터 송신된 메시지가 기억됨과 함께, 접속 정보 기억부(201)가 갱신하는 접속 정보 테이블(D21)과, 구독 정보 기억부(202)가 갱신하는 구독 정보 테이블(D22)이 기억되어 있다.
(클라이언트의 기동 시의 처리)
다음으로, 도 7~도 8을 참조하여 클라이언트(10)의 접속 처리의 일련의 흐름을 설명한다.
도 7은, 본 발명의 일 실시형태에 관한 클라이언트의 접속 처리를 설명하기 위한 처리 플로이다.
도 8은, 본 발명의 일 실시형태에 관한 클라이언트의 구독 처리를 설명하기 위한 처리 플로이다.
도 7에 나타내는 바와 같이, 클라이언트(10)가 기동, 또는 무선 통신 권내에 진입하면, 클라이언트(10)는 무선 통신 가능 상태가 된다(S101).
클라이언트(10)가 무선 통신 가능 상태가 되면, 클라이언트(10)의 접속 처리부(101)는, 브로커(20)와 커넥션 A의 접속 처리를 행한다(스텝 S102).
구체적으로는, 접속 처리부(101)는, 커넥션 A의 접속 정보("클라이언트 ID", "접속 종별(커넥션 A)", "접속 ID", "패스워드", "메시지 축적 필요 여부" 및 "구독 정보 기억 필요 여부")를 포함하는 접속 요구 메시지를 브로커(20)에 송신한다. 또한, 본 실시형태에 있어서, 커넥션 A의 "메시지 축적 필요 여부"는 항상 "불필요(메시지를 축적하지 않음)"로 설정된다. 이로써, 커넥션 A에서는, 브로커(20)는 메시지의 축적을 행하지 않고, 또 축적된 메시지의 일괄 전송이 행해지는 일이 없기 때문에, 지급 메시지의 송수신을 지연 없이 행할 수 있게 된다. 그리고, 접속 처리부(101)는, 브로커(20)로부터 접속 요구 메시지에 대한 응답 메시지를 수신하면, 커넥션 A의 접속 처리를 종료하고 다음 스텝으로 진행된다.
커넥션 A가 확립되면, 클라이언트(10)의 구독 요구부(102)는, 기억 매체(106)에 기억되어 있는 구독 리스트(D11)(도 3)에 근거하여, 커넥션 A를 이용하여 구독하는 메시지의 구독 처리를 행한다(스텝 S103).
구체적으로는, 구독 요구부(102)는, 도 8에 나타내는 바와 같이, 먼저, 브로커(20)와의 커넥션 A의 접속이 처음인지 여부를 판단한다(스텝 S111). 브로커(20)와의 커넥션 A의 접속이 처음이 아닌 경우(스텝 S111: NO), 구독 요구부(102)는, 당해 커넥션 A의 "구독 정보 기억 필요 여부"가 "불필요(기억하지 않음)"로 설정되어 있는지 여부를 판단한다(스텝 S112). 커넥션 A의 "구독 정보 기억 필요 여부"가 "필요"로 설정되어 있는 경우(스텝 S112: NO), 브로커(20)에는 클라이언트(10)의 커넥션 A에 관련하는 구독 정보가 기억되어 있기 때문에, 구독 요구부(102)는 구독 처리를 종료한다.
한편, 브로커(20)와의 커넥션 A의 접속이 처음인 경우(스텝 S111: YES), 또는 커넥션 A의 "구독 정보 기억 필요 여부"가 "불필요"로 설정되어 있는 경우(스텝 S112: YES), 브로커(20)에는 클라이언트(10)의 커넥션 A에 관련하는 구독 정보가 기억되어 있지 않기 때문에, 구독 요구부(102)는, 구독 요구 메시지를 브로커(20)에 송신한다(스텝 S113). 이때, 구독 요구부(102)는, 구독 리스트(D11)에 기억되어 있는 토픽 중, "접속 종별"이 "커넥션 A"인 토픽을 추출한다. 그리고, 구독 요구부(102)는, 추출한 "토픽"과, "클라이언트 ID" 및 "접속 종별(커넥션 A)"을 포함하는 구독 요구 메시지를 브로커(20)에 송신한다.
도 3의 예에서는, 구독 요구부(102)는, 구독 리스트(D11)로부터 "접속 종별"이 "커넥션 A"인 토픽으로서, 인증 정보 토픽, 과금 정보 토픽을 추출한다. 그리고, 구독 요구부(102)는, 추출한 인증 정보 토픽, 과금 정보 토픽을 지정하고, 각 토픽에 관련지어진 메시지를 커넥션 A를 이용하여 구독할 것을 요구하는 메시지를 브로커(20)에 송신한다.
구독 요구부(102)는, 브로커(20)로부터 구독 요구 메시지에 대한 응답 메시지를 수신하면, 커넥션 A의 구독 처리를 종료하고 다음 스텝으로 진행된다.
다음으로, 도 7에 나타내는 바와 같이, 인증 처리부(104)는, 서버(30)에 액세스하기 위하여, 또는 서버(30)가 갖는 기능에 액세스하기 위한 인증 처리를 행한다(스텝 S104).
구체적으로는, 인증 처리부(104)는, 기억 매체(110)에 기억되어 있는 발행 리스트(D12)에 근거하여, 클라이언트(10)의 인증 정보 토픽을 지정하고, 커넥션 A를 이용하여 메시지를 송신한다. 이때, 인증 처리부(104)는, 당해 메시지를 암호화하여 송신한다.
또, 인증 처리부(104)는, 브로커(20)로부터 클라이언트(10)의 인증 정보 토픽에 관련지어진 메시지(서버(30)로부터 송신된 응답 메시지)를 수신하면, 당해 메시지를 복호화하여 메시지의 내용을 해석한다. 인증 처리부(104)는, 서버(30)로부터의 메시지에 대한 응답이 필요한 경우는, 추가로 인증 정보 토픽에 관련지어진 메시지를, 암호화한 후에, 커넥션 A를 이용하여 송신한다.
이와 같이, 클라이언트(10)의 인증에 관련하는 토픽에 대한 메시지를 브로커(20)를 통하여 서버와의 사이에서 송수신함으로써, 인증 처리부(104)는 서버(30)와의 인증 처리를 행한다. 인증 처리부(104)가 인증 처리를 완료하면, 다음 스텝으로 진행된다.
또, 클라이언트(10)가 무선 통신 가능 상태가 되면, 클라이언트(10)의 접속 처리부(101)는, 브로커(20)와 커넥션 B의 접속 처리를 행한다(스텝 S105).
구체적으로는, 접속 처리부(101)는, 커넥션 B의 접속 정보("클라이언트 ID", "접속 종별(커넥션 B)", "접속 ID", "패스워드", "메시지 축적 필요 여부" 및 "구독 정보 기억 필요 여부")를 포함하는 접속 요구 메시지를 브로커(20)에 송신한다. 또한, 본 실시형태에서는, 커넥션 B의 "메시지 축적 필요 여부"는 "필요(축적됨)"가 설정되어 있는 양태로 설명한다. 이로써, 클라이언트(10)는, 브로커(20)와의 커넥션 B가 절단되어 있는 동안에 송신된 메시지 중, 클라이언트(10)가 구독을 요구한 토픽에 관련지어진 메시지를 브로커(20)에 축적시켜 두고, 커넥션 B의 재접속 후에 축적된 메시지를 일괄 수신할 수 있다. 또한, 다른 실시형태에서는, 클라이언트별로 "메시지 축적 필요 여부"의 설정을 변경해도 된다.
그리고, 접속 처리부(101)는, 브로커(20)로부터 접속 요구 메시지에 대한 응답 메시지를 수신하면, 커넥션 B의 접속 처리를 종료하고 다음 스텝으로 진행된다.
클라이언트(10)의 구독 요구부(102)는, 커넥션 B가 확립되면, 기억 매체(106)에 기억되어 있는 구독 리스트(D11)에 근거하여, 커넥션 B를 이용하여 구독하는 토픽의 구독 처리를 행한다(스텝 S106).
구체적으로는, 구독 요구부(102)는, 커넥션 A의 구독 처리(스텝 S103)와 동일하게, 도 8에 나타내는 브로커(20)와의 커넥션 B의 접속이 처음인지 여부의 판단(스텝 S111), 및 당해 커넥션 B의 "구독 정보 기억 필요 여부"가 "불필요(기억하지 않음)"로 설정되어 있는지 여부의 판단(스텝 S112)을 행한다. 브로커(20)와의 커넥션 B의 접속이 처음이 아닌 경우(스텝 S111: NO), 또한 커넥션 B의 "구독 정보 기억 필요 여부"가 "필요"로 설정되어 있는 경우(스텝 S112: NO), 브로커(20)에는 클라이언트(10)의 커넥션 B에 관련하는 구독 정보가 기억되어 있기 때문에, 구독 요구부(102)는 구독 처리를 종료한다.
한편, 브로커(20)와의 커넥션 B의 접속이 처음인 경우(스텝 S111: YES), 또는 커넥션 B의 "구독 정보 기억 필요 여부"가 "불필요"로 설정되어 있는 경우(스텝 S112: YES), 브로커(20)에는 클라이언트(10)의 커넥션 B에 관련하는 구독 정보가 기억되어 있지 않기 때문에, 구독 요구부(102)는, 구독 요구 메시지를 브로커(20)에 송신한다(스텝 S113). 이때, 구독 요구부(102)는, 구독 리스트(D11)에 기억되어 있는 토픽 중, "접속 종별"이 "커넥션 B"인 토픽을 추출한다. 그리고, 구독 요구부(102)는, 추출한 토픽과, "클라이언트 ID" 및 "접속 종별(커넥션 B)"을 포함하는 구독 요구 메시지를 브로커(20)에 송신한다.
도 3의 예에서는, 구독 요구부(102)는, 구독 리스트(D11)로부터 "접속 종별"이 "커넥션 B"인 토픽으로서, 도로 X의 정체 정보 토픽, 도로 X의 서비스 에어리어(SA) 정보 토픽을 추출한다. 그리고, 구독 요구부(102)는, 추출한 도로 X의 정체 정보 토픽, 도로 X의 SA 정보 토픽을 지정하고, 각 토픽에 관련지어진 메시지를 커넥션 B를 이용하여 구독할 것을 요구하는 메시지를, 브로커(20)에 송신한다.
구독 요구부(102)는, 브로커(20)로부터 구독 요구 메시지에 대한 응답 메시지를 수신하면, 커넥션 B의 구독 처리를 종료한다.
이와 같이, 구독 요구부(102)가, 커넥션 A 및 커넥션 B의 각각에 있어서 구독 처리를 행함으로써, "지급 메시지"의 구독을 커넥션 A로 행하고, "통상 메시지"의 구독을 커넥션 B로 행하도록, 메시지의 내용에 따라 다른 커넥션을 이용하여 메시지를 구독할 수 있다.
또한, 도 7의 처리 플로는 일례이며, 처리의 순번은 이에 한정되는 것은 아니다. 예를 들면, 구독 처리는, 커넥션 A 및 커넥션 B가 확립된 후에 1회만 행해지는 것이 아니라, 복수 회 행하도록 해도 된다. 즉, 구독 요구부(102)는, 클라이언트(10)의 상태에 따라 구독하는 토픽을 변경하고, 변경을 행할 때마다, 구독 처리를 행하여 브로커(20)에 구독 요구 메시지를 송신하도록 해도 된다. 구체적으로는, 구독 요구부(102)는, 클라이언트(10)의 현재 위치에 근거하여, 클라이언트(10)가 위치하는 도로 Y의 정체 정보 토픽을 구독 리스트(D11)에 추가하고, 클라이언트(10)가 통과 완료한 도로 X의 정체 정보 토픽을 구독 리스트(D11)로부터 삭제하여, 구독 리스트(D11)를 변경해도 된다. 그리고, 구독 요구부(102)는, 구독 리스트(D11)의 변경을 행한 경우, 브로커(20)에 대하여 구독 요구 메시지를 송신한다.
또, 구독 요구부(102)는, 예를 들면 유료 도로의 과금 처리를 행하기 위하여 서버(30)로부터 메시지를 수신하는 경우는, 당해 과금 처리에 관한 과금 정보 토픽을 구독 리스트(D11)에 추가한다. 이때, 구독 요구부(102)는, 과금 정보 토픽은 "지급 토픽"이라고 판단하여, 접속 종별을 "커넥션 A"로 설정한다. 이와 같이 함으로써, 클라이언트(10)는, 유료 도로의 과금 처리를 행하기 직전에 브로커(20)와의 접속이 확립된 경우이며, 과금 처리와 동일한 타이밍에 브로커(20)로부터 축적된 정체 정보 토픽에 관련지어진 메시지의 일괄 전송이 행해진 경우이더라도, 과금 정보 토픽에 관련지어진 메시지는 커넥션 A를 이용하여 송수신되고, 정체 정보 토픽에 관련지어진 메시지의 일괄 전송은 커넥션 B를 이용하여 행해진다. 이로써, 과금 정보 토픽에 관련지어진 메시지의 송수신이 일괄 전송에 의하여 지연되는 것이 억제되기 때문에, 클라이언트(10) 및 서버(30)는, 클라이언트(10)가 과금 처리에 필요한 메시지의 송수신을 완료하기 전에 유료 도로의 요금소를 통과해 버릴 가능성을 저감시킬 수 있다.
(클라이언트 및 브로커의 접속 감시 처리)
다음으로, 도 9를 참조하여, 클라이언트(10) 및 브로커(20)의 접속 감시 처리에 대하여 설명한다.
도 9는, 본 발명의 일 실시형태에 관한 클라이언트 및 브로커의 접속 감시 처리를 설명하기 위한 처리 플로이다.
이하, 클라이언트(10)의 커넥션 A의 접속 감시 처리를 예로 하여 설명하지만, 클라이언트(10)의 커넥션 B에 대해서도 동일한 접속 감시 처리가 행해진다.
도 9의 패턴 1은, 클라이언트(10)가 무선 통신 권내에 위치하고 있는 경우의 접속 감시 처리의 흐름을 나타내는 예이다.
클라이언트(10)의 접속 상태 감시부(105)는, 브로커(20)와의 사이에서 커넥션 A가 확립되면, 소정의 접속 판정 시간(예를 들면 60초)마다, 커넥션 A를 이용하여 브로커(20)에 접속 확인 메시지를 송신한다(스텝 S201).
브로커(20)의 클라이언트 접속 감시부(204)는, 클라이언트(10)와의 사이에서 커넥션 A가 확립되면, 접속 판정 시간 이내에 커넥션 A를 이용하여 접속 확인 메시지를 수신했는지 여부에 근거하여, 클라이언트(10)와의 접속 상태를 확인한다(스텝 S202). 브로커(20)의 클라이언트 접속 감시부(204)는, 클라이언트(10)로부터 접속 확인 메시지를 수신한 경우, 당해 클라이언트(10)와의 접속이 정상적으로 유지되고 있다고 판단한다. 이때, 브로커(20)의 클라이언트 접속 감시부(204)는, 당해 클라이언트(10)에 접속 확인 메시지에 대한 응답 메시지를 송신한다(스텝 S203).
클라이언트(10)는, 접속 확인 메시지를 송신하고 나서 소정의 응답 판정 시간(예를 들면 5초) 이내에 브로커(20)로부터 당해 응답 메시지를 수신함으로써, 커넥션 A가 정상적으로 접속되어 있다고 판단한다(스텝 S204).
한편, 도 9의 패턴 2는, 클라이언트(10)가 지하 등의 무선 통신 권외에 위치하고 있는 경우의 접속 감시 처리의 흐름을 나타내는 예이다.
클라이언트(10)가 무선 통신 권외에 진입한 경우, 클라이언트(10)의 접속 상태 감시부(105)는, 접속 확인 메시지를 송신하지만(스텝 S201), 무선 통신 권외이기 때문에 브로커(20)에 당해 접속 확인 메시지가 도착하지 않는다. 이로 인하여, 응답 판정 시간 이내에 브로커(20)로부터 응답 메시지가 되돌아오지 않기 때문에, 클라이언트(10)의 접속 상태 감시부(105)는, 커넥션 A가 절단되었다고 판단한다(스텝 S204).
또, 브로커(20)의 클라이언트 접속 감시부(204)는, 접속 판정 시간 이내에 커넥션 A를 이용하여 접속 확인 메시지를 수신했는지 여부에 근거하여, 클라이언트(10)와의 접속 상태를 확인한다(스텝 S202). 패턴 2의 예에서는, 브로커(20)는, 접속 판정 시간 이내에 클라이언트(10)로부터 접속 확인 메시지를 수신할 수 없기 때문에, 클라이언트(10)의 커넥션 A는 정상적으로 접속되어 있지 않다고 판단하여, 클라이언트(10)의 커넥션 A를 절단한다(스텝 S205).
클라이언트(10) 및 브로커(20)는, 커넥션 A 및 커넥션 B의 각각에 대하여, 상술한 접속 감시 처리를 반복함으로써, 커넥션 A 및 커넥션 B가 정상적으로 접속되어 있는지 여부를 판단한다.
(브로커의 메시지 처리)
다음으로, 도 10~도 11을 참조하여, 브로커(20)의 메시지 처리에 대하여 설명한다.
도 10은, 본 발명의 일 실시형태에 관한 브로커의 메시지 처리를 설명하기 위한 제1 처리 플로이다.
먼저, 도 10을 참조하여, 클라이언트(10)와 브로커(20)가 정상적으로 접속되어 있는 상태에 있어서의 메시지 처리에 대하여 설명한다.
클라이언트(10)로부터 메시지가 송신된 경우는, 이하와 같이 메시지 처리가 행해진다.
클라이언트(10)의 메시지 송신부(103)는, 발행 리스트(D12)(도 4)에 근거하여, 토픽과, 당해 토픽으로 설정된 접속 종별(커넥션 A 및 커넥션 B)을 지정하고, 브로커(20)에 메시지를 송신한다(스텝 S211). 예를 들면, 클라이언트(10)의 메시지 송신부(103)는, 과금 정보 토픽에 관련지어진 "메시지 A1"을 송신하는 경우, 발행 리스트(D12)에 근거하여, 당해 "메시지 A1"을 커넥션 A를 이용하여 브로커(20)에 송신한다(스텝 S211_A). 이때, 클라이언트(10)의 메시지 송신부(103)는, 커넥션 A를 이용하여 송신하는 "메시지 A1"을 암호화한 후에, 메시지의 송신을 행한다.
브로커(20)의 메시지 전송부(203)는, 클라이언트(10)로부터 "메시지 A1"을 수신하면, 구독 정보 테이블(D22)(도 6)에 근거하여, 당해 "메시지 A1"의 전송처를 특정한다(스텝 S212).
브로커(20)의 메시지 전송부(203)는, 당해 "메시지 A1"에 있어서 지정된 과금 정보 토픽의 구독을 요구하고 있는 전송처(예를 들면 서버(30))를 특정하면, 당해 전송처와 정상적으로 접속되어 있는지 여부를 확인한다(스텝 S213).
그리고, 브로커(20)의 메시지 전송부(203)는, 전송처와 정상적으로 접속되어 있는 경우는, 당해 전송처(서버(30))에 "메시지 A1"을 전송한다(스텝 S214).
또, 클라이언트(10)의 메시지 송신부(103)는, 클라이언트(10)의 현재 위치 토픽에 관련지어진 "메시지 B1"을 송신하는 경우, 발행 리스트(D12)에 근거하여, 당해 "메시지 B1"을 커넥션 B를 이용하여 브로커(20)에 송신한다(스텝 S211_B). 이때, 클라이언트(10)의 메시지 송신부(103)는, 커넥션 B를 이용하여 송신하는 "메시지 B1"은 암호화하지 않고, 메시지의 송신을 행한다.
브로커(20)의 메시지 전송부(203)는, 클라이언트(10)로부터 "메시지 B1"을 수신하면, 구독 정보 테이블(D22)에 근거하여, 당해 "메시지 B1"의 전송처를 특정한다(스텝 S212).
브로커(20)의 메시지 전송부(203)는, 당해 "메시지 B1"에 있어서 지정된 클라이언트(10)의 현재 위치 토픽의 구독을 요구하고 있는 전송처(예를 들면 서버(30))를 특정하면, 당해 전송처와 정상적으로 접속되어 있는 것을 확인한다(스텝 S213).
그리고, 브로커(20)의 메시지 전송부(203)는, 전송처와 정상적으로 접속되어 있는 경우는, 당해 전송처(서버(30))에 "메시지 B1"을 전송한다(스텝 S214).
또, 서버(30)로부터 메시지가 송신된 경우는, 이하와 같이 메시지 처리가 행해진다.
서버(30)는, 예를 들면, 먼저 수신한 "메시지 A1"에 대한 응답으로서, 과금 정보 토픽에 관련지어진 "메시지 X1"을 송신한다(스텝 S215).
브로커(20)의 메시지 전송부(203)는, 서버(30)로부터 "메시지 X1"을 수신하면, 구독 정보 테이블(D22)(도 6)에 근거하여, 당해 "메시지 X1"의 전송처를 특정한다(스텝 S212).
브로커(20)의 메시지 전송부(203)는, 당해 "메시지 X1"에 있어서 지정된 클라이언트 과금 정보 토픽의 구독을 요구하고 있는 전송처(예를 들면 클라이언트(10)의 커넥션 A)를 특정하면, 당해 전송처와 정상적으로 접속되어 있는 것을 확인한다(스텝 S213).
그리고, 브로커(20)의 메시지 전송부(203)는, 전송처와 정상적으로 접속되어 있는 경우는, 당해 전송처(클라이언트(10)의 커넥션 A)에 "메시지 X1"을 전송한다(스텝 S214).
또한, 본 실시형태에서는 브로커(20)와 서버(30)는 상시 접속되어 있기 때문에, 브로커(20)의 메시지 전송부(203)는, 전송처가 서버(30)인 경우는 접속의 상태를 확인하는 스텝 S213을 생략해도 된다.
도 11은, 본 발명의 일 실시형태에 관한 브로커의 메시지 처리를 설명하기 위한 제2 처리 플로이다.
다음으로, 도 11을 참조하여, 클라이언트(10)와 브로커(20)와의 접속이 절단되어 있는 상태에 있어서의 메시지 처리에 대하여 설명한다.
예를 들면, 클라이언트(10)가 지하 등의 무선 통신 권외로 이동하여, 커넥션 A 및 커넥션 B가 절단되어 있다고 한다. 이때, 서버(30)가 정체 정보 토픽에 관련지어진 "메시지 Y1"을 송신하면(스텝 S215), 브로커(20)의 메시지 전송부(203)는, 도 10의 플로와 동일하게, 당해 "메시지 Y1"의 전송처의 특정(스텝 S212)과, 당해 전송처의 접속 상태의 확인(스텝 S213)을 행한다. 그리고, 브로커(20)의 메시지 전송부(203)는, 당해 "메시지 Y1"의 전송처인 클라이언트(10)의 커넥션 B가 절단되어 있는 경우, 당해 "메시지 Y1"을 기억 매체(210)에 기억하여 축적한다(스텝 S216).
마찬가지로, 서버(30)가 서비스 에어리어(SA) 정보 토픽에 관련지어진 "메시지 Z1"을 송신하면(스텝 S215), 브로커(20)의 메시지 전송부(203)는, 동일한 처리(스텝 S212~스텝 S213)를 행하고, 전송처(클라이언트(10)의 커넥션 B)가 절단되어 있는 경우는, 당해 "메시지 Z1"을 기억 매체(210)에 기억하여 축적한다(스텝 S216).
클라이언트(10)가 무선 통신 권내로 이동하면, 클라이언트(10)의 접속 처리부(101)는, 커넥션 A 및 커넥션 B의 접속 처리 및 구독 처리(도 7의 스텝 S102~S103 및 스텝 S105~S106)를 행한다. 또한, 도 11에서는 구독 처리는 도시를 생략하고 있다.
그리고, 커넥션 A 및 커넥션 B가 확립되면, 클라이언트(10)의 인증 처리부(104)는, 인증 처리(도 7의 스텝 S104)로서, 클라이언트(10)의 인증 정보 토픽에 관련지어진 "메시지 A2"를 송신한다(스텝 S211).
브로커(20)의 메시지 전송부(203)는, 도 10의 플로와 동일하게, 당해 "메시지 A2"의 전송처의 특정(스텝 S212)과, 당해 전송처의 접속 상태의 확인(스텝 S213)을 행하고, 당해 전송처(서버(30))에 "메시지 A2"를 전송한다(스텝 S214).
"메시지 A2"에 대한 응답으로서, 서버(30)로부터 인증 정보 토픽에 관련지어진 "메시지 X2"가 송신(스텝 S215)되면, 브로커(20)의 메시지 전송부(203)는, 상술과 동일한 처리를 행하고, "메시지 X2"를 클라이언트(10)에 커넥션 A를 이용하여 전송한다(스텝 S212~스텝 S214).
또, 브로커(20)의 메시지 전송부(203)는, 클라이언트(10)의 커넥션 A의 인증 정보 토픽에 관련지어진 메시지("메시지 X2")의 전송과 병행하여, 기억 매체(210)에 축적된 통상 메시지의 일괄 전송을 행한다.
구체적으로는, 브로커(20)의 메시지 전송부(203)는, 클라이언트(10)의 커넥션 B가 확립되면, 기억 매체(210)에 축적된 메시지 중, 클라이언트(10)가 커넥션 B를 이용하여 구독을 요구하고 있는 토픽에 관련지어진 메시지("메시지 Y1" 및 "메시지 Z1")를 독출하고, 이들 축적 메시지의 일괄 전송을 행한다(스텝 S217).
이와 같이 함으로써, 클라이언트(10)는, 브로커(20)로부터 축적된 통상 메시지의 일괄 전송이 행해진 경우이더라도, 커넥션 B를 이용하여 일괄 전송된 통상 메시지를 구독함과 함께, 커넥션 A를 이용하여 인증 정보 토픽에 관련지어진 메시지와 같은 지급 메시지의 송수신을 병행하여 행할 수 있다. 이로써, 통상 메시지의 일괄 전송에 의하여 지급 메시지의 송수신이 지연되어, 인증 처리 등의 즉시성이 요구되는 처리가 실패하는 것을 억제할 수 있다.
(클라이언트 및 브로커의 하드웨어 구성)
다음으로, 도 12를 참조하여, 본 실시형태의 클라이언트(10) 및 브로커(20)의 하드웨어 구성에 대하여 설명한다.
도 12는, 본 발명의 일 실시형태에 관한 클라이언트 및 브로커의 하드웨어 구성의 예를 나타내는 도이다.
컴퓨터(900)는, CPU(901), 주(主) 기억 장치(902), 보조 기억 장치(903), 입출력 인터페이스(904), 통신 인터페이스(905)를 구비한다.
상술한 클라이언트(10)는, 컴퓨터(900)에 실장된다. 또, 마찬가지로, 상술한 브로커(20)는, 클라이언트(10)와는 다른 컴퓨터(900)에 실장된다. 그리고, 상술한 클라이언트(10) 및 브로커(20)의 각 처리부의 동작은, 프로그램의 형식으로 각각의 컴퓨터(900)가 갖는 보조 기억 장치(903)에 기억되어 있다. CPU(901)는, 프로그램을 보조 기억 장치(903)로부터 독출하여 주 기억 장치(902)에 전개하고, 당해 프로그램에 따라 상기 처리를 실행한다. 또, 클라이언트(10)의 CPU(901)는, 프로그램에 따라, 기억 매체(110)에 대응하는 기억 영역을 주 기억 장치(902)에 확보하고, 브로커(20)의 CPU(901)는, 프로그램에 따라, 기억 매체(210)에 대응하는 기억 영역을 주 기억 장치(902)에 확보한다. 또, CPU(901)는, 프로그램에 따라, 처리 중인 데이터를 기억하는 기억 영역을 보조 기억 장치(903)에 확보한다. 또한, 컴퓨터(900)는, 입출력 인터페이스(904)를 통하여, 외부 기억 장치(910)와 접속되어 있어, 클라이언트(10)의 기억 매체(110) 또는 브로커(20)의 기억 매체(210)에 대응하는 기억 영역은 외부 기억 장치(910)에 확보되어도 된다. 또, 컴퓨터(900)는, 통신 인터페이스(905)를 통하여, 외부 기억 장치(920)와 접속되어 있어, 클라이언트(10)의 기억 매체(110) 또는 브로커(20)의 기억 매체(210)에 대응하는 기억 영역은 외부 기억 장치(920)에 확보되어도 된다.
또한, 적어도 하나의 실시형태에 있어서, 보조 기억 장치(903)는, 일시적이지 않은 유형(有形)의 매체의 일례이다. 일시적이지 않은 유형의 매체의 다른 예로서는, 입출력 인터페이스(904)를 통하여 접속되는 자기 디스크, 광자기 디스크, CD-ROM, DVD-ROM, 반도체 메모리 등을 들 수 있다. 또, 이 프로그램이 통신 회선에 의하여 컴퓨터(900)에 전송되는 경우, 전송을 받은 컴퓨터(900)가 당해 프로그램을 주 기억 장치(902)에 전개하고, 상기 처리를 실행해도 된다.
또, 당해 프로그램은, 상술한 기능의 일부를 실현하기 위한 것이어도 된다. 또한, 당해 프로그램은, 상술한 기능을 보조 기억 장치(903)에 이미 기억되어 있는 다른 프로그램과의 조합으로 실현하는 것, 이른바 차분 파일(차분 프로그램)이어도 된다.
또, 브로커(20) 및 서버(30)는, 1대의 컴퓨터(900)로 구성되어 있어도 되고, 통신 가능하게 접속된 복수의 컴퓨터로 구성되어 있어도 된다.
(작용 효과)
이상과 같이, 본 실시형태에 관한 클라이언트(10)는, 브로커(20)와의 사이에서, 지급 메시지를 송수신하기 위한 커넥션 A와, 통상 메시지를 송수신하기 위한 커넥션 B를 확립하는 접속 처리부(101)와, 브로커(20)로부터 수신하는 메시지 중, 커넥션 A를 이용하여 수신하는 지급 메시지와, 커넥션 B를 이용하여 수신하는 통상 메시지를 토픽별로 지정하는 구독 요구부(102)와, 브로커(20)에 송신하는 메시지 중, 커넥션 A를 이용하여 송신하는 지급 메시지와, 커넥션 B를 이용하여 송신하는 통상 메시지를 토픽별로 지정하는 메시지 송신부(103)를 구비한다.
이와 같은 구성을 가짐으로써, 브로커(20)와 클라이언트(10)와의 재접속 후에, 브로커(20)가 축적된 통상 메시지의 일괄 전송 처리를 행하는 경우이더라도, 클라이언트(10)는, 커넥션 B를 이용하여 일괄 전송된 통상 메시지를 구독함과 함께, 커넥션 A를 이용하여 지급 메시지의 송수신을 병행하여 행할 수 있다. 따라서, 클라이언트(10)는, 일괄 전송된 통상 메시지의 수신 처리에 의하여, 지급 메시지의 송수신이 지연되는 것을 억제할 수 있다.
또, 상술한 클라이언트(10)의 접속 처리부(101)는, 커넥션 B의 접속 처리에 있어서, 커넥션 B의 접속 정보에 포함되는 "메시지 축적 필요 여부"를 "필요"로 설정함으로써, 브로커(20)에 대하여 구독을 요구하고 있는 통상 메시지를, 커넥션 B가 절단되어 있는 동안, 브로커(20)에 축적할 것을 요구한다.
이와 같은 구성을 가짐으로써, 클라이언트(10)는, 클라이언트(10)가 지하 등의 무선 통신 권외에 진입한 것에 의하여 브로커(20)와의 커넥션 B가 절단되어 있는 동안, 서버(30) 등으로부터 송신된 통상 메시지를 브로커(20)에 축적시킬 수 있다. 그리고, 클라이언트(10)는, 무선 통신의 상태가 안정되는 장소로 이동하여 커넥션 B가 재접속된 후에, 브로커(20)로부터 축적된 통상 메시지의 일괄 전송을 받음으로써, 통상 메시지의 수신 누락을 억제하는 것이 가능해진다.
한편, 접속 처리부(101)는, 커넥션 A의 접속 처리에 있어서, 커넥션 A의 접속 정보에 포함되는 "메시지 축적 필요 여부"를 "불필요"로 설정함으로써, 브로커(20)에는 지급 메시지가 축적되지 않는다. 이로 인하여, 커넥션 A가 재접속된 후에는, 브로커(20)는 축적된 메시지의 일괄 전송을 행하지 않기 때문에, 클라이언트(10)는, 커넥션 A에서는, 일괄 전송에 방해받는 일 없이, 지급 메시지의 송수신을 즉시 행할 수 있다.
또, 상술한 클라이언트(10)는, 서버(30)와의 사이에서 인증을 행하는 인증 처리부(104)를 더 구비하고 있다. 인증 처리부(104)는, 브로커(20)와의 사이에서 커넥션 A가 확립된 후, 커넥션 A를 이용하여 서버(30)와의 인증 정보 토픽에 관련지어진 메시지를 송수신한다.
이와 같은 구성을 가짐으로써, 클라이언트(10)는, 브로커(20)로부터 일괄 전송된 통상 메시지를 커넥션 B를 이용하여 수신 중이더라도, 서버와의 인증 처리에 이용되는 지급 메시지를 커넥션 A를 이용하여 송수신할 수 있다. 이로써, 서버(30)와의 인증 처리에 관한 지급 메시지의 송수신이 지연되는 일이 없어, 요구된 시간 내에 인증 처리가 완료되지 않는 등의 처리의 실패를 억제할 수 있다.
또, 상술한 브로커(20)는, 클라이언트(10) 및 서버(30)와 네트워크를 통하여 접속 가능하고, 클라이언트(10) 및 서버(30) 간에 있어서의 토픽별로 관련지어져 있는 메시지의 송수신을 중개한다. 브로커(20)는, 클라이언트(10)와의 접속을 행할 때에 이용되는 접속 정보로서, 지급 메시지를 송수신하기 위한 커넥션 A의 접속 정보(클라이언트 ID 및 접속 종별)와, 통상 메시지를 송수신하기 위한 커넥션 B의 접속 정보(클라이언트 ID 및 접속 종별)를 클라이언트(10)별로 기억하는 접속 정보 기억부(201)와, 클라이언트(10)의 요구에 근거하여, 지급 토픽 및 커넥션 A의 접속 정보를 링크한 구독 정보와, 통상 토픽 및 커넥션 B의 접속 정보를 링크한 구독 정보를 기억하는 구독 정보 기억부(202)와, 구독 정보에 근거하여, 커넥션 A가 확립되어 있는 동안, 지급 토픽에 관련지어진 지급 메시지를 커넥션 A를 이용하여 클라이언트(10)에 전송하고, 커넥션 B가 확립되어 있는 동안, 통상 토픽에 관련지어진 통상 메시지를 커넥션 B를 이용하여 전송하며, 커넥션 B가 절단되어 있는 동안, 통상 토픽에 관련지어진 통상 메시지를 축적하는 메시지 전송부(203)를 구비한다.
이와 같은 구성을 가짐으로써, 브로커(20)는, 클라이언트(10)와의 커넥션 A 및 커넥션 B가 절단되어 있는 동안, 지급 메시지는 축적하지 않고, 통상 메시지를 축적한다. 이로 인하여, 브로커(29)는, 클라이언트(10)와 커넥션 A 및 커넥션 B가 재접속된 후, 지급 메시지의 일괄 전송은 행하지 않고, 통상 메시지의 일괄 전송을 행할 수 있다. 그 결과, 브로커(29)는, 클라이언트(10)와 커넥션 A 및 커넥션 B가 재접속된 후, 커넥션 B를 이용하여 축적된 통상 메시지의 일괄 전송을 계속한 채로, 커넥션 A를 이용하여 지급 메시지의 전송을 병행하여 행할 수 있다. 따라서, 브로커(20)는, 축적된 통상 메시지의 일괄 전송 처리에 의하여, 인증 처리, 과금 처리 등에 이용되는 지급 메시지의 송수신이 지연되는 것을 억제할 수 있다.
이상, 본 발명의 실시형태에 대하여 상세하게 설명했지만, 본 발명의 기술적 사상을 벗어나지 않는 한, 이들에 한정되는 것은 아니고, 다소의 설계 변경 등도 가능하다.
예를 들면, 상술한 실시형태에 있어서, 브로커(20)와 서버(30)는, 하나의 유선 통신을 접속하는 양태에 대하여 설명했지만, 이에 한정되는 것은 아니다. 브로커(20)와 서버(30)의 사이에, 커넥션 A 및 커넥션 B의 2개의 유선 통신의 접속을 행하도록 해도 된다. 이 경우, 서버(30)에 있어서도, 메시지의 내용에 따라, 지급 메시지는 커넥션 A를 이용하여 송수신을 행하고, 통상 메시지는 커넥션 B를 이용하여 송수신을 행하도록 해도 된다. 이와 같이 함으로써, 지급 메시지의 송수신의 지연을 추가로 억제할 수 있다.
(산업상 이용가능성)
상술한 클라이언트, 브로커, 통신 시스템, 통신 방법 및 프로그램에 의하면, 재접속 시에 실행되는 축적된 메시지의 일괄 전송 처리에 의하여, 즉시 송신이 필요한 메시지의 송수신이 지연되는 것을 억제할 수 있다.
1 통신 시스템
10, 10a, 10b, 10c 클라이언트
101 접속 처리부
102 구독 요구부
103 메시지 송신부
104 인증 처리부
105 접속 상태 감시부
110 기억 매체
2 정보 센터
20 브로커
200 MQTT 기능부
201 접속 정보 기억부
202 구독 정보 기억부
203 메시지 전송부
204 클라이언트 접속 감시부
30, 30a, 30b 서버

Claims (7)

  1. 브로커와 접속 가능하고, 당해 브로커를 통하여 서버와의 사이에서 토픽별로 관련지어져 있는 메시지를 송수신하는 클라이언트로서,
    상기 브로커와의 사이에서, 상기 메시지 중 제1 메시지를 송수신하기 위한 제1 커넥션과, 제2 메시지를 송수신하기 위한 제2 커넥션을 확립시키는 접속 처리부와,
    상기 브로커에 대하여, 제1 토픽을 지정하고, 당해 제1 토픽에 관련지어진 상기 제1 메시지를 상기 제1 커넥션을 이용하여 구독할 것을 요구하며, 제2 토픽을 지정하고, 당해 제2 토픽에 관련지어진 상기 제2 메시지를 상기 제2 커넥션을 이용하여 구독할 것을 요구하는 구독 요구부와,
    상기 브로커에 대하여, 제3 토픽에 관련지은 상기 제1 메시지를 상기 제1 커넥션을 이용하여 송신하며, 제4 토픽에 관련지은 상기 제2 메시지를 상기 제2 커넥션을 이용하여 송신하는 메시지 송신부를 구비하는 클라이언트.
  2. 청구항 1에 있어서,
    상기 접속 처리부는, 상기 브로커에 대하여 구독을 요구하고 있는 상기 제2 메시지를, 상기 제2 커넥션이 절단되어 있는 동안, 상기 브로커에 축적할 것을 요구하는, 클라이언트.
  3. 청구항 1 또는 청구항 2에 있어서,
    상기 서버와의 사이에서 인증을 행하는 인증 처리부를 더 구비하고,
    상기 인증 처리부는, 상기 브로커와의 사이에서 상기 제1 커넥션이 확립된 후, 상기 제1 커넥션을 이용하여 상기 서버와의 인증에 이용되는 토픽에 관련지어진 상기 제1 메시지를 송수신하는, 클라이언트.
  4. 클라이언트 및 서버와 네트워크를 통하여 접속 가능하고, 상기 클라이언트 및 상기 서버의 사이에 있어서의 토픽별로 관련지어져 있는 메시지의 송수신을 중개하는 브로커로서,
    상기 클라이언트와의 접속을 행할 때에 이용되는 접속 정보로서, 상기 메시지 중, 제1 메시지를 송수신하기 위한 제1 커넥션의 접속 정보와, 제2 메시지를 송수신하기 위한 제2 커넥션의 접속 정보를 상기 클라이언트별로 기억하는 접속 정보 기억부와,
    상기 클라이언트의 요구에 근거하여, 제1 토픽 및 상기 제1 커넥션의 접속 정보를 링크한 구독 정보와, 제2 토픽 및 상기 제2 커넥션의 접속 정보를 링크한 구독 정보를 기억하는 구독 정보 기억부와,
    상기 구독 정보에 근거하여, 상기 제1 커넥션이 확립되어 있는 동안, 상기 제1 토픽에 관련지어진 상기 제1 메시지를 상기 제1 커넥션을 이용하여 상기 클라이언트에 전송하고, 상기 제2 커넥션이 확립되어 있는 동안, 상기 제2 토픽에 관련지어진 상기 제2 메시지를 상기 제2 커넥션을 이용하여 전송하며, 상기 제2 커넥션이 절단되어 있는 동안, 상기 제2 토픽에 관련지어진 상기 제2 메시지를 축적하는 메시지 전송부를 구비하는 브로커.
  5. 청구항 1 내지 청구항 3 중 어느 한 항에 기재된 클라이언트와,
    청구항 4에 기재된 브로커와,
    상기 브로커를 통하여 상기 클라이언트와의 사이에서 메시지의 송수신을 행하는 서버를 구비하는 통신 시스템.
  6. 브로커를 통하여 클라이언트와 서버의 사이에서 토픽별로 메시지를 송수신하는 통신 방법으로서,
    상기 브로커와 상기 클라이언트의 사이에서, 상기 메시지 중 제1 메시지를 송수신하기 위한 제1 커넥션과, 제2 메시지를 송수신하기 위한 제2 커넥션을 확립시키는 단계와,
    상기 브로커에 대하여, 제1 토픽을 지정하고, 당해 제1 토픽에 관련지어진 상기 제1 메시지를 상기 제1 커넥션을 이용하여 구독할 것을 요구하며, 제2 토픽을 지정하고, 당해 제2 토픽에 관련지어진 상기 제2 메시지를 상기 제2 커넥션을 이용하여 구독할 것을 요구하는 단계와,
    상기 브로커에 대하여, 제3 토픽에 관련지은 상기 제1 메시지를 상기 제1 커넥션을 이용하여 송신하며, 제4 토픽에 관련지은 상기 제2 메시지를 상기 제2 커넥션을 이용하여 송신하는 단계를 갖는 통신 방법.
  7. 브로커와 접속 가능하고, 당해 브로커를 통하여 서버와의 사이에서 토픽별로 메시지를 송수신하는 클라이언트의 컴퓨터를 기능시키는 프로그램으로서, 당해 프로그램은 당해 컴퓨터를,
    상기 브로커와의 사이에서, 상기 메시지 중 제1 메시지를 송수신하기 위한 제1 커넥션과, 제2 메시지를 송수신하기 위한 제2 커넥션을 확립시키는 접속 처리부와,
    상기 브로커에 대하여, 제1 토픽을 지정하고, 당해 제1 토픽에 관련지어진 상기 제1 메시지를 상기 제1 커넥션을 이용하여 구독할 것을 요구하며, 제2 토픽을 지정하고, 당해 제2 토픽에 관련지어진 상기 제2 메시지를 상기 제2 커넥션을 이용하여 구독할 것을 요구하는 구독 요구부와,
    상기 브로커에 대하여, 제3 토픽에 관련지은 상기 제1 메시지를 상기 제1 커넥션을 이용하여 송신하며, 제4 토픽에 관련지은 상기 제2 메시지를 상기 제2 커넥션을 이용하여 송신하는 메시지 송신부로서 기능시키는 프로그램.
KR1020197014674A 2016-11-25 2016-11-25 클라이언트, 브로커, 통신 시스템, 통신 방법 및 프로그램 KR102209175B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/084909 WO2018096641A1 (ja) 2016-11-25 2016-11-25 クライアント、ブローカ、通信システム、通信方法及びプログラム

Publications (2)

Publication Number Publication Date
KR20190067894A true KR20190067894A (ko) 2019-06-17
KR102209175B1 KR102209175B1 (ko) 2021-01-28

Family

ID=62194966

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197014674A KR102209175B1 (ko) 2016-11-25 2016-11-25 클라이언트, 브로커, 통신 시스템, 통신 방법 및 프로그램

Country Status (5)

Country Link
US (1) US10911391B2 (ko)
JP (1) JP6727329B2 (ko)
KR (1) KR102209175B1 (ko)
GB (1) GB2570427B (ko)
WO (1) WO2018096641A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190173951A1 (en) * 2017-12-01 2019-06-06 GM Global Technology Operations LLC Vehicle communication using publish-subscribe messaging protocol
CA3121940A1 (en) 2018-12-13 2020-06-18 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Subscription message processing method and apparatus, and computer device and storage medium
CN110113381B (zh) * 2019-04-09 2023-04-07 深圳前海微众银行股份有限公司 一种区块链中订阅主题的方法及装置
GB2589663B (en) 2019-06-10 2024-04-10 Fisher Rosemount Systems Inc Automatic load balancing and performance leveling of virtual nodes running real-time control in process control systems
US11196731B2 (en) * 2019-06-28 2021-12-07 T-Mobile Usa, Inc. Network-authentication control
US11563823B2 (en) * 2019-11-27 2023-01-24 Verifone, Inc. Systems and methods for device connectivity management
US11184266B1 (en) * 2020-05-14 2021-11-23 PubNub, Inc. Method and system for detecting latency in a wide area network
US11888728B1 (en) 2020-05-14 2024-01-30 PubNub, Inc. Method and system for detecting latency in a wide area network
WO2022034684A1 (ja) * 2020-08-14 2022-02-17 株式会社アイルソフト 端末装置、コンピュータプログラム、通信システム、および、通信方法
US11811884B1 (en) * 2020-12-11 2023-11-07 Amazon Technologies, Inc. Topic subscription provisioning for communication protocol

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050256931A1 (en) * 2004-04-30 2005-11-17 Bernd Follmeg Methods and apparatuses for processing messages in an enterprise computing environment
JP2014081872A (ja) 2012-10-18 2014-05-08 Denso Corp 車両情報処理装置
JP2015500520A (ja) * 2011-11-18 2015-01-05 トムソン ライセンシングThomson Licensing エンドユーザデバイス、およびそれぞれのエンドユーザデバイスの遠隔管理のためのパブリッシュ/サブスクライブブローカを備えるシステム
JP2015130092A (ja) * 2014-01-08 2015-07-16 セイコーエプソン株式会社 Pos制御システム、印刷装置、及びpos制御システムの制御方法
WO2016014516A1 (en) * 2014-07-21 2016-01-28 Convida Wireless, Llc Service layer interworking using mqtt protocol

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7388839B2 (en) * 2003-10-22 2008-06-17 International Business Machines Corporation Methods, apparatus and computer programs for managing performance and resource utilization within cluster-based systems
JP6559587B2 (ja) * 2016-01-28 2019-08-14 株式会社東芝 通信装置、通信システムおよび通信プログラム
US10637960B2 (en) * 2016-10-21 2020-04-28 Infiswift Technologies, Inc. Method for bridging publish/subscribe brokers for guaranteed low-latency delivery

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050256931A1 (en) * 2004-04-30 2005-11-17 Bernd Follmeg Methods and apparatuses for processing messages in an enterprise computing environment
JP2015500520A (ja) * 2011-11-18 2015-01-05 トムソン ライセンシングThomson Licensing エンドユーザデバイス、およびそれぞれのエンドユーザデバイスの遠隔管理のためのパブリッシュ/サブスクライブブローカを備えるシステム
JP2014081872A (ja) 2012-10-18 2014-05-08 Denso Corp 車両情報処理装置
JP2015130092A (ja) * 2014-01-08 2015-07-16 セイコーエプソン株式会社 Pos制御システム、印刷装置、及びpos制御システムの制御方法
WO2016014516A1 (en) * 2014-07-21 2016-01-28 Convida Wireless, Llc Service layer interworking using mqtt protocol

Also Published As

Publication number Publication date
GB201907078D0 (en) 2019-07-03
JPWO2018096641A1 (ja) 2019-10-17
GB2570427A (en) 2019-07-24
JP6727329B2 (ja) 2020-07-22
GB2570427B (en) 2021-11-17
KR102209175B1 (ko) 2021-01-28
WO2018096641A1 (ja) 2018-05-31
US10911391B2 (en) 2021-02-02
US20190288975A1 (en) 2019-09-19

Similar Documents

Publication Publication Date Title
KR102209175B1 (ko) 클라이언트, 브로커, 통신 시스템, 통신 방법 및 프로그램
US9071925B2 (en) System and method for communicating data between an application server and an M2M device
US9723428B2 (en) Internet-of-things system for public transportation service and method of operating same
JP6524264B2 (ja) 効率を高めるためにサービス層サブスクリプションおよび通知を分析しグループ化する方法および装置
JP2020522060A (ja) リアルタイム車両管制サービスのためのコネクテッドゲートウェイサーバシステム
CN104079630A (zh) 一种业务服务端负载均衡方法、客户端、服务端以及系统
CN102594875B (zh) 内容分发的方法、装置及接入网设备
JP6090253B2 (ja) 無線通信システムにおける通信方法、無線通信システム、および無線接続提供装置
CN101014019B (zh) 一种系统间消息转发的通讯方法
CN102571877B (zh) 车载信息同步服务系统和方法
CN101938502A (zh) 一种服务器集群系统及负载均衡方法
CN103986741A (zh) 云数据系统、云数据中心及其资源管理方法
US20080098105A1 (en) Method, apparatus, and system for communication-information management, wireless-communication device, and relay device
CN108141447B (zh) 服务层注册
KR20120128025A (ko) 피드백 메시지를 이용한 푸시 서비스 제공 시스템 및 방법
CN102594578B (zh) 信息推送业务的处理方法、装置和系统
CN103685411A (zh) 异构网络中的数据共享方法及装置
CN102571963B (zh) 内容分发的方法、装置和接入网设备
CN102546727A (zh) 车辆全时在线系统和方法
JP5353714B2 (ja) サーバシステムとそのイベントメッセージ送信方法
EP3968602B1 (en) An online connectivity unit in an electronic control unit of a vehicle, corresponding method and corresponding computer program product
KR101556941B1 (ko) 피어-투-피어 기반의 푸시 서비스 제공 방법 및 이를 수행하는 푸시 서비스 제공 시스템
US9763025B2 (en) Radius accounting feed distribution and active on-network determination
WO2016030720A1 (en) Methods and systems for managing charging information in a machine-to-machine (m2m) network
KR101277096B1 (ko) 클라이언트의 접속 방식에 따라 선택적 인증을 수행하는 푸시 서비스 제공 시스템 및 그 제공 방법

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
GRNT Written decision to grant