以下に図面を参照して、本発明にかかる情報処理装置、情報処理システム、情報処理方法、および情報処理プログラムの実施の形態を詳細に説明する。
(実施の形態1)
図1は、実施の形態1にかかる情報処理方法の一実施例を示す説明図である。図1において、情報処理装置101は、オブジェクトを管理するコンピュータである。管理対象となるオブジェクトは、例えば、データ、物品などである。データとしては、例えば、文書ファイル、画像ファイル、プログラムファイルなどのファイルが挙げられる。物品としては、例えば、同一番号の枝番で管理されるような物品群が挙げられる。
ここで、何らかの目的を達成するために作業を行う中で、後のフェーズになって実施したい処理について、事前に意図を持って準備しておきたい場合がある。例えば、システム開発の中で生成される仕様書や試験結果などを保存しておき、後でまとめたい場合がある。また、動画ファイルの編集中に生成された作業ファイルを、動画共有サービスに動画ファイル(最終版)をアップロードした後に削除したい場合がある。また、まとめて購入した付属品の資産管理を効率化して、棚卸や廃棄のタイミングで困らないようにしたい場合がある。
ところが、事前に意図した処理について、実際の処理実行のタイミングまでの時間が空くと、当初の意図や準備したことを忘れて、処理実行のタイミングを逸してしまうことがある。また、処理対象のオブジェクトが、どこにあるどのオブジェクトであるかが分からなくなり、探し出すのに手間や時間がかかることがある。すなわち、当初の意図と処理実行のタイミングとの時間的なズレがユーザに負担を強いることになる。
なお、処理対象のオブジェクトを探し出しやすくするために、各オブジェクトの情報を手作業で管理することが考えられる。しかし、オブジェクトの置き場所が変わったり、中間生成物が多数生成されたりすることがあり、各オブジェクトの置き場所やオブジェクト間の関係を手作業で管理するのは面倒である。また、ミスにより正確な情報が得られなくなることがある。
そこで、本実施の形態では、情報処理装置101において、ユーザが事前に意図した処理を自律的に実行することができる情報処理方法について説明する。
ここでは、管理対象のオブジェクトとして、「動画ファイルf1〜f3」を例に挙げて説明する。動画ファイルf1〜f3は、動画を記録したファイルである。動画ファイルf1は、動画フォルダ120に保存された編集元のファイルである。動画ファイルf2は、動画ファイルf1を編集して生成された作業ファイルである。動画ファイルf3は、動画ファイルf2をさらに編集して生成された最終版のファイルである。
なお、動画ファイルf2の保存先は、動画ファイルf3が生成された後、動画フォルダ120から作業フォルダ130に変更される場合を想定する。
各動画ファイルf1〜f3には、メタデータd1〜d3がそれぞれ付与される。各メタデータd1〜d3は、各動画ファイルf1〜f3に対する所定の処理の実行条件を示す情報である。また、各メタデータd1〜d3には、オブジェクト間の関係性を示す情報が含まれる。
例えば、メタデータd2は、動画ファイルf2に対する削除処理の実行条件および他の動画ファイルとの関係性を示す。ここでは、動画ファイルf2に対する削除処理の実行条件として、動画ファイルf2に関連する動画ファイルf3が投稿(アップロード)された場合に満たされる条件が設定されているものとする。
各メタデータd1〜d3は、例えば、各動画ファイルf1〜f3の生成時に付与される。具体的には、例えば、各動画ファイルf1〜f3に対する所定の処理や実行条件は、各動画ファイルf1〜f3の生成時にユーザによって設定される。また、オブジェクト間の関係性は、各動画ファイルf1〜f3の生成時に設定または更新される。
以下、情報処理装置101の処理例について説明する。
(1)情報処理装置101は、イベントを検知する。イベントは、管理対象のオブジェクトにかかるイベントであり、例えば、動画共有アプリなどのアプリケーションにより発行される。図1の例では、動画共有サービスXに動画ファイルf3が投稿(アップロード)された結果、情報処理装置101が、動画ファイルf3が投稿されたことを示すイベント140を検出した場合を想定する。
(2)情報処理装置101は、記憶部110を参照して、検知したイベントが、管理対象のオブジェクトのメタデータが示す実行条件を満たすか否かを判断する。ここで、記憶部110は、管理対象のオブジェクトに付与されるメタデータを記憶する。メタデータは、オブジェクトに対する所定の処理の実行条件を示す情報である。メタデータには、オブジェクト間の関係性を示す情報が含まれていてもよい。
図1の例では、記憶部110には、各動画ファイルf1〜f3に付与されたメタデータd1〜d3が記憶される。ここで、イベント140は、動画ファイルf2に関連する動画ファイルf3が投稿されたことを示すものであり、メタデータd2が示す実行条件を満たす。したがって、情報処理装置101は、イベント140が、メタデータd2が示す実行条件を満たすと判断する。
(3)情報処理装置101は、検知したイベントが、管理対象のオブジェクトのメタデータが示す実行条件を満たす場合に、当該オブジェクトに対して所定の処理を実行する。図1の例では、イベント140が、動画ファイルf2に対する削除処理の実行条件を満たす。このため、情報処理装置101は、動画ファイルf2に対して、メタデータd2に定義された削除処理を実行する。この結果、作業フォルダ130に保存された動画ファイルf2が削除される。
このように、情報処理装置101によれば、管理対象のオブジェクトに対して、事前に意図した処理を自律的に実行することができる。これにより、各オブジェクトを手作業で管理するなどの面倒な作業を行うことなく、各オブジェクトについて事前に意図した処理を自動実行することができ、ユーザの利便性を向上させることができる。
図1の例では、情報処理装置101は、動画ファイルf2の生成時にユーザが意図した削除処理を、当初意図した通りのタイミング、すなわち、動画ファイルf2から派生して生成された動画ファイルf3が投稿されたときに自律的に実行することができる。この際、動画ファイルf2の保存先が変更されていても、ユーザが動画ファイルf2を探し出す必要がなく、ユーザの手間や作業時間を削減することができる。また、動画ファイルf3が投稿されたことに応じて、動画ファイルf2を忘れることなく削除することができるため、記憶領域の無駄な使用を抑えて、情報処理装置101の処理性能を向上させることができる。
(実施の形態2)
つぎに、実施の形態2にかかる情報処理方法について説明する。まず、実施の形態2にかかる情報処理システム200のシステム構成例について説明する。なお、実施の形態1で説明した箇所と同様の箇所については説明を省略する。
図2は、情報処理システム200のシステム構成例を示す説明図である。図2において、情報処理システム200は、情報処理装置M1〜Mnを含む(n:2以上の自然数)。情報処理システム200において、情報処理装置M1〜Mnは、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。
以下の説明では、情報処理装置M1〜Mnのうちの任意の情報処理装置を「情報処理装置Mi」と表記する場合がある(i=1,2,…,n)。図1に示した情報処理装置101は、例えば、情報処理装置Miに対応する。
情報処理装置Miは、PMDDB(Processing Meta−Data Database)220およびPMD生成ルールDB230を有し、オブジェクトOBJを管理するコンピュータである。情報処理装置Miは、例えば、PC(Personal Computer)やタブレットPCなどであってもよく、サーバであってもよい。
以下の説明では、特に指定する場合を除き、管理対象のオブジェクトOBJとして、文書ファイル、画像ファイル、プログラムファイルなどのファイルを例に挙げて説明する。
PMDDB220は、処理メタデータd(PMD)を記憶するデータベースである。処理メタデータdは、管理対象のオブジェクトOBJに付与(格納)される情報である。図1に示したメタデータd1〜d3は、例えば、処理メタデータdに対応する。
情報処理システム200において、管理対象のオブジェクトOBJは、情報処理装置間で送受信可能である。情報処理装置Miは、他の情報処理装置Mj(j≠i、j=1,2,…,n)からオブジェクトOBJを受信すると、当該オブジェクトOBJに付与された処理メタデータdをPMDDB220に格納する。
なお、処理メタデータdのデータ構造については、図4を用いて後述する。また、PMDDB220およびPMD生成ルールDB230の記憶内容については、図5および図6を用いて後述する。
(情報処理装置Miのハードウェア構成例)
図3は、情報処理装置Miのハードウェア構成例を示すブロック図である。図3において、情報処理装置Miは、CPU(Central Processing Unit)301と、メモリ302と、ディスクドライブ303と、ディスク304と、I/F(Interface)305と、ディスプレイ306と、入力装置307と、を有する。また、各構成部はバス300によってそれぞれ接続される。
ここで、CPU301は、情報処理装置Miの全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
ディスクドライブ303は、CPU301の制御に従ってディスク304に対するデータのリード/ライトを制御する。ディスク304は、ディスクドライブ303の制御で書き込まれたデータを記憶する。ディスク304としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
I/F305は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、I/F305は、ネットワーク210と自装置内部とのインターフェースを司り、他の装置からのデータの入出力を制御する。I/F305には、例えば、モデムやLANアダプタなどを採用することができる。
ディスプレイ306は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイ306は、例えば、液晶ディスプレイ、CRT(Cathode Ray Tube)などを採用することができる。
入力装置307は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う。入力装置307は、キーボードやマウスなどであってもよく、また、タッチパネル式の入力パッドやテンキーなどであってもよい。
なお、情報処理装置Miは、上述した構成部のほかに、例えば、SSD(Solid State Drive)を有することにしてもよい。また、情報処理装置Miは、上述した構成部のうち、例えば、ディスクドライブ303、ディスク304を有さないことにしてもよい。
(処理メタデータdのデータ構造例)
つぎに、図4を用いて、処理メタデータdのデータ構造例について説明する。
図4は、処理メタデータdのデータ構造例を示す説明図である。図4において、処理メタデータdは、オブジェクトIDと、親オブジェクトIDと、子オブジェクトリストと、処理条件と、状態と、許可条件と、待ちイベントと、を示す。
ここで、オブジェクトIDは、オブジェクトOBJを一意に識別する識別子である。オブジェクトIDとしては、例えば、ファイル名やパス名を用いることができる。
親オブジェクトIDは、親オブジェクトを一意に識別する識別子(オブジェクトID)である。親オブジェクトは、オブジェクトOBJに関連する他のオブジェクトの一例である。親オブジェクトは、例えば、オブジェクトOBJの派生元のファイルである。
子オブジェクトリストは、子オブジェクトを一意に識別する識別子(オブジェクトID)をリスト化したものである。子オブジェクトは、オブジェクトOBJに関連する他のオブジェクトの一例である。子オブジェクトは、例えば、オブジェクトOBJを派生元として生成される派生先のファイルであり、複数存在する場合がある。
処理条件は、オブジェクトOBJに対する所定の処理の実行条件を示す。具体的には、処理条件は、条件部とアクション部とを含み、親オブジェクトおよび/または子オブジェクトの状態が、条件部に定義された状態となったら、オブジェクトOBJに対してアクション部に定義された所定の処理を実行することを意味する。
状態は、オブジェクトOBJの状態である。状態としては、例えば、initial、stored、shared、sentなどがある。initialは、初期状態を示す。storedは、オブジェクトOBJが特定のストレージに格納された状態を示す。sharedは、オブジェクトOBJがSNS(Social Networking Service)、ブログ、動画共有サービスなどに投稿された状態を示す。sentは、オブジェクトOBJが電子メールなどに添付されて転送された状態を示す。
許可条件は、オブジェクトOBJに対する特定の処理の実行を許可または不許可とする条件である。具体的には、許可条件は、条件部とアクション部とを含み、オブジェクトOBJの状態が、条件部に定義された状態となったら、アクション部に定義された特定の処理の実行を許可または不許可とすることを意味する。
待ちイベントは、オブジェクトOBJに対する所定の処理の実行条件を満たすイベントを表すものであり、親オブジェクトおよび/または子オブジェクトが処理条件の条件部に定義された状態となったことを示すイベントである。待ちイベントには、例えば、処理条件の条件部に定義された状態が設定される。
なお、処理メタデータdは、例えば、上述した複数の項目のうち、状態および許可条件を示す情報を含まないことにしてもよい。
(PMDDB220の記憶内容)
つぎに、図5を用いて、情報処理装置Miが有するPMDDB220の記憶内容について説明する。PMDDB220は、例えば、メモリ302、ディスク304などの記憶装置により実現される。
図5は、PMDDB220の記憶内容の一例を示す説明図である。図5において、PMDDB220は、オブジェクトID、親オブジェクトID、子オブジェクトリスト、処理条件、状態、許可条件および待ちイベントのフィールドを有し、各フィールドに情報を設定することで、処理メタデータd(例えば、処理メタデータdx,dy)をレコードとして記憶する。
ここで、オブジェクトIDは、オブジェクトOBJを一意に識別する識別子である。親オブジェクトIDは、親オブジェクトを一意に識別する識別子である。子オブジェクトリストは、子オブジェクトを一意に識別する識別子をリスト化したものである。
処理条件は、オブジェクトOBJに対する所定の処理の実行条件を示す。図5中、「=>」は、発火(実行)条件を示す。「−>」は、連続実行を示す。「,」は、順序不定実行を示す。例えば、処理メタデータdxの処理条件「”shared”=>”delete,notify”」は、”shared”が条件部で、”delete,notify”がアクション部である。
この処理条件は、親オブジェクトおよび/または子オブジェクトの状態が、状態「shared」となったら、削除処理(delete)および通知処理(notify)を順序不定で実行することを意味する。削除処理(delete)は、オブジェクトOBJを削除する処理である。通知処理(notify)は、親オブジェクトおよび/または子オブジェクトを宛先としてイベントを通知する処理である。
状態は、オブジェクトOBJの状態である。許可条件は、オブジェクトOBJに対する特定の処理の実行を許可または不許可とする条件である。例えば、処理メタデータdyの許可条件「”sent”=>”deletable」は、”sent”が条件部で、”deletable”がアクション部である。この許可条件は、オブジェクトOBJ20が状態「sent」となったら、オブジェクトOBJ20に対する削除処理(delete)の実行を許可することを意味する。
許可条件のアクション部の他の例としては、「editable」、「!deletable」などが挙げられる。「editable」は、オブジェクトOBJに対する編集処理の実行を許可することを意味する。「!」は否定を示す。したがって、「!deletable」は、オブジェクトOBJに対する削除処理の実行を不許可とすることを意味する。
待ちイベントは、オブジェクトOBJに対する所定の処理の実行条件を満たすイベントを表すものであり、親オブジェクトおよび/または子オブジェクトが処理条件の条件部に定義された状態となったことを示すイベントである。待ちイベントには、例えば、処理条件の条件部に定義された状態が設定される。
(PMD生成ルールDB230の記憶内容)
つぎに、図6を用いて、情報処理装置Miが有するPMD生成ルールDB230の記憶内容について説明する。PMD生成ルールDB230は、例えば、メモリ302、ディスク304などの記憶装置により実現される。
図6は、PMD生成ルールDB230の記憶内容の一例を示す説明図である。図6において、PMD生成ルールDB230は、利用目的ごとのPMD生成ルール(例えば、PMD生成ルール600−1〜600−3)をレコードとして記憶する。
ここで、利用目的は、オブジェクトOBJ、または、オブジェクトOBJに関連する他のオブジェクトOBJの最終的な目的を示す。利用目的としては、例えば、share、send、storeなどが挙げられる。shareは、SNS、ブログ、動画共有サービスなどに投稿することを目的とする。sendは、電子メールなどに添付して転送することを目的とする。storeは、NAS(Network Attached Storage)、SAN(Storage Area Network)などの特定のストレージに格納することを目的とする。
PMD生成ルール(例えば、PMD生成ルール600−1〜600−3)は、ファイルステータスごとの処理条件を示す。ファイルステータスとしては、final、temporaryおよびoriginalがある。finalは、最終版のファイルを示す。temporaryは、一時ファイルを示す。originalは、元ファイルを示す。
なお、図6中には利用目的とファイルステータスに対する処理条件が指定されている。処理条件において、「=>」は、発火条件を示す。「−>」は、連続実行を示す。「,」は、順序不定実行を示す。「|」は、選択実行(処理メタデータdの生成時にユーザに問い合わせる)を示す。また、各PMD生成ルールには、ファイルステータスごとの許可条件を示す情報が含まれていてもよい。許可条件が指定されている場合は、指定された許可条件が処理メタデータに含まれる。許可条件が指定されていない場合は処理メタデータの許可条件に[](null)が入る。
(オブジェクト生成時のユーザの操作例)
つぎに、図7を用いて、オブジェクト生成時のユーザの操作例について説明する。ここでは、図3に示したディスプレイ306に表示されるファイル管理画面を例に挙げて、ファイル生成時のユーザの操作例について説明する。ファイル管理画面は、例えば、ファイラーアプリによって表示される。ファイラーアプリは、ファイルを管理するアプリケーションである。また、ファイル管理画面に表示されるアイコン等をユーザが選択する操作として、クリック操作を例に挙げて説明する。
図7は、オブジェクト生成時のユーザの操作例を示す説明図である。図7において、ファイル管理画面700は、管理対象のオブジェクトOBJを管理するための操作画面である。ファイル管理画面700には、ファイルアイコン701〜705が表示されている。ファイルアイコン701〜705は、管理対象のファイル(オブジェクトOBJ)を表すアイコンである。
ファイル管理画面700において、例えば、図3に示した入力装置307を用いたユーザの操作入力により、ファイルアイコン701〜705のいずれかのアイコンにカーソルCを移動させて、右クリックすると、メニュー画面710が表示される。メニュー画面710では、新規ファイルまたは派生ファイルのいずれのファイルを生成するのかを選択することができる。ここで、右クリックとは操作選択メニューを表示させる入力操作の総称である。
図7の例では、ファイルアイコン704にカーソルCを移動させて右クリックした結果、メニュー画面710が表示されている。メニュー画面710において、ユーザの操作入力により、新規ファイルまたは派生ファイルのいずれかのファイルを選択すると、メニュー画面720が表示される。
図7の例では、「派生ファイル」が選択された結果、メニュー画面720が表示されている。メニュー画面720は、ファイルの利用目的を選択するための画面である。メニュー画面720では、share、sendおよびstoreのいずれかの利用目的を選択することができる。メニュー画面720において、ユーザの操作入力により、利用目的を選択すると、メニュー画面730が表示される。
図7の例では、利用目的「share」が選択された結果、メニュー画面730が表示されている。メニュー画面730は、ファイルステータスを選択するための画面である。メニュー画面730では、temporaryまたはfinalのいずれかのファイルステータスを選択することができる。メニュー画面730において、ユーザの操作入力により、ファイルステータスを選択すると、派生ファイルおよび当該派生ファイルに付与される処理メタデータdが生成される。
図7の例では、ファイルステータス「temporary」が選択された結果、派生ファイルおよび当該派生ファイルに付与される処理メタデータdが生成され、ファイル管理画面700上に派生ファイルを表すファイルアイコン706が表示される。
生成された処理メタデータdは、生成された派生ファイルに格納されるとともに、図5に示したPMDDB220に記憶される。また、派生ファイル(処理メタデータdを含む)は、例えば、メモリ302、ディスク304などの記憶装置に記憶される。メニュー画面710において、「新規ファイル」が選択された場合は、ファイルステータスとして「original」が自動選択される。
なお、メニュー画面720に表示する利用目的候補は、任意に設定可能である。具体的には、例えば、メニュー画面720に表示する利用目的候補は、後述の図8に示す基盤処理部800からファイラーアプリに通知されることにしてもよい。また、メニュー画面730に表示するファイルステータス候補は、任意に設定可能である。具体的には、例えば、メニュー画面730に表示するファイルステータス候補は、後述の図8に示す基盤処理部800からファイラーアプリに通知されることにしてもよい。
また、上述した説明では、ファイラーアプリによって表示されるファイル管理画面700において利用目的等を選択することにしたが、これに限らない。例えば、動画編集アプリなどの編集画面において、動画ファイルの保存時に、メニュー画面720,730等の画面を表示して、利用目的およびファイルステータスを選択させることにしてもよい。
(情報処理装置Miの機能的構成例)
図8は、情報処理装置Miの機能的構成例を示すブロック図である。図8において、情報処理装置Miは、受付部801と、生成部802と、付与部803と、処理実行部804と、通信部805と、を含む基盤処理部800を有する。受付部801〜通信部805は制御部となる機能であり、具体的には、例えば、図3に示したメモリ302、ディスク304などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、I/F305により、その機能を実現する。各機能部の処理結果は、例えば、メモリ302、ディスク304などの記憶装置に記憶される。
また、アプリケーションAPL(以下、「アプリAPL」という)は、情報処理装置Mi上で実行されるアプリケーションである。アプリAPLは、ファイル管理部810を有する。ファイル管理部810は、ファイル管理用のコンポーネントであり、基盤処理部800に含まれる機能部と連携をとるためのものである。アプリAPLとしては、例えば、ファイラーアプリ、動画編集アプリ、動画共有アプリ、SNSアプリなどが挙げられる。
受付部801は、管理対象のオブジェクトOBJに関する利用目的の選択を受け付ける。オブジェクトOBJに関する利用目的とは、オブジェクトOBJまたはオブジェクトOBJに関連する他のオブジェクトの最終的な目的を示す。具体的には、例えば、受付部801は、入力装置307を用いたユーザの操作入力により、オブジェクトOBJに関する利用目的の選択を受け付ける。
より具体的には、例えば、利用目的の選択は、アプリAPL(例えば、ファイラーアプリ)によって表示される、図7に示したファイル管理画面700のメニュー画面720において行われる。そして、受付部801は、アプリAPLのファイル管理部810から、利用目的の選択結果を受け付ける。
また、受付部801は、オブジェクトOBJのファイルステータスの選択を受け付ける。具体的には、例えば、受付部801は、入力装置307を用いたユーザの操作入力により、オブジェクトOBJのファイルステータスの選択を受け付ける。
より具体的には、例えば、利用目的の選択は、アプリAPL(例えば、ファイラーアプリ)によって表示される、ファイル管理画面700のメニュー画面730において行われる。ただし、オブジェクトOBJが元ファイルの場合には、ファイルステータスとして「original」が自動選択される。そして、受付部801は、アプリAPLのファイル管理部810から、ファイルステータスの選択結果を受け付ける。
生成部802は、管理対象のオブジェクトOBJの処理メタデータdを生成する。具体的には、例えば、生成部802は、選択されたオブジェクトOBJに関する利用目的およびファイルステータスに基づいて、予め規定されたPMD生成ルールに従って、オブジェクトOBJの処理メタデータdを生成する。
より具体的には、例えば、まず、生成部802は、PMD生成ルールDB230を参照して、選択されたオブジェクトOBJに関する利用目的およびファイルステータスに基づいて、オブジェクトOBJに対する処理の実行条件を決定する。
例えば、図7に示したように、利用目的として「share」が選択され、ファイルステータスとして「temporary」が選択されたとする。この場合、生成部802は、PMD生成ルールDB230を参照して、利用目的「share」およびファイルステータス「temporary」の組み合わせに対応する実行条件「shared=>delete,notify」を特定する。そして、生成部802は、特定した実行条件を、オブジェクトOBJに対する所定の処理の実行条件に決定する。
この際、PMD生成ルールに、許可条件を示す情報が含まれる場合には、生成部802は、当該情報が示す許可条件を、オブジェクトOBJに対する特定の処理の許可条件に決定することにしてもよい。なお、許可条件とは、オブジェクトOBJに対する特定の処理の実行を許可または不許可とする条件である。
つぎに、生成部802は、決定したオブジェクトOBJに対する所定の処理の実行条件を含む処理メタデータdを生成する。この際、生成部802は、決定したオブジェクトOBJに対する特定の処理の実行を許可または不許可とする許可条件をさらに含む処理メタデータdを生成することにしてもよい。
また、処理メタデータdには、例えば、オブジェクトID、親オブジェクトID、子オブジェクトリスト、状態および待ちイベントが含まれる。親オブジェクトIDとしては、オブジェクトOBJが派生ファイルの場合は、派生元のファイルのオブジェクトIDが設定され、オブジェクトOBJが新規ファイルの場合には、「−(null)」が設定される。
子オブジェクトリストは、初期状態では空であり、オブジェクトOBJの子オブジェクトが生成された際に更新される。状態は、初期状態では「initial」が設定され、以降はオブジェクトOBJに対するイベントに基づく状態が設定される。待ちイベントには、オブジェクトOBJに対する所定の処理の実行条件を満たすイベントが設定される。
また、親オブジェクトIDが「−」ではない場合には、生成部802は、PMDDB220から、親オブジェクトIDがオブジェクトIDに設定された処理メタデータdを検索する。そして、生成部802は、検索した処理メタデータdの子オブジェクトリストにオブジェクトOBJのオブジェクトIDを登録する。また、生成部802は、親オブジェクトの処理メタデータに反映させる。また、生成部802は、親オブジェクトが情報処理装置Miになかった場合には、通信部805を介してイベントとして他の情報処理装置Mjに子オブジェクトのオブジェクトIDを伝播させる。
これにより、オブジェクトOBJの生成にともなって処理メタデータdを生成する際に、オブジェクトOBJの親オブジェクトの処理メタデータdを更新することができる。
なお、上述した説明では、オブジェクトOBJに関する利用目的およびファイルステータスに基づいて、オブジェクトOBJに対する処理の実行条件を決定することにしたが、これに限らない。例えば、生成部802は、オブジェクトOBJに関する利用目的およびファイルステータスのうちの利用目的のみに基づいて、オブジェクトOBJに対する処理の実行条件を決定することにしてもよい。すなわち、生成部802は、利用目的のみに応じて実行条件が決まるようなPMD生成ルールに従って、処理メタデータdを生成することにしてもよい。
また、上述した説明では、PMD生成ルールDB230を参照して、オブジェクトOBJに対する所定の処理の実行条件を決定することにしたが、これに限らない。例えば、生成部802は、ユーザの操作入力により、オブジェクトOBJに対する所定の処理の実行条件を受け付けることにしてもよい。
より詳細に説明すると、例えば、ファイル管理画面700のメニュー画面730において、ファイルステータスが選択された際に、オブジェクトOBJに対する所定の処理の実行条件を受け付ける入力画面を表示することにしてもよい。この場合、生成部802は、アプリAPLのファイル管理部810から、オブジェクトOBJに対する所定の処理の実行条件を受け付ける。
また、図5に示した処理メタデータdyのように、オブジェクトOBJに対する所定の処理の実行条件にコピー先等(例えば、dir1)が含まれる場合には、生成部802は、ユーザの操作入力により、コピー先等の指定を受け付けることにしてもよい。ただし、コピー先等は予め設定されていてもよい。
より詳細に説明すると、例えば、ファイル管理画面700において、ファイルステータスが選択されて処理メタデータdが生成される際に、コピー先等を受け付ける入力画面を表示することにしてもよい。この場合、生成部802は、アプリAPLのファイル管理部810から、オブジェクトOBJに対する所定の処理の実行条件に含まれるコピー先等の指定を受け付ける。
付与部803は、生成された処理メタデータdを、図5に示したPMDDB220に格納する。また、付与部803は、生成された処理メタデータdをオブジェクトOBJに付与する。具体的には、例えば、付与部803は、オブジェクトOBJであるファイルの先頭部分に、生成された処理メタデータdを格納する。
そして、付与部803は、処理メタデータdを付与したオブジェクトOBJを、例えば、OS(Operating System)のファイルシステムに渡す。これにより、オブジェクトOBJ(処理メタデータdを含む)が、例えば、メモリ302、ディスク304などの記憶装置に記憶される。
通信部805は、他の情報処理装置Mjとの間でイベントEの送受信を行う。受信したイベントEは処理実行部804に伝達される。また、通信部805は、他の情報処理装置Mjから、管理対象のオブジェクトOBJを取得する。具体的には、例えば、通信部805は、他の情報処理装置Mjから処理メタデータdが付与されたオブジェクトOBJを受信することにより、管理対象のオブジェクトOBJを取得する。
取得されたオブジェクトOBJに付与されている処理メタデータdは、PMDDB220に格納される。また、取得されたオブジェクトOBJ(処理メタデータdを含む)は、例えば、ファイルシステムに渡されて、メモリ302、ディスク304などの記憶装置に記憶される。
処理実行部804は、オブジェクトOBJに対する処理を実行する。具体的には、例えば、まず、処理実行部804は、イベントEを検知する。ここで、イベントEは、オブジェクトOBJに関連する他のオブジェクトに対して何らかの処理が行われたことを示す情報である。他のオブジェクトは、例えば、オブジェクトOBJの親オブジェクトや子オブジェクトである。イベントEには、例えば、他のオブジェクトのオブジェクトIDおよび状態が含まれる。
より具体的には、例えば、処理実行部804は、アプリAPLのファイル管理部810からイベントEを受け付けることにより、当該イベントEを検知する。例えば、動画共有アプリによって、ある動画ファイルに対して投稿処理が実行されたとする。この場合、処理実行部804は、動画共有アプリのファイル管理部810から、投稿された動画ファイルのオブジェクトIDおよび状態「shared」を含むイベントEを受け付ける。
つぎに、処理実行部804は、PMDDB220を参照して、検知したイベントEが、処理メタデータdが示す実行条件を満たすか否かを判断する。より具体的には、例えば、処理実行部804は、PMDDB220から、イベントEに含まれるオブジェクトIDが、親オブジェクトIDに設定、あるいは、子オブジェクトリストに含まれる処理メタデータdを検索する。
そして、処理実行部804は、イベントEに含まれる状態が、検索した処理メタデータdの待ちイベントに合致するか否かを判断する。例えば、イベントEに含まれる状態が「shared」で、処理メタデータdの待ちイベントが「shared」の場合、処理実行部804は、待ちイベントに合致すると判断する。一方、イベントEに含まれる状態が「shared」で、処理メタデータdの待ちイベントが「sent」の場合、処理実行部804は、待ちイベントに合致しないと判断する。
ここで、イベントEに含まれる状態が待ちイベントに合致する場合、処理実行部804は、イベントEが、処理メタデータdが示す実行条件を満たすと判断する。一方、イベントEに含まれる状態が待ちイベントに合致しない場合には、処理実行部804は、イベントEが、処理メタデータdが示す実行条件を満たさないと判断する。
そして、処理実行部804は、イベントEが、処理メタデータdが示す実行条件(処理条件)を満たす場合、処理メタデータdの処理条件のアクション部に定義された所定の処理を、オブジェクトOBJに対して実行する。例えば、アクション部に定義された所定の処理が「delete」の場合、処理実行部804は、処理メタデータdのオブジェクトIDを指定して、当該オブジェクトIDのオブジェクトOBJの削除処理をファイルシステムに依頼する。
なお、オブジェクトOBJに対して何らかの処理が実行された場合、当該オブジェクトOBJの処理メタデータdに含まれるオブジェクトOBJの状態が更新される。また、オブジェクトOBJに対する削除処理が実行された場合、当該オブジェクトOBJの処理メタデータdは、例えば、PMDDB220から削除される。
また、アクション部に定義された所定の処理が「copy(dir1)」の場合、処理実行部804は、処理メタデータdのオブジェクトIDを指定して、当該オブジェクトIDのオブジェクトOBJのdir1へのコピー処理をファイルシステムに依頼する。
また、アクション部に定義された所定の処理が「notify」の場合、処理実行部804は、検知したイベントEに基づいて、オブジェクトOBJに関連する他のオブジェクトを宛先とする新たなイベントEを発行する。新たなイベントEには、例えば、オブジェクトOBJのオブジェクトIDと、検知したイベントEに含まれる他のオブジェクトの状態と、が含まれる。オブジェクトOBJのオブジェクトIDは、宛先である他のオブジェクトを特定するための情報となる。
なお、処理実行部804は、自ら発行した新たなイベントEについても検知して、アプリAPLのファイル管理部810からのイベントEを検知したときと同様に、上述した一連の処理を行う。これにより、関連するオブジェクト間でイベントEが順次通知されて、処理が連鎖することになる。
また、処理実行部804は、処理条件のアクション部に順序不定実行する複数の処理が定義されている場合には、複数の処理それぞれを順序不定で実行する。また、処理実行部804は、処理条件のアクション部に連続実行する複数の処理が定義されている場合には、複数の処理それぞれを連続実行、すなわち一つの処理の完了を待って次の処理を実行する。
なお、処理メタデータdが示す実行条件(処理条件)をイベントEが満たさない場合、処理実行部804は、処理メタデータdの処理条件のアクション部に定義された所定の処理を、オブジェクトOBJに対して実行しない。
通信部805は、処理実行部804によって発行されたイベントEを他の情報処理装置Mjに送信する。具体的には、例えば、通信部805は、図3に示したI/F305により、他の情報処理装置MjにイベントEをブロードキャストする。
また、通信部805は、他の情報処理装置MjからイベントEを受信する。この場合、処理実行部804は、通信部805によって受信されたイベントEを検知して、アプリAPLのファイル管理部810からのイベントEを検知したときと同様に、上述した一連の処理を行う。
また、処理実行部804は、オブジェクトOBJの状態が、当該オブジェクトOBJの処理メタデータdの許可条件を満たす場合には、当該許可条件で定義された特定の処理の実行を許可または不許可とする。具体的には、例えば、処理実行部804は、オブジェクトOBJに対して所定の処理を実行した結果、オブジェクトOBJの状態が、許可条件の条件部に定義された状態と合致する場合に、処理メタデータdの許可条件を満たすと判断する。
そして、処理実行部804は、処理メタデータdの許可条件を満たす場合、許可条件のアクション部に定義された特定の処理の実行を許可または不許可とする。例えば、アクション部に定義された特定の処理が「!deletable」の場合、処理実行部804は、オブジェクトOBJに対する削除処理の実行を不許可とする。
なお、オブジェクトOBJに対する特定の処理の実行を許可または不許可とする手法としては、任意の手法を用いることができる。例えば、処理実行部804は、アプリAPLに対して、オブジェクトOBJに対する特定の処理の実行を許可または不許可とすることを通知することにしてもよい。この場合、アプリAPLにおいて、通知内容に応じてオブジェクトOBJに対する特定の処理の実行が制御される。
(情報処理装置Miの各種処理手順)
つぎに、図9〜図12を用いて、実施の形態2にかかる情報処理装置Miの各種処理手順について説明する。ここでは、まず、図9を用いて、情報処理装置MiのPMD生成処理手順について説明する。
図9は、実施の形態2にかかる情報処理装置MiのPMD生成処理手順の一例を示すフローチャートである。図9のフローチャートにおいて、まず、情報処理装置Miは、管理対象のオブジェクトOBJに関する利用目的の選択を受け付けたか否かを判断する(ステップS901)。ここで、情報処理装置Miは、利用目的の選択を受け付けるのを待つ(ステップS901:No)。
そして、情報処理装置Miは、利用目的の選択を受け付けた場合(ステップS901:Yes)、オブジェクトOBJのファイルステータスの選択を受け付けたか否かを判断する(ステップS902)。ここで、情報処理装置Miは、ファイルステータスの選択を受け付けるのを待つ(ステップS902:No)。
そして、情報処理装置Miは、ファイルステータスの選択を受け付けた場合(ステップS902:Yes)、オブジェクトOBJの処理メタデータdを生成する(ステップS903)。具体的には、情報処理装置Miは、PMD生成ルールDB230を参照して、選択されたオブジェクトOBJに関する利用目的およびファイルステータスに基づいて、処理メタデータdを生成する。
つぎに、情報処理装置Miは、生成した処理メタデータdをオブジェクトOBJに付与し(ステップS904)、処理メタデータdをPMDDB220に格納する(ステップS905)。そして、情報処理装置Miは、親オブジェクトがあるか否かを判断する(ステップS906)。
ここで、親オブジェクトがある場合(ステップS906:Yes)、情報処理装置Miは、PMDDB220から親オブジェクトの処理メタデータdを検索する(ステップS907)。そして、情報処理装置Miは、検索した処理メタデータdの子オブジェクトリストにオブジェクトOBJのオブジェクトIDを登録して(ステップS908)、本フローチャートによる一連の処理を終了する。
一方、ステップS906において、親オブジェクトがない場合(ステップS906:No)、情報処理装置Miは、子オブジェクト登録イベントを他の情報処理装置Mjにブロードキャストして(ステップS909)、本フローチャートによる一連の処理を終了する。
これにより、管理対象のオブジェクトOBJの処理メタデータdを生成して、生成した処理メタデータdをオブジェクトOBJに付与するとともにPMDDB220に格納することができる。
つぎに、図10および図11を用いて、情報処理装置Miの処理実行処理手順について説明する。
図10および図11は、実施の形態2にかかる情報処理装置Miの処理実行処理手順の一例を示すフローチャートである。図10のフローチャートにおいて、まず、情報処理装置Miは、イベントEを検知したか否かを判断する(ステップS1001)。ここで、情報処理装置Miは、イベントEを検知するのを待つ(ステップS1001:No)。
そして、情報処理装置Miは、イベントEを検知した場合(ステップS1001:Yes)、PMDDB220から、検知したイベントEが実行条件を満たす処理メタデータdを検索する(ステップS1002)。具体的には、例えば、情報処理装置Miは、イベントEに含まれるオブジェクトIDが、親オブジェクトIDに設定、あるいは、子オブジェクトリストに含まれ、かつ、イベントEに含まれる状態が待ちイベントに合致する処理メタデータdを検索する。
つぎに、情報処理装置Miは、処理メタデータdが検索されたか否かを判断する(ステップS1003)。ここで、処理メタデータdが検索されなかった場合(ステップS1003:No)、情報処理装置Miは、本フローチャートによる一連の処理を終了する。
一方、処理メタデータdが検索された場合(ステップS1003:Yes)、情報処理装置Miは、検索された処理メタデータdをPMDリストに登録する(ステップS1004)。つぎに、情報処理装置Miは、PMDリストから選択されていない未選択の処理メタデータdを選択する(ステップS1005)。
そして、情報処理装置Miは、選択した処理メタデータdから処理条件を取得して(ステップS1006)、図11に示すステップS1101に移行する。
図11のフローチャートにおいて、まず、情報処理装置Miは、取得した処理条件のアクション部から選択されていない未選択の処理を選択する(ステップS1101)。この際、情報処理装置Miは、連続実行する処理(例えば、−>で接続された2つの処理)については一括して選択する。
つぎに、情報処理装置Miは、選択した処理が連続実行する処理であるか否かを判断する(ステップS1102)。ここで、連続実行する処理ではない場合(ステップS1102:No)、情報処理装置Miは、アクション実行処理を実行して(ステップS1103)、ステップS1107に移行する。
なお、アクション実行処理の具体的な処理手順については、図12を用いて後述する。
一方、連続実行する処理の場合(ステップS1102:Yes)、情報処理装置Miは、連続実行する2つの処理の前の処理について、第1のアクション実行処理を実行する(ステップS1104)。そして、情報処理装置Miは、第1のアクション実行処理が終了したか否かを判断する(ステップS1105)。
ここで、情報処理装置Miは、第1のアクション実行処理が終了するのを待つ(ステップS1105:No)。そして、情報処理装置Miは、第1のアクション実行処理が終了した場合(ステップS1105:Yes)、連続実行する2つの処理の後ろの処理について、第2のアクション実行処理を実行する(ステップS1106)。
なお、第1および第2のアクション実行処理の具体的な処理手順については、後述の図12に示すアクション実行処理の具体的な処理手順と同様のため、ここでは図示および説明を省略する。
つぎに、情報処理装置Miは、取得した処理条件のアクション部から選択されていない未選択の処理があるか否かを判断する(ステップS1107)。ここで、未選択の処理がある場合(ステップS1107:Yes)、情報処理装置Miは、ステップS1101に戻る。
一方、未選択の処理がない場合(ステップS1107:No)、情報処理装置Miは、PMDリストから選択されていない未選択の処理メタデータdがあるか否かを判断する(ステップS1108)。ここで、未選択の処理メタデータdがある場合(ステップS1108:Yes)、情報処理装置Miは、図10に示したステップS1005に戻る。
一方、未選択の処理メタデータdがない場合(ステップS1108:No)、情報処理装置Miは、本フローチャートによる一連の処理を終了する。
これにより、検知したイベントEに応じて、処理メタデータdの処理条件のアクション部に定義された所定の処理を自律的に実行することができる。
つぎに、図12を用いて、図11に示したステップS1103のアクション実行処理の具体的な処理手順について説明する。
図12は、アクション実行処理の具体的処理手順の一例を示すフローチャートである。図12のフローチャートにおいて、まず、情報処理装置Miは、図10に示したステップS1005において選択した処理メタデータdからオブジェクトIDを取得する(ステップS1201)。
つぎに、情報処理装置Miは、図11に示したステップS1101において選択した処理が「delete」であるか否かを判断する(ステップS1202)。ここで、「delete」の場合(ステップS1202:Yes)、情報処理装置Miは、取得したオブジェクトIDを指定して、当該オブジェクトIDのオブジェクトOBJに対する削除処理をファイルシステムに依頼して(ステップS1203)、アクション実行処理を呼び出したステップに戻る。
また、ステップS1202において、「delete」ではない場合(ステップS1202:No)、選択した処理が「copy(dir1)」であるか否かを判断する(ステップS1204)。ここで、「copy(dir1)」の場合(ステップS1204:Yes)、情報処理装置Miは、取得したオブジェクトIDを指定して、当該オブジェクトIDのオブジェクトOBJのdir1へのコピー処理をファイルシステムに依頼して(ステップS1205)、アクション実行処理を呼び出したステップに戻る。
また、ステップS1204において、「copy(dir1)」ではない場合(ステップS1204:No)、選択した処理が「notify」であるか否かを判断する(ステップS1206)。ここで、「notify」の場合(ステップS1206:Yes)、情報処理装置Miは、図10に示したステップS1001において検知したイベントEに基づいて、オブジェクトOBJに関連する他のオブジェクトを宛先とする新たなイベントEを発行し(ステップS1207)、アクション実行処理を呼び出したステップに戻る。
一方、「notify」ではない場合(ステップS1206:No)、情報処理装置Miは、アクション部に定義された処理を実行できない旨のエラーを出力して(ステップS1208)、アクション実行処理を呼び出したステップに戻る。
これにより、処理メタデータdの処理条件のアクション部に定義されたdelete、copy(dir1)およびnotifyのいずれかの処理を実行することができる。
以上説明したように、実施の形態2にかかる情報処理装置Miによれば、検知したイベントEが示す他のオブジェクト(親オブジェクト、子オブジェクト)の状態が、処理メタデータdが示す実行条件を満たすか否かを判断することができる。そして、情報処理装置Miによれば、処理メタデータdが示す実行条件を満たす場合に、処理メタデータdに定義された所定の処理を、オブジェクトOBJに対して実行することができる。所定の処理は、例えば、オブジェクトOBJに対する削除処理や特定の格納場所へのコピー処理などである。実行条件としては、例えば、他のオブジェクトの状態が、投稿処理、転送処理、および、特定のストレージへの格納処理のいずれかの処理が実行された状態であるなどの条件が設定される。
これにより、親オブジェクトや子オブジェクトがSNS等へ投稿されたり、電子メールに添付されて転送されたり、特定のストレージへ格納されたことに応じて、オブジェクトOBJに対する削除処理や特定の格納場所へのコピー処理を自動実行することができる。
また、情報処理装置Miによれば、処理メタデータdが示す実行条件を満たす場合に、検知したイベントEに基づいて、オブジェクトOBJに関連する他のオブジェクトを宛先とする新たなイベントEを発行することができる。これにより、関連するオブジェクト間で処理を連鎖させることができる。
また、情報処理装置Miによれば、オブジェクトOBJに対して所定の処理を実行した結果、オブジェクトOBJの状態が、処理メタデータdが示す許可条件を満たす場合、オブジェクトOBJに対する特定の処理の実行を許可または不許可とすることができる。これにより、イベントEに基づき変化するオブジェクトOBJの状態に応じて、オブジェクトOBJに対する削除処理や編集処理等の実行を許可したり、不許可としたりすることができる。
また、情報処理装置Miによれば、オブジェクトOBJに関する利用目的の選択を受け付け、選択された利用目的に基づいて、予め規定されたPMD生成ルールに従って、オブジェクトOBJの処理メタデータdを生成することができる。そして、情報処理装置Miによれば、生成した処理メタデータdを、オブジェクトOBJに付与するとともに、PMDDB220に格納することができる。これにより、オブジェクトOBJに関する利用目的に応じて処理メタデータdを自動生成することができる。
これらのことから、実施の形態2にかかる情報処理システム200によれば、各オブジェクトOBJに関する情報を一元管理しなくても、各情報処理装置Miにおいて、ユーザが事前に意図したオブジェクトOBJに対する処理を自律的に実行することができる。これにより、オブジェクトOBJについて事前に意図した処理を忘れずに実行するための人手による管理作業を軽減することができる。また、オブジェクトOBJの保存先を変更しても、オブジェクト間の関係をシステム側で管理できるため、リンク切れ等を防ぐことができる。
(実施の形態3)
つぎに、実施の形態3にかかる情報処理方法について説明する。なお、実施の形態1,2で説明した箇所と同様の箇所については説明を省略する。
実施の形態3では、複数のフェーズのうちの特定のフェーズに遷移したことを示すイベントを検出したことに応じて、管理対象のオブジェクトOBJに対して所定の処理を実行する情報処理方法について説明する。フェーズとは、プロジェクトや事業の成長、発展段階をあらわす単位である。
図13は、実施の形態3にかかる情報処理方法の一実施例を示す説明図である。図13において、あるプロジェクトに関するフェーズ1(start)、フェーズ2(mid)、フェーズ3(pre−final)およびフェーズ4(final)が示されている。また、フェーズ1においてファイルfaが生成され、フェーズ2においてファイルfb,fcが生成され、フェーズ3においてファイルfa’が生成されている。
各ファイルfa,fb,fc,fa’は、管理対象のオブジェクトOBJであり、例えば、システムの開発途中に生成される仕様書、ソースプログラム、テスト仕様書、テスト結果などである。各ファイルfa,fb,fc,fa’には、処理メタデータda,db,dc,da’がそれぞれ付与されている。処理メタデータda,db,dc,da’は、PMDDB220に記憶される。各処理メタデータda,db,dc,da’は、例えば、各ファイルfa,fb,fc,fa’の生成時に生成される。
具体的には、例えば、情報処理装置Miは、あるプロジェクトの進行の中で複数のフェーズのうちの特定のフェーズの選択を受け付ける。また、情報処理装置Miは、各オブジェクトOBJについて、特定のフェーズへ進んだイベントを検知して所定の処理の選択を受け付ける。ここで、特定のフェーズは、オブジェクトOBJに対して所定の処理を実行するタイミングとなるフェーズである。
所定の処理は、任意に設定可能であり、例えば、オブジェクトOBJに対する削除処理や特定の格納場所(フォルダ、ディレクトリ等)へのコピー処理などである。また、所定の処理は、ユーザへの通知処理、例えば、予め設定された宛先へのメッセージの通知などであってもよい。特定のフェーズおよび所定の処理の選択は、例えば、アプリAPLによって表示されるメニュー画面において行われる。メニュー画面に表示される所定の処理の候補は、任意に設定可能である。
また、所定の処理として、特定の格納場所へのコピー処理が選択された場合は、さらに、情報処理装置Miは、特定の格納場所の選択を受け付ける。ただし、コピー先となる特定の格納場所は、処理メタデータdの生成時には決まっていない場合がある。したがって、特定の格納場所は、例えば、処理メタデータdの生成時は特定の格納場所を表す変数を指定しておき、フェーズの遷移時に当該変数に与える情報をユーザに問い合わせることにしてもよい。
そして、情報処理装置Miは、各オブジェクトOBJについて、選択された特定のフェーズおよび所定の処理に基づいて、処理メタデータdを生成する。具体的には、例えば、情報処理装置Miは、特定のフェーズへの遷移を、オブジェクトOBJに対する所定の処理の実行条件とする処理メタデータdを生成する。
ここで、ファイルfaの処理メタデータdaは、フェーズ3(pre−final)に遷移すると、ファイルfaのdir1へのコピー処理を実行することを示している。dir1は、特定の格納場所を表す変数である。ファイルfbの処理メタデータdbは、フェーズ4(final)に遷移すると、ファイルfbのfinalへのコピー処理とファイルfbに対する削除処理を順序不定で実行することを示している。finalは、特定の格納場所を表す変数である。
ファイルfcの処理メタデータdcは、フェーズ4(final)に遷移すると、ファイルfcのfinalへのコピー処理とファイルfcに対する削除処理を順序不定で実行することを示している。ファイルfa’の処理メタデータda’は、フェーズ4(final)に遷移すると、ファイルfa’のfinalへのコピー処理を実行することを示している。なお、各処理メタデータda,db,dc,da’には、各ファイルfa,fb,fc,fa’を識別するオブジェクトIDが含まれる。
フェーズの遷移は、ユーザによって判断される。そして、フェーズの遷移指示は、例えば、入力装置307を用いたユーザの操作入力により行われ、不図示のフェーズ管理アプリのフェーズ管理部によって受け付けられる。フェーズ管理アプリは、情報処理装置Mi上で実行されるアプリAPLの一例である。
具体的には、例えば、フェーズ管理アプリにより、複数のフェーズからいずれかのフェーズを選択する、あるいは、遷移先のフェーズを指定するメニュー画面を表示することにしてもよい。この際、フェーズ管理アプリにより、特定の格納場所を表す変数に与える情報を問い合わせるメニュー画面を表示することにしてもよい。
フェーズ管理アプリのフェーズ管理部は、フェーズの遷移指示を受け付けると、受付部801に通知する。特定の格納場所を表す変数に与える情報が入力された場合、フェーズの遷移指示には、当該変数に与える情報、すなわち、特定の格納場所を示す情報が含まれる。
受付部801は、フェーズの遷移指示を受け付けた場合、イベントE’を発行する。イベントE’は、処理実行部804および他の情報処理装置Mjに通知される。イベントE’には、遷移先のフェーズを示す情報が含まれる。また、フェーズの遷移指示に、特定の格納場所を表す変数に与える情報が含まれる場合がある。この場合、イベントE’には、さらに、特定の格納場所を表す変数に与える情報が含まれる。
例えば、フェーズ3への遷移指示を受け付けた場合、イベントE’1が発行される。イベントE’1には、遷移先のフェーズを示す情報「pre−final」と、特定の格納場所を表す変数「@dir1」に与える情報「./temp/」と、が含まれる。
この場合、処理実行部804は、イベントE’1を検知したことに応じて、PMDDB220から、検知したイベントE’1が実行条件を満たす処理メタデータdを検索する。図13の例では、イベントE’1が示すフェーズ3(pre−final)への遷移を実行条件とする処理メタデータdaが検索される。
そして、処理実行部804は、ファイルfaに対して、検索した処理メタデータdaに定義された所定の処理を実行する。具体的には、例えば、処理実行部804は、ファイルfaに対して、「./temp/」へのコピー処理を実行する。より詳細に説明すると、処理実行部804は、処理メタデータdaに含まれるファイルfaのオブジェクトIDを指定して、ファイルfaの「./temp/」へのコピー処理をファイルシステムに依頼する。
これにより、フェーズ3(pre−final)に遷移したことに応じて、フェーズ1(start)において生成したファイルfaをtempディレクトリに格納することができる。
また、フェーズ4への遷移指示を受け付けた場合、イベントE’2が発行される。イベントE’2には、遷移先のフェーズを示す情報「final」と、特定の格納場所を表す変数「@final」に与える情報「./outputs/」と、が含まれる。
この場合、処理実行部804は、イベントE’2を検知したことに応じて、PMDDB220から、検知したイベントE’2が実行条件を満たす処理メタデータdを検索する。図13の例では、イベントE’2が示すフェーズ4(final)への遷移を実行条件とする処理メタデータdb,dc,da’が検索される。
そして、処理実行部804は、各ファイルfb,fc,fa’に対して、検索した処理メタデータdb,dc,da’に定義された所定の処理を実行する。具体的には、例えば、処理実行部804は、ファイルfbに対して「./outputs/」へのコピー処理を実行するとともに、ファイルfbに対する削除処理を実行する。
また、処理実行部804は、ファイルfcに対して「./outputs/」へのコピー処理を実行するとともに、ファイルfcに対する削除処理を実行する。また、処理実行部804は、ファイルfa’に対して「./outputs/」へのコピー処理を実行する。
これにより、フェーズ4(final)に遷移したことに応じて、フェーズ2、フェーズ3およびフェーズ4それぞれにおいて生成したファイルfb,fc,fa’を、outputsディレクトリにまとめて格納することができる。
以上説明したように、実施の形態3にかかる情報処理装置Miによれば、複数のフェーズのうちの特定のフェーズに遷移したことを示すイベントを検出したことに応じて、管理対象のオブジェクトOBJに対して所定の処理を実行することができる。これにより、特定のフェーズに遷移した際に、例えば、複数の中間成果物を同じディレクトリ等に自動でまとめることができる。
(実施の形態4)
つぎに、実施の形態4にかかる情報処理方法について説明する。実施の形態4では、管理対象のオブジェクトOBJとして、物品を例に挙げて説明する。なお、実施の形態1〜3で説明した箇所と同様の箇所については説明を省略する。
図14は、実施の形態4にかかる情報処理方法の一実施例を示す説明図である。図14において、情報処理システム1400は、情報処理装置M1〜M4と、管理装置1410とを含む。情報処理装置M1〜M4は、物品1401〜1404にそれぞれ設けられる。
物品1401〜1404は、管理対象のオブジェクトOBJであり、同一番号の枝番で管理される物品群である。物品1401〜1404は、例えば、RFID(Radio Frequency Identification)のリーダライタ装置に付属して購入されるアンテナ群や、PCに付属して購入されるマウス群などである。
情報処理装置M1〜M4は、例えば、IC(Integrated Circuit)タグと、出力装置と、を有する。出力装置は、例えば、LED(Light Emitting Diode)やスピーカなどである。情報処理装置M1〜M4には、管理装置1410によって生成された処理メタデータd1〜d4が付与される。
管理装置1410は、処理メタデータd1〜d4を生成して、情報処理装置M1〜M4に付与するコンピュータである。管理装置1410は、例えば、リーダライタ装置やPCなどである。各処理メタデータd1〜d4は、例えば、各情報処理装置M1〜M4のICタグに記録される。
処理メタデータd1〜d4は、所定の処理の実行条件を示す。所定の処理は、任意に設定可能であり、例えば、LEDを点灯あるいは点滅させる処理や、スピーカから音声やブザー音を出力する処理などである。実行条件は、任意に設定可能であり、例えば、棚卸イベントや廃棄イベントなどの物品1401〜1404に共通するイベントの発生である。処理メタデータd1〜d4には、物品1401〜1404に共通する番号(以下、「グループID」という)、例えば、枝番の上位の番号が含まれる。
ここで、各情報処理装置Mi(i=1,2,3,4)は、受付部1421と、処理実行部1422と、通信部1423と、を有する。受付部1421〜通信部1423は制御部となる機能であり、具体的には、例えば、図3に示したメモリ302に記憶されたプログラムをCPU301に実行させることにより、または、I/F305により、その機能を実現する。各機能部の処理結果は、例えば、メモリ302に記憶される。なお、情報処理装置Miは、図3に示した構成部のうち、ディスクドライブ303、ディスク304、ディスプレイ306および入力装置307を有していなくてもよい。
受付部1421は、イベントE”を受け付ける。イベントE”は、例えば、棚卸イベントや廃棄イベントなどである。棚卸イベントとは、物品の棚卸しを行うよう要求するイベントである。廃棄イベントとは、物品を廃棄するよう要求するイベントである。具体的には、例えば、受付部1421は、管理装置1410からイベントE”を受け付ける。
また、受付部1421は、例えば、図3に示した入力装置307を用いたユーザの操作入力により、イベントE”を受け付けることにしてもよい。イベントE”には、グループIDが含まれていてもよい。これにより、同一番号の枝番で管理されるような物品群を対象としてイベントを投げることができる。
処理実行部1422は、受け付けられたイベントE”を検知し、当該イベントE”が、処理メタデータdiが示す所定の処理の実行条件を満たすか否かを判断する。例えば、処理メタデータdiが示す実行条件が棚卸イベントの発生の場合、処理実行部1422は、イベントE”が棚卸イベントであるか否かを判断する。
また、イベントE”にグループIDが含まれる場合、処理実行部1422は、当該グループIDが処理メタデータdiに含まれるグループIDと一致するか否かを判断することにしてもよい。そして、処理実行部1422は、グループIDが一致する場合に、イベントE”が、処理メタデータdiが示す実行条件を満たすか否かを判断することにしてもよい。これにより、情報処理装置Miが設けられた物品を対象としないイベントを判断対象から除外することができる。
処理実行部1422は、イベントE”が実行条件を満たす場合、処理メタデータdiに定義された所定の処理を実行する。例えば、所定の処理がLEDを点滅させる処理の場合、処理実行部1422は、LEDを点滅させる処理を実行する。また、例えば、所定の処理がスピーカから予め記録された音声を出力する処理の場合、処理実行部1422は、スピーカから予め記録された音声を出力する処理を実行する。
これにより、処理メタデータdiが示す実行条件を満たすイベントE”を検知した際に、例えば、LEDを点灯あるいは点滅させたり、スピーカから音声やブザー音を出力したりして、自装置の存在を知らせることができる。
通信部1423は、処理実行部1422によってイベントE”が実行条件を満たすと判断された場合、当該イベントE”を他の情報処理装置Mjに通知する。具体的には、例えば、通信部1423は、Bluetooth(登録商標)などの近距離無線通信により、処理メタデータdiに含まれるグループIDを指定してイベントE”をブロードキャストする。
これにより、自装置と同じグループIDを持つ物品群(例えば、物品1401〜1404)に対してイベントE”を通知することができる。
また、通信部1423は、他の情報処理装置MjからイベントE”を受信した場合、当該イベントE”を処理実行部1422に通知する。これにより、処理実行部1422は、他の情報処理装置MjからのイベントE”を検知して、当該イベントE”が、処理メタデータdiが示す所定の処理の実行条件を満たすか否かを判断することができる。
通信部1423は、他の情報処理装置MjからイベントE”を受信した場合、受信したらマルチホップ通信により転送することにしてもよい。
(情報処理装置Miの処理実行処理手順)
つぎに、図15を用いて、実施の形態4にかかる情報処理装置Miの処理実行処理手順について説明する。
図15は、実施の形態4にかかる情報処理装置Miの処理実行処理手順の一例を示すフローチャートである。図15のフローチャートにおいて、まず、情報処理装置Miは、イベントE”を検知したか否かを判断する(ステップS1501)。ここで、情報処理装置Miは、イベントE”を検知するのを待つ(ステップS1501:No)。
そして、情報処理装置Miは、イベントE”を検知した場合(ステップS1501:Yes)、イベントE”が、ICタグに記録された処理メタデータdiが示す所定の処理の実行条件を満たすか否かを判断する(ステップS1502)。ここで、イベントE”が実行条件を満たさない場合(ステップS1502:No)、情報処理装置Miは、本フローチャートによる一連の処理を終了する。
一方、イベントE”が、処理メタデータdiが示す実行条件を満たす場合(ステップS1502:Yes)、情報処理装置Miは、近距離無線通信により、処理メタデータdiに含まれるグループIDを指定してイベントE”をブロードキャストする(ステップS1503)。
そして、情報処理装置Miは、処理メタデータdiに定義された所定の処理を実行して(ステップS1504)、本フローチャートによる一連の処理を終了する。これにより、棚卸や廃棄などのイベントE”が発生した際に、まとめて管理される物品群の間でイベントE”を受け渡して所定の処理を実行することができる。
以上説明したように、実施の形態4にかかる情報処理装置Miによれば、検知したイベントE”が、処理メタデータdiが示す所定の処理の実行条件を満たすか否かを判断することができる。そして、情報処理装置Miによれば、イベントE”が実行条件を満たす場合、処理メタデータdiに定義された所定の処理を実行するとともに、当該イベントE”を他の情報処理装置Mjに通知することができる。
これにより、例えば、棚卸イベントや廃棄イベント等を検知した際に、各情報処理装置Miにおいて、LEDを点灯あるいは点滅させたり、スピーカから音声やブザー音を出力したりして、自装置の存在をアピールすることができる。このため、棚卸や廃棄時に対象となる物品群を探し出すユーザの手間や作業時間を削減して、資産管理作業の効率化を図ることができる。
例えば、ユーザは、棚卸時に、リーダライタ装置(管理装置1410)を用いて、棚卸対象の情報処理装置M1〜M4のうちのいずれかの情報処理装置Miに対して棚卸イベントを発行するだけで、各情報処理装置M1〜M4の所在を把握しやすくなる。なお、棚卸や廃棄が済んだ際に管理装置1410からイベントを発行して、PC等で管理される帳簿に反映することにしてもよい。
本実施の形態で説明した情報処理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本情報処理プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO(Magneto−Optical disk)、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本情報処理プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)管理対象のオブジェクトに付与されるメタデータであり、前記オブジェクトに対する所定の処理の実行条件を示す前記メタデータを記憶する記憶部と、
イベントを検知したことに応じて、前記記憶部を参照して、検知した前記イベントが、前記メタデータが示す実行条件を満たす場合に、前記オブジェクトに対して前記所定の処理を実行する制御部と、
を有することを特徴とする情報処理装置。
(付記2)前記メタデータは、さらに、オブジェクト間の関係性を示し、
前記制御部は、
前記オブジェクトに関連する他のオブジェクトにかかるイベントを検知したことに応じて、前記イベントが示す前記他のオブジェクトの状態が、前記メタデータが示す実行条件を満たす場合に、前記オブジェクトに対して前記所定の処理を実行する、ことを特徴とする付記1に記載の情報処理装置。
(付記3)前記所定の処理は、前記オブジェクトに対する削除処理または特定の格納場所へのコピー処理である、ことを特徴とする付記2に記載の情報処理装置。
(付記4)前記実行条件は、前記他のオブジェクトの状態が、投稿処理、転送処理、および、特定のストレージへの格納処理のいずれかの処理が実行された状態となることを条件とする、ことを特徴とする付記2または3に記載の情報処理装置。
(付記5)前記制御部は、
前記メタデータが示す実行条件を満たす場合、検知した前記イベントに基づいて、前記オブジェクトに関連する他のオブジェクトを宛先とする新たなイベントを発行する、ことを特徴とする付記1〜4のいずれか一つに記載の情報処理装置。
(付記6)前記実行条件は、複数のフェーズのうちの特定のフェーズへの遷移であり、
前記制御部は、
前記特定のフェーズに遷移したことを示すイベントを検出したことに応じて、前記オブジェクトに対して前記所定の処理を実行する、ことを特徴とする付記1に記載の情報処理装置。
(付記7)前記所定の処理は、前記オブジェクトに対する削除処理または特定の格納場所へのコピー処理である、ことを特徴とする付記6に記載の情報処理装置。
(付記8)前記オブジェクトは、データである、ことを特徴とする付記1〜7のいずれか一つに記載の情報処理装置。
(付記9)前記制御部は、
管理対象のオブジェクトに関する利用目的の選択を受け付け、
選択された前記利用目的に基づいて、予め規定された生成ルールに従って、前記メタデータを生成し、
生成した前記メタデータを、前記オブジェクトに付与するとともに前記記憶部に記憶する、ことを特徴とする付記1に記載の情報処理装置。
(付記10)前記制御部は、
他の情報処理装置から管理対象のオブジェクトを取得し、
取得した前記オブジェクトに付与された、前記オブジェクトに対する所定の処理の実行条件を示すメタデータを前記記憶部に記憶する、ことを特徴とする付記1に記載の情報処理装置。
(付記11)前記メタデータは、前記オブジェクトに対する特定の処理の許可条件を示し、
前記制御部は、
前記オブジェクトに対して前記所定の処理を実行した結果、前記オブジェクトの状態が前記許可条件を満たす場合、前記オブジェクトに対する前記特定の処理の実行を許可または不許可とする、ことを特徴とする付記1〜10のいずれか一つに記載の情報処理装置。
(付記12)複数の情報処理装置を含む情報処理システムであって、
前記複数の情報処理装置のそれぞれが、
管理対象のオブジェクトに付与されるメタデータであり、前記オブジェクトに対する所定の処理の実行条件を示す前記メタデータを記憶する記憶部と、
イベントを検知したことに応じて、前記記憶部を参照して、検知した前記イベントが、前記メタデータが示す実行条件を満たす場合に、前記オブジェクトに対して前記所定の処理を実行する制御部と、
を有することを特徴とする情報処理システム。
(付記13)コンピュータが、
イベントを検知し、
管理対象のオブジェクトに付与されるメタデータであり、前記オブジェクトに対する所定の処理の実行条件を示す前記メタデータを記憶する記憶部を参照して、検知した前記イベントが、前記メタデータが示す実行条件を満たす場合に、前記オブジェクトに対して前記所定の処理を実行する、
処理を実行することを特徴とする情報処理方法。
(付記14)コンピュータに、
イベントを検知し、
管理対象のオブジェクトに付与されるメタデータであり、前記オブジェクトに対する所定の処理の実行条件を示す前記メタデータを記憶する記憶部を参照して、検知した前記イベントが、前記メタデータが示す実行条件を満たす場合に、前記オブジェクトに対して前記所定の処理を実行する、
処理を実行させることを特徴とする情報処理プログラム。