KR102387930B1 - System and method for processing service - Google Patents

System and method for processing service Download PDF

Info

Publication number
KR102387930B1
KR102387930B1 KR1020150167794A KR20150167794A KR102387930B1 KR 102387930 B1 KR102387930 B1 KR 102387930B1 KR 1020150167794 A KR1020150167794 A KR 1020150167794A KR 20150167794 A KR20150167794 A KR 20150167794A KR 102387930 B1 KR102387930 B1 KR 102387930B1
Authority
KR
South Korea
Prior art keywords
message
service module
service
auto
scaling
Prior art date
Application number
KR1020150167794A
Other languages
Korean (ko)
Other versions
KR20170062235A (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 KR1020150167794A priority Critical patent/KR102387930B1/en
Publication of KR20170062235A publication Critical patent/KR20170062235A/en
Application granted granted Critical
Publication of KR102387930B1 publication Critical patent/KR102387930B1/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
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Abstract

서비스 처리 시스템 및 방법이 제공된다. 본 발명의 일 실시예에 따른 서비스 처리 시스템은, 서로 다른 서비스를 처리하는 복수의 서비스 모듈 각각으로부터 상기 서비스 모듈에서의 메시지 입출력 정보를 수신하고, 상기 메시지 입출력 정보를 이용하여 상기 서비스 모듈별 메시지 처리 성능을 판단하는 메시지 모니터링부; 및 상기 메시지 모니터링부로부터 상기 서비스 모듈별 메시지 처리 성능에 관한 정보를 수신하고, 상기 서비스 모듈별 메시지 처리 성능에 따라 상기 복수의 서비스 모듈 각각의 실행 순서를 결정하는 서비스 모듈 실행부를 포함한다.Service processing systems and methods are provided. A service processing system according to an embodiment of the present invention receives message input/output information in the service module from each of a plurality of service modules that process different services, and processes messages for each service module using the message input/output information a message monitoring unit for determining performance; and a service module execution unit configured to receive information on message processing performance for each service module from the message monitoring unit and determine an execution order of each of the plurality of service modules according to the message processing performance for each service module.

Description

서비스 처리 시스템 및 방법{SYSTEM AND METHOD FOR PROCESSING SERVICE}SYSTEM AND METHOD FOR PROCESSING SERVICE

본 발명의 실시예들은 플랫폼 상에서 서비스를 효율적으로 처리하는 기술과 관련된다.
Embodiments of the present invention relate to a technology for efficiently processing a service on a platform.

종래에는 워크플로우 모델(Workflow Model)의 작성시 서비스 모듈 간의 실행 방식(순차적 실행 또는 병렬적 실행) 및 실행 순서를 결정하고, 작성된 워크플로우 모델을 기반으로 서비스 모듈을 실행하는 것이 일반적이었다. 그러나, 종래 기술에 따르면 특정 서비스 모듈의 메시지 처리 속도가 느리거나 메시지 처리량이 많은 경우(즉, 특정 서비스 모듈의 메시지 처리 성능이 저하되는 경우) 해당 서비스 모듈에서 병목 현상이 발생되는 문제점이 있었다. Conventionally, when creating a workflow model, it is common to determine the execution method (sequential execution or parallel execution) and execution order between service modules, and to execute the service module based on the created workflow model. However, according to the prior art, when the message processing speed of the specific service module is slow or the message processing amount is high (ie, when the message processing performance of the specific service module is deteriorated), there is a problem that a bottleneck occurs in the corresponding service module.

일 예시로서, 서비스 모듈 M1 내지 M5가 M1 → M2 → M3 → M4 → M5 순으로 실행되도록 워크플로우 모델이 작성된 경우, 서비스 모듈 M1의 메시지 처리 성능의 저하로 서비스 모듈 M1에서 처리하여야 할 메시지가 계속적으로 적체되면 서비스 모듈 M2, M3, M4, M5는 서비스 모듈 M1에서의 메시지 처리가 완료될 때까지 대기 상태를 유지할 수 밖에 없다. 이러한 병목 현상은 플랫폼 전체의 성능을 저하시키며, 이에 따라 사용자에게 원활한 서비스를 제공하는 데 어려움이 있을 수 있다.As an example, when a workflow model is created such that service modules M1 to M5 are executed in the order of M1 → M2 → M3 → M4 → M5, the message to be processed in the service module M1 is continuously is accumulated, the service modules M2, M3, M4, and M5 have no choice but to maintain the standby state until the message processing in the service module M1 is completed. Such a bottleneck degrades the overall performance of the platform, and accordingly, it may be difficult to provide a smooth service to users.

또한, 복수의 서비스 모듈(예를 들어, 서비스 모듈 M1 내지 M5)이 하나의 리소스(resource)에 접근하여야 하는 경우, 상기 복수의 서비스 모듈이 병렬적으로 실행되도록 워크플로우 모델을 작성할 수 없으며 상기 복수의 서비스 모듈이 순차적으로 실행되도록 워크플로우 모델을 작성하여야 한다. 이는 플랫폼 전체의 성능에 악영향을 미치게 되며, 서비스 모듈의 순차적 실행에 따라 앞서 설명한 병목 현상이 발생될 우려가 있다.
In addition, when a plurality of service modules (eg, service modules M1 to M5) need to access one resource, a workflow model cannot be created so that the plurality of service modules are executed in parallel, and the plurality of service modules cannot be created. A workflow model should be created so that the service modules of This adversely affects the performance of the entire platform, and there is a possibility that the bottleneck described above may occur depending on the sequential execution of the service module.

한국등록특허공보 제10-1345068호(2013.12.28)Korean Patent Publication No. 10-1345068 (2013.12.28)

본 발명의 실시예들은 서로 다른 서비스를 처리하는 복수의 서비스 모듈 간의 실행 순서를 동적으로 결정하는 수단을 제공하기 위한 것이다.
Embodiments of the present invention are to provide a means for dynamically determining the execution order between a plurality of service modules that process different services.

본 발명의 예시적인 실시예에 따르면, 서로 다른 서비스를 처리하는 복수의 서비스 모듈 각각으로부터 상기 서비스 모듈에서의 메시지 입출력 정보를 수신하고, 상기 메시지 입출력 정보를 이용하여 상기 서비스 모듈별 메시지 처리 성능을 판단하는 메시지 모니터링부; 및 상기 메시지 모니터링부로부터 상기 서비스 모듈별 메시지 처리 성능에 관한 정보를 수신하고, 상기 서비스 모듈별 메시지 처리 성능에 따라 상기 복수의 서비스 모듈 각각의 실행 순서를 동적으로 결정하는 서비스 모듈 실행부를 포함하는, 서비스 처리 시스템이 제공된다.According to an exemplary embodiment of the present invention, message input/output information in the service module is received from each of a plurality of service modules that process different services, and message processing performance for each service module is determined using the message input/output information. a message monitoring unit; and a service module execution unit that receives information on message processing performance for each service module from the message monitoring unit and dynamically determines the execution order of each of the plurality of service modules according to the message processing performance for each service module, A service processing system is provided.

상기 메시지 모니터링부는, 상기 메시지 입출력 정보를 이용하여 상기 서비스 모듈 각각에서의 메시지 트래픽을 계산하고, 상기 메시지 트래픽에 따라 상기 서비스 모듈별 메시지 처리 성능을 판단할 수 있다. The message monitoring unit may calculate message traffic in each of the service modules by using the message input/output information, and determine message processing performance for each service module according to the message traffic.

상기 서비스 모듈 실행부는, 상기 복수의 서비스 모듈 중 상기 메시지 트래픽이 가장 적은 서비스 모듈을 가장 먼저 실행하도록 상기 실행 순서를 결정할 수 있다. The service module execution unit may determine the execution order so that a service module having the least message traffic among the plurality of service modules is executed first.

상기 서비스 모듈 실행부는, 상기 메시지 트래픽이 가장 적은 서비스 모듈의 실행이 완료된 이후 상기 메시지 모니터링부로부터 상기 서비스 모듈별 메시지 처리 성능에 관한 정보를 새롭게 수신하고, 새롭게 수신된 상기 서비스 모듈별 메시지 처리 성능에 관한 정보를 이용하여 다음으로 실행할 서비스 모듈을 결정할 수 있다. The service module execution unit may be configured to newly receive information on message processing performance for each service module from the message monitoring unit after the execution of the service module with the least message traffic is completed, and to measure the newly received message processing performance for each service module. You can use the information about the next service module to be executed.

상기 서비스 모듈 실행부는, 새롭게 수신된 상기 서비스 모듈별 메시지 처리 성능에 관한 정보를 이용하여 상기 복수의 서비스 모듈에서 상기 실행이 완료된 서비스 모듈을 제외한 나머지 서비스 모듈 중 상기 메시지 트래픽이 가장 적은 서비스 모듈을 상기 다음으로 실행할 서비스 모듈로 결정할 수 있다. The service module execution unit is configured to select a service module having the least message traffic among the remaining service modules except for the service module for which the execution has been completed in the plurality of service modules by using the newly received information on the message processing performance for each service module. Next, you can decide which service module to run.

상기 서비스 처리 시스템은, 상기 메시지 모니터링부로부터 오토-스케일링 요청 메시지를 수신하고, 상기 오토-스케일링 요청 메시지에 따라 상기 복수의 서비스 모듈 중 적어도 하나에 대한 컴퓨팅 자원을 오토-스케일링(auto-scaling)하는 오토 스케일링부를 더 포함할 수 있다. The service processing system receives an auto-scaling request message from the message monitoring unit, and auto-scaling computing resources for at least one of the plurality of service modules according to the auto-scaling request message. It may further include an auto-scaling unit.

상기 메시지 모니터링부는, 상기 메시지 입출력 정보를 이용하여 스케일링 기준 정보를 계산하며, 상기 스케일링 기준 정보와 설정된 기준치와의 비교 결과에 따라 상기 오토-스케일링 요청 메시지를 생성할 수 있다. The message monitoring unit may calculate scaling reference information using the message input/output information, and generate the auto-scaling request message according to a comparison result between the scaling reference information and a set reference value.

상기 스케일링 기준 정보는, 상기 복수의 서비스 모듈을 구비하는 플랫폼 전체의 초당 트랜잭션 처리 수(TPS(S)) 및 상기 플랫폼 전체의 평균 메시지 처리 시간(T(S)) 중 하나 이상을 포함할 수 있다. The scaling reference information may include one or more of the number of transactions per second (TPS(S)) for the entire platform including the plurality of service modules and the average message processing time (T(S)) for the entire platform. .

상기 메시지 모니터링부는, 상기 서비스 모듈 각각에 대한 초당 트랜잭션 처리 수(TPS(Mi)) 및 상기 서비스 모듈 각각에 대한 평균 메시지 처리 시간(T(Mi)) 중 하나 이상을 계산하며, 상기 비교 결과와 상기 TPS(Mi) 또는 상기 T(Mi)를 고려하여 상기 오토-스케일링 요청 메시지를 생성할 수 있다. The message monitoring unit calculates at least one of the number of transactions per second (TPS(M i )) for each of the service modules and the average message processing time (T(M i )) for each of the service modules, and the comparison result and the TPS(M i ) or the T(M i ) may be taken into consideration to generate the auto-scaling request message.

상기 오토-스케일링 요청 메시지는, 상기 TPS(S)가 제1 기준치보다 설정된 값 이상 낮은 경우 상기 TPS(Mi)가 가장 낮은 서비스 모듈에 대한 컴퓨팅 자원부터 스케일-아웃(scale-out)하도록 요청하는 메시지이며, 상기 TPS(S)가 상기 제1 기준치보다 설정된 값 이상 높은 경우 상기 TPS(Mi)가 가장 높은 서비스 모듈에 대한 컴퓨팅 자원부터 스케일-인(scale-in)하도록 요청하는 메시지일 수 있다. The auto-scaling request message is, when the TPS(S) is lower than a set value or more than the first reference value, the TPS(M i ) requests to scale-out from the computing resource for the lowest service module It is a message, and when the TPS(S) is higher than a set value or more than the first reference value, the TPS(M i ) may be a message requesting to scale-in from the computing resource for the highest service module. .

상기 오토-스케일링 요청 메시지는, 상기 T(S)가 제2 기준치보다 설정된 값 이상 높은 경우 상기 T(Mi)가 가장 높은 서비스 모듈에 대한 컴퓨팅 자원부터 스케일-아웃하도록 요청하는 메시지이며, 상기 T(S)가 제2 기준치보다 설정된 값 이상 낮은 경우 상기 T(Mi)가 가장 낮은 서비스 모듈에 대한 컴퓨팅 자원부터 스케일-인하도록 요청하는 메시지일 수 있다.The auto-scaling request message is a message requesting to scale-out from the computing resource for the service module having the highest T(M i ) when the T(S) is higher than a set value or more than the second reference value, and the T When (S) is lower than a set value or more than the second reference value, the T(M i ) may be a message requesting to scale-in from the computing resource for the lowest service module.

본 발명의 다른 예시적인 실시예에 따르면, 메시지 모니터링부에서, 서로 다른 서비스를 처리하는 복수의 서비스 모듈 각각으로부터 상기 서비스 모듈에서의 메시지 입출력 정보를 수신하는 단계; 상기 메시지 모니터링부에서, 상기 메시지 입출력 정보를 이용하여 상기 서비스 모듈별 메시지 처리 성능을 판단하는 단계; 서비스 모듈 실행부에서, 상기 메시지 모니터링부로부터 상기 서비스 모듈별 메시지 처리 성능에 관한 정보를 수신하는 단계; 및 상기 서비스 모듈 실행부에서, 상기 서비스 모듈별 메시지 처리 성능에 따라 상기 복수의 서비스 모듈 각각의 실행 순서를 동적으로 결정하는 단계를 포함하는, 서비스 처리 방법이 제공된다. According to another exemplary embodiment of the present invention, the method comprising: receiving, by a message monitoring unit, message input/output information in the service module from each of a plurality of service modules that process different services; determining, by the message monitoring unit, message processing performance for each service module by using the message input/output information; receiving, in the service module execution unit, information on message processing performance for each service module from the message monitoring unit; and dynamically determining, in the service module execution unit, an execution order of each of the plurality of service modules according to message processing performance for each service module.

상기 서비스 모듈별 메시지 처리 성능을 판단하는 단계는, 상기 메시지 입출력 정보를 이용하여 상기 서비스 모듈 각각에서의 메시지 트래픽을 계산하고, 상기 메시지 트래픽에 따라 상기 서비스 모듈별 메시지 처리 성능을 판단할 수 있다. The determining of the message processing performance for each service module may include calculating message traffic in each of the service modules using the message input/output information, and determining the message processing performance of each service module according to the message traffic.

상기 복수의 서비스 모듈 각각의 실행 순서를 결정하는 단계는, 상기 복수의 서비스 모듈 중 상기 메시지 트래픽이 가장 적은 서비스 모듈을 가장 먼저 실행하도록 상기 실행 순서를 결정할 수 있다. The determining of the execution order of each of the plurality of service modules may include determining the execution order so that a service module having the least message traffic among the plurality of service modules is executed first.

상기 복수의 서비스 모듈 각각의 실행 순서를 결정하는 단계는, 상기 메시지 트래픽이 가장 적은 서비스 모듈의 실행이 완료된 이후 상기 메시지 모니터링부로부터 상기 서비스 모듈별 메시지 처리 성능에 관한 정보를 새롭게 수신하고, 새롭게 수신된 상기 서비스 모듈별 메시지 처리 성능에 관한 정보를 이용하여 다음으로 실행할 서비스 모듈을 결정할 수 있다. In the determining of the execution order of each of the plurality of service modules, after the execution of the service module with the least message traffic is completed, information on message processing performance for each service module is newly received from the message monitoring unit, and newly received The service module to be executed next can be determined by using the information on the message processing performance for each service module.

상기 복수의 서비스 모듈 각각의 실행 순서를 결정하는 단계는, 새롭게 수신된 상기 서비스 모듈별 메시지 처리 성능에 관한 정보를 이용하여 상기 복수의 서비스 모듈에서 상기 실행이 완료된 서비스 모듈을 제외한 나머지 서비스 모듈 중 상기 메시지 트래픽이 가장 적은 서비스 모듈을 상기 다음으로 실행할 서비스 모듈로 결정할 수 있다. The determining of the execution order of each of the plurality of service modules may include using the newly received information on message processing performance for each service module from among the remaining service modules except for the service modules for which the execution has been completed in the plurality of service modules. A service module having the least message traffic may be determined as the service module to be executed next.

상기 서비스 처리 방법은, 오토 스케일링부에서, 상기 메시지 모니터링부로부터 오토-스케일링 요청 메시지를 수신하는 단계; 및 상기 오토 스케일링부에서, 상기 오토-스케일링 요청 메시지에 따라 상기 복수의 서비스 모듈 중 적어도 하나에 대한 컴퓨팅 자원을 오토-스케일링(auto-scaling)하는 단계를 더 포함할 수 있다. The service processing method includes, in the auto-scaling unit, receiving an auto-scaling request message from the message monitoring unit; and auto-scaling, by the auto-scaling unit, computing resources for at least one of the plurality of service modules according to the auto-scaling request message.

상기 서비스 처리 방법은, 상기 오토-스케일링 요청 메시지를 수신하는 단계 이전에, 상기 메시지 모니터링부에서, 상기 메시지 입출력 정보를 이용하여 스케일링 기준 정보를 계산하며, 상기 스케일링 기준 정보와 설정된 기준치와의 비교 결과에 따라 상기 오토-스케일링 요청 메시지를 생성하는 단계를 더 포함할 수 있다. In the service processing method, before receiving the auto-scaling request message, the message monitoring unit calculates scaling reference information using the message input/output information, and compares the scaling reference information with a set reference value. The method may further include generating the auto-scaling request message according to the .

상기 스케일링 기준 정보는, 상기 복수의 서비스 모듈을 구비하는 플랫폼 전체의 초당 트랜잭션 처리 수(TPS(S)) 및 상기 플랫폼 전체의 평균 메시지 처리 시간(T(S)) 중 하나 이상을 포함할 수 있다. The scaling reference information may include one or more of the number of transactions per second (TPS(S)) for the entire platform including the plurality of service modules and the average message processing time (T(S)) for the entire platform. .

상기 오토-스케일링 요청 메시지를 생성하는 단계는, 상기 서비스 모듈 각각에 대한 초당 트랜잭션 처리 수(TPS(Mi)) 및 상기 서비스 모듈 각각에 대한 평균 메시지 처리 시간(T(Mi)) 중 하나 이상을 계산하며, 상기 비교 결과와 상기 TPS(Mi) 또는 상기 T(Mi)를 고려하여 상기 오토-스케일링 요청 메시지를 생성할 수 있다. The generating of the auto-scaling request message includes at least one of a number of transactions per second (TPS(M i )) for each of the service modules and an average message processing time (T(M i )) for each of the service modules. , and the auto-scaling request message may be generated in consideration of the comparison result and the TPS(M i ) or T(M i ).

상기 오토-스케일링 요청 메시지는, 상기 TPS(S)가 제1 기준치보다 설정된 값 이상 낮은 경우 상기 TPS(Mi)가 가장 낮은 서비스 모듈에 대한 컴퓨팅 자원부터 스케일-아웃(scale-out)하도록 요청하는 메시지이며, 상기 TPS(S)가 상기 제1 기준치보다 설정된 값 이상 높은 경우 상기 TPS(Mi)가 가장 높은 서비스 모듈에 대한 컴퓨팅 자원부터 스케일-인(scale-in)하도록 요청하는 메시지일 수 있다. The auto-scaling request message is, when the TPS(S) is lower than a set value or more than the first reference value, the TPS(M i ) requests to scale-out from the computing resource for the lowest service module It is a message, and when the TPS(S) is higher than a set value or more than the first reference value, the TPS(M i ) may be a message requesting to scale-in from the computing resource for the highest service module. .

상기 오토-스케일링 요청 메시지는, 상기 T(S)가 제2 기준치보다 설정된 값 이상 높은 경우 상기 T(Mi)가 가장 높은 서비스 모듈에 대한 컴퓨팅 자원부터 스케일-아웃하도록 요청하는 메시지이며, 상기 T(S)가 제2 기준치보다 설정된 값 이상 낮은 경우 상기 T(Mi)가 가장 낮은 서비스 모듈에 대한 컴퓨팅 자원부터 스케일-인하도록 요청하는 메시지일 수 있다. The auto-scaling request message is a message requesting to scale-out from the computing resource for the service module having the highest T(M i ) when the T(S) is higher than a set value or more than the second reference value, and the T When (S) is lower than a set value or more than the second reference value, the T(M i ) may be a message requesting to scale-in from the computing resource for the lowest service module.

본 발명의 다른 예시적인 실시예에 따르면, 하드웨어와 결합되어 메시지 모니터링부에서, 서로 다른 서비스를 처리하는 복수의 서비스 모듈 각각으로부터 상기 서비스 모듈에서의 메시지 입출력 정보를 수신하는 단계; 상기 메시지 모니터링부에서, 상기 메시지 입출력 정보를 이용하여 상기 서비스 모듈별 메시지 처리 성능을 판단하는 단계; 서비스 모듈 실행부에서, 상기 메시지 모니터링부로부터 상기 서비스 모듈별 메시지 처리 성능에 관한 정보를 수신하는 단계; 및 상기 서비스 모듈 실행부에서, 상기 서비스 모듈별 메시지 처리 성능에 따라 상기 복수의 서비스 모듈 각각의 실행 순서를 동적으로 결정하는 단계를 실행시키기 위하여 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램이 제공된다.
According to another exemplary embodiment of the present invention, the method comprising: receiving message input/output information in the service module from each of a plurality of service modules that process different services in a message monitoring unit in combination with hardware; determining, by the message monitoring unit, message processing performance for each service module by using the message input/output information; receiving, in the service module execution unit, information on message processing performance for each service module from the message monitoring unit; and dynamically determining the execution order of each of the plurality of service modules according to the message processing performance for each service module by the service module execution unit, a computer program stored in a computer-readable recording medium is provided.

본 발명의 실시예들에 따르면, 서비스 모듈별 실시간 메시지 처리 성능에 따라 서비스 모듈의 실행 순서를 동적으로 결정함으로써, 특정 서비스 모듈에서의 병목 현상을 방지하고 서비스 모듈 각각에서 제공되는 서비스를 원활하게 처리할 수 있다. 특히, 본 발명의 실시예들은 각 서비스 모듈이 서로 독립적으로 작동하는 마이크로 서비스 아키텍쳐 및 워크플로우 모델 내 서비스 모듈 간의 실행 방식(순차적 실행 또는 병렬적 실행)에 제약이 없는 경우 상술한 종래 기술의 문제점을 해결하는 수단으로서 활용될 수 있다.According to embodiments of the present invention, by dynamically determining the execution order of service modules according to real-time message processing performance for each service module, a bottleneck in a specific service module is prevented and services provided by each service module are smoothly processed can do. In particular, the embodiments of the present invention solve the problems of the prior art described above when there is no restriction on the execution method (sequential execution or parallel execution) between the service modules in the microservice architecture and the workflow model in which each service module operates independently of each other. It can be used as a means to solve the problem.

또한, 본 발명의 실시예들에 따르면, 서비스 모듈별 메시지 처리량 또는 메시지 처리 시간(또는 메시지 처리 속도)을 고려하여 플랫폼의 컴퓨팅 자원을 오토 스케일링함으로써, 메시지를 빠르고 안정적으로 처리할 수 있다.
In addition, according to embodiments of the present invention, messages can be processed quickly and stably by auto-scaling the computing resources of the platform in consideration of the message processing amount or message processing time (or message processing speed) for each service module.

도 1은 본 발명의 일 실시예에 따른 서비스 처리 시스템의 상세 구성을 나타낸 블록도
도 2는 본 발명의 일 실시예에 따른 서비스 모듈 실행부에서 서비스 모듈의 실행 순서를 결정하는 과정을 나타낸 예시도
도 3은 본 발명의 일 실시예에 따른 워크플로우 모델 및 서비스 모듈의 실행 흐름을 설명하기 위한 예시도
도 4는 본 발명의 일 실시예에 따른 메시지 모니터링부에서 오토-스케일링 수행 여부를 결정하는 과정을 나타낸 예시도
도 5는 본 발명의 일 실시예에 따른 메시지 모니터링부에서 오토-스케일링 수행 여부를 결정하는 과정을 나타낸 예시도
도 6은 본 발명의 일 실시예에 따른 메시지 모니터링부에서 오토-스케일링 수행 여부를 결정하는 과정을 나타낸 예시도
도 7은 본 발명의 일 실시예에 따른 서비스 처리 방법을 설명하기 위한 도면
도 8은 도 7의 S704 단계를 구체적으로 설명하기 위한 흐름도
도 9는 도 7의 S714 단계를 구체적으로 설명하기 위한 흐름도
1 is a block diagram showing a detailed configuration of a service processing system according to an embodiment of the present invention;
2 is an exemplary diagram illustrating a process of determining an execution order of a service module in a service module execution unit according to an embodiment of the present invention;
3 is an exemplary diagram for explaining an execution flow of a workflow model and a service module according to an embodiment of the present invention;
4 is an exemplary diagram illustrating a process of determining whether to perform auto-scaling in a message monitoring unit according to an embodiment of the present invention;
5 is an exemplary diagram illustrating a process of determining whether to perform auto-scaling in a message monitoring unit according to an embodiment of the present invention;
6 is an exemplary diagram illustrating a process of determining whether to perform auto-scaling in a message monitoring unit according to an embodiment of the present invention;
7 is a view for explaining a service processing method according to an embodiment of the present invention;
8 is a flowchart for specifically explaining step S704 of FIG.
9 is a flowchart for specifically explaining step S714 of FIG.

이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.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, devices, and/or systems described herein. However, this is merely an example, and the present invention is not limited thereto.

본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
In describing the embodiments of the present invention, if it is determined that the detailed description of the known technology related to the present invention may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted. And, the terms to be described later are terms defined in consideration of functions in the present invention, which may vary according to intentions or customs of users and operators. Therefore, the definition should be made based on the content throughout this specification. The terminology used in the detailed description is for the purpose of describing embodiments of the present invention only, and should in no way be limiting. Unless explicitly used otherwise, expressions in the singular include the meaning of the plural. In this description, expressions such as “comprising” or “comprising” are intended to indicate certain features, numbers, steps, acts, elements, some or a combination thereof, one or more other than those described. It should not be construed to exclude the presence or possibility of other features, numbers, steps, acts, elements, or any part or combination thereof.

도 1은 본 발명의 일 실시예에 따른 서비스 처리 시스템(100)의 상세 구성을 나타낸 블록도이다. 도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 서비스 처리 시스템(100)은 플랫폼(110) 상에서 서비스를 효율적으로 처리하기 위한 것으로, 메시지 모니터링부(102), 서비스 모듈 실행부(104) 및 오토 스케일링부(106)를 포함한다. 1 is a block diagram illustrating a detailed configuration of a service processing system 100 according to an embodiment of the present invention. As shown in FIG. 1 , the service processing system 100 according to an embodiment of the present invention is for efficiently processing a service on the platform 110 , and includes a message monitoring unit 102 , and a service module execution unit 104 . ) and an auto-scaling unit 106 .

여기서, 플랫폼(110)은 사용자에게 서비스를 제공하기 위한 여러 기술적 모듈들의 집합체로서, 본 실시예들에 있어서 상기 플랫폼(110)은 예를 들어, 사물인터넷(IoT : Internet of Things) 서비스를 개발하고 실생활에 적용될 수 있도록 지원하는 IoT 플랫폼일 수 있다. 상기 플랫폼(110)은 복수의 서비스 모듈(120 ; Mi)을 구비할 수 있으며, 상기 서비스 모듈(120 ; Mi) 각각은 서로 다른 서비스를 처리할 수 있으며 서로간의 의존도(dependency)가 없거나 적어 상호 독립적으로 작동할 수 있다. 도 1에 도시된 바와 같이, 상기 서비스 모듈(120 ; Mi)은 하나 이상의 서버(또는 가상 머신, Si1, Si2, Si3…)에 의해 실행될 수 있다. 예를 들어, 서비스 모듈 M1은 서버 S11, S12 및 S13에 의해 실행될 수 있으며, 서비스 모듈 M2는 서버 S21, S22 및 S23에 의해 실행될 수 있다. 도 1에서는 설명의 편의상 플랫폼(110)이 5개의 서비스 모듈(M1, M2, M3, M4, M5)을 구비하고 각 서비스 모듈(M1, M2, M3, M4, M5)이 3개의 서버(Si1, Si2, Si3)에 의해 실행되는 것으로 도시하였으나, 이는 일 실시예에 불과하며 플랫폼(110) 내 서비스 모듈(120 ; Mi)의 개수 및 상기 서비스 모듈(120 ; Mi)을 실행하는 서버의 개수가 이에 한정되는 것은 아니다. 이하에서는, 서비스 처리 시스템(100)의 상세 구성에 대해 자세히 살펴보기로 한다.Here, the platform 110 is a collection of various technical modules for providing a service to a user, and in the present embodiments, the platform 110, for example, develops an Internet of Things (IoT) service and It may be an IoT platform that supports application to real life. The platform 110 may include a plurality of service modules 120 (Mi), and each of the service modules 120 (Mi) can process different services and have little or no dependency on each other. can work with 1, the service module 120 (Mi) may be executed by one or more servers (or virtual machines, Si1, Si2, Si3...). For example, the service module M1 may be executed by the servers S11, S12 and S13, and the service module M2 may be executed by the servers S21, S22 and S23. In FIG. 1, for convenience of explanation, the platform 110 includes five service modules M1, M2, M3, M4, and M5, and each service module M1, M2, M3, M4, M5 includes three servers Si1, Although shown as being executed by Si2, Si3), this is only an embodiment and the number of service modules 120 (Mi) in the platform 110 and the number of servers executing the service modules 120; Mi) It is not limited. Hereinafter, a detailed configuration of the service processing system 100 will be described in detail.

메시지 모니터링부(102)는 서비스 모듈(120 ; M1, M2, M3, M4, M5) 각각으로부터 서비스 모듈(120)에서의 메시지 입출력 정보를 수신하고, 상기 메시지 입출력 정보를 이용하여 서비스 모듈(120)별 메시지 처리 성능을 판단한다. 여기서, 메시지 입출력 정보는 서비스 모듈(120)에 입력되는 메시지와 상기 서비스 모듈(120)로부터 출력되는 메시지의 식별정보(예를 들어, 메시지의 ID), 상기 메시지가 서비스 모듈(120)에 입력된 시간 및 상기 메시지가 서비스 모듈(120)로부터 출력된 시간에 관한 정보 중 하나 이상을 포함할 수 있다. 각 서비스 모듈(120)(또는 각 서비스 모듈(120) 내 서버)은 해당 서비스 모듈(120)(또는 해당 서비스 모듈(120) 내 서버)에서의 메시지의 입출력을 감지하여 메시지 입출력 정보를 생성하며, 상기 메시지 입출력 정보를 메시지 모니터링부(102)로 송신할 수 있다. 예를 들어, 서비스 모듈 M1은 서비스 모듈 M1에서의 메시지 입출력 정보를 생성하여 메시지 모니터링부(102)로 송신할 수 있으며, 서비스 모듈 M2는 서비스 모듈 M2에서의 메시지 입출력 정보를 생성하여 메시지 모니터링부(102)로 송신할 수 있다. 각 서비스 모듈(120)은 메시지의 입출력이 발생될 때마다 메시지 입출력 정보를 생성하여 메시지 모니터링부(102)로 송신할 수 있으나, 이에 한정되는 것은 아니며 설정된 주기(예를 들어, 1분)마다 메시지 입출력 정보를 생성하여 메시지 모니터링부(102)로 송신할 수도 있다.The message monitoring unit 102 receives the message input/output information from the service module 120 from each of the service modules 120; M1, M2, M3, M4, M5, and uses the message input/output information to the service module 120 It judges each message processing performance. Here, the message input/output information includes identification information (eg, message ID) of a message input to the service module 120 and a message output from the service module 120 , and the message input to the service module 120 . It may include one or more of information about the time and the time the message is output from the service module 120 . Each service module 120 (or a server within each service module 120) generates message input/output information by detecting input/output of a message from the corresponding service module 120 (or a server within the corresponding service module 120), The message input/output information may be transmitted to the message monitoring unit 102 . For example, the service module M1 may generate message input/output information in the service module M1 and transmit it to the message monitoring unit 102 , and the service module M2 may generate message input/output information in the service module M2 and generate the message input/output information in the message monitoring unit ( 102) can be transmitted. Each service module 120 may generate message input/output information whenever input/output of a message occurs and transmit it to the message monitoring unit 102, but is not limited thereto and a message every set period (eg, 1 minute). The input/output information may be generated and transmitted to the message monitoring unit 102 .

메시지 모니터링부(102)는 서비스 모듈(120) 각각으로부터 수신한 메시지 입출력 정보를 이용하여 서비스 모듈(120)별 메시지 처리 성능을 실시간으로 판단할 수 있다. 상기 메시지 처리 성능은 해당 서비스 모듈(120)에서의 메시지 처리 속도, 해당 서비스 모듈(120)에서 현재 처리하고 있는 메시지의 량 등에 따라 달라질 수 있다.The message monitoring unit 102 may determine the message processing performance for each service module 120 in real time by using the message input/output information received from each of the service modules 120 . The message processing performance may vary depending on the message processing speed of the corresponding service module 120 , the amount of messages currently being processed by the corresponding service module 120 , and the like.

메시지 모니터링부(102)는 상기 서비스 모듈(120)별 메시지 처리 성능을 판단하기 위해 메시지 입출력 정보를 이용하여 서비스 모듈(120) 각각에서의 메시지 트래픽을 계산할 수 있다. 상술한 바와 같이, 메시지 입출력 정보는 서비스 모듈(120)에 입력되는 메시지와 상기 서비스 모듈(120)로부터 출력되는 메시지의 식별정보, 메시지가 서비스 모듈(120)에 입력된 시간 및 상기 메시지가 서비스 모듈(120)로부터 출력된 시간에 관한 정보 등을 포함할 수 있으며, 메시지 모니터링부(102)는 상기 메시지 입출력 정보를 이용하여 서비스 모듈(120) 각각에서 처리되는 데이터의 량, 즉 서비스 모듈(120) 각각에서의 메시지 트래픽을 계산할 수 있다. The message monitoring unit 102 may calculate message traffic in each of the service modules 120 by using the message input/output information to determine the message processing performance for each service module 120 . As described above, the message input/output information includes identification information of a message inputted to the service module 120 and a message outputted from the service module 120 , a time at which the message is inputted to the service module 120 , and the message inputted to the service module. It may include information on time output from 120 , and the message monitoring unit 102 uses the message input/output information to determine the amount of data processed in each service module 120 , that is, the service module 120 . You can calculate the message traffic in each.

메시지 모니터링부(102)는 상기 메시지 트래픽에 따라 서비스 모듈(120)별 메시지 처리 성능을 판단할 수 있다. 예를 들어, 메시지 모니터링부(102)는 서비스 모듈(120)에서의 메시지 트래픽이 적을수록(즉, 서비스 모듈(120)에서 처리하여야 할 메시지가 적을수록) 현재 해당 서비스 모듈(120)의 메시지 처리 성능이 우수한 것으로 판단하고, 서비스 모듈(120)에서의 메시지 트래픽이 많을수록(즉, 서비스 모듈(120)에서 처리하여야 할 메시지가 많을수록) 현재 해당 서비스 모듈(120)의 메시지 처리 성능이 저조한 것으로 판단할 수 있다. 메시지 모니터링부(102)는 상기 메시지 처리 성능에 관한 정보를 서비스 모듈 실행부(104)로 송신할 수 있다. The message monitoring unit 102 may determine message processing performance for each service module 120 according to the message traffic. For example, the message monitoring unit 102 currently processes the message of the corresponding service module 120 as the message traffic from the service module 120 decreases (that is, as the number of messages to be processed by the service module 120 decreases). It is determined that the performance is excellent, and the more the message traffic in the service module 120 (that is, the more messages to be processed in the service module 120), the lower the message processing performance of the service module 120 is determined. can The message monitoring unit 102 may transmit information on the message processing performance to the service module execution unit 104 .

서비스 모듈 실행부(104)는 메시지 모니터링(102)부로부터 서비스 모듈(120)별 메시지 처리 성능에 관한 정보를 수신하고, 서비스 모듈(120)별 메시지 처리 성능에 따라 복수의 서비스 모듈(120) 각각의 실행 순서를 동적으로 결정한다. 상기 메시지 처리 성능에 관한 정보는 예를 들어, 서비스 모듈(120) 각각에서의 메시지 트래픽에 관한 정보일 수 있으며, 서비스 모듈 실행부(104)는 상기 메시지 트래픽에 관한 정보를 이용하여 서비스 모듈(120) 각각의 실행 순서를 동적으로 결정할 수 있다. 본 실시예들에 있어서, 워크플로우 모델의 작성시에는 플랫폼(110) 내 서비스 모듈(120)들의 세트(set)만 표시될 수 있으며 서비스 모듈(120)들의 실행 순서에 특별한 제약이 없는 것으로 가정한다. 또한, 서비스 모듈 실행부(104)는 워크플로우 모델의 실행을 위한 메시지(Msg)가 입력되는 경우 작동하는 것으로 가정한다.The service module execution unit 104 receives information on message processing performance for each service module 120 from the message monitoring unit 102 , and each of the plurality of service modules 120 according to the message processing performance for each service module 120 . Dynamically determine the execution order of The information on the message processing performance may be, for example, information on message traffic in each of the service modules 120, and the service module execution unit 104 uses the information on the message traffic to configure the service module 120 ) can dynamically determine the execution order of each. In the present embodiments, it is assumed that only a set of service modules 120 in the platform 110 can be displayed when a workflow model is created and there is no particular restriction on the execution order of the service modules 120 . . In addition, it is assumed that the service module execution unit 104 operates when a message (Msg) for executing the workflow model is input.

일 예시로서, 서비스 모듈 실행부(104)는 복수의 서비스 모듈(120) 중 상기 메시지 트래픽이 가장 적은 서비스 모듈(120)을 가장 먼저 실행하도록 실행 순서를 결정할 수 있다. 예를 들어, 서비스 모듈 M1 내지 M5에서 처리하여야 할 메시지가 각각 500개, 300개, 100개, 200개, 200개인 경우, 서비스 모듈 실행부(104)는 메시지 트래픽이 가장 적은 서비스 모듈 M3를 가장 먼저 실행하도록 상기 실행 순서를 결정할 수 있다. As an example, the service module execution unit 104 may determine the execution order so that the service module 120 having the least message traffic among the plurality of service modules 120 is executed first. For example, when there are 500, 300, 100, 200, and 200 messages to be processed in service modules M1 to M5, respectively, the service module execution unit 104 selects the service module M3 having the least message traffic. The execution order may be determined to be executed first.

또한, 서비스 모듈 실행부(104)는 상기 메시지 트래픽이 가장 적은 서비스 모듈(120)의 실행이 완료된 이후 메시지 모니터링부(102)로부터 상기 서비스 모듈(120)별 메시지 처리 성능에 관한 정보를 새롭게 수신하고, 새롭게 수신된 서비스 모듈(120)별 메시지 처리 성능에 관한 정보를 이용하여 다음으로 실행할 서비스 모듈(120)을 결정할 수 있다. 구체적으로, 서비스 모듈 실행부(104)는 새롭게 수신된 서비스 모듈(120)별 메시지 처리 성능에 관한 정보를 이용하여 상기 복수의 서비스 모듈(120)에서 상기 실행이 완료된 서비스 모듈(120)을 제외한 나머지 서비스 모듈(120) 중 상기 메시지 트래픽이 가장 적은 서비스 모듈(120)을 다음으로 실행할 서비스 모듈(120)로 결정할 수 있다. In addition, the service module execution unit 104 receives new information on message processing performance for each service module 120 from the message monitoring unit 102 after the execution of the service module 120 with the least message traffic is completed, and , it is possible to determine the service module 120 to be executed next by using the newly received message processing performance information for each service module 120 . Specifically, the service module execution unit 104 uses the newly received information about the message processing performance for each service module 120 , except for the service module 120 for which the execution has been completed in the plurality of service modules 120 . Among the service modules 120 , the service module 120 having the least message traffic may be determined as the service module 120 to be executed next.

위 예시에서, 서비스 모듈 실행부(104)는 서비스 모듈 M3의 실행이 완료된 이후 서비스 모듈 M1 내지 M5 중 서비스 모듈 M3를 제외한 나머지 서비스 모듈의 메시지 처리 성능에 관한 정보(즉, 서비스 모듈 M1, M2, M4, M5에서의 메시지 트래픽에 관한 정보)를 메시지 모니터링부(102)로부터 새롭게 수신할 수 있으며, 서비스 모듈 M1, M2, M4, M5에서 처리하여야 할 메시지가 각각 300개, 200개, 100개, 200개인 경우 서비스 모듈 M4를 다음으로 실행할 서비스 모듈로 결정할 수 있다. 서비스 모듈 실행부(104)는 이와 같은 과정을 반복하여 하나의 서비스 모듈(120)의 실행이 완료될 때마다 다음으로 실행할 서비스 모듈(120)을 동적으로 결정할 수 있다. In the above example, after the execution of the service module M3 is completed, the service module execution unit 104 provides information on message processing performance of the remaining service modules except for the service module M3 among the service modules M1 to M5 (that is, the service modules M1, M2, information on message traffic in M4 and M5) can be newly received from the message monitoring unit 102, and messages to be processed in the service modules M1, M2, M4, and M5 are 300, 200, 100, respectively; In the case of 200, the service module M4 can be determined as the next service module to be executed. The service module execution unit 104 may repeat this process to dynamically determine the service module 120 to be executed next whenever the execution of one service module 120 is completed.

즉, 본 발명의 실시예들에 따르면, 서비스 모듈(120)별 실시간 메시지 처리 성능에 따라 서비스 모듈(120)의 실행 순서를 동적으로 결정함으로써, 특정 서비스 모듈(120)에서의 병목 현상을 방지하고 서비스 모듈(120) 각각에서 제공되는 서비스를 원활하게 처리할 수 있다. 특히, 본 발명의 실시예들은 각 서비스 모듈(120)이 서로 독립적으로 작동하는 마이크로 서비스 아키텍쳐 및 워크플로우 모델 내 서비스 모듈(120) 간의 실행 방식(순차적 실행 또는 병렬적 실행)에 제약이 없는 경우 상술한 종래 기술의 문제점을 해결하는 수단으로서 활용될 수 있다.That is, according to embodiments of the present invention, by dynamically determining the execution order of the service module 120 according to the real-time message processing performance for each service module 120 , a bottleneck in the specific service module 120 is prevented and Services provided by each of the service modules 120 may be smoothly processed. In particular, embodiments of the present invention are described above when there is no restriction on the execution method (sequential execution or parallel execution) between the service modules 120 in the microservice architecture and the workflow model in which each service module 120 operates independently of each other. It can be utilized as a means to solve the problems of the prior art.

또한, 메시지 모니터링부(102)는 상기 메시지 입출력 정보를 이용하여 스케일링 기준 정보를 계산하며, 상기 스케일링 기준 정보와 설정된 기준치와의 비교 결과에 따라 오토-스케일링 요청 메시지를 생성할 수 있다. 오토-스케일링이란 플랫폼(110)의 컴퓨팅 자원을 늘리거나 줄이는 것으로, 서비스 모듈(120)을 실행하는 서버의 개수를 조절함으로써 상기 플랫폼(110)의 컴퓨팅 자원을 늘리거나 줄일 수 있다. 예를 들어, 스케일-아웃(scale-out)은 서비스 모듈(120)을 실행하는 서버의 개수를 늘림으로써 실현될 수 있으며, 스케일-인(scale-in)은 서비스 모듈(120)을 실행하는 서버의 개수를 줄임으로써 실현될 수 있다. 즉, 본 발명의 실시예들에서는, 상술한 방법으로 서비스 모듈(120)의 실행 순서를 동적으로 결정한 경우에도 데이터베이스의 조회 속도가 느리거나 디스크 I/O 또는 네트워크 I/O의 영향에 따라 메시지 처리 시간이 저하될 수 있으므로, 스케일링 기준 정보를 이용하여 플랫폼(110)의 컴퓨팅 자원을 효율적으로 오토 스케일링할 수 있도록 하였다.Also, the message monitoring unit 102 may calculate scaling reference information using the message input/output information, and may generate an auto-scaling request message according to a comparison result between the scaling reference information and a set reference value. Auto-scaling is to increase or decrease the computing resources of the platform 110 , and by adjusting the number of servers executing the service module 120 , the computing resources of the platform 110 may be increased or decreased. For example, scale-out may be realized by increasing the number of servers executing the service module 120 , and scale-in may be realized by increasing the number of servers executing the service module 120 . This can be realized by reducing the number of That is, in the embodiments of the present invention, even when the execution order of the service module 120 is dynamically determined by the above-described method, the query speed of the database is slow or the message is processed according to the influence of disk I/O or network I/O. Since time may be reduced, the computing resources of the platform 110 can be efficiently auto-scaled using the scaling reference information.

여기서, 스케일링 기준 정보는 오토-스케일링의 수행 여부을 결정하는 데 기준이 되는 정보로서, 플랫폼(110) 전체의 초당 트랜잭션 처리수(TPS(S), TPS : Transaction Per Second) 및 플랫폼(110) 전체의 평균 메시지 처리 시간(T(S)) 중 하나 이상을 포함할 수 있다. 메시지 모니터링부(102)는 스케일링 기준 정보와 설정된 기준치를 비교하고, 상기 비교 결과에 따라 오토-스케일링 요청 메시지를 생성할 수 있다. 이하에서는, (1) 스케일링 기준 정보가 TPS(S)인 경우, (2) 스케일링 기준 정보가 T(S) 경우 메시지 모니터링부(102)에서 오토-스케일링 요청 메시지를 생성하는 과정을 각각 설명하기로 한다.
Here, the scaling reference information is information that is the basis for determining whether to perform auto-scaling, and the total number of transactions per second (TPS(S), TPS: Transaction Per Second) of the entire platform 110 and the may include one or more of the average message processing time (T(S)). The message monitoring unit 102 may compare the scaling reference information with a set reference value, and generate an auto-scaling request message according to the comparison result. Hereinafter, (1) when the scaling reference information is TPS(S), (2) when the scaling reference information is T(S), the process of generating the auto-scaling request message in the message monitoring unit 102 will be described. do.

(1) 스케일링 기준 정보가 TPS(S)인 경우(1) When the scaling reference information is TPS(S)

메시지 모니터링부(102)는 서비스 모듈(120) 각각으로부터 수신한 메시지 입출력 정보를 이용하여 각 서비스 모듈(120)별 초당 트랜잭션 처리 수(TPS(Mi)) 및 플랫폼(110) 전체의 초당 트랜잭션 처리수(TPS(S))를 각각 계산하고, 상기 TPS(S)와 설정된 제1 기준치를 비교할 수 있다. 여기서, 제1 기준치는 예를 들어, 목표 TPS(Target TPS)일 수 있다. 상술한 바와 같이, 메시지 입출력 정보는 메시지가 서비스 모듈(120)에 입력된 시간 및 메시지가 서비스 모듈(120)로부터 출력된 시간에 관한 정보를 포함하므로, 메시지 모니터링부(102)는 상기 메시지 입출력 정보를 이용하여 각 서비스 모듈(120) 내에서 메시지가 처리되는 시간 및 각 서비스 모듈(120) 내에서의 메시지 처리량(throughput)을 획득할 수 있으며, 이로부터 TPS(Mi) 및 TPS(S)를 계산할 수 있다. 메시지 모니터링부(102)는 TPS(S)와 설정된 제1 기준치를 비교하여 오토-스케일링의 수행 여부을 결정할 수 있다. 예를 들어, TPS(S)가 제1 기준치보다 설정된 값 이상 낮거나 높은 경우, 메시지 모니터링부(102)는 오토-스케일링이 필요한 것으로 판단할 수 있다. The message monitoring unit 102 uses the message input/output information received from each of the service modules 120 to process the number of transactions per second for each service module 120 (TPS(M i )) and the total number of transactions per second for the platform 110 . Each number TPS(S) may be calculated, and the TPS(S) may be compared with a set first reference value. Here, the first reference value may be, for example, a target TPS. As described above, since the message input/output information includes information about a time when a message is inputted to the service module 120 and a time when the message is output from the service module 120 , the message monitoring unit 102 provides the message input/output information It is possible to obtain a message processing time in each service module 120 and a message throughput in each service module 120 using can be calculated The message monitoring unit 102 may determine whether to perform auto-scaling by comparing the TPS(S) with a set first reference value. For example, when the TPS(S) is lower or higher than the first reference value by more than a set value, the message monitoring unit 102 may determine that auto-scaling is required.

구체적으로, 메시지 모니터링부(102)는 TPS(S)가 제1 기준치보다 설정된 값 이상 낮은 경우 메시지 상기 TPS(Mi)가 가장 낮은 서비스 모듈에 대한 컴퓨팅 자원부터 스케일-아웃을 수행하도록 결정할 수 있다. 예를 들어, TPS(S)가 1000(T/s) 이고 제1 기준치가 1200(T/s)인 경우(상기 설정된 값은 0으로 가정) TPS(S)<제1 기준치이므로, 메시지 모니터링부(102)는 플랫폼(110)의 컴퓨팅 자원을 스케일-아웃하도록 결정할 수 있다. 또한, 메시지 모니터링부(102)는 TPS(Mi)가 가장 낮은 서비스 모듈(예를 들어, M4)의 컴퓨팅 자원부터 스케일-아웃하도록 결정할 수 있다. 메시지 모니터링부(102)는 상기 결정된 내용을 포함하는 오토-스케일링 요청 메시지를 생성하여 오토 스케일링부(106)로 송신할 수 있으며, 오토 스케일링부(106)는 상기 오토-스케일링 요청 메시지에 따라 상기 서비스 모듈(120) 중 적어도 하나(즉, 스케일-아웃이 필요하다고 판단된 서비스 모듈)에 대한 컴퓨팅 자원을 오토-스케일링할 수 있다. 오토-스케일링 요청 메시지는 오토-스케일링 대상이 되는 서비스 모듈에 관한 정보(예를 들어, 상기 서비스 모듈의 식별 정보, 상기 서비스 모듈을 실행 중인 서버의 식별 정보 등), 상기 오토-스케일링의 종류(즉, 스케일-아웃인지 또는 스케일-인인지)에 관한 정보 등을 포함할 수 있다.Specifically, the message monitoring unit 102 may determine to perform scale-out from the computing resource for the service module having the lowest message TPS(M i ) when the TPS(S) is lower than a set value or more than the first reference value. . For example, when TPS(S) is 1000 (T/s) and the first reference value is 1200 (T/s) (the set value is assumed to be 0), since TPS(S) < the first reference value, the message monitoring unit 102 may determine to scale-out the computing resources of platform 110 . In addition, the message monitoring unit 102 may determine to scale-out from the computing resource of the service module (eg, M4) with the lowest TPS (M i ). The message monitoring unit 102 may generate an auto-scaling request message including the determined content and transmit it to the auto-scaling unit 106, and the auto-scaling unit 106 provides the service according to the auto-scaling request message. Computing resources for at least one of the modules 120 (ie, a service module determined to require scale-out) may be auto-scaled. The auto-scaling request message includes information about the service module to be auto-scaling (eg, identification information of the service module, identification information of a server running the service module, etc.), the type of auto-scaling (that is, , whether scale-out or scale-in) may be included.

또한, 상기 오토-스케일링 요청 메시지에 따라 오토 스케일링부(106)에서 스케일-아웃이 수행된 이후, 메시지 모니터링부(102)는 설정된 시간(예를 들어, 1분) 동안 대기하고 서비스 모듈(120) 각각으로부터 새롭게 수신된 메시지 입출력 정보를 이용하여 TPS(Mi) 및 TPS(S)를 재계산할 수 있다. 만약, 상기 스케일-아웃의 수행 이후에도 TPS(Mi)(위 예시에서, TPS(M4))가 변동이 없는 경우, 메시지 모니터링부(102)는 TPS(Mi)가 두 번째로 낮은 서비스 모듈(예를 들어, M3)의 컴퓨팅 자원을 스케일-아웃하도록 결정할 수 있다. 이와 같이, 메시지 모니터링부(102)는 TPS(Mi)가 가장 낮은 서비스 모듈에 대한 컴퓨팅 자원부터 순차적으로 스케일-아웃하도록 결정할 수 있다. 이러한 스케일-아웃 과정은 아래의 조건 중 하나가 만족할 때까지 계속될 수 있다.
In addition, after scaling-out is performed in the auto-scaling unit 106 according to the auto-scaling request message, the message monitoring unit 102 waits for a set time (eg, 1 minute) and the service module 120 TPS(M i ) and TPS(S) may be recalculated using the message input/output information newly received from each. If, even after the scale-out is performed, TPS(M i ) (in the above example, TPS(M 4 )) does not change, the message monitoring unit 102 TPS(M i ) is the second lowest service module It may decide to scale-out the computing resources of (eg, M3). As such, the message monitoring unit 102 may determine to sequentially scale-out from the computing resource for the service module having the lowest TPS (M i ). This scale-out process may be continued until one of the following conditions is satisfied.

1) TPS(S)가 제1 기준치보다 높아지는 경우1) When TPS(S) is higher than the first reference value

→ 플랫폼(110)의 컴퓨팅 자원이 충분하다고 판단되므로, 메시지 모니터링부(102)는 스케일-아웃을 중지하도록 결정할 수 있다.→ Since it is determined that the computing resources of the platform 110 are sufficient, the message monitoring unit 102 may decide to stop the scale-out.

2) 플랫폼(110)에 입력되는 메시지의 수가 현저히 적은 경우2) When the number of messages input to the platform 110 is significantly small

→ 예를 들어, 제1 기준치가 1200(T/s)일때 플랫폼(110)에 입력되는 메시지가 500개에 불과한 경우 입력되는 메시지의 수가 적어서 TPS(S)가 낮아진 것일 뿐 메시지 처리 속도가 느린 것은 아니므로, 메시지 모니터링부(102)는 스케일-아웃을 중지하도록 결정할 수 있다.→ For example, when the first reference value is 1200 (T/s), if there are only 500 messages input to the platform 110, it is only that the TPS(S) is lowered because the number of messages input is small, and the message processing speed is slow Therefore, the message monitoring unit 102 may determine to stop the scale-out.

3) TPS(Mi)가 낮은 서비스 모듈에 대한 컴퓨팅 자원부터 스케일-아웃을 수행했지만 더 이상 TPS(S)를 개선할 수 없는 경우3) When TPS(M i ) is scaled-out from the computing resources for the service module with low TPS(M i ), but TPS(S) can no longer be improved

→ 예를 들어, 플랫폼(110) 내 네트워크 환경, 서버 환경 등으로 인해 TPS(S)가 더 이상 개선되지 않을 때 더 이상의 오토-스케일링 과정은 무의미하므로, 메시지 모니터링부(102)는 스케일-아웃을 중지하도록 결정할 수 있다.
→ For example, when the TPS(S) is no longer improved due to the network environment in the platform 110, the server environment, etc., any more auto-scaling process is meaningless, so the message monitoring unit 102 scales-out You can decide to stop.

또한, 메시지 모니터링부(102)는 TPS(S)가 제1 기준치보다 설정된 값 이상 높은 경우 TPS(Mi)가 가장 높은 서비스 모듈에 대한 컴퓨팅 자원부터 스케일-인을 수행하도록 결정할 수 있다. 예를 들어, TPS(S)가 1300(T/s)이고 제1 기준치가 1200(T/s)인 경우(상기 설정된 값은 0으로 가정) TPS(S)>제1 기준치이므로, 메시지 모니터링부(102)는 플랫폼(110)의 컴퓨팅 자원을 스케일-인하도록 결정할 수 있다. 또한, 메시지 모니터링부(102)는 TPS(Mi)가 가장 높은 서비스 모듈(예를 들어, M2)의 컴퓨팅 자원부터 스케일-인하도록 결정할 수 있다. 메시지 모니터링부(102)는 상기 결정된 내용을 포함하는 오토-스케일링 요청 메시지를 오토 스케일링부(106)로 송신할 수 있으며, 오토 스케일링부(106)는 상기 오토-스케일링 요청 메시지에 따라 상기 서비스 모듈(120) 중 적어도 하나(즉, 스케일-인이 필요한 것으로 판단된 서비스 모듈)에 대한 컴퓨팅 자원을 오토-스케일링할 수 있다. In addition, when the TPS(S) is higher than the first reference value by more than a set value, the message monitoring unit 102 may determine to perform scale-in from the computing resource for the service module having the highest TPS(M i ). For example, when TPS(S) is 1300 (T/s) and the first reference value is 1200 (T/s) (the set value is assumed to be 0), since TPS(S) > the first reference value, the message monitoring unit 102 may determine to scale-in computing resources of platform 110 . In addition, the message monitoring unit 102 may determine to scale-in from the computing resource of the service module (eg, M2) having the highest TPS (M i ). The message monitoring unit 102 may transmit an auto-scaling request message including the determined content to the auto-scaling unit 106, and the auto-scaling unit 106 may transmit the auto-scaling request message to the service module ( 120), computing resources for at least one (ie, a service module determined to require scale-in) may be auto-scaled.

또한, 상기 오토-스케일링 요청 메시지에 따라 오토 스케일링부(106)에서 스케일-인이 수행된 이후, 메시지 모니터링부(102)는 설정된 시간(예를 들어, 1분) 동안 대기하고 서비스 모듈(120) 각각으로부터 새롭게 수신된 메시지 입출력 정보를 이용하여 TPS(Mi) 및 TPS(S)를 재계산할 수 있다. 만약, 상기 스케일-인의 수행 이후에도 TPS(Mi)(위 예시에서, TPS(M2))가 변동이 없는 경우, 메시지 모니터링부(102)는 동일한 서비스 모듈(예를 들어, M2)의 컴퓨팅 자원에 대해 다시 한 번 스케일-인하거나 TPS(Mi)가 두 번째로 높은 서비스 모듈(예를 들어, M1)의 컴퓨팅 자원을 스케일-인하도록 결정할 수 있다. 이와 같이, 메시지 모니터링부(102)는 TPS(Mi)가 가장 높은 서비스 모듈에 대한 컴퓨팅 자원부터 순차적으로 스케일-인하도록 결정할 수 있다. 만약, 스케일-인의 수행 이후 TPS(Mi)(위 예시에서, TPS(M2))의 변동이 발생하는 경우, 메시지 모니터링부(102)는 스케일-인을 중지하도록 결정할 수 있으며, TPS(Mi) 및 TPS(S)를 재계산할 수 있다.
In addition, after the auto-scaling unit 106 performs scale-in according to the auto-scaling request message, the message monitoring unit 102 waits for a set time (eg, 1 minute) and the service module 120 TPS(M i ) and TPS(S) may be recalculated using the message input/output information newly received from each. If, even after the scale-in is performed, TPS(M i ) (in the above example, TPS(M 2 )) does not change, the message monitoring unit 102 calculates the computing resources of the same service module (eg, M2). Again, it may be decided to scale-in the computing resource of the service module (eg, M1 ) having the second highest TPS(M i ). As such, the message monitoring unit 102 may determine to sequentially scale-in from the computing resource for the service module having the highest TPS(M i ). If, after performing the scale-in, TPS(M i ) (in the example above, TPS(M 2 )) changes, the message monitoring unit 102 may determine to stop the scale-in, and the TPS (M i ) and TPS(S) can be recalculated.

(2) 스케일링 기준 정보가 T(S)인 경우(2) When the scaling reference information is T(S)

메시지 모니터링부(102)는 서비스 모듈(120) 각각으로부터 수신한 메시지 입출력 정보를 이용하여 각 서비스 모듈(120)별 평균 메시지 처리 시간(T(Mi)) 및 플랫폼(110) 전체의 평균 메시지 처리 시간(T(S))를 각각 계산하고, 상기 T(S)와 설정된 제2 기준치를 비교할 수 있다. 여기서, 제2 기준치는 예를 들어, 메시지당 총 처리 시간(Target process time)일 수 있다. 상술한 바와 같이, 메시지 입출력 정보는 메시지가 서비스 모듈(120)에 입력된 시간 및 메시지가 서비스 모듈(120)로부터 출력된 시간에 관한 정보를 포함하므로, 메시지 모니터링부(102)는 상기 메시지 입출력 정보를 이용하여 서비스 모듈(120) 내에서 메시지가 처리되는 시간 및 각 서비스 모듈(120) 내에서의 메시지 처리량(throughput)을 획득할 수 있으며, 이로부터 T(Mi) 및 T(S)를 계산할 수 있다. 메시지 모니터링부(102)는 T(S)와 설정된 제2 기준치를 비교하여 오토-스케일링의 수행 여부을 결정할 수 있다. 예를 들어, T(S)가 제2 기준치보다 설정된 값 이상 낮거나 높은 경우, 메시지 모니터링부(102)는 오토-스케일링이 필요한 것으로 결정할 수 있다. The message monitoring unit 102 uses the message input/output information received from each of the service modules 120 to process the average message processing time (T(M i )) for each service module 120 and the average message processing of the entire platform 110 . Each time T(S) may be calculated, and the T(S) may be compared with a set second reference value. Here, the second reference value may be, for example, a target process time per message. As described above, since the message input/output information includes information about a time when a message is inputted to the service module 120 and a time when the message is output from the service module 120 , the message monitoring unit 102 provides the message input/output information can be used to obtain the message processing time in the service module 120 and the message throughput in each service module 120, from which T(M i ) and T(S) can be calculated. can The message monitoring unit 102 may determine whether to perform auto-scaling by comparing T(S) with a set second reference value. For example, when T(S) is lower than or higher than a set value than the second reference value, the message monitoring unit 102 may determine that auto-scaling is required.

구체적으로, 메시지 모니터링부(102)는 T(S)가 제2 기준치보다 설정된 값 이상 높은(즉, 느린) 경우 상기 T(Mi)가 가장 높은(즉, 느린) 서비스 모듈에 대한 컴퓨팅 자원부터 스케일-아웃을 수행하도록 결정할 수 있다. 예를 들어, T(S)가 2(sec)이고 제2 기준치가 1.5(sec)인 경우(상기 설정된 값은 0으로 가정) T(S)>제2 기준치이므로, 메시지 모니터링부(102)는 플랫폼(110)의 컴퓨팅 자원을 스케일-아웃하도록 결정할 수 있다. 또한, 메시지 모니터링부(102)는 T(Mi)가 가장 높은 서비스 모듈(예를 들어, M5)의 컴퓨팅 자원부터 스케일-아웃하도록 결정할 수 있다. 메시지 모니터링부(102)는 상기 결정된 내용을 포함하는 오토-스케일링 요청 메시지를 오토 스케일링부(106)로 송신할 수 있으며, 오토 스케일링부(106)는 상기 오토-스케일링 요청 메시지에 따라 상기 서비스 모듈(120) 중 적어도 하나(즉, 스케일-아웃이 필요한 것으로 판단된 서비스 모듈)에 대한 컴퓨팅 자원을 오토-스케일링할 수 있다. Specifically, the message monitoring unit 102 T(S) is higher than the set value (ie, slow) than the second reference value, the T(M i ) from the computing resources for the highest (ie, slow) service module It may decide to perform scale-out. For example, when T(S) is 2 (sec) and the second reference value is 1.5 (sec) (the set value is assumed to be 0), since T(S) > the second reference value, the message monitoring unit 102 is It may be decided to scale-out the computing resources of the platform 110 . In addition, the message monitoring unit 102 may determine to scale-out from the computing resource of the service module (eg, M5) having the highest T(M i ). The message monitoring unit 102 may transmit an auto-scaling request message including the determined content to the auto-scaling unit 106, and the auto-scaling unit 106 may transmit the auto-scaling request message to the service module ( 120), computing resources for at least one (ie, a service module determined to require scale-out) may be auto-scaled.

또한, 상기 오토-스케일링 요청 메시지에 따라 오토 스케일링부(106)에서 스케일-아웃이 수행된 이후, 메시지 모니터링부(102)는 설정된 시간(예를 들어, 1분) 동안 대기하고 서비스 모듈(120) 각각으로부터 새롭게 수신된 메시지 입출력 정보를 이용하여 T(Mi) 및 T(S)를 재계산할 수 있다. 만약, 스케일-아웃의 수행 이후에도 T(Mi)가 변동이 없는 경우, 메시지 모니터링부(102)는 T(Mi)가 두 번째로 높은 서비스 모듈의 컴퓨팅 자원을 스케일-아웃하도록 결정할 수 있다. 이와 같이, 메시지 모니터링부(102)는 T(Mi)가 가장 높은 서비스 모듈에 대한 컴퓨팅 자원부터 순차적으로 스케일-아웃하도록 결정할 수 있다. 이러한 스케일-아웃 과정은 아래의 조건 중 하나가 만족할 때까지 계속될 수 있다.
In addition, after scaling-out is performed in the auto-scaling unit 106 according to the auto-scaling request message, the message monitoring unit 102 waits for a set time (eg, 1 minute) and the service module 120 T(M i ) and T(S) may be recalculated using message input/output information newly received from each. If T(M i ) does not change even after the scale-out is performed, the message monitoring unit 102 may determine to scale-out the computing resource of the service module having the second highest T(M i ). As such, the message monitoring unit 102 may determine to sequentially scale-out from the computing resource for the service module having the highest T(M i ). This scale-out process may be continued until one of the following conditions is satisfied.

1) T(S)가 제2 기준치보다 낮아지는 경우1) When T(S) is lower than the second reference value

→ 플랫폼(110)의 컴퓨팅 자원이 충분하다고 판단되므로, 메시지 모니터링부(102)는 스케일-아웃을 중지하도록 결정할 수 있다.→ Since it is determined that the computing resources of the platform 110 are sufficient, the message monitoring unit 102 may decide to stop the scale-out.

2) T(Mi)가 높은 서비스 모듈에 대한 컴퓨팅 자원부터 스케일-아웃을 수행했지만 더 이상 T(S)를 개선할 수 없는 경우2) When T(M i ) is scaled-out from the computing resource for the service module with high T(M i ), but T(S) can no longer be improved

→ 예를 들어, 플랫폼(110) 내 네트워크 환경, 서버 환경 등으로 인해 T(S)가 더 이상 개선되지 않을 때 더 이상의 오토-스케일링 과정은 무의미하므로, 메시지 모니터링부(102)는 스케일-아웃을 중지하도록 결정할 수 있다.
→ For example, when T(S) is no longer improved due to the network environment in the platform 110, the server environment, etc., any more auto-scaling process is meaningless, so the message monitoring unit 102 scales-out You can decide to stop.

또한, 메시지 모니터링부(102)는 T(S)가 제2 기준치보다 설정된 값 이상 낮은(즉, 빠른) 경우 T(Mi)가 가장 낮은(즉, 빠른) 서비스 모듈에 대한 컴퓨팅 자원부터 스케일-인을 수행하도록 결정할 수 있다. 예를 들어, T(S)가 1(sec)이고 제2 기준치가 1.5(sec)인 경우(상기 설정된 값은 0으로 가정) T(S)<제2 기준치이므로, 메시지 모니터링부(102)는 플랫폼(110)의 컴퓨팅 자원을 스케일-인하도록 결정할 수 있다. 메시지 모니터링부(102)는 상기 결정된 내용을 포함하는 오토-스케일링 요청 메시지를 오토 스케일링부(106)로 송신할 수 있으며, 오토 스케일링부(106)는 상기 오토-스케일링 요청 메시지에 따라 상기 서비스 모듈(120) 중 적어도 하나(즉, 스케일-인이 필요한 것으로 판단된 서비스 모듈)에 대한 컴퓨팅 자원을 오토-스케일링할 수 있다. In addition, the message monitoring unit 102 T(S) is lower than the set value (ie, faster) than the second reference value, T(M i ) from the computing resources for the lowest (ie, fast) service module scale- You can decide to do it. For example, when T(S) is 1 (sec) and the second reference value is 1.5 (sec) (the set value is assumed to be 0), since T(S) < the second reference value, the message monitoring unit 102 is It may be decided to scale-in the computing resources of the platform 110 . The message monitoring unit 102 may transmit an auto-scaling request message including the determined content to the auto-scaling unit 106, and the auto-scaling unit 106 may transmit the auto-scaling request message to the service module ( 120), computing resources for at least one (ie, a service module determined to require scale-in) may be auto-scaled.

또한, 상기 오토-스케일링 요청 메시지에 따라 오토 스케일링부(106)에서 스케일-인이 수행된 이후, 메시지 모니터링부(102)는 설정된 시간(예를 들어, 1분) 동안 대기하고 서비스 모듈(120) 각각으로부터 새롭게 수신된 메시지 입출력 정보를 이용하여 T(Mi) 및 T(S)를 재계산할 수 있다. 만약, 스케일-인의 수행 이후에도 T(Mi)가 변동이 없는 경우, 메시지 모니터링부(102)는 동일한 서비스 모듈의 컴퓨팅 자원에 대해 다시 한 번 스케일-인하거나 T(Mi)가 두 번째로 낮은 서비스 모듈의 컴퓨팅 자원을 스케일-인하도록 결정할 수 있다. 이와 같이, 메시지 모니터링부(102)는 T(Mi)가 가장 낮은 서비스 모듈에 대한 컴퓨팅 자원부터 순차적으로 스케일-인하도록 결정할 수 있다. 만약, 스케일-인의 수행 이후 T(Mi)의 변동이 발생하는 경우, 메시지 모니터링부(102)는 스케일-인을 중지하도록 결정할 수 있으며, T(Mi) 및 T(S)를 재계산할 수 있다.In addition, after the auto-scaling unit 106 performs scale-in according to the auto-scaling request message, the message monitoring unit 102 waits for a set time (eg, 1 minute) and the service module 120 T(M i ) and T(S) may be recalculated using message input/output information newly received from each. If T(M i ) does not change even after the scale-in is performed, the message monitoring unit 102 scales-in once again for the computing resource of the same service module or T(M i ) is the second lowest It may be decided to scale-in the computing resources of the service module. In this way, the message monitoring unit 102 may determine to sequentially scale-in from the computing resource for the service module having the lowest T(M i ). If the change in T(M i ) occurs after the scale-in is performed, the message monitoring unit 102 may decide to stop the scale-in and recalculate T(M i ) and T(S). there is.

오토 스케일링부(106)는 메시지 모니터링부(102)로부터 수신한 스케일링 요청 메시지에 따라 상기 서비스 모듈(120) 중 적어도 하나에 대한 컴퓨팅 자원을 오토-스케일링한다. 상술한 바와 같이, 스케일링 요청 메시지는 오토-스케일링 대상이 되는 서비스 모듈에 관한 정보, 상기 오토-스케일링의 종류(즉, 스케일-아웃인지 또는 스케일-인인지)에 관한 정보 등을 포함할 수 있다. 만약, 스케일링 요청 메시지에 “서비스 모듈 M4에 대한 컴퓨팅 자원의 스케일-아웃 요청” 정보가 포함된 경우, 오토 스케일링부(106)는 서비스 모듈 M4에 대한 컴퓨팅 자원을 스케일-아웃할 수 있다. 예를 들어, 오토 스케일링부(106)는 서비스 모듈 M4를 실행 중인 서버의 개수를 늘릴 수 있다. 만약, 스케일링 요청 메시지에 “서비스 모듈 M2에 대한 컴퓨팅 자원의 스케일-인요청” 정보가 포함된 경우, 오토 스케일링부(106)는 서비스 모듈 M2에 대한 컴퓨팅 자원을 스케일-인할 수 있다. 예를 들어, 오토 스케일링부(106)는 서비스 모듈 M2를 실행 중인 서버의 개수를 줄일 수 있다.The auto-scaling unit 106 auto-scales computing resources for at least one of the service modules 120 according to the scaling request message received from the message monitoring unit 102 . As described above, the scaling request message may include information about a service module to be auto-scaling, information about a type of auto-scaling (ie, whether it is scale-out or scale-in), and the like. If the scaling request message includes “request to scale-out computing resources for service module M4” information, the auto-scaling unit 106 may scale-out computing resources for service module M4. For example, the auto-scaling unit 106 may increase the number of servers executing the service module M4. If the scaling request message includes “request to scale-in computing resources for service module M2” information, the auto-scaling unit 106 may scale-in computing resources for service module M2. For example, the auto-scaling unit 106 may reduce the number of servers executing the service module M2.

이와 같이, 본 발명의 실시예들에 따르면, 서비스 모듈(120)별 메시지 처리량 또는 메시지 처리 시간(또는 메시지 처리 속도)을 고려하여 플랫폼(110)의 컴퓨팅 자원을 오토 스케일링함으로써, 메시지를 빠르고 안정적으로 처리할 수 있다.As described above, according to embodiments of the present invention, by auto-scaling the computing resources of the platform 110 in consideration of the message processing amount or message processing time (or message processing speed) for each service module 120, the message can be quickly and stably can be processed

일 실시예에서, 메시지 모니터링부(102), 서비스 모듈 실행부(104) 및 오토 스케일링부(106)는 하나 이상의 프로세서 및 그 프로세서와 연결된 컴퓨터 판독 가능 기록 매체를 포함하는 컴퓨팅 장치 상에서 구현될 수 있다. 컴퓨터 판독 가능 기록 매체는 프로세서의 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 프로세서와 연결될 수 있다. 컴퓨팅 장치 내의 프로세서는 각 컴퓨팅 장치로 하여금 본 명세서에서 기술되는 예시적인 실시예에 따라 동작하도록 할 수 있다. 예를 들어, 프로세서는 컴퓨터 판독 가능 기록 매체에 저장된 명령어를 실행할 수 있고, 컴퓨터 판독 가능 기록 매체에 저장된 명령어는 프로세서에 의해 실행되는 경우 컴퓨팅 장치로 하여금 본 명세서에 기술되는 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
In one embodiment, the message monitoring unit 102, the service module execution unit 104, and the auto-scaling unit 106 may be implemented on a computing device including one or more processors and a computer-readable recording medium connected to the processor. . The computer-readable recording medium may be internal or external to the processor, and may be connected to the processor by various well-known means. A processor within the computing device may cause each computing device to operate in accordance with the exemplary embodiments described herein. For example, the processor may execute instructions stored in a computer-readable recording medium, and the instructions stored in the computer-readable recording medium, when executed by the processor, cause the computing device to operate according to the exemplary embodiments described herein. can be configured to perform

도 2는 본 발명의 일 실시예에 따른 서비스 모듈 실행부(104)에서 서비스 모듈(120)의 실행 순서를 결정하는 과정을 나타낸 예시도이다. 도 2에 도시된 바와 같이, 플랫폼(110) 내에 서비스 모듈 A 내지 E가 존재하며 이들 간의 실행 순서에는 특별한 제약이 없는 것으로 가정한다. 이 경우, 워크플로우 모델의 작성시에는 위 서비스 모듈(120)들의 세트만 표시될 수 있다.2 is an exemplary diagram illustrating a process of determining the execution order of the service module 120 in the service module execution unit 104 according to an embodiment of the present invention. As shown in FIG. 2 , it is assumed that service modules A to E exist in the platform 110 and there is no particular restriction on the execution order between them. In this case, only the set of the above service modules 120 may be displayed when the workflow model is created.

도 2를 참조하면, 워크플로우 모델의 실행 시점에서 서비스 모듈 C에서의 메시지 트래픽이 가장 적으므로(단계 1), 서비스 모듈 실행부(104)는 서비스 모듈 C를 가장 먼저 실행할 수 있다(단계 2).Referring to FIG. 2 , since the message traffic in the service module C is the least at the time of execution of the workflow model (step 1), the service module execution unit 104 may execute the service module C first (step 2). .

또한, 서비스 모듈 실행부(104)는 서비스 모듈 C의 실행이 완료된 이후 메시지 모니터링부(102)로부터 서비스 모듈 A, B, D, E의 메시지 처리 성능에 관한 정보를 새롭게 수신할 수 있다. 이때, 서비스 모듈 D에서의 메시지 트래픽이 가장 적으므로, 서비스 모듈 실행부(104)는 서비스 모듈 D를 다음으로 실행할 수 있다(단계 3). 또한, 서비스 모듈 실행부(104)는 이와 같은 과정을 반복하여 하나의 서비스 모듈(120)의 실행이 완료될 때마다 다음으로 실행할 서비스 모듈(120)을 동적으로 결정할 수 있다. In addition, after the execution of the service module C is completed, the service module execution unit 104 may newly receive information about the message processing performance of the service modules A, B, D, and E from the message monitoring unit 102 . At this time, since the message traffic in the service module D is the least, the service module execution unit 104 may execute the service module D next (step 3). Also, the service module execution unit 104 may repeat the above process to dynamically determine the service module 120 to be executed next whenever the execution of one service module 120 is completed.

이에 따라, 서비스 모듈 실행부(104)는 서비스 모듈 D의 실행이 완료된 이후 메시지 트래픽이 가장 적은 서비스 모듈 E를 다음으로 실행하고, 이후 서비스 모듈 B, A를 순차적으로 실행할 수 있다(단계 4, 5, 6). 즉, 본 발명의 실시예들에 따르면, 워크플로우 모델의 작성시에 서비스 모듈(120)의 실행 방식 및 실행 순서를 결정하는 것이 아니라 워크플로우 모델의 실행 시점에 서비스 모듈(120)별 메시지 처리 성능에 따라 서비스 모듈(120)의 실행 순서를 동적으로 결정할 수 있다.Accordingly, after the execution of the service module D is completed, the service module execution unit 104 may execute the service module E having the least message traffic next, and then sequentially execute the service modules B and A (steps 4 and 5). , 6). That is, according to embodiments of the present invention, message processing performance for each service module 120 at the time of execution of the workflow model, rather than determining the execution method and execution order of the service module 120 when the workflow model is created. Accordingly, the execution order of the service module 120 may be dynamically determined.

한편, 위 예시에서 서비스 모듈 M1의 실행에도 불구하고 서비스 모듈 M1의 메시지 처리 성능이 지속적으로 저하되는 경우, 메시지 모니터링부(102)는 서비스 모듈 M1을 스케일-아웃하도록 결정함으로써 서비스 모듈 M1에 의한 병목 현상을 보다 효율적으로 해결할 수 있다.
Meanwhile, in the above example, when the message processing performance of the service module M1 continues to deteriorate despite the execution of the service module M1, the message monitoring unit 102 determines to scale-out the service module M1, thereby causing the bottleneck caused by the service module M1. phenomenon can be solved more efficiently.

도 3은 본 발명의 일 실시예에 따른 워크플로우 모델 및 서비스 모듈(120)의 실행 흐름을 설명하기 위한 예시도이다. 3 is an exemplary diagram for explaining an execution flow of the workflow model and service module 120 according to an embodiment of the present invention.

도 3을 참조하면, 본 발명의 일 실시예에 따른 워크플로우 모델은 예를 들어, 의사가 환자의 증상을 바탕으로 감기 몸살인지의 여부를 진단하는 시나리오를 바탕으로 작성된 워크플로우 모델일 수 있다. 상기 워크플로우 모델은 환자의 과거 병력을 조회하는 서비스 모듈(서비스 모듈 1), 환자의 체온을 체크하는 서비스 모듈(서비스 모듈 2), 환자의 두통 유무를 체크하는 서비스 모듈(서비스 모듈 3), 환자의 기관지 염증을 체크하는 서비스 모듈(서비스 모듈 4), 위 내용을 바탕으로 환자의 병명을 진단하는 서비스 모듈(서비스 모듈 5) 등을 포함할 수 있으며, 서비스 모듈 2 내지 4는 상호 독립적으로 작동할 수 있다.Referring to FIG. 3 , a workflow model according to an embodiment of the present invention may be, for example, a workflow model created based on a scenario in which a doctor diagnoses whether or not a patient has a cold based on symptoms of a patient. The workflow model includes a service module for inquiring a patient's past medical history (service module 1), a service module for checking a patient's body temperature (service module 2), a service module for checking whether a patient has a headache (service module 3), and a patient It may include a service module (service module 4) that checks bronchial inflammation of can

따라서, 본 발명의 실시예들은 상호 독립적으로 작동하며 서로간의 의존도가 없는 서비스 모듈 2 내지 4의 실행 순서를 동적으로 결정하는 데 유용하게 적용될 수 있다.
Accordingly, the embodiments of the present invention can be usefully applied to dynamically determine the execution order of the service modules 2 to 4 that operate independently of each other and do not depend on each other.

도 4 내지 도 6은 본 발명의 일 실시예에 따른 메시지 모니터링부(102)에서 오토-스케일링 수행 여부를 결정하는 과정을 설명하기 위한 예시도이다. 도 4 내지 6에서는 스케일링 기준 정보가 TPS(S)이며, 제1 기준치 = 1200(T/s)으로 가정한다. 4 to 6 are exemplary diagrams for explaining a process of determining whether to perform auto-scaling in the message monitoring unit 102 according to an embodiment of the present invention. 4 to 6 , it is assumed that the scaling reference information is TPS(S), and the first reference value = 1200 (T/s).

먼저, 도 4를 참조하면, t=1 에서 TPS(S) = 1000(T/s)이며, 이 경우 TPS(S)<제1 기준치이므로 메시지 모니터링부(102)는 플랫폼(110)의 컴퓨팅 자원을 스케일-아웃하도록 결정할 수 있다. 또한, 메시지 모니터링부(102)는 TPS(Mi) 가 가장 낮은 서비스 모듈, 즉 M4의 컴퓨팅 자원부터 스케일-아웃하도록 결정할 수 있다. 메시지 모니터링부(102)는 상기 결정된 내용을 포함하는 오토-스케일링 요청 메시지를 오토 스케일링부(106)로 송신할 수 있으며, 오토 스케일링부(106)는 상기 오토-스케일링 요청 메시지에 따라 M4에 대한 컴퓨팅 자원을 스케일-아웃할 수 있다. 즉, 오토 스케일링부(106)는 M4를 실행하는 서버(instance)의 개수를 늘릴 수 있다(예를 들어, 2개→3개). First, referring to FIG. 4 , at t=1, TPS(S) = 1000 (T/s), and in this case, TPS(S) < first reference value, so the message monitoring unit 102 is a computing resource of the platform 110 . can be decided to scale-out. Also, the message monitoring unit 102 may determine to scale-out from the computing resource of the service module having the lowest TPS(M i ), that is, M4. The message monitoring unit 102 may transmit an auto-scaling request message including the determined content to the auto-scaling unit 106, and the auto-scaling unit 106 computes the M4 according to the auto-scaling request message. Resources can be scaled-out. That is, the auto-scaling unit 106 may increase the number of servers (instances) executing M4 (eg, 2→3).

다음으로, 도 5를 참조하면, t=2 에서 TPS(S) = 1160(T/s)이며, 이 경우 여전히 TPS(S)<제1 기준치이므로 메시지 모니터링부(102)는 플랫폼(110)의 컴퓨팅 자원을 스케일-아웃하도록 결정할 수 있다. 또한, 메시지 모니터링부(102)는 TPS(Mi) 가 가장 낮은 서비스 모듈, 즉 M2의 컴퓨팅 자원부터 스케일-아웃하도록 결정할 수 있다. 메시지 모니터링부(102)는 상기 결정된 내용을 포함하는 오토-스케일링 요청 메시지를 오토 스케일링부(106)로 송신할 수 있으며, 오토 스케일링부(106)는 상기 오토-스케일링 요청 메시지에 따라 M2에 대한 컴퓨팅 자원을 스케일-아웃할 수 있다. 즉, 오토 스케일링부(106)는 M2를 실행하는 서버의 개수를 늘릴 수 있다(예를 들어, 2개→3개). Next, referring to FIG. 5 , at t=2, TPS(S) = 1160(T/s), and in this case, since TPS(S) < the first reference value, the message monitoring unit 102 is the platform 110 You may decide to scale-out your computing resources. Also, the message monitoring unit 102 may determine to scale-out from the computing resource of the service module having the lowest TPS(M i ), that is, M2. The message monitoring unit 102 may transmit an auto-scaling request message including the determined content to the auto-scaling unit 106, and the auto-scaling unit 106 computes for M2 according to the auto-scaling request message. Resources can be scaled-out. That is, the auto-scaling unit 106 may increase the number of servers executing M2 (eg, 2→3).

다음으로, 도 6을 참조하면, t=3 에서 TPS(S) = 1240(T/s)이며, 이 경우 TPS(S)>제1 기준치이므로 메시지 모니터링부(102)는 플랫폼(110)의 컴퓨팅 자원의 스케일-아웃을 중지하도록 결정할 수 있다. 메시지 모니터링부(102)는 오토-스케일링 요청 메시지를 오토 스케일링부(106)로 송신하지 않거나, 스케일-아웃의 중지 요청이 포함된 오토-스케일링 요청 메시지를 오토 스케일링부(106)로 송신할 수 있다. 이에 따라, 오토 스케일링부(106)는 M2에 대한 컴퓨팅 자원을 스케일-아웃을 중지할 수 있다.
Next, referring to FIG. 6 , at t=3, TPS(S) = 1240 (T/s), and in this case, TPS(S) > the first reference value, so the message monitoring unit 102 is the computing of the platform 110 . It may decide to stop scaling-out of the resource. The message monitoring unit 102 may not transmit the auto-scaling request message to the auto-scaling unit 106 , or may transmit an auto-scaling request message including a request to stop scaling-out to the auto-scaling unit 106 . . Accordingly, the auto-scaling unit 106 may stop scaling-out computing resources for M2.

도 7은 본 발명의 일 실시예에 따른 서비스 처리 방법을 설명하기 위한 도면이다. 도시된 흐름도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 하나의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.7 is a diagram for explaining a service processing method according to an embodiment of the present invention. In the illustrated flowchart, the method is described by dividing the method into a plurality of steps, but at least one step is performed in a reversed order, performed together in combination with other steps, omitted, performed divided into detailed steps, or not shown One or more steps may be added and performed.

S702 단계에서, 메시지 모니터링부(102)는 각 서비스 모듈(120)로부터 상기 서비스 모듈(120)에서의 메시지 입출력 정보를 수신한다. 상술한 바와 같이, 메시지 입출력 정보는 모듈(120)에 입력되는 메시지와 상기 모듈(120)로부터 출력되는 메시지의 식별정보(예를 들어, 메시지의 ID), 상기 메시지가 모듈(120)에 입력된 시간 및 상기 메시지가 모듈(120)로부터 출력된 시간에 관한 정보 중 하나 이상을 포함할 수 있다.In step S702 , the message monitoring unit 102 receives message input/output information from the service module 120 from each service module 120 . As described above, the message input/output information includes identification information (eg, message ID) of a message input to the module 120 and a message output from the module 120 , and the message inputted to the module 120 . It may include one or more of information about the time and the time the message was output from the module 120 .

S704 단계에서, 메시지 모니터링부(102)는 상기 메시지 입출력 정보를 이용하여 서비스 모듈(120) 중 적어도 하나에 대한 오토-스케일링의 수행 여부를 결정한다. 상기 S704 단계는 도 8을 참조하여 구체적으로 설명하기로 한다.In step S704 , the message monitoring unit 102 determines whether auto-scaling is performed on at least one of the service modules 120 using the message input/output information. The step S704 will be described in detail with reference to FIG. 8 .

S706 단계에서, 메시지 모니터링부(102)는 오토-스케일링 요청 메시지를 생성하고, 생성된 오토-스케일링 요청 메시지를 오토 스케일링부(106)로 송신한다. 오토-스케일링 요청 메시지는 오토-스케일링 대상이 되는 서비스 모듈에 관한 정보(예를 들어, 상기 서비스 모듈의 식별 정보, 상기 서비스 모듈을 실행 중인 서버의 식별 정보 등), 상기 오토-스케일링의 종류(즉, 스케일-아웃인지 또는 스케일-인인지)에 관한 정보 등을 포함할 수 있다.In step S706 , the message monitoring unit 102 generates an auto-scaling request message and transmits the generated auto-scaling request message to the auto-scaling unit 106 . The auto-scaling request message includes information about the service module to be auto-scaling (eg, identification information of the service module, identification information of a server executing the service module, etc.), the type of auto-scaling (that is, , whether scale-out or scale-in) may be included.

S708 단계에서, 오토 스케일링부(106)는 상기 오토-스케일링 요청 메시지에 따라 상기 서비스 모듈(120) 중 적어도 하나에 대한 컴퓨팅 자원을 오토-스케일링한다. 구체적으로, 오토 스케일링부(106)는 상기 오토-스케일링 요청 메시지에 따라 상기 서비스 모듈(120) 중 적어도 하나(즉, 스케일-아웃 또는 스케일-인이 필요한 것으로 결정된 서비스 모듈)에 대한 컴퓨팅 자원을 스케일-아웃 또는 스케일-인할 수 있다.In step S708 , the auto-scaling unit 106 auto-scales computing resources for at least one of the service modules 120 according to the auto-scaling request message. Specifically, the auto-scaling unit 106 scales computing resources for at least one of the service modules 120 (ie, a service module determined to require scale-out or scale-in) according to the auto-scaling request message. -can be out or scale-in.

S710 단계에서, 서비스 모듈 실행부(104)는 메시지 모니터링부(102)로 서비스 모듈(120)별 메시지 트래픽 정보를 요청한다.In step S710 , the service module execution unit 104 requests message traffic information for each service module 120 from the message monitoring unit 102 .

S712 단계에서, 서비스 모듈 실행부(104)는 메시지 모니터링부(102)로부터 서비스 모듈(120)별 메시지 트래픽 정보를 수신한다. 상술한 바와 같이, 메시지 모니터링부(102)는 각 서비스 모듈(120)로부터 수신한 메시지 입출력 정보를 이용하여 서비스 모듈(120)별 메시지 트래픽을 계산할 수 있다.In step S712 , the service module execution unit 104 receives message traffic information for each service module 120 from the message monitoring unit 102 . As described above, the message monitoring unit 102 may calculate the message traffic for each service module 120 by using the message input/output information received from each service module 120 .

S714 단계에서, 서비스 모듈 실행부(104)는 서비스 모듈(120)별 메시지 트래픽 정보를 이용하여 서비스 모듈(120) 각각의 실행 순서를 동적으로 결정한다. 상기 S714 단계는 도 9를 참조하여 구체적으로 설명하기로 한다.In step S714 , the service module execution unit 104 dynamically determines the execution order of each service module 120 using message traffic information for each service module 120 . Step S714 will be described in detail with reference to FIG. 9 .

한편, 도 7에서는 설명의 편의상 오토 스케일링부(106)에 의한 오토-스케일링 과정이 서비스 모듈 실행부(104)에 의한 서비스 모듈(120) 실행 순서 결정 과정보다 먼저 수행되는 것으로 도시하였으나 이는 일 실시예에 불과할 뿐 이들의 수행 순서가 도 7의 도시대로 한정되는 것은 아니다. 예를 들어, 서비스 모듈 실행부(104)에 의한 서비스 모듈(120) 실행 순서 결정 과정 이후 오토 스케일링부(106)에 의한 오토-스케일링 과정이 수행되어도 무방하다. 이 경우, S704 내지 S708 단계는 S710 내지 S714 단계 이후 수행될 수 있다.
Meanwhile, in FIG. 7 , for convenience of explanation, the auto-scaling process by the auto-scaling unit 106 is illustrated as being performed before the service module 120 execution order determination process by the service module execution unit 104, but this is an embodiment This is not limited to the order of their execution as shown in FIG. 7 . For example, the auto-scaling process by the auto-scaling unit 106 may be performed after the service module 120 execution order determination process by the service module execution unit 104 . In this case, steps S704 to S708 may be performed after steps S710 to S714.

도 8은 도 7의 S704 단계를 구체적으로 설명하기 위한 흐름도이다.8 is a flowchart for specifically explaining step S704 of FIG. 7 .

S802 단계에서, 메시지 모니터링부(102)는 각 서비스 모듈(120)로부터 수신된 메시지 입출력 정보를 이용하여 스케일링 기준 정보를 계산한다. 상술한 바와 같이, 스케일링 기준 정보는 오토-스케일링의 수행 여부을 결정하는 데 기준이 되는 정보로서, 플랫폼(110) 전체의 초당 트랜잭션 처리수(TPS(S)) 및 플랫폼(110) 전체의 평균 메시지 처리 시간(T(S)) 중 하나 이상을 포함할 수 있다.In step S802 , the message monitoring unit 102 calculates scaling reference information using the message input/output information received from each service module 120 . As described above, the scaling reference information is information that is a criterion for determining whether to perform auto-scaling, the total number of transactions per second (TPS(S)) of the entire platform 110 and the average message processing of the entire platform 110 . time T(S).

S804 단계에서, 메시지 모니터링부(102)는 스케일링 기준 정보와 설정된 기준치(제1 기준치 또는 제 2 기준치)를 비교한다. In step S804, the message monitoring unit 102 compares the scaling reference information and a set reference value (a first reference value or a second reference value).

S806 단계에서, 메시지 모니터링부(102)는 상기 비교 결과에 따라 오토-스케일링의 수행 여부를 결정한다. 일 예시로서, 스케일링 기준 정보가 TPS(S)인 것으로 가정할 때, 메시지 모니터링부(102)는 TPS(S)가 제1 기준치보다 설정된 값 이상 낮거나 높은 경우 오토-스케일링이 필요한 것으로 판단할 수 있다. 다른 예시로서, 스케일링 기준 정보가 T(S)인 것으로 가정할 때, 메시지 모니터링부(102)는 T(S)가 제2 기준치보다 설정된 값 이상 낮거나 높은 경우 오토-스케일링이 필요한 것으로 판단할 수 있다. 메시지 모니터링부(102)가 오토-스케일링 수행 여부를 결정하는 구체적인 방법은 앞에서 자세히 설명하였는바, 여기서는 그 자세한 설명을 생략하도록 한다.
In step S806, the message monitoring unit 102 determines whether to perform auto-scaling according to the comparison result. As an example, assuming that the scaling reference information is TPS(S), the message monitoring unit 102 may determine that auto-scaling is necessary if the TPS(S) is lower or higher than the first reference value by more than a set value. there is. As another example, assuming that the scaling reference information is T(S), the message monitoring unit 102 may determine that auto-scaling is necessary when T(S) is lower or higher than the set value than the second reference value. there is. A specific method for the message monitoring unit 102 to determine whether to perform auto-scaling has been described in detail above, and a detailed description thereof will be omitted herein.

도 9는 도 7의 S714 단계를 구체적으로 설명하기 위한 흐름도이다.9 is a flowchart for specifically explaining step S714 of FIG. 7 .

S902 단계에서, 서비스 모듈 실행부(104)는 복수의 서비스 모듈(120) 중 메시지 트래픽이 가장 적은 서비스 모듈(120)을 선별한다. In step S902 , the service module execution unit 104 selects the service module 120 having the least message traffic among the plurality of service modules 120 .

S904 단계에서, 서비스 모듈 실행부(104)는 선별된 서비스 모듈(120)이 현재 실행 가능한지의 여부를 판단한다. 예를 들어, 서비스 모듈 실행부(104)는 선별된 서비스 모듈(120)에서의 메시지 트래픽이 설정된 값 이하인 경우 해당 서비스 모듈(120)이 현재 실행 가능한 것으로 판단할 수 있다. In step S904, the service module execution unit 104 determines whether the selected service module 120 is currently executable. For example, when the message traffic from the selected service module 120 is equal to or less than a set value, the service module execution unit 104 may determine that the corresponding service module 120 is currently executable.

만약, 해당 서비스 모듈(120)이 실행 가능한 것으로 판단되는 경우, S906 단계에서, 서비스 모듈 실행부(104)는 해당 서비스 모듈(120)을 실행한다. 만약, 해당 서비스 모듈(120)이 실행 가능하지 않은 것으로 판단되는 경우, 서비스 모듈 실행부(104)는 설정된 시간(예를 들어, 10분) 동안 대기 후 S710, S712 단계를 반복한다.If it is determined that the corresponding service module 120 is executable, in step S906 , the service module execution unit 104 executes the corresponding service module 120 . If it is determined that the corresponding service module 120 is not executable, the service module execution unit 104 repeats steps S710 and S712 after waiting for a set time (eg, 10 minutes).

S908 단계에서, 서비스 모듈 실행부(104)는 실행할 서비스 모듈(120)이 더 존재하는지의 여부를 판단한다. 만약, 실행할 서비스 모듈(120)이 더 존재하는 경우, 서비스 모듈 실행부(104)는 S710, S712 단계를 반복한다.
In step S908 , the service module execution unit 104 determines whether there is a further service module 120 to be executed. If there is an additional service module 120 to be executed, the service module execution unit 104 repeats steps S710 and S712.

한편, 본 발명의 실시예는 본 명세서에서 기술한 방법들을 컴퓨터상에서 수행하기 위한 프로그램, 및 상기 프로그램을 포함하는 컴퓨터 판독 가능 기록매체를 포함할 수 있다. 상기 컴퓨터 판독 가능 기록매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나, 또는 컴퓨터 소프트웨어 분야에서 통상적으로 사용 가능한 것일 수 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 프로그램의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.Meanwhile, an embodiment of the present invention may include a program for performing the methods described in this specification on a computer, and a computer-readable recording medium including the program. The computer-readable recording medium may include program instructions, local data files, local data structures, etc. alone or in combination. The media may be specially designed and configured for the present invention, or may be commonly used in the field of computer software. Examples of computer-readable recording media include hard disks, magnetic media such as floppy disks and magnetic tapes, optical recording media such as CD-ROMs and DVDs, and program instructions specially configured to store and execute program instructions such as ROMs, RAMs, flash memories, etc. Hardware devices are included. Examples of the program may include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.

이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 전술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
Although the present invention has been described in detail through representative embodiments above, those of ordinary skill in the art to which the present invention pertains can make various modifications to the above-described embodiments without departing from the scope of the present invention. will understand Therefore, the scope of the present invention should not be limited to the described embodiments, but should be defined by the claims described below as well as the claims and equivalents.

100 : 서비스 처리 시스템
102 : 메시지 모니터링부
104 : 서비스 모듈 실행부
106 : 오토 스케일링부
110 : 플랫폼
120 : 서비스 모듈
100: service processing system
102: message monitoring unit
104: service module execution unit
106: auto scaling unit
110: platform
120: service module

Claims (23)

서로 다른 서비스를 처리하며, 서로 독립적으로 작동하는 복수의 서비스 모듈 각각으로부터 상기 서비스 모듈에서의 메시지 입출력 정보를 수신하고, 상기 메시지 입출력 정보를 이용하여 상기 서비스 모듈별 메시지 처리 성능을 판단하는 메시지 모니터링부;
상기 메시지 모니터링부로부터 상기 서비스 모듈별 메시지 처리 성능에 관한 정보를 수신하고, 상기 서비스 모듈별 메시지 처리 성능에 따라 상기 복수의 서비스 모듈 각각의 실행 순서를 동적으로 결정하는 서비스 모듈 실행부; 및
상기 메시지 모니터링부로부터 오토-스케일링 요청 메시지를 수신하고, 상기 오토-스케일링 요청 메시지에 따라 상기 복수의 서비스 모듈 중 적어도 하나에 대한 컴퓨팅 자원을 오토-스케일링(auto-scaling)하는 오토 스케일링부를 포함하고,
상기 메시지 모니터링부는, 상기 실행 순서를 동적으로 결정한 이후 상기 메시지 입출력 정보를 이용하여 스케일링 기준 정보를 계산하고, 상기 스케일링 기준 정보와 설정된 기준치와의 비교 결과에 따라 상기 오토-스케일링 요청 메시지를 생성하며,
상기 오토-스케일링 요청 메시지는, 상기 비교 결과에 따라 상기 메시지 처리 성능이 가장 낮은 서비스 모듈에 대한 컴퓨팅 자원부터 기 설정된 조건을 만족할 때까지 순차적으로 스케일-아웃하도록 결정하거나 상기 메시지 처리 성능이 가장 높은 서비스 모듈에 대한 컴퓨팅 자원부터 기 설정된 조건을 만족할 때까지 순차적으로 스케일-인하도록 결정하는 것인, 서비스 처리 시스템.
A message monitoring unit that processes different services, receives message input/output information in the service module from each of a plurality of service modules that operate independently of each other, and determines message processing performance for each service module using the message input/output information ;
a service module execution unit for receiving information on message processing performance for each service module from the message monitoring unit and dynamically determining an execution order of each of the plurality of service modules according to the message processing performance for each service module; and
An auto-scaling unit that receives an auto-scaling request message from the message monitoring unit and auto-scaling a computing resource for at least one of the plurality of service modules according to the auto-scaling request message,
The message monitoring unit, after dynamically determining the execution order, calculates scaling reference information using the message input/output information, and generates the auto-scaling request message according to a comparison result between the scaling reference information and a set reference value,
The auto-scaling request message is determined to be sequentially scaled-out from the computing resource for the service module having the lowest message processing performance to the service module having the lowest message processing performance until a preset condition is satisfied, or the service having the highest message processing performance according to the comparison result From the computing resources for the module until the predetermined condition is satisfied, which is to be determined to be sequentially scale-in, the service processing system.
청구항 1에 있어서,
상기 메시지 모니터링부는, 상기 메시지 입출력 정보를 이용하여 상기 서비스 모듈 각각에서의 메시지 트래픽을 계산하고, 상기 메시지 트래픽에 따라 상기 서비스 모듈별 메시지 처리 성능을 판단하는, 서비스 처리 시스템.
The method according to claim 1,
The message monitoring unit calculates message traffic in each of the service modules by using the message input/output information, and determines message processing performance for each service module according to the message traffic.
청구항 2에 있어서,
상기 서비스 모듈 실행부는, 상기 복수의 서비스 모듈 중 상기 메시지 트래픽이 가장 적은 서비스 모듈을 가장 먼저 실행하도록 상기 실행 순서를 결정하는, 서비스 처리 시스템.
3. The method according to claim 2,
The service module execution unit determines the execution order so as to first execute a service module having the least message traffic among the plurality of service modules.
청구항 3에 있어서,
상기 서비스 모듈 실행부는, 상기 메시지 트래픽이 가장 적은 서비스 모듈의 실행이 완료된 이후 상기 메시지 모니터링부로부터 상기 서비스 모듈별 메시지 처리 성능에 관한 정보를 새롭게 수신하고, 새롭게 수신된 상기 서비스 모듈별 메시지 처리 성능에 관한 정보를 이용하여 다음으로 실행할 서비스 모듈을 결정하는, 서비스 처리 시스템.
4. The method according to claim 3,
The service module execution unit may be configured to newly receive information on message processing performance for each service module from the message monitoring unit after the execution of the service module with the least message traffic is completed, and to measure the newly received message processing performance for each service module. A service processing system that uses the information about the service to determine which service module to run next.
청구항 4에 있어서,
상기 서비스 모듈 실행부는, 새롭게 수신된 상기 서비스 모듈별 메시지 처리 성능에 관한 정보를 이용하여 상기 복수의 서비스 모듈에서 상기 실행이 완료된 서비스 모듈을 제외한 나머지 서비스 모듈 중 상기 메시지 트래픽이 가장 적은 서비스 모듈을 상기 다음으로 실행할 서비스 모듈로 결정하는, 서비스 처리 시스템.
5. The method according to claim 4,
The service module execution unit is configured to select a service module having the least message traffic among the remaining service modules except for the service module for which the execution has been completed in the plurality of service modules by using the newly received information on the message processing performance for each service module. The service processing system, which decides which service module to run next.
삭제delete 삭제delete 청구항 1에 있어서,
상기 스케일링 기준 정보는, 상기 복수의 서비스 모듈을 구비하는 플랫폼 전체의 초당 트랜잭션 처리 수(TPS(S)) 및 상기 플랫폼 전체의 평균 메시지 처리 시간(T(S)) 중 하나 이상을 포함하는, 서비스 처리 시스템.
The method according to claim 1,
The scaling reference information includes at least one of the number of transactions per second (TPS(S)) and the average message processing time (T(S)) of the entire platform including the plurality of service modules. processing system.
청구항 8에 있어서,
상기 메시지 모니터링부는, 상기 서비스 모듈 각각에 대한 초당 트랜잭션 처리 수(TPS(Mi)) 및 상기 서비스 모듈 각각에 대한 평균 메시지 처리 시간(T(Mi)) 중 하나 이상을 계산하며, 상기 비교 결과와 상기 TPS(Mi) 또는 상기 T(Mi)를 고려하여 상기 오토-스케일링 요청 메시지를 생성하는, 서비스 처리 시스템.
9. The method of claim 8,
The message monitoring unit calculates at least one of the number of transactions per second (TPS(M i )) for each of the service modules and the average message processing time (T(M i )) for each of the service modules, and the comparison result and the TPS(M i ) or the T(M i ) to generate the auto-scaling request message.
청구항 9에 있어서,
상기 오토-스케일링 요청 메시지는, 상기 TPS(S)가 제1 기준치보다 설정된 값 이상 낮은 경우 상기 TPS(Mi)가 가장 낮은 서비스 모듈에 대한 컴퓨팅 자원부터 스케일-아웃(scale-out)하도록 요청하는 메시지이며, 상기 TPS(S)가 상기 제1 기준치보다 설정된 값 이상 높은 경우 상기 TPS(Mi)가 가장 높은 서비스 모듈에 대한 컴퓨팅 자원부터 스케일-인(scale-in)하도록 요청하는 메시지인, 서비스 처리 시스템.
10. The method of claim 9,
The auto-scaling request message is, when the TPS(S) is lower than a set value or more than the first reference value, the TPS(M i ) requests to scale-out from the computing resource for the lowest service module It is a message, and when the TPS(S) is higher than a set value or more than the first reference value, the TPS(M i ) is a message requesting to scale-in from the computing resource for the highest service module, the service processing system.
청구항 9에 있어서,
상기 오토-스케일링 요청 메시지는, 상기 T(S)가 제2 기준치보다 설정된 값 이상 높은 경우 상기 T(Mi)가 가장 높은 서비스 모듈에 대한 컴퓨팅 자원부터 스케일-아웃하도록 요청하는 메시지이며, 상기 T(S)가 제2 기준치보다 설정된 값 이상 낮은 경우 상기 T(Mi)가 가장 낮은 서비스 모듈에 대한 컴퓨팅 자원부터 스케일-인하도록 요청하는 메시지인, 서비스 처리 시스템.
10. The method of claim 9,
The auto-scaling request message is a message requesting to scale-out from the computing resource for the service module having the highest T(M i ) when the T(S) is higher than a set value or more than the second reference value, and the T When (S) is lower than the second reference value by more than a set value, the T(M i ) is a message requesting to scale-in from the computing resource for the lowest service module, the service processing system.
메시지 모니터링부에서, 서로 다른 서비스를 처리하며, 서로 독립적으로 작동하는 복수의 서비스 모듈 각각으로부터 상기 서비스 모듈에서의 메시지 입출력 정보를 수신하는 단계;
상기 메시지 모니터링부에서, 상기 메시지 입출력 정보를 이용하여 상기 서비스 모듈별 메시지 처리 성능을 판단하는 단계;
서비스 모듈 실행부에서, 상기 메시지 모니터링부로부터 상기 서비스 모듈별 메시지 처리 성능에 관한 정보를 수신하는 단계;
상기 서비스 모듈 실행부에서, 상기 서비스 모듈별 메시지 처리 성능에 따라 상기 복수의 서비스 모듈 각각의 실행 순서를 동적으로 결정하는 단계;
상기 메시지 모니터링부에서, 상기 실행 순서를 동적으로 결정한 이후 상기 메시지 입출력 정보를 이용하여 스케일링 기준 정보를 계산하고, 상기 스케일링 기준 정보와 설정된 기준치와의 비교 결과에 따라 상기 오토-스케일링 요청 메시지를 생성하는 단계; 및
오토 스케일링부에서, 상기 메시지 모니터링부로부터 오토-스케일링 요청 메시지를 수신하고, 상기 오토-스케일링 요청 메시지에 따라 상기 복수의 서비스 모듈 중 적어도 하나에 대한 컴퓨팅 자원을 오토-스케일링(auto-scaling)하는 단계를 포함하고,
상기 오토-스케일링 요청 메시지는, 상기 비교 결과에 따라 상기 메시지 처리 성능이 가장 낮은 서비스 모듈에 대한 컴퓨팅 자원부터 기 설정된 조건을 만족할 때까지 순차적으로 스케일-아웃하도록 결정하거나 상기 메시지 처리 성능이 가장 높은 서비스 모듈에 대한 컴퓨팅 자원부터 기 설정된 조건을 만족할 때까지 순차적으로 스케일-인하도록 결정하는 것인, 서비스 처리 방법.
receiving, in the message monitoring unit, message input/output information in the service module from each of a plurality of service modules that process different services and operate independently of each other;
determining, by the message monitoring unit, message processing performance for each service module by using the message input/output information;
receiving, in the service module execution unit, information on message processing performance for each service module from the message monitoring unit;
dynamically determining, by the service module execution unit, an execution order of each of the plurality of service modules according to message processing performance for each service module;
In the message monitoring unit, after the execution order is dynamically determined, scaling reference information is calculated using the message input/output information, and the auto-scaling request message is generated according to a comparison result between the scaling reference information and a set reference value. step; and
In the auto-scaling unit, receiving an auto-scaling request message from the message monitoring unit, and auto-scaling computing resources for at least one of the plurality of service modules according to the auto-scaling request message. including,
The auto-scaling request message is determined to be sequentially scaled-out from the computing resource for the service module having the lowest message processing performance to the service module having the lowest message processing performance until a preset condition is satisfied, or the service having the highest message processing performance according to the comparison result From the computing resources for the module, until the predetermined condition is satisfied, which is to be determined to be sequentially scale-in, the service processing method.
청구항 12에 있어서,
상기 서비스 모듈별 메시지 처리 성능을 판단하는 단계는, 상기 메시지 입출력 정보를 이용하여 상기 서비스 모듈 각각에서의 메시지 트래픽을 계산하고, 상기 메시지 트래픽에 따라 상기 서비스 모듈별 메시지 처리 성능을 판단하는, 서비스 처리 방법.
13. The method of claim 12,
The determining of the message processing performance for each service module includes calculating message traffic in each of the service modules using the message input/output information, and determining the message processing performance for each service module according to the message traffic. Way.
청구항 13에 있어서,
상기 복수의 서비스 모듈 각각의 실행 순서를 결정하는 단계는, 상기 복수의 서비스 모듈 중 상기 메시지 트래픽이 가장 적은 서비스 모듈을 가장 먼저 실행하도록 상기 실행 순서를 결정하는, 서비스 처리 방법.
14. The method of claim 13,
The determining of the execution order of each of the plurality of service modules includes determining the execution order so that a service module having the least message traffic among the plurality of service modules is executed first.
청구항 14에 있어서,
상기 복수의 서비스 모듈 각각의 실행 순서를 결정하는 단계는, 상기 메시지 트래픽이 가장 적은 서비스 모듈의 실행이 완료된 이후 상기 메시지 모니터링부로부터 상기 서비스 모듈별 메시지 처리 성능에 관한 정보를 새롭게 수신하고, 새롭게 수신된 상기 서비스 모듈별 메시지 처리 성능에 관한 정보를 이용하여 다음으로 실행할 서비스 모듈을 결정하는, 서비스 처리 방법.
15. The method of claim 14,
In the determining of the execution order of each of the plurality of service modules, after the execution of the service module with the least message traffic is completed, information on message processing performance for each service module is newly received from the message monitoring unit, and newly received A service processing method for determining a service module to be executed next by using the information on the message processing performance for each service module.
청구항 15에 있어서,
상기 복수의 서비스 모듈 각각의 실행 순서를 결정하는 단계는, 새롭게 수신된 상기 서비스 모듈별 메시지 처리 성능에 관한 정보를 이용하여 상기 복수의 서비스 모듈에서 상기 실행이 완료된 서비스 모듈을 제외한 나머지 서비스 모듈 중 상기 메시지 트래픽이 가장 적은 서비스 모듈을 상기 다음으로 실행할 서비스 모듈로 결정하는, 서비스 처리 방법.
16. The method of claim 15,
The determining of the execution order of each of the plurality of service modules may include using the newly received information on message processing performance for each service module from among the remaining service modules except for the service modules for which the execution has been completed in the plurality of service modules. and determining a service module with the least message traffic as the next service module to be executed.
삭제delete 삭제delete 청구항 12에 있어서,
상기 스케일링 기준 정보는, 상기 복수의 서비스 모듈을 구비하는 플랫폼 전체의 초당 트랜잭션 처리 수(TPS(S)) 및 상기 플랫폼 전체의 평균 메시지 처리 시간(T(S)) 중 하나 이상을 포함하는, 서비스 처리 방법.
13. The method of claim 12,
The scaling reference information includes at least one of the number of transactions per second (TPS(S)) and the average message processing time (T(S)) of the entire platform including the plurality of service modules. processing method.
청구항 19에 있어서,
상기 오토-스케일링 요청 메시지를 생성하는 단계는, 상기 서비스 모듈 각각에 대한 초당 트랜잭션 처리 수(TPS(Mi)) 및 상기 서비스 모듈 각각에 대한 평균 메시지 처리 시간(T(Mi)) 중 하나 이상을 계산하며, 상기 비교 결과와 상기 TPS(Mi) 또는 상기 T(Mi)를 고려하여 상기 오토-스케일링 요청 메시지를 생성하는, 서비스 처리 방법.
20. The method of claim 19,
The generating of the auto-scaling request message includes at least one of a number of transactions per second (TPS(M i )) for each of the service modules and an average message processing time (T(M i )) for each of the service modules. , and generating the auto-scaling request message in consideration of the comparison result and the TPS(M i ) or T(M i ).
청구항 20에 있어서,
상기 오토-스케일링 요청 메시지는, 상기 TPS(S)가 제1 기준치보다 설정된 값 이상 낮은 경우 상기 TPS(Mi)가 가장 낮은 서비스 모듈에 대한 컴퓨팅 자원부터 스케일-아웃(scale-out)하도록 요청하는 메시지이며, 상기 TPS(S)가 상기 제1 기준치보다 설정된 값 이상 높은 경우 상기 TPS(Mi)가 가장 높은 서비스 모듈에 대한 컴퓨팅 자원부터 스케일-인(scale-in)하도록 요청하는 메시지인, 서비스 처리 방법.
21. The method of claim 20,
The auto-scaling request message is, when the TPS(S) is lower than a set value or more than the first reference value, the TPS(M i ) requests to scale-out from the computing resource for the lowest service module It is a message, and when the TPS(S) is higher than a set value or more than the first reference value, the TPS(M i ) is a message requesting to scale-in from the computing resource for the highest service module, the service processing method.
청구항 20에 있어서,
상기 오토-스케일링 요청 메시지는, 상기 T(S)가 제2 기준치보다 설정된 값 이상 높은 경우 상기 T(Mi)가 가장 높은 서비스 모듈에 대한 컴퓨팅 자원부터 스케일-아웃하도록 요청하는 메시지이며, 상기 T(S)가 제2 기준치보다 설정된 값 이상 낮은 경우 상기 T(Mi)가 가장 낮은 서비스 모듈에 대한 컴퓨팅 자원부터 스케일-인하도록 요청하는 메시지인, 서비스 처리 방법.
21. The method of claim 20,
The auto-scaling request message is a message requesting to scale-out from the computing resource for the service module having the highest T(M i ) when the T(S) is higher than a set value or more than the second reference value, and the T When (S) is lower than a set value or more than the second reference value, the T(M i ) is a message requesting to scale-in from the computing resource for the lowest service module, the service processing method.
하드웨어와 결합되어,
메시지 모니터링부에서, 서로 다른 서비스를 처리하며, 서로 독립적으로 작동하는 복수의 서비스 모듈 각각으로부터 상기 서비스 모듈에서의 메시지 입출력 정보를 수신하는 단계;
상기 메시지 모니터링부에서, 상기 메시지 입출력 정보를 이용하여 상기 서비스 모듈별 메시지 처리 성능을 판단하는 단계;
서비스 모듈 실행부에서, 상기 메시지 모니터링부로부터 상기 서비스 모듈별 메시지 처리 성능에 관한 정보를 수신하는 단계;
상기 서비스 모듈 실행부에서, 상기 서비스 모듈별 메시지 처리 성능에 따라 상기 복수의 서비스 모듈 각각의 실행 순서를 동적으로 결정하는 단계;
상기 메시지 모니터링부에서, 상기 실행 순서를 동적으로 결정한 이후 상기 메시지 입출력 정보를 이용하여 스케일링 기준 정보를 계산하고, 상기 스케일링 기준 정보와 설정된 기준치와의 비교 결과에 따라 상기 오토-스케일링 요청 메시지를 생성하는 단계; 및
오토 스케일링부에서, 상기 메시지 모니터링부로부터 오토-스케일링 요청 메시지를 수신하고, 상기 오토-스케일링 요청 메시지에 따라 상기 복수의 서비스 모듈 중 적어도 하나에 대한 컴퓨팅 자원을 오토-스케일링(auto-scaling)하는 단계를 실행시키고,
상기 오토-스케일링 요청 메시지는, 상기 비교 결과에 따라 상기 메시지 처리 성능이 가장 낮은 서비스 모듈에 대한 컴퓨팅 자원부터 기 설정된 조건을 만족할 때까지 순차적으로 스케일-아웃하도록 결정하거나 상기 메시지 처리 성능이 가장 높은 서비스 모듈에 대한 컴퓨팅 자원부터 기 설정된 조건을 만족할 때까지 순차적으로 스케일-인하도록 결정하는 것인, 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.
combined with hardware,
receiving, in the message monitoring unit, message input/output information in the service module from each of a plurality of service modules that process different services and operate independently of each other;
determining, in the message monitoring unit, message processing performance for each service module by using the message input/output information;
receiving, in the service module execution unit, information on message processing performance for each service module from the message monitoring unit;
dynamically determining, by the service module execution unit, an execution order of each of the plurality of service modules according to message processing performance for each service module;
In the message monitoring unit, after the execution order is dynamically determined, scaling reference information is calculated using the message input/output information, and the auto-scaling request message is generated according to a comparison result between the scaling reference information and a set reference value. step; and
In the auto-scaling unit, receiving an auto-scaling request message from the message monitoring unit, and auto-scaling computing resources for at least one of the plurality of service modules according to the auto-scaling request message. run the
The auto-scaling request message is determined to be sequentially scaled-out from the computing resource for the service module having the lowest message processing performance to the service module having the lowest message processing performance until a preset condition is satisfied, or the service having the highest message processing performance according to the comparison result A computer program stored in a computer-readable recording medium that determines to sequentially scale-in from a computing resource for a module until a preset condition is satisfied.
KR1020150167794A 2015-11-27 2015-11-27 System and method for processing service KR102387930B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150167794A KR102387930B1 (en) 2015-11-27 2015-11-27 System and method for processing service

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150167794A KR102387930B1 (en) 2015-11-27 2015-11-27 System and method for processing service

Publications (2)

Publication Number Publication Date
KR20170062235A KR20170062235A (en) 2017-06-07
KR102387930B1 true KR102387930B1 (en) 2022-04-15

Family

ID=59223737

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150167794A KR102387930B1 (en) 2015-11-27 2015-11-27 System and method for processing service

Country Status (1)

Country Link
KR (1) KR102387930B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102088207B1 (en) * 2018-06-01 2020-03-12 주식회사 티맥스 소프트 Sever, method of controlling a server and computer program stored in computer readable medium therefor
EP3745761A1 (en) 2019-05-28 2020-12-02 Samsung Electronics Co., Ltd. Virtualization of ran functions based on load of the base stations
KR102537906B1 (en) * 2022-01-07 2023-05-30 주식회사 저스트큐 Method for auto scalinig of managing server for consignment sales

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5609868B2 (en) * 2009-05-15 2014-10-22 日本電気株式会社 Workflow monitoring control system, monitoring control method and monitoring control program
JP2015184879A (en) * 2014-03-24 2015-10-22 株式会社野村総合研究所 Foundation operational management system and foundation operational management method

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000044317A (en) * 1998-12-30 2000-07-15 윤종용 Method for independently managing state of service module in communication system
KR101071506B1 (en) * 2009-12-30 2011-10-10 아주대학교산학협력단 DECTECTION METHOD AND APPARATUS OF SIP(Session Initiation Protocol) CANCEL FLOODING ATTACKS BASED ON THE UPPER BOUND OF POSSIBLE NUMER OF SIP MESSAGES
KR101345068B1 (en) 2013-06-12 2013-12-26 성결대학교 산학협력단 System and method for workflow modeling and simulation
KR20150062634A (en) * 2013-11-29 2015-06-08 고려대학교 산학협력단 Auto scaling system and method in cloud computing environment
KR20150089665A (en) * 2014-01-28 2015-08-05 한국전자통신연구원 Appratus for workflow job scheduling

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5609868B2 (en) * 2009-05-15 2014-10-22 日本電気株式会社 Workflow monitoring control system, monitoring control method and monitoring control program
JP2015184879A (en) * 2014-03-24 2015-10-22 株式会社野村総合研究所 Foundation operational management system and foundation operational management method

Also Published As

Publication number Publication date
KR20170062235A (en) 2017-06-07

Similar Documents

Publication Publication Date Title
KR102290527B1 (en) Method, apparatus and system for selectively providing virtual machine through actual measurement of power usage
US9606785B2 (en) Detecting deployment conflicts in heterogeneous environments
US8171473B2 (en) Method and apparatus for determining a service cluster topology based on static analysis
US9953262B2 (en) Application recommending method and apparatus
US8904377B2 (en) Reconfiguration of computer system to allow application installation
US20180024863A1 (en) Task Scheduling and Resource Provisioning System and Method
US10664452B2 (en) Parallel processing of large data files on distributed file systems with dynamic workload balancing
US11163769B2 (en) Joining two data tables on a join attribute
US20140280441A1 (en) Data integration on retargetable engines in a networked environment
US20120311295A1 (en) System and method of optimization of in-memory data grid placement
US10776354B2 (en) Efficient processing of data extents
US9317332B2 (en) Resolving deployment conflicts in heterogeneous environments
KR102387930B1 (en) System and method for processing service
US9870042B2 (en) Apparatus and method managing power based on data
US8903871B2 (en) Dynamic management of log persistence
US10031777B2 (en) Method and system for scheduling virtual machines in integrated virtual machine clusters
US20160125072A1 (en) User navigation in a target portal
US10637919B2 (en) Autonomous resource governor in distributed systems for protecting shared resources
US9600525B1 (en) Method for joining tables using a limited amount of memory
KR102660480B1 (en) Personalized node ranking method and system using random walk
US11914593B2 (en) Generate digital signature of a query execution plan using similarity hashing
CN116827946A (en) Load balancing method, data synchronization method, device, electronic equipment and medium
CN116069817A (en) Task processing method, device, equipment and storage medium
US10528565B2 (en) Logical level predictive caching in relational databases
CN114218330A (en) ES cluster selection method, ES cluster selection device, ES cluster selection apparatus, ES cluster selection medium, and program product

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant