KR20190044239A - 메시지 처리 장치 및 방법 - Google Patents

메시지 처리 장치 및 방법 Download PDF

Info

Publication number
KR20190044239A
KR20190044239A KR1020170136409A KR20170136409A KR20190044239A KR 20190044239 A KR20190044239 A KR 20190044239A KR 1020170136409 A KR1020170136409 A KR 1020170136409A KR 20170136409 A KR20170136409 A KR 20170136409A KR 20190044239 A KR20190044239 A KR 20190044239A
Authority
KR
South Korea
Prior art keywords
management module
device management
message
service management
management modules
Prior art date
Application number
KR1020170136409A
Other languages
English (en)
Other versions
KR101996239B1 (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 KR1020170136409A priority Critical patent/KR101996239B1/ko
Publication of KR20190044239A publication Critical patent/KR20190044239A/ko
Application granted granted Critical
Publication of KR101996239B1 publication Critical patent/KR101996239B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/40Business processes related to the transportation industry
    • G06Q50/30
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Operations Research (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer And Data Communications (AREA)

Abstract

메시지 처리 장치 및 방법과 이를 수행하기 위한 서비스 관리 모듈이 제공된다. 본 발명의 일 실시예에 따른 메시지 처리 장치는, 복수의 디바이스 관리 모듈; 및 상기 복수의 디바이스 관리 모듈 중 적어도 하나의 디바이스 관리 모듈로 메시지를 전송하는 복수의 서비스 관리 모듈을 포함하며, 상기 서비스 관리 모듈 각각은, 상기 디바이스 관리 모듈 각각의 아이디 및 상기 서비스 관리 모듈의 전체 개수를 이용하여 상기 복수의 디바이스 관리 모듈 중 자신이 담당하는 하나 이상의 담당 디바이스 관리 모듈을 결정하며, 상기 각 담당 디바이스 관리 모듈로 전송된 메시지를 재전송하거나 삭제한다.

Description

메시지 처리 장치 및 방법{MESSAGE PROCESSING SYSTEM AND METHOD}
본 발명의 실시예들은 메시지 처리 장치 및 방법에 관한 것으로, 특히 메시지 처리 시스템의 부하를 분산하는 기술과 관련된다.
최근, 모바일 단말의 사용이 일반화되고 정보통신기술이 발달함에 따라, 다양한 메시지 서비스를 제공하는 메시지 처리 시스템에 대한 수요가 증가하고 있다. 이러한 메시지 처리 시스템은 보안 서비스, 이메일 서비스, 결제 서비스 등 다양한 분야에서 적용될 수 있다. 상기 메시지 처리 시스템에 있어서, 송신측과 수신측은 메시지 처리 시스템에서 제공하는 서비스와 관련된 각종 메시지를 송수신하게 되며, 상기 서비스의 신뢰성을 확보하기 위해 메시지를 재전송하는 경우가 빈번하게 발생된다.
그러나, 종래의 메시지 처리 시스템에서는 메시지 재전송에 따른 송신측과 수신측 사이에서 메시지가 중복 전송되는 경우가 빈번히 발생하게 되었으며 이에 따라 시스템 과부하가 발생되는 문제가 있었다. 또한, 이러한 문제점은 서비스 규모가 커져 송신측/수신측 인스턴스가 많아짐에 따라 더욱 두드러지게 나타난다.
한국공개특허공보 제10-2017-0087116호(2017.07.28)
본 발명의 실시예들은 메시지의 중복 전송을 방지하고 부하를 분산시키는 수단을 제공하기 위한 것이다.
본 발명의 예시적인 실시예에 따르면, 복수의 디바이스 관리 모듈; 및 상기 복수의 디바이스 관리 모듈 중 적어도 하나의 디바이스 관리 모듈로 메시지를 전송하는 복수의 서비스 관리 모듈을 포함하며, 상기 서비스 관리 모듈 각각은, 상기 디바이스 관리 모듈 각각의 아이디 및 상기 서비스 관리 모듈의 전체 개수를 이용하여 상기 복수의 디바이스 관리 모듈 중 자신이 담당하는 하나 이상의 담당 디바이스 관리 모듈을 결정하며, 상기 각 담당 디바이스 관리 모듈로 전송된 메시지를 재전송하거나 삭제하는, 메시지 처리 장치가 제공된다.
상기 서비스 관리 모듈 각각은, 상기 디바이스 관리 모듈 각각의 아이디에 대한 해시값을 상기 서비스 관리 모듈의 전체 개수로 모듈러(modulus) 연산하여 상기 디바이스 관리 모듈 각각에 대한 모듈러 연산값을 계산하고, 상기 모듈러 연산값과 자신의 식별 번호를 참조하여 상기 담당 디바이스 관리 모듈을 결정할 수 있다.
상기 식별 번호는, 상기 서비스 관리 모듈 각각이 데이터베이스에 접근한 순서에 따라 결정될 수 있다.
상기 서비스 관리 모듈 각각은, 상기 자신의 식별 번호를 상기 데이터베이스에 기록하며, 상기 데이터베이스를 참조하여 상기 서비스 관리 모듈의 전체 개수를 확인할 수 있다.
상기 서비스 관리 모듈 각각은, 설정된 주기마다 상기 메시지의 재전송 또는 삭제 여부를 결정하며, 상기 서비스 관리 모듈의 전체 개수가 변경되는 경우 상기 메시지의 재전송 또는 삭제 시점에 상기 모듈러 연산값을 재계산하여 상기 담당 디바이스 관리 모듈을 재결정할 수 있다.
본 발명의 다른 예시적인 실시예에 따르면, 복수의 디바이스 관리 모듈 중 적어도 하나의 디바이스 관리 모듈로 메시지를 전송하는 서비스 관리 모듈로서, 상기 디바이스 관리 모듈 각각의 아이디 및 상기 서비스 관리 모듈의 전체 개수를 이용하여 상기 복수의 디바이스 관리 모듈 중 자신이 담당하는 하나 이상의 담당 디바이스 관리 모듈을 결정하는 결정부; 및 상기 담당 디바이스 관리 모듈로 전송된 메시지를 재전송하거나 삭제하는 처리부를 포함하는, 서비스 관리 모듈이 제공된다.
상기 결정부는, 상기 디바이스 관리 모듈 각각의 아이디에 대한 해시값을 상기 서비스 관리 모듈의 전체 개수로 모듈러(modulus) 연산하여 상기 디바이스 관리 모듈 각각에 대한 모듈러 연산값을 계산하고, 상기 모듈러 연산값과 자신의 식별 번호를 참조하여 상기 담당 디바이스 관리 모듈을 결정할 수 있다.
상기 식별 번호는, 상기 서비스 관리 모듈 각각이 데이터베이스에 접근한 순서에 따라 결정될 수 있다.
상기 결정부는, 상기 자신의 식별 번호를 상기 데이터베이스에 기록하며, 상기 데이터베이스를 참조하여 상기 서비스 관리 모듈의 전체 개수를 확인할 수 있다.
상기 처리부는, 설정된 주기마다 상기 메시지의 재전송 또는 삭제 여부를 결정하며, 상기 결정부는, 상기 서비스 관리 모듈의 전체 개수가 변경되는 경우 상기 메시지의 재전송 또는 삭제 시점에 상기 모듈러 연산값을 재계산하여 상기 담당 디바이스 관리 모듈을 재결정할 수 있다.
본 발명의 다른 예시적인 실시예에 따르면, 복수의 디바이스 관리 모듈 중 적어도 하나의 디바이스 관리 모듈로 메시지를 전송하는 서비스 관리 모듈의 결정부에서, 상기 디바이스 관리 모듈 각각의 아이디 및 상기 서비스 관리 모듈의 전체 개수를 이용하여 상기 복수의 디바이스 관리 모듈 중 자신이 담당하는 하나 이상의 담당 디바이스 관리 모듈을 결정하는 단계; 및 상기 서비스 관리 모듈의 처리부에서, 상기 담당 디바이스 관리 모듈로 전송된 메시지를 재전송하거나 삭제하는 단계를 포함하는, 메시지 처리 방법이 제공된다.
상기 담당 디바이스 관리 모듈을 결정하는 단계는, 상기 디바이스 관리 모듈 각각의 아이디에 대한 해시값을 상기 서비스 관리 모듈의 전체 개수로 모듈러(modulus) 연산하여 상기 디바이스 관리 모듈 각각에 대한 모듈러 연산값을 계산하는 단계; 및 상기 모듈러 연산값과 자신의 식별 번호를 참조하여 상기 담당 디바이스 관리 모듈을 결정하는 단계를 포함할 수 있다.
상기 식별 번호는, 상기 서비스 관리 모듈 각각이 데이터베이스에 접근한 순서에 따라 결정될 수 있다.
상기 담당 디바이스 관리 모듈을 결정하는 단계는, 상기 연산값을 계산하는 단계 이전에, 상기 자신의 식별 번호를 상기 데이터베이스에 기록하며, 상기 데이터베이스를 참조하여 상기 서비스 관리 모듈의 전체 개수를 확인하는 단계를 더 포함할 수 있다.
상기 메시지를 재전송하거나 삭제하는 단계는, 설정된 주기마다 상기 메시지의 재전송 또는 삭제 여부를 결정하며, 상기 모듈러 연산값을 계산하는 단계는, 상기 서비스 관리 모듈의 전체 개수가 변경되는 경우 상기 메시지의 재전송 또는 삭제 시점에 상기 모듈러 연산값을 재계산하고, 상기 담당 디바이스 관리 모듈을 결정하는 단계는, 재계산된 상기 모듈러 연산값과 자신의 식별 번호를 참조하여 상기 담당 디바이스 관리 모듈을 재결정할 수 있다.
본 발명의 실시예들에 따르면, 각 서비스 관리 모듈이 자신이 담당하는 담당 디바이스 관리 모듈에 대한 메시지 재전송 및 삭제 처리만을 수행(즉, 각 서비스 관리 모듈 별로 담당 디바이스 관리 모듈 분배)하도록 함으로써, 각 서비스 관리 모듈에서의 메시지 중복 전송을 방지하고 부하를 분산시킬 수 있다.
또한, 본 발명의 실시예들에 따르면, 서비스 관리 모듈의 전체 개수가 변경되는 경우 각 서비스 관리 모듈에서 담당하는 담당 디바이스 관리 모듈 또한 동적으로 변경(즉, 동적으로 재분배)시킴으로써, 일부 서비스 관리 모듈에서 장애가 발생하거나 새로운 서비스 관리 모듈이 추가되더라도 이를 반영하여 메시지 처리를 효율적으로 수행할 수 있다.
도 1은 본 발명의 일 실시예에 따른 메시지 처리 장치의 상세 구성을 나타낸 블록도
도 2는 본 발명의 일 실시예에 따른 서비스 관리 모듈 및 애플리케이션 서버의 예시
도 3은 본 발명의 일 실시예에 따른 디바이스 관리 모듈 및 디바이스의 예시
도 4는 본 발명의 일 실시예에 따른 서비스 관리 모듈의 상세 구성을 나타낸 블록도
도 5는 본 발명의 일 실시예에 따른 결정부에서 담당 디바이스 관리 모듈을 결정하는 과정을 설명하기 위한 예시
도 6은 본 발명의 일 실시예에 따른 결정부에서 서비스 관리 모듈의 전체 개수가 변경됨에 따라 담당 디바이스 관리 모듈을 재결정하는 과정을 설명하기 위한 예시
도 7은 본 발명의 일 실시예에 따른 결정부에서 서비스 관리 모듈의 전체 개수가 변경됨에 따라 담당 디바이스 관리 모듈을 재결정하는 과정을 설명하기 위한 예시
도 8은 본 발명의 일 실시예에 따른 메시지 처리 방법을 설명하기 위한 흐름도
도 9는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 결정되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
도 1은 본 발명의 일 실시예에 따른 메시지 처리 장치(100)의 상세 구성을 나타낸 블록도이다. 도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 메시지 처리 장치(100)는 서비스 관리 모듈(102), 디바이스 관리 모듈(104), 메시지 서버(106) 및 써드 파티 메시지 서버(108)를 포함한다.
서비스 관리 모듈(102)은 애플리케이션 서버(미도시) 측 컴포넌트로서, 애플리케이션 서버와 메시지 서버(106) 사이에서 애플리케이션 서비스와 관련된 각종 메시지를 송수신한다. 본 발명의 실시예들에 있어서, 애플리케이션 서버는 애플리케이션 서비스를 디바이스(미도시)로 제공하기 위한 서버이다. 상기 애플리케이션 서비스는 예를 들어, 디바이스의 카메라 제어, 마이크 제어, 녹음 기능 제어 등과 같은 보안 관련 서비스가 될 수 있으나, 이는 일 예시에 불과할 뿐 애플리케이션 서비스가 특별히 한정되는 것은 아니다. 또한, 상기 메시지는 예를 들어, 상술한 애플리케이션 서비스를 디바이스에서 실행시키기 위한 제어 메시지, 상기 제어 메시지에 대한 수신 확인 메시지(즉, ACK 메시지) 등이 될 수 있다.
서비스 관리 모듈(102)은 애플리케이션 서버와 메시지 서버(106) 사이에서 메시지를 송수신함으로써 애플리케이션 서버에게 메시지 전송에 대한 신뢰성을 제공할 수 있다. 구체적으로, 서비스 관리 모듈(102)은 애플리케이션 서버의 요청에 따라 애플리케이션 서비스와 관련된 메시지를 생성하여 데이터베이스(미도시)에 저장하고, 상기 메시지를 메시지 서버(106)를 통해 디바이스 관리 모듈(104)로 전송할 수 있다.
이때, 서비스 관리 모듈(102)은 설정된 시간 이내에 상기 메시지에 대한 수신 확인 메시지(즉, ACK 메시지)를 디바이스 관리 모듈(104)로부터 수신하는지 여부에 따라 상기 메시지를 재전송하거나 삭제할 수 있다. 일 예시로서, 서비스 관리 모듈(102)은 설정된 시간 이내에 상기 메시지에 대한 수신 확인 메시지를 수신하지 않는 경우 상기 메시지를 재전송할 수 있다. 다른 예시로서, 서비스 관리 모듈(102)은 설정된 시간 이내에 상기 메시지에 대한 수신 확인 메시지를 수신하는 경우 데이터베이스에 저장된 상기 메시지를 삭제할 수 있다. 서비스 관리 모듈(102)이 메시지를 재전송하거나 삭제하는 과정에 대해서는 도 4 내지 7을 참조하여 구체적으로 후술하기로 한다.
또한, 서비스 관리 모듈(102)은 메시지 전송 취소, 유저 아이디를 디바이스 관리 모듈(104)의 아이디로 변환, 보안을 위한 인증 정보 관리, 멀티케스트(Multicast) 전송 요청 처리 등과 같은 부가 기능을 수행할 수 있다.
이러한 서비스 관리 모듈(102)은 부하 분산을 위해 복수 개 존재(즉, 멀티 인스턴스로 존재)할 수 있으며, 각 서비스 관리 모듈(102)은 서로 다른 아이디(즉, 인스턴스 아이디)를 가질 수 있다. 또한, 동일한 애플리케이션 서비스를 처리하는 서비스 관리 모듈(102)은 동일한 그룹 내에 속하게 되며, 동일한 그룹 아이디를 가질 수 있다. 또한, 서비스 관리 모듈(102) 및 애플리케이션 서버는 제1 네트워크에 위치할 수 있다. 본 실시예들에 있어서, 제1 네트워크는 예를 들어, 특정 조직 또는 기업의 인트라넷(intranet)일 수 있다.
디바이스 관리 모듈(104)은 디바이스 측 컴포넌트로서, 디바이스에 설치된 애플리케이션 클라이언트(미도시)와 메시지 서버(106) 사이에서 애플리케이션 서비스와 관련된 각종 메시지를 송수신한다. 본 발명의 실시예들에 있어서, 디바이스는 사용자가 소지하는 단말로서, 예를 들어 스마트폰, 노트북, 태블릿 PC 등과 같은 모바일 단말일 수 있다. 또한, 애플리케이션 클라이언트는 디바이스에 설치되어 애플리케이션 서버에서 제공되는 애플리케이션 서비스를 디바이스에서 실행시키기 위한 모듈이다.
디바이스 관리 모듈(104)은 메시지 서버(106)를 통해 서비스 관리 모듈(102)로부터 애플리케이션 서비스와 관련된 메시지를 수신하고, 메시지 서버(106)를 통해 상기 메시지에 대한 수신 확인 메시지(즉, ACK 메시지)를 서비스 관리 모듈(102)로 전송할 수 있다. 또한, 디바이스 관리 모듈(104)은 메시지 전송 취소, 보안을 위한 인증 정보 관리 등과 같은 부가 기능을 수행할 수 있다.
이러한 디바이스 관리 모듈(104)은 각 디바이스별로 하나 이상 존재할 수 있으며, 각 디바이스 관리 모듈(104)은 서로 다른 아이디를 가질 수 있다. 디바이스는 디바이스 관리 모듈(104)을 최초로 활성화하는 과정에서 메시지 서버(106)로부터 해당 디바이스 관리 모듈(104)의 아이디를 할당 받을 수 있다. 또한, 디바이스 관리 모듈(104) 및 상기 디바이스 관리 모듈(104)이 설치된 디바이스는 제2 네트워크에 위치할 수 있다. 본 실시예들에 있어서, 제2 네트워크는 제1 네트워크의 외부 영역으로서, 예를 들어 인터넷(internet)일 수 있다.
메시지 서버(106)는 서비스 관리 모듈(102)과 디바이스 관리 모듈(104) 사이에서 애플리케이션 서비스와 관련된 메시지를 중계(또는 양방향 전송)하는 서버이다. 이때, 메시지 서버(106)는 제1 네트워크와 제2 네트워크 사이의 DMZ(Demilitarized Zone)에 위치할 수 있다. DMZ는 제1 네트워크와 제2 네트워크 사이에 위치한 서브 네트워크로서, 제1 네트워크와 DMZ 사이에는 방화벽이 존재할 수 있다.
메시지 서버(106)는 메시지 중계를 위한 각종 채널 매니저를 포함할 수 있으며, 상기 채널 매니저를 통해 상기 메시지를 라우팅할 수 있다.
써드 파티 메시지 서버(108)는 타 조직 또는 기업의 메시지 서버로서, 예를 들어 GCM(Google Cloud Messaging), APNS(Apple Push Notification Service)의 메시지 서버(또는 푸시 서버)일 수 있다. 메시지 서버(106)는 내부의 채널 매니저를 통해 애플리케이션 서비스와 관련된 메시지를 써드 파티 메시지 서버(108)와 송수신할 수 있다.
도 2는 본 발명의 일 실시예에 따른 서비스 관리 모듈(102) 및 애플리케이션 서버(200)의 예시이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 서비스 관리 모듈(102)은 부하 분산을 위해 복수 개(예를 들어, 100개) 존재할 수 있으며, 라이브러리(미도시)를 통해 함수를 호출하는 형태로 애플리케이션 서버(200)와 양방향 통신할 수 있다. 이를 위해, 서비스 관리 모듈(102)은 애플리케이션 서버(200)와의 양방향 통신을 위한 인터페이스(미도시)를 구비할 수 있다. 상술한 바와 같이, 서비스 관리 모듈(102)은 애플리케이션 서버(200)의 요청에 따라 애플리케이션 서비스와 관련된 메시지를 생성하여 데이터베이스(150)에 저장하고, 상기 메시지를 메시지 서버(106)를 통해 디바이스 관리 모듈(104)로 전송할 수 있다. 상기 데이터베이스(150)는 제1 네트워크에서 각 서비스 관리 모듈(102)과 연결될 수 있다.
이때, 상기 메시지는 발신자 주소(source address), 수신자 주소(destination address), 경유자(via) 정보, 데이터 정보(예를 들어, 애플리케이션 아이디, 이전에 전송된 메시지의 아이디 등) 등을 포함할 수 있다. 여기서, 발신자 주소는 메시지를 전송하는 서비스 관리 모듈(102)의 아이디를 포함할 수 있으며, 수신자 주소는 메시지의 수신 대상인 디바이스 관리 모듈(104)의 아이디를 포함할 수 있다. 메시지 서버(106)는 상기 메시지에 포함된 발신자 정보, 수신자 정보, 경유자 정보 등을 이용하여 상기 메시지를 라우팅한 후 디바이스 관리 모듈(104)로 전달할 수 있다.
도 3은 본 발명의 일 실시예에 따른 디바이스 관리 모듈(104) 및 디바이스(300)의 예시이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 디바이스 관리 모듈(104)은 디바이스(300)에 설치되어 각 애플리케이션 클라이언트(302)에 해당 애플리케이션 서비스와 관련된 메시지를 송수신한다. 디바이스 관리 모듈(104-1)은 라이브러리(미도시)를 통해 함수를 호출하는 형태로 애플리케이션 클라이언트(302)와 양방향 통신할 수 있다. 이를 위해, 디바이스 관리 모듈(104-1)은 애플리케이션 클라이언트(302)와의 양방향 통신을 위한 인터페이스(미도시)를 구비할 수 있다.
또한, 디바이스 관리 모듈(104)은 메시지 서버(106)를 통해 서비스 관리 모듈(102)로부터 애플리케이션 서비스와 관련된 메시지를 수신하고, 메시지 서버(106)를 통해 상기 메시지에 대한 수신 확인 메시지(즉, ACK 메시지)를 서비스 관리 모듈(102)로 전송할 수 있다.
한편, 본 발명의 일 실시예에 따르면, 부하 분산을 위해 애플리케이션 서버(200) 측 컴포넌트, 즉 서비스 관리 모듈(102)을 멀티 인스턴스로 구성하고, 애플리케이션 서버(200)에서 상기 멀티 인스턴스를 통해 디바이스(300) 측 컴포넌트, 즉 디바이스 관리 모듈(104)과 메시지를 송수신할 수 있다. 그러나, 서비스 관리 모듈(102)이 멀티 인스턴스로 구성된다 하더라도 특정 서비스 관리 모듈(102)에 재전송 또는 삭제 대상이 되는 메시지가 집중되는 경우 해당 서비스 관리 모듈(102)에만 부하가 집중되어 전체 시스템 성능이 저하될 수 있다. 또한, 각 서비스 관리 모듈(102)에서 동일한 메시지를 중복으로 전송함에 따라 불필요한 부하를 발생시키는 경우가 빈번히 발생할 수 있다. 이에 따라, 본 발명의 실시예들에서는 메시지 전송이 어떤 서비스 관리 모듈(102)에 요청되었는지와 관계 없이 특정 디바이스 관리 모듈(104)에 대한 메시지 재전송 및 삭제 처리를 특정 서비스 관리 모듈(102)에서만 담당하도록 하여 메시지의 중복 전송을 방지하고 부하를 분산시킬 수 있도록 하였다. 이에 대해서는 도 4 내지 7을 참조하여 구체적으로 설명하기로 한다.
도 4는 본 발명의 일 실시예에 따른 서비스 관리 모듈(102)의 상세 구성을 나타낸 블록도이다. 도 4에 도시된 바와 같이, 본 발명의 일 실시예에 따른 서비스 관리 모듈(102)은 DB 접근부(402), 디바이스 관리 모듈 결정부(404) 및 처리부(406)를 포함한다.
DB 접근부(402)는 서비스 관리 모듈(102)이 활성화됨에 따라 데이터베이스(150)에 접근하여 자신의 식별 번호를 상기 데이터베이스(150)에 기록한다. 여기서, 식별 번호는 각 서비스 관리 모듈(102)을 식별하기 위한 번호로서, 각 서비스 관리 모듈(102)이 데이터베이스(150)에 접근한 순서에 따라 달라질 수 있다. 일 예시로서, 서비스 관리 모듈(102)이 데이터베이스(150)에 가장 먼저 접근하는 경우, 상기 서비스 관리 모듈(102)의 식별 번호는 #0이 될 수 있다. 또한, 서비스 관리 모듈(102)이 데이터베이스(150)에 두 번째로 접근하는 경우, 상기 서비스 관리 모듈(102)의 식별 번호는 #1이 될 수 있다. 이와 같이, 각 서비스 관리 모듈(102)의 식별 번호는 각 서비스 관리 모듈(102)가 데이터베이스(150)에 접근한 순서에 따라 #0, #1, #2...등이 될 수 있으며, 각 서비스 관리 모듈(102)은 자신의 식별 번호를 상기 데이터베이스(150)에 기록할 수 있다.
결정부(404)는 디바이스 관리 모듈(104) 각각의 아이디 및 서비스 관리 모듈(102)의 전체 개수를 이용하여 복수의 디바이스 관리 모듈(104) 중 자신이 담당하는 하나 이상의 담당 디바이스 관리 모듈(104)를 결정한다.
먼저, 결정부(404)는 데이터베이스(150)를 참조하여 디바이스 관리 모듈 각각의 아이디에 대한 해시값 및 서비스 관리 모듈의 전체 개수를 획득할 수 있다. 상기 디바이스 관리 모듈 각각의 아이디 또는 상기 디바이스 관리 모듈 각각의 아이디에 대한 해시값은 데이터베이스(150)에 저장될 수 있으며, 결정부(404)는 데이터베이스(150)를 참조하여 상기 디바이스 관리 모듈 각각의 아이디를 획득한 후 이를 해시하거나 또는 데이터베이스(150)를 참조하여 상기 디바이스 관리 모듈 각각의 아이디에 대한 해시값을 곧바로 획득할 수 있다. 또한, 상술한 바와 같이, 각 서비스 관리 모듈(102)은 자신의 식별 번호를 상기 데이터베이스(150)에 기록할 수 있으며, 결정부(404)는 데이터베이스(150)를 참조하여 서비스 관리 모듈의 전체 개수를 확인할 수 있다. 일 예시로서, 결정부(404)는 데이터베이스(150)에 마지막으로 기록된 서비스 관리 모듈(102)의 식별 번호를 참조하여 상기 서비스 관리 모듈의 전체 개수를 확인할 수 있다.
다음으로, 결정부(404)는 상기 디바이스 관리 모듈 각각의 아이디에 대한 해시값을 서비스 관리 모듈의 전체 개수로 모듈러(modulus) 연산하여 상기 디바이스 관리 모듈 각각에 대한 모듈러 연산값을 계산할 수 있다. 모듈러 연산은 두 값의 나눗셈에 의한 나머지를 구하는 연산으로서, a mod b (또는 a % b)로 표현되는 모듈러 연산의 경우 a 를 b로 나누었을 때의 나머지 값이 출력된다. 상기 디바이스 관리 모듈 각각의 아이디에 대한 해시값은 서로 다른 고유의 값을 가지게 되므로, 상기 디바이스 관리 모듈 각각의 아이디에 대한 해시값을 서비스 관리 모듈의 전체 개수로 모듈러 연산하는 경우 상기 디바이스 관리 모듈 각각이 랜덤한 확률로 서비스 관리 모듈의 전체 개수만큼 균일하게 그룹핑될 수 있다. 일 예시로서, 서비스 관리 모듈(102) 및 디바이스 관리 모듈(104)의 개수가 각각 100개 및 40만개인 경우, 결정부(404)는 상기 모듈러 연산을 통해 40만개의 디바이스 관리 모듈(104)을 100개의 그룹(즉, 모듈러 연산값 0, 1, 2...99에 각각 대응되는 그룹)으로 그룹핑할 수 있다.
다음으로, 결정부(404)는 상기 모듈러 연산값과 자신의 식별 번호를 참조하여 담당 디바이스 관리 모듈을 결정할 수 있다. 구체적으로, 결정부(404)는 상기 모듈러 연산값과 자신의 식별 번호를 각각 비교하여 상기 모듈러 연산값 중 자신의 식별 번호와 대응(또는 일치)되는 모듈러 연산값을 찾고, 상기 모듈러 연산값과 연관된 디바이스 관리 모듈의 아이디(즉, 상기 모듈러 연산값을 획득하는 데 사용된 디바이스 관리 모듈의 아이디)를 가진 디바이스 관리 모듈을 담당 디바이스 관리 모듈로 결정할 수 있다. 이와 같이, 각 서비스 관리 모듈(102)는 상기 모듈러 연산을 통해 자신이 담당하는 담당 디바이스 관리 모듈을 각각 결정할 수 있으며, 이에 따라 각 서비스 관리 모듈(102)별로 담당 디바이스 관리 모듈이 랜덤한 확률로 균일하게 분배될 수 있다.
처리부(406)는 서비스 관리 모듈(102)의 담당 디바이스 관리 모듈로 전송된 메시지를 재전송하거나 삭제한다. 상술한 바와 같이, 서비스 관리 모듈(102)은 설정된 시간 이내에 상기 메시지에 대한 수신 확인 메시지를 수신하지 않는 경우 상기 메시지를 재전송할 수 있으며, 설정된 시간 이내에 상기 메시지에 대한 수신 확인 메시지를 수신하는 경우 데이터베이스(150)에 저장된 상기 메시지를 삭제할 수 있다. 처리부(406)는 이와 같은 메시지 재전송 및 삭제 처리를 수행함에 있어서 자신이 담당하는 담당 디바이스 관리 모듈에 대한 메시지 재전송 및 삭제 처리만을 수행하고 자신의 담당 디바이스 관리 모듈이 아닌 타 디바이스 관리 모듈에 대한 메시지 재전송 및 삭제 처리는 수행하지 않게 된다. 즉, 본 발명의 실시예들에 따르면, 각 서비스 관리 모듈(102)이 자신이 담당하는 담당 디바이스 관리 모듈에 대한 메시지 재전송 및 삭제 처리만을 수행하도록 함으로써, 각 서비스 관리 모듈(102)에서의 메시지 중복 전송을 방지하고 부하를 분산시킬 수 있다.
또한, 처리부(406)는 설정된 주기(예를 들어, 2분)마다 메시지의 재전송 또는 삭제 여부를 결정할 수 있다. 이때, 상기 주기는 각 서비스 관리 모듈(102)별로 상이할 수 있다. 처리부(406)는 상기 주기마다 각 담당 디바이스 관리 모듈에 대한 메시지를 하나씩 재전송하거나 삭제할 수 있다.
이때, 서비스 관리 모듈(102)의 전체 개수가 변경되는 경우, 결정부(404)는 상기 메시지의 재전송 또는 삭제 시점에 상기 모듈러 연산값을 재계산하여 상기 담당 디바이스 관리 모듈을 재결정할 수 있다. 일 예시로서, 시스템 장애 등으로 인해 복수의 서비스 관리 모듈(102) 중 일부가 동작하지 않는 경우, 결정부(404)는 상기 메시지의 재전송 또는 삭제 시점에 상기 모듈러 연산값을 재계산하여 상기 담당 디바이스 관리 모듈을 재결정할 수 있다. 다른 예시로서, 특정 솔루션의 사용자 증가 등으로 인해 서비스 관리 모듈(102)이 새롭게 추가되는 경우, 결정부(404)는 상기 메시지의 재전송 또는 삭제 시점에 상기 모듈러 연산값을 재계산하여 상기 담당 디바이스 관리 모듈을 재결정할 수 있다. 또한, 메시지를 재전송 또는 삭제하는 주기는 각 서비스 관리 모듈(102)별로 상이할 수 있으며, 이 경우 각 서비스 관리 모듈(102)별로 상기 모듈러 연산값을 재계산하여 상기 담당 디바이스 관리 모듈을 재결정하는 시점 또한 상이할 수 있다.
이와 같이, 본 발명의 실시예들에 따르면, 서비스 관리 모듈(102)의 전체 개수가 변경되는 경우 각 서비스 관리 모듈(102)에서 담당하는 담당 디바이스 관리 모듈 또한 동적으로 변경시킴으로써, 일부 서비스 관리 모듈(102)에서 장애가 발생하거나 새로운 서비스 관리 모듈(102)이 추가되더라도 이를 반영하여 메시지 처리를 효율적으로 수행할 수 있다.
도 5는 본 발명의 일 실시예에 따른 결정부(404)에서 담당 디바이스 관리 모듈을 결정하는 과정을 설명하기 위한 예시이다.
여기서, 서비스 관리 모듈(102) 및 디바이스 관리 모듈(104)의 개수는 각각 3개 및 9개인 것으로 가정한다. 또한, 각 서비스 관리 모듈(102)의 식별 번호는 #0, #1 및 #2이며, 각 디바이스 관리 모듈(104)의 아이디에 대한 해시값은 1, 2, 3...9 인 것으로 가정한다.
상술한 바와 같이, 각 서비스 관리 모듈(102)의 결정부(404)는 디바이스 관리 모듈 각각의 아이디에 대한 해시값을 서비스 관리 모듈의 전체 개수로 모듈러 연산하여 상기 디바이스 관리 모듈 각각에 대한 모듈러 연산값을 계산하고, 상기 모듈러 연산값과 자신의 식별 번호를 참조하여 담당 디바이스 관리 모듈을 결정할 수 있다. 도 3에서, 각 서비스 관리 모듈(102)의 결정부(404)는 아래 표 1과 같은 모듈러 연산값을 각각 계산할 수 있다.
디바이스 관리 모듈 모듈러 연산값
디바이스 관리 모듈 1 1
디바이스 관리 모듈 2 2
디바이스 관리 모듈 3 0
디바이스 관리 모듈 4 1
디바이스 관리 모듈 5 2
디바이스 관리 모듈 6 0
디바이스 관리 모듈 7 1
디바이스 관리 모듈 8 2
디바이스 관리 모듈 9 0
이후, 각 서비스 관리 모듈(102)의 결정부(404)는 상기 모듈러 연산값 중 자신의 식별 번호와 대응되는 모듈러 연산값을 찾고, 상기 모듈러 연산값과 연관된 디바이스 관리 모듈의 아이디(즉, 상기 모듈러 연산값을 획득하는 데 사용된 디바이스 관리 모듈의 아이디)를 가진 디바이스 관리 모듈을 담당 디바이스 관리 모듈로 결정할 수 있다. 위 예시에서, 서비스 관리 모듈 #0은 모듈러 연산값 0과 연관된 디바이스 관리 모듈 3, 디바이스 관리 모듈 6 및 디바이스 관리 모듈 9를 담당 디바이스 관리 모듈로 결정하고, 디바이스 관리 모듈 3, 디바이스 관리 모듈 6 및 디바이스 관리 모듈 9에 대한 메시지 재전송 및 삭제 처리만을 수행할 수 있다. 또한, 서비스 관리 모듈 #1은 모듈러 연산값 1과 연관된 디바이스 관리 모듈 1, 디바이스 관리 모듈 4 및 디바이스 관리 모듈 7을 담당 디바이스 관리 모듈로 결정하고, 디바이스 관리 모듈 1, 디바이스 관리 모듈 4 및 디바이스 관리 모듈 7에 대한 메시지 재전송 및 삭제 처리만을 수행할 수 있다. 또한, 서비스 관리 모듈 #2는 모듈러 연산값 2와 연관된 디바이스 관리 모듈 2, 디바이스 관리 모듈 5 및 디바이스 관리 모듈 8을 담당 디바이스 관리 모듈로 결정하고, 디바이스 관리 모듈 2, 디바이스 관리 모듈 5 및 디바이스 관리 모듈 8에 대한 메시지 재전송 및 삭제 처리만을 수행할 수 있다.
도 6 및 도 7은 본 발명의 일 실시예에 따른 결정부(404)에서 서비스 관리 모듈의 전체 개수가 변경됨에 따라 담당 디바이스 관리 모듈을 재결정하는 과정을 설명하기 위한 예시이다. 도 6에서는 서비스 관리 모듈 #2가 장애 등으로 인해 동작하지 않는 것으로 가정하며, 도 7에서는 서비스 관리 모듈 #3이 부하 분산을 위해 새롭게 추가된 것으로 가정한다.
도 6을 참조하면, 서비스 관리 모듈 #2가 동작하지 않음에 따라 각 서비스 관리 모듈(102)의 결정부(404)는 메시지의 재전송 또는 삭제 시점에 상기 모듈러 연산값을 재계산하여 담당 디바이스 관리 모듈을 재결정할 수 있다. 위 예시에서, 서비스 관리 모듈 #0은 모듈러 연산값 0과 연관된 디바이스 관리 모듈 2, 디바이스 관리 모듈 4, 디바이스 관리 모듈 6 및 디바이스 관리 모듈 8을 담당 디바이스 관리 모듈로 결정하고, 디바이스 관리 모듈 2, 디바이스 관리 모듈 4, 디바이스 관리 모듈 6 및 디바이스 관리 모듈 8에 대한 메시지 재전송 및 삭제 처리만을 수행할 수 있다. 또한, 서비스 관리 모듈 #1은 모듈러 연산값 1과 연관된 디바이스 관리 모듈 1, 디바이스 관리 모듈 3, 디바이스 관리 모듈 5 및 디바이스 관리 모듈 7을 담당 디바이스 관리 모듈로 결정하고 디바이스 관리 모듈 1, 디바이스 관리 모듈 3, 디바이스 관리 모듈 5 및 디바이스 관리 모듈 7에 대한 메시지 재전송 및 삭제 처리만을 수행할 수 있다.
또한, 도 7을 참조하면, 서비스 관리 모듈 #3이 추가됨에 따라 각 서비스 관리 모듈(102)의 결정부(404)는 메시지의 재전송 또는 삭제 시점에 상기 모듈러 연산값을 재계산하여 담당 디바이스 관리 모듈을 재결정할 수 있다. 위 예시에서, 서비스 관리 모듈 #0은 모듈러 연산값 0과 연관된 디바이스 관리 모듈 4 및 디바이스 관리 모듈 8을 담당 디바이스 관리 모듈로 결정하고, 디바이스 관리 모듈 4 및 디바이스 관리 모듈 8에 대한 메시지 재전송 및 삭제 처리만을 수행할 수 있다. 또한, 서비스 관리 모듈 #1은 모듈러 연산값 1과 연관된 디바이스 관리 모듈 1, 디바이스 관리 모듈 5 및 디바이스 관리 모듈 9를 담당 디바이스 관리 모듈로 결정하고, 디바이스 관리 모듈 1, 디바이스 관리 모듈 5 및 디바이스 관리 모듈 9에 대한 메시지 재전송 및 삭제 처리만을 수행할 수 있다. 또한, 서비스 관리 모듈 #2는 모듈러 연산값 2와 연관된 디바이스 관리 모듈 2 및 디바이스 관리 모듈 6을 담당 디바이스 관리 모듈로 결정하고, 디바이스 관리 모듈 2 및 디바이스 관리 모듈 6에 대한 메시지 재전송 및 삭제 처리만을 수행할 수 있다. 또한, 서비스 관리 모듈 #3은 모듈러 연산값 3과 연관된 디바이스 관리 모듈 3 및 디바이스 관리 모듈 7을 담당 디바이스 관리 모듈로 결정하고, 디바이스 관리 모듈 3 및 디바이스 관리 모듈 7에 대한 메시지 재전송 및 삭제 처리만을 수행할 수 있다.
도 8은 본 발명의 일 실시예에 따른 메시지 처리 방법을 설명하기 위한 흐름도이다. 도 8에 도시된 방법은 예를 들어, 상술한 서비스 관리 모듈(102)에 의해 수행될 수 있다. 도시된 흐름도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
S802 단계에서, 결정부(404)는 디바이스 관리 모듈(104) 각각의 아이디에 대한 해시값을 상기 서비스 관리 모듈(102)의 전체 개수로 모듈러 연산하여 상기 디바이스 관리 모듈 각각에 대한 모듈러 연산값을 계산한다.
S804 단계에서, 결정부(404)는 상기 모듈러 연산값과 자신의 식별 번호를 각각 비교하여 상기 담당 디바이스 관리 모듈을 결정한다.
S806 단계에서, 처리부(406)는 자신이 담당하는 담당 디바이스 관리 모듈에 대한 메시지 재전송 및 삭제 처리를 수행한다.
S808 단계에서, 상기 서비스 관리 모듈(102)의 전체 개수가 변경되는 경우, 결정부(404)는 메시지의 재전송 또는 삭제 시점에 상기 모듈러 연산값을 재계산한다.
S810 단계에서, 결정부(404)는 재계산된 모듈로 연산값과 자신의 식별 번호를 각각 비교하여 상기 담당 디바이스 관리 모듈을 재결정한다.
S812 단계에서, 처리부(406)는 S808 단계에서 결정된 담당 디바이스 관리 모듈에 대한 메시지 재전송 및 삭제 처리를 수행한다.
도 9는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술되지 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.
도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 메시지 처리 장치(100), 또는 메시지 처리 장치(100)에 포함되는 하나 이상의 컴포넌트일 수 있다.
컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.
통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.
컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 전술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
10 : 컴퓨팅 환경
12 : 컴퓨팅 장치
14 : 프로세서
16 : 컴퓨터 판독 가능 저장 매체
18 : 통신 버스
20 : 프로그램
22 : 입출력 인터페이스
24 : 입출력 장치
26 : 네트워크 통신 인터페이스
100 : 메시지 처리 장치
102 : 서비스 관리 모듈
104 : 디바이스 관리 모듈
106 : 메시지 서버
108 : 써드 파티 메시지 서버
150 : 데이터베이스
200 : 애플리케이션 서버
300 : 디바이스
302 : 애플리케이션 클라이언트
402 : DB 접근부
404 : 결정부
406 : 처리부

Claims (15)

  1. 복수의 디바이스 관리 모듈; 및
    상기 복수의 디바이스 관리 모듈 중 적어도 하나의 디바이스 관리 모듈로 메시지를 전송하는 복수의 서비스 관리 모듈을 포함하며,
    상기 서비스 관리 모듈 각각은, 상기 디바이스 관리 모듈 각각의 아이디 및 상기 서비스 관리 모듈의 전체 개수를 이용하여 상기 복수의 디바이스 관리 모듈 중 자신이 담당하는 하나 이상의 담당 디바이스 관리 모듈을 결정하며, 상기 각 담당 디바이스 관리 모듈로 전송된 메시지를 재전송하거나 삭제하는, 메시지 처리 장치.
  2. 청구항 1에 있어서,
    상기 서비스 관리 모듈 각각은, 상기 디바이스 관리 모듈 각각의 아이디에 대한 해시값을 상기 서비스 관리 모듈의 전체 개수로 모듈러(modulus) 연산하여 상기 디바이스 관리 모듈 각각에 대한 모듈러 연산값을 계산하고, 상기 모듈러 연산값과 자신의 식별 번호를 참조하여 상기 담당 디바이스 관리 모듈을 결정하는, 메시지 처리 장치.
  3. 청구항 2에 있어서,
    상기 식별 번호는, 상기 서비스 관리 모듈 각각이 데이터베이스에 접근한 순서에 따라 결정되는, 메시지 처리 장치.
  4. 청구항 3에 있어서,
    상기 서비스 관리 모듈 각각은, 상기 자신의 식별 번호를 상기 데이터베이스에 기록하며, 상기 데이터베이스를 참조하여 상기 서비스 관리 모듈의 전체 개수를 확인하는, 메시지 처리 장치.
  5. 청구항 2에 있어서,
    상기 서비스 관리 모듈 각각은, 설정된 주기마다 상기 메시지의 재전송 또는 삭제 여부를 결정하며, 상기 서비스 관리 모듈의 전체 개수가 변경되는 경우 상기 메시지의 재전송 또는 삭제 시점에 상기 모듈러 연산값을 재계산하여 상기 담당 디바이스 관리 모듈을 재결정하는, 메시지 처리 장치.
  6. 복수의 디바이스 관리 모듈 중 적어도 하나의 디바이스 관리 모듈로 메시지를 전송하는 서비스 관리 모듈로서,
    상기 디바이스 관리 모듈 각각의 아이디 및 상기 서비스 관리 모듈의 전체 개수를 이용하여 상기 복수의 디바이스 관리 모듈 중 자신이 담당하는 하나 이상의 담당 디바이스 관리 모듈을 결정하는 결정부; 및
    상기 담당 디바이스 관리 모듈로 전송된 메시지를 재전송하거나 삭제하는 처리부를 포함하는, 서비스 관리 모듈.
  7. 청구항 6에 있어서,
    상기 결정부는, 상기 디바이스 관리 모듈 각각의 아이디에 대한 해시값을 상기 서비스 관리 모듈의 전체 개수로 모듈러(modulus) 연산하여 상기 디바이스 관리 모듈 각각에 대한 모듈러 연산값을 계산하고, 상기 모듈러 연산값과 자신의 식별 번호를 참조하여 상기 담당 디바이스 관리 모듈을 결정하는, 서비스 관리 모듈.
  8. 청구항 7에 있어서,
    상기 식별 번호는, 상기 서비스 관리 모듈 각각이 데이터베이스에 접근한 순서에 따라 결정되는, 서비스 관리 모듈.
  9. 청구항 8에 있어서,
    상기 결정부는, 상기 자신의 식별 번호를 상기 데이터베이스에 기록하며, 상기 데이터베이스를 참조하여 상기 서비스 관리 모듈의 전체 개수를 확인하는, 서비스 관리 모듈.
  10. 청구항 7에 있어서,
    상기 처리부는, 설정된 주기마다 상기 메시지의 재전송 또는 삭제 여부를 결정하며,
    상기 결정부는, 상기 서비스 관리 모듈의 전체 개수가 변경되는 경우 상기 메시지의 재전송 또는 삭제 시점에 상기 모듈러 연산값을 재계산하여 상기 담당 디바이스 관리 모듈을 재결정하는, 서비스 관리 모듈.
  11. 복수의 디바이스 관리 모듈 중 적어도 하나의 디바이스 관리 모듈로 메시지를 전송하는 서비스 관리 모듈의 결정부에서, 상기 디바이스 관리 모듈 각각의 아이디 및 상기 서비스 관리 모듈의 전체 개수를 이용하여 상기 복수의 디바이스 관리 모듈 중 자신이 담당하는 하나 이상의 담당 디바이스 관리 모듈을 결정하는 단계; 및
    상기 서비스 관리 모듈의 처리부에서, 상기 담당 디바이스 관리 모듈로 전송된 메시지를 재전송하거나 삭제하는 단계를 포함하는, 메시지 처리 방법.
  12. 청구항 11에 있어서,
    상기 담당 디바이스 관리 모듈을 결정하는 단계는,
    상기 디바이스 관리 모듈 각각의 아이디에 대한 해시값을 상기 서비스 관리 모듈의 전체 개수로 모듈러(modulus) 연산하여 상기 디바이스 관리 모듈 각각에 대한 모듈러 연산값을 계산하는 단계; 및
    상기 모듈러 연산값과 자신의 식별 번호를 참조하여 상기 담당 디바이스 관리 모듈을 결정하는 단계를 포함하는, 메시지 처리 방법.
  13. 청구항 12에 있어서,
    상기 식별 번호는, 상기 서비스 관리 모듈 각각이 데이터베이스에 접근한 순서에 따라 결정되는, 메시지 처리 방법.
  14. 청구항 13에 있어서,
    상기 담당 디바이스 관리 모듈을 결정하는 단계는,
    상기 연산값을 계산하는 단계 이전에,
    상기 자신의 식별 번호를 상기 데이터베이스에 기록하며, 상기 데이터베이스를 참조하여 상기 서비스 관리 모듈의 전체 개수를 확인하는 단계를 더 포함하는, 메시지 처리 방법.
  15. 청구항 12에 있어서,
    상기 메시지를 재전송하거나 삭제하는 단계는, 설정된 주기마다 상기 메시지의 재전송 또는 삭제 여부를 결정하며,
    상기 모듈러 연산값을 계산하는 단계는, 상기 서비스 관리 모듈의 전체 개수가 변경되는 경우 상기 메시지의 재전송 또는 삭제 시점에 상기 모듈러 연산값을 재계산하고,
    상기 담당 디바이스 관리 모듈을 결정하는 단계는, 재계산된 상기 모듈러 연산값과 자신의 식별 번호를 참조하여 상기 담당 디바이스 관리 모듈을 재결정하는, 메시지 처리 방법.
KR1020170136409A 2017-10-20 2017-10-20 메시지 처리 장치 및 방법 KR101996239B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170136409A KR101996239B1 (ko) 2017-10-20 2017-10-20 메시지 처리 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170136409A KR101996239B1 (ko) 2017-10-20 2017-10-20 메시지 처리 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20190044239A true KR20190044239A (ko) 2019-04-30
KR101996239B1 KR101996239B1 (ko) 2019-07-04

Family

ID=66285862

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170136409A KR101996239B1 (ko) 2017-10-20 2017-10-20 메시지 처리 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101996239B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050040937A (ko) * 2002-09-06 2005-05-03 마쯔시다덴기산교 가부시키가이샤 홈 단말 장치 및 통신 시스템
KR20140053617A (ko) * 2012-10-26 2014-05-08 주식회사 아이디스 영상 감시 장치 접속 관리 시스템의 부하 분산 장치 및 방법
KR20170087116A (ko) 2016-01-19 2017-07-28 명지대학교 산학협력단 모바일 단말의 보안 감시 시스템 및 이를 이용한 모바일 단말의 보안 감시 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050040937A (ko) * 2002-09-06 2005-05-03 마쯔시다덴기산교 가부시키가이샤 홈 단말 장치 및 통신 시스템
KR20140053617A (ko) * 2012-10-26 2014-05-08 주식회사 아이디스 영상 감시 장치 접속 관리 시스템의 부하 분산 장치 및 방법
KR20170087116A (ko) 2016-01-19 2017-07-28 명지대학교 산학협력단 모바일 단말의 보안 감시 시스템 및 이를 이용한 모바일 단말의 보안 감시 방법

Also Published As

Publication number Publication date
KR101996239B1 (ko) 2019-07-04

Similar Documents

Publication Publication Date Title
US11729129B2 (en) Message quests for rapid re-hosting of client devices
CN110458582B (zh) 基于区块链系统的业务处理方法、装置、介质及电子设备
US7676473B2 (en) Propagation of user preferences to end devices
US9516030B2 (en) Communications system for residents of secure facility
CN110413424B (zh) 可配置的第三方消息回调方法、装置、服务器和存储介质
US20130139178A1 (en) Cluster management system and method
US20140324655A1 (en) Electronic system, computing device and methods for updating data records across multiple electronic credit databases
KR101996239B1 (ko) 메시지 처리 장치 및 방법
KR101758337B1 (ko) 메시지의 중복알림을 방지하는 방법, 저장 매체 및 이를 운용하는 사용자 장치
KR20120052444A (ko) 모바일 메시징 서비스에서의 파일 전송을 지원하는 파일 전송 관리 시스템 및 파일 전송 관리 방법
KR102284874B1 (ko) 메시지 처리 장치 및 방법
KR102439775B1 (ko) 메시지 처리 장치 및 방법
KR102412225B1 (ko) 메시지 서버 및 이를 포함하는 메시지 처리 장치
CN110574391B (zh) 管理电话通信系统以动态地节流呼叫尝试并减少拥塞
KR102412226B1 (ko) 메시지 서버 및 이를 포함하는 메시지 처리 장치
KR101965306B1 (ko) 메시지 서버 및 이를 포함하는 메시지 처리 장치
KR101965307B1 (ko) 메시지 처리 장치
KR102350911B1 (ko) 메시지 서버
KR20190136499A (ko) 메시징 서비스 제공 장치 및 방법
US6836470B1 (en) Method for reliable message delivery in a network of mobile computers
CN111552907A (zh) 消息处理方法、装置、设备和存储介质
CN115118628B (zh) 一种异常报文处理方法及装置
US20240013285A1 (en) Method, server, and user terminal for providing gift information
WO2017072784A1 (en) Method and system for providing enterprise customer services via social media messaging using non-text triggers
KR101802563B1 (ko) 동보 메시지 전송방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)