KR102259927B1 - Workflow engine framework - Google Patents
Workflow engine framework Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine 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
본 발명은 워크플로우 및 프레임워크 기술에 관한 것으로, 구체적으로는, 다양한 업무 도메인 또는 목적 도메인의 워크플로우를 처리하기 위하여 동적 엔진 컴퍼넌트들의 유기적인 구성을 통해 단일도메인 적응형의 그리고 나아가 크로스도메인 적응형의 워크플로우 실행 플랫폼을 만들 수 있는 워크플로우 엔진 프레임워크에 관한 것이다.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
3 is an exemplary view of a GUI screen for explaining the configuration of the
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
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
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
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
도 1은 본 발명의 워크플로우 엔진 프레임워크의 일 실시형태를 나타내는 구성도이다. 본 발명의 워크플로우 엔진 프레임워크(10)는 기본적으로, 1 is a block diagram showing an embodiment of a workflow engine framework of the present invention. The
- 실행할 작업(워크플로우)의 구조와 명세를 작성하는 시스템 정의편집기(70), -
- 사용자가 시스템 정의편집기(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
- 워크플로우 속성명세를 조립하고 워크플로우 실행에 필요한 엔진 컴퍼넌트들을 동적으로 조합하여 구성하고, 워크플로우를 수행하는 엔진 인스턴스(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
- 자원관리부(20), 시스템 구성부(30), 엔진(32)의 실행을 제어하는 시스템 제어부(40)를 포함한다.- Includes a
워크플로우 엔진 프레임워크(10)에서, 사용자는 원하는 시스템을 만들기 위해 하나 이상의 엔진으로 구성되는 워크플로우를 정의한다. 이때 워크플로우는 하나 이상의 엔진에 대한 정의로 구성되며, 엔진에 대한 정의는 엔진 컴퍼넌트들을 담기 위한 엔진컴퍼넌트 컨테이너와 엔진컴퍼넌트 컨테이너에 담길 엔진 컴퍼넌트의 조합에 해당한다. In the
엔진 컴퍼넌트 컨테이너는 하나 이상의 입력기(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
프론트엔드(77)는 클라이언트로부터 요청을 받아 처리를 하기 위한 프로세스의 실행을 매개하는 역할을 수행하고, 사용자관리나 저장소 관리 등의 다양한 요청에 대응하는 역할을 수행한다. 프론트엔드(77)의 예를 들면 일반적인 어플리케이션 서버, 웹기반의 REST API를 제공하는 웹어플리케이션 서버, 또는 일반적인 소켓통신 기반의 수신자(listener) 모듈을 포함한 시스템일 수 있다. 경우에 따라서 프론트엔드(77)는 시스템 정의편집기(70) 또는 프레임워크(10)를 구성하고 있는 백엔드와 상이한 네트워크 상에서 실행되는 것도 가능하다.The
도 1, 도 2의 워크플로우 엔진 프레임워크(10)를 본격적으로 설명하기에 앞서, 프레임워크(10)에서 실행시스템을 구동하기 위한 일련의 작업 명세를 정의하는 워크플로우를 작성하고 이를 프레임워크(10)에서 구동하도록 지시하기 위해 프론트엔드(77)로 요청하는 역할을 수행하는 시스템 정의편집기(70)에 대해 먼저 설명한다.Before describing the
시스템 정의편집기(70)는 원하는 업무에 대한 세부 도메인을 정의하고 각 도메인에 대하여 처리할 작업의 구조(워크플로우 구조)를 정의하고 이 구조에 맞게 엔진 컴퍼넌트(들)를 선정하여 워크플로우 실행흐름을 정의하고 각 엔진 컴퍼넌트들의 구체적인 명세를 작성하는 기능을 수행한다. 이를 위해 프레임워크(특히, 자원관리부(20))로부터 속성명세 컴퍼넌트와 엔진 컴퍼넌트를 조회할 수 있다. The
여기서 '작업의 구조'는 예를 들어 설명하면, 특정 사물인터넷 플랫폼으로부터의 데이터 수집, 데이터 처리, 학습 등의 과정이며, 이들을 순차적으로 처리하는 것은 워크플로우 실행흐름에 해당될 수 있다. '컴퍼넌트들의 명세'는, 데이터를 어디로부터 가져와서 어떤 처리과정을 거치고 어디로 내보낼 것인지에 대한 작업을 수행하기 위해 어떤 디바이스로부터 수집할 것인지, 연결방법은 무엇인지, 데이터를 받아서 메모리에 둘 것인지 저장소에 넣을 것인지, 메모리 정보는 무엇인지, 저장소 위치는 어디인지 등, 각 요소 컴퍼넌트들에 대한 구체적인 정의 사항을 의미한다.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
도 3은 시스템 정의편집기(70)의 구성을 설명하기 위한 GUI 화면(71)의 예시도이다. 이 GUI 화면(71)을 설명함으로써 시스템 정의편집기(70)의 구성 및 작용에 대한 설명을 갈음하기로 한다.3 is an exemplary diagram of a
GUI 화면(71)에는 기능 메뉴(72), 엔진유형 선택부(73), 컴퍼넌트 선택부(74), 컴퍼넌트 속성 조회/편집부(75), 워크플로우 인스턴스 저장/조회부(76)가 포함된다.The
기능 메뉴(72)는 시스템 정의편집기(70)의 각종 기능들을 선택하는 메뉴로서, 예를 들어 New(워크플로우 신규작성), Open(저장된 워크플로우 불러오기), Save(워크플로우 저장), Run(워크플로우 실행), Result(실행결과 보기), Help(도움말) 등의 기능을 선택하는 메뉴로 구성될 수 있다.The
엔진유형 선택부(73)는 각종 엔진 유형을 제시하고 사용자가 이들 중 필요한 것들을 선택할 수 있도록 한다. 엔진의 유형으로는 예를 들어, 실시간 스트림처리 엔진, 배치 분석 엔진, 요구형(on-demand) 데이터처리 엔진, 평가 엔진, 배치 데이터적재 엔진, 스트림 기계학습 예측 엔진, 요구형 융합서빙 엔진 등이 있다.The engine
컴퍼넌트 선택부(74)는 사용자가 컴퍼넌트 타입과 각 타입별 엔진 컴퍼넌트를 선택할 수 있도록 컴퍼넌트 타입별로 다양한 엔진 컴퍼넌트 목록을 제공한다. 아래 표 1은 컴퍼넌트 선택부(74)에서 제시되는 컴퍼넌트 타입과 엔진 컴퍼넌트 목록의 예시이다. The
Reader(입력기)
Reader
HttpServerReader
Kafka Reader
MongodbReader
...FileReader
HttpServerReader
Kafka Reader
MongodbReader
...
Writer(출력기)
Writer
KafkaWriter
MongodbReader
...FileWriter
KafkaWriter
MongodbReader
...
Controller(제어기)
Controller
SparkSessionStreamController
...SparkSessionController
SparkSessionStreamController
...
Runner(실행기)
Runner
TensoflowRunner
...SparkRunner
TensoflowRunner
...
Operator(처리기)
Operator
Aggregator
...MinMaxScaler
Aggregator
...
컴퍼넌트 속성 선택/편집부(75)는 컴퍼넌트 선택부(74)에서 선택된 엔진 컴퍼넌트의 속성(Properties)들이 제시되고 사용자는 속성을 조회하여 이를 선택 및 편집할 수 있다. The component property selection/
워크플로우 인스턴스 선택부(76)는 기제작된 워크플로우가 저장된 목록이 표시된다. 이들 중에서 재활용을 원하는 워크플로우를 선택하여 재편집을 하거나, 그대로 프레임워크(10)에 실행요청을 할 수 있다. 재활용의 단위는 워크플로우 전체일 수도 있고, 또는 워크플로우에 포함된 단일 엔진별로 재활용하여 편집이나 실행에 활용할 수도 있다. In the workflow
이러한 시스템 정의편집기(70)에서 워크플로우 명세 화일이 만들어지면 이는 도 1에 나타낸 프레임워크(10)의 시스템 구성부(30)에 제출된다. 이때에 프론트엔드(77)가 워크플로우 명세를 입력받아 시스템 구성부(30)에 전달하는 역할을 할 수 있다. When a workflow specification file is created in the
도 1과 도 2로 다시 돌아가면, 프레임워크(10)의 자원관리부(20)는 워크플로우의 실행에 필요한 컴퍼넌트들을 관리하는 기능을 수행한다. 자원관리부(20)는 구체적으로 도 2에 나타낸 것과 같이, 1 and 2, the
-워크플로우 인스턴스의 컴퍼넌트 특성 또는 속성을 결정짓는 속성명세가 포함된 속성명세 컴퍼넌트(62)와 그 목록을 관리(업데이트 포함)하는 속성명세 컴퍼넌트 관리부(22),- The
-실행을 위한 컴퍼넌트(엔진 컴퍼넌트)들과 그 목록을 관리(업데이트 포함)하는 엔진 컴퍼넌트 관리부(24)를 포함한다.- Includes the engine
또한, 기존에 작성되어 저장된 워크플로우 명세 인스턴스를 관리하는 워크플로우 명세 인스턴스 관리부(26)를 추가로 포함할 수 있다. 이 워크플로우 명세 인스턴스 관리부(26)는 시스템 정의편집기(70)의 요청에 따라 (가령, 도 3의 워크플로우 인스턴스 선택부(76)를 통해) 워크플로우 명세 인스턴스를 추후에 활용할 수 있도록 보관 및 관리한다.In addition, it may further include a workflow specification
또한 도 1에서 시스템 구성부(30)는 작성된 워크플로우의 실행에 필요한 컴퍼넌트를 생성하는 기능을 수행한다. 시스템 구성부(30)는 프론트엔드(77)로부터 넘겨받은 워크플로우 스펙(명세)에 따라 필요한 엔진 컴퍼넌트 컨테이너(32)들을 구성하여 엔진 인스턴스를 생성한다.In addition, in FIG. 1 , the
도 2를 참조하여 더 자세히 보면, 시스템 구성부(30)는 In more detail with reference to FIG. 2 , the
-시스템 정의편집기(70)로부터 수신한 실행 플랫폼 구성 워크플로우 명세를 속성명세 컴퍼넌트로 바인딩하여 일련의 속성명세 컴퍼넌트를 생성하는 워크플로우 속성명세조립부(34), - A workflow attribute
-조립한 속성명세 컴퍼넌트(62)들로부터, 정의된 엔진 컴퍼넌트 정보를 추출하여 속성명세 컴퍼넌트(62)와 엔진 컴퍼넌트(64)를 바인딩하는 과정을 통해 일련의 엔진 컴퍼넌트를 구성하여 워크플로우 실행 플랫폼을 구성하는 워크플로우 구성부(36)를 포함한다.-Extract defined engine component information from the assembled
워크플로우 속성명세조립부(34)는 실행 플랫폼을 구성하기 위한 워크플로우 명세를 속성명세 컴퍼넌트(62)로 바인딩하여 일련의 속성명세 컴퍼넌트 인스턴스를 생성한다. 워크플로우 속성명세조립부(34)에 의해 생성되는 속성명세 컴퍼넌트(62)의 예를 들면, 구글의 Protobuf 메세지 객체, 스칼라의 Case Class, 자바의 Property 객체 등을 들 수 있다.The workflow attribute
워크플로우 구성부(36)는 워크플로우를 구성하는 엔진 컴퍼넌트(64)와 이 엔진 컴퍼넌트(64)의 특성을 결정짓는 파라미터들을 정의한 속성명세 컴퍼넌트(62)를 바인딩하고, 바인딩 과정을 통해 생성한 엔진컴퍼넌트들의 인스턴스를 엔진컨테이너에 바인딩함으로써 워크플로우를 실행하기 위한 일련의 엔진 인스턴스들이 포함되는 워크플로우 실행 인스턴스부(50)를 동적으로 구성한다. 워크플로우 실행 인스턴스부(50)에는 워크플로우 구성부(36)에 의해 동적으로 생성된 하나 이상의 엔진(32)이 만들어져서 실행된다. 하나의 워크플로우를 실행하기 위해 생성된 이들 엔진(32)은 하나의 독립된 프로그램 패키지로서 동일 컴퓨팅 머신 또는 네트워크로 연결된 컴퓨팅 머신 상에 배포되고 실행되거나, 가상머신 단위로 패키징되어 상이한 물리적 컴퓨팅 머신에 배포될 수 있다.The
도 1과 도 2의 시스템 제어부(40)는 시스템 구성부(30)가 생성한 엔진 인스턴스(32)들을 처리 절차에 맞게 구동하고, 또한 구동된 엔진 인스턴스(32)를 종료시키는 역할을 수행하는 등, 본 발명의 프레임워크의 핵심 역할을 수행하는 모듈이다. 워크플로우 속성명세에 정의된 방식에 따라 워크플로우 실행 인스턴스부(50) 내에 만들어지는 하나 이상의 엔진(32)을 구동하여 실행을 제어한다. 다시 말해, 시스템 제어부(40)가 워크플로우 실행 인스턴스부(50)에 워크플로우 실행 요청을 하면, 워크플로우가 실행된다. 이로써, 원하는 어떠한 도메인에 대해서도 사용자에 의해 작성된 워크플로우가 이루고자 하는 목적을 달성할 수 있다. 1 and 2, the
예를 들어 시스템 제어부(40)는 다수의 상이한 유형을 데이터 출발지(source)와 종착지(destination)로 하는 하나 이상의 엔진(32)이 서로 파이프라인 방식으로 실행되도록 제어할 수 있다. 또는 다수의 상이한 유형을 데이터 출발지와 종착지로 하는 하나 이상의 엔진이 동시실행 되도록 제어할 수 있다. 다양한 유형의 엔진 구성에 대해서 차후에 상세히 설명한다.For example, the
도 4는 시스템 정의편집기(70)에서 작성된 워크플로우 명세로부터 엔진(32)을 구성하는 절차를 도시한다.4 shows a procedure for constructing the
우선, 시스템 구성부(30)의 워크플로우 구성부(36)는 워크플로우 명세를 입력받아(340), 이로부터, 엔진을 구성할 엔진 컴퍼넌트들에 대한 속성명세가 담기는 일련의 속성명세 컴퍼넌트 인스턴스를 생성한다(342). 이때 사용되는 속성명세 컴퍼넌트(62)는 구글의 프로토버프 메세지나 스칼라 케이스클래스, 기타 프로그램 언어 상에서 값을 담을 수 있는 'Class'일 수 있다. First, the
생성한 속성명세 컴퍼넌트 인스턴스를 엔진 컴퍼넌트(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
이러한 도 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
도 5에 나타낸 기본적인 엔진(32)은, 하나 이상의 데이터 출발지(source)로부터 데이터를 가져오는 입력기(reader)(322), 내부에서 처리한 데이터를 하나 이상의 데이터 종착지에 출력하는 하나 이상의 출력기(writer)(324), 입력한 데이터를 처리하기 위한 별도의 실행프로그램 또는 플랫폼을 실행하거나 세션을 관리하는 실행기(runner)(326), 이러한 데이터를 입력기를 통해 입력하여 실행기 상에서 처리하고 이를 출력하기 위한 일련의 제어를 담당하는 제어기(controller)(328)로 구성된다.The
상기 컨트롤러(제어기)(328)는 상기 입력기(322), 출력기(324), 실행기(326), 및 하기 단위처리기(323)를 이용한 일련의 처리과정을 제어하는 기능을 수행한다. 입력기(322)에 데이터소스(출발지)로부터 데이터를 읽어오라는 입력요청을 하고, 실행기(326)에 입력기를 통해 읽은 데이터를 처리 프레임워크를 구동하여 처리하고 출력기로 보내라는 처리요청을 하고, 출력기(324)로 하여금 처리 완료된 데이터를 데이터 종착지에 쓰도록 출력요청을 한다. The controller (controller) 328 performs a function of controlling a series of processes using the
엔진(32)의 입력기(322)는 인메모리 버퍼나 캐시, 파일시스템, 메세징시스템, 데이터베이스, 네트워크드라이버 중의 어느 하나의 타입의 데이터 저장소(도시하지 않음)로부터 데이터를 읽는 기능을 수행한다. 마찬가지로, 출력기(324)는 인메모리 버퍼나 캐시, 파일시스템, 메세징시스템, 데이터베이스, 네트워크드라이버 중의 어느 하나의 타입의 데이터 저장소(도시하지 않음)에 데이터를 쓰는 기능을 수행한다. 단위처리기(323)는 데이터를 받아 가공하여 내보내는 기능을 수행한다. 예를 들어 데이터마이닝에서 언급하고 있는 정제/통합/축소/변환 방법에 포함된 다양한 데이터처리 기능의 구현체일 수 있다. 실행기(326)는 데이터를 처리하기 위해 필요한 모든 프로그램이나 외부 플랫폼/프레임워크들이 될 수 있으며, 빅데이터 처리를 위한 Spark, 딥러닝 분석을 위한 Caffe, Tensorflw와 같은 딥러닝 플랫폼, Jena와 같은 지식처리엔진 중 하나와 연동하거나 이를 실행하기 위한 커넥터나 제어기, 세션관리기 등이 될 수 있다. The
한편, 제어기(328)는, 도 5, 6과 같이, 입력기(322), 하나 이상의 단위처리기(323a~c), 출력기(324)의 순으로 노드들이 구성되는 경우에, 데이터를 순차적으로 파이프라이닝하여 다음 노드로 전달하는 방식으로 실행하도록 제어하는 순차처리 방식, 각각의 노드가 동시에 실행되도록 하는 동시처리 방식, 이 둘을 결합한 동시/순차처리 방식 등을 이용하여 제어할 수 있다.On the other hand, the
도 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
도 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
이상에서 설명한 다양한 구성의 엔진(32)의 다른 실시형태로서, 실행기(326)를, Caffe 또는 Tensorflow와 같은 딥러닝 프레임워크, Spark 또는 Hadoop MapReduce와 같은 빅데이터 처리 프레임워크, R 또는 Python과 같은 분석 프레임워크 등의 다양한 처리 프레임워크나 소프트웨어 프로그램과 연동하도록 또는 이들을 포함하도록 구성할 수 있다. As another embodiment of the
또다른 실시형태로서, 상기 설명한 엔진(32)을, 동일한 시스템 내의 다양한 데이터 경로를 데이터 출발지 및 종착지로 사용하는 입력기와 출력기를 탑재하도록 구성할 수 있다. 즉, 인메모리 버퍼/캐시, 파일시스템, 메세징 시스템, 데이터베이스, 네트워크 등의 다양한 논리적 드라이버 개념의 소스(동일 시스템에 포함됨)를 데이터출발지 및 종착지로 정의하고 이들로부터 데이터를 입력받고 이들로 데이터를 출력하도록 입력기와 출력기를 구성하여 엔진을 구성할 수 있다. As another embodiment, the
또다른 실시형태로서, 상기 설명한 엔진(32)을, 상이한 시스템 또는 네트워크에 존재하는 데이터 경로를 각각 데이터 출발지와 종착지로 사용하는 엔진을 구성할 수 있다. 이를 위해 입력기와 출력기에 대한 설정에 네트워크 주소 정보나 호스트 정보, 원격 드라이버 정보를 포함시킬 수 있다. 상이한 데이터 출발지와 종착지를 입력기와 출력기에 별개로 사용함으로써 엔진을 데이터 출발지와 종착지 사이에서의 스트림 처리 엔진이나 데이터 경로 상의 필터처럼 활용할 수 있는 것이다. As another embodiment, the
도 9는 다수의 워크플로우 실행 엔진(32a~c)이 구성되는 경우에 하나의 엔진의 출력기에서 출력될 데이터의 종착지가 다른 엔진의 입력기의 데이터 출발지로 파이프라인 방식으로 전달되도록 데이터 전달경로(338)가 사용되는 실시형태를 도시한다. 여기서 데이터 전달경로(338)는 예를 들어 Kafka일 수 있다. 도 9와 같은 구성을 이용함으로써 여러 개의 상이한 용도의 워크플로우 처리를 하는 엔진(32a~c)들이 협력하여 복잡한 워크플로우를 실행하는 것이 가능하다.9 shows a
또한 도 9에서, 하나 이상의 엔진(32a~c)들은 서로 다른 물리적 환경(가령, 네트워크, 클러스터 등)에 놓일 수 있으며, 상이한 종류의 실행기로 구성하는 것이 가능하다. 예를 들면, 첫 번째 엔진(32a)은 데이터를 처리하는 실행기를 연동하고 두 번째 엔진(32b)은 딥러닝 프레임워크를 연동한다고 할 경우, 상기 데이터 전달경로(338)에 의해 상이한 환경에서 복잡한 문제를 해결하기 위한 하나의 워크플로우를 실행하는 것이 가능하다. 이때 각각의 엔진들은 동시 실행, 하나씩 순차적 실행, 또는 특정 시점에 따른 개별적 실행 모두 가능하다.Also in FIG. 9 , one or
도 10은 하나 이상의 엔진(32a~c)이 상이한 유형의 데이터 전달경로(예를 들어, 파일시스템 전달경로(340)와 네트워크스트림 전달경로(342))를 데이터 출발지 및 종착지별로 파이프라이닝 처리하는 방식으로 워크플로우 실행 시스템을 구성한 예를 도시한다. 이 경우에 각 엔진 내의 입력기와 출력기는 복수로 구성된다. 여기서 파일시스템 전달경로(340)는 배치 전달경로를 의미하고, 네트워크스트림 전달경로(342)는 실시간 전달경로를 의미한다. 도 10의 방식에 의해 실시간 처리와 배치 처리가 동시에 가능한 람다아키텍쳐와 같은 구조의 워크플로우 시스템을 구성할 수 있다.10 is a method in which one or
이상에서 설명한 본 발명의 프레임워크의 구성 및 작용에 대한 이해를 돕기 위하여 구체적인 워크플로우 서비스 시나리오를 소개하기로 한다.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
"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
도 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
도 13은 도 11의 워크플로우 엔진 프레임워크(10)의 내부 구성을 설명한다. 워크플로우 엔진 프레임워크(10)에서 생성된 엔진에 인제스천(Ingestion)/데이터/예측을 위한 엔진(52)과 서빙 엔진(53)이 포함되어 있다.13 illustrates the internal configuration of the
인제스천/데이터/예측 엔진(52)의 구성요소는 다음과 같다.The components of the ingestion/data/
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
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
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/
온도센서(81)의 온도센싱값이 REST 신호로 인제스천/데이터/예측 엔진(52)에 입력되어 시스템 정의편집기(70)를 통해 설계된 다수의 처리기를 거쳐서 처리되면, 출력되는 예측결과값은 저장소로부터 읽혀서 서빙 엔진(53)으로 전달되고 온도센서(81)의 온도센싱값에 따라 스마트전구(82)가 제어되어 자동 조도조절이 수행된다. When the temperature sensing value of the
도 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
서빙 엔진의 제어기는 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
데이터 엔진(54)에는 도 5~8과 유사하게 입력기(542), 제어기(548), 실행기(546), 처리기(543a~f)가 포함된다. 예측 엔진(55)의 경우에도 도 5~8과 유사하게 입력기(552)와 제어기(558)가 포함되지만, 실행기 대신에, RNN(순환신경망) 기반의 예측을 수행하는 텐서플로우(Tensorflow)(555)가 포함된다. The
도 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
크로스도메인 융합 시스템(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
앞에서 소개한 개념의 시스템 정의편집기(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
크로스도메인 시스템 구성부(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
크로스도메인 시스템 제어부(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
각 도메인의 워크플로우 엔진 프레임워크(10)는 각자의 도메인에 할당된 엔진을 동적으로 구성한 후 크로스도메인 시스템 제어부(40)의 실행요청에 의해 엔진을 구동하여 처리를 수행한다. 이때 엔진 간의 데이터 전달은 도 10에서 언급한 바와 같이 네트워크 드라이버를 통해 직접 수행될 수도 있으며, 분산 메시지큐와 같은 메시징 시스템, 그 외 분산파일시스템 등 다양한 데이터 경로 중 하나 이상을 이용해서 전달할 수도 있다. 각 단일도메인 워크플로우 엔진 프레임워크(10)의 시스템 제어부(40)는 엔진들의 진행상황, 완료 등의 신호를 다시 크로스도메인 융합 시스템(10')의 크로스도메인 시스템 제어부(40')에 전달한다.The
크로스도메인 자원관리부(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
각 단일도메인 워크플로우 엔진 프레임워크(10)는 자신이 가진 자원의 목록을 크로스도메인 융합 시스템(10')에 등록하고 주기적으로 갱신을 요청한다. 여기서 자원의 목록은 워크플로우 실행을 위한 컴퍼넌트 자원목록일 수 있으며, 네트워크 연결정보, 하드웨어 자원정보, 가상머신의 사양정보, 조직의 구성정보, 조직의 가용 디바이스 정보, 가용상태 등이 또한 해당될 수 있다.Each single domain
도 17은 도 16의 크로스도메인 융합 시스템(10')에서 워크플로우 명세를 받아 이를 효과적으로 배포하고 실행하기 위한 실행 절차를 도시한다. 이때의 워크플로우는 해결하고자 하는 문제나 응용에 따라 단일도메인 또는 크로스도메인 적응형 워크플로우일 수 있다. FIG. 17 shows an execution procedure for receiving and effectively distributing and executing a workflow specification from the
먼저, 시스템 정의편집기(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
우선 각 엔진에 필요한 데이터의 최초 출발지(엔진이 수집해야 하는 데이터의 위치. 가령, 특정 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
후보 도메인군이 결정되면 그들 중 대체 도메인을 결정하기 위하여 비용 산정을 수행한다(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
도 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
다음으로 도로별 교통량 예측은, 상기 도로교통량 모니터링 워크플로우(91)의 교통센서정보 수집엔진과 수집된 센싱정보를 예측에 필요한 입력데이터 형태로 처리하고 처리한 데이터를 읽어 기계학습 기반의 예측을 수행하는 교통량예측 엔진과, 예측결과를 외부의 요청에 따라 응답하는 교통량예측 서빙 엔진으로 구성된 도로별 교통량예측 워크플로우(92)를 정의하고 실행함으로써 목적하는 시스템을 동적으로 구성할 수 있다.Next, for the traffic volume prediction by road, the traffic sensor information collection engine of the road
기상예측은, 기상정보를 수집하고 적절하게 처리하는 기상정보수집 엔진과, 기계학습모델 기반으로 기상을 예측하는 기상예측 엔진과, 기상예측결과를 서빙하기 위한 기상예측 서빙 엔진으로 구성된 기상 예측 워크플로우(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
스마트가로등제어는 상기에서 기술한 교통량예측 서빙 엔진과 기상예측 서빙 엔진에 각각 도로별 교통량예측결과 기상예측결과를 질의하기 위한 오퍼레이션과 그 결과를 상기 상황별 도로교통 제어 추천 엔진에 제공하여 필요한 도로교통제어를 추론하여 얻기 위한 오퍼레이션을 포함하여 외부의 요청에 응답하는 스마트가로등제어 추천 엔진을 생성하는 스마트가로등제어 워크플로우(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
그 밖에 설명하지 않은 도 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
이제, 다시 도 17의 크로스도메인 워크플로우의 실행 절차로 돌아가, 일련의 워크플로우 실행을 위한 필요 엔진 컴퍼넌트 컨테이너군 결정(100)을 수행한 후 각 엔진 컴퍼넌트 컨테이너에 대한 배포위치 결정 및 배포를 위한 절차(200) 중, 대체후보도메인 결정을 위한 기준이 되는 비용산정(250) 및 최적의 후보도메인 결정(260)에 대해서 각 시나리오별로 보충 설명한다.Now, returning to the cross-domain workflow execution procedure of FIG. 17 again, after performing the
도로교통제어 워크플로우(90)에서의 상황별 도로교통 제어 추천 엔진의 경우에 그 추천 결과가 가로등제어 추천과 직결되므로 도메인간 신뢰도 우선의 가중치 정책에 따른 엔진배포가 수행된다.In the case of the road traffic control recommendation engine for each situation in the road
도로교통량 모니터링 워크플로우(91)에서의 센싱데이터 수집 엔진, 교통량통계 처리엔진, 교통량통계 서빙 엔진에 대해서는, 실시간 모니터링을 위해 엔진 배포시 네트워크 전달 비용과 가용 컴퓨팅 자원 우선의 가중치 정책에 따라 엔진들을 배포한다. For the sensing data collection engine, traffic statistics processing engine, and traffic statistics serving engine in the road
도로별 교통량예측 워크플로우(92)의 도로교통량 모니터링 워크플로우의 교통량예측 엔진과 교통량예측 서빙 엔진은, 수집엔진의 수집 결과를 이용하여 예측을 수행해야 하므로 수집엔진이 배포된 도메인과의 네트워크 비용을 우선으로 하여 엔진을 배포한다. The traffic volume prediction engine and the traffic volume prediction serving engine of the road traffic volume monitoring workflow of the road traffic
기상 예측 워크플로우(93)에서 기상정보는 보안상 중요한 정보가 아니므로 가용한 컴퓨팅 자원을 우선으로 엔진을 배포한다. In the
스마트가로등제어 추천 엔진이 포함된 스마트가로등제어 워크플로우(94)에서는 각각의 질의대상 엔진이 다른 도메인에 배포되어 있고 중요한 정보를 담고 있으므로, 도메인간 신뢰도 우선의 가중치 정책에 따라 엔진을 배포한다. In the smart street
이상의 구성 및 프로세스를 통하여, 사물인터넷, 빅데이터, 기계학습을 결합하여 분석하는 대용량 데이터의 실시간 분석 서비스 등에 있어서, 특정한 문제의 해결을 위해 개발한 기계학습 모델 및 빅데이터 분석 모델을 컴퍼넌트를 구현하여 관리할 수 있다. 또한 다양한 업무나 목적 도메인에서 유사한 문제의 해결을 위한 실행 플랫폼을 용이하게 구성할 수 있도록, 상기 컴퍼넌트를 동적으로 재활용할 수 있는 단일도메인 또는 크로스도메인 적응형 워크플로우 엔진 프레임워크를 구현할 수 있다. 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.
워크플로우 인스턴스의 컴퍼넌트 속성을 결정짓는 속성명세가 포함된 속성명세 컴퍼넌트를 관리하는 속성명세 컴퍼넌트 관리부; 및
실행을 위한 엔진 컴퍼넌트를 관리하는 엔진 컴퍼넌트 관리부를 포함하는 워크플로우 엔진 프레임워크 시스템.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.
기존에 작성되어 저장된 워크플로우 명세 인스턴스를 관리하는 워크플로우 명세 인스턴스 관리부를 추가로 포함하는 워크플로우 엔진 프레임워크 시스템.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.
워크플로우를 구성하는 엔진 컴퍼넌트와 이 엔진 컴퍼넌트의 특성을 결정짓는 파라미터를 정의하는 속성명세 컴퍼넌트의 규약에 따라 엔진 컴퍼넌트와 속성명세 컴퍼넌트를 바인딩하여 워크플로우를 실행하기 위한 엔진이 저장되는 워크플로우 실행 인스턴스부를 추가로 포함하는 워크플로우 엔진 프레임워크 시스템. 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.
각종 엔진 유형을 제시하고 사용자가 이들 중 필요한 것들을 선택할 수 있도록 하는 엔진유형 선택부;
사용자가 컴퍼넌트 타입과 각 타입별 엔진 컴퍼넌트를 선택할 수 있도록 컴퍼넌트 타입별로 다양한 엔진 컴퍼넌트 목록을 제공하는 컴퍼넌트 선택부; 및
컴퍼넌트 선택부에서 선택된 엔진컴퍼넌트의 속성이 제시되고 사용자는 속성을 조회하여 이를 선택 및 편집할 수 있도록 하는 컴퍼넌트 속성 선택/편집부를 포함하는 워크플로우 엔진 프레임워크 시스템.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.
하나 이상의 데이터 출발지로부터 데이터를 가져오는 입력기;
상기 입력기로부터 데이터를 받아 처리하는 하나 이상의 단위처리기;
내부에서 처리한 데이터를 하나 이상의 데이터 종착지에 출력하는 하나 이상의 출력기;
입력한 데이터를 처리하기 위한 별도의 실행프로그램 또는 플랫폼을 실행하거나 세션을 관리하는 실행기; 및
데이터를 입력기를 통해 입력하여 실행기 상에서 처리하고 이를 출력하기 위한 일련의 제어를 담당하는 제어기를 포함하는 워크플로우 엔진 프레임워크 시스템.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.
상기 입력기, 단위처리기, 출력기의 순으로 노드들이 구성되는 경우에, 데이터를 순차적으로 파이프라이닝하여 다음 노드로 전달하는 방식으로 실행하도록 제어하는 순차처리 방식, 각각의 노드가 동시에 실행되도록 하는 동시처리 방식, 및 이 둘을 결합한 동시/순차처리 방식 중 어느 하나로 제어를 수행하는 워크플로우 엔진 프레임워크 시스템.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.
하나 이상의 단위처리기가 상기 입력기로부터 데이터를 받아서 순차적으로 파이프라이닝에 의한 데이터를 처리함과 함께, 하나 이상의 단위처리기가 구동되어 동시처리를 실행하도록 제어하는 워크플로우 엔진 프레임워크 시스템.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.
상기 단일도메인 워크플로우 엔진 프레임워크 시스템과 연결되어, 크로스도메인 워크플로우에 따라 크로스도메인에 포함된 각 단일도메인에 필요한 엔진을 배포할 단일도메인을 결정하는 크로스도메인 융합 시스템을 포함하되,
상기 크로스도메인 융합 시스템은, 단일도메인 워크플로우 엔진 프레임워크 시스템의 자원관리부로부터 워크플로우 자원들을 보고받고 이들을 갱신하며, 각 도메인으로부터 받은 자원 정보를 통해 가용한 컴퍼넌트 및 하드웨어, 네트워크 정보, 도메인 내의 디바이스 정보 중 적어도 하나를 갱신하는 크로스도메인 자원관리부와; 크로스도메인 워크플로우 명세를 처리하기 위해 하나의 크로스도메인 워크플로우 명세를 다수의 단일도메인 워크플로우 명세로 분할하여 각 엔진 컴퍼넌트 컨테이너의 배포위치를 결정하고 배포하는 크로스도메인 시스템 구성부를 포함하는 크로스도메인 적응형 워크플로우 엔진 프레임워크 시스템.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.
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.
각종 엔진 유형을 제시하고 사용자가 이들 중 필요한 것들을 선택할 수 있도록 하는 엔진유형 선택부;
사용자가 컴퍼넌트 타입과 각 타입별 엔진 컴퍼넌트를 선택할 수 있도록 컴퍼넌트 타입별로 다양한 엔진 컴퍼넌트 목록을 제공하는 컴퍼넌트 선택부; 및
컴퍼넌트 선택부에서 선택된 엔진컴퍼넌트의 속성이 제시되고 사용자는 속성을 조회하여 이를 선택 및 편집할 수 있도록 하는 컴퍼넌트 속성 선택/편집부를 포함하는 크로스도메인 적응형 워크플로우 엔진 프레임워크 시스템.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.
하나 이상의 데이터 출발지로부터 데이터를 가져오는 입력기;
상기 입력기로부터 데이터를 받아 처리하는 하나 이상의 단위처리기;
내부에서 처리한 데이터를 하나 이상의 데이터 종착지에 출력하는 하나 이상의 출력기;
입력한 데이터를 처리하기 위한 별도의 실행프로그램 또는 플랫폼을 실행하거나 세션을 관리하는 실행기; 및
데이터를 입력기를 통해 입력하여 실행기 상에서 처리하고 이를 출력하기 위한 일련의 제어를 담당하는 제어기를 포함하는 크로스도메인 적응형 워크플로우 엔진 프레임워크 시스템.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.
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.
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)
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)
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)
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 |
-
2018
- 2018-04-24 KR KR1020180047370A patent/KR102259927B1/en active IP Right Grant
- 2018-04-27 JP JP2018087438A patent/JP7118726B2/en active Active
Patent Citations (2)
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 |