JP6155607B2 - 通信中継プログラム、及び、通信中継装置 - Google Patents

通信中継プログラム、及び、通信中継装置 Download PDF

Info

Publication number
JP6155607B2
JP6155607B2 JP2012253270A JP2012253270A JP6155607B2 JP 6155607 B2 JP6155607 B2 JP 6155607B2 JP 2012253270 A JP2012253270 A JP 2012253270A JP 2012253270 A JP2012253270 A JP 2012253270A JP 6155607 B2 JP6155607 B2 JP 6155607B2
Authority
JP
Japan
Prior art keywords
printer
communication
request
information
processing apparatus
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.)
Active
Application number
JP2012253270A
Other languages
English (en)
Other versions
JP2014102620A (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.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
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 Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2012253270A priority Critical patent/JP6155607B2/ja
Priority to US14/083,497 priority patent/US9734437B2/en
Publication of JP2014102620A publication Critical patent/JP2014102620A/ja
Application granted granted Critical
Publication of JP6155607B2 publication Critical patent/JP6155607B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1827Accessing generic data, e.g. fonts
    • G06K15/1828Accessing generic data, e.g. fonts characterized by the kind of storage accessed
    • G06K15/183Removable memories, e.g. font cartridges
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1205Improving or facilitating administration, e.g. print management resulting in increased flexibility in print job configuration, e.g. job settings, print requirements, job tickets
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1236Connection management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1253Configuration of print job parameters, e.g. using UI at the client
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1288Remote printer device, e.g. being remote from client or server in client-server-printer device configuration
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1292Mobile client, e.g. wireless printing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/002Interacting with the operator
    • G06K15/007Interacting with the operator only remotely, e.g. at a host computer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Description

通信を中継する技術に関する。
従来、画像処理装置にWebサーバ機能を備え、端末装置で実行されるWebブラウザに画像処理装置の設定画面などを表示する技術が開示されている(例えば特許文献1参照)。
また、画像処理装置と端末装置とをインターネットで接続し、インターネットを介して画像処理装置に画像を処理させるIPP(Internet Printing Protocol)と呼ばれる規格が知られている。
そして、画像処理装置と端末装置とがUSB(Universal Serial Bus)によって接続されている環境において上述したIPPによる通信を行うためのIPP over USBという規格のドラフト(2012年11月19日時点においてVersion 1.0 Draft 20)が知られている。
特開2011−257945号公報
IPP over USBでは端末装置で通信中継プログラムが実行される。Webブラウザなどのクライアントアプリケーションは画像処理装置への処理要求をIPPにより通信中継プログラムに送信する。通信中継プログラムはクライアントアプリケーションから受信した処理要求をUSBの通信プロトコルにより端末装置に接続されている画像処理装置に送信する。
IPP over USBのドラフトでは、画像処理装置にHTTPサーバ機能を持たせて、HTTPプロトコルによる画像処理装置の設定の管理を行うことも記載されている。
ところで、IPP over USBを実現するに当たって、端末装置が複数の画像処理装置と通信を行う構成も考えられる。しかしながら、従来はクライアントアプリケーションから通信中継プログラムに処理要求を送信するとき、例えば複数の画像処理装置の中からその処理要求の送信先の画像処理装置を特定するといった構成は考慮されていなかった。
本明細書では、クライアントアプリケーションと複数の画像処理装置との間で通信を中継する場合に、クライアントアプリケーションから送信される処理要求の送信先の画像処理装置を特定することができる技術を開示する。
本明細書によって開示される通信中継プログラムは、画像処理装置と通信回線を介して通信可能に接続されている情報処理装置で実行される通信中継プログラムであって、前記画像処理装置に固有の通信パスを生成する通信パス生成処理と、前記画像処理装置の識別情報の選択を受け付ける画面を表示するための選択画面情報であって、当該画面で前記識別情報を選択すると当該選択した識別情報によって識別される前記画像処理装置の前記通信パスを指定した処理要求がクライアントアプリケーションによって送信されるように構成された選択画面情報を生成する画面情報生成処理と、前記画面情報生成処理によって生成された前記選択画面情報を前記クライアントアプリケーションに送信する画面情報送信処理と、前記クライアントアプリケーションから前記処理要求を受信する要求受信処理と、前記要求受信処理によって受信された前記処理要求を当該処理要求で指定された前記通信パスに対応する前記画像処理装置に送信する要求送信処理と、を前記情報処理装置に実行させる。
上記通信中継プログラムによると、クライアントアプリケーションと複数の画像処理装置との間で通信を中継する場合に、クライアントアプリケーションから送信される処理要求の送信先の画像処理装置を特定することができる。
また、上記通信中継プログラムは、前記通信パス生成処理において、ネットワークポートを含む前記通信パスを生成してもよい。
上記通信中継プログラムによると、どのネットワークポートを介してクライアントアプリケーションから処理要求を受信したかによって処理要求の送信先の画像処理装置を特定することができる。
また、上記通信中継プログラムは、前記画面情報送信処理において、前記クライアントアプリケーションから特定のネットワークポートが指定された処理要求を受信した場合に、前記画面情報生成処理により生成された前記選択画面情報を前記クライアントアプリケーションに送信してもよい。
例えばクライアントアプリケーションのユーザが目的の画像処理装置のネットワークポートを知っている場合は、ユーザはそのネットワークポートを指定した処理要求を送信することにより、上記画面で画像処理装置を選択することなく目的の画像処理装置に処理要求を送信することができる。
これに対し、目的の画像処理装置のネットワークポートを知らない場合は、特定のネットワークポートを指定した処理要求を送信することにより、選択画面情報によって表示される画面で目的の画像処理装置を選択することができる。
また、上記通信中継プログラムは、前記画面情報送信処理において、前記クライアントアプリケーションから受信した処理要求で指定された前記通信パスにより前記画像処理装置を特定できない場合に、前記画面情報生成処理により生成された前記選択画面情報を前記クライアントアプリケーションに送信してもよい。
上記通信中継プログラムによると、クライアントアプリケーションから受信した処理要求で指定された通信パスにより画像処理装置を特定できない場合は選択画面情報をクライアントアプリケーションに送信するので、クライアントアプリケーションに画像処理装置を特定できる通信パスが指定されている処理要求を送信し直させることができる。
また、上記通信中継プログラムは、前記画面情報送信処理において、前記クライアントアプリケーションが特定のアプリケーションである場合に、前記画面情報生成処理により生成された前記選択画面情報を前記クライアントアプリケーションに送信してもよい。
アプリケーションによっては選択画面情報を受信しても画面を表示できない場合もある。
上記通信中継プログラムによると、クライアントアプリケーションが特定のアプリケーションである場合に選択画面情報を送信するので、画面を表示できないアプリケーションに選択画面情報を送信してしまわないようにすることができる。
また、特定のアプリケーションはWebブラウザであってもよい。
上記通信中継プログラムによると、ユーザはクライアントアプリケーション、すなわちWebブラウザで画像処理装置の識別情報を選択できる。
また、上記通信中継プログラムは、前記画像処理装置が個別に有する装置固有情報と前記通信パス生成処理によって生成された前記通信パスとを対応付けて記憶装置に記憶する記憶処理を前記情報処理装置に実行させ、前記要求送信処理において、前記要求受信処理によって受信された前記処理要求を当該処理要求で指定された前記通信パスに対応付けられている前記装置固有情報によって識別される前記画像処理装置に送信してもよい。
上記通信中継プログラムによると、装置識別情報と通信パスとを対応付けて記憶しておくことにより、通信パスのみでは画像処理装置を特定できない場合であっても通信パスに対応する画像処理装置を特定することができる。
また、上記通信中継プログラムは、前記記憶装置に記憶されている各前記装置固有情報について、当該装置固有情報によって識別される前記画像処理装置が前記情報処理装置に接続されているか否かを判断する接続判断処理を前記情報処理装置に実行させ、前記画面情報生成処理において、前記接続判断処理によって接続されていると判断された前記画像処理装置の識別情報の選択を受け付ける前記選択画面情報を生成してもよい。
上記通信中継プログラムによると、情報処理装置に接続されていない画像処理装置に処理要求が送信されてしまわないようにすることができる。
また、上記通信中継プログラムは、前記画面情報生成処理において、前記記憶装置に記憶されている前記装置固有情報によって識別される前記画像処理装置のうち前記接続判断処理によって前記情報処理装置に接続されていないと判断された前記画像処理装置の識別情報が前記画面に選択不能に表示される前記選択画面情報を生成してもよい。
上記通信中継プログラムによると、過去に情報処理装置に接続されていた画像処理装置であって現在は情報処理装置に接続されていない画像処理装置を知ることができる。
また、上記通信中継プログラムは、前記画面情報生成処理において、前記記憶装置に記憶されている前記通信パスを削除する指示を受け付ける削除ボタンが前記画面に表示され、前記クライアントアプリケーションで前記削除ボタンの押下が受け付けられると通信パス削除要求が送信されるように構成されている前記選択画面情報を生成し、前記クライアントアプリケーションから前記通信パス削除要求を受信する削除要求受信処理と、前記削除要求受信処理によって前記通信パス削除要求が受信されると、前記記憶装置に記憶されている前記通信パスと前記装置固有情報とを削除する削除処理と、を前記情報処理装置に実行させてもよい。
上記通信中継プログラムによると、ユーザは削除ボタンを押下することにより、記憶装置に記憶されているポート番号と識別情報とを削除することができる。
また、上記通信中継プログラムは、前記通信パス生成処理において、前記画像処理装置が個別に有する装置固有情報を含む前記通信パスを生成してもよい。
上記通信中継プログラムによると、処理要求の送信先の画像処理装置を通信パスから特定することができる。
また、前記通信回線はユニバーサルシリアルバスであってもよい。
上記通信中継プログラムによると、情報処理装置と画像処理装置とがユニバーサルシリアルバスによって通信可能に接続されている場合に、クライアントアプリケーションから送信された処理要求の送信先の画像処理装置を特定することができる。
なお、本明細書によって開示される技術は、通信中継システム、通信中継装置、通信中継方法、通信中継プログラムを記録した記録媒体等の種々の態様で実現することができる。
上記の通信中継プログラムによると、クライアントアプリケーションと複数の画像処理装置との間で通信を中継する場合に、クライアントアプリケーションから送信される処理要求の送信先の画像処理装置を特定することができる。
実施形態に係るPCの電気的構成を示すブロック図。 プリンタの電気的構成を示すブロック図。 プリンタの設定画面を示す模式図。 PCのプログラム構成、及び、プリンタの機能を示す模式図。 通信処理の全体的な流れを示すシーケンスチャート。 プリンタ選択画面を示す模式図。 プリンタ選択画面の画面データを示す模式図。 Webブラウザから処理要求を受信する処理のフローチャート(その1)。 Webブラウザから処理要求を受信する処理のフローチャート(その2)。 プリンタ選択画面生成処理のフローチャート(その1)。 プリンタ選択画面生成処理のフローチャート(その2)。 プリンタとの通信処理のフローチャート。
実施形態を図1ないし図12によって説明する。
(1)画像処理システム
先ず、図1を参照して、画像処理システム1について説明する。画像処理システム1はパーソナルコンピュータ(PCと記す)2と複数のプリンタ3(3a〜3c)とで構成されている。PC2とプリンタ3a〜3cとはUSB(Universal Serial Bus、ユニバーサルシリアルバス)ケーブル4(4a〜4c)によって通信可能に接続されている。
プリンタ3a〜3cはそれぞれUSBプリンタクラスデバイスとして構成されている。以降の説明において単にプリンタ3というときはプリンタ3a〜3cのうちいずれか一つのことをいうものとする。なお、プリンタ3a〜3cは同一機種であってもよいし、互いに異なる機種であってもよい。
PC2は情報処理装置及び通信中継装置の一例である。プリンタ3は画像処理装置の一例である。また、USBは通信回線の一例である。
PC2はプリンタ3との間でUSBを介して少なくとも以下の二つの通信(a)及び(b)を行うことができる。
(a)プリンタ3を設定するための通信
(b)プリンタ3に印刷データを送信するための通信
これらの通信はIPP over USB規格(2012年11月19日時点においてVersion 1.0 Draft 20)に従って行われる。IPP(Internet Printing Protocol)とは、HTTP(HyperText Transfer Protocol)をベースにした規格であって、インターネットやLAN(Local Area Network)などのTCP/IPネットワークを介してプリンタ3と通信するための規格である。
IPP over USBは、USBによって接続されている環境において上述したIPPによる通信を実現するための規格である。IPP over USBではIPPの通信データがUSBのパケットに格納されて送受信される。なお、本実施形態はIPP over USB規格に完全に準拠するわけではなく、その拡張仕様となっている。
(1−1)PCの電気的構成
図1を参照して、PC2の電気的構成について説明する。PC2は、CPU21、ROM22、RAM23、表示部24、操作部25、記憶部26、及び、USBホストインタフェース部(図1ではUSBホストIF部と記す)27を備えて構成されている。
CPU21はROM22や記憶部26に記憶されているプログラムを実行することによってPC2の各部を制御する。ROM22にはCPU21によって実行されるプログラムやデータなどが記憶されている。RAM23はCPU21が各種の処理を実行するための主記憶装置として用いられる。CPU21は処理部の一例である。
表示部24は、液晶ディスプレイなどの表示装置、表示装置を駆動するディスプレイ駆動回路などを備えて構成されている。
操作部25は、キーボードやマウス、それらが接続されるインタフェースなどで構成されている。
記憶部26は、ハードディスクやフラッシュメモリなどの不揮発性のメモリを用いて各種のプログラムやデータを記憶する装置である。記憶部26には、オペレーティングシステム(OSと記す)41、Webブラウザ42、IPP/USB変換プログラム43などのプログラムが記憶されている。これらのプログラムはCPU21によって実行される。
IPP/USB変換プログラム43は通信中継プログラムの一例である。Webブラウザ42はクライアントアプリケーション及び特定のアプリケーションの一例である。また、記憶部26は記憶装置の一例である。
USBホストインタフェース部27は、USBホストコントローラ、USBケーブル4が接続されるジャックなどを備えて構成されており、USBケーブル4を介してプリンタ3と通信可能に接続されている。USBホストインタフェース部27は通信部の一例である。
(1−2)プリンタ
次に、図2を参照して、プリンタ3の電気的構成について説明する。プリンタ3は、制御部31、USBクライアントインタフェース部(図2ではUSBクライアントIF部と記す)32、印刷部33、操作部34、及び、記憶部35を備えて構成されている。
制御部31は、CPU31a、ROM31b、RAM31cなどを備えて構成されている。CPU31aはROM31bや記憶部35に記憶されている制御プログラムを実行することによってプリンタ3の各部を制御する。ROM31bにはCPU31aによって実行される制御プログラムや各種のデータなどが記憶されている。RAM31cはCPU31aが各種の処理を実行するための主記憶装置として用いられる。
印刷部33は、印刷用紙などのシートに電子写真方式やインクジェット方式などで画像を印刷する装置である。また、印刷部33は印刷用紙が収容される第1のトレイ、及び、第2のトレイを備えている。
操作部34は、液晶ディスプレイなどの表示装置や各種の操作ボタンなどを備えて構成されている。
記憶部35は、ハードディスクやフラッシュメモリなどの不揮発性のメモリを用いて各種のデータを記憶する装置である。
USBクライアントインタフェース部32は、USBケーブル4が接続されるジャックなどを備えて構成されており、USBケーブル4を介してPC2と通信可能に接続されている。
また、USBの仕様により、USBクライアントインタフェース部32にはデバイスディスクリプタ、ストリングディスクリプタ、ベンダクラスディスクリプタ、インタフェースディスクリプタなどの各種のディスクリプタが記憶されている。ディスクリプタはプリンタ3に関する情報である。
例えばデバイスディスクリプタにはプリンタ3のベンダーIDやプロダクトIDなどが記述されている。インタフェースディスクリプタには後述するインタフェースを構成するための情報が記述されている。ストリングディスクリプタは、インデックスに対応した文字列情報を返すディスクリプタである。PC2は対応するインデックスを指定することにより「ベンダー名」、「モデル名」、「シリアル番号」をプリンタ3より取得することができる。このシリアル番号は同一モデルであっても個別に付与されており、これらを組み合わせることにより、デバイスを特定することが可能である。
(2)プリンタの設定画面
次に、図3を参照して、プリンタ3の設定画面50について説明する。設定画面50はWebブラウザ42によって表示されるものである。設定画面50の画面データはHTML(HyperText Markup Language)やXML(Extensible Markup Language)によって記述されている。以後はHTMLで記述されているものとして説明する。
詳しくは後述するが、画面データはプリンタ3のWebサーバ機能62(図4参照)が設定画面CGI(Common Gateway Interface )を実行することによって生成される。Webブラウザ42はIPP over USBによってプリンタ3からその画面データを取得して設定画面50を表示する。設定画面50の画面データのファイル名はmain.htmlであるとする。
図3に示す設定画面50では、用紙サイズ51a、給紙トレイ51b、及び、解像度51cを設定することができる。また、設定画面50には画像52a、画像52b、画像52cなどの部品画像や設定ボタン53が表示される。ここでは画像52a〜画像52cをそれぞれGIF1、GIF2、GIF3というものとする。
なお、図3に示す設定画面50は一例であり、設定画面50はプリンタ3の機種によって異なる。
(3)PCのプログラム構成、及び、プリンタの機能
次に、図4を参照して、IPP over USBによって通信を行うためのPC2のプログラム構成、及び、プリンタ3の機能について説明する。
(3−1)PCのプログラム構成
先ず、PC2のプログラム構成について説明する。PC2は、IPP/USB変換プログラム43、Webブラウザ42、及び、スプーラ44を実行する。
IPP/USB変換プログラム43は、Webブラウザ42とプリンタ3のIPP機能61との間でプリンタ3を設定するための通信(a)を中継するとともに、スプーラ44とIPP機能61との間でプリンタ3に印刷データを送信するための通信(b)を中継するプログラムである。
IPP/USB変換プログラム43はhttp://localhostに対するサーバープログラムとして常駐している。このサーバープログラムは、ポート80、ポート631、及び、予め予約された複数の予約ポートを監視するように構成されている。なお、予約ポートとはTCP/IPの主要なプロトコルで使用されているポート番号(ウエルノウンポート)以外で、あらかじめ他のプログラムから使用されないように予約されたものである。複数の予約ポート番号は不連続であってもよい。予約ポートのポート番号は記憶部26に記憶されている。localhostはPC2のIPアドレスであって、具体的には例えば127.0.0.1である。
IPP/USB変換プログラム43はWebブラウザ42とHTTPによって通信するとともに、スプーラ44とIPPによって通信する。
また、IPP/USB変換プログラム43はIPP機能61とUSBを介して通信する。IPP/USB変換プログラム43の詳細については後述する。
Webブラウザ42はユーザがプリンタ3の設定をするためのユーザインタフェースとして用いられるものである。Webブラウザ42としては一般に利用されているものを用いることができる。
PC2とプリンタ3とがUSBによって接続されている環境では、Webブラウザ42はlocalhostの前記ポートに、設定画面50の画面データの送信を要求するHTTPリクエストや、設定画面50上に表示する部品画像の送信を要求するHTTPリクエストなどを送信する。これらのHTTPリクエストはそれぞれ処理要求の一例である。以降の説明ではHTTPリクエストを単に処理要求という。
なお、処理要求はこれらに限られるものではない。例えばユーザが設定画面50で設定した設定値をプリンタ3に設定する要求(PUTコマンドやPOSTコマンドなど)も処理要求として送信される。
IPP/USB変換プログラム43はWebブラウザ42から処理要求を受信すると、USBを介してIPP機能61にその処理要求を送信する。
スプーラ44は印刷データをスプールするプログラムである。スプーラ44はOS41の一部として提供される。PC2とプリンタ3とがUSBによって接続されている環境では、スプーラ44はIPP/USB変換プログラム43とIPPによって通信することにより、IPP/USB変換プログラム43に印刷データを送信する。
IPP/USB変換プログラム43はスプーラ44から印刷データを受信すると、USBを介してプリンタ3のIPP機能61にその印刷データを送信する。
なお、Webブラウザ42及びスプーラ44はPC2で実行されてもよいし、PC2と通信可能に接続されている外部の通信端末5で実行されてもよい。
(3−2)プリンタの機能
次に、プリンタ3の機能について説明する。プリンタ3は、IPP機能61、Webサーバ機能62、及び、印刷部33を備えている。
IPP機能61はプリンタ3の制御部31が制御プログラムを実行することによって実現される機能である。IPP機能61はIPP/USB変換プログラム43とUSBを介して通信する。また、IPP機能61はWebサーバ機能62とHTTPによって通信するとともに、印刷部33と所定のプロトコルに従って通信する。
Webサーバ機能62もプリンタ3の制御部31が制御プログラムを実行することによって実現される。Webサーバ機能62は画面データの送信が要求されると設定画面CGIを実行して設定画面50の画面データを生成する処理や、設定画面50で設定された設定値を受信するとプリンタ設定CGIを実行してプリンタ3にその設定値を設定する処理などを実行する。
(4)USBにおけるインタフェース
次に、USBにおけるインタフェースについて説明する。USBでは物理的に一本のUSBケーブル4にインタフェースと呼ばれる1以上の論理的な通信回線が構成される。
USBではコントロール転送を行うためのエンドポイント0と呼ばれる特殊なエンドポイントが必ず構成される。エンドポイント0は双方向通信が可能なエンドポイントである。インタフェースはエンドポイント0を介してプリンタ3から取得されるインタフェースディスクリプタに従って構成される。各インタフェースは通常1ないし複数のエンドポイントを有する。
本実施形態のプリンタ3ではエンドポイント0を用いたインタフェースであるインタフェース0の他に、インタフェース1及びインタフェース2が構成されるものとする。さらに、インタフェース1及びインタフェース2はそれぞれリード用エンドポイントおよびライト用エンドポイントを有し、それらを使用することにより双方向通信を実現している。
そして、前述したプリンタ3を設定するための通信(a)はインタフェース1を用いて行われ、プリンタ3に印刷データを送信するための通信(b)はインタフェース2を用いて行われるものとする。
なお、インタフェース2を構成せず、プリンタ3を設定するための通信(a)、及び、プリンタ3に印刷データを送信するための通信(b)をどちらもインタフェース1を用いて行ってもよい。
(5)複数のプリンタがUSBによって接続されている場合の課題
次に、1台のPC2に複数のプリンタ3がUSBによって接続されている場合の課題について説明する。ここではプリンタ3を設定するための通信(a)を例に説明する。
プリンタ3とPC2とがUSBによって接続されている環境では、通常、ユーザはWebブラウザ42に以下のURLを入力することによってIPP/USB変換プログラム43に設定画面50の画面データの送信を要求する。
http://localhost/main.html
上述したURLにはポート番号が設定されていないので、Webブラウザ42は上述したURLが入力されるとlocalhostのポート番号80によって識別される論理的な通信ポートにセッションの確立を要求する。ポート番号80は一般的なWebサーバのデフォルトのポート番号である。
ポート番号はネットワークポート、及び、通信パスの一例である。またポート番号80は特定のネットワークポートの一例である。
前述したようにIPP/USB変換プログラム43はポート番号80の通信ポートを監視しており、セッションの確立が要求されるとその通信ポートを介してWebブラウザ42との間にセッションを確立する。Webブラウザ42はセッションが確立されるとそのセッションを介してIPP/USB変換プログラム43に以下の処理要求Aを送信する。
GET /main.html HTTP/1.0 ・・・ 処理要求A
Webブラウザ42はネットワークを介して通信相手の装置にアクセスするため、通常は通信相手の装置を選択するにはIPアドレスを指定すればよい。しかし本実施形態の構成ではIPアドレスはlocalhostに限定される。そのためIPアドレスの指定によってプリンタ3a〜3cのひとつを選択することはできない。
このため、プリンタ3a〜3cがUSBによってPC2に接続されている環境では、IPP/USB変換プログラム43は処理要求Aを受信しても、その処理要求Aの送信先のプリンタ3を特定できない。
そこで、IPP/USB変換プログラム43は、プリンタ3を識別するための装置固有情報に対して固有のポート番号を割り当て、割り当てたポート番号を用いて処理要求の送信先のプリンタ3を特定する。以下、具体的に説明する。
(6)IPP/USB変換プログラムによる通信処理の全体的な流れ
先ず、図5を参照して、通信処理の全体的な流れについて説明する。ここでは前述したプリンタ3を設定するための通信(a)を例に説明する。また、ここでは設定の対象としてプリンタ3aを例に説明する。
ユーザがWebブラウザ42に前述したURLを入力すると、Webブラウザ42はlocalhostのポート番号80の通信ポートにセッションの確立を要求し、確立されたセッションを介して前述した処理要求Aを送信する(S001)。
しかしながら、前述したように処理要求Aにはプリンタ3を示す情報は含まれていないので、IPP/USB変換プログラム43は処理要求Aの送信先のプリンタ3を特定できない。IPP/USB変換プログラム43は、処理要求Aの送信先のプリンタ3を特定できない場合は、プリンタ選択画面生成処理を実行することによって以下に示すプリンタ選択画面55の画面データを生成する(S002)。プリンタ選択画面生成処理の詳細については後述するものとし、ここではプリンタ選択画面55の画面構成、及び、プリンタ選択画面55の画面データの概略について説明する。プリンタ選択画面55は画面の一例である。
先ず、図6を参照して、プリンタ選択画面55の画面構成について説明する。プリンタ選択画面55にはUSBによってPC2に接続されているプリンタ3a〜3cのモデル名56a〜56cがリンクとして表示される。図6ではモデル名56a〜56cの下線がリンクを表している。
また、詳しくは後述するが、プリンタ選択画面55には過去にUSBによってPC2に接続されていたプリンタ3dであって現在は接続されていないプリンタ3dのモデル名56dも表示される。ただし、プリンタ3dのモデル名56dは表示されるのみであり、リンクは設定されていない。
また、各モデル名の前にはそのモデル名を選択するためのラジオボタン57(57a〜57d)も表示される。ラジオボタン57はプリンタ3dのモデル名56dについても表示される。また、プリンタ選択画面55には削除ボタン58も表示される。ラジオボタン57及び削除ボタン58についての説明は後述する。
次に、図7を参照して、プリンタ選択画面55を表示するための画面データについて説明する。各モデル名にはIPP/USB変換プログラム43に設定画面50の画面データの送信を要求するURLがリンクとして設定されている。
具体的には、IPP/USB変換プログラム43は、プリンタ選択画面55の画面データを生成するとき、プリンタ3a〜3cのそれぞれのUSBクライアントインタフェース部32からモデル名、ベンダーID、製品ID、及び、シリアル番号を取得する。ここではこれら一組の情報をプリンタ3の装置固有情報という。そして、IPP/USB変換プログラム43は各装置固有情報に対して固有のポート番号を割り当てる。そして、IPP/USB変換プログラム43は、図7に示すように、装置固有情報に割り当てた固有のポート番号をURLに設定する。例えば図7において4001はプリンタ3aの装置固有情報に割り当てた固有のポート番号である。同様に4002はプリンタ3b、4003はプリンタ3cの装置固有情報に割り当てた固有のポート番号である。
ここで、モデル名は画像処理装置の識別情報の一例である。プリンタ選択画面55の画面データは、画像処理装置の識別情報の選択を受け付ける画面を表示するための選択画面情報であって、当該画面で識別情報を選択すると当該選択した識別情報によって識別される画像処理装置の通信パスを指定した処理要求がクライアントアプリケーションによって送信されるように構成された選択画面情報の一例である。
なお、PC2に接続されている複数のプリンタ3が同一機種である場合はモデル名のみでは識別できない。その場合は、例えばモデル名にシリアル番号を付加した「モデル名_シリアル番号」を識別情報として表示してもよいし、USBのポート番号を付加した「モデル名_USBのポート番号」を表示してもよい。あるいは、モデル名(1)、モデル名(2)などとして番号で識別してもよい。識別情報はプリンタ3を識別できれば適宜に決定することができる。
また、識別情報はモデル名に限られるものではない。例えばプリンタ3を表す画像であってもよい。あるいは画像とそのプリンタ3に付与したプリンタ名との組み合わせなどであってもよい。
また、IPP/USB変換プログラム43はプリンタ3の装置固有情報に対して固有のポート番号を割り当てると、その装置固有情報とそのポート番号とを対応付けて記憶部26に記憶させる。装置固有情報とポート番号とを対応付けて記憶させる理由は、IPP/USB変換プログラム43が通信ポートを介して処理要求Aを受信した場合に、その通信ポートのポート番号に対応するプリンタ3を特定するためである。
図6に戻る。削除ボタン58は、装置固有情報とその装置固有情報に対応付けられているポート番号とを記憶部26から削除するようユーザが指示するためのボタンである。
例えばユーザはプリンタ3とPC2との接続を解除してしまう場合もある。ユーザがプリンタ3の接続を解除しても、そのプリンタ3の装置固有情報はポート番号に対応付けられて記憶部26に記憶されたままである。
そこで、IPP/USB変換プログラム43は、PC2との接続が解除されているプリンタ3であっても装置固有情報がポート番号に対応付けられて記憶部26に記憶されている場合はそのプリンタ3のモデル名(例えばPRINTER3d)もプリンタ選択画面55に表示させる。
ユーザがプリンタ選択画面55で接続が解除されているプリンタ3のラジオボタン57を選択して削除ボタン58をクリックすると、選択したプリンタ3のポート番号と装置固有情報とを記憶部26から削除するポート番号削除要求がIPP/USB変換プログラム43に送信される。これにより、接続が解除されたプリンタ3の装置固有情報とポート番号とが記憶部26に残ってしまわないようにすることができる。ポート番号削除要求は通信パス削除要求の一例である。
ここで、ポート番号削除要求はPOSTコマンドとして送信されるものとする。このPOSTコマンドはデフォルトのポート番号80によって識別される通信ポートを介してIPP/USB変換プログラム43に送信されるものとする。
図5に戻る。IPP/USBプログラム43は生成したプリンタ選択画面55の画面データをIPP/USB変換プログラム43に送信する(S003)。
Webブラウザ42は、ユーザがプリンタ選択画面55でクリックしたモデル名を受付けると(S004)、そのモデル名に設定されているリンクに設定されているポート番号によって識別される通信ポートにセッションの確立を要求する。例えばユーザがプリンタ選択画面55でPRINTER3aをクリックしたとする。この場合、Webブラウザ42はlocalhostのポート番号4001によって識別される通信ポートにセッションの確立を要求する。
IPP/USB変換プログラム43はセッションの確立が要求されるとその通信ポートを介してWebブラウザ42との間にセッションを確立する。Webブラウザ42はセッションが確立されるとそのセッションを介してIPP/USB変換プログラム43に処理要求Aを送信する(S005)。
IPP/USB変換プログラム43は処理要求Aを受信すると、その処理要求Aを受信した通信ポートのポート番号に対応付けられている装置固有情報を記憶部26から読み出す。そして、IPP/USB変換プログラム43は読み出した装置固有情報によって識別されるプリンタ3(ここではプリンタ3aとする)にUSBを介して処理要求Aを送信する(S006)。
プリンタ3aは処理要求Aを受信すると、IPP/USB変換プログラム43に設定画面50の画面データを送信する(S007)。
IPP/USB変換プログラム43はプリンタ3aから画面データを受信すると、受信した画面データをWebブラウザ42に送信する(S008)。
Webブラウザ42は受信した設定画面50の画面データを解析し(S009)、部品画像の送信を要求する処理要求BをIPP/USB変換プログラム43に送信する(S010)。例えばGIF1の送信を要求する場合、IPP/USB変換プログラム43には以下の処理要求Bが送信される。
GET /GIF1 HTTP/1.0 ・・・ 処理要求B
ここで、設定画面50の画面データには各部品画像へのパスが相対パスによって記述されているものとする。相対パスで記述されている場合は、Webブラウザ42は前述した処理要求Aを送信した通信ポートと同じ通信ポートを介してIPP/USB変換プログラム43に処理要求Bを送信する。これはWebブラウザ42の一般的な仕様である。
IPP/USB変換プログラム43はWebブラウザ42から処理要求Bを受信すると、その処理要求Bを受信した通信ポートに対応付けられている装置固有情報によって識別されるプリンタ(すなわちプリンタ3a)に処理要求Bを送信する(S011)。これにより、処理要求Bは処理要求Aと同じプリンタ3aに送信される。
プリンタ3aは処理要求Bを受信すると、その処理要求Bによって要求されている部品画像をIPP/USB変換プログラム43に送信する(S012)。
IPP/USB変換プログラム43はプリンタ3aから部品画像を受信すると、受信した部品画像をWebブラウザ42に送信する(S013)。
これら一連の処理をGIF1〜GIF3について繰り返すことにより、GIF1〜GIF3がWebブラウザ42に読み込まれ、設定画面60上に表示される。
設定画面50に対する操作は、HTTPのGETコマンド、PUTコマンド、POSTコマンドなどの処理要求に変更されて同様にIPP/USB変換プログラム43を介してプリンタ3aに送信される。これにより、従来のTCP/IPネットワークを介してプリンタの設定を行うのと同様の手順でUSBを介してプリンタ3aの設定を行うことができる。
(7)IPP/USB変換プログラムによる通信中継処理の詳細
次に、IPP/USB変換プログラム43による通信中継処理の詳細について説明する。
(7−1)Webブラウザから処理要求を受信する処理
まず、図8及び図9を参照して、IPP/USB変換プログラム43がWebブラウザ42から処理要求を受信する処理について説明する。前述したようにIPP/USB変換プログラム43は常駐プログラムとして実行されるものであり、本処理はPC2に電源が投入されると開始される。
S101では、IPP/USB変換プログラム43はWebブラウザ42から処理要求を受信するまで待機し、処理要求を受信するとS102に進む。S101は要求受信処理の一例である。
ここで、目的のプリンタ3に割り当てられているポート番号を知らないユーザは前述したようにポート番号が設定されていないURLをWebブラウザ42に設定して設定画面50の画面データの送信を要求するものとする。その場合は、IPP/USB変換プログラム43は前述したようにデフォルトのポート番号80によって識別される通信ポートを介してその処理要求(処理要求A)を受信する。
これに対し、後述するS105が実行された後にS101で処理要求が受信された場合は、S105においてWebブラウザ42にプリンタ選択画面55が送信されている。ユーザがそのプリンタ選択画面55にて所望のプリンタ3のリンクをクリックすると、選択されたプリンタ3の装置固有情報に固有のポート番号を指定した形のURLがWEBブラウザ42に入力される。WEBブラウザ42はその後そのポート番号によって識別される通信ポートを介して処理要求(処理要求A)を送信する。IPP/USB変換プログラム43はその通信ポートを介してその処理要求を受信する。
なお、S101で受信される処理要求は処理要求Aに限られず、部品画像の送信を要求する処理要求(処理要求B)やポート番号削除要求も受信される。また、これら以外の処理要求が受信される場合もある。
S102では、IPP/USB変換プログラム43はS101で受信した処理要求が設定画面50の送信を要求する処理要求(処理要求A)であるか否かを判断する。IPP/USB変換プログラム43は、処理要求Aである場合はS103に進み、それ以外の処理要求である場合はS107に進む。
S103では、IPP/USB変換プログラム43はS101で処理要求を受信した通信ポートのポート番号がデフォルトのポート番号80であるか否かを判断する。
例えば、ユーザがWebブラウザ42にポート番号が設定されていないURLを設定して設定画面50の画面データの送信を要求した場合は、S102において設定画面50の送信を要求する処理要求Aであると判断され、S103においてデフォルトのポート番号80であると判断される。これに対し、ユーザがプリンタ選択画面55でモデル名をクリックした場合は、S102において設定画面50の送信を要求する処理要求Aであると判断されるものの、その場合の処理要求はプリンタ3の装置固有情報に固有のポート番号の通信ポートを介して受信されるので、S103においてデフォルトのポート番号80ではないと判断される。
IPP/USB変換プログラム43はデフォルトのポート番号80である場合はS104に進み、デフォルトのポート番号80以外である場合はS106に進む。
S104では、IPP/USB変換プログラム43は前述したプリンタ選択画面55を生成するプリンタ選択画面生成処理を実行する。プリンタ選択画面生成処理についての説明は後述する。プリンタ選択画面生成処理は画面情報生成処理の一例である。
S105では、IPP/USB変換プログラム43はS104で生成したプリンタ選択画面55の画面データをWebブラウザ42に送信する。S105は画面情報送信処理の一例である。また、プリンタ選択画面55の画面データは選択画面情報の一例である。
S106では、IPP/USB変換プログラム43はプリンタ3との通信処理を実行する。プリンタ3との通信処理についての説明は後述する。
S107では、IPP/USB変換プログラム43はS101で受信した処理要求がGETコマンド、POSTコマンド、又は、PUTコマンドであるか否かを判断し、これらのコマンドのいずれでもない場合はS108に進み、これらのコマンドのいずれかの場合はS109に進む。
S108では、IPP/USB変換プログラム43は受信した処理要求に対応した処理を実行する。
S109では、IPP/USB変換プログラム43はS101で処理要求を受信した通信ポートのポート番号がデフォルトのポート番号80であるか否かを判断する。
例えば部品画像の送信を要求する処理要求BはS102において否定判断され、S107において肯定判断され、S109において否定判断される。これに対し、例えばポート削除要求はPOSTコマンドとしてデフォルトのポート番号80によって識別される通信ポートを介して送信されるので、S102において否定判断され、S107において肯定判断され、S109において肯定判断される。
IPP/USB変換プログラム43は、デフォルトのポート番号80ではない場合、すなわちプリンタ3の装置固有情報毎に割り当てたポート番号である場合はS110に進み、デフォルトのポート番号80である場合はS111に進む。
S110では、IPP/USB変換プログラム43はプリンタ3との通信処理を実行する。プリンタ3との通信処理についての説明は後述する。
S111では、IPP/USB変換プログラム43はポート80対応処理を実行する。ポート80対応処理とは、例えばポート番号を削除する処理である。例えば処理要求がポート番号削除要求である場合、IPP/USB変換プログラム43はPOSTコマンドに設定されているポート番号とそのポート番号に対応付けられている装置固有情報とを記憶部26から削除する。なお、ポート80対応処理はポート番号を削除する処理に限られるものではない。S111は削除処理の一例である。
IPP/USB変換プログラム43は、S108,S110,又はS111のいずれかの処理を終了するとS101に戻る。
(7−2)プリンタ選択画面生成処理
次に、図10及び図11を参照して、S104で実行されるプリンタ選択画面生成処理について説明する。
S201では、IPP/USB変換プログラム43はプリンタ選択画面55を表示するための画面データのテンプレート画面データを記憶部26から読み込む。このテンプレート画面データにはモデル名やリンクは記述されていない。
S202では、IPP/USB変換プログラム43は記憶部26にポート番号が少なくとも一つ記憶されているか否かを判断し、記憶されている場合はS203に進み、一つも記憶されていない場合はS210に進む。
S203では、IPP/USB変換プログラム43は記憶部26に記憶されているポート番号を一つ選択する。
S204では、IPP/USB変換プログラム43はS203で選択したポート番号に対応付けられている装置固有情報を記憶部26から読み出す。記憶部26には後述するS218において、過去にPC2に接続されたプリンタ3の情報が登録されている。
S205では、IPP/USB変換プログラム43はS204で読み出した装置固有情報によって識別されるプリンタ3がPC2に接続されているか否かを判断し、接続されている場合はS206に進み、接続されていない場合はS208に進む。S205は接続判断処理の一例である。
S206では、IPP/USB変換プログラム43は設定画面50の画面データの送信を要求するURLを生成し、そのURLにS203で選択したポート番号を設定する。例えばプリンタ3aの場合は以下のURLとなる。
http://localhost/main.html:4001
S207では、IPP/USB変換プログラム43はS206で生成したURLをS201で読み込んだテンプレート画面データにリンクとして追加する。例えばプリンタ3aの場合は以下のリンクが追加される。
<a href=”http://localhost/main.html:4001”>PRINTER3a</a>
S208では、IPP/USB変換プログラム43は画面データにS203で選択したポート番号に対応付けられているモデル名を表示する記載を追加する。ただし、前述したようにこのモデル名にはリンクは設定されない。これにより、過去にUSBによってPC2に接続されていたプリンタ3であって現在は接続されていないプリンタ3のモデル名(例えばPRINTER3d)がプリンタ選択画面55に選択不能に表示される。
S209では、IPP/USB変換プログラム43は記憶されている全てのポート番号を選択したか否かを判断し、全て選択した場合はS210に進み、未だ選択していないポート番号がある場合はS203に戻って処理を繰り返す。
S210では、IPP/USB変換プログラム43はUSBによってPC2に接続されているプリンタ3を検索する。
S211では、IPP/USB変換プログラム43はS210で検索したプリンタ3を一つ選択する。
S212では、IPP/USB変換プログラム43はS211で選択したプリンタ3からUSBを介して装置固有情報を取得する。S212は取得処理の一例である。
S213では、IPP/USB変換プログラム43はS212で取得した装置固有情報が記憶部26に記憶されているか否かを判断し、記憶されていない場合はS214に進み、記憶されている場合はS219に進む。
ここで、装置固有情報が記憶部26に記憶されているか否かを判断する理由は、装置固有情報が記憶部26に記憶されているプリンタ3は既にS207でテンプレート画面データにリンクが追加されているので、以降のS214〜S218の処理をスキップすることによってリンクを二重に追加しないようにするためである。一方、例えば前回本処理を実行してから今回本処理を実行するまでの間にPC2に接続されたプリンタ3は装置固有情報が記憶部26に記憶されておらず、S207でリンクが追加されていないので、S214〜S218を実行してそのプリンタ3の装置固有情報に対して固有のポート番号を割り当てるためである。
S214では、IPP/USB変換プログラム43は前述した予約ポート番号の中からポート番号を選択する。その際、IPP/USB変換プログラム43は他のプリンタ3の装置固有情報に割り当てられているポート番号と重複しないように選択する。つまり、ここで選択されるポート番号は以下の条件を満たす。
・ウエルノウンポートと重複しない
・他のプリンタ3の装置固有情報に割り当てられているポート番号と重複しない
・PC2で実行されている他のサービスのポート番号と重複しない
そして、IPP/USB変換プログラム43は選択したポート番号をS212で取得した装置固有情報に割り当てる。
上述したS214は通信パス生成処理の一例である。また、選択したポート番号は画像処理装置に固有の通信パスの一例である。ここで画像処理装置に固有とは、USBによってPC2に接続されている複数のプリンタ3の間で重複しないという意味である。
S215では、IPP/USB変換プログラム43はS214で割り当てたポート番号をOS41に登録するとともに、そのポート番号に対応するサービスとしてIPP/USB変換プログラム43をOS41に登録する。そして、IPP/USB変換プログラム43は割り当てたポート番号によって識別される通信ポートを監視するソケットを生成し、そのソケットを用いてWebブラウザ42からのセッションの確立の要求(所謂アクセプト要求)を監視する。
S216では、IPP/USB変換プログラム43は設定画面50の画面データの送信を要求するURLを生成し、そのURLにS214で割り当てたポート番号を設定する。
S217では、IPP/USB変換プログラム43はS216で生成したURLをテンプレート画面データにリンクとして追加する。
S218では、IPP/USB変換プログラム43はS212で取得したプリンタ3の装置固有情報とS214で割り当てたポート番号とを対応付けて記憶部26に記憶させる。S218は記憶処理の一例である。
S219では、IPP/USB変換プログラム43はS210で検索したプリンタ3を全て選択したか否かを判断し、全て選択した場合はS220に進み、まだ選択していないプリンタ3がある場合はS211に戻って処理を繰り返す。
S220では、IPP/USB変換プログラム43はテンプレート画面データに削除ボタン58を表示する記述を追加する。これによりプリンタ選択画面55の画面データが生成される。
S221では、IPP/USB変換プログラム43は生成したプリンタ選択画面55の画面データをWebブラウザ42に送信する。
プリンタ選択画面生成処理によってプリンタ選択画面55の画面データが生成されることにより、図3のプリンタ選択画面55がWebブラウザ42に表示される。この画面が表示されるのは、ユーザが複数のプリンタ3をPC2に接続しており、且つ、各々のプリンタ3の設定のための通信パスを把握していない場合である。ユーザは、プリンタ選択画面55でそのプリンタ3のモデル名をマウスでクリックすることにより、選択したプリンタ3の設定画面50を呼び出すことができる。その際、Webブラウザ42が送信する処理要求は、S206あるいはS216で生成したURLの形式になっており、前記S103の判断でNOと判断される。すなわちユーザの望むプリンタ3に対して、その処理要求が送信される。
(7−3)プリンタとの通信処理
次に、図12を参照して、S106及びS110で実行されるプリンタ3との通信処理について説明する。
S301では、IPP/USB変換プログラム43はS101で処理要求を受信した通信ポートのポート番号と同じポート番号が記憶部26に記憶されているか否かを判断し、記憶されていない場合はS302に進み、記憶されている場合はS303に進む。
S302では、IPP/USB変換プログラム43は404(Not Found)エラーをWebブラウザ42に送信する。
S303では、IPP/USB変換プログラム43はS101で処理要求を受信した通信ポートのポート番号と同じポート番号に対応付けられている装置固有情報を記憶部26から取得する。
S304では、IPP/USB変換プログラム43はS303で取得した装置固有情報から処理要求の送信先のプリンタ3を特定する。具体的には例えば、IPP/USB変換プログラム43は、USBによってPC2に接続されている各プリンタ3からそれぞれ装置固有情報を取得する。そして、IPP/USB変換プログラム43は、S303で記憶部26から取得した装置固有情報と、各プリンタ3から取得した装置固有情報とを比較する。そして、IPP/USB変換プログラム43は装置固有情報が一致するプリンタ3を処理要求の送信先のプリンタとして特定する。
S305では、IPP/USB変換プログラム43は、Webブラウザ42から複数の処理要求を受信した場合にそれらの処理要求が混乱しないようにするために、S304で特定したプリンタ3と接続されているUSBのインタフェース1の排他処理を実行する。
排他処理は例えばミューテックスを用いることによって行うことができる。ミューテックスは排他処理を行うための仕組みであって、プログラム言語によって提供される仕組みである。なお、ここではミューテックスを用いて排他処理を行う場合を例に説明するが、排他処理を行う方法はこれに限られない。例えばセマフォを用いて行ってもよいし、ミューテックスやセマフォを用いず独自の方法で行ってもよい。
S306では、IPP/USB変換プログラム43はS101で受信した処理要求を、S304で特定したプリンタ3にインタフェース1を介して送信する。
上述したS301〜S306は要求送信処理の一例である。
S307では、IPP/USB変換プログラム43はS306で送信した処理要求に対する応答を、インタフェース1を介してプリンタ3から受信する。
S308では、IPP/USB変換プログラム43はS307で受信した応答をWebブラウザ42に送信する。
S309では、IPP/USB変換プログラム43はインタフェース1の排他処理を終了する。
(8)実施形態の効果
以上説明した実施形態に係るIPP/USB変換プログラム43によると、プリンタ選択画面55の画面データであって、ユーザがプリンタ選択画面55でモデル名を選択すると当該選択したモデル名によって識別されるプリンタ3に対応するポート番号の通信ポートを介してWebブラウザ42から処理要求が送信されるように構成された画面データをWebブラウザ42に送信する。そして、IPP/USB変換プログラム43はWebブラウザ42から処理要求を受信すると、当該処理要求を受信した通信ポートのポート番号に対応するプリンタ3に当該処理要求を送信する。
よってIPP/USB変換プログラム43によると、Webブラウザ42と複数のプリンタ3との間で通信を中継する場合に、Webブラウザ42から送信された処理要求の送信先のプリンタ3を特定することができる。
更に、IPP/USB変換プログラム43によると、通信パスとしてポート番号を生成するので、どのポート番号の通信ポートを介してWebブラウザ42から処理要求を受信したかによって処理要求の送信先のプリンタ3を特定することができる。
更に、IPP/USB変換プログラム43によると、Webブラウザ42から特定のネットワークポート(具体的にはポート番号80)の通信ポートを介して処理要求を受信した場合に、プリンタ選択画面55の画面データをWebブラウザ42に送信する。例えばWebブラウザ42のユーザが目的のプリンタ3に対応するポート番号を知っている場合は、ユーザはそのポート番号を指定した処理要求を送信することにより、プリンタ選択画面55でプリンタ3を選択することなく目的のプリンタ3に処理要求を送信することができる。これに対し、目的のプリンタ3に対応するポート番号を知らない場合は、ユーザはポート番号80を指定した処理要求を送信することにより、プリンタ選択画面55で目的のプリンタ3を選択することができる。
更に、IPP/USB変換プログラム43によると、プリンタ3の装置固有情報とポート番号とを対応付けて記憶部26に記憶するので、Webブラウザ42から処理要求を受信した場合に、その処理要求の送信先のプリンタ3を特定することができる。
更に、IPP/USB変換プログラム43によると、記憶部26に記憶されている装置固有情報によって識別されるプリンタ3がPC2に接続されているか否かを判断し(S205)、接続されているプリンタ3のモデル名の選択を受け付ける画面データを生成する(S206、S207)。これにより、PC2に接続されていないプリンタ3に処理要求が送信されてしまわないようにすることができる。
更に、IPP/USB変換プログラム43によると、記憶部26に記憶されている装置固有情報によって識別されるプリンタ3のうちPC2に接続されていないプリンタ3のモデル名がプリンタ選択画面55に選択不能に表示されるので、ユーザは過去にPC2に接続されていたプリンタ3であって現在はPC2に接続されていないプリンタ3を知ることができる。
更に、IPP/USB変換プログラム43によると、ユーザはプリンタ選択画面55で過去にUSBによってPC2に接続されていたプリンタ3であって現在は接続されていないプリンタ3のモデル名を選択して削除ボタン58をクリックすることにより、当該プリンタ3の装置固有情報と当該装置固有情報に対応付けられているポート番号とを記憶部26から削除することができる。
更に、IPP/USB変換プログラム43によると、PC2と複数のプリンタ3とがユニバーサルシルアルバスによって通信可能に接続されている場合に、Webブラウザ42から送信された処理要求の送信先のプリンタ3を特定することができる。
更に、IPP/USB変換プログラム43によると、USBによってPC2に接続されているプリンタ3を検索し(S211)、検索されたプリンタ3のうち装置固有情報が記憶部26に記憶されていないプリンタ3の装置固有情報に固有のポート番号を割り当てる(S213、S214)。これにより、既にポート番号が割り当てられているプリンタ3に重複してポート番号を割り当ててしまわないようにすることができる。
更に、IPP/USB変換プログラム43によると、プリンタ選択画面55に追加するURLにS203で選択したポート番号を設定する。ポート番号はプリンタ3の装置固有情報ごとに固有に設定されているので、そのポート番号をURLに設定することにより、接続されている複数のプリンタ3を容易に特定することができる。
更に、IPP/USB変換プログラム43によると、処理要求を受信した通信ポートのポート番号が記憶部26に記憶されているか否かを判断し(S301)、記憶されていない場合は処理要求を送信しないので(S302)、記憶部26からポート番号が削除された後にその削除されたポート番号が設定されている処理要求を受信した場合に、そのポート番号に対応するプリンタ3に処理要求を送信しないようにすることができる。
更に、本実施形態では現在接続されているプリンタ3に対して対応付けられたポート番号だけでなく、過去に接続されたプリンタ3に対して対応付けられたポート番号も記憶しており、同一のポート番号が割り当てられないようにしている。よって、プリンタ3の電源がOFFの状態であってもそのポート番号が他のプリンタ3に割り当てられることがない。よってプリンタ3の設定画面50を示すURLにそのようなポート番号を設定しておけば、例えそのURLがWebブラウザ42の「お気に入り」に登録されたとしても、プリンタ3の接続・非接続にかかわらず「お気に入り」に登録されたURLで別のプリンタ3の設定画面50が表示されることはない。
<他の実施形態>
上記記述及び図面によって説明した実施形態に限定されるものではなく、例えば次のような実施形態も技術的範囲に含まれる。
(1)上記実施形態ではプリンタ3から装置固有情報を取得する場合を例に説明した。これに対し、装置固有情報はプリンタ3から取得したものでなくてもよい。例えば、各プリンタ3が接続されているUSBのポートを識別するための情報を、プリンタ3を識別する装置固有情報として用いてもよい。
(2)上記実施形態ではIPP/USB変換プログラム43がプリンタ3から応答を受信し、受信した応答をWebブラウザ42に送信する場合を例に説明した。これに対し、Webブラウザ42からプリンタ3に一方的に処理要求を送信するだけの場合は、IPP/USB変換プログラム43はWebブラウザ42に応答を送信しないようにしてもよい。
(3)上記実施形態では通信回線としてUSBを例に説明した。しかしながら、通信回線はUSBに限られない。例えばPC2とプリンタ3とはプリンタの通信規格であるIEEE1284によって通信するものであってもよい。
(4)上記実施形態ではポート番号を用いてプリンタ3を識別する場合を例に説明した。これに対し、画像処理装置によって規定される情報を元に通信パスを生成するようにしてもよい。プリンタ内部のフォルダ名を利用してプリンタ3を識別する例を示す。
具体的には例えば、IPP/USB変換プログラム43はUSBクライアントインタフェース部32に記憶されているディスクリプタからプリンタ3のモデル名、ベンダーID、製品ID、及び、シリアル番号を取得し、取得した情報から以下のフォルダ名を生成する。
モデル名_ベンダーID_製品ID_シリアル番号
上述したモデル名、ベンダーID、製品ID、及び、シリアル番号はそれぞれディスクリプタから取得した情報に読み替えるものとする。例えばプリンタ3aのモデル名、ベンダーID、製品ID、及び、シリアル番号がそれぞれ以下のものであったとする。
モデル名=PRINTER3a
ベンダーID=04F9
製品ID=00A3
シリアル番号=SER1111
この場合、フォルダ名は以下のフォルダ名となる。
PRINTER3a_VID04F9_PID00A3_SER1111
そして、IPP/USB変換プログラム43は前述したプリンタ選択画面55の画面データに、生成したフォルダ名を含む以下のリンクを追加する。
<a href=”http://localhost/PRINTER3a_VID04F9_PID00A3_SER1111/main.html”>PRINTER3a</a>
このようにすると、ユーザがWebブラウザ42で当該リンクをクリックしたとき、Webブラウザ42からIPP/USB変換プログラム43に次の処理要求が送信される。
GET /PRINTER3a_VID04F9_PID00A3_SER1111/main.html HTTP/1.0
IPP/USB変換プログラム43はこの処理要求からフォルダ名であるPRINTER3a_VID04F9_PID00A3_SER1111を抽出し、そのフォルダ名とプリンタ3のモデル名、ベンダーID、製品ID、及び、シリアル番号とが一致するプリンタ3を処理要求の送信先として特定することができる。
一方、プリンタ3はHTTPリクエストに対して、モデル名、ベンダーID、製品ID、及び、シリアル番号を含む以下のような仮想的なフォルダを備える。
PRINTER3a_VID04F9_PID00A3_SER1111
そして、上述した処理要求(GET /PRINTER3a_VID04F9_PID00A3_SER1111/main.html HTTP/1.0)が送信されたとする。この場合、Webサーバ機能62は上述したHTTPリクエストを、仮想的なフォルダ「/PRINTER3a_VID04F9_PID00A3_SER1111」の下にあるmain.htmlというファイルを取得する命令として解釈する。よって、Webサーバ機能62はmain.htmlというファイルを返信する。
なお、ここではフォルダ名としてモデル名、ベンダーID、製品ID、及び、シリアル番号を連結した文字列を例に説明したが、フォルダ名にはUSBによってPC2に接続されている複数のプリンタ3を互いに識別できる情報が含まれていればよい。例えば仮にシリアル番号だけでプリンタ3を互いに識別できるとした場合はフォルダ名にはシリアル番号のみを含めるようにしてもよい。例えば各プリンタ3からシリアル番号を取得し、取得したシリアル番号が互いに異なっていればシリアル番号だけで識別できると判断することができる。
また、プリンタ3が備える仮想的なフォルダは厳密にはWebサーバ機能62によりそのディレクトリに記憶されているように扱われるだけで、記憶部35のファイルシステム上に置かれないファイルもある。しかし、このような処理はWebサーバ機能52に搭載されるCGI機能として一般的であり、ここでは詳細な説明は省略する。
なお、上記実施形態では通信パスの識別は単なるポート番号にて行われていたために、ユーザが直接Webブラウザ42に通信パスを入力する際には、ユーザにとってプリンタ3との対応が判り難いといった問題点があった。しかしこの例にあっては通信パスにフォルダ名を用いることにより、通信パス自体をユーザにとって意味のある単語とすることができるので、ユーザにとって通信パスとプリンタ3との対応が判り易いといった利点もある。
(5)上記実施形態では画像処理装置としてプリンタ3を例に説明した。これに対し、画像処理装置は、印刷機能、スキャナ機能、コピー機能、ファクシミリ機能などを備える所謂複合機であってもよい。また、画像処理装置は単機能の画像読取装置やファクシミリ装置であってもよい。
(6)上記実施形態では制御部31が一つのCPU31aを備える場合を例に説明した。これに対し、制御部31は1以上のCPUによって構成されてもよいし、ASICによって構成されてもよいし、1以上のCPUとASICとの組み合わせによって構成されてもよい。
(7)上記実施形態では、プリンタはKeepAlive仕様により単一セッションにて複数の要求データを要求しないものとして構成されている。しかし応答送信終了後もソケットを破棄せずに使用することによりKeepAlive仕様に対応することもできる。
(8)上記実施形態において、予約ポートはあらかじめ予約されており、且つそれらを常時監視するように構成している。しかし新たなポートがS214で割り当てられる毎に、そのポートを監視ポートに加えるようにしてもよい。
(9)上記実施形態において、クライアントアプリケーションとしては、Webブラウザ42のほかにIPPプロトコルを用いたスプーラ44である可能性もある。その場合、クライアントアプリケーションがWebブラウザ42か否かを判定し、Webブラウザ42の場合に設定画面50の画面データを返し、スプーラ44である場合に返さないようにしてもよい。これは、スプーラ44は画面データを受信しても画面を表示できないからである。この場合、Webブラウザ42が特定のアプリケーションの一例である。
つまり、IPP/USB変換プログラム43は、クライアントアプリケーションが特定のアプリケーションである場合にプリンタ選択画面55の画面データを送信し、それ以外のアプリケーションである場合は画面データを送信しないようにしてもよい。これにより、画面を表示できないアプリケーションにプリンタ選択画面55の画面データを送信してしまわないようにすることができる。
なお、上述した例とは逆に、クライアントアプリケーションがスプーラ44である場合に、設定画面50の画面データを返し、Webブラウザ42である場合に返さないようにしてもよい。この場合、スプーラ44が特定のアプリケーションの一例である。
なお、特定のアプリケーションは、プリンタ選択画面55の画面データを表示できるものであればWebブラウザ42に限定されない。
(10)上記実施形態において、プリンタ選択画面生成処理(S104)は処理要求のポート番号が80である場合に実行されたが、その他に、新たなプリンタ3がUSBでPC2に接続された際に実行されてもよい。
(11)上記実施形態において、IPP/USB変換プログラム43はS301でポート番号が記憶部26に記憶されていないと判断した場合はS302にて404(Not Found)エラーをWebブラウザ42に送信している。しかし、S302の処理の変わりにS104、S105の処理を行ってもよい。
つまり、IPP/USB変換プログラム43は、Webブラウザ42から受信した処理要求で指定されたポート番号によりプリンタ3を特定できない場合に、プリンタ選択画面55の画面データをWebブラウザ42に送信してもよい。
これにより、例えばユーザが既にPC2との接続が解除されてしまっているプリンタ3のポート番号を指定して設定画面50の送信を要求した場合に、プリンタ選択画面55の画面データを送信してプリンタ3を選択させ直すことができる。
1・・・画像処理システム、2・・・PC、3・・・プリンタ、4・・・USBケーブル、21・・・CPU、26・・・記憶部、27・・・USBホストインタフェース部、42・・・Webブラウザ、43・・・IPP/USB変換プログラム、44・・・スプーラ、50・・・設定画面、55・・・プリンタ選択画面、57・・・ラジオボタン、58・・・削除ボタン、61・・・IPP機能、62・・・Webサーバ機能

Claims (12)

  1. 画像処理装置と通信回線を介して通信可能に接続されている情報処理装置で実行される通信中継プログラムであって、
    前記画像処理装置に固有の通信パスを生成する通信パス生成処理と、
    前記画像処理装置の識別情報の選択を受け付ける画面を表示するための選択画面情報であって、当該画面で前記識別情報を選択すると当該選択した識別情報によって識別される前記画像処理装置の前記通信パスを指定した処理要求がクライアントアプリケーションによって送信されるように構成された選択画面情報を生成する画面情報生成処理と、
    前記画面情報生成処理によって生成された前記選択画面情報を前記クライアントアプリケーションに送信する画面情報送信処理と、
    前記クライアントアプリケーションから前記処理要求を受信する要求受信処理と、
    前記要求受信処理によって受信された前記処理要求を当該処理要求で指定された前記通信パスに対応する前記画像処理装置に送信する要求送信処理と、
    を前記情報処理装置に実行させ、
    前記画面情報送信処理において、前記クライアントアプリケーションから受信した処理要求で指定された前記通信パスにより前記画像処理装置を特定できない場合に、前記画面情報生成処理により生成された前記選択画面情報を前記クライアントアプリケーションに送信する、通信中継プログラム。
  2. 請求項1に記載の通信中継プログラムであって、
    前記通信パス生成処理において、ネットワークポートを含む前記通信パスを生成する、通信中継プログラム。
  3. 請求項2に記載の通信中継プログラムであって、
    前記画面情報送信処理において、前記クライアントアプリケーションから特定のネットワークポートが指定された処理要求を受信した場合に、前記画面情報生成処理により生成された前記選択画面情報を前記クライアントアプリケーションに送信する、通信中継プログラム。
  4. 請求項1乃至請求項3のいずれか一項に記載の通信中継プログラムであって、
    前記画面情報送信処理において、前記クライアントアプリケーションが特定のアプリケーションである場合に、前記画面情報生成処理により生成された前記選択画面情報を前記クライアントアプリケーションに送信する、通信中継プログラム。
  5. 請求項4に記載の通信中継プログラムであって、
    前記特定のアプリケーションはWebブラウザである、通信中継プログラム。
  6. 請求項1乃至請求項5のいずれか一項に記載の通信中継プログラムであって、
    前記画像処理装置が個別に有する装置固有情報と前記通信パス生成処理によって生成された前記通信パスとを対応付けて記憶装置に記憶する記憶処理を前記情報処理装置に実行させ、
    前記要求送信処理において、前記要求受信処理によって受信された前記処理要求を当該処理要求で指定された前記通信パスに対応付けられている前記装置固有情報によって識別される前記画像処理装置に送信する、通信中継プログラム。
  7. 請求項6に記載の通信中継プログラムであって、
    前記記憶装置に記憶されている各前記装置固有情報について、当該装置固有情報によって識別される前記画像処理装置が前記情報処理装置に接続されているか否かを判断する接続判断処理を前記情報処理装置に実行させ、
    前記画面情報生成処理において、前記接続判断処理によって接続されていると判断された前記画像処理装置の識別情報の選択を受け付ける前記選択画面情報を生成する、通信中継プログラム。
  8. 請求項7に記載の通信中継プログラムであって、
    前記画面情報生成処理において、前記記憶装置に記憶されている前記装置固有情報によって識別される前記画像処理装置のうち前記接続判断処理によって前記情報処理装置に接続されていないと判断された前記画像処理装置の識別情報が前記画面に選択不能に表示される前記選択画面情報を生成する、通信中継プログラム。
  9. 請求項6乃至請求項8のいずれか一項に記載の通信中継プログラムであって、
    前記画面情報生成処理において、前記記憶装置に記憶されている前記通信パスを削除する指示を受け付ける削除ボタンが前記画面に表示され、前記クライアントアプリケーションで前記削除ボタンの押下が受け付けられると通信パス削除要求が送信されるように構成されている前記選択画面情報を生成し、
    前記クライアントアプリケーションから前記通信パス削除要求を受信する削除要求受信処理と、
    前記削除要求受信処理によって前記通信パス削除要求が受信されると、前記記憶装置に記憶されている前記通信パスと前記装置固有情報とを削除する削除処理と、
    を前記情報処理装置に実行させる、通信中継プログラム。
  10. 請求項1に記載の通信中継プログラムであって、
    前記通信パス生成処理において、前記画像処理装置が個別に有する装置固有情報を含む前記通信パスを生成する、通信中継プログラム。
  11. 請求項1乃至請求項10のいずれか一項に記載の通信中継プログラムであって、
    前記通信回線はユニバーサルシリアルバスである、通信中継プログラム。
  12. 画像処理装置と通信回線を介して通信する通信部と、
    処理部と、
    を備え、
    前記処理部は、
    前記画像処理装置に固有の通信パスを生成する通信パス生成処理と、
    前記画像処理装置の識別情報の選択を受け付ける画面を表示するための選択画面情報であって、当該画面で前記識別情報を選択すると当該選択した識別情報によって識別される前記画像処理装置の前記通信パスを指定した処理要求がクライアントアプリケーションによって送信されるように構成された選択画面情報を生成する画面情報生成処理と、
    前記画面情報生成処理によって生成された前記選択画面情報を前記クライアントアプリケーションに送信する画面情報送信処理と、
    前記クライアントアプリケーションから前記処理要求を受信する要求受信処理と、
    前記要求受信処理によって受信された前記処理要求を当該処理要求で指定された前記通信パスに対応する前記画像処理装置に送信する要求送信処理と、
    を実行し、
    前記画面情報送信処理において、前記クライアントアプリケーションから受信した処理要求で指定された前記通信パスにより前記画像処理装置を特定できない場合に、前記画面情報生成処理により生成された前記選択画面情報を前記クライアントアプリケーションに送信する、通信中継装置。
JP2012253270A 2012-11-19 2012-11-19 通信中継プログラム、及び、通信中継装置 Active JP6155607B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012253270A JP6155607B2 (ja) 2012-11-19 2012-11-19 通信中継プログラム、及び、通信中継装置
US14/083,497 US9734437B2 (en) 2012-11-19 2013-11-19 Communication relaying technology and communication relaying apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012253270A JP6155607B2 (ja) 2012-11-19 2012-11-19 通信中継プログラム、及び、通信中継装置

Publications (2)

Publication Number Publication Date
JP2014102620A JP2014102620A (ja) 2014-06-05
JP6155607B2 true JP6155607B2 (ja) 2017-07-05

Family

ID=50727674

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012253270A Active JP6155607B2 (ja) 2012-11-19 2012-11-19 通信中継プログラム、及び、通信中継装置

Country Status (2)

Country Link
US (1) US9734437B2 (ja)
JP (1) JP6155607B2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6245902B2 (ja) * 2013-09-04 2017-12-13 キヤノン株式会社 画像形成装置及びその制御方法並びにプログラム
JP6325796B2 (ja) * 2013-11-06 2018-05-16 キヤノン株式会社 情報処理端末およびその制御方法、並びにプログラム
JP6270576B2 (ja) * 2014-03-24 2018-01-31 キヤノン株式会社 情報処理装置、その制御方法、及びプログラム
US10116814B2 (en) * 2014-10-10 2018-10-30 Seiko Epson Corporation Electronic apparatus and display control method for electronic apparatus
JP2017091041A (ja) * 2015-11-05 2017-05-25 Jbアドバンスト・テクノロジー株式会社 帳票印刷方法、帳票印刷システムおよび帳票印刷プログラム
JP6700894B2 (ja) * 2016-03-25 2020-05-27 キヤノン株式会社 画像処理装置、制御方法、プログラム
JP6889397B2 (ja) * 2017-07-18 2021-06-18 コニカミノルタ株式会社 画像処理システム、および画像形成装置
JP7240118B2 (ja) * 2018-09-14 2023-03-15 キヤノン株式会社 情報処理装置、その制御方法およびプログラム
JP7346862B2 (ja) * 2019-03-20 2023-09-20 株式会社リコー 情報処理装置、システム、及びプログラム
JP7398881B2 (ja) * 2019-05-07 2023-12-15 キヤノン株式会社 電子機器およびその制御方法
JP7331599B2 (ja) * 2019-09-30 2023-08-23 富士フイルムビジネスイノベーション株式会社 情報処理装置およびプログラム
JP7413750B2 (ja) * 2019-12-16 2024-01-16 ブラザー工業株式会社 プログラム、プログラム群、および情報処理装置
JP7338461B2 (ja) * 2019-12-26 2023-09-05 ブラザー工業株式会社 プログラム、プログラム群、および情報処理装置
EP3889758B1 (en) * 2020-03-31 2024-01-10 Brother Kogyo Kabushiki Kaisha Image processing device and computer program

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5580177A (en) * 1994-03-29 1996-12-03 Hewlett-Packard Company Printer/client network with centrally updated printer drivers and printer status monitoring
US6157950A (en) * 1997-12-05 2000-12-05 Encanto Networks, Inc. Methods and apparatus for interfacing a computer or small network to a wide area network such as the internet
US6493749B2 (en) * 1998-08-17 2002-12-10 International Business Machines Corporation System and method for an administration server
JP2001290812A (ja) 2000-04-05 2001-10-19 Gk Associates:Kk Webページの配信方法、Webサーバーシステム、並びに、記録媒体
JP2002182866A (ja) * 2000-12-13 2002-06-28 Fujitsu Ltd ネットワーク環境における印刷制御方法、プリントサーバ、クライアント、および記録媒体
US7187461B2 (en) * 2001-06-25 2007-03-06 Xerox Corporation System for managing digital printers and servers via a network
JP4224958B2 (ja) 2001-08-10 2009-02-18 富士ゼロックス株式会社 インターネット印刷方法、そのシステム、プロキシ装置及びプリントサーバ
JP4072370B2 (ja) * 2002-04-04 2008-04-09 キヤノン株式会社 プリンタ、印刷方法、プログラム、及び記憶媒体
JP2003316712A (ja) 2002-04-22 2003-11-07 Canon Inc 画像処理装置及び通信制御方法
US20030227641A1 (en) 2002-06-07 2003-12-11 Xerox Corporation Mobile USB printer driver
JP3846384B2 (ja) * 2002-08-28 2006-11-15 ブラザー工業株式会社 端末装置、接続制御方法、接続制御用プログラム及び記録媒体
US7312887B2 (en) * 2003-01-03 2007-12-25 Toshiba Corporation Internet print protocol print dispatch server
US20040190042A1 (en) * 2003-03-27 2004-09-30 Ferlitsch Andrew Rodney Providing enhanced utilization of printing devices in a cluster printing environment
US20040252333A1 (en) * 2003-06-16 2004-12-16 Blume Leo Robert Mobile communication device printing
US6931456B2 (en) * 2003-09-09 2005-08-16 Transact Technologies Incorporated Standard configurable universal serial bus (USB) device identifier
US20090024746A1 (en) * 2003-09-25 2009-01-22 Eric Welch Method and apparatus for host controller operations over a network
JP3793197B2 (ja) * 2003-12-03 2006-07-05 キヤノン株式会社 情報処理装置、情報処理方法、情報処理プログラム並びに記憶媒体
JP2005346584A (ja) 2004-06-04 2005-12-15 Canon Inc 文書管理方法及び装置、並びにプログラム及び記憶媒体
JP4207864B2 (ja) * 2004-08-10 2009-01-14 ブラザー工業株式会社 状態情報処理装置、および状態情報処理装置用データ処理プログラム
JP4438068B2 (ja) 2004-11-26 2010-03-24 キヤノン株式会社 画像形成装置、画像形成装置と接続するホスト装置
US8064081B2 (en) 2004-11-26 2011-11-22 Canon Kabushiki Kaisha Print system and printing method for transmitting print data from a host device to an image forming apparatus by radio communication and performing printing
US7493373B2 (en) * 2004-12-27 2009-02-17 Nokia Corporation Providing service distribution between distributed applications
KR100727946B1 (ko) * 2005-06-29 2007-06-14 삼성전자주식회사 오프라인 상태의 화상 형성 장치에 대한 인쇄 작업 제어방법 및 장치.
JP2007128215A (ja) * 2005-11-02 2007-05-24 Seiko Epson Corp ネットワークデバイスに関する情報収集
JP4844105B2 (ja) * 2005-12-01 2011-12-28 セイコーエプソン株式会社 ローカルデバイスが接続される制御装置におけるメニューデータの生成
JP4760460B2 (ja) * 2006-03-13 2011-08-31 ブラザー工業株式会社 スキャナ制御システム、およびスキャナドライバプログラム
US20070268838A1 (en) * 2006-05-16 2007-11-22 Cisco Technology, Inc. System and Method For Facilitating An Internet Protocol Based Personal Area Network
US7886000B1 (en) 2006-06-27 2011-02-08 Confluence Commons, Inc. Aggregation system for social network sites
JP4143659B2 (ja) * 2006-07-07 2008-09-03 キヤノン株式会社 プリンタユーティリティ手段による制御方法および情報処理装置
JP4877013B2 (ja) 2007-03-30 2012-02-15 ブラザー工業株式会社 スキャナ
JP4966097B2 (ja) 2007-05-30 2012-07-04 キヤノン株式会社 情報処理装置および情報処理方法
US8155019B2 (en) * 2008-01-07 2012-04-10 Canon Kabushiki Kaisha Information processing apparatus, device information display method, and computer-readable storage medium
US20100097632A1 (en) * 2008-10-21 2010-04-22 Tomoki Hattori Vertical print
JP5054047B2 (ja) 2009-01-30 2012-10-24 京セラドキュメントソリューションズ株式会社 画像形成装置及び画像形成プログラム
JP2011028390A (ja) 2009-07-22 2011-02-10 Brother Industries Ltd サーバ、プリンタ及びコンピュータプログラム
EP2492820B1 (en) * 2009-10-20 2016-03-23 Canon Kabushiki Kaisha Information processing device communicating with peripheral device, information processing method, and control program
JP5761923B2 (ja) * 2010-04-28 2015-08-12 キヤノン株式会社 印刷システム、情報処理装置及びその方法
JP5370265B2 (ja) * 2010-05-26 2013-12-18 ブラザー工業株式会社 共通プリンタドライバ、及び印刷ポートの管理方法
JP5539043B2 (ja) 2010-06-08 2014-07-02 キヤノン株式会社 情報送信装置、情報送信装置の制御方法及びコンピュータプログラム
JP5392201B2 (ja) * 2010-07-29 2014-01-22 ブラザー工業株式会社 ユニバーサルドライバ、及びデバイス制御方法
JP5321929B2 (ja) * 2010-11-26 2013-10-23 ブラザー工業株式会社 ユニバーサルデバイスドライバ、デバイス制御プログラム、情報処理装置、サーバ装置、及び、方法
JP5673177B2 (ja) * 2011-02-10 2015-02-18 セイコーエプソン株式会社 ネットワークシステム、ネットワークシステムの印刷制御方法およびクライアント端末
CN104898995B (zh) * 2011-02-10 2019-04-23 精工爱普生株式会社 网络系统、网络系统的打印控制方法及客户终端
JP5752464B2 (ja) 2011-04-04 2015-07-22 富士通コンポーネント株式会社 インターフェース装置
JP5893298B2 (ja) * 2011-08-31 2016-03-23 キヤノン株式会社 情報処理装置及びその制御方法、並びにプログラム
US9179016B2 (en) * 2011-10-25 2015-11-03 Hewlett-Packard Development Company, L.P. Communication architectures for direct printing and scanning
US20130201519A1 (en) 2012-02-03 2013-08-08 Apple Inc. Bridging Non-Network Interfaces and Network Interfaces
JP6011266B2 (ja) 2012-11-19 2016-10-19 ブラザー工業株式会社 通信中継プログラム、通信中継方法、情報処理装置及び画像処理装置

Also Published As

Publication number Publication date
US20140139878A1 (en) 2014-05-22
US9734437B2 (en) 2017-08-15
JP2014102620A (ja) 2014-06-05

Similar Documents

Publication Publication Date Title
JP6155607B2 (ja) 通信中継プログラム、及び、通信中継装置
JP6167502B2 (ja) 通信中継プログラム、通信中継装置、及び、画像処理装置
JP6011266B2 (ja) 通信中継プログラム、通信中継方法、情報処理装置及び画像処理装置
JP7059752B2 (ja) アプリケーションプログラム
JP6011167B2 (ja) 通信中継プログラム、及び、通信中継装置
JP6075010B2 (ja) 通信中継プログラム、及び、画像処理装置
JP6142511B2 (ja) 通信中継プログラム、通信中継装置、及び、画像処理装置
JP2008027128A (ja) デバイス管理システム、管理装置、プログラム。
CN102597974B (zh) 装置控制设备、客户端设备、装置控制方法和装置控制系统
JP6714839B2 (ja) 印刷システム、印刷管理サーバ、通信中継装置およびプログラム
JP2005218036A (ja) ネットワークサーバ
JP2019179311A (ja) アプリケーションプログラム
JP2017170826A (ja) 画像処理装置、制御方法、プログラム
JP2012064091A (ja) 情報処理システム、情報処理装置、及びプログラム
JP2016083870A (ja) 画像形成装置及びその制御方法、システム
JP2008097587A (ja) クライアント装置、ネットワークシステムおよびプログラム
JP5974364B2 (ja) デバイス制御装置、デバイス装置、制御方法および制御プログラム
JP2007213501A (ja) 文書処理装置、文書処理システムおよび文書ファイルのデータ構造
JP4710468B2 (ja) 印刷要求装置、印刷システムおよび印刷要求方法
JP2005148953A (ja) 情報処理装置、周辺装置制御システム及び情報処理装置に適用される周辺装置制御方法並びにそのプログラム
JP7236243B2 (ja) 情報処理装置、制御方法、及びプログラム
JP2012252411A (ja) 選択プログラム、画像処理装置、及び、コンピュータ
JP7676884B2 (ja) 通信ユニットおよび印刷システム
JP5174126B2 (ja) 情報処理装置及びクライアント装置
JP4857211B2 (ja) 画像形成装置、分散印刷システム、分散印刷方法、プログラムおよび記録媒体

Legal Events

Date Code Title Description
RD05 Notification of revocation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7425

Effective date: 20140409

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150930

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160826

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160906

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20161101

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170310

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170420

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: 20170509

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170522

R150 Certificate of patent or registration of utility model

Ref document number: 6155607

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150