KR20210069241A - 규칙 기반으로 공간정보 처리용 워크플로우 서비스를 제공하는 방법 및 이러한 방법을 실행시키기 위한 명령어들이 저장된 컴퓨터 판독 가능한 저장 매체 - Google Patents

규칙 기반으로 공간정보 처리용 워크플로우 서비스를 제공하는 방법 및 이러한 방법을 실행시키기 위한 명령어들이 저장된 컴퓨터 판독 가능한 저장 매체 Download PDF

Info

Publication number
KR20210069241A
KR20210069241A KR1020190158775A KR20190158775A KR20210069241A KR 20210069241 A KR20210069241 A KR 20210069241A KR 1020190158775 A KR1020190158775 A KR 1020190158775A KR 20190158775 A KR20190158775 A KR 20190158775A KR 20210069241 A KR20210069241 A KR 20210069241A
Authority
KR
South Korea
Prior art keywords
spatial information
workflow
information processing
rule
providing
Prior art date
Application number
KR1020190158775A
Other languages
English (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 KR1020190158775A priority Critical patent/KR20210069241A/ko
Publication of KR20210069241A publication Critical patent/KR20210069241A/ko

Links

Images

Classifications

    • 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/44Arrangements for executing specific programs
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명은 규칙 기반으로 공간정보 처리용 워크플로우 서비스를 제공하는 방법 및 이러한 방법을 실행시키기 위한 명령어들이 저장된 컴퓨터 판독 가능한 저장 매체에 관한 것이다.

Description

규칙 기반으로 공간정보 처리용 워크플로우 서비스를 제공하는 방법 및 이러한 방법을 실행시키기 위한 명령어들이 저장된 컴퓨터 판독 가능한 저장 매체{A method for providing a rule-based workflow service for processing spatial information, and a computer-readable storage medium storing and instructions for executing the method}
본 발명은 규칙 기반으로 공간정보 처리용 워크플로우 서비스를 제공하는 방법 및 이러한 방법을 실행시키기 위한 명령어들이 저장된 컴퓨터 판독 가능한 저장 매체에 관한 것이다.
대용량의 데이터를 처리할 수 있는 컴퓨팅 장치들이 개발되면서 다양한 서비스 제공이 가능해 지게 되었으며, 이와 맞물려 더 편리한 새로운 서비스에 대한 요구 역시 지속적으로 증가하고 있다. 새로운 서비스에 대한 요구는 공간정보를 다루는 분야에 있어서도 예외가 아닌데, 각종 공간들에 대한 데이터를 다양한 방식으로 처리하도록 함으로써 여러 종류의 서비스를 제공하고자 하는 수요 역시 지속적으로 증가하고 있다.
한편, 일반적으로 데이터를 처리하는 과정은 기본적으로 추출, 변환, 적재로 이루어진 소위 ETL과정을 기초로 하는데, 앞서 언급한 공간정보를 이용한 다양한 서비스 역시 그 기초는 공간정보를 추출, 변환, 적재하는 과정으로 이루어져 있다. 따라서 공간정보를 다루는 사용자들로 하여금 추출, 변환, 적재하는 전체 과정을 쉽게 설계할 수 있도록 환경을 제공하는 경우 더욱 더 많은 사용자들, 즉 개발자들이 활발하게 서비스 개발을 할 수 있을 것으로 기대되는 바, 이러한 기대에 상응할 수 있는 개발자 환경을 제공할 필요가 있다.
본 발명은 이와 같은 문제점에 착안하여 도출된 것으로, 이상에서 살핀 기술적 문제점을 해소시킬 수 있음은 물론, 본 기술분야에서 통상의 지식을 가진 자가 용이하게 발명할 수 없는 추가적인 기술요소들을 제공하기 위해 발명되었다.
대한민국 등록특허 제10-1641179호(2016.07.14.)
본 발명은 사용자로 하여금 쉽게 공간정보 처리용 워크플로우를 설계 및 생성할 수 있도록 사용자 환경을 제공하는 것을 목적으로 한다.
특히, 본 발명은 공간정보 처리에 필수적으로 요구되는 처리도구들, 즉 공간정보를 추출하기 위한 도구, 변환하기 위한 도구, 적재하기 위한 도구들을 간단한 입력만으로 배치할 수 있도록 하여 다양한 종류의 공간정보 처리용 워크플로우들을 설계할 수 있게 하는 것을 목적으로 한다.
또한, 본 발명은 공간정보 처리용 워크플로우를 설계 후 생성하는 과정에서 자동으로 스크립트를 생성해 줌으로써 사용자가 설계한 공간정보 처리용 워크플로우를 곧바로 활용할 수 있도록 하는 것을 목적으로 한다.
한편, 본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
본 발명에 따른 공간정보 처리용 워크플로우 서비스를 제공하는 방법은 (a) 공간정보 처리용 워크플로우에 대응되는 스크립트를 로드하는 단계; (b) 상기 스크립트에 대하여 파싱(parsing)을 하는 단계; (c) 파싱된 스크립트로부터 상기 공간정보 처리용 워크플로우를 식별하는 단계; (d) 상기 스크립트로부터 상기 공간정보 처리용 워크플로우를 실행시키기 위한 규칙을 생성하는 단계;를 포함하는 것을 특징으로 한다.
또한, 상기 방법에 있어서 상기 (d)단계 이후, 상기 생성된 규칙에 따라 상기 공간정보 처리용 워크플로우를 실행하는 단계;를 더 포함할 수 있다.
또한, 상기 방법에 있어서 상기 (d)단계에서 생성되는 규칙은, YAML 양식에 따른 텍스트 기반의 규칙인 것을 특징으로 할 수 있다.
또한, 상기 방법에 있어서 상기 (d)단계에서 생성되는 규칙은, 아파치 스톰 토폴로지(apache storm topology)에서 인식 가능한 규칙인 것을 특징으로 할 수 있으며, 이 때 상기 (d)단계에서 생성되는 규칙은 적어도 하나 이상의 스파우트(SPOUT) 및 적어도 하나 이상의 볼트(BOLT)로 구성될 수 있다.
또한, 상기 방법에 있어서 상기 스파우트(SPOUT)는, 로컬스토리지 또는 스트림으로부터 공간정보를 추출하는 스파우트들 중 적어도 하나 이상인 것을 특징으로 할 수 있고, 상기 볼트(BOLT)는, 공간정보를 변환하는 볼트들 공간정보를 적재하는 볼트들 중 적어도 하나 이상인 것을 특징으로 할 수 있다.
또한 상기 방법에 있어서, 상기 공간정보 처리용 워크플로우를 식별하는 단계는, 상기 공간정보 처리용 워크플로우의 흐름을 분석하는 단계; 및 상기 공간정보 처리용 워크플로우 내 객체를 인식하는 단계; 를 포함하는 것을 특징으로 할 수 있다.
한편, 본 발명의 또 다른 실시예에 따른 컴퓨터 판독 가능한 저장 매체는 공간정보 처리용 워크플로우 서비스를 제공하는 방법을 수행하기 위한 명령어들을 저장하되, 공간정보 처리용 워크플로우 서비스를 제공하는 방법은, (a) 공간정보 처리용 워크플로우에 대응되는 스크립트를 로드하는 단계; (b) 상기 스크립트에 대하여 파싱(parsing)을 하는 단계; (c) 파싱된 스크립트로부터 상기 공간정보 처리용 워크플로우를 식별하는 단계; (d) 상기 스크립트로부터 상기 공간정보 처리용 워크플로우를 실행시키기 위한 규칙을 생성하는 단계;를 포함할 수 있다.
또한, 상기 컴퓨터 판독 가능한 저장 매체에 있어서 상기 공간정보 처리용 워크플로우 서비스를 제공하는 방법은, 상기 (d)단계 이후, 상기 생성된 규칙에 따라 상기 공간정보 처리용 워크플로우를 실행하는 단계;를 더 포함할 수 있다.
본 발명에 따르면 사용자가 다양한 형태의 공간정보 처리용 워크플로우를 쉽게 설계할 수 있게 하는 효과가 있다.
또한 본 발명에 따르면, 사용자가 소스코드에 대한 이해가 다소간 부족하더라도 입력되는 값의 포맷, 출력되는 값의 포맷만 알고 있으면 쉽게 공간정보 처리용 워크플로우를 설계할 수 있게 하는 효과가 있다.
한편, 본 발명에 의한 효과는 이상에서 언급한 것들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명에 따른 공간정보 처리용 워크플로우 서비스가 제공되는 시스템적 환경을 도시한 것이다.
도 2는 본 발명에 따른 공간정보 처리용 워크플로우 서비스의 전체 과정을 도시한 것으로, 스크립트가 생성되기까지의 과정 및 스크립트 생성 후 규칙이 생성되고 실행되는 과정을 모두 도시한 것이다.
도 3은 사용자가 직접 설계하게 되는 공간정보 처리용 워크플로우를 개념적으로 설명하기 위한 것이며, 도 4는 사용자에게 제공되는 사용자 인터페이스를 도시한 것이다.
도 5는 본 발명에 따른 공간정보 처리용 워크플로우 서비스가 제공되는 과정 중 스크립트를 기초로 자동으로 규칙이 생성 및 실행되는 과정을 도시한 것이다.
도 6은 자동으로 규칙을 생성하는 단계에서 생성되는 규칙의 실제 예시를 나타낸 것이다.
도 7은 스파우트와 볼트 간의 연결관계를 도시한 것이다.
본 발명의 목적과 기술적 구성 및 그에 따른 작용 효과에 관한 자세한 사항은 본 발명의 명세서에 첨부된 도면에 의거한 이하의 상세한 설명에 의해 보다 명확하게 이해될 것이다. 첨부된 도면을 참조하여 본 발명에 따른 실시예를 상세하게 설명한다.
본 명세서에서 개시되는 실시예들은 본 발명의 범위를 한정하는 것으로 해석되거나 이용되지 않아야 할 것이다. 이 분야의 통상의 기술자에게 본 명세서의 실시예를 포함한 설명은 다양한 응용을 갖는다는 것이 당연하다. 따라서, 본 발명의 상세한 설명에 기재된 임의의 실시예들은 본 발명을 보다 잘 설명하기 위한 예시적인 것이며 본 발명의 범위가 실시예들로 한정되는 것을 의도하지 않는다.
도면에 표시되고 아래에 설명되는 기능 블록들은 가능한 구현의 예들일 뿐이다. 다른 구현들에서는 상세한 설명의 사상 및 범위를 벗어나지 않는 범위에서 다른 기능 블록들이 사용될 수 있다. 또한, 본 발명의 하나 이상의 기능 블록이 개별 블록들로 표시되지만, 본 발명의 기능 블록들 중 하나 이상은 동일 기능을 실행하는 다양한 하드웨어 및 소프트웨어 구성들의 조합일 수 있다.
또한, 어떤 구성요소들을 포함한다는 표현은 “개방형”의 표현으로서 해당 구성요소들이 존재하는 것을 단순히 지칭할 뿐이며, 추가적인 구성요소들을 배제하는 것으로 이해되어서는 안 된다.
나아가 어떤 구성요소가 다른 구성요소에 “연결되어” 있다거나 “접속되어” 있다고 언급될 때에는, 그 다른 구성요소에 직접적으로 연결 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 한다.
본 발명은 공간정보 처리용 워크플로우(이하 워크플로우라 칭하기로 함)를 사용자가 직접 생성하고, 이렇게 생성한 워크플로우를 쉽게 실행시킬 수 있도록 한 서비스를 제공하기 위한 것이며, 그 중에서도 특히 본 상세한 설명에서는 사용자에 의해 생성된 워크플로우 및 이의 스크립트로부터 자동으로 규칙이 생성되고, 위 규칙에 따라 상기 워크플로우가 실제 실행 내지 구동될 수 있도록 한 과정에 대해 논하게 될 것이다.
본격적인 설명을 하기에 앞서 우선 본 발명에 따라 공간정보 처리용 워크플로우 서비스를 제공하는 방법이 어떤 시스템적 환경에서 구현되는지에 대해 도 1을 참조하여 간단히 살펴보기로 한다.
도 1은 본 발명에 따른 워크플로우 서비스가 제공되는 시스템을 개략적으로 도시한 것으로, 이 시스템에는 사용자 단말기(100) 및 서비스 서버(200) 가 도 1과 같은 네트워크 연결 상태로 존재할 수 있다.
본 발명에서 구현하고자 하는 방법의 쉬운 예시를 살펴볼 때, 예를 들어 공간정보의 빅데이터를 이용하여 서비스를 제공하고자 하는 사용자(또는 개발자)는 서비스 서버(200)가 웹 UI 방식으로 제공하는 사용자 인터페이스를 통해 자신이 구현하고자 하는 워크플로우를 직접 설계할 수 있으며, 이렇게 설계된 워크플로우는 상기 서비스 서버(200)가 제공하는 사용자 인터페이스 상에서 스크립트 형태로 다시 생성되어 사용자에게 제공될 수 있으며, 바람직하게는 표준 포맷인 JSON 형태로 제공될 수 있고, 나아가 서비스 서버(200)는 상기 스크립트로부터 규칙을 생성하고, 이 규칙에 따라 상기 워크플로우가 실제 사용자의 설계 의도에 따라 구동되도록 할 수 있다.
한편, 도 1에 도시된 시스템을 구성하는 각 구성들에 대해 더 자세히 살펴보면 다음과 같다.
먼저 사용자 단말기(100)와 관련하여, 사용자 단말기(100)는 사용자가 보유하거나 소지하고 다니는 단말기를 일컫는 것으로, 여기에는 홈 PC 등과 같은 설치형 단말기는 물론, 스마트폰, PDA, 태블릿PC 등과 같이 휴대가 가능한 단말기도 포함될 수 있다. 이러한 사용자 단말기를 장치의 측면에서 볼 때에, 각 사용자 단말기들은 중앙처리유닛(CPU)과 메모리를 구비하고 있는 것을 전제로 한다. 중앙처리유닛은 컨트롤러(controller), 마이크로 컨트롤러(microcontroller), 마이크로 프로세서(microprocessor), 마이크로 컴퓨터(microcomputer) 등으로도 불릴 수 있다. 또한 중앙처리유닛은 하드웨어(hardware) 또는 펌웨어(firmware), 소프트웨어, 또는 이들의 결합에 의해 구현될 수 있는데, 하드웨어를 이용하여 구현하는 경우에는 ASIC(application specific integrated circuit) 또는 DSP(digital signal processor), DSPD(digital signal processing device), PLD(programmable logic device), FPGA(field programmable gate array) 등으로, 펌웨어나 소프트웨어를 이용하여 구현하는 경우에는 위와 같은 기능 또는 동작들을 수행하는 모듈, 절차 또는 함수 등을 포함하도록 펌웨어나 소프트웨어가 구성될 수 있다. 또한, 메모리는 ROM(Read Only Memory), RAM(Random Access Memory), EPROM(Erasable Programmable Read Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래쉬(flash) 메모리, SRAM(Static RAM), HDD(Hard Disk Drive), SSD(Solid State Drive) 등으로 구현될 수 있다.
상기 사용자 단말기(100)는 디스플레이 및 물리적 키보드, 마우스 및/또는 조이스틱과 같은 하나 이상의 다른 물리적 사용자 입력용 수단과 연결될 수 있다. 사용자 단말기는 후술하게 될 설명들에서의 사용자 인터페이스에 따라 사용자가 쉽게 개체에 대한 관찰정보를 입력할 수 있게 하기 위한 것이다.
한편, 서비스 서버(200)는 본 발명에 따른 방법을 실제로 구현하기 위한 프로그램, 즉 명령어들의 집합을 제공하는 구성이며, 나아가 복수의 사용자 단말기들로부터 입력 및 업로드 된 관찰정보를 저장하는 구성에 해당한다.
서비스 서버(200)의 형태는, 어느 특정 운영자가 관리하는 적어도 하나의 서버용 PC일 수 있으며, 또는 타 업체에서 제공하는 클라우드 서버의 형태, 즉 운영자가 회원가입하여 사용할 수 있는 클라우드 서버의 형태일 수도 있다. 특히 서비스 서버가 서버용 PC로 구현된 경우, 해당 서비스 서버는 중앙처리유닛 및 메모리를 포함할 수 있으며, 이에 대해서는 앞선 사용자 단말기의 설명 과정에서 자세히 언급하였으므로 여기서는 설명을 생략하기로 한다.
도 2는 본 발명에 따른 워크플로우 서비스 제공 방법을 순서에 따라 도시한 것이다. 도 2를 참조할 때, 워크플로우 서비스 제공 방법은 크게 공간정보 처리용 빅데이터가 업로드 되는 단계(S101), 워크플로우 편집을 위한 사용자 인터페이스가 제공되는 단계(S103), 사용자로부터 편집 입력이 수신되는 단계(S105), 워크플로우 및 스크립트를 생성하는 단계(S107), 스크립트로부터 규칙을 생성하는 단계(S109), 및 생성된 규칙을 실행시킴으로써 워크플로우를 구동시키는 단계(S111)를 포함할 수 있다. 이 중 S101단계 내지 S107단계는 사용자(개발자)가 직접 워크플로우를 설계하는 과정에 대한 단계들이며, S109단계 내지 S111단계는 서비스 서버(200) 상에서 앞서 설계된 워크플로우를 직접 실행 내지 구동시키는 과정에 대한 단계들이다.
먼저, 본 발명의 이해를 돕기 위하여 S101단계 내지 S107단계들에 대한 설명을 간략히 하기로 한다.
공간정보 처리용 빅데이터가 업로드 되는 단계(S101)는 사용자가 임의의 공간정보 서비스를 제공하기 위하여 필요한 대량의 빅데이터를 미리 서비스 서버(200) 상에 업로드 하는 단계로 이해될 수 있으며, 관점을 바꾸어 서비스 서버(200)의 입장에서는 상기 사용자가 사용자 단말기(100)를 이용하여 처리하고자 하는 데이터들을 대량으로 업로드 할 시 이를 수신하는 단계로 이해될 수 있다. 처리하고자 하는 공간정보의 종류에는 다양한 것들이 존재할 수 있으며, 예를 들어 shape파일, csv파일, JSON파일, TXT파일 외 다양한 포맷의 것들이 존재할 수 있다. 한편, 상기 S101단계는 반드시 사용자가 서비스 서버(200)에 접속한 채 지정한 데이터 파일들을 직접적으로 업로드 하는 단계만을 의미하는 것은 아니며, 사용자가 입력한 특정 로케이션(URL주소 등)에 접속하여 그 로케이션으로부터 데이터를 수신하는 단계로도 이해될 수 있다. 즉, S101단계는 서비스 서버(200)로 공간정보 처리를 위한 기초 데이터들이 저장될 수 있는 한 그 상황을 가리지 않고 모두 포함할 수 있는 것으로 이해된다.
참고로, S101단계는 사용자가 서비스 서버(200)에서 제공된 웹 UI를 따라 로그인 한 이후부터 진행될 수 있으며, 이후 설명하게 될 모든 단계들 역시 사용자가 로그인 상태에서 진행될 수 있음을 이해한다.
S101단계 이후, 서비스 서버(200)에서는 상기 사용자가 워크플로우 편집을 할 수 있도록 사용자 인터페이스를 제공하고, 이를 통해 사용자로부터 편집 입력을 수신할 수 있다. (S103 및 S105) 본 상세한 설명에서 언급하는 워크플로우란, 공간정보를 추출하는 과정, 변환하는 과정, 적재하는 과정을 모두 포함하는 하나의 작업 흐름으로 정의되며, 각각의 워크플로우는 공간정보가 어떤 포맷의 파일로부터 추출되는지, 공간정보가 어떤 포맷으로 변환되어야 하는지, 공간정보가 어떤 데이터베이스에 적재가 되어야 하는지 등 다양한 공간정보 처리 환경에 따라 설계될 수 있다. 워크플로우의 설계와 관련하여서는 도 3에 간략한 개념도가 도시되어 있는데, 이를 참조할 때, 하나의 워크플로우는 기본적으로 3가지 도구들을 포함할 수 있으며, 그 도구들에는 공간정보를 추출하기 위한 추출용 도구(10), 공간정보를 변환하기 위한 변환용 도구(20), 공간정보를 적재하기 위한 적재용 도구(30)가 포함될 수 있다. 또한 워크플로우를 설계한다는 것의 의미는 상기 도구들을 하나씩 배치하고, 배치된 각 도구들 사이를 연결선(50)으로 연결하는 과정을 포함하는 것으로 이해될 수 있다. 연결선(50)은 어느 하나의 도구로부터 다른 도구를 연결하는 것으로, 이 때 연결선(50)의 시작은 반드시 이전 단계에 존재하여야 하는 도구, 끝은 이후 단계에 존재하여야 하는 도구로 연결될 때에만 정상적으로 입력될 수 있다. 도 3을 참조할 때, 각각의 도구는 하나만 배치하는 것으로 제한되지 않으며, 둘 이상의 것들이 동시에 배치될 수 있고, 연결선(50) 또한 이에 맞추어 복수 개 입력될 수 있다.
한편, 도 3과 같은 워크플로우를 설계, 즉 편집할 수 있는 사용자 인터페이스는 도 4에 도시되어 있다. 도 4는 사용자가 사용자 단말기(100)의 디스플레이를 통해 볼 수 있는 사용자 인터페이스를 도시한 것으로, 이는 서비스 서버(200)에서 제공될 수 있다.
도 4를 참조할 때, 사용자 인터페이스의 좌측에는 현재 로그인 상태에 있는 사용자에 대한 정보가 표시될 수 있고, 그 밖에 여러 개의 메뉴들이 표시될 수 있다. 또한, 사용자 인터페이스의 상단에는 사용자가 선택할 수 있는 도구 모음(1000)이 표시될 수 있다. 앞서도 언급하였지만, 처리도구 모음(1000)에는 추출용 도구, 변환용 도구, 적재용 도구를 선택할 수 있도록 각각에 대응되는 아이콘이 표시될 수 있다. 사용자가 추출용 도구 아이콘을 클릭하였을 때에, 사용자 인터페이스 상에는 추출용 도구들의 세부항목을 리스트로 더 표시할 수 있는데, 사용자는 세부항목들 중 어느 하나를 선택함으로써 해당 세부항목을 추출용 도구로 배치할 수 있으며, 이는 변환용 도구, 적재용 도구 아이콘을 클릭하였을 때에도 같은 방식으로 표시될 수 있다.
한편, 위 처리도구 모음(1000), 편집도구 모음(1100) 하단에는 편집 영역(2000)이 표시될 수 있다. 편집 영역(2000)은 사용자가 임의의 치리도구를 선택한 후 이를 드래그 앤 드롭 방식으로 배열하고, 연결선(50)으로 각 처리도구들 사이를 연결할 수 있는 영역이다. 상기 편집 영역(2000)은 그 배경에 아무것도 표시되어 있지 않은 백지상태일 수도 있겠으나, 바람직하게는 도 4에 도시되어 있는 것과 같이 모눈 패턴이 표시되어 사용자 편의성을 높일 수도 있다. 다른 한편, 상기 편집 영역(2000) 내에서는 비교적 자유롭게 각 처리 도구들, 연결선 배치가 가능하다. 예를 들어, 사용자는 처리 도구를 반드시 워크플로우의 순서에 따라 선택 및 배치를 할 필요는 없으며, 적재용 도구(30)를 가장 먼저 배치시킨 후 나머지 추출용 도구(10) 및 변환용 도구(20)를 배치시키는 것이 가능하며, 그 배치 위치 역시 제한이 없다 할 것이다. 또한, 워크플로우의 순서는 연결선(50)에 의하여 최종적으로 정의가 되는데, 각 처리 도구들의 배치가 편집 영역의 어느 위치에 있는지와 관계 없이 상기 연결선(50)에 의한 전후관계에 의하여 워크플로우가 정의된다.
다른 한편, 상기 사용자 인터페이스 상에서 사용자가 임의의 워크플로우를 설계해 나갈 때에, 상기 사용자 인터페이스는 사용자로 하여금 설계의 잘못된 부분을 지적할 수 있도록 가이드정보를 더 제공하게 구현할 수도 있다. 예를 들어, 연결선(50)을 입력하고자 할 때에는 시작점으로부터 끝점을 연결하였을 때에 전후 관계가 정의된다고 가정할 때에, 사용자가 적재용 도구(30)를 시작점으로 정하고 끝점으로 변환용 도구(20)를 정한 경우 사용자 인터페이스 상에서는 워크플로우의 전후관계가 잘못 되었음을 알리는 메시지를 팝업시킴으로써 사용자가 올바르게 다시 연결선(50)을 입력하도록 유도할 수 있다. 또 다른 예로, 사용자가 추출용 도구(10)를 배치하지 않은 채 변환용 도구(20) 및 적재용 도구(30)을 워크플로우 내 구성으로 포함시키고 저장 아이콘을 클릭하는 경우, 사용자 인터페이스 상에서는 아직 추출용 도구(10)가 배치되어 있지 않음을 알리는 메시지를 표시함으로써 사용자에게 올바른 설계 방향을 전달할 수도 있다. 또 다른 예로, 전후 관계에서 양립할 수 없는 처리 도구들이 배치 및 연결되어 있는 경우에도 사용자 인터페이스 상에서는 이를 지적하는 메시지를 표시함으로써 사용자가 다른 처리 도구를 선택하여 배치하도록 유도할 수도 있다. 이 밖에 다양한 오류 상황에 대하여 사용자 인터페이스는 사용자로 하여금 이를 인지하고 수정할 수 있도록 메시지를 표시할 수 있다.
한편, 다시 도 4를 참조할 때, 사용자 인터페이스에는 스크립트 영역(3000)이 더 표시될 수 있다. 상기 스크립트 영역(3000)은 개발자의 선택에 따라 표시가 되도록 또는 표시가 되지 않도록 구현될 수 있다. 표시가 되도록 구현된 경우, 예를 들어 사용자가 워크플로우 설계를 모두 마친 후 저장(Save) 아이콘을 클릭하였을 때 설계된 워크플로우에 대응되는 스크립트가 생성되고 이 생성된 스크립트가 사용자 인터페이스 상에서 보이도록 구현할 수 있다. 사용자는 이 표시된 스크립트를 다시 한번 검토하여 자신이 구현하고자 하는 워크플로우가 정확하게 설계되었는지를 확인할 수 있거나 또는 스크립트를 복사하여 다른 응용 프로그램에서 활용하도록 할 수 있다.
다시 도 2를 참조할 때, S103 단계 및 S105단계 이후에는 서비스 서버(200)가 앞서 사용자가 설계한 워크플로우에 대한 스크립트를 생성함으로써 최종적으로 완성된 하나의 워크플로우를 생성(S107)할 수 있다.
이상 S101단계 내지 S107단계에서 사용자가 워크플로우를 설계할 수 있도록 제공되는 사용자 인터페이스, 그리고 서비스 서버(200)의 입장에서 사용자가 워크플로우를 설계하는 과정들에 대해 살펴보았다.
다시 도 2를 참조할 때, S107단계 이후에는 서비스 서버(200)가 앞서 생성된 스크립트로부터 규칙을 생성하는 단계(S109), 그리고 규칙을 실행함으로써 워크플로우를 구동시키는 단계(S111)가 더 진행될 수 있다. 도 5에는 S109단계 및 S111단계가 더 구체화 된 순서도가 도시되어 있으므로 이를 참조하여 설명을 이어가기로 한다.
도 5를 참조할 때, 스크립트로부터 자동으로 규칙을 생성하는 S109단계는 가장 먼저 스크립트를 파싱하는 단계(S1091)로부터 시작될 수 있다. 파싱(parsing)이란, 컴퓨터에서 컴파일러 또는 번역기가 원시 부호를 기계어로 번역하는 과정의 한 단계로 정의될 수 있는데, 이 단계에서는 스크립트 내 각 문장의 문법적인 구성 또는 구문을 분석하는 과정으로도 이해될 수 있으며, 또는 스크립트 내 토큰 열을 받아들인 후 이를 그 특정 환경의 문법에 맞게 구문 분석 트리(parse tree)로 구성해 내는 과정으로도 이해될 수 있다. 상기 스크립트가 JSON 형식으로 생성되었음을 전제로, 상기 S1092단계에서는 바람직하게는 JSON에 맞게 구문 분석 트리가 구성될 수 있다.
이 후, 서비스 서버(200)는 파싱이 된 상태의 스크립트를 기초로 워크플로우를 구분하는 단계(S1092)를 수행할 수 있는데, 이는 다시 워크플로우 흐름을 분석하는 단계(S10921) 및 워크플로우 객체를 인식하는 단계(S10922)로 나뉠 수 있다. 본 단계는 상기 스크립트와 대응되는 워크플로우의 내부 단계들을 구분하기 위한 것으로, 예를 들어 공간정보를 추출하기 위한 도구(모듈), 공간정보를 변환하기 위한 도구(모듈), 공간정보를 적재하기 위한 도구(모듈)를 각각 분석한 후 각각의 객체를 인식하는 과정으로 이해될 수 있다. 본 단계에서는 상기 파싱 단계에서의 결과물로 얻은 토큰들과 이미 데이터베이스화 되어 있는 일련의 키워드들 또는 소스코드들과의 비교를 통하여 워크플로우가 어떤 도구들을 포함하고 있는지를 분석 및 인식할 수 있다.
다음으로 S1093단계는 자동으로 규칙을 생성하는 단계이며, 본 단계에서는 바람직하게는 YAML 형태의 텍스트 기반 규칙이 자동으로 생성될 수 있다. 상기 규칙은 상기 서비스 서버(200)에 의해 제공되는 복수 개의 스파우트(SPOUT)들과 복수 개의 볼트(BOLT)들의 다양한 조합으로 구성될 수 있는데, 스파우트란 스트림 데이터를 발생시키거나 Kestrel, RabbitMQ, Kafka 등을 통해 외부로부터 데이터를 받아 오는 등 데이터 소스로서 기능을 하는 모듈을 의미하며, 볼트란 실제 데이터 처리를 수행하는 모듈, 즉 연속적인 연산을 하거나 DB에 기록하는 등의 실제 데이터 처리 작업을 하는 모듈을 의미한다. 본 발명에서는 총 5개의 스파우트, 그리고 7개의 볼트가 제공될 수 있으며, 사용자가 설계한 워크플로우는 이와 같은 스파우트 및 볼트들의 조합에 의해 하나의 규칙으로 생성될 수 있다. 참고로 스파우트 및 볼트는 아파치 스톰의 토폴로지에서 인식 가능한 규칙으로 변환되어 구동될 수 있으며, 도 6에는 복수 개의 스파우트들 및 볼트들이 조합된 일 실시예가 도시되어 있다.
스파우트 중 importShpFromLocal은 로컬 영역에 저장되어 있는 shape 포맷의 파일로부터 공간정보를 추출하는 것이며, shapefile로부터 공간정보를 추출하기 위한 스파우트(importShpFromLocal), 마이크로소프트 사의 CSV파일로부터 공간정보를 추출하기 위한 스파우트(importCsvFromLocal), 개방형 표준 포맷인 JSON 파일로부터 공간정보를 추출하기 위한 스파우트(importJsonFromLocal), 일반 TXT파일로부터 공간정보를 추출하기 위한 스파우트(importTxtFromLocal) 등은 이 존재할 수 있다. 이상의 스파우트들은 모두 공간정보 유형이 배치(batch)형인 공간정보를 추출하기 위한 스파우트들이다. 한편, 스파우트 중 importTwitter, importGeoSensor 등은 공간정보 유형이 스트림(stream)형인 공간정보를 추출하기 위한 도구들이다.
또 다른 한편, 볼트의 종류에는 레코드 정보 내 기하학 정보를 변환하는 볼트(convCoordinate), 추출된 레코드 포맷을 내부 레코드 포맷으로 변환하는 볼트(convInternalRecordSet), 기존 레코드 정보를 새로운 레코드 정보로 변환하는 볼트(createNewRecordSet), 추출 및 면환된 레코드들을 shapefile 포맷으로 로컬 영역에 파일 형태로 저장하는 볼트(exportToLocalShp), 추출 및 변환된 레코드들을 csv 포맷으로 로컬 영역에 파일 형태로 저장하는 볼트(exportToLocalCsv), 추출 및 변환된 레코드들을 JSON 표준 표맷으로 로컬 영역에 파일 형태로 저장하는 볼트(exportToLocalGeoJson), 레코드 또는 파일 형태로 전달 받은 정보를 기 설정된 HDFS에 적재하는 볼트(exportToHDFS) 등이 존재할 수 있다.
아래 표는 총 5개의 스파우트 및 총 7개의 볼트들을 나열한 표이다.
번호 SPOUT Descriptor
1 importShpFromLocal 로컬 스토리지에 존재하는 ESRI 사의 Shapefile에서 레코드 정보를 추출하는 모듈
2 importCsvFromLocal 로컬 스토리지에 존재하는 Microsoft 사의 CSV file에서 레코드 정보를 추출하는 모듈
3 importJsonFromLocal 로컬 스토리지에 존재하는 JSON(GEO-JSON) 표준 포맷 file에서 레코드 정보를 추출하는 모듈
4 importToTwitter 트위터 서버를 통해 얻어지는 레코드 정보를 추출하는 모듈
5 importToGeoSensor 센서 정보를 취득하는 센서 전용 서버를 통해 레코드 정보를 추출하는 모듈
번호 BOLT Descriptor
1 convCoordinate 레코드 정보 내 기하학 정보를 변환하는 모듈
2 convInternalRecordSet 추출된 레코드 포맷을 내부 레코드 포맷으로 변환하는 모듈
3 createNewRecordSet 기존 레코드 정보를 새로운 레코드 정보로 변환하는 모듈
4 exportToLocalShp 추출 및 변환된 레코드들을 ESRI 사의 Shapefile 포맷으로 로컬 스토리지에 파일 형태로 저장하는 모듈
5 exportToLocalCsv 추출 및 변환된 레코드들을 Microsoft 사의 CSV 포맷으로 로컬 스토리지에 파일 형태로 저장하는 모듈
6 exportToLocalGeoJson 추출 및 변환된 레코드들을 JSON(GEO-JSON) 표준 포맷으로 로컬 스토리지에 파일 형태로 저장하는 모듈
7 exportToHDFS 레코드 또는 파일 형태로 전달 받은 정보를 설정한 HDFS에 적재하는 모듈
한편, 도 7에는 자동으로 규칙을 생성하는 단계(S1093)에서 실제 생성된 규칙을 도시한 것으로, 해당 규칙 내에는 스파우트 및 볼트에 대한 소스코드가 포함되어 있음을 확인할 수 있다.
마지막으로 S1111단계는 앞서 자동으로 생성된 규칙을 실행하는 단계로, 해당 단계에서는 상기 규칙에 맞는 엔진을 통해 실행될 수 있다. 바람직하게는, 상기 스파우트 및 볼트는 아파치 스톰을 통하여 실행될 수 있는 것일 수 있으며, 따라서 사용자가 설계한 워크플로우는 궁극적으로 스크립트로 변환된 뒤 아파치 스톰을 통해 자동적으로 구동될 수 있다.
이상 본 발명에 따른 워크플로우 서비스를 제공하는 방법에 대해 살펴보았다. 한편, 본 발명은 상술한 특정의 실시예 및 응용예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 구별되어 이해되어서는 안 될 것이다.
특히, 본 명세서에 첨부된 도면에 도시된 블록도와 순서도에 포함된 본 발명의 기술적 특징을 실행하는 구성들은 상기 구성들 사이의 논리적인 경계를 의미한다. 그러나 소프트웨어나 하드웨어의 실시 예에 따르면, 도시된 구성들과 그 기능들은 독립형 소프트웨어 모듈, 모놀리식 소프트웨어 구조, 코드, 서비스 및 이들을 조합한 형태로 실행되며, 저장된 프로그램 코드, 명령어 등을 실행할 수 있는 프로세서를 구비한 컴퓨터에서 실행 가능한 매체에 저장되어 그 기능들이 구현될 수 있으므로 이러한 모든 실시 예 역시 본 발명의 권리범위 내에 속하는 것으로 보아야 할 것이다.
따라서, 첨부된 도면과 그에 대한 기술은 본 발명의 기술적 특징을 설명하기는 하나, 이러한 기술적 특징을 구현하기 위한 소프트웨어의 특정 배열이 분명하게 언급되지 않는 한, 단순히 추론되어서는 안 된다. 즉, 이상에서 기술한 다양한 실시 예들이 존재할 수 있으며, 그러한 실시 예들이 본 발명과 동일한 기술적 특징을 보유하면서 일부 변형될 수 있으므로, 이 역시 본 발명의 권리범위 내에 속하는 것으로 보아야 할 것이다.
또한, 순서도의 경우 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 가장 바람직한 결과를 얻기 위하여 도시된 것으로서, 도시된 특정한 순서나 순차적인 순서대로 그러한 동작들을 반드시 실행되어야 한다거나 모든 도시된 동작들이 반드시 실행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티 태스킹과 병렬 프로세싱이 유리할 수 있다. 아울러, 이상에서 기술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징될 수 있다는 점을 이해하여야 한다.
이와 같이, 본 명세서는 그 제시된 구체적인 용어에 의해 본 발명을 제한하려는 의도가 아니다. 따라서, 이상에서 기술한 실시 예를 참조하여 본 발명을 상세하게 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 본 발명의 범위를 벗어나지 않으면서도 본 실시 예들에 대한 개조, 변경 및 변형을 가할 수 있다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 권리범위에 포함되는 것으로 해석되어야 한다.
추출용 도구 10
변환용 도구 20
적재용 도구 30
연결선 50
사용자 단말기 100
서비스 서버 200
처리도구 모음 1000
편집도구 모음 1100

Claims (10)

  1. 공간정보 처리용 워크플로우 서비스를 제공하는 방법에 있어서,
    (a) 공간정보 처리용 워크플로우에 대응되는 스크립트를 로드하는 단계;
    (b) 상기 스크립트에 대하여 파싱(parsing)을 하는 단계;
    (c) 파싱된 스크립트로부터 상기 공간정보 처리용 워크플로우를 식별하는 단계;
    (d) 상기 스크립트로부터 상기 공간정보 처리용 워크플로우를 실행시키기 위한 규칙을 생성하는 단계;
    를 포함하는 것을 특징으로 하는,
    공간정보 처리용 워크플로우 서비스를 제공하는 방법.
  2. 제1항에 있어서,
    상기 (d)단계 이후, 상기 생성된 규칙에 따라 상기 공간정보 처리용 워크플로우를 실행하는 단계;
    를 더 포함하는 것을 특징으로 하는,
    공간정보 처리용 워크플로우 서비스를 제공하는 방법.
  3. 제1항에 있어서,
    상기 (d)단계에서 생성되는 규칙은,
    YAML 양식에 따른 텍스트 기반의 규칙인 것을 특징으로 하는,
    공간정보 처리용 워크플로우 서비스를 제공하는 방법.
  4. 제3항에 있어서,
    상기 (d)단계에서 생성되는 규칙은,
    아파치 스톰 토폴로지(apache storm topology)에서 인식 가능한 규칙인 것을 특징으로 하는,
    공간정보 처리용 워크플로우 서비스를 제공하는 방법.
  5. 제4항에 있어서,
    상기 (d)단계에서 생성되는 규칙은,
    적어도 하나 이상의 스파우트(SPOUT) 및 적어도 하나 이상의 볼트(BOLT)로 구성되는 것을 특징으로 하는,
    공간정보 처리용 워크플로우 서비스를 제공하는 방법.
  6. 제5항에 있어서,
    상기 스파우트(SPOUT)는, 로컬스토리지 또는 스트림으로부터 공간정보를 추출하는 스파우트들 중 적어도 하나 이상인 것을 특징으로 하는,
    공간정보 처리용 워크플로우 서비스를 제공하는 방법.
  7. 제6항에 있어서,
    상기 볼트(BOLT)는, 공간정보를 변환하는 볼트들 공간정보를 적재하는 볼트들 중 적어도 하나 이상인 것을 특징으로 하는,
    공간정보 처리용 워크플로우 서비스를 제공하는 방법.
  8. 제1항에 있어서,
    상기 공간정보 처리용 워크플로우를 식별하는 단계는,
    상기 공간정보 처리용 워크플로우의 흐름을 분석하는 단계; 및
    상기 공간정보 처리용 워크플로우 내 객체를 인식하는 단계;
    를 포함하는 것을 특징으로 하는,
    공간정보 처리용 워크플로우 서비스를 제공하는 방법.
  9. 공간정보 처리용 워크플로우 서비스를 제공하는 방법을 수행하기 위한 명령어들이 저장된 컴퓨터 판독 가능한 저장 매체에 있어서,
    공간정보 처리용 워크플로우 서비스를 제공하는 방법은,
    (a) 공간정보 처리용 워크플로우에 대응되는 스크립트를 로드하는 단계;
    (b) 상기 스크립트에 대하여 파싱(parsing)을 하는 단계;
    (c) 파싱된 스크립트로부터 상기 공간정보 처리용 워크플로우를 식별하는 단계;
    (d) 상기 스크립트로부터 상기 공간정보 처리용 워크플로우를 실행시키기 위한 규칙을 생성하는 단계;
    를 포함하는 것을 특징으로 하는,
    컴퓨터 판독 가능한 저장 매체.
  10. 제9항에 있어서,
    상기 공간정보 처리용 워크플로우 서비스를 제공하는 방법은,
    상기 (d)단계 이후, 상기 생성된 규칙에 따라 상기 공간정보 처리용 워크플로우를 실행하는 단계;
    를 더 포함하는 것을 특징으로 하는,
    컴퓨터 판독 가능한 저장 매체.
KR1020190158775A 2019-12-03 2019-12-03 규칙 기반으로 공간정보 처리용 워크플로우 서비스를 제공하는 방법 및 이러한 방법을 실행시키기 위한 명령어들이 저장된 컴퓨터 판독 가능한 저장 매체 KR20210069241A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190158775A KR20210069241A (ko) 2019-12-03 2019-12-03 규칙 기반으로 공간정보 처리용 워크플로우 서비스를 제공하는 방법 및 이러한 방법을 실행시키기 위한 명령어들이 저장된 컴퓨터 판독 가능한 저장 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190158775A KR20210069241A (ko) 2019-12-03 2019-12-03 규칙 기반으로 공간정보 처리용 워크플로우 서비스를 제공하는 방법 및 이러한 방법을 실행시키기 위한 명령어들이 저장된 컴퓨터 판독 가능한 저장 매체

Publications (1)

Publication Number Publication Date
KR20210069241A true KR20210069241A (ko) 2021-06-11

Family

ID=76376694

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190158775A KR20210069241A (ko) 2019-12-03 2019-12-03 규칙 기반으로 공간정보 처리용 워크플로우 서비스를 제공하는 방법 및 이러한 방법을 실행시키기 위한 명령어들이 저장된 컴퓨터 판독 가능한 저장 매체

Country Status (1)

Country Link
KR (1) KR20210069241A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101641179B1 (ko) 2015-12-31 2016-07-20 아이씨티웨이주식회사 대용량 공간데이터 분산 처리 방법 및 이를 위한 분산 처리 서버

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101641179B1 (ko) 2015-12-31 2016-07-20 아이씨티웨이주식회사 대용량 공간데이터 분산 처리 방법 및 이를 위한 분산 처리 서버

Similar Documents

Publication Publication Date Title
JP6033235B2 (ja) 類例によるデーターのフォーマット処理
US20210318851A1 (en) Systems and Methods for Dataset Merging using Flow Structures
US8601438B2 (en) Data transformation based on a technical design document
US10885000B2 (en) Repairing corrupted references
US20170357486A1 (en) Enhancing a crowdsourced integrated development environment application
JP2006031687A (ja) 外部メタデータの処理
US9582270B2 (en) Effective feature location in large legacy systems
US20130219257A1 (en) Textual and formatted data presentation
AU2015202463B2 (en) Capturing specific information based on field information associated with a document class
KR102199668B1 (ko) 공간정보 처리용 워크플로우를 자동으로 생성하는 서비스를 제공하는 방법 및 이러한 방법을 실행시키기 위한 명령어들이 저장된 컴퓨터 판독 가능한 저장 매체
US20120045150A1 (en) Systems and methods for extracting pedigree and family relationship information from documents
JP2017049639A (ja) 評価プログラム、手順書評価方法、および評価装置
CN109344050B (zh) 一种基于结构树的接口参数分析方法及装置
JP2021140430A (ja) データベースマイグレーション方法、データベースマイグレーションシステム、及びデータベースマイグレーションプログラム
KR20210069241A (ko) 규칙 기반으로 공간정보 처리용 워크플로우 서비스를 제공하는 방법 및 이러한 방법을 실행시키기 위한 명령어들이 저장된 컴퓨터 판독 가능한 저장 매체
CN116339715A (zh) 前端页面构建方法和装置、电子设备及存储介质
JP6447111B2 (ja) 共通化情報提供プログラム、共通化情報提供方法、および共通化情報提供装置
CN109697141B (zh) 用于可视化测试的方法及装置
AU2018313995B2 (en) Systems and methods for providing globalization features in a service management application interface
JP6665637B2 (ja) プログラム作成支援システム
CN116226788B (zh) 一种融合多种数据类型的建模方法及相关设备
US11733847B2 (en) Knowledge engine auto-generation of guided flow experience
US11340918B2 (en) Knowledge engine auto-generation of guided flow experience
US11481859B2 (en) Methods and systems for scheduling a user transport
JP5683209B2 (ja) ドキュメント類自動生成機能付クライアントコンピュータ

Legal Events

Date Code Title Description
E601 Decision to refuse application