KR20230091748A - Distributed workflow apparatus for executing and managing application tasks across multiple servers and method thereof - Google Patents

Distributed workflow apparatus for executing and managing application tasks across multiple servers and method thereof Download PDF

Info

Publication number
KR20230091748A
KR20230091748A KR1020220053261A KR20220053261A KR20230091748A KR 20230091748 A KR20230091748 A KR 20230091748A KR 1020220053261 A KR1020220053261 A KR 1020220053261A KR 20220053261 A KR20220053261 A KR 20220053261A KR 20230091748 A KR20230091748 A KR 20230091748A
Authority
KR
South Korea
Prior art keywords
workflow
application task
data
application
distributed
Prior art date
Application number
KR1020220053261A
Other languages
Korean (ko)
Inventor
손시운
원희선
민 차우 응웬
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Publication of KR20230091748A publication Critical patent/KR20230091748A/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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling

Abstract

본 개시는 분산 워크플로우 장치 및 방법에 관한 것으로, 데이터를 검색하고, 검색된 상기 데이터에 대응하는 응용 작업을 검색하고, 검색된 상기 응용 작업에 대응하는 워크플로우를 검색하고, 검색된 상기 워크플로우에 포함된 응용 작업들이 동작하는 실행 노드를 검색하고, 검색된 실행 노드를 기초로 상기 데이터와 상기 응용 작업을 사용하여 워크플로우를 생성하는 것을 요지로 한다. The present disclosure relates to a distributed workflow apparatus and method, which retrieves data, searches for an application task corresponding to the retrieved data, searches for a workflow corresponding to the retrieved application task, and includes a workflow included in the retrieved workflow. An object of the present invention is to search for execution nodes where application tasks operate, and to create a workflow by using the data and the application tasks based on the searched execution nodes.

Description

다중 서버에서 응용 작업 실행 및 관리를 위한 분산 워크플로우 장치 및 방법 {Distributed workflow apparatus for executing and managing application tasks across multiple servers and method thereof}Distributed workflow apparatus for executing and managing application tasks across multiple servers and method thereof}

본 개시는 분산 워크플로우 장치 및 방법에 대한 것으로서, 구체적으로, 다중 서버에서 응용 작업 실행 및 관리를 위한 분산 워크플로우 장치 및 방법에 대한 기술이다.The present disclosure relates to a distributed workflow device and method, and more specifically, to a distributed workflow device and method for executing and managing application tasks in multiple servers.

최근, 공공행정, 문화관광, 산업고용 등 공공 분야와 통신, 유통, 제조 등 민간 분야에서 데이터가 폭발적으로 발생함에 따라, 이러한 데이터를 활용하여 유의미한 가치를 창출하기 위한 노력이 요구된다. 예를 들어, 데이터 소스에서 발생된 원본 데이터를 수집 및 저장한 상태에서는 데이터 내적으로 자료형, 스키마 구조부터 데이터 외적으로 파일 유형까지 데이터마다 크게 상이하다. Recently, as data explodes in the public sector, such as public administration, cultural tourism, and industrial employment, and in the private sector, such as communication, distribution, and manufacturing, efforts are required to create meaningful value by utilizing this data. For example, in the state in which original data generated from a data source is collected and stored, each data is greatly different from the data type and schema structure inside the data to the file type outside the data.

이러한 원본 데이터는 기 개발된 응용 작업의 입력 데이터로 바로 사용될 수 없으며, 일반적으로 데이터를 가공 및 정제하는 등의 다수의 응용 작업들을 거쳐 새로운 데이터를 생성하여 목표한 응용 작업에 적용한다. 즉, 데이터로부터 서비스 목적에 적합한 결과까지 도달하는데 다수의 응용 작업을 거친다.Such original data cannot be directly used as input data for a previously developed application task, and generally, new data is generated through a plurality of application tasks such as processing and refining data and applied to a target application task. That is, it goes through a number of application tasks to reach a result suitable for the service purpose from data.

워크플로우는 하나 이상의 데이터와 하나 이상의 응용 작업을 조건에 따라 방향 비순환 그래프(Directed acyclic graph, 이하 DAG) 형태로 연결하고, 순차적으로 작업을 수행하는 일련의 처리 계획이다. 이러한 의미에서 워크플로우는 배치 잡 파이프라인 도구들과 유사하다. 이들의 공통된 목적은 다수의 응용 작업의 실행 계획을 세우고, 실행 엔진에서 순차 처리하는 것이다. 대표적인 워크플로우 또는 파이프라인의 종래 기술에는 Oozie, Azkaban, Prefect, Airflow, Luigi, Argo, Kubeflow, MLflow 등이 있다. A workflow is a series of processing plans that connect one or more data and one or more application tasks in the form of a directed acyclic graph (DAG) according to conditions and perform tasks sequentially. In this sense, workflows are similar to batch job pipeline tools. Their common purpose is to set up execution plans for multiple application tasks and process them sequentially in the execution engine. Prior art of representative workflows or pipelines include Oozie, Azkaban, Prefect, Airflow, Luigi, Argo, Kubeflow, MLflow, and the like.

Oozie와 Azkaban은 Hadoop의 잡들을 실행 및 관리하기 위한 워크플로우 스케줄러이다. Prefect, Airflow, Luigi는 Python 언어로 작성된 워크플로우를 실행하고 모니터링한다. Argo와 Kubeflow는 쿠버네티스 상에서 컨테이너 기반 병렬 잡을 실행 및 관리한다. 또한, Kubeflow는 MLflow와 유사하게 기계학습 라이프사이클을 관리하는데 초점을 둔다.Oozie and Azkaban are workflow schedulers for running and managing Hadoop jobs. Prefect, Airflow, and Luigi run and monitor workflows written in the Python language. Argo and Kubeflow run and manage container-based parallel jobs on Kubernetes. Also, Kubeflow, similar to MLflow, focuses on managing the machine learning lifecycle.

종래 워크플로우 기술들은 지속적으로 발전하고 많은 기업이 활용하는 매우 중요한 기술이지만 많은 제약을 가지고 있다. Conventional workflow technologies are very important technologies that are continuously developed and used by many companies, but have many limitations.

첫째, 일부 기술은 특정 기술 또는 시스템에 종속된다. 예를 들어, Oozie, Azkaban은 Hadoop 또는 그 연관 기술 상에서 잡을 생성하고 실행해야 한다. First, some technologies are dependent on a specific technology or system. For example, Oozie and Azkaban must create and run jobs on Hadoop or related technologies.

둘째, 사용자가 워크플로우를 모델링하기에 복잡하고 어려움이 있다. Perfect, Airflow, Luigi는 Python 언어로 워크플로우를 모델링하고, Argo, Kubeflow는 쿠버네티스에서 워크플로우를 실행할 수 있도록 DAG 명세를 YAML 파일 형태로 정의한다. 또한, 대부분의 종래 기술들은 워크플로우를 저작하기 위한 도구가 없거나 실행 상태만을 모니터링하여 일반 사용자는 사용하기 어렵다. 셋째, 일부 종래 기술은 특수한 목적을 가진다. Kubeflow와 MLflow는 기계학습 라이프사이클의 워크플로우를 관리하므로 일반화된 목적으로는 사용에 제약이 있으므로 사용자가 불편함을 느끼는 문제점이 있었다.Second, it is complicated and difficult for the user to model the workflow. Perfect, Airflow, and Luigi model workflows in the Python language, and Argo and Kubeflow define DAG specifications in the form of YAML files to run workflows in Kubernetes. In addition, most conventional technologies do not have a tool for authoring a workflow or monitor only an execution state, making it difficult for general users to use. Third, some prior art has a special purpose. Kubeflow and MLflow manage the workflow of the machine learning lifecycle, so there are restrictions on their use for generalized purposes, so users feel uncomfortable.

본 개시의 목적은 컨테이너 형태로 개발된 다양한 응용 작업들과 각 응용 작업의 입출력을 DAG 형태로 쉽게 저작할 수 있는 워크플로우 저작 도구와 이러한 워크플로우의 구성 요소를 다중 서버에서 분산 배치 및 실행하는 방법을 그 목적으로 한다. The purpose of the present disclosure is a workflow authoring tool that can easily author various application tasks developed in a container form and the input and output of each application task in a DAG form, and a method for distributing and executing components of these workflows on multiple servers. for that purpose.

본 개시의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 개시의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 개시의 목적 및 장점들은 특허청구범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.Other objects and advantages of the present disclosure can be understood by the following description, and will be more clearly understood by the embodiments of the present disclosure. Furthermore, it will be readily apparent that the objects and advantages of the present disclosure may be realized by means of the instrumentalities and combinations thereof set forth in the claims.

본 개시의 일 실시예에 따른, 분산 워크플로우 방법은, 데이터를 검색하는 단계; 검색된 상기 데이터에 대응하는 응용 작업을 검색하는 단계; 검색된 상기 응용 작업에 대응하는 워크플로우를 검색하는 단계; 검색된 상기 워크플로우에 포함된 응용 작업들이 동작하는 실행 노드를 검색하는 단계; 및 검색된 실행 노드를 기초로 상기 데이터와 상기 응용 작업을 사용하여 워크플로우를 생성하는 단계를 포함한다. According to an embodiment of the present disclosure, a distributed workflow method includes retrieving data; searching for an application job corresponding to the searched data; searching for a workflow corresponding to the searched application task; searching for execution nodes in which application tasks included in the searched workflow operate; and generating a workflow using the data and the application task based on the searched execution node.

본 개시의 일 실시예에 따른, 분산 워크플로우 방법은, 데이터를 추가하는 단계; 추가된 상기 데이터를 워크플로우의 시작 구성요소에 연결하는 단계; 상기 데이터를 처리할 응용 작업을 추가하는 단계; 추가된 상기 응용 작업을 입력 데이터와 연결하는 단계; 상기 응용 작업의 설정값을 변경하는 단계; 상기 응용 작업의 출력을 설정하는 단계; 및 상기 응용 작업의 출력과 연결할 응용 작업이 있으면, 응용 작업을 추가하여 워크플로우를 생성한다. According to an embodiment of the present disclosure, a distributed workflow method includes adding data; connecting the added data to the start component of the workflow; adding an application task to process the data; connecting the added application task with input data; changing a set value of the application task; setting the output of the application task; and if there is an application task to be linked with the output of the application task, a workflow is created by adding the application task.

본 개시의 일 실시예에 따른, 분산 워크플로우 방법은, 추가할 데이터가 있으면, 데이터를 추가하는 단계를 더 포함한다. According to an embodiment of the present disclosure, the distributed workflow method further includes adding data if there is data to be added.

본 개시의 일 실시예에 따른, 분산 워크플로우 방법은, 상기 워크플로우의 시작 구성요소부터 종단 구성요소까지 상기 데이터 및 상기 응용 작업을 연결하여 워크플로우를 생성하는 단계를 더 포함한다. According to an embodiment of the present disclosure, the distributed workflow method further includes generating a workflow by connecting the data and the application task from a start element to an end element of the workflow.

본 개시의 일 실시예에 따른, 분산 워크플로우 방법은, 상기 워크플로우의 시작 구성요소부터 종단 구성요소까지 상기 데이터 및 상기 응용 작업을 DAG 형태로 연결하여 워크플로우를 생성하는 단계를 더 포함한다. According to an embodiment of the present disclosure, the distributed workflow method further includes generating a workflow by connecting the data and the application task in a DAG form from a start element to an end element of the workflow.

본 개시의 일 실시예에 따른, 분산 워크플로우 방법은, 상기 워크플로우는 소정의 규칙에 따라 구성요소를 서로 연결한다. In a distributed workflow method according to an embodiment of the present disclosure, the workflow connects components to each other according to a predetermined rule.

본 개시의 일 실시예에 따른, 분산 워크플로우 방법은, 워크플로우가 수정된 경우, 수정된 워크플로우를 검증하는 단계; 및 검증 결과 부적합한 경우, 오류를 보고하는 단계를 더 포함한다. According to an embodiment of the present disclosure, a distributed workflow method includes, when the workflow is modified, verifying the modified workflow; and reporting an error if the verification result is inappropriate.

본 개시의 일 실시예에 따른, 분산 워크플로우 방법은, 상기 워크플로우의 시작 구성요소부터 종단 구성요소까지 검토하고 응용 작업에 필요한 설정 값을 확인하는 단계; 상기 워크플로우의 응용 작업들이 실행될 실행 노드의 접속 가능 여부 및 실행 가능 여부를 확인하는 단계; 상기 워크플로우의 실행 준비가 완료되면, 상기 워크플로우의 각 응용 작업을 분산된 실행 노드에 배포하는 단계; 및 상기 워크플로우의 시작 구성 요소부터 종단 구성요소까지 상기 응용 작업을 상기 실행 노드에서 실행하는 단계를 더 포함한다. According to an embodiment of the present disclosure, the distributed workflow method includes: reviewing a start component to an end component of the workflow and checking a set value required for an application task; checking whether an execution node where the application tasks of the workflow are to be executed is accessible and executable; Distributing each application task of the workflow to distributed execution nodes when preparation for execution of the workflow is completed; and executing the application task from the start element to the end element of the workflow at the execution node.

본 개시의 일 실시예에 따른, 분산 워크플로우 방법은, 상기 워크플로우의 시작 구성 요소부터 종단 구성요소까지 상기 응용 작업을 상기 실행 노드에서 실행하는 단계는 특정 시점에 응용 작업이 복수인 경우, 상기 응용 작업을 상기 실행 노드에서 동시에 실행하는 단계를 더 포함한다. In the distributed workflow method according to an embodiment of the present disclosure, the step of executing the application tasks from the start component to the end component of the workflow in the execution node, when there are a plurality of application tasks at a specific time point, the A step of concurrently executing application tasks in the execution node is further included.

본 개시의 일 실시예에 따른, 분산 워크플로우 방법은, 워크플로우를 순회하며 응용 작업 큐에 기록하는 단계; 상기 응용 작업 큐에서 응용 작업을 리딩하는 단계; 상기 응용 작업이 실행 가능하면, 실행 노드에서 응용 작업을 시작하는 단계; 상기 응용 작업 큐에 상기 응용 작업이 존재하면, 상기 응용 작업 큐에서 상기 응용 작업을 리딩하는 단계를 더 포함한다. According to an embodiment of the present disclosure, a distributed workflow method includes traversing a workflow and recording in an application task queue; reading an application task from the application task queue; If the application task is executable, starting the application task in an execution node; The method further includes reading the application task from the application task queue if the application task exists in the application task queue.

본 개시의 일 실시예에 따른, 분산 워크플로우 장치는, 데이터를 검색하는 데이터 검색기; 검색된 상기 데이터에 대응하는 응용 작업을 검색하는 응용 작업 검색기; 검색된 상기 응용 작업에 대응하는 워크플로우를 검색하는 워크 플로우 검색기; 검색된 상기 워크플로우에 포함된 응용 작업들이 동작하는 실행 노드를 검색하는 실행 노드 검색기; 및 검색된 실행 노드를 기초로 상기 데이터와 상기 응용 작업을 사용하여 워크플로우를 생성하는 워크플로우 저작기를 포함한다. According to an embodiment of the present disclosure, a distributed workflow apparatus includes a data searcher for searching data; an application task searcher for searching an application task corresponding to the retrieved data; a workflow searcher for searching for a workflow corresponding to the searched application task; an execution node searcher for searching execution nodes in which application tasks included in the searched workflow operate; and a workflow creator generating a workflow using the data and the application task based on the searched execution node.

본 개시의 일 실시예에 따른, 분산 워크플로우 장치는, 상기 워크플로우 저작기는, 데이터를 추가하고, 추가된 상기 데이터를 워크플로우의 시작 구성요소에 연결하고, 상기 데이터를 처리할 응용 작업을 추가하고, 추가된 상기 응용 작업을 입력 데이터와 연결하고, 상기 응용 작업의 설정값을 변경하고, 상기 응용 작업의 출력을 설정하고, 상기 응용 작업의 출력과 연결할 응용 작업이 있으면, 응용 작업을 추가하여 워크플로우를 생성한다. According to an embodiment of the present disclosure, in the distributed workflow device, the workflow author adds data, connects the added data to a starting component of a workflow, and adds an application task to process the data. and connects the added application task with input data, changes the settings of the application task, sets the output of the application task, and if there is an application task to be linked with the output of the application task, adds the application task create a workflow

본 개시의 일 실시예에 따른, 분산 워크플로우 장치는, 상기 워크플로우 저작기는, 추가할 데이터가 있으면, 데이터를 추가한다. In the distributed workflow device according to an embodiment of the present disclosure, if there is data to be added, the workflow author adds data.

본 개시의 일 실시예에 따른, 분산 워크플로우 장치는, 상기 워크플로우 저작기는, 상기 워크플로우의 시작 구성요소부터 종단 구성요소까지 상기 데이터 및 상기 응용 작업을 연결하여 워크플로우를 생성한다. According to an embodiment of the present disclosure, in the distributed workflow device, the workflow author creates a workflow by connecting the data and the application task from a start element to an end element of the workflow.

본 개시의 일 실시예에 따른, 분산 워크플로우 장치는, 워크플로우 저작기는, 상기 워크플로우의 시작 구성요소부터 종단 구성요소까지 상기 데이터 및 상기 응용 작업을 DAG 형태로 연결하여 워크플로우를 생성한다. According to an embodiment of the present disclosure, in the distributed workflow apparatus, the workflow author creates a workflow by connecting the data and the application work in a DAG form from a start element to an end element of the workflow.

본 개시의 일 실시예에 따른, 분산 워크플로우 장치는, 상기 워크플로우는 소정의 규칙에 따라 구성요소를 서로 연결한다. In a distributed workflow apparatus according to an embodiment of the present disclosure, the workflow connects components according to predetermined rules.

본 개시의 일 실시예에 따른, 분산 워크플로우 장치는, 워크플로우 검증기를 더 포함하고, 상기 워크플로우 검증기는, 워크플로우가 수정된 경우, 수정된 워크플로우를 검증하고, 검증 결과 부적합한 경우, 오류를 보고한다. According to an embodiment of the present disclosure, the distributed workflow apparatus further includes a workflow verifier, wherein the workflow verifier verifies the modified workflow when the workflow is modified, and if the verification result is inappropriate, an error occurs. to report

본 개시의 일 실시예에 따른, 분산 워크플로우 장치는, 워크플로우의 시작 구성요소부터 종단 구성요소까지 검토하고 응용 작업에 필요한 설정 값을 확인하는 워크플로우 설정기; 상기 워크플로우의 응용 작업들이 실행될 실행 노드의 접속 가능 여부 및 실행 가능 여부를 확인하는 실행 노드 검증기; 상기 워크플로우의 실행 준비가 완료되면, 상기 워크플로우의 각 응용 작업을 분산된 실행 노드에 배포하는 응용 작업 분산 배포기; 및 상기 워크플로우의 시작 구성 요소부터 종단 구성요소까지 상기 응용 작업을 상기 실행 노드에서 실행하는 응용 작업 분산 실행기를 더 포함한다. According to an embodiment of the present disclosure, a distributed workflow apparatus includes: a workflow setter for reviewing a start component of a workflow to an end component and confirming a set value required for an application task; an execution node verifier that checks whether an execution node where the application tasks of the workflow are to be executed is accessible and executable; When the workflow is ready for execution, an application task distribution distributor distributing each application task of the workflow to distributed execution nodes; and an application task distribution executor that executes the application task from the start component to the end component of the workflow in the execution node.

본 개시의 일 실시예에 따른, 분산 워크플로우 장치는, 상기 응용 작업 분산 실행기는, 특정 시점에 응용 작업이 복수인 경우, 상기 응용 작업을 상기 실행 노드에서 동시에 실행한다. According to an embodiment of the present disclosure, in the distributed workflow apparatus, the application task distribution executor simultaneously executes the application tasks in the execution node when there are a plurality of application tasks at a specific time point.

본 개시의 일 실시예에 따른, 분산 워크플로우 장치는, 외부 장치와 데이터를 송수신하는 송수신부; 상기 송수신부를 통하여 데이터를 추가하고, 추가된 상기 데이터를 워크플로우의 시작 구성요소에 연결하고, 상기 데이터를 처리할 응용 작업을 추가하고, 추가된 상기 응용 작업을 입력 데이터와 연결하고, 상기 응용 작업의 설정값을 변경하고, 상기 응용 작업의 출력을 설정하고, 상기 응용 작업의 출력과 연결할 응용 작업이 있으면, 응용 작업을 추가하여 워크플로우를 생성하는 프로세서를 포함한다.According to an embodiment of the present disclosure, a distributed workflow device includes a transceiver for transmitting and receiving data to and from an external device; Add data through the transceiver, connect the added data to a start component of the workflow, add an application task to process the data, connect the added application task with input data, and connect the application task to the input data. and a processor that creates a workflow by changing a set value of the application task, setting an output of the application task, and adding an application task if there is an application task to be linked with the output of the application task.

본 개시의 일 실시 예에 따르면, 특정 기술 또는 시스템에 종속되지 않게 격리된 환경에서 응용 작업이 실행될 수 있도록 컨테이너 형태로 개발된 다수의 응용 작업을 연결하여 워크플로우를 저작할 수 있는 환경을 제공하고, 이 워크플로우를 다수의 서버로 구성된 분산 클러스터에서 실행할 수 있는 워크플로우 분산 실행 방법을 제공할 수 있다. According to an embodiment of the present disclosure, an environment in which a workflow can be authored by connecting a plurality of application tasks developed in a container form so that application tasks can be executed in an isolated environment without being dependent on a specific technology or system is provided, , it is possible to provide a workflow distributed execution method that can execute this workflow in a distributed cluster composed of multiple servers.

본 개시의 일 실시 예에 따르면, 일반 사용자가 다양한 분야의 데이터를 가공, 처리, 분석, 저장하기 위한 워크플로우를 쉽게 생성하고 분산 클러스터의 자원을 효율적으로 사용하여 워크플로우를 실행할 수 있으므로 사용자 편의성을 향상시킬 수 있다.According to an embodiment of the present disclosure, user convenience can be improved because a general user can easily create a workflow for processing, processing, analyzing, and storing data in various fields and execute the workflow by efficiently using resources of a distributed cluster. can improve

본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.Effects obtainable in the present disclosure are not limited to the effects mentioned above, and other effects not mentioned may be clearly understood by those skilled in the art from the description below. will be.

도 1은 본 개시의 일 실시예에 따른, 전체 시스템의 구성 요소를 도시한 도면이다.
도 2는 본 개시의 일 실시예에 따른, 워크플로우 저작기의 동작 절차를 도시한 도면이다.
도 3은 본 개시의 일 실시 예에 따른, 워크플로우 저작의 실시 예를 도시한 도면이다.
도 4는 본 개시의 일 실시 예에 따른, 워크플로우 분산 실행 모델의 실시 예를 도시한 도면이다.
도 5는 본 개시의 일 실시 예에 따른, 응용 작업 분산 실행기의 동작 절차를 도시한 도면이다.
도 6은 본 개시의 일 실시 예에 따른, 분석 워크플로우 방법의 순서도를 도시한 도면이다.
도 7은 본 개시의 일 실시 예에 따른, 분석 워크플로우 장치의 구성도를 도시한 도면이다.
1 is a diagram illustrating components of an entire system according to an embodiment of the present disclosure.
2 is a diagram illustrating an operating procedure of a workflow authoring machine according to an embodiment of the present disclosure.
3 is a diagram illustrating an embodiment of authoring a workflow according to an embodiment of the present disclosure.
4 is a diagram illustrating an embodiment of a workflow distributed execution model according to an embodiment of the present disclosure.
5 is a diagram illustrating an operating procedure of an application task distribution executor according to an embodiment of the present disclosure.
6 is a flowchart illustrating an analysis workflow method according to an embodiment of the present disclosure.
7 is a diagram illustrating a configuration of an analysis workflow device according to an embodiment of the present disclosure.

이하에서는 첨부한 도면을 참고로 하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나, 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. Hereinafter, with reference to the accompanying drawings, embodiments of the present disclosure will be described in detail so that those skilled in the art can easily carry out the present disclosure. However, the present disclosure may be implemented in many different forms and is not limited to the embodiments described herein.

본 개시의 실시 예를 설명함에 있어서 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그에 대한 상세한 설명은 생략한다. 그리고, 도면에서 본 개시에 대한 설명과 관계없는 부분은 생략하였으며, 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.In describing the embodiments of the present disclosure, if it is determined that a detailed description of a known configuration or function may obscure the gist of the present disclosure, a detailed description thereof will be omitted. And, in the drawings, parts irrelevant to the description of the present disclosure are omitted, and similar reference numerals are attached to similar parts.

본 개시에 있어서, 서로 구별되는 구성요소들은 각각의 특징을 명확하게 설명하기 위함이며, 구성요소들이 반드시 분리되는 것을 의미하지는 않는다. 즉, 복수의 구성요소가 통합되어 하나의 하드웨어 또는 소프트웨어 단위로 이루어질 수도 있고, 하나의 구성요소가 분산되어 복수의 하드웨어 또는 소프트웨어 단위로 이루어질 수도 있다. 따라서, 별도로 언급하지 않더라도 이와 같이 통합된 또는 분산된 실시 예도 본 개시의 범위에 포함된다. In the present disclosure, components that are distinguished from each other are intended to clearly explain each characteristic, and do not necessarily mean that the components are separated. That is, a plurality of components may be integrated to form a single hardware or software unit, or a single component may be distributed to form a plurality of hardware or software units. Accordingly, even such integrated or distributed embodiments are included in the scope of the present disclosure, even if not mentioned separately.

본 개시에 있어서, 다양한 실시 예에서 설명하는 구성요소들이 반드시 필수적인 구성요소들을 의미하는 것은 아니며, 일부는 선택적인 구성요소일 수 있다. 따라서, 일 실시 예에서 설명하는 구성요소들의 부분집합으로 구성되는 실시 예도 본 개시의 범위에 포함된다. 또한, 다양한 실시 예에서 설명하는 구성요소들에 추가적으로 다른 구성요소를 포함하는 실시 예도 본 개시의 범위에 포함된다. In the present disclosure, components described in various embodiments do not necessarily mean essential components, and some may be optional components. Therefore, an embodiment composed of a subset of components described in one embodiment is also included in the scope of the present disclosure. In addition, embodiments including other components in addition to the components described in various embodiments are also included in the scope of the present disclosure.

본 개시에 있어서, 제1, 제2 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용되며, 특별히 언급되지 않는 한 구성요소들 간의 순서 또는 중요도 등을 한정하지 않는다. 따라서, 본 개시의 범위 내에서 일 실시 예에서의 제1 구성요소는 다른 실시 예에서 제2 구성요소라고 칭할 수도 있고, 마찬가지로 일 실시예에서의 제2 구성요소를 다른 실시예에서 제1 구성요소라고 칭할 수도 있다.In the present disclosure, terms such as first and second are used only for the purpose of distinguishing one element from another, and do not limit the order or importance of elements unless otherwise specified. Accordingly, within the scope of the present disclosure, a first component in one embodiment may be referred to as a second component in another embodiment, and similarly, a second component in one embodiment may be referred to as a first component in another embodiment. can also be called

본 개시의 어떤 구성요소가 다른 구성요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있으나, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 “직접 연결되어” 있다거나, “직접 접속되어” 있다고 언급된 때에는, 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다.When a component of the present disclosure is referred to as “connected” or “connected” to another component, it may be directly connected or connected to the other component, but there may be other components in the middle. It should be understood that it may be On the other hand, when a component is referred to as “directly connected” or “directly connected” to another component, it should be understood that no other component exists in the middle.

또한, 본 개시에 있어서 본 개시의 실시예를 도시한 일 도면이 다른 도면과 양자 택일의 실시예에 해당하지 않는 한 각 도면에 대한 설명은 서로 다른 도면에 적용될 수 있다. In addition, in the present disclosure, the description of each drawing may be applied to different drawings unless one drawing showing an embodiment of the present disclosure corresponds to another drawing and an alternative embodiment.

이하, 도면을 참조하여 본 개시에 대하여 더욱 상세하게 설명할 것이다.Hereinafter, the present disclosure will be described in more detail with reference to the drawings.

도 1은 본 개시의 일 실시예에 따른, 전체 시스템의 구성 요소를 도시한 도면이다. 1 is a diagram illustrating components of an entire system according to an embodiment of the present disclosure.

도 1을 참조하면, 본 발명의 시스템(1000)은 워크플로우 저작 모델(100)과 워크플로우 분산 실행 모델(200)을 포함한다. Referring to FIG. 1 , a system 1000 of the present invention includes a workflow authoring model 100 and a workflow distributed execution model 200 .

워크플로우 저작 모델(100)의 경우, 워크플로우 개발자가 워크플로우를 저작한다. In the case of the workflow authoring model 100, workflow developers author workflows.

워크플로우 분산 실행 모델(200)은 저작이 완료된 워크플로우의 각 응용 작업을 분산된 서버에서 실행한다. The workflow distributed execution model 200 executes each application task of the workflow for which authoring is completed in a distributed server.

워크플로우 저작 모델(100)은 데이터 검색기(101), 응용 작업 검색기(102), 워크플로우 검색기(103), 실행 노드 검색기(104), 워크플로우 저작기(105), 워크플로우 검증기(106), 워크플로우 관리기(107) 및 워크플로우 저장기(108)를 포함한다.The workflow authoring model 100 includes a data retriever 101, an application task retriever 102, a workflow retriever 103, an execution node retriever 104, a workflow author 105, a workflow verifier 106, a workflow It includes a flow manager 107 and a workflow store 108.

하나의 워크플로우에는 그 구성요소로 데이터, 응용 작업, 워크플로우를 포함하며, 워크플로우를 저작하기 위해 이들을 찾고 구성요소로 가져올 수 있다. A workflow contains data, applications, and workflows as its components, and they can be found and imported as components to author the workflow.

데이터 검색기(101)는 데이터를 검색하고 다운로드 받을 수 있는 API를 제공하는 데이터 제공처로부터 개발자가 원하는 데이터를 선택하고 읽어 들인다. 여기서, 데이터 제공처는 데이터 포털이 될 수 있다. The data searcher 101 selects and reads data desired by a developer from a data provider that provides an API for searching and downloading data. Here, the data provider may be a data portal.

응용 작업 검색기(102)는 기 개발된 응용 작업을 선택하고 리딩한다. 여기서 응용 작업은 입력 데이터를 받아 가공, 처리, 분석하여 파일 시스템, RDBMS, 오브젝트 스토리지 등의 데이터 저장소에 저장한다. The application task searcher 102 selects and leads previously developed application tasks. Here, the application task receives input data, processes, processes, analyzes, and stores it in a data store such as a file system, RDBMS, or object storage.

응용 작업 개발자는 응용 작업이 시스템에 종속되지 않게 격리된 환경에서 응용 작업 프로세스가 동작할 수 있도록 응용 작업을 컨테이너 이미지로 배포해야 한다. Application task developers must deploy application tasks as container images so that application task processes can operate in an isolated environment so that application tasks do not depend on the system.

응용 작업 검색기(102)는 접근 가능한 컨테이너 이미지 저장소에서 응용 작업 이미지를 가져온다. 워크플로우는 다른 워크플로우를 포함할 수 있다. The application task searcher 102 retrieves an application task image from an accessible container image repository. Workflows can contain other workflows.

워크플로우 검색기(103)는 이를 기 개발된 워크플로우를 선택하고 리딩한다. The workflow searcher 103 selects and reads a pre-developed workflow.

워크플로우에 포함된 응용 작업들이 이후 분산된 서버에서 컨테이너로 실행될 수 있도록 워크플로우 개발자는 각 응용 작업이 동작할 실행 노드를 선택할 수 있다. The workflow developer can select the execution node on which each application will operate so that the application tasks included in the workflow can be executed as containers on the distributed server.

실행 노드의 실시 예로써 분산된 서버로 구성된 쿠버네티스 클러스터를 논리적으로 구분하기 위해 사용되는 쿠버네티스의 네임스페이스를 실행 노드로 사용할 수 있다. As an example of an execution node, a Kubernetes namespace used to logically divide a Kubernetes cluster composed of distributed servers can be used as an execution node.

따라서, 본 발명은 기 구축된 실행 노드들의 시스템 자원 상태 등을 조회하고, 이후 워크플로우 저작기(105)에서 각 응용 작업 별 실행 노드를 선택할 수 있도록 실행 노드 검색기(104)를 제공한다.Therefore, the present invention provides an execution node searcher 104 to query the system resource status of pre-established execution nodes, and then select an execution node for each application task in the workflow author 105.

워크플로우 개발자는 데이터와 응용 작업(이하 워크플로우 포함)을 사용하여 실행 계획인 워크플로우를 저작할 수 있다. Workflow developers can author workflows, which are execution plans, using data and application tasks (hereafter referred to as workflows).

워크플로우 저작기(105)는 웹 기반 그래픽 사용자 인터페이스(GUI) 상에서 워크플로우의 시작 구성요소부터 종단 구성요소까지 데이터 및 응용 작업을 방향 비순환 그래프(Directed acyclic graph, 이하 DAG) 형태로 연결하여 워크플로우를 생성한다. The workflow writer 105 creates a workflow by connecting data and application tasks from the start component to the end component of the workflow in the form of a directed acyclic graph (DAG) on a web-based graphical user interface (GUI). create

워크플로우 검증기(106)는 이러한 일곱 가지 연결규칙을 기반으로 개발자가 수정한 워크플로우를 검증하고 부적합한 경우 오류를 보고한다. 일곱 가지 연결규칙은 도 3에서 자세히 설명한다. The workflow verifier 106 verifies the workflow modified by the developer based on these seven connection rules and reports an error if it is inappropriate. The seven connection rules are described in detail in FIG. 3 .

워크플로우 관리기(107)는 개발이 완료된 워크플로우 저장기(108)에 기록한다. 이를 통해 워크플로우 개발자는 워크플로우를 추후 단독으로 사용하거나 다른 워크플로우에 포함시킬 수 있도록, 워크플로우의 저장, 수정, 삭제 등 관리 작업을 수행한다. The workflow manager 107 records the developed workflow in the storage 108. Through this, the workflow developer performs management tasks such as saving, modifying, and deleting the workflow so that the workflow can be used alone later or included in other workflows.

다음으로, 워크플로우 분산 실행 모델(200)에 대하여 설명한다. Next, the workflow distributed execution model 200 will be described.

워크플로우 분산 실행 모델(200)은 워크플로우 설정기(201), 실행 노드 검증기(202), 응용 작업 분산 배포기(203), 응용 작업 분산 실행기(204), 실행 응용 작업 관리기(205) 및 실행 응용 작업 저장기(206)를 포함한다. The workflow distributed execution model 200 includes a workflow setter 201, an execution node verifier 202, an application task distribution distributor 203, an application task distribution executor 204, an execution application task manager 205, and an execution Application task store 206.

워크플로우 저작 모델(100)에서 개발된 워크플로우는 워크플로우 분산 실행 모델(200)을 통해 다중 서버에서 분산되어 실행된다.The workflow developed in the workflow authoring model 100 is distributed and executed on multiple servers through the workflow distributed execution model 200 .

워크플로우 설정기(201)는 워크플로우의 시작 구성요소부터 종단 구성요소까지 순차적으로 검토하며 응용 작업에 필요한 설정 값을 확인한다. The workflow setter 201 sequentially reviews from the start component to the end component of the workflow and checks the setting values required for the application task.

특히, 워크플로우 설정기(201)는 워크플로우에 속한 응용 작업 구성요소들의 입력점과 출력점에 연결된 데이터 구성요소 또는 출력 구성요소에 정의된 접근 정보를 응용 작업 내에서 사용할 수 있도록 응용 작업 설정 값 중 컨테이너 환경변수에 기록한다. In particular, the workflow setter 201 sets the application task setting value so that the access information defined in the data component or output component connected to the input points and output points of the application task components belonging to the workflow can be used within the application task. Record in the container environment variable.

실행 노드 검증기(202)는 워크플로우의 응용 작업들이 실행될 실행 노드의 접속 가능 여부 및 실행 가능 여부를 확인한다. 이는 앞서 워크플로우 저작 모델의 실행 노드 검색기(104)를 통해 선택된 실행 노드가 실행 시간에 노드 상태 또는 가용자원 상태에 따라 해당 응용 작업이 정상 동작할 수 있는지 확인한다.The execution node verifier 202 checks whether an execution node where application tasks of a workflow are to be executed can be accessed and executed. This checks whether the corresponding application can be normally operated according to the node state or available resource state at the execution time of the execution node selected through the execution node searcher 104 of the workflow authoring model.

워크플로우의 실행 준비가 완료되면, 응용 작업 분산 배포기(203)가 워크플로우의 각 응용 작업을 분산된 실행 노드에 배포한다. 이는 응용 작업이 필요한 컨테이너 이미지를 각 실행 노드에서 사용할 수 있도록 로컬 이미지 저장소로 다운로드 받는다. When the preparation for execution of the workflow is completed, the application task distribution distributor 203 distributes each application task of the workflow to the distributed execution nodes. This downloads container images that require application work to the local image storage so that each execution node can use them.

응용 작업 분산 실행기(204)는 워크플로우의 시작 구성요소부터 종단 구성요소까지 응용 작업을 분산된 실행 노드에서 순차적으로 실행한다. 이때, 모든 응용 작업은 입력으로 사용할 데이터 구성요소 또는 출력 구성요소가 정상적으로 사용가능한 상태에서 실행된다. The application task distribution executor 204 sequentially executes application tasks from a start component to an end component of a workflow in distributed execution nodes. At this time, all application tasks are executed in a state where data elements to be used as inputs or output elements are normally available.

예를 들어, 도 3에 도시한 바와 같이, 이전의 응용 작업(403)의 출력 컴포넌트가 이후의 응용 작업(405)의 입력으로 사용된다면, 이전의 응용 작업이(403)이 실행 완료 상태에 도달해야 이후의 응용 작업(405)이 실행된다. For example, as shown in FIG. 3 , if an output component of a previous application task 403 is used as an input of a subsequent application task 405, the previous application task 403 reaches an execution completion state. The subsequent application work 405 is executed.

응용 작업 분산 실행기(204)는 특정 시점에 실행 가능한 응용 작업들이 다수 존재할 경우, 이들을 각 실행 노드에서 동시에 실행하는 병렬 처리 기능을 제공한다. The application task distribution executor 204 provides a parallel processing function that simultaneously executes a plurality of application tasks that can be executed at a specific time in each execution node.

실행 응용 작업 관리기(205)는 실행 노드에서 실행 중인 응용 작업을 중단 및 모니터링하거나 실행 완료 상태의 응용 작업을 재시작 및 삭제한다. The running application task manager 205 suspends and monitors an application task running on an execution node, or restarts and deletes an application task in a completed execution state.

실행 응용 작업 저장기(206)는 실행 중이거나 기 실행된 응용 작업들을 저장한다.The running application task storage 206 stores application tasks that are being executed or previously executed.

분산 워크플로우 장치(100)는 데이터 검색기(101), 응용 작업 검색기(102), 워크플로우 검색기(103), 실행 노드 검색기(104) 및 워크플로우 저작기(105)를 포함한다. The distributed workflow device 100 includes a data searcher 101 , an application task searcher 102 , a workflow searcher 103 , an execution node searcher 104 , and a workflow author 105 .

데이터 검색기(101)는 데이터를 검색한다. The data searcher 101 retrieves data.

응용 작업 검색기(102)는 검색된 상기 데이터에 대응하는 응용 작업을 검색한다. The application task searcher 102 searches for an application task corresponding to the retrieved data.

워크 플로우 검색기(103)는 검색된 상기 응용 작업에 대응하는 워크플로우를 검색한다. The workflow searcher 103 searches for a workflow corresponding to the searched application task.

실행 노드 검색기(104)는 검색된 상기 워크플로우에 포함된 응용 작업들이 동작하는 실행 노드를 검색한다. The execution node searcher 104 searches execution nodes in which application tasks included in the searched workflow operate.

워크플로우 저작기(105)는 검색된 실행 노드를 기초로 상기 데이터와 상기 응용 작업을 사용하여 워크플로우를 생성한다. The workflow creator 105 creates a workflow using the data and the application task based on the found execution node.

워크플로우 저작기(105)는 데이터를 추가하고, 추가된 상기 데이터를 워크플로우의 시작 구성요소에 연결하고, 상기 데이터를 처리할 응용 작업을 추가하고, 추가된 상기 응용 작업을 입력 데이터와 연결하고, 상기 응용 작업의 설정값을 변경하고, 상기 응용 작업의 출력을 설정하고, 상기 응용 작업의 출력과 연결할 응용 작업이 있으면, 응용 작업을 추가하여 워크플로우를 생성한다. The workflow author 105 adds data, connects the added data to the start component of the workflow, adds an application task to process the data, connects the added application task with the input data, If a setting value of the application task is changed, an output of the application task is set, and there is an application task to be linked with the output of the application task, a workflow is created by adding the application task.

워크플로우 저작기(105)는 추가할 데이터가 있으면, 데이터를 추가한다. The workflow author 105 adds data if there is data to be added.

워크플로우 저작기(105)는 상기 워크플로우의 시작 구성요소부터 종단 구성요소까지 상기 데이터 및 상기 응용 작업을 연결하여 워크플로우를 생성한다. The workflow creator 105 creates a workflow by connecting the data and the application task from the start element to the end element of the workflow.

워크플로우 저작기(105)는 상기 워크플로우의 시작 구성요소부터 종단 구성요소까지 상기 데이터 및 상기 응용 작업을 DAG 형태로 연결하여 워크플로우를 생성한다. The workflow creator 105 creates a workflow by connecting the data and the application work in a DAG form from the start element to the end element of the workflow.

여기서, 워크플로우는 소정의 규칙에 따라 구성요소를 서로 연결한다. Here, the workflow connects components to each other according to predetermined rules.

워크플로우 검증기(106)는 워크플로우가 수정된 경우, 수정된 워크플로우를 검증하고, 검증 결과 부적합한 경우, 오류를 보고한다. The workflow verifier 106 verifies the modified workflow when the workflow is modified, and reports an error when the verification result is inappropriate.

분산 워크플로우 장치(100)는 워크플로우 설정기(201), 실행 노드 검증기(202), 응용 작업 분산 배포기(203) 및 응용 작업 분산 실행기(204)를 포함한다. The distributed workflow device 100 includes a workflow setter 201 , an execution node verifier 202 , an application task distribution distributor 203 and an application task distribution executor 204 .

워크플로우 설정기(201)는 워크플로우의 시작 구성요소부터 종단 구성요소까지 검토하고 응용 작업에 필요한 설정 값을 확인한다. The workflow setter 201 reviews from the start component to the end component of the workflow and checks the setting values required for the application task.

실행 노드 검증기(202)는 워크플로우의 응용 작업들이 실행될 실행 노드의 접속 가능 여부 및 실행 가능 여부를 확인한다. The execution node verifier 202 checks whether an execution node where application tasks of a workflow are to be executed can be accessed and executed.

응용 작업 분산 배포기(203)는 워크플로우의 실행 준비가 완료되면, 상기 워크플로우의 각 응용 작업을 분산된 실행 노드에 배포한다. When the preparation for execution of the workflow is completed, the application task distribution distributor 203 distributes each application task of the workflow to distributed execution nodes.

응용 작업 분산 실행기(204)는 워크플로우의 시작 구성 요소부터 종단 구성요소까지 상기 응용 작업을 상기 실행 노드에서 실행한다. The application task distribution executor 204 executes the application task from the start component to the end component of the workflow in the execution node.

응용 작업 분산 실행기(204)는 특정 시점에 응용 작업이 복수인 경우, 상기 응용 작업을 상기 실행 노드에서 동시에 실행한다. When there are a plurality of application tasks at a specific point in time, the application task distribution executor 204 simultaneously executes the application tasks in the execution node.

도 2는 본 개시의 일 실시예에 따른, 워크플로우 저작기의 동작 절차를 도시한 도면이다. 본 발명은 워크플로우 저작기(105)에 의하여 수행된다. 2 is a diagram illustrating an operating procedure of a workflow authoring machine according to an embodiment of the present disclosure. The invention is performed by the workflow author 105 .

도 2를 참조하면, 먼저, 워크플로우에서 처리할 데이터들을 추가한다(S310). Referring to FIG. 2 , first, data to be processed in the workflow is added (S310).

추가된 데이터를 워크플로우의 시작 구성요소에 연결한다(S320). The added data is connected to the start component of the workflow (S320).

추가할 데이터가 있는지 확인한다(S330). It is checked whether there is data to be added (S330).

추가할 데이터가 있으면(S320), 필요한 데이터를 반복적으로 추가한다(S310). If there is data to be added (S320), necessary data is repeatedly added (S310).

추가할 데이터가 없으면(S320), 데이터를 처리할 응용 작업을 추가한다(S340).If there is no data to be added (S320), an application to process the data is added (S340).

추가한 응용 작업을 입력 데이터와 연결한다(S350). The added application task is connected with the input data (S350).

응용 작업의 설정값을 변경한다(S360). The setting value of the application task is changed (S360).

구체적으로, 응용 작업은 특성에 따라 다양한 파라메터를 입력하고, 또는 실행 노드 검색기(104)를 통해 실행 노드를 선택하여 응용 작업의 설정 값을 변경한다. Specifically, various parameters are input according to characteristics of the application task, or a setting value of the application task is changed by selecting an execution node through the execution node searcher 104 .

응용 작업의 출력을 설정한다(S370). The output of the application task is set (S370).

구체적으로, 응용 작업은 처리된 출력 결과를 입력 데이터처럼 다양한 형태의 데이터 저장소에 저장할 수 있으므로, 이 출력에 대한 데이터 저장소 연결 정보를 설정한다. Specifically, since the application task can store the processed output result in various types of data storage like input data, data storage connection information for this output is set.

응용 작업의 출력과 연결할 응용 작업이 있는지 확인한다(S380).It is checked whether there is an application job to be connected with the output of the application job (S380).

출력과 연결할 응용 작업이 있으면(S380), 응용 작업을 추가한다(S340). If there is an application to be connected with the output (S380), the application is added (S340).

출력과 연결할 응용 작업이 없으면(S380), 종료한다. If there is no application task to be connected with the output (S380), it ends.

본 발명에 따르면, 출력과 연결할 응용 작업이 있으면, 반복적으로 응용 작업을 추가할 수 있다. According to the present invention, if there is an application task to be connected with an output, the application task can be repeatedly added.

도 3은 본 개시의 일 실시 예에 따른, 워크플로우 저작의 실시 예를 도시한 도면이다.3 is a diagram illustrating an embodiment of authoring a workflow according to an embodiment of the present disclosure.

도 3을 참조하면, 워크플로우는 다음의 일곱 가지 연결 규칙에 따라 구성요소를 연결할 수 있다. Referring to FIG. 3 , the workflow may connect components according to the following seven connection rules.

첫째, 시작 구성요소(401)는 데이터 구성요소(402)와 연결된다. First, the start component 401 is connected to the data component 402 .

둘째, 데이터 구성요소(402)는 응용 작업 구성요소(403)와 연결되어, 응용 작업의 입력 데이터로 사용된다. Second, the data component 402 is connected to the application task component 403 and used as input data for the application task.

셋째, 각 응용 작업(403)의 구성요소는 실행 노드 검색기(104)를 통해 실행 노드를 선택한다. Third, the component of each application task 403 selects an execution node through the execution node searcher 104.

넷째, 응용 작업 구성요소(403)는 출력 구성요소(404)와 연결된다. Fourth, the application task component 403 is connected to the output component 404 .

다섯째, 출력 구성요소(404)는 다른 응용 작업 구성요소(405) 또는 종단 구성요소(406)와 연결된다. Fifth, the output component 404 is connected to other application task components 405 or end components 406 .

여섯째, 각 구성요소의 모든 입력점(407)은 반드시 다른 구성요소와 연결된다. Sixth, all input points 407 of each component are necessarily connected to other components.

일곱째, 출력 구성요소의 출력점(408)은 연결되지 않을 수 있다. Seventh, the output point 408 of the output component may not be connected.

응용 작업 분산 실행기(204)는 워크플로우의 시작 구성요소부터 종단 구성요소까지 응용 작업을 분산된 실행 노드에서 순차적으로 실행한다. 이때, 모든 응용 작업은 입력으로 사용할 데이터 구성요소 또는 출력 구성요소가 정상적으로 사용가능한 상태에서 실행된다. The application task distribution executor 204 sequentially executes application tasks from a start component to an end component of a workflow in distributed execution nodes. At this time, all application tasks are executed in a state where data elements to be used as inputs or output elements are normally available.

예를 들어, 이전의 응용 작업(403)의 출력 컴포넌트가 이후의 응용 작업(405)의 입력으로 사용된다면, 이전의 응용 작업이(403)이 실행 완료 상태에 도달해야 이후의 응용 작업(405)이 실행된다. For example, if an output component of a previous application task 403 is used as an input of a subsequent application task 405, the previous application task 403 must reach an execution completion state before the subsequent application task 405 this is executed

도 4는 본 개시의 일 실시 예에 따른, 워크플로우 분산 실행 모델의 실시 예를 도시한 도면이다.4 is a diagram illustrating an embodiment of a workflow distributed execution model according to an embodiment of the present disclosure.

먼저, 워크플로우 개발자는 워크플로우 저작 모델(100)을 통해 생성한 워크플로우를 워크플로우 분산 실행 모델(200)로 전달한다(501). First, the workflow developer transfers the workflow created through the workflow authoring model 100 to the workflow distributed execution model 200 (501).

워크플로우 분산 실행 모델(200)은 워크플로우 설정기(201)를 통해 워크플로우의 설정 값을 검토하고, 실행 노드 검증기(202)를 통해 각 실행 응용들이 동작할 실행 노드(504)들의 접근 가능 여부를 확인한다. The workflow distributed execution model 200 reviews the set values of the workflow through the workflow setter 201, and through the execution node verifier 202, whether or not the execution nodes 504 where each execution application will operate are accessible. Check the

응용 작업 분산 배포기(203)는 워크플로우에 속한 실행 응용들을 실행 응용 저장기(503)로부터 각 실행 노드에 배포한다. The application task distribution distributor 203 distributes the execution applications belonging to the workflow from the execution application storage 503 to each execution node.

실행 응용(505)이 동작하는 과정에 입력 데이터가 필요한 경우 데이터 저장기(502)로부터 실제 데이터(506)를 실행 노드로 다운로드 받아 처리한다. When the execution application 505 needs input data during operation, the actual data 506 is downloaded from the data storage 502 to the execution node and processed.

실행 응용에서 출력 결과(507)가 발생하면, 이를 데이터 저장기(502)에 저장하여, 이후 다른 실행 응용 또는 워크플로우의 최종 결과로 활용한다. When an output result 507 is generated from an executing application, it is stored in the data storage 502 and then used as a final result of another executing application or workflow.

워크플로우 분산 실행 모델(200)을 통해 워크플로우의 실행 응용들을 분산된 다수의 서버에서 병렬적으로 처리할 수 있다.Through the workflow distributed execution model 200, execution applications of a workflow can be processed in parallel on a plurality of distributed servers.

도 5는 본 개시의 일 실시 예에 따른, 응용 작업 분산 실행기의 동작 절차를 도시한 도면이다. 본 발명은 응용 작업 분산 실행기(204)에 의하여 수행된다. 5 is a diagram illustrating an operating procedure of an application task distribution executor according to an embodiment of the present disclosure. The invention is performed by the application task distributed executor 204 .

먼저, 워크플로우에 포함된 응용 작업들을 순회하며 응용 작업 큐에 이들을 기록한다(S510). First, the application tasks included in the workflow are traversed and recorded in the application task queue (S510).

응용 작업 큐에서 적어도 하나의 응용 작업을 리딩한다(S520).At least one application task is read from the application task queue (S520).

응용 작업이 실행 가능한 상태인지 확인한다(S530). It is checked whether the application task is in an executable state (S530).

응용 작업이 실행 가능한 상태가 아니면(S530), 이를 다시 응용 작업 큐에 응용 작업을 기록한다(S540).If the application task is not in a runnable state (S530), it records the application task in the application task queue again (S540).

응용 작업이 실행 가능한 상태이면(S530), 실행 노드에서 응용 작업을 시작한다(S550). If the application is in an executable state (S530), the application starts in the execution node (S550).

실행 가능하다면 응용 작업에 설정된 실행 노드에서 이를 실행 요청한다. If it can be executed, it is requested to be executed in the execution node set in the application task.

응용 작업 큐에 응용 작업이 존재하는지 확인한다(S560).It is checked whether an application job exists in the application job queue (S560).

응용 작업 큐에 응용 작업이 있다면(S560), 응용 작업 큐에서 적어도 하나의 응용 작업을 리딩한다(S520). If there is an application task in the application task queue (S560), at least one application task is read from the application task queue (S520).

응용 작업 큐에 응용 작업이 없으면(S560), 종료한다. If there is no application task in the application task queue (S560), it ends.

도 6은 본 개시의 일 실시 예에 따른, 분석 워크플로우 방법의 순서도를 도시한 도면이다. 본 발명은 분산 워크플로우 장치에 의하여 수행된다. 6 is a flowchart illustrating an analysis workflow method according to an embodiment of the present disclosure. The present invention is carried out by means of a distributed workflow device.

데이터를 검색한다(S610).Data is retrieved (S610).

검색된 상기 데이터에 대응하는 응용 작업을 검색한다(S620).An application job corresponding to the searched data is searched (S620).

검색된 상기 응용 작업에 대응하는 워크플로우를 검색한다(S630).A workflow corresponding to the searched application task is searched (S630).

검색된 상기 워크플로우에 포함된 응용 작업들이 동작하는 실행 노드를 검색한다(S640).Execution nodes in which application tasks included in the searched workflow operate are searched (S640).

검색된 실행 노드를 기초로 상기 데이터와 상기 응용 작업을 사용하여 워크플로우를 생성한다(S650).Based on the searched execution node, a workflow is created using the data and the application task (S650).

도 7은 본 개시의 일 실시 예에 따른, 분석 워크플로우 장치의 구성도를 도시한 도면이다.7 is a diagram illustrating a configuration of an analysis workflow device according to an embodiment of the present disclosure.

도 7을 참조하면, 분석 워크플로우 장치는 디바이스(1600)를 포함한다. 디바이스(1600)는 메모리(1602), 프로세서(1603), 송수신부(1604) 및 주변 장치(1601)를 포함할 수 있다. 또한, 일 예로, 디바이스(1600)는 다른 구성을 더 포함할 수 있으며, 상술한 실시 예로 한정되지 않는다. 이때, 일 예로, 디바이스는 상술한 분석 워크플로우 장치에 기초하여 동작하는 장치일 수 있다. Referring to FIG. 7 , the analysis workflow apparatus includes a device 1600 . The device 1600 may include a memory 1602 , a processor 1603 , a transceiver 1604 , and a peripheral device 1601 . Also, as an example, the device 1600 may further include other configurations, and is not limited to the above-described embodiment. In this case, as an example, the device may be a device that operates based on the above-described analysis workflow device.

보다 상세하게는, 도 7의 디바이스(1600)는 분석 워크플로우 장치와 예시적인 하드웨어/소프트웨어 아키텍처일 수 있다. 이때, 일 예로, 메모리(1602)는 비이동식 메모리 또는 이동식 메모리일 수 있다. 또한, 일 예로, 주변 장치(1601)는 디스플레이, GPS 또는 다른 주변기기들을 포함할 수 있으며, 상술한 실시예로 한정되지 않는다. More specifically, the device 1600 of FIG. 7 may be an analytical workflow apparatus and an exemplary hardware/software architecture. At this time, for example, the memory 1602 may be a non-removable memory or a removable memory. Also, as an example, the peripheral device 1601 may include a display, GPS, or other peripheral devices, and is not limited to the above-described embodiment.

또한, 일 예로, 상술한 디바이스(1600)는 상기 송수신부(1604)와 같이 통신 회로를 포함할 수 있으며, 이에 기초하여 외부 디바이스와 통신을 수행할 수 있다.Also, as an example, the above-described device 1600 may include a communication circuit like the transceiver 1604, and based on this, communication with an external device may be performed.

또한, 일 예로, 프로세서(1603)는 범용 프로세서, DSP(digital signal processor), DSP 코어, 제어기, 마이크로제어기, ASIC들(Application Specific Integrated Circuits), FPGA(Field Programmable Gate Array) 회로들, 임의의 다른 유형의 IC(integrated circuit) 및 상태 머신과 관련되는 하나 이상의 마이크로프로세서 중 적어도 하나 이상일 수 있다. 즉, 상술한 디바이스(1600)를 제어하기 위한 제어 역할을 수행하는 하드웨어적/소프트웨어적 구성일 수 있다. Also, as an example, the processor 1603 may include a general purpose processor, a digital signal processor (DSP), a DSP core, a controller, a microcontroller, application specific integrated circuits (ASICs), field programmable gate array (FPGA) circuits, any other It may be at least one or more of a tangible integrated circuit (IC) and one or more microprocessors associated with a state machine. That is, it may be a hardware/software configuration that performs a control role for controlling the device 1600 described above.

이때, 프로세서(1603)는 분석 워크플로우 장치의 다양한 필수 기능들을 수행하기 위해 메모리(1602)에 저장된 컴퓨터 실행가능한 명령어들을 실행할 수 있다. 일 예로, 프로세서(1603)는 신호 코딩, 데이터 처리, 전력 제어, 입출력 처리 및 통신 동작 중 적어도 어느 하나를 제어할 수 있다. 또한, 프로세서(1603)는 물리 계층, MAC 계층, 어플리케이션 계층들을 제어할 수 있다. 또한, 일 예로, 프로세서(1603)는 액세스 계층 및/또는 어플리케이션 계층 등에서 인증 및 보안 절차를 수행할 수 있으며, 상술한 실시예로 한정되지 않는다.At this time, the processor 1603 may execute computer executable instructions stored in the memory 1602 to perform various essential functions of the analytical workflow device. For example, the processor 1603 may control at least one of signal coding, data processing, power control, input/output processing, and communication operations. Also, the processor 1603 may control a physical layer, a MAC layer, and an application layer. Also, as an example, the processor 1603 may perform authentication and security procedures in an access layer and/or an application layer, and is not limited to the above-described embodiment.

일 예로, 프로세서(1603)는 송수신부(1604)를 통해 다른 장치들과 통신을 수행할 수 있다. 일 예로, 프로세서(1603)는 컴퓨터 실행가능한 명령어들의 실행을 분석 워크플로우 장치가 네트워크를 통해 외부 장치들과 통신을 수행하게 제어할 수 있다. 즉, 본 발명에서 수행되는 통신이 제어될 수 있다. 일 예로, 송수신부(1604)는 안테나를 통해 RF 신호를 전송할 수 있으며, 다양한 통신망에 기초하여 신호를 전송할 수 있다. For example, the processor 1603 may communicate with other devices through the transceiver 1604 . For example, the processor 1603 may control the execution of computer executable instructions so that the analysis workflow device communicates with external devices through a network. That is, the communication performed in the present invention can be controlled. For example, the transceiver 1604 may transmit an RF signal through an antenna and may transmit the signal based on various communication networks.

또한, 일 예로, 안테나 기술로서 MIMO 기술, 빔포밍 등이 적용될 수 있으며, 상술한 실시예로 한정되지 않는다. 또한, 송수신부(1604)를 통해 송수신한 신호는 변조 및 복조되어 프로세서(1603)에 의해 제어될 수 있으며, 상술한 실시 예로 한정되지 않는다.In addition, as an example, MIMO technology, beamforming, etc. may be applied as an antenna technology, and is not limited to the above-described embodiment. In addition, the signal transmitted and received through the transceiver 1604 may be modulated and demodulated and controlled by the processor 1603, and is not limited to the above-described embodiment.

본 개시의 다양한 실시 예는 모든 가능한 조합을 나열한 것이 아니고 본 개시의 대표적인 양상을 설명하기 위한 것이며, 다양한 실시 예에서 설명하는 사항들은 독립적으로 적용되거나 또는 둘 이상의 조합으로 적용될 수도 있다. Various embodiments of the present disclosure are intended to explain representative aspects of the present disclosure, rather than listing all possible combinations, and matters described in various embodiments may be applied independently or in combination of two or more.

또한, 본 개시의 다양한 실시 예는 하드웨어, 펌웨어(firmware), 소프트웨어, 또는 그들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 범용 프로세서(general processor), 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다. 예를 들어, 종단 혹은 에지에서 사용될 수 있는 비 일시적 컴퓨터 판독가능한 매체에 저장된 프로그램의 형식이나, 에지 혹은 클라우드에서 사용될 수 있는 비 일시적 컴퓨터 판독 가능한 매체에 저장된 프로그램의 형식으로도 구현될 수 있음은 자명하다. 또한, 다양한 하드웨어 및 소프트웨어의 결합으로도 구현될 수 있다. In addition, various embodiments of the present disclosure may be implemented by hardware, firmware, software, or a combination thereof. For hardware implementation, one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), It may be implemented by a processor (general processor), controller, microcontroller, microprocessor, or the like. For example, it is obvious that it can be implemented in the form of a program stored in a non-transitory computer readable medium that can be used at the edge or edge, or in the form of a program stored in a non-transitory computer readable medium that can be used at the edge or in the cloud. do. In addition, it may be implemented with a combination of various hardware and software.

본 개시의 범위는 다양한 실시 예의 방법에 따른 동작이 장치 또는 컴퓨터 상에서 실행되도록 하는 소프트웨어 또는 머신-실행 가능한 명령들(예를 들어, 운영체제, 애플리케이션, 펌웨어(firmware), 프로그램 등), 및 이러한 소프트웨어 또는 명령 등이 저장되어 장치 또는 컴퓨터 상에서 실행 가능한 비-일시적 컴퓨터-판독가능 매체(non-transitory computer-readable medium)를 포함한다. The scope of the present disclosure is software or machine-executable instructions (eg, operating systems, applications, firmware, programs, etc.) that cause operations according to methods of various embodiments to be executed on a device or computer, and such software or It includes a non-transitory computer-readable medium in which instructions and the like are stored and executable on a device or computer.

이상에서 설명한 본 개시는, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 개시의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로, 본 개시의 범위는 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.Since the present disclosure described above is capable of various substitutions, modifications, and changes without departing from the technical spirit of the present disclosure to those skilled in the art, the scope of the present disclosure is limited to the foregoing. It is not limited by one embodiment and accompanying drawings.

Claims (20)

분산 워크플로우 방법에서,
데이터를 검색하는 단계;
검색된 상기 데이터에 대응하는 응용 작업을 검색하는 단계;
검색된 상기 응용 작업에 대응하는 워크플로우를 검색하는 단계;
검색된 상기 워크플로우에 포함된 응용 작업들이 동작하는 실행 노드를 검색하는 단계; 및
검색된 실행 노드를 기초로 상기 데이터와 상기 응용 작업을 사용하여 워크플로우를 생성하는 단계를 포함하는,
분산 워크플로우 방법.
In a distributed workflow method,
retrieving data;
searching for an application job corresponding to the searched data;
searching for a workflow corresponding to the searched application task;
searching for execution nodes in which application tasks included in the searched workflow operate; and
Generating a workflow using the data and the application task based on the found execution node.
Distributed workflow method.
제 1 항에 있어서,
데이터를 추가하는 단계;
추가된 상기 데이터를 워크플로우의 시작 구성요소에 연결하는 단계;
상기 데이터를 처리할 응용 작업을 추가하는 단계;
추가된 상기 응용 작업을 입력 데이터와 연결하는 단계;
상기 응용 작업의 설정값을 변경하는 단계;
상기 응용 작업의 출력을 설정하는 단계; 및
상기 응용 작업의 출력과 연결할 응용 작업이 있으면, 응용 작업을 추가하여 워크플로우를 생성하는 단계를 더 포함하는,
분산 워크플로우 방법.
According to claim 1,
adding data;
connecting the added data to the start component of the workflow;
adding an application task to process the data;
connecting the added application task with input data;
changing a set value of the application task;
setting the output of the application task; and
Further comprising the step of creating a workflow by adding an application task if there is an application task to be linked with the output of the application task.
Distributed workflow method.
제 2 항에 있어서,
추가할 데이터가 있으면, 데이터를 추가하는 단계를 더 포함하는,
분산 워크플로우 방법.
According to claim 2,
If there is data to add, further comprising the step of adding data,
Distributed workflow method.
제 1 항에 있어서,
상기 워크플로우의 시작 구성요소부터 종단 구성요소까지 상기 데이터 및 상기 응용 작업을 연결하여 워크플로우를 생성하는 단계를 더 포함하는,
분산 워크플로우 방법.
According to claim 1,
Further comprising generating a workflow by connecting the data and the application task from the start component to the end component of the workflow.
Distributed workflow method.
제 4 항에 있어서,
상기 워크플로우의 시작 구성요소부터 종단 구성요소까지 상기 데이터 및 상기 응용 작업을 방향 비순환 그래프 형태로 연결하여 워크플로우를 생성하는 단계를 더 포함하는,
분산 워크플로우 방법.
According to claim 4,
Further comprising generating a workflow by connecting the data and the application work in the form of a directed acyclic graph from the start component to the end component of the workflow,
Distributed workflow method.
제 1 항에 있어서,
상기 워크플로우는 소정의 규칙에 따라 구성요소를 서로 연결하는,
분산 워크플로우 방법.
According to claim 1,
The workflow connects components to each other according to predetermined rules,
Distributed workflow method.
제 1 항에 있어서,
워크플로우가 수정된 경우, 수정된 워크플로우를 검증하는 단계; 및
검증 결과 부적합한 경우, 오류를 보고하는 단계를 더 포함하는,
분산 워크플로우 방법.
According to claim 1,
If the workflow is modified, verifying the modified workflow; and
Further comprising reporting an error if the verification result is inappropriate,
Distributed workflow method.
제 1 항에 있어서,
상기 워크플로우의 시작 구성요소부터 종단 구성요소까지 검토하고 응용 작업에 필요한 설정 값을 확인하는 단계;
상기 워크플로우의 응용 작업들이 실행될 실행 노드의 접속 가능 여부 및 실행 가능 여부를 확인하는 단계;
상기 워크플로우의 실행 준비가 완료되면, 상기 워크플로우의 각 응용 작업을 분산된 실행 노드에 배포하는 단계; 및
상기 워크플로우의 시작 구성 요소부터 종단 구성요소까지 상기 응용 작업을 상기 실행 노드에서 실행하는 단계를 더 포함하는,
분산 워크플로우 방법.
According to claim 1,
reviewing from the start component to the end component of the workflow and confirming setting values required for application work;
checking whether an execution node where the application tasks of the workflow are to be executed is accessible and executable;
Distributing each application task of the workflow to distributed execution nodes when preparation for execution of the workflow is completed; and
Further comprising executing the application task at the execution node from the start component to the end component of the workflow.
Distributed workflow method.
제 8 항에 있어서,
상기 워크플로우의 시작 구성 요소부터 종단 구성요소까지 상기 응용 작업을 상기 실행 노드에서 실행하는 단계는
특정 시점에 응용 작업이 복수인 경우, 상기 응용 작업을 상기 실행 노드에서 동시에 실행하는 단계를 더 포함하는,
분산 워크플로우 방법.
According to claim 8,
The step of executing the application task from the start component to the end component of the workflow in the execution node
If there are a plurality of application tasks at a specific time, further comprising the step of simultaneously executing the application tasks in the execution node.
Distributed workflow method.
제 1 항에 있어서,
워크플로우를 순회하며 응용 작업 큐에 기록하는 단계;
상기 응용 작업 큐에서 응용 작업을 리딩하는 단계;
상기 응용 작업이 실행 가능하면, 실행 노드에서 응용 작업을 시작하는 단계;
상기 응용 작업 큐에 상기 응용 작업이 존재하면, 상기 응용 작업 큐에서 상기 응용 작업을 리딩하는 단계를 더 포함하는,
분산 워크플로우 방법.
According to claim 1,
traversing the workflow and recording in the application task queue;
reading an application task from the application task queue;
If the application task is executable, starting the application task in an execution node;
If the application task exists in the application task queue, further comprising the step of reading the application task from the application task queue,
Distributed workflow method.
분산 워크플로우 장치에서,
데이터를 검색하는 데이터 검색기;
검색된 상기 데이터에 대응하는 응용 작업을 검색하는 응용 작업 검색기;
검색된 상기 응용 작업에 대응하는 워크플로우를 검색하는 워크 플로우 검색기;
검색된 상기 워크플로우에 포함된 응용 작업들이 동작하는 실행 노드를 검색하는 실행 노드 검색기; 및
검색된 실행 노드를 기초로 상기 데이터와 상기 응용 작업을 사용하여 워크플로우를 생성하는 워크플로우 저작기를 포함하는,
분산 워크플로우 장치.
In a distributed workflow device,
a data retriever that retrieves data;
an application task searcher for searching an application task corresponding to the retrieved data;
a workflow searcher for searching for a workflow corresponding to the searched application task;
an execution node searcher for searching execution nodes in which application tasks included in the searched workflow operate; and
Including a workflow creator that creates a workflow using the data and the application task based on the found execution node.
Distributed workflow device.
제 11 항에 있어서,
상기 워크플로우 저작기는,
데이터를 추가하고,
추가된 상기 데이터를 워크플로우의 시작 구성요소에 연결하고,
상기 데이터를 처리할 응용 작업을 추가하고,
추가된 상기 응용 작업을 입력 데이터와 연결하고,
상기 응용 작업의 설정값을 변경하고,
상기 응용 작업의 출력을 설정하고,
상기 응용 작업의 출력과 연결할 응용 작업이 있으면, 응용 작업을 추가하여 워크플로우를 생성하는,
분산 워크플로우 장치.
According to claim 11,
The workflow creator,
add data,
connect the added data to the start component of the workflow;
Add an application task to process the data,
Connect the added application task with the input data;
Change the setting value of the application task,
Set the output of the application task,
If there is an application task to be linked with the output of the application task, adding the application task to create a workflow,
Distributed workflow device.
제 12 항에 있어서,
상기 워크플로우 저작기는,
추가할 데이터가 있으면, 데이터를 추가하는,
분산 워크플로우 장치.
According to claim 12,
The workflow creator,
If there is data to add, adding the data,
Distributed workflow device.
제 11 항에 있어서,
상기 워크플로우 저작기는,
상기 워크플로우의 시작 구성요소부터 종단 구성요소까지 상기 데이터 및 상기 응용 작업을 연결하여 워크플로우를 생성하는,
분산 워크플로우 장치.
According to claim 11,
The workflow creator,
Creating a workflow by connecting the data and the application task from the start component of the workflow to the end component,
Distributed workflow device.
제 14 항에 있어서,
워크플로우 저작기는,
상기 워크플로우의 시작 구성요소부터 종단 구성요소까지 상기 데이터 및 상기 응용 작업을 방향 비순환 그래프 형태로 연결하여 워크플로우를 생성하는,
분산 워크플로우 장치.
15. The method of claim 14,
Workflow creator,
Creating a workflow by connecting the data and the application work in the form of a directed acyclic graph from the start component to the end component of the workflow,
Distributed workflow device.
제 11 항에 있어서,
상기 워크플로우는 소정의 규칙에 따라 구성요소를 서로 연결하는,
분산 워크플로우 장치.
According to claim 11,
The workflow connects components to each other according to predetermined rules,
Distributed workflow device.
제 11 항에 있어서,
워크플로우 검증기를 더 포함하고,
상기 워크플로우 검증기는,
워크플로우가 수정된 경우, 수정된 워크플로우를 검증하고,
검증 결과 부적합한 경우, 오류를 보고하는,
분산 워크플로우 장치.
According to claim 11,
further including a workflow validator;
The workflow verifier,
If the workflow has been modified, verify the modified workflow;
If the verification results are inappropriate, reporting errors,
Distributed workflow device.
제 11 항에 있어서,
워크플로우의 시작 구성요소부터 종단 구성요소까지 검토하고 응용 작업에 필요한 설정 값을 확인하는 워크플로우 설정기;
상기 워크플로우의 응용 작업들이 실행될 실행 노드의 접속 가능 여부 및 실행 가능 여부를 확인하는 실행 노드 검증기;
상기 워크플로우의 실행 준비가 완료되면, 상기 워크플로우의 각 응용 작업을 분산된 실행 노드에 배포하는 응용 작업 분산 배포기; 및
상기 워크플로우의 시작 구성 요소부터 종단 구성요소까지 상기 응용 작업을 상기 실행 노드에서 실행하는 응용 작업 분산 실행기를 더 포함하는,
분산 워크플로우 장치.
According to claim 11,
A workflow setter that reviews the start and end components of the workflow and checks the setting values required for application work;
an execution node verifier that checks whether an execution node where the application tasks of the workflow are to be executed is accessible and executable;
When the workflow is ready for execution, an application task distribution distributor distributing each application task of the workflow to distributed execution nodes; and
Further comprising an application task distribution executor for executing the application task in the execution node from the start component to the end component of the workflow,
Distributed workflow device.
제 18 항에 있어서,
상기 응용 작업 분산 실행기는,
특정 시점에 응용 작업이 복수인 경우, 상기 응용 작업을 상기 실행 노드에서 동시에 실행하는,
분산 워크플로우 장치.
According to claim 18,
The application task distribution executor,
When there are a plurality of application tasks at a specific point in time, the application tasks are simultaneously executed on the execution node.
Distributed workflow device.
분산 워크플로우 장치에서,
외부 장치와 데이터를 송수신하는 송수신부;
상기 송수신부를 통하여 데이터를 추가하고,
추가된 상기 데이터를 워크플로우의 시작 구성요소에 연결하고,
상기 데이터를 처리할 응용 작업을 추가하고,
추가된 상기 응용 작업을 입력 데이터와 연결하고,
상기 응용 작업의 설정값을 변경하고,
상기 응용 작업의 출력을 설정하고,
상기 응용 작업의 출력과 연결할 응용 작업이 있으면, 응용 작업을 추가하여 워크플로우를 생성하는 프로세서를 포함하는,
분산 워크플로우 장치.
In a distributed workflow device,
Transmitting and receiving unit for transmitting and receiving data with an external device;
Adding data through the transceiver,
connect the added data to the start component of the workflow;
Add an application task to process the data,
Connect the added application task with the input data;
Change the setting value of the application task,
Set the output of the application task,
Including a processor for creating a workflow by adding an application task if there is an application task to be linked with the output of the application task.
Distributed workflow device.
KR1020220053261A 2021-12-16 2022-04-29 Distributed workflow apparatus for executing and managing application tasks across multiple servers and method thereof KR20230091748A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210181025 2021-12-16
KR20210181025 2021-12-16

Publications (1)

Publication Number Publication Date
KR20230091748A true KR20230091748A (en) 2023-06-23

Family

ID=86993509

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220053261A KR20230091748A (en) 2021-12-16 2022-04-29 Distributed workflow apparatus for executing and managing application tasks across multiple servers and method thereof

Country Status (1)

Country Link
KR (1) KR20230091748A (en)

Similar Documents

Publication Publication Date Title
US20210273972A1 (en) Dynamic Hierarchical Tagging System and Method
US10528585B2 (en) ETL tool interface for remote mainframes
US10866788B2 (en) System and method for automated generation of integration elements modeling process flow for an integration process with a swagger API
CN107003906B (en) Type-to-type analysis of cloud computing technology components
US11163731B1 (en) Autobuild log anomaly detection methods and systems
US10296563B2 (en) Automated testing of perceptible web page elements
CN111580861A (en) Pattern-based artificial intelligence planner for computer environment migration
US11442830B2 (en) Establishing and monitoring programming environments
US11126503B2 (en) Pre-filtering of join execution over multi-column range summaries and other synopses
US11176169B2 (en) Recommending visual and execution templates to enable automation of control and data exploration across systems
US11948005B2 (en) Managed integration of constituent services of multi-service applications
JP7155626B2 (en) Field device commissioning system and field device commissioning method
US11941413B2 (en) Managed control plane service
US20180113686A1 (en) Automatically Determining Data Dependencies to Facilitate Code Execution
US20230229438A1 (en) Kernels as a service
US10554502B1 (en) Scalable web services execution
CN116719735A (en) Test case generation method and device
US11341022B2 (en) Runtime performance introspection
US20090240724A1 (en) Environment definition files for an environment definition system
KR20230091748A (en) Distributed workflow apparatus for executing and managing application tasks across multiple servers and method thereof
CN111078263A (en) Hot deployment method, system, server and storage medium based on Drools rule engine
KR100499815B1 (en) Component sharing and managing system and its method
US20170185684A1 (en) Generation of complementary applicatons
US20220365868A1 (en) System and method for performing end-to-end simulation and testing of an iot application
Mearns Expert GeoServer: Build and secure advanced interfaces and interactive maps