(57)【要約】【課題】周辺機器の設定に関する操作負担を軽減する。【解決手段】実施形態の情報処理装置は、記憶制御部と、設定部と、を備える。記憶制御部は、第１の機器におけるドライバの設定時またはドライバの設定変更時に、第１の機器を識別する情報を第２の機器の記憶部に記憶させる。記憶制御部はまた、第１の機器上のドライバに含まれ、当該ドライバにより制御される第２の機器の固有の情報を、第１の機器を識別する情報に対応づけて第２の機器の記憶部に記憶させる。設定部は、クラウドシステム上に仮想的に構築される第３の機器がドライバを実行する際に、記憶部から第２の機器の固有の情報を抽出し、第３の機器上のドライバに設定する。【選択図】図１
2018194907.tif 000002
【特許請求の範囲】
【請求項１】
第１の機器におけるドライバの設定時またはドライバの設定変更時に、前記第１の機器を識別する情報と、前記第１の機器上のドライバに含まれ、当該ドライバにより制御される第２の機器の固有の情報と、を対応づけて前記第２の機器の記憶部に記憶させる記憶制御部と、
クラウドシステム上に仮想的に構築される第３の機器が前記ドライバを実行する際に、前記記憶部から前記第２の機器の固有の情報を抽出し、前記第３の機器上のドライバに設定する設定部と、
を備える情報処理装置。
【請求項２】
前記記憶制御部は、前記第１の機器における前記ドライバの設定時またはドライバの設定変更時に、前記ドライバの一部に前記第１の機器を識別する情報を組み入れて、前記記憶部に記憶させることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記記憶制御部は、前記第１の機器のＧＵＩＤ（Globally  Unique  Identifier）およびＵＵＩＤ（Universally  Unique  Identifier）のいずれか一方と、プリンタドライバのＤＥＶＭＯＤＥ構造体の拡張部と、を対応づけて前記記憶部に記憶させることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
コンピュータが、
第１の機器におけるドライバの設定時またはドライバの設定変更時に、前記第１の機器を識別する情報と、前記第１の機器上のドライバに含まれ、当該ドライバにより制御される第２の機器の固有の情報と、を対応づけて前記第２の機器の記憶部に記憶させ、
クラウドシステム上に仮想的に構築される第３の機器が前記ドライバを実行する際に、前記記憶部から前記第２の機器の固有の情報を抽出し、前記第３の機器上のドライバに設定する、
処理を実行することを特徴とする情報処理方法。
【請求項５】
コンピュータに、
第１の機器におけるドライバの設定時またはドライバの設定変更時に、前記第１の機器を識別する情報と、前記第１の機器上のドライバに含まれ、当該ドライバにより制御される第２の機器の固有の情報と、を対応づけて第２の機器の記憶部に記憶させ、
クラウドシステム上に仮想的に構築される第３の機器が前記ドライバを実行する際に、前記記憶部から前記第２の機器の固有の情報を抽出し、前記第３の機器上のドライバに設定する、
処理を実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理装置、情報処理方法および情報処理プログラムに関する。
【背景技術】
【０００２】
近年、仮想化技術の発展と普及に伴い、様々な処理を仮想環境上で実現することが可能となっている。たとえば、ユーザが自分で物理サーバを準備するのではなく、クラウドサービスを利用して仮想環境上に構築された仮想サーバを利用することが一般的になっている。また、プリンタやディスプレイ等、従来情報処理装置の周辺機器として利用されてきた装置も、仮想環境を用いて実現される運用が一般化している。
【０００３】
しかし、仮想環境上でプリンタを利用する場合、クライアントに割り当てられる仮想プリンタが常に同等の機能を有するとは限らない。
【０００４】
かかる状況に対応するため、クライアントとサーバ上の仮想プリンタとの間に依存関係がない環境において、ユーザが容易に所望の印刷属性値を指定することができる印刷処理装置が提案されている。提案される技術では、クライアントと仮想プリンタとがそれぞれ属性ファイルを有する。印刷処理装置は、属性ファイルを融合して新たな印刷属性を生成し、生成した印刷属性に基づいてクライアントからの印刷要求を実行する。
【０００５】
またたとえば、印刷装置を取り換えるたびにホスト計算機に別の印刷制御装置をインストールしたり、印刷装置の異なる機種ごとに別の印刷制御装置を使用する手間を省くための技術が提案されている。当該技術の印刷制御装置は、印刷装置の固有情報のデータベースを作成しておき、当該データベースの情報に基づき印刷データを作成する。このため、印刷制御装置は、異なる機種の印刷装置に対しても印刷を行うことができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−５９２７号公報
【特許文献２】特開２０００−０３５８６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記の技術においては、予め印刷装置各々の機能に基づく属性ファイルを作成して仮想デスクトップ上に定義しておくことになる。このため、初期導入時や印刷装置の交換時などに再度属性ファイルを作成する手間とコストが発生する。また、印刷装置を使用する時にはユーザが属性ファイルを選択する処理が発生する。このため、ユーザが複数の印刷装置を利用して処理を行う場合には、印刷装置ごとに処理を中断して属性ファイルの選択を行う手間が発生する。
【０００８】
１つの側面では、周辺機器の設定に関する操作負担を軽減することができる情報処理装置、情報処理方法および情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
第１の案では、情報処理装置は、記憶制御部と設定部とを備える。記憶制御部は、第１の機器におけるドライバの設定時またはドライバの設定変更時に、第１の機器を識別する情報を第２の機器の記憶部に記憶させる。記憶制御部はまた、第１の機器上のドライバに含まれ、当該ドライバにより制御される第２の機器の固有の情報を、第１の機器を識別する情報に対応づけて第２の機器の記憶部に記憶させる。設定部は、クラウドシステム上に仮想的に構築される第３の機器がドライバを実行する際に、記憶部から第２の機器の固有の情報を抽出し、第３の機器上のドライバに設定する。
【発明の効果】
【００１０】
本発明の１実施態様によれば、周辺機器の設定に関する操作負担を軽減することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施形態にかかる情報処理装置の構成を例示するブロック図である。
【図２】図２は、プリンタの記憶部に記憶される情報の構成の一例を示す図である。
【図３】図３は、実施形態にかかる情報処理装置による印刷処理の大まかな流れの一例を示す図である。
【図４】図４は、実施形態にかかる情報処理装置による拡張部格納処理を説明するための概略図である。
【図５Ａ】図５Ａは、実施形態にかかる情報処理装置によるインストール時の拡張部格納処理の流れの一例を示すフローチャートである。
【図５Ｂ】図５Ｂは、実施形態にかかる情報処理装置による設定変更時の拡張部格納処理の流れの一例を示すフローチャートである。
【図６】図６は、実施形態にかかる情報処理装置による印刷実行時の処理の流れを説明するための概略図である。
【図７】図７は、実施形態にかかる情報処理装置による印刷実行時の処理の流れの一例を示すフローチャートである。
【図８】図８は、変形例１にかかる情報処理システムの概略を示す図である。
【図９】図９は、変形例１にかかる情報処理システムの仮想サーバに格納される対応テーブルに記憶される情報の構造の一例を示す図である。
【図１０】図１０は、変形例１にかかる情報処理システムにおける処理の流れの一例を説明するための図である。
【図１１】図１１は、実施形態にかかる情報処理方法を仮想環境上で実現するための構成の一例を説明するための図である。
【図１２】図１２は、実施形態にかかる情報処理装置のハードウェア構成の一例を示すブロック図である。
【図１３】図１３は、Ｗｉｎｄｏｗｓアプリケーションインタフェースを用いた印刷処理の流れの一例について説明するための図である。
【図１４】図１４は、Ｗｉｎｄｏｗｓアプリケーションインタフェースを用いた印刷実行時の処理の流れの一例について説明するための図である。
【図１５】図１５は、ＤＥＶＭＯＤＥ構造体の基本部について説明するための図である。
【図１６】図１６は、ＤＥＶＭＯＤＥ構造体の拡張部について説明するための図である。
【図１７】図１７は、仮想環境において処理を実行する場合の一例について説明するための図である。
【発明を実施するための形態】
【００１２】
まず、実施形態の説明の前に前提として、印刷処理の流れとプリンタドライバに設定される情報の例について説明する。以下の例ではＷｉｎｄｏｗｓ（登録商標）オペレーティングシステム（ＯＳ）を用いた印刷処理について説明する。
【００１３】
（印刷処理の流れの一例）
図１３は、Ｗｉｎｄｏｗｓアプリケーションインタフェース（ＡＰＩ）を用いた印刷処理の流れの一例について説明するための図である。情報処理装置をプリンタに接続して印刷処理を実行する場合、まず情報処理装置にプリンタドライバをインストールする。ドライバとは、プリンタやディスプレイ等の周辺機器を制御してアプリケーションソフトウェアに対して抽象化したインタフェースを提供するためのソフトウェアである。プリンタドライバに含まれる情報によってプリンタの印刷処理設定が制御される。たとえば、プリンタドライバは、印刷可能な用紙サイズ、印刷処理時の解像度、用紙の両面に印刷する機能の有無等の各種設定情報を含む。
【００１４】
図１３を参照し、Ｗｉｎｄｏｗｓ上でアプリケーションから印刷処理を行う場合を説明する。アプリケーションは、ＷｉｎｄｏｗｓＡＰＩを用いてＷｉｎｄｏｗｓＯＳに問い合わせをする（図１３、（１））。問合せを受けたＷｉｎｄｏｗｓＯＳは、プリンタドライバに対して、印刷処理のための各種設定を問い合わせる。ＷｉｎｄｏｗｓＯＳは、グラフィックデータインタフェース（ＧＤＩ）を経由しプリンタドライバとのインタフェース（ＤＤＩ（Device  Driver  Interface）とも呼ぶ。）を利用して問い合わせを行う（図１３、（２））。プリンタドライバは、プリンタで利用可能な設定情報をＷｉｎｄｏｗｓＯＳに通知する（図１３、（３））。ＷｉｎｄｏｗｓＯＳは、プリンタドライバから得た設定情報を、ＷｉｎｄｏｗｓＡＰＩの復帰値としてアプリケーションに提供する（図１３、（４））。この一連の処理を通じてアプリケーションは、印刷に必要な情報を取得する（図１３、（５））。そして、アプリケーションは取得した情報に基づき、ユーザの指示入力に応じて、用紙サイズ等を選択する設定処理を行う。Ｗｉｎｄｏｗｓの場合通常、印刷処理の設定内容はＤＥＶＭＯＤＥ構造体（後述）と呼ばれるプリンタドライバ情報に格納される。印刷処理の設定は、ユーザがプリンタドライバのユーザインタフェースを表示させて実行することも可能である。
【００１５】
図１４は、ＷｉｎｄｏｗｓＡＰＩを用いた印刷実行時の処理の流れの一例について説明するための図である。まず、アプリケーションから印刷指示がＷｉｎｄｏｗｓＡＰＩを介してＷｉｎｄｏｗｓＯＳに送られる（図１４、（１））。ＷｉｎｄｏｗｓＯＳは、印刷指示に従い、ＧＤＩを経由してＤＤＩを利用してプリンタドライバに印刷処理の実行を要求する（図１４、（２））。ＷｉｎｄｏｗｓＯＳはこのとき、アプリケーションが変更したＤＥＶＭＯＤＥ構造体すなわち印刷設定にかかる情報をプリンタドライバに渡す（図１４、（３））。プリンタドライバは、アプリケーションから提供されるＤＥＶＭＯＤＥ構造体に基づき、印刷に係る情報をプリンタが処理可能な言語に変換し、スプールデータを作成する（図１４、（４））。スプールデータはＷｉｎｄｏｗｓＯＳの「スプーラ」と呼ばれる印刷制御部に保持される（図１４、（５）「スプールファイル」）。スプーラは、プリンタドライバが作成したスプールデータをＷｉｎｄｏｗｓＯＳのポートモニタに送る（図１４、（６））。ポートモニタは、スプーラから受信したスプールデータをプリンタに送信する（図１４、（７））。プリンタは、受信したスプールデータに基づき印刷処理を実行する（図１４、（８））。
【００１６】
このように、ＷｉｎｄｏｗｓＯＳがプリンタに印刷処理の実行を指示するとき、ＷｉｎｄｏｗｓＯＳは印刷のためのデータをプリンタドライバのＤＥＶＭＯＤＥ構造体に記述される情報に基づいてスプールデータに変換する。したがって、印刷処理の実行時には、ＯＳが動作する装置がプリンタドライバのＤＥＶＭＯＤＥ構造体を有している。また、ユーザが印刷に関する設定を行ったり設定を変更したりする場合には、ＤＥＶＭＯＤＥ構造体の形でプリンタドライバに情報が渡される。
【００１７】
（プリンタドライバの情報構成）
プリンタドライバはプリンタごとに作成されるが、インストールされる情報処理装置のＯＳによる処理が可能なように、ＯＳの規格によって構成が決定されている。また、プリンタメーカごとに任意に設定を拡張し独自の機能を実現できるよう、ＯＳの規格外の構成が含まれる。以下、ＯＳの規格によって決定されている部分を基本部、ＯＳの規格外の部分を拡張部と呼ぶ。
【００１８】
ＰＣとプリンタとを接続してプリンタドライバをインストールして印刷処理を実行する場合、プリンタドライバに一度設定情報を格納すると基本的に、以後は設定情報が保持され同じ設定で印刷処理が実行される。しかし、仮想環境で印刷処理を実行した場合、物理装置に設定されているプリンタドライバの情報が仮想環境に引き継がれないことがある。これは、プリンタドライバ拡張部がＯＳの規格外であり、仮想ＯＳが自動的に物理装置からプリンタドライバの拡張部を引き継ぐことができないためである。このため、ユーザは、仮想環境でプリンタを利用する場合、拡張部に該当する設定をいちいちやり直すことになる。以下に、ＷｉｎｄｏｗｓＯＳについて公開されているプリンタドライバの設定を格納するデータ構造であるＤＥＶＭＯＤＥ構造体を例として設定情報について説明する。
【００１９】
（ＤＥＶＭＯＤＥ構造体の構成）
図１５は、ＤＥＶＭＯＤＥ構造体の基本部について説明するための図である。ＤＥＶＭＯＤＥ構造体は、Ｍｉｃｒｏｓｏｆｔ（登録商標）社が提供している、プリンタおよびディスプレイを制御するためのデータ構造である。ＤＥＶＭＯＤＥ構造体は、基本部と拡張部とを含む。
【００２０】
基本部は、印刷処理に最低限必要な基本的情報を設定するためのデータ構造である。たとえば基本部は、用紙の向きを指定する情報（dmOrientation）や用紙のサイズを指定する情報（dmPaperSize）等を含む。なお、ＤＥＶＭＯＤＥ構造体は、プリンタだけでなくディスプレイを制御するためのデータ構造でもあるため、プリンタの制御に関係しない情報も含む。たとえば、dmDisplayFixedOutputは固定解像度のディスプレイのみに適用される情報である。また、dmDisplayFlagsやdmDisplayFrequencyはディスプレイドライバが使用する情報であり、プリンタドライバは使用しない。
【００２１】
拡張部は、各プリンタ固有の情報を定義するデータ構造である。拡張部は、プリンタドライバのユーザインタフェース等を用いてプリンタ装置固有機能の利用設定を行うために利用される。拡張部は、プリンタドライバ開発者が自由に構造を設計することができる。通常、拡張部の構造は公開されない。
【００２２】
拡張部は、図１５に示す基本部のうち、矢印Ｘで示す部分（WORD  dmDriverExtra）に記述される。拡張部は、個々のプリンタ特有の設定条件等を記述する。図１６は、ＤＥＶＭＯＤＥ構造体の拡張部について説明するための図である。図１６は、一般的なプリンタドライバにおけるＤＥＶＭＯＤＥ構造体の定義例である。まず、基本部のdmDriverExtraに、拡張部のデータサイズが定義される（図１６、（Ａ））。その後に、拡張部の本体が続く（図１６、（Ｂ））。
【００２３】
このように、プリンタドライバが印刷処理を実行させるために用いるＤＥＶＭＯＤＥ構造体には、いずれのプリンタにも共通する情報を定義する部分（基本部）と、プリンタ固有の情報を定義する部分（拡張部）とが含まれる。拡張部のサイズは基本部で定義されるが、拡張部本体は基本部に定義されない。このため、プリンタドライバ設計者でなければ、拡張部の構造を知ることは出来ない。
【００２４】
（仮想デスクトップ環境での情報の引継）
図１７は、仮想環境において処理を実行する場合の一例について説明するための図である。仮想デスクトップ環境で仮想プリンタを利用する場合、仮想デスクトップ環境によってはクライアントと仮想プリンタ間のインタフェースを共有として定義する。このため、仮想デスクトップは、クライアントのプリンタドライバの設定を仮想プリンタに引き継ごうとする。このとき、仮想デスクトップは、プリンタドライバのＤＥＶＭＯＤＥ構造体をクライアントから仮想デスクトップにコピーしようとする。
【００２５】
ＤＥＶＭＯＤＥ構造体のうち、基本部の情報は公開されているため、仮想デスクトップは基本部を取得することができる。しかし、拡張部の情報は公開されていないため、仮想デスクトップは、拡張部が格納されるメモリ空間の位置を示すメモリアドレスを取得することができない。このため、仮想デスクトップは拡張部を取得することができない。
【００２６】
このように、仮想デスクトップ環境では、仮想プリンタに対してＤＥＶＭＯＤＥ構造体の基本部に設定されている情報のみが共有される。そして、拡張部の情報は仮想デスクトップ環境に引き継がれない。
【００２７】
一般にプリンタドライバは、拡張部が参照できない場合ドライバモジュール内の初期値を参照して印刷処理を実行する。このため、ユーザが仮想デスクトップ環境にログインして印刷処理を行う場合、拡張部に記述される機能を使用するためには、ログインするごとに拡張部の設定をやり直さなければならない。このためには、ログインごとに、ユーザはプリンタドライバのユーザインタフェースを起動して設定をやり直すことになる。
【００２８】
（第１の実施形態）
以下、図面を参照して、実施形態にかかる情報処理装置、情報処理方法および情報処理プログラムを説明する。実施形態において同一の機能を有する構成には同一の符号を付し、重複する説明は省略する。なお、以下の実施形態で説明する情報処理装置、情報処理方法および情報処理プログラムは、一例を示すに過ぎず、実施形態を限定するものではない。また、以下の各実施形態は、矛盾しない範囲内で適宜組みあわせてもよい。
【００２９】
図１は、実施形態にかかる情報処理装置１の構成を例示するブロック図である。図１に示す情報処理装置１は、仮想環境上に配置される仮想サーバ２およびプリンタ３Ａ，３Ｂ，３Ｃと、接続される。なお、図１には３つのプリンタを示すが、ネットワーク上に配置されるプリンタの数は特に限定されない。また、情報処理装置も任意の数をネットワーク上に配置することができる。
【００３０】
情報処理装置１は、たとえば、パーソナルコンピュータ（ＰＣ）、タブレットコンピュータ、スマートフォン等、任意の情報処理装置である。また、情報処理装置１は、プリンタと接続して印刷処理を実行させる機能を備える。
【００３１】
仮想サーバ２は、仮想ネットワーク上に配置され、仮想的に構築されるサーバである。仮想サーバ２は、情報処理装置１からの要求に応じて情報処理装置１に対応する仮想ＰＣを仮想環境上に構築する。仮想サーバ２はまた、情報処理装置１からの要求に応じて情報処理装置１に対応する仮想デスクトップを提供する。仮想サーバ２はまた、情報処理装置１からの要求に応じて情報処理装置１にプリンタ３Ａ，３Ｂ，３Ｃのいずれかを割り当てる（プリンタマッピング）。また、仮想サーバ２は、情報処理装置１からの要求に応じてプリンタ３Ａ，３Ｂ，３Ｃに印刷処理を実行させる。なお、仮想サーバ２が、情報処理装置１に対応する仮想ＰＣを構築してプリンタ３Ａ，３Ｂ，３Ｃを割り当てると、仮想ＰＣの仮想ＯＳは、情報処理装置１からプリンタドライバを取得する。このとき、上記のように、仮想ＯＳは、構造が公開されている部分（プリンタドライバの基本部）しか取得できない。
【００３２】
仮想サーバ２はたとえば、仮想マシンモニタとしてＸｅｎを利用して構築してもよい。仮想サーバ２はたとえば、Ｃｉｔｒｉｘ  Ｘｅｎ  Ｓｅｒｖｅｒであってよい。また、仮想サーバ２は、Ｃｉｔｒｉｘ  Ｘｅｎ  ＡｐｐやＣｉｔｒｉｘ  Ｘｅｎ  Ｄｅｓｋｔｏｐ等を用いてデスクトップ仮想化およびアプリケーション仮想化を実現してもよい。また、仮想サーバ２は、プリンタマッピングにＣｉｔｒｉｘ  Ｘｅｎ  Ａｐｐ等を使用してもよい。
【００３３】
プリンタ３Ａ，３Ｂ，３Ｃは、印刷機能を有する任意の印刷装置である。プリンタ３Ａ，３Ｂ，３Ｃは、情報処理装置１が仮想環境にログインしたときに、仮想サーバ２によって情報処理装置１に割り当てられる。実施形態においては、情報処理装置１にはプリンタ３Ａ，３Ｂ，３Ｃのうちいずれか１つが割り当てられるものとする。ただし、仮想サーバ２は、一つの情報処理装置に対して複数のプリンタを割り当てたり、複数の情報処理装置に対して一つのプリンタを割り当てたりしてもよい。情報処理装置１が仮想環境からログアウトした後、再度ログインした場合、仮想サーバ２は、再度情報処理装置１にプリンタ３Ａ，３Ｂ，３Ｃのいずれかを割り当てる。プリンタ３Ａ，３Ｂ，３Ｃは各々、情報処理装置１から送信される情報を格納するための記憶部５０Ａ，５０Ｂ，５０Ｃを有する。
【００３４】
（情報処理装置１の構成の一例）
情報処理装置１は、記憶部１０と、制御部２０と、通信部３０と、入出力部４０と、を有する。
【００３５】
記憶部１０は、情報処理装置１における処理に用いられる情報および情報処理装置１における処理によって生成される情報を記憶する。記憶部１０には、半導体メモリ素子等を採用できる。たとえば、半導体メモリ素子としては、ＶＲＡＭ（Ｖｉｄｅｏ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリ（ｆｌａｓｈ  ｍｅｍｏｒｙ）などが挙げられる。
【００３６】
記憶部１０は、ドライバ記憶部１１を有する。ドライバ記憶部１１は、基本部記憶部１１Ａと拡張部記憶部１１Ｂとを有する。ドライバ記憶部１１は、情報処理装置１にネットワークを介して接続され情報処理装置１の指示に応じて印刷処理を実行するプリンタを制御するためのプリンタドライバを記憶する。ドライバ記憶部１１が記憶するプリンタドライバは、基本部と拡張部とを含む。実施形態におけるプリンタドライバは、たとえばＤＥＶＭＯＤＥ構造体によって処理内容が設定されるプリンタドライバである。
【００３７】
制御部２０は、情報処理装置１の動作および機能を制御する。制御部２０にはたとえば、各種の集積回路や電子回路を採用できる。また、制御部２０に含まれる機能部の一部を別の集積回路や電子回路とすることもできる。たとえば、集積回路としては、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）が挙げられる。また、電子回路としては、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などが挙げられる。
【００３８】
制御部２０は、第１の検知部２１と、記憶制御部２２と、第２の検知部２３と、設定部２４と、印刷指示部２５と、を有する。
【００３９】
第１の検知部２１は、ドライバ記憶部１１に記憶されるプリンタドライバの設定の変更を検知する。第１の検知部２１はまた、プリンタドライバのインストールを検知する。たとえば、第１の検知部２１は、新規にプリンタドライバがドライバ記憶部１１に記憶されたことを検知する。
【００４０】
記憶制御部２２は、第１の検知部２１がプリンタドライバの設定の変更および新規にプリンタドライバが記憶されたことを検知した場合に、変更後または新規のプリンタドライバの拡張部をプリンタに送信する。記憶制御部２２はたとえば、拡張部を、当該プリンタドライバに対応する、仮想環境上で情報処理装置１に割当てられるプリンタに送信する。記憶制御部２２はたとえば、プリンタドライバとプリンタとの間の専用ＡＰＩを用いて拡張部をプリンタに送信する。記憶制御部２２は、情報処理装置１が仮想環境にログインしていない状態のときに拡張部をプリンタに送信することができる。
【００４１】
記憶制御部２２が送信するプリンタドライバの拡張部は、当該プリンタドライバに対応する、情報処理装置１と接続ポートで接続されているプリンタの記憶部に記憶される。記憶制御部２２はまた、拡張部に対応付けて情報処理装置１を一意に識別する情報たとえば装置ＩＤ（Identifier）を送信する。たとえば、記憶制御部２２は、情報処理装置１のＵＵＩＤ（Universally  Unique  Identifier）、ＧＵＩＤ（Globally  Unique  Identifier）等を送信する。プリンタは、記憶制御部２２から受信する情報処理装置１を一意に識別する情報と、拡張部とを対応づけて記憶部に記憶する。
【００４２】
図２は、プリンタ３Ａ，３Ｂ，３Ｃの記憶部５０Ａ，５０Ｂ，５０Ｃに記憶される情報の構成の一例を示す図である。プリンタ３Ａ，３Ｂ，３Ｃは、各々記憶部５０Ａ，５０Ｂ，５０Ｃに、自装置がマッピングされる情報処理装置を一意に特定する情報と、当該情報処理装置が使用するプリンタドライバの拡張部と、を対応付けて記憶する。図２の例では、「装置ＩＤ」と「拡張部」とが対応付けて記憶される。「装置ＩＤ」は、情報処理装置を一意に特定する情報である。図２の例では、「装置ＩＤ」はＧＵＩＤである。また、「拡張部」はプリンタドライバの拡張部を示す。図２の例では、「装置ＩＤ、3F2504E0-4F89-11D3-9A0C-0305E82C3301」と「拡張部、ＤＥＶＭＯＤＥ拡張部Ａ」とが対応付けて記憶されている。
【００４３】
第２の検知部２３は、情報処理装置１が仮想環境にログインしたことを検知する。
【００４４】
設定部２４は、第２の検知部２３が仮想環境へのログインを検知した場合に、仮想環境上に構築される仮想ＰＣに対して、マッピングされているプリンタから拡張部を取得して自装置に設定するよう指示する。仮想ＰＣは、拡張部の取得設定が完了すると設定部２４に通知するように構成してもよい。
【００４５】
印刷指示部２５は、第２の検知部２３がログインを検知し、設定部２４の指示に応じて仮想ＰＣに拡張部が設定された後、仮想ＰＣに対して印刷処理の実行を指示する。仮想ＰＣは、設定済みのプリンタドライバの基本部および拡張部に基づき、プリンタに送信するプリンタデータ（スプールデータ）を生成する。仮想ＰＣが生成したプリンタデータはマッピングされているプリンタに送信され印刷処理が実行される。
【００４６】
通信部３０は、情報処理装置１と外部装置との間の通信を実現する。通信部３０はたとえば、ポート、スイッチ、ルータ等を含む。
【００４７】
入出力部４０は、情報処理装置１への情報の入力および情報処理装置１からの情報の出力を実現する。入出力部４０はたとえば、キーボード、マウス、タッチパネル、マイクロフォン等を含む。入出力部４０はまた、ディスプレイ、スピーカ等を含む。
【００４８】
（印刷処理の流れの一例）
図３は、実施形態にかかる情報処理装置による印刷処理の大まかな流れの一例を示す図である。図３の例では、情報処理装置１はプリンタ３Ａにマッピングされるものとする。
【００４９】
まず、情報処理装置１は、自装置上に設定されたプリンタドライバの拡張部と自装置を一意に識別する装置ＩＤとをプリンタに送信する（図３、（１））。プリンタ３Ａは受信した拡張部と装置ＩＤとを対応づけて記憶部５０Ａに格納する（図３、（２））。
【００５０】
次に、情報処理装置１は、仮想環境にログインする（図３、（３））。すると、情報処理装置１に対応する仮想ＰＣが構築され、情報処理装置１に対してプリンタ３Ａが割り当てられる（図３、（４））。仮想ＰＣが構築される際、適宜情報処理装置１内の情報が仮想ＰＣにより取得される。このとき、仮想ＰＣは、情報処理装置１内のプリンタドライバのうち基本部を取得する（図３、（５））。仮想ＰＣは、プリンタドライバの拡張部については取得できない。この時点で仮想ＰＣ上に記憶されるプリンタドライバは、情報処理装置１に設定されている基本部と、初期状態の拡張部と、を含む状態となる。
【００５１】
次に、仮想ＰＣは、プリンタ３Ａの記憶部５０Ａから、情報処理装置１の装置ＩＤに対応付けて記憶される拡張部を取得する（図３、（６））。仮想ＰＣは、取得した拡張部をプリンタドライバに設定する（図３、（７））。この時点で、仮想ＰＣ上のプリンタドライバに含まれる情報と、情報処理装置１上のプリンタドライバに含まれる情報とが一致する（図３、（８））。この後、ユーザが仮想ＰＣ上で印刷処理の実行を指示すると、情報処理装置１上で印刷処理を実行するのと同様の設定内容に基づき、プリンタ３Ａにおける印刷処理が実行される（図３、（９））。
【００５２】
このように仮想環境上でユーザが処理を実行する場合に、クライアント（情報処理装置１）と周辺機器（プリンタ３Ａ）のそれぞれから仮想ＰＣが情報を取得して処理を実行することで、実環境上と同様の処理を仮想環境で実現することができる。この構成によれば、仮想環境ログイン後にプリンタドライバの情報が仮想ＰＣに完全には引き継がれていないことにユーザが気づかず、不所望の設定による印刷処理を実行することを防止できる。また、情報処理装置１からプリンタ３Ａに自動的に拡張部と装置ＩＤとが送信されるため、ユーザが実環境においてプリンタの設定を変更するごとに仮想環境においても設定を変更する手間をなくすことができる。また、プリンタ３Ａは拡張部と装置ＩＤとを対応付けて記憶するため、複数の情報処理装置が同じプリンタ３Ａを使用するときでも、プリンタ３Ａはそれぞれのユーザに対応した設定での処理を実現することができる。
【００５３】
（拡張部格納処理の流れの一例）
図４は、実施形態にかかる情報処理装置１による拡張部格納処理を説明するための概略図である。図５Ａは、実施形態にかかる情報処理装置１によるインストール時の拡張部格納処理の流れの一例を示すフローチャートである。図５Ｂは、実施形態にかかる情報処理装置１による設定変更時の拡張部格納処理の流れの一例を示すフローチャートである。図４、図５Ａ、図５Ｂの処理は、図３の（１）の処理に対応する。
【００５４】
図４に示すように、情報処理装置１は、ネットワークを介して、仮想環境およびプリンタに接続される。まず、ユーザが情報処理装置１においてプリンタドライバのインストールを実行する。情報処理装置１の第１の検知部２１は、プリンタドライバがインストールされたことを検知する。第１の検知部２１がインストールを検知すると、記憶制御部２２は、情報処理装置１の装置ＩＤと、インストールされたプリンタドライバの拡張部とを、当該プリンタドライバに対応するプリンタに送信する。拡張部を受信したプリンタは、記憶部に拡張部と情報処理装置１の装置ＩＤとを対応付けて記憶する。
【００５５】
情報処理装置１が装置ＩＤをプリンタに送信する手法としては、たとえば、拡張部の中に装置ＩＤを記述することができる。
【００５６】
図５Ａの例では、情報処理装置１はまず、プリンタドライバをインストールする（図５Ａ、ステップＳ５１）。そして、情報処理装置１は、自装置の装置ＩＤを、プリンタドライバ中、印刷処理に影響しない箇所に格納する（図５Ａ、ステップＳ５２）。たとえば、情報処理装置１において第１の検知部２１がインストールを検知すると、記憶制御部２２は自動的にＤＥＶＭＯＤＥ構造体の「dmDisplayFrequency」に装置ＩＤを格納する。そして、記憶制御部２２は、装置ＩＤが格納されたＤＥＶＭＯＤＥ構造体をプリンタに送信する（図５Ａ、ステップＳ５３）。たとえば、記憶制御部２２は、装置ＩＤが格納されたＤＥＶＭＯＤＥ構造体を接続ポートを介してプリンタに送信する。
【００５７】
図５Ｂの例では、情報処理装置１の第１の検知部２１は、プリンタドライバの設定の変更有無を検知する（ステップＳ６１）。第１の検知部２１はたとえば、プリンタドライバの設定画面上で所定の操作が行われた場合にプリンタドライバの設定の変更があったことを検知する。たとえば、第１の検知部２１は、プリンタドライバの設定画面上で「更新」ボタンまたは「ＯＫ」ボタンがクリックされたときに、プリンタドライバの設定の変更を検知する。第１の検知部２１が設定の変更を検知した場合（ステップＳ６２、Ｙｅｓ）、記憶制御部２２は、自装置の装置ＩＤと変更後の拡張部とを接続ポート経由でプリンタに送信する（ステップＳ６３）。第１の検知部２１が設定の変更を検知していない場合（ステップＳ６２、Ｎｏ）、情報処理装置１はステップＳ６１に戻って処理を繰り返す。
【００５８】
なお、プリンタドライバ中に装置ＩＤを格納する場合、ＤＥＶＭＯＤＥ構造体であれば、dmDisplayFrequencyの他、ディスプレイドライバのみが使用する部分に格納することができる。たとえば、dmPelsHeightやdmDisplayFlags等を使用できる。
【００５９】
（印刷実行時の処理の流れの一例）
図６は、実施形態にかかる情報処理装置１による印刷実行時の処理の流れを説明するための概略図である。図７は、実施形態にかかる情報処理装置１による印刷実行時の処理の流れの一例を示すフローチャートである。
【００６０】
図６に示すように、情報処理装置１の記憶部１０にはプリンタドライバ（ＤＥＶＭＯＤＥ構造体）の基本部および拡張部の双方が記憶されている。他方、情報処理装置１からプリンタドライバの拡張部を受信したプリンタ３Ａの記憶部５０Ａには拡張部が記憶されている。情報処理装置１が仮想環境にログインしていない状態の間に、拡張部格納処理（図４、図５Ａ、図５Ｂ）により、情報処理装置１とプリンタ３Ａとの間で拡張部が共有される状態となる。
【００６１】
次に、図７に示すように、情報処理装置１が仮想環境にログインする（ステップＳ７０１）。すると、仮想環境上に情報処理装置１が利用する仮想ＰＣが構築され、情報処理装置１に対してプリンタがマッピングされる（ステップＳ７０２）。仮想環境上に仮想ＰＣが構築されると、仮想ＰＣは情報処理装置１から基本部を取得する。この時点で、仮想ＰＣのプリンタドライバに設定される基本部（たとえばDEVMODE  std;）は、情報処理装置１のプリンタドライバに設定される基本部と同一となる。しかし、仮想ＰＣは情報処理装置１から拡張部を取得できないため、仮想ＰＣに設定される拡張部（たとえばEXTDEVMODE  prv;）は、プリンタドライバの構築時の状態すなわち初期状態のままである。
【００６２】
次に、仮想ＰＣのプリンタドライバは、プリンタ３Ａに対して拡張部の提供をＡＰＩを介して要求する（ステップＳ７０３）。このとき、プリンタドライバからプリンタ３Ａに対して情報処理装置１の装置ＩＤが通知される。プリンタ３Ａは、受信した装置ＩＤに対応づけて記憶部５０Ａに記憶されている拡張部をプリンタドライバに対してＡＰＩの復帰値として送信する（ステップＳ７０４）。仮想ＰＣのプリンタドライバは、受信した拡張部を既に取得している基本部とともにプリンタドライバの構造体として設定する（ステップＳ７０５）。この時点で、仮想ＰＣのプリンタドライバに設定される基本部および拡張部とは、情報処理装置１のプリンタドライバに設定される基本部および拡張部と一致する（図６参照）。
【００６３】
仮想ＰＣは以後、ユーザによる印刷指示入力があると、当該指示に応じて印刷対象である情報をプリンタドライバの基本部および拡張部の設定に基づき、印刷データに変換する（ステップＳ７０６）。そして、仮想ＰＣは、印刷データをプリンタ３Ａに送信する（ステップＳ７０７）。印刷データはプリンタ３Ａが処理可能なデータに変換されているため、プリンタ３Ａは受信した印刷データに基づき印刷処理を実行する（ステップＳ７０８）。これによって印刷処理が終了する。
【００６４】
なお、プリンタから仮想ＰＣへの拡張部のコピーのタイミングは特に限定されない。情報処理装置１が仮想環境にログインしプリンタマッピングが実行された時点で実行してもよい。また、仮想ＰＣ上で印刷指示が入力された時点で実行してもよい。ただし、印刷処理を迅速に実行する観点からは、プリンタマッピング時に実行するのが好ましい。
【００６５】
また、仮想ＰＣは基本部の設定に基づく印刷対象データの変換のみを実行して得られたデータをプリンタ３Ａに送信し、拡張部に基づくデータの変換はプリンタ３Ａが実行するように構成することも可能である。
【００６６】
（実施形態の効果）
上記のように、実施形態にかかる情報処理装置は、記憶制御部と、設定部と、を備える。記憶制御部は、第１の機器（たとえば情報処理装置１）におけるドライバの設定時またはドライバの設定変更時に、第１の機器を識別する情報を第２の機器の記憶部（たとえば記憶部５０Ａ）に記憶させる。記憶制御部はまた、第１の機器上のドライバに含まれ、当該ドライバにより制御される第２の機器（たとえばプリンタ３Ａ）の固有の情報を、第１の機器を識別する情報と対応づけて第２の機器の記憶部に記憶させる。設定部は、クラウドシステム上に仮想的に構築される第３の機器（たとえば仮想ＰＣ）がドライバを実行する際に、記憶部（たとえば記憶部５０Ａ）から第２の機器（たとえばプリンタ３Ａ）の固有の情報を抽出する。そして、設定部は抽出した固有の情報を、第３の機器上のドライバに設定する。このように、実施形態にかかる情報処理装置によれば、仮想ＰＣを用いて印刷処理を実行する場合でも、プリンタ側に自動的にドライバの拡張部が送信される。また、拡張部は、当該ドライバの設定を実行した情報処理装置を識別する情報と対応づけてプリンタに記憶される。このため、ユーザは、プリンタドライバの設定をやり直すことなく、それまでの印刷設定を引き継いだ処理を実行することができる。また、ユーザは、複数のプリンタを利用する場合であっても、それぞれのプリンタの固有の情報（拡張部）を予め記憶させることができるため、印刷処理を中断することなく実行できる。また、ユーザは、仮想的に構築された装置を用いて周辺機器の処理を制御する場合でも、実環境で実行した処理と同様の設定で容易に処理を実行することができる。
【００６７】
また、実施形態にかかる情報処理装置において、記憶制御部は、第１の機器におけるドライバの設定時またはドライバの設定変更時に、ドライバの一部に第１の機器を識別する情報を組み入れて、記憶部に記憶させる。このため、情報処理装置は、第１の機器を識別する情報を効率的に記憶部に記憶させることができる。
【００６８】
また、実施形態にかかる情報処理装置において、記憶制御部は、第１の機器のＧＵＩＤ（Globally  Unique  Identifier）と、プリンタドライバのＤＥＶＭＯＤＥ構造体の拡張部と、を対応づけて記憶部に記憶させる。または、記憶制御部は、第１の機器のＵＵＩＤ（Universally  Unique  Identifier）と、プリンタドライバのＤＥＶＭＯＤＥ構造体の拡張部と、を対応づけて記憶部に記憶させる。
【００６９】
また、実施形態にかかる情報処理方法において、コンピュータは、第１の機器におけるドライバの設定時またはドライバの設定変更時に、第１の機器を識別する情報を第２の機器の記憶部に記憶させる。また、コンピュータは、第１の機器上のドライバに含まれ、当該ドライバにより制御される第２の機器の固有の情報を、第１の機器を識別する情報と対応づけて第２の機器の記憶部に記憶させる。さらに、コンピュータは、クラウドシステム上に仮想的に構築される第３の機器がドライバを実行する際に、記憶部から第２の機器の固有の情報を抽出し、第３の機器上のドライバに設定する。
【００７０】
また、実施形態にかかる情報処理プログラムは、コンピュータに、第１の機器におけるドライバの設定時またはドライバの設定変更時に、第１の機器を識別する情報を第２の機器の記憶部に記憶させる。また、情報処理プログラムは、コンピュータに、第１の機器上のドライバに含まれ、当該ドライバにより制御される第２の機器の固有の情報を、第１の機器を識別する情報と対応づけて第２の機器の記憶部に記憶させる。さらに、情報処理プログラムは、コンピュータに、クラウドシステム上に仮想的に構築される第３の機器がドライバを実行する際に、記憶部から第２の機器の固有の情報を抽出させ、第３の機器上のドライバに設定させる。
【００７１】
このように実施形態にかかる情報処理装置、情報処理方法および情報処理プログラムは、第１の機器上のドライバの設定情報のうち、当該ドライバにより制御される第２の機器の固有の情報を記憶部に記憶させる。また、情報処理装置、情報処理方法および情報処理プログラムは、固有の情報に対応づけて第１の機器の識別情報を記憶させる。このため、情報処理装置、情報処理方法および情報処理プログラムは、第１の機器において設定、更新された情報を自動的に記憶部に反映することができる。このため、情報処理装置、情報処理方法および情報処理プログラムは、ユーザが事前にプリンタの機能を把握して仮想環境上にプリンタの設定情報を記憶させる必要をなくすことができる。
【００７２】
また、実施形態によれば、第１の機器を識別する情報と、第２の機器の固有の情報とを対応付けて第２の機器の記憶部に記憶させることで、第２の機器にマッピングされた第１の機器のドライバの設定情報を容易に抽出することができる。このため、ユーザが自分で第２の機器に対応するドライバを選択したり、仮想環境下で設定情報を更新したりする必要をなくすことができる。このため、実施形態にかかる情報処理装置、情報処理方法および情報処理プログラムは、設定項目の漏れや設定ミスの可能性を減じることができる。また、実施形態にかかる情報処理装置、情報処理方法および情報処理プログラムは、設定ミスによる印刷ミスの発生を防止し、生産性の低下を抑制することができる。また、情報処理装置、情報処理方法および情報処理プログラムは、印刷ミスによる無駄な用紙の消費を防止し、省エネにも寄与することができる。
【００７３】
（変形例１）
上記実施形態においては、仮想環境においてクライアントである情報処理装置１が印刷に関する設定を行い、印刷設定の内容を含むプリンタドライバの拡張部をプリンタに送信するよう構成した。しかし、これに限らず、たとえば、情報処理装置１に対して許可する印刷設定の内容を予め決定し、プリンタに設定しておき、情報処理装置１による印刷内容を制御することも可能である。たとえば、複数のクライアントが仮想環境を利用して印刷処理を実行する場合に、クライアントのグループ毎に異なる印刷設定を許可する等の制御が可能である。以下、変形例１としてかかる場合について説明する。
【００７４】
図８は、変形例１にかかる情報処理システム１００の概略を示す図である。変形例１の情報処理システム１００は、情報処理装置１Ａと、仮想サーバ２Ａと、周辺機器Ｐ１〜Ｐｎを備える。
【００７５】
情報処理装置１Ａは、仮想環境にログインして仮想サーバ２Ａにより提供されるクラウドサービスを利用する。情報処理装置１Ａはたとえば、クラウドサービスを利用することで、周辺機器Ｐ１〜Ｐｎを使用して印刷処理等を実行する。
【００７６】
情報処理装置１Ａは、たとえば、パーソナルコンピュータ（ＰＣ）、タブレットコンピュータ、スマートフォン等、任意の情報処理装置であってよい。また、情報処理装置１Ａは、プリンタと接続して印刷処理を実行させる機能を備える。情報処理装置１Ａは、周辺機器を制御するためのデバイスドライバを記憶する。
【００７７】
仮想サーバ２Ａは、クラウドサービスを情報処理装置１Ａに提供する。仮想サーバ２Ａは、情報処理装置１Ａから送信される要求に応じて、仮想環境上に仮想ＰＣを構築する。仮想ＰＣは、情報処理装置１Ａのユーザが情報処理装置１Ａを介して利用する。
【００７８】
周辺機器Ｐ１〜Ｐｎは、情報処理装置１Ａの周辺機器の機能を実現する装置である。周辺機器Ｐ１〜Ｐｎはたとえば、プリンタ、ディスプレイ等である。周辺機器Ｐ１〜Ｐｎは、仮想サーバ２Ａにより制御され、情報処理装置１Ａが仮想環境にログインすると、仮想サーバ２Ａにより情報処理装置１Ａに割り当てられる。情報処理装置１Ａに割り当てられた周辺機器Ｐ１〜Ｐｎは、仮想ＰＣから送信される指示に基づき処理を実行する。
【００７９】
変形例１にかかる周辺機器Ｐ１〜Ｐｎは、デバイスドライバにより制御される。デバイスドライバは、基本部と拡張部とを有する。基本部は、上記実施形態と同様、ＯＳによって決定される構成が公開されている部分である。拡張部は、上記実施形態と同様、ドライバのうち、周辺機器の各メーカが独自の機能に応じて作成する部分である。
【００８０】
（対応テーブルの構造の一例）
図９は、変形例１にかかる情報処理システム１００の仮想サーバ２Ａに格納される対応テーブルに記憶される情報の構造の一例を示す図である。対応テーブルは、情報処理装置が属するグループを特定する情報と、当該グループに属する情報処理装置各々の情報と、を対応づけて記憶する。また、当該グループに割り当てられる周辺機器を特定する情報と、当該周辺機器の処理に関する設定情報を記憶する。
【００８１】
たとえば、周辺機器がプリンタの場合を考える。また、企業の１部署に属する社員が情報処理装置からクラウドサービスを利用してプリンタを使用する。このとき、部署に属する社員を１つのグループＡに属するものとする。そして、グループＡにプリンタＰ１，Ｐ２，Ｐ３が割り当てられるものとする。このとき、部署においては特定の設定でなければ書類を印刷できないようにする必要があるとする。この場合に、当該設定をデバイスドライバの拡張部に記述しておく。そして、グループＩＤと、社員が使用する情報処理装置各々を特定する装置ＩＤと、プリンタＰ１，Ｐ２，Ｐ３各々を特定する情報と、デバイスドライバの拡張部と、を対応づけて仮想サーバ２Ａの対応テーブルに格納する。
【００８２】
図９の例では、「グループＩＤ」と、「クライアントＩＤ」と、「プリンタＩＤ」と、「拡張部」と、が対応付けて記憶される。グループＩＤは、グループを一意に特定する識別情報である。クライアントＩＤは、ユーザが使用する情報処理装置を一意に特定する識別情報である。プリンタＩＤは、プリンタを一意に特定する識別情報である。「拡張部」はプリンタのドライバに設定される、機種依存性の情報部である。たとえば、「グループＩＤ、ＧＲ００１」に対応づけて、クライアントＩＤ「ＣＬ０２８」、「ＣＬ０２９」…「ＣＬ１００」が記憶される。また、「グループＩＤ、ＧＲ００１」に対応付けて、プリンタＩＤ「ＰＲ００１」、「ＰＲ００２」…「ＰＲ０１０」が記憶される。また、「グループＩＤ、ＧＲ００１」に対応付けて、拡張部「ＤＥＶＭＯＤＥ拡張部００１」が記憶される。これは、グループＩＤ「ＧＲ００１」で特定されるグループには、クライアントＩＤ「ＣＬ０２８」、「ＣＬ０２９」…「ＣＬ１００」で特定される情報処理装置のユーザが属することを示す。また、グループＩＤ「ＧＲ００１」で特定されるグループには、プリンタＩＤ「ＰＲ００１」、「ＰＲ００２」…「ＰＲ０１０」で特定されるプリンタが割り当てられることを示す。また、プリンタＩＤ「ＰＲ００１」、「ＰＲ００２」…「ＰＲ０１０」で特定されるプリンタを制御するためのデバイスドライバの拡張部は「ＤＥＶＭＯＤＥ拡張部００１」で特定されることを示す。
【００８３】
このように変形例１では、予めクラウドサービスを利用するグループに対して割り当てるプリンタと、当該プリンタが実行する処理の設定内容を記憶しておく。このように構成すると、グループに属するユーザ全体に対して、プリンタの設定を固定にすることができる。このため、情報処理システム１００は、クラウドサービスを利用するユーザによる周辺機器の設定をグループごとに管理することができる。
【００８４】
図１０は、変形例１にかかる情報処理システム１００における処理の流れの一例を説明するための図である。情報処理システム１００が備える仮想サーバ２Ａは予め、図９の対応テーブルに基づき、周辺機器Ｐ１〜Ｐ４それぞれに拡張部を送信し記憶させる（図１０の（１）〜（４））。この処理によって周辺機器Ｐ１〜Ｐ４は各々、対応するデバイスドライバの拡張部を記憶する。
【００８５】
情報処理装置１Ａは、周辺機器Ｐを制御するためのデバイスドライバを記憶する。デバイスドライバは基本部および拡張部を含む。情報処理装置１Ａはクラウドサービスを利用しない状態で、周辺機器Ｐをデバイスドライバによって制御し処理を実行させる（図１０、（５））。たとえば、情報処理装置１Ａはプリンタドライバ（基本部と拡張部１）を用いてプリンタである周辺機器Ｐに印刷処理を実行させる。
【００８６】
次に、情報処理装置１Ａが仮想環境にログインし、仮想サーバ２Ａが情報処理装置１
Ａに対応する仮想ＰＣを構築する（図１０、（６））。このとき、仮想ＰＣは、情報処理装置１からデバイスドライバの基本部を取得し記憶する。また、仮想ＰＣはマッピングされた周辺機器Ｐ１からデバイスドライバの拡張部（拡張部２）を取得する（図１０、（７））。これにより、仮想ＰＣには、情報処理装置１Ａが記憶する基本部と、周辺機器Ｐ１が記憶する拡張部２と、が記憶される状態になる。この後、仮想ＰＣは周辺機器Ｐ１を用いた処理を、記憶した基本部および拡張部２に基づき実行する。
【００８７】
このように構成すると、情報処理装置１Ａは、直接接続された周辺機器Ｐを使用した処理のための拡張部１を保持しつつ、仮想環境上に配置される周辺機器Ｐ１〜Ｐｎの機能を利用した処理を実行することができる。このため、情報処理システム１００は、ユーザによる設定変更の手間をなくし、かつ、複数ユーザによる処理の一元的管理を実現することができる。また、デバイスドライバを用いて制御される周辺機器であって、デバイスドライバに複数装置に共通の部分と、装置固有の部分とが含まれる周辺機器を制御する場合に、容易にデバイスドライバの情報を仮想環境に反映させることができる。
【００８８】
（仮想環境の構成の一例）
図１１は、実施形態にかかる情報処理方法を仮想環境上で実現するための構成の一例を説明するための図である。図１１に示すクライアント１Ｂ、サーバ２Ｂ、プリンタＰｘ，Ｐｙ，Ｐｚはそれぞれ、図１の情報処理装置１、仮想サーバ２、プリンタ３Ａ，３Ｂ，３Ｃに対応する。
【００８９】
クライアント１Ｂは、ハードウェア上にオペレーションシステム（ＯＳ）がインストールされ、ＯＳ上にアプリケーションおよびユーザ層が構築される。サーバ２Ｂは、ハードウェア上にハイパーバイザが構築され、ハイパーバイザ上で仮想マシン（ＶＭ）が動作する。プリンタドライバ等のデバイスドライバは、クライアント１ＢのＯＳ層に配置され、クライアント１Ｂに割り当てられたＶＭのゲストＯＳが動作する空間にデバイスドライバの情報がコピーされる。クライアント１ＢのＯＳ層に配置されたデバイスドライバはまた、プリンタの任意の記憶部に送信され記憶される。図１１の例は、ハードウェア上で直接ハイパーバイザが動作する仮想マシンである。しかし、これに限らず、他のＯＳ上でハイパーバイザが動作する構成を採用してもよい。
【００９０】
（情報処理プログラム）
情報処理装置１で行われる各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ（Micro  Controller  Unit）等のマイクロ・コンピュータ）上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ等のマイクロ・コンピュータ）で解析実行されるプログラム上、またはワイヤードロジックによるハードウェア上で、その全部または任意の一部を実行するようにしてもよい。また、機能ブロックの一部を別のコンピュータで実現してもよい。
【００９１】
ところで、上記の実施形態で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータ（ハードウエア）の一例を説明する。図１２は、実施形態にかかる情報処理装置１０００のハードウェア構成の一例を示すブロック図である。
【００９２】
図１２に示すように、情報処理装置１０００は、各種演算処理を実行するＣＰＵ１０１と、データ入力を受け付ける入力装置１０２と、モニタ１０３と、スピーカ１０４とを有する。また、情報処理装置１は、記憶媒体からプログラム等を読み取る媒体読取装置１０５と、各種装置と接続するためのインタフェース装置１０６と、有線または無線により外部機器と通信接続するための通信装置１０７とを有する。また、情報処理装置１０００は、各種情報を一時記憶するＲＡＭ１０８と、ハードディスク装置１０９とを有する。また、情報処理装置１内の各部（１０１〜１０９）は、バス１１０に接続される。
【００９３】
ハードディスク装置１０９には、上記の実施形態で説明した各種の処理を実行するためのプログラム１１１が記憶される。また、ハードディスク装置１０９には、プログラム１１１が参照する各種データ１１２が記憶される。入力装置１０２は、たとえば、情報処理装置１の操作者から操作情報の入力を受け付ける。モニタ１０３は、たとえば、操作者が操作する各種画面を表示する。インタフェース装置１０６は、たとえば印刷装置等が接続される。通信装置１０７は、ＬＡＮ（Local  Area  Network）等の通信ネットワークと接続され、通信ネットワークを介した外部機器との間で各種情報をやりとりする。
【００９４】
ＣＰＵ１０１は、ハードディスク装置１０９に記憶されたプログラム１１１を読み出して、ＲＡＭ１０８に展開して実行することで、各種の処理を行う。なお、プログラム１１１は、ハードディスク装置１０９に記憶されていなくてもよい。たとえば、情報処理装置１０００が読み取り可能な記憶媒体に記憶されたプログラム１１１を、情報処理装置１０００が読み出して実行するようにしてもよい。情報処理装置１が読み取り可能な記憶媒体は、たとえば、ＣＤ−ＲＯＭやＤＶＤディスク、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、ＬＡＮ等に接続された装置にこのプログラムを記憶させておき、情報処理装置１がこれらからプログラムを読み出して実行するようにしてもよい。
【符号の説明】
【００９５】
１  情報処理装置
２  仮想サーバ（仮想ＰＣ）
３Ａ，３Ｂ，３Ｃ  プリンタ
１０  記憶部
１１  ドライバ記憶部
１１Ａ  基本部記憶部
１１Ｂ  拡張部記憶部
２０  制御部
２１  第１の検知部
２２  記憶制御部
２３  第２の検知部
２４  設定部
２５  印刷指示部
３０  通信部
４０  入出力部
５０Ａ，５０Ｂ，５０Ｃ  記憶部
【図１】
2018194907.tif 000003
【図２】
2018194907.tif 000004
【図３】
2018194907.tif 000005
【図４】
2018194907.tif 000006
【図５Ａ】
2018194907.tif 000007
【図５Ｂ】
2018194907.tif 000008
【図６】
2018194907.tif 000009
【図７】
2018194907.tif 000010
【図８】
2018194907.tif 000011
【図９】
2018194907.tif 000012
【図１０】
2018194907.tif 000013
【図１１】
2018194907.tif 000014
【図１２】
2018194907.tif 000015
【図１３】
2018194907.tif 000016
【図１４】
2018194907.tif 000017
【図１５】
2018194907.tif 000018
【図１６】
2018194907.tif 000019
【図１７】
2018194907.tif 000020