KR102259927B1 - Workflow engine framework - Google Patents

Workflow engine framework Download PDF

Info

Publication number
KR102259927B1
KR102259927B1 KR1020180047370A KR20180047370A KR102259927B1 KR 102259927 B1 KR102259927 B1 KR 102259927B1 KR 1020180047370 A KR1020180047370 A KR 1020180047370A KR 20180047370 A KR20180047370 A KR 20180047370A KR 102259927 B1 KR102259927 B1 KR 102259927B1
Authority
KR
South Korea
Prior art keywords
engine
workflow
domain
component
data
Prior art date
Application number
KR1020180047370A
Other languages
Korean (ko)
Other versions
KR20190043446A (en
Inventor
이연희
김현재
이호성
김대원
강현중
권순현
유웅식
김내수
김선진
김영민
안후영
표철식
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to DE102018110138.4A priority Critical patent/DE102018110138A1/en
Priority to US15/963,547 priority patent/US11036539B2/en
Priority to JP2018087438A priority patent/JP7118726B2/en
Publication of KR20190043446A publication Critical patent/KR20190043446A/en
Priority to US17/022,877 priority patent/US20200409744A1/en
Application granted granted Critical
Publication of KR102259927B1 publication Critical patent/KR102259927B1/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/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Abstract

본 발명은 동적 엔진 컴퍼넌트들의 유기적인 구성을 통해 목적에 맞는, 도메인 적응형의 그리고 나아가 크로스도메인 적응형의 워크플로우 실행 플랫폼을 만들기 위한 워크플로우 엔진 프레임워크 시스템에 관한 것이다. 본 발명에 따르면, 사용자에 의해 정의된 워크플로우의 실행에 필요한 워크플로우 속성명세 컴퍼넌트와 엔진 컴퍼넌트가 포함된 자원을 관리하는 자원관리부; 속성명세 컴퍼넌트를 조립하고 워크플로우 실행에 필요한 엔진 컴퍼넌트를 동적으로 조합하여 워크플로우 명세에 따라 필요한 엔진 컴퍼넌트 컨테이너들을 구성하여 엔진을 생성하는 시스템 구성부; 워크플로우 속성명세에 정의된 방식에 따라 상기 시스템 구성부에 의해 생성되는 하나 이상의 엔진을 구동하여 실행을 제어하는 시스템 제어부를 포함하는 워크플로우 엔진 프레임워크 시스템이 제공된다. 또한 본 발명은, 상기 워크플로우 엔진 프레임워크가 둘 이상의 상이한 단일도메인에 각각 할당되고, 이들 단일도메인 워크플로우 엔진 프레임워크와 네트워크로 연결되어, 사용자가 정의한 크로스도메인 워크플로우에 따라 크로스도메인에 포함된 각 단일도메인에 필요한 엔진을 배포할 단일도메인을 결정하는 크로스도메인 융합 시스템이 포함되는, 크로스도메인 적응형 워크플로우 엔진 프레임워크 시스템이 제공된다.The present invention relates to a workflow engine framework system for creating a domain adaptive and further cross-domain adaptive workflow execution platform that suits the purpose through the organic configuration of dynamic engine components. According to the present invention, there is provided a resource management unit for managing a resource including a workflow attribute specification component and an engine component required for the execution of a workflow defined by a user; a system configuration unit for assembling attribute specification components and dynamically assembling engine components necessary for workflow execution to configure engine component containers required according to workflow specification to create an engine; There is provided a workflow engine framework system including a system control unit for controlling execution by driving one or more engines generated by the system configuration unit according to a method defined in a workflow attribute specification. In addition, in the present invention, the workflow engine framework is each assigned to two or more different single domains, connected to these single domain workflow engine frameworks and a network, and included in the cross domain according to the user-defined cross domain workflow. A cross-domain adaptive workflow engine framework system is provided, including a cross-domain fusion system that determines which single domain to deploy the required engine to each single domain.

Description

워크플로우 엔진 프레임워크 {Workflow engine framework}{Workflow engine framework}

본 발명은 워크플로우 및 프레임워크 기술에 관한 것으로, 구체적으로는, 다양한 업무 도메인 또는 목적 도메인의 워크플로우를 처리하기 위하여 동적 엔진 컴퍼넌트들의 유기적인 구성을 통해 단일도메인 적응형의 그리고 나아가 크로스도메인 적응형의 워크플로우 실행 플랫폼을 만들 수 있는 워크플로우 엔진 프레임워크에 관한 것이다.The present invention relates to workflow and framework technology, and specifically, single-domain adaptive and further cross-domain adaptive through organic configuration of dynamic engine components to process workflows of various business domains or target domains. It is about a workflow engine framework that can create a workflow execution platform of

워크플로우 기술이란, 문서, 정보, 태스크 등을 일련의 업무절차 규칙에 의한 처리를 위해 한 사용자(어플리케이션)에서 다른 사용자로 전달하는 비즈니스 프로세스의 자동화 기술을 의미한다. 특히 데이터기반 서비스 워크플로우 생성절차는 다음과 같다. 먼저, 데이터 소스와 그 데이터 소스 수집방법을 결정한다. 수집된 데이터의 처리방법을 결정하고 분석방법을 결정한다(예를 들어, 기계학습, 예측, 지식추론 등에 의한 분석). 분석된 결과를 서비스하기 위한 방법을 결정한다. 이 해당 워크플로우를 실행하기 위해 필요한 엔진(들)을 구성하고 엔진 간의 연계방법을 정의함으로써 워크플로우 생성 절차가 마무리된다.The workflow technology refers to a business process automation technology that transfers documents, information, tasks, etc. from one user (application) to another user for processing according to a set of business procedure rules. In particular, the data-based service workflow creation procedure is as follows. First, the data source and the data source collection method are determined. It determines the processing method of the collected data and determines the analysis method (eg, analysis by machine learning, prediction, knowledge inference, etc.). Decide how to service the analyzed results. The workflow creation process is completed by configuring the engine(s) required to execute this corresponding workflow and defining the linkage method between the engines.

최근에, 다양한 사물에 인공지능을 부여하는 이른바 지능형 사물인터넷이 주목받고 있다. 특히, 다수의 이종 사물인터넷 영역을 포괄하는 지능형 인터넷 응용(예를 들어, 스마트시티)을 위해서는 이종의 사물 지능 영역을 통제 및 관리, 제어할 수 있는 시스템이 필요하다. 또한, 다양한 업무도메인(예를 들어, 에너지, 헬스, 교통·교육·전력 플랜트 등)을 지능적으로 처리해야 하는 문제가 발생할 수 있다. 하나의 업무도메인 내에서도 데이터의 발생과 액션이 일어나는 디바이스부터, 데이터를 처리하고 전달, 즉각적 분석, 판단하는 엣지(edge)와 복잡한 분석과 응용이 일어나는 클라우드(cloud)까지 다양한 목적도메인이 존재할 수 있다. 또한 업무도메인이나 목적도메인 내에서도 공간의 분류에 따른 공간도메인, 시간의 분류에 따른 시간도메인이 존재할 수 있다. 그 밖에 데이터처리도메인, 학습도메인, 예측도메인, 서비스도메인 등, 다양한 방법도메인들이 있을 수 있다. 따라서 이러한 복잡한 다종의 다계층 도메인(이하, 크로스도메인)을 효과적으로 통제하고 관리, 제어하기 위한 일원화된 방법 및 시스템이 필요하다.Recently, the so-called intelligent Internet of Things (IoT), which imparts artificial intelligence to various objects, is attracting attention. In particular, for an intelligent Internet application (eg, a smart city) that encompasses multiple heterogeneous IoT domains, a system capable of controlling, managing, and controlling heterogeneous IoT domains is required. In addition, various business domains (eg, energy, health, transportation, education, power plant, etc.) may be intelligently processed. Even within a single business domain, a variety of purpose domains can exist, from devices where data is generated and actions occur, to edges where data is processed and delivered, instantaneous analysis and judgment, and cloud, where complex analysis and applications occur. In addition, a spatial domain according to the classification of space and a time domain according to the classification of time may exist within the work domain or the destination domain. In addition, there may be various method domains, such as a data processing domain, a learning domain, a prediction domain, and a service domain. Therefore, there is a need for a unified method and system for effectively controlling, managing, and controlling such complex multi-type multi-layered domains (hereinafter, cross domains).

한편, 사물인터넷을 통해 수집되는 빅데이터에 포함된 인사이트를 빠르게 추출하여 비즈니스와 접목하기 위해, 사물인터넷 데이터로부터 인사이트를 추출하고 분석하여 빠르고 정확한 의사결정을 지원하기 위한 다양한 기술이 개발되고 있다. 이를 위해서는 실시간 애널리틱스를 위한 스트림 처리기술과 실시간 예측/분석을 위한 플랫폼 기술의 뒷받침이 반드시 필요하다. Meanwhile, in order to quickly extract insights contained in big data collected through the Internet of Things and apply them to business, various technologies are being developed to extract and analyze insights from IoT data to support fast and accurate decision-making. For this, it is essential to support stream processing technology for real-time analytics and platform technology for real-time prediction/analysis.

또한 최근 급부상하고 있는 기계학습 기술을 IoT 빅데이터 분석에 활용하여 워크플로우를 설계할 필요성이 커지고 있고 또한 다양한 목적과 분야의 IoT 도메인들이 생겨남에 따라 이들을 유기적으로 통합하여 좀 더 인사이트 있는 분석이나 서비스가 가능하도록 하는 일원화된 플랫폼 기술이 필요해지고 있다. 그러나 종래의 워크플로우 기술로는 디바이스, 데이터, 도메인에 따라 상이한 특성을 가진 IoT 빅데이터와 기계학습을 결합하는 데에는 한계가 있다.In addition, the need to design a workflow by using the recently emerging machine learning technology for IoT big data analysis is growing, and as IoT domains for various purposes and fields are created, more insightful analysis or services can be created by organically integrating them. There is a need for a unified platform technology that makes this possible. However, there is a limit to combining IoT big data and machine learning with different characteristics according to devices, data, and domains with the conventional workflow technology.

상술한 한계와 문제점의 극복을 위해, 엔진 컴퍼넌트들의 유기적인 구성을 통해 각 도메인의 목적에 맞는 워크플로우를 생성하여 실행할 수 있고, 쉽게 다른 도메인에 적용하여 다른 도메인에 적합한 (도메인 적응형의) 워크플로우를 생성하고 실행할 수 있으며, 특히 크로스도메인에 대응하기 위해 통합적으로 제어 및 관리할 수 있는 일원화된 시스템이 필요하다.In order to overcome the above-mentioned limitations and problems, a workflow suitable for the purpose of each domain can be created and executed through the organic configuration of engine components, and can be easily applied to other domains (domain adaptive) work A unified system that can create and execute flows, and can control and manage them in an integrated way, especially in order to respond to cross domains is required.

따라서 본 발명은 동적 엔진 컴퍼넌트들의 유기적인 구성을 통해 목적에 맞는, 도메인 적응형의 그리고 나아가 크로스도메인 적응형의 워크플로우 실행 플랫폼을 만들기 위한 워크플로우 엔진 프레임워크를 제안하고자 한다.Therefore, the present invention intends to propose a workflow engine framework for creating a domain-adaptive and even cross-domain-adaptive workflow execution platform that suits the purpose through the organic configuration of dynamic engine components.

상기 과제를 해결하기 위한 본 발명의 한 측면에 따르면, 사용자에 의해 정의된 워크플로우의 실행에 필요한 워크플로우 속성명세 컴퍼넌트와 엔진 컴퍼넌트가 포함된 자원을 관리하는 자원관리부; 속성명세 컴퍼넌트를 조립하고 워크플로우 실행에 필요한 엔진 컴퍼넌트를 동적으로 조합하여 워크플로우 명세에 따라 필요한 엔진 컴퍼넌트 컨테이너들을 구성하여 엔진을 생성하는 시스템 구성부; 워크플로우 속성명세에 정의된 방식에 따라 상기 시스템 구성부에 의해 생성되는 하나 이상의 엔진을 구동하여 실행을 제어하는 시스템 제어부를 포함하는 워크플로우 엔진 프레임워크 시스템이 제공된다.According to one aspect of the present invention for solving the above problems, a resource management unit for managing resources including a workflow attribute specification component and an engine component necessary for executing a workflow defined by a user; a system configuration unit for assembling attribute specification components and dynamically assembling engine components necessary for workflow execution to configure engine component containers required according to workflow specification to create an engine; There is provided a workflow engine framework system including a system control unit for controlling execution by driving one or more engines generated by the system configuration unit according to a method defined in a workflow attribute specification.

또한 본 발명의 다른 측면에 따르면, 상기 워크플로우 엔진 프레임워크 시스템이 둘 이상의 상이한 단일도메인에 각각 할당되고, 이들 단일도메인 워크플로우 엔진 프레임워크 시스템과 네트워크로 연결되어, 사용자가 정의한 크로스도메인 워크플로우에 따라 크로스도메인에 포함된 각 단일도메인에 필요한 엔진을 배포할 단일도메인을 결정하는 크로스도메인 융합 시스템이 포함되는, 크로스도메인 적응형 워크플로우 엔진 프레임워크 시스템이 제공된다.Also, according to another aspect of the present invention, the workflow engine framework system is assigned to two or more different single domains, respectively, and is connected to these single domain workflow engine framework systems by a network, so that the cross-domain workflow defined by the user is performed. Accordingly, a cross-domain adaptive workflow engine framework system is provided, including a cross-domain fusion system that determines a single domain to distribute an engine required for each single domain included in the cross domain.

엔진 컴퍼넌트들의 유기적인 구성을 통해 각 도메인이 풀고자 하는 분야와 목적에 맞는 워크플로우를 생성하여 실행할 수 있고, 쉽게 다른 도메인에 적용하여 다른 도메인에 적합한 워크플로우를 생성하고 실행할 수 있다. 즉, 다양한 업무도메인 또는 목적도메인에서 유사한 문제들의 해결을 위한 실행 플랫폼을 용이하게 구성할 수 있도록 엔진 컴퍼넌트들을 동적으로 재활용할 수 있는 도메인 적응형 워크플로우 엔진 프레임워크를 쉽게 구성할 수 있다. 또한 크로스도메인 지식융합 브레인을 추가로 포함함으로써, 크로스도메인 적응형 워크플로우 엔진 프레임워크를 구성할 수 있다. 나아가 IoT, 빅데이터, 기계학습을 결합하여 분석하는 대용량 데이터의 실시간 분석 서비스에 있어서, 특정한 문제의 해결을 위해 개발한 기계학습 모델 및 빅데이터 분석 모델을 컴퍼넌트를 구현하여 관리할 수 있다. Through the organic configuration of engine components, each domain can create and execute a workflow suitable for the field and purpose to be solved, and easily apply it to other domains to create and execute a workflow suitable for other domains. That is, a domain adaptive workflow engine framework capable of dynamically reusing engine components can be easily configured to easily configure an execution platform for solving similar problems in various business domains or destination domains. In addition, by additionally including a cross-domain knowledge fusion brain, a cross-domain adaptive workflow engine framework can be configured. Furthermore, in the real-time analysis service of large-capacity data that combines IoT, big data, and machine learning to analyze, the machine learning model and big data analysis model developed to solve a specific problem can be managed by implementing components.

다양한 인공지능 서비스나 어플리케이션이 요구되는 환경에서 응용별로 개별 솔루션을 개발하지 않고, 추가 필요한 컴퍼넌트를 개발하여 추가 탑재하거나 기개발되어 탑재된 컴퍼넌트들을 재활용함으로써 새로운 워크플로우를 만족하는 워크플로우 실행 엔진 세트를 구성/실행할 수 있는 프레임워크를 실현할 수 있다.Instead of developing individual solutions for each application in an environment that requires various artificial intelligence services or applications, we develop a set of workflow execution engines that satisfy new workflows by developing and loading additional components or recycling pre-developed and loaded components. A framework that can be configured/executed can be realized.

도 1은 본 발명에 따른 워크플로우 엔진 프레임워크의 개요도
도 2는 시스템 구성부(30)의 세부 구성도
도 3은 시스템 정의편집기(70)의 구성을 설명하기 위한 GUI 화면 예시도
도 4는 워크플로우를 구성하는 엔진에 대한 명세로부터 엔진을 구성하는 절차를 나타낸 도면
도 5는 도 1의 워크플로우 구성부(36)에 의해 구성가능한 워크플로우 실행 인스턴스의 예시로서의 엔진의 구성도
도 6은 단위처리기를 탑재한 엔진 구성의 일례를 나타낸 도면
도 7은 도 6에 예시한 데이터 처리엔진의 구체적 실시형태도
도 8은 단위처리기를 탑재한 엔진 구성의 다른 예를 나타낸 도면.
도 9는 하나 이상의 엔진이 파이프라인 방식으로 연결되는 워크플로우 실행 시스템의 구성을 나타낸 도면.
도 10은 하나 이상의 엔진이 다수 유형의 데이터 경로를 통하는 워크플로우 실행 시스템의 구성을 나타낸 도면.
도 11은 IoT 및 인공지능 기반의 조도/온도 제어 워크플로우 서비스 시나리오의 설명도
도 12는 딥러닝 기반의 교통속도 모니터링 서비스 시나리오의 설명도
도 13은 도 11의 워크플로우 엔진 프레임워크(10)의 내부 구성
도 14는 클라이언트나 사용자에 대해 서비스를 제공하는 엔진으로서 지능서비스를 제공하기 위한 서빙 엔진의 구성의 예시를 나타낸 도면
도 15는 도 12의 워크플로우 엔진 프레임워크(10)의 내부 구성
도 16은 크로스도메인 워크플로우 엔진 프레임워크 구성의 예를 나타낸 도면
도 17은 크로스도메인 워크플로우의 실행 절차를 나타낸 도면
도 18은 스마트시티를 달성하기 위한 시나리오를 설명하기 위한 도면
도 19는 도 18의 스마트시티를 달성하기 위하여 구성한 워크플로우 엔진 프레임워크의 일 실시형태
도 20은 도 19에 나타낸 워크플로우 94의 스마트가로등제어 추천엔진 구성의 일 실시형태
1 is a schematic diagram of a workflow engine framework according to the present invention;
2 is a detailed configuration diagram of the system configuration unit 30
3 is an exemplary view of a GUI screen for explaining the configuration of the system definition editor 70
4 is a diagram showing a procedure for configuring an engine from a specification for an engine constituting a workflow;
5 is a schematic diagram of an engine as an example of a workflow execution instance configurable by the workflow configuration unit 36 of FIG. 1 .
6 is a view showing an example of the configuration of an engine equipped with a unit processor;
Fig. 7 is a diagram of a specific embodiment of the data processing engine illustrated in Fig. 6;
8 is a view showing another example of the configuration of an engine on which a unit processor is mounted.
9 is a diagram illustrating a configuration of a workflow execution system in which one or more engines are connected in a pipeline manner.
10 is a diagram illustrating the configuration of a workflow execution system in which one or more engines pass through multiple types of data paths.
11 is an explanatory diagram of an IoT and artificial intelligence-based illuminance / temperature control workflow service scenario
12 is an explanatory diagram of a traffic speed monitoring service scenario based on deep learning
13 is an internal configuration of the workflow engine framework 10 of FIG.
14 is a view showing an example of the configuration of a serving engine for providing an intelligent service as an engine for providing a service to a client or a user
15 is an internal configuration of the workflow engine framework 10 of FIG.
16 is a diagram showing an example of a cross-domain workflow engine framework configuration
17 is a diagram showing an execution procedure of a cross-domain workflow
18 is a diagram for explaining a scenario for achieving a smart city
19 is a workflow configured to achieve the smart city of FIG. 18 One embodiment of the engine framework
20 is an embodiment of the configuration of the smart street light control recommendation engine of the workflow 94 shown in FIG. 19

도 1은 본 발명의 워크플로우 엔진 프레임워크의 일 실시형태를 나타내는 구성도이다. 본 발명의 워크플로우 엔진 프레임워크(10)는 기본적으로, 1 is a block diagram showing an embodiment of a workflow engine framework of the present invention. The workflow engine framework 10 of the present invention is basically,

- 실행할 작업(워크플로우)의 구조와 명세를 작성하는 시스템 정의편집기(70), - System definition editor 70 to create the structure and specification of the task (workflow) to be executed;

- 사용자가 시스템 정의편집기(70)를 통해 작성할 워크플로우 명세(=엔진 명세. 즉, 워크플로우를 구성하는 하나 이상의 엔진들로 구성된 명세) 상의 각 엔진 컴퍼넌트들을 정읠하기 위한 속성에 관련된 속성명세 컴퍼넌트와 워크플로우 실행을 수행할 엔진을 구성하는 엔진 구성품에 해당되는 엔진 컴퍼넌트, 그리고 기존에 작성된 워크플로우 명세 인스턴스 등의 자원을 관리하는 자원관리부(20), - A property specification component related to an attribute for refining each engine component on a workflow specification (= engine specification, that is, a specification consisting of one or more engines constituting a workflow) to be created by the user through the system definition editor 70 and A resource management unit 20 that manages resources such as engine components corresponding to engine components constituting the engine to perform workflow execution, and previously created workflow specification instances;

- 워크플로우 속성명세를 조립하고 워크플로우 실행에 필요한 엔진 컴퍼넌트들을 동적으로 조합하여 구성하고, 워크플로우를 수행하는 엔진 인스턴스(32)(이하, '엔진'과 혼용됨)를 생성하는 시스템 구성부(30), - A system configuration unit (hereinafter referred to as 'engine') that assembles the workflow attribute specification and dynamically combines and configures engine components necessary for workflow execution, and creates an engine instance 32 (hereinafter, mixed with 'engine') that performs the workflow. 30),

- 상기 시스템 구성부(30)에 의해서 생성된 엔진 (인스턴스)(32), - the engine (instance) 32 created by the system component 30;

- 자원관리부(20), 시스템 구성부(30), 엔진(32)의 실행을 제어하는 시스템 제어부(40)를 포함한다.- Includes a resource management unit 20, a system configuration unit 30, and a system control unit 40 for controlling the execution of the engine 32.

워크플로우 엔진 프레임워크(10)에서, 사용자는 원하는 시스템을 만들기 위해 하나 이상의 엔진으로 구성되는 워크플로우를 정의한다. 이때 워크플로우는 하나 이상의 엔진에 대한 정의로 구성되며, 엔진에 대한 정의는 엔진 컴퍼넌트들을 담기 위한 엔진컴퍼넌트 컨테이너와 엔진컴퍼넌트 컨테이너에 담길 엔진 컴퍼넌트의 조합에 해당한다. In the workflow engine framework 10, a user defines a workflow consisting of one or more engines to create a desired system. At this time, the workflow consists of the definition of one or more engines, and the definition of the engine corresponds to a combination of an engine component container for containing engine components and an engine component to be included in the engine component container.

엔진 컴퍼넌트 컨테이너는 하나 이상의 입력기(reader) 컴퍼넌트, 출력기(writer) 컴퍼넌트, 실행기(runner) 컴퍼넌트, 처리기(operator) 컴퍼넌트, 제어기(controller) 컴퍼넌트의 조합으로 만들 수 있다. 이들 하나 이상의 입력기 컴퍼넌트, 출력기 컴퍼넌트, 실행기 컴퍼넌트, 처리기 컴퍼넌트, 제어기 컴퍼넌트들은 각각 컴퍼넌트의 성질을 결정짓는 속성을 정의하기 위한 속성명세 컴퍼넌트와 컴퍼넌트들의 실제 구현체에 해당되는 실행 컴퍼넌트의 조합으로 만들어진다. 일례로, 실행 컴퍼넌트는 Java, C++ 등의 클래스에 해당되는 것이고, 속성명세 컴퍼넌트는 클래스의 생성자에 포함될 수 있는 생성자 파라미터 또는 생성자 파라미터를 담는 클래스에 해당된다. 이러한 방식으로 생성된 실행시스템의 정의에 해당하는 하나 이상의 엔진에 대한 워크플로우로를 정의함으로써 동적으로 실행 엔진을 구성하여 다양한 목적의 업무 도메인에 필요한 워크플로우 시스템을 만들 수 있다. An engine component container can be created by combining one or more of a reader component, a writer component, a runner component, an operator component, and a controller component. These one or more input component components, output component components, executor components, handler components, and controller components are each made of a combination of a property specification component for defining properties that determine the properties of the component and an execution component corresponding to the actual implementation of the components. For example, the execution component corresponds to a class such as Java or C++, and the attribute specification component corresponds to a constructor parameter that can be included in the class constructor or a class containing the constructor parameter. By defining a workflow path for one or more engines corresponding to the definition of the execution system created in this way, it is possible to dynamically configure the execution engine to create a workflow system necessary for a business domain for various purposes.

도 2는 도 1의 시스템의 구체적인 구성 및 추가가능한 구성요소를 나타낸다.FIG. 2 shows a specific configuration and addable components of the system of FIG. 1 .

상기 시스템 구성부(30)에 의해 동적으로 생성된 엔진 컴퍼넌트들의 조합으로 구성된 엔진(32)들이 엔진 인스턴스(결과적으로 완성되어 실행된 엔진)의 형태로 생성되어 관리되는 실행 인스턴스부(50); 자원관리부(20)에서 관리되는 속성명세 컴퍼넌트(62)와 엔진 컴퍼넌트(64)가 물리적으로 또는 가상적으로 저장되는 공간인 컴퍼넌트부(60); 그리고, 시스템 정의편집기(70)로부터 워크플로우 명세를 입력받아 시스템 구성부(30)에 전달하는 역할을 하는 프론트엔드(77)가 추가로 포함될 수 있다. an execution instance unit 50 in which engines 32 composed of a combination of engine components dynamically created by the system configuration unit 30 are created and managed in the form of an engine instance (resultingly completed and executed engine); a component unit 60 which is a space in which the attribute specification component 62 and the engine component 64 managed by the resource management unit 20 are physically or virtually stored; In addition, a front end 77 that receives the workflow specification from the system definition editor 70 and transmits it to the system configuration unit 30 may be additionally included.

프론트엔드(77)는 클라이언트로부터 요청을 받아 처리를 하기 위한 프로세스의 실행을 매개하는 역할을 수행하고, 사용자관리나 저장소 관리 등의 다양한 요청에 대응하는 역할을 수행한다. 프론트엔드(77)의 예를 들면 일반적인 어플리케이션 서버, 웹기반의 REST API를 제공하는 웹어플리케이션 서버, 또는 일반적인 소켓통신 기반의 수신자(listener) 모듈을 포함한 시스템일 수 있다. 경우에 따라서 프론트엔드(77)는 시스템 정의편집기(70) 또는 프레임워크(10)를 구성하고 있는 백엔드와 상이한 네트워크 상에서 실행되는 것도 가능하다.The front end 77 plays a role of mediating execution of a process for receiving and processing requests from clients, and serves to respond to various requests such as user management and storage management. For example, the front end 77 may be 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. In some cases, the front-end 77 may be executed on a different network from the back-end constituting the system definition editor 70 or the framework 10 .

도 1, 도 2의 워크플로우 엔진 프레임워크(10)를 본격적으로 설명하기에 앞서, 프레임워크(10)에서 실행시스템을 구동하기 위한 일련의 작업 명세를 정의하는 워크플로우를 작성하고 이를 프레임워크(10)에서 구동하도록 지시하기 위해 프론트엔드(77)로 요청하는 역할을 수행하는 시스템 정의편집기(70)에 대해 먼저 설명한다.Before describing the workflow engine framework 10 of FIGS. 1 and 2 in earnest, a workflow defining a series of work specifications for driving the execution system in the framework 10 is created and the framework ( 10), the system definition editor 70, which performs a request to the front end 77 in order to instruct it to run, will be described first.

시스템 정의편집기(70)는 원하는 업무에 대한 세부 도메인을 정의하고 각 도메인에 대하여 처리할 작업의 구조(워크플로우 구조)를 정의하고 이 구조에 맞게 엔진 컴퍼넌트(들)를 선정하여 워크플로우 실행흐름을 정의하고 각 엔진 컴퍼넌트들의 구체적인 명세를 작성하는 기능을 수행한다. 이를 위해 프레임워크(특히, 자원관리부(20))로부터 속성명세 컴퍼넌트와 엔진 컴퍼넌트를 조회할 수 있다. The system definition editor 70 defines a detailed domain for a desired task, defines the structure (workflow structure) of the work to be processed for each domain, and selects the engine component(s) according to this structure to determine the workflow execution flow. It defines and performs the function of writing the detailed specification of each engine component. For this, the attribute specification component and the engine component can be inquired from the framework (in particular, the resource management unit 20).

여기서 '작업의 구조'는 예를 들어 설명하면, 특정 사물인터넷 플랫폼으로부터의 데이터 수집, 데이터 처리, 학습 등의 과정이며, 이들을 순차적으로 처리하는 것은 워크플로우 실행흐름에 해당될 수 있다. '컴퍼넌트들의 명세'는, 데이터를 어디로부터 가져와서 어떤 처리과정을 거치고 어디로 내보낼 것인지에 대한 작업을 수행하기 위해 어떤 디바이스로부터 수집할 것인지, 연결방법은 무엇인지, 데이터를 받아서 메모리에 둘 것인지 저장소에 넣을 것인지, 메모리 정보는 무엇인지, 저장소 위치는 어디인지 등, 각 요소 컴퍼넌트들에 대한 구체적인 정의 사항을 의미한다.Here, for example, the 'structure of work' is a process of data collection, data processing, and learning from a specific IoT platform, and processing these sequentially may correspond to a workflow execution flow. 'Specification of components' is where data is taken from, what processing, and where to export, from which device to collect, what is the connection method, to receive and store data in memory It means specific definitions for each element component, such as what is, what memory information is, and where is the storage location.

사용자(데이터 과학자, 모델 개발자, 비즈니스 개발자 등)는 시스템 정의편집기(70)를 통해, 워크플로우를 구성하는 엔진 컴퍼넌트(64)와 그 엔진 컴퍼넌트의 특성을 결정짓는 파라미터들을 정의할 수 있는 속성명세 컴퍼넌트(62)를 규약에 따라 정의하고, 또한, 컴퍼넌트와 속성명세의 쌍을 정의하고 편집할 수 있다. A user (data scientist, model developer, business developer, etc.) can define the engine component 64 constituting the workflow and parameters determining the characteristics of the engine component through the system definition editor 70. (62) is defined according to the convention, and a pair of component and attribute specification can be defined and edited.

도 3은 시스템 정의편집기(70)의 구성을 설명하기 위한 GUI 화면(71)의 예시도이다. 이 GUI 화면(71)을 설명함으로써 시스템 정의편집기(70)의 구성 및 작용에 대한 설명을 갈음하기로 한다.3 is an exemplary diagram of a GUI screen 71 for explaining the configuration of the system definition editor 70. As shown in FIG. By explaining the GUI screen 71, the description of the configuration and operation of the system definition editor 70 will be replaced.

GUI 화면(71)에는 기능 메뉴(72), 엔진유형 선택부(73), 컴퍼넌트 선택부(74), 컴퍼넌트 속성 조회/편집부(75), 워크플로우 인스턴스 저장/조회부(76)가 포함된다.The GUI screen 71 includes a function menu 72 , an engine type selection unit 73 , a component selection unit 74 , a component attribute inquiry/edit unit 75 , and a workflow instance storage/inquiry unit 76 .

기능 메뉴(72)는 시스템 정의편집기(70)의 각종 기능들을 선택하는 메뉴로서, 예를 들어 New(워크플로우 신규작성), Open(저장된 워크플로우 불러오기), Save(워크플로우 저장), Run(워크플로우 실행), Result(실행결과 보기), Help(도움말) 등의 기능을 선택하는 메뉴로 구성될 수 있다.The function menu 72 is a menu for selecting various functions of the system definition editor 70, for example, New (create new workflow), Open (load saved workflow), Save (save workflow), Run ( It can consist of a menu to select functions such as workflow execution), Result (view execution result), and Help.

엔진유형 선택부(73)는 각종 엔진 유형을 제시하고 사용자가 이들 중 필요한 것들을 선택할 수 있도록 한다. 엔진의 유형으로는 예를 들어, 실시간 스트림처리 엔진, 배치 분석 엔진, 요구형(on-demand) 데이터처리 엔진, 평가 엔진, 배치 데이터적재 엔진, 스트림 기계학습 예측 엔진, 요구형 융합서빙 엔진 등이 있다.The engine type selection unit 73 suggests various engine types and allows the user to select necessary ones among them. The engine type includes, for example, a real-time stream processing engine, a batch analysis engine, an on-demand data processing engine, an evaluation engine, a batch data loading engine, a stream machine learning prediction engine, and an on-demand fusion serving engine. have.

컴퍼넌트 선택부(74)는 사용자가 컴퍼넌트 타입과 각 타입별 엔진 컴퍼넌트를 선택할 수 있도록 컴퍼넌트 타입별로 다양한 엔진 컴퍼넌트 목록을 제공한다. 아래 표 1은 컴퍼넌트 선택부(74)에서 제시되는 컴퍼넌트 타입과 엔진 컴퍼넌트 목록의 예시이다. The component selection unit 74 provides various engine component lists 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 the component type and engine component list presented by the component selection unit 74 .

컴퍼넌트 타입component type 엔진 컴퍼넌트engine component

Reader(입력기)


Reader
FileReader
HttpServerReader
Kafka Reader
MongodbReader
...
FileReader
HttpServerReader
Kafka Reader
MongodbReader
...

Writer(출력기)

Writer
FileWriter
KafkaWriter
MongodbReader
...
FileWriter
KafkaWriter
MongodbReader
...

Controller(제어기)

Controller
SparkSessionController
SparkSessionStreamController
...
SparkSessionController
SparkSessionStreamController
...

Runner(실행기)

Runner
SparkRunner
TensoflowRunner
...
SparkRunner
TensoflowRunner
...

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 inquire about the properties to select and edit them.

워크플로우 인스턴스 선택부(76)는 기제작된 워크플로우가 저장된 목록이 표시된다. 이들 중에서 재활용을 원하는 워크플로우를 선택하여 재편집을 하거나, 그대로 프레임워크(10)에 실행요청을 할 수 있다. 재활용의 단위는 워크플로우 전체일 수도 있고, 또는 워크플로우에 포함된 단일 엔진별로 재활용하여 편집이나 실행에 활용할 수도 있다. In the workflow instance selection unit 76, a list in which a pre-made workflow is stored is displayed. Among them, you can select a workflow you want to recycle and re-edit it, or you can make an execution request to the framework 10 as it is. The unit of recycling may be the entire workflow, or it may be recycled for each single engine included in the workflow and used for editing or execution.

이러한 시스템 정의편집기(70)에서 워크플로우 명세 화일이 만들어지면 이는 도 1에 나타낸 프레임워크(10)의 시스템 구성부(30)에 제출된다. 이때에 프론트엔드(77)가 워크플로우 명세를 입력받아 시스템 구성부(30)에 전달하는 역할을 할 수 있다. When a workflow specification file is created in the system definition editor 70, it is submitted to the system configuration unit 30 of the framework 10 shown in FIG. At this time, the front end 77 may serve to receive the workflow specification and transmit it to the system configuration unit 30 .

도 1과 도 2로 다시 돌아가면, 프레임워크(10)의 자원관리부(20)는 워크플로우의 실행에 필요한 컴퍼넌트들을 관리하는 기능을 수행한다. 자원관리부(20)는 구체적으로 도 2에 나타낸 것과 같이, 1 and 2, the resource management unit 20 of the framework 10 performs a function of managing components necessary for the execution of the workflow. The resource management unit 20 specifically as shown in Figure 2,

-워크플로우 인스턴스의 컴퍼넌트 특성 또는 속성을 결정짓는 속성명세가 포함된 속성명세 컴퍼넌트(62)와 그 목록을 관리(업데이트 포함)하는 속성명세 컴퍼넌트 관리부(22),- The attribute specification component 62 including the attribute specification that determines the component characteristic or attribute of the workflow instance and the attribute specification component management unit 22 for managing (including updating) the list;

-실행을 위한 컴퍼넌트(엔진 컴퍼넌트)들과 그 목록을 관리(업데이트 포함)하는 엔진 컴퍼넌트 관리부(24)를 포함한다.- Includes the engine component management unit 24 for managing (including updating) components for execution (engine components) and the list.

또한, 기존에 작성되어 저장된 워크플로우 명세 인스턴스를 관리하는 워크플로우 명세 인스턴스 관리부(26)를 추가로 포함할 수 있다. 이 워크플로우 명세 인스턴스 관리부(26)는 시스템 정의편집기(70)의 요청에 따라 (가령, 도 3의 워크플로우 인스턴스 선택부(76)를 통해) 워크플로우 명세 인스턴스를 추후에 활용할 수 있도록 보관 및 관리한다.In addition, it may further include a workflow specification instance management unit 26 for managing the previously created and stored workflow specification instance. The workflow specification instance management unit 26 stores and manages the workflow specification instance so that it can be utilized later (eg, through the workflow instance selection unit 76 of FIG. 3 ) at the request of the system definition editor 70 . do.

또한 도 1에서 시스템 구성부(30)는 작성된 워크플로우의 실행에 필요한 컴퍼넌트를 생성하는 기능을 수행한다. 시스템 구성부(30)는 프론트엔드(77)로부터 넘겨받은 워크플로우 스펙(명세)에 따라 필요한 엔진 컴퍼넌트 컨테이너(32)들을 구성하여 엔진 인스턴스를 생성한다.In addition, in FIG. 1 , the system configuration unit 30 performs a function of generating components necessary for executing the created workflow. The system configuration unit 30 configures the necessary engine component containers 32 according to the workflow specification (specification) received from the front end 77 to create an engine instance.

도 2를 참조하여 더 자세히 보면, 시스템 구성부(30)는 In more detail with reference to FIG. 2 , the system configuration unit 30 is

-시스템 정의편집기(70)로부터 수신한 실행 플랫폼 구성 워크플로우 명세를 속성명세 컴퍼넌트로 바인딩하여 일련의 속성명세 컴퍼넌트를 생성하는 워크플로우 속성명세조립부(34), - A workflow attribute specification assembly unit 34 that binds the execution platform configuration workflow specification received from the system definition editor 70 to an attribute specification component to create a series of attribute specification components;

-조립한 속성명세 컴퍼넌트(62)들로부터, 정의된 엔진 컴퍼넌트 정보를 추출하여 속성명세 컴퍼넌트(62)와 엔진 컴퍼넌트(64)를 바인딩하는 과정을 통해 일련의 엔진 컴퍼넌트를 구성하여 워크플로우 실행 플랫폼을 구성하는 워크플로우 구성부(36)를 포함한다.-Extract defined engine component information from the assembled property specification components 62 and configure a series of engine components through the process of binding the property specification component 62 and the engine component 64 to create a workflow execution platform and a workflow configuration unit 36 to configure.

워크플로우 속성명세조립부(34)는 실행 플랫폼을 구성하기 위한 워크플로우 명세를 속성명세 컴퍼넌트(62)로 바인딩하여 일련의 속성명세 컴퍼넌트 인스턴스를 생성한다. 워크플로우 속성명세조립부(34)에 의해 생성되는 속성명세 컴퍼넌트(62)의 예를 들면, 구글의 Protobuf 메세지 객체, 스칼라의 Case Class, 자바의 Property 객체 등을 들 수 있다.The workflow attribute specification assembly unit 34 binds the workflow specification for constituting the execution platform to the attribute specification component 62 to create a series of attribute specification component instances. Examples of the attribute specification component 62 generated by the workflow attribute specification assembling unit 34 include Google's Protobuf message object, Scala's Case Class, and Java's Property object.

워크플로우 구성부(36)는 워크플로우를 구성하는 엔진 컴퍼넌트(64)와 이 엔진 컴퍼넌트(64)의 특성을 결정짓는 파라미터들을 정의한 속성명세 컴퍼넌트(62)를 바인딩하고, 바인딩 과정을 통해 생성한 엔진컴퍼넌트들의 인스턴스를 엔진컨테이너에 바인딩함으로써 워크플로우를 실행하기 위한 일련의 엔진 인스턴스들이 포함되는 워크플로우 실행 인스턴스부(50)를 동적으로 구성한다. 워크플로우 실행 인스턴스부(50)에는 워크플로우 구성부(36)에 의해 동적으로 생성된 하나 이상의 엔진(32)이 만들어져서 실행된다. 하나의 워크플로우를 실행하기 위해 생성된 이들 엔진(32)은 하나의 독립된 프로그램 패키지로서 동일 컴퓨팅 머신 또는 네트워크로 연결된 컴퓨팅 머신 상에 배포되고 실행되거나, 가상머신 단위로 패키징되어 상이한 물리적 컴퓨팅 머신에 배포될 수 있다.The workflow configuration unit 36 binds the engine component 64 constituting the workflow and the attribute specification component 62 defining parameters that determine the characteristics of the engine component 64, and the engine generated through the binding process. By binding the instances of the components to the engine container, the workflow execution instance unit 50 including a series of engine instances for executing the workflow is dynamically configured. In the workflow execution instance unit 50 , one or more engines 32 dynamically created by the workflow configuration unit 36 are created and executed. These engines 32 created to execute one workflow are deployed and executed as one independent program package on the same computing machine or networked computing machine, or packaged in virtual machine units and distributed to different physical computing machines. can be

도 1과 도 2의 시스템 제어부(40)는 시스템 구성부(30)가 생성한 엔진 인스턴스(32)들을 처리 절차에 맞게 구동하고, 또한 구동된 엔진 인스턴스(32)를 종료시키는 역할을 수행하는 등, 본 발명의 프레임워크의 핵심 역할을 수행하는 모듈이다. 워크플로우 속성명세에 정의된 방식에 따라 워크플로우 실행 인스턴스부(50) 내에 만들어지는 하나 이상의 엔진(32)을 구동하여 실행을 제어한다. 다시 말해, 시스템 제어부(40)가 워크플로우 실행 인스턴스부(50)에 워크플로우 실행 요청을 하면, 워크플로우가 실행된다. 이로써, 원하는 어떠한 도메인에 대해서도 사용자에 의해 작성된 워크플로우가 이루고자 하는 목적을 달성할 수 있다. 1 and 2, the system control unit 40 drives the engine instances 32 generated by the system configuration unit 30 according to the processing procedure, and also serves to terminate the driven engine instance 32, etc. , a module that plays a key role in the framework of the present invention. The execution is controlled by driving one or more engines 32 created in the workflow execution instance unit 50 according to a method defined in the workflow attribute specification. In other words, when the system control unit 40 makes a workflow execution request to the workflow execution instance unit 50, the workflow is executed. In this way, the purpose of the workflow created by the user for any desired domain can be achieved.

예를 들어 시스템 제어부(40)는 다수의 상이한 유형을 데이터 출발지(source)와 종착지(destination)로 하는 하나 이상의 엔진(32)이 서로 파이프라인 방식으로 실행되도록 제어할 수 있다. 또는 다수의 상이한 유형을 데이터 출발지와 종착지로 하는 하나 이상의 엔진이 동시실행 되도록 제어할 수 있다. 다양한 유형의 엔진 구성에 대해서 차후에 상세히 설명한다.For example, the system controller 40 may control one or more engines 32 having a number of different types of data as a data source and a destination to run in a pipelined manner to each other. Alternatively, one or more engines with a number of different types of data source and destination may be controlled to run concurrently. Various types of engine configurations will be described later in detail.

도 4는 시스템 정의편집기(70)에서 작성된 워크플로우 명세로부터 엔진(32)을 구성하는 절차를 도시한다.4 shows a procedure for constructing the engine 32 from the workflow specification created in the system definition editor 70. As shown in FIG.

우선, 시스템 구성부(30)의 워크플로우 구성부(36)는 워크플로우 명세를 입력받아(340), 이로부터, 엔진을 구성할 엔진 컴퍼넌트들에 대한 속성명세가 담기는 일련의 속성명세 컴퍼넌트 인스턴스를 생성한다(342). 이때 사용되는 속성명세 컴퍼넌트(62)는 구글의 프로토버프 메세지나 스칼라 케이스클래스, 기타 프로그램 언어 상에서 값을 담을 수 있는 'Class'일 수 있다. First, the workflow configuration unit 36 of the system configuration unit 30 receives a workflow specification input (340), and from this, a series of attribute specification component instances in which attribute specifications for engine components constituting the engine are contained. to generate (342). The attribute specification component 62 used at this time may be a 'Class' that can contain a value in Google's Protobuff message, a Scala case class, or other programming language.

생성한 속성명세 컴퍼넌트 인스턴스를 엔진 컴퍼넌트(64)의 생성자 파라미터로 지정하여 엔진 컴퍼넌트 인스턴스를 생성한다(344).An engine component instance is created by designating the created attribute specification component instance as a constructor parameter of the engine component 64 (344).

엔진을 구성하는 제어기, 입력기, 실행기, 출력기, 단위처리기를 포함하는 엔진 인스턴스가 생성되면, 이들을 엔진 컴퍼넌트 컨테이너 인스턴스를 생성자 파라미터로 하여, 엔진 컴퍼넌트 컨테이너(31)에 동적 바인딩하여서 엔진 인스턴스를 생성하는 과정(346)을 통해 엔진 인스턴스를 생성한다. 워크플로우 상의 모든 엔진 정의에 대해 엔진 인스턴스(32)가 생성되고, 생성된 엔진 인스턴스는 워크플로우 실행 인스턴스부(50)에서 실행 및 관리된다. When an engine instance including the controller, input device, executor, output device, and unit processor constituting the engine is created, the engine instance is created by dynamically binding them to the engine component container 31 using the engine component container instance as a constructor parameter Create an engine instance through (346). An engine instance 32 is created for all engine definitions on the workflow, and the generated engine instance is executed and managed in the workflow execution instance unit 50 .

이러한 도 4의 절차로써 워크플로우 실행 인스턴스를 동적으로 구성한다. 여기서 하나의 엔진은 가상머신 형태로 정의되고 구성될 수 있다.The workflow execution instance is dynamically configured by the procedure of FIG. 4 . Here, one engine may be defined and configured in the form of a virtual machine.

도 5~도 10은 도 1에서 언급한 워크플로우 구성부(36)에 의해 구성되는 워크플로우 실행 인스턴스의 예시로서 다양한 엔진(32) 구성의 방식을 도시한다.5-10 show various ways of configuring the engine 32 as examples of workflow execution instances configured by the workflow configuration unit 36 mentioned in FIG. 1 .

도 5에 나타낸 기본적인 엔진(32)은, 하나 이상의 데이터 출발지(source)로부터 데이터를 가져오는 입력기(reader)(322), 내부에서 처리한 데이터를 하나 이상의 데이터 종착지에 출력하는 하나 이상의 출력기(writer)(324), 입력한 데이터를 처리하기 위한 별도의 실행프로그램 또는 플랫폼을 실행하거나 세션을 관리하는 실행기(runner)(326), 이러한 데이터를 입력기를 통해 입력하여 실행기 상에서 처리하고 이를 출력하기 위한 일련의 제어를 담당하는 제어기(controller)(328)로 구성된다.The basic engine 32 shown in FIG. 5 includes a reader 322 for fetching data from one or more data sources, and one or more writers for outputting internally processed data to one or more data destinations. 324, a runner 326 that executes a separate executor or platform for processing input data or manages a session, inputs such data through an input device, processes it on the runner and outputs it It consists of a controller (controller) 328 in charge of control.

상기 컨트롤러(제어기)(328)는 상기 입력기(322), 출력기(324), 실행기(326), 및 하기 단위처리기(323)를 이용한 일련의 처리과정을 제어하는 기능을 수행한다. 입력기(322)에 데이터소스(출발지)로부터 데이터를 읽어오라는 입력요청을 하고, 실행기(326)에 입력기를 통해 읽은 데이터를 처리 프레임워크를 구동하여 처리하고 출력기로 보내라는 처리요청을 하고, 출력기(324)로 하여금 처리 완료된 데이터를 데이터 종착지에 쓰도록 출력요청을 한다. The controller (controller) 328 performs a function of controlling a series of processes using the input device 322 , the output device 324 , the executor 326 , and the following unit processor 323 . An input request is made to the input device 322 to read data from the data source (source), and a processing request is made to the executor 326 to process and send the data read through the input device to the output device by driving the processing framework, and to the output device ( 324) makes an output request to write the processed data to the data destination.

엔진(32)의 입력기(322)는 인메모리 버퍼나 캐시, 파일시스템, 메세징시스템, 데이터베이스, 네트워크드라이버 중의 어느 하나의 타입의 데이터 저장소(도시하지 않음)로부터 데이터를 읽는 기능을 수행한다. 마찬가지로, 출력기(324)는 인메모리 버퍼나 캐시, 파일시스템, 메세징시스템, 데이터베이스, 네트워크드라이버 중의 어느 하나의 타입의 데이터 저장소(도시하지 않음)에 데이터를 쓰는 기능을 수행한다. 단위처리기(323)는 데이터를 받아 가공하여 내보내는 기능을 수행한다. 예를 들어 데이터마이닝에서 언급하고 있는 정제/통합/축소/변환 방법에 포함된 다양한 데이터처리 기능의 구현체일 수 있다. 실행기(326)는 데이터를 처리하기 위해 필요한 모든 프로그램이나 외부 플랫폼/프레임워크들이 될 수 있으며, 빅데이터 처리를 위한 Spark, 딥러닝 분석을 위한 Caffe, Tensorflw와 같은 딥러닝 플랫폼, Jena와 같은 지식처리엔진 중 하나와 연동하거나 이를 실행하기 위한 커넥터나 제어기, 세션관리기 등이 될 수 있다. The input device 322 of the engine 32 performs a function of reading data from a data storage (not shown) of any one type of an in-memory buffer or cache, a file system, a messaging system, a database, and a network driver. Similarly, the writer 324 performs a function of writing data to any one type of data storage (not shown) among an in-memory buffer, cache, file system, messaging system, database, and network driver. The unit processor 323 performs a function of receiving, processing, and exporting data. For example, it may be an implementation of various data processing functions included in the purification/integration/reduction/transformation methods mentioned in data mining. The executor 326 may be any program or external platform/framework required to process data, and deep learning platforms such as Spark for big data processing, Caffe for deep learning analysis, and Tensorflw, and knowledge processing such as Jena. It can be a connector, controller, session manager, etc. for interworking with or executing one of the engines.

한편, 제어기(328)는, 도 5, 6과 같이, 입력기(322), 하나 이상의 단위처리기(323a~c), 출력기(324)의 순으로 노드들이 구성되는 경우에, 데이터를 순차적으로 파이프라이닝하여 다음 노드로 전달하는 방식으로 실행하도록 제어하는 순차처리 방식, 각각의 노드가 동시에 실행되도록 하는 동시처리 방식, 이 둘을 결합한 동시/순차처리 방식 등을 이용하여 제어할 수 있다.On the other hand, the controller 328, as shown in Figs. 5 and 6, when the nodes are configured in the order of the input device 322, one or more unit processors 323a to c, and the output device 324, sequentially pipelining the data It can be controlled using a sequential processing method that controls execution in such a way that it is transmitted to the next node, a concurrent processing method that allows each node to be executed at the same time, and a concurrent/sequential processing method that combines the two.

도 6은 도 5의 기본적인 엔진(32)을 구성하는 방식 중, 입력된 데이터를 제어기(328)에 의해 처리하는 일련의 과정을 하나 이상의 연속된 단위처리기(unit operator)(323a-c)를 이용하여 순차적으로 파이프라인 방식으로 데이터 처리를 하여 출력기(324)까지 전달하도록 구성된 엔진을 도시한다. 제어기(328)는 입력기(322)에 데이터출발지로부터 데이터를 읽어오라는 입력요청을 하고, 실행기(326)에 데이터 처리를 위한 프레임워크를 구동하여 입력기를 통해 읽은 데이터를 처리하도록 처리기실행요청을 하고, 각 단위처리기(323a-c)에 파이프라인 처리 실행 요청을 하고, 출력기(324)로 하여금 처리 완료된 데이터를 데이터 종착지에 쓰도록 출력요청을 한다. 도 6의 구성방법에 의하면 다양한 단위처리기를 조합 활용하여 다양한 도메인의 목적에 맞는 처리를 쉽게 수행할 수 있다. 단위처리기(323a-c)는 일반적인 데이터마이닝의 기법들에 해당하는 정제, 축소, 통합, 변환을 위한 방법의 구현체들일 수 있다.6 shows a series of processes of processing input data by the controller 328 among the methods of configuring the basic engine 32 of FIG. 5 using one or more continuous unit operators 323a-c. It shows an engine configured to sequentially process data in a pipelined manner and deliver it to the output device 324 . The controller 328 makes an input request to the input device 322 to read data from the data source, and drives the framework for data processing to the executor 326 to process the data read through the input device. A pipeline processing execution request is made to each unit processor 323a-c, and an output request is made so that the output device 324 writes the processed data to the data destination. According to the configuration method of FIG. 6 , it is possible to easily perform processing according to the purpose of various domains by using various unit processors in combination. The unit processors 323a - c may be implementations of methods for refining, reduction, integration, and transformation corresponding to general data mining techniques.

도 7은 도 6에 예시한 데이터 처리엔진의 구체적 실시형태를 나타낸다. 데이터를 처리하기 위한 Spark 프레임워크를 실행하고 파일이나 JDBC, Kafka 등으로부터 데이터를 읽는 입력기(Reader)를 통해 데이터를 읽어 특정 컬럼을 삭제(remove)하는 단위처리기(operator)와, 병합(concatenation) 및 누락치 임퓨테이션(imputation) 단위처리기, 정규화(scaling) 단위처리기, 정제(filter) 단위처리기, 피벗(pivot) 단위처리기를 통해서 파일, JDBC, Kafka 등으로 출력하는 출력기(writer)를 포함하는 데이터 처리엔진을 구성할 수 있다.7 shows a specific embodiment of the data processing engine illustrated in FIG. 6 . A unit processor that executes the Spark framework to process data and reads data through a reader that reads data from a file, JDBC, Kafka, etc. and deletes a specific column, concatenation and Data processing including a writer outputting to a file, JDBC, Kafka, etc. through a missing value imputation unit processor, a scaling unit processor, a filter unit processor, and a pivot unit processor You can configure the engine.

도 8은 도 6의 제어기(328)가 단위처리기(323a~c)를 구동하는 다른 방식의 엔진으로서, 입력기(322)로부터 데이터를 받아서 일련의 단위처리기가 순차적으로 파이프라이닝에 의한 데이터를 처리하는 방식과 함께, 하나 이상의 단위처리기가 구동되어 동시처리를 실행하도록 제어하는 방식의 엔진 구성을 도시한다.8 is another engine in which the controller 328 of FIG. 6 drives the unit processors 323a to c, receiving data from the input device 322 and sequentially processing the data by pipelining in a series of unit processors. Along with the method, the engine configuration of the method in which one or more unit processors are driven to perform simultaneous processing is shown.

이상에서 설명한 다양한 구성의 엔진(32)의 다른 실시형태로서, 실행기(326)를, Caffe 또는 Tensorflow와 같은 딥러닝 프레임워크, Spark 또는 Hadoop MapReduce와 같은 빅데이터 처리 프레임워크, R 또는 Python과 같은 분석 프레임워크 등의 다양한 처리 프레임워크나 소프트웨어 프로그램과 연동하도록 또는 이들을 포함하도록 구성할 수 있다. As another embodiment of the engine 32 of various configurations described above, the executor 326 is a deep learning framework such as Caffe or Tensorflow, a big data processing framework such as Spark or Hadoop MapReduce, and analysis such as R or Python. It can be configured to interwork with or include various processing frameworks or software programs such as frameworks.

또다른 실시형태로서, 상기 설명한 엔진(32)을, 동일한 시스템 내의 다양한 데이터 경로를 데이터 출발지 및 종착지로 사용하는 입력기와 출력기를 탑재하도록 구성할 수 있다. 즉, 인메모리 버퍼/캐시, 파일시스템, 메세징 시스템, 데이터베이스, 네트워크 등의 다양한 논리적 드라이버 개념의 소스(동일 시스템에 포함됨)를 데이터출발지 및 종착지로 정의하고 이들로부터 데이터를 입력받고 이들로 데이터를 출력하도록 입력기와 출력기를 구성하여 엔진을 구성할 수 있다. As another embodiment, the engine 32 described above may be configured to mount input and output devices that use various data paths within the same system as data source and destination. That is, the source (included in the same system) of various logical driver concepts such as in-memory buffer/cache, file system, messaging system, database, and network is defined as the data source and destination, receives data from them, and outputs data to them. The engine can be configured by configuring the input and output devices to do this.

또다른 실시형태로서, 상기 설명한 엔진(32)을, 상이한 시스템 또는 네트워크에 존재하는 데이터 경로를 각각 데이터 출발지와 종착지로 사용하는 엔진을 구성할 수 있다. 이를 위해 입력기와 출력기에 대한 설정에 네트워크 주소 정보나 호스트 정보, 원격 드라이버 정보를 포함시킬 수 있다. 상이한 데이터 출발지와 종착지를 입력기와 출력기에 별개로 사용함으로써 엔진을 데이터 출발지와 종착지 사이에서의 스트림 처리 엔진이나 데이터 경로 상의 필터처럼 활용할 수 있는 것이다. As another embodiment, the engine 32 described above may be configured to use data paths that exist in different systems or networks as data source and destination, respectively. For this, network address information, host information, and remote driver information can be included in the settings for input and output devices. By separately using different data source and destination for input and output, the engine can be used as a stream processing engine between data source and destination or as a filter on the data path.

도 9는 다수의 워크플로우 실행 엔진(32a~c)이 구성되는 경우에 하나의 엔진의 출력기에서 출력될 데이터의 종착지가 다른 엔진의 입력기의 데이터 출발지로 파이프라인 방식으로 전달되도록 데이터 전달경로(338)가 사용되는 실시형태를 도시한다. 여기서 데이터 전달경로(338)는 예를 들어 Kafka일 수 있다. 도 9와 같은 구성을 이용함으로써 여러 개의 상이한 용도의 워크플로우 처리를 하는 엔진(32a~c)들이 협력하여 복잡한 워크플로우를 실행하는 것이 가능하다.9 shows a data transmission path 338 such that, when a plurality of workflow execution engines 32a to 32c are configured, the destination of data to be output from the output device of one engine is transmitted in a pipeline manner to the data source of the input device of another engine. ) shows the embodiment in which it is used. Here, the data transfer path 338 may be, for example, Kafka. By using the configuration shown in FIG. 9 , it is possible for the engines 32a to c to perform a complex workflow in cooperation with a plurality of different-purpose workflow processing engines.

또한 도 9에서, 하나 이상의 엔진(32a~c)들은 서로 다른 물리적 환경(가령, 네트워크, 클러스터 등)에 놓일 수 있으며, 상이한 종류의 실행기로 구성하는 것이 가능하다. 예를 들면, 첫 번째 엔진(32a)은 데이터를 처리하는 실행기를 연동하고 두 번째 엔진(32b)은 딥러닝 프레임워크를 연동한다고 할 경우, 상기 데이터 전달경로(338)에 의해 상이한 환경에서 복잡한 문제를 해결하기 위한 하나의 워크플로우를 실행하는 것이 가능하다. 이때 각각의 엔진들은 동시 실행, 하나씩 순차적 실행, 또는 특정 시점에 따른 개별적 실행 모두 가능하다.Also in FIG. 9 , one or more engines 32a - c may be placed in different physical environments (eg, networks, clusters, etc.), and it is possible to configure different types of executors. For example, if the first engine 32a interworks an executor that processes data and the second engine 32b interworks a deep learning framework, it is a complex problem in a different environment by the data transfer path 338 It is possible to run a single workflow to solve At this time, each of the engines can be executed concurrently, sequentially one by one, or individually according to a specific point in time.

도 10은 하나 이상의 엔진(32a~c)이 상이한 유형의 데이터 전달경로(예를 들어, 파일시스템 전달경로(340)와 네트워크스트림 전달경로(342))를 데이터 출발지 및 종착지별로 파이프라이닝 처리하는 방식으로 워크플로우 실행 시스템을 구성한 예를 도시한다. 이 경우에 각 엔진 내의 입력기와 출력기는 복수로 구성된다. 여기서 파일시스템 전달경로(340)는 배치 전달경로를 의미하고, 네트워크스트림 전달경로(342)는 실시간 전달경로를 의미한다. 도 10의 방식에 의해 실시간 처리와 배치 처리가 동시에 가능한 람다아키텍쳐와 같은 구조의 워크플로우 시스템을 구성할 수 있다.10 is a method in which one or more engines 32a to c pipeline different types of data transfer paths (eg, a file system transfer path 340 and a network stream transfer path 342) for each data source and destination. shows an example of configuring the workflow execution system with In this case, the input and output devices in each engine are constituted by a plurality. Here, the file system delivery path 340 means a batch delivery path, and the network stream delivery path 342 means a real-time delivery path. By the method of FIG. 10 , a workflow system having the same structure as a lambda architecture capable of real-time processing and batch processing can be configured.

이상에서 설명한 본 발명의 프레임워크의 구성 및 작용에 대한 이해를 돕기 위하여 구체적인 워크플로우 서비스 시나리오를 소개하기로 한다.A detailed workflow service scenario will be introduced to help the understanding of the structure and operation of the framework of the present invention described above.

도 11은 IoT 및 인공지능 기반의 조도/온도 제어 워크플로우 서비스 시나리오의 설명도이다. 워크플로우 엔진 프레임워크(10)는 건물내 온도센서(81)로부터의 온도센싱값을 수신하여 프레임워크(10) 내에 생성된 엔진(들)을 통해 소정의 워크플로우를 실행하여 스마트전구(82)를 제어하여 최적 조도조절을 수행하고 스마트 시스템냉난방기(83)를 제어하여 최적 온도조절을 수행한다.11 is an explanatory diagram of an IoT and artificial intelligence-based illuminance/temperature control workflow service scenario. The workflow engine framework 10 receives the temperature sensing value from the temperature sensor 81 in the building and executes a predetermined workflow through the engine(s) generated in the framework 10 to perform a smart light bulb 82 . to perform optimal illuminance control and to control the smart system air conditioner 83 to perform optimal temperature control.

"80"은 온도센서(81)로부터 유입되는 데이터를 입력으로 예측모델에 의해 미래, 예를 들어 향후 1시간 후의 온도의 변화를 예측하고, 예측 온도에 적합한 조도설정과 에어컨 온도 제어설정 값을 추론하여 이를 스마트전구(82)의 조도조절과 스마트시스템냉방기(83)의 온도설정 값으로 전송하는 조도 및 온도제어 인공지능 서비스를 나타낸다."80" predicts a change in temperature in the future, for example, 1 hour later, by a prediction model by inputting data flowing from the temperature sensor 81, and infers the illuminance setting suitable for the predicted temperature and the air conditioner temperature control setting value Thus, it represents the illuminance and temperature control artificial intelligence service that transmits the illuminance control of the smart light bulb 82 and the temperature setting value of the smart system air conditioner 83.

도 12는 딥러닝 기반의 교통속도 모니터링 서비스 시나리오의 설명도이다. 본 발명의 워크플로우 엔진 프레임워크(10)는 특정지역의 교통현장에 구축되어 있는 교통속도센서(시뮬레이터)(84)로부터 속도정보를 전송받아서 프레임워크(10) 내에 생성된 엔진(들)을 통해 소정의 워크플로우를 실행하여 실행 데이터를 해당 지역에 구축되어 있는 교통속도예측 지능 서비스(85)에 제공하여, 운행중 차량의 대쉬보드(87) 또는 스마트폰 화면(88)을 통해 모니터링하도록 할 수 있다. 차량(87) 또는 스마트폰(88)을 통해 모니터링되는 내용은 '86'과 같이 예를 들어 특정 지역의 지도에 표시되는 교통속도 정보이다.12 is an explanatory diagram of a traffic speed monitoring service scenario based on deep learning. The workflow engine framework 10 of the present invention receives speed information from a traffic speed sensor (simulator) 84 built in a traffic site in a specific area and uses the engine(s) generated in the framework 10 By executing a predetermined workflow, the execution data is provided to the traffic speed prediction intelligent service 85 built in the region, and it can be monitored through the dashboard 87 of the vehicle or the smartphone screen 88 while driving. . The content monitored through the vehicle 87 or the smart phone 88 is traffic speed information displayed on a map of a specific area, for example, '86'.

도 13은 도 11의 워크플로우 엔진 프레임워크(10)의 내부 구성을 설명한다. 워크플로우 엔진 프레임워크(10)에서 생성된 엔진에 인제스천(Ingestion)/데이터/예측을 위한 엔진(52)과 서빙 엔진(53)이 포함되어 있다.13 illustrates the internal configuration of the workflow engine framework 10 of FIG. 11 . An engine 52 and a serving engine 53 for ingestion/data/prediction are included in the engine generated by the workflow engine framework 10 .

인제스천/데이터/예측 엔진(52)의 구성요소는 다음과 같다.The components of the ingestion/data/prediction engine 52 are as follows.

522: 웹서비스 포트를 열어 들어오는 데이터를 읽는 스트림 입력기522: Stream input device to open web service port to read incoming data

528: 스트림데이터를 읽어 일정 갯수가 쌓이면 입력기(522), 오퍼레이터(523a~f), 출력기(524)를 순차적으로 처리하도록 하는 컨트롤러(제어기)528: A controller (controller) that reads stream data and sequentially processes the input unit 522, the operators 523a to f, and the output unit 524 when a certain number is accumulated

523a: 데이터 중 온도값이 위치한 컬럼을 추출하는 오퍼레이터(처리기)523a: An operator (processor) that extracts a column in which a temperature value is located among data

523b: 특정값의 범위로 값을 정규화하는 오퍼레이터523b: operator that normalizes values to a range of specific values

523c: 컬럼을 열로, 또는 열을 컬럼으로 변환하는 오퍼레이터523c: operator to convert column to column or column to column

523d: 전달된 값을 지정된 기계학습모델을 이용하여 예측/판단하는 오퍼레이터523d: An operator that predicts/determines the passed value using a specified machine learning model

523e: 역정규화를 위해 특정값의 범위로 값을 환원하는 오퍼레이터523e: An operator that returns a value to a range of specific values for denormalization

523f: 예측결과로 생성된 여러 값들 중에서 레이블 값이 포함된 특정 컬럼을 추출하는 오퍼레이터523f: An operator that extracts a specific column containing a label value from among multiple values generated as a result of prediction

524: 최종값을 스트림엔진(예를 들어, Kafka)으로 쓰는 출력기524: Writer that writes the final value to a stream engine (eg Kafka)

526: 오퍼레이터가 실행될 수 있도록 하는 환경을 제공하는 실행기. 526: An executor that provides an environment that allows operators to be executed.

서빙 엔진(53)의 구성요소는 다음과 같다.The components of the serving engine 53 are as follows.

532: 스트림엔진으로부터 필요시마다 값을 읽는 입력기532: Input device that reads values from stream engine whenever necessary

536: 특정 웹포트를 열고 최종 사용자로부터의 요청을 대기하는 웹서버 실행기(RestRunner).536: A web server runner (RestRunner) that opens a specific web port and listens for requests from end users.

538: Rest Runner(536)에서 실행 중인 웹서버 상의 특정 웹포트를 통해 요청이 왔을때 입력기(342)를 통해 인제스천(Ingestion)/데이터/예측 엔진(52)의 처리결과 값을 읽어 이 예측 값을 사용자 요청에 담겨 있는 상황정보 값과 조합하여 데이터베이스를 참조하여 최적의 값을 검색하여 응답하도록 일련의 흐름을 제어하는 컨트롤러538: When a request comes through a specific web port on the web server running in the Rest Runner (536), the processing result value of the ingestion/data/prediction engine 52 is read through the input device 342 and this predicted value A controller that controls a series of flows to retrieve and respond to the optimal value by referring to the database in combination with the context information value contained in the user request.

온도센서(81)의 온도센싱값이 REST 신호로 인제스천/데이터/예측 엔진(52)에 입력되어 시스템 정의편집기(70)를 통해 설계된 다수의 처리기를 거쳐서 처리되면, 출력되는 예측결과값은 저장소로부터 읽혀서 서빙 엔진(53)으로 전달되고 온도센서(81)의 온도센싱값에 따라 스마트전구(82)가 제어되어 자동 조도조절이 수행된다. When the temperature sensing value of the temperature sensor 81 is input to the ingestion/data/prediction engine 52 as a REST signal and processed through a plurality of processors designed through the system definition editor 70, the output prediction result value is stored It is read from and delivered to the serving engine 53, and the smart light bulb 82 is controlled according to the temperature sensing value of the temperature sensor 81 to perform automatic illuminance adjustment.

도 14는 클라이언트나 사용자에 대한 서비스를 제공하는 엔진으로서 지능서비스를 제공하기 위한 서빙 엔진의 구성 예시를 보여준다. 입력기(322), 다수의 파이프라인 처리기(323a~c), 출력기(324), 실행기(326), 제어기(328)의 구성요소는 도 8에서 설명된 것과 유사하다. 다만 도 14의 서빙 엔진은 도 11 및 도 13의 워크플로우 서비스에 있어서의 서비스 실행을 서빙하는 기능을 위하여 구성된다. 도 14에 각 컴퍼넌트와 연동하는 외부 시스템, Spark, Tensoflow, Jena(time), REST Server, Jena(space), Jena(domain-specific)이 표시되어 있다.14 shows an example of a configuration of a serving engine for providing an intelligent service as an engine for providing a service to a client or a user. Components of the inputter 322 , the plurality of pipeline processors 323a - c , the outputter 324 , the executor 326 , and the controller 328 are similar to those described in FIG. 8 . However, the serving engine of FIG. 14 is configured for the function of serving the service execution in the workflow service of FIGS. 11 and 13 . In FIG. 14, external systems interoperating with each component, Spark, Tensoflow, Jena (time), REST Server, Jena (space), and Jena (domain-specific) are shown.

서빙 엔진의 제어기는 Spark 같은 실행기로 구성된 엔진로부터 처리한 데이터를 읽거나 텐서플로우 같은 딥러닝 프레임워크를 실행기로 구성한 엔진로부터 처리한 데이터를 읽는 입력기와, 그 값을 이용하여 온톨로지 기반 추론을 수행하는 처리기와, 그 결과를 REST 인터페이스를 통해서 서비스하는 실행기로 엔진을 구성함으로써 지능적 서비스를 제공할 수 있다. The controller of the serving engine reads data processed from an engine composed of executors such as Spark or an input unit that reads data processed from an engine composed of an executor such as a deep learning framework such as TensorFlow, and uses the value to perform ontology-based inference. An intelligent service can be provided by configuring the engine with a processor and an executor that serves the result through a REST interface.

도 15는 도 12의 워크플로우 엔진 프레임워크(10)의 내부 구성을 설명한다. 워크플로우 엔진 프레임워크(10)에서 생성된 엔진에, 1382개 Link의 교통센서(84)로부터 5분단위로 시간/속도/TRV가 실시간 전송되면 이를 읽어서 Tensorflow RNN 동작을 위한 Link별 24 시간 시리즈(time series) 데이터를 전처리하고 전송하는 데이터 엔진(54)과, Tensorflow RNN 동작을 위한 Link별 24 time series를 수신하여 15분 후의 예측값을 출력하는 예측 엔진(55)이 포함되어 있다.15 illustrates an internal configuration of the workflow engine framework 10 of FIG. 12 . When time/speed/TRV is transmitted in real time from traffic sensors 84 of 1382 links to the engine created in the workflow engine framework 10 in 5 minute units, it is read and a 24-hour series (time per link) for Tensorflow RNN operation series) includes a data engine 54 that preprocesses and transmits data, and a prediction engine 55 that receives a 24 time series for each link for Tensorflow RNN operation and outputs a predicted value after 15 minutes.

데이터 엔진(54)에는 도 5~8과 유사하게 입력기(542), 제어기(548), 실행기(546), 처리기(543a~f)가 포함된다. 예측 엔진(55)의 경우에도 도 5~8과 유사하게 입력기(552)와 제어기(558)가 포함되지만, 실행기 대신에, RNN(순환신경망) 기반의 예측을 수행하는 텐서플로우(Tensorflow)(555)가 포함된다. The data engine 54 includes an input device 542 , a controller 548 , an executor 546 , and processors 543a-f similar to FIGS. 5-8 . In the case of the prediction engine 55, similar to FIGS. 5-8, the input device 552 and the controller 558 are included, but instead of the executor, Tensorflow 555 that performs RNN (recurrent neural network)-based prediction ) is included.

도 16은 이상에서 설명한 다수의 단일도메인 적응형 워크플로우 엔진 프레임워크(10)들을 네트워크를 통해 서로 협력적으로 연결하여 크로스도메인 적응형의 워크플로우 엔진 프레임워크 시스템을 동적 구성하기 위한 방법을 도시한다. 도 1의 워크플로우 구성의 대상이 크로스도메인에 해당되는 경우에, 하나 이상의 단일도메인 적응형 워크플로우 엔진 프레임워크(10)를 총괄적으로 관리하고 제어하기 위한 크로스도메인 융합 시스템(10')을 추가로 포함하여, 크로스도메인 적응형 워크플로우 엔진 프레임워크를 구현할 수 있다.16 shows a method for dynamically configuring a cross-domain adaptive workflow engine framework system by cooperatively connecting a plurality of single-domain adaptive workflow engine frameworks 10 described above through a network. . In the case where the target of the workflow configuration of FIG. 1 corresponds to a cross-domain, a cross-domain convergence system 10' for collectively managing and controlling one or more single-domain adaptive workflow engine frameworks 10 is additionally provided. Including, cross-domain adaptive workflow engine framework can be implemented.

크로스도메인 융합 시스템(10')은 기본적으로, 도 1 또는 도 2의 단일도메인 워크플로우 엔진 프레임워크(10)와 유사한 구성 및 기능을 가지며 다양한 도메인들을 통합하여 계층화하는 역할을 하는 것으로, 크로스도메인 워크플로우 실행에 관련되는 자원들을 관리하고 각 도메인에 크로스도메인 워크플로우의 일부를 워크플로우로서 할당하고 이를 각 도메인의 프레임워크 상에서 실행시키는 시스템이다. 따라서 크로스도메인 융합 시스템(10')은 크로스도메인 자원관리부(20'), 크로스도메인 시스템 구성부(30'), 크로스도메인 시스템 제어부(40')를 포함한다. The cross-domain convergence system 10' basically has a configuration and function similar to that of the single-domain workflow engine framework 10 of FIG. 1 or 2, and serves to integrate and layer various domains. It is a system that manages resources related to flow execution, allocates a part of cross-domain workflow to each domain as a workflow, and executes it on the framework of each domain. Accordingly, the cross-domain convergence system 10' includes a cross-domain resource management unit 20', a cross-domain system configuration unit 30', and a cross-domain system control unit 40'.

앞에서 소개한 개념의 시스템 정의편집기(70')를 이용하여 사용자가 워크플로우를 정의해서, 데이터 수집은 어느 센서로부터 취득할 것인지, 모델은 어느 것을 선택할지, 엔진을 생성해서 적절한 곳에 배포할 것 등의 요청이 담긴 워크플로우 명세를 작성하면, 크로스도메인 융합 시스템(10')은 시스템 정의편집기(70')에서 정의된 워크플로우에 따라, 해당되는 도메인에 필요한 엔진(들)을 배포할 도메인을 결정한다. 이때 엔진배포 결정의 기준은 가령, 특정 엔진의 사용이 어느 도메인에 최적인지, 이 엔진의 실행을 위한 구성품들이 해당 도메인에 존재하는지, 네트웍 부하, 성능, 네트웍내 거리 등을 고려한다. The user defines the workflow using the system definition editor 70' of the previously introduced concept, from which sensor to acquire data, which model to select, creates an engine and distributes it to an appropriate place, etc. After writing the workflow specification with the request of the cross-domain convergence system 10', according to the workflow defined in the system definition editor 70', it determines the domain to distribute the engine(s) required for the corresponding domain. do. At this time, the criteria for determining engine distribution consider, for example, which domain is optimal for using a specific engine, whether components for the execution of this engine exist in the corresponding domain, network load, performance, and distance within the network.

크로스도메인 자원관리부(20')는 다수의 단일도메인 워크플로우 엔진 프레임워크(10)(도 1 또는 도 2 참조)의 자원관리부(20)로부터 주기적으로 워크플로우 자원들을 보고받고 이들을 갱신하여 관리하는 일을 수행한다. 예를 들어, 워크플로우 자원은 워크플로우 실행을 위한 컴퍼넌트 자원, 네트워크 연결정보, 하드웨어 자원정보, 가상머신의 사양정보, 조직의 구성정보, 조직의 가용 디바이스 정보, 가용상태 중 하나 이상일 수 있다. 또한 크로스도메인 자원관리부(20')는 각 도메인으로부터 받은 자원 정보를 통해 가용한 컴퍼넌트와 하드웨어, 네트워크 정보, 도메인 내의 디바이스 정보 등을 주기적으로 갱신하여 유지한다. 자원관리부(20')가 관리하는 자원은 예를 들어, 각 도메인별 엔진 컴퍼넌트 목록 , 비용산정을 위한 자료, 도메인간의 신뢰도 등이다.The cross-domain resource management unit 20' periodically receives and updates the workflow resources from the resource management unit 20 of a plurality of single-domain workflow engine frameworks 10 (see FIG. 1 or FIG. 2) and manages them. carry out For example, the workflow resource may be one or more of component resources for workflow execution, network connection information, hardware resource information, virtual machine specification information, organization configuration information, organization available device information, and availability status. In addition, the cross-domain resource management unit 20' periodically updates and maintains available components, hardware, network information, and device information in the domain through resource information received from each domain. The resources managed by the resource management unit 20' are, for example, a list of engine components for each domain, data for cost estimation, and reliability between domains.

크로스도메인 시스템 구성부(30')는 시스템 정의편집기(70')로부터 받은 크로스도메인 워크플로우 인스턴스 명세를 처리하기 위해 크로스도메인 자원관리부(20')로부터 가용자원이 있는 위치와 연결방법 등을 참고하여 하나의 크로스도메인 워크플로우 인스턴스 명세를 다수의 단일도메인 워크플로우 명세로 분할하여 각 단일도메인 워크플로우 엔진 프레임워크(10)에 배포한다.각 도메인의 워크플로우 엔진 프레임워크(10)는 각자의 도메인에 할당된 엔진을 동적으로 구성한다.The cross-domain system configuration unit 30' refers to the location and connection method of available resources from the cross-domain resource management unit 20' in order to process the cross-domain workflow instance specification received from the system definition editor 70'. One cross-domain workflow instance specification is divided into a plurality of single domain workflow specifications and distributed to each single domain workflow engine framework 10. The workflow engine framework 10 of each domain is in its own domain. Dynamically configure the assigned engine.

크로스도메인 시스템 제어부(40')는 하나 이상의 단일도메인 워크플로우 엔진 프레임워크(10)에 의해 생성된 각각의 워크플로우 실행시스템. 즉 도메인에 배포된 하나 이상의 엔진들의 실행의 시작, 종료 등의 제어를 위해 각각 단일 도메인 워크플로우 엔진 프레임워크(10) 상의 시스템 제어부(40)에 실행의 제어를 요청함으로써 크로스도메인 상에 워크플로우 실행 시스템을 구동하고 종료하는 일을 수행한다.The cross-domain system control unit 40' is each workflow execution system generated by the one or more single-domain workflow engine frameworks (10). That is, in order to control the start, end, etc. of the execution of one or more engines distributed in the domain, the execution control is requested to the system control unit 40 on the single domain workflow engine framework 10, respectively, thereby executing the workflow on the cross domain. Starts and shuts down the system.

각 도메인의 워크플로우 엔진 프레임워크(10)는 각자의 도메인에 할당된 엔진을 동적으로 구성한 후 크로스도메인 시스템 제어부(40)의 실행요청에 의해 엔진을 구동하여 처리를 수행한다. 이때 엔진 간의 데이터 전달은 도 10에서 언급한 바와 같이 네트워크 드라이버를 통해 직접 수행될 수도 있으며, 분산 메시지큐와 같은 메시징 시스템, 그 외 분산파일시스템 등 다양한 데이터 경로 중 하나 이상을 이용해서 전달할 수도 있다. 각 단일도메인 워크플로우 엔진 프레임워크(10)의 시스템 제어부(40)는 엔진들의 진행상황, 완료 등의 신호를 다시 크로스도메인 융합 시스템(10')의 크로스도메인 시스템 제어부(40')에 전달한다.The workflow engine framework 10 of each domain dynamically configures the engine assigned to each domain, and then drives the engine according to the execution request of the cross-domain system control unit 40 to perform processing. In this case, data transfer between engines may be performed directly through a network driver as described in FIG. 10 , or may be transferred using one or more of various data paths such as a messaging system such as a distributed message queue or a distributed file system. The system control unit 40 of each single domain workflow engine framework 10 transmits signals such as progress and completion of the engines back to the cross domain system control unit 40 ′ of the cross domain convergence system 10 ′.

크로스도메인 자원관리부(20')는 각 도메인으로부터 받은 자원 정보, 즉, 가용한 컴퍼넌트와 하드웨어, 네트워크 정보, 도메인 내의 디바이스 정보 등을 각 단일도메인 워크플로우 프레임워크(10)에 요청하여 최신의 자원정보를 유지한다. 또한, 크로스도메인 시스템 구성부(30')는 크로스도메인 워크플로우를 수행함에 있어 하나 이상의 도메인 워크플로우 엔진 프레임워크(10)에 최적의 엔진 워크플로우를 배치하기 위하여 크로스도메인 워크플로우를 하나 이상의 도메인 워크플로우로 분할한다. 이를 위해 크로스도메인 시스템 구성부(30')는 크로스도메인 자원관리부(20')에 각 단일도메인 워크플로우 엔진 프레임워크(10)에 대한 최신의 자원정보를 요청하여, 도 17의 단계 260에 따른 최적의 엔진 배포정책에 따라 각 단일도메인 워크플로우 엔진 프레임워크(10) 상에서 구성되어야 할 엔진들을 결정하는 과정을 통해, 상기 하나 이상의 도메인 워크플로우로 분할하는 작업을 완성한다. 다음으로 크로스도메인 시스템 구성부(30')는 분할된 각 도메인 워크플로우를 각 단일도메인 워크플로우 엔진 프레임워크(10)에 보내어, 하나 이상의 도메인 상에 크로스도메인 워크플로우를 수행(perform)하기 위한 엔진들을 실행(execute)할 수 있는 시스템을 동적으로 구성한다. The cross-domain resource management unit 20' requests the resource information received from each domain, that is, available components, hardware, network information, device information within the domain, etc., to each single domain workflow framework 10 to request the latest resource information. to keep In addition, the cross-domain system configuration unit 30' performs the cross-domain workflow in one or more domain workflows in order to place the optimal engine workflow in the one or more domain workflow engine frameworks 10 in performing the cross-domain workflow. Split into flows. To this end, the cross-domain system configuration unit 30' requests the cross-domain resource management unit 20' for the latest resource information on each single-domain workflow engine framework 10, and the optimum according to step 260 of FIG. Through the process of determining the engines to be configured on each single domain workflow engine framework 10 according to the engine distribution policy of , the division into the one or more domain workflows is completed. Next, the cross-domain system configuration unit 30' sends each divided domain workflow to each single domain workflow engine framework 10, and an engine for performing cross-domain workflows on one or more domains. Dynamically configure the system to execute

각 단일도메인 워크플로우 엔진 프레임워크(10)는 자신이 가진 자원의 목록을 크로스도메인 융합 시스템(10')에 등록하고 주기적으로 갱신을 요청한다. 여기서 자원의 목록은 워크플로우 실행을 위한 컴퍼넌트 자원목록일 수 있으며, 네트워크 연결정보, 하드웨어 자원정보, 가상머신의 사양정보, 조직의 구성정보, 조직의 가용 디바이스 정보, 가용상태 등이 또한 해당될 수 있다.Each single domain workflow engine framework 10 registers a list of its own resources in the cross domain convergence system 10' and periodically requests update. Here, the resource list may be a component resource list for workflow execution, and may also include network connection information, hardware resource information, virtual machine specification information, organization configuration information, organization available device information, and availability status. have.

도 17은 도 16의 크로스도메인 융합 시스템(10')에서 워크플로우 명세를 받아 이를 효과적으로 배포하고 실행하기 위한 실행 절차를 도시한다. 이때의 워크플로우는 해결하고자 하는 문제나 응용에 따라 단일도메인 또는 크로스도메인 적응형 워크플로우일 수 있다. FIG. 17 shows an execution procedure for receiving and effectively distributing and executing a workflow specification from the cross-domain convergence system 10 ′ of FIG. 16 . In this case, the workflow may be a single domain or a cross domain adaptive workflow depending on the problem or application to be solved.

먼저, 시스템 정의편집기(70')에서 워크플로우 생성절차에 의해서 일련의 워크플로우를 결정하고 이를 구성하는 엔진들을 만들기 위한 엔진 컴퍼넌트 컨테이너군이 포함된 워크플로우 명세를 정의한다(100). 크로스도메인 융합 시스템(10')이 시스템 정의편집기(70')로부터 워크플로우 명세를 받으면, 워크플로우 명세에 설정된 엔진 컴퍼넌트 컨테이너(들)을 어느 도메인에 배포할 것인지 배포위치를 결정하고 배포하는 과정(200)으로 넘어간다. 워크플로우 상에서 필요로 하는 엔진(들)에 대한 명세가 도메인(들)에 배포되면 단일도메인에 대한 또는 크로스도메인에 대한 워크플로우를 실행하기 위한 모든 준비가 완료되며 마지막으로 해당 워크플로우를 실행한다(300).First, the system definition editor 70' determines a series of workflows by the workflow creation procedure, and defines a workflow specification including an engine component container group for making engines constituting the workflow specification (100). When the cross-domain convergence system 10' receives the workflow specification from the system definition editor 70', the process of determining the distribution location to which domain to distribute the engine component container(s) set in the workflow specification and deploying ( 200) goes to When the specification of the engine(s) required in the workflow is distributed to the domain(s), all preparations for executing the workflow for a single domain or for a cross domain are completed, and finally, the corresponding workflow is executed ( 300).

크로스도메인 융합 시스템(10')에서 크로스도메인 시스템 구성부(30')가 각 엔진 컴퍼넌트 컨테이너의 배포위치를 결정하고 배포하는 과정(200)을 구체적으로 설명하면 다음과 같다.In the cross-domain convergence system 10', the process 200 in which the cross-domain system configuration unit 30' determines the distribution location of each engine component container and distributes it will be described in detail as follows.

우선 각 엔진에 필요한 데이터의 최초 출발지(엔진이 수집해야 하는 데이터의 위치. 가령, 특정 DB, 센서 위치 등)와 최종 도착지(예컨대, 다른 엔진에 대한 데이터 출발지, 또는 저장소 위치)가 같은 도메인에 존재하는지 파악한다(210). 이때 데이터의 출발지와 도착지는 사물인터넷 기기이거나 데이터베이스와 같은 구조화된 데이터 저장소, 파일시스템 등일 수 있으며, 웹서비스 종단이 될 수도 있다.First, the initial source of the data required for each engine (the location of the data that the engine needs to collect, e.g., a specific database, sensor location, etc.) and the final destination (e.g., the data source or storage location for other engines) exist in the same domain. It is determined whether or not (210). In this case, the source and destination of data may be an IoT device, a structured data storage such as a database, a file system, or the like, or may be a web service end.

데이터의 출발지와 도착지가 같은 도메인에 존재하면 해당 도메인 내 자원을 이용하여 최초 데이터 출발지로부터 최종 도착지까지의 일련의 엔진 구성이 가능한지를 자원관리부를 조회하여 판단한다(220). 만약 엔진 구성이 가능하다면(가령, 해당 도메인의 자원 레지스트리에 엔진 구성이 가능한 엔진 컴퍼넌트들이 모두 존재하는 경우), 해당 도메인에 엔진을 동적으로 구성하도록 엔진 명세를 배포하여(230) 워크플로우가 실행될 수 있도록 한다. If the source and destination of data exist in the same domain, the resource management unit queries and determines whether a series of engine configurations from the initial data source to the final destination are possible using resources within the domain ( 220 ). If the engine configuration is possible (for example, if all engine components capable of engine configuration exist in the resource registry of the corresponding domain), the workflow can be executed by distributing the engine specification to dynamically configure the engine in the domain (230). let it be

다시 210 단계로 돌아가, 상기 엔진의 데이터 출발지와 도착지가 같은 도메인에 속하지 않는 경우에, 또는, 단계 220에서 해당 도메인내 자원을 이용하여 엔진 컴퍼넌트 컨테이너의 구성이 가능한지 판단한 결과 구성불가로 판단되면 동일한 컴퍼넌트 구성이 가능한 타 도메인을 검색하여(자원관리부를 검색) 대체가능한 후보도메인군을 결정하는 단계(240)로 넘어간다. Returning back to step 210, if the data source and destination of the engine do not belong to the same domain, or if it is determined in step 220 whether the configuration of the engine component container is possible using resources within the domain, it is determined that configuration is not possible, the same component The process proceeds to step 240 of searching for other configurable domains (searching for the resource management unit) and determining a group of alternative domains.

후보 도메인군이 결정되면 그들 중 대체 도메인을 결정하기 위하여 비용 산정을 수행한다(250). 이때 비용은 네트워크 토폴로지 상의 거리, 네트워크 처리량, 예상 지연시간 등과 같은 네트워크 전달비용의 산정액, 가용한 컴퓨팅자원의 양, 도메인 간의 신뢰도 중의 하나 이상을 조합하여 계산할 수 있다.When a group of candidate domains is determined, cost estimation is performed to determine an alternative domain among them ( 250 ). In this case, the cost may be calculated by combining one or more of an estimate of a network transmission cost such as a distance on a network topology, a network throughput, and an expected delay time, an amount of available computing resources, and reliability between domains.

다음으로, 계산한 비용을 가지고 배포 도메인 선정정책(들)을 적용하여 배포해야 할 최적의 도메인을 선정한다(260). 이때 도메인 선정정책은 각 도메인의 자원에 대해 동일비율 또는 동일량으로 배분되도록 하는 공정배분정책, 에너지 효율성을 고려한 최적에너지정책, 도메인별로 우선순위를 두어 배분하는 우선순위정책 등이 될 수 있다. 비용, 정책의 단계순서는 비순서적이다.Next, an optimal domain to be distributed is selected by applying the distribution domain selection policy(s) with the calculated cost (260). In this case, the domain selection policy may be a fair distribution policy that allocates resources in each domain in the same ratio or the same amount, an optimal energy policy that considers energy efficiency, and a priority policy that allocates priorities for each domain. The order of steps in cost and policy is out of order.

워크플로우 상에서 필요로 하는 모든 엔진에 대한 명세가 해당 도메인(들)에 배포되면(230) 해당 도메인 또는 크로스도메인에 대한 워크플로우를 실행하기 위한 모든 준비가 완료된 것이며 최종적으로 워크플로우를 실행한다(300). 크로스도메인 융합 시스템(10')에 있는 시스템 제어부(40')의 실행 지시가 컨트롤 채널을 통해 각 단일도메인 프레임워크(10)의 시스템 제어부(40)에 전달되어 실행된다. When the specifications for all engines required in the workflow are distributed to the corresponding domain(s) (230), all preparations for executing the workflow for the corresponding domain or cross-domain are completed, and the workflow is finally executed (300). ). An execution instruction of the system control unit 40' in the cross-domain convergence system 10' is transmitted to the system control unit 40 of each single domain framework 10 through a control channel and executed.

도 16과 도 17의 크로스도메인 적응형 워크플로우 엔진 프레임워크에 대한 이해를 위하여 구체적인 관련 시나리오와 시스템 구성을 설명하기 위한 도면(도 18~20)을 통해 추가로 설명한다.In order to understand the cross-domain adaptive workflow engine framework of FIGS. 16 and 17, it will be further described with reference to specific related scenarios and drawings ( FIGS. 18 to 20 ) for explaining the system configuration.

도 18은 스마트시티를 달성하기 위한 시나리오를 설명하기 위한 것이다. 우선, 스마트시티는 최적의 (스마트) 공공에너지 수급제어와 공공교통제어, 그리고 기타 분야의 최적제어를 통해 달성할 수 있다. 그 중 최적의 공공에너지 수급제어는 공공에너지 수급정책에 따라 최적의 공공에너지 수요제어와 공급제어를 통해 달성할 수 있다. 여기서 스마트 공공에너지 수요제어는, 최적의 가로등제어와 안개제어(예컨대, 안개제거장치의 제어), 기타 최적의 공공장치 제어를 통해서 달성할 수 있다. 이 중 최적의 가로등제어는, 예측된 도로별 교통량, 예측된 기상상태에 따른 최적의 도로교통제어정책을 참조하여 달성할 수 있다. 도로별 교통량예측은 도로별 교통량을 모니터링결과를 참조하여 예측에 활용해 달성하는 것이 가능하다.18 is for explaining a scenario for achieving a smart city. First of all, a smart city can be achieved through optimal (smart) public energy supply and demand control, public transportation control, and optimal control in other fields. Among them, the optimal public energy supply and demand control can be achieved through the optimal public energy demand control and supply control according to the public energy supply and demand policy. Here, smart public energy demand control can be achieved through optimal street light control, fog control (eg, control of fog removal device), and other optimal public device control. Among them, the optimal street light control can be achieved by referring to the optimal road traffic control policy according to the predicted traffic volume for each road and predicted weather conditions. Traffic volume prediction by road can be achieved by referring to the traffic volume by road and using it for prediction by referring to the monitoring results.

도 19는 도 18의 스마트시티를 달성하기 위하여 구성한 크로스도메인 워크플로우 엔진 프레임워크의 일 실시형태를 도시한다.19 is a cross-domain workflow configured to achieve the smart city of FIG. 18 An embodiment of an engine framework is shown.

우선, 도로교통량 모니터링은 다양한 교통센서로부터 센싱데이터를 수집하는 엔진과, 이 수집엔진이 수집한 센싱정보를 읽어 총계, 평균과 같은 교통량 통계를 위한 오퍼레이션 처리를 하는 교통량통계 처리엔진과, 외부의 요청에 대해 교통량 통계처리 결과를 응답하는 교통량통계 서빙 엔진으로 구성된 도로교통량 모니터링 워크플로우(91)를 통해 엔진프레임워크에서 실행함으로써 목적하는 시스템을 구성할 수 있다.First, road traffic monitoring includes an engine that collects sensing data from various traffic sensors, a traffic statistics processing engine that reads the sensing information collected by this collection engine, and processes operations for traffic volume statistics such as total and average, and external requests A target system can be configured by executing in the engine framework through the road traffic monitoring workflow 91 composed of a traffic volume statistics serving engine that responds to the traffic volume statistics processing results.

다음으로 도로별 교통량 예측은, 상기 도로교통량 모니터링 워크플로우(91)의 교통센서정보 수집엔진과 수집된 센싱정보를 예측에 필요한 입력데이터 형태로 처리하고 처리한 데이터를 읽어 기계학습 기반의 예측을 수행하는 교통량예측 엔진과, 예측결과를 외부의 요청에 따라 응답하는 교통량예측 서빙 엔진으로 구성된 도로별 교통량예측 워크플로우(92)를 정의하고 실행함으로써 목적하는 시스템을 동적으로 구성할 수 있다.Next, for the traffic volume prediction by road, the traffic sensor information collection engine of the road traffic monitoring workflow 91 and the collected sensing information are processed in the form of input data necessary for prediction, and machine learning-based prediction is performed by reading the processed data. A target system can be dynamically configured by defining and executing the traffic volume prediction workflow 92 for each road, which is composed of a traffic volume prediction engine that responds to an external request and a traffic volume prediction serving engine that responds to an external request.

기상예측은, 기상정보를 수집하고 적절하게 처리하는 기상정보수집 엔진과, 기계학습모델 기반으로 기상을 예측하는 기상예측 엔진과, 기상예측결과를 서빙하기 위한 기상예측 서빙 엔진으로 구성된 기상 예측 워크플로우(93)를 정의하고 실행함으로써 목적하는 시스템을 구성할 수 있다.Weather forecasting is a weather forecasting workflow consisting of a weather information collection engine that collects and appropriately processes weather information, a weather prediction engine that predicts the weather based on a machine learning model, and a weather prediction serving engine that serves the weather prediction results By defining and executing (93), the desired system can be constructed.

도로교통제어 정책은, 특정상황에 해당하는 컨텍스트를 입력으로 규칙에 기반한 추론 또는 추천(recommendation) 오퍼레이션을 통해 지식베이스나 기계학습 등을 이용하여 최적의 도로교통제어 정책을 추출하는 상황별 도로교통제어 추천 엔진을 포함하는 도로교통제어 워크플로우(90)를 정의하고 실행함으로써 목적을 달성하기 위한 시스템을 구성할 수 있다.Road traffic control policy is a situation-specific road traffic control that extracts an optimal road traffic control policy using a knowledge base or machine learning through rule-based reasoning or recommendation operation by inputting a context corresponding to a specific situation. By defining and executing a road traffic control workflow 90 including a recommendation engine, a system can be configured to achieve the objective.

스마트가로등제어는 상기에서 기술한 교통량예측 서빙 엔진과 기상예측 서빙 엔진에 각각 도로별 교통량예측결과 기상예측결과를 질의하기 위한 오퍼레이션과 그 결과를 상기 상황별 도로교통 제어 추천 엔진에 제공하여 필요한 도로교통제어를 추론하여 얻기 위한 오퍼레이션을 포함하여 외부의 요청에 응답하는 스마트가로등제어 추천 엔진을 생성하는 스마트가로등제어 워크플로우(94)를 정의하여 실행함으로써 목적을 달성하기 위한 시스템을 구성할 수 있다. Smart street light control is an operation for querying the traffic volume prediction service engine and weather prediction service engine described above for the traffic volume prediction result and the weather prediction result by road, respectively, and provides the results to the road traffic control recommendation engine for each situation. By defining and executing a smart street light control workflow 94 that generates a smart street light control recommendation engine that responds to external requests, including an operation for inferring and obtaining control, a system for achieving the purpose can be configured.

그 밖에 설명하지 않은 도 18에 도시된 시나리오들은 위와 유사한 방법으로 각각의 워크플로우를 구성함으로써 각각의 목적을 달성하는 시스템을 동적으로 구성할 수 있다.In the scenarios shown in FIG. 18, which are not otherwise described, a system that achieves each purpose can be dynamically configured by configuring each workflow in a similar manner to the above.

도 20은 도 19에 나타낸 시나리오들 중에서 스마트 가로등제어를 위한 워크플로우(94) 구성에서 스마트가로등제어 추천 엔진 구성의 일 실시형태를 예시한다. 스마트가로등제어 추천 엔진은, 외부의 요청에 응답하기 위한 RESTful Server(325)를 구동하기 위한 Runner 컴퍼넌트(326)와, RESTful 서버(325)로 요청이 들어왔을 때 기상예측결과를 조회하는 오퍼레이터를 통해 기상예측엔진(93')에 질의하여 예측할 결과를 가져오는 오퍼레이터(323a)와, 교통량예측엔진(92')에 질의함으로써 향후 도로별 교통량예측결과를 질의하여 가져오는 오퍼레이터(323c), 각 오퍼레이터들이 획득한 결과를 받아 상황정보를 생성하고 생성한 상황정보를 이용하여 상황별 도로교통제어 추천 엔진(90')에 질의함으로써 상황에 받는 도로별 교통제어를 얻고, 그 중 가로등제어 정책을 추출하여 REST Server(325)에 전달하는 오퍼레이터(323b)와 이들 Runner(326)와 Operator간의 논리의 흐름관계를 제어하는 Controller(328)로 구성할 수 있다.20 illustrates an embodiment of a smart street light control recommendation engine configuration in a workflow 94 configuration for smart street light control among the scenarios shown in FIG. 19 . The smart street light control recommendation engine uses a runner component 326 for driving the RESTful Server 325 to respond to an external request, and an operator that inquires the weather forecast result when a request comes in to the RESTful server 325. The operator 323a queries the weather prediction engine 93' and brings the predicted results, and the operator 323c queries the traffic volume prediction engine 92' to query the future traffic volume prediction results for each road. By receiving the obtained result, generating context information, and querying the road traffic control recommendation engine 90' for each situation using the generated context information, traffic control for each road received by the situation is obtained, and the street light control policy is extracted from it It can be composed of an operator 323b that is transmitted to the Server 325 and a Controller 328 that controls the flow relationship of logic between these runners 326 and the operator.

이제, 다시 도 17의 크로스도메인 워크플로우의 실행 절차로 돌아가, 일련의 워크플로우 실행을 위한 필요 엔진 컴퍼넌트 컨테이너군 결정(100)을 수행한 후 각 엔진 컴퍼넌트 컨테이너에 대한 배포위치 결정 및 배포를 위한 절차(200) 중, 대체후보도메인 결정을 위한 기준이 되는 비용산정(250) 및 최적의 후보도메인 결정(260)에 대해서 각 시나리오별로 보충 설명한다.Now, returning to the cross-domain workflow execution procedure of FIG. 17 again, after performing the determination 100 of the required engine component container group for executing a series of workflows, the distribution location for each engine component container and the procedure for distribution In (200), the cost estimation 250 and the optimal candidate domain determination 260, which are the criteria for determining the alternative candidate domain, will be supplemented for each scenario.

도로교통제어 워크플로우(90)에서의 상황별 도로교통 제어 추천 엔진의 경우에 그 추천 결과가 가로등제어 추천과 직결되므로 도메인간 신뢰도 우선의 가중치 정책에 따른 엔진배포가 수행된다.In the case of the road traffic control recommendation engine for each situation in the road traffic control workflow 90 , the recommendation result is directly related to the street light control recommendation, so the engine distribution is performed according to the inter-domain reliability priority weighting policy.

도로교통량 모니터링 워크플로우(91)에서의 센싱데이터 수집 엔진, 교통량통계 처리엔진, 교통량통계 서빙 엔진에 대해서는, 실시간 모니터링을 위해 엔진 배포시 네트워크 전달 비용과 가용 컴퓨팅 자원 우선의 가중치 정책에 따라 엔진들을 배포한다. For the sensing data collection engine, traffic statistics processing engine, and traffic statistics serving engine in the road traffic monitoring workflow 91, engines are distributed according to the weighting policy of prioritizing network delivery cost and available computing resources when distributing engines for real-time monitoring do.

도로별 교통량예측 워크플로우(92)의 도로교통량 모니터링 워크플로우의 교통량예측 엔진과 교통량예측 서빙 엔진은, 수집엔진의 수집 결과를 이용하여 예측을 수행해야 하므로 수집엔진이 배포된 도메인과의 네트워크 비용을 우선으로 하여 엔진을 배포한다. The traffic volume prediction engine and the traffic volume prediction serving engine of the road traffic volume monitoring workflow of the road traffic volume prediction workflow 92 must perform prediction using the collection results of the collection engine, so the network cost with the domain in which the collection engine is distributed is reduced. First, deploy the engine.

기상 예측 워크플로우(93)에서 기상정보는 보안상 중요한 정보가 아니므로 가용한 컴퓨팅 자원을 우선으로 엔진을 배포한다. In the weather prediction workflow 93, since weather information is not important information for security, the engine is distributed with the available computing resources first.

스마트가로등제어 추천 엔진이 포함된 스마트가로등제어 워크플로우(94)에서는 각각의 질의대상 엔진이 다른 도메인에 배포되어 있고 중요한 정보를 담고 있으므로, 도메인간 신뢰도 우선의 가중치 정책에 따라 엔진을 배포한다. In the smart street light control workflow 94 including the smart street light control recommendation engine, since each query target engine is distributed in a different domain and contains important information, the engine is distributed according to the inter-domain reliability priority weighting policy.

이상의 구성 및 프로세스를 통하여, 사물인터넷, 빅데이터, 기계학습을 결합하여 분석하는 대용량 데이터의 실시간 분석 서비스 등에 있어서, 특정한 문제의 해결을 위해 개발한 기계학습 모델 및 빅데이터 분석 모델을 컴퍼넌트를 구현하여 관리할 수 있다. 또한 다양한 업무나 목적 도메인에서 유사한 문제의 해결을 위한 실행 플랫폼을 용이하게 구성할 수 있도록, 상기 컴퍼넌트를 동적으로 재활용할 수 있는 단일도메인 또는 크로스도메인 적응형 워크플로우 엔진 프레임워크를 구현할 수 있다. Through the above configuration and process, the machine learning model and big data analysis model developed to solve specific problems in real-time analysis services of large data that combine and analyze the Internet of Things, big data, and machine learning are implemented as components. can manage In addition, a single-domain or cross-domain adaptive workflow engine framework that can dynamically reuse the components can be implemented to easily configure an execution platform for solving similar problems in various task or purpose domains.

Claims (20)

워크플로우의 실행에 필요한 워크플로우 속성명세 컴퍼넌트와 엔진 컴퍼넌트가 포함된 자원을 관리하는 자원관리부;
속성명세 컴퍼넌트를 조립하고 워크플로우 실행에 필요한 엔진 컴퍼넌트를 조합하여 워크플로우 명세에 따라 필요한 엔진 컴퍼넌트 컨테이너들을 구성하여 엔진을 생성하는 시스템 구성부; 및
워크플로우 속성명세에 정의된 방식에 따라 상기 시스템 구성부에 의해 생성되는 하나 이상의 엔진을 구동하여 실행을 제어하는 시스템 제어부를 포함하되,
상기 시스템 구성부는, 워크플로우 명세를 속성명세 컴퍼넌트로 바인딩하여 속성명세 컴퍼넌트를 생성하는 워크플로우 속성명세조립부와; 상기 조립된 속성명세 컴퍼넌트로부터, 정의된 엔진 컴퍼넌트 정보를 추출하여 속성명세 컴퍼넌트와 엔진 컴퍼넌트를 바인딩하는 과정을 통해 엔진을 구성하여 워크플로우 실행 플랫폼을 구성하는 워크플로우 구성부를 포함하는 워크플로우 엔진 프레임워크 시스템.
a resource management unit for managing resources including a workflow attribute specification component and an engine component required for workflow execution;
a system configuration unit for assembling attribute specification components and combining engine components necessary for workflow execution to configure engine component containers required according to workflow specification to create an engine; and
A system control unit for controlling execution by driving one or more engines generated by the system configuration unit according to a method defined in the workflow attribute specification,
The system configuration unit may include: a workflow attribute specification assembling unit configured to bind a workflow specification to an attribute specification component to generate an attribute specification component; A workflow engine framework comprising a workflow configuration unit that configures an engine through a process of extracting defined engine component information from the assembled property specification component and binding the property specification component and the engine component to configure a workflow execution platform system.
제1항에서, 상기 시스템 구성부에 의해 생성된 엔진 컴퍼넌트의 조합으로 구성된 엔진이 저장되는 실행 인스턴스부를 추가로 포함하는 워크플로우 엔진 프레임워크 시스템. The workflow engine framework system of claim 1 , further comprising an execution instance unit in which an engine configured by a combination of engine components generated by the system configuration unit is stored. 제1항에서, 상기 자원관리부는
워크플로우 인스턴스의 컴퍼넌트 속성을 결정짓는 속성명세가 포함된 속성명세 컴퍼넌트를 관리하는 속성명세 컴퍼넌트 관리부; 및
실행을 위한 엔진 컴퍼넌트를 관리하는 엔진 컴퍼넌트 관리부를 포함하는 워크플로우 엔진 프레임워크 시스템.
The method of claim 1, wherein the resource management unit
an attribute specification component management unit that manages an attribute specification component including attribute specification that determines component attributes of a workflow instance; and
A workflow engine framework system comprising an engine component management unit for managing engine components for execution.
제3항에서, 상기 자원관리부는
기존에 작성되어 저장된 워크플로우 명세 인스턴스를 관리하는 워크플로우 명세 인스턴스 관리부를 추가로 포함하는 워크플로우 엔진 프레임워크 시스템.
The method of claim 3, wherein the resource management unit
A workflow engine framework system that further includes a workflow specification instance management unit that manages previously created and saved workflow inventory instances.
삭제delete 제1항에서, 상기 시스템 구성부의 워크플로우 구성부는
워크플로우를 구성하는 엔진 컴퍼넌트와 이 엔진 컴퍼넌트의 특성을 결정짓는 파라미터를 정의하는 속성명세 컴퍼넌트의 규약에 따라 엔진 컴퍼넌트와 속성명세 컴퍼넌트를 바인딩하여 워크플로우를 실행하기 위한 엔진이 저장되는 워크플로우 실행 인스턴스부를 추가로 포함하는 워크플로우 엔진 프레임워크 시스템.
The method of claim 1, wherein the workflow component of the system component
The workflow execution instance in which the engine for executing the workflow by binding the engine component and the property specification component according to the contract of the engine component constituting the workflow and the property specification component defining the parameters determining the characteristics of the engine component is stored. A workflow engine framework system that additionally includes wealth.
제1항에서, 상기 워크플로우 명세는 시스템 정의편집기에 의해 정의되어 상기 시스템 구성부에 제출되되, 이 시스템 정의편집기는
각종 엔진 유형을 제시하고 사용자가 이들 중 필요한 것들을 선택할 수 있도록 하는 엔진유형 선택부;
사용자가 컴퍼넌트 타입과 각 타입별 엔진 컴퍼넌트를 선택할 수 있도록 컴퍼넌트 타입별로 다양한 엔진 컴퍼넌트 목록을 제공하는 컴퍼넌트 선택부; 및
컴퍼넌트 선택부에서 선택된 엔진컴퍼넌트의 속성이 제시되고 사용자는 속성을 조회하여 이를 선택 및 편집할 수 있도록 하는 컴퍼넌트 속성 선택/편집부를 포함하는 워크플로우 엔진 프레임워크 시스템.
The system definition editor of claim 1, wherein the workflow specification is defined by a system definition editor and submitted to the system configuration unit.
an engine type selection unit that suggests various engine types and allows a user to select necessary ones among them;
a component selection unit providing 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; and
A workflow engine framework system including a component property selection/editing section that presents the properties of the engine component selected in the component selection section and enables the user to select and edit the properties by inquiring the properties.
제1항에서, 상기 엔진은,
하나 이상의 데이터 출발지로부터 데이터를 가져오는 입력기;
상기 입력기로부터 데이터를 받아 처리하는 하나 이상의 단위처리기;
내부에서 처리한 데이터를 하나 이상의 데이터 종착지에 출력하는 하나 이상의 출력기;
입력한 데이터를 처리하기 위한 별도의 실행프로그램 또는 플랫폼을 실행하거나 세션을 관리하는 실행기; 및
데이터를 입력기를 통해 입력하여 실행기 상에서 처리하고 이를 출력하기 위한 일련의 제어를 담당하는 제어기를 포함하는 워크플로우 엔진 프레임워크 시스템.
The method of claim 1, wherein the engine,
an input device for retrieving data from one or more data sources;
one or more unit processors for receiving and processing data from the input unit;
one or more output devices for outputting internally processed data to one or more data destinations;
an executor that runs a separate executor or platform for processing input data or manages a session; and
A workflow engine framework system comprising a controller responsible for a series of controls for inputting data through an input device, processing it on an executor, and outputting it.
제8항에서, 상기 제어기는,
상기 입력기, 단위처리기, 출력기의 순으로 노드들이 구성되는 경우에, 데이터를 순차적으로 파이프라이닝하여 다음 노드로 전달하는 방식으로 실행하도록 제어하는 순차처리 방식, 각각의 노드가 동시에 실행되도록 하는 동시처리 방식, 및 이 둘을 결합한 동시/순차처리 방식 중 어느 하나로 제어를 수행하는 워크플로우 엔진 프레임워크 시스템.
The method of claim 8, wherein the controller,
When the nodes are configured in the order of the input device, the unit processor, and the output device, a sequential processing method for controlling execution by pipelining data sequentially and transferring the data to the next node, a concurrent processing method for executing each node at the same time , and a workflow engine framework system that performs control in any one of a concurrent/sequential manner combining the two.
제8항에서, 상기 제어기는
하나 이상의 단위처리기가 상기 입력기로부터 데이터를 받아서 순차적으로 파이프라이닝에 의한 데이터를 처리함과 함께, 하나 이상의 단위처리기가 구동되어 동시처리를 실행하도록 제어하는 워크플로우 엔진 프레임워크 시스템.
The method of claim 8, wherein the controller
A workflow engine framework system for controlling one or more unit processors to receive data from the input device and sequentially process the data by pipelining, and to drive one or more unit processors to execute simultaneous processing.
제8항에서, 상기 워크플로우 엔진 프레임워크 시스템에 하나 이상의 워크플로우 실행 엔진이 포함되며, 이 경우에 다수의 엔진 사이에, 파이프라인 방식으로 전달되도록 데이터 전달경로가 사용되는 워크플로우 엔진 프레임워크 시스템.The workflow engine framework system of claim 8 , wherein one or more workflow execution engines are included in the workflow engine framework system, and in this case, a data transfer path is used to be transmitted between the plurality of engines in a pipelined manner. . 제11항에서, 상기 하나 이상의 엔진들은 서로 다른 물리적 환경에 위치하며, 상이한 종류의 실행기를 포함하는 워크플로우 엔진 프레임워크 시스템.The workflow engine framework system of claim 11 , wherein the one or more engines are located in different physical environments and include different types of executors. 제11항에서, 상기 데이터 전달경로는 하나 이상의 상이한 유형의 데이터 전달경로를 포함하는 것을 특징으로 하는 워크플로우 엔진 프레임워크 시스템.12. The system of claim 11, wherein the data transfer path includes one or more different types of data transfer paths. 워크플로우의 실행에 필요한 워크플로우 속성명세 컴퍼넌트와 엔진 컴퍼넌트가 포함된 자원을 관리하는 자원관리부와, 속성명세 컴퍼넌트를 조립하고 워크플로우 실행에 필요한 엔진 컴퍼넌트를 동적으로 조합하여 워크플로우 명세에 따라 필요한 엔진 컴퍼넌트 컨테이너들을 구성하여 엔진을 생성하는 시스템 구성부와, 워크플로우 속성명세에 정의된 방식에 따라 상기 시스템 구성부에 의해 생성되는 하나 이상의 엔진을 구동하여 실행을 제어하는 시스템 제어부를 포함하는 단일도메인 워크플로우 엔진 프레임워크 시스템; 및
상기 단일도메인 워크플로우 엔진 프레임워크 시스템과 연결되어, 크로스도메인 워크플로우에 따라 크로스도메인에 포함된 각 단일도메인에 필요한 엔진을 배포할 단일도메인을 결정하는 크로스도메인 융합 시스템을 포함하되,
상기 크로스도메인 융합 시스템은, 단일도메인 워크플로우 엔진 프레임워크 시스템의 자원관리부로부터 워크플로우 자원들을 보고받고 이들을 갱신하며, 각 도메인으로부터 받은 자원 정보를 통해 가용한 컴퍼넌트 및 하드웨어, 네트워크 정보, 도메인 내의 디바이스 정보 중 적어도 하나를 갱신하는 크로스도메인 자원관리부와; 크로스도메인 워크플로우 명세를 처리하기 위해 하나의 크로스도메인 워크플로우 명세를 다수의 단일도메인 워크플로우 명세로 분할하여 각 엔진 컴퍼넌트 컨테이너의 배포위치를 결정하고 배포하는 크로스도메인 시스템 구성부를 포함하는 크로스도메인 적응형 워크플로우 엔진 프레임워크 시스템.
The engine required according to the workflow specification by assembling the resource management unit that manages the resource including the workflow attribute specification component and the engine component required for the execution of the workflow, and the engine component required for assembling the attribute specification component and executing the workflow dynamically A single domain work comprising: a system component configured to configure component containers to create an engine; and a system control unit to control execution by driving one or more engines generated by the system component according to a method defined in a workflow attribute specification flow engine framework system; and
A cross-domain fusion system that is connected to the single domain workflow engine framework system and determines a single domain to distribute an engine required for each single domain included in the cross domain according to the cross domain workflow,
The cross-domain convergence system receives reports of workflow resources from the resource management unit of the single domain workflow engine framework system and updates them, and components and hardware, network information, and device information within the domain available through the resource information received from each domain. a cross-domain resource management unit for updating at least one of; Cross-domain adaptive including a cross-domain system component that divides one cross-domain workflow specification into multiple single-domain workflow specifications to process cross-domain workflow specifications, determines the distribution location of each engine component container, and distributes Workflow engine framework system.
삭제delete 제14항에서, 상기 크로스도메인 융합 시스템은 크로스도메인에 포함된 각 단일도메인에 필요한 엔진을 배포할 단일도메인을 결정하기 위하여
1) 각 엔진에 필요한 데이터의 출발지와 도착지가 같은 도메인에 존재하는지 파악하는 수단;
2) 엔진의 데이터 출발지와 도착지가 같은 도메인에 존재하면 해당 도메인 내 자원을 이용하여 엔진 구성이 가능한지를 판단하는 수단;
3) 엔진 구성이 가능하다면, 해당 도메인에 엔진을 구성하도록 엔진 명세를 배포하는 수단;
4) 수단 1)의 판단결과 엔진의 데이터 출발지와 도착지가 같은 도메인에 존재하지 않는 경우에, 또는, 수단 2)에서 엔진 구성이 불가한 것으로 판단되면 동일한 엔진 컴퍼넌트 구성이 가능한 타 도메인을 검색하여 대체가능한 후보도메인군을 결정하는 수단; 및
5) 후보 도메인군이 결정되면 그들 중 대체 도메인을 결정하기 위하여 비용 산정을 수행하고, 배포해야 할 최적의 도메인을 선정하는 수단을 포함하는 크로스도메인 적응형 워크플로우 엔진 프레임워크 시스템.
15. The method of claim 14, wherein the cross-domain convergence system determines a single domain to distribute an engine required for each single domain included in the cross domain.
1) means for determining whether the source and destination of data required for each engine exist in the same domain;
2) means for determining whether engine configuration is possible using resources within the domain when the source and destination of engine data exist in the same domain;
3) means for distributing the engine specification to configure the engine in the corresponding domain, if possible;
4) If the engine data source and destination do not exist in the same domain as a result of the determination of means 1), or if it is determined that the engine configuration is not possible in means 2), search and replace other domains in which the same engine component configuration is possible means for determining a group of possible candidate domains; and
5) A cross-domain adaptive workflow engine framework system including means for performing cost estimation to determine an alternative domain from among the candidate domain groups when the group is determined, and selecting an optimal domain to be distributed.
제14항에서, 상기 워크플로우 명세는 시스템 정의편집기에 의해 정의되어 상기 크로스도메인 융합 시스템에 제출되되, 이 시스템 정의편집기는
각종 엔진 유형을 제시하고 사용자가 이들 중 필요한 것들을 선택할 수 있도록 하는 엔진유형 선택부;
사용자가 컴퍼넌트 타입과 각 타입별 엔진 컴퍼넌트를 선택할 수 있도록 컴퍼넌트 타입별로 다양한 엔진 컴퍼넌트 목록을 제공하는 컴퍼넌트 선택부; 및
컴퍼넌트 선택부에서 선택된 엔진컴퍼넌트의 속성이 제시되고 사용자는 속성을 조회하여 이를 선택 및 편집할 수 있도록 하는 컴퍼넌트 속성 선택/편집부를 포함하는 크로스도메인 적응형 워크플로우 엔진 프레임워크 시스템.
The method of claim 14, wherein the workflow specification is defined by a system definition editor and submitted to the cross-domain convergence system, wherein the system definition editor
an engine type selection unit that suggests various engine types and allows a user to select necessary ones among them;
a component selection unit providing 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; and
A cross-domain adaptive workflow engine framework system including a component property selection/editing section that presents the properties of the engine component selected in the component selection section and enables the user to select and edit properties by inquiring the properties.
제14항에서, 상기 엔진은,
하나 이상의 데이터 출발지로부터 데이터를 가져오는 입력기;
상기 입력기로부터 데이터를 받아 처리하는 하나 이상의 단위처리기;
내부에서 처리한 데이터를 하나 이상의 데이터 종착지에 출력하는 하나 이상의 출력기;
입력한 데이터를 처리하기 위한 별도의 실행프로그램 또는 플랫폼을 실행하거나 세션을 관리하는 실행기; 및
데이터를 입력기를 통해 입력하여 실행기 상에서 처리하고 이를 출력하기 위한 일련의 제어를 담당하는 제어기를 포함하는 크로스도메인 적응형 워크플로우 엔진 프레임워크 시스템.
15. The method of claim 14, wherein the engine,
an input device for retrieving data from one or more data sources;
one or more unit processors for receiving and processing data from the input unit;
one or more output devices for outputting internally processed data to one or more data destinations;
an executor that runs a separate executor or platform for processing input data or manages a session; and
A cross-domain adaptive workflow engine framework system including a controller responsible for a series of controls for inputting data through an input device, processing it on an executor, and outputting it.
사용자에 의해 정의된 워크플로우의 실행에 필요한 워크플로우 속성명세 컴퍼넌트를 조립하고, 워크플로우 실행에 필요한 엔진 컴퍼넌트를 동적으로 조합하여 엔진 컴퍼넌트 컨테이너들을 구성하여 워크플로우 실행 엔진을 생성하는 방법으로서,
워크플로우 명세를 입력받아, 이로부터, 엔진을 구성할 엔진 컴퍼넌트들에 대한 속성명세가 담기는 속성명세 컴퍼넌트 인스턴스를 생성하는 단계;
생성한 속성명세 컴퍼넌트 인스턴스를 엔진 컴퍼넌트의 생성자 파라미터로 지정하여 엔진 컴퍼넌트 인스턴스를 생성하는 단계; 및
엔진 컴퍼넌트 컨테이너에 바인딩하여서 엔진 컴퍼넌트 컨테이너 인스턴스를 생성자 파라미터로 하여, 엔진을 생성하는 단계를 포함하는 워크플로우 실행 엔진 생성 방법.
A method of assembling a workflow attribute specification component required for the execution of a workflow defined by a user, and dynamically combining engine components necessary for executing a workflow to configure engine component containers to create a workflow execution engine,
receiving a workflow specification as an input and generating, from the input, an attribute specification component instance containing attribute specifications for engine components constituting the engine;
creating an engine component instance by designating the created attribute specification component instance as a constructor parameter of the engine component; and
A method of generating a workflow execution engine, comprising the step of binding to an engine component container and creating an engine by using the engine component container instance as a constructor parameter.
청구항 14의 크로스도메인 적응형 워크플로우 엔진 프레임워크 시스템에 포함된 상기 크로스도메인 융합 시스템이, 크로스도메인에 포함된 각 단일도메인에 필요한 엔진을 배포할 단일도메인을 결정하는 방법으로서,
1) 각 엔진에 필요한 데이터의 출발지와 도착지가 같은 도메인에 존재하는지 파악하는 단계;
2) 엔진의 데이터 출발지와 도착지가 같은 도메인에 존재하면 해당 도메인 내 자원을 이용하여 엔진 구성이 가능한지를 판단하는 단계;
3) 엔진 구성이 가능하다면, 해당 도메인에 엔진을 구성하도록 엔진 명세를 배포하는 단계;
4) 단계 1)의 판단결과 엔진의 데이터 출발지와 도착지가 같은 도메인에 존재하지 않는 경우에, 또는, 단계 2)에서 엔진 구성이 불가한 것으로 판단되면, 동일한 엔진 컴퍼넌트 구성이 가능한 타 도메인을 검색하여 대체가능한 후보도메인군을 결정하는 단계; 및
5) 후보 도메인군이 결정되면 그들 중 대체 도메인을 결정하기 위하여 비용 산정을 수행하고, 배포해야 할 최적의 도메인을 선정하는 단계를 포함하는 엔진 배포 도메인 결정 방법.
A method for determining, by the cross-domain fusion system included in the cross-domain adaptive workflow engine framework system of claim 14, a single domain to distribute an engine required for each single domain included in the cross domain,
1) determining whether the source and destination of data required for each engine exist in the same domain;
2) determining whether an engine configuration is possible using resources in the corresponding domain when the source and destination of engine data exist in the same domain;
3) if the engine configuration is possible, distributing the engine specification to configure the engine in the corresponding domain;
4) If the engine data source and destination do not exist in the same domain as a result of the determination in step 1), or if it is determined that the engine configuration is not possible in step 2), search for other domains in which the same engine component configuration is possible. determining a substitutable candidate domain group; and
5) A method of determining an engine distribution domain, comprising: when a candidate domain group is determined, performing cost estimation to determine an alternative domain among them, and selecting an optimal domain to be distributed.
KR1020180047370A 2017-10-18 2018-04-24 Workflow engine framework KR102259927B1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102018110138.4A DE102018110138A1 (en) 2017-10-18 2018-04-26 Workflow engine framework
US15/963,547 US11036539B2 (en) 2017-10-18 2018-04-26 Workflow engine framework
JP2018087438A JP7118726B2 (en) 2017-10-18 2018-04-27 workflow engine framework
US17/022,877 US20200409744A1 (en) 2017-10-18 2020-09-16 Workflow engine framework

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170135066 2017-10-18
KR20170135066 2017-10-18

Publications (2)

Publication Number Publication Date
KR20190043446A KR20190043446A (en) 2019-04-26
KR102259927B1 true KR102259927B1 (en) 2021-06-03

Family

ID=66281200

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180047370A KR102259927B1 (en) 2017-10-18 2018-04-24 Workflow engine framework

Country Status (2)

Country Link
JP (1) JP7118726B2 (en)
KR (1) KR102259927B1 (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111091193B (en) * 2019-10-31 2022-07-05 武汉大学 Domain-adapted privacy protection method based on differential privacy and oriented to deep neural network
KR20210057656A (en) * 2019-11-12 2021-05-21 한국전자통신연구원 workflow engine framework for cross-domain extension
KR102408188B1 (en) * 2020-09-28 2022-06-13 주식회사 마인즈랩 Intent classifier creation interface provision method and computer program
KR102291867B1 (en) * 2020-12-02 2021-08-23 주식회사 파트리지시스템즈 System for managing data based on hierarchical data repository and operating method thereof
KR20220078327A (en) 2020-12-03 2022-06-10 주식회사 이노커스 Method and apparatus for managing learning medel for real-time analysis and prediction
KR102566983B1 (en) 2021-06-01 2023-08-14 성균관대학교산학협력단 Automation model device for scheduler-based workflow process
KR102443301B1 (en) * 2021-11-25 2022-09-16 주식회사 파트리지시스템즈 Adaptive data processing system for processing various data and method thereof
CN114816368B (en) * 2022-06-23 2022-10-18 深圳市瓴码云计算有限公司 Object-oriented business process development system, method, device and storage medium
CN115906499A (en) * 2022-12-05 2023-04-04 中国航空发动机研究院 Heterogeneous system-oriented aircraft engine integrated simulation workflow engine system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008027282A (en) * 2006-07-24 2008-02-07 Yokogawa Electric Corp Workflow switching framework
KR100852141B1 (en) 2006-10-30 2008-08-13 경기대학교 산학협력단 Workcase-based workflow engine

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11296357A (en) * 1998-04-08 1999-10-29 Oki Electric Ind Co Ltd Flow chart input device
JP2005038244A (en) * 2003-07-16 2005-02-10 Nippon Telegr & Teleph Corp <Ntt> Automatic program generation device
US20090070121A1 (en) * 2007-09-11 2009-03-12 Jean-Baptiste Leonelli System, Method And Graphical User Interface For Workflow Generation, Deployment And/Or Execution
KR20140102478A (en) * 2013-02-14 2014-08-22 한국전자통신연구원 Workflow job scheduling apparatus and method
KR101574396B1 (en) * 2013-12-17 2015-12-04 부산대학교 산학협력단 Service composition framework for transportation big data service

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008027282A (en) * 2006-07-24 2008-02-07 Yokogawa Electric Corp Workflow switching framework
KR100852141B1 (en) 2006-10-30 2008-08-13 경기대학교 산학협력단 Workcase-based workflow engine

Also Published As

Publication number Publication date
KR20190043446A (en) 2019-04-26
JP7118726B2 (en) 2022-08-16
JP2019075077A (en) 2019-05-16

Similar Documents

Publication Publication Date Title
KR102259927B1 (en) Workflow engine framework
US11036539B2 (en) Workflow engine framework
EP4142427A1 (en) Distributed data nodes for flexible data mesh architectures
CN112272234A (en) Platform management system and method for realizing edge cloud collaborative intelligent service
Köksal et al. Obstacles in data distribution service middleware: a systematic review
Benamer et al. Latency-aware placement heuristic in fog computing environment
WO2023048770A1 (en) Apparatus, articles of manufacture, and methods for data collection balancing for sustainable storage
Mazayev et al. Data gathering in wireless sensor networks using unmanned aerial vehicles
US20220240440A1 (en) Agricultural tool unit for rapid conversion of a combination seed drill having a trailed or fine-grain seed dispenser to an on-demand supply system and vice versa
US20230071201A1 (en) Data blending for multiple data pipelines
Dräxler et al. Specification, composition, and placement of network services with flexible structures
Al-Jaroodi et al. PsCPS: A distributed platform for cloud and fog integrated smart cyber-physical systems
US20210303584A1 (en) Data pipeline controller
Berkers et al. Constructing a multi-sided business model for a smart horizontal IoT service platform
Al-Jaroodi et al. Service-oriented architecture for big data analytics in smart cities
KR102584447B1 (en) workflow engine framework for cross-domain extension
Raj et al. Edge/Fog Computing Paradigm: The Concept, Platforms and Applications.
Salehnia et al. An optimal task scheduling method in IoT-Fog-Cloud network using multi-objective moth-flame algorithm
CN113010296A (en) Task analysis and resource allocation method and system based on formalized model
Gilchrist et al. IIoT reference architecture
Simionato et al. Survey on connectivity and cloud computing technologies: State-of-the-art applied to Agriculture 4.0
Gand et al. A Lightweight Virtualisation Platform for Cooperative, Connected and Automated Mobility.
US11153388B2 (en) Workflow engine framework for cross-domain extension
Štefanič et al. Quality of Service‐aware matchmaking for adaptive microservice‐based applications
US10417228B2 (en) Apparatus and method for analytical optimization through computational pushdown

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right