[go: up one dir, main page]

KR101957239B1 - Method and apparatus for processing tasks - Google Patents

Method and apparatus for processing tasks Download PDF

Info

Publication number
KR101957239B1
KR101957239B1 KR1020170138531A KR20170138531A KR101957239B1 KR 101957239 B1 KR101957239 B1 KR 101957239B1 KR 1020170138531 A KR1020170138531 A KR 1020170138531A KR 20170138531 A KR20170138531 A KR 20170138531A KR 101957239 B1 KR101957239 B1 KR 101957239B1
Authority
KR
South Korea
Prior art keywords
host
job
status information
network
information
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
KR1020170138531A
Other languages
Korean (ko)
Inventor
추현승
김보라
Original Assignee
성균관대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 성균관대학교산학협력단 filed Critical 성균관대학교산학협력단
Priority to KR1020170138531A priority Critical patent/KR101957239B1/en
Application granted granted Critical
Publication of KR101957239B1 publication Critical patent/KR101957239B1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)

Abstract

클라이언트로부터 처리할 작업에 대한 정보를 수신하고, 각각의 호스트가 작업을 처리하는데 소요되는 시간을 나타내는 호스트 상태 정보 및 각각의 호스트와의 네트워크의 상태를 나타내는 네트워크 상태 정보를 획득하고, 호스트 상태 정보 및 네트워크 상태 정보에 기초하여, 작업을 처리할 호스트를 결정하며, 결정된 호스트로 작업의 처리에 필요한 정보를 전송하는 단계를 포함하는 작업 처리 방법. Obtains host status information indicating a time required for each host to process a job and network status information indicating a status of a network with each host, Determining a host to process the job based on the network status information, and transmitting information necessary for processing the job to the determined host.

Description

작업 처리 방법 및 장치{Method and apparatus for processing tasks}[0001] The present invention relates to a method and apparatus for processing tasks,

본 발명은 작업을 처리하는 방법 및 장치에 관한 것으로, 특히 SDN(Software-Defined Network) 환경에서 작업을 처리하는 방법 및 장치에 관한 것이다. The present invention relates to a method and apparatus for processing a job, and more particularly to a method and apparatus for processing a job in an SDN (Software-Defined Network) environment.

종래의 인터넷 구조는 클라이언트-서버 컴퓨팅이 지배적이던 지난 20년간 만들어진 것으로 이더넷 스위치와 라우터를 트리 형태로 배치한 계위적 구조를 취하고 있다. 최근 수년 사이에 일어난 모바일 장치와 컨텐츠의 폭발적 증가 및 클라우드 기반 가상화 서비스의 전개 그리고 미래 인터넷 구축연구는 현재의 네트워크 구조와 관리 구조에 대한 재검토를 요구하고 있다. 그 주요 이유는 급변하는 네트워크 사용 환경의 변화를 따라가지 못하는 현 네트워크 기술의 한계 및 벤더가 기술 개발을 주도하는 환경에 기인한다.The conventional Internet architecture has been developed over the last 20 years, when client-server computing dominates, and adopts a hierarchical structure in which Ethernet switches and routers are arranged in a tree form. The explosive growth of mobile devices and content in recent years, the deployment of cloud-based virtualization services, and the study of future Internet deployments require a review of the current network structure and management structure. The main reason is due to the limitations of current network technology that can not keep pace with the rapidly changing network environment and the environment where vendors lead the technology development.

종래의 인터넷 구조에 대한 해결책으로 최근 Software Defined Network(이하, SDN)가 각광을 받고 있다. SDN은 소프트웨어 프로그래밍을 통해 네트워크 경로 설정과 제어 및 복잡한 운용 관리를 편리하게 처리할 수 있는 차세대 네트워킹 기술이다. 이를 위하여 SDN에서는 네트워크의 데이터 평면(data plane)과 제어평면(control plane)을 분리하고 이 사이에 표준화된 인터페이스를 제공하며, 네트워크 운용자가 여러 상황에 맞추어 제어 평면을 프로그래밍하여 데이터 평면에서 이루어지는 통신 기능을 다양한 방식으로 제어할 수 있다.As a solution to the conventional Internet architecture, Software Defined Network (SDN) has recently been spotlighted. SDN is a next-generation networking technology that facilitates network routing, control and management of complex operations through software programming. For this purpose, the SDN separates the data plane and control plane of the network and provides a standardized interface between them. The network operator can program the control plane according to various situations, Can be controlled in various ways.

이러한, SDN에서는 효율적인 자원의 사용을 위하여 호스트에 작업을 할당하는 스케쥴링이 매우 중요하다. In SDN, it is very important to allocate tasks to hosts for efficient use of resources.

상기의 문제점을 해결하기 위한 본 발명의 목적은, 작업 요청의 정도에 따라 호스트 상황을 확인하는 주기를 적응적으로 조절하는 작업 처리 장치 및 방법을 제공하는 것이다. SUMMARY OF THE INVENTION An object of the present invention is to provide an apparatus and method for adaptively adjusting a period for checking a host status according to the degree of a task request.

또한, 네트워크 상황 및 호스트 상황에 기초하여 효율적으로 작업을 처리하는 작업 처리 방법 및 장치를 제공하는 것이다. In addition, it is an object of the present invention to provide a method and apparatus for processing a job efficiently based on a network situation and a host situation.

본 발명이 해결하고자 하는 과제는 이상에서 언급한 과제(들)로 제한되지 않으며, 언급되지 않은 또 다른 과제(들)은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The problems to be solved by the present invention are not limited to the above-mentioned problem (s), and another problem (s) not mentioned can be clearly understood by those skilled in the art from the following description.

상기의 목적을 달성하기 위한 본 발명의 일 실시예에 따른 작업 처리 방법은, 클라이언트로부터 처리할 작업에 대한 정보를 수신하는 단계; 각각의 호스트가 작업을 처리하는데 소요되는 시간을 나타내는 호스트 상태 정보 및 상기 각각의 호스트와의 네트워크의 상태를 나타내는 네트워크 상태 정보를 획득하는 단계; 상기 호스트 상태 정보 및 네트워크 상태 정보에 기초하여, 상기 작업을 처리할 호스트를 결정하는 단계; 및 상기 결정된 호스트로 상기 작업의 처리에 필요한 정보를 전송하는 단계를 포함하는 것이다. According to an aspect of the present invention, there is provided a method of processing a job, the method comprising: receiving information on a job to be processed from a client; Obtaining host status information indicating a time required for each host to process a job and network status information indicating a status of a network with each host; Determining a host to process the job based on the host status information and the network status information; And transmitting information necessary for processing the job to the determined host.

상기 정보를 획득하는 단계는, 상기 네트워크 및 상기 각각의 호스트의 상태를 확인하기 위한 모니터링 메시지를 상기 각각의 호스트로 전송하는 단계; 상기 전송에 대응하여, 상기 각각의 호스트로부터 대기 중인 작업의 양 및 평균 작업 처리 시간에 관한 정보가 포함된 응답 메시지를 수신하는 단계; 및 상기 응답 메시지에 기초하여, 상기 정보를 획득하는 단계를 포함할 수 있다. Wherein the obtaining of the information comprises: sending a monitoring message to each host to confirm the status of the network and each host; Receiving, in response to the transmission, a response message including information on the amount of waiting jobs and the average job processing time from each of the hosts; And obtaining the information based on the response message.

상기 모니터링 메시지를 전송하는 단계는, 상기 클라이언트가 요청하여 대기 중인 작업의 수에 기초하여, 상기 모니터링 메시지의 전송 주기를 조정하는 단계를 포함할 수 있다. The step of transmitting the monitoring message may include adjusting a transmission period of the monitoring message based on the number of jobs waiting for the client.

상기 호스트 상태 정보는, 상기 호스트에서 하나의 작업을 완료하는데 소요되는 평균 시간인 평균 작업 처리 시간과 상기 호스트에서 처리해야할 작업의 개수에 관한 정보에 기초하여 결정될 수 있다. The host status information may be determined based on information about an average task processing time, which is an average time required for completing a task in the host, and the number of tasks to be processed by the host.

상기 평균 작업 처리 시간은, 최근에 처리한 작업의 처리 시간에 가중치를 부여하여 결정될 수 있다. The average job processing time may be determined by weighting the processing time of the recently processed job.

상기 가중치는, 상기 최근에 처리한 작업이 상기 호스트에서 차지한 메모리 점유율에 기초하여 결정될 수 있다. The weight may be determined based on the memory occupancy that the recently processed task occupies in the host.

상기 네트워크 상태 정보는, 상기 클라인트로부터 상기 호스트까지 데이터가 전송되는데 소요되는 평균 시간인 평균 네트워크 지연 정보, 상기 클라인트가 요청한 작업의 크기 및 데이터의 손실율에 기초하여 결정될 수 있다. The network status information may be determined based on average network delay information, which is an average time required for data transmission from the client to the host, a size of a job requested by the client, and a data loss rate.

상기 호스트를 결정하는 단계는, 상기 클라이언트로부터 요청된 작업의 특성에 기초하여, 상기 호스트 상태 정보 및 상기 네트워크 상태 정보의 가중치를 변경하고, 변경된 가중치에 기초하여 상기 요청된 작업을 처리할 호스트를 결정하는 단계를 포함할 수 있다. Wherein the step of determining the host comprises the steps of: changing a weight of the host status information and the network status information based on characteristics of a job requested from the client; determining a host to process the requested job based on the changed weight; .

상기 호스트를 결정하는 단계는, 상기 호스트 상태 정보 및 상기 네트워크 상태 정보에 기초하여, 각각의 호스트에 대한 점수를 계산하는 단계; 및 상기 계산된 점수가 임계치 이상인 호스트가 존재하지 않으면 상기 작업의 처리를 중지하는 단계를 포함할 수 있다. The step of determining the host may include: calculating a score for each host based on the host status information and the network status information; And stopping the processing of the job if the calculated score is not equal to or greater than the threshold.

상기 호스트를 결정하는 단계는, 상기 계산된 점수가 임계치 이상인 호스트가 존재하면, 상기 계산된 점수가 임계치 이상인 호스트 중 대기 중인 작업이 없는 호스트에 상기 작업의 처리를 요청하는 단계를 더 포함할 수 있다. The step of determining the host may further include, if there is a host having the calculated score equal to or greater than the threshold, requesting processing of the job to a host having no job waiting among the hosts having the calculated score exceeding the threshold .

상기 호스트를 결정하는 단계는, 상기 계산된 점수가 임계치 이상인 호스트가 존재하면, 상기 계산된 점수가 임계치 이상인 호스트 중 상기 계산된 점수가 가장 높은 호스트로 상기 작업의 처리를 요청하는 단계를 더 포함할 수 있다. The step of determining the host may further include, if there is a host having the calculated score exceeding the threshold, requesting processing of the task to a host having the highest score among the hosts having the calculated score equal to or higher than the threshold .

상기 작업에 필요한 정보를 전송하는 단계는, 상기 결정된 호스트에 대응하는 라우터로 상기 작업의 처리에 필요한 정보를 전송하는 단계를 포함할 수 있다. The step of transmitting information necessary for the task may include transmitting information necessary for processing the job to the router corresponding to the determined host.

상기 방법은, 상기 라우터로부터 상기 작업의 처리 결과를 수신하는 단계; 및 상기 수신된 처리 결과를 상기 클라이언트에 전송하는 단계를 더 포함할 수 있다. The method includes: receiving a processing result of the job from the router; And transmitting the received processing result to the client.

상기 네트워크는, SDN(Software-Defined Networking)일 수 있다. The network may be SDN (Software-Defined Networking).

상기의 목적을 달성하기 위한 본 발명의 다른 실시예에 따른 작업 처리 장치는, 클라이언트로부터 처리할 작업에 대한 정보를 수신하는 수신부; 각각의 호스트가 작업을 처리하는데 소요되는 시간을 나타내는 호스트 상태 정보 및 상기 각각의 호스트와의 네트워크의 상태를 나타내는 네트워크 상태 정보를 획득하는 정보 획득부; 상기 호스트 상태 정보 및 네트워크 상태 정보에 기초하여, 상기 작업을 처리할 호스트를 결정하는 결정부; 및 상기 결정된 호스트로 상기 작업의 처리에 필요한 정보를 전송하는 전송부를 포함하는 것이다. According to another aspect of the present invention, there is provided a task processing apparatus including: a receiving unit for receiving information on a task to be processed by a client; An information obtaining unit obtaining host status information indicating a time required for each host to process a job and network status information indicating a status of a network with each host; A determining unit that determines a host to process the job based on the host status information and the network status information; And a transmitting unit for transmitting information necessary for processing the job to the determined host.

본 발명의 일 실시예에 따른 작업 처리 장치는, 대기 중인 작업의 수에 기초하여 호스트의 상태를 확인하기 위한 모니터링 메시지의 전송 주기를 조절함으로서, 대기 작업이 많은 경우 호스트의 상태를 신속하게 확인하고 대기 작업이 적은 경우 데이터 오버해드를 감소시킨다. The job processing apparatus according to an embodiment of the present invention quickly checks the status of the host when there are many waiting jobs by adjusting the transmission period of the monitoring message for checking the status of the host based on the number of waiting jobs Reduce data overhead when there are few waiting jobs.

또한, 본 발명의 일 실시예에 따른 작업 처리 장치는, 호스트 상태 정보 및 네트워크 상태 정보에 기초하여 최적의 호스트에 작업을 할당함으로서 작업 처리 속도를 향상시킨다. In addition, the task processing apparatus according to an embodiment of the present invention improves the task processing speed by allocating tasks to the optimal host based on the host status information and the network status information.

도 1은 본 발명의 일 실시예에 따른 작업 처리 시스템에 관한 블록도를 나타낸다.
도 2는 본 발명의 일 실시예에 따른 작업 처리 장치(200)에 관한 블록도를 나타낸다.
도 3은 본 발명의 일 실시예에 따른 작업 처리 장치(200)에서 모니터링 단계를 수행하는데 사용되는 알고리즘의 일 예를 나타내는 도면이다.
도 4은 본 발명의 일 실시예에 따른 작업 처리 장치(200)에서 작업 할당 단계를 수행하는데 사용되는 알고리즘의 일 예를 나타내는 도면이다.
도 5는 본 발명의 일 실시예에 따른 시스템 상태 정보(CSC)에 관한 일 예를 나타내는 도면이다.
도 6은 본 발명의 일 실시예에 따른 작업 처리 방법에 관한 흐름도를 나타낸다.
1 shows a block diagram of a task processing system according to an embodiment of the present invention.
2 shows a block diagram of a work processing apparatus 200 according to an embodiment of the present invention.
3 is a diagram showing an example of an algorithm used to perform the monitoring step in the work processing apparatus 200 according to an embodiment of the present invention.
FIG. 4 is a diagram illustrating an example of an algorithm used to perform the job assignment step in the job processing apparatus 200 according to an embodiment of the present invention.
5 is a diagram illustrating an example of system status information (CSC) according to an embodiment of the present invention.
6 is a flowchart illustrating a job processing method according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals are used for like elements in describing each drawing.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.The terms first, second, A, B, etc. may be used to describe various elements, but the elements should not be limited by the terms. For example, without departing from the scope of the present invention, a first component may be termed a second component, and similarly, the term " second component " The second component may also be referred to as the first component. The term < RTI ID = 0.0 > and / or < / RTI > includes any combination of a plurality of related listed items or any of the plurality of related listed items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In the present application, the terms "comprises" or "having" and the like are used to specify that there is a feature, a number, a step, an operation, an element, a component or a combination thereof described in the specification, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the contextual meaning of the related art and are to be interpreted as either ideal or overly formal in the sense of the present application Do not.

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 작업 처리 시스템에 관한 블록도를 나타낸다. 1 shows a block diagram of a task processing system according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 작업 처리 시스템(100)은 클라이언트(101), 작업 처리 장치(200), 라우터(103) 및 호스트(104)를 포함한다. 본 발명의 일 실시예에 따른 작업 처리 시스템(100)은 SDN(Software-Defined Network) 환경일 수 있다. 이 경우, 전통적인 네트워크와 달리 작업의 할당 및 경로 지정과 같은 제어 기능은 작업 처리 장치(200)에서 수행하고 라우터(103)는 작업 처리 장치(200)의 제어에 따라 작업 처리 장치(200)와 호스트(104)간의 데이터를 전송하는 역할만을 수행할 수 있다. A work processing system 100 according to an embodiment of the present invention includes a client 101, a work processing apparatus 200, a router 103, and a host 104. [ The task processing system 100 according to an embodiment of the present invention may be a software-defined network (SDN) environment. In this case, unlike the conventional network, control functions such as job assignment and routing are performed by the job processing device 200 and the router 103 is controlled by the job processing device 200 and the host (104).

클라이언트(101)는 작업 처리 시스템(100)을 통하여 하나 이상의 작업의 처리를 요청한다. 이 때, 복수의 클라이언트(101)가 동시에 작업 처리 시스템(100)에 연결될 수 있다. The client 101 requests the processing of one or more jobs through the job processing system 100. At this time, a plurality of clients 101 can be connected to the work processing system 100 at the same time.

작업 처리 장치(200)는 클라이언트(101)로부터 작업 처리 요청을 수신하고, 각각의 작업을 처리할 호스트(104)를 결정한다. 작업 처리 장치(200)는 클라이언트(101)들이 요청한 작업에 관한 정보가 포함된 작업 리스트를 관리하며, 작업 리스트에 기초하여 해당 작업을 처리하기에 적합한 호스트(104)를 결정한다. 작업 처리 장치(200)는 기본적으로 FIFO(First Input First Output), 즉, 먼저 요청된 작업을 먼저 처리하지만, 예외적으로 특정 요건을 만족하는 작업을 먼저 처리할 수 있다. The work processing apparatus 200 receives a job processing request from the client 101 and determines a host 104 to process each job. The work processing apparatus 200 manages a work list including information about jobs requested by the clients 101 and determines a host 104 suitable for processing the work based on the work list. The work processing apparatus 200 basically processes a first input first output (FIFO), that is, a job requested first, but exceptionally, a job that satisfies a specific requirement.

라우터(103)는 작업 처리 장치(200)로부터 작업의 처리에 필요한 데이터를 수신하여 후술할 호스트(104)로 전달한다. 작업 처리 시스템(100)이 SDN환경으로 구현될 경우, 라우터(103)는 작업 처리 장치(200)의 제어에 따라 데이터를 호스트(104)로 전달하는 역할만을 수행한다. 실시예에 따라서는 라우터(103)외에 전통적인 네트워크 장비에서의 스위치(미도시) 및 미들웨어(미도시)가 더 포함될 수 있으나, SDN 환경에서는 라우터(103)와 마찬가지로 작업 처리 장치(200)의 제어에 따라 데이터를 전송하는 역할만을 수행할 것이다. The router 103 receives the data necessary for the processing of the job from the work processing device 200 and transfers the data to the host 104 to be described later. When the work processing system 100 is implemented in the SDN environment, the router 103 performs only the function of transferring data to the host 104 under the control of the work processing apparatus 200. [ (Not shown) and a middleware (not shown) in a conventional network device in addition to the router 103. However, in the SDN environment, it is possible to control the operation of the work processing device 200 It will only perform the role of transmitting data.

호스트(104)는 라우터(103)로부터 전달받은 데이터를 처리하고, 작업 처리 결과를 라우터(103)를 통하여 클라이언트(101)에 전달한다. The host 104 processes the data received from the router 103 and transmits the job processing result to the client 101 via the router 103. [

도 2는 본 발명의 일 실시예에 따른 작업 처리 장치(200)에 관한 블록도를 나타낸다. 2 shows a block diagram of a work processing apparatus 200 according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 작업 처리 장치(200)는 수신부(210), 정보 획득부(220), 호스트 결정부(230) 및 전송부(240)를 포함한다. The work processing apparatus 200 according to an embodiment of the present invention includes a receiving unit 210, an information obtaining unit 220, a host determining unit 230, and a transmitting unit 240.

수신부(210)는 클라이언트(101)로부터 처리할 작업에 관한 정보를 수신한다. 수신부(210)는 복수의 클라이언트(101)로부터 복수의 작업의 처리를 요청받을 수 있으며, 작업 처리 장치(200)는 수신부(210)가 수신한 작업에 관한 정보에 기초하여 대기 작업 리스트를 관리하며, 대기 작업 리스트에 기초하여 해당 작업을 처리할 적절한 호스트를 결정할 것이다. The receiving unit 210 receives information on a job to be processed from the client 101. [ The receiving unit 210 can be requested to process a plurality of jobs from the plurality of clients 101. The job processing device 200 manages the waiting job list based on the information about the jobs received by the receiving unit 210 , And will determine the appropriate host to process the job based on the queued job list.

정보 획득부(220)는 호스트 상태 정보 및 네트워크 상태 정보를 획득한다. The information obtaining unit 220 obtains host status information and network status information.

호스트 상태 정보는 각각의 호스트가 작업을 처리하는데 소요되는 시간을 나타내는 정보이다. 호스트 상태 정보는 호스트에서의 평균 작업 처리 시간 및 대기 중인 작업의 개수에 기초하여 결정될 수 있다. 예를 들어, 호스트 상태 정보를 작업 전송 예상 시간(Expected Job Transfer Time, 이하, EJTT)로 표현할 수 있으며, EJTT는 다음의 수학식 1에 의하여 계산될 수 있다. The host status information is information indicating the time required for each host to process the task. The host status information can be determined based on the average job processing time at the host and the number of waiting jobs. For example, the host status information may be expressed as Expected Job Transfer Time (EJTT), and EJTT can be calculated by the following equation (1).

[수학식 1][Equation 1]

EJTT = 평균 작업 처리 시간(average job execution time) × (대기 작업의 수 -1) EJTT = average job execution time × (number of waiting jobs -1)

평균 작업 처리 시간을 계산함에 있어서 가장 최근에 처리된 작업에 대하여 가중치를 부여할 수 있으며, 이 때 가중치는 가장 최근에 처리된 작업이 호스트의 메모리(또는, CPU)를 점유한 정도에 기초하여 결정될 수 있다. 다음의 수학식 2는 평균 작업 처리 시간에 관한 일 예이다. In calculating the average task processing time, the most recently processed task may be weighted, where the weight is determined based on the degree of occupancy of the most recently processed task by the host's memory (or CPU) . Equation (2) is an example of the average work processing time.

[수학식 2]&Quot; (2) "

Wnew ← Wold(1-a)+Wlast ×aW new? W old (1-a) + W last? A

Wnew: 호스트의 현재 평균 작업 시간W new : the current average working time of the host

Wold: 호스트의 직전 평균 작업 시간W old : the average time before the host was last run

Wlsat: 마지막 작업의 처리 시간W lsat : Processing time of the last operation

a: 마지막 작업을 처리할 때 메모리 점유율a: memory occupancy when processing the last operation

네트워크 상태 정보는 클라이언트(101)로부터 호스트(104)까지 데이터를 전송하는데 소요되는 시간과 패킷 손실율에 기초하여 결정될 수 있다. 일 예로, 네트워크 상태 정보는 예상 네트워크 지연(Expected Network Delay, 이하, ENT)로 표현될 수 있으며, ENT는 다음의 수학식 3으로 계산될 수 있다. The network status information can be determined based on the time required to transmit data from the client 101 to the host 104 and the packet loss rate. For example, the network state information may be expressed as an Expected Network Delay (ENT), and ENT may be calculated by Equation (3).

[수학식 3]&Quot; (3) "

ENT = 평균 네트워크 지연 * 현재 작업의 패킷 수 / (1-패킷 손실율)ENT = Average network delay * Number of packets in current job / (1-packet loss rate)

하나의 작업은 복수의 패킷으로 구성될 수 있으며, 평균 네트워크 지연은 처리(processing), 큐(queing), 대기(transmission), 지연(propagation)과 같이 패킷이 클라이언트에서 호스트(104)에 도달할 때까지 네트워크 상에서 소요되는 시간 중 적어도 하나를 포함할 수 있다. One task may be comprised of a plurality of packets, and the average network delay may be determined when a packet arrives at the host 104 from the client, such as processing, queuing, transmission, And a time required on the network up to < RTI ID = 0.0 > a < / RTI >

호스트 결정부(230)는 호스트 상태 정보 및 네트워크 상태 정보에 기초하여 작업을 처리할 호스트를 결정한다. The host determination unit 230 determines a host to process the job based on the host status information and the network status information.

호스트 결정부(230)는 호스트 상태 정보 및 네트워크 상태 정보에 기초하여 각각의 호스트에 대한 점수를 산정할 수 있으며, 이 때 작업의 종류에 따라 호스트 상태 정보 및 네트워크 상태 정보에 대한 가중치를 변경할 수 있다. 일 예로, 대기 중인 작업이 네트워크 상태에 민감한 작업인 경우 네트워크 상태 정보에 더 높은 가중치를 부여하고, 대기 중인 작업이 데이터의 처리 속도에 민감한 작업인 경우 호스트 상태 정보에 더 높은 가중치를 부여할 수 있다. The host determining unit 230 may calculate the score for each host based on the host status information and the network status information. At this time, the host determining unit 230 may change the weight values of the host status information and the network status information according to the type of the job . For example, if a queued job is a network-sensitive job, it may give a higher weight to the network status information, and a higher weight may be given to the host status information if the queued job is sensitive to the processing speed of the data .

호스트 결정부(230)는 계산된 호스트 점수와 소정의 기준과 비교하여 기준을 만족하는 호스트가 존재하지 않는 경우 기준을 만족하는 호스트가 발견될 때까지 해당 작업의 처리를 중지할 수 있다. The host determining unit 230 compares the calculated host score with a predetermined criterion, and if there is no host satisfying the criterion, the host deciding unit 230 can stop processing the corresponding task until a host satisfying the criterion is found.

호스트 결정부(230)는 기준을 만족하는 호스트가 존재할 경우, 기준을 만족하는 호스트 중 점수가 가장 높은 호스트에 작업을 할당하거나, 점수가 낮더라도 대기 작업이 없는 호스트에 작업을 할당할 수 있다. When there is a host satisfying the criterion, the host determining unit 230 can assign the task to the host having the highest score among the hosts satisfying the criterion, or assign the task to the host having no waiting task even if the score is low.

일 예로, 호스트 결정부(230)에서 산정한 호스트의 점수가 다음의 표 1과 같다고 가정해보자. As an example, suppose that the score of the host calculated by the host determination unit 230 is as shown in Table 1 below.

호스트 IDHost ID 호스트 랭킹(점수)Host Ranking (score) EJTTEJTT ENTENT 대기 작업 수Number of queued jobs AA 1(30)1 (30) 2020 1010 22 BB 2(40)2 (40) 2020 2020 00 CC 3(50)3 (50) 3030 2020 1One

표 1에서는 설명의 편의를 위하여, EJTT와 ENT의 합에 따라 호스트 점수를 계산하며, 호스트 점수는 호스트간의 랭킹을 나타내는 것으로 가정한다. 이 때, EJTT와 ENT의 합이 작을 수록 해당 호스트의 랭킹이 높아지는 것으로 가정한다. 또한, 호스트 결정부(230)는 EJTT와 ENT의 합이 45 이하인 호스트에만 작업을 할당하는 것으로 가정한다. In Table 1, for convenience of explanation, the host score is calculated according to the sum of EJTT and ENT, and it is assumed that the host score represents the ranking between the hosts. In this case, it is assumed that the smaller the sum of EJTT and ENT, the higher the ranking of the host. It is also assumed that the host determining unit 230 assigns a task only to a host whose sum of EJTT and ENT is 45 or less.

따라서, 호스트 결정부(230)는 호스트 A와 호스트 B 중 하나에 작업을 할당한다. 이 때, 호스트 B의 랭킹이 호스트 A보다 낮지만 호스트 B는 대기 중인 작업이 없기 때문에 호스트 결정부(230)는 호스트 B에 해당 작업을 할당할 수 있다. 또한, 실시예에 따라서는 대기 작업 수와 무관하게 랭킹이 높은 호스트 A에 작업을 할당할 수도 있다. Accordingly, the host determination unit 230 assigns a task to either host A or host B. [ At this time, since the ranking of the host B is lower than that of the host A, but the host B does not have a waiting job, the host determining unit 230 can assign the task to the host B. In addition, according to the embodiment, the task can be assigned to the host A having a high ranking regardless of the number of waiting tasks.

전송부(240)는 작업을 처리할 호스트로 작업의 처리에 필요한 정보를 전송한다. 전송부(240)는 호스트에 대응하는 스위치 또는 라우터에 해당 작업의 처리에 필요한 정보를 전송할 수 있으며, 이 경우 작업의 처리에 필요한 정보는 스위치 또는 라우터를 거쳐 해당하는 호스트에 전달될 것이다. The transmitting unit 240 transmits information necessary for processing the job to the host to process the job. The transmitting unit 240 may transmit information necessary for processing a job to a switch or a router corresponding to the host. In this case, information necessary for processing the job may be transmitted to the corresponding host via a switch or a router.

이하에서는, 시간 순서에 따라 작업 처리 장치(200)의 각 모듈에서의 동작을 설명한다. 설명의 편의를 위하여 모니터링 단계, 작업 할당 단계 및 작업 처리 단계로 구분하여 설명하기로 한다. Hereinafter, the operation of each module of the work processing device 200 according to the time sequence will be described. For the sake of convenience of description, the monitoring step, the task allocation step, and the job processing step will be separately described.

[모니터링 단계][Monitoring step]

전송부(240)는 작업 처리 시스템(100)의 상태를 확인하기 위한 모니터링 메시지를 호스트에 주기적으로 전송한다. 이 때, 작업 처리 장치(200)는 대기중인 작업의 수에 기초하여 모니터링 메시지의 전송 주기를 제어할 수 있다. 즉, 대기 중인 작업의 수가 임계치 이상인 경우 작업 처리 시스템(100)의 상태를 신속하게 확인하기 위하여, 모니터링 메시지의 전송 주기를 짧게한다(예를 들면, 0.1CP/sec). 반면, 대기 중인 작업의 수가 임계치 이하인 경우 일반적인 상태로 보아 전송 주기를 길게(예를 들면, 1CP/sec)하여 시스템 오버헤드를 줄인다. The transmission unit 240 periodically transmits a monitoring message to the host to confirm the status of the work processing system 100. [ At this time, the work processing apparatus 200 can control the transmission period of the monitoring message based on the number of waiting jobs. That is, the transmission period of the monitoring message is shortened (for example, 0.1 CP / sec) in order to quickly confirm the status of the job processing system 100 when the number of waiting jobs is equal to or higher than the threshold. On the other hand, when the number of queued jobs is below the threshold value, the transmission period is long (for example, 1 CP / sec) in a normal state, thereby reducing the system overhead.

전송부(240)가 모니터링 메시지를 전송하는 과정에 관한 알고리즘은 도 3에서 후술한다.An algorithm for the transmission of the monitoring message by the transmission unit 240 will be described later with reference to FIG.

수신부(210)는 모니터링 메시지를 수신한 호스트로부터 응답 메시지를 수신한다. 응답 메시지에는 현재 호스트의 상태를 나타낼 수 있는 정보가 포함될 수 있다. 일 예로, 응답 메시지에는 호스트 ID, 평균 작업 시간, 대기 작업 수가 포함될 수 있다. The receiving unit 210 receives a response message from the host that has received the monitoring message. The response message may include information that can indicate the current state of the host. As an example, the response message may include the host ID, the average work time, and the number of wait jobs.

정보 획득부(220)는 응답 메시지에 기초하여 네트워크 상태 정보 및 호스트 상태 정보를 획득하여 시스템(즉, 클라우드 시스템) 상태 정보(Current Status of Cloud, 이하 CSC)를 갱신한다. 정보 획득부(220)는 모니터링 메시지를 전송한 시간과 응답 메시지를 수신한 시간간의 차이 및 응답 메시지의 수신율에 기초하여 네트워크 상태 정보를 획득하고, 응답 메시지에 포함된 정보에 기초하여 호스트 상태 정보를 획득할 수 있다. 정보 획득부(220)가 갱신하는 CSC에 관한 일 예는 도 5에서 후술한다. The information obtaining unit 220 obtains the network state information and the host state information based on the response message and updates the system (i.e., the cloud system) status information (hereinafter, referred to as CSC). The information obtaining unit 220 obtains the network status information based on the difference between the time at which the monitoring message was transmitted and the time at which the response message was received and the reception rate of the response message and stores the host status information on the basis of the information included in the response message Can be obtained. An example of the CSC updated by the information obtaining unit 220 will be described later with reference to FIG.

[작업 할당 단계][Job Allocation Phase]

호스트 결정부(230)는 호스트 상태 정보 및 네트워크 상태 정보에 기초하여 작업을 처리할 호스트를 결정한다. The host determination unit 230 determines a host to process the job based on the host status information and the network status information.

호스트 결정부(230)는 호스트 상태 정보 및 네트워크 상태 정보에 기초하여 호스트 별 점수를 산정하고, 기준을 만족하는 호스트 중 하나에 작업을 할당한다. 호스트 결정부(230)에서 작업을 처리할 호스트를 결정하는 과정에 관한 알고리즘의 예는 도 4에서 후술한다. The host determining unit 230 calculates a score for each host based on the host status information and the network status information, and assigns the job to one of the hosts satisfying the criteria. An example of an algorithm regarding a process of determining a host to process a job in the host determination unit 230 will be described later with reference to FIG.

[작업 처리 단계][Job processing step]

전송부(240)는 호스트 결정부(230)에서 결정한 호스트의 IP로 목적지 IP를 변경한 후 연결 요청 메시지를 전송한다. 이 때, 소스 IP는 여전히 클라이언트의 IP로 유지할 수 있다. The transmitting unit 240 changes the destination IP to the IP of the host determined by the host determining unit 230 and transmits a connection request message. At this time, the source IP can still be maintained as the IP of the client.

수신부(210)는 해당 호스트로부터 연결 수락 메시지를 수신한다. The receiving unit 210 receives a connection acceptance message from the host.

수신부(210)는 호스트로부터 클라이언트로 전송되는 메시지를 인터셉트하여 소스 IP를 작업 처리 장치(200)의 IP로 변경한 후 클라이언트에 포워딩한다. 따라서, 해당 메시지를 수신한 클라이언트는 해당 메시지가 작업 처리 장치(200)로부터 수신된 것으로 해석하고 응답 메시지를 전송할 것이다.(즉, 세션의 형성)The receiving unit 210 intercepts a message transmitted from the host to the client, changes the source IP to the IP of the work processing device 200, and forwards the source IP to the client. Accordingly, the client receiving the message will interpret the message as received from the work processing device 200 and send a response message (i.e., the formation of the session).

전송부(240)는 클라이언트가 요청한 작업에 관한 정보(예를 들면, 작업에 필요한 패킷)를 호스트에 전송한다. The transmitting unit 240 transmits to the host information (e.g., a packet necessary for the job) about the job requested by the client.

호스트는 해당 작업을 처리한 후 수신부(210)로 전송한다. The host processes the corresponding job and transmits the processed job to the receiving unit 210.

전송부(240)는 작업 처리 결과를 클라이언트에 재전송한다. The transmission unit 240 retransmits the job processing result to the client.

도 3은 본 발명의 일 실시예에 따른 작업 처리 장치(200)에서 모니터링 단계를 수행하는데 사용되는 알고리즘의 일 예를 나타내는 도면이다. 3 is a diagram showing an example of an algorithm used to perform the monitoring step in the work processing apparatus 200 according to an embodiment of the present invention.

2라인(310)을 참고하면, 대기 중인 작업의 수(q)가 '0'이상인지를 확인한다. 대기 중인 작업의 수가 '0'이상이라면, 처리하여야 할(또는, 할당되지 않은) 작업이 존재함을 의미한다.2 line 310, it is checked whether the number of queued jobs (q) is equal to or larger than "0". If the number of waiting jobs is greater than zero, it means that there are jobs to be processed (or unallocated).

3라인(321)~4라인(322)을 참고하면, 응답 메시지를 수신하고, 응답 메시지에 기초하여 시스템(즉, 클라우드 시스템) 상태 정보(Current status of Cloud, 이하, CSC)를 갱신한다. 3 line 321 to line 322, it receives the response message and updates the system (i.e., the cloud system) status information (i.e., the CSC) based on the response message.

8라인(330)을 참고하면, 모니터링 메시지의 전송 주기를 1.0CP/sec로 설정한다. 8 line 330, the transmission period of the monitoring message is set to 1.0 CP / sec.

9라인(342) ~ 10라인(344)를 참고하면, 대기 중인 작업의 개수가 임계치 이상이면 모니터링 메시지의 전송 주기를 0.1CP/sec로 변경한다. 따라서, 대기 중인 작업의 개수가 임계치 이상일 때는 모니터링 메시지의 전송 주기를 1/10로 짧게하여 작업 처리 장치(200)가 네트워크 및 호스트의 상태를 빠르게 인지할 수 있도록 한다. Referring to the 9th line (342) to the 10th line (344), if the number of queued jobs is equal to or greater than the threshold value, the transmission period of the monitoring message is changed to 0.1 CP / sec. Accordingly, when the number of queued jobs is equal to or greater than the threshold value, the transmission period of the monitoring message is shortened to 1/10 so that the job processing device 200 can quickly recognize the status of the network and the host.

도 4은 본 발명의 일 실시예에 따른 작업 처리 장치(200)에서 작업 할당 단계를 수행하는데 사용되는 알고리즘의 일 예를 나타내는 도면이다. FIG. 4 is a diagram illustrating an example of an algorithm used to perform the job assignment step in the job processing apparatus 200 according to an embodiment of the present invention.

1라인(411)을 참고하면, 처리할 작업(j)을 선택한다. 처리할 작업은 FIFO에 따라 선택될 수 있다. 즉, 먼저 요청된 작업을 먼저 선택할 수 있다. Referring to the first line 411, the job j to be processed is selected. The task to be processed can be selected according to the FIFO. That is, the requested operation can be selected first.

2라인(412)를 참고하면, 해당 작업을 처리할 호스트의 점수를 산정한다. 도 4에서는 호스트의 점수를 평균 응답 시간(Average Response Time, 이하, ART)로 표현하였으며, 네트워크 상태 정보와 호스트 상태 정보에 기초하여 산정된다. Referring to the second line 412, the score of the host to process the job is calculated. In FIG. 4, the score of the host is expressed by an average response time (ART) and is calculated based on the network status information and the host status information.

4라인(422) ~ 5라인(424)를 참고하면, 임계치 이하의 ART를 갖는 호스트가 존재하는지를 판단하고, 임계치 이하의 ART를 갖는 호스트가 존재하지 않는다면 작업(j)를 할당하지 않고, 임계치 이하의 ART를 갖는 호스트가 존재할 때까지 대기한다. 4 lines 422 to 424, it is determined whether or not there is a host having an ART below the threshold value. If there is no host having an ART below the threshold value, the task j is not allocated, RTI ID = 0.0 > ART. ≪ / RTI >

7라인(432) ~ 8라인(434)을 참고하면, 임계치 이하의 ART를 갖는 호스트 중 대기 중인 작업이 없는 호스트가 존재한다면 해당 호스트에 작업(j)를 할당한다. 7 line 432 to line 434, if there is a host having no waiting job among the hosts having the ART below the threshold value, the task (j) is assigned to the host.

10라인(440)을 참고하면, 임계치 이하의 ART를 갖는 모든 호스트가 대기 중인 작업이 존재한다면, 가장 적절한 호스트(예를 들면, ART가 가장 낮은 호스트)에 해당 작업(j)을 할당한다. 10 line 440, if there are jobs waiting for all hosts with an ART below the threshold, the task j is assigned to the most appropriate host (e. G., The lowest ART).

도 5는 본 발명의 일 실시예에 따른 시스템 상태 정보(CSC)에 관한 일 예를 나타내는 도면이다. 5 is a diagram illustrating an example of system status information (CSC) according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 CSC는 Time 필드(510), C_ID 필드(520), Delay 필드(530), Loss 필드(540), Execution time필드(550) 및 Waiting Jobs 필드(560)을 포함할 수 있다. The CSC according to an embodiment of the present invention includes a time field 510, a C_ID field 520, a delay field 530, a loss field 540, an execution time field 550 and a waiting jobs field 560 .

Time 필드(510)는 호스트로부터 메시지를 수신한 시간을 나타낸다. The Time field 510 indicates the time when a message is received from the host.

C_ID 필드(520)는 호스트 클라우드의 식별 정보를 포함한다. The C_ID field 520 contains identification information of the host cloud.

Delay 필드(530)는 클라이언트로부터 호스트까지 데이터를 전송할 때 예상되는 지연 시간을 나타낸다. 지연 시간은 모니터링 메시지와 응답 메시지의 송/수신 시간을 기초로 결정될 수 있다. The Delay field 530 indicates the expected delay time when transmitting data from the client to the host. The delay time can be determined based on the transmission / reception time of the monitoring message and the response message.

Loss 필드(540)는 패킷 손실율을 나타낸다. 패킷 손실율은 모니터링 메시지와 응답 메시지의 송/수신 비율을 기초로 결정될 수 있다. The Loss field 540 indicates the packet loss rate. The packet loss rate can be determined based on the transmission / reception ratio of the monitoring message and the response message.

Execution time 필드(550)는 해당 호스트에서 작업을 처리하는데 소요되는 시간을 나타낸다. The execution time field 550 indicates the time required to process the task at the host.

Waiting Jobs 필드(560)는 해당 호스트에 대기 중인 작업의 수를 나타낸다. The Waiting Jobs field 560 indicates the number of jobs waiting on the host.

Execution time 필드(550)와 Waiting Jobs 필드(560)는 호스트의 현재 상태를 확인하는데 중요한 역할을 수행한다. The Execution time field 550 and the Waiting Jobs field 560 play an important role in confirming the current state of the host.

도 5를 참고하면, ID가 "Host002"인 호스트는 지연 시간이 "0.16"으로 가장 짧고 패킷 손실율이 "0.04%"로 가장 작다. 또한, 작업 실행 시간이 '2.11'로 가장 짧고 대기중인 작업의 수는 '5'개로 평균에 해당한다. 특히, 9:34:12:45에 수신된 응답 메시지와 비교할 때 호스트의 상태가 더 좋아졌음을 확인할 수 있다. 따라서, 호스트 결정부(230)는 "Host002"인 호스트에 해당 작업을 할당할 수 있다. Referring to FIG. 5, a host with ID "Host002" has the smallest delay time of "0.16" and the smallest packet loss rate of "0.04%". Also, the task execution time is the shortest with '2.11' and the number of waiting jobs is '5'. In particular, it can be confirmed that the status of the host is improved when compared with the response message received at 9:34:12:45. Accordingly, the host determination unit 230 can assign the task to the host "Host002 ".

도 6은 본 발명의 일 실시예에 따른 작업 처리 방법에 관한 흐름도를 나타낸다. 6 is a flowchart illustrating a job processing method according to an embodiment of the present invention.

단계 s610에서는, 작업 처리 장치(100)에 대기 중인 작업의 수가 임계치를 초과하는지를 판단한다. 대기 중인 작업의 수가 임계치를 초과하는 경우, 단계 s622를 수행하고, 대기 중인 작업의 수가 임계치 이하인 경우 단계 s624를 수행한다.  In step s610, it is determined whether the number of jobs waiting in the job processing apparatus 100 exceeds a threshold value. If the number of waiting jobs exceeds the threshold value, the step s622 is performed, and if the number of waiting jobs is below the threshold value, the step s624 is performed.

단계 s622에서는, 전송 주기를 짧게하여(예를 들면, 0.1CP/sec) 호스트에 모니터링 메시지를 전송한다. In step s622, the monitoring period is shortened (for example, 0.1 CP / sec) and the monitoring message is transmitted to the host.

단계 s624에서는, 전송 주기를 길게하여(예를 들면, 1CP/sec) 호스트에 모니터링 메시지를 전송한다. In step s624, the monitoring period is longer (for example, 1 CP / sec) and the monitoring message is transmitted to the host.

단계 s630에서는, 호스트로부터 응답 메시지를 수신한다. In step s630, a response message is received from the host.

단계 s640에서는, 응답 메시지에 기초하여 네트워크의 상태를 나타내는 네트워크 상태 정보와 호스트의 상태를 나타내는 호스트 상태 정보를 획득하고, 이에 기초하여 호스트에 대한 점수를 산정한다. In step s640, based on the response message, the network status information indicating the status of the network and the host status information indicating the status of the host are acquired, and the score for the host is calculated based on the obtained network status information.

단계 s650에서는, 호스트 점수에 기초하여 특정 기준을 만족하는 호스트가 존재하는지를 판단한다. 특정 기준을 만족하는 호스트가 존재하는 경우 단계 s660을 수행하고, 그렇지 않은 경우 단계 s650을 다시 수행하여 기준을 만족하는 호스트가 존재할 때까지 대기한다. In step s650, based on the host score, it is determined whether there is a host satisfying a specific criterion. If there is a host satisfying a specific criterion, step s660 is performed. Otherwise, step s650 is repeated to wait until there is a host satisfying the criterion.

단계 s660에서는, 특정 기준을 만족하는 호스트 중 대기 작업이 없는 호스트가 존재하는지를 판단한다. In step s660, it is determined whether there is a host that does not have a waiting job among the hosts satisfying the specific criterion.

기준을 만족하는 호스트 중 대기 작업이 없는 호스트가 존재하는 경우 단계 s662를 수행하여 해당 호스트에 작업을 할당한다. 그러나, 기준을 만족하는 모든 호스트에 대기 작업이 존재하는 경우 단계 s664를 수행하여 점수가 가장 높은 호스트에 해당 작업을 할당한다. If there is a host that does not have a waiting job among the hosts satisfying the criteria, step s662 is performed to allocate the job to the host. However, if there are waiting jobs in all the hosts satisfying the criteria, step s664 is performed to allocate the jobs to the host having the highest score.

본 발명의 이점 및/또는 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성요소를 지칭한다.BRIEF DESCRIPTION OF THE DRAWINGS The advantages and / or features of the present invention, and how to accomplish them, will become apparent with reference to the embodiments described in detail below with reference to the accompanying drawings. It should be understood, however, that the invention is not limited to the disclosed embodiments, but is capable of many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, To fully disclose the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout the specification.

지금까지 본 발명에 따른 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서는 여러 가지 변형이 가능함은 물론이다. 그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허 청구의 범위뿐 아니라 이 특허 청구의 범위와 균등한 것들에 의해 정해져야 한다.While the present invention has been described in connection with what is presently considered to be practical exemplary embodiments, it is to be understood that the invention is not limited to the disclosed embodiments. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined by the scope of the appended claims and equivalents thereof.

이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명 사상은 아래에 기재된 특허청구범위에 의해서만 파악되어야 하고, 이의 균등 또는 등가적 변형 모두는 본 발명 사상의 범주에 속한다고 할 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, Modification is possible. Accordingly, the spirit of the present invention should be understood only in accordance with the following claims, and all equivalents or equivalent variations thereof are included in the scope of the present invention.

101: 클라이언트
200: 작업 처리 장치
210: 수신부
220:정보 획득부
230: 호스트 결정부
240: 전송부
101: Client
200: work processing device
210:
220: Information obtaining unit
230:
240:

Claims (15)

작업 처리 장치에서, 클라이언트로부터 처리할 작업에 대한 정보를 수신하는 단계;
상기 작업 처리 장치에서, 각각의 호스트가 작업을 처리하는데 소요되는 시간을 나타내는 호스트 상태 정보 및 상기 클라이언트와 상기 각각의 호스트간의 네트워크의 상태를 나타내는 네트워크 상태 정보를 획득하는 단계;
상기 작업 처리 장치에서, 상기 호스트 상태 정보 및 네트워크 상태 정보에 기초하여, 상기 작업을 처리할 호스트를 결정하는 단계; 및
상기 작업 처리 장치에서, 상기 결정된 호스트로 상기 작업의 처리에 필요한 정보를 전송하는 단계를 포함하고,
상기 정보를 획득하는 단계는,
상기 네트워크 및 상기 각각의 호스트의 상태를 확인하기 위한 모니터링 메시지를 상기 각각의 호스트로 전송하는 단계;
상기 전송에 대응하여, 상기 각각의 호스트로부터 대기 중인 작업의 양 및 평균 작업 처리 시간에 관한 정보가 포함된 응답 메시지를 수신하는 단계; 및
상기 응답 메시지에 기초하여, 상기 호스트 상태 정보 및 상기 네트워크 상태 정보를 획득하는 단계를 포함하되,
상기 모니터링 메시지를 전송하는 단계는, 대기 중 작업의 수가 임계치 이상인 경우, 모니터링 메시지의 전송 주기를 짧게 조절하고, 상기 대기 중 작업의 수가 임계치 미만인 경우, 모니터링 메시지의 전송 주기를 길게 조절하는 것을 특징으로 하는 작업 처리 방법.
In the job processing apparatus, receiving information on a job to be processed from a client;
The method comprising: obtaining host status information indicating a time required for each host to process a job and network status information indicating a status of a network between the client and each host in the job processing apparatus;
In the work processing apparatus, determining a host to process the job based on the host status information and the network status information; And
And transmitting, in the job processing apparatus, information necessary for processing the job to the determined host,
The step of acquiring the information comprises:
Sending a monitoring message to each host to confirm the status of the network and each host;
Receiving, in response to the transmission, a response message including information on the amount of waiting jobs and the average job processing time from each of the hosts; And
And obtaining the host status information and the network status information based on the response message,
The step of transmitting the monitoring message may shorten the transmission period of the monitoring message if the number of waiting jobs is equal to or greater than the threshold and adjust the transmission period of the monitoring message to be longer when the number of waiting jobs is less than the threshold. To be processed.
삭제delete 삭제delete 제 1항에 있어서, 상기 호스트 상태 정보는,
상기 호스트에서 하나의 작업을 완료하는데 소요되는 평균 시간인 평균 작업 처리 시간과 상기 호스트에서 처리해야할 작업의 개수에 관한 정보에 기초하여 결정되는 것을 특징으로 하는 작업 처리 방법.
2. The method of claim 1,
Based on information about an average task processing time which is an average time required for completing one task in the host and a number of tasks to be processed by the host.
제 4항에 있어서, 상기 평균 작업 처리 시간은,
최근에 처리한 작업의 처리 시간에 가중치를 부여하여 결정되는 것을 특징으로 하는 작업 처리 방법.
5. The method according to claim 4,
Wherein a weight is assigned to a processing time of a recently processed work.
제 5항에 있어서, 상기 가중치는,
상기 최근에 처리한 작업이 상기 호스트에서 차지한 메모리 점유율에 기초하여 결정되는 것을 특징으로 하는 작업 처리 방법.
6. The method of claim 5,
Wherein the recently processed work is determined based on a memory occupancy rate in the host.
제 1항에 있어서, 상기 네트워크 상태 정보는,
상기 클라이언트로부터 상기 호스트까지 데이터가 전송되는데 소요되는 평균 시간인 평균 네트워크 지연 정보, 상기 클라이언트가 요청한 작업의 크기 및 데이터의 손실율에 기초하여 결정되는 것을 특징으로 하는 작업 처리 방법.
2. The method of claim 1,
The average network delay information which is an average time required for data transmission from the client to the host, the size of the job requested by the client, and the loss rate of the data.
제 1항에 있어서, 상기 호스트를 결정하는 단계는,
상기 클라이언트로부터 요청된 작업의 특성에 기초하여, 상기 호스트 상태 정보 및 상기 네트워크 상태 정보의 가중치를 변경하고, 변경된 가중치에 기초하여 상기 요청된 작업을 처리할 호스트를 결정하는 단계를 포함하는 것을 특징으로 하는 작업 처리 방법.
2. The method of claim 1, wherein determining the host comprises:
Changing a weight of the host status information and the network status information based on a characteristic of the job requested from the client and determining a host to process the requested job based on the changed weight, To be processed.
제 1항에 있어서, 상기 호스트를 결정하는 단계는,
상기 호스트 상태 정보 및 상기 네트워크 상태 정보에 기초하여, 각각의 호스트에 대한 점수를 계산하는 단계; 및
상기 계산된 점수가 임계치 이상인 호스트가 존재하지 않으면 상기 작업의 처리를 일시 중지하는 단계를 포함하는 것을 특징으로 하는 작업 처리 방법.
2. The method of claim 1, wherein determining the host comprises:
Calculating a score for each host based on the host status information and the network status information; And
And suspending the processing of the job if the calculated score is not equal to or greater than a threshold value.
제 9항에 있어서, 상기 호스트를 결정하는 단계는,
상기 계산된 점수가 임계치 이상인 호스트가 존재하면, 상기 계산된 점수가 임계치 이상인 호스트 중 대기 중인 작업이 없는 호스트에 상기 작업의 처리를 요청하는 단계를 더 포함하는 것을 특징으로 하는 작업 처리 방법.
10. The method of claim 9, wherein determining the host comprises:
Further comprising the step of requesting a host having no job waiting among the hosts having the calculated score equal to or higher than a threshold value to process the job if the calculated score is equal to or greater than a threshold value.
제 9항에 있어서, 상기 호스트를 결정하는 단계는,
상기 계산된 점수가 임계치 이상인 호스트가 존재하면, 상기 계산된 점수가 임계치 이상인 호스트 중 상기 계산된 점수가 가장 높은 호스트로 상기 작업의 처리를 요청하는 단계를 더 포함하는 것을 특징으로 하는 작업 처리 방법.
10. The method of claim 9, wherein determining the host comprises:
And requesting processing of the job to a host having the highest score among the hosts having the calculated score equal to or higher than the threshold, if the host having the calculated score exceeds the threshold.
제 1항에 있어서, 상기 작업에 필요한 정보를 전송하는 단계는,
상기 결정된 호스트에 대응하는 라우터로 상기 작업의 처리에 필요한 정보를 전송하는 단계를 포함하는 것을 특징으로 하는 작업 처리 방법.
The method as claimed in claim 1,
And transmitting information necessary for processing the job to the router corresponding to the determined host.
제 12항에 있어서, 상기 방법은,
상기 라우터로부터 상기 작업의 처리 결과를 수신하는 단계; 및
상기 수신된 처리 결과를 상기 클라이언트에 전송하는 단계를 더 포함하는 것을 특징으로 하는 작업 처리 방법.
13. The method of claim 12,
Receiving a processing result of the job from the router; And
And transmitting the received processing result to the client.
제 1항에 있어서, 상기 네트워크는,
SDN(Software-Defined Networking)인 것을 특징으로 하는 작업 처리 방법.
The network according to claim 1,
SDN (Software-Defined Networking).
클라이언트로부터 처리할 작업에 대한 정보를 수신하는 수신부;
각각의 호스트가 작업을 처리하는데 소요되는 시간을 나타내는 호스트 상태 정보 및 상기 클라이언트와 상기 각각의 호스트간의 네트워크의 상태를 나타내는 네트워크 상태 정보를 획득하는 정보 획득부;
상기 호스트 상태 정보 및 네트워크 상태 정보에 기초하여, 상기 작업을 처리할 호스트를 결정하는 결정부; 및
상기 결정된 호스트로 상기 작업의 처리에 필요한 정보를 전송하는 전송부를 포함하고,
상기 정보 획득부는,
상기 네트워크 및 상기 각각의 호스트의 상태를 확인하기 위한 모니터링 메시지를 상기 각각의 호스트로 전송하고, 상기 전송에 대응하여, 상기 각각의 호스트로부터 대기 중인 작업의 양 및 평균 작업 처리 시간에 관한 정보가 포함된 응답 메시지를 수신하고, 상기 응답 메시지에 기초하여, 상기 호스트 상태 정보 및 상기 네트워크 상태 정보를 획득하되, 대기 중 작업의 수가 임계치 이상인 경우 모니터링 메시지의 전송 주기를 짧게 조절하고, 상기 대기 중 작업의 수가 임계치 미만인 경우, 모니터링 메시지의 전송 주기를 길게 조절하는 것을 특징으로 하는 작업 처리 장치.
A receiving unit for receiving information on a job to be processed from a client;
An information obtaining unit for obtaining host status information indicating a time required for each host to process a job and network status information indicating a status of the network between the client and each of the hosts;
A determining unit that determines a host to process the job based on the host status information and the network status information; And
And a transfer unit for transferring information necessary for processing the job to the determined host,
The information obtaining unit obtains,
A monitoring message for confirming the status of the network and each of the hosts is transmitted to each of the hosts, and in response to the transmission, information about the amount of waiting jobs and the average job processing time from each host is included Wherein the host status information and the network status information are obtained based on the response message and the transmission period of the monitoring message is shortened when the number of waiting jobs is equal to or greater than the threshold, Wherein when the number of the monitoring messages is less than the threshold, the transmission period of the monitoring message is adjusted to be longer.
KR1020170138531A 2017-10-24 2017-10-24 Method and apparatus for processing tasks Expired - Fee Related KR101957239B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170138531A KR101957239B1 (en) 2017-10-24 2017-10-24 Method and apparatus for processing tasks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170138531A KR101957239B1 (en) 2017-10-24 2017-10-24 Method and apparatus for processing tasks

Publications (1)

Publication Number Publication Date
KR101957239B1 true KR101957239B1 (en) 2019-03-12

Family

ID=65800094

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170138531A Expired - Fee Related KR101957239B1 (en) 2017-10-24 2017-10-24 Method and apparatus for processing tasks

Country Status (1)

Country Link
KR (1) KR101957239B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112838980A (en) * 2020-12-30 2021-05-25 北京奇艺世纪科技有限公司 Message processing method, system, device, electronic equipment and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005352697A (en) * 2004-06-09 2005-12-22 Canon Inc Computer system and job assignment method in the system
JP2006293730A (en) * 2005-04-12 2006-10-26 Nec Corp Job cooperation system, method, program, and recording medium
JP4034312B2 (en) * 2003-03-24 2008-01-16 富士通株式会社 Distributed processing control device, distributed processing control method, and distributed processing control program
KR20110064179A (en) * 2009-12-07 2011-06-15 성균관대학교산학협력단 Priority-based message scheduling method and apparatus therefor for multi-agent system
JP2013061700A (en) * 2011-09-12 2013-04-04 Sony Corp Information processor, information processing method, recording medium, and information processing system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4034312B2 (en) * 2003-03-24 2008-01-16 富士通株式会社 Distributed processing control device, distributed processing control method, and distributed processing control program
JP2005352697A (en) * 2004-06-09 2005-12-22 Canon Inc Computer system and job assignment method in the system
JP2006293730A (en) * 2005-04-12 2006-10-26 Nec Corp Job cooperation system, method, program, and recording medium
KR20110064179A (en) * 2009-12-07 2011-06-15 성균관대학교산학협력단 Priority-based message scheduling method and apparatus therefor for multi-agent system
JP2013061700A (en) * 2011-09-12 2013-04-04 Sony Corp Information processor, information processing method, recording medium, and information processing system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112838980A (en) * 2020-12-30 2021-05-25 北京奇艺世纪科技有限公司 Message processing method, system, device, electronic equipment and storage medium
CN112838980B (en) * 2020-12-30 2023-06-13 北京奇艺世纪科技有限公司 Message processing method, system, device, electronic equipment and storage medium

Similar Documents

Publication Publication Date Title
US5918021A (en) System and method for dynamic distribution of data packets through multiple channels
US10374945B1 (en) Application-centric method to find relative paths
CN110022264B (en) Method, access device, and computer-readable storage medium for controlling network congestion
JP5659125B2 (en) Relay device and relay method
US20170118108A1 (en) Real Time Priority Selection Engine for Improved Burst Tolerance
EP3031184B1 (en) Performing quality-of-service on unknown bandwidths through rate estimating tcp congestion controllers
US7315896B2 (en) Server network controller including packet forwarding and method therefor
US10164870B2 (en) Relaxed ordering network
WO2015118429A1 (en) Method and system for supporting packet prioritization at a data network
CN109617810B (en) Data transmission method and device
WO2014021839A1 (en) Bandwidth guarantee and work conservation
CN111343097B (en) Link load balancing method and device, electronic equipment and storage medium
WO2016064704A1 (en) Distributed computing based on deep packet inspection by network devices along network path to computing device
CN118295937A (en) Fine-grained traffic shaping offload for network interface cards
US10965605B2 (en) Communication system, communication control method, and communication apparatus
CN111835849A (en) Method and device for enhancing service capability of access network
CN103841042B (en) Method and device for transmitting data with high operating efficiency
EP4044525B1 (en) Data transmission method and apparatus
US9985886B2 (en) Technologies for network packet pacing during segmentation operations
US20160316022A1 (en) Communication device, communication processing method, and storage medium
WO2015107806A1 (en) Communication apparatus
WO2014155617A1 (en) Communication device, communication method, and communication program
KR101957239B1 (en) Method and apparatus for processing tasks
WO2014157512A1 (en) System for providing virtual machines, device for determining paths, method for controlling paths, and program
US10666565B2 (en) Method to measure relative QOS gains and to reduce the variance in QOS for similar connections for during bandwidth contention

Legal Events

Date Code Title Description
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

D13-X000 Search requested

St.27 status event code: A-1-2-D10-D13-srh-X000

D14-X000 Search report completed

St.27 status event code: A-1-2-D10-D14-srh-X000

PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

E13-X000 Pre-grant limitation requested

St.27 status event code: A-2-3-E10-E13-lim-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

Fee payment year number: 1

St.27 status event code: A-2-2-U10-U11-oth-PR1002

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

PR1001 Payment of annual fee

Fee payment year number: 4

St.27 status event code: A-4-4-U10-U11-oth-PR1001

PR1001 Payment of annual fee

Fee payment year number: 5

St.27 status event code: A-4-4-U10-U11-oth-PR1001

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R11-asn-PN2301

St.27 status event code: A-5-5-R10-R13-asn-PN2301

PC1903 Unpaid annual fee

Not in force date: 20240307

Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

St.27 status event code: A-4-4-U10-U13-oth-PC1903

PC1903 Unpaid annual fee

Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

Not in force date: 20240307

St.27 status event code: N-4-6-H10-H13-oth-PC1903

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000