KR102009576B1 - 처리 스케줄러를 이용한 워크플로우 장치 및 워크플로우 장치의 동작 방법 - Google Patents

처리 스케줄러를 이용한 워크플로우 장치 및 워크플로우 장치의 동작 방법 Download PDF

Info

Publication number
KR102009576B1
KR102009576B1 KR1020170171333A KR20170171333A KR102009576B1 KR 102009576 B1 KR102009576 B1 KR 102009576B1 KR 1020170171333 A KR1020170171333 A KR 1020170171333A KR 20170171333 A KR20170171333 A KR 20170171333A KR 102009576 B1 KR102009576 B1 KR 102009576B1
Authority
KR
South Korea
Prior art keywords
workflow
workflows
group
processing
classified
Prior art date
Application number
KR1020170171333A
Other languages
English (en)
Other versions
KR20190070627A (ko
Inventor
조완섭
김진혁
Original Assignee
충북대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 충북대학교 산학협력단 filed Critical 충북대학교 산학협력단
Priority to KR1020170171333A priority Critical patent/KR102009576B1/ko
Publication of KR20190070627A publication Critical patent/KR20190070627A/ko
Application granted granted Critical
Publication of KR102009576B1 publication Critical patent/KR102009576B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions

Abstract

처리 스케줄러를 이용한 워크플로우 장치 및 워크플로우 장치의 동작 방법이 개시된다. 처리 스케줄러를 이용한 워크플로우 장치는 복수의 워크플로우 간의 관계를 분석하는 인터페이스부와, 상기 분석된 결과에 기초하여, 상기 복수의 워크플로우에 대한 처리 순서를 결정하고, 상기 결정된 처리 순서에 따라 상기 복수의 워크플로우를 처리하는 프로세서를 포함할 수 있다.

Description

처리 스케줄러를 이용한 워크플로우 장치 및 워크플로우 장치의 동작 방법{WORKFLOW APPARATUS FOR USING PROCESS SCHEDULER AND METHOD FOR OPERATING WORKFLOW APPARATUS}
본 발명은 복수의 워크플로우에 대한 처리 순서를 결정하고, 상기 결정된 처리 순서에 따라 상기 복수의 워크플로우를 처리하는 기술에 관한 것이다.
본 발명의 배경이 되는 기술은 다음의 문헌에 개시되어 있다.
1) 등록번호: 10-1732922 (2017.04.27), "GUI 기반의 비동기 방식 코딩 시스템 및 방법"
2) 공개번호: 10-2016-0069978 (2016.06.17), "컴퓨터 실행 가능한 분석 데이터 생성 방법, 이를 수행하는 분석 데이터 생성 장치 및 이를 저장하는 기록매체"
정보시스템의 확산으로 기관 및 국가는 기관내 또는 하나의 시스템 내 데이터 활용을 넘어 여러 기관 간 또는 여러 국가 간 데이터 연계필요성이 매우 높아지고 있다.
상기 데이터 연계시, 데이터 간의 의존관계가 존재하는 경우, 데이터 간의 처리 순서를 고려해야 한다. 이때, 의존관계와 무관하게 데이터를 처리할 시, 데이터에 의미적 오류가 발생하거나, 데이터 처리 자체에 오류가 발생하게 되어, 데이터를 제대로 활용할 수 없게 된다.
따라서, 데이터 간 처리 순서를 고려하여, 데이터를 처리할 수 있게 하는 기술이 필요하다.
본 발명은 데이터와 연관된 복수의 워크플로우 간의 관계를 분석하고, 상기 분석된 결과에 기초하여, 상기 복수의 워크플로우에 대한 처리 순서를 결정한 후, 상기 결정된 처리 순서에 따라 상기 복수의 워크플로우를 처리 함으로써, 데이터를 오류없이 정상적으로 처리할 수 있게 하는 것을 목적으로 한다.
상기의 목적을 이루기 위한, 처리 스케줄러를 이용한 워크플로우 장치는 복수의 워크플로우 간의 관계를 분석하는 인터페이스부와, 상기 분석된 결과에 기초하여, 상기 복수의 워크플로우에 대한 처리 순서를 결정하고, 상기 결정된 처리 순서에 따라 상기 복수의 워크플로우를 처리하는 프로세서를 포함할 수 있다.
상기의 목적을 이루기 위한, 처리 스케줄러를 이용한 워크플로우 장치의 동작 방법은 복수의 워크플로우 간의 관계를 분석하는 단계와, 상기 분석된 결과에 기초하여, 상기 복수의 워크플로우에 대한 처리 순서를 결정하는 단계와, 상기 결정된 처리 순서에 따라 상기 복수의 워크플로우를 처리하는 단계를 포함할 수 있다.
본 발명에 따르면, 데이터와 연관된 복수의 워크플로우 간의 관계를 분석하고, 상기 분석된 결과에 기초하여, 상기 복수의 워크플로우에 대한 처리 순서를 결정한 후, 상기 결정된 처리 순서에 따라 상기 복수의 워크플로우를 처리 함으로써, 데이터를 오류없이 정상적으로 처리할 수 있게 한다.
도 1은 본 발명의 일실시예에 따른 처리 스케줄러를 이용한 워크플로우 장치의 구성을 나타내는 도면이다.
도 2는 본 발명의 일실시예에 따른 처리 스케줄러를 이용한 워크플로우 장치의 GUI 일례를 도시한 도면이다.
도 3은 본 발명의 일실시예에 따른 처리 스케줄러를 이용한 워크플로우 장치에서 사용하는 워크플로우의 구조를 도시한 도면이다.
도 4는 본 발명의 일실시예에 따른 처리 스케줄러를 이용한 워크플로우 장치에서, 워크플로우를 객체로 정의하는 일례를 설명하기 위한 도면이다.
도 5는 본 발명의 일실시예에 따른 처리 스케줄러를 이용한 워크플로우 장치에서 워크플로우를 처리하는 일례를 설명하기 위한 도면이다.
도 6은 본 발명의 일실시예에 따른 처리 스케줄러를 이용한 워크플로우 장치에서 각 워크플로우 내 결과셋을 DAG로 변환하는 일례를 도시한 도면이다.
도 7은 본 발명의 일실시예에 따른 처리 스케줄러를 이용한 워크플로우 장치에서 각 워크플로우 내 결과셋에 대한 위상정렬시 사용하는 인접 행렬에 대한 일례를 도시한 도면이다.
도 8은 본 발명의 일실시예에 따른 처리 스케줄러를 이용한 워크플로우 장치에서 각 워크플로우 내 결과셋에 대한 위상정렬시 사용하는 인접 리스트에 대한 일례를 도시한 도면이다.
도 9는 본 발명의 일실시예에 따른 처리 스케줄러를 이용한 워크플로우 장치에서 각 워크플로우 내 결과셋을 순서에 따라 정렬하는 일례를 설명하기 위한 도면이다.
도 10은 본 발명의 일실시예에 따른 처리 스케줄러를 이용한 워크플로우 장치의 동작 방법을 나타내는 흐름도이다.
이하, 첨부 도면들 및 첨부 도면들에 기재된 내용들을 참조하여 본 발명의 다양한 실시예를 상세하게 설명하지만, 본 발명이 실시예에 의해 제한되거나 한정되는 것은 아니다.
도 1은 본 발명의 일실시예에 따른 처리 스케줄러를 이용한 워크플로우 장치의 구성을 나타내는 도면이다.
도 1을 참조하면, 처리 스케줄러를 이용한 워크플로우 장치(100)는 인터페이스부(101) 및 프로세서(103)를 포함할 수 있다.
인터페이스부(101)는 복수의 워크플로우 간의 관계를 분석할 수 있다. 이때, 인터페이스부(101)는 복수의 워크플로우를 각각 입력받거나, 또는 입력되는 데이터로부터, 복수의 워크플로우를 추출할 수 있다.
여기서, 상기 복수의 워크플로우 각각은, 데이터소스, 연산자 및 결과셋을 포함할 수 있다.
인터페이스부(101)는 상기 데이터소스, 상기 연산자, 및 상기 결과셋 중 적어도 하나에 기초하여, 상기 복수의 워크플로우 간의 의존관계를 분석할 수 있다. 이때, 인터페이스부(101)는 제1 워크플로우 내 결과셋을, 데이터소스로서 공유하는 제2 워크플로우에 대해, 상기 제1 워크플로우에 의존관계가 있는 것으로 분석할 수 있다. 여기서, 공유는 제1 워크플로우 내 결과셋과 제2 워크플로우 내 데이터소스가 동일한 것을 의미할 수 있다.
프로세서(103)는 상기 분석된 결과에 기초하여, 상기 복수의 워크플로우에 대한 처리 순서를 결정하고, 상기 결정된 처리 순서에 따라 상기 복수의 워크플로우를 처리할 수 있다.
프로세서(103)는 인터페이스부(101)에 의해, 상기 제2 워크플로우가, 상기 제1 워크플로우에 의존관계가 있는 것으로 분석되는 경우, 상기 복수의 워크플로우 중에서, 의존관계가 있는 상기 제2 워크플로우를 제외한, 나머지 워크플로우를 제1 그룹으로 분류하고, 상기 제1 그룹으로 분류된 워크플로우를 첫번째 처리 순서로 결정할 수 있다.
또한, 프로세서(103)는 상기 제2 워크플로우 중에서, 상기 제1 그룹으로 분류된 워크플로우 내 결과셋을, 모든 데이터소스로서 공유하는 워크플로우를 제2 그룹으로 분류하고, 상기 제2 그룹으로 분류된 워크플로우를 두번째 처리 순서로 결정할 수 있다.
또한, 프로세서(103)는 상기 제2 그룹으로 분류되지 않는 제2 워크플로우 중에서, 상기 제1 그룹 및 상기 제2 그룹으로 분류된 워크플로우 내 결과셋을, 모든 데이터소스로서 공유하는 워크플로우를 제3 그룹으로 분류하고, 상기 제3 그룹으로 분류된 워크플로우를 세번째 처리 순서로 결정할 수 있다.
한편, 프로세서(103)는 동일한 그룹으로 분류된 상기 워크플로우를 동시에 처리할 수 있다. 예컨대, 프로세서(103)는 제1 워크플로우 처리시, 제1 워크플로우 내 데이터소스에, 제1 워크플로우 내 연산자를 적용하여, 제1 워크플로우 내 결과셋을 도출할 수 있다. 이때, 프로세서(103)는 제2 워크플로우가 제1 워크플로우에 의존관계가 있는 경우, 상기 도출된 결과셋을 제2 워크플로우 내 데이터소스로서 사용할 수 있다.
도 2는 본 발명의 일실시예에 따른 처리 스케줄러를 이용한 워크플로우 장치의 GUI(Graphical User Interface) 일례를 도시한 도면이다.
도 2를 참조하면, 처리 스케줄러를 이용한 워크플로우 장치는 다양한 복수의 워크플로우를 작성할 수 있게 하는 인터페이스를 제공할 수 있다. 이때, 워크플로우의 구조는 예컨대, 도 3에 도시된 바와 같다.
도 3은 본 발명의 일실시예에 따른 처리 스케줄러를 이용한 워크플로우 장치에서 사용하는 워크플로우의 구조를 도시한 도면이다.
도 3을 참조하면, 워크플로우는 예컨대, 3단계로서 데이터소스(DataSouce)(301), 연산자(Operator)(302) 및 결과셋(ResultSet)(303)을 포함하여 구성될 수 있으며, 유한 상태 기계(Finite State Machine)로 표현될 수 있다.
이때, 데이터소스 또는 결과셋은 피연산자로서, 연산자에 전달될 수 있다.
도 4는 본 발명의 일실시예에 따른 처리 스케줄러를 이용한 워크플로우 장치에서, 워크플로우를 객체로 정의하는 일례를 설명하기 위한 도면이다.
도 4를 참조하면, 처리 스케줄러를 이용한 워크플로우 장치는 워크플로우 내 3단계를, 워크플로우태스크(WorkFlowTask) 객체로 정의할 수 있다.
QueryResolver는 WorkFlowTask 객체의 queryForTask 인스턴스 변수에 질의를 생성하기 위한 객체이다.
QueryResolver의 buildQuery 메서드는 WorkFlowTask 객체의 dataSource, operator, resultSet 등의 인스턴스 변수를 전달인자로 받고 이들을 기반으로 질의를 생성한다.
여기서, QueryResolver를 제외한 나머지 도메인 객체들은 getter와 setter에 해당하는 메서드 표기를 생략하였다.
도 5는 본 발명의 일실시예에 따른 처리 스케줄러를 이용한 워크플로우 장치에서 워크플로우를 처리하는 일례를 설명하기 위한 도면이다.
도 5를 참조하면, 처리 스케줄러를 이용한 워크플로우 장치는 복수의 워크플로우를 분석하고, 분석한 결과에 기초하여 상기 복수의 워크플로우를 처리할 수 있다.
복수의 워크플로우는 각각 데이터소스, 연산자 및 결과셋을 포함하는 구조일 수 있다. 복수의 워크플로우는 예컨대, 데이터소스1, 필터(filter)(연산자), 결과1로 구성되는 워크플로우#1(501), 데이터소스2, 필터, 결과2로 구성되는 워크플로우#2(502), 데이터소스3, 필터, 결과3로 구성되는 워크플로우#3(503)을 포함할 수 있다. 또한, 복수의 워크플로우는 결과1(데이터소스), 결과2(데이터소스), 조인(join)(연산자), 결과4로 구성되는 워크플로우#4(504) 및 결과3(데이터소스), 결과4(데이터소스), 조인(연산자), 결과5로 구성되는 워크플로우#5(505)을 더 포함할 수 있다. 이때, 워크플로우#5(505) 내 조인 연산자는 워크플로우#4(504) 내 조인 연산자가 수행된 후에 수행해야 한다.
처리 스케줄러를 이용한 워크플로우 장치는 각 워크플로우 간의 연산 관계를 확인하고, 확인한 연산관계에 기초하여, 각 워크플로우 내 결과셋(또는, 워크플로우)을 도 6에 도시된 바와 같이, DAG(Directed Acyclic Graph)로 변환할 수 있다. 이후, 처리 스케줄러를 이용한 워크플로우 장치는 상기 변환된 각 워크플로우 내 결과셋에 대해, 위상정렬(Topology Sorting)을 수행할 수 있다.
상기 위상정렬시, 처리 스케줄러를 이용한 워크플로우 장치는 예컨대, 도 7에 도시된 인접 행렬(Adjacency matrix) 또는 도 8에 도시된 인접 리스트(Adjacency List)를 활용하여, 각 워크플로우 내 결과셋 간의 위상정렬을 수행할 수 있다.
이때, 처리 스케줄러를 이용한 워크플로우 장치는 DAG에서 점선으로 연결된 두 개의 결과셋 각각에 대해, 인접 행렬에서는 해당 행과 열이 교차하는 부분에, 마킹처리('1')하고, 인접 리스트에서는 두 개의 결과셋 각각을 나열할 수 있다.
처리 스케줄러를 이용한 워크플로우 장치는 각 워크플로우 내 결과셋 간의 위상정렬에 기초하여, 도 9에 도시된 바와 같이, 결과1, 결과2, 결과3을 '1순서'에 정렬하고, 결과4를 '2순서'에 정렬하며, 결과4를 '3순서'에 정렬할 수 있다.
이후, 처리 스케줄러를 이용한 워크플로우 장치는 상기 정렬 순서에 기초하여, 결과1, 결과2, 결과3에 각각 관련한 워크플로우#1(501), 워크플로우#2(502) 및 워크플로우#3(503)에 대해, 첫번째 처리 순서로 결정하고, 결과4에 관련한 워크플로우#4(504)에 대해, 두번째 처리 순서로 결정하며, 결과3에 관련한 워크플로우#5(505)에 대해, 세번째 처리 순서로 결정할 수 있다. 이때, 처리 스케줄러를 이용한 워크플로우 장치는 상기 결정된 처리 순서에 따라, 각 워크플로우를 처리할 수 있다.
상기 처리 순서를 결정하는 다른 일례로서, 처리 스케줄러를 이용한 워크플로우 장치는 먼저, 제1 워크플로우 내 결과셋을, 데이터소스로서 공유하는 제2 워크플로우에 대해, 상기 제1 워크플로우에 의존관계가 있는 것으로 분석할 수 있다. 예컨대, 처리 스케줄러를 이용한 워크플로우 장치는 워크플로우#1(501) 내 결과1 및 워크플로우#2(502) 내 결과2를, 데이터소스로서 공유하는 워크플로우#4(504)에 대해, 워크플로우#1(501) 및 워크플로우#2(502)에 의존관계가 있는 것으로 분석하고, 워크플로우#3(503) 내 결과3 및 워크플로우#4(504) 내 결과4를, 데이터소스로서 공유하는 워크플로우#5(505)에 대해, 워크플로우#3(503) 및 워크플로우#4(504)에 의존관계가 있는 것으로 분석할 수 있다.
이후, 처리 스케줄러를 이용한 워크플로우 장치는 상기 복수의 워크플로우 중에서, 의존관계가 있는 상기 제2 워크플로우(워크플로우#4(504), 워크플로우#5(505))를 제외한, 나머지 워크플로우(워크플로우#1(501), 워크플로우#2(502), 워크플로우#3(503))를 제1 그룹으로 분류하고, 상기 제1 그룹으로 분류된 워크플로우를 첫번째 처리 순서로 결정할 수 있다.
또한, 처리 스케줄러를 이용한 워크플로우 장치는 상기 제2 워크플로우(워크플로우#4(504), 워크플로우#5(505)) 중에서, 상기 제1 그룹으로 분류된 워크플로우 내 결과셋을, 모든 데이터소스로서 공유하는 워크플로우를 제2 그룹으로 분류하고, 상기 제2 그룹으로 분류된 워크플로우를 두번째 처리 순서로 결정할 수 있다. 예컨대, 처리 스케줄러를 이용한 워크플로우 장치는 제1 그룹으로 분류된, 워크플로우#1(501) 내 결과1 및 워크플로우#2(502) 내 결과2를, 모든 데이터소스로서 공유하는 워크플로우#4(504)를 제2 그룹으로 분류하고, 상기 제2 그룹으로 분류된 워크플로우#4(504)를 두번째 처리 순서로 결정할 수 있다. 이때, 처리 스케줄러를 이용한 워크플로우 장치는 워크플로우#4(504) 내 데이터소스가 2개일 경우, 2개의 데이터소스로서 상기 제1 그룹으로 분류된 워크플로우 내 결과셋(결과 1, 결과 2)을 각각 공유하는 경우, 워크플로우#4(504)를 제2 그룹으로 분류할 수 있다. 한편, 처리 스케줄러를 이용한 워크플로우 장치는 워크플로우#5(505) 내 데이터소스가 2개이나, 하나의 데이터소스만이 상기 제1 그룹으로 분류된 워크플로우 내 결과셋(결과3)을 공유하고, 다른 하나의 데이터소스는 상기 제1 그룹으로 분류된 워크플로우 내 결과셋을 공유하지 않음에 따라, 워크플로우#5(505)를 제2 그룹으로 분류하지 않는다.
또한, 처리 스케줄러를 이용한 워크플로우 장치는 상기 제2 그룹으로 분류되지 않는 제2 워크플로우(워크플로우#5(505)) 중에서, 상기 제1 그룹 및 상기 제2 그룹으로 분류된 워크플로우 내 결과셋을, 모든 데이터소스로서 공유하는 워크플로우를 제3 그룹으로 분류하고, 상기 제3 그룹으로 분류된 워크플로우를 세번째 처리 순서로 결정할 수 있다. 예컨대, 처리 스케줄러를 이용한 워크플로우 장치는 워크플로우#5(505) 내 데이터소스가 2개이고, 2개의 데이터소스로서, 상기 제1 그룹으로 분류된 워크플로우#3(503) 내 결과3, 및 상기 제2 그룹으로 분류된 워크플로우#4(504) 내 결과4를 각각 공유하는 경우, 워크플로우#5(505)를 제3 그룹으로 분류하고, 상기 제3 그룹으로 분류된 워크플로우#5(505)를 세번째 처리 순서로 결정할 수 있다.
이후, 처리 스케줄러를 이용한 워크플로우 장치는 제1 그룹, 제2 그룹, 제3 그룹으로 분류된 워크플로우를 차례대로 처리하되, 동일한 그룹으로 분류된 각 워크플로우를 동시에 처리할 수 있다.
도 10은 본 발명의 일실시예에 따른 처리 스케줄러를 이용한 워크플로우 장치의 동작 방법을 나타내는 흐름도이다.
도 10을 참조하면, 단계(1001)에서, 처리 스케줄러를 이용한 워크플로우 장치는 복수의 워크플로우 간의 관계를 분석할 수 있다. 여기서, 상기 복수의 워크플로우 각각은, 데이터소스, 연산자 및 결과셋을 포함할 수 있다.
처리 스케줄러를 이용한 워크플로우 장치는 상기 데이터소스, 상기 연산자, 및 상기 결과셋 중 적어도 하나에 기초하여, 상기 복수의 워크플로우 간의 의존관계를 분석할 수 있다. 이때, 처리 스케줄러를 이용한 워크플로우 장치는 제1 워크플로우 내 결과셋을, 데이터소스로서 공유하는 제2 워크플로우에 대해, 상기 제1 워크플로우에 의존관계가 있는 것으로 분석할 수 있다.
단계(1003)에서, 처리 스케줄러를 이용한 워크플로우 장치는 상기 분석된 결과에 기초하여, 상기 복수의 워크플로우에 대한 처리 순서를 결정할 수 있다.
구체적으로, 처리 스케줄러를 이용한 워크플로우 장치는 제2 워크플로우가, 제1 워크플로우에 의존관계가 있는 것으로 분석되는 경우, 상기 복수의 워크플로우 중에서, 의존관계가 있는 상기 제2 워크플로우를 제외한, 나머지 워크플로우를 제1 그룹으로 분류하고, 상기 제1 그룹으로 분류된 워크플로우를 첫번째 처리 순서로 결정할 수 있다.
또한, 처리 스케줄러를 이용한 워크플로우 장치는 상기 제2 워크플로우 중에서, 상기 제1 그룹으로 분류된 워크플로우 내 결과셋을, 모든 데이터소스로서 공유하는 워크플로우를 제2 그룹으로 분류하고, 상기 제2 그룹으로 분류된 워크플로우를 두번째 처리 순서로 결정할 수 있다.
또한, 처리 스케줄러를 이용한 워크플로우 장치는 상기 제2 그룹으로 분류되지 않는 제2 워크플로우 중에서, 상기 제1 그룹 및 상기 제2 그룹으로 분류된 워크플로우 내 결과셋을, 모든 데이터소스로서 공유하는 워크플로우를 제3 그룹으로 분류하고, 상기 제3 그룹으로 분류된 워크플로우를 세번째 처리 순서로 결정할 수 있다.
단계(1005)에서, 처리 스케줄러를 이용한 워크플로우 장치는 상기 결정된 처리 순서에 따라 상기 복수의 워크플로우를 처리할 수 있다. 이때, 처리 스케줄러를 이용한 워크플로우 장치는 동일한 그룹으로 분류된 워크플로우를 동시에 처리할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 저장 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 저장될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 저장되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 저장 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광저장 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
100: 처리 스케줄러를 이용한 워크플로우 장치
101: 인터페이스부
103: 프로세서

Claims (12)

  1. 복수의 워크플로우 간의 관계를 분석하는 인터페이스부; 및
    상기 분석된 결과에 기초하여, 상기 복수의 워크플로우에 대한 처리 순서를 결정하고, 상기 결정된 처리 순서에 따라 상기 복수의 워크플로우를 처리하는 프로세서
    를 포함하고,
    상기 인터페이스부는,
    제1 워크플로우 내 결과셋을, 데이터소스로서 공유하는 제2 워크플로우에 대해, 상기 제1 워크플로우에 의존관계가 있는 것으로 분석하고,
    상기 프로세서는,
    상기 복수의 워크플로우 중에서, 의존관계가 있는 상기 제2 워크플로우를 제외한, 나머지 워크플로우를 제1 그룹으로 분류하고, 상기 제1 그룹으로 분류된 워크플로우를 첫번째 처리 순서로 결정하는
    처리 스케줄러를 이용한 워크플로우 장치.
  2. 제1항에 있어서,
    상기 복수의 워크플로우 각각은, 데이터소스, 연산자 및 결과셋을 포함하고,
    상기 인터페이스부는,
    상기 데이터소스, 상기 연산자, 및 상기 결과셋 중 적어도 하나에 기초하여, 상기 복수의 워크플로우 간의 의존관계를 분석하는
    처리 스케줄러를 이용한 워크플로우 장치.
  3. 삭제
  4. 제1항에 있어서,
    상기 프로세서는,
    상기 제2 워크플로우 중에서, 상기 제1 그룹으로 분류된 워크플로우 내 결과셋을, 모든 데이터소스로서 공유하는 워크플로우를 제2 그룹으로 분류하고, 상기 제2 그룹으로 분류된 워크플로우를 두번째 처리 순서로 결정하는
    처리 스케줄러를 이용한 워크플로우 장치.
  5. 제4항에 있어서,
    상기 프로세서는,
    상기 제2 그룹으로 분류되지 않는 제2 워크플로우 중에서, 상기 제1 그룹 및 상기 제2 그룹으로 분류된 워크플로우 내 결과셋을, 모든 데이터소스로서 공유하는 워크플로우를 제3 그룹으로 분류하고, 상기 제3 그룹으로 분류된 워크플로우를 세번째 처리 순서로 결정하는
    처리 스케줄러를 이용한 워크플로우 장치.
  6. 제1항에 있어서,
    상기 프로세서는,
    동일한 그룹으로 분류된 워크플로우를 동시에 처리하는
    처리 스케줄러를 이용한 워크플로우 장치.
  7. 복수의 워크플로우 간의 관계를 분석하는 단계;
    상기 분석된 결과에 기초하여, 상기 복수의 워크플로우에 대한 처리 순서를 결정하는 단계; 및
    상기 결정된 처리 순서에 따라 상기 복수의 워크플로우를 처리하는 단계
    를 포함하고,
    상기 관계를 분석하는 단계는,
    제1 워크플로우 내 결과셋을, 데이터소스로서 공유하는 제2 워크플로우에 대해, 상기 제1 워크플로우에 의존관계가 있는 것으로 분석하는 단계
    를 포함하고,
    상기 처리 순서를 결정하는 단계는,
    상기 복수의 워크플로우 중에서, 의존관계가 있는 상기 제2 워크플로우를 제외한, 나머지 워크플로우를 제1 그룹으로 분류하고, 상기 제1 그룹으로 분류된 워크플로우를 첫번째 처리 순서로 결정하는 단계
    를 포함하는 처리 스케줄러를 이용한 워크플로우 장치의 동작 방법.
  8. 제7항에 있어서,
    상기 복수의 워크플로우 각각은, 데이터소스, 연산자 및 결과셋을 포함하고,
    상기 관계를 분석하는 단계는,
    상기 데이터소스, 상기 연산자, 및 상기 결과셋 중 적어도 하나에 기초하여, 상기 복수의 워크플로우 간의 의존관계를 분석하는 단계
    를 더 포함하는 처리 스케줄러를 이용한 워크플로우 장치의 동작 방법.
  9. 삭제
  10. 제7항에 있어서,
    상기 처리 순서를 결정하는 단계는,
    상기 제2 워크플로우 중에서, 상기 제1 그룹으로 분류된 워크플로우 내 결과셋을, 모든 데이터소스로서 공유하는 워크플로우를 제2 그룹으로 분류하고, 상기 제2 그룹으로 분류된 워크플로우를 두번째 처리 순서로 결정하는 단계
    를 더 포함하는 처리 스케줄러를 이용한 워크플로우 장치의 동작 방법.
  11. 제10항에 있어서,
    상기 처리 순서를 결정하는 단계는,
    상기 제2 그룹으로 분류되지 않는 제2 워크플로우 중에서, 상기 제1 그룹 및 상기 제2 그룹으로 분류된 워크플로우 내 결과셋을, 모든 데이터소스로서 공유하는 워크플로우를 제3 그룹으로 분류하고, 상기 제3 그룹으로 분류된 워크플로우를 세번째 처리 순서로 결정하는 단계
    를 더 포함하는 처리 스케줄러를 이용한 워크플로우 장치의 동작 방법.
  12. 제7항에 있어서,
    상기 처리하는 단계는,
    동일한 그룹으로 분류된 상기 워크플로우를 동시에 처리하는 단계
    를 포함하는 처리 스케줄러를 이용한 워크플로우 장치의 동작 방법.
KR1020170171333A 2017-12-13 2017-12-13 처리 스케줄러를 이용한 워크플로우 장치 및 워크플로우 장치의 동작 방법 KR102009576B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170171333A KR102009576B1 (ko) 2017-12-13 2017-12-13 처리 스케줄러를 이용한 워크플로우 장치 및 워크플로우 장치의 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170171333A KR102009576B1 (ko) 2017-12-13 2017-12-13 처리 스케줄러를 이용한 워크플로우 장치 및 워크플로우 장치의 동작 방법

Publications (2)

Publication Number Publication Date
KR20190070627A KR20190070627A (ko) 2019-06-21
KR102009576B1 true KR102009576B1 (ko) 2019-08-09

Family

ID=67056544

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170171333A KR102009576B1 (ko) 2017-12-13 2017-12-13 처리 스케줄러를 이용한 워크플로우 장치 및 워크플로우 장치의 동작 방법

Country Status (1)

Country Link
KR (1) KR102009576B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11153388B2 (en) 2019-11-12 2021-10-19 Electronics And Telecommunications Research Institute Workflow engine framework for cross-domain extension

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102473776B1 (ko) * 2020-11-23 2022-12-05 주식회사 피씨엔 빅데이터 크로스 모델 데이터 통합 처리 방법 및 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101516055B1 (ko) * 2012-11-30 2015-05-04 주식회사 엘지씨엔에스 맵리듀스 워크플로우 처리 장치와 방법 및 이를 저장한 기록 매체
KR101732922B1 (ko) 2015-12-17 2017-05-08 (주)인스웨이브시스템즈 Gui 기반의 비동기 방식 코딩 시스템 및 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160162539A1 (en) * 2014-12-09 2016-06-09 Lg Cns Co., Ltd. Computer executable method of generating analysis data and apparatus performing the same and storage medium for the same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101516055B1 (ko) * 2012-11-30 2015-05-04 주식회사 엘지씨엔에스 맵리듀스 워크플로우 처리 장치와 방법 및 이를 저장한 기록 매체
KR101732922B1 (ko) 2015-12-17 2017-05-08 (주)인스웨이브시스템즈 Gui 기반의 비동기 방식 코딩 시스템 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11153388B2 (en) 2019-11-12 2021-10-19 Electronics And Telecommunications Research Institute Workflow engine framework for cross-domain extension

Also Published As

Publication number Publication date
KR20190070627A (ko) 2019-06-21

Similar Documents

Publication Publication Date Title
US9477512B2 (en) Task-based modeling for parallel data integration
KR101535813B1 (ko) 복합 이벤트 처리를 위한 이벤트 구성 규칙의 동적 업데이트를 위한 시스템 및 방법
JP6903755B2 (ja) データ統合ジョブ変換
CN109791492B (zh) 流水线相关树查询优化器和调度器
US20160171104A1 (en) Detecting multistep operations when interacting with web applications
KR102249818B1 (ko) 학습 데이터의 분포 특성에 기초하여 학습 데이터를 생성하는 방법 및 장치
Capuccini et al. Large-scale virtual screening on public cloud resources with Apache Spark
JP2017102919A (ja) 命令を処理するための複数の実行ユニットを備えるプロセッサ、プロセッサを使用して命令を処理するための方法、およびプロセッサの設計プロセスにおいて使用される設計構造
KR102009576B1 (ko) 처리 스케줄러를 이용한 워크플로우 장치 및 워크플로우 장치의 동작 방법
KR102327026B1 (ko) Gcn 기반의 어셈블리 코드 학습 장치 및 방법과 이를 이용한 보안 약점 탐지 장치 및 방법
US11270065B2 (en) Extracting attributes from embedded table structures
JP5962736B2 (ja) 情報処理システム、分類方法、及びそのためのプログラム
US9619518B2 (en) Tracking tuples to reduce redundancy in a graph
US11068463B2 (en) System and method for managing log data
US20170123962A1 (en) Defect detection using test cases generated from test models
US20150186130A1 (en) Optimizing performance of a computer system in response to a software change
Cohen et al. RAPPORT: running scientific high-performance computing applications on the cloud
US20210192296A1 (en) Data de-identification method and apparatus
KR20220014230A (ko) 인공지능 기반 워크플로우 프로세스 시스템 및 장치
KR101559651B1 (ko) 동적 분석 방법 및 장치
US10175962B2 (en) Joining operator graph elements via whole program optimization
Ayma et al. On the architecture of a big data classification tool based on a map reduce approach for hyperspectral image analysis
KR101673151B1 (ko) 프로그램 소스 및 db 스키마의 연관 관계 변화 분석 방법 및 장치
WO2014168199A1 (ja) 論理演算方法および情報処理装置
CN114207594B (zh) 计算机程序系统的静态分析和运行时分析

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant