KR101996239B1 - Message processing system and method - Google Patents
Message processing system and method Download PDFInfo
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 48
- 238000000034 method Methods 0.000 title claims abstract description 22
- 238000012217 deletion Methods 0.000 claims description 28
- 230000037430 deletion Effects 0.000 claims description 28
- 230000006854 communication Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 3
- 230000007175 bidirectional communication Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- TVEXGJYMHHTVKP-UHFFFAOYSA-N 6-oxabicyclo[3.2.1]oct-3-en-7-one Chemical compound C1C2C(=O)OC1C=CC2 TVEXGJYMHHTVKP-UHFFFAOYSA-N 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/40—Business processes related to the transportation industry
-
- G06Q50/30—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network 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
본 발명의 실시예들은 메시지 처리 장치 및 방법에 관한 것으로, 특히 메시지 처리 시스템의 부하를 분산하는 기술과 관련된다.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.
본 발명의 실시예들은 메시지의 중복 전송을 방지하고 부하를 분산시키는 수단을 제공하기 위한 것이다.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
서비스 관리 모듈(102)은 애플리케이션 서버(미도시) 측 컴포넌트로서, 애플리케이션 서버와 메시지 서버(106) 사이에서 애플리케이션 서비스와 관련된 각종 메시지를 송수신한다. 본 발명의 실시예들에 있어서, 애플리케이션 서버는 애플리케이션 서비스를 디바이스(미도시)로 제공하기 위한 서버이다. 상기 애플리케이션 서비스는 예를 들어, 디바이스의 카메라 제어, 마이크 제어, 녹음 기능 제어 등과 같은 보안 관련 서비스가 될 수 있으나, 이는 일 예시에 불과할 뿐 애플리케이션 서비스가 특별히 한정되는 것은 아니다. 또한, 상기 메시지는 예를 들어, 상술한 애플리케이션 서비스를 디바이스에서 실행시키기 위한 제어 메시지, 상기 제어 메시지에 대한 수신 확인 메시지(즉, ACK 메시지) 등이 될 수 있다.The
서비스 관리 모듈(102)은 애플리케이션 서버와 메시지 서버(106) 사이에서 메시지를 송수신함으로써 애플리케이션 서버에게 메시지 전송에 대한 신뢰성을 제공할 수 있다. 구체적으로, 서비스 관리 모듈(102)은 애플리케이션 서버의 요청에 따라 애플리케이션 서비스와 관련된 메시지를 생성하여 데이터베이스(미도시)에 저장하고, 상기 메시지를 메시지 서버(106)를 통해 디바이스 관리 모듈(104)로 전송할 수 있다. The
이때, 서비스 관리 모듈(102)은 설정된 시간 이내에 상기 메시지에 대한 수신 확인 메시지(즉, ACK 메시지)를 디바이스 관리 모듈(104)로부터 수신하는지 여부에 따라 상기 메시지를 재전송하거나 삭제할 수 있다. 일 예시로서, 서비스 관리 모듈(102)은 설정된 시간 이내에 상기 메시지에 대한 수신 확인 메시지를 수신하지 않는 경우 상기 메시지를 재전송할 수 있다. 다른 예시로서, 서비스 관리 모듈(102)은 설정된 시간 이내에 상기 메시지에 대한 수신 확인 메시지를 수신하는 경우 데이터베이스에 저장된 상기 메시지를 삭제할 수 있다. 서비스 관리 모듈(102)이 메시지를 재전송하거나 삭제하는 과정에 대해서는 도 4 내지 7을 참조하여 구체적으로 후술하기로 한다.At this time, the
또한, 서비스 관리 모듈(102)은 메시지 전송 취소, 유저 아이디를 디바이스 관리 모듈(104)의 아이디로 변환, 보안을 위한 인증 정보 관리, 멀티케스트(Multicast) 전송 요청 처리 등과 같은 부가 기능을 수행할 수 있다.In addition, the
이러한 서비스 관리 모듈(102)은 부하 분산을 위해 복수 개 존재(즉, 멀티 인스턴스로 존재)할 수 있으며, 각 서비스 관리 모듈(102)은 서로 다른 아이디(즉, 인스턴스 아이디)를 가질 수 있다. 또한, 동일한 애플리케이션 서비스를 처리하는 서비스 관리 모듈(102)은 동일한 그룹 내에 속하게 되며, 동일한 그룹 아이디를 가질 수 있다. 또한, 서비스 관리 모듈(102) 및 애플리케이션 서버는 제1 네트워크에 위치할 수 있다. 본 실시예들에 있어서, 제1 네트워크는 예를 들어, 특정 조직 또는 기업의 인트라넷(intranet)일 수 있다.A plurality of
디바이스 관리 모듈(104)은 디바이스 측 컴포넌트로서, 디바이스에 설치된 애플리케이션 클라이언트(미도시)와 메시지 서버(106) 사이에서 애플리케이션 서비스와 관련된 각종 메시지를 송수신한다. 본 발명의 실시예들에 있어서, 디바이스는 사용자가 소지하는 단말로서, 예를 들어 스마트폰, 노트북, 태블릿 PC 등과 같은 모바일 단말일 수 있다. 또한, 애플리케이션 클라이언트는 디바이스에 설치되어 애플리케이션 서버에서 제공되는 애플리케이션 서비스를 디바이스에서 실행시키기 위한 모듈이다. The
디바이스 관리 모듈(104)은 메시지 서버(106)를 통해 서비스 관리 모듈(102)로부터 애플리케이션 서비스와 관련된 메시지를 수신하고, 메시지 서버(106)를 통해 상기 메시지에 대한 수신 확인 메시지(즉, ACK 메시지)를 서비스 관리 모듈(102)로 전송할 수 있다. 또한, 디바이스 관리 모듈(104)은 메시지 전송 취소, 보안을 위한 인증 정보 관리 등과 같은 부가 기능을 수행할 수 있다.The
이러한 디바이스 관리 모듈(104)은 각 디바이스별로 하나 이상 존재할 수 있으며, 각 디바이스 관리 모듈(104)은 서로 다른 아이디를 가질 수 있다. 디바이스는 디바이스 관리 모듈(104)을 최초로 활성화하는 과정에서 메시지 서버(106)로부터 해당 디바이스 관리 모듈(104)의 아이디를 할당 받을 수 있다. 또한, 디바이스 관리 모듈(104) 및 상기 디바이스 관리 모듈(104)이 설치된 디바이스는 제2 네트워크에 위치할 수 있다. 본 실시예들에 있어서, 제2 네트워크는 제1 네트워크의 외부 영역으로서, 예를 들어 인터넷(internet)일 수 있다.At least one such
메시지 서버(106)는 서비스 관리 모듈(102)과 디바이스 관리 모듈(104) 사이에서 애플리케이션 서비스와 관련된 메시지를 중계(또는 양방향 전송)하는 서버이다. 이때, 메시지 서버(106)는 제1 네트워크와 제2 네트워크 사이의 DMZ(Demilitarized Zone)에 위치할 수 있다. DMZ는 제1 네트워크와 제2 네트워크 사이에 위치한 서브 네트워크로서, 제1 네트워크와 DMZ 사이에는 방화벽이 존재할 수 있다.The
메시지 서버(106)는 메시지 중계를 위한 각종 채널 매니저를 포함할 수 있으며, 상기 채널 매니저를 통해 상기 메시지를 라우팅할 수 있다.The
써드 파티 메시지 서버(108)는 타 조직 또는 기업의 메시지 서버로서, 예를 들어 GCM(Google Cloud Messaging), APNS(Apple Push Notification Service)의 메시지 서버(또는 푸시 서버)일 수 있다. 메시지 서버(106)는 내부의 채널 매니저를 통해 애플리케이션 서비스와 관련된 메시지를 써드 파티 메시지 서버(108)와 송수신할 수 있다.The third
도 2는 본 발명의 일 실시예에 따른 서비스 관리 모듈(102) 및 애플리케이션 서버(200)의 예시이다. Figure 2 is an illustration of a
도 2를 참조하면, 본 발명의 일 실시예에 따른 서비스 관리 모듈(102)은 부하 분산을 위해 복수 개(예를 들어, 100개) 존재할 수 있으며, 라이브러리(미도시)를 통해 함수를 호출하는 형태로 애플리케이션 서버(200)와 양방향 통신할 수 있다. 이를 위해, 서비스 관리 모듈(102)은 애플리케이션 서버(200)와의 양방향 통신을 위한 인터페이스(미도시)를 구비할 수 있다. 상술한 바와 같이, 서비스 관리 모듈(102)은 애플리케이션 서버(200)의 요청에 따라 애플리케이션 서비스와 관련된 메시지를 생성하여 데이터베이스(150)에 저장하고, 상기 메시지를 메시지 서버(106)를 통해 디바이스 관리 모듈(104)로 전송할 수 있다. 상기 데이터베이스(150)는 제1 네트워크에서 각 서비스 관리 모듈(102)과 연결될 수 있다.Referring to FIG. 2, the
이때, 상기 메시지는 발신자 주소(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
도 3은 본 발명의 일 실시예에 따른 디바이스 관리 모듈(104) 및 디바이스(300)의 예시이다.FIG. 3 is an illustration of a
도 3을 참조하면, 본 발명의 일 실시예에 따른 디바이스 관리 모듈(104)은 디바이스(300)에 설치되어 각 애플리케이션 클라이언트(302)에 해당 애플리케이션 서비스와 관련된 메시지를 송수신한다. 디바이스 관리 모듈(104-1)은 라이브러리(미도시)를 통해 함수를 호출하는 형태로 애플리케이션 클라이언트(302)와 양방향 통신할 수 있다. 이를 위해, 디바이스 관리 모듈(104-1)은 애플리케이션 클라이언트(302)와의 양방향 통신을 위한 인터페이스(미도시)를 구비할 수 있다. Referring to FIG. 3, the
또한, 디바이스 관리 모듈(104)은 메시지 서버(106)를 통해 서비스 관리 모듈(102)로부터 애플리케이션 서비스와 관련된 메시지를 수신하고, 메시지 서버(106)를 통해 상기 메시지에 대한 수신 확인 메시지(즉, ACK 메시지)를 서비스 관리 모듈(102)로 전송할 수 있다.The
한편, 본 발명의 일 실시예에 따르면, 부하 분산을 위해 애플리케이션 서버(200) 측 컴포넌트, 즉 서비스 관리 모듈(102)을 멀티 인스턴스로 구성하고, 애플리케이션 서버(200)에서 상기 멀티 인스턴스를 통해 디바이스(300) 측 컴포넌트, 즉 디바이스 관리 모듈(104)과 메시지를 송수신할 수 있다. 그러나, 서비스 관리 모듈(102)이 멀티 인스턴스로 구성된다 하더라도 특정 서비스 관리 모듈(102)에 재전송 또는 삭제 대상이 되는 메시지가 집중되는 경우 해당 서비스 관리 모듈(102)에만 부하가 집중되어 전체 시스템 성능이 저하될 수 있다. 또한, 각 서비스 관리 모듈(102)에서 동일한 메시지를 중복으로 전송함에 따라 불필요한 부하를 발생시키는 경우가 빈번히 발생할 수 있다. 이에 따라, 본 발명의 실시예들에서는 메시지 전송이 어떤 서비스 관리 모듈(102)에 요청되었는지와 관계 없이 특정 디바이스 관리 모듈(104)에 대한 메시지 재전송 및 삭제 처리를 특정 서비스 관리 모듈(102)에서만 담당하도록 하여 메시지의 중복 전송을 방지하고 부하를 분산시킬 수 있도록 하였다. 이에 대해서는 도 4 내지 7을 참조하여 구체적으로 설명하기로 한다.According to an embodiment of the present invention, the
도 4는 본 발명의 일 실시예에 따른 서비스 관리 모듈(102)의 상세 구성을 나타낸 블록도이다. 도 4에 도시된 바와 같이, 본 발명의 일 실시예에 따른 서비스 관리 모듈(102)은 DB 접근부(402), 디바이스 관리 모듈 결정부(404) 및 처리부(406)를 포함한다.4 is a block diagram illustrating a detailed configuration of a
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
결정부(404)는 디바이스 관리 모듈(104) 각각의 아이디 및 서비스 관리 모듈(102)의 전체 개수를 이용하여 복수의 디바이스 관리 모듈(104) 중 자신이 담당하는 하나 이상의 담당 디바이스 관리 모듈(104)를 결정한다.The
먼저, 결정부(404)는 데이터베이스(150)를 참조하여 디바이스 관리 모듈 각각의 아이디에 대한 해시값 및 서비스 관리 모듈의 전체 개수를 획득할 수 있다. 상기 디바이스 관리 모듈 각각의 아이디 또는 상기 디바이스 관리 모듈 각각의 아이디에 대한 해시값은 데이터베이스(150)에 저장될 수 있으며, 결정부(404)는 데이터베이스(150)를 참조하여 상기 디바이스 관리 모듈 각각의 아이디를 획득한 후 이를 해시하거나 또는 데이터베이스(150)를 참조하여 상기 디바이스 관리 모듈 각각의 아이디에 대한 해시값을 곧바로 획득할 수 있다. 또한, 상술한 바와 같이, 각 서비스 관리 모듈(102)은 자신의 식별 번호를 상기 데이터베이스(150)에 기록할 수 있으며, 결정부(404)는 데이터베이스(150)를 참조하여 서비스 관리 모듈의 전체 개수를 확인할 수 있다. 일 예시로서, 결정부(404)는 데이터베이스(150)에 마지막으로 기록된 서비스 관리 모듈(102)의 식별 번호를 참조하여 상기 서비스 관리 모듈의 전체 개수를 확인할 수 있다.First, the
다음으로, 결정부(404)는 상기 디바이스 관리 모듈 각각의 아이디에 대한 해시값을 서비스 관리 모듈의 전체 개수로 모듈러(modulus) 연산하여 상기 디바이스 관리 모듈 각각에 대한 모듈러 연산값을 계산할 수 있다. 모듈러 연산은 두 값의 나눗셈에 의한 나머지를 구하는 연산으로서, a mod b (또는 a % b)로 표현되는 모듈러 연산의 경우 a 를 b로 나누었을 때의 나머지 값이 출력된다. 상기 디바이스 관리 모듈 각각의 아이디에 대한 해시값은 서로 다른 고유의 값을 가지게 되므로, 상기 디바이스 관리 모듈 각각의 아이디에 대한 해시값을 서비스 관리 모듈의 전체 개수로 모듈러 연산하는 경우 상기 디바이스 관리 모듈 각각이 랜덤한 확률로 서비스 관리 모듈의 전체 개수만큼 균일하게 그룹핑될 수 있다. 일 예시로서, 서비스 관리 모듈(102) 및 디바이스 관리 모듈(104)의 개수가 각각 100개 및 40만개인 경우, 결정부(404)는 상기 모듈러 연산을 통해 40만개의 디바이스 관리 모듈(104)을 100개의 그룹(즉, 모듈러 연산값 0, 1, 2...99에 각각 대응되는 그룹)으로 그룹핑할 수 있다.Next, the
다음으로, 결정부(404)는 상기 모듈러 연산값과 자신의 식별 번호를 참조하여 담당 디바이스 관리 모듈을 결정할 수 있다. 구체적으로, 결정부(404)는 상기 모듈러 연산값과 자신의 식별 번호를 각각 비교하여 상기 모듈러 연산값 중 자신의 식별 번호와 대응(또는 일치)되는 모듈러 연산값을 찾고, 상기 모듈러 연산값과 연관된 디바이스 관리 모듈의 아이디(즉, 상기 모듈러 연산값을 획득하는 데 사용된 디바이스 관리 모듈의 아이디)를 가진 디바이스 관리 모듈을 담당 디바이스 관리 모듈로 결정할 수 있다. 이와 같이, 각 서비스 관리 모듈(102)는 상기 모듈러 연산을 통해 자신이 담당하는 담당 디바이스 관리 모듈을 각각 결정할 수 있으며, 이에 따라 각 서비스 관리 모듈(102)별로 담당 디바이스 관리 모듈이 랜덤한 확률로 균일하게 분배될 수 있다. Next, the
처리부(406)는 서비스 관리 모듈(102)의 담당 디바이스 관리 모듈로 전송된 메시지를 재전송하거나 삭제한다. 상술한 바와 같이, 서비스 관리 모듈(102)은 설정된 시간 이내에 상기 메시지에 대한 수신 확인 메시지를 수신하지 않는 경우 상기 메시지를 재전송할 수 있으며, 설정된 시간 이내에 상기 메시지에 대한 수신 확인 메시지를 수신하는 경우 데이터베이스(150)에 저장된 상기 메시지를 삭제할 수 있다. 처리부(406)는 이와 같은 메시지 재전송 및 삭제 처리를 수행함에 있어서 자신이 담당하는 담당 디바이스 관리 모듈에 대한 메시지 재전송 및 삭제 처리만을 수행하고 자신의 담당 디바이스 관리 모듈이 아닌 타 디바이스 관리 모듈에 대한 메시지 재전송 및 삭제 처리는 수행하지 않게 된다. 즉, 본 발명의 실시예들에 따르면, 각 서비스 관리 모듈(102)이 자신이 담당하는 담당 디바이스 관리 모듈에 대한 메시지 재전송 및 삭제 처리만을 수행하도록 함으로써, 각 서비스 관리 모듈(102)에서의 메시지 중복 전송을 방지하고 부하를 분산시킬 수 있다.The
또한, 처리부(406)는 설정된 주기(예를 들어, 2분)마다 메시지의 재전송 또는 삭제 여부를 결정할 수 있다. 이때, 상기 주기는 각 서비스 관리 모듈(102)별로 상이할 수 있다. 처리부(406)는 상기 주기마다 각 담당 디바이스 관리 모듈에 대한 메시지를 하나씩 재전송하거나 삭제할 수 있다. In addition, the
이때, 서비스 관리 모듈(102)의 전체 개수가 변경되는 경우, 결정부(404)는 상기 메시지의 재전송 또는 삭제 시점에 상기 모듈러 연산값을 재계산하여 상기 담당 디바이스 관리 모듈을 재결정할 수 있다. 일 예시로서, 시스템 장애 등으로 인해 복수의 서비스 관리 모듈(102) 중 일부가 동작하지 않는 경우, 결정부(404)는 상기 메시지의 재전송 또는 삭제 시점에 상기 모듈러 연산값을 재계산하여 상기 담당 디바이스 관리 모듈을 재결정할 수 있다. 다른 예시로서, 특정 솔루션의 사용자 증가 등으로 인해 서비스 관리 모듈(102)이 새롭게 추가되는 경우, 결정부(404)는 상기 메시지의 재전송 또는 삭제 시점에 상기 모듈러 연산값을 재계산하여 상기 담당 디바이스 관리 모듈을 재결정할 수 있다. 또한, 메시지를 재전송 또는 삭제하는 주기는 각 서비스 관리 모듈(102)별로 상이할 수 있으며, 이 경우 각 서비스 관리 모듈(102)별로 상기 모듈러 연산값을 재계산하여 상기 담당 디바이스 관리 모듈을 재결정하는 시점 또한 상이할 수 있다.At this time, when the total number of the
이와 같이, 본 발명의 실시예들에 따르면, 서비스 관리 모듈(102)의 전체 개수가 변경되는 경우 각 서비스 관리 모듈(102)에서 담당하는 담당 디바이스 관리 모듈 또한 동적으로 변경시킴으로써, 일부 서비스 관리 모듈(102)에서 장애가 발생하거나 새로운 서비스 관리 모듈(102)이 추가되더라도 이를 반영하여 메시지 처리를 효율적으로 수행할 수 있다.In this way, according to the embodiments of the present invention, when the total number of
도 5는 본 발명의 일 실시예에 따른 결정부(404)에서 담당 디바이스 관리 모듈을 결정하는 과정을 설명하기 위한 예시이다. FIG. 5 is an illustration for explaining a process of determining a chargeable device management module in the
여기서, 서비스 관리 모듈(102) 및 디바이스 관리 모듈(104)의 개수는 각각 3개 및 9개인 것으로 가정한다. 또한, 각 서비스 관리 모듈(102)의 식별 번호는 #0, #1 및 #2이며, 각 디바이스 관리 모듈(104)의 아이디에 대한 해시값은 1, 2, 3...9 인 것으로 가정한다.Here, it is assumed that the number of the
상술한 바와 같이, 각 서비스 관리 모듈(102)의 결정부(404)는 디바이스 관리 모듈 각각의 아이디에 대한 해시값을 서비스 관리 모듈의 전체 개수로 모듈러 연산하여 상기 디바이스 관리 모듈 각각에 대한 모듈러 연산값을 계산하고, 상기 모듈러 연산값과 자신의 식별 번호를 참조하여 담당 디바이스 관리 모듈을 결정할 수 있다. 도 3에서, 각 서비스 관리 모듈(102)의 결정부(404)는 아래 표 1과 같은 모듈러 연산값을 각각 계산할 수 있다.As described above, the
이후, 각 서비스 관리 모듈(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
도 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
도 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
또한, 도 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
도 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
S802 단계에서, 결정부(404)는 디바이스 관리 모듈(104) 각각의 아이디에 대한 해시값을 상기 서비스 관리 모듈(102)의 전체 개수로 모듈러 연산하여 상기 디바이스 관리 모듈 각각에 대한 모듈러 연산값을 계산한다.In step S802, the
S804 단계에서, 결정부(404)는 상기 모듈러 연산값과 자신의 식별 번호를 각각 비교하여 상기 담당 디바이스 관리 모듈을 결정한다. In step S804, the
S806 단계에서, 처리부(406)는 자신이 담당하는 담당 디바이스 관리 모듈에 대한 메시지 재전송 및 삭제 처리를 수행한다.In step S806, the
S808 단계에서, 상기 서비스 관리 모듈(102)의 전체 개수가 변경되는 경우, 결정부(404)는 메시지의 재전송 또는 삭제 시점에 상기 모듈러 연산값을 재계산한다.In step S808, when the total number of the
S810 단계에서, 결정부(404)는 재계산된 모듈로 연산값과 자신의 식별 번호를 각각 비교하여 상기 담당 디바이스 관리 모듈을 재결정한다.In step S810, the
S812 단계에서, 처리부(406)는 S808 단계에서 결정된 담당 디바이스 관리 모듈에 대한 메시지 재전송 및 삭제 처리를 수행한다.In step S812, the
도 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
컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.The
컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.The computer-
통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.
컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.The
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 전술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.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.
상기 식별 번호는, 상기 서비스 관리 모듈 각각이 데이터베이스에 접근한 순서에 따라 결정되는, 메시지 처리 장치.
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.
상기 서비스 관리 모듈 각각은, 상기 자신의 식별 번호를 상기 데이터베이스에 기록하며, 상기 데이터베이스를 참조하여 상기 서비스 관리 모듈의 전체 개수를 확인하는, 메시지 처리 장치.
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.
상기 디바이스 관리 모듈 각각의 아이디 및 상기 서비스 관리 모듈의 전체 개수를 이용하여 상기 복수의 디바이스 관리 모듈 중 자신이 담당하는 하나 이상의 담당 디바이스 관리 모듈을 결정하는 결정부; 및
상기 담당 디바이스 관리 모듈로 전송된 메시지를 설정된 주기마다 재전송하거나 삭제하는 처리부를 포함하고,
상기 결정부는, 상기 디바이스 관리 모듈 각각의 아이디에 대한 해시값을 상기 서비스 관리 모듈의 전체 개수로 모듈러(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.
상기 식별 번호는, 상기 서비스 관리 모듈 각각이 데이터베이스에 접근한 순서에 따라 결정되는, 서비스 관리 모듈.
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.
상기 결정부는, 상기 자신의 식별 번호를 상기 데이터베이스에 기록하며, 상기 데이터베이스를 참조하여 상기 서비스 관리 모듈의 전체 개수를 확인하는, 서비스 관리 모듈.
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.
상기 서비스 관리 모듈의 처리부에서, 상기 담당 디바이스 관리 모듈로 전송된 메시지를 설정된 주기마다 재전송하거나 삭제하는 단계를 포함하고,
상기 담당 디바이스 관리 모듈을 결정하는 단계는,
상기 디바이스 관리 모듈 각각의 아이디에 대한 해시값을 상기 서비스 관리 모듈의 전체 개수로 모듈러(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.
상기 식별 번호는, 상기 서비스 관리 모듈 각각이 데이터베이스에 접근한 순서에 따라 결정되는, 메시지 처리 방법.
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.
상기 담당 디바이스 관리 모듈을 결정하는 단계는,
상기 연산값을 계산하는 단계 이전에,
상기 자신의 식별 번호를 상기 데이터베이스에 기록하며, 상기 데이터베이스를 참조하여 상기 서비스 관리 모듈의 전체 개수를 확인하는 단계를 더 포함하는, 메시지 처리 방법.
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.
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)
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 |
-
2017
- 2017-10-20 KR KR1020170136409A patent/KR101996239B1/en active IP Right Grant
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) |