JP6167502B2 - 通信中継プログラム、通信中継装置、及び、画像処理装置 - Google Patents

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

Info

Publication number
JP6167502B2
JP6167502B2 JP2012240618A JP2012240618A JP6167502B2 JP 6167502 B2 JP6167502 B2 JP 6167502B2 JP 2012240618 A JP2012240618 A JP 2012240618A JP 2012240618 A JP2012240618 A JP 2012240618A JP 6167502 B2 JP6167502 B2 JP 6167502B2
Authority
JP
Japan
Prior art keywords
session
response
ipp
data
processing
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
JP2012240618A
Other languages
English (en)
Other versions
JP2014089668A (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 JP2012240618A priority Critical patent/JP6167502B2/ja
Priority to CN201310353873.6A priority patent/CN103795881B/zh
Priority to EP13190932.7A priority patent/EP2728459B1/en
Priority to US14/068,146 priority patent/US9565053B2/en
Publication of JP2014089668A publication Critical patent/JP2014089668A/ja
Application granted granted Critical
Publication of JP6167502B2 publication Critical patent/JP6167502B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/0246Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • G06F21/608Secure printing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/1209Improving or facilitating administration, e.g. print management resulting in adapted or bridged legacy communication protocols, e.g. emulation, protocol extension
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Computer And Data Communications (AREA)
  • Small-Scale Networks (AREA)

Description

通信を中継する技術に関する。
従来、画像処理装置にWebサーバ機能を備え、端末装置で実行されるWebブラウザに画像処理装置の設定画面などを表示する技術が開示されている(例えば特許文献1参照)。
また、画像処理装置と端末装置とをインターネットで接続し、インターネットを介して画像処理装置に画像を処理させるIPP(Internet Printing Protocol)と呼ばれる規格が知られている。
そして、画像処理装置と端末装置とがUSB(Universal Serial Bus)によって接続されている環境において上述したIPPによる通信を行うためのIPP over USBという規格のドラフト(2012年10月31日時点においてVersion 1.0 Draft 20)が知られている。
特開2011−257945号公報
一般にWebブラウザとWebサーバ機能とはマルチセッションによって通信を行っている。従って、Webブラウザが画像処理装置の設定画面などを表示する場合にも、WebブラウザはマルチセッションによってWebサーバ機能と通信する。
しかしながら、USBにはマルチセッションの概念がない。このため、端末装置と画像処理装置とがUSBによって接続されている環境でWebブラウザとWebサーバ機能とがマルチセッションによって通信する場合、Webブラウザは複数のセッションでの要求を連続してWebサーバに送信したとしても、それらの要求に対してWebサーバはあるセッションでの要求に対しての応答を別のセッションでの要求に対する応答としてWebブラウザに送信してしまう可能性がある。よって、通信が混乱してしまう可能性がある。
本明細書では、マルチセッションの概念がない通信回線を介してクライアントアプリケーションが画像処理装置とマルチセッションによって混乱なく通信する技術を開示する。
本明細書によって開示される通信中継プログラムは、画像処理装置と通信回線で接続されている情報処理装置で実行される通信中継プログラムであって、マルチセッションによって通信するクライアントアプリケーションからセッションを確立する要求を受信すると、その要求に応じて前記クライアントアプリケーションとの間にセッションを確立する第1の確立処理と、前記第1の確立処理によって確立された前記セッションを介して前記クライアントアプリケーションから処理要求を受信する第1の要求受信処理と、前記第1の要求受信処理によって受信された前記処理要求に前記セッションを識別するためのセッション情報を付加したセッション情報付き処理要求を前記画像処理装置に送信する第1の要求送信処理と、前記画像処理装置から前記セッション情報が付加された応答であるセッション情報付き応答を受信する第1の応答受信処理と、前記第1の応答受信処理によって受信された前記セッション情報付き応答から前記セッション情報を除去した応答を、当該セッション情報によって識別される前記セッションを介して前記クライアントアプリケーションに送信する第1の応答送信処理と、を前記情報処理装置に実行させる。
上記通信中継プログラムによると、セッション情報によってセッションを識別することができるので、マルチセッションの概念がない通信回線を介してクライアントアプリケーションが画像処理装置と通信する場合であっても、マルチセッションによって混乱なく通信することができる。
また、上記通信中継プログラムは、前記第1の確立処理によって前記セッションが確立されると、確立された前記セッションのセッション識別子を生成する識別子生成処理と、前記識別子生成処理によって生成された前記セッション識別子と前記セッションを識別するための識別情報とを対応付けて記憶装置に記憶させる記憶処理と、を前記情報処理装置に実行させ、前記第1の要求送信処理において、前記識別子生成処理によって生成された前記セッション識別子を前記セッション情報として前記処理要求に付加し、前記第1の応答送信処理において、前記セッション情報付き応答に付加されている前記セッション識別子に対応付けられている前記識別情報によって識別される前記セッションを介して前記クライアントアプリケーションに前記応答を送信してもよい。
上記通信中継プログラムによると、セッション情報によってセッションを識別することができるので、マルチセッションの概念がない通信回線を介してクライアントアプリケーションが画像処理装置と通信する場合であっても、マルチセッションによって混乱なく通信することができる。
また、上記通信中継プログラムは、前記第1の応答送信処理によって前記応答が送信された後に、当該応答に付加されていた前記セッション識別子と当該セッション識別子に対応付けられている前記識別情報とを前記記憶装置から削除する削除処理を前記情報処理装置に実行させてもよい。
上記通信中継プログラムによると、不要になったセッション識別子と識別情報とが記憶装置に記憶されたままにならないようにすることができる。
また、上記通信中継プログラムは、前記クライアントアプリケーションは前記処理要求を複数の部分処理要求データに分けて送信するものであり、当該通信中継プログラムは、前記第1の要求送信処理において、前記第1の要求受信処理によって最初の前記部分処理要求データが受信されると前記画像処理装置に前記セッション情報を送信し、その後に前記部分処理要求データを前記画像処理装置に送信してもよい。
上記通信中継プログラムによると、一つの処理要求に対してセッション情報を一度しか送信しないので、部分処理要求データ毎にセッション情報を送信する場合に比べて送信するデータ量を低減することができる。
また、上記通信中継プログラムは、前記第1の要求送信処理において、前記処理要求を複数の部分処理要求データに分割し、前記部分処理要求データ毎に前記セッション情報を付加して前記画像処理装置に送信してもよい。
上記通信中継プログラムによると、部分処理要求データ毎にセッション情報を送信するので、複数の処理要求を並行して画像処理装置に送信することができる。
また、上記通信中継プログラムは、前記第1の要求送信処理において、前記処理要求を所定のデータサイズの部分処理要求データに分割してもよい。
上記通信中継プログラムによると、部分処理要求データ毎にセッション情報を送信するので、複数の処理要求を並行して画像処理装置に送信することができる。
また、上記通信中継プログラムは、前記第1の要求送信処理において、全ての前記部分処理要求データを前記画像処理装置に送信した後に、前記処理要求の送信が完了したことを示す情報を前記画像処理装置に送信してもよい。
上記通信中継プログラムによると、画像処理装置側において処理要求の受信が完了したことを知ることができる。
また、前記通信回線はユニバーサルシルアルバスであってもよい。
上記通信中継プログラムによると、ユニバーサルシリアルバスを介してクライアントアプリケーションが画像処理装置とマルチセッションによって混乱なく通信することができる。
また、前記クライアントアプリケーションはWebブラウザであってもよい。
上記通信中継プログラムによると、Webブラウザと画像処理装置との間で通信を中継することができる。
本明細書によって開示される画像処理装置は、情報処理装置と通信回線を介して通信する第2の通信部と、第2の処理部と、を備え、前記第2の処理部は、前記情報処理装置からセッション情報付き処理要求を受信する第2の要求受信処理と、前記第2の要求受信処理によって受信された前記セッション情報付き処理要求に対する応答として、前記セッション情報を付加したセッション情報付き応答を前記情報処理装置に送信する第2の応答送信処理と、を実行する。
上記通信中継プログラムによると、情報処理装置からセッション情報付き処理要求を受信し、その処理要求に対する応答としてセッション情報付き応答を情報処理装置に送信することができる。
また、上記画像処理装置は、前記第2の処理部から受信した処理要求に対する応答を前記第2の処理部に送信する応答部を備え、前記第2の処理部は、前記第2の要求受信処理によって前記セッション情報付き処理要求が受信されると、当該セッション情報付き処理要求に付加されているセッション情報が、当該第2の処理部と前記応答部との間に確立されている通信を識別するための通信識別情報に対応付けられて記憶装置に記憶されているか否かを判断する記憶判断処理と、前記記憶判断処理によって記憶されていないと判断された場合に、前記応答部との間に新たな通信を確立する第2の確立処理と、前記第2の確立処理によって確立された前記新たな通信を識別するための通信識別情報と前記セッション情報とを対応付けて前記記憶装置に記憶させる記憶処理と、前記記憶判断処理によって記憶されていると判断された場合は、前記セッション情報付き処理要求から前記セッション情報を除去した処理要求を、当該セッション情報に対応付けられている前記通信識別情報によって識別される前記通信を介して前記応答部に送信する一方、前記記憶判断処理によって記憶されていないと判断された場合は、前記セッション情報付き処理要求から前記セッション情報を除去した処理要求を、前記第2の確立処理によって確立された前記新たな通信を介して前記応答部に送信する第2の要求送信処理と、前記応答部から前記通信を介して前記処理要求に対する応答を受信する第2の応答受信処理と、を実行し、前記第2の応答送信処理において、前記第2の応答受信処理によって前記応答部から受信された前記応答に当該応答を受信した前記通信の前記通信識別情報に対応付けられて前記記憶装置に記憶されている前記セッション情報を付加したセッション情報付き応答を前記情報処理装置に送信してもよい。
上記通信中継プログラムによると、第2の処理部と応答部との間で応答が混乱してしまわないようにすることができる。
また、前記応答部はWebサーバ機能を有していてもよい。
上記通信中継プログラムによると、第2の処理部とWebサーバ機能との間で応答が混乱してしまわないようにすることができる。
また、上記画像処理装置は、前記第2の応答送信処理において、前記第2の応答受信処理によって受信した前記応答を複数の部分応答データに分割し、分割した前記部分応答データにそれぞれ前記セッション情報を付加して前記情報処理装置に送信してもよい。
上記画像処理装置によると、部分応答データ毎にセッション情報を送信するので、複数の応答を並行して情報処理装置に送信することができる。
なお、本明細書によって開示される技術は、通信中継装置、通信中継システム、通信中継方法、通信中継プログラムを記録した記録媒体等の種々の態様で実現することができる。
上記の通信中継プログラムによると、マルチセッションの概念がない通信回線を介してクライアントアプリケーションが画像処理装置とマルチセッションによって混乱なく通信することができる。
実施形態1に係るPC及びプリンタの電気的構成を示すブロック図。 PCのプログラム構成、及び、プリンタの機能を示すブロック図。 プリンタの設定画面の一例を示す模式図。 通信中継処理の全体的な流れを示すシーケンスチャート。 セッションID付き処理要求、及び、セッションID付き応答を示す模式図。 通信中継処理のフローチャート。 Webブラウザから処理要求を受信する処理のフローチャート。 IPP機能から応答を受信する処理のフローチャート。 IPP/USB変換プログラムから処理要求を受信する処理のフローチャート。 Webサーバ機能から応答を受信する処理のフローチャート。 実施形態2に係るセッションID付き処理要求を示す模式図。 Webブラウザから処理要求を受信する処理のフローチャート。 付加データ送信処理のフローチャート。 IPP機能から応答を受信する処理のフローチャート。 実施形態2に係るIPP機能がIPP/USB変換プログラムから処理要求を受信する処理のフローチャート。 Webサーバ機能から応答を受信する処理のフローチャート。 実施形態3に係る処理要求を示す模式図。 Webブラウザから処理要求を受信する処理のフローチャート。
<実施形態1>
実施形態1を図1ないし図10によって説明する。
(1)画像処理システム
先ず、図1を参照して、実施形態1に係る画像処理システム1について説明する。画像処理システム1はパーソナルコンピュータ(PCと記す)2とプリンタ3とで構成されている。PC2とプリンタ3とはUSB(Universal Serial Bus、ユニバーサルシリアルバス)ケーブル4によって通信可能に接続されている。また、プリンタ3はUSBプリンタクラスデバイスとして構成されている。
PC2は情報処理装置及び通信中継装置の一例である。プリンタ3は画像処理装置の一例である。また、USBは通信回線の一例である。
PC2はプリンタ3との間でUSBを介して少なくとも以下の二つの通信(a)及び(b)を行うことができる。
(a)プリンタ3を設定するための通信
(b)プリンタ3に印刷データを送信するための通信
これらの通信はIPP over USB規格(2012年10月31日時点においてVersion 1.0 Draft 20)に従って行われる。IPP(Internet Printing Protocol)とは、HTTP(HyperText Transfer Protocol)をベースにした規格であって、インターネットやLAN(Local Area Network)などのTCP/IPネットワークを介してプリンタと通信するための規格である。
IPP over USBはUSBによって接続されている環境において上述したIPPによる通信を実現するための規格である。IPP over USBではIPPの通信データがUSBのパケットに格納されて送受信される。
(1−1)PCの電気的構成
図1を参照して、PC2の電気的構成について説明する。PC2は、CPU20、ROM21、RAM22、表示部23、操作部24、記憶部25、及び、USBホストインタフェース部26(図1ではUSBホストIF部と記す)を備えて構成されている。
CPU20はROM21や記憶部25に記憶されているプログラムを実行することによってPC2の各部を制御する。ROM21にはCPU20によって実行されるプログラムやデータなどが記憶されている。RAM22はCPU20が各種の処理を実行するための主記憶装置として用いられる。CPU20は第1の処理部の一例である。
表示部23は、液晶ディスプレイなどの表示装置、表示装置を駆動するディスプレイ駆動回路などを備えて構成されている。
操作部24は、キーボードやマウス、それらが接続されるインタフェースなどで構成されている。
記憶部25は、ハードディスクやフラッシュメモリなどの不揮発性のメモリを用いて各種のプログラムやデータを記憶する装置である。記憶部25には、オペレーティングシステム(OSと記す)41、Webブラウザ42、IPP/USB変換プログラム43などのプログラムが記憶されている。これらのプログラムはCPU20によって実行される。
IPP/USB変換プログラム43は通信中継プログラムの一例である。Webブラウザ42はマルチセッションによって通信するクライアントアプリケーションの一例である。また、記憶部25は記憶装置の一例である。
USBホストインタフェース部26は、USBホストコントローラ、USBケーブル4が接続されるジャックなどを備えて構成されており、USBケーブル4を介してプリンタ3と通信可能に接続されている。USBホストインタフェース部26は第1の通信部の一例である。
(1−2)プリンタ
次に、図1を参照して、プリンタ3の電気的構成について説明する。プリンタ3は、制御部31、USBクライアントインタフェース部(図1ではUSBクライアントIF部と記す)32、印刷部33、操作部34、及び、記憶部35を備えて構成されている。
制御部31は、CPU31a、ROM31b、RAM31bなどを備えて構成されている。CPU31aはROM31bや記憶部35に記憶されている制御プログラムを実行することによってプリンタ3の各部を制御する。ROM31bにはCPU31aによって実行される制御プログラムや各種のデータなどが記憶されている。RAM31cはCPU31aが各種の処理を実行するための主記憶装置として用いられる。CPU31aは第2の処理部、及び、応答部の一例である。
印刷部33は、印刷用紙などのシートに電子写真方式やインクジェット方式などで画像を印刷する装置である。
操作部34は、液晶ディスプレイなどの表示装置や各種の操作ボタンなどを備えて構成されている。
記憶部35は、ハードディスクやフラッシュメモリなどの不揮発性のメモリを用いて各種のデータを記憶する装置である。記憶部35は記憶装置の一例である。
USBクライアントインタフェース部32は、USBケーブル4が接続されるジャックなどを備えて構成されており、USBケーブル4を介してPC2と通信可能に接続されている。USBクライアントインタフェース部32は第2の通信部の一例である。
また、プリンタ3はこの他に印刷用紙が収容される第1のトレイ、及び、第2のトレイを備えている。
(2)PCのプログラム構成、及び、プリンタの機能
次に、図2を参照して、IPP over USBによって通信を行うためのPC2のプログラム構成、及び、プリンタ3の機能について説明する。
(2−1)PCのプログラム構成
先ず、PC2のプログラム構成について説明する。PC2は、IPP/USB変換プログラム43、Webブラウザ42、及び、スプーラ44を実行する。
IPP/USB変換プログラム43は、Webブラウザ42とプリンタ3のIPP機能51との間でプリンタ3を設定するための通信(a)を中継するとともに、スプーラ44とIPP機能51との間でプリンタ3に印刷データを送信するための通信(b)を中継するプログラムである。
IPP/USB変換プログラム43はhttp://localhost:80に対するサーバープログラムとして常駐している。localhostはPC2のIPアドレスであって、具体的には例えば127.0.0.1である。また80は使用するポート番号である。なおポート番号80は通常省略される。IPP/USB変換プログラム43はWebブラウザ42とHTTPによって通信するとともに、スプーラ44とIPPによって通信する。
また、IPP/USB変換プログラム43はIPP機能51とUSBを介して通信する。IPP/USB変換プログラム43の詳細については後述する。
Webブラウザ42はユーザがプリンタ3の設定をするためのユーザインタフェースとして用いられるものである。Webブラウザ42としては一般に利用されているものを用いることができる。
PC2とプリンタ3とがUSBによって接続されている環境では、Webブラウザ42はlocalhostのポート80に、プリンタ3の設定画面60(図3参照)を表示するための画面データの送信を要求するHTTPリクエストや、設定画面60上に表示する画像の送信を要求するHTTPリクエストなどを送信する。これらのHTTPリクエストはそれぞれ処理要求の一例である。以降の説明ではHTTPリクエストを単に処理要求という。
なお、処理要求はこれらに限られるものではない。例えばユーザが設定画面60で設定した設定値をプリンタ3に設定するHTTPリクエスト(PUTコマンドやPOSTコマンドなど)も処理要求の一例である。
IPP/USB変換プログラム43はWebブラウザ42から処理要求を受信すると、USBを介してIPP機能51にその処理要求を送信する。
ここで、画面データはHTML(HyperText Markup Language)やXML(Extensible Markup Language)によって記述されているものとする。詳しくは後述するが、画面データはプリンタ3のWebサーバ機能52が設定画面CGI(Common Gateway Interface )を実行することによって生成される。
スプーラ44は印刷データをスプールするプログラムである。スプーラ44はOS41の一部として提供される。PC2とプリンタ3とがUSBによって接続されている環境では、スプーラ44はIPP/USB変換プログラム43とIPPによって通信することにより、IPP/USB変換プログラム43に印刷データを送信する。
IPP/USB変換プログラム43はスプーラ44から印刷データを受信すると、USBを介してプリンタ3のIPP機能51にその印刷データを送信する。
なお、Webブラウザ42及びスプーラ44はPC2で実行されてもよいし、PC2と通信可能に接続されている外部の通信端末5で実行されてもよい。
(2−2)プリンタの機能
次に、プリンタ3の機能について説明する。プリンタ3は、印刷部33、IPP機能51、及び、Webサーバ機能52を備えている。
IPP機能51はプリンタ3の制御部31が制御プログラムを実行することによって実現される機能である。IPP機能51はIPP/USB変換プログラム43とUSBを介して通信する。また、IPP機能51はWebサーバ機能52とHTTPによって通信するとともに、印刷部33と所定のプロトコルに従って通信する。
Webサーバ機能52もプリンタ3の制御部31が制御プログラムを実行することによって実現される。Webサーバ機能52は画面データの送信が要求されると設定画面CGIを実行して設定画面60を表示するための画面データを生成する処理や、設定画面60で設定された設定値を受信するとプリンタ設定CGIを実行してプリンタ3にその設定値を設定する処理などを実行する。
(3)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を用いて行ってもよい。
(4)USBを介してマルチセッションによる通信を行う場合の課題
次に、USBを介してマルチセッションによる通信を行う場合の課題について説明する。ここではプリンタ3を設定するための通信(a)を例に説明する。
先ず、図3を参照して、プリンタ3の設定画面60について説明する。図3に示す設定画面60では、プリンタ言語60a、第1のトレイにセットされている用紙サイズ60b、及び、第2のトレイにセットされている用紙サイズ60cを設定することができる。また、設定画面60には画像62a、画像62b、画像62cが表示される。ここでは画像62a〜62cをそれぞれGIF1、GIF2、GIF3というものとする。
Webブラウザ42はlocalhostのポート80にセッションの確立を要求し、確立されたセッションを介してIPP/USB変換プログラム43に設定画面60の画面データの送信を要求する。この要求はGETコマンドを送信することによって行われる。GETコマンドは処理要求の一例である。
上述したGETコマンドはIPP/USB変換プログラム43によってUSBを介してIPP機能51に送信され、IPP機能51からWebサーバ機能52に送信される。Webサーバ機能52はGETコマンドを受信すると設定画面CGIを実行して設定画面60の画面データを生成する。そして、Webサーバ機能52は上述したGETコマンドに対する応答として、設定画面CGIによって生成された画面データをIPP機能51に送信する。
IPP機能51はWebサーバ機能52から画面データを受信すると、USBを介してその画面データをIPP/USB変換プログラム43に送信する。
IPP/USB変換プログラム43はIPP機能51から画面データを受信すると、Webブラウザ42から受信したGETコマンドに対する応答としてその画面データをWebブラウザ42に送信する。
Webブラウザ42はこの画面データを解析し、ページを表示するに足りない部品(GIF1、GIF2、GIF3など)を同様に要求する。この場合に、Webブラウザ42はマルチセッションによる通信が可能であるので、足りない部品(GIF1,GIF2、GIF3)毎にセッションを確立して画像の送信を要求する。
例えば、Webブラウザ42は最初にGIF1の送信を要求するためのセッションの確立を要求し、そのセッションを介して送信した処理要求に対する応答を待たずに、GIF2の送信を要求するためのセッションの確立を要求する。同様に、Webブラウザ42はGIF2の送信を要求するためのセッションを介して送信した処理要求に対する応答を待たずに、GIF3の送信を要求するためのセッションの確立を要求する。
しかしながら、USBのインタフェースにはマルチセッションの概念がない。また、IPP機能51は必ずしもGETコマンドの順に応答を返すわけではなく、その返す順序は不定である。
このため、各セッションがインタフェース1を介して通信すると、IPP/USB変換プログラム43がIPP機能51から応答を受信したとき、IPP/USB変換プログラム43はその応答がいずれのセッションを介して受信した処理要求に対する応答であるかを判断できない。このため、あるセッションに対する応答が別のセッションに送信されてしまうなどのような混乱が起こり得る。
そこで、IPP/USB変換プログラム43は、処理要求(上述した例ではGETコマンド)にセッションを識別するためのセッションIDを付加したセッションID付き処理要求をIPP機能51に送信し、IPP機能51からその処理要求に対する応答として当該セッションIDが付加された応答であるセッションID付き応答を受信する。セッションIDはセッション情報及びセッション識別子の一例である。
そして、IPP/USB変換プログラム43はセッションID付き応答からセッションIDを除去した応答を、当該セッションIDによって識別されるセッションを介してWebブラウザ42に送信する。
(5)通信の全体的な流れ
先ず、図4を参照して、通信の全体的な流れについて説明する。ここではプリンタ3を設定するための通信(a)を例に説明する。前述したようにプリンタ3を設定するための通信(a)はインタフェース1を用いて行われる。
また、ここではWebブラウザ42は既にIPP/USB変換プログラム43から設定画面60の画面データを受信して解析が完了しているものとし、IPP/USB変換プログラム43にGIF1、GIF2、及び、GIF3の送信を要求するところから説明を始める。
また、ここではIPP機能51とWebサーバ機能52とをまとめてプリンタ3というものとする。
Webブラウザ42は、先ずIPP/USB変換プログラム43にセッション1の確立を要求し、セッション1を確立させる(S001)。次に、Webブラウザ42はGIF1の送信を要求する処理要求を、セッション1を介してIPP/USB変換プログラム43に送信する(S002)。
IPP/USB変換プログラム43はセッション1を介して処理要求を受信すると、その処理要求にセッション1を識別するためのセッションIDを付加したセッションID付き処理要求を、USBを介してプリンタ3に送信する(S003)。
プリンタ3は、セッションID付き処理要求を受信すると、その処理要求に対する応答としてGIF1をIPP/USB変換プログラム43に送信する(S007)。このときプリンタ3はセッションID付き処理要求に付加されていたセッションIDを応答に付加して送信する。
IPP/USB変換プログラム43はセッションID付き応答を受信すると、セッションID付き応答からセッションIDを除去した応答を、そのセッションIDによって識別されるセッション、すなわちセッション1を介してWebブラウザ42に送信する(S008)。
Webブラウザ42は、セッション1の確立を要求した後、セッション1によってGIF1が受信されるのを待つことなくセッション2を確立し(S004)、GIF2の送信を要求する処理要求を、セッション2を介してIPP/USB変換プログラム43に送信する(S005)。
IPP/USB変換プログラム43は、セッション2を介して処理要求を受信すると、その処理要求にセッション2を識別するためのセッションIDを付加したセッションID付き処理要求を、USBを介してプリンタ3に送信する(S006)。
プリンタ3は、セッションID付き処理要求を受信すると、その処理要求に対する応答としてGIF2をIPP/USB変換プログラム43に送信する(S012)。このときプリンタ3はセッションID付き処理要求に付加されていたセッションIDをその応答に付加して送信する。
IPP/USB変換プログラム43はセッションID付き応答を受信すると、セッションID付き応答からセッションIDを除去した応答を、そのセッションIDによって識別されるセッション、すなわちセッション2を介してWebブラウザ42に応答を送信する(S013)。
セッション3についても同様にセッションの要求とそれに対する応答が行われる。
これら一連の処理によってGIF1〜GIF3がWebブラウザ42に読み込まれ、設定画面60上にGIF1〜GIF3が表示される。
設定画面60に対する操作は、HTTPのGETコマンド、PUTコマンド、POSTコマンドなどの処理要求に変更されて同様にIPP/USB変換プログラム43を介してプリンタ3に送信される。これにより、従来のTCP/IPネットワークを介してプリンタ3の設定を行うのと同様の手順でUSBを介してプリンタ3の設定を行うことができる。
(6)処理要求のデータ構造、及び、応答のデータ構造
次に、図5を参照して、セッションIDが付加された処理要求のデータ構造、及び、セッションIDが付加された応答のデータ構造について説明する。
(6−1)セッションIDが付加された処理要求のデータ構造
先ず、セッションIDが付加された処理要求のデータ構造について説明する。ここではPOSTコマンドを例に説明する。
処理要求のデータ構造はHTTPの仕様に準拠するものであり、広く用いられているものであるのでここではその概略のみを説明する。処理要求はサイズ情報データと処理要求データとからなる。
サイズ情報データは処理要求データのデータサイズを示すものである。
処理要求データは1以上の通信データからなる。以下に処理要求データの一例を示す。ここでは各通信データの前に行番号を[]で括って示す。
[1行目]POST /ipp/[function] HTTP/1.1<CRLF>
[2行目]Host: localhost<CRLF>
[3行目]Content−Type: application/ipp<CRLF>
[4行目]Transfer−Encoding: chunked<CRLF>
[5行目]<CRLF>
上述した例において各行はそれぞれ一つの通信データを表している。また、上述した例から明らかなように各通信データは最後が<CRLF>で終わっている。<CRLF>は復帰改行コードである。
また、5行目に示すように処理要求の最後の通信データは<CRLF>のみである。従って、受信した通信データが<CRLF>のみである場合は一つの処理要求の受信が完了したと判断することができる。
なお、PUTコマンドやPOSTコマンドでは通常この一連の通信データの他にバイナリデータあるいはテキストデータなどの付加データが付加される。ここでは付加データも含んで処理要求という。
全ての付加データのバイト数が予めわからない場合はTransfer−Encoding: chunkedなどの形で細切れのデータ塊が続くことが処理要求中に示される。この場合、データ塊ごとのサイズが示される。
また、付加データが付加される場合は上述したchunkedに替えてContent-Length: 4554といった行が処理要求に挿入され、指定されたバイト数(この場合は4554)の付加データが続くことが示される場合もある。
サイズ情報データ、各通信データ、付加データ、あるいは付加データを細切れにした各データ塊はそれぞれ部分処理要求データの一例である。つまり、IPP/USB変換プログラム43はWebブラウザ42から処理要求を複数の部分処理要求データに分けて受信する。
なお、部分処理要求データは処理の仕方によりいろいろな形態が考えられる。例えば固定長、あるいは特定の条件によってきまるデータ長ごとに受信し、それぞれを部分処理要求データとすることもできる。
(6−2)セッションIDが付加された応答のデータ構造
応答のデータ構造もHTTPの仕様に準拠するものであり、広く用いられているものであるのでここではその概略のみを説明する。応答はサイズ情報データと応答データとからなる。
サイズ情報データは応答データのデータサイズを示すものである。
応答データも1以上の通信データからなり、最後の通信データは<CRLF>のみである。またGETコマンドに対する応答データにあっては、処理要求の場合と同様にバイナリデータやテキストデータなどの付加データが付加される。例えば前述したGIF1〜GIF3はGETコマンドに対する応答に付加される付加データである。
サイズ情報データ、各通信データ、付加データ、あるいは付加データを細切れにした各データ塊はそれぞれ部分応答データの一例である。つまり、IPP/USB変換プログラム43はIPP機能51から応答を複数の部分応答データに分けて受信する。なお、部分応答データは処理の仕方によりいろいろな形態が考えられる。
(7)IPP/USB変換プログラム43による通信中継処理の詳細
次に、図6を参照して、IPP/USB変換プログラム43による通信中継処理についてより具体的に説明する。前述したようにIPP/USB変換プログラム43は常駐プログラムとして実行されるものであり、本処理はPC2に電源が投入されると開始される。
ここで、本処理はWebブラウザ42とIPP機能51との間で通信を中継する処理であり、スプーラ44とIPP機能51との間で通信を中継する処理は本処理とは別の処理として実行されるものとする。当該別の処理についての説明は省略する。
S101では、IPP/USB変換プログラム43はインタフェース1を排他的に用いるためのミューテックスを生成する。ミューテックスは排他処理を行うための仕組みであって、プログラム言語によって提供される仕組みである。ミューテックスの詳細については後述する。
なお、ここではミューテックスを用いて排他処理を行う場合を例に説明するが、排他処理を行う方法はこれに限られない。例えばセマフォを用いて行ってもよいし、ミューテックスやセマフォを用いず独自の方法で行ってもよい。
S102では、IPP/USB変換プログラム43はセッションを確立する要求(アクセプト要求という)を監視するソケットの生成及び設定を行う。ソケットとはTCP/IPによって通信を行うための抽象化されたインタフェースのことをいう。また、ソケットの設定とは、ソケットにPC2のIPアドレスや監視対象の通信ポートを示すポート番号などを設定し、そのソケットの動作モードをアクセプト要求の監視モードにすることをいう。本実施形態ではIPアドレスとして127.0.0.1が設定され、ポート番号として80が設定される。
ユーザがWebブラウザ42を立ち上げ、IPアドレスとして127.0.0.1、ポート番号として80を設定すると、Webブラウザ42は当該アドレスおよびポート番号に対してセッションの確立を要求する。この要求がアクセプト要求となる。
S103では、IPP/USB変換プログラム43はWebブラウザ42からアクセプト要求を受信するまで待機し、アクセプト要求を受信するとS104に進む。
S104では、IPP/USB変換プログラム43はスレッドを生成する。
S105では、IPP/USB変換プログラム43はOS41から終了要求があったか否かを判断する。この終了要求はこの常駐プログラムであるIPP/USB変換プログラム43の終了を要求するものである。IPP/USB変換プログラム43は常駐プログラムであるので通常は「否」であるが、ユーザの操作等によりプログラムの終了が指示されると終了要求を受ける。IPP/USB変換プログラム43は、終了要求があった場合は本処理を終了し、なかった場合はS103に戻って処理を繰り返す。
(7−1)Webブラウザから処理要求を受信する処理
次に、図7を参照して、IPP/USB変換プログラム43がWebブラウザ42から処理要求を受信する処理について説明する。この処理は前述したS104で生成されたスレッドによって実行される。すなわち、アクセプト要求が複数ある場合は、それぞれ別のスレッドとしてこの処理は実行される。従って図7のフローチャートの中で扱うセッションは1つのみであり、複数のセッションがある場合は、別々のスレッドにより図7のフローチャートの処理が並行して行われることになる。
S201では、スレッドはアクセプト処理を実行する。アクセプト処理とは、アクセプト要求を送信してきた相手(すなわちWebブラウザ42)との間に新たなセッションを確立する処理である。S201は第1の確立処理の一例である。
具体的には、スレッドはWebブラウザ42と通信を行うための新たなソケットを生成し、生成したソケットを用いてWebブラウザ42との間にセッションを確立する。なお、ソケットのオープン、クローズ、アクセプトなどのタイミングで、USBのエンドポイント0を用いたコントロール転送を用いてプリンタ3に情報を送り、上記オープン、クローズ、アクセプトなどのタイミングでプリンタ3と同期をとってもよい。
S202では、スレッドはS201で生成したソケットを識別すためのID(Identification)を生成する。ソケットとセッションとは一対一に対応しているので、ソケットを識別すためのIDはセッションを識別するためのIDとして用いることができる。以降の説明ではソケットを識別すためのIDのことをセッションIDというものとする。S202は識別子生成処理の一例である。
S203では、スレッドはS201で確立したセッションを介してWebブラウザ42から部分処理要求データを受信する。S203は第1の要求受信処理の一例である。
S204では、スレッドはS203で受信した部分処理要求データにS202で生成したセッションIDを付加する。具体的には、部分処理要求データの最初の8バイトをセッションIDとする、又は、部分処理要求データの最初の一行はセッションIDとするなど、予め決められたルールによってセッションIDを付加する。
S205では、スレッドはインタフェース1の排他処理を実行する。
具体的には、スレッドはS101で生成されたミューテックスの取得を試みる。ミューテックスが他のスレッドによって取得されていない場合は当該スレッドによってミューテックスが取得され、その後にミューテックスの取得を試みた他のスレッドは当該スレッドによってミューテックスが解放されるまで待機状態となる。これにより他のスレッドは通信が禁止された状態となる。
一方、ミューテックスが他のスレッドによって取得されている場合は、当該スレッドはミューテックスを取得できるまで待機状態となる。これにより当該スレッドは通信が禁止された状態となる。そして、他のスレッドがミューテックスを解放すると、当該スレッドより先に待機状態になっているスレッドがある場合は当該先に待機状態になっているスレッドによってそのミューテックスが取得され、当該スレッドは引き続き待機状態となる。当該スレッドより先に待機状態になっているスレッドがない場合は、当該スレッドによってミューテックスが取得される。
スレッドはミューテックスを取得するとS206に進む。
S206では、スレッドはS204でセッションIDを付加したセッションID付き部分処理要求データを、USBを介してIPP機能51に送信する。S206は第1の要求送信処理の一例である。
S207では、スレッドは一つの処理要求の受信が完了したか否かを判断する。具体的には、スレッドはHTTPのプロトコルに従ってデータエンドを判断する。例えば、スレッドは<CRLF>の有無や、Content-LengthやTransfer−Encoding: chunkedで示される付加データのサイズを確認することにより、データエンドを判断する。これにより、一つの処理要求の受信が完了したか否かを判断することができる。
スレッドは、一つの処理要求の受信が完了していない場合はS208に進み、受信が完了した場合はS210に進む。
S208では、スレッドはWebブラウザ42から次の部分処理要求データを受信する。
S209では、スレッドはS208で受信した部分処理要求データを、USBを介してIPP機能51に送信する。ただし、ここではスレッドは部分処理要求データにセッションIDを付加せずに送信する。
S210では、スレッドはインタフェース1の排他処理を終了する。従ってS205から本S210までの間、換言すれば、S206、S209によりそのセッションにおけるすべての部分処理要求データを送信するまでの間、排他処理が行われ、その間に他のスレッドの処理により他のセッションの部分処理要求データが割り込むことはない。
S211では、スレッドはS201で生成したソケットを識別するためのソケット情報とS202で生成したセッションIDとを対応付けて記憶部25に記憶させる。S211は記憶処理の一例である。また、ソケット情報はセッションを識別するための識別情報の一例である。
ただし、本処理が終了してもソケットは存続し続ける。つまり、IPP/USB変換プログラム43とWebブラウザ42とのセッションは維持されたままとなる。これは、そのセッションを用いてWebブラウザ42に応答を送信するためである。
(7−2)IPP機能から応答を受信する処理
次に、図8を参照して、IPP/USB変換プログラム43がIPP機能51から応答を受信する処理について説明する。
S301では、IPP/USB変換プログラム43はIPP機能51に送信した処理要求に対する応答をIPP機能51から受信する。詳しくは後述するが、IPP機能51は応答を複数の部分応答データに分割し、最初の部分応答データにセッションIDを付加してIPP/USB変換プログラム43に送信する。S301ではそのセッションIDが付加されたセッションID付き部分応答データが受信される。S301は第1の応答受信処理の一例である。
S302では、IPP/USB変換プログラム43はセッションID付き部分応答データからセッションIDを取得する。IPP機能51は、例えば応答データの最初の8バイトをセッションIDとする、又は、部分処理要求データの最初の一行はセッションIDとするなど、予め決められたルールによってセッションIDを付加する。よって、IPP/USB変換プログラム43は、応答データのうち、ルールに従って付加された部分をセッションIDとして取得する。
S303では、IPP/USB変換プログラム43はS302で取得したセッションIDと同じセッションIDに対応付けられて記憶されているソケット情報を記憶部25から読み出す。
S304では、IPP/USB変換プログラム43はS301で受信したセッションID付き部分応答データからセッションIDを除去する。
S305では、IPP/USB変換プログラム43はS304でセッションIDを除去した部分応答データを、S303で読み出したソケット情報によって識別されるセッションを介してWebブラウザ42に送信する。S305は第1の応答送信処理の一例である。
S306では、IPP/USB変換プログラム43はIPP機能51からの応答の受信が完了したか否かを判断する。この判断はS207と同様の手順により行われる。IPP/USB変換プログラム43は、応答の受信が完了していない場合はS307に進み、完了している場合はS309に進む。
S307では、IPP/USB変換プログラム43はUSBを介して次の部分応答データを受信する。なお、次の部分応答データにはセッションIDは付加されていないものとする。
S308では、IPP/USB変換プログラム43はS307で受信した部分応答データを、S303で読み出したソケット情報によって識別されるセッションを介してWebブラウザ42に送信する。
S309では、IPP/USB変換プログラム43はS303で読み出したソケット情報によって識別されるソケットを破棄する。
S310では、IPP/USB変換プログラム43はS302で取得したセッションIDと当該セッションIDに対応付けられているソケット情報とを記憶部25から削除する。S310は削除処理の一例である。
(8)IPP機能の処理
次に、IPP機能51がIPP/USB変換プログラム43から処理要求を受信する処理、及び、IPP機能51がWebサーバ機能52から応答を受信する処理について説明する。
(8−1)IPP/USB変換プログラムから処理要求を受信する処理
先ず、図9を参照して、IPP機能51がIPP/USB変換プログラム43から処理要求を受信する処理について説明する。
S401では、IPP機能51はIPP/USB変換プログラム43からUSBを介して部分処理要求データを受信する。前述したように最初の部分処理要求データにはセッションIDが付加されている。S401は第2の要求受信処理の一例である。
S402では、IPP機能51はS401で受信したセッションID付き部分処理要求データからセッションIDを取得する。S204において、セッションIDは予め決められたルールに従って部分処理要求データに付加される。よって、IPP機能51は、部分処理要求データのうち、ルールに従って付加された部分をセッションIDとして取得する。
S403では、IPP機能51はS402で取得したセッションIDが、記憶部35に記憶されているか否かを判断する。詳しくは後述するが、IPP機能51は、セッションID付処理要求データを受信した新たなソケットを生成すると、そのソケットを識別するための通信識別情報に対応付けて記憶部35に記憶する。S403にて、IPP機能51は、記憶されていないと判断した場合はS404に進み、記憶されていると判断した場合はS406に進む。S403は記憶判断処理の一例である。
S404では、IPP機能51はWebサーバ機能52と通信するためのソケットを生成し、生成したソケットを介してWebサーバ機能52との間に新たなセッションを確立する。S404は第2の確立処理の一例である。また、IPP機能51とWebサーバ機能52との間に確立されたセッションは通信の一例である。
S405では、IPP機能51はS402で取得したセッションIDとS404で生成したソケットを識別するためのソケット情報とを対応付けて記憶部35に記憶させる。S405は記憶処理の一例である。また、ソケット情報は通信識別情報の一例である。
S406では、IPP機能51はS402で取得したセッションIDと同じセッションIDに対応付けられているソケット情報を記憶部35から読み出す。
S407では、IPP機能51はS401で受信したセッションID付き部分処理要求データからセッションIDを除去する。
S408では、IPP機能51はS407でセッションIDを除去した部分処理要求データ、又は、後述するS410で受信したセッションIDが付加されていない部分処理要求データを、S404で生成したソケット、あるいは、S406で読み出したソケット情報によって識別されるソケットを介してWebサーバ機能52に送信する。S408は第2の要求送信処理の一例である。
S409では、IPP機能51は処理要求の受信が完了したか否かを判断する。この判断は前述したS207と同様に行うことができる。IPP機能51は、処理要求の受信が完了していない場合はS410に進み、完了している場合はS411に進む。
S410では、IPP機能51はIPP/USB変換プログラム43からUSBを介して次の部分処理要求データを受信する。ただし、ここで受信される部分処理要求データにはセッションIDは付加されていない。
S411では、IPP機能51はスレッドを生成する。このスレッドはWebサーバ機能52から応答を受信してIPP/USB変換プログラム43に送信するためのものである。
(8−2)Webサーバ機能から応答を受信する処理
次に、図10を参照して、IPP機能51がWebサーバ機能52から応答を受信する処理について説明する。この処理は前述したS411で生成されたスレッドによって実行される。
S501では、スレッドはS402で取得されたセッションIDを継承するとともに、S404で生成されたソケットのソケット情報、又は、S406で読み出されたソケット情報を継承する。
S502では、スレッドはWebサーバ機能52から応答を受信する。ここでは、スレッドはWebサーバ機能52からの応答の受信が完了した後にS503に進むものとする。例えばWebサーバ機能52から応答を部分応答データに分けて受信する場合には全ての部分応答データの受信が完了した後にS503に進むものとする。S502は第2の応答受信処理の一例である。
S503では、スレッドはインタフェース1の排他処理を実行する。具体的には、スレッドはインタフェース1のミューテックスを取得する。なお、ここで取得するミューテックスはS101で生成されたものとは異なるものである。ここで取得するミューテックスは例えばプリンタ3に電源が投入されたときの初期化処理において生成されたものである。
S504では、スレッドは応答を複数の部分応答データに分割し、最初の部分応答データにS501で継承したセッションIDを付加してIPP/USB変換プログラム43に送信する。
S505では、スレッドは2番目以降の部分応答データにはセッションIDを付加せずに順次IPP/USB変換プログラム43に送信する。
上述したS504及びS505は第2の応答送信処理の一例である。
S506では、スレッドはインタフェース1の排他処理を終了する。
S507では、スレッドはS501で継承したセッションID及びソケット情報を記憶部35から削除する。
(9)実施形態の効果
以上説明したIPP/USB変換プログラム43によると、Webブラウザ42から受信した処理要求にセッションIDを付加する。そして、IPP/USB変換プログラム43によると、IPP機能51にセッションID付き処理要求を送信し、その応答としてIPP機能51からセッションID付き応答を受信するので、IPP機能51から応答を受信したとき、どのセッションを介してWebブラウザ42にその応答を送信すればよいかを、当該応答に付加されているセッションIDによって識別できる。
よってIPP/USB変換プログラム43によると、USBのようなマルチセッションの概念がない通信回線でWebブラウザとWebサーバとが通信を行う場合であっても、USB(より具体的にはインタフェース1)を介してWebブラウザ42がプリンタ3とマルチセッションによって混乱なく通信することができる。
つまり、従来はUSBにはセッションの概念がなかったので、セッションIDを付加する、ということは行われていなかったが、IPP/USB変換プログラム43でそれを行うことにより、IPP over USBでも混信なく通信を行うことができる。
更に、IPP/USB変換プログラム43によると、処理要求をIPP機能51に送信したあとその処理要求の応答を待つことなく別の処理要求に関するデータの送受信を行えるため、処理要求の応答待ちのためにUSBでデータが非転送状態になる時間を縮小でき、処理速度が向上する。
更に、IPP/USB変換プログラム43によると、セッションID付き応答に付加されていたセッションIDと当該セッションIDに対応付けられているソケット情報とを記憶部25から削除するので、不要になったセッションIDとソケット情報とが記憶部25に記憶されたままにならないようにすることができる。
更に、IPP/USB変換プログラム43によると、一つの処理要求に対してセッションIDを一度しか送信しないので、部分処理要求データ毎にセッションIDを送信する場合に比べて送信するデータ量を低減することができる。
また、プリンタ3によると、IPP/USB変換プログラム43からセッションID付き処理要求を受信し、その処理要求に対する応答としてセッションID付き応答をPC2に送信することができる。これにより、処理要求と応答との対応関係を確実にとることができる。
更に、プリンタ3によると、IPP機能51とWebサーバ機能52との間で応答が混乱してしまわないようにすることができる。
<実施形態2>
次に、実施形態2を図11ないし図16によって説明する。
図11を参照して、実施形態2に係るセッションID付き処理要求について説明する。前述した実施形態1に係るIPP/USB変換プログラム43は一つの処理要求についてIPP機能51にセッションIDを一度しか送信しない。これに対し、実施形態2に係るIPP/USB変換プログラム43は、Webブラウザ42から受信した処理要求を複数の部分処理要求データに分割し、部分処理要求データ毎にセッションIDを付加して送信する。
この処理における部分処理要求データは以下のように分けられる。
(a)ヘッダ
(b)Content-Lengthにより一括指定される付加データのデータ塊
(c)chunked指定により指定される複数に分割された付加データのそれぞれのデータ塊
ここでヘッダとは、処理要求のうち付加データ以外のデータのことをいう。付加データが付加されていない場合は処理要求全体がヘッダに相当する。実際の処理要求では、(1)のみ、あるいは(1)および(2)、あるいは(1)および単数もしくは複数の(3)により処理要求が構成される。
実施形態2に係るIPP/USB変換プログラム43は、例えばセッション1を介して処理要求のヘッダを受信すると、そのヘッダにセッション1のセッションIDを付加したセッションID付きヘッダをIPP機能51に送信する。
そして、IPP/USB変換プログラム43は、セッション1による処理要求の受信が完了する前にセッション2を介してヘッダを受信すると、そのヘッダにセッション2のセッションIDを付加したセッションID付きヘッダをIPP機能51に送信する。以下同様に、IPP/USB変換プログラム43はセッションを介して部分処理要求データを受信する毎にその部分処理要求データに当該部分処理要求データを受信したセッションのセッションIDを付加してIPP機能51に送信する。
図11では省略しているが、IPP機能51も同様に応答をヘッダと付加データとの部分応答データに分け、各部分応答データにセッションIDを付加してIPP/USB変換プログラム43に送信するものとする。
(1)Webブラウザから処理要求を受信する処理
次に、実施形態2に係るWebブラウザから処理要求を受信する処理について説明する。
(1−1)Webブラウザから処理要求を受信する処理
先ず、図12を参照して、実施形態2に係るIPP/USB変換プログラム43がWebブラウザ42から処理要求を受信する処理について説明する。この処理はS104で生成されたスレッドによって実行される。
S601では、スレッドはアクセプト処理を実行する。
S602では、スレッドはS601で生成したソケットを識別するためのセッションIDを生成する。
S603では、スレッドはS602で生成したソケットを識別するためのソケット情報とS602で生成したセッションIDとを対応付けて記憶部25に記憶させる。
S604では、スレッドはS601で確立したセッションを介してWebブラウザ42から処理要求のヘッダを受信する。
S605では、スレッドはインタフェース1の排他処理を実行する。
S606では、スレッドはS602で生成したセッションIDを、インタフェース1を介してIPP機能51に送信する。この送信は種々の方法で行うことができる。例えば以下のS607で送信する部分処理要求データの最初の8バイトをセッションIDとする、又は、部分処理要求データの最初の一行はセッションIDとするなど、予め決められた適宜のルールによってセッションIDを送信することができる。
S607では、スレッドはS604で受信したヘッダを、インタフェース1を介してIPP機能51に送信する。ここで、処理要求のヘッダが複数の通信データからなる場合は、S607においてそれら複数の通信データがIPP機能51に送信される。
S608では、スレッドはインタフェース1の排他処理を終了する。
S609では、スレッドは付加データがあるか否かを判断する。具体的には、スレッドはS604で受信したヘッダにContent-Length又はchunkedが含まれている場合は付加データがあると判断し、いずれも含まれていない場合は付加データがないと判断する。スレッドは、付加データがある場合はS610に進み、付加データがない場合は本処理を終了する。
S610では、スレッドは付加データ送信処理を実行する。付加データ送信処理はWebブラウザ42から付加データを受信してIPP機能51に送信する処理である。付加データ送信処理の詳細については後述する。
(1−2)付加データ送信処理
次に、図13を参照して、S610で実行される付加データ送信処理について説明する。
S701では、スレッドは受信したヘッダにContent-Lengthが含まれているか否かを判断し、Content-Lengthが含まれている場合はS702に進み、含まれていない場合(すなわちchunkedが含まれている場合)はS708に進む。
S702では、スレッドはS604で受信したヘッダからサイズ情報データを取得する。
S703では、スレッドはWebブラウザ42からS702で取得したサイズ情報データによって示されるデータサイズの付加データを受信する。
S704では、スレッドはインタフェース1の排他処理を実行する。
S705では、スレッドはS602で生成されたセッションIDを、インタフェース1を介してIPP機能51に送信する。
S706では、スレッドはS703で受信した付加データを、インタフェース1を介してIPP機能51に送信する。
S707では、スレッドはインタフェース1の排他終了処理を実行する。
S708では、スレッドはデータ塊のサイズ情報データを取得する。具体的には、前記S701でChunkedにより付加データが送信されていると判断された場合にS708の処理が行われる。この場合は、付加データは通常複数のデータ塊に分割され、それぞれのデータ塊に対してそのデータ数の情報が付加されている。S708ではそのそれぞれのデータ塊のサイズ情報データを取得する。
S709では、スレッドはWebブラウザ42からS709で取得したサイズ情報データによって示されるデータサイズ分の部分付加データを受信する。
S710では、スレッドはインタフェース1の排他処理を実行する。
S711では、スレッドはS602で生成されたセッションIDを、インタフェース1を介してIPP機能51に送信する。
S712では、スレッドはS709で受信した部分付加データを、インタフェース1を介してIPP機能51に送信する。
S713では、スレッドはインタフェース1の排他終了処理を実行する。
S714では、スレッドは付加データの受信が完了したか否かを判断する。具体的には、受信した付加データに続くデータ塊があるか否かを判断する。この判断はS207と同様の手順により行われる。スレッドは、付加データの受信が完了した場合は本処理を終了して「Webブラウザから処理要求を受信する処理」に戻り、未だ完了していない場合はS708に戻って処理を繰り返す。
ただし、本処理が終了してもソケットは存続し続ける。
(1−3)IPP機能から応答を受信する処理
次に、図14を参照して、実施形態2に係るIPP/USB変換プログラム43がIPP機能51から応答を受信する処理について説明する。ここでは図8と実質的に同一の処理には同一の符号を付して説明を省略する。
S801では、IPP/USB変換プログラム43はIPP機能51からインタフェース1を介してセッションID付きヘッダ、セッションID付き付加データの単位で応答を受信する。具体的には、最初にS801が実行された時点ではセッションID付きヘッダが受信され、その後、S306で処理要求の受信が完了していないと判断されて再度S801が実行されたときにはセッションID付き付加データが受信される。
以後の処理は図8の同一番号を付した部分と同じ処理を行う。ただし、図14の処理では各部分応答データごとにセッションIDが付与されているので、IPP/USB変換プログラム43はS306にて「否」と判断した場合はS801に戻り、再びセッションID付部分応答データを受信するとともに、S302、S303を経てS304にてセッションIDを削除したのちにS305においてWebブラウザ42に送信する。
(2)IPP機能の処理
次に、実施形態2に係るIPP機能51の処理について説明する。
(2−1)IPP/USB変換プログラムから処理要求を受信する処理
図15を参照して、実施形態2に係るIPP機能51がIPP/USB変換プログラム43から処理要求を受信する処理について説明する。ここでは図9と実質的に同一の処理には同一の符号を付して説明を省略する。
S901では、IPP機能51はIPP/USB変換プログラム43からインタフェース1を介してセッションID付きヘッダ、セッションID付き付加データの単位で処理要求を受信する。具体的には、最初にS901が実行された時点ではセッションID付きヘッダが受信され、その後、S409で処理要求の受信が完了していないと判断されて再度S901が実行されたときにはセッションID付き付加データが受信される。
以下は図9とほぼ同様であるが、S409で「否」と判断された場合は、IPP機能51はS901に戻る。これは実施形態2では各部分処理要求データにセッションIDが付与されているので、それらすべてをS407にて除去した上でWebサーバ機能52に送信するためである。
(2−2)Webサーバ機能から応答を受信する処理
図16を参照して、実施形態2に係るIPP機能51がWebサーバ機能52から応答を受信する処理について説明する。ここでは図10と実質的に同一の処理には同一の符号を付して説明を省略する。
S1001では、スレッドはWebサーバ機能52から応答としてヘッダ、又は、付加データを受信する。具体的には、最初にS1001が実行された時点ではヘッダが受信され、その後、S1004で応答の受信が完了していないと判断されて再度S1001が実行されたときには付加データが受信される。
また、実施形態2ではヘッダ及び付加データのそれぞれにセッションIDを付加してIPP/USB変換プログラム43に送信される。例えばS1001でヘッダが受信された場合はS1002においてそのヘッダにセッション情報が付加され、S1003においてセッション情報が付加されているヘッダがIPP/USB変換プログラム43に送信される。一方、S1001で付加データが受信された場合はS1002においてその付加データにセッション情報が付加され、S1003においてセッション情報が付加されている付加データがIPP/USB変換プログラム43に送信される。
S1004では、スレッドはWebサーバ機能52からの応答の受信が完了したか否かを判断する。スレッドは、完了したと判断した場合はS507に進み、完了していないと判断した場合はS1001に戻る。
(3)実施形態の効果
以上説明した実施形態2に係るIPP/USB変換プログラム43によると、処理要求を複数の部分処理要求データ(具体的にはヘッダ及び付加データ)に分割し、部分処理要求データ毎にセッションIDを付加してプリンタ3に送信するので、複数の処理要求を並行してプリンタ3に送信することができる。
また、実施形態2に係るプリンタ3によると、Webサーバ機能52から受信した応答を複数の部分応答データ(具体的にはヘッダ及び付加データ)に分割し、分割した部分応答データにそれぞれセッション情報を付加してIPP/USB変換プログラム43に送信するので、複数の応答を並行してIPP/USB変換プログラム43に送信することができる。
また、実施形態2に係るIPP/USB変換プログラム43及びプリンタ3によると、Chunkedで送られる長いデータもそれぞれのデータ塊ごとに送信でき、かつそのデータ塊の送信の合間に別のデータを送ることもできるので、実施例1に比べてさらに効率よくデータ転送が可能になり、高速動作が期待できる。
<実施形態3>
次に、実施形態3を図17ないし図18によって説明する。
図17を参照して実施形態3に係る処理要求について説明する。前述した実施形態2に係るIPP/USB変換プログラム43は処理要求をヘッダと付加データとの部分処理要求データに分けてIPP機能51に送信する場合を例に説明した。これに対し、実施形態3に係るIPP/USB変換プログラム43は、処理要求を所定のデータサイズ(例えば2048バイト)の部分処理要求データに分割し、分割した部分処理要求データにそれぞれセッションIDとLastFlagとを付加してIPP機能51に送信する。
LastFlagとは、処理要求の送信が完了したか否かを0(零)又は1で示す情報である。0は処理要求の送信が完了していないことを示し、1は処理要求の送信が完了したことを示す。IPP機能51はLastFlagを参照することにより、処理要求の受信が完了したか否かを判断することができる。
また、前述した実施形態1及び2に係るIPP/USB変換プログラム43はWebブラウザ42からの処理要求の受信が完了するのを待つことなくIPP機能51への送信を開始する。これに対し、実施形態3に係るIPP/USB変換プログラム43はWebブラウザ42からの処理要求の受信が完了した後にIPP機能51への送信を開始する。なお、実施形態3においてもWebブラウザ42からの処理要求の受信が完了するのを待つことなくIPP機能51に当該処理要求の送信を開始してもよい。
(1)Webブラウザから処理要求を受信する処理
次に、図18を参照して、実施形態3に係るIPP/USB変換プログラム43がWebブラウザ42から処理要求を受信する処理について説明する。
S1101では、スレッドはアクセプト処理を実行する。
S1102では、スレッドはWebブラウザ42からヘッダを受信する。
S1103では、スレッドはWebブラウザ42から付加データを受信する。スレッドは付加データの受信が完了した後にS1104に進む。
S1104では、スレッドはS1102で受信したヘッダのデータサイズ及びS1103で受信した付加データのデータサイズの合計値を計算し、計算した合計値を、未送信のデータ(残データという)のデータサイズを示す変数である残データ数に初期値として設定する。
S1105では、スレッドはセッションIDを生成する。
S1106では、スレッドはS1101で生成したソケットを示すソケット情報とS1105で生成したセッションIDとを対応付けて記憶部25に記憶させる。
S1107では、スレッドはインタフェース1の排他処理を実行する。
S1108では、スレッドは残データ数が2048より大きいか否かを判断し、2048より大きい場合は1109に進み、2048以下である場合はS1114に進む。
S1109では、スレッドはS1105で生成したセッションIDをIPP機能51に送信する。
S1110では、スレッドは残データ数から2048を減じる。
S1111では、スレッドはサイズ情報データとして2048をIPP機能51に送信する。
S1112では、スレッドはLastFlagとして0(零)をIPP機能51に送信する。
S1113では、スレッドはIPP機能51に2048バイト分の部分処理要求データを送信してS1108に戻る。
S1114では、スレッドはS1105で生成したセッションIDをIPP機能51に送信する。
S1115では、スレッドはサイズ情報データとして残データ数をIPP機能51に送信する。
S1116では、スレッドはLastFlagとして1をIPP機能51に送信する。
S1117では、スレッドは残データ数によって示されるデータサイズの残データをIPP機能51に送信する。
S1118では、スレッドはインタフェース1の排他処理を終了する。
IPP機能51は、受信した部分処理要求データより、セッションIDおよびLastFlagを除去してWEBサーバに送信する。
IPP機能51からIPP/USB変換プログラム43に応答を送信する際にも同様にして送信する。すなわち応答データを2048バイトごとの部分応答データごとに分け、それぞれにデータ数情報およびLastFlag(0)を付して送信し、最後の部分応答データに関してはそのデータ数情報およびLastFlag(1)を付して送信する。
IPP/USB変換プログラム43は、IPP機能51から受信した部分応答データからセッションID及びLastFlagを除去してWebブラウザ42に送信する。
セッションID、ソケットの使用方法などは実施形態1及び実施形態2と同じである。
(2)実施形態の効果
以上説明した実施形態3に係るIPP/USB変換プログラム43によると、決められたサイズの部分処理要求データに分け、それぞれの部分処理要求データにセッション情報を付加してIPP機能51に送信するので、複数の処理要求を並行してプリンタ3に送信することができる。
更に、IPP/USB変換プログラム43によると、全ての部分処理要求データをプリンタ3に送信した後に、処理要求の送信が完了したことを示す情報をプリンタ3に送信するので、プリンタ3側において処理要求の受信が完了したことを知ることができる。
<他の実施形態>
上記記述及び図面によって説明した実施形態に限定されるものではなく、例えば次のような実施形態も技術的範囲に含まれる。
(1)上記実施形態1ではセッション情報としてセッションIDを処理要求に付加する場合を例に説明した。これに対し、セッションIDではなくソケット情報を付加してもよい。この場合はセッションIDとソケット情報とを対応付けて記憶部25に記憶しなくてもよい。
(2)上記実施形態2では処理要求を複数の部分処理要求データに分割する例としてヘッダと付加データとに分割する場合を例に説明した。しかしながら、処理要求を複数の部分処理要求データに分割する基準はこれに限られるものではなく、適宜の基準で分けることができる。例えばWebブラウザ42から一度に受信する通信データの単位に分けてもよい。
(3)上記実施形態ではマルチセッションによって通信するクライアントアプリケーションとしてWebブラウザ42を例に説明した。しかしながら、クライアントアプリケーションはマルチセッションによって通信するものであれば他のアプリケーションであってもよい。
(4)上記実施形態では通信回線としてUSBを例に説明した。しかしながら、通信回線はUSBに限られない。例えばPC2とプリンタ3とはプリンタの通信規格であるIEEE1284によって通信するものであってもよい。
(5)上記実施形態ではセッションの確立が要求される毎に新たなスレッドを作成する場合を例に説明した。これに対し、スレッドを作成せず、通信中継処理において各セッションに対する処理をシーケンシャルに実行してもよい。または、スレッドに替えてプロセスを作成し、スレッドによって行っていた処理をプロセスによって行ってもよい。
(6)上記実施形態ではPC2とプリンタ3とを論理的な複数の通信回線で接続する場合を例に説明した。これに対し、PC2とプリンタ3とは物理的な複数の通信回線で接続されてもよい。
(7)上記実施形態では画像処理装置としてプリンタ3を例に説明した。これに対し、画像処理装置は、印刷機能、スキャナ機能、コピー機能、ファクシミリ機能などを備える所謂複合機であってもよい。あるいは、単機能のスキャナ装置やファクシミリ装置などであってもよい。
(8)上記実施形態では制御部31が一つのCPU31aを備える場合を例に説明した。これに対し、制御部31は1以上のCPUによって構成されてもよいし、ASICによって構成されてもよいし、1以上のCPUとASICとの組み合わせによって構成されてもよい。
(9)上記実施形態では、プリンタはKeepAlive仕様により単一セッションにて複数の要求データを要求しないものとして構成されている。しかし応答送信終了後もソケットを破棄せずに使用することによりKeepAlive仕様に対応することもできる。
1・・・画像処理システム、2・・・PC、3・・・プリンタ、4・・・USBケーブル、20・・・CPU、25・・・記憶部、26・・・USBホストインタフェース部、31a・・・CPU、32・・・USBクライアントインタフェース部、33・・・印刷部、35・・・記憶部、42・・・Webブラウザ、43・・・IPP/USB変換プログラム、44・・・スプーラ、51・・・IPP機能、52・・・Webサーバ機能、60・・・設定画面

Claims (3)

  1. Webブラウザを有しマルチセッションによって通信する情報処理装置とマルチセッションの概念がないIPP over USB規格を使ってユニバーサルシリアルバス(USB)回線を介して通信する信部と、
    理部と、
    前記理部から受信した処理要求に対する応答を前記理部に送信する応答部と、
    を備え、
    前記理部は、
    前記情報処理装置からセッションを識別するためのセッション情報が付加されたセッション情報付き処理要求を受信する求受信処理と、
    前記求受信処理によって受信された前記セッション情報付き処理要求に対する応答として、前記セッション情報を付加したセッション情報付き応答を前記情報処理装置に送信する答送信処理と、
    前記求受信処理によって前記セッション情報付き処理要求が受信されると、当該セッション情報付き処理要求に付加されているセッション情報が、当該理部と前記応答部との間に確立されている通信を識別するための通信識別情報に対応付けられて記憶装置に記憶されているか否かを判断する記憶判断処理と、
    前記記憶判断処理によって記憶されていないと判断された場合に、前記応答部との間に新たな通信を確立する立処理と、
    前記立処理によって確立された前記新たな通信を識別するための通信識別情報と前記セッション情報とを対応付けて前記記憶装置に記憶させる記憶処理と、
    前記記憶判断処理によって記憶されていると判断された場合は、前記セッション情報付き処理要求から前記セッション情報を除去した処理要求を、当該セッション情報に対応付けられている前記通信識別情報によって識別される前記通信を介して前記応答部に送信する一方、前記記憶判断処理によって記憶されていないと判断された場合は、前記セッション情報付き処理要求から前記セッション情報を除去した処理要求を、前記立処理によって確立された前記新たな通信を介して前記応答部に送信する求送信処理と、
    前記応答部から前記通信を介して前記処理要求に対する応答を受信する答受信処理と、
    を実行し、
    前記答送信処理において、前記答受信処理によって前記応答部から受信された前記応答に当該応答を受信した前記通信の前記通信識別情報に対応付けられて前記記憶装置に記憶されている前記セッション情報を付加したセッション情報付き応答を前記情報処理装置に送信する、画像処理装置。
  2. 請求項に記載の画像処理装置であって、
    前記応答部はWebサーバ機能を有する、画像処理装置。
  3. 請求項乃至請求項のいずれか一項に記載の画像処理装置であって、
    前記答送信処理において、前記答受信処理によって受信した前記応答を複数の部分応答データに分割し、分割した前記部分応答データにそれぞれ前記セッション情報を付加して前記情報処理装置に送信する、画像処理装置。
JP2012240618A 2012-10-31 2012-10-31 通信中継プログラム、通信中継装置、及び、画像処理装置 Active JP6167502B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2012240618A JP6167502B2 (ja) 2012-10-31 2012-10-31 通信中継プログラム、通信中継装置、及び、画像処理装置
CN201310353873.6A CN103795881B (zh) 2012-10-31 2013-08-14 通信中继装置、图像处理装置以及通信中继方法
EP13190932.7A EP2728459B1 (en) 2012-10-31 2013-10-30 Image Processing System
US14/068,146 US9565053B2 (en) 2012-10-31 2013-10-31 Non-transitory computer-readable medium, communication relay apparatus, and image processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012240618A JP6167502B2 (ja) 2012-10-31 2012-10-31 通信中継プログラム、通信中継装置、及び、画像処理装置

Publications (2)

Publication Number Publication Date
JP2014089668A JP2014089668A (ja) 2014-05-15
JP6167502B2 true JP6167502B2 (ja) 2017-07-26

Family

ID=49554013

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012240618A Active JP6167502B2 (ja) 2012-10-31 2012-10-31 通信中継プログラム、通信中継装置、及び、画像処理装置

Country Status (4)

Country Link
US (1) US9565053B2 (ja)
EP (1) EP2728459B1 (ja)
JP (1) JP6167502B2 (ja)
CN (1) CN103795881B (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6011167B2 (ja) 2012-09-03 2016-10-19 ブラザー工業株式会社 通信中継プログラム、及び、通信中継装置
JP6167502B2 (ja) 2012-10-31 2017-07-26 ブラザー工業株式会社 通信中継プログラム、通信中継装置、及び、画像処理装置
JP6075010B2 (ja) * 2012-10-31 2017-02-08 ブラザー工業株式会社 通信中継プログラム、及び、画像処理装置
CN105812345B (zh) * 2014-12-31 2019-08-23 广州市动景计算机科技有限公司 一种实现网页到客户端通信的方法及装置
US10084820B2 (en) * 2015-02-27 2018-09-25 Konica Minolta Laboratory U.S.A., Inc. Method and system for IPSec security for IPP-USB data
US20170005938A1 (en) * 2015-06-30 2017-01-05 Konica Minolta Laboratory U.S.A., Inc. System and method of tcp/ip bypass over universal serial bus (usb)
JP6700894B2 (ja) * 2016-03-25 2020-05-27 キヤノン株式会社 画像処理装置、制御方法、プログラム
JP6960302B2 (ja) * 2017-10-25 2021-11-05 キヤノン株式会社 通信装置、通信方法、及びプログラム
JP7263837B2 (ja) * 2019-02-27 2023-04-25 ブラザー工業株式会社 プログラム、アプリケーション、情報処理装置
JP7234687B2 (ja) 2019-02-27 2023-03-08 ブラザー工業株式会社 モジュール及びプログラム
JP7234688B2 (ja) * 2019-02-27 2023-03-08 ブラザー工業株式会社 プログラム、アプリケーション、情報処理装置
WO2020222900A1 (en) * 2019-04-30 2020-11-05 Hewlett-Packard Development Company, L.P. Storage device decoupling determination
JP7427951B2 (ja) * 2019-12-16 2024-02-06 ブラザー工業株式会社 プログラム、プログラム群、および情報処理装置
US11971267B2 (en) 2020-10-05 2024-04-30 Accenture Global Solutions Limited User journey carbon footprint reduction
US20240001619A1 (en) * 2020-10-16 2024-01-04 Hewlett-Packard Development Company, L.P. 3d fabricated objects with lattice structures having tubes
US11886837B2 (en) 2021-04-10 2024-01-30 Accenture Global Solutions Limited Simulation-based software design and delivery attribute tradeoff identification and resolution
JP2022189282A (ja) * 2021-06-11 2022-12-22 キヤノン株式会社 プログラム、情報処理装置、及び情報処理装置の制御方法
WO2023086416A1 (en) * 2021-11-09 2023-05-19 Adaptive Biotechnologies Corporation Detecting varying conductance indicative of sequential interactions between nucleobases
JP7346524B2 (ja) * 2021-11-22 2023-09-19 キヤノン株式会社 画像形成装置、画像形成装置の制御方法並びにプログラム

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5220674A (en) 1987-07-17 1993-06-15 Digital Equipment Corporation Local area print server for requesting and storing required resource data and forwarding printer status message to selected destination
US7383321B2 (en) 2002-07-09 2008-06-03 Moyer Alan L Method and system for communicating between a remote printer and a server
JP3888452B2 (ja) 2001-07-02 2007-03-07 セイコーエプソン株式会社 ネットワークを介した印刷方法
WO2003017123A1 (en) * 2001-08-16 2003-02-27 Redline Networks, Inc. System and method for maintaining statefulness during client-server interactions
JP3888130B2 (ja) 2001-11-01 2007-02-28 セイコーエプソン株式会社 無線ネットワークのステーション
JP4323876B2 (ja) * 2003-06-20 2009-09-02 キヤノン株式会社 データ処理装置、その制御方法、及び制御プログラム
JPWO2005050935A1 (ja) * 2003-11-21 2007-12-06 三菱電機株式会社 侵入検知装置およびその方法
JP2006056069A (ja) 2004-08-18 2006-03-02 Canon Inc 印刷制御装置および印刷制御方法
JP4364150B2 (ja) 2005-03-25 2009-11-11 株式会社東芝 リソース共用装置、方法、及びプログラム
US20070033646A1 (en) 2005-08-05 2007-02-08 Sierra Wireless, Inc. A Canadian Corp. Suspension and resumption of secure data connection session
US20070173077A1 (en) 2006-01-24 2007-07-26 Hwa Yao Technologies Co., Ltd. Universal serial bus (usb) network adapter connectable to external antenna
JP4781125B2 (ja) 2006-02-17 2011-09-28 キヤノン株式会社 情報処理システム、情報処理装置、及び周辺装置
JP4530420B2 (ja) 2006-05-15 2010-08-25 日本電信電話株式会社 ファイル転送システム、ファイル転送プログラムおよびファイル転送方法
JP4590429B2 (ja) * 2007-05-14 2010-12-01 富士ゼロックス株式会社 印刷システム、サーバ、印刷装置、携帯端末装置および印刷方法
JP5035006B2 (ja) * 2007-07-25 2012-09-26 富士通株式会社 通信装置の制御方法及び通信装置
JP2009139990A (ja) * 2007-12-03 2009-06-25 Internatl Business Mach Corp <Ibm> 情報の不正取得を防止する技術
JP5137641B2 (ja) * 2008-03-19 2013-02-06 キヤノン株式会社 情報処理装置、画像処理システム及び画像処理方法並びにプログラム
JP5153560B2 (ja) * 2008-10-15 2013-02-27 キヤノン株式会社 画像処理装置、サーバー装置及び制御方法
JP5124779B2 (ja) 2008-11-07 2013-01-23 キヤノンイメージングシステムズ株式会社 デバイス共有システム、デバイス共有クライアント、及びデバイス共有方法
JP2010122933A (ja) 2008-11-20 2010-06-03 Fujitsu Ltd コンテンツ転送方法および装置
JP5307610B2 (ja) 2009-04-17 2013-10-02 キヤノン株式会社 無線通信システムと通信方法
JP5460145B2 (ja) * 2009-07-01 2014-04-02 キヤノン株式会社 データ処理装置、データ処理装置の制御方法、及びプログラム
JP5441646B2 (ja) * 2009-12-02 2014-03-12 キヤノン株式会社 印刷装置、印刷方法、及び印刷プログラム
KR101569037B1 (ko) 2009-12-03 2015-11-16 삼성전자주식회사 컨트롤 포인트, 화상형성장치, 및 인쇄 제어 방법
JP5446943B2 (ja) 2010-01-29 2014-03-19 ソニー株式会社 印刷システム及びプリンタ装置の制御方法
JP2011165009A (ja) 2010-02-10 2011-08-25 Canon Inc 印刷ジョブ管理装置及び印刷ジョブ管理方法及び画像形成装置
JP2011180954A (ja) 2010-03-03 2011-09-15 Seiko Epson Corp 機器制御装置、機器制御プログラムおよびサーバー
JP5539043B2 (ja) 2010-06-08 2014-07-02 キヤノン株式会社 情報送信装置、情報送信装置の制御方法及びコンピュータプログラム
US8429075B2 (en) 2010-07-19 2013-04-23 Eft Source, Inc. System and method for instant issue of personalized financial transaction cards
JP2012064091A (ja) * 2010-09-17 2012-03-29 Fuji Xerox Co Ltd 情報処理システム、情報処理装置、及びプログラム
JP2012070096A (ja) * 2010-09-21 2012-04-05 Kyocera Mita Corp 画像形成システム、管理装置、および画像形成装置
JP5641921B2 (ja) 2010-12-20 2014-12-17 キヤノン株式会社 画像処理装置、画像処理装置と外部装置を有するシステム、システムの制御方法、及びプログラム
CN102651753B (zh) * 2011-02-25 2016-04-27 国际商业机器公司 与平台无关的信息处理系统及其通信方法
US8627449B2 (en) 2011-03-03 2014-01-07 Cisco Technology, Inc. Dynamic tunneling over virtual private network connections based on network conditions
CN102970320B (zh) 2011-08-31 2016-12-21 精工爱普生株式会社 处理装置、处理方法
JP6167502B2 (ja) 2012-10-31 2017-07-26 ブラザー工業株式会社 通信中継プログラム、通信中継装置、及び、画像処理装置
JP6075010B2 (ja) * 2012-10-31 2017-02-08 ブラザー工業株式会社 通信中継プログラム、及び、画像処理装置
JP6015360B2 (ja) 2012-11-02 2016-10-26 ブラザー工業株式会社 通信装置および通信プログラム
JP6099958B2 (ja) 2012-12-10 2017-03-22 キヤノン株式会社 画像形成装置及びその制御方法とプログラム

Also Published As

Publication number Publication date
EP2728459A3 (en) 2014-12-31
CN103795881B (zh) 2017-04-26
US9565053B2 (en) 2017-02-07
EP2728459A2 (en) 2014-05-07
EP2728459B1 (en) 2020-04-22
US20140122733A1 (en) 2014-05-01
JP2014089668A (ja) 2014-05-15
CN103795881A (zh) 2014-05-14

Similar Documents

Publication Publication Date Title
JP6167502B2 (ja) 通信中継プログラム、通信中継装置、及び、画像処理装置
JP6075010B2 (ja) 通信中継プログラム、及び、画像処理装置
JP6155607B2 (ja) 通信中継プログラム、及び、通信中継装置
JP6011167B2 (ja) 通信中継プログラム、及び、通信中継装置
JP5511332B2 (ja) 通信装置及び方法、並びにプログラム
JP5424856B2 (ja) 画像形成装置及びその省電力制御方法とプログラム
JP5995525B2 (ja) システム、画像形成装置、サーバー及びその制御方法
JP6700894B2 (ja) 画像処理装置、制御方法、プログラム
US20170308343A1 (en) Printing system, a method of printing a print job, and a program
JP6142511B2 (ja) 通信中継プログラム、通信中継装置、及び、画像処理装置
JP2008097587A (ja) クライアント装置、ネットワークシステムおよびプログラム
JP4815424B2 (ja) 画像処理装置及び通信装置、並びに画像処理システム
JP5031539B2 (ja) 印刷システム、印刷装置及び印刷方法
JP7240118B2 (ja) 情報処理装置、その制御方法およびプログラム
JP5807713B1 (ja) 画像処理装置及び画像処理プログラム
JP2014232931A (ja) 印刷装置
JP5305754B2 (ja) 情報処理装置、クライアント、情報処理方法およびプログラム
JP5546189B2 (ja) 画像形成装置、画像形成装置の制御方法及びプログラム
JP2023108545A (ja) 画像制御装置、画像制御装置の制御方法、及びプログラム
JP2018180691A (ja) 制御装置、その制御方法、プログラム、及びシステム
JP2020077152A (ja) 画像形成装置、画像形成システム及び画像形成プログラム
JP2010247499A (ja) 印刷装置
JP2010097492A (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: 20160531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160804

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170427

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20170510

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170612

R150 Certificate of patent or registration of utility model

Ref document number: 6167502

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150