IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ セイコーエプソン株式会社の特許一覧

<>
  • 特許-提供装置、処理システム及び通信方法 図1
  • 特許-提供装置、処理システム及び通信方法 図2
  • 特許-提供装置、処理システム及び通信方法 図3
  • 特許-提供装置、処理システム及び通信方法 図4
  • 特許-提供装置、処理システム及び通信方法 図5
  • 特許-提供装置、処理システム及び通信方法 図6
  • 特許-提供装置、処理システム及び通信方法 図7
  • 特許-提供装置、処理システム及び通信方法 図8
  • 特許-提供装置、処理システム及び通信方法 図9
  • 特許-提供装置、処理システム及び通信方法 図10
  • 特許-提供装置、処理システム及び通信方法 図11
  • 特許-提供装置、処理システム及び通信方法 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-21
(45)【発行日】2022-11-30
(54)【発明の名称】提供装置、処理システム及び通信方法
(51)【国際特許分類】
   G06Q 20/38 20120101AFI20221122BHJP
【FI】
G06Q20/38 310
【請求項の数】 12
(21)【出願番号】P 2018158988
(22)【出願日】2018-08-28
(65)【公開番号】P2020035040
(43)【公開日】2020-03-05
【審査請求日】2021-07-27
(73)【特許権者】
【識別番号】000002369
【氏名又は名称】セイコーエプソン株式会社
(74)【代理人】
【識別番号】100104710
【弁理士】
【氏名又は名称】竹腰 昇
(74)【代理人】
【識別番号】100090479
【弁理士】
【氏名又は名称】井上 一
(74)【代理人】
【識別番号】100124682
【弁理士】
【氏名又は名称】黒田 泰
(74)【代理人】
【識別番号】100166523
【弁理士】
【氏名又は名称】西河 宏晃
(74)【代理人】
【識別番号】100187539
【弁理士】
【氏名又は名称】藍原 由和
(72)【発明者】
【氏名】山門 均
(72)【発明者】
【氏名】亀田 剛
(72)【発明者】
【氏名】倉本 博幸
【審査官】野元 久道
(56)【参考文献】
【文献】国際公開第2018/141792(WO,A1)
【文献】特開2018-092262(JP,A)
【文献】特開2012-248160(JP,A)
【文献】特開2014-021303(JP,A)
【文献】米国特許出願公開第2018/0088928(US,A1)
【文献】吉濱 佐知子ほか,技術解説・2 ブロックチェーン技術とIBMの取り組み 「情報の革命」から「取引の革命」へ IBMの戦略とHigh Security Business Network,PROVISION,日本,日本アイ・ビー・エム株式会社,2017年02月23日,第91号,第34~39頁
【文献】土屋 健,なるほどIoT新技術ブロックチェーン 第2部 ラズパイIoT×ブロックチェーン実験研究 Appendix1 ラズパイ複数使うなら知っておきたい!自動実行&自動書き換え ブロックチェーンIoT端末で広がる世界,Interface,日本,CQ出版株式会社,2018年08月01日,第44巻,第8号,第94~95頁
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 20/38
(57)【特許請求の範囲】
【請求項1】
ブロックチェーンを用いたネットワークとの通信を行う通信部と、
前記通信部を制御する処理部と、
を含み、
前記処理部は、
管理対象である電子機器に対応して設けられる処理装置が、前記電子機器を制御するための処理コマンドに対応しているかを判定し、
前記処理装置が前記処理コマンドに対応していないと判定した場合、前記処理コマンドに、前記電子機器を制御するための処理プログラムを関連づけて、前記ブロックチェーンに登録するためのトランザクションを生成し、生成した前記トランザクションを前記通信部を介して前記ネットワークに発行することを特徴とする提供装置。
【請求項2】
請求項1に記載の提供装置において、
前記処理プログラムは、前記電子機器の設定を行うプログラムであることを特徴とする提供装置。
【請求項3】
請求項1又は2に記載の提供装置において、
前記処理部は、
前記処理プログラムをスマートコントラクトとして前記ブロックチェーンに登録するための前記トランザクションを生成することを特徴とする提供装置。
【請求項4】
請求項1乃至のいずれか一項に記載の提供装置と、
前記電子機器に対応して設けられ、前記ブロックチェーンから前記処理プログラムを取得して前記処理プログラムを実行する前記処理装置と、
を含むことを特徴とする処理システム。
【請求項5】
請求項に記載の処理システムにおいて、
前記処理装置は、
前記提供装置から前記電子機器を制御するための前記処理コマンドを受信し、受信した前記処理コマンドに自身が対応しているか否かを判定し、前記処理コマンドに対応していないと判定した場合、前記ブロックチェーンから前記処理コマンドに対応する前記処理プログラムを取得することを特徴とする処理システム。
【請求項6】
請求項4又は5に記載の処理システムにおいて、
前記処理装置は、
前記処理プログラムの実行結果を、前記ブロックチェーンに登録するための前記トランザクションを生成する処理を行うことを特徴とする処理システム。
【請求項7】
請求項4乃至6のいずれか一項に記載の処理システムにおいて、
前記処理装置は、
複数の種類の前記電子機器に共通の前記処理プログラムを記憶する記憶部を含み、
前記処理装置は、
前記電子機器の前記種類に応じた前記処理プログラムを、前記ブロックチェーンから取得することを特徴とする処理システム。
【請求項8】
請求項4乃至7のいずれか一項に記載の処理システムにおいて、
前記処理プログラムは、情報の収集コマンドを実行するプログラムであり、
前記処理装置は、
前記収集コマンドの実行結果である前記電子機器の管理情報を、前記ブロックチェーンに登録するための前記トランザクションを生成することを特徴とする処理システム。
【請求項9】
請求項に記載の処理システムにおいて、
前記提供装置、及び、前記処理装置は、
前記処理プログラムを前記ブロックチェーンに登録するための前記トランザクションと、前記管理情報を前記ブロックチェーンに登録するための前記トランザクションとで、異なるコンセンサスアルゴリズムを用いることを特徴とする処理システム。
【請求項10】
請求項8又は9に記載の処理システムにおいて、
前記提供装置の前記処理部は、
前記ブロックチェーンに書き込まれた前記管理情報に基づいて、アラート処理又はレポート情報生成処理を行うことを特徴とする処理システム。
【請求項11】
請求項8乃至10のいずれか一項に記載の処理システムにおいて、
前記提供装置の前記処理部は、
前記ブロックチェーンに書き込まれた前記管理情報に基づいて、前記電子機器の使用状況に応じた課金処理を行うことを特徴とする処理システム。
【請求項12】
ブロックチェーンを用いたネットワークにおける通信方法であって、
管理対象である電子機器に対応して設けられる処理装置が、前記電子機器を制御するための処理コマンドに対応しているかを判定し、
前記処理装置が前記処理コマンドに対応していないと判定した場合、前記処理コマンドに、前記電子機器を制御するための処理プログラムを関連づけて、前記ブロックチェーンに登録するためのトランザクションを生成し、
生成した前記トランザクションを前記ネットワークに発行する、
ことを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、提供装置、処理システム及び通信方法等に関する。
【背景技術】
【0002】
従来、プリンター等の電子機器の情報を収集したり、当該電子機器に対して設定等の制御を行う管理ツールが知られている。例えば特許文献1には、第1のデバイスの能力情報に基づいて生成した設定情報を、当該第1のデバイスと同一機種の他のデバイスに流用することによって、複数のデバイスの動作設定を効率的に行う管理装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2017-211901号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
電子機器に対する処理コマンドを実行するためのシステム構成は、種々考えられる。例えば、処理コマンドの送信側であるサーバーと、処理コマンドの受信及び実行を行うクライアント装置と、を含むクライアント/サーバー型のシステムを用いる手法が考えられる。クライアント装置は、電子機器であってもよいし、電子機器と接続される管理装置であってもよい。
【0005】
しかし従来、電子機器を対象とした処理を行うシステムにおいて、ブロックチェーン技術を用いる手法は開示されていなかった。
【課題を解決するための手段】
【0006】
本実施形態は、ブロックチェーンを用いたネットワークとの通信を行う通信部と、前記通信部を制御する処理部と、を含み、前記処理部は、管理対象である電子機器を制御するための処理プログラムを、前記ブロックチェーンに登録するためのトランザクションを生成し、生成した前記トランザクションを前記通信部を介して前記ネットワークに発行する提供装置に関係する。
【図面の簡単な説明】
【0007】
図1】提供装置の構成例。
図2】処理システムの構成例。
図3】従来手法の説明図。
図4】ブロックチェーンの説明図。
図5】ブロックチェーンへの書き込み処理を説明するフローチャート。
図6】処理コマンドと処理プログラムの例。
図7】本実施形態のブロックチェーンの例。
図8】処理装置における処理を説明するフローチャート。
図9】従来手法における管理アプリケーションの説明図。
図10】本実施形態における管理アプリケーションの説明図。
図11】本実施形態のブロックチェーンの他の例。
図12】処理システムの他の構成例。
【発明を実施するための形態】
【0008】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、必須構成要件であるとは限らない。
【0009】
1.概要
図1は本実施形態の提供装置100の構成例である。提供装置100は、ブロックチェーンを用いたネットワークとの通信を行う通信部120と、通信部120を制御する処理部110を含む。そして処理部110は、管理対象である電子機器を制御するための処理プログラムを、ブロックチェーンに登録するためのトランザクションを生成する。さらに処理部110は、生成したトランザクションを通信部120を介してネットワークに発行する。ここで、処理プログラムは、狭義には処理コマンドを実行するためのプログラムである。以下、ブロックチェーンを用いたネットワークをブロックチェーンネットワークNWと表記する。なお「ブロックチェーンに登録」とは、具体的にはブロックチェーンのブロックにデータが書き込まれることである。
【0010】
ブロックチェーンネットワークNWにおいては、複数のブロックがチェーン状につながったブロックチェーンと呼ばれるデータ構造が用いられる。トランザクションとは、データをブロックチェーンに登録する処理を行う際に発行される命令である。ブロックチェーンネットワークNWの各ノードは、同じ内容のブロックチェーンを保持している。そのため、提供装置100が発行した処理プログラムを含むトランザクションがブロックチェーンに書き込まれた場合、当該処理プログラムはブロックチェーンネットワークNWに参加する全てのノードから参照可能となる。これにより、提供装置100による処理プログラムの提供が容易になる。また、処理プログラムを実行する各端末は、未知の処理コマンドに対応することが可能になる。
【0011】
電子機器300は、例えばプリンターである。或いは電子機器300は、スキャナー、ファクシミリ装置又はコピー機であってもよい。電子機器300は、複数の機能を有する複合機(MFP:Multifunction Peripheral)であってもよく、印刷機能を有する複合機もプリンターの一例である。電子機器300は、プロジェクター、頭部装着型表示装置、ウェアラブル機器、脈拍計や活動量計等の生体情報測定機器、ロボット、カメラ等の映像機器、スマートフォン等の携帯情報端末、又は物理量計測機器等であってもよい。
【0012】
例えば電子機器300がプリンターである場合、それまではA4以下の用紙サイズを対象として用紙サイズごとの印刷枚数を収集していたが、新規にプリンターを購入することによって、A3サイズの用紙が印刷可能になるケースが考えられる。この場合、処理装置200の管理アプリケーションは、新しい用紙サイズの印刷枚数の収集に対応していない。例えば既存の処理プログラムは、A4以下の各用紙サイズの印刷枚数が格納されているデータ領域のデータを読み取る処理が記述されているが、A3用紙の印刷枚数が格納されているデータ領域を読み取る処理が記述されていない。本実施形態の手法であれば、未知の用紙サイズの収集アルゴリズムを記述した処理プログラムを配信することで、管理アプリケーションのアップデートなしに、適切な情報の収集を継続することが可能になる。
【0013】
なお、本実施形態の処理部110は、下記のハードウェアにより構成される。ハードウェアは、デジタル信号を処理する回路及びアナログ信号を処理する回路の少なくとも一方を含むことができる。例えば、ハードウェアは、回路基板に実装された1又は複数の回路装置や、1又は複数の回路素子で構成することができる。1又は複数の回路装置は例えばIC等である。1又は複数の回路素子は例えば抵抗、キャパシター等である。
【0014】
また処理部110は、下記のプロセッサーにより実現されてもよい。本実施形態の提供装置100は、情報を記憶するメモリーと、メモリーに記憶された情報に基づいて動作するプロセッサーと、を含む。情報は、例えばプログラムと各種のデータ等である。プロセッサーは、ハードウェアを含む。プロセッサーは、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)等、各種のプロセッサーを用いることが可能である。メモリーは、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)などの半導体メモリーであってもよいし、レジスターであってもよいし、ハードディスク装置等の磁気記憶装置であってもよいし、光学ディスク装置等の光学式記憶装置であってもよい。例えば、メモリーはコンピューターにより読み取り可能な命令を格納しており、当該命令がプロセッサーにより実行されることで、提供装置100の各部の機能が処理として実現されることになる。ここでの命令は、プログラムを構成する命令セットの命令でもよいし、プロセッサーのハードウェア回路に対して動作を指示する命令であってもよい。
【0015】
図2は、本実施形態の提供装置100と、処理装置200を含む処理システム10の構成例である。処理装置200は、電子機器300に対応して設けられ、処理プログラムを実行する装置である。図2は、処理装置200が2つであり、各処理装置200に2つの電子機器300が接続される例を示しているが、処理装置200の数及び電子機器300の数はこれに限定されない。また、図2では処理装置200と電子機器300が異なる機器である例を示したが、電子機器300が処理装置200を含んでもよい。即ち、電子機器300が直接ブロックチェーンネットワークNWに参加し、処理コマンドの受信、及び対応する処理プログラムの実行を行うことは妨げられない。
【0016】
提供装置100及び処理装置200は、ブロックチェーンのクライアントアプリケーションがインストールされている。クライアントアプリケーションは、ブロックチェーンネットワークNWに参加するためのソフトウェアである。クライアントアプリケーションは、例えばトランザクションの生成、発行、コンセンサスアルゴリズムの処理、仮想通貨の管理等、ブロックチェーンネットワークNWで行われる各種処理を実行するためのソフトウェアである。
【0017】
また処理装置200には、電子機器300を管理するための管理アプリケーションがインストールされている。なお、クライアントアプリケーションと管理アプリケーションは、連携可能な異なるアプリケーションであってもよいし、ブロックチェーンのクライアント機能及び電子機器300の管理機能の両方を含む1つのアプリケーションとして実現されてもよい。
【0018】
管理アプリケーションは、電子機器300からの情報の収集、及び電子機器300に対する処理コマンドの実行処理を行う。例えば管理アプリケーションは、ポーリングを行い、同一のネットワークに接続される電子機器300の情報を取得する。管理アプリケーションと各電子機器300との通信は、例えば、SNMP(Simple Network Management Protocol)に則って実行される。この場合、管理アプリケーションを含む処理装置200が通信のマネージャー、各電子機器300が通信のエージェントとなる。処理装置は、収集プログラムを実行することによりSNMPに則った通信を行い、電子機器からからMIB(Management Information Base)情報を受信する。情報の取得間隔は種々の設定が可能であるが、例えば1日に1回~数回程度である。また管理アプリケーションは電子機器300を制御するための処理プログラムを含み、処理コマンドを取得した場合に、当該処理コマンドに対応する処理プログラムを実行することによって電子機器300の制御を行う。
【0019】
なお本実施形態の手法は、図1に示した提供装置100に限定されず、図2に示した処理システム10に適用されてもよい。図2に示したように、本実施形態に係る処理システム10は、提供装置100と、電子機器300に対応して設けられ、ブロックチェーンから処理プログラムを取得して当該処理プログラムを実行する処理装置200と、を含む。
【0020】
図3は、電子機器300の挙動や設定を制御する従来手法を説明する図である。図3に示したシステムは、サーバーシステム21とクライアント装置22を含む。クライアント装置22は、電子機器300の管理を行う管理装置である。クライアント装置22には、電子機器300を管理するための管理アプリケーションがインストールされている。例えば、クライアント装置22の記憶部は、管理アプリケーションを記憶しており、クライアント装置の処理部が当該管理アプリケーションに従って動作する。
【0021】
電子機器300に対する処理コマンドの実行において、サーバーシステム21はクライアント装置22に処理コマンドを送信する。クライアント装置22は予め処理プログラムを準備しておき、受信した処理コマンドに対応する処理プログラムを実行することによって、電子機器300に対する処理コマンドを実行する。
【0022】
図3に示した手法では、クライアント装置22は、既知の処理コマンドにのみ対応可能であり、新規の処理コマンドに対応できない。具体的には、対応する処理プログラムが存在する処理コマンドは実行可能であるが、処理プログラムが存在しない処理コマンドは実行できない。新規の処理コマンドに対応するためには、クライアント装置22の管理アプリケーションをバージョンアップする必要がある。サーバーシステム21は、各クライアント装置22に対してバージョンアップを促すことは可能であるが、強制的にバージョンアップを行うことは難しい。そのため、サーバーシステム21からクライアント装置22に送信された処理コマンドが、クライアント装置22において適切に実行されないおそれがある。図3と比較した場合、図1及び図2に示した本実施形態の手法は、バージョンアップを行うことなく、未知の処理コマンドに対応可能という利点がある。
【0023】
2.ブロックチェーンとスマートコントラクト
次にブロックチェーン技術について説明する。なお以下で説明する内容はブロックチェーン技術を構成する要素の一部であり、異なる技術要素が追加されてもよい。また、以下で説明する技術要素の一部が省略されてもよい。また、各技術要素を発展させた方式も本実施形態におけるブロックチェーン技術に含まれる。
【0024】
ブロックチェーンは、オープンなネットワークにおいて、参加者による分散型の合意形成を行う手法である。ブロックチェーンネットワークは、P2Pネットワークである。そのため、クライアント/サーバー型のシステムとは異なり、特定の機器がデータを一元管理することはない。ブロックチェーンネットワークNWでは、ブロックが連結されたブロックチェーンと呼ばれるデータ構造によりデータが管理され、各ノードが共通のブロックチェーンを保持している。
【0025】
図4は、ブロックチェーンの構造を説明する図である。1つのブロックは、複数のトランザクションのデータと、親ブロックのハッシュ値のデータを含む。親ブロックのハッシュ値とは、具体的には、1つ前のブロックのブロックヘッダーのハッシュ値である。当該ハッシュ値により、ブロック間のつながりが実現される。トランザクションとは、ブロックチェーンへのデータの登録時にノードによって発行される命令である。例えば、仮想通貨を用いた取引を行う場合、送金元のユーザーアドレス、送金先のユーザーアドレス、送金額等の情報を含むトランザクションが生成される。
【0026】
生成されたトランザクションは、送信者の署名を付してブロードキャストされ、ブロックチェーンネットワークNW上の各ノードに伝搬する。なお、トランザクションの送信は、P2Pネットワークで用いられる種々のデータ伝搬アルゴリズムにより実現可能である。例えば、単純に隣接ノードにトランザクションを送信し、当該隣接ノードから他のノードへの伝搬を繰り返す手法でもよい。或いは、スーパーノードと呼ばれる生存している蓋然性の高い特定のノードを規定し、当該スーパーノードに対してトランザクションが送信されてもよい。スーパーノードを送信先とすることによって、トランザクションがブロックチェーンネットワークNWの各ノードに伝搬する蓋然性を高めることが可能になる。
【0027】
ブロックチェーンへのブロックの追加は、マイナーと呼ばれるノードにより実行される。マイナーは、トランザクションが所定量蓄積されると、当該トランザクションを含むブロックの生成を試みる。ブロックは、コンセンサスアルゴリズムに従って合意形成が行われたと判定されたことを条件に、ブロックチェーンに追加される。
【0028】
コンセンサスアルゴリズムとしてPoW(Proof of Work)が用いられる場合、ブロックヘッダーのハッシュ値が、特定の条件を満たす必要がある。特定の条件とは、例えばハッシュ値が所定閾値よりも小さくなるという条件である。ブロックヘッダーは、Nonceと呼ばれるフィールドを含み、当該Nonceはマイナーにより設定される。換言すれば、マイナーはブロックヘッダーのハッシュ値が特定の条件を満たすようなNonceを探索する処理を実行する。ハッシュ値を求めるためのハッシュ関数は、入力値から出力値を予測することが困難であるため、マイナーはNonceを変更しながら総当たりで条件満たすNonceを探す必要がある。即ち、PoWとは、仕事量を根拠として合意を形成する手法である。
【0029】
マイナーにより新たなブロックが生成されると、当該ブロックは各ノードでの検証を経て、ブロックチェーンネットワークNW内で伝搬する。各ノードでの検証は、ハッシュ値を求め、当該ハッシュ値が特定の条件を満たすかを判定する処理であり、短時間で実行可能である。
【0030】
なおコンセンサスアルゴリズムはPoWに限定されない。例えば、仮想通貨の保有量に応じて発言権が付与されるPoS(Proof of Stake)、或いは参加者の重要度に応じて発言権が付与されるPoI(Proof of Importance)等のコンセンサスアルゴリズムが用いられてもよい。また、固有の署名が付与されている場合は無条件に合意したとみなしてもよい。また、限られたユーザー、端末しかアクセスできないプライベートネットワークを用いる場合、署名に関する判定も除外して、無条件に合意形成したとみなしてもよい。本実施形態におけるコンセンサスアルゴリズムに基づく合意形成とは、無条件に合意形成したとみなす場合を含む。
【0031】
図5は、ブロックチェーンにデータを書き込む処理を説明するフローチャートである。この処理が開始されると、まずブロックチェーンへのデータ書き込みを希望するノードは、当該データを含むトランザクションを生成し、当該トランザクションをブロックチェーンネットワークNWにブロードキャストする(S101)。各ノードへの通知は、ブロードキャストに限るものではなく、P2Pネットワークで用いられる他の手段を用いてもよい点は上述した通りである。
【0032】
次にデータを受信した各ノードは、データをブロックチェーンに書き込んで良いか判断するため、コンセンサスアルゴリズムに基づく合意形成を行う(S102)。コンセンサスアルゴリズムは、上述した通りPoW,PoS,PoI等、種々のアルゴリズムを採用可能である。コンセンサスアルゴリズムで合意が得られるまでの間(S103でNo)、S102の処理が繰り返される。
【0033】
コンセンサスアルゴリズムで合意が得られた場合(S103でYes)、各ノードに合意形成をブロードキャストし(S104)、各ノードは自分が保持するブロックチェーンにデータを書き込む(S105)。以上の処理により、S101でブロードキャストされたデータがブロックチェーンに追加され、各ノードにより利用可能になる。
【0034】
またブロックチェーンネットワークNWにおいては、ノードで実行されるプログラムをブロックチェーンに追加することが可能である。このプログラムは、ステート及び関数を含み、ノード内の実行環境により実行される。ステートは変数の集合と言い換えてもよく、関数はサブルーチン、メソッド等と言い換えてもよい。ノード内の実行環境とは、例えば仮想マシンである。このような、ブロックチェーンにプログラムを追加してノードにおいてプログラムを実行する仕組みは、スマートコントラクトと呼ばれる。
【0035】
スマートコントラクトによるブロックチェーンへのプログラムの書き込みについても、図5を用いて上述した流れに従って実行される。即ち、スマートコントラクトの書き込みを希望するノードは、スマートコントラクトを含むトランザクションの生成、ブロードキャストを行う。当該トランザクションがコンセンサスアルゴリズムにより合意された場合に、スマートコントラクトによりプログラムがブロックチェーンに書き込まれる。
【0036】
本実施形態に係る提供装置100の処理部110は、処理プログラムをスマートコントラクトとしてブロックチェーンに登録するためのトランザクションを生成する。このように、処理プログラムをスマートコントラクトを用いてブロックチェーンに書き込むことによって、当該処理プログラムをブロックチェーンネットワークNWの任意のノードで実行することが可能になる。
【0037】
3.処理の詳細
3.1 処理コマンドと処理プログラム
図6は、電子機器300の制御を行うための処理コマンドと、当該処理コマンドに対応する処理プログラムの具体例を説明する図である。図6では、電子機器300として、プリンター、スキャナー、プロジェクター、ロボットの例を示している。
【0038】
例えば、電子機器300がプリンターである場合、電子機器300の制御を行う処理コマンドとして、初期化コマンド、再起動コマンド、利用状況取得コマンド、A3印刷枚数取得コマンド、設定変更コマンド、時刻設定コマンドが考えられる。
【0039】
初期化コマンドは、電子機器300を初期化するコマンドであり、例えば電子機器300を出荷時の状態に戻すためのコマンドである。初期化コマンドは、処理装置200が、デバイス全データ消去実行プログラムに従った処理を行うことによって実行される。デバイス全データ消去実行プログラムとは、電子機器300の消去対象データの全てを消去する処理手順が記述されたプログラムである。
【0040】
再起動コマンドは電子機器300の電源を一旦オフにした後、電源を再度オンにするコマンドである。再起動コマンドは、電源のオン/オフを行う手順が記述されたデバイスリセット実行プログラムに基づいて実行される。
【0041】
利用状況取得コマンドは、例えば印刷枚数を取得するコマンドであり、印刷枚数取得プログラムにより実現される。なお、利用状況取得コマンドは、インクの消費量や残量、可動時間、モーターの回転量等の他の情報を取得してもよい。
【0042】
A3印刷枚数取得コマンドは、A3用紙の印刷枚数を取得するコマンドであり、A3用紙枚数取得用通信プログラムにより実現される。即ち、利用状況取得コマンドとは別に、個別の情報を取得する処理コマンド、処理プログラムが用いられてもよい。
【0043】
設定変更コマンドは、プリンターの設定を変更するコマンドである。プリンターの設定は、設定項目と設定値の組み合わせである設定情報により表される。設定項目とは、例えば、セキュリティーに関する設定項目、無線LANに関する設定項目、印刷用紙の供給元に関する設定項目、デバイスの使用権限に関する設定項目、ネットワーク上のディレクトリサービスへ接続するための所定の通信プロトコルに関する設定項目等である。設定値とは、各設定項目における現在の設定の状態を表す情報である。設定変更プログラムは、例えば設定項目及び設定値を引数に実行され、引数である設定項目の設定値を、引数で指定された値に変更するプログラムである。
【0044】
時刻設定コマンドは、時刻を設定するコマンドであり、時刻設定プログラムにより実現される。即ち、設定変更コマンドとは別に、個別の設定項目の設定値を変更する処理コマンド、処理プログラムが規定されていてもよい。
【0045】
以上で説明したように、処理プログラムは、電子機器300の設定を行うプログラムを含む。このようにすれば、処理装置200によって電子機器300の設定を行うことが可能になる。より具体的には、提供装置100がブロックチェーンネットワークNWを介して設定を行うための処理プログラムを提供することによって、処理装置200は未知の設定コマンド、すなわち、処理装置200にインストールされた管理アプリケーションが対応していない設定コマンドを実行することが可能になる。例えば、処理装置200に新たな電子機器300が接続された場合であっても、処理装置200は管理アプリケーションのバージョンアップを行うことなく、当該新たな電子機器300に対する設定を実行できる。
【0046】
なお、スキャナー、プロジェクター、ロボットについては詳細な説明を省略するが、図6に示したように、各電子機器300について当該電子機器300の種類に応じた処理コマンド、及び当該処理コマンドに対応する処理プログラムが設定されている。これにより、電子機器300の種類に応じた適切な制御を実現できる。
【0047】
3.2 処理シーケンス
次に本実施形態の具体的な処理の流れを説明する。まず提供装置100は、所定の電子機器300に実行させたい処理コマンドと、当該処理コマンドを実行するための処理プログラムを特定する。そして提供装置100の処理部110は、電子機器300を制御するための処理コマンドを処理プログラムに関連づけて、ブロックチェーンのブロックに登録するためのトランザクションを生成する。生成されたトランザクションはブロックチェーンネットワークNWにブロードキャストされる。これにより、処理コマンドだけでなく、当該処理コマンドに対応する処理プログラムを提供することが可能になる。そのため、S203~S205を用いて後述するように、処理装置200の処理コマンドへの対応状況によらず、適切な電子機器300の制御が可能になる。
【0048】
トランザクションの生成以降の流れは、図5を用いて上述した通りである。具体的にはコンセンサスアルゴリズムを用いた処理が行われ、合意形成が行われた場合に、トランザクションが取り込まれたブロックがブロックチェーンに追加される。
【0049】
図7は、この場合のブロックチェーンの例である。ブロックAは処理コマンド及び処理プログラムを含むトランザクションが取り込まれている。当該ブロックAがブロックチェーンに追加されることによって、各ノードは、処理コマンドの取得、及びノード内の実行環境を用いた処理プログラムの実行が可能になる。なお、図7におけるデータとは、ブロックチェーンネットワークNWで通信される任意のデータを含む。図7のデータは、処理コマンド、処理プログラムに限定されず、例えば処理コマンドの実行結果を表すログデータであってもよいし、仮想通貨の取引を表す情報であってもよいし、他の情報であってもよい。
【0050】
図8は、処理装置200で実行される処理を説明するフローチャートである。処理装置200は、合意形成されたブロックを、自身が保持するブロックチェーンに追加する処理を行う(S201)。図5に示したように、合意形成されたブロックはブロードキャストされるため、処理装置200を含む各ノードは、当該ブロックの受信をトリガーとしてS201の処理を実行する。
【0051】
次に処理装置200は、新たに追加されたブロックに含まれるデータが、自身に関連するデータであるかを判定する。具体的には、ブロックが処理コマンドを含んでおり、且つ当該処理コマンドの対象である電子機器300が、自身の管理対象機器であるか否かを判定する(S202)。S202でNoの場合、処理装置200は、処理コマンドに関する処理を終了する。
【0052】
S202でYesの場合、処理装置200は自身が受信した処理コマンドに対応可能であるか否かを判定する(S203)。S203は例えばバージョン情報を判定する処理である。例えば、処理コマンドが、ver.1.0→ver.2.0→ver.3.0と下位互換性を保ちながら拡張していくとする。処理装置200の対応コマンドバージョンがver.3.0である場合、処理コマンドのバージョンがver.1.0~ver.3.0のいずれであっても、処理装置200は当該処理コマンドに対応可能である。一方、処理装置200の対応コマンドバージョンがver.2.0である場合、ver.1.0又はver.2.0の処理コマンドには対応可能であるが、ver.3.0の処理コマンドを処理できない。また、処理装置200の対応コマンドバージョンがver.1.0である場合、ver.1.0の処理コマンドには対応可能であるが、ver.2.0又はver.3.0の処理コマンドを処理できない。
【0053】
或いは、処理装置200の能力情報に基づいて、S203の判定が行われてもよい。例えば、処理コマンドがネットワーク設定を行う設定変更コマンドである場合を考える。ネットワーク設定の種別としては、「IP(Internet Protocol)設定」、「無線LAN(Local Area Network)設定」、「ログイン情報設定」が考えられる。ここで、処理装置200の能力情報は、処理装置200が実行可能な設定種別を特定する情報である。例えば処理装置200の能力情報は、処理装置200が「IP設定」、「ログイン情報設定」を実行可能であることを表す情報である。その状況において、処理コマンドに「IP設定」、「無線LAN設定」、「ログイン情報設定」の3つが定義されていた場合、処理装置200は、「無線LAN設定」に対応できない。
【0054】
或いは、バージョン番号と能力情報の組み合わせにより、S203の処理が実現されてもよい。例えば、「無線LAN設定ver.1.0」、「無線LAN設定ver.2.0」が存在し、処理コマンドが「無線LAN設定ver.2.0」を含む場合、処理装置200は、能力情報が「無線LAN設定」を含んでおり、且つ、当該「無線LAN設定」に関する対応コマンドバージョンがver.2.0以降である場合に、対応可能と判定する。
【0055】
S203でYesの場合、処理装置200は、新たに処理プログラムを取得せずとも、処理コマンドを実行可能である。よって、処理装置200は、保持している処理プログラムを実行することによって、電子機器300に対する処理コマンドを実行する(S204)。
【0056】
S203でNoの場合、処理装置200が処理コマンドを実行するためには、処理プログラムが必要となる。上記の例であれば、例えばver.3.0まで処理可能な処理プログラム、或いは、「無線LAN設定」を実行するための処理プログラム等が必要である。図7のブロックAに示したように、本実施形態のブロックチェーンには、処理コマンドだけでなく、当該処理コマンドに対応する処理プログラムも追加されている。よって処理装置200は、実行環境上でブロックチェーンに記憶された処理プログラムを実行する(S205)。S204又はS205の処理によって、処理コマンドに基づく電子機器300の制御が実行される。
【0057】
以上のように、処理装置200は、提供装置から電子機器300を制御するための処理コマンドを受信し、受信した処理コマンドに自身が対応しているか否かを判定する。そして処理装置200は、自身が処理コマンドに対応していないと判定した場合、ブロックチェーンから処理コマンドに対応する処理プログラムを取得する。これにより、処理装置200の管理アプリケーションをバージョンアップすることなく、未知の処理コマンドに対応することが可能になる。
【0058】
なお、処理装置200は、処理コマンドの実行結果を、ブロックチェーンのブロックに登録するためのトランザクションを生成する処理を行ってもよい。処理コマンドの実行結果とは、具体的には当該処理コマンドに対応する処理プログラムの実行結果である。例えば図8に示すように、処理装置200は、S204又はS205に示す処理プログラムの実行後、処理結果をブロックチェーンに登録する処理を行う(S206)。具体的には、処理装置200は処理結果を含むトランザクションを生成し、ブロックチェーンネットワークNWにブロードキャストする。その後、コンセンサスアルゴリズムに従って合意形成されると、処理結果を含むブロックがブロックチェーンに追加される。このようにすれば、ブロックチェーンネットワークNWの他のノードが処理コマンドの実行結果を取得することが可能になる。より具体的には、処理コマンドの送信元である提供装置100において、実行結果を取得できる。
【0059】
ここでの実行結果とは、初期化コマンド、再起動コマンド、設定変更コマンドであれば、処理コマンドの成功/失敗を表す情報である。例えば提供装置100において実行結果を表示することによって、ユーザーに処理コマンドの結果を知らせることができ、利便性の向上が可能である。
【0060】
また処理結果のブロックチェーンへの登録は、処理コマンドが情報の収集コマンドである場合に特に重要である。即ち、処理コマンドは、情報の収集コマンドであり、処理装置200は、収集コマンドの実行結果である電子機器300の管理情報を、ブロックチェーンに登録するためのトランザクションを生成する。この場合、処理コマンドに対応する処理プログラムは、収集コマンドを実行するためのプログラムである。このようにすれば、電子機器300の情報を他のノード、狭義には提供装置100において取得することが可能になる。
【0061】
なお、情報の収集コマンドとは例えば図6に示した利用状況取得コマンドである。この場合、管理情報とは電子機器300の利用状況を表す情報であり、印刷枚数の情報やスキャン枚数の情報等である。ただし、管理情報は利用状況を表す情報に限定されない。例えば、管理情報は、電子機器300の状態情報であってもよい。電子機器300がプリンターである場合、状態情報により表される状態は、例えば「アイドル状態」、「印刷中」、「エラー状態」等の種々の状態を含む。アイドル状態とは、印刷実行可能であるが、印刷ジョブが投入されていない状態である。エラー状態とは、エラーが発生しており、印刷ジョブを実行できない状態である。
【0062】
また処理装置200によりブロックチェーンに登録される管理情報は種々の処理に利用可能である。例えば提供装置100の処理部110は、ブロックチェーンに書き込まれた管理情報に基づいて、アラート処理又はレポート情報生成処理を行ってもよい。なお、ブロックチェーンに書き込まれた情報は、提供装置100以外のノードからも参照可能である。そのため、処理システム10の構成によっては、提供装置100以外の装置がアラート処理又はレポート情報生成処理を行うことは妨げられない。ただし、提供装置100が複数の顧客の電子機器300の管理に用いられる場合、所与の顧客の情報が他の顧客に流出することは好ましくない。その場合、処理装置200は、提供装置100のみが復号化可能な態様で管理情報を暗号化し、ブロックチェーンに登録する処理を行う。このようにすれば、管理情報の参照処理、アラート処理、及びレポート情報生成処理の実行主体を提供装置100に限定可能である。
【0063】
アラート処理とは、電子機器300のユーザーに対して警告を行う処理である。例えば、提供装置100は、電子機器300がエラー状態になった場合にアラート処理を行う。或いは提供装置100は、所定期間内での印刷枚数や稼働時間について予め正常範囲を設定しておき、取得された印刷枚数等が当該正常範囲を超えた場合にアラート処理を行う。このようにすれば、電子機器300が不適切な態様で使用されている場合に、ユーザーに警告できる。なお、アラート処理がアラート情報をブロックチェーンに登録する処理により実現されることは妨げられない。ただし、アラートはある程度の即時性が求められるため、アラート処理はユーザーの使用端末にメールを送信する処理等、ブロックチェーンを介さない処理として実現してもよい。
【0064】
レポート情報生成処理とは、管理情報に基づいてレポートを生成する処理である。例えば提供装置100は、所定期間内の電子機器300の稼動情報をまとめたレポートを生成する。電子機器300の管理情報には、消耗品の情報、稼動時間の情報、内部に設けられるセンサーの検出値等、多様な情報が含まれる。また1ユーザーが多数の電子機器300を利用するケースも考えられる。その場合、管理情報をそのまま提示したとしても、情報量が多く、ユーザーによる理解が難しいおそれがある。その点、管理情報をレポートとしてまとめることによって、ユーザーの理解を容易にできる。レポートは、例えば消耗量等の数値データに対する統計処理の結果や、各種情報をグラフ等を用いて視覚的に表現した情報を含む。
【0065】
或いは、提供装置100の処理部110は、ブロックチェーンに書き込まれた管理情報に基づいて、電子機器300の使用状況に応じた課金処理を行ってもよい。例えば、例えば課金サービス提供者は、各ユーザーとの間で予め課金契約を締結しておく。電子機器300がプリンターであれば、例えば「印刷枚数に応じた課金であり、1枚当たりx円」等の契約が交わされる。この場合、提供装置100は、管理情報として単位期間当たりの印刷枚数の情報を取得し、当該印刷枚数と契約内容に基づいて課金額を決定する処理を行う。決定された課金額の請求は、例えばメールや郵送等により行われる。このようにすれば、処理装置200の処理コマンドへの対応状況によらず管理情報を収集でき、ユーザーへの課金処理をスムーズに行うことが可能になる。
【0066】
4.変形例
以下、いくつかの変形例について説明する。
【0067】
4.1 コンセンサスアルゴリズムの変更
ブロックチェーンではトランザクションのブロードキャストの後、実際に当該トランザクションがブロックに取り込まれるまでに、コンセンサスアルゴリズムによる合意形成が必要となる。トランザクションの発行からブロックチェーンへの書き込みまでに要する時間は、合意形成の困難さに依存し、当該困難さはコンセンサスアルゴリズムに応じて決定される。
【0068】
上述してきたように、本実施形態に係る処理システム10では、種々の情報がブロックチェーンに書き込まれる。そして情報の種類に応じて、求められる即時性が異なる。例えば、処理コマンド及び処理プログラムの書き込みはある程度の時間を要しても大きな問題となりにくい。処理コマンドは確実に実行されることが重要であり、実行までの時間は極端に長くなければ問題にならないケースが多いためである。
【0069】
それに対して、処理結果の書き込みは比較的短い時間で行われることが望ましい。処理結果がブロックチェーンに書き込まれるまでに時間を要した場合、実際には処理コマンドが実行されているにもかかわらず、提供装置100側ではそれを認識できない。換言すれば、提供装置100と処理装置200とで処理コマンドの実行有無の認識に齟齬が生じてしまう。そのため、提供装置100のユーザーが誤って再度同じ処理コマンドを実行しようとするおそれもある。或いは、電子機器300の状態情報を書き込む場合、合意を形成する間に電子機器300の状態が遷移してしまい、ブロックチェーンに書き込まれた状態情報と実際の電子機器300の状態が乖離してしまうおそれもある。
【0070】
よって提供装置100、及び、処理装置200は、処理プログラムをブロックチェーンに登録するためのトランザクションと、管理情報をブロックチェーンに登録するためのトランザクションとで、異なるコンセンサスアルゴリズムを用いてもよい。上記の例であれば、処理プログラムをブロックチェーンに登録するための第1トランザクションに比べて、管理情報をブロックチェーンに登録するための第2トランザクションでは合意形成が容易なコンセンサスアルゴリズムが用いられる。例えば、第1トランザクションでは、PoWやPoSがコンセンサスアルゴリズムとして用いられる。それに対して、第2トランザクションでは、無条件で合意形成されたものと見なす。このようにすれば、情報の種類に応じて合意形成までの時間を可変にできる。そのため、ブロックチェーンへの情報の書き込みを、情報に求められる即時性に応じて実行することが可能になる。
【0071】
なお、コンセンサスアルゴリズムはブロックチェーンネットワークNWの全ノードで共通となる。そのため、提供装置100と処理装置200以外の装置がノードとして存在する場合、当該ノードにおいても、情報の種類に応じてコンセンサスアルゴリズムが切り替えられる。
【0072】
またここでの「異なるコンセンサスアルゴリズム」とは、合意形成の困難さが異なればよい。そのため、第1トランザクションと第2トランザクションの両方でPoWをコンセンサスアルゴリズムとして用いる等の実施形態も妨げられない。この場合、第1トランザクションと第2トランザクションとは、ブロックヘッダーのハッシュ値が満たすべき条件が異なる。例えば第2トランザクションは、第1トランザクションに比べて許容されるハッシュ値の範囲が広く設定される。
【0073】
また以上では処理プログラムをブロックチェーンに登録するための第1トランザクションに即時性が必要とならないケースを例示したがこれには限定されない。例えば、電子機器300を緊急停止させる処理コマンドを送信する際には、当該処理コマンド及び処理プログラムはできるだけ短い時間でブロックチェーンに書き込まれることが望ましい。即ち、コンセンサスアルゴリズムにおける合意形成の困難さを変更する際には、処理コマンド、処理プログラムであるか否かという観点でなく、書き込み対象となる情報に即時性が求められているか否かという観点で判定が行われてもよい。
【0074】
4.2 複数種類の電子機器の管理
上述したように、本実施形態に係る電子機器300は、プリンター、スキャナー、プロジェクター、ロボット等、種々の機器が考えられる。
【0075】
図9は、複数の種類の電子機器300を管理する場合の従来手法を説明する図である。従来、プリンター31の管理はプリンター用管理アプリケーションにより実行される。スキャナー32、プロジェクター33についても同様であり、それぞれ専用の管理アプリケーションが用いられる。また、ロボット等の他の電子機器300が用いられる場合も同様である。例えば、1つの企業が複数の種類の電子機器300を用いる場合、図9のように、機器の種類に応じた管理装置23を設ける必要があった。或いは、管理装置23は1つにまとめることは可能であるが、当該管理装置23に電子機器300の種類に応じた複数の管理アプリケーションをインストールする必要があった。
【0076】
なぜなら、図6を用いて上述したように、電子機器300の種類によって想定される処理コマンドが異なるためである。従来、これらを1つの管理アプリケーションで管理しようとすれば、全ての電子機器300で想定される処理プログラムを保持しておかなければならない。このような汎用的な管理アプリケーションは処理プログラムのバージョンアップを頻繁に実行する必要があった。
【0077】
その点、本実施形態の手法であれば処理プログラムをブロックチェーンで配信可能である。例えば、本実施形態の処理装置200は、複数の種類の電子機器300に共通の処理コマンドに対応する処理プログラムを記憶する記憶部を含んでもよい。そして処理装置200は、電子機器300の種類に応じた処理コマンドに対応する処理プログラムを、ブロックチェーンから取得する。このようにすれば、複数の種類の電子機器300を管理できる汎用的な管理アプリケーションを実現可能である。
【0078】
図10は、本実施形態の手法を説明する図である。図10に示すように、処理装置200には1つの汎用管理アプリケーションがインストールされる。当該管理アプリケーションには、複数の電子機器300で共通の処理プログラムが含まれる。また、ブロックチェーンには、処理プログラムとしてプリンター用処理プログラム、スキャナー用処理プログラム、プロジェクター用処理プログラム等、電子機器300の種類に特有の処理プログラムが書き込まれる。これらの処理プログラムは、上述した例と同様に、提供装置100によって登録のためのトランザクションが発行されたプログラムである。
【0079】
4.3 提供装置側で処理装置が処理コマンドに対応するか否かを判定
また図8を用いて上述した例では、処理装置200において、当該処理装置200が処理コマンドに対応しているか否かの判定が行われた。この場合、提供装置100は、処理装置200が処理コマンドに対応するか否かを考慮することなく、処理コマンドと処理プログラムを対応付けてブロックチェーンに登録するためのトランザクションを発行する。
【0080】
ただし、処理装置200が処理コマンドに対応するか否かの判定処理は、提供装置100で行われてもよい。提供装置100の処理部110は、電子機器300に対応して設けられる処理装置200が、処理コマンドに対応しているかを判定する。そして処理部110は、処理装置200が処理コマンドに対応していない場合、処理コマンドに対応する処理プログラムをブロックチェーンに登録するためのトランザクションを生成する。このようにすれば、処理装置200の対応状況に応じて、処理プログラムの登録処理を行うか否かを決定できる。具体的には、処理装置200が処理コマンドに対応している場合、提供装置100は、処理コマンドのみを送信し、処理プログラムの送信を省略可能である。
【0081】
例えば、処理装置200は、予め自身が対応する処理コマンドのバージョン情報、又は、自身の能力情報、又はバージョン情報と能力情報の組み合わせを、提供装置100に送信する。処理装置200は、バージョン情報や能力情報をブロックチェーンに登録するためのトランザクションを発行してもよいし、ブロックチェーンとは異なる経路でバージョン情報等を提供装置100に送信してもよい。提供装置100は、図8のS203の例と同様に、バージョン情報及び能力情報の少なくとも一方に基づいて、処理装置200が処理コマンドに対応しているか否かを判定する。
【0082】
4.4 処理コマンドと処理プログラムの対応付けの変形例
また以上では、提供装置100は処理コマンドと処理プログラムを同時にブロックチェーンに登録する処理を行う例を示した。例えば、処理コマンドと処理プログラムの両方を含むトランザクションを発行することによって、処理コマンドと処理プログラムの関連付けを行う。
【0083】
ただし、処理装置200が処理コマンドを受信した際に、処理装置200において当該処理コマンドに対応する処理プログラムを特定可能であればよく、処理コマンドと処理プログラムは同時に登録されるものには限定されない。
【0084】
図11は、ブロックチェーンの構成を説明する図である。例えば所与の処理コマンドに対応する処理プログラムの初回登録時は、提供装置100は、処理コマンドと処理プログラムを同時にブロックチェーンに登録する処理を行う。この処理によって追加されたブロックがブロックBである。ブロックC及びブロックDは、所与のデータを含むブロックである。図4を用いて上述したように、ブロックCは親ブロックであるブロックBのハッシュ値を含み、ブロックDは親ブロックであるブロックCのハッシュ値を含む。なお図11では省略しているが、ブロックBがジェネシスブロックでない場合、ブロックBは親ブロックのハッシュ値を含む。その後、同じ処理プログラムに対応する処理コマンドが、再度ブロックチェーンに登録される場合を考える。その際、提供装置100は、処理コマンドとともに、ブロックBを特定する情報をブロックチェーンに登録するトランザクションを発行する。ブロックBを特定する情報とは、例えばブロックBのブロックヘッダーのハッシュ値である。この処理によって追加されたブロックがブロックEである。ブロックEに含まれるブロックBのハッシュ値は、処理プログラムを含むブロックを特定するための情報であり、親ブロックのハッシュ値とは異なる。具体的には、ブロックEは、親ブロックであるブロックDのハッシュ値を含む。
【0085】
ブロックチェーンでは、各ノードは最初のブロックから最新のブロックまで参照可能である。そのため、ブロックBに処理プログラムが書き込まれた場合、処理装置200は当該処理プログラムを任意のタイミングで実行できる。図11の例であれば、ブロックEが追加されることで、所与の処理装置200がブロックEの処理コマンドの実行を試行する。処理装置200が処理コマンドに対応していない場合、処理装置200はブロックEに含まれるブロックBのハッシュ値に基づいて処理プログラムを特定し、実行環境で実行することが可能である。このようにすれば、ブロックチェーン内で同一の処理プログラムが重複して書き込まれることを抑制できる。
【0086】
さらに言えば、処理プログラムの初回書き込みにおいても、当該処理プログラムは処理コマンドと同時に書き込まれる必要はない。例えば、提供装置100において新たな処理プログラムが作成された場合、処理コマンドの実行タイミングとは関係なく、当該処理プログラムをブロックチェーンに登録するためのトランザクションが発行される。書き込まれた処理プログラムに対応する処理コマンドは、初回及び2回目以降のいずれの書き込みにおいても、図11のブロックEと同様に、処理プログラムの参照情報が関連付けられる。以上のように、本実施形態における処理プログラムと処理コマンドの関連付けは、種々の態様により実現可能である。
【0087】
また、バージョンアップを行うことなく未知の処理コマンドに対応するためには、処理プログラムがブロックチェーンで配信可能であればよい。
【0088】
図12は、本実施形態に係る処理システム10における通信経路の例を説明する図である。図12に示すように、提供装置100と処理装置200は、それぞれブロックチェーンネットワークNWのノードである。提供装置100は、処理プログラムをブロックチェーンに登録するためのトランザクションを発行し、当該処理プログラムはブロックチェーンに書き込まれる。
【0089】
また図12の例では、提供装置100と処理装置200は、ブロックチェーンネットワークNWを介さない通信経路による通信が可能である。そして提供装置100は、当該通信経路を用いて、処理コマンドを処理装置200に送信する。処理装置200は、自身が受信した処理コマンドに対応するか否かを判定し、対応しない場合はブロックチェーンの処理プログラムを実行環境で実行する。例えば提供装置100は、処理コマンドを送信する際に、対応する処理プログラムを含むブロックのハッシュ値の情報を併せて送信する。このような態様でも、処理コマンドと処理プログラムの関連付けが可能であり、処理装置200は、バージョンアップを行うことなく未知の処理コマンドに対応できる。
【0090】
本実施形態の提供装置は、ブロックチェーンを用いたネットワークとの通信を行う通信部と、通信部を制御する処理部と、を含む。処理部は、管理対象である電子機器を制御するための処理プログラムを、ブロックチェーンに登録するためのトランザクションを生成し、生成したトランザクションを通信部を介してネットワークに発行する。
【0091】
本実施形態では、電子機器を制御するための処理プログラムを、ブロックチェーンに登録するための処理が行われる。処理プログラムがブロックチェーンに書き込まれることによって、当該処理プログラムは、ブロックチェーンを用いたネットワークの各ノードにおいて実行可能となる。これにより、ブロックチェーンを用いて電子機器の管理を適切に実行することが可能になる。
【0092】
また本実施形態では、処理プログラムは、電子機器の設定を行うプログラムであってもよい。
【0093】
このようにすれば、ブロックチェーンを用いて電子機器の設定を適切に実行することが可能になる。
【0094】
また本実施形態では、処理部は、処理プログラムをスマートコントラクトとしてブロックチェーンに登録するためのトランザクションを生成してもよい。
【0095】
このようにすれば、ブロックチェーン技術におけるスマートコントラクトとして、処理プログラムを提供することが可能になる。
【0096】
また本実施形態では、処理部は、電子機器を制御するための処理コマンドを処理プログラムに関連づけて、ブロックチェーンに登録するためのトランザクションを生成してもよい。
【0097】
このようにすれば、処理プログラムに対応する処理コマンドを、ブロックチェーンを用いて提供することが可能になる。
【0098】
また本実施形態では、処理部は、電子機器に対応して設けられる処理装置が、処理コマンドに対応しているかを判定し、処理装置が処理コマンドに対応していないと判定した場合、処理コマンドに対応する処理プログラムをブロックチェーンに登録するためのトランザクションを生成してもよい。
【0099】
このようにすれば、処理装置が処理コマンドに対応しているか否かを提供装置において判定し、判定結果に応じて適切に処理プログラムを提供することが可能になる。
【0100】
また本実施形態の処理システムは、上記のいずれかに記載の提供装置と、電子機器に対応して設けられ、ブロックチェーンから処理プログラムを取得して当該処理プログラムを実行する処理装置と、を含む。
【0101】
このようにすれば、ブロックチェーンを用いて処理プログラムの提供及び実行を行うことによって、電子機器を制御するシステムを実現できる。
【0102】
また本実施形態では、処理装置は、提供装置から電子機器を制御するための処理コマンドを受信し、受信した処理コマンドに自身が対応しているか否かを判定し、処理コマンドに対応していないと判定した場合、ブロックチェーンから処理コマンドに対応する処理プログラムを取得してもよい。
【0103】
このようにすれば、処理装置が処理コマンドに対応しているか否かを処理装置において判定し、判定結果に応じて適切に処理プログラムを実行することが可能になる。
【0104】
また本実施形態では、処理装置は、処理プログラムの実行結果を、ブロックチェーンに登録するためのトランザクションを生成する処理を行ってもよい。
【0105】
このようにすれば、処理プログラムの実行結果をブロックチェーンに書き込むことが可能になる。例えば、処理コマンドの送信元のノードにおいて、当該処理コマンドに対応する処理プログラムの実行結果を確認することが可能になる。
【0106】
また本実施形態では、処理装置は、複数の種類の電子機器に共通の処理プログラムを記憶する記憶部を含み、処理装置は、電子機器の種類に応じた処理プログラムを、ブロックチェーンから取得してもよい。
【0107】
このようにすれば、複数の種類の電子機器が制御対象となる場合であっても、電子機器の制御を効率的に実行することが可能になる。
【0108】
また本実施形態では、処理プログラムは、情報の収集コマンドを実行するプログラムであり、処理装置は、収集コマンドの実行結果である電子機器の管理情報を、ブロックチェーンに登録するためのトランザクションを生成してもよい。
【0109】
このようにすれば、情報の収集コマンドを実行することによって取得した管理情報を、ブロックチェーンに書き込むことが可能になる。
【0110】
また本実施形態では、提供装置、及び、処理装置は、処理プログラムをブロックチェーンに登録するためのトランザクションと、管理情報をブロックチェーンに登録するためのトランザクションとで、異なるコンセンサスアルゴリズムを用いてもよい。
【0111】
このようにすれば、ブロックチェーンへの書き込み対象となる情報に応じて、コンセンサスアルゴリズムを柔軟に変更することが可能になる。例えば、トランザクションの発行からブロックチェーンへの書き込みまでの時間を調整することが可能になる。
【0112】
また本実施形態では、提供装置の処理部は、ブロックチェーンに書き込まれた管理情報に基づいて、アラート処理又はレポート情報生成処理を行ってもよい。
【0113】
このようにすれば、提供装置において、管理情報に基づく種々の処理を実行することが可能になる。
【0114】
また本実施形態では、提供装置の処理部は、ブロックチェーンに書き込まれた管理情報に基づいて、電子機器の使用状況に応じた課金処理を行ってもよい。
【0115】
このようにすれば、提供装置において、管理情報に基づく種々の処理を実行することが可能になる。
【0116】
また本実施形態の通信方法は、ブロックチェーンを用いたネットワークにおける通信方法であって、管理対象である電子機器に対する処理コマンドを実行するための処理プログラムを、ブロックチェーンに登録するためのトランザクションを生成し、生成したトランザクションをネットワークに発行する。
【0117】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また本実施形態及び変形例の全ての組み合わせも、本発明の範囲に含まれる。また提供装置、処理装置等の構成・動作も本実施形態で説明したものに限定されず、種々の変形実施が可能である。
【符号の説明】
【0118】
10…処理システム、21…サーバーシステム、22…クライアント装置、23…管理装置、31…プリンター、32…スキャナー、33…プロジェクター、100…提供装置、110…処理部、120…通信部、200…処理装置、300…電子機器、NW…ブロックチェーンネットワーク
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12