JP5581470B2 - デバイス共有システム、デバイス共有サーバ、デバイス共有クライアント、およびデバイス共有方法 - Google Patents

デバイス共有システム、デバイス共有サーバ、デバイス共有クライアント、およびデバイス共有方法 Download PDF

Info

Publication number
JP5581470B2
JP5581470B2 JP2009228093A JP2009228093A JP5581470B2 JP 5581470 B2 JP5581470 B2 JP 5581470B2 JP 2009228093 A JP2009228093 A JP 2009228093A JP 2009228093 A JP2009228093 A JP 2009228093A JP 5581470 B2 JP5581470 B2 JP 5581470B2
Authority
JP
Japan
Prior art keywords
function
client
information
session
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.)
Expired - Fee Related
Application number
JP2009228093A
Other languages
English (en)
Other versions
JP2011076437A5 (ja
JP2011076437A (ja
Inventor
良介 宮下
命 根岸
亮 遠藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon 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 JP2009228093A priority Critical patent/JP5581470B2/ja
Publication of JP2011076437A publication Critical patent/JP2011076437A/ja
Publication of JP2011076437A5 publication Critical patent/JP2011076437A5/ja
Application granted granted Critical
Publication of JP5581470B2 publication Critical patent/JP5581470B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Description

本発明は、ネットワークを介してデバイスを共有する機能を備えたシステム、デバイスサーバ、クライアント、及びその制御方法に関するものである。
ネットワークの普及により、従来、パーソナルコンピュータ(PC)などにローカル接続して利用していたデバイス(周辺機器)をネットワーク上のクライアントPCから利用できるように工夫したデバイスサーバが発表されている。
例えば、プリンタ、ストレージ、スキャナなどのデバイスを、ネットワーク上のクライアントPCからデバイスサーバを介して共有デバイスとして利用可能とするための実現方法がいくつか提案されている。
ひとつの実現方法として、クライアントPCに専用のアプリケーションソフトウェア(以下、ユーティリティ)を導入しておき、ユーザがデバイスにアクセスしようとするときにユーティリティを操作し、クライアントPCに対してローカル接続したデバイスとして仮想的に認識させることで、ネットワーク上のクライアントPCから、ローカル接続した状態と同様にアクセスできるようにするものがある。
しかし、この方法では、ユーザによるセッション接続の開始・終了操作が必要であり、ユーザがユーティリティを使ってデバイスの終了操作をしない限り、デバイスサーバとのセッションが専有されてしまうため、他のクライアントPCがデバイスを使用することができないという問題が生じる。
かかる問題を解決するために、ブロックヘッダで特定されるデータ長のブロックデータが伝送される間だけ、特定のクライアントPCによるデータ伝送専有状態として、当該クライアントPCとデバイスとの間のデータ伝送を許可するデバイスサーバを用いたネットワークファイル管理システムが開示されている(特許文献1参照)。
特開2007−317067号公報
確かに、特許文献1に開示されたネットワークファイル管理システムでは、複数のクライアントPCから手動操作を行うことなく、デバイスを共有することはできる。
しかしながら、デバイスが、プリント機能の他にスキャン機能やストレージ機能などを兼ね備えた多機能周辺機器(MFP:Multi Function Peripheral)である場合、デバイスが備える各々の機能が相互作用を及ぼすことがある。
具体的には、プリンタ機能やスキャン機能などは、その機能を使用したいときだけクライントPCからデバイスに対してセッション接続制御(いわゆる、シームレス制御)をすれば済むにも関わらず、常にトラフィックが発生するストレージ機能に作用されて、MFPを接続シミュレートする際に、常時接続が必要となり、プリンタ機能やスキャン機能のシームレス制御ができなかった。
また、USB(Universal Serial Bus)デバイスを対象とした従来の接続シミュレート手段では、複数の機能を備えたUSBデバイスであっても、同時に接続可能なセッションは一つである。従って、USBデバイスの具備する複数機能を使用できるのは一つのクライアントPCのみであり、このクライアントPCの使用(セッション)が終了しないと他のクライアントPCは当該USBデバイスを使用することはできない。
このことは、例えば、プリント機能、スキャン機能、ストレージ機能をあわせ持ったMFPを接続シミュレートする際に、あるクライアントPCのユーザがプリント機能しか使用していない状況でも、他のクライアントPCのユーザはスキャン機能とストレージ機能を利用することができないことを意味する。これは、前述の特許文献1に開示されたネットワークファイル管理システムでは解決できない課題であった。
上記問題に鑑みて、本発明は、ストレージやプリンタなどのデバイス(周辺機器)をネットワーク上の複数のクライアントPCで共用する場合、ユーザに手動操作を強いることなく、必要なときだけデバイスにアクセスするように制御する手段を提供することを目的とする。
また、本発明は、複数の機能を備えたデバイスに対し、各機能ごとにネットワークを介したデータ入出力に使用するプロトコルを使い分けることによって、各々のデバイスの相互作用を排除することを目的とする。
また、本発明は、複数のクライアントPCから複数の機能を備えたデバイスの各機能を独立して使用可能にすることを目的とする。
上記の課題を解決するために、請求項1に記載のデバイスサーバは、ネットワークを介して接続されたクライアントと、自身にローカル接続又は内蔵されたデバイスとの間のデータ通信を制御するデバイスサーバであって、前記デバイスからデバイス情報を取得する情報取得手段と、前記情報取得手段で取得したデバイス情報に基づいて前記デバイスが備える各機能をそれぞれ管理し、前記機能を使用するためのプロトコルを前記機能ごとにそれぞれ設定するデバイス管理手段と、前記クライアントからのセッション要求を受信するセッション要求受信手段と、前記セッション要求受信手段で受信したセッション要求に基づき、前記デバイスの機能ごとに独立したセッションを介して、前記機能ごとに対応したプロトコルによるデータ通信を制御するセッション制御手段と、を備えることを特徴とする。
また、上記の課題を解決するために、請求項4に記載のクライアントは、デバイスサーバにローカル接続又は内蔵されたデバイスとの間でネットワークを介してデータ通信を行うクライアントであって、前記デバイスサーバから前記デバイスのデバイス情報と前記デバイスの有する機能ごとに設定されたプロトコルの情報を取得する情報取得手段と、前記情報取得手段で取得した前記デバイス情報に基づいて、前記デバイスを直接接続しているように制御するためのドライバソフトウェア群を生成するデバイス仮想化手段と、前記デバイスと前記デバイスの有する機能を指定する機能指定手段と、前記機能指定手段で指定されたデバイスと機能に基づいて、当該機能に応じたドライバソフトウェア群を指定するドライバソフトウェア群指定手段と、前記ドライバソフトウェア群指定手段で指定されたドライバソフトウェア群を使用して、当該機能を実行させるための命令・データを生成する命令・データ生成手段と、前記ドライバソフトウェア群指定手段で指定されたドライバソフトウェア群に対応したプロトコルによるデータ通信のためのセッションを介して前記命令・データに基づくデータ入出力を制御する通信制御手段と、を備えることを特徴とする。
また、上記の課題を解決するために、請求項5に記載のデバイスサーバにおけるデバイス共有方法は、ネットワークを介して接続されたクライアントと、自身にローカル接続又は内蔵されたデバイスとの間のデータ通信を制御するデバイスサーバにおけるデバイス共有方法であって、情報取得手段が前記デバイスからデバイス情報を取得する情報取得ステップと、デバイス管理手段が前記情報取得ステップで取得したデバイス情報に基づいて前記デバイスが備える各機能をそれぞれ管理し、前記機能を使用するためのプロトコルを前記機能ごとにそれぞれ設定するデバイス管理ステップと、セッション要求受信手段が前記クライアントからのセッション要求を受信するセッション要求受信ステップと、セッション制御手段が前記セッション要求受信ステップで受信したセッション要求に基づき、前記デバイスの機能ごとに独立したセッションを介して、前記機能ごとに対応したプロトコルによるデータ通信を制御するセッション制御ステップと、を有することを特徴とする。
また、上記の課題を解決するために、請求項8に記載のクライアントにおけるデバイス共有方法は、デバイスサーバにローカル接続又は内蔵されたデバイスとの間でネットワークを介してデータ通信を行うクライアントにおけるデバイス共有方法であって、情報取得手段が前記デバイスサーバから前記デバイスのデバイス情報と前記デバイスの有する機能ごとに設定されたプロトコルの情報を取得する情報取得ステップと、デバイス仮想化手段が前記情報取得ステップで取得した前記デバイス情報に基づいて、前記デバイスを直接接続しているように制御するためのドライバソフトウェア群を生成するデバイス仮想化ステップと、機能指定手段が前記デバイスと前記デバイスの有する機能を指定する機能指定ステップと、ドライバソフトウェア群指定手段が前記機能指定ステップで指定されたデバイスと機能に基づいて、当該機能に応じたドライバソフトウェア群を指定するドライバソフトウェア群指定ステップと、命令・データ生成手段がドライバソフトウェア群指定ステップで指定された機能に基づいて、前記デバイス仮想化ステップで生成したドライバソフトウェア群を使用して、当該機能を実行させるための命令・データを生成する命令・データ生成ステップと、通信制御手段が前記ドライバソフトウェア群指定ステップで指定された機能に対応したプロトコルによるデータ通信のためのセッションを介して前記命令・データ生成ステップで生成された命令・データに基づくデータ入出力を制御する通信制御ステップと、を有することを特徴とする。
本発明によれば、複数の機能を備えたデバイスに対し、各機能が相互作用を及ぼすことなく独立して制御することが可能となる。これによって、例えば、プリント機能、スキャン機能、ストレージ機能をあわせ持ったMFPに対して、1台のクライアントPCから接続シミュレートしてプリント機能とストレージ機能を同時使用する場合には、ストレージ機能だけを常時接続し、プリント機能については常時接続を必要としないシームレス制御ができるようになる。
また、本発明によれば、複数の機能を備えたデバイスに対し、複数のクライアントPCから別々の機能を独立して使用することが可能となる。これによって、例えば、プリント機能、スキャン機能、ストレージ機能をあわせ持ったMFPに対して、複数のクライアントPC(例えば、PC1、PC2、PC3)から同時に接続シミュレートして、PC1がプリント機能を、PC2がスキャン機能を、PC3がストレージ機能を、というように、MFPが備える個々の機能を独立して制御できるようになる。
本発明に係るデバイス共有システムの概略構成を示す図である。 図1に示したクライアントPC100の内部構成を例示するブロック図である。 図1に示したサーバ200の内部構成を例示するブロック図である。 デバイスサーバ200におけるデバイス300接続時の制御について説明するフローチャートである。 実施例1に係るデバイス機能ツリーを例示する図である。 クライアントPC100におけるデバイス300の仮想制御について説明するフローチャートである。 クライアントPC100におけるアプリケーションプログラム109の制御について説明するフローチャートである。 デバイスサーバ200におけるクライアントPC100からの接続時の制御について説明するフローチャートである。 実施例1に係るパケットのデータ構成を例示する図である。 本発明に係るデバイス共有システムにおいて、1台のクライアントPC100がデバイス制御する場合の過程を説明するシーケンス図である。 本発明に係るデバイス共有システムにおいて、2台のクライアントPC100がデバイス制御する場合の過程を説明するシーケンス図である。 実施例2に係るデバイス機能ツリーを例示する図である。 実施例2に係るパケットのデータ構成を例示する図である。
以下、本発明の実施の形態について、詳細に説明する。
<1.デバイス共有システムの構成>
図1は、本発明を実現するためのデバイス共有システムの概略構成であり、クライアントPC100(PC100A,PC100B)、デバイスサーバ200、デバイス300(デバイス300A,デバイス300B)から構成される。
このデバイス共有システムでは、デバイスサーバ200とデバイス300をUSB(Universal Serial Bus)やIEEE1394などのインターフェースに準拠した接続ケーブル400で接続する。また、デバイスサーバ200とクライアントPC100(PC100A,PC100B)は、有線または無線のネットワーク500で接続する。
次に、デバイス共有システムを構成する各装置について順次説明する。
<2.クライアントPC100の構成>
クライアントPC100のハードウェア構成およびソフトウェア構成について図2を用いて説明する。
クライアントPC100は、CPU101、入力部102、表示部103、メモリ104、通信部105、外部記憶部106などから構成されており、これらが内部バス107で接続されている。
CPU101は、中央処理制御部であり、メモリ104や外部記憶部107に格納された所定のプログラムを実行することによってクライアントPC100を全体的に制御する。
入力部102は、各種入力、指示操作などを行なうための操作部であり、キーボードやマウスなどで構成される。
表示部103は、各種画面などを表示するディスプレイであり、クライアントPC100に内蔵もしくは外部接続される。
メモリ104は、ROM(Read Only Memory)およびRAM(Random Access Memory)で構成される記憶領域であり、所定のプログラムやデータを格納する。
通信部105は、Ethernet(登録商標)のような有線ネットワーク、若しくは、IEEE802.11aやIEEE802.11gのような無線ネットワークなど、ネットワーク500に対応したネットワークパケットによる送受信や通信制御を行うためのインターフェースであり、デバイスサーバ200とデータ通信を行うことで、クライアントPC100から入出力データを送受信することが可能となる。
外部記憶部106には、OS108、アプリケーションプログラム109、常駐モジュール110、デバイスドライバ111、USBクラスドライバ112、USB仮想バスデバイス113、通信制御部114を備えたソフトウェアプログラムを格納する。外部記憶部106に格納されたこれらのソフトウェアプログラムは、CPU101の制御に従い、メモリ104上に読み出されて実行される。
デバイスドライバ111、USBクラスドライバ112、USB仮想バスデバイス113は、常駐モジュール110からデバイス300のデバイス情報を取得、登録することにより、動的に生成されるドライバソフトウェア部品である。
アプリケーションプログラム109は、上記の各ドライバソフトウェア部品が生成された後、デバイス300に対して、デバイスドライバ111、USBクラスドライバ112、USB仮想バスデバイス113を介して、通信制御部114にデータの入出力を要求するアプリケーションソフトウェア部品である。
では、常駐モジュール110、デバイスドライバ111、USBクラスドライバ112、USB仮想バスデバイス113、通信制御部114の詳細について順に説明する。
常駐モジュール110は、OS108が起動している間、常に待機および動作しているソフトウェアである。ネットワーク500上にあるデバイスサーバ200と送受信を行うことにより、デバイスサーバ200に接続されたデバイス300を認識し、当該デバイス300のデバイス識別情報と機能識別情報を受信し、受信したデバイス識別情報と機能識別情報をもとに、デバイス300とのデータ入出力に必要なドライバソフトウェア部品(USB仮想バスデバイス113、USBクラスドライバ112、デバイスドライバ111)を一意に特定し、動的に生成する。
デバイスドライバ111は、OS108やアプリケーションプログラム109など上位層のソフトウェア(以下、上位層のソフトウェア)の指示により、デバイス300に対する制御コマンドを生成し、この制御コマンドに対する応答を待ち、応答を上位層のソフトウェアへ通知するソフトウェアである。
USBクラスドライバ112は、プラグアンドプレイイベントを生成し、また、制御コマンドを送受信するためのUSBポートを作成するとともに、その上位にデバイスドライバ111をロードする。さらに、デバイスドライバ111で生成される制御コマンドをUSBパケットに変換し、USBパケットを制御コマンドに変換するソフトウェアである。
USB仮想バスデバイス113は、アプリケーションプログラム109からデバイスドライバ111、USBクラスドライバ112を介して要求されるデバイス300へのデータ入出力に対して、デバイス300がクライアントPC100に直結しているときと同様の振る舞いを提供する仮想制御ソフトウェアである。
通信制御部114は、USB仮想バスデバイス113から要求されるデータ入出力について、通信部105を介してデバイスサーバ200と送受信するソフトウェアである。USB仮想バスデバイス113からデータ入出力を要求された場合、デバイス300のアドレスに対してセッションを接続し、通信を行う。通信が完了した場合、セッションを切断する。
<3.デバイスサーバ200の構成>
続いて、デバイスサーバ200のハードウェア構成およびソフトウェア構成について図3を用いて説明する。
デバイスサーバ200は、CPU201、メモリ202、通信部203、USB I/F204、外部記憶部205などから構成されており、これらが内部バス206で接続されている。
外部記憶部205は、情報取得部207、デバイス管理部208、クライアント制御部209、セッション制御部210を備えるソフトウェア機能部である。
情報取得部207は、デバイス300からUSB I/F204を介して後述するデバイス識別情報と機能識別情報を取得する機能部である。
デバイス管理部208は、情報取得部207が取得したデバイス識別情報と機能識別情報に基づいて、デバイス300を管理する機能部である。
クライアント制御部209は、クライアントPC100からの要求に応じて、デバイス管理部208が管理するデバイス300のデバイス識別情報と機能識別情報を、クライアントPC100に対して通知し、クライアントPC100からのデータ入出力要求(セッション要求)を受け付ける機能部である。
セッション制御部210は、クライアント制御部209が受け付けたデータ入出力要求(セッション要求)に応じてデバイス300とのセッションを制御する機能部である。
上述した情報取得部207とデバイス管理部208によって、クライアントPC100から受信するデータの入出力要求に対して、プロトコル上に指定されているデバイス300を識別するための情報とデバイス300が具備する各機能の情報を判定し、クライアントPC100がデータ入出力を求めるデバイス300および機能を特定する。これによって、1台または複数台のデバイス300との間のUSB I/F204を介したデータ入出力の制御が可能となる。
また、上述したクライアント制御部209とセッション制御部210によって、1台または複数台のクライアントPC100との間のネットワーク500を介したデータ入出力の制御が可能となる。デバイス300が複数の機能を実装している場合、各機能をネットワーク上で独立して通信させるために、各機能に固有のTCPセッションを受け付ける。PC100Aがデバイス300の機能aを制御し、PC100Bがデバイス300の機能bを制御する場合、機能aをセッションa、機能bをセッションbで接続を受け付けることにより、独立してデータ入出力することを可能にする。なお、一つのPC100Aからデバイス300の複数の機能を制御する場合は、複数セッションは勿論のこと、単一セッションでもプロトコルの内容を判定することにより機能a、機能bを独立して制御できる。
<4.デバイス300の構成>
デバイス300(デバイス300A,デバイス300B)は、USBインターフェースを持つ汎用的な入出力装置であり、例えば、カードリーダやプリンタなどの単機能周辺装置(SFP:Single Function Peripheral)、あるいは、プリント機能の他にスキャン機能やコピー機能、ストレージ機能などを兼ね備えた多機能周辺機器(MFP:Multi Function Peripheral)である。ただし、これらに限定されるものでなく、別のデバイスであってもよい。
また、デバイスサーバ200、デバイス300をそれぞれ別体の装置として説明したが、これに限定されるものではなく、デバイスサーバ200をデバイス300のケーシング内に収まるように一体構造としても良い。
<5.デバイスサーバ200にデバイス300が接続された時の処理>
次に、デバイスサーバ200にデバイス300が接続された時に、デバイスサーバ200上で実行される処理について、図4のフローチャートで説明する。
デバイスサーバ200は、デバイス300が接続されると、本フローに従って処理を開始する。
まずはじめに、情報取得部207は、デバイス300からUSB I/F204を介してデバイス300を識別するためのデバイス識別情報を取得し、メモリ202に格納する(ステップS401)。ここで、デバイス識別情報とは、メーカーを識別するために機器を製造したメーカー毎に割り当てられたベンダーID(VID)、機種を識別するために機種毎に割り当てられた製品ID(PID)、機器の個体を識別するために機器毎に割り当てられたシリアル番号などである。
次に、情報取得部207は、デバイス300からUSB I/F204を介してデバイス300が具備する機能識別情報を取得し、メモリ202に格納する(ステップS402)。ここで、機能識別情報とは、機能番号(インタフェース番号)、データの送受信先を示すエンドポイントアドレスなどである。また、デバイス300が複数の機能を備えている場合には、全ての機能識別情報を取得するまで処理を繰り返し、取得した機能識別情報をメモリ202に格納する。なお、複数のデバイス300が接続された場合には、ここで再びステップS401に戻り、ステップS401、ステップS402の処理を繰り返すことになる。
続いて、デバイス管理部208は、デバイス300から取得してメモリ202に格納したデバイス識別情報と機能識別情報に基づいて、デバイス機能ツリー(図5で詳述)を作成し、記憶する(ステップS403)。
その後、クライアント制御部209は、クライアントPC100からデバイス識別情報、機能識別情報の問い合わせがあるまで待機する(ステップS404でNo)。クライアントPC100からの問い合わせは、UDP(User Datagram Protocol)などのプロトコルを用いて行なわれる。
クライアント制御部209は、クライアントPC100からデバイス識別情報および機能識別情報の問い合わせがあるとデバイス管理部208に通知し(ステップS404でYes)、デバイス管理部208は、デバイス機能ツリーを検索して、デバイスサーバ200に接続されているデバイス300のデバイス識別情報と機能識別情報を特定する(ステップS405)。
そして最後に、クライアント制御部209が、特定したデバイス識別情報と機能識別情報をクライアントPC100に通知して処理を終了する(ステップS406)。これによって、クライアントPC100は、デバイスサーバ200に接続されているデバイス300のデバイス識別情報と機能識別情報を取得することができる。
なお、上記では、クライアントPC100からデバイスサーバ200に対して問い合わせを行なうことで、クライアントPC100がデバイス識別情報と機能識別情報を取得する方法について説明したが、デバイスサーバ200がクライアントPC100に対して通知することで、クライアントPC100がデバイス識別情報と機能識別情報を取得するようにしてもよい。
<6.デバイス機能ツリー>
次に、図4のステップS403において、デバイス管理部208で作成、記憶されるデバイス機能ツリーについて説明する。デバイス機能ツリーは、装着されたデバイス数を頂点として、第1階層であるデバイス識別情報と、第2階層である機能識別情報から構成される。
図5は、デバイス機能ツリーの一例である。この例は、デバイスサーバ200に2台のデバイス300が接続された場合を示している。従って、装着されたデバイス数510には値=2が設定され、デバイス識別情報520,540と、機能識別情報530,550を有する。
デバイス識別情報520、540は、デバイスを一意に識別する識別情報とデバイスの持つ機能数から構成される。
この例では、識別情報として、ベンダーID(VID)、製品ID(PID)、シリアル番号、デバイス名称を保持し、また、デバイス識別情報520は機能数=2を、デバイス識別情報540は機能数=1を保持していることを示している。
機能識別情報530、550は、各デバイスの持つ機能を識別でき、機能を制御するのに必要な情報である。ここでは、機能番号とエンドポイント数、エンドポイントであり、上位階層であるデバイス識別情報520、540に設定された機能数に応じた数の機能番号とエンドポイント数を保持し、エンドポイント数に対応するエンドポイントを保持する。
このように、デバイス機能ツリーは、どのデバイスのどの機能を使用できるかを検索できるように構成され、クライアントPC100からデバイスサーバ200に問い合わせがあった場合に、デバイス機能ツリーを検索して、デバイス識別情報と機能識別情報を特定し、それらをクライアントPC100へ通知するために使用される。
また、クライアントPC100からリクエストがあったデバイス/機能、およびデバイス300との通信に使用するエンドポイントを特定するために使用される。
<7.クライアントPC100におけるデバイス300の仮想制御>
図6は、クライアントPC100におけるデバイス300の仮想制御の一例を示したものである。
クライアントPC100内の常駐モジュール110は、デバイスサーバ200を介してネットワーク500に接続されたデバイス300を知るために、通信部105を介して、デバイスサーバ200に対して検索パケットをブロードキャストする(ステップS601)。
常駐モジュール110は、デバイスサーバ200からの応答を待ち(ステップS602)、デバイスサーバ200から応答がない場合には(ステップS602でNo)、仮想制御は行わず、処理を終了する。
一方、常駐モジュール110は、デバイスサーバ200から応答があると(ステップS602でYes)、デバイスサーバ200からの応答電文に含まれるデバイス情報(ディスクリプタ)を取得する(ステップS603)。
常駐モジュール110は、取得したデバイス情報のうち、デバイスディスクリプタに記述されたベンダーID(VID)と製品ID(PID)、ストリングディスクリプタに記述されたシリアル番号とデバイス名称によってデバイスの個体を識別する。また、インタフェースディスクリプタに記述されたインタフェース番号、エンドポイントディスクリプタに記述されたエンドポイントアドレスからデバイスの機能を識別する。このようにして識別されたデバイスの個体/機能に関する情報に基づいて、ドライバソフトウェア部品(USB仮想バスデバイス113、USBクラスドライバ112、デバイスドライバ111)を一意に特定し(ステップS604)、各々を順次、動的に生成する(ステップS605〜ステップS607)。
その後、アプリケーションプログラム109を起動し、アプリケーションプログラム109からドライバソフトウェア部品を制御するためのインタフェース(アプリケーション/ドライバインタフェース)を起動して処理を終了する(ステップS608)。このようにして、クライアントPC100内においてデバイス300の仮想制御が実行される。
<8.アプリケーションプログラム109実行時の制御>
次に、この仮想制御下において、アプリケーションプログラム109が、クライアントPC100とデバイス300が直結されたのと同等の状態で仮想化されたドライバソフトウェア部品(デバイスドライバ111、USBクラスドライバ112、USB仮想バスデバイス113)および通信制御部114を使ってデバイス300とデータ入出力を行う際の制御について図7を用いて説明する。
アプリケーションプログラム109は、特定のデバイス300との入出力が必要と判断した場合、通信制御部114を介してデバイスサーバ200とTCP(Transmission Control Protocol)セッションを開始する(ステップS701)。このとき、アプリケーションプログラム109は、デバイスサーバ200から取得したデバイス300のデバイス識別情報と機能識別情報に基づいて、セッションに使用するプロトコルを選択する。
プロトコルの選択とは、すなわち、どのデバイス300のどの機能、エンドポイントに対してデータ入出力を行なうかを指定することである。アプリケーションプログラム109で実行された処理内容に基づき、データ入出力にどのドライバソフトウェア部品(デバイスドライバ111、USBクラスドライバ112、USB仮想バスデバイス113)を使用するかが決まることによって、プロトコル(デバイス,機能,エンドポイント)が選択される。
デバイスサーバ200との接続に失敗した場合(ステップS702でNo)は、処理を終了する。
デバイスサーバ200との接続に成功した場合(ステップS702でYes)、デバイスサーバ200にネットワーク500を介して、USBデータを送受信する(ステップS703)。
そして、すべてのUSBデータの送受信が終了するまで、ステップS703が繰り返される(ステップS704でNo)。
すべてのUSBデータの送受信が終了すると(ステップS704でYes)、デバイスサーバ200とのTCPセッションを切断して処理を終了する(ステップS705)。
<9.デバイスサーバ200におけるクライアントPC100からの接続時の制御>
次に、この仮想制御下における、デバイスサーバ200の制御について図8を用いて説明する。デバイスサーバ200は、クライアントPC100からデータ入出力を要求してきたプロトコル(デバイス,機能,エンドポイントの指定)の内容から、図5に示すようなデバイス機能ツリーを用いて、使用するデバイスおよび機能を特定して、該当するエンドポイントと通信を行う制御を行なう。
クライアント制御部209は、クライアントPC100からのデータ入出力要求に対してセッションを開始する(ステップS801)。次に、クライアント制御部209は、クライアントPC100からデータ入出力を要求してきたパケットを解析して、プロトコルを判定する(ステップS802)。パケットのデータ構造は図9で詳述する。なお、ここでは、データ入出力に使用可能なプロトコルを、プロトコルa,bの2種類であるものとする。
ステップS802において、クライアントPC100からデータ入出力を要求してきたパケットがプロトコルa,bのどちらでもない場合には、クライアント制御部209は、エラーと判断してクライアントPC100に対してエラー通知を行なう(ステップS803)。
クライアントPC100からデータ入出力を要求してきたパケットがプロトコルaの場合には、クライアント制御部209は、デバイス機能ツリーでデバイス300と機能(ここでは機能a)を特定し、セッション制御部210が、機能aに該当するエンドポイントと通信を行う(ステップS804)。
一方、クライアントPC100からデータ入出力を要求してきたパケットがプロトコルbの場合には、クライアント制御部209は、デバイス機能ツリーでデバイス300と機能(ここでは機能b)を特定し、セッション制御部210が、機能bに該当するエンドポイントと通信を行う(ステップS805)。
ステップS803〜ステップS805のいずれかの処理を終えるとセッションを終了する(ステップS806)。
<10.パケットのデータ構成>
実施例1のセッションに用いられるパケットのデータ構成の一例を図9に示す。パケットは、プロトコルヘッダ900とUSB転送データ910で構成される。クライアント制御部209が、パケットを解析することにより、プロトコル(デバイス,機能,エンドポイント)を判定する。
プロトコルヘッダ900には、本システムのプロトコルであることを識別するための署名データ901、電文サイズ902、デバイスサーバ200に対するコマンドID903(bulk−in転送要求など)、ベンダーID(VID)904、製品ID(PID)905、シリアル番号906、機能番号907、エンドポイント908などが格納される。
このうち、ベンダーID904、製品ID905、シリアル番号906によって、デバイス300を一意に識別することができる。また、機能番号907およびエンドポイント908によって、機能を一意に識別することができる。
<11.概略シーケンス(クライアントPC100が1台の場合)>
図10は、本デバイス共有システムの概略シーケンス図である。
デバイスサーバ200は、デバイス300装着時に、装着されたデバイス300からデバイス情報を取得する。デバイス情報には、デバイス300の個体を識別するための情報(デバイス識別情報)と、デバイス300が具備する機能(この例では機能a/機能bの2つ)を識別するための情報(機能識別情報)が含まれる(タイミングT1001)。
デバイス300からデバイス情報を取得したデバイスサーバ200は、デバイス機能ツリーを作成する。デバイス300が具備する機能毎に、セッションで使用するプロトコルを決定して保存する(タイミングT1002)。この例では、機能aに対してプロトコルaが、機能bに対してプロトコルbが設定される。
PC100Aから、デバイス情報の問い合わせがあると(タイミングT1003)、デバイスサーバ200は、PC100Aに対して、デバイス300のデバイス情報(機能毎に決定されたプロトコルの情報を含む)を通知する(タイミングT1004)。
PC100Aでは、通知されたデバイス情報を元に、デバイス300がUSBで直結されたのと同等の環境を提供するための仮想化処理が行われる(タイミングT1005)。
PC100A上でデバイス300の機能aを使用するアプリケーションaが実行されると(タイミングT1006)、アプリケーションaは、機能aに対応したプロトコルaを使用することを判断(指定)して、デバイスサーバ200およびデバイス300に対して、プロトコルaによるセッションを開始する(タイミングT1007)。
PC100Aは、セッションが開始されると、デバイス300との間でプロトコルaによるデータ入出力を実施し、デバイス300の機能aを使用する(タイミングT1008)。
PC100A上で、デバイス300の機能bを使用する別のアプリケーションbが実行されると(タイミングT1009)、アプリケーションbは、機能bに対応したプロトコルbを使用することを判断(指定)して、デバイスサーバ200およびデバイス300に対して、プロトコルbによるセッションを開始する(タイミングT1010)。
PC100Aは、セッションが開始されると、デバイス300との間でプロトコルbによるデータ入出力を実施し、デバイス300の機能bを使用する(タイミングT1011)。
以後、PC100Aとデバイス300との間では、デバイスサーバ200を介して、プロトコルaによるデータ入出力(タイミングT1012)とプロトコルbによるデータ入出力(不図示)とがそれぞれ独立したセッションのもとで実施される。
PC100Aにおいて、アプリケーションAによる機能aの使用が終了し、プロトコルaによる入出力が終了した場合は(タイミングT1013)、デバイス300の機能aに対するセッションを終了する(タイミングT1014)。
上記機能aに対するセッションの終了は、デバイス300の機能bに対するセッションにはなんら作用せず、PC100Aにおいて、アプリケーションBによる機能bの使用が続く限り、機能bに対するセッションは継続される(タイミングT1015)。そして、PC100Aにおいて、アプリケーションBによる機能bの使用が終了し、プロトコルbによる入出力が終了した場合に(タイミングT1016)、デバイス300の機能bに対するセッションが終了する(タイミングT1017)。
上述のとおり、PC100Aは、機能bの使用(プロトコルbによる入出力)が完了しない場合でも、機能aの使用(プロトコルaによる入出力)が完了した時点で機能aに対するセッションを終了できる。これによって、例えば、機能bの使用(プロトコルbによる入出力)が、頻繁または長時間にわたって必要な場合であっても、機能aはそれに作用されることなく使用が終了次第、セッションを解放することが可能となる。
なお、機能aの使用(プロトコルaによる入出力)が完了しない場合でも、機能bの使用(プロトコルbによる入出力)が完了した時点で機能bに対するセッションを終了できることは言うまでもない。
<12.概略シーケンス(クライアントPC100が複数台の場合)>
図11は、機能a、機能bを具備したデバイス300をデバイスサーバ200に接続して、PC100AとPC100Bが制御する場合の概略シーケンス図である。
デバイスサーバ200は、デバイス300装着時に、装着されたデバイス300からデバイス情報を取得する。デバイス情報には、デバイス300の個体を識別するための情報(デバイス識別情報)と、デバイス300が具備する機能(この例では機能a/機能bの2つ)を識別するための情報(機能識別情報)を取得する(タイミングT1101)。
デバイス300からデバイス情報を取得したデバイスサーバ200は、デバイス機能ツリーを作成する。デバイス300が具備する機能毎に、セッションで使用するプロトコルを決定して保存する(タイミングT1102)。この例では、機能aに対してプロトコルaが、機能bに対してプロトコルbが設定される。
PC100A,Bから、デバイス情報の問い合わせがあると(タイミングT1103,T1106)、デバイスサーバ200は、PC100A,Bに対して、デバイス300のデバイス情報(機能毎に決定されたプロトコルの情報を含む)を通知する(タイミングT1104,T1107)。
PC100A,Bでは、通知されたデバイス情報を元に、デバイス300がUSBで直結されたのと同等の環境を提供するための仮想化処理が行われる(タイミングT1105,T1108)。
PC100A上でデバイス300の機能aを使用するアプリケーションaが実行されると(タイミングT1109)、アプリケーションaは、機能aに対応したプロトコルaを使用することを判断(指定)して、デバイスサーバ200およびデバイス300に対して、プロトコルaによるセッションを開始する(タイミングT1110)。
PC100Aは、セッションが開始されると、デバイス300との間でプロトコルaによるデータ入出力を実施し、デバイス300の機能aを使用する(タイミングT1111)。
同様に、PC100B上でデバイス300の機能bを使用するアプリケーションbが実行されると(タイミングT1112)、アプリケーションbは、機能bに対応したプロトコルbを使用することを判断(指定)して、デバイスサーバ200およびデバイス300に対して、プロトコルbによるセッションを開始する(タイミングT1113)。
PC100Bは、セッションが開始されると、デバイス300との間でプロトコルbによるデータ入出力を実施し、デバイス300の機能bを使用する(タイミングT1114)。
以後、PC100Aとデバイス300との間では、デバイスサーバ200を介して、プロトコルaによるデータ入出力(タイミングT1115)が、また、PC100Bとデバイス300との間では、デバイスサーバ200を介して、プロトコルbによるデータ入出力(タイミングT1116)とがそれぞれ独立したセッションのもとで実施される。
PC100Aにおいて、アプリケーションAによる機能aの使用が終了し、プロトコルaによる入出力が終了した場合は(タイミングT1117)、デバイス300の機能aに対するセッションを終了する(タイミングT1118)。
同様に、PC100Bにおいて、アプリケーションBによる機能bの使用が終了し、プロトコルbによる入出力が終了した場合は(タイミングT1119)、デバイス300の機能bに対するセッションを終了する(タイミングT1120)。
以上により、デバイス300の具備する機能a、機能bがPC100A、PC100Bから独立して制御することが可能となる。
実施例2に係る実施の形態を説明する。本実施例では、デバイス機能ツリーに、エンドポイントIDを追加し、クライアントPC100からデバイスサーバ200へ送信するパケットのプロトコルヘッダにこのエンドポイントIDを記述することで、クライアントPC100がデータ入出力を要求するデバイス,機能,エンドポイントを特定してセッションを制御する。
なお、図1〜図4、図6〜8、図10および図11を用いて説明した実施例1の構成は、実施例2でも同様に適用可能であるので、詳細な説明を省略し、相違点についてのみ説明する。
<13.実施例2におけるデバイス機能ツリー>
図4のステップS403で作成されるデバイス機能ツリーについて説明する。デバイス機能ツリーは、装着されたデバイス数を頂点として、第1階層であるデバイス識別情報と、第2階層である機能識別情報で構成される点は、実施例1と同様である。
図12は、デバイス機能ツリーの一例である。この例は、デバイスサーバ200に2台のデバイス300が接続された場合を示している。従って、装着されたデバイス数1210には値=2が設定され、デバイス識別情報1220,1240と、機能識別情報1230,1250を有する。
デバイス識別情報1220、1240は、デバイス300を一意に識別する情報と当該デバイス300の持つ機能数から構成される。
この例では、デバイス300を一意に識別する情報として、ベンダーID(VID)、製品ID(PID)、シリアル番号、デバイス名称を保持し、また、デバイス識別情報1220は機能数=2を、デバイス識別情報1240は機能数=1を保持していることを示している。
機能識別情報1230、1250は、各デバイス300の持つ機能を識別でき、機能を制御するのに必要な情報である。ここでは、機能番号とエンドポイント数、エンドポイントであり、上位階層であるデバイス識別情報1220、1240に設定された機能数に応じた数の機能番号とエンドポイント数を保持し、エンドポイント数に対応するエンドポイントを保持する。さらに、実施例2のデバイス機能ツリーでは、各エンドポイントを識別するためのエンドポイントIDを保持する。
このように、デバイス機能ツリーは、どのデバイス300のどの機能を使用できるかを検索できるように構成され、クライアントPC100からデバイスサーバ200に問い合わせがあった場合に、デバイス機能ツリーを検索して、デバイス識別情報と機能識別情報を特定し、それらをクライアントPC100へ通知するために使用される。
また、クライアントPC100からリクエストがあったデバイス300の個体と機能、およびデバイス300との通信に使用するエンドポイントを特定するために使用される。
<14.実施例2におけるパケットのデータ構成>
実施例2のセッションに用いられるパケットのデータ構成の一例を図13に示す。実施例1と同様、パケットは、プロトコルヘッダ1300とUSB転送データ1310で構成されるが、プロトコルヘッダ1300には、署名データ1301、電文サイズ1302、コマンドID1303の他に、エンドポイントID1304だけが格納される点が本実施例のパケットの特徴である。
以上の通り、実施例2のシステムでは、エンドポイントID1304によって、デバイス300の個体と機能、使用するエンドポイントまでを一意に識別することができる。
なお、エンドポイントID1304は、エンドポイントを識別するために専用のIDを設定してもよいが、それ以外に、TCPポート番号やIPアドレスなどの情報を流用してもよい。このように構成した場合には、パケットのTCPヘッダ(不図示)に記述されたIPアドレスやTCPポート番号などから、TCP/IPレベルでプロトコルを判別することが可能であるので、プロトコルヘッダ1300内にエンドポイントID1304を含める必要はない。デバイスサーバ200は、クライアントPC100から受信したパケットのTCPヘッダを参照し、そこに記述されたIPアドレスやTCPポート番号などと、デバイス機能ツリーのエンドポイントIDとを照合することで、デバイス300の個体と機能、使用するエンドポイントを一意に識別することができる。
なお、本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において適宜変更可能である。
デバイス管理部208で作成、記憶される情報は、デバイス300の個体を識別し、さらにその各々が備える機能を特定することができるように、デバイス識別情報と機能識別情報が階層的に管理されていれば、必ずしも図5のようなツリー構造に限定されるものではない。
また、本発明の目的は、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出して処理を実行することによっても達成することができる。
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコードを記憶したコンピュータで読み取り可能な記憶媒体は本発明を構成することになる。
また、プログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現されるように構成しても良い。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれたあと、このプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を実行し、その処理に応じて上述した実施形態が実現される場合も含んでいる。
なお、プログラムコードを供給するため、例えば、フロッピー(登録商標)ディスク、ハードディスク、光磁気ディスク、CDやDVDに代表される光ディスク、磁気テープ、不揮発性のメモリカード、ROM等の記憶媒体を用いることができる。または、プログラムコードは、ネットワークを介してダウンロードしてもよい。
100A,100B:クライアントPC
101:CPU
102:入力部
103:表示部
104:メモリ
105:通信部
106:外部記憶部
107:内部バス
108:OS
109:アプリケーションプログラム
110:常駐モジュール
111:デバイスドライバ
112:USBクラスドライバ
113:USB仮想バスデバイス
114:通信制御部
200:デバイスサーバ
201:CPU
202:メモリ
203:通信部
204:USB I/F(USBインターフェース)
205:外部記憶部
206:内部バス
207:情報取得部
208:デバイス管理部
209:クライアント制御部
210:セッション制御部
300A,300B:デバイス
400:接続ケーブル
500:ネットワーク

Claims (9)

  1. ネットワークを介して接続されたクライアントと、自身にローカル接続又は内蔵されたデバイスとの間のデータ通信を制御するデバイスサーバであって、
    前記デバイスからデバイス情報を取得する情報取得手段と、
    前記情報取得手段で取得したデバイス情報に基づいて前記デバイスが備える各機能をそれぞれ管理し、前記機能を使用するためのプロトコルを前記機能ごとにそれぞれ設定するデバイス管理手段と、
    前記クライアントからのセッション要求を受信するセッション要求受信手段と、
    前記セッション要求受信手段で受信したセッション要求に基づき、前記デバイスの機能ごとに独立したセッションを介して、前記機能ごとに対応したプロトコルによるデータ通信を制御するセッション制御手段と、
    を備えることを特徴とするデバイスサーバ。
  2. 前記デバイス情報は、前記デバイスを識別するデバイス識別情報と前記デバイスの備える機能を識別する機能識別情報とを含み、
    前記デバイス管理手段は、前記デバイスが複数接続されている場合、前記複数のデバイスが備える機能をそれぞれ管理し、各デバイスの機能ごとにプロトコルを設定することを特徴とする請求項1に記載のデバイスサーバ。
  3. 前記クライアントからの要求に応じて当該クライアントに対して前記デバイス情報と前記設定したプロトコルの情報を送信する情報送信手段をさらに備えることを特徴とする請求項1又は請求項2に記載のデバイスサーバ。
  4. デバイスサーバにローカル接続又は内蔵されたデバイスとの間でネットワークを介してデータ通信を行うクライアントであって、
    前記デバイスサーバから前記デバイスのデバイス情報と前記デバイスの有する機能ごとに設定されたプロトコルの情報を取得する情報取得手段と、
    前記情報取得手段で取得した前記デバイス情報に基づいて、前記デバイスを直接接続しているように制御するためのドライバソフトウェア群を生成するデバイス仮想化手段と、
    前記デバイスと前記デバイスの有する機能を指定する機能指定手段と、
    前記機能指定手段で指定されたデバイスと機能に基づいて、当該機能に応じたドライバソフトウェア群を指定するドライバソフトウェア群指定手段と、
    前記ドライバソフトウェア群指定手段で指定されたドライバソフトウェア群を使用して、当該機能を実行させるための命令・データを生成する命令・データ生成手段と、
    前記ドライバソフトウェア群指定手段で指定されたドライバソフトウェア群に対応したプロトコルによるデータ通信のためのセッションを介して前記命令・データに基づくデータ入出力を制御する通信制御手段と、
    を備えることを特徴とするクライアント。
  5. ネットワークを介して接続されたクライアントと、自身にローカル接続又は内蔵されたデバイスとの間のデータ通信を制御するデバイスサーバにおけるデバイス共有方法であって、
    情報取得手段が前記デバイスからデバイス情報を取得する情報取得ステップと、
    デバイス管理手段が前記情報取得ステップで取得したデバイス情報に基づいて前記デバイスが備える各機能をそれぞれ管理し、前記機能を使用するためのプロトコルを前記機能ごとにそれぞれ設定するデバイス管理ステップと、
    セッション要求受信手段が前記クライアントからのセッション要求を受信するセッション要求受信ステップと、
    セッション制御手段が前記セッション要求受信ステップで受信したセッション要求に基づき、前記デバイスの機能ごとに独立したセッションを介して、前記機能ごとに対応したプロトコルによるデータ通信を制御するセッション制御ステップと、
    を有することを特徴とするデバイス共有方法。
  6. 前記デバイス情報は、前記デバイスを識別するデバイス識別情報と前記デバイスの備える機能を識別する機能識別情報とを含み、
    前記デバイス管理ステップは、前記デバイスが複数接続されている場合、前記複数のデバイスが備える機能をそれぞれ管理し、各デバイスの機能ごとにプロトコルを設定することを特徴とする請求項5に記載のデバイス共有方法。
  7. 情報送信手段が前記クライアントからの要求に応じて当該クライアントに対して前記デバイス情報と前記設定したプロトコルの情報を送信する情報送信ステップをさらに備えることを特徴とする請求項5又は請求項6に記載のデバイス共有方法。
  8. デバイスサーバにローカル接続又は内蔵されたデバイスとの間でネットワークを介してデータ通信を行うクライアントにおけるデバイス共有方法であって、
    情報取得手段が前記デバイスサーバから前記デバイスのデバイス情報と前記デバイスの有する機能ごとに設定されたプロトコルの情報を取得する情報取得ステップと、
    デバイス仮想化手段が前記情報取得ステップで取得した前記デバイス情報に基づいて、前記デバイスを直接接続しているように制御するためのドライバソフトウェア群を生成するデバイス仮想化ステップと、
    機能指定手段が前記デバイスと前記デバイスの有する機能を指定する機能指定ステップと、
    ドライバソフトウェア群指定手段が前記機能指定ステップで指定されたデバイスと機能に基づいて、当該機能に応じたドライバソフトウェア群を指定するドライバソフトウェア群指定ステップと、
    命令・データ生成手段がドライバソフトウェア群指定ステップで指定された機能に基づいて、前記デバイス仮想化ステップで生成したドライバソフトウェア群を使用して、当該機能を実行させるための命令・データを生成する命令・データ生成ステップと、
    通信制御手段が前記ドライバソフトウェア群指定ステップで指定された機能に対応したプロトコルによるデータ通信のためのセッションを介して前記命令・データ生成ステップで生成された命令・データに基づくデータ入出力を制御する通信制御ステップと、を有することを特徴とするデバイス共有方法。
  9. 請求項1乃至3の何れかに記載のデバイスサーバと請求項4に記載のクライアントとが互いにネットワークを介して接続されていることを特徴とするデバイス共有システム。
JP2009228093A 2009-09-30 2009-09-30 デバイス共有システム、デバイス共有サーバ、デバイス共有クライアント、およびデバイス共有方法 Expired - Fee Related JP5581470B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009228093A JP5581470B2 (ja) 2009-09-30 2009-09-30 デバイス共有システム、デバイス共有サーバ、デバイス共有クライアント、およびデバイス共有方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009228093A JP5581470B2 (ja) 2009-09-30 2009-09-30 デバイス共有システム、デバイス共有サーバ、デバイス共有クライアント、およびデバイス共有方法

Publications (3)

Publication Number Publication Date
JP2011076437A JP2011076437A (ja) 2011-04-14
JP2011076437A5 JP2011076437A5 (ja) 2012-11-15
JP5581470B2 true JP5581470B2 (ja) 2014-09-03

Family

ID=44020344

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009228093A Expired - Fee Related JP5581470B2 (ja) 2009-09-30 2009-09-30 デバイス共有システム、デバイス共有サーバ、デバイス共有クライアント、およびデバイス共有方法

Country Status (1)

Country Link
JP (1) JP5581470B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011215990A (ja) * 2010-04-01 2011-10-27 Seiko Epson Corp ネットワークシステム
JP5799295B2 (ja) * 2011-06-10 2015-10-21 サイレックス・テクノロジー株式会社 複数のクライアントと同時通信可能なデバイスサーバ
US8909826B2 (en) 2012-03-14 2014-12-09 Electronics And Telecommunications Research Institute System and method for extending user-interface, and storage medium storing the same
JP6202571B2 (ja) * 2013-12-26 2017-09-27 サイレックス・テクノロジー株式会社 Ip化されたusbデバイス
JP2022032183A (ja) 2020-08-11 2022-02-25 セイコーエプソン株式会社 サーバー及び印刷システム
JP2022167181A (ja) * 2021-04-22 2022-11-04 東芝テック株式会社 デバイス制御装置及びその制御プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004078359A (ja) * 2002-08-12 2004-03-11 Niigata Canotec Co Inc ネットワーク装置、及びデバイスの共有方法
US8069226B2 (en) * 2004-09-30 2011-11-29 Citrix Systems, Inc. System and method for data synchronization over a network using a presentation level protocol
JP2009177367A (ja) * 2008-01-22 2009-08-06 Ricoh Co Ltd 画像形成装置、情報処理方法及びプログラム

Also Published As

Publication number Publication date
JP2011076437A (ja) 2011-04-14

Similar Documents

Publication Publication Date Title
US9069503B2 (en) Apparatus, system, and method of output distribution, and recording medium storing output distribution control program
JP5581470B2 (ja) デバイス共有システム、デバイス共有サーバ、デバイス共有クライアント、およびデバイス共有方法
US9734437B2 (en) Communication relaying technology and communication relaying apparatus
JP4974848B2 (ja) ネットワーク管理装置、ネットワーク管理方法、ならびにネットワーク管理方法を実行するプログラム
JP5745424B2 (ja) デバイス制御装置、クライアント装置、デバイス制御方法、およびデバイス制御システム
JP2004364190A (ja) 通信装置およびその装置を実現するためのプログラム
JP4552815B2 (ja) ネットワーク装置の制御ソフトウェアの更新
JP2002141966A (ja) 通信制御装置及び方法
JP4298630B2 (ja) デバイス管理装置及びその制御方法、並びに制御プログラム
JP2004013662A (ja) 情報処理装置、情報処理方法、制御プログラム
JP6086183B2 (ja) 情報処理システム、情報処理方法、サーバ、その制御方法および制御プログラム
JP2011129111A (ja) クライアント装置、デバイス制御方法、およびデバイス制御システム
CN100407628C (zh) 数据处理装置以及通信方法
JP2008299694A (ja) 周辺機器ドライバインストールシステム
JP2007080055A (ja) ネットワーク装置の制御ソフトウェアの更新
JP4498045B2 (ja) 画像処理装置及びその制御方法及びプログラム
JP4497820B2 (ja) 情報処理方法、情報処理装置並びに分散処理システム
JP2008257319A (ja) 印刷システム、印刷装置、認証印刷実行方法及びプログラム
JP2007080280A (ja) 情報処理方法、情報処理装置、プログラム
JP4900805B2 (ja) Osイメージのデプロイメントマシン及び方法
JP2008027006A (ja) 周辺デバイスを管理するためのプログラムおよび情報処理装置とその制御方法
JP6539497B2 (ja) 通信中継システム、デバイス収容端末、サーバ側コンピュータ、プログラム、及び通信中継方法
CN103812893A (zh) 虚拟桌面外部设备传输方法及系统
JP4498460B2 (ja) ネットワーク装置及びその制御方法
JP4996494B2 (ja) ファクシミリデータ送信プログラムおよびファクシミリデータ送信方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121001

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121001

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130417

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130514

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130716

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140402

R150 Certificate of patent or registration of utility model

Ref document number: 5581470

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees