2020-012543
システムおよび処理方法
- 審判番号
- 2020-012543
- 法域
- 特許
- 審判種別
- 拒絶査定不服審判(拒絶査定不服の審決)
- 出願番号
- 特願2019-127894外部サイト(J-PlatPat)へ移動します
- 請求日
- 2020年09月08日
- 審決日
- 2021年03月19日
- 公報発行日
- 2022年02月25日
- 結論
- 請求不成立
- 当事者
- 【請求人】株式会社三菱UFJ銀行
- 【請求人代理人】特許業務法人高橋・林アンドパートナーズ
- 分類
- P18 .121-Z (G06F) / P18 .575-Z (G06F)
- 根拠条文(結論部分から自動抽出・参考)
- 特許法29条2項
- 条文(本文から自動抽出・参考)
- 特許法第29条第2項、特許法第17条の2第5項、特許法第17条の2第6項
- データ出所
- 審決公報(XML)
事件の表示
結論
理由
目次 ▾ 11項目
第1 手続の経緯
折りたたみ中(クリックで表示)
本願は,令和1年7月9日の出願であって,その手続の経緯は以下のとおりである。
第2 令和2年9月8日にされた手続補正についての補正の却下の決定
[補正の却下の決定の結論]
令和2年9月8日にされた手続補正(以下,「本件補正」という。)を却下する。
[理由]
1 本件補正について(補正の内容)
(1)本件補正後の特許請求の範囲の記載
本件補正により,特許請求の範囲の請求項の記載は,次のとおり補正された。(下線部は,補正箇所である。以下,この特許請求の範囲に記載された請求項を「補正後の請求項」という。)
「 【請求項1】管理主体が存在しないパブリック型ネットワークにおいて台帳を分散して記録する複数のノードの少なくとも1つに対し、トランザクションのリクエストを送信する複数のプロセスであって、設定されるプロセス多重度に応じた複数のプロセスを生成する生成部と、トランザクションの指示を受け付け、前記複数のプロセスのいずれかに当該トランザクションのリクエスト送信を割り当てる割当部と、を備えるシステム。【請求項2】続きを表示(全23行)前記複数のプロセスは、第1プロセスおよび第2プロセスを含み、前記第1プロセスが前記リクエストを送信するノードは、前記第2プロセスが前記リクエストを送信するノードと同一である、請求項1に記載のシステム。【請求項3】前記割当部は、ラウンドロビン方式により前記トランザクションのリクエスト送信を割り当てる、請求項1または請求項2に記載のシステム。【請求項4】前記複数のノードで形成されるネットワークにおける所定のトランザクションのリクエストに対する平均スループットと前記プロセス多重度との関係において、当該プロセス多重度の増加に対する平均スループットの増加の割合が、プロセス多重度が第1値のときに第1割合であり、当該第1値より大きい第2値以上であるときに前記第1割合より小さい第2割合であり、前記複数のプロセスの数は、前記第2値よりも小さい数で設定される、請求項1から請求項3のいずれかに記載のシステム。【請求項5】コンピュータが実行する処理方法であって、トランザクションの指示を受け付け、管理主体が存在しないパブリック型ネットワークにおいて台帳を分散して記録する複数のノードの少なくとも1つに対し、トランザクションのリクエストを送信する複数のプロセスであって、設定されるプロセス多重度に応じた複数のプロセスのいずれかに、前記指示に基づくトランザクションのリクエスト送信を割り当てる、処理方法。【請求項6】前記複数のプロセスは、第1プロセスおよび第2プロセスを含み、前記第1プロセスが前記リクエストを送信するノードは、前記第2プロセスが前記リクエストを送信するノードと同一である、請求項5に記載の処理方法。【請求項7】前記トランザクションのリクエスト送信を割り当てるときには、ラウンドロビン方式を用いる、請求項5または請求項6に記載の処理方法。【請求項8】前記複数のノードで形成されるネットワークにおける所定のトランザクションのリクエストに対する平均スループットと前記プロセス多重度との関係において、当該プロセス多重度の増加に対する平均スループットの増加の割合が、プロセス多重度が第1値のときに第1割合であり、当該第1値より大きい第2値以上であるときに前記第1割合より小さい第2割合であり、前記複数のプロセスの数は、前記第2値よりも小さい数で設定される、請求項5から請求項7のいずれかに記載の処理方法。」
(2)本件補正前の特許請求の範囲
本件補正前の,令和2年1月6日にされた手続補正により補正された特許請求の範囲の請求項の記載は次のとおりである。(以下,この特許請求の範囲に記載された請求項を「補正前の請求項」という。)
「 【請求項1】台帳を分散して記録する複数のノードの少なくとも1つに対し、トランザクションのリクエストを送信する複数のプロセスを生成する生成部と、トランザクションの指示を受け付け、前記複数のプロセスのいずれかに当該トランザクションのリクエスト送信を割り当てる割当部と、を備えるシステム。【請求項2】続きを表示(全27行)前記複数のプロセスは、第1プロセスおよび第2プロセスを含み、前記第1プロセスが前記リクエストを送信するノードは、前記第2プロセスが前記リクエストを送信するノードと同一である、請求項1に記載のシステム。【請求項3】前記割当部は、ラウンドロビン方式により前記トランザクションのリクエスト送信を割り当てる、請求項1または請求項2に記載のシステム。【請求項4】前記複数のノードで形成されるネットワークにおける所定のトランザクションのリクエストに対する平均スループットとプロセス多重度との関係において、プロセス多重度の増加に対する平均スループットの増加の割合が、プロセス多重度が第1値のときに第1割合であり、当該第1値より大きい第2値以上であるときに前記第1割合より小さい第2割合であり、前記複数のプロセスの数は、前記第2値よりも小さい数で設定される、請求項1から請求項3のいずれかに記載のシステム。【請求項5】前記複数のノードで形成されるネットワークは、コンソーシアム型である、請求項1から請求項4のいずれかに記載のシステム。【請求項6】コンピュータが実行する処理方法であって、トランザクションの指示を受け付け、台帳を分散して記録する複数のノードの少なくとも1つに対し、トランザクションのリクエストを送信する複数のプロセスのいずれかに、前記指示に基づくトランザクションのリクエスト送信を割り当てる、処理方法。【請求項7】前記複数のプロセスは、第1プロセスおよび第2プロセスを含み、前記第1プロセスが前記リクエストを送信するノードは、前記第2プロセスが前記リクエストを送信するノードと同一である、請求項6に記載の処理方法。【請求項8】前記トランザクションのリクエスト送信を割り当てるときには、ラウンドロビン方式を用いる、請求項6または請求項7に記載の処理方法。【請求項9】前記複数のノードで形成されるネットワークにおける所定のトランザクションのリクエストに対する平均スループットとプロセス多重度との関係において、プロセス多重度の増加に対する平均スループットの増加の割合が、プロセス多重度が第1値のときに第1割合であり、当該第1値より大きい第2値以上であるときに前記第1割合より小さい第2割合であり、前記複数のプロセスの数は、前記第2値よりも小さい数で設定される、請求項6から請求項8のいずれかに記載の処理方法。【請求項10】前記複数のノードで形成されるネットワークは、コンソーシアム型である、請求項6から請求項9のいずれかに記載の処理方法。」
2 補正の適否
本件補正は,補正前の請求項5及び請求項10を削除するとともに,補正前の請求項1及び請求項6に記載された発明を特定するために必要な事項である,「台帳を分散して記録する複数のノード」について,「管理主体が存在しないパブリック型ネットワークにおいて」との限定を付加し,同じく補正前の請求項1及び請求項6に記載された発明を特定するために必要な事項である,「複数のプロセス」について,「設定される多重度に応じた」との限定を付加して,それぞれ補正後の請求項1及び請求項5としたものである。
そして,補正前の請求項1及び請求項6に記載された発明と,補正後の請求項1及び請求項5に記載される発明の産業上の利用分野及び解決しようとする課題が同一であるから,本件補正は,特許法第17条の2第5項2号の特許請求の範囲の減縮を目的とするものに該当する。
そこで,本件補正後の請求項1に記載される発明(以下「本件補正発明」という。)が同条第6項において準用する同法第126条第7項の規定に適合するか(特許出願の際独立して特許を受けることができるものであるか)について,以下,検討する。
(1)本件補正発明
本件補正発明は,上記「1(1)」に記載された下記のとおりのものである(再掲)。
「 管理主体が存在しないパブリック型ネットワークにおいて台帳を分散して記録する複数のノードの少なくとも1つに対し、トランザクションのリクエストを送信する複数のプロセスであって、設定されるプロセス多重度に応じた複数のプロセスを生成する生成部と、トランザクションの指示を受け付け、前記複数のプロセスのいずれかに当該トランザクションのリクエスト送信を割り当てる割当部と、を備えるシステム。」
(2)引用文献等の記載事項
折りたたみ中(クリックで表示)
(2-1)引用文献1に記載されている技術的事項及び引用発明
ア 原査定の拒絶の理由で引用された,本願の出願日前に頒布された又は電気通信回線を通じて公衆に利用可能となった引用文献である,『佐藤 竜也,ブロックチェーン基盤Hyperledger Fabricの性能評価と課題整理,電子情報通信学会技術研究報告,一般社団法人電子情報通信学会,2017年 2月24日,第116巻,第491号,p.167-174』(2017年2月24日発行。以下,「引用文献1」という。)には,関連する図面とともに,以下の技術的事項が記載されている。
(当審注:下線は,参考のために当審で付与したものである。以下同様。)
A 「1. はじめにブロックチェーン(Blockchain, BC)技術は,破壊的イノベーションとして金融やInternet of Things(IoT)等の非常に幅広い分野への応用が期待され,注目を集めている.例えば,金融分野では,従来は第三者機関を経由して実施されてきた取引を,BC技術を用いて利用者間(P2P)の直接取引で代替することで,取引コストの削減ができると期待されている.文献[1]では,様々な分野にBC技術を応用することで,将来的に日本国内の67兆円もの市場が影響を受ける可能性があるという試算結果が示されている.BC技術に大きな期待が集まっている一方で,現状ではセキュリティ面やシステム性能面をはじめ,エンタープライズでの実適用には課題が多いといわれている.そのため,BCの実適用に向けては,BC基盤やそのオープンソースソフトウェア(Open Source Software, OSS)実装における現時点での技術課題の明確化が必要である.そこで本研究では,BC基盤のOSSプロジェクトであるHyperledger[8]の基盤実装の一つであるFabric[11]について性能を中心とした評価を行い,BC基盤およびFabricの現時点での実力を明らかにするとともに,技術的な課題を抽出にすることを目的とする.」
(第167頁左欄第1行~右欄第5行)
B 「2.2 BC基盤 Hyperledger FabricHyperledgerプロジェクトは,Linux Foundationが設立したエンタープライズで利用可能なOSSのBC基盤の開発を目的としたプロジェクトである[8].同プロジェクトは,2016年2月に設立され,金融機関をはじめとしたユーザ企業やITベンダー等,計100社以上が参画している.弊社も,同プロジェクトの設立時からプレミアメンバーとして参画し,コミュニティ活動に参加している.Hyperledgerプロジェクトでは,BCのユースケース,基盤の機能要件およびアーキテクチャがホワイトペーパーにまとめられている[9].また,その実現に向けて,複数のベンダーから基盤実装が提案されている.IBM社とDAH(Digital Asset Holdings)社の共同提案であるFabric[11]はその基盤実装の一つである.Fabricは2016年4月に公開され,2017年1月現在で開発者プレビュー版v0.6までリリースされている.Fabricは前述のホワイトペーパーに対応したアーキテクチャを実装している.Fabricは,様々な分野でのユースケースに対応可能とするために汎用性の高いBC基盤機能を提供する.また,現在は,コンソーシアムあるいはプライベート型での利用を想定したBC基盤となっている.Fabricの主な機能的特徴として,具体的には以下が挙げられる.」
(第168頁右欄第5行~第26行)
C 「3. Hyperledger Fabricの評価3.1 評価の目的FabricおよびBC基盤の課題抽出に向けて,以下を主な目的として評価を行う.目的1: Fabricの現実装における実力(主に性能)の把握続きを表示(全14行)Fabricは公開されて間もないため,その品質(特に非機能面)が未知数であった.そのため,実機上に環境を構築して動作検証を行い,さらには性能を測定することで,Fabricの現実装における実力を把握する必要がある.性能評価においては,より本格的なBCネットワークを構築することが望ましい.目的2: Fabric/BC基盤の性能ボトルネック抽出方法の検討性能限界や傾向を把握するためには,そのボトルネック箇所を特定することが重要である.しかし,Fabricでは,そのような調査や分析を行う手段が整備されていない.そのため,性能ボトルネックの抽出方法の検討が必要である.Fabric自体のバージョンアップ時等には,再度性能評価を行うことが予想されるため,ボトルネック抽出は繰り返し実行できるようにシステム化することが望ましい.3.2 評価方法3.2.1 概要先に示した評価の目的1と2を達成するために,以下の評価方針を採用した.目的1の達成に向けた方針性能評価に適した本格的な評価環境として,マルチホスト上にまたがった環境上にFabricによるBCネットワークを構築し,その上で性能測定を行う.目的2の達成に向けた方針Fabric(およびBC基盤)の性能ボトルネックを容易に抽出可能とするためのモニタリング環境も合わせて整備する.」
(第169頁右欄第9行~第37行)
D 「3.2.3 測定方法クライアントからREST経由でBCネットワークにアクセスし,チェーンコードを実行して負荷をかけることで性能測定を行った.チェーンコードには,Fabricの公式プロジェクトに付属のサンプルチェーンコード「map」を利用する.本サンプルチェーンコードは簡易キーバリューストアとして動作する.なお,負荷をかける際には,複数のクライアントからの同時アクセスを模擬するため,マルチスレッドでトランザクションを並列実行した.クライアントによる負荷生成ツールプログラムの処理の流れは以下のとおりである.1. ユーザログイン(セキュリティ機能ON時のみ)2. mapチェーンコードをBC上にデプロイ3. スレッド毎に実行トランザクション(invoke)を指定した回数繰り返す(並列実行)4. 全スレッドの実行トランザクションが完了するまで(レスポンスがかえってくるまで)待つ5. スレッド毎に参照トランザクション(query) を指定した回数繰り返す(並列実行)6. 全スレッドの参照トランザクションが完了するまで(レスポンスがかえってくるまで)待つ」
(第171頁左欄第3行~第23行)
E 「3.3 結果と考察図3にセキュリティ機能OFF時の,図4にセキュリティ機能ON時のinvoke/queryスループット測定結果を示す.図に示す通り,セキュリティ機能OFF/ON時ともに,invokeとqueryの両方で,並列スレッド数を増やしていくとスループットも増加する傾向にあった.ただし,ある程度並列度を増やすとスループットは頭打ちとなった.また,スループットが頭打ちになった後も,それ以上に並列度を増やしていくと,内部的にエラーが発生する等,安定稼働が困難となる場合が見受けられた.つまり,高負荷を与えた場合には,挙動が安定しなくなる場合があるため,フロント側でリクエストの流量制御を行う等の対策が必要となり得る.」
(第171頁右欄第27行~第39行)
F 「[図:0001381342000001.jpg]」
G 「[図:0001381342000002.jpg]」
イ 上記A~Gの,特に下線部の記載に注目すると,引用文献1には次の発明(以下,「引用発明」という。)が記載されているといえる。
「ブロックチェーン(Blockchain, BC)基盤のOSSプロジェクトであるHyperledgerの基盤実装の一つであるFabricについて性能を中心とした評価を行うものであって,Fabricは,コンソーシアムあるいはプライベート型での利用を想定したBC基盤であり,マルチホスト上にまたがった環境上にFabricによるBCネットワークを構築し,その上で性能測定を行うものであって,クライアントからREST経由でBCネットワークにアクセスし,チェーンコードを実行して負荷をかけることで性能測定を行うものであり,負荷をかける際には,複数のクライアントからの同時アクセスを模擬するため,マルチスレッドでトランザクションを並列実行するものであって,クライアントによる負荷生成ツールプログラムの処理の流れは,スレッド毎に実行トランザクション(invoke)を指定した回数繰り返す(並列実行)ことを含むものであり,スループット測定結果は,並列スレッド数を増やしていくとスループットも増加する傾向にあるが,ある程度並列度を増やすとスループットは頭打ちとなり,スループットが頭打ちになった後も,それ以上に並列度を増やしていくと,挙動が安定しなくなる場合があるため,フロント側でリクエストの流量制御を行う等の対策が必要となり得る,BC基盤 Hyperledger Fabricの性能評価。」
(2-2)引用文献2に記載されている技術的事項
原査定の拒絶の理由で引用された,本願の出願日前に頒布された又は電気通信回線を通じて公衆に利用可能となった引用文献である特開2019-14135号公報(平成31年1月31日出願公開。以下,「引用文献2」という。)には,関連する図面とともに,以下の技術的事項が記載されている。
H 「【0008】プロセッサー11は、画像形成装置10の動作に必要な演算及び制御などの処理を行うコンピューターの中枢部分に相当する。プロセッサー11は、ROM12又は補助記憶デバイス14などに記憶されたシステムソフトウェア、アプリケーションソフトウェア又はファームウェアなどのプログラムに基づいて、画像形成装置10の各種の機能を実現するべく各部を制御する。プロセッサー11は、例えば、CPU(central processing unit)、MPU(micro processing unit)、SoC(system on a chip)、DSP(digital signal processor)又はGPU(graphics processing unit)などである。あるいは、プロセッサー11は、これらの組み合わせである。プロセッサー11は、好ましくは、マルチコアCPU、又はGPUとCPUとを備えるプロセッサーである。複数のコアを備えるプロセッサーは、マルチスレッド又はマルチプロセスなどの並行処理を並列処理することで高速に処理することが可能なためである。なお、並行処理とは、複数のスレッド又はプロセスなどを、時分割などによって切り替えながら同時的に処理すること、あるいは並列処理することなどである。また、並列処理とは、複数のスレッド又はプロセスなどを、複数のコアで同時に処理することなどである。」
I 「【0067】プロセッサー11は、上記の実施形態においてマルチスレッドで行っている処理をマルチプロセスで行っても良い。」
(2-3)引用文献3に記載されている技術的事項
原査定の拒絶の理由で引用された,本願の出願日前に頒布された又は電気通信回線を通じて公衆に利用可能となった引用文献である,特開2010-278639号公報(平成22年12月9日出願公開。以下「引用文献3」という。)には,関連する図面とともに,以下の技術的事項が記載されている。
J 「【0045】並列処理の手法としては、マルチスレッドやマルチプロセスを用い、又はプログラム内での繰返し処理によって行うことができる。図9は、経路多重度3の場合の疎通確認をマルチスレッドで行う一例を示している。このスレッドは、経路多重度数だけ起動され、第1の多重経路のスレッドと第2の多重経路のスレッドと第3の多重経路のスレッドとで、それぞれ異なる疎通経路について同時に疎通確認を行う。」
(2-4)参考文献に記載されている技術的事項
ア 本願の出願日前に頒布された又は電気通信回線を通じて公衆に利用可能となった文献である,特開2015-88176号公報(平成27年5月7日出願公開。以下「参考文献」という。)には,関連する図面とともに,以下の技術的事項が記載されている。
K 「【0002】情報処理装置(コンピュータ)は、例えば、コンピュータプログラム(略してプログラムとも記す)を実行する際に、プログラムを実行する単位である複数のプロセスを生成する。さらに、このような場合には、情報処理装置は、プロセス内に、処理を実行する単位である複数のスレッドを生成する。」
L 「【0018】<第1実施形態>図1は、本発明に係る第1実施形態の情報処理装置の構成を簡略化して表すブロック図である。第1実施形態の情報処理装置101は、例えばCPU(Central Processing Unit)102を備えたコンピュータである。CPU102は、記憶装置(図示せず)に格納されているコンピュータプログラム(プログラム)を読み出し当該プログラムを実行することによって、情報処理装置101の全体的な動作を制御する。【0019】この第1実施形態では、情報処理装置101(CPU102)は、プログラムを実行する単位である複数のプロセスを生成する。プロセスは、CPU102の機能部の一つであり、当該プロセスの動作(処理)を管理する機能を備えている。例えば、プロセス(CPU102)は、当該プロセスが受けたリクエストに応じた処理を実行する単位であるスレッドを生成(設定)する。プロセスは、通常、複数の処理を実行することから、複数のスレッドを生成可能となっている。当該プロセスが持つことができるスレッドの上限数は予め設定されている。」
M 「【0064】図3は、第4実施形態の情報処理装置の構成を簡略化して表すブロック図である。この第4実施形態の情報処理装置は、サーバ装置(コンピュータ)10であり、情報通信網(ネットワーク)70を介して複数のクライアント端末30に接続されている。また、サーバ装置10はデータベース60に接続されている。【0065】クライアント端末30は、利用者が情報を入力するためのキーボード等の入力手段と、各種の情報を表示するためのディスプレイ等の出力手段とを備える。ここで、クライアント端末30としては、例えば、パーソナルコンピュータ(パソコン)、タブレット型端末またはPDA(Personal Digital Assistant)端末が考えられるが、これらに限定されない。続きを表示(全16行)【0066】サーバ装置10は通信部40を備えており、当該通信部40によって、サーバ装置10は、クライアント端末30とデータの送受信を行う。【0067】サーバ装置10は、さらに、例えばCPUを有し、当該CPUにより実現される機能部として、プロセス11と、障害対策部100とを備えている。さらに、サーバ装置10は、記憶媒体であるメモリ50を備えている。【0068】プロセス11は、コンピュータプログラム(プログラム)の実行単位であり、プログラムを実行する際に生成される。この生成されるプロセス11には、メモリ50内に、専用の記憶領域が割り当てられる。なお、サーバ装置10には、通常、複数のプロセス11が生成されるが、ここでは、図示の簡略化のために、一つのプロセス11のみ表すこととする。【0069】プロセス11は、管理部13を備えている。この管理部13は、プロセス11の動作を管理する機能を備えている。例えば、管理部13は、プロセス起動時に、予め初期値として定められた複数の待機状態のスレッド12を生成する。また、管理部13は、各スレッド12に、各スレッド12を識別するスレッド識別情報を付与する。さらに、管理部13は、プロセス11に対して割り当てられたメモリ50内の記憶領域から、それら生成した各スレッド12に、予め定められた容量を持つ記憶領域を割り当てる。【0070】・・・(中略)・・・【0072】通信部40は、クライアント端末30から受け取ったリクエストを、複数のプロセス11のうちの何れのプロセスに渡すかを判断する機能を備えている。リクエストとは、例えば、データベース60内のデータを検索する要求や、データを更新する要求である。」
N 「図3[図:0001381342000003.jpg]」
イ 上記K~Nの,特に下線部の記載に注目すると,参考文献には次の技術が記載されているといえる。
「情報処理装置は,プログラムを実行する際に,プログラムを実行する単位である複数のプロセスを生成し,さらに,プロセス内に,処理を実行する単位である複数のスレッドを生成するものであって,プロセスは,当該プロセスが受けたリクエストに応じた処理を実行する単位であるスレッドを生成(設定)するものであり,情報処理装置は,サーバ装置であり,情報通信網を介して複数のクライアント端末に接続されており,サーバ装置は通信部を備えており,当該通信部によって,サーバ装置は,クライアント端末とデータの送受信を行うものであり,プロセスは,管理部を備えており,管理部は,プロセス起動時に,予め初期値として定められた複数の待機状態のスレッドを生成するものであり,通信部は,クライアント端末から受け取ったリクエストを,複数のプロセスのうちの何れのプロセスに渡すかを判断する機能を備えている,情報処理装置。」
(3)対比
ア 本件補正発明と引用発明とを対比する。
(ア)引用発明の「ブロックチェーン(Blockchain, BC)基盤のOSSプロジェクトであるHyperledgerの基盤実装の一つであるFabric」は,ブロックチェーン基盤実装の一つであるところ,ブロックチェーンは,分散型台帳技術の一つであり,ネットワークにおいて台帳を分散して記録する複数のノードを備えるものであるから,引用発明の,ブロックチェーン基盤実装である前記「Fabric」も,ネットワークにおいて台帳を分散して記録する複数のノードを備えるものであることは明らかである。
そして,引用発明は,「クライアントからREST経由でBCネットワークにアクセスし,チェーンコードを実行して負荷をかけることで性能測定を行うものであり,負荷をかける際には,複数のクライアントからの同時アクセスを模擬するため,マルチスレッドでトランザクションを並列実行する」ものであって,「ある程度並列度を増やすとスループットは頭打ちとなり,スループットが頭打ちになった後も,それ以上に並列度を増やしていくと,挙動が安定しなくなる場合があるため,フロント側でリクエストの流量制御を行う等の対策が必要となり得る」ものである。
すなわち,引用発明は,「クライアントから」「BCネットワークにアクセスし」て,負荷をかけるために「マルチスレッドでトランザクションを並列実行する」ものであって,さらに,スループットが頭打ちになった後も,それ以上に並列度を増やしていくと,挙動が安定しなくなる場合があるため,「フロント側でリクエストの流量制御を行う」等の対策が必要となり得るものである。
してみると,引用発明において,クライアントからBCネットワークにアクセスして「マルチスレッドでトランザクションを並列実行する」際には,フロント側であるクライアントから,当該トランザクションを並列実行するためのトランザクションのリクエストを,BCネットワーク,すなわち,ブロックチェーンに対して送信していることは明らかであり,これはブロックチェーンを構成する複数のノードの少なくとも一つに対して,前記リクエストを送信することに他ならない。ここで,「マルチスレッド」とは,CPU利用の処理単位であるスレッドを複数生成して並列実行する技術であるから,「マルチスレッドでトランザクションを並列実行する」際には,複数の処理単位を生成し,生成した複数の処理単位を,前述したように,トランザクションを並列実行するためのリクエストとしてブロックチェーンを構成する複数のノードの少なくとも一つに送信することは明らかであり,引用発明は,トランザクションのリクエストを送信する複数の処理単位を生成するための生成部を実質的に備えているといえる。
以上の検討を踏まえると,本件補正発明と引用発明とは,“ネットワークにおいて台帳を分散して記録する複数のノードの少なくとも1つに対し,トランザクションのリクエストを送信する複数の処理単位であって,複数の処理単位を生成する生成部”を備える点で一致している。
(イ)上記(ア)で検討したように,引用発明において,「マルチスレッドでトランザクションを並列実行する」際には,当該トランザクションを並列実行するためのトランザクションのリクエストを,ブロックチェーンのノードの少なくとも一つに対して送信していることは明らかなところ,かかる送信を行うためには,前記マルチスレッドに前記トランザクションのリクエスト送信を割り当てて送信していることも明らかであり,引用発明は,マルチスレッドのいずれかにトランザクションのリクエスト送信を割り当てる割当部を実質的に備えているといえる。
よって,上記(ア)の検討も踏まえると,本件補正発明と引用発明とは,“複数の処理単位のいずれかにトランザクションのリクエスト送信を割り当てる割当部”を備える点で一致している。
(ウ)引用発明は,「クライアントによる負荷生成ツールプログラムの処理の流れは,スレッド毎に実行トランザクション(invoke)を指定した回数繰り返す(並列実行)こと含む」ものであるから,前記「クライアントによる負荷生成ツールプログラム」が負荷を生成することによって「BC基盤 Hyperledger Fabricの性能評価」を行うものである。
そして,「クライアントによる負荷生成ツールプログラム」は,クライアントで実行されるプログラムであるから,かかるプログラムが実行される「クライアント」が,上記(ア)及び(イ)で検討した“生成部”,“割当部”を実質的に備える“システム”であるといえる。
イ 上記(ア)~(ウ)の検討から,本件補正発明と引用発明とは,以下の点で一致し,また,以下の点で相違する。
<一致点>
「 ネットワークにおいて台帳を分散して記録する複数のノードの少なくとも1つに対し,トランザクションのリクエストを送信する複数の処理単位であって,複数の処理単位を生成する生成部と,前記複数の処理単位のいずれかに当該トランザクションのリクエスト送信を割り当てる割当部と,を備えるシステム。」
<相違点1>
本件補正発明は,「管理主体が存在しないパブリック型」ネットワークであるのに対して,引用発明の,ブロックチェーン基盤実装の一つである「Fabric」は,「コンソーシアムあるいはプライベート型での利用を想定したBC基盤」である点。
<相違点2>
本件補正発明は,処理単位が「プロセス」であって,生成部が複数の「プロセス」を生成し,割当部が前記複数の「プロセス」のいずれかにトランザクションのリクエスト送信を割り当てるものであるのに対して,引用発明は,処理単位が「スレッド」である点。
<相違点3>
本件補正発明は,生成部が「設定されるプロセス多重度に応じた」複数のプロセスを生成するものであるのに対して,引用発明は,そのような特定がなされていない点。
<相違点4>
本件補正発明は,割当部が「トランザクションの指示を受け付け」,複数のプロセスのいずれかにトランザクションのリクエスト送信を割り当てるのに対して,引用発明は,そのような特定がなされていない点。
(4)当審の判断
上記相違点について検討する。
ア <相違点1>について
ブロックチェーンネットワークには,「コンソーシアムあるいはプライベート型」の他に,「管理主体が存在しないパブリック型」があることは,本願出願時おける技術常識であるところ,引用発明の,マルチスレッドでトランザクションを並列実行するブロックチェーン基盤が,「コンソーシアムあるいはプライベート型」のブロックチェーンにのみ適用可能であって,「管理主体が存在しないパブリック型」のブロックチェーンには適用できないとする技術的根拠は何ら認められない。
また,本件補正発明が「管理主体が存在しないパブリック型」のネットワークである点に関して,本願明細書には,【0026】に,
「ブロックチェーンネットワーク5においては、上述のように台帳を分散して各ノード510で記録する方式が用いられているが、その過程における具体的な処理は、仕様(基盤ソフトウェア:上述したCPUによって実行されるプログラムに対応)によって様々であって、公知の処理が適用されればよい。したがって、ブロックチェーンネットワーク5における各ノード510の処理の詳細は説明を省略する。この例では、ブロックチェーンネットワークは、管理主体が存在するコンソーシアム型(例えば、Quorum、Hyperledger Fabric等)を想定しているが、管理主体が存在しないパブリック型(例えば、Ethereum等)であっても適用可能である。」(当審注:下線は,参考のために当審で付与したものである。)
と記載されているのみである。
本願明細書の上記記載によれば,本願明細書に記載された実施形態は,「管理主体が存在するコンソーシアム型」を「想定している」ところ,「管理主体が存在しないパブリック型」にも「適用可能」であるとしているものにすぎず,本件補正発明において,ネットワークが「管理主体が存在しないパブリック型」であることに,なんら格別の技術的特徴を認めることはできない。
してみると,引用発明は,「コンソーシアムあるいはプライベート型での利用を想定」しているとはいえ,前述したように,引用発明を「管理主体が存在しないパブリック型」のブロックチェーンには適用できないとする技術的根拠は何ら認められないところ,引用発明を「管理主体が存在しないパブリック型」のネットワークに適用することにも何ら技術的創意は見出せず,当業者であれば適宜実施し得る事項に過ぎないといえる。
イ <相違点2>について
情報処理の技術分野において,並列処理をマルチスレッドやマルチプロセスで実行することは,引用文献2~3に示されるように周知技術である。
してみると,引用発明は,「マルチスレッドでトランザクションを並列実行」しているところ,かかる並列処理を実行する手段として,マルチスレッドに換えて,同じく並列処理の周知技術である「マルチプロセス」を採用することは,当業者が通常の創作活動の範囲内において適宜なし得る事項に過ぎないと認められる。
よって,引用発明において,マルチプロセスを採用して処理単位を「プロセス」とすることは,上記周知技術に基づいて当業者が適宜なし得るものであり,さらに,参考文献に示されるように,プログラムを実行する単位である複数のプロセスを生成し,クライアント端末から受け取ったリクエストを,前記複数のプロセスのうちの何れかのプロセスに割り当てることが,複数のプロセスを用いたプログラム実行における極めて一般的な処理であることも踏まえれば,引用発明にマルチプロセスを採用した際に,生成部が複数の「プロセス」を生成し,割当部が前記複数の「プロセス」のいずれかにトランザクションのリクエスト送信を割り当てるとすることも,当業者であれば当然になし得るものと認められる。
ウ <相違点3>について
引用発明では,「スループットが頭打ちになった後も,それ以上に並列度を増やしていくと,挙動が安定しなくなる場合があるため,フロント側でリクエストの流量制御を行う等の対策が必要となり得る」としており,これはフロント側でリクエスト送信を割り当てるスレッドの数を制限することを示唆するものであって,スレッドの多重度を制限することを示唆するものである。
そして,上記イで検討したとおり,引用発明において,マルチスレッドに換えて「マルチプロセス」を採用することは,当業者であれば適宜なし得る事項に過ぎないと認められるところ,かかるマルチプロセスを採用した場合に,プロセスの多重度を制限するため「プロセスの多重度に応じた」複数のプロセスを生成することは,リクエスト送信を割り当てるスレッドの数を制限するという上記示唆に基づいて,当業者であれば容易に想到し得るものである。
よって,上記イの検討も踏まえると,引用発明において,生成部が「設定されるプロセスの多重度に応じた」複数のプロセスを生成することは,引用文献2~3に記載の上記周知技術,及び引用発明の上記示唆に基づいて,当業者であれば容易になし得るものである。
エ <相違点4>について
引用発明は,「BC基盤 Hyperledger Fabricの性能評価」を行うものであって,「クライアントからREST経由でBCネットワークにアクセスし,チェーンコードを実行して負荷をかけることで性能測定を行うものであり,負荷をかける際には,複数のクライアントからの同時アクセスを模擬するため,マルチスレッドでトランザクションを並列実行する」ものである。
してみると,このように「複数のクライアントからの同時アクセスを模擬するため,マルチスレッドでトランザクションを並列実行する」ことで性能評価がなされた「BC基盤 Hyperledger Fabric」は,かかる性能評価が行われた後,実際のトランザクション処理を実行する際には,クライアントから,実際の「トランザクションの指示を受け付け」て実行するとすることは,当業者であれば当然に行い得るものである。
そして,上記イで検討したように,引用発明において,マルチプロセスを採用することは当業者が適宜なし得る事項と認められるところ,引用発明の「BC基盤 Hyperledger Fabric」を実際のトランザクション処理に用いる場合,「トランザクションの指示を受け付け」て,複数のプロセスのいずれかにトランザクションのリクエスト送信を割り当てることも,当業者であれば当然になし得るものである。
オ 小括
上記ア~エで検討したとおり,<相違点1>~<相違点4>に係る構成は,引用発明,及び引用文献2~3に記載の周知技術に基づいて,当業者が容易に想到し得たものであり,そして,これらの相違点を総合的に勘案しても,本件補正発明の奏する作用効果は,引用発明,及び引用文献2~3に記載の周知技術の奏する作用効果から予測される範囲内のものにすぎず,格別顕著なものということはできない。
したがって,本件補正発明は,引用発明,及び引用文献2~3に記載の周知技術に基づいて,当業者が容易に発明をすることができたものであるから,特許法第29条第2項の規定により,特許出願の際独立して特許を受けることができない。
3 本件補正についてのむすび
本件補正は,特許法第17条の2第6項において準用する同法第126条第7項の規定に違反するので,同法第159条第1項の規定において読み替えて準用する同法第53条第1項の規定により却下すべきものである。
よって,上記補正の却下の決定の結論のとおり決定する。
第3 本願発明について
1 本願発明の認定
令和2年9月8日にされた手続補正は,上記のとおり却下されたので,本願の請求項に係る発明は,令和2年1月6日にされた手続補正により補正された特許請求の範囲の請求項1~10に記載された事項により特定されるものであるところ,その請求項1に係る発明(以下,「本願発明」という。)は,その請求項1に記載された事項により特定される,上記「第2[理由]1(2)」に記載された下記のとおりのものである(再掲)。
「 台帳を分散して記録する複数のノードの少なくとも1つに対し、トランザクションのリクエストを送信する複数のプロセスを生成する生成部と、トランザクションの指示を受け付け、前記複数のプロセスのいずれかに当該トランザクションのリクエスト送信を割り当てる割当部と、を備えるシステム。」
2 原査定の拒絶の理由
原査定の拒絶の理由は,本願発明は,本願の出願日前に頒布された又は電気通信回線を通じて公衆に利用可能となった下記の引用文献A~引用文献C(それぞれ,上記「引用文献1」~「引用文献3」に対応)に記載された技術に基づいて,その出願前にその発明の属する技術の分野における通常の知識を有する者が容易に発明をすることができたものであるから,特許法第29条第2項の規定により特許を受けることができない,というものである。
引用文献A.佐藤 竜也,ブロックチェーン基盤Hyperledger Fabricの性能評価と課題整理,電子情報通信学会技術研究報告,一般社団法人電子情報通信学会,2017年 2月24日,第116巻,第491号,p.167-174
引用文献B.特開2019-014135号公報(周知技術を示す文献)
引用文献C.特開2010-278639号公報(周知技術を示す文献)
3 引用文献
原査定の拒絶の理由に引用された,引用文献A~引用文献C,及びその記載事項は,上記「第2[理由]2(2)(2-1)~(2-3)」に記載したとおりである。
4 対比・判断
(1)本願発明は,上記「第2[理由]2(1)」で検討した本件補正発明の,「台帳を分散して記録する複数のノード」について,「管理主体が存在しないパブリック型ネットワークにおいて」との限定を削除するとともに,本件補正発明の「複数のプロセス」について,「設定される多重度に応じた」との限定を削除したものである。
(2)そうすると,上記「第2[理由]2(3)」における検討内容を踏まえると,本願発明と引用発明とは,以下の点で一致し,また,以下の点で相違する。
<一致点>
「 台帳を分散して記録する複数のノードの少なくとも1つに対し,トランザクションのリクエストを送信する複数の処理単位を生成する生成部と,前記複数の処理単位のいずれかに当該トランザクションのリクエスト送信を割り当てる割当部と,を備えるシステム。」
<相違点a>
本願発明は,処理単位が「プロセス」であって,生成部が複数の「プロセス」を生成し,割当部が前記複数の「プロセス」のいずれかにトランザクションのリクエスト送信を割り当てるものであるのに対して,引用発明は,処理単位が「スレッド」である点。
<相違点b>
本願発明は,割当部が「トランザクションの指示を受け付け」,複数のプロセスのいずれかにトランザクションのリクエスト送信を割り当てるのに対して,引用発明は,そのような特定がなされていない点。
(3)そして,上記<相違点a>及び<相違点b>は,それぞれ上記「第2[理由]2(3)」における<相違点2>及び<相違点4>と同じであることから,上記「第2[理由]2(4)」で検討したように,上記<相違点a>及び<相違点b>は,いずれも格別のものではなく,本願発明は,上記引用発明,及び上記引用文献2~3に記載の周知技術に基づいて,当業者が容易に発明をすることができたものである。
第4 むすび
以上のとおり,本願の請求項1に係る発明は,特許法第29条第2項の規定により特許を受けることができないものであるから,その余の請求項に係る発明について検討するまでもなく,本願は拒絶すべきものである。
よって,結論のとおり審決する。
審決本文(J-PlatPat)
J-PlatPatの審決検索トップを開きます。番号入力で「審判番号」を選び、下の番号を貼り付けて検索してください。
2020-012543