JP7413750B2 - プログラム、プログラム群、および情報処理装置 - Google Patents

プログラム、プログラム群、および情報処理装置 Download PDF

Info

Publication number
JP7413750B2
JP7413750B2 JP2019226157A JP2019226157A JP7413750B2 JP 7413750 B2 JP7413750 B2 JP 7413750B2 JP 2019226157 A JP2019226157 A JP 2019226157A JP 2019226157 A JP2019226157 A JP 2019226157A JP 7413750 B2 JP7413750 B2 JP 7413750B2
Authority
JP
Japan
Prior art keywords
port
information
request
program
protocol
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
JP2019226157A
Other languages
English (en)
Other versions
JP2021096555A (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 JP2019226157A priority Critical patent/JP7413750B2/ja
Publication of JP2021096555A publication Critical patent/JP2021096555A/ja
Application granted granted Critical
Publication of JP7413750B2 publication Critical patent/JP7413750B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Description

本発明は、第1通信インタフェースで用いられる第1プロトコルでのデバイスリクエストをデバイスに送信するためのプログラム等に関する。
下記特許文献に記載されているように、近年のプリンタ、スキャナ等のデバイスには、サーバ、所謂、EW S(Embedded Web Serverの略)が組み込まれており、PC等の情報処理装置により、そのサーバにアクセスすることで、そのデバイスの状態、設定情報等を確認することが可能とされている。
特開2007-079940号公報
PC等の情報処理装置では、第1プロトコルでの、例えば、デバイスのEWSにアクセスする際に、HTTPでのデバイスリクエストが出力される。一方で、HTTPで用いられる通信インタフェースと異なる通信インタフェース、例えば、USBインタフェースを介してデバイスが情報処理装置に接続されている場合がある。このような場合に、HTTPでのデバイスリクエストを、USBインタフェースを介してデバイスに送信し、そのデバイスからデバイスリクエストの返信を、USBインタフェースを介して受信することが望まれている。そこで、本発明は、第1プロトコルでのデバイスリクエストを、第1プロトコルで用いられる第1通信インタフェースと異なる第2通信インタフェースを介してデバイスに送信し、そのデバイスからデバイスリクエストの返信を、第2通信インタフェースを介して受信することを課題とする。
上記課題を解決するために、実施例に開示するプログラムは、第1通信インタフェースおよび第2通信インタフェースを備える情報処理装置のコンピュータが読み取り可能なプログラムであって、前記コンピュータを、デバイスを指定するデバイス指定情報を取得する取得手段と、前記取得手段により取得されたデバイス指定情報と、当該デバイス指定情報により指定されるデバイスと通信を行うためのデバイスポートを示すポート情報とを関連付けて、前記情報処理装置のメモリに記憶させる記憶制御手段と、前記メモリに関連付けて記憶されているデバイス指定情報とポート情報とに基づいて、当該デバイス指定情報により指定されるデバイスへのデバイスリクエストを受け付けるためのデバイスポートであって、当該ポート情報に応じたデバイスポートを作成する第1作成手段として機能させ、前記デバイスリクエストは第1プロトコルによるリクエストであり、前記第1プロトコルは前記第1通信インタフェースで用いられるプロトコルであり、前記デバイスポートは、前記プログラムがインストールされているコンピュータにインストールされたプログラムであって前記プログラムとは異なるプログラムから、前記第1プロトコルによって、前記第1通信インタフェースを介さずリクエストを受け付けるためのポートであり、前記コンピュータを、 前記第1作成手段により作成されたデバイスポートへの前記デバイスリクエストを受け付けた場合に、当該デバイスリクエストを前記第2通信インタフェースに接続されたデバイスに、第2プロトコルによって送信する送信手段と、前記送信手段により送信された前記デバイスリクエストに対する返信を前記デバイスから前記第2通信インタフェースを介して受信する受信手段として機能させ、前記第2プロトコルは前記第2通信インタフェースで用いられるプロトコルであり、前記受信手段により受信した返信を、前記デバイスポートへの前記デバイスリクエストのリクエスト元のプログラムに、前記第1プロトコルで出力する第1出力手段と、して機能させることを特徴とする。
実施例に開示するプログラムは、デバイスを指定するデバイス指定情報を取得すると、そのデバイス指定情報とポート情報とをメモリに記憶させる。そして、プログラムは、メモリに記憶されたデバイス指定情報とポート情報とに基づいて、デバイス指定情報が指定するデバイスと通信を行うためのデバイスポートであって、ポート情報に応じたデバイスを作成する。このため、プログラムは、そのデバイスポートへのデバイスリクエストを第1プロトコルで受け付けると、当該デバイスリクエストを第2通信インタフェースに接続されているデバイスに第2プロトコルで送信する。この際、プログラムは、そのデバイスからデバイスリクエストの返信を受信すると、その返信を、デバイスリクエストのリクエスト元のプログラムに第1プロトコルによって出力する。これにより、第1プロトコルでのデバイスリクエストを、第2通信インタフェースを介してデバイスに送信し、そのデバイスからデバイスリクエストの返信を、第2通信インタフェースを介して受信することができる。
通信システム1のブロック図である。 通信システム1での処理を示すシーケンス図である。 通信システム1での処理を示すシーケンス図である。 通信システム1での処理を示すシーケンス図である。 通信システム1での処理を示すシーケンス図である。 通信システム1での処理を示すシーケンス図である。
以下、適宜図面を参照して本発明の実施形態について説明する。なお、以下に説明する実施形態は、本発明の一例にすぎず、本発明の要旨を変更しない範囲で、本発明の実施形態を適宜変更できることは言うまでもない。例えば、後述する各処理の実行順序は、本発明の要旨を変更しない範囲で、適宜変更できる。
図1は、本実施形態に係る通信システム1のブロック図である。図1に示す通信システム1は、PC(情報処理装置の一例)10、MFP(デバイスの一例)50、MFP(デバイスの一例)52、MFP54を備える。MFP50,52,54は、スキャン処理,印刷処理等の各種処理を実行可能なデバイスである。また、MFP50には、EWS(サーバの一例)56が組み込まれており、MFP52には、EWS(サーバの一例)58が組み込まれており、MFP54には、EWS60が組み込まれている。EWS56,58,60は、ウェブサーバと同等の機能を有しており、EWS56,58,60には、MFP50,52,54の状態を示す情報,設定情報などに関するHTMLのウェブページを示す情報(以下、「EWS情報」と記載する)(サーバ情報の一例)が蓄積されている。
PC10は、CPU(コンピュータの一例)12、メモリ14、LCD16、入力I/F18、ネットワークI/F(第1通信インタフェースの一例)19、USBI/F(第2通信インタフェースの一例)20を主に備えている。これらの構成要素は、バス22を介して互いに通信可能とされている。
CPU12は、メモリ14内の制御プログラム(プログラム及び第1プログラムの一例)30,アプリケーション(別プログラム及び第2プログラムの一例)32,設定ツール(別プログラム及び第2プログラムの一例)34,ブラウザ(ブラウザの一例)36,OS38に従って処理を実行する。制御プログラム30は、MFP50,52のEWS56,58からサーバ情報を取得するためのアプリケーションプログラムである。また、アプリケーション32は、MFP50,52を用いて各種処理を実行するためのアプリケーションプログラムである。また、設定ツール34は、MFP50,52のEWS56,58に蓄積されているEWS情報に基づいて各種設定を行うためのアプリケーションプログラムである。なお、アプリケーション32は、ライブラリ40を含んでおり、設定ツール34は、ライブラリ42を含んでいる。ライブラリ40とライブラリ42とは、同じアプリケーションプログラムであり、制御プログラム30の処理によりMFP50,52のEWS56.58からサーバ情報を取得する際に用いられる。また、ブラウザ36は、ネットワークI/F19を介してHTTPを用いてHTML形式のデータを取得し、ウェブページをLCD16に表示するためのアプリケーションプログラムである。また、OS38は、制御プログラム30等に利用される基本的な機能を提供するプログラムである。なお、以下の説明では、制御プログラム30等を実行するCPU12のことを、単にプログラム名でも記載する場合がある。例えば、「制御プログラム30が」という記載は、「制御プログラム30を実行するCPU12が」ということを意味する場合がある。
また、メモリ14は、データ記憶領域(メモリの一例)46を備える。データ記憶領域46は、制御プログラム30等の実行に必要なデータなどを記憶する領域である。なお、メモリ14は、RAM、ROM、フラッシュメモリ、HDD、PC10に着脱されるUSBメモリ等の可搬記憶媒体、CPU12が備えるバッファなどが組み合わされて構成されている。
なお、メモリ14は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、non-transitoryな媒体である。non-transitoryな媒体には、上記の例の他に、CD-ROM、DVD-ROM等の記録媒体も含まれる。また、non-transitoryな媒体は、tangibleな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、non-transitoryなコンピュータが読み取り可能なストレージ媒体には含まれない。
また、LCD16は、PC10の各種情報を表示する。なお、本願のディスプレイは、液晶ディスプレイに限らず、有機ELディスプレイ等の他の表示方式のディスプレイでも良い。入力I/F18は、キーボード、マウス等を含み、ユーザ操作を入力するためのインタフェースである。なお、入力I/F18は、キーボード等に限らず、LCD16の表示画面に重畳された膜状のタッチセンサでも良い。
ネットワークI/F19は、HTTP(第1プロトコルの一例)を用いてデバイスと通信を行うためのものであり、ネットワーク60を介してMFP54と通信可能とされている。また、USBI/F20は、USBプロトコル(第2プロトコルの一例)を用いてデバイスと通信を行うためのものであり、MFP50及びMFP52と通信可能とされている。
なお、本明細書では、基本的に、プログラムに記述された命令に従ったCPU12の処理を示す。すなわち、以下の説明における「判断」、「抽出」、「選択」、「算出」、「決定」、「特定」、「取得」、「受付」、「制御」「設定 」等の処理は、CPU12の処理を表している。CPU12による処理は、OS38を介したハードウェア制御も含む。なお、「取得」は要求を必須とはしない概念で用いる。すなわち、CPU12が要求することなくデータを受信するという処理も、「CPU12がデータを取得する」という概念に含まれる。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。また、「命令」「応答」「要求」等の処理は、「命令」「応答」「要求」等を示す情報を通信することにより行われる。また、「命令」「応答」「要求」等の文言を、「命令」「応答」「要求」等を示す情報そのものという意味で記載してもよい。また、CPUによる、情報Aは事柄Bであることを示しているか否かを判断する処理を、「情報Aから、事柄Bであるか否かを判断する」のように概念的に記載することがある。CPUによる、情報Aが事柄Bであることを示しているか、事柄Cであるかを示しているかを判断する処理を、「情報Aから、事柄Bであるか事柄Cであるかを判断する」のように概念的に記載することがある。
通信システム1では、上述した構成に従って、PC10とネットワークI/F19を介して通信可能とされたMFP54から、ブラウザ36がEWS情報を取得し、EWS情報に基づいてウェブページをLCD16に表示することが可能とされている。このような処理は、従来から行われている処理であり、ブラウザ36がHTTPを用いることでMFP54からEWS情報を取得することができる。一方で、PC10とUSBI/F20を介して通信可能とされたMFP50,52、つまり、USB接続されたMFP50,52から、ブラウザ36は、従来の手法ではHTTPを用いてEWS情報を取得することはできなかったが、通信システム1では、USB接続されたMFP50,52から、ブラウザ36がHTTPを用いてEWS情報を取得することが可能とされている。以下に、USB接続されたMFP50,52から、ブラウザ36がHTTPを用いてEWS情報を取得する際の制御プログラム30等の処理について、図2乃至図4に示すシーケンス図を用いて、詳しく説明する。
詳しくは、PC10への電源投入に伴って、OS38の処理により制御プログラム30が起動する(図2参照:S100)。そして、制御プログラム30は、データ記憶領域46を参照し(S102)、データ記憶領域46に関連情報が記憶されているか否かを判断する(S104)。関連情報は、EWS情報の取得先を示すデバイス及び、そのデバイスとの通信を行うためのデバイスポートを示す情報である。関連情報については、後に詳しく説明する。まず、ここでは、関連情報が、まだデータ記憶領域46に記憶されていない場合を説明する。制御プログラム30は、データ記憶領域46に関連情報は記憶されていないと判断し(S104:NO)、制御プログラム30は、受付ポートを作成する(S106)。そして、制御プログラム30は、その受付ポートを「Accept」で待ち受け状態とする(S108)。つまり、制御プログラム30は、受付ポートを、情報を受け付け可能な状態(以下、「受付可能状態」と記載する)とする。なお、受付ポートのポート番号は、HTTPに従ったものであり、50000とされている。そして、制御プログラム30は、その受付ポートによりアプリケーション32のライブラリ40と通信を行う。制御プログラム30は、例えば、既知のSocket方式に従ってポートの作成、ポートの状態の変更、ポートの削除などを行う。
このように、PC10では、電源投入に伴って、制御プログラム30が起動し、制御プログラム30の処理により、アプリケーション32と通信を行うための受付ポートが作成される。一方で、アプリケーション32は、ユーザ操作により起動し、アプリケーション32が起動すると(図3参照:S110)、アプリケーション32に含まれるライブラリ40が、ポート番号50000の受付ポートに接続を確認するための情報を出力する(S112)。なお、ライブラリ40には、通信対象のポートのポート番号が50000であることがプログラミングされている。そして、制御プログラム30は、受付ポートに接続確認の情報が入力されると、「OK」をライブラリ40に返信する(S114)。なお、受付ポートに接続確認の情報が入力されない場合には、「NG」がライブラリ40に返信される。ちなみに、制御プログラム30は、ポート番号50000のデバイスポートを作成することができない場合に(例えば、ポート番号50000のポートが、他のプログラムによって既に使用されている場合に)、受付ポート決定の所定のルールに従って、そのポート番号50000と異なるポート番号を受付ポートのポート番号として決定し、そのポート番号のポートを受付ポートとして作成する。この場合、ライブラリ40がポート番号50000のポートに接続確認の情報を入力しようとしても、入力できない。そこで、ライブラリ40にも、受付ポート決定の所定のルールがプログラミングされている。接続確認の情報を入力できなかった場合、ライブラリ40は、ルールに従って、異なるポート番号のポートに接続確認の情報などを入力する。ライブラリ40は、接続確認の情報を入力できたポート番号を、受付ポートの番号として使用する。便宜上、本実施例ではポート番号50000のポートを受付ポートとして説明を続ける。
そして、ライブラリ40は、「OK」を受け付けると、ポート番号50000の受付ポートに、ポート情報の要求を出力する。この際、ライブラリ40は、ポート情報の要求とともに、デバイス指定情報も受付ポートに出力する。デバイス指定情報は、EWS情報の取得先のデバイスを指定する情報であり、ここでは、MFP50若しくは、MFP52を指定するデバイス指定情報が受付ポートに出力される。また、デバイス指定情報は、USBプロトコルで用いられる文字列の情報とされている。具体的には、例えば、デバイス指定情報として「VID/PID」が受付ポートに出力される。なお、VIDは、VenderID(メーカ番号)であり、PIDは、ProductID(製品番号)である。このため、「VID/PID」により、デバイスの機種(モデル)を特定することができる。ちなみに、MFP50のPIDは、「001111」であり、MFP52のPIDは、「002222」とされている。なお、1台のPCに、複数の同じ機種のプリンタをUSBで接続して利用する形態は一般的ではないと考えられる。そのため、本願実施例ではデバイス指定情報である「VID/PID」が、デバイスの個体を識別する情報としても用いられる。もちろん、「VID/PID」以外の情報、例えばシリアル番号などを、デバイスの個体を識別する情報として用いることとし、「VID/PID」と、デバイスの個体を識別する情報とを合わせてデバイス指定情報としてもよい。
そして、制御プログラム30は、受付ポートがポート情報の要求を受け付けると、その要求に含まれるデバイス指定情報により指定されるデバイス(以下、「対象デバイス」と記載する場合がある)の確認要求をOS38に出力する(S118)。この確認要求は、対象デバイスがHTTPに対応するデバイスであるか否かを確認するためのものであり、OS38は、対象デバイスがHTTPに対応するデバイスであれば、「true」を制御プログラム30に出力する(S120)。一方、OS38は、対象デバイスがHTTPに対応するデバイスでなければ、「false」を制御プログラム30に出力する(S120)。OS38は、例えば、レジストリと呼ばれる領域にUSBデバイスの情報を記憶しており、S118では、その情報の出力をOSに要求している。USBデバイスの情報は、PC10にUSB接続したデバイスから取得した情報であってもよいし、PC10のデータ記憶領域46や、デバイスメーカのサーバから取得した情報であってもよい。対象デバイスがHTTPに対応するデバイスであるか否かを示す情報は「true」「false」以外の情報であってもよい。また、ライブラリ40が出力するVID/PIDに基づいて、機種で判断してもよく、OS38からモデル情報を取得して判断してもよい。さらに言えば、デバイスからモデル情報を受け取って判断してもよい。
この際、制御プログラム30は、「true」をOS38から受け付けると、スレッドを作成する(S122)。そして、制御プログラム30は、デバイスポートを作成する(S124)。この際、制御プログラム30は、デバイス指定情報に含まれるPIDを利用して、デバイスの機種毎にポート番号の異なるデバイスポートを作成する。具体的には、制御プログラム30は、デバイス指定情報に含まれるPIDを種として決定的乱数生成器を作成し、離散一様分布器で一定範囲内の数値を、ポート番号として出力する。つまり、制御プログラム30は、PIDを種とする乱数を利用して、ポート番号を決定する。
例えば、対象デバイスがMFP50である場合において、PID「001111」を種として決定的乱数生成器が作成され、離散一様分布器で51000~65000の範囲内の数値が出力される。この際、例えば、ポート番号「51000」が出力され、そのポート番号「51000」のデバイスポートが作成される。また、例えば、対象デバイスがMFP52である場合において、PID「002222」を種として決定的乱数生成器が作成され、離散一様分布器で51000~65000の範囲内の数値が出力される。この際、例えば、ポート番号「58000」が出力され、そのポート番号「58000」のデバイスポートが作成される。このように、制御プログラム30は、デバイスの機種毎にポート番号の異なるデバイスポートを作成する。なお、このような手法でポート番号が決定される場合には、一定の範囲内の数値がポート番号として決定されるため、異なる機種であっても、非常に低い確率であるが、同じポート番号が出力される可能性は0%ではない。
また、制御プログラム30は、別の手法により、デバイスの機種毎にポート番号の異なるデバイスポートを作成してもよい。例えば、所定の初期値にPIDの数値を加算した値をポート番号として決定してもよい。つまり、対象デバイスがMFP50である場合において、初期値を「50000」とすると、その初期値にPID「001111」を加算した値「51111」をポート番号とし、そのポート番号「51111」のデバイスポートが作成される。また、対象デバイスがMFP52である場合において、初期値を「50000」とすると、その初期値にPID「002222」を加算した値「52222」をポート番号とし、そのポート番号「52222」のデバイスポートが作成される。このように、所定の初期値にPIDの数値を加算した値をポート番号とすることで、デバイスの機種毎にポート番号を一意的に決定することが可能となり、異なる機種に対して同じポート番号が決定される可能性は0%となる。ただし、PIDの数値が大きな値、例えば、「020000」であれば、初期値「50000」にPID「020000」を加算した値は「70000」となり、ポート番号として設定可能な範囲を超えてしまう場合がある。このような場合には、所定の初期値にPIDの数値を加算した値をポート番号とする手法は採用できない。
また、上記手法に従って決定されたポート番号のデバイスポートを作成しようとしても、そのポート番号のポートが、既に使用されている場合には、制御プログラム30が、そのポート番号のデバイスポートを作成することができない。つまり、上記手法に従ってポート番号が「51000」に決定されても、ポート番号51000のポートが、既に使用されている場合には、制御プログラム30が、ポート番号51000のデバイスポートを作成することができない。そこで、そのような場合に、制御プログラム30は、デバイス指定情報に含まれるPIDを種として決定的乱数生成器を作成し、離散一様分布器で一定範囲内の数値を再出力する。つまり、制御プログラム30は、PIDを種とする乱数を利用して、ポート番号を再決定する。そして、制御プログラム30は、再決定したポート番号のデバイスポートを作成する。
また、ポート番号の再決定の手法としては、所定の定数を加算する手法もとることができる。つまり、例えば、ポート番号が「51000」に決定され、ポート番号51000のポートが、既に使用されている場合に、制御プログラム30は、「51000」に所定の定数「50」を加算し、「51050」を新たなポート番号として再決定する。そして、制御プログラム30は、再決定したポート番号のデバイスポートを作成する。なお、再決定されたポート番号のポートも既に使用されている場合は、デバイスポートを作成することができるまで、上記手法に従ってポート番号の再決定が繰り返される。
そして、制御プログラム30は、上記手法に従ってポート番号を決定し、そのポート番号のデバイスポートを作成すると(S124)、そのデバイスポートを「Accept」で待ち受け状態とする(S126)。つまり、制御プログラム30は、デバイスポートを受付可能状態とする。そして、制御プログラム30は、作成したデバイスポートのポート番号を示す情報(以下、「ポート情報」と記載する)と、S116で受け付けているデバイス指定情報とを関連付けて、データ記憶領域46に記憶する(S128)。具体的には、例えば、対象デバイスがMFP50であり、デバイスポートのポート番号が「51000」である場合には、ポート番号「51000」と、MFP50を示すデバイス指定情報とが関連付けて、データ記憶領域46に記憶される。また、例えば、対象デバイスがMFP52であり、デバイスポートのポート番号が「58000」である場合には、ポート番号「58000」と、MFP52を示すデバイス指定情報とが関連付けて、データ記憶領域46に記憶される。
なお、ここで記憶されるポート情報とデバイス指定情報とが、先に説明した関連情報となる。つまり、制御プログラム30の処理によりデバイスポートが作成されることで、関連情報がデータ記憶領域46に記憶される。そして、制御プログラム30は、デバイスポートのポート番号を示すポート情報をライブラリ40に出力する(S130)。この際、制御プログラム30は、HTTP形式のポート情報をライブラリ40に出力する。具体的には、例えば、デバイスポートのポート番号が51000である場合に、制御プログラム30は、ポート情報「http://localhost:51000/」をライブラリ40に出力する。
ライブラリ40は、制御プログラム30からポート情報を受け付けると、ブラウザ36を起動する(S132)。そして、ライブラリ40は、制御プログラム30から受け付けたポート情報「http://localhost:51000/」をブラウザ36に出力する(S134)。これにより、ブラウザ36は、ポート番号51000のデバイスポートにアクセス可能となり、そのデバイスポートにEWS情報の要求情報をHTTPで出力する(図4参照:S136)。この際、制御プログラム30は、ポート番号51000のデバイスポートにHTTPでのEWS情報の要求情報を受け付けると、そのポート番号のポート情報と関連付けて記憶されているデバイス指定情報に応じたデバイス、つまり、MFP50に、EWS情報の要求情報をUSBプロトコル(第2プロトコルの一例)で出力する(S138)。このとき、制御プログラム30は、デバイスポートにHTTPで受け取った要求情報を変換することなく、USBでMFP50に送信する。すなわち、MFP50が制御プログラム30から受信する要求情報と、仮に、MFP50がブラウザ36から直接HTTPで受信するとして、MFP50がHTTPで受信する要求情報とは、同じ要求情報である。したがって、MFP50は、制御プログラム30から受信する場合と、HTTPで受信する場合とで、要求情報に対する処理を基本的には変更する必要がない。
次に、MFP50は、EWS情報の要求情報を受け付けると、EWS情報を制御プログラム30にUSBプロトコルで返信する(S140)。そして、制御プログラム30は、受け付けたEWS情報をブラウザ36にHTTPで出力する(S142)。このように、PC10では、制御プログラム30を介することで、ブラウザ36がHTTPを用いてEWS情報を取得することが可能とされている。そして、ブラウザ36は、取得したEWS情報に基づいてウェブページをLCD16に表示する(S143)。なお、MFP50が制御プログラム30に返信するEWS情報と、仮に、MFP50がブラウザ36に直接HTTPで返信するとして、MFP50がHTTPで返信するEWS情報とは、同じEWS情報である。また、制御プログラム30は、USBプロトコルで受信したEWS情報を変換することなく、HTTPでブラウザ36に出力する。したがって、ブラウザ36は、制御プログラム30から受け取る場合と、HTTPで受信する場合とで、EWS情報に対する処理を基本的には変更する必要がない。
なお、デバイスポートは情報を受け付けると、次の情報を受け付けることができない状態、つまり、次の情報の受付が不能な状態となる。このため、制御プログラム30は、ブラウザからEWS情報の要求情報を受け付けたデバイスポートを、その要求情報に応じたEWS情報をブラウザに出力した後に受付可能状態とする(S144)。これにより、ブラウザ36が、再度、そのデバイスポートにEWS情報の要求情報をHTTPで出力した場合(S146)において、そのデバイスポートが、EWS情報の要求情報を受け付けることができる。なお、以降の処理(S148~S154)は、先に説明した処理(S138~S144)と同じである。なお、ブラウザ36は、ブックマーク保存を行うことができるため、ブックマーク保存のユーザ操作を受け付けた場合に、そのデバイスポート、つまり、ポート番号51000のデバイスポートにアクセスするための情報、つまり、制御プログラム30から取得したポート情報をデータ記憶領域46に保存する(S156)。
このように、ポート情報がブラウザ36によりブックマーク保存されると、ブックマーク操作により、ブラウザ36は容易にデバイスポートにアクセスし、制御プログラム30を介してMFP50からEWS情報を取得することが可能となる。ただし、例えば、制御プログラム30が再起動されると、ブックマーク保存されたポート情報が示すポート番号と異なるポート番号のデバイスポートが作成される場合がある。つまり、制御プログラム30が再起動し、S106~S124の処理を実行すると、再度、デバイスポートが作成される。この際、ポート番号51000のデバイスポートが作成されれば、問題ないが、上述したように、制御プログラム30がデバイスポートを作成する際に、既に、ポート番号51000のポートが使用されている場合に、制御プログラム30は、ポート番号51000と異なるポート番号、例えば、ポート番号51010のポートをデバイスポートとして作成する。このような場合に、ブックマーク操作が実行されると、ブラウザ36は、ポート番号51000のデバイスポートにアクセスするためのポート情報を利用して、EWS情報の要求情報を出力しようとするが、当然、ブラウザ36は、ポート番号51010のデバイスポートにアクセスできず、ウェブページをLCD16に表示することはできない。
このため、制御プログラム30は、デバイスポートを作成した際(図3参照:S124)に、作成したデバイスポートのポート情報と、ライブラリ40から受け付けたデバイス指定情報とを関連付けて、関連情報としてデータ記憶領域46に記憶している(S128)。そして、制御プログラム30は、その関連情報に基づいてデバイスポートを作成する。これにより、ブックマーク保存されたポート情報が示すポート番号と同じポート番号のデバイスポートを作成することが可能となり、制御プログラム30が再起動した場合などにおいても、ブラウザがブックマーク操作によりウェブページをLCD16に表示することが可能となる。
詳しくは、制御プログラム30は、OS38からの指令により再起動すると(図2参照:S100)、データ記憶領域46を参照し(S102)、データ記憶領域46に関連情報が記憶されているか否かを判断する(S104)。ここでは、関連情報はデータ記憶領域46に記憶されているため、データ記憶領域46に関連情報が記憶されていると判断され(S104:YES)、制御プログラム30は、監視スレッドを作成する(S160)。次に、制御プログラム30は、USB一覧情報をOS38に要求する(S162)。USB一覧情報は、USBI/F20に接続されている全てのデバイスを示す情報である。OS38は、USB一覧情報の要求を受け付けると、USB一覧情報を制御プログラム30に出力する(S164)。そして、制御プログラム30は、受け付けたUSB一覧情報に基づいて、関連情報に含まれるデバイス指定情報に応じたデバイスが、USBI/F20に接続されているか否かを判断する(S166)。この際、デバイス指定情報に応じたデバイスが、USBI/F20に接続されていないと判断されると、それらの処理(S162~S166)と同じ処理(S168~S178)が繰り返し実行される。なお、制御プログラム30は受け付けたUSB一覧情報のみでは判断できない場合、例えば、個体を識別する情報がUSB一覧情報に含まれていない場合には、PC10にUSB接続したデバイスにさらに情報を問い合わせる通信を行い、返信された情報に基づいて、デバイス指定情報に応じたデバイスが、USBI/F20に接続されているか否かを判断してもよい。
そして、デバイス指定情報に応じたデバイスが、USBI/F20に接続されたと判断されると(S178)、制御プログラム30は、判断の対象とされたデバイス指定情報を監視スレッドから受け付ける(S180)。次に、制御プログラム30は、監視スレッドと異なるスレッドを作成する(S182)。続いて、制御プログラム30は、受け付けたデバイス指定情報と関連付けてデータ記憶領域46に記憶されているポート情報を特定し、そのポート情報が示すポート番号のデバイスポートを作成する(S184)。そして、制御プログラム30は、そのデバイスポートを受付可能状態とする(S186)。
このように、PC10では、S124において、例えば、ポート番号51000のデバイスポートが作成され、S128において、ポート番号51000を示すポート情報がデータ記憶領域46に記憶されている場合に、制御プログラム30の再起動時において、そのポート番号51000のデバイスポートが作成される(S184)。さらに言えば、そのポート情報と関連付けてデータ記憶領域46に記憶されているデバイス指定情報に応じたデバイスが、USBI/F20に接続されていることが確認された後に(S178)、そのポート情報に応じたデバイスポートが作成される(S184)。このため、ブラウザ36が、ライブラリ40からの指令でなく、ユーザ操作により起動し(図4参照:S190)、ブックマーク操作が実行された場合に(S192)、ブラウザ36は、ブックマーク保存されたポート情報、つまり、S156で保存されたポート番号51000のデバイスポートにアクセスするためのポート情報を利用してデバイスポートにアクセスし、そのデバイスポートにEWS情報の要求情報をHTTPで出力する(S136)。そして、先に説明したように、S138以降の処理が実行される。これにより、制御プログラム30が再起動した場合などにおいても、ブックマーク保存されたポート情報を利用して確実にデバイスポートにアクセスするとともに、デバイス指定情報に応じたデバイスのウェブページをLCD16に表示することが可能となる。
また、PC10では、電源投入時に制御プログラム30が起動し(S100)、データ記憶領域46に関連情報が記憶されている場合(S104:YES)に、関連情報に基づいてデバイスポートが作成される(S184)。つまり、PC10が起動している間は、常時、関連情報に基づくデバイポートが存在する。これにより、ブラウザ36が何れのタイミングで起動して、ブックマーク操作がされた場合であっても、ブラウザ36は、ブックマーク操作によりデバイスポートにアクセスすることが可能となり、デバイスからEWS情報を取得し、ウェブページをLCD16に表示することが可能となる。
さらに言えば、PC10では、電源投入時に制御プログラム30が起動し(S100)、制御プログラム30は、関連情報に含まれるデバイス指定情報に応じたデバイスがUSBI/F20に接続されていることを確認すると(S178)、関連情報に基づいてデバイスポートを作成する(S184)。つまり、PC10が起動して直ぐに、関連情報に基づくデバイスポートが作成される。これにより、関連情報に含まれるポート情報が示すポート番号のポートを、制御プログラム30と異なるアプリケーションプログラムにより使用される前に、制御プログラム30がデバイスポートとして占有することが可能となる。
また、ブラウザ36がブックマーク保存されたポート情報を利用してEWS情報を取得する際に、USBI/F20に接続されたデバイスが取り外され、そのデバイスと異なるデバイスがUSBI/F20に接続されている場合には、ユーザが意図していないデバイスのEWS情報を,ブラウザ36が取得する虞がある。具体的には、例えば、対象デバイスがMFP50である場合に、ブラウザ36でのブックマーク操作により、上述したように、ポート番号51000のデバイスポートにアクセスするためのポート情報がデータ記憶領域46に記憶されている。このような場合に、MFP50がUSBI/F20から取り外され、そのMFP50の代わりに、MFP54がUSBI/F20に接続される場合がある。そして、MFP50の代わりにMFP54がUSBI/F20に接続された状態で、制御プログラム30が再起動し、ライブラリ40からMFP54を指定するデバイス指定情報を含むポート情報の要求を受け付けると、そのMFP54と通信を行うためのデバイスポートが作成される。この際、従来の手法では、対象デバイスの機種等を考慮せずにポート番号が決定されていたため、MFP54を対象デバイスとして、S124においてポート番号「51000」のデバイスポートが作成される可能性がある。そして、そのようにデバイスポートが作成されると、S128においてMFP54を指定するデバイス指定情報と、ポート番号「51000」を示すポート情報とが関連付けてデータ記憶領域46に記憶される。このような状態で、ブラウザ36が、ブックマーク操作によりデバイスポートにアクセスすると、ポート番号「51000」のデバイスポートにアクセスし、そのデバイスポートに、EWS情報の要求情報を出力する(S136)。そして、制御プログラム30は、ポート番号51000のデバイスポートにEWS情報の要求情報を受け付けると、そのポート番号のポート情報と関連付けて記憶されているデバイス指定情報に応じたデバイス、つまり、MFP54に、EWS情報の要求情報を出力する(S138)。このため、MFP54がEWS情報を制御プログラム30に出力し、そのEWS情報が、制御プログラム30によりブラウザ36に出力される。これにより、ブラウザ36は、MFP54のEWS情報を取得し、そのEWS情報に基づいてウェブページをLCD16に表示する。つまり、ユーザは、MFP50のEWS情報を閲覧するべく、ブックマーク保存を行っているのに、ブックマーク操作によりMFP50ではなく、MFP54のEWS情報がLCD16に表示される。このように、ユーザが意図していないデバイスのEWS情報が,LCD16に表示されることは好ましくない。
そこで、制御プログラム30は、ライブラリ40からポート情報の要求を受け付けたことに応じてデバイスポートを作成する場合(S124)に、上述したように、PIDを利用してデバイスの機種毎にポート番号の異なるデバイスポートを作成している。つまり、MFP50の代わりにMFP54がUSBI/F20に接続された状態で、制御プログラム30が再起動し、ライブラリ40からMFP54を指定するデバイス指定情報を含むポート情報の要求を受け付けると、制御プログラム30は、MFP54の機種に応じたポート番号のデバイスポートを作成する。つまり、MFP54のPIDは、当然、MFP50のPIDと異なっているため、上述したように、PIDを利用してポート番号を決定すると、MFP54を対象デバイスとするポート番号は、MFP50を対象デバイスとするポート番号と異なる番号に決定される。このため、制御プログラム30は、S124においてポート番号「51000」と異なるポート番号、例えば、ポート番号「55000」のデバイスポートを作成する。そして、制御プログラム30は、S128においてMFP54を指定するデバイス指定情報と、ポート番号「55000」を示すポート情報とを関連付けてデータ記憶領域46に記憶する。このような状態で、ブラウザ36が、ブックマーク操作により、ポート番号51000のデバイスポートにアクセスするためのポート情報を利用してデバイスポートにアクセスしても、ポート番号「55000」のデバイスポートにアクセスすることはできない。これにより、ブラウザ36が、MFP54のEWS情報を取得することはなくなり、ユーザが意図していないデバイスのEWS情報のLCD16への表示を防止することが可能となる。
なお、上記説明では、アプリケーション32のライブラリ40からのポート情報の要求に応じて、制御プログラム30がデバイスポートを作成し、そのデバイスポートのポート情報をアプリケーション32のライブラリ40に出力しているが、設定ツール34にも、アプリケーション32のライブラリ40と同じライブラリ42が含まれている。このため、設定ツール34のライブラリ42も、アプリケーション32のライブラリ40と同様の処理を行うことができる。つまり、上述したライブラリ40による処理と同じ処理を、設定ツール34のライブラリ42も実行することが可能とされている。
また、上記実施形態では、図4に示すように、ブラウザ36がEWS情報の要求情報を出力した後に、制御プログラム30が、その要求情報に応じてEWS情報をブラウザ36に出力するまで、デバイスポートは、情報を受付可能な状態とされない。つまり、制御プログラム30は、ブラウザ36から受け付けた1の要求に応じた返信を、ブラウザ36に出力するまで、次の要求を受け付けることができず、処理時間が長くなる虞がある。そこで、制御プログラム30は、ブラウザ36から要求を受け付ける毎に、デバイスポートを受付可能状態とすることも可能である。
詳しくは、図5に示すように、ブラウザ36が、デバイスポートにEWS情報の要求情報をHTTPで出力すると(S200)、制御プログラム30は、EWS情報の要求情報をUSBプロトコルでMFP50に出力する(S202)。この際、制御プログラム30は、EWS情報の要求情報に、1番目の要求情報であることを示す識別情報(ID:No.1)を付与し、その識別情報が付与されたEWS情報の要求情報をMFP50に出力する。そして、制御プログラム30は、その要求情報に対する返信の受け付けを待つことなく、デバイスポートを受付可能状態とする(S204)。このため、デバイスポートは、1番目のEWS情報の要求情報に対する返信を待つことなく、ブラウザ36が2番目に出力したEWS情報の要求情報を受け付ける(S206)。そして、制御プログラム30は、2番目の要求情報であることを示す識別情報(ID:No.2)を付与したEWS情報の要求情報をMFP50に出力し(S208)、デバイスポートを受付可能状態とする(S210)。
また、MFP50は、識別情報が付与されたEWS情報の要求情報を受け付けると、その要求情報に対する返信として、その要求情報に付与された識別情報をEWS情報に付与し、識別情報が付与されたEWS情報をUSBプロトコルで、制御プログラム30に出力する。このため、MFP50は、例えば、1番目のEWS情報の要求情報に対する返信として、識別情報「ID:No.1」が付与されたEWS情報をUSBプロトコルで制御プログラム30に出力する(S212)。そして、制御プログラム30は、識別情報「ID:No.1」が付与されたEWS情報をHTTPでブラウザ36に出力する(S214)。
また、制御プログラム30は、S210でデバイスポートを受付可能状態としているため、ブラウザ36が3番目に出力したEWS情報の要求情報を受け付ける(S216)。そして、制御プログラム30は、3番目の要求情報であることを示す識別情報(ID:No.3)を付与したEWS情報の要求情報をMFP50に出力し(S218)、デバイスポートを受付可能状態とする(S220)。また、MFP50が、例えば、2番目のEWS情報の要求情報に対する返信として、識別情報「ID:No.2」が付与されたEWS情報をUSBプロトコルで制御プログラム30に出力すると(S222)、制御プログラム30は、識別情報「ID:No.2」が付与されたEWS情報をHTTPでブラウザ36に出力する(S224)。また、MFP50が、例えば、3番目のEWS情報の要求情報に対する返信として、識別情報「ID:No.3」が付与されたEWS情報をUSBプロトコルで制御プログラム30に出力すると(S226)、制御プログラム30は、識別情報「ID:No.3」が付与されたEWS情報をHTTPでブラウザ36に出力する(S228)。
このように、制御プログラム30が、ブラウザ36から要求情報を受け付ける毎に、デバイスポートを受付可能状態とすることで、制御プログラム30が出力した要求情報の返信を待つことなく、ブラウザ36からの要求情報を順次、受け付けることが可能となる。これにより、処理時間の短縮を図ることが可能となる。また、制御プログラム30が出力するEWS情報の要求情報及び、EWS情報に、識別情報が付与されることで、ブラウザ36が出力したEWS情報の要求情報と、その要求情報に対するEWS情報とを確実に対応させることが可能となる。
また、上記実施形態では、制御プログラム30が作成したデバイスポートに、ブラウザ36がデバイスリクエストとして、EWS情報の要求情報を出力することで、MFP50からEWS情報を取得しているが、制御プログラム30が作成したデバイスポートに、アプリケーション32がデバイスリクエストとして、各種画像処理の要求を出力することで、MFP50に各種画像処理を実行させることができる。
詳しくは、制御プログラム30が、デバイスポートを作成し(図3参照:S124)、作成したデバイスポートを受付可能状態とした後に(S126)、そのデバイスポートのポート情報と、デバイス指定情報とを関連付けてデータ記憶領域46に記憶すると(S128)、制御プログラム30は、ライブラリ40でなく、図6に示すように、アプリケーション32にポート情報を出力する(S300)。これにより、アプリケーション32は、制御プログラム30が作成したデバイスポートにアクセス可能となり、そのデバイスポートにコピー処理の要求をHTTPで出力する(S302)。そして、制御プログラム30は、デバイスポートにHTTPでのコピー処理の要求を受け付けると、そのデバイスポートのポート情報と関連付けて記憶されているデバイス指定情報に応じたデバイス、つまり、MFP50に、コピー処理の要求をUSBプロトコルで出力する(S304)。これにより、MFP50においてコピー処理が実行される(S306)。この際、MFP50は、コピー処理を完了させると、制御プログラム30にコピー処理が完了したことを示す情報をUSBプロトコルで送信する(S308)。また、MFP50は、コピー処理にエラーが発生した場合には、エラーが発生したことを示す情報を制御プログラム30にUSBプロトコルで送信する(S308)。そして、制御プログラム30は、コピー処理が完了したことを示す情報、若しくは、エラーが発生したことを示す情報を、HTTPでアプリケーション32に出力する(S310)。なお、制御プログラム30は、コピー処理が完了したことを示す情報、若しくは、エラーが発生したことを示す情報をアプリケーション32に出力した後に、デバイスポートを受付可能状態とする(S312)。このように、制御プログラム30が作成したデバイスポートに、アプリケーション32がデバイスリクエストとして、各種画像処理の要求を出力することで、MFP50に各種画像処理を実行させることもできる。
なお、S106を実行するCPU12は、第2作成手段の一例である。S116を実行するCPU12は、取得手段、受付手段及び第4出力手段の一例である。S124を実行するCPU12は、第3作成手段の一例である。S128を実行するCPU12は、記憶制御手段の一例である。S130を実行するCPU12は、公開手段、第2出力手段及び第3出力手段の一例である。S138,S148,S202,S208,S218,S304を実行するCPU12は、送信手段の一例である。S140,S150,S212,S222,S226,S308を実行するCPU12は、受信手段の一例である。S142,S152,S214,S224,S228,S310を実行するCPU12は、第1出力手段の一例である。S166,S172,S178を実行するCPU12は、判断手段の一例である。S184を実行するCPU12は、第1作成手段の一例である。
上記した実施形態によれば、以下の効果を奏する。
上記実施形態では、制御プログラム30が、デバイスを指定するデバイス指定情報を受け付けると、そのデバイス指定情報と、ポート番号を示すポート情報とを関連付けてデータ記憶領域46に記憶する。そして、制御プログラム30は、データ記憶領域46に記憶したポート情報とデバイス指定情報とに基づいて、当該デバイス指定情報に応じたデバイスと通信を行うためのデバイスポートであって、当該ポート情報が示すポート番号のデバイスポートを作成する。このため、制御プログラム30は、そのデバイスポートへのデバイスリクエストをHTTPに従った第1プロトコルで受け付けると、当該デバイスリクエストをUSBI/F20に接続されているデバイスにUSBプロトコルで送信する。この際、制御プログラム30は、そのデバイスからデバイスリクエストの返信を受信すると、その返信を、デバイスリクエストのリクエスト元のプログラムにHTTPによって出力する。これにより、デバイス指定情報に応じたデバイスに、適切にデバイスリクエストを送信することが可能となる。なお、HTTPはネットワーク60を介して通信を行うためのプロトコルであり、ポート番号はHTTPで用いられる番号である。
また、上記実施形態では、制御プログラム30が、デバイス指定情報に基づいてデバイスポートを作成すると、そのデバイスポートのポート情報をライブラリ40に出力する。そして、ライブラリ40は、ポート情報を受け付けると、そのポート情報をブラウザ36に出力し、ブラウザ36は、ポート情報を受け付けると、そのポート情報を用いてデバイスリクエストをデバイスポートにHTTPで出力する。このため、制御プログラム30は、デバイスポートへのデバイスリクエストを受け付けると、当該デバイスリクエストをUSBI/F20に接続されているデバイスにUSBプロトコルで送信する。この際、制御プログラム30は、そのデバイスからデバイスリクエストの返信を受信すると、その返信を、ブラウザ36にHTTPで出力する。これにより、ブラウザ36からHTTPで出力されたデバイスリクエストを、USBI/F20を介してデバイスに送信し、そのデバイスからデバイスリクエストの返信をブラウザ36に出力することが可能となる。
また、制御プログラム30は、デバイス指定情報とポート情報とを関連付けてデータ記憶領域46に記憶した後に、当該制御プログラム30が再起動された場合に、データ記憶領域46に記憶したポート情報とデバイス指定情報とに基づいてデバイスポートを作成する。これにより、制御プログラム30が再起動された場合においても、デバイス指定情報に応じたデバイスに、適切にデバイスリクエストを送信することが可能となる。
また、制御プログラム30は、データ記憶領域46に記憶されているポート情報とデバイス指定情報とに基づいてデバイスポートを作成する前に、デバイス指定情報に応じたデバイスからデバイスリクエストを受け付けるためのデバイポートを作成する。この際、制御プログラム30は、状況に応じて異なるポート番号のデバイスポートを作成する。例えば、作成しようとしたデバイスポートのポート番号が既に使用されている場合に、そのポート番号と異なるポート番号のデバイスポートを作成する。そして、制御プログラム30は、その作成したデバイスポートのポート情報とデバイス指定情報とをデータ記憶領域46に記憶させ、その作成したデバイスポートが破棄された場合に、データ記憶領域46に記憶されているポート情報とデバイス指定情報とに基づいてデバイスポートを作成する。これにより、最初に作成したデバイスポートが破棄された場合に、そのデバイスポートと同じポート番号のデバイスポートを作成することができる。
また、制御プログラム30は、ライブラリ40からデバイス指定情報を受け付けると、そのデバイス指定情報に応じたデバイスのデバイスポートを作成する。これにより、ライブラリ40が指定するデバイスのデバイスポートを作成することができる。
また、制御プログラム30は、ライブラリ40からポート情報の要求を受け付けると、デバイスポートを作成し、作成したデバイスポートのポート情報をライブラリ40に出力する。これにより、ライブラリ40の要求に応じたデバイスポートを作成するとともに、そのデバイスポートにアクセスするための情報をライブラリ40が取得することができる。
また、制御プログラム30は、データ記憶領域46に記憶されているデバイス指定情報に応じたデバイスと通信が確立しているか否かを判断しており、デバイスと通信が確立していると判断された場合に、データ記憶領域46に記憶されているポート情報とデバイス指定情報とに基づいてデバイスポートを作成する。これにより、デバイス指定情報に応じたデバイスと確実に通信することが可能なデバイスポートを作成することができる。
制御プログラム30は、デバイスリクエストとして、EWS情報の要求情報をHTTPで受け付けた場合に、そのEWS情報の要求情報をUSBI/F20に接続されているデバイスにUSBプロトコルで送信する。この際、制御プログラム30は、そのデバイスからEWS情報を受信すると、そのEWS情報を、EWS情報のリクエスト元のプログラムにHTTPによって出力する。これにより、デバイスポートを介して適切にEWS情報の送受信を行うことができる。
また、本発明は、上記実施形態に限定されるものではなく、当業者の知識に基づいて種々の変更、改良を施した種々の態様で実施することが可能である。具体的には、例えば、上記実施形態では、PIDを利用してデバイスの機種毎に異なるポート番号のデバイスポートが作成されているが、デバイスのシリアル番号等を利用してデバイスの個体毎に異なるポート番号のデバイスポートが作成されてもよい。これにより、厳密に個体識別されたデバイスポートを作成することが可能となる。ただし、同じ機種のデバイスが何台も1台のPCにUSB接続されていることは少ないため、デバイスの機種毎に異なるポート番号のデバイスポートを作成することで、充分の効果を得ることができる。また、シリアル番号等を利用してデバイスの個体毎に異なるポート番号のデバイスポートを作成する場合には、シリアル番号の取得などにおいて処理負荷が高くなる虞もある。さらに言えば、デバイスが故障して、同じ機種のデバイスに交換する場合、会社が保有している複数の同機種のデバイスの何れかを使用する場合などにおいて、デバイスの機種毎に異なるポート番号のデバイスポートを作成すれば、何れのデバイスがPCにUSB接続されても、ブックマーク保存したポート情報を利用してデバイスポートにアクセスすることが可能となる。
また、上記実施形態では、HTTPでのデバイスリクエストをUSBI/F20を介してデバイスに送信し、そのデバイスからデバイスリクエストの返信をUSBI/F20を介して受信する技術に、本発明が適用されているが、第1の通信プロトコルでのデバイスリクエストを、その第1のプロトコルに応じた第1の通信インタフェースと異なる第2の通信インタフェースを介してデバイスに送信し、そのデバイスからデバイスリクエストの返信を第2の通信インタフェースを介して受信する技術に、本発明が適用されてもよい。つまり、第1の通信プロトコル及び第2の通信プロトコルが、HTTP及びUSBプロトコルに限定される必要はない。
また、上記実施形態では、CPU12によって図2~図6に示す処理が実行される例を説明したが、これら処理は、CPU12に限らず、ASICや他の論理集積回路により実行されてもよいし、これら処理が、CPU等やASIC、他の論理集積回路が協働することにより実行されてもよい。
10:PC、12:CPU、20:USBI/F、30:制御プログラム、32:アプリケーション、36:ブラウザ、40:ライブラリ、50:MFP、56:EWS

Claims (13)

  1. 第1通信インタフェースおよび第2通信インタフェースを備える情報処理装置のコンピュータが読み取り可能なプログラムであって、
    前記コンピュータを、
    デバイスを指定するデバイス指定情報を取得する取得手段と、
    前記取得手段により取得されたデバイス指定情報と、当該デバイス指定情報により指定されるデバイスと通信を行うためのデバイスポートを示すポート情報とを関連付けて、前記情報処理装置のメモリに記憶させる記憶制御手段と、
    前記メモリに関連付けて記憶されているデバイス指定情報とポート情報とに基づいて、当該デバイス指定情報により指定されるデバイスへのデバイスリクエストを受け付けるためのデバイスポートであって、当該ポート情報に応じたデバイスポートを作成する第1作成手段として機能させ、前記デバイスリクエストは第1プロトコルによるリクエストであり、前記第1プロトコルは前記第1通信インタフェースで用いられるプロトコルであり、前記デバイスポートは、前記プログラムがインストールされているコンピュータにインストールされたプログラムであって前記プログラムとは異なるプログラムを実行するコンピュータから、前記第1プロトコルによって、前記第1通信インタフェースを介さずリクエストを受け付けるためのポートであり、
    前記コンピュータを、
    前記第1作成手段により作成されたデバイスポートへの前記デバイスリクエストを受け付けた場合に、当該デバイスリクエストを前記第2通信インタフェースに接続されたデバイスに、第2プロトコルによって送信する送信手段と、
    前記送信手段により送信された前記デバイスリクエストに対する返信を前記デバイスから前記第2通信インタフェースを介して受信する受信手段として機能させ、前記第2プロトコルは前記第2通信インタフェースで用いられるプロトコルであり、
    前記受信手段により受信した返信を、前記デバイスポートへの前記デバイスリクエストのリクエスト元のプログラムを実行するコンピュータに、前記第1プロトコルで出力する第1出力手段と、
    して機能させ、
    前記第1作成手段は、
    前記メモリにデバイス指定情報とポート情報とが関連付けて記憶された後に、当該プログラムを実行するコンピュータが再起動された場合に、当該デバイス指定情報により指定されるデバイスへのデバイスリクエストを受け付けるためのデバイスポートであって、当該ポート情報に応じたデバイスポートを作成し、
    前記記憶制御手段は、
    前記取得手段により取得されたデバイス指定情報と、前記第1作成手段により作成されたデバイスポートのポート情報とを関連付けて、前記メモリに記憶させ、
    前記送信手段は、
    前記第1作成手段により作成されたデバイスポートへの前記デバイスリクエストを受け付けた場合に、当該デバイスリクエストを前記第2通信インタフェースに接続されたデバイスに、第2プロトコルによって送信することを特徴とするプログラム。
  2. 前記コンピュータを、
    前記プログラムと異なる別プログラムを実行するコンピュータからリクエストを受け付けるための受付ポートを作成する第2作成手段と、
    前記受付ポートへのリクエストを受け付けた場合に、当該リクエストのリクエスト元のプログラムを実行するコンピュータに、前記デバイスポートを公開する公開手段と、
    して機能させ、
    前記送信手段は、
    前記公開手段により公開された前記デバイスポートへの前記デバイスリクエストを受け付けた場合に、当該デバイスリクエストを前記第2通信インタフェースに接続されたデバイスに、第2プロトコルによって送信することを特徴とする請求項1に記載のプログラム。
  3. 第1通信インタフェースおよび第2通信インタフェースを備える情報処理装置のコンピュータが読み取り可能なプログラムであって、
    前記コンピュータを、
    デバイスを指定するデバイス指定情報を取得する取得手段と、
    前記取得手段により取得されたデバイス指定情報と、当該デバイス指定情報により指定されるデバイスと通信を行うためのデバイスポートを示すポート情報とを関連付けて、前記情報処理装置のメモリに記憶させる記憶制御手段と、
    前記メモリに関連付けて記憶されているデバイス指定情報とポート情報とに基づいて、当該デバイス指定情報により指定されるデバイスへのデバイスリクエストを受け付けるためのデバイスポートであって、当該ポート情報に応じたデバイスポートを作成する第1作成手段として機能させ、前記デバイスリクエストは第1プロトコルによるリクエストであり、前記第1プロトコルは前記第1通信インタフェースで用いられるプロトコルであり、前記デバイスポートは、前記プログラムがインストールされているコンピュータにインストールされたプログラムであって前記プログラムとは異なるプログラムを実行するコンピュータから、前記第1プロトコルによって、前記第1通信インタフェースを介さずリクエストを受け付けるためのポートであり、
    前記コンピュータを、
    前記第1作成手段により作成されたデバイスポートへの前記デバイスリクエストを受け付けた場合に、当該デバイスリクエストを前記第2通信インタフェースに接続されたデバイスに、第2プロトコルによって送信する送信手段と、
    前記送信手段により送信された前記デバイスリクエストに対する返信を前記デバイスから前記第2通信インタフェースを介して受信する受信手段として機能させ、前記第2プロトコルは前記第2通信インタフェースで用いられるプロトコルであり、
    前記受信手段により受信した返信を、前記デバイスポートへの前記デバイスリクエストのリクエスト元のプログラムを実行するコンピュータに、前記第1プロトコルで出力する第1出力手段と、
    記取得手段により取得されたデバイス指定情報により指定されるデバイスへのデバイスリクエストを受け付けるためのデバイスポートを、前記第1作成手段によりデバイスポートが作成される前に作成する第3作成手段として機能させ、
    前記第3作成手段は、
    状況に応じて異なるポート情報のデバイスポートを作成し、
    前記記憶制御手段は、
    前記取得手段により取得されたデバイス指定情報と、前記第3作成手段により作成されたデバイスポートを示すポート情報とを関連付けて前記メモリに記憶させ、
    前記第1作成手段は、
    前記第3作成手段により作成されたデバイスポートが破棄された場合に、前記メモリに関連付けて記憶されているデバイス指定情報とポート情報とに基づいて、当該デバイス指定情報により指定されるデバイスへのデバイスリクエストを受け付けるためのデバイスポートであって、当該ポート情報に応じたデバイスポートを作成することを特徴とするプログラム。
  4. 前記取得手段は、
    前記プログラムと異なるプログラムである別プログラムを実行するコンピュータから前記デバイス指定情報を取得し、
    前記第3作成手段は、
    前記取得手段によりデバイス指定情報が取得された後に、当該デバイス指定情報により指定されるデバイスへのデバイスリクエストを受け付けるためのデバイスポートを作成することを特徴とする請求項3に記載のプログラム。
  5. 前記コンピュータを、
    前記プログラムと異なるプログラムである別プログラムを実行するコンピュータからポート情報のリクエストを受け付ける受付手段として機能させ、
    前記第3作成手段は、
    前記受付手段がポート情報のリクエストを受け付けたことを条件として、デバイスポートを作成し、
    前記コンピュータを、
    前記第3作成手段により作成されたデバイスポートのポート情報を第1プロトコルで前記別プログラムを実行するコンピュータに出力する第3出力手段として機能させることを特徴とする請求項3又は4に記載のプログラム。
  6. 第1通信インタフェースおよび第2通信インタフェースを備える情報処理装置のコンピュータが読み取り可能なプログラムであって、
    前記コンピュータを、
    デバイスを指定するデバイス指定情報を取得する取得手段と、
    前記取得手段により取得されたデバイス指定情報と、当該デバイス指定情報により指定されるデバイスと通信を行うためのデバイスポートを示すポート情報とを関連付けて、前記情報処理装置のメモリに記憶させる記憶制御手段と、
    前記メモリに関連付けて記憶されているデバイス指定情報とポート情報とに基づいて、当該デバイス指定情報により指定されるデバイスへのデバイスリクエストを受け付けるためのデバイスポートであって、当該ポート情報に応じたデバイスポートを作成する第1作成手段として機能させ、前記デバイスリクエストは第1プロトコルによるリクエストであり、前記第1プロトコルは前記第1通信インタフェースで用いられるプロトコルであり、前記デバイスポートは、前記プログラムがインストールされているコンピュータにインストールされたプログラムであって前記プログラムとは異なるプログラムを実行するコンピュータから、前記第1プロトコルによって、前記第1通信インタフェースを介さずリクエストを受け付けるためのポートであり、
    前記コンピュータを、
    前記第1作成手段により作成されたデバイスポートへの前記デバイスリクエストを受け付けた場合に、当該デバイスリクエストを前記第2通信インタフェースに接続されたデバイスに、第2プロトコルによって送信する送信手段と、
    前記送信手段により送信された前記デバイスリクエストに対する返信を前記デバイスから前記第2通信インタフェースを介して受信する受信手段として機能させ、前記第2プロトコルは前記第2通信インタフェースで用いられるプロトコルであり、
    前記受信手段により受信した返信を、前記デバイスポートへの前記デバイスリクエストのリクエスト元のプログラムを実行するコンピュータに、前記第1プロトコルで出力する第1出力手段と、
    前記メモリに記憶されているデバイス指定情報により指定されるデバイスとの通信が前記第2プロトコルで確立しているか否かを判断する判断手段として機能させ、
    前記第1作成手段は、
    前記判断手段によりデバイスとの通信が確立していると判断された場合に、当該デバイスへの前記第1プロトコルによるデバイスリクエストを受け付けるためのデバイスポートであって、当該デバイスのデバイス指定情報と関連付けてメモリに記憶されているポート情報に応じたデバイスポートを作成することを特徴とするプログラム。
  7. 前記第1プロトコルは、ネットワークを介して通信を行うためのプロトコルであり、
    前記ポート情報は、前記第1プロトコルで用いられるデバイスポートのポート番号を示す情報であることを特徴とする請求項1乃至6の何れか1項に記載のプログラム。
  8. 前記第1プロトコルは、HTTPであることを特徴とする請求項7に記載のプログラム。
  9. 前記コンピュータを、
    前記第1作成手段により作成されたデバイスポートのポート情報を前記第1プロトコルで、前記プログラムと異なる別プログラムを実行するコンピュータに出力する第2出力手段として機能させ、
    前記別プログラムを実行するコンピュータは、前記ポート情報を受け付けた場合に、当該ポート情報をブラウザに出力するように構成されており、
    前記送信手段は、
    前記ブラウザが受け付けたポート情報を用いて出力したデバイスポートへのデバイスリクエストを受け付けた場合に、当該デバイスリクエストを前記第2通信インタフェースに接続されたデバイスに、前記第2プロトコルによって送信し、
    前記第1出力手段は、
    前記受信手段により受信した返信を、前記デバイスポートへの前記デバイスリクエストのリクエスト元である前記ブラウザに、前記第1プロトコルで出力することを特徴とする請求項1乃至7の何れか1項に記載のプログラム。
  10. 前記コンピュータを、
    前記別プログラムからリクエストを受け付けるための受付ポートを作成する第2作成手段と、
    前記受付ポートへのリクエストを受け付けた場合に、当該リクエストのリクエスト元のプログラムを実行するコンピュータに、前記デバイスポートを公開する公開手段と、
    して機能させ、
    前記送信手段は、
    前記公開手段により公開された前記デバイスポートへの前記デバイスリクエストを受け付けた場合に、当該デバイスリクエストを前記第2通信インタフェースに接続されたデバイスに、第2プロトコルによって送信することを特徴とする請求項9に記載のプログラム。
  11. 前記送信手段は、
    前記第1作成手段により作成された前記デバイスポートへの前記デバイスリクエストとして、前記デバイスに組み込まれたサーバに記憶されているサーバ情報のリクエストを受け付けた場合に、当該サーバ情報のリクエストを前記デバイスに前記第2通信インタフェースに接続されたデバイスに、前記第2プロトコルによって送信し、
    前記受信手段は、
    前記送信手段により送信されたサーバ情報のリクエストに対する返信として、当該サーバ情報を前記デバイスから前記第2通信インタフェースを介して受信し、
    前記第1出力手段は、
    前記受信手段により受信したサーバ情報を、前記デバイスポートへの前記デバイスリクエストのリクエスト元のプログラムを実行するコンピュータに、前記第1プロトコルで出力することを特徴とする請求項1乃至10の何れか1項に記載のプログラム。
  12. 第1通信インタフェースおよび第2通信インタフェースを備える情報処理装置のコンピュータが読み取り可能な第1プログラムと第2プログラムとを含むプログラム群であって、
    前記コンピュータを、
    デバイスを指定するデバイス指定情報を出力する第4出力手段として前記第2プログラムにより機能させ、
    前記コンピュータを、
    前記第4出力手段により出力されたデバイス指定情報を取得する取得手段と、
    前記取得手段により取得されたデバイス指定情報と、当該デバイス指定情報により指定されるデバイスと通信を行うためのデバイスポートを示すポート情報とを関連付けて、前記情報処理装置のメモリに記憶させる記憶制御手段と、
    前記メモリに関連付けて記憶されているデバイス指定情報とポート情報とに基づいて、当該デバイス指定情報により指定されるデバイスへのデバイスリクエストを受け付けるためのデバイスポートであって、当該ポート情報に応じたデバイスポートを作成する第1作成手段として前記第1プログラムにより機能させ、前記デバイスリクエストは第1プロトコルによるリクエストであり、前記第1プロトコルは前記第1通信インタフェースで用いられるプロトコルであり、前記デバイスポートは、前記コンピュータにインストールされたプログラムであって前記第1プログラムとは異なるプログラムを実行するコンピュータから、前記第1プロトコルによって、前記第1通信インタフェースを介さずリクエストを受け付けるためのポートであり、
    前記コンピュータを、
    前記第1作成手段により作成されたデバイスポートへの前記デバイスリクエストを受け付けた場合に、当該デバイスリクエストを前記第2通信インタフェースに接続されたデバイスに、第2プロトコルで送信する送信手段と、
    前記送信手段により送信されたデバイスリクエストに対する返信を前記デバイスから前記第2通信インタフェースを介して受信する受信手段として前記第1プログラムにより機能させ、前記第2プロトコルは前記第2通信インタフェースで用いられるプロトコルであり、
    前記受信手段により受信した返信を、前記デバイスポートへの前記デバイスリクエストのリクエスト元のプログラムを実行するコンピュータに、前記第1プロトコルで出力する第1出力手段と、
    して前記第1プログラムにより機能させ
    前記第1作成手段は、
    前記メモリにデバイス指定情報とポート情報とが関連付けて記憶された後に、当該プログラムを実行するコンピュータが再起動された場合に、当該デバイス指定情報により指定されるデバイスへのデバイスリクエストを受け付けるためのデバイスポートであって、当該ポート情報に応じたデバイスポートを作成し、
    前記記憶制御手段は、
    前記取得手段により取得されたデバイス指定情報と、前記第1作成手段により作成されたデバイスポートのポート情報とを関連付けて、前記メモリに記憶させ、
    前記送信手段は、
    前記第1作成手段により作成されたデバイスポートへの前記デバイスリクエストを受け付けた場合に、当該デバイスリクエストを前記第2通信インタフェースに接続されたデバイスに、第2プロトコルによって送信することを特徴とするプログラム群。
  13. 第1通信インタフェースと第2通信インタフェースとコンピュータとを備える情報処理装置であって、
    前記コンピュータに、第1プログラムと第2プログラムとがインストールされており、
    前記コンピュータを、
    デバイスを指定するデバイス指定情報を出力する第4出力手段として前記第2プログラムにより機能させ、
    前記コンピュータを、
    前記第4出力手段により出力されたデバイス指定情報を取得する取得手段と、
    前記取得手段により取得されたデバイス指定情報と、当該デバイス指定情報により指定されるデバイスと通信を行うためのデバイスポートを示すポート情報とを関連付けて、前記情報処理装置のメモリに記憶させる記憶制御手段と、
    前記メモリに関連付けて記憶されているデバイス指定情報とポート情報とに基づいて、当該デバイス指定情報により指定されるデバイスへのデバイスリクエストを受け付けるためのデバイスポートであって、当該ポート情報に応じたデバイスポートを作成する第1作成手段として前記第1プログラムにより機能させ、前記デバイスリクエストは第1プロトコルによるリクエストであり、前記第1プロトコルは前記第1通信インタフェースで用いられるプロトコルであり、前記デバイスポートは、前記コンピュータにインストールされたプログラムであって前記第1プログラムとは異なるプログラムを実行するコンピュータから、前記第1プロトコルによって、前記第1通信インタフェースを介さずリクエストを受け付けるためのポートであり、
    前記コンピュータを、
    前記第1作成手段により作成されたデバイスポートへの前記デバイスリクエストを受け付けた場合に、当該デバイスリクエストを前記第2通信インタフェースに接続されたデバイスに、第2プロトコルで送信する送信手段と、
    前記送信手段により送信されたデバイスリクエストに対する返信を前記デバイスから前記第2通信インタフェースを介して受信する受信手段として前記第1プログラムにより機能させ、前記第2プロトコルは前記第2通信インタフェースで用いられるプロトコルであり、
    前記受信手段により受信した返信を、前記デバイスポートへの前記デバイスリクエストのリクエスト元のプログラムを実行するコンピュータに、前記第1プロトコルで出力する第1出力手段として前記第1プログラムにより機能させ
    前記第1作成手段は、
    前記メモリにデバイス指定情報とポート情報とが関連付けて記憶された後に、当該プログラムを実行するコンピュータが再起動された場合に、当該デバイス指定情報により指定されるデバイスへのデバイスリクエストを受け付けるためのデバイスポートであって、当該ポート情報に応じたデバイスポートを作成し、
    前記記憶制御手段は、
    前記取得手段により取得されたデバイス指定情報と、前記第1作成手段により作成されたデバイスポートのポート情報とを関連付けて、前記メモリに記憶させ、
    前記送信手段は、
    前記第1作成手段により作成されたデバイスポートへの前記デバイスリクエストを受け付けた場合に、当該デバイスリクエストを前記第2通信インタフェースに接続されたデバイスに、第2プロトコルによって送信することを特徴とする情報処理装置。
JP2019226157A 2019-12-16 2019-12-16 プログラム、プログラム群、および情報処理装置 Active JP7413750B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019226157A JP7413750B2 (ja) 2019-12-16 2019-12-16 プログラム、プログラム群、および情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019226157A JP7413750B2 (ja) 2019-12-16 2019-12-16 プログラム、プログラム群、および情報処理装置

Publications (2)

Publication Number Publication Date
JP2021096555A JP2021096555A (ja) 2021-06-24
JP7413750B2 true JP7413750B2 (ja) 2024-01-16

Family

ID=76431496

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019226157A Active JP7413750B2 (ja) 2019-12-16 2019-12-16 プログラム、プログラム群、および情報処理装置

Country Status (1)

Country Link
JP (1) JP7413750B2 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014092889A (ja) 2012-11-02 2014-05-19 Brother Ind Ltd 通信装置および通信プログラム
JP2014103504A (ja) 2012-11-19 2014-06-05 Brother Ind Ltd 通信中継プログラム、通信中継方法、情報処理装置及び画像処理装置
JP2014102620A (ja) 2012-11-19 2014-06-05 Brother Ind Ltd 通信中継プログラム、及び、通信中継装置
JP2014106581A (ja) 2012-11-26 2014-06-09 Brother Ind Ltd 画像処理装置および通信プログラム
JP2017010388A (ja) 2015-06-24 2017-01-12 キヤノン株式会社 Httpサーバとその制御方法、画像形成装置およびプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014092889A (ja) 2012-11-02 2014-05-19 Brother Ind Ltd 通信装置および通信プログラム
JP2014103504A (ja) 2012-11-19 2014-06-05 Brother Ind Ltd 通信中継プログラム、通信中継方法、情報処理装置及び画像処理装置
JP2014102620A (ja) 2012-11-19 2014-06-05 Brother Ind Ltd 通信中継プログラム、及び、通信中継装置
JP2014106581A (ja) 2012-11-26 2014-06-09 Brother Ind Ltd 画像処理装置および通信プログラム
JP2017010388A (ja) 2015-06-24 2017-01-12 キヤノン株式会社 Httpサーバとその制御方法、画像形成装置およびプログラム

Also Published As

Publication number Publication date
JP2021096555A (ja) 2021-06-24

Similar Documents

Publication Publication Date Title
US8228521B2 (en) Data processing apparatus, printing system, job execution system, and job execution method
JP2008251009A (ja) エンドユーザのコンピュータでターゲット装置のドライバをインストールするための方法及び周辺装置
JP2012008860A (ja) 画像形成装置、印刷制御方法、及びプログラム
JP4844105B2 (ja) ローカルデバイスが接続される制御装置におけるメニューデータの生成
JP2009205529A (ja) ドライバインストール方法およびドライバインストールプログラム
JP7338461B2 (ja) プログラム、プログラム群、および情報処理装置
JP2015097356A (ja) 通信システム、画像形成装置及びそれらの制御方法、並びにプログラム
US20140355035A1 (en) Non-Transitory Storage Medium Storing Instructions, Information Processing Device, Image Processing Apparatus, and Image Processing System
JP4742784B2 (ja) 情報分配処理プログラム、情報処理装置、および情報分配処理システム
JP7413750B2 (ja) プログラム、プログラム群、および情報処理装置
EP2838010B1 (en) Information processing apparatus, information processing method, and processing apparatus
JP7427951B2 (ja) プログラム、プログラム群、および情報処理装置
JP5573411B2 (ja) 画像形成装置、プログラム、及びインストール方法
JP2008217777A (ja) 情報処理装置、および情報処理方法
JP6714805B2 (ja) 情報処理システム及び情報処理方法
US20190068817A1 (en) Electronic Device, Service Execution System, and Log Acquisition Method
JP5974726B2 (ja) プレビュー画面表示制御装置およびプログラム
JP6424538B2 (ja) 情報処理装置、情報処理システム及びプログラム
US20230308556A1 (en) Information processing apparatus, image forming apparatus, image forming system, and non-transitory computer readable medium
JP7115071B2 (ja) プリンタドライバ、及び情報処理装置
JP2011209821A (ja) 画像形成システム、認証方法、および画像形成装置
JP2005018744A (ja) 描画装置、描画プログラム、記録媒体及び描画方法
JP6335546B2 (ja) 画像処理装置、画像処理装置の制御方法、及びプログラム
JP2023159765A (ja) 画像処理装置、画像処理装置の制御方法、画像処理装置のプログラム、画像処理装置と管理システムを含むシステム及びシステムの制御方法
JP2018041346A (ja) 情報処理方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221118

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230912

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231102

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231211

R150 Certificate of patent or registration of utility model

Ref document number: 7413750

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150