KR101585160B1 - Distributed Computing System providing stand-alone environment and controll method therefor - Google Patents

Distributed Computing System providing stand-alone environment and controll method therefor Download PDF

Info

Publication number
KR101585160B1
KR101585160B1 KR1020150034545A KR20150034545A KR101585160B1 KR 101585160 B1 KR101585160 B1 KR 101585160B1 KR 1020150034545 A KR1020150034545 A KR 1020150034545A KR 20150034545 A KR20150034545 A KR 20150034545A KR 101585160 B1 KR101585160 B1 KR 101585160B1
Authority
KR
South Korea
Prior art keywords
slave node
application
management unit
slave
distributed
Prior art date
Application number
KR1020150034545A
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 KR1020150034545A priority Critical patent/KR101585160B1/en
Application granted granted Critical
Publication of KR101585160B1 publication Critical patent/KR101585160B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17318Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system

Abstract

The present invention relates to a distributed computing system for providing an independent execution environment, and a method for controlling the system. When computing a single process by distributing the same to a plurality of slave nodes, virtual machines are not installed in each slave node, a source for proceeding the process is dynamically assigned on each occasion, applications executed in the assigned source of each slave are executed in an independent execution environment called as an application container, and each slave node is linked to other slave node required for execution of the applications through tunnelling.

Description

독립실행환경을 제공하는 분산 컴퓨팅 시스템 및 분산 컴퓨팅 시스템의 제어방법{Distributed Computing System providing stand-alone environment and controll method therefor}[0001] The present invention relates to a distributed computing system providing a stand-alone execution environment and a control method of a distributed computing system,

본 발명은 분산 플랫폼에서의 프로세스별 독립운영환경을 제공하기 위한 장치 및 방법에 관한 것으로, 구체적으로 복잡한 프로세스를 각 기능으로 나누어 네트워크로 연결된 분산 컴퓨팅 환경에서 처리할 때, 가상머신에 의하지 않고 프로세스를 처리하는 단말기별로 독립적인 운영환경을 제공하는 장치 및 방법에 관한 것이다. The present invention relates to an apparatus and method for providing an independent operating environment for each process in a distributed platform. Specifically, when a complex process is divided into functions and processed in a networked distributed computing environment, To an apparatus and method for providing an independent operating environment for each terminal to be processed.

분산 컴퓨팅 운영환경은 복잡한 프로세스를 각 기능으로 나누어 네트워크로 연결된 분산 컴퓨팅 환경에서 나누어 처리하는 것을 말한다. A distributed computing operating environment is a process in which a complex process is divided into functions and divided into a networked distributed computing environment.

기존의 분산 컴퓨팅시스템들은 하이퍼바이저를 이용하여 가상머신을 분산 컴퓨팅을 수행하는 각 단말기에 설치하고, 그 가상머신을 이용하여 각 단말기의 운영체제와 독립적인 운영환경을 구현하여 각 프로세스를 처리하고 있다.In existing distributed computing systems, a virtual machine is installed in each terminal that performs distributed computing using a hypervisor, and each process is processed by implementing an operating environment independent of an operating system of each terminal using the virtual machine.

하이퍼바이저란 하나의 호스트 컴퓨터 상에서 동시에 다수의 운영체제(OS)를 구동시킬 수 있도록 하드웨어와 운영체제 사이에 설치되는 얇은 층의 소프트웨어 가상화 플랫폼을 말한다. A hypervisor is a thin layer of software virtualization platform that is installed between the hardware and the operating system to allow multiple operating systems (OSs) to run simultaneously on one host computer.

이러한 하이퍼바이저를 이용하여 여러대의 운영체제에서 호스트 컴퓨터의 프로세서나 메모리와 같은 공유 자원에 접근하는 방법에 대해서 통제하게 된다. These hypervisors control how multiple operating systems access shared resources such as the processor or memory of the host computer.

하이퍼바이저의 역할은 높은 수준의 관리 및 모니터링 도구에 대한 인터페이스를 제공하고, 운영체제 간의 간섭을 못하도록 가상머신(Virtual Machine)에 대한 자원 및 메모리 할당 등을 처리하는 것이다. The role of the hypervisor is to provide interfaces to high-level management and monitoring tools and to handle resources and memory allocations for virtual machines to prevent interference between operating systems.

그러나 이와 같은 하이퍼바이저를 이용한 방법은 가상화 단계에서 발생하는 성능저하와 자원의 할당 및 회수 단계에서 많은 시간과 자원을 소모하게 된다. However, such a hypervisor-based method consumes a lot of time and resources in performance degradation and resource allocation and recovery steps that occur in the virtualization step.

또한, 일반적으로 사용되는 사설 네트워크 가상화는 패킷의 전달 과정에서 불필요한 데이터가 추가되어 네트워크 자원의 낭비와 속도 저하에 영향을 주게 된다. In addition, the private network virtualization generally used adds unnecessary data in the process of transmitting the packets, which affects the waste and speed of the network resources.

또한, 프로그램과 운영환경간의 종속성은 노드의 수평적 증설(Scale out)에서 빈번하게 발생하는 많은 종속적 문제점을 발생시켜 유지 보수 및 확장에 큰 어려움을 주고 있다. In addition, the dependency between the program and the operating environment causes a lot of dependency problems frequently occurring in the horizontal scale expansion of the node, which makes it difficult to maintain and expand it.

특허문헌 1. 한국공개특허공보 제2013-0067116호(2013.6.21 공개) (클라우드 기반의 분산 병렬 데이터 처리 플랫폼 제공 시스템 및 방법) 요약, 청구항 1Patent Document 1: Korean Patent Laid-Open Publication No. 2013-0067116 (published on June, 2013) (System and method for providing a distributed parallel data processing platform based on a cloud)

상기한 문제를 해결하기 위해서 본 발명에서는 하이퍼바이저를 이용하지 않고 각 노드가 분산 컴퓨팅 환경을 구현하는 방법 및 시스템을 제공하는 것을 목적으로 한다.In order to solve the above problems, it is an object of the present invention to provide a method and system for each node to implement a distributed computing environment without using a hypervisor.

또한, 상기한 문제를 해결하기 위해서 본 발명에서는 상기한 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 것을 목적으로 한다.In order to solve the above problems, the present invention provides a computer-readable recording medium on which a program for realizing the above-described method is recorded.

상기한 목적을 달성하기 위해서 본 발명은 소정의 프로세스를 복수의 슬레이브노드에 분산하여 컴퓨팅 작업을 수행하는 분산 컴퓨팅 시스템에 있어서, According to an aspect of the present invention, there is provided a distributed computing system for performing a computing operation by distributing a predetermined process to a plurality of slave nodes,

상기 슬레이브노드의 자원을 상기 프로세스에 할당, 회수 및 관리하는 분산플랫폼리소스관리부;를 포함하는 상기 마스터노드와, And a distributed platform resource management unit that allocates, reclaims, and manages resources of the slave node to the process,

상기 슬레이브노드 단말기의 이용가능한 자원에 관한 정보를 파악하여 상기 분산플랫폼리소스관리부에 제공하고, 상기 분산플랫폼리소스관리부의 제어에 따라 상기 슬레이브노드 단말기의 이용가능한 자원을 상기 프로세스를 진행하기 위한 독립실행환경으로 구현된 공간인 어플리케이션컨테이너에 할당하여, 상기 프로세스를 위한 어플리케이션이 실행될 수 있도록 하는 분산플랫폼노드관리부; 상기 슬레이브노드 간에 연결을 수행하는 가상네트워크스위치; 및 상기 어플리케이션컨테이너에 실행되는 어플리케이션의 상태를 관리하는 어플리케이션관리부;를 포함하는 상기 슬레이브노드와, And a control unit configured to control the distributed platform resource management unit so that resources available to the slave node terminal can be managed in an independent execution environment A distributed platform node management unit that allocates the application platform to an application container, which is a space implemented by the distributed platform node management unit, so that an application for the process can be executed; A virtual network switch for performing a connection between the slave nodes; And an application management unit for managing a state of an application executed in the application container,

상기 가상네트워크스위치의 연결관계를 관리하는 가상네트워크스위치관리부; 상기 어플리케이션관리부와의 데이터교환을 통해 상기 슬레이브노드에 실행되는 어플리케이션의 상태를 관리하는 어플리케이션상태관리부; 및 상기 프로세스를 진행하기 위하여 각 슬레이브노드에 설치되는 어플리케이션의 입출력 데이터가 저장되는 채널에 속하는 슬레이브노드의 네트워크 정보를 관리하여 상기 각 슬레이브노드에 설치되는 어플리케이션이 상기 입출력데이터를 상기 채널로 송수신할 수 있도록 하는 어플리케이션통신채널관리부;를 포함하는 분산플랫폼관리시스템을 포함하는 것을 특징으로 하는 독립실행환경을 제공하는 분산 컴퓨팅 시스템을 제공한다.A virtual network switch management unit for managing connection relationships of the virtual network switches; An application state management unit for managing a state of an application executed on the slave node through data exchange with the application management unit; And managing network information of a slave node belonging to a channel in which input / output data of an application installed in each slave node is stored to proceed with the process, so that an application installed in each slave node can transmit / receive the input / And a distributed platform management system including an application communication channel management unit for providing an independent application execution environment and an application communication channel management unit.

또한, 상기한 목적을 달성하기 위해서 본 발명은 호스트 단말기의 자원을 할당받아 상기 할당된 자원을 이용하여 독립실행환경으로 구현되는 어플리케이션컨테이너에서 소정의 프로세스를 진행하기 위한 어플리케이션을 실행하는 복수의 슬레이브노드에 상기 프로세스를 분산하여 컴퓨팅 작업을 수행하는 분산 컴퓨팅 시스템에 있어서, According to another aspect of the present invention, there is provided an application container that is allocated in a resource of a host terminal and implemented in an independent execution environment using the allocated resources, A distributed computing system for distributing the processes to a computing system,

상기 프로세스의 진행을 위하여 상기 슬레이브노드의 자원이 동적으로 할당되도록 제어하는 분산플랫폼리소스관리부; 상기 슬레이브노드의 연결관계를 관리하는 가상 네트워크스위치관리부; 상기 슬레이브노드에서 실행되는 어플리케이션의 상태를 관리하는 어플리케이션상태관리부; 및 상기 프로세스를 진행하기 위하여 각 슬레이브노드에 설치되는 어플리케이션의 입출력 데이터가 저장되는 채널에 속하는 슬레이브노드의 네트워크 정보를 관리하여 상기 각 슬레이브노드에 설치되는 어플리케이션이 상기 입출력데이터를 상기 채널로 송수신할 수 있도록 하는 어플리케이션통신채널관리부;를 포함하는 분산플랫폼관리시스템을 포함하는 것을 특징으로 하는 독립실행환경을 제공하는분산 컴퓨팅 시스템을 제공한다.A distributed platform resource management unit for controlling resources of the slave node to be dynamically allocated for the progress of the process; A virtual network switch management unit for managing connection relationships of the slave nodes; An application state management unit for managing a state of an application executed in the slave node; And managing network information of a slave node belonging to a channel in which input / output data of an application installed in each slave node is stored to proceed with the process, so that an application installed in each slave node can transmit / receive the input / And a distributed platform management system including an application communication channel management unit for providing an independent application execution environment and an application communication channel management unit.

또한, 상기한 목적을 달성하기 위하여 본 발명은 호스트 단말기의 자원을 할당받아 상기 할당된 자원을 이용하여 독립실행환경으로 구현되는 어플리케이션컨테이너에서 소정의 프로세스를 진행하기 위한 어플리케이션을 실행하는 복수의 슬레이브노드에 상기 프로세스를 분산하여 컴퓨팅 작업을 수행하는 분산 컴퓨팅 시스템의 제어방법에 있어서, According to another aspect of the present invention, there is provided an application container, which is allocated in a resource of a host terminal and is implemented in an independent execution environment using the allocated resources, includes a plurality of slave nodes The distributed computing system according to claim 1,

상기 프로세스의 진행을 위하여 상기 슬레이브노드의 자원이 동적으로 할당되도록 제어하는 단계; 상기 슬레이브노드의 할당된 자원에 생성된 어플리케이션컨테이너에서 상기 프로세스를 위한 어플리케이션이 실행되도록 하는 단계; 상기 프로세스를 진행하기 위하여 각 슬레이브노드에 설치되는 어플리케이션의 입출력 데이터가 저장되는 채널에 속하는 슬레이브노드의 네트워크 정보를 관리하여 상기 각 슬레이브노드에 설치되는 어플리케이션이 상기 입출력데이터를 상기 채널로 송수신할 수 있도록 하는 단계; 및 상기 어플리케이션이 종료되는 경우, 상기 슬레이브노드에 할당된 자원을 회수하는 단계;를 포함하는 것을 특징으로 하는 분산 컴퓨팅 시스템의 제어방법을 제공한다. Controlling the resources of the slave node to be dynamically allocated for the progress of the process; Causing an application for the process to be executed in an application container created in an allocated resource of the slave node; In order to proceed with the process, the slave node manages network information of a slave node belonging to a channel storing input / output data of an application installed in each slave node so that an application installed in each slave node can transmit / receive the input / output data to / ; And recovering the resources allocated to the slave node when the application is terminated. The present invention also provides a control method of a distributed computing system.

여기서, 상기 어플리케이션통신채널관리부는 상기 채널에 속하는 슬레이브노드별로 접속하는 슬레이브노드의 수를 제어하는 플로우 컨트롤을 수행하는 것이 바람직하다.Here, the application communication channel manager may perform flow control for controlling the number of slave nodes connected to each slave node belonging to the channel.

또한, 상기 어플리케이션관리부는 상기 어플리케이션컨테이너 내에서 구동되도록 할 수 있다. In addition, the application management unit may be operated in the application container.

또한, 상기 가상네트워크스위치는 연결이 되어야 하는 다른 슬레이브노드의 가상네트워크스위치와 터널링을 통해 연결이 되는 것이 바람직하다.In addition, the virtual network switch is preferably connected to a virtual network switch of another slave node to be connected through tunneling.

또한, 상기 분산플랫폼리소스관리부는 Also, the distributed platform resource management unit

상기 분산플랫폼노드관리부로부터 상기 슬레이브노드의 활용가능한 자원에 대한 정보를 받아서 상기 프로세스에 이용될 슬레이브노드를 선택하고, Receiving information on available resources of the slave node from the distributed platform node management unit, selecting a slave node to be used in the process,

상기 선택된 슬레이브노드에 상기 프로세스를 진행하기 위한 자원이 할당되는 어플리케이션컨테이너가 생성되도록 하는 방식으로, 동적으로 자원이 할당되도록 하는 것이 바람직하다.It is preferable to dynamically allocate resources in such a manner that an application container to which the resource for proceeding the process is allocated to the selected slave node is generated.

또한, 상기 분산플랫폼리소스관리부는 상기 프로세스를 위해 상기 슬레이브노드의 어플리케이션컨테이너에서 실행된 어플리케이션이 종료된 것으로 확인되면, 상기 어플리케이션컨테이너에 할당된 자원이 회수되도록 하여 다른 프로세스에 이용가능한 상태가 되도록 제어하는 것이 바람직하다.In addition, when it is determined that the application executed in the application container of the slave node is terminated for the process, the distributed platform resource management unit controls the resource allocated to the application container to be available and available to other processes .

또한, 상기 분산플랫폼관리시스템은 상기 슬레이브노드에 설치되는 독립실행환경이 이미지구조의 파일형태로 저장되어 있는 독립실행환경이미지저장부;를 더 포함하고, 상기 슬레이브노드는 상기 이미지구조의 파일을 이용하여 독립실행환경을 구현하는 것이 바람직하다.The distributed platform management system may further include a stand-alone environment image storage unit in which a stand-alone environment installed in the slave node is stored as a file of an image structure, and the slave node uses a file of the image structure It is desirable to implement a stand-alone execution environment.

또한, 상기 슬레이브노드는 가상머신을 이용하지 않는 것을 특징으로 한다. In addition, the slave node does not use a virtual machine.

한편, 상기한 목적을 달성하기 위해서 본 발명은 상기한 방법을 실현시키 기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.In order to achieve the above object, the present invention provides a computer-readable recording medium on which a program for realizing the above-described method is recorded.

본 발명은 분산 컴퓨팅 환경을 구현할 때 가상머신을 이용하지 않고, 분산 컴퓨팅 작업을 수행하는 슬레이브노드에 독립실행환경을 구현함으로써, 사용자가 다양한 언어와 다양한 운영환경으로 프로세스를 요청할 수 있으며, 사용자가 제출한 어플리케이션 프로그램이 가상머신의 제약을 받지 않는 네이티브(native) 수준의 성능으로 실행이 가능하고, 또한 어플리케이션 간의 통신 또한 네이티브한 수준의 성능으로 할 수 있다는 장점이 있다. The present invention can implement a distributed computing environment by implementing a standalone execution environment in a slave node performing a distributed computing operation without using a virtual machine, so that a user can request a process in various languages and various operating environments, An application program can be executed at a native level of performance that is not limited by a virtual machine, and communication between applications can be performed at a native level.

결과적으로 대용량 데이터 처리를 할 때, 기존의 하이퍼바이저를 통한 이미지 가상화에서 발생하는 성능저하문제를 해결할 수 있게 되는 장점이 있다. As a result, when large data processing is performed, performance degradation caused by image virtualization through the existing hypervisor can be solved.

또한, 본 발명은 자원을 동적으로 할당함으로써 효율적인 자원의 활용이 가능해진다는 장점도 있다. In addition, the present invention has an advantage that resources can be efficiently utilized by dynamically allocating resources.

도 1은 본 발명의 개념을 도시한 개략도
도 2는 본 발명의 시스템의 구성을 도시한 블록도
도 3은 본 발명의 방법을 도시한 흐름도
1 is a schematic diagram illustrating the concept of the present invention;
2 is a block diagram showing the configuration of the system of the present invention
Figure 3 is a flow chart illustrating the method of the present invention.

이하의 내용은 단지 본 발명의 원리를 예시한다. 그러므로 당업자는 비록 본 명세서에 명확히 설명되거나 도시되지 않았지만 본 발명의 원리를 구현하고 본 발명의 개념과 범위에 포함된 다양한 장치를 발명할 수 있는 것이다. 또한, 본 명세서에 열거된 모든 조건부 용어 및 실시예들은 원칙적으로, 본 발명의 개념이 이해되도록 하기 위한 목적으로만 명백히 의도되고, 이와 같이 특별히 열거된 실시예들 및 상태들에 제한적이지 않는 것으로 이해되어야 한다. 또한, 본 발명의 원리, 관점 및 실시예들 뿐만 아니라 특정 실시예를 열거하는 모든 상세한 설명은 이러한 사항의 구조적 및 기능적 균등물을 포함하도록 의도되는 것으로 이해되어야 한다. 또한, 이러한 균등물들은 현재 공지된 균등물뿐만 아니라 장래에 개발될 균등물 즉 구조와 무관하게 동일한 기능을 수행하도록 발명된 모든 소자를 포함하는 것으로 이해되어야 한다. The following merely illustrates the principles of the invention. Thus, those skilled in the art will be able to devise various apparatuses which, although not explicitly described or shown herein, embody the principles of the invention and are included in the concept and scope of the invention. Furthermore, all of the conditional terms and embodiments listed herein are, in principle, intended only for the purpose of enabling understanding of the concepts of the present invention, and are not intended to be limiting in any way to the specifically listed embodiments and conditions . It is also to be understood that the detailed description, as well as the principles, aspects and embodiments of the invention, as well as specific embodiments thereof, are intended to cover structural and functional equivalents thereof. It is also to be understood that such equivalents include all elements contemplated to perform the same function irrespective of currently known equivalents as well as equivalents to be developed in the future.

따라서, 프로세서 또는 이와 유사한 개념으로 표시된 기능 블록을 포함하는 도면에 도시된 다양한 소자의 기능은 전용 하드웨어뿐만 아니라 적절한 소프트웨어와 관련하여 소프트웨어를 실행할 능력을 가진 하드웨어의 사용으로 제공될 수 있다. 프로세서에 의해 제공될 때, 기능은 단일 전용 프로세서, 단일 공유 프로세서 또는 복수의 개별적 프로세서에 의해 제공될 수 있고, 이들 중 일부는 공유될 수 있다. 또한, 프로세서, 제어 또는 이와 유사한 개념으로 제시되는 용어의 사용은 소프트웨어를 실행할 능력을 가진 하드웨어를 배타적으로 인용하여 해석되어서는 아니 되고, 제한 없이 디지털 신호 프로세서(DSP) 하드웨어, 소프트웨어를 저장하기 위한 롬(ROM), 램(RAM) 및 비휘발성 메모리를 암시적으로 포함하는 것으로 이해되어야 한다. 주지 관용의 다른 하드웨어도 포함될 수 있다. Thus, the functions of the various elements shown in the drawings, including the functional blocks shown in the figures or similar concepts, may be provided by use of dedicated hardware as well as hardware capable of executing software in connection with appropriate software. When provided by a processor, the functions may be provided by a single dedicated processor, a single shared processor, or a plurality of individual processors, some of which may be shared. Also, the use of terms such as processor, control, or similar concepts should not be construed as exclusive reference to hardware capable of executing software, but may include, without limitation, digital signal processor (DSP) hardware, (ROM), random access memory (RAM), and non-volatile memory. Other hardware may also be included.

상술한 목적, 특징 및 장점들은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 더욱 분명해 질 것이다. 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략하거나 간략하게 설명하는 것으로 한다. The above objects, features and advantages will become more apparent from the following detailed description in conjunction with the accompanying drawings. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

한편 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
On the other hand, when an element is referred to as "including " an element, it does not exclude other elements unless specifically stated to the contrary.

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

도 1은 본 발명의 분산 컴퓨팅 시스템의 기본적인 설명을 위한 도면이다. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a diagram for explaining a basic concept of a distributed computing system according to the present invention.

도 1에서 보는 바와 같이, 본 발명의 분산플랫폼시스템은 전체적인 시스템을 관리하는 분산플랫폼관리시스템(100)과 마스터노드(200)와 다수의 슬레이브노드(300-1, 300-2, 300-3, …300-n, 이하 전체 슬레이브 노드를 나타내거나 대표적인 슬레이브 노드 하나를 나타낼 때에는 도면부호를 '300'으로 표기)를 포함하여 구성된다. 1, the distributed platform system according to the present invention includes a distributed platform management system 100 for managing an overall system, a master node 200, a plurality of slave nodes 300-1, 300-2, 300-3, ... 300-n, hereinafter referred to as an entire slave node, or a representative slave node is denoted by reference numeral 300).

마스터노드(200)는 고가용성(HA:High Availability)를 위하여 본 발명의 분산플랫폼관리시스템(100)과 독립된 별도의 시스템으로 구성될 수도 있고, 분산플랫폼관리시스템(100)을 구성하는 하나의 구성요소로 포함되어 운영될 수도 있다. The master node 200 may be configured as a separate system independent of the distributed platform management system 100 of the present invention for high availability (HA) It can also be included and operated.

또한, 본 발명의 분산플랫폼관리시스템(100)은 하나의 서버로 구현이 될 수도 있고, 복수의 서버와 각종 장치의 조합으로 구현이 될 수도 있다. In addition, the distributed platform management system 100 of the present invention may be implemented as one server or a combination of a plurality of servers and various devices.

각 슬레이브노드(300)에는 필요한 어플리케이션과 그 어플리케이션을 돌아가게 하기 위한 디펜던시(Bins/Libs)만이 컨테이너에 담겨 설치되며, 도커(Docker) 엔진을 이용하여 각 슬레이브노드의 호스트 운영체제(OS)의 CPU, 메모리등을 할당받아 동작하게 된다. In each slave node 300, only necessary applications and dependencies (Bins / Libs) for causing the application to run are installed in a container, and a host operating system (OS) of each slave node is accessed using a docker engine CPU, memory, and so on.

각 슬레이브노드(300)는 슬레이브노드에 구비된 가상네트워크스위치를 통하여 같은 프로세스의 연관된 작업을 수행하는 다른 슬레이브노드와 터널링을 통하여 서로 연결된다. Each slave node 300 is connected to another slave node that performs an associated task of the same process through tunneling through a virtual network switch provided in the slave node.

이러한 터널링을 통하여 하나의 프로세스를 수행하는데 서로 협조되어야 하는 어플리케이션이 구동되는 슬레이브 노드 간의 정보 교환이 수행되게 된다. Through the tunneling, information exchange between slave nodes that are operated by applications to be cooperated with each other is performed in order to perform a single process.

본 발명에서는 터널링을 통하여 가상 네트워크가 구현되며, 이렇게 구현된 가상 네트워크를 통하여 데이터의 교환이 이루어지게 된다. In the present invention, a virtual network is implemented through tunneling, and data exchange is performed through the virtual network thus implemented.

도 2는 본 발명의 분산 컴퓨팅 시스템의 구성을 설명하기 위한 도면으로, 도 1의 도면에서 슬레이브노드(300) 하나만을 상정하여 예로 들은 것이다. FIG. 2 is a diagram for explaining a configuration of a distributed computing system according to the present invention. In the drawing of FIG. 1, only one slave node 300 is assumed.

먼저, 분산플랫폼관리시스템(100)의 구성에 대해 설명한다. First, the configuration of the distributed platform management system 100 will be described.

본 발명의 분산플랫폼관리시스템(100)은 가상네트워크스위치관리부(110), 어플리케이션상태관리부(120), 어플리케이션통신채널관리부(130) 및 독립실행환경이미지저장부(140)를 포함하여 구성된다. The distributed platform management system 100 of the present invention includes a virtual network switch management unit 110, an application state management unit 120, an application communication channel management unit 130, and an independent execution environment image storage unit 140.

가상네트워크스위치관리부(110)는 후술하는 각 슬레이브노드(300)의 가상네트워크스위치(320) 및 어플리케이션컨테이너(340)에 네트워크 주소를 할당하고 할당된 각 슬레이브노드(300) 및 어플리케이션컨테이너(340)의 네트워크 주소를 관리하며, 슬레이브노드(300)에 구비된 가상네트워크스위치(320)간의 연결정보를 관리한다. The virtual network switch management unit 110 allocates a network address to the virtual network switch 320 and the application container 340 of each slave node 300 to be described later and assigns a network address to each slave node 300 and the application container 340 Manages network addresses, and manages connection information between the virtual network switches 320 provided in the slave node 300.

즉, 본 발명의 경우, 시스템 구축시에 각 슬레이브노드들은 터널링을 통하여 가상네트워크가 구현되는데, 가상네트워크스위치관리부(110)는 이러한 가상 네트워크의 연결정보를 저장하고 관리한다. That is, in the case of the present invention, the virtual network is implemented through tunneling in each slave node at the time of system construction, and the virtual network switch management unit 110 stores and manages the connection information of the virtual network.

이렇게 저장된 정보는 슬레이브노드간의 통신채널이 새로이 요구될 때마다 저장된 정보를 이용하여 통신경로를 설정하는 등의 목적을 위해 사용될 수 있다. The stored information can be used for the purpose of setting a communication path using stored information whenever a communication channel between slave nodes is newly requested.

어플리케이션통신채널관리부(130)는 하나의 프로세스를 진행하기 위해 작업이 할당된 각 슬레이브 노드의 어플리케이션간에 데이터 교환 등 상호작용을 위한 채널 정보를 저장하고 관리한다. The application communication channel management unit 130 stores and manages channel information for interaction such as data exchange between applications of each slave node to which a task is assigned to perform one process.

각 어플리케이션은 실행하기 위해서 입력되어야 하는 값과 출력되어 다른 어플리케이션 등에 사용되어야 하는 결과값이 있는데, 이러한 데이터들이 저장되게 되는 채널이 존재하여 이렇게 어플리케이션의 구동에 필요한 값들이 저장되게 된다. Each application has a value to be input for execution and a result to be output to be used for another application. There is a channel in which such data is stored, so that values necessary for driving the application are stored.

이러한 채널은 하나 이상의 슬레이브노드 또는 하나 이상의 어플리케이션컨테이너를 통하여 구현이 될 수 있다. Such a channel may be implemented through one or more slave nodes or through one or more application containers.

어플리케이션통신채널관리부(130)는 각 어플리케이션이 이용되어야 할 입력값이 저장되어야 하는 채널, 각 어플리케이션의 구동결과 출력되는 값이 저장되어야 하는 채널에 대한 정보가 저장되어 있으며, 이러한 채널에 대한 정보, 즉 접속해야 하는 슬레이브노드의 네트워크 주소정보가 해당되는 어플리케이션이 설치된 슬레이브노드에 제공되도록 하여, 각 어플리케이션이 해당되는 채널의 슬레이브노드에 접속하여 필요한 값을 취할 수 있도록 한다. The application communication channel management unit 130 stores information on a channel for storing input values to be used by each application and a channel for storing a value to be output as a result of driving each application. The network address information of the slave node to be connected is provided to the slave node in which the corresponding application is installed so that each application can access the slave node of the corresponding channel to take a necessary value.

한 종류의 어플리케이션이 복수의 슬레이브노드에 설치되어 구동되는 경우 동일한 종류의 데이터가 저장된 복수의 슬레이브노드들로 구성되는 채널 중 특정 슬레이브노드에 트래픽이 몰릴 수 있는데, 어플리케이션통신채널관리부(130)는 이러한 문제를 방지하기 위하여 플로우 컨트롤을 통하여 특정 슬레이브노드를 향한 과도한 트래픽이 발생하지 않도록 한다. When one type of application is installed and operated in a plurality of slave nodes, traffic may be transmitted to a specific slave node among channels constituted by a plurality of slave nodes storing the same kind of data. The application communication channel management unit 130, In order to prevent the problem, excessive traffic to a specific slave node is not generated through flow control.

즉, 특정한 어플리케이션의 결과값을 저장하는 채널의 특정 슬레이브노드에 과도한 접속이 이루어지면 동일한 채널(동일한 종류의 어플리케이션의 결과값을 저장하는 채널)의 다른 슬레이브노드의 네트워크 주소정보를 상기한 결과값을 필요로 하는 어플리케이션이 설치된 슬레이브노드에 제공하여 채널 내의 트래픽이 분산되도록 한다. That is, when an excessive connection is made to a specific slave node of a channel storing a result of a specific application, the network address information of another slave node of the same channel (channel storing a result value of the same type of application) And provides the required application to the installed slave node so that the traffic in the channel is dispersed.

후술하는 슬레이브노드(300)의 가상네트워크스위치(320)는 이 주소정보를 이용하여 입력값을 받아야 하는 채널을 구성하는 슬레이브노드 중의 하나에 접속하여 필요한 데이터를 수신하고, 어플리케이션의 구동결과 발생된 값을 채널을 구성하는 슬레이브노드 중의 하나에 접속하여 저장하게 된다. The virtual network switch 320 of the slave node 300, which will be described later, accesses one of the slave nodes constituting the channel to receive the input value using the address information, receives the necessary data, Is connected to one of the slave nodes constituting the channel and stored.

앞에서 설명한 바와 같이 채널 중 어떤 슬레이브노드에 접속하는지에 관해서는 어플리케이션통신채널관리부(130)에 의해 지정되게 된다. As described above, the application communication channel management unit 130 specifies which slave node among the channels is to be connected.

어플리케이션상태관리부(120)는 전체 클러스터의 각 슬레이브노드에 설치되는 어플리케이션의 종류, 각 어플리케이션의 정보에 따라 그 어플리케이션의 실행시기 및 종료 시기 등 어플리케이션의 생명 주기에 대한 정보가 저장되고 관리된다. The application state management unit 120 stores and manages information on the life cycle of the application, such as the type of the application installed in each slave node of the entire cluster and the execution timing and end timing of the application according to the information of each application.

즉, 어플리케이션상태관리부(120)는 각 슬레이브노드에 설치된 어플리케이션의 실행이나 종료를 명령하고, 그 어플리케이션이 실행되거나 종료되면 그 정보를 어플리케이션관리부(330)로부터 수신하여 각 슬레이브노드에서 실행되는 어플리케이션의 상태를 관리하게 된다. That is, the application state management unit 120 commands execution or termination of an application installed in each slave node, and when the application is executed or terminated, the application state management unit 120 receives the information from the application management unit 330, .

어플리케이션상태관리부(120)는 전체 슬레이브 노드의 어플리케이션 컨테이너에서 사용되는 자원 사용량을 모니터링하는 기능만 수행할 수도 있고, 각 어플리케이션의 실행 및 종료 등을 제어하는 기능을 수행할 수도 있다. The application state management unit 120 may perform only a function of monitoring resource usage used in application containers of all slave nodes, or may control the execution and termination of each application.

독립실행환경이미지저장부(140)는 각 슬레이브노드에 설치되는 환경이 이미지 구조로 저장되어 있다. The independent execution environment image storage unit 140 stores the environment in which each slave node is installed as an image structure.

각 슬레이브노드에는 후술하는 바와 같이 분산 컴퓨팅을 위한 환경이 설치되는데, 이 분산 컴퓨팅 환경은 슬레이브노드 자체의 운영체제와 별도로 고유의 파일시스템, 환경변수, 네트워크 속성과 프로그램 실행에 필요한 라이브러리를 갖음으로써 호스트 머신과는 별개로 독립적인 실행환경을 만들 수 있다. Each slave node has an environment for distributed computing as described later. This distributed computing environment has its own file system, environment variables, network attributes, and libraries necessary for program execution separately from the operating system of the slave node itself, Independent execution environment can be created separately from.

종래의 분산 플랫폼의 경우 하이퍼바이저를 이용하여 가상머신을 슬레이브 노드에 구현하는데 반하여 본 발명의 경우에는 가상머신이 아니라 도커(Docker) 엔진을 통하여 독립적으로 슬레이브 노드 단말기의 CPU, 메모리 등의 자원을 직접 할당받아서 이용하도록 함으로써 보다 효율적인 자원관리가 가능해지는 장점이 있다. In the case of the conventional distributed platform, the virtual machine is implemented in the slave node by using the hypervisor. In contrast, in the present invention, the resources of the CPU, memory, etc. of the slave node terminal are independently managed through the docker engine It is advantageous that more efficient resource management is possible.

독립실행환경이미지저장부(140)는 분산 플랫폼 시스템이 최초 구축될 때, 혹은 새로운 슬레이브 노드를 추가하는 경우에 사용되는 데이터들이 저장되어 있는 것이며, 분산 플랫폼 시스템이 구촉된 후에는 이용이 되지 않는다. The independent execution environment image storage unit 140 stores data used when the distributed platform system is initially constructed or when a new slave node is added, and is not used after the distributed platform system is promoted.

독립실행환경이미지저장부(140)에 저장되어 있는 이미지 구조에 환경은 슬레이브 노드에 설치되게 되므로, 이에 대한 설명은 슬레이브노드(300)를 설명하면서 추가 설명한다. Since the environment is installed in the slave node in the image structure stored in the independent execution environment image storage unit 140, the slave node 300 will be described in further detail.

다음으로, 마스터노드(200)의 구성에 대해 설명한다. 도 2에서는 분산플랫폼리소스관리부(210)가 분산플랫폼관리시스템(100)과는 별개로 구성된 마스터노드(200)에 설치되는 것으로 도시를 했지만, 본 발명에서 마스터노드(200)는 분산플랫폼관리시스템(100)과 통합된 형태로 구현이 가능하다. Next, the configuration of the master node 200 will be described. 2, the distributed platform resource management unit 210 is installed in the master node 200 configured separately from the distributed platform management system 100. However, in the present invention, the master node 200 includes a distributed platform management system 100) can be implemented in an integrated form.

본 발명의 마스터노드(200)는 분산플랫폼리소스관리부(210)를 포함하여 구성된다. 마스터노드(200)는 통상적으로 전체 클러스터에 하나가 존재한다. The master node (200) of the present invention includes a distributed platform resource management unit (210). The master node 200 typically has one in the entire cluster.

분산플랫폼리소스관리부(210)는 사용자로부터 구동시킬 어플리케이션의 필요자원을 입력받아 이를 할당하고 클러스터의 자원을 관리한다. 사용자가 제출하는 정보로는 분산플랫폼리소스관리부(210)의 관리의 대상이 되는 클러스터 자원인 CPU, 메모리와 네트워크(IP) 정보 등이 포함될 수 있다. The distributed platform resource management unit 210 receives necessary resources of an application to be driven by a user, allocates the resources, and manages resources of the cluster. The information submitted by the user may include a CPU resource, a memory, and network (IP) information, which are cluster resources to be managed by the distributed platform resource management unit 210.

진행할 프로세스에 대한 정보를 입력받고, 클러스터 전체의 자원을 관리한다. Inputs information about the process to be performed, and manages the resources of the entire cluster.

진행할 프로세스에 대한 정보에는 사용자가 원하는 프로세스를 위하여 각 슬레이브에서 요구되는 CPU 성능(예: 어플리케이션 실행을 위해 요구되는 CPU 코어(core)의 수), 메모리 등에 대한 정보와 상기한 프로세스를 진행하기 위해 각 슬레이브노드(300)에 설치되어야 하는 어플리케이션을 포함한다. The information about the process to be executed includes information about the CPU performance required in each slave (for example, the number of CPU cores required for application execution), memory, etc. for the process desired by the user, And an application to be installed in the slave node 300.

전체 클러스터의 자원을 관리한다는 말은 후술하는 슬레이브노드(300)에 구비되는 분산플랫폼노드관리부(310)로부터 각 슬레이브노드의 자원을 파악하여, 각 슬레이브노드에 사용자가 요청한 프로세스를 수행하기 위한 자원이 있는지를 확인하고, 자원이 있는 경우에 해당 슬레이브노드의 어플리케이션컨테이이너에 자원이 할당되도록 지시명령을 전송하고, 각 슬레이브노드(300)의 어플리케이션컨테이너(340)에 할당된 자원에 대한 정보를 저장하며, 이렇게 자원이 확보된 슬레이브노드(300)에 사용자로부터 요청된 프로세스를 진행하기 위한 어플리케이션의 설치 및 구동을 지시하게 된다. The term 'managing the resources of the entire cluster' refers to the resources of each slave node from the distributed platform node management unit 310 provided in the slave node 300 described below, and resources for performing the process requested by the user to each slave node If there is a resource, an instruction command is sent to allocate a resource to the application container of the slave node 300, and information about resources allocated to the application container 340 of each slave node 300 is stored And instructs the slave node 300 having the secured resources to install and operate the application for proceeding with the process requested by the user.

본 발명에서는 종래의 분산 컴퓨팅 환경에서와 같이 미리 가상머신을 통하여 자원의 확보가 완료된 상태에서, 즉 처음에 분산 컴퓨팅 환경을 구현하기 위해 미리 정해진, 고정된 양의 자원을 확보한 후, 진행될 프로세스에 대한 요청을 받아서 분산 컴퓨팅 프로세스를 구동하는 것이 아니라, 프로세스를 진행할 때마다 그 프로세스에 필요한 만큼의 자원만을 동적으로 확보하는 방식을 이용한다. In the present invention, as in the conventional distributed computing environment, a predetermined amount of resources is secured in order to realize a distributed computing environment in a state where resource reservation is completed through a virtual machine in advance, that is, It does not run the distributed computing process but uses a method of dynamically securing only the resources necessary for the process each time the process is performed.

이렇게 함으로써 CPU, 메모리 등의 슬레이브노드(300)의 자원을 보다 효율적으로 활용할 수 있는 장점이 있다. Thereby, resources of the slave node 300 such as a CPU and a memory can be utilized more efficiently.

여기에 대해서는 어플리케이션컨테이너(340)를 설명하면서 다시 설명한다.The application container 340 will be described again.

다음으로 각 슬레이브노드(300)의 구성에 대해 설명한다. Next, the configuration of each slave node 300 will be described.

본 발명의 슬레이브노드(300)는 분산플랫폼노드관리부(310), 가상네트워크스위치(320), 어플리케이션관리부(330) 및 어플리케이션컨테이너(340)를 포함하여 구성된다. The slave node 300 of the present invention includes a distributed platform node management unit 310, a virtual network switch 320, an application management unit 330, and an application container 340.

분산플랫폼노드관리부(310)는 슬레이브노드(300)의 자원을 모니터링하여 분산플랫폼리소스관리부(210)에게 전송하고, 분산플랫폼리소스관리부(210)로부터 자원할당의 요청이 있는 경우에는 후술하는 어플리케이션컨테이너(340)의 형태로 슬레이브노드(300)의 자원을 할당한다. The distributed platform node management unit 310 monitors the resources of the slave node 300 and transmits the resources to the distributed platform resource management unit 210. When there is a resource allocation request from the distributed platform resource management unit 210, 340 of the slave node 300. In this case,

가상네트워크스위치(320)는 슬레이브노드 간에 터널링을 통한 연결을 수행한다. The virtual network switch 320 performs a tunneling connection between the slave nodes.

터널링은 하위층 통신 규약의 패킷을 상위층 통신 규약으로 캡슐화하는 것으로, 통신망상의 두 점 간에 통신이 되도록 하는 것을 말한다.Tunneling refers to encapsulating the packets of the lower layer communication protocol into upper layer communication protocol, so as to allow communication between two points on the communication network.

터널링 방법은 종래에 수행되는 방법을 그대로 이용할 수 있으므로, 별도의 설명은 추가하지 않는다. Since the tunneling method can be used as it is in the conventional method, no further explanation is given.

터널링을 통한 가상 네트워크의 구현은 시스템 구축시에 이루어지며, 가상네트워크 스위치(320)는 어플리케이션통신채털관리부(140)에 저장된 정보를 이용하여 어플리케이션에 입력될 데이터값이 저장된 채널의 주소정보 및 어플리케이션의 실행결과 출력된 값을 저장할 채널의 주소정보를 확인하여 해당되는 채널로 데이터가 송수신되도록 한다. The virtual network switch 320 uses the information stored in the application communication chat management unit 140 to store the address information of the channel storing the data value to be input to the application, As a result of the execution, the address information of the channel for storing the output value is checked and data is transmitted / received to the corresponding channel.

어플리케이션관리부(330)는 사용자가 제출한 어플리케이션당 하나씩 존재하며, 어플리케이션 및 후술하는 어플리케이션컨테이너(340)를 관리하고 모니터링한다. The application management unit 330 exists for each application submitted by the user and manages and monitors the application and the application container 340 described later.

어플리케이션관리부(330)는 어플리케이션의 실행 및 정지 등의 실행과정을 모니터링하고 이에 대한 정보가 어플리케이션상태관리부(120)에 전송되도록 하고, 호스트 컴퓨터로부터 할당받은 자원 내에서 할당된 어플리케이션이 구동되도록 한다. The application management unit 330 monitors an execution process such as execution and stop of an application and transmits information about the execution process to the application state management unit 120 so that the application allocated in the resource allocated by the host computer is driven.

어플리케이션관리부(330)도 역시 하나의 어플리케이션이며, 어플리케이션컨테이너(340) 내에 설치되어 구동된다. 즉, 어플리케이션과 그 어플리케이션을 관리하는 어플리케이션관리부(330)가 각각 별개의 하나의 독립된 실행환경에서 구동되게 된다. The application management unit 330 is also an application, and is installed and operated in the application container 340. That is, the application and the application management unit 330 that manages the application are driven in a separate independent execution environment.

어플리케이션컨테이너(340)는 슬레이브노드로 기능하는 호스트 단말기의 CPU, 메모리 등의 자원을 할당받고, 독립실행환경이 구축되어 있는 주체가 된다. The application container 340 allocates resources such as a CPU and a memory of a host terminal functioning as a slave node, and becomes a main body in which a standalone execution environment is built.

독립실행환경은 독립실행환경이미지저장부(140)에 구축되어 있는 이미지 구조의 독립실행환경을 이용하여 구현될 수 있으며, 고유의 파일시스템, 환경변수, 네트워크 속성을 가진 환경을 의미한다. The independent execution environment can be implemented using an independent execution environment of an image structure built in the independent execution environment image storage unit 140 and means an environment having a unique file system, environment variables, and network attributes.

최초 분산 컴퓨팅 시스템 구축시에는 어플리케이션컨테이너(340)가 미리 설치되어 있을 필요가 없지만, 프로세스의 진행을 위해 어플리케이션을 설치하게 되면 그 전에 어플리케이션컨테이너(340)가 설치되게 된다. The application container 340 is not required to be installed before the initial distributed computing system is constructed. However, when the application is installed to process the application, the application container 340 is installed before the application container 340 is installed.

하나의 어플리케이션 당 하나의 어플리케이션컨테이너(340)가 설치될 수도 있지만, 하나의 어플리케이션 당 복수의 어플리케이션컨테이너(340)가 설치될 수도 있다. One application container 340 may be installed per application, but a plurality of application containers 340 may be installed per application.

이미 어플리케이션컨테이너(340)가 설치되어 있는 상태에서 그 어플리케이션을 실행하기 위하여, 혹은 새로운 프로세스 또는 어플리케이션의 진행을 위하여 추가로 자원의 할당이 필요한 경우에는 분산플랫폼노드관리부(310)가 호스트 단말기로부터 자원을 할당받아 독립적인 어플리케이션컨테이너(340)가 추가되는 방식으로 구현이 된다. In the case where the application container 340 is already installed, or when additional resource allocation is required for the execution of a new process or an application, the distributed platform node management unit 310 allocates resources from the host terminal And an independent application container 340 is allocated.

이렇게 함으로써 복수의 어플리케이션이 구동되더라도 각각의 어플리케이션이 독립적인 실행환경에서 구동이 되기 때문에 서로 간섭을 일으키지 않게 되고, 따라서 하나의 프로세스에 대한 어플리케이션을 할당받아 구동 중에 다른 어플리케이션을 할당받거나 자원을 추가로 할당받는 경우에도 기존의 프로세스를 중단하거나 다시 실시하는 문제가 발생하지 않는다는 장점이 있다. In this way, even if a plurality of applications are driven, each application is driven in an independent execution environment, so that they do not interfere with each other. Accordingly, applications for one process are allocated and other applications are allocated during operation There is no problem that the existing process is interrupted or re-executed.

또한, 처음부터 분산 컴퓨팅 시스템을 위해 할당할 자원의 양을 고정해 두는 것이 아니라 그 때 그 때 필요한 자원을 어플리케이션컨테이너(340)의 형태로 확보하는 것이기 때문에, 동적인 자원 할당으로 인한 자원의 효율적인 관리가 가능해진다는 장점도 있다. In addition, since the amount of resources to be allocated for the distributed computing system is not fixed from the beginning, but the necessary resources at that time are secured in the form of the application container 340, efficient management of resources due to dynamic resource allocation It is also advantageous that it becomes possible.

분산 컴퓨팅 시스템이 구현되는 원리를 방법을 설명하면서 보다 자세히 설명한다. The principles in which a distributed computing system is implemented will be described in more detail while explaining the method.

도 3은 본 발명의 분산 컴퓨팅 방법을 도시한 흐름도이다. 3 is a flow chart illustrating a distributed computing method of the present invention.

도 3은 마스터노드(200) 및 슬레이브노드(300)에 상기한 도 2의 구성요소들이 이미 설치되어 있다는 것을 전제로 하여 설명한다. 3 will be described on the assumption that the components of FIG. 2 are already installed in the master node 200 and the slave node 300. FIG.

즉, 마스터노드(200)의 분산플랫폼리소스관리부(210), 각 슬레이브노드(300)의 분산플랫폼노드관리부(310)와 같이 자원을 관리하기 위한 모듈이 설치되고, 각 슬레이브노드(300)의 가상네트워크스위치(320)와 같이 슬레이브노드간의 네트워크 가상화를 위한 모듈이 설치된다. That is, a module for managing resources such as the distributed platform resource management unit 210 of the master node 200 and the distributed platform node management unit 310 of each slave node 300 is installed, A module for network virtualization between slave nodes, such as network switch 320, is installed.

각 모듈의 설치는 독립실행환경이미지저장부(140)에 저장되어 있는 독립실행환경 이미지를 이용하여 실행가능하다는 점은 앞에서 살펴본 바와 같다. As described above, the installation of each module can be executed by using the independent execution environment image stored in the independent execution environment image storage unit 140. [

또한, 가상네트워크스위치관리부(110)에 의하여 각 슬레이브노드 및 어플리케이션컨테이너에 네트워크 주소가 할당되어 있고, 그 네트워크 주소 정보가 가상네트워크스위치관리부(110)에 저장되어 있는 상태를 전제로 한다. It is assumed that a network address is allocated to each of the slave node and the application container by the virtual network switch managing unit 110 and the network address information is stored in the virtual network switch managing unit 110.

또한, 각 슬레이브노드의 자원은 각 슬레이브노드의 분산플랫폼노드관리부(310)를 통하여 파악이 되어 마스터노드(200)의 분산플랫폼리소스관리부(210)에 저장이 되어 있는 상태를 전제로 하고 설명을 한다. The resources of the respective slave nodes are grasped through the distributed platform node management unit 310 of each slave node and are stored in the distributed platform resource management unit 210 of the master node 200 .

마스터노드(200)의 분산플랫폼리소스관리부(210)는 사용자로부터 분산 컴퓨팅 환경에서 프로세스를 진행하기 위한 어플리케이션을 수신하게 된다(401). The distributed platform resource management unit 210 of the master node 200 receives an application for proceeding a process in a distributed computing environment from a user (401).

이 때, 분산플랫폼리소스관리부(210)는 사용자가 제출한 어플리케이션을 구동하기 위해 요구되는 CPU의 성능(예: 어플리케이션 실행을 위해 요구되는 CPU 코어(core)의 수), 메모리 등 요구되는 어플리케이션 실행환경을 입력받도록 하는 것이 바람직하다. At this time, the distributed platform resource management unit 210 may acquire the performance of the CPU (for example, the number of CPU cores required for application execution) required for driving an application submitted by the user, As shown in Fig.

분산플랫폼리소스관리부(210)는 사용자가 제출한 어플리케이션이 구동될 슬레이브노드(300)를 선정하여 선정된 슬레이브노드에 사용자가 제출한 어플리케이션이 구동될 수 있도록 한다(402). The distributed platform resource management unit 210 selects a slave node 300 to which an application submitted by the user is to be driven, and enables an application that the user submits to the selected slave node to be driven (402).

분산플랫폼리소스관리부(210)는 각 슬레이브노드(300)의 활용가능한 자원에 대한 정보를 미리 분산플랫폼노드관리부(310)로부터 수신하여 저장하고 있거나, 프로세스의 진행이 요청되는 경우마다 분산플랫폼노드관리부(310)에 요청하여 각 슬레이브노드(300)의 활용가능한 자원을 확보한 후, 사용자가 제출한 어플리케이션의 실행이 가능한 슬레이브노드를 선정하게 된다. The distributed platform resource management unit 210 receives information on available resources of each slave node 300 from the distributed platform node management unit 310 in advance and stores the received information in the distributed platform resource management unit 210. Alternatively, 310 to secure available resources of each slave node 300 and then select a slave node that can execute the application submitted by the user.

또한, 분산플랫폼리소스관리부(210)에서 어떤 슬레이브노드에 어플리케이션을 할당할지를 정하게 되면, 어플리케이션통신채널관리부(130)는 분산플랫폼리소스관리부(210)에서 정해진 정보에 따라 각 슬레이브노드에서 어플리케이션이 실행될 때, 어떤 채널의 슬레이브노드와 통신해야 하는지에 대한 정보를 생성한다(403).In addition, when determining which slave node is to allocate the application in the distributed platform resource management unit 210, the application communication channel management unit 130, when the application is executed in each slave node according to the information determined by the distributed platform resource management unit 210, And information on which channel should communicate with the slave node (403).

연결을 설정하기 위한 정보는 분산플랫폼리소스관리부(210)에서 하나의 프로세스를 분산 컴퓨팅 작업을 통하여 수행하기 위해 채널로 이용할 것으로 선택한 슬레이브노드의 정보와, 선택된 슬레이브노드에 가상네트워크스위치관리부(110)에 의해 할당된 네트워크주소정보를 이용하여 생성될 수 있다. The information for establishing the connection is transmitted from the distributed platform resource management unit 210 to the slave node selected by the virtual network switch management unit 110 to select the slave node selected to use one process as a channel for performing the distributed computing operation Lt; RTI ID = 0.0 > network address information. ≪ / RTI >

채널에 대한 정보는 슬레이브노드에 어떤 어플리케이션을 설치할 것인지 결정된 후부터 실제로 어플리케이션이 실행되기 전까지만 각 슬레이브노드에 공급되면 되며, 어떤 단계에서 제공하는지 여부가 꼭 정해져야 하는 것은 아니다. The information about the channel is supplied to each slave node only after the application is determined to be installed in the slave node until the application is actually executed, and it is not necessarily determined at what stage it is provided.

이렇게 설정된 채널에 대한 접속 정보는 프로세스가 진행되는 동안에도 채널 내의 트래픽에 따라 달라질 수 있다. 즉, 동일 채널 내에서 특정 슬레이브노드에 트래픽이 몰리는 경우, 동일 채널 내의 다른 슬레이브노드로 트래픽이 분산되도로고 플로우 컨트롤이 수행될 수 있다.The access information for the thus configured channel may vary depending on the traffic in the channel even during the process. That is, when traffic is transmitted to a specific slave node in the same channel, logo flow control can be performed even if traffic is distributed to other slave nodes in the same channel.

한편, 분산플랫폼리소스관리부(210)로부터 어플리케이션의 실행을 지시받은 슬레이브노드(300)의 분산플랫폼노드관리부(310)는 해당되는 어플리케이션이 구동될 어플리케이션컨테이너(340)를 생성한다(404). On the other hand, the distributed platform node management unit 310 of the slave node 300, which is instructed to execute the application from the distributed platform resource management unit 210, creates the application container 340 in which the corresponding application is to be executed (404).

어플리케이션컨테이너(340)는 노드의 자원을 점유하고 점유된 자원은 어플리케이션컨테이너(340)에서 실행될 독립실행환경의 독점적 자원 사용을 가능하게 하므로, 실제로 실행되는 어플리케이션 프로세스는 고유의 프로세서, 메모리, 네트워크, 파일 시스템을 독점적으로 사용하는 효과를 가질 수 있고, 결과적으로 노드의 운용환경에 자유로운 독립적인 운용환경을 가질 수 있는 장점이 있다. Because the application container 340 occupies the resources of the node and the occupied resources enable the use of proprietary resources of the stand-alone environment to be executed in the application container 340, the actually executed application process can be a unique processor, memory, It is possible to have an effect of using the system exclusively, and as a result, it is possible to have an independent operating environment free of the operating environment of the node.

이렇게 생성된 어플리케이션컨테이너(340)에는 어플리케이션관리부(330)가 구비되어 있으며, 이 어플리케이션관리부(330)가 어플리케이션컨테이너(340)에서 구동되는 어플리케이션이 할당된 자원을 이용하여 실행되도록 하고, 실행 및 정지되는 과정을 모니터링하게 된다. The application container 340 generated in this way is provided with an application management unit 330. The application management unit 330 allows the application running in the application container 340 to be executed by using the allocated resource, The process will be monitored.

어플리케이션컨테이너(340)가 생성되면, 어플리케이션컨테이너(340)의 어플리케이션관리부(330)는 해당되는 어플리케이션을 분산플랫폼리소스관리부(210)로부터 수신하여 실행하게 되며, 어플리케이션의 실행 상태 등을 어플리케이션상태관리부(120)에 전송하여 그 상태가 관리되게 한다(405). When the application container 340 is created, the application management unit 330 of the application container 340 receives the corresponding application from the distributed platform resource management unit 210 and executes the application. The application state management unit 120 To be managed (405).

하나의 어플리케이션당 하나의 어플리케이션컨테이너(340)이 생성되는 것이 일반적이지만, 어플리케이션의 특성에 따라 하나의 어플리케이션 당 복수의 어플리케이션이 생성될 수도 있으며, 또한 하나의 프로세스에 복수의 어플리케이션이 이용되는 경우 각각의 어플리케이션 실행을 위해서 복수의 어플리케이션컨테이너(340)가 생성될 수도 있다. Generally, one application container 340 is created for one application. However, a plurality of applications may be created per one application depending on the characteristics of the application, and when a plurality of applications are used in one process, A plurality of application containers 340 may be created for application execution.

어플리케이션컨테이너(340)의 어플리케이션관리부(330)는 어플리케이션의 실행을 관리하고, 어플리케이션의 실행 및 정지 등의 정보는 어플리케이션관리부(330)에 의해 어플리케이션상태관리부(120)에 전송되어 관리된다. The application management unit 330 of the application container 340 manages the execution of the application and information such as the execution and stop of the application is transferred to the application state management unit 120 by the application management unit 330 and managed.

어플리케이션상태관리부(120)에서 관리되는 정보는 어플리케이션의 시작 및 종료 등과 같은 생명주기와 실행 성공 또는 실패와 같은 상태정보가 포함된다. The information managed by the application state management unit 120 includes state information such as a life cycle such as start and end of an application, and success or failure of execution.

어플리케이션상태관리부(120)는 어플리케이션의 상태를 모니터링하여 어플리케이션의 실행이 실패하거나, 프로세스에 에러가 발생한 경우 등 관리자가 신속한 조치를 취할 수 있도록 알람 메시지가 관리자에게 전송되도록 할 수 있다. The application state management unit 120 may monitor the state of the application and cause an alarm message to be transmitted to the administrator so that the administrator can take quick action such as failure of execution of the application or occurrence of an error in the process.

만약, 어플리케이션의 실행이 종료되거나 실패하게 되면(406), 그 정보는 앞에서 설명한 바와 같이 어플리케이션관리부(330)을 통하여 어플리케이션상태관리부(120)에 전송되며, 분산플랫폼노드관리부(310)는 해당되는 어플리케이션을 위하여 할당한 자원을 회수하고, 회수된 자원에 대한 정보를 분산플랫폼리소스관리부(210)에 전송한다(407). If the execution of the application is terminated or unsuccessful 406, the information is transmitted to the application state management unit 120 through the application management unit 330 as described above, and the distributed platform node management unit 310 transmits the corresponding application And transmits information on the collected resources to the distributed platform resource management unit 210 (407).

자원을 회수한다는 말은 어플리케이션컨테이너(340)을 제거하고, 어플리케이션컨테이너(340)에 할당된 자원을 회수하여 그 자원을 다시 활용할 수 있는 상태로 돌린다는 의미이다. The term reclaiming resources means that the application container 340 is removed, the resources allocated to the application container 340 are recovered, and the resources are returned to a state where they can be used again.

이 때, 개별적인 어플리케이션별, 슬레이브노드별로 자원의 회수가 이루어지도록 할 수도 있고, 전체 프로세스가 종료되거나 실행이 불가능할 때 그 프로세스와 관련된 모든 어플리케이션을 위해 할당된 자원이 회수되도록 할 수도 있을 것이다. At this time, the resources may be collected for each individual application and the slave node, or the resources allocated for all applications related to the process may be collected when the entire process is terminated or not executable.

예를 들어, 다른 슬레이브노드에 할당된 어플리케이션은 정상적으로 실행이 되고 있지만, 어느 하나의 슬레이브노드에 할당된 어플리케이션에 오류가 발생하여 전체 프로세스의 진행이 어렵다고 판정되는 경우, 분산플랫폼리소스관리부(210)는 관련된 모든 슬레이브노드에서의 프로세스의 진행을 중지하고, 자원이 회수되도록 명령할 수 있을 것이다. For example, if an application assigned to another slave node is normally executed but an application assigned to a slave node has an error and it is determined that the entire process is difficult to proceed, the distributed platform resource management unit 210 It will stop the progress of the process at all the slave nodes involved and command the resource to be reclaimed.

(한편, 상기와 같은 경우에 오류가 발생한 어플리케이션관리부(330)가 해당 어플리케이션을 재실행시켜서 전체 프로세스가 정상적으로 돌아갈 수 있도록 할 수도 있다. 어떤 선택을 하는지 여부, 재실행시키는 경우 재실행횟수 등은 시스템 설계자의 선택에 따라 달라질 수 있다)(In the case of the above, the application management unit 330 may cause the application management unit 330 to re-execute the application so that the entire process can be normally performed.) Whether or not to select the application, the number of times of re- ≪ / RTI >

이와 같이, 한번 확보한 자원을 정적으로 계속 유지하는 것이 아니라, 자원이 필요할 때마다 자원을 확보하여 어플리케이션 등을 할당하고, 이용이 종료되면 다시 그 자원을 회수하여 다른 프로세스에 이용될 수 있도록 함으로써 자원의 효율적인 활용이 가능해지는 장점이 있다. In this way, instead of keeping the resources once secured, the resources are secured every time resources are needed, and applications and the like are allocated. When the use ends, the resources are collected again so that they can be used for other processes It is possible to utilize it efficiently.

본 발명의 상기 방법은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The method of the present invention can also be embodied as computer readable code on a computer readable recording medium. A computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored. Examples of the computer-readable recording medium include a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, an optical data storage device, and the like, and may be implemented in the form of a carrier wave (for example, transmission via the Internet) . The computer-readable recording medium may also be distributed over a networked computer system so that computer readable code can be stored and executed in a distributed manner.

본 발명은 첨부된 도면에 도시된 일 실시예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 당해 기술분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 수 있을 것이다. 따라서, 본 발명의 진정한 보호 범위는 첨부된 특허청구범위에 의해서만 정해져야 할 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is clearly understood that the same is by way of illustration and example only and is not to be taken by way of limitation, You will understand. Accordingly, the true scope of protection of the present invention should be determined only by the appended claims.

Claims (19)

소정의 프로세스를 복수의 슬레이브노드에 분산하여 컴퓨팅 작업을 수행하는 분산 컴퓨팅 시스템에 있어서,
상기 슬레이브노드의 자원을 상기 프로세스에 할당, 회수 및 관리하는 분산플랫폼리소스관리부;를 포함하는 마스터노드와,
상기 슬레이브노드의 이용가능한 자원에 관한 정보를 파악하여 상기 분산플랫폼리소스관리부에 제공하고, 상기 분산플랫폼리소스관리부의 제어에 따라 상기 슬레이브노드의 이용가능한 자원을 상기 프로세스를 진행하기 위한 독립실행환경으로 구현된 공간인 어플리케이션컨테이너에 할당하여, 상기 프로세스를 위한 어플리케이션이 실행될 수 있도록 하는 분산플랫폼노드관리부;
상기 슬레이브노드 간에 연결을 수행하는 가상네트워크스위치; 및
상기 어플리케이션컨테이너에 실행되는 어플리케이션의 상태를 관리하는 어플리케이션관리부;를 포함하는 상기 슬레이브노드와,
상기 가상네트워크스위치의 연결관계를 관리하는 가상네트워크스위치관리부;
상기 어플리케이션관리부와의 데이터교환을 통해 상기 슬레이브노드에 실행되는 어플리케이션의 상태를 관리하는 어플리케이션상태관리부; 및
상기 프로세스를 진행하기 위하여 각 슬레이브노드에 설치되는 어플리케이션의 입출력 데이터가 저장되는 채널에 속하는 슬레이브노드의 네트워크 정보를 관리하여 상기 각 슬레이브노드에 설치되는 어플리케이션이 상기 입출력데이터를 상기 채널로 송수신할 수 있도록 하는 어플리케이션통신채널관리부;를 포함하는 분산플랫폼관리시스템을 포함하는 것을 특징으로 하는 독립실행환경을 제공하는 분산 컴퓨팅 시스템.
A distributed computing system for performing a computing operation by distributing a predetermined process to a plurality of slave nodes,
And a distributed platform resource management unit that allocates, reclaims, and manages resources of the slave node to the process,
The slave node obtains information on available resources of the slave node and provides the slave node resource to the distributed platform resource management unit and implements the slave node's available resources as a standalone execution environment for the process according to the control of the distributed platform resource management unit A distributed platform node management unit that allocates the application platform to an application container that is a space and allows an application for the process to be executed;
A virtual network switch for performing a connection between the slave nodes; And
And an application management unit for managing the status of an application executed in the application container,
A virtual network switch management unit for managing connection relationships of the virtual network switches;
An application state management unit for managing a state of an application executed on the slave node through data exchange with the application management unit; And
In order to proceed with the process, the slave node manages network information of a slave node belonging to a channel storing input / output data of an application installed in each slave node so that an application installed in each slave node can transmit / receive the input / output data to / And a distributed platform management system including an application communication channel management unit that manages the distributed communication system.
제1항에 있어서, 상기 어플리케이션통신채널관리부는 상기 채널에 속하는 슬레이브노드별로 접속하는 슬레이브노드의 수를 제어하는 플로우 컨트롤을 수행하는 것을 특징으로 하는 독립실행환경을 제공하는분산 컴퓨팅 시스템. The distributed computing system according to claim 1, wherein the application communication channel management unit performs flow control for controlling the number of slave nodes connected to each slave node belonging to the channel. 제1항에 있어서, 상기 어플리케이션관리부는 상기 어플리케이션컨테이너 내에서 구동되는 것을 특징으로 하는 독립실행환경을 제공하는분산 컴퓨팅 시스템. The distributed computing system according to claim 1, wherein the application management unit is operated in the application container. 제1항에 있어서, 상기 가상네트워크스위치는 연결이 되어야 하는 다른 슬레이브노드의 가상네트워크스위치와 터널링을 통해 연결이 되는 것을 특징으로 하는 독립실행환경을 제공하는분산 컴퓨팅 시스템. The distributed computing system according to claim 1, wherein the virtual network switch is connected to a virtual network switch of another slave node to be connected through tunneling. 제1항에 있어서, 상기 분산플랫폼리소스관리부는
상기 분산플랫폼노드관리부로부터 상기 슬레이브노드의 활용가능한 자원에 대한 정보를 받아서 상기 프로세스에 이용될 슬레이브노드를 선택하고,
상기 선택된 슬레이브노드에 상기 프로세스를 진행하기 위한 자원이 할당되는 어플리케이션컨테이너가 생성되도록 하는 방식으로, 동적으로 자원이 할당되도록 하는 것을 특징으로 하는 독립실행환경을 제공하는분산 컴퓨팅 시스템.
The method of claim 1, wherein the distributed platform resource management unit
Receiving information on available resources of the slave node from the distributed platform node management unit, selecting a slave node to be used in the process,
And allocating resources dynamically in such a manner that an application container to which a resource for proceeding the process is allocated is created in the selected slave node.
제5항에 있어서, 상기 분산플랫폼리소스관리부는 상기 프로세스를 위해 상기 슬레이브노드의 어플리케이션컨테이너에서 실행된 어플리케이션이 종료된 것으로 확인되면, 상기 어플리케이션컨테이너에 할당된 자원이 회수되도록 하여 다른 프로세스에 이용가능한 상태가 되도록 제어하는 것을 특징으로 하는 독립실행환경을 제공하는분산 컴퓨팅 시스템. The distributed resource management system according to claim 5, wherein, when it is determined that the application executed in the application container of the slave node is terminated for the process, the distributed platform resource management unit causes the resources allocated to the application container to be collected, The distributed computing system providing the independent execution environment. 제1항에 있어서, 상기 분산플랫폼관리시스템은
상기 슬레이브노드에 설치되는 독립실행환경이 이미지구조의 파일형태로 저장되어 있는 독립실행환경이미지저장부;를 더 포함하고,
상기 슬레이브노드는 상기 이미지구조의 파일을 이용하여 독립실행환경을 구현하는 것을 특징으로 하는 독립실행환경을 제공하는분산 컴퓨팅 시스템.
The system of claim 1, wherein the distributed platform management system
And an independent execution environment image storage unit in which an independent execution environment installed in the slave node is stored in a file form of an image structure,
Wherein the slave node implements an independent execution environment using the file of the image structure.
제1항에 있어서, 상기 슬레이브노드는 가상머신을 이용하지 않는 것을 특징으로 하는 독립실행환경을 제공하는분산 컴퓨팅 시스템. The distributed computing system according to claim 1, wherein the slave node does not use a virtual machine. 호스트 단말기의 자원을 할당받아 상기 할당된 자원을 이용하여 독립실행환경으로 구현되는 어플리케이션컨테이너에서 소정의 프로세스를 진행하기 위한 어플리케이션을 실행하는 복수의 슬레이브노드에 상기 프로세스를 분산하여 컴퓨팅 작업을 수행하는 분산 컴퓨팅 시스템에 있어서,
상기 프로세스의 진행을 위하여 상기 슬레이브노드의 자원이 동적으로 할당되도록 제어하는 분산플랫폼리소스관리부;
상기 슬레이브노드의 연결관계를 관리하는 가상 네트워크스위치관리부;
상기 슬레이브노드에서 실행되는 어플리케이션의 상태를 관리하는 어플리케이션상태관리부; 및
상기 프로세스를 진행하기 위하여 각 슬레이브노드에 설치되는 어플리케이션의 입출력 데이터가 저장되는 채널에 속하는 슬레이브노드의 네트워크 정보를 관리하여 상기 각 슬레이브노드에 설치되는 어플리케이션이 상기 입출력데이터를 상기 채널로 송수신할 수 있도록 하는 어플리케이션통신채널관리부;를 포함하는 분산플랫폼관리시스템을 포함하는 것을 특징으로 하는 독립실행환경을 제공하는분산 컴퓨팅 시스템.
A distributed process for distributing the process to a plurality of slave nodes that execute an application for proceeding with a predetermined process in an application container that is allocated in a stand-alone execution environment using the allocated resources, In a computing system,
A distributed platform resource management unit for controlling resources of the slave node to be dynamically allocated for the progress of the process;
A virtual network switch management unit for managing connection relationships of the slave nodes;
An application state management unit for managing a state of an application executed in the slave node; And
In order to proceed with the process, the slave node manages network information of a slave node belonging to a channel storing input / output data of an application installed in each slave node so that an application installed in each slave node can transmit / receive the input / output data to / And a distributed platform management system including an application communication channel management unit that manages the distributed communication system.
제9항에 있어서, 상기 어플리케이션통신채널관리부는 상기 채널에 속하는 슬레이브노드별로 접속하는 슬레이브노드의 수를 제어하는 플로우 컨트롤을 수행하는 것을 특징으로 하는 독립실행환경을 제공하는분산 컴퓨팅 시스템.The distributed computing system according to claim 9, wherein the application communication channel management unit performs flow control for controlling the number of slave nodes connected to each slave node belonging to the channel. 제9항에 있어서, 상기 분산플랫폼리소스관리부는
상기 슬레이브노드로부터 상기 슬레이브노드의 활용가능한 자원에 대한 정보를 받아서 상기 프로세스에 이용될 슬레이브노드를 선택하고,
상기 선택된 슬레이브노드에 상기 프로세스를 위한 자원이 할당되고, 독립적인 실행환경을 갖는 어플리케이션컨테이너가 생성되도록 하는 방식으로, 동적으로 자원이 할당되도록 하는 것을 특징으로 하는 독립실행환경을 제공하는분산 컴퓨팅 시스템.
The system according to claim 9, wherein the distributed platform resource management unit
Receiving information on available resources of the slave node from the slave node, selecting a slave node to be used in the process,
Wherein resources are allocated to the selected slave node, and an application container having an independent execution environment is created, so that resources are dynamically allocated.
제11항에 있어서, 상기 분산플랫폼리소스관리부는 상기 프로세스를 위해 상기 슬레이브노드의 어플리케이션컨테이너에서 실행된 어플리케이션이 종료된 것으로 확인되면, 상기 어플리케이션컨테이너에 할당된 자원이 회수되도록 하여 다른 프로세스에 이용가능한 상태가 되도록 제어하는 것을 특징으로 하는 독립실행환경을 제공하는분산 컴퓨팅 시스템. 12. The method of claim 11, wherein the distributed platform resource management unit, when it is determined that the application executed in the application container of the slave node is terminated for the process, The distributed computing system providing the independent execution environment. 제9항에 있어서, 상기 분산 컴퓨팅 시스템은
상기 슬레이브노드에 설치되는 독립실행환경이 이미지구조의 파일형태로 저장되어 있는 독립실행환경이미지저장부;를 더 포함하고,
상기 슬레이브노드는 상기 이미지구조의 파일을 이용하여 독립실행환경을 구현하는 것을 특징으로 하는 독립실행환경을 제공하는분산 컴퓨팅 시스템.
10. The system of claim 9, wherein the distributed computing system
And an independent execution environment image storage unit in which an independent execution environment installed in the slave node is stored in a file form of an image structure,
Wherein the slave node implements an independent execution environment using the file of the image structure.
제9항에 있어서, 상기 슬레이브노드는 가상머신을 이용하지 않는 것을 특징으로 하는 독립실행환경을 제공하는분산 컴퓨팅 시스템. 10. The distributed computing system according to claim 9, wherein the slave node does not use a virtual machine. 호스트 단말기의 자원을 할당받아 상기 할당된 자원을 이용하여 독립실행환경으로 구현되는 어플리케이션컨테이너에서 소정의 프로세스를 진행하기 위한 어플리케이션을 실행하는 복수의 슬레이브노드에 상기 프로세스를 분산하여 컴퓨팅 작업을 수행하는 분산 컴퓨팅 시스템의 제어방법에 있어서,
상기 프로세스의 진행을 위하여 상기 슬레이브노드의 자원이 동적으로 할당되도록 제어하는 단계;
상기 슬레이브노드의 할당된 자원에 생성된 어플리케이션컨테이너에서 상기 프로세스를 위한 어플리케이션이 실행되도록 하는 단계;
상기 프로세스를 진행하기 위하여 각 슬레이브노드에 설치되는 어플리케이션의 입출력 데이터가 저장되는 채널에 속하는 슬레이브노드의 네트워크 정보를 관리하여 상기 각 슬레이브노드에 설치되는 어플리케이션이 상기 입출력데이터를 상기 채널로 송수신할 수 있도록 하는 단계; 및
상기 어플리케이션이 종료되는 경우, 상기 슬레이브노드에 할당된 자원을 회수하는 단계;를 포함하는 것을 특징으로 하는 분산 컴퓨팅 시스템의 제어방법.
A distributed process for distributing the process to a plurality of slave nodes that execute an application for proceeding with a predetermined process in an application container that is allocated in a stand-alone execution environment using the allocated resources, A method of controlling a computing system,
Controlling the resources of the slave node to be dynamically allocated for the progress of the process;
Causing an application for the process to be executed in an application container created in an allocated resource of the slave node;
In order to proceed with the process, the slave node manages network information of a slave node belonging to a channel storing input / output data of an application installed in each slave node so that an application installed in each slave node can transmit / receive the input / output data to / ; And
And collecting resources allocated to the slave node when the application is terminated.
제15항에 있어서, 상기 슬레이브노드의 자원이 동적으로 할당되도록 제어하는 단계는
상기 슬레이브노드로부터 상기 슬레이브노드의 활용가능한 자원에 대한 정보를 받아서 상기 프로세스에 이용될 슬레이브노드를 선택하는 단계; 및
상기 선택된 슬레이브노드에 상기 프로세스를 위한 자원이 할당되고, 독립적인 실행환경을 갖는 어플리케이션컨테이너가 생성되도록 하는 방식으로, 동적으로 자원이 할당되도록 하는 단계;를 포함하는 것을 특징으로 하는 독립실행환경을 제공하는분산 컴퓨팅 시스템의 제어방법.
16. The method of claim 15, wherein controlling the resources of the slave node to be dynamically allocated comprises:
Receiving information on available resources of the slave node from the slave node and selecting a slave node to be used in the process; And
And allocating resources dynamically in such a manner that a resource for the process is allocated to the selected slave node and an application container having an independent execution environment is created. And a control method of the distributed computing system.
제15항에 있어서, 상기 분산 컴퓨팅 시스템의 제어방법은
상기 복수의 슬레이브노드에 포함된 각 슬레이브노드간에 터널링을 통하여 연결이 되도록 하는 것을 특징으로 하는 독립실행환경을 제공하는분산 컴퓨팅 시스템의 제어방법.
16. The method of claim 15, wherein the control method of the distributed computing system
Wherein the plurality of slave nodes are connected through tunneling among the slave nodes included in the plurality of slave nodes.
제15항에 있어서, 상기 분산 컴퓨팅 시스템의 제어방법은
상기 채널에 속하는 슬레이브노드별로 접속하는 슬레이브노드의 수를 제어하는 플로우 컨트롤을 수행하는 단계;를 더 포함하는 것을 특징으로 하는 독립실행환경을 제공하는분산 컴퓨팅 시스템의 제어방법.
16. The method of claim 15, wherein the control method of the distributed computing system
And performing flow control to control the number of slave nodes connected to each slave node belonging to the channel.
제15 내지 제18항 중 어느 한 항에 기재된 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium storing a program for realizing the method according to any one of claims 15 to 18.
KR1020150034545A 2015-03-12 2015-03-12 Distributed Computing System providing stand-alone environment and controll method therefor KR101585160B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150034545A KR101585160B1 (en) 2015-03-12 2015-03-12 Distributed Computing System providing stand-alone environment and controll method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150034545A KR101585160B1 (en) 2015-03-12 2015-03-12 Distributed Computing System providing stand-alone environment and controll method therefor

Publications (1)

Publication Number Publication Date
KR101585160B1 true KR101585160B1 (en) 2016-01-13

Family

ID=55172914

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150034545A KR101585160B1 (en) 2015-03-12 2015-03-12 Distributed Computing System providing stand-alone environment and controll method therefor

Country Status (1)

Country Link
KR (1) KR101585160B1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180016839A (en) * 2016-08-08 2018-02-20 주식회사 케이티 Management server, session server and media play device for providing cloud web service
KR20190061241A (en) * 2017-11-27 2019-06-05 주식회사 비디 Mesos process apparatus for unified management of resource and method for the same
KR20190074717A (en) * 2017-12-20 2019-06-28 주식회사 케이티 Cluster Configuration And Management System And Method In Cloud Computing Environment
KR20190114541A (en) 2018-03-30 2019-10-10 웹프라임(주) Apparatus and method for application offloading
KR102163402B1 (en) * 2020-06-15 2020-10-08 주식회사 딥노이드 System for executing distributed deep learning using multi node and multi graphics processing unit and method thereof
KR20220055627A (en) * 2020-10-27 2022-05-04 한국과학기술정보연구원 Method and apparatus for building a computing environment for artificial intelligence learning

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180016839A (en) * 2016-08-08 2018-02-20 주식회사 케이티 Management server, session server and media play device for providing cloud web service
KR101909554B1 (en) * 2016-08-08 2018-10-18 주식회사 케이티 Management server, session server and media play device for providing cloud web service
KR20190061241A (en) * 2017-11-27 2019-06-05 주식회사 비디 Mesos process apparatus for unified management of resource and method for the same
KR102014246B1 (en) * 2017-11-27 2019-10-21 주식회사 비디 Mesos process apparatus for unified management of resource and method for the same
KR20190074717A (en) * 2017-12-20 2019-06-28 주식회사 케이티 Cluster Configuration And Management System And Method In Cloud Computing Environment
KR102617686B1 (en) 2017-12-20 2023-12-22 주식회사 케이티 Cluster Configuration And Management System And Method In Cloud Computing Environment
KR20190114541A (en) 2018-03-30 2019-10-10 웹프라임(주) Apparatus and method for application offloading
KR102163402B1 (en) * 2020-06-15 2020-10-08 주식회사 딥노이드 System for executing distributed deep learning using multi node and multi graphics processing unit and method thereof
KR20220055627A (en) * 2020-10-27 2022-05-04 한국과학기술정보연구원 Method and apparatus for building a computing environment for artificial intelligence learning
KR102481870B1 (en) 2020-10-27 2022-12-28 한국과학기술정보연구원 Method and apparatus for building a computing environment for artificial intelligence learning

Similar Documents

Publication Publication Date Title
KR101585160B1 (en) Distributed Computing System providing stand-alone environment and controll method therefor
US10635496B2 (en) Thread pool management
EP3338184B1 (en) Technique for reconfiguring a virtual machine
CN107924383B (en) System and method for network function virtualized resource management
Sotomayor et al. Capacity leasing in cloud systems using the opennebula engine
US8863138B2 (en) Application service performance in cloud computing
US8806493B2 (en) System and method for providing hardware virtualization in a virtual machine environment
EP3481007B1 (en) Method, apparatus and management server for processing resource pool
JP5577412B2 (en) Computer system, migration method and management server
WO2017067016A1 (en) Extension of resource constraints for service-defined containers
JP5708937B2 (en) Configuration information management system, configuration information management method, and configuration information management program
KR20150011250A (en) Method and system for managing cloud center
KR20160087706A (en) Apparatus and method for resource allocation of a distributed data processing system considering virtualization platform
US9092272B2 (en) Preparing parallel tasks to use a synchronization register
KR101474872B1 (en) Method for elastic virtual cluster management for efficient construction of virtual clusters on cloud, apparatus for elastic virtual cluster management and cloud system using the same
US11461120B2 (en) Methods and apparatus for rack nesting in virtualized server systems
US10846079B2 (en) System and method for the dynamic expansion of a cluster with co nodes before upgrade
KR20150109692A (en) Apparatus and method for providing virtual machine image file
KR102140730B1 (en) Method and system for providing develop environment of deep learning based gpu
GB2558163A (en) Dynamically assigning network addresses
CN112948050A (en) Method and device for deploying pod
CN114546587A (en) Capacity expansion and reduction method of online image recognition service and related device
CN113127144A (en) Processing method, processing device and storage medium
US11966768B2 (en) Apparatus and method for multi-cloud service platform
JP2010211259A (en) Virtual machine system, information processor, resource management method, program and recording medium

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20181226

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20191224

Year of fee payment: 5