JP2011129111A - クライアント装置、デバイス制御方法、およびデバイス制御システム - Google Patents

クライアント装置、デバイス制御方法、およびデバイス制御システム Download PDF

Info

Publication number
JP2011129111A
JP2011129111A JP2010257683A JP2010257683A JP2011129111A JP 2011129111 A JP2011129111 A JP 2011129111A JP 2010257683 A JP2010257683 A JP 2010257683A JP 2010257683 A JP2010257683 A JP 2010257683A JP 2011129111 A JP2011129111 A JP 2011129111A
Authority
JP
Japan
Prior art keywords
information
client
software component
control
session
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.)
Pending
Application number
JP2010257683A
Other languages
English (en)
Inventor
Inochi Negishi
命 根岸
Ryosuke Miyashita
良介 宮下
Akira Endo
亮 遠藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Imaging Systems Inc
Original Assignee
Canon Imaging Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Imaging Systems Inc filed Critical Canon Imaging Systems Inc
Priority to JP2010257683A priority Critical patent/JP2011129111A/ja
Publication of JP2011129111A publication Critical patent/JP2011129111A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】ローカル接続した場合に1台から数台しか制御できないデバイスであっても、接続インターフェースの規格上の最大接続台数まで接続し、制御可能な手段を提供する。
【解決手段】クライアント装置は、デバイスが接続されたことを検知すると、そのデバイスのデバイス情報を取得し、ドライバソフトウェア部品とアプリケーションソフトウェア部品とから成るデバイススタックを、接続されたことを検知したデバイスの個体毎に生成し、当該デバイススタックの各々によって、デバイスの各個体を独立して制御する。
【選択図】図2

Description

本発明は、ネットワークを介してデバイスを制御する機能を備えた装置、方法、及びそのデバイス制御システムに関するものである。
ネットワークの普及により、従来、パーソナルコンピュータ(PC)などにローカル接続して利用していたプリンタ、ストレージ、スキャナなどのデバイス(周辺機器)をネットワーク上のクライアントPCから利用できるように工夫したデバイス制御システムが発表されている。
ひとつの実現方法として、クライアントPCに専用のアプリケーションソフトウェア(以下、ユーティリティ)を導入しておき、ユーザがデバイスにアクセスしようとするときにユーティリティを操作し、クライアントPCに対してローカル接続したデバイスとして仮想的に認識させることで、ネットワーク上のクライアントPCから、ローカル接続した状態と同様にアクセスできるようにするものがある。
しかし、この方法では、ユーザによるセッションの開始・終了操作が必要であり、ユーザがユーティリティを使ってデバイスの終了操作をしない限り、デバイスとのセッションが専有されてしまうため、他のクライアントPCがデバイスを使用することができないという問題が生じる。
かかる問題を解決するために、ブロックヘッダで特定されるデータ長のブロックデータが伝送される間だけ、特定のクライアントPCによるデータ伝送専有状態として、当該クライアントPCとデバイスとの間のデータ伝送を許可するデバイスサーバを用いたネットワークファイル管理システムが開示されている(特許文献1参照)。
特開2007−317067号公報
確かに、特許文献1に開示されたネットワークファイル管理システムによって、複数のクライアントPCから手動操作を行うことなく、デバイスを共有することができるようになるが、ここでさらに別の解決すべき課題がある。
例えば、カードリーダなどのデバイスの場合、その仕様上、一台のクライアントPCに同一機種のデバイスを複数台接続することは考慮されていないものが多い。これは、消費電流やトラフィックが増加することなどを考慮した結果、品質保証および動作保証上の観点から、メーカーやベンダーが提供するソフトウェア部品であるSDK(Software Development Kit)において、接続台数制限が設けられているためである。例えば、USB(Universal Serial Bus)の場合、規格スペック上の接続台数は最大127台であるが、上述のSDKに設けられた接続台数制限により、規格スペックを生かしきれていないのが現状である。
また、カードリーダのように同一のクライアントPCからの複数台制御が考慮されていないデバイスの場合、シリアル番号など、同一機種/別個体を識別するための情報がデバイス情報として記述されていないことが多く、こうしたデバイスを複数台ネットワーク接続して共有したときに、いかにして同一機種/別個体を識別するかも問題である。
上記問題に鑑みて、本発明は、デバイスの制御に必要なソフトウェア部品を、ネットワーク上に存在するデバイスの台数(n台)分だけクライアントPC内に構成して、仮想的にn対nの接続環境を構築することにより、クライアントPCにローカル接続した場合に1台〜数台しか制御できないデバイスであっても接続インターフェースの規格上の最大接続台数までデバイスを接続(認識)できるように制御することを目的とする。
また、本発明は、カードリーダのようにシリアル番号が付与されておらず、同一のクライアントPCからの複数台制御(複数台接続)が考慮されていないデバイスであっても、ユニークな情報(例えば、デバイスが接続されたデバイスサーバのMACアドレスとUSBポート番号)をデバイス情報に追加することによって、シリアル番号がないデバイスが複数接続されても、各々のデバイスを同一機種であっても別個体として識別可能とし、複数のデバイスを独立して使用できるように制御することを目的とする。
上記の課題を解決するために、請求項1に記載のクライアント装置は、ネットワークを介して接続されたデバイス制御装置にローカル接続されているデバイスを検知するためのデバイス検知手段と、前記デバイス検知手段によって検知した前記デバイスのデバイス情報を取得するデバイス情報取得手段と、前記デバイス情報取得手段で取得したデバイス情報に基づき、当該デバイス情報によって識別したデバイスとのデータ送受信に必要なドライバソフトウェア部品を生成し、当該生成したドライバソフトウェア部品と当該デバイスを制御するためのアプリケーションソフトウェア部品とから成るデバイススタックを、前記デバイス検知手段が接続を検知した前記デバイスの個体毎に生成するデバイススタック生成手段と、前記デバイススタック生成手段で生成された前記デバイススタックの各々からの接続要求を前記デバイス制御装置に送信する接続要求手段と、前記接続要求を送信したデバイススタックの各々と当該接続要求を受信したデバイス制御装置との間で独立したセッションを開始するセッション制御手段と、前記デバイススタックの各々により、前記セッション制御手段で開始したセッションを介して、前記デバイスの各個体を独立して制御するデバイス制御手段と、を備えることを特徴とする。
また、上記の課題を解決するために、請求項4に記載のデバイス制御方法は、デバイス制御装置にローカル接続されているデバイスを検知するためのデバイス検知ステップと、前記デバイス検知ステップにおいて検知した前記デバイスのデバイス情報を取得するデバイス情報取得ステップと、前記デバイス情報取得ステップで取得したデバイス情報に基づき、当該デバイス情報によって識別したデバイスとのデータ送受信に必要なドライバソフトウェア部品を生成し、当該生成したドライバソフトウェア部品と当該デバイスを制御するためのアプリケーションソフトウェア部品とから成るデバイススタックを、前記デバイス検知ステップにおいて検知した前記デバイスの個体毎に生成するデバイススタック生成ステップと、前記デバイススタック生成ステップにおいて生成された前記デバイススタックの各々からの接続要求を前記デバイス制御装置に送信する接続要求ステップと、前記接続要求を送信したデバイススタックの各々と当該接続要求を受信したデバイス制御装置との間で独立したセッションを開始するセッション制御ステップと、前記デバイススタックの各々によって、前記セッション制御ステップで開始したセッションを介して、前記デバイスの各個体を独立して制御するデバイス制御ステップと、を備えることを特徴とする。
また、上記の課題を解決するために、請求項7に記載のデバイス制御システムは、クライアント装置と、前記クライアント装置とネットワークを介して接続されたデバイス制御装置と、前記デバイス制御装置とローカル接続されたデバイスからなるデバイス制御システムであって、前記クライアント装置は、前記デバイス制御装置を介して前記デバイスを検知するためのデバイス検知手段と、前記デバイス検知手段によって検知した前記デバイスのデバイス情報を取得する第1のデバイス情報取得手段と、前記第1のデバイス情報取得手段で取得した前記デバイス情報に基づき、当該デバイス情報によって識別したデバイスとのデータ送受信に必要なドライバソフトウェア部品を生成し、当該生成したドライバソフトウェア部品と当該デバイスを制御するためのアプリケーションソフトウェア部品とから成るデバイススタックを、前記デバイス検知手段が接続を検知した前記デバイスの個体毎に生成するデバイススタック生成手段と、前記デバイススタック生成手段で生成された前記デバイススタックの各々からの接続要求を前記デバイス制御装置に送信する接続要求手段と、前記接続要求を送信したデバイススタックの各々と当該接続要求を受信したデバイス制御装置との間で独立したセッションを開始する第1のセッション制御手段と、前記デバイススタックの各々により、前記第1のセッション制御手段で開始したセッションを介して、前記デバイスの各個体を独立して制御するデバイス制御手段と、を備え、前記デバイス制御装置は、前記デバイスからデバイス情報を取得する第2のデバイス情報取得手段と、前記第2のデバイス情報取得手段で取得した前記デバイス情報を前記クライアント装置へ送信するデバイス情報送信手段と、前記クライアント装置で生成された前記デバイススタックの各々からの接続要求に応じて、当該デバイススタックの各々との間で独立したセッションを開始する第2のセッション制御手段と、を備えることを特徴とする。
本発明によれば、デバイスの制御に必要なソフトウェア部品を、ネットワーク上に存在するデバイスの台数(n台)分だけクライアントPC内に構成して、仮想的にn対nの接続環境を構築することにより、クライアントPCにローカル接続した場合に1台〜数台しか制御できないデバイスであっても接続インターフェースの規格上の最大接続台数までデバイスを接続(認識)できるようになる。
また、本発明によれば、カードリーダのようにシリアル番号が付与されておらず、同一のクライアントPCからの複数台制御(複数台接続)が考慮されていないデバイスであっても、ユニークな情報(例えば、デバイスが接続されたデバイスサーバのMACアドレスとUSBポート番号)をデバイス情報に追加することによって、シリアル番号がないデバイスが複数接続されても、各々のデバイスが同一機種であっても別個体として識別可能とし、複数のデバイスを独立して使用できるようになる。
実施例1に係るデバイス制御システムの概略構成を示す図である。 クライアントPC100の内部構成を例示するブロック図である。 実施例1に係るデバイスサーバ200の内部構成を例示するブロック図である。 実施例1に係るデバイスサーバ200におけるデバイス情報取得処理の手順について説明するフローチャートである。 クライアントPC100におけるデバイス300の仮想化制御について説明するフローチャートである。 クライアントPC100におけるアプリケーションプログラム111実行時の制御について説明するフローチャートである。 デバイスサーバ200におけるデータ送受信の制御について説明するフローチャートである。 パケットのデータ構成を例示する図である。 本発明に係るデバイス制御システムにおいて、クライアントPC100がデバイス制御する場合の過程を説明するシーケンス図である。 実施例2に係るデバイス制御システムの概略構成を示す図である。 実施例2に係るネットワークデバイス250の内部構成を例示するブロック図である。
以下、本発明の実施の形態について、詳細に説明する。
実施例1に係る実施の形態を説明する。
<1. デバイス制御システムの構成>
図1は、本発明を実現するためのデバイス制御システムの概略構成であり、クライアントPC100(100A,100B)、デバイスサーバ200(200A,200B)、デバイス300(300A,300B,300C)から構成される。
このデバイス制御システムでは、デバイスサーバ200とデバイス300をUSB(Universal Serial Bus)やIEEE1394などのインターフェースに準拠した接続ケーブル400で接続する。また、デバイスサーバ200とクライアントPC100(クライアントPC100A,100B)は、有線または無線のネットワーク500で接続する。
次に、デバイス制御システムを構成する各装置について順次説明する。
<2. クライアントPC100の構成>
クライアントPC(クライアント装置)100のハードウェア構成およびソフトウェア構成について図2を用いて説明する。
クライアントPC100は、CPU101、入力部102、表示部103、メモリ104、通信部105、外部記憶部106などから構成されており、これらが内部バス107で接続されている。
CPU101は、中央処理制御部であり、メモリ104や外部記憶部106に格納された所定のプログラムを実行することによってクライアントPC100を全体的に制御する。
入力部102は、各種入力、指示操作などを行なうための操作部であり、キーボードやマウスなどで構成される。
表示部103は、各種画面などを表示するディスプレイであり、クライアントPC100に内蔵もしくは外部接続される。
メモリ104は、ROM(Read Only Memory)およびRAM(Random Access Memory)で構成される記憶領域であり、所定のプログラムやデータを格納する。
通信部105は、Ethernet(登録商標)のような有線ネットワーク、若しくは、IEEE802.11aやIEEE802.11gのような無線ネットワークなど、ネットワーク500の通信方式に対応したネットワークパケットによるデータ送受信の制御を通信制御部116(後述)と連携して行う通信制御インターフェースである。
外部記憶部106は、OS108、常駐モジュール109、デバイススタック110(後述)、通信制御部116などの各種ソフトウェアプログラムを記憶する。
外部記憶部106に格納されたこれらのソフトウェアプログラムは、CPU101の制御に従い、メモリ104上に読み出されて実行される。
本実施例では、3台のデバイス(デバイスa300A、デバイスb300B、デバイスc300C)が接続され、3つのデバイススタック110(デバイススタックA110A、デバイススタックB110B、デバイススタックC110C)が生成された場合を例にして説明する。
では、常駐モジュール109、デバイススタック110を構成する各ソフトウェアプログラム(アプリケーションプログラム111、アプリケーション/デバイスドライバインターフェース112、デバイスドライバ113、USBクラスドライバ114、USB仮想バスデバイス115)及び通信制御部116の詳細について説明する。
常駐モジュール109は、OS108が起動している間、常に待機および動作しているソフトウェアプログラムである。ネットワーク500上にあるデバイスサーバ200とデータ送受信を行うことにより、デバイスサーバ200にローカル接続されたデバイス300を検知する機能(デバイス検知手段)、当該デバイス300のデバイス情報を取得する機能(デバイス情報取得手段)、取得したデバイス情報をもとに、デバイス300とのデータ送受信に必要なドライバソフトウェア部品を構成するUSB仮想バスデバイス115、USBクラスドライバ114、デバイスドライバ113を一意に特定し、動的に生成する。
常駐モジュール109は、さらに、ドライバソフトウェア部品を生成した後、当該デバイス300を制御するためのアプリケーションソフトウェア部品を構成するアプリケーションプログラム111とアプリケーション/デバイスドライバインターフェース112をメモリ104から起動することで、デバイス300の個体毎にデバイススタック110を動的に生成する機能(デバイススタック生成手段)を備えており、上記の機能によって生成されたデバイススタック110を用いてデバイス300を個体毎に独立して制御するソフトウェアプログラム(デバイス制御手段)である。
デバイスドライバ113は、OS108やアプリケーションプログラム111など(以下、上位層のソフトウェアプログラム)の指示により、デバイス300に対する制御コマンドを生成してデータ送受信を実行し、この制御コマンドに対するデバイス300からの応答(すなわち、データ送受信の結果)を待ち、この応答を上位層のソフトウェアプログラムへ通知するソフトウェアプログラムである。
USBクラスドライバ114は、制御コマンドを送受信するためのUSBポートを有し、アプリケーションプログラム111やデバイスドライバ113で生成される制御コマンドをUSBパケットに変換し、USBパケットを制御コマンドに変換するソフトウェアプログラムである。
USB仮想バスデバイス115は、アプリケーションプログラム111やデバイスドライバ113から要求されるデバイス300へのデータ送受信に対して、デバイス300がクライアントPC100に直結しているときと同様の振る舞い(仮想化制御)を提供するソフトウェアプログラムである。この「仮想化制御」によって、デバイス300をローカル接続したときと同じ状態でデータ送受信することができる。
通信制御部116は、デバイススタック110で生成される「USBパケット」とネットワーク500を介してデバイスサーバ200と通信するときの「ネットワークパケット」とのプロトコル変換を行い、通信部105と連携してデバイスサーバ200との間のデータ送受信を制御するソフトウェアプログラムである。また、各デバイススタック110からのデータ送受信要求(接続要求)をデバイスサーバ200に送信し(接続要求手段)、当該デバイスサーバ200との間で、それぞれのデバイススタック110毎に独立したセッションを開始させ、データ送受信が完了したセッションを終了させるセッション制御機能(セッション制御手段)を備えている。
アプリケーションプログラム111、アプリケーション/デバイスドライバインターフェース112は、アプリケーションソフトウェア部品を構成するソフトウェアプログラムであり、常駐モジュール109によって、ドライバソフトウェア部品の上位層に起動される。アプリケーションプログラム111は、デバイス300に対してデータ送受信の要求(接続要求)を行い、デバイス300を制御するためのソフトウェアプログラムである。アプリケーション/デバイスドライバインターフェース112は、デバイス300の制御に必要なツール(機能)を提供するソフトウェアプログラムであり、メーカーやベンダーから提供されるSDK(Software Development Kit)に該当するものである。
<3. デバイスサーバ200の構成>
続いて、デバイスサーバ200のハードウェア構成およびソフトウェア構成について図3を用いて説明する。
デバイスサーバ200(デバイス制御装置)は、CPU201、メモリ202、通信部203、USB I/F204、外部記憶部205などから構成されており、これらが内部バス206で接続されている。
CPU201、メモリ202、通信部203、および、内部バス206については、前述したクライアントPC100における構成と同一であるため詳細な説明を省略する。
USB I/F204は、例えば、USB仕様に準拠した送受信インターフェースであって、デバイス300との接続などに利用される。
外部記憶部205は、通信制御部207、デバイス制御部208などのソフトウェア機能部やデータを記憶するための記憶部である。
では、通信制御部207、デバイス制御部208の詳細について順に説明する。
通信制御部207は、通信部203を介してネットワーク500に接続されているクライアントPC100内で生成される各デバイススタック110との間のセッションを制御(開始、終了)するとともに、クライアントPC100と通信するための「ネットワークパケット」とデバイス300との間で送信する「USBパケット」とのプロトコル変換を行い、クライアントPC100とデバイス300との間のデータ送受信を仲介(中継)するための機能部(データ送受信手段)である。また、クライアントPC100に対してデバイス300から取得したデバイス情報を送信するための機能部(デバイス情報送信手段)を備えている。
デバイス制御部208は、デバイス300とUSB I/F204を介して接続される機能部であり、接続されたデバイス300からデバイス情報を取得する機能(デバイス情報取得手段)、取得したデバイス情報にシリアル番号が含まれるか否かを判別する機能(シリアル情報有無判別手段)、取得したデバイス情報にシリアル番号が含まれない場合に、シリアル番号に相当する個体識別番号を生成して当該デバイス情報に追加する機能(シリアル情報追加手段)、クライアントPC100から受信した当該制御コマンドに含まれるデバイス情報に基づいてクライアントPC100がデータ送受信を求めるデバイス300を特定し、USB I/F204を介してデバイス300を制御する機能を備える。
<4. デバイス300の構成>
デバイス300(デバイス300A,デバイス300B,デバイス300C)は、USBインターフェースを持つ汎用的な入出力装置であり、例えば、カードリーダやプリンタなどの単機能周辺装置(SFP:Single Function Peripheral)、あるいは、プリント機能の他にスキャン機能やコピー機能、ストレージ機能などを兼ね備えた多機能周辺機器(MFP:Multi Function Peripheral)である。ただし、これらに限定されるものでなく、別のデバイスであってもよい。
<5. デバイスサーバ200にデバイス300が接続された時の処理>
次に、デバイスサーバ200にデバイス300が接続された時に、デバイスサーバ200上で実行される処理について、図4のフローチャートで説明する。
デバイスサーバ200は、デバイス300が接続されると、本デバイス情報取得処理のフローに従って処理を開始する。
まずはじめに、デバイス制御部208は、デバイス300からUSB I/F204を介してデバイス300を識別するためのデバイス情報を取得し、メモリ202に格納する(ステップS401)。ここで、デバイス情報とは、メーカーを識別するために機器を製造したメーカー毎に割り当てられたベンダーID(VID)、機種を識別するために機種毎に割り当てられた製品ID(PID)、機器の個体を識別するために個体毎に割り当てられたシリアル番号などである。
続いて、デバイス300から取得したデバイス情報にシリアル番号が格納されているかどうかを判別する(ステップS402)。
デバイス300から取得したデバイス情報にシリアル番号が格納されている場合には(ステップS402でYes)、次のステップS403に進むが、デバイス300から取得したデバイス情報にシリアル番号が格納されていない場合には(ステップS402でNo)、デバイスサーバ200の有する固有情報、若しくは、固有情報とデバイスサーバ200の接続ポート固有情報から個体識別番号を生成し、デバイス情報に追加する(ステップS405)。これにより、シリアル番号が格納されていない同一機種のデバイス300が複数接続された場合でも、クライアントPC100から識別可能となる。
本処理において、デバイスサーバ200に複数台のデバイス300が接続された場合、デバイスごとに本デバイス情報取得処理が繰り返される。
なお、デバイスサーバ200の有する固有情報とは、デバイスサーバ200を識別するための情報である。例えば、デバイスサーバ200のIPアドレスやMACアドレス、シリアルナンバー(製造番号)などであるが、これらに限定されない。さらに、これらの情報を組み合わせたものであってもよい。
また、デバイスサーバ200の接続ポート固有情報とは、デバイスサーバ200の接続ポートを識別するための情報である。例えば、デバイスサーバ200の有するUSBポートの番号やIEEE1394ポートの番号などであるが、これらに限定されない。
ステップS402又はステップS405に続いて、通信制御部207は、クライアントPC100からデバイス情報の問い合わせがあるまで待機する(ステップS403でNo)。クライアントPC100からの問い合わせは、UDP(User Datagram Protocol)などのプロトコルを用いて行なわれる。
通信制御部207は、クライアントPC100からデバイス情報の問い合わせがあるとデバイス制御部208に通知し(ステップS403でYes)、デバイス制御部208が、メモリ202に格納されている中から該当するデバイス情報を特定し、通信制御部207は、特定したデバイス情報を、通信部203を介してクライアントPC100に通知して処理を終了する(ステップS404)。これによって、クライアントPC100は、デバイスサーバ200に接続されているデバイス300のデバイス情報を取得することができる。
なお、上記では、クライアントPC100からデバイスサーバ200に対して問い合わせを行なうことで、クライアントPC100がデバイス情報を取得する方法について説明したが、デバイスサーバ200がクライアントPC100に対して通知することで、クライアントPC100がデバイス情報を取得するようにしてもよい。
<6. クライアントPC100におけるデバイス300の仮想化制御>
図5は、クライアントPC100におけるデバイス300の仮想化制御の一例を示したものである。
クライアントPC100内の常駐モジュール109は、デバイスサーバ200を介してネットワーク500に接続されたデバイス300を知るために、通信部105を介して、デバイスサーバ200に対して検索パケットをブロードキャストする(ステップS501)。具体的には、UDPなどのプロトコルを用いて、デバイスサーバ200に対する検索(問い合わせ)を行なうための検索パケットを送信する。
常駐モジュール109は、デバイスサーバ200からの応答を待ち(ステップS502)、デバイスサーバ200から応答がない場合には(ステップS502でNo)、仮想化制御は行わず、処理を終了する。
一方、常駐モジュール109は、デバイスサーバ200から応答があると(ステップS502でYes)、デバイスサーバ200からの応答電文に含まれるデバイス情報(ディスクリプタ)を取得する(ステップS503)。
常駐モジュール109は、取得したデバイス情報のうち、デバイスディスクリプタに記述されたベンダーID(VID)と製品ID(PID)、ストリングディスクリプタに記述されたシリアル番号とデバイス名称によってデバイスの種類と個体を識別する。また、インターフェースディスクリプタに記述されたインターフェース番号を識別する(ステップS504)。このようにして識別されたデバイスの個体に関する情報に基づいて、ドライバソフトウェア部品(USB仮想バスデバイス115、USBクラスドライバ114、デバイスドライバ113)を一意に特定し、動的に生成する(ステップS505〜ステップS507)。
その後、上記で生成されたドライバソフトウェア部品(USB仮想バスデバイス115、USBクラスドライバ114、デバイスドライバ113)に適合するアプリケーションプログラム111と、アプリケーション/デバイスドライバインターフェース112をメモリ104から起動する(ステップS508)。
複数のデバイス300からデバイス情報を取得した場合、取得した情報数(台数)に応じて、ステップS504〜ステップS508の処理を繰り返し行う。また、接続されたデバイス300がMFPである場合には、ステップS505〜ステップS507において、当該MFPが備えるプリント、スキャン、コピーなどの機能毎に必要なドライバソフトウェア部品がすべて生成される。
このようにして、クライアントPC100内において、ドライバソフトウェア部品(USB仮想バスデバイス115、USBクラスドライバ114、デバイスドライバ113)とこれに対応したアプリケーションソフトウェア部品(アプリケーションプログラム111、アプリケーション/デバイスドライバインターフェース112)とから構成されるデバイススタック110が動的に生成されることで、アプリケーションプログラム111とこれによって制御されるデバイス300とが1対1に関連付けられ、対象となるデバイス300の仮想化制御が実行される。
<7. アプリケーションプログラム111実行時の制御>
次に、クライアントPC100がこの仮想化制御下において、デバイススタック110のアプリケーションプログラム111によって、デバイス300との間でデータ送受信を実行する際の制御フローについて図6を用いて説明する。
ここでは、クライアントPC100Aがデバイスサーバa200Aを介してデバイスa300Aとデータ送受信を行う場合について説明する。
クライアントPC100Aは、デバイススタックA110Aのアプリケーションプログラム111Aによって、デバイスa300Aとのデータ送受信が必要と判断した場合、デバイスa300Aに対するデータ送受信要求を、アプリケーション/デバイスドライバインターフェース112Aを介してドライバソフトウェア部品に送る。ドライバソフトウェア部品では、このデータ送受信要求(接続要求)に応じた制御コマンドを生成してUSBパケットに変換して通信制御部116に送る。通信制御部116は、これをネットワークパケットに変換し、通信部105を介してデバイスサーバa200Aに送ることで、デバイスサーバa200Aとの間でTCP(Transmission Control Protocol)によるセッションを開始させる(ステップS601)。
デバイスサーバa200Aとのセッションの開始に失敗した場合(ステップS602でNo)は、本処理を終了する。
デバイスサーバa200Aとのセッションの開始に成功すると(ステップS602でYes)、クライアントPC100Aは、デバイススタックA110Aによって、デバイスサーバa200Aを介して、デバイスa300Aとの間のデータ送受信が可能となる(ステップS603)。データ送受信用パケットのデータ構造は図8で詳述する。
そして、送受信すべきデータがある間は(ステップS604でNo)、ステップS603を繰り返す。
クライアントPC100Aでは、デバイススタックA110Aのアプリケーションプログラム111Aによりすべてのデータの送受信が終了すると(ステップS604でYes)、デバイスサーバa200AとのTCPによるセッションを終了させて、データ送受信の処理を終了する(ステップS605)。
<8. デバイスサーバ200におけるデータ送受信の制御フロー>
次に、上述したような仮想化制御下における、デバイスサーバa200Aによるデータ送受信の制御フローについて図7を用いて説明する。
通信制御部207は、クライアントPC100AのデバイススタックA110Aからのデータ送受信要求に応じてセッションを開始する(ステップS701)。次に、通信制御部207は、クライアントPC100Aからデータ送受信を要求してきたパケットを解析し、デバイス制御部208は、通信制御部207で解析されたパケットに含まれるデバイス情報に基づいてデータ送受信を求めるデバイス300を特定し(ここでは、デバイスa300A)、USB I/F204を介して、該当するデバイスa300Aとの間のデータ送受信を行なう(ステップS702)。デバイスサーバ200とデバイス300との間のデータ送受信用パケットのデータ構造は図8で詳述する。
ステップS702において、デバイス制御部208によるデバイスa300Aとのデータ送受信を終えると、通信制御部207はクライアントPC100Aとのセッションを終了する(ステップS703)。
このように、デバイスサーバ200は、1台のクライアントPC100から異なるデバイススタック110を利用したデータ送受信要求に対して、各々独立してデバイス300との接続を制御することはもちろんのこと、複数台のクライアントPC100からのデータ送受信要求に対しても、各々独立してデバイス300との接続を制御することができる。
<9. パケットのデータ構成>
データ送受信用パケットのデータ構成の一例を図8に示す。パケットは、プロトコルヘッダ800とUSB転送データ810で構成される。通信制御部207が、パケットを解析することにより、デバイス300を判定する。
プロトコルヘッダ800には、本システムのプロトコルであることを識別するための署名データ801、電文サイズ802、デバイスサーバ200に対するコマンドID803(bulk−in転送要求など)、ベンダーID(VID)804、製品ID(PID)805、シリアル番号806などが格納される。
このうち、ベンダーID804、製品ID805、シリアル番号806によって、デバイス300を一意に識別することができる。なお、シリアル番号806は、図4で説明したように、デバイスサーバ200がデバイス300から取得したデバイス情報に記述されたシリアル番号が格納されるが、デバイス情報にシリアル番号が記述されていない場合には、デバイスサーバ200の有する固有情報と、デバイスサーバ200の接続ポート固有情報から生成されたシリアル番号が格納される。
<10.概略シーケンス>
図9は、本デバイス制御システムの概略シーケンス図である。なお、この例では、ネットワーク500上に、デバイスa300Aが接続されたデバイスサーバa200Aと、デバイスb300Bが接続されたデバイスサーバb200Bが存在し、これらとクライアントPC100との間でデータ送受信を行なうものとする。
デバイスサーバa200Aは、デバイスa300Aの接続時に、接続されたデバイスa300Aからデバイス情報を取得する(タイミングT901)。
デバイスa300Aからデバイス情報を取得したデバイスサーバa200Aは、デバイス情報をメモリ202に格納する(タイミングT902)。なお、デバイス情報にシリアル番号が格納されていない場合、デバイスサーバ200の有する固有情報と、デバイスサーバ200の接続ポート固有情報からシリアル番号を生成し、当該デバイス情報に追加して格納する。
デバイスサーバa200Aは、クライアントPC100からデバイス情報の問い合わせがあると(タイミングT903)、クライアントPC100に対して、デバイスa300Aのデバイス情報を通知する(タイミングT904)。
クライアントPC100では、通知されたデバイス情報を元に、デバイスa300Aを仮想化制御するためのデバイススタックA110Aが生成される(タイミングT905)。
その後、デバイスサーバb200Bにデバイスb300Bが接続されて、クライアントPC100においてデバイスb300Bの仮想化制御のためのデバイススタックB110Bが生成されるまでの過程(タイミングT906〜T910)は、前述のタイミングT901〜T905と同様であるため、説明を省略し、タイミングT911から説明する。
クライアントPC100において、デバイススタックA110Aのアプリケーションプログラム111Aが実行されると(タイミングT911)、デバイスサーバa200Aとの間でセッションを開始する(タイミングT912)。
クライアントPC100は、セッションが開始されると、デバイスサーバa200Aを介して、デバイスa300Aとの間でデータ送受信が可能となり、デバイススタックA110Aを使用してデバイスa300Aを制御することができる(タイミングT913)。
また、クライアントPC100において、上記アプリケーションプログラム111Aとは別に、デバイススタックB110Bのアプリケーションプログラム111Bが実行されると(タイミングT914)、デバイスサーバb200Bに対して、デバイスサーバa200Aとの間のセッションとは別の独立したセッションを開始する(タイミングT915)。
クライアントPC100は、このセッションが開始されると、デバイスサーバb200Bを介して、デバイスb300Bとの間でデータ送受信が可能となり、デバイススタックB110Bを使用してデバイスb300Bを制御することができる(タイミングT916)。
以後、クライアントPC100とデバイスa300Aとの間では、デバイスサーバa200Aを介して、デバイススタックA110Aによるデータ送受信(タイミングT913)が行われ、クライアントPC100とデバイスb300Bとの間では、デバイスサーバb200Bを介して、デバイススタックB110Bによるデータ送受信(タイミングT916)が行われる、というように、各デバイス300に対する制御がそれぞれ独立したセッションのもとで実施される。
クライアントPC100において、デバイススタックA110Aのアプリケーションプログラム111Aの実行が終了し、データ送受信が終了した場合は(タイミングT917)、デバイスサーバa200Aに対するセッションを終了する(タイミングT918)。
上記デバイスサーバa200Aに対するセッションの終了は、デバイスサーバb200Bに対するセッションにはなんら作用せず、クライアントPC100において、デバイススタックB110Bのアプリケーションプログラム111Bの使用が続く限り、デバイスサーバb200Bに対するセッションは継続される。そして、クライアントPC100において、デバイススタックB110Bのアプリケーションプログラム111Bの実行が終了し、データ送受信が終了した場合に(タイミングT919)、デバイスサーバb200Bに対するセッションを終了する(タイミングT920)。
上述のとおり、クライアントPC100は、デバイスb300Bの使用(データ送受信)が完了しない場合でも、デバイスa300Aの使用(データ送受信)が完了した時点でデバイスサーバa200Aに対するセッションを終了する。これによって、例えば、デバイスb300Bの使用(データ送受信)が、頻繁または長時間にわたって必要な場合であっても、デバイスa300Aはそれに作用されることなく使用が終了次第、セッションを終了することが可能となる。
なお、デバイスa300Aの使用(データ送受信)が完了しない場合でも、デバイスb300Bの使用(データ送受信)が完了した時点でデバイスサーバb200Bに対するセッションを終了できることは言うまでもない。
以上により、クライアントPC100内には、ネットワーク500越しに見えているデバイス300の台数(n台)分だけデバイススタック110が生成される。これにより、複数のデバイス300をそれぞれ独立して制御することが可能となり、本システム内の他のデバイス300の振る舞いに影響されることなく各デバイスを独立して動作させることが可能となる。
なお、図9において、デバイスサーバa200Aにデバイスa300Aが接続され、デバイスサーバb200Bにデバイスb300Bが接続される場合について説明したが、図1のように同一のデバイスサーバb200Bにデバイスb300B、デバイスc300Cが接続されている場合でも、同様にクライアントPC100からデバイスb300B、デバイスc300Cを制御することが可能であることはいうまでもない。
実施例2に係る実施の形態について図10を用いて説明する。本実施例は、図1のデバイスサーバa200Aに替わりに、ネットワークデバイス250が接続されており、クライアントPC100のデバイススタック110がネットワークデバイス250を介してデバイスa300Aを制御することが特徴である。なお、ネットワークデバイス250とは、ネットワーク500に接続して複数のクライアントPC100によって共用可能なデバイスであり、例えば、ネットワーク接続ストレージやネットワークプリンタなどの装置であるが、これらの装置に限定されるものではない。
実施例1において図2、図4〜図9を用いて説明した部分は、すべて、デバイスサーバ200をネットワークデバイス250に読み替えることで本実施例に適用可能であるため、詳細な説明を省略する。
図10は、実施例2に係るデバイス制御システムの概略構成であり、クライアントPC100(100A,100B)、ネットワークデバイス250、デバイスサーバ200、デバイス300(300A,300B,300C)から構成される。実施例1において図1を用いて説明したデバイス制御システムの構成に対して、デバイスサーバ200Aをネットワークデバイス250に置き替えた以外は同じであるため詳細な説明を省略する。
図11は、実施例2に係るネットワークデバイス250の内部構成を例示するブロック図である。ネットワークデバイス250は、デバイスとしての機能を実行するためのデバイス機能部259を備えている点が特徴である。外部記憶部255内にデバイス機能部259を具備している以外、CPU251、メモリ252、通信部253、USB I/F254、内部バス256、通信制御部257、デバイス制御部258の機能や構成については、実施例1において図3を用いて説明したデバイスサーバ200のCPU201、メモリ202、通信部203、USB I/F204、内部バス206、通信制御部207、デバイス制御部208と同一であるため詳細な説明を省略する。
上述のとおり、本実施例のネットワークデバイス250は、デバイスとしての機能(例えば、ネットワークプリンタであれば印刷機能)を実行する他に、実施例1で述べたデバイスサーバ200と同等の機能を備えることで、クライアントPC100と自らにUSB接続されたデバイス300(例えば、カードリーダ)との間のデータ送受信を制御することもできるようになる。
なお、本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において適宜変更可能である。
上記では、デバイスサーバ200またはネットワークデバイス250を介してネットワーク共有されたデバイス300に適用した例について説明したが、これに限らず、クライアントPC100がデバイスサーバ200やネットワークデバイス250と同様のUSB I/Fなどのローカルインターフェースを備えることで、クライアントPC100に直接接続(ローカル接続)されたデバイス300に対しても本発明を適用可能である。
また、本発明の目的は、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出して処理を実行することによっても達成することができる。
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコードを記憶したコンピュータで読み取り可能な記憶媒体は本発明を構成することになる。
また、プログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現されるように構成しても良い。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれたあと、このプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を実行し、その処理に応じて上述した実施形態が実現される場合も含んでいる。
なお、プログラムコードを供給するため、例えば、フロッピー(登録商標)ディスク、ハードディスク、光磁気ディスク、CDやDVDに代表される光ディスク、磁気テープ、不揮発性のメモリカード、ROM等の記憶媒体を用いることができる。または、プログラムコードは、ネットワークを介してダウンロードしてもよい。
100(100A,100B):クライアントPC
101:CPU
102:入力部
103:表示部
104:メモリ
105:通信部
106:外部記憶部
107:内部バス
108:OS
109:常駐モジュール
110(110A,110B,110C):デバイススタック
111(111A,111B,111C):アプリケーションプログラム
112(112A,112B,112C):アプリケーション/デバイスドライバインターフェース
113(113A,113B,113C):デバイスドライバ
114(114A,114B,114C):USBクラスドライバ
115(115A,115B,115C):USB仮想バスデバイス
116:通信制御部
200(200A,200B):デバイスサーバ
201:CPU
202:メモリ
203:通信部
204:USB I/F(USBインターフェース)
205:外部記憶部
206:内部バス
207:通信制御部
208:デバイス制御部
250:ネットワークデバイス
251:CPU
252:メモリ
253:通信部
254:USB I/F(USBインターフェース)
255:外部記憶部
256:内部バス
257:通信制御部
258:デバイス制御部
259:デバイス機能部
300(300A,300B,300C):デバイス
400:接続ケーブル
500:ネットワーク

Claims (10)

  1. ネットワークを介して接続されたデバイス制御装置にローカル接続されているデバイスを検知するためのデバイス検知手段と、
    前記デバイス検知手段によって検知した前記デバイスのデバイス情報を取得するデバイス情報取得手段と、
    前記デバイス情報取得手段で取得したデバイス情報に基づき、当該デバイス情報によって識別したデバイスとのデータ送受信に必要なドライバソフトウェア部品を生成し、当該生成したドライバソフトウェア部品と当該デバイスを制御するためのアプリケーションソフトウェア部品とから成るデバイススタックを、前記デバイス検知手段が接続を検知した前記デバイスの個体毎に生成するデバイススタック生成手段と、
    前記デバイススタック生成手段で生成された前記デバイススタックの各々からの接続要求を前記デバイス制御装置に送信する接続要求手段と、
    前記接続要求を送信したデバイススタックの各々と当該接続要求を受信したデバイス制御装置との間で独立したセッションを開始するセッション制御手段と、
    前記デバイススタックの各々により、前記セッション制御手段で開始したセッションを介して、前記デバイスの各個体を独立して制御するデバイス制御手段と、
    を備えることを特徴とするクライアント装置。
  2. 前記デバイススタック生成手段は、前記ドライバソフトウェア部品を生成後、当該ドライバソフトウェア部品の上位層に、前記アプリケーションソフトウェア部品を起動すること
    を特徴とする請求項1に記載のクライアント装置。
  3. 前記デバイススタック生成手段は、前記デバイス情報取得手段で取得した前記デバイス情報から当該デバイスの種類および個体を識別し、当該識別した種類および個体に適合するドライバソフトウェア部品を生成すること
    を特徴とする請求項1に記載のクライアント装置。
  4. デバイス制御装置にローカル接続されているデバイスを検知するためのデバイス検知ステップと、
    前記デバイス検知ステップにおいて検知した前記デバイスのデバイス情報を取得するデバイス情報取得ステップと、
    前記デバイス情報取得ステップで取得したデバイス情報に基づき、当該デバイス情報によって識別したデバイスとのデータ送受信に必要なドライバソフトウェア部品を生成し、当該生成したドライバソフトウェア部品と当該デバイスを制御するためのアプリケーションソフトウェア部品とから成るデバイススタックを、前記デバイス検知ステップにおいて検知した前記デバイスの個体毎に生成するデバイススタック生成ステップと、
    前記デバイススタック生成ステップにおいて生成された前記デバイススタックの各々からの接続要求を前記デバイス制御装置に送信する接続要求ステップと、
    前記接続要求を送信したデバイススタックの各々と当該接続要求を受信したデバイス制御装置との間で独立したセッションを開始するセッション制御ステップと、
    前記デバイススタックの各々によって、前記セッション制御ステップで開始したセッションを介して、前記デバイスの各個体を独立して制御するデバイス制御ステップと、
    を備えることを特徴とするデバイス制御方法。
  5. 前記デバイススタック生成ステップにおいて、前記ドライバソフトウェア部品を生成後、当該ドライバソフトウェア部品の上位層に、前記アプリケーションソフトウェア部品を起動すること
    を特徴とする請求項4に記載のデバイス制御方法。
  6. 前記デバイススタック生成ステップにおいて、前記デバイス情報取得ステップで取得した前記デバイス情報から当該デバイスの種類および個体を識別し、当該識別した種類および個体に適合するドライバソフトウェア部品を生成すること
    を特徴とする請求項4に記載のデバイス制御方法。
  7. クライアント装置と、前記クライアント装置とネットワークを介して接続されたデバイス制御装置と、前記デバイス制御装置とローカル接続されたデバイスからなるデバイス制御システムであって、
    前記クライアント装置は、
    前記デバイス制御装置を介して前記デバイスを検知するためのデバイス検知手段と、
    前記デバイス検知手段によって検知した前記デバイスのデバイス情報を取得する第1のデバイス情報取得手段と、
    前記第1のデバイス情報取得手段で取得した前記デバイス情報に基づき、当該デバイス情報によって識別したデバイスとのデータ送受信に必要なドライバソフトウェア部品を生成し、当該生成したドライバソフトウェア部品と当該デバイスを制御するためのアプリケーションソフトウェア部品とから成るデバイススタックを、前記デバイス検知手段が接続を検知した前記デバイスの個体毎に生成するデバイススタック生成手段と、
    前記デバイススタック生成手段で生成された前記デバイススタックの各々からの接続要求を前記デバイス制御装置に送信する接続要求手段と、
    前記接続要求を送信したデバイススタックの各々と当該接続要求を受信したデバイス制御装置との間で独立したセッションを開始する第1のセッション制御手段と、
    前記デバイススタックの各々により、前記第1のセッション制御手段で開始したセッションを介して、前記デバイスの各個体を独立して制御するデバイス制御手段と、を備え、
    前記デバイス制御装置は、
    前記デバイスからデバイス情報を取得する第2のデバイス情報取得手段と、
    前記第2のデバイス情報取得手段で取得した前記デバイス情報を前記クライアント装置へ送信するデバイス情報送信手段と、
    前記クライアント装置で生成された前記デバイススタックの各々からの接続要求に応じて、当該デバイススタックの各々との間で独立したセッションを開始する第2のセッション制御手段と、
    を備えることを特徴とするデバイス制御システム。
  8. 前記クライアント装置のデバイススタック生成手段は、前記ドライバソフトウェア部品を生成後、当該ドライバソフトウェア部品の上位層に、前記アプリケーションソフトウェア部品を起動すること
    を特徴とする請求項7に記載のデバイス制御システム。
  9. 前記クライアント装置のデバイススタック生成手段は、前記デバイス情報取得手段で取得した前記デバイス情報から当該デバイスの種類および個体を識別し、当該識別した種類および個体に適合するドライバソフトウェア部品を生成すること
    を特徴とする請求項7に記載のデバイス制御システム。
  10. 前記デバイス制御装置は、
    前記第2のデバイス情報取得手段で取得したデバイス情報に、当該デバイスの個体を識別可能なシリアル情報が含まれるか否かを判別するシリアル情報有無判別手段と、
    前記シリアル情報有無判別手段が、前記シリアル情報が含まれないと判別した場合、前記デバイス制御装置の固有情報をもとに個体識別番号を生成し、当該生成した個体識別番号を前記第2のデバイス情報取得手段で取得したデバイス情報に追加するシリアル情報追加手段と、
    前記第2のデバイス情報取得手段で取得した前記デバイス情報、または、前記シリアル情報追加手段で生成した個体識別番号を追加したデバイス情報のいずれかを前記クライアント装置へ送信するデバイス情報送信手段と、を更に備えること
    を特徴とする請求項7に記載のデバイス制御システム。
JP2010257683A 2009-11-18 2010-11-18 クライアント装置、デバイス制御方法、およびデバイス制御システム Pending JP2011129111A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010257683A JP2011129111A (ja) 2009-11-18 2010-11-18 クライアント装置、デバイス制御方法、およびデバイス制御システム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2009263222 2009-11-18
JP2009263222 2009-11-18
JP2010257683A JP2011129111A (ja) 2009-11-18 2010-11-18 クライアント装置、デバイス制御方法、およびデバイス制御システム

Publications (1)

Publication Number Publication Date
JP2011129111A true JP2011129111A (ja) 2011-06-30

Family

ID=44291579

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010257683A Pending JP2011129111A (ja) 2009-11-18 2010-11-18 クライアント装置、デバイス制御方法、およびデバイス制御システム

Country Status (1)

Country Link
JP (1) JP2011129111A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013089204A (ja) * 2011-10-21 2013-05-13 Canon Imaging Systems Inc 情報処理装置、その制御方法、およびデバイス制御システム
WO2014098260A1 (ja) * 2012-12-21 2014-06-26 キヤノンイメージングシステムズ株式会社 情報処理装置、デバイス制御装置、およびその制御方法、並びにデバイス制御システム
WO2014104397A1 (ja) * 2012-12-28 2014-07-03 キヤノンイメージングシステムズ株式会社 情報処理装置、携帯端末、デバイス制御システム、およびその制御方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013089204A (ja) * 2011-10-21 2013-05-13 Canon Imaging Systems Inc 情報処理装置、その制御方法、およびデバイス制御システム
US9525757B2 (en) 2011-10-21 2016-12-20 Canon Imaging Systems Inc. Information processing apparatus that controls connection of devices, method of controlling the apparatus, and device control system
WO2014098260A1 (ja) * 2012-12-21 2014-06-26 キヤノンイメージングシステムズ株式会社 情報処理装置、デバイス制御装置、およびその制御方法、並びにデバイス制御システム
JP2014123265A (ja) * 2012-12-21 2014-07-03 Canon Imaging Systems Inc 情報処理装置、デバイス制御装置、およびその制御方法、並びにデバイス制御システム
WO2014104397A1 (ja) * 2012-12-28 2014-07-03 キヤノンイメージングシステムズ株式会社 情報処理装置、携帯端末、デバイス制御システム、およびその制御方法
US9395941B2 (en) 2012-12-28 2016-07-19 Canon Imaging Systems Inc. Information processing apparatus, portable terminal, and control method therefor

Similar Documents

Publication Publication Date Title
US9086826B2 (en) Information processing apparatus, method for controlling the same, and storage medium
JP5745424B2 (ja) デバイス制御装置、クライアント装置、デバイス制御方法、およびデバイス制御システム
JP2012146197A (ja) 印刷支援装置及び印刷システム並びに印刷支援プログラム
JP2011040065A (ja) 印刷ジョブを印刷する方法、印刷システム及びコンピュータ読取可能な媒体
US10250668B2 (en) Communication apparatus, control method thereof, and storage medium
JP5929107B2 (ja) 情報処理プログラム、情報処理装置および情報処理装置の制御方法
JP5581470B2 (ja) デバイス共有システム、デバイス共有サーバ、デバイス共有クライアント、およびデバイス共有方法
JP2008097587A (ja) クライアント装置、ネットワークシステムおよびプログラム
JP5563246B2 (ja) 印刷装置及び印刷システム
JP2011129111A (ja) クライアント装置、デバイス制御方法、およびデバイス制御システム
US8838740B2 (en) Information processing apparatus that controls device via network and method of controlling the apparatus, device control apparatus and method of controlling the apparatus, as well as device control system
CN106021134B (zh) 信息处理设备和信息处理方法
US8861008B2 (en) Bidirectional communication technique between an information processing apparatus and an image processing apparatus
JP4552815B2 (ja) ネットワーク装置の制御ソフトウェアの更新
CN100407628C (zh) 数据处理装置以及通信方法
JP4877127B2 (ja) 印刷クライアントおよびプリンタ検索方法。
JP2005346739A (ja) プリンタおよびプリンタジョブデータの転送方法
JP7322443B2 (ja) 通信デバイス
JP2008257319A (ja) 印刷システム、印刷装置、認証印刷実行方法及びプログラム
JP2011114805A (ja) 通信装置及び方法、並びにプログラム
US7499191B2 (en) Apparatus for transmitting print data using multiple virtual connections and a method thereof
JP2012137864A (ja) デバイス制御装置、デバイス制御方法、およびデバイス制御システム
JP4996494B2 (ja) ファクシミリデータ送信プログラムおよびファクシミリデータ送信方法
JP2008217399A (ja) ネットワーク用アダプタ、機種及び機能情報の取得方法
JP2004362240A (ja) プリンタ制御装置及びプリンタ制御プログラム