JP6025547B2 - 情報処理装置、デバイス制御装置、およびその制御方法、並びにデバイス制御システム - Google Patents

情報処理装置、デバイス制御装置、およびその制御方法、並びにデバイス制御システム Download PDF

Info

Publication number
JP6025547B2
JP6025547B2 JP2012279336A JP2012279336A JP6025547B2 JP 6025547 B2 JP6025547 B2 JP 6025547B2 JP 2012279336 A JP2012279336 A JP 2012279336A JP 2012279336 A JP2012279336 A JP 2012279336A JP 6025547 B2 JP6025547 B2 JP 6025547B2
Authority
JP
Japan
Prior art keywords
control
virtualization
information processing
control unit
processing apparatus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2012279336A
Other languages
English (en)
Other versions
JP2014123265A (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 JP2012279336A priority Critical patent/JP6025547B2/ja
Priority to PCT/JP2013/085025 priority patent/WO2014098260A1/ja
Priority to CN201380067236.0A priority patent/CN104885066B/zh
Publication of JP2014123265A publication Critical patent/JP2014123265A/ja
Priority to US14/738,303 priority patent/US20150281324A1/en
Application granted granted Critical
Publication of JP6025547B2 publication Critical patent/JP6025547B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • 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/1204Improving or facilitating administration, e.g. print management resulting in reduced user or operator actions, e.g. presetting, automatic actions, using hardware token storing data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • 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/1224Client or server resources 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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer And Data Communications (AREA)

Description

本発明はネットワークを介して接続された情報処理装置、デバイス制御装置、およびその制御方法、並びにデバイス制御システムに関する。
一般に、パーソナルコンピュータなどの情報処理装置(以下PCと呼ぶ)をクライアントとして、ネットワークを介して当該クライアントがプリンタ、ストレージ、およびスキャナなどのデバイス(周辺機器)を利用するシステムが知られている。このようなシステムにおいて、クライアントがネットワーク上のデバイスをローカル接続されたデバイスとして仮想的に認識して、ネットワーク上のクライアントからデバイスをアクセスできるようにしたものがある。
例えば、本出願人は、LANなどのネットワークに接続されたデバイスサーバ(デバイス制御装置)にローカル接続されたデバイスを、ネットワーク上のクライアントから制御するため、デバイスサーバのデバイス制御部(ホストコントローラ)をPCから制御できるようにしたデバイス制御システムを提案している(例えば、特許文献1参照)。
特願2011−223459号明細書
ところで、上述したデバイス制御システムにおいて、クライアントによって制御されるのはデバイスサーバのデバイス制御部(ホストコントローラ)であり、例えば、デバイスサーバにローカル接続されたデバイスをリセットする際には、デバイス制御部以外のハードウェアを制御する必要がある。また、クライアントにインストールされたアプリケーション(上位層のプログラム)からデバイスサーバに導入されているアプリケーションを連携させてデバイスを制御したいことがある。
このような場合、クライアントとデバイスサーバとの間に新たな通信路が必要となるので、まず、ネットワークリソースを確保しなければならない。さらに、使用するネットワークポートの重複を判定するなどの処理を行った上で、通信路を生成するので、接続に時間がかかってしまう。
そこで、本発明の目的は、クライアントとデバイスサーバとの間の仮想化制御で用いる通信路を用いて、クライアントおよびデバイスサーバのアプリケーションを連携させてデバイスを制御することのできる情報処理装置、デバイス制御装置、およびその制御方法、並びにデバイス制御システムを提供することにある。
さらに、本発明の他の目的は、デバイスサーバのデバイス制御部以外のデバイスサーバ内部のソフトウェア、ハードウェア、およびファームウェアを制御することのできる情報処理装置、デバイス制御装置、およびその制御方法、並びにデバイス制御システムを提供することにある。
上記の目的を達成するため、本発明による情報処理装置は、デバイスがローカル接続されたデバイス制御装置にネットワークを介して接続された情報処理装置であって、前記デバイス制御装置との間に通信路を確立し、前記デバイス制御装置に接続された前記デバイスを仮想化制御する第一の仮想化制御手段と、前記第一の仮想化制御手段によって仮想化制御された前記デバイス、またはデバイス制御装置を制御する第一の制御手段と、前記第一の仮想化制御手段によって前記通信路が確立された場合、前記第一の制御手段の指示により所定の制御経路を選択し、当該制御経路を介してデータの送受信を行う第一の装置制御手段と、を有することを特徴とする。
本発明によるデバイス制御装置は、ネットワークを介して情報処理装置に接続されて、デバイスがローカル接続されたデバイス制御装置であって、前記情報処理装置との間に通信路を確立し、前記デバイス制御装置に接続された前記デバイスを仮想化制御する第二の仮想化制御手段と、前記第二の仮想化制御手段によって仮想化制御された前記デバイス、または前記情報処理装置を制御する第二の制御手段と、前記第二の仮想化制御手段によって前記通信路が確立された場合、前記第二の制御手段の指示により所定の制御経路を選択し、当該制御経路を介してデータの送受信を行う第二の装置制御手段と、を有することを特徴とする。
本発明によれば、情報処理装置とデバイス制御装置との間の仮想化制御で用いる通信路を用いて、情報処理装置およびデバイス制御装置を連携させてデバイスを制御することができる。
本発明の第1の実施形態によるデバイス制御システムの一例を概略的に示すブロック図である。 図1に示すデバイス制御システムにおいて制御経路を介してセッションの接続/切断、データ送信/受信、装置制御部への要求(リセット)、デバイスの接続/切断、および仮想化制御の開始/停止を説明するためのシーケンス図である。 本発明の第2の実施形態によるデバイス制御システムにおいてデバイス制御装置から仮想化制御を開始する際のシーケンスを説明するための図である。 本発明の第3の実施形態によるデバイス制御システムにおいて仮想化制御通信路を用いたアプリケーション制御およびデバイス制御装置のハードウェア制御を説明するためのシーケンス図である。
以下、本発明の実施の形態によるデバイス制御システムの一例について図面を参照して説明する。
[第1の実施形態]
<<システム構成>>
図1は、本発明の第1の実施形態によるデバイス制御システムの一例を概略的に示すブロック図である。なお、図1ではデバイス制御システムの一例である印刷システムが示されている。
図示の印刷システムでは、情報処理装置100およびデバイス制御装置200がネットワーク500を介して互いに接続されている。また、デバイス制御装置200およびデバイス300が接続ケーブル400を介して互いに接続されている。
なお、図示の例では、情報処理装置100は、例えば、パーソナルコンピュータ(PC)であり、デバイス制御装置200は、例えば、複合機(MFP:Multi Function Peripheral)である。
≪各装置の内部構成(ソフトウェア/ハードウェア構成)≫
<情報処理装置100の構成>
情報処理装置100は、一般的なパーソナルコンピュータが備えるハードウェア構成として、図示はしないが、CPU、入力部、表示部、メモリ、および記憶部などを備え、これらは内部バスで相互に接続されている。
CPUは情報処理装置100の各部を制御するための中央処理装置である。入力部は、例えば、キーボードおよびマウスなどの操作部である。表示部は、例えば、液晶モニタなどの表示装置である。メモリは、RAMおよびROMなどの記憶装置である。記憶部は、ハードディスクドライブなどの記憶装置である。
記憶部には、ソフトウェアとして、図示しないオペレーティングシステム(以下OSと呼ぶ)、通信制御部100E、仮想化制御部100D、仮想化制御API100B、デバイスドライバ100C、およびアプリケーション100Aが格納されている。そして、これら通信制御部100E、仮想化制御部100D、仮想化制御API100B、デバイスドライバ100C、およびアプリケーション100Aはメモリに読み出されて、CPUの制御に従い動作する。
アプリケーション100Aは、デバイスドライバ100Cを介してデバイス300を制御するソフトウェアである。また、アプリケーション100Aは仮想化制御API100Bを介して仮想化制御および仮想化制御で用いる通信路による制御を行うためのソフトウェアである。
仮想化制御API100Bは、アプリケーション100Aに対して、仮想化制御および仮想化制御で用いる通信路による制御を行うためのインターフェース(Application Program Interface)を提供する。
インターフェースの具体例は、通信開始/停止および仮想化制御開始/停止、アプリケーション200Aとの間のデータ送信/受信、後述する装置制御部200Fへの制御要求の指示を行うとともに、仮想化制御部100Dによって検知される情報処理装置100内部の動作状態の変化およびデバイス制御装置200から送られる動作状態の変化を受信するためのインターフェース等である。
デバイスドライバ100Cは、OSやアプリケーション100Aなど上位層のソフトウェアの指示により、デバイス300に対する制御コマンドを生成し、この制御コマンドに対する応答を待ち、応答を上位のソフトウェアへ通知するソフトウェアである。
仮想化制御部100Dは、デバイス300が情報処理装置100にあたかも直接的に接続されているかのように制御するソフトウェアである。また、仮想化制御部100Dは仮想化制御API100Bが提供するインターフェースによって指示された制御を行う。
通信制御部100Eは、情報処理装置100をLAN又はWAN(有線又は無線ネットワーク)に接続するためのインターフェースであり、これによって、情報処理装置100はデバイス制御装置200とのデータ送受信を行うことが可能となる。
<デバイス制御装置200の構成>
デバイス制御装置200は、図示はしないが、情報処理装置100と同様にCPU、入力部、表示部、メモリ、および記憶部などを備え、これらが相互に内部バスで接続されている。
記憶部には、ソフトウェアであるOS(図示せず)、通信制御部200E、装置制御部200F、仮想化制御部200D、仮想化制御API200B、およびデバイス制御部200C、アプリケーション200Aが格納されている。そして、これらOS、通信制御部200E、装置制御部200F、仮想化制御部200D、仮想化制御API200B、およびデバイス制御部200C、アプリケーション200Aはメモリに読み出されて、CPUの制御に従い動作する。
アプリケーション200Aは、デバイス制御装置200に所定の機能を実行させるためのソフトウェアである。またアプリケーション200Aは仮想化制御API200Bを介して情報処理装置100のアプリケーション100Aと連携してデバイス300を制御することができる。
仮想化制御API200Bは、アプリケーション200Aに対して、仮想化制御および仮想化制御で用いる通信路による制御を行うためのインターフェースを提供する。そして、仮想化制御API200Bはアプリケーション200Aからの指示に基づいて仮想化制御部200Dに制御要求を行い、仮想化制御部200Dが検知する動作状態の変化をアプリケーション200Aに通知する。
インターフェースの具体例は、通信開始/停止および仮想化制御開始/停止、アプリケーション100Aとの間のデータ送信/受信、および装置制御部200Fへの制御要求の指示を行うとともに、仮想化制御部200Dによって検知されるデバイス制御装置200内部の動作変化およびデバイス300の動作変化を受信してアプリケーション200Aに通知するためのインターフェース等である。
デバイス制御部200Cは、接続ケーブル400を介して接続されているデバイス300を制御する。
仮想化制御部200Dは、デバイス300が情報処理装置100に直接的に接続されているかのように制御するためのソフトウェアである。また、仮想化制御部200Dは仮想化制御API200Bが提供するインターフェースによって指示された制御を行う。
通信制御部200Eは、デバイス制御装置200をLAN又はWANなど(有線又は無線ネットワーク)に接続するためのインターフェースであり、これによって、デバイス制御装置200は情報処理装置100とデータ送受信を行うことが可能となる。
装置制御部200Fは、デバイス制御装置200のデバイス制御部200C以外のデバイス制御装置200内部のソフトウェア、ハードウェア、およびファームウェアを制御するための部品(デバイス制御装置の機種によって異なる)である。
<デバイス300の構成>
デバイス300は、USBケーブルなどによってデバイス制御装置200に接続される。デバイス300は、例えば、ICカードリーダ又はストレージなどの周辺装置であり、情報処理装置100と同様に、CPU、入力部、メモリ、通信制御部、および記憶部などを有しており、これらは相互に内部バスで接続されている。
なお、図1に示すデバイス制御システムでは、1つの情報処理装置100およびデバイス制御装置200が示されているが、ネットワーク500上の情報処理装置100およびデバイス制御装置200の台数は図示の例に限定されるものではない。また、情報処理装置100は、PCに限定されるものではなく、例えば、携帯電話機又はモバイル端末機であってもよい。
また、図1に示す例では、デバイス制御装置200およびデバイス300はそれぞれ別の装置として構成されているが、デバイス300をデバイス制御装置200のケーシングに収まるようにして一体構造としてもよい。
さらに、デバイス制御装置200およびデバイス300が備える通信インターフェースは、USB又はHDMIに限定されるものではなく、Thunderboltなど他の通信インターフェースに準拠したものであってもよい。
≪制御経路の説明≫
図1に示すデバイス制御システムにおいては通信路150で情報処理装置100およびデバイス制御装置200が接続される。そして、図示の例では、通信路150には制御経路0〜3が規定される。
破線で示す通信路150は、情報処理装置100がデバイス300を仮想化制御する際にデバイス制御装置200との間で確立される通信路である。二点鎖線で示す制御経路0は通信路150を介してデバイス300を仮想化制御する際の経路である。
また、実線で示す制御経路1〜3は情報処理装置100のアプリケーション100Aおよびデバイス制御装置200のアプリケーション200Aが通信路150を用いて相手側を制御する際の経路である。制御経路1〜3のいずれを用いるかは、通信(セッション)の接続/切断、データ送信/受信、装置制御部への要求(リセット)、デバイスの接続/切断、および仮想化制御の開始/停止などの制御内容に応じて、アプリケーション100Aおよびアプリケーション200Aが指定し、それぞれ仮想化制御API100Bと仮想化制御API200Bに対して指示する。
≪システムおよび装置の動作フローとシーケンスの説明≫
図2は、図1に示すデバイス制御システムにおいて制御経路0〜3を介して通信(セッション)の接続/切断、データ送信/受信、装置制御部への要求(リセット)、デバイスの接続/切断、および仮想化制御の開始/停止を説明するためのシーケンス図である。
<1>デバイス制御装置によるデバイス接続状態の検知
まず、デバイス制御装置200のアプリケーション200Aが仮想化制御部200Dによって検知された動作状態の変化を受信するまでのシーケンスについて説明する。なお、ここでは、デバイス制御装置200にデバイス300が接続されたことを動作状態の変化として説明する。
いま、デバイス300をデバイス制御装置200に接続すると(ステップS001)、デバイス制御部200Cはデバイス300の接続を検知して、その旨を仮想化制御部200Dに通知する(ステップS002)。続いて、仮想化制御部200Dは、検知したデバイス接続を仮想化制御API200Bに通知する(ステップS003)。そして、仮想化制御API200Bはアプリケーション200Aにデバイス接続を通知する(ステップS004)。
アプリケーション200Aは、デバイス接続の通知を受けると、例えば、LED(Light Emitting Diode)を点灯(点滅)させるか又はLCD(Liquid Crystal Display)などの表示部にその旨を表示して、デバイス300がデバイス制御装置200に接続されたことを報知する(ステップS005:表示更新)。
<2>情報処理装置100によるデバイス接続状態の検知
次に、情報処理装置100のアプリケーション100Aが、上述したデバイス制御装置200の仮想化制御部200Dで検知された動作状態の変化(デバイス300の接続)を受信するまでのシーケンスについて説明する。
S011では、デバイス制御装置200の仮想化制御部200Dで検知したデバイス接続が通信制御部200Eによって情報処理装置100に通知される(ステップS011)。情報処理装置100の通信制御部100Eはデバイス接続の通知を受信すると、当該デバイス接続の通知を、仮想化制御部100Dを介して仮想化制御API100Bに通知する(ステップS012)。そして、仮想化制御API100Bはアプリケーション100Aにデバイス接続を通知する(ステップS013)。
続いて、アプリケーション100Aはディスプレイなどの表示部によって、デバイス制御装置200にデバイス300が接続された旨を表示する(ステップS014)。
このようにして、情報処理装置100のアプリケーション100Aは、仮想化制御API100Bを介して、デバイス制御装置200におけるデバイス300の接続という動作状態の変化を検知して、ディスプレイなどの表示部にデバイスが接続された旨を表示することが可能となる。
<3>情報処理装置によるデバイス仮想化制御開始
前述のように、ステップS013で接続通知を受けると、情報処理装置100ではアプリケーション100Aがデバイス300の仮想化制御開始のタイミングと判定して、仮想化制御API100Bに仮想化制御の開始を指示する(ステップS021)。そして、仮想化制御API100Bは仮想化制御部100Dに仮想化制御の開始を指示する(ステップS022)。ここで、情報処理装置100の通信制御部100Eとデバイス制御装置200の通信制御部200Eとの間に通信路150が確立される。
これによって、仮想化制御部100Dは、上述したステップS011で受信したデバイス接続の情報に応じて、情報処理装置100にデバイス300が直接的に接続されたかのように仮想化制御を行う。
このようにして、情報処理装置100は、デバイス300を仮想化制御するため、ネットワーク500に接続されているデバイス制御装置200との間で通信路150(図1に破線で示す)を確立して、当該通信路150を介して接続されたデバイス制御装置200を介して、デバイス300が直接的に接続されているかのように制御することができるようになる。
<4>情報処理装置による通信開始
続いて、デバイス300の仮想化制御を開始した情報処理装置100が指定したタイミングでデバイス300との間でデータ通信を開始するまでのシーケンスについて説明する。なお、ここでは、ユーザからの指示によって暗号化通信によりデータ通信を開始する場合を例に挙げて説明する。
情報処理装置100には、予め接続可能なデバイス300に関する情報(例えば、ベンダーID又はプロダクトID)、設定可能なデータの暗号化方式(例えば、AES:Advanced Encryption Standard)、通信プロトコル(例えば、SSL:Secure SocketLayer)、およびデジタル証明書などに係る情報が格納されている。そして、ユーザはこれらの情報を入力装置(図示せず)によって選択することができ、デバイス、暗号化種別、および証明書が複数存在する場合には指定が可能となる。
ユーザが暗号化通信指示を行うと、情報処理装置100のアプリケーション100Aは仮想化制御API100Bに対してSSL暗号化を指定して通信開始を指示する(ステップS031)。これによって、仮想化制御API100Bは仮想化制御部100Dに対してSSLセッションの接続を指示する(ステップS032)。
続いて、仮想化制御部100Dは通信制御部100Eによってデバイス制御装置200の通信制御部200Eとの間でSSLセッションを確立する(ステップS033)。
これによって、情報処理装置100とデバイス300とがデバイス制御装置200を介してデータ通信可能な状態となる。
<5>デバイスの仮想化制御(情報処理装置からデバイスへ)
次に、図1に示す情報処理装置100によるデバイス300の仮想化制御について説明する。ここでは、図1に示す制御経路0によって制御が行われる。
情報処理装置100から制御要求をデバイス300に送信する際、アプリケーション100Aからの制御要求は、デバイスドライバ100C、仮想化制御部100D、および通信制御部100Eを経由してデバイス制御装置200に送信される。
具体的には、アプリケーション100Aからデバイスドライバ100Cへ転送要求を送信する(ステップS041)。デバイスドライバ100Cはアプリケーション100Aから転送要求を受け取ってデバイス300に係るパラメータを要求する第1の転送要求を生成して、仮想化制御部100Dに渡す(ステップS042)。
仮想化制御部100Dは、第1の転送要求からデバイス制御装置200の仮想化制御部200Dに渡すパラメータのみを要求パラメータとして取り出す。そして、仮想化制御部100Dは当該要求パラメータとともにデバイス300を特定するためのデバイス識別情報を含むデバイス転送要求を生成する。続いて、通信制御部100Eは当該デバイス転送要求をデバイス制御装置200に送信する(ステップS043)。
一方、デバイス制御装置200は、通信制御部200Eを介して情報処理装置100からデバイス転送要求を受けると、仮想化制御部200Dによって当該デバイス転送要求に含まれるデバイス識別情報に応じてデータ転送を行うべきデバイス300を特定する。そして、仮想化制御部200Dはデバイス転送要求に含まれる要求パラメータを、デバイス300のデバイス制御部に渡すデータ形式に変換して第2の転送要求を生成して、デバイス制御部200Cに渡す(ステップS044)。
デバイス制御部200Cは、この転送要求に基づいてデバイス通信要求を生成して、当該デバイス通信要求をデバイス300に送信する(ステップS045)。
このようにして、デバイス制御装置200は、受信したデバイス転送要求に応じて、通信制御部200E、仮想化制御部200D、およびデバイス制御部200Cを介して、デバイス通信要求を接続ケーブル400で接続されたデバイス300に送信する。
<6>デバイスの仮想化制御(デバイスから情報処理装置へ)
デバイス300は、デバイス制御装置200からデバイス通信要求を受信すると、デバイス通信要求に応じたデバイス通信応答をデバイス制御装置200に送る(ステップS051)。デバイス制御装置200ではデバイス制御部200Cを介して受信したデバイス通信応答に応じた第2の転送応答を仮想化制御部200Dに送る(ステップS052)。
仮想化制御部200Dは第2の転送応答から要求パラメータに応じたパラメータのみを応答パラメータとして取り出して、当該応答パラメータを含むデバイス転送応答を生成する。そして、仮想化制御部200Dは通信制御部200Eを介して、デバイス転送応答を情報処理装置100に送信する(ステップS053)。
情報処理装置100では、通信制御部100Eがデバイス制御装置200からデバイス転送応答を受けると、当該デバイス転送応答を仮想化制御部100Dに渡す。そして、仮想化制御部100Dはデバイス転送応答に含まれている応答パラメータを所定のデータ形式に変換した第1の転送応答をデバイスドライバ100Cに送る(ステップS054)。続いて、デバイスドライバ100Cは第1の転送応答をアプリケーション100Aに渡す(ステップS055)。
このようにして、デバイス300からの応答は、図1に示す制御経路0によって、情報処理装置100のアプリケーション100Aに送られる。ここで、アプリケーション100Aから仮想化制御API100Bに対して通信終了が指示されると、仮想化制御API100Bは通信制御部100Eによってデバイス制御装置200との接続を切断する。
<7>情報処理装置からデバイス制御装置へのカードID送信
次に、情報処理装置100のアプリケーション100Aとデバイス制御装置200のアプリケーション200Aとを連携させて相手装置にデータ/制御要求を送る際のシーケンスについて説明する。
ここでは、情報処理装置100をPC、デバイス制御装置200をMFP、デバイス300をICカードリーダとする。また、情報処理装置100によって仮想化制御されているデバイス300との間でデータの送受信が可能な状態にあり、デバイス300で取得したカードIDを情報処理装置100で読み取り、デバイス制御装置200で認証する場合を例に挙げて説明する。
この場合には、情報処理装置100とデバイス300との間におけるデータの送受信は、図1に示す制御経路0によって上述したステップS041〜S055と同様のデータ送受信処理が行われる。
具体的には、デバイス300にICカードがかざされると、デバイス300はICカードからカードIDを取得して、当該カードIDをデバイス制御装置200に送る。デバイス制御装置200はカードIDをSSL暗号化された通信経路によって情報処理装置100に送る。
続いて、情報処理装置100において、アプリケーション100Aは、取得したカードIDを読み取って(認識して)、次のステップS061〜S072でデバイス制御装置200に送り、デバイス制御装置200において認証を行う。
この場合、情報処理装置100のアプリケーション100Aとデバイス制御装置200のアプリケーション200Aとを連携させて処理を実行させるため、図1に示す制御経路1によってデータの送受信が行われる。
具体的には、情報処理装置100において、アプリケーション100Aが仮想化制御API100Bに対して、デバイス制御装置200のアプリケーション200Aにデータ送信(以下カードID送信という)を指示する(ステップS061)。
次に、仮想化制御API100Bは仮想化制御部100DにカードIDの送信を要求する(ステップS062)。仮想化制御部100Dは通信制御部100Eを介してデバイス制御装置200にカードID送信を行う(ステップS063)。
このようにして、情報処理装置100では、アプリケーション100Aからの制御要求を、仮想化制御API100Bに送り、仮想化制御API100Bから仮想化制御部100Dおよび通信制御部100Eを介してデバイス制御装置200に制御要求(ここでは、カードID送信)を送信する。
一方、デバイス制御装置200では、通信制御部200EがカードIDを受信して、当該カードIDを仮想化制御部200Dに送る。そして、仮想化制御API200Bは仮想化制御部200Dからデータ受信(以下カードID受信という)する(ステップS071)。仮想化制御API200Bはアプリケーション200AにカードID受信を通知する(ステップS072)。
このようにして、デバイス制御装置200では、制御経路1によって受信した制御要求を、通信制御部200Eを介して仮想化制御部200Dに送って、仮想化制御部200Dは、仮想化制御API200Bを介して制御要求(つまりここではカードID受信)をアプリケーション200Aに送る。
このように、デバイス制御装置200のアプリケーション200Aは、情報処理装置100のアプリケーション100Aとデータ送受信を実行する際に、新たな通信路を用いることなく、既に仮想化制御で使用されている通信路150を用いてカードIDを送受信することが可能となる。
<8>デバイス制御装置から情報処理装置へのエラー通知
ここで、デバイス制御装置200のアプリケーション200Aにおいて、上述したカードIDの認証処理でエラーを検出した場合について説明する。この場合は、図1に示す制御経路1によって、デバイス制御装置200から情報処理装置100に対してデータ(エラー検出)が送られる。
具体的には、デバイス制御装置200において、アプリケーション200Aは、例えば、上述したようにカードIDを受信したが、デバイス制御装置200に備えられた認証データベースに当該カードIDが存在しないなどの理由によってエラーが発生すると、当該エラーを検出して、自装置の表示部などに認証エラーである旨を報知する(ステップS073)。
また、デバイス制御装置200では、アプリケーション200Aが認証エラーを通知すべく、仮想化制御API200Bにデータ送信(以下認証エラーの通知という)を指示する(ステップS081)。そして、仮想化制御API200Bは仮想化制御部200Dに認証エラーの通知を要求する(ステップS082)。
続いて、仮想化制御部200Dは通信制御部200Eを介して情報処理装置100に認証エラーの通知を行う(ステップS091)。
このようにして、デバイス制御装置200では、図1に示す制御経路1によってアプリケーション200Aからのデータ/制御要求を、仮想化制御API200Bに送り、仮想化制御API200Bから仮想化制御部200Dおよび通信制御部200Eを介して情報処理装置100に認証エラーの通知を行う。
一方、情報処理装置100では、仮想化制御部100Dが通信制御部100Eを介して認証エラーの通知を受信して、当該認証エラーの通知を受信した旨を仮想化制御API100Bに通知する(ステップS092)。そして、仮想化制御API100Bはアプリケーション100Aに認証エラーの通知を受信した旨を通知する(ステップS093)。
このように、情報処理装置100のアプリケーション100Aとデバイス制御装置200のアプリケーション200Aとの間で新たな通信路を用いることなく、既に仮想化制御で使用している通信路150(SSLセッション)によって情報処理装置100およびデバイス制御装置200の各々においてオペレーションの結果などを受信することが可能となる。
<9>情報処理装置の通信停止
続いて、情報処理装置100においてアプリケーション100Aによって指定されたタイミングで通信停止するシーケンスについて、上述のステップS093において認証エラーが通知された場合を例に挙げて説明する。
情報処理装置100では、デバイス制御装置200のアプリケーション200Aから送られた認証エラーの通知により認証エラーを検出して(ステップS094)、認証エラーの通知に応じて、アプリケーション100Aが仮想化制御API100Bに対して通信停止を指示する(ステップS101)。
このとき、情報処理装置100では、アプリケーション100Aは、例えば、ディスプレイなどの表示部でエラーを表示するか又はブザーなどの音声部(図示せず)によってエラーを報知する。
続いて、仮想化制御API100Bが仮想化制御部100Dに対して、通信路(SSLセッション)の切断を指示する(ステップS102)。そして、仮想化制御部100Dは通信制御部100Eによってデバイス制御装置200の通信制御部200Eとの通信路(SSLセッション)を切断する(ステップS103)。
<10>情報処理装置によるデバイスのリセット
ここでは、上述したステップS094〜S102に続いて、情報処理装置100では、アプリケーション100Aがユーザによって指定されたタイミングでデバイス制御装置200の装置制御部200Fを制御して、デバイス300の再接続(リセット)を実施する場合を例に挙げて説明する。
この場合には、情報処理装置100ではアプリケーション100Aがデバイス制御装置200の仮想化制御部200Dを介して装置制御部200F(デバイス制御部200C以外のデバイス制御装置200内部のソフトウェア、ハードウェア、ファームウェアを制御するための部品)を制御する。この際、図1に示す制御経路3によって制御が行われる。
具体的には、前述のように、ステップS094において、情報処理装置100ではアプリケーション100Aがエラー表示を行う。ユーザは当該エラー表示に応じてアプリケーション100A上のUI(User Interface)を用いてリセットを指示する。
ユーザのリセット指示に応じて、アプリケーション100Aは仮想化制御API100Bにリセットを指示する(ステップS111)。続いて、仮想化制御API100Bは仮想化制御部100Dにリセットを指示する(ステップS112)。
これによって、仮想化制御部100Dは通信制御部100Eを介して、デバイス制御装置200(MFP)に装置制御要求(リセット)を送信する(ステップS113)。デバイス制御装置200(MFP)では、仮想化制御部200Dが通信制御部200Eを介して装置制御要求(リセット)を受信する。
続いて、デバイス制御装置200(MFP)では、仮想化制御部200Dが装置制御部200Fに対してリセットを指示する(ステップS114)。
ここでは、装置制御部200Fは、図1に示すデバイス制御部200Cでは制御できないハードウェアバスに対する制御を行う。例えば、デバイス300には、ハイサイドスイッチ(以下USBハイサイドスイッチという)によってUSBインターフェースを介して供給される電源の電流の大きさが制限されており、装置制御部200Fは当該USBハイサイドスイッチにリセットの指示を送る。これによって、装置制御部200FはUSBハイサイドスイッチをオフ/オン制御して、デバイス制御部200C(USBホストコントローラ)をリセットする。
つまり、装置制御部200Fを制御することによって、デバイス300とデバイス制御装置200とを接続する接続ケーブル400を物理的に挿抜するのと同様のことを行うことができる。
なお、上述のUSBハイサイドスイッチばかりでなく、情報処理装置100の仮想化制御API100Bからデバイス制御装置200のデバイス制御部200C以外のデバイス制御装置200内部のソフトウェア、ハードウェア、およびファームウェアを制御するために、仮想化制御APIを介して装置制御部200Fに指示を行うことができる。
つまり、自装置のアプリケーションからのデータ/制御要求を、仮想化制御APIを介して相手側装置に送信して、相手側装置の仮想化制御部を介して相手側装置内のソフトウェア、ハードウェア、およびファームウェアを制御することができる。これによって、デバイス制御装置200に備えられた様々な機能と連携してソリューションを行うことができる。
<11>情報処理装置によるデバイスのリカバリ検知
ここで、上述したステップS111〜S114の処理によるリセット制御が実施された後のリカバリ動作の例について説明する。
上述のステップS111〜S114の処理によるリセット制御によって、デバイス300との接続が一旦切断されると、デバイス制御装置200において、デバイス制御部200Cがデバイス300との接続の切断を検知し(ステップS121)、その旨を仮想化制御部200Dに通知する(ステップS122)。
仮想化制御部200Dはデバイス300との接続の切断を仮想化制御API200Bに通知する(ステップS123)。そして、仮想化制御API200Bはアプリケーション200Aにデバイス300との接続の切断を通知する(ステップS124)。これによって、デバイス制御装置200はLED/LCDなどの表示部に、デバイス300との接続が切断された旨を表示する(ステップS125)。
また、デバイス制御装置200では、仮想化制御部200Dが検知したデバイスとの接続の切断を、通信制御部200Eを介して情報処理装置100に通知する(ステップS131)。情報処理装置100では、通信制御部100Eによって受信したデバイスとの接続の切断を、仮想化制御部100Dを介して仮想化制御API100Bに通知する(ステップS132)。
仮想化制御API100Bはアプリケーション100Aにデバイスとの接続の切断を通知する(ステップS133)。これによって、アプリケーション100Aは、ディスプレイなどの表示部にデバイスとの接続が切断された旨を表示する(ステップS134)。
続いて、情報処理装置100では、アプリケーション100Aがデバイスとの接続の切断を仮想化制御停止のタイミングと判断して、仮想化制御停止を仮想化制御API100Bに指示する(ステップS141)。そして、仮想化制御API100Bは仮想化制御部100Dに仮想化制御停止を指示する(ステップS142)。これによって、仮想化制御部100Dは、仮想化制御の停止を行うことにより、情報処理装置100とデバイス300との接続を切断する。
デバイス制御装置200において、上述のステップS114によるリセット制御でデバイス300との接続が一旦切断され、再接続されると、デバイス制御部200Cはデバイス300の再接続を検知して(ステップS151)、仮想化制御部200Dにその旨の通知を行う(ステップS152)。そして、仮想化制御部200Dはデバイス300の接続を仮想化制御API200Bに通知する(ステップS153)。
続いて、仮想化制御API200Bはアプリケーション200Aにデバイス300の接続を通知する(ステップS154)。これによって、デバイス制御装置200はLED/LCDなどの表示部に、デバイス300が接続されたことを表示する(ステップS155)。
また、デバイス制御装置200では、仮想化制御部200Dによって検知されたデバイス接続を、通信制御部200Eを介して情報処理装置100に通知する(ステップS161)。情報処理装置100では、通信制御部100Eによって受信したデバイス接続を仮想化制御部100Dを介して仮想化制御API100Bに通知する(ステップS162)。
次に、仮想化制御API100Bはアプリケーション100Aにデバイス接続を通知する(ステップS163)。これによって、アプリケーション100Aは、ディスプレイなどの表示部にデバイス300が接続されたことを表示する(ステップS164)。
続いて、情報処理装置100では、アプリケーション100Aがデバイス接続を仮想化制御開始のタイミングと判断して、仮想化制御開始を仮想化制御API100Bに指示する(ステップS171)。これによって、仮想化制御API100Bは仮想化制御部100Dに仮想化制御開始を指示する(ステップS172)。仮想化制御部100Dは、情報処理装置100にデバイス300が接続されたかのように仮想化制御を開始する。このようにして、アプリケーション100Aによるリセットの指示後にデバイス切断/再接続が行われて、アプリケーション100Aは仮想化制御の開始をもってリカバリの成功と判断する(ステップS181)。
≪第1の実施形態における効果≫
上述のように、本発明の第1の実施形態では、アプリケーション100Aおよびアプリケーション200Aは新たに通信路を設けることなく、既に仮想化制御で用いられている通信路によってデータの送受信を行うことができる。特に、ネットワークを介して暗号化によって通信を行う必要がある場合に、通信路によって暗号化キー/証明書の交換など暗号化に必要な手続きを行うことができるので、通信を開始するまでの時間を低減することができる。
また、第1の実施形態で説明したデバイス300が通信で用いるネットワークポートとして、IANA(Internet Assigned Number Authority)に登録されているポート番号(Registered Port Numbers)が用いられる。このため、新たに通信路を確保する場合には、ユーザが自由に使えるポート番号(Private Port Numbers)を用いる。この際、当該ポート番号が既に用いられていることが有り得るので、ポート番号が重複しているか否かを確認する必要がある。前述のように、第1の実施形態では、既に仮想化制御で用いられている通信路によって通信を行うので、ポート番号が重複しているか否かの確認が不要となる。
そして、仮想化制御で用いられている通信路によって、アプリケーション100Aはデバイス300の切断/接続を判断して、仮想化制御APIによって仮想化制御開始/停止を行うことができる。
さらに、情報処理装置100におけるユーザ入力などのアプリケーション100Aが検知可能なタイミングで、仮想化制御API100Bを介してデバイス300、暗号化種別、および証明書を指定してデバイス制御装置200との通信を開始又は停止することができる。
加えて、情報処理装置100におけるユーザ入力などのアプリケーション100Aが検知可能なタイミングで、仮想化制御API100Bを介してデバイス制御装置200のデバイス制御部200C以外のデバイス制御装置200内部のソフトウェア、ハードウェア、およびファームウェアの制御(例えば、デバイスのリセット)を実行させることができる。
[第2の実施形態]
続いて、本発明の第2の実施形態によるデバイス制御システムの一例について説明する。なお、第2の実施形態によるデバイス制御システムの構成は、図1に示すデバイス制御システムと同様である。
第2の実施形態においては、デバイス制御装置のアプリケーションが仮想化制御APIを用いて情報処理装置と連携して仮想化制御および接続制御を行う点が第1の実施形態と異なる。なお、第1の実施形態と同一の機能を有する構成要素については同一の参照符号又は参照番号を付して説明を省略する。
≪システムおよび装置の動作フローとシーケンスの説明≫
図3は、本発明の第2の実施形態によるデバイス制御システムにおいてデバイス制御装置200から仮想化制御を開始する際のシーケンスを説明するための図である。
ここでは、通信路150を用いて、デバイス制御装置200のアプリケーション200Aから情報処理装置100の仮想化制御部100Dを制御する。この際には、図1に示す制御経路2によって制御が実行される。
なお、図2で説明したステップS001においてデバイス接続が行われ、ステップS005においてデバイス接続を検出するまでのシーケンスは第1の実施形態と同様である。
<12>デバイス制御装置からの入力による仮想化制御開始
ここでは、デバイス制御装置200においてアプリケーション200Aが情報処理装置100の仮想化制御部100Dと連携して、指定したタイミングで仮想化制御を開始するシーケンスについて説明する。このシーケンスは、デバイス制御装置200におけるユーザ入力で開始される。
デバイス制御装置200には、予め接続可能な情報処理装置100に係る情報処理装置情報が格納されており、ユーザは入力装置を用いてデバイス300と接続先である情報処理装置100を選択することができる。デバイスおよび情報処理装置が複数存在する場合には、ユーザは任意のデバイスおよび情報処理装置を指定することができる。ここでいう情報処理識別情報とは、情報処理装置100を識別するための情報である。例えば、情報処理装置100のコンピュータ名、IPアドレス、MACアドレス、シリアルナンバー(製造番号)などであるが、これらに限定されない。さらに、これらの情報を組み合わせたものであってもよい。
まず、デバイス制御装置200において、アプリケーション200Aがユーザ入力(ここでは、デバイス300を選択したデバイス情報および情報処理装置100に係る情報処理装置情報)を受け付ける。そして、アプリケーション200Aは、仮想化制御開始を仮想化制御API200Bにユーザ入力を通知する(ステップS201)。
続いて、仮想化制御API200Bは仮想化制御部200Dに仮想化制御開始を指示する(ステップS202)。仮想化制御部200Dは通信制御部200Eを介して仮想化制御開始を情報処理装置100に送信する(ステップS211)。そして、仮想化制御部100Dは仮想化制御の接続を行うことにより、ステップS211で受信したデバイス300の情報に基づいて情報処理装置100とデバイス300との接続を行う(ステップS212)。
このようにして、デバイス制御装置200から任意のデバイスおよび情報処理装置を指定して仮想化制御処理を行うことができる。
<13>デバイス制御装置からの入力による通信開始
ここでは、デバイス制御装置200のアプリケーション200Aが指定したタイミングで通信開始するシーケンスについて説明する。このシーケンスは、デバイス制御装置200におけるユーザ入力で開始される。
デバイス制御装置には、予め接続可能なデバイス300のデバイス情報と設定可能な暗号化種別・証明書が格納されており、ユーザは入力装置を用いてデバイス300、暗号化種別(SSL/AESなど)、および証明書を選択することができる。情報処理装置、デバイス、暗号化種別、および証明書が複数存在する場合には、ユーザは任意のデバイス、情報処理装置、暗号化種別、および証明書を指定することができる。
まず、デバイス制御装置200において、アプリケーション200Aがユーザ入力(ここでは、デバイス300を選択したデバイス情報、暗号化種別、および証明書)を受け付ける。これによって、アプリケーション200Aは通信開始を仮想化制御API200Bに通知する(ステップS221)。
仮想化制御API200Bは仮想化制御部200Dに通信開始を指示する(ステップS222)。続いて、仮想化制御部200Dは通信制御部200Eを介して、アプリケーション200Aで指定したデバイス300が仮想化制御されている情報処理装置100に、指定した暗号化種別および指定した証明書で通信接続を行う(ステップS231)。
このようにして、デバイス制御装置200から任意のデバイス、情報処理装置、ネットワーク暗号化、および証明書を指定して通信接続を行うことができる。
なお、仮想化制御接続および通信接続に係るユーザ入力は必ずしも分ける必要はない。また、ステップS121〜ステップS125は、第1の実施形態と同様である。
<14>デバイス制御装置からの入力による通信停止
ここでは、デバイス制御装置200のアプリケーション200Aが指定したタイミングで通信停止するシーケンスについて説明する。このシーケンスは、デバイス制御装置200におけるユーザ入力で開始される。
まず、デバイス制御装置200において、アプリケーション200Aはユーザ入力(ここでは、デバイス300を選択したデバイス情報)を受け付ける。これによって、アプリケーション200Aは通信停止を仮想化制御API200Bに通知する(ステップS251)。
続いて、仮想化制御API200Bは仮想化制御部200Dに通信停止を指示する(ステップS252)。そして、仮想化制御部200Dはデバイス300が仮想化制御されている情報処理装置100に通信停止の指示を送信する(ステップS261)。
このようにして、デバイス制御装置200から任意のデバイスおよび情報処理装置を指定して通信停止を行うことができる。
<15>デバイス制御装置からの入力による仮想化制御停止
ここでは、デバイス制御装置200のアプリケーション200Aが情報処理装置100の仮想化制御部100Dと連携して、指定したタイミングで仮想化制御を停止するシーケンスについて説明する。このシーケンスは、デバイス制御装置200におけるユーザ入力で開始される。
まず、デバイス制御装置200において、アプリケーション200Aがユーザ入力(ここでは、デバイス300を選択したデバイス情報)を受け付ける。これによって、アプリケーション200Aは仮想化制御停止を仮想化制御API200Bに通知する(ステップS271)。ここでいうデバイス情報とは、例えば、デバイス300を識別するための情報であって、メーカーを識別するために機器を製造したメーカー毎に割り当てられたベンダーID(VID)、機種を識別するために機種毎に割り当てられた製品ID(PID)、機器の個体を識別するために機器毎に割り当てられたシリアル番号などである。デバイス300がデバイス制御装置200に接続された際などに、デバイス制御部200Cがデバイス300から取得する情報である。
続いて、仮想化制御API200Bは仮想化制御部200Dに仮想化制御停止を指示する(ステップS272)。そして、仮想化制御部200Dは、デバイス300が仮想化制御されている情報処理装置100に、デバイス300の仮想化制御停止の指示を送信する(ステップS281)。これによって、情報処理装置100では仮想化制御部100Dがデバイス300の仮想化制御を停止する(ステップS282)。
このようにして、デバイス制御装置200から任意のデバイスおよび情報処理装置を指定して仮想化制御停止処理を行うことができる。なお、仮想化制御停止および通信停止に係るユーザ入力は必ずしも分ける必要はない。
≪第2の実施形態における効果≫
上述のように、本発明の第2の実施形態では、デバイス制御装置からユーザ入力によって任意のデバイスおよび任意の情報処理装置を選択して仮想化制御開始又は停止を行うことができる。
また、デバイス制御装置からのユーザ入力によって指定されたデバイスのセッションについて、ネットワーク暗号化の有無(サポート可能暗号化種別/証明書など)を選択して通信接続又は切断処理を行うこともできる。
[第3の実施形態]
次に、本発明の第3の実施形態によるデバイス制御システムの一例について説明する。なお、第3の実施形態によるデバイス制御システムの構成は、図1に示すデバイス制御システムと同様である。
本発明の第3の実施形態では、デバイス制御装置のアプリケーションが仮想化制御APIを用いてデバイス以外のハードウェア制御を行う点が第1の実施形態と異なる。なお、第1の実施形態と同一の機能を有する構成要素については同一の参照符号又は参照番号を付して説明を省略する。
≪システムおよび装置の動作フローとシーケンスの説明≫
図4は、本発明の第3の実施形態によるデバイス制御システムにおいて仮想化制御通信路を用いたアプリケーション制御およびデバイス制御装置のハードウェア制御を説明するためのシーケンス図である。
ここでは、デバイス制御装置200のアプリケーション200Aが装置制御部200Fに動作指示を行うシーケンスについて説明する。このシーケンスは、デバイス制御装置200におけるユーザ入力(デバイスのリセット指示)で開始される。
なお、図2で説明したステップS001においてデバイス接続が行われ、ステップS073においてエラー検出を行うまでのシーケンスは第1の実施形態と同様である。
<16>デバイス制御装置からの入力によるデバイスリセット
デバイス制御装置200におけるエラー表示(ステップS073)の情報に応じて、ユーザはデバイス制御装置200からデバイスリセットを指示する。これによって、アプリケーション200Aは仮想化制御API200Bにリセットを指示する(ステップS301)。
続いて、仮想化制御API200Bは仮想化制御部200Dにリセットを指示する(ステップS302)。これによって、第1の実施形態と同様にして、仮想化制御部200Dは装置制御部200Fに対してリセットを指示する(ステップS114)。
<17>デバイス制御装置の表示部によるリカバリの確認
ステップS121〜S125においては、第1の実施形態と同様にして、デバイス制御装置200はデバイス300との接続が切断されたことを検出して、その旨を表示部に表示する。また、ステップS151〜S155においては、第1の実施形態と同様して、デバイス制御装置200はデバイス300が再接続されたことを検出して、その旨を表示部に表示する。
続いて、アプリケーション200Aはデバイス300との接続が一旦デバイス制御装置200から切断された後、再度デバイス制御装置200に接続されたことによってリカバリの成功と判断する(ステップS311)。
なお、第1の実施形態と同様に、仮想化制御も行ってリカバリを判定するようにしてもよい。
≪第3の実施形態における効果≫
上述のように、本発明の第3の実施形態では、情報処理装置100からだけでなく、デバイス制御装置200からユーザ入力などで指定したタイミングでデバイス制御部以外の装置制御(例えば、デバイスのリセットなど)を行うことができる。つまり、自装置の仮想化制御APIに対して自装置内の装置制御(ソフトウェア、ハードウェア、およびファームウェア)を制御させることができる。
[その他の実施の形態]
なお、本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において適宜変更可能である。
例えば、仮想化制御APIを制御経路毎に複数設け、アプリケーションがどの仮想化制御API(すなわち、制御経路)を用いるかを選択するようにしてもよい。
例えば、複数台の情報処理装置100又は複数台のデバイス制御装置200によってデバイス制御システムを構成するようにしてもよく、情報処理装置100およびデバイス制御装置200ともに複数台としてデバイス制御システムを構成するようにしてもよい。
このような場合には、情報処理装置100とデバイス制御装置200との間における仮想化制御で用いる通信路を切り替えて、以下に例示するような処理を含めて様々な制御を行うことができる。
(1)デバイス制御装置が、通信路Aを介して情報処理装置Aからのデータを受信して、デバイス制御装置の仮想化制御APIが通信路の切り替えを行い、受信したデータを情報処理装置Bとの間の通信路Bを介して情報処理装置Bに送る。
(2)情報処理装置が、通信路Aを介してデバイス制御装置Aからのデータを受信し、情報処理装置の仮想化制御APIで通信路の切り替えを行い、受信したデータをデバイス制御装置Bとの間の通信路Bを介して情報処理装置Bに送る。
(3)情報処理装置およびデバイス制御装置をそれぞれ複数台で備える場合には、上記の(1)および(2)を組み合わせて制御を行うことも可能である。
上述のように、本発明の実施の形態では、情報処理装置およびデバイス制御装置に装置制御手段(仮想化制御API)を設けて、仮想化制御部の上位層であるアプリケーション同士を既に仮想化制御で用いている通信路によって連携させることができる。さらに、情報処理装置に搭載されるアプリケーションからデバイス制御装置の装置制御部を制御することができる。
なお、上記の実施の形態の機能を制御方法として、この制御方法を情報処理装置又はデバイス制御装置に実行させるようにすればよい。
また、上述の実施の形態の機能を有するプログラムを制御プログラムとして、当該制御プログラムを情報処理装置又はデバイス制御装置が備えるコンピュータに実行させるようにしてもよい。
なお、制御プログラムは、例えば、コンピュータに読み取り可能な記録媒体に記録される。
また、本発明は、以下の処理を実行することによっても実現される。つまり、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種の記録媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPUなど)がプログラムを読み出して実行する処理である。
100 情報処理装置
100A,200A アプリケーション
100B,200B 仮想化制御API
100C デバイスドライバ
100D,200D 仮想化制御部
100E,200E 通信制御部
200 デバイス制御装置
200C デバイス制御部
200F 装置制御部
300 デバイス
150 通信路
400 接続ケーブル
500 ネットワーク

Claims (9)

  1. デバイスがローカル接続されたデバイス制御装置にネットワークを介して接続された情報処理装置であって、
    前記デバイス制御装置との間に通信路を確立し、前記デバイス制御装置に接続された前記デバイスを仮想化制御する第一の仮想化制御手段と、
    前記第一の仮想化制御手段によって仮想化制御された前記デバイス、またはデバイス制御装置を制御する第一の制御手段と、
    前記第一の仮想化制御手段によって前記通信路が確立された場合、前記第一の制御手段の指示により所定の制御経路を選択し、当該制御経路を介してデータの送受信を行う第一の装置制御手段と、
    を有することを特徴とする情報処理装置。
  2. ネットワークを介して情報処理装置に接続されて、デバイスがローカル接続されたデバイス制御装置であって、
    前記情報処理装置との間に通信路を確立し、前記デバイス制御装置に接続された前記デバイスを仮想化制御する第二の仮想化制御手段と、
    前記第二の仮想化制御手段によって仮想化制御された前記デバイス、または前記情報処理装置を制御する第二の制御手段と、
    前記第二の仮想化制御手段によって前記通信路が確立された場合、前記第二の制御手段の指示により所定の制御経路を選択し、当該制御経路を介してデータの送受信を行う第二の装置制御手段と、
    を有することを特徴とするデバイス制御装置。
  3. 前記第二の装置制御手段は、前記第二の制御手段からの第一の要求に応じて、前記情報処理装置によるデバイスの仮想化制御の開始又は停止を行うことを特徴とする請求項2に記載のデバイス制御装置。
  4. 請求項1に記載の情報処理装置と請求項2又は3に記載のデバイス制御装置とを備えるデバイス制御システムであって、
    前記制御経路は、前記第一の制御手段と、前記第一の装置制御手段と、前記第一の仮想化制御手段と、前記第二の仮想化制御手段と、前記第二の装置制御手段と、前記第二の制御手段とを経由する第一の制御経路であり、
    前記第一の仮想化制御手段または前記第二の仮想化制御手段によって前記通信路が確立された場合、前記第一の制御手段の指示により、前記第一の制御経路を選択して、前記第二の制御手段とデータの送受信を行うとともに、
    前記第二の制御手段の指示により、前記第一の制御経路を選択して、前記第一の制御手段とデータの送受信を行うことを特徴とするデバイス制御システム。
  5. 請求項1に記載の情報処理装置と請求項2又は3に記載のデバイス制御装置とを備えるデバイス制御システムであって、
    前記制御経路は、前記第一の仮想化制御手段と、前記第二の仮想化制御手段と、前記第二の装置制御手段と、前記第二の制御手段とを経由する第二の制御経路であり、
    前記第一の仮想化制御手段または前記第二の仮想化制御手段によって前記通信路が確立された場合、前記第二の制御手段の指示により、前記第二の制御経路を選択して、前記第一の仮想化制御手段にデータの送信を行うことを特徴とするデバイス制御システム。
  6. 請求項1に記載の情報処理装置と請求項2又は3に記載のデバイス制御装置とを備えるデバイス制御システムであって、
    前記デバイス制御装置は、さらに前記デバイス制御装置内部を制御する装置制御手段を備え、
    前記制御経路は、前記第一の制御手段と、前記第一の装置制御手段と、前記第一の仮想化制御手段と、前記第二の仮想化制御手段と、前記装置制御手段とを経由する第三の制御経路であり、
    前記第一の仮想化制御手段または前記第二の仮想化制御手段によって前記通信路が確立された場合、前記第一の制御手段の指示により、前記第三の制御経路を選択して、前記装置制御手段にデータの送信を行うことを特徴とするデバイス制御システム。
  7. 前記デバイス制御装置は、さらに前記デバイスを制御するデバイス制御手段を備え、
    前記装置制御手段は、前記デバイス制御手段以外の前記デバイス制御装置内部を制御することを特徴とする請求項6に記載のデバイス制御システム。
  8. デバイスがローカル接続されたデバイス制御装置にネットワークを介して接続された情報処理装置の制御方法であって、
    前記デバイス制御装置との間に通信路を確立し、前記デバイス制御装置に接続された前記デバイスを仮想化制御する第一の仮想化制御ステップと、
    前記第一の仮想化制御ステップによって仮想化制御された前記デバイス、またはデバイス制御装置を制御する第一の制御ステップと、
    前記第一の仮想化制御ステップによって前記通信路が確立された場合、前記第一の制御ステップの指示により所定の制御経路を選択し、当該制御経路を介してデータの送受信を行う第一の装置制御ステップと、
    を有することを特徴とする情報処理装置の制御方法。
  9. ネットワークを介して情報処理装置に接続されて、デバイスがローカル接続されたデバイス制御装置の制御方法であって、
    前記情報処理装置との間に通信路を確立し、前記デバイス制御装置に接続された前記デバイスを仮想化制御する第二の仮想化制御ステップと、
    前記第二の仮想化制御ステップによって仮想化制御された前記デバイス、または前記情報処理装置を制御する第二の制御ステップと、
    前記第二の仮想化制御ステップによって前記通信路が確立された場合、前記第二の制御ステップの指示により所定の制御経路を選択し、当該制御経路を介してデータの送受信を行う第二の装置制御ステップと、
    を有することを特徴とするデバイス制御装置の制御方法。
JP2012279336A 2012-12-21 2012-12-21 情報処理装置、デバイス制御装置、およびその制御方法、並びにデバイス制御システム Expired - Fee Related JP6025547B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2012279336A JP6025547B2 (ja) 2012-12-21 2012-12-21 情報処理装置、デバイス制御装置、およびその制御方法、並びにデバイス制御システム
PCT/JP2013/085025 WO2014098260A1 (ja) 2012-12-21 2013-12-19 情報処理装置、デバイス制御装置、およびその制御方法、並びにデバイス制御システム
CN201380067236.0A CN104885066B (zh) 2012-12-21 2013-12-19 信息处理设备、装置控制设备及控制方法和装置控制系统
US14/738,303 US20150281324A1 (en) 2012-12-21 2015-06-12 Information processing apparatus, device control apparatus, methods of controlling them, and device control system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012279336A JP6025547B2 (ja) 2012-12-21 2012-12-21 情報処理装置、デバイス制御装置、およびその制御方法、並びにデバイス制御システム

Publications (2)

Publication Number Publication Date
JP2014123265A JP2014123265A (ja) 2014-07-03
JP6025547B2 true JP6025547B2 (ja) 2016-11-16

Family

ID=50978564

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012279336A Expired - Fee Related JP6025547B2 (ja) 2012-12-21 2012-12-21 情報処理装置、デバイス制御装置、およびその制御方法、並びにデバイス制御システム

Country Status (4)

Country Link
US (1) US20150281324A1 (ja)
JP (1) JP6025547B2 (ja)
CN (1) CN104885066B (ja)
WO (1) WO2014098260A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6525817B2 (ja) * 2015-08-26 2019-06-05 キヤノン株式会社 印刷制御方法、プログラム、及び情報処理装置

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5953350A (en) * 1995-03-13 1999-09-14 Selsius Systems, Inc. Multimedia client for multimedia/hybrid network
JP3766259B2 (ja) * 2000-06-01 2006-04-12 株式会社日立製作所 パケット転送装置
US6904489B2 (en) * 2001-10-23 2005-06-07 Digi International Inc. Methods and systems for remotely accessing universal serial bus devices
US20050057780A1 (en) * 2002-11-19 2005-03-17 Canon Denshi Kabushiki Kaisha Network scanning system
JP4164467B2 (ja) * 2004-03-26 2008-10-15 キヤノン株式会社 画像処理装置、画像処理制御方法、及びプログラム
US20060107269A1 (en) * 2004-11-17 2006-05-18 International Business Machines Corporation Virtual device hub
CN100347692C (zh) * 2005-05-31 2007-11-07 清华大学 San系统中虚拟化智能控制器的实现方法
US20070005867A1 (en) * 2005-06-30 2007-01-04 Nimrod Diamant Virtual peripheral device interface and protocol for use in peripheral device redirection communication
JP4842593B2 (ja) * 2005-09-05 2011-12-21 株式会社日立製作所 ストレージ仮想化装置のデバイス制御引継ぎ方法
JP4765496B2 (ja) * 2005-09-09 2011-09-07 セイコーエプソン株式会社 ネットワーク型プラグアンドプレイに対応したネットワーク装置及びその制御方法
EP1763198A3 (en) * 2005-09-07 2007-04-04 Seiko Epson Corporation Control of network plug-and-play compliant device
JP2007219711A (ja) * 2006-02-15 2007-08-30 Silex Technology Inc リモートデバイス制御プログラム
JP5272265B2 (ja) * 2008-09-29 2013-08-28 株式会社日立製作所 Pciデバイス共有方法
JP5124779B2 (ja) * 2008-11-07 2013-01-23 キヤノンイメージングシステムズ株式会社 デバイス共有システム、デバイス共有クライアント、及びデバイス共有方法
US8438256B2 (en) * 2009-06-26 2013-05-07 Vmware, Inc. Migrating functionality in virtualized mobile devices
US8326976B2 (en) * 2009-06-30 2012-12-04 Alcatel Lucent Configuring application management reporting in a communication network
US9654588B2 (en) * 2009-11-04 2017-05-16 Canon Imaging Systems Inc. Device control apparatus, client apparatus, device control method, and device control system
JP2011129111A (ja) * 2009-11-18 2011-06-30 Canon Imaging Systems Inc クライアント装置、デバイス制御方法、およびデバイス制御システム
JP5482453B2 (ja) * 2010-05-27 2014-05-07 富士通株式会社 ルータ、情報処理装置及びプログラム
TWI436218B (zh) * 2011-04-01 2014-05-01 Ralink Technology Corp 於非通用序列匯流排裝置建立虛擬通用序列匯流排介面之方法及其裝置
US9641621B2 (en) * 2011-11-02 2017-05-02 Microsoft Technology Licensing, Llc Sensor aware packet modification and routing
US9148368B2 (en) * 2012-02-14 2015-09-29 International Business Machines Corporation Packet routing with analysis assist for embedded applications sharing a single network interface over multiple virtual networks
US9083644B2 (en) * 2012-02-14 2015-07-14 International Business Machines Corporation Packet routing for embedded applications sharing a single network interface over multiple virtual networks
CA2841685C (en) * 2013-03-15 2021-05-18 Panasonic Avionics Corporation System and method for providing multi-mode wireless data distribution

Also Published As

Publication number Publication date
JP2014123265A (ja) 2014-07-03
WO2014098260A1 (ja) 2014-06-26
CN104885066A (zh) 2015-09-02
US20150281324A1 (en) 2015-10-01
CN104885066B (zh) 2017-12-22

Similar Documents

Publication Publication Date Title
USRE48177E1 (en) Relay apparatus, image processing apparatus and communication system
JP4637203B2 (ja) 情報処理装置、複合機、複合機の外部認証システム、プログラム、および記録媒体
US10521167B2 (en) Communication system and relay device
JP2016021090A (ja) 端末装置、プリンタ、コンピュータプログラム
TWI414945B (zh) Process system and method for automatically connecting with remote USB device
JP5745424B2 (ja) デバイス制御装置、クライアント装置、デバイス制御方法、およびデバイス制御システム
CA2865725A1 (en) Information processing system, information processing method, mobile phone, server, and control method and control program thereof
EP3289514B1 (en) Communication system, communication method, and computer program
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
JP6025547B2 (ja) 情報処理装置、デバイス制御装置、およびその制御方法、並びにデバイス制御システム
CN106936608B (zh) 一种建立ssh连接的方法、相关设备及系统
JP2009098977A (ja) 周辺機器接続システム
WO2012152010A1 (zh) 一种网络设备功能共享的方法及装置
JP6216510B2 (ja) 携帯端末、携帯端末の制御方法、およびデバイス制御システム
US9843422B2 (en) Device control protocol (over IPP)
JP2013089204A (ja) 情報処理装置、その制御方法、およびデバイス制御システム
US20080055631A1 (en) Wireless communication device, computer readable medium storing wireless communication program, wireless communication system, image formation device, and computer readable medium storing control program for image formation device
US11966643B2 (en) Device and storage medium storing computer program
JP6064822B2 (ja) 情報処理システム、情報処理装置及びプログラム
US11924286B2 (en) Encrypted communication processing apparatus, encrypted communication processing system, and non-transitory recording medium
JP5883185B2 (ja) 通信装置、通信システム、制御方法、通信方法、およびプログラム
JP2024070731A (ja) デバイス、コンピュータプログラム、および、方法
JP2017010192A (ja) デバイス制御装置、その制御方法、およびデバイス制御システム
JP2018055635A (ja) デバイス制御装置、情報処理装置、その制御方法、およびデバイス制御システム
JP5353847B2 (ja) 通信装置、通信方法、及び通信プログラム

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20141210

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151106

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160628

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161011

R150 Certificate of patent or registration of utility model

Ref document number: 6025547

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees