【事件の表示】
　特願２００７−３３４３４３「バーチャルマシーンの動的生成」拒絶査定不服審判事件〔平成２０年　７月１７日出願公開、特開２００８−１６５７９５〕について、次のとおり審決する。
【結　論】
　本件審判の請求は、成り立たない。
【理　由】
１．手続の経緯
　本願は、平成１９年１２月２６日（パリ条約による優先権主張；２００６年１２月２９日，米国）を出願日とする出願であって、出願後の手続きの経緯は次のとおりである。
　
拒絶理由の通知　　　　（起案日）平成２２年８月９日
意見、手続補正　　　　（提出日）平成２２年１１月１７日
拒絶査定　　　　　　　（起案日）平成２３年３月１０日
同　謄本送達　　　　　（送達日）平成２３年３月２２日
審判請求　　　　　　　（提出日）平成２３年７月２１日
手続補正　　　　　　　（提出日）平成２３年７月２１日
前置報告　　　　　　　（作成日）平成２３年８月１７日
審尋　　　　　　　　　（起案日）平成２３年１２月２２日
回答　　　　　　　　　（提出日）平成２４年４月１０日
　
２．本願発明
　本願の請求項１に係る発明は、平成２３年７月２１日付けの手続補正書により補正された特許請求の範囲の請求項１に記載されたとおりの次の事項により特定されるものである。（以下「本願発明」という。）
「【請求項１】
　バーチャルマシーン（ＶＭ）を生成する方法であって、
　計算装置のＶＭマネージャが、クローン化対象のソースＶＭの内部で実行されるプログラムの実行中にＶＭマネージャによって前記プログラムから受信される、前記ソースＶＭのＶＭクローンを生成するための実行時リクエストを検出するステップと、
　前記ＶＭマネージャが、前記クローン化リクエストの検出に応答して、前記ソースＶＭの構成を読み取り、前記ソースＶＭの動作状態を特定するステップと、
　前記ＶＭマネージャが、前記ソースＶＭの特定された動作状態をクローン化するためのバーチャルハードウェア構成を生成するステップと、
　前記ＶＭマネージャが、実行時に、前記クローン化リクエストに応答して、前記バーチャルハードウェア構成から前記計算装置上のＶＭクローンの物理的ハードウェアリソースへのマッピングを生成するステップと、
　前記ＶＭマネージャが、前記マッピングに基づき、前記物理的ハードウェアリソース上で前記ＶＭクローンを生成するステップと、
を有する方法であって、
　前記物理的ハードウェアリソースは、処理リソースとメモリリソースとを含む方法。」
　
 ３．先行技術
　
（１）引用文献１の記載内容
　原審で引用された、本願優先権主張日前に頒布または電気通信回線を通じて公衆に利用可能となされた文献である特開２００４−１３３８９４号公報（ 以下、「引用文献１」という。）には、図面とともに次の記載がある。（下線は当審付与。）
　
ア「【請求項１】
仮想マシン処理の効率を高めるための方法において、第１のホストシステム上に親仮想マシンを提供するステップと、前記親仮想マシンを一時的に中止するステップと、前記親仮想マシンをフォーキングして、少なくとも一つの新しいロケーションにおいて少なくとも一つの子仮想マシンを生成するステップとを備えた
方法
　
イ「【０００１】
本発明は一般的に仮想マシンの分野に関し、特に詳細には、
フォーキング
の概念を仮想マシンに適応するための方法
　
ウ「【０００７】
実際のマシンに対する仮想マシンの一つの利点は、迅速かつ安価に複数例の仮想マシンを生成する機能を有していることである。もし、仮想マシンの実装によって許されるならば、複数の仮想マシンは単一のホストマシン（ホストコンピュータシステム）の環境中に同時に存在することができる。ホストマシンの資源を種々の仮想マシン間で分割することができる。
例えば、４つのプロセッサおよび１ギガバイトのランダムアクセスメモリ（ＲＡＭ）を提供する単一のホストマシンを、４つの仮想マシンに平等に分割し、各仮想マシンに１つのプロセッサおよび２５６メガバイトのＲＡＭを与えることができる。他の資源割り当ての分割も可能である
　
エ「【発明を実施するための最良の形態】
【００１９】
エミュレートされたコンピュータシステム、すなわち仮想マシンにおいて、
エミュレーションプログラムは、ホストコンピュータシステムにおけるエミュレートされた動作環境を提供する。
エミュレーションプログラム１４は、ホストコンピュータシステムハードウェア、すなわちプロセッサ１１で動作するホストオペレーティングシステム上で動作する。エミュレーションプログラム１４は、ゲストオペレーティングシステム１８を含むゲストコンピュータシステム１６をエミュレートする。ゲストアプリケーションプログラムはゲストオペレーティングシステム１８上で実行することができる。
　
オ「【００２０】
図２および図３を参照して、
「フォーキング」は、ＵＮＩＸ（登録商標）プロセスおよびそのアドレス空間の複製を記述するために、ＵＮＩＸ（登録商標）プログラマーに用いられている用語である
【００２１】
本発明において、
単一のプロセスをフォーキングすることの概念は、仮想マシンの概念と組合わされている。
　
カ「【００２３】
図２には仮想マシンをフォークするための方法２０の流れ図を示す。ステップ２０２において、親仮想マシンを中止する。
ステップ２０４において、コピーすなわち「スナップショット（ｓｎａｐｓｈｏｔ）」を、親仮想マシンのメモリ以外の全ての構成要素で作る。ステップ２０６において、そのスナップショットを新しいロケーション、すなわち、その親のロケーション以外のロケーションに移動させる。
　
（２）引用発明の認定
ア　引用文献１には上記（１）アに記載のとおりの
「仮想マシン処理の効率を高めるための方法において、
第１のホストシステム上に親仮想マシンを提供するステップと、
前記親仮想マシンを一時的に中止するステップと、
前記親仮想マシンをフォーキングして、少なくとも一つの新しいロケーションにおいて少なくとも一つの子仮想マシンを生成するステップとを備えたことを特徴とする方法」
が記載されている。
　また、この「方法」は、上記（１）イの記載のとおり「フォーキング」「の概念を仮想マシンに適応するための方法」にほかならず、また、該「フォーキング」とは上記（１）オの記載などからみて「ＵＮＩＸ」における「プロセス」の「フォーキング」のことを意味する。
　したがって、引用文献１には
「ＵＮＩＸにおけるプロセスのフォーキングの概念を仮想マシンに適応することで、仮想マシン処理の効率を高めるための方法であって、
第１のホストシステム上に親仮想マシンを提供するステップと、
前記親仮想マシンを一時的に中止するステップと、
前記親仮想マシンをフォーキングして、少なくとも一つの新しいロケーションにおいて少なくとも一つの子仮想マシンを生成するステップとを備え」
る方法が記載されていると言える。
　
イ　上記（１）エの記載から、
「前記仮想マシンは
ホストコンピュータシステムハードウェアで動作するホストオペレーティングシステム上で動作し、ゲストオペレーティングシステムを含むゲストコンピュータシステムをエミュレートするエミュレーションプログラムが動作環境を提供するもの」であると言える。
　
ウ　上記（１）カの記載から、
「前記子仮想マシンを生成するステップは、
スナップショットを、親仮想マシンのメモリ以外の全ての構成要素で作るステップと、
そのスナップショットを新しいロケーション、すなわち、その親のロケーション以外のロケーションに移動させるステップ
を有するものである」
と言える。
　
エ　よって、引用文献１には、下記引用発明が記載されていると認められる。
　
＜引用発明＞
「ＵＮＩＸにおけるプロセスのフォーキングの概念を仮想マシンに適応することで、仮想マシン処理の効率を高めるための方法であって、
第１のホストシステム上に親仮想マシンを提供するステップと、
前記親仮想マシンを一時的に中止するステップと、
前記親仮想マシンをフォーキングして、少なくとも一つの新しいロケーションにおいて少なくとも一つの子仮想マシンを生成するステップとを備え、
前記仮想マシンは
ホストコンピュータシステムハードウェアで動作するホストオペレーティングシステム上で動作し、ゲストオペレーティングシステムを含むゲストコンピュータシステムをエミュレートするエミュレーションプログラムが動作環境を提供するものであって、
前記子仮想マシンを生成するステップは、
スナップショットを、親仮想マシンのメモリ以外の全ての構成要素で作るステップと、
そのスナップショットを新しいロケーション、すなわち、その親のロケーション以外のロケーションに移動させるステップ
を有するものである
方法」
　
　
（３）引用文献２の記載内容
　同じく、原審で引用された本願優先権主張日前に頒布または電気通信回線を通じて公衆に利用可能となされた文献である、特開２００５−２１６２８８号公報（ 以下、「引用文献２」という。）には、図面とともに次の記載がある。（下線は当審付与。）
　
ア「【００３６】
　各異機種デバイス１１は、リソースを管理し、周辺機器へのアクセスを提供し、メモリリソースを割り当て、プログラム実行および終了を制御するオペレーティングシステムを含む。各オペレーティングシステムは、明記できるプロセスのメモリ空間をクローニングすることによって、複数の独立した、分離ユーザアプリケーションを発生するプロセスクローニングメカニズムをサポートする。本発明における使用に適したプロセスクローニングメカニズムの一例は、Ｕｎｉｘ（登録商標）またはＬｉｎｕｘオペレーティングシステムによって提供されるｆｏｒｋ（）システムコールである。ｆｏｒｋ（）システムコールは、Ｍ．Ｊ．Ｂａｃｈによる「Ｔｈｅ　Ｄｅｓｉｇｎ　Ｏｆ　Ｔｈｅ　Ｕｎｉｘ（登録商標）　Ｏｐｅｒａｔｉｎｇ　Ｓｙｓｔｅｍ」（Ｃｈ．７、Ｂｅｌｌ　Ｔｅｌｅ．Ｌａｂｓ．，Ｉｎｃ．（１９８６）に記載されている。この文献の開示内容は、本明細書中、参考として援用される。
ｆｏｒｋ（）システムコールを呼び出すプロセスは、親プロセスとして公知であり、新たに作成されるプロセスは子プロセスと呼ばれる。
　
イ「【００５５】
　（マスタＪＶＭプロセスマッピング）
　図３は、例として、メモリ６２にマッピングされるマスタＪＶＭプロセス３３を示すブロック図６０である。概して、実行するプロセスのコンテキストには、データ空間、ユーザスタック、カーネルスタック、ならびに、オープンファイル、現在のディレクトリ、および監視許可設定をリスト化するユーザ領域が含まれる。他のタイプのコンテキストも提供され得る。コンテキストは、オペレーティングシステムによって、メモリ６２に格納され、管理される。デバイスブート時において、オペレーティングシステムは、おそらくは、連続していないページ６４ａ〜ｄにおいて、実行可能なマスタＪＶＭプロセス３３をメモリ６２にインスタンス化し、マスタＪＶＭプロセス３３の実行を開始する前に、
メモリ空間の割り当てをページテーブルエントリ６３としてページテーブル６１に記録する。
【００５６】
　（クローニングされたＪＶＭマッピング）
　図４は、例として、メモリ空間クローニングを介して、メモリ６２にマッピングされた、マスタＪＶＭプロセス３３およびクローニングされたＪＶＭプロセス３４を示すブロック図７０である。書き込み時コピーセマンティクスを提供しないプロセスクローニングを用いるシステムにおいて、親プロセスコンテキストを格納する、メモリ６２内のページ６４ａ〜ｃの物理的コピーは、子プロセスのそれぞれについて作成される。プロセスクローニングリクエストに応答して、オペレーティングシステムは、クローニングされたＪＶＭプロセス３４について、実行可能なマスタＪＶＭプロセス３３の表現のコピーを、メモリ６２に、おそらくは、非連続的なページ７２ａ〜ｄにおいて、インスタンス化し、クローニングされたＪＶＭプロセス３４の実行を開始する前に、
メモリ空間の割り当てを、ページテーブルエントリ７１として、ページテーブル６１に記録する。
【００５７】
　（書き込み時コピーを用いるクローニングされたＪＶＭプロセスマッピング）
　図５Ａ〜５Ｂは、例として、書き込み時コピーセマンティクスを用いるメモリ空間クローニングを介して、メモリ６２にマッピングされた、マスタＪＶＭプロセス３３およびクローニングされたＪＶＭプロセス３４を示すブロック図８０および９０である。書き込み時コピーセマンティクスを提供するプロセスクローニングを用いるシステムにおいて、
親プロセスコンテキストを格納するメモリ空間への参照、代表的には、ページテーブルエントリのコピーのみが、子プロセスのそれぞれについて作成される。
　
　
４．対比
　以下、本願発明と引用発明とを比較する。
　
（１）引用発明は「子仮想マシンを生成するステップ」を備えた方法であるから、本願発明と同様に「バーチャルマシーン（ＶＭ）を生成する方法」と言えるものである。
　
（２）引用発明においては「仮想マシン」は「ホストオペレーティングシステム上で動作」する「エミュレーションプログラムが動作環境を提供するもの」であるから、該「ホストオペレーティングシステム」及び「エミュレーションプログラム」（以下「エミュレーションプログラム等」と記す。）は、本願発明における「ＶＭマネージャ」に相当するものであると言える。
　
（３）引用発明は「スナップショット」を「作るステップ」を有するものであるところ、「スナップショット」が「一時的に中止」された「親仮想マシン」の動作状態が反映されたものであることは明らかであり、また、これは「親仮想マシン」の「構成要素」で作られるのであるから、該「スナップショット」を作る際にエミュレーションプログラム等が「親仮想マシン」の構成を読み取っていることも明らかである。
　したがって、引用発明と本願発明とは「ＶＭマネージャが」「ソースＶＭの構成を読み取り、前記ソースＶＭの動作状態を特定するステップ」を有する点で共通するといえる。
　
（４）引用発明において作られた「スナップショット」は、これが「新しいロケーション、すなわち、その親のロケーション以外のロケーションに移動させ」られることで「子仮想マシンを生成する」のであるから、「前記ソースＶＭの特定された動作状態をクローン化するためのバーチャルハードウェア構成」とも言えるものであり、引用発明も本願発明と同様に「前記ＶＭマネージャが、前記ソースＶＭの特定された動作状態をクローン化するためのバーチャルハードウェア構成を生成するステップ」を有するといえる。
　
（５）引用発明は「そのスナップショットを新しいロケーション、すなわち、その親のロケーション以外のロケーションに移動させるステップ」を有するものであるところ、当該移動に際してその移動先の「ロケーション」が特定されることは自明であるから、引用発明と本願発明とは「前記ＶＭマネージャが、実行時に、前記バーチャルハードウェア構成から前記計算装置上のＶＭクローンの物理的ハードウェアリソースへのマッピングを生成するステップ」を有する点で共通するといえる。
　なお、本願発明における「マッピング」とは所謂「ページテーブル」を意味するものとの解釈も可能であるが、フォーク等に際して「ページテーブル」を用いることは、周知慣用技術に過ぎないものであり（必要があれば上記３（３）イを参照。）、この点を相違点と仮定しても、本審決の結論に影響を与えるものではない。
　
（６）そして、引用発明においては「そのスナップショットを新しいロケーション、すなわち、その親のロケーション以外のロケーションに移動させる」ことで「子仮想マシンを生成する」のであるから、引用発明も本願発明と同様に「前記ＶＭマネージャが、前記マッピングに基づき、前記物理的ハードウェアリソース上で前記ＶＭクローンを生成するステップ」を有するといえる。
　
（７）また、通常物理的ハードウェアリソースは処理リソースとメモリリソースとを含むものであり、引用発明もこれを前提としていることは明らかである（必要があれば上記３（１）ウを参照。）。
　
（８）よって、本願発明は、下記一致点で引用発明と一致し、下記相違点で引用発明と相違する。
　
＜一致点＞
「バーチャルマシーン（ＶＭ）を生成する方法であって、
　ＶＭマネージャが、ソースＶＭの構成を読み取り、前記ソースＶＭの動作状態を特定するステップと、
　前記ＶＭマネージャが、前記ソースＶＭの特定された動作状態をクローン化するためのバーチャルハードウェア構成を生成するステップと、
　前記ＶＭマネージャが、実行時に、前記バーチャルハードウェア構成から前記計算装置上のＶＭクローンの物理的ハードウェアリソースへのマッピングを生成するステップと、
　前記ＶＭマネージャが、前記マッピングに基づき、前記物理的ハードウェアリソース上で前記ＶＭクローンを生成するステップと、
を有する方法であって、
　前記物理的ハードウェアリソースは、処理リソースとメモリリソースとを含む方法。」
　
＜相違点＞
　本願発明は「計算装置のＶＭマネージャが、クローン化対象のソースＶＭの内部で実行されるプログラムの実行中にＶＭマネージャによって前記プログラムから受信される、前記ソースＶＭのＶＭクローンを生成するための実行時リクエストを検出するステップ」を有し、
　ソースＶＭの構成を読み取り、前記ソースＶＭの動作状態を特定するステップが「前記クローン化リクエストの検出に応答して」なされ、前記バーチャルハードウェア構成から前記計算装置上のＶＭクローンの物理的ハードウェアリソースへのマッピングを生成するステップが「前記クローン化リクエストに応答して」なされるものである。
（これに対し、引用発明の方法が何処からの如何なるリクエストに応じて開始されるものであるのかを明示する記載は引用文献１には無い。）
　
　
５　判断
　上記相違点について検討するに、引用発明は「ＵＮＩＸにおけるプロセスのフォーキングの概念を仮想マシンに適応する」ものなのであるから、「ＵＮＩＸにおけるプロセスのフォーキング」と同様のリクエストに応じてその実行を開始させるようにすることは、引用文献１に接した当業者であれば当然の如く想到することである。
　そして、上記３（３）アに示される様に、ＵＮＩＸにおいては「親プロセス」すなわちフォークの元となるシステムで実行されているプログラム自身が「ｆｏｒｋ（）システムコールを呼び出す」ことで「フォーキング」を行うことが普通に行われている。
　してみると、引用発明においても「親仮想マシン」が実行しているプログラムがそのフォークの要求を行うようにすることすなわち、「計算装置のＶＭマネージャが、クローン化対象のソースＶＭの内部で実行されるプログラムの実行中にＶＭマネージャによって前記プログラムから受信される、前記ソースＶＭのＶＭクローンを生成するための実行時リクエストを検出するステップ」に相当するステップを有するものとすることは、当業者であれば当然の如く想到する構成である。そして、その採用に格別な阻害要因も認められない。
　また、かかる構成を採用した際には、ソースＶＭの構成を読み取り、前記ソースＶＭの動作状態を特定するステップが「前記クローン化リクエストの検出に応答して」なされ、前記バーチャルハードウェア構成から前記計算装置上のＶＭクローンの物理的ハードウェアリソースへのマッピングを生成するステップが「前記クローン化リクエストに応答して」なされるものとなることは必然的に採用される事項にすぎない。
　したがって、上記相違点に係る構成は、当業者であれば適宜に採用し得た設計的事項に過ぎないものである。
　
　したがって、本願発明の構成は引用発明に基づいて、当業者が容易に想到し得たものである。
　そして、当該構成の採用によって奏される作用効果も、当業者であれば容易に予測し得る程度のものであって、格別顕著なものではない。
　よって、本願発明は、引用発明に基づいて、当業者が容易に発明をすることができたものである。
　
６　むすび
　以上のとおり、本願請求項１に係る発明は、その出願前に日本国内又は外国において頒布された刊行物に記載された発明又は電気通信回線を通じて公衆に利用可能となった発明に基いて、当業者が容易に発明をすることができたものであるから、特許法第２９条第２項の規定により特許を受けることができないものであり、他の請求項についての検討をするまでもなく、本願を拒絶すべきものとした原審の拒絶査定は妥当なものである。
　
　よって、上記結論のとおり審決する。