(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-12-20
(54)【発明の名称】階層的データストアベースのデータ管理システム及びその動作方法
(51)【国際特許分類】
G06F 16/28 20190101AFI20231213BHJP
【FI】
G06F16/28
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023534416
(86)(22)【出願日】2021-11-22
(85)【翻訳文提出日】2023-06-01
(86)【国際出願番号】 KR2021017133
(87)【国際公開番号】W WO2022119199
(87)【国際公開日】2022-06-09
(31)【優先権主張番号】10-2020-0166883
(32)【優先日】2020-12-02
(33)【優先権主張国・地域又は機関】KR
(81)【指定国・地域】
(71)【出願人】
【識別番号】523208279
【氏名又は名称】パートリッジシステムズインコーポレーテッド
(74)【代理人】
【識別番号】110000383
【氏名又は名称】弁理士法人エビス国際特許事務所
(72)【発明者】
【氏名】リー ジュンハ
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175CA11
(57)【要約】
階層的データストアベースのデータ管理システム及びその動作方法が提供される。本発明の一実施例に係るデータ管理システムは、1つ以上のデータソースから原本データを取得し、軽量化処理を通じて、取得された原本データを対応する軽量データに変換して、軽量データストアにアップロードするデータアップローダと、原本データストアに特定の原本データがアップロードされたことを感知したことに応答して、マッピングテーブルに特定の原本データのアップロード位置をアップデートするデータトレーサーとを含むことができる。このようなデータ管理システムは、データのアップロードにかかるネットワーク費用及びデータの共有にかかるインフラ構築費用を効果的に削減することができる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
1つ以上のデータソースから原本データを取得し、軽量化処理を通じて、前記取得された原本データを対応する軽量データに変換し、前記変換された軽量データを軽量データストアにアップロードし、前記変換された軽量データのアップロード情報をマッピングテーブルに登録するデータアップローダと、
原本データストアに特定の原本データがアップロードされたことを感知したことに応答して、前記マッピングテーブルから前記特定の原本データに対応する軽量データのエントリを照会し、前記照会されたエントリに前記特定の原本データのアップロード位置をアップデートするデータトレーサーとを含む、データ管理システム。
【請求項2】
前記アップロード情報は、原本データと対応する軽量データとの間の共有識別子を含み、
前記データトレーサーは、前記特定の原本データの共有識別子を用いて前記マッピングテーブルを照会することを特徴とする、請求項1に記載のデータ管理システム。
【請求項3】
前記軽量データストアは、前記原本データストアよりもユーザアクセシビリティが高いストアとして具現されることを特徴とする、請求項1に記載のデータ管理システム。
【請求項4】
前記データアップローダは、
前記原本データを取得する第1コンピューティング装置、及び前記軽量化処理を行う第2コンピューティング装置を含むように構成されることを特徴とする、請求項1に記載のデータ管理システム。
【請求項5】
前記データアップローダは、
前記原本データを取得する動作、前記軽量データに変換する動作、及び前記軽量データストアにアップロードする動作をパイプライニング方式で行うことを特徴とする、請求項1に記載のデータ管理システム。
【請求項6】
前記データトレーサーは、
前記照会されたエントリが存在しないという判断に応答して、軽量化処理を通じて前記特定の原本データに対応する軽量データを生成し、前記生成された軽量データを前記軽量データストアにアップロードし、前記マッピングテーブルに前記生成された軽量データのアップロード情報を登録することを特徴とする、請求項1に記載のデータ管理システム。
【請求項7】
前記原本データストアから前記特定の原本データをダウンロードし、前記特定の原本データを用いて、予め定義されたタスクを行うデータコーディネータをさらに含むことを特徴とする、請求項1に記載のデータ管理システム。
【請求項8】
前記データコーディネータは、
ユーザの要求に応答して前記ダウンロード及び前記タスクを行い、前記タスクの実行結果を前記ユーザに提供することを特徴とする、請求項7に記載のデータ管理システム。
【請求項9】
前記データコーディネータは、前記特定の原本データをダウンロードするダウンローダ、及び前記タスクを行うタスクワーカを含むように構成され、
前記ダウンローダの動作及び前記タスクワーカの動作はパイプライニング方式で行われることを特徴とする、請求項7に記載のデータ管理システム。
【請求項10】
通信インターフェースと、
1つ以上のインストラクション(instructions)を格納するメモリと、
前記格納された1つ以上のインストラクションを実行させることによって、
原本データを取得し、
前記取得された原本データが第1タイプであるという判断に応答して、第1軽量化処理を行い、
前記取得された原本データが前記第1タイプと異なる第2タイプであるという判断に応答して、前記第1軽量化処理と異なる第2軽量化処理を行い、
前記第1軽量化処理又は前記第2軽量化処理を通じて変換された軽量データを、前記通信インターフェースを介してアップロードする、プロセッサとを含む、データアップローダ。
【請求項11】
前記第1タイプの原本データはシングルイメージであり、
前記第1軽量化処理は、前記シングルイメージのビット深度又はチャネルの数を減少させる第1処理、前記シングルイメージのサイズを縮小する第2処理、及び複数のシングルイメージをビデオ圧縮アルゴリズムを介してビデオイメージに変換する第3処理のうちの少なくとも1つを含むことを特徴とする、請求項10に記載のデータアップローダ。
【請求項12】
前記第1タイプの原本データはマルチイメージであり、
前記第1軽量化処理は、前記マルチイメージに含まれた複数のイメージを接合し、前記接合されたイメージを軽量化することを含むことを特徴とする、請求項10に記載のデータアップローダ。
【請求項13】
前記第1タイプの原本データは、予め定義されたフォーマットを有するメッセージであり、
前記第1軽量化処理は、前記メッセージを直列化してバイナリデータに変換し、前記変換されたバイナリデータを圧縮することを含む、請求項10に記載のデータアップローダ。
【請求項14】
前記第1タイプの原本データは、ライダーセンサ又はレーダセンサによって生成されたデータであり、
前記第1軽量化処理は、前記生成されたデータを点群の形態のイメージに変換し、前記変換されたイメージをビデオ圧縮アルゴリズムを介してビデオイメージに変換することを含むことを特徴とする、請求項10に記載のデータアップローダ。
【請求項15】
軽量データストア及び原本データストアを含む階層的データストアのためのデータコーディネータであって、
通信インターフェースと、
1つ以上のインストラクション(instructions)を格納するメモリと、
前記格納された1つ以上のインストラクションを実行させることによって、
前記通信インターフェースを介して、前記軽量データストアに格納された特定の軽量データの識別子を受信し、
前記受信された識別子を用いて、前記原本データストアから前記特定の軽量データに対応する原本データをダウンロードし、
前記ダウンロードされた原本データを用いて、予め定義されたタスクを行う、プロセッサとを含む、データコーディネータ。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、階層的データストアベースのデータ管理システム及びその動作方法に関する。より詳細には、原本データストアと軽量データストアを含む階層的データストアをベースとして大容量のデータを効率的に管理するシステム及びそのシステムの動作方法に関する。
【背景技術】
【0002】
IoT(Internet Of Things)技術が発展するにつれて、リアルタイムで発生する大容量のデータを処理し、管理できるシステムに対する需要が急増している。例えば、自律走行車、スマートファクトリーなどのようなIoTシステムは、各種センサを介してリアルタイムで大容量のセンシングデータを発生させるが、このような大容量のセンシングデータを効率的に処理し、管理できるシステムが求められている。
【0003】
前記のような要求によって、最近、大容量のデータをクラウドストレージにアップロード(upload)して管理するシステムが提案された。提案されたシステムは、時と場所を選ばずにデータのアップロード及びダウンロード(download)の機能を提供することによって、非常に優れたユーザアクセシビリティを保障することができる。
【0004】
しかし、クラウドストレージに大容量のデータをアップロードすることは、かなりのインフラ構築費用とネットワーク費用を要求し、ネットワークの可用帯域幅の問題により、持続的に発生する大容量のデータをクラウドストレージにリアルタイムでアップロードすることはほとんど不可能である。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明の一実施例を通じて解決しようとする技術的課題は、データの共有にかかるインフラ構築費用、及びデータのアップロードにかかるネットワーク費用を削減することができるデータ管理システム及びそのシステムの動作方法を提供することである。
【0006】
本発明の一実施例を通じて解決しようとする他の技術的課題は、原本データストアと軽量データストアを含む階層的データストアをベースとして大容量のデータを効率的に管理することができるシステム及びそのシステムの動作方法を提供することである。
【0007】
本発明の一実施例を通じて解決しようとする更に他の技術的課題は、大容量データに対するリアルタイムアップロードを保障することができる装置及びその装置の動作方法を提供することである。
【0008】
本発明の一実施例を通じて解決しようとする更に他の技術的課題は、データのタイプに応じて最適の軽量化処理を行うことができる装置及びその装置の動作方法を提供することである。
【0009】
本発明の一実施例を通じて解決しようとする更に他の技術的課題は、原本データと軽量データとの同期化及びトレーシング(tracing)機能を提供することができる装置及びその装置の動作方法を提供することである。
【0010】
本発明の一実施例を通じて解決しようとする更に他の技術的課題は、原本データのダウンロードにかかるネットワーク費用を削減することができる装置及びその装置の動作方法を提供することである。
【0011】
本発明の技術的課題は、以上で言及した技術的課題に制限されず、言及していない他の技術的課題は、以下の記載から、本発明の属する技術分野における通常の技術者に明確に理解されるであろう。
【課題を解決するための手段】
【0012】
上記の技術的課題を解決するための、本発明の一実施例に係るデータ管理システムは、1つ以上のデータソースから原本データを取得し、軽量化処理を通じて、前記取得された原本データを対応する軽量データに変換し、前記変換された軽量データを軽量データストアにアップロードし、前記変換された軽量データのアップロード情報をマッピングテーブルに登録するデータアップローダと、原本データストアに特定の原本データがアップロードされたことを感知したことに応答して、前記マッピングテーブルから前記特定の原本データに対応する軽量データのエントリを照会し、前記照会されたエントリに前記特定の原本データのアップロード位置をアップデートするデータトレーサーとを含むことができる。
【0013】
一実施例において、前記軽量データストアは、前記原本データストアよりもユーザアクセシビリティが高いストアとして具現され得る。
【0014】
一実施例において、前記データアップローダは、前記原本データを取得する動作、前記軽量データに変換する動作、及び前記軽量データストアにアップロードする動作をパイプライニング方式で行うことができる。
【0015】
一実施例において、前記データ管理システムは、前記原本データストアから前記特定の原本データをダウンロードし、前記特定の原本データを用いて、予め定義されたタスクを行うデータコーディネータをさらに含むことができる。
【0016】
一実施例において、前記データコーディネータは、前記特定の原本データをダウンロードするダウンローダ、及び前記タスクを行うタスクワーカを含むように構成され、前記ダウンローダの動作及び前記タスクワーカの動作はパイプライニング方式で行われ得る。
【0017】
上記の技術的課題を解決するための、本発明の一実施例に係るデータアップローダは、通信インターフェースと、1つ以上のインストラクション(instructions)を格納するメモリと、前記格納された1つ以上のインストラクションを実行させることによって、原本データを取得し、前記取得された原本データが第1タイプであるという判断に応答して、第1軽量化処理を行い、前記取得された原本データが前記第1タイプと異なる第2タイプであるという判断に応答して、前記第1軽量化処理と異なる第2軽量化処理を行い、前記第1軽量化処理又は前記第2軽量化処理を通じて変換された軽量データを、前記通信インターフェースを介してアップロードする、プロセッサとを含むことができる。
【0018】
上記の技術的課題を解決するための、本発明の一実施例に係るデータアップロード方法は、コンピューティング装置で行われるデータアップロード方法であって、前記原本データを取得するステップと、前記取得された原本データが第1タイプであるという判断に応答して、第1軽量化処理を行うステップと、前記取得された原本データが前記第1タイプと異なる第2タイプであるという判断に応答して、前記第1軽量化処理と異なる第2軽量化処理を行うステップと、前記第1軽量化処理又は前記第2軽量化処理を通じて変換された軽量データをアップロードするステップとを含むことができる。
【0019】
上記の技術的課題を解決するための、本発明の一実施例に係るコンピュータプログラムは、コンピューティング装置と結合されて、原本データを取得するステップ、前記取得された原本データが第1タイプであるという判断に応答して、第1軽量化処理を行うステップ、前記取得された原本データが前記第1タイプと異なる第2タイプであるという判断に応答して、前記第1軽量化処理と異なる第2軽量化処理を行うステップ、及び前記第1軽量化処理又は前記第2軽量化処理を通じて変換された軽量データをアップロードするステップを実行させるために、コンピュータで読み取り可能な記録媒体に格納され得る。
【0020】
上記の技術的課題を解決するための、本発明の一実施例に係るデータコーディネータは、軽量データストア及び原本データストアを含む階層的データストアのためのデータコーディネータであって、通信インターフェースと、1つ以上のインストラクション(instructions)を格納するメモリと、前記格納された1つ以上のインストラクションを実行させることによって、前記通信インターフェースを介して、前記軽量データストアに格納された特定の軽量データの識別子を受信し、前記受信された識別子を用いて、前記原本データストアから前記特定の軽量データに対応する原本データをダウンロードし、前記ダウンロードされた原本データを用いて、予め定義されたタスクを行う、プロセッサとを含むことができる。
【0021】
上記の技術的課題を解決するための、本発明の一実施例に係るデータコーディネーティング方法は、軽量データストア及び原本データストアを含む階層的データストアのためのコンピューティング装置で行われるデータコーディネーティング方法であって、前記軽量データストアに格納された特定の軽量データの識別子を受信するステップと、前記受信された識別子を用いて、前記原本データストアから前記特定の軽量データに対応する原本データをダウンロードするステップと、前記ダウンロードされた原本データを用いて、予め定義されたタスクを行うステップとを含むことができる。
【0022】
上記の技術的課題を解決するための、本発明の一実施例に係るコンピュータプログラムは、軽量データストアに格納された特定の軽量データの識別子を受信するステップ、前記受信された識別子を用いて、原本データストアから前記特定の軽量データに対応する原本データをダウンロードするステップ、及び前記ダウンロードされた特定の原本データを用いて、予め定義されたタスクを行うステップを実行させるために、コンピュータで読み取り可能な記録媒体に格納され得る。
【発明の効果】
【0023】
上述した本発明の一実施例によれば、軽量化処理を通じて原本データが軽量データに変換され、変換された軽量データがアップロードされ得る。これによって、データのアップロードのリアルタイム性が保障され得、データのアップロードにかかるネットワーク費用が大幅に削減され得る。
【0024】
また、軽量データストアのみをユーザアクセシビリティが高いストア(クラウドストレージなど)として具現することによって、データの共有のためのインフラ構築費用が大幅に削減され得る。
【0025】
また、単純な圧縮方式ではなく、原本データのタイプ及び特性に応じて互いに異なる方式の軽量化アルゴリズムを適用することによって、軽量化処理の効率性を向上させることができる。
【0026】
また、軽量化処理、データアップロード動作などをパイプライニング(pipelining)方式で行うことによって、データアップロードのリアルタイム性がさらに確実に保障され得る。
【0027】
また、原本データのアップロードを感知し、アップロード位置を追跡するデータトレーサーを備えることによって、原本データと軽量データとの対応関係が効果的に管理され得、原本データと軽量データとの間のデータ同期化が保障され得る。
【0028】
また、原本データをダウンロードし、予め定義されたタスクを行うデータコーディネータを備えることによって、ユーザが原本データを直接ダウンロードすることが最小化され得る。これによって、原本データのダウンロードにかかるネットワーク費用が大幅に削減され得、原本データストアに対するインフラ構築費用も大幅に削減され得る。
【0029】
また、原本データのダウンロード及びタスク実行動作などをパイプライニング方式で行うことによって、タスク実行時間が大幅に短縮され得る。
【0030】
本発明の技術的思想による効果は、以上で言及した効果に制限されず、言及されていない他の効果は、以下の記載から通常の技術者に明確に理解されるであろう。
【図面の簡単な説明】
【0031】
【
図1】本発明の一実施例に係る階層的データストアベースのデータ管理システムを概略的に示す例示的な構成図である。
【
図2】本発明の一実施例に係るデータアップローダの具現方式を説明するための例示的な図である。
【
図3】本発明の一実施例に係るデータコーディネータの具現方式を説明するための例示的な図である。
【
図4】本発明の一実施例に係るデータアップローダの動作方法を示す例示的なフローチャートである。
【
図5】本発明の一実施例に係るデータアップローダの軽量化処理方法を説明するための例示的な図である。
【
図6】本発明の一実施例に係るデータアップローダの軽量化処理方法を説明するための例示的な図である。
【
図7】本発明の一実施例に係るデータアップローダの軽量化処理方法を説明するための例示的な図である。
【
図8】本発明の一実施例に係るデータアップローダに適用可能なパイプライニング方式を説明するための例示的な図である。
【
図9】本発明の一実施例に係るデータアップローダに適用可能なパイプライニング方式を説明するための例示的な図である。
【
図10】本発明の一実施例に係るデータトレーサーの動作方法を示す例示的なフローチャートである。
【
図11】本発明の一実施例に係るデータコーディネータの動作方法を示す例示的なフローチャートである。
【
図12】本発明の一実施例に係るデータコーディネータに適用可能なパイプライニング方式を説明するための例示的な図である。
【
図13】本発明の一実施例に係るデータコーディネータに適用可能なパイプライニング方式を説明するための例示的な図である。
【
図14】本発明の様々な実施例に係る装置及び/又はシステムを具現できる例示的なコンピューティング装置を示す図である。
【発明を実施するための形態】
【0032】
本明細書に開示されている本発明の概念による実施例についての特定の構造的又は機能的な説明は、単に本発明の概念による実施例を説明するための目的で例示されたものであって、本発明の概念による実施例は、様々な形態で実施可能であり、本明細書に説明された実施例に限定されない。
【0033】
本発明の概念による実施例は、様々な変更を加えることができ、様々な形態を有することができるので、実施例を図面に例示し、本明細書で詳しく説明する。しかし、これは、本発明の概念による実施例を特定の開示形態に対して限定しようとするものではなく、本発明の思想及び技術範囲に含まれる変更、均等物、または代替物を含む。
【0034】
「第1」又は「第2」などの用語は様々な構成要素を説明するのに 用いられるが用いられるが、前記構成要素は、前記用語によって限定されてはならない。前記用語は、一つの構成要素を他の構成要素から区別する目的でのみ、例えば、本発明の概念による権利範囲から逸脱しないまま、第1構成要素は第2構成要素と命名することができ、同様に、第2構成要素は第1構成要素とも命名することができる。
【0035】
ある構成要素が他の構成要素に「連結されて」いるとか、「接続されて」いると言及された際には、その他の構成要素に直接的に連結又は接続されていることもあるが、その構成要素間に他の構成要素が存在することもあると理解されなければならない。反面、ある構成要素が他の構成要素に「直接連結されて」いるとか、「直接接続されて」いると言及された際には、その構成要素間に他の構成要素が存在しないものと理解されなければならない。構成要素間の関係を説明する表現、例えば、「~間に」と「すぐ~間に」又は「~に直接隣接する」なども同様に解釈されなければならない。
【0036】
本明細書で使用した用語は、単に特定の実施例を説明するために用いられたもので、本発明を限定しようとする意図ではない。単数の表現は、文脈上明らかに別の意味を示すものでない限り、複数の表現を含む。本明細書において、「含む」又は「有する」などの用語は、明細書上に記載された特徴、数字、段階、動作、構成要素、部品またはこれらを組み合わせたものが存在することを指定しようとするものであって、1つ又はそれ以上の他の特徴や数字、段階、動作、構成要素、部品またはこれらを組み合わせたものの存在又は付加可能性をあらかじめ排除しないものと理解されなければならない。
【0037】
別に定義されない限り、技術的又は科学的な用語を含めてここで用いられる全ての用語は、本発明の属する技術分野における通常の知識を有する者によって一般的に理解されるものと同じ意味を有する。一般的に用いられる辞書に定義されている用語は、関連技術の文脈上有する意味と一致する意味を有するものと解釈されなければならず、本明細書で明らかに定義しない限り、理想的又は過度に形式的な意味として解釈されない。
【0038】
以下、実施例を添付の図面を参照して詳細に説明する。しかし、特許出願の範囲がこのような実施例によって制限又は限定されるものではない。各図面に提示された同一の参照符号は同一の部材を示す。
【0039】
図1は、本発明の一実施例に係る階層的データストアベースのデータ管理システムを概略的に示す例示的な構成図である。
【0040】
図1に示されたように、前記データ管理システムは、1つ以上のデータソース1-1,1-2,...,1-nから取得された原本データを、階層的データストア30を用いて管理するシステムであり得る。
【0041】
ここで、データソース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,1-2,...,1-nを総称するか、または任意のデータソース(1-1 or 1-2 or ... or 1-n)を指す場合には、参照番号「1」を使用するようにする。
【0042】
図示のように、前記データ管理システムは、データアップローダ10(data uploader)、階層的データストア30、データトレーサー50(data tracer)及びデータコーディネータ70(data coordinator)を含むことができる。但し、これは、本発明の目的を達成するための好ましい実施例に過ぎず、必要に応じて一部の構成要素が追加又は削除され得ることは勿論である。また、
図1に示されたデータ管理システムのそれぞれの構成要素(10、50、70など)は、機能的に区分される機能要素を示したもので、複数の構成要素が実際の物理的環境では互いに統合される形態でも具現され得ることに留意されたい。
【0043】
また、実際の物理的環境において前記それぞれの構成要素(10、50、70など)は、複数の細部機能要素に分離されたり、複数の物理的コンピューティング装置で具現されることもできる。例えば、データアップローダ10の第1機能は第1コンピューティング装置で具現され、データアップローダ10の第2機能は第2コンピューティング装置で具現されることもできる。または、データアップローダ10の特定の機能が複数のコンピューティング装置で具現されることもできる。
【0044】
前記コンピューティング装置は、例えば、ノートパソコン、デスクトップ(desktop)、ラップトップ(laptop)などであってもよいが、これに限定されるものではなく、コンピュータ機能が備えられたあらゆる種類の装置を含むことができる。コンピューティング装置の一例示に関しては、
図14を参照する。以下、データ管理システムの各構成要素について説明する。
【0045】
データアップローダ10は、データソース1から取得された原本データに対するアップロード機能を備えたコンピューティングモジュールまたはコンピューティング装置であってもよい。より具体的に、データアップローダ10は、軽量化処理を通じて、データソース1から取得された原本データを軽量データに変換し、変換された軽量データを軽量データストア31にアップロードすることができる。そのようにすることによって、データのアップロードに要求されるネットワーク費用が大幅に削減され得、大量の原本データが発生する環境でもデータのアップロードがリアルタイムで行われ得る。以下では、説明の便宜上、データアップローダ10を「アップローダ10」と略称する。
【0046】
図1は、データソース1とアップローダ10が多対一の関係であることを例として示している。しかし、データソース1とアップローダ10は、一対一の関係、または多対多の関係として設計されてもよい。また、アップローダ10は、データソース1と区分される別途のコンピューティング装置として具現されてもよく、データソース1又はデータソース1関連システムに搭載されるコンピューティングモジュールとして具現されてもよい。
【0047】
アップローダ10は、1つ以上のコンピューティング装置(又はモジュール)として具現され得る。但し、その具体的な具現方式は、実施例によって変わり得る。
【0048】
一実施例において、アップローダ10は、単一のコンピューティング装置として具現されてもよい。例えば、アップローダ10に要求される負荷(コンピューティング費用など)が大きくない環境であれば(発生する原本データの量が少ないか、または軽量化処理にかかるコンピューティング費用が少ない場合など)、単一のコンピューティング装置内で原本データの取得、軽量化処理及びデータのアップロードなどの動作が共に行われ得る。
【0049】
他の一実施例において、アップローダ10は、複数のコンピューティング装置として具現されてもよい。例えば、
図2に示されたように、アップローダ10は、原本データ(又は原本データチャンク(ODC3、ODC4など))を取得する第1コンピューティング装置11、並びに軽量化処理及び軽量データ(又は軽量データチャンク(LDC1など))のアップロードを行う第2コンピューティング装置13として具現されてもよい。このような場合、第1コンピューティング装置11と第2コンピューティング装置13は、通信ケーブル(クロスオーバーケーブル、ダイレクトケーブルなど)を介して接続され得、第2コンピューティング装置13は、例えば、共有ディレクトリ(shared directory)を介して、第1コンピューティング装置11から原本データを取得することができる。しかし、これに限定されるものではない。他の例として、アップローダ10は、原本データを取得する第1コンピューティング装置(11など)、軽量化処理を行う第2コンピューティング装置、及びデータのアップロードを行う第3コンピューティング装置として具現されてもよい。
【0050】
更に他の一実施例において、アップローダ10は、複数のコンピューティング装置として具現されるが、測定負荷に応じて異なる方式で動作することもできる。具体的に、測定負荷が基準値以下である場合、アップローダ10の全ての動作は単一のコンピューティング装置によって行われ、基準値以上である場合、アップローダ10の動作は複数のコンピューティング装置で行われ得る。例えば、測定負荷が基準値以上である場合、アップローダ10は、
図2に例示されたように動作することができる。
【0051】
アップローダ10の動作方法に関しては、後で
図4以下の図面を参照してより詳細に説明する。本発明において、アップローダ10の動作方法は、「データアップロード方法」とも命名され得る。
【0052】
【0053】
階層的データストア30は、軽量データと原本データが格納されるストアを意味することができ、図示のように、軽量データストア31、原本データストア35、及びマッピングテーブル33(mapping table)を含むことができる。
【0054】
軽量データストア31は、軽量データが格納(アップロード)されるストアであって、概念的に上位層のストアであり得る。例えば、データアップローダ10によってアップロードされる軽量データが、軽量データストア31に格納され得る。軽量データストア31は、多数のユーザ間にデータをレビューまたは共有するなどの用途として活用可能であるが、本発明の範囲がこれに限定されるものではない。
【0055】
次に、原本データストア35は、原本データが格納(アップロード)されるストアであって、概念的に下位層のストアであり得る。例えば、ユーザによって後でアップロードされる原本データが原本データストア35に格納され得る。
【0056】
各ストア31,35は、ファイル、データベース、クラウド(cloud)ストレージ、ローカルストレージ、ブロックチェーンネットワーク(blockchain network)などのように様々な形態で具現され得る。したがって、本発明の範囲がストア31,35の具現形態によって制限されるものではない。
【0057】
一実施例において、軽量データストア31は、相対的にユーザアクセシビリティが高いストアとして具現され、原本データストア35は、相対的にユーザアクセシビリティが低いストアとして具現され得る。例えば、軽量データストア31は、多数のユーザがアクセスし易いクラウドストレージとして具現され、原本データストア35は、ローカルストレージ(ローカルデータセンタなど)として具現され得る。このような場合、データの共有にかかるインフラ構築費用が大幅に削減され得る。
【0058】
一方、
図1は、階層的データストア30が2つの階層のデータストア31,35からなることを例として示しているが、本発明の範囲がこれに限定されるものではなく、階層的データストア30は3つ以上の階層からなってもよい。例えば、階層的データストア30は、原本データストア(35など)、第1軽量データが格納された第1軽量データストア(31など)、及び第1軽量データに対して追加の軽量化処理(データ要約など)を行って生成された第2軽量データが格納される第2軽量データストアで構成されてもよい。
【0059】
次に、マッピングテーブル33は、軽量データと原本データとの対応関係を格納しているテーブルであって、マッピングテーブル33の各エントリ(entry)には、軽量データと原本データのアップロード情報が格納され得る。
【0060】
軽量データのアップロード情報は、例えば、軽量データの識別子(ID、名前など)、軽量データのアップロード位置などを含むことができるが、これに限定されるものではない。また、原本データのアップロード情報は、例えば、原本データの識別子、原本データのアップロード位置などを含むことができるが、これに限定されるものではない。軽量データと対応する原本データは、同じ識別子を共有することができ、具現方式に応じて各データに別途の識別子が割り当てられてもよい。
【0061】
マッピングテーブル33は、様々な方式で設計及び具現され得る。例えば、マッピングテーブル33は、原本データと軽量データとの間に共有される識別子(ID、名前など)をキー(key)として有し、軽量データ又は原本データのアップロード位置などを値(value)として有するハッシュテーブル(hash table)として具現され得る。しかし、本発明の範囲がこれに限定されるものではない。
【0062】
次に、データトレーサー50は、原本データ及び/又は軽量データに対するトレーシング機能を備えたコンピューティングモジュール又はコンピューティング装置であってもよい。具体的に、データトレーサー50は、原本データストア35をモニタして特定の原本データがアップロードされることを感知することができる。そして、これに応答して、データトレーサー50は、特定の原本データのアップロード位置をマッピングテーブル33の関連エントリ(entry)に記録することによって、マッピングテーブル33をアップデートすることができる。他の例として、データトレーサー50は、軽量データストア31に特定の軽量データがアップロードされたことを感知し、これに応答して、特定の軽量データのアップロード位置をマッピングテーブル33の関連エントリに記録することもできる。以下では、説明の便宜上、データトレーサー50を「トレーサー50」と略称する。
【0063】
一実施例において、トレーサー50は、軽量データストア31と原本データストア35との間のデータ同期化を行うこともできる。例えば、トレーサー50は、原本データストア35から特定の原本データが削除されたことを感知し、これに応答して、軽量データストア31から対応する軽量データを削除することができる。または、トレーサー50は、軽量データストア31から特定の軽量データが削除されたことを感知し、これに応答して、原本データストア35から対応する原本データを削除することもできる。他の例として、トレーサー50は、軽量データストア31と原本データストア35との対応関係を検査し、検査結果に基づいてデータの同期化を行うことができる。例えば、トレーサー50は、特定の原本データに対応する軽量データが存在しないという検査結果に応答して、特定の原本データに対する軽量データを生成して軽量データストア31にアップロードすることもできる。本実施例において、データの同期化は周期的または非周期的に行われてもよい。例えば、トレーサー50は、可用コンピューティングリソースが基準値以上である場合にデータの同期化を行うこともできる。
【0064】
トレーサー50の動作方法に関しては、後で
図10を参照してより詳細に説明する。本発明において、トレーサー50の動作方法は、「データトレーシング方法」とも命名され得る。
【0065】
次に、データコーディネータ70は、階層的データストア30に格納されたデータを用いて予め定義されたタスク(task)を行うことができるコンピューティングモジュール又はコンピューティング装置であってもよい。例えば、データコーディネータ70は、ユーザの要求(命令)に応じて原本データストア35から特定の原本データをダウンロードし、特定の原本データをターゲットシステム3に伝送して所定のタスクを行うことができる。このような場合、ユーザが原本データストア35にアクセスして原本データをダウンロードすることが最小化されるところ、原本データのダウンロードにかかるネットワーク費用が大きく削減され得る。また、このような場合、データコーディネータ70は、原本データストア35と物理的に近い場所に位置し、原本データストア35と高速のデータダウンロードを保障できる回線(高帯域幅の専用線など)で接続されることが好ましい。データコーディネータ70とターゲットシステム3は、適切な通信ケーブル及び/又は通信方式(イーサネット、LVDSなど)で通信することができる。以下では、説明の便宜上、データコーディネータ70を「コーディネータ70」と略称する。
【0066】
前記タスクは、例えば、ターゲットシステム3の学習(人工知能ベースの異常検出モデルの学習など)、ターゲットシステム3を介したデータソース1関連システムの検証(異常検出モデルを介したデータソース1関連システムの動作異常の判断など)などのように、原本データ及び/又は軽量データを用いた任意のプロセシング作業を含むことができる。したがって、本発明の範囲が特定タイプのタスクに限定されるものではない。
【0067】
一方、コーディネータ70は、1つ以上のコンピューティング装置(又はモジュール)として具現され得る。但し、その具体的な具現方式は、実施例によって変わり得る。
【0068】
一実施例では、
図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に例示されたものと異なって設計されてもよい。
【0069】
コーディネータ70の動作方法に関しては、後で
図11乃至
図13を参照してより詳細に説明する。本発明において、コーディネータ70の動作方法は、「データコーディネーティング方法」とも命名され得る。
【0070】
一方、
図1に示された各構成要素(10など)の少なくとも一部は、ソフトウェア(Software)、またはFPGA(Field Programmable Gate Array)やASIC(Application-Specific Integrated Circuit)のようなハードウェア(Hardware)を意味することができる。ところが、前記構成要素は、ソフトウェア又はハードウェアに限定される意味ではなく、アドレッシング(Addressing)できる格納媒体にあるように構成されてもよく、1つまたはそれ以上のプロセッサを実行させるように構成されてもよい。前記構成要素内で提供される機能は、さらに細分化された構成要素によって具現されてもよく、複数の構成要素を合わせて特定の機能を行う一つの構成要素で具現されてもよい。
【0071】
以上、
図1乃至
図3を参照して本発明の一実施例に係る階層的データストアベースのデータ管理システムについて説明した。以下では、
図4以下の図面を参照して、前記データ管理システムで行われ得る様々な動作方法について詳細に説明する。
【0072】
以下で後述する方法の各ステップは、コンピューティング装置のプロセッサによって実行される1つ以上のインストラクションで実現され得、理解の便宜上、
図1に例示されたシステム構成を仮定して説明を続ける。したがって、特定のステップの動作主体が省略された場合、
図1に例示されたデータ管理システムの構成要素(10、50、70など)によって行われ得るものと理解され得る。
【0073】
図4は、本発明の一実施例に係るデータアップローダ10の動作方法を示す例示的なフローチャートである。但し、これは、本発明の目的を達成するための好ましい実施例に過ぎず、必要に応じて一部のステップが追加又は削除され得ることは勿論である。
【0074】
図4に示されたように、前記動作方法は、原本データを取得するステップS100から開始することができる。例えば、アップローダ10は、1つ以上のデータソース1から原本データを取得することができる。このような原本データは、例えば、リアルタイムで発生する大容量データであってもよい。しかし、これに限定されるものではない。
【0075】
ステップS120において、取得された原本データに対して軽量化処理が行われることによって、原本データが軽量データに変換され得る。例えば、アップローダ10は、取得された原本データが第1タイプであるという判断に応答して第1軽量化処理を行い、第1タイプと異なる第2タイプであるという判断に応答して、第1軽量化処理と異なる第2軽量化処理を行うことができる。言い換えると、軽量化処理の効率性のために、原本データのタイプに応じて、異なる軽量化アルゴリズムが適用され得る。以下、軽量化処理方法についてより詳細に説明する。
【0076】
一実施例において、原本データはシングルイメージ(single image)であってもよい。例えば、原本データは、シングルカメラによって生成されたシングルビューイメージであってもよい。このような場合、アップローダ10は、イメージのビット深度(bit depth)及び/又はチャネルの数を減少させる第1処理を行うことができる(8ビット/3チャネルのイメージを8ビット/1チャネルのイメージに変換など)。または、アップローダ10は、イメージのサイズを縮小させる第2処理を行うことができる。または、アップローダ10は、ビデオ圧縮アルゴリズム(H.264など)を適用して複数のシングルイメージをビデオイメージ(mp4ファイルなど)に変換する第3処理を行うことができる。または、アップローダ10は、上述した第1処理~第3処理の様々な組み合わせに基づいて軽量化処理を行うことができる。例えば、アップローダ10は、第1処理、第2処理及び第3処理を順次行うことで、シングルイメージをビデオイメージ(映像)に変換することができる。
【0077】
他の一実施例では、
図5に示されたように、原本データ21が複数のイメージで構成されたマルチイメージ(multi-image)であってもよい。例えば、原本データ21は、マルチカメラによって撮影されたマルチビューイメージであってもよい。このような場合、アップローダ10は、複数のイメージ21を接合(concatenation)し、接合されたイメージ23に対して軽量化処理を行って軽量イメージ25に変換することができる。このとき、前記軽量化処理は、例えば、シングルイメージの軽量化処理方式によって行われてもよい。
【0078】
更に他の一実施例では、
図6に示されたように、原本データ31が、予め定義されたフォーマット(
図6参照)のメッセージ(即ち、メッセージオブジェクト;msg)であってもよい。このような場合、アップローダ10は、1つ以上のメッセージ31をメッセージキュー33(msgQ)に格納し、メッセージキュー33を直列化(serialization)してバイナリデータ35に変換することができる。また、アップローダ10は、バイナリデータ33を圧縮して軽量データ37に変換することができる。このとき、前記圧縮は、無損失ベースの圧縮アルゴリズム(zipなど)に基づいて行われ得るが、これに限定されるものではない。アップローダ10は、メッセージキュー33がフル(full)状態のとき毎に上述した軽量化処理を行ってもよく、予め設定された周期によって軽量化処理を行ってもよい。また、アップローダ10は、メッセージキュー33を用いずに、1つ以上のメッセージ31に対して直接直列化を行うこともできる。
【0079】
更に他の一実施例では、原本データが、ライダー(LIDAR;Light Imaging Detection and Ranging)又はレーダ(RADAR;RAdio Detection And Ranging)センサによって生成されたデータであってもよい。このような場合、アップローダ10は、原本データを点群(point cloud)の形態のイメージに変換し、変換されたイメージに対して軽量化処理を行うことで、第1軽量データであるビデオイメージを生成することができる。このとき、前記軽量化処理は、例えば、シングルイメージの軽量化処理方式によって行われ得る。または、アップローダ10は、原本データを圧縮して第2軽量データを生成することもできる。または、アップローダ10は、原本データから前記第1軽量データと前記第2軽量データを共に生成することもできる。
【0080】
更に他の一実施例では、原本データが、複数のフレームで構成されたビデオイメージ(映像)であってもよい。このような場合、アップローダ10は、複数のフレームのうち、重要度の低い一部のフレームを削除する軽量化処理を行うことができる。このとき、重要度の低いフレームは、例えば、オブジェクトの動きが少ないフレーム、オブジェクトの数が少ないフレーム、前のフレームとの重畳率が非常に高いフレーム、関心オブジェクトが含まれていないフレームなどであり得るが、これに限定されるものではない。場合によって、アップローダ10は、複数のフレームのうち、ランダムに予め設定された個数のフレームを削除することもできる。
【0081】
更に他の一実施例では、
図7に示されたように、原本データ41がイメージであり、アップローダ10は、原本イメージ41の領域(411,413など)別に差別化された圧縮品質(又は軽量化の程度)を適用することができる。例えば、アップローダ10は、原本イメージ41からオブジェクト領域411を検出し、オブジェクト領域411を高品質で圧縮し、背景領域413を低品質で圧縮することができる(イメージ43参照)。このとき、オブジェクト領域411の検出は、例えば、コンピュータビジョンアルゴリズム又は人工知能ベースのオブジェクト検出モデル(CNNモデルなど)に基づいて行われ得るが、これに限定されるものではない。他の例として、アップローダ10は、原本イメージ41から複数のオブジェクト領域を検出し、オブジェクト領域の重要度に応じて、差別化された圧縮品質を適用することもできる。すなわち、重要度の高い第1オブジェクト領域には相対的に高い圧縮品質が適用され、重要度の低い第2オブジェクト領域には相対的に低い圧縮品質が適用され得る。ここで、オブジェクト領域の重要度は、例えば、領域(オブジェクト)のサイズ、関心オブジェクトであるか否かなどに基づいて決定され得るが、これに限定されるものではない。
【0082】
更に他の一実施例において、原本データはイメージであり、アップローダ10は、ディープラーニング(deep-learning)モデルをベースとして軽量化処理を行うこともできる。このとき、ディープラーニングモデルは、エンコーダ(encoder)とデコーダ(decoder)構造からなることができ、エンコーダは、入力イメージから特徴データを抽出するように学習され、デコーダは、特徴データをデコードして入力イメージと同じイメージを出力するように学習された神経網であり得る。このような場合、アップローダ10は、前記エンコーダを用いて原本イメージから特徴データを抽出し、抽出された特徴データを圧縮して軽量データに変換することができる。後で、軽量データは、圧縮解除後、デコーダを介してデコードされることによって原本イメージに変換され得る。
【0083】
更に他の一実施例において、アップローダ10は、上述した様々な実施例の組み合わせに基づいて軽量化処理を行うこともできる。
【0084】
【0085】
ステップS140において、軽量データにメタデータがタグ付けされ得る。メタデータは、例えば、原本データの識別子、サイズ、環境データなどを含むことができるが、これに限定されるものではない。前記環境データは、例えば、センシング環境に関するデータであって、時間、位置(場所)、天気、気候、地形、道路状態などに関する情報を含むことができる。しかし、これに限定されるものではない。参考に、アップローダ10は、原本データ取得時点の時間及び位置情報に基づいてインターネットで提供する情報を収集することによって環境データを生成することができる。しかし、これに限定されるものではない。
【0086】
一実施例において、本ステップS140は省略されてもよい。
【0087】
ステップS160において、軽量データがアップロードされ得る。具体的に、アップローダ10は、軽量データストア31に軽量データをアップロードすることができる。そして、アップローダ10は、軽量データの識別子、軽量データストア31の格納位置などのアップロード情報をマッピングテーブル33に登録することができる。例えば、アップローダ10は、前記アップロード情報をマッピングテーブル33の新規エントリに登録することができる。
【0088】
一方、本発明の一実施例によれば、上述したステップ(動作)S100~S160は、アップローダ10によってパイプライニング(pipelining)方式で行われてもよい。そのようにすることによって、データアップロードのリアルタイム性がさらに確実に保障され得る。以下では、さらに理解の便宜を提供するために、
図8及び
図9を参照して、本実施例について説明する。
【0089】
図8は、本発明の一実施例に係るアップローダ10に適用され得る例示的なパイプライニング方式を概念的に示している。
【0090】
図8に示されたように、アップローダ10は、各原本データチャンクODC1,ODC2,ODC3に対してデータ取得動作51-1~51-3、軽量化処理動作53-1~53-3、メタデータタグ付け動作55-1~55-3、及びデータアップロード動作57-1~57-3をパイプライニング方式で行うことができる。但し、パイプラインを構成する基本単位は、
図8に例示されたものよりもさらに大きい単位で設計されてもよく、さらに小さい単位で設計されてもよい。
【0091】
前記のような場合、複数の原本データチャンクに対する処理動作が並列化されることによって、データアップロードがさらに効率的に行われ得る。例えば、ステップ3において、第1原本データチャンクODC1に対するメタデータタグ付け動作55-1、第2原本データチャンクODC2に対する軽量化処理動作53-2、第3原本データチャンクODC3に対するデータ取得動作51-3が並列に行われ得る。
【0092】
図9は、
図8に例示されたパイプライニング方式の具現例を示している。具体的に、
図9は、アップローダ10が
図2に例示された構成で具現された場合にパイプライニングが行われる過程を示している。また、
図9は、アップローダ10を構成する第1コンピューティング装置11と第2コンピューティング装置13が共有ディレクトリを介して通信することを仮定している。以下、
図9を参照して説明する。
【0093】
ステップ1及び2において、第1コンピューティング装置11が第1原本データチャンクODC1を取得して共有ディレクトリに格納することができる。そして、第2コンピューティング装置13は、共有ディレクトリを介して第1原本データチャンクODC1を取得し、軽量化処理を通じて第1原本データチャンクODC1を第1軽量データチャンクLDC1に変換することができる。第2コンピューティング装置13は、共有ディレクトリをモニタし、原本データチャンクが共有ディレクトリに格納される度に原本データチャンクを取得することができる。
【0094】
ステップ3において、第1コンピューティング装置11が第2原本データチャンクODC2を取得して共有ディレクトリに格納することができる。そして、第2コンピューティング装置13は、第1軽量データチャンクLDC1にメタデータMをタグ付けすることができる。このような2つの動作は並列的に行われ得る。
【0095】
ステップ4において、第2コンピューティング装置13は、第2原本データチャンクODC2を第2軽量データチャンクLDC2に変換し、第1軽量データチャンク(LDC1+M)をアップロードすることができる。このような2つの動作は並列的に行われ得る。
【0096】
ステップ5において、第1コンピューティング装置11が第3原本データチャンクODC3を取得して共有ディレクトリに格納することができる。そして、第2コンピューティング装置13は、第2軽量データチャンクLDC2にメタデータMをタグ付けすることができる。このような2つの動作は並列的に行われ得る。
【0097】
以上、
図4乃至
図9を参照して、本発明の一実施例に係るデータアップロード方法について説明した。上述した方法によれば、原本データが軽量化処理を通じて軽量データに変換され、変換された軽量データがアップロードされ得る。これによって、データのアップロードのリアルタイム性が保障され得、データのアップロードにかかるネットワーク費用が大幅に削減され得る。それだけでなく、軽量化処理、データアップロード動作などをパイプライニング方式で行うことによって、データのアップロードのリアルタイム性がさらに確実に保障され得る。さらに、単純圧縮方式ではなく、原本データのタイプ及び特性に応じて互いに異なる方式の軽量化アルゴリズムを適用することによって、軽量化処理の効率性が向上することができる。
【0098】
以下では、
図10を参照して、本発明の一実施例に係るトレーサー50の動作方法について説明する。
【0099】
図10は、本発明の一実施例に係るトレーサー50の動作方法を示す例示的なフローチャートである。但し、これは、本発明の目的を達成するための好ましい実施例に過ぎず、必要に応じて一部のステップが追加又は削除され得ることは勿論である。
【0100】
図10に示されたように、前記動作方法は、原本データストア35をモニタするステップS200から開始することができる。例えば、トレーサー50は、原本データストア35に原本データがアップロードされることを感知するために持続的なモニタリングを行うことができる。
【0101】
ステップS210において、特定の原本データのアップロードが感知されたか否かが判断され得る。
【0102】
ステップS220及びS230において、アップロードが感知されたという判断に応答して、特定の原本データの識別子を用いてマッピングテーブル33が照会され得、照会の結果により関連エントリの存在有無が判断され得る。
【0103】
ステップS240において、照会されたエントリが存在しないという判断に応答して、特定の原本データが軽量データに変換され、変換された軽量データが軽量データストア31にアップロードされ得る。前述と同様に、トレーサー50は、原本データのタイプに応じて適切な軽量化処理を行うことで、特定の原本データを対応する軽量データに変換することができる。
【0104】
ステップS250において、照会されたエントリが存在するという判断に応答して、原本データのアップロード情報(アップロード位置など)を照会されたエントリに記録することによって、マッピングテーブル33がアップデートされ得る。また、トレーサー50は、特定の原本データのアップロード位置が変更される度に、前記照会されたエントリをアップデートすることができる。
【0105】
一方、ステップS240後に本ステップS250が行われる場合には、マッピングテーブル33の新規エントリに特定の原本データの識別子及びアップロード位置などのアップロード情報が登録され得る。
【0106】
以上、
図10を参照して、本発明の一実施例に係るトレーサー50の動作方法について説明した。上述によれば、トレーサー50が原本データのアップロードを感知し、アップロード位置をトレースすることによって、原本データと軽量データとの対応関係が効果的に管理され得る。
【0107】
以下では、
図11乃至
図13を参照して、本発明の一実施例に係るコーディネータ70の動作方法について説明する。
【0108】
図11は、本発明の一実施例に係るコーディネータ70の動作方法を示す例示的なフローチャートである。但し、これは、本発明の目的を達成するための好ましい実施例に過ぎず、必要に応じて一部のステップが追加又は削除され得ることは勿論である。
【0109】
図11に示されたように、前記動作方法は、データ識別子(原本データ識別子又は軽量データ識別子など)を受信するステップS300から開始することができる。例えば、コーディネータ70は、ユーザから原本データと軽量データとの間の共有識別子を受信することができる。
【0110】
一実施例では、複数のタスクが予め定義されており、タスク別にタスク識別子が割り当てられていてもよい。このような場合、コーディネータ70は、データ識別子以外にタスク識別子をさらに受信することもできる。
【0111】
ステップS320において、受信されたデータ識別子に対応する特定の原本データがダウンロードされ得る。例えば、コーディネータ70は、受信された識別子でマッピングテーブル33を照会して、特定の原本データのアップロード位置情報を確認することができ、確認されたアップロード位置情報を用いて、原本データストア35から特定の原本データをダウンロードすることができる。
【0112】
ステップS340において、特定の原本データを用いて、予め定義されたタスクが行われ得る。例えば、予め定義されたタスクがターゲットシステム3の学習である場合、コーディネータ70は、特定の原本データをターゲットシステム3に伝送(注入)して学習タスクを行うことができる。
【0113】
一実施例では、コーディネータ70がタスク識別子をさらに受信することができるが、このような場合、コーディネータ70は、特定の原本データを用いて、タスク識別子に対応するタスクを行う(実行する)ことができる。
【0114】
ステップS360において、タスクの実行結果が提供され得る。例えば、コーディネータ70は、タスクの実行結果をユーザに提供することができる。
【0115】
一方、本発明の一実施例によれば、コーディネータ70のダウンロード動作及びデータ伝送動作(又はタスク実行動作)は、パイプライニング方式で行われることもできる。そのようにすることによって、原本データのダウンロード及びタスクの実行がより効率的に行われ得る。以下では、さらに理解の便宜を提供するために、
図12及び
図13を参照して本実施例について説明する。
【0116】
図12は、本発明の一実施例に係るコーディネータ70に適用され得る例示的なパイプライニング方式を概念的に示している。特に、
図12は、コーディネータ70が
図3に示されたように具現されたことを仮定している。
【0117】
図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参照)。
【0118】
図13は、
図12に例示されたパイプライニング方式の具現例を示している。具体的に、
図13は、コーディネータ70がn台のダウンローダ(72,76など)及び1台のタスクワーカ71で具現された場合にパイプライニングが行われる過程を示している。また、
図13は、タスクワーカ71とダウンローダ(72,76など)が共有ディレクトリを介して通信することを仮定している。以下、
図13を参照して説明する。
【0119】
ステップ0において、原本データのダウンロードのための初期設定が行われ得る。具体的に、各ダウンローダ(72,76など)に識別子が割り当てられ、ダウンローダ(72,76など)とタスクワーカ71との間に原本データチャンクのリストが共有され得る。このような初期設定は、ユーザによって行われ得るが、本発明の範囲がこれに限定されるものではない。また、ダウンローダ(72,76など)の識別子は、例えば、逐次的な値として割り当てられ得る(1からnまでの逐次的な値としての割り当てなど)が、これに限定されるものではない。但し、以下では、理解の便宜のために、ダウンローダ(72,76など)の識別子が逐次的に割り当てられたことを仮定して説明を続ける。
【0120】
ステップ1において、複数のダウンローダ(72,76など)が原本データストア35から原本データチャンク(ODC1,ODCnなど)をダウンロードすることができる。このとき、各ダウンローダ(72,76など)は、自身の識別子に対応する原本データチャンク(ODC1,ODCnなど)をダウンロードすることができる。例えば、対象原本データチャンクの総数が2n個である場合、第1ダウンローダ72は、1番のデータチャンク(ODC1など)とn+1番のデータチャンク(ODCn+1など)をダウンロードし、第nダウンローダ76は、n番のデータチャンク(ODCnなど)と2n番のデータチャンク(ODC2nなど)をダウンロードすることができる。すなわち、各ダウンローダ(72,76など)は、自身の識別子とモジュラー(modular)演算値が一致する原本データチャンク(ODC1,ODCnなど)をダウンロードすることができる。そのようにすることによって、原本データチャンクの重複ダウンロードが防止され得る。
【0121】
また、複数のダウンローダ(72,76など)は、ダウンロードされた原本データチャンク(ODC1,ODCnなど)を共有ディレクトリに格納することができる。そして、タスクワーカ71は、共有ディレクトリに原本データチャンク(ODC1,ODCnなど)が格納されることをモニタすることができる。
【0122】
ステップ2において、複数のダウンローダ(72,76など)は、原本データストア35から次の原本データチャンク(ODCn+1,ODC2nなど)をダウンロードすることができる。そして、タスクワーカ71は、共有ディレクトリから格納された原本データチャンク(ODC1,ODC2など)を取得してターゲットシステム3に伝送することができる。このような2つの動作は並列的に行われ得る。
【0123】
参考に、タスクワーカ71は、第1原本データチャンク(ODC1など)を伝送する間にメモリ上に第2原本データチャンク(ODC2など)をローディングする方式で、データ伝送動作とメモリローディング動作を並列的に行うこともできる。
【0124】
以上、
図11乃至
図13を参照して、本発明の一実施例に係るコーディネータ70の動作方法について説明した。上述によれば、コーディネータ70が原本データをダウンロードし、予め定義されたタスクを行うことによって、ユーザが原本データを直接ダウンロードすることが最小化され得る。これによって、原本データのダウンロードにかかるネットワーク費用が大幅に削減され得、原本データストアに対するインフラ構築費用も大幅に節減され得る。さらに、コーディネータ70の動作がパイプライニング方式で行われることによって、タスク実行時間が大幅に短縮され得る。
【0125】
以下では、
図14を参照して、本発明の様々な実施例に係る装置(アップローダ10など)及び/又はシステムを具現できる例示的なコンピューティング装置200について説明する。
【0126】
図14は、コンピューティング装置200を示す例示的なハードウェア構成図である。
【0127】
図14に示されたように、コンピューティング装置200は、1つ以上のプロセッサ210、バス250、通信インターフェース270、プロセッサ210によって行われるコンピュータプログラム291をロード(load)するメモリ230、及びコンピュータプログラム291を格納するストレージ290を含むことができる。但し、
図14には、本発明の実施例と関連のある構成要素のみが示されている。したがって、本発明の属する技術分野における通常の技術者であれば、
図14に示された構成要素以外に、他の汎用的な構成要素がさらに含まれ得ることが分かる。
【0128】
プロセッサ210は、コンピューティング装置200の各構成の全般的な動作を制御することができる。プロセッサ210は、CPU(Central Processing Unit)、MPU(Micro Processor Unit)、MCU(Micro Controller Unit)、GPU(Graphic Processing Unit)、または本発明の技術分野によく知られている任意の形態のプロセッサを含んで構成されてもよい。また、プロセッサ210は、本発明の実施例に係る動作/方法を実行するための少なくとも1つのアプリケーション又はプログラムに対する演算を行うことができる。コンピューティング装置200は1つ以上のプロセッサを備えることができる。
【0129】
次に、メモリ230は、各種データ、命令及び/又は情報を格納することができる。メモリ230は、本発明の実施例に係る動作/方法を実行するために、ストレージ290から1つ以上のプログラム291をロードすることができる。メモリ230は、RAMのような揮発性メモリとして実現され得るが、本発明の範囲がこれに限定されるものではない。
【0130】
次に、バス250は、コンピューティング装置200の構成要素間の通信機能を提供することができる。バス250は、アドレスバス(Address Bus)、データバス(Data Bus)及び制御バス(Control Bus)などの様々な形態のバスとして実現され得る。
【0131】
次に、通信インターフェース270は、コンピューティング装置200の有無線インターネット通信をサポートすることができる。また、通信インターフェース270は、インターネット通信以外の様々な通信方式をサポートすることもできる。そのために、通信インターフェース270は、本発明の技術分野によく知られている通信モジュールを含んで構成され得る。
【0132】
次に、ストレージ290は、前記1つ以上のプログラム291を非臨時的に格納することができる。ストレージ290は、ROM(Read Only Memory)、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)、フラッシュメモリなどのような非揮発性メモリ、ハードディスク、着脱型ディスク、または本発明の属する技術分野でよく知られている任意の形態のコンピュータで読み取り可能な記録媒体を含んで構成され得る。
【0133】
次に、コンピュータプログラム291は、メモリ230にロードされるとき、プロセッサ210に本発明の実施例に係る動作/方法を行うようにする1つ以上のインストラクション(instructions)を含むことができる。すなわち、プロセッサ210は、前記1つ以上のインストラクションを実行することによって、本発明の実施例に係る動作/方法を行うことができる。
【0134】
例えば、コンピュータプログラム291は、原本データを取得する動作、取得された原本データが第1タイプであるという判断に応答して、第1軽量化処理を行う動作、取得された原本データが第1タイプと異なる第2タイプであるという判断に応答して、第1軽量化処理と異なる第2軽量化処理を行う動作、及び第1軽量化処理又は第2軽量化処理を通じて変換された軽量データをアップロードする動作を行うようにするインストラクションを含むことができる。このような場合、コンピューティング装置200を通じて、本発明の一実施例に係るアップローダ10が具現され得る。
【0135】
他の例として、コンピュータプログラム291は、原本データストア35に特定の原本データがアップロードされたことを感知したことに応答して、マッピングテーブル33から特定の原本データに対応する軽量データのエントリを照会する動作、及び照会されたエントリに特定の原本データのアップロード位置をアップデートする動作を行うようにするインストラクションを含むことができる。このような場合、コンピューティング装置200を通じて、本発明の一実施例に係るトレーサー50が具現され得る。
【0136】
更に他の例として、コンピュータプログラム291は、軽量データストア31に格納された特定の軽量データの識別子を受信する動作、受信された識別子を用いて原本データストア35から特定の軽量データに対応する原本データをダウンロードする動作、及びダウンロードされた原本データを用いて予め定義されたタスクを行う動作を行うようにするインストラクションを含むことができる。このような場合、コンピューティング装置200を通じて、本発明の一実施例に係るコーディネータ70が具現され得る。
【0137】
以上、
図14を参照して、本発明の様々な実施例に係る装置及び/又はシステムを具現できる例示的なコンピューティング装置200について説明した。
【0138】
以上、
図1乃至
図14を参照して説明された本発明の技術的思想は、コンピュータが読み取り可能な媒体上に、コンピュータが読み取り可能なコードとして具現され得る。前記コンピュータで読み取り可能な記録媒体は、例えば、移動型記録媒体(CD、DVD、ブルーレイディスク、USBストレージ装置、移動式ハードディスク)であるか、または固定式記録媒体(ROM、RAM、コンピュータ具備型ハードディスク)であってもよい。前記コンピュータで読み取り可能な記録媒体に記録された前記コンピュータプログラムは、インターネットなどのネットワークを介して他のコンピューティング装置に伝送されて前記他のコンピューティング装置にインストールされ得、これによって、前記他のコンピューティング装置で使用され得る。
【0139】
以上で、本発明の実施例を構成するすべての構成要素が一つに結合されるか、または結合されて動作するものとして説明されたとして、本発明の技術的思想が必ずしもこのような実施例に限定されるものではない。すなわち、本発明の目的の範囲内であれば、そのすべての構成要素が一つ以上に選択的に結合して動作することもできる。
【0140】
図面では動作が特定の順序で示されているが、必ずしも動作が図示された特定の順序でまたは順次的に実行されなければならないか、またはすべての図示された動作が実行されてこそ所望の結果を得ることができるものと理解されてはならない。特定の状況では、マルチタスキング及び並列処理が有利である場合もある。さらに、上述した実施例において様々な構成の分離は、当該分離が必ずしも必要なものとして理解されてはならず、説明されたプログラムコンポーネント及びシステムは、一般に単一のソフトウェア製品にともに統合されるか、多数のソフトウェア製品にパッケージされ得ることを理解しなければならない。
【0141】
以上、添付の図面を参照して本発明の実施例を説明したが、本発明の属する技術分野における通常の知識を有する者は、その技術的思想や必須の特徴を変更せずに、本発明が他の具体的な形態で実施できるということを理解できる。したがって、以上で記述した実施例は、すべての面で例示的なものであり、限定的なものではないと理解しなければならない。本発明の保護範囲は、添付の特許請求の範囲によって解釈されるべきであり、それと同等な範囲内にあるすべての技術思想は、本発明によって定義される技術的思想の権利範囲に含まれるものと解釈されるべきである。
【国際調査報告】