以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
<システム構成>
まず、本実施形態に係る情報処理システム1のシステム構成について、図1を用いて説明する。図1は、一実施形態に係る情報処理システム1の一例のシステム構成を示す図である。
図1に示すように、本実施形態に係る情報処理システム1は、1台以上のクライアント装置10と、1台以上の画像形成装置20と、サーバ装置30とを含み、これら装置はLAN(Local Area Network)等のネットワークNを介して互いに通信可能に接続されている。
クライアント装置10は、例えばPC(パーソナルコンピュータ)、スマートフォン、タブレット端末等である。クライアント装置10は、例えば、ユーザからの印刷指示を受け付けて、印刷対象データから印刷データを作成した上で、印刷データを画像形成装置20に送信する。又は、クライアント装置10は、例えば、ユーザからの印刷指示を受け付けて、印刷対象データをサーバ装置30に送信する。
なお、印刷対象データとは、例えば、画像データや文書データ等の印刷可能な電子データである。また、印刷データとは、例えば、印刷対象データを、画像形成装置20が印刷可能なPDL(Page Description Language)形式に変換した電子データである。
画像形成装置20は、例えばプリンタ、印刷機能を備えたMFP(Multifunction Peripheral)等である。画像形成装置20は、クライアント装置10又はサーバ装置30から受信した印刷データを印刷する。
サーバ装置30は、例えばPC等である。サーバ装置30は、例えば、クライアント装置10から受信した印刷対象データから印刷データを作成して、作成した印刷データを画像形成装置20に送信する。
また、サーバ装置30は、ファイルサーバとして機能しても良い。すなわち、サーバ装置30は、例えば、クライアント装置10から受信した印刷データを記憶しておき、画像形成装置20からの要求に応じて、記憶した印刷データを要求元の画像形成装置20に送信しても良い。
なお、以降では、1台以上のクライアント装置10について、各々を区別するときは、「クライアント装置10-1」、「クライアント装置10-2」等と表す。同様に、1台以上の画像形成装置20について、各々を区別するときは、「画像形成装置20-1」、「画像形成装置20-2」等と表す。
<ハードウェア構成>
次に、本実施形態に係る情報処理システム1に含まれるクライアント装置10、画像形成装置20、及びサーバ装置30のハードウェア構成について、図2及び図3を用いて説明する。
≪クライアント装置10及びサーバ装置30≫
図2は、一実施形態に係るクライアント装置10及びサーバ装置30の一例のハードウェア構成を示す図である。なお、クライアント装置10及びサーバ装置30は、同様のハードウェア構成を有しているため、以降では、クライアント装置10のハードウェア構成について説明する。
図2に示すように、本実施形態に係るクライアント装置10は、入力装置101と、表示装置102と、外部I/F103と、RAM(Random Access Memory)104とを有する。また、クライアント装置10は、ROM(Read Only Memory)105と、CPU(Central Processing Unit)106と、通信I/F107と、HDD(Hard Disk Drive)108とを有する。これらのハードウェアは、バスBで互いに接続されている。
入力装置101は、キーボードやマウス、タッチパネル等を含み、ユーザが各操作信号を入力するのに用いられる。表示装置102は、ディスプレイ等を含み、クライアント装置10による処理結果を表示する。なお、入力装置101及び表示装置102の少なくとも一方は、必要なときにクライアント装置10に接続して利用する形態であっても良い。
通信I/F107は、クライアント装置10をネットワークNに接続するインタフェースである。クライアント装置10は、通信I/F107を介して通信を行うことができる。
HDD108は、プログラムやデータを格納している不揮発性の記憶装置である。HDD108に格納されるプログラムやデータには、クライアント装置10全体を制御する基本ソフトウェアであるOS(Operating System)、OS上において各種機能を提供するアプリケーションソフトウェア等がある。
なお、クライアント装置10は、HDD108に代え、記憶媒体としてフラッシュメモリを用いるドライブ装置(例えばソリッドステートドライブ:SSD)を有して良い。また、HDD108は、格納しているプログラムやデータを所定のファイルシステムやDBにより管理している。
外部I/F103は、外部装置とのインタフェースである。外部装置には、記録媒体103a等がある。クライアント装置10は、外部I/F103を介して記録媒体103aの読み取りや書き込みを行うことができる。記録媒体103aには、フレキシブルディスク、CD、DVD、SDメモリカード、USBメモリ等がある。
ROM105は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ROM105には、OS設定、ネットワーク設定等のプログラムやデータ、及びクライアント装置10の起動時に実行されるBIOS(Basic Input/Output System)が格納されている。RAM104は、プログラムやデータを一時保持する揮発性の半導体メモリである。
CPU106は、ROM105やHDD108等の記憶装置からプログラムやデータをRAM104上に読み出し、当該プログラムやデータに基づく処理を実行することで、クライアント装置10全体の制御やその他の機能を実現する演算装置である。
本実施形態に係るクライアント装置10及びサーバ装置30は、図2に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
≪画像形成装置20≫
図3は、一実施形態に係る画像形成装置20の一例のハードウェア構成を示す図である。
図3に示すように、本実施形態に係る画像形成装置20は、コントローラ201と、操作パネル202と、外部I/F203と、通信I/F204と、プロッタ205を有する。また、コントローラ201は、CPU211と、RAM221と、ROM231と、NVRAM241と、HDD251とを有する。
ROM231は、各種プログラムやデータを格納している不揮発性の半導体メモリである。RAM221は、プログラムやデータを一時保持する揮発性の半導体メモリである。NVRAM241は、例えば設定情報等を格納している。また、HDD251は、各種プログラムやデータを格納している不揮発性の記憶装置である。
CPU211は、ROM231やNVRAM241、HDD251等からプログラムやデータ、設定情報等をRAM221上に読み出し、当該プログラムやデータに基づく処理を実行することで、画像形成装置20全体の制御やその他の機能を実現する演算装置である。
操作パネル202は、ユーザからの入力を受け付ける入力部と、表示を行う表示部とを有する。外部I/F203は、外部装置とのインタフェースである。外部装置には、記録媒体203a等がある。画像形成装置20は、外部I/F203を介して記録媒体203aの読み取りや書き込みを行うことができる。なお、記録媒体203aには、例えば、ICカード、フレキシブルディスク、CD、DVD、SDメモリカード、USBメモリ等がある。
通信I/F204は、画像形成装置20をネットワークNに接続するインタフェースである。画像形成装置20は、通信I/F204を介して通信を行うことができる。プロッタ205は、印刷データを印刷する印刷装置である。
本実施形態に係る画像形成装置20は、図3に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
<クライアント装置10のソフトウェア構成>
次に、本実施形態に係るクライアント装置10のソフトウェア構成について、図4を用いて説明する。図4は、クライアント装置10の一例のソフトウェア構成を示す図である。
図4に示すように、本実施形態に係るクライアント装置10は、アプリケーション301と、OS302と、プリンタドライバ303と、ストアデバイスアプリ304とを有する。
アプリケーション301は、例えば文書作成ソフト、画像閲覧・編集ソフト、ブラウザ等、ユーザの印刷指示に応じて、OS302に印刷の指示(要求)を行うことができるアプリケーションソフトである。アプリケーション301には、ストアアプリ311と、デスクトップアプリ321とが含まれる。
ストアアプリ311は、例えば、Windows(登録商標)8/WindowsRT及びそれ以降のバージョンのWindowsOSにアプリケーションを提供する「Windowsストア」から、入手可能なアプリケーションである。ストアアプリ311では、「ストアアプリ UI」が用いられる。なお、Windows8及びWindows8.1では、OS302によって提供される「Modern UI」又は「Metro UI」とも称されるUIからストアアプリ311が呼び出される。
一方、デスクトップアプリ321は、例えば、Windows7以前のバージョンのWindowsOSにおいても使用可能なアプリケーションである。
OS302は、Windows8/WindowsRT及びそれ以降のバージョンのWindowsOSである。
プリンタドライバ303は、例えば、Version4プリンタドライバ(以降では、「V4プリンタドライバ」と表す。)である。V4プリンタドライバとは、Windows8/WindowsRTから採用されたアーキテクチャに基づくプリンタドライバである。以降では、プリンタドライバ303を「V4プリンタドライバ303」とも表す。
なお、Windows8以降のWindowsOSでは、Windows2000からWindows7で使用されていたVersion3プリンタドライバ(以降では、「V3プリンタドライバ」と表す。)に加えて、V4プリンタドライバも使用可能である。
プリンタドライバ303は、拡張設定部313と、設定制御部323と、描画部333とを含む。
拡張設定部313は、プリンタ拡張とも称され、デスクトップアプリ321から印刷を行う場合に、ベンダ独自の印刷設定画面を表示する。
設定制御部323は、禁則スクリプトとも称され、例えば、印刷設定の組み合わせが正当であるか否かを検証する。拡張設定部313は、例えば、設定制御部323により正当でないと検証された印刷設定の組み合わせを非表示にすること等ができる。
また、設定制御部323は、アプリケーション301やOS302等からの要求に応じて、プリンタドライバ303が設定可能な機能の情報を示すPrintCapabilityを返信する。更に、設定制御部323は、アプリケーション301やOS302等からの要求に応じて、プリンタドライバ303に設定されている各種機能の設定値をDevmodePropertyBagから取得し、取得した設定値を示すPrintTicketを返信する。また、設定制御部323は、PrintTicketで示された設定値をDevmodePropertyBagに保存する。
なお、OS302に返信されたPrintCapabilityやPrintTicketは、例えば、拡張設定部313が表示する印刷設定画面における各機能の現在値の表示、選択肢の表示等に利用される。
描画部333は、アプリケーション301において印刷指示が行われた印刷対象データから印刷データを作成する。
ストアデバイスアプリ304は、ストアアプリ311から印刷を行う場合に、ベンダ独自の印刷設定画面を表示する。なお、ストアデバイスアプリ304は、ストアアプリ311と同様に、「Windowsストア」から入手可能なアプリケーションである。
デスクトップアプリ321から印刷を行う場合、プリンタドライバ303は、拡張設定部313により表示された印刷設定画面で設定された設定内容に基づいて、印刷データを作成することができる。一方で、ストアアプリ311から印刷を行う場合、プリンタドライバ303は、ストアデバイスアプリ304により表示された印刷設定画面で設定された設定内容に基づいて、印刷データを作成することができる。
拡張設定部313及びストアデバイスアプリ304は、ベンダ独自の印刷設定画面を表示するUI部305を構成する。
<V4プリンタドライバ303及びストアデバイスアプリ304がアクセス可能な記憶領域>
次に、V4プリンタドライバ303及びストアデバイスアプリ304がアクセス可能な記憶領域について、図5を用いて説明する。図5は、V4プリンタドライバ303及びストアデバイスアプリ304がアクセス可能な記憶領域について説明するための図である。
図5に示すように、拡張設定部313、設定制御部323、描画部333、及びストアデバイスアプリ304は、PropertyBag400と呼ばれる記憶領域にアクセスすることができる。なお、このような記憶領域へのアクセスは、OS302によって提供されるAPI(Application Programming Interface)を用いて行うことができる。
図5に示すように、PropertyBag400には、DriverPropertyBag410と、QueuePropertyBag420と、UserPropertyBag430とが含まれる。
DriverPropertyBag410は、V4プリンタドライバ303を作成するときに決定された構成情報等を記憶する記憶領域である。拡張設定部313、設定制御部323、描画部333、及びストアデバイスアプリ304は、DriverPropertyBag410から各種情報の読み出しが可能である。一方で、拡張設定部313、設定制御部323、描画部333、及びストアデバイスアプリ304は、DriverPropertyBag410に対して、情報の書き込みを行うことはできない。
QueuePropertyBag420は、論理プリンタ(プリンタアイコン)毎の設定情報等を記憶する記憶領域である。拡張設定部313及びストアデバイスアプリ304は、QueuePropertyBag420に対して、各種情報の読み出し及び書き込みが可能である。また、設定制御部323及び描画部333は、QueuePropertyBag420に対して、各種情報の読み出しが可能である。
なお、論理プリンタとは、例えば、OS302のプリンタフォルダ等にプリンタアイコンとして表示される仮想的なプリンタである。例えば、クライアント装置10の利用者は、1つの画像形成装置20に対して、設定情報(例えば、用紙サイズや向き、印刷品質等)が異なる複数の論理プリンタを作成することができる。
UserPropertyBag430は、論理プリンタ毎に、ユーザ毎の設定情報等を記憶する記憶領域である。拡張設定部313、設定制御部323、及びストアデバイスアプリ304は、UserPropertyBag430に対して、各種情報の読み出し及び書き込みが可能である。
また、拡張設定部313及び描画部333は、更に、独自記憶領域500に対して、各種情報の読み出し及び書き込みが可能である。
独自記憶領域500は、例えばレジストリやファイル等を用いて実現され、PropertyBag400とは異なる記憶領域である。独自記憶領域500は、V4プリンタドライバ303を提供するベンダ等によって定義される。
ストアデバイスアプリ304は、OS302の課す制約により、PropertyBag400以外の記憶領域に対してアクセスすることはできない。また、設定制御部323は、上述したDevmodePropertyBag及びPropertyBag400以外の記憶領域に対してアクセスすることはできない。すなわち、ストアデバイスアプリ304及び設定制御部323は、独自記憶領域500に対して、各種情報の読み出しや書き込み等を行うことができない。
このことは、ストアアプリ311に課されている制約と同様であり、例えば、ストアデバイスアプリ304及び設定制御部323が、OS302が使用するレジストリ等を変更し、OS302の動作に悪影響を与えることを防ぐためである。このような技術は、「サンドボックス」等と称されている。
<機能構成>
図6は、一実施形態に係るクライアント装置10の機能構成の例を示す図である。
クライアント装置(情報処理装置)10は、OS302、インストーラ610、プリンタドライバ303、ストアデバイスアプリ304a、304b、及び自動実行プログラム620等のプログラムを実行する情報処理装置である。なお、図6に示すOS302、プリンタドライバ303、及びストアデバイスアプリ304は、図4に示すOS302、プリンタドライバ303、及びストアデバイスアプリ304に、それぞれ対応している。
インストーラ610は、クライアント装置10にV4プリンタドライバであるプリンタドライバ303をインストールし、クライアント装置10でプリンタドライバ303を利用できるようにするインストール用のプログラムである。
(インストーラの機能構成)
クライアント装置10は、図2のCPU106でインストーラ610を実行することにより、図6に示す登録要求部611、及びインストール部612を実現している。
インストール部612は、プリンタドライバ303をクライアント装置10にインストールする処理を実行する。なお、クライアント装置10にプリンタドライバ303をインストールする処理には、管理者の権限が必要である。
登録要求部611は、インストール部612がインストールしたプリンタドライバ303に含まれる登録部601に、後述する自動実行プログラム620をOS302に登録する処理の実行を要求する。
好ましくは、登録要求部611は、インストール部612が、クライアント装置10にプリンタドライバ303をインストールしたときに、プリンタドライバ303に自動実行プログラム620の登録を要求する。
自動実行プログラム620をOS302に登録するためには、管理者の権限が必要である。また、前述したように、インストーラ610は、管理者の権限で実行される。したがって、インストーラ610が実行されたときに、インストーラ610が、プリンタドライバ303に自動実行プログラム620の登録を要求することにより、自然な流れで自動実行プログラムを、OS302に登録することができる。
なお、インストーラ610、及び登録要求部611は、本発明に必須の構成ではない。例えば、プリンタドライバ303は、クライアント装置10にインストールされたときに、自動的に、自動実行プログラム620をOS302に登録するもの等であっても良い。
(プリンタドライバの機能構成)
プリンタドライバ303は、V4プリンタドライバ、又は同様のアーキテクチャを有するプリンタドライバである。ここでは、プリンタドライバ303が、V4プリンタドライバであるものとして、以下の説明を行う。
クライアント装置10は、例えば、図2のCPU106でプリンタドライバ303を実行することにより、拡張設定部313、設定制御部323、描画部333、及び登録部601等を実現している。
設定制御部323は、前述したように、禁則スクリプトにより、プリンタドライバ303の設定情報(例えば、PrintTicket)や、設定能力情報(例えば、PrintCapabilities等)を管理する。
描画部333は、前述したように、印刷対象となるデータから、画像形成装置20で印刷可能な印刷データを作成する。
拡張設定部313は、前述したように、図4のデスクトップアプリ321から印刷を行う際に表示されるプリンタドライバ303の印刷設定画面を表示する。また、本実施形態に係る拡張設定部313は、デバイスプロパティ表示部602、印刷設定表示部603、双方向通信部604、及び共有情報記憶部605を含む。
双方向通信部604は、例えば、ネットワークNを介して接続された画像形成装置20と双方向通信を行い、画像形成装置20の機器構成や、オプション情報等の機器情報(所定の情報の一例)を取得する。なお、双方向通信部604が取得する情報には、機器情報以外の情報が含まれていても良い。
共有情報記憶部(情報記憶部)605は、双方向通信部604が取得した機器情報等の情報(所定の情報)を、UserPropertyBag430、及び前述した独自記憶領域500に記憶する。
なお、共有情報記憶部605が、UserPropertyBag430、及び独自記憶領域500に記憶する共有情報は、双方向通信部604が取得した機器情報等の情報以外の情報であっても良い。例えば、共有情報は、ユーザが設定した印刷設定情報等であっても良いし、ユーザが設定したアカウント情報等であっても良い。さらに、共有情報は、他のユーザと共有したい任意の情報であって良い。
独自記憶領域500は、クライアント装置10にログインした全てのユーザからデータの読み書きが可能なレジストリ、ファイル、ディレクトリ等であり、他の利用者の権限で読込可能な第1の記憶領域の一例である。
UserPropertyBag430は、前述したように、クライアント装置10にとログインするユーザ毎の管理領域(記憶領域)である。図6において、UserPropertyBag430aは、ユーザA(一の利用者)に対応するUserPropertyBag430であるものとする。また、UserPropertyBag430bは、ユーザB(他の利用者)に対応するUserPropertyBag430であるものとする。
例えば、ユーザAがクライアント装置10にログインしているときに、双方向通信部604が取得した機器情報等の情報は、共有情報記憶部605により、独自記憶領域500、及びUserPropertyBag430aに記憶される。
デバイスプロパティ表示部602は、画像形成装置20のオプション情報や、管理者のみが設定可能な設定情報等、ドキュメントの印刷毎に設定しない設定情報を参照、設定するための表示画面を、表示装置102等の表示部に表示させる。なお、デバイスプロパティ表示部602が表示する表示画面には、双方向通信部604が取得した機器情報等が含まれる。
印刷設定表示部603は、ユーザがドキュメントを印刷する際に、印刷の設定(例えばカラー/モノクロ、片面/両面、用紙サイズ等)を設定するための印刷設定画面を、表示装置102等の表示部に表示させる。
(自動実行プログラムの機能構成)
自動実行プログラム620は、OS302によって、OS302に登録されたプログラムの実行タイミング(例えば、起動時等)に、自動的に実行されるプログラムである。
クライアント装置10は、図2のCPU106で自動実行プログラム620を実行することにより、共有情報管理部621を実現している。
共有情報管理部(情報管理部)621は、クライアント装置10に、ユーザAとは異なるユーザBがログインした後、独自記憶領域500に記憶された機器情報等の情報(所定の情報)を、ユーザBに対応するUserPropertyBag430bに記憶する。なお、UserPropertyBag430bは、ユーザB(他の利用者)の権限で書込可能であり、かつプリンタドライバ303に関する各モジュールから利用可能な第2の記憶領域の一例である。
(ストアデバイスアプリの機能構成)
図6において、ユーザAに対応するストアデバイスアプリ304を、ストアデバイスアプリ304aとし、ユーザBに対応するストアデバイスアプリ304を、ストアデバイスアプリ304bとして、以下の説明を行う。また、印刷設定表示部630a、630bのうち、任意の印刷設定表示部を示す場合、「印刷設定表示部630」を用いる。
印刷設定表示部630は、ストアアプリ311から印刷を行う場合に、ベンダ独自の印刷設定画面を、例えば、表示装置102等の表示部に表示させる。
例えば、ユーザAに対応するストアデバイスアプリ304aの印刷設定表示部630aは、共有情報記憶部605がUserPropertyBag430aに記憶した、画像形成装置20の機器情報等の情報を反映させた印刷設定画面を表示させる。
一方、ユーザBに対応するストアデバイスアプリ304bの印刷設定表示部630bは、共有情報管理部621が、UserPropertyBag430bに記憶した、画像形成装置20の機器情報等を反映させた印刷設定画面を表示させる。
なお、前述したように、共有情報記憶部605が、独自記憶領域500に記憶する情報は、画像形成装置20の機器情報に限られず、他のユーザと共有する機器情報以外の共有情報であっても良い。
例えば、クライアント装置10にログインする際には別々のアカウントでログインする場合でも、印刷時に利用するユーザID、及びパスワードは、アカウント間で共通のユーザID、パスワードを利用したい場合がある。このような場合、画像形成装置20の機器情報に代えて(又は加えて)、ユーザAが設定した印刷用のユーザID、パスワードを共有情報として、ユーザBと共有するものであっても良い。
<処理の流れ>
続いて、本実施形態に係るクライアント装置10が実行する情報共有方法の処理の流れについて説明する。
[第1の実施形態]
図7は、第1の実施形態に係るクライアント装置の処理の例を示すシーケンス図である。この処理は、クライアント装置10が実行する処理の一例を示している。
ステップS701~S703において、管理者の権限を有するユーザにより、クライアント装置10にプリンタドライバ303がインストールされるものとする。
例えば、ステップS701において、インストーラ610のインストール部612は、管理者の権限を有するユーザのインストール操作に応じて、クライアント装置10にプリンタドライバ303をインストールする。この処理により、クライアント装置10でプリンタドライバ303を利用することができるようになる。
ステップS702において、インストーラ610の登録要求部611は、プリンタドライバ303の登録部601に、自動実行プログラム620の登録を要求する。
ステップS703において、プリンタドライバ303の登録部601は、インストーラ610からの要求に応じて、OS302に自動実行プログラム620を登録する。
このとき、登録部601は、クライアント装置10にログインする全てのユーザがログインしたときに、自動実行プログラム620が自動的に実行されるように、OS302に自動実行プログラム620を登録する。また、登録部601は、自動実行プログラム620の実行時に、現在のプリンタアイコン名(論理プリンタ名)を、OS302に登録する。
なお、インストーラ610の登録要求部611の要求により、プリンタドライバ303の登録部601が自動実行プログラム620をOS302に登録する処理は、一例である。例えば、プリンタドライバ303の登録部601は、拡張設定部313が、印刷設定画面を表示するとき等に、ユーザの権限を確認し、ユーザが管理者の権限を有している場合に、自動実行プログラム620をOS302に登録するもの等であっても良い。
ステップS704において、管理者の権限を有していない一般ユーザであるユーザAが、プリンタドライバ303のデバイスプロパティを表示するための操作を行うものとする。
ステップS705において、プリンタドライバ303のデバイスプロパティ表示部602は、双方向通信部604を用いて、画像形成装置20から機器情報等の情報を取得し、デバイスプロパティを表示する表示画面を、表示装置102等の表示部に表示させる。
ステップS706において、プリンタドライバ303の共有情報記憶部605は、双方向通信部604が取得した機器情報等の共有情報を、独自記憶領域500、及びUserPropertyBag430aに記憶する。
図8は、一実施形態に係る共有情報の記憶、及びコピーについて説明するための図である。ここでは、ユーザA、及びユーザBが、管理者の権限を有していない一般ユーザであるものとする。
図8に示すように、ユーザAは、ユーザAが利用可能な記憶領域801に含まれるUserPropertyBag430a、及び独自記憶領域500を利用することができる。このうち、独自記憶領域500は、全ユーザが利用可能な記憶領域803に含まれるので、ユーザBも利用することができる。一方、UserPropertyBag430aは、ユーザBが利用可能な記憶領域802に含まれないので、ユーザBは利用することができない。
そこで、本実施形態に係る共有情報記憶部605は、双方向通信部604が取得した機器情報等の共有情報を、UserPropertyBag430aと、全ユーザが利用可能な記憶領域803にある独自記憶領域500に記憶する。
図7に戻り、シーケンス図の説明を続ける。
ステップS707において、管理者の権限を有していない一般ユーザであるユーザBが、クライアント装置10にログインするものとする。
ステップS708において、OS302は、ユーザBのログインに応じて、ステップS703で登録された自動実行プログラム620を実行させる。
ステップS709において、自動実行プログラム620の共有情報管理部621は、ユーザBに対応するUserPropertyBag430bの場所を特定する。
図9は、一実施形態に係るUserPropertyBagの特定方法について説明するための図である。
UserPropertyBag430の保存場所はレジストリであり、共有情報管理部621は、ステップS703で登録されたプリンタアイコン名を利用して、ユーザBに対応するUserPropertyBag430bの保存場所を特定することができる。
例えば、共有情報管理部621は、ステップS703で登録されたプリンタアイコン名を利用して、
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\(プリンタアイコン名)\ PrintQueueV4DriverDirectory
の値を取得する。この値は、例えば、プリンタドライバ303がインストールされたとき等に、プリンタアイコン毎に決定される。
図9(a)は、OS302によって提供されるレジストリエディタ900で、プリンタアイコン「XXXXX RPCS V4 SP 1610 JPN」という名前のプリンタアイコン911を選択した状態を示している。この例では、「PrintQueueV4DriverDirectry」912に対応する値は、「E51ADE16-5439-4008-B859-76A41752FD2F」となっている。共有情報管理部621は、例えば、この値(GUID)を取得する。
続いて、共有情報管理部621は、取得した値(GUID)を用いてユーザBに対応するUserPropertyBag430bの場所を特定する。UserPropertyBag430bの場所は、取得した値(GUID)を用いて、
HKEY_CURRENT_USER\Software\Classes\Local Settings\Printers\PropertyBags\
(PrintQueueV4DriverDirectoryの値)
で決定される。
つまり、今回の例では、UserPropertyBag430bの場所は、
HKEY_CURRENT_USER\Software\Classes\Local Settings\Printers\PropertyBags\ E51ADE16-5439-4008-B859-76A41752FD2F
で、特定することができる。
図9(b)は、OS302によって提供されるレジストリエディタ900で、特定したUserPropertyBag430bの場所921を選択した状態を示している。この例では、UserPropertyBag430bには、「bidi_info」といる名前922に対応付けて、双方向通信部604が取得した機器情報923が記憶されている。
再び図7に戻り、シーケンス図の説明を続ける。
ステップS710において、自動実行プログラム620の共有情報管理部621は、ステップS706で独自記憶領域500に記憶された機器情報等の共有情報を、ステップS708で特定したUserPropertyBag430bにコピーする。
例えば、図8において、共有情報管理部621は、全ユーザが利用可能な記憶領域803に含まれる独自記憶領域500に記憶された機器情報等の共有情報を読出し、読出した共有情報を、UserPropertyBag430bに記憶する。
これにより、例えば、独自記憶領域500の情報を利用できない、ユーザBに対応するストアデバイスアプリ304bも、UserPropertyBag430bにコピーされた画像形成装置20の機器情報等の情報を利用することができる。
ここで、再び図7に戻り、シーケンス図の説明をさらに続ける。
ステップS711において、管理者の権限を有していない一般ユーザであるユーザBが、ストアデバイスアプリ304bを用いて、印刷設定画面を表示させるものとする。
ステップS712において、ストアデバイスアプリ304bの印刷設定表示部630bは、UserPropertyBag430bにコピーされた、画像形成装置20の機器情報等の共有情報を取得する。
ステップS713において、ストアデバイスアプリ304bの印刷設定表示部630bは、取得した共有情報に含まれる機器情報を用いて、印刷設定画面を、表示装置102等の表示部に表示させる。
図10は、一実施形態に係る機器情報、及びその反映について説明するための図である。
図10(a)は、UserPropertyBag430bに記憶された機器情報の一例のイメージを示している。図10(a)に示す機器情報は、図10(b)に示すような情報を示している。
例えば、「"tray1":"A4"」の記述は、トレイ1の印刷用紙サイズが「A4」であることを示しており、「"tray2":"B5"」の記述は、トレイ2の印刷用紙サイズが「B5」であることを示している。同様に、「"tray3":"A4"」の記述は、トレイ3の印刷用紙サイズが「A4」であることを示している。
また、「"duplex_functiont":"on"」の記述は、両面印刷が「可」であることを示している。また、「"staple_functiont":"on"」の記述は、ステープルが「可」であることを示している。さらに、「"punch_functiont":"off"」の記述は、パンチが「不可」であることを示している。
図10(c)は、ストアデバイスアプリ304bの印刷設定表示部630bが、例えば、図10(a)に示すような機器情報を反映させて表示させる印刷設定画面の一例のイメージを示している。
例えば、印刷設定表示部630bは、図10(c)の「印刷用紙サイズ」の項目において、画像形成装置20にセットされている用紙サイズ「A4」、「B5」のみを選択可能に表示させる。
また、印刷設定表示部630bは、画像形成装置20で利用可能である「両面印刷」、及び「ステープル」の設定項目について、選択可能な選択肢を表示させる。
さらに、印刷設定表示部630bは、画像形成装置20で利用できない「パンチ」の設定項目を「しない」に固定し、「する」を選択できないようにする。或いは、印刷設定表示部630bは、画像形成装置20で利用できない「パンチ」の設定項目を表示させないものであっても良い。
このように、本実施形態によれば、V4プリンタドライバ、又は同様の制限を有するプリンタドライバにおいて、一般ユーザの権限で取得又は設定した情報を、他の一般ユーザと共有することが容易になる。
これにより、例えば、PropertyBag400以外の記憶領域へのアクセスが制限されるストアデバイスアプリ304、設定制御部323等においても、他のユーザが取得した画像形成装置20の機器情報等の共有情報を利用することができるようになる。
[第2の実施形態]
第1の実施形態では、ユーザがクライアント装置10にログインする際に、自動実行プログラム620が、独自記憶領域500に記憶された共有情報を、ユーザに対応するUserPropertyBag430にコピーする場合の処理の例について説明した。
この場合、例えば、一人のユーザが複数のアカウントでクライアント装置10にログインしている場合や、クライアント装置10に複数のユーザがログインしている場合等には、ログイン中の別のユーザに共有情報が反映されない場合がある。
第2の実施形態では、このような場合であっても、共有情報を他のユーザと共有できるようにする場合の処理の例について説明する。
<機能構成>
第2の実施形態に係るクライアント装置10の機能構成は、図6に示す第1の実施形態に係るクライアント装置10の機能構成と同様である。
ただし、第1の実施形態に係る自動実行プログラム620は、ユーザがクライアント装置10にログインしたときに、所定の処理を実行していた。一方、第2の実施形態に係る自動実行プログラム620は、ユーザがログイン中に、定期的に所定の処理を繰り返し実行するものとする。
<処理の流れ>
図11、12は、第2の実施形態に係るクライアント装置の処理の例を示すシーケンス図である。なお、ここでは、図6に示す第1の実施形態に係るクライアント装置の処理と同様の処理内容に対する詳細な説明は省略する。
ステップS1101において、管理者の権限を有するユーザにより、クライアント装置10にプリンタドライバ303がインストールされるものとする。
ステップS1102において、インストーラ610の登録要求部611は、プリンタドライバ303の登録部601に、自動実行プログラム620の登録を要求する。
ステップS1103において、プリンタドライバ303の登録部601は、OS302に自動実行プログラム620を登録する。
なお、前述したように、第2の実施形態では、自動実行プログラム620は、定期的に、独自記憶領域500に記憶された共有情報を、各ユーザに対応するUserPropertyBag430にコピーする所定の処理を、繰り返し実行するものとする。
ステップS1104、S1105において、ユーザA、及びユーザBが、それぞれ、クライアント装置10にログインするものとする。これにより、クライアント装置10には、ユーザAとユーザBとが同時にログインしている状態となる。
ステップS1106において、管理者の権限を有していない一般ユーザであるユーザAが、プリンタドライバ303のデバイスプロパティを表示するための操作を行うものとする。
ステップS1107において、プリンタドライバ303のデバイスプロパティ表示部602は、双方向通信部604を用いて画像形成装置20から機器情報等の情報を取得し、デバイスプロパティを表示する表示画面を、表示装置102等の表示部に表示させる。
ステップS1108において、プリンタドライバ303の共有情報記憶部605は、双方向通信部604が取得した機器情報等の情報を、独自記憶領域500、及びUserPropertyBag430aに記憶する。
ステップS1109において、OS302は、ユーザBの環境で、自動実行プログラム620を実行させる。この処理は、例えば、ユーザBが、クライアント装置10にログイン中、所定の時間間隔(例えば、数秒~数分間隔)で繰り返し実行される。
ステップS1110において、自動実行プログラム620の共有情報管理部621は、ユーザBに対応するUserPropertyBag430bの場所を特定する。
ステップS1111において、自動実行プログラム620の共有情報管理部621は、独自記憶領域500に記憶された機器情報等の共有情報を、ステップS1110で特定したUserPropertyBag430bにコピーする。
ステップS1109~S1111の処理が、所定の時間間隔で繰り返し実行されることにより、ユーザBがログイン中であっても、独自記憶領域500に記憶された共有情報が、UserPropertyBag430bに、自動的にコピーされる。
続いて、図12のステップS1112において、管理者の権限を有していない一般ユーザであるユーザBが、ストアデバイスアプリ304bを用いて、印刷設定画面を表示させるものとする。
ステップS1113において、ストアデバイスアプリ304bの印刷設定表示部630bは、UserPropertyBag430bにコピーされた、画像形成装置20の機器情報等の共有情報を取得する。
ステップS1114において、ストアデバイスアプリ304bの印刷設定表示部630bは、取得した共有情報に含まれる機器情報を用いて、印刷設定画面を、表示装置102等の表示部に表示させる。
ステップS1115において、OS302は、ユーザAの環境で、自動実行プログラム620を実行させる。この処理は、例えば、ユーザAが、クライアント装置10にログイン中、所定の時間間隔で繰り返し実行される。
ステップS1116において、自動実行プログラム620の共有情報管理部621は、ユーザAに対応するUserPropertyBag430aの場所を特定する。
ステップS1117において、自動実行プログラム620の共有情報管理部621は、独自記憶領域500に記憶された機器情報等の共有情報を、ステップS1116で特定したUserPropertyBag430aにコピーする。
ステップS1115~S1117の処理が、所定の時間間隔で繰り返し実行されることにより、ユーザAがログイン中であっても、独自記憶領域500に記憶された共有情報が、UserPropertyBag430aに、自動的にコピーされる。
上記の処理により、一人のユーザが複数のアカウントでクライアント装置10にログインしている場合や、クライアント装置10に複数のユーザがログインしている場合等であっても、ログイン中の別のユーザに、共有情報が反映されるようになる。
[第3の実施形態]
第1、2の実施形態により、例えば、ユーザAが、拡張設定部313を用いて、一般ユーザの権限で取得又は設定した情報を、他の一般ユーザであるユーザBと容易に共有することができるようになる。
第3の実施形態では、例えば、ユーザAが、ストアデバイスアプリ304を用いて、一般ユーザの権限で取得又は設定した情報を、他の一般ユーザであるユーザBと共有できるようにする場合の例について説明する。
<機能構成>
図13は、第3の実施形態に係るクライアント装置の機能構成の一例を示す図である。図13に示すように、第3の実施形態に係るクライアント装置10は、図6に示す一実施形態に係るクライアント装置10の機能構成に加えて、双方向通信部1301、情報格納部1302、共有情報記憶部1303、及び共有情報記憶部1304等を有する。
なお、図13において、ストアデバイスアプリ304bは、例えば、ストアデバイスアプリ304aと同様の機能構成を有しているものとする。また、第3の実施形態に係るクライアント装置10は、図6に示す一実施形態に係るクライアント装置10の機能構成に含まれる双方向通信部604、及び共有情報記憶部605を有していても良い。
双方向通信部604は、例えば、CPU106で実行されるストアデバイスアプリ304によって実現され、ネットワークNを介して接続された画像形成装置20と双方向通信を行い、画像形成装置20の機器構成や、オプション情報等の機器情報を取得する。なお、機器情報は、他のユーザと共有する共有情報の一例である。
情報格納部1302は、例えば、CPU106で実行されるストアデバイスアプリ304によって実現され、双方向通信部604が取得した機器情報等の共有情報を、ユーザに対応するUserPropertyBag430に記憶する。例えば、ストアデバイスアプリ304aの情報格納部1302は、図13に示すように、ユーザAに対応するUserPropertyBag430aに、双方向通信部604が取得した機器情報等の共有情報を記憶する。
共有情報記憶部1303は、例えば、CPU106で実行されるプリンタドライバ303によって実現される描画部333に含まれる。共有情報記憶部1303は、例えば、ユーザAが印刷を実行するときに、UserPropertyBag430aに記憶された機器情報等の共有情報を取得し、取得した共有情報を独自記憶領域500に記憶する(コピーする)。
共有情報記憶部1304は、例えば、CPU106で実行されるプリンタドライバ303によって実現される拡張設定部313に含まれる。共有情報記憶部1304は、例えば、ユーザAが拡張設定部313によって提供される印刷設定画面を表示したときに、UserPropertyBag430aに記憶された機器情報等の共有情報を取得し、取得した共有情報を独自記憶領域500に記憶する。
ここで、共有情報記憶部1303、及び共有情報記憶部1304は、UserPropertyBag430を介して、一の利用者の権限で取得又は設定した所定の情報を取得し、取得した所定の情報を第1の記憶領域に記憶する情報記憶部の一例である。
なお、第3の実施形態に係るクライアント装置10の他の機能構成は、第1、2の実施形態に係るクライアント装置10の機能構成と同様で良い。
<処理の流れ>
続いて、第3の実施形態に係る情報共有方法の処理の流れについて説明する。
(クライアント装置の処理1)
図14、15は、第3の実施形態に係るクライアント装置の処理の一例を示すシーケンス図である。なお、図14に示す処理の開始時点において、例えば、図7のステップS701~S703の処理が実行済であるものとする。また、ここでは、第1、2の実施形態と同様の処理に対する詳細な説明は省略する。
ステップS1401において、管理者の権限を持たない一般ユーザであるユーザAが、ストアデバイスアプリ304aが提供する印刷設定画面を表示する操作を行うものとする。
ステップS1402において、ストアデバイスアプリ304aの双方向通信部1301は、画像形成装置20と双方向通信を行い、画像形成装置20の機器構成や、オプション情報等の機器情報を取得する。
ステップS1403において、ストアデバイスアプリ304aの情報格納部1302は、双方向通信部604が取得した機器情報等の共有情報を、ユーザAに対応するUserPropertyBag430aに記憶する。
ステップS1404において、ストアデバイスアプリ304aの印刷設定表示部630は、例えば、双方向通信部604が取得した機器情報等を用いて、印刷設定画面を表示する。
ここで、ユーザAは、表示された印刷設定画面により印刷設定を確認、又は変更し、ステップS1405において、ユーザAが、印刷操作を行うものとする。
ステップS1406において、OS302は、ユーザAによる印刷操作を受け付けると、描画部333に印刷を指示する。
ステップS1407において、描画部333の共有情報記憶部1303は、ステップS1403でユーザAのUserPropertyBag430aに記憶された機器情報等の共有情報を取得する。
ステップS1408において、描画部333の共有情報記憶部1303は、取得した機器情報等の共有情報を独自記憶領域500に記憶する(コピーする)。
ステップS1409において、描画部333は、OS302から指示された印刷処理を実行する。
このように、描画部333の共有情報記憶部1303は、プリンタドライバ303が印刷を実行するときに、ユーザに対応するUserPropertyBag430を介して共有情報を取得し、取得した共有情報を独自記憶領域500に記憶する。
続いて、図15のステップS1410において、ユーザBがOS302(クライアント装置10)にログインするものとする。
ステップS1411において、ユーザBのログインを受け付けたOS302は、自動実行プログラム620を実行させる。
ステップS1412において、自動実行プログラム620の共有情報管理部621は、ログインしたユーザBのUserPropertyBag430bの場所を、例えば、図9を用いて説明したようにして、特定する。
ステップS1413において、自動実行プログラム620の共有情報管理部621は、独自記憶領域500に記憶された機器情報等の共有情報を、ユーザBのUserPropertyBag430bに記憶する(コピーする)。
この状態で、例えば、ステップS1414において、ユーザBがストアデバイスアプリ304bを用いて、印刷設定画面を表示する操作を行うものとする。
ステップS1415において、ストアデバイスアプリ304bの印刷設定表示部630は、ユーザBに対応するUserPropertyBag430bから機器情報等の共有情報を取得する。
例えば、UserPropertyBag430bに画像形成装置20の機器情報等が記憶されている場合、ストアデバイスアプリ304bの印刷設定表示部630は、UserPropertyBag430bから機器情報等を取得する。一方、UserPropertyBag430bに画像形成装置20の機器情報等が記憶されていない場合、ストアデバイスアプリ304bの印刷設定表示部630は、双方向通信部1301を用いて、画像形成装置20から機器情報等を取得する。
ステップS1416において、ストアデバイスアプリ304bの印刷設定表示部630は、取得した機器情報等の共有情報を用いて、印刷設定画面を表示する。
図16は、第3の実施形態に係る共有情報の記憶、及びコピーについて説明するための図である。ここでは、ユーザA、及びユーザBが、管理者の権限を有していない一般ユーザであるものとする。
図8で前述したように、ユーザAは、ユーザAが利用可能な記憶領域801に含まれるUserPropertyBag430a、及び独自記憶領域500を利用することができる。また、ユーザBは、UserPropertyBag430b、及び独自記憶領域500を利用することができる。
ただし、ユーザAに対応するストアデバイスアプリ304aは、図5で説明したように、独自記憶領域500に対して、各種情報の読み出しや書き込み等を行うことができない。そこで、ストアデバイスアプリ304aの情報格納部1302は、図15に示すように、他のユーザと共有する共有情報(例えば、機器情報等)を、ユーザAに対応するUserPropertyBag430aに記憶する。
また、共有情報記憶部1303、1304は、所定のタイミングで、UserPropertyBag430aに記憶された共有情報を取得し、独自記憶領域500に記憶する(コピーする)。
例えば、描画部333に含まれる共有情報記憶部1303は、図14のステップS1407、S1408に示すように、ユーザAが印刷を行うとき等に、UserPropertyBag430aに記憶された共有情報を独自記憶領域500にコピーする。
また、拡張設定部313に含まれる共有情報記憶部1304は、図16で後述するように、ユーザAが拡張設定部313を用いて印刷設定画面を表示するとき等に、UserPropertyBag430aに記憶された共有情報を独自記憶領域500にコピーする。
これにより、共有情報管理部621は、第1、2の実施形態と同様にして、独自記憶領域500に記憶された機器情報等の共有情報を読出し、読出した共有情報をUserPropertyBag430b等に記憶する(コピーする)ことができるようになる。
図17は、第3の実施形態に係るクライアント装置の処理の別の一例を示す図である。この処理は、拡張設定部313に含まれる共有情報記憶部1304が、UserPropertyBag430aに記憶された共有情報を独自記憶領域500にコピーする処理の例を示している。
なお、図17のステップS1401~S1404の処理は、図14で説明したステップS1401~S1404の処理と同様なので、ここでは説明を省略する。
ステップS1701において、ユーザAが、拡張設定部313を用いて印刷設定画面を表示する操作を行うものとする。
ステップS1702において、拡張設定部313の共有情報記憶部1304は、ステップS1403において、ユーザAのUserPropertyBag430aに記憶された機器情報等の共有情報を取得する。
ステップS1703において、拡張設定部313の共有情報記憶部1304は、取得した機器情報等の共有情報を独自記憶領域500に記憶する(コピーする)。
ステップS1704において、拡張設定部313の印刷設定表示部603は、印刷の設定等を行う印刷設定画面を表示させる。
この処理に続いて、クライアント装置10は、例えば、図15に示すステップS1410~1416の処理を、そのまま実行することができる。
このように、拡張設定部313の共有情報記憶部1304は、プリンタドライバ303が印刷設定画面を表示するとき等に、ユーザに対応するUserPropertyBag430を介して所定の情報を取得し、独自記憶領域500に記憶する(コピーする)。
以上、上記の各処理により、例えば、ユーザAが、ストアデバイスアプリ304を用いて、一般ユーザの権限で取得又は設定した情報を、他の一般ユーザであるユーザBと容易に共有することができるようになる。
[その他の実施形態]
第1~3の実施形態に示す情報処理システム1の構成は一例であり、情報処理システム1は、様々なシステム構成が可能である。
例えば、図6、13に示すクライアント装置10は、本発明に係るプリンタドライバ303がインストールされた情報処理装置の一例である。プリンタドライバ303がインストールされた情報処理装置は、例えば、図1のサーバ装置30であっても良い。この場合、サーバ装置30は、例えば、図6、13に示すクライアント装置10と同様の機能構成を有し、クライアント装置10と同様の処理を実行すれば良い。
また、第1の実施形態と第2の実施形態とは、組合せて実施することができる。この場合、自動実行プログラム620は、ユーザがログインしたときに加えて、所定の時間間隔で、独自記憶領域500に記憶された共有情報を、UserPropertyBag430にコピーする所定の処理を繰り返し実行する。
さらに、自動実行プログラム620は、例えば、ユーザによる所定の操作に応じて、独自記憶領域500に記憶された共有情報を、UserPropertyBag430にコピーする所定の処理を実行するものであっても良い。これにより、ユーザは、必要なときに、他のユーザが取得した機器情報を利用することができるようになる。
さらにまた、自動実行プログラム620は、共有情報記憶部605が独自記憶領域500に共有情報を記憶したとき等に、独自記憶領域500に記憶された共有情報をUserPropertyBag430にコピーする所定の処理を実行するものであっても良い。この場合、共有情報記憶部605は、独自記憶領域500に共有情報を記憶したことを、自動実行プログラム620に通知することが望ましい。
なお、第3の実施形態は、第1、2の実施形態と組合せて実施することができる。例えば、図13に示す第3の実施形態に係るクライアント装置10の機能構成において、拡張設定部313には、図6に示す双方向通信部604、及び共有情報記憶部605が含まれていても良い。これにより、ユーザが、拡張設定部313を用いて機器情報等を取得した場合には、第1、2の実施形態を適用し、ユーザが、ストアデバイスアプリ304を用いて機器情報等を取得した場合には、第3の実施形態を適用することができる。
以上、本発明の各実施形態によれば、V4プリンタドライバ、又は同様の制限を有するプリンタドライバ303において、一般ユーザの権限で取得又は設定した情報を、他の一般ユーザと共有することが容易になる。