JP4467955B2 - 情報処理装置、周辺装置制御システム及び情報処理装置に適用される周辺装置制御方法並びにそのプログラム - Google Patents

情報処理装置、周辺装置制御システム及び情報処理装置に適用される周辺装置制御方法並びにそのプログラム Download PDF

Info

Publication number
JP4467955B2
JP4467955B2 JP2003383041A JP2003383041A JP4467955B2 JP 4467955 B2 JP4467955 B2 JP 4467955B2 JP 2003383041 A JP2003383041 A JP 2003383041A JP 2003383041 A JP2003383041 A JP 2003383041A JP 4467955 B2 JP4467955 B2 JP 4467955B2
Authority
JP
Japan
Prior art keywords
peripheral device
client
character string
setting information
controlling
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003383041A
Other languages
English (en)
Other versions
JP2005148953A (ja
Inventor
孝一 安部
健一郎 魚谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2003383041A priority Critical patent/JP4467955B2/ja
Publication of JP2005148953A publication Critical patent/JP2005148953A/ja
Application granted granted Critical
Publication of JP4467955B2 publication Critical patent/JP4467955B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

本発明は、情報処理装置と周辺装置とを含む周辺装置制御、所定のプロトコルを用いて周辺装置の探索処理を行う情報処理装置、周辺装置制御システム及び情報処理装置に適用される周辺装置制御方法、並びに該周辺装置制御方法をコンピュータに実行させるためのプログラムに関する。
近年、ネットワークの基盤が整備されるに従い、ネットワーク対応型のプリンタ、複写機、ファクシミリ、スキャナ、デジタルカメラ、及びこれらの複合機能を備える画像処理装置等の周辺装置が急速に普及しつつある。
また一方、これらネットワーク対応型の周辺装置の普及に伴い、ネットワーク上で各種サービスを提供する周辺装置を、ネットワークを介して探索し、その周辺装置を情報処理装置(クライアントPC)から制御するようにする技術が開発されつつある。例えば、このような技術には、マイクロソフト社の提唱するUniversal Plug and Play(以降、UPnPと略すことがある)が存在し、現在、UPnP Forum(http://www.upnp.org/)にて標準化されている。
通常、このUPnPの環境では、周辺装置がUPnPの機能を備えている必要があるが、周辺装置がプリンタの場合を考えると、最近は、情報処理装置で構成される代理サーバに接続されているUPnPの機能を備えていないローカルプリンタを、その代理サーバを介することによりUPnPの機能を備えるネットワークプリンタとして、ネットワーク環境下で共有して使用できるようなシステムも提案されている。
このようにネットワーク上で情報処理装置と周辺装置との間で各種サービスを提供する場合、例えば、UPnPのPrintBasic:1 Service Template Version 1.01で標準化されているようなXMLのスキーマで定義されている、情報処理装置から周辺装置へ送られる文字列のデータを、周辺装置用のドライバを介してハンドリングしてその周辺装置を制御することができる。
例えば、図28には、Service Template Version 1.01に記述されている規格の一部が記載されている。図28において、2801はプリンタやプリントサービスがサポート可能な用紙サイズを示し、2802はプリンタやプリントサービスがサポート可能なメディアタイプ(用紙種類)が記載されている。問合せを受けたプリントサービスは、図28に記載されたフォーマットに従って、例えばサポートしているメディアタイプ(用紙の種類)、用紙サイズ等を返信する。
PrintBasic:1 Service Template Version 1.01(http://www.upnp.org/download/Service_print_v1_020808.pdf)2002年8月8日公開)
上述の背景技術では、各種サービスを提供する場合、XMLのスキーマで定義されている、情報処理装置から周辺装置へ送られる文字列のデータを、ドライバを介してハンドリングして周辺装置を制御している。その際、周辺装置を制御するプログラムでは、文字列のままでは無く数値に変換して処理するケースがほとんどである。このようなケースでは、該当する設定に対して、文字列・数値変換テーブルを使って文字列から数値に変換するか、或はこのような文字列・数値変換テーブルを使わずに、ドライバ(プログラム)内で文字列を一つ一つ比較しながらその文字列に該当する数値を特定して処理する場合が考えられる。しかしながら、周辺装置としてプリンタを考えた場合、これらの処理方法では、設定情報として、用紙サイズ、用紙の種類等における選択肢が増えれば増えるほど、膨大なテーブルのリソースが必要になったり、変換処理が複雑になるというような問題点がある。
本発明は上記問題点に鑑みてなされたもので、膨大なテーブルのリソースを必要とするような処理を実装する必要がなくシンプルな処理で実装することができ、しかも最適な設定で周辺装置を制御することができる周辺装置制御システム及びその制御方法とそのプログラムを提供することを目的とする。
本発明に係る周辺装置制御システムは以下のような構成を備える。即ち、
周辺装置を制御するための文字列を処理するクライアントと周辺装置と、前記周辺装置を制御するサーバとを備える周辺装置制御システムであって、
前記サーバは、前記周辺装置を制御するための文字列要素当該文字列要素に対応する数値で表される設定情報であって、DEVMODE構造体において設定される設定情報を前記クライアントに対して通知する通知手段と、
前記クライアントから送信された設定情報に含まれる数値に従って前記周辺装置を制御する制御手段とを有し、
前記クライアントは、
前記周辺装置に対する指示がなされると、前記周辺装置を制御するための前記文字列要素を含む設定情報に対して、前記周辺装置を制御するための前記DEVMODE構造体において設定される情報であって、前記文字列要素に対応する情報を数値として追加した設定情報を前記サーバに対して送信する送信手段を有することを特徴とする。
本発明に係る情報処理装置は以下のような構成を備える。即ち、
周辺装置を制御するための文字列を処理するクライアント機能と、前記周辺装置を制御するサーバ機能とを備える情報処理装置であって、
前記サーバ機能は、前記周辺装置を制御するための文字列要素と、当該文字列要素に対応する数値で表される設定情報であって、DEVMODE構造体において設定される設定情報を前記クライアント機能に対して通知する通知手段と、
前記クライアント機能から受け取った設定情報に含まれる数値に従って前記周辺装置を制御する制御手段とを有し、
前記クライアント機能は、
前記周辺装置に対する指示がなされると、前記周辺装置を制御するための前記文字列要素を含む設定情報に対して、前記周辺装置を制御するための前記DEVMODE構造体において設定される情報であって、前記文字列要素に対応する情報を数値として追加した設定情報を前記サーバ機能に対して通知する手段を有することを特徴とする。
本発明に係る周辺装置制御システムに適用される周辺装置制御方法は以下のような工程を備える。即ち、
周辺装置を制御するための文字列を処理するクライアントと周辺装置と、前記周辺装置を制御するサーバとを備える周辺装置制御システムに適用される周辺装置制御方法であって、
前記サーバが、前記周辺装置を制御するための文字列要素と、当該文字列要素に対応する数値で表される設定情報であって、DEVMODE構造体において設定される設定情報を前記クライアントに対して通知する工程と、
前記周辺装置に対する指示がなされると、前記クライアントが、前記周辺装置を制御するための前記文字列要素を含む設定情報に対して、前記周辺装置を制御するための前記DEVMODE構造体において設定される情報であって、前記文字列要素に対応する情報を数値として追加した設定情報を前記サーバに対して送信する工程と、
前記サーバが、前記設定情報を前記クライアントから受信すると、前記設定情報に含まれる数値に従って前記周辺装置を制御する工程と、
を有することを特徴とする。
本発明に係る情報処理装置の周辺装置制御方法は以下のような工程を備える。即ち、
周辺装置を制御するための文字列を処理するクライアント機能と、前記周辺装置を制御するサーバ機能とを備える情報処理装置の周辺装置制御方法であって、
前記サーバ機能は、前記周辺装置を制御するための文字列要素と、当該文字列要素に対応する数値で表される設定情報であって、DEVMODE構造体において設定される設定情報を前記クライアント機能に対して通知する通知工程と、
前記クライアント機能から受け取った設定情報に含まれる数値に従って前記周辺装置を制御する制御工程とを有し、
前記クライアント機能は、
前記周辺装置に対する指示がなされると、前記周辺装置を制御するための前記文字列要素を含む設定情報に対して、前記周辺装置を制御するための前記DEVMODE構造体において設定される情報であって、前記文字列要素に対応する情報を数値として追加した設定情報を前記サーバ機能に対して通知する工程を有することを特徴とする。
本発明によれば、次のような効果が得られる。
(1)複雑でしかも膨大なテーブルのリソースを必要とするような処理を実装する必要がなく、シンプルな処理で実装することができる。
(2)ソフトウェアリソースを大幅に削減することができる。
(3)バグの発生を防ぐことができる。
(4)誤動作を防止しつつ最適な制御条件を設定して周辺装置を制御できる。
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。
図1は、本発明の実施の形態に係る周辺装置制御システムの第1の構成部分を説明する機能ブロック図である。尚、この周辺装置制御システムは第1〜第3の構成部分を有しており、第2の構成部分については図3を参照して、第3の構成部分については図4を参照して詳しく後述する。
この第1の構成部分における情報処理装置は、クライアントPC(Personal Computer)851,857を含み、周辺装置はプリンタ855を含んでいる。クライアントPC851,857とプリンタ855とは、Ethernet(登録商標、以下略)で構成されるネットワーク856を介して接続され、互いに通信可能である。尚、周辺装置として図1ではプリンタ855を示したが本発明はこれに限定されるものでなく、例えばプリンタ、複写機、ファクシミリ、スキャナ、デジタルカメラ、又はこれらの複合機などの画像形成装置であってもよい。
尚、本実施の形態では、クライアントPC851,857で実行されるアプリケーション(ソフトウェア)とプリンタ855に実装されるアプリケーション(ソフトウェア)とで実現され、これらアプリケーションは各機能モジュールより構成されている。図1におけるクライアントPC851及びプリンタ855の各ブロック内には、これら各機能モジュールが示されている。
図2は、図1に示すクライアントPC851,857及びWebサーバ858のハードウェア構成を説明するブロック図で、この構成については詳しく後述する。
これらクライアント及びサーバには、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が保持する記憶装置(図2のHDD1202)にイントールする処理を実行するとともに、このインストールしたドライバ情報をOSに対して登録する。尚、このイントールの実行の際には、メモリコントローラ部8を介して、HDD1202におけるメモリスペースの有無の調査、及びイントール先の管理制御を実行する。
プリンタ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は、ドライバを格納する場所を示すディレクトリ情報の管理や、データサイズ情報の管理の機能を備えるとともに、クライアントPCへのドライバ送信時には、プリンタ855の記憶部から読み出したドライバをHTTP部10に対して送出する処理を実行する機能を備える。
UPnP(Universal Plug and Play)デバイス制御部60は、SOAPリクエスト解析処理部11とSOAPレスポンス発行処理部12とを含んでいる。このUPnPデバイス制御部60については詳しく後述する。
857はクライアントPCで、クライアントPC851と同様に、図2を参照して後述するようなハードウェアで構成されるが、クライアントPC857には、OSとして米国アップルコンピュータ社のMacOS(登録商標)がインストールされ、WebブラウザとしてInternet Explorer5 Macintosh Edition(以下「IE5」という)がインストールされている。Webサーバ858は、ホームページ(後述するプレゼンテーションページ、印刷設定UIのプレゼンテーションページ、ステータスモニタUIのプレゼンテーションページ等)を公開提供する機能を備える。
図2は、クライアントPC851,857及びWebサーバ858のハードウェア構成例を示すブロック図である。ここではクライアントPC851を例にして説明する。
クライアントPC851は、ランダムアクセスメモリ部(RAM1201)、記憶部であるハードディスクドライブ部(HDD1202)、入力部であるキーボードやポインティングデバイス(KBD1203)、制御部であるCPU1204、表示部の一例である表示用ディスプレイ(LCD1205)、通信制御部の一例であるネットワークボード(NB1207)、そしてこれらを互いに接続するバス1206を備えている。尚、記憶部としては、可搬性CD−ROM又は内部据付のROM等を含んでいても良い。
ここで、図1に示すクライアントPC851の各モジュール(1〜8)は、HDD1202に記憶されており、必要に応じてRAM1201に読み出されてCPU1204の制御の下に実行される。これによりCPU1204が、図1に示す各モジュールの機能を実現する。
尚、図1に示すプリンタ855も、印刷処理を行うプリントコントローラ部14を除いて、図2に示すハードウェア構成と同じ構成を採用しても良い。その場合、図1に示すプリンタ855の各モジュール(9〜13及び15)はHDD1202に記憶され、必要に応じてRAM1201に読み出されてCPU1204により実行される。この場合、前述したプリンタ855の記憶部は、HDD1202に相当していることになる。
尚、クライアントPC851のメモリコントローラ部8及びプリンタ855のメモリコントローラ部15は、基本的には独立なハードウェアで構成されることが多い。
図3は、本発明の実施の形態に係る周辺装置制御システムの第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の各モジュールが、実行時にHDD1202からRAM1201に読み出されてCPU1204により実行される。尚、プリントコントローラ部812は、プリンタ852とは別のCPUによって実行されるようにしてもよい。
ここでプリンタ852は、図1に示すプリンタ855とは異なり、プリンタ855のUPnPデバイス制御部60のような機能を備えていない。
代理サーバ853において、818はUPnPデバイス制御部である。このUPnPデバイス制御部818は、プリンタ855のUPnPデバイス制御部60(図1)と同様な機能を備えている。そして更に、UPnP未対応であるサポート対象プリンタ(プリンタ852)をネットワーク856上に発見した場合に、このプリンタ852を、見かけ上UPnP対応プリンタとして扱うことができるプロキシサーバ機能も備えている。このUPnPデバイス制御部818については後で詳述する。また、プリンタ852におけるUPnP対応についても、後に詳述する。また、プリンタドライバ50については、図14を参照して詳しく後述する。824は印刷ジョブ制御部であり、クライアントPC851,857から送られてくる印刷設定情報と印刷対象ファイルを、UPnPデバイス制御部818を介して受け取り、これらを基に印刷ジョブを生成する。詳細は図12及び図24を参照して後述する。
図4は、本実施の形態に係る周辺装置制御システムにおける第3の構成部分を示すブロック図である。
この第3の構成部分においては、クライアントPC851,857、代理サーバ853、USBを利用したローカル接続のプリンタ854が、ネットワーク856を介して通信可能に接続される。クライアントPC851,857、ネットワーク856は、図1を参照して前述したクライアントPC851,857、ネットワーク856と同一のものであり、代理サーバ853は、図3を参照して前述した代理サーバ853と同一のものである。尚、図4では、USBプロトコルスタック部819のみを図示し、図3に示す他の構成部分の図示を省略している。
また図4においても、プリンタ854は図2に示すハードウェア構成と同じ構成を採り、USBを制御するUSBプロトコルスタック部820、SNMP(Simple Network Management Protocol)処理部823、プリントプロトコルモジュール部821、プリントコントローラ部822の各モジュールは、実行時にHDD1202からRAM1201に読み出され、CPU1204の制御の下に実行される。尚、プリントコントローラ部822は、プリンタ854とは別のCPUによって実行されるようにしてもよい。
このプリンタ854は、図1に示すプリンタ855と異なり、プリンタ855のUPnPデバイス制御部60のような機能を備えていない。しかし、代理サーバ853のUPnPデバイス制御部818(図3)のプロキシサーバ機能により、代理サーバ853がUPnP未対応であるサポート対象プリンタ(プリンタ854)をローカルポート(USBポート)上に発見した場合、このプリンタ854を、見かけ上UPnP対応プリンタとして扱うことができる。尚、このプリンタ854におけるUPnP対応については後に詳述する。
ここで以下の説明においては、代理サーバ853のコンピュータ名を「PC_ABE」とする。また、プリンタ854については、製造者名を「ABC」、機種名を「PrintMdl-M」、製造番号を「000888」として説明する。そして、プリンタ854が代理サーバ853にUSBで接続されていて、代理サーバ853にプリンタ854用のドライバがインストールされていて、代理サーバ853を介してプリンタ854で正常に印刷できるものとする。更にプリンタ854は、代理サーバ853を介してネットワーク856上の共有プリンタとしてクライアントPC851,857から参照可能な環境が整っているものとする。この代理サーバ853においてドライバがインストールされているプリンタ854のプリンタ(表示)名と、共有プリンタとして参照されるプリンタ854のプリンタ(表示)名とは同一であり、その名称は「ABC PrintMd1-M」であるとする。
図5は、本実施の形態において、Windows XPをOSとして搭載したクライアントPC851において実行されるUPnP対応デバイス検出処理の手順を示すフローチャートである。このフローチャートには、クライアントPC851からの要求に対する各プリンタによる応答処理も含まれる。尚、この処理を実行するプログラムはHDD1202に記憶されており、実行時にRAM1201にロードされ、CPU1204の制御の下に実行される。
図5において、ステップS501でクライアントPC851が起動されるとステップS502に進み、UPnPサービスが開始される。そしてステップS503で、UPnPルートデバイスを検索する要求であるSSDP(Simple Service Discovery Protocol)リクエスト(HTTPリクエストの一形態)がネットワーク856を介してクライアントPC851から周辺装置(プリンタ)に発行される。
ステップS504では、ステップS503で発行したSSDPリクエストに対してデバイス(周辺装置)からSSDPレスポンスが有るかどうかを調べ、レスポンスがあればステップS505に進み、そのSSDPレスポンスのあったデバイスを検出し、そのデバイスのアイコンをMy Network Placesフォルダ上に表示する。そしてステップS508で、所定時間(例えば1分)待機した後、ステップS503の処理に戻る。
一方、ステップS504で、ステップS503のSSDPリクエストに対してデバイスからSSDPレスポンスが無いと判別されるとステップS506に進み、My Network Placesフォルダ上に、レスポンスの無いデバイスのアイコンが表示されているか否かを判別する。ここでレスポンスの無いデバイスのアイコンが表示されている場合はステップS507で、その表示されているアイコンを削除してステップS508へ進む。また、ステップS506で、レスポンスの無いデバイスのアイコンが表示されていないと判別された場合はステップS508へ進む。
次に、図1に示すプリンタ855、図3に示すプリンタ852及び代理サーバ853、並びに図4に示すプリンタ854及び代理サーバ853が、それぞれ起動している状態で(S509)の処理について説明する。
ステップS510で、前述のクライアントPC851がステップS503で発行したSSDPリクエストを受信するとステップS511に進み、プリンタ855、代理サーバ853はそれぞれ、そのSSDPリクエストが、自分がサポートしているリクエスト(UPnPルートデバイスを検索するSSDPリクエスト)と一致するか否かを判断する。その結果、一致すると判断するとステップS512に進み、SSDPレスポンスをクライアントPC851へ発行し、再びステップS510のSSDPリクエストの受信待ち状態に戻る。一方、ステップS511で、SSDPリクエストが自分がサポートしているリクエストと一致しないと判断するとステップS510へ戻る。
これにより、UPnP対応デバイスがこのネットワーク856(印刷システム)に存在する場合には、クライアントPC851のMy Network Placesフォルダ上に、そのデバイスのアイコンが表示され、これによって、そのデバイスをクライアントPC851から制御できるようになる。
図6は、クライアントPC851の表示部1205に表示されたMy Network Placesフォルダの一例を示す図である。
図6は、図5のステップS505で、代理サーバ853を介してプリンタ854(図4)が認識された場合に、そのアイコン600が表示されている状態を示している。図中、「ABC PrintMdl-K 000888」601は、そのアイコン600に対応するデバイス(プリンタ854)の名称であり、その名称601を有するプリンタ854が使用可能な状態でスタンバイ中であることを示している。この名称601において、前述したように「ABC」は製造者名、「PrintMdl-K」は機種名、「000888」は、このプリンタ854に固有の製造番号を示している。
このように、そのプリンタ854の製造者名、機種名、製造番号を利用してデバイス表示名601を表示することにより、例えば、同一ネットワーク上に製造番号だけが異なる同一機種の周辺装置が複数存在するような場合においても、その表示されたデバイス名からそれぞれのデバイスを特定できる。これにより、ユーザが意図していないデバイスに誤ってアクセスしてしまうといった誤操作を防止することができる。
図7は、図5のステップS503において、クライアントPC851からネットワーク856に発行されるHTTPリクエストの一例を示す図で、UPnPルートデバイスを検索するためのSSDPリクエストの一例を示している。同図の左端の番号は行番号を表している。このSSDPリクエストの内容に関しては、UPnP Forumによって標準化されているUniversal Plug and Play Device Architecture V 1.0の規格に記載されているので、ここでは本発明に関連する部分のみ説明し、それ以外の部分に関する説明は省略する。
図において、3行目はST(Search Target)であり、UPnPルートデバイスを表す「upnp:rootdevice」が指定されている。4行目はMANとして「ssdp:discover」が指定されている。この例では、Universal Plug and Play Architecture V 1.0にて規定されるSimple Service Discovery Protocol(SSDP)を使用する。
図7に示す例によれば、クライアントPC851は、マルチキャストアドレス「239.255.255.250」、ポート番号「1900」に対して、図7に示すフォーマットのHTTPパケットを発行する。尚、HTTPリクエストによる探索要求は、UPnPの探索要求に限るものではない。
図8は、図5のステップS512で代理サーバ853からクライアントPC851に返信されるHTTPレスポンス(SSDPレスポンス)の一例を示す図である。同図の左端の番号は行番号を表す。このSSDPレスポンスの内容に関しては、UPnP Forumで標準化されているUniversal Plug and Play Device Architecture V 1.0の規格に記載されているので、ここでは本発明に関連する部分のみ説明し、それ以外の部分に関する説明は省略する。
図8において、4行目で、代理サーバ853がサポートしているUPnPデバイスのXML Device Descriptionが存在するURLが指定されている。このXML Device Descriptionについては、図9を参照して後述する。
6行目はNT(Notification Type)を示し、この例では、デバイスのDeviceTypeがUPnP Forumで標準化されている「Printer:1」であることを表している。
7行目はNTS(Notification Sub Type)を示し、この例では、デバイスが使用可能な状態であることを表す「ssdp:alive」が指定されている。
9行目はUSN(Unique Service Name)を示し、この例では、デバイスのUniversally Unique Identifier(UUID)が記されている。
図8に示す例によれば、Universal Plug and Play Architecture V 1.0にて規定されるSimple Service Discovery Protocol(SSDP)を使用しているので、プリンタ855、代理サーバ853はマルチキャストアドレス「239.255.255.250」、ポート番号「1900」に対して、図8に示すフォーマットのHTTPパケットを発行する。尚、HTTPレスポンスによる応答はUPnPの応答に限るものではない。
図9は、代理サーバ853がサポートしているUPnPデバイスのXML Device Descriptionの記述内容の基本的な一例を示す図である。同図の左端の番号は行番号を表す。この記述内容に関しては、UPnP Forumで標準化されているUniversal Plug and Play Device Architecture V 1.0の規格に記載されているので、ここでは本発明に関連する部分のみ説明し、それ以外の部分に関する説明は省略する。
図9において、2行〜30行はroot要素を表し、代理サーバ853がUPnP Forumで標準化されているデバイスに準拠していることが記述されている。
7行〜29行はdevice要素を表す。
8行目はdeviceType要素を示し、代理サーバ853がUPnP Forumで標準化されているPrinter Device V 1.0のデバイスであることが記述されている。
9行目はfriendlyName要素を示し、この内容が、図6に示すMy Network Placesフォルダに表示されるUPnP対応デバイスのアイコンにおけるデバイス名として使用される。この要素を、後述する製造者名(ABC)、機種名(PrintMdl-K)、製造番号(000888)から構成することで、例えば、同一ネットワーク上に製造番号だけが異なる同一機種の周辺装置が複数存在するような場合においても、表示名からそれぞれのデバイスを特定でき、ユーザが意図していないデバイスに誤ってアクセスしてしまうような誤操作を防止することができる。
10行目はmanufacturer要素を示し、製造業者名(ここでは「ABC」)が記述される。
11行目はmanufacturerURL要素を示し、製造業者のWebサイトのホームページのURL(ここでは「http://abc.jp」)が記述される。
12行目はmodelDescription要素を示し、エンドユーザ用の識別名(ここでは「ABC PrinrMd1-K」)が記述される。
13行目はmodelName要素を示し、機種名(ここでは「PrintMd1-K」)が記述される。
14行目はserialNumber要素を示し、製造番号(ここでは「000888」)が記述される。
15行目はUDN要素であり、Unique Device Name(ここでは「PrintMd1-K000888」)が記述される。
16行〜26行はserviceList要素を表す。
17行〜25行はservice要素を示し、このデバイス、即ち、代理サーバ853がサポートしているUPnPのサービスが記述される。
18行目はserviceType要素を示し、代理サーバ853が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が記述される。
図10は、代理サーバ853が公開しているプレゼンテーションページをクライアントPC851上で表示した場合の画面表示例を示す図である。
クライアントPC851において、図6に示す、UPnP対応デバイスである代理サーバ853のアイコン600「ABC PrintMdl-K 000888」をダブルクリックして起動すると、図9の27行〜28行のpresentationURL要素で指定されているURLを引数としてWebブラウザ(IE6)が起動して、図10に示すようなプレゼンテーションページが表示される。このプレゼンテーションページは、Active Server Pages(以下「ASP」という)で構成されており、動的に作成されたHTML(Hypertext Makeup Language)を見せることができるので、代理サーバ853を介してプリンタ854の状態等をリアルタイムに反映して表示することが可能である。また、Java(登録商標、以下略)Scriptを用いて、一定時間(例えば5秒間)毎にページの内容が自動的に更新されるようになっているので、前記ASPの機能と合わせて、約5秒のインターバルでリアルタイムに表示内容が更新される。
図10において、216はアドレス表示部で、このプレゼンテーションページのURLが表示される。200はプリンタ名表示部(Printer:)であり、代理サーバ853を介したプリンタ854の図6で示すようなUPnP対応デバイス名であるプリンタ名(ここでは「ABC PrintMd1-K000888」)が表示される。201は機種名表示部(Model:)であり、代理サーバ853を介したプリンタ854の機種名(ここでは「PrintMd1-K」)が表示される。202はIPアドレス表示部(IP Address:)であり、代理サーバ853のIPアドレス(ここでは「192.168.0.100」)が表示される。203はプリンタの状態表示部であり、プリンタの動作状態が表示される。図10の例ではオンラインを示す「ON LINE」を表している。
204は、ファイル名表示部205及び参照ボタン(Browse...)206から構成されるファイル選択部(Print File:)であり、参照ボタン206をクリックすることによって印刷対象のファイルを選択すると、そのファイル名がファイル名表示部205に表示される。
207は部数指定部(Copies:)であり、印刷部数を1〜100部の範囲で指定できる。
208は用紙の種類選択部(Media Type:)であり、用紙の種類を「Plain Paper(普通紙)」、「Photo Paper(写真専用紙)」、「OHP Sheet(OHPシート」の中から選択することができる。
209は用紙サイズ選択部(Paper Size:)であり、用紙サイズをA4,Letter(レターサイズ)、ABC_CUSTOM1(ABC社専用紙1)、ABC_CUSTOM2(ABC社専用紙2)の中から選択することができる。
210は印刷レイアウト選択部(Layout:)であり、印刷レイアウトを1-up(一枚の用紙に一画像印刷),2-up(一枚の用紙に二画像印刷),4-up(一枚の用紙に四画像印刷)の中から選択することができる。
211は印刷品位選択部(Print Quality:)であり、印刷品位を「High(高品位)」、「Standard(標準)」、「Draft(下書き)」の中から選択することができる。
212は印刷の向き選択部(Orientation:)であり、印刷の向きを「Portrait(縦)」、「Landscape(横)」から選択することができる。
213は印刷ボタン(Print)であり、このボタンをクリックすると、プリンタ854による印刷が開始される。
214はインク残量表示部であり、プリンタ854に装着されているインクカートリッジのインク残量が表示される。
215は操作ガイド部であり、ユーザ操作の補助として、操作ガイドが表示される。
図11は、図10に示すプレゼンテーションページを用いて印刷を行う時にクライアントPC851又はクライアントPC857で実行される印刷処理の手順を示すフローチャートである。但し、以下の説明では、図10に示すプレゼンテーションページを用いてクライアントPC851で実行される印刷処理の手順を例にして説明する。
この処理は、図10に示す印刷ボタン213がクリックされることにより開始され(S1101)、まずステップS1102で、図10に示す印刷設定部207〜212のそれぞれに設定された印刷設定情報を代理サーバ853へ送信する。その後ステップS1103で、代理サーバ853からクライアントPC851に返されるJobIDとDataSinkを受信する。次にステップS1104で、ファイル選択部204で選択された印刷対象ファイルを、ステップS1103で受信したDataSinkで指定されたURI(Uniform Resource Identifiers)に対して送信すべく代理サーバ853に送信する。これによって、クライアントPC851における印刷処理が完了する(S1105)。
ステップS1102で代理サーバ853へ送信された印刷設定情報は、クライアントPC851の情報とともに、互いに関連付けられて代理サーバ853内に保存される。この保存されたクライアントPC851の情報と印刷設定情報は、次回、再びクライアントPC851からこのプレゼンテーションページにアクセスされた時の初期設定値として利用される。これにより、次回アクセス時に、ユーザがよく使用するお気に入りの印刷設定が初期設定値としてプレゼンテーションページに最初に表示されることになる。これにより、ユーザにとって操作性が向上する。尚、クライアントPC851と代理サーバ853との間で実際に送受信されるデータの詳細に関しては、図17及び図18を参照して詳しく後述する。
図12は、一般的な代理サーバ853の印刷ジョブ制御部824の機能構成を表すブロック図である。
図において、70はUPnP制御部で、図11のステップS1102でクライアントPC851から送られてきた印刷設定情報と、ステップS1104で、クライアントPC851から送られてきた印刷対象ファイルをUPnPデバイス制御部818(図3)から受け取る。71はDEVMODE制御部で、Windows XP OSにおける印刷設定を保持するDEVMODE構造体のメンバーの値を参照したり、DEVMODE構造体のメンバーへ値をセットしたりというような制御を行う。DEVMODE構造体は、印刷設定の各設定を保持するメンバー等から構成され、このメンバーにセットする値のほとんどは数値(整数)で表される定数で定義されている。72は文字列・数値変換テーブルで、DEVMODE制御部71が、その印刷設定情報に含まれている各印刷設定の文字列を、それぞれが該当するDEVMODE構造体の各メンバーへの設定値である数値に変換してDEVMODE構造体の各メンバーへセットする際に、DEVMODE制御部71から参照される。73は印刷ジョブ生成部であり、印刷設定情報を基にDEVMODE制御部71によりセットされたDEVMODE構造体と印刷対象ファイルとからプリンタ854用の印刷ジョブを生成する。この印刷ジョブは、プリンタドライバ50(図3)を介してプリンタ854で印刷される。尚ここで、文字列・数値変換テーブル72を用意せず、DEVMODE制御部71内で文字列を一つ一つ比較しながらその文字列に該当する数値を特定して処理していくことも可能である。しかしながら、文字列・数値変換テーブル72を用意する場合と比べて処理が複雑になりバグの原因にもなるため、このような文字列・数値変換テーブル72を用意する実装方法が一般的である。
図13は、図10に示すプレゼンテーションページを用いてクライアントPC851で印刷が指示された場合に、代理サーバ853で実行されるプリンタ854の状態検出処理の手順と、クライアントPC851又はクライアントPC857で実行される代理サーバ853を介したプリンタ854の状態表示処理の手順とを示すフローチャートである。但し、以下の説明では、図10に示すプレゼンテーションページを用いてクライアントPC851で実行される代理サーバ853を介したプリンタ854の状態表示処理の手順を例にして説明する。尚、代理サーバ853を介したプリンタ854の状態表示は、図10に示すプレゼンテーションページおけるプリンタ名表示部200、機種名表示部201、IPアドレス表示部202、プリンタの状態表示部203、インク残量表示部214における状態表示を指す。
図13において、まずステップS1301で、代理サーバ853におけるプリンタ854の状態検出処理が起動すると、ステップS1302で、代理サーバ853は、プリンタ854の動作状況を表すステータスを確認し、ステップS1303で、前回の確認結果と比較してステータスに変化が有る否かを判断する。その結果、ステータスに変化があればステップS1304に進んで最新のステータスを保存し、代理サーバ853に用意されているプレゼンテーションページのASPの情報を更新する(ステップS1305)。そしてステップS1306で、所定時間(例えば5秒間)待機した後ステップS1302へ戻る。一方、ステップS1303でステータスに変化が無いと判断した場合はステップS1306へ進む。
次に、この代理サーバ853に処理に対応するクライアントPC851における処理について説明する。
ステップS1306で、図10に示すプレゼンテーションページに関する処理が開始されると、ステップS1308で、JavaScriptで記述されている所定時間(例えば5秒間)が経過したかどうかを判断し、所定時間が経過するとステップS1309に進み、代理サーバ853からのASPの更新情報を受信し、クライアントPC851のWebブラウザ上における図10のプレゼンテーションページの表示内容を同様に更新してステップS1308へ戻る。
このようにして、簡単な構成のプレゼンテーションページを1つ用意するだけで、代理サーバ853を介してプリンタ854の状態を、クライアントPC851又はクライアントPC857の表示部に表示するプレゼンテーションページ(図10)にリアルタイムで反映することができる。これによって、プレゼンテーションページの開発工数を削減でき、しかも、ユーザにとって操作性が向上する。
図14は、代理サーバ853におけるプリンタドライバ50の構成を主に示すブロック図である。
図において、プリンタドライバ50は、代理サーバ853にインストールされているドライバであり、32〜39で示す複数のモジュールを備えている。アプリケーション30は印刷指令可能なアプリケーションソフトウェアであり、例えば、Windows XP OS に標準で同梱されているテキストエディタであるNotepad(Notepad.exe)等に相当する。31はGDI(Graphics Device Interface)であり、Windows XP OSの一部である。
次にプリンタドライバ50の構成を説明する。
32はプリンタキューで、Windows XP OSのSpoolerの一部であり、印刷ジョブをキューイングする。33はプリントプロセッサであり、印刷レイアウトの変更や印刷画像の特殊処理を行う。34はグラフィックスドライバで、プリンタドライバ50の画像処理のコアとして動作し、GDI31から送られて来る描画命令に基づき印刷用の画像処理を行い、印刷制御コマンドを作成する。35はUIモジュールで、プリンタドライバ50のユーザインターフェースの提供及び制御を行う。36はランゲージモニタで、データの通信I/Fとしてデータの送受信を制御する。37はポートモニタであり、ランゲージモニタ36から送られてくるデータを適切なポートに対して送信したり、プリンタ854から送られてくるデータを、クラスドライバ38を介して受信したりする。クラスドライバ38は、最もポートに近いローレベルのモジュールであり、ポートを制御する。図14に示す例では、USB用のクラスドライバに相当し、代理サーバ853のUSBポートを制御して、プリンタ854との間でのUSB通信を制御する。39はステータスモニタで、プリンタ854の状態をモニタして表示する。
図14では、プリンタドライバ50を搭載した代理サーバ853の場合で説明したが、同じWindows XP OSを搭載したクライアントPC851においてプリンタドライバを利用した印刷処理においても同様な構成となる。また、図14では、代理サーバ853にプリンタ854がUSBで接続されているローカル印刷の例を説明したが、例えば、クライアントPC851から代理サーバ853を介して共有されているプリンタ854で印刷するようなネットワーク印刷においても同様な構成となる。
図15は、印刷ジョブ生成部824の文字列・数値変換テーブル72の内容例を表す図である。
図において、文字列欄1500には、UPnP Forumで標準化されているPrintBasic:1 Service Template Version 1.01で定義されているMediaSizeで取り扱われる文字列がセットされている。数値欄1501には、DEVMODE構造体の用紙サイズメンバーにセットする数値が格納されている。名称/サイズ欄1502には、用紙サイズの名称と、そのサイズが格納されている。数値欄1501の数値には、一般的な値として定義されているものに関しては「1」〜「255」の値で定義され、各製造業者(ベンダー)に固有の値として定義されているものは、「256」以上の数値を用いて定義される。実際の処理では文字列欄1500と数値欄1501の値が使用され、名称/サイズ欄1502は実際の処理には使用されずに、参考情報として取り扱われるケースが一般的である。尚、PrintBasic:1に関する詳細な説明はここでは省略する。
図16は、図5のステップS512(SSDPレスポンス発行)後に、UPnPプロトコル上で代理サーバ853からクライアントPC851に送られるSCPD(Service Control Protocol Definition)の一部を表すXMLのデータ例を示す図である。同図の左端の番号は行番号を表す。尚、このデータは、前述したPrintBasic:1 Service Template Version 1.01に準拠している。
同図の14行〜24行に示す通り、プリンタ854で使用できる用紙サイズの情報が代理サーバ853からクライアントPC851に送られる。但し、図10で説明した通り、代理サーバ853が公開しているプレゼンテーションページ上の用紙サイズ選択部209では、ユーザが選択しやすいように表示上簡略化して、A4(1600),Letter(1601),ABC_CUSTOM1(1602),ABC_CUSTOM2(1603)というように表示されるようにプレゼンテーションページを設計している。ここで、例えばSCPDで送られてくる文字列をそのまま使って、用紙サイズ選択部(PaperSize)209に「iso_a4_210x297mm」と表示してもよい。更に、他の製造業者(ベンダー)の用紙等であって、代理サーバ853を介したプリンタ854ではサポートされていないような用紙サイズ(例えば、XYZ_CUSTOM_8)の文字列がSCPDで送られてきた場合は、この文字列をそのまま使用して用紙サイズ選択部209に表示するのが一般的である。このように、図16のSCPDのデータ内の各設定を表す文字列は、プレゼンテーションページ表示(図10)における印刷設定の選択等に反映される。尚、図16の8行〜13行に示す通り、IEEE1288-2000で標準化されているDeviceIDが、代理サーバ853からクライアントPC851に送られていることがわかる。
図17及び図18は、図11のステップS1102で、クライアントPC851或は857から代理サーバ853に送られる印刷設定情報の内容例を表す図である。これらの図の左端の番号は行番号を表す。この印刷設定情報はSCPDで定義されているXMLのデータであり、このデータは前述したPrintBasic:1 Service Template Version 1.01に準拠しているので、ここでは詳細説明は省略する。
図11のステップS1102で、このCreateJobのactionとして印刷設定情報がクライアントPC851から代理サーバ853へ送信されると、ステップS1103で次に示すようなJobIDとDataSinkの情報がCSV(Comma Separated Value Lists)フォーマットのデータとして、クライアントPC851から代理サーバ853へ返される。
JobId,1,DataSink,http://192.168.0.100:3682/DataSink
その後、このDataSinkで指定されたURI
http://192.168.0.100:3682/DataSink
に対して、図10のファイル選択部204で選択された印刷対象ファイル(ここでは、test1.txt)がクライアントPC851から代理サーバ853へHTTP:POSTオペレーションにて送られる。
図19は、代理サーバ853の印刷ジョブ制御部824における印刷ジョブ生成処理を表すフローチャートである。
図において、この処理は印刷ジョブ生成処理が起動されることにより開始され、ステップS1902で、図11のステップS1102で、クライアントPC851から送信された印刷設定情報を代理サーバ853のUPnPデータ制御部70が受信するとステップS1903に進み、DEVMODE制御部71は、文字列・数値変換テーブル72を参照して各設定(ここでは用紙サイズ)の文字列を数値に変換する。次にステップS1904で、DEVMODE制御部71は、その印刷設定情報内の各設定(文字列)から、ステップS1903の変換処理で得られた各設定の数値をDEVMODE構造体の該当する設定を表すメンバーにセットする。そしてステップS1905に進み、図11のステップS1104でクライアントPC851から送られてきた、ファイル選択部204で選択された印刷対象ファイルを代理サーバ853のUPnPデータ制御部70で受信する。これによりステップS1906で、印刷ジョブ生成部73は、その印刷設定情報内の各設定が反映されたDEVMODE構造体と印刷対象ファイルとから、プリンタ854用の印刷ジョブを生成する。こうして印刷ジョブ生成処理を終了する。
こうして印刷ジョブ生成処理で生成された印刷ジョブは、プリンタドライバ50を介してプリンタ854用の印刷制御コマンドに変換されてプリンタ854に送られる。これによりプリンタ854は、この印刷制御コマンドに従って印刷を行う。尚、この印刷ジョブがプリンタドライバ50を介してプリンタ854に送られて印刷されるという一連の処理は一般的な公知の印刷処理フローであるので、ここではその詳細説明を省略する。
ここで図12に示す文字列・数値変換テーブル72のようなテーブルを用意して、ステップS1903に示すような文字列から数値に変換する変換処理を行う場合には、印刷設定情報として、用紙サイズ、用紙の種類等における選択肢が増えれば増えるほど、膨大なテーブルのリソースが必要になったり、変換処理が複雑になったりする。
これに対して本実施の形態では、以下に説明するように、UPnPのサービスとして定義されているスキーマ上に、印刷設定情報の内の各設定を数値で取り扱えるような新しい仕組み(要素)を設けることで、この問題点を解決する。
以下、本発明の実施例を詳しく説明する。尚、この実施例におけるシステム構成及びクライアント、サーバ、プリンタのハードウェア構成は、図12に示す文字列・数値変換テーブル72を除いている以外は前述の説明と略同様であるため、その説明を省略する。
図20は、本発明の実施例に係る代理サーバ853がサポートしているUPnPデバイスのXML Device Descriptionの記述内容の一例を示す図である。同図の左端の番号は行番号を表す。この記述内容に関しては、UPnP Forumで標準化されているUniversal Plug and Play Device Architecture V 1.0の規格に記載されているので、ここでは本発明に関連する部分のみ説明し、それ以外の部分に関する説明は省略する。
図20において、2行〜30行はroot要素を表し、代理サーバ853がUPnP Forumで標準化されているデバイスに準拠していることが記述されている。
7行〜29行はdevice要素を表す。
8行目はdeviceType要素を示し、代理サーバ853がUPnP Forumで標準化されているPrinter Device V 1.0のデバイスであることが記述されている。
9行目はfriendlyName要素を示し、この内容が、図6に示すMy Network Placesフォルダに表示されるUPnP対応デバイスのアイコ600ンにおけるデバイス名601として使用される。この要素を、前述したように製造者名(ABC)、機種名(PrintMdl-K)、製造番号(000888)から構成することで、例えば、同一ネットワーク上に製造番号だけが異なる同一機種の周辺装置が複数存在するような場合においても、表示名からそれぞれのデバイスを特定でき、ユーザが意図していないデバイスに誤ってアクセスしてしまうような誤操作を防止することができる。
10行目はmanufacturer要素を示し、製造業者名(ここでは「ABC」)が記述される。
11行目はmanufacturerURL要素を示し、製造業者のWebサイトのホームページのURL(ここでは「http://abc.jp」)が記述される。
12行目はmodelDescription要素を示し、エンドユーザ用の識別名(ここでは「ABC PrintMd1-K」)が記述される。
13行目はmodelName要素を示し、機種名(ここでは「PrintMd1-K」)が記述される。
14行目はserialNumber要素を示し、製造番号(ここでは「000888」)が記述される。
15行目はUDN要素であり、Unique Device Name(ここでは「PrintMd1-K000888」)が記述される。
16行〜26行はserviceList要素を表す。
17行〜25行はservice要素を示し、このデバイス、即ち、代理サーバ853がサポートしているUPnPのサービスが記述される。
18行目はserviceType要素を示し、代理サーバ853がUPnP Forumで標準化されているPrinter Basic Service V 1.0をベースに製造者(ここでは「ABC」)が独自に拡張したサービス(ここでは「urn:schemas-abc-jp.service:PrinterBasic3」)をサポートしていることが記述されている。後述するこの拡張部分が本実施の形態の特徴の1つである。
19行目はserviceId要素を示し、このサービスのID(ここでは「urn:schemas-abc-jp.serviceId3」)が記述される。
20行目はSCPDURL要素を示し、Service DescriptionのためのURL、即ち、Service Control Protocol Definition URL(ここでは「http://192.168.0.100:3678/SCPD/BasicPrint_Printer3.PrintMd1-K000888.xml」)が記述される。
21行〜22行はcontrolURL要素を示し、デバイスを制御するためのURL(ここでは「http://192.168.0.100:1228/control.asp?uuid=Printer3:PrintMd1-K000888;serviceType=PrintBasic;serviceID=3」)が記述される。
23行〜24行はeventSubURL要素を示し、イベントのためのURL(ここでは「http://192.168.0.100:3680/subscribe.asp?uuid=Printer3:PrintMd1-K000888;serviceType=PrintBasic;serviceID=3」)が記述される。
27行〜28行はpresentationURL要素を示し、デバイスを公開するためのプレゼンテーションページのURL(ここでは「http://192.168.0.100/PrinterPresentation.asp?uuid=Printer:PrintMd1-K000888」)が記述される。尚、このプレゼンテーションページのURLに関しては図9のそれと同一である。
従って、クライアントPC851において、図6に示す、UPnP対応デバイスである代理サーバ853のアイコン600「ABC PrintMdl-K 000888」をダブルクリックして起動すると、図20の27行〜28行に記述されたpresentationURL要素で指定されているURLを引数としてWebブラウザ(IE6)が起動して、図10に示すようなプレゼンテーションページが表示される。
図21は、本実施例に係る代理サーバ853に、本実施例に係る新規な機能を搭載した場合、図5のステップS512の後にUPnPプロトコル上で代理サーバ853からクライアントPC851に送られるSCPDの一部を表すXMLデータの一例を示す図である。同図の左端の番号は行番号を表す。
このデータは前述したUPnP Forumで標準化されているPrinter Basic Service V 1.0をベースに製造者(ここでは「ABC」)が独自に拡張したサービスに準拠している。
図21の8行〜13行の内容は前述の図16と同一であり、IEEE1288-2000で標準化されているDeviceIDが代理サーバ853からクライアントPC851に送られていることが分かる。図21において、14行〜36行には、代理サーバ853を介してプリンタ854で使用可能な用紙サイズ(MediaSize)の情報が記述されている。19行〜22行は、A4の用紙サイズの情報を表しており、A4の用紙サイズが文字列「iso_a4_210x297mm」と数値「9」で定義されていることがわかる。
23行〜26行はLetterの用紙サイズの情報を表しており、Letterの用紙サイズが文字列「na_letter_8.5x11in」と、数値「1」で定義されていることがわかる。
よって、図20の18行目に記載されているサービスであるPrinterBasic3(UPnP Forumで標準化されているPrinter Basic Service V 1.0をベースに、製造者(ここでは「ABC」)が独自に拡張仕様(ここでは「urn:schemas-abc-jp.service:PrinterBasic3」))にて、各用紙サイズ毎に予め定義する。そして、代理サーバ853からクライアントPC851に、プリンタ854がサポートしている用紙サイズとして、前記PrinterBasic3のスキーマで定義された用紙サイズを示す数値が図21の18行〜35行のallowedValueListで返される。尚、数値がどの意味を表すかは、拡張仕様として予め製造者側で認識されており、ホストやプリンタは、その認識されている数値に応じて予め定められた仕様に基づき動作する。例えば、数値「9」をプリンタ又はホストが認識した場合、その数値は「ISOで定められたA4の横210×縦297mmの用紙」であることを前提に動作するようにホスト又はプリンタが実装される。
27行〜30行は、ABC_CUSTOM1の用紙サイズの情報を表しており、ABC_CUSTOM1の用紙サイズが文字列「ABC_custom1_100x200mm」と、数値「256」で定義されていることがわかる。
31行〜34目はABC_CUSTOM2の用紙サイズの情報を表しており、ABC_CUSTOM2の用紙サイズが文字列「ABC_custom2_200x300mm」と、数値「257」で定義されていることがわかる。
このように本実施例では、新たな機能として各用紙サイズ(MediaSize)毎に「id」という新しい要素(21,25,29,33行)をSCPD内に追加し、この要素にその用紙サイズを表す数値をセットしておくという特徴を持たせている。
図22及び図23は、本実施例に係る代理サーバ853において、図11のステップS1102でクライアントから送らてくる印刷設定情報の内容を表す図である。これらの図の左端の番号は行番号を表す。この印刷設定情報はSCPDで定義されているXMLのデータである。このデータは前述したUPnP Forumで標準化されているPrinter Basic Service V 1.0をベースに製造者(ABC)が独自に拡張したサービスに準拠している。尚、図22は、前述の図17と同一の内容であるので、ここではその説明を省略する。
図23において、46行〜51行は、印刷時に指定された用紙サイズの情報を表す。図18の46行〜50行と比較すると、図23では50行目の定義が追加されていることがわかる。このように本実施例では、新機能として各用紙サイズ毎に既定されている「relatedStateVariableId」という新規な要素をCreateJob内に追加し、この要素にその用紙サイズを表す数値をセットしている。それ以外の部分は図18と同一なので、ここでは、その説明を省略する。
この実施例において、図10に示すプレゼンテーションページを用いて印刷を行う場合、クライアントPC851又はクライアントPC857で実行される印刷処理の手順を前述の図11のフローチャートに従って説明する。
ステップS1102で、このCreateJobのactionとして印刷設定情報がクライアントPC851から代理サーバ853へ送信されると、ステップS1103で次に示すようなJobIDとDataSinkの情報がCSV(Comma Separated Value Lists)フォーマットのデータとして、クライアントPC851から代理サーバ853へ返される。
JobId,1,DataSink,http://192.168.0.100:3682/DataSink
その後、このDataSinkで指定されたURI
http://192.168.0.100:3682/DataSink
に対して、図10のファイル選択部204で選択された印刷対象ファイル(ここでは、test1.txt)がクライアントPC851から代理サーバ853へHTTP:POSTオペレーションにて送られる。
図24は、本実施例に係る代理サーバ853における印刷ジョブ制御部824の構成を示すブロック図である。同図の各ブロックはそれぞれ図12の各ブロックと同一であるので、各ブロックの詳細説明は省略する。
図において、斜線で表されている文字列・数値変換テーブル72は、本実施例では不要となるので、膨大なテーブルのリソース分のソフトウェアリソースを削減することができる。
図25は、本実施例に係る代理サーバ853における印刷ジョブ制御部824における印刷ジョブ生成の処理を表すフローチャートである。
この処理はクライアントPCから印刷要求を受信することにより開始され(ステップS2501)、印刷ジョブ生成処理を起動するとステップS2502で、図11のステップS1102でクライアントPC851から送信された印刷設定情報を代理サーバ853のUPnPデータ制御部70が受信する。次にステップS2503で、DEVMODE制御部71は、その印刷設定情報内の各設定が反映されるようにDEVMODEを更新する。そしてステップS2504に進み、図11のステップS1104でクライアントPC851から送信された、ファイル選択部204で選択された印刷対象ファイルを代理サーバ853のUPnPデータ制御部70で受信する。次にステップS2505で、印刷ジョブ生成部73は、その印刷設定情報の各設定が反映されたDEVMODE構造体と印刷対象ファイルからプリンタ854用の印刷ジョブを生成し、ステップS2506で、この印刷ジョブ生成処理を終了する。
こうして生成された印刷ジョブは、プリンタドライバ50を介してプリンタ854用の印刷制御コマンドに変換されてプリンタ854に送信される。これにより、この印刷制御コマンドに従ってプリンタ854が印刷を行う。この印刷ジョブがプリンタドライバ50を介してプリンタ854にて印刷されるという一連の処理は一般的な公知の印刷処理フローであるので、ここではその詳細説明を省略する。
図26は、図25のステップS2503におけるDEVMODEの更新の処理を表すフローチャートである。
図において、DEVMODEの更新処理が開始されるとステップS2602に進み、図23の50行目に記されているような用紙サイズ(MediaSize)の「relatedStateVariableId」を取得する。次にステップS2603で、ANSIの「標準関数_ttoi()」を使ってrelatedStateVariableIdを数値に変換して整数iに代入する。ステップS2604では、i≧256かどうかを判定する。即ち、ここでは、各製造業者(ベンダー)に固有の値として定義されている値かどうかをみる。各製造業者(ベンダー)に固有の値であればステップS2605に進み、図23の49行目に記されているような「MediaSize」の「relatedStateVariableName」を取得する。図23の例では「is_a4_210x297mm」が取得される。次にステップS2606に進み、製造業者名を表す文字列「ABC」を含んでいるかどうかを判定し、含んでいればステップS2607に進んで、DEVMODE構造体の該当する設定(用紙サイズ)を表すメンバーにiをセットし、リターンする(S2609)。
一方、ステップS2606で、製造業者名を表す文字列「ABC」を含まない場合は、「ABC」社以外の仕様によるものであるためステップS2608に進み、用紙サイズの初期値である「A4」判を表す数値「9」をiに代入してステップS2607に進む。またステップS3104において、i<256の場合もステップS3107へ進む。
このように本実施の形態によれば、図19のステップS1903,S1904で行っていたような複雑でしかも膨大なテーブルのリソースを必要とするような処理を実装する必要がなく、図26で示すようなシンプルな処理により実現できるので、ソフトウェアリソースを大幅に削減でき、しかも、バグの発生を防ぐことができる。
尚、ステップS2604でi≧256の場合は、Privateで定義されている用紙サイズを表すが、この場合、「ABC」社以外の製造業者が定義した用紙サイズとも考えられる。また、relatedStateVariableIdで指定された値が仮に同じ値であっても、その値を各製造業者毎に別の用紙サイズとして定義しているようなケースも考えられる。このようなケースを想定して、ステップS2605,S2606のように、SCPDの文字列「relatedStateVariableName」を取得して、「ABC」社以外の製造業者が定義した用紙サイズであるか否かを確認し、他の製造業者が定義した用紙サイズの場合は、ステップS2608で用紙サイズの初期値である「A4」を表す数値「9」をiに代入し、それ以外の場合は自社(「ABC」社)で定義した用紙サイズとしてiをそのまま取り扱い、ステップS3107でDEVMODE構造体の該当する設定(用紙サイズ)を表すメンバーにiをセットしている。これにより誤動作を防止しつつ、最適な用紙サイズをセットすることができる。
尚、本実施例では、i≧256の場合に、用紙サイズが自社で定義したものであるか否かを判別する方法として、SCPDの文字列「relatedStateVariableName」を使用したが本発明はこれに限定されるものでなく、例えば、図21の11行及び12行で記されているようなDeviceIDに含まれている「MFG:ABC」,「MDL:PrintMd1-K」や、図20の10行目に記されているような製造業者名「ABC」、13行目に記されているような機種名「PrintMd1-K」等を使用してもよい。
以下、図27に示すメモリマップを参照して、本発明に係る情報処理装置及び周辺装置からなる周辺装置制御システムで読み出し可能なデータ処理プログラムの構成について説明する。
図27は、本発明に係る周辺装置制御システムで読み出し可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを示す図である。なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等もこの記憶媒体に記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
図中64は記憶媒体であり、ここではハードディスクで構成されているものとする。
65はディレクトリ情報管理部であり、各種プログラムに従属するデータがこのディレクトリ情報管理部65で管理されている。
66はプログラム格納部であり、各種プログラムを情報処理装置にインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に解凍するためのプログラム等も記憶される場合がある。
本実施形態における図5、図11、図13、図19、図25、図26にそれぞれ示す各フローチャートの実行によって実現できる各機能が、外部からインストールされるプログラムによって、情報処理装置によって実現されるようにしてもよい。そして、その場合、CD−ROMやフラッシュメモリやフレキシブルディスク等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群が情報処理装置や周辺装置に供給される場合でも、本発明は適用されるものである。
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM、EEPROM等を用いることができる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
以上、本発明の実施の形態について説明したが、この実施の形態によれば、UPnPのサービスとして定義されているスキーマ上に、印刷設定情報における各設定を数値で取り扱えるような新しい仕組み(要素)を設ける。この新しい仕組み(要素)で指定された数値をハンドリングして印刷ジョブを生成し、プリンタドライバを介して作成された印刷制御コマンドをプリンタに送信して印刷させることにより、複雑でしかも膨大なテーブルのリソースを必要とするような処理を実装することなく、シンプルな処理で実装することができ、かつ最適な設定で周辺装置を制御することができる周辺装置制御システムを実現することができる。具体的な構成は次の通りである。
情報処理装置で構成されるクライアント(クライアントPC851)と、情報処理装置で構成されるサーバ(代理サーバ853)と、周辺装置(プリンタ854)とを備える周辺装置制御システム(図4)であって、サーバは周辺装置を制御する周辺装置制御部(印刷ジョブ制御部824、プリンタドライバ50)を備え、かつ、このサーバは、クライアントとサーバ間で共有され、文字列で定義された文字列要素(MediaSizeのrelatedStateVariableName)と数値で定義された数値要素(MediaSizeのrelatedStateVariableId)とを含むサービス(UPnP Forumで標準化されているPrinter Basic Service V 1.0をベースに製造者が独自に拡張したサービス)を利用して、文字列要素を周辺装置制御部に適用して周辺装置を制御することができる。
また情報処理装置(代理サーバ853)と周辺装置(プリンタ854)とから成る周辺装置制御システム(図4)であって、情報処理装置は周辺装置を制御する周辺装置制御部(印刷ジョブ制御部824、プリンタドライバ50)を備え、情報処理装置は、文字列で定義された文字列要素(MediaSizeのrelatedStateVariableName)と、数値で定義された数値要素(MediaSizeのrelatedStateVariableId)とを含むサービス(UPnP Forumで標準化されているPrinter Basic Service V 1.0をベースに製造者が独自に拡張したサービス)を利用して、文字列要素を周辺装置制御部に適用して周辺装置を制御することができる。
尚、本実施の形態においては、第1の情報処理装置(クライアントPC851等)が周辺装置(プリンタ855,852,854)を制御するための設定情報や周辺装置の状態を表す状態情報(図10のプレゼンテーションページ)を、周辺装置(プリンタ855,852,854)又は第2の情報処理装置(代理サーバ853)の内部に用意して実現しているが、これに代わって、設定情報や状態情報を図1のWebサーバ858の内部に用意して実現するようにしてもよい。
このように構成することで、設定情報や状態情報のUIのデザイン変更等が必要になった場合に、Webサーバ858の内部に用意してある設定情報や状態情報を差し替えるだけでよいので、メンテナンスが容易である。
また、第1の情報処理装置(クライアントPC851等)が周辺装置(プリンタ855,852,854)を制御するために設定された設定情報(図10のプレゼンテーションページ)を、周辺装置(プリンタ855,852,854)や第2の情報処理装置(代理サーバ853)内で指定されたURLに対応する設定情報の格納場所に、第1の情報処理装置の情報と関連付けて保存し、第1の情報処理装置が設定情報を利用する時、この設定情報格納場所に保存されている設定情報を初期値として利用するようにする。
これにより、ユーザがよく使用するお気に入りの設定情報が初期設定値として最初に第1の情報処理装置上に表示されるので、ユーザによる操作性を向上することができる。
また、情報処理装置(クライアントPC851等)は、Webブラウザ(IE6等)を備え、周辺装置(プリンタ855,852,854)を、Webブラウザを介して制御するようにする。これにより、任意の情報処理装置において周辺装置を制御することが、容易に実現される。
また、周辺装置の状態を表す状態情報(図10のプレゼンテーションページ)を情報処理装置(クライアントPC851等)に公開する機能は、状態情報を自動的に更新する(JavaScriptを用いて、所定時間毎にページの内容を自動的に更新する)機能を含むようにする。これにより、周辺装置(プリンタ855,852,854)の最新の状態を状態情報にリアルタイムに反映して情報処理装置上に表示することができる、操作性に優れた周辺装置制御システムを提供することが可能となる。
また、情報処理装置(クライアントPC851)は、周辺装置(プリンタ854)の製造者名、機種名、製造番号等を利用して、周辺装置を表示(図6に示す「ABC PrintMdl-K000888」)する機能を備えるようにする。これにより、同一ネットワーク(ネットワーク856)上に、製造番号だけが異なる同一機種の周辺装置が複数存在するような場合においても、情報処理装置上に表示される周辺装置の表示名から周辺装置を特定でき、ユーザが意図していない周辺装置に誤ってアクセスしてしまうような誤操作を防止することができる。
尚、本実施の形態においては、こうした機能を、UPnPを利用して実現しているが、これに限られることなく、同様な機能を備えるプロトコル等を利用して、実現することができる。また、実現するにあたっては、標準化された規格を利用することで、より汎用的なシステムを容易に実現することができる。
また本実施の形態では、周辺装置としてプリンタを例示しているが、周辺装置として他に、複写機、ファクシミリ、スキャナ、デジタルカメラ、又はこれらの複合機能を備える装置などのいずれかが、本発明の適用対象となり得る。
また、上記の実施の形態においては、周辺装置の検索時においてSSDPで策定されたプロトコルを採用しているが、同様なシステムを実現可能な任意のプロトコルを採用して、実施するようにしてもよい。
また、上記の実施の形態では、HTTPエンティティの表記方法はSOAPを使用しているが、独自スキーマによる記述によっても実現してもよい。
また本実施の形態においては、OSに例としてWindows XP、Mac OS、Linux OSを使用したが、これらのOSに限られることなく、任意のOSを使用することができる。
また本実施の形態においては、ネットワーク856の構成例としてEthernetを用いたが、この例に限られることなく、他の任意のネットワーク構成であってもよい。
更にまた本実施の形態においては、代理サーバ853とプリンタ854との間のインターフェースとして、USBインターフェースを用いたが、このインターフェースに限られることなく、他の任意のインターフェースを用いるようしてもよい。
また本実施の形態では、印刷設定の一つとして用紙サイズを例に説明したが、この例に限られることなく、例えば、用紙の種類、印刷品位等、同様なデータハンドリングが可能な任意の印刷設定に対しても有効であり、同様な構成にて容易に実現可能である。
更に本実施の形態では、図4に示すような代理サーバ853内の印刷ジョブ制御部824における処理に関して説明したが、同様な処理を図1に示すようなプリンタ855内のファームウェアに実装しても有効であり、同様な構成にて容易に実現可能である。
また本実施の形態では、図4に示すようなクライアントPC851、代理サーバ853、プリンタ854で構成されるシステムの例で説明したが、本発明はこの例に限られることなく、例えば、図4においてクライアントPC851が存在せず、代理サーバ853とプリンタ854だけから構成されるようなシステムでも、代理サーバ853が代理サーバとしての機能を提供しつつ、自らがクライアントPCとなるようなケースにおいても本発明が有効であり、同様な構成にて容易に実現可能である。
[他の実施の形態]
本発明は、上述した実施の形態の機能を実現するソフトウェアのプログラムをコンピュータ又はCPUに供給し、そのコンピュータ又はCPUが該供給されたプログラムを読出して実行することによって、その目的を達成することができる。この場合、上記プログラムは、該プログラムを記録した記憶媒体から直接に供給されるか、又はインターネット、商用ネットワーク、若しくはローカルエリアネットワーク等に接続される不図示の他のコンピュータやデータベース等からダウンロードすることにより供給される。
上記プログラムの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、OS(オペレーティングシステム)に供給されるスクリプトデータ等の形態から成ってもよい。
また、本発明は、上述した実施の形態の機能を実現するソフトウェアのプログラムを記憶した記憶媒体をコンピュータ又はCPUに供給し、そのコンピュータ又はCPUが記憶媒体に記憶されたプログラムを読出して実行することによっても、達成することができる。
この場合、格納媒体から読出されたプログラムコード自体が上述した各実施の形態の機能を実現すると共に、そのプログラムコードを記憶した記憶媒体は本発明を構成する。
プログラムコードを記憶する記憶媒体としては、例えば、ROM、RAM、NV−RAM、フロッピー(登録商標)ディスク、ハードディスク、光ディスク(登録商標)、光磁気ディスク、CD−ROM、MO、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD+RW、磁気テープ、不揮発性のメモリカード等がある。
上述した実施の形態の機能は、コンピュータから読出されたプログラムコードを実行することによるばかりでなく、コンピュータ上で稼動するOS等がプログラムコードの指示に基づいて実際の処理の一部又は全部を行うことによっても実現することができる。
本発明の実施の形態に係る周辺装置制御システムの第1の構成部分を説明する機能ブロック図である。 本実施の形態に係るクライアントPC、サーバ及びプリンタのハードウェア構成の一例を示すブロック図である。 本発明の実施の形態に係る周辺装置制御システムの第2の構成部分を示すブロック図である。 本実施の形態に係る周辺装置制御システムにおける第3の構成部分を示すブロック図である。 本実施の形態において、Windows XPをOSとして搭載したクライアントPCにおいて実行されるUPnP対応デバイス検出処理の手順を示すフローチャートである。 クライアントPCの表示部に表示されたMy Network Placesフォルダの一例を示す図である。 クライアントPCから代理サーバ発行されるHTTPリクエストの一例を示す図である。 図5のステップS512で代理サーバからクライアントPCに返信されるHTTPレスポンス(SSDPレスポンス)の一例を示す図である。 代理サーバがサポートしているUPnPデバイスのXML Device Descriptionの記述内容の基本的な一例を示す図である。 代理サーバが公開しているプレゼンテーションページをクライアントPCの表示部に表示した場合の画面表示例を示す図である。 図10に示すプレゼンテーションページを用いて印刷を行う時にクライアントPCで実行される印刷処理の手順を示すフローチャートである。 一般的な代理サーバの印刷ジョブ制御部の機能構成を表す機能ブロック図である。 図10に示すプレゼンテーションページを用いて印刷が行われたときの代理サーバで行われる状態検出処理の手順と、クライアントPCで実行される代理サーバを介したプリンタの状態表示処理の手順とを示すフローチャートである。 一般的な代理サーバにおけるプリンタドライバの構成を示すブロック図である。 文字列・数値変換テーブルの内容例を表す図である。 図5のステップS512の後にUPnPプロトコル上で代理サーバからクライアントPCに送られるSCPDの一部を表すXMLのデータ例を示す図である。 図11のステップS1102で送られる印刷設定情報の内容例を表す図である。 図11のステップS1102で送られる印刷設定情報の内容例を表す図である。 代理サーバの印刷ジョブ制御部における印刷ジョブ生成処理を説明するフローチャートである。 本発明の実施の形態に係る代理サーバがサポートしているUPnPデバイスのXML Device Descriptionの記述内容の一例を示す図である。 本発明の実施の形態に係る代理サーバにおいて、図5のステップS512の後にUPnPプロトコル上で代理サーバからクライアントPCに送られるSCPDの一部の具体例を表すXMLのデータである。 本発明の実施の形態に係る代理サーバにおいて、図11のステップS1102で送信される印刷設定情報の内容例を表す図である。 本発明の実施の形態に係る代理サーバにおいて、図11のステップS1102で送信される印刷設定情報の内容例を表す図である。 本発明の実施の形態に係る代理サーバにおける印刷ジョブ制御部の機能構成を説明する機能ブロック図である。 本発明の実施の形態に係る代理サーバの印刷ジョブ制御部における印刷ジョブ生成処理を表すフローチャートである。 図25のステップS2503におけるDEVMODEの更新の処理を表すフローチャートである。 本実施の形態に係る周辺装置制御システムで読み出し可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを示す図である。 Service Template Version 1.01に記述されている規格の一部を説明する図である。

Claims (16)

  1. 周辺装置を制御するための文字列を処理するクライアントと、周辺装置と、前記周辺装置を制御するサーバとを備える周辺装置制御システムであって、
    前記サーバは、前記周辺装置を制御するための文字列要素と、当該文字列要素に対応する数値で表される設定情報であって、DEVMODE構造体において設定される設定情報を前記クライアントに対して通知する通知手段と、
    前記クライアントから送信された設定情報に含まれる数値に従って前記周辺装置を制御する制御手段とを有し、
    前記クライアントは、
    前記周辺装置に対する指示がなされると、前記周辺装置を制御するための前記文字列要素を含む設定情報に対して、前記周辺装置を制御するための前記DEVMODE構造体において設定される情報であって、前記文字列要素に対応する情報を数値として追加した設定情報を前記サーバに対して送信する送信手段を有することを特徴とする周辺装置制御システム。
  2. 周辺装置を制御するための文字列を処理するクライアント機能と、前記周辺装置を制御するサーバ機能とを備える情報処理装置であって、
    前記サーバ機能は、前記周辺装置を制御するための文字列要素と、当該文字列要素に対応する数値で表される設定情報であって、DEVMODE構造体において設定される設定情報を前記クライアント機能に対して通知する通知手段と、
    前記クライアント機能から受け取った設定情報に含まれる数値に従って前記周辺装置を制御する制御手段とを有し、
    前記クライアント機能は、
    前記周辺装置に対する指示がなされると、前記周辺装置を制御するための前記文字列要素を含む設定情報に対して、前記周辺装置を制御するための前記DEVMODE構造体において設定される情報であって、前記文字列要素に対応する情報を数値として追加した設定情報を前記サーバ機能に対して通知する手段を有することを特徴とする情報処理装置。
  3. 前記設定情報を設定するためのユーザインターフェースを更に有し、前記ユーザインターフェースは前記文字列要素を表示することを特徴とする請求項2に記載の情報処理装置。
  4. 前記ユーザインターフェースを表示するWebブラウザを更に有することを特徴とする請求項3に記載の情報処理装置。
  5. 前記周辺装置はプリンタであり、前記文字列要素と前記数値は、用紙サイズ、用紙の種類、印刷品位の少なくともいずれかを表すことを特徴とする請求項2乃至4のいずれか1項に記載の情報処理装置。
  6. 前記文字列要素は、前記プリンタのメーカ名、機種に関する情報を含むことを特徴とする請求項5に記載の情報処理装置。
  7. 前記設定情報は、前記文字列要素に含まれる所定の文字列に特有の数値を用いて設定されていることを特徴とする請求項2に記載の情報処理装置。
  8. 前記設定情報は、前記文字列要素に含まれるメーカ名に特有の数値を用いて設定されていることを特徴とする請求項6に記載の情報処理装置。
  9. ネットワークを介して接続されたクライアント情報処理装置からの制御情報を入力して、接続されている周辺装置制御する情報処理装置であって、
    前記周辺装置を制御するための文字列要素と、当該文字列要素に対応する数値で表される設定情報であって、DEVMODE構造体において設定される設定情報を前記クライアント情報処理装置に通知する通知手段と、
    前記クライアント情報処理装置から送信された設定情報に含まれる数値に従って前記周辺装置を制御する制御手段と、
    を有することを特徴とする情報処理装置。
  10. 前記周辺装置はプリンタであり、前記文字列要素と前記数値は、用紙サイズ、用紙の種類、印刷品位の少なくともいずれかを表すことを特徴とする請求項9に記載の情報処理装置。
  11. 前記文字列要素は、前記プリンタのメーカ名、機種及び製造番号に関する情報を含むことを特徴とする請求項10に記載の情報処理装置。
  12. 周辺装置を制御するための文字列を処理するクライアントと、周辺装置と、前記周辺装置を制御するサーバとを備える周辺装置制御システムに適用される周辺装置制御方法であって、
    前記サーバが、前記周辺装置を制御するための文字列要素と、当該文字列要素に対応する数値で表される設定情報であって、DEVMODE構造体において設定される設定情報を前記クライアントに対して通知する工程と、
    前記周辺装置に対する指示がなされると、前記クライアントが、前記周辺装置を制御するための前記文字列要素を含む設定情報に対して、前記周辺装置を制御するための前記DEVMODE構造体において設定される情報であって、前記文字列要素に対応する情報を数値として追加した設定情報を前記サーバに対して送信する工程と、
    前記サーバが、前記設定情報を前記クライアントから受信すると、前記設定情報に含まれる数値に従って前記周辺装置を制御する工程と、
    を有することを特徴とする周辺装置制御方法。
  13. 周辺装置を制御するための文字列を処理するクライアント機能と、前記周辺装置を制御するサーバ機能とを備える情報処理装置の周辺装置制御方法であって、
    前記サーバ機能は、前記周辺装置を制御するための文字列要素と、当該文字列要素に対応する数値で表される設定情報であって、DEVMODE構造体において設定される設定情報を前記クライアント機能に対して通知する通知工程と、
    前記クライアント機能から受け取った設定情報に含まれる数値に従って前記周辺装置を制御する制御工程とを有し、
    前記クライアント機能は、
    前記周辺装置に対する指示がなされると、前記周辺装置を制御するための前記文字列要素を含む設定情報に対して、前記周辺装置を制御するための前記DEVMODE構造体において設定される情報であって、前記文字列要素に対応する情報を数値として追加した設定情報を前記サーバ機能に対して通知する工程を有することを特徴とする情報処理装置の周辺装置制御方法。
  14. 周辺装置を制御するための文字列を処理するクライアントと、周辺装置と、前記周辺装置を制御するサーバとを備える周辺装置制御システムに適用される周辺装置制御方法をコンピュータに実行させるためのプログラムであって、
    前記サーバが、前記周辺装置を制御するための文字列要素と、当該文字列要素に対応する数値で表される設定情報であって、DEVMODE構造体において設定される設定情報を前記クライアントに対して通知する工程と、
    前記周辺装置に対する指示がなされると、前記クライアントが、前記周辺装置を制御するための前記文字列要素を含む設定情報に対して、前記周辺装置を制御するための前記DEVMODE構造体において設定される情報であって、前記文字列要素に対応する情報を数値として追加した設定情報を前記サーバに対して送信する工程と、
    前記サーバが、前記設定情報を前記クライアントから受信すると、前記設定情報に含まれる数値に従って前記周辺装置を制御する工程と、
    を有することを特徴とするプログラム。
  15. コンピュータを、周辺装置と通信する情報処理装置として機能させるためのプログラムであって、前記コンピュータを、
    周辺装置を制御するための文字列を処理するクライアント機能と、前記周辺装置を制御するサーバ機能とを備える情報処理装置であって、
    前記サーバ機能は、前記周辺装置を制御するための文字列要素と、当該文字列要素に対応する数値で表される設定情報であって、DEVMODE構造体において設定される設定情報を前記クライアント機能に対して通知する通知手段と、
    前記クライアント機能から受け取った設定情報に含まれる数値に従って前記周辺装置を制御する制御手段とを有し、
    前記クライアント機能は、
    前記周辺装置に対する指示がなされると、前記周辺装置を制御するための前記文字列要素を含む設定情報に対して、前記周辺装置を制御するための前記DEVMODE構造体において設定される情報であって、前記文字列要素に対応する情報を数値として追加した設定情報を前記サーバ機能に対して通知する手段を有する情報処理装置として機能させるためのプログラム。
  16. コンピュータを、クライアント情報処理装置を制御する情報処理装置として機能させるためのプログラムであって、前記コンピュータを、
    ネットワークを介して接続されたクライアント情報処理装置からの制御情報を入力して、接続されている周辺装置制御する情報処理装置であって、
    前記周辺装置を制御するための文字列要素と、当該文字列要素に対応する数値で表される設定情報であって、DEVMODE構造体において設定される設定情報を前記クライアント情報処理装置に通知する通知手段と、
    前記クライアント情報処理装置から送信された設定情報に含まれる数値に従って前記周辺装置を制御する制御手段と、を有することを特徴とする情報処理装置として機能させるためのプログラム。
JP2003383041A 2003-11-12 2003-11-12 情報処理装置、周辺装置制御システム及び情報処理装置に適用される周辺装置制御方法並びにそのプログラム Expired - Fee Related JP4467955B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003383041A JP4467955B2 (ja) 2003-11-12 2003-11-12 情報処理装置、周辺装置制御システム及び情報処理装置に適用される周辺装置制御方法並びにそのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003383041A JP4467955B2 (ja) 2003-11-12 2003-11-12 情報処理装置、周辺装置制御システム及び情報処理装置に適用される周辺装置制御方法並びにそのプログラム

Publications (2)

Publication Number Publication Date
JP2005148953A JP2005148953A (ja) 2005-06-09
JP4467955B2 true JP4467955B2 (ja) 2010-05-26

Family

ID=34691925

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003383041A Expired - Fee Related JP4467955B2 (ja) 2003-11-12 2003-11-12 情報処理装置、周辺装置制御システム及び情報処理装置に適用される周辺装置制御方法並びにそのプログラム

Country Status (1)

Country Link
JP (1) JP4467955B2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4508114B2 (ja) * 2006-01-12 2010-07-21 セイコーエプソン株式会社 ネットワーク型プラグアンドプレイに対応したネットワーク中継制御
US7804612B2 (en) * 2006-01-31 2010-09-28 Ricoh Company, Ltd. Network printing with driverless clients
US7899964B2 (en) * 2006-07-13 2011-03-01 Samsung Electronics Co., Ltd. Method and system for providing universal plug and play resource surrogates
US8214548B2 (en) 2007-08-29 2012-07-03 Ricoh Company, Ltd. Capability-based control device driver of a computer peripheral device
US8589866B2 (en) 2007-08-29 2013-11-19 Ricoh Company, Ltd. Automatically generating capability-based computer peripheral device drivers
US8271703B2 (en) 2008-10-17 2012-09-18 Ricoh Company, Ltd. Providing device defined user interface modifiers to a computer system
US8314950B2 (en) 2009-01-26 2012-11-20 Ricoh Company, Ltd. Approach for using settings mismatch tolerance levels to handle mismatches between print job settings and printing device settings
US8427675B2 (en) 2009-01-27 2013-04-23 Ricoh Company, Ltd. Automatically updating a printer driver with new printing device features
US8526020B2 (en) 2009-03-06 2013-09-03 Ricoh Company, Ltd. Paper size support for a print system
US8773687B2 (en) 2009-03-06 2014-07-08 Ricoh Company, Ltd. Driverless architecture for printing systems
US8520225B2 (en) 2009-03-06 2013-08-27 Ricoh Company, Ltd. Print driver localization support from printing device to support multiple user profiles
US8310706B2 (en) 2009-07-31 2012-11-13 Ricoh Company, Ltd. Dynamic and real-time print schema documents
US8405853B2 (en) 2009-07-31 2013-03-26 Ricoh Company, Ltd. Dynamic DEVMODE support
US8289551B2 (en) 2009-08-03 2012-10-16 Ricoh Company, Ltd. Approach for processing print data without a client print driver

Also Published As

Publication number Publication date
JP2005148953A (ja) 2005-06-09

Similar Documents

Publication Publication Date Title
US9602678B2 (en) Peripheral device control system and method
US8589866B2 (en) Automatically generating capability-based computer peripheral device drivers
US7316022B2 (en) Information processing apparatus, information processing method, alternate response apparatus, response method, control program, and network system
JP5581738B2 (ja) 印刷を行うための方法、装置及び記録媒体
JP5655402B2 (ja) プリントシステム
JP5393427B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP4467955B2 (ja) 情報処理装置、周辺装置制御システム及び情報処理装置に適用される周辺装置制御方法並びにそのプログラム
JP5047067B2 (ja) 情報処理装置、データ出力システム、データ生成プログラム及びその記録媒体
JP5434435B2 (ja) インターネットに接続される端末装置
JP2009059364A (ja) データ処理システム、コンピュータ読取可能なデータ記憶媒体及び方法
US8611248B2 (en) Information processing apparatus, device information display method, and computer-readable storage medium
EP2284684A2 (en) Dynamic and real-time print schema documents
JP5652997B2 (ja) 情報処理装置、デバイス情報表示方法、及びコンピュータプログラム
US8422040B2 (en) Image forming system and method, management apparatus, and recording medium
JP4963514B2 (ja) 通信システム、情報処理装置、印刷制御方法、及びプログラム
JP5893295B2 (ja) 情報処理装置、表示方法及びプログラム
JP2007156994A (ja) ホスト装置及び印刷制御方法
JP4912093B2 (ja) 情報処理方法、情報処理装置、プログラム及び記憶媒体
JP2004005015A (ja) 探索方法、探索プログラム及び情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061108

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090416

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090427

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090626

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091127

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100126

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100219

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100224

R150 Certificate of patent or registration of utility model

Ref document number: 4467955

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130305

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140305

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees