KR102291867B1 - 계층적 데이터 저장소 기반 데이터 관리 시스템 및 그의 동작 방법 - Google Patents

계층적 데이터 저장소 기반 데이터 관리 시스템 및 그의 동작 방법 Download PDF

Info

Publication number
KR102291867B1
KR102291867B1 KR1020200166883A KR20200166883A KR102291867B1 KR 102291867 B1 KR102291867 B1 KR 102291867B1 KR 1020200166883 A KR1020200166883 A KR 1020200166883A KR 20200166883 A KR20200166883 A KR 20200166883A KR 102291867 B1 KR102291867 B1 KR 102291867B1
Authority
KR
South Korea
Prior art keywords
data
original data
lightweight
original
uploader
Prior art date
Application number
KR1020200166883A
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 KR1020200166883A priority Critical patent/KR102291867B1/ko
Application granted granted Critical
Publication of KR102291867B1 publication Critical patent/KR102291867B1/ko
Priority to US18/039,832 priority patent/US20240028613A1/en
Priority to JP2023534416A priority patent/JP2023553063A/ja
Priority to PCT/KR2021/017133 priority patent/WO2022119199A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/282Hierarchical databases, e.g. IMS, LDAP data stores or Lotus Notes
    • 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
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • 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
    • G06F16/176Support for shared access to files; File sharing support
    • 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/18File system types
    • G06F16/185Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

계층적 데이터 저장소 기반 데이터 관리 시스템 및 그의 동작 방법이 제공된다. 본 발명의 일실시예들에 따른 데이터 관리 시스템은, 하나 이상의 데이터 소스로부터 원본데이터를 획득하고, 경량화 처리를 통해 획득된 원본데이터를 대응되는 경량데이터로 변환하여 경량데이터 저장소에 업로드하는 데이터 업로더 및 원본데이터 저장소에 특정 원본데이터가 업로드되는 것을 감지함에 응답하여, 매핑테이블에 특정 원본데이터의 업로드 위치를 업데이트하는 데이터 트레이서를 포함할 수 있다. 이러한 데이터 관리 시스템은 데이터 업로드에 소요되는 네트워크 비용과 데이터 공유에 소요되는 인프라 구축 비용을 효과적으로 절감시킬 수 있다.

Description

계층적 데이터 저장소 기반 데이터 관리 시스템 및 그의 동작 방법{SYSTEM FOR MANAGING DATA BASED ON HIERARCHICAL DATA REPOSITORY AND OPERATING METHOD THEREOF}
본 발명은 계층적 데이터 저장소 기반 데이터 관리 시스템 및 그의 동작 방법에 관한 것이다. 보다 상세하게는, 원본데이터 저장소와 경량데이터 저장소를 포함하는 계층적 데이터 저장소 기반으로 대용량의 데이터를 효율적으로 관리하는 시스템 및 그 시스템의 동작 방법에 관한 것이다.
IoT(Internet Of Things) 기술이 발전함에 따라 실시간으로 발생되는 대용량의 데이터를 처리하고 관리할 수 있는 시스템에 대한 수요가 급증하고 있다. 가령, 자율 주행 자동차, 스마트 팩토리 등과 같은 IoT 시스템은 각종 센서를 통해 실시간으로 대용량의 센싱 데이터를 발생시키는데, 이러한 대용량의 센싱 데이터를 효율적으로 처리하고 관리할 수 있는 시스템이 요구되고 있다.
상기와 같은 요구에 따라, 최근 대용량의 데이터를 클라우드 저장소에 업로드(upload)하여 관리하는 시스템이 제안된 바 있다. 제안된 시스템은 시간과 장소에 구애받음 없이 데이터 업로드 및 다운로드(download) 기능을 제공함으로써 매우 우수한 사용자 접근성을 보장할 수 있다.
그러나, 클라우드 저장소에 대용량의 데이터를 업로드하는 것은 상당한 인프라 구축 비용과 네트워크 비용을 요구하며, 네트워크의 가용 대역폭 문제로 인해 지속적으로 발생되는 대용량의 데이터를 클라우드 저장소에 실시간으로 업로드하는 것은 거의 불가능하다.
한국공개특허 제10-2020-0076397호 "공유 데이터베이스 구축 방법"
본 발명의 일실시예들을 통해 해결하고자 하는 기술적 과제는, 데이터 공유에 소요되는 인프라 구축 비용과 데이터 업로드에 소요되는 네트워크 비용을 절감할 수 있는 데이터 관리 시스템 및 그 시스템의 동작 방법을 제공하는 것이다.
본 발명의 일실시예들을 통해 해결하고자 하는 다른 기술적 과제는, 원본데이터 저장소와 경량데이터 저장소를 포함하는 계층적 데이터 저장소 기반으로 대용량의 데이터를 효율적으로 관리할 수 있는 시스템 및 그 시스템의 동작 방법을 제공하는 것이다.
본 발명의 일실시예들을 통해 해결하고자 하는 또 다른 기술적 과제는, 대용량 데이터에 대한 실시간 업로드를 보장할 수 있는 장치 및 그 장치의 동작 방법을 제공하는 것이다.
본 발명의 일실시예들을 통해 해결하고자 하는 또 다른 기술적 과제는, 데이터의 유형에 따라 최적의 경량화 처리를 수행할 수 있는 장치 및 그 장치의 동작 방법을 제공하는 것이다.
본 발명의 일실시예들을 통해 해결하고자 하는 또 다른 기술적 과제는, 원본데이터와 경량데이터 간의 동기화 및 트레이싱(tracing) 기능을 제공할 수 있는 장치 및 그 장치의 동작 방법을 제공하는 것이다.
본 발명의 일실시예들을 통해 해결하고자 하는 또 다른 기술적 과제는, 원본데이터 다운로드에 소요되는 네트워크 비용을 절감할 수 있는 장치 및 그 장치의 동작 방법을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일실시예들에 따른 데이터 관리 시스템은, 하나 이상의 데이터 소스로부터 원본데이터를 획득하고, 경량화 처리를 통해 상기 획득된 원본데이터를 대응되는 경량데이터로 변환하고, 상기 변환된 경량데이터를 경량데이터 저장소에 업로드하며, 상기 변환된 경량데이터의 업로드 정보를 매핑테이블에 등록하는 데이터 업로더 및 원본데이터 저장소에 특정 원본데이터가 업로드되는 것을 감지함에 응답하여, 상기 매핑테이블에서 상기 특정 원본데이터에 대응되는 경량데이터의 엔트리를 조회하고, 상기 조회된 엔트리에 상기 특정 원본데이터의 업로드 위치를 업데이트하는 데이터 트레이서를 포함할 수 있다.
일실시예들에서, 상기 경량데이터 저장소는 상기 원본데이터 저장소보다 사용자 접근성이 높은 저장소로 구현될 수 있다.
일실시예들에서, 상기 데이터 업로더는, 상기 원본데이터를 획득하는 동작, 상기 경량데이터로 변환하는 동작 및 상기 경량데이터 저장소에 업로드하는 동작을 파이프라이닝 방식으로 수행할 수 있다.
일실시예들에서, 상기 데이터 관리 시스템은 상기 원본데이터 저장소에서 상기 특정 원본데이터를 다운로드하고, 상기 특정 원본데이터를 이용하여 미리 정의된 태스크를 수행하는 데이터 코디네이터를 더 포함할 수 있다.
일실시예들에서, 상기 데이터 코디네이터는 상기 특정 원본데이터를 다운로드하는 다운로더와 상기 태스크를 수행하는 태스크 워커를 포함하도록 구성되되, 상기 다운로더의 동작과 상기 태스크 워커의 동작은 파이프라이닝 방식으로 수행될 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일실시예들에 따른 데이터 업로더는, 통신 인터페이스, 하나 이상의 인스트럭션들(instructions)을 저장하는 메모리 및 상기 저장된 하나 이상의 인스트럭션들을 실행시킴으로써, 원본데이터를 획득하고, 상기 획득된 원본데이터가 제1 유형이라는 판단에 응답하여, 제1 경량화 처리를 수행하며, 상기 획득된 원본데이터가 상기 제1 유형과 다른 제2 유형이라는 판단에 응답하여, 상기 제1 경량화 처리와 다른 제2 경량화 처리를 수행하고, 상기 제1 경량화 처리 또는 상기 제2 경량화 처리를 통해 변환된 경량데이터를 상기 통신 인터페이스를 통해 업로드하는 프로세서를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일실시예들에 따른 데이터 업로드 방법은, 컴퓨팅 장치에서 수행되는 데이터 원본데이터의 업로드 방법으로서, 상기 원본데이터를 획득하는 단계, 상기 획득된 원본데이터가 제1 유형이라는 판단에 응답하여, 제1 경량화 처리를 수행하는 단계, 상기 획득된 원본데이터가 상기 제1 유형과 다른 제2 유형이라는 판단에 응답하여, 상기 제1 경량화 처리와 다른 제2 경량화 처리를 수행하는 단계 및 상기 제1 경량화 처리 또는 상기 제2 경량화 처리를 통해 변환된 경량데이터를 업로드하는 단계를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일실시예들에 따른 컴퓨터 프로그램은, 컴퓨팅 장치와 결합되어, 원본데이터를 획득하는 단계, 상기 획득된 원본데이터가 제1 유형이라는 판단에 응답하여, 제1 경량화 처리를 수행하는 단계, 상기 획득된 원본데이터가 상기 제1 유형과 다른 제2 유형이라는 판단에 응답하여, 상기 제1 경량화 처리와 다른 제2 경량화 처리를 수행하는 단계 및 상기 제1 경량화 처리 또는 상기 제2 경량화 처리를 통해 변환된 경량데이터를 업로드하는 단계를 실행시키기 위하여, 컴퓨터로 판독가능한 기록매체에 저장될 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일실시예들에 따른 데이터 코디네이터는, 경량데이터 저장소와 원본데이터 저장소를 포함하는 계층적 데이터 저장소를 위한 데이터 코디네이터로서, 통신 인터페이스, 하나 이상의 인스트럭션들(instructions)을 저장하는 메모리 및 상기 저장된 하나 이상의 인스트럭션들을 실행시킴으로써, 상기 통신 인터페이스를 통해 상기 경량데이터 저장소에 저장된 특정 경량데이터의 식별자를 수신하고, 상기 수신된 식별자를 이용하여 상기 원본데이터 저장소에서 상기 특정 경량데이터에 대응되는 원본데이터를 다운로드하며, 상기 다운로드된 원본데이터를 이용하여 미리 정의된 태스크를 수행하는 프로세서를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일실시예들에 따른 데이터 코디네이팅 방법은, 경량데이터 저장소와 원본데이터 저장소를 포함하는 계층적 데이터 저장소를 위한 컴퓨팅 장치에서 수행되는 데이터 코디네이팅 방법으로서, 상기 경량데이터 저장소에 저장된 특정 경량데이터의 식별자를 수신하는 단계, 상기 수신된 식별자를 이용하여 상기 원본데이터 저장소에서 상기 특정 경량데이터에 대응되는 원본데이터를 다운로드하는 단계 및 상기 다운로드된 원본데이터를 이용하여 미리 정의된 태스크를 수행하는 단계를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일실시예들에 따른 컴퓨터 프로그램은, 경량데이터 저장소에 저장된 특정 경량데이터의 식별자를 수신하는 단계, 상기 수신된 식별자를 이용하여 원본데이터 저장소에서 상기 특정 경량데이터에 대응되는 원본데이터를 다운로드하는 단계 및 상기 다운로드된 특정 원본데이터를 이용하여 미리 정의된 태스크를 수행하는 단계를 실행시키기 위하여, 컴퓨터로 판독가능한 기록매체에 저장될 수 있다.
상술한 본 발명 일실시예들에 따르면, 경량화 처리를 통해 원본데이터가 경량데이터로 변환되고, 변환된 경량데이터가 업로드될 수 있다. 이에 따라, 데이터 업로드의 실시간성이 보장될 수 있으며, 데이터 업로드에 소요되는 네트워크 비용이 크게 절감될 수 있다.
또한, 경량데이터 저장소만을 사용자 접근성이 높은 저장소(e.g. 클라우드 저장소)로 구현함으로써, 데이터 공유를 위한 인프라 구축 비용이 크게 절감될 수 있다.
또한, 단순 압축 방식이 아니라 원본데이터의 유형 및 특성에 따라 서로 다른 방식의 경량화 알고리즘을 적용함으로써, 경량화 처리의 효율성이 향상될 수 있다.
또한, 경량화 처리, 데이터 업로드 동작 등을 파이프라이닝(pipelining) 방식으로 수행함으로써, 데이터 업로드의 실시간성이 더욱 확실하게 보장될 수 있다.
또한, 원본데이터의 업로드를 감지하고 업로드 위치를 추적하는 데이터 트레이서를 구비함으로써, 원본데이터와 경량데이터 간의 대응 관계가 효과적으로 관리될 수 있으며, 원본데이터와 경량데이터 간의 데이터 동기화가 보장될 수 있다.
또한, 원본데이터를 다운로드하고 미리 정의된 태스크를 수행하는 데이터 코디네이터를 구비함으로써, 사용자가 직접 원본데이터를 다운로드하는 것이 최소화될 수 있다. 이에 따라, 원본데이터 다운로드에 소요되는 네트워크 비용이 크게 절감될 수 있으며, 원본데이터 저장소에 대한 인프라 구축 비용 또한 크게 절감될 수 있다.
또한, 원본데이터 다운로드 및 태스크 수행 동작 등을 파이프라이닝 방식으로 수행함으로써, 태스크 수행 시간이 크게 단축될 수 있다.
본 발명의 기술적 사상에 따른 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일실시예들에 따른 계층적 데이터 저장소 기반 데이터 관리 시스템을 개략적으로 나타내는 예시적인 구성도이다.
도 2는 본 발명의 일실시예들에 따른 데이터 업로더의 구현 방식을 설명하기 위한 예시적인 도면이다.
도 3은 본 발명의 일실시예들에 따른 데이터 코디네이터의 구현 방식을 설명하기 위한 예시적인 도면이다.
도 4는 본 발명의 일실시예들에 따른 데이터 업로더의 동작 방법을 나타내는 예시적인 흐름도이다.
도 5 내지 도 7은 본 발명의 일실시예들에 따른 데이터 업로더의 경량화 처리 방법을 설명하기 위한 예시적인 도면이다.
도 8 및 도 9는 본 발명의 일실시예들에 따른 데이터 업로더에 적용될 수 있는 파이프라이닝 방식을 설명하기 위한 예시적인 도면이다.
도 10은 본 발명의 일실시예들에 따른 데이터 트레이서의 동작 방법을 나타내는 예시적인 흐름도이다.
도 11은 본 발명의 일실시예들에 따른 데이터 코디네이터의 동작 방법을 나타내는 예시적인 흐름도이다.
도 12 및 도 13은 본 발명의 일실시예들에 따른 데이터 코디네이터에 적용될 수 있는 파이프라이닝 방식을 설명하기 위한 예시적인 도면이다.
도 14는 본 발명의 다양한 실시예들에 따른 장치 및/또는 시스템을 구현할 수 있는 예시적인 컴퓨팅 장치를 도시한다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.
본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 "~사이에"와 "바로~사이에" 또는 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일실시예들에 따른 계층적 데이터 저장소 기반 데이터 관리 시스템을 개략적으로 나타내는 예시적인 구성도이다.
도 1에 도시된 바와 같이, 상기 데이터 관리 시스템은 하나 이상의 데이터 소스(1-1, 1-2, ??, 1-n)로부터 획득된 원본데이터를 계층적 데이터 저장소(30)를 이용하여 관리하는 시스템일 수 있다.
여기서, 데이터 소스(1-1, 1-2, ??, 1-n)는 원본데이터를 발생시키거나 제공하는 모듈로서, 예를 들어 실시간으로 센싱 데이터를 발생시키는 센서, 소정의 데이터를 생성하는 데이터 모델 또는 그들이 탑재된 장치/시스템 등이 될 수 있다. 보다 구체적인 예로서, 데이터 소스(1-1, 1-2, ??, 1-n)는 자율 주행 자동차, 스마트 홈(smart home), 스마트 팜(smart farm), 스마트 팩토리(smart factor) 등과 같은 IoT(Internet Of Things) 시스템(또는 센서 기반 시스템) 또는 상기 시스템을 구성하는 각종 센서들일 수 있다. 이러한 경우, 데이터 관리 시스템은 각종 센서들로부터 실시간으로 발생되는 대량의 센싱 데이터를 계층적 데이터 저장소(30)를 이용하여 효율적으로 관리하는 시스템으로 기능할 수 있다. 가령, 데이터 관리 시스템은 자율 주행 자동차의 각종 센서들로부터 실시간으로 발생되는 대량의 센싱 데이터를 계층적 데이터 저장소(30)를 이용하여 관리하고, 타깃 시스템(3)을 통해 센싱 데이터를 분석하여 자율 주행 자동차의 정상적인 동작을 검증하는 시스템으로 기능할 수 있다. 이때, 타깃 시스템(3)은 센싱 데이터로부터 자율 주행 자동차의 동작이 정상인지 여부를 판단할 있도록 학습된 인공지능 모델 또는 그 모델이 탑재된 컴퓨팅 장치/시스템일 수 있다. 이하에서는, 하나 이상의 데이터 소스(1-1, 1-2, ??, 1-n)를 통칭하거나 임의의 데이터 소스((1-1 or 1-2 or ?? or 1-n)를 지칭하는 경우에는 참조번호 "1"을 사용하도록 한다.
도시된 바와 같이, 상기 데이터 관리 시스템은 데이터 업로더(10; data uploader), 계층적 데이터 저장소(30), 데이터 트레이서(50; data tracer) 및 데이터 코디네이터(70; data coordinator)를 포함할 수 있다. 단, 이는 본 발명의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 구성요소가 추가되거나 삭제될 수 있음은 물론이다. 또한, 도 1에 도시된 데이터 관리 시스템의 각각의 구성요소들(e.g. 10, 50, 70 등)은 기능적으로 구분되는 기능 요소들을 나타낸 것으로서, 복수의 구성요소가 실제 물리적 환경에서는 서로 통합되는 형태로 구현될 수도 있음에 유의한다.
또한, 실제 물리적 환경에서 상기 각각의 구성요소들(e.g. 10, 50, 70 등)은 복수의 세부 기능 요소로 분리되거나 복수의 물리적 컴퓨팅 장치에서 구현될 수도 있다. 예컨대, 데이터 업로더(10)의 제1 기능은 제1 컴퓨팅 장치에서 구현되고, 데이터 업로더(10)의 제2 기능은 제2 컴퓨팅 장치에서 구현될 수도 있다. 또는, 데이터 업로더(10)의 특정 기능이 복수의 컴퓨팅 장치에서 구현될 수도 있다.
상기 컴퓨팅 장치는 예를 들어 노트북, 데스크톱(desktop), 랩탑(laptop) 등이 될 수 있을 것이나, 이에 한정되는 것은 아니며, 컴퓨팅 기능이 구비된 모든 종류의 장치를 포함할 수 있다. 컴퓨팅 장치의 일 예시에 관하여서는 도 14를 참조하도록 한다. 이하, 데이터 관리 시스템의 각 구성요소에 대하여 설명한다.
데이터 업로더(10)는 데이터 소스(1)로부터 획득된 원본데이터에 대한 업로드 기능을 구비한 컴퓨팅 모듈 또는 컴퓨팅 장치일 수 있다. 보다 구체적으로, 데이터 업로더(10)는 경량화 처리를 통해 데이터 소스(1)로부터 획득된 원본데이터를 경량데이터로 변환하고, 변환된 경량데이터를 경량데이터 저장소(31)에 업로드할 수 있다. 그렇게 함으로써, 데이터 업로드에 요구되는 네트워크 비용이 크게 절감될 수 있고, 대량의 원본데이터가 발생되는 환경에서도 데이터 업로드가 실시간으로 이루어질 수 있다. 이하에서는, 설명의 편의상 데이터 업로더(10)를 "업로더(10)"로 약칭하도록 한다.
도 1은 데이터 소스(1)와 업로더(10)가 다대일 관계인 것을 예로써 도시하고 있다. 그러나, 데이터 소스(1)와 업로더(10)는 일대일 관계 또는 다대다 관계로 설계될 수도 있다. 또한, 업로더(10)는 데이터 소스(1)와 구분되는 별도의 컴퓨팅 장치로 구현될 수도 있고, 데이터 소스(1) 또는 데이터 소스(1) 관련 시스템에 탑재되는 컴퓨팅 모듈로 구현될 수도 있다.
업로더(10)는 하나 이상의 컴퓨팅 장치(또는 모듈)로 구현될 수 있다. 다만, 그 구체적인 구현 방식은 실시예에 따라 달라질 수 있다.
일실시예들에서, 업로더(10)는 단일 컴퓨팅 장치로 구현될 수 있다. 가령, 업로더(10)에 요구되는 부하(e.g. 컴퓨팅 비용)가 크지 않은 환경이라면(e.g. 발생되는 원본데이터의 양이 적거나, 경량화 처리에 소요되는 컴퓨팅 비용이 적은 경우), 단일 컴퓨팅 장치 내에서 원본데이터 획득, 경량화 처리 및 데이터 업로드 등의 동작이 함께 수행될 수 있다.
다른 일실시예들에서, 업로더(10)는 복수의 컴퓨팅 장치로 구현될 수 있다. 가령, 도 2에 도시된 바와 같이, 업로더(10)는 원본데이터(또는 원본데이터 청크(e.g. ODC3, ODC4 등))를 획득하는 제1 컴퓨팅 장치(11)와 경량화 처리 및 경량데이터(또는 경량데이터 청크(e.g. LDC1))의 업로드를 수행하는 제2 컴퓨팅 장치(13)로 구현될 수 있다. 이러한 경우, 제1 컴퓨팅 장치(11)와 제2 컴퓨팅 장치(13)는 통신 케이블(e.g. 크로스오버 케이블, 다이렉트 케이블 등)을 통해 연결될 수 있으며, 제2 컴퓨팅 장치(13)는 예를 들어 공유 디렉토리(shard directory)를 통해 제1 컴퓨팅 장치(11)로부터 원본데이터를 획득할 수 있다. 그러나, 이에 한정되는 것은 아니다. 다른 예로서, 업로더(10)는 원본데이터를 획득하는 제1 컴퓨팅 장치(e.g. 11), 경량화 처리를 수행하는 제2 컴퓨팅 장치 및 데이터 업로드를 수행하는 제3 컴퓨팅 장치로 구현될 수도 있다.
또 다른 일실시예들에서, 업로더(10)는 복수의 컴퓨팅 장치로 구현되되, 측정 부하에 따라 다른 방식으로 동작할 수도 있다. 구체적으로, 측정 부하가 기준치 이하인 경우 업로더(10)의 모든 동작은 단일 컴퓨팅 장치에 의해 수행되고, 기준치 이상인 경우 업로더(10)의 동작은 복수의 컴퓨팅 장치에서 수행될 수 있다. 가령, 측정 부하가 기준치 이상인 경우, 업로더(10)는 도 2에 예시된 바와 같이 동작할 수 있다.
업로더(10)의 동작 방법에 관하여서는 추후 도 4 이하의 도면을 참조하여 보다 상세하게 설명하도록 한다. 본 발명에서, 업로더(10)의 동작 방법은 "데이터 업로드 방법"으로 명명될 수도 있다.
다시 도 1을 참조하여 설명한다.
계층적 데이터 저장소(30)는 경량데이터와 원본데이터가 저장되는 저장소를 의미할 수 있으며, 도시된 바와 같이, 경량데이터 저장소(31), 원본데이터 저장소(35) 및 매핑테이블(33; mapping table)을 포함할 수 있다.
경량데이터 저장소(31)는 경량데이터가 저장(업로드)되는 저장소로서, 개념적으로 상위 계층의 저장소일 수 있다. 가령, 데이터 업로더(10)에 의해 업로드되는 경량데이터가 경량데이터 저장소(31)에 저장될 수 있다. 경량데이터 저장소(31)는 다수의 사용자 간에 데이터를 리뷰하거나 공유하는 등의 용도로 활용될 수 있을 것이나, 본 발명의 범위가 이에 한정되는 것은 아니다.
다음으로, 원본데이터 저장소(35)는 원본데이터가 저장(업로드)되는 저장소로서, 개념적으로 하위 계층의 저장소일 수 있다. 가령, 사용자에 의해 추후에 업로드되는 원본데이터가 원본데이터 저장소(35)에 저장될 수 있다.
각 저장소(31, 35)는 파일, 데이터베이스, 클라우드(cloud) 저장소, 로컬 저장소, 블록체인 네트워크(blockchain network) 등과 같이 다양한 형태로 구현될 수 있다. 따라서, 본 발명의 범위가 저장소(31, 35)의 구현 형태에 의해 제한되는 것은 아니다.
일실시예들에서, 경량데이터 저장소(31)는 상대적으로 사용자 접근성이 높은 저장소로 구현되고, 원본데이터 저장소(35)는 상대적으로 사용자 접근성이 낮은 저장소로 구현될 수 있다. 가령, 경량데이터 저장소(31)는 다수의 사용자가 접근하기 용이한 클라우드 저장소로 구현되고, 원본데이터 저장소(35)는 로컬 저장소(e.g. 로컬 데이터 센터)로 구현될 수 있다. 이러한 경우, 데이터 공유에 소요되는 인프라 구축 비용이 크게 절감될 수 있다.
한편, 도 1은 계층적 데이터 저장소(30)가 2개 계층의 데이터 저장소(31, 35)로 이루어진 것을 예로써 도시하고 있으나, 본 발명의 범위가 이에 한정되는 것은 아니며, 계층적 데이터 저장소(30)는 3개 이상 계층으로 이루어질 수도 있다. 가령, 계층적 데이터 저장소(30)는 원본데이터 저장소(e.g. 35), 제1 경량데이터가 저장된 제1 경량데이터 저장소(e.g. 31), 제1 경량데이터에 대해 추가 경량화 처리(e.g. 데이터 요약)를 수행하여 생성된 제2 경량데이터가 저장되는 제2 경량데이터 저장소로 구성될 수도 있다.
다음으로, 매핑테이블(33)은 경량데이터와 원본데이터 간의 대응 관계를 저장하고 있는 테이블로서, 매핑테이블(33)의 각 엔트리(entry)에는 경량데이터와 원본데이터의 업로드 정보가 저장될 수 있다.
경량데이터의 업로드 정보는 예를 들어 경량데이터의 식별자(e.g. ID, 이름 등), 경량데이터의 업로드 위치 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 또한, 원본데이터의 업로드 정보는 예를 들어 원본데이터의 식별자, 원본데이터의 업로드 위치 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 경량데이터와 대응되는 원본데이터는 동일한 식별자를 공유할 수 있고, 구현 방식에 따라 각 데이터에 별도의 식별자가 할당될 수도 있다.
매핑테이블(33)은 다양한 방식으로 설계 및 구현될 수 있다. 가령, 매핑테이블(33)은 원본데이터와 경량데이터 간에 공유되는 식별자(e.g. ID, 이름 등)를 키(key)로 갖고, 경량데이터 또는 원본데이터의 업로드 위치 등을 값(value)으로 갖는 해시테이블(hash table)로 구현될 수 있다. 그러나, 본 발명의 범위가 이에 한정되는 것은 아니다.
다음으로, 데이터 트레이서(50)는 원본데이터 및/또는 경량데이터에 대한 트레이싱 기능을 구비한 컴퓨팅 모듈 또는 컴퓨팅 장치일 수 있다. 구체적으로, 데이터 트레이서(50)는 원본데이터 저장소(35)를 모니터링하여 특정 원본데이터가 업로드되는 것을 감지할 수 있다. 그리고, 이에 응답하여 데이터 트레이서(50)는 특정 원본데이터의 업로드 위치를 매핑테이블(33)의 관련 엔트리(entry)에 기록함으로써, 매핑테이블(33)을 업데이트할 수 있다. 다른 예로써, 데이터 트레이서(50)는 경량데이터 저장소(31)에 특정 경량데이터가 업로드되는 것을 감지하고, 이에 응답하여 특정 경량데이터의 업로드 위치를 매핑테이블(33)의 관련 엔트리에 기록할 수도 있다. 이하에서는, 설명의 편의상 데이터 트레이서(50)를 "트레이서(50)"로 약칭하도록 한다.
일실시예들에서, 트레이서(50)는 경량데이터 저장소(31)와 원본데이터 저장소(35) 간의 데이터 동기화를 수행할 수도 있다. 가령, 트레이서(50)는 원본데이터 저장소(35)에서 특정 원본데이터가 삭제된 것을 감지하고, 이에 응답하여 경량데이터 저장소(31)에서 대응되는 경량데이터를 삭제할 수 있다. 또는, 트레이서(50)는 경량데이터 저장소(31)에서 특정 경량데이터가 삭제된 것을 감지하고, 이에 응답하여 원본데이터 저장소(35)에서 대응되는 원본데이터를 삭제할 수도 있다. 다른 예로서, 트레이서(50)는 경량데이터 저장소(31)와 원본데이터 저장소(35)의 대응 관계를 검사하고, 검사 결과에 기반하여 데이터 동기화를 수행할 수 있다. 가령, 트레이서(50)는 특정 원본데이터에 대응되는 경량데이터가 존재하지 않는다는 검사 결과에 응답하여 특정 원본데이터에 대한 경량데이터를 생성하여 경량데이터 저장소(31)에 업로드할 수도 있다. 본 실시예에서, 데이터 동기화는 주기 또는 비주기적으로 수행될 수 있다. 가령, 트레이서(50)는 가용 컴퓨팅 자원이 기준치 이상인 경우에 데이터 동기화를 수행할 수도 있다.
트레이서(50)의 동작 방법에 관하여서는 추후 도 10을 참조하여 보다 상세하게 설명하도록 한다. 본 발명에서, 트레이서(50)의 동작 방법은 "데이터 트레이싱 방법"으로 명명될 수도 있다.
다음으로, 데이터 코디네이터(70)는 계층적 데이터 저장소(30)에 저장된 데이터를 이용하여 미리 정의된 태스크(task)를 수행할 수 있는 컴퓨팅 모듈 또는 컴퓨팅 장치일 수 있다. 가령, 데이터 코디네이터(70)는 사용자의 요청(명령)에 따라 원본데이터 저장소(35)로부터 특정 원본데이터를 다운로드하고, 특정 원본데이터를 타깃 시스템(3)으로 전송하여 소정의 태스크를 수행할 수 있다. 이러한 경우, 사용자가 원본데이터 저장소(35)에 접근하여 원본데이터를 다운로드하는 것이 최소화되는 바, 원본데이터의 다운로드에 소요되는 네트워크 비용이 크게 절감될 수 있다. 또한, 이러한 경우, 데이터 코디네이터(70)는 원본데이터 저장소(35)와 물리적으로 가까운 장소에 위치하고, 원본데이터 저장소(35)와 고속의 데이터 다운로드를 보장할 수 있는 회선(e.g. 고대역폭의 전용선)으로 연결되는 것이 바람직할 수 있다. 데이터 코디네이터(70)와 타깃 시스템(3)은 적절한 통신 케이블 및/또는 통신 방식(e.g. 이더넷, LVDS 등)으로 통신할 수 있다. 이하에서는, 설명의 편의상 데이터 코디네이터(70)를 "코디네이터(70)"로 약칭하도록 한다.
상기 태스크는 예를 들어 타깃 시스템(3)의 학습(e.g. 인공지능 기반의 이상 검출 모델을 학습), 타깃 시스템(3)을 통한 데이터 소스(1) 관련 시스템의 검증(e.g. 이상 검출 모델을 통해 데이터 소스 1 관련 시스템의 동작 이상을 판단) 등과 같이 원본데이터 및/또는 경량데이터를 이용한 임의의 프로세싱 작업을 포함할 수 있다. 따라서, 본 발명의 범위가 특정 유형의 태스크에 한정되는 것은 아니다.
한편, 코디네이터(70)는 하나 이상의 컴퓨팅 장치(또는 모듈)로 구현될 수 있다. 다만, 그 구체적인 구현 방식은 실시예에 따라 달라질 수 있다.
일실시예들에서는, 도 3에 도시된 바와 같이, 코디네이터(70)가 태스크 워커(71)와 복수의 다운로더(73 내지 75)로 구현될 수 있다. 태스크 워커(71)는 미리 정의된 태스크를 수행하는 컴퓨팅 장치로서, 복수의 다운로더(73 내지 75)와 스위치(72) 등과 같은 통신 장치를 통해 연결될 수 있다. 다운로더(73 내지 75)는 원본데이터 저장소(35)로부터 원본데이터(또는 원본 데이터 청크(ODC)를 다운로드하고, 태스크 워커(71)는 다운로드된 원본데이터(ODC)를 타깃 시스템(3)으로 전송(주입)하여 미리 정의된 태스크를 수행할 수 있다. 태스크 워커(71)는 예를 들어 공유 디렉토리를 통해 복수의 다운로더(73 내지 75)로부터 원본데이터(ODC)를 획득할 수 있을 것이나, 본 발명의 범위가 이에 한정되는 것은 아니다. 참고로, 도 3은 타깃 시스템(3)으로의 데이터 전송 속도가 데이터 다운로드 속도를 상회하는 환경을 가정한 것이며, 이와 다른 환경이라면 태스크 워커(71)와 다운로더(73 내지 75)의 대수는 도 3에 예시된 바와 다르게 설계될 수도 있다.
코디네이터(70)의 동작 방법에 관하여서는 추후 도 11 내지 도 13을 참조하여 보다 상세하게 설명하도록 한다. 본 발명에서, 코디네이터(70)의 동작 방법은 "데이터 코디네이팅 방법"으로 명명될 수도 있다.
한편, 도 1에 도시된 각 구성요소(e.g. 10)의 적어도 일부는 소프트웨어(Software) 또는, FPGA(Field Programmable Gate Array)나 ASIC(Application-Specific Integrated Circuit)과 같은 하드웨어(Hardware)를 의미할 수 있다. 그렇지만, 상기 구성요소들은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 어드레싱(Addressing)할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 상기 구성요소들 안에서 제공되는 기능은 더 세분화된 구성요소에 의하여 구현될 수 있으며, 복수의 구성요소들을 합하여 특정한 기능을 수행하는 하나의 구성요소로 구현될 수도 있다.
지금까지 도 1 내지 도 3을 참조하여 본 발명의 일실시예들에 따른 계층적 데이터 저장소 기반의 데이터 관리 시스템에 대하여 설명하였다. 이하에서는, 도 4 이하의 도면을 참조하여 상기 데이터 관리 시스템에서 수행될 수 있는 다양한 동작 방법들에 대하여 상세하게 설명하도록 한다.
이하에서 후술될 방법들의 각 단계는 컴퓨팅 장치의 프로세서에 의해 실행되는 하나 이상의 인스트럭션들로 구현될 수 있으며, 이해의 편의상 도 1에 예시된 시스템 구성을 가정하여 설명을 이어가도록 한다. 따라서, 특정 단계의 동작 주체가 생략된 경우, 도 1에 예시된 데이터 관리 시스템의 구성요소(e.g. 10, 50, 70 등)에 의해 수행될 수 있는 것으로 이해될 수 있다.
도 4는 본 발명의 일실시예들에 따른 데이터 업로더(10)의 동작 방법을 나타내는 예시적인 흐름도이다. 단, 이는 본 발명의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 단계가 추가되거나 삭제될 수 있음은 물론이다.
도 4에 도시된 바와 같이, 상기 동작 방법은 원본데이터를 획득하는 단계 S100에서 시작될 수 있다. 예를 들어, 업로더(10)는 하나 이상의 데이터 소스(1)로부터 원본데이터를 획득할 수 있다. 이러한 원본데이터는 예를 들어 실시간으로 발생되는 대용량 데이터일 수 있다. 그러나, 이에 한정되는 것은 아니다.
단계 S120에서, 획득된 원본데이터에 대해 경량화 처리가 수행됨으로써, 원본데이터가 경량데이터로 변환될 수 있다. 가령, 업로더(10)는 획득된 원본데이터가 제1 유형이라는 판단에 응답하여 제1 경량화 처리를 수행하고, 제12 유형과 다른 제2 유형이라는 판단에 응답하여 제1 경량화 처리와 다른 제2 경량화 처리를 수행할 수 있다. 다시 말해, 경량화 처리를 효율성을 위해 원본데이터의 유형에 따라 다른 경량화 알고리즘이 적용될 수 있다. 이하, 경량화 처리 방법에 대하여 보다 상세하게 설명하도록 한다.
일실시예들에서, 원본데이터는 싱글 이미지(single image)일 수 있다. 가령, 원본데이터는 싱글 카메라에 의해 생성된 싱글 뷰 이미지일 수 있다. 이러한 경우, 업로더(10)는 이미지의 비트 심도(bit depth) 및/또는 채널의 개수를 감소시키는 제1 처리를 수행할 수 있다 (e.g. 8비트/3채널 이미지를 8비트/1채널 이미지로 변환). 또는, 업로더(10)는 이미지의 크기를 축소시키는 제2 처리를 수행할 수 있다. 또는, 업로더(10)는 비디오 압축 알고리즘(e.g. H.264 등)을 적용하여 복수의 싱글 이미지를 비디오 이미지(e.g. mp4 파일)로 변환하는 제3 처리를 수행할 수 있다. 또는, 업로더(10)는 상술한 제1 처리 내지 제3 처리의 다양한 조합에 기초하여 경량화 처리를 수행할 수 있다. 가령, 업로더(10)는 제1 처리, 제2 처리 및 제3 처리를 순차적으로 수행하여 싱글 이미지를 비디오 이미지(영상)로 변환할 수 있다.
다른 일실시예들에서는, 도 5에 도시된 바와 같이, 원본데이터(21)가 복수의 이미지로 구성된 멀티 이미지(multi-image)일 수 있다. 가령, 원본데이터(21)는 멀티 카메라에 의해 촬영된 멀티 뷰 이미지일 수 있다. 이러한 경우, 업로더(10)는 복수의 이미지(21)를 접합(concatenation)하고, 접합된 이미지(23)에 대해 경량화 처리를 수행하여 경량이미지(25)로 변환할 수 있다. 이때, 상기 경량화 처리는 예를 들어 싱글 이미지의 경량화 처리 방식에 따라 수행될 수 있다.
또 다른 일실시예들에서는, 도 6에 도시된 바와 같이, 원본데이터(31)가 미리 정의된 포맷(도 6 참조)의 메시지(즉, 메시지 객체; msg)일 수 있다. 이러한 경우, 업로더(10)는 하나 이상의 메시지(31)를 메시지큐(33; msgQ)에 저장하고, 메시지큐(33)를 직렬화(serialization)하여 바이너리 데이터(35)로 변환할 수 있다. 또한, 업로더(10)는 바이너리 데이터(33)를 압축하여 경량데이터(37)로 변환할 수 있다. 이때, 상기 압축은 무손실 기반의 압축 알고리즘(e.g. zip)에 기초하여 수행될 수 있을 것이나, 이에 한정되는 것은 아니다. 업로더(10)는 메시지큐(33)가 풀(full) 상태일 때마다 상술한 경량화 처리를 수행할 수 있고, 미리 설정된 주기에 따라 경량화 처리를 수행할 수도 있다. 또한, 업로더(10)는 메시지큐(33)를 이용하지 않고 하나 이상의 메시지(31)에 대해 바로 직렬화를 수행할 수도 있다.
또 다른 일실시예들에서는, 원본데이터가 라이다(LIDAR; Light Imaging Detection and Ranging) 또는 레이더(RADAR; RAdio Detection And Ranging) 센서에 의해 생성된 데이터일 수 있다. 이러한 경우, 업로더(10)는 원본데이터를 점군(point cloud) 형태의 이미지로 변환하고, 변환된 이미지에 대해 경량화 처리를 수행하여 제1 경량데이터인 비디오 이미지를 생성할 수 있다. 이때, 상기 경량화 처리는 예를 들어 싱글 이미지의 경량화 처리 방식에 따라 수행될 수 있다. 또는, 업로더(10)는 원본데이터를 압축하여 제2 경량데이터를 생성할 수도 있다. 또는, 업로더(10)는 원본데이터로부터 상기 제1 경량데이터와 상기 제2 경량데이터를 함께 생성할 수도 있다.
또 다른 일실시예들에서는, 원본데이터가 복수의 프레임으로 구성된 비디오 이미지(영상)일 수 있다. 이러한 경우, 업로더(10)는 복수의 프레임 중에서 중요도가 낮은 일부 프레임을 삭제하는 경량화 처리를 수행할 수 있다. 이때, 중요도가 낮은 프레임은 예를 들어 객체의 움직임이 적은 프레임, 객체의 개수가 적은 프레임, 이전 프레임과의 중첩률이 매우 높은 프레임, 관심 객체가 포함되어 있지 않은 프레임 등이 될 수 있을 것이나, 이에 한정되는 것은 아니다. 경우에 따라, 업로더(10)는 복수의 프레임 중에서 랜덤하게 기 설정된 개수의 프레임을 삭제할 수도 있다.
또 다른 일실시예들에서는, 도 7에 도시된 바와 같이, 원본데이터(41)가 이미지이고 업로더(10)는 원본이미지(41)의 영역(e.g. 411, 413) 별로 차등화된 압축 품질(또는 경량화 정도)을 적용할 수 있다. 가령, 업로더(10)는 원본이미지(41)에서 객체 영역(411)을 검출하고, 객체 영역(411)을 고품질로 압축하고 배경 영역(413)을 저품질로 압축할 수 있다(이미지 43 참조). 이때, 객체 영역(411)의 검출은 예를 들어 컴퓨터 비전 알고리즘 또는 인공지능 기반의 객체 검출 모델(e.g. CNN 모델)에 기초하여 수행될 수 있을 것이나, 이에 한정되는 것은 아니다. 다른 예로서, 업로더(10)는 원본이미지(41)에서 복수의 객체 영역을 검출하고, 객체 영역의 중요도에 따라 차등화된 압축 품질을 적용할 수도 있다. 즉, 중요도가 높은 제1 객체 영역에는 상대적으로 높은 압축 품질이 적용되고, 중요도가 낮은 제2 객체 영역에는 상대적으로 낮은 압축 품질이 적용될 수 있다. 여기서, 객체 영역의 중요도는 예를 들어 영역(객체)의 크기, 관심 객체인지 여부 등에 기초하여 결정될 수 있을 것이나, 이에 한정되는 것은 아니다.
또 다른 일실시예들에서, 원본데이터는 이미지이고 업로더(10)는 딥러닝(deep-learning) 모델에 기반하여 경량화 처리를 수행할 수도 있다. 이때, 딥러닝 모델은 인코더(encoder)와 디코더(decoder) 구조로 이루어질 수 있고, 인코더는 입력이미지로부터 특징데이터를 추출하도록 학습되고 디코더는 특징데이터를 디코딩하여 입력이미지와 동일한 이미지를 출력하도록 학습된 신경망일 수 있다. 이러한 경우, 업로더(10)는 상기 인코더를 이용하여 원본이미지로부터 특징데이터를 추출하고, 추출된 특징데이터를 압축하여 경량데이터로 변환할 수 있다. 추후에, 경량데이터는 압축 해제 후 디코더를 통해 디코딩됨으로써 원본이미지로 변환될 수 있다.
또 다른 일실시예들에서, 업로더(10)는 상술한 다양한 실시예들의 조합에 기초하여 경량화 처리를 수행할 수도 있다.
다시 도 4를 참조하여 설명한다.
단계 S140에서, 경량데이터에 메타데이터가 태깅될 수 있다. 메타데이터는 예를 들어 원본데이터의 식별자, 크기, 환경데이터 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 상기 환경데이터는 예를 들어 센싱 환경에 관한 데이터로서, 시간, 위치(장소), 날씨, 기후, 지형, 도로 상태 등에 관한 정보를 포함할 수 있다. 그러나, 이에 한정되는 것은 아니다. 참고로, 업로더(10)는 원본데이터 획득 시점의 시간 및 위치 정보를 토대로 인터넷에서 제공하는 정보를 수집함으로써 환경데이터를 생성할 수 있다. 그러나, 이에 한정되는 것은 아니다.
일실시예들에서, 본 단계 S140은 생략될 수도 있다.
단계 S160에서, 경량데이터가 업로드될 수 있다. 구체적으로, 업로더(10)는 경량데이터 저장소(31)에 경량데이터를 업로드할 수 있다. 그리고, 업로더(10)는 경량데이터의 식별자, 경량데이터 저장소(31)의 저장 위치 등의 업로드 정보를 매핑테이블(33)에 등록할 수 있다. 가령, 업로더(10)는 상기 업로드 정보를 매핑테이블(33)의 신규 엔트리에 등록할 수 있다.
한편, 본 발명의 일실시예들에 따르면, 상술한 단계(동작) S100 내지 S160은 업로더(10)에 의해 파이프라이닝(pipelining) 방식으로 수행될 수도 있다. 그렇게 함으로써, 데이터 업로드의 실시간성이 더욱 확실하게 보장될 수 있다. 이하에서는, 보다 이해의 편의를 제공하기 위해, 도 8 및 도 9를 참조하여 본 실시예에 대하여 부연 설명하도록 한다.
도 8은 본 발명의 일실시예들에 따른 업로더(10)에 적용될 수 있는 예시적인 파이프라이닝 방식을 개념적으로 도시하고 있다.
도 8에 도시된 바와 같이, 업로더(10)는 각 원본데이터 청크(ODC1, ODC2, ODC3)에 대해 데이터 획득 동작(51-1 내지 51-3), 경량화 처리 동작(53-1 내지 53-3), 메타데이터 태깅 동작(55-1 내지 55-3) 및 데이터 업로드 동작(57-1 내지 57-3)을 파이프라이닝 방식으로 수행할 수 있다. 다만, 파이프라인을 구성하는 기본 단위는 도 8에 예시된 것보다 더 큰 단위로 설계될 수도 있고, 더 작은 단위로 설계될 수도 있다.
위와 같은 경우, 복수의 원본데이터 청크에 대한 처리 동작이 병렬화됨으로써, 데이터 업로드가 보다 효율적으로 수행될 수 있다. 가령, 스텝 3에서, 제1 원본데이터 청크(ODC1)에 대한 메타데이터 태깅 동작(55-1), 제2 원본데이터 청크(ODC2)에 대한 경량화 처리 동작(53-3), 제3 원본데이터 청크(ODC3)에 대한 데이터 획득 동작(51-3)이 병렬로 수행될 수 있다.
도 9는 도 8에 예시된 파이프라이닝 방식의 구현예를 도시하고 있다. 구체적으로, 도 9는 업로더(10)가 도 2에 예시된 구성으로 구현된 경우에 파이프라이닝이 수행되는 과정을 도시하고 있다. 또한, 도 9는 업로더(10)를 구성하는 제1 컴퓨팅 장치(11)와 제2 컴퓨팅 장치(13)가 공유 디렉토리를 통해 통신하는 것을 가정하고 있다. 이하, 도 9를 참조하여 설명한다.
스텝 1 및 2에서, 제1 컴퓨팅 장치(11)가 제1 원본데이터 청크(ODC1)를 획득하여 공유 디렉토리에 저장할 수 있다. 그리고, 제2 컴퓨팅 장치(13)는 공유 디렉토리를 통해 제1 원본데이터 청크(ODC1)를 획득하고, 경량화 처리를 통해 제1 원본데이터 청크(ODC1)를 제1 경량데이터 청크(LDC1)로 변환할 수 있다. 제2 컴퓨팅 장치(13)는 공유 디렉토리를 모니터링하며 원본데이터 청크가 공유 디렉토리에 저장될 때마다 원본데이터 청크를 획득할 수 있다.
스텝 3에서, 제1 컴퓨팅 장치(11)가 제2 원본데이터 청크(ODC2)를 획득하여 공유 디렉토리에 저장할 수 있다. 그리고, 제2 컴퓨팅 장치(13)는 제1 경량데이터 청크(LDC1)에 메타데이터(M)를 태깅할 수 있다. 이러한 두 동작들은 병렬적으로 수행될 수 있다.
스텝 4에서, 제2 컴퓨팅 장치(13)는 제2 원본데이터 청크(ODC2)를 제2 경량데이터 청크(LDC2)로 변환하고, 제1 경량데이터 청크(LDC1+M)를 업로드할 수 있다. 이러한 두 동작들은 병렬적으로 수행될 수 있다.
스텝 5에서, 제1 컴퓨팅 장치(11)가 제3 원본데이터 청크(ODC3)를 획득하여 공유 디렉토리에 저장할 수 있다. 그리고, 제2 컴퓨팅 장치(13)는 제2 경량데이터 청크(LDC2)에 메타데이터(M)를 태깅할 수 있다. 이러한 두 동작들은 병렬적으로 수행될 수 있다.
지금까지 도 4 내지 도 9를 참조하여 본 발명의 일실시예들에 따른 데이터 업로드 방법에 대하여 설명하였다. 상술한 방법에 따르면, 원본데이터가 경량화 처리를 통해 경량데이터로 변환되고, 변환된 경량데이터가 업로드될 수 있다. 이에 따라, 데이터 업로드의 실시간성이 보장될 수 있으며, 데이터 업로드에 소요되는 네트워크 비용이 크게 절감될 수 있다. 뿐만 아니라, 경량화 처리, 데이터 업로드 동작 등을 파이프라이닝 방식으로 수행함으로써, 데이터 업로드의 실시간성이 더욱 확실하게 보장될 수 있다. 나아가, 단순 압축 방식이 아니라 원본데이터의 유형 및 특성에 따라 서로 다른 방식의 경량화 알고리즘을 적용함으로써, 경량화 처리의 효율성이 향상될 수 있다.
이하에서는, 도 10을 참조하여 본 발명의 일실시예들에 따른 트레이서(50)의 동작 방법에 대하여 설명하도록 한다.
도 10은 본 발명의 일실시예들에 따른 트레이서(50)의 동작 방법을 나타내는 예시적인 흐름도이다. 단, 이는 본 발명의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 단계가 추가되거나 삭제될 수 있음은 물론이다.
도 10에 도시된 바와 같이, 상기 동작 방법은 원본데이터 저장소(35)를 모니터링하는 단계 S200에서 시작될 수 있다. 가령, 트레이서(50)는 원본데이터 저장소(35)에 원본데이터가 업로드되는 것을 감지하기 위해 지속적인 모니터링을 수행할 수 있다.
단계 S210에서, 특정 원본데이터의 업로드 감지 여부가 판단될 수 있다.
단계 S220 및 S230에서, 업로드가 감지되었다는 판단에 응답하여, 특정 원본데이터의 식별자를 이용하여 매핑테이블(33)이 조회될 수 있고, 조회의 결과로 관련 엔트리의 존재 여부가 판단될 수 있다.
단계 S240에서, 조회된 엔트리가 존재하지 않는다는 판단에 응답하여, 특정 원본데이터가 경량데이터로 변환되고, 변환된 경량데이터가 경량데이터 저장소(31)에 업로드될 수 있다. 앞서 언급한 바와 유사하게, 트레이서(50)는 원본데이터의 유형에 따라 적절한 경량화 처리를 수행하여 특정 원본데이터를 대응되는 경량데이터로 변환할 수 있다.
단계 S250에서, 조회된 엔트리가 존재한다는 판단에 응답하여, 원본데이터의 업로드 정보(e.g. 업로드 위치)를 조회된 엔트리에 기록함으로써 매핑테이블(33)이 업데이트될 수 있다. 또한, 트레이서(50)는 특정 원본데이터의 업로드 위치가 변경될 때마다 상기 조회된 엔트리를 업데이트할 수 있다.
한편, 단계 S240 이후에 본 단계 S250이 수행되는 경우에는, 매핑테이블(33)의 신규 엔트리에 특정 원본데이터의 식별자와 업로드 위치 등의 업로드 정보가 등록될 수 있다.
지금까지 도 10을 참조하여 본 발명의 일실시예들에 트레이서(50)의 동작 방법에 대하여 설명하였다. 상술한 바에 따르면, 트레이서(50)가 원본데이터의 업로드를 감지하고 업로드 위치를 트레이싱함으로써, 원본데이터와 경량데이터 간의 대응 관계가 효과적으로 관리될 수 있다.
이하에서는, 도 11 내지 도 13을 참조하여 본 발명의 일실시예들에 따른 코디네이터(70)의 동작 방법에 대하여 설명하도록 한다.
도 11은 본 발명의 일실시예들에 따른 코디네이터(70)의 동작 방법을 나타내는 예시적인 흐름도이다. 단, 이는 본 발명의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 단계가 추가되거나 삭제될 수 있음은 물론이다.
도 11에 도시된 바와 같이, 상기 동작 방법은 데이터 식별자(e.g. 원본데이터 식별자 또는 경량데이터 식별자)를 수신하는 단계 S300에서 시작될 수 있다. 가령, 코디네이터(70)는 사용자로부터 원본데이터와 경량데이터 간의 공유 식별자를 수신할 수 있다.
일실시예들에서는, 복수의 태스크가 미리 정의되어 있고, 태스크 별로 태스크 식별자가 할당되어 있을 수 있다. 이러한 경우, 코디네이터(70)는 데이터 식별자 외에 태스크 식별자를 더 수신할 수도 있다.
단계 S320에서, 수신된 데이터 식별자에 대응되는 특정 원본데이터가 다운로드될 수 있다. 가령, 코디네이터(70)는 수신된 식별자로 매핑테이블(33)을 조회하여 특정 원본데이터의 업로드 위치 정보를 확인할 수 있고, 확인된 업로드 위치 정보를 이용하여 원본데이터 저장소(35)로부터 특정 원본데이터를 다운로드할 수 있다.
단계 S340에서, 특정 원본데이터를 이용하여 미리 정의된 태스크가 수행될 수 있다. 가령, 미리 정의된 태스크가 타깃 시스템(3)의 학습인 경우, 코디네이터(70)는 특정 원본데이터를 타깃 시스템(3)으로 전송(주입)하여 학습 태스크를 수행할 수 있다.
일실시예들에서는, 코디네이터(70)가 태스크 식별자를 더 수신할 수 있는데, 이러한 경우 코디네이터(70)는 특정 원본데이터를 이용하여 태스크 식별자에 대응되는 태스크를 수행(실행)할 수 있다.
단계 S360에서, 태스크 수행 결과가 제공될 수 있다. 가령, 코디네이터(70)는 태스크의 수행 결과를 사용자에게 제공할 수 있다.
한편, 본 발명의 일실시예들에 따르면, 코디네이터(70)의 다운로드 동작과 데이터 전송 동작(또는 태스크 수행 동작)은 파이프라이닝 방식으로 수행될 수도 있다. 그렇게 함으로써, 원본데이터의 다운로드 및 태스크 실행이 보다 효율적으로 수행될 수 있다. 이하에서는, 보다 이해의 편의를 제공하기 위해, 도 12 및 도 13을 참조하여 본 실시예에 대하여 부연 설명하도록 한다.
도 12는 본 발명의 일실시예들에 따른 코디네이터(70)에 적용될 수 있는 예시적인 파이프라이닝 방식을 개념적으로 도시하고 있다. 특히, 도 12는 코디네이터(70)가 도 3에 도시된 바와 같이 구현된 것을 가정하고 있다.
도 12에 도시된 바와 같이, 복수의 다운로더(73 내지 75)와 태스크 워커(71)의 동작이 파이프라이닝 방식으로 수행될 수 있다. 구체적으로, 파이프라이닝에 의해 복수의 다운로더(73 내지 75)가 제1 복수의 원본데이터 청크(ODC1 내지 ODC3)를 태스크 워커(71)에게 제공하는 동작과 제2 복수의 원본데이터 청크 (ODC4 내지 ODC6)를 다운로드하는 동작이 병렬적으로 수행될 수 있다(스텝 2 참조). 그리고, 파이프라이닝에 의해 복수의 다운로더(73 내지 75)가 제2 복수의 원본데이터 청크 (ODC4 내지 ODC6)를 태스크 워커(71)에게 제공하는 동작, 제3 복수의 원본데이터 청크(ODC7 내지 ODC9)를 다운로드하는 동작 및 태스크 워커(71)가 제1 복수의 원본데이터 청크(ODC1 내지 ODC3)을 타깃 시스템(3)으로 전송하는 동작이 병렬적으로 수행될 수 있다(스텝 3 참조).
도 13은 도 12에 예시된 파이프라이닝 방식의 구현예를 도시하고 있다. 구체적으로, 도 13은 코디네이터(70)가 n대의 다운로더(e.g. 72, 76)와 1대의 태스크 워커(71)로 구현된 경우에 파이프라이닝이 수행되는 과정을 도시하고 있다. 또한, 도 13은 태스크 워커(71)와 다운로더(e.g. 72, 76)가 공유 디렉토리를 통해 통신하는 것을 가정하고 있다. 이하, 도 13을 참조하여 설명한다.
스텝 0에서, 원본데이터의 다운로드를 위한 초기 설정이 이루어질 수 있다. 구체적으로, 각 다운로더(e.g. 72, 76)에 식별자가 할당되고, 다운로더(e.g. 72, 76)와 태스크 워커(71) 간에 원본데이터 청크의 리스트가 공유될 수 있다. 이러한 초기 설정은 사용자에 의해 수행될 수 있을 것이나, 본 발명의 범위가 이에 한정되는 것은 아니다. 또한, 다운로더(e.g. 72, 76)의 식별자는 예를 들어 순차적인 값으로 할당(e.g. 에는 1부터 n까지 순차적인 값으로 할당됨)될 수 있을 것이나, 이에 한정되는 것은 아니다. 다만, 이하에서는, 이해의 편의를 위해, 다운로더(e.g. 72, 76)의 식별자가 순차적으로 할당된 것을 가정하여 설명을 이어가도록 한다.
스텝 1에서, 복수의 다운로더(e.g. 72, 76)가 원본데이터 저장소(35)로부터 원본데이터 청크(e.g. ODC1, ODCn)를 다운로드할 수 있다. 이때, 각 다운로더(e.g. 72, 76)는 자신의 식별자에 대응되는 원본데이터 청크(e.g. ODC1, ODCn)를 다운로드할 수 있다. 가령, 대상 원본데이터 청크의 총 개수가 2n개인 경우, 제1 다운로더(72)는 1번 데이터 청크(e.g. ODC1)와 n+1번 데이터 청크(e.g. ODCn+1)를 다운로드하고, 제n 다운로더(76)는 n번 데이터 청크(e.g. ODCn)와 2n번 데이터 청크(e.g. ODC2n)를 다운로드할 수 있다. 즉, 각 다운로더(e.g. 72, 76)는 자신의 식별자와 모듈라(modular) 연산 값이 일치하는 원본데이터 청크(e.g. ODC1, ODCn)를 다운로드할 수 있다. 그렇게 함으로써, 원본데이터 청크의 중복 다운로드가 방지될 수 있다.
또한, 복수의 다운로더(e.g. 72, 76)는 다운로드된 원본데이터 청크(e.g. ODC1, ODCn)를 공유 디렉토리에 저장할 수 있다. 그리고, 태스크 워커(71)는 공유 디렉토리에 원본데이터 청크(e.g. ODC1, ODCn)가 저장되는 것을 모니터링할 수 있다.
스텝 2에서, 복수의 다운로더(e.g. 72, 76)는 원본데이터 저장소(35)로부터 다음 원본데이터 청크(e.g. ODCn+1, ODC2n)를 다운로드할 수 있다. 그리고, 태스크 워커(71)는 공유 디렉토리에서 저장된 원본데이터 청크(e.g. ODC1, ODC2)를 획득하여 타깃 시스템(3)으로 전송할 수 있다. 이러한 두 동작들은 병렬적으로 수행될 수 있다.
참고로, 태스크 워커(71)는 제1 원본데이터 청크(e.g. ODC1)를 전송하는 동안 메모리 상에 제2 원본데이터 청크(e.g. ODC2)를 로딩하는 방식으로, 데이터 전송 동작과 메모리 로딩 동작을 병렬적으로 수행할 수도 있다.
지금까지 도 11 내지 도 13을 참조하여 본 발명의 일실시예들에 따른 코디네이터(70)의 동작 방법에 대하여 설명하였다. 상술한 바에 따르면, 코디네이터(70)가 원본데이터를 다운로드하고 미리 정의된 태스크를 수행함으로써, 사용자가 직접 원본데이터를 다운로드하는 것이 최소화될 수 있다. 이에 따라, 원본데이터 다운로드에 소요되는 네트워크 비용이 크게 절감될 수 있으며, 원본데이터 저장소에 대한 인프라 구축 비용도 크게 절감될 수 있다. 나아가, 코디네이터(70)의 동작들이 파이프라이닝 방식으로 수행됨으로써, 태스크 수행 시간이 크게 단축될 수 있다.
이하에서는, 도 14를 참조하여 본 발명의 다양한 실시예들에 따른 장치(e.g. 업로더 10 등) 및/또는 시스템을 구현할 수 있는 예시적인 컴퓨팅 장치(200)에 대하여 설명하도록 한다.
도 14는 컴퓨팅 장치(200)를 나타내는 예시적인 하드웨어 구성도이다.
도 14에 도시된 바와 같이, 컴퓨팅 장치(200)는 하나 이상의 프로세서(210), 버스(250), 통신 인터페이스(270), 프로세서(210)에 의하여 수행되는 컴퓨터 프로그램(291)을 로드(load)하는 메모리(230)와, 컴퓨터 프로그램(291)을 저장하는 스토리지(290)를 포함할 수 있다. 다만, 도 14에는 본 발명의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 14에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 알 수 있다.
프로세서(210)는 컴퓨팅 장치(200)의 각 구성의 전반적인 동작을 제어할 수 있다. 프로세서(210)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다. 또한, 프로세서(210)는 본 발명의 실시예들에 따른 동작/방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(200)는 하나 이상의 프로세서를 구비할 수 있다.
다음으로, 메모리(230)는 각종 데이터, 명령 및/또는 정보를 저장할 수 있다. 메모리(230)는 본 발명의 실시예들에 따른 동작/방법을 실행하기 위하여 스토리지(290)로부터 하나 이상의 프로그램(291)을 로드할 수 있다. 메모리(230)는 RAM과 같은 휘발성 메모리로 구현될 수 있을 것이나, 본 발명의 범위가 이에 한정되는 것은 아니다.
다음으로, 버스(250)는 컴퓨팅 장치(200)의 구성요소 간 통신 기능을 제공할 수 있다. 버스(250)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
다음으로, 통신 인터페이스(270)는 컴퓨팅 장치(200)의 유무선 인터넷 통신을 지원할 수 있다. 또한, 통신 인터페이스(270)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 통신 인터페이스(270)는 본 발명의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.
다음으로, 스토리지(290)는 상기 하나 이상의 프로그램(291)을 비임시적으로 저장할 수 있다. 스토리지(290)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
다음으로, 컴퓨터 프로그램(291)은 메모리(230)에 로드될 때 프로세서(210)로 하여금 본 발명의 실시예들에 따른 동작/방법을 수행하도록 하는 하나 이상의 인스트럭션들(instructions)을 포함할 수 있다. 즉, 프로세서(210)는 상기 하나 이상의 인스트럭션들을 실행함으로써, 본 발명의 실시예들에 따른 동작/방법을 수행할 수 있다.
예를 들어, 컴퓨터 프로그램(291)은 원본데이터를 획득하는 동작, 획득된 원본데이터가 제1 유형이라는 판단에 응답하여, 제1 경량화 처리를 수행하는 동작, 획득된 원본데이터가 제1 유형과 다른 제2 유형이라는 판단에 응답하여, 제1 경량화 처리와 다른 제2 경량화 처리를 수행하는 동작 및 제1 경량화 처리 또는 제2 경량화 처리를 통해 변환된 경량데이터를 업로드하는 동작을 수행하도록 하는 인스트럭션들을 포함할 수 있다. 이와 같은 경우, 컴퓨팅 장치(200)를 통해 본 발명의 일실시예들에 따른 업로더(10)가 구현될 수 있다.
다른 예로서, 컴퓨터 프로그램(291)은 원본데이터 저장소(35)에 특정 원본데이터가 업로드되는 것을 감지함에 응답하여, 매핑테이블(33)에서 특정 원본데이터에 대응되는 경량데이터의 엔트리를 조회하는 동작 및 조회된 엔트리에 특정 원본데이터의 업로드 위치를 업데이트하는 동작을 수행하도록 하는 인스트럭션들을 포함할 수 있다. 이와 같은 경우, 컴퓨팅 장치(200)를 통해 본 발명의 일실시예들에 따른 트레이서(50)가 구현될 수 있다.
또 다른 예로서, 컴퓨터 프로그램(291)은 경량데이터 저장소(31)에 저장된 특정 경량데이터의 식별자를 수신하는 동작, 수신된 식별자를 이용하여 원본데이터 저장소(35)에서 특정 경량데이터에 대응되는 원본데이터를 다운로드하는 동작 및 다운로드된 원본데이터를 이용하여 미리 정의된 태스크를 수행하는 동작을 수행하도록 하는 인스트럭션들을 포함할 수 있다. 이와 같은 경우, 컴퓨팅 장치(200)를 통해 본 발명의 일실시예들에 따른 코디네이터(70)가 구현될 수 있다.
지금까지 도 14를 참조하여 본 발명의 다양한 실시예들에 따른 장치 및/또는 시스템을 구현할 수 있는 예시적인 컴퓨팅 장치(200)에 대하여 설명하였다.
지금까지 도 1 내지 도 14를 참조하여 설명된 본 발명의 기술적 사상은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
이상에서, 본 발명의 실시예를 구성하는 모든 구성요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명의 기술적 사상이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시예들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 발명이 다른 구체적인 형태로도 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명에 의해 정의되는 기술적 사상의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (15)

  1. 하나 이상의 데이터 소스로부터 원본데이터를 획득하고, 경량화 처리를 통해 상기 획득된 원본데이터를 대응되는 경량데이터로 변환하고, 상기 변환된 경량데이터를 경량데이터 저장소에 업로드하며, 상기 변환된 경량데이터의 업로드 정보를 매핑테이블에 등록하는 데이터 업로더; 및
    원본데이터 저장소에 특정 원본데이터가 업로드되는 것을 감지함에 응답하여, 상기 매핑테이블에서 상기 특정 원본데이터에 대응되는 경량데이터의 엔트리를 조회하고, 상기 조회된 엔트리에 상기 특정 원본데이터의 업로드 위치를 업데이트하는 데이터 트레이서를 포함하는,
    데이터 관리 시스템.
  2. 제1 항에 있어서,
    상기 업로드 정보는 원본데이터와 대응되는 경량데이터 간의 공유 식별자를 포함하고,
    상기 데이터 트레이서를 상기 특정 원본데이터의 공유 식별자를 이용하여 상기 매핑테이블을 조회하는 것을 특징으로 하는,
    데이터 관리 시스템.
  3. 삭제
  4. 제1 항에 있어서,
    상기 데이터 업로더는,
    상기 원본데이터를 획득하는 제1 컴퓨팅 장치와 상기 경량화 처리를 수행하는 제2 컴퓨팅 장치를 포함하도록 구성되는 것을 특징으로 하는,
    데이터 관리 시스템.
  5. 제1 항에 있어서,
    상기 데이터 업로더는,
    상기 원본데이터를 획득하는 동작, 상기 경량데이터로 변환하는 동작 및 상기 경량데이터 저장소에 업로드하는 동작을 파이프라이닝 방식으로 수행하는 것을 특징으로 하는,
    데이터 관리 시스템.
  6. 제1 항에 있어서,
    상기 데이터 트레이서는,
    상기 조회된 엔트리가 존재하지 않는다는 판단에 응답하여, 경량화 처리를 통해 상기 특정 원본데이터에 대응되는 경량데이터를 생성하고, 상기 생성된 경량 데이터를 상기 경량데이터 저장소에 업로드하며, 상기 매핑테이블에 상기 생성된 경량데이터의 업로드 정보를 등록하는 것을 특징으로 하는,
    데이터 관리 시스템.
  7. 제1 항에 있어서,
    상기 원본데이터 저장소에서 상기 특정 원본데이터를 다운로드하고, 상기 특정 원본데이터를 이용하여 미리 정의된 태스크를 수행하는 데이터 코디네이터를 더 포함하는 것을 특징으로 하는,
    데이터 관리 시스템.
  8. 제7 항에 있어서,
    상기 데이터 코디네이터는,
    사용자의 요청에 응답하여 상기 다운로드 및 상기 태스크를 수행하고, 상기 태스크의 수행 결과를 상기 사용자에게 제공하는 것을 특징으로 하는,
    데이터 관리 시스템.
  9. 제7 항에 있어서,
    상기 데이터 코디네이터는 상기 특정 원본데이터를 다운로드하는 다운로더와 상기 태스크를 수행하는 태스크 워커를 포함하도록 구성되되,
    상기 다운로더의 동작과 상기 태스크 워커의 동작은 파이프라이닝 방식으로 수행되는 것을 특징으로 하는,
    데이터 관리 시스템.
  10. 통신 인터페이스;
    하나 이상의 인스트럭션들(instructions)을 저장하는 메모리; 및
    상기 저장된 하나 이상의 인스트럭션들을 실행시킴으로써,
    원본데이터를 획득하고,
    상기 획득된 원본데이터가 제1 유형이라는 판단에 응답하여, 제1 경량화 처리를 수행하며,
    상기 획득된 원본데이터가 상기 제1 유형과 다른 제2 유형이라는 판단에 응답하여, 상기 제1 경량화 처리와 다른 제2 경량화 처리를 수행하고,
    상기 제1 경량화 처리 또는 상기 제2 경량화 처리를 통해 변환된 경량데이터를 상기 통신 인터페이스를 통해 업로드하며,
    상기 변환된 경량데이터의 업로드 정보를 매핑테이블에 등록하는 프로세서를 포함하고,
    상기 변환된 경량데이터가 업로드되는 경우, 데이터 트레이서를 통해, 상기 매핑테이블에서 특정 원본데이터에 대응되는 경량데이터의 엔트리를 조회하고, 상기 조회된 엔트리에 상기 특정 원본데이터의 업로드 위치를 업데이트하는 것을 특징으로 하는,
    데이터 업로더.
  11. 제10 항에 있어서,
    상기 제1 유형의 원본데이터는 싱글 이미지이고,
    상기 제1 경량화 처리는 상기 싱글 이미지의 비트 심도 또는 채널 개수를 감소시키는 제1 처리, 상기 싱글 이미지의 크기를 축소하는 제2 처리 및 복수의 싱글 이미지를 비디오 압축 알고리즘을 통해 비디오 이미지로 변환하는 제3 처리 중 적어도 하나를 포함하는 것을 특징으로 하는,
    데이터 업로더.
  12. 제10 항에 있어서,
    상기 제1 유형의 원본데이터는 멀티 이미지이고,
    상기 제1 경량화 처리는 상기 멀티 이미지에 포함된 복수의 이미지를 접합하고, 상기 접합된 이미지를 경량화하는 것을 포함하는 것을 특징으로 하는,
    데이터 업로더.
  13. 제10 항에 있어서,
    상기 제1 유형의 원본데이터는 미리 정의된 포맷을 갖는 메시지이고,
    상기 제1 경량화 처리는 상기 메시지를 직렬화하여 바이너리 데이터로 변환하고, 상기 변환된 바이너리 데이터를 압축하는 것을 포함하는,
    데이터 업로더.
  14. 제10 항에 있어서,
    상기 제1 유형의 원본데이터는 라이다 센서 또는 레이더 센서에 의해 생성된 데이터이고,
    상기 제1 경량화 처리는 상기 생성된 데이터를 점군 형태의 이미지로 변환하고, 상기 변환된 이미지를 비디오 압축 알고리즘을 통해 비디오 이미지로 변환하는 것을 포함하는 것을 특징으로 하는,
    데이터 업로더.
  15. 경량데이터 저장소와 원본데이터 저장소를 포함하고, 데이터 업로더 및 데이터 트레이서와 연동하며, 계층적 데이터 저장소를 위한 데이터 코디네이터로서,
    통신 인터페이스;
    하나 이상의 인스트럭션들(instructions)을 저장하는 메모리; 및
    상기 저장된 하나 이상의 인스트럭션들을 실행시킴으로써,
    상기 통신 인터페이스를 통해 상기 경량데이터 저장소에 저장된 특정 경량데이터의 식별자를 수신하고,
    상기 수신된 식별자를 이용하여 상기 원본데이터 저장소에서 상기 특정 경량데이터에 대응되는 원본데이터를 다운로드하며,
    상기 다운로드된 원본데이터를 이용하여 미리 정의된 태스크를 수행하는 프로세서를 포함하고,
    상기 데이터 업로더는,
    하나 이상의 데이터 소스로부터 상기 원본데이터를 획득하고, 경량화 처리를 통해 상기 획득된 원본데이터를 대응되는 경량데이터로 변환하고, 상기 변환된 경량데이터를 상기 경량데이터 저장소에 업로드하며, 상기 변환된 경량데이터의 업로드 정보를 매핑테이블에 등록하고,
    상기 데이터 트레이서는,
    상기 원본데이터 저장소에 특정 원본데이터가 업로드되는 것을 감지함에 응답하여, 상기 매핑테이블에서 상기 특정 원본데이터에 대응되는 경량데이터의 엔트리를 조회하고, 상기 조회된 엔트리에 상기 특정 원본데이터의 업로드 위치를 업데이트하는,
    데이터 코디네이터.
KR1020200166883A 2020-12-02 2020-12-02 계층적 데이터 저장소 기반 데이터 관리 시스템 및 그의 동작 방법 KR102291867B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020200166883A KR102291867B1 (ko) 2020-12-02 2020-12-02 계층적 데이터 저장소 기반 데이터 관리 시스템 및 그의 동작 방법
US18/039,832 US20240028613A1 (en) 2020-12-02 2021-11-20 System for managing data based on hierarchical data repository and operating method thereof
JP2023534416A JP2023553063A (ja) 2020-12-02 2021-11-22 階層的データストアベースのデータ管理システム及びその動作方法
PCT/KR2021/017133 WO2022119199A1 (ko) 2020-12-02 2021-11-22 계층적 데이터 저장소 기반 데이터 관리 시스템 및 그의 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200166883A KR102291867B1 (ko) 2020-12-02 2020-12-02 계층적 데이터 저장소 기반 데이터 관리 시스템 및 그의 동작 방법

Publications (1)

Publication Number Publication Date
KR102291867B1 true KR102291867B1 (ko) 2021-08-23

Family

ID=77499121

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200166883A KR102291867B1 (ko) 2020-12-02 2020-12-02 계층적 데이터 저장소 기반 데이터 관리 시스템 및 그의 동작 방법

Country Status (4)

Country Link
US (1) US20240028613A1 (ko)
JP (1) JP2023553063A (ko)
KR (1) KR102291867B1 (ko)
WO (1) WO2022119199A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022119199A1 (ko) * 2020-12-02 2022-06-09 주식회사 파트리지시스템즈 계층적 데이터 저장소 기반 데이터 관리 시스템 및 그의 동작 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002203117A (ja) * 2000-12-28 2002-07-19 Yoshiyuki Tajima 著作物コンテンツの配信システム及び配信方法
JP2006092466A (ja) * 2004-09-27 2006-04-06 Toshiba Microelectronics Corp テスト情報処理システム、テスト情報処理方法及びテスト情報処理プログラム
KR101035302B1 (ko) * 2010-10-11 2011-05-19 (주)이스트소프트 클라우드 시스템 및 클라우드 시스템에서 파일 압축 및 전송 방법
US20130024424A1 (en) * 2009-06-30 2013-01-24 Commvault Systems, Inc. Data object store and server for a cloud storage environment, including data deduplication and data management across multiple cloud storage sites
KR20190043446A (ko) * 2017-10-18 2019-04-26 한국전자통신연구원 워크플로우 엔진 프레임워크
KR20200076397A (ko) 2018-12-19 2020-06-29 주식회사 바이오크 공유 데이터베이스 구축 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102291867B1 (ko) * 2020-12-02 2021-08-23 주식회사 파트리지시스템즈 계층적 데이터 저장소 기반 데이터 관리 시스템 및 그의 동작 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002203117A (ja) * 2000-12-28 2002-07-19 Yoshiyuki Tajima 著作物コンテンツの配信システム及び配信方法
JP2006092466A (ja) * 2004-09-27 2006-04-06 Toshiba Microelectronics Corp テスト情報処理システム、テスト情報処理方法及びテスト情報処理プログラム
US20130024424A1 (en) * 2009-06-30 2013-01-24 Commvault Systems, Inc. Data object store and server for a cloud storage environment, including data deduplication and data management across multiple cloud storage sites
KR101035302B1 (ko) * 2010-10-11 2011-05-19 (주)이스트소프트 클라우드 시스템 및 클라우드 시스템에서 파일 압축 및 전송 방법
KR20190043446A (ko) * 2017-10-18 2019-04-26 한국전자통신연구원 워크플로우 엔진 프레임워크
KR20200076397A (ko) 2018-12-19 2020-06-29 주식회사 바이오크 공유 데이터베이스 구축 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022119199A1 (ko) * 2020-12-02 2022-06-09 주식회사 파트리지시스템즈 계층적 데이터 저장소 기반 데이터 관리 시스템 및 그의 동작 방법

Also Published As

Publication number Publication date
WO2022119199A1 (ko) 2022-06-09
US20240028613A1 (en) 2024-01-25
JP2023553063A (ja) 2023-12-20

Similar Documents

Publication Publication Date Title
US20230153654A1 (en) Selection of machine learning algorithms
CN109564568B (zh) 用于分布式数据集索引的装置、方法和机器可读存储介质
US20180288587A1 (en) System, Method and Apparatus for Sensing Changes in an Environment Using Wireless Communication Signals
US20190146682A1 (en) Methods to configure and access scalable object stores using kv-ssds and hybrid backend storage tiers of kv-ssds, nvme-ssds and other flash devices
US10713212B2 (en) Mobile remote direct memory access
US20220006628A1 (en) Generating a key at a device based on a memory of the device
KR102655086B1 (ko) 파이프라인 실행을 최적화하기 위한 방법들, 시스템들 및 장치
US9015695B2 (en) Information processing apparatus and information processing method
CN106537380B (zh) 对用户产生的媒体文件自动归档
US20170351723A1 (en) Managing data format of data received from devices in an internet of things network
US11902396B2 (en) Model tiering for IoT device clusters
Li et al. Corb-slam: a collaborative visual slam system for multiple robots
KR102291867B1 (ko) 계층적 데이터 저장소 기반 데이터 관리 시스템 및 그의 동작 방법
US8516480B1 (en) Enabling offline work in a virtual data center
US20140351334A1 (en) System for Dynamic Service Collaboration through Identification and Context of Plurality of Heterogeneous Devices
US11481916B2 (en) Method, system and computer program product for emulating depth data of a three-dimensional camera device
US10635633B2 (en) Systems and methods for memory architecture
US9575680B1 (en) Deduplication rehydration
US11470248B2 (en) Data compression apparatus, model generation apparatus, data compression method, model generation method and program recording medium
US20200192916A1 (en) Data Processing System And Data Processing Method
WO2015196899A1 (zh) 一种实现ip盘文件存储的方法及装置
US20160302056A1 (en) Connection Information Sharing System, Computer Program, and Connection Information Sharing Method Thereof
CN113987089B (zh) 一种系统级联方法、数据处理方法及装置
KR102077093B1 (ko) 사용자 단말기로부터 수신되는 이미지를 다른 사용자 단말기에 공유하기 위한 장치 및 방법
KR102048602B1 (ko) 차이점 보관용 디스크 포맷에 기초한 반복적 디스크 업로드 기법

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant