• ポートフォリオ機能


ポートフォリオを新規に作成して保存
既存のポートフォリオに追加保存

  • この表をプリントする
PDF PDFをダウンロード
審決分類 審判 査定不服 5項独立特許用件 特許、登録しない。 G06F
審判 査定不服 2項進歩性 特許、登録しない。 G06F
管理番号 1279986
審判番号 不服2011-11356  
総通号数 167 
発行国 日本国特許庁(JP) 
公報種別 特許審決公報 
発行日 2013-11-29 
種別 拒絶査定不服の審決 
審判請求日 2011-05-31 
確定日 2013-10-01 
事件の表示 特願2007-508677「複製メモリフィールドを備えたマルチコンピュータアーキテクチャ」拒絶査定不服審判事件〔平成17年11月 3日国際公開,WO2005/103928,平成19年11月22日国内公表,特表2007-534066〕について,次のとおり審決する。 
結論 本件審判の請求は,成り立たない。 
理由 第1.手続の経緯
本願は,2005年4月22日(パリ条約による優先権主張外国庁受理2004年4月22日 オーストラリア)を国際出願日とする出願であって,
平成18年12月20日付けで特許法第184条の4第1項の規定による明細書,請求の範囲,及び,図面(図面の中の説明に限る)の日本語による翻訳文が提出され,平成20年4月4日付けで審査請求がなされ,平成22年9月14日付けで審査官により拒絶理由が通知され,これに対して平成22年12月21日付けで意見書が提出されると共に手続補正がなされたが,平成23年1月18日付けで審査官により拒絶査定がなされ,これに対して平成23年5月31日付けで審判請求がなされると共に手続補正がなされ,平成23年6月29日付けで審査官により特許法第164条第3項の規定に基づく報告がなされ,平成23年11月8日付けで当審により特許法第134条第4項の規定に基づく審尋がなされたが,回答書の提出がなかったものである。

第2.平成23年5月31日付けの手続補正の却下の決定

[補正却下の決定の結論]

平成23年5月31日付け手続補正を却下する。

[理由]

1.補正の内容
平成23年5月31日付けの手続補正(以下,「本件手続補正」という)により,平成22年12月21日付けの手続補正により補正された特許請求の範囲,
「 【請求項1】
単一のコンピュータでのみ動作するように各々記述されているが,通信ネットワークによって相互接続された複数のコンピュータ上で同時に実行される少なくとも1つのアプリケーションプログラムを有する多重コンピュータシステムであって,
前記アプリケーションプログラムの異なる部分が前記コンピュータのうちの異なるコンピュータ上でほぼ同時に実行され,前記各コンピュータが前記アプリケーションプログラムの対応する部分によってのみアクセス可能な独立したローカルメモリを有し,前記各コンピュータが,読み取りをするコンピュータの前記ローカルメモリのみを読み取ることができ,全ての読み取り要求が,前記要求を受けたコンピュータの前記ローカルメモリを読み取ることによって満足され,前記各コンピュータが,他のいずれのコンピュータの前記ローカルメモリも読み取ることができず,同一な複数のオブジェクトが前記対応するコンピュータに各々作成されることを特徴とする多重コンピュータシステム。
【請求項2】
前記同一な複数のオブジェクトの各々が同一の名前を有することを特徴とする請求項1に記載のシステム。
【請求項3】
各前記コンピュータが分散ランタイム手段を含み,前記各コンピュータの分散ランタイム手段が全ての他のコンピュータと通信可能であり,これによって前記コンピュータの1つの上で実行する前記アプリケーションプログラムの一部が当該コンピュータのオブジェクトのコンテンツを変更する場合には,前記オブジェクトに対するコンテンツの変更は前記1つのコンピュータの分散ランタイム手段によって他のコンピュータ全てに伝播されて,前記他のコンピュータの各々における対応するオブジェクトのコンテンツを変更することを特徴とする請求項2に記載のシステム。
【請求項4】
更新伝播ルーチンを挿入してメモリに前記アプリケーションプログラムを書き込む各インスタンスを修正することにより,各前記アプリケーションプログラムがロード前,ロード中,ロード後に修正され,前記更新伝播ルーチンが1つのコンピュータによるあらゆるメモリへの書き込みを前記他のコンピュータ全てに伝播することを特徴とする請求項3に記載のシステム。
【請求項5】
前記アプリケーションプログラムは,ロード時の再コンパイル,ロード前の事前コンパイル,ロード前のコンパイル,実行時コンパイル,及びロード後で且つアプリケーションプログラムの関連部分の実行前の再コンパイルからなる手順のグループから選択される手順に従って修正されることを特徴とする請求項4に記載のシステム。
【請求項6】
前記アプリケーションプログラムは,マスタ/スレーブ転送,ブランチ転送,及びカスケード転送からなるグループから選択される手順に従って前記コンピュータの全てに転送されることを特徴とする請求項4に記載のシステム。
【請求項7】
通信リンクを介して相互接続され,各々が独立したローカルメモリを有し,各々が,読み取りをするコンピュータの前記ローカルメモリのみを読み取ることができ,全ての読み取り要求が,前記要求を受けたコンピュータの前記ローカルメモリを読み取ることによって満足され,各々が,他のいずれのコンピュータの前記ローカルメモリも読み取ることができず,少なくとも1つのアプリケーションプログラムの異なる部分をほぼ同時に動作し,単一のコンピュータでのみ動作するよう各々記述され,前記各ローカルメモリが前記アプリケーションプログラムの対応する部分によってだけアクセス可能である複数のコンピュータ。
【請求項8】
前記少なくとも1つのアプリケーションプログラムを動作中の各前記コンピュータは,各前記コンピュータに物理的に位置付けられたローカルメモリに対してだけ読み込み及び書き込みを行い,各前記コンピュータによって利用される前記ローカルメモリの各コンテンツは基本的に類似しているが,各瞬間では同一でなく,前記コンピュータの全てのコンピュータが,前記1つのコンピュータによって更新されたいずれかのメモリロケーションのコンテンツを他の前記コンピュータ全てに分散するための分散更新手段を有することを特徴とする請求項7に記載の複数のコンピュータ。
【請求項9】
前記又は各前記アプリケーションプログラムに割り当てられたローカルメモリ容量が同一であり,前記又は各前記アプリケーションプログラムが利用可能な総メモリ容量が,前記割り当てられたメモリ容量であることを特徴とする請求項8に記載の複数のコンピュータ。
【請求項10】
前記分散更新手段の全ては,前記ローカルメモリ読み取り速度よりも遅いデータ転送速度で前記通信リンクを介して伝達することを特徴とする請求項8に記載の複数のコンピュータ。
【請求項11】
前記コンピュータの少なくとも幾つかは,種々の製造業者によって製造され,及び/又は種々のオペレーティングシステムを有することを特徴とする請求項7に記載の複数のコンピュータ。
【請求項12】
単一のコンピュータでのみ動作するように各々記述された少なくとも1つのアプリケーションプログラムを同時に動作する方法であって,複数のコンピュータが通信ネットワークによって相互接続されており,前記各コンピュータが,読み取りをするコンピュータのローカルメモリのみを読み取ることができ,全ての読み取り要求が,前記要求を受けたコンピュータの前記ローカルメモリを読み取ることによって満足され,前記各コンピュータが,他のいずれのコンピュータの前記ローカルメモリも読み取ることができず,前記方法が,
(i)前記複数のコンピュータうちの異なるコンピュータに対応するプロセッサによって,前記アプリケーションプログラムの異なる部分を実行し,各前記部分に対して,前記対応するコンピュータにおいて同一な複数のオブジェクトを各々作成し,該オブジェクトの各々に同一の名前を持たせる段階と,
を含む方法。
【請求項13】
(ii)前記プロセッサによって,前記同一な複数のオブジェクトの各々に同一の名前を付ける段階を更に含む請求項12に記載の方法。
【請求項14】
(iii)前記コンピュータの1つの上で実行される前記アプリケーションプログラムの一部が当該コンピュータにおいてオブジェクトのコンテンツを変更する場合には,前記コンピュータの前記1つに対応するプロセッサによって,前記オブジェクトのコンテンツの変更が前記通信ネットワークを介して他の前記コンピュータに伝播されて,他の前記コンピュータの各々に対応するプロセッサによって,前記対応するオブジェクトのコンテンツを変更することを特徴とする請求項13に記載の方法。
【請求項15】
(iv)1つのコンピュータによる前記他のコンピュータの全てに対するあらゆるメモリ書き込みを伝播する更新プログラムルーチンを挿入して,前記アプリケーションプログラムがメモリに書き込む各インスタンスを修正することにより,前記他の前記コンピュータの各々に対応するプロセッサによって,前記アプリケーションプログラムをロード前,ロード中,又はロード後に修正する段階を更に含む請求項14に記載の方法。
【請求項16】
(v)前記他の前記コンピュータの各々に対応するプロセッサによって,ロード時の再コンパイル,ロード前の事前コンパイル,ロード前のコンパイル,実行時コンパイル,及びロード後で且つアプリケーションプログラムの関連部分の実行前の再コンパイルからなる手順のグループから選択される手順を利用して前記アプリケーションプログラムを修正する段階を更に含む請求項14に記載の方法。
【請求項17】
(vi)前記他の前記コンピュータの各々に対応するプロセッサによって,マスタ/スレーブ転送,ブランチ転送,及びカスケード転送からなるグループから選択される手順を利用して前記コンピュータの全てに,前記アプリケーションプログラムを転送する段階を更に含む請求項15に記載の方法。
【請求項18】
通信リンクを介して相互接続された複数のコンピュータの各々に単一のコンピュータでのみ動作するように記述されたアプリケーションプログラムをロードする方法であって,
各コンピュータが前記アプリケーションプログラムの対応する部分によってのみアクセス可能な独立したローカルメモリを有し,前記各コンピュータが,読み取りをするコンピュータの前記ローカルメモリのみを読み取ることができ,全ての読み取り要求が,前記要求を受けたコンピュータの前記ローカルメモリを読み取ることによって満足され,前記各コンピュータが,他のいずれのコンピュータの前記ローカルメモリも読み取ることができず,前記アプリケーションプログラムの異なる部分が異なるコンピュータ上でほぼ同時に実行可能であり,
前記方法は,前記複数のコンピュータのうちの異なるコンピュータに対応するプロセッサによって,ロード前,ロード中,又はロード後で且つアプリケーションプログラムの関連部分の実行前に前記アプリケーションを修正する段階を含む方法。
【請求項19】
前記アプリケーションの修正が異なるコンピュータ毎に異なることを特徴とする請求項18に記載の方法。
【請求項20】
前記修正する段階が,
(i)前記コンピュータの1つを利用したメモリ記録を共有する命令を検出する段階と,
(ii)このような前記共有メモリ記録全てをリストして,前記リストされた各メモリ記録に対して命名タグを付与する段階と,
(iii)前記リストされたメモリ記録のいずれかに対する書き込み又は該リストされたメモリ記録のいずれかのコンテンツの操作を行う命令を検出する段階と,
(iv)前記各検出された書き込み又は操作命令に対応する更新プログラムルーチンを生成する段階と,
を含み,
前記更新プログラムルーチンが,前記再書き込み又は操作されたコンテンツ及び前記各再書き込み又は操作されたリストメモリ記録の命名タグを前記コンピュータのうちの他のコンピュータの全てに転送することを特徴とする請求項18に記載の方法。
【請求項21】
単一のコンピュータでのみ動作するよう各々記述された少なくとも1つのアプリケーションプログラムを通信リンクを介して全て相互接続された複数のコンピュータ上で同時に動作する方法であって,前記コンピュータの各々が,読み取りをするコンピュータのローカルメモリのみを読み取ることができ,全ての読み取り要求が,前記要求を受けたコンピュータの前記ローカルメモリを読み取ることによって満足され,前記コンピュータの各々が,他のいずれのコンピュータの前記ローカルメモリも読み取ることができず,前記コンピュータの各々が少なくとも最小の事前設定されたローカルメモリ容量を有し,前記アプリケーションプログラムの異なる部分が,前記コンピュータの異なるコンピュータ上でほぼ同時に実行可能であると共に,各コンピュータのローカルメモリが前記アプリケーションプログラムの対応する部分によってのみアクセス可能であり,
前記方法が,
(i)前記複数のコンピュータのうちの異なるコンピュータに対応するプロセッサによって,同一の条件で各ローカルメモリを最初に提供する段階と,
(ii)前記プロセッサによって,前記対応するローカルメモリから各前記アプリケーションプログラムにより生成された全てのメモリ読み取り及び書き込みを満たす段階と,
(iii)前記プロセッサによって,前記複数のコンピュータの残り全てにローカルに行われる各前記コンピュータでの前記全メモリの書き込みを前記通信リンクを介して伝達する段階と,
を含み,
これにより更新データ送信遅延の影響を受ける各前記コンピュータによって利用される前記ローカルメモリのコンテンツが,同一のままであることを特徴とする方法。
【請求項22】
(iv)前記プロセッサによって,前記ローカルメモリ読み取り速度よりも遅いデータ転送速度で更新データ送信を構成する前記ローカルメモリ書き込みを伝達する段階を更に含む請求項21に記載の方法。
【請求項23】
単一のコンピュータでのみ動作するように各々記述されているが,通信リンクを介して相互接続された複数のコンピュータ上で同時に実行するようアプリケーションプログラムをコンパイル又は修正する方法であって,前記アプリケーションプログラムの異なる部分が前記コンピュータの異なるコンピュータ上でほぼ同時に実行され,前記コンピュータの各々が前記アプリケーションプログラムの対応する部分によってのみアクセス可能な独立したローカルメモリを有し,前記コンピュータの各々が,読み取りをするコンピュータの前記ローカルメモリのみを読み取ることができ,全ての読み取り要求が,前記要求を受けたコンピュータの前記ローカルメモリを読み取ることによって満足され,前記コンピュータの各々が,他のいずれのコンピュータの前記ローカルメモリも読み取ることができず,
前記方法が,
(i)前記複数のコンピュータのうちの異なるコンピュータに対応するプロセッサによって,前記コンピュータの1つを利用してメモリ記録を共有する命令を検出する段階と,
(ii)前記プロセッサによって,このような前記共有メモリ記録全てをリストして,前記リストされた各メモリ記録に対して命名タグを付与する段階と,
(iii)前記プロセッサによって,前記リストされたメモリ記録のいずれかに対する書き込み又は該リストされたメモリ記録のいずれかのコンテンツの操作を行う命令を検出する段階と,
(iv)前記プロセッサによって,前記各検出された書き込み又は操作命令に従う更新プログラムルーチンを起動する段階と,
を含み,
前記更新プログラムルーチンが,前記再書き込み又は操作されたコンテンツ及び前記各再書き込み又は操作されたリストメモリ記録の命名タグを前記コンピュータのうちの残りに転送することを特徴とする方法。
【請求項24】
前記各コンピュータへの前記アプリケーションプログラムのロード前,ロード中,或いはロード後で且つ前記アプリケーションプログラムの関連部分の実行前に行われる請求項23に記載の方法。
【請求項25】
単一のコンピュータでのみ動作するように記述された単一のアプリケーションプログラムの個々のスレッドが,各々が対応するスレッドによってのみアクセス可能な独立したローカルメモリを有し且つ通信リンクを介して各々が相互接続された複数のコンピュータのうちの異なる対応するコンピュータ上で各々が同時に処理され,前記コンピュータの各々が,読み取りをするコンピュータの前記ローカルメモリのみを読み取ることができ,全ての読み取り要求が,前記要求を受けたコンピュータの前記ローカルメモリを読み取ることによって満足され,前記各コンピュータが,他のいずれの前記コンピュータのローカルメモリも読み取ることができないマルチスレッド処理コンピュータオペレーションにおいて,
前記複数のコンピュータのうちの異なるコンピュータに対応するプロセッサによって,各スレッドを処理する前記コンピュータに物理的に関連付けられたローカルメモリのコンテンツ内の変更を,前記通信リンクを介して他の各前記コンピュータのローカルメモリに伝達する段階を含む改良方法。
【請求項26】
1つの前記スレッドに関連付けられる前記メモリに対する変更が,前記1つのスレッドの前記コンピュータに対応するプロセッサによって,他の前記コンピュータ全てに伝達されることを特徴とする請求項25に記載の改良方法。
【請求項27】
1つの前記スレッドに関連付けられる前記メモリに対する変更が,前記1つのスレッドの前記コンピュータに対応するプロセッサによって,別の前記スレッドに関連付けられたコンピュータに送信されることにより,前記他のコンピュータ全てに送信されることを特徴とする請求項25に記載の改良方法。
【請求項28】
請求項12又は18又は21又は23に記載の方法を複数のコンピュータに実行させるためのプログラムを格納するコンピュータ読み取り可能記憶媒体。
【請求項29】
通信ネットワークを介して相互接続され,単一のコンピュータでのみ動作するよう記述されたアプリケーションプログラムの異なる部分をコンピュータのうちの対応する異なるコンピュータ上でほぼ同時に実行するよう各々が動作可能な複数のコンピュータであって,
前記コンピュータは,請求項12又は18又は21又は23に記載の方法を実行するようにプログラムされているか,或いは請求項28に記載のコンピュータ読み取り可能記憶媒体がロードされていることを特徴とする複数のコンピュータ。」(以下,上記引用の請求項各項を,「補正前の請求項」という)は,
「 【請求項1】
単一のコンピュータでのみ動作するように各々記述されているが,ローカルメモリ読み取り速度よりも遅いデータ転送速度の通信ネットワークによって相互接続された複数のコンピュータ上で同時に実行される少なくとも1つのアプリケーションプログラムを有する多重コンピュータシステムであって,
前記アプリケーションプログラムの実行が前記複数のコンピュータのうちの異なるコンピュータ間で共有されて,前記アプリケーションプログラムの異なる部分が前記コンピュータのうちの異なるコンピュータ上でほぼ同時に実行され,前記各コンピュータが前記アプリケーションプログラムの対応する部分によってのみアクセス可能な独立したローカルメモリを有し,前記各コンピュータが,読み取りをするコンピュータの前記ローカルメモリのみを読み取ることができ,全ての読み取り要求が,前記要求を受けたコンピュータの前記ローカルメモリを読み取ることによって満足され,前記各コンピュータが,他のいずれのコンピュータの前記ローカルメモリも読み取ることができず,前記又は各前記アプリケーションプログラムに割り当てられたローカルメモリ容量が同一であり,前記又は各前記アプリケーションプログラムが利用可能な総メモリ容量が,割り当てられた前記メモリ容量のみであり,同一な複数のオブジェクトが前記対応するコンピュータに各々作成されることを特徴とする多重コンピュータシステム。
【請求項2】
前記同一な複数のオブジェクトの各々が同一の名前を有することを特徴とする請求項1に記載のシステム。
【請求項3】
各前記コンピュータが分散ランタイム手段を含み,前記各コンピュータの分散ランタイム手段が全ての他のコンピュータと通信可能であり,これによって前記コンピュータの1つの上で実行する前記アプリケーションプログラムの一部が当該コンピュータのオブジェクトのコンテンツを変更する場合には,前記オブジェクトに対するコンテンツの変更は前記1つのコンピュータの分散ランタイム手段によって他のコンピュータ全てに伝播されて,前記他のコンピュータの各々における対応するオブジェクトのコンテンツを変更することを特徴とする請求項2に記載のシステム。
【請求項4】
更新伝播ルーチンを挿入してメモリに前記アプリケーションプログラムを書き込む各インスタンスを修正することにより,各前記アプリケーションプログラムがロード前,ロード中,ロード後に修正され,前記更新伝播ルーチンが1つのコンピュータによるあらゆるメモリへの書き込みを前記他のコンピュータ全てに伝播することを特徴とする請求項3に記載のシステム。
【請求項5】
前記アプリケーションプログラムは,ロード時の再コンパイル,ロード前の事前コンパイル,ロード前のコンパイル,実行時コンパイル,及びロード後で且つアプリケーションプログラムの関連部分の実行前の再コンパイルからなる手順のグループから選択される手順に従って修正されることを特徴とする請求項4に記載のシステム。
【請求項6】
前記アプリケーションプログラムは,マスタ/スレーブ転送,ブランチ転送,及びカスケード転送からなるグループから選択される手順に従って前記コンピュータの全てに転送されることを特徴とする請求項4に記載のシステム。
【請求項7】
通信リンクを介して相互接続され,各々が独立したローカルメモリを有し,各々が,読み取りをするコンピュータの前記ローカルメモリのみを読み取ることができ,全ての読み取り要求が,前記要求を受けたコンピュータの前記ローカルメモリを読み取ることによって満足され,各々が,他のいずれのコンピュータの前記ローカルメモリも読み取ることができず,前記各ローカルメモリが,前記アプリケーションプログラムの対応する部分によってだけアクセス可能であり,前記又は各前記アプリケーションプログラムに割り当てられたローカルメモリ容量が同一であり,前記又は各前記アプリケーションプログラムが利用可能な総メモリ容量が,割り当てられた前記メモリ容量のみであり,前記アプリケーションプログラムが,単一のコンピュータでのみ動作するように各々記述され,複数の前記コンピュータ間でアプリケーションプログラムの実行が共有されて,各前記アプリケーションプログラムの異なる部分を,複数の前記コンピュータの異なる部分で,ほぼ同時に実行し,前記コンピュータの全てのコンピュータが,前記1つのコンピュータによって更新されたいずれかのメモリロケーションのコンテンツを他の前記コンピュータ全てに分散するための分散更新手段を有し,前記分散更新手段の全ては,前記ローカルメモリ読み取り速度よりも遅いデータ転送速度で前記通信リンクを介して伝達する複数のコンピュータ。
【請求項8】
前記少なくとも1つのアプリケーションプログラムを動作中の各前記コンピュータは,各前記コンピュータに物理的に位置付けられたローカルメモリに対してだけ読み込み及び書き込みを行い,各前記コンピュータによって利用される前記ローカルメモリの各コンテンツは基本的に類似しているが,各瞬間では同一でないことを特徴とする請求項7に記載の複数のコンピュータ。
【請求項9】
前記コンピュータの少なくとも幾つかは,種々の製造業者によって製造され,及び/又は種々のオペレーティングシステムを有することを特徴とする請求項7に記載の複数のコンピュータ。
【請求項10】
単一のコンピュータでのみ動作するように各々記述された少なくとも1つのアプリケーションプログラムを同時に動作する方法であって,複数のコンピュータが,前記ローカルメモリ読み取り速度よりも遅いデータ転送速度の通信ネットワークによって相互接続されており,前記各コンピュータが,読み取りをするコンピュータのローカルメモリのみを読み取ることができ,全ての読み取り要求が,前記要求を受けたコンピュータの前記ローカルメモリを読み取ることによって満足され,前記各コンピュータが,他のいずれのコンピュータの前記ローカルメモリも読み取ることができず,前記方法が,
(i)前記複数のコンピュータうちの異なるコンピュータに対応するプロセッサ間で,前記アプリケーションプログラムの実行を共有して,前記アプリケーションプログラムの異なる部分が各プロセッサで実行され,各前記部分に対して,前記対応するコンピュータにおいて同一な複数のオブジェクトを各々作成し,該オブジェクトの各々に同一の名前を持たせる段階と,
(ii)同一のローカルメモリの容量を前記又は各前記アプリケーションプログラムに割り当て,前記又は各前記アプリケーションプログラムが利用可能な前記総メモリを,割り当てられた前記メモリの容量のみにする段階と,
を含む方法。
【請求項11】
(iii)前記プロセッサによって,前記同一な複数のオブジェクトの各々に同一の名前を付ける段階を更に含む請求項10に記載の方法。
【請求項12】
(iv)前記コンピュータの1つの上で実行される前記アプリケーションプログラムの一部が当該コンピュータにおいてオブジェクトのコンテンツを変更する場合には,前記コンピュータの前記1つに対応するプロセッサによって,前記オブジェクトのコンテンツの変更が前記通信ネットワークを介して他の前記コンピュータに伝播されて,他の前記コンピュータの各々に対応するプロセッサによって,前記対応するオブジェクトのコンテンツを変更することを特徴とする請求項11に記載の方法。
【請求項13】
(v)1つのコンピュータによる前記他のコンピュータの全てに対するあらゆるメモリ書き込みを伝播する更新プログラムルーチンを挿入して,前記アプリケーションプログラムがメモリに書き込む各インスタンスを修正することにより,前記他の前記コンピュータの各々に対応するプロセッサによって,前記アプリケーションプログラムをロード前,ロード中,又はロード後に修正する段階を更に含む請求項12に記載の方法。
【請求項14】
(vi)前記他の前記コンピュータの各々に対応するプロセッサによって,ロード時の再コンパイル,ロード前の事前コンパイル,ロード前のコンパイル,実行時コンパイル,及びロード後で且つアプリケーションプログラムの関連部分の実行前の再コンパイルからなる手順のグループから選択される手順を利用して前記アプリケーションプログラムを修正する段階を更に含む請求項12に記載の方法。
【請求項15】
(vii)前記他の前記コンピュータの各々に対応するプロセッサによって,マスタ/スレーブ転送,ブランチ転送,及びカスケード転送からなるグループから選択される手順を利用して前記コンピュータの全てに,前記アプリケーションプログラムを転送する段階を更に含む請求項13に記載の方法。
【請求項16】
ローカルメモリ読み取り速度よりも遅いデータ転送速度の通信リンクを介して相互接続された複数のコンピュータの各々に単一のコンピュータでのみ動作するように記述されたアプリケーションプログラムをロードする方法であって,
各コンピュータが前記アプリケーションプログラムの対応する部分によってのみアクセス可能な独立したローカルメモリを有し,前記各コンピュータが,読み取りをするコンピュータの前記ローカルメモリのみを読み取ることができ,全ての読み取り要求が,前記要求を受けたコンピュータの前記ローカルメモリを読み取ることによって満足され,前記各コンピュータが,他のいずれのコンピュータの前記ローカルメモリも読み取ることができず,前記又は各前記アプリケーションプログラムに割り当てられた前記ローカルメモリの容量が同一であり,前記又は各前記アプリケーションプログラムが利用可能な総メモリ容量が,割り当てられた前記メモリ容量のみであり,前記複数のコンピュータ間で実行を共有して,前記アプリケーションプログラムの異なる部分が異なるコンピュータ上でほぼ同時に実行され,
前記方法は,前記複数のコンピュータのうちの異なるコンピュータに対応するプロセッサによって,ロード前,ロード中,又はロード後で且つアプリケーションプログラムの関連部分の実行前に前記アプリケーションを修正する段階を含む方法。
【請求項17】
前記アプリケーションの修正が異なるコンピュータ毎に異なることを特徴とする請求項16に記載の方法。
【請求項18】
前記修正する段階が,
(i)前記コンピュータの1つを利用したメモリ記録を共有する命令を検出する段階と,
(ii)このような前記共有メモリ記録全てをリストして,前記リストされた各メモリ記録に対して命名タグを付与する段階と,
(iii)前記リストされたメモリ記録のいずれかに対する書き込み又は該リストされたメモリ記録のいずれかのコンテンツの操作を行う命令を検出する段階と,
(iv)前記各検出された書き込み又は操作命令に対応する更新プログラムルーチンを生成する段階と,
を含み,
前記更新プログラムルーチンが,前記再書き込み又は操作されたコンテンツ及び前記各再書き込み又は操作されたリストメモリ記録の命名タグを前記コンピュータのうちの他のコンピュータの全てに転送することを特徴とする請求項16に記載の方法。
【請求項19】
単一のコンピュータでのみ動作するよう各々記述された少なくとも1つのアプリケーションプログラムを前記ローカルメモリ読み取り速度よりも遅いデータ転送速度の通信リンクを介して全て相互接続された複数のコンピュータ上で同時に動作する方法であって,前記コンピュータの各々が,読み取りをするコンピュータのローカルメモリのみを読み取ることができ,全ての読み取り要求が,前記要求を受けたコンピュータの前記ローカルメモリを読み取ることによって満足され,前記コンピュータの各々が,他のいずれのコンピュータの前記ローカルメモリも読み取ることができず,前記コンピュータの各々が少なくとも最小の事前設定されたローカルメモリ容量を有し,
前記複数のコンピュータの各々が,同一の割り当てられた前記メモリ容量を持ち,前記又は各前記アプリケーションプログラムが利用可能な割り当てられた総メモリ容量が,割り当てられた前記メモリ容量のみであり,前記複数のコンピュータ間で実行を共有して,前記アプリケーションプログラムの異なる部分が,前記コンピュータの異なるコンピュータ上でほぼ同時に実行可能であると共に,各コンピュータのローカルメモリが前記アプリケーションプログラムの対応する部分によってのみアクセス可能であり, 前記方法が,
(i)前記複数のコンピュータのうちの異なるコンピュータに対応するプロセッサによって,同一の条件で各ローカルメモリを最初に提供する段階と,
(ii)前記プロセッサによって,前記対応するローカルメモリから各前記アプリケーションプログラムにより生成された全てのメモリ読み取り及び書き込みを満たす段階と,
(iii)前記プロセッサによって,前記複数のコンピュータの残り全てにローカルに行われる各前記コンピュータでの前記全メモリの書き込みを前記通信リンクを介して伝達する段階と,
を含み,
これにより更新データ送信遅延の影響を受ける各前記コンピュータによって利用される前記ローカルメモリのコンテンツが,同一のままであることを特徴とする方法。
【請求項20】
(iv)前記プロセッサによって,前記ローカルメモリ読み取り速度よりも遅いデータ転送速度で更新データ送信を構成する前記ローカルメモリ書き込みを伝達する段階を更に含む請求項19に記載の方法。
【請求項21】
単一のコンピュータでのみ動作するように各々記述されているが,前記ローカルメモリ読み取り速度よりも遅いデータ転送速度の通信リンクを介して相互接続された複数のコンピュータ上で同時に実行するようアプリケーションプログラムをコンパイル又は修正する方法であって,実行が前記複数のコンピュータ間で共有されて,前記アプリケーションプログラムの異なる部分が前記コンピュータの異なるコンピュータ上でほぼ同時に実行され,前記コンピュータの各々が前記アプリケーションプログラムの対応する部分によってのみアクセス可能な独立したローカルメモリを有し,前記コンピュータの各々が,読み取りをするコンピュータの前記ローカルメモリのみを読み取ることができ,全ての読み取り要求が,前記要求を受けたコンピュータの前記ローカルメモリを読み取ることによって満足され,前記コンピュータの各々が,他のいずれのコンピュータの前記ローカルメモリも読み取ることができず,前記アプリケーションプログラムの各々に割り当てられる前記ローカルメモリの容量が同一であり,前記アプリケーションプログラムの各々に利用可能な総メモリ容量は,割り当てられた前記メモリの容量のみであり,
前記方法が,
(i)前記複数のコンピュータのうちの異なるコンピュータに対応するプロセッサによって,前記コンピュータの1つを利用してメモリ記録を共有する命令を検出する段階と,
(ii)前記プロセッサによって,このような前記共有メモリ記録全てをリストして,前記リストされた各メモリ記録に対して命名タグを付与する段階と,
(iii)前記プロセッサによって,前記リストされたメモリ記録のいずれかに対する書き込み又は該リストされたメモリ記録のいずれかのコンテンツの操作を行う命令を検出する段階と,
(iv)前記プロセッサによって,前記各検出された書き込み又は操作命令に従う更新プログラムルーチンを起動する段階と,
を含み,
前記更新プログラムルーチンが,前記再書き込み又は操作されたコンテンツ及び前記各再書き込み又は操作されたリストメモリ記録の命名タグを前記コンピュータのうちの残りに転送することを特徴とする方法。
【請求項22】
前記各コンピュータへの前記アプリケーションプログラムのロード前,ロード中,或いはロード後で且つ前記アプリケーションプログラムの関連部分の実行前に行われる請求項21に記載の方法。
【請求項23】
単一のコンピュータでのみ動作するように記述された単一のアプリケーションプログラムの個々のスレッドが,各々が対応するスレッドによってのみアクセス可能な独立したローカルメモリを有し且つ前記ローカルメモリ読み取り速度よりも遅いデータ転送速度の通信リンクを介して各々が相互接続された複数のコンピュータのうちの異なる対応するコンピュータ上で各々が同時に処理され,前記コンピュータの各々が,読み取りをするコンピュータの前記ローカルメモリのみを読み取ることができ,全ての読み取り要求が,前記要求を受けたコンピュータの前記ローカルメモリを読み取ることによって満足され,前記各コンピュータが,他のいずれの前記コンピュータのローカルメモリも読み取ることができなく,前記又は各前記アプリケーションプログラムに割り当てられたローカルメモリ容量が同一であり,前記又は各前記アプリケーションプログラムが利用可能な総メモリ容量が,前記割り当てられたメモリ容量のみであるマルチスレッド処理コンピュータオペレーションにおいて,
前記複数のコンピュータのうちの異なるコンピュータに対応するプロセッサによって,各スレッドを処理する前記コンピュータに物理的に関連付けられたローカルメモリのコンテンツ内の変更を,前記通信リンクを介して他の各前記コンピュータのローカルメモリに伝達する段階を含む改良方法。
【請求項24】
1つの前記スレッドに関連付けられる前記メモリに対する変更が,前記1つのスレッドの前記コンピュータに対応するプロセッサによって,他の前記コンピュータ全てに伝達されることを特徴とする請求項23に記載の改良方法。
【請求項25】
1つの前記スレッドに関連付けられる前記メモリに対する変更が,前記1つのスレッドの前記コンピュータに対応するプロセッサによって,別の前記スレッドに関連付けられたコンピュータに送信されることにより,前記他のコンピュータ全てに送信されることを特徴とする請求項23に記載の改良方法。
【請求項26】
請求項10又は16又は19又は21に記載の方法を複数のコンピュータに実行させるためのプログラムを格納するコンピュータ読み取り可能記憶媒体。
【請求項27】
通信ネットワークを介して相互接続され,単一のコンピュータでのみ動作するよう記述されたアプリケーションプログラムの異なる部分をコンピュータのうちの対応する異なるコンピュータ上でほぼ同時に実行するよう各々が動作可能な複数のコンピュータであって,
前記コンピュータは,請求項10又は16又は19又は21に記載の方法を実行するようにプログラムされているか,或いは請求項26に記載のコンピュータ読み取り可能記憶媒体がロードされていることを特徴とする複数のコンピュータ。」(以下,上記引用の請求項各項を,「補正後の請求項」という)に補正された。

2.補正の適否
本件手続補正は,補正前の請求項1に係る発明における発明特定事項である,「通信ネットワーク」に対して,「ローカルメモリ読み取り速度よりも遅いデータ転送速度の」,という限定事項を付加し,同じく,補正前の請求項1に係る発明における発明特定事項である,「少なくとも1つのアプリケーションプログラム」に対して,「各前記アプリケーションプログラムの実行が前記複数のコンピュータ間で共有されて」,という限定事項を付加し,同じく,補正前の請求項1に係る発明における発明特定事項である,「ローカルメモリ」に対して,「前記又は各前記アプリケーションプログラムに割り当てられたローカルメモリ容量が同一であり,前記又は各前記アプリケーションプログラムが利用可能な総メモリ容量が,前記割り当てられたメモリ容量のみであり」,という限定を付加し,
それに伴い,補正前の請求項9,及び,請求項10を削除し,補正前の請求項1に係る発明と同等の構成を有する補正前の請求項7,請求項12,請求項18,請求項21,及び,請求項23,並びに,請求項25に対して,上記記載の限定を各発明特定事項に付加し,更に,補正前の請求項7に,補正前の請求項8の一部を組み入れ,補正後の請求項7,請求項10,請求項16,請求項19,及び,請求項21,並びに,請求項23とするものであって,当該限定事項は,明細書,請求の範囲の日本語による翻訳文,及び,図面(以下,「当初明細書等」という)の範囲内でなされたものであるから,
本件手続補正は,請求項の削除,及び,特許請求の範囲の減縮を目的としたものである。
よって,本件手続補正が,平成18年法律第55号改正附則第3条第1項によりなお従前の例によるとされる同法による改正前の特許法第17条の2第5項において準用する同法第126条第5項の規定を満たすものであるか否か,即ち,補正後の請求項に係る発明が,特許出願の際独立して特許を受けられるものであるか否かについて,以下に検討する。

(1)補正後の請求項1に係る発明
補正後の請求項1に係る発明(以下,「本件補正発明」という)は,上記「1.補正の内容」において,補正後の請求項1として引用した,次に記載のとおりのものである。

「 単一のコンピュータでのみ動作するように各々記述されているが,ローカルメモリ読み取り速度よりも遅いデータ転送速度の通信ネットワークによって相互接続された複数のコンピュータ上で同時に実行される少なくとも1つのアプリケーションプログラムを有する多重コンピュータシステムであって,
前記アプリケーションプログラムの実行が前記複数のコンピュータのうちの異なるコンピュータ間で共有されて,前記アプリケーションプログラムの異なる部分が前記コンピュータのうちの異なるコンピュータ上でほぼ同時に実行され,前記各コンピュータが前記アプリケーションプログラムの対応する部分によってのみアクセス可能な独立したローカルメモリを有し,前記各コンピュータが,読み取りをするコンピュータの前記ローカルメモリのみを読み取ることができ,全ての読み取り要求が,前記要求を受けたコンピュータの前記ローカルメモリを読み取ることによって満足され,前記各コンピュータが,他のいずれのコンピュータの前記ローカルメモリも読み取ることができず,前記又は各前記アプリケーションプログラムに割り当てられたローカルメモリ容量が同一であり,前記又は各前記アプリケーションプログラムが利用可能な総メモリ容量が,割り当てられた前記メモリ容量のみであり,同一な複数のオブジェクトが前記対応するコンピュータに各々作成されることを特徴とする多重コンピュータシステム。」

(2)引用刊行物に記載の発明
一方,原審が,平成22年9月14日付けの拒絶理由に引用した,本願の第1国出願前に既に公知である,「上原均、畠山正行,「自動分散型オブジェクト指向シミュレーションシステムの生成」,情報処理学会研究報告,社団法人情報処理学会,1997年8月19日,第97巻,第75号,pp.103-108」(以下,これを「引用刊行物1」という)には,次の事項が記載されている。

A.「そこで本研究では分散型OOシミュレーションシステム構築時におけるユーザの負担軽減を目的として,自動分散型OOシミュレーション・システムのソースコード自動生成システムを開発する。この生成システムでは,C++で記述された単ーホスト上で駆動する逐次OOシミュレーション・システムのソースコードから自動分散型OOシミュレーション・システムのソースコードを生成することを目指す。」(103頁右欄3行?104頁左欄1行 なお,下線は,当審にて説明の都合上附加したものである。以下,同じ。)

B.「本研究では,その解決策としてProxyObjectを用いる。ProxyObjectとは本来の通信対象であるオブジェクトと同じインタフェースを持つオブジェクトであり,その内部において分散環境での通信の詳細を隠蔽する(図2参照)。このProxyObjectを仲介にすることで,分散環境における通信処理の詳細を意織しない分散透過性が実現できる。」(104頁右欄21行?28行)

C.「ProxyObjectを用いて記述するには,そのオブジェクトがリモートホストに存在するか否かをプログラマは明確に意識しなければならない(図3(a)参照)。よってProxyObjectを用いただけでは,オブジェクトが分散している事自体を意識しない「分散透明性」は実現できない。3.1節で述べたように逐次型システムの記述には分散処理の記述がないため,この分散透明性を自動生成システムにおいて実現することが不可欠である。
そこで本研究では,通信の仲介役であったProxyObjectを本来の通信対象のオブジェクトと「入れ替え」ることで分散透明性を実現する。
通常はユーザが定義したクラス定義から別個にProxyObjectの定義を生成し(図4(a)参照),リモートホストにオブジェクトが存在する場合のみ,ProxyObjectが用いられる。しかし本研究では,ユ-ザが定義したクラスの名前を別のクラス名に変更し,ProxyObjectのクラスを先のユーザが定義したクラス名で再定義する(図4(b)参照)。これはその定義が行われたファイル名などにも及ぶため(図5参照),本来はユーザ定義のクラス定義が読み込まれていたプログラムでは,その代りにProxyObjectのクラス定義が読み込まれる(図6参照)。ProxyObject は本来のオブジェクトのインタフェースと同じインタフェースを備えているため,記述面での破綻は生じない。
このクラス定義の「入れ替え」により,全てのユーザ定義オブジェクトへのアクセスはリモート/ローカルの区別無く,ProxyObjectを介して行われることになる(図3(b)参照)。そして,このProxyObjectにおいてリモート/ローカルホストに関する通信の分岐処理を隠蔽することで,分散透明性を実現する。」(105頁左欄3行?右欄16行)

D.「C++は逐次オブジェクト指向モデルに基づいているため,処理は全て逐次的に処理され,メソッドの並行処理はできない。そこで自動分散型システムにおける処理の並行化を実現するには,C++の記法で許される範囲でメソッド処理の並行化を実現しなければならない。」(105頁右欄19行?24行)

E.「本研究では以下のような三種類の同期制御の方法を用いて自動分散型システムの同期制御を行う。また,3番目の同期制御のために,並行処理されるメソッドに対して分類コード(非負の整数)を全ての並行処理メソッドに付与する。この値はユーザが最終的に決定するものとする。
1.各ProxyObjectでの同期
あるProxyObjectを介して並行処理メソッドが実行中の場合,そのProxyObjectを介するメッセージ通信は先の並行処理メソッドが終了するまで遅延する。
2.並行処理メソッド実行時の同期
(一つ以上の)並行処理メソッドが実行されている場合,全てのProxyObjectを介した逐次処理メソッドの実行は,並行処理メソッドが全て終了するまで遅延する。
3.並行処理メソッドの分類コードによる同期
分類コード値が同じメソッドは並行に処理される。逆に分類コード値が異なる場合には同時には実行されない。
この三種類の同期制御の例を図7に示す。」(106頁左欄17行?右欄末行)

F.上記Eで引用した記載中で引用されている図7には,異なる「Slave」において,「Master」上で処理されるものと同一の「処理メソッド」の「calc_col()」,「update()」等が並列実行されている様子が示されている。

ア.上記Aの「この生成システムでは,C++で記述された単ーホスト上で駆動する逐次OOシミュレーション・システムのソースコードから自動分散型OOシミュレーション・システムのソースコードを生成する」という記載,及び,上記Dの「C++は逐次オブジェクト指向モデルに基づいているため,処理は全て逐次的に処理され,メソッドの並行処理はできない。そこで自動分散型システムにおける処理の並行化を実現するには,C++の記法で許される範囲でメソッド処理の並行化を実現しなければならない」という記載から,
上記Aにおける「単ーホスト上で駆動する逐次OOシミュレーション・システムのソースコード」は,「単ーホスト上で駆動する逐次OOシミュレーション・システム」が“プログラム”であることを示しているので,
引用刊行物1には,“単一のホスト上で駆動する逐次処理されるプログラムを,並列処理されるプログラムにする”点が記載されていることが読み取れる。

イ.上記ア.で検討した事項,及び,上記Bの「ProxyObjectとは本来の通信対象であるオブジェクトと同じインタフェースを持つオブジェクトであり」という記載,及び,上記Cの「リモートホストにオブジェクトが存在する場合のみ,ProxyObjectが用いられる」という記載,並びに,上記Cの「クラス定義の「入れ替え」により,全てのユーザ定義オブジェクトへのアクセスはリモート/ローカルの区別無く,ProxyObjectを介して行われることになる」という記載から,
引用刊行物1には,“ProxyObjectを導入し,クラス定義を入れ替えることで,逐次処理されるプログラムの並列処理を実現している”点が記載されていることが読み取れる。

ウ.上記ア.で検討した事項,及び,上記Eの「あるProxyObjectを介して並行処理メソッドが実行中の場合,そのProxyObjectを介するメッセージ通信は先の並行処理メソッドが終了するまで遅延する」という記載,及び,同じく上記Eの「(一つ以上の)並行処理メソッドが実行されている場合,全てのProxyObjectを介した逐次処理メソッドの実行は,並行処理メソッドが全て終了するまで遅延する」という記載,及び,上記Eの「分類コード値が同じメソッドは並行に処理される。逆に分類コード値が異なる場合には同時には実行されない」という記載,並びに,上記Fで指摘した「異なる「Slave」において,「Master」上で処理されるものと同一の「処理メソッド」の「calc_col()」,「update()」等が並列実行されている様子」から,
引用刊行物1には,“Master上で処理される処理メソッドと同一の処理メソッドが,複数のSlave上で並列実行される”点が記載されていることが読み取れる。
そして,上記Fで指摘の図7には,各「Slave」が,「オブジェクト」を有している点が示されており,このことと,上記ウ.で検討した事項を併せると,
引用刊行物1からは,“Master上で実行される処理メソッドと同一の処理メソッドが,各Slaveのオブジェクトの下で並列実行されている”ことが読み取れ,上記Aにおける「単一のホスト」と,上記Fにおける「Master」とは,同じものであり,また,上記Cにおける「リモートホスト」と,上記Fにおける「Slave」とが同じものであることは明らかであって,引用刊行物1に記載の「ホスト」と「リモートホスト」とは,“単一のホスト上で駆動する逐次処理されるプログラムを,並列処理するために,通信路で接続されたシステムを構築している”ことも,引用刊行物1の記載内容から明らかである。
そして,上記ア.で検討した事項から,「リモートホスト」上で,上記各「メソッド」を処理する「オブジェクト」は,「単一のホスト上で駆動する逐次処理されるプログラム」から,生成された「並列処理されるプログラム」によるものである。
以上,上記ア.?ウ.において検討した事項から,引用刊行物1には,次の発明(以下,これを「引用発明」という)が記載されているものと認める。

“単一のホスト上で駆動する逐次処理されるプログラムが,前記ホストに通信路を介して接続された,複数のリモートホスト上で並列に実行されるシステムであって,
単一のホスト上で実行される処理メソッドと同一の処理メソッドが,各リモートホスト上の,単一のホスト上で駆動する逐次処理されるプログラムから生成された,並列処理されるプログラムによるオブジェクトの下で並列実行されるシステム。”

(3)本件補正発明と引用発明との対比
ア.引用発明における「単一のホスト上で駆動する逐次処理されるプログラム」とは,並列処理用に作成されたものではない,通常のプログラムを意味するものであるから,本件補正発明における“単一のコンピュータでのみ動作するように各々記述されたアプリケーションプログラム”に相当し,
引用発明においては,「単一のホスト」と「複数のリモートホスト」とが「通信路を介して接続され」ていることから,引用発明は,前記「ホスト」と,前記「複数のリモートホスト」とが,“ネットワーク”によって接続される態様を含むものであることは明らかである。そして,引用発明における前記「ホスト」及び,前記「複数のリモートホスト」とが,本件補正発明における「複数のコンピュータ」に相当するので,
引用発明において,“前記「ホスト」と,前記「複数のリモートホスト」とが,通信路を介して接続されている”ことは,
本件補正発明において,「通信ネットワークによって相互接続された複数のコンピュータ」に相当し,
引用発明における,前記「ホスト」と,前記「リモートホスト」とは,前記「ホスト」上で「駆動する逐次処理されるプログラム」を,「並列に実行」するものであるから,“多重コンピュータシステム”を形成していることは明らかである。
よって,引用発明における「単一のホスト上で駆動する逐次処理されるプログラムが,前記ホストに接続された,複数のリモートホスト上で並列に実行されるシステム」と,
本件補正発明における「単一のコンピュータでのみ動作するように各々記述されているが,ローカルメモリ読み取り速度よりも遅いデータ転送速度の通信ネットワークによって相互接続された複数のコンピュータ上で同時に実行される少なくとも1つのアプリケーションプログラムを有する多重コンピュータシステム」とは,
“単一のコンピュータでのみ動作するように各々記述されているが,通信ネットワークによって相互接続された複数のコンピュータ上で同時に実行されるアプリケーションプログラムを有する多重コンピュータシステム”である点で共通する。

イ.引用発明において,「単一のホスト上で駆動する逐次処理されるプログラムから生成された,並列処理されるプログラム」は,「各リモートホスト上」で実行されものであるから,
引用発明における「単一のホスト上で駆動する逐次処理されるプログラムから生成された,並列処理されるプログラム」が,
本件補正発明における「アプリケーションプログラムの異なる部分」に相当し,
引用発明において,「単一のホスト上で実行される処理メソッドと同一の処理メソッドが,各リモートホスト上の,単一のホスト上で駆動する逐次処理されるプログラムから生成された,並列処理されるプログラムによるオブジェクトの下で並列実行される」ことは,「単一のホスト上で駆動する逐次処理されるプログラムから生成された,並列処理されるプログラム」が,複数の「各リモートホスト」上で実行されることと同義であって,このとき,前記「プログラム」の処理は,「各リモートホスト」によって,共有されていると言い得るものであり,上記Fで指摘した,引用刊行物1の図7に従えば,複数の「リモートホスト」上の「オブジェクト」が,すべての「メソッド」を同時並列に処理するものではないので,
引用発明における「単一のホスト上で実行される処理メソッドと同一の処理メソッドが,各リモートホスト上の,単一のホスト上で駆動する逐次処理されるプログラムから生成された,並列処理されるプログラムによるオブジェクトの下で並列実行される」が,
本件補正発明における「前記アプリケーションプログラムの実行が前記複数のコンピュータのうちの異なるコンピュータ間で共有されて,前記アプリケーションプログラムの異なる部分が前記コンピュータのうちの異なるコンピュータ上でほぼ同時に実行され」ることに相当する。

以上,「(3)本件補正発明と引用発明との対比」のア.及び,イ.で検討した事項から,本件補正発明と,引用発明との,一致点,及び,相違点は,次のとおりである。

[一致点]
単一のコンピュータでのみ動作するように各々記述されているが,通信ネットワークによって相互接続された複数のコンピュータ上で同時に実行されるアプリケーションプログラムを有する多重コンピュータシステムであって,
各前記アプリケーションプログラムの実行が前記複数のコンピュータ間で共有されて,前記アプリケーションプログラムの異なる部分が前記コンピュータのうちの異なるコンピュータ上でほぼ同時に実行される,多重コンピュータシステム。

[相違点1]
本件補正発明においては,「複数のコンピュータ」は,「ローカルメモリ読み取り速度よりも遅いデータ転送速度の通信ネットワークによって相互接続され」ているのに対して,
引用発明の,「単一のホスト」,及び,「複数のリモートホスト」が,どのようなネットワークに接続されているか,示されてない点。

[相違点2]
本件補正発明においては,「複数のコンピュータ上で同時実行される少なくとも1つのアプリケーションプログラムを有する」ものであるのに対して,
引用発明においては,「単一のホスト上で駆動する逐次処理されるプログラム」が,“複数”存在する構成については言及されていない点。

[相違点3]
本件補正発明においては,「各コンピュータが前記アプリケーションプログラムの対応する部分によってのみアクセス可能な独立したローカルメモリを有し,前記各コンピュータが,読み取りをするコンピュータの前記ローカルメモリのみを読み取ることができ,全ての読み取り要求が,前記要求を受けたコンピュータの前記ローカルメモリを読み取ることによって満足され,前記各コンピュータが,他のいずれのコンピュータの前記ローカルメモリも読み取ることができ」ないものであるのに対して,
引用発明においては,「単一のホスト」,及び,「リモートホスト」が有する「ローカルメモリ」に関しては,特に,言及されていない点。

[相違点4]
本件補正発明においては,“各アプリケーションプログラムに割り当てられたローカルメモリ容量が同一であり,前記各アプリケーションプログラムが利用可能な総メモリ容量が,前記割り当てられたメモリ容量のみであ”るのに対して,
引用発明においては,「単一のホスト上で駆動する逐次処理されるプログラム」に割り当てられる,「メモリ容量」に関する言及がない点。

[相違点5]
本件補正発明においては,「同一な複数のオブジェクトが前記対応するコンピュータに各々作成される」ものであるのに対して,
引用発明においては,各「リモートホスト」上の「オブジェクト」間の関係について,特に言及されていない点。

(4)相違点に対する当審の判断
ア.[相違点1]について
ネットワークの速度と,メモリの読み取り速度に関しては,例えば,本願の第1国出願前に既に公知である,特開平10-084391号公報(1998年3月31日公開,以下,これを「周知文献1」という)に,

G.「【0049】本実施形態のデータ転送装置のネットワーク接続処理部110は,LANから送られたデータやLANに送るデータを格納するDRAMまたはSRAM等のメモリであるバッファメモリ111と,ネットワーク接続処理部110の動作を制御するCPU112と,ネットワーク接続処理部110とLANとを接続するLANカード113とを備えており,例えば,10Mbpsや100Mbpsの転送速度を持つ高速なLANと接続している。」

と記載され,また,同じく,本願の第1国出願前に既に公知である,特開2003-337744号公報(2003年11月28日公開,以下,これを「周知文献2」という)に,従来技術として,

H.「【0006】この例のシステムでは,PCIバス90はPCI規格2.2に準ずる32bit×33MHzの汎用バスで,最大データ転送帯域は133Mバイト/秒である。粒子データ記憶装置94は汎用のSDRAMで構成されており,メモリバス99のバス幅は32ビット,クロック周波数は133MHzで,最大データ転送帯域は533Mバイト/秒である。ローカルバス100はバス幅40ビット,クロック周波数66MHzで,最大データ転送帯域は333Mバイト/秒である。」

と記載されているように,本願の第1国出願前に,通常,「ネットワーク」の速度が,「メモリ」の読み出し速度より遅いことは,当業者に周知の技術事項であり,引用発明においても,特別の構成を採用するとの断りがない以上,システムの構成において,「ローカルメモリ読み取り速度よりも遅いデータ転送速度の通信ネットワークによって相互接続され」るよう構成することは,当業者が適宜なし得る事項である。
よって,相違点1は,格別のものではない。

イ.[相違点2]について
引用発明においては,1つのプログラムについての例示がなされているが,他のプログラムを持たせるように構成し得ることは,当業者が適宜なし得る事項である。
よって,相違点2は,格別のものではない。

ウ.[相違点3],及び,[相違点4]について
原審が,平成22年9月14日付けの拒絶理由で引用した,本願の第1国出願前に既に公知である,
「Henri E. Bal et al., “Orca: A Language For Parallel Programming of Distributed Systems”, IEEE Transactions on Software Engineering, March 1992, Vol.18, Iss.3, pp.190-205」(以下,これを「引用刊行物2」という)に,

I.「Replication of data is used in several fault-tolerant systems (e.g., ISIS [25]) to increase the availability of data in the presence of processor failures. Orca, in contrast, is not intended for fault-tolerant applications. In our implementation replication is used to decrease the access costs to shared data.
Briefly stated, each processor keeps a local copy of each shared data-object. This copy can be accessed by all processes running on that processor (see Fig. 7). Operations that do not change the object (called read operations) use this copy directly, without any messages being sent.」(198頁左欄16行?25行)
(データの複製は,プロセッサの障害の存在において,データの可用性を増すために,いくつかのフォールト-トレラント・システムで用いられている(例えば,ISIS[25])。対照的に,オルカは,フォールト-トレラント・アプリケーションを対象としていない。我々の実装においては,複製は,共有データのアクセス・コストを削減するために用いられる。手短に言うと,それぞれのプロセッサが,それぞれの共有データ-オブジェクトのローカル・コピーを保持することである。このコピーは,そのプロセッサ上で走っている全てのプロセスによってアクセスされ得る(図7参照)。オブジェクトの変化のない処理(読み出し処理が呼ばれた)は,何らメッセージが送られることなく,直接,このコピーを使用する。<当審にて訳出>)

と記載され,更に,原審が,平成23年1月18日付けの拒絶査定において,周知技術文献として例示した,本願の第1国出願前に既に公知である,「齊籐忠夫,外3名,「FIFO付きブロードキャストメモリを用いた共有メモリの実現とその評価」,電子情報通信学会論文誌,社団法人電子情報通信学会,1992年12月25日,第J75-D-I巻,第12号,pp.1125-1131」(以下,これを「周知文献3」という)に,従来技術として,

J.「ブロードキャストメモリは,各プロセッサにメモリ内容のコピーをもたせ,読出しは各自のメモリにおいて行い,書込みを行うときにはその内容をブロードキャストしてすべてのメモリに同時に書き込むという方式である。 この方式ではメモリからの読出しを独立かつ同時に行うことができるため,メモリへのアクセス競合を低減させることができる。また各メモリをプロセッサから物理的に近い位置に配置することができるため,アクセス時間そのものを小さくする効果もあると考えられる。」(1125頁左欄13行?右欄8行)

と記載されてもいるように,各プロセッサが,それぞれ,ローカルメモリを有し,ローカルのプロセッサ,或いは,ローカルのコンピュータ上で処理されるプログラムが,該プロセッサ,或いは,コンピュータのローカルメモリが有するデータのみにアクセスして処理を実行するよう構成することは,本願の第1国出願前に既に周知の技術事項であり,また,ローカルのメモリにのみアクセスするよう構成する点も,原審が,平成23年1月18日付けの拒絶査定において,周知技術文献として例示した,本願の第1国出願前に既に公知である,特開平02-132543号公報(1990年5月22日公開,以下,これを「周知文献4」という)に,

K.「各リード領域は対応するデュアルポートメモリに接続された中央処理回路ではリードのみができる領域である」(2頁右下欄16行?18行)

と記載されているように,当業者が適宜採用し得る構成である。
そして,アプリケーションにデータ領域が割り当てられているとき,該アプリケーションが,リモートホストで実行される場合に,該リモートホストで使用されるデータ領域は,前記アプリケーションに割り当てられたデータ領域のコピーであるから,前記アプリケーションから見たとき,前記アプリケーションが処理に使用可能な,データ領域は,リモートホストに割り当てられたコピーを加算したものではなく,予め割り当てられたデータ領域の範囲を超えるものでないことは明らかである。
よって,引用発明においても,複数のリモートホストが,それそれローカルメモリを有し,リモートホストにおいて処理を実行する際に,リモートホストの前記メモリのみからデータをリードして処理を実行するよう構成し,その際,プログラムに割り当てられたデータ領域が,全体として,前記データ領域と同一であるようにすることは,引用発明,及び,上記引用の周知技術から,当業者が容易になし得るものである。
よって,相違点3,及び,相違点4は,格別のものではない。

エ.[相違点5]について
“リモートホストにオブジェクトを生成する”点については,原審の平成22年9月14日付けの拒絶理由の「<<理由3>>」における「[請求項]3-6」の[備考]で指摘され,また,例えば,本願の第1国出願前に既に公知である,特開2001-184197号公報(2001年7月6日公開,以下,これを「周知文献5」という)に,

L.「【0032】5.当該コンストラクタは,ローカル通信・管理クラス13を通じて,リモート通信・管理クラス22に,対応するスタブクラスのオブジェクトの生成を依頼する。その際に,自身に係る疑似GUIオブジェクトの識別子と,当該疑似GUIオブジェクトがGUIAP11によって拡張されたクラス(疑似GUIクラス)のオブジェクトであるかどうかを示すフラグとを転送する。拡張されたクラスのオブジェクトである場合には,どのメソッドが再定義されているかを示す情報も転送する。
【0033】6.リモート通信・管理クラス22は,スタブクラス群21におけるスタブクラスのオブジェクト(スタブオブジェクト)を生成し,そのメンバ変数に,当該疑似GUIオブジェクトの識別子と,GUIAP11による拡張・再定義メソッドの情報(上記の5における「拡張されたクラスのオブジェクトであるかどうかを示すフラグ」および「拡張されたクラスのオブジェクトである場合のどのメソッドが再定義されているかを示す情報」)とを格納する。そして,生成したスタブオブジェクトがガベジコレクトされぬように,自身のメンバ変数として保持しているスタブオブジェクトリストにこのスタブオブジェクトを加え,その識別子(当該スタブオブジェクトの識別子)をローカル通信・管理クラス13を通じて当該疑似GUIオブジェクトのコンストラクタに返却する。」

と記載され,さらに,同じく,本願の第1国出願前に既に公知である,特開平11-096009号公報(1999年4月9日公開,以下,これを「周知文献6」という)に,

M.「【0040】C++オブジェクトをnewする際にコンストラクタというプロシージャが動作し,そして,その中で図1に示すようにサーバプロセス2のAAAファクトリー5にCORBAオブジェクト生成の要求が出される(ST2)。
【0041】AAAファクトリー5で要求が受け取られるとAAAファクトリー5により,AAAオブジェクト6が生成される(ST3)。すると,その分散オブジェクトのIDであるオブジェクトリファレンスがコンストラクタという経由でコンストラクタ4に返される(ST4)。そして,コンストラクタによりオブジェクトリファレンスがC++オブジェクトの中に書き込まれ,保持される。」

と記載されてもいるように,本願の第1国出願前に,当業者には周知の技術事項であるから,引用発明においても,各リモートホストにおいて,オブジェクトを生成するよう構成することは,当業者が適宜なし得る事項である。
よって,相違点5は,格別のものではない。

上記で検討したごとく,相違点1?5はいずれも格別のものではなく,そして,本件補正発明の構成によってもたらされる効果も,当業者であれば容易に予測できる程度のものであって,格別なものとは認められない。
よって,本件補正発明は,引用発明,及び,当該技術分野における周知技術に基づいて,当業者が容易に発明をすることができたものであるので,特許法第29条第2項の規定により,特許出願の際独立して特許を受けることができない。

3.補正却下むすび
したがって,本件手続補正は,平成18年法律第55号改正附則第3条第1項によりなお従前の例によるとされる同法による改正前の特許法第17条の2第5項において準用する同法第126条第5項の規定に違反するので,同法第159条第1項において読み替えて準用する同法第53条第1項の規定により却下すべきものである。

よって,補正却下の決定の結論のとおり決定する。

第3.本願発明について
平成23年5月31日付けの手続補正は,上記のとおり却下されたので,本願の請求項1に係る発明(以下,これを「本願発明」という)は,平成22年12月21日付けの手続補正により補正された,上記「1.補正の内容」において,補正前の請求項1として引用した,次の記載のとおりのものである。

「単一のコンピュータでのみ動作するように各々記述されているが,通信ネットワークによって相互接続された複数のコンピュータ上で同時に実行される少なくとも1つのアプリケーションプログラムを有する多重コンピュータシステムであって,
前記アプリケーションプログラムの異なる部分が前記コンピュータのうちの異なるコンピュータ上でほぼ同時に実行され,前記各コンピュータが前記アプリケーションプログラムの対応する部分によってのみアクセス可能な独立したローカルメモリを有し,前記各コンピュータが,読み取りをするコンピュータの前記ローカルメモリのみを読み取ることができ,全ての読み取り要求が,前記要求を受けたコンピュータの前記ローカルメモリを読み取ることによって満足され,前記各コンピュータが,他のいずれのコンピュータの前記ローカルメモリも読み取ることができず,同一な複数のオブジェクトが前記対応するコンピュータに各々作成されることを特徴とする多重コンピュータシステム。」

第4.引用刊行物に記載の発明
一方,原審が平成22年9月14日付けの拒絶理由で引用した,本願の第1国出願前に既に公知である,「上原均、畠山正行,「自動分散型オブジェクト指向シミュレーションシステムの生成」,情報処理学会研究報告,社団法人情報処理学会,1997年8月19日,第97巻,第75号,pp.103-108」には,上記「第2.平成23年5月31日付けの手続補正の却下の決定」の,「2.補正の適否」の,「(2)引用刊行物に記載の発明」において検討したとおりの引用発明が記載されているものと認める。

第5.本願発明と引用発明との対比
本願発明は,上記「第2.平成23年5月31日付けの手続補正の却下の決定」の,「2.補正の適否」の,「(1)補正後の請求項1に係る発明」において言及した本件補正発明における発明特定事項である,「通信ネットワーク」に対する限定事項である,「ローカルメモリ読み取り速度よりも遅いデータ転送速度」という事項と,
同じく,本件補正発明の発明特定事項である,「少なくとも1つのアプリケーションプログラム」に対する限定事項である,
“各アプリケーションプログラムの実行が複数のコンピュータ間で共有され”るという事項と,
同じく,本件補正発明の発明特定事項である,「ローカルメモリ」に対する限定事項である,
“各アプリケーションプログラムに割り当てられたローカルメモリ容量が,同一であり,各アプリケーションプログラムが利用可能な総メモリ容量が,前記割り当てられたメモリ容量であ”るという事項を削除したものであるから,
本願発明と,引用発明との一致点,及び,相違点は,次のとおりである。

[一致点]
単一のコンピュータでのみ動作するように各々記述されているが,通信ネットワークによって相互接続された複数のコンピュータ上で同時に実行されるアプリケーションプログラムを有する多重コンピュータシステムであって,
前記アプリケーションプログラムの異なる部分が前記コンピュータのうちの異なるコンピュータ上でほぼ同時に実行される,多重コンピュータシステム。

[相違点A]
本願発明においては,「複数のコンピュータ上で同時実行される少なくとも1つのアプリケーションプログラムを有する」ものであるのに対して,
引用発明においては,「単一のホスト上で駆動する逐次処理されるプログラム」が,“複数”存在する構成については言及されていない点。

[相違点B]
本願発明においては,「各コンピュータが前記アプリケーションプログラムの対応する部分によってのみアクセス可能な独立したローカルメモリを有し,前記各コンピュータが,読み取りをするコンピュータの前記ローカルメモリのみを読み取ることができ,全ての読み取り要求が,前記要求を受けたコンピュータの前記ローカルメモリを読み取ることによって満足され,前記各コンピュータが,他のいずれのコンピュータの前記ローカルメモリも読み取ることができ」ないものであるのに対して,
引用発明においては,「単一のホスト」,及び,「リモートホスト」が有する「ローカルメモリ」に関しては,特に,言及されていない点。

[相違点C]
本願発明においては,「同一な複数のオブジェクトが前記対応するコンピュータに各々作成される」ものであるのに対して,
引用発明においては,各「リモートホスト」上の「オブジェクト」間の関係について,特に言及されていない点。

第6.相違点についての当審の判断
本願発明と,引用発明との相違点A?相違点Cは,本件補正発明と,引用発明との相違点2,相違点3,及び,相違点5と同じものであるから,上記「第2.平成23年5月31日付けの手続補正の却下の決定」の,「2.補正の適否」の,「(4)相違点に対する当審の判断」において検討したとおり,何れの相違点も,格別のものではない。
そして,本願発明の構成によってもたらされる効果も,当業者であれば容易に予測できる程度のものであって,格別なものとは認められない。

第7.むすび
したがって,本願発明は,本願の特許出願前に日本国内又は外国において頒布された刊行物に記載された発明又は電気通信回線を通じて公衆に利用可能となった発明に基づいて当業者が容易に発明をすることができたものであるので,特許法第29条第2項の規定により特許を受けることができない。

よって,結論のとおり審決する。
 
審理終結日 2013-04-05 
結審通知日 2013-04-08 
審決日 2013-05-20 
出願番号 特願2007-508677(P2007-508677)
審決分類 P 1 8・ 575- Z (G06F)
P 1 8・ 121- Z (G06F)
最終処分 不成立  
前審関与審査官 北元 健太  
特許庁審判長 山崎 達也
特許庁審判官 田中 秀人
石井 茂和
発明の名称 複製メモリフィールドを備えたマルチコンピュータアーキテクチャ  
代理人 大塚 文昭  
代理人 須田 洋之  
代理人 西島 孝喜  
代理人 岸 慶憲  
代理人 熊倉 禎男  
  • この表をプリントする

プライバシーポリシー   セキュリティーポリシー   運営会社概要   サービスに関しての問い合わせ