(57)【要約】【課題】  電子機器を制御するための処理コマンドの実行において、当該処理コマンドに対応する処理プログラムを、ブロックチェーンを用いて送信する提供装置、処理システム及び通信方法等の提供。【解決手段】  提供装置１００は、ブロックチェーンを用いたネットワークとの通信を行う通信部１２０と、通信部１２０を制御する処理部１１０を含む。処理部１１０は、管理対象である電子機器３００を制御するための処理プログラムを、ブロックチェーンに登録するためのトランザクションを生成し、生成したトランザクションを通信部１２０を介してネットワークに発行する。【選択図】      図１
2020035040.tif 000002
【特許請求の範囲】
【請求項１】
ブロックチェーンを用いたネットワークとの通信を行う通信部と、
前記通信部を制御する処理部と、
を含み、
前記処理部は、
管理対象である電子機器を制御するための処理プログラムを、前記ブロックチェーンに登録するためのトランザクションを生成し、生成した前記トランザクションを前記通信部を介して前記ネットワークに発行することを特徴とする提供装置。
【請求項２】
請求項１に記載の提供装置において、
前記処理プログラムは、前記電子機器の設定を行うプログラムであることを特徴とする提供装置。
【請求項３】
請求項１又は２に記載の提供装置において、
前記処理部は、
前記処理プログラムをスマートコントラクトとして前記ブロックチェーンに登録するための前記トランザクションを生成することを特徴とする提供装置。
【請求項４】
請求項１乃至３のいずれか一項に記載の提供装置において、
前記処理部は、
前記電子機器を制御するための処理コマンドを前記処理プログラムに関連づけて、前記ブロックチェーンに登録するための前記トランザクションを生成することを特徴とする提供装置。
【請求項５】
請求項４に記載の提供装置において、
前記処理部は、
前記電子機器に対応して設けられる処理装置が、前記処理コマンドに対応しているかを判定し、
前記処理装置が前記処理コマンドに対応していないと判定した場合、前記処理コマンドに対応する前記処理プログラムを前記ブロックチェーンに登録するための前記トランザクションを生成することを特徴とする提供装置。
【請求項６】
請求項１乃至４のいずれか一項に記載の提供装置と、
前記電子機器に対応して設けられ、前記ブロックチェーンから前記処理プログラムを取得して前記処理プログラムを実行する処理装置と、
を含むことを特徴とする処理システム。
【請求項７】
請求項６に記載の処理システムにおいて、
前記処理装置は、
前記提供装置から前記電子機器を制御するための処理コマンドを受信し、受信した前記処理コマンドに自身が対応しているか否かを判定し、前記処理コマンドに対応していないと判定した場合、前記ブロックチェーンから前記処理コマンドに対応する前記処理プログラムを取得することを特徴とする処理システム。
【請求項８】
請求項６又は７に記載の処理システムにおいて、
前記処理装置は、
前記処理プログラムの実行結果を、前記ブロックチェーンに登録するための前記トランザクションを生成する処理を行うことを特徴とする処理システム。
【請求項９】
請求項６乃至８のいずれか一項に記載の処理システムにおいて、
前記処理装置は、
複数の種類の前記電子機器に共通の前記処理プログラムを記憶する記憶部を含み、
前記処理装置は、
前記電子機器の前記種類に応じた前記処理プログラムを、前記ブロックチェーンから取得することを特徴とする処理システム。
【請求項１０】
請求項６乃至９のいずれか一項に記載の処理システムにおいて、
前記処理プログラムは、情報の収集コマンドを実行するプログラムであり、
前記処理装置は、
前記収集コマンドの実行結果である前記電子機器の管理情報を、前記ブロックチェーンに登録するための前記トランザクションを生成することを特徴とする処理システム。
【請求項１１】
請求項１０に記載の処理システムにおいて、
前記提供装置、及び、前記処理装置は、
前記処理プログラムを前記ブロックチェーンに登録するための前記トランザクションと、前記管理情報を前記ブロックチェーンに登録するための前記トランザクションとで、異なるコンセンサスアルゴリズムを用いることを特徴とする処理システム。
【請求項１２】
請求項１０又は１１に記載の処理システムにおいて、
前記提供装置の前記処理部は、
前記ブロックチェーンに書き込まれた前記管理情報に基づいて、アラート処理又はレポート情報生成処理を行うことを特徴とする処理システム。
【請求項１３】
請求項１０乃至１２のいずれか一項に記載の処理システムにおいて、
前記提供装置の前記処理部は、
前記ブロックチェーンに書き込まれた前記管理情報に基づいて、前記電子機器の使用状況に応じた課金処理を行うことを特徴とする処理システム。
【請求項１４】
ブロックチェーンを用いたネットワークにおける通信方法であって、
管理対象である電子機器を制御するための処理プログラムを、前記ブロックチェーンに登録するためのトランザクションを生成し、
生成した前記トランザクションを前記ネットワークに発行する、
ことを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、提供装置、処理システム及び通信方法等に関する。
【背景技術】
【０００２】
従来、プリンター等の電子機器の情報を収集したり、当該電子機器に対して設定等の制御を行う管理ツールが知られている。例えば特許文献１には、第１のデバイスの能力情報に基づいて生成した設定情報を、当該第１のデバイスと同一機種の他のデバイスに流用することによって、複数のデバイスの動作設定を効率的に行う管理装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−２１１９０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
電子機器に対する処理コマンドを実行するためのシステム構成は、種々考えられる。例えば、処理コマンドの送信側であるサーバーと、処理コマンドの受信及び実行を行うクライアント装置と、を含むクライアント／サーバー型のシステムを用いる手法が考えられる。クライアント装置は、電子機器であってもよいし、電子機器と接続される管理装置であってもよい。
【０００５】
しかし従来、電子機器を対象とした処理を行うシステムにおいて、ブロックチェーン技術を用いる手法は開示されていなかった。
【課題を解決するための手段】
【０００６】
本実施形態は、ブロックチェーンを用いたネットワークとの通信を行う通信部と、前記通信部を制御する処理部と、を含み、前記処理部は、管理対象である電子機器を制御するための処理プログラムを、前記ブロックチェーンに登録するためのトランザクションを生成し、生成した前記トランザクションを前記通信部を介して前記ネットワークに発行する提供装置に関係する。
【図面の簡単な説明】
【０００７】
【図１】提供装置の構成例。
【図２】処理システムの構成例。
【図３】従来手法の説明図。
【図４】ブロックチェーンの説明図。
【図５】ブロックチェーンへの書き込み処理を説明するフローチャート。
【図６】処理コマンドと処理プログラムの例。
【図７】本実施形態のブロックチェーンの例。
【図８】処理装置における処理を説明するフローチャート。
【図９】従来手法における管理アプリケーションの説明図。
【図１０】本実施形態における管理アプリケーションの説明図。
【図１１】本実施形態のブロックチェーンの他の例。
【図１２】処理システムの他の構成例。
【発明を実施するための形態】
【０００８】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、必須構成要件であるとは限らない。
【０００９】
１．概要
図１は本実施形態の提供装置１００の構成例である。提供装置１００は、ブロックチェーンを用いたネットワークとの通信を行う通信部１２０と、通信部１２０を制御する処理部１１０を含む。そして処理部１１０は、管理対象である電子機器を制御するための処理プログラムを、ブロックチェーンに登録するためのトランザクションを生成する。さらに処理部１１０は、生成したトランザクションを通信部１２０を介してネットワークに発行する。ここで、処理プログラムは、狭義には処理コマンドを実行するためのプログラムである。以下、ブロックチェーンを用いたネットワークをブロックチェーンネットワークＮＷと表記する。なお「ブロックチェーンに登録」とは、具体的にはブロックチェーンのブロックにデータが書き込まれることである。
【００１０】
ブロックチェーンネットワークＮＷにおいては、複数のブロックがチェーン状につながったブロックチェーンと呼ばれるデータ構造が用いられる。トランザクションとは、データをブロックチェーンに登録する処理を行う際に発行される命令である。ブロックチェーンネットワークＮＷの各ノードは、同じ内容のブロックチェーンを保持している。そのため、提供装置１００が発行した処理プログラムを含むトランザクションがブロックチェーンに書き込まれた場合、当該処理プログラムはブロックチェーンネットワークＮＷに参加する全てのノードから参照可能となる。これにより、提供装置１００による処理プログラムの提供が容易になる。また、処理プログラムを実行する各端末は、未知の処理コマンドに対応することが可能になる。
【００１１】
電子機器３００は、例えばプリンターである。或いは電子機器３００は、スキャナー、ファクシミリ装置又はコピー機であってもよい。電子機器３００は、複数の機能を有する複合機（ＭＦＰ：Multifunction Peripheral）であってもよく、印刷機能を有する複合機もプリンターの一例である。電子機器３００は、プロジェクター、頭部装着型表示装置、ウェアラブル機器、脈拍計や活動量計等の生体情報測定機器、ロボット、カメラ等の映像機器、スマートフォン等の携帯情報端末、又は物理量計測機器等であってもよい。
【００１２】
例えば電子機器３００がプリンターである場合、それまではＡ４以下の用紙サイズを対象として用紙サイズごとの印刷枚数を収集していたが、新規にプリンターを購入することによって、Ａ３サイズの用紙が印刷可能になるケースが考えられる。この場合、処理装置２００の管理アプリケーションは、新しい用紙サイズの印刷枚数の収集に対応していない。例えば既存の処理プログラムは、Ａ４以下の各用紙サイズの印刷枚数が格納されているデータ領域のデータを読み取る処理が記述されているが、Ａ３用紙の印刷枚数が格納されているデータ領域を読み取る処理が記述されていない。本実施形態の手法であれば、未知の用紙サイズの収集アルゴリズムを記述した処理プログラムを配信することで、管理アプリケーションのアップデートなしに、適切な情報の収集を継続することが可能になる。
【００１３】
なお、本実施形態の処理部１１０は、下記のハードウェアにより構成される。ハードウェアは、デジタル信号を処理する回路及びアナログ信号を処理する回路の少なくとも一方を含むことができる。例えば、ハードウェアは、回路基板に実装された１又は複数の回路装置や、１又は複数の回路素子で構成することができる。１又は複数の回路装置は例えばＩＣ等である。１又は複数の回路素子は例えば抵抗、キャパシター等である。
【００１４】
また処理部１１０は、下記のプロセッサーにより実現されてもよい。本実施形態の提供装置１００は、情報を記憶するメモリーと、メモリーに記憶された情報に基づいて動作するプロセッサーと、を含む。情報は、例えばプログラムと各種のデータ等である。プロセッサーは、ハードウェアを含む。プロセッサーは、ＣＰＵ（Central Processing Unit）、ＧＰＵ（Graphics Processing Unit）、ＤＳＰ（Digital Signal Processor）等、各種のプロセッサーを用いることが可能である。メモリーは、ＳＲＡＭ（Static Random Access Memory）、ＤＲＡＭ（Dynamic Random Access Memory）などの半導体メモリーであってもよいし、レジスターであってもよいし、ハードディスク装置等の磁気記憶装置であってもよいし、光学ディスク装置等の光学式記憶装置であってもよい。例えば、メモリーはコンピューターにより読み取り可能な命令を格納しており、当該命令がプロセッサーにより実行されることで、提供装置１００の各部の機能が処理として実現されることになる。ここでの命令は、プログラムを構成する命令セットの命令でもよいし、プロセッサーのハードウェア回路に対して動作を指示する命令であってもよい。
【００１５】
図２は、本実施形態の提供装置１００と、処理装置２００を含む処理システム１０の構成例である。処理装置２００は、電子機器３００に対応して設けられ、処理プログラムを実行する装置である。図２は、処理装置２００が２つであり、各処理装置２００に２つの電子機器３００が接続される例を示しているが、処理装置２００の数及び電子機器３００の数はこれに限定されない。また、図２では処理装置２００と電子機器３００が異なる機器である例を示したが、電子機器３００が処理装置２００を含んでもよい。即ち、電子機器３００が直接ブロックチェーンネットワークＮＷに参加し、処理コマンドの受信、及び対応する処理プログラムの実行を行うことは妨げられない。
【００１６】
提供装置１００及び処理装置２００は、ブロックチェーンのクライアントアプリケーションがインストールされている。クライアントアプリケーションは、ブロックチェーンネットワークＮＷに参加するためのソフトウェアである。クライアントアプリケーションは、例えばトランザクションの生成、発行、コンセンサスアルゴリズムの処理、仮想通貨の管理等、ブロックチェーンネットワークＮＷで行われる各種処理を実行するためのソフトウェアである。
【００１７】
また処理装置２００には、電子機器３００を管理するための管理アプリケーションがインストールされている。なお、クライアントアプリケーションと管理アプリケーションは、連携可能な異なるアプリケーションであってもよいし、ブロックチェーンのクライアント機能及び電子機器３００の管理機能の両方を含む１つのアプリケーションとして実現されてもよい。
【００１８】
管理アプリケーションは、電子機器３００からの情報の収集、及び電子機器３００に対する処理コマンドの実行処理を行う。例えば管理アプリケーションは、ポーリングを行い、同一のネットワークに接続される電子機器３００の情報を取得する。管理アプリケーションと各電子機器３００との通信は、例えば、ＳＮＭＰ（Simple Network Management Protocol）に則って実行される。この場合、管理アプリケーションを含む処理装置２００が通信のマネージャー、各電子機器３００が通信のエージェントとなる。処理装置は、収集プログラムを実行することによりＳＮＭＰに則った通信を行い、電子機器からからＭＩＢ（Management Information Base）情報を受信する。情報の取得間隔は種々の設定が可能であるが、例えば１日に１回〜数回程度である。また管理アプリケーションは電子機器３００を制御するための処理プログラムを含み、処理コマンドを取得した場合に、当該処理コマンドに対応する処理プログラムを実行することによって電子機器３００の制御を行う。
【００１９】
なお本実施形態の手法は、図１に示した提供装置１００に限定されず、図２に示した処理システム１０に適用されてもよい。図２に示したように、本実施形態に係る処理システム１０は、提供装置１００と、電子機器３００に対応して設けられ、ブロックチェーンから処理プログラムを取得して当該処理プログラムを実行する処理装置２００と、を含む。
【００２０】
図３は、電子機器３００の挙動や設定を制御する従来手法を説明する図である。図３に示したシステムは、サーバーシステム２１とクライアント装置２２を含む。クライアント装置２２は、電子機器３００の管理を行う管理装置である。クライアント装置２２には、電子機器３００を管理するための管理アプリケーションがインストールされている。例えば、クライアント装置２２の記憶部は、管理アプリケーションを記憶しており、クライアント装置の処理部が当該管理アプリケーションに従って動作する。
【００２１】
電子機器３００に対する処理コマンドの実行において、サーバーシステム２１はクライアント装置２２に処理コマンドを送信する。クライアント装置２２は予め処理プログラムを準備しておき、受信した処理コマンドに対応する処理プログラムを実行することによって、電子機器３００に対する処理コマンドを実行する。
【００２２】
図３に示した手法では、クライアント装置２２は、既知の処理コマンドにのみ対応可能であり、新規の処理コマンドに対応できない。具体的には、対応する処理プログラムが存在する処理コマンドは実行可能であるが、処理プログラムが存在しない処理コマンドは実行できない。新規の処理コマンドに対応するためには、クライアント装置２２の管理アプリケーションをバージョンアップする必要がある。サーバーシステム２１は、各クライアント装置２２に対してバージョンアップを促すことは可能であるが、強制的にバージョンアップを行うことは難しい。そのため、サーバーシステム２１からクライアント装置２２に送信された処理コマンドが、クライアント装置２２において適切に実行されないおそれがある。図３と比較した場合、図１及び図２に示した本実施形態の手法は、バージョンアップを行うことなく、未知の処理コマンドに対応可能という利点がある。
【００２３】
２．ブロックチェーンとスマートコントラクト
次にブロックチェーン技術について説明する。なお以下で説明する内容はブロックチェーン技術を構成する要素の一部であり、異なる技術要素が追加されてもよい。また、以下で説明する技術要素の一部が省略されてもよい。また、各技術要素を発展させた方式も本実施形態におけるブロックチェーン技術に含まれる。
【００２４】
ブロックチェーンは、オープンなネットワークにおいて、参加者による分散型の合意形成を行う手法である。ブロックチェーンネットワークは、Ｐ２Ｐネットワークである。そのため、クライアント／サーバー型のシステムとは異なり、特定の機器がデータを一元管理することはない。ブロックチェーンネットワークＮＷでは、ブロックが連結されたブロックチェーンと呼ばれるデータ構造によりデータが管理され、各ノードが共通のブロックチェーンを保持している。
【００２５】
図４は、ブロックチェーンの構造を説明する図である。１つのブロックは、複数のトランザクションのデータと、親ブロックのハッシュ値のデータを含む。親ブロックのハッシュ値とは、具体的には、１つ前のブロックのブロックヘッダーのハッシュ値である。当該ハッシュ値により、ブロック間のつながりが実現される。トランザクションとは、ブロックチェーンへのデータの登録時にノードによって発行される命令である。例えば、仮想通貨を用いた取引を行う場合、送金元のユーザーアドレス、送金先のユーザーアドレス、送金額等の情報を含むトランザクションが生成される。
【００２６】
生成されたトランザクションは、送信者の署名を付してブロードキャストされ、ブロックチェーンネットワークＮＷ上の各ノードに伝搬する。なお、トランザクションの送信は、Ｐ２Ｐネットワークで用いられる種々のデータ伝搬アルゴリズムにより実現可能である。例えば、単純に隣接ノードにトランザクションを送信し、当該隣接ノードから他のノードへの伝搬を繰り返す手法でもよい。或いは、スーパーノードと呼ばれる生存している蓋然性の高い特定のノードを規定し、当該スーパーノードに対してトランザクションが送信されてもよい。スーパーノードを送信先とすることによって、トランザクションがブロックチェーンネットワークＮＷの各ノードに伝搬する蓋然性を高めることが可能になる。
【００２７】
ブロックチェーンへのブロックの追加は、マイナーと呼ばれるノードにより実行される。マイナーは、トランザクションが所定量蓄積されると、当該トランザクションを含むブロックの生成を試みる。ブロックは、コンセンサスアルゴリズムに従って合意形成が行われたと判定されたことを条件に、ブロックチェーンに追加される。
【００２８】
コンセンサスアルゴリズムとしてＰｏＷ（Proof of Work）が用いられる場合、ブロックヘッダーのハッシュ値が、特定の条件を満たす必要がある。特定の条件とは、例えばハッシュ値が所定閾値よりも小さくなるという条件である。ブロックヘッダーは、Ｎｏｎｃｅと呼ばれるフィールドを含み、当該Ｎｏｎｃｅはマイナーにより設定される。換言すれば、マイナーはブロックヘッダーのハッシュ値が特定の条件を満たすようなＮｏｎｃｅを探索する処理を実行する。ハッシュ値を求めるためのハッシュ関数は、入力値から出力値を予測することが困難であるため、マイナーはＮｏｎｃｅを変更しながら総当たりで条件満たすＮｏｎｃｅを探す必要がある。即ち、ＰｏＷとは、仕事量を根拠として合意を形成する手法である。
【００２９】
マイナーにより新たなブロックが生成されると、当該ブロックは各ノードでの検証を経て、ブロックチェーンネットワークＮＷ内で伝搬する。各ノードでの検証は、ハッシュ値を求め、当該ハッシュ値が特定の条件を満たすかを判定する処理であり、短時間で実行可能である。
【００３０】
なおコンセンサスアルゴリズムはＰｏＷに限定されない。例えば、仮想通貨の保有量に応じて発言権が付与されるＰｏＳ（Proof of Stake）、或いは参加者の重要度に応じて発言権が付与されるＰｏＩ（Proof of Importance）等のコンセンサスアルゴリズムが用いられてもよい。また、固有の署名が付与されている場合は無条件に合意したとみなしてもよい。また、限られたユーザー、端末しかアクセスできないプライベートネットワークを用いる場合、署名に関する判定も除外して、無条件に合意形成したとみなしてもよい。本実施形態におけるコンセンサスアルゴリズムに基づく合意形成とは、無条件に合意形成したとみなす場合を含む。
【００３１】
図５は、ブロックチェーンにデータを書き込む処理を説明するフローチャートである。この処理が開始されると、まずブロックチェーンへのデータ書き込みを希望するノードは、当該データを含むトランザクションを生成し、当該トランザクションをブロックチェーンネットワークＮＷにブロードキャストする（Ｓ１０１）。各ノードへの通知は、ブロードキャストに限るものではなく、Ｐ２Ｐネットワークで用いられる他の手段を用いてもよい点は上述した通りである。
【００３２】
次にデータを受信した各ノードは、データをブロックチェーンに書き込んで良いか判断するため、コンセンサスアルゴリズムに基づく合意形成を行う（Ｓ１０２）。コンセンサスアルゴリズムは、上述した通りＰｏＷ，ＰｏＳ，ＰｏＩ等、種々のアルゴリズムを採用可能である。コンセンサスアルゴリズムで合意が得られるまでの間（Ｓ１０３でＮｏ）、Ｓ１０２の処理が繰り返される。
【００３３】
コンセンサスアルゴリズムで合意が得られた場合（Ｓ１０３でＹｅｓ）、各ノードに合意形成をブロードキャストし（Ｓ１０４）、各ノードは自分が保持するブロックチェーンにデータを書き込む（Ｓ１０５）。以上の処理により、Ｓ１０１でブロードキャストされたデータがブロックチェーンに追加され、各ノードにより利用可能になる。
【００３４】
またブロックチェーンネットワークＮＷにおいては、ノードで実行されるプログラムをブロックチェーンに追加することが可能である。このプログラムは、ステート及び関数を含み、ノード内の実行環境により実行される。ステートは変数の集合と言い換えてもよく、関数はサブルーチン、メソッド等と言い換えてもよい。ノード内の実行環境とは、例えば仮想マシンである。このような、ブロックチェーンにプログラムを追加してノードにおいてプログラムを実行する仕組みは、スマートコントラクトと呼ばれる。
【００３５】
スマートコントラクトによるブロックチェーンへのプログラムの書き込みについても、図５を用いて上述した流れに従って実行される。即ち、スマートコントラクトの書き込みを希望するノードは、スマートコントラクトを含むトランザクションの生成、ブロードキャストを行う。当該トランザクションがコンセンサスアルゴリズムにより合意された場合に、スマートコントラクトによりプログラムがブロックチェーンに書き込まれる。
【００３６】
本実施形態に係る提供装置１００の処理部１１０は、処理プログラムをスマートコントラクトとしてブロックチェーンに登録するためのトランザクションを生成する。このように、処理プログラムをスマートコントラクトを用いてブロックチェーンに書き込むことによって、当該処理プログラムをブロックチェーンネットワークＮＷの任意のノードで実行することが可能になる。
【００３７】
３．処理の詳細
３．１  処理コマンドと処理プログラム
図６は、電子機器３００の制御を行うための処理コマンドと、当該処理コマンドに対応する処理プログラムの具体例を説明する図である。図６では、電子機器３００として、プリンター、スキャナー、プロジェクター、ロボットの例を示している。
【００３８】
例えば、電子機器３００がプリンターである場合、電子機器３００の制御を行う処理コマンドとして、初期化コマンド、再起動コマンド、利用状況取得コマンド、Ａ３印刷枚数取得コマンド、設定変更コマンド、時刻設定コマンドが考えられる。
【００３９】
初期化コマンドは、電子機器３００を初期化するコマンドであり、例えば電子機器３００を出荷時の状態に戻すためのコマンドである。初期化コマンドは、処理装置２００が、デバイス全データ消去実行プログラムに従った処理を行うことによって実行される。デバイス全データ消去実行プログラムとは、電子機器３００の消去対象データの全てを消去する処理手順が記述されたプログラムである。
【００４０】
再起動コマンドは電子機器３００の電源を一旦オフにした後、電源を再度オンにするコマンドである。再起動コマンドは、電源のオン／オフを行う手順が記述されたデバイスリセット実行プログラムに基づいて実行される。
【００４１】
利用状況取得コマンドは、例えば印刷枚数を取得するコマンドであり、印刷枚数取得プログラムにより実現される。なお、利用状況取得コマンドは、インクの消費量や残量、可動時間、モーターの回転量等の他の情報を取得してもよい。
【００４２】
Ａ３印刷枚数取得コマンドは、Ａ３用紙の印刷枚数を取得するコマンドであり、Ａ３用紙枚数取得用通信プログラムにより実現される。即ち、利用状況取得コマンドとは別に、個別の情報を取得する処理コマンド、処理プログラムが用いられてもよい。
【００４３】
設定変更コマンドは、プリンターの設定を変更するコマンドである。プリンターの設定は、設定項目と設定値の組み合わせである設定情報により表される。設定項目とは、例えば、セキュリティーに関する設定項目、無線ＬＡＮに関する設定項目、印刷用紙の供給元に関する設定項目、デバイスの使用権限に関する設定項目、ネットワーク上のディレクトリサービスへ接続するための所定の通信プロトコルに関する設定項目等である。設定値とは、各設定項目における現在の設定の状態を表す情報である。設定変更プログラムは、例えば設定項目及び設定値を引数に実行され、引数である設定項目の設定値を、引数で指定された値に変更するプログラムである。
【００４４】
時刻設定コマンドは、時刻を設定するコマンドであり、時刻設定プログラムにより実現される。即ち、設定変更コマンドとは別に、個別の設定項目の設定値を変更する処理コマンド、処理プログラムが規定されていてもよい。
【００４５】
以上で説明したように、処理プログラムは、電子機器３００の設定を行うプログラムを含む。このようにすれば、処理装置２００によって電子機器３００の設定を行うことが可能になる。より具体的には、提供装置１００がブロックチェーンネットワークＮＷを介して設定を行うための処理プログラムを提供することによって、処理装置２００は未知の設定コマンド、すなわち、処理装置２００にインストールされた管理アプリケーションが対応していない設定コマンドを実行することが可能になる。例えば、処理装置２００に新たな電子機器３００が接続された場合であっても、処理装置２００は管理アプリケーションのバージョンアップを行うことなく、当該新たな電子機器３００に対する設定を実行できる。
【００４６】
なお、スキャナー、プロジェクター、ロボットについては詳細な説明を省略するが、図６に示したように、各電子機器３００について当該電子機器３００の種類に応じた処理コマンド、及び当該処理コマンドに対応する処理プログラムが設定されている。これにより、電子機器３００の種類に応じた適切な制御を実現できる。
【００４７】
３．２  処理シーケンス
次に本実施形態の具体的な処理の流れを説明する。まず提供装置１００は、所定の電子機器３００に実行させたい処理コマンドと、当該処理コマンドを実行するための処理プログラムを特定する。そして提供装置１００の処理部１１０は、電子機器３００を制御するための処理コマンドを処理プログラムに関連づけて、ブロックチェーンのブロックに登録するためのトランザクションを生成する。生成されたトランザクションはブロックチェーンネットワークＮＷにブロードキャストされる。これにより、処理コマンドだけでなく、当該処理コマンドに対応する処理プログラムを提供することが可能になる。そのため、Ｓ２０３〜Ｓ２０５を用いて後述するように、処理装置２００の処理コマンドへの対応状況によらず、適切な電子機器３００の制御が可能になる。
【００４８】
トランザクションの生成以降の流れは、図５を用いて上述した通りである。具体的にはコンセンサスアルゴリズムを用いた処理が行われ、合意形成が行われた場合に、トランザクションが取り込まれたブロックがブロックチェーンに追加される。
【００４９】
図７は、この場合のブロックチェーンの例である。ブロックＡは処理コマンド及び処理プログラムを含むトランザクションが取り込まれている。当該ブロックＡがブロックチェーンに追加されることによって、各ノードは、処理コマンドの取得、及びノード内の実行環境を用いた処理プログラムの実行が可能になる。なお、図７におけるデータとは、ブロックチェーンネットワークＮＷで通信される任意のデータを含む。図７のデータは、処理コマンド、処理プログラムに限定されず、例えば処理コマンドの実行結果を表すログデータであってもよいし、仮想通貨の取引を表す情報であってもよいし、他の情報であってもよい。
【００５０】
図８は、処理装置２００で実行される処理を説明するフローチャートである。処理装置２００は、合意形成されたブロックを、自身が保持するブロックチェーンに追加する処理を行う（Ｓ２０１）。図５に示したように、合意形成されたブロックはブロードキャストされるため、処理装置２００を含む各ノードは、当該ブロックの受信をトリガーとしてＳ２０１の処理を実行する。
【００５１】
次に処理装置２００は、新たに追加されたブロックに含まれるデータが、自身に関連するデータであるかを判定する。具体的には、ブロックが処理コマンドを含んでおり、且つ当該処理コマンドの対象である電子機器３００が、自身の管理対象機器であるか否かを判定する（Ｓ２０２）。Ｓ２０２でＮｏの場合、処理装置２００は、処理コマンドに関する処理を終了する。
【００５２】
Ｓ２０２でＹｅｓの場合、処理装置２００は自身が受信した処理コマンドに対応可能であるか否かを判定する（Ｓ２０３）。Ｓ２０３は例えばバージョン情報を判定する処理である。例えば、処理コマンドが、ver.1.0→ver.2.0→ver.3.0と下位互換性を保ちながら拡張していくとする。処理装置２００の対応コマンドバージョンがver.3.0である場合、処理コマンドのバージョンがver.1.0〜ver.3.0のいずれであっても、処理装置２００は当該処理コマンドに対応可能である。一方、処理装置２００の対応コマンドバージョンがver.2.0である場合、ver.1.0又はver.2.0の処理コマンドには対応可能であるが、ver.3.0の処理コマンドを処理できない。また、処理装置２００の対応コマンドバージョンがver.1.0である場合、ver.1.0の処理コマンドには対応可能であるが、ver.2.0又はver.3.0の処理コマンドを処理できない。
【００５３】
或いは、処理装置２００の能力情報に基づいて、Ｓ２０３の判定が行われてもよい。例えば、処理コマンドがネットワーク設定を行う設定変更コマンドである場合を考える。ネットワーク設定の種別としては、「ＩＰ（Internet Protocol）設定」、「無線ＬＡＮ（Local Area Network）設定」、「ログイン情報設定」が考えられる。ここで、処理装置２００の能力情報は、処理装置２００が実行可能な設定種別を特定する情報である。例えば処理装置２００の能力情報は、処理装置２００が「ＩＰ設定」、「ログイン情報設定」を実行可能であることを表す情報である。その状況において、処理コマンドに「ＩＰ設定」、「無線ＬＡＮ設定」、「ログイン情報設定」の３つが定義されていた場合、処理装置２００は、「無線ＬＡＮ設定」に対応できない。
【００５４】
或いは、バージョン番号と能力情報の組み合わせにより、Ｓ２０３の処理が実現されてもよい。例えば、「無線ＬＡＮ設定ver.1.0」、「無線ＬＡＮ設定ver.2.0」が存在し、処理コマンドが「無線ＬＡＮ設定ver.2.0」を含む場合、処理装置２００は、能力情報が「無線ＬＡＮ設定」を含んでおり、且つ、当該「無線ＬＡＮ設定」に関する対応コマンドバージョンがver.2.0以降である場合に、対応可能と判定する。
【００５５】
Ｓ２０３でＹｅｓの場合、処理装置２００は、新たに処理プログラムを取得せずとも、処理コマンドを実行可能である。よって、処理装置２００は、保持している処理プログラムを実行することによって、電子機器３００に対する処理コマンドを実行する（Ｓ２０４）。
【００５６】
Ｓ２０３でＮｏの場合、処理装置２００が処理コマンドを実行するためには、処理プログラムが必要となる。上記の例であれば、例えばver.3.0まで処理可能な処理プログラム、或いは、「無線ＬＡＮ設定」を実行するための処理プログラム等が必要である。図７のブロックＡに示したように、本実施形態のブロックチェーンには、処理コマンドだけでなく、当該処理コマンドに対応する処理プログラムも追加されている。よって処理装置２００は、実行環境上でブロックチェーンに記憶された処理プログラムを実行する（Ｓ２０５）。Ｓ２０４又はＳ２０５の処理によって、処理コマンドに基づく電子機器３００の制御が実行される。
【００５７】
以上のように、処理装置２００は、提供装置から電子機器３００を制御するための処理コマンドを受信し、受信した処理コマンドに自身が対応しているか否かを判定する。そして処理装置２００は、自身が処理コマンドに対応していないと判定した場合、ブロックチェーンから処理コマンドに対応する処理プログラムを取得する。これにより、処理装置２００の管理アプリケーションをバージョンアップすることなく、未知の処理コマンドに対応することが可能になる。
【００５８】
なお、処理装置２００は、処理コマンドの実行結果を、ブロックチェーンのブロックに登録するためのトランザクションを生成する処理を行ってもよい。処理コマンドの実行結果とは、具体的には当該処理コマンドに対応する処理プログラムの実行結果である。例えば図８に示すように、処理装置２００は、Ｓ２０４又はＳ２０５に示す処理プログラムの実行後、処理結果をブロックチェーンに登録する処理を行う（Ｓ２０６）。具体的には、処理装置２００は処理結果を含むトランザクションを生成し、ブロックチェーンネットワークＮＷにブロードキャストする。その後、コンセンサスアルゴリズムに従って合意形成されると、処理結果を含むブロックがブロックチェーンに追加される。このようにすれば、ブロックチェーンネットワークＮＷの他のノードが処理コマンドの実行結果を取得することが可能になる。より具体的には、処理コマンドの送信元である提供装置１００において、実行結果を取得できる。
【００５９】
ここでの実行結果とは、初期化コマンド、再起動コマンド、設定変更コマンドであれば、処理コマンドの成功／失敗を表す情報である。例えば提供装置１００において実行結果を表示することによって、ユーザーに処理コマンドの結果を知らせることができ、利便性の向上が可能である。
【００６０】
また処理結果のブロックチェーンへの登録は、処理コマンドが情報の収集コマンドである場合に特に重要である。即ち、処理コマンドは、情報の収集コマンドであり、処理装置２００は、収集コマンドの実行結果である電子機器３００の管理情報を、ブロックチェーンに登録するためのトランザクションを生成する。この場合、処理コマンドに対応する処理プログラムは、収集コマンドを実行するためのプログラムである。このようにすれば、電子機器３００の情報を他のノード、狭義には提供装置１００において取得することが可能になる。
【００６１】
なお、情報の収集コマンドとは例えば図６に示した利用状況取得コマンドである。この場合、管理情報とは電子機器３００の利用状況を表す情報であり、印刷枚数の情報やスキャン枚数の情報等である。ただし、管理情報は利用状況を表す情報に限定されない。例えば、管理情報は、電子機器３００の状態情報であってもよい。電子機器３００がプリンターである場合、状態情報により表される状態は、例えば「アイドル状態」、「印刷中」、「エラー状態」等の種々の状態を含む。アイドル状態とは、印刷実行可能であるが、印刷ジョブが投入されていない状態である。エラー状態とは、エラーが発生しており、印刷ジョブを実行できない状態である。
【００６２】
また処理装置２００によりブロックチェーンに登録される管理情報は種々の処理に利用可能である。例えば提供装置１００の処理部１１０は、ブロックチェーンに書き込まれた管理情報に基づいて、アラート処理又はレポート情報生成処理を行ってもよい。なお、ブロックチェーンに書き込まれた情報は、提供装置１００以外のノードからも参照可能である。そのため、処理システム１０の構成によっては、提供装置１００以外の装置がアラート処理又はレポート情報生成処理を行うことは妨げられない。ただし、提供装置１００が複数の顧客の電子機器３００の管理に用いられる場合、所与の顧客の情報が他の顧客に流出することは好ましくない。その場合、処理装置２００は、提供装置１００のみが復号化可能な態様で管理情報を暗号化し、ブロックチェーンに登録する処理を行う。このようにすれば、管理情報の参照処理、アラート処理、及びレポート情報生成処理の実行主体を提供装置１００に限定可能である。
【００６３】
アラート処理とは、電子機器３００のユーザーに対して警告を行う処理である。例えば、提供装置１００は、電子機器３００がエラー状態になった場合にアラート処理を行う。或いは提供装置１００は、所定期間内での印刷枚数や稼働時間について予め正常範囲を設定しておき、取得された印刷枚数等が当該正常範囲を超えた場合にアラート処理を行う。このようにすれば、電子機器３００が不適切な態様で使用されている場合に、ユーザーに警告できる。なお、アラート処理がアラート情報をブロックチェーンに登録する処理により実現されることは妨げられない。ただし、アラートはある程度の即時性が求められるため、アラート処理はユーザーの使用端末にメールを送信する処理等、ブロックチェーンを介さない処理として実現してもよい。
【００６４】
レポート情報生成処理とは、管理情報に基づいてレポートを生成する処理である。例えば提供装置１００は、所定期間内の電子機器３００の稼動情報をまとめたレポートを生成する。電子機器３００の管理情報には、消耗品の情報、稼動時間の情報、内部に設けられるセンサーの検出値等、多様な情報が含まれる。また１ユーザーが多数の電子機器３００を利用するケースも考えられる。その場合、管理情報をそのまま提示したとしても、情報量が多く、ユーザーによる理解が難しいおそれがある。その点、管理情報をレポートとしてまとめることによって、ユーザーの理解を容易にできる。レポートは、例えば消耗量等の数値データに対する統計処理の結果や、各種情報をグラフ等を用いて視覚的に表現した情報を含む。
【００６５】
或いは、提供装置１００の処理部１１０は、ブロックチェーンに書き込まれた管理情報に基づいて、電子機器３００の使用状況に応じた課金処理を行ってもよい。例えば、例えば課金サービス提供者は、各ユーザーとの間で予め課金契約を締結しておく。電子機器３００がプリンターであれば、例えば「印刷枚数に応じた課金であり、１枚当たりｘ円」等の契約が交わされる。この場合、提供装置１００は、管理情報として単位期間当たりの印刷枚数の情報を取得し、当該印刷枚数と契約内容に基づいて課金額を決定する処理を行う。決定された課金額の請求は、例えばメールや郵送等により行われる。このようにすれば、処理装置２００の処理コマンドへの対応状況によらず管理情報を収集でき、ユーザーへの課金処理をスムーズに行うことが可能になる。
【００６６】
４．変形例
以下、いくつかの変形例について説明する。
【００６７】
４．１  コンセンサスアルゴリズムの変更
ブロックチェーンではトランザクションのブロードキャストの後、実際に当該トランザクションがブロックに取り込まれるまでに、コンセンサスアルゴリズムによる合意形成が必要となる。トランザクションの発行からブロックチェーンへの書き込みまでに要する時間は、合意形成の困難さに依存し、当該困難さはコンセンサスアルゴリズムに応じて決定される。
【００６８】
上述してきたように、本実施形態に係る処理システム１０では、種々の情報がブロックチェーンに書き込まれる。そして情報の種類に応じて、求められる即時性が異なる。例えば、処理コマンド及び処理プログラムの書き込みはある程度の時間を要しても大きな問題となりにくい。処理コマンドは確実に実行されることが重要であり、実行までの時間は極端に長くなければ問題にならないケースが多いためである。
【００６９】
それに対して、処理結果の書き込みは比較的短い時間で行われることが望ましい。処理結果がブロックチェーンに書き込まれるまでに時間を要した場合、実際には処理コマンドが実行されているにもかかわらず、提供装置１００側ではそれを認識できない。換言すれば、提供装置１００と処理装置２００とで処理コマンドの実行有無の認識に齟齬が生じてしまう。そのため、提供装置１００のユーザーが誤って再度同じ処理コマンドを実行しようとするおそれもある。或いは、電子機器３００の状態情報を書き込む場合、合意を形成する間に電子機器３００の状態が遷移してしまい、ブロックチェーンに書き込まれた状態情報と実際の電子機器３００の状態が乖離してしまうおそれもある。
【００７０】
よって提供装置１００、及び、処理装置２００は、処理プログラムをブロックチェーンに登録するためのトランザクションと、管理情報をブロックチェーンに登録するためのトランザクションとで、異なるコンセンサスアルゴリズムを用いてもよい。上記の例であれば、処理プログラムをブロックチェーンに登録するための第１トランザクションに比べて、管理情報をブロックチェーンに登録するための第２トランザクションでは合意形成が容易なコンセンサスアルゴリズムが用いられる。例えば、第１トランザクションでは、ＰｏＷやＰｏＳがコンセンサスアルゴリズムとして用いられる。それに対して、第２トランザクションでは、無条件で合意形成されたものと見なす。このようにすれば、情報の種類に応じて合意形成までの時間を可変にできる。そのため、ブロックチェーンへの情報の書き込みを、情報に求められる即時性に応じて実行することが可能になる。
【００７１】
なお、コンセンサスアルゴリズムはブロックチェーンネットワークＮＷの全ノードで共通となる。そのため、提供装置１００と処理装置２００以外の装置がノードとして存在する場合、当該ノードにおいても、情報の種類に応じてコンセンサスアルゴリズムが切り替えられる。
【００７２】
またここでの「異なるコンセンサスアルゴリズム」とは、合意形成の困難さが異なればよい。そのため、第１トランザクションと第２トランザクションの両方でＰｏＷをコンセンサスアルゴリズムとして用いる等の実施形態も妨げられない。この場合、第１トランザクションと第２トランザクションとは、ブロックヘッダーのハッシュ値が満たすべき条件が異なる。例えば第２トランザクションは、第１トランザクションに比べて許容されるハッシュ値の範囲が広く設定される。
【００７３】
また以上では処理プログラムをブロックチェーンに登録するための第１トランザクションに即時性が必要とならないケースを例示したがこれには限定されない。例えば、電子機器３００を緊急停止させる処理コマンドを送信する際には、当該処理コマンド及び処理プログラムはできるだけ短い時間でブロックチェーンに書き込まれることが望ましい。即ち、コンセンサスアルゴリズムにおける合意形成の困難さを変更する際には、処理コマンド、処理プログラムであるか否かという観点でなく、書き込み対象となる情報に即時性が求められているか否かという観点で判定が行われてもよい。
【００７４】
４．２  複数種類の電子機器の管理
上述したように、本実施形態に係る電子機器３００は、プリンター、スキャナー、プロジェクター、ロボット等、種々の機器が考えられる。
【００７５】
図９は、複数の種類の電子機器３００を管理する場合の従来手法を説明する図である。従来、プリンター３１の管理はプリンター用管理アプリケーションにより実行される。スキャナー３２、プロジェクター３３についても同様であり、それぞれ専用の管理アプリケーションが用いられる。また、ロボット等の他の電子機器３００が用いられる場合も同様である。例えば、１つの企業が複数の種類の電子機器３００を用いる場合、図９のように、機器の種類に応じた管理装置２３を設ける必要があった。或いは、管理装置２３は１つにまとめることは可能であるが、当該管理装置２３に電子機器３００の種類に応じた複数の管理アプリケーションをインストールする必要があった。
【００７６】
なぜなら、図６を用いて上述したように、電子機器３００の種類によって想定される処理コマンドが異なるためである。従来、これらを１つの管理アプリケーションで管理しようとすれば、全ての電子機器３００で想定される処理プログラムを保持しておかなければならない。このような汎用的な管理アプリケーションは処理プログラムのバージョンアップを頻繁に実行する必要があった。
【００７７】
その点、本実施形態の手法であれば処理プログラムをブロックチェーンで配信可能である。例えば、本実施形態の処理装置２００は、複数の種類の電子機器３００に共通の処理コマンドに対応する処理プログラムを記憶する記憶部を含んでもよい。そして処理装置２００は、電子機器３００の種類に応じた処理コマンドに対応する処理プログラムを、ブロックチェーンから取得する。このようにすれば、複数の種類の電子機器３００を管理できる汎用的な管理アプリケーションを実現可能である。
【００７８】
図１０は、本実施形態の手法を説明する図である。図１０に示すように、処理装置２００には１つの汎用管理アプリケーションがインストールされる。当該管理アプリケーションには、複数の電子機器３００で共通の処理プログラムが含まれる。また、ブロックチェーンには、処理プログラムとしてプリンター用処理プログラム、スキャナー用処理プログラム、プロジェクター用処理プログラム等、電子機器３００の種類に特有の処理プログラムが書き込まれる。これらの処理プログラムは、上述した例と同様に、提供装置１００によって登録のためのトランザクションが発行されたプログラムである。
【００７９】
４．３  提供装置側で処理装置が処理コマンドに対応するか否かを判定
また図８を用いて上述した例では、処理装置２００において、当該処理装置２００が処理コマンドに対応しているか否かの判定が行われた。この場合、提供装置１００は、処理装置２００が処理コマンドに対応するか否かを考慮することなく、処理コマンドと処理プログラムを対応付けてブロックチェーンに登録するためのトランザクションを発行する。
【００８０】
ただし、処理装置２００が処理コマンドに対応するか否かの判定処理は、提供装置１００で行われてもよい。提供装置１００の処理部１１０は、電子機器３００に対応して設けられる処理装置２００が、処理コマンドに対応しているかを判定する。そして処理部１１０は、処理装置２００が処理コマンドに対応していない場合、処理コマンドに対応する処理プログラムをブロックチェーンに登録するためのトランザクションを生成する。このようにすれば、処理装置２００の対応状況に応じて、処理プログラムの登録処理を行うか否かを決定できる。具体的には、処理装置２００が処理コマンドに対応している場合、提供装置１００は、処理コマンドのみを送信し、処理プログラムの送信を省略可能である。
【００８１】
例えば、処理装置２００は、予め自身が対応する処理コマンドのバージョン情報、又は、自身の能力情報、又はバージョン情報と能力情報の組み合わせを、提供装置１００に送信する。処理装置２００は、バージョン情報や能力情報をブロックチェーンに登録するためのトランザクションを発行してもよいし、ブロックチェーンとは異なる経路でバージョン情報等を提供装置１００に送信してもよい。提供装置１００は、図８のＳ２０３の例と同様に、バージョン情報及び能力情報の少なくとも一方に基づいて、処理装置２００が処理コマンドに対応しているか否かを判定する。
【００８２】
４．４  処理コマンドと処理プログラムの対応付けの変形例
また以上では、提供装置１００は処理コマンドと処理プログラムを同時にブロックチェーンに登録する処理を行う例を示した。例えば、処理コマンドと処理プログラムの両方を含むトランザクションを発行することによって、処理コマンドと処理プログラムの関連付けを行う。
【００８３】
ただし、処理装置２００が処理コマンドを受信した際に、処理装置２００において当該処理コマンドに対応する処理プログラムを特定可能であればよく、処理コマンドと処理プログラムは同時に登録されるものには限定されない。
【００８４】
図１１は、ブロックチェーンの構成を説明する図である。例えば所与の処理コマンドに対応する処理プログラムの初回登録時は、提供装置１００は、処理コマンドと処理プログラムを同時にブロックチェーンに登録する処理を行う。この処理によって追加されたブロックがブロックＢである。ブロックＣ及びブロックＤは、所与のデータを含むブロックである。図４を用いて上述したように、ブロックＣは親ブロックであるブロックＢのハッシュ値を含み、ブロックＤは親ブロックであるブロックＣのハッシュ値を含む。なお図１１では省略しているが、ブロックＢがジェネシスブロックでない場合、ブロックＢは親ブロックのハッシュ値を含む。その後、同じ処理プログラムに対応する処理コマンドが、再度ブロックチェーンに登録される場合を考える。その際、提供装置１００は、処理コマンドとともに、ブロックＢを特定する情報をブロックチェーンに登録するトランザクションを発行する。ブロックＢを特定する情報とは、例えばブロックＢのブロックヘッダーのハッシュ値である。この処理によって追加されたブロックがブロックＥである。ブロックＥに含まれるブロックＢのハッシュ値は、処理プログラムを含むブロックを特定するための情報であり、親ブロックのハッシュ値とは異なる。具体的には、ブロックＥは、親ブロックであるブロックＤのハッシュ値を含む。
【００８５】
ブロックチェーンでは、各ノードは最初のブロックから最新のブロックまで参照可能である。そのため、ブロックＢに処理プログラムが書き込まれた場合、処理装置２００は当該処理プログラムを任意のタイミングで実行できる。図１１の例であれば、ブロックＥが追加されることで、所与の処理装置２００がブロックＥの処理コマンドの実行を試行する。処理装置２００が処理コマンドに対応していない場合、処理装置２００はブロックＥに含まれるブロックＢのハッシュ値に基づいて処理プログラムを特定し、実行環境で実行することが可能である。このようにすれば、ブロックチェーン内で同一の処理プログラムが重複して書き込まれることを抑制できる。
【００８６】
さらに言えば、処理プログラムの初回書き込みにおいても、当該処理プログラムは処理コマンドと同時に書き込まれる必要はない。例えば、提供装置１００において新たな処理プログラムが作成された場合、処理コマンドの実行タイミングとは関係なく、当該処理プログラムをブロックチェーンに登録するためのトランザクションが発行される。書き込まれた処理プログラムに対応する処理コマンドは、初回及び２回目以降のいずれの書き込みにおいても、図１１のブロックＥと同様に、処理プログラムの参照情報が関連付けられる。以上のように、本実施形態における処理プログラムと処理コマンドの関連付けは、種々の態様により実現可能である。
【００８７】
また、バージョンアップを行うことなく未知の処理コマンドに対応するためには、処理プログラムがブロックチェーンで配信可能であればよい。
【００８８】
図１２は、本実施形態に係る処理システム１０における通信経路の例を説明する図である。図１２に示すように、提供装置１００と処理装置２００は、それぞれブロックチェーンネットワークＮＷのノードである。提供装置１００は、処理プログラムをブロックチェーンに登録するためのトランザクションを発行し、当該処理プログラムはブロックチェーンに書き込まれる。
【００８９】
また図１２の例では、提供装置１００と処理装置２００は、ブロックチェーンネットワークＮＷを介さない通信経路による通信が可能である。そして提供装置１００は、当該通信経路を用いて、処理コマンドを処理装置２００に送信する。処理装置２００は、自身が受信した処理コマンドに対応するか否かを判定し、対応しない場合はブロックチェーンの処理プログラムを実行環境で実行する。例えば提供装置１００は、処理コマンドを送信する際に、対応する処理プログラムを含むブロックのハッシュ値の情報を併せて送信する。このような態様でも、処理コマンドと処理プログラムの関連付けが可能であり、処理装置２００は、バージョンアップを行うことなく未知の処理コマンドに対応できる。
【００９０】
本実施形態の提供装置は、ブロックチェーンを用いたネットワークとの通信を行う通信部と、通信部を制御する処理部と、を含む。処理部は、管理対象である電子機器を制御するための処理プログラムを、ブロックチェーンに登録するためのトランザクションを生成し、生成したトランザクションを通信部を介してネットワークに発行する。
【００９１】
本実施形態では、電子機器を制御するための処理プログラムを、ブロックチェーンに登録するための処理が行われる。処理プログラムがブロックチェーンに書き込まれることによって、当該処理プログラムは、ブロックチェーンを用いたネットワークの各ノードにおいて実行可能となる。これにより、ブロックチェーンを用いて電子機器の管理を適切に実行することが可能になる。
【００９２】
また本実施形態では、処理プログラムは、電子機器の設定を行うプログラムであってもよい。
【００９３】
このようにすれば、ブロックチェーンを用いて電子機器の設定を適切に実行することが可能になる。
【００９４】
また本実施形態では、処理部は、処理プログラムをスマートコントラクトとしてブロックチェーンに登録するためのトランザクションを生成してもよい。
【００９５】
このようにすれば、ブロックチェーン技術におけるスマートコントラクトとして、処理プログラムを提供することが可能になる。
【００９６】
また本実施形態では、処理部は、電子機器を制御するための処理コマンドを処理プログラムに関連づけて、ブロックチェーンに登録するためのトランザクションを生成してもよい。
【００９７】
このようにすれば、処理プログラムに対応する処理コマンドを、ブロックチェーンを用いて提供することが可能になる。
【００９８】
また本実施形態では、処理部は、電子機器に対応して設けられる処理装置が、処理コマンドに対応しているかを判定し、処理装置が処理コマンドに対応していないと判定した場合、処理コマンドに対応する処理プログラムをブロックチェーンに登録するためのトランザクションを生成してもよい。
【００９９】
このようにすれば、処理装置が処理コマンドに対応しているか否かを提供装置において判定し、判定結果に応じて適切に処理プログラムを提供することが可能になる。
【０１００】
また本実施形態の処理システムは、上記のいずれかに記載の提供装置と、電子機器に対応して設けられ、ブロックチェーンから処理プログラムを取得して当該処理プログラムを実行する処理装置と、を含む。
【０１０１】
このようにすれば、ブロックチェーンを用いて処理プログラムの提供及び実行を行うことによって、電子機器を制御するシステムを実現できる。
【０１０２】
また本実施形態では、処理装置は、提供装置から電子機器を制御するための処理コマンドを受信し、受信した処理コマンドに自身が対応しているか否かを判定し、処理コマンドに対応していないと判定した場合、ブロックチェーンから処理コマンドに対応する処理プログラムを取得してもよい。
【０１０３】
このようにすれば、処理装置が処理コマンドに対応しているか否かを処理装置において判定し、判定結果に応じて適切に処理プログラムを実行することが可能になる。
【０１０４】
また本実施形態では、処理装置は、処理プログラムの実行結果を、ブロックチェーンに登録するためのトランザクションを生成する処理を行ってもよい。
【０１０５】
このようにすれば、処理プログラムの実行結果をブロックチェーンに書き込むことが可能になる。例えば、処理コマンドの送信元のノードにおいて、当該処理コマンドに対応する処理プログラムの実行結果を確認することが可能になる。
【０１０６】
また本実施形態では、処理装置は、複数の種類の電子機器に共通の処理プログラムを記憶する記憶部を含み、処理装置は、電子機器の種類に応じた処理プログラムを、ブロックチェーンから取得してもよい。
【０１０７】
このようにすれば、複数の種類の電子機器が制御対象となる場合であっても、電子機器の制御を効率的に実行することが可能になる。
【０１０８】
また本実施形態では、処理プログラムは、情報の収集コマンドを実行するプログラムであり、処理装置は、収集コマンドの実行結果である電子機器の管理情報を、ブロックチェーンに登録するためのトランザクションを生成してもよい。
【０１０９】
このようにすれば、情報の収集コマンドを実行することによって取得した管理情報を、ブロックチェーンに書き込むことが可能になる。
【０１１０】
また本実施形態では、提供装置、及び、処理装置は、処理プログラムをブロックチェーンに登録するためのトランザクションと、管理情報をブロックチェーンに登録するためのトランザクションとで、異なるコンセンサスアルゴリズムを用いてもよい。
【０１１１】
このようにすれば、ブロックチェーンへの書き込み対象となる情報に応じて、コンセンサスアルゴリズムを柔軟に変更することが可能になる。例えば、トランザクションの発行からブロックチェーンへの書き込みまでの時間を調整することが可能になる。
【０１１２】
また本実施形態では、提供装置の処理部は、ブロックチェーンに書き込まれた管理情報に基づいて、アラート処理又はレポート情報生成処理を行ってもよい。
【０１１３】
このようにすれば、提供装置において、管理情報に基づく種々の処理を実行することが可能になる。
【０１１４】
また本実施形態では、提供装置の処理部は、ブロックチェーンに書き込まれた管理情報に基づいて、電子機器の使用状況に応じた課金処理を行ってもよい。
【０１１５】
このようにすれば、提供装置において、管理情報に基づく種々の処理を実行することが可能になる。
【０１１６】
また本実施形態の通信方法は、ブロックチェーンを用いたネットワークにおける通信方法であって、管理対象である電子機器に対する処理コマンドを実行するための処理プログラムを、ブロックチェーンに登録するためのトランザクションを生成し、生成したトランザクションをネットワークに発行する。
【０１１７】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また本実施形態及び変形例の全ての組み合わせも、本発明の範囲に含まれる。また提供装置、処理装置等の構成・動作も本実施形態で説明したものに限定されず、種々の変形実施が可能である。
【符号の説明】
【０１１８】
１０…処理システム、２１…サーバーシステム、２２…クライアント装置、２３…管理装置、３１…プリンター、３２…スキャナー、３３…プロジェクター、１００…提供装置、１１０…処理部、１２０…通信部、２００…処理装置、３００…電子機器、ＮＷ…ブロックチェーンネットワーク
【図１】
2020035040.tif 000003
【図２】
2020035040.tif 000004
【図３】
2020035040.tif 000005
【図４】
2020035040.tif 000006
【図５】
2020035040.tif 000007
【図６】
2020035040.tif 000008
【図７】
2020035040.tif 000009
【図８】
2020035040.tif 000010
【図９】
2020035040.tif 000011
【図１０】
2020035040.tif 000012
【図１１】
2020035040.tif 000013
【図１２】
2020035040.tif 000014