(57)【要約】【課題】Ｉ／Ｏ及びデータ転送量の増加を抑え、かつ、容易な制御で、効率的に同一のデータを使用するプロセスを並列実行するシステムを実現する。【解決手段】外部装置から取得した収集データを用いて処理を実行する複数のプロセスが並列で稼働する計算機システムであって、計算機システムはデータ管理部を有する計算機を備え、データ管理部は、収集データを受信した場合、収集データの識別情報とは異なる識別情報であって、プロセスが使用するアクセス識別情報を生成し、収集データの識別情報と複数のアクセス識別情報との対応を管理し、記憶領域に収集データを格納し、第一プロセスから第一収集データにアクセスするための第一アクセス識別情報を含む読出要求を受信した場合、第一アクセス識別情報に基づいて第一収集データを記憶領域から読み出して、第一プロセスに送信する。【選択図】図１
2020003945.tif 000002
【特許請求の範囲】
【請求項１】
外部装置から取得した収集データを用いて処理を実行する複数のプロセスが並列で稼働する計算機システムであって、
前記複数のプロセスの各々は、同一の前記収集データを用いて異なる処理を実行し、
前記計算機システムは、プロセッサ、前記プロセッサに接続される記憶装置、及び前記プロセッサに接続される外部インタフェースを有する計算機を備え、
前記計算機は、前記収集データを管理し、前記収集データに対するアクセスを制御するデータ管理部を有し、
前記データ管理部は、
前記収集データを受信した場合、前記収集データの識別情報とは異なる識別情報であって、前記複数のプロセスの各々が前記収集データにアクセスする場合に使用するアクセス識別情報を生成し、
前記収集データの識別情報と、前記複数のプロセスの各々に割り当てられた前記アクセス識別情報との対応を管理し、
記憶領域に前記収集データを格納し、
前記複数のプロセスに含まれる第一プロセスから第一収集データにアクセスするための第一アクセス識別情報を含む読出要求を受信した場合、前記第一アクセス識別情報に基づいて前記第一収集データを前記記憶領域から読み出し、
前記第一プロセスに前記第一収集データを送信することを特徴とする計算機システム。
【請求項２】
請求項１に記載の計算機システムであって、
前記データ管理部は、
前記第一プロセスが前記第一収集データを用いた処理が完了したことを検知した場合、前記第一収集データの識別情報と対応づけられる前記第一アクセス識別情報を削除し、
前記第一収集データに対応づけられる前記アクセス識別情報が存在しない場合、前記記憶領域から前記第一収集データを削除することを特徴とする計算機システム。
【請求項３】
請求項１に記載の計算機システムであって、
前記データ管理部は、
前記アクセス識別情報を生成する場合、前記収集データの識別情報が付与され、かつ、前記複数のプロセスの数が設定されたカウンタを生成し、
前記第一プロセスが前記第一収集データを用いた処理が完了したことを検知した場合、前記第一収集データの識別情報が付与された前記カウンタの値を１減算し、
前記第一収集データの識別情報が付与された前記カウンタの値が０であるか否かを判定し、
前記第一収集データの識別情報が付与された前記カウンタの値が０であると判定された場合、前記記憶領域から前記第一収集データを削除することを特徴とする計算機システム。
【請求項４】
請求項２又は請求項３に記載の計算機システムであって、
前記データ管理部は、
前記収集データを受信した場合、前記収集データのメタデータに前記アクセス識別情報を設定し、
前記第一プロセスから前記第一収集データの読出要求を受信した場合、前記第一アクセス識別情報に基づいて、前記記憶領域に格納される収集データのメタデータを参照することによって、前記記憶領域から読み出す収集データとして前記第一収集データを特定することを特徴とする計算機システム。
【請求項５】
請求項２又は請求項３に記載の計算機システムであって、
前記データ管理部は、
前記収集データに対するアクセスを制御するためのデータ管理情報を保持し、
前記収集データを受信した場合、前記収集データの識別情報及び前記アクセス識別情報を対応づけたエントリを前記データ管理情報に登録し、
前記第一プロセスから前記第一収集データの読出要求を受信した場合、前記第一アクセス識別情報に基づいて前記データ管理情報を参照することによって、前記記憶領域から読み出す収集データとして前記第一収集データを特定することを特徴とする計算機システム。
【請求項６】
請求項２又は請求項３に記載の計算機システムであって、
前記データ管理部は、前記記憶領域に前記収集データが格納された場合、前記複数のプロセスに、前記複数のプロセスの各々に割り当てられる前記アクセス識別情報を含むデータ受信通知を送信することを特徴とする計算機システム。
【請求項７】
外部装置から取得した収集データを用いて処理を実行する複数のプロセスが並列で稼働する計算機システムにおけるデータ管理方法であって、
前記複数のプロセスの各々は、同一の前記収集データを用いて異なる処理を実行し、
前記計算機システムは、プロセッサ、前記プロセッサに接続される記憶装置、及び前記プロセッサに接続される外部インタフェースを有する計算機を備え、
前記計算機は、前記収集データを管理し、前記収集データに対するアクセスを制御するデータ管理部を有し、
前記データ管理方法は、
前記データ管理部が、前記収集データを受信した場合、前記収集データの識別情報とは異なる識別情報であって、前記複数のプロセスの各々が前記収集データにアクセスする場合に使用するアクセス識別情報を生成する第一のステップと、
前記データ管理部が、前記収集データの識別情報と、前記複数のプロセスの各々に割り当てられた前記アクセス識別情報との対応を管理し、記憶領域に前記収集データを格納する第二のステップと、
前記データ管理部が、前記複数のプロセスに含まれる第一プロセスから第一収集データにアクセスするための第一アクセス識別情報を含む読出要求を受信した場合、前記第一アクセス識別情報に基づいて前記第一収集データを前記記憶領域から読み出す第三のステップと、
前記データ管理部が、前記第一プロセスに前記第一収集データを送信する第四のステップと、
を含むことを特徴とするデータ管理方法。
【請求項８】
請求項７に記載のデータ管理方法であって、
前記データ管理部が、前記第一プロセスが前記第一収集データを用いた処理が完了したことを検知した場合、前記第一収集データの識別情報と対応づけられる前記第一アクセス識別情報を削除するステップと、
前記データ管理部が、前記第一収集データに対応づけられる前記アクセス識別情報が存在しない場合、前記記憶領域から前記第一収集データを削除するステップと、
を含むことを特徴とするデータ管理方法。
【請求項９】
請求項７に記載のデータ管理方法であって、
前記第一のステップは、前記データ管理部が、前記収集データの識別情報が付与され、かつ、前記複数のプロセスの数が設定されたカウンタを生成するステップを含み、
前記データ管理方法は、
前記データ管理部が、前記第一プロセスが前記第一収集データを用いた処理が完了したことを検知した場合、前記第一収集データの識別情報が付与された前記カウンタの値を１減算するステップと、
前記データ管理部が、前記第一収集データの識別情報が付与された前記カウンタの値が０であるか否かを判定するステップと、
前記第一収集データの識別情報が付与された前記カウンタの値が０であると判定された場合、前記データ管理部が、前記記憶領域から前記第一収集データを削除するステップと、
を含むことを特徴とするデータ管理方法。
【請求項１０】
請求項８又は請求項９に記載のデータ管理方法であって、
前記第一のステップは、前記データ管理部が、前記収集データを受信した場合、前記収集データのメタデータに前記アクセス識別情報を設定するステップを含み、
前記第三のステップは、前記データ管理部が、前記第一アクセス識別情報に基づいて、前記記憶領域に格納される収集データのメタデータを参照することによって、前記記憶領域から読み出す収集データとして前記第一収集データを特定するステップを含むことを特徴とするデータ管理方法。
【請求項１１】
請求項８又は請求項９に記載のデータ管理方法であって、
前記データ管理部は、前記収集データに対するアクセスを制御するためのデータ管理情報を保持し、
前記第一のステップは、前記データ管理部が、前記収集データの識別情報及び前記アクセス識別情報を対応づけたエントリを前記データ管理情報に登録するステップを含み、
前記第三のステップは、前記データ管理部が、前記第一アクセス識別情報に基づいて前記データ管理情報を参照することによって、前記記憶領域から読み出す収集データとして前記第一収集データを特定するステップを含むことを特徴とするデータ管理方法。
【請求項１２】
請求項８又は請求項９に記載のデータ管理方法であって、
前記データ管理部が、前記記憶領域に前記収集データが格納された場合、前記複数のプロセスに、前記複数のプロセスの各々に割り当てられる前記アクセス識別情報を含むデータ受信通知を送信するステップを含むことを特徴とするデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部から取得した大量のデータを処理するプロセスが稼働する計算機システム及びデータ管理方法に関する。
【背景技術】
【０００２】
ＩｏＴ（Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ）の発展に伴い、センサ等のデバイスから収集されたデータを分析及び活用することによって新たな価値を提供するサービスが登場している。
【０００３】
当該サービスを提供するシステムでは、データ収集、データ解析、データ活用、及び解析結果の活用等の各種処理を実現するプロセス（アプリケーション）が稼働する。システムは、大量のデータを処理するために、一時的に所定の記憶領域にデータを格納する。プロセスは、記憶領域に格納されるデータを用いて処理を実行し、処理が完了した後、当該記憶領域からデータを削除する。
【０００４】
大量のデータを処理する技術として特許文献１及び特許文献２に記載の技術が知られている。
【０００５】
特許文献１には、「データ処理システムは、同種のデータが所定の単位で分割された複数の分割データを入力データとして格納する第１の記憶装置、複数の分割データの各々の第１の記憶装置への格納に応答して、各分割データを対象に処理を実行する親ジョブを元に子ジョブを生成する子ジョブ生成部、子ジョブ生成部により生成された子ジョブを起動する子ジョブ起動部、および、子ジョブの実行に伴う、各分割データに対応した出力データを格納する第２の記憶装置を有する。」ことが記載されている。また、特許文献２には、「ワークフローシステム１は、文書データに対してワークフローの実行を指示する端末装置２と、ワークフローに定められたプロセスを所定の順序で実行するように制御するジョブ制御装置３と、プロセスの一種である印刷処理を行う印刷装置４等からなる。ジョブ制御装置３の制御部３０は、ワークフローに含まれるプロセスのうちレビュープロセスをワークフロー管理テーブル３１２Ａに設定する設定手段３００、及び複数の文書データの入力順序に従って複数の排他的プロセスが実行されるように、ワークフローの実行を制御するジョブ制御手段３０２等として機能する。」ことが記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開第２０１５／１２５２２５号
【特許文献２】特開２０１０−９２００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
同一のデータを使用するプロセスが並列実行される場合、上記のような処理の特性から、あるプロセスが処理の実行中にもかかわらず、他のプロセスによってデータが削除される可能性がある。そのため、複数のプロセスが同一のデータを扱う処理を実現する方法として以下のような方法が考えられる。
【０００８】
第一の方法は、各プロセスの処理がシーケンシャルとなるように制御する方法である。第二の方法は、プロセス毎にデータの複製を生成し、複製されたデータをプロセスが処理する方法である。
【０００９】
第一の方法では、処理の不整合を防ぐために、プロセス間の同期等を考慮したスケジューリングが必要となる。したがって、処理の制御が複雑になるため、処理性能が低下するという問題がある。第二の方法では、データの複製等に伴ってＩ／Ｏ及びデータ転送量が増加するため、処理性能が低下するという問題がある。
【００１０】
本発明は、Ｉ／Ｏ及びデータ転送量の増加を抑え、かつ、容易な制御で、効率的に同一のデータを使用するプロセスを並列実行できるシステム及び方法を実現することを目的とする。
【課題を解決するための手段】
【００１１】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、外部装置から取得した収集データを用いて処理を実行する複数のプロセスが並列で稼働する計算機システムであって、前記複数のプロセスの各々は、同一の前記収集データを用いて異なる処理を実行し、前記計算機システムは、プロセッサ、前記プロセッサに接続される記憶装置、及び前記プロセッサに接続される外部インタフェースを有する計算機を備え、前記計算機は、前記収集データを管理し、前記収集データに対するアクセスを制御するデータ管理部を有し、前記データ管理部は、前記収集データを受信した場合、前記収集データの識別情報とは異なる識別情報であって、前記複数のプロセスの各々が前記収集データにアクセスする場合に使用するアクセス識別情報を生成し、前記収集データの識別情報と、前記複数のプロセスの各々に割り当てられた前記アクセス識別情報との対応を管理し、記憶領域に前記収集データを格納し、前記複数のプロセスに含まれる第一プロセスから第一収集データにアクセスするための第一アクセス識別情報を含む読出要求を受信した場合、前記第一アクセス識別情報に基づいて前記第一収集データを前記記憶領域から読み出し、前記第一プロセスに前記第一収集データを送信する。
【発明の効果】
【００１２】
本発明によれば、Ｉ／Ｏ及びデータ転送量の増加を抑え、かつ、容易な制御で、効率的に同一のデータを使用するプロセスを並列実行できる。
【図面の簡単な説明】
【００１３】
【図１】実施例１の計算機システムの構成例を示す図である。
【図２】実施例１のセンサデータに付与されるメタデータのデータ構造の一例を示す図である。
【図３】実施例１のデータ管理部がセンサデータを受信した場合に実行する処理の一例を説明するフローチャートである。
【図４】実施例１のデータ管理部がアクセス要求を受信した場合に実行する処理の一例を説明するフローチャートである。
【図５】実施例２の計算機システムの構成例を示す図である。
【図６】実施例３の計算機システムの構成例を示す図である。
【図７】実施例３のデータ管理情報のデータ構造の一例を示す図である。
【図８】実施例４のデータ管理情報のデータ構造の一例を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施の形態の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【００１５】
以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。
【実施例１】
【００１６】
図１は、実施例１の計算機システムの構成例を示す図である。図２は、実施例１のセンサデータに付与されるメタデータのデータ構造の一例を示す図である。
【００１７】
計算機システムは、サーバ１００及び複数のセンサ１０１から構成される。図１に示す例では、計算機システムはＭ個のセンサを含む。サーバ１００及び複数のセンサ１０１は、直接又はネットワークを介して互いに接続される。ネットワークは、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）及びＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等である。ネットワークの接続方式は無線及び有線のいずれでもよい。
【００１８】
センサ１０１は、制御対象の状態等を示す値を計測する。例えば、センサ１０１は、温度、湿度、加速度、及び角度等を計測する。センサ１０１は、計測値を含むセンサデータをサーバ１００に送信する。なお、センサデータには、センサ１０１の識別情報、計測時間、及びデータの種別等が含まれる。
【００１９】
サーバ１００は、センサデータを収集し、収集したデータを記憶領域に格納し、収集したセンサデータを用いた処理を実行する。サーバ１００は、収集したデータを記憶領域に格納する場合、ファイル形式等、所定のデータ形式にセンサデータを変換する。このとき、センサデータにはメタデータ２００が付与される。
【００２０】
ここで、図２を用いてセンサデータに付与されるメタデータ２００について説明する。実施例１のメタデータ２００は、データ識別情報２０１、日付２０２、及びアクセス識別情報２０３から構成される。なお、メタデータ２００には、データのサイズ、データの所有者、グループ、及びパーミション等が含まれてもよい。
【００２１】
データ識別情報２０１は、センサデータの識別情報を格納するフィールドである。データ識別情報２０１には、センサデータが格納されるパス等の名称が格納される。
【００２２】
日付２０２は、センサデータが生成された日付を格納するフィールドである。なお、センサデータが生成された日付ではなく、センサデータに含まれる値が計測された日付及びサーバ１００がセンサデータを受信した日付等が日付２０２に格納されてもよい。
【００２３】
アクセス識別情報２０３は、アクセス識別情報を格納するフィールドである。後述するように一つのメタデータ２００には、プロセス１５０の数だけアクセス識別情報が設定される。
【００２４】
ここで、アクセス識別情報は、複数のプロセス１５０の各々がセンサデータにアクセスする場合に使用する識別情報である。一つのプロセス１５０に対して一つのアクセス識別情報が割り当てられる。各アクセス識別情報は、センサデータの識別情報と重複しないように生成される。また、各アクセス識別情報は、互いに重複しないように生成される。以上が、メタデータ２００の説明である。図１の説明に戻る。
【００２５】
サーバ１００は、ハードウェアとして、プロセッサ１１０、メモリ１１１、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１１２、及び外部インタフェース１１３を有する。各ハードウェアは内部バスを介して互いに接続される。なお、サーバ１００は、キーボード、マウス、及びタッチパネル等の入力装置、並びに、ディスクプレイ及びプリンタ等の出力装置を有してもよい。
【００２６】
プロセッサ１１０は、少なくとも一つの演算コアを有する演算装置であって、メモリ１１１に格納されるプログラムを実行する。プロセッサ１１０がプログラムにしたがって処理を実行することによって、特定の機能を実現する機能部（モジュール）として動作する。以下の説明では、機能部を主語に処理を説明する場合、プロセッサ１１０が当該モジュールを実現するプログラムを実行していることを示す。
【００２７】
メモリ１１１は、プロセッサ１１０が実行するプログラム及び当該プログラムが使用する情報を格納する。また、メモリ１１１は、プログラムが使用するワークエリアを含む。メモリ１１１は、揮発性メモリ及び不揮発性メモリのいずれでもよい。メモリ１１１に格納されるプログラム及び情報については後述する。
【００２８】
ＨＤＤ１１２は、大容量の記憶装置であり、データを永続的に格納する。メモリ１１１に格納されるプログラム及び情報は、ＨＤＤ１１２に格納されてもよい。この場合、プロセッサ１１０が、ＨＤＤ１１２からプログラム及び情報を読出し、メモリ１１１にプログラム及び情報をロードし、また、ロードされたプログラムを実行する。
【００２９】
ＨＤＤ１１２の代わりに、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の他の記憶装置を用いてもよい。実施例１のＨＤＤ１１２には、センサ１０１から受信したセンサデータが一時的に格納される。
【００３０】
ここで、メモリ１１１に格納されるプログラム及び情報について説明する。メモリ１１１は、データ受信部１２０、データ管理部１２１、及び複数のプロセス１５０を実現するプログラムを格納する。図１に示す例では、Ｍ個のプロセス１５０が稼働している。
【００３１】
プロセス１５０は、センサデータを用いて所定の処理を実行する。例えば、プロセス１５０は、外部データベースへのデータの格納処理、統計処理、及び分析処理等を実行する。実施例１のプロセス１５０は、ＨＤＤ１１２にソースデータとして格納されるセンサデータそのものの改変及び加工等の書込処理を実行しないものとする。また、実施例１のプロセス１５０は、処理が完了した場合、センサデータの削除要求又はセンサデータのクローズ要求を送信するものとする。
【００３２】
データ受信部１２０は、外部インタフェース１１３を介して受信したセンサデータを受信し、データ管理部１２１に送信する。なお、データ受信部１２０は、必要に応じてセンサデータのデータ形式の変換等を行ってもよい。
【００３３】
データ管理部１２１は、センサデータを管理し、また、センサデータへのアクセスを制御する。具体的には以下のような処理を実行する。
【００３４】
データ管理部１２１は、データ受信部１２０からセンサ１０１−１が送信したセンサデータＡを受信した場合、センサデータＡを、メタデータ２００が付与されたファイル形式のデータに変換し、ＨＤＤ１１２にセンサデータＡを格納する。
【００３５】
このとき、データ管理部１２１は、各プロセス１５０に割り当てるアクセス識別情報を生成し、当該アクセス識別情報をメタデータ２００に設定する。各プロセス１５０は、割り当てられたアクセス識別情報を用いてセンサデータＡへアクセスする。なお、データ管理部１２１には、予め、稼働するプロセス１５０の数に関する情報（プロセス数設定情報）及びアクセス識別情報の生成方法に関する情報が設定されている。
【００３６】
データ管理部１２１は、プロセス１５０から任意のセンサデータに対するアクセス要求を受信した場合、メタデータ２００を参照し、アクセス要求に含まれるアクセス識別情報を含むメタデータ２００が付与されたセンサデータに対するアクセスを制御する。例えば、データ管理部１２１は、プロセス１５０−１からアクセス識別情報「センサデータＡ１」を含む読出要求を受信した場合、ＨＤＤ１１２からセンサデータＡを読み出し、要求元のプロセス１５０に送信する。
【００３７】
なお、計算機システムの構成は一例であってこれに限定されない。例えば、計算機システムは、各プロセス１５０を実行する計算機を含んでもよい。また、サーバ１００上に、データ管理部１２１を有する仮想計算機及びプロセス１５０が稼働する仮想計算機を設定してもよい。
【００３８】
なお、サーバ１００が処理するデータはセンサデータ以外のデータでもよく、空調機器等の装置の稼働情報、撮像装置が撮影した画像、及び集音装置が集音した音等、外部装置から取得できるデータであればよい。
【００３９】
なお、サーバ１００が有する各機能部は、複数の機能部を一つのモジュールにまとめてもよいし、一つの機能部を機能毎に複数の機能部に分けてもよい。
【００４０】
次に、データ管理部１２１が実行する処理の詳細を図３及び図４を用いて説明する。
【００４１】
図３は、実施例１のデータ管理部１２１がセンサデータを受信した場合に実行する処理の一例を説明するフローチャートである。
【００４２】
データ管理部１２１は、データ受信部１２０からセンサデータを受信した場合（ステップＳ１０１）、メタデータ２００が付与されたセンサデータを生成し、ＨＤＤ１１２に格納する（ステップＳ１０２）。この時点では、メタデータ２００にはアクセス識別情報２０３は設定されていない。なお、データ受信部１２０から受信したセンサデータにメタデータ２００が設定されている場合、データ管理部１２１は、受信したセンサデータをそのままＨＤＤ１１２に格納する。
【００４３】
次に、データ管理部１２１は、各プロセス１５０に割り当てるアクセス識別情報を生成し、生成されたアクセス識別情報をメタデータ２００に設定する（ステップＳ１０３）。
【００４４】
具体的には、データ管理部１２１は、プロセス数設定情報に基づいて、各プロセス１５０に割り当てるアクセス識別情報を生成する。また、データ管理部１２１は、メタデータ２００のアクセス識別情報２０３に生成されたアクセス識別情報を設定する。例えば、データ管理部１２１は、受信したセンサデータの識別情報とプロセス１５０の識別情報とを組み合わせてアクセス識別情報を生成する。なお、本発明は、アクセス識別情報の生成方法に限定されない。
【００４５】
なお、ステップＳ１０２及びステップＳ１０３の処理の順番は入れ替えてもよい。すなわち、データ管理部１２１は、アクセス識別情報を生成した後、アクセス識別情報が設定されたメタデータ２００が付与されたセンサデータをＨＤＤ１１２に格納する。
【００４６】
なお、データ管理部１２１は、必要に応じて、各プロセス１５０にアクセス識別情報を含むセンサデータの受信通知を送信してもよい。プロセス１５０は、受信通知を受信した場合、任意のタイミングでアクセス識別情報を含むアクセス要求を送信することによって、センサデータにアクセスする。
【００４７】
図４は、実施例１のデータ管理部１２１がアクセス要求を受信した場合に実行する処理の一例を説明するフローチャートである。
【００４８】
データ管理部１２１は、任意のプロセス１５０からアクセス要求を受信した場合（ステップＳ２０１）、当該アクセス要求が読出要求であるか否かを判定する（ステップＳ２０２）。
【００４９】
受信したアクセス要求が読出要求であると判定された場合、データ管理部１２１は、当該アクセス要求に基づいてメタデータ２００を参照し、ＨＤＤ１１２からセンサデータを取得する（ステップＳ２０３）。
【００５０】
具体的には、データ管理部１２１は、アクセス識別情報２０３に、読出要求に含まれるアクセス識別情報が設定されたメタデータ２００を検索する。データ管理部１２１は、検索されたメタデータ２００のデータ識別情報２０１に基づいてＨＤＤ１１２からセンサデータを取得する。なお、メモリ１１１にメタデータ２００のキャッシュデータを予め格納することによって、前述の処理を高速化することができる。
【００５１】
次に、データ管理部１２１は、要求元のプロセス１５０に、ＨＤＤ１１２から取得したセンサデータを送信し（ステップＳ２０４）、その後、処理を終了する。
【００５２】
このとき、データ管理部１２１は、データ識別情報２０１の値を読出要求に含まれるアクセス識別情報に置き換えてもよい。
【００５３】
ステップＳ２０２において、受信したアクセス要求が読出要求でない、すなわち、受信したアクセス要求がセンサデータの削除を指示する要求であると判定された場合、データ管理部１２１は、メタデータ２００を更新する（ステップＳ２０５）。センサデータの削除を指示する要求は、プロセス１５０が所定のセンサデータを用いて処理が完了した場合に送信する要求であり、例えば、センサデータの削除要求又はセンサデータのクローズ要求である。ここでは、削除要求を受けたものとする。
【００５４】
具体的には、データ管理部１２１は、アクセス識別情報２０３に、削除要求に含まれるアクセス識別情報が設定されたメタデータ２００を検索する。データ管理部１２１は、検索されたメタデータ２００のアクセス識別情報２０３から削除要求に含まれるアクセス識別情報を削除する。また、データ管理部１２１は、プロセス１５０にセンサデータの削除が完了した旨を通知する。前述のように、データ管理部１２１は、プロセス１５０が所定のセンサデータを用いた処理が完了したことを検知した場合、メタデータ２００からアクセス識別情報を削除する。
【００５５】
なお、メモリ１１１にメタデータ２００のキャッシュデータを予め格納することによって、前述の処理を高速化することができる。
【００５６】
次に、データ管理部１２１は、削除対象のセンサデータをＨＤＤ１１２から削除できるか否かを判定する（ステップＳ２０６）。
【００５７】
具体的には、データ管理部１２１は、ステップＳ２０５において特定されたメタデータ２００のアクセス識別情報２０３が空であるか否かを判定する。アクセス識別情報２０３が空である場合、データ管理部１２１は、削除対象のセンサデータをＨＤＤ１１２から削除できると判定する。
【００５８】
削除対象のセンサデータをＨＤＤ１１２から削除できないと判定された場合、データ管理部１２１は処理を終了する。
【００５９】
削除対象のセンサデータをＨＤＤ１１２から削除できると判定された場合、データ管理部１２１は、ＨＤＤ１１２から当該センサデータを削除する（ステップＳ２０７）。その後、データ管理部１２１は処理を終了する。このように、ＨＤＤ１１２からのセンサデータの削除は、プロセス１５０の処理とは独立で行われる。
【００６０】
なお、プロセス１５０を追加又は削除する場合、データ管理部１２１に設定されるプロセス数設定情報を更新すればよい。従来のような排他制御を考慮したプロセス１５０のワークフローを設定する必要がないため、プロセス１５０の数の増減に対して柔軟な対応が可能となる。
【００６１】
以上で説明したように、実施例１によれば以下のような特徴がある。
【００６２】
第一に、データ管理部１２１は、センサデータの識別情報と、プロセス１５０に割り当てたアクセス識別情報とを対応づけて管理する。これによって以下のような効果を奏する。データ管理部１２１は、各プロセス１５０からの読出要求に対して、同一のセンサデータを応答することができる。各プロセス１５０が使用するセンサデータは複製されないため、データの複製によるＩ／Ｏ及びデータ転送量の増加を抑制できる。また、各プロセス１５０からは異なるセンサデータとして認識されるため、各プロセス１５０が実行する処理の同期制御等が必要ない。したがって、複雑な制御を行うことなく、複数のプロセス１５０を並列に実行することができる。
【００６３】
第二に、データ管理部１２１は、アクセス制御処理の中で、アクセス識別情報の有無に基づいてセンサデータを削除できる。これによって、センサデータを削除するための処理を別途実行する必要がないため、計算機リソースの消費量及び処理負荷を抑えることができるという効果を奏する。また、システムの開発コストを削減できるという効果もある。
【実施例２】
【００６４】
実施例２は、データ管理部１２１が、センサデータを削除するための仕組みが異なる。以下、実施例１との差異を中心に実施例２について説明する。
【００６５】
図５は、実施例２の計算機システムの構成例を示す図である。
【００６６】
実施例２の計算機システムは、実施例１の計算機システムと同様に、サーバ１００及び複数のセンサ１０１から構成される。実施例２のサーバ１００のハードウェア構成は、実施例１のサーバ１００と同一である。
【００６７】
実施例２のサーバ１００のソフトウェア構成は、実施例１のサーバ１００と一部異なる。具体的には、メモリ１１１はカウンタ１３０を格納する。カウンタ１３０は、ＨＤＤ１１２に格納されるセンサデータの数だけが存在する。
【００６８】
カウンタ１３０は、センサデータを用いた処理を実行するプロセス１５０のうち、処理が完了していないプロセス１５０の数を格納する。
【００６９】
実施例２では、データ管理部１２１が実行する処理が一部異なる。まず、センサデータを受信した場合の処理について説明する。当該処理では、ステップＳ１０３の処理が異なる。
【００７０】
ステップＳ１０３では、データ管理部１２１は、メタデータ２００にアクセス識別情報を設定し、また、プロセス１５０の数を設定したカウンタ１３０を生成する。なお、カウンタ１３０にはセンサデータの識別情報が付与される。
【００７１】
次にセンサデータのアクセス要求を受信した場合に実行する処理について説明する。当該処理では、ステップＳ２０５、ステップＳ２０６、及びステップＳ２０７の処理が異なる。
【００７２】
ステップＳ２０５では、データ管理部１２１は、アクセス識別情報２０３に削除要求に含まれるアクセス識別情報が設定されたメタデータ２００を検索する。データ管理部１２１は、メタデータ２００のデータ識別情報２０１に格納される識別情報が付与されたカウンタ１３０の値を「１」減算する。なお、メモリ１１１にメタデータ２００のキャッシュデータを予め格納することによって、前述の処理を高速化することができる。
【００７３】
ステップＳ２０６では、データ管理部１２１は、ステップＳ２０５において特定されたカウンタ１３０の値が「０」であるか否かを判定する。カウンタ１３０の値が「０」である場合、データ管理部１２１は、削除対象のセンサデータを削除できると判定する。
【００７４】
ステップＳ２０７では、データ管理部１２１は、センサデータとともに、特定されたカウンタ１３０を削除する。実施例２の他の処理は実施例１と同一である。
【００７５】
実施例２によれば実施例１と同様の効果を奏する。
【実施例３】
【００７６】
実施例３は、アクセス識別情報等の管理方式が実施例１と異なる。以下、実施例１との差異を中心に実施例３について説明する。
【００７７】
図６は、実施例３の計算機システムの構成例を示す図である。図７は、実施例３のデータ管理情報１３１のデータ構造の一例を示す図である。
【００７８】
実施例３の計算機システムは、実施例１の計算機システムと同様に、サーバ１００及び複数のセンサ１０１から構成される。実施例３のサーバ１００のハードウェア構成は、実施例１のサーバ１００と同一である。
【００７９】
実施例３のサーバ１００のソフトウェア構成は、実施例１のサーバ１００と一部異なる。具体的には、メモリ１１１はデータ管理情報１３１を格納する。
【００８０】
データ管理情報１３１は、センサデータへのアクセスを制御するための情報である。ここで、図７を用いてデータ管理情報１３１のデータ構造の一例を説明する。データ管理情報１３１は、データ識別情報７０１、日付７０２、及びアクセス識別情報７０３から構成されるエントリを格納するテーブル形式の情報である。
【００８１】
一つのエントリは一つのセンサデータに対応する。また、一つのエントリのアクセス識別情報７０３には、プロセス１５０の数だけ行が含まれる。
【００８２】
データ識別情報７０１及び日付７０２は、メタデータ２００に含まれる一部の値を格納するフィールドである。データ識別情報７０１及び日付７０２は、データ識別情報２０１及び日付２０２と同一のフィールドである。なお、エントリには、データ識別情報７０１及び日付７０２以外の属性の値を格納するフィールドが含まれてもよい。
【００８３】
アクセス識別情報７０３は、センサデータへのアクセスを制御するための値を格納するフィールドである。アクセス識別情報７０３は、アクセス識別情報２０３と同一のフィールドである。
【００８４】
実施例３では、データ管理部１２１が実行する処理が異なる。まず、センサデータを受信した場合の処理について説明する。当該処理では、ステップＳ１０３の処理が異なる。
【００８５】
ステップＳ１０３では、データ管理部１２１はアクセス識別情報を生成する。また、データ管理部１２１は、データ管理情報１３１にエントリを追加し、追加されたエントリのデータ識別情報７０１及び日付７０２にメタデータ２００に含まれる値を設定し、追加されたエントリのアクセス識別情報７０３にプロセス１５０の数だけ行を追加し、各行のアクセス識別情報７０３に生成されたアクセス識別情報を設定する。実施例３のメタデータ２００はアクセス識別情報が設定されない一般的なメタデータである。
【００８６】
センサデータのアクセス要求を受信した場合に実行する処理について説明する。当該処理では、ステップＳ２０３、ステップＳ２０５、ステップＳ２０６、及びステップＳ２０７の処理が異なる。
【００８７】
ステップＳ２０３では、データ管理部１２１は、読出要求に基づいてデータ管理情報１３１を参照し、ＨＤＤ１１２からセンサデータを取得する。
【００８８】
具体的には、データ管理部１２１は、データ管理情報１３１を参照して、アクセス識別情報７０３に読出要求に含まれるアクセス識別情報が設定されたエントリを検索する。データ管理部１２１は、検索されたエントリのデータ識別情報７０１に設定された識別情報に基づいて、ＨＤＤ１１２からセンサデータを取得する。
【００８９】
ステップＳ２０５では、データ管理部１２１は、アクセス識別情報７０３に削除要求に含まれるアクセス識別情報が設定されたエントリを検索する。データ管理部１２１は、検索されたエントリのアクセス識別情報７０３から削除要求に含まれるアクセス識別情報を削除する。
【００９０】
ステップＳ２０６では、データ管理部１２１は、ステップＳ２０５において検索されたエントリのアクセス識別情報７０３が空であるか否かを判定する。アクセス識別情報７０３が空である場合、データ管理部１２１は、削除対象のセンサデータをＨＤＤ１１２から削除できると判定する。
【００９１】
ステップＳ２０７では、データ管理部１２１は、ＨＤＤ１１２からセンサデータを削除し、また、データ管理情報１３１からステップＳ２０５において検索されたエントリを削除する。
【００９２】
実施例３によれば実施例１と同様の効果を奏する。また、実施例３では、データ管理部１２１は、ＨＤＤ１１２にアクセスすることなく、センサデータの特定及びセンサデータの削除判定を行うことができるため、処理の遅延を抑制することができる。
【実施例４】
【００９３】
実施例４は、アクセス識別情報等の管理方式が実施例１と異なる。以下、実施例１との差異を中心に実施例４について説明する。
【００９４】
実施例４の計算機システムの構成は、実施例３と同様にデータ管理情報１３１を保持する点が異なる。図８は、実施例４のデータ管理情報１３１のデータ構造の一例を示す図である。
【００９５】
データ管理情報１３１は、ｉノード番号８０１及びデータ識別情報８０２から構成されるエントリを格納するテーブル形式の情報である。
【００９６】
一つのエントリは一つのセンサデータに対応する。また、一つのエントリのデータ識別情報８０２には、プロセス１５０の数に１を加算した数だけ行が含まれる。
【００９７】
ｉノード番号８０１は、メタデータ２００にアクセスするための情報を格納するフィールドである。本実施例では、ｉノードの識別番号であるｉノード番号が格納される。データ識別情報８０２は、データ識別情報２０１と同一のフィールドである。ただし、実施例４では、データ識別情報２０１にアクセス識別情報が格納される。
【００９８】
実施例４では、データ管理部１２１が実行する処理が異なる。まず、センサデータを受信した場合の処理について説明する。当該処理では、ステップＳ１０３の処理が異なる。
【００９９】
ステップＳ１０３では、データ管理部１２１はアクセス識別情報を生成する。データ管理部１２１は、データ管理情報１３１にエントリを追加し、追加されたエントリのｉノード番号８０１にｉノード番号を設定する。また、データ管理部１２１は、追加されたエントリのデータ識別情報８０２にプロセス１５０の数に１を加算した数だけ行を追加し、一つの行にデータ識別情報を設定し、他の行に生成されたアクセス識別情報を設定する。実施例４のメタデータ２００はアクセス識別情報が設定されない一般的なメタデータである。
【０１００】
センサデータのアクセス要求を受信した場合に実行する処理について説明する。当該処理では、ステップＳ２０３、ステップＳ２０５、ステップＳ２０６、及びステップＳ２０７の処理が異なる。
【０１０１】
ステップＳ２０３では、データ管理部１２１は、読出要求に基づいてデータ管理情報１３１を参照し、ＨＤＤ１１２からセンサデータを取得する。
【０１０２】
具体的には、データ管理部１２１は、データ管理情報１３１を参照して、データ識別情報８０２に読出要求に含まれるアクセス識別情報が設定されたエントリを検索する。データ管理部１２１は、検索されたエントリのｉノード番号８０１に設定されたｉノード番号に基づいて、ＨＤＤ１１２からセンサデータを取得する。
【０１０３】
ステップＳ２０５では、データ管理部１２１は、データ識別情報８０２に削除要求に含まれるアクセス識別情報が設定されたエントリを検索する。データ管理部１２１は、検索されたエントリのデータ識別情報８０２から削除要求に含まれるアクセス識別情報を削除する。
【０１０４】
ステップＳ２０６では、データ管理部１２１は、ステップＳ２０５において検索されたエントリのデータ識別情報８０２に格納される識別情報が一つであるか否かを判定する。すなわち、センサデータに元々付与されているデータ識別情報のみがデータ識別情報８０２に格納されているか否かが判定される。データ識別情報８０２に格納される識別情報が一つである場合、データ管理部１２１は、削除対象のセンサデータをＨＤＤ１１２から削除できると判定する。
【０１０５】
ステップＳ２０７では、データ管理部１２１は、ＨＤＤ１１２からセンサデータを削除し、また、データ管理情報１３１からステップＳ２０５において検索されたエントリを削除する。
【０１０６】
実施例４によれば実施例１と同様の効果を奏する。また、実施例４では、データ管理部１２１は、ＨＤＤ１１２にアクセスすることなく、センサデータの特定及びセンサデータの削除判定を行うことができるため、処理の遅延を抑制することができる。
【０１０７】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、置換をすることが可能である。
【０１０８】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ＨＤＤ及びＳＳＤ等の記憶装置、又は、ＩＣカード、ＳＤカード、及び光ディスク等の記録媒体に置いてもよい。また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。例えば実際にはほとんど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【０１０９】
１００  サーバ
１０１  センサ
１１０  プロセッサ
１１１  メモリ
１１２  ＨＤＤ
１１３  外部インタフェース
１２０  データ受信部
１２１  データ管理部
１３０  カウンタ
１３１  データ管理情報
１５０  プロセス
２００  メタデータ
【図１】
2020003945.tif 000003
【図２】
2020003945.tif 000004
【図３】
2020003945.tif 000005
【図４】
2020003945.tif 000006
【図５】
2020003945.tif 000007
【図６】
2020003945.tif 000008
【図７】
2020003945.tif 000009
【図８】
2020003945.tif 000010