KR102106223B1 - Method and device of cloud orchestration based in openstack - Google Patents

Method and device of cloud orchestration based in openstack Download PDF

Info

Publication number
KR102106223B1
KR102106223B1 KR1020180123162A KR20180123162A KR102106223B1 KR 102106223 B1 KR102106223 B1 KR 102106223B1 KR 1020180123162 A KR1020180123162 A KR 1020180123162A KR 20180123162 A KR20180123162 A KR 20180123162A KR 102106223 B1 KR102106223 B1 KR 102106223B1
Authority
KR
South Korea
Prior art keywords
requirements
cloud orchestration
script
selection
orchestration device
Prior art date
Application number
KR1020180123162A
Other languages
Korean (ko)
Other versions
KR20200042702A (en
Inventor
염근혁
박준석
김대호
최현빈
이유은
장성영
정수민
Original Assignee
부산대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 부산대학교 산학협력단 filed Critical 부산대학교 산학협력단
Priority to KR1020180123162A priority Critical patent/KR102106223B1/en
Publication of KR20200042702A publication Critical patent/KR20200042702A/en
Application granted granted Critical
Publication of KR102106223B1 publication Critical patent/KR102106223B1/en

Links

Images

Classifications

    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

클라우드 오케스트레이션 방법 및 클라우드 오케스트레이션 장치가 개시된다. 본 발명의 일실시예에 따른 오픈스택 기반의 클라우드 오케스트레이션 방법은, 템플릿 스크립트의 생성 요청에 연동하여, 상기 생성 요청에 포함되는 사용자 요구사항을 분류하는 단계, 상기 사용자 요구사항을 기능적 요구사항으로 분류하는 경우, 상기 기능적 요구사항에 속한 선택 요구사항(Option PR)에 의해 결정된 선택 항목에 대해 쉘 스크립트를 작성하는 단계, 및 상기 쉘 스크립트를 실행하는 템플릿 스크립트를 생성 함으로써, 상기 템플릿 스크립트를 전달 받은 히트 오케스트레이터(Heat Orchestrator)에서 상기 기능적 요구사항을 구현하는 VM(Virtual Machine)이 구동하도록 하는 단계를 포함할 수 있다.A cloud orchestration method and a cloud orchestration device are disclosed. An open stack-based cloud orchestration method according to an embodiment of the present invention is linked to a request to generate a template script, classifying user requirements included in the creation request, and classifying the user requirements as functional requirements If it does, creating a shell script for a selection item determined by a selection requirement (Option PR) belonging to the functional requirement, and generating a template script that executes the shell script, the hit received the template script In an orchestrator, a virtual machine (VM) that implements the functional requirements may be driven.

Description

오픈스택 기반의 클라우드 오케스트레이션 방법 및 장치{METHOD AND DEVICE OF CLOUD ORCHESTRATION BASED IN OPENSTACK}Method and device for cloud orchestration based on open stack {METHOD AND DEVICE OF CLOUD ORCHESTRATION BASED IN OPENSTACK}

본 발명은 오픈소스 클라우드 플랫폼인 오픈스택(OpenStack) 환경에서 클라우드 환경 구축을 자동화하는 장치인 오픈스택 히트 오케스트레이터(OpenStack Heat Orchestrator)와, 이 오픈스택 히트 오케스트레이터에서 사용되는 템플릿 스크립트를, 사용자 요구사항에 맞춰 자동으로 생성하는, 오픈스택 기반의 클라우드 오케스트레이션 방법 및 장치에 관한 것이다.The present invention is an open source cloud platform OpenStack (OpenStack) environment, the device for automating the construction of a cloud environment OpenStack Heat Orchestrator (OpenStack Heat Orchestrator) and the template script used in this OpenStack Heat Orchestrator, the user needs It relates to an open-stack-based cloud orchestration method and device, which is automatically generated according to the requirements.

종래에는, 전체 클라우드를 대상으로 오케스트레이션에서 서비스를 활용하는 방법, 서비스 자체를 오케스트레이션 하는데 필요한 프로파일링 기법, 각 가상 자원들을 통합시키는 오케스트레이션 방법 만을 한정하여 기술하고 있다.Conventionally, only the method of utilizing the service in the orchestration for the entire cloud, the profiling technique required to orchestrate the service itself, and the orchestration method of integrating each virtual resource are limitedly described.

예컨대, 한국 공개번호 2016-0118708A (2016-10-12) '분산 클라우드 환경에서 서비스 오케스트레이션 시스템 및 방법'에서는, 클라우드 네트워크에 분산되어 있는 네트워크 자원을 통합하여 서비스 제공자가 요구하는 서비스 제공하기 위한 서비스 오케스트레이션 시스템 및 방법을 개시하고 있다.For example, in Korean Publication No. 2016-0118708A (2016-10-12) 'Service Orchestration System and Method in a Distributed Cloud Environment', service orchestration for providing services required by a service provider by integrating network resources distributed in a cloud network Systems and methods are disclosed.

또한, 한국 공개번호 2017-0016962A (2017-02-14) '자동화된 서비스 프로파일링 및 오케스트레이션'에서는, 서비스 오케스트레이션 프로파일들이 노드들 간에 분산되고 서로 계층적으로 관련되어 있어, 원하는 서비스들을 결정하고 원하는 서비스들을 구현하는 데 정보를 사용하기 위해 서비스 오케스트레이션 프로파일들 내의 정보를 처리하는 것이 예시되고 있다.In addition, in Korean Publication No. 2017-0016962A (2017-02-14), 'Automated Service Profiling and Orchestration', service orchestration profiles are distributed among nodes and hierarchically related to each other, thereby determining desired services and desired services. It has been illustrated to process information in service orchestration profiles to use the information to implement them.

따라서, 종래 개시되어 있는 발명들과 차별되도록, 오픈스택 환경의 플랫폼 구축 자동화를 지원해주는 오케스트레이션 서비스인 히트 오케스트레이터에서 동작하는 스크립트를 자동 생성하는 기술이 필수적으로 요구되고 있다.Therefore, in order to be differentiated from the conventionally disclosed inventions, a technique for automatically generating a script operating in a heat orchestrator, an orchestration service that supports automation of platform construction in an open stack environment, is required.

본 발명의 실시예는, 사용자 요구사항을 기능적/비기능적 요구사항으로 분류하여 템플릿 스크립트에 들어갈 내용을 자동으로 생성 함으로써, 히트 오케스트레이터에서 동작하는 스크립트를 용이하게 생성하는 것을 목적으로 한다.According to an embodiment of the present invention, a user's requirements are classified into functional / non-functional requirements, and the object of the template script is automatically generated to easily generate a script that operates in a heat orchestrator.

또한, 본 발명의 실시예는, 사용자 요구사항에 기반하여, 히트 오케스트레이션 템플릿을 자동으로 생성하는 아키텍처 및 프로세스를 제시하고, 해당 프로세스를 이용하여 생성된 히트 오케스트레이션 템플릿을 통해, 클라우드 환경 구축에 필요한 여러 리소스의 생성 및 설정을 자동화 할 수 있게 하는 것을 다른 목적으로 한다.In addition, the embodiment of the present invention, based on user requirements, presents an architecture and a process for automatically generating a heat orchestration template, and through the heat orchestration template generated using the process, several necessary for building a cloud environment Another goal is to enable automation of resource creation and configuration.

본 발명의 일실시예에 따른 오픈스택 기반의 클라우드 오케스트레이션 방법은, 템플릿 스크립트의 생성 요청에 연동하여, 상기 생성 요청에 포함되는 사용자 요구사항을 분류하는 단계, 상기 사용자 요구사항을 기능적 요구사항으로 분류하는 경우, 상기 기능적 요구사항에 속한 선택 요구사항(Option PR)에 의해 결정된 선택 항목에 대해 쉘 스크립트를 작성하는 단계, 및 상기 쉘 스크립트를 실행하는 템플릿 스크립트를 생성 함으로써, 상기 템플릿 스크립트를 전달 받은 히트 오케스트레이터(Heat Orchestrator)에서 상기 기능적 요구사항을 구현하는 VM(Virtual Machine)이 구동하도록 하는 단계를 포함할 수 있다.An open stack-based cloud orchestration method according to an embodiment of the present invention is linked to a request to generate a template script, classifying user requirements included in the creation request, and classifying the user requirements as functional requirements If it does, creating a shell script for a selection item determined by a selection requirement (Option PR) belonging to the functional requirement, and generating a template script that executes the shell script, the hit received the template script In an orchestrator, a virtual machine (VM) that implements the functional requirements may be driven.

또한, 본 발명의 실시예에 따른 오픈스택 기반의 클라우드 오케스트레이션 장치는, 템플릿 스크립트의 생성 요청에 연동하여, 상기 생성 요청에 포함되는 사용자 요구사항을 분류하는 분류부, 상기 사용자 요구사항을 기능적 요구사항으로 분류하는 경우, 상기 기능적 요구사항에 속한 선택 요구사항에 의해 결정된 선택 항목에 대해 쉘 스크립트를 작성하는 작성부, 및 상기 쉘 스크립트를 실행하는 템플릿 스크립트를 생성 함으로써, 상기 템플릿 스크립트를 전달 받은 히트 오케스트레이터에서 상기 기능적 요구사항을 구현하는 VM이 구동하도록 하는 생성부를 포함하여 구성할 수 있다.In addition, the open-stack-based cloud orchestration device according to an embodiment of the present invention, in conjunction with a request to create a template script, a classification unit to classify user requirements included in the creation request, functional requirements for the user requirements In the case of classifying as, when creating a script that creates a shell script for a selection item determined by a selection requirement belonging to the functional requirement, and a template script that executes the shell script, the hit ok that receives the template script It can be configured to include a generator that allows a VM that implements the functional requirements to run on a strator.

본 발명의 일실시예에 따르면, 사용자 요구사항을 기능적/비기능적 요구사항으로 분류하여 템플릿 스크립트에 들어갈 내용을 자동으로 생성 함으로써, 히트 오케스트레이터에서 동작하는 스크립트를 용이하게 생성할 수 있다.According to an embodiment of the present invention, by classifying user requirements into functional / non-functional requirements, the contents to be entered into the template script are automatically generated, so that a script operating in the heat orchestrator can be easily generated.

또한, 본 발명의 일실시예에 따르면, 사용자 요구사항에 기반하여, 히트 오케스트레이션 템플릿을 자동으로 생성하는 아키텍처 및 프로세스를 제시하고, 해당 프로세스를 이용하여 생성된 히트 오케스트레이션 템플릿을 통해, 클라우드 환경 구축에 필요한 여러 리소스의 생성 및 설정을 자동화 할 수 있다.In addition, according to an embodiment of the present invention, based on user requirements, to present an architecture and process for automatically generating a heat orchestration template, and through the heat orchestration template generated using the process, to build a cloud environment You can automate the creation and configuration of multiple required resources.

도 1은 본 발명의 일실시예에 따른, 클라우드 오케스트레이션 장치의 내부 구성을 도시한 블록도이다.
도 2는 본 발명에 따른 클라우드 오케스트레이션 장치와 관련한 시스템 아키텍처의 개요를 설명하기 위한 도면이다.
도 3은 본 발명에 따른 Template 생성을 위한 자동화 프로세스를 설명하기 위한 도면이다.
도 4a 내지 도 4c는 본 발명에 따라 생성된 템플릿 스크립트를 예시하는 도면이다.
도 5는 본 발명의 일실시예에 따른, 클라우드 오케스트레이션 방법의 순서를 도시한 흐름도이다.
1 is a block diagram showing an internal configuration of a cloud orchestration device according to an embodiment of the present invention.
2 is a view for explaining an overview of the system architecture related to the cloud orchestration device according to the present invention.
3 is a view for explaining an automated process for creating a template according to the present invention.
4A to 4C are diagrams illustrating template scripts generated according to the present invention.
5 is a flowchart illustrating a procedure of a cloud orchestration method according to an embodiment of the present invention.

이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, various changes may be made to the embodiments, and the scope of the patent application right is not limited or limited by these embodiments. It should be understood that all modifications, equivalents, or substitutes for the embodiments are included in the scope of rights.

실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the examples are used for illustrative purposes only and should not be construed as limiting. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this specification, the terms "include" or "have" are intended to indicate the presence of features, numbers, steps, actions, components, parts or combinations thereof described herein, one or more other features. It should be understood that the existence or addition possibilities of fields or numbers, steps, operations, components, parts or combinations thereof are not excluded in advance.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by a person skilled in the art to which the embodiment belongs. Terms, such as those defined in a commonly used dictionary, should be interpreted as having meanings consistent with meanings in the context of related technologies, and should not be interpreted as ideal or excessively formal meanings unless explicitly defined in the present invention. Does not.

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same reference numerals are assigned to the same components regardless of reference numerals, and redundant descriptions thereof will be omitted. In describing the embodiments, when it is determined that detailed descriptions of related well-known technologies may unnecessarily obscure the subject matter of the embodiments, detailed descriptions thereof will be omitted.

도 1은 본 발명의 일실시예에 따른, 클라우드 오케스트레이션 장치의 내부 구성을 도시한 블록도이다.1 is a block diagram showing an internal configuration of a cloud orchestration device according to an embodiment of the present invention.

도 1를 참조하면, 본 발명의 일실시예에 따른, 클라우드 오케스트레이션 장치(100)는, 분류부(110), 작성부(120), 및 생성부(130)를 포함하여 구성할 수 있다. 또한, 실시예에 따라, 클라우드 오케스트레이션 장치(100)는 처리부(140)를 선택적으로 추가하여 구성할 수 있다.Referring to FIG. 1, according to an embodiment of the present invention, the cloud orchestration device 100 may include a classification unit 110, a creation unit 120, and a generation unit 130. Further, according to an embodiment, the cloud orchestration device 100 may be configured by selectively adding the processing unit 140.

우선, 분류부(110)는 템플릿 스크립트의 생성 요청에 연동하여, 상기 생성 요청에 포함되는 사용자 요구사항을 분류한다. 즉, 분류부(110)는 상기 사용자 요구사항이 기능적 요구사항인지, 비기능적 요구사항인지를 판별하는 기능을 수행할 수 있다.First, the classifying unit 110 classifies user requirements included in the creation request by interworking with the creation request of the template script. That is, the classification unit 110 may perform a function of determining whether the user requirements are functional requirements or non-functional requirements.

기능적 요구사항은 시스템이 보유하고 있어야 하는 기능별 요구에 관한 것으로서, 예컨대, '기계설비 및 제어'에 있어서의, 난방 제어, 냉동기 제어, 보일러 제어, 조명 제어, 공조 제어, 블라인드 제어, 냉방 제어, 전력 제어 등의 요구사항으로 정의할 수 있다.Functional requirements relate to functional requirements that the system must have, such as in 'machinery and control', heating control, freezer control, boiler control, lighting control, air conditioning control, blind control, cooling control, power It can be defined as requirements such as control.

비기능 요구사항은 시스템으로의 접속에 관한 외적 요구에 관한 것으로서, 예컨대, 총 기기 수, VM 접근 인원 수, 반응 시간, 고가용성 지원 여부 등의 요구사항으로 정의할 수 있다.Non-functional requirements are related to external requests for access to the system, and can be defined as requirements such as the total number of devices, the number of VM access personnel, reaction time, and availability of high availability.

상기 사용자 요구사항을 기능적 요구사항으로 분류하는 경우, 작성부(120)는 상기 기능적 요구사항에 속한 선택 요구사항(Option PR)에 의해 결정된 선택 항목에 대해 쉘 스크립트를 작성한다. 즉, 작성부(120)는, VM(Virtual Machine)의 구동을 위한 템플릿 스크립트에 포함된 쉘 스크립트를, 선택 항목 단위로 작성하는 역할을 할 수 있다.When classifying the user requirements as functional requirements, the composition unit 120 creates a shell script for selection items determined by the selection requirements (Option PR) belonging to the functional requirements. That is, the writing unit 120 may serve to write a shell script included in a template script for driving a virtual machine (VM) in units of selection items.

상기 선택 요구사항은, 사용자가 필요로 하여 특정하여 선택하는 기능을 의미할 수 있다. 예컨대, 엘리베이터를 통해 내방하는 고객을 모니터링하고자 하는 사용자는 상기 선택 요구사항으로서, '엘리베이터', '원격 검침', '방문객 관리'를 선택할 수 있고, 이들 선택 요구사항을 포함시켜, 기능적 요구사항을 요청할 수 있다.The selection requirement may refer to a function required by a user to select and select. For example, a user who wants to monitor a customer visiting through an elevator can select 'elevator', 'remote meter reading', and 'visitor management' as the above selection requirements, and include these selection requirements to satisfy functional requirements. You can ask.

이후, 작성부(120)는 선택 요구사항 각각에 대해, 쉘 스크립트를 작성하며, 예컨대 상술의 예에서, 어플리케이션의 동작에 의해, '엘리베이터.sh', '원격 검침.sh', '방문객 관리.sh' 이라는 쉘 스크립트를 작성할 수 있다.Subsequently, the creating unit 120 creates a shell script for each of the selection requirements, for example, in the above-described example, 'elevator.sh', 'remote meter reading.sh', and 'visitor management' by the operation of the application. You can write a shell script called sh '.

실시예에 따라, 작성부(120)는, 상기 선택 요구사항에 의해 결정된 선택 항목을 해석하고, 상기 해석 결과에 따라, 결정되어야 하는 공통 요구사항(Common PR)의 공통 항목을 식별할 수 있다. 즉, 작성부(120)는 선택 항목과 연계되어 동작되어야 하는 공통 항목을 결정하는 역할을 할 수 있다.According to an embodiment, the preparation unit 120 may analyze a selection item determined by the selection requirement, and identify a common item of a common requirement (Common PR) to be determined according to the analysis result. That is, the creation unit 120 may serve to determine a common item to be operated in connection with the selected item.

상술의 예와 같이, 선택 요구사항으로서, '엘리베이터', '원격 검침', '방문객 관리'가 선택되는 경우, 작성부(120)는, 이들 선택 항목을 해석하여, 선택 항목의 기능들이 수행되는 데에 필수로 요구되는 난방 제어, 냉동기 제어에 관한 '기계설비 및 제어'와, 에너지 소비 분석, 에너지 평가에 관한 'BMES'을 공통 항목으로 식별할 수 있다.As in the above-described example, when 'elevator', 'remote meter reading', and 'visitor management' are selected as the selection requirements, the composer 120 interprets these selection items and performs the functions of the selection items The 'mechanical and control' related to heating control and freezer control, which are essential for the purpose, and 'BMES' for energy consumption analysis and energy evaluation can be identified as common items.

이후, 작성부(120)는 식별된 상기 공통 항목에 대해 쉘 스크립트를 작성할 수 있다. 즉, 작성부(120)는, 선택 항목 단위의 쉘 스크립트를 작성하는 것과 함께, 공통 항목 단위의 쉘 스크립트를 작성할 수 있다. 예컨대, 작성부(120)는 식별된 공통 항목 '기계설비 및 제어'와, 'BMES'를 포함하는 쉘 스크립트 'Common.sh'를 작성할 수 있다.Thereafter, the creating unit 120 may create a shell script for the identified common item. That is, the creation unit 120 can create a shell script in units of a common item in addition to creating a shell script in units of a selected item. For example, the creation unit 120 may create a shell script 'Common.sh' including the identified common items 'machinery and control' and 'BMES'.

상기 선택 요구사항에 의해 선택 항목이 결정되지 않는 경우, 작성부(120)는, 사전에 정해진 공통 요구사항 내 기본 공통 항목을 식별하고, 상기 기본 공통 항목에 대해 쉘 스크립트를 작성할 수 있다. 즉, 작성부(120)는, 사용자가 별도의 선택 항목을 선택하지 않음에 따라, 사전에 정한 기본 공통 항목에 관한 쉘 스크립트를 작성할 수 있다. 예컨대, 사용자 요구사항이 건물에 대한 관리로 해석된다면, 작성부(120)는 '조명 제어', '전력 제어' 등을 포함하여 기본 공통 항목을 식별하여, 관련된 쉘 스크립트를 작성할 수 있다.When a selection item is not determined by the selection requirement, the creation unit 120 may identify a basic common item in a predetermined common requirement and create a shell script for the basic common item. That is, as the user 120 does not select a separate selection item, the creation unit 120 may create a shell script for a basic common item determined in advance. For example, if the user requirements are interpreted as management for a building, the creation unit 120 may identify basic common items including 'light control', 'power control', and the like, and create a related shell script.

또는, 사용자가 선택한 선택 항목이 규정되어 있지 않은 항목일 경우, 작성부(120)는 미리 정한 기본 공통 항목을 쉘 스크립트로 작성할 수 있다. 예컨대, 사용자가 선택한 선택 항목이 '도난 감시'이나, 해당 항목이 아직 규정되어 있지 않는다면, 작성부(120)는 '도난 감시'와 가장 유사한 '통합관제', '알람관리' 등을 포함하여 기본 공통 항목을 식별하여, 관련된 쉘 스크립트를 작성할 수 있다.Alternatively, when the selection item selected by the user is an unspecified item, the creation unit 120 may create a predetermined basic common item as a shell script. For example, if the selected item selected by the user is 'theft monitoring', but the corresponding item is not yet defined, the preparation unit 120 includes basics including 'integrated control', 'alarm management', and the like most similar to 'theft monitoring'. By identifying common items, you can write related shell scripts.

생성부(130)는 상기 쉘 스크립트를 실행하는 템플릿 스크립트를 생성 함으로써, 상기 템플릿 스크립트를 전달 받은 히트 오케스트레이터에서 상기 기능적 요구사항을 구현하는 VM이 구동하도록 한다. 여기서 템플릿 스크립트는, 오케스트레이터를 통해 사용자 요구사항을 가상환경 하에서 실현하도록 하는 명령어, 명령구문 일 수 있다.The generator 130 generates a template script that executes the shell script, so that a VM implementing the functional requirements is driven by a hit orchestrator that has received the template script. Here, the template script may be a command or a command syntax for realizing user requirements in a virtual environment through an orchestrator.

즉, 생성부(130)는 쉘 스크립트를 직접 실행시키는 템플릿 스크립트를 생성하는 역할을 수행할 수 있다.That is, the generator 130 may serve to generate a template script that directly executes the shell script.

실시예에 따라, 본 발명의 클라우드 오케스트레이션 장치(100)는 비기능적 요구사항에 따라, VM에서의 성능을 변경하는 처리부(140)를 포함하여 구성될 수 있다.According to an embodiment, the cloud orchestration device 100 of the present invention may be configured to include a processing unit 140 that changes performance in a VM according to non-functional requirements.

처리부(140)는 상기 사용자 요구사항을 비기능적 요구사항으로 분류하는 경우, 상기 비기능적 요구사항에 속한 '총 기기수', 'VM 접근 인원 수', 및 '반응 시간' 각각에 매칭되는 가중치를, 테이블로부터 추출하고, 상기 추출된 가중치를, Disk 가중치, RAM 가중치, 및 vCPU 가중치 별로 합산한다. 즉, 처리부(140)는 '총 기기수', 'VM 접근 인원 수', 및 '반응 시간' 각각에 대해, Disk 가중치, RAM 가중치, 및 vCPU 가중치를 산출하여, Disk 가중치, RAM 가중치, 및 vCPU 가중치 별로 합산하는 역할을 할 수 있다.When classifying the user requirements as non-functional requirements, the processing unit 140 assigns weights matching each of the 'total number of devices', 'VM access number', and 'reaction time' belonging to the non-functional requirements. , It is extracted from the table, and the extracted weights are added for each disk weight, RAM weight, and vCPU weight. That is, the processing unit 140 calculates the disk weight, the RAM weight, and the vCPU weight for each of the 'total number of devices', 'the number of VM access persons', and 'reaction time', and then the disk weight, the RAM weight, and the vCPU It can serve to add up by weight.

예컨대, 처리부는 '총 기기수(x)' 0 < x <=10 에서의 Disk 가중치(x_d) 2, RAM 가중치(x_r) 1, vCPU 가중치(x_c) 1과, 'VM 접근 인원 수(y)' 0 < y <=10 에서의 Disk 가중치(y_d) 2, RAM 가중치(y_r) 1, vCPU 가중치(y_c) 1과, '반응 시간(z)' z = low 에서의 Disk 가중치(z_d) 1, RAM 가중치(z_r) 3, vCPU 가중치(z_c) 3을 추출하고, Disk 가중치를 합산한 5(2+2+1), RAM 가중치를 합산 5(1+1+3), vCPU 가중치를 합산한 5(1+1+3)을 얻을 수 있다.For example, the processing unit has a disk weight (x_d) 2, a RAM weight (x_r) 1, a vCPU weight (x_c) 1 at 'total number of devices (x)' 0 <x <= 10, and a 'VM access number (y) Disk weight (y_d) 2 at 0 <y <= 10, RAM weight (y_r) 1, vCPU weight (y_c) 1, and disk weight (z_d) 1 at 'reaction time (z)' z = low RAM weight (z_r) 3, vCPU weight (z_c) 3, 5 (2 + 2 + 1) summing disk weights, 5 (1 + 1 + 3) summing RAM weights, and 5 summing vCPU weights (1 + 1 + 3).

또한, 처리부(140)는 합산된 수치에 각각 대응하는 Disk 용량, RAM 용량, 및 vCPU 용량을 상기 테이블로부터 확인하며, 상기 확인된 Disk 용량, RAM 용량, 및 vCPU 용량을 고려하여 상기 VM에 대한 성능을 변경할 수 있다.In addition, the processing unit 140 checks the disk capacity, RAM capacity, and vCPU capacity corresponding to the summed values from the table, and the performance for the VM is considered in consideration of the identified disk capacity, RAM capacity, and vCPU capacity. Can be changed.

즉, 처리부(140)는 가중치 값에 다른 VM 성능 매핑 테이블에서 산출된 Disk 가중치, RAM 가중치, 및 vCPU 가중치 각각에 대응하는 디바이스의 개수를 확인하고, 이를 통해 VM 을 변경, 조정할 수 있다.That is, the processor 140 may check the number of devices corresponding to each of the disk weight, RAM weight, and vCPU weight calculated from the VM performance mapping table different from the weight value, and change and adjust the VM through this.

상술의 예시에서, Disk 가중치 합이 5이므로, 처리부(140)는 4 < x_d + y_d + z_d <= 8에 대응하는 Disk 용량 '1GB'를 결정하여 VM을 변경할 수 있다. 또한, RAM 가중치 합이 5이므로, 처리부(140)는 5 <=x_r + y_r + z_r< 10에 대응하는 RAM '2GB'를 결정하여 VM을 변경할 수 있다. 또한, vCPU 가중치 합이 5이므로, 처리부(140)는 5 <=x_c + y_c + z_c< 10에 대응하는 vCPU '1 core'를 결정하여 VM을 변경할 수 있다.In the above example, since the sum of the disk weights is 5, the processor 140 may change the VM by determining the disk capacity '1 GB' corresponding to 4 <x_d + y_d + z_d <= 8. In addition, since the sum of the RAM weights is 5, the processor 140 may change the VM by determining '2 GB' of RAM corresponding to 5 <= x_r + y_r + z_r <10. In addition, since the sum of the vCPU weights is 5, the processor 140 may change the VM by determining the vCPU '1 core' corresponding to 5 <= x_c + y_c + z_c <10.

또한, 처리부(140)는, 상기 비기능적 요구사항에 속한 '고가용성 지원'의 활성화 여부를 확인하고, 상기 '고가용성 지원'의 활성화를 확인하면, 상기 VM에 오토스케일링 모듈을 추가 함으로써, 상기 오토스케일링 모듈에 의해 상기 VM에서의 특정 기능이 구현되도록 할 수 있다.In addition, the processing unit 140 confirms whether or not to activate the 'high availability support' belonging to the non-functional requirements, and confirms the activation of the 'high availability support', by adding an autoscaling module to the VM, the A specific function in the VM can be implemented by an autoscaling module.

여기서, 오토스케일링(Auto Scaling)은 사용자가 미리 지정한 정책에 따라 트래픽이 발생하였을 때 미리 지정된 만큼의 자원이 늘어나게 설정하는 기술로 정의할 수 있다. 즉, 오토스케일링은, CPU 및 트래픽의 실시간 사용량을 모니터링하여 미리 지정된 정책에 따라 인스턴스를 자동으로 확장 또는 축소시키는 서비스를 의미할 수 있다.Here, auto-scaling may be defined as a technique for setting a predetermined number of resources to increase when traffic occurs according to a policy predefined by a user. That is, autoscaling may mean a service that monitors real-time usage of CPU and traffic and automatically expands or contracts instances according to a predetermined policy.

즉, 처리부(140)는 비기능적 요구사항에 의해, 사용자가 '고가용성 자원'을 사용하기 희망 함을 확인함에 따라, 오토스케일링 모듈을 추가하여 VM를 구동할 수 있다.That is, the processing unit 140 may operate the VM by adding an auto-scaling module as the user confirms that the user wants to use the 'high availability resource' by the non-functional requirement.

이를 통해, VM은, 필요에 따른 오토스케일링 동작을 통해, 서버, 스토리지, 네트워크 등의 자원이 자동으로 늘어 남에 따라 안정적인 서비스를 지원할 수 있다.Through this, the VM can support a stable service as resources such as a server, storage, and network are automatically increased through autoscaling as needed.

또한, 처리부(140)는, 상기 '총 기기수', 상기 'VM 접근 인원 수', 및 상기 '반응 시간' 중, 설정된 한계치를 초과하는 제1 데이터 값을 1/2씩 분할하고, 상기 분할된 제1 데이터 값 각각에 대해, 로드밸런스를 처리할 수 있다.In addition, the processing unit 140, the 'total number of devices', the 'number of VM access personnel', and the 'reaction time', the first data value exceeding the set limit value is divided by 1/2, and the division For each of the obtained first data values, load balancing may be processed.

여기서 로드밸런스는 처리 한계에 도달하면, 부하를 분배하여, 복수의 서버에서 동시간에 처리하는 것을 의미할 수 있다.Here, when the processing limit is reached, load balancing may mean distributing the load and processing at the same time by multiple servers.

예컨대 '총 기기수'가 한계치 50을 초과하여, 70인 경우, 처리부(140)는 상기 '총 기기수' 70을 제1 데이터 값으로 정의하고, 로드밸런싱 기능을 추가 함으로써, 제1 데이터 70을 1/2씩 나눈, '총 기기수' 35와 35 각각에 대해 Disk 가중치를 추출하여, VM 변경 정도를 결정할 수 있다.For example, when the 'total number of devices' exceeds the limit value of 50 and is 70, the processing unit 140 defines the 'total number of devices' 70 as a first data value and adds a load balancing function to obtain the first data 70. By dividing by 1/2, the disk weight is extracted for each of the 'total devices' 35 and 35 to determine the degree of VM change.

또한, 처리부(140)는 '총 기기수', 상기 'VM 접근 인원 수', 및 상기 '반응 시간' 중, 상기 한계치 이하의 제2 데이터 값을, 상기 로드밸런싱의 처리 시, 유지할 수 있다.In addition, the processing unit 140 may maintain, during the load balancing process, a second data value below the threshold among the 'total number of devices', the 'number of VM access persons', and the 'reaction time'.

상술의 예에서, 한계치를 초과한 '총 기기수'를 제외한, 한계치 이하의 'VM 접근 인원 수'와 '반응 시간'은 제2 데이터 값으로 정의될 수 있다. 처리부(140)는 로드밸런싱 된 '총 기기수' 35에 대한 VM 변경 정도를 결정시, 'VM 접근 인원 수'와 '반응 시간'을 그대로 유지시켜 계산되도록 할 수 있다.In the above example, excluding the 'total number of devices' exceeding the limit value, the 'number of VM access personnel' and the 'reaction time' below the limit value may be defined as second data values. When determining the degree of VM change for the load-balanced 'total number of devices' 35, the processing unit 140 may maintain the 'number of VM accesses' and 'reaction time' to be calculated.

본 발명의 일실시예에 따르면, 사용자 요구사항을 기능적/비기능적 요구사항으로 분류하여 템플릿 스크립트에 들어갈 내용을 자동으로 생성 함으로써, 히트 오케스트레이터에서 동작하는 스크립트를 용이하게 생성할 수 있다.According to an embodiment of the present invention, by classifying user requirements into functional / non-functional requirements, the contents to be entered into the template script are automatically generated, so that a script operating in the heat orchestrator can be easily generated.

또한, 본 발명의 일실시예에 따르면, 사용자 요구사항에 기반하여, 히트 오케스트레이션 템플릿을 자동으로 생성하는 아키텍처 및 프로세스를 제시하고, 해당 프로세스를 이용하여 생성된 히트 오케스트레이션 템플릿을 통해, 클라우드 환경 구축에 필요한 여러 리소스의 생성 및 설정을 자동화 할 수 있다.In addition, according to an embodiment of the present invention, based on user requirements, to present an architecture and process for automatically generating a heat orchestration template, and through the heat orchestration template generated using the process, to build a cloud environment You can automate the creation and configuration of multiple required resources.

도 2는 본 발명에 따른 클라우드 오케스트레이션 장치와 관련한 시스템 아키텍처의 개요를 설명하기 위한 도면이다.2 is a view for explaining an overview of the system architecture related to the cloud orchestration device according to the present invention.

도 2에 도시한 바와 같이, 클라우드 오케스트레이션 장치는 keystone을 이용하여 사용자를 확인한다(210).As shown in FIG. 2, the cloud orchestration device identifies the user using the keystone (210).

사용자 요구사항은 크게 기능적 요구사항과 비기능적 요구사항으로 분류할 수 있다. 기능적 요구사항은 다시 공통 기능과 옵션 기능으로 구분하며, 공통 기능은 시스템이 지녀야 할 기본적인 동작을 행하는 어플리케이션을 가지고 있으며, 옵션 기능은 추가적으로 사용자가 필요로 하는 기능들을 지칭할 수 있다.User requirements can be broadly classified into functional requirements and non-functional requirements. Functional requirements are divided into common and optional functions again, and common functions have applications that perform basic operations that the system should have, and optional functions may additionally refer to functions required by the user.

또한, 클라우드 오케스트레이션 장치는 Template 리소스 매핑 테이블을 구비할 수 있다(220).In addition, the cloud orchestration device may include a Template resource mapping table (220).

클라우드 오케스트레이션 장치는 사용자가 옵션 기능을 추가하면, 공통 기능과 옵션 기능을 VM에서 사용할 수 있도록 Template 테이블을 통해, 어플리케이션을 매핑 함으로써, 템플릿 스크립트에 추가할 수 있다.The cloud orchestration device can be added to the template script by mapping the application through the Template table so that the common and optional functions can be used in the VM when the user adds the optional functions.

비기능적 요구사항은 각 요구사항 별 가중치를 계산하여 Template 테이블로 전달되며, 클라우드 오케스트레이션 장치는 해당 Template 테이블을 통해 템플릿 스크립트를 변경하여 VM이 동작할 RAM, Disk용량, CPU 등을 결정할 수 있다.Non-functional requirements are delivered to the template table by calculating the weight for each requirement, and the cloud orchestration device can change the template script through the corresponding template table to determine the RAM, disk capacity, CPU, etc. for the VM to operate.

또한, 클라우드 오케스트레이션 장치는 사용자 요구사항 기반의 Template 파일(.yami)를 생성할 수 있다(230). 즉, 클라우드 오케스트레이션 장치는 최종적으로 .yaml 형식의 템플릿 스크립트를 생성할 수 있다.In addition, the cloud orchestration device may generate a template file (.yami) based on user requirements (230). In other words, the cloud orchestration device can finally generate a template script in .yaml format.

생성된 템플릿 파일은 Heat 오케스트레이터(240)로 전달되며, Heat 오케스트레이터는 전달된 정보를 바탕으로 VM을 생성할 수 있다. Keystone(241), Glance(242), Neutron(243), Octavia(244), Senlin(245)의 각 모듈은 Heat 오케스트레이터(240)의 명령에 따라 각 동작을 실행하게 된다.The generated template file is transferred to the heat orchestrator 240, and the heat orchestrator can create a VM based on the transmitted information. Each module of Keystone (241), Glance (242), Neutron (243), Octavia (244), and Senlin (245) executes each operation according to the command of the heat orchestrator (240).

Keystone(241)은 인증 관리 모듈이며, 사용자와 프로젝트를 keypair를 통해서 매칭시키며, 해당 VM이 어떤 사용자와 어떤 프로젝트에서 구동 될 것인가를 결정하는 동작을 실행할 수 있다.The Keystone 241 is an authentication management module, and matches a user and a project through a keypair, and can execute an operation to determine which user and which project the corresponding VM will run.

Glance(242)는 이미지 관리 모듈로서, 현재 사용자가 가지고 있는 이미지 중 사용하기로 결정한 이미지를 Nova 모듈로 전달함으로써 Nova에서 VM에 탑재할 이미지를 제공하는 동작을 실행할 수 있다. 여기서, Nova는 VM이 생성되고 관리되는 컴퓨팅 모듈로서, VM이 생성되고 에뮬레이터 환경에서 VM을 사용할 경우 기본 탑재되는 Qemu 에뮬레이터를 통해 VM을 사용자에게 보여주는 역할을 할 수 있다.The Glance 242 is an image management module, and may perform an operation of providing an image to be mounted on a VM in Nova by transferring an image that the user currently decides to use to the Nova module. Here, Nova is a computing module in which a VM is created and managed. When a VM is created and a VM is used in an emulator environment, the VM can be shown to a user through a Qemu emulator that is basically installed.

Neutron(243)은 소프트웨어 네트워크 서비스를 위한 네트워크 관리 모듈로서, 다중의 VM을 관리할 네트워크를 결정하게 되며, 사설 네트워크에 생성된 VM들이 외부의 인터넷으로 연결하여, 사용자가 사용할 수 있도록 하는 동작을 실행할 수 있다.Neutron (243) is a network management module for software network services, and determines the network to manage multiple VMs. VMs created in the private network connect to the external Internet to perform operations that users can use. Can be.

Octavia(244)는 오픈스택 플랫폼의 로드밸런싱을 위한 로드밸런서 관리 모듈로서, 헬스 모니터를 통하여 VM의 상태 및 트래픽을 점검하며, 각 VM별로 할당된 리스너들로 하나의 VM에 과도한 트래픽을 막도록 하는 동작을 수행할 수 있다.Octavia (244) is a load balancer management module for load balancing of the OpenStack platform, which checks the status and traffic of VMs through a health monitor and prevents excessive traffic to one VM with listeners assigned to each VM. You can perform the operation.

Senlin(245)은 오픈스택 플랫폼의 클러스터링 서비스를 위한 오토스케일링 관리 모듈로서, 오토 스케일링이 발생하였을 경우, 사용자와 각 모듈에게 메시지를 전송하여, 변화가 나타남을 인지시켜 주는 동작을 수행할 수 있다.Senlin 245 is an autoscaling management module for the clustering service of the OpenStack platform. When autoscaling occurs, a message may be sent to a user and each module to recognize a change.

도 3은 본 발명에 따른 Template 생성을 위한 자동화 프로세스를 설명하기 위한 도면이다.3 is a view for explaining an automated process for creating a template according to the present invention.

도 3에 도시한 바와 같이, 본 발명의 클라우드 오케스트레이션 장치는 서비스 UI 로그인을 통한 토큰을 발급한다(310). 즉, 클라우드 오케스트레이션 장치는 어플리케이션에서의 사용자 인증을 처리할 수 있다.3, the cloud orchestration device of the present invention issues a token through a service UI login (310). That is, the cloud orchestration device can handle user authentication in the application.

또한, 클라우드 오케스트레이션 장치는 서비스 UI에서 사용자 요구사항을 입력받는다(320). 예컨대, 클라우드 오케스트레이션 장치는 토큰이 발행되고 사용자 인증을 이루어진 단말을 통해, 사용자가 원하는 제어 처리에 관한 사용자 요구사항을 입력받을 수 있다.In addition, the cloud orchestration device receives user requirements from the service UI (320). For example, the cloud orchestration device may receive user requirements regarding control processing desired by the user through a terminal in which a token is issued and the user is authenticated.

이후, 클라우드 오케스트레이션 장치는 매핑 테이블을 통한 요구사항을 분석한다(330). 클라우드 오케스트레이션 장치는 입력된 사용자 요구사항과 대응되는 매핑 테이블 내의 처리 내용을 식별할 수 있다.Thereafter, the cloud orchestration device analyzes the requirements through the mapping table (330). The cloud orchestration device may identify processing contents in the mapping table corresponding to the input user requirements.

상기 분석의 일 과정으로서, 클라우드 오케스트레이션 장치는 사용자가 Optional Requirement 를 선택하는가를 확인한다(340). 만약, 단계 340에서 선택이 확인되면(yes 방향), 클라우드 오케스트레이션 장치는 기능-어플리케이션 매핑을 통한 설치 리소스를 추가할 수 있다(342).As a process of the analysis, the cloud orchestration device checks whether the user selects Optional Requirement (340). If the selection is confirmed in step 340 (yes direction), the cloud orchestration device may add the installation resource through the function-application mapping (342).

단계 340에서 선택이 확인되지 않으면(No 방향), 클라우드 오케스트레이션 장치는 상기 분석의 다른 과정으로서, 사용자가 고가용성 지원 사항을 선택하는가를 확인한다(350). 만약 단계 350에서 선택이 확인되면(yes 방향), 클라우드 오케스트레이션 장치는 Auto Scaling 리소스를 추가할 수 있다(352).If the selection is not confirmed in step 340 (No direction), the cloud orchestration device checks whether the user selects the high availability support as another process of the analysis (350). If the selection is confirmed in step 350 (yes direction), the cloud orchestration device may add an Auto Scaling resource (352).

단계 350에서 선택이 확인되지 않으면(No 방향), 클라우드 오케스트레이션 장치는 상기 분석의 또다른 과정으로서, 사용자 요구사항이 시스템 허용 스팩을 초과하였는가를 확인한다(360). 만약 단계 360에서 선택이 확인되면(yes 방향), 클라우드 오케스트레이션 장치는 Load balancer 리소스를 추가할 수 있다(362).If the selection is not confirmed in step 350 (No direction), the cloud orchestration device checks whether the user requirement exceeds the system allowable specification (360) as another process of the analysis. If the selection is confirmed in step 360 (yes direction), the cloud orchestration device may add a load balancer resource (362).

이후, 클라우드 오케스트레이션 장치는 요구사항 분석 내용에 대한 리소스를 포함한 템플릿파일(.Yami)을 생성한다(370). 즉, 클라우드 오케스트레이션 장치는 매핑 테이블에 의한 처리 내용을 식별하고, 식별된 처리 내용에 따른 템플릿 스크립트를 생성할 수 있다.Subsequently, the cloud orchestration device generates a template file (.Yami) including resources for requirements analysis contents (370). That is, the cloud orchestration device may identify the processing content by the mapping table and generate a template script according to the identified processing content.

또한, 클라우드 오케스트레이션 장치는 Heat 오케스트레이터로 생성된 템플릿파일(.Yami)을 전송하여, VM을 생성한다(380).In addition, the cloud orchestration device transmits the template file (.Yami) generated by the heat orchestrator to create a VM (380).

이를 통해, 클라우드 오케스트레이션 장치는 생성된 VM에서 IoT 개발 프레임워크와 사용자 요구사항에 따른 서비스를 확인한다(390).Through this, the cloud orchestration device checks the IoT development framework and the service according to user requirements in the created VM (390).

이하에서는 본 발명에서 제시한 OpenStack Heat Orchestrator를 이용하여 클라우드 환경을 자동 구축하는 방법을, IoT 스마트 빌딩의 사례에 적용하여 설명한다.Hereinafter, a method of automatically constructing a cloud environment using the OpenStack Heat Orchestrator presented in the present invention will be described by applying it to an example of an IoT smart building.

본 발명의 클라우드 오케스트레이션 장치는 기능적 요구사항에 따른 템플릿 스크립트를 생성할 수 있다. The cloud orchestration device of the present invention can generate a template script according to functional requirements.

기능적 요구사항은 표 1과 같이 공통 요구사항(Common PR)과 선택 요구사항(Optional PR)으로 분류될 수 있다.Functional requirements can be classified into common requirements (Common PR) and optional requirements (Optional PR) as shown in Table 1.

공통 요구사항은 모든 IoT 환경에서 공통으로 구성되어야 하는 요구사항이므로 동일한 어플리케이션을 적용할 수 있다. 선택 요구사항은 IoT 환경을 구축하는데 있어, 추가적으로 필요한 요구사항을 선택하는 것으로, 사용자 요구사항과 관련된 어플리케이션 만을 적용할 수 있다.Since the common requirements are requirements that must be configured in common in all IoT environments, the same application can be applied. The selection requirement is to select an additional required requirement in building an IoT environment, and only the application related to the user requirement can be applied.

표 1에서는 기능 요구사항 분류를 예시하고 있다.Table 1 illustrates the functional requirements classification.

Figure 112018101749320-pat00001
Figure 112018101749320-pat00001

예를 들어, 사용자가 Optional PR 중 엘리베이터 관리, 원격 검침, 방문객 관리 기능을 선택한다고 가정하면, 공통 요구사항에 대한 어플리케이션은 기본적으로 설치되므로 common.sh의 쉘 스크립트를 실행하도록 할 수 있다. 또한, 클라우드 오케스트레이션 장치는 추가적으로 선택 요구사항을 위해 엘리베이터.sh, 원격검침.sh, 방문객관리.sh라는 쉘 스크립트를 실행하도록 템플릿 스크립트를 구성할 수 있다.For example, assuming that the user selects the elevator management, remote meter reading, and visitor management functions among the optional PRs, the application for common requirements is installed by default, so that the shell script of common.sh can be executed. In addition, the cloud orchestration device can additionally configure template scripts to execute shell scripts called elevator.sh, remote meter reading.sh, and visitor management.sh for optional requirements.

표 2에서는 기능 요구사항의 매핑 테이블을 예시하고 있다.Table 2 shows the mapping table of functional requirements.

Figure 112018101749320-pat00002
Figure 112018101749320-pat00002

또한, 클라우드 오케스트레이션 장치는 비기능적 요구사항에 따른 템플릿 스크립트를 생성할 수 있다.In addition, the cloud orchestration device may generate a template script according to non-functional requirements.

비기능적 요구사항으로는 총 기기 수, VM 접근 인원 수, 반응 시간, 고가용성 지원 여부를 정의하였으며 이들 요구사항은 사용자가 선택하도록 할 수 있다.As non-functional requirements, the total number of devices, the number of VM access personnel, response time, and availability of high availability were defined. These requirements can be selected by the user.

아래 표 3 내지 표 5는 Disk 용량, RAM, vCPU에 대한 요구사항-가중치 매핑 테이블이다. 구체적으로 표 3은 총 기기 수 별 가중치 계산을 위한 매핑 테이블이고, 표 4는 VM 접근 인원 별 가중치 계산을 위한 매핑 테이블이며, 표 5는 응답 속도 중요도 별 가중치 계산을 위한 매핑 테이블이다. 표 3 내지 표 5에서, RAM과 vCPU는 총 기기 수와 VM 접근 인원보다는 반응 시간에 더 큰 영향을 끼치기 때문에 가중치의 값을 더 크게 부여할 수 있다.Tables 3 to 5 below are requirements-weighted mapping tables for disk capacity, RAM, and vCPU. Specifically, Table 3 is a mapping table for calculating the weight for each total device, Table 4 is a mapping table for calculating the weight for each VM access, and Table 5 is a mapping table for calculating the weight by response speed importance. In Tables 3 to 5, since the RAM and vCPU have a greater influence on the response time than the total number of devices and the number of VM accesses, the weight value can be given larger.

Figure 112018101749320-pat00003
Figure 112018101749320-pat00003

Figure 112018101749320-pat00004
Figure 112018101749320-pat00004

Figure 112018101749320-pat00005
Figure 112018101749320-pat00005

예를 들어, 총 기기수(x)에 대한 요구사항이 '40'이면, 클라우드 오케스트레이션 장치는 표 3에 따라, Disk 가중치(x_d) '8', RAM 가중치(x_r) '4', vCPU 가중치(x_c) '4'을 가산할 수 있다.For example, if the requirement for the total number of devices (x) is '40', the cloud orchestration device according to Table 3, disk weight (x_d) '8', RAM weight (x_r) '4', vCPU weight ( x_c) '4' can be added.

또한, VM 접근 인원 수(y)에 대한 요구사항이 '60' 이면, 클라우드 오케스트레이션 장치는 표 4 따라, Disk 가중치(y_d) '6', RAM 가중치(y_r) '3', vCPU 가중치(y_c) '3'를 가산할 수 있다.In addition, if the requirement for the number of VM access (y) is '60', the cloud orchestration device according to Table 4, disk weight (y_d) '6', RAM weight (y_r) '3', vCPU weight (y_c) '3' can be added.

또한, 반응 시간(응답 속도 중요도(z))에 대한 요구사항이 'medium' 이면, 클라우드 오케스트레이션 장치는 표 5 따라, Disk 가중치(z_d) '2', RAM 가중치(z_r) '6', vCPU 가중치(z_c) '6'을 가산할 수 있다.In addition, if the requirement for the response time (response rate importance (z)) is 'medium', the cloud orchestration device according to Table 5, Disk weight (z_d) '2', RAM weight (z_r) '6', vCPU weight (z_c) '6' can be added.

이와 같이 산출된 가중치 값을 바탕으로, 클라우드 오케스트레이션 장치는 OpenStack VM 성능 타입을 정의하는 플레이버(flavor)를 결정할 수 있다.Based on the weight value calculated as described above, the cloud orchestration device may determine a flavor defining an OpenStack VM performance type.

표 6에는 가중치 값에 따른 VM 성능 매핑 테이블을 예시한다.Table 6 illustrates a VM performance mapping table according to weight values.

Figure 112018101749320-pat00006
Figure 112018101749320-pat00006

즉, 클라우드 오케스트레이션 장치는 추출된 가중치를, Disk 가중치, RAM 가중치, 및 vCPU 가중치 별로 합산하고, 합산된 수치에 각각 대응하는 Disk 용량, RAM 용량, 및 vCPU 용량을 표 6의 테이블로부터 확인할 수 있다. 이에 따라, 클라우드 오케스트레이션 장치는 확인된 Disk 용량, RAM 용량, 및 vCPU 용량을 고려하여 상기 VM에 대한 성능을 변경할 수 있다.That is, the cloud orchestration device can sum the extracted weights for each Disk weight, RAM weight, and vCPU weight, and check the Disk capacity, RAM capacity, and vCPU capacity corresponding to the summed values from the table in Table 6. Accordingly, the cloud orchestration device may change the performance of the VM in consideration of the identified disk capacity, RAM capacity, and vCPU capacity.

예컨대, 클라우드 오케스트레이션 장치는 총 기기 수, VM 접근 인원 수, 반응 시간 각각에 대해 표 3 내지 표 5로부터 확인된 Disk 가중치 'x_d 8 y_d 6 z_d 2을 합산한 '16'에 대응하는, 표 6의 Disk 용량 '4GB'을 더 추가하는 것으로 VM에 대한 성능을 변경할 수 있다.For example, the cloud orchestration device corresponds to '16', which is the sum of the disk weights 'x_d 8 y_d 6 z_d 2' identified from Tables 3 to 5 for each of the total number of devices, the number of VM accesses, and the response time. You can change the performance of the VM by adding an additional '4 GB' of disk capacity.

또한, 클라우드 오케스트레이션 장치는 총 기기 수, VM 접근 인원 수, 반응 시간 각각에 대해 표 3 내지 표 5로부터 확인된 RAM 가중치 'x_r 4 y_r 3 z_r 6을 합산한 '13'에 대응하는, 표 6의 RAM '4GB'을 더 추가하는 것으로 VM에 대한 성능을 변경할 수 있다.In addition, the cloud orchestration device corresponds to the '13' sum of the RAM weights 'x_r 4 y_r 3 z_r 6' identified from Tables 3 to 5 for each of the total number of devices, the number of VM accesses, and the response time. You can change the performance of the VM by adding an additional '4 GB' of RAM.

또한, 클라우드 오케스트레이션 장치는 총 기기 수, VM 접근 인원 수, 반응 시간 각각에 대해 표 3 내지 표 5로부터 확인된 vCPU 가중치 'x_c 4 y_c 3 z_c 6을 합산한 '13'에 대응하는, 표 6의 vCPU '2 Core'를 더 추가하는 것으로 VM에 대한 성능을 변경할 수 있다.In addition, the cloud orchestration device corresponds to '13' sum of the vCPU weights 'x_c 4 y_c 3 z_c 6' identified from Tables 3 to 5 for each of the total number of devices, the number of VM accesses, and the response time. You can change the performance of the VM by adding more vCPU '2 Core'.

고 가용성에 대한 요구사항이 있을 경우, 클라우드 오케스트레이션 장치는 Auto Scaling 모듈을 추가로 탑재하도록 하여, VM이 수용 가능한 트래픽 보다 많은 트래픽이 예상될 경우에 작동하여 자동적으로 VM을 추가하도록 설계할 수 있다.If there is a requirement for high availability, the cloud orchestration device can be designed to add an Auto Scaling module to automatically add VMs by operating when more traffic is expected than the acceptable traffic.

또한 Disk 가중치, RAM 가중치, vCPU 가중치가 해당 매핑 테이블 표에 있는 값을 넘어, 최고 사양의 플레이버 보다도 높은 사양이 필요할 경우, 클라우드 오케스트레이션 장치는 2대 이상의 VM을 생성하고 Load Balancer를 배치하도록 할 수 있다. In addition, if the disk weight, RAM weight, and vCPU weight exceed the values in the corresponding mapping table table, and a specification higher than the highest flavor is required, the cloud orchestration device can create two or more VMs and deploy the Load Balancer. .

예를 들어, 현재 계산된 Disk 용량의 가중치가 40이라고 가정하면, 클라우드 오케스트레이션 장치는 각 VM에 대한 디스크 용량을 동일하게 설정하여 각각의 가중치 20에 해당하는 2대의 VM을 생성할 수 있다. 이 때, 하나의 VM에만 트래픽이 집중되는 것을 방지하기 위해, 클라우드 오케스트레이션 장치는 Load Balancer 기능을 추가할 수 있다.For example, assuming that the weight of the currently calculated disk capacity is 40, the cloud orchestration device may generate two VMs corresponding to each weight 20 by setting the disk capacity for each VM to be the same. At this time, in order to prevent traffic from being concentrated on only one VM, the cloud orchestration device may add a load balancer function.

표 7 내지 표 9에는, 사용자가 비기능 요구사항을 선택했을 경우, 매핑 테이블을 통해 계산된 Disk, RAM, vCPU 성능을 계산한 결과를 예시한다.Tables 7 to 9 show the results of calculating the disk, RAM, and vCPU performance calculated through the mapping table when the user selects a non-functional requirement.

Figure 112018101749320-pat00007
Figure 112018101749320-pat00007

Figure 112018101749320-pat00008
Figure 112018101749320-pat00008

Figure 112018101749320-pat00009
Figure 112018101749320-pat00009

표 7은 앞서 설명한 표 3 내지 표 6를 통해, 사용자의 비기능적 요구사항을 매칭 테이블에 대응시켜 추출된 결과를 정리한 것이다. 표 7에 의해 클라우드 오케스트레이션 장치는 Disk 용량 '4GB', RAM '4GB', vCPU '2 Core'를 더 추가하는 것으로 VM에 대한 성능을 변경하면서, Auto Scaling 기능을 더 추가시킬 수 있다.Table 7 summarizes the results extracted by matching the user's non-functional requirements to the matching table through Tables 3 to 6 described above. According to Table 7, the cloud orchestration device adds Disk capacity '4GB', RAM '4GB', and vCPU '2 Core' to change the performance of the VM while adding the Auto Scaling function.

만약, 표 7과 같은 결과에서, 총 기기 수가 70으로 증가되는 경우, 클라우드 오케스트레이션 장치는 증가된 '70'이 한계치인 '50'을 초과 함에 따라, 총 기기 수(x)를 제1 데이터 값으로 정의할 수 있다. 또한, 클라우드 오케스트레이션 장치는 한계치를 초과하지 않는 VM 접근 인원 수(y)와, 반응 시간(z)를 제2 데이터 값으로 정의할 수 있다.If, in the results shown in Table 7, the total number of devices is increased to 70, the cloud orchestration device, as the increased '70' exceeds the limit of '50', the total number of devices (x) as the first data value Can be defined. In addition, the cloud orchestration device may define the number of VM access persons (y) and the response time (z) that do not exceed the limit as second data values.

클라우드 오케스트레이션 장치는 제1 데이터 값인 총 기기 수(x)에 대해 로드밸런스(Load-Balance) 처리를 함으로써, 기존 '70'을 1/2씩 분할한 '35' 각각에 대해 2개의 VM을 생성할 수 있다. 이때, 제2 데이터 값인 VM 접근 인원 수(y)와, 반응 시간(z)은 상기 로드밸런싱의 처리 시, 유지된다.The cloud orchestration device load-balances the total number of devices (x), which is the first data value, to create two VMs for each of '35', which is divided by half of the existing '70'. Can be. At this time, the second data value, the number of VM access personnel (y) and the reaction time (z) are maintained during the load balancing process.

표 8는 총 기기수(x)가 한계치를 초과하였을 때의 매핑 테이블을 예시하고 있고, 표 9는 Load Balancing 처리에 따라, 복수의 VM을 생성하는 것을 예시하고 있다.Table 8 illustrates a mapping table when the total number of devices (x) exceeds a limit, and Table 9 illustrates creating a plurality of VMs according to Load Balancing processing.

표 9에 도시한 바와 같이, 클라우드 오케스트레이션 장치는 로드밸런싱된 총 기기 수(x) '35'에 대해, 상기의 표 3에 따라, Disk 가중치(x_d) '6', RAM 가중치(x_r) '3', vCPU 가중치(x_c) '3'을 새로 확인하여, 생성된 2개의 VM에 추가되는 Disk 용량, RAM, vCPU를 확인할 수 있게 한다.As shown in Table 9, the cloud orchestration device, for the total number of load-balanced devices (x) '35', according to Table 3 above, Disk weight (x_d) '6', RAM weight (x_r) '3 By checking ', vCPU weight (x_c)' 3 'newly, it is possible to check the disk capacity, RAM, and vCPU added to the two created VMs.

도 4a 내지 도 4c는 본 발명에 따라 생성된 템플릿 스크립트를 예시하는 도면이다.4A to 4C are diagrams illustrating template scripts generated according to the present invention.

도 4a에는 Template 스크립트 파일 중 플레이버를 설정하는 영역을 예로서 도시하고 있고, 도 4b에는 Template 스크립트 파일 중 Auto Scaling을 추가하는 영역을 예로서 도시하고 있으며, 도 4c에는 Template스크립트 파일 중 Load Balancer를 추가하는 영역을 예로서 도시하고 있다.FIG. 4A shows an example of setting a flavor among template script files, and FIG. 4B shows an example of adding auto scaling among template script files, and FIG. 4C shows load balancer among template script files. The area to be described is shown as an example.

도 4a 내지 도 4c에서는, 생성된 .yaml 형식의 Template 스크립트 파일을 예시한다. 상기 Template 스크립트 파일은, 사용자의 기능적/비기능적 요구사항에 따라 생성된 스크립트 파일일 수 있다.4A to 4C, template script files in the generated .yaml format are illustrated. The template script file may be a script file generated according to a user's functional / non-functional requirements.

도 4a 내지 도 4c에서 예시되는 Template 스크립트 파일은, 현재 시스템에서 중점적으로 변경되는 스크립트 리소스들을 나타내고 있다.The template script file illustrated in FIGS. 4A to 4C shows script resources that are mainly changed in the current system.

예컨대 도 4a의 OS::Nova::Flavor 리소스는 비기능적 요구사항 중 기기 수, 접근인원, 반응시간에 대한 가중치를 계산하여 최종적으로 산출되는 VM의 ram용량, disk 용량, cpu 개수를 결정할 수 있다.For example, the OS :: Nova :: Flavor resource of FIG. 4A can determine the ram capacity, disk capacity, and number of CPUs of the VM that is finally calculated by calculating weights for the number of devices, access personnel, and response time among non-functional requirements. .

도 4b의 OS::Heat::AutoScailingGroup 은 오토 스케일링을 지원할 경우에 사용되는 리소스로서, 내부에 VM을 명시함으로써 오토 스케일링이 되는 VM의 최초 상태를 나타내 주며, OS::Heat::ScailingPolicy 리소스를 이용하여 오토 스케일이 작동하게 되는 지점을 지정해준다.OS :: Heat :: AutoScailingGroup of FIG. 4B is a resource used when auto scaling is supported, and indicates an initial state of a VM that is auto-scaling by specifying a VM therein, and uses OS :: Heat :: ScailingPolicy resource. To specify the point at which the auto scale will operate.

도 4c의 OS::Octavia::LoadBalancer는 다중의 VM이 한번에 생성 될 경우 사용되는 리소스로서, OS::Octavia::HealthMonitor 와 OS::Octavia::Listener를 통해서 현재 VM에 할당되는 트래픽을 확인하고, 해당 트래픽들을, OS::Octavia::Pool을 통해 연결되어 있는 각 VM에 적절히 할당할 수 있다.4C OS :: Octavia :: LoadBalancer is a resource used when multiple VMs are created at once, and checks traffic allocated to the current VM through OS :: Octavia :: HealthMonitor and OS :: Octavia :: Listener. , You can properly allocate the traffic to each VM connected through OS :: Octavia :: Pool.

최종적으로 생성된 Template 스크립트 파일을 Heat Orchestrator에 입력하면, 클라우드 오케스트레이션 장치는 VM 및 기타 리소스(Auto Scaling, Load Balancer)를 생성하고 연결한 후 사용자에게 VM을 배포하게 된다. VM을 할당받은 사용자는 VM을 이용하여 입력한 요구사항에 따른 기능을 이용하여, 스마트 빌딩을 관리할 수 있게 된다.When the finally created template script file is input to Heat Orchestrator, the cloud orchestration device creates and connects VMs and other resources (Auto Scaling, Load Balancer), and then distributes the VM to the user. The user who has been assigned a VM can manage the smart building by using the function according to the requirements entered using the VM.

이하, 도 5에서는 본 발명의 실시예들에 따른 클라우드 오케스트레이션 장치(100)의 작업 흐름을 상세히 설명한다.Hereinafter, the operation flow of the cloud orchestration device 100 according to embodiments of the present invention will be described in detail in FIG. 5.

도 5는 본 발명의 일실시예에 따른, 클라우드 오케스트레이션 방법의 순서를 도시한 흐름도이다.5 is a flowchart illustrating a procedure of a cloud orchestration method according to an embodiment of the present invention.

본 실시예에 따른 클라우드 오케스트레이션 방법은 상술한 클라우드 오케스트레이션 장치(100)에 의해 수행될 수 있다.The cloud orchestration method according to the present embodiment may be performed by the cloud orchestration device 100 described above.

우선, 클라우드 오케스트레이션 장치(100)는 템플릿 스크립트의 생성 요청에 연동하여, 상기 생성 요청에 포함되는 사용자 요구사항을 분류한다(510). 단계(510)는 사용자 요구사항이 기능적 요구사항인지, 비기능적 요구사항인지를 판별하는 과정일 수 있다.First, the cloud orchestration device 100 classifies a user requirement included in the creation request by interworking with the request for generating the template script (510). Step 510 may be a process of determining whether a user requirement is a functional requirement or a non-functional requirement.

기능적 요구사항은 시스템이 보유하고 있어야 하는 기능별 요구에 관한 것으로서, 예컨대, '기계설비 및 제어'에 있어서의, 난방 제어, 냉동기 제어, 보일러 제어, 조명 제어, 공조 제어, 블라인드 제어, 냉방 제어, 전력 제어 등의 요구사항으로 정의할 수 있다.Functional requirements relate to functional requirements that the system must have, such as in 'machinery and control', heating control, freezer control, boiler control, lighting control, air conditioning control, blind control, cooling control, power It can be defined as requirements such as control.

비기능 요구사항은 시스템으로의 접속에 관한 외적 요구에 관한 것으로서, 예컨대, 총 기기 수, VM 접근 인원 수, 반응 시간, 고가용성 지원 여부 등의 요구사항으로 정의할 수 있다.Non-functional requirements are related to external requests for access to the system, and can be defined as requirements such as the total number of devices, the number of VM access personnel, reaction time, and availability of high availability.

상기 사용자 요구사항을 기능적 요구사항으로 분류하는 경우, 클라우드 오케스트레이션 장치(100)는 상기 기능적 요구사항에 속한 선택 요구사항(Option PR)에 의해 결정된 선택 항목에 대해 쉘 스크립트를 작성한다(520). 단계(520)는 VM(Virtual Machine)의 구동을 위한 템플릿 스크립트에 포함된 쉘 스크립트를, 선택 항목 단위로 작성하는 과정일 수 있다.When the user requirement is classified as a functional requirement, the cloud orchestration device 100 creates a shell script for a selection item determined by a selection requirement (Option PR) belonging to the functional requirement (520). Step 520 may be a process of writing a shell script included in a template script for driving a virtual machine (VM) in units of selection items.

상기 선택 요구사항은, 사용자가 필요로 하여 특정하여 선택하는 기능을 의미할 수 있다. 예컨대, 엘리베이터를 통해 내방하는 고객을 모니터링하고자 하는 사용자는 상기 선택 요구사항으로서, '엘리베이터', '원격 검침', '방문객 관리'를 선택할 수 있고, 이들 선택 요구사항을 포함시켜, 기능적 요구사항을 요청할 수 있다.The selection requirement may refer to a function required by a user to select and select. For example, a user who wants to monitor a customer visiting through an elevator can select 'elevator', 'remote meter reading', and 'visitor management' as the above selection requirements, and include these selection requirements to satisfy functional requirements. You can ask.

이후, 클라우드 오케스트레이션 장치(100)는 선택 요구사항 각각에 대해, 쉘 스크립트를 작성하며, 예컨대 상술의 예에서, 어플리케이션의 동작에 의해, '엘리베이터.sh', '원격 검침.sh', '방문객 관리.sh' 이라는 쉘 스크립트를 작성할 수 있다.Subsequently, the cloud orchestration device 100 creates a shell script for each of the selection requirements, for example, in the above example, by the operation of the application, 'elevator.sh', 'remote meter reading.sh', 'visitor management You can write a shell script called .sh '.

실시예에 따라, 클라우드 오케스트레이션 장치(100)는, 상기 선택 요구사항에 의해 결정된 선택 항목을 해석하고, 상기 해석 결과에 따라, 결정되어야 하는 공통 요구사항(Common PR)의 공통 항목을 식별할 수 있다. 즉, 클라우드 오케스트레이션 장치(100)는 선택 항목과 연계되어 동작되어야 하는 공통 항목을 결정하는 역할을 할 수 있다.According to an embodiment, the cloud orchestration device 100 may analyze a selection item determined by the selection requirement, and identify a common item of a common requirement (Common PR) to be determined according to the analysis result. . That is, the cloud orchestration device 100 may serve to determine a common item to be operated in association with the selected item.

상술의 예와 같이, 선택 요구사항으로서, '엘리베이터', '원격 검침', '방문객 관리'가 선택되는 경우, 클라우드 오케스트레이션 장치(100)는, 이들 선택 항목을 해석하여, 선택 항목의 기능들이 수행되는 데에 필수로 요구되는 난방 제어, 냉동기 제어에 관한 '기계설비 및 제어'와, 에너지 소비 분석, 에너지 평가에 관한 'BMES'을 공통 항목으로 식별할 수 있다.As in the above example, when 'elevator', 'remote meter reading', and 'visitor management' are selected as the selection requirements, the cloud orchestration device 100 interprets these selection items and performs the functions of the selection items The 'mechanical and control' for heating control and freezer control, and the 'BMES' for energy consumption analysis and energy evaluation can be identified as common items.

이후, 클라우드 오케스트레이션 장치(100)는 식별된 상기 공통 항목에 대해 쉘 스크립트를 작성할 수 있다. 즉, 클라우드 오케스트레이션 장치(100)는, 선택 항목 단위의 쉘 스크립트를 작성하는 것과 함께, 공통 항목 단위의 쉘 스크립트를 작성할 수 있다. 예컨대, 클라우드 오케스트레이션 장치(100)는 식별된 공통 항목 '기계설비 및 제어'와, 'BMES'를 포함하는 쉘 스크립트 'Common.sh'를 작성할 수 있다.Thereafter, the cloud orchestration device 100 may create a shell script for the identified common items. That is, the cloud orchestration device 100 can create a shell script of a common item unit as well as a shell script of a selected item unit. For example, the cloud orchestration device 100 may create a shell script 'Common.sh' including the identified common items 'machinery and control' and 'BMES'.

상기 선택 요구사항에 의해 선택 항목이 결정되지 않는 경우, 클라우드 오케스트레이션 장치(100)는, 사전에 정해진 공통 요구사항 내 기본 공통 항목을 식별하고, 상기 기본 공통 항목에 대해 쉘 스크립트를 작성할 수 있다. 즉, 클라우드 오케스트레이션 장치(100)는, 사용자가 별도의 선택 항목을 선택하지 않음에 따라, 사전에 정한 기본 공통 항목에 관한 쉘 스크립트를 작성할 수 있다. 예컨대, 사용자 요구사항이 건물에 대한 관리로 해석된다면, 클라우드 오케스트레이션 장치(100)는 '조명 제어', '전력 제어' 등을 포함하여 기본 공통 항목을 식별하여, 관련된 쉘 스크립트를 작성할 수 있다.If the selection item is not determined by the selection requirement, the cloud orchestration device 100 may identify a basic common item in a predetermined common requirement and create a shell script for the basic common item. That is, the cloud orchestration device 100 may create a shell script for a basic common item determined in advance, as the user does not select a separate selection item. For example, if the user requirements are interpreted as management for a building, the cloud orchestration device 100 may identify basic common items including 'light control', 'power control', and the like, and create a related shell script.

또는, 사용자가 선택한 선택 항목이 규정되어 있지 않은 항목일 경우, 클라우드 오케스트레이션 장치(100)는 미리 정한 기본 공통 항목을 쉘 스크립트로 작성할 수 있다. 예컨대, 사용자가 선택한 선택 항목이 '도난 감시'이나, 해당 항목이 아직 규정되어 있지 않는다면, 클라우드 오케스트레이션 장치(100)는 '도난 감시'와 가장 유사한 '통합관제', '알람관리' 등을 포함하여 기본 공통 항목을 식별하여, 관련된 쉘 스크립트를 작성할 수 있다.Alternatively, when the selection item selected by the user is an unspecified item, the cloud orchestration device 100 may create a predetermined basic common item as a shell script. For example, if the selected item selected by the user is 'theft monitoring', but the corresponding item is not yet specified, the cloud orchestration device 100 includes 'integrated control', 'alarm management', and the like most similar to 'theft monitoring'. By identifying the basic common items, you can write related shell scripts.

계속해서, 클라우드 오케스트레이션 장치(100))는 상기 쉘 스크립트를 실행하는 템플릿 스크립트를 생성(530) 함으로써, 상기 템플릿 스크립트를 전달 받은 히트 오케스트레이터에서 상기 기능적 요구사항을 구현하는 VM이 구동하도록 한다. 여기서 템플릿 스크립트는, 오케스트레이터를 통해 사용자 요구사항을 가상환경 하에서 실현하도록 하는 명령어, 명령구문 일 수 있다.Subsequently, the cloud orchestration device 100 generates a template script that executes the shell script (530), so that a VM implementing the functional requirements is driven by a heat orchestrator that has received the template script. Here, the template script may be a command or a command syntax for realizing user requirements in a virtual environment through an orchestrator.

단계(530)은 쉘 스크립트를 직접 실행시키는 템플릿 스크립트를 생성하는 과정일 수 있다.Step 530 may be a process of generating a template script that directly executes the shell script.

실시예에 따라, 클라우드 오케스트레이션 장치(100)는 비기능적 요구사항에 따라, VM에서의 성능을 변경하는 처리를 수행할 수 있다.According to an embodiment, the cloud orchestration device 100 may perform processing for changing performance in the VM according to non-functional requirements.

이에 따라, 클라우드 오케스트레이션 장치(100)는 상기 사용자 요구사항을 비기능적 요구사항으로 분류하는 경우, 상기 비기능적 요구사항에 속한 '총 기기수', 'VM 접근 인원 수', 및 '반응 시간' 각각에 매칭되는 가중치를, 테이블로부터 추출하고, 상기 추출된 가중치를, Disk 가중치, RAM 가중치, 및 vCPU 가중치 별로 합산한다.Accordingly, when the cloud orchestration device 100 classifies the user requirements as non-functional requirements, each of the 'total number of devices', 'the number of VM access persons', and 'reaction time' belonging to the non-functional requirements The weights matched to, are extracted from the table, and the extracted weights are added for each Disk weight, RAM weight, and vCPU weight.

즉, 클라우드 오케스트레이션 장치(100)는 '총 기기수', 'VM 접근 인원 수', 및 '반응 시간' 각각에 대해, Disk 가중치, RAM 가중치, 및 vCPU 가중치를 산출하여, Disk 가중치, RAM 가중치, 및 vCPU 가중치 별로 합산하는 역할을 할 수 있다.That is, the cloud orchestration device 100 calculates the disk weight, the RAM weight, and the vCPU weight for each of the 'total number of devices', 'the number of VM access persons', and 'reaction time', thereby calculating the disk weight, RAM weight, And vCPU weighting.

예컨대, 클라우드 오케스트레이션 장치(100)는 '총 기기수(x)' 0 < x <=10 에서의 Disk 가중치(x_d) 2, RAM 가중치(x_r) 1, vCPU 가중치(x_c) 1과, 'VM 접근 인원 수(y)' 0 < y <=10 에서의 Disk 가중치(y_d) 2, RAM 가중치(y_r) 1, vCPU 가중치(y_c) 1과, '반응 시간(z)' z = low 에서의 Disk 가중치(z_d) 1, RAM 가중치(z_r) 3, vCPU 가중치(z_c) 3을 추출하고, Disk 가중치를 합산한 5(2+2+1), RAM 가중치를 합산 5(1+1+3), vCPU 가중치를 합산한 5(1+1+3)을 얻을 수 있다.For example, the cloud orchestration device 100 has a disk weight (x_d) 2, a RAM weight (x_r) 1, a vCPU weight (x_c) 1 at 'total number of devices (x)' 0 <x <= 10, and a 'VM access Disk weight (y) '0 <y <= 10 Disk weight (y_d) 2, RAM weight (y_r) 1, vCPU weight (y_c) 1, and' Reaction time (z) 'Disk weight at z = low (z_d) 1, RAM weight (z_r) 3, vCPU weight (z_c) 3, 5 (2 + 2 + 1) summing the disk weight, 5 (1 + 1 + 3) summing the RAM weight, and vCPU We can get 5 (1 + 1 + 3) which sums the weights.

또한, 클라우드 오케스트레이션 장치(100)는 합산된 수치에 각각 대응하는 Disk 용량, RAM 용량, 및 vCPU 용량을 상기 테이블로부터 확인하며, 상기 확인된 Disk 용량, RAM 용량, 및 vCPU 용량을 고려하여 상기 VM에 대한 성능을 변경할 수 있다.In addition, the cloud orchestration device 100 checks the disk capacity, RAM capacity, and vCPU capacity corresponding to the sum, respectively, from the table, and considers the identified disk capacity, RAM capacity, and vCPU capacity to the VM. Performance can be changed.

즉, 클라우드 오케스트레이션 장치(100)는 가중치 값에 다른 VM 성능 매핑 테이블에서 산출된 Disk 가중치, RAM 가중치, 및 vCPU 가중치 각각에 대응하는 디바이스의 개수를 확인하고, 이를 통해 VM 을 변경, 조정할 수 있다.That is, the cloud orchestration apparatus 100 may check the number of devices corresponding to each of the disk weight, RAM weight, and vCPU weight calculated in the VM performance mapping table different from the weight value, and change and adjust the VM through this.

상술의 예시에서, Disk 가중치 합이 5이므로, 클라우드 오케스트레이션 장치(100)는 4 < x_d + y_d + z_d <= 8에 대응하는 Disk 용량 '1GB'를 결정하여 VM을 변경할 수 있다. 또한, RAM 가중치 합이 5이므로, 클라우드 오케스트레이션 장치(100)는 5 <=x_r + y_r + z_r< 10에 대응하는 RAM '2GB'를 결정하여 VM을 변경할 수 있다. 또한, vCPU 가중치 합이 5이므로, 클라우드 오케스트레이션 장치(100)는 5 <=x_c + y_c + z_c< 10에 대응하는 vCPU '1 core'를 결정하여 VM을 변경할 수 있다.In the above example, since the sum of the disk weights is 5, the cloud orchestration device 100 may change the VM by determining the disk capacity '1 GB' corresponding to 4 <x_d + y_d + z_d <= 8. In addition, since the sum of the RAM weights is 5, the cloud orchestration device 100 may change the VM by determining the RAM '2 GB' corresponding to 5 <= x_r + y_r + z_r <10. In addition, since the sum of the vCPU weights is 5, the cloud orchestration device 100 may change the VM by determining the vCPU '1 core' corresponding to 5 <= x_c + y_c + z_c <10.

또한, 클라우드 오케스트레이션 장치(100)는, 상기 비기능적 요구사항에 속한 '고가용성 지원'의 활성화 여부를 확인하고, 상기 '고가용성 지원'의 활성화를 확인하면, 상기 VM에 오토스케일링 모듈을 추가 함으로써, 상기 오토스케일링 모듈에 의해 상기 VM에서의 특정 기능이 구현되도록 할 수 있다.In addition, the cloud orchestration device 100, by confirming whether the activation of the 'high availability support' belonging to the non-functional requirements, and confirming the activation of the 'high availability support', by adding an autoscaling module to the VM , The specific function in the VM may be implemented by the autoscaling module.

여기서, 오토스케일링(Auto Scaling)은 사용자가 미리 지정한 정책에 따라 트래픽이 발생하였을 때 미리 지정된 만큼의 자원이 늘어나게 설정하는 기술로 정의할 수 있다. 즉, 오토스케일링은, CPU 및 트래픽의 실시간 사용량을 모니터링하여 미리 지정된 정책에 따라 인스턴스를 자동으로 확장 또는 축소시키는 서비스를 의미할 수 있다.Here, auto-scaling may be defined as a technique for setting a predetermined number of resources to increase when traffic occurs according to a policy predefined by a user. That is, autoscaling may mean a service that monitors real-time usage of CPU and traffic and automatically expands or contracts instances according to a predetermined policy.

클라우드 오케스트레이션 장치(100)는 비기능적 요구사항에 의해, 사용자가 '고가용성 자원'을 사용하기 희망 함을 확인함에 따라, 오토스케일링 모듈을 추가하여 VM를 구동할 수 있다.The cloud orchestration device 100 may run an VM by adding an autoscaling module as the user confirms that the user wants to use the 'high availability resource' by non-functional requirements.

이를 통해, VM은, 필요에 따른 오토스케일링 동작을 통해, 서버, 스토리지, 네트워크 등의 자원이 자동으로 늘어 남에 따라 안정적인 서비스를 지원할 수 있다.Through this, the VM can support a stable service as resources such as a server, storage, and network are automatically increased through autoscaling as needed.

또한, 클라우드 오케스트레이션 장치(100)는, 상기 '총 기기수', 상기 'VM 접근 인원 수', 및 상기 '반응 시간' 중, 설정된 한계치를 초과하는 제1 데이터 값을 1/2씩 분할하고, 상기 분할된 제1 데이터 값 각각에 대해, 로드밸런스를 처리할 수 있다.In addition, the cloud orchestration device 100 divides the first data value exceeding a set threshold value by 1/2 among the 'total number of devices', the 'number of VM access persons', and the 'reaction time', For each of the divided first data values, load balancing may be processed.

여기서 로드밸런스는 처리 한계에 도달하면, 부하를 분배하여, 복수의 서버에서 동시간에 처리하는 것을 의미할 수 있다.Here, when the processing limit is reached, load balancing may mean distributing the load and processing at the same time by multiple servers.

예컨대 '총 기기수'가 한계치 50을 초과하여, 70인 경우, 클라우드 오케스트레이션 장치(100)는 상기 '총 기기수' 70을 제1 데이터 값으로 정의하고, 로드밸런싱 기능을 추가 함으로써, 제1 데이터 70을 1/2씩 나눈, '총 기기수' 35와 35 각각에 대해 Disk 가중치를 추출하여, VM 변경 정도를 결정할 수 있다.For example, when the 'total number of devices' exceeds the limit value of 50 and is 70, the cloud orchestration device 100 defines the 'total number of devices' 70 as a first data value and adds a load balancing function, so that the first data By dividing 70 by 1/2, the disk weights can be extracted for each of the 'total number of devices' 35 and 35 to determine the degree of VM change.

또한, 클라우드 오케스트레이션 장치(100)는, 상기 '총 기기수', 상기 'VM 접근 인원 수', 및 상기 '반응 시간' 중, 상기 한계치 이하의 제2 데이터 값을, 상기 로드밸런싱의 처리 시, 유지할 수 있다.In addition, the cloud orchestration device 100, during the processing of the load balancing, the second data value below the threshold value among the 'total number of devices', the 'number of VM access persons', and the 'reaction time', Can be maintained.

상술의 예에서, 한계치를 초과한 '총 기기수'를 제외한, 한계치 이하의 'VM 접근 인원 수'와 '반응 시간'은 제2 데이터 값으로 정의될 수 있다. 클라우드 오케스트레이션 장치(100)는 로드밸런싱 된 '총 기기수' 35에 대한 VM 변경 정도를 결정시, 'VM 접근 인원 수'와 '반응 시간'을 그대로 유지시켜 계산되도록 할 수 있다.In the above example, excluding the 'total number of devices' exceeding the limit value, the 'number of VM access personnel' and the 'reaction time' below the limit value may be defined as second data values. The cloud orchestration device 100 may be calculated by maintaining the 'number of VM access personnel' and 'reaction time' as it is when determining the degree of VM change for the load-balanced 'total number of devices' 35.

본 발명의 일실시예에 따르면, 사용자 요구사항을 기능적/비기능적 요구사항으로 분류하여 템플릿 스크립트에 들어갈 내용을 자동으로 생성 함으로써, 히트 오케스트레이터에서 동작하는 스크립트를 용이하게 생성할 수 있다.According to an embodiment of the present invention, by classifying user requirements into functional / non-functional requirements, the contents to be entered into the template script are automatically generated, so that a script operating in the heat orchestrator can be easily generated.

또한, 본 발명의 일실시예에 따르면, 사용자 요구사항에 기반하여, 히트 오케스트레이션 템플릿을 자동으로 생성하는 아키텍처 및 프로세스를 제시하고, 해당 프로세스를 이용하여 생성된 히트 오케스트레이션 템플릿을 통해, 클라우드 환경 구축에 필요한 여러 리소스의 생성 및 설정을 자동화 할 수 있다.In addition, according to an embodiment of the present invention, based on user requirements, to present an architecture and process for automatically generating a heat orchestration template, and through the heat orchestration template generated using the process, to build a cloud environment You can automate the creation and configuration of multiple required resources.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, or the like alone or in combination. The program instructions recorded in the medium may be specially designed and configured for the embodiments or may be known and usable by those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs, DVDs, and magnetic media such as floptical disks. -Hardware devices specifically configured to store and execute program instructions such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include high-level language codes that can be executed by a computer using an interpreter, etc., as well as machine language codes produced by a compiler. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instruction, or a combination of one or more of these, and configure the processing device to operate as desired, or process independently or collectively You can command the device. Software and / or data may be interpreted by a processing device, or to provide instructions or data to a processing device, of any type of machine, component, physical device, virtual equipment, computer storage medium or device. , Or may be permanently or temporarily embodied in the transmitted signal wave. The software may be distributed over networked computer systems, and stored or executed in a distributed manner. Software and data may be stored in one or more computer-readable recording media.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with limited drawings, those skilled in the art may apply various technical modifications and variations based on the above. For example, the described techniques are performed in a different order than the described method, and / or the components of the described system, structure, device, circuit, etc. are combined or combined in a different form from the described method, or other components Alternatively, even if substituted or substituted by equivalents, appropriate results can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

100 : 클라우드 오케스트레이션 장치
110 : 분류부 120 : 작성부
130 : 생성부 140 : 처리부
100: cloud orchestration device
110: classification unit 120: preparation unit
130: generating unit 140: processing unit

Claims (14)

오픈스택 기반의 클라우드 오케스트레이션 장치에 의해 구현되는 클라우드 오케스트레이션 방법에 있어서,
상기 클라우드 오케스트레이션 장치 내 분류부에서, 템플릿 스크립트의 생성 요청에 연동하여, 상기 생성 요청에 포함되는 사용자 요구사항을 분류하는 단계;
상기 사용자 요구사항을 기능적 요구사항으로 분류하는 경우,
상기 클라우드 오케스트레이션 장치 내 작성부에서, 상기 기능적 요구사항에 속한 선택 요구사항(Option PR)에 의해 결정된 선택 항목에 대해 쉘 스크립트를 작성하는 단계;
상기 클라우드 오케스트레이션 장치 내 생성부에서, 상기 쉘 스크립트를 실행하는 템플릿 스크립트를 생성 함으로써, 상기 템플릿 스크립트를 전달 받은 히트 오케스트레이터(Heat Orchestrator)에서 상기 기능적 요구사항을 구현하는 VM(Virtual Machine)이 구동하도록 하는 단계;
상기 사용자 요구사항을 비기능적 요구사항으로 분류하는 경우,
상기 클라우드 오케스트레이션 장치 내 처리부에서, 상기 비기능적 요구사항에 속한 '총 기기수', 'VM 접근 인원 수', 및 '반응 시간' 각각에 매칭되는 가중치를, 테이블로부터 추출하는 추출 단계;
상기 처리부에서, 상기 추출된 가중치를, Disk 가중치, RAM 가중치, 및 vCPU 가중치 별로 합산하고, 합산된 수치에 각각 대응하는 Disk 용량, RAM 용량, 및 vCPU 용량을 상기 테이블로부터 확인하는 확인 단계; 및
상기 처리부에서, 상기 확인된 Disk 용량, RAM 용량, 및 vCPU 용량을 고려하여 상기 VM에 대한 성능을 변경하는 변경 단계
를 포함하는 오픈스택(OpenStack) 기반의 클라우드 오케스트레이션 방법.
In the cloud orchestration method implemented by an open stack-based cloud orchestration device,
Classifying a user requirement included in the creation request in association with a request for creating a template script in the classification unit within the cloud orchestration device;
When the user requirements are classified as functional requirements,
Creating a shell script for a selection item determined by a selection requirement (Option PR) belonging to the functional requirement in the creation unit in the cloud orchestration device;
In the cloud orchestration device generating unit, by generating a template script that executes the shell script, a virtual machine (VM) that implements the functional requirements is driven by a heat orchestrator that receives the template script. To do;
When the user requirements are classified as non-functional requirements,
An extraction step of extracting a weight matching each of the 'total number of devices', 'the number of VM access persons', and 'reaction time' belonging to the non-functional requirements from the processing unit in the cloud orchestration device;
A checking step of summing the extracted weights for each disk weight, RAM weight, and vCPU weight, and checking the disk capacity, RAM capacity, and vCPU capacity corresponding to the summed values from the table; And
In the processing unit, a change step of changing the performance of the VM in consideration of the checked disk capacity, RAM capacity, and vCPU capacity
Cloud orchestration method based on OpenStack, including.
제1항에 있어서,
상기 쉘 스크립트를 작성하는 단계는,
상기 선택 요구사항에 의해 결정된 선택 항목을 해석하는 단계;
상기 해석 결과에 따라, 결정되어야 하는 공통 요구사항(Common PR)의 공통 항목을 식별하는 단계; 및
상기 공통 항목에 대해 쉘 스크립트를 작성하는 단계
를 포함하는 오픈스택 기반의 클라우드 오케스트레이션 방법.
According to claim 1,
The step of writing the shell script,
Interpreting a selection item determined by the selection requirement;
Identifying a common item of a common requirement (Common PR) to be determined according to the analysis result; And
Creating a shell script for the above common items
Cloud orchestration method based on OpenStack, including.
제1항에 있어서,
상기 쉘 스크립트를 작성하는 단계는,
상기 선택 요구사항에 의해 선택 항목이 결정되지 않는 경우,
사전에 정해진 공통 요구사항 내 기본 공통 항목을 식별하는 단계; 및
상기 기본 공통 항목에 대해 쉘 스크립트를 작성하는 단계
를 포함하는 오픈스택 기반의 클라우드 오케스트레이션 방법.
According to claim 1,
The step of writing the shell script,
If the selection item is not determined by the above selection requirements,
Identifying basic common items within predetermined common requirements; And
Creating a shell script for the above common items
Cloud orchestration method based on OpenStack, including.
삭제delete 제1항에 있어서,
상기 변경 단계 이후에,
상기 처리부에서, 상기 비기능적 요구사항에 속한 '고가용성 지원'의 활성화 여부를 확인하는 단계; 및
상기 처리부에서, 상기 '고가용성 지원'의 활성화를 확인하면, 상기 VM에 오토스케일링 모듈(Auto-Scaling module)을 추가 함으로써, 상기 오토스케일링 모듈에 의해 상기 VM에서의 특정 기능이 구현되도록 하는 단계
를 더 포함하는 오픈스택 기반의 클라우드 오케스트레이션 방법.
According to claim 1,
After the change step,
Checking whether the 'high availability support' belonging to the non-functional requirement is activated in the processing unit; And
When the processing unit confirms activation of the 'high availability support', adding an auto-scaling module to the VM, so that a specific function in the VM is implemented by the auto-scaling module.
Cloud orchestration method based on OpenStacks further comprising.
제1항에 있어서,
상기 추출 단계 이전에,
상기 처리부에서, 상기 '총 기기수', 상기 'VM 접근 인원 수', 및 상기 '반응 시간' 중, 설정된 한계치를 초과하는 제1 데이터 값을 1/2씩 분할하는 단계; 및
상기 처리부에서, 상기 분할된 제1 데이터 값 각각에 대해, 상기 추출 단계, 상기 확인 단계, 상기 변경 단계를 독립적으로 수행하는 로드밸런스(Load-Balance)를 처리하는 단계
를 더 포함하는 오픈스택 기반의 클라우드 오케스트레이션 방법.
According to claim 1,
Before the extraction step,
Dividing, by the processing unit, the first data value exceeding a set threshold among the 'total number of devices', the 'number of VM access persons', and the 'reaction time' by 1/2; And
In the processing unit, for each of the divided first data values, processing a load-balance that independently performs the extraction step, the checking step, and the changing step
Cloud orchestration method based on OpenStacks further comprising.
제6항에 있어서,
상기 로드밸런스를 처리하는 단계 중에,
상기 처리부에서, 상기 '총 기기수', 상기 'VM 접근 인원 수', 및 상기 '반응 시간' 중, 상기 한계치 이하의 제2 데이터 값을, 상기 로드밸런스의 처리 시, 유지하는 단계
를 더 포함하는 오픈스택 기반의 클라우드 오케스트레이션 방법.
The method of claim 6,
During the step of processing the load balance,
In the processing unit, during the processing of the load balance, maintaining the second data value below the limit among the 'total number of devices', the 'number of VM access persons', and the 'reaction time'
Cloud orchestration method based on OpenStacks further comprising.
템플릿 스크립트의 생성 요청에 연동하여, 상기 생성 요청에 포함되는 사용자 요구사항을 분류하는 분류부;
상기 사용자 요구사항을 기능적 요구사항으로 분류하는 경우, 상기 기능적 요구사항에 속한 선택 요구사항에 의해 결정된 선택 항목에 대해 쉘 스크립트를 작성하는 작성부;
상기 쉘 스크립트를 실행하는 템플릿 스크립트를 생성 함으로써, 상기 템플릿 스크립트를 전달 받은 히트 오케스트레이터에서 상기 기능적 요구사항을 구현하는 VM이 구동하도록 하는 생성부; 및
상기 사용자 요구사항을 비기능적 요구사항으로 분류하는 경우, 상기 비기능적 요구사항에 속한 '총 기기수', 'VM 접근 인원 수', 및 '반응 시간' 각각에 매칭되는 가중치를, 테이블로부터 추출하고, 상기 추출된 가중치를, Disk 가중치, RAM 가중치, 및 vCPU 가중치 별로 합산하고, 합산된 수치에 각각 대응하는 Disk 용량, RAM 용량, 및 vCPU 용량을 상기 테이블로부터 확인하며, 상기 확인된 Disk 용량, RAM 용량, 및 vCPU 용량을 고려하여 상기 VM에 대한 성능을 변경하는 처리부
를 포함하는 오픈스택 기반의 클라우드 오케스트레이션 장치.
A classification unit that classifies user requirements included in the generation request in association with a template script generation request;
When classifying the user requirements into functional requirements, a writing unit that creates a shell script for selection items determined by selection requirements belonging to the functional requirements;
A generator configured to generate a template script that executes the shell script, so that a VM implementing the functional requirements is driven by a hit orchestrator that has received the template script; And
When the user requirements are classified as non-functional requirements, weights matching each of the 'total number of devices', 'VM access number', and 'reaction time' belonging to the non-functional requirements are extracted from the table. , Sums the extracted weights for each Disk weight, RAM weight, and vCPU weight, checks Disk capacity, RAM capacity, and vCPU capacity corresponding to the summed values from the table, and checks the checked Disk capacity, RAM Processing unit to change the performance of the VM in consideration of capacity and vCPU capacity
Cloud orchestration device based on the OpenStack, including.
제8항에 있어서,
상기 작성부는,
상기 선택 요구사항에 의해 결정된 선택 항목을 해석하고, 상기 해석 결과에 따라, 결정되어야 하는 공통 요구사항의 공통 항목을 식별하며, 상기 공통 항목에 대해 쉘 스크립트를 작성하는
오픈스택 기반의 클라우드 오케스트레이션 장치.
The method of claim 8,
The preparation unit,
Interpreting the selection items determined by the selection requirements, identifying the common items of the common requirements to be determined according to the analysis result, and writing a shell script for the common items
OpenStack-based cloud orchestration device.
제8항에 있어서,
상기 선택 요구사항에 의해 선택 항목이 결정되지 않는 경우,
상기 작성부는,
사전에 정해진 공통 요구사항 내 기본 공통 항목을 식별하고, 상기 기본 공통 항목에 대해 쉘 스크립트를 작성하는
오픈스택 기반의 클라우드 오케스트레이션 장치.
The method of claim 8,
If the selection item is not determined by the above selection requirements,
The preparation unit,
Identify basic common items within predefined common requirements, and write shell scripts for the default common items
OpenStack-based cloud orchestration device.
삭제delete 제8항에 있어서,
상기 처리부는,
상기 비기능적 요구사항에 속한 '고가용성 지원'의 활성화 여부를 확인하고, 상기 '고가용성 지원'의 활성화를 확인하면, 상기 VM에 오토스케일링 모듈을 추가 함으로써, 상기 오토스케일링 모듈에 의해 상기 VM에서의 특정 기능이 구현되도록 하는
오픈스택 기반의 클라우드 오케스트레이션 장치.
The method of claim 8,
The processing unit,
When checking whether or not the 'high availability support' belonging to the non-functional requirements is activated, and confirming the activation of the 'high availability support', by adding an autoscaling module to the VM, in the VM by the autoscaling module To ensure that certain features of
OpenStack-based cloud orchestration device.
제8항에 있어서,
상기 처리부는,
상기 '총 기기수', 상기 'VM 접근 인원 수', 및 상기 '반응 시간' 중, 설정된 한계치를 초과하는 제1 데이터 값을 1/2씩 분할하고, 상기 분할된 제1 데이터 값 각각에 대해, 로드밸런스를 처리하는
오픈스택 기반의 클라우드 오케스트레이션 장치.
The method of claim 8,
The processing unit,
Among the 'total number of devices', the 'number of VM access persons', and the 'reaction time', a first data value exceeding a set threshold is divided by 1/2, and for each of the divided first data values , Which handles load balancing
OpenStack-based cloud orchestration device.
제13항에 있어서,
상기 처리부는,
상기 '총 기기수', 상기 'VM 접근 인원 수', 및 상기 '반응 시간' 중, 상기 한계치 이하의 제2 데이터 값을, 상기 로드밸런스의 처리 시, 유지하는
오픈스택 기반의 클라우드 오케스트레이션 장치.
The method of claim 13,
The processing unit,
Among the 'total number of devices', the 'number of VM access persons', and the 'reaction time', a second data value below the threshold is maintained when processing the load balance.
OpenStack-based cloud orchestration device.
KR1020180123162A 2018-10-16 2018-10-16 Method and device of cloud orchestration based in openstack KR102106223B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180123162A KR102106223B1 (en) 2018-10-16 2018-10-16 Method and device of cloud orchestration based in openstack

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180123162A KR102106223B1 (en) 2018-10-16 2018-10-16 Method and device of cloud orchestration based in openstack

Publications (2)

Publication Number Publication Date
KR20200042702A KR20200042702A (en) 2020-04-24
KR102106223B1 true KR102106223B1 (en) 2020-05-28

Family

ID=70466272

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180123162A KR102106223B1 (en) 2018-10-16 2018-10-16 Method and device of cloud orchestration based in openstack

Country Status (1)

Country Link
KR (1) KR102106223B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102471532B1 (en) * 2020-10-30 2022-11-28 부산대학교 산학협력단 Method and device to manage cloud orchestration template with version management system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101561780B1 (en) * 2014-06-16 2015-10-19 부산대학교 산학협력단 System and method of tenant requirement analysis for tenant-centric cloud service broker
US20180046482A1 (en) * 2016-08-09 2018-02-15 International Business Machines Corporation Expediting the provisioning of virtual machines based on cached repeated portions of a template

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101547498B1 (en) * 2013-08-08 2015-08-26 삼성전자주식회사 The method and apparatus for distributing data in a hybrid cloud environment
JP6548540B2 (en) * 2014-12-16 2019-07-24 キヤノン株式会社 Management system and control method of management system
KR102364712B1 (en) * 2015-04-03 2022-02-18 한국전자통신연구원 A system and method for integrated service orchestration in distributed cloud envronment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101561780B1 (en) * 2014-06-16 2015-10-19 부산대학교 산학협력단 System and method of tenant requirement analysis for tenant-centric cloud service broker
US20180046482A1 (en) * 2016-08-09 2018-02-15 International Business Machines Corporation Expediting the provisioning of virtual machines based on cached repeated portions of a template

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
박준석 외 2명. '클라우드 사용자 요구사항 기반으로 클라우드 서비스 중개를 위한 가상 클라우드 뱅크 아키텍처'. 정보과학회논문지 제42권 제9호, 2015.09., pp.1090-1099.

Also Published As

Publication number Publication date
KR20200042702A (en) 2020-04-24

Similar Documents

Publication Publication Date Title
US8914527B2 (en) Methods and systems for load balancing using forecasting and overbooking techniques
EP3606008B1 (en) Method and device for realizing resource scheduling
US10514960B2 (en) Iterative rebalancing of virtual resources among VMs to allocate a second resource capacity by migrating to servers based on resource allocations and priorities of VMs
US9396042B2 (en) Methods and systems for evaluating historical metrics in selecting a physical host for execution of a virtual machine
KR101977726B1 (en) APPARATUS AND METHOD FOR Virtual Desktop Services
US10205771B2 (en) System and method for deploying an application in a computer system
US8271653B2 (en) Methods and systems for cloud management using multiple cloud management schemes to allow communication between independently controlled clouds
US8930541B2 (en) System, method and program product for cost-aware selection of templates for provisioning shared resources
US9450783B2 (en) Abstracting cloud management
US9424063B2 (en) Method and system for generating remediation options within a cluster of host computers that run virtual machines
US9389900B2 (en) Method and system for supporting a change in state within a cluster of host computers that run virtual machines
US20120284410A1 (en) Cloud workload management with automated workload bidding
US20150295792A1 (en) Management of virtual machine resources in computing environments
US20150295791A1 (en) Management of virtual machine placement in computing environments
US20140096139A1 (en) Workload management considering hardware reliability
JP2014527221A (en) Application resource manager on the cloud
KR20100138689A (en) Management server and method for providing cloud computing service
WO2011162746A1 (en) A method and system for determining a deployment of applications
US11513721B2 (en) Method and system for performance control in a cloud computing environment
US9971971B2 (en) Computing instance placement using estimated launch times
US20150326495A1 (en) System construction device and system construction method
US11886927B2 (en) ICT resource management device, ICT resource management method and ICT resource management program
KR20170139763A (en) Method for detecting service of network and apparatus using the same
KR102106223B1 (en) Method and device of cloud orchestration based in openstack
Raj et al. Efficient resource allocation in resource provisioning policies over resource cloud communication paradigm

Legal Events

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