以下、本発明を実施するための最良の形態について、図面を参照して説明する。
図1は、本発明に係る情報処理装置及び周辺装置からなる印刷ネットワークシステム(周辺装置制御システム)の一実施形態における第1の構成部分を示すブロック図である。なお、本印刷ネットワークシステム(周辺装置制御システム)は、第1乃至第3の構成部分から成り、第2の構成部分については図5を参照して、第3の構成部分については図6を参照して、詳しく後述する。
第1の構成部分における情報処理装置はクライアントPC(Personal Computer)851、857によって構成され、周辺装置はプリンタ855によって構成される。クライアントPC851、857とプリンタ855とは、Ethernet(登録商標)で構成されるネットワーク856を介して接続され、互いに通信可能である。なお、周辺装置として図1ではプリンタ855を示したが、プリンタ、複写機、ファクシミリ、またはこれらの複合機などの画像形成装置、スキャナ、デジタルカメラであってもよい。
なお、本発明は、クライアントPC851、857側で実行されるアプリケーション(ソフトウェア)とプリンタ855に実装されるアプリケーション(ソフトウェア)とで実現され、各機能モジュールより構成される。図1におけるクライアントPC851及びプリンタ855の各ブロック内には、各機能モジュールを示す。
クライアントPC851は、図2を参照して後述するようなハードウェアで構成され、OS(Operating System)として米国マイクロソフト社のWindows(登録商標) XPがインストールされ、WebブラウザとしてMicrosoft Internet Explorer(登録商標)Version 6.0(以下「IE6」という)がインストールされる。
図1において、1はドライバ自動インストールアプリケーション部であり、クライアントPC851のOS上で動作するソフトウェアである。ドライバ自動インストールアプリケーション部1は、ドライバ自動ダウンロード・設定モジュール部100、SOAP(Simple Object Access Protocol)リクエスト発行処理部4、SOAPレスポンス解析処理部5、コンフィギュレータモジュール部7、メモリコントローラ部8、GUIモジュール部(GUI)6を備える。
また、クライアントPC851は、通信機能としてのTCP/UDP/IPプロトコルスタック部2と、該TCP/UDP/IPプロトコルスタック部2とドライバ自動インストールアプリケーション部1との間に設けられる、HTTP1.1に準ずるHTTP(Hyper Text Transfer Protocol)部3とを備える。
GUIモジュール部6は、ユーザとの間でインタラクティブに要求の受付処理を行い、その処理結果の表示処理を実行する。コンフィギュレータモジュール部7は、ネットワーク856を介してプリンタ855より取得したドライバを、プリンタ855より取得したネットワーク情報とともに、クライアントPC851が保持する記録装置(図示せず)にイントールする処理を実行するとともに、OSに対してドライバ情報の登録を行う。なお、このイントールの実行の際には、メモリコントローラ部8を介して、記録装置におけるメモリスペースの有無の調査、およびイントール先の管理制御を実行する。
プリンタ855は、UPnP(Universal Plug and Play)に対応したネットワーク対応型プリンタであり、このプリンタ855を制御するOSとしてLinuxOSが搭載される。プリンタ855は、通信機能としてTCP/UDP/IPプロトコルスタック部9を備え、このTCP/UDP/IPプロトコルスタック部9には、HTTP1.1に準ずるHTTP(Hyper Text Transfer Protocol)部10と、SOAP(Simple Object Access Protocol)リクエスト解析処理部11と、レスポンスの発行を実行するためのSOAPレスポンス発行処理部12とが設けられる。
また、TCP/UDP/IPプロトコルスタック部9にはプリントプロトコルモジュール部13が実装され、該プリントプロトコルモジュール部13は、クライアントPC851から発行されるプリンタ要求を解析し、プリントコントローラ部14に対して該要求を送出する機能を備える。
15はメモリコントローラ部であり、ドライバを格納する場所を示すディレクトリ情報の管理や、データサイズ情報の管理の機能を備えるとともに、ドライバ送信時において記録装置から読み出したドライバをHTTP部10に対して送出する処理を実行する機能を備える。
60はUPnP(Universal Plug and Play)デバイス制御部であり、SOAPリクエスト解析処理部11とSOAPレスポンス発行処理部12とを含む。このUPnPデバイス制御部60については後に詳述する。
857はクライアントPCであり、クライアントPC851と同様に、図2を参照して後述するようなハードウェアで構成されるが、クライアントPC857は、OSとして米国アップルコンピュータ社のMacOS(登録商標)がインストールされ、WebブラウザとしてInternet Explorer(登録商標)5 Macintosh Edition(以下「IE5」という)がインストールされている。858はWebサーバであり、ホームページ(後述するプレゼンテーションページ、印刷設定UIのプレゼンテーションページ、ステータスモニタUIのプレゼンテーションページ等)を公開提供する機能を備える。
図2は、クライアントPC851、857のハードウェア構成の一例を示すブロック図である。ここではクライアントPC851を例にして説明する。
クライアントPC851は、ランダムアクセスメモリ部(RAM1201)、記憶部であるハードディスクドライブ部(HDD1202)、入力部の一例であるキーボード部(KBD1203)、制御部のCPU1204、表示部の一例である表示用ディスプレイ(LCD1205)、通信制御部の一例であるネットワークボード(NB1207)、以上のクライアントPC851の構成要素を互いに接続するバス1206から構成される。なお、記憶部は、可搬性CD−ROMまたは内部据付のROMなどであってもよい。
図1に示すクライアントPC851の各モジュール1乃至8は、HDD1202に記憶され、必要に応じてRAM1201に読み出されてCPU1204により実行される。これにより、CPU1204が、図1に示す各モジュール1乃至8の機能を実現する。
なお、図1に示すプリンタ855も、印刷処理を行うプリントコントローラ部14を除いて、図2に示すハードウェア構成と同じ構成を採る。その場合、図1に示すプリンタ855の各モジュール9乃至13および15は、HDD1202に記憶され、必要に応じてRAM1201に読み出されてCPU1204により実行される。
なおまた、クライアントPC851のメモリコントローラ部8およびプリンタ855のメモリコントローラ部15は、基本的には独立なハードウェアで構成されることが多い。
図3は、クライアントPC851における、デバイスドライバをインストールするためのソフトウェア構成を詳しく示すブロック図である。なお、図1に示す部分と同一の構成部分には同一の参照符号を付してある。
図3に示すドライバ自動インストールアプリケーション部1、TCP/UDP/IPプロトコルスタック部2、HTTP部3、GUIモジュール部6、システム管理部1001、ドライバ管理部1002、デバイスID・ドライバパスリスト1003、ドライバ格納部1004、プラグアンドプレイインストーラ1005、システムインストーラ1009は、プログラムモジュールで構成されており、クライアントPC851内の外部メモリに記憶されていて、必要に応じてRAMに読み出されてCPUによって実行される。
デバイス番号は、周辺装置(例えば、プリンタ855)を識別するための情報である。
デバイスID・ドライバパスリスト1003は、デバイス番号およびドライバパスリストの組からなるデータベースである。なお、ドライバパスとは、デバイスドライバ(ここではプリンタドライバを例に挙げている)のホストコンピュータに備えられた外部メモリ等のことである。
プラグアンドプレイインストーラ1005は、デバイス番号をキーにドライバパスを検索し、その結果得られたドライバパスに対して配置されているプリンタドライバを取得する。そして、プリンタドライバインストーラとして機能するシステムインストーラ1009が、該取得したプリンタドライバをドライバ格納部1004にインストールする。
図4は、ドライバ自動インストールアプリケーション部1のテーブルを示す図である。
本テーブルには、デバイスID、USB(Universal Serial Bus)デバイス番号、ドライバが格納されたパスが記憶されている。同図において、1301はドライバ自動インストールアプリケーション部1内のテーブルであり、デバイス構成情報の一部としての製造者名および機種名の組であるデバイスID1305と、USBデバイス番号1304とを対応付けている。1003はデバイスID・ドライバパスリストであり、USBデバイス番号1304を、ドライバが格納されたパス1303と対応付けている。
図5は、本発明に係る印刷ネットワークシステムの上記実施形態における第2の構成部分を示すブロック図である。
第2の構成部分においては、クライアントPC851、857、ネットワーク対応プリンタ852、代理サーバ(Proxy Sever)853が、ネットワーク856を介して通信可能に接続される。クライアントPC851、857、ネットワーク856は、図1を参照して前述したクライアントPC851、857、ネットワーク856と同一のものである。
代理サーバ853は代理応答装置であり、この代理サーバ853も、図2に示すハードウェア構成と同じ構成を採り、このハードウェア構成によって、SOAPレスポンス発行処理部815、SOAPリクエスト解析処理部816、SNMP(Simple Network Management Protocol)処理部817、HTTP(Hyper Text Transfer Protocol)部814、TCP/UDP/IPプロトコルスタック部813、USBプロトコルスタック部819の各モジュールの機能が実現される。USBプロトコルスタック部819は、USBホストコントローラ等から構成されてUSB(双方向通信が可能なインタフェース)を制御する。
またプリンタ852も、図2に示すハードウェア構成と同じ構成を採り、TCP/UDP/IPプロトコルスタック部809、SNMP(Simple Network Management Protocol)処理部810、プリントプロトコルモジュール部811、プリントコントローラ部812の各モジュールが、HDDからRAMに読み出され、CPUにより実行される。なお、プリントコントローラ部812は、プリンタ852とは別のCPUによって実行されるようにしてもよい。
プリンタ852は、図1に示すプリンタ855と異なり、プリンタ855のUPnPデバイス制御部60のようなものを備えていない。
代理サーバ853において、818はUPnPデバイス制御部である。このUPnPデバイス制御部818は、プリンタ855のUPnPデバイス制御部60と同様な機能を備えているが、さらに、UPnP未対応であるサポート対象プリンタ(プリンタ852)をネットワーク856上に発見した場合に、このプリンタ852を、見かけ上UPnP対応プリンタとして扱うことができるプロキシサーバ機能も備えている。このUPnPデバイス制御部818については、後に詳述する。また、プリンタ852におけるUPnP対応についても、後に詳述する。
図6は、本発明に係る印刷ネットワークシステムの上記実施形態における第3の構成部分を示すブロック図である。
第3の構成部分においては、クライアントPC851、857、代理サーバ853、USBを利用したローカル接続のプリンタ854が、ネットワーク856を介して通信可能に接続される。クライアントPC851、857、ネットワーク856は、図1を参照して前述したクライアントPC851、857、ネットワーク856と同一のものであり、代理サーバ853は、図5を参照して前述した代理サーバ853と同一のものである(図6にはUSBプロトコルスタック部819のみを図示し、他の構成部分の図示を省略)。
図6において、図2に示すハードウェア構成と同じ構成を採り、USBを制御するUSBプロトコルスタック部820、SNMP(Simple Network Management Protocol)処理部823、プリントプロトコルモジュール部821、プリントコントローラ部822の各モジュールが、HDDからRAMに読み出され、CPUにより実行される。なお、プリントコントローラ部822は、プリンタ854とは別のCPUによって実行されるようにしてもよい。
プリンタ854は、図1に示すプリンタ855と異なり、プリンタ855のUPnPデバイス制御部60のようなものを備えていない。しかし、代理サーバ853のUPnPデバイス制御部818(図5)のプロキシサーバ機能により、代理サーバ853が、UPnP未対応であるサポート対象プリンタ(プリンタ854)をローカルポート(USBポート)上に発見した場合、このプリンタ854は、見かけ上UPnP対応プリンタとして扱われる。なお、プリンタ854におけるUPnP対応については後に詳述する。
図6に示す859は、着脱可能な自動両面印刷ユニットであり、プリンタ854にこれが装着されると、プリンタ854において自動両面印刷を行うことができる。なお、現時点では自動両面印刷ユニット859は装着されていないものとする。
ここで以下の説明においては、代理サーバ853のコンピュータ名をPC_ABEとする。また、プリンタ854については、製造者名をABC、機種名をPrintMdl-M、製造番号を000777とする。そして、プリンタ854が代理サーバ853にUSBで接続されていて、代理サーバ853にプリンタ854用のドライバがインストールされていて、代理サーバ853を介してプリンタ854で正常に印刷できるものとし、さらに、プリンタ854は、代理サーバ853を介してネットワーク856上の共有プリンタとしてクライアントPC851、857から参照可能な環境が整っているものとする。代理サーバ853においてドライバをインストールされているプリンタ854のプリンタ(表示)名と、共有プリンタとして参照されるプリンタ854のプリンタ(表示)名とは同一であり、ABCPrintMdl−Mであるとする。
図7は、Windows(登録商標) XPをOSとして搭載したクライアントPC851において実行されるUPnP対応デバイス検出処理の手順を示すフローチャートである。このフローチャートには、クライアントPC851からの要求に対する各プリンタによる応答処理も含まれる。
図7において、クライアントPC851が起動して(S401)、UPnPサービスが開始されると(S402)、UPnPルートデバイスを検索する要求であるSSDP(Simple Service Discovery Protocol)リクエスト(HTTPリクエストの一形態)がクライアントPC851から周辺装置(プリンタ)側に発行される(S403)。
このSSDPリクエストに対してデバイス(周辺装置)からSSDPレスポンスが有った場合(S404でYES)、クライアントPC851は、SSDPレスポンスのあったデバイスを検出し、該デバイスのアイコンをMy Network Placesフォルダ上に表示する(S405)。そして、所定時間(例えば1分)の待機(S408)の後、ステップS403へ戻る。
ステップS404において、SSDPリクエストに対してデバイスからSSDPレスポンスが無いと判別された場合、クライアントPC851は、My Network Placesフォルダ上に、レスポンスの無いデバイスのアイコンが表示されているか否かを判別し(S406)、レスポンスの無いデバイスのアイコンが表示されている場合、その表示されているアイコンを削除し(S407)、ステップS408へ進む。ステップS406において、レスポンスの無いデバイスのアイコンが表示されていないと判別された場合、ステップS408へ進む。
次に、図1に示すプリンタ855、図5に示すプリンタ852及び代理サーバ853、並びに図6に示すプリンタ854及び代理サーバ853が、それぞれ起動している状態の時(S409)、ステップS403で発行されたSSDPリクエストを受信した場合(S410)、プリンタ855、プリンタ852及びプリンタ854はそれぞれ、そのSSDPリクエストが、自分がサポートしているリクエスト(UPnPルートデバイスを検索するSSDPリクエスト)と一致するか否かを判別する(S411)。その結果、一致する場合にはSSDPレスポンスをクライアントPC851へ発行し(S412)、ステップS410のSSDPリクエストの受信待ち状態に戻る。ステップS411において、SSDPリクエストが一致しないと判別された場合、ステップS410へ戻る。
このように、UPnP対応デバイスが印刷ネットワークシステム内に存在する場合に、クライアントPC851のMy Network Placesフォルダ上に、そのデバイスのアイコンが表示され、これによって、そのデバイスをクライアントPC851から制御することができるようになる。
図8は、クライアントPC851の表示装置に表示されたMy Network Placesフォルダの一例を示す図である。
同図は、図7のステップS405でプリンタ855(図1)のアイコンが表示されている状態を示す。図中、ABC PrintMdl-K 000888は、UPnP対応のプリンタ855が使用可能な状態でスタンバイ中であることを示している。このアイコン表示において、ABCは製造者名、PrintMdl-Kは機種名、000888は装置固有の製造番号を示す。
このように製造者名、機種名、製造番号を利用してデバイス表示名を構成することで、例えば、同一ネットワーク上に製造番号だけが異なる同一機種の周辺装置が複数存在するような場合においても、デバイス表示名からそれぞれのデバイスを特定でき、ユーザが意図していないデバイスに誤ってアクセスしてしまうような誤操作を防止することができる。
図9は、クライアントPC851から発行されるHTTPリクエストの一例を示す図である。
同図は、図7のステップS403や後述する図36のステップS4703で発行されるUPnPルートデバイスを検索するためのSSDPリクエストを表す。同図の左端の番号は行番号を表す。このSSDPリクエストの内容に関しては、UPnP Forumによって標準化されているUniversal Plug and Play Device Architecture V 1.0の規格に記載されているので、ここでは本発明に関連する部分のみ説明し、それ以外の部分に関する説明は省略する。
同図において、3行目はSearch Targetであり、UPnPルートデバイスを表すupnp:rootdeviceが指定されている。4行目はMANとして“ssdp:discover”が指定されている。この例では、Universal Plug and Play Architecture V 1.0にて規定されるSimple Service Discovery Protocol(SSDP)を使用する。
図9に示す例によれば、クライアントPC851は、マルチキャストアドレス「239.255.255.250」、ポート番号「1900」に対して、図9に示すフォーマットのHTTPパケットを発行する。なお、HTTPリクエストによる探索要求はUPnPの探索要求に限るものではない。
図10は、クライアントPC851に返信されるHTTPレスポンスの一例を示す図である。
同図は、図7のステップS412や後述する図36のステップS4713でプリンタ855から発行されるSSDPレスポンスを表す。
同図の左端の番号は行番号を表す。このSSDPレスポンスの内容に関しては、UPnP Forumで標準化されているUniversal Plug and Play Device Architecture V 1.0の規格に記載されているので、ここでは本発明に関連する部分のみ説明し、それ以外の部分に関する説明は省略する。
図10において、4行目で、プリンタ855がサポートしているUPnPデバイスのXML Device Descriptionが存在するURLが指定されている。このXML Device Descriptionについては、図11及び図32、図33を参照して後述する。
6行目はNotification Typeを示し、この例では、デバイスのDeviceTypeがUPnP Forumで標準化されているPrinter:1であることを表している。
7行目はNotification Sub Typeを示し、この例では、デバイスが使用可能な状態であることを表すssdp:aliveが指定されている。
9行目はUnique Service Nameを示し、この例では、デバイスのUniversally Unique Identifier(UUID)が記されている。
図10に示す例によれば、Universal Plug and Play Architecture V 1.0にて規定されるSimple Service Discovery Protocol(SSDP)を使用しているので、プリンタ855はマルチキャストアドレス「239.255.255.250」、ポート番号「1900」に対して、図10に示すフォーマットのHTTPパケットを発行する。なお、HTTPレスポンスによる応答はUPnPの応答に限るものではない。
図11は、プリンタ855がサポートしているUPnPデバイスのXML Device Descriptionの記述内容の基本的な一例を示す図である。
同図の左端の番号は行番号を表す。この記述内容に関しては、UPnP Forumで標準化されているUniversal Plug and Play Device Architecture V 1.0の規格に記載されているので、ここでは本発明に関連する部分のみ説明し、それ以外の部分に関する説明は省略する。
図11において、2〜30行目はroot要素を表し、プリンタ855がUPnP Forumで標準化されているデバイスに準拠していることが記述されている。
7〜29行目はdevice要素を表す。
8行目はdeviceType要素を示し、プリンタ855がUPnP Forumで標準化されているPrinter Device V 1.0のデバイスであることが記述されている。
9行目はfriendlyName要素を示し、この内容が、図8に示すMy Network Placesフォルダに表示されるUPnP対応デバイスのアイコンにおけるデバイス名として使用される。この要素を、後述する製造者名(ABC)、機種名(PrintMdl-K)、製造番号(000888)から構成することで、例えば、同一ネットワーク上に製造番号だけが異なる同一機種の周辺装置が複数存在するような場合においても、表示名からそれぞれのデバイスを特定でき、ユーザが意図していないデバイスに誤ってアクセスしてしまうような誤操作を防止することができる。
10行目はmanufacturer要素を示し、製造業者名が記述される。
11行目はmanufacturerURL要素を示し、製造業者のWebサイトのホームページのURLが記述される。
12行目はmodelDescription要素を示し、エンドユーザ用の識別名が記述される。
13行目はmodelName要素を示し、機種名が記述される。
14行目はserialNumber要素を示し、製造番号が記述される。
15行目はUDN要素であり、Unique Device Nameが記述される。
16〜26行目はserviceList要素を表す。
17〜25行目はservice要素を示し、このデバイス、すなわちプリンタ855がサポートしているUPnPのサービスが記述される。
18行目はserviceType要素を示し、プリンタ855がUPnP Forumで標準化されているPrinter Basic Service V 1.0のサービスをサポートしていることが記述されている。
19行目はserviceId要素を示し、このサービスのIDが記述される。
20行目はSCPDURL要素を示し、Service DescriptionのためのURL、すなわち、Service Control Protocol Definition URLが記述される。
21〜22行目はcontrolURL要素を示し、デバイスを制御するためのURLが記述される。
23〜24行目はeventSubURL要素を示し、イベントのためのURLが記述される。
27〜28行目はpresentationURL要素を示し、デバイスを公開するためのプレゼンテーションページのURLが記述される。
図12は、プリンタ855が公開しているプレゼンテーションページをクライアントPC851上で表示した場合の画面を示す図である。
クライアントPC851において、図8に示す、UPnP対応デバイスであるプリンタ855のアイコン「ABC PrintMdl-K 000888」をダブルクリックして起動すると、図11の27〜28行目のpresentationURL要素で指定されているURLを引数としてWebブラウザ(IE6)が起動して、図12に示すようなプレゼンテーションページが表示される。このプレゼンテーションページはActive Server Pages(以下「ASP」という)で構成されており、動的に作成されたHTML(Hypertext Makeup Language)を見せることができるので、プリンタ855の状態等をリアルタイムに反映させて表示することが可能である。また、Java(登録商標)Scriptを用いて、一定時間(例えば5秒間)毎にページの内容が自動的に更新されるようになっているので、前記ASPの機能と合わせて、約5秒のインターバルでリアルタイムに表示内容が更新される。
図12において、216はアドレス表示部であり、このプレゼンテーションページのURLが表示される。200はプリンタ名表示部(Printer:)であり、プリンタ855の図8で示すようなUPnP対応デバイス名であるプリンタ名が表示される。201は機種名表示部(Model:)であり、プリンタ855の機種名が表示される。202はIPアドレス表示部(IP Address:)であり、プリンタ855のIPアドレスが表示される。203はプリンタの状態表示部であり、プリンタの動作状態が表示される。図12の例では“ON LINE”の状態を表している。
204は、ファイル名表示部205及び参照ボタン(Browse...)206から構成されるファイル選択部(Print File:)であり、参照ボタン206をクリックすることによって印刷対象のファイルを選択すると、そのファイル名がファイル名表示部205に表示される。
207は部数指定部(Copies:)であり、印刷部数を1〜100部の範囲で指定できる。
208は用紙の種類選択部(Media Type:)であり、用紙の種類をPlain Paper、Photo Paper、OHP Sheetの中から選択することができる。
209は用紙サイズ選択部(Paper Size:)であり、用紙サイズをA4、A5、B5、Letterの中から選択することができる。
210は印刷レイアウト選択部(Layout:)であり、印刷レイアウトを1-up、2-up、4-upの中から選択することができる。
211は印刷品位選択部(Print Quality:)であり、印刷品位をHigh、Standard、Draftの中から選択することができる。
212は印刷の向き選択部(Orientation:)であり、印刷の向きをPortrait、Landscapeから選択することができる。
213は印刷ボタン(Print)であり、このボタンをクリックすると印刷が開始される。
214はインク残量表示部であり、プリンタ855に装着されているインクカートリッジのインク残量が表示される。
215は操作ガイド部であり、ユーザ操作の補助として、操作ガイドが表示される。
このプレゼンテーションページを利用することにより、クライアントPC851、857にプリンタ855用のドライバをインストールすることなく、これらのクライアントPCからドライバレスでプリンタ855において印刷することができる(以下、この印刷を「ドライバレス印刷」と呼ぶ)。
図13は、プリンタ855が公開しているプレゼンテーションページをクライアントPC857上で表示した場合の画面を示す図である。
クライアントPC857は、プリンタ855内にある、図11の27〜28行目のpresentationURL要素で指定されているURLに用意されているプレゼンテーションページを、クライアントPC851とは異なるOS及びWebブラウザ(MacOS、IE5)によって表示するが、図12と見比べると分かる通り、ページ内の各構成要素は、見かけが若干異なるものの、同様なものとなっている。
このように、プリンタ855に1つのUI(User Interface)、即ち、前記プレゼンテーションページを用意しておくだけで、異なるクライアントPCにおいて、同様なUIを操作することができ、この操作によって印刷を行わせることができるので、クライアントPC毎にUIを開発する必要がなく、UIの開発工数を削減できる。しかも、クライアントPC毎にUIが異なることがないので、クライアントPCの違いによりユーザが違和感を抱くことなく、ユーザの操作性を向上することができる。
図14は、図12または図13に示すプレゼンテーションページを用いてドライバレス印刷を行う時にクライアントPC851またはクライアントPC857で実行される印刷処理の手順を示すフローチャートである。但し、以下の説明では、図12に示すプレゼンテーションページを用いてクライアントPC851で実行される印刷処理の手順を例にとる。
同図において、図12に示す印刷ボタン213がクリックされると(S2501)、図12に示す各印刷設定部207〜212に設定された印刷設定情報をプリンタ855へ送信する(S2502)とともに、ファイル選択部204で選択された印刷対象ファイルをプリンタ855へ送信する(S2503)。これによって、クライアントPC851におけるドライバレス印刷処理が完了する(S2504)。
ステップS2502においてプリンタ855へ送信された印刷設定情報は、クライアントPC851の情報とともに、互いに関連付けられてプリンタ855内に保存される。この保存されたクライアントPC851の情報と印刷設定情報は、次回、再びクライアントPC851からこのプレゼンテーションページにアクセスされた時の初期設定値として利用される。これにより、次回アクセス時に、ユーザがよく使用するお気に入りの印刷設定が初期設定値としてプレゼンテーションページに最初に表示され、ユーザにとって操作性が向上する。
図15は、図12または図13のプレゼンテーションページを用いてドライバレス印刷が行われたときのプリンタ855で行われる状態検出処理の手順と、クライアントPC851またはクライアントPC857で実行されるプリンタ855の状態表示処理の手順とを示すフローチャートである。但し、以下の説明では、図12に示すプレゼンテーションページを用いてクライアントPC851で実行されるプリンタ855の状態表示処理の手順を例にとる。なお、プリンタ855の状態表示は、図12に示すプレゼンテーションページおけるプリンタ名表示部200、機種名表示部201、IPアドレス表示部202、プリンタの状態表示部203、インク残量表示部214における状態表示を指す。
図15において、まず、プリンタ855における状態検出処理が起動する(S2601)と、プリンタ855は、プリンタ855の動作状況を表すステータスを確認し(S2602)、前回の確認結果と比較してステータスに変化が有る否かを判別する(S2603)。その結果、ステータスに変化が有るならば、最新のステータスを保存し(S2604)、プリンタ855に用意されているプレゼンテーションページのASPの情報を更新し(S2605)、所定時間(例えば5秒間)の待機した後(S2606)、ステップS2602へ戻る。一方、ステップS2603においてステータスに変化が無いと判別された場合、ステップS2606へ進む。
次に、クライアントPC851における図12に示すプレゼンテーションページに関する処理として(S2607)、Java(登録商標)Scriptで記述されている所定時間(例えば5秒間)が経過した場合(S2608でYES)、クライアントPC851のWebブラウザ上における図12のプレゼンテーションページの表示内容が更新され(S2609)、ステップS2608へ戻る。
このようにして、簡単な構成のプレゼンテーションページを1つ用意するだけで、プリンタ855の状態を、クライアントPC851またはクライアントPC857の図12または図13のプレゼンテーションページにリアルタイムに反映することができる。これによって、プレゼンテーションページの開発工数を削減でき、しかも、ユーザにとって操作性が向上する。
図16は、Windows(登録商標) XPのネットクロールサービスによってクライアントPC851にドライバがインストールされる際にクライアントPC851で実行されるインストール処理の手順を示すフローチャートである。なお、このネットクロールサービスは、例えば、本実施形態の印刷ネットワークシステムにおける、図6に示す第3の構成部分のような環境に適用され得るので、ここでは、図6に示す第3の構成部分に基づいて説明する。
図16において、クライアントPC851が起動すると(S2801)、ネットクロールサービスが開始され(S2802)、ネットワーク856上の共有プリンタを検索する(S2803)。その結果、共有プリンタ(プリンタ854)が見つかった場合(S2804でYES)、クライアントPC851は、代理サーバ853からその共有プリンタのプリンタ(表示)名、製造者名、機種名、プリンタのパスを取得する(S2805)。そして、Windows(登録商標) XPのプラグアンドプレイ機能により、このプリンタ(プリンタ854)用のドライバがクライアントPC851にインストールされているか否かがチェックされる(S2806)。その結果、インストールされていない場合(S2807でNO)、クライアントPC851のHDDまたはCD−ROM等の他の媒体にこのプリンタ(プリンタ854)用のドライバが有るか否かを検索する(S2808)。その結果、ドライバが見つかった場合(S2809でYES)、クライアントPC851にこのプリンタ(プリンタ854)用のドライバがインストールされる(S2810)。
このようにネットクロールサービスによりクライアントPC851にプリンタ854のドライバがインストール(追加)されると、図17を参照して後述するように、クライアントPC851のPrinters and Faxesフォルダにこのプリンタが追加される。
そして、所定時間(例えば1分)の待機の後(S2811)、ステップS2803へ戻る。
ステップS2804において共有プリンタが見つからなかったと判別された場合(S2804でNO)、ステップS2811へ進む。また、ステップS2807において、このプリンタ(プリンタ854)用のドライバがクライアントPC851にインストールされていると判別された場合(S2807でYES)、ステップS2811へ進む。さらに、ステップS2809において、このプリンタ(プリンタ854)用のドライバがクライアントPC851のHDDまたはCD−ROM等の他の媒体に見つからないと判別された場合(S2809でNO)、ステップS2811へ進む。
かくして、ネットクロールサービスによりクライアントPC851にプリンタ854用のドライバがインストールされた後は、代理サーバ853からの制御によってプリンタ854で印刷が行われる時と全く同じような操作により、クライアントPC851からの制御によってプリンタ854で印刷が行われ得る。
図17は、クライアントPC851の表示装置に表示されるPrinters and Faxesフォルダを示す図である。
図17に示すように、クライアントPC851にドライバがインストールされているプリンタ(プリンタ854)は、そのプリンタを表すアイコンにてこのフォルダ内に表示される。同図に例示されるAuto ABC PrintMdl-M on PC_ABEという名前のアイコンは、図16に示すステップS2810でドライバがインストールされたプリンタ854を表す。図6を参照して前述したように、代理サーバ853のコンピュータ名はPC_ABEであり、共有プリンタとして参照されるプリンタ854のプリンタ(表示)名はABC PrintMdl-Mであるので、ネットクロールサービスでクライアントPC851にプリンタ854のドライバがインストールされる時は、このコンピュータ名とプリンタ(表示)名とから、Auto ABC PrintMdl-M on PC_ABEというプリンタ(表示)名がOSにより自動的に付与される。
図18は、代理サーバ853におけるプリンタドライバの構成を示すブロック図である。
同図において、50は代理サーバ853にインストールされているプリンタドライバであり、32〜39の複数のモジュールから構成される。
30は印刷指令可能なアプリケーションであり、例えば、Windows(登録商標) XP OS に標準で同梱されているテキストエディタであるNotepad(Notepad.exe)等に相当する。
31はGDI(Graphics Device Interface)であり、Windows (登録商標)XP OSの一部である。
32はプリンタキューであり、Windows(登録商標) XP OSのスプーラ(Spooler;プリンタなど処理の遅いデバイスへ出力するデータを一時的に保存するプログラム)の一部であり、印刷ジョブをキューイングする。キューイングされた印刷ジョブは、図26を参照して後述するようなプリンタキューフォルダに表示される。
33はプリントプロセッサであり、印刷レイアウトの変更や印刷画像の特殊処理を行う。
34はグラフィックスドライバであり、プリンタドライバ50の画像処理のコアとして動作し、GDI31から送られて来る描画命令に基づき印刷用の画像処理を行い、印刷制御コマンドを作成する。
35はUIモジュールであり、プリンタドライバ50のユーザインタフェースの提供及び制御を行う。
36はランゲージモニタであり、データの通信I/Fとしてデータの送受信を制御する。
37はポートモニタであり、ランゲージモニタ36から送られて来るデータを適切なポートに対して送信したり、プリンタ854から送られて来るデータを、クラスドライバ38を介して受信したりする。
38はクラスドライバであり、最もポートに近いローレベルのモジュールであり、ポートを制御する。図18に示す例では、USB用のクラスドライバに相当し、代理サーバ853のUSBポートを制御して、プリンタ854とのUSB通信を制御する。
39はステータスモニタであり、プリンタ854の状態をモニタして表示する。
図18では、プリンタドライバ50を搭載した代理サーバ853を説明したが、同じWindows(登録商標) XP OSを搭載したクライアントPC851においてプリンタドライバを利用した印刷処理においても、同様な構成となる。また、図18では、代理サーバ853にプリンタ854がUSBで接続されているローカル印刷の例を説明したが、例えば、クライアントPC851から代理サーバ853を介して共有されているプリンタ854で印刷するようなネットワーク印刷においても、同様な構成となる。
図19は、図18に示すUIモジュール35の基本的な内部構成を示すブロック図である。
同図において、40はUI制御部であり、印刷設定ダイアログ等のユーザインタフェースを制御する。41はUIリソース部であり、UI制御部40で使用する印刷設定ダイアログ用のアイコン、ビットマップ、文字列等のリソースを格納する。42はDEVMODE制御部であり、印刷時にOS、アプリケーション30、プリンタドライバ50間で使用するDEVMODE構造体の制御を行い、必要に応じてUI制御部40に反映させる。
図20は、図18に示すステータスモニタ39の基本的な内部構成を示すブロック図である。
同図において、45はUI制御部であり、ステータスモニタダイアログ等のユーザインタフェースを制御する。46はUIリソース部であり、UI制御部45で使用するステータスモニタダイアログ用のアイコン、ビットマップ文字列等のリソースを格納する。47はステータス制御部であり、プリンタ854からのステータスの取得を制御して、必要に応じてUI制御部45に反映させる。
図21は、クライアントPC851のWindows(登録商標) XP OSに標準のアプリケーションとして組み込まれているテキストエディタNotepad(Notepad.exe)によってクライアントPC851の表示装置に表示される画面の一例を示す図である。
この画面において印刷を指示するには、Fileメニューから印刷メニュー(Print...)217を選択する。これにより、テキスト表示部218に表示されているテキストに対する印刷処理が開始される。
図22は、図21に示す印刷メニュー217が選択されることによってクライアントPC851の表示装置に表示されるPrintダイアログを示す図である。
図中219はプリンタ選択部であり、印刷を実行させるプリンタを選択するために使用される。同図では、図17を参照して前述したプリンタAuto Canon PrintMdl-M on PC_ABEが選択されて反転表示されている状態を表している。
220はPreferencesボタンであり、プリンタ選択部219で選択されているプリンタまたはこのプリンタ用ドライバの詳細設定を行うことができる。
221は部数指定部であり、印刷部数を1〜100部の範囲で指定できる。
222はPrintボタンであり、このボタンがクリックされると、選択されている各設定で印刷が開始され、Printダイアログが閉じられる。
223はCancelボタンであり、このボタンがクリックされると、印刷を開始せずにPrintダイアログが閉じられる。
図23は、図22に示すPreferencesボタン220がクリックされてクライアントPC851の表示装置に表示されるPreferencesダイアログのMainシートを表す図である。
図22に示すPrintダイアログにおいて、プリンタAuto ABC PrintMdl-M on PC_ABEが選択されている状態の時、Preferencesボタン220がクリックされると、このPreferencesダイアログのMainシートが表示される。
図23において、224は用紙の種類選択部(Media Type:)であり、用紙の種類をPlain Paper、Photo Paper、OHP Sheetの中から選択することができる。
225は印刷品位選択部(Print Quality:)であり、印刷品位をHigh、Standard、Draftの中から選択することができる。
226は操作ガイド部であり、ユーザ操作の補助として、操作案内情報が表示される。
227はOKボタンであり、このボタンがクリックされると、その時の印刷設定情報によって印刷設定を更新して保存した後、Preferencesダイアログが閉じられる。
228はCancelボタンであり、このボタンがクリックされると、そのときの印刷設定情報による更新は実行せずにPreferencesダイアログが閉じられる。
図24は、PreferencesダイアログのPage Setupシートを示す図である。図23に示すPreferencesダイアログのMainシートが表示されている時に、Page Setupタブが選択されると、このシートが表示される。
図24において、229は用紙サイズ選択部(Paper Size:)であり、用紙サイズをA4、A5、B5、Letterの中から選択することができる。
230は印刷の向き選択部(Orientation:)であり、印刷の向きをPortrait、Landscapeの中から選択することができる。
231は印刷レイアウト選択部(Layout:)であり、印刷レイアウトを1 Page Layout Printing、2 Page Layout Printing、4 Page Layout Printingの中から選択することができる。
232は部数指定部(Copies:)であり、印刷部数を1〜100部の範囲で指定できる。
233は操作ガイド部であり、ユーザ操作の補助として、操作案内情報が表示される。
図25は、クライアントPC851の表示装置に表示されるステータスモニタダイアログを示す図である。印刷中にステータスモニタ39が起動すると、このダイアログが表示される。
同図において、234はプリンタの状態表示部であり、プリンタの状態が絵で表示される。
235はメッセージ表示部であり、プリンタの状態を表すメッセージやユーザの操作方法に関するメッセージ等が表示される。
236はインク残量表示部であり、プリンタに装着されているインクカートリッジのインク残量が表示される。
237は印刷ジョブ情報表示部であり、印刷中の印刷ジョブのオーナー名(Owner:)、ドキュメント名(Document Name:)、ページ番号(Printing Pages:)が表示される。
238は印刷中止(Cancel Printing)ボタンであり、印刷中の印刷ジョブの印刷を中止したいときに操作されるボタンである。
図26は、プリンタキューフォルダを表す図である。これはWindows(登録商標) XP OSにおいて標準で用意されているフォルダである。
同図に示されるように、キューイングされた印刷ジョブは、このフォルダにその詳細情報が表示され、メニューからのユーザ操作により、印刷ジョブのキャンセル、一時停止、再印刷等を行うことができる。
図27および図28は、図6に示す第3の構成部分において、クライアントPC851内のアプリケーションにおいて印刷指令を行われ、これによってプリンタ854にて印刷が実行されるまでの印刷処理の基本的な手順を示すフローチャートである。
図21に示す印刷メニュー217が選択されて印刷が開始されると(S3301)、図22のPrintダイアログが表示される(S3302)。そして、Printダイアログの中のPreferencesボタン220がクリックされた場合(S3303でYES)、図23のPreferencesダイアログが表示される(S3314)。Preferencesダイアログの中で必要な選択が行われ、OKボタン227がクリックされると(S3315でYES)、印刷設定情報による印刷設定の更新、保存が行われて、Preferencesダイアログが閉じ(S3316)、ステップS3304へ進む。
ステップS3314によってPreferencesダイアログが表示されているとき、Cancelボタン228がクリックされると(S3315でNO)、印刷設定情報の更新は行われず、Preferencesダイアログが閉じた後、ステップS3304へ進む。また、ステップS3303においてPrintダイアログの中のPreferencesボタン220がクリックされない場合(S3303でNO)も、ステップS3304へ進む。
ステップS3304では、アプリケーションがプリンタドライバの機能を問い合わせ、DEVMODE構造体等の印刷設定情報を作成する(S3304)。図22のPrintボタン222がクリックされて印刷が開始されると(S3305)、アプリケーション30から描画命令がGDI31に送られ、上記印刷設定情報とこの描画命令とがEMF(Enhanced Metafile Format)ファイルとしてキューイングされ、印刷ジョブが作成される(S3306)。この印刷ジョブは、図26のプリンタキューフォルダに表示される。
そして、プリントプロセッサ33にて上記印刷ジョブのEMFファイルがリプレイされて印刷レイアウトの変更処理等が行われて、新たな描画命令が作成されてGDI31に送られる(S3307)。このリプレイされて新たに作成された描画命令がGDI31からグラフィックスドライバ34に送られ、グラフィックスドライバ34は、この描画命令を印刷画像用のメモリにラスタライズすることをGDI31(OS)に依頼して、GDI31によりラスタライズが行われ、印刷画像が作成される(S3308)。グラフィックスドライバ34はこのラスタライズされた印刷画像に基づき印刷制御コマンドを作成する(S3309)。
次に、ステータスモニタ39を起動し(S3310)、プリンタ854に上記印刷制御コマンドを送信し(S3311)、印刷制御コマンドの全てを送信した後、図25のステータスモニタダイアログを閉じてステータスモニタ39の動作を終了し(S3312)、印刷処理を終了する(S3313)。
プリンタ854においては、ステップS3311でステータスモニタ39から送信された印刷制御コマンドに基づき、印刷が行われる。
ステップS3310においてステータスモニタ39が起動すると、図25のステータスモニタダイアログが表示される(S3317)。ステータスモニタ39が起動している間は、プリンタ854のステータスの確認が行われ(S3318)、プリンタ854に状態変化が有る場合(S3319でYES)、そのステータスを保存し(S3320)、図25のステータスモニタダイアログの表示を更新し(S3321)、所定時間(例えば5秒間)の待機の後(S3322)、ステップS3318に戻る。
ステップS3319において、プリンタ854に状態変化が無いと判別された場合(S3319でNO)、ステップS3322へ進む。
ステータスモニタ39が起動している間はこのような処理が繰り返され、プリンタ854の最新の状態が図25のステータスモニタダイアログにリアルタイムに表示される。
図27および図28では、クライアントPC851から代理サーバ853を介して共有されているプリンタ854で印刷するようなネットワーク印刷の例を説明したが、例えば、代理サーバ853にプリンタ854がUSBで接続されているローカル印刷においても、同様な処理内容となる。
次に、図6に示す第3の構成部分において、Mac OSを搭載するクライアントPC857がプリンタ854において印刷を行わせる場合について説明する。なお、Mac OSを搭載するクライアントPC857上において、代理サーバ853を介して共有されているプリンタ854用のドライバがインストールされており、かつ、このプリンタ854が選択されているものとする。
図29は、図6に示す第3の構成部分において、クライアントPC857のIE5のFileメニューからPrint...を選択した時に表示されるPrintダイアログを示す図である。
図30は、図6に示す第3の構成部分において、クライアントPC857のIE5のFileメニューからPage Setup...を選択した時に表示されるPage Setupダイアログを示す図である。
図31は、図6に示す第3の構成部分において、図29のPrintボタンがクリックされて印刷が開始された時の印刷中に表示されるステータスモニタダイアログを示す図である。
図29、図30を、図22、図23、図24と比較して分るとおり、図22、図23、図24の221〜233の印刷設定やボタンに相当するものが、図29、図30にも存在するものの、その表示レイアウトや操作性が異なっている。また、図31を、図25、図26と比較して分かるとおり、図25、図26の234〜237に相当するものが、図31にも存在するが、その表示レイアウトや操作性は異なっている。これらの相異点は、クライアントPC851がWindows(登録商標) XPOSを搭載しているのに対し、クライアントPC857がMac OSを搭載していることに起因するものである。このため、プリンタドライバのUIを設計・開発する上では、従来、両OS用のUIをそれぞれ別々に設計・開発しなければならない。このように、従来、2つのOS用のプリンタドライバのUIを設計・開発するのに、少なくとも2倍の労力を費やさなければならなく、多大な開発工数を要していた。また、印刷時のユーザの操作性もOS毎に異なってしまうため、ユーザが混乱するケースも非常に多かった。
こうした従来の課題を解決するために、本発明では、図1に示すプリンタ855がサポートしているUPnPデバイスのXML Device Descriptionの記述内容に対して追加を行った。以下にこれを説明する。
図32および図33は、本発明におけるプリンタ855がサポートしているUPnPデバイスのXML Device Descriptionの記述内容を示す図である。なお、図11を参照して説明したUPnPデバイスのXML Device Descriptionの基本的な記述内容に対して、本発明では記述内容の追加が行われているので、この追加した部分を中心に説明する。
図32および図33の左端の番号は行番号を表す。これらの図において、2〜39行目はroot要素、7〜38行目はdevice要素を表す。1〜15行目の内容は図11と同一なので、ここでは説明を省略する。
16〜35行目はserviceList要素を表す。この中で、17〜25行目に記されている1つ目のサービスは、図11の17〜25行目に記されているサービスと同一なので、ここでは説明を省略する。
26〜34行目はservice要素を示し、このデバイス、すなわちプリンタ855がサポートしているUPnPの2つ目のサービスが記述される。
27行目はserviceType要素を示し、製造業者(ベンダー)が独自に定めたPrinter Extensional Service V1.0(PrintEx:1)のサービスをプリンタ855がサポートしていることが記述されている。このPrinter Extensional Service V1.0のサービス内容、及び、このサービスのService Descriptionについては、図34、図35を参照して後述する。
28行目はserviceId要素を示し、このサービスのIDが記述される。
29行目はSCPDURL要素であり、SCPDURL(Service Control Protocol Definition URL)が記述される。
30〜31行目はcontrolURL要素であり、デバイスがPrinter Extensional Service V1.0を制御するためのURLが記述される。
32〜33行目はeventSubURL要素であり、このサービスのイベントのためのURLが記述される。
36〜37行目はpresentationURL要素であり、デバイスを公開するためのプレゼンテーションページのURLが記述されている。これは図11の27〜28行目と同一である。
図34および図35は、本発明におけるプリンタ855がサポートしているUPnPデバイスのXML Service Descriptionの記述内容を表す図である。
同図の左端の番号は行番号を表す。これらの図34および図35に示す内容は、図32および図33のPrinter Extensional Service V1.0のサービスのSCPD(Service Control Protocol Definition)であり、このサービス及びこのサービスのService Descriptionの内容を表している。これらの内容の一部に関しては、UPnP Forumで標準化されているUniversal Plug and Play Device Architecture V 1.0の規格に記載されているので、ここでは本発明に関連する部分のみ説明し、それ以外の部分に関する説明は省略する。
以下の説明においては、図1に示す印刷ネットワークシステムの第1の構成部分を例として用いる。
これらの図34および図35において、2〜55行目はSCPD要素を表し、ここには、プリンタ855がUPnP Forumで標準化されているサービスに準拠していることが記述されている。
7〜43行目はactionList要素を表す。Printer Extensional Service V1.0のサービスは2つのアクションを備え、1つ目はCreatePrinterアクション、2つ目はDeletePrinterアクションである。
8〜32行目は上記1つ目のaction要素を示し、CreatePrinterアクションを表す。CreatePrinterアクションはデバイス、すなわち、プリンタ855のドライバをクライアントPC851やクライアントPC857等にインストールする時のアクションである。
9行目はname要素を示し、このアクションの名前がCreatePrinterであることが記述されている。
10〜31行目はargumentList要素を示す。CreatePrinterアクションは4つの変数を備え、1つ目はPrinterName変数、2つ目はPrinterPath変数、3つ目はPrintSettingURL変数、4つ目はStatusMonitorURL変数である。
11〜15行目は上記1つ目のargument要素を示し、PrinterName変数が記述されている。
12行目はname要素であり、この変数の名前がPrinterNameであることが記述されている。
13行目はdirection要素であり、変数の入出力方向を表す。PrinterName変数は、コントロールポイント(クライアントPC851やクライアントPC857等)からデバイス(プリンタ855)へ入力する変数であることが記述されている。
14行目はrelatedStateVariable要素であり、この変数の値(文字列)が指定される。例えば、図1に示す印刷ネットワークシステムの第1の構成部分において、デバイスがプリンタ855の場合、クライアントPC851からこの変数の値として、ドライバをインストールすべきプリンタのプリンタ名を表す“ABC PrintMdl-K 000888”という値(文字列)が指定される。
16〜20行目は上記2つ目のargument要素を示し、PrinterPath変数が記述されている。
17行目はname要素を示し、この変数の名前がPrinterPathであることが記述されている。
18行目はdirection要素を示し、変数の入出力方向を表す。PrinterPath変数は、デバイス(プリンタ855)からコントロールポイント(クライアントPC851やクライアントPC857等)に対して出力される変数であることが記述されている。
19行目はrelatedStateVariable要素を示し、この変数の値(文字列)が指定される。例えば、図1に示す印刷ネットワークシステムの第1の構成部分において、デバイスがプリンタ855の場合、プリンタ855からこの変数の値として、プリンタ855のネットワークパスを表すIPアドレス“192.168.0.100”という値(文字列)が指定されて返される。
21〜25行目は上記3つ目のargument要素を示し、PrinterSettingURL変数が記述されている。
22行目はname要素を示し、この変数の名前がPrinterSettingURLであることが記述されている。
23行目はdirection要素を示し、変数の入出力方向を表す。PrinterSettingURL変数は、デバイス(プリンタ855)からコントロールポイント(クライアントPC851やクライアントPC857等)に対して出力される変数であることが記述されている。
24行目はrelatedStateVariable要素を示し、この変数の値(文字列)が指定される。例えば、図1に示す印刷ネットワークシステムの第1の構成部分において、デバイスがプリンタ855の場合、プリンタ855からこの変数の値として、プリンタ855の印刷設定UIのプレゼンテーションページのURLを表す“http://192.168.0.100/PrintUIPresentation.asp?uuid=Printer:PrintMdl-K000888”という値(文字列)が指定されて返される。
26〜30行目は上記4つ目のargument要素を示し、StatusMonitorURL変数が記述されている。
27行目はname要素であり、この変数の名前がStatusMonitorURLであることが記述されている。
28行目はdirection要素を示し、変数の入出力方向を表す。PrinterSettingURL変数は、デバイス(プリンタ855)からコントロールポイント(クライアントPC851やクライアントPC857等)に対して出力される変数であることが記述されている。
29行目はrelatedStateVariable要素を示し、この変数の値(文字列)が指定される。例えば、図1に示す印刷ネットワークシステムの第1の構成部分において、デバイスがプリンタ855の場合、プリンタ855からこの変数の値として、プリンタ855のステータスモニタUIのプレゼンテーションページのURLを表す“http://192.168.0.100/StatusPresentation.asp?uuid=Printer:PrintMdl-K000888”という値(文字列)が指定されて返される。
33〜42行目は上記2つ目のaction要素を示し、DeletePrinterアクションが記述されている。DeletePrinterアクションはクライアントPC851やクライアントPC857等からデバイス、すなわち、プリンタ855のドライバを削除(アンインストール)する時のアクションである。
34行目はname要素を示し、このアクションの名前がDeletePrinterであることが記述されている。
35〜41行目はargumentList要素を示す。DeletePrinterアクションはPrinterPath変数を備える。
36〜40行目はargument要素を示し、PrinterPath変数が記述されている。
37行目はname要素を示し、この変数の名前がPrinterPathであることが記述されている。
38行目はdirection要素を示し、変数の入出力方向が記述される。PrinterPath変数は、コントロールポイント(クライアントPC851やクライアントPC857等)からデバイス(プリンタ855)へ入力する変数であることが記述されている。
39行目はrelatedStateVariable要素を示し、この変数の値(文字列)が指定される。例えば、図1に示す印刷ネットワークシステムの第1の構成部分において、デバイスがプリンタ855の場合、クライアントPC851からこの変数の値として、プリンタ855のネットワークパスを表すIPアドレス“192.168.0.100”という値(文字列)が指定される。
44〜54行目はserviceStateTable要素を示す。
45〜53行目はstateVariable要素を示し、デバイス(プリンタ855)の稼動状態を表すPrinterState状態値が記述される。45行目を見ると、この状態値がイベントとしてデバイス(プリンタ855)からコントロールポイント(クライアントPC851やクライアントPC857等)へリアルタイムに送信されることが分かる。
46行目はname要素であり、このPrinterState状態値の名前がPrinterStateであることが記述されている。
47行目はdataType要素を示し、このPrinterState状態値のデータタイプがstring(文字列)であることが記述されている。
48行目はdefaultValue要素を示し、このPrinterState状態値の初期値がenableであることが記述されている。
49〜52行目はallowedValueList要素を示し、状態値として指定可能な値が記述されている。
50行目は上記1つ目のallowedValue要素を示し、稼動可能を表す値としてenableが定義されている。
51行目は上記2つ目のallowedValue要素を示し、稼動不可能を表す値としてunableが定義されている。
このように、クライアントPC851やクライアントPC857等(以下ではクライアントPC851を例にとって説明する)において、ネットワーク856上にプリンタ855が発見された場合、Printer Extensional Service V1.0のサービスのCreatePrinterアクションを利用して、クライアントPC851からト゛ライハ゛をインストールするプリンタのプリンタ名が指定され、プリンタ855からネットワークパス、印刷設定UIのプレゼンテーションページのURL、ステータスモニタUIのプレゼンテーションページのURLが返され、これらの情報を用いてプリンタのドライバのインストールが行われる。また、印刷時にもこれらの情報が利用される。クライアントPC851からプリンタ855のドライバを削除(アンインストール)する場合は、DeletePrinterアクションを利用して削除を確実に行うことができる。
プリンタ855のドライバのインストールや削除の際に、PrinterState状態値のイベントを利用し、プリンタ855が稼動不可能な場合はプリンタ855のドライバのインストールを行わないようにし、また、プリンタ855が稼動不可能な場合はプリンタ855のドライバを削除するようにすることも、ユーザにとって有効である。
上記説明では、図1に示す印刷ネットワークシステムの第1の構成部分を例として用いたが、図5に示す第2の構成部分や図6に示す第3の構成部分においても、これを利用できる。この場合、代理サーバ853が、第1の構成部分におけるプリンタ855が行っていたUPnPの制御を行い、プリンタ852やプリンタ854を見かけ上UPnP対応プリンタとして制御できるようにすることで、容易に実現できる。また、図6に示す印刷ネットワークシステムの第3の構成部分のような、代理サーバ853と該代理サーバ853にUSBでローカル接続されたプリンタ854とから成るローカル接続の環境においても、プリンタ854が、図1に示す第1の構成部分のプリンタ855と同様なUPnP対応プリンタの機能を備えれば、これを利用できる。
図36は、図1に示す印刷ネットワークシステムの第1の構成部分におけるクライアントPC851で実行されるUPnP対応デバイス検出処理の手順を示すフローチャートである。このフローチャートにはプリンタ855側のSSDPレスポンス発行処理も含まれる。
図36において、Windows(登録商標) XPを搭載したクライアントPC851が起動して(S4701)、UPnPサービスが開始されると(S4702)、クライアントPC851が、UPnPルートデバイスを検索するSSDPリクエストを発行する(S4703)。
このSSDPリクエストを受信したデバイス(プリンタ855)からのSSDPレスポンスが有った場合(S4704でYES)、クライアントPC851は、検出されたデバイス(プリンタ855)のアイコンをMy Network Placesフォルダ上に表示し(S4705)、図37を参照して後述するプリンタのドライバのインストールを行う(S4706)。そして、所定時間(例えば1分)の待機の後(S4709)、ステップS4703へ戻る。
ステップS4704においてデバイス(プリンタ855)からSSDPレスポンスが無いと判別された場合、クライアントPC851は、My Network Placesフォルダ上に、レスポンスの無いデバイス(プリンタ855)のアイコンが表示されているか否かを判別する(S4707)。アイコンが表示されている場合、そのデバイス(プリンタ855)のアイコンの表示を削除し(S4708)、ステップS4709へ進む。ステップS4707においてレスポンスの無いデバイス(プリンタ855)のアイコンが表示されていない場合、ステップS4709へ進む。
一方、プリンタ855が起動している状態の時(S4710)、ステップS4703で発行されたSSDPリクエストをプリンタ855が受信した場合(S4711)、そのSSDPリクエストが、自分がサポートしているリクエスト(UPnPルートデバイスを検索するSSDPリクエスト)と一致するか否かを判別し(S4712)、一致するならばSSDPレスポンスをクライアントPC851へ発行し(S4713)、ステップS4711のSSDPリクエストの受信待ち状態に戻る。ステップS4712においてリクエストが一致しないと判別されたならば、ステップS4711へ戻る。
このように、UPnP対応デバイス(プリンタ855)が印刷ネットワークシステム内に存在する場合に、クライアントPC851の表示装置に表示されるMy Network Placesフォルダ上に、図8に示すようなデバイス(プリンタ855)のアイコンABC PrintMdl-K 000888が表示され、そのデバイス(プリンタ855)をクライアントPC851から制御することができるようになる。これにより、図12に示すプレゼンテーションページを用いて、図14に示す印刷処理の手順に従い、クライアントPC851において選択されたファイルをドライバレスでプリンタ855にて印刷することができる。
なお、図36のステップS4706においてプリンタ855のドライバのインストールが行われると、クライアントPC851のPrinters and Faxesフォルダに、図17に示すようなプリンタ855を表すアイコンABC PrintMdl-K000888が追加されて表示され、クライアントPC851において、任意の印刷指令可能なアプリケーション(例えば、図21に示すNotepad等)での印刷指令に基づいてプリンタ855にて印刷することができるようになる。このアプリケーションからの印刷処理については、図42〜図44を参照して後述する。
図37は、図36に示すステップS4706におけるプリンタのドライバのインストール処理の手順を示すフローチャートである。以下の説明においては、図1に示す印刷ネットワークシステムの第1の構成部分を例として用いる。
図37において、プリンタ855のドライバのインストールが開始されると(S4801)、UPnPでやりとりされたデータの中で、図32に示す10、13、14行目の記述内容に基づき、プリンタ855の製造業者名、機種名、製造番号を取得する(S4802)。また、UPnPでやりとりされたデータの中で、図34に示す19、24、29行目の記述内容に基づき、プリンタ855のネットワークパス、印刷設定UIのプレゼンテーションページのURL、ステータスモニタUIのプレゼンテーションページのURLを取得する(S4803)。
次に、UPnPでやりとりされたデータの中で、図35に示す45〜53行目のPrinterState状態値に基づき、プリンタ855が稼動可能であるか否かを判別し(S4804)、稼動可能であるならば、Windows(登録商標) XP OSのプラグアンドプレイ機能により、プリンタ855用のドライバがクライアントPC851にインストールされているか否かがチェックされ(S4805)、インストールされていない場合(S4806でNO)、クライアントPC851のHDD1202またはCD−ROM等の他の媒体を検索して、プリンタ855用のドライバが有るか否かを調べる(S4807)。その結果、ドライバが見つかった場合(S4808でYES)、クライアントPC851にプリンタ855用のドライバがインストールされる(S4809)。そして、ステップS4803で取得したプリンタ855のネットワークパス、印刷設定UIのプレゼンテーションページのURL、ステータスモニタUIのプレゼンテーションページのURLの情報を、インストールされたプリンタ855用のドライバと関連付けてクライアントPC851に保存し(S4810)、プリンタのドライバのインストール処理を終了する(S4811)。
ステップS4809においてプリンタ855用のドライバがインストールされる際には、ステップS4802で取得した製造業者名、機種名、製造番号に基づき、ドライバがインストールされるプリンタの名前としてABC PrintMdl-K000888が自動的に指定される。このように、製造者名、機種名、製造番号を利用して、表示されるプリンタ名を構成することで、例えば、同一ネットワーク上に製造番号だけが異なる同一機種のプリンタが複数存在するような場合においても、表示名からそれぞれのプリンタを特定でき、ユーザが意図していないプリンタに誤ってアクセスしてしまうような誤操作を防止することができる。
このようにUPnPでやりとりされた情報をもとに、クライアントPC851にプリンタ855のドライバがインストール(追加)されると、クライアントPC851のPrinters and Faxesフォルダに、図17に示すようなプリンタ855を表すアイコンABC PrintMdl-K000888が追加されて表示される。
ステップS4804においてプリンタ855が稼動不可能であると判別された場合、ステップS4811に進む。
ステップS4806においてプリンタ855用のドライバがクライアントPC851にインストールされていると判別された場合、ステップS4810へ進む。
ステップS4808において、クライアントPC851のHDD1202またはCD−ROM等の他の媒体に、プリンタ855用のドライバが無いと判別された場合、ステップS4811へ進む。
図38は、本発明に係るUIモジュール35の内部構成を示すブロック図である。
図38において、43はWebブラウザ制御部であり、プリンタドライバ50がインストールされているクライアントPCや代理サーバのWebブラウザを制御する。
44はDEVMODE制御部であり、印刷時にOS、アプリケーション30、プリンタドライバ50間で使用するDEVMODE構造体の制御を行い、必要に応じて制御結果をWebブラウザ制御部43と連携して、印刷設定UIのプレゼンテーションページに反映させる。また、DEVMODE制御部44はWebブラウザ制御部43から取得した印刷設定UIのプレゼンテーションページの設定内容を、ユーザ毎の固有の設定として、クライアントPCや代理サーバにそれぞれ保存する機能も備え、これにより、各ユーザ単位でお気に入りの印刷設定を初期値として、印刷設定UIのプレゼンテーションページに反映させることができる。
図39は、本発明に係るステータスモニタ39の内部構成を示すブロック図である。
図39において、48はWebブラウザ制御部であり、プリンタドライバ50がインストールされているクライアントPCや代理サーバのWebブラウザを制御する。
49はステータス制御部であり、プリンタ(プリンタ855、854、852等)からのステータスの取得を制御して、必要に応じて制御結果をWebブラウザ制御部48と連携して、ステータスモニタUIのプレゼンテーションページに反映させる。
ステータス制御部49が制御を行うケースとしては、図5に示す印刷ネットワークシステムの第2の構成部分や図6に示す印刷ネットワークシステムの第3の構成部分において、代理サーバ853を介してプリンタ852やプリンタ854を見かけ上UPnP対応プリンタとして制御するケースがある。図1に示す印刷ネットワークシステムの第1の構成部分のように、プリンタ855がUPnP対応プリンタである場合は、ステータス制御部49は制御を行わない。
図40は、クライアントPC851の表示装置に表示された、プリンタ855が公開している印刷設定UIのプレゼンテーションページを示す図である。
クライアントPC851において、図22に示すPrintダイアログのPreferencesボタン220がクリックされると、クライアントPC851は、クライアントPC851に保存されている印刷設定UIのプレゼンテーションページのURLを取得して、このURLを引数としてWebブラウザ(IE6)を起動する。これによって、図40に示すような印刷設定UIのプレゼンテーションページがクライアントPC851の表示装置に表示される。この印刷設定UIのプレゼンテーションページはASPで構成されており、動的に作成されたHTMLデータによって表示が行われる。
図40において、251はアドレス表示部であり、この印刷設定UIのプレゼンテーションページのURLが表示される。
239はプリンタ名表示部(Printer:)であり、図17で示すようにクライアントPC851にプリンタ855のドライバがインストールされた時に、このプリンタ855のプリンタ名が自動的に表示される。
240は機種名表示部(Model:)であり、プリンタ855の機種名が表示される。
241はプリンタパス表示部(Path:)であり、プリンタ855のネットワークパスが表示される。
242は部数指定部(Copies:)であり、印刷部数を1〜100部の範囲で指定できる。
243は用紙の種類選択部(Media Type:)であり、用紙の種類をPlain Paper、Photo Paper、OHP Sheetの中から選択することができる。
244は用紙サイズ選択部(Paper Size:)であり、用紙サイズをA4、A5、B5、Letterから選択することができる。
245は印刷レイアウト選択部(Layout:)であり、印刷レイアウトを1-up、2-up、4-upの中から選択することができる。
246は印刷品位選択部(Print Quality:)であり、印刷品位をHigh、Standard、Draftの中から選択することができる。
247は印刷の向き選択部(Orientation:)であり、印刷の向きをPortrait、Landscapeの中から選択することができる。
248はOKボタンであり、このボタンがクリックされると、その時の印刷設定情報によって印刷設定を更新して保存した後、Webブラウザを終了して印刷設定UIのプレゼンテーションページを閉じる。
249はCancelボタンであり、このボタンがクリックされると、そのときの印刷設定情報による更新は実行せずに、Webブラウザを終了して印刷設定UIのプレゼンテーションページを閉じる。
250は操作ガイド部であり、ユーザ操作の補助として、操作案内情報が表示される。図41は、クライアントPC851の表示装置に表示された、プリンタ855が公開しているステータスモニタUIのプレゼンテーションページを示す図である。
印刷中にステータスモニタ39が起動すると、クライアントPC851は、クライアントPC851に保存されているステータスモニタUIのプレゼンテーションページのURLを取得して、このURLを引数としてWebブラウザ(IE6)を起動する。これによって、図41に示すようなステータスモニタUIのプレゼンテーションページが表示される。このステータスモニタUIのプレゼンテーションページはASPで構成されており、動的に作成されたHTMLデータに基づき表示が行われるので、プリンタ855の状態等をリアルタイムに反映させて表示することが可能である。また、Java(登録商標)Scriptを用いて、所定時間(例えば5秒)毎にページの内容が自動的に更新されるようになっているので、前記ASPの機能と合わせて、約5秒のインターバルでリアルタイムに表示内容が更新される。
図41において、252はアドレス表示部であり、このステータスモニタUIのプレゼンテーションページのURLが表示されている。
253はプリンタの状態表示部であり、プリンタ855の状態が絵で表示される。
254はメッセージ表示部であり、プリンタ855の状態を表すメッセージやユーザの操作方法に関するメッセージ等が表示される。
255はインク残量表示部であり、プリンタ855に装着されているインクカートリッジのインク残量が表示される。
256は印刷ジョブ情報表示部であり、印刷中の印刷ジョブのオーナー名(Owner:)、ドキュメント名(Document Name:)、ページ番号(Printing Pages:)が表示される。
257は印刷中止(Cancel Printing)ボタンであり、印刷中の印刷ジョブの印刷を中止したいときに操作される。
図42および図43は、図1に示す印刷ネットワークシステムの第1の構成部分において、クライアントPC851内のアプリケーションでの印刷指令に従ってプリンタ855にて印刷が実行されるまでの処理の手順を示すフローチャートである。
図42および図43において、ステップS5101〜S5111における処理は、図27および図28のステップS3301〜S3311における処理と同一であるので、ここではその説明を省略する。
ステップS5103においてPreferencesボタン220(図22)がクリックされた場合(S5103でYES)、クライアントPC851が、クライアントPC851に保存されている印刷設定UIのプレゼンテーションページのURLを取得して(S5114)、このURLを引数としてWebブラウザ(IE6)を起動する(S5115)。これによって、図40に示す印刷設定UIのプレゼンテーションページが表示され(S5116)、そこでOKボタン248がクリックされると(S5117でYES)、その時の印刷設定情報によって印刷設定を更新して保存し、この印刷設定情報をプリンタ855に送信する(S5118)。そして、Webブラウザ(IE6)を終了して印刷設定UIのプレゼンテーションページを閉じた後(S5119)、ステップS5104へ進む。
図40に示す印刷設定UIのプレゼンテーションページが表示されて、Cancelボタン249がクリックされると(S5117でNO)、ステップS5119へ進む。
ステップS5118においてプリンタ855へ送信された印刷設定情報は、クライアントPC851の情報と関連付けられてプリンタ855内に保存される。この保存されたクライアントPC851の情報と印刷設定情報は、次回、再びクライアントPC851からこの印刷設定UIのプレゼンテーションページにアクセスされた時の初期設定値として利用される。これにより、次回アクセス時に、ユーザがよく使用するお気に入りの印刷設定が初期設定値として印刷設定UIのプレゼンテーションページに最初に表示され、ユーザにとって操作性が向上する。
ステップS5110においてステータスモニタが起動すると、クライアントPC851が、クライアントPC851に保存されているステータスモニタUIのプレゼンテーションページのURLを取得して(S5120)、このURLを引数としてWebブラウザ(IE6)を起動する(S5121)。これによって、図41に示すステータスモニタUIのプレゼンテーションページが表示される(S5122)。ステータスモニタが起動している間は、プリンタ855が自分のステータスを確認し(S5123)、プリンタ855に状態変化が有る場合(S5124でYES)、そのステータスを保存し(S5125)、プリンタ855が公開しているステータスモニタUIのプレゼンテーションページの表示内容を更新する(S5126)。そして、所定時間(例えば5秒)の待機の後(S5127)、ステップS5123に戻る。
ステップS5124において、プリンタ855に状態変化が無いと判別された場合、ステップS5127へ進む。
ステータスモニタが起動している間はこのような処理が繰り返され、プリンタ855の最新の状態が、図41に示すステータスモニタUIのプレゼンテーションページにリアルタイムに表示される。
ステップS5111において、クライアントPC851がプリンタ855に印刷制御コマンドを送信し、印刷制御コマンドの全てが送信された後、Webブラウザを終了してステータスモニタUIのプレゼンテーションページを閉じてステータスモニタを終了し(S5112)、印刷処理を終了する(S5113)。
プリンタ855においては、ステップS5111で送信された印刷制御コマンドに基づき、印刷が行われる。
図42および図43では、クライアントPC851からの印刷指令によってネットワーク856上のプリンタ855にて印刷を行う例を示したが、例えば、図5に示す印刷ネットワークシステムの第2の構成部分や図6に示す第3の構成部分においても、代理サーバ853が、第1の構成部分のプリンタ855が行っていたUPnPの制御を行い、プリンタ852やプリンタ854を見かけ上UPnP対応プリンタとして制御できるようにすることで、同様な印刷処理が可能である。また、図6に示す第3の構成部分において、代理サーバ853と該代理サーバ853にUSBでローカル接続されたプリンタ854とから成るローカル接続の環境においても、プリンタ854がプリンタ855と同様なUPnP対応プリンタの機能を備えれば、同様な印刷処理が可能である。
次に、図22に示すPrintダイアログのプリンタ選択部219でプリンタが選択され、Preferencesボタン220がクリックされた際に、クライアントPC851で実行される処理の他の実施形態を、図44を参照して説明する。
図44は、図22に示すPrintダイアログのプリンタ選択部219でプリンタが選択され、Preferencesボタン220がクリックされた際に、クライアントPC851で実行される処理の他の実施形態を示すフローチャートである。
クライアントPCは、UPnPのディスカバリー及びSNMPの探索処理に対応している場合も考えられる。同図に示す処理は、UPnP対応のプリンタ、またはSNMP対応のプリンタ等の複数のプリンタを1つの統合型のプリンタドライバで制御する場合に特に有効である。こうした場合に対処すべく、ネットワーク上にあるプリンタがUPnPに対応するのか、UPnPには対応せず、SNMPなどの旧来のネットワーク管理プロトコルにのみ対応するのかを示すプリンタ属性情報を、クライアントPCが、クライアントPC内のハードディスクなどに予め保持しておくか、あるいは、図42のステップS5114においてクライアントPCに保存されている印刷設定UIのプレゼンテーションページのURLを取得できるか、できないかによって、このクライアントPCがUPnP対応プリンタであるか、旧来のネットワーク管理プロトコルにのみ対応するプリンタであるかを判断するものとする。
図44に示す処理は、図22に示すPrintダイアログのプリンタ選択部219でプリンタが選択され、Preferencesボタン220がクリックされたことを契機として起動する。
クライアントPC851は、クライアントPC851のハードディスク内から、プリンタ選択部219で選択されたプリンタの属性情報を取得する(S5801)。前述したように図42のステップS5114でクライアントPCのタイプを判断する場合は、このステップS5801の代わりとしてステップS5114を行う。
次にクライアントPC851は、この取得したプリンタ属性情報を参照するか、あるいは、前述したように図42のステップS5114でクライアントPCのタイプを判断する場合は、クライアントPCに保存されている印刷設定UIのプレゼンテーションページのURLを取得できるか、できないかによって、プリンタ選択部219で選択されたプリンタがUPnP対応プリンタであるか否かを判別する(S5802)。その結果、プリンタ選択部219で選択されたプリンタがUPnP対応プリンタであるならば、ステップS5804へ進み、一方、UPnP対応プリンタではないならば、ステップS5803へ進む。
ステップS5803においては、図27に示すステップS3314〜S3316の処理と同一の処理を行う。
ステップS5804においては、42に示すステップS5114〜S5119の処理と同一の処理を行う。
ステップS5803、S5804の実行後、この処理は終わる。図44に示す処理の終了後は、ステップS5804を通ってきて場合は図42のステップS5104以降の処理に、ステップS5803を通ってきた場合は図27のステップS3304以降の処理に進むようにしてもよい。
この実施形態によれば、図22に示すPreferencesボタン220のクリックに応答して、クライアントPC851側でプリンタ855がUPnP対応なのか、UPnP対応でないのかを判定するので、ユーザはプリンタ855がUPnP対応プリンタであるのか、そうでないのかを意識する必要が無くなり、ユーザにとって操作性が向上する。また、開発効率の面では、OSやプリンタのタイプを意識する必要がないので、UPnPのプレゼンテーション情報を用いた設計の効率化が実現できる。
図45は、クライアントPC857の表示装置に表示された、プリンタ855が公開している印刷設定UIのプレゼンテーションページを示す図である。
図45に示す印刷設定UIのプレゼンテーションページは、プリンタ855からUPnPにて取得してクライアントPC857に保存されている印刷設定UIのプレゼンテーションページのURLに基づき、クライアントPC851とは異なるOS及びWebブラウザ(MacOS、IE5)を用いて、クライアントPC857によって表示されるだけであるので、図40に示す、クライアントPC851の表示装置に表示された印刷設定UIのプレゼンテーションページと見比べると分かるように、図40の239〜251で示されるページ内の各構成要素にそれぞれ対応する図45の各構成要素が、見かけ上若干異なるものの、実質的に同様なものとなっている。ここでは、図45における各構成要素の説明は省略する。
このように、プリンタ855に印刷設定UIのプレゼンテーションページを1つ用意しておくだけで、異なるクライアントPCにおいて同様な印刷設定UIを操作して印刷することができるので、印刷設定UIの開発工数を削減でき、しかも、クライアントPCの違いによりユーザが違和感を抱くことなく印刷指令操作ができ、ユーザにとって操作性が向上する。
図46は、クライアントPC857の表示装置に表示された、プリンタ855が公開しているステータスモニタUIのプレゼンテーションページを示す図である。
図46に示すステータスモニタUIのプレゼンテーションページは、プリンタ855からUPnPにて取得してクライアントPC857に保存されているステータスモニタUIのプレゼンテーションページのURLに基づき、クライアントPC851とは異なるOS及びWebブラウザ(MacOS、IE5)を用いて、クライアントPC857によって表示されるだけであるので、図41に示す、クライアントPC851の表示装置に表示されたステータスモニタUIのプレゼンテーションページと見比べると分かるように、図41の252〜257で示されるページ内の各構成要素にそれぞれ対応する図46の各構成要素が、見かけ上若干異なるものの、実質的に同様なものとなっている。ここでは、図45における各構成要素の説明は省略する。
このように、プリンタ855にステータスモニタUIのプレゼンテーションページを1つ用意しておくだけで、異なるクライアントPCにおいて同様なステータスモニタUIを提供することができるので、ステータスモニタUIの開発工数を削減でき、しかも、クライアントPCの違ってもユーザが違和感を抱くことがなく、ユーザにとって操作性が向上する。
図47は、代理サーバ853において行われる自動設定調整処理の手順を示すフローチャートである。なお、図6におけるプリンタ854に自動両面印刷ユニット859が装着されているものとする。
図5に示す代理サーバ853のUPnPデバイス制御部818が起動して動作すると、図47に示す自動設定調整処理が開始され(S6101)、UPnPデバイス制御部818は、USBプロトコルスタック部819を制御してプリンタ854のオプションの装着状態を確認する(S6102)。前の装着状態と比較してオプションの装着状態に変化が有る場合(S6103でYES)、オプションの装着状態を保存し(S6104)、このオプションの装着状態を反映させて印刷設定UIのプレゼンテーションページ(図40、図45、後述の図50)の表示内容のソースデータを更新する(S6105)。そして、所定時間(例えば5秒)の待機の後(S6106)、ステップS6102に戻る。
ステップS6103において、オプションの装着状態に変化が無いと判断された場合、ステップS6106へ進む。
このように、UPnPデバイス制御部818が起動している間はこのような自動設定調整処理が繰り返され、プリンタ854に装着されているオプションの最新の状態が、印刷設定UIのプレゼンテーションページの表示内容のソースデータに保存され、図40、図45、後述の図50のような、各クライアントPCに表示される印刷設定UIのプレゼンテーションページにリアルタイムに反映される。
例えば、プリンタ854に装着されている自動両面印刷ユニット859は、ステップS6102でその装着状態が確認され、前の状態から装着状態が変化した場合は(S6103でYES)、自動両面印刷ユニット859が装着されているという情報が保存され(S6104)、この情報が印刷設定UIのプレゼンテーションページの表示内容のソースデータに反映され(S6105)、クライアントPC上において、図50を参照して後述するように、印刷設定UIのプレゼンテーションページに自動両面印刷選択部(Auto Duplex)258として表示される。
ここで、プリンタ854から自動両面印刷ユニット859が取り外されたものとすると、図47に示す自動設定調整処理に従って、自動両面印刷ユニット859が装着されていないという情報が保存され(S6104)、この情報が印刷設定UIのプレゼンテーションページの表示内容のソースデータに反映され(S6105)、クライアントPC上において、図40、図45のような、自動両面印刷選択部258が無い印刷設定UIのプレゼンテーションページが表示される。
図48および図49は、図6に示す印刷ネットワークシステムの第3の構成部分において、クライアントPC851内のアプリケーションでの印刷指令に従って代理サーバ853を介してプリンタ854にて印刷が実行されるまでの処理の手順を示すフローチャートである。
図48および図49に示すステップS6201〜6227における処理は、図42および図43のステップS5101〜S5127における処理と同一であるので、ここではその説明を省略する。以下においては、図48および図49に示す処理に沿って実例を説明する。
ここで、図6におけるプリンタ854に自動両面印刷ユニット859が装着されているものとする。
この場合、図47のステップ6105において、自動両面印刷ユニット859が装着されているという情報が印刷設定UIのプレゼンテーションページの表示内容のソースデータに反映されているので、図48のステップS6216において、後述の図50に示す印刷設定UIのプレゼンテーションページが表示される。そして、図50に示すOKボタン248がクリックされると(S6217でYES)、その時の印刷設定に応じて、ここでは自動両面印刷機能がオンである情報も含めて、印刷設定情報を更新して保存し、この印刷設定情報を代理サーバ853に送信する(S6218)。そして、Webブラウザ(IE6)を終了して印刷設定UIのプレゼンテーションページを閉じた後(S6219)、ステップS6204へ進む。
ステップS6204では、アプリケーションがプリンタドライバの機能を問い合わせ、DEVMODE構造体等の印刷設定情報を作成する。この時、このDEVMODE構造体のメンバーの中に自動両面印刷機能がオンである情報も含まれる。ステップS6222において、後述の図51に示すステータスモニタUIのプレゼンテーションページが表示され(S6222)、ステータスモニタが起動している間は、代理サーバ853がプリンタ854のステータスを確認し(S6223)、プリンタ854に状態変化が有る場合(S6224でYES)、そのステータスを保存し(S6225)、代理サーバ853が公開しているステータスモニタUIのプレゼンテーションページの表示内容のソースデータを更新する(S6226)。そして、所定時間(例えば5秒)の待機の後(S6227)、ステップS6223に戻る。ステップS6224において、プリンタ854に状態変化が無いと判別された場合、ステップS6227へ進む。
ステータスモニタが起動している間はこのような処理が繰り返され、クライアントPC851において、プリンタ854の最新の状態が、後述の図51に示すステータスモニタUIのプレゼンテーションページにリアルタイムに表示される。プリンタ854に自動両面印刷ユニット859が装着されているという情報は、ステップS6225でステータスの1つとして保存され、ステップS6226でステータスモニタUIのプレゼンテーションページの表示内容のソースデータに反映される。
次に、図6におけるプリンタ854から自動両面印刷ユニット859が取り外されたものとする。
この場合、図47のステップ6105において、自動両面印刷ユニット859が装着されていないという情報が印刷設定UIのプレゼンテーションページの表示内容のソースデータに反映されているので、図48のステップS6216において、図40に示す印刷設定UIのプレゼンテーションページが表示される。そして、図40に示すOKボタン248がクリックされると(S6217でYES)、その時の印刷設定に応じて、ここでは自動両面印刷機能が無効(オフとして処理される)である情報も含めて、印刷設定情報を更新して保存し、この印刷設定情報を代理サーバ853に送信する(S6218)。そして、Webブラウザ(IE6)を終了して印刷設定UIのプレゼンテーションページを閉じた後(S6219)、ステップS6204へ進む。
ステップS6204では、アプリケーションがプリンタドライバの機能を問い合わせ、DEVMODE構造体等の印刷設定情報を作成する。この時、このDEVMODE構造体のメンバーの中に自動両面印刷機能が無効(オフとして処理される)である情報も含まれる。プリンタ854に自動両面印刷ユニット859が装着されていないという情報はステップS6225でステータスの1つとして保存され、ステップS6226でステータスモニタUIのプレゼンテーションページの表示内容のソースデータに反映される。
このように、プリンタ854における自動両面印刷ユニット859の装着状態が印刷設定UIのプレゼンテーションページやステータスモニタUIのプレゼンテーションページにリアルタイムに反映されるので、その時のプリンタ854の状態に応じた最適な印刷方法を選択することができ、操作性に優れた印刷ネットワークシステムを実現することができる。また、各クライアントPCにおいて、プリンタに装着されているオプションの状態が的確に反映された印刷設定UIのプレゼンテーションページ上にて操作するので、印刷ミスも未然に防ぐことができる。
図50は、プリンタ854に自動両面印刷ユニット859が装着された時に、クライアントPC851の表示装置に表示された、代理サーバ853が公開している印刷設定UIのプレゼンテーションページを示す図である。
このプレゼンテーションページは、図40に示すプリンタ855が公開している印刷設定UIのプレゼンテーションページと基本的に同じであるので、同一部分には同一の参照符号を付してその説明を省略する。
図50において、258は自動両面印刷選択部(Auto Duplex)であり、プリンタ854に自動両面印刷ユニット859が装着されている時に表示され、自動両面印刷機能がオンとなっている状態を表す。
259は自動両面印刷ユニット表示部であり、プリンタ854に自動両面印刷ユニット859が装着されている様子をビジュアル的に表示している。
図51は、プリンタ854に自動両面印刷ユニット859が装着された時に、クライアントPC851の表示装置に表示された、代理サーバ853が公開しているステータスモニタUIのプレゼンテーションページを示す図である。
このプレゼンテーションページは、図41に示すプリンタ855が公開しているステータスモニタUIのプレゼンテーションページと基本的に同じであるので、同一部分には同一の参照符号を付してその説明を省略する。
図51において、260は自動両面印刷ユニット表示部であり、プリンタ854に自動両面印刷ユニット859が装着されている様子をビジュアル的に表示している。
図52は、図1に示す印刷ネットワークシステムの第1の構成部分におけるプリンタ855のUPnPデバイス制御部60の構成を示すブロック図である。
図52において、61はプリンタ855を制御するOSであり、前述のようにLinux OSが搭載されている。
63はコアモジュールであり、UPnP機能の制御を行う。また、コアモジュール63にはWebサーバ機能の制御も含まれている。
62はOS61とのインタフェースを制御するインタフェース部であり、OSに応じた処理を行う(プリンタ855の場合、Linux OSに依存したインタフェース処理を行う)。コアモジュール63における処理は、OSに依存しないC/C++言語等の構造化言語で記述されている。
図52はプリンタ855のUPnPデバイス制御部60の構成を示すが、図5に示す代理サーバ853のUPnPデバイス制御部818も同様な構成である。ただし、代理サーバ853では、OS61がWindows (登録商標)XPであり、インタフェース部62はWindows(登録商標) XPに依存したインタフェース処理を行う。
このように、図1に示す第1の構成部分、図5に示す第2の構成部分、および図6に示す第3の構成部分から成る印刷ネットワークシステムにおいて、OSに依存しないコアモジュール63を1つ開発して、OSに依存するインタフェース部62だけをそれぞれのOSに応じて開発するようにする。例えば、プリンタ855の場合はインタフェース部62をLinux OS用として、代理サーバ853の場合はWindows(登録商標) XP用として開発するだけでよいので、開発工数を大幅に削減でき、コストダウンが図れる。
以下、図53に示すメモリマップを参照して、本発明に係る情報処理装置及び周辺装置からなる印刷ネットワークシステムで読み出し可能なデータ処理プログラムの構成について説明する。
図53は、本発明に係る印刷ネットワークシステムで読み出し可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを示す図である。なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報、作成者等もこの記憶媒体に記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
図中64は記憶媒体であり、ここではハードディスクで構成されているものとする。
65はディレクトリ情報管理部であり、各種プログラムに従属するデータがこのディレクトリ情報管理部65で管理されている。
66はプログラム格納部であり、各種プログラムを情報処理装置にインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に解凍するためのプログラム等も記憶される場合がある。
本実施形態における図7、図14、図15、図16、図27、図28、図36、図37、図42、図43、図47、図48、図49にそれぞれ示す各フローチャートの実行によって実現できる各機能が、外部からインストールされるプログラムによって、情報処理装置によって実現されるようにしてもよい。そして、その場合、CD−ROMやフラッシュメモリやフレキシブルディスク等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群が情報処理装置や周辺装置に供給される場合でも、本発明は適用されるものである。
以上のように、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても達成される。
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体およびプログラムは本発明を構成することになる。
また、プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD+RW、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。或いは、上記プログラムは、インターネット、商用ネットワーク、若しくはローカルエリアネットワーク等に接続される他のコンピュータやデータベース等からダウンロードすることにより供給される。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれる。
以上、本発明の実施の形態について説明したが、これを纏めると、本発明の印刷ネットワークシステムは、情報処理装置(図1のクライアントPC851等)と周辺装置(図1のプリンタ855)とから構成され、周辺装置は、周辺装置を制御するための設定情報(図40の印刷設定UIのプレゼンテーションページ)を情報処理装置に公開する機能を備え、情報処理装置は、周辺装置により公開される設定情報を利用して周辺装置を制御するようにする。
これにより、ユーザがマニュアル操作で情報処理装置にドライバソフトウェア(プリンタドライバ)をインストールしたり、ネットワーク(ネットワーク856)上の周辺装置を制御できるようにしたりするための煩わしい情報収集や設定を行う必要が無く、また情報処理装置に搭載されるOS毎にUIを設計・開発し直す必要も無く、さらに、OS毎にUIのデザインや操作性が異なることもない操作性に優れた周辺装置制御用UIを備える印刷ネットワークシステムを提供することができる。さらに、周辺装置がプリンタである場合において、任意の印刷指令可能なアプリケーションから印刷指令することが可能な印刷ネットワークシステムを提供することができる。
また、本発明の印刷ネットワークシステムは、情報処理装置(図1のクライアントPC851等)と周辺装置(図1のプリンタ855)とから構成され、周辺装置は、周辺装置を制御するための複数の設定情報(図40の印刷設定UIのプレゼンテーションページや図12のプレゼンテーションページ)を情報処理装置に複数の形態で公開する機能を備え、情報処理装置は、周辺装置により複数の形態で公開される複数の設定情報を利用して、周辺装置を制御するようにする。
これにより、任意の印刷指令可能なアプリケーションから印刷指令できる機能とドライバレス印刷ができる機能との両者を備えた印刷ネットワークシステムを提供することができる。
また、本発明の印刷ネットワークシステムは、情報処理装置(図1のクライアントPC851等)と周辺装置(図1のプリンタ855)とから構成され、周辺装置は、周辺装置を制御するための設定情報(図40の印刷設定UIのプレゼンテーションページ)と周辺装置の状態を表す状態情報(図41のステータスモニタUIのプレゼンテーションページ)とを情報処理装置に公開する機能を備え、情報処理装置は、周辺装置により公開される設定情報または状態情報を利用して、周辺装置を制御するようにする。
これにより、周辺装置の最新の状態を状態情報にリアルタイムに反映して情報処理装置上に表示することができる、操作性に優れた印刷ネットワークシステムを提供することができる。
また、本発明の印刷ネットワークシステムは、第1の情報処理装置(図5または図6のクライアントPC851)と、周辺装置(図5のプリンタ852や図6のプリンタ854)と、周辺装置を制御する第2の情報処理装置(図5または図6の代理サーバ853)とから構成され、第2の情報処理装置は、周辺装置を制御するための設定情報(図40の印刷設定UIのプレゼンテーションページ)を第1の情報処理装置に公開する機能を備え、第1の情報処理装置は第2の情報処理装置により公開される設定情報を利用して、周辺装置を制御するようにする。
これにより、UPnPの機能を備えていない一般の周辺装置においても、ユーザがマニュアル操作で第1の情報処理装置にドライバソフトウェア(プリンタドライバ)をインストールしたり、ネットワーク(ネットワーク856)上の周辺装置やローカル接続された周辺装置を制御できるようにしたりするための煩わしい情報収集や設定を行う必要が無く、また、情報処理装置に搭載されるOS毎にUIを設計・開発し直す必要も無く、さらに、OS毎にUIのデザインや操作性が異なることもない操作性に優れた周辺装置制御用UIを備える印刷ネットワークシステムを提供することができる。さらに、周辺装置がプリンタである場合において、任意の印刷指令可能なアプリケーションから印刷指令することが可能な印刷ネットワークシステムを提供することができる。
なお、本実施の形態においては、第1の情報処理装置(クライアントPC851等)が周辺装置(プリンタ855、852、854)を制御するための設定情報(図12のプレゼンテーションページ、図40の印刷設定UIのプレゼンテーションページ)や、周辺装置の状態を表す状態情報(図41のステータスモニタUIのプレゼンテーションページ)を、周辺装置(プリンタ855)または第2の情報処理装置(代理サーバ853)の内部に用意して、第1の情報処理装置による設定情報または状態情報の獲得を、設定情報または状態情報の存在位置を示すURLを第1の情報処理装置が指定することで実現しているが、これに代わって、設定情報や状態情報を図1のWebサーバ858の内部に用意して、このWebサーバ858上にある設定情報または状態情報の存在位置を示すURLを第1の情報処理装置が指定することで実現するようにしてもよい。
このように構成することで、設定情報や状態情報のUIのデザイン変更等が必要になった場合に、Webサーバ858の内部に用意してある設定情報や状態情報を差し替えるだけでよいので、メンテナンスが容易である。
また、第1の情報処理装置(クライアントPC851等)が周辺装置(プリンタ855、852、854)を制御するために設定された設定情報(図40の印刷設定UIのプレゼンテーションページ)を、周辺装置(プリンタ855)や第2の情報処理装置(代理サーバ853)内で指定されたURLに対応する設定情報格納場所に、第1の情報処理装置の情報と関連付けて保存し、第1の情報処理装置が設定情報を利用する時、この設定情報格納場所に保存されている設定情報を初期値として利用するようにする。
これにより、ユーザがよく使用するお気に入りの設定情報が初期設定値として最初に第1の情報処理装置上に表示されるので、ユーザによる操作性を向上することができる。
また、情報処理装置(クライアントPC851等)上で動作する周辺装置(プリンタ855)を制御するためのソフトウェア(プリンタドライバ)を利用して周辺装置を制御する第1の制御方法(プリンタドライバを利用した任意の印刷指令可能なアプリケーションからの印刷)と、前記ソフトウェアを利用しないで周辺装置を制御する第2の制御方法(ドライバレス印刷)とを備え、周辺装置は、第1の制御方法で利用する第1の設定情報(図40の印刷設定UIのプレゼンテーションページ)を第1の形態(図34に示す記述内容の24行目)で公開するとともに、第2の制御方法で利用する第2の設定情報(図12のプレゼンテーションページ)を第2の形態(図33に示す記述内容の36〜37行目)で公開し、情報処理装置は、第1の設定情報または第2の設定情報を利用して、周辺装置を制御するようにする。
これにより、任意の印刷指令可能なアプリケーションから印刷指令する機能とドライバレス印刷の機能との両者を備えた印刷ネットワークシステムを提供することができる。
また、第1のアドレス(図34に示す記述内容の24行目)で指定される場所に第1の設定情報(図40の印刷設定UIのプレゼンテーションページ)を格納するとともに、第2のアドレス(図33に示す記述内容の36〜37行目)で指定される場所に第2の設定情報(図12のプレゼンテーションページ)を格納し、情報処理装置(クライアントPC851等)にソフトウェア(プリンタドライバ)を組み込む時、周辺装置(プリンタ855)の位置情報(図34に示す記述内容の19行目)、前記第1のアドレス、前記第2のアドレスを情報処理装置に保存し、情報処理装置は、前記位置情報、前記第1のアドレス、前記第2のアドレスを利用して、周辺装置を制御するようにする。
これにより、ユーザがマニュアル操作で情報処理装置に前記ソフトウェアをインストールしたり、ネットワーク(ネットワーク856)上の周辺装置を制御できるようにしたりするための煩わしい情報収集や設定を行う必要が無く、また、情報処理装置に搭載されるOS毎にUIを設計・開発し直す必要も無く、さらに、OS毎にUIのデザインや操作性が異なることもない操作性に優れた周辺装置制御用UIを備える印刷ネットワークシステムを提供することができる。さらに、周辺装置がプリンタである場合において、任意の印刷指令可能なアプリケーションから印刷指令することが可能な印刷ネットワークシステムを提供することができる。
また、情報処理装置(クライアントPC851等)は、Webブラウザ(IE6等)を備え、周辺装置(プリンタ855)を、Webブラウザを介して制御するようにする。これにより、任意の情報処理装置において周辺装置を制御することが、容易に実現される。
また、状態情報(図41のステータスモニタUIのプレゼンテーションページ)を情報処理装置(クライアントPC851等)に公開する機能は、状態情報を自動的に更新する(Java(登録商標)Scriptを用いて、所定時間毎にページの内容を自動的に更新する)機能を含むようにする。
これにより、周辺装置(プリンタ855)の最新の状態を状態情報にリアルタイムに反映して情報処理装置上に表示することができる、操作性に優れた印刷ネットワークシステムを提供することが可能となる。
また、情報処理装置(クライアントPC851)は、周辺装置(プリンタ855)の製造者名、機種名、製造番号等を利用して、周辺装置を表示(図17に示すABC PrintMdl-K000888)する機能を備えるようにする。
これにより、同一ネットワーク(ネットワーク856)上に、製造番号だけが異なる同一機種の周辺装置が複数存在するような場合においても、情報処理装置上に表示される周辺装置の表示名から周辺装置を特定でき、ユーザが意図していない周辺装置に誤ってアクセスしてしまうような誤操作を防止することができる。
なお、本実施の形態においては、こうした機能を、UPnPを利用して実現しているが、これに限られることなく、同様な機能を備えるプロトコル等を利用して、実現することができる。また、実現するにあたっては、標準化された規格を利用することで、より汎用的なシステムを容易に実現することができる。
また、周辺装置(プリンタ855)に該周辺装置を制御するためのオペレーションシステム(Linux OS)を設け、周辺装置における処理を、このオペレーションシステムとのインタフェース処理部(インタフェース部62)と、オペレーションシステムとは独立した処理部(コアモジュール63)とに分けて行わせるようにする。
これにより、開発工数を大幅に削減でき、コストダウンすることができる。
なお、本実施形態では、周辺装置としてプリンタを例示しているが、周辺装置として他に、複写機、ファクシミリ、スキャナ、デジタルカメラ、およびこれらの複合機能を備える装置などのいずれかが、本発明の適用対象となり得る。
また、上記の実施形態においては、周辺装置の検索時においてSSDPで策定されたプロトコルを採用しているが、同様なシステムを実現可能な任意のプロトコルを採用して、実施するようにしてもよい。
また、上記の実施形態では、HTTPエンティティの表記方法はSOAPを使用しているが、独自スキーマによる記述によっても実現してもよい。
また、本実施形態においては、OSに例としてWindows(登録商標) XP、Mac OS、Linux OSを使用したが、これらのOSに限られることなく、任意のOSを使用することができる。
また、本実施形態においては、ネットワーク856の構成例としてEthernet(登録商標)を用いたが、この例に限られることなく、他の任意のネットワーク構成であってもよい。
また、本実施形態においては、代理サーバ853とプリンタ854との間のインタフェースとして、USBインタフェースを用いたが、このインタフェースに限られることなく、他の任意のインタフェースを用いるようしてもよい。