KR20230160046A - Method for managing multi cloud and electronic device - Google Patents
Method for managing multi cloud and electronic device Download PDFInfo
- Publication number
- KR20230160046A KR20230160046A KR1020220059608A KR20220059608A KR20230160046A KR 20230160046 A KR20230160046 A KR 20230160046A KR 1020220059608 A KR1020220059608 A KR 1020220059608A KR 20220059608 A KR20220059608 A KR 20220059608A KR 20230160046 A KR20230160046 A KR 20230160046A
- Authority
- KR
- South Korea
- Prior art keywords
- function
- cloud
- electronic device
- workflow
- processor
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 52
- 230000006870 function Effects 0.000 claims abstract description 108
- 230000004044 response Effects 0.000 claims abstract description 23
- 238000007726 management method Methods 0.000 claims description 105
- 238000013515 script Methods 0.000 claims description 47
- 230000008569 process Effects 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 15
- 238000011161 development Methods 0.000 claims description 13
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000012546 transfer Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 15
- 230000008859 change Effects 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 9
- 239000000872 buffer Substances 0.000 description 8
- 238000004891 communication Methods 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 208000025174 PANDAS Diseases 0.000 description 1
- 208000021155 Paediatric autoimmune neuropsychiatric disorders associated with streptococcal infection Diseases 0.000 description 1
- 240000000220 Panda oleosa Species 0.000 description 1
- 235000016496 Panda oleosa Nutrition 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000011425 standardization method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45516—Runtime code conversion or optimisation
- G06F9/4552—Involving translation to a different instruction set architecture, e.g. just-in-time translation in a JVM
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45537—Provision of facilities of other operating environments, e.g. WINE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45554—Instruction set architectures of guest OS and hypervisor or native processor differ, e.g. Bochs or VirtualPC on PowerPC MacOS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Human Computer Interaction (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
다양한 실시예들에 따른 전자 장치는 프로세서 및 메모리를 포함하며, 프로세서는 제 1 프로그래밍 언어로 작성된 제 1 함수 및 제 2 프로그래밍 언어로 작성된 제 2 함수를 포함하는 워크플로우가 실행됨에 대응하여 제 1 함수의 출력 데이터를 제 2 프로그래밍 언어에서 사용 가능한 데이터 셋으로 변환시키고, 변환된 데이터 셋을 상기 제 2 함수의 입력 데이터로 전송하며, 제 1 함수의 출력 데이터 및 제 2 함수의 입력 데이터를 GUI(graphic user interface)를 형태로 표시할 수 있다.An electronic device according to various embodiments includes a processor and a memory, and the processor executes a first function in response to execution of a workflow including a first function written in a first programming language and a second function written in a second programming language. The output data of is converted into a data set usable in a second programming language, the converted data set is transmitted as input data of the second function, and the output data of the first function and the input data of the second function are displayed in a graphical user interface (GUI). user interface) can be displayed in the form of
Description
본 문서는 멀티 클라우드 관리 방법 및 전자 장치에 관한 것이다. This document relates to a multi-cloud management method and electronic devices.
멀티 클라우드(multi cloud)는 복수의 클라우드 서비스 제공자에 의해 제공되는 클라우드로 구성된다. 멀티 클라우드는 퍼블릭 클라우드(public cloud) 및 프라이빗 클라우드(private cloud)를 포함할 수 있다.Multi cloud consists of clouds provided by multiple cloud service providers. Multi-cloud may include public cloud and private cloud.
멀티 클라우드는 각 클라우드 서비스 제공자에 의해 제공되는 클라우드 서비스의 장점을 취합하여 구성할 수 있는 장점이 있다.Multi-cloud has the advantage of being able to combine the advantages of cloud services provided by each cloud service provider.
그러나, 사용자가 멀티 클라우드를 기반으로 애플리케이션을 개발하거나 클라우드를 운영하기 위해서는 각각의 클라우드 기술 또는 프로그래밍 언어를 별도 학습해야 하는 문제가 있다. 또는, 사용자가 멀티 클라우드를 기반으로 애플리케이션을 개발하거나 클라우드를 운영하기 위해서는 아키텍쳐가 복잡해지고, 개발 시간이 지체되는 문제가 있다.However, in order for users to develop applications based on multi-cloud or operate the cloud, there is a problem that users must separately learn each cloud technology or programming language. Alternatively, for users to develop applications or operate clouds based on multi-cloud, the architecture becomes complex and development time is delayed.
클라우드를 기반으로 동작하는 기능들은 소프트웨어를 기반으로 세분화되어서 운영이 되기 때문에, 운영 관리가 복잡하여 운영 비용이 증가하거나 관리의 효율성이 떨어지는 문제가 있다.Because cloud-based functions are segmented and operated based on software, operational management is complicated, resulting in increased operating costs or reduced management efficiency.
하나의 워크플로우를 갖는 프로그램은 다양한 프로그래밍 언어로 작성된 복수의 함수로 구성될 수 있다. 각각의 프로그래밍 언어는 각 언어별 데이터의 구성 방식이 상이하므로 이종 언어로 작성된 함수간 데이터 전달이 어려울 수 있다. 일반적으로 파일 또는 데이터베이스 등의 외부 저장 매체를 이용하여 이종 함수간 데이터 전달을 수행할 수 있으나 외부 저장 매체의 사용은 프로그램의 성능 저하를 일으킬 수 있어서 각 언어에서 개발된 함수를 연결하는 별도의 응용프로그램 개발이 필요할 수 있다.A program with one workflow may consist of multiple functions written in various programming languages. Since each programming language has a different way of configuring data, it can be difficult to transfer data between functions written in different languages. In general, data can be transferred between heterogeneous functions using external storage media such as files or databases, but the use of external storage media can cause deterioration in program performance, so a separate application that connects functions developed in each language is required. Development may be needed.
본 개시의 멀티 클라우드 관리 방법 및 전자 장치는 멀티 클라우드와 같은 이종 환경에서 전자 장치로 구성된 운영 환경을 효과적으로 통제하는데 목적이 있다.The purpose of the multi-cloud management method and electronic device of the present disclosure is to effectively control an operating environment composed of electronic devices in a heterogeneous environment such as a multi-cloud.
다양한 실시예들에 따른 전자 장치는 프로세서 및 메모리를 포함하며, 프로세서는 제 1 프로그래밍 언어로 작성된 제 1 함수 및 제 2 프로그래밍 언어로 작성된 제 2 함수를 포함하는 워크플로우가 실행됨에 대응하여 제 1 함수의 출력 데이터를 제 2 프로그래밍 언어에서 사용 가능한 데이터 셋으로 변환시키고, 변환된 데이터 셋을 상기 제 2 함수의 입력 데이터로 전송하며, 제 1 함수의 출력 데이터 및 제 2 함수의 입력 데이터를 GUI(graphic user interface)를 형태로 표시할 수 있다.An electronic device according to various embodiments includes a processor and a memory, and the processor executes a first function in response to execution of a workflow including a first function written in a first programming language and a second function written in a second programming language. The output data of is converted into a data set usable in a second programming language, the converted data set is transmitted as input data of the second function, and the output data of the first function and the input data of the second function are displayed in a graphical user interface (GUI). user interface) can be displayed in the form of
다양한 실시예들에 따른 전자 장치의 멀티 클라우드 관리 방법은 제 1 프로그래밍 언어로 작성된 제 1 함수 및 제 2 프로그래밍 언어로 작성된 제 2 함수를 포함하는 워크플로우가 실행됨에 대응하여 제 1 함수의 출력 데이터를 제 2 프로그래밍 언어에서 사용 가능한 데이터 셋으로 변환시키는 동작, 변환된 데이터 셋을 상기 제 2 함수의 입력 데이터로 전송하는 동작 및 GUI(graphic user interface)를 기반으로 제 1 함수의 출력 데이터 및 제 2 함수의 입력 데이터를 사용자에게 표시하는 동작을 포함할 수 있다.A multi-cloud management method for an electronic device according to various embodiments includes output data of the first function in response to execution of a workflow including a first function written in a first programming language and a second function written in a second programming language. An operation of converting a data set usable in a second programming language, an operation of transmitting the converted data set as input data of the second function, and output data of the first function and the second function based on a graphic user interface (GUI) It may include an operation of displaying input data to the user.
본 문서에 따른 멀티 클라우드 관리 방법 및 전자 장치는 서비스 운영에 필요한 소프트웨어 및 패키지를 리스트로 제공하고, 리스트를 기반으로 서비스를 워크 플로우 형태로 생성 가능한 사용자 인터페이스를 제공할 수 있다. The multi-cloud management method and electronic device according to this document can provide a list of software and packages necessary for service operation, and provide a user interface that can create a service in the form of a workflow based on the list.
본 문서의 멀티 클라우드 관리 방법 및 전자 장치는 다양한 실행 환경(예를 들어, 실행 언어, 실행 운영 체계 등)을 일관되게 적용할 수 있도록 실행 환경에 대한 제어 기능을 제공할 수 있다.The multi-cloud management method and electronic device of this document can provide a control function for the execution environment so that various execution environments (eg, execution language, execution operating system, etc.) can be applied consistently.
도 1은 다양한 실시예들에 따른, 전자 장치의 구성을 나타낸 도면이다.
도 2는, 본 문서에 개시된 다양한 실시예에 따른 전자 장치가 워크플로우의 순서도 작성 UI를 제공하는 방법을 설명하기 위한 도면이다.
도 3은 전자 장치가 단일 프로그램을 이용하여 이종 개발 언어의 실행을 지원하는 방법을 설명하기 위한 도면이다.
도 4는 전자 장치가 프로토콜 버퍼의 실행 기능을 자동화하는 방법을 설명하기 위한 도면이다.
도 5는 전자 장치가 워크플로우 실행 환경에서 실행에 필요한 프로그램 실행 정보를 관리하는 방법을 설명하기 위한 도면이다.
도 6은 전자 장치가 워크플로우 실행 환경에서 개별 노드를 실행할 머신을 지정하여 워크플로우를 실행하는 방법을 설명하기 위한 도면이다.
도 7은 전자 장치가 다른 기종의 클라우드 자원과 소프트웨어 실행 모듈을 통합하여 관리하는 방법을 설명하기 위한 도면이다.
도 8은 전자 장치가 서로 다른 종류(이종)의 클라우드 환경을 제어하는 방법을 설명하기 위한 도면이다.
도 9는 전자 장치가 클라우드에서 동작하는 카탈로그의 라이프사이클을 관리하는 방법을 설명하기 위한 도면이다.
도 10은 전자 장치가 소프트웨어를 트랜잭션(transaction) 단위로 관리하는 방법을 설명하기 위한 도면이다.1 is a diagram showing the configuration of an electronic device according to various embodiments.
FIG. 2 is a diagram illustrating a method in which an electronic device provides a workflow flowchart creation UI according to various embodiments disclosed in this document.
FIG. 3 is a diagram illustrating a method in which an electronic device supports execution of heterogeneous development languages using a single program.
FIG. 4 is a diagram illustrating a method by which an electronic device automates the execution function of a protocol buffer.
FIG. 5 is a diagram illustrating a method by which an electronic device manages program execution information required for execution in a workflow execution environment.
FIG. 6 is a diagram illustrating a method in which an electronic device executes a workflow by specifying a machine to execute an individual node in a workflow execution environment.
FIG. 7 is a diagram illustrating a method by which an electronic device integrates and manages different types of cloud resources and software execution modules.
FIG. 8 is a diagram illustrating a method by which an electronic device controls different types (heterogeneous) cloud environments.
FIG. 9 is a diagram illustrating a method by which an electronic device manages the life cycle of a catalog operating in the cloud.
FIG. 10 is a diagram illustrating a method by which an electronic device manages software on a transaction basis.
도 1은 다양한 실시예들에 따른, 전자 장치(100)의 구성을 나타낸 도면이다.FIG. 1 is a diagram showing the configuration of an
본 문서에서, 전자 장치(100)는 네트워크 환경에 연결된 서버(server)를 포함할 수 있다. 서버는 프로세서(110) 및 메모리(130)와 같은 컴퓨팅 장치를 포함할 수 있다. 본 문서에 개시된 발명은 서버에 구성된 프로그램(program)을 통해 멀티 클라우드를 관리하는 서비스와 관련된 것일 수 있다. 이하에서, 설명되는 각 동작들은 그 동작의 주체에 대한 별도의 설명이 없는 경우, 전자 장치(100)에 포함된 프로세서(110)에 의해 연산 및 처리되는 것으로 이해될 수 있다. 예를 들어, 프로세서(110)는 메모리(130)에 저장된 프로그램을 인스트럭션(instruction) 단위로 읽어 그 인스트럭션에 따라 기능들을 수행할 수 있다. In this document, the
전자 장치(100)는 멀티 클라우드 관리 모듈(101), 프로세서(110) 및 메모리(130)를 포함할 수 있다. 전자 장치(100)는 프로세서(110)를 이용하여 멀티 클라우드 관리 모듈(101)을 제어할 수 있다.The
멀티 클라우드 관리 모듈(101)는 서비스에 필요한 클라우드(102)를 관리할 수 있다. 서비스는, 예를 들어, 애플리케이션 또는 네트워크 상에 제공되는 프로그램일 수 있다. 멀티 클라우드 관리 모듈(101)은 클라우드(102)에 포함된 리소스(resource)에 접근할 수 있다.The
멀티 클라우드 관리 모듈(101)은 클라우드(102)에 포함된 복수의 클라우드(1211, 1212, 1221, 1222)에서 운영되는 리소스를 제어하고 관리할 수 있다.The
멀티 클라우드 관리 모듈(101)은 클라우드(102)에 포함된 복수의 클라우드(1211, 1212, 1221, 1222)를 제어하기 하기 위해 클라우드 리소스에 대한 인터페이스를 포함할 수 있다. The
클라우드 리소스는 컴퓨팅 자원(computing resource), 스토리지 자원(storage resource), 또는 네트워크 자원(network resource) 중 적어도 하나 이상을 포함할 수 있다. Cloud resources may include at least one of computing resources, storage resources, or network resources.
멀티 클라우드 관리 모듈(101)은 클라우드(102)에 포함된 복수의 클라우드(1211, 1212, 1221, 1222)의 리소스에 대한 표준화된 속성과 비표준화된 속성의 특성을 분류하여 관리할 수 있다.The
멀티 클라우드 관리 모듈(101)은 클라우드(102)에 포함된 복수의 클라우드(1211, 1212, 1221, 1222)의 리소스를 제어하기 위한 개별 리소스 유형에 따른 API 형식으로 리소스를 제어할 수 있다. API 형식은 예를 들어, RESTful, CLI, Library 형식을 포함할 수 있다.The
멀티 클라우드 관리 모듈(101)은 클라우드(102)에 포함된 복수의 클라우드(1211, 1212, 1221, 1222)의 리소스에 대해 생성, 삭제 또는 변경 중 적어도 하나 이상에 따른 상태 변경 완료에 따른 알림을 제공할 수 있다.The
멀티 클라우드 관리 모듈(101)은 클라우드(102)에 포함된 리소스와 소프트웨어 실행 모듈을 통합하여 관리할 수 있다. The
멀티 클라우드 관리 모듈(101)은 소프트웨어 또는 서비스가 클라우드(102)에서 동작하게 할 수 있다.The
멀티 클라우드 관리 모듈(101)은 소프트웨어 또는 서비스가 클라우드(102)에서 실행하게 하는 실행 메커니즘을 포함할 수 있다.The
멀티 클라우드 관리 모듈(101)은 소프트웨어 또는 서비스가 클라우드(102)에서 동작하게 할 수 있도록 클라우드 리소스를 생성하기 위한 리소스 명세(specification)를 포함할 수 있다.The
멀티 클라우드 관리 모듈(101)은 소프트웨어 또는 서비스가 클라우드(102)에서 동작하게 할 수 있도록 소프트웨어 또는 서비스 설정을 포함할 수 있다.The
멀티 클라우드 관리 모듈(101)은 소프트웨어 또는 서비스가 클라우드(102)에서 동작하게 할 수 있도록 소프트웨어 또는 서비스 설정을 위한 명세를 포함할 수 있다. The
멀티 클라우드 관리 모듈(101)은 클라우드 리소스 명세를 계층화하여 관리할 수 있다. 예를 들어, 멀티 클라우드 관리 모듈(101)은 클라우드 리소스 명세를 JSON, YAML, 또는 데이터베이스 테이블 구조 중 적어도 하나 이상으로 계층화 할 수 있다. The
멀티 클라우드 관리 모듈(101)은 표준 사양 정보와 표준 사양에 따른 클라우드 별 특성에 따른 속성 정보를 기반으로 클라우드 리소스 명세를 관리할 수 있다.The
멀티 클라우드 관리 모듈(101)은 클라우드 리소스 명세에 기반하여 클라우드 리소스 생성과 관리를 수행할 수 있다. 멀티 클라우드 관리 모듈(101)은 클라우드 리소스 명세에 기반하여 클라우드 리소스 생성과 관리에 따른 리소스 상태 변경을 사용자에게 알림으로 제공할 수 있다.The
멀티 클라우드 관리 모듈(101)은 클라우드 리소스 명세에 접근할 수 있는 인터페이스를 사용자에게 제공할 수 있다. 예를 들어, 인터페이스는 웹 콘솔(web console), 모니터링(monitoring) 또는 파일 관리자(file manager) 중 적어도 하나 이상일 수 있다.The
멀티 클라우드 관리 모듈(101)은 가상 머신(virtual machine) 및/또는 컨테이너(container)에서 동작하는 운영체제(OS)에 관계없이 컴퓨팅 자원에 존재하는 파일에 대한 관리를 위해서 파일 관리자를 포함할 수 있다. 사용자는 파일 관리자를 통해 서비스에 필요한 정보를 업로드하거나 다운로드할 수 있다.The
멀티 클라우드 관리 모듈(101)은 소프트웨어 또는 서비스에 포함된 실행 스크립트에 설정된 라벨(label)과 클라우드 리소스에 설정된 라벨 정보를 비교하여 실행 스크립트에 설정된 라벨에 대응하는 리소스를 실행할 수 있다.The
멀티 클라우드 관리 모듈(101)은 소프트웨어 또는 서비스가 위치하는 리소스 유형에 따라서 소프트웨어 또는 서비스에 포함된 실행 스크립트에 라벨을 자동으로 설정할 수 있다.The
멀티 클라우드 관리 모듈(101)은 소프트웨어 또는 서비스를 위한 제어를 클라우드 리소스의 상태 정보에 설정된 워크 플로우(work flow)에 기반하여 실행될 수 있다.The
멀티 클라우드 관리 모듈(101)은 소프트웨어 또는 서비스 운영에 필요한 애플리케이션 및/또는 패키지를 리스트화하여 관리할 수 있다. The
멀티 클라우드 관리 모듈(101)은 소프트웨어 또는 서비스 운영에 필요한 애플리케이션 및/또는 패키지를 오픈 소스 및 상용 소프트웨어의 구분 없이 스크립트 및 API를 활용하여 관리할 수 있다.The
멀티 클라우드 관리 모듈(101)은 소프트웨어 또는 서비스 운영에 필요한 애플리케이션 및/또는 패키지에 대한 버전 관리를 통해 이력을 관리할 수 있다.The
소프트웨어 또는 서비스 운영에 필요한 애플리케이션 및/또는 패키지를 스크립트 및 API를 활용하여 관리할 때, 멀티 클라우드 관리 모듈(101)은 스크립트에서 활용할 수 있는 변수 및 사용자 정의 변수를 지원할 수 있다. When managing applications and/or packages required for software or service operation using scripts and APIs, the
소프트웨어 또는 서비스 운영에 필요한 애플리케이션 및/또는 패키지를 스크립트 및 API를 활용하여 관리할 때, 멀티 클라우드 관리 모듈(101)은 파이프 라인 기능을 통해 스크립트 간 연계 기능을 지원할 수 있다. When managing applications and/or packages required for software or service operation using scripts and APIs, the
멀티 클라우드 관리 모듈(101)은 소프트웨어 또는 서비스 운영에 필요한 파일에 대해 패키지로 관리할 수 있다.The
멀티 클라우드 관리 모듈(101)은 소프트웨어 또는 서비스 운영에 필요한 사용자 로컬 파일 및/또는 원격 파일을 지정할 수 있다. The
멀티 클라우드 관리 모듈(101)은 소프트웨어 또는 서비스 운영에 필요한 패키지 파일에 대해 접근할 수 있는 사용자 인터페이스를 제공할 수 있다.The
멀티 클라우드 관리 모듈(101)은 클라우드 리소스 명세 관리 기능 및 소프트웨어 또는 서비스 실행 관리 기능을 제공할 수 있다. The
멀티 클라우드 관리 모듈(101)은 클라우드 리소스 명세 관리 및/또는 소프트웨어 또는 서비스 실행 관리를 위한 서비스 카탈로그를 포함할 수 있다.The
서비스 카탈로그는 클라우드 기반으로 소프트웨어 또는 서비스를 제공하기 위한 클라우드 리소스와 소프트웨어(또는 서비스) 실행을 위한 프로그램의 묶음일 수 있다. A service catalog may be a bundle of cloud resources for providing software or services on a cloud basis and programs for executing software (or services).
멀티 클라우드 관리 모듈(101)은 소프트웨어 또는 서비스 환경에 필요한 서비스 카탈로그를 검색 및 공유하는 기능을 포함할 수 있다.The
멀티 클라우드 관리 모듈(101)은 서비스 카탈로그에 대한 버전 관리 기능을 제공할 수 있다.The
멀티 클라우드 관리 모듈(101)은 각각의 서비스 카탈로그의 실행에 따른 카탈로그 인스턴스(instance)를 관리할 수 있다. 멀티 클라우드 관리 모듈(101)은 각각에 카탈로그 인스턴스에 대한 상세 정보를 관리할 수 있다. 멀티 클라우드 관리 모듈(101)은 생성된 카탈로그 인스턴스에 대한 토폴로지(topology)를 관리할 수 있다. The
카탈로그 인스턴스는 서비스 카탈로그를 통해서 클라우드(102)에 생성된 서비스의 이름일 수 있다. The catalog instance may be the name of a service created in the
멀티 클라우드 관리 모듈(101)은 서비스 카탈로그의 실행에 따라 클라우드 리소스를 생성되도록 제어하며, 생성되는 클라우드 리소스의 상태 변경에 따라서 설정된 워크 플로우를 실행할 수 있다. The
멀티 클라우드 관리 모듈(101)은 서비스 카탈로그를 통해서 서비스 카탈로그 및/또는 서비스 카탈로그 템플릿 단위로 상태 정보를 정의할 수 있다. The
서비스 카탈로그 템플릿은 서비스 카탈로그를 구성하는 클라우드 리소스와 소프트웨어(또는 서비스) 실행을 위한 프로그램의 묶음의 단위일 수 있다. A service catalog template may be a unit of a bundle of cloud resources constituting a service catalog and programs for executing software (or services).
멀티 클라우드 관리 모듈(101)은 정의된 상태 정보에 기반하여 실행할 워크 플로우 및/또는 소프트웨어(또는 서비스)의 스크립트를 실행할 수 있다. 상태 정보는 사용자 정의 또는 시스템에 의해 제공될 수 있다. 멀티 클라우드 관리 모듈(101)은 상태 정보가 사용자 정의에 의해 제공되는지 시스템에 의해 제공되는지 여부를 구분하고 제공할 수 있다. 멀티 클라우드 관리 모듈(101)은 상태 정보에 기반하여 클라우드 리소스 및/또는 소프트웨어(또는 서비스)의 상태를 관리할 수 있다. The
멀티 클라우드 관리 모듈(101)은 클라우드(102)에 포함된 복수의 클라우드(1211, 1212, 1221, 1222)에 기반하여 서비스를 제공하기 위해서 각각의 클라우드 기술 또는 프로그래밍 언어를 실행할 수 있는 스크립트 엔진(script engine)을 포함할 수 있다. The
멀티 클라우드 관리 모듈(101)은 각각의 개별적인 프로그래밍 언어에 대한 스크립트 엔진을 포함하며, 각각의 프로그래밍 언어를 실행할 때 필요한 스크립트 엔진을 호출할 수 있다.The
각각의 프로그래밍 언어가 실행될 때, 멀티 클라우드 관리 모듈(101)은 멀티 클라우드 관리 모듈(101)에서 관리하는 정보를 각각의 프로그래밍 언어에 맞도록 제공함으로써 서비스의 일관성을 유지할 수 있다. When each programming language is executed, the
멀티 클라우드 관리 모듈(101)은 각각의 프로그래밍 언어의 실행에 따른 결과와 멀티 클라우드 관리 모듈(101)에서 관리하는 정보를 해석하여 서비스의 일관성을 유지할 수 있다. 멀티 클라우드 관리 모듈(101)은 각각의 프로그래밍 언어의 실행에 따른 결과와 멀티 클라우드 관리 모듈(101)에서 관리하는 정보를 후속하여 호출되는 프로그래밍 언어의 실행 환경에 제공할 수 있다.The
다양한 실시예에서, 멀티 클라우드 관리 모듈(101)에 포함된 스크립트 엔진은 하나의 프로그래밍 언어뿐만 아니라, 복수의 프로그래밍 언어로 작성된 서비스에 대해서 실행할 수 있는 프로그램 또는 인터프리터(interpreter)일 수 있다.In various embodiments, the script engine included in the
멀티 클라우드 관리 모듈(101)은 워크 플로우 관리 기능을 포함할 수 있다. 멀티 클라우드 관리 모듈(101)은 소프트웨어 또는 서비스에 기초하여 워크 플로우를 설계할 수 있는 웹 기반의 사용자 인터페이스를 제공할 수 있다. The
멀티 클라우드 관리 모듈(101)은 서비스 카탈로그 및/또는 서비스 카탈로그 인스턴스에 기초하여 워크 플로우 자동 실행 환경을 제공할 수 있다. The
본 개시의 워크 플로우는 사용자가 지정한 실행 단위를 지정한 머신에서 실행하기 위해서 사용자가 정의하는 프로그램일 수 있다.The workflow of the present disclosure may be a program defined by the user to execute an execution unit designated by the user on a designated machine.
워크 플로우는 복수의 실행 노드를 포함하며, 실행 노드는 워크 플로우를 구성하며 실행하는 기본 단위이며, 지정된 머신에서 실행될 수 있다.A workflow includes a plurality of execution nodes. An execution node is the basic unit that composes and executes a workflow, and can be executed on a designated machine.
머신은 실행 노드에서 생성 또는 작성된 실행 언어가 실행되는 장치로서, 예를 들어, 가상 머신 및/또는 컨테이너를 포함할 수 있다.A machine is a device on which an execution language created or written in an execution node runs, and may include, for example, a virtual machine and/or a container.
각각의 실행 노드에서 실행되는 객체는 해당 실행 노드에 지정된 라벨 정보에 기반하여 지정될 수 있다. 실행되는 객체는 클라우드 객체일 수 있다.Objects executed in each execution node can be designated based on label information specified in the corresponding execution node. The object being executed may be a cloud object.
멀티 클라우드 관리 모듈(101)은 각각의 실행 노드에서 실행되는 객체를 해당 실행 노드에 지정된 라벨 정보에 기반하여 지정할 수 있다.The
멀티 클라우드 관리 모듈(101)은 실행 노드에 지정된 라벨 정보를 포함하는 머신에 대해서 실행 단계에서 정보 조회를 통해 실행 대상 머신을 특정할 수 있다.The
멀티 클라우드 관리 모듈(101)은 특정된 머신에서 제공하는 원격 접속 정보를 통해서 원격으로 접속하고 머신을 실행할 수 있다. 원격 접속은 예를 들어, 아이디/패스워드 방식, 키 페어 방식 또는 로컬 머신 방식 중 적어도 하나 이상일 수 있다. 원격 접속 정보는 아이디/패스워드, 키 페어 또는 로컬 머신에 관한 정보 중 적어도 하나 이상을 포함할 수 있다.The
라벨 정보를 포함하는 머신이 복수 개 존재하는 경우, 멀티 클라우드 관리 모듈(101)은 순차적 및/또는 병렬적으로 실행 노드를 실행할 수 있다.If there are a plurality of machines containing label information, the
멀티 클라우드 관리 모듈(101)은 각각의 머신에서 실행된 결과를 워크 플로우, 실행 노드, 실행 머신의 순서로 계층적으로 저장되게 할 수 있다. 멀티 클라우드 관리 모듈(101)은 저장된 머신의 실행 결과를 저장 및 검색하는 것을 지원할 수 있다.The
멀티 클라우드 관리 모듈(101)은 사용자 입력에 의해서 생성된 워크 플로우에서 복수의 실행 노드를 확인할 수 있다.The
멀티 클라우드 관리 모듈(101)은 스크립트 엔진에 기반하여 실행 정보를 각각의 실행 노드에 전달할 수 있다. 실행 정보는 워크 플로우가 목적하는 기능을 달성하기 위해서 워크 플로우가 실행되면 실행 노드 간에 실행에 필요한 정보일 수 있다.The
멀티 클라우드 관리 모듈(101)은 실행 정보에 대해서 등록, 수정 또는 삭제 중 적어도 하나 이상을 수행할 수 있는 관리 기능을 제공할 수 있다. The
멀티 클라우드 관리 모듈(101)은 스크립트 엔진이 지원하는 프로그래밍 언어의 변수 전달 메커니즘에 기반하여 각각의 실행 노드에 실행 정보를 전달할 수 있다.The
멀티 클라우드 관리 모듈(101)은 스크립트 엔진이 지원하는 프로그래밍 언어의 변수 관리 체계를 통해서 실행 정보에 대해서 등록, 수정 또는 삭제 중 적어도 하나 이상을 수행할 수 있는 관리 기능을 제공할 수 있다.The
멀티 클라우드 관리 모듈(101)은 관리 기능을 통해서 변경된 실행 정보를 워크 플로우의 데이터 베이스로 저장하고 관리할 수 있다.The
멀티 클라우드 관리 모듈(101)은 실행 정보를 확인할 수 있도록 사용자 검색 기능을 제공할 수 있다.The
멀티 클라우드 관리 모듈(101)은 소프트웨어 또는 서비스의 실행 시에, 실행되는 워크 플로우 및/또는 실행 스크립트를 실행 단위로 관리할 수 있다.The
멀티 클라우드 관리 모듈(101)은 실행되는 워크 플로우 및/또는 실행 스크립트의 실행 노드를 워크 플로우의 실행 결과로 저장하여 관리할 수 있다.The
멀티 클라우드 관리 모듈(101)은 워크 플로우의 실행 결과에 따라서 전체 트랜잭션(transaction)의 처리 결과를 성공 또는 실패로 판단하여 처리할 수 있다. The
멀티 클라우드 관리 모듈(101)은 트랜잭션(transaction)에 따른 입력과 출력 정보를 관리하고 실행 결과 정보를 조회할 수 있다.The
멀티 클라우드 관리 모듈(101)은 트랜잭션(transaction)에 따른 부속된 처리 파일들을 트랜잭션(transaction)이 완료되면 일괄적으로 삭제할 수 있다.The
클라우드 서비스(102)는 퍼블릭 클라우드(public cloud, 121) 및 프라이빗 클라우드(private cloud, 122)를 포함할 수 있다.The
퍼블릭 클라우드(121)는 복수의 퍼블릭 클라우드(1211, 1212)를 포함할 수 있다. 퍼블릭 클라우드(121)는 서비스 제공업체가 공주의 인터넷 망을 통해 불특정 다수의 기업이나 개인에게 서버, 스토리지 등의 컴퓨팅 자원을 빌려주는 형태의 클라우드 서비스를 제공할 수 있다. 퍼블릭 클라우드(121)는 클라우드 서버 프로바이더(cloud server provider)와 계약으로 제공되는 클라우드 서비스일 수 있다. 예를 들어, 제 1 퍼블릭 클라우드(1211)는 아마존 웹 서비스(AWSTM)이고, 제 2 퍼블릭 클라우드(1212)는 마이크로소프트 애저(Microsoft AzureTM)일 수 있다. 퍼블릭 클라우드(121)는 제 1 퍼블릭 클라우드(1211) 및 제 2 퍼블릭 클라우드(1212) 뿐만 아니라 다양한 퍼블릭 클라우드를 더 포함할 수 있다.The
프라이빗 클라우드(122)는 인터넷 또는 개인 내부 네트워크를 통해 일반 사용자가 아닌 특정 사용자에게만 제공되는 클라우드 서비스일 수 있다. 프라이빗 클라우드(122)는 퍼블릭 클라우드(121)와 달리 온디맨드 클라우드 모델로서 독자 표준의 리소스를 사용하기 때문에 사용자가 클라우드의 관리, 유지, 보수, 운영을 총괄할 수 있다. 예를 들어, 제 1 프라이빗 클라우드(1221)는 오픈스택(openstackTM)이고, 제 2 프라이빗 클라이우드(1221)는 브이엠웨어(VMWARETM) 일 수 있다.The
도 2는, 본 문서에 개시된 다양한 실시예에 따른 전자 장치(예: 도 1의 전자 장치(100))가 워크플로우의 순서도 작성 사용자 인터페이스(user interface, UI)를 제공하는 방법을 설명하기 위한 도면이다. FIG. 2 is a diagram illustrating a method in which an electronic device (e.g., the
클라우드 서버를 통해 다양한 워크플로우가 수행될 수 있다. 워크플로우는 특정 기능을 수행하는 프로그램 또는 프로그램들의 집합으로 이해될 수 있다. 또한, 워크플로우는 사용자가 지정한 실행 단위를 지정된 머신(예: 클라우드 서버)에서 실행하기 위해 정의된 프로그램 또는 프로그램 집합으로 이해될 수 있다. 예를 들어, 사용자가 제공하는 서비스(예: 은행 서비스, 검색 서비스, 번역 서비스 등)와 관련된 워크플로우는 클라우드 서버의 자원(예: 컴퓨팅 자원, 스토리지 자원, 네트워크 자원)을 통해 실행될 수 있다. 사용자가 제공하는 서비스는 단일한 워크플로우 또는 복수의 워크플로우를 통해 구현될 수 있다.Various workflows can be performed through cloud servers. Workflow can be understood as a program or set of programs that performs a specific function. Additionally, a workflow can be understood as a program or set of programs defined to execute a user-specified execution unit on a designated machine (e.g., cloud server). For example, workflows related to services provided by users (e.g. banking services, search services, translation services, etc.) may be executed through resources (e.g. computing resources, storage resources, network resources) of the cloud server. Services provided by users can be implemented through a single workflow or multiple workflows.
전자 장치(100)는 애플리케이션 및/또는 스크립트 리스트(210), 워크 플로우 편집 툴(220), 워크 플로우 배치 툴(230)을 포함하는 사용자 인터페이스(user interface)를 제공할 수 있다. 애플리케이션 및/또는 스크립트 리스트(210)는 워크 플로우의 실행 노드에 적용될 수 있는 적어도 하나 이상의 애플리케이션에 관한 리스트 및/또는 적어도 하나 이상의 스크립트에 관한 리스트를 표시할 수 있다. 사용자는 애플리케이션 및/또는 스크립트 리스트(210)에 포함된 적어도 하나 이상의 애플리케이션 및/또는 적어도 하나 이상의 스크립트에 기반하여 워크 플로우 및/또는 실행 노드를 생성할 수 있다.The
워크 플로우 편집 툴(220)은 소프트웨어 또는 서비스 실행 및 분기 처리를 위한 워크 플로우 개체 편집 도구를 포함할 수 있다. The
워크 플로우 배치 툴(230)은 애플리케이션 및/또는 스크립트 리스트(210)에 포함된 적어도 하나 이상의 애플리케이션 및/또는 적어도 하나 이상의 스크립트가 배치되며 상세한 실행 정보를 편집할 수 있다. The
애플리케이션 및/또는 스크립트 리스트(210)에 포함된 적어도 하나 이상의 애플리케이션 및/또는 적어도 하나 이상의 스크립트가 워크 플로우 배치 툴(230)에 배치될 때 드래그 & 드롭으로 배치될 수 있다.When at least one application and/or at least one script included in the application and/or
본 문서에 개시된 다양한 실시예에서, 전자 장치(100)는 사용자가 워크플로우를 쉽게 작성할 수 있도록 워크플로우의 순서도(flowchart) 작성 사용자 인터페이스(user interface ,UI)를 제공할 수 있다. 일 실시예에서, 워크플로우는 단일 또는 복수의 노드(node)로 구성될 수 있다. 노드는 워크플로우를 구성하는 기본 단위를 의미할 수 있으며, 워크플로우는 지정된 실행 단위를 지정된 머신(예: 클라우드 컴퓨터)에서 실행하기 위해 사용자가 정의하는 프로그램을 의미할 수 있다. 노드에는 단일 프로그램(또는 함수) 혹은 복수의 프로그램이 포함될 수 있다. 경우에 따라서, 워크플로우는 계층적으로 구성될 수 있다. 예를 들어, 상위 워크플로우에 포함된 노드는 하위 워크플로우들을 적어도 일부 포함할 수 있다. In various embodiments disclosed in this document, the
본 문서에 개시된 다양한 실시예에 따른 멀티 클라우드 관리 방법은, 웹 기반 또는 OS에서 실행 가능한 응용 프로그램 형태로 제공될 수 있다. 워크플로우 순서도 작성 UI는 멀티 클라우드 관리 방법의 제공 방법에 따라 다양한 형식으로 제공될 수 있다. 예를 들어, 웹 기반으로 제공되는 경우 웹 브라우저 응용 프로그램(예: 크롬, 파이어폭스, 익스플로러, 사파리)을 통해 멀티 클라우드 관리 방법이 제공될 수 있다. 이 경우, 워크플로우 순서도 작성 UI는, 멀티 클라우드 관리 방법이 제공되는 웹 페이지에서 시각적으로 제공될 수 있다. 워크플로우 순서도 작성 UI는, 편집 UI와 상태 UI를 포함할 수 있다. 편집 UI는 노드의 추가, 제거 및 연결 관계를 편집할 수 있는 사용자 입력을 수신할 수 있는 편집 아이콘을 포함하는 영역일 수 있다. 상태 UI는, 현재 작성된 워크플로우 순서도를 시각적으로 확인할 수 있는 영역일 수 있다. 도 2을 참조하면, 상태 UI에는 노드들이 선(line)으로 연결되어 시각적으로 표시될 수 있다. The multi-cloud management method according to various embodiments disclosed in this document may be provided in the form of a web-based or application program executable on an OS. The workflow flowchart creation UI can be provided in various formats depending on the provision method of the multi-cloud management method. For example, if provided as web-based, a multi-cloud management method may be provided through a web browser application (e.g., Chrome, Firefox, Explorer, Safari). In this case, the workflow flowchart creation UI can be provided visually on the web page where the multi-cloud management method is provided. The workflow flowchart creation UI may include an editing UI and a status UI. The edit UI may be an area that includes an edit icon that can receive user input to add, remove nodes, and edit connection relationships. The status UI may be an area where you can visually check the currently created workflow flowchart. Referring to FIG. 2, the status UI may be visually displayed with nodes connected by lines.
전자 장치(100)는, 노드를 추가할 수 있는 UI를 제공할 수 있다. 제공된 노드 추가 UI를 통해 노드가 추가될 수 있다. 예를 들어, 전자 장치(100)는 편집 UI에 표시된 노드 아이콘이 선택되어 상태 UI로 드래그 앤 드롭(drag and drop)되는 입력에 기반하여, 선택된 노드 아이콘에 대응하는 노드를 상태 UI에 추가하여 표시할 수 있다. 추가된 노드는 상태 UI에 표시된 기존 노드와 자동적으로 연결될 수 있다. 예를 들어, 노드가 추가되는 동시에 추가된 노드는 직전 추가된 노드와 선(line)으로 연결될 수 있다. The
경우에 따라서는, 사용자가 노드 사이에 다른 노드를 추가할 수 있다. 사용자는 제공되는 노드 연결 UI를 통해 노드의 연결 관계를 직접 편집할 수 있다. 예를 들어, 전자 장치(100)는 편집 UI에 표시된 노드 연결 UI를 선택하는 입력에 기반하여 노드 연결 편집 모드에 진입할 수 있다. 노드 연결 편집 모드에서, 전자 장치(100)는 제1 노드의 출력 지점과 제2 노드의 입력 지점을 연결하는 입력에 기반하여 제1 노드와 제2 노드를 선으로 연결하여 표시할 수 있다. In some cases, users can add other nodes between nodes. Users can directly edit the node connection relationship through the provided node connection UI. For example, the
일 실시예에서, 전자 장치(100)는 노드를 템플릿(template) 형태로 제공할 수 있다. 템플릿 형태로 제공되는 노드는 자주 사용되는 함수 또는 프로그램의 모음이거나, 사용자가 작성한 노드 중 일부를 저장한 것일 수 있다. 사용자는 노드를 추가할 때, 템플릿으로 저장된 노드를 가져와 추가할 수 있다. 템플릿 형태로 제공되는 다양한 노드들은 편집 UI에 아이콘 형태로 표시될 수 있다. 전자 장치(100)는, 노드들의 기능을 확인할 수 있도록 노드의 라벨을 노드 아이콘에 함께 표시할 수 있다. 노드의 라벨은 사용자가 직접 작성한 것일 수 있고, 노드에 포함된 함수 또는 프로그램의 명칭에 따라 자동적으로 작성된 것일 수 있다. In one embodiment, the
일 실시예에서, 어떤 노드는 입력 지점과 출력 지점이 복수일 수 있다. 예를 들어, 도 2에 도시된 것과 같이, 분기 노드는 출력 지점이 복수일 수 있다. 분기 노드에 포함된 함수 또는 프로그램의 처리에 따라 제1 출력 지점에 연결된 노드 또는 제2 출력 지점에 연결된 노드로 분기 노드의 처리 결과(예: 변수)가 전달될 수 있다. In one embodiment, a node may have multiple input points and multiple output points. For example, as shown in FIG. 2, a branch node may have multiple output points. Depending on the processing of the function or program included in the branch node, the processing result (eg, variable) of the branch node may be transmitted to the node connected to the first output point or the node connected to the second output point.
일 실시예에서, 전자 장치(100)는 편집 UI에 표시된 노드 삭제 아이콘이 선택된 것에 기반하여 노드 삭제 모드에 진입할 수 있다. 이 모드에서 전자 장치(100)는, 상태 UI에 표시된 노드를 선택하는 것에 기반하여, 선택된 노드를 삭제할 수 있다. 노드 삭제시 사용자의 잘못된 선택을 방지하기 위하여 선택된 노드의 삭제를 확인하는 팝업(pop-up)을 표시할 수 있다. In one embodiment, the
일 실시예에서 편집 UI에는 되돌리기 아이콘이 표시될 수 있다. 전자 장치(100)는, 되돌리기 아이콘의 선택에 기반하여 노드의 편집(예: 노드의 추가, 노드의 연결 관계 변경, 노드의 삭제)이 수행되기 전으로 상태 UI에 표시된 워크플로우 순서도를 되돌릴 수 있다. In one embodiment, a revert icon may be displayed in the editing UI. The
일 실시예에서, 노드는 계층적으로 구성될 수 있다. 전자 장치(100)는, 상태 UI에 표시된 노드를 선택하는 입력에 기반하여, 해당 노드에 포함된 워크플로우를 상태 UI에 표시할 수 있다. 이 때, 선택된 노드를 포함하는 워크플로우의 순서도를 표시하는 제1 상태 UI에서 선택된 노드에 포함된 워크플로우의 순서도를 표시하는 제2 상태 UI로 화면이 새로고침되어 표시될 수 있다. 경우에 따라서는, 제1 상태 UI와 제2 상태 UI가 하나의 화면에 분할되어 표시될 수 있다. In one embodiment, nodes may be organized hierarchically. The
일 실시예에 따르면, 전자 장치(100)는 프로세서(110)의 제어 하에 적어도 하나의 노드(node)로 구성된 워크플로우의 순서도(flowchart) 작성을 위한 사용자 인터페이스(user interface)를 제공하며, 사용자 입력에 대응하여 사용자 인터페이스(user interface) 상에 적어도 하나의 노드에 대해 추가, 제거 또는 연결 중 적어도 어느 하나의 동작을 수행할 수 있다. 적어도 하나의 노드는 적어도 하나의 프로그램 또는 함수 중 적어도 어느 하나를 포함할 수 있다.According to one embodiment, the
일 실시예에 따르면, 프로세서(110)는 제 1 영역 상에 표시된 노드 아이콘이 선택되어 제 2 영역으로 드래그 앤 드롭(drag and drop)되는 입력에 기반하여, 선택된 노드 아이콘에 대응하는 노드를 제 2 영역 상에 추가하여 표시하며, 추가된 노드를 제 2 영역에 표시된 기존 노드와 자동적으로 연결시킬 수 있다.According to one embodiment, the
일 실시예에 따르면, 프로세서(110)는 노드의 템플릿(template)을 표시하며, 노드의 템플릿은 사용자에 의해 자주 사용되는 함수 또는 프로그램을 포함하는 노드 및 사용자가 저장한 노드 중 적어도 하나를 포함할 수 있다.According to one embodiment, the
도 3은 전자 장치가 단일 프로그램을 이용하여 이종 개발 언어의 실행을 지원하는 방법을 설명하기 위한 도면이다.FIG. 3 is a diagram illustrating a method in which an electronic device supports execution of heterogeneous development languages using a single program.
워크플로우에 포함된 프로그램들은 다양한 개발 언어(프로그래밍 언어)로 작성될 수 있다. 워크플로우에 포함된 프로그램은 단일한 개발 언어로 작성될 수도 있지만, 서로 다른 개발 언어로 작성될 수 있다. 이 경우, 서로 다른 언어로 작성된 프로그램들 사이에 호환성 문제가 발생할 수 있다. 경우에 따라서는, 워크플로우에 포함된 프로그램들을 개별적으로 컴파일(compile) 하거나 인터프리팅(interpreting)하는 과정을 수행해야 할 수 있다. Programs included in the workflow can be written in various development languages (programming languages). Programs included in a workflow may be written in a single development language, or may be written in different development languages. In this case, compatibility problems may arise between programs written in different languages. In some cases, it may be necessary to individually compile or interpret programs included in the workflow.
본 문서의 다양한 실시예들에 따른 전자 장치(예: 도 1의 전자 장치(100))는, 워크플로우에 포함된 서로 다른 개발 언어로 작성된 프로그램(또는 특정 기능을 수행하는 함수)들을 단일 프로그램에서 실행할 수 있는 스크립트 엔진(script engine)을 포함할 수 있다. 전자 장치(100)는, 별도의 응용 프로그램 또는 데이터 셋 변환 장치 없이도 한 번의 태스크(task)에 서로 다른 언어로 작성된 프로그램을 모두 실행할 수 있다. 전자 장치(100)는 프로세서(110)를 이용하여 워크플로우에 포함된 프로그램을 저장하고 관리할 수 있다.An electronic device (e.g., the
일 실시예에 따르면, 전자 장치(100)는, 프로세서(110)의 제어 하에, 제 1 함수 및 제 2 함수를 포함하는 워크플로우가 실행될 때, 제 1 함수의 출력 데이터를 변환하여 제 2 함수의 입력 데이터로 전달할 수 있다. 제 1 함수는 제 1 프로그래밍 언어로 작성될 수 있으며, 제 2 함수는 제 2 프로그래밍 언어로 작성될 수 있다. 프로그래밍 언어는 각각의 언어 별로 별도의 데이터 셋 구성 방식을 포함할 수 있다. 예를 들어 스파크(Spark)는 RDD 또는 스파크 데이터 프레임(Spark Data frame)을 이용하여 데이터 셋을 구성하고, 파이썬(Python)은 판다스(Pandas) 또는 넘파이(NumPy)등을 이용하여 데이터 셋을 구성할 수 있다. 이 과정에서 이종 언어 함수 간 데이터 전달을 위해서는 데이터 셋을 변환하는 과정이 필요할 수 있다.According to one embodiment, when a workflow including a first function and a second function is executed under the control of the
동작 310에서, 전자 장치(100)는, 프로세서(110)의 제어 하에, 제 1 함수의 출력 데이터(예: 변수)를 제 2 프로그래밍 언어에서 사용 가능한 데이터 셋으로 변환시킬 수 있다. In
동작 320에서, 전자 장치(100)는 프로세서(110)의 제어 하에, 변환된 데이터 셋을 제 2 함수의 입력 데이터로 전송할 수 있다. In
동작 330에서, 전자 장치(100)는 프로세서(110)의 제어 하에, 입력 데이터를 제 2 함수에 포함된 명령어에 따라 처리할 수 있다. In
전자 장치(100)는 프로세서(110)의 제어 하에, 제 1 함수의 출력 데이터를 제 2 함수의 프로그래밍 언어에서 처리될 수 있는 형식으로 제공할 수 있다. Under the control of the
본 문서에 개시된 다양한 실시예에 따른 전자 장치(100)는 프로세서(110)의 제어 하에, 서로 다른 언어로 작성된 프로그램들이 호환 가능하도록 연결시켜 그 프로그램들을 포함하는 워크플로우가 수행될 수 있도록 할 수 있다. 따라서, 사용자는 서로 다른 프로그래밍 언어로 작성된 프로그램을 연계시키기 위해 프로그래밍 언어를 습득할 필요가 없고, 복수의 사용자들이 서로 다른 프로그래밍 언어로 프로그램을 작성하더라도 협업하여 하나의 워크플로우를 구성할 수 있다. 여기서는 2개의 함수 및 2개의 프로그래밍 언어를 가정하여 설명하지만, 함수 및 프로그래밍 언어의 수는 이것으로 한정되는 것은 아니다.The
일 실시예에 따르면, 전자 장치(100)는 스크립트 엔진(script engine)을 이용하여 이종의 언어를 하나의 프로그램 상에서 실행하는 환경을 사용자에게 제공할 수 있다. 스크립트 엔진(script engine)은 워크플로우 노드 상에서 작성된 언어를 실행하는 프로그램을 의미할 수 있다. According to one embodiment, the
전자 장치(100)는 프로세서(110)의 제어 하에, 각각의 개발 언어(예: 제 1 프로그래밍 언어 및 제 2 프로그래밍 언어) 실행 시 각각의 개발 언어에 대응하는 스크립트 엔진을 제공할 수 있다. 전자 장치(100)는 개별 언어 실행 시 개별 언어 실행 환경에 맞도록 각각의 개발 언어에 대응하는 스크립트 엔진을 제공하여 실행되는 프로그램이 이종 언어로 인해 오류가 발생하는 것을 방지할 수 있다.The
일 실시예에서, 전자 장치(100)는 프로세서(110)의 제어 하에, 워크 플로우의 프로그램 또는 노드 사이에서 전달되는 데이터를 출력할 수 있다. 사용자는 전달되는 데이터를 확인하여 디버깅 작업을 수행하거나, 전체 시스템을 개선하는데 활용할 수 있다. 데이터는 GUI(graphic user interface) 기반으로 출력될 수 있다. 예를 들어, 본 문서에 개시된 다양한 실시예에 따른 멀티 클라우드 관리 방법은, 웹 기반 또는 OS에서 실행 가능한 응용 프로그램 형태로 제공될 수 있다. 프로그램 또는 노드 사이에서 전달되는 데이터(예: 변수)는 멀티 클라우드 관리 방법에서 제공되는 형태(웹 기반 또는 응용 프로그램)에서 시각적으로 확인할 수 있는 방법으로 출력될 수 있다. In one embodiment, the
일 실시예에서, 프로세서(110)는 제 1 프로그래밍 언어로 작성된 제 1 함수 및 제 2 프로그래밍 언어로 작성된 제 2 함수를 포함하는 워크플로우가 실행됨에 대응하여 제 1 함수의 출력 데이터를 상기 제 2 프로그래밍 언어에서 사용 가능한 데이터 셋으로 변환시키고, 변환된 데이터 셋을 상기 제 2 함수의 입력 데이터로 전송하며, 제 1 함수의 출력 데이터 및 제 2 함수의 입력 데이터를 GUI(graphic user interface)를 형태로 표시할 수 있다.In one embodiment, the
일 실시예에서, 프로세서(110)는 스크립트 엔진을 이용하여 실행되는 프로그램 언어를 실행 시킬 수 있다. 프로세서(110)는 프로그램 언어의 실행에 필요한 정보를 전달할 수 있다. 프로그램 언어의 실행에 필요한 정보는 문자열, 숫자, 파일 및 JSON/XML과 같은 구조화된 정보를 포함할 수 있다.In one embodiment, the
프로세서(110)는 스크립트 엔진을 이용하여 사용자에게 동일한 인터페이스를 제공할 수 있다. 프로세서(110)는 이종 언어의 실행 환경에서 발생하는 출력 또는 에러를 일관되게 처리할 수 있도록 동일한 인터페이스를 제공할 수 있다.The
도 4는 본 개시의 일 실시예에 따른 전자 장치(예: 도 1의 전자 장치(100))가 프로세서(110)를 이용하여 자동으로 데이터를 직렬화하는 방법을 나타내는 순서도이다. FIG. 4 is a flowchart illustrating a method in which an electronic device (e.g., the
데이터 직렬화는, 데이터를 메모리(130) 또는 네트워크 통신에 사용할 수 있는 형식으로 변환하는 동작일 수 있다. . 사용할 수 있는 데이터 형식이란, 직접 접근이 가능한 형태의 데이터로 이해될 수 있다. 예를 들어, 문자 데이터를 바이트(byte) 형태로 변환하는 것을 데이터 직렬화의 일종이라 할 수 있다. 데이터 직렬화의 예로 프로토콜 버퍼(protocol buffer)를 들 수 있다. Data serialization may be an operation to convert data into a format that can be used in
프로토콜 버퍼(protocol buffer)는 구조화된 데이터를 직렬화하는 프로그램을 의미할 수 있다. 프로토콜 버퍼(protocol buffer)는 속성 값(예: username)을 하나의 태그(예: 숫자)로 변경하여 데이터를 작은 크기로 보관할 수 있다. 이 때 직렬화는 속성 값(예: username)을 하나의 태그(예: 숫자)로 변경하는 과정을 의미할 수 있다. 프로토콜 버퍼(protocol buffer)는 다른 idl(interface definition language)과 비교하여 상대적으로 더 적은 용량으로 데이터를 저장할 수 있어 압축률이 좋고 처리 속도가 빠를 수 있다.Protocol buffer may refer to a program that serializes structured data. A protocol buffer can store data in a small size by changing an attribute value (e.g. username) into a single tag (e.g. number). In this case, serialization may mean the process of changing an attribute value (e.g. username) into a single tag (e.g. number). Protocol buffers can store data in a relatively smaller capacity compared to other interface definition languages (idl), resulting in good compression rates and fast processing speeds.
프로토콜 버퍼(protocol buffer)는 복수의 프로그래밍 언어를 지원하여 여러 프로그래밍 언어로 작성된 데이터를 압축할 수 있다. 프로토콜 버퍼는 다양한 프로그래밍 언어를 지원할 수 있도록 특정 프로그래밍 언어에 대한 종속성이 없는 형태로 데이터 타입을 정의할 수 있다. 프로토콜 버퍼(protocol buffer)는 데이터 타입을 개별적인 프로그래밍 언어의 실행 환경에 맞춰 각각 컴파일(compile)을 실행하고, 사용자 응답에 대응하여 컴파일 된 각각의 파일을 실행시킬 수 있다. 컴파일(compile)은 어떤 프로그래밍 언어의 코드를 다른 프로그래밍 언어로 바꿔주거나 기계어로 변환하는 동작을 의미할 수 있다. 이 과정에서 개별적인 실행 환경에 맞춰 사용자가 컴파일된 파일을 개별적으로 실행하고, 이후 실행된 파일들을 통합하는 과정이 필요할 수 있다.Protocol buffer supports multiple programming languages and can compress data written in multiple programming languages. Protocol buffers can define data types without dependency on a specific programming language so that they can support a variety of programming languages. The protocol buffer can compile each data type according to the execution environment of each programming language and execute each compiled file in response to the user response. Compilation can refer to the operation of converting code from one programming language to another programming language or converting it to machine language. In this process, it may be necessary for the user to individually run the compiled files according to the individual execution environment and then integrate the executed files.
본 문서에 따른 전자 장치(100)는 사용자의 개입 없이도 자동으로 개별적인 프로그래밍 언어의 실행 환경에 맞춰 데이터 타입에 대한 컴파일(compile)을 실행하고, 컴파일된 파일을 이용하여 프로그램을 실행시킬 수 있다. 또한, 전자 장치(100)는 컴파일을 실행하기 전에 이미 컴파일된 파일이 존재함을 확인하여 컴파일된 파일을 이용하여 프로그램을 실행시킬 수 있다. 워크플로우 실행 시, 데이터 타입에 대한 컴파일을 자동적으로 수행하거나, 컴파일된 파일을 이용하는 기능은 직렬화 모듈에 의해 이루어질 수 있다. The
본 문서에 개시된 전자 장치(100)는, 워크플로우에 직렬화 모듈을 포함할 수 있다. 예를 들어, 워크플로우에 포함된 노드 중 적어도 하나는 직렬화 모듈을 포함할 수 있다. 워크플로우 실행 시, 워크플로우에 저장된 직렬화 모듈의 유무를 확인하고, 직렬화 모듈이 존재하는 경우 데이터 타입을 컴파일하여 워크플로우 실행 시 이를 활용하거나, 이미 컴파일된 데이터 타입을 워크플로우 실행 시 활용할 수 있다. The
예를 들어, 전자 장치(100)는 프로토(proto)타입의 파일을 자바(java)형식으로 컴파일하고, 컴파일 된 파일을 이용하여 클래스(class)파일을 생성할 수 있다. 클래스(class)는 프로그래밍에서 특정 객체(object)를 생성하기 위해 변수 및 방법을 정의하는 방식을 의미할 수 있다. 클래스 파일은 자바(java)형식으로 된 파일을 컴파일하여 생성될 수 있다.For example, the
전자 장치는, 일반적으로, 프로토 파일을 자바 형식으로 컴파일 하고, 자바 형식으로 된 파일을 다시 컴파일하여 클래스 파일을 생성할 수 있다. 이 과정에서 컴파일을 진행할 때 마다 과정이 중단되고, 사용자에 의해 다시 컴파일을 진행시킬 것이 요구되므로 사용자는 불편함을 느낄 수 있고, 전체적인 파일의 처리 과정도 느려지는 단점이 있다. Electronic devices can generally generate class files by compiling proto files into Java format and recompiling files in Java format. In this process, the process is interrupted every time compilation is performed, and the user is required to proceed with compilation again, which may cause inconvenience to the user and also slows down the overall file processing process.
한편, 본 문서의 다양한 실시예들에 따른 전자 장치(100)는 컴파일 후 컴파일 된 파일을 이용하는 과정을 자동화시켜 컴파일로 인해 프로그램 실행 과정에서 중단이 되지 않고 빠르게 프로그램을 실행시킬 수 있다.Meanwhile, the
어떤 실시예에서는, 스크립트 엔진(도 2의 설명 참조)에서 직렬화 모듈을 인식하여 데이터 직렬화를 위한 동작들이 수행될 수 있다. In some embodiments, operations for data serialization may be performed by recognizing the serialization module in the script engine (see description of FIG. 2).
일 실시예에 따르면, 동작 410에서, 전자 장치(100)는, 프로세서(110)의 제어 하에, 메모리(130) 또는 네트워크 통신에 사용할 수 있는 형식으로 데이터를 변환하기 위한 파일이 존재함을 확인하고, 변환된 파일을 이용하여 프로그램을 실행할 수 있다. According to one embodiment, in
동작 420에서, 전자 장치(100)는, 프로세서(110)의 제어 하에, 직렬화 모듈을 이용하여 데이터 또는 파일을 메모리나 네트워크 통신에 사용할 수 있는 형식으로 변환할 수도 있다. In
동작 430에서, 전자 장치(100)는, 프로세서(110)의 제어 하에, 데이터가 변환됨에 대응하여 변환된 데이터를 이용하여 프로그램을 실행할 수 있다. In
여기서 직렬화 모듈은 프로그래밍 언어의 실행 환경에 기반하여 데이터를 메모리(130) 또는 네트워크 통신에 사용할 수 있는 형식으로 변환하고, 사용자 입력에 관계없이 변환된 데이터를 이용하여 프로그램을 실행시킬 수 있다.Here, the serialization module converts data into a format that can be used in the
도 5는 본 개시의 일 실시예에 따른 전자 장치(예: 도 1의 전자 장치(100))가 워크플로우 실행 환경에서 실행에 필요한 프로그램 실행 정보를 관리하는 방법을 나타내는 순서도이다.FIG. 5 is a flowchart illustrating a method by which an electronic device (eg, the
워크플로우는 일정한 실행 단위를 특정한 머신(machine)에서 실행하기 위해 사용자가 정의한 프로그램을 의미할 수 있다. 워크플로우는 단일 기능을 제공하기 위해서 복수의 노드로 구성될 수 있다. 노드는 적어도 하나의 프로그램(또는 함수)를 포함할 수 있다. 복수의 노드는 워크플로우를 이용하여 사용자가 목적하는 기능을 달성하기 위해 복수의 노드 간에 실행에 필요한 정보를 공유할 수 있다. 이하에서는, 노드 간의 실행에 필요한 정보를 공유하는 관리 체계를 프로그램 실행 정보라 정의하도록 한다. 전자 장치(100)는 프로그램 실행 정보를 관리하여 정보 공유 체계를 유지하고, 머신의 실행에 필요한 정보를 전송할 수 있다. 머신의 실행에 필요한 정보는 예를 들어, 선행 노드의 실행 결과에 따른 변수 및 후행 노드의 실행을 위한 변수를 포함할 수 있다. A workflow may refer to a program defined by the user to execute a certain execution unit on a specific machine. A workflow can consist of multiple nodes to provide a single function. A node may contain at least one program (or function). Multiple nodes can use workflow to share information necessary for execution among multiple nodes to achieve the user's desired function. Hereinafter, the management system that shares information necessary for execution between nodes will be defined as program execution information. The
일 실시예에 따르면, 동작 510에서, 전자 장치(100)는, 프로세서(110)의 제어 하에, 스크립트 엔진이 지원하는 프로그래밍 언어의 변수 전달 메커니즘에 기반하여 각각의 노드에 프로그램 실행 정보를 전달할 수 있다. 변수 전달 메커니즘은 프로그래밍 언어의 전달 방식을 의미할 수 있으며, 프로그래밍 언어에 따라 달라질 수 있다. 예를 들어, 변수 전달 메커니즘은 서로 다른 프로그래밍 언어로 작성된 프로그램들 사이에서의 변수 전달을 고려하여 구현될 수 있다. According to one embodiment, in
전자 장치(100)는 프로세서(110)의 제어 하에, 프로그램 실행 정보에 대해서 등록, 수정 또는 삭제 중 적어도 하나 이상을 수행할 수 있는 관리 기능을 제공할 수 있다. 전자 장치(100)는 동작 520에서, 프로세서(110)의 제어 하에, 프로그램 실행 정보가 변경됨에 대응하여 변경된 실행 정보를 워크플로우 상의 데이터베이스(DB)로 저장할 수 있다. 워크플로우 상의 데이터베이스(DB)는 파일, 데이터 또는 메모리(130) 중 적어도 어느 하나를 기반으로 하는 정보 관리 체계를 의미할 수 있다. The
일 실시예에 따르면, 전자 장치(100)는 프로세서(110)의 제어 하에, 동작 530에서, 워크플로우 상의 데이터베이스(DB)로 저장된 실행 정보에 대해 사용자 검색 기능을 제공할 수 있다. 예를 들어, 사용자가 특정 데이터를 검색하면 프로세서(110)는, 그 데이터가 어떤 노드에서 처리된 데이터인지 혹은 어떤 노드에서 그 데이터를 이용하는지 표시할 수 있다. According to one embodiment, under the control of the
프로그램 실행 정보를 관리함으로써, 사용자는 워크플로우 실행 과정에서 오류가 발생할 때, 오류가 발생한 원인을 빠르게 찾아낼 수 있다. 또한 사용자는 노드를 확장하거나 분기시키는 방식으로 노드를 추가할 때, 프로그램 실행 정보를 참조할 수 있다.By managing program execution information, users can quickly find the cause of the error when an error occurs during workflow execution. Additionally, users can refer to program execution information when adding nodes by expanding or branching nodes.
일 실시예에 따르면 전자 장치(100)는 프로세서(110)의 제어 하에, 제 1 프로그래밍 언어로 작성된 제 1 함수를 포함하는 제 1 노드 및 제 2 프로그래밍 언어로 작성된 제 2 함수를 포함하는 제 2 노드를 포함하는 워크플로우가 실행됨에 대응하여 제 1 노드 및 제 2 노드 사이에서 워크플로우의 실행에 필요한 정보를 공유하도록 제어할 수 있다. According to one embodiment, the
전자 장치(100)는 프로세서(110)의 제어 하에, 제 1 노드의 태그과 대응되는 태그를 포함하는 머신에서 제 1 노드의 실행을 처리하고, 제 2 노드의 태그와 대응되는 태그를 포함하는 머신에서 제 2 노드의 실행을 처리하도록 제어할 수 있다.The
일 실시예에 따르면, 제 1 노드의 태그와 대응되는 태그를 포함하는 머신이 복수인 경우, 전자 장치(100)는 프로세서(110)의 제어 하에, 제 1 노드의 태그와 대응되는 태그를 포함하는 복수의 머신들의 상태 정보에 기반하여 제 1 노드의 실행을 처리할 머신을 선택할 수 있다. 여기서 상태 정보는, 머신의 사양 정보, 점유율 정보를 포함할 수 있다.According to one embodiment, when there are a plurality of machines including a tag corresponding to the tag of the first node, the
일 실시예에 따르면, 제 1 노드의 태그와 대응되는 태그를 포함하는 머신이 복수인 경우, 전자 장치(100)는 프로세서(110)의 제어 하에, 제 1 노드에 포함된 제 1 함수의 가중치(weight)에 기반하여 제 1 노드의 실행을 처리할 머신을 선택할 수 있다. 가중치는 제 1 함수에 포함된 명령어 처리에 필요한 컴퓨팅 자원을 수치화한 데이터를 의미할 수 있다.According to one embodiment, when there are a plurality of machines including a tag corresponding to the tag of the first node, the
일 실시예에서, 전자 장치(100)는 프로세서(110)의 제어 하에, 워크플로우의 실행에 필요한 정보를 데이터베이스(DB)로 저장하고, 데이터베이스(DB)에 대해 사용자 검색 기능을 제공할 수 있다. 데이터베이스는 파일, 데이터 또는 메모리(130) 중 적어도 어느 하나에 기반하여 저장 및 제공될 수 있다.In one embodiment, the
도 6은 본 개시의 일 실시예에 따른 전자 장치(예: 도 1의 전자 장치(100))가 워크플로우 실행 환경에서 개별 노드를 실행할 머신을 지정하여 워크플로우를 실행하는 방법을 나타내는 순서도이다. FIG. 6 is a flowchart illustrating a method in which an electronic device (e.g., the
일 실시예에 따르면, 각각의 머신은 사전에 설정된 라벨 정보를 포함할 수 있다. According to one embodiment, each machine may include preset label information.
일 실시예에서, 전자 장치(100)는, 프로세서(110)의 제어 하에, 동작 610에서, 이러한 라벨 정보에 기반하여 각각의 노드에 대응하는 머신을 결정할 수 있다. 머신은 워크플로우 노드에 작성된 언어를 실행하는 장치를 의미할 수 있다. 머신은 예를 들어, 클라우드 서비스에 포함된 클라우드 컴퓨터일 수 있다.In one embodiment, the
일 실시예에 따르면, 전자 장치(100)는 프로세서(110)의 제어 하에, 동작 620에서, 머신을 지정하여 워크플로우를 실행하고, 워크플로우에 포함된 인스트럭션들을 지정된 머신에 업로드하고 업로드 결과를 수신할 수 있다.According to one embodiment, under the control of the
워크플로우는 사용자에 의해 지정된 특정한 실행 단위(예: 노드)를 사용자에 의해 지정된 머신에서 실행할 수 있도록 사용자에 의해 정의된 프로그램을 의미할 수 있다. 워크플로우는 복수의 노드(node)들로 구성될 수 있다. 각각의 노드는 특정 머신을 통해 실행될 수 있다. A workflow may refer to a program defined by the user so that a specific execution unit (e.g., node) specified by the user can be executed on a machine specified by the user. A workflow may consist of multiple nodes. Each node can run on a specific machine.
각각의 노드에서 실행할 언어는 각각의 노드에 지정된 라벨 정보를 기반으로 결정될 수 있다. 라벨 정보는 노드와 실행 언어 간 태깅(tagging) 정보를 의미할 수 있다. 전자 장치(100)는 프로세서(110)의 제어 하에, 라벨 정보를 이용하여 각각의 노드에 태그(tag)된 실행 언어를 확인하고, 지정된 머신을 이용하여 실행시킬 수 있다.The language to be executed in each node can be determined based on the label information assigned to each node. Label information may refer to tagging information between a node and an execution language. Under the control of the
일 실시예에서, 전자 장치(100)는 프로세서(110)의 제어 하에, 노드의 태그에 대응하는 머신을 선택할 때, 머신의 자원을 확인하여 노드가 실행될 머신을 적응적으로 선택할 수 있다. 여기서 머신의 자원은 컴퓨팅 자원(예: 메모리(130), CPU), 스토리지 자원 및 네트워크 자원을 포함할 수 있다. 예를 들어, 노드의 태그에 대응하는 머신이 복수인 경우, 전자 장치(100)는 프로세서(110)의 제어 하에, 해당 노드에 포함된 프로그램 또는 함수의 가중치(weight)를 확인할 수 있다. 가중치는 노드에 포함된 프로그램 또는 함수를 실행할 때 필요한 자원의 총량일 수 있다. 예를 들어, 가중치가 높은 노드는 가중치가 낮은 노드에 비해 상대적으로 높은 컴퓨팅 자원 또는 네트워크 자원을 요구할 수 있다. 전자 장치(100)는, 노드의 가중치를 고려하여 머신을 선택할 수 있다. 예를 들어, 가중치가 높은 노드를 원활하게 실행할 수 있도록 상대적으로 자원의 여유가 있는 머신을 선택할 수 있다. In one embodiment, under the control of the
일 실시예에 따르면, 전자 장치(100)는 프로세서(110)의 제어 하에,노드의 태그에 대응하는 머신을 선택할 때, 머신의 점유율을 고려하여 노드가 실행될 머신을 적응적으로 선택할 수 있다. 머신의 점유율은 머신 내에서 사용되는 메모리(130)의 양을 의미할 수 있다. 전자 장치(100)는 점유율이 상대적으로 높은 머신과 비교하여 점유율이 상대적으로 낮은 머신을 우선적으로 지정하여 노드를 실행시킬 수 있다.According to one embodiment, under the control of the
일 실시예에 따르면, 전자 장치(100)는 프로세서(110)의 제어 하에, 원격 접속 정보를 기반으로 결정된 머신을 원격으로 접속하여 실행시킬 수 있다. 원격 접속 정보는 예를 들어, 아이디(ID)/ 비밀번호(password), 키 페어(key pair) 또는 로컬 머신에 관한 정보 중 적어도 어느 하나를 포함할 수 있다. 여기서 키 페어(key pair)를 사용하는 방식은 key pair 파일을 갖고 있는 사용자가 아이디(ID)와 비밀번호(password) 없이 보안이 유지되는 환경에서 네트워크에 접속할 수 있는 방식을 의미할 수 있다.According to one embodiment, the
전자 장치(100)는 프로세서(110)의 제어 하에, 동일한 라벨 정보를 포함하는 복수의 머신들이 확인됨에 대응하여 순차적으로 노드를 실행하거나 또는 병렬적으로 노드를 실행시킬 수 있다. 병렬적인 노드 실행은 복수의 머신에서 노드를 각각 처리하는 것을 의미할 수 있다. Under the control of the
전자 장치(100)는 프로세서(110)의 제어 하에, 동작 630에서, 각각의 머신에서 워크플로우 노드에 작성된 언어를 실행시키고, 워크플로우, 워크플로우 노드 및 머신에 실행 정보를 저장할 수 있다. 전자 장치(100)는 프로세서(110)의 제어 하에, 동작 640에서, 저장된 실행 정보에 대한 검색 기능을 제공할 수 있다.Under the control of the
도 7은 본 개시의 일 실시예에 따른 전자 장치(예: 도 1의 전자 장치(100))가 다른 기종의 클라우드 자원과 소프트웨어 실행 모듈을 통합하여 관리하는 방법을 설명하기 위한 도면이다.FIG. 7 is a diagram illustrating a method in which an electronic device (e.g., the
전자 장치는 일반적으로 서로 다른 기종의 클라우드 상에서 서비스를 제공하기 위해 서로 다른 기종의 클라우드 상에서 만들어진 자원이 필요할 수 있다. 또한, 전자 장치는 일반적으로 서로 다른 기종의 클라우드 상에서 서비스를 제공하기 위해 서로 다른 기종의 클라우드 상에 설치된 소프트웨어가 필요할 수 있다. Electronic devices may generally require resources created on different types of clouds to provide services on different types of clouds. Additionally, electronic devices may generally require software installed on different types of clouds to provide services on different types of clouds.
본 문서에 따른 전자 장치(100)는 서비스를 실행시키기 위한 자원을 생성하기 위한 메커니즘(mechanism) 및 서비스를 실행시키기 위한 소프트웨어를 설치하기 위한 메커니즘(mechanism)을 갖는 실행 매커니즘(mechanism)을 포함할 수 있다. 전자 장치(100)는 프로세서(110)의 제어 하에, 실행 매커니즘(mechanism)을 이용하여 카탈로그(템플릿) 방식으로 클라우드 생성을 지원할 수 있다. 카탈로그는 클라우드를 기반으로 서비스를 제공하기 위해 필요한 자원 및 소프트웨어의 묶음을 의미할 수 있다. 카탈로그 템플릿은 카탈로그를 구성하는 자원 및 소프트웨어 묶음의 구성 단위를 의미할 수 있다.The
일 실시예에 따르면, 전자 장치(100)는 프로세서(110)의 제어 하에,클라우드 자원을 관리할 수 있다. 클라우드 자원은 예를 들어, 컴퓨팅 자원(예: 메모리(130), CPU), 스토리지 자원 및 네트워크 자원을 포함할 수 있다. 전자 장치(100)는 클라우드에서 생성될 자원에 대해 다양한 구조(예: JSON, YAML, 데이터 베이스 테이블 구조)를 이용해 계층적으로 관리할 수 있다. According to one embodiment, the
각각의 클라우드 상에서 사용되는 자원에 대한 정보는 자원의 명세(specification)을 정의하는 표준 사양 정보 및 사용할 클라우드별로 다르게 정의되는 차별화된 속성 정보를 포함할 수 있다. Information about resources used on each cloud may include standard specification information defining the specification of the resource and differentiated attribute information defined differently for each cloud to be used.
일 실시예에서, 전자 장치(100)는 프로세서(110)의 제어 하에, 사용자가 클라우드를 생성할 때, 클라우드 자원 정보를 입력 받을 수 있는 UI를 제공할 수 있다. 사용자가 입력한 클라우드 자원 정보는 앞서 설명한 다양한 구조(예: JSON, YAML, 데이터 베이스 테이블 구조)로 저장되어 관리될 수 있다. 이 때, 전자 장치(100)는 프로세서(110)의 제어 하에, 사용자가 선택한 클라우드 종류(예: 클라우드 프로바이더 종류)에 따라 클라우드 자원 정보를 입력 받을 수 있는 UI를 다르게 제공할 수 있다. 앞서 설명한 것과 같이, 클라우드 자원은 클라우드 별로 다르게 정의되는 차별화된 속성 정보를 포함할 수 있다. 이 자원 정보는 사용자가 선택한 클라우드 종류에 따라 다를 수 있다. 전자 장치(100)는 프로세서(110)의 제어 하에, 동작 710에서, 선택된 클라우드의 차별화된 속성 정보를 입력 받을 수 있도록 클라우드 자원 정보를 입력 받을 수 있는 UI를 표시할 수 있다. 어떤 실시예에서는, 차별화된 속성 정보를 입력 받을 수 있는 UI를 일반적인 클라우드 자원 정보를 입력 받을 수 있는 UI와 시각적으로 구분될 수 있도록 표시할 수 있다. 예를 들어, 색상, 글꼴, 형태(이탤릭, 굵음 표시) 등을 변경하여 표시할 수 있다. In one embodiment, the
일 실시예에 따르면, 전자 장치(100)는 소프트웨어의 설치 및 실행을 관리할 수 있다. 전자 장치(100)는 프로세서(110)의 제어 하에,동작 720에서, 소프트웨어에 설정된 라벨과 자원에 설정된 라벨을 비교하여 실행 스크립트에 설정된 라벨을 포함하는 자원이 노드 상에서 실행될 수 있도록 제어할 수 있다. 소프트웨어의 라벨은 소프트웨어가 위치하는 자원의 유형에 기반하여 설정될 수 있다. According to one embodiment, the
전자 장치(100)는 프로세서(110)의 제어 하에,동작 730에서, 자원의 상태 정보에 기반하여 워크플로우를 이용해 소프트웨어를 실행시킬 수 있다.Under the control of the
전자 장치(100)는 프로세서(110)의 제어 하에,동작 740에서, 각각의 클라우드 상에서 사용되는 자원에 대한 정보를 기반으로 클라우드의 자원 상태가 변경되는 것에 대응하여 사용자에게 알림을 제공할 수 있다.Under the control of the
일 실시예에 따르면, 전자 장치(100)는 프로세서(110)의 제어 하에,클라우드 자원 및 소프트웨어를 통해서 관리되는 카탈로그 정보(예: 클라우드 서비스)를 실행할 수 있다. 전자 장치(100)는 카탈로그 정보의 실행에 대응하여 생성되는 자원의 변화를 측정하고, 생성되는 자원에 대응하여 실행되는 워크플로우를 변경할 수 있다. 예를 들어, 전자 장치(100)는 클라우드 시작 중에는 제1워크플로우를 실행하고, 제1워크플로우를 실행함에 대응하여 사용되는 자원이 변화를 측정하고, 사용되는 자원의 양이 기 설정된 제1 수준으로 변경됨에 대응하여 제2워크플로우를 실행할 수 있다. 전자 장치(100)는 도 7과 같이순차적으로 또는 동시에 복수의 워크플로우들을 실행 및 관리할 수 있다.According to one embodiment, the
일 실시예에서, 전자 장치(100)는 프로세서(110)의 제어 하에, 클라우드 서비스 생성을 위한 유저 인터페이스(user interface)를 제공할 수 있다. 여기서 유저 인터페이스는, 클라우드 자원 정보를 입력 받기 위한 입력 인터페이스 및 적어도 하나의 프로그램 또는 함수를 포함할 수 있다. 또한 유저 인터페이스는, 클라우드 서비스 상에서 실행되는 워크플로우(workflow)의 라이프사이클 정보를 입력 받기 위한 라이프사이클 인터페이스를 포함할 수 있다. In one embodiment, the
전자 장치(100)는 프로세서(110)의 제어 하에, 라이프사이클 정보와 대응되는 입력이 수신됨에 대응하여, 라이프사이클 정보를 포함하는 워크플로우가 실행되도록 제어할 수 있다.Under the control of the
일 실시예에서, 전자 장치(100)는 프로세서(110)의 제어 하에,입력 인터페이스를 통해 입력된 클라우드 자원 정보를 JSON, YAML 또는 데이터 베이스 테이블 구조 중 적어도 어느 하나를 이용하여 저장할 수 있다. 입력 인터페이스는, 복수의 클라우드 서비스의 종류를 선택할 수 있는 인터페이스를 포함할 수 있다. 전자 장치(100)는 프로세서(110)의 제어 하에,클라우드 서비스의 종류 선택에 기반하여 선택된 클라우드 서비스에서 요구하는 클라우드 자원 정보를 입력 받을 수 있도록 선택된 클라우드 서비스 종류마다 다른 입력 인터페이스를 제공할 수 있다.In one embodiment, the
일 실시예에서, 전자 장치(100)는 프로세서(110)의 제어 하에, 선택된 클라우드 서비스에서 다른 클라우드 서비스에서 요구하지 않는 특정한 클라우드 자원 정보가 존재하는 경우, 특정한 클라우드 자원 정보가 다른 클라우드 자원 정보와 시각적으로 다르게 표시되도록 입력 인터페이스를 제공할 수 있다.In one embodiment, under the control of the
일 실시예에서, 전자 장치(100)는 프로세서(110)의 제어 하에, 라이프사이클 정보의 변경에 기반하여, 변경된 라이프사이클 정보를 포함하는 워크플로우가 실행되도록 제어할 수 있다.In one embodiment, the
도 8은 본 개시의 전자 장치(예: 도 1의 전자 장치(100))가 서로 다른 종류(이종)의 클라우드 환경을 제어하는 방법을 나타내는 순서도이다. FIG. 8 is a flowchart showing a method by which an electronic device of the present disclosure (eg, the
전자 장치(100)는 프로세서(110)의 제어 하에, 이종 클라우드의 제어를 위한 클라우드 자원에 대한 표준화 방식을 포함할 수 있다. 전자 장치(100)는 클라우드 자원에 대해 표준화된 속성과 비표준화된 속성으로 분류하여 관리할 수 있다.The
일 실시예에 따르면, 전자 장치(100)는 프로세서(110)의 제어 하에,동작 810에서, 클라우드 자원의 유형에 따라 애플리케이션 프로그래밍 인터페이스(API: application programming interface) 형식을 이용하여 자원을 제어할 수 있다. 애플리케이션 프로그래밍 인터페이스(API)는 애플리케이션(예: 클라우드 서비스, 프로그램)을 구동하는 서버 또는 애플리케이션이 연결된 서버에 어떠한 방식으로 정보를 요청할 지, 그러한 요청을 보냈을 때 어떠한 형식으로 데이터를 전달받을 수 있는지 정리한 규격을 의미할 수 있다.According to one embodiment, under the control of the
전자 장치(100)는 프로세서(110)의 제어 하에,동작 820에서, 애플리케이션 프로그래밍 인터페이스에 따라 클라우드 자원의 상태(예: 생성, 삭제 또는 변경 중 적어도 어느 하나)를 변경할 수 있다. 전자 장치(100)는 프로세서(110)의 제어 하에, 동작 830에서, 사용자에게 클라우드 자원의 상태가 변경되었음을 지시하는 정보를 제공할 수 있다.Under the control of the
도 9는 본 개시의 일 실시예에 따른 전자 장치(예: 도 1의 전자 장치(100))가 클라우드에서 동작하는 카탈로그의 라이프사이클을 관리하는 방법을 나타내는 순서도이다. FIG. 9 is a flowchart illustrating a method by which an electronic device (eg, the
카탈로그는 클라우드를 기반으로 서비스를 제공하기 위해 필요한 자원 및 소프트웨어의 묶음을 의미할 수 있다. 라이프사이클은 카탈로그 인스턴스 및 카탈로그 인스턴스를 구성하는 카탈로그 인스턴스 템플릿의 상태를 관리하는 기능을 의미할 수 있다. 카탈로그 인스턴스는 카탈로그를 통해서 클라우드에 생성된 서비스의 이름을 의미할 수 있다. 카탈로그 인스턴스 템플릿은 카탈로그 인스턴스에 포함된 카탈로그의 자원 및 소프트웨어의 묶음을 의미할 수 있다.A catalog can refer to a bundle of resources and software required to provide cloud-based services. Lifecycle may refer to the function of managing the state of the catalog instance and the catalog instance template that constitutes the catalog instance. A catalog instance may refer to the name of a service created in the cloud through a catalog. A catalog instance template may refer to a bundle of catalog resources and software included in a catalog instance.
일 실시예에서, 카탈로그는 상태 정보를 포함할 수 있다. 상태 정보는 카탈로그 생성시 입력될 수 있고, 카탈로그가 생성된 후 추후에 추가될 수 있다. In one embodiment, the catalog may include state information. Status information can be entered when creating a catalog, and can be added later after the catalog is created.
일 실시예에 따르면, 전자 장치(100)는 프로세서(110)의 제어 하에,동작 910에서, 카탈로그의 상태 정보를 확인할 수 있다. 전자 장치(100)는 프로세서(110)의 제어 하에, 동작 920에서, 카탈로그의 상태에 기반하여 실행시킬 워크플로우 및 소프트웨어를 설정할 수 있다. 예를 들어, 전자 장치(100)는 프로세서(110)의 제어 하에, 카탈로그 템플릿 단위로 카탈로그의 상태 정보를 확인할 수 있다. 전자 장치(100)는 프로세서(110)의 제어 하에, 카탈로그의 상태 정보와 대응하는 워크플로우 및/또는 소프트웨어를 실행할 수 있다. According to one embodiment, the
어떤 실시예에서, 전자 장치(100)는 프로세서(110)의 제어 하에,카탈로그의 상태 정보가 변경됨에 따라, 그 상태 정보와 대응하는 워크플로우 및/또는 소프트웨어를 실행할 수 있다. In some embodiments, the
상태 정보는 사용자 정의 방식 또는 시스템 제공 방식으로 나눠서 제공될 수 있다. 전자 장치(100)는 프로세서~ 동작 930에서, 카탈로그의 상태를 포함하는 상태 정보를 이용하여 클라우드 자원 및 소프트웨어를 관리할 수 있다.Status information can be provided in a user-defined way or a system-provided way. The
도 10은 전자 장치(예: 도 1의 전자 장치(100))가 소프트웨어를 트랜잭션(transaction) 단위로 관리하는 방법을 설명하기 위한 도면이다.FIG. 10 is a diagram illustrating a method by which an electronic device (eg, the
전자 장치(100)는 프로세서(110)의 제어 하에,소프트웨어 실행 시 소프트웨어를 트랜잭션(transaction) 단위로 관리할 수 있다. 트랜잭션(transaction)은 데이터베이스의 상태(예: 삭제, 업데이트, 삽입, 선택 등)를 변경시키기 위해 수행하는 작업의 단위를 의미할 수 있다.The
전자 장치(100)는 프로세서(110)의 제어 하에, 동작 1010에서, 실행되는 워크플로우 또는 소프트웨어의 개별 노드를 저장할 수 있다. 전자 장치(100)는 프로세서(110)의 제어 하에,, 동작 1020에서, 실행되는 워크플로우 또는 소프트웨어의 처리 결과에 기반하여 전체적인 트랜잭션(transaction)의 결과를 판단할 수 있다. 예를 들어, 전자 장치(100)는 실행되는 워크플로우 또는 소프트웨어의 처리 결과에 기반하여 트랜잭션(transaction)의 결과를 성공 또는 실패로 결정할 수 있다.이후 전자 장치(100)는 프로세서(110)의 제어 하에, 동작 1030에서, 사용자에게 트랜잭션 결과를 지시하는 정보 또는 알림을 제공할 수 있다.The
일 실시예에 따르면, 전자 장치(100)는 프로세서(110)의 제어 하에, 동작 1040에서, 트랜잭션(transaction)이 완료됨에 대응하여 트랜잭션(transaction)의 실행에 사용된 파일들을 삭제할 수 있다.According to one embodiment, under the control of the
일 실시예에 따르면, 전자 장치(100)는 프로세서(110)의 제어 하에,적어도 하나의 프로그램 및 함수를 포함하는 워크플로우를 실행하고, 워크플로우 실행의 과정 및 결과를 트랜잭션(transaction) 단위로 저장하고, 워크플로우 실행 결과에 따라 트랜잭션의 실패 또는 성공을 판단하고, 트랜잭션의 성공에 기반하여, 트랜잭션 실행에 부속하는 파일들을 일괄 삭제할 수 있다.According to one embodiment, the
일 실시예에 따르면, 워크플로우는, 적어도 하나의 프로그램 또는 함수로 구성된 적어도 하나의 노드를 포함할 수 있다. 트랜잭션은, 노드의 실행 순서 및 노드의 실행에 따른 데이터 정보를 포함할 수 있다.According to one embodiment, a workflow may include at least one node composed of at least one program or function. A transaction may include the execution order of nodes and data information according to the execution of nodes.
일 실시예에 따르면, 전자 장치(100)는 프로세서(110)의 제어 하에, 트랜잭션이 실패로 판단됨에 따라, 문제가 발생한 노드를 출력할 수 있다.According to one embodiment, under the control of the
일 실시예에 따르면, 전자 장치(100)는 프로세서(110)의 제어 하에, 디스플레이(미도시) 상에 트랜잭션의 처리 결과를 시각적으로 확인할 수 있는 인터페이스를 제공할 수 있다.According to one embodiment, the
일 실시예에 따르면, 프로세서(110)는, 트랜잭션의 처리 결과를 누적하여 데이터베이스로 메모리(예: 도 1의 메모리(130))에 저장하도록 제어 할 수 있다. According to one embodiment, the
Claims (10)
프로세서;및
메모리를 포함하며,
상기 프로세서는
제 1 프로그래밍 언어로 작성된 제 1 함수; 및
제 2 프로그래밍 언어로 작성된 제 2 함수를 포함하는 워크플로우가 실행됨에 대응하여
상기 제 1 함수의 출력 데이터를 상기 제 2 프로그래밍 언어에서 사용 가능한 데이터 셋으로 변환시키고,
상기 변환된 데이터 셋을 상기 제 2 함수의 입력 데이터로 전송하며,
상기 제 1 함수의 출력 데이터 및 상기 제 2 함수의 입력 데이터를 GUI(graphic user interface)를 형태로 표시하는 전자 장치.
In electronic devices,
processor; and
Contains memory,
The processor is
a first function written in a first programming language; and
In response to executing a workflow that includes a second function written in a second programming language
Converting the output data of the first function into a data set usable in the second programming language,
Transmitting the converted data set as input data of the second function,
An electronic device that displays output data of the first function and input data of the second function in the form of a graphic user interface (GUI).
상기 워크플로우에 포함된 상기 제 1 함수 및 상기 제 2 함수를 단일 프로그램에서 실행할 수 있는 스크립트 엔진(script engine)을 더 포함하며,
상기 프로세서는
상기 스크립트 엔진을 이용하여 별도의 응용 프로그램 또는 데이터 셋 변환 장치를 이용하지 않고 서로 다른 언어로 작성된 프로그램을 한 번의 태스크(task)만으로 실행할 수 있도록 제어하고,
이종 언어의 실행 환경에서도 는 전자 장치.
According to clause 1,
It further includes a script engine capable of executing the first function and the second function included in the workflow in a single program,
The processor is
The script engine is used to control programs written in different languages to be executed with just one task without using a separate application or data set conversion device,
Electronic devices even in heterogeneous language execution environments.
상기 프로세서는
실행되는 프로그램의 개발 언어에 대응하여 스크립트 엔진을 제공하며,
상기 스크립트 엔진을 이용하여 복수의 함수 또는 프로그램 사이에서 데이터를 전달하는 전자 장치.
According to clause 2,
The processor is
Provides a script engine in response to the development language of the program being executed.
An electronic device that transfers data between a plurality of functions or programs using the script engine.
상기 프로세서는
웹 기반 또는 운영체제(operation system, OS)에서 실행 가능한 응용 프로그램 형태로 상기 스크립트 엔진을 제공하는 전자 장치.
According to clause 2,
The processor is
An electronic device that provides the script engine in the form of an application program executable on a web-based or operating system (OS).
상기 프로세서는
상기 제 2 함수의 입력 데이터를 전송함에 대응하여 상기 제 2 함수에 포함된 명령어에 따라 처리하고,
상기 GUI(graphic user interface)를 기반으로 사용자에게 처리 결과를 표시하는 전자 장치.
According to clause 2,
The processor is
In response to transmitting the input data of the second function, process it according to the command included in the second function,
An electronic device that displays processing results to a user based on the graphic user interface (GUI).
제 1 프로그래밍 언어로 작성된 제 1 함수;및
제 2 프로그래밍 언어로 작성된 제 2 함수를 포함하는 워크플로우가 실행됨에 대응하여
상기 제 1 함수의 출력 데이터를 상기 제 2 프로그래밍 언어에서 사용 가능한 데이터 셋으로 변환시키는 동작;
상기 변환된 데이터 셋을 상기 제 2 함수의 입력 데이터로 전송하는 동작;및
GUI(graphic user interface)를 기반으로 상기 제 1 함수의 출력 데이터 및 상기 제 2 함수의 입력 데이터를 사용자에게 표시하는 동작을 포함하는 방법.
In a multi-cloud management method for electronic devices,
a first function written in a first programming language; and
In response to executing a workflow that includes a second function written in a second programming language
converting output data of the first function into a data set usable in the second programming language;
An operation of transmitting the converted data set as input data of the second function; and
A method comprising displaying output data of the first function and input data of the second function to a user based on a graphic user interface (GUI).
스크립트 엔진(script engine)을 이용하여 별도의 응용 프로그램 또는 데이터 셋 변환 장치를 이용하지 않고 서로 다른 언어로 작성된 프로그램을 한 번의 태스크(task)만으로 실행하는 동작을 더 포함하며,
상기 스크립트 엔진(script engine)은
상기 워크플로우에 포함된 상기 제 1 함수 및 상기 제 2 함수를 단일 프로그램에서 실행할 수 있도록 제어하는 방법.
According to clause 6,
It further includes the operation of executing programs written in different languages with just one task using a script engine without using a separate application or data set conversion device,
The script engine is
A method of controlling the first function and the second function included in the workflow to be executed in a single program.
실행되는 프로그램의 개발 언어에 대응하여 스크립트 엔진을 제공하는 동작;및
상기 스크립트 엔진을 이용하여 복수의 함수 또는 프로그램 사이에서 데이터를 전달하는 동작을 더 포함하는 방법.
According to clause 7,
Actions that provide a script engine corresponding to the development language of the program being executed; and
The method further includes transferring data between a plurality of functions or programs using the script engine.
상기 스크립트 엔진은
웹 기반 또는 운영체제(operation system, OS)에서 실행 가능한 응용 프로그램 형태로 제공되는 방법.
According to clause 7,
The script engine is
A method provided in the form of a web-based or executable application on an operating system (OS).
상기 제 2 함수의 입력 데이터를 전송함에 대응하여 상기 제 2 함수에 포함된 명령어에 따라 처리하는 동작;및
상기 GUI(graphic user interface)를 기반으로 사용자에게 처리 결과를 표시하는 동작을 더 포함하는 방법.
According to clause 7,
An operation of processing input data of the second function according to instructions included in the second function in response to transmitting the input data; and
A method further comprising displaying processing results to a user based on the graphic user interface (GUI).
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220059608A KR20230160046A (en) | 2022-05-16 | 2022-05-16 | Method for managing multi cloud and electronic device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220059608A KR20230160046A (en) | 2022-05-16 | 2022-05-16 | Method for managing multi cloud and electronic device |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230160046A true KR20230160046A (en) | 2023-11-23 |
Family
ID=88974650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220059608A KR20230160046A (en) | 2022-05-16 | 2022-05-16 | Method for managing multi cloud and electronic device |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20230160046A (en) |
-
2022
- 2022-05-16 KR KR1020220059608A patent/KR20230160046A/en not_active Application Discontinuation
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11288557B2 (en) | Long running workflows for document processing using robotic process automation | |
EP2808790B1 (en) | Migration assessment for cloud computing platforms | |
US20210034336A1 (en) | Executing a process-based software application in a first computing environment and a second computing environment | |
KR101862235B1 (en) | Specifying user interface elements | |
US8954859B2 (en) | Visually analyzing, clustering, transforming and consolidating real and virtual machine images in a computing environment | |
US11947443B2 (en) | Robotic process automation (RPA) debugging systems and methods | |
US8839107B2 (en) | Context based script generation | |
US20160188450A1 (en) | Automated application test system | |
JP2000132521A (en) | Method and device for shifting data item between different sources and for hierarchical object-oriented expression | |
US11468229B2 (en) | Describing changes in a workflow based on changes in structured documents containing workflow metadata | |
US11736556B1 (en) | Systems and methods for using a browser to carry out robotic process automation (RPA) | |
US20230143922A1 (en) | Systems and Methods for Dynamically Binding Robotic Process Automation (RPA) Robots to Resources | |
JP2023107749A (en) | Browser-based robotic process automation (RPA) robot design interface | |
CN113448678A (en) | Application information generation method, deployment method, device, system and storage medium | |
US20220067272A1 (en) | Robotic Process Automation Systems and Methods Using A Helper Spreadsheet | |
EP4124946A1 (en) | Optimized software delivery to airgapped robotic process automation (rpa) hosts | |
KR20230160046A (en) | Method for managing multi cloud and electronic device | |
KR20230160056A (en) | Method for managing multi cloud and electronic device | |
KR20230160055A (en) | Method for managing multi cloud and electronic device | |
KR20230160048A (en) | Method for managing multi cloud and electronic device | |
KR20230160047A (en) | Method for managing multi cloud and electronic device | |
KR20230160057A (en) | Method for managing multi cloud and electronic device | |
US11762676B2 (en) | Optimized software delivery to airgapped robotic process automation (RPA) hosts | |
US20170068523A1 (en) | Modular Computer Application Development and Usage | |
US20240220213A1 (en) | Contextual ui automation in robotic process automation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal |