特許第6856870号(P6856870)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧
特許6856870分散データ管理プログラム、分散データ管理方法、及び分散データ管理装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6856870
(24)【登録日】2021年3月23日
(45)【発行日】2021年4月14日
(54)【発明の名称】分散データ管理プログラム、分散データ管理方法、及び分散データ管理装置
(51)【国際特許分類】
   G06F 16/174 20190101AFI20210405BHJP
   G06F 16/182 20190101ALI20210405BHJP
   G06F 13/00 20060101ALI20210405BHJP
【FI】
   G06F16/174
   G06F16/182
   G06F13/00 520B
【請求項の数】6
【全頁数】27
(21)【出願番号】特願2017-79739(P2017-79739)
(22)【出願日】2017年4月13日
(65)【公開番号】特開2018-180942(P2018-180942A)
(43)【公開日】2018年11月15日
【審査請求日】2020年1月15日
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】特許業務法人扶桑国際特許事務所
(72)【発明者】
【氏名】松田 一仁
【審査官】 鹿野 博嗣
(56)【参考文献】
【文献】 特開平09−321633(JP,A)
【文献】 米国特許出願公開第2009/0130930(US,A1)
【文献】 特開2015−087953(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/174
G06F 13/00
G06F 16/182
(57)【特許請求の範囲】
【請求項1】
機器からの情報を取得して記憶装置に記憶し、
所定期間に取得した機器からの情報について、前記機器の識別に用いる第1の識別情報と前記第1の識別情報に割り振られる第2の識別情報とを対応付ける対応表、及び、前記対応表のバージョンを示すバージョン情報を参照し、該機器の識別に用いる前記第1の識別情報がある場合には該情報に対応する前記第2の識別情報を割り振り、該機器の識別に用いる前記第1の識別情報がない場合には、新たに第2の識別情報を割り振って前記対応表を更新すると共に前記バージョン情報を更新し、
前記機器の識別に用いる前記第1の識別情報に割り振った前記第2の識別情報を使用して前記機器からの情報を圧縮したデータと、前記バージョン情報とを管理装置に送信し、
同時に圧縮される前記機器からの情報に対応する前記第1の識別情報を記憶し、圧縮の度に算出される前記第1の識別情報の共起確率に基づいて前記第2の識別情報の再割り振りを実施する
処理をコンピュータに実行させる、分散データ管理プログラム。
【請求項2】
前記共起確率が第1閾値以上となる前記第1の識別情報の組に対応する前記第2の識別情報の組を特定し
特定された前記第2の識別情報の組の差分値を算出し、
前記特定された前記第2の識別情報の組を母集団とし、前記差分値が第2の閾値以下である前記第2の識別情報の組の前記母集団に占める割合を求め、
前記割合が所定値以下の場合、前記再割り振りを実施する
処理をコンピュータに実行させる、請求項1に記載の分散データ管理プログラム。
【請求項3】
前記共起確率が大きい順に所定数の前記第1の識別情報の組を選択し、選択された前記第1の識別情報の組を対象に前記再割り振りの処理を実施する
処理をコンピュータに実行させる、請求項2に記載の分散データ管理プログラム。
【請求項4】
他のコンピュータが取得した前記機器からの情報が存在する位置に関する他の機器からの情報を前記機器からの情報と共に圧縮して前記管理装置に送信する
処理をコンピュータに実行させる、請求項1に記載の分散データ管理プログラム。
【請求項5】
コンピュータが、
機器からの情報を取得して記憶装置に記憶し、
所定期間に取得した機器からの情報について、前記機器の識別に用いる第1の識別情報と前記第1の識別情報に割り振られる第2の識別情報とを対応付ける対応表、及び、前記対応表のバージョンを示すバージョン情報を参照し、該機器の識別に用いる前記第1の識別情報がある場合には該情報に対応する前記第2の識別情報を割り振り、該機器の識別に用いる前記第1の識別情報がない場合には、新たに第2の識別情報を割り振って前記対応表を更新すると共に前記バージョン情報を更新し、
前記機器の識別に用いる前記第1の識別情報に割り振った前記第2の識別情報を使用して前記機器からの情報を圧縮したデータと、前記バージョン情報とを管理装置に送信し、
同時に圧縮される前記機器からの情報に対応する前記第1の識別情報を記憶し、圧縮の度に算出される前記第1の識別情報の共起確率に基づいて前記第2の識別情報の再割り振りを実施する
分散データ管理方法。
【請求項6】
取得された機器からの情報を記憶する記憶部と、
所定期間に取得した機器からの情報について、前記機器の識別に用いる第1の識別情報と前記第1の識別情報に割り振られる第2の識別情報とを対応付ける対応表、及び、前記対応表のバージョンを示すバージョン情報を参照し、該機器の識別に用いる前記第1の識別情報がある場合には該情報に対応する前記第2の識別情報を割り振り、該機器の識別に用いる前記第1の識別情報がない場合には、新たに第2の識別情報を割り振って前記対応表を更新すると共に前記バージョン情報を更新し、
前記機器の識別に用いる前記第1の識別情報に割り振った前記第2の識別情報を使用して前記機器からの情報を圧縮したデータと、前記バージョン情報とを管理装置に送信し、
同時に圧縮される前記機器からの情報に対応する前記第1の識別情報を記憶し、圧縮の度に算出される前記第1の識別情報の共起確率に基づいて前記第2の識別情報の再割り振りを実施する演算部と
を有する、分散データ管理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、分散データ管理プログラム、分散データ管理方法、及び分散データ管理装置に関する。
【背景技術】
【0002】
PC(Personal Computer)、スマートフォン、カーナビゲーションシステムなどの電子機器には、多くの場合、CPU(Central Processing Unit)やメモリの他に、通信機能を提供する通信インターフェースが搭載されている。こうした電子機器は、有線又は無線のLAN(Local Area Network)やWAN(Wide Area Network)などのネットワークを介して他の電子機器と情報をやり取りできる。また、こうした電子機器は、IoT(Internet of Things)デバイスと呼ばれることがある。
【0003】
ネットワークに接続されるIoTデバイスをデータストレージとして利用する技術が研究されている。例えば、データストレージとして利用するIoTデバイスをGW(Gateway)装置に設定し、GW装置自身又はGW装置に接続されるIoTデバイスのセンサから出力されるデータをGW装置に一時的に蓄積するシステムが検討されている。
【0004】
どのGW装置に、どのデータが蓄積されているかは、例えば、ネットワークを介してGW装置に接続されるデータセンタにより管理される。例えば、データを出力したIoTデバイスや、そのデータを蓄積しているGW装置の識別情報、及び、データの検索に用いるキー情報などを含むディレクトリ情報がデータセンタにより管理される。特定のデータを利用したいユーザは、データセンタに問い合わせを行ってディレクトリ情報を取得し、取得したディレクトリ情報を参照して特定のデータを蓄積しているGW装置を検出する。
【0005】
なお、識別番号を基にして、直列に接続された1台のマスター機器と複数台のスレーブ機器が通信を行う通信システムが提案されている。この通信システムにおいては、上位機器から送信された識別番号設定用の数値を基に、スレーブ機器が自己識別番号を自動的に設定すると共に、次のスレーブ機器に対して自己識別番号を基にした識別番号設定用の数値を送信する。この処理により、全てのスレーブ機器に識別番号が自動的に設定される。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2005−277978号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
上記のように、GW装置に蓄積されるデータのディレクトリ情報をデータセンタが保持していれば、GW装置がデータセンタにデータを全てアップロードしなくてもユーザがGW装置から所望のデータを取得できるようになる。但し、GW装置に蓄積されるデータに関するディレクトリ情報をGW装置がデータセンタに送信する処理は生じる。
【0008】
1つ1つのディレクトリ情報のデータサイズが小さくても、多数のGW装置がデータセンタにディレクトリ情報を送信するとネットワークの負荷が大きくなる。そのため、ディレクトリ情報は圧縮して送信される。但し、UUID(Universally Unique Identifier)v4のような広い名前空間からランダムに選択されるIDが含まれる場合、ディレクトリ情報が効果的に圧縮されないことがある。
【0009】
1つの側面によれば、本発明の目的は、情報の取得元となる機器の組み合わせが変化しても圧縮率の高いデータを管理装置に送信することが可能な分散データ管理プログラム、分散データ管理方法、及び分散データ管理装置を提供することにある。
【課題を解決するための手段】
【0010】
1つの側面によれば、機器からの情報を取得して記憶装置に記憶し、所定期間に取得した機器からの情報について、機器の識別に用いる第1の識別情報と第1の識別情報に割り振られる第2の識別情報とを対応付ける対応表、及び、対応表のバージョンを示すバージョン情報を参照し、該機器の識別に用いる第1の識別情報がある場合には該情報に対応する第2の識別情報を割り振り、該機器の識別に用いる第1の識別情報がない場合には、新たに第2の識別情報を割り振って対応表を更新すると共にバージョン情報を更新し、機器の識別に用いる第1の識別情報に割り振った第2の識別情報を使用して機器からの情報を圧縮したデータと、バージョン情報とを管理装置に送信し、同時に圧縮される機器からの情報に対応する第1の識別情報を記憶し、圧縮の度に算出される第1の識別情報の共起確率に基づいて第2の識別情報の再割り振りを実施する処理をコンピュータに実行させる、分散データ管理プログラムが提供される。
【発明の効果】
【0011】
情報の取得元となる機器の組み合わせが変化しても圧縮率の高いデータを管理装置に送信することができる。
【図面の簡単な説明】
【0012】
図1】第1実施形態に係るデータ管理システムの一例を示した図である。
図2】第2実施形態に係るデータ管理システムの一例を示した図である。
図3】データの取得について説明するための図である。
図4】ディレクトリ情報の収集について説明するための図である。
図5】GW装置の機能を実現可能なハードウェアの一例を示したブロック図である。
図6】第2実施形態に係るGW装置が有する機能の一例を示したブロック図である。
図7】蓄積情報リストの一例を示した図である。
図8】対応表の一例を示した図である。
図9】共起確率リストの一例を示した図である。
図10】動的IDプールの一例を示した図である。
図11】第2実施形態に係るDS装置が有する機能の一例を示したブロック図である。
図12】対応表群の一例を示した図である。
図13】バージョン管理情報の一例を示した図である。
図14】登録情報の一例を示した図である。
図15】GW装置及びDS装置の動作例(ディレクトリ情報の登録要求から登録までの流れ)について説明するための図である。
図16】圧縮処理の例として整数列圧縮について説明するための図である。
図17】再払い出しの判断について説明するための図である。
図18】第2実施形態に係るGW装置の動作について説明するための第1のフロー図である。
図19】第2実施形態に係るGW装置の動作について説明するための第2のフロー図である。
図20】第2実施形態に係るGW装置の動作について説明するための第3のフロー図である。
図21】動的ID払い出しに関する処理の流れを示したフロー図である。
図22】第2実施形態の一変形例に係るGW装置の動作について説明するための第1のフロー図である。
図23】第2実施形態の一変形例に係るGW装置の動作について説明するための第2のフロー図である。
図24】第2実施形態に係るDS装置の動作について説明するためのフロー図である。
【発明を実施するための形態】
【0013】
以下に添付図面を参照しながら、本発明の実施形態について説明する。なお、本明細書及び図面において実質的に同一の機能を有する要素については、同一の符号を付することにより重複説明を省略する場合がある。
【0014】
<1.第1実施形態>
図1を参照しながら、第1実施形態について説明する。第1実施形態は、管理装置に送信される情報を効果的に圧縮する方法に関する。図1は、第1実施形態に係るデータ管理システムの一例を示した図である。
【0015】
図1に示すように、データ管理システム1は、分散データ管理装置10と、機器21、22、…と、管理装置30とを有する。
分散データ管理装置10、機器21、22、…、及び管理装置30は、ネットワーク5を介して接続される。ネットワーク5は、例えば、LANやWANなどのネットワークであり、有線及び/又は無線の通信回線によって形成される。分散データ管理装置10、機器21、22、…は、例えば、PC、スマートフォン、車載デバイスなどのコンピュータである。管理装置30は、例えば、データセンタとして機能するPCやサーバ装置などのコンピュータである。
【0016】
分散データ管理装置10は、記憶部11及び演算部12を有する。
記憶部11は、RAM(Random Access Memory)などの揮発性記憶装置、或いは、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置である。演算部12は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などのプロセッサである。演算部12は、例えば、記憶部11又は他のメモリに記憶されたプログラムを実行する。
【0017】
記憶部11には、機器21、22、…から取得された情報(機器からの情報41)が格納される。機器からの情報41としては、例えば、機器21、22、…が搭載するセンサが出力したセンサデータなどがある。
【0018】
図1の例では、(A)に示すように、機器21からの情報D1、D2、機器22からの情報D3が記憶部11に格納されている。なお、機器21、22、…は、それぞれ第1の識別情報42により識別される。第1の識別情報42は、例えば、UUIDv4などの広い名前空間からランダムに選択されるIDである。
【0019】
また、記憶部11には、上記の第1の識別情報42と、第1の識別情報42に割り振られる第2の識別情報43とを対応付ける対応表44、及び、対応表44のバージョンを示すバージョン情報45が格納される((B)を参照)。
【0020】
演算部12は、所定期間に取得した機器からの情報41について、対応表44及びバージョン情報45を参照し、該機器21、22、…の識別に用いる第1の識別情報42がある場合には該情報に対応する第2の識別情報43を割り振る。一方、所定期間に取得した機器からの情報41について、機器21、22、…の識別に用いる第1の識別情報42が対応表44にない場合、演算部12は、新たに第2の識別情報43を割り振って対応表44を更新し、バージョン情報45を更新する((C)を参照)。
【0021】
演算部12は、機器21、22、…の識別に用いる第1の識別情報42に割り振った第2の識別情報43を使用して機器からの情報41を圧縮する。例えば、演算部12は、対応表44に基づいて第1の識別情報42を第2の識別情報43に変換し、変換後の情報46を圧縮して圧縮データ47を生成する((D)を参照)。そして、演算部12は、圧縮データ47と、バージョン情報45とを管理装置30へ送信する。
【0022】
演算部12は、同時に圧縮される機器からの情報41に対応する第1の識別情報42を記憶する。図1の例では、(A)に示すように、機器21、22についての機器からの情報41が同時に圧縮される。つまり、機器21、22についての第1の識別情報42が同時に圧縮の対象になっている(共起している)。演算部12は、(E)に示すように、圧縮の度に第1の識別情報42のペアについての共起確率48を算出する。そして、演算部12は、共起確率48に基づいて第2の識別情報43の再割り振りを実施する。
【0023】
例えば、共起確率48が所定の閾値より大きい場合、演算部12は、同時に圧縮する場合に、より効果的に圧縮される第2の識別情報43を機器21、22についての第1の識別情報42に割り振る。圧縮方法として、例えば、圧縮対象となる2つの整数ペアの差分が小さいほど圧縮効率が高くなる整数列圧縮を採用する場合、演算部12は、差分が小さい第2の識別情報43のペアを機器21、22についての第1の識別情報42のペアに割り振る。
【0024】
上記のように、同時に圧縮される可能性が高い第1の識別情報42のペアに対して、圧縮効率が高い第2の識別情報43のペアを割り振ることで、管理装置30に送信される情報の圧縮効率を高めることができる。また、圧縮の度に共起確率を計算し、上記の再割り振りを実施することで、情報の取得元となる機器の組み合わせが変更されても、圧縮効率の高い第2の識別情報43の組み合わせが第1の識別情報42に割り振られた状態を維持することが可能になる。
【0025】
以上、第1実施形態について説明した。
<2.第2実施形態>
次に、第2実施形態について説明する。第2実施形態は、GW装置にデータを蓄積し、GW装置に蓄積されるデータの検索に用いるディレクトリ情報を圧縮してデータセンタに送信するデータ管理システムに関する。
【0026】
[2−1.システム]
図2を参照しながら、データ管理システム50について説明する。図2は、第2実施形態に係るデータ管理システムの一例を示した図である。なお、図2のデータ管理システム50は、第2実施形態に係るデータ管理システムの一例である。
【0027】
図2に示すように、データ管理システム50は、GW装置101、102、103、104、105、106、107と、DS(Directory Service)装置200と、端末装置300とを有する。
【0028】
GW装置101、102、103、104、105、106、107は、例えば、PC、スマートフォン、車載デバイスなど、データを出力するセンサを搭載したIoTデバイスである。なお、図2には7台のGW装置を記載しているが、GW装置の台数は6台以下又は8台以上であってもよい。
【0029】
以下では、説明の都合上、GW装置101、103を集約GWと呼ぶ場合がある。また、GW装置104、105、106、107を非集約GWと呼ぶ場合がある。集約GWは、非集約GWが蓄積しているデータについてのディレクトリ情報を集約管理するGW装置である。例えば、非集約GWは、BLE(Bluetooth(登録商標) Low Energy)などの短距離低消費電力無線通信を利用して集約GWにディレクトリ情報を送信する。GW装置102は、GW装置104などと同様に動作する。
【0030】
DS装置200は、データセンタとして機能するPCやサーバ装置などのコンピュータである。DS装置200は、GW装置101、102、103、104、105、106、107に蓄積されるデータの検索に用いるディレクトリ情報の管理を行うディレクトリサービスを提供する。
【0031】
端末装置300は、PCやスマートフォンなどのコンピュータである。端末装置300は、GW装置101、102、103、104、105、106、107に蓄積されるデータを検索するユーザが利用するユーザ端末である。
【0032】
(データの取得)
ここで、図3を参照しながら、端末装置300を用いて、GW装置101、102、103にあるデータを取得する方法について説明する。図3は、データの取得について説明するための図である。
【0033】
図3の例では、GW装置101にデータvalA、…、valCが蓄積され、GW装置103にデータvalD、…、valFが蓄積されている。この例において、DS装置200は、GW装置101、…、103に蓄積されているデータの検索に用いるディレクトリ情報DIRを保持している。このディレクトリ情報DIRには、データを保持している機器の識別に用いる機器ID(例えば、UUID)と、データ検索のキー情報として用いる属性情報(key、val)と、集約GWの識別に用いるgwIDとが含まれる。
【0034】
例えば、GW装置103にあるデータvalDの属性情報を指定したデータ取得要求ReqがDS装置200に入力されると、DS装置200は、ディレクトリ情報DIRを参照してGW装置103を特定する。そして、DS装置200は、データvalDの属性情報及びデータの送信先(端末装置300)を指定したデータ取得要求ReqをGW装置103に送信する。GW装置103は、このデータ取得要求Reqに応じてデータvalDを特定し、データvalDを端末装置300に送信する。
【0035】
(ディレクトリ情報の収集)
上記のような仕組みを実現するために、DS装置200は、図4に示すような方法でディレクトリ情報DIRを集約GWから収集する。図4は、ディレクトリ情報の収集について説明するための図である。なお、説明の都合上、図4では、GW装置101がDS装置200にディレクトリ情報DIRを送信する場合を例示している。
【0036】
図4に示すように、GW装置101は、非集約GWであるGW装置104、105のそれぞれからディレクトリ情報DIR#4、#5を収集する。ディレクトリ情報DIR#4は、GW装置104に蓄積されているデータの検索に用いるディレクトリ情報である。また、ディレクトリ情報DIR#5は、GW装置105に蓄積されているデータの検索に用いるディレクトリ情報である。
【0037】
GW装置101は、GW装置101に蓄積されているデータの検索に用いるディレクトリ情報DIR#1と、GW装置104、105から収集したディレクトリ情報DIR#4、#5とを集約してディレクトリ情報DIR#1Cを生成する。
【0038】
また、GW装置101は、ディレクトリ情報DIR#1Cに含まれる機器IDのID変換を実施し、ID変換後のディレクトリ情報DIR#1Cを圧縮して圧縮ディレクトリ情報(圧縮DIR)を生成する。上記のID変換は、機器IDと、予め設定された動的IDとを対応付ける対応表に基づいて実施される。動的IDは、ディレクトリ情報DIR#1Cの圧縮率が高くなるように設定されたIDである。
【0039】
上記の圧縮DIRは、GW装置101からDS装置200へと送信される。また、機器IDと動的IDとを対応付ける上記の対応表は、上記の圧縮DIRと同じ又は異なるタイミングでGW装置101からDS装置200へと送信される。例えば、対応表が更新されたタイミングで、更新後の対応表がGW装置101からDS装置200へと送信される。DS装置200は、圧縮DIRを展開し、上記の対応表を用いて動的IDを機器IDに変換することで元のディレクトリ情報DIR#1Cを復元する。
【0040】
UUIDv4のような広い名前空間からランダムに選択される機器IDを含むディレクトリ情報DIR#1Cを圧縮する場合、機器IDの組み合わせによっては圧縮効果が低くなることがある。一方、上記のID変換を実施することで安定的に圧縮効率を高めることができ、ディレクトリ情報DIR#1Cの送信に伴う通信負荷を低減することが可能になる。
【0041】
なお、同時に圧縮される機器IDの数が多いほど圧縮効率が向上するため、上記の例では集約GWが非集約GWのディレクトリ情報を集約している。但し、上記の集約を行わなくても上記のID変換により圧縮効率は高まる。例えば、非集約GWのディレクトリ情報を集約しないGW装置102においても上記のID変換を適用することで、ディレクトリ情報の圧縮効率を高めることができる。
【0042】
以下、GW装置101などのハードウェア及び機能について説明し、ディレクトリ情報のID変換及び圧縮や、対応表の更新などについて、さらに説明する。
[2−2.ハードウェア]
まず、図5を参照しながら、GW装置101のハードウェアについて説明する。図5は、GW装置の機能を実現可能なハードウェアの一例を示したブロック図である。
【0043】
GW装置101が有する機能は、例えば、図5に示す情報処理装置のハードウェア資源を用いて実現することが可能である。つまり、GW装置101が有する機能は、コンピュータプログラムを用いて図5に示すハードウェアを制御することにより実現される。
【0044】
図5に示すように、このハードウェアは、主に、CPU902と、ROM(Read Only Memory)904と、RAM906と、ホストバス908と、ブリッジ910とを有する。さらに、このハードウェアは、外部バス912と、インターフェース914と、入力部916と、出力部918と、記憶部920と、ドライブ922と、接続ポート924と、通信部926とを有する。
【0045】
CPU902は、例えば、演算処理装置又は制御装置として機能し、ROM904、RAM906、記憶部920、又はリムーバブル記録媒体928に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ROM904は、CPU902に読み込まれるプログラムや演算に用いるデータなどを格納する記憶装置の一例である。RAM906には、例えば、CPU902に読み込まれるプログラムや、そのプログラムを実行する際に変化する各種パラメータなどが一時的又は永続的に格納される。
【0046】
これらの要素は、例えば、高速なデータ伝送が可能なホストバス908を介して相互に接続される。一方、ホストバス908は、例えば、ブリッジ910を介して比較的データ伝送速度が低速な外部バス912に接続される。また、入力部916としては、例えば、タッチパネル、タッチパッド、ボタン、スイッチなどが用いられる。出力部918としては、例えば、LCD(Liquid Crystal Display)やELD(Electro-Luminescence Display)などのディスプレイ装置が用いられる。
【0047】
記憶部920は、各種のデータを格納するための装置である。記憶部920としては、例えば、HDDなどの磁気記憶デバイスが用いられる。また、記憶部920として、SSD(Solid State Drive)やRAMディスクなどの半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイスなどが用いられてもよい。
【0048】
ドライブ922は、着脱可能な記録媒体であるリムーバブル記録媒体928に記録された情報を読み出し、又はリムーバブル記録媒体928に情報を書き込む装置である。リムーバブル記録媒体928としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどが用いられる。
【0049】
接続ポート924は、例えば、USB(Universal Serial Bus)ポート、IEEE1394ポートなど、外部接続機器930を接続するためのポートである。外部接続機器930としては、例えば、メモリリーダや補助バッテリ、各種センサなどが用いられる。
【0050】
通信部926は、ネットワーク932に接続するための通信デバイスである。通信部926としては、例えば、有線又は無線LAN用の通信回路、WUSB(Wireless USB)用の通信回路、BLE用の通信回路、携帯電話ネットワーク用の通信回路などが用いられる。通信部926に接続されるネットワーク932は、有線又は無線により接続されたネットワークであり、例えば、インターネット、LAN、携帯電話回線などを含む。
【0051】
なお、GW装置102、103、104、105、106、107、DS装置200、端末装置300の機能も図5に示したハードウェアにより実現可能である。
[2−3.機能]
次に、GW装置101及びDS装置200の機能について説明する。なお、GW装置102、103は、GW装置101と実質的に同じ機能(集約GWの機能)を有する。そのため、GW装置102、103の機能については詳細な説明を省略する。
【0052】
(GW装置)
まず、図6を参照しながら、GW装置101の機能について説明する。図6は、第2実施形態に係るGW装置が有する機能の一例を示したブロック図である。
【0053】
図6に示すように、GW装置101は、記憶部111と、ディレクトリ情報取得部112と、圧縮処理部113と、動的ID管理部114と、払い出し管理部115とを有する。記憶部111の機能は、上述したRAM906や記憶部920などを用いて実現できる。ディレクトリ情報取得部112、圧縮処理部113、動的ID管理部114、及び払い出し管理部115の機能は、主に上述したCPU902などを用いて実現できる。
【0054】
記憶部111には、蓄積情報リスト111a、対応表111b、共起確率リスト111c、及び動的IDプール111dが格納される。
蓄積情報リスト111aは、GW装置101が蓄積するディレクトリ情報DIRの集合である。蓄積情報リスト111aには、例えば、GW装置101が出力するデータに関するディレクトリ情報DIR(DIR#1)や、非集約GWであるGW装置104、105などから取得されるディレクトリ情報DIR(DIR#4、#5)が含まれる。
【0055】
例えば、蓄積情報リスト111aは、図7のような内容を有する。図7は、蓄積情報リストの一例を示した図である。図7の例では、機器IDと、データの検索に用いられる属性情報(key、value)とを含むディレクトリ情報DIRの集合が蓄積情報リスト111aに含まれている。機器IDは、データを保持する機器(例えば、GW装置101、104、105など)の識別情報である。機器IDは、例えば、UUIDv4の名前空間からランダムに選択されるIDで表現される。この場合、機器IDは16バイトのビット列となる。
【0056】
対応表111bは、機器IDと動的IDとを対応付ける情報である。動的IDは、後述する払い出し管理部115の機能により提供される。対応表111bは、ディレクトリ情報DIRを圧縮するときに実施されるID変換の際に利用される。例えば、対応表111bは、図8のような内容を有する。図8は、対応表の一例を示した図である。図8の例では、機器ID及び動的IDの他に、対応表111bのバージョン情報(Ver.)が対応表111bに含まれている。対応表111bのバージョンは、対応表111bが更新される度に更新される。なお、バージョン情報は、対応表111bと別に管理されてもよい。
【0057】
共起確率リスト111cは、同時に圧縮されるディレクトリ情報DIRの集合の中に特定の機器IDのペア(機器IDペア)が含まれる確率(共起確率)を記したリストである。例えば、共起確率リスト111cは、図9のような内容を有する。図9は、共起確率リストの一例を示した図である。図9の例では、機器IDペアと、その機器IDペアに対応する共起確率とが共起確率リスト111cに含まれている。共起確率は、圧縮の度に更新される。また、共起確率リスト111cは、対応表111bを更新する際に参照される。
【0058】
動的IDプール111dは、予め設定されている動的IDのリストと、各動的IDの使用状況とを示す情報である。例えば、動的IDプール111dは、図10に示すような内容を有する。図10は、動的IDプールの一例を示した図である。図10の例では、使用済み動的IDには、その動的IDに対応する機器IDが対応付けられ、未使用の動的IDには、未使用を表す「not used」が対応付けられている。動的IDプール111dは、動的IDを払い出す際に参照される。
【0059】
再び図6を参照する。ディレクトリ情報取得部112は、非集約GW(例えば、GW装置104、105)からディレクトリ情報DIRを取得し、取得されたディレクトリ情報DIRを蓄積情報リスト111aに追加する。また、ディレクトリ情報取得部112は、GW装置101が保持するデータについてのディレクトリ情報DIRを生成し、蓄積情報リスト111aに追加する。
【0060】
圧縮処理部113は、対応表111bに基づいて、蓄積情報リスト111aに含まれるディレクトリ情報DIRの機器IDを動的IDに変換するID変換を実施する。また、圧縮処理部113は、ID変換後のディレクトリ情報DIRを圧縮する。圧縮方法としては、例えば、整数列の隣り合う整数間で差分を計算し、差分を表すビット列の長さを短縮する整数列圧縮などを適用することができる。なお、整数列圧縮については後述する。整数列圧縮以外の圧縮方法を適用することも可能である。また、圧縮処理部113は、圧縮されたディレクトリ情報DIRをDS装置200に送信する。
【0061】
動的ID管理部114は、対応表111bを管理する。例えば、動的ID管理部114は、DS装置200から対応表111bの提供を要求された場合に、バージョン情報を含む対応表111bをDS装置200に送信する。また、動的ID管理部114は、圧縮処理部113によりディレクトリ情報DIRが圧縮される度に上述した共起確率を計算し、共起確率リスト111cを更新する。また、動的ID管理部114は、共起確率リスト111cを用いて対応表111bを更新する。
【0062】
払い出し管理部115は、動的ID管理部114から動的IDの払い出し要求を受けた場合に、動的IDプール111dを参照し、払い出しの要求に適した動的IDを選択して払い出し要求に対する応答を返す。なお、説明の都合上、機器IDに対応付ける動的IDとして、動的IDプール111dから動的IDを抽出する処理を「払い出し」と呼ぶ場合がある。例えば、払い出し管理部115は、動的IDプール111dにある動的IDのうち、使用済みの動的IDの解放や、未使用の動的IDの払い出しなどの処理を実行する。
【0063】
変形例として、払い出し管理部115の機能は、DS装置200に搭載されてもよい。この場合、記憶部111に格納される動的IDプール111dは、DS装置200が保持する。また、払い出し管理部115の機能は、GW装置101やDS装置200とは異なる他の独立した装置に搭載されてもよい。この場合、記憶部111に格納される動的IDプール111dは、他の独立した装置が保持する。このような変形例も第2実施形態の技術的範囲に属する。
【0064】
GW装置101は、上記のような機能を有する。
(DS装置)
次に、図11を参照しながら、DS装置200の機能について説明する。図11は、第2実施形態に係るDS装置が有する機能の一例を示したブロック図である。
【0065】
図11に示すように、DS装置200は、記憶部201と、展開処理部202と、情報登録部203とを有する。記憶部201の機能は、上述したRAM906や記憶部920などに相当するハードウェア資源を用いて実現できる。展開処理部202、及び情報登録部203の機能は、主に上述したCPU902などに相当するハードウェア資源を用いて実現できる。
【0066】
記憶部201には、対応表群201a、バージョン管理情報201b、及び登録情報201cが格納される。
対応表群201aは、集約GW(例えば、GW装置101、…、103)から取得された対応表(対応表111bに相当)の集合である。例えば、対応表群201aは、図12のような内容を有する。図12は、対応表群の一例を示した図である。
【0067】
図12の例では、GW装置101から取得された対応表#1(対応表111bに相当)、…、GW装置103から取得された対応表#3が対応表群201aに含まれている。対応表#1には、GW装置101を識別するためのgwID「101」が含まれている。同様に、対応表#3には、GW装置103を識別するためのgwID「103」が含まれている。なお、対応表#1、…、#3のそれぞれにバージョン情報が付与されてもよい。
【0068】
バージョン管理情報201bは、対応表群201aに含まれる各対応表のバージョンを管理するための情報である。例えば、バージョン管理情報201bは、図13のような内容を有する。図13は、バージョン管理情報の一例を示した図である。図13の例では、バージョン管理情報201bにより、対応表#1に対応するgwID「101」と、対応表#1のバージョン情報(Ver.)とが対応付けられている。また、対応表#3に対応するgwID「103」と、対応表#3のバージョン情報(Ver.)とが対応付けられている。
【0069】
登録情報201cは、DS装置200に登録されたディレクトリ情報DIRの集合である。端末装置300からDS装置200にデータ検索の要求があると、登録情報201cに基づいて該当データの所在が検索される。例えば、登録情報201cは、図14のような内容を有する。図14は、登録情報の一例を示した図である。図14の例では、機器ID及び属性情報(key、value)を含むディレクトリ情報DIRと共に、そのディレクトリ情報DIRを保持する集約GWのgwIDが登録情報201cに含まれている。
【0070】
再び図11を参照する。展開処理部202は、集約GWから取得した圧縮後のディレクトリ情報DIRを展開し、ID変換後のディレクトリ情報DIRを復元する。また、展開処理部202は、対応表群201aを参照して、ID変換後のディレクトリ情報DIRに含まれる動的IDを機器IDに変換する逆ID変換を実施し、元のディレクトリ情報DIRを復元する。情報登録部203は、展開処理部202により復元された元のディレクトリ情報DIRを登録情報201cに追加する。
【0071】
DS装置200は、上記のような機能を有する。
(動作例:ディレクトリ情報の登録要求から登録までの流れ)
ここで、図15を参照しながら、ディレクトリ情報の登録要求から登録までの流れについて説明する。図15は、GW装置及びDS装置の動作例(ディレクトリ情報の登録要求から登録までの流れ)について説明するための図である。
【0072】
図15の(A)に示すように、GW装置101、104に保持されるデータが生じ、ディレクトリ情報DIR#1、#4が蓄積情報リスト111aに追加された場合、動的ID管理部114は、(B)に示すように対応表111bを更新する。
【0073】
(B)のように対応表111bに機器ID及び動的IDがない場合、動的ID管理部114は、払い出し管理部115に対して動的IDの払い出し要求を発行する。払い出し管理部115は、払い出し要求に応じて動的IDプール111dを参照し、払い出し要求で指定された機器IDに対応する動的IDがない場合、その機器IDに対して未使用の動的IDを払い出す。なお、指定された機器IDに対応する動的IDがある場合、払い出し管理部115は、その機器IDに対応する動的IDを払い出す。
【0074】
図15の例では、動的ID「1」及び「3」が払い出されている。払い出し管理部115は、(C)のように、払い出した動的IDと、払い出し先の機器IDとを対応付けるように動的IDプール111dを更新する。動的ID管理部114は、機器IDと動的IDとを対応付けるように対応表111bを更新する。また、動的ID管理部114は、対応表111bのバージョン情報を更新する。この例では、対応表111bのバージョンが0から1へと更新される。
【0075】
圧縮処理部113は、(D)のように、対応表111bを参照してディレクトリ情報DIR#1、#4の機器IDを動的IDに変換し、ID変換後のディレクトリ情報111eを圧縮して圧縮データ111fを生成する。そして、圧縮処理部113は、(E)のように、圧縮データ111fをDS装置200に送信する。このとき、圧縮処理部113は、対応表111bのバージョン情報(Ver.)を圧縮データ111fと共に送信する。
【0076】
展開処理部202は、バージョン管理情報201bのGW装置101に対応するバージョン情報と、圧縮データ111fと共に受信したバージョン情報とが一致するか否かを判定する。図15の例では、バージョン情報が一致しないため、展開処理部202は、(F)のように、GW装置101に対して対応表111bの送信を要求し、最新の対応表111bを取得する。また、展開処理部202は、最新の対応表111bに基づいて対応表群201aを更新すると共に、バージョン管理情報201bを更新する。
【0077】
展開処理部202は、圧縮データ111fを展開してID変換後のディレクトリ情報111eを復元する。また、展開処理部202は、更新後の対応表群201aに基づいてID変換後のディレクトリ情報111eに含まれる動的IDを機器IDに変換し、元のディレクトリ情報DIR#1、#4を復元する。情報登録部203は、(G)のように、展開処理部202により復元されたディレクトリ情報DIR#1、#4を登録情報201cに追加する。
【0078】
上記のような流れでディレクトリ情報が登録される。
(動作例:整数列圧縮)
ここで、図16を参照しながら、整数列圧縮について説明する。図16は、圧縮処理の例として整数列圧縮について説明するための図である。なお、整数列圧縮は、ディレクトリ情報DIRの圧縮に適用可能な圧縮方法の一例であり、第2実施形態の技術に適用可能な圧縮方法は整数列圧縮に限定されない。
【0079】
図16に示すように、整数列圧縮は、Step.1、Step.2の処理を含む。
(Step.1)
Step.1の処理は、整数列を昇順(又は降順)にソートする工程と、隣り合う整数同士の差分計算を実施する工程とを有する。例えば、整数列{2,12,5,10}が与えられた場合、昇順にソートする工程では整数列{2,5,10,12}が得られる。差分計算の工程では、5と2の差分「3」、10と5の差分「5」、12と10の差分「2」が計算され、整数列{2,3,5,2}が得られる。
【0080】
(Step.2)
Step.2の処理は、Step.1の処理で得られる整数列の各整数を表すビット列を短いビット列に符号化する工程を有する。符号化には、区切ビットが利用される。区切ビットは、特定のビット位置に挿入され、そのビット位置より上位のビットに1を含むか否かを示す。例えば、区切ビットを9ビット目に挿入する場合、9ビット目のビット値が「1」であれば10ビット目以降に「1」が現われ、9ビット目のビット値が「0」であれば10ビット目以降に「1」が現われない。
【0081】
整数「2」を16ビットで表現したビット列「0000000000000010」を例に挙げると、整数「2」は、区切ビットを用いて「000000010」で表現される。このように、区切ビットによる圧縮表現を用いることで、16ビットのビット列を9ビットのビット列に短縮することが可能になる。この圧縮表現の性質から、小さい整数ほど短いビット列で表現され、圧縮効率が高くなる。そのため、各整数が小さくなるようにするStep.1の処理が事前に実行される。
【0082】
上述した整数列圧縮に限らず、長いビット列で表現される情報を圧縮する方法として、区切ビットのような仕組みの導入により無駄な上位ビットを捨ててビット長を短縮する方法がある。このような方法を適用する場合、Step.1のように圧縮対象の情報を加工する前処理は圧縮効率を高める上で有効である。
【0083】
上述したディレクトリ情報DIRの圧縮処理に適用する場合、同時に圧縮される機器IDの組み合わせを好適な動的IDの組み合わせに変換することで圧縮効率を高めることができる。他方、同時に圧縮される機器IDの組み合わせが動的に変化する環境では、各機器IDに払い出される動的IDの組み合わせを適切に更新する仕組み(再払い出し)を導入することで、安定的に高い圧縮効率を実現することが可能になる。
【0084】
(動作例:再払い出しの判断)
ここで、上記の再払い出しについて、図17を参照しながら説明する。図17は、再払い出しの判断について説明するための図である。
【0085】
上述した整数列圧縮のように、同時に圧縮される動的IDの値が近いほど圧縮効率が高まる。そのため、同時に圧縮される確率(共起確率)が高い機器IDペアを特定し、その機器IDペアに対して、値が近い動的IDの組み合わせを払い出すことで安定的に高い圧縮効率が維持されると期待される。また、共起確率が高い機器IDペアの多くに、差分が大きな動的IDのペアが払い出されている場合に再払い出しを実施することで、より安定的に高い圧縮効率を維持できると期待される。
【0086】
上記のような理由から、動的ID管理部114は、図17に示すように、共起確率リスト111cを参照し、共起確率が閾値ThC(例えば、0.6)より大きな機器IDペアを特定する。また、動的ID管理部114は、対応表111bを参照し、特定された機器IDペアについて動的IDの差分値(動的ID差分)を計算する。
【0087】
また、動的ID管理部114は、差分値の累積分布関数を計算する。累積分布関数は、ある差分値以下の動的ID差分に対応する機器IDペアが母集団(特定された機器IDペアの集合)に占める割合を示す。例えば、母集団にM個の機器IDペアがあり、動的IDの差分値がQ以下の機器IDペアがm個ある場合、差分値Qにおける累積分布関数の値はm/Mとなる。
【0088】
動的ID管理部114は、差分値ThD(例えば、127)における累積分布関数が所定値(例えば、0.8)以下であるか否かを判定する。例えば、図17に例示したグラフ(A)の場合、差分値ThDにおける累積分布関数の値は0.8以上である。この場合、特定された機器IDペアのうち少なくとも80%以上の機器IDペアは、動的IDの差分値がThD以下である。つまり、圧縮効率が高い好適な動的IDの組み合わせが払い出された状態にある。
【0089】
一方、グラフ(B)の場合、差分値ThDにおける累積分布関数の値は0.8以下である。この場合、特定された機器IDペアのうち少なくとも20%以上の機器IDペアは、動的IDの差分値がThD以下ではない。つまり、圧縮効率が低くなる動的IDの組み合わせが払い出されている機器IDペアが20%以上存在する。
【0090】
上記の理由から、動的ID管理部114は、差分値ThDにおける累積分布関数が所定値(例えば、0.8)以下場合、払い出し管理部115に対して、共起確率がThCより大きな機器IDペアの各機器IDに対する動的IDの再払い出しを要求する。また、動的ID管理部114は、払い出し管理部115から払い出された動的IDを用いて対応表111bを更新する。このような処理を実行することで、同時に圧縮される機器IDの組み合わせが動的に変更されても安定的に高い圧縮効率を実現できる。
【0091】
以上、GW装置101及びDS装置200の機能について説明した。
[2−4.処理の流れ]
次に、GW装置101及びDS装置200により実行される処理の流れについて説明する。なお、GW装置102、103は、GW装置101と実質的に同じ流れで処理(集約GWが実行する処理)を実行する。そのため、GW装置102、103により実行される処理の流れについては詳細な説明を省略する。
【0092】
(GW装置の動作)
まず、図18図21を参照しながら、GW装置101が実行する処理の流れについて説明する。
【0093】
なお、図18は、第2実施形態に係るGW装置の動作について説明するための第1のフロー図である。図19は、第2実施形態に係るGW装置の動作について説明するための第2のフロー図である。図20は、第2実施形態に係るGW装置の動作について説明するための第3のフロー図である。図21は、動的ID払い出しに関する処理の流れを示したフロー図である。
【0094】
(S101)ディレクトリ情報取得部112は、ディレクトリ情報DIRの登録要求を受け付け、受け付けたディレクトリ情報DIRのエントリをバッファ(記憶部111の蓄積情報リスト111a)に格納する。
【0095】
(S102)動的ID管理部114は、蓄積情報リスト111aにあるディレクトリ情報DIRの登録処理を実行する実行タイミングTP1が到来したか否かを判定する。実行タイミングTP1は、例えば、前回の登録処理が完了してから所定時間(10秒など)が経過したタイミングに設定される。実行タイミングTP1が到来した場合、処理はS104へと進む。一方、実行タイミングTP1が到来していない場合、処理はS103へと進む。
【0096】
(S103)動的ID管理部114は、動的IDの再払い出し処理を実行する実行タイミングTP2が到来したか否かを判定する。実行タイミングTP2は、例えば、対応表111bの更新処理が完了してから所定時間(30秒など)が経過したタイミングに設定される。実行タイミングTP2が到来した場合、処理はS118へと進む。一方、実行タイミングTP2が到来していない場合、処理はS101へと進む。
【0097】
(S104)動的ID管理部114は、記憶部111からディレクトリ情報DIRのリスト(蓄積情報リスト111a)を読み出す。
(S105)動的ID管理部114は、記憶部111から読み出したリスト(蓄積情報リスト111a)に含まれるディレクトリ情報DIRの機器IDと、対応表111bにある機器IDとを照合する。そして、動的ID管理部114は、リストの全機器IDが対応表111bにないか否かを判定する。リストの全機器IDが対応表111bにない場合、処理はS106へと進む。一方、リストの機器IDが1つでも対応表111bにある場合、処理はS107へと進む。
【0098】
(S106)動的ID管理部114は、蓄積情報リスト111aに含まれる機器IDの情報(全機器IDのリスト)、及び、対応表111bにある機器IDの1つを入力とする動的ID払い出しの処理を実行する。つまり、動的ID管理部114は、全機器IDのリストと対応表111bにある任意の機器IDとを指定した払い出し要求を払い出し管理部115に通知し、全機器IDに対する動的IDの払い出しを受ける。なお、払い出し管理部115による動的ID払い出しの処理については後述する。S106の処理が完了すると、処理はS109へと進む。
【0099】
(S107)動的ID管理部114は、蓄積情報リスト111aに含まれる機器IDのうち、対応表111bにない機器IDがあるか否かを判定する。対応表111bにない機器IDがある場合、処理はS108へと進む。一方、対応表111bにない機器IDがない場合(リストの全機器IDが対応表111bにある場合)、処理はS110へと進む。
【0100】
(S108)動的ID管理部114は、蓄積情報リスト111aに含まれる機器IDの情報(機器IDのリスト)を入力とする動的ID払い出しの処理を実行する。つまり、動的ID管理部114は、機器IDのリストを含む払い出し要求を払い出し管理部115に通知し、その払い出し要求に応じた動的IDの払い出しを受ける。なお、払い出し管理部115による動的ID払い出しの処理については後述する。
【0101】
(S109)動的ID管理部114は、払い出し管理部115から払い出された動的IDを用いて対応表111bを更新する。このとき、動的ID管理部114は、対応表111bのバージョン情報を更新する。
【0102】
(S110)圧縮処理部113は、対応表111bを用いて、蓄積情報リスト111aにあるディレクトリ情報DIRの機器IDを動的IDに変換する。
(S111)動的ID管理部114は、ディレクトリ情報DIRのリスト(蓄積情報リスト111a)から機器IDのペアを抽出する。例えば、動的ID管理部114は、蓄積情報リスト111aに含まれる機器IDの集合から2つの機器IDを抽出する全ての組み合わせを探索し、各組み合わせの機器IDペアを抽出する。
【0103】
(S112)動的ID管理部114は、リスト(蓄積情報リスト111a)内に同じペア(機器IDペア)が出現する確率(共起確率)をペア毎に計算する。例えば、圧縮が行われた回数をN、特定の機器IDペアが同じ圧縮対象の蓄積情報リスト111aに出現した回数をnとすると、特定の機器IDに関する共起確率はn/Nで与えられる。
【0104】
(S113)動的ID管理部114は、ペア毎に計算した共起確率に基づいて共起確率リスト111cを更新する。
(S114)圧縮処理部113は、機器IDを動的IDに変換したID変換後のディレクトリ情報DIRを圧縮する。例えば、圧縮処理部113は、動的IDの整数列圧縮を実施してディレクトリ情報DIRを圧縮する。
【0105】
(S115)圧縮処理部113は、ディレクトリ情報DIRの登録要求として、圧縮後のディレクトリ情報DIR、及び対応表111bのバージョン情報をDS装置200に送信する。
【0106】
(S116)動的ID管理部114は、DS装置200から対応表111bの送信を要求する通知(対応表取得要求)を受けたか否かを判定する。対応表取得要求を受けた場合、処理はS117へと進む。一方、対応表取得要求を受けていない場合、図18図21に示した一連の処理は終了する。
【0107】
(S117)動的ID管理部114は、対応表取得要求への応答として対応表111bをDS装置200に送信する。S117の処理が完了すると、図18図21に示した一連の処理は終了する。
【0108】
(S118)動的ID管理部114は、共起確率リスト111cを参照して共起確率が閾値ThC以上のペア(機器IDペア)を特定する。
(S119)動的ID管理部114は、特定されたペア毎に動的IDの差を計算する。つまり、動的ID管理部114は、対応表111bを参照して、共起確率が閾値ThC(例えば、0.6)以上の各機器IDペアに対応する動的IDのペアを抽出し、抽出した動的IDのペアについて動的IDの差分値を計算する。
【0109】
(S120)動的ID管理部114は、計算された差の集合における所定パーセンタイル値(例えば、全体に占める割合が80%となる差の値)が閾値ThD(例えば、127)以上であるか否かを判定する。所定パーセンタイル値が閾値ThD以上である場合、処理はS121へと進む。一方、所定パーセンタイル値が閾値ThD以上でない場合、処理はS101へと進む。
【0110】
(S121)動的ID管理部114は、共起確率リスト111cを参照し、共起確率が大きい順に共起確率リスト111cにある機器IDのリストをソートする。
(S122)動的ID管理部114は、共起確率リスト111cに含まれる機器IDの情報(機器IDのリスト)を入力とする動的ID払い出しの処理を実行する。つまり、動的ID管理部114は、機器IDのリストを含む払い出し要求を払い出し管理部115に通知し、その払い出し要求に応じた動的IDの払い出しを受ける。なお、払い出し管理部115による動的ID払い出しの処理については後述する。
【0111】
(S123)動的ID管理部114は、払い出し管理部115から払い出された動的IDを用いて対応表111bを更新する。このとき、動的ID管理部114は、対応表111bのバージョン情報を更新する。S123の処理が完了すると、処理はS101へと進む。
【0112】
ここで、払い出し管理部115による動的ID払い出しの処理について説明する。
(S124)動的ID管理部114から払い出し要求を受けた払い出し管理部115は、入力が機器IDのリストだけであるか否かを判定する。入力が機器IDのリストだけである場合、処理はS125へと進む。一方、入力が機器IDのリストだけでない場合、処理はS128へと進む。
【0113】
(S125)払い出し管理部115は、動的IDプール111dを参照し、入力されたリストの機器IDに対して動的IDを払い出し済みか否かを判定する。入力されたリストの機器IDに対して動的IDを払い出し済みである場合、処理はS126へと進む。一方、入力されたリストの機器IDに対して動的IDを払い出し済みでない場合、処理はS127へと進む。
【0114】
(S126)払い出し管理部115は、入力されたリストの機器IDに対して払い出し済みの動的IDを解放する。つまり、払い出し管理部115は、動的IDプール111dに記載されている機器IDのうち、入力されたリストの機器IDに対応する動的IDを「not used」に設定する。
【0115】
(S127)払い出し管理部115は、入力されたリストの各機器IDに対して新たな動的IDを払い出す。例えば、払い出し管理部115は、リストの先頭又は末尾から順に、隣り合う動的IDが最も近い値となるように各機器IDに対して動的IDを払い出す。そして、払い出し管理部115は、払い出し要求に対する応答として、動的ID管理部114に対して各機器IDに対して払い出した動的IDを通知する。S127の処理が完了すると、図21に示した一連の処理は終了する。
【0116】
(S128)払い出し管理部115は、入力が機器IDのリストと1つの機器IDであるか否かを判定する。入力が機器IDのリストと1つの機器IDである場合、処理はS129へと進む。一方、入力が機器IDのリストと1つの機器IDでない場合、払い出し管理部115は、動的IDの払い出し処理が失敗したことを示すエラーを出力して図21に示した一連の処理を終了する。
【0117】
(S129)払い出し管理部115は、動的IDプール111dを参照し、リストと共に入力された1つの機器IDの動的IDに近い未使用の動的IDを選択する。
(S130)払い出し管理部115は、S129で選択された動的IDをリストの各機器IDに払い出す。そして、払い出し管理部115は、払い出し要求に対する応答として、動的ID管理部114に対して各機器IDに対して払い出した動的IDを通知する。S130の処理が完了すると、図21に示した一連の処理は終了する。
【0118】
以上、GW装置101が実行する処理の流れについて説明した。
(変形例:圧縮率に基づく再払い出し判定)
ここで、図22及び図23を参照しながら、第2実施形態の一変形例について説明する。これまでは動的IDの再払い出しをする際に機器IDの共起確率を利用していた。ここで説明する変形例は、機器IDの共起確率を用いず、ディレクトリ情報DIRの圧縮率を用いて動的IDの再払い出しをするかを判定する方法に関する。
【0119】
図22は、第2実施形態の一変形例に係るGW装置の動作について説明するための第1のフロー図である。図23は、第2実施形態の一変形例に係るGW装置の動作について説明するための第2のフロー図である。
【0120】
この変形例では、図19に示した処理フローが、図22のように変形される。つまり、S111〜S114の処理が省略され、S151の処理が追加される。S151の処理では、圧縮処理部113がディレクトリ情報DIRを圧縮する際に圧縮率を計算する。圧縮率としては、例えば、圧縮対象となるディレクトリ情報DIRの集合についての圧縮前のデータサイズ(非圧縮サイズ)と、圧縮後のデータサイズ(圧縮サイズ)との比を適用できる。つまり、下記の式(1)で与えられる圧縮率を適用可能である。
【0121】
圧縮率=圧縮サイズ/非圧縮サイズ
…(1)
また、図20に示した処理フローが、図23のように変形される。つまり、S118〜S121の処理が省略され、S152の処理が追加される。S152の処理では、動的ID管理部114が、最新の圧縮率と所定の閾値ThXとを比較する。そして、圧縮率が閾値ThX以上である場合、処理はS122へと進む。一方、圧縮率が閾値ThX以上でない場合、処理はS101へと進む。このように、上記の変形例を適用することで共起確率に関する演算を省略することが可能になり、演算負荷の低減に寄与する。このような変形も第2実施形態の技術的範囲に属する。
【0122】
(DS装置による処理の流れ)
次に、図24を参照しながら、DS装置200により実行される処理の流れについて説明する。図24は、第2実施形態に係るDS装置の動作について説明するためのフロー図である。
【0123】
(S201)展開処理部202は、GW装置101からディレクトリ情報DIRの登録要求を受け付ける。このとき、展開処理部202は、GW装置101から圧縮後のディレクトリ情報DIRと共に対応表111bのバージョン情報を受信する。
【0124】
(S202)展開処理部202は、圧縮後のディレクトリ情報DIRを展開する。例えば、動的IDが整数列圧縮されている場合、展開処理部202は、区切ビットを参照して動的IDを示す元のビット列を復元する(動的IDの整数列展開)。
【0125】
(S203)展開処理部202は、GW装置101から受信されたバージョン情報と、ローカル(バージョン管理情報201b)のバージョン情報とが一致するか否かを判定する。受信されたバージョン情報とローカルのバージョン情報とが一致する場合、処理はS207へと進む。一方、受信されたバージョン情報とローカルのバージョン情報とが一致しない場合、処理はS204へと進む。
【0126】
(S204)展開処理部202は、GW装置101(対象GW装置)に対して対応表111bを送信するように要求する(対応表取得要求の発行)。
(S205)展開処理部202は、対応表取得要求に応じてGW装置101(対象GW装置)から送信された対応表111bを受信し、受信された対応表111bを用いてローカルの対応表(対応表群201a)を更新する。
【0127】
(S206)展開処理部202は、GW装置101について、ローカルのバージョン情報(バージョン管理情報201b)を更新する。
(S207)展開処理部202は、更新後の対応表群201aに含まれるGW装置101の対応表(対応表#1)を用いて、展開後のディレクトリ情報DIRに含まれる動的IDを機器IDに変換する。情報登録部203は、展開処理部202によるID変換後のディレクトリ情報DIRを登録情報201cに登録する。S207の処理が完了すると、図24に示した一連の処理は終了する。
【0128】
以上、DS装置200により実行される処理の流れについて説明した。
上記のように、機器IDを動的IDに変換して圧縮することで圧縮効率を高めることができる。また、同時に圧縮される機器IDの組み合わせが変更された場合でも、動的IDの再払い出しを実施することで、安定的に高い圧縮効率を実現することができる。
【0129】
以上、第2実施形態について説明した。
<3.付記>
以上説明した実施形態に関し、さらに以下の付記を開示する。
【0130】
(付記1) 機器からの情報を取得して記憶装置に記憶し、
所定期間に取得した機器からの情報について、前記機器の識別に用いる第1の識別情報と前記第1の識別情報に割り振られる第2の識別情報とを対応付ける対応表、及び、前記対応表のバージョンを示すバージョン情報を参照し、該機器の識別に用いる前記第1の識別情報がある場合には該情報に対応する前記第2の識別情報を割り振り、該機器の識別に用いる前記第1の識別情報がない場合には、新たに第2の識別情報を割り振って前記対応表を更新すると共に前記バージョン情報を更新し、
前記機器の識別に用いる前記第1の識別情報に割り振った前記第2の識別情報を使用して前記機器からの情報を圧縮したデータと、前記バージョン情報とを管理装置に送信し、
同時に圧縮される前記機器からの情報に対応する前記第1の識別情報を記憶し、圧縮の度に算出される前記第1の識別情報の共起確率に基づいて前記第2の識別情報の再割り振りを実施する
処理をコンピュータに実行させる、分散データ管理プログラム。
【0131】
(付記2) 前記共起確率が第1閾値以上となる前記第1の識別情報の組に対応する前記第2の識別情報の組を特定し、特定された前記第2の識別情報の組のうち差分が所定値以下となる前記第2の識別情報の組が第2閾値以上の割合を占める場合に前記再割り振りを実施する
処理をコンピュータに実行させる、付記1に記載の分散データ管理プログラム。
【0132】
(付記3) 前記共起確率が大きい順に所定数の前記第1の識別情報の組を選択し、選択された前記第1の識別情報の組を対象に前記再割り振りの処理を実施する
処理をコンピュータに実行させる、付記2に記載の分散データ管理プログラム。
【0133】
(付記4) 他のコンピュータが取得した前記機器からの情報が存在する位置に関する他の機器からの情報を前記機器からの情報と共に圧縮して前記管理装置に送信する
処理をコンピュータに実行させる、付記1に記載の分散データ管理プログラム。
【0134】
(付記5) コンピュータが、
機器からの情報を取得して記憶装置に記憶し、
所定期間に取得した機器からの情報について、前記機器の識別に用いる第1の識別情報と前記第1の識別情報に割り振られる第2の識別情報とを対応付ける対応表、及び、前記対応表のバージョンを示すバージョン情報を参照し、該機器の識別に用いる前記第1の識別情報がある場合には該情報に対応する前記第2の識別情報を割り振り、該機器の識別に用いる前記第1の識別情報がない場合には、新たに第2の識別情報を割り振って前記対応表を更新すると共に前記バージョン情報を更新し、
前記機器の識別に用いる前記第1の識別情報に割り振った前記第2の識別情報を使用して前記機器からの情報を圧縮したデータと、前記バージョン情報とを管理装置に送信し、
同時に圧縮される前記機器からの情報に対応する前記第1の識別情報を記憶し、圧縮の度に算出される前記第1の識別情報の共起確率に基づいて前記第2の識別情報の再割り振りを実施する
分散データ管理方法。
【0135】
(付記6) 取得された機器からの情報を記憶する記憶部と、
所定期間に取得した機器からの情報について、前記機器の識別に用いる第1の識別情報と前記第1の識別情報に割り振られる第2の識別情報とを対応付ける対応表、及び、前記対応表のバージョンを示すバージョン情報を参照し、該機器の識別に用いる前記第1の識別情報がある場合には該情報に対応する前記第2の識別情報を割り振り、該機器の識別に用いる前記第1の識別情報がない場合には、新たに第2の識別情報を割り振って前記対応表を更新すると共に前記バージョン情報を更新し、
前記機器の識別に用いる前記第1の識別情報に割り振った前記第2の識別情報を使用して前記機器からの情報を圧縮したデータと、前記バージョン情報とを管理装置に送信し、
同時に圧縮される前記機器からの情報に対応する前記第1の識別情報を記憶し、圧縮の度に算出される前記第1の識別情報の共起確率に基づいて前記第2の識別情報の再割り振りを実施する演算部と
を有する、分散データ管理装置。
【0136】
(付記7) 機器からの情報と、前記機器の識別に用いる第1の識別情報とを対応付けるための第1の位置情報、及び、前記第1の識別情報と、前記第1の識別情報に割り振られる第2の識別情報とを対応付ける対応情報が格納される記憶部と、
所定期間毎に前記記憶部に蓄積される前記第1の位置情報を対象として、前記対応情報に基づいて前記第1の識別情報を前記第2の識別情報に変換した第2の位置情報を生成し、前記第2の位置情報を圧縮して管理装置に送信し、
共に圧縮される前記第2の位置情報の集合に同じ前記第1の識別情報が含まれる確率を計算し、前記確率が閾値以上となる前記第1の識別情報の組を対象として、圧縮率が高くなる組み合わせとなるように前記第2の識別情報の再割り振りを実施する演算部と
を有する、分散データ管理装置。
【0137】
(付記8) 機器からの情報と、前記機器の識別に用いる第1の識別情報とを対応付けるための第1の位置情報、及び、前記第1の識別情報と、前記第1の識別情報に割り振られる第2の識別情報とを対応付ける対応情報が格納される記憶部と、
所定期間毎に前記記憶部に蓄積される前記第1の位置情報を対象として、前記対応情報に基づいて前記第1の識別情報を前記第2の識別情報に変換した第2の位置情報を生成し、前記第2の位置情報を圧縮して管理装置に送信し、
前記第2の位置情報の圧縮率を計算し、前記圧縮率が所定値以下の場合に、圧縮率が高くなる組み合わせとなるように前記第2の識別情報の再割り振りを実施する演算部と
を有する、分散データ管理装置。
【0138】
(付記9) 前記演算部は、前記第2の識別情報の差分が小さくなる組み合わせを特定し、特定された前記組み合わせの前記第2の識別情報を用いて前記再割り振りを実施する
付記7又は8に記載の分散データ管理装置。
【0139】
(付記10) 前記演算部は、ビット列の差分を利用して複数のビット列を含む情報を圧縮する圧縮方法に基づいて前記第2の位置情報を圧縮する
付記7〜9のいずれかに記載の分散データ管理装置。
【0140】
(付記11) 前記第2の識別情報は、前記第1の識別情報より短いビット列で表現される
付記7〜10のいずれかに記載の分散データ管理装置。
【0141】
(付記12) 前記記憶部には、前記対応情報のバージョンを示すバージョン情報が格納され、
前記演算部は、
前記対応情報が更新される度に前記バージョン情報を更新し、
要求に応じて前記対応情報と前記バージョン情報とを前記管理装置に送信する
付記7〜11のいずれかに記載の分散データ管理装置。
【0142】
(付記13) コンピュータに、
記憶部から、機器からの情報と、前記機器の識別に用いる第1の識別情報とを対応付けるための第1の位置情報、及び、前記第1の識別情報と、前記第1の識別情報に割り振られる第2の識別情報とを対応付ける対応情報を読み出し、
所定期間毎に前記記憶部に蓄積される前記第1の位置情報を対象として、前記対応情報に基づいて前記第1の識別情報を前記第2の識別情報に変換した第2の位置情報を生成し、前記第2の位置情報を圧縮して管理装置に送信し、
共に圧縮される前記第2の位置情報の集合に同じ前記第1の識別情報が含まれる確率を計算し、前記確率が閾値以上となる前記第1の識別情報の組を対象として、圧縮率が高くなる組み合わせとなるように前記第2の識別情報の再割り振りを実施する
処理を実行させる、分散データ管理プログラム。
【0143】
(付記14) コンピュータが、
記憶部から、機器からの情報と、前記機器の識別に用いる第1の識別情報とを対応付けるための第1の位置情報、及び、前記第1の識別情報と、前記第1の識別情報に割り振られる第2の識別情報とを対応付ける対応情報を読み出し、
所定期間毎に前記記憶部に蓄積される前記第1の位置情報を対象として、前記対応情報に基づいて前記第1の識別情報を前記第2の識別情報に変換した第2の位置情報を生成し、前記第2の位置情報を圧縮して管理装置に送信し、
共に圧縮される前記第2の位置情報の集合に同じ前記第1の識別情報が含まれる確率を計算し、前記確率が閾値以上となる前記第1の識別情報の組を対象として、圧縮率が高くなる組み合わせとなるように前記第2の識別情報の再割り振りを実施する
分散データ管理方法。
【符号の説明】
【0144】
1 データ管理システム
5 ネットワーク
10 分散データ管理装置
11 記憶部
12 演算部
21、22 機器
30 管理装置
41 機器からの情報
42 第1の識別情報
43 第2の識別情報
44 対応表
45 バージョン情報
46 変換後の情報
47 圧縮データ
48 共起確率
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24