以下に図面を参照して、本発明にかかる情報処理装置、情報処理プログラムおよび情報処理方法の実施の形態を詳細に説明する。
(実施の形態)
(実施の形態にかかる情報処理システムにおいて生成される履歴情報)
図1は、実施の形態にかかる情報処理システムにおいて生成される履歴情報の一例を示す図である。実施の形態にかかる情報処理システムには、たとえば、A社システム110と、B社システム120と、企業間システム150と、が含まれる。A社システム110およびB社システム120は、互いに別環境の他システムである。環境とは、たとえばAtlasなどの履歴管理プログラムの実行環境である。Atlasは、企業内のデータ加工履歴情報を企業単位あるいは部署単位で管理する履歴管理プログラムであり、一例としてはApache Atlasである。
互いに別環境の他システムとは、たとえば、それぞれ独立した履歴管理プログラムが実行される各システムである。一例としては、A社システム110において第1のAtlasが実行され、B社システム120においてはA社システム110の第1のAtlasから独立した第2のAtlasが実行される。
したがって、A社システム110における履歴管理プログラムによる履歴管理と、B社システム120における履歴管理プログラムによる履歴管理と、は互いに独立している。たとえば、A社システム110は、A社によって運用されている情報処理装置により実現されるシステムである。B社システム120は、B社によって運用されている別の情報処理装置により実現されるシステムである。
企業間システム150(VPX_0)は、企業間(各企業のシステム間)のデータ取引を管理する管理システムの一例である。企業間のデータ取引の管理は、たとえば、Webサイトを用いた企業間のデータ取引の仲介や、企業間のデータ取引の履歴情報の記録や、企業間のデータ取引における決済などが含まれる。これらの各システムについては後述する(たとえば図2等参照)。履歴情報とは、処理の履歴を示す情報であり、たとえば後述のトランザクション(TX)である。
データは、たとえば取引対象となり得る電子データであり、たとえば自動車の運転中に収集されたブレーキタイミングの履歴などの情報である。一例としては、データは、文字列や数値などの値がマトリクス状に配列されたCSV(Comma-Separated Values)などのテーブルデータ(たとえば後述のデータXやデータY)である。また、データは、コンピュータによって実行されるプログラムの実行ファイル等のデータ(たとえば後述のロジックデータL)であってもよい。このプログラムは、たとえば上述のブレーキタイミングの履歴の情報が示すブレーキタイミングの評価値を算出するプログラムなどである。
たとえば、従来構成においては、それぞれAtlasなどを導入した各システムにおけるデータ加工等の履歴情報は、それぞれのシステムに閉じて管理されており、加工元のデータがいずれのシステムから提供されたものであるかを示す情報を含まない。したがって、整合性の取れた履歴情報を短時間で収集することが困難である。このため、別環境の他システムから提供されたデータについて、システムを跨いだデータ履歴の追跡が困難である。
そこで、実施の形態においては、別環境の他システムからデータを取得する際に、データ提供元を特定する情報を含む履歴情報の取得要求情報を取得し、それを含む新たな履歴情報を生成し、データと関連付けて記録する。これにより、整合性の取れた履歴情報を短時間で収集することが可能になるため、別環境の他システムから提供されたデータについて、システムを跨いだデータ履歴の追跡が容易になる。以下これらの処理について説明する。
まず、A社システム110が、所有していたデータの加工によりデータXを生成したとする。この場合に、A社システム110は、生成したデータXを自システムのメモリに記録するとともに、このデータXの生成の履歴情報であるデータ加工TX101を生成して自システムのメモリに記録する。TXは、たとえば、データの新規生成、データの加工、データの取引、データのダウンロードなどのひとまとまりの処理の履歴を示す履歴情報である。データ加工TX101は、A社システム110が記録する第1の履歴情報の一例である。
データ加工TX101には、データ加工TX101の識別情報であるTXID(“0x43ef582c”)が含まれる。また、データ加工TX101には、データXに関してデータ加工TX101の前に記録されたTXの所有者を示す加工元データTX所有者101a(“A社”)が含まれる。TXの所有者とは、たとえば、TXを生成し、生成したTXを記録しているシステムである。また、データ加工TX101には、データXに関してデータ加工TX101の前に記録されたTXの識別情報である加工元データTXID101b(“0x76a01ce0”)が含まれる。加工元データTX所有者101aおよび加工元データTXID101bは、データXの生成に用いられた加工前のデータの提供元を特定する情報の一例である。
上述のように、データXは、A社システム110が加工したデータである。したがって、データXに関してデータ加工TX101の前に記録されたTXは、A社システム110が、データXの加工元のデータを、新規生成、他のデータからの加工、他システムからのダウンロードなどにより得た際のTXである。このTXの所有者はA社システム110(“A社”)である。
つぎに、企業間システム150を用いてA社システム110からB社システム120へデータXが提供されたとする。たとえば、ポータル画面121は、企業間システム150から送信されてB社システム120において表示される、B社システム120がA社システム110からデータXを購入可能なWebサイトの画面である。ポータル画面121には、データXの購入ボタン122が含まれ、B社システム120のユーザの操作により購入ボタン122が押下されると、企業間システム150の仲介により、A社システム110からB社システム120がデータXを取得することができる。
この場合に、企業間システム150は、このA社システム110とB社システム120との間のデータXの取引の履歴情報であるデータ取引TX102を生成して自システムのメモリに記録する。データ取引TX102は、企業間システム150が記録する第3の履歴情報の一例である。
データ取引TX102には、データ取引TX102の識別情報であるTXID(“0x189ab0c1”)が含まれる。また、データ取引TX102には、データXに関してデータ取引TX102の前に記録されたTX(データ加工TX101)の所有者(A社システム110)を示す提供元データTX所有者102a(“A社”)が含まれる。提供元データTX所有者102aは、A社システム110の識別子の一例である。また、データ取引TX102には、データXに関してデータ取引TX102の前に記録されたTX(データ加工TX101)の識別情報である提供元データTXID102b(“0x43ef582c”)が含まれる。提供元データTXID102bは、データ加工TX101の識別子の一例である。
また、B社システム120は、上述の取引においてA社システム110からダウンロードしたデータXを自システムのメモリに記録する。また、B社システム120は、上述の取引におけるB社システム120によるデータXのダウンロードの履歴情報であるデータ加工TX103を生成して自システムのメモリに記録する。データ加工TX103は、B社システム120が記録する第2の履歴情報の一例である。
データ加工TX103には、データ加工TX103の識別情報であるTXID(“0xb4790a03”)が含まれる。また、データ加工TX103には、データXに関してデータ加工TX103の前に記録されたTX(データ取引TX102)の所有者(企業間システム150)を示す加工元データTX所有者103a(“VPX_0”)が含まれる。加工元データTX所有者103aは、企業間システム150の識別子の一例である。また、データ加工TX103には、データXに関してデータ加工TX103の前に記録されたTX(データ取引TX102)の識別情報である加工元データTXID103b(“0x189ab0c1”)が含まれる。加工元データTXID103bは、企業間システム150から通知されるデータ取引TX102(第3の履歴情報)の識別子の一例である。
加工元データTX所有者103aおよび加工元データTXID103bは、データ加工TX101(第1の履歴情報)をA社システム110に取得要求することが可能な取得要求情報の一例である。すなわち、加工元データTX所有者103aおよび加工元データTXID103bを用いて、企業間システム150およびA社システム110に対して順次履歴を要求することより、データ加工TX101をA社システム110から取得することができる。この手順については後述する。
つぎに、B社システム120が、企業間システム150を用いた取引により、他社システム(たとえば図2に示すC社システム130)からロジックデータLをダウンロードしたとする。ロジックデータLは、データ加工の処理を規定する加工処理データの一例である。データ加工の処理とは、たとえばデータを加工する手順や方法である。
データ加工の処理を規定する加工処理データは、たとえば人間がデータを加工する手順等をテキストや画像によって示すデータであってもよいし、コンピュータがデータを加工するためのプログラムであってもよい。企業間システム150は、この取引の履歴情報であるデータ取引TXについても生成するが、図示を省略する。B社システム120は、この取引におけるB社システム120によるロジックデータLのダウンロードの履歴情報であるデータ加工TX104を生成して自システムのメモリに記録する。
データ加工TX104には、データ加工TX104の識別情報であるTXID(“0xea55349f”)が含まれる。また、データ加工TX104には、ロジックデータLに関してデータ加工TX104の前に記録されたTXの所有者(企業間システム150)を示す加工元データTX所有者(“VPX_0”)が含まれる。また、データ加工TX104には、ロジックデータLに関してデータ加工TX104の前に記録されたTXの識別情報である加工元データTXID(“0xfc32470a”)が含まれる。
つぎに、B社システム120が、A社システム110からダウンロードしたデータXを、他社システムからダウンロードしたロジックデータLが示すロジックにより加工することによりデータYを生成したとする。この場合に、A社システム110は、生成したデータYを自システムのメモリに記録するとともに、このデータYの生成の履歴情報であるデータ加工TX105を生成して自システムのメモリに記録する。データ加工TX105は、データY(他のデータ)の第4の履歴情報の一例である。
データ加工TX105には、データ加工TX105の識別情報であるTXID(“0x240d8112”)が含まれる。また、データ加工TX105には、データYに関してデータ加工TX105の前に記録されたTX(データ加工TX103)の所有者(B社システム120)を示す加工元データTX所有者105a(“B社”)が含まれる。また、データ加工TX105には、同様にデータYに関してデータ加工TX105の前に記録されたTX(データ加工TX104)の所有者(B社システム120)を示す適用ロジックTX所有者105c(“B社”)が含まれる。
また、データ加工TX105には、データYに関してデータ加工TX105の前に記録されたTX(データ加工TX103)を示す加工元データTXID105b(“0xb4790a03”)が含まれる。加工元データTXID105bは、データ加工TX103(第2の履歴情報)の識別子の一例である。また、データ加工TX105には、データYに関してデータ加工TX105の前に記録されたTX(データ加工TX104)の識別情報である適用ロジックTXID105d(“0xea55349f”)が含まれる。適用ロジックTXID105dは、自システムに記録された加工処理データ(ロジックデータL)の履歴情報(104)の識別子の一例である。
図1に示したように各TXが記録されることにより、システム間で提供されたデータに関する履歴についてシステムを跨いで追跡(トレース)することが可能になる。データに関する履歴は、たとえば、そのデータ、そのデータから生成されたデータ、またはそのデータの生成に用いられたデータについて行われた、ダウンロード、加工、新規生成等の処理の履歴である。そのデータから生成されたデータには、そのデータから生成されたデータから生成されたデータ等、複数世代後のデータも含まれてもよい。そのデータの生成に用いられたデータには、そのデータの生成に用いられたデータの生成に用いられたデータ等、複数世代前のデータも含まれてもよい。
たとえば、データ加工TX105の加工元データTX所有者105aと加工元データTXID105bを参照すると、データYに関してB社システム120においてデータ加工TX105の前に記録されたデータ加工TX103の所有者とTXIDを特定できる。すなわち、データ加工TX103の所有者はB社システム120であり、データ加工TX103のTXIDは“0xb4790a03”であることを特定することができる。これにより、B社システム120からTXIDが“0xb4790a03”であるTXを取得することによりデータ加工TX103を得ることができる。
また、データ加工TX103の加工元データTX所有者103aおよび加工元データTXID103bを参照すると、データYに関してデータ加工TX103の前に記録されたデータ取引TX102の所有者とTXIDを特定することができる。すなわち、データ取引TX102の所有者は企業間システム150であり、データ取引TX102のTXIDは“0x189ab0c1”であることを特定することができる。これにより、企業間システム150からTXIDが“0x189ab0c1”であるTXを取得することによりデータ取引TX102を得ることができる。
また、データ取引TX102の提供元データTX所有者102aおよび提供元データTXID102bを参照すると、データYに関してデータ取引TX102の前に記録されたデータ加工TX101の所有者とTXIDを特定することができる。すなわち、データ加工TX101の所有者はA社システム110であり、データ加工TX101のTXIDは“0x43ef582c”であることを特定することができる。これにより、A社システム110からTXIDが“0x43ef582c”であるTXを取得することによりデータ加工TX101を得ることができる。
また、データ加工TX101の加工元データTX所有者101aおよび加工元データTXID101bを参照すると、データYに関してデータ加工TX101の前に記録されたTXの所有者とTXIDを特定することができる。すなわち、データ加工TX101の前に記録されたTXの所有者はA社システム110であり、データ加工TX101の前に記録されたTXのTXIDは“0x76a01ce0”であることを特定することができる。これにより、A社システム110からTXIDが“0x76a01ce0”であるTXを取得することによりデータ加工TX101の前に記録されたTXを得ることができる。
このように、A社システム110からB社システム120へ提供されたデータXに関するデータ加工TX101、データ取引TX102、データ加工TX103およびデータ加工TX105を、下流のTXから遡って順次取得することができる。すなわち、システム間で提供されたデータに関する履歴についてシステムを跨いで追跡することができる。
データ加工TX105からデータXに関するデータ加工TX103、データ取引TX102、データ加工TX101を得る場合について説明したが、同様に、データ加工TX105からロジックデータLに関するデータ加工TX104等を取得することも可能である。たとえば、データ加工TX105の適用ロジックTX所有者105cおよび適用ロジックTXID105dを参照すると、データYに関してデータ加工TX105の前に記録されたデータ加工TX104の所有者とTXIDを特定することができる。すなわち、データ加工TX104の所有者はB社システム120であり、データ加工TX104のTXIDは“0xea55349f”であることを特定することができる。これにより、B社システム120からTXIDが“0xea55349f”であるTXを取得することによりデータ加工TX104を得ることができる。
また、データ加工TX104の加工元データTX所有者および加工元データTXIDを参照すると、データYに関してデータ加工TX104の前に記録されたTXの所有者とTXIDを特定することができる。すなわち、データ加工TX104の前に記録されたTXの所有者は企業間システム150であり、データ加工TX104の前に記録されたTXのTXIDは“0xfc32470a”であることを特定することができる。これにより、企業間システム150からTXIDが“0xfc32470a”であるTXを取得することによりデータ加工TX104の前に記録されたTXを得ることができる。
このように、他社システムからB社システム120へ提供されたデータYに関するデータ加工TX104およびデータ加工TX105等を、下流のTXから遡って順次取得することができる。すなわち、システム間で提供されたデータに関する履歴についてシステムを跨いで追跡することが可能になる。
システム間で提供されたデータに関する履歴についてシステムを跨いで追跡することが可能になることにより、以下のようなメリットがある。たとえば、企業間システム150を用いたデータの購入を検討する場合に、そのデータが、システム間で提供されたデータや、システム間で提供されたデータを加工して得られたデータであっても、そのデータに関する履歴をトレースすることができる。
一例として、B社システム120が企業間システム150を用いてデータYを提供する場合に、データYの購入を検討する者は、上述のようにデータ加工TX101、データ取引TX102、データ加工TX103およびデータ加工TX105を取得する。これにより、データYが、企業間システム150を用いてA社システム110のデータXをB社システム120が購入し、B社システム120が購入したデータXを加工して得られたデータであることを把握できる。
また、データYの購入を検討する者は、さらにデータ加工TX104を取得してもよい。これにより、データYが、企業間システム150を用いて他社システムのロジックデータLをB社システム120が購入し、B社システム120が購入したロジックデータLによりデータXを加工することにより得られたデータであることを把握できる。
また、たとえばB社の社員がデータYを利用しようとする場合にも同様に、データYに関する履歴を把握することができる。また、企業間システム150が、データの取引に伴う企業間の対価の支払いを管理する場合に、そのデータに関する履歴をトレースすることにより、対価の支払いの計算を行うことができる。対価の支払いの計算は、たとえばどの企業がどの企業にいくら支払うかの計算や、どの企業の仮想通貨の残高をどのように増減させるかの計算などである。
このように、実施の形態にかかる情報処理システムによれば、別環境の他システムから提供されたデータについて、システムを跨いだデータ履歴の追跡を容易にすることができる。たとえば、従来、あるデータについて複数の企業のシステムに跨るデータの加工履歴や取引履歴を追跡しようとした場合、データの提供者や加工者にそれぞれ問い合わせるなどして数日間を要する場合がある。また、仮に他社から来歴情報を得られたとしても、手作業によるデータの突き合わせを要する。また、データの加工履歴や取引履歴を一括してブロックチェーン上で管理することも考えられるが、将来的に履歴の情報量が大きくなる可能性があるという問題がある。
これに対して、実施の形態にかかる情報処理システムによれば、あるデータについて複数の企業のシステムに跨るデータ加工TXやデータ取引TXを追跡しようとした場合に、信頼性の高い履歴を短時間で取得することができる。
(実施の形態にかかる情報処理システム)
図2は、実施の形態にかかる情報処理システムの一例を示す図である。図2に示すように、実施の形態にかかる情報処理システム200は、たとえば、A社システム110と、B社システム120と、C社システム130と、企業間システム150と、ユーザシステム270と、を含む。
A社システム110は、データ加工履歴記録部211と、加工TX設定API(Application Programming Interface)212と、加工TX取得API213と、ファイルシステム214と、を有する。
データ加工履歴記録部211には、A社システム110によってデータの新規生成、加工、ダウンロードなどの処理が行われた際のデータ加工履歴情報(たとえば図11参照)が記録される。このデータ加工履歴情報には、後述のファイルシステム214のフィルタドライバ214aによって生成される標準加工履歴情報(たとえばAtlasの標準の加工履歴)と、後述の加工TX設定API212によって生成されるデータ加工TXと、が含まれる。
加工TX設定API212は、たとえば、A社システム110によるデータの新規生成、加工、ダウンロードなどの処理が行われた際に、後述のイベントハンドラやファイルシステム214から呼び出し可能なAPIである。加工TX設定API212は、呼び出されると、上述のA社システム110による処理に関するデータ加工TXを生成する。そして、加工TX設定API212は、生成したデータ加工TXを、データ加工履歴記録部211に記録されるデータ加工履歴情報のうち、このデータ加工TXに対応する処理のデータ加工履歴情報に設定する。
加工TX取得API213は、ユーザシステム270から呼び出し可能なAPIである。加工TX取得API213は、TXIDをキーとして呼び出されると、そのTXIDに対応するデータ加工TXをデータ加工履歴記録部211から読み出し、読み出したデータ加工TXを呼び出し元のユーザシステム270へ送信する。
ファイルシステム214は、A社システム110が新規生成、加工、ダウンロードなどにより得たデータやそのメタデータなどを記憶する。また、ファイルシステム214は、上述の標準加工履歴情報を生成し、生成した標準加工履歴情報をデータ加工履歴記録部211のデータ加工履歴情報に設定するフィルタドライバ214aを有する。
B社システム120は、B社によって運用されている情報処理装置により実現される、Atlasなどの履歴管理プログラムを実行するシステムである。B社システム120は、データ加工履歴記録部221と、加工TX設定API222と、加工TX取得API223と、ファイルシステム224と、を有する。また、ファイルシステム224は、フィルタドライバ224aを有する。これらの各構成は、上述したA社システム110の各構成と同様である。
C社システム130は、たとえば、C社によって運用されている情報処理装置により実現される、Atlasなどの履歴管理プログラムを実行するシステムである。また、C社システム130は、A社システム110およびB社システム120とは別環境の他システムである。C社システム130は、データ加工履歴記録部231と、加工TX設定API232と、加工TX取得API233と、ファイルシステム234と、を有する。また、ファイルシステム234は、フィルタドライバ234aを有する。これらの各構成は、上述したA社システム110の各構成と同様である。
企業間システム150は、たとえば、企業間のデータ取引履歴情報を管理する富士通VPX(Virtual Private digital eXchange)テクノロジなどの管理システムである。VPXは登録商標である。富士通VPXテクノロジは、たとえば、コンソーシアム型のブロックチェーンを利用して企業間のデータ取引を実現するスマートコントラクトシステムである。VPXにおいては、「どんなデータか」、「そのデータはどこにあるか」、「誰が登録したか」、「誰に公開するか」などの情報が分散台帳に記録されてメンバ間(たとえばA社システム110、B社システム120およびC社システム130の間)で共有される。
企業間システム150は、ポータル画面管理部251と、データ取引履歴記録部252と、取引TX取得API253と、を有する。ポータル画面管理部251は、各社から提供可能なデータの登録を受け付け、登録を受け付けたデータを他社が購入するためのWebサイトであるポータル画面を生成する。たとえば、ポータル画面管理部251は、A社が提供可能なデータの登録をA社システム110から受け付け、そのデータをA社以外の企業が購入するためのポータル画面を生成する。
たとえば、A社ポータル画面251Aは、A社が提供可能なデータの一覧や購入が可能なWebページである。A社ポータル画面251Aには、A社ポータル画面251Aに含まれるデータの購入ボタンが押下された場合に起動されるイベントハンドラ251aが埋め込まれている。イベントハンドラ251aは、たとえば対応する購入ボタンに対応するデータをA社からダウンロードするプログラムである。
B社ポータル画面251Bは、たとえばB社が提供可能なデータの一覧や購入が可能なWebページである。B社ポータル画面251Bには、B社ポータル画面251Bに含まれるデータの購入ボタンが押下された場合に起動されるイベントハンドラ251bが埋め込まれている。イベントハンドラ251bは、たとえば対応する購入ボタンに対応するデータをB社からダウンロードするプログラムである。
また、ポータル画面管理部251は、データの提供先を指定したポータル画面を生成してもよい。たとえば、A社ポータル画面251Aは、A社がB社に提供可能なデータの一覧や購入が可能なWebページである。
データ取引履歴記録部252には、企業間システム150を用いてデータの取引が行われた際のデータ取引履歴情報が記録される。このデータ取引履歴情報には、後述の取引TX取得API253によって生成されるデータ取引TXが含まれる。
取引TX取得API253は、たとえばユーザシステム270から呼び出し可能なAPIである。取引TX取得API253は、TXIDをキーとして呼び出されると、そのTXIDに対応するデータ取引TXをデータ取引履歴記録部252から読み出し、読み出したデータ取引TXを呼び出し元のユーザシステム270へ送信する。
ユーザシステム270は、たとえばA社システム110、B社システム120、C社システム130、企業間システム150に記録されたデータ加工TXおよびデータ取引TXを収集して表示するシステムである。
ユーザシステム270は、たとえばA社システム110、B社システム120、C社システム130および企業間システム150とは別のシステムである。ただし、ユーザシステム270は、A社システム110、B社システム120、C社システム130および企業間システム150のいずれかに組み込まれたシステムであってもよい。ここでは、ユーザシステム270が、A社システム110、B社システム120、C社システム130および企業間システム150とは異なるシステムである場合について説明する。
ユーザシステム270は、A社システム110、B社システム120および企業間システム150と接続されている。また、ユーザシステム270は、さらにC社システム130と接続されていてもよい。
たとえば、ユーザシステム270は、ユーザアプリケーション271と、加工・取引履歴取得ライブラリ272と、を有する。ユーザアプリケーション271は、たとえば、ユーザからの操作の受付や、ユーザへの情報表示などを行うGUI(Graphical User Interface)を提供するアプリケーションである。
加工・取引履歴取得ライブラリ272は、ユーザアプリケーション271によって受け付けられた操作に応じて、データ加工TXおよびデータ取引TXの収集や、収集したデータ加工TXおよびデータ取引TXに基づくデータ加工・取引履歴画面の生成等を行う。
(実施の形態にかかるB社システム)
図3は、実施の形態にかかるB社システムの一例を示す図である。図3において、図2に示した部分と同様の部分については同一の符号を付して説明を省略する。B社システム120の構成について説明するが、A社システム110およびC社システム130の各構成についてもA社システム110の構成と同様である。
図3に示すように、A社システム110は、データ生成部310と、ブラウザ制御部330と、データ加工部320と、ファイルシステム224と、加工TX設定API222と、データ加工履歴記録部221と、加工TX取得API223と、を備える。これらのA社システム110の各部の処理結果は、たとえば図6に示すメモリ602などの記憶装置に記憶される。
データ生成部310は、ユーザからの操作に応じて、新規のデータの生成を行う。そして、データ生成部310は、生成した新規のデータをファイルシステム224のフィルタドライバ224aへ出力する。データ加工部320は、ユーザからの操作に応じて、ファイルシステム224のデータ記録部341に記録されたデータの加工を行う。そして、ブラウザ制御部330は、加工により得られたデータをファイルシステム224のフィルタドライバ224aへ出力する。
ブラウザ制御部330は、企業間システム150との間で通信を行うことにより、A社システム110のユーザに表示するwebブラウザを制御する。たとえば、ブラウザ制御部330は、ユーザからの指示に応じて、企業間システム150に対して他社のポータル画面の送信を要求する。また、ブラウザ制御部330は、企業間システム150から受信したポータル画面をユーザに表示する。
また、ブラウザ制御部330は、ユーザに表示したポータル画面上でユーザによって購入ボタンが押下された場合に、その購入ボタンの押下に対応付けられたイベントハンドラを起動する。そして、そのイベントハンドラの起動を契機として、企業間システム150に、購入ボタンに対応するデータの購入を通知する。
また、ブラウザ制御部330は、起動したイベントハンドラにより、購入ボタンに対応するデータの提供元からそのデータをダウンロードする。そして、ブラウザ制御部330は、ダウンロードしたデータをファイルシステム224のフィルタドライバ224aへ出力する。また、ブラウザ制御部330は、起動したイベントハンドラにより、加工TX設定API222を呼び出す。
ファイルシステム224は、データ記録部341と、フィルタドライバ224aと、を備える。データ記録部341には、フィルタドライバ224aの制御によってデータが記録される。
フィルタドライバ224aは、データ生成部310、データ加工部320またはブラウザ制御部330からデータが出力されると、そのデータをデータ記録部341に記録する。また、フィルタドライバ224aは、そのデータに相当するファイルが新規に生成されたことを示す標準加工履歴情報(たとえば図11の標準加工履歴情報1110)を生成する。そして、フィルタドライバ224aは、生成した標準加工履歴情報を含むデータ加工履歴情報(たとえば図11のデータ加工履歴情報1100)をデータ加工履歴記録部221に記録する。また、フィルタドライバ224aは、データ生成部310またはデータ加工部320からデータが出力された場合には加工TX設定API222を呼び出す。
加工TX設定API222は、ブラウザ制御部330が起動したイベントハンドラ、またはフィルタドライバ224aから呼び出されると、対象のデータについてデータ加工TXを生成する。そして、加工TX設定API222は、生成したデータ加工TXを、データ加工履歴記録部221に記録された対象のデータについてのデータ加工履歴情報に追加で設定する。
加工TX取得API223は、ユーザシステム270から呼び出されると、その呼び出しにおいてキーとされたTXIDにより遡れるすべてのデータ加工TXをデータ加工履歴記録部221から取得する。そして、加工TX取得API223は、取得したデータ加工TXを、加工TX取得API223の呼び出し元のユーザシステム270へ送信する。
ブラウザ制御部330は、別環境の他システムからデータを取得する際に取得要求情報を取得する取得部の一例である。加工TX設定API212は、取得要求情報を含む第2の履歴情報を生成する生成部の一例である。データ加工履歴記録部211は、第2の履歴情報をデータと関連付けして記録する記録部の一例である。
(実施の形態にかかる企業間システム)
図4は、実施の形態にかかる企業間システムの一例を示す図である。図4において、図2に示した部分と同様の部分については同一の符号を付して説明を省略する。図4に示すように、企業間システム150は、データ登録受付部410と、登録情報記録部420と、ポータル画面制御部430と、データ取引履歴記録部252と、取引TX取得API253と、を備える。これらの企業間システム150の各部の処理結果は、たとえば図7に示すメモリ702などの記憶装置に記憶される。
データ登録受付部410は、A社システム110、B社システム120またはC社システム130からのデータの登録の要求を受け付ける。データ登録受付部410は、データの登録の要求を受け付けると、そのデータに関する登録情報(たとえば後述のメタデータ)を登録情報記録部420に記録する。
ポータル画面制御部430は、A社システム110、B社システム120またはC社システム130からのポータル画面の送信の要求を受け付ける。ポータル画面制御部430は、ポータル画面の送信の要求を受け付けると、データ登録受付部410に記録された登録情報を参照して、要求元に対して他社が提供可能なデータの一覧や購入が可能なWebページを生成する。そして、ポータル画面制御部430は、生成したWebページをポータル画面として提供元に送信する。ただし、ポータル画面制御部430は、ポータル画面の送信の要求を受け付ける前にポータル画面を生成しておいてもよい。
また、ポータル画面制御部430は、A社システム110、B社システム120またはC社システム130からデータの購入の通知を受け付けると、そのデータの提供者から通知元にそのデータが提供されたことを示すデータ取引TXを生成する。また、ポータル画面制御部430は、生成したデータ取引TXをデータ取引履歴記録部252に記録する。
取引TX取得API253は、ユーザシステム270から呼び出されると、その呼び出しにおいてキーとされたTXIDを有するデータ取引TXをデータ取引履歴記録部252から取得する。そして、取引TX取得API253は、取得したデータ取引TXを、呼び出し元のユーザシステム270へ送信する。
(実施の形態にかかるユーザシステム)
図5は、実施の形態にかかるユーザシステムの一例を示す図である。図5において、図2に示した部分と同様の部分については同一の符号を付して説明を省略する。図4に示すように、ユーザシステム270は、ユーザアプリケーション271と加工・取引履歴取得ライブラリ272と、を備える。
ユーザアプリケーション271は、操作受付部511と、表示部512と、を備える。操作受付部511は、ユーザからの操作を受け付ける。たとえば、ユーザアプリケーション271は、後述のデータ加工・取引履歴画面の表示を指示する操作を受け付けると、その操作の受付結果を加工・取引履歴取得ライブラリ272へ通知する。表示部512は、操作受付部511からの上述の通知に応じて加工・取引履歴取得ライブラリ272から出力されたデータ加工・取引履歴画面(たとえば図15参照)をユーザに表示する。
加工・取引履歴取得ライブラリ272は、制御部521と、送信部522と、受信部523と、を備える。制御部521は、データ加工・取引履歴画面の表示を指示する操作の受付結果がユーザアプリケーション271から通知されると、送信部522および受信部523を制御して、データ加工TXおよびデータ取引TXを収集する。データ加工TXおよびデータ取引TXの収集手順については後述する(たとえば図14,図18参照)。
また、加工・取引履歴取得ライブラリ272は、収集したデータ加工TXおよびデータ取引TXを結合することによりデータ加工・取引履歴情報を生成し、生成したデータ加工・取引履歴情報を視覚的に示すデータ加工・取引履歴画面を生成する。そして、加工・取引履歴取得ライブラリ272は、生成したデータ加工・取引履歴画面をユーザアプリケーション271へ出力する。
送信部522は、A社システム110の加工TX取得API213、B社システム120の加工TX取得API223またはC社システム130の加工TX取得API233を呼び出す。また、送信部522は、TXIDをキーとして要求信号を送信することにより、企業間システム150の取引TX取得API253を呼び出す。これらの呼び出しは、送信部522が、制御部521からの制御により、TXIDをキーとして要求信号を送信することにより行われる。
受信部523は、送信部522が呼び出した加工TX取得APIから送信されたデータ加工TXを受信し、受信したデータ加工TXを制御部521へ出力する。
(実施の形態にかかるB社システムおよびユーザシステムのハードウェア構成)
図6は、実施の形態にかかるB社システムおよびユーザシステムのハードウェア構成の一例を示す図である。まず、B社システム120のハードウェア構成について説明するが、A社システム110およびC社システム130の各ハードウェア構成についてもA社システム110のハードウェア構成と同様である。
図3に示したB社システム120は、たとえば図6に示す情報処理装置600により実現することができる。情報処理装置600は、プロセッサ601と、メモリ602と、通信インタフェース603と、ユーザインタフェース604と、を備える。プロセッサ601、メモリ602、通信インタフェース603およびユーザインタフェース604は、たとえばバス609によって接続される。
プロセッサ601は、信号処理を行う回路であり、たとえば情報処理装置600の全体の制御を司るCPU(Central Processing Unit)である。メモリ602には、たとえばメインメモリおよび補助メモリが含まれる。メインメモリは、たとえばRAM(Random Access Memory)である。メインメモリは、プロセッサ601のワークエリアとして使用される。
補助メモリは、たとえば磁気ディスク、光ディスク、フラッシュメモリなどの不揮発性メモリである。補助メモリには、情報処理装置600を動作させる各種のプログラムが記憶されている。補助メモリに記憶されたプログラムは、メインメモリにロードされてプロセッサ601によって実行される。
また、補助メモリは、情報処理装置600から取り外し可能な可搬型のメモリを含んでもよい。可搬型のメモリには、USB(Universal Serial Bus)フラッシュドライブやSD(Secure Digital)メモリカードなどのメモリカードや、外付けハードディスクドライブなどがある。また、可搬型のメモリには、CD-ROM(Compact Disc Read Oonly Memory)、MO(Magneto-Optical disk)、DVD(Digital Versatile Disc)などがある。
また、プロセッサ601やメモリ602は、FPGA(Field Programmable Gate Array)やDSP(Digital Signal Processor)などのデジタル回路により実現されてもよい。
通信インタフェース603は、情報処理装置600の外部(たとえば企業間システム150やユーザシステム270)との間で通信を行う通信インタフェースである。通信インタフェース603は、プロセッサ601によって制御される。
ユーザインタフェース604は、たとえば、ユーザからの操作入力を受け付ける入力デバイスや、ユーザへ情報を出力する出力デバイスなどを含む。入力デバイスは、たとえばポインティングデバイス(たとえばマウス)、キー(たとえばキーボード)やリモコンなどにより実現することができる。出力デバイスは、たとえばディスプレイやスピーカなどにより実現することができる。また、タッチパネルなどによって入力デバイスおよび出力デバイスを実現してもよい。ユーザインタフェース604は、プロセッサ601によって制御される。
図3に示したデータ生成部310およびデータ加工部320は、たとえばプロセッサ601、メモリ602およびユーザインタフェース604により実現することができる。図3に示したデータ加工部320は、たとえばプロセッサ601、メモリ602、通信インタフェース603およびユーザインタフェース604により実現することができる。
図3に示したファイルシステム214、加工TX設定API212、データ加工履歴記録部211および加工TX取得API213は、たとえばプロセッサ601およびメモリ602により実現することができる。
また、図5に示したユーザシステム270についても、たとえば図6に示す情報処理装置600により実現することができる。この場合に、図5に示したユーザアプリケーション271は、プロセッサ601、メモリ602およびユーザインタフェース604により実現することができる。図5に示した加工・取引履歴取得ライブラリ272は、プロセッサ601、メモリ602および通信インタフェース603により実現することができる。
(実施の形態にかかる企業間システムのハードウェア構成)
図7は、実施の形態にかかる企業間システムのハードウェア構成の一例を示す図である。図4に示した企業間システム150は、たとえば図7に示す情報処理装置700により実現することができる。情報処理装置700は、プロセッサ701と、メモリ702と、通信インタフェース703と、を備える。プロセッサ701、メモリ702および通信インタフェース703は、たとえばバス709によって接続される。
プロセッサ701は、信号処理を行う回路であり、たとえば情報処理装置700の全体の制御を司るCPUである。メモリ702には、たとえばメインメモリおよび補助メモリが含まれる。メインメモリは、たとえばRAMである。メインメモリは、プロセッサ701のワークエリアとして使用される。
補助メモリは、たとえば磁気ディスク、光ディスク、フラッシュメモリなどの不揮発性メモリである。補助メモリには、情報処理装置700を動作させる各種のプログラムが記憶されている。補助メモリに記憶されたプログラムは、メインメモリにロードされてプロセッサ701によって実行される。
また、補助メモリは、情報処理装置700から取り外し可能な可搬型のメモリを含んでもよい。可搬型のメモリには、USBフラッシュドライブやSDメモリカードなどのメモリカードや、外付けハードディスクドライブなどがある。
通信インタフェース703は、情報処理装置700の外部(たとえばA社システム110、B社システム120、C社システム130およびユーザシステム270)との間で無線通信を行う通信インタフェースである。通信インタフェース703は、プロセッサ701によって制御される。
図4に示したデータ登録受付部410、ポータル画面制御部430および取引TX取得API253は、たとえばプロセッサ701、メモリ702および通信インタフェース703により実現することができる。図4に示した登録情報記録部420およびデータ取引履歴記録部252は、たとえばメモリ702により実現することができる。
(実施の形態にかかるデータ加工TX)
図8は、実施の形態にかかるデータ加工TXの一例を示す図である。図8に示すデータ加工TX105は、B社システム120が、A社システム110からダウンロードしたデータXを、C社システム130からダウンロードしたロジックデータLで加工してデータYを得る際(データ加工時)に生成されるデータ加工TXの例である。
データ加工TX105は、たとえば複数のメンバを含む構造体である。たとえば、データ加工TX105のメンバには、TXIDと、TX所有者と、ファイル名と、TX内容と、タイムスタンプと、適用ロジックTX所有者105cと、適用ロジックTXID105dと、が含まれる。また、データ加工TX105のメンバには、加工元データTX数と、加工元データTX所有者105aと、加工元データTX取得APIのURL(Uniform Resource Locator)と、加工元データTXID105bと、データハッシュ値と、電子署名と、が含まれる。
データ加工TX105のTXIDは、データ加工TX105の識別情報であり、たとえばデータ加工TX105の各メンバのうちTXIDを除いた部分のハッシュ値である。すなわち、TXIDは、TX所有者、ファイル名、TX内容、タイムスタンプ、適用ロジックTX所有者105c、適用ロジックTXID105d、加工元データTX数、加工元データTX所有者105a、加工元データTX取得APIのURL、加工元データTXID105b、データハッシュ値および電子署名に基づいて算出される。図8に示す例では、TXIDは“0x240d8112”である。
データ加工TX105のTX所有者は、データ加工TX105の所有者の識別情報である。図8に示す例では、データ加工TX105はB社システム120によって生成されるため、TX所有者はB社システム120を示す“B社”である。
データ加工TX105のファイル名は、データ加工TX105の生成時に得られたデータのファイル名である。図8に示す例では、データ加工TX105はデータXの加工時に生成されたものであるため、ファイル名はその加工後のデータYのファイル名(“dangerous_driver.csv”)である。
データ加工TX105のTX内容は、ファイル名が示すデータの内容を示す文字列である。図8に示す例では、TX内容は、データYの内容を示す“ブレーキタイミングに基づく危険ドライバーリスト”である。データ加工TX105のタイムスタンプは、データ加工TX105が生成された日時である。図8に示す例では、タイムスタンプは“2018-**-**_**:**”である。
データ加工TX105の適用ロジックTX所有者105cは、データ加工TX105の生成時に用いられたロジックのTX(そのロジックが得られた処理のTX)の所有者の識別情報である。図8に示す例では、このロジックはB社システム120がC社システム130からダウンロード(購入)したロジックデータLであるため、適用ロジックTX所有者105cはB社システム120を示す“B社”である。
データ加工TX105の適用ロジックTXID105dは、データ加工TX105の生成時に用いられたロジックのTXのTXIDである。図8に示す例ではこのロジックはロジックデータLであるため、適用ロジックTXID105dはこのロジックデータLのTX(ロジックデータLのダウンロードのTX)を示す“0xea55349f”である。
データ加工TX105の加工元データTX数は、データ加工TX105の生成時に用いられたデータの数である。図8に示す例では、データ加工TX105は1個のデータXの加工により生成されたものであるため、加工元データTX数は“1”である。
データ加工TX105の加工元データTX所有者105aと加工元データTX取得APIのURLは、データ加工TX105の生成時に用いられたデータ(ロジックデータを除く)のTX(そのデータが得られた処理のTX)の所有者の識別情報とTX取得APIのURLである。図8に示す例では、加工元データTX取得APIのURLは“http://***/**”である。上述の加工元データTX数をNとすると、N個の加工元データTX所有者105aがデータ加工TX105に含まれる。図8に示す例では、N=1であるため、1個の加工元データTX所有者[0]がデータ加工TX105に含まれる。また、図8に示す例では、データ加工TX105は、A社システム110からB社システム120がダウンロード(購入)したデータXの加工により生成されたものであるため、加工元データTX所有者[0]はB社システム120を示す“B社”である。
データ加工TX105の加工元データTXID105bは、データ加工TX105の生成時に用いられたデータのTXのTXIDである。上述の加工元データTX数をNとすると、N個の加工元データTXID105bがデータ加工TX105に含まれる。図8に示す例では、N=1であるため、1個の加工元データTXID[0]がデータ加工TX105に含まれる。また、図8に示す例では、データ加工TX105は、A社システム110からB社システム120がダウンロードしたデータXの加工により生成されたものである。このため、加工元データTXID105bは、B社システム120においてデータXがダウンロードされた際のTXを示す“0xb4790a03”である。この場合に、加工元データTXID105bは、たとえばAtlasのデータリネージュAPIを使用して取得することができる。
データ加工TX105のデータハッシュ値は、データ加工TX105の生成時に得られたデータ、すなわちファイル名が示すデータのハッシュ値(データfingerprint)である。図8に示す例では、データハッシュ値は“0x480a88bb”である。
データ加工TX105の電子署名は、TX所有者(データ加工TX105の所有者)による、データ加工TX105の各メンバのうちTXIDおよび電子署名を除いた部分に基づく電子署名である。すなわち、電子署名は、TX所有者、ファイル名、TX内容、タイムスタンプ、適用ロジックTX所有者105c、適用ロジックTXID105d、加工元データTX数、加工元データTX所有者105a、加工元データTX取得APIのURL、加工元データTXID105bおよびデータハッシュ値に基づいて算出される。図8に示す例では、電子署名は、B社システム120による電子署名であり、“0x9101c78f”である。
図9は、実施の形態にかかるデータ加工TXの他の一例を示す図である。図9において、図8に示した部分と同様の部分については説明を省略する。図9に示すデータ加工TX104は、B社システム120が企業間システム150を用いてC社システム130からロジックデータLをダウンロードする際(データのダウンロード時)にB社システム120において生成されるデータ加工TXの例である。データ加工TX104は、たとえば図8に示したデータ加工TX105と同様のメンバを含む構造体である。
データ加工TX104のTXIDは“0xea55349f”である。また、図8に示したデータ加工TX105と同様に、データ加工TX104はB社システム120によって生成されるため、データ加工TX104のTX所有者はB社システム120を示す“B社”である。
データ加工TX104はロジックデータLのダウンロード時に生成されたものであるため、データ加工TX104のファイル名はダウンロードされたロジックデータLのファイル名(“eval_brake_timing.exe”)である。データ加工TX104のTX内容は、ロジックデータLの内容を示す“ブレーキタイミング評価ツール”である。
データ加工TX104の生成時に用いられたロジックはB社システム120の加工TX設定API222であるため、適用ロジックTX所有者はB社システム120を示す“B社”である。データ加工TX104の適用ロジックTXIDは、この加工TX設定API222のTXを示す“0x8901cc1a”である。
データ加工TX104の1個のロジックデータLにより生成されたものであるため、加工元データTX数は“1”である。上述のように、データ加工TX104は、企業間システム150を用いた取引によりC社システム130からB社システム120がダウンロードした際に生成されたものである。このため、加工元データTX所有者は企業間システム150を示す“VPX_0”である。
また、加工元データTXIDは、B社システム120によるロジックデータLの取引時に企業間システム150において生成されたデータ取引TXを示す“0xfc32470a”である。この加工元データTXIDは、たとえば、B社システム120が企業間システム150を用いてロジックデータLの購入手続きを行った際に、その購入に関するデータ取引TXを生成した企業間システム150から取得することができる。この点については後述する(たとえば図12のステップS1212参照)。
データ加工TX104のデータハッシュ値は“0x6421ed01”である。データ加工TX104の電子署名は、B社システム120による電子署名であり、“0xe59c02aa”である。
図8,図9においてそれぞれデータの加工時およびデータのダウンロード時に生成されるデータ加工TX104,105について説明したが、データの新規生成時に生成されるデータ加工TXもデータ加工TX104,105と同様のメンバを有する構造体である。ただし、データの新規生成時に生成されるデータ加工TXのファイル名は、その新規生成されたデータのファイル名になる。また、データの新規生成時に生成されるデータ加工TXの加工元データTX数は“0”となる。
図8,図9においてB社システム120が生成するデータ加工TX104,105について説明したが、A社システム110およびC社システム130が生成するデータ加工TXもたとえばデータ加工TX104,105と同様のメンバを有する構造体である。
(実施の形態にかかるデータ取引TX)
図10は、実施の形態にかかるデータ取引TXの一例を示す図である。図10に示すデータ取引TX102は、B社システム120がA社システム110からデータXをダウンロードした際(データの取引時)に生成されるデータ取引TXの例である。
データ取引TX102は、たとえば複数のメンバを含む構造体である。データ取引TX102のメンバには、たとえば、TXIDと、TX所有者と、ファイル名と、TX内容と、タイムスタンプと、提供元データTX所有者102aと、提供元データTX取得APIのURL、提供元データTXID102bと、データハッシュ値と、電子署名と、が含まれる。
データ取引TX102のTXIDは、データ取引TX102の識別情報であり、たとえばデータ取引TX102の各メンバのうちTXIDを除いた部分のハッシュ値である。すなわち、TXIDは、TX所有者、ファイル名、TX内容、タイムスタンプ、提供元データTX所有者102a、提供元データTX取得APIのURL、提供元データTXID102b、データハッシュ値および電子署名に基づいて算出される。図10に示す例では、TXIDは“0x189ab0c1”である。
データ取引TX102のTX所有者は、データ取引TX102の所有者の識別情報である。図10に示す例では、データ取引TX102は企業間システム150によって生成されるため、TX所有者は企業間システム150を示す“VPX_0”である。
データ取引TX102のファイル名は、データ取引TX102の生成時に取引(ダウンロード)されたデータのファイル名である。図10に示す例では、データ取引TX102はB社システム120がA社システム110からデータXをダウンロードした際に生成されたものであるため、ファイル名はデータXのファイル名(“brake_timing.csv”)である。
データ取引TX102のTX内容は、ファイル名が示すデータの内容を示す文字列である。図10に示す例では、TX内容は、データXの内容を示す“ドライバ毎のブレーキタイミング履歴”である。データ取引TX102のタイムスタンプは、データ取引TX102が生成された日時である。図10に示す例では、タイムスタンプは“2018-**-**_**:**”である。
データ取引TX102の提供元データTX所有者102aと提供元データTX取得APIのURLは、データ取引TX102の生成時に用いられたデータのTXの所有者の識別情報とTX取得APIのURLである。図10に示す例では、データ取引TX102はB社システム120がA社システム110からデータXをダウンロードした際に生成されたものであるため、提供元データTX所有者102aはA社システム110を示す“A社”である。
データ取引TX102の提供元データTXID102bは、データ取引TX102の生成時に用いられたデータのTXのTXIDである。図10に示す例では、データ取引TX102は、A社システム110からB社システム120がダウンロードしたデータXにより生成されたものである。このため、提供元データTXID102bは、A社システム110においてデータXが生成された際のTXを示す“0x43ef582c”である。
データ取引TX102のデータハッシュ値は、データ取引TX102の生成時に得られたデータ、すなわちファイル名が示すデータのハッシュ値(データfingerprint)である。図10に示す例ではデータハッシュ値は“0x92af0235”である。
データ取引TX102の電子署名は、TX所有者(データ取引TX102の所有者)による、データ取引TX102の各メンバのうちTXIDおよび電子署名を除いた部分に基づく電子署名である。すなわち、電子署名は、データ取引TX102のTX所有者、ファイル名、TX内容、タイムスタンプ、提供元データTX所有者102a、提供元データTX取得APIのURL、提供元データTXID102bおよびデータハッシュ値に基づいて算出される。図10に示す例では、電子署名は、企業間システム150による電子署名であり、“0x23e23a07”である。
また、データ取引TX102には、対象の取引におけるデータの提供先(データ取引先)がメンバとして含まれていてもよい。または、データ取引TX102と対応付けてデータ提供先の情報が生成されてもよい。図10に示す例では、データ取引TX102はB社システム120がA社システム110からデータXをダウンロードした際に生成されたものであるため、データ提供先はB社システム120を示す“B社”である。
図10において、A社システム110からB社システム120へデータを提供した場合のデータ取引TXについて説明したが、他の企業間でデータの取引が行われた場合のデータ取引TXもデータ取引TX102と同様のメンバを有する構造体である。
(実施の形態にかかる加工履歴情報)
図11は、実施の形態にかかるデータ加工履歴情報の一例を示す図である。A社システム110、B社システム120およびC社システム130のそれぞれは、データの新規生成時、データのダウンロード時、データの加工時等に、上述のデータ加工TX105を、Atlas等の標準の加工履歴情報とともに生成してもよい。
たとえば、A社システム110、B社システム120およびC社システム130のそれぞれは、データの新規生成時、データのダウンロード時、データの加工時等に、図11に示すデータ加工履歴情報1100を生成する。データ加工履歴情報1100は、Atlasの標準の加工履歴情報(標準加工履歴情報1110)を継承し、新たにデータ加工TXを追加した加工履歴情報である。
たとえば、データ加工履歴情報1100は、標準加工履歴情報1110と、データ加工TX1120と、を含む。標準加工履歴情報1110は、データの新規生成時、データのダウンロード時、データの加工時等にAtlasにおいて生成される、Atlasの標準の加工履歴情報である。たとえば、標準加工履歴情報1110には、データ加工履歴情報1100が示す処理において得られたデータの格納場所を示すファイルパスなど、データ加工履歴情報1100が示す処理に関する各種の情報が含まれる。データ加工TX1120は、TXID等を含む上述のデータ加工TXであり、たとえば上述のデータ加工TX101,103~105のいずれかである。
たとえば、AtlasのHBase、Hive、Sqoop、Stormなどによりデータの加工が行われた場合は、この加工の操作をフックするAtlasの既存の仕組みにより標準加工履歴情報1110が生成される。このため、標準加工履歴情報1110の生成と同じタイミングでデータ加工TX1120を生成し、標準加工履歴情報1110およびデータ加工TX1120を含むデータ加工履歴情報1100を生成することができる。
生成された標準加工履歴情報1110は、データ加工履歴記録部(たとえばB社システム120においてはデータ加工履歴記録部221)に記録される。これにより、データに関するデータ加工TX1120を、そのデータと関連付けて記録することができる。
A社システム110、B社システム120およびC社システム130のそれぞれは、上述のフックのプログラムの引数として自社のIDを用いる。また、A社システム110、B社システム120およびC社システム130のそれぞれは、データ加工履歴情報1100を生成する上述のタイミングにおいて自社の秘密鍵にアクセスできるようにしておく。
また、Atlasのコマンドではなく一般的なファイルシステムのファイル操作によりデータの加工が行われた場合は、上述のファイルシステムのフィルタドライバを用いてこのファイル操作をフックし、データ加工履歴情報1100を生成することができる。
(実施の形態にかかるデータ提供の処理)
図12は、実施の形態にかかる情報処理システムにおけるデータ提供の処理の一例を示すシーケンス図である。まず、A社システム110においてデータXの生成が行われたとする(ステップS1201)。データXは、A社によって収集されてA社システム110へ入力された新規のデータでもよいし、データXとは異なるデータをA社が加工して得られたデータであってもよい。
つぎに、A社システム110が、ステップS1201によるデータXの生成に関するデータ加工TXを生成し、生成したデータ加工TXを含むデータ加工履歴情報1100をデータ加工履歴記録部211に記録する(ステップS1202)。
つぎに、A社システム110が、企業間システム150に対して、ステップS1201において生成されたデータXの登録を要求する(ステップS1203)。ステップS1203は、A社システム110のユーザがデータXの登録を指示する操作をA社システム110に行ったことを契機として実行されてもよいし、ステップS1201またはステップS1202を契機として実行されてもよい。
ステップS1203において、A社システム110は、たとえばデータXをB社に提供可能なデータとして登録することを要求する。たとえば、A社システム110は、データXのメタデータとB社システム120の識別情報とを含む要求信号を企業間システム150に対して送信することによりデータXの登録を要求する。データXのメタデータには、たとえばデータXの識別情報(名称)や説明など、企業間システム150がデータXの購入を仲介するために要する各種の情報が含まれる。
つぎに、企業間システム150が、データXを、A社がB社に提供可能なデータとして登録する(ステップS1204)。たとえば、企業間システム150は、A社がB社に提供可能なデータを示す提供可能情報を記録しており、この提供可能情報にデータXのメタデータを追加することによりデータXを登録する。
つぎに、B社システム120が、企業間システム150に対して、A社ポータル画面251Aの送信を要求したとする(ステップS1205)。たとえば、B社システム120は、A社ポータル画面251AまたはA社システム110の識別情報を含む要求信号を企業間システム150に対して送信することにより、企業間システム150に対してA社ポータル画面251Aの送信を要求する。ステップS1205は、たとえば、A社が提供可能なデータを参照したいB社システム120のユーザが、B社システム120が起動しているWebブラウザに対して、A社ポータル画面251Aへのアクセスを指示する操作を行ったことを契機として実行される。
つぎに、企業間システム150が、A社ポータル画面251AをB社システム120へ送信する(ステップS1206)。たとえば、企業間システム150は、記録している上述の提供可能情報を参照して、A社がB社に提供可能なデータの一覧や購入が可能なWebページを生成し、生成したWebページをA社ポータル画面251AとしてB社システム120へ送信する。ここではステップS1204においてA社がB社に提供可能なデータとしてデータXが登録されているため、データXを含むデータの一覧や購入が可能なWebページがA社ポータル画面251Aとして送信される。
つぎに、B社システム120が、ステップS1206によって受信したA社ポータル画面251AをWebブラウザにより表示する(ステップS1207)。これにより、B社システム120のユーザは、A社がB社に提供可能なデータを一覧することができる。また、A社ポータル画面251Aには、A社がB社に提供可能なデータをB社が購入するための購入ボタンが含まれる。
つぎに、B社システム120が、A社ポータル画面251Aに含まれるデータXの購入ボタンの押下を受け付けたとする(ステップS1208)。ステップS1208は、たとえば、A社ポータル画面251Aを参照したB社システム120のユーザが、B社システム120を操作してデータXの購入ボタンを押下することにより行われる。
つぎに、B社システム120が、A社ポータル画面251Aを表示するWebブラウザにより、A社ポータル画面251Aに含まれるイベントハンドラ251aを起動する(ステップS1209)。このイベントハンドラ251aは、たとえばデータXの購入ボタンが押下された場合に呼び出される処理であり、データXのダウンロードを行う処理である。イベントハンドラ251aは、たとえばJavaScript(登録商標)によって記述され、A社ポータル画面251Aに埋め込まれたプログラムである。
つぎに、B社システム120が、ステップS1209におけるイベントハンドラ251aの起動を契機として、企業間システム150に対して、B社によるデータXの購入を通知する(ステップS1210)。たとえば、B社システム120は、B社がA社からデータXを購入することを示す通知信号を企業間システム150へ送信する。
つぎに、企業間システム150が、A社がB社にデータXを提供したことを示すデータ取引TXを生成し、生成したデータ取引TXをデータ取引履歴記録部252に記録する(ステップS1211)。このように、企業間システム150におけるデータ取引TXの生成および記録は、ポータル画面の購入ボタンの押下のタイミングで行われる。つぎに、企業間システム150が、ステップS1211において生成したデータ取引TXのTXIDをB社システム120へ通知する(ステップS1212)。
つぎに、B社システム120が、ステップS1209において起動したイベントハンドラ251aにより、A社システム110に対してデータXの送信を要求する(ステップS1213)。たとえば、B社システム120は、データXの識別情報を含む要求信号をA社システム110へ送信する。この要求信号には、たとえばHTTP(Hypertext Transfer Protocol:ハイパーテキスト転送プロトコル)におけるREST GETコマンドを用いることができる。
つぎに、A社システム110が、A社システム110のファイルシステム214に記録されたデータXを読み出し、読み出したデータXをB社システム120へ送信する(ステップS1214)。これにより、B社システム120は、A社システム110からデータXをダウンロードすることができる。B社システム120は、ダウンロードしたデータXをB社システム120のファイルシステム224に記録する。
つぎに、B社システム120が、ファイルシステム224のフィルタドライバ224aにより、データXに相当するファイルが新規に生成されたことを示す標準加工履歴情報1110を生成する。そして、B社システム120が、生成した標準加工履歴情報1110を含むデータ加工履歴情報1100をB社システム120のデータ加工履歴記録部221に記録する(ステップS1215)。
つぎに、B社システム120が、ステップS1209において起動したイベントハンドラ251aにより、B社システム120の加工TX設定API222を呼び出す(ステップS1216)。
つぎに、B社システム120が、ステップS1216により呼び出した加工TX設定API222により、ステップS1215により記録したデータ加工履歴情報1100に追加でデータ加工TX1120を設定し(ステップS1217)、一連の処理を終了する。これにより、標準加工履歴情報1110とデータ加工TX1120とを含むデータ加工履歴情報1100がB社システム120のデータ加工履歴記録部221に記録される。
ステップS1217において、たとえば、B社システム120は、データXのファイルパスに基づいてデータ加工履歴記録部221を検索することで、ステップS1215により記録したデータ加工履歴情報1100を特定することができる。また、ステップS1217において、B社システム120は、ステップS1212によって企業間システム150から通知されたTXIDを、生成するデータ加工TX1120のデータ加工元TXIDとする。
(実施の形態にかかる情報処理システムにおけるデータ加工・取引履歴情報の取得)
図13は、実施の形態にかかる情報処理システムにおけるデータ加工・取引履歴情報の取得の一例を示す図である。図13においては、上述のように、B社システム120が、企業間システム150を用いてA社システム110からデータXをダウンロードし、ダウンロードしたデータXを加工してデータYを得た場合について説明する。
たとえば、ユーザシステム270のユーザが、ユーザシステム270のユーザアプリケーション271に対して、B社システム120において得られた上述のデータYに関するデータ加工・取引履歴情報の取得および表示を指示したとする。この場合に、ユーザシステム270の加工・取引履歴取得ライブラリ272は、B社システム120の加工TX取得API223、企業間システム150の取引TX取得API253、A社システム110の加工TX取得API213を順次呼び出す。これらの手順については後述する(たとえば図14参照)。
加工・取引履歴取得ライブラリ272は、上述の呼び出しにより得られた各データ加工TXおよびデータ取引TXを結合することにより、B社システム120において得られた上述のデータYに関するデータ加工・取引履歴情報を生成する。また、加工・取引履歴取得ライブラリ272は、生成したデータ加工・取引履歴情報を視覚的に表すデータ加工・取引履歴画面を生成する。そして、ユーザシステム270のユーザアプリケーション271が、加工・取引履歴取得ライブラリ272によって生成されたデータ加工・取引履歴画面を表示する。ユーザアプリケーション271によるデータ加工・取引履歴画面の表示は、たとえばユーザシステム270が起動するWebブラウザにより実行される。
(実施の形態にかかるデータ加工・取引履歴情報の取得)
図14は、実施の形態にかかるユーザシステムによるデータ加工・取引履歴情報の取得の一例を示すシーケンス図である。図14においては、B社システム120において得られた上述のデータYに関するデータ加工・取引履歴情報の取得および表示をユーザシステム270に指示した場合について説明する。
まず、ユーザシステム270が、B社システム120に対して、B社システム120におけるデータYの生成の際のデータ加工TXのTXIDをキーにして、B社システム120の加工TX取得API223を呼び出す(ステップS1401)。ステップS1401は、たとえばユーザシステム270の加工・取引履歴取得ライブラリ272が、上述のTXIDを含む要求信号を、B社システム120へ送信することにより実行される。
ステップS1401においてキーとなるTXIDは、上述のようにたとえば“0x240d8112”である。たとえばユーザシステム270がB社システム120に含まれるシステムである場合は、ユーザシステム270はデータ加工履歴記録部221を参照することによりこのTXIDを特定することができる。また、ユーザシステム270がB社システム120に含まれないシステムである場合は、ユーザシステム270は、データYの生成におけるデータ加工TXのTXIDをB社システム120に問い合わせることによりこのTXIDを特定することができる。
つぎに、B社システム120が、ユーザシステム270に対して、ステップS1401においてキーとされたTXIDから遡って取得可能なすべてのデータ加工TXを送信する(ステップS1402)。たとえば、B社システム120の加工TX取得API223は、キーとされたTXIDを有するデータ加工TXをデータ加工履歴記録部221から取得する。また、加工TX取得API223は、取得したデータ加工TXの加工元データTXIDと同じTXIDを有するデータ加工TXがデータ加工履歴記録部221にある場合は、そのデータ加工TXをさらに取得する。
このように、加工TX取得API223は、取得したデータ加工TXの加工元データTXIDと同じTXIDを有するデータ加工TXがデータ加工履歴記録部221に存在しなくなるまで、加工TX設定API222からデータ加工TXを遡って取得する。ここでは、B社システム120においてデータYが生成された際のデータ加工TX(TXID:0x240d8112)と、B社システム120においてデータXがダウンロードされた際のデータ加工TX(TXID:0xb4790a03)と、が取得される。加工TX取得API223は、取得した各データ加工TXをユーザシステム270へ送信する。
つぎに、ユーザシステム270が、ステップS1402によって受信した各データ加工TXのうち、最も古いデータ加工TXから、加工元データTX所有者と加工元データTXIDを取得する(ステップS1403)。ステップS1403は、たとえば加工・取引履歴取得ライブラリ272により実行される。ここでは、最も古いデータ加工TXはB社システム120においてデータXがダウンロードされた際のデータ加工TXであり、加工元データTX所有者として“VPX_0”、加工元データTXIDとして“0x189ab0c1”が取得される。
つぎに、ユーザシステム270が、取得した“VPX_0”が示す企業間システム150に対して、取得した加工元データTXIDをキーにして、企業間システム150の取引TX取得API253を呼び出す(ステップS1404)。ステップS1404は、たとえばユーザシステム270の加工・取引履歴取得ライブラリ272が、取得した加工元データTXIDをキーとして含む要求信号を、企業間システム150へ送信することにより実行される。ステップS1404においてキーとなる加工元データTXIDは、上述の“0x189ab0c1”である。
つぎに、企業間システム150が、ユーザシステム270に対して、ステップS1404においてキーとされた加工元データTXIDから取得可能なデータ取引TXを送信する(ステップS1405)。たとえば、企業間システム150の取引TX取得API253は、キーとされたTXIDを有するデータ取引TXをデータ取引履歴記録部252から取得する。ここでは、A社からB社にデータXが提供された際のデータ取引TX(TXID:0x189ab0c1)が取得される。取引TX取得API253は、取得したデータ取引TXをユーザシステム270へ送信する。
つぎに、ユーザシステム270が、ステップS1405によって受信したデータ取引TXから、提供元データTX所有者と提供元データTXIDを取得する(ステップS1406)。ここでは、提供元データTX所有者として“A社”、提供元データTXIDとして“0x43ef582c”が取得される。
つぎに、ユーザシステム270が、取得した“A社”が示すA社システム110に対して、取得した提供元データTXIDをキーにして加工TX設定API212を呼び出す(ステップS1407)。ステップS1407は、たとえばユーザシステム270の加工・取引履歴取得ライブラリ272が、取得した提供元データTXIDをキーとして含む要求信号を、A社システム110へ送信することにより実行される。ステップS1407においてキーとなる提供元データTXIDは、上述の“0x43ef582c”である。
つぎに、A社システム110が、ユーザシステム270に対して、ステップS1407においてキーとされたTXIDから遡って取得可能なすべてのデータ加工TXを送信する(ステップS1408)。たとえば、A社システム110の加工TX取得API213は、ステップS1402と同様に、加工TX設定API222からデータ加工TXを遡って取得する。ここでは、A社システム110においてデータXが新規生成された際のデータ加工TX(TXID:0x43ef582c)が取得される。加工TX取得API213は、取得したデータ加工TXをユーザシステム270へ送信する。
つぎに、ユーザシステム270が、ステップS1402,S1408により受信した各データ加工TXと、ステップS1405により受信したデータ取引TXと、に基づくデータ加工・取引履歴画面を生成する(ステップS1409)。ステップS1409は、たとえば加工・取引履歴取得ライブラリ272により実行される。
つぎに、ユーザシステム270が、ステップS1409により生成したデータ加工・取引履歴画面をユーザシステム270のユーザに表示し(ステップS1410)、一連の処理を終了する。ステップS1410は、たとえばユーザアプリケーション271により実行される。
図13,図14においては、B社システム120において生成されたデータYについて、データYの加工元のデータXに関するデータ加工・取引履歴情報を収集して表示する処理について説明したが、このような処理に限らない。たとえば、B社システム120において生成されたデータYについて、データYの生成に用いられたロジックデータLに関するデータ加工・取引履歴情報を収集して表示する処理としてもよい。また、データXおよびロジックデータLの両方のデータ加工・取引履歴情報を収集して表示する処理としてもよい(たとえば図15参照)。
(実施の形態にかかるユーザシステムが表示するデータ加工・取引履歴画面)
図15は、実施の形態にかかるユーザシステムが表示するデータ加工・取引履歴画面の一例を示す図である。図15においては、図1等において説明した例におけるデータ加工・取引履歴画面について説明する。図14に示したステップS1409,S1410において、ユーザシステム270は、たとえば図15に示すデータ加工・取引履歴画面1500の生成および表示を行う。
データ加工・取引履歴画面1500は、たとえば、取得されたTXの集合とそれらの間の関係をグラフとして表示する画面である。データ加工・取引履歴画面1500は、画面領域1510,1520,1530,1550に区切られている。
画面領域1510には、A社システム110を示す“A社”の文字列と、A社システム110がTX所有者であるTXを示すデータ加工TXノード1501と、が配置されている。データ加工TXノード1501は、たとえばA社システム110においてデータXが生成された際のTX(TXID:0x43ef582c)を示す。画面領域1510におけるデータ加工TXノード1501の近傍には、このTXのTXIDである“0x43ef582c”の文字列と、このTXのファイル名である“ドライバ毎のブレーキタイミング履歴”の文字列と、が配置されている。
画面領域1530には、C社システム130を示す“C社”の文字列と、C社システム130がTX所有者であるTXを示すデータ加工TXノード1502と、が配置されている。データ加工TXノード1502は、たとえばC社システム130においてロジックデータLが生成された際のTX(TXID:0x79bc0821)を示す。画面領域1530におけるデータ加工TXノード1502の近傍には、このTXのTXIDである“0x79bc0821”の文字列と、このTXのファイル名である“ブレーキタイミング評価ツール”の文字列と、が配置されている。
画面領域1550には、企業間システム150を示す“VPX_0”の文字列と、企業間システム150がTX所有者であるTXを示すデータ取引TXノード1503,1504と、が配置されている。データ取引TXノード1503は、たとえばC社からB社にデータXが提供された際のTX(TXID:0x189ab0c1)を示す。画面領域1550におけるデータ取引TXノード1503の近傍には、このTXのTXIDである“0x189ab0c1”の文字列が配置されている。データ取引TXノード1504は、たとえばC社からB社にロジックデータLが提供された際のTX(TXID:0xfc32470a)を示す。画面領域1550におけるデータ取引TXノード1504の近傍には、このTXのTXIDである“0xfc32470a”の文字列が配置されている。
画面領域1520には、B社システム120を示す“B社”の文字列と、B社システム120がTX所有者であるTXを示すデータ加工TXノード1505~1507と、が配置されている。データ加工TXノード1505は、たとえばB社システム120がA社からデータXをダウンロードした際のTX(TXID:0xb4790a03)を示す。画面領域1520におけるデータ加工TXノード1505の近傍には、このTXのTXIDである“0xb4790a03”の文字列と、このTXのファイル名である“ドライバ毎のブレーキタイミング履歴”の文字列と、が配置されている。
データ加工TXノード1506は、たとえばB社システム120がC社からロジックデータLをダウンロードした際のTX(TXID:0xea55349f)を示す。画面領域1520におけるデータ加工TXノード1506の近傍には、このTXのTXIDである“0xea55349f”の文字列と、このTXのファイル名である“ブレーキタイミング評価ツール”の文字列と、が配置されている。
データ加工TXノード1507は、たとえばB社システム120がロジックデータLによりデータXを加工してデータYを得た際のTX(TXID:0x240d8112)を示す。画面領域1520におけるデータ加工TXノード1507の近傍には、このTXのTXIDである“0x240d8112”の文字列と、このTXのファイル名である“ブレーキタイミングに基づく危険ドライバーリスト”の文字列と、が配置されている。
また、データ加工・取引履歴画面1500には、矢印1561~1564,1571~1574が配置されている。矢印1561は、終点がデータ加工TXノード1507に接しており、始点がデータ加工TXノード1505に接している。矢印1571は、終点がデータ加工TXノード1507に接しており、始点がデータ加工TXノード1506に接している。これにより、矢印1561,1571は、データ加工TXノード1507が示すTXの直前のTXが、データ加工TXノード1505,1506が示す各TXであることを表している。
矢印1562は、終点がデータ加工TXノード1505に接しており、始点がデータ取引TXノード1503に接していることにより、データ加工TXノード1505が示すTXの直前のTXが、データ取引TXノード1503が示すTXであることを表している。
矢印1563は、終点がデータ取引TXノード1503に接しており、始点がデータ加工TXノード1501に接していることにより、データ取引TXノード1503が示すTXの直前のTXが、データ加工TXノード1501が示すTXであることを表している。
矢印1564は、終点がデータ加工TXノード1501に接しており、始点がノードに接していない。これにより、矢印1564は、データ加工TXノード1501が示すTXの前のTXが存在しない、またはデータ加工TXノード1501が示すTXの前のTXが取得されなかったことを示している。
矢印1572は、終点がデータ加工TXノード1506に接しており、始点がデータ取引TXノード1504に接していることにより、データ加工TXノード1506が示すTXの直前のTXが、データ取引TXノード1504が示すTXであることを表している。
矢印1573は、終点がデータ取引TXノード1504に接しており、始点がデータ加工TXノード1502に接していることにより、データ取引TXノード1504が示すTXの直前のTXが、データ加工TXノード1502が示すTXであることを表している。
矢印1574は、終点がデータ加工TXノード1502に接しており、始点がノードに接していない。これにより、矢印1574は、データ加工TXノード1502が示すTXの前のTXが存在しない、またはデータ加工TXノード1502が示すTXの前のTXが取得されなかったことを示している。
図15に示したように、データ加工・取引履歴画面1500においては、各TXを示すノードが、画面領域1510、画面領域1520、画面領域1530および画面領域1550のうちTX所有者に対応する領域に配置されている。これにより、各TXのTX所有者を簡単に把握することができる。また、データ加工・取引履歴画面1500においては、各ノードの接続関係を示す矢印1561~1564,1571~1574が配置されている。これにより、各ノードが示す各TXの前後関係を簡単に把握することができる。
一例として、ユーザは、まずデータ加工・取引履歴画面1500における末尾付近のデータ加工TXノード1505~1507および矢印1561,1571を視認する。これにより、ユーザは、“ブレーキタイミングに基づく危険ドライバーリスト”が、“ドライバ毎のブレーキタイミング履歴”と“ブレーキタイミング評価ツール”に基づいて生成されたことを把握できる。
つぎに、ユーザは、“ドライバ毎のブレーキタイミング履歴”に関する来歴を参照したい場合に、データ加工TXノード1505から矢印1562、データ取引TXノード1503、矢印1563、データ加工TXノード1501の順に辿って視認する。これにより、ユーザは、辿った経路が画面領域1520、画面領域1550および画面領域1510を跨いでいることから、“ドライバ毎のブレーキタイミング履歴”が企業間システム150を用いてA社からB社に提供されたことを把握できる。
また、ユーザは、“ブレーキタイミング評価ツール”に関する来歴を参照したい場合に、データ加工TXノード1506から矢印1572、データ取引TXノード1504、矢印1573、データ加工TXノード1502の順に辿って視認する。これにより、ユーザは、辿った経路が画面領域1520、画面領域1550および画面領域1530を跨いでいることから、“ブレーキタイミング評価ツール”が企業間システム150を用いてC社からB社に提供されたことを把握できる。
図13~図15に示す例では、あるTXを起点としてそのTXより前に記録されたTXを遡って収集する処理について説明したが、あるTXを起点としてそのTXより後に記録されたTXを収集するようにしてもよい。この場合に、たとえば、A社システム110やB社システム120は、ユーザシステム270からの呼び出しにおいてキーとされたTXIDを加工元データTXIDとして有するデータ加工TXを取得してユーザシステム270へ送信する。企業間システム150は、ユーザシステム270からの呼び出しにおいてキーとされたTXIDを提供元データTXIDとして有するデータ取引TXを取得してユーザシステム270へ送信する。
(実施の形態にかかるB社システムによる処理)
図16は、実施の形態にかかるB社システムによる処理の一例を示すフローチャートである。B社システム120による処理について説明するが、A社システム110やC社システム130による処理についてもB社システム120による処理と同様である。
まず、B社システム120は、他社システム(たとえばA社システム110やC社システム130)のポータル画面を表示中に、そのポータル画面上でデータ(対象のデータと称する。)の購入ボタンが押下されたか否かを判断する(ステップS1601)。他社システムのポータル画面の表示は、たとえば図12において説明したように、他社システムのポータル画面の表示を指示する操作をユーザから受け付け、企業間システム150から他社システムのポータル画面を受信することによって行われる。
ステップS1601において、購入ボタンが押下された場合(ステップS1601:Yes)は、B社システム120は、その購入ボタンの押下に対応付けられたイベントハンドラを起動する(ステップS1602)。つぎに、B社システム120は、ステップS1602におけるイベントハンドラの起動を契機として、企業間システム150に、対象のデータの購入を通知し、企業間システム150から通知されるデータ取引TXのTXIDを取得する(ステップS1603)。
つぎに、B社システム120は、ステップS1602において起動したイベントハンドラにより、対象のデータをダウンロードする(ステップS1604)。つぎに、B社システム120は、ファイルシステム224のフィルタドライバ224aにより、対象のデータに相当するファイルが新規に生成されたことを示す標準加工履歴情報1110を生成する(ステップS1605)。ステップS1605において、B社システム120は、生成した標準加工履歴情報1110を含むデータ加工履歴情報1100をデータ加工履歴記録部221に記録してもよい。
また、B社システム120は、ステップS1602において起動したイベントハンドラにより、B社システム120の加工TX設定API222を呼び出す(ステップS1606)。そして、B社システム120は、後述のステップS1610へ移行する。
ステップS1601において、購入ボタンが押下されていない場合(ステップS1601:No)は、B社システム120は、自システムにおいてデータの生成または加工を行ったか否かを判断する(ステップS1607)。
ステップS1607において、データの生成または加工を行った場合(ステップS1607:Yes)は、B社システム120は、ステップS1608へ移行する。すなわち、B社システム120は、ファイルシステム224のフィルタドライバ224aにより、対象のデータに相当するファイルが新規に生成されたことを示す標準加工履歴情報1110を生成する(ステップS1608)。ステップS1608において、B社システム120は、生成した標準加工履歴情報1110を含むデータ加工履歴情報1100をデータ加工履歴記録部221に記録してもよい。また、B社システム120は、ファイルシステム224のフィルタドライバ224aにより、B社システム120の加工TX設定API222を呼び出す(ステップS1609)。
つぎに、B社システム120は、ステップS1606またはステップS1609により呼び出した加工TX設定API222により、データ加工TXを生成する(ステップS1610)。
つぎに、B社システム120は、ステップS1605またはステップS1608により生成した標準加工履歴情報1110と、ステップS1610により生成したデータ加工TXと、を含むデータ加工履歴情報1100を記録する(ステップS1611)。そして、B社システム120は、ステップS1601へ戻る。
ステップS1611において、B社システム120は、データ加工履歴情報1100をB社システム120に記録する。ステップS1605,S1608において標準加工履歴情報1110を含むデータ加工履歴情報1100を記録した場合、B社システム120は、ステップS1611において、データ加工履歴情報1100に追加でデータ加工TXを設定する。
ステップS1607において、データの生成も加工も行っていない場合(ステップS1607:No)は、B社システム120は、ユーザシステム270から加工TX取得API223が呼び出されたか否かを判断する(ステップS1612)。
ステップS1612において、加工TX取得API223が呼び出されていない場合(ステップS1612:No)は、B社システム120はステップS1601へ戻る。加工TX取得API223が呼び出された場合(ステップS1612:Yes)は、B社システム120はステップS1613へ移行する。すなわち、B社システム120は、その加工TX取得API223の呼び出しにおいてキーとされたTXIDにより遡れるすべてのデータ加工TXをデータ加工履歴記録部221から取得する(ステップS1613)。
つぎに、B社システム120は、ステップS1613により取得したデータ加工TXを、加工TX取得API223の呼び出し元のユーザシステム270へ送信し(ステップS1614)、ステップS1601へ戻る。
(実施の形態にかかる企業間システムによる処理)
図17は、実施の形態にかかる企業間システムによる処理の一例を示すフローチャートである。まず、企業間システム150は、A社システム110、B社システム120またはC社システム130からデータの登録が要求されたか否かを判断する(ステップS1701)。データの登録が要求された場合(ステップS1701:Yes)は、企業間システム150は、そのデータの登録を行い(ステップS1702)、ステップS1701へ戻る。企業間システム150によるデータの登録は、たとえば図12において説明したように、企業間システム150が記録している提供可能情報に対象のデータのメタデータを追加することにより行われる。
ステップS1701において、データの登録が要求されていない場合(ステップS1701:No)は、企業間システム150は、ステップS1703へ移行する。すなわち、企業間システム150は、A社システム110、B社システム120またはC社システム130からポータル画面の送信が要求されたか否かを判断する(ステップS1703)。
ステップS1703において、ポータル画面の送信が要求された場合(ステップS1703:Yes)は、企業間システム150は、そのポータル画面の送信を行う(ステップS1704)。このポータル画面の送信は、たとえば図12において説明したように、上述の提供可能情報を参照して、要求元に対して他社が提供可能なデータの一覧や購入が可能なWebページを生成し、生成したWebページをポータル画面として送信することにより行われる。なお、このポータル画面の生成は、ポータル画面の送信を要求されたタイミングに限らず、ステップS1702においてデータの登録を行ったタイミングで行われてもよい。
ステップS1703において、ポータル画面の送信が要求されていない場合(ステップS1703:No)は、企業間システム150は、ステップS1705へ移行する。すなわち、企業間システム150は、A社システム110、B社システム120またはC社システム130からデータの購入が通知されたか否かを判断する(ステップS1705)。
ステップS1705において、データの購入が通知された場合(ステップS1705:Yes)は、企業間システム150は、そのデータの提供者から通知元にそのデータが提供されたことを示すデータ取引TXを生成する(ステップS1706)。つぎに、企業間システム150は、ステップS1706によって生成したデータ取引TXをデータ取引履歴記録部252に記録し、記録したデータ取引TXのTXIDをステップS1705における通知元に通知する(ステップS1707)。そして、企業間システム150は、ステップS1701に戻る。
ステップS1705において、データの購入が通知されていない場合(ステップS1705:No)は、企業間システム150は、ユーザシステム270から取引TX取得API253が呼び出されたか否かを判断する(ステップS1708)。取引TX取得API253が呼び出されていない場合(ステップS1708:No)は、企業間システム150は、ステップS1701へ戻る。
ステップS1708において、取引TX取得API253が呼び出された場合(ステップS1708:Yes)は、企業間システム150は、ステップS1709へ移行する。すなわち、企業間システム150は、その取引TX取得API253の呼び出しにおいてキーとされたTXIDを有するデータ取引TXをデータ取引履歴記録部252から取得する(ステップS1709)。
つぎに、企業間システム150は、ステップS1709により取得したデータ取引TXを、取引TX取得API253の呼び出し元のユーザシステム270へ送信し(ステップS1710)、ステップS1701へ戻る。
(実施の形態にかかるユーザシステムによる処理)
図18は、実施の形態にかかるユーザシステムによる処理の一例を示すフローチャートである。まず、ユーザシステム270は、TXID、TX所有者および探索深さの指定をユーザから受け付けたか否かを判断し(ステップS1801)、TXID、TX所有者および探索深さの指定を受け付けるまで待つ(ステップS1801:Noのループ)。
ステップS1801において、TXID、TX所有者および探索深さの指定を受け付けると(ステップS1801:Yes)、ユーザシステム270は、ステップS1802へ移行する。すなわち、ユーザシステム270は、受け付けたTX所有者に対して、受け付けたTXIDをキーとしてデータ加工TXの送信を要求する(ステップS1802)。データ加工TXの送信の要求は、上述のようにTX所有者の加工TX取得APIの呼び出しにより行うことができる。
つぎに、ユーザシステム270は、データ加工TXを受信したか否かを判断し(ステップS1803)、データ加工TXを受信するまで待つ(ステップS1803:Noのループ)。データ加工TXを受信すると(ステップS1803:Yes)、ユーザシステム270は、受信したTXの数が、ステップS1801において受け付けた探索深さ以上であるか否かを判断する(ステップS1804)。受信したTXの数とは、たとえば、直前にステップS1801を実行してから現在時点までにユーザシステム270が受信したデータ加工TXおよびデータ取引TXの合計数である。
ステップS1804において、受信したTXの数が探索深さ以上である場合(ステップS1804:Yes)は、ユーザシステム270は、後述のステップS1811へ移行する。受信したTXの数が探索深さ以上でない場合(ステップS1804:No)は、ユーザシステム270は、ステップS1803において受信した最も古いデータ加工TXの加工元データTX所有者および加工元データTXIDを取得する(ステップS1805)。
つぎに、ユーザシステム270は、ステップS1805によって取得した加工元データTX所有者に対して、ステップS1805によって取得した加工元データTXIDをキーとしてデータ取引TXの送信を要求する(ステップS1806)。データ取引TXの送信の要求は、上述のようにTX所有者(企業間システム150)の取引TX取得API(取引TX取得API253)の呼び出しにより行うことができる。
つぎに、ユーザシステム270は、データ取引TXを受信したか否かを判断し(ステップS1807)、データ取引TXを受信するまで待つ(ステップS1807:Noのループ)。データ取引TXを受信すると(ステップS1807:Yes)、ユーザシステム270は、受信したTXの数が、ステップS1801において受け付けた探索深さ以上であるか否かを判断する(ステップS1808)。
ステップS1808において、受信したTXの数が探索深さ以上である場合(ステップS1808:Yes)は、ユーザシステム270は、ステップS1811へ移行する。受信したTXの数が探索深さ以上でない場合(ステップS1808:No)は、ユーザシステム270は、ステップS1807において受信したデータ取引TXの提供元データTX所有者および提供元データTXIDを取得する(ステップS1809)。
つぎに、ユーザシステム270は、ステップS1809によって取得した提供元データTX所有者に対して、ステップS1809によって取得した提供元データTXIDをキーとしてデータ加工TXの送信を要求する(ステップS1810)。そして、ユーザシステム270は、ステップS1803へ戻る。
ステップS1811において、ユーザシステム270は、受信した各TX(データ加工TXおよびデータ取引TX)に基づいてデータ加工・取引履歴画面を生成する(ステップS1811)。つぎに、ユーザシステム270は、ステップS1811によって生成したデータ加工・取引履歴画面をユーザに表示し(ステップS1812)、ステップS1801へ戻る。
図18においては受け付けられたTXIDを有するTXを起点としてそのTXより前の各TXを収集する処理について説明したが、受け付けられたTXIDを有するTXを起点としてそのTXより後の各TXを収集する処理としてもよい。たとえば、ユーザシステム270は、ステップS1801において、上述のTXID、TX所有者および探索深さに加えて、探索方向(“Backward”または“Forward”)を受け付けるようにしてもよい。
ユーザシステム270は、探索方向として“Backward”を受け付けた場合は、ステップS1802,S1806,S1810の各APIの呼び出しにおいて、キーとしたTXIDのTXよりも前に記録されたTXの送信を要求する。また、ユーザシステム270は、探索方向として“Forward”を受け付けた場合は、ステップS1802,S1806,S1810の各APIの呼び出しにおいて、キーとしたTXIDのTXよりも後に記録されたTXの送信を要求する。
(実施の形態にかかるデータ利用対価条件を組み込んだデータ取引TX)
図19は、実施の形態にかかる情報処理システムにおけるデータ利用対価条件を組み込んだデータ取引TXの一例を示す図である。図19において、図10に示した部分と同様の部分については説明を省略する。図19に示すように、B社システム120がA社システム110からデータXをダウンロードした際(データの取引時)に生成されるデータ取引TX102には、メンバとしてデータ利用対価条件1910が設定されてもよい。
データ利用対価条件1910は、データ取引TX102の生成時に得られたデータを利用(購入)するための対価を示す情報である。たとえば、データ利用対価条件1910は、このデータを直接購入する者がデータ取引TX102の生成者に支払う対価とすることができる。
または、データ利用対価条件1910は、このデータを直接購入する者だけでなく、このデータの購入した者がこのデータを加工して得たデータを購入する者がデータ取引TX102の生成者に支払う対価なども含んでもよい。すなわち、データ利用対価条件1910は、データ取引TX102の生成時に得られたデータを直接的または間接的に購入する各者がデータ取引TX102の生成者に支払う各対価であってもよい。
図19に示すデータ取引TX102の電子署名は、たとえば、データ取引TX102の所有者による、データ取引TX102の各メンバのうちTXID、電子署名およびデータ利用対価条件1910を除いた部分に基づく電子署名とすることができる。この場合に、電子署名は、データ取引TX102のTX所有者、ファイル名、TX内容、タイムスタンプ、提供元データTX所有者、提供元データTX取得APIのURL、提供元データTXIDおよびデータハッシュ値に基づいて算出される。
データ取引TX102のTXIDは、たとえばデータ取引TX102の各メンバのうちTXIDを除いた部分のハッシュ値である。すなわち、TXIDは、TX所有者、ファイル名、TX内容、タイムスタンプ、提供元データTX所有者、提供元データTX取得APIのURL、提供元データTXID、データハッシュ値、電子署名およびデータ利用対価条件1910に基づいて算出される。
データ取引TX(たとえばデータ取引TX102)のメンバにデータ利用対価条件を含める場合について説明したが、データ加工TX(たとえばデータ加工TX104,105)のメンバにもデータ利用対価条件を含めるようにしてもよい。これにより、データ取引TXおよびデータ加工TXのそれぞれについて、データの利用対価を設定することができる。情報処理システム200において、新しいデータ利用対価条件がブロックチェーンとコミットされた場合は、古いデータ利用対価条件は自動的に無効化される。
ただし、データ利用対価条件1910は、データ取引TX102のメンバとしてではなく、データ取引TX102と対応付けられたデータ取引TX102とは異なる情報として企業間システム150に記録されてもよい。これにより、データ取引TX102に影響を与えずにデータ利用対価条件1910の更新を行うことが可能になる。
情報処理システム200におけるデータ取引は、たとえば、上述のポータル画面上でデータの購入ボタンが押下され、企業間システム150においてそのデータについてのデータ取引TXが生成された時点で成立する。情報処理システム200におけるデータ取引の対価の支払いに仮想通貨を用いる場合、企業間システム150のデータ取引TXに基づいて対価の移転の計算が行われる。
(実施の形態にかかる情報処理システムにおける対価条件および総対価の計算)
図20は、実施の形態にかかる情報処理システムにおける対価条件および総対価の計算の一例を示す図である。図20に示すノードD0,L1,D1,T2,L3,D3,T4,D5は、あるデータについて、上述のデータ加工TXおよびデータ取引TXを収集することにより生成された、データ加工およびデータ取引の履歴を示している。
ノードD0は、新規のデータの生成時のデータ加工TXを示している。ノードL1は、新規のロジックデータの生成時のデータ加工TXを示している。ノードD1は、ノードD0のTXにおいて生成されたデータの、ノードL1のTXにおいて生成されたロジックデータが示すロジックによる加工時のデータ加工TXを示している。
ノードT2は、ノードD1のTXにおいて生成されたデータの取引時のデータ取引TXを示している。ノードL3は、ノードT2のTXにおいて生成されたロジックデータの加工時のデータ加工TXを示している。ノードD3は、ノードT2のTXにおいて取引されたデータの、ノードL3のTXにおいて加工されたロジックデータが示すロジックによる加工時のデータ加工TXを示している。
ノードT4は、ノードD3のTXにおいて加工されたデータの取引時のデータ取引TXを示している。ノードD5は、ノードT4のTXにおいて取引されたデータの加工時のデータ加工TXを示している。
これらのノードD0,L1,D1,T2,L3,D3,T4,D5が示す各TXについて、データ利用対価条件が設定される。たとえば、ノードD0が示す新規のデータの生成時のデータ加工TXについては、そのデータそのものの対価(たとえばそのデータの生成費用+α)が設定される。ノードL1が示す新規のロジックデータの生成時のデータ加工TXについては、そのロジックデータそのものの価値(たとえばそのロジックデータの開発費用+α)が設定される。
ノードD1,L3,D3,D5が示すデータの加工時の各データ加工TXについては、それぞれのデータの加工に伴う費用(たとえばロジックデータの実行環境費+人件費+α)が設定される。ノードT2,T4が示すデータの取引時の各データ取引TXについては、それぞれのデータの販売の手数料(たとえば人件費+α)が設定される。
ここで、ノードDkから見てN世代目の子孫がノードkに支払う対価をDk(N)とする。ノードLkから見てN世代目の子孫がノードkに支払う対価をLk(N)とする。ノードTkから見てN世代目の子孫がノードkに支払う対価をTk(N)とする。
この場合に、ノードDkのデータ加工TXに設定されるデータ利用対価条件は、N=1,2,3…のそれぞれについてのDk(N)とすることができる。ノードLkのデータ加工TXに設定されるデータ利用対価条件は、N=1,2,3…のそれぞれについてのLk(N)とすることができる。ノードTkのデータ取引TXに設定されるデータ利用対価条件は、N=1,2,3…のそれぞれについてのTk(N)とすることができる。
たとえば、ノードD0が示すデータ加工TXの所有者(新規のデータの生成者)が各子孫から得る総対価Iは、I=D0(1)+D0(2)+D0(3)+D0(4)+…となる。また、ノードT4が示すデータ取引TXにおけるデータの提供先、すなわちノードD5が示すデータ加工TXの所有者が支払う総対価Pは、P=D0(5)+L1(5)+D1(4)+T2(3)+L3(3)+D3(2)+T4(1)となる。
ただし、図20が示すデータ加工・取引履歴情報において矢印の前後の各ノード(たとえばノードL1,D1等)のTXにおけるTX所有者が同じである場合は、そのノード間の対価支払は相殺される。
(実施の形態にかかる情報処理システムにおける対価減衰モデル)
図21は、実施の形態にかかる情報処理システムにおける対価減衰モデルの一例を示す図である。図21に示すデータ加工履歴情報は、あるデータについて、上述のデータ加工TXを収集することにより生成された、データ加工の履歴を示している。図21に示すデータ加工履歴情報はノードD0~D3を含む。
ノードD0は、新規のデータの生成時のデータ加工TXを示している。ノードD1は、ノードT0のTXにおいて生成されたデータの加工時のデータ加工TXを示している。ノードD2は、ノードT1のTXにおいて加工されたデータの加工時のデータ加工TXを示している。ノードD3は、ノードT2のTXにおいて加工されたデータの加工時のデータ加工TXを示している。
上述のように、ノードDkから見てN世代目の子孫がノードkに支払う対価をDk(N)とする。この場合に、ノードDk(N)は、たとえばノードDk(N)=aN-1Dk(1)により定義することができる。ただし、ノードDkから見て1世代目の子孫がノードkに支払う対価をDk(1)については、ノードDkの所有者が設定する。aは、0<a<1を満たす減衰率である。
この場合に、ノードD0が示すデータ加工TXの所有者(新規のデータの生成者)が各子孫から得る総対価Iは、I=D0(1)+aD0(1)+a2D0(1)+a3D0(1)+…=D0(1)/(1-a)となる。また、ノードD3が示すデータ加工TXにおいて生成されたデータの購入者が支払う総対価Pは、P=a3D0(1)+a2D1(1)+aD2(1)+D3となる。
図21において説明したように、子孫のTXの所有者に対して課す利用対価を少しずつ減衰させるモデルにより各対価を計算してもよい。これにより、TXの世代が進むほどデータ価格が高騰することを回避することができる。子孫のTXの所有者に対して課す利用対価を一定の減衰率aで減衰させるモデルについて説明したが、減衰率aはTX毎に異なっていてもよい。
(実施の形態にかかる情報処理システムにおける仮想通貨を用いたデータ提供の処理)
図22は、実施の形態にかかる情報処理システムにおける仮想通貨を用いたデータ提供の処理の一例を示す図である。まず、A社システム110が、企業間システム150に対して仮想通貨の資金の入金処理を行ったとする(ステップS2201)。つぎに、企業間システム150が、ステップS2201の入金処理のTXを含むA社システム110の過去のすべての入金TXと、A社システム110の過去のすべてのデータ取引TXから、A社の資金残高を計算する(ステップS2202)。これにより、A社の資金残高が更新される。
また、B社システム120が、企業間システム150に対して仮想通貨の資金の入金処理を行ったとする(ステップS2203)。つぎに、企業間システム150が、ステップS2203の入金処理のTXを含むB社システム120の過去のすべての入金TXと、B社システム120の過去のすべてのデータ取引TXから、B社の資金残高を計算する(ステップS2204)。これにより、B社の資金残高が更新される。
その後、B社システム120が、データXの購入ボタンの押下を受け付けたとする(ステップS2205)。ステップS2205は、たとえば、図12のステップS1205~S1208において説明したように、A社ポータル画面251Aを参照したB社システム120のユーザが、B社システム120を操作してデータXの購入ボタンを押下することにより行われる。
つぎに、B社システム120が、ステップS2206,S2207を実行する。ステップS2206,S2207は、図12に示したステップS1209,S1210と同様である。ステップS2207のつぎに、企業間システム150が、データXのためにB社が支払う総対価を計算する(ステップS2208)。ステップS2208において、企業間システム150は、たとえば図20,図21において説明したモデルにより、データXのためにB社が支払う総対価を算出する。
たとえば、企業間システム150は、ユーザシステム270の加工・取引履歴取得ライブラリ272と同様の加工・取引TX取得ライブラリを備える。そして、企業間システム150は、この加工・取引TX取得ライブラリにより、データXについてのデータ加工・取引履歴情報を収集する。このデータ加工・取引履歴情報の収集の処理については、たとえば図13,図14に示したユーザシステム270によるデータ加工・取引履歴情報の収集の処理と同様である。そして、企業間システム150は、収集したデータXについてのデータ加工・取引履歴情報と、図20,図21において説明したモデルと、に基づいて、データXのためにB社が支払う総対価を算出する。
つぎに、企業間システム150が、ステップS2204により計算したB社の資金残高が、ステップS2208によって計算したデータXのためにB社が支払う総対価以上であることを確認する(ステップS2209)。ステップS2209において、B社の資金残高がデータXのためにB社が支払う総対価未満である場合は購入手続きがエラーとなる。この場合は、企業間システム150はB社システム120に対してエラーメッセージを送信し、B社システム120はA社システム110からデータXをダウンロードしない。
図22に示す例では、ステップS2209において、B社の資金残高がデータXのためにB社が支払う総対価以上であると確認されたとする。この場合に、企業間システム150は、図12に示したステップS1211と同様に、A社がB社にデータXを提供したことを示すデータ取引TXを生成し、生成したデータ取引TXをデータ取引履歴記録部252に記録する(ステップS2210)。
つぎに、企業間システム150が、A社システム110の過去のすべての入金TXと、ステップS2210において記録したデータ取引TXを含むA社システム110の過去のすべてのデータ取引TXから、A社の資金残高を計算する(ステップS2211)。これにより、A社の資金残高が更新される。また、企業間システム150が、B社システム120の過去のすべての入金TXと、ステップS2210において記録したデータ取引TXを含むB社システム120の過去のすべてのデータ取引TXから、B社の資金残高を計算する(ステップS2212)。これにより、B社の資金残高が更新される。
つぎに、企業間システム150が、図12に示したステップS1212と同様に、生成したデータ取引TXのTXIDをB社システム120へ通知する(ステップS2213)。ステップS2213の後、B社システム120は、図12に示したステップS1213~S1217と同様の処理を行う。
図22に示した処理により、データXの提供先であるB社の仮想通貨の口座の残高が自動的に減額され、逆にデータXの提供元であるA社の仮想通貨の口座の残高が自動的に増額される。また、たとえば、データXが別のデータDから生成されており、データDの生成のデータ加工TXに、データDから生成したデータの購入者が支払う対価が設定されている場合は、データDの生成者の仮想通貨の口座の残高も自動的に増額される。
(実施の形態にかかる情報処理システムにおけるサブセット・リクエスト方式によるデータ提供)
図23は、実施の形態にかかる情報処理システムにおけるサブセット・リクエスト方式によるデータ提供の一例を示す図である。図12において、B社がA社からデータXの提供を受ける処理について説明したが、その際に、サブセット・リクエスト方式を用いてデータXの提供を行ってもよい。
たとえば、まず、B社システム120は、ユーザの操作により、1回目の取引2301として、データXのサブセットであるサブセットS1を、企業間システム150を用いて購入し、A社システム110からダウンロードする。サブセットS1は、たとえば、データXから、一部のカラム、一部のロウ、または一部のカラムかつ一部のロウの部分を抽出した部分データである。
つぎに、B社システム120のユーザは、ダウンロードしたサブセットS1の内容を確認し、データXのさらに大きいサブセットの購入をB社システム120に指示したとする。この場合に、B社システム120は、2回目の取引2302として、データXのサブセットであって、データXにおけるサブセットS1とは異なる部分を含むサブセットS2を、企業間システム150を用いて購入し、A社システム110からダウンロードする。
図23に示す例では、サブセットS2はサブセットS1を含むサブセットである。この場合に、1回目のサブセットS1の取引2301はキャンセルされる。ただし、サブセットS2はサブセットS1を含まないサブセットであってもよい。また、図23に示す例では、サブセットS2はデータXにおける複数の部分に跨るサブセットであるが、サブセットS2はデータXにおける1つの部分であってもよい。
つぎに、B社システム120のユーザは、ダウンロードしたサブセットS2の内容を確認し、データXの購入をB社システム120に指示したとする。この場合に、B社システム120は、3回目の取引2303として、データXを、企業間システム150を用いて購入し、A社システム110からダウンロードする。
(実施の形態にかかる情報処理システムにおけるサブセット・リクエスト方式によるデータ提供の処理)
図24は、実施の形態にかかる情報処理システムにおけるサブセット・リクエスト方式によるデータ提供の処理の一例を示すシーケンス図である。まず、B社システム120が、A社システム110に対してデータXのサブセットS1の送信を要求する(ステップS2401)。
ステップS2401は、たとえば、B社システム120が、データXの識別情報と、データXにおけるサブセットS1の範囲を示す情報と、を含む要求信号を送信することにより実行される。ただし、データXにおけるサブセットS1の範囲はA社システム110において決定されてもよく、この場合はステップS2401において送信される要求信号に、データXにおけるサブセットS1の範囲を示す情報を含めなくてもよい。
つぎに、A社システム110が、データXのサブセットS1を生成する(ステップS2402)。たとえば、A社システム110は、ファイルシステム214に記録しているデータXのうち、B社システム120から受信した要求信号が示すサブセットS1の範囲のデータを抽出することによりサブセットS1を生成する。または、A社システム110は、ファイルシステム214に記録しているデータXのうち、A社システム110において決定した範囲のデータを抽出することによりサブセットS1を生成する。
つぎに、A社システム110が、ステップS2402によるサブセットS1の生成のデータ加工TXを生成し、生成したデータ加工TXをデータ加工履歴記録部211に記録する(ステップS2403)。このデータ加工TXのデータ利用対価条件は、サブセットに相応の条件、すなわちデータXのデータ利用対価条件より安価な対価条件とする。
また、A社システム110が、企業間システム150に対して、ステップS2402によって生成したサブセットS1の登録を要求する(ステップS2404)。ステップS2404において、A社システム110は、サブセットS1をB社に提供可能なデータとして登録することを要求する。たとえば、A社システム110は、サブセットS1のメタデータとB社システム120の識別情報とを含む要求信号を企業間システム150に対して送信することによりサブセットS1の登録を要求する。
その後、B社システム120が、サブセットS1の購入ボタンの押下を受け付けたとする(ステップS2405)。ステップS2405は、たとえば、図12において説明したデータXの購入と同様に、A社ポータル画面251Aを参照したB社システム120のユーザが、B社システム120を操作してサブセットS1の購入ボタンを押下することにより行われる。
ステップS2406~S2414は、サブセットS1に関する取引の処理であり、たとえば図12のステップS1209~S1217のデータXに関する取引の処理と同様である。これにより、A社システム110からB社システム120にサブセットS1がダウンロードされる。また、サブセットS1に関するデータ取引TXが企業間システム150に記録され、サブセットS1に関するデータ加工TXがB社システム120に記録される。
ただし、ステップS2408において、企業間システム150は、提供対象のサブセットが、過去にA社がB社に提供したサブセットを含む場合は、その過去の提供をキャンセル扱いとする。これにより、データXの同じ部分に対して重複した支払いが発生することを回避することができる。
図24に示した処理を1回実行し、または図24に示した処理をサブセットの範囲を変えながら繰り返し実行することで、B社システム120のユーザは、データXの購入前に、データXのサブセットを安価に購入して内容を確認することができる。このため、データの提供元が有するデータ内容の参照権限のアドバンテージを緩和し、データ取引を活性化させることができる。
その後、たとえば図12に示したステップS1205~S1217によってB社がA社からデータXを購入した場合には、ステップS1211において、企業間システム150は、図24に示した処理による取引をキャンセル扱いとする。たとえば、企業間システム150は、図24のステップS2408において記録したデータ取引TXを削除(無効化)する。これにより、データXとそのサブセットの両方に対して支払いが発生することを回避することができる。
このように、実施の形態にかかるB社システム120は、別環境のA社システム110から自システムがデータXを取得する。その際に、B社システム120は、加工元データTX所有者103aおよび加工元データTXID103bを取得する。加工元データTX所有者103aおよび加工元データTXID103bは、A社システム110が記録しているデータ加工TX101をA社システム110に取得要求することが可能な取得要求情報である。このデータ加工TX101はデータXの提供元を特定する加工元データTX所有者101aおよび加工元データTXID101bを含む。そして、B社システム120は、取得した取得要求情報を含む、データXのデータ加工TX103を生成し、生成したデータ加工TX103を、データXと関連付けして記録する。
このように、B社システム120は、別環境からデータを取得する際、データ提供元の特定情報を含む履歴情報の取得要求情報を取得し、それに基づき新たに履歴情報を生成し、データと関連付けて記憶する。これにより、データの提供先が記録したデータに関する履歴情報から、データの提供先が記録する履歴情報を取得することが可能になる。このため、整合性の取れた履歴情報を短時間で収集することができ、別環境の他システムから提供されたデータについて、システムを跨いだデータ履歴の追跡が容易になる。
また、A社システム110からB社システム120へのデータXの提供は、企業間システム150を用いた取引によって行われてもよい。企業間システム150は、A社システム110からB社システム120へのデータXの提供の際に、データ取引TX102を生成して記録する。データ取引TX102は、A社システム110の識別子である提供元データTX所有者102aと、データ加工TX101の識別子である提供元データTX所有者102aとを含む。
この場合に、B社システム120は、上述のデータXの提供の際に、企業間システム150の識別子である加工元データTX所有者103aと、企業間システム150から通知される加工元データTXID103bと、を上述の取得要求情報として取得する。加工元データTXID103bはデータ取引TX102の識別子である。
これにより、B社システム120に記録されたデータ加工TX103に含まれる加工元データTX所有者103aおよび加工元データTXID103b(取得要求情報)に基づく企業間システム150への取得要求によりデータ取引TX102を取得できる。この取得要求はたとえばユーザシステム270により行われる。また、取得したデータ取引TX102に含まれる提供元データTX所有者102aおよび提供元データTXID102bに基づくA社システム110への取得要求によりデータ加工TX101を取得できる。このように、環境(A社システム110およびB社システム120)を跨いでデータの履歴を追跡することができる。
ただし、A社システム110からB社システム120へのデータXの提供は、企業間システム150を用いずに行われてもよい。この場合は、たとえばデータ加工TX103には、加工元データTX所有者103aおよび加工元データTXID103bに代えて提供元データTX所有者102aおよび提供元データTXID102bが取得要求情報として格納される。これにより、たとえばB社システム120に記録されたデータ加工TX103に含まれる提供元データTX所有者102aおよび提供元データTXID102bに基づくA社システム110への取得要求によりデータ加工TX101を取得できる。したがって、A社システム110からB社システム120へのデータXの提供が企業間システム150を用いた取引によって行われる場合と同様に、環境(A社システム110およびB社システム120)を跨いでデータの履歴を追跡することができる。
また、B社システム120は、自システムにおいてA社システム110から取得したデータXがデータYに加工された際に、データ加工TX103の識別子である加工元データTXID105bを含む、データYのデータ加工TX105を生成してもよい。このデータ加工TX105はデータYと関連付けして記録される。また、データ加工TX105にはさらに加工元データTX所有者105aが含まれてもよい。
これにより、データYのデータ加工TX105から、加工元データTXID105bを参照してデータ加工TX103を取得し、データ加工TX103から上述のようにシステムを跨いで履歴を追跡することができる。なお、データ加工TX103およびデータ加工TX105はともにB社システム120に記録されているため、データ加工TX105は加工元データTX所有者105aを含まなくてもよい。
また、データ加工TX105には、データXからデータYへの加工に用いられたロジックデータLのデータ加工TX104の識別子である適用ロジックTXID105dが含まれてもよい。また、データ加工TX105にはさらに適用ロジックTX所有者105cが含まれてもよい。
これにより、データYのデータ加工TX105から、適用ロジックTXID105dを参照してロジックデータLのデータ加工TX104を取得し、データ加工TX104からシステムを跨いでロジックデータLの履歴を追跡することができる。なお、データ加工TX104およびデータ加工TX105はともにB社システム120に記録されているため、データ加工TX105は適用ロジックTX所有者105cを含まなくてもよい。
また、B社システム120は、A社システム110からのデータXの取得を、自システムによるA社システム110からのデータXのサブセットS1の取得結果に応じたユーザ操作に応じて行ってもよい。これにより、B社システム120のユーザは、データXの購入前に、データXのサブセットS1を購入して内容を確認することができる。このため、データの提供元であるA社システム110が有するデータ内容の参照権限のアドバンテージを緩和し、データ取引を活性化させることができる。
以上説明したように、情報処理装置、情報処理プログラムおよび情報処理方法によれば、別環境の他システムから提供されたデータについて、システムを跨いだデータ履歴の追跡を容易にすることができる。
なお、本実施の形態で説明した情報処理方法は、たとえば、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD-ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布されてもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)別環境の他システムから自システムがデータを取得する際に、前記他システムが記録している前記データの提供元を特定する情報を含む第1の履歴情報を前記他システムに取得要求することが可能な取得要求情報を取得する取得部と、
前記取得部によって取得された前記取得要求情報を含む、前記データの第2の履歴情報を生成する生成部と、
前記生成部によって生成された前記第2の履歴情報を前記データと関連付けして記録する記録部と、
を備えることを特徴とする情報処理装置。
(付記2)前記取得部は、前記他システムから前記データを取得する際に、前記他システムと自システムとの間の前記データの取引を管理する管理システムであって、前記他システムの識別子と前記第1の履歴情報の識別子とを含む第3の履歴情報を生成して記録する管理システムから通知される前記第3の履歴情報の識別子と、前記管理システムの識別子と、を前記取得要求情報として取得することを特徴とする付記1に記載の情報処理装置。
(付記3)前記生成部は、前記他システムから取得した前記データが他のデータに加工された際に、前記第2の履歴情報の識別子を含む前記他のデータの第4の履歴情報を生成し、
前記記録部は、前記生成部によって生成された前記第4の履歴情報を前記他のデータと関連付けして記録する、
ことを特徴とする付記1または2に記載の情報処理装置。
(付記4)前記生成部は、前記他システムから取得した前記データが、自システムにおいてデータ加工の処理を規定する加工処理データに基づいて他のデータに加工された際に、前記第2の履歴情報の識別子と、自システムに記録された前記加工処理データの履歴情報の識別子と、を含む前記他のデータの第4の履歴情報を生成し、
前記記録部は、前記生成部によって生成された前記第4の履歴情報を前記他のデータと関連付けして記録する、
ことを特徴とする付記1~3のいずれか一つに記載の情報処理装置。
(付記5)自システムによる前記他システムからの前記データの取得は、自システムによる前記他システムからの前記データのサブセットの取得結果に応じたユーザ操作に応じて行われることを特徴とする付記1~4のいずれか一つに記載の情報処理装置。
(付記6)別環境の他システムから自システムがデータを取得する際に、前記他システムが記録している前記データの提供元を特定する情報を含む第1の履歴情報を前記他システムに取得要求することが可能な取得要求情報を取得し、
取得した前記取得要求情報を含む、前記データの第2の履歴情報を生成し、
生成した前記第2の履歴情報を前記データと関連付けして記録する、
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
(付記7)第1のシステムの情報処理装置が、
別環境の第2のシステムからデータを取得する際に、前記第2のシステムが記録している前記データの提供元を特定する情報を含む第1の履歴情報を前記第2のシステムに取得要求することが可能な取得要求情報を取得し、
取得した前記取得要求情報を含む、前記データの第2の履歴情報を生成し、
生成した前記第2の履歴情報を前記データと関連付けして記録する、
ことを特徴とする情報処理方法。
(付記8)前記第1のシステムと前記第2のシステムとの間の前記データの取引を管理する管理システムが、前記第1のシステムが前記第2のシステムから前記データを取得する際に、前記第2のシステムから前記第1の履歴情報を取得し、前記第1の履歴情報に含まれる前記提供元を特定する情報に基づいて前記取引における支払いの計算を行うことを特徴とする付記7に記載の情報処理方法。