(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-04-22
(45)【発行日】2022-05-17
(54)【発明の名称】生産管理システム、生産管理方法、および、生産管理プログラム
(51)【国際特許分類】
G05B 19/418 20060101AFI20220425BHJP
G06Q 50/04 20120101ALI20220425BHJP
【FI】
G05B19/418 Z
G06Q50/04
(21)【出願番号】P 2019228887
(22)【出願日】2019-12-19
【審査請求日】2020-05-01
(73)【特許権者】
【識別番号】505183761
【氏名又は名称】株式会社SCREENロジスティクス
(74)【代理人】
【識別番号】100104695
【氏名又は名称】島田 明宏
(74)【代理人】
【識別番号】100121348
【氏名又は名称】川原 健児
(74)【代理人】
【識別番号】100114247
【氏名又は名称】奥田 邦廣
(74)【代理人】
【識別番号】100148459
【氏名又は名称】河本 悟
(72)【発明者】
【氏名】倉 光巖
【審査官】藤崎 詔夫
(56)【参考文献】
【文献】特開2018-169798(JP,A)
【文献】特開2013-003902(JP,A)
【文献】特開2003-030488(JP,A)
【文献】国際公開第2018/111295(WO,A1)
【文献】特開2018-156612(JP,A)
【文献】特開2002-063240(JP,A)
【文献】特開2009-080530(JP,A)
【文献】特開2013-073511(JP,A)
【文献】特開2016-177624(JP,A)
【文献】特開2009-187499(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/418
G06Q 50/04
(57)【特許請求の範囲】
【請求項1】
製品の生産に必要な部材の手配のための物流管理および当該部材を用いた製造のための工程管理を含む生産管理を行うためのプログラムであって、
通信ネットワークと当該通信ネットワークにより互いに接続された複数のノードコンピュータとを含み前記生産管理のためのブロックチェーンを形成すべき分散システムにおけるノードコンピュータに、
前記製品の製造に必要な情報を生産情報として受け取る入力ステップと、
前記生産管理の対象となる作業を構成する複数の単位作業のいずれかの開始指示を受け取ると、当該開始指示に基づき開始すべき単位作業に対応するトランザクションデータを前記生産情報に基づき生成するトランザクション生成ステップと、
前記開始すべき単位作業に対応するトランザクションデータが生成されると、当該単位作業の着工の承認を得るための処理を実行する着工承認取得ステップと、
前記開始すべき単位作業の着工の承認が得られた後に、当該単位作業の着工指示を発行する着工指示ステップと、
前記開始すべき単位作業の着工指示が発行された後に、当該着工指示に基づき着工された単位作業の結果情報を受け取る作業結果受領ステップと、
前記着工された単位作業の結果情報が得られると、前記生成されたトランザクションデータに当該結果情報を組み込んだ後、当該トランザクションデータに基づき当該単位作業の完成の承認を得るための処理を実行する完成承認取得ステップと、
前記着工された単位作業の完成の承認が得られた後、完成の承認が得られた単位作業に対応するトランザクションデータを含む新たなブロックを前記ブロックチェーンに追加するブロックチェーン更新ステップと、
前記着工された単位作業の完成の承認が得られた後、前記複数の単位作業につき予め決められた実行順序に基づき、当該単位作業の次に実行すべき単位作業を開始させるための後続実行設定ステップと
を実行させ、
前記ブロックチェーンは、前記完成の承認が得られた単位作業に対応するトランザクションデータと、当該トランザクションデータのハッシュ値を含むブロックヘッダを前記完成の承認が得られた順に連結して構成されるブロックチェーン構成データとを含み、
前記分散システムは、前記複数のノードコンピュータのいずれもがアクセス可能であって前記完成の承認が得られた単位作業に対応するトランザクションデータを保持する第1の共有記憶部を備え、
前記複数のノードコンピュータのそれぞれは、前記ブロックチェーン構成データを保持しており、
前記ブロックチェーン更新ステップは、
前記完成の承認が得られた単位作業に対応するトランザクションデータを含む新たなブロックを前記ブロックチェーンに追加すべきときに、当該対応するトランザクションデータを前記第1の共有記憶部に
のみ格納するデータ書込ステップと、
前記新たなブロックを前記ブロックチェーンに追加すべきときに、前記対応するトランザクションデータが生成されたノードコンピュータにおけるブロックチェーン構成データに前記対応するトランザクションデータのハッシュ値を含むブロックヘッダを追加するブロック生成更新ステップと、
前記対応するトランザクションデータが前記第1の共有記憶部に格納され、かつ、前記対応するトランザクションデータのハッシュ値を含むブロックヘッダが前記ブロックチェーン構成データに追加されると、当該新たなブロックの追加を示すブロック追加通知を前記分散システムにおける他のノードコンピュータが受信可能に前記通信ネットワークに送出するブロック追加通知ステップと、
新たなブロックの追加を示すブロック追加通知を前記通信ネットワークを介して受け取ると、当該ブロック追加通知を受け取ったノードコンピュータにおけるブロックチェーン構成データに、当該新たなブロックにおけるトランザクションデータのハッシュ値を含むブロックヘッダを追加するブロック受信更新ステップと
を含む、プログラム。
【請求項2】
単位作業の開始指示の入力操作を受け付ける操作受付ステップを更に備え、
前記後続実行設定ステップは、前記ブロック追加通知ステップにおいて前記ブロック追加通知が送出されたときに、前記予め決められた実行順序に基づき次に実行すべき単位作業を実行可能な単位作業として表示し、前記ブロック受信更新ステップにおいて前記ブロック追加通知が受け取られたときに、前記予め決められた実行順序に基づき次に実行すべき単位作業を実行可能な単位作業として表示する表示ステップを含み、
前記トランザクション生成ステップでは、前記表示ステップにより前記実行可能な単位作業が表示されているときに前記入力操作が受け付けられると、前記実行可能な単位作業が開始すべき単位作業とされ、当該開始すべき単位作業に対応するトランザクションデータが生成される、請求項
1に記載のプログラム。
【請求項3】
前記通信ネットワークを介して単位作業の開始指示を受信する開始指示受信ステップを更に備え、
前記複数のノードコンピュータは、前記複数の単位作業にそれぞれ対応付けられており、
前記後続実行設定ステップは、
前記ブロック追加通知ステップにおいて前記ブロック追加通知が送出されたときに、前記予め決められた実行順序に基づき次に実行すべき単位作業を決定する後続決定ステップと、
当該決定された単位作業の開始指示を当該単位作業に対応付けられたノードコンピュータに送信する後続送信ステップとを含み、
前記トランザクション生成ステップでは、前記開始指示受信ステップにより単位作業の開始指示が受信されると、当該単位作業に対応するトランザクションデータが生成される、請求項
1に記載のプログラム。
【請求項4】
前記分散システムは、前記複数のノードコンピュータのいずれもがアクセス可能な記憶部であって、前記予め決められた実行順序を示す順序情報を記憶しているとともに前記複数の単位作業のそれぞれにつき対応するトランザクションデータを生成すべきノードコンピュータの識別情報を記憶している記憶部を含み、
前記後続決定ステップでは、前記記憶部に記憶された前記順序情報を参照することにより、前記次に実行すべき単位作業が決定され、
前記後続送信ステップでは、前記記憶部に記憶された前記識別情報が示すノードコンピュータに、前記次に実行すべき単位作業の開始指示が送信される、請求項
3に記載のプログラム。
【請求項5】
前記分散システムは、前記複数のノードコンピュータのいずれもがアクセス可能な記憶部であって、前記複数の単位作業にそれぞれ対応する複数のトランザクションデータのテンプレートを記憶している記憶部を含み、
各トランザクションデータのテンプレートは、対応する単位作業につき着工の承認主体および完成の承認主体の識別情報を含んでおり、
前記トランザクションデータ生成ステップでは、前記開始すべき単位作業に対応するトランザクションデータは、当該トランザクションデータのテンプレートおよび前記生産情報に基づき生成され、
前記着工承認取得ステップでは、前記開始すべき単位作業に対応するトランザクションデータに含まれる前記着工の承認主体の識別情報に基づき当該単位作業の着工の承認を得るための処理が実行され、
前記完成承認取得ステップでは、前記着工された単位作業に対応するトランザクションデータに含まれる前記完成の承認主体の識別情報に基づき当該単位作業の完成の承認を得るための処理が実行される、請求項1に記載のプログラム。
【請求項6】
前記着工承認取得ステップでは、前記開始すべき単位作業の着工につき複数の承認主体が決められている場合には、当該複数の承認主体の全てにより当該着工が承認されたことが判明したときに、当該着工の承認が得られたとみなされ、
前記完成承認取得ステップでは、前記着工された単位作業の完成につき複数の承認主体が決められている場合には、当該複数の承認主体の全てにより当該完成が承認されたことが判明したときに、当該完成の承認が得られたとみなされる、請求項
5に記載のプログラム。
【請求項7】
各トランザクションデータのテンプレートは、対応する単位作業の次に実行すべき単位作業の識別情報、および、当該次に実行すべき単位作業に対応するトランザクションデータを生成するノードコンピュータの識別情報を更に含み、
前記後続実行設定ステップでは、前記対応するトランザクションデータのテンプレートに記憶された前記単位作業の識別情報が示す単位作業の開始指示が、当該テンプレートに記憶された前記ノードコンピュータの識別情報が示すノードコンピュータに送信される、請求項
5に記載のプログラム。
【請求項8】
前記複数の単位作業は、前記製品の生産に必要な部材の調達、当該部材の品質管理、および、当該製品を製造する各生産工程を含む、請求項1から
7のいずれか1項に記載のプログラム。
【請求項9】
前記通信ネットワークはインターネットである、請求項1から
7のいずれか1項に記載のプログラム。
【請求項10】
製品の生産に必要な部材の手配のための物流管理および当該部材を用いた製造のための工程管理を含む生産管理を行う生産管理システムにおける生産管理端末装置であって、
前記生産管理システムは、前記生産管理端末装置を含む複数の生産管理端末装置と、当該複数の生産管理端末を互いに接続する通信ネットワークとを含み、前記生産管理のためのブロックチェーンを形成すべき分散システムであり、
前記生産管理端末装置は、
前記製品の製造に必要な情報を生産情報として受け取る入力部と、
前記生産管理の対象となる作業を構成する複数の単位作業のいずれかの開始指示を受け取ると、当該開始指示に基づき開始すべき単位作業に対応するトランザクションデータを前記生産情報に基づき生成するトランザクション生成部と、
前記開始すべき単位作業に対応するトランザクションデータが生成されると、当該単位作業の着工の承認を得るための処理を実行する着工承認取得部と、
前記開始すべき単位作業の着工の承認が得られた後、当該単位作業の着工指示を発行する着工指示部と、
前記開始すべき単位作業の着工指示が発行された後、当該着工指示に基づき着工された単位作業の結果情報を受け取る作業結果受領部と、
前記着工された単位作業の結果情報が得られると、前記生成されたトランザクションデータに当該結果情報を組み込んだ後、当該トランザクションデータに基づき当該単位作業の完成の承認を得るための処理を実行する完成承認取得部と、
前記着工された単位作業の完成の承認が得られた後、完成の承認が得られた単位作業に対応するトランザクションデータを含む新たなブロックを前記ブロックチェーンに追加するブロックチェーン更新部と、
前記着工された単位作業の完成の承認が得られた後、前記複数の単位作業につき予め決められた実行順序に基づき、当該単位作業の次に実行すべき単位作業を開始させるための後続実行設定部とを含み、
前記ブロックチェーンは、前記完成の承認が得られた単位作業に対応するトランザクションデータと、当該トランザクションデータのハッシュ値を含むブロックヘッダを前記完成の承認が得られた順に連結して構成されるブロックチェーン構成データとを含み、
前記分散システムは、前記複数の生産管理端末装置のいずれもがアクセス可能であって前記完成の承認が得られた単位作業に対応するトランザクションデータを保持する第1の共有記憶部を備え、
前記複数の生産管理端末装置のそれぞれは、前記ブロックチェーン構成データを保持しており、
前記ブロックチェーン更新部は、
前記完成の承認が得られた単位作業に対応するトランザクションデータを含む新たなブロックを前記ブロックチェーンに追加すべきときに、当該対応するトランザクションデータを前記第1の共有記憶部に
のみ格納するデータ書込部と、
前記新たなブロックを前記ブロックチェーンに追加すべきときに、前記対応するトランザクションデータのハッシュ値を含むブロックヘッダを前記ブロックチェーン構成データに追加するブロック生成更新部と、
前記対応するトランザクションデータが前記第1の共有記憶部に格納され、かつ、前記対応するトランザクションデータのハッシュ値を含むブロックヘッダが前記ブロックチェーン構成データに追加されると、当該新たなブロックの追加を示すブロック追加通知を前記分散システムにおける他の生産管理端末装置が受信可能に前記通信ネットワークに送出するブロック追加通知部と、
新たなブロックの追加を示すブロック追加通知を前記通信ネットワークを介して受け取ると、当該新たなブロックにおけるトランザクションデータのハッシュ値を含むブロックヘッダを前記ブロックチェーン構成データに追加するブロック受信更新部とを含む、生産管理端末装置。
【請求項11】
単位作業の開始指示の入力操作を受け付ける操作受付部を更に備え、
前記後続実行設定部は、前記ブロック追加通知部において前記ブロック追加通知が送出されたときに、前記予め決められた実行順序に基づき次に実行すべき単位作業を実行可能な単位作業として表示し、前記ブロック受信更新部において前記ブロック追加通知が受け取られたときに、前記予め決められた実行順序に基づき次に実行すべき単位作業を実行可能な単位作業として表示する表示部を含み、
前記トランザクション生成部は、前記表示部により前記実行可能な単位作業が表示されているときに前記入力操作が受け付けられると、前記実行可能な単位作業を開始すべき単位作業とし、当該単位作業に対応するトランザクションデータを生成する、請求項
10に記載の生産管理端末装置。
【請求項12】
前記通信ネットワークを介して単位作業の開始指示を受信する開始指示受信部を更に備え、
前記複数の生産管理端末装置は、前記複数の単位作業にそれぞれ対応付けられており、
前記後続実行設定部は、
前記ブロック追加通知部において前記ブロック追加通知が送出されたとき、前記予め決められた実行順序に基づき次に実行すべき単位作業を決定する後続決定部と、
当該決定された単位作業の開始指示を当該単位作業に対応付けられた生産管理端末装置に送信する後続送信部とを含み、
前記トランザクション生成部は、前記開始指示受信部により単位作業の開始指示が受信されると、当該単位作業に対応するトランザクションデータを生成する、請求項
10に記載の生産管理端末装置。
【請求項13】
製品の生産に必要な部材の手配のための物流管理および当該部材を用いた製造のための工程管理を含む生産管理を行う生産管理方法であって、
前記製品の設計情報を受け取り、前記製品の製造に必要な情報を当該設計情報に基づき生産情報として生成するとともに、通信ネットワークと当該通信ネットワークにより互いに接続された複数の生産管理端末装置とを含む分散システムにおいて前記生産管理のためのブロックチェーンを形成するための準備を行う準備ステップと、
前記生産管理の対象となる作業を構成する複数の単位作業にそれぞれ対応する複数のトランザクションデータを前記生産情報に基づき順次に生成するトランザクション生成ステップと、
前記トランザクション生成ステップによりいずれかのトランザクションデータが生成されると、当該生成されたトランザクションデータに対応する単位作業の着工の承認を得るための処理を実行する着工承認取得ステップと、
前記対応する単位作業の着工の承認が得られた後に、前記対応する単位作業の着工指示を発行する着工指示ステップと、
前記対応する単位作業の着工指示が発行された後に、前記対応する単位作業の結果情報を受け取る作業結果受領ステップと、
前記対応する単位作業の結果情報が得られると、前記生成されたトランザクションデータに当該結果情報を組み込んだ後、当該トランザクションデータに基づき前記対応する単位作業の完成の承認を得るための処理を実行する完成承認取得ステップと、
前記対応する単位作業の完成の承認が得られた後、完成の承認が得られた単位作業に対応するトランザクションデータを含む新たなブロックを前記ブロックチェーンに追加するブロックチェーン更新ステップと、
前記着工された単位作業の完成の承認が得られた後、前記複数の単位作業につき予め決められた実行順序に基づき、当該単位作業の次に実行すべき単位作業を決定する後続実行設定ステップと
を備え、
前記ブロックチェーンは、前記完成の承認が得られた単位作業に対応するトランザクションデータと、当該トランザクションデータのハッシュ値を含むブロックヘッダを前記完成の承認が得られた順に連結して構成されるブロックチェーン構成データとを含み、
前記分散システムは、前記複数の生産管理端末装置のいずれもがアクセス可能であって前記完成の承認が得られた単位作業に対応するトランザクションデータを保持する第1の共有記憶部を備え、
前記複数の生産管理端末装置のそれぞれは、前記ブロックチェーン構成データを保持しており、
前記トランザクション生成ステップでは、前記後続実行設定ステップにより次に実行すべき単位作業が決定されると、当該決定された単位作業に対応するトランザクションデータが生成され、
前記ブロックチェーン更新ステップは、
前記完成の承認が得られた単位作業に対応するトランザクションデータを含む新たなブロックを前記ブロックチェーンに追加すべきときに、当該対応するトランザクションデータを前記第1の共有記憶部に
のみ格納するデータ書込ステップと、
前記新たなブロックを前記ブロックチェーンに追加すべきときに、前記対応するトランザクションデータが生成された生産管理端末装置におけるブロックチェーン構成データに前記対応するトランザクションデータのハッシュ値を含むブロックヘッダを追加するブロック生成更新ステップと、
前記対応するトランザクションデータが前記第1の共有記憶部に格納され、かつ、前記対応するトランザクションデータのハッシュ値を含むブロックヘッダが前記ブロックチェーン構成データに追加されると、当該新たなブロックの追加を示すブロック追加通知を前記分散システムにおける他の生産管理端末装置が受信可能に前記通信ネットワークに送出するブロック追加通知ステップと、
新たなブロックの追加を示すブロック追加通知を前記通信ネットワークを介して受け取ると、当該ブロック追加通知を受け取った生産管理端末装置におけるブロックチェーン構成データに、当該新たなブロックにおけるトランザクションデータのハッシュ値を含むブロックヘッダを追加するブロック受信更新ステップと
を含む、生産管理方法。
【請求項14】
前記複数の生産管理端末装置は、前記複数の単位作業にそれぞれ対応付けられており、
前記トランザクション生成ステップでは、いずれのトランザクションデータも当該トランザクションデータに対応する単位作業に対応付けられた生産管理端末装置において生成される、請求項
13に記載の生産管理方法。
【請求項15】
前記複数の単位作業のそれぞれにつき着工の承認主体および完成の承認主体が予め決められており、
前記着工承認取得ステップでは、前記生成されたトランザクションデータに対応する単位作業の着工につき複数の承認主体が決められている場合には、当該複数の承認主体の全てにより当該着工が承認されたことが判明したときに、当該着工の承認が得られたとみなされ、
前記完成承認取得ステップでは、前記生成されたトランザクションデータに対応する単位作業の完成につき複数の承認主体が決められている場合には、当該複数の承認主体の全てにより当該完成が承認されたことが判明したときに、当該完成の承認が得られたとみなされる、請求項
13に記載の生産管理方法。
【請求項16】
製品の生産に必要な部材の手配のための物流管理および当該部材を用いた製造のための工程管理を含む生産管理を行う生産管理システムであって、
通信ネットワークと、
前記通信ネットワークにより互いに接続された複数の生産管理端末装置とを備え、
前記通信ネットワークと前記複数の生産管理端末装置とは、前記生産管理のためのブロックチェーンを形成する分散システムを構成し、
前記分散システムは、
前記製品の設計情報を受け取り、前記製品の製造に必要な情報を当該設計情報に基づき生産情報として生成する生産情報生成部と、
前記生産管理の対象となる作業を構成する複数の単位作業にそれぞれ対応する複数のトランザクションデータを前記生産情報に基づき順次に生成するトランザクション生成部と、
前記トランザクション生成部によりいずれかのトランザクションデータが生成されると、当該生成されたトランザクションデータに対応する単位作業の着工の承認を得るための処理を実行する着工承認取得部と、
前記対応する単位作業の着工の承認が得られた後に、前記対応する単位作業の着工指示を発行する着工指示発行部と、
前記対応する単位作業の着工指示が発行された後に、前記対応する単位作業の結果情報を受け取る作業結果受領部と、
前記対応する単位作業の結果情報が得られると、前記生成されたトランザクションデータに当該結果情報を組み込んだ後、当該トランザクションデータに基づき前記対応する単位作業の完成の承認を得るための処理を実行する完成承認取得部と、
前記対応する単位作業の完成の承認が得られた後、完成の承認が得られた単位作業に対応するトランザクションデータを含む新たなブロックを前記ブロックチェーンに追加するブロックチェーン更新部と、
前記着工された単位作業の完成の承認が得られた後、前記複数の単位作業につき予め決められた実行順序に基づき、当該単位作業の次に実行すべき単位作業を決定する後続実行設定部と
を備え、
前記ブロックチェーンは、前記完成の承認が得られた単位作業に対応するトランザクションデータと、当該トランザクションデータのハッシュ値を含むブロックヘッダを前記完成の承認が得られた順に連結して構成されるブロックチェーン構成データとを含み、
前記分散システムは、前記複数の生産管理端末装置のいずれもがアクセス可能であって前記完成の承認が得られた単位作業に対応するトランザクションデータを保持する第1の共有記憶部を備え、
前記複数の生産管理端末装置のそれぞれは、前記ブロックチェーン構成データを保持しており、
前記トランザクション生成部は、前記後続実行設定部により次に実行すべき単位作業が決定されると、当該決定された単位作業に対応するトランザクションデータを生成し、
前記ブロックチェーン更新部は、
前記完成の承認が得られた単位作業に対応するトランザクションデータを含む新たなブロックを前記ブロックチェーンに追加すべきときに、当該対応するトランザクションデータを前記第1の共有記憶部に
のみ格納するデータ書込部と、
前記新たなブロックを前記ブロックチェーンに追加すべきときに、前記対応するトランザクションデータが生成された生産管理端末装置におけるブロックチェーン構成データに前記対応するトランザクションデータのハッシュ値を含むブロックヘッダを追加するブロック生成更新部と、
前記対応するトランザクションデータが前記第1の共有記憶部に格納され、かつ、前記対応するトランザクションデータのハッシュ値を含むブロックヘッダが前記ブロックチェーン構成データに追加されると、当該新たなブロックの追加を示すブロック追加通知を前記分散システムにおける他の生産管理端末装置が受信可能に前記通信ネットワークに送出するブロック追加通知部と、
新たなブロックの追加を示すブロック追加通知を前記通信ネットワークを介して受け取ると、当該ブロック追加通知を受け取った生産管理端末装置におけるブロックチェーン構成データに、当該新たなブロックにおけるトランザクションデータのハッシュ値を含むブロックヘッダを追加するブロック受信更新部とを含む、生産管理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、製品の生産に必要な部材の手配のための物流管理および当該部材を用いた製造のための工程管理を行う生産管理システム、生産管理方法、および、そのような生産管理システムにおいてコンピュータが実行すべき生産管理プログラムに関する。
【背景技術】
【0002】
製造メーカにおいて、製品が設計されると部材一覧表(以下「BOM(Bill Of Material)」ともいう)が作成され、その製品が受注されると、当該BOMに基づき、MRP(Material Requirements Planning)システムによる所要量計算によって必要な部材とその数量が特定され、それらの部材を手配するための帳票が作成される。その後、それらの部材がオフラインで紙ベースで発注されるか、または、外付けのEDI(Electronic Data Interchange)システムで発注される。このため、従来、必要な部材の発注後の生産の進捗状況や品質の管理を、コンピュータ等を使用して高い精度で効率よく行うことは困難であった。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2003-223492号公報
【文献】特開2014-197308号公報
【文献】特表2018-506128号公報
【文献】特開2018-169798号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
製品の製造のための上記一連の作業の管理(部材の発注・納品、製造工程の管理)で使用されるシステムにおいて次のような問題がある。すなわち、製品の製造のための部材の所要量計算および発注を指示するシステムと発注を行うシステムとは、通常、データ授受可能に接続されていない。また、これらのシステムには種々の異なるタイプのものがあり、企業が異なったり同一企業内であっても部門が異なったりすると、異なる種類のシステムが使用されることが多く、その場合にはそれらのシステム間でデータの互換性が得られない。また、必要な部材の購入先や製造場所が異なる国である場合には、上記管理のためのデータ授受を国を跨がって行うことができないため、上記管理のための作業負担が大きなものとなる。
【0005】
このような状況から、従来は、必要な部材の購入先や製造場所が異なる企業または異なる国である場合には、製品の製造のための物流管理および工程管理、すなわち、納品・検収に伴う所有権移転や、途中の生産工程の進捗状況、部材の現在地点、通過時間、品質などの管理が煩雑化し長時間を要するものとなっていた。
【0006】
そこで本発明は、必要な部材の購入先や製造場所が異なる企業や国に跨がっている場合であっても上記のような物流管理および工程管理を含む生産管理を効率よく行えるシステムや方法等を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の幾つかの実施形態に係るプログラムは、製品の生産に必要な部材の手配のための物流管理および当該部材を用いた製造のための工程管理を含む生産管理を行うためのプログラムであって、
通信ネットワークと当該通信ネットワークにより互いに接続された複数のノードコンピュータとを含み前記生産管理のためのブロックチェーンを形成すべき分散システムにおけるノードコンピュータに、
前記製品の製造に必要な情報を生産情報として受け取る入力ステップと、
前記生産管理の対象となる作業を構成する複数の単位作業のいずれかの開始指示を受け取ると、当該開始指示に基づき開始すべき単位作業に対応するトランザクションデータを前記生産情報に基づき生成するトランザクション生成ステップと、
前記開始すべき単位作業に対応するトランザクションデータが生成されると、当該単位作業の着工の承認を得るための処理を実行する着工承認取得ステップと、
前記開始すべき単位作業の着工の承認が得られた後に、当該単位作業の着工指示を発行する着工指示ステップと、
前記開始すべき単位作業の着工指示が発行された後に、当該着工指示に基づき着工された単位作業の結果情報を受け取る作業結果受領ステップと、
前記着工された単位作業の結果情報が得られると、前記生成されたトランザクションデータに当該結果情報を組み込んだ後、当該トランザクションデータに基づき当該単位作業の完成の承認を得るための処理を実行する完成承認取得ステップと、
前記着工された単位作業の完成の承認が得られた後、完成の承認が得られた単位作業に対応するトランザクションデータを含む新たなブロックを前記ブロックチェーンに追加するブロックチェーン更新ステップと、
前記着工された単位作業の完成の承認が得られた後、前記複数の単位作業につき予め決められた実行順序に基づき、当該単位作業の次に実行すべき単位作業を開始させるための後続実行設定ステップと
を実行させ、
前記ブロックチェーンは、前記完成の承認が得られた単位作業に対応するトランザクションデータと、当該トランザクションデータのハッシュ値を含むブロックヘッダを前記完成の承認が得られた順に連結して構成されるブロックチェーン構成データとを含み、
前記分散システムは、前記複数のノードコンピュータのいずれもがアクセス可能であって前記完成の承認が得られた単位作業に対応するトランザクションデータを保持する第1の共有記憶部を備え、
前記複数のノードコンピュータのそれぞれは、前記ブロックチェーン構成データを保持しており、
前記ブロックチェーン更新ステップは、
前記完成の承認が得られた単位作業に対応するトランザクションデータを含む新たなブロックを前記ブロックチェーンに追加すべきときに、当該対応するトランザクションデータを前記第1の共有記憶部にのみ格納するデータ書込ステップと、
前記新たなブロックを前記ブロックチェーンに追加すべきときに、前記対応するトランザクションデータが生成されたノードコンピュータにおけるブロックチェーン構成データに前記対応するトランザクションデータのハッシュ値を含むブロックヘッダを追加するブロック生成更新ステップと、
前記対応するトランザクションデータが前記第1の共有記憶部に格納され、かつ、前記対応するトランザクションデータのハッシュ値を含むブロックヘッダが前記ブロックチェーン構成データに追加されると、当該新たなブロックの追加を示すブロック追加通知を前記分散システムにおける他のノードコンピュータが受信可能に前記通信ネットワークに送出するブロック追加通知ステップと、
新たなブロックの追加を示すブロック追加通知を前記通信ネットワークを介して受け取ると、当該ブロック追加通知を受け取ったノードコンピュータにおけるブロックチェーン構成データに、当該新たなブロックにおけるトランザクションデータのハッシュ値を含むブロックヘッダを追加するブロック受信更新ステップとを含む。
【0008】
本発明の他の幾つかの実施形態に係る生産管理端末装置は、製品の生産に必要な部材の手配のための物流管理および当該部材を用いた製造のための工程管理を含む生産管理を行う生産管理システムにおける生産管理端末装置であって、
前記生産管理システムは、前記生産管理端末装置を含む複数の生産管理端末装置と、当該複数の生産管理端末を互いに接続する通信ネットワークとを含み、前記生産管理のためのブロックチェーンを形成すべき分散システムであり、
前記生産管理端末装置は、
前記製品の製造に必要な情報を生産情報として受け取る入力部と、
前記生産管理の対象となる作業を構成する複数の単位作業のいずれかの開始指示を受け取ると、当該開始指示に基づき開始すべき単位作業に対応するトランザクションデータを前記生産情報に基づき生成するトランザクション生成部と、
前記開始すべき単位作業に対応するトランザクションデータが生成されると、当該単位作業の着工の承認を得るための処理を実行する着工承認取得部と、
前記開始すべき単位作業の着工の承認が得られた後、当該単位作業の着工指示を発行する着工指示部と、
前記開始すべき単位作業の着工指示が発行された後、当該着工指示に基づき着工された単位作業の結果情報を受け取る作業結果受領部と、
前記着工された単位作業の結果情報が得られると、前記生成されたトランザクションデータに当該結果情報を組み込んだ後、当該トランザクションデータに基づき当該単位作業の完成の承認を得るための処理を実行する完成承認取得部と、
前記着工された単位作業の完成の承認が得られた後、完成の承認が得られた単位作業に対応するトランザクションデータを含む新たなブロックを前記ブロックチェーンに追加するブロックチェーン更新部と、
前記着工された単位作業の完成の承認が得られた後、前記複数の単位作業につき予め決められた実行順序に基づき、当該単位作業の次に実行すべき単位作業を開始させるための後続実行設定部とを含み、
前記ブロックチェーンは、前記完成の承認が得られた単位作業に対応するトランザクションデータと、当該トランザクションデータのハッシュ値を含むブロックヘッダを前記完成の承認が得られた順に連結して構成されるブロックチェーン構成データとを含み、
前記分散システムは、前記複数の生産管理端末装置のいずれもがアクセス可能であって前記完成の承認が得られた単位作業に対応するトランザクションデータを保持する第1の共有記憶部を備え、
前記複数の生産管理端末装置のそれぞれは、前記ブロックチェーン構成データを保持しており、
前記ブロックチェーン更新部は、
前記完成の承認が得られた単位作業に対応するトランザクションデータを含む新たなブロックを前記ブロックチェーンに追加すべきときに、当該対応するトランザクションデータを前記第1の共有記憶部にのみ格納するデータ書込部と、
前記新たなブロックを前記ブロックチェーンに追加すべきときに、前記対応するトランザクションデータのハッシュ値を含むブロックヘッダを前記ブロックチェーン構成データに追加するブロック生成更新部と、
前記対応するトランザクションデータが前記第1の共有記憶部に格納され、かつ、前記対応するトランザクションデータのハッシュ値を含むブロックヘッダが前記ブロックチェーン構成データに追加されると、当該新たなブロックの追加を示すブロック追加通知を前記分散システムにおける他の生産管理端末装置が受信可能に前記通信ネットワークに送出するブロック追加通知部と、
新たなブロックの追加を示すブロック追加通知を前記通信ネットワークを介して受け取ると、当該新たなブロックにおけるトランザクションデータのハッシュ値を含むブロックヘッダを前記ブロックチェーン構成データに追加するブロック受信更新部とを含む。
【0009】
本発明の更に他の幾つかの実施形態に係る生産管理方法は、製品の生産に必要な部材の手配のための物流管理および当該部材を用いた製造のための工程管理を含む生産管理を行う生産管理方法であって、
前記製品の設計情報を受け取り、前記製品の製造に必要な情報を当該設計情報に基づき生産情報として生成するとともに、通信ネットワークと当該通信ネットワークにより互いに接続された複数の生産管理端末装置とを含む分散システムにおいて前記生産管理のためのブロックチェーンを形成するための準備を行う準備ステップと、
前記生産管理の対象となる作業を構成する複数の単位作業にそれぞれ対応する複数のトランザクションデータを前記生産情報に基づき順次に生成するトランザクション生成ステップと、
前記トランザクション生成ステップによりいずれかのトランザクションデータが生成されると、当該生成されたトランザクションデータに対応する単位作業の着工の承認を得るための処理を実行する着工承認取得ステップと、
前記対応する単位作業の着工の承認が得られた後に、前記対応する単位作業の着工指示を発行する着工指示ステップと、
前記対応する単位作業の着工指示が発行された後に、前記対応する単位作業の結果情報を受け取る作業結果受領ステップと、
前記対応する単位作業の結果情報が得られると、前記生成されたトランザクションデータに当該結果情報を組み込んだ後、当該トランザクションデータに基づき前記対応する単位作業の完成の承認を得るための処理を実行する完成承認取得ステップと、
前記対応する単位作業の完成の承認が得られた後、完成の承認が得られた単位作業に対応するトランザクションデータを含む新たなブロックを前記ブロックチェーンに追加するブロックチェーン更新ステップと、
前記着工された単位作業の完成の承認が得られた後、前記複数の単位作業につき予め決められた実行順序に基づき、当該単位作業の次に実行すべき単位作業を決定する後続実行設定ステップと
を備え、
前記ブロックチェーンは、前記完成の承認が得られた単位作業に対応するトランザクションデータと、当該トランザクションデータのハッシュ値を含むブロックヘッダを前記完成の承認が得られた順に連結して構成されるブロックチェーン構成データとを含み、
前記分散システムは、前記複数の生産管理端末装置のいずれもがアクセス可能であって前記完成の承認が得られた単位作業に対応するトランザクションデータを保持する第1の共有記憶部を備え、
前記複数の生産管理端末装置のそれぞれは、前記ブロックチェーン構成データを保持しており、
前記トランザクション生成ステップでは、前記後続実行設定ステップにより次に実行すべき単位作業が決定されると、当該決定された単位作業に対応するトランザクションデータが生成され、
前記ブロックチェーン更新ステップは、
前記完成の承認が得られた単位作業に対応するトランザクションデータを含む新たなブロックを前記ブロックチェーンに追加すべきときに、当該対応するトランザクションデータを前記第1の共有記憶部にのみ格納するデータ書込ステップと、
前記新たなブロックを前記ブロックチェーンに追加すべきときに、前記対応するトランザクションデータが生成された生産管理端末装置におけるブロックチェーン構成データに前記対応するトランザクションデータのハッシュ値を含むブロックヘッダを追加するブロック生成更新ステップと、
前記対応するトランザクションデータが前記第1の共有記憶部に格納され、かつ、前記対応するトランザクションデータのハッシュ値を含むブロックヘッダが前記ブロックチェーン構成データに追加されると、当該新たなブロックの追加を示すブロック追加通知を前記分散システムにおける他の生産管理端末装置が受信可能に前記通信ネットワークに送出するブロック追加通知ステップと、
新たなブロックの追加を示すブロック追加通知を前記通信ネットワークを介して受け取ると、当該ブロック追加通知を受け取った生産管理端末装置におけるブロックチェーン構成データに、当該新たなブロックにおけるトランザクションデータのハッシュ値を含むブロックヘッダを追加するブロック受信更新ステップとを含む。
【0010】
本発明の更に他の幾つかの実施形態に係る生産管理システムは、製品の生産に必要な部材の手配のための物流管理および当該部材を用いた製造のための工程管理を含む生産管理を行う生産管理システムであって、
通信ネットワークと、
前記通信ネットワークにより互いに接続された複数の生産管理端末装置とを備え、
前記通信ネットワークと前記複数の生産管理端末装置とは、前記生産管理のためのブロックチェーンを形成する分散システムを構成し、
前記分散システムは、
前記製品の設計情報を受け取り、前記製品の製造に必要な情報を当該設計情報に基づき生産情報として生成する生産情報生成部と、
前記生産管理の対象となる作業を構成する複数の単位作業にそれぞれ対応する複数のトランザクションデータを前記生産情報に基づき順次に生成するトランザクション生成部と、
前記トランザクション生成部によりいずれかのトランザクションデータが生成されると、当該生成されたトランザクションデータに対応する単位作業の着工の承認を得るための処理を実行する着工承認取得部と、
前記対応する単位作業の着工の承認が得られた後に、前記対応する単位作業の着工指示を発行する着工指示発行部と、
前記対応する単位作業の着工指示が発行された後に、前記対応する単位作業の結果情報を受け取る作業結果受領部と、
前記対応する単位作業の結果情報が得られると、前記生成されたトランザクションデータに当該結果情報を組み込んだ後、当該トランザクションデータに基づき前記対応する単位作業の完成の承認を得るための処理を実行する完成承認取得部と、
前記対応する単位作業の完成の承認が得られた後、完成の承認が得られた単位作業に対応するトランザクションデータを含む新たなブロックを前記ブロックチェーンに追加するブロックチェーン更新部と、
前記着工された単位作業の完成の承認が得られた後、前記複数の単位作業につき予め決められた実行順序に基づき、当該単位作業の次に実行すべき単位作業を決定する後続実行設定部と
を備え、
前記ブロックチェーンは、前記完成の承認が得られた単位作業に対応するトランザクションデータと、当該トランザクションデータのハッシュ値を含むブロックヘッダを前記完成の承認が得られた順に連結して構成されるブロックチェーン構成データとを含み、
前記分散システムは、前記複数の生産管理端末装置のいずれもがアクセス可能であって前記完成の承認が得られた単位作業に対応するトランザクションデータを保持する第1の共有記憶部を備え、
前記複数の生産管理端末装置のそれぞれは、前記ブロックチェーン構成データを保持しており、
前記トランザクション生成部は、前記後続実行設定部により次に実行すべき単位作業が決定されると、当該決定された単位作業に対応するトランザクションデータを生成し、
前記ブロックチェーン更新部は、
前記完成の承認が得られた単位作業に対応するトランザクションデータを含む新たなブロックを前記ブロックチェーンに追加すべきときに、当該対応するトランザクションデータを前記第1の共有記憶部にのみ格納するデータ書込部と、
前記新たなブロックを前記ブロックチェーンに追加すべきときに、前記対応するトランザクションデータが生成された生産管理端末装置におけるブロックチェーン構成データに前記対応するトランザクションデータのハッシュ値を含むブロックヘッダを追加するブロック生成更新部と、
前記対応するトランザクションデータが前記第1の共有記憶部に格納され、かつ、前記対応するトランザクションデータのハッシュ値を含むブロックヘッダが前記ブロックチェーン構成データに追加されると、当該新たなブロックの追加を示すブロック追加通知を前記分散システムにおける他の生産管理端末装置が受信可能に前記通信ネットワークに送出するブロック追加通知部と、
新たなブロックの追加を示すブロック追加通知を前記通信ネットワークを介して受け取ると、当該ブロック追加通知を受け取った生産管理端末装置におけるブロックチェーン構成データに、当該新たなブロックにおけるトランザクションデータのハッシュ値を含むブロックヘッダを追加するブロック受信更新部とを含む。
【0012】
本発明の上記幾つかの実施形態以外の実施形態については、下記の実施形態の説明から明らかとなるので、説明を省略する。
【発明の効果】
【0013】
本発明の上記幾つかの実施形態によれば、生産管理のために各単位作業(例えば、調達、品質管理、または、生産工程等)を管理するための情報である着工情報および完成情報を含むトランザクションデータが、製品の製造のための作業の進行にしたがって生産管理の対象としての単位作業の実行順に、ブロックチェーンの形態で記録されていく。また、各単位作業に対応するトランザクションデータは、当該単位作業の着手前の着工承認および当該単位作業の実行後の完成承認を得た後に、当該トランザクションデータを含むブロックがブロックチェーンに追加される。このため、生産管理のための情報として信頼性の高い適正な情報(各トランザクションデータ)が改竄困難な形態で記録される。また、例えばインターネットで相互に接続されたパソコン等のコンピュータや情報処理装置により生産管理システムを実現することが可能であり、製品の製造に必要な部材の購入先や製造場所が異なる企業や国に跨がっている場合であっても当該製造のための部品の物流管理や工程管理を効率よく行うことができる。
【0014】
本発明の上記幾つかの実施形態以外の実施形態の効果については、下記の各実施形態の説明から明らかであるので、説明を省略する。
【図面の簡単な説明】
【0015】
【
図1】本発明の第1の実施形態に係る生産管理システムとして機能する分散システムを示す概略図である。
【
図2】上記第1の実施形態における分散システムを構成するノードに相当するコンピュータ(ノードコンピュータ)の一構成例を示すブロックである。
【
図3】上記第1の実施形態における分散システムを構成するノードコンピュータの他の構成例を示すブロックである。
【
図4】上記第1の実施形態における分散システムにおいて共有記憶部を実現するために使用可能なネットワーク接続型憶装置(NAS)の構成を示すブロック図である。
【
図5】上記第1の実施形態における生産管理に関連する作業の流れを模式的に示す図である。
【
図6】上記第1の実施形態における1つのトランザクションに相当する単位作業につき着工の承認を得るための作業および完成の承認を得るための作業を示す図である。
【
図7】上記第1の実施形態におけるトランザクションについての承認者として自動判定処理ルーチンを含む場合の完成承認を説明するための図である。
【
図8】上記第1の実施形態における生産管理前処理を示すフローチャートである。
【
図9】上記第1の実施形態における分散システムを構成する各ノードコンピュータにおいて生産管理のために実行される本体処理を示すフローチャートである。
【
図10】上記第1の実施形態において形成されるブロックチェーンにおけるブロックの構成を説明するための図である。
【
図11】上記第1の実施形態における各ノードコンピュータが保持する自ブロックチェーン構成データの更新を説明するための図である。
【
図12】上記第1の実施形態における各単位作業において必要となる生産情報および着工情報を示す図である。
【
図13】上記第1の実施形態における生産管理データ構造の一例を示す図である。
【
図14】本発明の第2の実施形態における生産管理前処理を示すフローチャートである。
【
図15】上記第2の実施形態における分散システムを構成する各ノードコンピュータにおいて生産管理のために実行される本体処理を示すフローチャートである。
【
図16】上記第2の実施形態における生産管理データ構造の一例を示す図である。
【
図17】本発明の第3の実施形態において生産管理のためにサーバとしてのコンピュータで実行されるサーバ側本体処理を示すフローチャートである。
【
図18】上記第3の実施形態において生産管理のためにクライアントとしてのコンピュータで実行されるクライアント側本体処理を示すフローチャートである。
【
図19】本発明の第4の実施形態において生産管理のためにサーバとしてのコンピュータで実行されるサーバ側本体処理を示すフローチャートである。
【
図20】上記第4の実施形態において生産管理のためにクライアントとしてのコンピュータで実行されるクライアント側本体処理を示すフローチャートである。
【
図21】上記第1および第3の実施形態の変形例における生産管理データ構造の一例を示す図である。
【
図22】上記第2および第4の実施形態の変形例における生産管理データ構造の一例を示す図である。
【発明を実施するための形態】
【0016】
以下、本発明の実施形態につき図面を参照して説明する。
<1.第1の実施形態>
<1.1 生産管理システムの全体構成>
図1は、本発明の第1の実施形態に係る生産管理システムとして機能する分散システムの全体構成を示す概略図である。この分散システムは、インターネット等の通信ネットワーク100と、その通信ネットワーク100により互いに通信可能に接続されたノードに相当する複数のコンピュータ(以下「ノードコンピュータ」という)とを含む。
図1に示すように、この生産管理システムとしての分散システムは、ノードコンピュータとして、生産管理コンピュータ10と、調達管理コンピュータ11と、複数のサプライヤコンピュータ13a,13b,…と、品質管理コンピュータ15と、複数の製造管理コンピュータ17a,17b,…とを備えている。本実施形態では、このような分散システムにおいて、各ノードコンピュータ10,11,13a,13b,…,15,17a,17b,…が後述の生産管理プログラムに基づいて動作することにより、製品の生産に必要な部材の手配のための物流管理および当該部材を用いた製造のための工程管理を行う生産管理のためのブロックチェーンが形成される(以下、この分散システムを「ブロックチェーンシステム」ともいう)。なお
図1は、本実施形態における分散システムを構成するノードコンピュータを例示的に示すものであり、本発明の生産管理システムは、これらのノードコンピュータに代えて又はこれらとともに他のコンピュータを含んでいてもよい。
【0017】
図2は、
図1の分散システムを構成するノードコンピュータとしての調達管理コンピュータ11のハードウェア構成を示すブロック図である。このコンピュータ11は、本体110、補助記憶装置120、光ディスクドライブ130、表示部140、キーボード150、およびマウス160などを備えている。本体110は、CPU111、メモリ112、第1ディスクインタフェース部113、第2ディスクインタフェース部114、表示制御部115、入力インタフェース部116、およびネットワークインタフェース部117を含んでいる。CPU111、メモリ112、第1ディスクインタフェース部113、第2ディスクインタフェース部114、表示制御部115、入力インタフェース部116、およびネットワークインタフェース部117は、システムバスを介して互いに接続されている。第1ディスクインタフェース部113には補助記憶装置120が接続されている。第2ディスクインタフェース部114には光ディスクドライブ130が接続されている。表示制御部115には表示部(表示装置)140が接続されている。入力インタフェース部116にはキーボード150およびマウス160が接続されている。ネットワークインタフェース部117には上記の通信ネットワーク100が接続されている。補助記憶装置120は磁気ディスク装置などである。光ディスクドライブ130には、DVD(Digital Versatile Disc)またはCD-ROM(Compact Disc Read Only Memory)等のコンピュータ読み取り可能な記録媒体としての光ディスク170が挿入される。表示部140は液晶ディスプレイなどである。表示部140は、操作者が所望する情報を表示するために使用される。キーボード150およびマウス160は、本生産管理システムとしての分散システムすなわちブロックチェーンシステム(
図1)に対して操作者が指示を入力するために使用される。
【0018】
図1の分散システムにおける他のノードコンピュータも、
図2に示した上記構成と同様の構成とすることができる。ただし本実施形態では、当該分散システムを構成するいずれのノードコンピュータからもアクセス可能な記憶部(以下「共有メモリ」または「共有記憶部」という)が設けられている。
図3は、この共有記憶部の第1の実現例を説明するための図であり、ノードコンピュータについての
図2の構成例とは若干異なる他の構成例を示している。第1の実現例では、生産管理コンピュータ10における補助記憶装置120内に設けられた共有領域123が共有記憶部として機能する。すなわち
図3に示すように、生産管理コンピュータ10は、ハードウェア的には、
図2の構成と基本的に同じであるが、その補助記憶装置120には、
図1の分散システムにおける他のノードコンピュータからも通信ネットワーク100を介してアクセス可能な共有領域123が設けられている。生産管理コンピュータ10のハードウェア構成における他の部分は、
図2に示した上記構成と同じであるので、同一要素には同一の参照符号を付して説明を省略する。
【0019】
図4は、この共有記憶部の第2の実現例を説明するための図であり、
図1の分散システムにおいて使用可能なネットワーク接続型記憶装置(Network Attached Storage)(以下「NAS」という)19のハードウェア構成を示している。NAS19は、システムバスで互いに接続されたCPU111、メモリ112、ディスクインタフェース部113、およびネットワークインタフェース部117を含む制御部210と、ディスクインタフェース部113に接続された共有補助記憶装置220とを備えており、
図1の分散システムにおける他のノードコンピュータから通信ネットワーク100を介して共有補助記憶装置220にアクセス可能に構成されている。したがって、この補助記憶措置220は、上記共有記憶部として機能する。
【0020】
なお、
図1の分散システムにおける各ノードコンピュータは、通信ネットワーク100に接続可能なコンピュータとして通常の機能を有するものであれば、
図2または
図3に示した構成とは異なる構成であってもよい。ただし当該分散システムは、上記共有記憶部を備える必要がある。以下では説明の便宜上、生産管理コンピュータ10以外の各ノードコンピュータは、
図2に示した構成と同じ構成を備え、同一部分には同一の参照符号を付すものとする。生産管理コンピュータ10は、
図3に示すように構成されており、その補助記憶装置120における共有領域123が上記共有記憶部として機能するものとする。
【0021】
調達管理コンピュータ11の補助記憶装置120には、調達管理コンピュータ11をブロックチェーンシステムにおけるノードとして機能させるための生産管理プログラム121が格納されている。
図1の分散システムにおける他のノードコンピュータにおいても、その補助記憶装置120には、同様の生産管理プログラム121が格納されている。
図1の分散システムを構成する各ノードコンピュータにおいて、そのCPU111がその生産管理プログラム121を補助記憶装置120からメモリ112に読み出して実行することにより、当該分散システムにおいて生産管理のためのブロックチェーンが形成され、このブロックチェーンを用いて、製品の生産に必要な部材の手配のための物流管理および当該部材を用いた製造のための工程管理が行われる。
【0022】
図5は、本実施形態において生産管理の対象となる作業および生産管理のための作業の流れを模式的に示す図である。以下、
図5を参照して、本実施形態における生産管理に関連するこれらの作業の流れを説明する。
【0023】
図5に示すように製造メーカにおいて、受注した製品が設計されると(P1,P2)、その設計結果を示すデータ(以下「設計情報」という)が図面データベース(図面DB)に格納される(P3)。ここで図面データベースに格納されるデータには、その製品についての設計段階での部品構成すなわち機能面から見た部品構成を示す部材一覧表(以下「設計部品表」という)B1が含まれる。その後、上記設計情報に基づき品質工程手順書および工程手順書が作成される(P8,P11,P13)。すなわち、上記の製品設計(P2)に基づき各部材の設計仕様および品質指標を示す情報が品質・仕様・管理データベースに格納され(P7)、この品質・仕様・管理データベースを用いて品質工程手順書が作成される(P8)。また、上記の製品設計(P2)に基づき当該製品の製造のための工程設計が行われ(P10)、その工程設計に基づき、必要な生産工程(
図5の例では生産工程1および生産工程2)のための工程手順書が作成される(P11,P13)。また、当該製品の設計(P2)において作成される上記の設計部品表B1に基づき、MRP(Material Requirements Planning)の手法による所要量計算(以下「MRP計算」ともいう)を行うことにより、必要な部材が特定され(P4)、それらの部材を調達するための部品表(以下「調達部品表」といい、「BOM」と略記することがある)が作成される(P5)。なお、「工程手順書」とは、各工程の手順が記載された手順書であり、当該工程の達成すべき仕様や当該工程の対象となる部材も記載されている。「品質工程手順書」とは、対象となる部材や部品の仕様および達成すべき基準が記載された手順書である。なお、品質工程手順書には、必要に応じて、各部品や部材によって構成された部材の仕様が記載されていてもよい。
【0024】
上記のようにして調達部品表が作成されると、当該製造メーカの調達部門においてその調達部品表にしたがって、必要な部材の調達が行われる(P6)。すなわち、必要な各部材を、当該部材を提供するサプライヤに発注する。具体的には、調達部門の作業者(担当者)が、必要な部材や部品とその数量を特定して手作業で発注するか、または、当該製造メーカが当該部材や部品の調達に利用可能なEDI(Electronic Data Interchange)システムを備えている場合にはそのシステムを利用して発注を行う。説明の便宜上、
図5に示す例では、10個の部材(1)~(10)が発注されるものとする。また調達部門には、
図1の分散システムにおける調達管理コンピュータ11が設置されている。後述のように調達部門の作業者は、調達の作業開始の前に、本実施形態における生産管理の対象となる単位作業としての調達の開始を指示する入力操作を当該調達管理コンピュータ11に対して行う。これにより当該調達に対応するトランザクションデータTD1が生成される。ただし本実施形態は、
図1の分散システムにおける調達管理コンピュータ11以外の他のノードコンピュータに対する入力操作によっても当該調達の開始を指示することができるように構成されている(詳細は後述)。
【0025】
上記のようにして調達部門で発注された部材(1)~(10)がサプライヤから納品されると、作業者がそれらの部材を検収する。その後、検収された部材は、次工程である品質管理工程へ渡される。すなわち、検収された部材は、当該製造メーカの品質管理部門に納品される(次工程納品)。
【0026】
品質管理部門では、納品された部材のそれぞれにつき、既述の品質工程手順書に基づき品質管理の作業が行われる(P9)。具体的には、品質管理部門に渡された上記部材(1)~(10)のそれぞれにつき当該品質工程手順書に基づく検査が行われる。また品質管理部門には、
図1の分散システムにおける品質管理コンピュータ15が設置されている。後述のように品質管理部門の作業者は、品質管理の作業開始の前に、本実施形態における生産管理の対象となる単位作業としての品質管理の開始を指示する入力操作を当該品質管理コンピュータ15に対して行う。これにより当該品質管理に対応するトランザクションデータTD2が生成される。ただし本実施形態は、
図1の分散システムにおける品質管理コンピュータ15以外の他のノードコンピュータに対する入力操作によっても当該品質管理の開始を指示することができるように構成されている(詳細は後述)。
【0027】
このような品質管理工程は、品質管理の作業が終了した部材(1)~(10)につき検査・検収を行うことにより終了し、この検査・検収を経た部材は、次工程である生産工程1へ渡される。すなわち、生産工程1を備える当該製造メーカ(自社)または他社(関連会社を含む。以下同様。)の製造部門に納品される(次工程納品)。
【0028】
生産工程1を備える製造部門(以下「第1製造部門」という)では、納品された部材(1)~(10)を用いて、生産工程1のための既述の工程手順書(以下「第1工程手順書」という)に基づき製造を行う。
図5に示す例では、この生産工程1において、部材(1)から部品1が製造され、部材(2)(3)から部品2が製造され、部材(4)~(6)から部品3が製造され、部材(7)~(9)から部品4が製造され、部材(10)から部品5が製造される。また第1製造部門には、
図1の分散システムにおける第1製造管理コンピュータ17aが設置されている。後述のように第1製造部門の作業者は、第1生産工程による製造の開始前に、本実施形態における生産管理の対象となる単位作業としての第1生産工程の開始を指示する入力操作を当該第1製造管理コンピュータ17aに対して行う。これにより第1生産工程に対応するトランザクションデータTD3が生成される。ただし本実施形態は、
図1の分散システムにおける第1製造管理コンピュータ17a以外の他のノードコンピュータに対する入力操作によっても第1生産工程の開始を指示することができるように構成されている(詳細は後述)。
【0029】
第1生産工程は、そこで製造された部品1~5につき検査・検収を行うことにより終了し、この検査・検収を経た部品1~5は、次工程である生産工程2へ渡される。すなわち、生産工程2を備える当該製造メーカまたは他社の製造部門に納品される(次工程納品)。
【0030】
生産工程2を備える製造部門(以下「第2製造部門」という)では、納品された部品1~5を用いて、生産工程2のための既述の工程手順書(以下「第2工程手順書」という)に基づき製造を行う。
図5に示す例では、この生産工程2において、部品1,2から構成品(component)Iが製造され、部品3から構成品IIが製造され、部品4,5から構成品IIIが製造される。また第2製造部門には、
図1の分散システムにおける第2製造管理コンピュータ17bが設置されている。後述のように第2製造部門の作業者は、第2生産工程による製造の開始前に、本実施形態における生産管理の対象となる単位作業としての第2生産工程の開始を指示する入力操作を当該第2製造管理コンピュータ17bに対して行う。これにより第2生産工程に対応するトランザクションデータTD4が生成される。ただし本実施形態は、
図1の分散システムにおける第2製造管理コンピュータ17b以外の他のノードコンピュータに対する入力操作によっても第2生産工程の開始を指示することができるように構成されている(詳細は後述)。
【0031】
なお、
図5に示す例では、上記のようにして製造された構成品I~IIIが製品の1セットとして出荷されるが、これに代えて、生産工程2の次工程として更に生産工程3が設けられていて、この生産工程3においてそれらの構成品I~IIIが1つの製品に組み立てられてもよい。
【0032】
<1.2 生産管理システムにおけるトランザクションとその承認>
図5に示すように本実施形態に係る生産管理システムでは、調達、品質管理、生産工程1、生産工程2のそれぞれが管理の単位となる単位作業として扱われ、各単位作業に対応するトランザクションデータTD1~TD4が順次に生成される。すなわち、本実施形態では生産管理の対象となる単位作業の種類に応じて互いに種別の異なる複数の(
図5に示す例では4つの)トランザクションデータTD1~TD4が予め決められた順序で生成される。いずれかのトランザクションデータTDk(k=1~4)が生成されると、そのトランザクションデータTDkは後述の承認による内容的な検証がなされた後に、そのトランザクションデータTDk単独で又は他の検証済みの1つ以上のトランザクションデータTDkb(kb≠k)とともに1つのブロックとして、
図1の分散システムで形成されるべきブロックチェーンに追加される(詳細は後述)。なお本実施形態では、生産管理システムにおける管理の単位となる調達、品質管理、生産工程1、または、生産工程2等の単位作業は、
図1の分散システムで形成されるべきブロックチェーンにおけるトランザクションに相当し、トランザクションに相当する単位作業の実行に関する記録をトランザクションデータと呼ぶものとする(他の実施形態においても同様)。後述のように、トランザクションの種別毎に予め決められた項目からなるテンプレートが用意されており、いずれかの単位作業が開始されるときに、当該単位作業に相当するトランザクションのテンプレートに当該単位作業の実行に関するデータが組み込まれることによりトランザクションデータが生成される。
【0033】
図6は、本実施形態における1つのトランザクションに相当する単位作業につき着工の承認を得るための作業および完成の承認を得るための作業を示す図である。本実施形態では、各トランザクションにつき、それに相当する単位作業の開始を承認する1または複数の承認者(以下「着工承認者」ともいう)、および、当該単位作業の完了後に当該単位作業が適正に実行されたことを承認する1または複数の承認者(以下「完成承認者」ともいう)が予め決められている。
図6に示す例では、着工承認者(着工承認の主体)は3人の承認者1s,2s,3sから構成され、完成承認者(完成承認の主体)は3人の承認者1c,2c,3cから構成される。
【0034】
開始すべき単位作業が例えば調達である場合には、調達部門の発注担当者および/または責任者が着工承認者となり、調達部門の納品受領の担当者および/または責任者が完成承認者となる。調達先としてのサプライヤにもノードコンピュータが設置されており(
図1)、サプライヤを着工承認者に含めてもよい。また、開始すべき単位作業が例えば品質管理である場合には、品質管理部門の作業者および/または責任者が着工承認者および完成承認者となる。この場合、品質管理部門に納品された部品が仕様に合致していることを既述の品質工程手順書(P8)で確認することにより着工承認および完成承認が行われる。なお、着工承認は、当該製品の生産計画に適合していることを確認するために行われ、完成承認は、部材や部品等が検査や品質管理の面から適正であることを確認するために行われる。
【0035】
本実施形態では、いずれかの単位作業を開始すべきとき、すなわち、いずれかのトランザクションを起動すべきときに、当該トランザクションにつき
図6に示す着工承認が行われる。すなわち、まず、着工承認者である各承認者1s,2s,3sに対し着工申請が行われる。具体的には、通信ネットワーク100を利用して各承認者1s,2s,3sに電子メールを送信すること等により着工申請を行う。
【0036】
上記の着工申請に応じて全ての承認者1s,2s,3sから、通信ネットワーク100を利用した電子メール等により着工許可が得られると、当該単位作業が開始される。その後、当該単位作業が終了すると、当該トランザクションにつき
図6に示す完成承認が行われる。すなわち、まず、完成承認者である各承認者1c,2c,3cに対し完成申請が行われる。具体的には、通信ネットワーク100を利用して各承認者1c,2c,3cに電子メールを送信すること等により完成申請を行う。
【0037】
上記の完成申請に応じて全ての承認者1c,2c,3cから、通信ネットワーク100を利用した電子メール等により完成許可が得られると、当該トランザクションに対応するトランザクションデータTDkの内容が検証されたことになる。これにより、このトランザクションデータTDkを含むブロックが後述の手続にしたがってブロックチェーンに追加されるとともに、本生産管理システムは、次のトランザクションの起動が可能な状態、すなわち次の単位作業の開始が可能な状態となる(
図5参照)。
【0038】
なお上記では、着工申請、着工許可、完成申請、および完成許可(以下これらを総称して「申請承認作業」という)は、通信ネットワーク100を利用した電子メール等により行われるものとしたが、これに代えて又はこれとともに、他の方法により申請承認作業を行ってもよい。例えば、電話、書面の手渡し、または、直接的な対話等により申請承認作業を行ってもよい。なお、承認者による着工許可および完成許可を認証するために電子署名を利用してもよい。
【0039】
また、着工承認者や完成承認者に、所定の地点で着工完成(当該単位作業の開始および終了)がなされたことを確認する地点管理者が含まれていてもよい。この地点管理者は、人間である必要はなく、コンピュータ等の情報処理装置をGPS(Global Positioning System)と連動して動作させる所定のプログラム(または処理ルーチン)であってもよい。このような地点管理者を着工承認者や完成承認者に含めることにより、製品の製造に必要な部品の誤配送を防止することができる。また、地点管理者による承認のために使用される位置データは、部品または製品が倉庫に格納された場合には区域や棚位置等の詳細データを含むのが好ましい。
【0040】
また、着工承認者や完成承認者に、所定の時間内または時間帯に着工完成(当該単位作業の開始および終了)がなされたことを確認する時間管理者が含まれていてもよい。この時間管理者も、人間である必要はなく、コンピュータ等の情報処理装置を時計と連動して動作させる所定のプログラム(または処理ルーチン)であってもよい。このような時間管理者を着工承認者や完成承認者に含めることにより、例えば生産工程への部材や部品の早期投入や遅延を防止することができる。
【0041】
図7は、本実施形態におけるトランザクションについての完成承認者として自動判定処理ルーチンを含む場合の完成承認を説明するための図である。
図7は、開始すべき単位作業が品質管理である場合の着工承認および完成承認の手順を模式的に示している。すなわち、
図7に示す例では、生産管理の対象となる単位作業として品質管理を開始すべきときは、まず、当該単位作業としての品質管理に対応するトランザクションデータ(以下「対応トランザクションデータ」という)TD2が作成され(
図5参照)、次に、該当する着工承認者1s~Nsに着工申請がなされ、これに応じて全ての着工承認者1s~Nsから着工許可が得られると、当該単位作業が開始される。その後、当該単位作業が終了すると、当該単位作業の結果情報が当該トランザクションデータTD2に組み込まれ、続いて、完成承認者である各承認者1c,2c,…,Mcに対し完成申請が行われる。
図7に示すように、完成承認者としての承認者1c,2c,…,Mcのうち第2承認者2cは、人間ではなく自動判定処理ルーチンであり、第2承認者2cに対する完成申請は、この自動判定処理ルーチンの起動に相当する。この自動判定処理ルーチンは例えば品質管理コンピュータ15で実行される。このとき品質管理コンピュータ15は次のように動作する。
【0042】
まず、既述の品質工程手順書(P8)と対応トランザクションデータTD2とを照合し(ステップS202)、品質工程手順書に対応トランザクションデータTD2が適合しているか否かを判定する(ステップS204)。その判定の結果、品質工程手順書に対応トランザクションデータTD2が適合している場合(すなわち品質管理の対象としての各部材がその仕様に合致している場合)、当該自動判定処理ルーチンが終了する。これにより、承認者2cとしての自動判定処理ルーチンから、品質管理に対応するトランザクションを起動したコンピュータ(通常は品質管理コンピュータ)における着工承認取得処理のルーチンに完成許可が与えられる(後述の
図9のステップS42参照)。
【0043】
ステップS204での判定の結果、品質工程手順書に対応トランザクションデータTD2が適合していない場合には、不適合部分を解消するためのトラブルシューティングを行う(ステップS206)。ただし、この自動判定処理ルーチンにおいて不適合部分を解消できない場合、このステップS206では、不適合部分の告知(例えば品質管理コンピュータ15の表示部への表示)を行い、他の機器や作業者による処理によって不適合部分が解消されるまで待機することになる。この待機中において不適合部分の解消を示す入力操作またはデータを受け取るとステップS202へ戻る。以後、品質工程手順書に対応トランザクションデータTD2が適合するまで、ステップS202~S206を繰り返し実行し、品質工程手順書に対応トランザクションデータTD2が適合していると判定されると、当該自動判定処理ルーチンが終了し、対応トランザクションデータTD2を起動したコンピュータにおける完成承認取得処理のルーチンに完成許可が与えられる(後述の
図9のステップS54参照)。
【0044】
<1.3 生産管理のためのプログラムおよび処理>
既述のように本実施形態では、
図1の分散システムにおける各ノードコンピュータ10,11,13a,13b,…,15,17a,17b,…が生産管理プログラムを実行することにより、受注した製品の製造のための生産管理、すなわち当該製品の生産に必要な部材の手配のための物流管理および当該部材を用いた製造のための工程管理を行うためのブロックチェーンが当該分散システムにおいて形成され、当該分散システムは、このブロックチェーンを用いて製品を製造するための生産管理システムとして機能する。すなわち、通信ネットワーク100によって互いに接続されたノードコンピュータ10,11,13a,13b,…,15,17a,17b,…は、生産管理プログラムをそれぞれ実行することにより、生産管理システムを構成する生産管理端末装置10,11,13a,13b,…,15,17a,17b,…として機能する。ただし、上記製造メーカにおいて、受注した製品の製造のための生産管理を行うためには、当該製品の設計情報に基づき、当該製品の製造に必要な情報を生産情報として各ノードコンピュータに与える必要がある。本実施形態では、このための処理(以下「生産管理前処理」という)は、生産管理コンピュータ10が所定プログラム(以下「生産管理前処理プログラム」という)を実行することにより実現される。
【0045】
上記より、
図1の分散システムにおいて各ノードコンピュータ10,11,13a,13b,…,15,17a,17b,…が生産管理プログラムを実行するとともに、生産管理コンピュータ10が生産管理前処理プログラムを実行することにより、本実施形態に係る生産管理システムが実現される。これらの生産管理プログラムおよび生産管理前処理プログラムは、コンピュータ読み取り可能な記録媒体(非一過性の記録媒体)としての光ディスク170に格納されて提供される。すなわち、各ノードコンピュータ10,11,13a,13b,…,15,17a,17b,…のユーザは、例えば、生産管理プログラム121の記録媒体としての光ディスク170を購入して光ディスクドライブ130に挿入し、光ディスク170から生産管理プログラム121を読み出して補助記憶装置120にインストールする(
図2参照)。また、これに代えて、通信ネットワーク100を介して送信される生産管理プログラム121をネットワークインタフェース部117で受信して、それを補助記憶装置120にインストールするようにしてもよい。また、生産管理コンピュータ10のユーザは、同様にして、生産管理前処理プログラムの格納された記録媒体としての光ディスク170を購入し、または、通信ネットワーク100を介して生産管理前処理プログラムを受信して補助記憶装置120にインストールする。
【0046】
以下、
図8および
図9を参照して、これら生産管理前処理プログラムに基づく生産管理前処理および生産管理プログラムに基づく生産管理本体処理について説明する。
【0047】
<1.3.1 生産管理前処理>
図8は、本実施形態における生産管理前処理の手順を示すフローチャートである。この生産管理前処理は、
図1に示す分散システムにおいて生産管理コンピュータ10が生産管理前処理プログラムに基づき行う処理であり、当該分散システムにおいて生産管理のためのブロックチェーンを形成するための準備に相当する。生産管理コンピュータ10は、この生産管理前処理プログラムに基づき下記のように動作する。
【0048】
既述のようにして、受注した製品の設計情報に基づき調達部品表(BOM)(P5)、品質工程手順書(P8)、生産工程1および2のための工程手順書(P11,P13)が作成されると(
図5参照)、生産管理コンピュータ10は、これらの調達部品表、品質工程手順書、および、工程手順書を受け取り、これらから当該製品の製造のための生産情報を作成する(ステップS12)。
【0049】
次に、生産管理コンピュータ10は、ステップS12で作成された生産情報を、
図1の分散システムにおける各ノードコンピュータが取得できるように通信ネットワーク100に送出する(ブロードキャスト)。後述のように、この生産情報は各ノードコンピュータで受信されてメモリ112または補助記憶装置120に格納される。各ノードコンピュータがアクセス可能な共有メモリが分散システム内(例えばいずれかのノードコンピュータ内のメモリ112内)に設けられている場合には、その生産情報を各ノードコンピュータ内のメモリ112等に格納する代わりに、当該共有メモリに格納してもよい。本実施形態では、既述のように、生産管理コンピュータ10の補助記憶装置120内に設けられた共有領域123が当該共有メモリ(共有記憶部)として機能するので(
図3参照)、この共有領域123に上記生産情報を格納してもよい。この点は他の実施形態においても同様である。
【0050】
上記生産情報が通信ネットワーク100に送出された後、上記生産情報に基づき下記データ(d1)~(d3)を作成し、下記データ(d1)~(d3)を各ノードコンピュータが取得できるように通信ネットワーク100に送出する。すなわち下記データ(d1)~(d3)をブロードキャストする。なお以下、これらのデータ(d1)~(d3)を総称して「生産管理準備データ」という。
(d1)各トランザクションデータのテンプレートTP1~TP4(
図13)
(d2)ブロックチェーンの形成に必要な準備データ(
図11参照)
(d3)トランザクションの起動順を示す順序データ(
図13のTBL)
【0051】
ここで、(d1)のテンプレートについては、
図5に示す例では、調達、品質管理、生産工程1、生産工程2という4つの単位作業に応じて4種類のトランザクションデータTD1~TD4のそれぞれ対応する4つのテンプレートTP1~TP4が作成されて通信ネットワーク100に送出される。
(d2)の準備データは、後述の
図11に示すようなブロックチェーンの形成に必要なデータであってトランザクションデータ以外のデータであり、例えば、ハッシュ値を算出するためのハッシュ関数を定義するためのデータや、各ブロックの構造を定義するためのデータ、新たなブロックをブロックチェーンに追加するときに求められるハッシュ値に課せられる制約(これは当該ブロックチェーンにおけるハッシュパズルの難易度に相当する)を示すデータ等である。なお、本実施形態で使用されるハッシュ関数は、一方向性関数である暗号的ハッシュ関数である。
(d3)の順序データは、本実施形態における複数のトランザクションには起動の順序が予め決まっていることに基づくものであり、この起動順を特定するデータである。
図5に示す例では、調達→品質管理→生産工程1→生産工程2という単位作業の実行順序に応じて、これら4つの単位作業にそれぞれ対応する4つのトランザクションが当該順序で起動される。この場合、順序データは、調達→品質管理→生産工程1→生産工程2という単位作業の実行順を示すことになる。このような順序データの示す情報は、本実施形態では、後述の生産管理プログラムの実行中において、
図13に示すようにテーブルの形態で保持される。
【0052】
上記生産管理準備データ(d1)~(d3)が通信ネットワーク100に送出されると、生産管理前処理を終了する。なお、後述のように、この生産管理準備データ(d1)~(d3)は、各ノードコンピュータのメモリ112等に格納されることで各ノードコンピュータ内に保持される。各ノードコンピュータがアクセス可能な共有メモリが分散システム内(例えばいずれかのノードコンピュータ内のメモリ112内)に設けられている場合には、この生産管理準備データ(d1)~(d3)の一部または全部を各ノードコンピュータ内のメモリ112等に格納する代わりに、当該共有メモリに格納してもよい。本実施形態では、この生産管理準備データ(d1)~(d3)の一部または全部を、生産管理コンピュータ10の補助記憶装置120内において共有メモリ(共有記憶部)として機能する共有領域123に格納してもよい(
図3参照)。
【0053】
<1.3.2 生産管理本体処理>
図9は、本実施形態における分散システム(
図1)を構成する各ノードコンピュータにおいて生産管理のために行われる処理(以下「生産管理本体処理」または単に「本体処理」という)を示すフローチャートである。この本体処理は、
図1に示す分散システムにおけるノードコンピュータ(生産管理コンピュータ10を含む)のそれぞれが生産管理プログラム121を実行することにより実現される。この本体処理により、各ノードコンピュータに保持されるべき自ブロックチェーン構成データおよび共有記憶部123に格納されるべきトランザクションデータが生成され更新されることで、生産管理のためのブロックチェーンが
図1の分散システムにおいて形成され更新される。具体的には、各ノードコンピュータは、この生産管理プログラム121に基づき下記のように動作する。以下、1つのノードコンピュータに着目して、生産管理プログラムに基づく本体処理につき
図9を参照して説明する。
【0054】
まず、当該ノードコンピュータは、生産管理コンピュータ10から通信ネットワーク100に送出された生産情報および生産管理準備データを受け取り(
図8のステップS14,S16および
図9のステップS22参照)、生産情報に基づき、生産管理の対象となる作業を構成する単位作業のうち最初に実行すべき単位作業を実行可能単位作業として設定する(ステップS24)。
図5に示す例では、最初に実行される単位作業は調達であるので、これが実行可能単位作業として設定される。また、生産管理準備データに基づき、本実施形態における単位作業の実行順を特定するとともに各トランザクションデータのテンプレートを保持するためのデータ構造(以下「生産管理データ構造」という)として、
図13に示すデータ構造を作成する。
【0055】
次に、ブロック追加通知を他のノードコンピュータから受領したか否かを判定し(ステップS26)、ブロック追加通知を受領していなければステップS28へ進み、実行可能単位作業を表示する(ステップS28)。これにより、当該ノードコンピュータの操作者は、現時点で実行可能な単位作業を認識することができ、その実行可能な単位作業を開始すべきと判断する場合には、当該ノードコンピュータに対して、単位作業の開始を指示する入力操作を行う。
【0056】
その後、当該ノードコンピュータは、単位作業の開始を指示する入力操作が当該ノードコンピュータに行われたか否かを判定する(ステップS30)。その結果、単位作業の開始を指示する入力操作が行われていない場合にはステップS26へ戻る。以降、ブロック追加通知を受け取らず単位作業の開始を指示する入力操作も行われない間は、ステップS26→ステップS28→ステップS30を繰り返し実行する。
【0057】
なお、ここでのブロック追加通知とは、
図1の分散システムにおける他のノードコンピュータでの本体処理により着工許可および完成許可の得られたトランザクションデータすなわち検証済みのトランザクションデータを含むブロックがブロックチェーンに追加されるときに、各ノードコンピュータに保持されるブロックチェーン構成データの一貫性を確保すべく、ブロック追加に関する情報を各ノードコンピュータに送信してブロックチェーンの更新を知らせることをいう(後述のステップS60参照)。
【0058】
上記のようにステップS26→ステップS28→ステップS30を繰り返し実行している間に、ブロック追加通知を受け取ると(ステップS26でYesと判定されると)、ステップS32へ進み、自ブロックチェーン構成データを更新する。以下、
図10および
図11を参照して、この自ブロックチェーン構成データの更新について説明する。なお、ブロックチェーンを構成する各ブロックには複数のトランザクションデータを含めることが可能であるが、以下では説明の便宜上、各ブロックには1つのトランザクションデータのみが含まれるものとする。
【0059】
本実施形態におけるブロックチェーンは、生産管理システムにおいて1つの製品に対する生産管理のために生成されるトランザクションデータを含むブロックを生成順に連結したものであり、そのブロックチェーンを構成するデータのうちブロックヘッダを連結して構成される自ブロックチェーン構成データが
図1の分散システムにおける各ノードコンピュータに保持される。ただし、下記のように、ブロックチェーンを構成する各ブロックにおけるトランザクションデータは、生産管理コンピュータ10の補助記憶装置120内の共有領域123(以下「共有記憶部123」という)に格納され、この共有記憶部123に格納されたトランザクションデータは
図1の分散システムにおける各ノードコンピュータによって共用される。この点で、生産管理コンピュータ10はサーバとして機能するといえる。
【0060】
図10(A)は、本実施形態におけるブロックチェーンを構成する1つのブロックの構成例を示す図である。
図10(A)に示すように、当該1つのブロックは、ブロックヘッダBLKkと、当該ブロックヘッダBLKkに対応付けられたトランザクションデータTDkとからなる。ブロックヘッダBLKkは、自ブロックチェーン構成データの構成要素として各ノードコンピュータに保持され、トランザクションデータTDkは、共有記憶部123に格納される(
図3参照)。
図10(A)の構成例では、各ブロックヘッダBLKk(k=1,2,…)は、それに対応付けるべきトランザクションデータTDkのハッシュ値THSkと、当該トランザクションデータTDkの格納場所(共有記憶部123における格納位置)を示すアドレス値TADkと、直前ブロックヘッダBLKk-1を参照するためのアドレス情報としての直前参照PRFkと、直前ブロックヘッダBLKk-1のハッシュ値PHSkと、当該ブロックヘッダBLKkのハッシュ値を求めるときに使用されるナンス値NSkとを含んでいる(後述の
図11(A)参照)。
【0061】
本実施形態では、いずれかの単位作業の開始指示に基づきトランザクションデータTDkが新たに生成されると、その単位作業についての着工承認および完成承認の作業を経た後、そのトランザクションデータTDkに対応するブロックが作成されてブロックチェーンに追加される(
図9のステップS58,S60等参照)。このとき、
図10(A)に示すように1つのブロックヘッダBLKkには1つのトランザクションデータTDkのみが対応するが、1つのブロックヘッダに複数のトランザクションデータが対応する構成、すなわち1つのブロックに複数のトランザクションデータが含まれる構成であってもよい。このような構成のブロックでは、それに含まれる複数のトランザクションデータがマークルツリー(Merkle Tree)の形態で連結されることで、当該複数のトランザクションデータのハッシュ値が当該マークルツリーのルートノードのハッシュ値(以下「ルートハッシュ値」という)に集約され、当該ブロックのブロックヘッダBLKkにおいて、そのルートハッシュ値がトランザクションハッシュ値THSkとして保持されるとともに、当該マークルツリーのルートノードの格納場所(すなわちルートノードを構成する後述のハッシュ参照データの格納場所)を示すアドレス情報がトランザクションアドレス値TADkとして保持される。
【0062】
例えば、1つのブロックに2つのトランザクションデータTDk1,TDk2(例えば調達に対応するトランザクションデータTD1と品質管理に対応するトランザクションデータTD2)が含まれる場合、当該ブロックは
図10(B)に示すように構成される。すなわち当該ブロックは、
図10(A)の構成例におけるブロックヘッダBLKkと同じ構成のブロックヘッダBLKkと、当該2つのトランザクションデータTDk1,TDk2を連結して構成されたマークルツリーとを含む。このマークルツリーは、
図10(B)に示すように、2つのトランザクションデータTDk1,TDk2をそれぞれリーフノードとして含むとともに、一方のトランザクションデータTDk1のハッシュ参照データTHRk1と他方のトランザクションデータTDk2のハッシュ参照データTHRk2とからなるルートノードTNk1を含む。ここで、ハッシュ参照データとは、データの読み出しに使用すべきデータであって、読み出すべきデータの格納場所を示すアドレス値と当該読み出すべきデータのハッシュ値とからなるデータである(以下では、トランザクションデータの読み出しに使用すべきハッシュ参照データを「トランザクションハッシュ参照データ」という)。したがって、
図10(B)の構成例では、ルートノードTNk1を構成する2つのトランザクションハッシュ参照データのうち、一方のハッシュ参照データTHRk1は、上記一方のトランザクションデータTDk1の格納場所を示すアドレス値と上記一方のトランザクションデータTDk1のハッシュ値とからなり、他方のハッシュ参照データTHRk2は、上記他方のトランザクションデータTDk2の格納場所を示すアドレス値と上記他方のトランザクションデータTDk2のハッシュ値とからなる。また、ルートノードTNk1のハッシュ参照データTHRkが、当該2つのトランザクションデータTDk1,TDk2に対応するブロックヘッダBLKkに保持される。すなわち
図10(B)に示すように、当該ブロックヘッダBLKkにおいて、ルートノードTNk1の格納場所を示すアドレス値がトランザクションアドレス値TADkとして保持されるとともに、当該ルートノードTNk1のハッシュ値がトランザクションハッシュ値THSkとして保持される。なお、
図10(B)の構成例における上記マークルツリーにおいて、ルートノードTNk1とリーフノードとしてのトランザクションデータTDk1,TDk2との間に(2個の)中間ノードを設けることにより、1つのブロックに更に多くのトランザクションデータを含めることができる。この場合、各中間ノードは、その子ノードとしてのリーフノードのハッシュ参照データから構成され、ルートノードTNk1は、その子ノードとしての中間ノードのハッシュ参照データから構成される。
【0063】
上記ようなマークルツリーを用いることにより、ブロックヘッダの構成を変えることなく、1つのブロックに複数のトランザクションデータを含めることができる。ただし以下では、既述のように説明の便宜上、各ブロックに含まれるトランザクションデータは1個のみとする。
【0064】
図11は、本実施形態における各ノードコンピュータが保持するブロックチェーン構成データ(自ブロックチェーン構成データ)の更新を説明するための図である。いま、ブロック追加通知を受け取った時点で、当該ノードコンピュータにおける自ブロックチェーン構成データが
図11(A)に示すようにブロックヘッダBLK1~BLKnが順に連結された状態であるときに、トランザクションデータTDn+1のハッシュ参照データ(トランザクションハッシュ値THSn+1およびトランザクションアドレス値TADn+1)と直前ハッシュ値PHSn+1とナンス値NSn+1を含むブロック追加通知を受け取るものとする(ステップS26)。このブロック追加通知に応じて次のような自ブロックチェーン構成データの更新が行われる。
【0065】
まず、ブロックチェーンに追加すべきブロックのブロックヘッダBLKn+1を生成して自ブロックチェーン構成データに組み込む。具体的には、このブロック追加通知に含まれる直前ハッシュ値PHSn+1、ナンス値NSn+1、トランザクションハッシュ値THSn+1、およびトランザクションアドレス値TADn+1を含み、自ブロックチェーンにおける最新参照RRFすなわちn番目のブロックヘッダBLKnの位置を示すアドレス情報を直前参照PRFn+1として含むブロックヘッダをn+1番目のブロックヘッダBLKn+1として生成する。その後、最新参照RRFをn+1番目のブロックヘッダBLKn+1の位置を示すアドレス情報に更新する。このようにして自ブロックチェーン構成データは、
図11(A)に示す構成から
図11(B)に示す構成に更新される。
【0066】
なお、ブロック追加通知を受け取ったときに、追加すべきブロックに含まれるトランザクションデータとして共有記憶部123に格納されたトランザクションデータTDn+1を入力値とするハッシュ関数の出力値とそのブロック追加通知に含まれるトランザクションハッシュ値THSn+1とが一致することを確認とともに、そのブロック追加通知に含まれるトランザクションハッシュ値THSn+1と直前ハッシュ値PHSn+1とナンス値NSn+1との組み合わせを入力値とするハッシュ関数の出力値を求め、この出力値が所定値以下であることを確認することが好ましい。これらの確認ができない場合は、トランザクションデータTDn+1と直前ハッシュ値PHSn+1とナンス値NSn+1のうち少なくとも1つは適正でないので、そのブロック追加通知に基づく自ブロックチェーン構成データの更新は回避すべきであるからである。
【0067】
上記のようにして自ブロックチェーン構成データが更新された後は、ステップS22で入力された生産情報に基づく
図12または
図13に示すデータを参照して、実行可能な単位作業の有無を判定する(ステップS34)。この判定の結果、実行可能な単位作業がなければ、本実施形態において生産管理の対象となる全ての単位作業に対応するトランザクションは全て起動されたことになる。すなわち、1つの製品の生産管理のための当該ノードコンピュータでの本体処理が終了したことになる。そこで、ステップS22へ戻り、次に製造すべき製品に関する生産情報を受け取るまでステップS22で待機する。
【0068】
ステップS34での判定の結果、実行可能な単位作業がある場合には、
図13に示す生産管理データ構造におけるテーブルTBLで特定される実行順に基づき、自ブロックチェーン構成データにおける最新のブロックヘッダBLKn+1に対応する最新のトランザクションデータに対応する単位作業の次に実行すべき単位作業を決定し、当該決定された単位作業を実行可能単位作業として設定し、これを当該ノードコンピュータの表示部140に表示する(ステップS36)。その後、ステップS26へ戻る。
【0069】
一方、ステップS26→ステップS28→ステップS30を繰り返し実行している間に、単位作業の開始を指示する入力操作を当該ノードコンピュータが受け付けると(ステップS30でYesと判定されると)、現時点の実行可能単位作業の開始が指示されたとみなし、当該実行可能単位作業を対象単位作業としてステップS38へ進む。
【0070】
ステップS38では、ステップS22で入力された生産情報および自ブロックチェーン構成データにおける最新ブロックヘッダ(以下この最新ブロックヘッダを符号“BLKn”で示すものとする)に含まれるトランザクションデータTDnを参照して、対象単位作業の着工情報を取得する。この着工情報は、対象単位作業の開始に必要なデータである。
図12は、各単位作業において必要となる生産情報および着工情報を示している。
図12に示すように、着工情報は、対象単位作業が調達である場合には、生産情報における調達部品表(BOM)から得られる部品発注番号であり、対象単位作業が品質管理である場合には、生産情報における品質工程手順を示す情報および直前の単位作業(調達)に対応するトランザクションデータTDnから得られる次工程納品を示す情報であり、対象単位作業が生産工程1である場合には、生産情報における工程手順1を示す情報および直前の単位作業(品質管理)に対応するトランザクションデータTDnから得られる次工程納品1を示す情報であり、対象単位作業が生産工程2である場合には、生産情報における工程手順2を示す情報および直前の単位作業(生産工程1)に対応するトランザクションデータTDnから得られる次工程納品2を示す情報である(
図5参照)。
【0071】
次に、
図13に示す生産管理データ構造に基づき、取得された着工情報を対象単位作業(
図12参照)に対応するテンプレートTPn+1に組み込むことにより、対象単位作業に対応するトランザクションデータ(以下「対応トランザクションデータ」という)TDn+1を生成する(ステップS40)。
【0072】
次に、対象単位作業の着工承認の取得処理を実行する(ステップS42)。
図13に示すように、各単位作業に対応するテンプレートTPk(k=1~4)には当該単位作業の着工承認者や完成承認者を特定する情報(以下「承認者情報」という)ASが含まれている。そこで、対応トランザクションデータTDn+1に含まれる承認者情報ASで特定される各着工承認者Ssjから既述のようにして着工許可を得るための作業が行われ(
図6、
図7参照)、その作業に基づき当該ノードコンピュータに対し各着工承認者Ssjによる着工許可を示す通知または入力操作が行われる。この着工承認の取得処理は、当該承認者情報ASで特定される全ての着工承認者Ssjから着工許可を得るまで繰り返される(ステップS42,S44)。当該承認者情報ASで特定される全ての着工承認者Ssjから着工許可が得られると、対象単位作業の着手が承認されたとみなしてステップS46へ進む。
【0073】
ステップS46では、対象単位作業の着工指示を発行する。この着工指示の発行により、対象単位作業が開始される。すなわち、対象単位作業が調達、品質管理、生産工程1、生産工程2のいずれであるかに応じて、対応する部門の担当者やコンピュータ等が既述の作業または処理を行う(
図5参照)。
【0074】
対象単位作業に相当する既述の作業または処理が終了すると、当該ノードコンピュータは、対象単位作業の終了通知を受け取り(ステップS48)、その後、対象単位作業の結果情報を取得し(ステップS50)、取得された結果情報を対応トランザクションデータTDn+1に完成情報として組み込む(ステップS52)。ここで、対象単位作業の結果情報とは、対象単位作業が調達である場合には、発注日や検収日等を示す情報であり、対象単位作業が品質管理である場合には、部品の検査結果等を示す情報であり、対象単位作業が生産工程1である場合には、生産工程1により得られる部品の検査結果や検収日等を示す情報であり、対象単位作業が生産工程2である場合には、生産工程2により得られる部品または製品の検査結果や検収日等を示す情報である。
【0075】
次に、対象単位作業の完成承認の取得処理を実行する(ステップS54)。この取得処理では、対応トランザクションデータTDn+1に含まれる承認者情報ASで特定される各完成承認者Scj(
図13参照)から既述のようにして、対応トランザクションデータTDn+1に基づき対象単位作業につき完成許可を得るための作業が行われ(
図6、
図7参照)、その作業に基づき当該ノードコンピュータに対し、各完成承認者Scjによる完成許可を示す通知または入力操作が行われる。この完成承認の取得処理は、当該承認者情報ASで特定される全ての完成承認者Scjから完成許可を得るまで繰り返される(ステップS54,S56)。当該承認者情報ASで特定される全ての完成承認者Scjから完成許可が得られると、対象単位作業の完成が承認されたとみなしてステップS57へ進む。
【0076】
ステップS57では、対応トランザクションデータTDn+1を含むブロックを本実施形態におけるブロックチェーンに追加するためのナンス値を求める。すなわち、既述の生産管理準備データ(ステップS22参照)で特定されるハッシュ関数を使用したときのハッシュ値が下記の条件HPを満たすようにナンス値を求める(このようなナンス値を求める問題は「ハッシュパズル」呼ばれる)。
(条件HP):トランザクションハッシュ値THSn+1と直前ハッシュ値とナンス値との組み合わせを入力値としたときのハッシュ関数の出力値であるハッシュ値が所定値以下である(例えば出力値の所定上位ビットが“0”である)。ここでの直前ハッシュ値は、現時点の最新ブロックヘッダであるn番目のブロックヘッダBLKnにおけるトランザクションハッシュ値THAnと直前ハッシュ値PHSnとナンス値NSnとの組み合わせを入力値としたときのハッシュ関数の出力値である。
【0077】
上記の条件HPを満たすナンス値が求められると、対応トランザクションデータTDn+1による自ブロックチェーン構成データの更新を行う(ステップS58)。すなわち、当該ノードコンピュータの自ブロックチェーン構成データにつき下記の処理を行う。
【0078】
いま、ステップS58における自ブロックチェーン構成データの更新の直前において、当該自ブロックチェーン構成データが
図11(A)に示すようにブロックヘッダBLK1~BLKnが順に連結された状態であるものとする。このときステップS58では、まず、対応トランザクションデータTDn+1を共有記憶部123(サーバとして機能する生産管理コンピュータ10の補助記憶装置120における共有領域123(
図3参照))に格納し、対応トランザクションデータTDn+1に対応するブロックヘッダBLKn+1を生成して自ブロックチェーン構成データに組み込む。ここでブロックヘッダBLKn+1は、次のようなデータを含むブロックヘッダとして生成される。すなわちブロックヘッダBLKn+1は、当該自ブロックチェーン構成データの更新直前の最新ブロックヘッダすなわちn番目のブロックヘッダBLKnの位置を示すアドレス情報を直前参照PRFn+1として含み、そのn番目のブロックヘッダBLKnに含まれるトランザクションハッシュ値THSnと直前ハッシュ値PHSnとナンス値NSnとの組み合わせを入力値としたときのハッシュ関数の出力値を直前ハッシュ値PHSn+1として含み、対応トランザクションデータTDn+1の共有記憶部123における格納場所を示すアドレス情報をトランザクションアドレス値TADn+1として含み、対応トランザクションデータTDn+1を入力値としたときのハッシュ関数の出力値をトランザクションアドレス値TADn+1として含む。その後、最新参照RRFとして、n+1番目のブロックヘッダBLKn+1の位置を示すアドレス情報を設定する。このようにして、自ブロックチェーン構成データは、
図11(A)に示す構成から
図11(B)に示す構成に更新される。
【0079】
上記のような自ブロックチェーン構成データの更新後、当該ノードコンピュータは、対応トランザクションデータTDn+1についてのブロックチェーンの更新権限者として、上記ステップS58において追加されたブロックヘッダBLKn+1に対応する直前ハッシュ値PHSn+1、ナンス値NSn+1、トランザクションハッシュ値THSn+1、およびトランザクションアドレス値TADn+1を含むブロック追加通知を、
図1の分散システムにおける他のノードコンピュータが取得できるように通信ネットワーク100に送出する(ステップS60)。
【0080】
その後、ステップS34へ戻り、ブロック追加通知の受領に基づき自ブロックチェーン構成データを更新した場合(ステップS26→S32)と同様、ステップS34以降の処理を実行する。
【0081】
上記のようにして、
図1の分散システムにおける各ノードコンピュータが生産管理プログラム121に基づき
図9の本体処理を行うことにより、当該分散システムにおいて、トランザクション生成部(ステップS40参照)、着工承認取得部(ステップS42~S44参照)、着工指示発行部(ステップS46参照)、作業結果受領部(ステップS48~S50参照)、完成承認取得部(ステップS52~S56参照)、ブロックチェーン更新部(ステップS26,S32,S57~S60参照)、および、後続実行設定部(S34,S36参照)が実現され、当該分散システムはブロックチェーンを利用した生産管理システムとして機能する。なお、ブロックチェーン更新部は、新たなブロックの生成に基づき自ブロックチェーン構成データを更新するブロック生成更新部(ステップS57~S58)と、ブロック追加通知を送出するブロック追加通知部(ステップS60)、他のノードコンピュータから送出されたブロック追加通知の受信に基づき自ブロックチェーン構成データを更新するブロック受信更新部(ステップS26,S32)とを含む。
【0082】
<1.4 効果>
上記のように本実施形態によれば、生産管理のために各単位作業(
図5に示す例では、調達、品質管理、生産工程1、生産工程2のそれぞれ)を管理するための情報である着工情報および完成情報を含むトランザクションデータTDk(k=1,2,…)が、受注した製品の製造のための作業の進行にしたがって生産管理の対象としての単位作業の実行順に(
図13参照)、ブロックチェーンの形態で記録されていく(
図11参照)。また、各単位作業に対応するトランザクションデータTDkは、当該単位作業に応じて予め決められた着工承認者による着工許可および完成承認者による完成許可を得た後に、当該トランザクションデータTDkを含むブロックがブロックチェーンに追加される。このため、生産管理のための情報として信頼性の高い適正な情報(各トランザクションデータTDk)が改竄困難な形態で記録される。すなわち、
図11に示すような形態で各トランザクションデータを含むブロックチェーンでは、ブロックヘッダBLKkのハッシュ値が直後のブロックヘッダBLKk+1に直前ハッシュ値PHSk+1として含まれているので、当該ブロックヘッダBLKkに対応するトランザクションデータTDkが改竄された場合には、その改竄を容易に検出することができる。一方、最新ブロックヘッダBLKnに先行する途中のブロックヘッダBLKk(k<n)のトランザクションデータTDkが改竄される場合、その改竄が検出されないようにナンス値や直前ハッシュ値を変更しようとすると、当該ブロックヘッダBLKkにつき既述のハッシュパズルを解くだけでなく、当該ブロックヘッダBLKkに後続する全てのブロックヘッダBLKk+1,BLKk+2,…,BLKnにつきハッシュパズルを解くことが必要となるので、ブロックチェーンにおけるトランザクションデータの改竄は困難である。
【0083】
また、生産管理のための上記情報を記録するブロックチェーンを構成するデータのうち、トランザクションデータTD1,TD2,…は、サーバとして機能する生産管理コンピュータ10内の共有記憶部(共有領域)123に格納されるが(
図3、
図10参照)、ブロックヘッダを連結して構成される自ブロックチェーン構成データは、分散システムを構成する各ノードコンピュータ(
図1参照)に保持され、かつ、各ノードコンピュータにおける自ブロックチェーン構成データは一貫性を維持しつつ更新される(
図9参照)。このため、本実施形態に係る生産管理システムは、その全体を制御または調整する部分を必要とすることなく、また当該システムの構成要素として、トランザクションデータを格納するサーバとしてのコンピュータ以外は特に信頼性の高いコンピュータや通信ネットワークを使用しなくても、高い信頼性を維持しつつ高稼働率で連続的に動作することができる。したがって、例えばインターネットで相互に接続されたパソコン等のコンピュータや情報処理装置を用いて生産管理システムを実現することが可能であり、製品の製造に必要な部材の購入先や製造場所が異なる企業や国に跨がっている場合であっても当該製造のための部品の物流管理や工程管理を高い信頼性を維持しつつ効率よく行うことができる。また、高度に制御されたシステムや調整する部分が無く、上記サーバとしてのコンピュータ以外は信頼性の高いコンピュータやネットワークを使用することなく、堅牢な生産情報データベースの構築が可能となり権限を有する者がデータの管理や工程の進捗確認を行うことができる。また、資本関係がない組織体間のEDIシステムとして使用してもよい。
【0084】
また本実施形態によれば、ブロックチェーンを構成する各ブロックに含まれるトランザクションデータTDkは、いずれも共有記憶部123にのみ格納されるので、ブロックチェーンを利用した生産管理システムにおいて必要な記憶容量を低減することができる。
【0085】
<2.第2の実施形態>
上記第1の実施形態では、生産管理の対象となる各単位作業の開始指示およびそれに基づく対応トランザクションデータの生成は、生産管理システムとしての分散システムにおけるいずれのノードコンピュータにおいても行うことができる(
図9参照)。
図1および
図5に示す例では、生産管理の対象となる作業を構成する単位作業(調達、品質管理、生産工程1、生産工程2)と分散システムにおけるノードコンピュータ11,15,17a,17bとを対応付けることができることから、各単位作業に対応するトランザクションデータを生成するコンピュータが予め決められていてもよい。そこで以下では、各単位作業に対応するトランザクションデータを生成するコンピュータが予め決められている生産管理システムを本発明の第2の実施形態として説明する。
【0086】
本実施形態においても、上記第1の実施形態と同様、
図1および
図2に示す分散システムにおいて、当該分散システムを構成する各ノードコンピュータが所定のプログラムを実行することにより、上記と同様の機能を有する生産管理システムが実現される。また、各単位作業に対応するトランザクションデータに基づく着工許可および完成許可を得るための作業や処理も上記第1の実施形態と同様である(
図6、
図7参照)。しかし、本実施形態において当該分散システム(
図1)を構成するコンピュータのうち、生産管理コンピュータ10が実行する生産管理前処理プログラムおよび各ノードコンピュータ10,11,13a,13b,…,15,17a,17b,…が実行する生産管理プログラム121が、上記第1の実施形態における対応するプログラム(
図8、
図9参照)と異なり、これに応じて、単位作業の実行順(トランザクションの起動順)を特定するとともに各トランザクションデータのテンプレートを保持するためのデータ構造すなわち生産管理データ構造も上記第1の実施形態におけるデータ構造(
図13)と相違する。本実施形態におけるこれら以外の構成については上記第1の実施形態と同様であるので、同一または対応する部分に同一の参照符号を付して詳しい説明を省略する。以下では、本実施形態における構成および動作のうち生産管理のためのプログラムと当該プログラムに基づく生産管理前処理および生産管理本体処理を中心に説明する。
【0087】
<2.1 生産管理のためのプログラムおよび処理>
本実施形態においても、受注した製品の設計情報に基づき生産管理に必要な生産情報を生成して各ノードコンピュータに与えるために、
図1の分散システムにおける生産管理コンピュータ10が生産管理前処理プログラムを実行する。また本実施形態においても、
図1の分散システムにおける各ノードコンピュータ10,11,13a,13b,…,15,17a,17b,…が生産管理プログラムを実行することにより、製品の製造に必要な部材の手配のための物流管理および当該部材を用いた製造のための工程管理を行う生産管理のためのブロックチェーンが当該分散システムにおいて形成され、当該分散システムは、このブロックチェーンを用いて製品を製造するための生産管理システムとして機能する。
【0088】
図14は、本実施形態における生産管理前処理の手順を示すフローチャートである。この生産管理前処理は、
図1に示す分散システムにおいて生産管理コンピュータ10が生産管理前処理プログラムに基づき行う処理であり、当該分散システムにおいて生産管理のためのブロックチェーンを形成するための準備に相当する。生産管理コンピュータ10は、この生産管理前処理プログラムに基づき下記のように動作する。
【0089】
まず、上記第1の実施形態と同様(
図8参照)、受注した製品の設計情報に基づき作成された調達部品表(BOM)(P5)、品質工程手順書(P8)、生産工程1および2のための工程手順書(P11,P13)から当該製品のための生産情報を作成し(ステップS12)、その生産情報を、
図1の分散システムにおける各ノードコンピュータが取得できるように通信ネットワーク100に送出する(ステップS14)。
【0090】
その後、上記生産情報に基づき下記データ(e1)~(e3)を作成し、下記データ(e1)~(e3)を各ノードコンピュータが取得できるように通信ネットワーク100に送出する。すなわち下記データ(e1)~(e3)をブロードキャストする(以下、これらのデータ(e1)~(e3)を総称して「生産管理準備データ」という)。
(e1)各トランザクションデータのテンプレートTP1~TP4(
図16)
(e2)ブロックチェーンの形成に必要な準備データ(
図11)
(e3)トランザクションの起動順を示す順序データ
【0091】
これらの生産管理準備データ(e1)~(e3)は、上記第1の実施形態における生産管理準備データ(d1)~(d3)にそれぞれ相当する。しかし本実施形態では、各単位作業に対応するトランザクションデータを生成するコンピュータは、予め決められており、
図16に示す生産管理データ構造におけるテーブルTBLにおいて特定されている。なお、このテーブルTBLで特定されている調達管理コンピュータ(Node1)、品質管理コンピュータ(Node2)、製造管理コンピュータ(Node3)、製造管理コンピュータ(Node4)は、
図1に示す調達管理コンピュータ11、品質管理コンピュータ15、第1製造管理コンピュータ17a、第2製造管理コンピュータ17bにそれぞれ相当する。
【0092】
上記生産管理準備データ(e1)~(e3)が通信ネットワーク100に送出された後、それらの生産管理準備データ(e1)~(e3)のうち順序データに基づき、最初に実行すべき単位作業に対応するトランザクションデータを生成すべきノードコンピュータに対し、当該単位作業の開始指示を送信する(ステップS18)。
図16に示す例では、調達管理コンピュータ11に対し単位作業としての調達の開始指示を送信する。このような最初に実行すべき単位作業の開始指示の送信の後、生産管理前処理を終了する。
【0093】
図15は、本実施形態における分散システム(
図1)を構成する各ノードコンピュータにおいて生産管理のために行われる生産管理本体処理(以下「本体処理」と略記する)を示すフローチャートである。この本体処理は、上記第1の実施形態と同様、
図1に示す分散システムにおけるノードコンピュータ(生産管理コンピュータ10を含む)のそれぞれが生産管理プログラム121を実行することにより実現され、この本体処理により、各ノードコンピュータに保持されるべき自ブロックチェーン構成データおよび共有記憶部123に格納されるべきトランザクションデータが生成され更新されることで、生産管理のためのブロックチェーンが
図1の分散システムにおいて形成され更新される。しかし本実施形態では、各単位作業に対応するトランザクションデータを生成するコンピュータが予め決められていることから、この生産管理プログラム121は、上記第1の実施形態における生産管理プログラム121と異なる。各ノードコンピュータは、本実施形態における生産管理プログラムに基づき下記のように動作する。以下、1つのノードコンピュータに着目して、本実施形態における生産管理プログラムに基づく本体処理につき
図15を参照して説明する。
【0094】
まず、当該ノードコンピュータは、生産管理コンピュータ10から通信ネットワーク100に送出された生産情報(
図14のステップS14参照)および生産管理準備データ(
図14のステップS16参照)を受け取る(ステップS62)。
【0095】
次に、ブロック追加通知を受け取ったか否かを判定し(ステップS64)、ブロック追加通知を受け取っていなければステップS66へ進み、単位作業の開始指示が行われたか否かを判定する。その判定の結果、単位作業の開始指示が行われていない場合にはステップS64へ戻る。以降、ブロック追加通知を受け取らず単位作業の開始指示も行われない間、ステップS64→ステップS66を繰り返し実行する。
【0096】
上記のようにステップS64→ステップS66を繰り返し実行している間に、ブロック追加通知を受け取ると(ステップS64でYesと判定されると)、ステップS68へ進み、自ブロックチェーン構成データを更新する。この自ブロックチェーン構成データの更新における具体的な処理は上記第1の実施形態と同様である(
図11参照)。
【0097】
上記自ブロックチェーン構成データの更新後は、ステップS62で入力された生産情報に基づく
図12または
図16に示すデータを参照して、実行可能な単位作業の有無を判定する(ステップS70)。この判定の結果、実行可能な単位作業がある場合には、ステップS64へ戻る。一方、この判定の結果、実行可能な単位作業がなければ、本実施形態において生産管理の対象となる全ての単位作業に対応するトランザクションは全て起動されたことになる。すなわち、1つの製品の生産管理のための当該ノードコンピュータでの本体処理が終了したことになる。そこで、ステップS62へ戻り、次に製造すべき製品に関する生産情報を受け取るまでステップS62で待機する。
【0098】
上記のようにステップS64→ステップS66を繰り返し実行している間に、ステップS66において他のノードコンピュータから単位作業の開始指示を受け取ると、ステップS72へ進む(以下では、ここで開始指示を受け取った単位作業を「対象単位作業」という)。なお、後述のように各ノードコンピュータからの単位作業の開始指示は、当該単位作業に対して予め決められたノードコンピュータに対して発行される(ステップS102)。したがって、
図16に示すテーブルTBLからわかるように、当該ノードコンピュータが調達管理コンピュータ11(Node1)である場合には調達の開始指示を受け取り、品質管理コンピュータ15(Node2)である場合には品質管理の開始指示を受け取り、第1製造管理コンピュータ17a(Node3)である場合には生産工程1の開始指示を受け取り、第2製造管理コンピュータ17b(Node4)である場合には生産工程2の開始指示を受け取る。
【0099】
ステップS72では、ステップS62で入力された生産情報および自ブロックチェーン構成データにおける最新ブロックヘッダ(以下この最新ブロックヘッダも符号“BLKn”で示すものとする)に含まれるトランザクションデータTDnを参照して、対象単位作業の着工情報を取得する。この着工情報は、上記第1の実施形態における着工情報と同じであるので、説明を省略する(
図12参照)。
【0100】
次に、
図16に示す生産管理データ構造に基づき、取得された着工情報を対象単位作業(
図12参照)に対応するテンプレートTPn+1に組み込むことにより、対象単位作業に対応するトランザクションデータ(以下「対応トランザクションデータ」という)TDn+1を生成する(ステップS74)。
【0101】
次に、対象単位作業の着工承認の取得処理を実行する(ステップS76)。この着工承認の取得処理は、上記第1の実施形態と同様であるので説明を省略する(
図6、
図7参照)。この着工承認の取得処理は、対象単位作業に対応するテンプレートTPi(
図16参照)における承認者情報ASで特定される全ての着工承認者Ssjから着工許可を得るまで繰り返される(ステップS76,S78)。当該承認者情報ASで特定される全ての着工承認者Ssjから着工許可が得られると、対象単位作業の着手が承認されたとみなしてステップS80へ進む。
【0102】
ステップS80では、対象単位作業の着工指示を発行する。この着工指示の発行により、対象単位作業が開始される。すなわち、上記第1の実施形態と同様、対象単位作業が調達、品質管理、生産工程1、生産工程2のいずれであるかに応じて、対応する部門の担当者やコンピュータ等が既述の作業または処理を行う(
図5参照)。
【0103】
対象単位作業に相当する既述の作業または処理が終了すると、当該ノードコンピュータは、対象単位作業の終了通知を受け取り(ステップS82)、その後、対象単位作業の結果情報を取得し(ステップS84)、取得された結果情報を対応トランザクションデータTDn+1に完成情報として組み込む(ステップS86)。これらのステップS82~86の具体的な処理は、上記第1の実施形態と同様であるので(
図9のステップS48~S52参照)説明を省略する。
【0104】
次に、対象単位作業の完成承認の取得処理を実行する(ステップS88)。この完成承認の取得処理は、上記第1の実施形態と同様であるので説明を省略する(
図6、
図7参照)。この完成承認の取得処理は、対象単位作業に対応するテンプレートTPi(
図16参照)における承認者情報ASで特定される全ての完成承認者Scjから完成許可を得るまで繰り返される(ステップS88,S90)。当該承認者情報ASで特定される全ての完成承認者Scjから完成許可が得られると、対象単位作業の完成が承認されたとみなしてステップS92へ進む。
【0105】
ステップS92では、対応トランザクションデータTDn+1を含むブロックを本実施形態におけるブロックチェーンに追加するためのナンス値を求め(ステップS92)、このナンス値を用いて対応トランザクションデータTDn+1による自ブロックチェーン構成データの更新(対応トランザクションデータTDn+1を含むブロックの追加)を行う(ステップS94)。このとき対応トランザクションデータTDn+1は、共有記憶部123に格納され、自ブロックチェーン構成データには含まれない。これらのステップS92,S94の具体的な処理は、上記第1の実施形態と同様であるので(
図9のステップS57,S58、
図11参照)説明を省略する。
【0106】
上記のような自ブロックチェーン構成データの更新後、当該ノードコンピュータは、対応トランザクションデータTDn+1についてのブロックチェーンの更新権限者として、上記ステップS94において追加されたブロックヘッダTBLKn+1に対応する直前ハッシュ値PHSn+1、ナンス値NSn+1、トランザクションハッシュ値THSn+1、およびトランザクションアドレス値TADn+1を含むブロック追加通知を、
図1の分散システムにおける他のノードコンピュータが取得できるように通信ネットワーク100に送出する(ステップS96)。
【0107】
その後、
図16に示すテーブルTBLで特定される実行順(順序データ)に基づき、対象単位作業が最後の単位作業か否かを判定する(ステップS98)。この判定の結果、対象単位作業が最後の単位作業である場合には、本実施形態において生産管理の対象となる全ての単位作業に対応するトランザクションは全て起動されたことになる。すなわち、1つの製品の生産管理のための当該ノードコンピュータでの本体処理が終了したことになる。そこで、ステップS62へ戻り、次に製造すべき製品に関する生産情報を受け取るまでステップS62で待機する。
【0108】
ステップS98での判定の結果、対象単位作業が最後の単位作業でない場合には、
図16に示すテーブルTBLで特定される実行順に基づき、対象単位作業の次に実行すべき単位作業を決定し(ステップS100)、決定した単位作業の開始指示を当該単位作業を実行すべきノードコンピュータに送信する(次の単位作業の開始指示の発行)(ステップS102)。その後、ステップS64へ戻り、それ以降の処理を再び実行する。
【0109】
<2.2 効果>
上記のように本実施形態では、生産管理の対象となる各単位作業(
図5に示す例では、調達、品質管理、生産工程1、生産工程2のそれぞれ)に対応するトランザクションデータを生成するコンピュータが予め決められているが(
図16に示すテーブルTBL参照)、上記第1の実施形態と同様、各単位作業を管理するための情報である着工情報および完成情報を含むトランザクションデータTDk(k=1,2,…)が、受注した製品の製造のための作業の進行にしたがって生産管理の対象としての単位作業の実行順に(
図5、
図16参照)、ブロックチェーンの形態で記録されていく(
図11参照)。また、上記第1の実施形態と同様、各単位作業に対応するトランザクションデータTDkは、当該単位作業に応じて予め決められた着工承認者による着工許可および完成承認者による完成許可を得た後に、当該トランザクションデータTDkを含むブロックがブロックチェーンに追加される。したがって、本実施形態も上記第1の実施形態と同様の効果を奏する。すなわち本実施形態によっても、製品の製造に必要な部材の購入先や製造場所が異なる企業や国に跨がっている場合であっても当該製造のための部品の物流管理および工程管理を高い信頼性を維持しつつ効率よく行うことができる。また、高度に制御されたシステムや調整する部分が無く、上記サーバとしてのコンピュータ以外は信頼性の高いコンピュータやネットワークを使用することなく、堅牢な生産情報データベースの構築が可能となる。また、資本関係がない組織体間のEDIシステムとして使用してもよい。さらにまた、ブロックチェーンを構成する各ブロックに含まれるトランザクションデータTDkは、いずれも共有記憶部123にのみ格納されるので、ブロックチェーンを利用した生産管理システムにおいて必要な記憶容量を低減することができる。
【0110】
<3.第3の実施形態>
上記第1および第2の実施形態では、ブロックチェーンを構成するデータのうち、トランザクションデータTD1,TD2,…は共有記憶部123にのみ格納されるが、ブロックヘッダBLK1,BLK2,…を連結して構成される自ブロックチェーン構成データは各ノードコンピュータに格納される(
図10、
図11参照)。しかし、ブロックチェーンを構成する全てのデータを共有記憶部123に格納してもよい。以下では、上記第1の実施形態において、各ノードコンピュータに格納されていた自ブロックチェーン構成データを共有ブロックチェーン構成データとして、共有記憶部123(生産管理コンピュータ10の補助記憶装置120における共有領域123)に格納するように変更した構成を、第3の実施形態として説明する。なお第3の実施形態では、トランザクションデータTD1,TD2,…が格納される共有記憶部(第1共有記憶部)と共有ブロックチェーン構成データが格納される共有記憶部(第2共有記憶部)とは同一の共有記憶部123であるが、トランザクションデータTD1,TD2,…と共有ブロックチェーン構成データとが、互いに異なる第1および第2共有記憶部にそれぞれ格納されるようにしてもよい(この点は後述の第4の実施形態においても同様である)。
【0111】
本実施形態においても、上記第1の実施形態と同様、
図1および
図2に示す分散システムにおいて、当該分散システムを構成する各ノードコンピュータが所定のプログラムを実行することにより、上記と同様の機能を有する生産管理システムが実現される。また、各単位作業に対応するトランザクションデータに基づく着工許可および完成許可を得るための作業や処理も上記第1の実施形態と同様である(
図6、
図7参照)。しかし、本実施形態において当該分散システム(
図1)を構成するノードコンピュータのうち、生産管理コンピュータ10は、上記第1の実施形態における生産管理前処理プログラムを実行するともに、上記第1の実施形態における生産管理プログラムに代えて後述のサーバ側生産管理プログラムを実行することで、サーバコンピュータ(以下、単に「サーバ」ともいう)として機能し、他のノードコンピュータは、上記第1の実施形態における生産管理プログラムに対応するプログラム(以下「クライアント側生産管理プログラム」という)を実行し、クライアントコンピュータ(以下、単に「クライアント」ともいう)として機能する。本実施形態におけるこれら以外の構成については上記第1の実施形態と同様であるので、同一または対応する部分に同一の参照符号を付して詳しい説明を省略する。以下では、本実施形態における構成および動作のうち、サーバとしての生産管理コンピュータ10で実行されるサーバ側生産管理プログラムに基づくサーバ側本体処理、および、各クライアントコンピュータで実行されるクライアント側生産管理プログラムに基づくクライアント側本体処理を中心に説明する。
【0112】
<3.1 生産管理前処理>
本実施形態においても、上記第1の実施形態と同様、サーバとしての生産管理コンピュータ10が生産管理前処理プログラムに基づき
図8に示す生産管理前処理を実行する。これにより、対象となる製品の製造のための生産情報が各ノードコンピュータに送出されるかまたは共有記憶部123に格納される。その後、この生産情報に基づき既述の生産管理準備データ(d1)~(d3)が生成されて各ノードコンピュータに送出されるかまたは共有記憶部123に格納される。
【0113】
<3.2 サーバ側本体処理>
上記の生産管理前処理の終了後、サーバとしての生産管理コンピュータ10は、サーバ側生産管理プログラムに基づきサーバ側の生産管理本体処理(以下「サーバ側本体処理」という)を実行する。
図17は、このサーバ側本体処理を示すフローチャートである。
図1の分散システムにおいて、生産管理コンピュータ10がサーバ側生産管理プログラムを実行するとともに、各クライアントコンピュータすなわちサーバとしての生産管理コンピュータ10以外のノードコンピュータのそれぞれが後述のクライアント側生産管理プログラムを実行することにより、生産管理のためのブロックチェーンが
図1の分散システムにおいて形成され更新される。
【0114】
以下、
図17を参照して、サーバ側本体処理について説明する。サーバ側本体処理では、生産管理コンピュータ10がサーバ側生産管理プログラムに基づき下記のように動作する。
【0115】
まず、生産情報および生産管理準備データを共有記憶部123(生産管理コンピュータ10の補助記憶装置120における共有領域123)から読み出す(ステップS22)。
次に、ブロック追加通知を他のノードコンピュータすなわちクライアントコンピュータから受領するまで待機し(ステップS26)、ブロック追加通知を受領するとステップS27へ進む。
【0116】
ここでのブロック追加通知とは、クライアントとしての他のノードコンピュータでの本体処理(クライアント側本体処理)により着工許可および完成許可の得られたトランザクションデータ(検証済みのトランザクションデータ)を含むブロックがブロックチェーンに追加すべきときに、ブロック追加に関する情報をサーバとしての生産管理コンピュータ10に送信することで、ブロックチェーンを更新すべきことを知らせることをいう(詳細は後述(
図18のステップS60参照))。後述のようにブロック追加通知には、追加すべきブロックのブロックヘッダBLKn+1に設定すべきトランザクションハッシュ値THSn+1およびトランザクションアドレス値TADn+1が含まれる。
【0117】
ステップS27では、共有ブロックチェーン構成データにおける現時点の最新ブロックヘッダであるn番目のブロックヘッダBLKnにおけるトランザクションハッシュ値THAnと直前ハッシュ値PHSnとナンス値NSnとの組み合わせを入力値としたときのハッシュ関数の出力値である直前ハッシュ値PHSn+1を求め、この直前ハッシュ値PHSn+1と上記ブロック追加通知に含まれるトランザクションハッシュ値THSn+1とを用いて、既述の条件HPを満たすようにナンス値NSn+1を求める。
【0118】
次に、求められたナンス値NSn+1を上記の直前ハッシュ値PHSn+1およびトランザクションハッシュ値THSn+1とともに用いて、共有ブロックチェーン構成データを更新する(ステップS32)。本実施形態では、ブロックチェーンの各ブロックに含まれるトランザクションデータTD1,TD2,…が共有記憶部123(生産管理コンピュータ10の補助記憶装置120における共有領域123)に格納されるだけでなく、上記第1の実施形態において各ノードコンピュータに格納されていた自ブロックチェーン構成データも共有ブロックチェーン構成データとして共有記憶部123にのみ格納される。このような相違を除けば、本実施形態における共有ブロックチェーン構成データの更新(ステップS32)は、上記第1の実施形態における自ブロックチェーン構成データの更新(
図9のステップS32)と同様である(
図11)。そこで、共有ブロックチェーン構成データの更新についての詳しい説明を省略する。
【0119】
上記のようにして共有ブロックチェーン構成データが更新された後は、ステップS22で入力された生産情報に基づく
図12または
図13に示すデータを参照して、実行可能な単位作業の有無を判定する(ステップS34)。この判定の結果、実行可能な単位作業がなければ、本実施形態において生産管理の対象となる全ての単位作業に対応するトランザクションは全て起動されたことになる。そこで、ステップS22へ戻り、次に製造すべき製品に関する生産情報を受け取るまでステップS22で待機する。
【0120】
ステップS34での判定の結果、実行可能な単位作業がある場合には、
図13に示す生産管理データ構造におけるテーブルTBLで特定される実行順に基づき、共有ブロックチェーン構成データにおける最新のブロックヘッダBLKn+1に対応する最新のトランザクションデータに対応する単位作業の次に実行すべき単位作業を決定し、当該決定された単位作業を知らせる通知(以下「実行可能単位作業通知」という)を、
図1の分散システムにおけるクライアントとしての他のノードコンピュータが取得できるように通信ネットワーク100に送出する(ステップS36)。
【0121】
その後、ステップS26へ戻り、ステップS26以降の処理を実行する。
【0122】
<3.3 クライアント側本体処理>
図18は、本実施形態における分散システム(
図1)を構成するノードコンピュータのうちサーバとしての生産管理コンピュータ10以外の各ノードコンピュータすなわちクライアントコンピュータにおいて生産管理のために行われる処理(以下「クライアント側本体処理」という)を示すフローチャートである。このクライアント側本体処理は、
図1の分散システムにおける各クライアントコンピュータがクライアント側生産管理プログラムを実行することにより実現される。各クライアントコンピュータは、この生産管理プログラムに基づき下記のように動作する。以下、1つのクライアントコンピュータに着目して、この生産管理プログラムに基づくクライアント側本体処理につき
図18を参照して説明する。
【0123】
まず、当該クライアントコンピュータは、生産管理コンピュータ10から通信ネットワーク100に送出された生産情報および生産管理準備データを受け取る(
図8のステップS14,S16および
図18のステップS22参照)。次に、生産管理コンピュータ10から通信ネットワーク100に送出された実行可能単位作業通知の受領を試みる。これにより、実行可能単位作業通知を受領した場合、当該通知により示される(実行可能)単位作業を表示し、実行可能単位作業通知を受領できなかった場合には、直前に受領した実行可能単位作業通知が示す単位作業を表示する(ステップS28)。ただし、この時点までに受領した実行可能単位作業がない場合には、実行可能な単位作業が未知である旨を表示する。
【0124】
その後、表示された実行可能単位作業につき、その開始を指示する入力操作が当該ノードコンピュータに行われたか否かを判定する(ステップS30)。その結果、単位作業の開始を指示する入力操作が行われていない場合にはステップS25へ戻る。以降、単位作業の開始を指示する入力操作が行われない間は、ステップS25→ステップS28→ステップS30を繰り返し実行する。
【0125】
上記のようにステップS25→ステップS28→ステップS30を繰り返し実行している間に、ステップS30において単位作業の開始を指示する入力操作がなされると、ステップS38へ進む。以下では、ここで開始指示を受け取った(実行可能)単位作業を「対象単位作業」という)。
【0126】
その後、上記第1の実施形態と同様の処理(
図9のステップS38~S56)により、対象単位作業に対応するトランザクションデータ(対応トランザクションデータ)TDn+1が生成され、対象単位作業につき着工承認取得処理および完成承認取得処理等が行われ(
図18のステップS38~S56)、全ての完成承認者から完成許可が得られると、対象単位作業の完成が承認されたとみなしてステップS60へ進む。
【0127】
ステップS60では、当該クライアントコンピュータは、対応トランザクションデータTDn+1についてのブロックチェーンの更新権限者として、対応トランザクションデータTDn+1を共有記憶部123に格納し、対応トランザクションデータTDn+1を含むべきブロックをブロックチェーンに追加するためのブロック追加通知を、通信ネットワーク100を介してサーバとしての生産管理コンピュータ10に送信する。このブロック追加通知は、対応トランザクションデータTDn+1の格納場所を示すトランザクションアドレス値TADn+1と、対応トランザクションデータTDn+1を入力値とするハッシュ関数の出力値であるトランザクションハッシュ値THSn+1とを含んでいる。
【0128】
上記のブロック追加通知の送出後は、ステップS22で入力された生産情報に基づく
図12または
図13に示すデータを参照して、実行可能な単位作業の有無を判定する(ステップS61)。この判定の結果、実行可能な単位作業があれば、ステップS25へ戻り、それ以降の処理を実行する。一方、この判定の結果、実行可能な単位作業がなければ、本実施形態において生産管理の対象となる全ての単位作業に対応するトランザクションは全て起動されたことになる。そこで、ステップS22へ戻り、次に製造すべき製品に関する生産情報を受け取るまでステップS22で待機する。
【0129】
<3.4 効果>
上記のように本実施形態における分散システム(
図1)において、生産管理コンピュータ10がサーバ側生産管理プログラムを実行するとともに、各クライアントコンピュータがクライアント側生産管理プログラムを実行することにより、生産管理のためのブロックチェーンが
図1の分散システムにおいて形成され更新される。このような本実施形態によっても、上記第1の実施形態と同様、各単位作業を管理するための情報である着工情報および完成情報を含むトランザクションデータTDk(k=1,2,…)が、受注した製品の製造のための作業の進行にしたがって生産管理の対象としての単位作業の実行順に(
図5、
図16参照)、ブロックチェーンの形態で記録されていく(
図11参照)。また、上記第1の実施形態と同様、各単位作業に対応するトランザクションデータTDkは、当該単位作業に応じて予め決められた着工承認者による着工許可および完成承認者による完成許可を得た後に、当該トランザクションデータTDkを含むブロックがブロックチェーンに追加される。したがって、本実施形態も上記第1の実施形態と同様の効果を奏する。なお本実施形態では、トランザクションデータTD1,TD2,…のみならず、ブロックヘッダを連結して構成される共有ブロックチェーン構成データも共有記憶部123にのみ格納されるので、上記第1の実施形態に比べ、必要な記憶容量を更に低減することができる。
【0130】
<4.第4の実施形態>
次に、上記第2の実施形態において、各ノードコンピュータに格納されていた自ブロックチェーン構成データを共有ブロックチェーン構成データとして、共有記憶部123すなわち生産管理コンピュータ10の補助記憶装置120における共有領域123に格納するように変更した構成を、第4の実施形態として説明する。
【0131】
本実施形態においても、上記第2の実施形態と同様、
図1および
図2に示す分散システムにおいて、当該分散システムを構成する各ノードコンピュータが所定のプログラムを実行することにより、上記と同様の機能を有する生産管理システムが実現される。また、各単位作業に対応するトランザクションデータに基づく着工許可および完成許可を得るための作業や処理も上記第2の実施形態と同様である(
図6、
図7参照)。しかし、本実施形態において当該分散システム(
図1)を構成するノードコンピュータのうち、生産管理コンピュータ10は、上記第2の実施形態における生産管理前処理プログラムを実行するとともに、上記第2の実施形態における生産管理プログラムに代えて後述のサーバ側生産管理プログラムを実行することで、サーバコンピュータ(以下、単に「サーバ」ともいう)として機能し、他のノードコンピュータは、上記第2の実施形態における生産管理プログラムに対応するプログラム(以下「クライアント側生産管理プログラム」という)を実行し、クライアントコンピュータ(以下、単に「クライアント」ともいう)として機能する。本実施形態におけるこれら以外の構成については上記第2の実施形態と同様であるので、同一または対応する部分に同一の参照符号を付して詳しい説明を省略する。以下では、本実施形態における構成および動作のうち、サーバとしての生産管理コンピュータ10で実行されるサーバ側生産管理プログラムに基づくサーバ側本体処理、および、各クライアントコンピュータで実行されるクライアント側生産管理プログラムに基づくクライアント側本体処理を中心に説明する。
【0132】
<4.1 生産管理前処理>
本実施形態においても、上記第2の実施形態と同様、サーバとしての生産管理コンピュータ10が生産管理前処理プログラムに基づき
図14に示す生産管理前処理を実行する。これにより、対象となる製品の製造のための生産情報が各ノードコンピュータに送出されるかまたは共有記憶部123に格納される。その後、この生産情報に基づき既述の生産管理準備データ(e1)~(e3)が生成されて各ノードコンピュータに送出されるかまたは共有記憶部123に格納される。
【0133】
<4.2 サーバ側本体処理>
上記の生産管理前処理の終了後、サーバとしての生産管理コンピュータ10は、サーバ側生産管理プログラムに基づきサーバ側の生産管理本体処理(以下「サーバ側本体処理」という)を実行する。
図19は、このサーバ側本体処理を示すフローチャートである。
図1の分散システムにおいて、生産管理コンピュータ10がサーバ側生産管理プログラムを実行するとともに、各クライアントコンピュータすなわちサーバとしての生産管理コンピュータ10以外のノードコンピュータのそれぞれが後述のクライアント側生産管理プログラムを実行することにより、生産管理のためのブロックチェーンが
図1の分散システムにおいて形成され更新される。
【0134】
以下、
図19を参照して、サーバ側本体処理について説明する。サーバ側本体処理では、生産管理コンピュータ10がサーバ側生産管理プログラムに基づき下記のように動作する。
【0135】
まず、上記第3の実施形態におけるサーバ側本体処理(
図17)におけるステップS22~S32に相当するステップS62~S68を実行することにより、生産情報および生産管理準備データを共有記憶部123から読み出す。次に、ブロック追加通知をいずれかのクライアントコンピュータから受領すると、そのブロック追加通知に基づきブロックチェーンにブロックを追加するために必要なナンス値を求め、共有ブロックチェーン構成データを更新する。
【0136】
その後、ステップS62で入力された生産情報に基づく
図12または
図13に示すデータを参照して、実行可能な単位作業の有無を判定する(ステップS70)。この判定の結果、実行可能な単位作業がなければ、本実施形態において生産管理の対象となる全ての単位作業に対応するトランザクションは全て起動されたことになる。そこで、生産管理終了通知を、
図1の分散システムにおける各クライアントコンピュータが取得できるように通信ネットワーク100に送出する(ステップS104)。その後、ステップS62へ戻り、次に製造すべき製品に関する生産情報を受け取るまでステップS62で待機する。
【0137】
ステップS70での判定の結果、実行可能な単位作業がある場合には、
図13に示す生産管理データ構造におけるテーブルTBLで特定される実行順に基づき、共有ブロックチェーン構成データにおける最新のブロックヘッダBLKn+1に対応する最新のトランザクションデータに対応する単位作業の次に実行すべき単位作業を決定し(ステップS100)、決定した単位作業の開始指示を当該単位作業を実行すべきクライアントコンピュータに送信する(次の単位作業の開始指示の発行)(ステップS102)。その後、ステップS65へ戻り、それ以降の処理を再び実行する。
【0138】
<4.3 クライアント側本体処理>
図20は、本実施形態における分散システム(
図1)を構成するノードコンピュータのうち各クライアントコンピュータにおいて生産管理のために行われる処理(以下「クライアント側本体処理」という)を示すフローチャートである。このクライアント側本体処理は、
図1の分散システムにおける各クライアントコンピュータがクライアント側生産管理プログラムを実行することにより実現される。各クライアントコンピュータは、このクライアント側生産管理プログラムに基づき下記のように動作する。以下、1つのクライアントコンピュータに着目して、この生産管理プログラムに基づくクライアント側本体処理につき
図20を参照して説明する。
【0139】
まず、当該クライアントコンピュータは、生産管理コンピュータ10から通信ネットワーク100に送出された生産情報(
図14のステップS14参照)および生産管理準備データ(
図14のステップS16参照)を受け取る(ステップS62)。
【0140】
次に、単位作業の開始指示を受け取ったか否かを判定し(ステップS67)、単位作業の開始指示を受け取っていなければステップS69へ進み、サーバとしての生産管理コンピュータ10から送出された生産管理終了通知を受け取ったか否かを判定する。その判定の結果、生産管理終了通知を受け取っていなければステップS67へ戻る。以降、単位作業の開始指示も生産管理終了通知も受け取らない間、ステップS67→ステップS69を繰り返し実行する。
【0141】
ステップS67→ステップS69を繰り返し実行している間に、生産管理終了通知を受け取るとステップS62へ戻り、次に製造すべき製品に関する生産情報を受け取るまでステップS62で待機する。
【0142】
ステップS67→ステップS69を繰り返し実行している間に、単位作業の開始指示を受け取るとステップS72へ進む(以下では、ここで開始指示を受け取った単位作業を「対象単位作業」という)。
【0143】
ステップS72へ進むと、上記第2の実施形態と同様の処理(
図15のステップS72~S90)により、対象単位作業に対応するトランザクションデータ(対応トランザクションデータ)TDn+1が生成され、対象単位作業につき着工承認取得処理および完成承認取得処理等が行われ(
図20のステップS72~S90)、全ての完成承認者から完成許可が得られると、対象単位作業の完成が承認されたとみなしてステップS96へ進む。
【0144】
ステップS96では、当該クライアントコンピュータは、対応トランザクションデータTDn+1についてのブロックチェーンの更新権限者として、対応トランザクションデータTDn+1を共有記憶部123に格納し、対応トランザクションデータTDn+1を含むべきブロックをブロックチェーンに追加するためのブロック追加通知を、通信ネットワーク100を介してサーバとしての生産管理コンピュータ10に送信する。このブロック追加通知は、対応トランザクションデータTDn+1の格納場所を示すトランザクションアドレス値TADn+1と、対応トランザクションデータTDn+1を入力値とするハッシュ関数の出力値であるトランザクションハッシュ値THSn+1とを含んでいる。
【0145】
上記のブロック追加通知の送出後は、
図16に示すテーブルTBLで特定される実行順(順序データ)に基づき、対象単位作業が最後の単位作業か否かを判定する(ステップS98)。この判定の結果、対象単位作業が最後の単位作業である場合には、本実施形態において生産管理の対象となる全ての単位作業に対応するトランザクションは全て起動されたことになる。そこで、ステップS62へ戻り、次に製造すべき製品に関する生産情報を受け取るまでステップS62で待機する。
【0146】
ステップS98での判定の結果、対象単位作業が最後の単位作業でない場合には、ステップS67へ戻り、それ以降の処理を再び実行する。
【0147】
<4.4 効果>
上記のように本実施形態における分散システム(
図1)において、生産管理コンピュータ10がサーバ側生産管理プログラムを実行するとともに、各クライアントコンピュータがクライアント側生産管理プログラムを実行することにより、生産管理のためのブロックチェーンが
図1の分散システムにおいて形成され更新される。本実施形態では、上記第2の実施形態と同様、生産管理の対象となる各単位作業(
図5に示す例では、調達、品質管理、生産工程1、生産工程2のそれぞれ)に対応するトランザクションデータを生成するコンピュータが予め決められているが(
図16に示すテーブルTBL参照)、上記第1の実施形態と同様、各単位作業を管理するための情報である着工情報および完成情報を含むトランザクションデータTDk(k=1,2,…)が、受注した製品の製造のための作業の進行にしたがって生産管理の対象としての単位作業の実行順に(
図5、
図16参照)、ブロックチェーンの形態で記録されていく(
図11参照)。また、上記第1および第2の実施形態と同様、各単位作業に対応するトランザクションデータTDkは、当該単位作業に応じて予め決められた着工承認者による着工許可および完成承認者による完成許可を得た後に、当該トランザクションデータTDkを含むブロックがブロックチェーンに追加される。したがって、本実施形態も上記第1および第2の実施形態と同様の効果を奏する。なお本実施形態では、トランザクションデータTD1,TD2,…のみならず、ブロックヘッダを連結して構成される共有ブロックチェーン構成データも共有記憶部123にのみ格納されるので、上記第1および第2の実施形態に比べ、必要な記憶容量を更に低減することができる。
【0148】
<5.変形例>
本発明は、上記実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で上記実施形態を種々変形して実施することができる。以下、上記実施形態の変形例について説明する。
【0149】
上記第1から第4の実施形態では、生産管理前処理(
図8、
図14)で生成される生産管理準備データに基づき、単位作業の実行順を特定するとともに各トランザクションデータのテンプレートを保持するためのデータ構造すなわち生産管理データ構造は、
図13または
図16に示すようにテーブルTBLを用いて構成されているが、
図13または
図16に示すデータ構造とは異なる構成のデータ構造を使用してもよい。例えば、単位作業の実行順序に応じた順序でテンプレートが連結された連結リストを使用してもよい。この場合、上記第1および第3の実施形態では、
図13に示すデータ構造に代えて
図21に示す連結リストを使用することができ、上記第2および第4の実施形態では、
図16に示すデータ構造に代えて
図22に示す連結リストを使用することができる。これらの連結リストは、単位作業である調達、品質管理、生産工程1、生産工程2、…に対応するトランザクションデータTD1,TD2,TD3,TD4,…のテンプレートTP1,TP2,TP3,TP4,…にそれぞれ対応するエントリE1,E2,E3,E4,…が単方向リストとして連結されている。すなわち、
図21および
図22が示す連結リストでは、調達のテンプレートTP1に相当する先頭のエントリE1を指すポインタSPtrを格納するヘッダHDRが設けられ、各エントリEkには、対応するテンプレートTPkのデータ構造に加えて次のエントリEk+1を指すポインタNPtrが含まれている。なお上記第2および第4の実施形態では、生産管理の対象となる各単位作業に対応するトランザクションデータを生成するコンピュータが予め決められていることから、
図22に示す連結リストにおける各エントリEkには、対応するトランザクションデータを生成すべきノードコンピュータの識別情報Nodekが含まれている。これらの
図21および
図22に示す連結リストは、いずれも単位作業の実行順を特定し、各単位作業に対応するテンプレートのデータ構造として
図13および
図16と同じデータ構造をそれぞれ含んでいる。このため、
図13および
図16に示すデータ構造に代えて
図21および
図22に示す連結リストをそれぞれ使用する場合であっても、上記第1および第2実施形態と同様の効果がそれぞれ得られる。
【0150】
上記第1または第2の実施形態では、新たなトランザクションデータを生成したノードコンピュータが更新権限者として、他のノードコンピュータに対するブロック追加通知を通信ネットワーク100に送出し(
図9のステップS60、
図14のステップS96)、また上記第3または第4の実施形態では、新たなトランザクションデータを生成したノードコンピュータ(クライアントコンピュータ)が更新権限者として、サーバとしての生産管理コンピュータ10に対するブロック追加通知を通信ネットワーク100に送出する(
図18のステップS60、
図20のステップS96)。しかし、新たなトランザクションデータについての更新権限者を当該トランザクションデータを生成したノードコンピュータまたはクライアントコンピュータに限定しない構成であってもよい。
【0151】
上記第1または第2の実施形態では、ブロックチェーンを構成するデータのうち、ブロックヘッダを連結して構成される自ブロックチェーン構成データは、各ノードコンピュータ(
図1参照)に保持され、トランザクションデータTD1,TD2,…は、共有記憶部123(サーバとして機能する生産管理コンピュータ10内の共有領域123)に格納される(
図3、
図10参照)。しかし、これに代えて、自ブロックチェーン構成データのみならずトランザクションデータTD1,TD2,…も各ノードコンピュータに格納するようにしてもよい。このような構成によれば、生産管理システムにおいて必要な記憶容量が上記第1および第2の実施形態よりも多くなるが、上記第1または第2の実施形態と同様の効果を奏する。また、ブロックチェーンを構成するデータの全てが各ノードコンピュータに格納され一貫性を維持しつつ更新されることから、高度に制御されたシステムや調整する部分が無く、信頼性の高いコンピュータやネットワークを使用しなくとも、堅牢な生産情報データベースの構築が可能となる。
【0152】
上記各実施形態では、ハッシュパズルを解くためにハッシュ値は、トランザクションハッシュ値THSnと直前ハッシュ値PHSnとナンス値NSnとの組み合わせを入力値とするハッシュ関数の出力値として求められるが(既述の“(条件HP)”参照)、トランザクションデータの変更(改竄)が検出可能であれば、これに代えて他の値やデータの組み合わせをハッシュ関数の入力値としてもよい。例えば、トランザクションデータTDnと直前ハッシュ値PHSnとナンス値NSnとの組み合わせをハッシュ関数の入力値としてもよいし、また、ハッシュ参照データTHRn(トランザクションハッシュ値THSnおよびトランザクションアドレス値TADn)と直前ハッシュ値PHSnとナンス値NSnとの組み合わせをハッシュ関数の入力値としてもよい。
【0153】
上記各実施形態では、ブロックチェーンにおける各ブロックのブロックヘッダには、そのブロックに含まれるトランザクションデータTDkのハッシュ参照データTHRkが保持されており、このハッシュ参照データTHRkは、当該トランザクションデータTDkの格納場所を示すトランザクションアドレス値TADkと当該トランザクションデータTDkのハッシュ値であるトランザクションハッシュ値THSkとからなる(
図10(A)参照)。このようなハッシュ参照データTHRkを用いる構成によれば、トランザクションアドレス値TADkに基づき当該トランザクションデータを読み出してそのハッシュ値を求め、そのハッシュ値とハッシュ参照データにおけるトランザクションハッシュ値THSkと照合することにより、当該トランザクションデータTDkの変更の有無(改竄の有無)を容易に確認することができる。しかし、このようなハッシュ参照データTHRkをブロックヘッダに保持する代わりにトランザクションハッシュ値THSkのみをブロックヘッダに保持するようにしてもよい。この場合、例えば、当該ブロックヘッダに対応するトランザクションデータTDkに、当該ブロックヘッダまたはそれに含まれるトランザクションハッシュ値THSkの格納場所を示すアドレス値を含める構成とすることにより、上記と同様にして、当該トランザクションデータTDkの変更の有無(改竄の有無)を確認することができる。なお、通常、システムアプリケーションにおいて、当該トランザクションデータTDkに対応する“YY年MM月DD日の部品Aの発注”というような特定情報をユーザが入力することにより、当該トランザクションデータTDkの内容にアクセスすることができる。
【0154】
なお、上記各実施形態において、生産管理の対象となる単位作業は
図5に示すものに限定されず、製造すべき製品に応じて異なる単位作業が実行されてもよい。この場合、当該異なる単位作業に対応するトランザクションデータが当該異なる単位作業の実行順に応じたブロックチェーンの形態で記録されることになる。
【符号の説明】
【0155】
10 …生産管理コンピュータ(ノードコンピュータ、生産管理端末装置)
11 …調達管理コンピュータ(ノードコンピュータ、生産管理端末装置)
13a…サプライヤコンピュータ(ノードコンピュータ、生産管理端末装置)
13b…サプライヤコンピュータ(ノードコンピュータ、生産管理端末装置)
15 …品質管理コンピュータ(ノードコンピュータ、生産管理端末装置)
17a…第1製造管理品コンピュータ(ノードコンピュータ、生産管理端末装置)
17b…第2製造管理品コンピュータ(ノードコンピュータ、生産管理端末装置)
18 …生産管理プログラム
100…通信ネットワーク
111…CPU
112…メモリ
117…ネットワークインタフェース部メモリ
120…補助記憶装置
121…生産管理プログラム
123…共有領域(共有記憶部)
TAk…トランザクション(k=1,2,…)
TDk…トランザクションデータ(k=1,2,…)
RRF…最新参照
TPk…テンプレート(k=1,2,…)
BLKk…ブロックヘッダ(k=1,2,…)
TBL …テーブル
1s~Ns…着工承認者(着工の承認主体)
1c~Mc…完成承認者(完成の承認主体)