KR20230091748A - 다중 서버에서 응용 작업 실행 및 관리를 위한 분산 워크플로우 장치 및 방법 - Google Patents
다중 서버에서 응용 작업 실행 및 관리를 위한 분산 워크플로우 장치 및 방법 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000009826 distribution Methods 0.000 claims description 21
- 238000012795 verification Methods 0.000 claims description 5
- 238000002360 preparation method Methods 0.000 claims description 4
- 238000012552 review Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000003860 storage Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 238000011017 operating method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 238000006467 substitution reaction 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- 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/34—Graphical or visual programming
-
- 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/465—Distributed object oriented systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Educational Administration (AREA)
- Development Economics (AREA)
- Game Theory and Decision Science (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
본 개시는 분산 워크플로우 장치 및 방법에 관한 것으로, 데이터를 검색하고, 검색된 상기 데이터에 대응하는 응용 작업을 검색하고, 검색된 상기 응용 작업에 대응하는 워크플로우를 검색하고, 검색된 상기 워크플로우에 포함된 응용 작업들이 동작하는 실행 노드를 검색하고, 검색된 실행 노드를 기초로 상기 데이터와 상기 응용 작업을 사용하여 워크플로우를 생성하는 것을 요지로 한다.
Description
본 개시는 분산 워크플로우 장치 및 방법에 대한 것으로서, 구체적으로, 다중 서버에서 응용 작업 실행 및 관리를 위한 분산 워크플로우 장치 및 방법에 대한 기술이다.
최근, 공공행정, 문화관광, 산업고용 등 공공 분야와 통신, 유통, 제조 등 민간 분야에서 데이터가 폭발적으로 발생함에 따라, 이러한 데이터를 활용하여 유의미한 가치를 창출하기 위한 노력이 요구된다. 예를 들어, 데이터 소스에서 발생된 원본 데이터를 수집 및 저장한 상태에서는 데이터 내적으로 자료형, 스키마 구조부터 데이터 외적으로 파일 유형까지 데이터마다 크게 상이하다.
이러한 원본 데이터는 기 개발된 응용 작업의 입력 데이터로 바로 사용될 수 없으며, 일반적으로 데이터를 가공 및 정제하는 등의 다수의 응용 작업들을 거쳐 새로운 데이터를 생성하여 목표한 응용 작업에 적용한다. 즉, 데이터로부터 서비스 목적에 적합한 결과까지 도달하는데 다수의 응용 작업을 거친다.
워크플로우는 하나 이상의 데이터와 하나 이상의 응용 작업을 조건에 따라 방향 비순환 그래프(Directed acyclic graph, 이하 DAG) 형태로 연결하고, 순차적으로 작업을 수행하는 일련의 처리 계획이다. 이러한 의미에서 워크플로우는 배치 잡 파이프라인 도구들과 유사하다. 이들의 공통된 목적은 다수의 응용 작업의 실행 계획을 세우고, 실행 엔진에서 순차 처리하는 것이다. 대표적인 워크플로우 또는 파이프라인의 종래 기술에는 Oozie, Azkaban, Prefect, Airflow, Luigi, Argo, Kubeflow, MLflow 등이 있다.
Oozie와 Azkaban은 Hadoop의 잡들을 실행 및 관리하기 위한 워크플로우 스케줄러이다. Prefect, Airflow, Luigi는 Python 언어로 작성된 워크플로우를 실행하고 모니터링한다. Argo와 Kubeflow는 쿠버네티스 상에서 컨테이너 기반 병렬 잡을 실행 및 관리한다. 또한, Kubeflow는 MLflow와 유사하게 기계학습 라이프사이클을 관리하는데 초점을 둔다.
종래 워크플로우 기술들은 지속적으로 발전하고 많은 기업이 활용하는 매우 중요한 기술이지만 많은 제약을 가지고 있다.
첫째, 일부 기술은 특정 기술 또는 시스템에 종속된다. 예를 들어, Oozie, Azkaban은 Hadoop 또는 그 연관 기술 상에서 잡을 생성하고 실행해야 한다.
둘째, 사용자가 워크플로우를 모델링하기에 복잡하고 어려움이 있다. Perfect, Airflow, Luigi는 Python 언어로 워크플로우를 모델링하고, Argo, Kubeflow는 쿠버네티스에서 워크플로우를 실행할 수 있도록 DAG 명세를 YAML 파일 형태로 정의한다. 또한, 대부분의 종래 기술들은 워크플로우를 저작하기 위한 도구가 없거나 실행 상태만을 모니터링하여 일반 사용자는 사용하기 어렵다. 셋째, 일부 종래 기술은 특수한 목적을 가진다. Kubeflow와 MLflow는 기계학습 라이프사이클의 워크플로우를 관리하므로 일반화된 목적으로는 사용에 제약이 있으므로 사용자가 불편함을 느끼는 문제점이 있었다.
본 개시의 목적은 컨테이너 형태로 개발된 다양한 응용 작업들과 각 응용 작업의 입출력을 DAG 형태로 쉽게 저작할 수 있는 워크플로우 저작 도구와 이러한 워크플로우의 구성 요소를 다중 서버에서 분산 배치 및 실행하는 방법을 그 목적으로 한다.
본 개시의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 개시의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 개시의 목적 및 장점들은 특허청구범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
본 개시의 일 실시예에 따른, 분산 워크플로우 방법은, 데이터를 검색하는 단계; 검색된 상기 데이터에 대응하는 응용 작업을 검색하는 단계; 검색된 상기 응용 작업에 대응하는 워크플로우를 검색하는 단계; 검색된 상기 워크플로우에 포함된 응용 작업들이 동작하는 실행 노드를 검색하는 단계; 및 검색된 실행 노드를 기초로 상기 데이터와 상기 응용 작업을 사용하여 워크플로우를 생성하는 단계를 포함한다.
본 개시의 일 실시예에 따른, 분산 워크플로우 방법은, 데이터를 추가하는 단계; 추가된 상기 데이터를 워크플로우의 시작 구성요소에 연결하는 단계; 상기 데이터를 처리할 응용 작업을 추가하는 단계; 추가된 상기 응용 작업을 입력 데이터와 연결하는 단계; 상기 응용 작업의 설정값을 변경하는 단계; 상기 응용 작업의 출력을 설정하는 단계; 및 상기 응용 작업의 출력과 연결할 응용 작업이 있으면, 응용 작업을 추가하여 워크플로우를 생성한다.
본 개시의 일 실시예에 따른, 분산 워크플로우 방법은, 추가할 데이터가 있으면, 데이터를 추가하는 단계를 더 포함한다.
본 개시의 일 실시예에 따른, 분산 워크플로우 방법은, 상기 워크플로우의 시작 구성요소부터 종단 구성요소까지 상기 데이터 및 상기 응용 작업을 연결하여 워크플로우를 생성하는 단계를 더 포함한다.
본 개시의 일 실시예에 따른, 분산 워크플로우 방법은, 상기 워크플로우의 시작 구성요소부터 종단 구성요소까지 상기 데이터 및 상기 응용 작업을 DAG 형태로 연결하여 워크플로우를 생성하는 단계를 더 포함한다.
본 개시의 일 실시예에 따른, 분산 워크플로우 방법은, 상기 워크플로우는 소정의 규칙에 따라 구성요소를 서로 연결한다.
본 개시의 일 실시예에 따른, 분산 워크플로우 방법은, 워크플로우가 수정된 경우, 수정된 워크플로우를 검증하는 단계; 및 검증 결과 부적합한 경우, 오류를 보고하는 단계를 더 포함한다.
본 개시의 일 실시예에 따른, 분산 워크플로우 방법은, 상기 워크플로우의 시작 구성요소부터 종단 구성요소까지 검토하고 응용 작업에 필요한 설정 값을 확인하는 단계; 상기 워크플로우의 응용 작업들이 실행될 실행 노드의 접속 가능 여부 및 실행 가능 여부를 확인하는 단계; 상기 워크플로우의 실행 준비가 완료되면, 상기 워크플로우의 각 응용 작업을 분산된 실행 노드에 배포하는 단계; 및 상기 워크플로우의 시작 구성 요소부터 종단 구성요소까지 상기 응용 작업을 상기 실행 노드에서 실행하는 단계를 더 포함한다.
본 개시의 일 실시예에 따른, 분산 워크플로우 방법은, 상기 워크플로우의 시작 구성 요소부터 종단 구성요소까지 상기 응용 작업을 상기 실행 노드에서 실행하는 단계는 특정 시점에 응용 작업이 복수인 경우, 상기 응용 작업을 상기 실행 노드에서 동시에 실행하는 단계를 더 포함한다.
본 개시의 일 실시예에 따른, 분산 워크플로우 방법은, 워크플로우를 순회하며 응용 작업 큐에 기록하는 단계; 상기 응용 작업 큐에서 응용 작업을 리딩하는 단계; 상기 응용 작업이 실행 가능하면, 실행 노드에서 응용 작업을 시작하는 단계; 상기 응용 작업 큐에 상기 응용 작업이 존재하면, 상기 응용 작업 큐에서 상기 응용 작업을 리딩하는 단계를 더 포함한다.
본 개시의 일 실시예에 따른, 분산 워크플로우 장치는, 데이터를 검색하는 데이터 검색기; 검색된 상기 데이터에 대응하는 응용 작업을 검색하는 응용 작업 검색기; 검색된 상기 응용 작업에 대응하는 워크플로우를 검색하는 워크 플로우 검색기; 검색된 상기 워크플로우에 포함된 응용 작업들이 동작하는 실행 노드를 검색하는 실행 노드 검색기; 및 검색된 실행 노드를 기초로 상기 데이터와 상기 응용 작업을 사용하여 워크플로우를 생성하는 워크플로우 저작기를 포함한다.
본 개시의 일 실시예에 따른, 분산 워크플로우 장치는, 상기 워크플로우 저작기는, 데이터를 추가하고, 추가된 상기 데이터를 워크플로우의 시작 구성요소에 연결하고, 상기 데이터를 처리할 응용 작업을 추가하고, 추가된 상기 응용 작업을 입력 데이터와 연결하고, 상기 응용 작업의 설정값을 변경하고, 상기 응용 작업의 출력을 설정하고, 상기 응용 작업의 출력과 연결할 응용 작업이 있으면, 응용 작업을 추가하여 워크플로우를 생성한다.
본 개시의 일 실시예에 따른, 분산 워크플로우 장치는, 상기 워크플로우 저작기는, 추가할 데이터가 있으면, 데이터를 추가한다.
본 개시의 일 실시예에 따른, 분산 워크플로우 장치는, 상기 워크플로우 저작기는, 상기 워크플로우의 시작 구성요소부터 종단 구성요소까지 상기 데이터 및 상기 응용 작업을 연결하여 워크플로우를 생성한다.
본 개시의 일 실시예에 따른, 분산 워크플로우 장치는, 워크플로우 저작기는, 상기 워크플로우의 시작 구성요소부터 종단 구성요소까지 상기 데이터 및 상기 응용 작업을 DAG 형태로 연결하여 워크플로우를 생성한다.
본 개시의 일 실시예에 따른, 분산 워크플로우 장치는, 상기 워크플로우는 소정의 규칙에 따라 구성요소를 서로 연결한다.
본 개시의 일 실시예에 따른, 분산 워크플로우 장치는, 워크플로우 검증기를 더 포함하고, 상기 워크플로우 검증기는, 워크플로우가 수정된 경우, 수정된 워크플로우를 검증하고, 검증 결과 부적합한 경우, 오류를 보고한다.
본 개시의 일 실시예에 따른, 분산 워크플로우 장치는, 워크플로우의 시작 구성요소부터 종단 구성요소까지 검토하고 응용 작업에 필요한 설정 값을 확인하는 워크플로우 설정기; 상기 워크플로우의 응용 작업들이 실행될 실행 노드의 접속 가능 여부 및 실행 가능 여부를 확인하는 실행 노드 검증기; 상기 워크플로우의 실행 준비가 완료되면, 상기 워크플로우의 각 응용 작업을 분산된 실행 노드에 배포하는 응용 작업 분산 배포기; 및 상기 워크플로우의 시작 구성 요소부터 종단 구성요소까지 상기 응용 작업을 상기 실행 노드에서 실행하는 응용 작업 분산 실행기를 더 포함한다.
본 개시의 일 실시예에 따른, 분산 워크플로우 장치는, 상기 응용 작업 분산 실행기는, 특정 시점에 응용 작업이 복수인 경우, 상기 응용 작업을 상기 실행 노드에서 동시에 실행한다.
본 개시의 일 실시예에 따른, 분산 워크플로우 장치는, 외부 장치와 데이터를 송수신하는 송수신부; 상기 송수신부를 통하여 데이터를 추가하고, 추가된 상기 데이터를 워크플로우의 시작 구성요소에 연결하고, 상기 데이터를 처리할 응용 작업을 추가하고, 추가된 상기 응용 작업을 입력 데이터와 연결하고, 상기 응용 작업의 설정값을 변경하고, 상기 응용 작업의 출력을 설정하고, 상기 응용 작업의 출력과 연결할 응용 작업이 있으면, 응용 작업을 추가하여 워크플로우를 생성하는 프로세서를 포함한다.
본 개시의 일 실시 예에 따르면, 특정 기술 또는 시스템에 종속되지 않게 격리된 환경에서 응용 작업이 실행될 수 있도록 컨테이너 형태로 개발된 다수의 응용 작업을 연결하여 워크플로우를 저작할 수 있는 환경을 제공하고, 이 워크플로우를 다수의 서버로 구성된 분산 클러스터에서 실행할 수 있는 워크플로우 분산 실행 방법을 제공할 수 있다.
본 개시의 일 실시 예에 따르면, 일반 사용자가 다양한 분야의 데이터를 가공, 처리, 분석, 저장하기 위한 워크플로우를 쉽게 생성하고 분산 클러스터의 자원을 효율적으로 사용하여 워크플로우를 실행할 수 있으므로 사용자 편의성을 향상시킬 수 있다.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시의 일 실시예에 따른, 전체 시스템의 구성 요소를 도시한 도면이다.
도 2는 본 개시의 일 실시예에 따른, 워크플로우 저작기의 동작 절차를 도시한 도면이다.
도 3은 본 개시의 일 실시 예에 따른, 워크플로우 저작의 실시 예를 도시한 도면이다.
도 4는 본 개시의 일 실시 예에 따른, 워크플로우 분산 실행 모델의 실시 예를 도시한 도면이다.
도 5는 본 개시의 일 실시 예에 따른, 응용 작업 분산 실행기의 동작 절차를 도시한 도면이다.
도 6은 본 개시의 일 실시 예에 따른, 분석 워크플로우 방법의 순서도를 도시한 도면이다.
도 7은 본 개시의 일 실시 예에 따른, 분석 워크플로우 장치의 구성도를 도시한 도면이다.
도 2는 본 개시의 일 실시예에 따른, 워크플로우 저작기의 동작 절차를 도시한 도면이다.
도 3은 본 개시의 일 실시 예에 따른, 워크플로우 저작의 실시 예를 도시한 도면이다.
도 4는 본 개시의 일 실시 예에 따른, 워크플로우 분산 실행 모델의 실시 예를 도시한 도면이다.
도 5는 본 개시의 일 실시 예에 따른, 응용 작업 분산 실행기의 동작 절차를 도시한 도면이다.
도 6은 본 개시의 일 실시 예에 따른, 분석 워크플로우 방법의 순서도를 도시한 도면이다.
도 7은 본 개시의 일 실시 예에 따른, 분석 워크플로우 장치의 구성도를 도시한 도면이다.
이하에서는 첨부한 도면을 참고로 하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나, 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.
본 개시의 실시 예를 설명함에 있어서 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그에 대한 상세한 설명은 생략한다. 그리고, 도면에서 본 개시에 대한 설명과 관계없는 부분은 생략하였으며, 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 개시에 있어서, 서로 구별되는 구성요소들은 각각의 특징을 명확하게 설명하기 위함이며, 구성요소들이 반드시 분리되는 것을 의미하지는 않는다. 즉, 복수의 구성요소가 통합되어 하나의 하드웨어 또는 소프트웨어 단위로 이루어질 수도 있고, 하나의 구성요소가 분산되어 복수의 하드웨어 또는 소프트웨어 단위로 이루어질 수도 있다. 따라서, 별도로 언급하지 않더라도 이와 같이 통합된 또는 분산된 실시 예도 본 개시의 범위에 포함된다.
본 개시에 있어서, 다양한 실시 예에서 설명하는 구성요소들이 반드시 필수적인 구성요소들을 의미하는 것은 아니며, 일부는 선택적인 구성요소일 수 있다. 따라서, 일 실시 예에서 설명하는 구성요소들의 부분집합으로 구성되는 실시 예도 본 개시의 범위에 포함된다. 또한, 다양한 실시 예에서 설명하는 구성요소들에 추가적으로 다른 구성요소를 포함하는 실시 예도 본 개시의 범위에 포함된다.
본 개시에 있어서, 제1, 제2 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용되며, 특별히 언급되지 않는 한 구성요소들 간의 순서 또는 중요도 등을 한정하지 않는다. 따라서, 본 개시의 범위 내에서 일 실시 예에서의 제1 구성요소는 다른 실시 예에서 제2 구성요소라고 칭할 수도 있고, 마찬가지로 일 실시예에서의 제2 구성요소를 다른 실시예에서 제1 구성요소라고 칭할 수도 있다.
본 개시의 어떤 구성요소가 다른 구성요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있으나, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 “직접 연결되어” 있다거나, “직접 접속되어” 있다고 언급된 때에는, 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다.
또한, 본 개시에 있어서 본 개시의 실시예를 도시한 일 도면이 다른 도면과 양자 택일의 실시예에 해당하지 않는 한 각 도면에 대한 설명은 서로 다른 도면에 적용될 수 있다.
이하, 도면을 참조하여 본 개시에 대하여 더욱 상세하게 설명할 것이다.
도 1은 본 개시의 일 실시예에 따른, 전체 시스템의 구성 요소를 도시한 도면이다.
도 1을 참조하면, 본 발명의 시스템(1000)은 워크플로우 저작 모델(100)과 워크플로우 분산 실행 모델(200)을 포함한다.
워크플로우 저작 모델(100)의 경우, 워크플로우 개발자가 워크플로우를 저작한다.
워크플로우 분산 실행 모델(200)은 저작이 완료된 워크플로우의 각 응용 작업을 분산된 서버에서 실행한다.
워크플로우 저작 모델(100)은 데이터 검색기(101), 응용 작업 검색기(102), 워크플로우 검색기(103), 실행 노드 검색기(104), 워크플로우 저작기(105), 워크플로우 검증기(106), 워크플로우 관리기(107) 및 워크플로우 저장기(108)를 포함한다.
하나의 워크플로우에는 그 구성요소로 데이터, 응용 작업, 워크플로우를 포함하며, 워크플로우를 저작하기 위해 이들을 찾고 구성요소로 가져올 수 있다.
데이터 검색기(101)는 데이터를 검색하고 다운로드 받을 수 있는 API를 제공하는 데이터 제공처로부터 개발자가 원하는 데이터를 선택하고 읽어 들인다. 여기서, 데이터 제공처는 데이터 포털이 될 수 있다.
응용 작업 검색기(102)는 기 개발된 응용 작업을 선택하고 리딩한다. 여기서 응용 작업은 입력 데이터를 받아 가공, 처리, 분석하여 파일 시스템, RDBMS, 오브젝트 스토리지 등의 데이터 저장소에 저장한다.
응용 작업 개발자는 응용 작업이 시스템에 종속되지 않게 격리된 환경에서 응용 작업 프로세스가 동작할 수 있도록 응용 작업을 컨테이너 이미지로 배포해야 한다.
응용 작업 검색기(102)는 접근 가능한 컨테이너 이미지 저장소에서 응용 작업 이미지를 가져온다. 워크플로우는 다른 워크플로우를 포함할 수 있다.
워크플로우 검색기(103)는 이를 기 개발된 워크플로우를 선택하고 리딩한다.
워크플로우에 포함된 응용 작업들이 이후 분산된 서버에서 컨테이너로 실행될 수 있도록 워크플로우 개발자는 각 응용 작업이 동작할 실행 노드를 선택할 수 있다.
실행 노드의 실시 예로써 분산된 서버로 구성된 쿠버네티스 클러스터를 논리적으로 구분하기 위해 사용되는 쿠버네티스의 네임스페이스를 실행 노드로 사용할 수 있다.
따라서, 본 발명은 기 구축된 실행 노드들의 시스템 자원 상태 등을 조회하고, 이후 워크플로우 저작기(105)에서 각 응용 작업 별 실행 노드를 선택할 수 있도록 실행 노드 검색기(104)를 제공한다.
워크플로우 개발자는 데이터와 응용 작업(이하 워크플로우 포함)을 사용하여 실행 계획인 워크플로우를 저작할 수 있다.
워크플로우 저작기(105)는 웹 기반 그래픽 사용자 인터페이스(GUI) 상에서 워크플로우의 시작 구성요소부터 종단 구성요소까지 데이터 및 응용 작업을 방향 비순환 그래프(Directed acyclic graph, 이하 DAG) 형태로 연결하여 워크플로우를 생성한다.
워크플로우 검증기(106)는 이러한 일곱 가지 연결규칙을 기반으로 개발자가 수정한 워크플로우를 검증하고 부적합한 경우 오류를 보고한다. 일곱 가지 연결규칙은 도 3에서 자세히 설명한다.
워크플로우 관리기(107)는 개발이 완료된 워크플로우 저장기(108)에 기록한다. 이를 통해 워크플로우 개발자는 워크플로우를 추후 단독으로 사용하거나 다른 워크플로우에 포함시킬 수 있도록, 워크플로우의 저장, 수정, 삭제 등 관리 작업을 수행한다.
다음으로, 워크플로우 분산 실행 모델(200)에 대하여 설명한다.
워크플로우 분산 실행 모델(200)은 워크플로우 설정기(201), 실행 노드 검증기(202), 응용 작업 분산 배포기(203), 응용 작업 분산 실행기(204), 실행 응용 작업 관리기(205) 및 실행 응용 작업 저장기(206)를 포함한다.
워크플로우 저작 모델(100)에서 개발된 워크플로우는 워크플로우 분산 실행 모델(200)을 통해 다중 서버에서 분산되어 실행된다.
워크플로우 설정기(201)는 워크플로우의 시작 구성요소부터 종단 구성요소까지 순차적으로 검토하며 응용 작업에 필요한 설정 값을 확인한다.
특히, 워크플로우 설정기(201)는 워크플로우에 속한 응용 작업 구성요소들의 입력점과 출력점에 연결된 데이터 구성요소 또는 출력 구성요소에 정의된 접근 정보를 응용 작업 내에서 사용할 수 있도록 응용 작업 설정 값 중 컨테이너 환경변수에 기록한다.
실행 노드 검증기(202)는 워크플로우의 응용 작업들이 실행될 실행 노드의 접속 가능 여부 및 실행 가능 여부를 확인한다. 이는 앞서 워크플로우 저작 모델의 실행 노드 검색기(104)를 통해 선택된 실행 노드가 실행 시간에 노드 상태 또는 가용자원 상태에 따라 해당 응용 작업이 정상 동작할 수 있는지 확인한다.
워크플로우의 실행 준비가 완료되면, 응용 작업 분산 배포기(203)가 워크플로우의 각 응용 작업을 분산된 실행 노드에 배포한다. 이는 응용 작업이 필요한 컨테이너 이미지를 각 실행 노드에서 사용할 수 있도록 로컬 이미지 저장소로 다운로드 받는다.
응용 작업 분산 실행기(204)는 워크플로우의 시작 구성요소부터 종단 구성요소까지 응용 작업을 분산된 실행 노드에서 순차적으로 실행한다. 이때, 모든 응용 작업은 입력으로 사용할 데이터 구성요소 또는 출력 구성요소가 정상적으로 사용가능한 상태에서 실행된다.
예를 들어, 도 3에 도시한 바와 같이, 이전의 응용 작업(403)의 출력 컴포넌트가 이후의 응용 작업(405)의 입력으로 사용된다면, 이전의 응용 작업이(403)이 실행 완료 상태에 도달해야 이후의 응용 작업(405)이 실행된다.
응용 작업 분산 실행기(204)는 특정 시점에 실행 가능한 응용 작업들이 다수 존재할 경우, 이들을 각 실행 노드에서 동시에 실행하는 병렬 처리 기능을 제공한다.
실행 응용 작업 관리기(205)는 실행 노드에서 실행 중인 응용 작업을 중단 및 모니터링하거나 실행 완료 상태의 응용 작업을 재시작 및 삭제한다.
실행 응용 작업 저장기(206)는 실행 중이거나 기 실행된 응용 작업들을 저장한다.
분산 워크플로우 장치(100)는 데이터 검색기(101), 응용 작업 검색기(102), 워크플로우 검색기(103), 실행 노드 검색기(104) 및 워크플로우 저작기(105)를 포함한다.
데이터 검색기(101)는 데이터를 검색한다.
응용 작업 검색기(102)는 검색된 상기 데이터에 대응하는 응용 작업을 검색한다.
워크 플로우 검색기(103)는 검색된 상기 응용 작업에 대응하는 워크플로우를 검색한다.
실행 노드 검색기(104)는 검색된 상기 워크플로우에 포함된 응용 작업들이 동작하는 실행 노드를 검색한다.
워크플로우 저작기(105)는 검색된 실행 노드를 기초로 상기 데이터와 상기 응용 작업을 사용하여 워크플로우를 생성한다.
워크플로우 저작기(105)는 데이터를 추가하고, 추가된 상기 데이터를 워크플로우의 시작 구성요소에 연결하고, 상기 데이터를 처리할 응용 작업을 추가하고, 추가된 상기 응용 작업을 입력 데이터와 연결하고, 상기 응용 작업의 설정값을 변경하고, 상기 응용 작업의 출력을 설정하고, 상기 응용 작업의 출력과 연결할 응용 작업이 있으면, 응용 작업을 추가하여 워크플로우를 생성한다.
워크플로우 저작기(105)는 추가할 데이터가 있으면, 데이터를 추가한다.
워크플로우 저작기(105)는 상기 워크플로우의 시작 구성요소부터 종단 구성요소까지 상기 데이터 및 상기 응용 작업을 연결하여 워크플로우를 생성한다.
워크플로우 저작기(105)는 상기 워크플로우의 시작 구성요소부터 종단 구성요소까지 상기 데이터 및 상기 응용 작업을 DAG 형태로 연결하여 워크플로우를 생성한다.
여기서, 워크플로우는 소정의 규칙에 따라 구성요소를 서로 연결한다.
워크플로우 검증기(106)는 워크플로우가 수정된 경우, 수정된 워크플로우를 검증하고, 검증 결과 부적합한 경우, 오류를 보고한다.
분산 워크플로우 장치(100)는 워크플로우 설정기(201), 실행 노드 검증기(202), 응용 작업 분산 배포기(203) 및 응용 작업 분산 실행기(204)를 포함한다.
워크플로우 설정기(201)는 워크플로우의 시작 구성요소부터 종단 구성요소까지 검토하고 응용 작업에 필요한 설정 값을 확인한다.
실행 노드 검증기(202)는 워크플로우의 응용 작업들이 실행될 실행 노드의 접속 가능 여부 및 실행 가능 여부를 확인한다.
응용 작업 분산 배포기(203)는 워크플로우의 실행 준비가 완료되면, 상기 워크플로우의 각 응용 작업을 분산된 실행 노드에 배포한다.
응용 작업 분산 실행기(204)는 워크플로우의 시작 구성 요소부터 종단 구성요소까지 상기 응용 작업을 상기 실행 노드에서 실행한다.
응용 작업 분산 실행기(204)는 특정 시점에 응용 작업이 복수인 경우, 상기 응용 작업을 상기 실행 노드에서 동시에 실행한다.
도 2는 본 개시의 일 실시예에 따른, 워크플로우 저작기의 동작 절차를 도시한 도면이다. 본 발명은 워크플로우 저작기(105)에 의하여 수행된다.
도 2를 참조하면, 먼저, 워크플로우에서 처리할 데이터들을 추가한다(S310).
추가된 데이터를 워크플로우의 시작 구성요소에 연결한다(S320).
추가할 데이터가 있는지 확인한다(S330).
추가할 데이터가 있으면(S320), 필요한 데이터를 반복적으로 추가한다(S310).
추가할 데이터가 없으면(S320), 데이터를 처리할 응용 작업을 추가한다(S340).
추가한 응용 작업을 입력 데이터와 연결한다(S350).
응용 작업의 설정값을 변경한다(S360).
구체적으로, 응용 작업은 특성에 따라 다양한 파라메터를 입력하고, 또는 실행 노드 검색기(104)를 통해 실행 노드를 선택하여 응용 작업의 설정 값을 변경한다.
응용 작업의 출력을 설정한다(S370).
구체적으로, 응용 작업은 처리된 출력 결과를 입력 데이터처럼 다양한 형태의 데이터 저장소에 저장할 수 있으므로, 이 출력에 대한 데이터 저장소 연결 정보를 설정한다.
응용 작업의 출력과 연결할 응용 작업이 있는지 확인한다(S380).
출력과 연결할 응용 작업이 있으면(S380), 응용 작업을 추가한다(S340).
출력과 연결할 응용 작업이 없으면(S380), 종료한다.
본 발명에 따르면, 출력과 연결할 응용 작업이 있으면, 반복적으로 응용 작업을 추가할 수 있다.
도 3은 본 개시의 일 실시 예에 따른, 워크플로우 저작의 실시 예를 도시한 도면이다.
도 3을 참조하면, 워크플로우는 다음의 일곱 가지 연결 규칙에 따라 구성요소를 연결할 수 있다.
첫째, 시작 구성요소(401)는 데이터 구성요소(402)와 연결된다.
둘째, 데이터 구성요소(402)는 응용 작업 구성요소(403)와 연결되어, 응용 작업의 입력 데이터로 사용된다.
셋째, 각 응용 작업(403)의 구성요소는 실행 노드 검색기(104)를 통해 실행 노드를 선택한다.
넷째, 응용 작업 구성요소(403)는 출력 구성요소(404)와 연결된다.
다섯째, 출력 구성요소(404)는 다른 응용 작업 구성요소(405) 또는 종단 구성요소(406)와 연결된다.
여섯째, 각 구성요소의 모든 입력점(407)은 반드시 다른 구성요소와 연결된다.
일곱째, 출력 구성요소의 출력점(408)은 연결되지 않을 수 있다.
응용 작업 분산 실행기(204)는 워크플로우의 시작 구성요소부터 종단 구성요소까지 응용 작업을 분산된 실행 노드에서 순차적으로 실행한다. 이때, 모든 응용 작업은 입력으로 사용할 데이터 구성요소 또는 출력 구성요소가 정상적으로 사용가능한 상태에서 실행된다.
예를 들어, 이전의 응용 작업(403)의 출력 컴포넌트가 이후의 응용 작업(405)의 입력으로 사용된다면, 이전의 응용 작업이(403)이 실행 완료 상태에 도달해야 이후의 응용 작업(405)이 실행된다.
도 4는 본 개시의 일 실시 예에 따른, 워크플로우 분산 실행 모델의 실시 예를 도시한 도면이다.
먼저, 워크플로우 개발자는 워크플로우 저작 모델(100)을 통해 생성한 워크플로우를 워크플로우 분산 실행 모델(200)로 전달한다(501).
워크플로우 분산 실행 모델(200)은 워크플로우 설정기(201)를 통해 워크플로우의 설정 값을 검토하고, 실행 노드 검증기(202)를 통해 각 실행 응용들이 동작할 실행 노드(504)들의 접근 가능 여부를 확인한다.
응용 작업 분산 배포기(203)는 워크플로우에 속한 실행 응용들을 실행 응용 저장기(503)로부터 각 실행 노드에 배포한다.
실행 응용(505)이 동작하는 과정에 입력 데이터가 필요한 경우 데이터 저장기(502)로부터 실제 데이터(506)를 실행 노드로 다운로드 받아 처리한다.
실행 응용에서 출력 결과(507)가 발생하면, 이를 데이터 저장기(502)에 저장하여, 이후 다른 실행 응용 또는 워크플로우의 최종 결과로 활용한다.
워크플로우 분산 실행 모델(200)을 통해 워크플로우의 실행 응용들을 분산된 다수의 서버에서 병렬적으로 처리할 수 있다.
도 5는 본 개시의 일 실시 예에 따른, 응용 작업 분산 실행기의 동작 절차를 도시한 도면이다. 본 발명은 응용 작업 분산 실행기(204)에 의하여 수행된다.
먼저, 워크플로우에 포함된 응용 작업들을 순회하며 응용 작업 큐에 이들을 기록한다(S510).
응용 작업 큐에서 적어도 하나의 응용 작업을 리딩한다(S520).
응용 작업이 실행 가능한 상태인지 확인한다(S530).
응용 작업이 실행 가능한 상태가 아니면(S530), 이를 다시 응용 작업 큐에 응용 작업을 기록한다(S540).
응용 작업이 실행 가능한 상태이면(S530), 실행 노드에서 응용 작업을 시작한다(S550).
실행 가능하다면 응용 작업에 설정된 실행 노드에서 이를 실행 요청한다.
응용 작업 큐에 응용 작업이 존재하는지 확인한다(S560).
응용 작업 큐에 응용 작업이 있다면(S560), 응용 작업 큐에서 적어도 하나의 응용 작업을 리딩한다(S520).
응용 작업 큐에 응용 작업이 없으면(S560), 종료한다.
도 6은 본 개시의 일 실시 예에 따른, 분석 워크플로우 방법의 순서도를 도시한 도면이다. 본 발명은 분산 워크플로우 장치에 의하여 수행된다.
데이터를 검색한다(S610).
검색된 상기 데이터에 대응하는 응용 작업을 검색한다(S620).
검색된 상기 응용 작업에 대응하는 워크플로우를 검색한다(S630).
검색된 상기 워크플로우에 포함된 응용 작업들이 동작하는 실행 노드를 검색한다(S640).
검색된 실행 노드를 기초로 상기 데이터와 상기 응용 작업을 사용하여 워크플로우를 생성한다(S650).
도 7은 본 개시의 일 실시 예에 따른, 분석 워크플로우 장치의 구성도를 도시한 도면이다.
도 7을 참조하면, 분석 워크플로우 장치는 디바이스(1600)를 포함한다. 디바이스(1600)는 메모리(1602), 프로세서(1603), 송수신부(1604) 및 주변 장치(1601)를 포함할 수 있다. 또한, 일 예로, 디바이스(1600)는 다른 구성을 더 포함할 수 있으며, 상술한 실시 예로 한정되지 않는다. 이때, 일 예로, 디바이스는 상술한 분석 워크플로우 장치에 기초하여 동작하는 장치일 수 있다.
보다 상세하게는, 도 7의 디바이스(1600)는 분석 워크플로우 장치와 예시적인 하드웨어/소프트웨어 아키텍처일 수 있다. 이때, 일 예로, 메모리(1602)는 비이동식 메모리 또는 이동식 메모리일 수 있다. 또한, 일 예로, 주변 장치(1601)는 디스플레이, GPS 또는 다른 주변기기들을 포함할 수 있으며, 상술한 실시예로 한정되지 않는다.
또한, 일 예로, 상술한 디바이스(1600)는 상기 송수신부(1604)와 같이 통신 회로를 포함할 수 있으며, 이에 기초하여 외부 디바이스와 통신을 수행할 수 있다.
또한, 일 예로, 프로세서(1603)는 범용 프로세서, DSP(digital signal processor), DSP 코어, 제어기, 마이크로제어기, ASIC들(Application Specific Integrated Circuits), FPGA(Field Programmable Gate Array) 회로들, 임의의 다른 유형의 IC(integrated circuit) 및 상태 머신과 관련되는 하나 이상의 마이크로프로세서 중 적어도 하나 이상일 수 있다. 즉, 상술한 디바이스(1600)를 제어하기 위한 제어 역할을 수행하는 하드웨어적/소프트웨어적 구성일 수 있다.
이때, 프로세서(1603)는 분석 워크플로우 장치의 다양한 필수 기능들을 수행하기 위해 메모리(1602)에 저장된 컴퓨터 실행가능한 명령어들을 실행할 수 있다. 일 예로, 프로세서(1603)는 신호 코딩, 데이터 처리, 전력 제어, 입출력 처리 및 통신 동작 중 적어도 어느 하나를 제어할 수 있다. 또한, 프로세서(1603)는 물리 계층, MAC 계층, 어플리케이션 계층들을 제어할 수 있다. 또한, 일 예로, 프로세서(1603)는 액세스 계층 및/또는 어플리케이션 계층 등에서 인증 및 보안 절차를 수행할 수 있으며, 상술한 실시예로 한정되지 않는다.
일 예로, 프로세서(1603)는 송수신부(1604)를 통해 다른 장치들과 통신을 수행할 수 있다. 일 예로, 프로세서(1603)는 컴퓨터 실행가능한 명령어들의 실행을 분석 워크플로우 장치가 네트워크를 통해 외부 장치들과 통신을 수행하게 제어할 수 있다. 즉, 본 발명에서 수행되는 통신이 제어될 수 있다. 일 예로, 송수신부(1604)는 안테나를 통해 RF 신호를 전송할 수 있으며, 다양한 통신망에 기초하여 신호를 전송할 수 있다.
또한, 일 예로, 안테나 기술로서 MIMO 기술, 빔포밍 등이 적용될 수 있으며, 상술한 실시예로 한정되지 않는다. 또한, 송수신부(1604)를 통해 송수신한 신호는 변조 및 복조되어 프로세서(1603)에 의해 제어될 수 있으며, 상술한 실시 예로 한정되지 않는다.
본 개시의 다양한 실시 예는 모든 가능한 조합을 나열한 것이 아니고 본 개시의 대표적인 양상을 설명하기 위한 것이며, 다양한 실시 예에서 설명하는 사항들은 독립적으로 적용되거나 또는 둘 이상의 조합으로 적용될 수도 있다.
또한, 본 개시의 다양한 실시 예는 하드웨어, 펌웨어(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), 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다. 예를 들어, 종단 혹은 에지에서 사용될 수 있는 비 일시적 컴퓨터 판독가능한 매체에 저장된 프로그램의 형식이나, 에지 혹은 클라우드에서 사용될 수 있는 비 일시적 컴퓨터 판독 가능한 매체에 저장된 프로그램의 형식으로도 구현될 수 있음은 자명하다. 또한, 다양한 하드웨어 및 소프트웨어의 결합으로도 구현될 수 있다.
본 개시의 범위는 다양한 실시 예의 방법에 따른 동작이 장치 또는 컴퓨터 상에서 실행되도록 하는 소프트웨어 또는 머신-실행 가능한 명령들(예를 들어, 운영체제, 애플리케이션, 펌웨어(firmware), 프로그램 등), 및 이러한 소프트웨어 또는 명령 등이 저장되어 장치 또는 컴퓨터 상에서 실행 가능한 비-일시적 컴퓨터-판독가능 매체(non-transitory computer-readable medium)를 포함한다.
이상에서 설명한 본 개시는, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 개시의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로, 본 개시의 범위는 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
Claims (20)
- 분산 워크플로우 방법에서,
데이터를 검색하는 단계;
검색된 상기 데이터에 대응하는 응용 작업을 검색하는 단계;
검색된 상기 응용 작업에 대응하는 워크플로우를 검색하는 단계;
검색된 상기 워크플로우에 포함된 응용 작업들이 동작하는 실행 노드를 검색하는 단계; 및
검색된 실행 노드를 기초로 상기 데이터와 상기 응용 작업을 사용하여 워크플로우를 생성하는 단계를 포함하는,
분산 워크플로우 방법.
- 제 1 항에 있어서,
데이터를 추가하는 단계;
추가된 상기 데이터를 워크플로우의 시작 구성요소에 연결하는 단계;
상기 데이터를 처리할 응용 작업을 추가하는 단계;
추가된 상기 응용 작업을 입력 데이터와 연결하는 단계;
상기 응용 작업의 설정값을 변경하는 단계;
상기 응용 작업의 출력을 설정하는 단계; 및
상기 응용 작업의 출력과 연결할 응용 작업이 있으면, 응용 작업을 추가하여 워크플로우를 생성하는 단계를 더 포함하는,
분산 워크플로우 방법.
- 제 2 항에 있어서,
추가할 데이터가 있으면, 데이터를 추가하는 단계를 더 포함하는,
분산 워크플로우 방법.
- 제 1 항에 있어서,
상기 워크플로우의 시작 구성요소부터 종단 구성요소까지 상기 데이터 및 상기 응용 작업을 연결하여 워크플로우를 생성하는 단계를 더 포함하는,
분산 워크플로우 방법.
- 제 4 항에 있어서,
상기 워크플로우의 시작 구성요소부터 종단 구성요소까지 상기 데이터 및 상기 응용 작업을 방향 비순환 그래프 형태로 연결하여 워크플로우를 생성하는 단계를 더 포함하는,
분산 워크플로우 방법.
- 제 1 항에 있어서,
상기 워크플로우는 소정의 규칙에 따라 구성요소를 서로 연결하는,
분산 워크플로우 방법.
- 제 1 항에 있어서,
워크플로우가 수정된 경우, 수정된 워크플로우를 검증하는 단계; 및
검증 결과 부적합한 경우, 오류를 보고하는 단계를 더 포함하는,
분산 워크플로우 방법.
- 제 1 항에 있어서,
상기 워크플로우의 시작 구성요소부터 종단 구성요소까지 검토하고 응용 작업에 필요한 설정 값을 확인하는 단계;
상기 워크플로우의 응용 작업들이 실행될 실행 노드의 접속 가능 여부 및 실행 가능 여부를 확인하는 단계;
상기 워크플로우의 실행 준비가 완료되면, 상기 워크플로우의 각 응용 작업을 분산된 실행 노드에 배포하는 단계; 및
상기 워크플로우의 시작 구성 요소부터 종단 구성요소까지 상기 응용 작업을 상기 실행 노드에서 실행하는 단계를 더 포함하는,
분산 워크플로우 방법.
- 제 8 항에 있어서,
상기 워크플로우의 시작 구성 요소부터 종단 구성요소까지 상기 응용 작업을 상기 실행 노드에서 실행하는 단계는
특정 시점에 응용 작업이 복수인 경우, 상기 응용 작업을 상기 실행 노드에서 동시에 실행하는 단계를 더 포함하는,
분산 워크플로우 방법.
- 제 1 항에 있어서,
워크플로우를 순회하며 응용 작업 큐에 기록하는 단계;
상기 응용 작업 큐에서 응용 작업을 리딩하는 단계;
상기 응용 작업이 실행 가능하면, 실행 노드에서 응용 작업을 시작하는 단계;
상기 응용 작업 큐에 상기 응용 작업이 존재하면, 상기 응용 작업 큐에서 상기 응용 작업을 리딩하는 단계를 더 포함하는,
분산 워크플로우 방법.
- 분산 워크플로우 장치에서,
데이터를 검색하는 데이터 검색기;
검색된 상기 데이터에 대응하는 응용 작업을 검색하는 응용 작업 검색기;
검색된 상기 응용 작업에 대응하는 워크플로우를 검색하는 워크 플로우 검색기;
검색된 상기 워크플로우에 포함된 응용 작업들이 동작하는 실행 노드를 검색하는 실행 노드 검색기; 및
검색된 실행 노드를 기초로 상기 데이터와 상기 응용 작업을 사용하여 워크플로우를 생성하는 워크플로우 저작기를 포함하는,
분산 워크플로우 장치.
- 제 11 항에 있어서,
상기 워크플로우 저작기는,
데이터를 추가하고,
추가된 상기 데이터를 워크플로우의 시작 구성요소에 연결하고,
상기 데이터를 처리할 응용 작업을 추가하고,
추가된 상기 응용 작업을 입력 데이터와 연결하고,
상기 응용 작업의 설정값을 변경하고,
상기 응용 작업의 출력을 설정하고,
상기 응용 작업의 출력과 연결할 응용 작업이 있으면, 응용 작업을 추가하여 워크플로우를 생성하는,
분산 워크플로우 장치.
- 제 12 항에 있어서,
상기 워크플로우 저작기는,
추가할 데이터가 있으면, 데이터를 추가하는,
분산 워크플로우 장치.
- 제 11 항에 있어서,
상기 워크플로우 저작기는,
상기 워크플로우의 시작 구성요소부터 종단 구성요소까지 상기 데이터 및 상기 응용 작업을 연결하여 워크플로우를 생성하는,
분산 워크플로우 장치.
- 제 14 항에 있어서,
워크플로우 저작기는,
상기 워크플로우의 시작 구성요소부터 종단 구성요소까지 상기 데이터 및 상기 응용 작업을 방향 비순환 그래프 형태로 연결하여 워크플로우를 생성하는,
분산 워크플로우 장치.
- 제 11 항에 있어서,
상기 워크플로우는 소정의 규칙에 따라 구성요소를 서로 연결하는,
분산 워크플로우 장치.
- 제 11 항에 있어서,
워크플로우 검증기를 더 포함하고,
상기 워크플로우 검증기는,
워크플로우가 수정된 경우, 수정된 워크플로우를 검증하고,
검증 결과 부적합한 경우, 오류를 보고하는,
분산 워크플로우 장치.
- 제 11 항에 있어서,
워크플로우의 시작 구성요소부터 종단 구성요소까지 검토하고 응용 작업에 필요한 설정 값을 확인하는 워크플로우 설정기;
상기 워크플로우의 응용 작업들이 실행될 실행 노드의 접속 가능 여부 및 실행 가능 여부를 확인하는 실행 노드 검증기;
상기 워크플로우의 실행 준비가 완료되면, 상기 워크플로우의 각 응용 작업을 분산된 실행 노드에 배포하는 응용 작업 분산 배포기; 및
상기 워크플로우의 시작 구성 요소부터 종단 구성요소까지 상기 응용 작업을 상기 실행 노드에서 실행하는 응용 작업 분산 실행기를 더 포함하는,
분산 워크플로우 장치.
- 제 18 항에 있어서,
상기 응용 작업 분산 실행기는,
특정 시점에 응용 작업이 복수인 경우, 상기 응용 작업을 상기 실행 노드에서 동시에 실행하는,
분산 워크플로우 장치.
- 분산 워크플로우 장치에서,
외부 장치와 데이터를 송수신하는 송수신부;
상기 송수신부를 통하여 데이터를 추가하고,
추가된 상기 데이터를 워크플로우의 시작 구성요소에 연결하고,
상기 데이터를 처리할 응용 작업을 추가하고,
추가된 상기 응용 작업을 입력 데이터와 연결하고,
상기 응용 작업의 설정값을 변경하고,
상기 응용 작업의 출력을 설정하고,
상기 응용 작업의 출력과 연결할 응용 작업이 있으면, 응용 작업을 추가하여 워크플로우를 생성하는 프로세서를 포함하는,
분산 워크플로우 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20210181025 | 2021-12-16 | ||
KR1020210181025 | 2021-12-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230091748A true KR20230091748A (ko) | 2023-06-23 |
Family
ID=86993509
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220053261A KR20230091748A (ko) | 2021-12-16 | 2022-04-29 | 다중 서버에서 응용 작업 실행 및 관리를 위한 분산 워크플로우 장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20230091748A (ko) |
-
2022
- 2022-04-29 KR KR1020220053261A patent/KR20230091748A/ko unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240187441A1 (en) | Dynamic Hierarchical Tagging System and Method | |
US10866788B2 (en) | System and method for automated generation of integration elements modeling process flow for an integration process with a swagger API | |
CN107003906B (zh) | 云计算技术部件的类型到类型分析 | |
US20210342313A1 (en) | Autobuild log anomaly detection methods and systems | |
US11132274B2 (en) | Establishing and monitoring programming environments | |
US11176169B2 (en) | Recommending visual and execution templates to enable automation of control and data exploration across systems | |
US20090157737A1 (en) | Database Trigger Modification System and Method | |
US11948005B2 (en) | Managed integration of constituent services of multi-service applications | |
US11126503B2 (en) | Pre-filtering of join execution over multi-column range summaries and other synopses | |
US20230143922A1 (en) | Systems and Methods for Dynamically Binding Robotic Process Automation (RPA) Robots to Resources | |
US10671361B2 (en) | Automatically determining data dependencies to facilitate code execution | |
US11941413B2 (en) | Managed control plane service | |
JP7155626B2 (ja) | フィールドデバイスコミッショニングシステムおよびフィールドデバイスコミッショニング方法 | |
De | API testing strategy | |
US10887186B2 (en) | Scalable web services execution | |
US20230229438A1 (en) | Kernels as a service | |
US20230036186A1 (en) | Systems and methods for data integration | |
US8286131B2 (en) | Environment definition files for an environment definition system | |
US11341022B2 (en) | Runtime performance introspection | |
KR20230091748A (ko) | 다중 서버에서 응용 작업 실행 및 관리를 위한 분산 워크플로우 장치 및 방법 | |
CN111078263A (zh) | 基于Drools规则引擎的热部署方法、***、服务器及存储介质 | |
KR100499815B1 (ko) | 컴포넌트 공유 관리 시스템 및 방법 | |
US11550705B2 (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 | |
US20220261389A1 (en) | Distributing rows of a table in a distributed database system |