(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023119188
(43)【公開日】2023-08-28
(54)【発明の名称】プログラム、装置及び方法
(51)【国際特許分類】
G06Q 10/0833 20230101AFI20230821BHJP
【FI】
G06Q10/08 306
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022021912
(22)【出願日】2022-02-16
【新規性喪失の例外の表示】新規性喪失の例外適用申請有り
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVASCRIPT
(71)【出願人】
【識別番号】521256827
【氏名又は名称】SBIトレーサビリティ株式会社
(74)【代理人】
【識別番号】110002815
【氏名又は名称】IPTech弁理士法人
(72)【発明者】
【氏名】生永 雄輔
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049AA16
(57)【要約】
【課題】農産物や食品のトレーサビリティのためにブロックチェーンを利用するにあたって、ブロックチェーンの書込/書換回数を抑制する。
【解決手段】プログラム221は、食品の中間物または生産物の出荷から消費者への販売、または海外への販売までの取引データを受け付けて、食品の中間物または生産物を特定する情報に紐付けてメモリ220に格納する第1ステップと、食品の中間物または生産物の出荷から消費者への販売、または海外への販売までの任意のタイミングにおける取引データを受け付けたら、メモリ220に格納されている食品の中間物または生産物を特定する情報により特定されるファイルデータ223に基づいて1つのトランザクションファイルを生成する第2ステップと、トランザクションファイルに基づき、ブロックチェーンデータ227の生成をブロックチェーン基盤に指示する第3ステップとを実行する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
プロセッサと、メモリとを備えるコンピュータを動作させるためのプログラムであって、
前記プログラムは、前記プロセッサに、
食品の中間物または生産物の出荷から消費者への販売、または海外への販売までの取引データを受け付けて、前記食品の中間物または生産物を特定する情報に紐付けて前記メモリに格納する第1ステップと、
前記食品の中間物または生産物の出荷から消費者への販売、または海外への販売までの任意のタイミングにおける前記取引データを受け付けたら、前記メモリに格納されている、前記食品の中間物または生産物を特定する情報により特定される複数の前記取引データに基づいて1つのトランザクションファイルを生成する第2ステップと、
前記トランザクションファイルに基づき、ブロックチェーンの生成をブロックチェーン基盤に指示する第3ステップと
を実行させる、プログラム。
【請求項2】
前記プログラムは、前記第2ステップにおいて、前記食品の中間物または生産物の消費者への販売、または海外への販売に伴う前記取引データを受け付けたら、前記メモリに格納されている、前記食品の中間物または生産物を特定する情報により特定される複数の前記取引データに基づいて1つの前記トランザクションファイルを生成する
請求項1記載のプログラム。
【請求項3】
前記取引データは前記食品の中間物または生産物の出荷から消費者への販売準備完了までが特定可能な情報を有する
請求項1または2記載のプログラム。
【請求項4】
前記食品の中間物または生産物の出荷時の前記取引データは、この食品の中間物または生産物の生産総量に関するデータを有する
請求項1~3のいずれかに記載のプログラム。
【請求項5】
前記食品の中間物または生産物の前記出荷時以外の前記取引データは、この食品の中間物または生産物の使用量のみに関するデータが含まれており、前記トランザクションファイルの生成の際に、前記食品の中間物または生産物を特定する情報により特定される前記取引データから前記食品の中間物または生産物の販売数量を確定する
請求項4に記載のプログラム。
【請求項6】
前記プログラムは、前記プロセッサに、
販売された前記食品の中間物または生産物に識別コードを付与する第4ステップと、
前記識別コードに基づいて前記コンピュータにアクセスしたユーザに対して、前記識別コードに紐付けられた前記ブロックチェーンを参照して、前記食品の中間物または生産物のトレーサビリティ情報を提示する第5ステップと
を実行させる請求項1~5のいずれかに記載のプログラム。
【請求項7】
前記取引データは、前記食品の中間物または生産物に関する名称、生産者または取引業者の名称及び所在地の少なくとも一つに関するデータを有する
請求項1~6のいずれかに記載のプログラム。
【請求項8】
前記生産者または前記取引業者の前記所在地に関するデータは、前記所在地のエリアデータである
請求項7に記載のプログラム。
【請求項9】
プロセッサと、メモリとを備える装置であって、
前記プロセッサが、
食品の中間物または生産物の出荷から消費者への販売、または海外への販売までの取引データを受け付けて、前記食品の中間物または生産物を特定する情報に紐付けて前記メモリに格納する第1ステップと、
前記食品の中間物または生産物の出荷から消費者への販売、または海外への販売までの任意のタイミングにおける前記取引データを受け付けたら、前記メモリに格納されている、前記食品の中間物または生産物を特定する情報により特定される複数の前記取引データに基づいて1つのトランザクションファイルを生成する第2ステップと、
前記トランザクションファイルに基づき、ブロックチェーンの生成をブロックチェーン基盤に指示する第3ステップと
を実行する、装置。
【請求項10】
プロセッサとメモリとを備えるコンピュータの前記プロセッサが、
食品の中間物または生産物の出荷から消費者への販売、または海外への販売までの取引データを受け付けて、前記食品の中間物または生産物を特定する情報に紐付けて前記メモリに格納する第1ステップと、
前記食品の中間物または生産物の出荷から消費者への販売、または海外への販売までの任意のタイミングにおける前記取引データを受け付けたら、前記メモリに格納されている、前記食品の中間物または生産物を特定する情報により特定される複数の前記取引データに基づいて1つのトランザクションファイルを生成する第2ステップと、
前記トランザクションファイルに基づき、ブロックチェーンの生成をブロックチェーン基盤に指示する第3ステップと
を実行する、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、プログラム、装置及び方法に関する。
【背景技術】
【0002】
農産物や食品のトレーサビリティのためにブロックチェーンを利用する技術が知られている(例えば特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に例示するように、食品のトレーサビリティのためにブロックチェーンを利用する場合、農産物の流通過程(例えば農産物の小分け)毎にトランザクションが発生し、トランザクションが発生する都度ブロックチェーンの書込(書き換え)を行う必要がある。ブロックチェーンの書込は、一般的に、ブロックチェーン基盤と呼ばれる外部機関により行われる。ブロックチェーン基盤は、ブロックチェーンの書込/書き換え毎に手数料を徴収することが多い。従って、農産物のように、多種多様な流通過程において流通業者や加工業者が慣用する品目において、ブロックチェーンによりトレーサビリティを追跡、保証するシステムを運用すると、ブロックチェーンの書込/書き換え回数が多くなり、結果的に手数料が嵩む可能性がある。
【0005】
そこで、本開示は、上記課題を解決すべくなされたものであって、その目的は、農産物や食品のトレーサビリティのためにブロックチェーンを利用するにあたって、ブロックチェーンの書込/書換回数を抑制することが可能なプログラム、装置、方法を提供することである。
【課題を解決するための手段】
【0006】
一実施形態によると、プロセッサを備えるコンピュータを動作させるためのプログラムが提供される、このプログラムは、プロセッサに、食品の中間物または生産物の出荷から消費者への販売、または海外への販売までの取引データを受け付けて、食品の中間物または生産物を特定する情報に紐付けてメモリに格納する第1ステップと、食品の中間物または生産物の出荷から消費者への販売、または海外への販売までの任意のタイミングにおける取引データを受け付けたら、メモリに格納されている、食品の中間物または生産物を特定する情報により特定される複数の取引データに基づいて1つのトランザクションファイルを生成する第2ステップと、トランザクションファイルに基づき、ブロックチェーンの生成をブロックチェーン基盤に指示する第3ステップとを実行させる。
【発明の効果】
【0007】
本開示によれば、農産物や食品のトレーサビリティのためにブロックチェーンを利用するにあたって、ブロックチェーンの書込/書換回数を抑制することが可能となる。
【図面の簡単な説明】
【0008】
【
図1】実施形態に係るシステムの概要を示す図である。
【
図2】実施形態に係るシステムのハードウェア構成を示すブロック図である。
【
図3】実施形態に係る入力側サーバの機能的な構成を示す図である。
【
図4】実施形態に係る出力側サーバの機能的な構成を示す図である。
【
図5】実施形態に係る端末装置の機能的な構成を示す図である。
【
図6】実施形態に係る入力側サーバに格納されたトークンDBのデータ構造を示す図である。
【
図7】実施形態に係る入力側サーバに格納されたユーザ情報DBのデータ構造を示す図である。
【
図8】実施形態に係る入力側サーバに格納された業者DBのデータ構造を示す図である。
【
図9】実施形態に係る入力側サーバの動作の一例を説明するためのフローチャートである。
【
図10】実施形態に係る入力側サーバの動作の一例を説明するためのフローチャートであって、
図9に示す動作の続きを示す図である。
【
図11】実施形態に係る入力側サーバの動作の一例を説明するためのフローチャートであって、
図9に示す動作の続きを示す図である。
【
図12】実施形態に係る出力側サーバの動作の一例を説明するためのフローチャートである。
【
図13】実施形態に係るシステムにおける端末装置に表示される画面の一例を示す図である。
【
図14】実施形態に係るシステムにおける端末装置に表示される画面の他の例を示す図である。
【
図15】実施形態に係るシステムにおける端末装置に表示される画面のまた他の例を示す図である。
【
図16】実施形態に係るシステムにおける端末装置に表示される画面のさらに他の例を示す図である。
【
図17】実施形態に係るシステムにおける端末装置に表示される画面のさらにまた他の例を示す図である。
【
図18】実施形態に係るシステムにおける端末装置に表示される画面のさらにまた他の例を示す図である。
【
図19】実施形態に係るシステムにおける端末装置に表示される画面のさらにまた他の例を示す図である。
【発明を実施するための形態】
【0009】
以下、本開示の実施形態について図面を参照して説明する。実施形態を説明する全図において、共通の構成要素には同一の符号を付し、繰り返しの説明を省略する。なお、以下の実施形態は、特許請求の範囲に記載された本開示の内容を不当に限定するものではない。また、実施形態に示される構成要素のすべてが、本開示の必須の構成要素であるとは限らない。また、各図は模式図であり、必ずしも厳密に図示されたものではない。
【0010】
また、以下の説明において、「プロセッサ」は、1以上のプロセッサである。少なくとも1つのプロセッサは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサであるが、GPU(Graphics Processing Unit)のような他種のプロセッサでもよい。少なくとも1つのプロセッサは、シングルコアでもよいしマルチコアでもよい。
【0011】
また、少なくとも1つのプロセッサは、処理の一部又は全部を行うハードウェア回路(例えばFPGA(Field-Programmable Gate Array)又はASIC(Application Specific Integrated Circuit))といった広義のプロセッサでもよい。
【0012】
また、以下の説明において、「xxxテーブル」といった表現により、入力に対して出力が得られる情報を説明することがあるが、この情報は、どのような構造のデータでもよいし、入力に対する出力を発生するニューラルネットワークのような学習モデルでもよい。従って、「xxxテーブル」を「xxx情報」と言うことができる。
【0013】
また、以下の説明において、各テーブルの構成は一例であり、1つのテーブルは、2以上のテーブルに分割されてもよいし、2以上のテーブルの全部又は一部が1つのテーブルであってもよい。
【0014】
また、以下の説明において、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサによって実行されることで、定められた処理を、適宜に記憶部及び/又はインタフェース部などを用いながら行うため、処理の主語が、プロセッサ(或いは、そのプロセッサを有するコントローラのようなデバイス)とされてもよい。
【0015】
プログラムは、計算機のような装置にインストールされてもよいし、例えば、プログラム配布サーバ又は計算機が読み取り可能な(例えば非一時的な)記録媒体にあってもよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
【0016】
また、以下の説明において、種々の対象の識別情報として、識別番号が使用されるが、識別番号以外の種類の識別情報(例えば、英字や符号を含んだ識別子)が採用されてもよい。
【0017】
また、以下の説明において、同種の要素を区別しないで説明する場合には、参照符号(又は、参照符号のうちの共通符号)を使用し、同種の要素を区別して説明する場合は、要素の識別番号(又は参照符号)を使用することがある。
【0018】
また、以下の説明において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
【0019】
<実施形態>
<実施形態の概要>
実施形態に係るシステムは、農産物のトレーサビリティのためにブロックチェーンを用いる際、農産物の流通過程(例えば農産物の小分け)毎にトランザクションを発生させてその都度ブロックチェーンを書き換えるのではなく、生産物の流通が国を跨ぐ場合など、生産物の保有者の属性が大きく変わる場合にまとめてブロックチェーンに書き込むシステムである。なお、以下の実施形態の説明においては、説明の単純化のため、生産物が国を跨がないで流通する(つまり国内でのみ流通する)例を中心に説明し、国を跨いで流通する(つまり生産物の輸出が行われる)例については後に説明を行う。
【0020】
本実施例に係るシステムは、農産物のトレーサビリティのためのみに用いられるのではなく、広く生産物またはその中間物のトレーサビリティに用いることが可能である。但し、以降の説明においては、農産物またはその中間物(例えば米であれば籾米は中間物である)のトレーサビリティに用いられるシステムについて説明を行う。また、「生産物」という表現は、生産物およびその中間物を指すものとして以降の説明で用いることにする。
【0021】
図1を参照して、実施形態である情報処理装置であるサーバが適用されたシステムの概要について説明する。
【0022】
実施形態に係るシステムでは、生産者1は、所定の数量の生産物(
図1では1,000kgの米)を出荷する際に、システムに対して、1,000kgの米を出荷したこと、さらに、この米の品種名、生産者情報等を記録し、システムは、1,000kgの米が特定の生産者1から出荷されたことが記録され、さらには生産者1から入力された情報が記録されたトークン(ここではファイル)を発行する。発行したトークンはシステムのメモリ内に格納される。この際、システムは、トークン発行に伴い、トークンが発行された生産物(米)を特定するための識別コードを発行する。発行された識別コードは、実際の生産物(米)に貼付等されることで、生産物の流通の際にこの生産物を個別に識別する情報として流通される。
【0023】
流通業者2は、トークンが発行された生産物の入荷日、出荷日に関する情報をシステムに記録し、システムは、流通業者2から入力された情報をトークンに記録し(書き換え)、システムのメモリ内に格納する。
【0024】
生産物の小分け、加工(米であれば精米等)等を行う加工業者3aは、この加工業者3aにより加工された米を出荷する際に、出荷した米の数量、出荷日等をシステムに記録する。システムは、加工業者3aにより記録された情報が記録されたトークンを発行する。発行したトークンはシステムのメモリ内に格納される。このトークンには、生産者1からの情報に基づいて発行されたトークンに対する親子関係(生産者1からの情報に基づくトークンが親トークン、加工業者3aからの情報に基づくトークンが子トークン)に関する情報が記録されている。また、親トークン-子トークンの間の整合性のチェックもメモリに格納される前に実行される。
【0025】
そして、消費者4への最終出荷を行う(つまり小分け等の加工をした生産物について以降の加工工程がなく、消費者4がそのまま消費可能な状態までの加工を行った)加工業者3bは、加工等を行って最終出荷をする際に、出荷した米の数量、出荷日等をシステムに記録する。システムは、加工業者3bにより記録された情報が記録されたトークンを発行する。
【0026】
そして、システムは、最終出荷段階で発行されたトークン、及び、このトークンに対して親に相当するトークンに記録された情報を1つのファイルにまとめ、このファイルに対して
図1において図示を省略するブロックチェーン基盤に対して、ファイルに基づくブロックチェーンの生成を指示する。ブロックチェーンは、この指示に基づいてブロックを生成し、システムに送出する。システムは、このブロックチェーンをメモリ内に格納する。
【0027】
消費者4は、生産部に付された識別コードを用いてシステムにアクセスする。システムは、この識別コードに基づいてブロックチェーンを検索し、このブロックチェーンの内容に基づいて生産物のトレーサビリティ情報を消費者4に提示する。
【0028】
なお、以下の説明において、加工業者3a、3bを特に区別して説明しない場合は、単に加工業者3として説明する。
【0029】
<システムSの基本構成>
図2を参照して、実施形態である情報処理装置であるサーバが適用されたシステムの基本構成について説明する。
【0030】
図2は、実施形態のシステムSの全体の構成を示す図である。
図2に示すように、本実施形態のシステムSは、ネットワーク80を介して接続された複数の端末装置10(
図2では、端末装置10A及び端末装置10Bを示している。以下、総称して「端末装置10」ということもある)、入力側サーバ20、出力側サーバ30及びブロックチェーン基盤40を有する。入力側サーバ20の機能構成を
図3に、出力側サーバ30の機能構成を
図4に、端末装置10の機能構成を
図5に示す。これら入力側サーバ20、出力側サーバ30及び端末装置10は、情報処理装置により構成されている。
【0031】
情報処理装置は演算装置と記憶装置とを備えたコンピュータにより構成されている。コンピュータの基本ハードウェア構成および、当該ハードウェア構成により実現されるコンピュータの基本機能構成は後述する。なお、入力側サーバ20、出力側サーバ30及び端末装置10のそれぞれについて、後述するコンピュータの基本ハードウェア構成およびコンピュータの基本機能構成と重複する説明は繰り返さない。
【0032】
入力側サーバ20及び出力側サーバ30は、本実施例のシステムSにおいてトレーサビリティ情報を生成しかつ提示するサイトを提供する情報処理装置であり、通常取引を行う主体により運営される。詳細には、入力側サーバ20は、本実施例のシステムSにおいて業者(生産者1、流通業者2、加工業者3)からの情報入力により生産物に関するトークンの発行及び記録を行い、発行及び記録されたトークンに基づいて、トランザクションファイルを生成してブロックチェーン基盤40に対してブロックチェーン発行を依頼する。ブロックチェーン基盤40により発行されたブロックチェーンは入力側サーバ20及び出力側サーバ30が共有する。出力側サーバ30は、消費者4等からのトレーサビリティ情報の要求があったら、ブロックチェーン基盤40により生成されたブロックチェーンを用いてトレーサビリティ情報を生成し、消費者4に提示する。従って、入力側サーバ20及び出力側サーバ30は、いわゆるWebサーバとしての機能と、データ(ベース)サーバとしての機能を有する。
【0033】
端末装置10は、各ユーザが操作する装置である。ここで、ユーザとは、端末装置10を使用してシステムSの機能であるトレーサビリティ情報の書込、書き換え及び参照を行う者であり、例えば法人(企業)の経営者、従業員等をいう。端末装置10は、例えば移動体通信システムに対応したタブレットや、スマートフォン等の携帯端末であっても、据え置き型のPC(Personal Computer)、ラップトップPC等であってもよい。
【0034】
端末装置10は、ネットワーク80を介して入力側サーバ20、出力側サーバ30と通信可能に接続される。端末装置10は、4G、5G、LTE(Long Term Evolution)等の通信規格に対応した無線基地局81、IEEE(Institute of Electrical and Electronics Engineers)802.11等の無線LAN(Local Area Network)規格に対応した無線LANルータ82等の通信機器と通信することにより、ネットワーク80に接続される。端末装置10と無線LANルータ82等の間を無線で接続する場合、通信プロトコルとして例えば、Z-Wave(登録商標)、ZigBee(登録商標)、Bluetooth(登録商標)等が含まれる。有線で接続する場合は、USB(Universal Serial Bus)ケーブル等により直接接続するものも含む。
【0035】
ブロックチェーン基盤40は、入力側サーバ20等からの依頼に基づき、入力側サーバ20から送信されたデータからブロックを生成し、ブロックチェーンをブロックチェーン生成の依頼があった入力側サーバ20及び出力側サーバ30に送信する。入力側サーバ20及び出力側サーバ30は、ブロックチェーン基盤40から送信されたブロックチェーンをメモリ内に格納する(詳細については後述する)。なお、ブロックチェーン基盤40によるブロックチェーン生成の詳細な手順、及び、ブロックチェーンの原理については周知であるので、本明細書での説明は行わない。
【0036】
図2に端末装置10Bとして示すように、端末装置10は、通信IF(Interface)12と、入力装置13と、出力装置14と、メモリ15と、記憶部16と、プロセッサ19とを備える。
【0037】
通信IF12は、端末装置10が入力側サーバ20などの外部の装置と通信するため、信号を入出力するためのインタフェースである。入力装置13は、ユーザからの入力操作を受け付けるための入力装置(例えば、キーボードや、タッチパネル、タッチパッド、マウス等のポインティングデバイス等)である。出力装置14は、ユーザに対し情報を提示するための出力装置(ディスプレイ、スピーカ等)である。メモリ15は、プログラム、及び、プログラム等で処理されるデータ等を一時的に記憶するためのものであり、例えばDRAM(Dynamic Random Access Memory)等の揮発性のメモリである。記憶部16は、データを保存するための記憶装置であり、例えばフラッシュメモリ、HDD(Hard Disc Drive)である。プロセッサ19は、プログラムに記述された命令セットを実行するためのハードウェアであり、演算装置、レジスタ、周辺回路等により構成される。
【0038】
入力側サーバ20及び出力側サーバ30は、トレーサビリティ管理に係る一連の処理を管理する装置である。
図2では入力側サーバ20のハードウェア構成のみ図示しているが、出力側サーバ30のハードウェア構成も入力側サーバ20と同様であるので、図示を行わない。入力側サーバ20は、通信IF22と、入出力IF23と、メモリ25と、ストレージ26と、プロセッサ29とを備える。
【0039】
通信IF22は、入力側サーバ20が外部の装置と通信するため、信号を入出力するためのインタフェースである。入出力IF23は、ユーザからの入力操作を受け付けるための図示しない入力装置、及び、ユーザに対し情報を提示するための図示しない出力装置とのインタフェースとして機能する。メモリ25は、プログラム、及び、プログラム等で処理されるデータ等を一時的に記憶するためのものであり、例えばDRAM(Dynamic Random Access Memory)等の揮発性のメモリである。ストレージ26は、データを保存するための記憶装置であり、例えばフラッシュメモリ、HDD(Hard Disc Drive)である。プロセッサ29は、プログラムに記述された命令セットを実行するためのハードウェアであり、演算装置、レジスタ、周辺回路等により構成される。
【0040】
<入力側サーバ20の機能構成>
入力側サーバ20のハードウェア構成が実現する機能構成を
図3に示す。入力側サーバ20は、記憶部220、制御部230、通信部240を備える。通信部240は通信IF22により構成され、記憶部220は入力側サーバ20のストレージ26により構成され、制御部230は主に入力側サーバ20のプロセッサ29により構成される。
【0041】
通信部240は、ネットワークNを介して端末装置10等との間での通信を行う。
【0042】
<入力側サーバ20の記憶部220の構成>
入力側サーバ20の記憶部220は、トークンDB(DataBase)222、ファイルデータ223、ユーザ情報DB224、業者DB225、画像データ226、画面データ227、及びブロックチェーンデータ228を有する。
【0043】
これらトークンDB222等のうち、ファイルデータ223、画像データ226及び画面データ227を除くものはデータベースである。ここに言うデータベースは、リレーショナルデータベースを指し、行と列によって構造的に規定された表形式のテーブルと呼ばれるデータ集合を、互いに関連づけて管理するためのものである。データベースでは、表をテーブル、表の列をカラム、表の行をレコードと呼ぶ。リレーショナルデータベースでは、テーブル同士の関係を設定し、関連づけることができる。
【0044】
通常、各テーブルにはレコードを一意に特定するための主キーとなるカラムが設定されるが、カラムへの主キーの設定は必須ではない。制御部230は、各種プログラムに従ってプロセッサ29に、記憶部220に記憶された特定のテーブルにレコードを追加、削除、更新を実行させることができる。
【0045】
図6は、トークンDB222のデータ構造を示す図である。トークンDB222は、入力側サーバ20が発行するトークンを管理するデータベースである。
【0046】
トークンDB222は、生成されたトークンを特定するためのトークンIDを主キーとして、ファイル名のカラムを有するテーブルである。
【0047】
「トークンID」は、トークンを特定するための情報である。「ファイル名」は、トークンIDにより特定されるトークン(ファイル)のファイル名である。後述するように、ファイル名により特定されるトークン(ファイル)はファイルデータ223内に格納されている。
図5に示すように、ファイルは拡張子jsonを有することからも明らかなように、ファイルはjson(JavaScript Object Notation)形式のファイルである。
【0048】
トークンDB222において、全てのカラムに格納される情報は入力側サーバ20のトークン管理部234及びファイル生成部235が生成し、トークンDB222に格納する。
【0049】
図7は、ユーザ情報DB224のデータ構造を示す図である。ユーザ情報DB224は、入力側サーバ20にアクセスするユーザの認証に必要な情報を管理するデータベースである。
【0050】
ユーザ情報DB224は、入力側サーバ20にアクセスするユーザである業者を特定するための業者IDを主キーとして、パスワードのカラムを有するテーブルである。
【0051】
「業者ID」は、業者を特定するための情報である。「パスワード」は、業者IDにより特定される業者が入力側サーバ20にアクセスする際に使用するパスワードである。
【0052】
ユーザ情報DB224における各々のカラムは、入力側サーバ20へ業者が初回登録する際に、この業者により入力され、入力側サーバ20の制御部230がユーザ情報DB224に格納する。
【0053】
図8は、業者DB225のデータ構造を示す図である。業者DB225は、入力側サーバ20が管理する農産物等の生産物の生産者1、流通業者2、加工業者3等の業者に関するデータを管理するデータベースである。
【0054】
業者DB225は、業者を特定するための情報である業者IDを主キーとして、業者種類、業者名称、業者画像、地理的位置及び都道府県のカラムを有するテーブルである。
【0055】
「業者ID」は、業者を特定するための情報であり、ユーザ情報DB224の「業者ID」と共通である。「業者種類」は、業者IDにより特定される業者の種類の関する情報である。「業者名称」は、業者IDにより特定される業者の名称に関する情報である。「業者画像」は、業者IDにより特定される業者を表す画像データのファイル名に関する情報である。ファイル名により特定されるデータは画像データ226内に格納されている。「地理的位置」は、業者IDにより特定される業者の所在地の地理的位置に関する情報であり、好ましくは、緯度及び経度の組合せである。なお、「地理的位置」については、詳細な(ピンポイントな)情報であると個人情報に該当する可能性があるので、一例として、業者の所在地の郵便番号に対応付けられた緯度及び経度の組合せであることが好ましい。つまり、ここにいう「地理的位置」とは、業者の所在地を所定のエリアに区分したときの、このエリアを代表する地理的位置である。「都道府県」は、業者IDにより特定される業者の所在地の都道府県に関する情報である。
【0056】
入力側サーバ20を利用するユーザ(業者)は、最初に入力側サーバ20により提供されるサイトを利用する際に初回登録を行う。初回登録時に、入力側サーバ20はユーザ(端末装置10)に対して業者情報の登録を行うフォームを送信し、ユーザはこのフォームに必要事項を記入することで初回登録を行う。入力側サーバ20はこの初回登録に対応してユーザIDを新規発行し、ユーザからの入力内容に基づいて業者DB225の業者ID以外のカラムに情報を登録する。
【0057】
ファイルデータ(取引データ)223は、トークンDB222により管理されるトークン(ファイル)である。
【0058】
ファイルデータ223の詳細について説明する。ファイルデータ223は、本実施形態の入力側サーバ20が管理するトレーサビリティ情報そのものであり、業者(生産者1、流通業者2、加工業者3)から入力された情報に基づいてファイルデータ223の内容が生成される。
【0059】
既に説明したように、ファイルデータ223はjson形式のファイルである。ファイルデータ223は、予め定められた複数の変数(var)を有する。変数は適宜定義することができるが、一例として、本実施形態では下記に示す変数が予め定義されている。
・生産物の数量
・生産物の数量単位
・生産物の分類
・生産物の生産日
・生産物の生産地域
・生産物の生産位置
・生産物の画像
・生産物の生産者情報
・生産物の入荷日、出荷日
・生産物の入荷位置、出荷位置
・生産物の流通業者情報
・生産者1からの出荷時に付される識別コード
・トレーサビリティ情報を表示する言語情報
【0060】
なお、既に説明したように、生産物の生産位置など業者(生産者1、流通業者2、加工業者3)の所在地情報は、この情報が個人情報として取り扱われる可能性があるので、例えば業者の所在地の郵便番号から抽出される情報など、所在地を厳密に特定できない(一定のエリアでしか特定できない)情報にすることが好ましい。
【0061】
また、加工業者3が情報を入力すると、入力された情報に基づいて新たにトークン(ファイル)が生成される。これは、加工業者3は小分け(分割)、まとめ(合成)、精米等(変化)を行うので、生産物についてのトークンとは別に扱うことが望ましいからである。但し、入力側サーバ20は、生産物の生産から出荷までの一連のトレーサビリティ情報を管理する必要があるので、生産者1の入力により生成されるトークンとの間で加工業者3の入力により生成されるトークンが親子関係(生産者1のトークンが親、加工業者3のトークンが子)にあることを示す変数が定義されている。また、加工業者3の入力により生成されるトークンが「分割」「合成」「変化」のいずれのものであるかを示す変数が定義されている。さらに、加工業者3の入力により生成されるトークンにも、生産物の数量に関する変数の値が入力される。従って、トークンの親子関係を辿ると、加工業者3のトークンに含まれる数量の情報を全て足し合わせて最終的に生産者1のトークンに含まれる数量の総量に等しくなれば、トレーサビリティ情報の真正性を証明できたといえる。本システムはブロックチェーンに書き込むトランザクション数圧縮の観点にたち、こうした制約を事前にチェックする仕組みも有する。このように、本実施形態ではブロックチェーンにおけるUXTO(Unspent Transaction Output)の仕組みを応用し、システム全体で生産物の総量管理を行っている。
【0062】
さらに、加工業者3が最終出荷をした(つまり、消費者4向けの最終製品の加工を行い、出荷した)ことを示す変数が定義されている。同様に、生産者1が生産物を出荷したことを示す(つまりトレーサビリティ情報において最も川上にある)変数が定義されている。これら川上にある変数及び最終出荷をしたことを示す変数により、一連のトレーサビリティ情報を把握することができる。
【0063】
ファイルデータ223には、これら変数についての値がオブジェクト毎にまとめられて記述されている。オブジェクトは、例えば生産物についてのオブジェクト、業者についてのオブジェクトなどがある。
【0064】
なお、上述した変数は単なる一例であり、これ以外に、トレーサビリティ情報に必要な変数を適宜定義し、業者からの入力に基づいて変数の値をファイルデータ223に書き込むことができる。また、個別の変数の名称を含むファイルデータ223の具体的な内容についての図示は行わない。
【0065】
さらに言えば、本実施形態のファイルデータ223はjson形式のファイルであるが、ファイル形式に特段の限定はなく、例えば、xml形式のファイルであってもよい。
【0066】
画像データ226は、業者を表す画像データおよび特定のトークンに紐づく画像データである。
【0067】
画面データ227は、入力側サーバ20において業者(生産者1、流通業者2、加工業者3)が生産物に関する各種登録を行う際、また、トークン情報を確認したい主体(典型的には消費者)が生産物のトレーサビリティ情報を確認するために出力側サーバ30にアクセスする際に、ユーザが有する端末装置10に表示させるための画面データである。後述するように、出力側サーバ30にも入力側サーバ20と同様の画面データ227が格納されている。
【0068】
ブロックチェーンデータ228は、ブロックチェーン書込部236が生成を依頼し、ブロックチェーン基盤40が生成して入力側サーバ20に送出したブロックチェーンデータである。なお、ブロックチェーン基盤40が生成したブロックチェーンは、出力側サーバ30のブロックチェーンデータ324にも格納される。
【0069】
<入力側サーバ20の制御部230の構成>
入力側サーバ20の制御部230は、受信制御部231、送信制御部232、画面提示部233、トークン管理部234、ファイル生成部235、ブロックチェーン書込部236及び識別コード生成部237を備える。制御部230は、記憶部220に記憶されたアプリケーションプログラム221を実行することにより、これら受信制御部231等の機能ユニットが実現される。
【0070】
受信制御部231は、入力側サーバ20が外部の装置から通信プロトコルに従って信号を受信する処理を制御する。
【0071】
送信制御部232は、入力側サーバ20が外部の装置に対し通信プロトコルに従って信号を送信する処理を制御する。
【0072】
画面提示部233は、いわゆるWebサーバとしての機能を入力側サーバ20に提供する。具体的には、画面提示部233は、ネットワーク80を介してアクセスした端末装置10に対して、画像データ226及び画面データ227に格納されたデータ等に基づいて、入力側サーバ20が提供するサイトを構成する(通常はトップ画面と言われる)画面のデータを生成し、この画面データを、アクセスをした端末装置10に送出する。さらに、画面提示部233は、端末装置10からの操作入力に基づいて、サイトを構成する画面を動的に(つまりインタラクティブに)変化させ、さらに、必要に応じて、サイトを構成する他の画面に遷移させ、この画面データを端末装置10に送出する。画面提示部233により提示されるサイトの画面の詳細については後述する。
【0073】
トークン管理部234は、画面提示部233が提示した画面に基づいて業者(生産者1、流通業者2、加工業者3)が入力した情報を受け入れ、受け入れた情報に基づくトークン(ファイル)の生成及び情報追記をファイル生成部235に指示する。
【0074】
ファイル生成部235は、トークン管理部234からの指示に基づいて、ファイルデータ223を生成し、また、業者(生産者1、流通業者2、加工業者3)が入力した情報に基づいて、既にあるファイルデータ223を更新する。ファイルデータ223の内容については既に説明したので、ここでの説明は省略する。ここで生成されるデータは、のちにブロックチェーンに書き込みを行う際、ブロックチェーン上のプログラムが支持する制約(送料管理他)の事前チェックを行う。また、業者(生産者1、流通業者2、加工業者3)からどのような情報が入力されるかについても後述する。
【0075】
ブロックチェーン書込部236は、加工業者3から最終出荷を行った旨の情報を受け入れると、最終出荷を行った生産物に係るトークン(ファイル)及びこのトークンに対して親の関係にある全てのトークンを特定し、このトークン(ファイルデータ223)に記載された内容をまとめて1つのファイルを生成し、このファイルに基づくブロックチェーンの生成をブロックチェーン基盤40に指示する。そして、ブロックチェーン基盤40からブロックチェーンが送出されたら、このブロックチェーンを記憶部220のブロックチェーンデータ228に格納する。
【0076】
識別コード生成部237は、生産者1による情報入力を契機としてトークンが生成されたら、このトークンを業者(生産者1、流通業者2、加工業者3)が特定するための識別コードを生成し、生産者1に送出する。識別コードはトークンを特定できるコードであれば特段の限定はないが、一例として、2次元コードなどが好適に挙げられる。また、識別コードは、消費者4が、自身が購入した生産物に関するトレーサビリティ情報を取得する際に、どのブロックチェーンデータ228に基づいてトレーサビリティ情報を取得するかを特定するためにも用いられる。識別コードに含まれる情報には、上述したように、トークンを識別するための情報に加えて、入力側サーバ20へアクセスするための情報(例えば入力側サーバ20にアクセスするためのURL等)が含まれていてもよい。
【0077】
<出力側サーバ30の機能構成>
出力側サーバ30のハードウェア構成が実現する機能構成を
図4に示す。出力側サーバ30の機能構成は入力側サーバ20の機能構成と共通する部分があるので、共通する部分については説明を省略し、入力側サーバ20と異なる部分を中心に説明する。出力側サーバ30は、記憶部320、制御部330、通信部340を備える。
【0078】
<出力側サーバ30の記憶部320の構成>
出力側サーバ30の記憶部320は、画像データ322、画面データ323、及びブロックチェーンデータ324を有する。画像データ322、画面データ323及びブロックチェーンデータ324は、入力側サーバ20の画像データ226、画面データ227及びブロックチェーンデータ228とほぼ共通する内容を有する。
【0079】
<出力側サーバ30の制御部330の構成>
出力側サーバ30の制御部330は、受信制御部331、送信制御部332、画面提示部333及びトレーサビリティ情報生成部334を備える。制御部330は、記憶部320に記憶されたアプリケーションプログラム321を実行することにより、これら受信制御部331等の機能ユニットが実現される。受信制御部331、送信制御部332及び画面提示部333は、入力側サーバ20の受信制御部231、送信制御部232及び画面提示部233とほぼ共通する機能を有する。
【0080】
トレーサビリティ情報生成部334は、識別コードに基づく消費者4からのトレーサビリティ情報確認依頼を受け入れ、この識別コードをキーとしてブロックチェーンデータ324を特定し、このブロックチェーンデータ324に基づいて、生産物のトレーサビリティ情報を、確認依頼入力をした消費者4に提示する。
【0081】
<端末装置10の機能構成>
端末装置10のハードウェア構成が実現する機能構成を
図5に示す。
【0082】
図5に示すように、端末装置10は、複数のアンテナ(アンテナ111、アンテナ112)と、各アンテナに対応する無線通信部(第1無線通信部121、第2無線通信部122)と、操作受付部130(タッチ・センシティブ・デバイス130a及びディスプレイ130bを含む)と、撮像装置133と、位置情報センサ134と、音声処理部140と、マイク141と、スピーカ142と、記憶部170と、制御部180とを含む。端末装置10は、
図4では特に図示していない機能及び構成(例えば、電力を保持するためのバッテリー、バッテリーから各回路への電力の供給を制御する電力供給回路等)も有している。
図4に示すように、端末装置10に含まれる各ブロックは、バス等により電気的に接続される。
【0083】
記憶部170は端末装置10の記憶部16により構成され、制御部180は主に端末装置10のプロセッサ19により構成され、アンテナ111、アンテナ112及び第1無線通信部121、第2無線通信部122は通信IF12により構成され、撮像装置133、位置情報センサ134、マイク141、タッチ・センシティブ・デバイス130aは入力装置13により構成され、スピーカ142、ディスプレイ130bは出力装置14により構成される。
【0084】
アンテナ111は、端末装置10が発する信号を電波として放射する。また、アンテナ111は、空間から電波を受信して受信信号を第1無線通信部121へ与える。
【0085】
アンテナ112は、端末装置10が発する信号を電波として放射する。また、アンテナ112は、空間から電波を受信して受信信号を第2無線通信部122へ与える。
【0086】
第1無線通信部121は、端末装置10が他の無線機器と通信するため、アンテナ111を介して信号を送受信するための変復調処理等を行う。第2無線通信部122は、端末装置10が他の無線機器と通信するため、アンテナ112を介して信号を送受信するための変復調処理等を行う。第1無線通信部121と第2無線通信部122とは、チューナー、RSSI(Received Signal Strength Indicator)算出回路、CRC(Cyclic Redundancy Check)算出回路、高周波回路等を含む通信モジュールである。第1無線通信部121と第2無線通信部122とは、端末装置10が送受信する無線信号の変復調や周波数変換を行い、受信信号を制御部180へ与える。
【0087】
操作受付部130は、ユーザの入力操作を受け付けるための機構を有する。具体的には、操作受付部130は、タッチスクリーンとして構成され、タッチ・センシティブ・デバイス130aと、ディスプレイ130bとを含む。タッチ・センシティブ・デバイス130aは、端末装置10のユーザの入力操作を受け付ける。タッチ・センシティブ・デバイス130aは、例えば静電容量方式のタッチパネルを用いることによって、タッチパネルに対するユーザの接触位置を検出する。タッチ・センシティブ・デバイス130aは、タッチパネルにより検出したユーザの接触位置を示す信号を入力操作として制御部180へ出力する。
【0088】
ディスプレイ130bは、制御部180の制御に応じて、画像、動画、テキストなどのデータを表示する。ディスプレイ130bは、例えばLCD(Liquid Crystal Display)、または有機EL(Electro-Luminescence)ディスプレイによって実現される。
【0089】
撮像装置133は、主に識別コードを読み取り、この識別コードが有する情報(識別コードそのものを含む)を取得する。好ましくは、撮像装置133は、端末装置10に備えられたカメラである。
【0090】
位置情報センサ134は、端末装置10が位置する地理的位置に関する情報を取得する。好ましくは、位置情報センサ134はGPS(Global Positioning System)等のGNSS(Global Navigation Satellite System:全地球航法衛星システム)による地理的位置の情報入手が可能なセンサである。このような位置情報センサ134は、端末装置10が位置する地理的位置として緯度、経度、高度を取得することができる。
【0091】
音声処理部140は、音声信号の変復調を行う。音声処理部140は、マイク141から与えられる信号を変調して、変調後の信号を制御部180へ与える。また、音声処理部140は、音声信号をスピーカ142へ与える。音声処理部140は、例えば音声処理用のプロセッサによって実現される。マイク141は、音声入力を受け付けて、当該音声入力に対応する音声信号を音声処理部140へ与える。スピーカ142は、音声処理部140から与えられる音声信号を音声に変換して当該音声を端末装置10の外部へ出力する。
【0092】
<端末装置10の記憶部の構成>
端末装置10の記憶部170はユーザ情報170a及びアプリケーションプログラム170bを記憶する。
【0093】
アプリケーションプログラム170bは、記憶部170に予め記憶されていても良いし、通信IFを介してサービス提供者が運営するウェブサーバ等からダウンロードする構成としても良い。アプリケーションプログラム170bは、端末装置10に記憶されているウェブブラウザアプリケーション上で実行されるインタープリター型プログラミング言語を含む。
【0094】
ユーザ情報170aは、端末装置10を使用して必要な情報の入力等を行うユーザの情報である。ユーザ情報としては、ユーザを識別する情報(ユーザID)、ユーザの名称に関する情報等が含まれる。
【0095】
制御部180は、入力操作受付部180aと、送受信部180bと、データ処理部180cと、報知制御部180dとを備える。制御部180は、記憶部170に記憶されたアプリケーションプログラム170bを実行することにより、入力操作受付部180a、送受信部180b、データ処理部180c、及び報知制御部180dとの機能ユニットが実現される。
【0096】
入力操作受付部180aは、ユーザによる操作受付部130のタッチ・センシティブ・デバイス130aへの操作内容、マイク141への音声入力、位置情報センサ134などの入力装置13から出力される情報を取得し各種処理を実行する。
【0097】
送受信部180bは、端末装置10が、入力側サーバ20等の外部の装置と、通信プロトコルに従ってデータを送受信するための処理を行う。
【0098】
データ処理部180cは、端末装置10が入力を受け付けたデータに対し、プログラムに従って演算を行い、演算結果をメモリ等に出力する処理を行う。
【0099】
報知制御部180dは、ユーザに対し情報を提示する処理を行う。報知制御部180dは、表示画像をディスプレイ130bに表示させる処理、音声をスピーカ142に出力させる処理等を行う。
【0100】
<システムSの動作>
以下、
図9~
図12のフローチャートを参照しながら、システムSの処理について説明する。
【0101】
図9に示すフローチャートは、業者(生産者1、流通業者2、加工業者3)がトレーサビリティ情報生成のための情報入力を行った際の入力側サーバ20の処理を示すフローチャートである。
【0102】
図9において、入力側サーバ20は、端末装置10からのアクセスを待つ(S900)。
図9のS900におけるアクセスは、業者(生産者1、流通業者2、加工業者3)が所有する端末装置10からのアクセスを念頭に置いている。消費者4が所有する端末装置10からのアクセスについては、
図11に示すフローチャートを参照して説明する。生産者1が自身の端末装置10で入力側サーバ20にアクセスする場合、入力側サーバ20が提供するトップページ等を経由して入力側サーバ20にアクセスし、流通業者2、加工業者3が自身の端末装置10で入力側サーバ20にアクセスする場合、端末装置10の撮像装置133により識別コードを撮像し、この識別コードから得られる情報に基づいてアクセスする。当然、生産者1と同様に、入力側サーバ20が提供するトップページ等を経由して入力側サーバ20にアクセスすることも可能であるが、この場合、入力側サーバ20へのアクセス後に、どの生産物に関しての情報入力であるかを特定するための情報、好ましくは識別コードに含まれる情報の入力がされる。
【0103】
端末装置10からのアクセスがあると(S900においてYES)、入力側サーバ20の画面提示部233は、アクセスがあった端末装置10に対して、画面データ227を参照して、ログイン画面データを送出する(S901)。S901で業者が所有する端末装置10に送出されるログイン画面データには、業者を特定するための業者ID、及び、業者が事前に入力側サーバ20によるシステムへの初回登録時に登録したパスワードの入力を求める欄(オブジェクト)が設けられている。ログイン画面(データ)の詳細についての図示は行わない。
【0104】
端末装置10からの業者ID及びパスワードの入力を受け入れたら、入力側サーバ20は、これら業者ID、パスワードと、ユーザ情報DB224に登録されている業者ID及びパスワードを用いて認証を行う(S902)。
【0105】
そして、認証が成功したら(S902においてYES)、トークン管理部234は、業者IDをキーとして業者DB225を検索し、アクセスした業者の種類を確認する(S903)。そして、アクセスした業者が生産者1であればS904に移行し、アクセスした業者が流通業者2であれば
図10のS1000に移行し、アクセスした業者が加工業者3であれば
図11のS1100に移行する。
【0106】
S904では、画面提示部233は、アクセスした生産者1が所有する端末装置10に対して生産者1用の入力画面データを送出する。
【0107】
S904において端末装置10に送出された入力画面データに基づいて、端末装置10に表示される画面の一例を
図13に示す。
【0108】
図13に示す画面(生産者1用の入力画面)1300には、ファイルデータ223を生成するために必要な情報を入力するための入力欄1301、及び、入力欄1301に入力した内容で情報登録手続を行うことを了承する入力をするためのボタン1302、及び、情報登録手続を行わないでキャンセルする入力をするためのボタン1303が表示されている。
【0109】
ユーザが端末装置10のタッチ・センシティブ・デバイス130aをタッチすることでボタン1302をクリックすると(
図9のS905においてYES)、入力欄1301に入力された情報が入力側サーバ20に送出される。トークン管理部234は、端末装置10から送出されてきた情報を受け入れ、ファイル生成部235は、この情報に基づいてトークン(ファイルデータ223)を新規に生成する(S906)。
【0110】
次いで、入力側サーバ20の識別コード生成部237は、S906で生成したトークンに紐付けられた識別コードを生成し、生成した識別コードを生産者1が所有する端末装置10に送出する(S907)。
【0111】
S907において端末装置10に送出された識別コードに基づいて、端末装置10に表示される画面の一例を
図14に示す。
【0112】
図14に示す画面1400には、S907で識別コード生成部237が生成した識別コード1401、及び、この識別コード1401を生産者1の端末装置10にダウンロードさせるためのボタン1402が表示されている。生産者1は、端末装置10のタッチ・センシティブ・デバイス130aをタッチすることでボタン1402をクリックすると、識別コード1401が端末装置10の記憶部170にダウンロードされる。生産者1は、ダウンロードした識別コードを印刷等することで、自身が出荷する生産物に付して流通に供する。
【0113】
図10に移行して、S1000では、画面提示部233は、アクセスした流通業者2が所有する端末装置10に対して流通業者2用の入力画面データを送出する。
【0114】
S1000において端末装置10に送出された入力画面データに基づいて、端末装置10に表示される画面の一例を
図15に示す。
【0115】
図15に示す画面(流通業者2用の入力画面)1500には、ファイルデータ223に追記すべき必要な情報を入力するための入力欄1501、及び、入力欄1501に入力した内容で情報登録手続を行うことを了承する入力をするためのボタン1502、及び、情報登録手続を行わないでキャンセルする入力をするためのボタン1503が表示されている。
【0116】
ユーザが端末装置10のタッチ・センシティブ・デバイス130aをタッチすることでボタン1502をクリックすると(
図10のS1001においてYES)、入力欄1501に入力された情報が入力側サーバ20に送出される。トークン管理部234は、端末装置10から送出されてきた情報を受け入れ、ファイル生成部235は、この情報に基づいてファイルデータ223を特定し(S1002)、特定したファイルデータ223に、流通業者2の端末装置10から送出されてきた情報を追記する(S1003)。
【0117】
図11に移行して、S1100では、画面提示部233は、アクセスした加工業者3が所有する端末装置10に対して加工業者3用の入力画面データを送出する。
【0118】
S1100において端末装置10に送出された入力画面データに基づいて、端末装置10に表示される画面の一例を
図16に示す。
【0119】
図16に示す画面(加工業者3用の入力画面)1600には、ファイルデータ223を生成するために必要な情報(加工業者3からの入力に基づいて新たにトークンが発行されるので)を入力するための入力欄1601、加工業者3による加工に基づく出荷が最終出荷である(消費者4に販売可能な状態で出荷する)ことを表すボタン1602、及び、入力欄1601及びボタン1602に入力した内容で情報登録手続を行うことを了承する入力をするためのボタン1603、及び、情報登録手続を行わないでキャンセルする入力をするためのボタン1604が表示されている。
【0120】
ユーザが端末装置10のタッチ・センシティブ・デバイス130aをタッチすることでボタン1603をクリックすると(
図11のS1101においてYES)、入力欄1601に入力された情報及びボタン1602が示す情報(最終出荷であるか否かを示す情報)が入力側サーバ20に送出される。トークン管理部234は、端末装置10から送出されてきた情報を受け入れ、この情報に基づいて生成されるべきトークンの親に相当する親トークン(ファイルデータ223)を特定し(S1102)、親トークンに関する情報とともに端末装置10からの情報をファイル生成部235に送出し、トークン生成を指示する。ファイル生成部235は、この情報に基づいてトークン(ファイルデータ223)を新規に生成する(S1103)。
【0121】
次いで、ブロックチェーン書込部236は、S1101で送出されてきた加工業者3からの情報に、今回の出荷が最終出荷であることを示す情報が含まれているか否かを判定する(S1104)。そして、最終出荷であると判定したら(S1104においてYES)、ブロックチェーン書込部236、最終出荷に係るファイルデータ223(この場合は親子関係にある全てのファイルデータ223)を特定し、これらファイルデータ223を一つのファイルデータ223にまとめて、ブロックチェーン基盤40に対して、まとめたファイルデータ223に基づくブロックチェーンの生成を指示する(S1105)。つまり、ブロックチェーン書込部236、それまでのトークンをまとめて1つのトランザクションファイルを生成し(トランザクションを圧縮し)、このトランザクションファイルに基づいてブロックチェーン生成を指示する。この後、ブロックチェーン書込部236、ブロックチェーン基盤40から送出されてきたブロックチェーンをブロックチェーンデータ228として格納する。一方、最終出荷ではないと判定したら(S1104においてNO)、
図11のフローチャートに示すプログラムを終了する。
【0122】
図12に示すフローチャートは、消費者4がトレーサビリティ情報確認のための情報入力を行った際の出力側サーバ30の処理を示すフローチャートである。
【0123】
図12において、出力側サーバ30は、端末装置10からのアクセスを待つ(S1200)。
図12のS1200におけるアクセスは、消費者4が所有する端末装置10からのアクセスを念頭に置いている。消費者4が自身の端末装置10で出力側サーバ30にアクセスする場合、出力側サーバ30が提供するトップページ等を経由して出力側サーバ30にアクセスする。識別コードによるトークン特定はその後行われる。当然、識別コードに、出力側サーバ30へのアクセス情報(URL等)が含まれている場合、消費者4が自身の端末装置10の撮像装置133により識別コードを撮像し、この識別コードから得られるアクセス情報に基づいてアクセスすることもできる。
【0124】
端末装置10からのアクセスがあると(S1200においてYES)、出力側サーバ30の画面提示部233は、アクセスがあった端末装置10に対して、画面データ227を参照して消費者4用の入力画面データを送出する。
【0125】
S1201において端末装置10に送出された入力画面データに基づいて、端末装置10に表示される画面の一例を
図17に示す。
【0126】
図17に示す画面(消費者4用の入力画面)1700には、生産物に付されている識別コードを撮像装置133により撮像するためのガイド1701、及び、ガイド1701内に表示されている識別コードでトレーサビリティ情報確認手続を行うことを了承する入力をするためのボタン1702、及び、トレーサビリティ情報手続を行わないでキャンセルする入力をするためのボタン1703が表示されている。
【0127】
消費者4は、このガイド1701内に識別コードが入るように撮像装置133の位置を調整し、端末装置10のタッチ・センシティブ・デバイス130aをタッチすることでボタン1702をクリックすると、撮像装置133により、ガイド1701内に撮像された識別コードが読み取られ、識別コードに付されている情報が出力側サーバ30に送出される。
【0128】
トレーサビリティ情報生成部238は、端末装置10から送出されてきた情報を受け入れ、この情報に基づいてブロックチェーンデータ228を特定し(S1202)、特定したブロックチェーンデータ228に基づいて、消費者4が購入した生産物に関するトレーサビリティ情報を端末装置10に送出する(S1203)。
【0129】
S1203において端末装置10に送出されたトレーサビリティ情報に基づいて、端末装置10に表示される画面の一例を
図18及び
図19に示す。
【0130】
図18に示す画面1800には、消費者4が購入した生産物が正規流通であることを示す情報が記載された領域1801が表示されている。また、
図19に示す画面1900には、ブロックチェーンデータ324の情報に基づいて特定された、生産物を示す画像が表示された領域1901、及び、生産物に関する情報が表示された領域1002が表示されている。
【0131】
<実施形態の効果>
以上詳細に説明したように、本実施形態のシステムSによれば、生産物の最終出荷の際に、生産物に関する取引データ(ファイルデータ223)をまとめて1つのトランザクションファイルを生成し、このトランザクションファイルに基づいてブロックチェーンデータ228、324を生成しているので、生産物のトレーサビリティ情報をトレースするためのブロックチェーンデータ228、324生成のために必要なブロックチェーンの生成/書換回数を抑制することができる。従って、本実施形態のシステムSによれば、農産物や食品のトレーサビリティのためにブロックチェーンを利用するにあたって、ブロックチェーンの書込/書換回数を抑制することができる。
【0132】
<付記>
なお、上記した実施形態は本開示を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施形態の構成の一部について、他の構成に追加、削除、置換することが可能である。
【0133】
一例として、上述の実施形態では入力側サーバ20と出力側サーバ30とを別体に構成していたが、入力側サーバ20及び出力側サーバ30の機能をまとめた単体のサーバによりシステムSを構成してもよい。但し、生産物が海外に輸出される場合など、システムSが異なる法律、規制下に跨がって運用されているとき、入力側サーバ20と出力側サーバ30とを別体にして、これら入力側サーバ20及び出力側サーバ30が共通のブロックチェーンデータ228、324を持つメリットが生じる。つまり、入力側サーバ20及び出力側サーバ30がそれぞれ異なる法律、規制下において運用されていても、共通のブロックチェーンデータ228、324を持つことにより、統一したトレーサビリティ情報による運用が可能となる。
【0134】
また、上述の実施形態では、トランザクションファイルの生成及びブロックチェーンの生成は、加工業者3による最終出荷時に行っていたが、最終出荷後以外にも、あるいは、最終出荷後であっても、トランザクションファイルの生成及びブロックチェーンの生成を行ってもよい。好適な例としては、生産物を海外の輸入卸(これも流通業者2の一例である)に渡す直前のタイミングが挙げられる。あるいは、消費者4が生産物である商品を開封したタイミングも別の一例として挙げられる。
【0135】
加えて、最終出荷前においても、トランザクションファイルの生成及びブロックチェーンの生成を行ってもよい。好適な例としては、加工業者3による生産物の形態の変更のタイミングが挙げられる。このような生産物の形態の変更の一例としては、精米された米をおにぎりに加工する場合などが挙げられる。このような生産物の形態の変更により、生産物の数量の連続性が保てなくなることが考えられるので、このタイミングで一旦トランザクションファイルの生成及びブロックチェーンの生成を行うことが好ましい。
【0136】
さらに、上述の実施形態における生産者1、流通業者2及び加工業者3は単一の企業または個人であってもよいし、複数の企業(この場合は企業体である)または複数の個人であってもよい。さらには、生産者1と流通業者2とが企業体(企業集団)を構成してもよい。取引データは、この企業体、企業集団単位でまとめることができる。
【0137】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、SSD、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
【0138】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
【0139】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD-RW、CD-R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
【0140】
以上の各実施形態で説明した事項を以下に付記する。
【0141】
(付記1)
プロセッサ(29)と、メモリ(25)とを備えるコンピュータ(20)を動作させるためのプログラム(212)であって、プログラム(212)は、プロセッサ(29)に、食品の中間物または生産物の出荷から消費者への販売、または海外への販売までの取引データ(223)を受け付けて、食品の中間物または生産物を特定する情報に紐付けてメモリ(25)に格納する第1ステップ(S906、S1003、S1103)と、食品の中間物または生産物の出荷から消費者への販売、または海外への販売までの任意のタイミングにおける取引データを受け付けたら、メモリ(25)に格納されている、食品の中間物または生産物を特定する情報により特定される複数の取引データ(223)に基づいて1つのトランザクションファイルを生成する第2ステップ(S1105)と、トランザクションファイルに基づき、ブロックチェーンの生成をブロックチェーン基盤(40)に指示する第3ステップ(S1105)とを実行させる、プログラム。
(付記2)
プログラム(212)は、第2ステップ(S1105)において、食品の中間物または生産物の消費者への販売、または海外への販売に伴う取引データ(223)を受け付けたら、メモリ(25)に格納されている、食品の中間物または生産物を特定する情報により特定される複数の取引データ(223)に基づいて1つのトランザクションファイルを生成する付記1記載のプログラム。
(付記3)
取引データ(223)は食品の中間物または生産物の出荷から消費者への販売準備完了までが特定可能な情報を有する付記1または2記載のプログラム。
(付記4)
食品の中間物または生産物の出荷時の取引データ(223)は、この食品の中間物または生産物の生産総量に関するデータを有する付記1~3のいずれかに記載のプログラム。
(付記5)
食品の中間物または生産物の出荷時以外の 取引データ(223)は、この食品の中間物または生産物の使用量のみに関するデータが含まれており、トランザクションファイルの生成の際に、食品の中間物または生産物を特定する情報により特定される取引データ(223)から食品の中間物または生産物の販売数量を確定する付記4に記載のプログラム。
(付記6)
プログラム(212)は、 プロセッサ(29)に、販売された食品の中間物または生産物に識別コードを付与する第4ステップ(S907)と、識別コードに基づいてコンピュータ(30)にアクセスしたユーザに対して、識別コードに紐付けられたブロックチェーン(324)を参照して、食品の中間物または生産物のトレーサビリティ情報を提示する第5ステップ(S1203)とを実行させる付記1~5のいずれかに記載のプログラム。
(付記7)
取引データ(223)は、食品の中間物または生産物に関する名称、生産者または取引業者の名称及び所在地の少なくとも一つに関するデータを有する付記1~6のいずれかに記載のプログラム。
(付記8)
生産者または取引業者の所在地に関するデータは、所在地のエリアデータである付記7に記載のプログラム。
(付記9)
プロセッサ(29)と、メモリ(25)とを備える装置(20)であって、プロセッサ(29)が、食品の中間物または生産物の出荷から消費者への販売、または海外への販売までの取引データ(223)を受け付けて、食品の中間物または生産物を特定する情報に紐付けてメモリ(25)に格納する第1ステップ(S906、S1003、S1103)と、食品の中間物または生産物の出荷から消費者への販売、または海外への販売までの任意のタイミングにおける取引データ(223)を受け付けたら、メモリ(25)に格納されている、食品の中間物または生産物を特定する情報により特定される複数の取引データ(223)に基づいて1つのトランザクションファイルを生成する第2ステップ(S1105)と、トランザクションファイルに基づき、ブロックチェーンの生成をブロックチェーン基盤(40)に指示する第3ステップ(S1105)とを実行する、装置。
(付記10)
プロセッサ(29)とメモリ(25)とを備えるコンピュータ(20)のプロセッサ(29)が、食品の中間物または生産物の出荷から消費者への販売、または海外への販売までの取引データ(223)を受け付けて、食品の中間物または生産物を特定する情報に紐付けてメモリ(25)に格納する第1ステップ(S906、S1003、S1103)と、食品の中間物または生産物の出荷から消費者への販売、または海外への販売までの任意のタイミングにおける取引データ(223)を受け付けたら、メモリ(25)に格納されている、食品の中間物または生産物を特定する情報により特定される複数の取引データ(223)に基づいて1つのトランザクションファイルを生成する第2ステップ(S1105)と、トランザクションファイルに基づき、ブロックチェーンの生成をブロックチェーン基盤(40)に指示する第3ステップ(S1105)とを実行する、方法。
【符号の説明】
【0142】
S…システム 1…生産者 2…流通業者 3、3a、3b…加工業者 4…消費者 10、10A、10B…端末装置 20…入力側サーバ 30…出力側サーバ 40…ブロックチェーン基盤 80…ネットワーク 220、320…記憶部 221…アプリケーションプログラム 222…トークンDB 223…ファイルデータ 224…ユーザ情報DB 225…業者DB 226…画像データ 227…画面データ 228、324…ブロックチェーンデータ 230、330…制御部 233…画面提示部 234…トークン管理部 235…ファイル生成部 236…ブロックチェーン書込部 237…識別コード生成部 334…トレーサビリティ情報生成部