KR101996239B1 - Message processing system and method - Google Patents

Message processing system and method Download PDF

Info

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

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

메시지 처리 장치 및 방법과 이를 수행하기 위한 서비스 관리 모듈이 제공된다. 본 발명의 일 실시예에 따른 메시지 처리 장치는, 복수의 디바이스 관리 모듈; 및 상기 복수의 디바이스 관리 모듈 중 적어도 하나의 디바이스 관리 모듈로 메시지를 전송하는 복수의 서비스 관리 모듈을 포함하며, 상기 서비스 관리 모듈 각각은, 상기 디바이스 관리 모듈 각각의 아이디 및 상기 서비스 관리 모듈의 전체 개수를 이용하여 상기 복수의 디바이스 관리 모듈 중 자신이 담당하는 하나 이상의 담당 디바이스 관리 모듈을 결정하며, 상기 각 담당 디바이스 관리 모듈로 전송된 메시지를 재전송하거나 삭제한다.A message processing apparatus and method and a service management module for performing the message processing apparatus and method are provided. A message processing apparatus according to an embodiment of the present invention includes: a plurality of device management modules; And a plurality of service management modules for transmitting a message to at least one device management module among the plurality of device management modules, wherein each of the service management modules includes: an ID of each of the device management modules and a total number Determines which of the plurality of device management modules is responsible for one or more responsible device management modules, and retransmits or deletes the messages transmitted to the respective responsible device management modules.

Description

메시지 처리 장치 및 방법{MESSAGE PROCESSING SYSTEM AND METHOD}[0001] MESSAGE PROCESSING SYSTEM AND METHOD [0002]

본 발명의 실시예들은 메시지 처리 장치 및 방법에 관한 것으로, 특히 메시지 처리 시스템의 부하를 분산하는 기술과 관련된다.Embodiments of the present invention relate to a message processing apparatus and method, and more particularly to techniques for distributing the load of a message processing system.

최근, 모바일 단말의 사용이 일반화되고 정보통신기술이 발달함에 따라, 다양한 메시지 서비스를 제공하는 메시지 처리 시스템에 대한 수요가 증가하고 있다. 이러한 메시지 처리 시스템은 보안 서비스, 이메일 서비스, 결제 서비스 등 다양한 분야에서 적용될 수 있다. 상기 메시지 처리 시스템에 있어서, 송신측과 수신측은 메시지 처리 시스템에서 제공하는 서비스와 관련된 각종 메시지를 송수신하게 되며, 상기 서비스의 신뢰성을 확보하기 위해 메시지를 재전송하는 경우가 빈번하게 발생된다.Recently, with the generalization of mobile terminals and the development of information communication technology, there is an increasing demand for a message processing system that provides various message services. Such a message processing system can be applied to various fields such as a security service, an e-mail service, and a payment service. In the message processing system, the transmitting side and the receiving side transmit and receive various messages related to the service provided by the message processing system, and the message is often retransmitted to secure the reliability of the service.

그러나, 종래의 메시지 처리 시스템에서는 메시지 재전송에 따른 송신측과 수신측 사이에서 메시지가 중복 전송되는 경우가 빈번히 발생하게 되었으며 이에 따라 시스템 과부하가 발생되는 문제가 있었다. 또한, 이러한 문제점은 서비스 규모가 커져 송신측/수신측 인스턴스가 많아짐에 따라 더욱 두드러지게 나타난다.However, in the conventional message processing system, a message is repeatedly transmitted between a transmitting side and a receiving side due to message retransmission, which frequently results in overloading of the system. Also, this problem becomes more prominent as the size of the service becomes larger and the number of the transmitting / receiving side instances increases.

한국공개특허공보 제10-2017-0087116호(2017.07.28)Korean Patent Publication No. 10-2017-0087116 (July 27, 2017)

본 발명의 실시예들은 메시지의 중복 전송을 방지하고 부하를 분산시키는 수단을 제공하기 위한 것이다.Embodiments of the present invention are intended to provide means for preventing duplicate transmissions of messages and distributing the load.

본 발명의 예시적인 실시예에 따르면, 복수의 디바이스 관리 모듈; 및 상기 복수의 디바이스 관리 모듈 중 적어도 하나의 디바이스 관리 모듈로 메시지를 전송하는 복수의 서비스 관리 모듈을 포함하며, 상기 서비스 관리 모듈 각각은, 상기 디바이스 관리 모듈 각각의 아이디 및 상기 서비스 관리 모듈의 전체 개수를 이용하여 상기 복수의 디바이스 관리 모듈 중 자신이 담당하는 하나 이상의 담당 디바이스 관리 모듈을 결정하며, 상기 각 담당 디바이스 관리 모듈로 전송된 메시지를 재전송하거나 삭제하는, 메시지 처리 장치가 제공된다.According to an exemplary embodiment of the present invention, a plurality of device management modules; And a plurality of service management modules for transmitting a message to at least one device management module among the plurality of device management modules, wherein each of the service management modules includes: an ID of each of the device management modules and a total number Is used to determine one or more responsible device management modules that are responsible for the plurality of device management modules and to retransmit or delete the messages transmitted to the respective responsible device management modules.

상기 서비스 관리 모듈 각각은, 상기 디바이스 관리 모듈 각각의 아이디에 대한 해시값을 상기 서비스 관리 모듈의 전체 개수로 모듈러(modulus) 연산하여 상기 디바이스 관리 모듈 각각에 대한 모듈러 연산값을 계산하고, 상기 모듈러 연산값과 자신의 식별 번호를 참조하여 상기 담당 디바이스 관리 모듈을 결정할 수 있다.Wherein each of the service management modules calculates a modulo operation value for each of the device management modules by performing a modulus operation of a hash value for each ID of each of the device management modules to the total number of the service management modules, Value and its own identification number to determine the responsible device management module.

상기 식별 번호는, 상기 서비스 관리 모듈 각각이 데이터베이스에 접근한 순서에 따라 결정될 수 있다.The identification number may be determined according to the order in which each of the service management modules accesses the database.

상기 서비스 관리 모듈 각각은, 상기 자신의 식별 번호를 상기 데이터베이스에 기록하며, 상기 데이터베이스를 참조하여 상기 서비스 관리 모듈의 전체 개수를 확인할 수 있다.Each of the service management modules records the identification number of the service management module in the database and confirms the total number of the service management modules by referring to the database.

상기 서비스 관리 모듈 각각은, 설정된 주기마다 상기 메시지의 재전송 또는 삭제 여부를 결정하며, 상기 서비스 관리 모듈의 전체 개수가 변경되는 경우 상기 메시지의 재전송 또는 삭제 시점에 상기 모듈러 연산값을 재계산하여 상기 담당 디바이스 관리 모듈을 재결정할 수 있다.Each of the service management modules determines whether or not to retransmit or delete the message at a set interval. When the total number of the service management modules is changed, the service management module recalculates the modular operation value at the time of retransmission or deletion of the message, The device management module can be re-determined.

본 발명의 다른 예시적인 실시예에 따르면, 복수의 디바이스 관리 모듈 중 적어도 하나의 디바이스 관리 모듈로 메시지를 전송하는 서비스 관리 모듈로서, 상기 디바이스 관리 모듈 각각의 아이디 및 상기 서비스 관리 모듈의 전체 개수를 이용하여 상기 복수의 디바이스 관리 모듈 중 자신이 담당하는 하나 이상의 담당 디바이스 관리 모듈을 결정하는 결정부; 및 상기 담당 디바이스 관리 모듈로 전송된 메시지를 재전송하거나 삭제하는 처리부를 포함하는, 서비스 관리 모듈이 제공된다.According to another exemplary embodiment of the present invention, there is provided a service management module for transmitting a message to at least one device management module among a plurality of device management modules, the service management module comprising: A determining unit that determines at least one responsible device management module of the plurality of device management modules, And a processing unit for retransmitting or deleting the message sent to the responsible device management module.

상기 결정부는, 상기 디바이스 관리 모듈 각각의 아이디에 대한 해시값을 상기 서비스 관리 모듈의 전체 개수로 모듈러(modulus) 연산하여 상기 디바이스 관리 모듈 각각에 대한 모듈러 연산값을 계산하고, 상기 모듈러 연산값과 자신의 식별 번호를 참조하여 상기 담당 디바이스 관리 모듈을 결정할 수 있다.Wherein the determiner calculates a modulo operation value for each of the device management modules by performing a modulus operation of a hash value for each ID of each of the device management modules to the total number of the service management modules, The responsible device management module can be determined with reference to the identification number of the device management module.

상기 식별 번호는, 상기 서비스 관리 모듈 각각이 데이터베이스에 접근한 순서에 따라 결정될 수 있다.The identification number may be determined according to the order in which each of the service management modules accesses the database.

상기 결정부는, 상기 자신의 식별 번호를 상기 데이터베이스에 기록하며, 상기 데이터베이스를 참조하여 상기 서비스 관리 모듈의 전체 개수를 확인할 수 있다.The determination unit may record the identification number of the user in the database and confirm the total number of the service management modules by referring to the database.

상기 처리부는, 설정된 주기마다 상기 메시지의 재전송 또는 삭제 여부를 결정하며, 상기 결정부는, 상기 서비스 관리 모듈의 전체 개수가 변경되는 경우 상기 메시지의 재전송 또는 삭제 시점에 상기 모듈러 연산값을 재계산하여 상기 담당 디바이스 관리 모듈을 재결정할 수 있다.Wherein the processing unit determines whether to retransmit or delete the message at a set interval, and the determining unit recalculates the modulo operation value at the time of retransmission or deletion of the message when the total number of the service management modules is changed, The responsible device management module can be re-determined.

본 발명의 다른 예시적인 실시예에 따르면, 복수의 디바이스 관리 모듈 중 적어도 하나의 디바이스 관리 모듈로 메시지를 전송하는 서비스 관리 모듈의 결정부에서, 상기 디바이스 관리 모듈 각각의 아이디 및 상기 서비스 관리 모듈의 전체 개수를 이용하여 상기 복수의 디바이스 관리 모듈 중 자신이 담당하는 하나 이상의 담당 디바이스 관리 모듈을 결정하는 단계; 및 상기 서비스 관리 모듈의 처리부에서, 상기 담당 디바이스 관리 모듈로 전송된 메시지를 재전송하거나 삭제하는 단계를 포함하는, 메시지 처리 방법이 제공된다.According to another exemplary embodiment of the present invention, in a determination unit of a service management module that transmits a message to at least one device management module among a plurality of device management modules, the ID of each of the device management modules, Determining at least one responsible device management module of the plurality of device management modules, the number being managed by the plurality of device management modules; And a step of, in the processing unit of the service management module, retransmitting or deleting the message sent to the responsible device management module.

상기 담당 디바이스 관리 모듈을 결정하는 단계는, 상기 디바이스 관리 모듈 각각의 아이디에 대한 해시값을 상기 서비스 관리 모듈의 전체 개수로 모듈러(modulus) 연산하여 상기 디바이스 관리 모듈 각각에 대한 모듈러 연산값을 계산하는 단계; 및 상기 모듈러 연산값과 자신의 식별 번호를 참조하여 상기 담당 디바이스 관리 모듈을 결정하는 단계를 포함할 수 있다.The step of determining the responsible device management module may include calculating a modular operation value for each of the device management modules by performing a modulus operation of a hash value for each ID of each of the device management modules to the total number of the service management modules step; And determining the responsible device management module by referring to the modular operation value and its own identification number.

상기 식별 번호는, 상기 서비스 관리 모듈 각각이 데이터베이스에 접근한 순서에 따라 결정될 수 있다.The identification number may be determined according to the order in which each of the service management modules accesses the database.

상기 담당 디바이스 관리 모듈을 결정하는 단계는, 상기 연산값을 계산하는 단계 이전에, 상기 자신의 식별 번호를 상기 데이터베이스에 기록하며, 상기 데이터베이스를 참조하여 상기 서비스 관리 모듈의 전체 개수를 확인하는 단계를 더 포함할 수 있다.The step of determining the responsible device management module may include the step of recording the identification number of the device itself in the database and checking the total number of the service management modules with reference to the database, .

상기 메시지를 재전송하거나 삭제하는 단계는, 설정된 주기마다 상기 메시지의 재전송 또는 삭제 여부를 결정하며, 상기 모듈러 연산값을 계산하는 단계는, 상기 서비스 관리 모듈의 전체 개수가 변경되는 경우 상기 메시지의 재전송 또는 삭제 시점에 상기 모듈러 연산값을 재계산하고, 상기 담당 디바이스 관리 모듈을 결정하는 단계는, 재계산된 상기 모듈러 연산값과 자신의 식별 번호를 참조하여 상기 담당 디바이스 관리 모듈을 재결정할 수 있다.Wherein the step of retransmitting or deleting the message determines whether to retransmit or delete the message at a set interval, and the step of calculating the modular operation value comprises: when the total number of the service management modules is changed, The modular calculation value may be recalculated at the time of deletion, and the step of determining the responsible device management module may re-determine the responsible device management module by referring to the re-calculated modular operation value and its identification number.

본 발명의 실시예들에 따르면, 각 서비스 관리 모듈이 자신이 담당하는 담당 디바이스 관리 모듈에 대한 메시지 재전송 및 삭제 처리만을 수행(즉, 각 서비스 관리 모듈 별로 담당 디바이스 관리 모듈 분배)하도록 함으로써, 각 서비스 관리 모듈에서의 메시지 중복 전송을 방지하고 부하를 분산시킬 수 있다.According to the embodiments of the present invention, each service management module performs only message retransmission and deletion processing for the responsible device management module (i.e., distributes the assigned device management module for each service management module) It is possible to prevent duplication of messages in the management module and to distribute the load.

또한, 본 발명의 실시예들에 따르면, 서비스 관리 모듈의 전체 개수가 변경되는 경우 각 서비스 관리 모듈에서 담당하는 담당 디바이스 관리 모듈 또한 동적으로 변경(즉, 동적으로 재분배)시킴으로써, 일부 서비스 관리 모듈에서 장애가 발생하거나 새로운 서비스 관리 모듈이 추가되더라도 이를 반영하여 메시지 처리를 효율적으로 수행할 수 있다.In addition, according to embodiments of the present invention, when the total number of service management modules is changed, the corresponding device management module in each service management module is also dynamically changed (i.e., dynamically redistributed) Even if a failure occurs or a new service management module is added, message processing can be performed efficiently by reflecting this.

도 1은 본 발명의 일 실시예에 따른 메시지 처리 장치의 상세 구성을 나타낸 블록도
도 2는 본 발명의 일 실시예에 따른 서비스 관리 모듈 및 애플리케이션 서버의 예시
도 3은 본 발명의 일 실시예에 따른 디바이스 관리 모듈 및 디바이스의 예시
도 4는 본 발명의 일 실시예에 따른 서비스 관리 모듈의 상세 구성을 나타낸 블록도
도 5는 본 발명의 일 실시예에 따른 결정부에서 담당 디바이스 관리 모듈을 결정하는 과정을 설명하기 위한 예시
도 6은 본 발명의 일 실시예에 따른 결정부에서 서비스 관리 모듈의 전체 개수가 변경됨에 따라 담당 디바이스 관리 모듈을 재결정하는 과정을 설명하기 위한 예시
도 7은 본 발명의 일 실시예에 따른 결정부에서 서비스 관리 모듈의 전체 개수가 변경됨에 따라 담당 디바이스 관리 모듈을 재결정하는 과정을 설명하기 위한 예시
도 8은 본 발명의 일 실시예에 따른 메시지 처리 방법을 설명하기 위한 흐름도
도 9는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
1 is a block diagram showing a detailed configuration of a message processing apparatus according to an embodiment of the present invention;
2 illustrates an example of a service management module and an application server according to an embodiment of the present invention.
3 illustrates an example of a device management module and a device according to an embodiment of the present invention.
4 is a block diagram illustrating a detailed configuration of a service management module according to an embodiment of the present invention.
5 is a flowchart illustrating an example of a process of determining a device management module in charge in a determination unit according to an embodiment of the present invention.
6 is a diagram illustrating a process of redetermining a charged device management module in response to a change in the total number of service management modules in a determination unit according to an exemplary embodiment of the present invention.
7 is a diagram illustrating a process of redetermining a charged device management module according to a change in the total number of service management modules in a determination unit according to an exemplary embodiment of the present invention.
8 is a flowchart illustrating a message processing method according to an embodiment of the present invention.
9 is a block diagram illustrating and illustrating a computing environment including a computing device suitable for use in the exemplary embodiments.

이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.Hereinafter, specific embodiments of the present invention will be described with reference to the drawings. The following detailed description is provided to provide a comprehensive understanding of the methods, apparatus, and / or systems described herein. However, this is merely an example and the present invention is not limited thereto.

본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 결정되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. The following terms are defined in consideration of the functions of the present invention, and may be changed according to the intention or custom of the user, the operator, and the like. Therefore, the definition should be based on the contents throughout this specification. The terms used in the detailed description are intended only to describe embodiments of the invention and should in no way be limiting. Unless specifically stated otherwise, the singular form of a term includes plural forms of meaning. In this description, the expressions "comprising" or "comprising" are intended to indicate certain features, numbers, steps, operations, elements, parts or combinations thereof, Should not be construed to preclude the presence or possibility of other features, numbers, steps, operations, elements, portions or combinations thereof.

도 1은 본 발명의 일 실시예에 따른 메시지 처리 장치(100)의 상세 구성을 나타낸 블록도이다. 도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 메시지 처리 장치(100)는 서비스 관리 모듈(102), 디바이스 관리 모듈(104), 메시지 서버(106) 및 써드 파티 메시지 서버(108)를 포함한다.1 is a block diagram showing a detailed configuration of a message processing apparatus 100 according to an embodiment of the present invention. 1, the message processing apparatus 100 according to an exemplary embodiment of the present invention includes a service management module 102, a device management module 104, a message server 106, and a third party message server 108. [ .

서비스 관리 모듈(102)은 애플리케이션 서버(미도시) 측 컴포넌트로서, 애플리케이션 서버와 메시지 서버(106) 사이에서 애플리케이션 서비스와 관련된 각종 메시지를 송수신한다. 본 발명의 실시예들에 있어서, 애플리케이션 서버는 애플리케이션 서비스를 디바이스(미도시)로 제공하기 위한 서버이다. 상기 애플리케이션 서비스는 예를 들어, 디바이스의 카메라 제어, 마이크 제어, 녹음 기능 제어 등과 같은 보안 관련 서비스가 될 수 있으나, 이는 일 예시에 불과할 뿐 애플리케이션 서비스가 특별히 한정되는 것은 아니다. 또한, 상기 메시지는 예를 들어, 상술한 애플리케이션 서비스를 디바이스에서 실행시키기 위한 제어 메시지, 상기 제어 메시지에 대한 수신 확인 메시지(즉, ACK 메시지) 등이 될 수 있다.The service management module 102 is an application server (not shown) side component, and transmits and receives various messages related to the application service between the application server and the message server 106. In embodiments of the present invention, the application server is a server for providing application services to a device (not shown). The application service may be, for example, a security related service such as a camera control of a device, a microphone control, a recording function control, or the like, but this is merely an example, and the application service is not particularly limited. In addition, the message may be, for example, a control message for executing the above-described application service in the device, an acknowledgment message for the control message (i.e., an ACK message), and the like.

서비스 관리 모듈(102)은 애플리케이션 서버와 메시지 서버(106) 사이에서 메시지를 송수신함으로써 애플리케이션 서버에게 메시지 전송에 대한 신뢰성을 제공할 수 있다. 구체적으로, 서비스 관리 모듈(102)은 애플리케이션 서버의 요청에 따라 애플리케이션 서비스와 관련된 메시지를 생성하여 데이터베이스(미도시)에 저장하고, 상기 메시지를 메시지 서버(106)를 통해 디바이스 관리 모듈(104)로 전송할 수 있다. The service management module 102 may provide reliability to the application server by sending and receiving messages between the application server and the message server 106. [ Specifically, the service management module 102 generates a message related to the application service according to a request from the application server, stores the message in a database (not shown), and transmits the message to the device management module 104 via the message server 106 Lt; / RTI >

이때, 서비스 관리 모듈(102)은 설정된 시간 이내에 상기 메시지에 대한 수신 확인 메시지(즉, ACK 메시지)를 디바이스 관리 모듈(104)로부터 수신하는지 여부에 따라 상기 메시지를 재전송하거나 삭제할 수 있다. 일 예시로서, 서비스 관리 모듈(102)은 설정된 시간 이내에 상기 메시지에 대한 수신 확인 메시지를 수신하지 않는 경우 상기 메시지를 재전송할 수 있다. 다른 예시로서, 서비스 관리 모듈(102)은 설정된 시간 이내에 상기 메시지에 대한 수신 확인 메시지를 수신하는 경우 데이터베이스에 저장된 상기 메시지를 삭제할 수 있다. 서비스 관리 모듈(102)이 메시지를 재전송하거나 삭제하는 과정에 대해서는 도 4 내지 7을 참조하여 구체적으로 후술하기로 한다.At this time, the service management module 102 may retransmit or delete the message according to whether it receives an acknowledgment message (that is, an ACK message) for the message from the device management module 104 within a predetermined time. As an example, the service management module 102 may resend the message if it does not receive an acknowledgment message for the message within the set time. As another example, the service management module 102 may delete the message stored in the database when receiving the acknowledgment message for the message within the set time. The process of the service management module 102 retransmitting or deleting the message will be described later in detail with reference to FIG. 4 through FIG.

또한, 서비스 관리 모듈(102)은 메시지 전송 취소, 유저 아이디를 디바이스 관리 모듈(104)의 아이디로 변환, 보안을 위한 인증 정보 관리, 멀티케스트(Multicast) 전송 요청 처리 등과 같은 부가 기능을 수행할 수 있다.In addition, the service management module 102 can perform additional functions such as cancellation of message transmission, conversion of the user ID into the ID of the device management module 104, authentication information management for security, multicast transmission request processing, have.

이러한 서비스 관리 모듈(102)은 부하 분산을 위해 복수 개 존재(즉, 멀티 인스턴스로 존재)할 수 있으며, 각 서비스 관리 모듈(102)은 서로 다른 아이디(즉, 인스턴스 아이디)를 가질 수 있다. 또한, 동일한 애플리케이션 서비스를 처리하는 서비스 관리 모듈(102)은 동일한 그룹 내에 속하게 되며, 동일한 그룹 아이디를 가질 수 있다. 또한, 서비스 관리 모듈(102) 및 애플리케이션 서버는 제1 네트워크에 위치할 수 있다. 본 실시예들에 있어서, 제1 네트워크는 예를 들어, 특정 조직 또는 기업의 인트라넷(intranet)일 수 있다.A plurality of service management modules 102 may exist for load balancing, and each service management module 102 may have a different ID (i.e., an instance ID). In addition, the service management module 102, which processes the same application service, belongs to the same group and can have the same group ID. In addition, the service management module 102 and the application server may be located in the first network. In the present embodiments, the first network may be, for example, an intranet of a particular organization or enterprise.

디바이스 관리 모듈(104)은 디바이스 측 컴포넌트로서, 디바이스에 설치된 애플리케이션 클라이언트(미도시)와 메시지 서버(106) 사이에서 애플리케이션 서비스와 관련된 각종 메시지를 송수신한다. 본 발명의 실시예들에 있어서, 디바이스는 사용자가 소지하는 단말로서, 예를 들어 스마트폰, 노트북, 태블릿 PC 등과 같은 모바일 단말일 수 있다. 또한, 애플리케이션 클라이언트는 디바이스에 설치되어 애플리케이션 서버에서 제공되는 애플리케이션 서비스를 디바이스에서 실행시키기 위한 모듈이다. The device management module 104, as a device-side component, transmits and receives various messages related to the application service between the application client (not shown) installed in the device and the message server 106. In embodiments of the present invention, the device may be a terminal carried by the user, for example, a mobile terminal such as a smart phone, a notebook, a tablet PC, or the like. Further, the application client is a module installed in the device and causing the device to execute the application service provided by the application server.

디바이스 관리 모듈(104)은 메시지 서버(106)를 통해 서비스 관리 모듈(102)로부터 애플리케이션 서비스와 관련된 메시지를 수신하고, 메시지 서버(106)를 통해 상기 메시지에 대한 수신 확인 메시지(즉, ACK 메시지)를 서비스 관리 모듈(102)로 전송할 수 있다. 또한, 디바이스 관리 모듈(104)은 메시지 전송 취소, 보안을 위한 인증 정보 관리 등과 같은 부가 기능을 수행할 수 있다.The device management module 104 receives a message associated with the application service from the service management module 102 via the message server 106 and transmits an acknowledgment message (i.e., an ACK message) To the service management module 102. In addition, the device management module 104 may perform additional functions such as cancellation of message transmission, management of authentication information for security, and the like.

이러한 디바이스 관리 모듈(104)은 각 디바이스별로 하나 이상 존재할 수 있으며, 각 디바이스 관리 모듈(104)은 서로 다른 아이디를 가질 수 있다. 디바이스는 디바이스 관리 모듈(104)을 최초로 활성화하는 과정에서 메시지 서버(106)로부터 해당 디바이스 관리 모듈(104)의 아이디를 할당 받을 수 있다. 또한, 디바이스 관리 모듈(104) 및 상기 디바이스 관리 모듈(104)이 설치된 디바이스는 제2 네트워크에 위치할 수 있다. 본 실시예들에 있어서, 제2 네트워크는 제1 네트워크의 외부 영역으로서, 예를 들어 인터넷(internet)일 수 있다.At least one such device management module 104 may exist for each device, and each device management module 104 may have a different ID. The device can be assigned the ID of the device management module 104 from the message server 106 in the process of activating the device management module 104 for the first time. In addition, the device in which the device management module 104 and the device management module 104 are installed may be located in the second network. In the present embodiments, the second network may be an outside area of the first network, for example, the Internet.

메시지 서버(106)는 서비스 관리 모듈(102)과 디바이스 관리 모듈(104) 사이에서 애플리케이션 서비스와 관련된 메시지를 중계(또는 양방향 전송)하는 서버이다. 이때, 메시지 서버(106)는 제1 네트워크와 제2 네트워크 사이의 DMZ(Demilitarized Zone)에 위치할 수 있다. DMZ는 제1 네트워크와 제2 네트워크 사이에 위치한 서브 네트워크로서, 제1 네트워크와 DMZ 사이에는 방화벽이 존재할 수 있다.The message server 106 is a server that relays (or bi-directionally transmits) a message related to an application service between the service management module 102 and the device management module 104. At this time, the message server 106 may be located in a demilitarized zone (DMZ) between the first network and the second network. A DMZ is a subnetwork located between a first network and a second network, and a firewall may exist between the first network and the DMZ.

메시지 서버(106)는 메시지 중계를 위한 각종 채널 매니저를 포함할 수 있으며, 상기 채널 매니저를 통해 상기 메시지를 라우팅할 수 있다.The message server 106 may include various channel managers for message relaying, and may route the messages through the channel manager.

써드 파티 메시지 서버(108)는 타 조직 또는 기업의 메시지 서버로서, 예를 들어 GCM(Google Cloud Messaging), APNS(Apple Push Notification Service)의 메시지 서버(또는 푸시 서버)일 수 있다. 메시지 서버(106)는 내부의 채널 매니저를 통해 애플리케이션 서비스와 관련된 메시지를 써드 파티 메시지 서버(108)와 송수신할 수 있다.The third party message server 108 may be a message server of another organization or enterprise, for example a message server (or push server) of Google Cloud Messaging (GCM), Apple Push Notification Service (APNS). The message server 106 may send and receive messages associated with application services to and from the third party message server 108 via an internal channel manager.

도 2는 본 발명의 일 실시예에 따른 서비스 관리 모듈(102) 및 애플리케이션 서버(200)의 예시이다. Figure 2 is an illustration of a service management module 102 and an application server 200 according to one embodiment of the present invention.

도 2를 참조하면, 본 발명의 일 실시예에 따른 서비스 관리 모듈(102)은 부하 분산을 위해 복수 개(예를 들어, 100개) 존재할 수 있으며, 라이브러리(미도시)를 통해 함수를 호출하는 형태로 애플리케이션 서버(200)와 양방향 통신할 수 있다. 이를 위해, 서비스 관리 모듈(102)은 애플리케이션 서버(200)와의 양방향 통신을 위한 인터페이스(미도시)를 구비할 수 있다. 상술한 바와 같이, 서비스 관리 모듈(102)은 애플리케이션 서버(200)의 요청에 따라 애플리케이션 서비스와 관련된 메시지를 생성하여 데이터베이스(150)에 저장하고, 상기 메시지를 메시지 서버(106)를 통해 디바이스 관리 모듈(104)로 전송할 수 있다. 상기 데이터베이스(150)는 제1 네트워크에서 각 서비스 관리 모듈(102)과 연결될 수 있다.Referring to FIG. 2, the service management module 102 according to an embodiment of the present invention may exist for a plurality of (for example, 100) load balancing and may call a function through a library (not shown) Way communication with the application server 200 in the form of a message. To this end, the service management module 102 may include an interface (not shown) for bidirectional communication with the application server 200. As described above, the service management module 102 generates a message related to the application service according to a request of the application server 200, stores the message in the database 150, (104). The database 150 may be coupled to each service management module 102 in the first network.

이때, 상기 메시지는 발신자 주소(source address), 수신자 주소(destination address), 경유자(via) 정보, 데이터 정보(예를 들어, 애플리케이션 아이디, 이전에 전송된 메시지의 아이디 등) 등을 포함할 수 있다. 여기서, 발신자 주소는 메시지를 전송하는 서비스 관리 모듈(102)의 아이디를 포함할 수 있으며, 수신자 주소는 메시지의 수신 대상인 디바이스 관리 모듈(104)의 아이디를 포함할 수 있다. 메시지 서버(106)는 상기 메시지에 포함된 발신자 정보, 수신자 정보, 경유자 정보 등을 이용하여 상기 메시지를 라우팅한 후 디바이스 관리 모듈(104)로 전달할 수 있다.At this time, the message may include a source address, a destination address, via information, data information (for example, an application ID, an ID of a previously transmitted message, etc.) have. Here, the sender address may include the ID of the service management module 102 that transmits the message, and the receiver address may include the ID of the device management module 104, which is the destination of the message. The message server 106 may route the message to the device management module 104 using the sender information, recipient information, transit information, and the like included in the message.

도 3은 본 발명의 일 실시예에 따른 디바이스 관리 모듈(104) 및 디바이스(300)의 예시이다.FIG. 3 is an illustration of a device management module 104 and device 300 in accordance with an embodiment of the present invention.

도 3을 참조하면, 본 발명의 일 실시예에 따른 디바이스 관리 모듈(104)은 디바이스(300)에 설치되어 각 애플리케이션 클라이언트(302)에 해당 애플리케이션 서비스와 관련된 메시지를 송수신한다. 디바이스 관리 모듈(104-1)은 라이브러리(미도시)를 통해 함수를 호출하는 형태로 애플리케이션 클라이언트(302)와 양방향 통신할 수 있다. 이를 위해, 디바이스 관리 모듈(104-1)은 애플리케이션 클라이언트(302)와의 양방향 통신을 위한 인터페이스(미도시)를 구비할 수 있다. Referring to FIG. 3, the device management module 104 according to an embodiment of the present invention is installed in the device 300 and transmits and receives messages related to the application service to each application client 302. The device management module 104-1 can bidirectionally communicate with the application client 302 in the form of calling a function through a library (not shown). To this end, the device management module 104-1 may include an interface (not shown) for bi-directional communication with the application client 302. [

또한, 디바이스 관리 모듈(104)은 메시지 서버(106)를 통해 서비스 관리 모듈(102)로부터 애플리케이션 서비스와 관련된 메시지를 수신하고, 메시지 서버(106)를 통해 상기 메시지에 대한 수신 확인 메시지(즉, ACK 메시지)를 서비스 관리 모듈(102)로 전송할 수 있다.The device management module 104 also receives a message associated with the application service from the service management module 102 via the message server 106 and transmits an acknowledgment message for the message via the message server 106 Message to the service management module 102.

한편, 본 발명의 일 실시예에 따르면, 부하 분산을 위해 애플리케이션 서버(200) 측 컴포넌트, 즉 서비스 관리 모듈(102)을 멀티 인스턴스로 구성하고, 애플리케이션 서버(200)에서 상기 멀티 인스턴스를 통해 디바이스(300) 측 컴포넌트, 즉 디바이스 관리 모듈(104)과 메시지를 송수신할 수 있다. 그러나, 서비스 관리 모듈(102)이 멀티 인스턴스로 구성된다 하더라도 특정 서비스 관리 모듈(102)에 재전송 또는 삭제 대상이 되는 메시지가 집중되는 경우 해당 서비스 관리 모듈(102)에만 부하가 집중되어 전체 시스템 성능이 저하될 수 있다. 또한, 각 서비스 관리 모듈(102)에서 동일한 메시지를 중복으로 전송함에 따라 불필요한 부하를 발생시키는 경우가 빈번히 발생할 수 있다. 이에 따라, 본 발명의 실시예들에서는 메시지 전송이 어떤 서비스 관리 모듈(102)에 요청되었는지와 관계 없이 특정 디바이스 관리 모듈(104)에 대한 메시지 재전송 및 삭제 처리를 특정 서비스 관리 모듈(102)에서만 담당하도록 하여 메시지의 중복 전송을 방지하고 부하를 분산시킬 수 있도록 하였다. 이에 대해서는 도 4 내지 7을 참조하여 구체적으로 설명하기로 한다.According to an embodiment of the present invention, the application server 200 side component, that is, the service management module 102 may be configured as a multi-instance for load balancing, and the application server 200 may configure the multi- 300) side component, that is, the device management module 104, as shown in FIG. However, even if the service management module 102 is configured as a multi-instance, when a message to be retransmitted or deleted is concentrated in the specific service management module 102, a load is concentrated only on the service management module 102, Can be degraded. In addition, each service management module 102 may repeatedly transmit the same message, thereby frequently generating an unnecessary load. Accordingly, in the embodiments of the present invention, regardless of whether a message transmission is requested to a service management module 102, the message re-transmission and deletion processing for the specific device management module 104 is performed only by the specific service management module 102 So that duplicate transmission of messages can be prevented and load can be distributed. This will be described in detail with reference to Figs. 4 to 7.

도 4는 본 발명의 일 실시예에 따른 서비스 관리 모듈(102)의 상세 구성을 나타낸 블록도이다. 도 4에 도시된 바와 같이, 본 발명의 일 실시예에 따른 서비스 관리 모듈(102)은 DB 접근부(402), 디바이스 관리 모듈 결정부(404) 및 처리부(406)를 포함한다.4 is a block diagram illustrating a detailed configuration of a service management module 102 according to an embodiment of the present invention. 4, the service management module 102 according to an exemplary embodiment of the present invention includes a DB access unit 402, a device management module determination unit 404, and a processing unit 406. As shown in FIG.

DB 접근부(402)는 서비스 관리 모듈(102)이 활성화됨에 따라 데이터베이스(150)에 접근하여 자신의 식별 번호를 상기 데이터베이스(150)에 기록한다. 여기서, 식별 번호는 각 서비스 관리 모듈(102)을 식별하기 위한 번호로서, 각 서비스 관리 모듈(102)이 데이터베이스(150)에 접근한 순서에 따라 달라질 수 있다. 일 예시로서, 서비스 관리 모듈(102)이 데이터베이스(150)에 가장 먼저 접근하는 경우, 상기 서비스 관리 모듈(102)의 식별 번호는 #0이 될 수 있다. 또한, 서비스 관리 모듈(102)이 데이터베이스(150)에 두 번째로 접근하는 경우, 상기 서비스 관리 모듈(102)의 식별 번호는 #1이 될 수 있다. 이와 같이, 각 서비스 관리 모듈(102)의 식별 번호는 각 서비스 관리 모듈(102)가 데이터베이스(150)에 접근한 순서에 따라 #0, #1, #2...등이 될 수 있으며, 각 서비스 관리 모듈(102)은 자신의 식별 번호를 상기 데이터베이스(150)에 기록할 수 있다.The DB access unit 402 accesses the database 150 as the service management module 102 is activated and records its identification number in the database 150. Here, the identification number is a number for identifying each service management module 102, and may be changed according to the order in which each service management module 102 accesses the database 150. As an example, if the service management module 102 first accesses the database 150, the identification number of the service management module 102 may be # 0. Also, when the service management module 102 accesses the database 150 a second time, the identification number of the service management module 102 may be # 1. In this way, the identification numbers of the respective service management modules 102 may be # 0, # 1, # 2, etc. according to the order in which each service management module 102 accesses the database 150, The service management module 102 may record its identification number in the database 150.

결정부(404)는 디바이스 관리 모듈(104) 각각의 아이디 및 서비스 관리 모듈(102)의 전체 개수를 이용하여 복수의 디바이스 관리 모듈(104) 중 자신이 담당하는 하나 이상의 담당 디바이스 관리 모듈(104)를 결정한다.The determination unit 404 determines one or more responsible device management modules 104 that the plurality of device management modules 104 are responsible for using the IDs of the device management modules 104 and the total number of the service management modules 102, .

먼저, 결정부(404)는 데이터베이스(150)를 참조하여 디바이스 관리 모듈 각각의 아이디에 대한 해시값 및 서비스 관리 모듈의 전체 개수를 획득할 수 있다. 상기 디바이스 관리 모듈 각각의 아이디 또는 상기 디바이스 관리 모듈 각각의 아이디에 대한 해시값은 데이터베이스(150)에 저장될 수 있으며, 결정부(404)는 데이터베이스(150)를 참조하여 상기 디바이스 관리 모듈 각각의 아이디를 획득한 후 이를 해시하거나 또는 데이터베이스(150)를 참조하여 상기 디바이스 관리 모듈 각각의 아이디에 대한 해시값을 곧바로 획득할 수 있다. 또한, 상술한 바와 같이, 각 서비스 관리 모듈(102)은 자신의 식별 번호를 상기 데이터베이스(150)에 기록할 수 있으며, 결정부(404)는 데이터베이스(150)를 참조하여 서비스 관리 모듈의 전체 개수를 확인할 수 있다. 일 예시로서, 결정부(404)는 데이터베이스(150)에 마지막으로 기록된 서비스 관리 모듈(102)의 식별 번호를 참조하여 상기 서비스 관리 모듈의 전체 개수를 확인할 수 있다.First, the determination unit 404 may refer to the database 150 to obtain a hash value for each ID of each device management module and the total number of service management modules. The hash value of each of the device management modules or the ID of each of the device management modules may be stored in the database 150 and the determination unit 404 may refer to the database 150, And obtains a hash value for each ID of the device management module by referring to the database 150. [ As described above, each service management module 102 can record its own identification number in the database 150, and the determination unit 404 refers to the database 150 to determine the total number of service management modules . As an example, the determination unit 404 may check the total number of the service management modules by referring to the identification number of the service management module 102 last recorded in the database 150. [

다음으로, 결정부(404)는 상기 디바이스 관리 모듈 각각의 아이디에 대한 해시값을 서비스 관리 모듈의 전체 개수로 모듈러(modulus) 연산하여 상기 디바이스 관리 모듈 각각에 대한 모듈러 연산값을 계산할 수 있다. 모듈러 연산은 두 값의 나눗셈에 의한 나머지를 구하는 연산으로서, a mod b (또는 a % b)로 표현되는 모듈러 연산의 경우 a 를 b로 나누었을 때의 나머지 값이 출력된다. 상기 디바이스 관리 모듈 각각의 아이디에 대한 해시값은 서로 다른 고유의 값을 가지게 되므로, 상기 디바이스 관리 모듈 각각의 아이디에 대한 해시값을 서비스 관리 모듈의 전체 개수로 모듈러 연산하는 경우 상기 디바이스 관리 모듈 각각이 랜덤한 확률로 서비스 관리 모듈의 전체 개수만큼 균일하게 그룹핑될 수 있다. 일 예시로서, 서비스 관리 모듈(102) 및 디바이스 관리 모듈(104)의 개수가 각각 100개 및 40만개인 경우, 결정부(404)는 상기 모듈러 연산을 통해 40만개의 디바이스 관리 모듈(104)을 100개의 그룹(즉, 모듈러 연산값 0, 1, 2...99에 각각 대응되는 그룹)으로 그룹핑할 수 있다.Next, the determination unit 404 may calculate a modular operation value for each of the device management modules by performing a modulus operation on the hash values of the IDs of the device management modules to the total number of the service management modules. A modular operation is an operation to obtain the remainder by dividing two values. In the modular operation expressed by a mod b (or a% b), the remainder value when a is divided by b is output. Since the hash values for the respective IDs of the device management modules have different values, when the hash values of the IDs of the device management modules are modulo-operated to the total number of the service management modules, They can be uniformly grouped by the total number of service management modules with a random probability. As an example, when the number of the service management module 102 and the number of the device management modules 104 is 100 and 400,000, respectively, the determination unit 404 determines 400,000 device management modules 104 through the modular operation Grouping can be grouped into 100 groups (i.e., groups corresponding to the modular operation values 0, 1, 2 ... 99 respectively).

다음으로, 결정부(404)는 상기 모듈러 연산값과 자신의 식별 번호를 참조하여 담당 디바이스 관리 모듈을 결정할 수 있다. 구체적으로, 결정부(404)는 상기 모듈러 연산값과 자신의 식별 번호를 각각 비교하여 상기 모듈러 연산값 중 자신의 식별 번호와 대응(또는 일치)되는 모듈러 연산값을 찾고, 상기 모듈러 연산값과 연관된 디바이스 관리 모듈의 아이디(즉, 상기 모듈러 연산값을 획득하는 데 사용된 디바이스 관리 모듈의 아이디)를 가진 디바이스 관리 모듈을 담당 디바이스 관리 모듈로 결정할 수 있다. 이와 같이, 각 서비스 관리 모듈(102)는 상기 모듈러 연산을 통해 자신이 담당하는 담당 디바이스 관리 모듈을 각각 결정할 수 있으며, 이에 따라 각 서비스 관리 모듈(102)별로 담당 디바이스 관리 모듈이 랜덤한 확률로 균일하게 분배될 수 있다. Next, the determination unit 404 can determine the responsible device management module by referring to the modular operation value and its identification number. Specifically, the determining unit 404 compares the moduler operation value with its own identification number, finds a moduler operation value corresponding to (or coinciding with) its own identification number in the moduler operation value, A device management module having an ID of a device management module (i.e., an ID of a device management module used to acquire the modular operation value) may be determined by the device management module in charge. In this manner, each service management module 102 can determine the respective chargeable device management modules through the modular operation, and accordingly, the chargeable device management modules for each service management module 102 can obtain uniformity Lt; / RTI >

처리부(406)는 서비스 관리 모듈(102)의 담당 디바이스 관리 모듈로 전송된 메시지를 재전송하거나 삭제한다. 상술한 바와 같이, 서비스 관리 모듈(102)은 설정된 시간 이내에 상기 메시지에 대한 수신 확인 메시지를 수신하지 않는 경우 상기 메시지를 재전송할 수 있으며, 설정된 시간 이내에 상기 메시지에 대한 수신 확인 메시지를 수신하는 경우 데이터베이스(150)에 저장된 상기 메시지를 삭제할 수 있다. 처리부(406)는 이와 같은 메시지 재전송 및 삭제 처리를 수행함에 있어서 자신이 담당하는 담당 디바이스 관리 모듈에 대한 메시지 재전송 및 삭제 처리만을 수행하고 자신의 담당 디바이스 관리 모듈이 아닌 타 디바이스 관리 모듈에 대한 메시지 재전송 및 삭제 처리는 수행하지 않게 된다. 즉, 본 발명의 실시예들에 따르면, 각 서비스 관리 모듈(102)이 자신이 담당하는 담당 디바이스 관리 모듈에 대한 메시지 재전송 및 삭제 처리만을 수행하도록 함으로써, 각 서비스 관리 모듈(102)에서의 메시지 중복 전송을 방지하고 부하를 분산시킬 수 있다.The processing unit 406 retransmits or deletes the message transmitted to the responsible device management module of the service management module 102. [ As described above, when the service management module 102 does not receive the acknowledgment message for the message within the set time, the service management module 102 can retransmit the message. When receiving the acknowledgment message for the message within the set time, And delete the message stored in the memory 150. In performing the message retransmission and deletion processing, the processing unit 406 performs only the message retransmission and deletion processing for the responsible device management module in charge of itself and retransmits the message to the other device management module And deletion processing is not performed. That is, according to the embodiments of the present invention, each service management module 102 performs only message retransmission and deletion processing for the responsible device management module in charge of itself, Transmission can be prevented and load can be dispersed.

또한, 처리부(406)는 설정된 주기(예를 들어, 2분)마다 메시지의 재전송 또는 삭제 여부를 결정할 수 있다. 이때, 상기 주기는 각 서비스 관리 모듈(102)별로 상이할 수 있다. 처리부(406)는 상기 주기마다 각 담당 디바이스 관리 모듈에 대한 메시지를 하나씩 재전송하거나 삭제할 수 있다. In addition, the processing unit 406 can determine whether to retransmit or delete the message every set period (for example, two minutes). At this time, the period may be different for each service management module 102. The processing unit 406 may retransmit or delete the messages for each chargeable device management module one by one for each cycle.

이때, 서비스 관리 모듈(102)의 전체 개수가 변경되는 경우, 결정부(404)는 상기 메시지의 재전송 또는 삭제 시점에 상기 모듈러 연산값을 재계산하여 상기 담당 디바이스 관리 모듈을 재결정할 수 있다. 일 예시로서, 시스템 장애 등으로 인해 복수의 서비스 관리 모듈(102) 중 일부가 동작하지 않는 경우, 결정부(404)는 상기 메시지의 재전송 또는 삭제 시점에 상기 모듈러 연산값을 재계산하여 상기 담당 디바이스 관리 모듈을 재결정할 수 있다. 다른 예시로서, 특정 솔루션의 사용자 증가 등으로 인해 서비스 관리 모듈(102)이 새롭게 추가되는 경우, 결정부(404)는 상기 메시지의 재전송 또는 삭제 시점에 상기 모듈러 연산값을 재계산하여 상기 담당 디바이스 관리 모듈을 재결정할 수 있다. 또한, 메시지를 재전송 또는 삭제하는 주기는 각 서비스 관리 모듈(102)별로 상이할 수 있으며, 이 경우 각 서비스 관리 모듈(102)별로 상기 모듈러 연산값을 재계산하여 상기 담당 디바이스 관리 모듈을 재결정하는 시점 또한 상이할 수 있다.At this time, when the total number of the service management modules 102 is changed, the determination unit 404 can re-calculate the modular operation value at the time of retransmission or deletion of the message to redetermine the responsible device management module. As an example, if some of the plurality of service management modules 102 do not operate due to a system failure or the like, the determination unit 404 recalculates the modular operation value at the time of retransmission or deletion of the message, The management module can be redetermined. As another example, when the service management module 102 is newly added due to an increase in the user of a specific solution or the like, the determination unit 404 recalculates the modular operation value at the time of retransmission or deletion of the message, The module can be redetermined. The period for retransmitting or deleting the message may be different for each service management module 102. In this case, the modular operation value is recalculated for each service management module 102 and the re- It can also be different.

이와 같이, 본 발명의 실시예들에 따르면, 서비스 관리 모듈(102)의 전체 개수가 변경되는 경우 각 서비스 관리 모듈(102)에서 담당하는 담당 디바이스 관리 모듈 또한 동적으로 변경시킴으로써, 일부 서비스 관리 모듈(102)에서 장애가 발생하거나 새로운 서비스 관리 모듈(102)이 추가되더라도 이를 반영하여 메시지 처리를 효율적으로 수행할 수 있다.In this way, according to the embodiments of the present invention, when the total number of service management modules 102 is changed, the service management module managed by each service management module 102 is also dynamically changed, 102, or even if a new service management module 102 is added, the message processing can be performed efficiently.

도 5는 본 발명의 일 실시예에 따른 결정부(404)에서 담당 디바이스 관리 모듈을 결정하는 과정을 설명하기 위한 예시이다. FIG. 5 is an illustration for explaining a process of determining a chargeable device management module in the determination unit 404 according to an embodiment of the present invention.

여기서, 서비스 관리 모듈(102) 및 디바이스 관리 모듈(104)의 개수는 각각 3개 및 9개인 것으로 가정한다. 또한, 각 서비스 관리 모듈(102)의 식별 번호는 #0, #1 및 #2이며, 각 디바이스 관리 모듈(104)의 아이디에 대한 해시값은 1, 2, 3...9 인 것으로 가정한다.Here, it is assumed that the number of the service management module 102 and the number of the device management module 104 are three and nine, respectively. It is assumed that the identification numbers of the respective service management modules 102 are # 0, # 1 and # 2, and the hash values for the IDs of the device management modules 104 are 1, 2, 3 ... 9 .

상술한 바와 같이, 각 서비스 관리 모듈(102)의 결정부(404)는 디바이스 관리 모듈 각각의 아이디에 대한 해시값을 서비스 관리 모듈의 전체 개수로 모듈러 연산하여 상기 디바이스 관리 모듈 각각에 대한 모듈러 연산값을 계산하고, 상기 모듈러 연산값과 자신의 식별 번호를 참조하여 담당 디바이스 관리 모듈을 결정할 수 있다. 도 3에서, 각 서비스 관리 모듈(102)의 결정부(404)는 아래 표 1과 같은 모듈러 연산값을 각각 계산할 수 있다.As described above, the determination unit 404 of each service management module 102 performs a modular operation on the hash values of the IDs of the device management modules to the total number of the service management modules, And determine the responsible device management module by referring to the modular operation value and its own identification number. In FIG. 3, the determination unit 404 of each service management module 102 may calculate the modular operation values as shown in Table 1 below.

디바이스 관리 모듈Device management module 모듈러 연산값Modular operation value 디바이스 관리 모듈 1Device management module 1 1One 디바이스 관리 모듈 2Device Management Module 2 22 디바이스 관리 모듈 3Device Management Module 3 00 디바이스 관리 모듈 4Device Management Module 4 1One 디바이스 관리 모듈 5Device Management Module 5 22 디바이스 관리 모듈 6Device Management Module 6 00 디바이스 관리 모듈 7Device Management Module 7 1One 디바이스 관리 모듈 8Device Management Module 8 22 디바이스 관리 모듈 9Device Management Module 9 00

이후, 각 서비스 관리 모듈(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에 대한 메시지 재전송 및 삭제 처리만을 수행할 수 있다.Then, the determination unit 404 of each service management module 102 finds a modulo operation value corresponding to its own identification number among the modulo operation values, and determines the ID of the device management module associated with the modulo operation value (that is, The ID of the device management module used to acquire the operation value) can be determined by the device management module in charge. In the above example, the service management module # 0 determines the device management module 3, the device management module 6, and the device management module 9 associated with the modular operation value 0 as the responsible device management module, and the device management module 3, the device management module 6, Only the message retransmission and deletion processing for the management module 9 can be performed. The service management module # 1 determines the device management module 1, the device management module 4, and the device management module 7 associated with the modular operation value 1 as the responsible device management module. The device management module 1, the device management module 4, 7 only for the message retransmission and deletion processing. The service management module # 2 determines the device management module 2, the device management module 5, and the device management module 8 associated with the modular operation value 2 as the responsible device management module. The device management module 2, the device management module 5, 8 only for message retransmission and deletion processing.

도 6 및 도 7은 본 발명의 일 실시예에 따른 결정부(404)에서 서비스 관리 모듈의 전체 개수가 변경됨에 따라 담당 디바이스 관리 모듈을 재결정하는 과정을 설명하기 위한 예시이다. 도 6에서는 서비스 관리 모듈 #2가 장애 등으로 인해 동작하지 않는 것으로 가정하며, 도 7에서는 서비스 관리 모듈 #3이 부하 분산을 위해 새롭게 추가된 것으로 가정한다.FIG. 6 and FIG. 7 are illustrations for explaining a process of redetermining a charged device management module according to a change in the total number of service management modules in the determination unit 404 according to an embodiment of the present invention. In FIG. 6, it is assumed that the service management module # 2 does not operate due to a failure or the like. In FIG. 7, it is assumed that the service management module # 3 is newly added for load balancing.

도 6을 참조하면, 서비스 관리 모듈 #2가 동작하지 않음에 따라 각 서비스 관리 모듈(102)의 결정부(404)는 메시지의 재전송 또는 삭제 시점에 상기 모듈러 연산값을 재계산하여 담당 디바이스 관리 모듈을 재결정할 수 있다. 위 예시에서, 서비스 관리 모듈 #0은 모듈러 연산값 0과 연관된 디바이스 관리 모듈 2, 디바이스 관리 모듈 4, 디바이스 관리 모듈 6 및 디바이스 관리 모듈 8을 담당 디바이스 관리 모듈로 결정하고, 디바이스 관리 모듈 2, 디바이스 관리 모듈 4, 디바이스 관리 모듈 6 및 디바이스 관리 모듈 8에 대한 메시지 재전송 및 삭제 처리만을 수행할 수 있다. 또한, 서비스 관리 모듈 #1은 모듈러 연산값 1과 연관된 디바이스 관리 모듈 1, 디바이스 관리 모듈 3, 디바이스 관리 모듈 5 및 디바이스 관리 모듈 7을 담당 디바이스 관리 모듈로 결정하고 디바이스 관리 모듈 1, 디바이스 관리 모듈 3, 디바이스 관리 모듈 5 및 디바이스 관리 모듈 7에 대한 메시지 재전송 및 삭제 처리만을 수행할 수 있다.6, when the service management module # 2 does not operate, the determination unit 404 of each service management module 102 recalculates the modular operation value at the time of retransmission or deletion of the message, Can be re-determined. In the above example, the service management module # 0 determines the device management module 2, the device management module 4, the device management module 6, and the device management module 8 associated with the modular operation value 0 as the responsible device management module, Only the message retransmission and deletion processing for the management module 4, the device management module 6, and the device management module 8 can be performed. The service management module # 1 determines the device management module 1, the device management module 3, the device management module 5, and the device management module 7 associated with the modular operation value 1 as the responsible device management module, , The device management module 5, and the device management module 7 only.

또한, 도 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에 대한 메시지 재전송 및 삭제 처리만을 수행할 수 있다.7, when the service management module # 3 is added, the determination unit 404 of each service management module 102 recalculates the modular operation value at the time of retransmission or deletion of the message, Can be re-determined. In the above example, the service management module # 0 determines the device management module 4 and the device management module 8 associated with the modular operation value 0 as the responsible device management module, and performs the message retransmission and deletion processing for the device management module 4 and the device management module 8 . The service management module # 1 determines the device management module 1, the device management module 5, and the device management module 9 associated with the modular operation value 1 as the responsible device management module. The device management module 1, the device management module 5, 9 only for the retransmission and deletion of the message. The service management module # 2 determines the device management module 2 and the device management module 6 associated with the modular operation value 2 as the responsible device management module and performs only the message retransmission and deletion processing for the device management module 2 and the device management module 6 can do. The service management module # 3 determines the device management module 3 and the device management module 7 associated with the modular operation value 3 as the responsible device management module and performs only the message retransmission and deletion processing for the device management module 3 and the device management module 7 can do.

도 8은 본 발명의 일 실시예에 따른 메시지 처리 방법을 설명하기 위한 흐름도이다. 도 8에 도시된 방법은 예를 들어, 상술한 서비스 관리 모듈(102)에 의해 수행될 수 있다. 도시된 흐름도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.8 is a flowchart illustrating a message processing method according to an embodiment of the present invention. The method shown in Fig. 8 can be performed, for example, by the service management module 102 described above. In the illustrated flow chart, the method is described as being divided into a plurality of steps, but at least some of the steps may be performed in reverse order, combined with other steps, performed together, omitted, divided into detailed steps, One or more steps may be added and performed.

S802 단계에서, 결정부(404)는 디바이스 관리 모듈(104) 각각의 아이디에 대한 해시값을 상기 서비스 관리 모듈(102)의 전체 개수로 모듈러 연산하여 상기 디바이스 관리 모듈 각각에 대한 모듈러 연산값을 계산한다.In step S802, the determination unit 404 performs a modular operation on the hash values of the respective IDs of the device management modules 104 to the total number of the service management modules 102 to calculate a modular operation value for each of the device management modules 104 do.

S804 단계에서, 결정부(404)는 상기 모듈러 연산값과 자신의 식별 번호를 각각 비교하여 상기 담당 디바이스 관리 모듈을 결정한다. In step S804, the determination unit 404 determines the responsible device management module by comparing the modular operation value with its own identification number, respectively.

S806 단계에서, 처리부(406)는 자신이 담당하는 담당 디바이스 관리 모듈에 대한 메시지 재전송 및 삭제 처리를 수행한다.In step S806, the processing unit 406 performs message retransmission and deletion processing for the responsible device management module that is in charge of itself.

S808 단계에서, 상기 서비스 관리 모듈(102)의 전체 개수가 변경되는 경우, 결정부(404)는 메시지의 재전송 또는 삭제 시점에 상기 모듈러 연산값을 재계산한다.In step S808, when the total number of the service management modules 102 is changed, the determination unit 404 recalculates the modular operation value at the time of retransmission or deletion of the message.

S810 단계에서, 결정부(404)는 재계산된 모듈로 연산값과 자신의 식별 번호를 각각 비교하여 상기 담당 디바이스 관리 모듈을 재결정한다.In step S810, the determination unit 404 compares the re-computed modulo operation value with its own identification number, and re-determines the responsible device management module.

S812 단계에서, 처리부(406)는 S808 단계에서 결정된 담당 디바이스 관리 모듈에 대한 메시지 재전송 및 삭제 처리를 수행한다.In step S812, the processing unit 406 performs message retransmission and deletion processing for the responsible device management module determined in step S808.

도 9는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술되지 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.9 is a block diagram illustrating and illustrating a computing environment including a computing device suitable for use in the exemplary embodiments. In the illustrated embodiment, each of the components may have different functions and capabilities than those described below, and may include additional components in addition to those described below.

도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 메시지 처리 장치(100), 또는 메시지 처리 장치(100)에 포함되는 하나 이상의 컴포넌트일 수 있다.The illustrated computing environment 10 includes a computing device 12. In one embodiment, computing device 12 may be one or more components included in message processing device 100, or message processing device 100.

컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.The computing device 12 includes at least one processor 14, a computer readable storage medium 16, The processor 14 may cause the computing device 12 to operate in accordance with the exemplary embodiment discussed above. For example, processor 14 may execute one or more programs stored on computer readable storage medium 16. The one or more programs may include one or more computer-executable instructions, which when executed by the processor 14 cause the computing device 12 to perform operations in accordance with the illustrative embodiment .

컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.The computer-readable storage medium 16 is configured to store computer-executable instructions or program code, program data, and / or other suitable forms of information. The program 20 stored in the computer-readable storage medium 16 includes a set of instructions executable by the processor 14. In one embodiment, the computer-readable storage medium 16 may be any type of storage medium such as a memory (volatile memory such as random access memory, non-volatile memory, or any suitable combination thereof), one or more magnetic disk storage devices, Memory devices, or any other form of storage medium that can be accessed by the computing device 12 and store the desired information, or any suitable combination thereof.

통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.Communication bus 18 interconnects various other components of computing device 12, including processor 14, computer readable storage medium 16.

컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.The computing device 12 may also include one or more input / output interfaces 22 and one or more network communication interfaces 26 that provide an interface for one or more input / output devices 24. The input / output interface 22 and the network communication interface 26 are connected to the communication bus 18. The input / output device 24 may be connected to other components of the computing device 12 via the input / output interface 22. The exemplary input and output device 24 may be any type of device, such as a pointing device (such as a mouse or trackpad), a keyboard, a touch input device (such as a touch pad or touch screen), a voice or sound input device, An input device, and / or an output device such as a display device, a printer, a speaker, and / or a network card. The exemplary input and output device 24 may be included within the computing device 12 as a component of the computing device 12 and may be coupled to the computing device 12 as a separate device distinct from the computing device 12 It is possible.

이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 전술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, I will understand. Therefore, the scope of the present invention should not be limited to the above-described embodiments, but should be determined by equivalents to the appended claims, as well as the appended claims.

10 : 컴퓨팅 환경
12 : 컴퓨팅 장치
14 : 프로세서
16 : 컴퓨터 판독 가능 저장 매체
18 : 통신 버스
20 : 프로그램
22 : 입출력 인터페이스
24 : 입출력 장치
26 : 네트워크 통신 인터페이스
100 : 메시지 처리 장치
102 : 서비스 관리 모듈
104 : 디바이스 관리 모듈
106 : 메시지 서버
108 : 써드 파티 메시지 서버
150 : 데이터베이스
200 : 애플리케이션 서버
300 : 디바이스
302 : 애플리케이션 클라이언트
402 : DB 접근부
404 : 결정부
406 : 처리부
10: Computing environment
12: computing device
14: Processor
16: Computer readable storage medium
18: Communication bus
20: Program
22: I / O interface
24: input / output device
26: Network communication interface
100: Message processing device
102: service management module
104: Device management module
106: message server
108: Third party message server
150: Database
200: Application server
300: device
302: Application client
402: DB access unit
404:
406:

Claims (15)

복수의 디바이스 관리 모듈; 및
상기 복수의 디바이스 관리 모듈 중 적어도 하나의 디바이스 관리 모듈로 메시지를 전송하는 복수의 서비스 관리 모듈을 포함하며,
상기 서비스 관리 모듈 각각은, 상기 디바이스 관리 모듈 각각의 아이디 및 상기 서비스 관리 모듈의 전체 개수를 이용하여 상기 복수의 디바이스 관리 모듈 중 자신이 담당하는 하나 이상의 담당 디바이스 관리 모듈을 결정하며, 상기 각 담당 디바이스 관리 모듈로 전송된 메시지를 설정된 주기마다 재전송하거나 삭제하되,
상기 디바이스 관리 모듈 각각의 아이디에 대한 해시값을 상기 서비스 관리 모듈의 전체 개수로 모듈러(modulus) 연산하여 상기 디바이스 관리 모듈 각각에 대한 모듈러 연산값을 계산하고, 상기 모듈러 연산값과 자신의 식별 번호를 참조하여 상기 담당 디바이스 관리 모듈을 결정하며,
상기 서비스 관리 모듈의 전체 개수가 변경되는 경우 상기 메시지의 재전송 또는 삭제 시점에 상기 모듈러 연산값을 재계산하여 상기 담당 디바이스 관리 모듈을 재결정하고,
설정된 시간 이내에 상기 메시지에 대한 수신 확인 메시지를 수신하지 않는 경우 상기 메시지를 재전송하고, 상기 설정된 시간 이내에 상기 수신 확인 메시지를 수신하는 경우 상기 메시지를 삭제하는 메시지 처리 장치.
A plurality of device management modules; And
And a plurality of service management modules for transmitting a message to at least one device management module among the plurality of device management modules,
Wherein each of the service management modules determines at least one responsible device management module of the plurality of device management modules by using the ID of each of the device management modules and the total number of the service management modules, The message transmitted to the management module is retransmitted or deleted every set period,
Calculating a modular operation value for each of the device management modules by performing a modulus operation of a hash value of each of the device management modules to a total number of the service management modules, Determines the responsible device management module,
If the total number of the service management modules is changed, re-calculating the modular operation value at the time of retransmission or deletion of the message,
And retransmitting the message if the acknowledgment message for the message is not received within a set time, and deleting the message if the acknowledgment message is received within the set time.
삭제delete 청구항 1에 있어서,
상기 식별 번호는, 상기 서비스 관리 모듈 각각이 데이터베이스에 접근한 순서에 따라 결정되는, 메시지 처리 장치.
The method according to claim 1,
Wherein the identification number is determined according to the order in which each of the service management modules has accessed the database.
청구항 3에 있어서,
상기 서비스 관리 모듈 각각은, 상기 자신의 식별 번호를 상기 데이터베이스에 기록하며, 상기 데이터베이스를 참조하여 상기 서비스 관리 모듈의 전체 개수를 확인하는, 메시지 처리 장치.
The method of claim 3,
Wherein each of the service management modules records the identification number of the service management module in the database and confirms the total number of the service management modules with reference to the database.
삭제delete 복수의 디바이스 관리 모듈 중 적어도 하나의 디바이스 관리 모듈로 메시지를 전송하는 서비스 관리 모듈로서,
상기 디바이스 관리 모듈 각각의 아이디 및 상기 서비스 관리 모듈의 전체 개수를 이용하여 상기 복수의 디바이스 관리 모듈 중 자신이 담당하는 하나 이상의 담당 디바이스 관리 모듈을 결정하는 결정부; 및
상기 담당 디바이스 관리 모듈로 전송된 메시지를 설정된 주기마다 재전송하거나 삭제하는 처리부를 포함하고,
상기 결정부는, 상기 디바이스 관리 모듈 각각의 아이디에 대한 해시값을 상기 서비스 관리 모듈의 전체 개수로 모듈러(modulus) 연산하여 상기 디바이스 관리 모듈 각각에 대한 모듈러 연산값을 계산하고, 상기 모듈러 연산값과 자신의 식별 번호를 참조하여 상기 담당 디바이스 관리 모듈을 결정하며,
상기 서비스 관리 모듈의 전체 개수가 변경되는 경우 상기 메시지의 재전송 또는 삭제 시점에 상기 모듈러 연산값을 재계산하여 상기 담당 디바이스 관리 모듈을 재결정하고,
상기 처리부는, 설정된 시간 이내에 상기 메시지에 대한 수신 확인 메시지를 수신하지 않는 경우 상기 메시지를 재전송하고, 상기 설정된 시간 이내에 상기 수신 확인 메시지를 수신하는 경우 상기 메시지를 삭제하는 서비스 관리 모듈.
A service management module for transmitting a message to at least one device management module among a plurality of device management modules,
A determination unit for determining at least one responsible device management module of the plurality of device management modules, using the IDs of the device management modules and the total number of the service management modules; And
And a processing unit for retransmitting or deleting the message transmitted to the responsible device management module every set period,
Wherein the determiner calculates a modulo operation value for each of the device management modules by performing a modulus operation of a hash value for each ID of each of the device management modules to the total number of the service management modules, Determines the responsible device management module with reference to the identification number of the device management module,
If the total number of the service management modules is changed, re-calculating the modular operation value at the time of retransmission or deletion of the message,
Wherein the processing unit retransmits the message if the acknowledgment message for the message is not received within a set time and deletes the message if the acknowledgment message is received within the set time.
삭제delete 청구항 6에 있어서,
상기 식별 번호는, 상기 서비스 관리 모듈 각각이 데이터베이스에 접근한 순서에 따라 결정되는, 서비스 관리 모듈.
The method of claim 6,
Wherein the identification number is determined according to the order in which each of the service management modules has accessed the database.
청구항 8에 있어서,
상기 결정부는, 상기 자신의 식별 번호를 상기 데이터베이스에 기록하며, 상기 데이터베이스를 참조하여 상기 서비스 관리 모듈의 전체 개수를 확인하는, 서비스 관리 모듈.
The method of claim 8,
Wherein the determination unit records the identification number of the service management module in the database and confirms the total number of the service management modules by referring to the database.
삭제delete 복수의 디바이스 관리 모듈 중 적어도 하나의 디바이스 관리 모듈로 메시지를 전송하는 서비스 관리 모듈의 결정부에서, 상기 디바이스 관리 모듈 각각의 아이디 및 상기 서비스 관리 모듈의 전체 개수를 이용하여 상기 복수의 디바이스 관리 모듈 중 자신이 담당하는 하나 이상의 담당 디바이스 관리 모듈을 결정하는 단계; 및
상기 서비스 관리 모듈의 처리부에서, 상기 담당 디바이스 관리 모듈로 전송된 메시지를 설정된 주기마다 재전송하거나 삭제하는 단계를 포함하고,
상기 담당 디바이스 관리 모듈을 결정하는 단계는,
상기 디바이스 관리 모듈 각각의 아이디에 대한 해시값을 상기 서비스 관리 모듈의 전체 개수로 모듈러(modulus) 연산하여 상기 디바이스 관리 모듈 각각에 대한 모듈러 연산값을 계산하는 단계; 및
상기 모듈러 연산값과 자신의 식별 번호를 참조하여 상기 담당 디바이스 관리 모듈을 결정하는 단계를 포함하고,
상기 모듈러 연산값을 계산하는 단계는, 상기 서비스 관리 모듈의 전체 개수가 변경되는 경우 상기 메시지의 재전송 또는 삭제 시점에 상기 모듈러 연산값을 재계산하고,
상기 담당 디바이스 관리 모듈을 결정하는 단계는, 재계산된 상기 모듈러 연산값과 자신의 식별 번호를 참조하여 상기 담당 디바이스 관리 모듈을 재결정하고,
상기 재전송하거나 삭제하는 단계는, 설정된 시간 이내에 상기 메시지에 대한 수신 확인 메시지를 수신하지 않는 경우 상기 메시지를 재전송하고, 상기 설정된 시간 이내에 상기 수신 확인 메시지를 수신하는 경우 상기 메시지를 삭제하는 메시지 처리 방법.
Wherein the determination unit of the service management module that transmits a message to at least one device management module among the plurality of device management modules uses the ID of each of the device management modules and the total number of the service management modules, Determining at least one responsible device management module in charge of itself; And
Wherein the processing unit of the service management module retransmits or deletes the message transmitted to the responsible device management module every set period,
Wherein the determining of the responsible device management module comprises:
Calculating a modular operation value for each of the device management modules by performing a modulus operation of a hash value for each ID of each of the device management modules to the total number of the service management modules; And
Determining the responsible device management module by referring to the modular operation value and its own identification number,
Wherein the modular operation value is calculated by recalculating the modular operation value at the time of retransmission or deletion of the message when the total number of the service management modules is changed,
Wherein the determining of the responsible device management module comprises: re-determining the responsible device management module with reference to the re-computed modular operation value and its identification number;
Wherein the retransmitting or deleting step comprises retransmitting the message if the acknowledgment message for the message is not received within a set time and deleting the message if the acknowledgment message is received within the set time.
삭제delete 청구항 11에 있어서,
상기 식별 번호는, 상기 서비스 관리 모듈 각각이 데이터베이스에 접근한 순서에 따라 결정되는, 메시지 처리 방법.
The method of claim 11,
Wherein the identification number is determined according to the order in which each of the service management modules has accessed the database.
청구항 13에 있어서,
상기 담당 디바이스 관리 모듈을 결정하는 단계는,
상기 연산값을 계산하는 단계 이전에,
상기 자신의 식별 번호를 상기 데이터베이스에 기록하며, 상기 데이터베이스를 참조하여 상기 서비스 관리 모듈의 전체 개수를 확인하는 단계를 더 포함하는, 메시지 처리 방법.
14. The method of claim 13,
Wherein the determining of the responsible device management module comprises:
Before the step of calculating the calculation value,
Further comprising the steps of: recording the identification number of the service management module in the database; and checking the total number of the service management modules with reference to the database.
삭제delete
KR1020170136409A 2017-10-20 2017-10-20 Message processing system and method KR101996239B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170136409A KR101996239B1 (en) 2017-10-20 2017-10-20 Message processing system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170136409A KR101996239B1 (en) 2017-10-20 2017-10-20 Message processing system and method

Publications (2)

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

Family

ID=66285862

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170136409A KR101996239B1 (en) 2017-10-20 2017-10-20 Message processing system and method

Country Status (1)

Country Link
KR (1) KR101996239B1 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200408242A (en) * 2002-09-06 2004-05-16 Matsushita Electric Ind Co Ltd Home terminal apparatus and communication system
KR101402590B1 (en) * 2012-10-26 2014-06-03 주식회사 아이디스 Load balancing apparatus and method for network access management system of picture monitoring apparatus
KR101778960B1 (en) 2016-01-19 2017-09-19 명지대학교 산학협력단 Security monitoring system for mobile device and method of security monitoring for mobile device using it

Also Published As

Publication number Publication date
KR20190044239A (en) 2019-04-30

Similar Documents

Publication Publication Date Title
US11729129B2 (en) Message quests for rapid re-hosting of client devices
US9516030B2 (en) Communications system for residents of secure facility
US7676473B2 (en) Propagation of user preferences to end devices
KR101903923B1 (en) Trusted e-mail communication in a multi-tenant environment
CN110413424B (en) Configurable third-party message callback method, device, server and storage medium
CN101720478A (en) High availability transport
US20140378116A1 (en) Method And System For Sending Notification Message, Management Control Apparatus, And Terminal Device
KR101996239B1 (en) Message processing system and method
KR102412226B1 (en) Message server and message processing apparatus including the same
KR101758337B1 (en) Method for preventing overlap notice of message, storing medium and user device implementing the same
KR20120052444A (en) File transmission management system and file transmission mangement method for supporting file transmission in mobile messaging service
KR102284874B1 (en) Message processing apparatus and method
KR102439775B1 (en) Message processing apparatus and method
KR102412225B1 (en) Message server and message processing apparatus including the same
CN110574391B (en) Managing a telephone communication system to dynamically throttle call attempts and reduce congestion
KR101965306B1 (en) Message server and message processing apparatus including the same
KR101965307B1 (en) Message processing apparatus
KR102350911B1 (en) Message server
CN111552907A (en) Message processing method, device, equipment and storage medium
CN115118628B (en) Abnormal message processing method and device
KR101527196B1 (en) Bi-directional service system for push message and Control method for the system
KR101802563B1 (en) Simultaneous Message Transmitting Method
WO2017072784A1 (en) Method and system for providing enterprise customer services via social media messaging using non-text triggers
CN115866043A (en) Service sending method and system, service receiving method and system, equipment and medium
CN117914939A (en) Data reporting method, system and data supervision reporting system

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)