KR20190043446A - Workflow engine framework - Google Patents

Workflow engine framework Download PDF

Info

Publication number
KR20190043446A
KR20190043446A KR1020180047370A KR20180047370A KR20190043446A KR 20190043446 A KR20190043446 A KR 20190043446A KR 1020180047370 A KR1020180047370 A KR 1020180047370A KR 20180047370 A KR20180047370 A KR 20180047370A KR 20190043446 A KR20190043446 A KR 20190043446A
Authority
KR
South Korea
Prior art keywords
engine
workflow
domain
component
data
Prior art date
Application number
KR1020180047370A
Other languages
Korean (ko)
Other versions
KR102259927B1 (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 for creating a domain-adaptive and further cross-domain adaptive workflow execution platform that is purposeful through an organic configuration of dynamic engine components. According to the present invention, the workflow engine framework comprises: a resource management unit for managing a resource including an engine component and a workflow attribute specification component necessary for execution of a workflow defined by a user; a system configuration unit for generating an engine by configuring necessary engine component containers according to workflow specification by assembling the attribute specification component and dynamically combining the engine component necessary for executing the workflow; and a system control unit for controlling the execution by driving at least one engine generated by the system configuration unit according to a method defined in a workflow attribute specification. In addition, provided in the present invention is a cross-domain adaptive workflow engine framework, in which workflow engine frameworks are assigned to two or more different single-domains respectively, to be connected, through a network, to single-domain workflow engine frameworks, and which includes a cross-domain convergence system determining a single-domain to distribute a necessary engine to each single-domain included in the cross-domain according to a user-defined cross-domain workflow.

Description

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

본 발명은 워크플로우 및 프레임워크 기술에 관한 것으로, 구체적으로는, 다양한 업무 도메인 또는 목적 도메인의 워크플로우를 처리하기 위하여 동적 엔진 컴퍼넌트들의 유기적인 구성을 통해 단일도메인 적응형의 그리고 나아가 크로스도메인 적응형의 워크플로우 실행 플랫폼을 만들 수 있는 워크플로우 엔진 프레임워크에 관한 것이다.Field of the Invention The present invention relates to workflow and framework techniques and, more particularly, to a workflow and framework technique that can be implemented in a single domain adaptive and further cross domain adaptive To a workflow engine framework capable of creating a workflow execution platform of the workflow engine.

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

최근에, 다양한 사물에 인공지능을 부여하는 이른바 지능형 사물인터넷이 주목받고 있다. 특히, 다수의 이종 사물인터넷 영역을 포괄하는 지능형 인터넷 응용(예를 들어, 스마트시티)을 위해서는 이종의 사물 지능 영역을 통제 및 관리, 제어할 수 있는 시스템이 필요하다. 또한, 다양한 업무도메인(예를 들어, 에너지, 헬스, 교통·교육·전력 플랜트 등)을 지능적으로 처리해야 하는 문제가 발생할 수 있다. 하나의 업무도메인 내에서도 데이터의 발생과 액션이 일어나는 디바이스부터, 데이터를 처리하고 전달, 즉각적 분석, 판단하는 엣지(edge)와 복잡한 분석과 응용이 일어나는 클라우드(cloud)까지 다양한 목적도메인이 존재할 수 있다. 또한 업무도메인이나 목적도메인 내에서도 공간의 분류에 따른 공간도메인, 시간의 분류에 따른 시간도메인이 존재할 수 있다. 그 밖에 데이터처리도메인, 학습도메인, 예측도메인, 서비스도메인 등, 다양한 방법도메인들이 있을 수 있다. 따라서 이러한 복잡한 다종의 다계층 도메인(이하, 크로스도메인)을 효과적으로 통제하고 관리, 제어하기 위한 일원화된 방법 및 시스템이 필요하다.In recent years, so-called intelligent objects that give artificial intelligence to various objects have been attracting attention. In particular, for intelligent Internet applications (eg, Smart City) that encompass a large number of heterogeneous Internet domains, a system capable of controlling, managing, and controlling heterogeneous object intelligence domains is needed. In addition, problems can arise that require intelligent processing of various business domains (e.g., energy, health, transportation, education, power plants, etc.). Within a single business domain, there can be a variety of target domains, from devices where data is generated and actioned, to edges where data is processed, delivered, instantly analyzed and judged, to the cloud where complex analysis and applications occur. Also, in the task domain or the target domain, there may be a time domain according to the classification of the space and a time domain according to the time classification. In addition, there can 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 a complex multi-layer domain (hereinafter referred to as a cross domain).

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

또한 최근 급부상하고 있는 기계학습 기술을 IoT 빅데이터 분석에 활용하여 워크플로우를 설계할 필요성이 커지고 있고 또한 다양한 목적과 분야의 IoT 도메인들이 생겨남에 따라 이들을 유기적으로 통합하여 좀 더 인사이트 있는 분석이나 서비스가 가능하도록 하는 일원화된 플랫폼 기술이 필요해지고 있다. 그러나 종래의 워크플로우 기술로는 디바이스, 데이터, 도메인에 따라 상이한 특성을 가진 IoT 빅데이터와 기계학습을 결합하는 데에는 한계가 있다.In addition, the need to design workflows by utilizing the recently emerging machine learning technologies for IOT big data analysis is growing, and as the IoT domains of various purposes and fields are developed, they are organically integrated so that more insightful analyzes and services The need for a unified platform technology to enable. However, conventional workflow techniques have limitations in combining machine learning with IoT big data having different characteristics depending on device, data, and domain.

상술한 한계와 문제점의 극복을 위해, 엔진 컴퍼넌트들의 유기적인 구성을 통해 각 도메인의 목적에 맞는 워크플로우를 생성하여 실행할 수 있고, 쉽게 다른 도메인에 적용하여 다른 도메인에 적합한 (도메인 적응형의) 워크플로우를 생성하고 실행할 수 있으며, 특히 크로스도메인에 대응하기 위해 통합적으로 제어 및 관리할 수 있는 일원화된 시스템이 필요하다.In order to overcome the limitations and problems described above, it is possible to create and execute a workflow suitable for the purpose of each domain through the organic configuration of the engine components, and easily apply it to another domain to implement (domain adaptation) Flows can be created and executed, and in particular, a unified system is needed that can be integrally controlled and managed to accommodate cross domains.

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

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

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

엔진 컴퍼넌트들의 유기적인 구성을 통해 각 도메인이 풀고자 하는 분야와 목적에 맞는 워크플로우를 생성하여 실행할 수 있고, 쉽게 다른 도메인에 적용하여 다른 도메인에 적합한 워크플로우를 생성하고 실행할 수 있다. 즉, 다양한 업무도메인 또는 목적도메인에서 유사한 문제들의 해결을 위한 실행 플랫폼을 용이하게 구성할 수 있도록 엔진 컴퍼넌트들을 동적으로 재활용할 수 있는 도메인 적응형 워크플로우 엔진 프레임워크를 쉽게 구성할 수 있다. 또한 크로스도메인 지식융합 브레인을 추가로 포함함으로써, 크로스도메인 적응형 워크플로우 엔진 프레임워크를 구성할 수 있다. 나아가 IoT, 빅데이터, 기계학습을 결합하여 분석하는 대용량 데이터의 실시간 분석 서비스에 있어서, 특정한 문제의 해결을 위해 개발한 기계학습 모델 및 빅데이터 분석 모델을 컴퍼넌트를 구현하여 관리할 수 있다. By organically organizing the engine components, you can create and execute workflows that match the domain and purpose each domain is trying to solve, and you can easily create and run workflows for different domains by applying them to other domains. That is, a domain adaptive workflow engine framework that can dynamically recycle 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 including a cross domain knowledge fusion brain, a cross domain adaptive workflow engine framework can be constructed. Furthermore, in real-time analysis service of large capacity data which combines IoT, big data, and machine learning, it is possible to implement and manage components of a machine learning model and a big data analysis model developed for solving specific problems.

다양한 인공지능 서비스나 어플리케이션이 요구되는 환경에서 응용별로 개별 솔루션을 개발하지 않고, 추가 필요한 컴퍼넌트를 개발하여 추가 탑재하거나 기개발되어 탑재된 컴퍼넌트들을 재활용함으로써 새로운 워크플로우를 만족하는 워크플로우 실행 엔진 세트를 구성/실행할 수 있는 프레임워크를 실현할 수 있다.It is not necessary to develop individual solutions for applications in various artificial intelligence services or applications, and it is necessary to develop additional components and recycle components that have been developed and installed so as to satisfy the new workflow. It is possible to realize a framework that can be configured / executed.

도 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;
FIG. 2 is a detailed configuration diagram of the system configuration section 30. FIG.
3 is a GUI screen example diagram for explaining the configuration of the system definition editor 70
4 is a diagram showing a procedure for configuring an engine from the specification of an engine constituting a workflow
5 is a configuration diagram of an engine as an example of a workflow execution instance configurable by the workflow configuration unit 36 in FIG.
6 is a diagram showing an example of an engine configuration equipped with a unit processor
Figure 7 is a specific embodiment of the data processing engine illustrated in Figure 6
8 is a diagram showing another example of an engine configuration in which a unit processor is mounted;
9 shows a configuration of a workflow execution system in which one or more engines are connected in a pipeline manner.
10 illustrates a configuration of a workflow execution system in which one or more engines run through multiple types of data paths;
Fig. 11 is an explanatory diagram of the IoT and artificial intelligence based illumination / temperature control workflow service scenario
12 is an explanatory diagram of a scenario of a deep-running-based traffic speed monitoring service
FIG. 13 is a diagram showing the internal structure of the workflow engine framework 10 of FIG.
14 is a diagram showing 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
FIG. 15 is a block diagram of the internal structure 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 smart city;
19 is a flowchart showing a work flow < RTI ID = 0.0 > One embodiment of the engine framework
20 shows an embodiment of the smart streetlight control recommendation engine configuration of workflow 94 shown in Fig. 19

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

- 실행할 작업(워크플로우)의 구조와 명세를 작성하는 시스템 정의편집기(70), A system definition editor 70 for creating a structure and a specification of a work to be executed (workflow)

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

- 워크플로우 속성명세를 조립하고 워크플로우 실행에 필요한 엔진 컴퍼넌트들을 동적으로 조합하여 구성하고, 워크플로우를 수행하는 엔진 인스턴스(32)(이하, '엔진'과 혼용됨)를 생성하는 시스템 구성부(30), A system construction unit (hereinafter, referred to as " engine ") for assembling a workflow attribute specification, dynamically combining engine components necessary for executing a workflow, and generating an engine instance 32 30),

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

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

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

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

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

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

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

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

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

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

사용자(데이터 과학자, 모델 개발자, 비즈니스 개발자 등)는 시스템 정의편집기(70)를 통해, 워크플로우를 구성하는 엔진 컴퍼넌트(64)와 그 엔진 컴퍼넌트의 특성을 결정짓는 파라미터들을 정의할 수 있는 속성명세 컴퍼넌트(62)를 규약에 따라 정의하고, 또한, 컴퍼넌트와 속성명세의 쌍을 정의하고 편집할 수 있다. A user (a data scientist, a model developer, a business developer, etc.) is connected to a system definition editor 70 via an engine component 64 that constitutes a workflow and an attribute specification component that can define parameters that determine the characteristics of the engine component (62) can be defined according to the protocol, and a pair of a component and an 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. The description of the configuration and operation of the system definition editor 70 will be omitted by explaining the GUI screen 71. [

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 / editing 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. The function menu 72 includes functions such as New (Create New Workflow), Open (Load Saved Workflow), Save (Save Workflow) Workflow execution), Result (execution result view), Help (help), and the like.

엔진유형 선택부(73)는 각종 엔진 유형을 제시하고 사용자가 이들 중 필요한 것들을 선택할 수 있도록 한다. 엔진의 유형으로는 예를 들어, 실시간 스트림처리 엔진, 배치 분석 엔진, 요구형(on-demand) 데이터처리 엔진, 평가 엔진, 배치 데이터적재 엔진, 스트림 기계학습 예측 엔진, 요구형 융합서빙 엔진 등이 있다.The engine type selection unit 73 presents various engine types and allows the user to select one of them. The types of engines include, 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, have.

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

컴퍼넌트 타입Component type 엔진 컴퍼넌트Engine component

Reader(입력기)


Reader
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 selecting / editing unit 75 can display the properties of the engine component selected by the component selecting unit 74, and the user can select and edit the property of the selected engine component.

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

이러한 시스템 정의편집기(70)에서 워크플로우 명세 화일이 만들어지면 이는 도 1에 나타낸 프레임워크(10)의 시스템 구성부(30)에 제출된다. 이때에 프론트엔드(77)가 워크플로우 명세를 입력받아 시스템 구성부(30)에 전달하는 역할을 할 수 있다. When the 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 receive the workflow specification and transmit the workflow specification to the system configuration unit 30.

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

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

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

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

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

도 2를 참조하여 더 자세히 보면, 시스템 구성부(30)는 2, the system configuration unit 30 includes

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

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

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

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

도 1과 도 2의 시스템 제어부(40)는 시스템 구성부(30)가 생성한 엔진 인스턴스(32)들을 처리 절차에 맞게 구동하고, 또한 구동된 엔진 인스턴스(32)를 종료시키는 역할을 수행하는 등, 본 발명의 프레임워크의 핵심 역할을 수행하는 모듈이다. 워크플로우 속성명세에 정의된 방식에 따라 워크플로우 실행 인스턴스부(50) 내에 만들어지는 하나 이상의 엔진(32)을 구동하여 실행을 제어한다. 다시 말해, 시스템 제어부(40)가 워크플로우 실행 인스턴스부(50)에 워크플로우 실행 요청을 하면, 워크플로우가 실행된다. 이로써, 원하는 어떠한 도메인에 대해서도 사용자에 의해 작성된 워크플로우가 이루고자 하는 목적을 달성할 수 있다. The system control unit 40 shown in FIGS. 1 and 2 performs the function of driving the engine instances 32 generated by the system configuration unit 30 in accordance with the processing procedure and terminating the engine instance 32 Is a module that plays a key role in the framework of the present invention. And controls the execution 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 requests the workflow execution instance unit 50 to execute the workflow, the workflow is executed. Thereby, it is possible to achieve the objective that the workflow created by the user for any desired domain can achieve.

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

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

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

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

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

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

도 5~도 10은 도 1에서 언급한 워크플로우 구성부(36)에 의해 구성되는 워크플로우 실행 인스턴스의 예시로서 다양한 엔진(32) 구성의 방식을 도시한다.5 to 10 illustrate various engine 32 configuration schemes as an example of a workflow execution instance constituted by the workflow configuration section 36 referred to in Fig.

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

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

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

한편, 제어기(328)는, 도 5, 6과 같이, 입력기(322), 하나 이상의 단위처리기(323a~c), 출력기(324)의 순으로 노드들이 구성되는 경우에, 데이터를 순차적으로 파이프라이닝하여 다음 노드로 전달하는 방식으로 실행하도록 제어하는 순차처리 방식, 각각의 노드가 동시에 실행되도록 하는 동시처리 방식, 이 둘을 결합한 동시/순차처리 방식 등을 이용하여 제어할 수 있다.5 and 6, when the nodes are configured in the order of the input unit 322, the one or more unit processors 323a to 323c, and the output unit 324, the controller 328 sequentially processes the data by pipelining To a next node, a simultaneous processing method in which each node is simultaneously executed, a simultaneous / sequential processing method in which both nodes are combined, and the like.

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

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

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

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

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

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

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

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

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

이상에서 설명한 본 발명의 프레임워크의 구성 및 작용에 대한 이해를 돕기 위하여 구체적인 워크플로우 서비스 시나리오를 소개하기로 한다.A specific workflow service scenario will be introduced to help understand 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 illumination / temperature control workflow service scenario. The workflow engine framework 10 receives the temperature sensing value from the in-building temperature sensor 81 and executes a predetermined workflow through the engine (s) created in the framework 10 to generate the smart bulb 82, So as to control the optimum illuminance and control the smart system cooling / heating unit 83 to perform optimum temperature control.

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

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

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

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

522: 웹서비스 포트를 열어 들어오는 데이터를 읽는 스트림 입력기522: Stream input by opening web service port and reading incoming data

528: 스트림데이터를 읽어 일정 갯수가 쌓이면 입력기(522), 오퍼레이터(523a~f), 출력기(524)를 순차적으로 처리하도록 하는 컨트롤러(제어기)528: a controller (controller) for sequentially processing the input device 522, the operators 523a to 525f, and the output device 524 when a predetermined number of streams are read by reading the stream data,

523a: 데이터 중 온도값이 위치한 컬럼을 추출하는 오퍼레이터(처리기)523a: an operator (processor) for extracting a column in which the temperature value of data is located;

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

523c: 컬럼을 열로, 또는 열을 컬럼으로 변환하는 오퍼레이터523c: an operator that converts a column into a column, or a column into a column

523d: 전달된 값을 지정된 기계학습모델을 이용하여 예측/판단하는 오퍼레이터523d: an operator for predicting / judging the delivered 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 for extracting a specific column including a label value among various values generated as a result of prediction

524: 최종값을 스트림엔진(예를 들어, Kafka)으로 쓰는 출력기524: writer writing final value to stream engine (for example, Kafka)

526: 오퍼레이터가 실행될 수 있도록 하는 환경을 제공하는 실행기. 526: An executor providing an environment in which an operator can be executed.

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

532: 스트림엔진으로부터 필요시마다 값을 읽는 입력기532: An input device that reads the values from the Stream Engine as needed

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

538: Rest Runner(536)에서 실행 중인 웹서버 상의 특정 웹포트를 통해 요청이 왔을때 입력기(342)를 통해 인제스천(Ingestion)/데이터/예측 엔진(52)의 처리결과 값을 읽어 이 예측 값을 사용자 요청에 담겨 있는 상황정보 값과 조합하여 데이터베이스를 참조하여 최적의 값을 검색하여 응답하도록 일련의 흐름을 제어하는 컨트롤러538: When a request is received via a specific web port on the Web server running in the Rest Runner 536, the processing result of the Ingestion / Data / Prediction Engine 52 is read through the input unit 342, A controller that controls a series of flows to retrieve and respond to optimal values by referring to the database in combination with the context information values 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 InGSein stream / data / prediction engine 52 as a REST signal and processed through a plurality of processors designed through the system definition editor 70, And transmitted to the serving engine 53, and the smart bulb 82 is controlled according to the temperature sensing value of the temperature sensor 81 to perform the 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. The components of the input device 322, the plurality of pipeline processors 323a-c, the output device 324, the executor 326, and the controller 328 are similar to those described in Fig. However, the serving engine of Fig. 14 is configured for serving a service execution in the workflow service of Figs. 11 and 13. [ FIG. 14 shows an external system, Spark, Tensoflow, Jena (time), REST Server, Jena (space) and Jena (domain-specific) linked with each component.

서빙 엔진의 제어기는 Spark 같은 실행기로 구성된 엔진로부터 처리한 데이터를 읽거나 텐서플로우 같은 딥러닝 프레임워크를 실행기로 구성한 엔진로부터 처리한 데이터를 읽는 입력기와, 그 값을 이용하여 온톨로지 기반 추론을 수행하는 처리기와, 그 결과를 REST 인터페이스를 통해서 서비스하는 실행기로 엔진을 구성함으로써 지능적 서비스를 제공할 수 있다. The controller of the serving engine reads the processed data from the engine constituted by the executor such as Spark or reads the processed data from the engine constituted by the deep learning framework such as tensor flow as the executor and performs ontology based reasoning using the value The intelligent service can be provided by configuring the engine with a processor and an executor that services the result through the 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)이 포함되어 있다.Fig. 15 illustrates the internal configuration of the workflow engine framework 10 of Fig. When the time / speed / TRV is transmitted in real time to the engine created in the workflow engine framework 10 from the traffic sensor 84 of 1382 links in real time, it is read out to read the 24 hour series of link per time for the Tensorflow RNN operation and a prediction engine 55 for receiving 24 time series for each link for Tensorflow RNN operation and outputting 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 542, a controller 548, an executor 546, and processors 543a-f, similar to FIGS. 5-8. The prediction engine 55 also includes an input unit 552 and a controller 558 similar to those of Figures 5 to 8 except that a tensor flow 555 for performing a circular neural network (RNN) ).

도 16은 이상에서 설명한 다수의 단일도메인 적응형 워크플로우 엔진 프레임워크(10)들을 네트워크를 통해 서로 협력적으로 연결하여 크로스도메인 적응형의 워크플로우 엔진 프레임워크 시스템을 동적 구성하기 위한 방법을 도시한다. 도 1의 워크플로우 구성의 대상이 크로스도메인에 해당되는 경우에, 하나 이상의 단일도메인 적응형 워크플로우 엔진 프레임워크(10)를 총괄적으로 관리하고 제어하기 위한 크로스도메인 융합 시스템(10')을 추가로 포함하여, 크로스도메인 적응형 워크플로우 엔진 프레임워크를 구현할 수 있다.FIG. 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 to each other via a network . The cross-domain convergence system 10 'for collectively managing and controlling one or more single domain adaptive workflow engine framework 10 in the case where the object of the workflow configuration of Fig. 1 corresponds to a cross domain , A 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 the single domain workflow engine framework 10 of FIG. 1 or FIG. 2, and functions to integrate and layer various domains. It is a system that manages resources related to flow execution, assigns a part of cross-domain workflow to each domain as workflow, and executes it on the framework of each domain. Accordingly, the cross-domain fusion 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')에서 정의된 워크플로우에 따라, 해당되는 도메인에 필요한 엔진(들)을 배포할 도메인을 결정한다. 이때 엔진배포 결정의 기준은 가령, 특정 엔진의 사용이 어느 도메인에 최적인지, 이 엔진의 실행을 위한 구성품들이 해당 도메인에 존재하는지, 네트웍 부하, 성능, 네트웍내 거리 등을 고려한다. Using the system definition editor 70 'of the concept described above, the user can define a workflow, which data acquisition to acquire from which sensor, which model to select, engine to be created, The cross-domain convergence system 10 'determines a domain to which the engine (s) necessary for the corresponding domain is to be distributed, according to the workflow defined in the system definition editor 70' do. In this case, the criterion for determining the engine distribution is, for example, which domain is optimal for use of a particular engine, whether the components for executing the 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 workflow resources from the resource management unit 20 of a plurality of single domain workflow engine frameworks 10 (see FIG. 1 or 2), updates and manages the workflow resources . For example, the workflow resource may be at least one of a component resource for executing a workflow, network connection information, hardware resource information, specification information of a virtual machine, organizational configuration information, available device information of the organization, and availability status. Also, the cross-domain resource management unit 20 'periodically updates and maintains available components, hardware, network information, and device information in the domain through the 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)에 배포하고 그 실행을 제어한다.In order to process the cross-domain workflow instance specification received from the system definition editor 70 ', the cross-domain system configuration unit 30' refers to the location of the available resources and the connection method from the cross-domain resource management unit 20 ' 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 and its execution is controlled.

크로스도메인 시스템 제어부(40')는 하나 이상의 단일도메인 워크플로우 엔진 프레임워크(10)에 의해 생성된 각각의 워크플로우 실행시스템. 즉 도메인에 배포된 하나 이상의 엔진들의 실행의 시작, 종료 등의 제어를 위해 각각 단일 도메인 워크플로우 엔진 프레임워크(10) 상의 시스템 제어부(40)에 실행의 제어를 요청한다.Each cross-domain system control 40 'is created by one or more single domain workflow engine frameworks 10. That is, control of the execution of one or more engines distributed in the domain, to the system control unit 40 on the single domain workflow engine framework 10, respectively.

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

크로스도메인 자원관리부(20')는 각 도메인으로부터 받은 자원 정보, 즉, 가용한 컴퍼넌트와 하드웨어, 네트워크 정보, 도메인 내의 디바이스 정보 등을 확인하고 가용 범위 내에서 최적의 엔진 배치와 컴퍼넌트 구성의 목록을 정의하여 각 도메인의 워크플로우 엔진 프레임워크(10)에 실행을 요청한다. 각 도메인의 워크플로우 엔진 프레임워크(10)는 각자의 도메인에 할당된 엔진을 동적으로 구성하고 실행요청에 의해 엔진을 구동하여 처리를 수행한다. 이때 엔진 간의 데이터 전달은 도 10에서 언급한 바와 같이 네트워크 드라이버를 통해 직접 수행될 수도 있으며, 분산 메시지큐와 같은 메시징 시스템, 그 외 분산파일시스템 등 다양한 데이터 경로 중 하나 이상을 이용해서 전달할 수도 있다. The cross-domain resource management unit 20 'checks resource information received from each domain, that is, available components and hardware, network information, device information in the domain, etc., and defines a list of optimal engine layout and component configuration within the available range And requests execution of the workflow engine framework 10 of each domain. The workflow engine framework 10 of each domain constructs an engine assigned to each domain dynamically and drives the engine by executing an execution request to perform processing. In this case, the data transfer between the engines may be directly performed through the network driver as mentioned in FIG. 10, or may be carried out using one or more of various data paths such as a messaging system such as a distributed message queue and other distributed file systems.

각 단일도메인 워크플로우 엔진 프레임워크(10)의 시스템 제어부(40)는 엔진들의 진행상황이나 완료 등의 신호를 다시 크로스도메인 융합 시스템(10')의 크로스도메인 시스템 제어부(40')에 전달한다.The system control unit 40 of each single domain workflow engine framework 10 transmits signals such as the progress and completion of the engines to the cross domain system control unit 40 'of the cross domain fusion system 10'.

도 17은 도 16의 크로스도메인 융합 시스템(10')에서 워크플로우 명세를 받아 이를 효과적으로 배포하고 실행하기 위한 실행 절차를 도시한다. 이때의 워크플로우는 해결하고자 하는 문제나 응용에 따라 단일도메인 또는 크로스도메인 적응형 워크플로우일 수 있다. FIG. 17 shows an execution procedure for receiving the workflow specification in the cross-domain convergence system 10 'of FIG. 16 and effectively distributing and executing it. The workflow at this time 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 'defines a workflow specification including a group of engine component containers for determining a series of workflows and creating engines constituting the series of workflows by a workflow creation procedure (100). When the cross-domain convergence system 10 'receives the workflow specification from the system definition editor 70', the process of determining and distributing the distribution location of the engine component container (s) set in the workflow specification to the domain 200). When the specification of the engine (s) required on the workflow is distributed to the domain (s), all preparations for running a workflow for a single domain or for a cross domain are completed and finally the workflow is executed 300).

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

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

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

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

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

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

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

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

도 18은 스마트시티를 달성하기 위한 시나리오를 설명하기 위한 것이다. 우선, 스마트시티는 최적의 (스마트) 공공에너지 수급제어와 공공교통제어, 그리고 기타 분야의 최적제어를 통해 달성할 수 있다. 그 중 최적의 공공에너지 수급제어는 공공에너지 수급정책에 따라 최적의 공공에너지 수요제어와 공급제어를 통해 달성할 수 있다. 여기서 스마트 공공에너지 수요제어는, 최적의 가로등제어와 안개제어(예컨대, 안개제거장치의 제어), 기타 최적의 공공장치 제어를 통해서 달성할 수 있다. 이 중 최적의 가로등제어는, 예측된 도로별 교통량, 예측된 기상상태에 따른 최적의 도로교통제어정책을 참조하여 달성할 수 있다. 도로별 교통량예측은 도로별 교통량을 모니터링결과를 참조하여 예측에 활용해 달성하는 것이 가능하다.Figure 18 is intended to illustrate scenarios for achieving Smart City. First, Smart City can be achieved through optimal (smart) public energy supply and demand control, public traffic control, and optimal control in other areas. The optimal public energy supply and demand control can be achieved through 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 streetlight control and fog control (eg, control of fog removal devices) and other optimal public device controls. The optimal streetlight control can be achieved by referring to an optimal road traffic control policy according to predicted road traffic volume and predicted weather conditions. It is possible to predict the traffic volume by road using the traffic volume per road by referring to the monitoring result.

도 19는 도 18의 스마트시티를 달성하기 위하여 구성한 크로스도메인 워크플로우 엔진 프레임워크의 일 실시형태를 도시한다.Figure 19 is a cross-domain workflow < RTI ID = 0.0 > Fig. 4 shows an embodiment of an engine framework. Fig.

우선, 도로교통량 모니터링은 다양한 교통센서로부터 센싱데이터를 수집하는 엔진과, 이 수집엔진이 수집한 센싱정보를 읽어 총계, 평균과 같은 교통량 통계를 위한 오퍼레이션 처리를 하는 교통량통계 처리엔진과, 외부의 요청에 대해 교통량 통계처리 결과를 응답하는 교통량통계 서빙 엔진으로 구성된 도로교통량 모니터링 워크플로우(91)를 통해 엔진프레임워크에서 실행함으로써 목적하는 시스템을 구성할 수 있다.First, the traffic volume monitoring includes an engine for collecting sensing data from various traffic sensors, a traffic statistical processing engine for reading the sensing information collected by the collection engine and performing operations for traffic statistics such as totals and averages, And a traffic volume statistical serving engine that responds to the result of the traffic amount statistic processing for the traffic amount monitoring processing workflow 91. [

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

기상예측은, 기상정보를 수집하고 적절하게 처리하는 기상정보수집 엔진과, 기계학습모델 기반으로 기상을 예측하는 기상예측 엔진과, 기상예측결과를 서빙하기 위한 기상예측 서빙 엔진으로 구성된 기상 예측 워크플로우(93)를 정의하고 실행함으로써 목적하는 시스템을 구성할 수 있다.The weather prediction includes a weather information collection engine for collecting and appropriately processing weather information, a weather forecasting engine for predicting weather based on a machine learning model, and a weather forecasting workflow comprising a weather forecasting serving engine for serving weather forecasting The target system can be configured by defining and executing the program 93.

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

스마트가로등제어는 상기에서 기술한 교통량예측 서빙 엔진과 기상예측 서빙 엔진에 각각 도로별 교통량예측결과 기상예측결과를 질의하기 위한 오퍼레이션과 그 결과를 상기 상황별 도로교통 제어 추천 엔진에 제공하여 필요한 도로교통제어를 추론하여 얻기 위한 오퍼레이션을 포함하여 외부의 요청에 응답하는 스마트가로등제어 추천 엔진을 생성하는 스마트가로등제어 워크플로우(94)를 정의하여 실행함으로써 목적을 달성하기 위한 시스템을 구성할 수 있다. The smart streetlight control provides an operation for querying the traffic forecasting serving engine and the weather forecasting serving engine described above to the above-mentioned road traffic control recommendation engine, A smart streetlight control workflow 94 that creates a smart streetlight control recommendation engine that responds to requests from outside, including operations for inferring control, can be configured and executed to configure the system to accomplish the objectives.

그 밖에 설명하지 않은 도 18에 도시된 시나리오들은 위와 유사한 방법으로 각각의 워크플로우를 구성함으로써 각각의 목적을 달성하는 시스템을 동적으로 구성할 수 있다.The scenarios shown in Fig. 18, which are not explained otherwise, can dynamically configure a system that achieves each objective by constructing each workflow in a manner similar 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)로 구성할 수 있다.Figure 20 illustrates one embodiment of a smart streetlight control recommendation engine configuration in a workflow 94 configuration for smart streetlight control among the scenarios shown in Figure 19; The smart streetlight control recommendation engine includes a Runner component 326 for driving a RESTful Server 325 for responding to external requests and an operator for inquiring weather forecast results when a request is received by the RESTful server 325 An operator 323a for querying the weather forecasting engine 93 'to obtain results to be predicted, an operator 323c for inquiring the traffic amount prediction engine 92' Generates the situation information by receiving the obtained result, inquires the situation-specific road traffic control recommendation engine 90 'by using the generated situation information, obtains the traffic control for each road according to the situation, extracts the streetlight control policy, An operator 323b for transferring the data to the server 325 and a controller 328 for controlling the flow relationship of logic between the runner 326 and the operator.

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

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

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

도로별 교통량예측 워크플로우(92)의 도로교통량 모니터링 워크플로우의 교통량예측 엔진과 교통량예측 서빙 엔진은, 수집엔진의 수집 결과를 이용하여 예측을 수행해야 하므로 수집엔진이 배포된 도메인과의 네트워크 비용을 우선으로 하여 엔진을 배포한다. The Traffic Estimation Engine and the Traffic Estimation Serving Engine of the traffic flow monitoring workflow of the road traffic forecasting workflow (92) must predict the network cost with the domain where the collection engine is deployed because the forecasting should be performed using the collection result of the collection engine First, distribute the engine.

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

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

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

Claims (20)

사용자에 의해 정의된 워크플로우의 실행에 필요한 워크플로우 속성명세 컴퍼넌트와 엔진 컴퍼넌트가 포함된 자원을 관리하는 자원관리부,
속성명세 컴퍼넌트를 조립하고 워크플로우 실행에 필요한 엔진 컴퍼넌트를 동적으로 조합하여 워크플로우 명세에 따라 필요한 엔진 컴퍼넌트 컨테이너들을 구성하여 엔진을 생성하는 시스템 구성부,
워크플로우 속성명세에 정의된 방식에 따라 상기 시스템 구성부에 의해 생성되는 하나 이상의 엔진을 구동하여 실행을 제어하는 시스템 제어부를 포함하는 워크플로우 엔진 프레임워크.
A resource management unit for managing a resource including a workflow attribute specification component and an engine component necessary for execution of a workflow defined by a user,
A system configuration unit for assembling the attribute specification components and dynamically combining the engine components necessary for executing the workflow to construct the necessary engine component containers according to the workflow specification to generate the engine,
And a system control unit for controlling execution by driving one or more engines generated by the system configuration unit in accordance with the manner defined in the workflow attribute specification.
제1항에서, 상기 시스템 구성부에 의해 동적으로 생성된 엔진 컴퍼넌트의 조합으로 구성된 엔진이 엔진 인스턴스의 형태로 저장되는 실행 인스턴스부를 추가로 포함하는 워크플로우 엔진 프레임워크. The workflow engine framework according to claim 1, further comprising an execution instance portion in which an engine configured by a combination of engine components dynamically generated by the system configuration portion is stored in the form of an engine instance. 제1항에서, 상기 자원관리부는
워크플로우 인스턴스의 컴퍼넌트 특성 또는 속성을 결정짓는 속성명세가 포함된 속성명세 컴퍼넌트와 그 목록을 관리하는 속성명세 컴퍼넌트 관리부,
실행을 위한 엔진 컴퍼넌트와 그 목록을 관리하는 엔진 컴퍼넌트 관리부를 포함하는 워크플로우 엔진 프레임워크.
The apparatus of claim 1, wherein the resource management unit
An attribute specification component including an attribute specification for determining a component property or attribute of the workflow instance, and an attribute specification for managing the attribute specification component,
A workflow engine framework that includes an engine component for execution and an engine component manager that manages the list.
제3항에서, 상기 자원관리부는
기존에 작성되어 저장된 워크플로우 명세 인스턴스를 관리하는 워크플로우 명세 인스턴스 관리부를 추가로 포함하는 워크플로우 엔진 프레임워크.
4. The apparatus of claim 3, wherein the resource management unit
A workflow engine framework further comprising a workflow specification instance management unit for managing previously created and stored workflow specification instances.
제1항에서, 상기 시스템 구성부는
워크플로우 명세를 속성명세 컴퍼넌트로 바인딩하여 일련의 속성명세 컴퍼넌트를 생성하는 워크플로우 속성명세조립부,
조립한 속성명세 컴퍼넌트로부터, 정의된 엔진 컴퍼넌트 정보를 추출하여 속성명세 컴퍼넌트와 엔진 컴퍼넌트를 바인딩하는 과정을 통해 일련의 엔진을 구성하여 워크플로우 실행 플랫폼을 구성하는 워크플로우 구성부를 포함하는 워크플로우 엔진 프레임워크.
The system of claim 1,
A workflow attribute specification assembly for binding a workflow specification to an attribute specification component to create a series of attribute specification components,
And a workflow configuration unit for configuring a workflow execution platform by configuring a series of engines by extracting the defined engine component information from the assembled attribute specification component and binding the attribute specification component and the engine component, work.
제5항에서, 상기 워크플로우 구성부는
워크플로우를 구성하는 엔진 컴퍼넌트와 이 엔진 컴퍼넌트의 특성을 결정짓는 파라미터를 정의하는 속성명세 컴퍼넌트의 규약에 따라 엔진 컴퍼넌트와 속성명세 컴퍼넌트를 바인딩하여 워크플로우를 실행하기 위한 엔진이 엔진 인스턴스의 형태로 저장되는 워크플로우 실행 인스턴스부를 추가로 포함하는 워크플로우 엔진 프레임워크.
The method of claim 5, wherein the workflow constructing unit
An engine for executing a workflow by binding an engine component and an attribute specification component in accordance with the specification of an attribute specification component that defines the engine component that constitutes the workflow and the parameter that determines the characteristics of the engine component is stored in the form of an engine instance A workflow engine framework that further includes a workflow execution instance portion.
제1항에서, 상기 워크플로우 명세는 사용자에 의해 시스템 정의편집기에 의해 정의되어 워크플로우 명세 화일의 형태로 상기 시스템 구성부에 제출되되, 이 시스템 정의편집기는
각종 엔진 유형을 제시하고 사용자가 이들 중 필요한 것들을 선택할 수 있도록 하는 엔진유형 선택부,
사용자가 컴퍼넌트 타입과 각 타입별 엔진 컴퍼넌트를 선택할 수 있도록 컴퍼넌트 타입별로 다양한 엔진 컴퍼넌트 목록을 제공하는 컴퍼넌트 선택부,
컴퍼넌트 선택부에서 선택된 엔진컴퍼넌트의 속성이 제시되고 사용자는 속성을 조회하여 이를 선택 및 편집할 수 있도록 하는 컴퍼넌트 속성 선택/편집부를 포함하는 워크플로우 엔진 프레임워크.
2. The system of claim 1, wherein the workflow specification is defined by a system definition editor by a user and submitted to the system configuration in the form of a workflow specification file,
An engine type selection unit for presenting various engine types and allowing the user to select necessary ones among them,
A component selection unit for providing various engine component lists for each component type so that a user can select a component type and an engine component for each type,
And a component attribute selection / editing unit for presenting the attributes of the engine component selected by the component selection unit and allowing the user to select and edit the attribute.
제1항에서, 상기 엔진은,
하나 이상의 데이터 출발지로부터 데이터를 가져오는 입력기,
상기 입력기로부터 데이터를 받아 처리하는 하나 이상의 단위처리기,
내부에서 처리한 데이터를 하나 이상의 데이터 종착지에 출력하는 하나 이상의 출력기,
입력한 데이터를 처리하기 위한 별도의 실행프로그램 또는 플랫폼을 실행하거나 세션을 관리하는 실행기,
이러한 데이터를 입력기를 통해 입력하여 실행기 상에서 처리하고 이를 출력하기 위한 일련의 제어를 담당하는 제어기를 포함하는 워크플로우 엔진 프레임워크.
2. The engine of claim 1,
An input device for fetching data from one or more data origin,
One or more unit processors for receiving and processing data from the input device,
One or more output devices for outputting internally processed data to one or more data destinations,
A separate execution program for processing input data or a launcher for executing a platform or managing a session,
And a controller for inputting such data through an input device, for processing on a launcher and for controlling a series of outputs for outputting the data.
제8항에서, 상기 제어기는,
상기 입력기, 단위처리기, 출력기의 순으로 노드들이 구성되는 경우에, 데이터를 순차적으로 파이프라이닝하여 다음 노드로 전달하는 방식으로 실행하도록 제어하는 순차처리 방식, 각각의 노드가 동시에 실행되도록 하는 동시처리 방식, 이 둘을 결합한 동시/순차처리 방식 중 어느 하나로 제어를 수행하는 워크플로우 엔진 프레임워크.
9. The apparatus of claim 8,
A sequential processing method in which, when nodes are configured in the order of the input unit, the unit processor, and the output unit, sequential pipelining of data and transfer to the next node are performed; a simultaneous processing method , And a concurrent / sequential processing method that combines the two.
제8항에서, 상기 제어기는
하나 이상의 단위처리기가 상기 입력기로부터 데이터를 받아서 순차적으로 파이프라이닝에 의한 데이터를 처리함과 함께, 하나 이상의 단위처리기가 구동되어 동시처리를 실행하도록 제어하는 워크플로우 엔진 프레임워크.
9. The apparatus of claim 8, wherein the controller
Wherein one or more unit processors receive data from the input unit and sequentially process data by pipelining and at least one unit processor is driven to execute simultaneous processing.
제8항에서,
상기 워크플로우 엔진 프레임워크에 하나 이상의 상기 워크플로우 실행 엔진이 포함되며,
이 경우에 다수의 엔진 사이에는, 하나의 엔진의 출력기에서 출력될 데이터의 종착지가 다른 엔진의 입력기의 데이터 출발지로 파이프라인 방식으로 전달되도록 데이터 전달경로가 사용되는 워크플로우 엔진 프레임워크.
9. The method of claim 8,
Wherein the workflow engine framework includes one or more of the workflow execution engines,
In this case, a data transfer path is used between the plurality of engines so that the destination of the data to be output from the output device of one engine is transferred in a pipeline manner to the data origin of the input device of the other engine.
제11항에서, 상기 하나 이상의 엔진들은 서로 다른 물리적 환경에 위치하며, 상이한 종류의 실행기를 포함하는 워크플로우 엔진 프레임워크.12. The workflow engine framework of claim 11, wherein the one or more engines are located in different physical environments and include different types of launchers. 제11항에서, 상기 데이터 전달경로는 하나 이상의 상이한 유형의 데이터 전달경로를 포함하여, 데이터 출발지 및 종착지별로 파이프라이닝 처리하는 것을 특징으로 하는 워크플로우 엔진 프레임워크.12. The workflow engine framework of claim 11, wherein the data delivery path comprises one or more different types of data delivery paths, pipelining by data origin and destination. 사용자에 의해 정의된 워크플로우의 실행에 필요한 워크플로우 속성명세 컴퍼넌트와 엔진 컴퍼넌트가 포함된 자원을 관리하는 자원관리부; 속성명세 컴퍼넌트를 조립하고 워크플로우 실행에 필요한 엔진 컴퍼넌트를 동적으로 조합하여 워크플로우 명세에 따라 필요한 엔진 컴퍼넌트 컨테이너들을 구성하여 엔진을 생성하는 시스템 구성부; 워크플로우 속성명세에 정의된 방식에 따라 상기 시스템 구성부에 의해 생성되는 하나 이상의 엔진을 구동하여 실행을 제어하는 시스템 제어부를 포함하는 둘 이상의 단일도메인 워크플로우 엔진 프레임워크,
상기 둘 이상의 단일도메인 워크플로우 엔진 프레임워크와 네트워크로 연결되어, 사용자가 정의한 크로스도메인 워크플로우에 따라 크로스도메인에 포함된 각 단일도메인에 필요한 엔진을 배포할 단일도메인을 결정하는 크로스도메인 융합 시스템(10')을 포함하는, 크로스도메인 적응형 워크플로우 엔진 프레임워크.
A resource management unit for managing a resource including a workflow attribute specification component and an engine component necessary for execution of a workflow defined by a user; A system configuration unit for assembling the attribute specification components and dynamically combining the engine components necessary for executing the workflow to construct the engine component containers according to the workflow specification to generate the engine; At least one single domain workflow engine framework comprising a system controller for driving one or more engines generated by the system component according to a manner defined in a workflow attribute specification to control execution,
A cross domain convergence system (10) for determining a single domain to be connected to the two or more single domain workflow engine frameworks to distribute an engine required for each single domain included in the cross domain according to a user defined cross domain workflow &Quot;).≪ / RTI >
제14항에서, 상기 크로스도메인 융합 시스템은
단일도메인 워크플로우 엔진 프레임워크의 자원관리부로부터 주기적으로 워크플로우 자원들을 보고받고 이들을 갱신하여 관리하고, 각 도메인으로부터 받은 자원 정보를 통해 가용한 컴퍼넌트와 하드웨어, 네트워크 정보, 도메인 내의 디바이스 정보 등을 주기적으로 갱신하여 유지하는 크로스도메인 자원관리부,
크로스도메인 워크플로우 명세를 처리하기 위해 하나의 크로스도메인 워크플로우 명세를 다수의 단일도메인 워크플로우 명세로 분할하여 각 엔진 컴퍼넌트 컨테이너의 배포위치를 결정하고 배포하는 크로스도메인 시스템 구성부를 포함하는 크로스도메인 적응형 워크플로우 엔진 프레임워크 엔진 프레임워크.
15. The method of claim 14, wherein the cross-domain fusion system comprises
It periodically reports the workflow resources from the resource manager of the single domain workflow engine framework, updates and manages the workflow resources, periodically collects available components, hardware, network information, and device information in the domain through resource information received from each domain. A cross domain resource management unit for updating and maintaining,
Domain cross-domain workflow specification to divide one cross-domain workflow specification into a plurality of single domain workflow specifications to determine and distribute a deployment location of each engine component container to handle a cross-domain workflow specification, Workflow Engine Framework.
제14항에서, 상기 크로스도메인 융합 시스템은 크로스도메인에 포함된 각 단일도메인에 필요한 엔진을 배포할 단일도메인을 결정하기 위하여
1) 각 엔진에 필요한 데이터의 출발지와 도착지가 같은 도메인에 존재하는지 파악하는 수단,
2) 엔진의 데이터 출발지와 도착지가 같은 도메인에 존재하면 해당 도메인 내 자원을 이용하여 최초 데이터 출발지로부터 최종 도착지까지의 엔진 구성이 가능한지를 상기 자원관리부를 조회하여 판단하는 수단,
3) 엔진 구성이 가능하다면, 해당 도메인에 엔진을 동적으로 구성하도록 엔진 명세를 배포하는 수단,
4) 수단 1)의 판단결과 엔진의 데이터 출발지와 도착지가 같은 도메인에 존재하지 않는 경우에, 또는, 수단 2)에서 엔진 구성이 불가한 것으로 판단되면 동일한 엔진 컴퍼넌트 구성이 가능한 타 도메인을 검색하여 대체가능한 후보도메인군을 결정하는 수단,
5) 후보 도메인군이 결정되면 그들 중 대체 도메인을 결정하기 위하여 비용 산정을 수행하는 수단,
6) 배포 도메인 선정정책을 적용하여 배포해야 할 최적의 도메인을 선정하는 수단을 포함하는 크로스도메인 적응형 워크플로우 엔진 프레임워크.
15. The method of claim 14, wherein the cross-domain fusion system is adapted to determine a single domain to distribute the engine needed for each single domain included in the cross domain
1) means for determining whether the data required for each engine exists in the same domain,
2) means for inquiring of the resource management unit whether an engine configuration from an initial data source to a final destination is possible using resources in the domain if the data source and destination of the engine are in the same domain;
3) means for distributing the engine specification to dynamically configure the engine in the domain if possible,
4) If the data source and destination of the engine do not exist in the same domain as a result of the judgment of the means 1) or if it is judged that the engine configuration is impossible in the means 2), another domain capable of the same engine component configuration is searched and replaced Means for determining a possible candidate domain group,
5) means for performing cost estimation to determine an alternative domain among the candidate domain groups if they are determined,
6) A cross-domain adaptive workflow engine framework that includes means for selecting an optimal domain to deploy by applying distribution domain selection policies.
제14항에서, 상기 워크플로우 명세는 사용자에 의해 시스템 정의편집기에 의해 정의되어 워크플로우 명세 화일의 형태로 상기 크로스도메인 융합 시스템에 제출되되, 이 시스템 정의편집기는
각종 엔진 유형을 제시하고 사용자가 이들 중 필요한 것들을 선택할 수 있도록 하는 엔진유형 선택부,
사용자가 컴퍼넌트 타입과 각 타입별 엔진 컴퍼넌트를 선택할 수 있도록 컴퍼넌트 타입별로 다양한 엔진 컴퍼넌트 목록을 제공하는 컴퍼넌트 선택부,
컴퍼넌트 선택부에서 선택된 엔진컴퍼넌트의 속성이 제시되고 사용자는 속성을 조회하여 이를 선택 및 편집할 수 있도록 하는 컴퍼넌트 속성 선택/편집부를 포함하는 크로스도메인 적응형 워크플로우 엔진 프레임워크.
15. The system of claim 14 wherein the workflow specification is defined by a user by a system definition editor and submitted to the cross domain convergence system in the form of a workflow specification file,
An engine type selection unit for presenting various engine types and allowing the user to select necessary ones among them,
A component selection unit for providing various engine component lists for each component type so that a user can select a component type and an engine component for each type,
A cross-domain adaptive workflow engine framework including a component attribute selection / editing unit that presents attributes of engine components selected by the component selection unit and allows the user to select and edit the attributes.
제14항에서, 상기 엔진은,
하나 이상의 데이터 출발지로부터 데이터를 가져오는 입력기,
상기 입력기로부터 데이터를 받아 처리하는 하나 이상의 단위처리기,
내부에서 처리한 데이터를 하나 이상의 데이터 종착지에 출력하는 하나 이상의 출력기,
입력한 데이터를 처리하기 위한 별도의 실행프로그램 또는 플랫폼을 실행하거나 세션을 관리하는 실행기,
이러한 데이터를 입력기를 통해 입력하여 실행기 상에서 처리하고 이를 출력하기 위한 일련의 제어를 담당하는 제어기를 포함하는 크로스도메인 적응형 워크플로우 엔진 프레임워크.
15. The engine of claim 14,
An input device for fetching data from one or more data origin,
One or more unit processors for receiving and processing data from the input device,
One or more output devices for outputting internally processed data to one or more data destinations,
A separate execution program for processing input data or a launcher for executing a platform or managing a session,
A cross domain adaptive workflow engine framework comprising a controller for inputting such data through an input device and for processing on a launcher and for a series of controls for outputting the same.
사용자에 의해 정의된 워크플로우의 실행에 필요한 워크플로우 속성명세 컴퍼넌트를 조립하고, 워크플로우 실행에 필요한 엔진 컴퍼넌트를 동적으로 조합하여 엔진 컴퍼넌트 컨테이너들을 구성하여 워크플로우 실행 엔진을 생성하는 방법으로서,
워크플로우 명세를 입력받아, 이로부터, 엔진을 구성할 엔진 컴퍼넌트들에 대한 속성명세가 담기는 속성명세 컴퍼넌트 인스턴스를 생성하는 단계,
생성한 속성명세 컴퍼넌트 인스턴스를 엔진 컴퍼넌트의 생성자 파라미터로 지정하여 엔진 컴퍼넌트 인스턴스를 생성하는 단계,.
엔진 컴퍼넌트 컨테이너에 바인딩하여서 엔진 컴퍼넌트 컨테이너 인스턴스를 생성자 파라미터로 하여, 엔진을 생성하는 단계를 포함하는 워크플로우 실행 엔진 생성 방법.
A method for constructing a workflow execution engine by assembling workflow attribute specification components required for execution of a workflow defined by a user and organizing engine component containers by dynamically combining engine components required for execution of a workflow,
Receiving a workflow specification and generating an attribute specification component instance containing an attribute specification for engine components to configure the engine,
Generating an engine component instance by designating the generated attribute specification component instance as a generator parameter of the engine component;
Creating an engine by binding to an engine component container and using an engine component container instance as a constructor parameter.
청구항 14의 크로스도메인 적응형 워크플로우 엔진 프레임워크에 포함된 상기 크로스도메인 융합 시스템이, 크로스도메인에 포함된 각 단일도메인에 필요한 엔진을 배포할 단일도메인을 결정하는 방법으로서,
1) 각 엔진에 필요한 데이터의 출발지와 도착지가 같은 도메인에 존재하는지 파악하는 단계,
2) 엔진의 데이터 출발지와 도착지가 같은 도메인에 존재하면 해당 도메인 내 자원을 이용하여 최초 데이터 출발지로부터 최종 도착지까지의 엔진 구성이 가능한지를 상기 자원관리부를 조회하여 판단하는 단계,
3) 엔진 구성이 가능하다면, 해당 도메인에 엔진을 동적으로 구성하도록 엔진 명세를 배포하는 단계,
4) 단계 1)의 판단결과 엔진의 데이터 출발지와 도착지가 같은 도메인에 존재하지 않는 경우에, 또는, 단계 2)에서 엔진 구성이 불가한 것으로 판단되면, 동일한 엔진 컴퍼넌트 구성이 가능한 타 도메인을 검색하여 대체가능한 후보도메인군을 결정하는 단계,
5) 후보 도메인군이 결정되면 그들 중 대체 도메인을 결정하기 위하여 비용 산정을 수행하는 단계,
6) 배포 도메인 선정정책을 적용하여 배포해야 할 최적의 도메인을 선정하는 단계를 포함하는 엔진 배포 도메인 결정 방법.
The method of claim 14, wherein the cross-domain convergence system included in the cross-domain adaptive workflow engine framework is a method for determining a single domain to deploy an engine needed for each single domain included in a cross domain,
1) determining whether the source and destination of data necessary for each engine exists in the same domain,
2) If the data source and the destination of the engine exist in the same domain, the step of inquiring and determining whether the engine configuration from the initial data source to the final destination is possible using the resources in the corresponding domain,
3) if engine configuration is possible, distributing the engine specification to dynamically configure the engine in the domain,
4) If it is determined in step 1) that the data origin and the destination of the engine do not exist in the same domain, or if it is determined in step 2) that the engine configuration is impossible, another domain capable of the same engine component configuration is searched Determining an alternate candidate domain group,
5) If the candidate domain group is determined, performing cost estimation to determine an alternative domain among them,
6) applying a distribution domain selection policy to select an optimal domain to distribute.
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 true KR20190043446A (en) 2019-04-26
KR102259927B1 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)

Cited By (8)

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

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115906499A (en) * 2022-12-05 2023-04-04 中国航空发动机研究院 Heterogeneous system-oriented aircraft engine integrated simulation workflow engine system

Citations (4)

* 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
KR20140102478A (en) * 2013-02-14 2014-08-22 한국전자통신연구원 Workflow job scheduling apparatus and method
KR20150070606A (en) * 2013-12-17 2015-06-25 부산대학교 산학협력단 Service composition framework for transportation big data service

Family Cites Families (3)

* 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

Patent Citations (4)

* 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
KR20140102478A (en) * 2013-02-14 2014-08-22 한국전자통신연구원 Workflow job scheduling apparatus and method
KR20150070606A (en) * 2013-12-17 2015-06-25 부산대학교 산학협력단 Service composition framework for transportation big data service

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111091193A (en) * 2019-10-31 2020-05-01 武汉大学 Domain-adapted privacy protection method based on differential privacy and oriented to deep neural network
CN111091193B (en) * 2019-10-31 2022-07-05 武汉大学 Domain-adapted privacy protection method based on differential privacy and oriented to deep neural network
KR20210057679A (en) * 2019-11-12 2021-05-21 한국전자통신연구원 workflow engine framework for cross-domain extension
KR20220042941A (en) * 2020-09-28 2022-04-05 주식회사 마인즈랩 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
WO2022119199A1 (en) * 2020-12-02 2022-06-09 주식회사 파트리지시스템즈 Hierarchical data storage-based data management system and operation method thereof
KR20220078327A (en) 2020-12-03 2022-06-10 주식회사 이노커스 Method and apparatus for managing learning medel for real-time analysis and prediction
KR20220162466A (en) 2021-06-01 2022-12-08 성균관대학교산학협력단 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
CN114816368A (en) * 2022-06-23 2022-07-29 深圳市瓴码云计算有限公司 Object-oriented business process development system, method, device and storage medium

Also Published As

Publication number Publication date
KR102259927B1 (en) 2021-06-03
JP2019075077A (en) 2019-05-16
JP7118726B2 (en) 2022-08-16

Similar Documents

Publication Publication Date Title
KR102259927B1 (en) Workflow engine framework
CN112953778B (en) Intention-driven-based service arrangement system and method in intelligent fusion identification network
US11036539B2 (en) Workflow engine framework
US20230067777A1 (en) Distributed data nodes for flexible data mesh architectures
US8751420B2 (en) Generic reasoner distribution of resources using a plurality of shallow reasoners, and a predictor server
US9185006B2 (en) Exchange of server health and client information through headers for request management
Köksal et al. Obstacles in data distribution service middleware: a systematic review
KR102584447B1 (en) workflow engine framework for cross-domain extension
Benamer et al. Latency-aware placement heuristic in fog computing environment
US11099893B1 (en) Systems and methods for orchestrating seamless, distributed, and stateful high performance computing
Valdivieso Caraguay et al. Monitoring and discovery for self-organized network management in virtualized and software defined networks
US20230071201A1 (en) Data blending for multiple data pipelines
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
Songhorabadi et al. Fog computing approaches in smart cities: a state-of-the-art review
Plebani et al. Fog computing and data as a service: A goal-based modeling approach to enable effective data movements
Wijesekara et al. A comprehensive survey on knowledge-defined networking
Salehnia et al. An optimal task scheduling method in IoT-Fog-Cloud network using multi-objective moth-flame algorithm
US20220342899A1 (en) Method and system for provisioning workflows with proactive data transformation
Bu et al. Task scheduling in the internet of things: challenges, solutions, and future trends
Simionato et al. Survey on connectivity and cloud computing technologies: State-of-the-art applied to Agriculture 4.0
Zeydan et al. A multi-criteria decision making approach for scaling and placement of virtual network functions
US11153388B2 (en) Workflow engine framework for cross-domain extension
Kimovski et al. Multi-objective service oriented network provisioning in ultra-scale systems
US20220374443A1 (en) Generation of data pipelines based on combined technologies and licenses
US11100454B1 (en) CDD with heuristics for automated variable use-case based constrained logistics route optimization

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