KR20210057656A - workflow engine framework for cross-domain extension - Google Patents

workflow engine framework for cross-domain extension Download PDF

Info

Publication number
KR20210057656A
KR20210057656A KR1020200124980A KR20200124980A KR20210057656A KR 20210057656 A KR20210057656 A KR 20210057656A KR 1020200124980 A KR1020200124980 A KR 1020200124980A KR 20200124980 A KR20200124980 A KR 20200124980A KR 20210057656 A KR20210057656 A KR 20210057656A
Authority
KR
South Korea
Prior art keywords
engine
workflow
domain
data
unit
Prior art date
Application number
KR1020200124980A
Other languages
Korean (ko)
Inventor
이연희
강현중
김영민
김태환
김현재
안후영
유태완
이호성
임완선
표철식
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to US17/095,610 priority Critical patent/US11153388B2/en
Publication of KR20210057656A publication Critical patent/KR20210057656A/en

Links

Images

Classifications

    • 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
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis
    • 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
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06312Adjustment or analysis of established resource schedule, e.g. resource or task levelling, or dynamic rescheduling
    • 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
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06316Sequencing of tasks or work
    • 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/10Office automation; Time management

Abstract

The present invention relates to a workflow engine framework of a cross-domain extension-type. The workflow engine framework of a cross-domain extension type (hereinafter, referred to as "workflow engine framework") executed by a computing device including a processor, comprises: a system configuration unit for generating a plurality of engines in accordance with workflow specifications defined by a user; and a system control unit for controlling the execution of the engines. The engines include a first engine for executing a first workflow of a first domain and a second engine for executing a second workflow of a second domain. The workflow engine framework further comprises an application storage for transmitting a result of processing data performed in the first engine to the second engine for fusion of the first and second domains. Accordingly, a wide range of intelligent services can be provided in various fields.

Description

크로스도메인 확장형 워크플로우 엔진 프레임워크{workflow engine framework for cross-domain extension}Workflow engine framework for cross-domain extension

본 발명은 서로 다른 업무 도메인, 목적 도메인, 또는 공간 도메인을 융합하기 위한 워크플로우의 구성에 관한 것이다.The present invention relates to a configuration of a workflow for fusing different business domains, destination domains, or spatial domains.

최근 주목받고 있는 스마트 제조업은, 서로 다른 물리적 공간들에서 수행되는 서로 다른 업무들 또는 서로 다른 목적들을 연계하여 최적의 결과를 도출하는 크로스도메인 지능형 서비스를 기반으로 한다.The smart manufacturing industry, which has recently attracted attention, is based on a cross-domain intelligent service that derives optimal results by linking different tasks or different purposes performed in different physical spaces.

크로스도메인 지능형 서비스를 제공하기 위해서는, 서로 다른 공간 도메인들, 서로 다른 업무 도메인들 및/또는 서로 다른 목적 도메인들을 융합하고 동시에 데이터 발생 상태 또는 환경 변화에 적응적인 워크플로우(workflow) 구성이 필요하다.In order to provide a cross-domain intelligent service, different spatial domains, different business domains, and/or different target domains need to be fused, and at the same time, a workflow configuration adaptive to changes in data generation status or environment is required.

또한, 서로 다른 공간 도메인들, 서로 다른 업무 도메인들 및/또는 서로 다른 목적 도메인들을 유기적으로 실행 및 제어하기 위한 오케스트레이션(orchestration) 기술이 필요하다.In addition, there is a need for an orchestration technique for organically executing and controlling different spatial domains, different business domains, and/or different target domains.

본 발명은 하나의 도메인 내에서 구성된 워크플로우를 확장하여, 서로 다른 공간 도메인, 서로 다른 업무 도메인 및/또는 서로 다른 목적 도메인에 공통으로 적용할 수 있는 크로스도메인 확장형 워크플로우를 구성하기 위한 시스템 및 이의 오케스트레이션 방법을 제공하는 데 그 목적이 있다.The present invention is a system for constructing a cross-domain extended workflow that can be commonly applied to different spatial domains, different business domains, and/or different purpose domains by extending the workflow configured within one domain, and its object. Its purpose is to provide an orchestration method.

본 발명의 전술한 목적 및 그 이외의 목적과 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부된 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다.The above-described and other objects, advantages, and features of the present invention, and methods of achieving them will become apparent with reference to the embodiments described below in detail together with the accompanying drawings.

상술한 목적을 달성하기 위한 본 발명의 일면에 따른 크로스도메인 확장형 워크플로우 엔진 프레임워크는, 프로세서를 포함하는 컴퓨팅 장치에 의해 실행되는 크로스도메인 확장형 워크플로우 엔진 프레임워크(이하, '워크플로우 엔진 프레임워크')로서, 사용자에 의해 정의된 워크플로우 명세에 따라 복수의 엔진을 생성하는 시스템 구성부와, 상기 복수의 엔진의 실행을 제어하는 시스템 제어부를 포함하는 상기 워크플로우 엔진 프레임워크로서, 상기 복수의 엔진은 제1 도메인의 제1 워크플로우를 실행하는 제1 엔진과 제2 도메인의 제2 워크플로우를 실행하는 제2 엔진을 포함하고, 상기 워크플로우 엔진 프레임워크는, 상기 제1 도메인과 상기 제2 도메인의 융합을 위해, 제1 엔진에서 수행된 데이터의 처리 결과를 상기 제2 엔진으로 전달하는 응용 저장소를 더 포함한다.A cross-domain extended workflow engine framework according to an aspect of the present invention for achieving the above object is a cross-domain extended workflow engine framework executed by a computing device including a processor (hereinafter, referred to as'workflow engine framework. '), the workflow engine framework comprising a system configuration unit that generates a plurality of engines according to a workflow specification defined by a user, and a system control unit that controls execution of the plurality of engines, wherein the plurality of The engine includes a first engine executing a first workflow in a first domain and a second engine executing a second workflow in a second domain, and the workflow engine framework includes the first domain and the first workflow. For the convergence of the two domains, it further includes an application storage for transmitting a result of processing data performed by the first engine to the second engine.

본 발명의 다른 일면에 따른 크로스도메인 확장형 워크플로우 엔진 프레임워크는, 프로세서를 포함하는 컴퓨팅 장치에 의해 실행되는 크로스도메인 확장형 워크플로우 엔진 프레임워크(이하, '워크플로우 엔진 프레임워크')로서, 사용자에 의해 정의된 워크플로우 명세에 따라 복수의 엔진을 생성하는 시스템 구성부와, 상기 복수의 엔진의 실행을 제어하는 시스템 제어부를 포함하는 상기 워크플로우 엔진 프레임워크로서, 상기 복수의 엔진은, 제1 도메인의 제1 워크플로우를 실행하는 제1 및 제2 엔진; 및 제2 도메인의 제2 워크플로우를 실행하는 제3 엔진을 포함하고, 상기 워크플로우 엔진 프레임워크는, 상기 제1 도메인과 상기 제2 도메인의 융합을 위해, 상기 제2 엔진의 처리 결과를 상기 제1 워크플로우의 처리 결과로 구성하여 상기 제3 엔진으로 전달하는 응용 저장소를 더 포함한다. A cross-domain extensible workflow engine framework according to another aspect of the present invention is a cross-domain extensible workflow engine framework (hereinafter referred to as'workflow engine framework') executed by a computing device including a processor. The workflow engine framework comprising a system configuration unit that generates a plurality of engines according to a workflow specification defined by and a system control unit that controls execution of the plurality of engines, wherein the plurality of engines comprises a first domain First and second engines for executing the first workflow of; And a third engine executing a second workflow of a second domain, wherein the workflow engine framework includes a result of processing the second engine for fusion of the first domain and the second domain. It further includes an application storage configured as a result of processing of the first workflow and transmitted to the third engine.

본 발명의 또 다른 일면에 따른 크로스도메인 확장형 워크플로우 엔진 프레임워크는, 프로세서를 포함하는 컴퓨팅 장치에 의해 실행되는 크로스도메인 확장형 워크플로우 엔진 프레임워크(이하, '워크플로우 엔진 프레임워크')로서, 사용자에 의해 정의된 워크플로우 명세에 따라 복수의 엔진을 생성하는 시스템 구성부와, 상기 복수의 엔진의 실행을 제어하는 시스템 제어부를 포함하는 상기 워크플로우 엔진 프레임워크로서, 상기 복수의 엔진은 제1 엣지 노드에서 제1 엣지 도메인의 제1 워크플로우를 실행하는 제1 엔진, 코어 노드에서 코어 도메인의 제2 워크플로우를 실행하는 제2 엔진 및 제2 엣지 노드에서 제2 엣지 도메인의 제3 워크플로우를 실행하는 제3 엔진을 포함하고, 상기 워크플로우 엔진 프레임워크는, 상기 제1 도메인과 상기 제2 도메인의 융합을 위해, 제1 엔진에서 수행된 데이터의 처리 결과를 상기 제2 엔진으로 전달하는 제1 공유 저장소; 및 상기 제2 도메인과 상기 제3 도메인의 융합을 위해, 상기 제2 엔진에서 수행된 데이터의 처리 결과를 상기 제3 엔진으로 전달하는 제2 공유 저장소;를 더 포함한다.A cross-domain extensible workflow engine framework according to another aspect of the present invention is a cross-domain extensible workflow engine framework (hereinafter referred to as'workflow engine framework') executed by a computing device including a processor. The workflow engine framework including a system configuration unit that generates a plurality of engines according to a workflow specification defined by and a system control unit that controls execution of the plurality of engines, wherein the plurality of engines is a first edge A first engine that executes a first workflow of a first edge domain in a node, a second engine that executes a second workflow of a core domain in a core node, and a third workflow of a second edge domain in a second edge node. A third engine to be executed, and the workflow engine framework, for fusion of the first domain and the second domain, transmits a result of processing data performed by the first engine to the second engine. 1 shared storage; And a second shared storage for transferring the processing result of data performed by the second engine to the third engine for fusion of the second domain and the third domain.

본 발명에 따르면, 일원화된 워크플로우 구성방식에 의해 하나 이상의 물리적 공간 도메인, 하나 이상의 업무 도메인, 하나 이상의 목적 도메인 간 워크플로우를 정의하고 실행 및 제어할 수 있는 이점이 있다.According to the present invention, there is an advantage of defining, executing, and controlling a workflow between one or more physical space domains, one or more business domains, and one or more target domains by a unified workflow configuration method.

또한, 본 발명에 따르면, 스마트한 생산, 제조, 공정을 필요로 하는 지능형 서비스를 제공하기 위해서는 물리적 공간 도메인 간의 협력형 워크플로우, 서로 다른 업무 또는 서로 다른 목적 도메인 간 융합 가능한 워크플로우, 데이터 발생 상태나 환경의 변화에 적응적인 워크플로우를 구성하고 이를 유기적으로 실행/제어하기 위한 오케스트레이션 기술을 제공함으로써, 스마트 시티, 스마트 농장, 스마트 공공 등 다양한 분야에서 폭 넓은 지능형 서비스의 제공이 가능하다.In addition, according to the present invention, in order to provide an intelligent service that requires smart production, manufacturing, and processing, a cooperative workflow between physical spatial domains, a workflow that can be fused between different tasks or different purpose domains, and data generation status B. By providing orchestration technology to construct a workflow adaptive to changes in the environment and organically execute/control it, it is possible to provide a wide range of intelligent services in various fields such as smart city, smart farm, and smart public.

도 1은 본 발명의 실시 예에 따른 크로스도메인 확장형 워크플로우 엔진 프레임워크의 구성 요소들을 나타내는 블록도.
도 2는 도 1에 도시한 편집부의 구성을 설명하기 위한 GUI 화면을 도시한 도면이다.
도 3은 본 발명의 일 실시 예에 따른 크로스도메인 확장형 워크플로우를 실행하기 위한 엔진의 구성도이다.
도 4는 본 발명의 실시 예에 따른 파일시스템 기반의 단일 엔진 구성을 도시한 도면이다.
도 5는 도 4에 도시한 파일시스템 기반의 단일 엔진 구성을 이용하여 크로스도메인 확장형 워크플로우를 구성하기 위한 엔진의 구성도이다.
도 6은 도 5에 도시한 엔진 구성의 다른 예를 도시한 엔진의 구성도이다.
도 7은 본 발명의 실시 예에 따른 크로스도메인 확장형 워크플로우 기반의 협력형 지능 서비스를 제공하는 방법을 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시 예에 따른 서로 다른 업무 및 목적 도메인들에서 각각 제공하는 서비스들을 융합하는 융합 지능 서비스를 정의하기 위한 엔진(엔진 컨테이너)의 구성도이다.
도 9는 본 발명의 다른 실시 예에 따른 서로 다른 업무 및 목적 도메인들에서 제공하는 서비스들을 융합하는 융합 지능 서비스를 정의하기 위한 엔진(엔진 컨테이너)의 구성도이다.
도 10 내지 14는 도 8 및 9에서 도시한 융합 지능 서비스를 위한 엔진의 내부 처리 절차를 설명하기 위한 도면들이다.
도 15는 도 13에 도시한 집계 기능을 갖는 오퍼레이터를 포함하는 엔진 구성을 이용하여 배관 누출(pipe leakage) 탐지와 관련된 워크플로우 서비스 시나리오를 설명하기 위한 도면이다.
도 16은 도 14에 도시한 룩업 테이블을 갖는 오퍼레이터를 포함하도록 구성된 엔진 구성을 이용하여 대화 생성과 관련된 워크플로우 서비스 시나리오를 설명하기 위한 도면이다.
도 17은 본 발명의 실시 예에 따른 융합 지능 서비스와 관련된 예측 모델을 주기적으로 업데이트 하기 위한 하나 이상의 워크플로우를 실행하고 제어하는 오케스트레이션 방법을 설명하기 위한 도면이다.
1 is a block diagram showing components of a cross-domain extended workflow engine framework according to an embodiment of the present invention.
FIG. 2 is a diagram illustrating a GUI screen for explaining the configuration of the editing unit shown in FIG. 1.
3 is a block diagram of an engine for executing a cross-domain extended workflow according to an embodiment of the present invention.
4 is a diagram illustrating a configuration of a single engine based on a file system according to an embodiment of the present invention.
FIG. 5 is a configuration diagram of an engine for configuring a cross-domain extended workflow using a single engine configuration based on a file system shown in FIG. 4.
6 is a configuration diagram of an engine showing another example of the configuration of the engine shown in FIG. 5.
7 is a diagram illustrating a method of providing a cooperative intelligent service based on a cross-domain extended workflow according to an embodiment of the present invention.
FIG. 8 is a configuration diagram of an engine (engine container) for defining a converged intelligent service that combines services provided by different business and target domains according to an embodiment of the present invention.
9 is a block diagram of an engine (engine container) for defining a converged intelligent service that combines services provided by different business and target domains according to another embodiment of the present invention.
10 to 14 are diagrams for explaining an internal processing procedure of the engine for the converged intelligence service shown in FIGS. 8 and 9.
FIG. 15 is a diagram for explaining a workflow service scenario related to pipe leakage detection using an engine configuration including an operator having an aggregate function shown in FIG. 13.
FIG. 16 is a diagram for explaining a workflow service scenario related to conversation generation by using an engine configuration configured to include an operator having a lookup table shown in FIG. 14.
17 is a diagram illustrating an orchestration method of executing and controlling one or more workflows for periodically updating a prediction model related to a converged intelligence service according to an embodiment of the present invention.

본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.Specific structural or functional descriptions of the embodiments according to the concept of the present invention disclosed in the present specification are exemplified only for the purpose of describing the embodiments according to the concept of the present invention, and the embodiments according to the concept of the present invention are It may be implemented in various forms and is not limited to the embodiments described herein.

이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, the present invention is not limited or limited by these embodiments.

도 1은 본 발명의 실시 예에 따른 크로스도메인 확장형 워크플로우 엔진 프레임워크의 구성도이다. 1 is a block diagram of a cross-domain extended workflow engine framework according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 크로스도메인 확장형 워크플로우 엔진 프레임워크(100)는 프로세서를 탑재한 컴퓨팅 장치에 의해 프로그래밍되거나 실행되는 소프트웨어 모듈 또는 이러한 소프트웨어 모듈을 내장한 하드웨어 모듈로 구현될 수 있다.Referring to FIG. 1, the cross-domain extended workflow engine framework 100 of the present invention may be implemented as a software module programmed or executed by a computing device equipped with a processor, or a hardware module including such a software module.

크로스도메인 확장형 워크플로우 엔진 프레임워크(100, 이하, '엔진 프레임워크'라 함)는 기본적으로 프론트 엔드부(10), 자원 관리부(20), 시스템 구성부(30), 시스템 제어부(40) 및 응용부(50)를 포함한다. 도 1에서는 편집부(5)가 더 도시된다. The cross-domain extended workflow engine framework (100, hereinafter, referred to as'engine framework') is basically a front end unit 10, a resource management unit 20, a system configuration unit 30, a system control unit 40, and It includes an application unit 50. In Fig. 1, the editing section 5 is further shown.

편집부(5)는 실행할 작업(워크플로우)의 구조와 명세를 작성하는 기능을 제공하는 소프트웨어 모듈 또는 이러한 소프트웨어 모듈을 내장한 하드웨어 모듈일 수 있다.The editing unit 5 may be a software module providing a function of creating a structure and specification of a task (workflow) to be executed, or a hardware module incorporating such a software module.

프론트 엔드부(10)는 편집부(5)에 의해 작성된 작업(워크플로우)의 구조와 작업(워크플로우)의 명세를 엔진 프레임워크(100)로 전달하는 기능을 제공하는 소프트웨어 모듈 또는 이러한 소프트웨어 모듈을 내장한 하드웨어 모듈일 수 있다.The front end unit 10 includes a software module or such a software module that provides a function of transferring the structure of the work (workflow) and the specification of the work (workflow) created by the editing unit 5 to the engine framework 100. It can be a built-in hardware module.

자원 관리부(20)는 워크플로우를 정의하는데 필요한 다양한 자원을 등록, 유지 및 관리하는 기능을 제공하는 소프트웨어 모듈 또는 이러한 소프트웨어 모듈을 내장한 하드웨어 모듈일 수 있다.The resource management unit 20 may be a software module providing a function of registering, maintaining, and managing various resources required to define a workflow, or a hardware module incorporating such a software module.

워크플로우를 정의하는데 필요한 자원은, 예를 들면, 사용자가 편집부(10)를 통해 작성할 워크플로우 명세(워크플로우를 구성하는 하나 이상의 엔진들로 구성된 명세) 상에서 각 엔진 컴퍼넌트들을 정의하기 위한 속성과 관련된 속성명세 컴퍼넌트, 워크플로우 실행을 수행할 엔진의 구성품에 해당하는 엔진 컴퍼넌트, 그리고 이전에 작성된 워크플로우 명세 인스턴스 등을 포함하는 것일 수 있다.The resources required to define the workflow are, for example, related to attributes for defining each engine component on the workflow specification (a specification consisting of one or more engines constituting the workflow) that the user will create through the editing unit 10. It may include an attribute specification component, an engine component corresponding to a component of an engine to perform workflow execution, and a previously created workflow specification instance.

시스템 구성부(30)는 워크플로우 속성명세를 조립하고, 워크플로우 실행에 필요한 엔진 컴퍼넌트들을 동적으로 조합하고, 워크플로우를 수행하는 엔진 인스턴스(이하, '엔진'과 혼용됨)를 생성하는 기능을 제공하는 소프트웨어 모듈 또는 이를 내장한 하드웨어 모듈일 수 있다.The system configuration unit 30 has a function of assembling a workflow attribute specification, dynamically assembling engine components required for workflow execution, and creating an engine instance (hereinafter, used as an'engine') that performs the workflow. It may be a software module to provide or a hardware module incorporating it.

시스템 제어부(40)는 자원관리부(20), 시스템 구성부(30), 응용부(50) 및 시스템 구성부(30)에 의해 생성된 엔진의 실행을 제어하는 기능을 제공하는 소프트웨어 모듈 또는 이를 내장한 하드웨어 모듈일 수 있다.The system control unit 40 is a software module that provides a function of controlling the execution of the engine generated by the resource management unit 20, the system configuration unit 30, the application unit 50, and the system configuration unit 30, or a built-in software module thereof. It can be one hardware module.

시스템 구성부(30)와 시스템 제어부(40)는 하나의 모듈로 통합될 수 있으며, 이 경우, 통합된 하나의 모듈은 '운영 제어부' 또는 '오케스트레이션부'로 지칭될 수 있다.The system configuration unit 30 and the system control unit 40 may be integrated into one module, and in this case, the integrated unit may be referred to as an “operation control unit” or an “orchestration unit”.

응용부(50)는 편집부(5)를 통해서 작성된 워크플로우 명세를 실행하기 위해 생성된 엔진 인스턴스들을 관리하고, 엔진 인스턴스들의 실행에 따라 수집 또는 가공된 데이터들을 저장하고, 저장된 데이터들의 접근을 제어하는 기능을 제공하는 소프트웨어 모듈 또는 이를 내장한 하드웨어 모듈일 수 있다. The application unit 50 manages engine instances created to execute the workflow specification created through the editing unit 5, stores data collected or processed according to the execution of the engine instances, and controls access to the stored data. It may be a software module providing a function or a hardware module incorporating it.

워크플로우 엔진 프레임워크(100)에서, 사용자는 원하는 시스템을 만들기 위해 하나 이상의 엔진으로 구성되는 워크플로우를 정의한다. 이때 워크플로우는 하나 이상의 엔진에 대한 정의로 구성된다. In the workflow engine framework 100, a user defines a workflow composed of one or more engines to create a desired system. In this case, the workflow consists of definitions for one or more engines.

엔진에 대한 정의는 엔진 컴퍼넌트들을 담기 위한 엔진 컴퍼넌트 컨테이너와 엔진 컴퍼넌트 컨테이너에 담길 엔진 컴퍼넌트의 조합일 수 있다.The definition of an engine may be a combination of an engine component container to contain engine components and an engine component to be contained in the engine component container.

엔진 컴퍼넌트 컨테이너는 하나 이상의 입력기(reader) 컴퍼넌트, 출력기(writer) 컴퍼넌트, 실행기(runner) 컴퍼넌트, 처리기(operator) 컴퍼넌트, 제어기(controller) 컴퍼넌트의 조합일 수 있다. The engine component container may be a combination of one or more reader components, writer components, runner components, operator components, and controller components.

하나 이상의 입력기 컴퍼넌트, 출력기 컴퍼넌트, 실행기 컴퍼넌트, 처리기 컴퍼넌트, 제어기 컴퍼넌트들은 각각 컴퍼넌트의 성질을 나타내는 속성을 정의하기 위한 속성명세 컴퍼넌트와 컴퍼넌트들의 실제 구현체에 해당되는 실행 컴퍼넌트의 조합으로 만들어진다. One or more input device components, writer components, executor components, handler components, and controller components are each made of a combination of a property specification component for defining properties representing the properties of the component and an execution component corresponding to the actual implementation of the components.

실행 컴퍼넌트는, 예를 들면, Java, C++ 등의 클래스에 해당되는 것이고, 속성명세 컴퍼넌트는 클래스의 생성자에 포함될 수 있는 생성자 파라미터 또는 생성자 파라미터를 담는 클래스에 해당된다. Execution components correspond to classes such as Java, C++, etc., and attribute specification components correspond to constructor parameters that can be included in the constructor of the class or classes that contain constructor parameters.

본 발명에서는 이러한 방식으로 생성된 하나 이상의 엔진에 대한 워크플로우가 정의됨으로써, 서로 다른 업무 또는/및 서로 다른 목적 도메인 간의 융합 가능한 워크플로우와 데이터 발생 상태나 환경의 변화에 적응적인 워크플로우를 구성할 수 있다.In the present invention, by defining a workflow for one or more engines created in this manner, a workflow that can be fused between different tasks or/and different target domains and a workflow that is adaptive to changes in data generation state or environment can be configured. I can.

이하, 도 1에 도시한 각 구성들에 대해 보다 상세히 설명하기로 한다.Hereinafter, each of the components shown in FIG. 1 will be described in more detail.

편집부(5)는 원하는 업무에 대한 세부 도메인을 정의하고 각 도메인에 대하여 처리할 작업 구조(워크플로우 구조)를 정의한다. The editing unit 5 defines a detailed domain for a desired task and a task structure (workflow structure) to be processed for each domain.

또한 편집부(5)는 정의된 작업 구조에 따라 엔진 컴퍼넌트(들)를 선정하여 워크플로우 실행 흐름을 정의하고, 각 엔진 컴퍼넌트들의 명세(작업 명세 또는 워크플로우 명세)를 작성하는 기능을 제공한다. In addition, the editing unit 5 provides a function of defining the workflow execution flow by selecting the engine component(s) according to the defined work structure, and creating a specification (work specification or workflow specification) of each engine component.

이를 위해, 편집부(5)는 프레임워크(특히, 자원관리부(20))로부터 속성명세 컴퍼넌트와 엔진 컴퍼넌트를 조회할 수 있다. To this end, the editing unit 5 can inquire the attribute specification component and the engine component from the framework (especially, the resource management unit 20).

여기서 '작업 구조'는, 예를 들면, 특정 사물인터넷 플랫폼으로부터의 데이터 수집, 데이터 처리, 학습 등의 과정을 구조화한 것이며, 이들을 순차적으로 처리하는 것은 워크플로우 실행흐름에 해당될 수 있다. Here, the'work structure' is a structured process of data collection, data processing, and learning from a specific IoT platform, and sequentially processing them may correspond to a workflow execution flow.

'컴퍼넌트들의 명세(작업 명세 또는 워크플로우 명세)'는, 데이터를 어디로부터 가져와서 어떤 처리과정을 거치고 어디로 내보낼 것인지에 대한 작업을 수행하기 위해, 어떤 디바이스로부터 데이터를 수집할 것인지, 데이터의 연결방법은 무엇인지, 전달받은 데이터를 메모리에 둘 것인지 저장소에 넣을 것인지, 메모리 정보는 무엇인지, 저장소 위치는 어디인지 등, 각 요소 컴퍼넌트들에 대한 구체적인 정의 사항을 의미한다.'Specifications of components (task specification or workflow specification)' means from which device to collect data, and how to connect the data in order to perform work on where to get data from, what process to go through, and where to export it. It means specific definitions for each element component, such as what is it, whether to put the received data in memory or to put it in the storage, what is the memory information, where is the storage location, etc.

사용자(데이터 과학자, 모델 개발자, 비즈니스 개발자 등)는 편집부(5)를 통해, 워크플로우를 구성하는 엔진 컴퍼넌트와 그 엔진 컴퍼넌트의 특성을 결정하는 파라미터들을 정의할 수 있는 속성명세 컴퍼넌트를 규약에 따라 정의하고, 또한, 컴퍼넌트와 속성명세의 쌍을 정의하고 편집할 수 있다. Users (data scientists, model developers, business developers, etc.) define an engine component constituting a workflow and a property specification component that can define parameters that determine the characteristics of the engine component according to the convention through the editing unit (5). You can also define and edit pairs of component and attribute specifications.

편집부(5)의 구성을 설명하기 위한 GUI 화면(71)의 예가 도 2에 도시된다.An example of a GUI screen 71 for explaining the configuration of the editing unit 5 is shown in FIG. 2.

도 2를 참조하면, GUI 화면(71)은 기능 메뉴(72), 엔진유형 선택부(73), 컴퍼넌트 선택부(74), 컴퍼넌트 속성 조회/편집부(75), 워크플로우 인스턴스 저장/조회부(76)를 포함하도록 구성될 수 있다.2, the GUI screen 71 includes a function menu 72, an engine type selection unit 73, a component selection unit 74, a component property inquiry/editing unit 75, and a workflow instance storage/retrieval unit ( 76).

기능 메뉴(72)는 편집부(5)가 제공할 수 있는 각종 기능들을 선택하는 메뉴로서, 예를 들어, New(워크플로우 신규작성), Open(저장된 워크플로우 불러오기), Save(워크플로우 저장), Run(워크플로우 실행), Result(실행결과 보기), Help(도움말) 등의 기능을 선택하는 메뉴로 구성될 수 있다.The function menu 72 is a menu for selecting various functions that can be provided by the editing unit 5, for example, New (creating a new workflow), Open (recalling a saved workflow), and Save (saving a workflow). It can be composed of a menu that selects functions such as, Run (running workflow), Result (viewing execution results), and Help (help).

엔진유형 선택부(73)는 각종 엔진 유형을 제시하고 사용자가 이들 중 필요한 것들을 선택할 수 있게 하는 기능을 제공한다.The engine type selection unit 73 provides a function of presenting various engine types and allowing a user to select necessary ones among them.

엔진 유형으로, 예를 들면, 실시간 스트림 처리 엔진, 배치 분석 엔진, 요구형(on-demand) 데이터처리 엔진, 평가 엔진, 스트림 기계학습 예측 엔진, 요구형 융합 서빙 엔진 등이 있을 수 있다.As the engine type, for example, there may be a real-time stream processing engine, a batch analysis engine, an on-demand data processing engine, an evaluation engine, a stream machine learning prediction engine, and a demand fusion serving engine.

컴퍼넌트 선택부(74)는 사용자가 컴퍼넌트 타입과 각 타입별 엔진 컴퍼넌트를 선택할 수 있도록 컴퍼넌트 타입별로 다양한 엔진 컴퍼넌트 목록을 제공한다. 아래 표 1은 컴퍼넌트 선택부(74)에서 제시되는 컴퍼넌트 타입과 엔진 컴퍼넌트 목록의 예시이다. The component selection unit 74 provides a list of various engine components for each component type so that a user can select a component type and an engine component for each type. Table 1 below is an example of a component type and an engine component list presented by the component selection unit 74.

컴퍼넌트 타입Component type 엔진 컴퍼넌트Engine component Reader(입력기)Reader (Input Method Editor) FileReader
HttpServerReader
Kafka Reader
MongodbReader
...
FileReader
HttpServerReader
Kafka Reader
MongodbReader
...
Writer(출력기)Writer (writer) FileWriter
KafkaWriter
MongodbReader
...
FileWriter
KafkaWriter
MongodbReader
...
Controller(제어기)Controller SparkSessionController
SparkSessionStreamController
...
SparkSessionController
SparkSessionStreamController
...
Runner(실행기)Runner SparkRunnerTensoflowRunner
...
SparkRunnerTensoflowRunner
...
Operator(처리기)Operator MinMaxScaler
Aggregator
...
MinMaxScaler
Aggregator
...

컴퍼넌트 속성 선택/편집부(75)는 컴퍼넌트 선택부(74)에서 선택된 엔진 컴퍼넌트의 속성(Properties)들이 제시되고 사용자는 속성을 조회하여 이를 선택 및 편집할 수 있다.The component property selection/editing unit 75 presents properties of the engine component selected by the component selection unit 74, and the user can search for properties and select and edit them.

워크플로우 인스턴스 선택부(76)는 기 제작된 워크플로우가 저장된 목록을 표시하는 기능을 제공한다. 이들 중에서 재활용을 원하는 워크플로우를 선택하여 재편집을 하거나, 그대로 프레임워크(100)에 실행요청을 할 수 있다. 재활용의 단위는 워크플로우 전체일 수도 있고, 또는 워크플로우에 포함된 단일 엔진별로 재활용하여 편집이나 실행에 활용할 수도 있다. The workflow instance selection unit 76 provides a function of displaying a list in which a previously produced workflow is stored. Among these, a workflow desired to be recycled may be selected and re-edited, or an execution request may be made to the framework 100 as it is. The unit of recycling may be the entire workflow, or it may be reused by a single engine included in the workflow and used for editing or execution.

편집부(5)에서 워크플로우 명세 화일이 만들어지면, 그 워크플로우 명세 화일이 엔진 프레임워크(100)의 내의 시스템 구성부(30)로 제출(입력)된다. 이때, 프론트 엔드부(10)가 워크플로우 명세를 입력받아 시스템 구성부(30)에 전달하는 역할을 할 수 있다. When a workflow specification file is created in the editing unit 5, the workflow specification file is submitted (input) to the system configuration unit 30 in the engine framework 100. In this case, the front end unit 10 may serve to receive the workflow specification and transmit it to the system configuration unit 30.

프론트 엔드부(10)는 사용자 요청에 따라 프로세스의 실행을 매개하는 역할을 수행하고, 사용자관리나 저장소 관리 등의 다양한 요청에 대응하는 역할을 수행한다. The front end unit 10 serves to mediate execution of a process according to a user request, and serves to respond to various requests such as user management or storage management.

프론트 엔드(10)는, 예를 들면, 일반적인 어플리케이션 서버, 웹기반의 REST API를 제공하는 웹어플리케이션 서버, 또는 일반적인 소켓통신 기반의 수신자(listener) 모듈을 포함하는 시스템일 수 있다. The front end 10 may be, for example, a general application server, a web application server providing a web-based REST API, or a system including a general socket communication-based listener module.

경우에 따라서 프론트엔드(77)는 편집부(10) 또는 프레임워크(100)를 구성하고 있는 백엔드와 상이한 네트워크 상에서 실행되는 것일 수 있다.In some cases, the front end 77 may be executed on a network different from that of the editing unit 10 or the back end constituting the framework 100.

다시 도 1을 참조하면, 엔진 프레임워크(100) 내의 자원 관리부(20)는 워크플로우를 정의하는데 필요한 다양한 자원을 등록, 유지 및 관리하는 기능을 제공하는 동시에 워크플로우의 실행에 필요한 컴퍼넌트들을 관리하는 기능을 제공한다. Referring back to FIG. 1, the resource management unit 20 in the engine framework 100 provides a function of registering, maintaining, and managing various resources required to define a workflow, and at the same time managing components required for execution of the workflow. Provides a function.

이를 위해, 자원 관리부(20)는 응용 자산 등록 관리부(22), 엔진 컴퍼넌트부(24) 및 워크플로우 인스턴스 명세 관리부(26)를 포함한다.To this end, the resource management unit 20 includes an application asset registration management unit 22, an engine component unit 24, and a workflow instance specification management unit 26.

응용 자산 등록 관리부(22)는 워크플로우를 구성하는데 사용될 자원이나 부가 정보들을 등록, 유지 및 관리한다. The application asset registration management unit 22 registers, maintains, and manages resources or additional information to be used to construct a workflow.

응용 자산 등록 관리부(22)에 의해 관리되는 응용 자산은, 예를 들면, 머신런닝이나 데이터분석에 사용될 데이터셋(dataset), 머신러닝의 훈련을 위한 훈련 코드(training code), 훈련을 통해 생성한 머신러닝/딥러닝 기반 예측모델 또는 기타 예측알고리즘, 파이썬과 같이 특정 언어로 구현된 알고리즘 또는 코드, 컨테이너 이미지(container image), 내부 또는 외부에 존재하는 서비스 API, 연동 플랫폼 정보, 연동 시스템에 대한 인증(authentication)에 필요한 정보, 데이터의 발생지 정보, 데이터의 구독(subscription) 정보 등을 포함한다.The application assets managed by the application asset registration management unit 22 are, for example, a dataset to be used for machine running or data analysis, a training code for training machine learning, and generated through training. Machine learning/deep learning based prediction models or other prediction algorithms, algorithms or codes implemented in a specific language such as Python, container images, service APIs that exist inside or outside, linked platform information, authentication for linked systems It includes information necessary for (authentication), data origin information, data subscription information, etc.

엔진 컴퍼넌트부(24)는 자원 관리부(20)에 의해 관리되는 속성명세 컴퍼넌트와 엔진 컴퍼넌트가 물리적으로 또는 가상적으로 저장되는 공간을 제공한다.The engine component unit 24 provides a space in which the attribute specification component and the engine component managed by the resource management unit 20 are physically or virtually stored.

워크플로우 인스턴스 명세 관리부(26)는 기존에 작성되어 저장된 워크플로우 명세 인스턴스를 관리한다. 이러한 워크플로우 명세 인스턴스 관리부(26)는 편집부(5)의 요청에 따라 (가령, 도 2의 워크플로우 인스턴스 선택부(76)를 통해) 워크플로우 명세 인스턴스를 추후에 활용할 수 있도록 보관 및 관리한다.The workflow instance specification management unit 26 manages a previously created and stored workflow specification instance. The workflow specification instance management unit 26 stores and manages the workflow specification instance to be used later at the request of the editing unit 5 (for example, through the workflow instance selection unit 76 of FIG. 2 ).

그 밖에 도면에는 도시하지 않았으나, 자원 관리부(20)는 워크플로우 인스턴스의 컴퍼넌트 특성 또는 속성을 결정짓는 속성명세가 포함된 속성명세 컴퍼넌트와 그 목록을 관리(업데이트 포함)하는 속성명세 컴퍼넌트 관리부와 실행을 위한 컴퍼넌트(엔진 컴퍼넌트)들과 그 목록을 관리(업데이트 포함)하는 엔진 컴퍼넌트 관리부를 더 포함하도록 구성될 수 있다.Other than that, although not shown in the drawings, the resource management unit 20 performs the attribute specification component management unit and the attribute specification component management unit that manages (updates) the attribute specification components including attribute specifications that determine component properties or attributes of the workflow instance It may be configured to further include an engine component management unit for managing (including updating) components (engine components) for and the list thereof.

시스템 구성부(30)는 작성된 워크플로우의 실행에 필요한 컴퍼넌트를 생성하는 기능을 제공한다. 시스템 구성부(30)는 프론트엔드(10)로부터 입력된 작업 구조(워크플로우 구조)와 작업 명세(워크플로우 명세)에 따라 필요한 엔진 컴퍼넌트 컨테이너들을 구성하여 엔진 인스턴스를 생성한다.The system configuration unit 30 provides a function of creating a component necessary for execution of the created workflow. The system configuration unit 30 constructs necessary engine component containers according to the work structure (workflow structure) and work specification (workflow specification) input from the front end 10 to create an engine instance.

이를 위해, 시스템 구성부(30)는 워크플로우 구성부(34) 및 로그 관리부(36)를 포함한다. To this end, the system configuration unit 30 includes a workflow configuration unit 34 and a log management unit 36.

워크플로우 구성부(34)는, 자원 관리부(20)에서 관리하는 자원을 기반으로, 프론트 엔드부(10)를 통해 편집부(5)로부터 수신한 작업 구조(워크플로우 구조)와 작업 명세(워크플로우 명세)에 대응하는 속성명세 컴퍼넌트와 엔진 컴퍼넌트를 바인딩하는 과정을 통해 일련의 엔진 컴퍼넌트를 구성하고, 그 일련의 엔진 컴퍼넌트를 기반으로 하는 워크플로우 실행 플랫폼을 구성한다. The workflow configuration unit 34 includes a work structure (workflow structure) and a work specification (workflow structure) received from the editing unit 5 through the front end unit 10, based on the resources managed by the resource management unit 20. A series of engine components are configured through the process of binding the attribute specification component corresponding to the specification) and the engine component, and a workflow execution platform based on the series of engine components is formed.

상기 엔진 컴퍼넌트와 바인딩되는 속성명세 컴퍼넌트는, 예를 들면, 구글의 Protobuf 메세지 객체, 스칼라의 Case Class, 자바의 Property 객체 등을 포함한다.The attribute specification component bound to the engine component includes, for example, Google's Protobuf message object, Scala's Case Class, Java's Property object, and the like.

워크플로우 구성부(34)는 워크플로우를 구성하는 엔진 컴퍼넌트와 이 엔진 컴퍼넌트의 특성을 결정짓는 파라미터들을 정의한 속성명세 컴퍼넌트를 바인딩하여 생성한 엔진 컴퍼넌트들의 인스턴스를 엔진 컨테이너에 바인딩함으로써 워크플로우를 실행하기 위한 일련의 엔진 인스턴스들이 포함되는 워크플로우 실행 인스턴스부(52)를 동적으로 구성한다.The workflow configuration unit 34 executes the workflow by binding the engine component constituting the workflow and the property specification component defining the parameters that determine the characteristics of the engine component, and binding the instances of the generated engine components to the engine container. A workflow execution instance unit 52 that includes a series of engine instances for dynamic is configured.

하나의 워크플로우를 실행하기 위해 생성된 엔진은 하나의 독립된 프로그램 패키지로서 네트워크로 연결된 다른 컴퓨팅 장치에 배포되고 실행된다.The engine created to execute a workflow is distributed and executed on other computing devices connected via a network as a single independent program package.

로그 관리부(36)는 워크플로우를 구성하는 엔진의 실행에 따라 생성되는 로그 정보들을 관리하고, 이를 요청자에게 제공한다. The log management unit 36 manages log information generated according to the execution of the engine constituting the workflow, and provides the log information to the requestor.

시스템 제어부(40)는 시스템 구성부(30)가 생성한 엔진 인스턴스(엔진)들을 구동하고, 또한 구동된 엔진 인스턴스(엔진)들을 종료시키는 역할을 수행한다. 즉, 시스템 제어부(40)가 워크플로우 실행 인스턴스부(52)에 워크플로우 실행을 요청하면, 워크플로우가 실행된다. The system control unit 40 drives engine instances (engines) generated by the system configuration unit 30 and also serves to terminate the driven engine instances (engines). That is, when the system control unit 40 requests the workflow execution instance unit 52 to execute the workflow, the workflow is executed.

또한 시스템 제어부(40)는 특정 도메인에서 실행되도록 생성된 특정 엔진과 다른 특정 도메인에서 실행되도록 생성된 엔진이 서로 파이프라인 방식으로 실행되도록 제어할 수 있다. 이러한 엔진 구성에 대해서 아래에서 상세히 설명한다.In addition, the system controller 40 may control a specific engine generated to be executed in a specific domain and an engine generated to be executed in a specific domain different from each other to be executed in a pipeline manner. This engine configuration will be described in detail below.

응용부(50)는, 워크플로우 실행 인스턴스부(52), 응용 저장소(54) 및 응용 접근 제어부(56)를 포함한다.The application unit 50 includes a workflow execution instance unit 52, an application storage 54, and an application access control unit 56.

워크플로우 실행 인스턴스부(52)는 편집부(5)를 통해 정의된 워크플로우 사양(스펙)을 실행하기 위해 생성된 인스턴스들을 포함하도록 구성된다.The workflow execution instance unit 52 is configured to include instances created to execute the workflow specification (spec) defined through the editing unit 5.

응용 저장소(54)는 워크플로우 상에서 수집 또는 가공된 데이터를 저장하기 위한 서비스를 제공한다. 이때, 응용 저장소부(54)는 특정 도메인 내에 있거나 외부에 있을 수 있다.The application storage 54 provides a service for storing data collected or processed on the workflow. In this case, the application storage unit 54 may be in or outside a specific domain.

응용 접근 제어부(56)는 서로 다른 도메인의 워크플로우를 각각 구성하는 엔진들이 응용저장소(54)에 접근하는 것을 제어한다. The application access control unit 56 controls the access of the engines constituting the workflow of different domains to the application storage 54.

본 발명에 따른 엔진 프레임워크(100)는, 응용 저장소(54)와 응용 접근 제어부(56)를 이용하여 하나의 도메인에서 구성된 워크플로우의 구성과 절차를 확장함으로써, 서로 다른 공간 도메인, 서로 다른 업무 도메인 또는 서로 다른 목적 도메인에 공통으로 적용할 수 있는 크로스도메인 확장형 워크플로우를 구성할 수 있다. 이러한 응용 저장소(54)와 응용 접근 제어부(56)를 이용한 크로스도메인 확장 워크플로우 구성의 예는 아래에서 상세히 설명한다. The engine framework 100 according to the present invention extends the configuration and procedure of the workflow configured in one domain using the application storage 54 and the application access control unit 56, so that different spatial domains and different tasks You can configure a cross-domain extensible workflow that can be commonly applied to domains or different target domains. An example of a cross-domain extension workflow configuration using the application storage 54 and the application access control unit 56 will be described in detail below.

또한, 본 발명에 따른 워크플로우 엔진 프레임워크(100)는, 코어노드, 클라우드와 같은 하나 이상의 계층노드, 동일 계층의 다수의 엣지노드, 또는 코어 노드로 구성된 그룹내 노드들이 협력하여 하나의 목적을 달성하기 위한 워크플로우의 구성 및 실행 방법을 제공한다.In addition, the workflow engine framework 100 according to the present invention, a core node, one or more hierarchical nodes such as a cloud, a plurality of edge nodes of the same layer, or nodes within a group consisting of a core node cooperate to achieve one purpose. Provides a method of constructing and executing a workflow to achieve.

또한, 본 발명에 따른 워크플로우 엔진 프레임워크(100)는 주기적 기계학습 모델 튜닝과 서빙모델 업데이트 등과 같은 적응적 지능서비스 워크플로우 실행을 달성하기 위한 워크플로우를 구성하고 실행할 수 있다.In addition, the workflow engine framework 100 according to the present invention may configure and execute a workflow for achieving an adaptive intelligent service workflow execution such as periodic machine learning model tuning and serving model update.

또한, 본 발명에 따른 워크플로우 엔진 프레임워크(100)는 하나 이상의 API를 연결하여 복합 API를 생성하기 위한 서비스 파이프라인용 워크플로우를 구성하고 실행할 수 있다.In addition, the workflow engine framework 100 according to the present invention may configure and execute a workflow for a service pipeline for generating a complex API by connecting one or more APIs.

이하, 본 발명의 일 실시 예에 따른 크로스도메인 확장형 워크플로우를 구성하기 위한 엔진 구성(엔진 컨테이너 구성)에 대해 설명하기로 한다.Hereinafter, an engine configuration (engine container configuration) for configuring a cross-domain extended workflow according to an embodiment of the present invention will be described.

도 3은 본 발명의 일 실시 예에 따른 크로스도메인 확장형 워크플로우를 구성하기 위한 엔진의 구성도이다.3 is a block diagram of an engine for configuring a cross-domain extended workflow according to an embodiment of the present invention.

도 3을 참조하면, 실시 예에 따른 크로스도메인 확장형 워크플로우를 구성하기 위해, 도 1에 도시된 응용 저장소(54)와 응용 접근 제어부(56)가 이용된다.Referring to FIG. 3, in order to configure a cross-domain extended workflow according to an embodiment, an application storage 54 and an application access control unit 56 shown in FIG. 1 are used.

제1 엔진(60)은 도메인 #1의 제1 워크플로우를 구성(실행)하고, 제2 엔진(70)은 도메인 #2의 제2 워크플로우를 구성(실행)한다.The first engine 60 configures (executes) a first workflow of domain #1, and the second engine 70 configures (executes) a second workflow of domain #2.

제1 엔진(60)은 제어기(controller)(61), 입력기(reader)(62), 다수의 단위 처리기(unit operator)(63, 64 및 65), 실행기(runner)(66) 및 출력기(writer)(67)를 포함하도록 구성된다. 제2 엔진(70)은 및 제어기(71), 입력기(72), 다수의 단위 처리기(73, 74 및 75), 실행기(76) 및 출력기(77)를 포함하도록 구성된다.The first engine 60 includes a controller 61, a reader 62, a plurality of unit operators 63, 64 and 65, a runner 66 and a writer. ) (67). The second engine 70 is configured to include a controller 71, an input unit 72, a plurality of unit processors 73, 74 and 75, an executor 76 and an output unit 77.

입력기(reader)(62, 72)는 제어기(61)의 제어에 따라 데이터 출발지(data source)로부터 데이터를 읽어오는 기능을 갖는다. 여기서, 데이터 출발지는, 예를 들면, 인메모리 버퍼/캐시, 파일시스템, 메세징 시스템, 데이터베이스, 네트워크 등의 다양한 논리적 드라이버 개념의 소스일 수 있다.The readers 62 and 72 have a function of reading data from a data source under the control of the controller 61. Here, the data source may be a source of various logical driver concepts such as in-memory buffer/cache, file system, messaging system, database, and network.

출력기(writer)(67, 77)는 인메모리 버퍼, 캐시 메모리, 파일시스템, 메세징 시스템, 데이터베이스, 네트워크드라이버 중의 어느 하나의 타입의 데이터 종착지(도시하지 않음)에 데이터를 쓰는 기능을 갖는다.The writers 67 and 77 have a function of writing data to a data destination (not shown) of any one type of in-memory buffer, cache memory, file system, messaging system, database, and network driver.

다수의 단위 처리기(63, 64 및 65/73, 74 및 75)는 종속적으로 연결되어, 입력기(62)가 데이터 저장소로부터 읽어온 데이터를 파이프라닝 방식으로 처리한다. 여기서, 각 단위 처리기에 수행되는 데이터 처리는, 예를 들면, 데이터의 정제, 통합, 축소 및/또는 변환 처리 등을 포함한다. 정제, 통합, 축소 및 변환과 같은 데이터 처리 과정은 데이터 마이닝 기술에서 자세히 소개하고 있으며, 이에 대한 설명은 공지 기술로 대신한다.The plurality of unit processors 63, 64 and 65/73, 74 and 75 are dependently connected, and the input unit 62 processes the data read from the data storage in a pipelining manner. Here, the data processing performed in each unit processor includes, for example, data purification, consolidation, reduction and/or conversion processing. Data processing processes such as refining, consolidation, reduction, and transformation are introduced in detail in Data Mining Technology, and descriptions thereof are replaced with known technologies.

실행기(66, 76)는 데이터 처리에 필요한 모든 프로그램이나 외부 플랫폼/프레임워크들일 수 있다. 실행기(66 또는 76)는 , 예를 들면, 빅데이터 처리를 위한 Spark, 딥러닝 분석을 위한 Caffe, Tensorflow와 같은 딥러닝 플랫폼, Jena와 같은 지식 처리 엔진 중 하나와 연동하거나 이를 실행하기 위한 커넥터, REST 서버 또는 세션 관리기 등일 수 있다.The executors 66 and 76 may be all programs required for data processing or external platforms/frameworks. The executor (66 or 76) is, for example, Spark for processing big data, Caffe for deep learning analysis, a deep learning platform such as Tensorflow, a connector for interworking with or executing a knowledge processing engine such as Jena, It may be a REST server or a session manager.

제어기(61, 71)는 입력기(62 또는 72), 다수의 단위 처리기(63, 64 및 65 또는 73, 74 및 75), 실행기(66 또는 76), 출력기(67 또는 77)을 제어한다.Controllers 61 and 71 control inputs 62 or 72, multiple unit processors 63, 64 and 65 or 73, 74 and 75, executors 66 or 76, and outputs 67 or 77.

제어기(61 또는 71)는, 도 3에 도시된 바와 같이, 각 엔진이 입력기(62 또는 72), 다수의 단위 처리기(63, 64 및 65 또는 73, 74 및 75), 실행기(66 또는 76), 출력기(67 또는 77)로 구성된 경우, 파이프라이닝 방식에 따라 각 구성에서 처리한 데이터를 다음 구성으로 전달하는 순차 처리 방식, 각 구성에서 동시에 데이터를 처리하는 동시 처리 방식, 순차 처리 방식과 동시 처리 방식을 결합한 방식 등으로, 상기 구성들을 제어할 수 있다.Controller 61 or 71, as shown in Figure 3, each engine is an input device (62 or 72), a plurality of unit processors (63, 64 and 65 or 73, 74 and 75), an executor (66 or 76) , When configured with an output unit (67 or 77), a sequential processing method that transfers data processed by each configuration to the next configuration according to a pipelining method, a simultaneous processing method that processes data simultaneously in each configuration, a sequential processing method and simultaneous processing The above configurations can be controlled by a method that combines methods or the like.

제1 엔진(60)은 입력기(62)를 통해 데이터 출발지(Data source)로부터 읽어온 데이터를 처리하고, 그 처리한 데이터를 출력기(67)를 통해 응용 저장소(54)에 출력하는 제1 워크플로우를 수행한다. 이때 출력기(67)는 응용 저장소(54)에 접근하기 위한 접근 권한과 수단을 갖는다. The first engine 60 processes data read from a data source through the input device 62, and outputs the processed data to the application storage 54 through the output device 67. To do. At this time, the writer 67 has access rights and means for accessing the application storage 54.

출력기(67)는 인증을 통해 응용 저장소(54)에 접근할 수 있는 접근 권한(access rights)을 할당 받을 수 있으며, 그 접근 권한을 할당받기 위해, 출력기(67)는, 예를 들면, OAuth(Open Authentication, 개방 인증)와 같은 인증 방식을 기반으로 응용 저장소(54)에 API를 통해 접근할 수 있는 토큰을 활용할 수 있다.The writer 67 can be assigned access rights to access the application storage 54 through authentication, and to be assigned the access rights, the writer 67 is, for example, OAuth ( A token that can be accessed through an API to the application storage 54 can be used based on an authentication method such as Open Authentication (open authentication).

제2 엔진(70)의 입력기(72)는, 제1 엔진(60)의 출력기(67)와 마찬가지로, 토큰과 같은 접근권한을 가지며, 이러한 접근권한을 기반으로 응용 저장소(54)에 접근할 수 있다.The input device 72 of the second engine 70, like the output device 67 of the first engine 60, has the same access rights as a token, and can access the application storage 54 based on these access rights. have.

제2 엔진(70)의 입력기(72)는 응용 저장소(54)로부터 제1 엔진(60)에 의해 처리된 데이터를 읽어오고, 제2 엔진(70)의 다수의 단위 처리기(73, 74 및 75)는 제1 엔진(60)에 의해 처리된 데이터를 파이프라닝 방식으로 데이터 처리 과정을 수행하여, 그 처리 결과를 출력기(77)를 통해 데이터 종착지(Data destination)로 출력하는 제2 워크플로우를 실행한다.The input unit 72 of the second engine 70 reads data processed by the first engine 60 from the application storage 54, and a plurality of unit processors 73, 74, and 75 of the second engine 70 ) Is a second workflow for performing a data processing process on the data processed by the first engine 60 in a pipelined manner, and outputting the processing result to a data destination through the output unit 77. Run.

응용 접근 제어부(56)는 제1 엔진(60 또는 출력기(67))과 제2 엔진(70 또는 입력기(72))에 대한 인증 과정을 수행하고, 그 인증 결과에 따라, 제1 엔진(60 또는 출력기(67))과 제2 엔진(70 또는 입력기(72))에게 응용 저장소(54)에 대한 접근 권한을 할당하는 역할을 수행한다. The application access control unit 56 performs an authentication process for the first engine 60 or the output unit 67 and the second engine 70 or the input unit 72, and according to the authentication result, the first engine 60 or It performs a role of allocating access rights to the application storage 54 to the output unit 67 and the second engine 70 or the input unit 72.

이처럼 본 발명의 실시 예에서는 크로스도메인 확장형 워크플로우를 구성하기 위해, 도메인 #1의 제1 워크플로우를 구성하는 제1 엔진(60)과 도메인 #2의 제2 워크플로우를 구성하는 제2 엔진(70)이 응용 저장소(도 1의 54)를 매개로 유기적으로 결합됨으로써, 서로 다른 공간 도메인들, 서로 다른 업무 도메인들 및/또는 서로 다른 목적 도메인들 간의 융합이 가능한 워크플로우의 실행이 가능하다.As described above, in an embodiment of the present invention, in order to configure a cross-domain extended workflow, the first engine 60 constituting the first workflow of domain #1 and the second engine constituting the second workflow of domain #2 ( 70) is organically combined through the application storage (54 in FIG. 1), it is possible to execute a workflow capable of fusion between different spatial domains, different business domains, and/or different target domains.

이하, 본 발명의 다른 실시 예에 따른 파일 시스템 기반으로 크로스도메인 확장형 워크플로우를 구성하는 엔진(엔진 컨테이너) 구성에 대해 설명하기로 한다. 이해를 돕기 위해, 파일 시스템 기반으로 데이터의 이동, 복사, 삭제를 수행하는 단일 엔진 구성에 대해 설명하기로 한다.Hereinafter, a configuration of an engine (engine container) constituting a cross-domain extended workflow based on a file system according to another embodiment of the present invention will be described. For better understanding, a description will be made of the configuration of a single engine that moves, copies, and deletes data based on a file system.

도 4는 본 발명의 실시 예에 따른 파일시스템 기반의 단일 엔진 구성을 도시한 도면이다.4 is a diagram illustrating a configuration of a single engine based on a file system according to an embodiment of the present invention.

도 4를 참조하면, 본 발명의 일 실시 예에 따른 파일시스템 기반의 엔진(또는 엔진 컨테이너)은 제어기(81), 입력기(82), 다수의 단위 처리기들(83, 84 및 85), 실행기(86) 및 출력기(87)를 포함하도록 구성된다.4, a file system-based engine (or engine container) according to an embodiment of the present invention includes a controller 81, an input device 82, a plurality of unit processors 83, 84, and 85, and an executor ( 86) and an output unit 87.

입력기(82)는 제어기(81)의 제어에 따라 데이터 출발지(data source)로부터 파일 목록들을 읽어온다.The input device 82 reads file lists from a data source under the control of the controller 81.

단위 처리기들(83, 84, 85)은 입력기(82)로부터 입력된 파일 목록에 대한 데이터 처리 과정을 파이프라인 방식으로 처리한 후, 그 처리 완료된 파일 목로들을 출력기(87)로 입력한다.The unit processors 83, 84, 85 process the data processing process for the file list input from the input unit 82 in a pipeline manner, and then input the processed file lists to the output unit 87.

예를 들면, 단위 처리기(83)는, 입력기(82)로부터 입력된 파일 목록 중에서 데이터 종착지로 이동시키고자 하는 파일을 선정하도록 필터링하고, 단위 처리기(84)는 단위 처리기(83)에 의해 필터링된 파일의 파일명을 새로운 파일명으로 변환하고, 단위 처리기(85)는 단위 처리기들(83, 84)에 의해 처리된 파일 목록에 포함된 파일들의 서로 다른 디렉토리 경로들을 동일한 하나의 디렉토리 경로로 변경한다. For example, the unit processor 83 filters to select a file to be moved to a data destination from the list of files input from the input unit 82, and the unit processor 84 is filtered by the unit processor 83. The file name of the file is converted into a new file name, and the unit processor 85 changes different directory paths of files included in the file list processed by the unit processors 83 and 84 into the same single directory path.

출력기(87)는 단위 처리기들(83, 84 및 85)에 의해 처리된 파일 목록과 그 파일 목록에 해당하는 파일들을 정의된 이동 경로에 따라 데이터 출발지로부터 데이터 종착지(data destination)로 이동 또는 복사하는 기능을 갖도록 정의될 수 있다.The output unit 87 moves or copies a list of files processed by the unit processors 83, 84, and 85 and files corresponding to the list of files from a data source to a data destination according to a defined movement path. It can be defined to have a function.

또한, 출력기(87)는 단위 처리기들(83, 84 및 85)에 의해 처리된 파일 목록과 그 파일 목록에 해당하는 파일들을 데이터 출발지로부터 데이터 종착지(data destination)로 이동 또는 복사하지 않고, 삭제하는 기능을 갖도록 정의될 수 있다.In addition, the output unit 87 deletes the file list processed by the unit processors 83, 84 and 85 and the files corresponding to the file list without moving or copying from the data source to the data destination. It can be defined to have a function.

도 5는 도 4에 도시한 파일시스템 기반의 단일 엔진 구성을 이용하여 크로스도메인 확장형 워크플로우를 구성하기 위한 엔진의 구성도이고, 도 6은 도 5에 도시한 엔진 구성의 다른 예를 도시한 엔진의 구성도이다.FIG. 5 is a configuration diagram of an engine for configuring a cross-domain extended workflow using a single engine configuration based on a file system shown in FIG. 4, and FIG. 6 is an engine showing another example of the engine configuration shown in FIG. It is a configuration diagram of.

먼저, 도 5를 참조하면, 제1 및 제2 엔진(90, 110)은 도메인 #1의 제1 워크플로우를 구성(실행 또는 수행)하고, 제3 엔진(120)은 도메인 #1과 다른 물리적 공간을 정의하는 도메인 #2의 제2 워크플로우를 구성(실행 또는 수행)한다. 이때, 응용 저장소(54) 와 응용 접근 제어부(56)는 도메인 #2에서 실행된다.First, referring to FIG. 5, the first and second engines 90 and 110 configure (execute or perform) the first workflow of domain #1, and the third engine 120 is Configure (execute or execute) the second workflow of domain #2 that defines the space. At this time, the application storage 54 and the application access control unit 56 are executed in domain #2.

제1 내지 제3 엔진(90, 110, 120) 각각은 제어기(91, 111, 121), 입력기(92, 112, 122), 단위 처리기(93, 113, 123), 실행기(94, 114, 124) 및 출력기(95)를 포함하도록 구성된다.Each of the first to third engines (90, 110, 120) is a controller (91, 111, 121), input devices (92, 112, 122), unit processors (93, 113, 123), executors (94, 114, 124). ) And an output unit 95.

제1 내지 제3 엔진(90, 110, 120) 중 적어도 하나는 도 4에 도시한 파일 시스템 기반의 단일 엔진으로 구성된다. 즉, 제1 내지 제3 엔진(90, 110, 120) 모두가 파일 시스템 기반의 단일 엔진으로 구성되거나 일부만 파일 시스템 기반의 단일 엔진으로 구성될 수 있다. 물론, 제1 내지 제3 엔진(90, 110, 120) 모두 도 3에 도시에 도시한 단일 엔진(60 또는 70)으로 구성될 수도 있다. At least one of the first to third engines 90, 110, and 120 is configured as a single engine based on the file system shown in FIG. 4. That is, all of the first to third engines 90, 110, and 120 may be configured as a single engine based on a file system, or only partially may be configured as a single engine based on a file system. Of course, all of the first to third engines 90, 110, and 120 may be configured with a single engine 60 or 70 shown in FIG. 3.

도 5의 엔진 구성에서는 제2 엔진(110)이 파일 시스템 기반의 단일 엔진으로 구성되고, 제1 및 3 엔진(90 및 120)가 도 3에 도시에 도시한 단일 엔진(60 또는 70)('데이터 기반의 단일 엔진')으로 구성된다.In the engine configuration of FIG. 5, the second engine 110 is configured as a single engine based on a file system, and the first and third engines 90 and 120 are the single engines 60 or 70 (' It consists of a single engine based on data').

제2 엔진(110)에 포함된 구성들에 대한 설명은 도 4의 파일 시스템 기반의 단일 엔진에 포함된 각 구성에 대한 설명으로 대신하고, 제1 및 제3 엔진(90 및 120) 각각에 포함된 구성들에 대한 설명은 도 3에 도시한 데이터 기반의 단일 엔진(60 또는 70)에 포함된 각 구성에 대한 설명으로 대신한다.The description of the components included in the second engine 110 is replaced by a description of each component included in the single engine based on the file system of FIG. 4, and is included in each of the first and third engines 90 and 120 The description of the configured configurations is replaced with a description of each configuration included in the data-based single engine 60 or 70 shown in FIG. 3.

또한, 도 5에서 도 3 및 4와는 다르게, 각 엔진이 하나의 단위 처리기(93, 113, 123)만을 포함하고 있으나, 이는 도면의 간략화를 위함이지, 본 발명을 한정하고자 하는 의도는 아니다.In addition, unlike FIGS. 3 and 4 in FIG. 5, each engine includes only one unit processor 93, 113, and 123, but this is for simplification of the drawing and is not intended to limit the present invention.

이하, 도메인 #1의 제1 워크플로우와 도메인 #2의 제2 워크플로우의 융합을 위해, 도메인 #1의 제1 워크플로우에 대한 처리 결과를 도메인 #2로 전달하는 방법에 대해 설명한다.Hereinafter, a method of transmitting a processing result of the first workflow of domain #1 to the domain #2 for fusion of the first workflow of domain #1 and the second workflow of domain #2 will be described.

우선, 도메인 #1의 제1 엔진(90)이 데이터 출발지(A)로부터 읽어온 데이터(파일 목록 및 파일)에 대해 데이터 처리과정을 수행하고, 그 처리 완료된 데이터(파일 목록 및 파일)를 중간 데이터 종착지(B)로 출력한다.First, the first engine 90 of domain #1 performs a data processing process on the data (file list and file) read from the data source (A), and the processed data (file list and file) is converted into intermediate data. Output to destination (B).

이어, 제2 엔진(110)이 중간 데이터 종착지(B)로부터 파일 목록들을 읽어오고, 읽어온 파일 목록들 중에서 도메인 #2에 전달하고자 하는 파일 목록을 추출(필터링)하여, 제2 도메인에서 실행되는 응용 저장소(54)에 출력한다. Then, the second engine 110 reads the file list from the intermediate data destination (B), extracts (filters) the file list to be delivered to domain #2 from the read file list, and is executed in the second domain. Output to the application storage 54.

이때 도메인 #2의 응용 접근 제어부(56)는 도메인 #1에서 실행되는 제2 엔진(100)의 출력기(115)가 응용 저장소(54)에 접근할 수 있는 접근 권한이 있는지 확인하고, 접근 권한이 있는 것으로 검증되면, 제2 엔진(110)의 출력기(115)는 응용 저장소(54)에 접근하여, 단위 처리기(113)에 의해 추출(필터링)된 파일 목록(이하, 제1 워크플로우의 처리 결과)을 응용 저장소(54)로 출력한다.At this time, the application access control unit 56 of domain #2 checks whether the output unit 115 of the second engine 100 running in domain #1 has access rights to access the application storage 54, and has access rights. If it is verified that there is, the output unit 115 of the second engine 110 accesses the application storage 54 and a list of files extracted (filtered) by the unit processor 113 (hereinafter, the processing result of the first workflow ) To the application storage 54.

그러면, 도메인 #2의 제3 엔진(120)은 응용 저장소(54)로부터 제2 엔진에 의해 처리 완료된 제1 워크플로우의 처리 결과를 읽어오고, 그 읽어온 제1 워크플로우의 처리 결과에 대해 정의된 데이터 처리 과정을 수행하여, 최종 데이터 종착지(C)로 출력한다.Then, the third engine 120 of domain #2 reads the processing result of the first workflow processed by the second engine from the application storage 54, and defines the processing result of the read first workflow. The processed data is processed and output to the final data destination (C).

다음으로, 도 6의 엔진 구성은 응용 저장소(54)와 응용 접근 제어부(56)가 도메인 #1에 실행되는 점에서 도 5의 엔진 구성과 가장 큰 차이점이 있다. 이하의 설명에서는 제1 엔진(90)의 출력기와 제2 엔진(110)의 입력기(112)가 응용 저장소(54)에 대한 접근 권한이 있는 것으로 가정한다.Next, the engine configuration of FIG. 6 has the biggest difference from the engine configuration of FIG. 5 in that the application storage 54 and the application access control unit 56 are executed in domain #1. In the following description, it is assumed that the output device of the first engine 90 and the input device 112 of the second engine 110 have access rights to the application storage 54.

도 6을 참조하면, 도메인 #1의 제1 엔진(90)은 데이터 출발지(A)로부터 읽어온 데이터(파일 목록 및 파일)에 대해 데이터 처리 과정을 수행한 후, 그 처리 결과를 도메인 #1의 응용 저장소(54)에 접근하여, 응용 저장소(54)로 출력한다. 6, the first engine 90 of domain #1 performs a data processing process on the data (file list and file) read from the data source (A), and then returns the processing result to the domain #1. The application storage 54 is accessed and output to the application storage 54.

이후, 도메인 #2의 제2 엔진(110)은 입력기(112)를 통해 도메인 #1의 응용 저장소(54)에 접근하여, 응용 저장소(54)로부터 제1 엔진(90)에 의해 처리된 처리 결과를 읽어온다.Thereafter, the second engine 110 of the domain #2 accesses the application storage 54 of the domain #1 through the input device 112, and the processing result processed by the first engine 90 from the application storage 54 Read.

이후, 제2 엔진(110)은 응용 저장소(54)로부터 읽어온 그 처리 결과에 포함된 파일 목록들 중에서 필요한 파일 목록을 추출(필터링)한 후, 추출된 파일 목록과 파일을 중간 데이터 종착지(B)로 이동시키거나 복사한다.Thereafter, the second engine 110 extracts (filters) a required file list from among the file lists included in the processing result read from the application storage 54, and then transfers the extracted file list and files to the intermediate data destination (B). ) To move or copy.

이후, 제3 엔진(120)은 입력기(122)를 통해 중간 데이터 종착지(B)로 이동 또는 복사된 데이터(파일 목록과 파일)를 읽어온 후, 단위 처리기(123)를 통해 정해진 방식으로 데이터 치리 과정을 수행한 후, 출력기(125)를 통해 최종 데이터 종착지(C)로 출력한다.Thereafter, the third engine 120 reads the moved or copied data (file list and file) to the intermediate data destination B through the input device 122, and then processes the data in a predetermined manner through the unit processor 123. After performing the process, it is output to the final data destination (C) through the output unit 125.

도 7은 본 발명의 실시 예에 따른 크로스도메인 확장형 워크플로우 기반의 협력형 지능 서비스를 제공하는 방법을 설명하기 위한 도면이다.7 is a diagram illustrating a method of providing a cooperative intelligent service based on a cross-domain extended workflow according to an embodiment of the present invention.

도 7을 참조하면, 본 발명의 실시 예에 따른 협력형 지능 서비스는, 도 3 내지 도 6에서 설명한 엔진 구성을 기반으로, 엣지 도메인과 코어 도메인이 서로 협력하여 하나의 목적을 달성하기 위한 크로스도메인 확장형 워크플로우를 구성하고, 실행한다.Referring to FIG. 7, a cooperative intelligent service according to an embodiment of the present invention is a cross domain for achieving one purpose by cooperating with an edge domain and a core domain based on the engine configuration described in FIGS. 3 to 6. Build and run the extensible workflow.

협력형 지능 서비스를 제공하기 위해, 엣지 도메인 #1의 워크플로우, 엣지 도메인 #2의 워크플로우 및 코어 도메인의 워크플로우를 구성하고, 실행할 수 있는 워크플로우 엔진 프레임워크가 설치 및 운영되는 시스템 환경이 가정된다.In order to provide collaborative intelligence services, the system environment in which the workflow engine framework that can configure and execute the workflow of edge domain #1, the workflow of edge domain #2, and the workflow of core domain is installed and operated. Is assumed.

엣지 도메인 #1의 제1 엣지 노드(170)는 데이터 출발지(160)로부터 데이터를 수집하고 처리하기 위한 워크플로우 #1을 실행한다. 여기서, 제1 엣지 노드(170)는 제1 엣지 노드(170)에서 엣지 도메인 #의 제1 워크플로우를 실행하는 엔진으로 지칭될 수 있다.The first edge node 170 of edge domain #1 executes workflow #1 for collecting and processing data from the data origin 160. Here, the first edge node 170 may be referred to as an engine that executes the first workflow of the edge domain # in the first edge node 170.

워크플로우 #1은 데이터 출발지(160)로부터 수집된 데이터를 처리하는 엔진과 그 처리한 결과(데이터 파일)를 코어 도메인의 코어 노드(190)와 공유하기 위해 공유 저장소(180, 응용 저장소)로 이동 또는 복사하는 파일 시스템 기반의 엔진으로 구성된다.Workflow #1 is moved to the shared storage 180 (application storage) to share the engine processing the data collected from the data source 160 and the processing result (data file) with the core node 190 of the core domain. Or, it is composed of an engine based on the file system to be copied.

코어 도메인의 코어 노드(190)는 공유 저장소(180)로부터 제1 엣지 노드(170)에 의한 처리 결과(데이터 파일)를 훈련 데이터로 이용하여 학습 모델에 대한 파인 튜닝을 수행하는 워크플로우 #2를 실행한다. 여기서, 코어 노드(190)는 코어 노드(190)에서 코어 도메인의 워크플로우#2를 실행하는 엔진으로 지칭될 수 있다.The core node 190 of the core domain uses the processing result (data file) by the first edge node 170 from the shared storage 180 as training data, and performs workflow #2 for fine tuning the learning model. Run. Here, the core node 190 may be referred to as an engine that executes the workflow #2 of the core domain in the core node 190.

워크플로우 #2는 공유 저장소(180)로부터 워크플로우 #1의 처리 결과(데이터 파일)를 훈련 데이터로서 읽어오는 엔진, 읽어온 훈련 데이터(데이터 파일)을 이용하여 파인 튜닝을 위한 학습을 수행하는 엔진, 그 학습 결과에 따라 생성된(업데이트된) 신규 버전의 학습 모델을 공유 저장소(200)로 이동시키는 엔진으로 구성된다. Workflow #2 is an engine that reads the processing result (data file) of workflow #1 from the shared storage 180 as training data, and an engine that performs learning for fine tuning using the read training data (data file). , It is composed of an engine that moves the new version of the learning model generated (updated) according to the learning result to the shared storage 200.

엣지 도메인 #3의 제2 엣지 노드(210)는 공유 저장소(200)로부터 로딩된 신규버전의 학습 모델을 이용하여 예측 서비스를 수행하는 워크플로우 #3을 실행한다. 여기서, 제2 엣지 노드(210)는 엣지 도메인 #3의 워크플로우 #3을 실행하는 엔진으로 지칭될 수 있다.The second edge node 210 of edge domain #3 executes a workflow #3 of performing a prediction service using a new version of the learning model loaded from the shared storage 200. Here, the second edge node 210 may be referred to as an engine that executes workflow #3 of edge domain #3.

워크플로우 #3은 신규 버전의 학습 모델을 공유 저장소(200)로부터 제2 엣지 노드로 이동시키는 엔진, 공유 저장소(200)로부터 이동된 신규 버전의 학습 모델을 이용하여 예측 서비스를 제공하기 위한 서빙을 수행하는 서빙 엔진으로 구성된다. Workflow #3 is an engine that moves a new version of the learning model from the shared storage 200 to the second edge node, and serves to provide a prediction service using the new version of the learning model moved from the shared storage 200. It consists of a serving engine that performs.

이처럼, 엣지 노드와 코어 노드가 서로 협력하여 워크플로우를 수행함으로써, 협력형 지능 서비스를 제공하는 것이 가능하다.As such, it is possible to provide a cooperative intelligent service by performing a workflow in cooperation between the edge node and the core node.

도 8은 본 발명의 일 실시 예에 따른 서로 다른 업무 및 목적 도메인들에서 제공하는 서비스들을 융합한 융합 지능 서비스를 정의하기 위한 엔진(엔진 컨테이너)의 구성도이다.8 is a block diagram of an engine (engine container) for defining a converged intelligent service in which services provided by different business and target domains are fused according to an embodiment of the present invention.

도 8을 참조하면, 서로 다른 업무 및 목적 도메인들에서 제공하는 서비스들을 융합한 융합 지능 서비스를 정의하기 위한 엔진(300)은 제어기(301), 다수의 오퍼레이터(302~306), 실행기(307)를 포함하도록 구성되며, 이러한 구성 요소들은 도 3 및 4를 참조하여 설명한 구성들과 유사하다. Referring to FIG. 8, an engine 300 for defining a converged intelligent service that combines services provided by different business and purpose domains includes a controller 301, a plurality of operators 302 to 306, and an executor 307. It is configured to include, and these components are similar to those described with reference to FIGS. 3 and 4.

다만, 도 8의 엔진(300)은 워크플로우 서비스에 있어서 서비스 실행을 서빙하는 기능을 위하여 구성되며, 이러한 점에서 서빙 엔진(serving engine)으로 불릴 수 있다.However, the engine 300 of FIG. 8 is configured for a function of serving service execution in a workflow service, and in this regard, may be referred to as a serving engine.

제어기(301)는 다수의 오퍼레이터(302~306) 및 실행기 (307)의 동작을 제어한다.The controller 301 controls the operation of a number of operators 302-306 and executors 307.

다수의 오퍼레이터(operator)(302~306)는 다수의 API(Application Programming Interface)(410~430) 및 지식 베이스(440)와 각각 연동한다. 각 오퍼레이터는 도 3 내지 6에 도시한 단위 처리기와 유사한 구성으로 볼 수 있다.The plurality of operators 302 to 306 interlock with a plurality of application programming interfaces (APIs) 410 to 430 and the knowledge base 440, respectively. Each operator can be viewed as a configuration similar to the unit processor illustrated in FIGS. 3 to 6.

실행기(307)는 REST(Representational State Transfer) 서버이거나 REST 서버와 연동하는 것일 수 있으며, 클라이언트(400)의 요청에 따라 오퍼레이터들(302~306)을 순차적으로 호출한다.The executor 307 may be a Representational State Transfer (REST) server or interworking with a REST server, and sequentially calls the operators 302 to 306 according to the request of the client 400.

각 오퍼레이터(Operator)는 실행기(307)의 호출 시에, 실행기(307)로부터 전달된 Url 정보 또는 자신이 알고 있는 Url 정보를 이용하여 REST API를 호출하고, 호출한 REST API를 통해 제공된 데이터를 처리하여 다음 오퍼레이터(Operator)로 전달하는 파이프라인 방식으로 동작한다. When calling the executor 307, each operator calls the REST API using the URL information transmitted from the executor 307 or the URL information they know, and processes the data provided through the called REST API. Then, it operates in a pipeline method that passes it to the next operator.

최종 오퍼레이터(306)의 처리 결과는 실행기(307)를 통해 클라이언트(400)로 다시 반환된다.The processing result of the final operator 306 is returned back to the client 400 through the executor 307.

도 9는 본 발명의 다른 실시 예에 따른 서로 다른 업무 및 목적 도메인들에서 제공하는 서비스들을 융합한 융합 지능 서비스를 정의하기 위한 엔진(엔진 컨테이너)의 구성도이다.9 is a block diagram of an engine (engine container) for defining a converged intelligent service in which services provided by different business and target domains are fused according to another embodiment of the present invention.

도 9를 참조하면, 본 발명의 다른 실시 예에 따른 엔진(300')은 입력기(reader)(309)와 출력기(writer)(310)를 더 포함하고 있는 점을 제외하면, 도 8에 도시한 엔진의 구성과 동일하다.Referring to FIG. 9, the engine 300' according to another embodiment of the present invention further includes a reader 309 and a writer 310, as shown in FIG. It is the same as the engine configuration.

엔진(300')은, 예를 들면, 메시지 큐(Message Queue), Kafka 등으로부터 데이터를 읽어오는 입력기(309)와, 그 읽어온 데이터를 온톨로지 기반 추론을 수행하는 오퍼레이터(302~306)들과, 그 추론 결과를 REST 인터페이스를 통해서 서비스하는 실행기(307) 및 상기 추론 결과를 메시지 큐(Message Queue), Kafka 등으로 출력하는 출력기(310)를 포함하도록 구성됨으로써, 융합 지능 서비스를 제공할 수 있다.The engine 300' includes, for example, an input device 309 that reads data from a message queue, Kafka, etc., and operators 302 to 306 that perform ontology-based inference on the read data. , By being configured to include an executor 307 that serves the reasoning result through a REST interface and an output device 310 that outputs the reasoning result to a message queue, Kafka, etc., it is possible to provide a converged intelligence service. .

도 10 내지 14는 도 8 및 9에서 도시한 융합 지능 서비스를 위한 엔진의 내부 처리 절차를 설명하기 위한 도면들이다.10 to 14 are diagrams for explaining an internal processing procedure of the engine for the converged intelligence service shown in FIGS. 8 and 9.

먼저, 도 10의 융합 지능 서비스를 위한 엔진의 내부 처리 절차는 오퍼레이터들의 처리 결과들이 서로 영향을 미치지 않는 독립적인 경우에서 수행되는 내부 처리 절차이다.First, the internal processing procedure of the engine for the converged intelligence service of FIG. 10 is an internal processing procedure performed in an independent case where the processing results of operators do not affect each other.

먼저, REST 서버 내의 실행기(307)가 클라이언트(400)로부터의 융합 지능 서비스 요청에 따라 첫번째 오퍼레이터(302)를 호출하고(②), 호출된 첫번째 오퍼레이터(302)는 대응하는 RESTful API(450)(또는 외부 서버)에게 질의 데이터를 전달하고(③), 그에 대한 응답 데이터(④)를 RESTful API(450)로부터 수신한다.First, the executor 307 in the REST server calls the first operator 302 according to the fusion intelligent service request from the client 400 (2), and the called first operator 302 is the corresponding RESTful API 450 ( Or, it transmits the query data (③) to an external server), and receives the response data (④) from the RESTful API (450).

첫번째 오퍼레이터(302)의 처리 결과는 질의에 사용되는 입력 파라메터가 기록되는 입력 필드(Input field), 데이터가 기록되는 데이터 필드(Data field), 질의 주소를 가리키는 라우팅 정보가 라우트 필드(Route field) 및 상기 응답 데이터(④)가 기록되는 출력 필드(Output field)로 이루어진 데이터 포맷으로 구성된다. The processing result of the first operator 302 is an input field in which an input parameter used for a query is recorded, a data field in which data is recorded, and routing information indicating a query address is a route field and It consists of a data format consisting of an output field in which the response data (④) is recorded.

이러한 필드의 배열 순서는 오퍼레이터 별로 상이할 수 있으며, 상기 입력 필드, 데이터 필드 및 라우트 필드에 기록되는 정보들은 상기 질의 데이터의 주요 정보로 활용될 수 있다.The arrangement order of these fields may be different for each operator, and information recorded in the input field, data field, and route field may be used as main information of the query data.

첫번째 오퍼레이터(302)가 질의/응답 절차를 완료하면, 두 번째 오퍼레이터(303)가 대응하는 RESTful API(460)에게 질의 데이터(⑤)를 전달하고, 그에 대한 응답 데이터(⑥)를 RESTful API(460)로부터 수신하고, 수신한 응답 데이터가 반영된 처리 결과를 출력한다.When the first operator 302 completes the query/response procedure, the second operator 303 delivers the query data (⑤) to the corresponding RESTful API 460, and the response data (⑥) to the corresponding RESTful API (460). ) And outputs the processing result reflecting the received response data.

두번째 오퍼레이터가 질의/응답 절차를 완료하면, 세 번째 오퍼레이터(304)가 RESTful API(470)에게 질의 데이터(⑦)를 전달하고, 그에 대한 응답 데이터(⑧)를 RESTful API(470)로부터 수신하고, 수신한 응답 데이터가 반영된 처리 결과를 출력한다.When the second operator completes the query/response procedure, the third operator 304 delivers the query data (⑦) to the RESTful API 470, and receives the response data (⑧) from the RESTful API 470, Outputs the processing result reflecting the received response data.

모든 오퍼레이터들(302, 303 및 304)의 질의/응답 절차가 완료되면, 실행기(307)는 각 오퍼레이터가 출력한 처리 결과들를 취합하여, 이들을 클라이언트(400)에게 반환한다(⑨).When the query/response procedures of all operators 302, 303, and 304 are completed, the executor 307 collects processing results output by each operator and returns them to the client 400 (⑨).

도 11의 융합 지능 서비스를 제공하기 위한 엔진의 내부 처리 절차는 각 오퍼레이터(Operator)가 이전 오퍼레이터의 처리 결과를 자신의 질의에 반영하는 체이닝(chaining) 방식을 지원하는 점에서 도 10에 도시한 내부 처리 절차와 차이가 있다.The internal processing procedure of the engine for providing the converged intelligence service of FIG. 11 is the internal processing procedure shown in FIG. 10 in that each operator supports a chaining method in which the processing result of the previous operator is reflected in its own query. There is a difference from the processing procedure.

도 11을 참조하면, 클라이언트(400)의 서비스 요청(①)에 따라 실행기(307)가 호출한 첫 번째 오퍼레이터(302)는 입력 파라메터, 라우팅 정보, 데이터를 질의 데이터로 구성하여, 대응하는 RESTful API(450)로 전달한다(③).Referring to FIG. 11, the first operator 302 called by the executor 307 according to the service request (①) of the client 400 configures input parameters, routing information, and data as query data, and a corresponding RESTful API Pass it to (450) (③).

첫 번째 오퍼레이터(302)는 상기 질의 데이터에 대한 응답 데이터를 수신하여, 상기 질의 데이터의 출력 필드에 상기 응답 데이터를 기록하여, 상기 출력 필드를 업데이트 한다.The first operator 302 receives response data for the query data, records the response data in an output field of the query data, and updates the output field.

출력 필드의 업데이트가 완료되면, 첫 번째 오퍼레이터(302)는 입력 파라메터, 라우팅 정보, 및 응답 데이터로 구성된 처리 결과를 두 번째 오퍼레이터(303)로 출력한다.When the update of the output field is completed, the first operator 302 outputs a processing result consisting of input parameters, routing information, and response data to the second operator 303.

두 번째 오퍼레이터(303)는 첫번째 오퍼레이터(303)로부터 출력된 처리 결과(입력 파라메터, 라우팅 정보, 데이터 및 RESTful API(450)의 응답 데이터)를 이용하여 자신(303)의 질의 데이터를 업데이트한다. The second operator 303 updates the query data of itself 303 using the processing result (input parameters, routing information, data, and response data of the RESTful API 450) output from the first operator 303.

이후, 두 번째 오퍼레이터(303)는 업데이트된 자신의 질의 데이터(⑤)를 대응하는 RESTful API(460)(또는 외부 서버)로 전달하고, RESTful API(460)로부터 업데이트된 질의 데이터(⑤)에 대한 응답 데이터(⑥)를 수신하고, 그 응답 데이터(⑥)로 출력 필드를 업데이트한다. Thereafter, the second operator 303 transmits the updated query data ⑤ to the corresponding RESTful API 460 (or external server), and the updated query data ⑤ from the RESTful API 460 It receives response data (⑥) and updates the output field with the response data (⑥).

출력 필드의 업데이트가 완료되면, 두 번째 오퍼레이터(303)는 처리 결과를 세 번째 오퍼레이터(304)로 출력한다.When the update of the output field is completed, the second operator 303 outputs the processing result to the third operator 304.

유사하게, 세번째 오퍼레이터(304)는 두번째 오퍼레이터(303)로부터 입력된 처리 결과에 포함된 질의 데이터를 이용하여 자신의 질의 데이터를 업데이트하고, 업데이트된 질의 데이터(⑦)를 해당 RESTful API(470)로 전달하고, 상기 업데이트된 질의 데이터에 대한 응답 데이터(⑧)를 수신하고, 그 응답 데이터로 출력 필드를 업데이트를 한다.Similarly, the third operator 304 updates its own query data by using the query data included in the processing result input from the second operator 303, and transfers the updated query data (⑦) to the corresponding RESTful API 470. It transmits, receives response data (8) for the updated query data, and updates an output field with the response data.

출력 필드의 업데이트가 완료되면, 세 번째 오퍼레이터(304)는 처리 결과를 실행기(307)로 전달하고, 실행기(307)는 세 번째 오퍼레이터(304)로부터 전달된 최종 결과(⑨)를 클라이언트에게 반환한다.When the update of the output field is completed, the third operator 304 transfers the processing result to the executor 307, and the executor 307 returns the final result (⑨) transferred from the third operator 304 to the client. .

도 12의 융합 지능 서비스를 제공하기 위한 엔진의 내부 처리 절차는 데이터 필드를 읽어오는 입력기(Reader)와 처리된 데이터 필드를 출력하는 출력기(Writer)를 더 포함하는 경우에서 수행되는 내부 처리 절치이다.The internal processing procedure of the engine for providing the converged intelligence service of FIG. 12 is an internal processing procedure performed when an input device for reading a data field and a writer for outputting a processed data field are further included.

클라이언트(400)는 질의 데이터 포함되는 실제 데이터를 제외한 나머지 데이터(Input/Route)만을 포함하는 서비스 요청 메시지를 실행기(307)로 전달한다(①).The client 400 transmits a service request message including only the remaining data (Input/Route) excluding the actual data included in the query data to the executor 307 (①).

실행기(307)는 서비스 요청 메시지에 포함된 데이터(Input/Route)를 입력기(309)로 출력한다.The executor 307 outputs data (Input/Route) included in the service request message to the input device 309.

입력기(309, Reader)는 데이터 출발지(12)로부터 데이터를 읽어와 데이터 필드를 업데이트 한다. 이 때 입력기(309, Reader)가 데이터 출발지(12)로부터 읽어오는 데이터는 각각의 Operator 별로 Data를 명시하고 있는 배열 형태를 가질 수 있다.The input device 309 (Reader) reads data from the data source 12 and updates the data field. At this time, the data read from the data source 12 by the input device 309 may have an arrangement that specifies the data for each operator.

다음으로 오퍼레이터(303)는 입력기(309, Reader)로부터 읽어온 데이터를 포함하는 질의 데이터를 생성하여 RESTful API(460)로 전달하고(⑤), 질의 데이터에 대한 응답 데이터를 RESTful API(460)로부터 수신한다(⑥).Next, the operator 303 generates query data including data read from the input device 309 (Reader) and delivers it to the RESTful API 460 (⑤), and the response data for the query data is transmitted from the RESTful API 460. Receive (⑥).

오퍼레이터(303)의 질의 및 응답 절차가 완료된 후, 오퍼레이터(303)는 질의 데이터와 응답 데이터를 포함하는 처리 결과를 출력기(310)로 출력한다(⑦).After the inquiry and response procedure of the operator 303 is completed, the operator 303 outputs the processing result including the inquiry data and the response data to the output unit 310 (7).

출력기(310)는 오퍼레이터(303)로부터 수신한 처리 결과의 일부 또는 전체를 데이터 종착지(13)로 출력한다. The output unit 310 outputs a part or all of the processing result received from the operator 303 to the data destination 13.

마지막으로 실행기(307, Runner)는 출력기(310)로부터 수신한 오퍼레이터(303)의 처리 결과를 클라이언트(400)에 전달한다.Finally, the executor 307 transmits the processing result of the operator 303 received from the output device 310 to the client 400.

도 13의 융합 지능 서비스를 제공하기 위한 엔진이 내부 처리 절차는 마지막 오퍼레이터(304)가 출력을 집계(aggregation)하는 기능을 수행하는 경우에서의 내부 처리 절차이다.The internal processing procedure of the engine for providing the converged intelligence service of FIG. 13 is an internal processing procedure when the last operator 304 performs a function of aggregating outputs.

클라이언트의 요청(①)에 따라, 실행기(307)는 오퍼레이터들(302, 303)를 순차적으로 호출하고(②), 순차적으로 호출된 오퍼레이터들(302, 303)은 대응하는 RESTful API(450, 460)들로 질의 데이터를 각각 전달한다(③, ⑤).In response to the client's request (①), the executor 307 sequentially calls the operators 302 and 303 (②), and the sequentially called operators 302 and 303 correspond to the corresponding RESTful APIs 450 and 460 ), each of the query data is delivered (③, ⑤).

각 오퍼레이터는 질의 데이터에 대한 응답 데이터를 수신하고(④, ⑥), 그 응답 데이터를 이용하여 출력 필드에 업데이트한다.Each operator receives the response data for the query data (④, ⑥), and updates the output field using the response data.

출력 집계 기능을 갖는 마지막 오퍼레이터(304)는 Property로 정의된 집계 방법(평균, 합계, And, Or, Min, Max, Percentile 등)을 이용하여 이전 오퍼레이터들(302, 303)의 처리 결과에 포함된 데이터들(450과 460의 응답 데이터들(④, ⑥))를 집계하고, 그 집계한 결과로 자신(304)의 처리 결과에 포함된 출력 필드를 업데이트한다.The last operator 304 having the output aggregation function uses the aggregation method (average, sum, And, Or, Min, Max, Percentile, etc.) defined as a property to be included in the processing results of the previous operators (302, 303). The response data (4, 6) of the data 450 and 460 are aggregated, and an output field included in the processing result of the self 304 is updated with the aggregated result.

실행기(307)는 마지막 오퍼레이터(304)에 의해 집계된 처리 결과를 클라이언트(400)에게 반환한다(⑨).The executor 307 returns the processing result aggregated by the last operator 304 to the client 400 (⑨).

도 14의 융합 지능 서비스를 제공하기 위한 엔진의 내부 처리 절차는, 질의 주소를 가리키는 Url에 대한 룩업 테이블을 갖는 오퍼레이터들(303)를 포함하는 경우에서의 내부 처리 절차이다.The internal processing procedure of the engine for providing the converged intelligence service of FIG. 14 is an internal processing procedure in the case of including operators 303 having a lookup table for a URL indicating a query address.

먼저, 클라이언트의 요청(①)에 따라, 실행기(307)에 의해 호출된 첫번째 오퍼레이터(302)가 질의 데이터를 대응하는 API(450)(또는 외부 서버)로 전달하고, API(450)(또는 외부 서버)로 그 질의 데이터에 대한 응답 데이터(④)를 포함하도록 처리 결과를 구성하여 두번째 오퍼레이터(303)로 전달한다.First, according to the client's request (①), the first operator 302 called by the executor 307 delivers the query data to the corresponding API 450 (or external server), and the API 450 (or external server) Server) to include the response data (④) for the query data, and transmits the result to the second operator 303.

두 번째 오퍼레이터(303)는 Url에 대한 룩업 테이블을 가지며, 첫번째 오퍼레이터(302)의 처리 결과를 구성하는 출력 필드에 기록된 데이터(450의 응답 데이터(④))를 인덱스로 이용하여, 상기 출력 필드에 기록된 데이터(450의 응답 데이터(④))에 매핑되는 Url값을 룩업 테이블로부터 추출한다.The second operator 303 has a lookup table for URLs, and uses the data (response data (④) of 450) recorded in the output field constituting the processing result of the first operator 302 as an index, and the output field The Url value mapped to the recorded data (response data (4) of 450) is extracted from the lookup table.

이후, 두 번째 오퍼레이터(303)는 상기 룩업 테이블로부터 추출된 Url값을 포함하도록 처리 결과를 구성하여 세 번째 오퍼레이터(304)로 전달한다. 여기서, 두 번째 오퍼레이터(303)가 룩업 테이블을 이용하여 추출한 Url값은 세 번째 오퍼레이터(304)의 라우팅 정보를 업데이트하기 위한 용도로 사용된다. 즉, 세 번째 오퍼레이터(304)는 두 번째 오퍼레이터(303)가 추출한 Url값이 가리키는 외부 서버(460, 470)로 자신(304)의 질의 데이터를 전달한다.Thereafter, the second operator 303 constructs the processing result to include the Url value extracted from the lookup table, and transmits it to the third operator 304. Here, the Url value extracted by the second operator 303 using the lookup table is used for updating routing information of the third operator 304. That is, the third operator 304 transmits the query data of itself 304 to the external servers 460 and 470 indicated by the Url value extracted by the second operator 303.

마지막 오퍼레이터(304)는 상기 추출한 Url에 의해 업데이트된 라우팅 정보를 이용하여 API(460, 470)로 질의 데이터를 전달하고, 그에 대한 응답 데이터를 수신하고, 응답 데이터를 포함하는 처리 결과를 실행기(307)로 전달한다. The last operator 304 transmits the query data to the APIs 460 and 470 using the routing information updated by the extracted URL, receives the response data, and executes the processing result including the response data. ).

실행기(307)는 마지막 오퍼레이터(304)로부터 전달된 처리 결과를 클라이언트(400)로 반환한다(⑨).The executor 307 returns the processing result transmitted from the last operator 304 to the client 400 (⑨).

도 15는 도 13에 도시한 집계 기능을 갖는 오퍼레이터를 포함하는 엔진 구성을 이용하여 배관 누출(pipe leakage) 탐지와 관련된 워크플로우 서비스 시나리오를 설명하기 위한 도면이다.FIG. 15 is a diagram illustrating a workflow service scenario related to pipe leakage detection using an engine configuration including an operator having an aggregate function shown in FIG. 13.

도 15에 도시한 누출 탐지와 관련된 워크플로우 서비스 시나리오는 하나 이상의 지능 API를 앙상블 방식으로 구성하여 응답을 주는 엔진으로 구성된다.The workflow service scenario related to leak detection shown in FIG. 15 consists of an engine that provides a response by configuring one or more intelligent APIs in an ensemble manner.

서비스 클라이언트(500)는 배관의 음향신호를 수집하여 누출여부를 예측하는 API를 호출하고, 호출된 API를 서비스하는 실행기(600)는 오퍼레이터들(610, 620, 630)을 순차적으로 호출한다.The service client 500 calls an API for predicting leakage by collecting sound signals of the pipe, and the executor 600 serving the called API sequentially calls the operators 610, 620, and 630.

실행기(600)에 의해 호출된 오퍼레이터들(610, 620, 630) 각각은 배관 누출과 관련된 질의 데이터를 구성하여 각자의 외부 서버(710, 720, 730)로 전달한다. Each of the operators 610, 620, and 630 called by the executor 600 constructs query data related to the pipe leak and transmits it to their respective external servers 710, 720, 730.

외부 서버(610', 620', 630')들은 누출 탐지 알고리즘과 같은 예측 모델을 이용하여 누출 여부를 판별하고, 그 판별 결과를 응답 데이터를 구성하여 각자의 오퍼레이터들(610, 620, 630)로 전달한다.The external servers 610', 620', and 630' determine whether there is a leak by using a predictive model such as a leak detection algorithm, and the result of the determination is composed of response data to each of the operators 610, 620, and 630. Deliver.

마지막 오퍼레이터(640)는 각 오퍼레이터(610, 620, 630)의 처리 결과를 집계하고, 그 집계한 결과를 이용하여 배관 누출 여부를 최종적으로 판별하고, 그 최종 판별 결과를 실행기(600)를 통해 서비스 클라이언트(500)에 반환한다.The last operator 640 aggregates the processing results of each operator 610, 620, 630, and finally determines whether there is a pipe leak using the aggregated results, and provides the final determination result through the executor 600. It returns to the client 500.

도 16은 도 14에 도시한 룩업 테이블을 갖는 오퍼레이터를 포함하도록 구성된 엔진 구성을 이용하여 대화 생성과 관련된 워크플로우 서비스 시나리오를 설명하기 위한 도면이다.FIG. 16 is a diagram for describing a workflow service scenario related to conversation generation by using an engine configuration configured to include an operator having a lookup table shown in FIG. 14.

도 16을 참조하면, 도 16을 참조하면, 엔진 내의 첫번째 오퍼레이터(710)는 실행기(700)를 통해 클라이언트(500)로부터 문장을 수신하고, 그 수신한 문장의 토픽 분류를 요청하는 질의 데이터를 생성하여, 그 질의 데이터를 토픽(Topic) 추출을 위한 분류기 모델을 서비스하는 외부 서버(710')로 전달하고, 그 외부 서버(710')로부터 분류기 모델에 의해 추출된 토픽 정보를 포함하는 응답 데이터를 수신한다.Referring to FIG. 16, referring to FIG. 16, the first operator 710 in the engine receives a sentence from the client 500 through the executor 700, and generates query data for requesting topic classification of the received sentence. Thus, the query data is transferred to an external server 710' that serves a classifier model for topic extraction, and response data including topic information extracted by the classifier model from the external server 710' Receive.

첫번째 오퍼레이터(710)는 외부 서버(710')로부터 수신한 응답 데이터를 포함하도록 처리 결과를 구성하여, 이를 두번째 오퍼레이터(720)로 전달한다.The first operator 710 configures the processing result to include the response data received from the external server 710', and transmits it to the second operator 720.

두번째 오퍼레이터(720)는 첫번째 오퍼레이터(710)로부터 전달된 처리 결과에 포함된 분류 결과(토픽 정보)에 매핑되는 Url 주소를 룩업 테이블로부터 추출하고, 그 Url 주소를 포함하도록 처리 결과를 구성하여 마지막 오퍼레이터(730)로 전달한다.The second operator 720 extracts the URL address mapped to the classification result (topic information) included in the processing result transmitted from the first operator 710 from the lookup table, configures the processing result to include the URL address, and configures the last operator. Forward to (730).

마지막 오퍼레이터(730)는 두번째 오퍼레이터(720)의 처리 결과에 포함된 Url 주소를 이용하여 질의 데이터를 생성하고, 상기 Url 주소가 가리키는 외부 서버(720', 730')로 질의 데이터를 전달한다. 이때, 외부 서버(720', 730')는 응답 문장을 예측하는 대화 생성 모델을 서비스하는 것일 수 있다.The last operator 730 generates query data using the URL address included in the processing result of the second operator 720, and transmits the query data to the external servers 720' and 730' indicated by the URL address. In this case, the external servers 720 ′ and 730 ′ may serve a conversation generation model that predicts a response sentence.

외부 서버(720', 730')는 상기 응답 문장을 응답 데이터로 구성하여 마지막 오퍼레이터(730)로 전달하고, 마지막 오퍼레이터(730)는 응답 데이터에 포함된 응답 문장 실행기(700)를 통해 서비스 클라이언트(500)에 반환한다.The external servers 720 ′ and 730 ′ configure the response sentence as response data and deliver it to the last operator 730, and the last operator 730 transmits the response sentence to the service client through the response sentence executor 700 included in the response data. 500).

이처럼 서비스 클라이언트(500)가 문장을 입력하면, 최초 오퍼레이터의 질의 결과인 Topic 분류 결과에 따른 문장 생성 API의 주소가 선택적으로 결정되어, 문장의 문맥에 맞는 응답문이 생성되고, 그 응답문이 서비스 클라이언트(500)로 반환된다.As described above, when the service client 500 inputs a sentence, the address of the sentence generation API according to the topic classification result, which is the result of the initial operator's query, is selectively determined, a response sentence suitable for the context of the sentence is generated, and the response is service It is returned to the client 500.

도 17은 본 발명의 실시 예에 따른 융합 지능 서비스와 관련된 예측 모델을 주기적으로 업데이트 하기 위한 하나 이상의 워크플로우를 실행하고 제어하는 오케스트레이션 방법을 설명하기 위한 도면이다.17 is a diagram illustrating an orchestration method of executing and controlling one or more workflows for periodically updating a prediction model related to a converged intelligence service according to an embodiment of the present invention.

본 발명의 오케스트레이션 방법은, 시계열 데이터의 실시간 처리, 시계열 예측모델을 주기적으로 파인 튜닝(fine-tuning) 하여 서비스 중인 예측 모델을 업데이트하는 하나 이상의 워크플로우 파이프라인이 지속적으로, 순차적으로, 주기적으로 실행됨으로써, 지속적인 예측 서비스를 제공할 수 있다.In the orchestration method of the present invention, one or more workflow pipelines for updating a prediction model in service by performing real-time processing of time series data and periodically fine-tuning a time series prediction model are continuously, sequentially, and periodically executed. As a result, it is possible to provide continuous prediction services.

도 17을 참조하면, 실시간 데이터 처리(①)를 위한 워크플로우 #1이 구성된다. 실시간 스트림 방식의 프레임워크에서 실행된다.Referring to FIG. 17, workflow #1 for real-time data processing (①) is configured. It runs on a real-time stream framework.

워크플로우 #1은 데이터를 실시간으로 정제하기 위한 엔진, 엔진으로부터 전달된 정제된 데이터를 이용하여 학습용 데이터(훈련 데이터)를 만들기 위한 feature engineering을 수행하는 미니 배치(mini batch) 형식의 실시간 스트림 엔진 및 상기 학습용 데이터를 파일 스트림으로 생성하기 위한 시계열 스트림 파일 생성 엔진에 의해 구성된다.Workflow #1 is a real-time stream engine in the form of a mini batch that performs feature engineering to create training data (training data) using the engine for real-time purification of data, and the refined data delivered from the engine. It is configured by a time series stream file generation engine for generating the learning data as a file stream.

실시간 추론 서빙(②)을 위한 워크플로우 #2는 워크플로우 #1의 실행에 의해 처리된 실시간 데이터를 스트림 방식으로 수신하여 예측을 위한 추론(inference)을 수행하는 엔진#1 및 엔진#1에 의한 예측 결과들의 정확도를 평가하기 위한 평가용 데이터셋을 구성하고, 그 평가용 데이터셋을 파일 스트림 형태로 생성하는 엔진#2로 구성된다. Workflow #2 for real-time inference serving (②) is by engine #1 and engine #1 that receive real-time data processed by execution of workflow #1 in a stream manner and perform inference for prediction. It is composed of engine #2 that constructs an evaluation dataset to evaluate the accuracy of prediction results, and generates the evaluation dataset in the form of a file stream.

엔진#2는 엔진#1에 의해 수행된 예측 결과들 중에서 특정 예측 결과들을 다양한 방식으로 선정하고, 그 선정된 특정 예측 결과들을 평가용 데이터셋으로 구성할 수 있다. 상기 엔진#1에 의해 추론된 결과는 클라이언트에게 전달되기 위해 스트림 전용 메세지 큐로 출력된다. Engine #2 may select specific prediction results from among prediction results performed by engine #1 in various ways, and configure the selected specific prediction results as an evaluation dataset. The results inferred by the engine #1 are output to a stream-only message queue for delivery to the client.

워크플로우 #3은 신규 데이터를 이용해 예측 모델을 주기적으로 fine-tuning 하는 워크플로우이다. Workflow #3 is a workflow for periodically fine-tuning a predictive model using new data.

이러한 워크플로우 #3은 워크플로우 #1에 의해 생성된 실시간 스트리밍 파일의 목록으로부터 특정 기준 시간에 fine-tuning을 위한 시계열 데이터를 추출하는 엔진 #1, 시계열 데이터로부터 검증을 위한 예측 결과의 ground-truth값을 자동 매핑하는 엔진 #2, 모델 파라메터를 fine-tuning하기 위한 학습용 엔진 #3 그리고 학습을 위해 임시로 생성한 파일을 삭제하는 엔진 #4으로 구성된다. This workflow #3 is an engine #1 that extracts time series data for fine-tuning at a specific reference time from the list of real-time streaming files generated by workflow #1, and the ground-truth of prediction results for verification from time series data. It consists of engine #2 that automatically maps values, learning engine #3 for fine-tuning model parameters, and engine #4 that deletes temporarily created files for training.

워크플로우 #4는 워크플로우 #2의 엔진 #2에 의해 생성된 평가용 데이터셋을 이용하여 예측 서비스의 평가를 주기적으로 수행한다. Workflow #4 periodically evaluates the prediction service using the evaluation dataset generated by engine #2 of workflow #2.

이러한 워크플로우 #4는 워크플로우 #2의 엔진 #2에 의해 생성된 평가용 데이터셋으로부터 특정 시점에서 예측 결과를 추출하는 엔진 #1, 평가용 데이터셋을 라벨링하여 획득한 라벨값과 상기 특정 시점에서 추출된 예측 결과를 비교하여 평가하는 엔진 #2, 상기 엔진 #2의 의한 평가 결과를 기반으로 예측 모델을 업데이트 여부를 결정하는 엔진 #3, 및 평가 완료 후에 상기 평가용 데이터셋을 삭제하는 엔진 #4로 구성된다.This workflow #4 is the engine #1 that extracts the prediction result at a specific point in time from the evaluation dataset generated by the engine #2 of workflow #2, the label value obtained by labeling the evaluation dataset, and the specific point in time. Engine #2 that compares and evaluates the prediction results extracted from engine #2, engine #3 that determines whether to update the prediction model based on the evaluation result by engine #2, and deletes the evaluation dataset after evaluation is completed It consists of #4.

이러한 오케스트레이션 방법은 실시간 예측을 위해, 워크플로우#1과 #2를 구동과 함께 실행되어 실시간 스트리밍 처리 파이프라인을 유지시킨다. This orchestration method maintains a real-time streaming processing pipeline by running workflows #1 and #2 together for real-time prediction.

워크플로우#3과 #4는 특정 주기에 의해 구동되도록 하여 주기에 따라 수집한 데이터로부터 학습모델을 파인튜닝하고 최적의 성능을 내는지 여부를 주기적으로 평가하도록 한다.Workflows #3 and #4 are driven by specific cycles, fine-tuning the learning model from the data collected according to the cycle, and periodically evaluate whether or not the optimal performance is achieved.

본 발명에 따른 크로스도메인 확장형 워크플로우 엔진 프레임워크는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. The cross-domain extended workflow engine framework according to the present invention may be implemented as a hardware component, a software component, and/or a combination of a hardware component and a software component.

예를 들어, 실시예 들에서 설명된 구성요소는, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. For example, the components described in the embodiments are a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), a programmable logic unit (PLU). ), a microprocessor, or any other device capable of executing and responding to instructions.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. The software may include a computer program, code, instructions, or a combination of one or more of these, configuring the processing unit to operate as desired or processed independently or collectively. You can command the device.

소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. Software and/or data may be interpreted by a processing device or, to provide instructions or data to a processing device, of any type of machine, component, physical device, virtual equipment, computer storage medium or device. , Or may be permanently or temporarily embodyed in a transmitted signal wave.

소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer-readable recording media.

이제까지 본 발명을 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양하게 변경 또는 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명을 위한 예시적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far, the present invention has been looked at based on examples. Those of ordinary skill in the art to which the present invention pertains will appreciate that the present invention can be implemented in variously modified or modified forms without departing from the essential characteristics of the present invention. Therefore, the disclosed embodiments should be considered from an exemplary point of view for description and not a limiting point of view. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope equivalent thereto should be construed as being included in the present invention.

Claims (17)

프로세서를 포함하는 컴퓨팅 장치에 의해 실행되는 크로스도메인 확장형 워크플로우 엔진 프레임워크(이하, '워크플로우 엔진 프레임워크')로서, 사용자에 의해 정의된 워크플로우 명세에 따라 복수의 엔진을 생성하는 시스템 구성부와, 상기 복수의 엔진의 실행을 제어하는 시스템 제어부를 포함하는 상기 워크플로우 엔진 프레임워크로서,
상기 복수의 엔진은 제1 도메인의 제1 워크플로우를 실행하는 제1 엔진과 제2 도메인의 제2 워크플로우를 실행하는 제2 엔진을 포함하고,
상기 워크플로우 엔진 프레임워크는,
상기 제1 도메인과 상기 제2 도메인의 융합을 위해, 제1 엔진에서 수행된 데이터의 처리 결과를 상기 제2 엔진으로 전달하는 응용 저장소
를 더 포함하는 것인 크로스도메인 확장형 워크플로우 엔진 프레임워크.
As a cross-domain extended workflow engine framework (hereinafter referred to as'workflow engine framework') executed by a computing device including a processor, a system configuration unit that generates a plurality of engines according to a workflow specification defined by a user And, as the workflow engine framework including a system control unit for controlling the execution of the plurality of engines,
The plurality of engines include a first engine executing a first workflow in a first domain and a second engine executing a second workflow in a second domain,
The workflow engine framework,
Application storage that delivers the result of data processing performed by the first engine to the second engine for the fusion of the first domain and the second domain
Cross-domain extensible workflow engine framework that further comprises.
제1항에서,
상기 제1 엔진은,
데이터 출발지로부터 데이터를 읽어오는 입력기, 상기 입력기가 읽어온 데이터를 처리하는 복수의 단위 처리기들 및 상기 복수의 단위 처리기들에 의해 처리된 상기 처리 결과(이하, '제1 처리 결과')를 상기 응용 저장소로 출력하는 출력기를 포함하고,
상기 제2 엔진은,
상기 응용 저장소로부터 상기 제1 처리 결과를 읽어오는 입력기, 상기 입력기가 읽어온 상기 제1 처리 결과를 처리하는 복수의 단위 처리기들 및 상기 복수의 단위 처리기들에 의해 처리된 제2 처리 결과를 데이터 종착지로 출력하는 출력기
를 포함하는 것인 크로스도메인 확장형 워크플로우 엔진 프레임워크.
In claim 1,
The first engine,
The application of an input device that reads data from a data source, a plurality of unit processors that process the data read by the input device, and the processing result (hereinafter referred to as'first processing result') processed by the plurality of unit processors. Contains a writer to output to the storage,
The second engine,
An input device that reads the first processing result from the application storage, a plurality of unit processors that process the first processing result read from the input device, and a second processing result processed by the plurality of unit processors are a data destination. Output to
Cross-domain extensible workflow engine framework that includes a.
제1항에서,
상기 제1 및 제2 엔진에 대한 인증 과정을 통해, 상기 제1 및 제2 엔진에게 상기 응용 저장소에 대한 접근 권한을 할당하는 응용 접근 제어부를 더 포함하는 것인 크로스도메인 확장형 워크플로우 엔진 프레임워크.
In claim 1,
The cross-domain extended workflow engine framework further comprises an application access control unit that allocates access rights to the application storage to the first and second engines through an authentication process for the first and second engines.
제3항에서,
상기 인증 과정은, 개방 인증(Open Authentication) 기반의 인증 과정인 것인 크로스도메인 확장형 워크플로우 엔진 프레임워크.
In paragraph 3,
The authentication process is a cross-domain extended workflow engine framework that is an authentication process based on open authentication.
프로세서를 포함하는 컴퓨팅 장치에 의해 실행되는 크로스도메인 확장형 워크플로우 엔진 프레임워크(이하, '워크플로우 엔진 프레임워크')로서, 사용자에 의해 정의된 워크플로우 명세에 따라 복수의 엔진을 생성하는 시스템 구성부와, 상기 복수의 엔진의 실행을 제어하는 시스템 제어부를 포함하는 상기 워크플로우 엔진 프레임워크로서,
상기 복수의 엔진은,
제1 도메인의 제1 워크플로우를 실행하는 제1 및 제2 엔진; 및
제2 도메인의 제2 워크플로우를 실행하는 제3 엔진을 포함하고,
상기 워크플로우 엔진 프레임워크는,
상기 제1 도메인과 상기 제2 도메인의 융합을 위해, 상기 제2 엔진의 처리 결과를 상기 제1 워크플로우의 처리 결과로 구성하여 상기 제3 엔진으로 전달하는 응용 저장소
를 더 포함하는 것인 크로스도메인 확장형 워크플로우 엔진 프레임워크.
As a cross-domain extended workflow engine framework (hereinafter referred to as'workflow engine framework') executed by a computing device including a processor, a system configuration unit that generates a plurality of engines according to a workflow specification defined by a user And, as the workflow engine framework including a system control unit for controlling the execution of the plurality of engines,
The plurality of engines,
First and second engines executing a first workflow in the first domain; And
A third engine that executes a second workflow in the second domain,
The workflow engine framework,
For fusion of the first domain and the second domain, an application storage configured to configure the processing result of the second engine as the processing result of the first workflow and deliver it to the third engine
Cross-domain extensible workflow engine framework that further comprises.
제5항에서,
상기 제1 엔진은,
데이터 출발지로부터 데이터를 읽어오는 제1 입력기, 상기 제1 입력기가 읽어온 데이터를 처리하는 제1 단위 처리기 및 상기 제1 단위 처리기에 의해 처리된 상기 처리 결과(이하, '제1 처리 결과')를 상기 제1 도메인 내의 중간 도착지로 출력하는 제1 출력기를 포함하고,
상기 제2 엔진은,
상기 중간 도착지로부터 상기 제1 처리 결과를 읽어오는 제2 입력기, 상기 제2 입력기가 읽어온 제1 처리 결과를 처리하는 제2 단위 처리기 및 상기 제2 단위 처리기에 의해 처리된 제2 처리 결과를 상기 응용 저장소 출력하는 제2 출력기
를 포함하는 것인 크로스도메인 확장형 워크플로우 엔진 프레임워크.
In clause 5,
The first engine,
A first input unit for reading data from a data source, a first unit processor for processing the data read by the first input unit, and the processing result (hereinafter referred to as'first processing result') processed by the first unit processor Including a first output unit for outputting to an intermediate destination in the first domain,
The second engine,
A second input unit that reads the first processing result from the intermediate destination, a second unit processor that processes the first processing result read from the second input unit, and the second processing result processed by the second unit processor, Second writer to output application storage
Cross-domain extensible workflow engine framework that includes a.
제5항에서,
상기 제3 엔진은,
상기 응용 저장소로부터 상기 제2 엔진의 처리 결과(이하, '제2 처리 결과')를 읽어오는 제3 입력기, 상기 제3 입력기가 읽어온 제2 처리 결과를 처리하여 제3 처리 결과를 생성하는 제3 단위 처리기 및 상기 제3 처리 결과를 데이터 종착지로 출력하는 제3 출력기를 포함하는 것인 크로스도메인 확장형 워크플로우 엔진 프레임워크.
In clause 5,
The third engine,
A third input device that reads the processing result of the second engine (hereinafter,'second processing result') from the application storage, and generates a third processing result by processing the second processing result read from the third input device. A cross-domain extended workflow engine framework comprising a three unit processor and a third output unit for outputting the third processing result to a data destination.
제5항에서,
상기 제2 엔진은 상기 제1 엔진의 처리 결과를 수신하고,
상기 제1 도메인의 상기 제1 워크플로우와 상기 제2 도메인의 상기 제2 워크플로우의 융합을 위해, 상기 제2 및 제3 엔진에 대한 인증 과정을 통해, 상기 제2 및 제3 엔진에게 상기 응용 저장소에 대한 접근 권한을 할당하는 응용 접근 제어부를 더 포함하는 것인 크로스도메인 확장형 워크플로우 엔진 프레임워크.
In clause 5,
The second engine receives the processing result of the first engine,
For fusion of the first workflow of the first domain and the second workflow of the second domain, the application to the second and third engines through an authentication process for the second and third engines Cross-domain extensible workflow engine framework further comprising an application access control unit for allocating access rights to the storage.
제5항에서,
상기 제2 엔진은,
상기 제1 엔진의 처리 결과(이하, '제1 처리 결과')를 수신한 중간 데이터 종착지로부터 상기 제1 처리 결과를 읽어오는 제2 입력기;
상기 제2 입력기로부터 입력된 상기 제1 처리 결과에 포함된 파일 목록 중에서 최종 데이터 종착지로 이동시키고자 하는 파일을 필터링하고, 필터링된 파일의 파일명을 새로운 파일명으로 변환하고, 상기 파일 목록에 포함된 파일들의 서로 다른 디렉토리 경로들을 하나의 디렉토리 경로 변경하는 제2 단위 처리기; 및
단위 처리기에 의해 처리된 파일 목록과 상기 파일 목록에 포함된 파일들을 상기 응용 저장소로 이동시키거나 복사하는 제2 출력기
를 포함하는 것인 크로스도메인 확장형 워크플로우 엔진 프레임워크.
In clause 5,
The second engine,
A second input unit for reading the first processing result from an intermediate data destination receiving the processing result of the first engine (hereinafter,'first processing result');
Filters a file to be moved to a final data destination among the file list included in the first processing result input from the second input device, converts the file name of the filtered file to a new file name, and the file included in the file list A second unit processor for changing different directory paths of the files into one directory path; And
A second output unit that moves or copies a list of files processed by a unit processor and files included in the list of files to the application storage
Cross-domain extensible workflow engine framework that includes a.
제9항에서,
상기 워크플로우 엔진 프레임워크는,
상기 제2 출력기가 상기 응용 저장소에 접근 권한이 있는지를 검증하는 응용 접근 제어부를 더 포함하는 것인 크로스도메인 확장형 워크플로우 엔진 프레임워크.
In claim 9,
The workflow engine framework,
The cross-domain extended workflow engine framework further comprises an application access control unit for verifying whether the second output device has access rights to the application storage.
제10항에서,
상기 응용 접근 제어부는,
상기 제2 출력기가 상기 응용 저장소에 접근 권한이 있는지를 검증하기 위해, 상기 제2 출력기에 대해 개방 인증(Open Authentication) 기반의 인증 과정을 수행하는 것인 크로스도메인 확장형 워크플로우 엔진 프레임워크.
In claim 10,
The application access control unit,
A cross-domain extended workflow engine framework that performs an authentication process based on Open Authentication for the second output device to verify whether the second output device has access rights to the application storage.
프로세서를 포함하는 컴퓨팅 장치에 의해 실행되는 크로스도메인 확장형 워크플로우 엔진 프레임워크(이하, '워크플로우 엔진 프레임워크')로서, 사용자에 의해 정의된 워크플로우 명세에 따라 복수의 엔진을 생성하는 시스템 구성부와, 상기 복수의 엔진의 실행을 제어하는 시스템 제어부를 포함하는 상기 워크플로우 엔진 프레임워크로서,
상기 복수의 엔진은 제1 엣지 노드에서 제1 엣지 도메인의 제1 워크플로우를 실행하는 제1 엔진, 코어 노드에서 코어 도메인의 제2 워크플로우를 실행하는 제2 엔진 및 제2 엣지 노드에서 제2 엣지 도메인의 제3 워크플로우를 실행하는 제3 엔진을 포함하고,
상기 워크플로우 엔진 프레임워크는,
상기 제1 도메인과 상기 제2 도메인의 융합을 위해, 제1 엔진에서 수행된 데이터의 처리 결과를 상기 제2 엔진으로 전달하는 제1 공유 저장소; 및
상기 제2 도메인과 상기 제3 도메인의 융합을 위해, 상기 제2 엔진에서 수행된 데이터의 처리 결과를 상기 제3 엔진으로 전달하는 제2 공유 저장소;
를 더 포함하는 것인 크로스도메인 확장형 워크플로우 엔진 프레임워크.
As a cross-domain extended workflow engine framework (hereinafter referred to as'workflow engine framework') executed by a computing device including a processor, a system configuration unit that generates a plurality of engines according to a workflow specification defined by a user And, as the workflow engine framework including a system control unit for controlling the execution of the plurality of engines,
The plurality of engines include a first engine executing a first workflow of a first edge domain at a first edge node, a second engine executing a second workflow of a core domain at a core node, and a second engine at a second edge node. Including a third engine to execute a third workflow of the edge domain,
The workflow engine framework,
A first shared storage for transferring a result of processing data performed by a first engine to the second engine for fusion of the first domain and the second domain; And
A second shared storage configured to transmit a result of processing data performed by the second engine to the third engine for fusion of the second domain and the third domain;
Cross-domain extensible workflow engine framework that further comprises.
제12항에서,
상기 제1 엔진은,
데이터 출발지로부터 수집된 데이터를 처리하는 엔진 A; 및
상기 엔진 A의 처리 결과를 상기 코어 노드와 공유하기 위해, 상기 엔진 A의 처리 결과를 상기 제1 공유 저장소로 이동 또는 복사하는 엔진 B
를 포함하는 것인 크로스도메인 확장형 워크플로우 엔진 프레임워크.
In claim 12,
The first engine,
Engine A that processes data collected from the data origin; And
Engine B for moving or copying the processing result of the engine A to the first shared storage in order to share the processing result of the engine A with the core node
Cross-domain extensible workflow engine framework that includes a.
제12항에서,
상기 제2 엔진은,
상기 제1 공유 저장소로부터 제1 엣지 노드에 의한 처리 결과를 훈련 데이터로 이용하여 학습 모델에 대한 파인 튜닝을 수행하는 상기 제2 워크플로우를 실행하는 것인 크로스도메인 확장형 워크플로우 엔진 프레임워크.
In claim 12,
The second engine,
A cross-domain extended workflow engine framework that executes the second workflow for fine tuning a learning model by using a result of processing by a first edge node from the first shared storage as training data.
제14항에서,
상기 제2 엔진은,
상기 제1 공유 저장소로부터 상기 제1 엔진의 처리 결과를 훈련 데이터로서 읽어오는 엔진 A;
상기 엔진 A가 읽어온 훈련 데이터을 이용하여 파인 튜닝을 위한 학습을 수행하는 엔진 B; 및
상기 엔진 B의 학습 결과에 따라 생성된 또는 업데이트된 신규 버전의 학습 모델을 상기 제2 공유 저장소로 이동시키는 엔진 C
를 포함하는 것인 크로스도메인 확장형 워크플로우 엔진 프레임워크.
In clause 14,
The second engine,
An engine A reading the processing result of the first engine from the first shared storage as training data;
An engine B that performs learning for fine tuning using the training data read from the engine A; And
Engine C for moving the learning model of the new version created or updated according to the learning result of engine B to the second shared storage
Cross-domain extensible workflow engine framework that includes a.
제12항에서,
상기 제3 엔진은,
상기 제2 공유 저장소로부터 로딩된 신규 버전의 학습 모델을 이용하여 예측 서비스를 수행하는 상기 제3 워크플로우를 실행하는 것인 크로스도메인 확장형 워크플로우 엔진 프레임워크.
In claim 12,
The third engine,
A cross-domain extended workflow engine framework that executes the third workflow for performing a prediction service using a new version of the learning model loaded from the second shared storage.
제16항에서,
상기 제3 엔진은,
상기 신규 버전의 학습 모델을 상기 제2 공유 저장소로부터 제2 엣지 노드로 이동시키는 엔진; 및
상기 제2 공유 저장소로부터 이동된 신규 버전의 학습 모델을 이용하여 예측 서비스를 제공하기 위한 서빙을 수행하는 서빙 엔진
을 포함하는 것인 크로스도메인 확장형 워크플로우 엔진 프레임워크.
In paragraph 16,
The third engine,
An engine for moving the new version of the learning model from the second shared storage to a second edge node; And
A serving engine that performs serving to provide a prediction service using a new version of the learning model moved from the second shared storage
It will include a cross-domain extensible workflow engine framework.
KR1020200124980A 2019-11-12 2020-09-25 workflow engine framework for cross-domain extension KR20210057656A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/095,610 US11153388B2 (en) 2019-11-12 2020-11-11 Workflow engine framework for cross-domain extension

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190144637 2019-11-12
KR20190144637 2019-11-12

Publications (1)

Publication Number Publication Date
KR20210057656A true KR20210057656A (en) 2021-05-21

Family

ID=76157750

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020200124980A KR20210057656A (en) 2019-11-12 2020-09-25 workflow engine framework for cross-domain extension
KR1020200148569A KR102584447B1 (en) 2019-11-12 2020-11-09 workflow engine framework for cross-domain extension

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020200148569A KR102584447B1 (en) 2019-11-12 2020-11-09 workflow engine framework for cross-domain extension

Country Status (1)

Country Link
KR (2) KR20210057656A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114944948A (en) * 2022-05-16 2022-08-26 郑州小鸟信息科技有限公司 Cross-domain user permission following method and system
KR20230153784A (en) 2022-04-29 2023-11-07 주식회사 데브스택 System for generating and managing of machine learning pipeline based on workflow, and method thereof

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU776938B2 (en) * 1998-11-18 2004-09-30 Saga Software, Inc. Extensible distributed enterprise application integration system
KR100564756B1 (en) * 2003-12-03 2006-03-27 한국전자통신연구원 Apparatus and method for testing a MEGACO protocol
US7970746B2 (en) * 2006-06-13 2011-06-28 Microsoft Corporation Declarative management framework
US10419524B2 (en) * 2012-09-07 2019-09-17 Oracle International Corporation System and method for workflow orchestration for use with a cloud computing environment
KR102259927B1 (en) * 2017-10-18 2021-06-03 한국전자통신연구원 Workflow engine framework

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230153784A (en) 2022-04-29 2023-11-07 주식회사 데브스택 System for generating and managing of machine learning pipeline based on workflow, and method thereof
CN114944948A (en) * 2022-05-16 2022-08-26 郑州小鸟信息科技有限公司 Cross-domain user permission following method and system
CN114944948B (en) * 2022-05-16 2024-01-09 郑州小鸟信息科技有限公司 Cross-domain user permission following-based method and system

Also Published As

Publication number Publication date
KR20210057679A (en) 2021-05-21
KR102584447B1 (en) 2023-10-05

Similar Documents

Publication Publication Date Title
US11615087B2 (en) Search time estimate in a data intake and query system
US11442935B2 (en) Determining a record generation estimate of a processing task
US11921672B2 (en) Query execution at a remote heterogeneous data store of a data fabric service
US20230147068A1 (en) Management of distributed computing framework components
US11341131B2 (en) Query scheduling based on a query-resource allocation and resource availability
US11321321B2 (en) Record expansion and reduction based on a processing task in a data intake and query system
US20200050607A1 (en) Reassigning processing tasks to an external storage system
CA2843459C (en) Low latency query engine for apache hadoop
US20190147085A1 (en) Converting and modifying a subquery for an external data system
US8370812B2 (en) Method and system for automatically assembling processing graphs in information processing systems
US7882485B2 (en) Method for modeling components of an information processing application using semantic graph transformations
JP7118726B2 (en) workflow engine framework
JP2020502610A (en) Allow Semantic Mashups on the Internet of Things
US10783193B2 (en) Program, method, and system for execution of software services
US20210004712A1 (en) Machine Learning Performance and Workload Management
KR102584447B1 (en) workflow engine framework for cross-domain extension
KR20210141704A (en) Graph representation and description of configuration parameters for media processing functions in network-based media processing (NBMP)
CN103577931A (en) Reusable-software-service management system based on semanteme and implementation method thereof
US11153388B2 (en) Workflow engine framework for cross-domain extension
US11960616B2 (en) Virtual data sources of data virtualization-based architecture
US11960488B2 (en) Join queries in data virtualization-based architecture
CN113626062A (en) Trusted application integration
US20240119045A1 (en) Systems and Methods for Intelligent Database Report Generation
KR20130078041A (en) Large scale qos-aware web service composition method using efficient anytime algorithm
US11093935B2 (en) System and methods for a resource-saving exchange protocol based on trigger-ready envelopes among distributed nodes

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application