JP4805116B2 - 情報処理システム、情報処理システムの制御方法、サービス利用装置及びサービス提供装置 - Google Patents

情報処理システム、情報処理システムの制御方法、サービス利用装置及びサービス提供装置 Download PDF

Info

Publication number
JP4805116B2
JP4805116B2 JP2006333599A JP2006333599A JP4805116B2 JP 4805116 B2 JP4805116 B2 JP 4805116B2 JP 2006333599 A JP2006333599 A JP 2006333599A JP 2006333599 A JP2006333599 A JP 2006333599A JP 4805116 B2 JP4805116 B2 JP 4805116B2
Authority
JP
Japan
Prior art keywords
device driver
driver
service
information processing
identification information
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
JP2006333599A
Other languages
English (en)
Other versions
JP2008146398A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2006333599A priority Critical patent/JP4805116B2/ja
Priority to US11/740,453 priority patent/US7788349B2/en
Publication of JP2008146398A publication Critical patent/JP2008146398A/ja
Application granted granted Critical
Publication of JP4805116B2 publication Critical patent/JP4805116B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Description

本発明は、デバイスが接続されるサービス利用装置に通信可能に接続され、前記サービス利用装置に入力された入力データを当該サービス利用装置から受信し、前記入力データに応じて情報処理を実行し、その実行結果を前記サービス利用装置に送信するサービスを提供するサービス提供装置と、前記サービス利用装置と、を備えて構成される情報処理システムにおいて、前記サービス提供装置が、前記サービス利用装置に接続されているデバイスを、前記サービス提供装置に直接接続されている場合と同様に利用可能とする技術に関する。
利用者からの入力データを受け付けるサービス利用装置(以下、操作端末又はクライアントとも記す)が、ネットワークで接続されたサービス提供装置(以下、被操作端末又は情報処理サーバとも記す)にその入力データを送信し、その入力データに応じた情報処理が情報処理サーバにて実行され、その実行結果を示す画面データがクライアントのディスプレイに表示される、というリモート操作システムが開発されている(例えば、特許文献1、2参照)。
特開2001−331428号公報 特開2001−197461号公報
しかしながら、リモート操作システムにおいて、クライアントがシンクライアントなどである場合は、実際の処理装置は情報処理サーバで行われるため、情報処理サーバ側にあるデータをクライアントに接続されたプリンタなどのデバイスへ出力したい場合や、クライアントに接続されたICカードリーダなどのデバイスから情報処理サーバがデータを読み出したい場合には、クライアントに接続されたデバイスを、情報処理サーバ側のOS(Operating System)やアプリケーションから直接制御し、利用することができない。
そこで、情報処理サーバからクライアントに接続されたデバイスを使用可能とするために、クライアントにデバイス管理マネージャを設け、情報処理サーバにデバイス管理エージェントを設けることが考えられる。
デバイス管理マネージャは、クライアントに接続されたデバイスとクライアントが実行するアプリケーションとの間のデータの送受信と、クライアントに接続されたデバイスと情報処理サーバとの間のデータの送受信と、を排他的に制御するフィルタドライバや、情報処理サーバとの通信手段等を実現するプログラムである。
デバイス管理エージェントは、情報処理サーバが実行するアプリケーションとの間で仮想的にバスドライバとして機能する擬似バスドライバや、クライアントとの通信手段等を実現するプログラムである。
具体的には、クライアントにデバイスが接続される際にデバイスから出力されるプラグインデータをフィルタドライバがメモリ等に保存しておき、クライアントから情報処理サーバにプラグイン指示をする際に、そのプラグインデータを情報処理サーバに送信し、情報処理サーバにインストールされているデバイスドライバに対して、擬似バスドライバがプラグインデータを擬似的に応答する。
このように、情報処理サーバのデバイスドライバに対して、クライアントに接続されているデバイスがあたかも情報処理サーバに直接接続されているかのように応答することで、クライアントに接続されているデバイスを、情報処理サーバのOS(Operating System)が利用することが可能となる。
クライアントにデバイスが接続された場合には、クライアントで実行されるOSは、デバイスのプラグイン処理を実行する。プラグイン処理においては、OSがデバイスを認識するためのプラグインデータがOSとデバイスドライバとデバイスとの間で授受される。
フィルタドライバは、デバイスドライバとデバイスの間で授受されるデータをフィルタリングする。これにより、デバイスドライバとデバイスとの間で授受されるデータを監視したり保存したりすることができる。クライアントに接続されたデバイスからプラグインデータが出力されると、そのプラグインデータはフィルタドライバにより捕捉され、クライアントが情報処理サーバにプラグイン指示をする際に、情報処理サーバに送信される。
情報処理サーバがそのプラグインデータを受信すると、擬似バスドライバは、情報処理サーバにインストールされているデバイスドライバにそのプラグインデータを引き渡す。そのプラグインデータを用いてプラグイン処理が実行される。このようにして、情報処理サーバのOSは、クライアントに接続されているデバイスを認識する。
クライアントに接続されているデバイスを情報処理サーバが認識した後、情報処理サーバのOSやアプリケーションからデバイスにリクエストがなされた場合は、情報処理サーバの擬似バスドライバがそのリクエストを受け取り、クライアントのフィルタドライバに送信する。
クライアントのフィルタドライバは、受信したリクエストをデバイスに送信する。そのリクエストがデバイスで処理されると、デバイスから処理結果としてレスポンスが出力される。レスポンスは、フィルタドライバを経由して情報処理サーバの擬似バスドライバに送信される。擬似バスドライバは、フィルタドライバから受信したレスポンスを情報処理サーバが実行するOSやアプリケーションに返信する。これにより、情報処理サーバが実行するOSやアプリケーションからクライアントに接続されたデバイスにアクセス可能となる。
以上の手段により、情報処理サーバは、情報処理サーバにデバイスが直接接続されたときと同様に、クライアントに接続されているデバイスに対する処理を行うことが可能となる。
しかし、クライアントに接続されているデバイスを情報処理サーバから利用する場合に、情報処理サーバが実行するデバイスドライバが、クライアントが実行するデバイスドライバと異なる場合には、同じデバイスを利用するにしても、クライアントから利用する場合と、情報処理サーバから利用する場合とで、利用環境が異なってしまう。このため、ユーザの使い勝手が悪く、作業効率も悪化する。
また、クライアントに接続されたデバイスが例えば特殊なデバイスであり、そのデバイスを利用するためには特別な機能を持つデバイスドライバを実行する必要がある場合において、そのデバイスを情報処理サーバで過去に利用したことがない場合には、そのデバイスを利用する毎に、そのデバイスドライバを情報処理サーバにインストールしなければならず、作業性が悪い。
本発明は、クライアントに接続されたデバイスを、クライアントから利用する場合と同様の利用環境で、情報処理サーバから利用することを可能とすることを1つの目的とする。
上記目的を達成するに、本実施形態は、デバイスが接続されるサービス利用装置に通信可能に接続され、前記サービス利用装置に入力された入力データを当該サービス利用装置から受信し、前記入力データに応じて情報処理を実行し、その実行結果を前記サービス利用装置に送信するサービスを提供するサービス提供装置と、前記サービス利用装置と、を備えて構成される情報処理システムであって、前記サービス利用装置は、当該サービス利用装置により実行されるオペレーティングシステムが前記デバイスを利用する際に、前記デバイスに対してコマンドを出力するデバイスドライバと、前記デバイスドライバが前記デバイスに対して出力した前記コマンドを取得して前記デバイスに送信するバスドライバと、前記デバイスドライバの識別情報を前記サービス提供装置に送信するデバイスドライバ識別情報送信部と、前記サービス提供装置から送信される前記デバイスに対するコマンドを受信するコマンド受信部と、前記コマンド受信部が受信した前記コマンドを前記バスドライバに引き渡すフィルタドライバと、を備え、前記サービス提供装置は、前記サービス利用装置から、前記デバイスドライバの識別情報を受信するデバイスドライバ識別情報受信部と、当該サービス提供装置により実行されるオペレーティングシステムから前記デバイスを利用可能とするために、前記受信した識別情報により特定されるデバイスドライバをインストールするデバイスドライバインストール部と、前記オペレーティングシステムが前記デバイスを利用する際に、前記インストールされたデバイスドライバから前記デバイスに対して出力されるコマンドを取得する擬似バスドライバと、前記擬似バスドライバが取得した前記コマンドを前記コマンド受信部に送信するコマンド送信部と、を備える。
このような態様により、サービス利用装置に接続されたデバイスを、サービス利用装置から利用する場合と同様の利用環境で、サービス提供装置から利用することが可能となる。
デバイスが接続されるサービス利用装置に通信可能に接続され、サービス利用装置に入力された入力データを当該サービス利用装置から受信し、その入力データに応じて情報処理を実行し、その実行結果をサービス利用装置に送信するサービスを提供するサービス提供装置と、サービス利用装置と、を備えて構成される情報処理システムにおいて、サービス利用装置に接続されるデバイスを、サービス利用装置から利用する場合と同様の利用環境で、サービス提供装置から利用することが可能となる。
以下、本発明の実施形態を図面に基づいて説明する。
図1は、本実施形態におけるリモート操作システム1000のハードウェア構成およびソフトウェア構成を表す図の一例である。
リモート操作システム1000は、クライアント101と情報処理サーバ102とがネットワーク1100を介して通信可能に接続されて構成される情報処理システムである。図1に示すリモート操作システム1000は、1台のクライアント101と1台の情報処理サーバ102とにより構成されているが、それぞれ複数台であっても良い。
クライアント101は、ユーザの出張先や自宅あるいは移動途中の場所など、様々な場所からネットワーク1100に接続し、情報処理サーバ102と通信を行うことが可能なコンピュータである。クライアント101は、ユーザからの入力データを受け付けると、その入力データを情報処理サーバ102に送信する。そしてクライアント101は、その入力データに応じて実行された情報処理の実行結果を示す画面データを情報処理サーバ102から受信して表示する。
クライアント101は、例えばシンクライアントにより構成することができる。もちろんノート型パーソナルコンピュータやPDA(Personal Digital Assistant)等の一般的なコンピュータにより構成することもできる。
情報処理サーバ102は、クライアント101から送信されてくる入力データに応じて情報処理を実行し、その実行結果を示す画面データを生成して、クライアント101に送信するコンピュータである。
情報処理サーバ102は、例えば、ブレードサーバを構成する個々のブレードコンピュータにより構成することができる。ブレードコンピュータは、コンピュータとして機能する一体的に形成されたボードであり、同一規格の複数のブレードコンピュータが筐体に装着されることにより、ブレードサーバを構成する。もちろん、パーソナルコンピュータやワークステーション、メインフレーム等のコンピュータにより構成することもできる。
次にリモート操作システム1000のハードウェア構成について説明する。
クライアント101は、CPU(Central Processing Unit)110、メモリ111、デバイスI/F(Interface)112、ディスクI/F113、通信I/F114を備える。
デバイスI/F112は、デバイスA151を接続するためのインタフェースである。
クライアント101は、USB(登録商標)やシリアルポートインタフェース、IEEE1394(Institute of Electrical and Electronic Engineers 1394)等の各種規格に応じて、複数のデバイスI/F112を設けることができる。デバイスI/F112は、デバイスの種類ごとに存在する。図示しないキーボードやマウス、ディスプレイなどの入出力デバイスも各々に対応したデバイスI/F112に接続されるようにしてもよい。
デバイスA151は、プリンタやIC(Integrated Circuit)カードリーダなどのいわゆる周辺機器であり、デバイスI/F112を介してクライアント101と接続される。デバイスA151は、内部にメモリを備え、製造ベンダIDや製品ID、シリアル番号等のデバイス識別情報を記憶している。これらのデータは、デバイスA151がデバイスI/F112に接続されると、デバイスA151から出力され、クライアント101に読み出される。
ディスクI/F113は、ハードディスクドライブやフラッシュメモリなどのストレージ152を接続するためのインタフェースである。
通信I/F114は、LAN(Local Area Network)やWAN(Wide Area Network)などのネットワーク1100に接続し、他のコンピュータと通信を行うためのインタフェースである。本実施形態では、クライアント101と情報処理サーバ102とは、TCP/IP(Transmission Control Protocol/Internet Protocol)の通信規格に従ってネットワーク1100を介して通信を行う。
情報処理サーバ102はCPU115、メモリ116、デバイスI/F117、ディスクI/F118、通信I/F119を備える。
デバイスI/F117は、プリンタ等の各種デバイスに接続するためのインタフェースである。情報処理サーバ102は、USB(登録商標)やシリアルポートインタフェース、IEEE1394等の各種規格に応じて、複数のデバイスI/F117を設けることができる。デバイスI/F117は、デバイスの種類ごとに存在する。図示しないキーボードやマウス、ディスプレイなどの入出力デバイスも各々に対応したデバイスI/F117に接続されてもよい。ただし、本実施形態に係る情報処理サーバ102は、ユーザインタフェースを不要とし、ディスプレイやキーボード、マウスが接続されていなくても良い。
ディスクI/F118は、ハードディスクドライブやフラッシュメモリなどのストレージ153に接続するためのインタフェースである。
通信I/F119は、LANやWANなどのネットワークに接続し、他のコンピュータと通信を行うためのインタフェースである。
次に、リモート操作システム1000のソフトウェア構成について説明する。
クライアント101は、アプリケーションプログラム120、OS(Operating System)121、ドライバA122、バスドライバ123、クライアント制御プログラム124、デバイス管理マネージャプログラム125を実行する。なお、デバイス管理マネージャプログラム125には、クライアント側基本制御プログラム141、クライアント側テーブル処理プログラム142、フィルタドライバ143が含まれる。
メモリ111に読み込まれたこれらのプログラムがCPU110により実行されることにより、クライアント101の各処理部が実現される。例えば、メモリ111に格納されたクライアント制御プログラム124、クライアント側基本制御プログラム141、クライアント側テーブル処理プログラム142などの各種プログラムが、CPU110により実行されることで、各種の処理が行われる。
これらの各処理は、各プログラムをCPU110が実行することにより行なわれるが、これらは、クライアント制御部、クライアント側基本制御部、クライアント側テーブル処理部など、各処理を行う処理部として集積回路化するなどしてハードウェアで実現することもできる。
以下、説明を簡略化するため、各種プログラムを各処理の主体として説明するが、各処理部をハードウェアで実現した場合にはその各処理部が主体となって各処理を行う。
なお、クライアント側基本制御プログラム141には、デバイスドライバ識別情報送信プログラム300、コマンド受信プログラム301、デバイスドライバ要求受信プログラム302、デバイスドライバ送信プログラム303が含まれる。これらの各プログラムがCPU110によりそれぞれ実行されることにより、特許請求の範囲に記載のデバイスドライバ識別情報送信部、コマンド受信部、デバイスドライバ要求受信部、デバイスドライバ送信部における各機能が実現される。
またストレージ152には、デバイス管理テーブル161、ドライバAファイル162、ドライバA設定ファイル163、ネットワーク接続状態バッファ167が記憶される。
ドライバAファイル162はドライバA122に対応するドライバファイルであり、OS121がドライバAファイル162をメモリ111にロードすることによって、ドライバAファイル162はドライバA122として動作する。ドライバA設定ファイル163はドライバA122をインストール時に設定するためのファイルである。
また詳しくは後述するが、ドライバAファイル162およびドライバA設定ファイル163は、情報処理サーバ102で必要な場合には、情報処理サーバ102に送信される。
クライアント制御プログラム124は、キーボードやマウス等を用いてユーザによって入力されたデータ(入力データ)を情報処理サーバ102へ送信し、情報処理サーバ102から送信されてくる画面データを受信してディスプレイに表示する制御を行うプログラムである。
またクライアント制御プログラム124は、デバイス管理マネージャプログラム125から各種通知を受け取り、通知の内容に対応したメッセージをディスプレイに表示する制御も行う。またクライアント制御プログラム124は、ユーザがクライアント101から情報処理サーバ102にログインをするための各種制御を実行する。
アプリケーションプログラム120は、例えば、指紋認証等によりユーザの本人確認を行うユーザ認証プログラム等とすることができる。アプリケーションプログラム120は、OS121、ドライバA122、バスドライバ123を通して、デバイスI/F112に接続されたデバイスA151にアクセスし、データの入出力などを行うことができる。
OS121は、クライアント101を構成する各種ハードウェアの制御を司るプログラムである。またアプリケーションプログラム120がデバイスA151との間でデータの授受を行う際に、アプリケーションプログラム120とドライバA122との間で行われるデータの授受を制御する。
OS121は、各デバイスI/F112にデバイスA151が接続されているか否かや、それらのデバイスA151を利用可能か否かを管理している。
デバイスI/F112にデバイスA151が接続されると、デバイスA151から、デバイスA151のベンダIDや製品ID、シリアル番号を含むデバイス識別情報が出力される。デバイス識別情報は、デバイスA151がデバイスI/F112に接続された際にデバイスA151から出力されるプラグインデータに含まれている場合もある。バスドライバ123は、そのデバイス識別情報をデバイスA151から受け取ると、デバイスI/F112の識別情報と共にOS121に引き渡す。そしてOS121は、そのデバイス識別情報を、デバイスI/F112の識別情報と対応付けてメモリ111に記憶する。またOS121は、そのデバイス識別情報によりデバイスA151を特定する。そしてOS121は、上記特定したデバイスA151を制御するためのドライバA122をメモリ111にロードする。ドライバA122のインストールは、ストレージ152に記憶されているドライバA設定ファイル163に従って、ドライバAファイル162をドライバA122としてメモリ111にロードすることにより行われる。そしてOS121は、デバイスA151を制御中である旨のフラグをセットする。これにより、OS121はデバイスA151を利用可能になる。以下、OS121がデバイスA151を利用可能とするための処理をプラグイン処理とも記す。
一方、デバイスA151がデバイスI/F112から取り外されると、バスドライバ123により検知される。バスドライバ123はその旨のメッセージを、デバイスI/F112の識別情報と共にOS121に通知する。そうするとOS121は、そのデバイスI/F112の識別情報と対応付けてメモリ111に記憶されているデバイス識別情報に基づいて、取り外されたデバイスA151を特定する。そしてOS121は、デバイスA151を制御終了中である旨のフラグをセットする。これにより、OS121はデバイスA151を利用中止する。以下、OS121がデバイスA151を利用中止するための処理をプラグアウト処理とも記す。この後、ドライバA122をアンインストールするようにしても良い。
ドライバA122は、デバイスA151を制御するためのプログラム(デバイスドライバ)である。例えば、デバイスA151がプリンタである場合には、そのプリンタの起動や印刷用紙の給紙、印字サイズや画像解像度の制御等を行う。ドライバA122は、元々ストレージ152等にドライバAファイル162として記憶されており、デバイスA151がデバイスI/F112に接続されたときに、ストレージ152等からメモリ111にロードされる。ドライバA122は、アプリケーションプログラム120がデバイスA151との間でデータの授受を行う際に、OS121とバスドライバ123との間で行われるデータの授受を制御する。なお、詳細は後述するが、本実施形態においては、ドライバA122は、フィルタドライバ143を介してバスドライバ123との間でデータを授受する。
バスドライバ123は、ドライバA122とデバイスI/F112との間で行われるデータの授受を制御し、クライアント101とデバイスA151との間の通信を制御するプログラムである。例えばバスドライバ123は、デバイスA151から送信されてくる、デバイスA151の動作状態を示すデータや各種割り込み信号等をデバイスI/F112から受け取ると、ドライバA122に対してそれらのデータを受け渡す。なお、詳細は後述するが、本実施形態においては、バスドライバ123は、フィルタドライバ143を介してドライバA122との間でデータを授受する。
デバイス管理マネージャプログラム125は、クライアント101に接続されているデバイスA151を、情報処理サーバ102のOS131が制御可能とするためのプログラムである。以下、クライアント101に接続されているデバイスを情報処理サーバ102のOS131が制御可能とすることを、デバイスをリモート利用するとも記す。デバイス管理マネージャプログラム125は、クライアント側基本制御プログラム141、クライアント側テーブル処理プログラム142、フィルタドライバ143を備えて構成される。
フィルタドライバ143は、ドライバA122やOS121に対してはバスドライバ123としての処理を実行し、バスドライバ123に対してはドライバA122やOS121としての処理を実行するプログラムである。これにより、フィルタドライバ143は、バスドライバ123からドライバA122に対して引き渡されるデータを取得(以下、フィルタリングとも記す)して、クライアント側基本制御プログラム141に引き渡すことが可能となる。またフィルタドライバ143は、クライアント側基本制御プログラム141から引き渡されたデータを、あたかもドライバA122からのデータであるかのように、バスドライバ123に引き渡すことが可能となる。詳細は後述するが、これにより、クライアント側基本制御プログラム141が情報処理サーバ102からデバイスA151へのリクエストを受信した場合に、フィルタドライバ143は、そのリクエストをデバイスA151に送信することが可能となり、また、フィルタドライバ143は、そのリクエストに対するデバイスA151からのレスポンスを取得して、クライアント側基本制御プログラム141を通じて情報処理サーバ102に返すことが可能となる。また、デバイスA151の接続や取り外し等のイベントが発生した場合に、フィルタドライバ143が当該デバイスA151の識別情報を取得し、クライアント側基本制御プログラム141に通知することにより、デバイスA151の接続や取り外し等のイベントを監視することも可能となる。
クライアント側テーブル処理プログラム142は、クライアント側基本制御プログラム141からの指示に従って、デバイス管理テーブル161の作成やデータ格納、更新、取得処理などを行うプログラムである。
クライアント側基本制御プログラム141は、フィルタドライバ143によって取得されたデータを情報処理サーバ102へ送信し、情報処理サーバ102から送信されたデータをフィルタドライバ143へ引き渡す処理を行うプログラムである。またクライアント側基本制御プログラム141は、クライアント側テーブル処理プログラム142に対して、デバイス管理テーブル161の更新等の処理を指示する。
ストレージ152には、デバイス管理テーブル161が記憶されている。デバイス管理テーブル161の一例を図2に示す。
デバイス管理テーブル161は、各デバイスの識別情報であるベンダID301と製品ID302、および個々の製品に個別に割り当てられるシリアル番号303、当該デバイスに対応するドライバのドライバファイルパス304、バージョン305、および同ドライバの設定ファイルパス306、当該デバイスの動作状態を示すアクティブ307から構成される。
ベンダID301、製品ID302、シリアル番号303は、デバイスを、個々の製品の区別を含めて一意に識別するためにデバイス管理マネージャプログラム125が使用する。ドライバファイルパス304、バージョン305、設定ファイルパス306は、ベンダID301、製品ID302、シリアル番号303により一意に識別されるデバイスに対応した、クライアント101にインストール済みであるデバイスドライバについての情報である。ドライバファイルパス304には、当該デバイスドライバに対応するドライバファイルが存在するストレージ152内のパス及びドライバファイルの名称が格納される。設定ファイルパス306には、当該デバイスドライバに対応するドライバ設定ファイルが存在するストレージ152内のパス及びドライバ設定ファイルの名称が格納される。
バージョン305は、ドライバファイルパス304に存在するドライバファイルのバージョンを示しており、情報処理サーバ102でドライバの導入状態をチェックし、情報処理サーバ102に導入されているドライバとのバージョン比較を行うときに使用される。詳細は後述する。
アクティブ307は、当該デバイスが動作中(OS121が当該デバイスを制御中)のとき「Yes」が設定され、動作中でない(OS121が当該デバイスを制御終了中)とき、「No」が設定される。この値は、デバイス管理マネージャプログラム125が、情報処理サーバ102に対して、アクティブデバイス情報(デバイス管理テーブル161のデータのうち、アクティブ307が「Yes」となっているデータ全てで構成される情報)を送信する前に、クライアント101内にアクティブなデバイスが存在するか、また、どのデバイスがアクティブであるか、という判断を行う際に使用される。また、アクティブ307の値の更新は、デバイスの接続や取り外しをデバイス管理マネージャプログラム125が検知したときに、デバイス管理マネージャプログラム125内のクライアント側テーブル処理プログラム142が行う。
デバイス管理テーブル161内の各値は、クライアント101において使用可能である全てのデバイスについて、管理者があらかじめ設定しておくこととしても良い。なお、管理者がクライアント101の利用者に対して、ストレージ152のデータを更新する権限を与えずに、内容を参照する権限しか与えない運用を行う場合には、当該デバイスの動作状態が変化したときに、アクティブ307の値を更新するのではなく、バッファ内に、ベンダID301、製品ID302、シリアル番号303、およびアクティブ307の値を保持し、更新することによって代用してもよい。
次に、ストレージ152に記憶されるネットワーク接続状態バッファ167について説明する。図4は、ネットワーク接続状態バッファ167を表す図の一例である。ネットワーク接続状態バッファ167は、クライアント101のリモート接続状態を一時的に保存しておくためのバッファである。ネットワーク接続状態バッファ167は、リモート接続状態501から構成される。
リモート接続状態501は、現在クライアント101が情報処理サーバ102に対してリモート接続を行っている場合には「接続中」が設定され、リモート接続を行っていない場合には「切断中」が設定される。リモート接続状態501の値は、クライアント101のリモート接続状態が変化したタイミングで、デバイス管理マネージャプログラム125によって更新される。値が更新されるタイミング、および値の使用用途については、図9〜図11で後述する。
図1に戻って、情報処理サーバ102のソフトウェア構成について説明する。
情報処理サーバ102は、アプリケーションプログラム130、OS131、ドライバA132、ドライバB135、バスドライバ136、情報処理サーバ制御プログラム133、デバイス管理エージェントプログラム134を実行する。なお、デバイス管理エージェントプログラム134には、情報処理サーバ側基本制御プログラム144、情報処理サーバ側テーブル処理プログラム145、インストール/アンインストール処理プログラム146、擬似バスドライバ147が含まれる。
メモリ116に読み込まれたこれらのプログラムがCPU115により実行されることにより、情報処理サーバ102の各処理部が実現される。例えば、メモリ116に格納された情報処理サーバ制御プログラム133、情報処理サーバ側基本制御プログラム144、情報処理サーバ側テーブル処理プログラム145、インストール/アンインストール処理プログラム146などの各種プログラムが、CPU115により実行されることで、各種の処理が行われる。
これらの各処理は、各プログラムをCPU115が実行することにより行なわれるが、これらは、情報処理サーバ制御部、情報処理サーバ側基本制御部、情報処理サーバ側テーブル処理部、インストール/アンインストール処理部など、各処理を行う処理部として集積回路化するなどしてハードウェアで実現することもできる。
以下、説明を簡略化するため、各種プログラムを各処理の主体として説明するが、各処理部をハードウェアで実現した場合にはその各処理部が主体となって各処理を行う。
なお、情報処理サーバ側基本制御プログラム144には、デバイスドライバ識別情報受信プログラム304、コマンド送信プログラム305、デバイスドライバ要求送信プログラム306、デバイスドライバ受信プログラム307、デバイスドライバ判定プログラム308が含まれる。これらの各プログラムがCPU115によりそれぞれ実行されることにより、特許請求の範囲に記載のデバイスドライバ識別情報受信部、コマンド送信部、デバイスドライバ要求送信部、デバイスドライバ受信部、デバイスドライバ判定部における各機能が実現される。またインストール/アンインストール処理プログラム146には、デバイスドライバインストールプログラム309が含まれる。デバイスドライバインストールプログラム309がCPU115により実行されることにより、特許請求の範囲に記載のデバイスドライバインストール部における機能が実現される。
ストレージ153には、ドライバ管理テーブル164,ドライバAファイル165、ドライバA設定ファイル166、ドライバBファイル169、ドライバB設定ファイル170、デバイスドライバ管理設定テーブル168が記憶される。
ドライバAファイル165はドライバA132に対応するドライバファイルであり、ドライバA設定ファイル166はドライバA132に対応するドライバ設定ファイルである。ドライバBファイル169はドライバB135に対応するドライバファイルであり、ドライバB設定ファイル170はドライバB135に対応するドライバ設定ファイルである。
情報処理サーバ制御プログラム133は、クライアント101に入力されたデータ(入力データ)を、クライアント制御プログラム124を通じて受信し、その入力データに応じて実行された情報処理の実行結果を示す画面データをクライアント101に送信するプログラムである。また情報処理サーバ制御プログラム133は、ユーザがクライアント101から情報処理サーバ102にログインをするための各種制御を実行する。
アプリケーションプログラム130は、クライアント101から送信されてくる入力データに応じた情報処理を実行するプログラムである。例えば、ワードプロセッサ用プログラムや、表計算プログラム、データベース管理プログラム、電子メール送受信プログラム等とすることができる。アプリケーションプログラム130は、OS131、ドライバB135、バスドライバ136を通して、デバイスI/F117に接続されたデバイスB154にアクセスし、データの入出力などを行うことができる。
OS131は、情報処理サーバ102を構成する各種ハードウェアの制御を司るプログラムである。またアプリケーションプログラム130がデバイスB154との間でデータの入出力を行う際に、アプリケーションプログラム130とドライバB135との間で行われるデータの授受を制御する。
OS131は、情報処理サーバ102の各デバイスI/F117にデバイスB154が接続されているか否かや、それらのデバイスB154を利用可能か否かを管理している。
デバイスI/F117にデバイスB154が接続されると、デバイスB154から、デバイスB154のベンダIDや製品ID、シリアル番号を含むデバイス識別情報が出力される。デバイス識別情報は、デバイスB154がデバイスI/F117に接続された際にデバイスB154から出力されるプラグインデータに含まれている場合もある。バスドライバ136は、そのデバイス識別情報をデバイスB154から受け取ると、デバイスI/F117の識別情報と共にOS131に引き渡す。そしてOS131は、そのデバイス識別情報を、デバイスI/F117の識別情報と対応付けてメモリ116に記憶する。またOS131は、そのデバイス識別情報によりデバイスB154を特定する。そしてOS131は、上記特定したデバイスB154を制御するためのドライバB135をメモリ116にロードする。ドライバB135のインストールは、ストレージ153に記憶されているドライバB設定ファイル170に従って、ドライバBファイル169をドライバB135としてメモリ116にロードすることにより行われる。そしてOS131は、デバイスB154を制御中である旨のフラグをセットする。これにより、OS131はデバイスB154を利用可能になる。このようにしてOS131は、デバイスB154を利用可能とするためのプラグイン処理を実行する。
一方、デバイスB154がデバイスI/F117から取り外されると、バスドライバ136により検知される。バスドライバ136はその旨のメッセージを、デバイスI/F117の識別情報と共にOS131に通知する。そうするとOS131は、そのデバイスI/F117の識別情報と対応付けてメモリ116に記憶されているデバイス識別情報に基づいて、取り外されたデバイスB154を特定する。そしてOS131は、デバイスB154を制御終了中である旨のフラグをセットする。これにより、OS131はデバイスB154を利用中止する。このようにしてOS131は、デバイスB154を利用中止するためのプラグアウト処理を実行する。この後、ドライバB135をアンインストールするようにしても良い。
ドライバB135は、デバイスB154を制御するためのプログラム(デバイスドライバ)である。例えば、デバイスB154がプリンタである場合には、そのプリンタの起動や印刷用紙の給紙、印字サイズや画像解像度の制御等を行う。ドライバB135は、元々ストレージ153等にドライバBファイル169として記憶されており、デバイスB154が情報処理サーバ102に接続されたときに、ストレージ153等からメモリ116にロードされる。ドライバB135は、アプリケーションプログラム130がデバイスB154との間でデータの入出力を行う際に、OS131とバスドライバ136との間で行われるデータの授受を制御する。
ドライバA132は、デバイスA151を制御するためのプログラム(デバイスドライバ)である。例えば、デバイスA151がプリンタである場合には、そのプリンタの起動や印刷用紙の給紙、印字サイズや画像解像度の制御等を行う。ドライバA132は、元々ストレージ153等にドライバAファイル165として記憶されており、デバイスA151がクライアント101に接続されたときに、ストレージ153等からメモリ116にロードされる。ドライバA132は、アプリケーションプログラム130がデバイスA151との間でデータの入出力を行う際に、OS131と擬似バスドライバ147との間で行われるデータの授受を制御する。
バスドライバ136は、ドライバB135とデバイスI/F117との間で行われるデータの授受を制御し、情報処理サーバ102とデバイスB154との間の通信を制御するプログラムである。例えばバスドライバ136は、デバイスB154から送信されてくる、デバイスB154の動作状態を示すデータや各種割り込み信号等をデバイスI/F117から受け取ると、ドライバB135に対してそれらのデータを受け渡す。
デバイス管理エージェントプログラム134は、クライアント101に接続されているデバイスA151を情報処理サーバ102のOS131が制御できるようにするためのプログラムである。デバイス管理エージェントプログラム134は、情報処理サーバ側基本制御プログラム144、情報処理サーバ側テーブル処理プログラム145、インストール/アンインストール処理プログラム146、擬似バスドライバ147を備えて構成される。
擬似バスドライバ147は、情報処理サーバ102の仮想的なバスドライバとして振る舞うプログラムである。つまり、擬似バスドライバ147は、ドライバA132に対して、あたかもドライバA132とデバイスI/F117との間で行われるデータの授受を制御しているかのように処理を実行する。このため、ドライバA132は、デバイスI/F117にデバイスA151が接続されている場合と同様に、擬似バスドライバ147との間でデータの授受を行う。
また上述したように、クライアント101のデバイスI/F112にデバイスA151が接続された場合には、デバイスA151のメーカや品番等を含むデバイス識別情報がフィルタドライバ143により取得され、そのデバイス識別情報が、デバイスI/F112の識別情報と共にクライアント側基本制御プログラム141から情報処理サーバ側基本制御プログラム144に送信されるが、擬似バスドライバ147は、情報処理サーバ側基本制御プログラム144からデバイス識別情報及びデバイスI/F112の識別情報を受け取ると、OS131に引き渡す。そしてOS131は、クライアント101のデバイスI/F112に接続されたデバイスA151のプラグイン処理を行う。
擬似バスドライバ147は、アプリケーションプログラム130がデバイスA151にアクセスしようとするなどして、デバイスA151へのリクエストが発生し、ドライバA132からそのリクエストを受信した場合には、そのリクエストを情報処理サーバ側基本制御プログラム144を通じてクライアント101に送信する。擬似バスドライバ147は、そのリクエストに対するレスポンスを情報処理サーバ側基本制御プログラム144から受信すると、レスポンスをドライバA132に返す。
またクライアント101のデバイスI/F112からデバイスA151が取り外された場合には、その旨のメッセージが、デバイスI/F112の識別情報と共に、フィルタドライバ143からクライアント側基本制御プログラム141を通じて情報処理サーバ側基本制御プログラム144に送信されるが、擬似バスドライバ147は、情報処理サーバ側基本制御プログラム144から上記メッセージを受け取ると、デバイスI/F112の識別情報と共にOS131に引き渡す。OS121は、このデバイスI/F112の識別情報に基づいて取り外されたデバイスA151を特定し、デバイスA151のプラグアウト処理を実行する。
情報処理サーバ側テーブル処理プログラム146は、情報処理サーバ側基本制御プログラム144からの指示に応じて、ドライバ管理テーブル164の作成やデータ格納、更新、取得処理などを行うプログラムである。
インストール/アンインストール処理プログラム146は、情報処理サーバ側基本制御プログラム144からの指示に応じて、クライアント101から送信されてきたドライバAファイル162およびドライバA設定ファイル163を使用したドライバのインストール処理や、デバイスのリモート利用後における、ドライバのアンインストール処理などを行う。
情報処理サーバ側基本制御プログラム144は、擬似バスドライバ147が取得したデータをクライアント101へ送信し、かつクライアント101から送信されたデータを擬似バスドライバ147へ送信する。また、情報処理サーバ側テーブル処理プログラム145、インストール/アンインストール処理プログラム146に対して、処理を指示する。
ストレージ153には、ドライバ管理テーブル164が記憶されている。ドライバ管理テーブル164の一例を図3に示す。
ドライバ管理テーブル164は、各デバイスの識別情報であるベンダID401と製品ID402、および当該デバイスに対応するドライバの、ドライバファイル名403、バージョン404、設定ファイル名405、導入状態406、退避パス407、リモート利用408から構成される。
ベンダID401と製品ID402は、デバイスの識別を行うために使用する。
ドライバファイル名403は、ベンダID401と製品ID402で識別されるデバイスに対応するドライバファイルのファイル名を表し、同様に設定ファイル名405は、ベンダID401と製品ID402で識別されるデバイスに対応するドライバ設定ファイルのファイル名を表す。
バージョン404は、ドライバファイル名403が示すドライバファイルのバージョンを示しており、情報処理サーバ102でドライバの導入状態をチェックし、クライアント101に導入されているドライバとのバージョン比較を行うときに使用される。
導入状態406は、情報処理サーバ102における各デバイスドライバの導入状態をデバイス管理エージェントプログラム134がチェックするときに参照される。導入状態406は、導入状態によって、「一時退避」、「退避」、「リモート導入中」、「導入済」、「無し」という各値が設定される。
「一時退避」は、情報処理サーバ102がクライアント101に接続されているデバイスをリモート利用している間に、リモート利用を開始する前にインストールされていたドライバを後で復元して再インストール可能にしておくために、一時的にアンインストールして退避している状態を表す。
「退避」は、利用者が次に情報処理サーバ102に対してリモート接続を行う場合に、ドライバの送信は行わずに、情報処理サーバ102内から直接インストールできるようにしておくために、ドライバファイルおよびドライバ設定ファイルをストレージ153内に退避してある状態を表す。
「リモート導入中」は、クライアント101から送信されてきたドライバファイルおよびドライバ設定ファイルを元にドライバをインストールした結果、現在そのドライバを利用中であることを表す。
「導入済」は、当該ドライバが情報処理サーバ102にインストール済みであり、利用可能である状態を表す。
「無し」は、当該ドライバがインストールされておらず、かつ、退避中でもない状態を表す。
導入状態406の値は、各デバイスドライバの導入状態が変化したタイミングで、デバイス管理エージェントプログラム134内の情報処理サーバ側テーブル処理プログラム145によって更新される。値が更新されるタイミング、および値の使用用途の詳細については、図13〜図16において後述する。
退避パス407は、導入状態406が「一時退避」または「退避」の場合にのみ使用され、各々該当するドライバファイルおよびドライバ設定ファイルの、ストレージ153内の退避先パスを表している。退避パス407は、当該ドライバを退避先パスからインストールする際に参照される。
リモート利用408は、当該ドライバがリモート利用中かどうかを表しており、リモート利用中の場合は「Yes」、リモート利用中でない場合は「No」が設定される。リモート利用408は、クライアント101から情報処理サーバ102へのリモート切断処理の際に、リモート利用中のドライバを特定するために使用される。
図5は、情報処理サーバ102のデバイスドライバの管理方法についての情報を設定するための、デバイスドライバ管理設定テーブル168の一例である。このデータは端末利用設定601および退避パス設定602から構成され、情報処理サーバ102内のOS131のレジストリ内に、管理者によってあらかじめ設定される。
端末利用設定601は、情報処理サーバ102の操作元のクライアント101が1つだけであり、他のクライアント101から接続される可能性がない運用を行う場合には、「専用」と設定される。一方、情報処理サーバ102が複数のクライアント101から接続される可能性のある運用を行う場合には「共用」と設定される。
端末利用設定601は、デバイスドライバをクライアント101からリモート導入した後、リモート切断をするときに、情報処理サーバ102にデバイスドライバを残すのか、退避後アンインストールするのか、という判断をするときに、デバイス管理エージェントプログラム134によって使用される。
退避パス設定602には、ドライバファイルおよびドライバ設定ファイルを退避する際に退避先となるストレージ153内のパスが設定され、ドライバファイルおよびドライバ設定ファイルを退避するとき、またはドライバ管理テーブル164の退避パス407を更新するときなどにデバイス管理エージェントプログラム215が参照する。
図6は、本実施形態におけるリモート操作システム1000のシステム構成を表す図の一例である。図6に示すリモート操作システム1000では、図1のクライアント101、情報処理サーバ102に加えて、データサーバ201を備える構成となっている。
データサーバ201は、図示しないが、図1のクライアント101と同様のハードウェア構成を持ち、また、OSや各種アプリケーションを備えている。データサーバ201内のストレージ254には、ドライバBファイル261、ドライバCファイル262など、複数のドライバファイルが図示しないドライバ設定ファイルと対応付けて格納されている。
矢印271は、情報処理サーバ102のストレージ153内にドライバAファイル162が存在しない場合に、クライアント101のストレージ152内のドライバAファイル162を図示しないドライバA設定ファイル163と共に送信するときの、データの流れを表している。
矢印272は、情報処理サーバ102のストレージ153内にドライバBファイル261が存在しない場合に、データサーバ201のストレージ254内から、ドライバBファイル261を、図示しないドライバB設定ファイルと共にダウンロードするときの、データの流れを表している。
図7は、利用者がクライアント101を起動してから、情報処理サーバ102にログインし、クライアント101に接続されたデバイスA151を情報処理サーバ102から利用できるようにするまでの、システム全体の処理フローを表す図の一例である。
利用者はクライアント101に起動要求を行う(701)。利用者からの起動要求を受けたクライアント101は、ストレージ152から、OS121、バスドライバ123、アプリケーションプログラム120、デバイス管理マネージャプログラム125のクライアント側基本制御プログラム141などをメモリ111にロードし、起動する(702)。
次に、利用者によってデバイスA151がクライアント101に挿入されると(703)、デバイスA151からプラグインデータが出力される。プラグインデータには、デバイスA151の識別情報が含まれている。そしてクライアント101内のバスドライバ123が挿入を検知し、OS121に対してデバイスA151に適合したデバイスドライバの利用準備を行うように指示を出す。指示を受けたOS121は、OS121のレジストリに登録された情報からドライバAファイル162の場所を探しに行き、ドライバAファイル162が見つかると、ドライバAファイル162をメモリ111にロードする。以降、ドライバAファイル162はドライバA122として動作する。
一方、フィルタドライバ143もドライバA122と同様の処理を経てメモリ111にロードされる。ドライバA122およびフィルタドライバ143がメモリ111にロードされ、フィルタドライバ143は、OS121がデバイスA151を認識するためのプラグインデータをOS121とデバイスA151間で送受信する。フィルタドライバ143はOS121からドライバA122、バスドライバ123を経由してデバイスA151に送受信されるデータをフィルタリングすることで監視し、OS121がデバイスを認識するためのプラグインデータをフィルタドライバ143に保存する。
プラグインデータは、後述するステップ721において、情報処理サーバ102でのプラグイン処理を行うときに使用される。また、フィルタドライバ143はデバイスA151が接続されたことをクライアント側基本制御プログラム141に通知(以下、プラグイン通知とも記す)する。通知の際は、デバイスA151のベンダID、製品ID、シリアル番号等のデバイス識別情報も併せて通知する(704)。またドライバA122の名称やバージョン等のドライバA122の識別情報を通知するようにしてもよい。
一方、プラグイン通知を受信したクライアント側基本制御プログラム141は、受信したデバイスA151のベンダID、製品ID、シリアル番号等のデバイス識別情報、あるいはドライバA121の識別情報に基づいて、デバイス管理テーブル161内の、対応するデバイスの行の、アクティブ307の値を「Yes」に更新する(705)。以上により、デバイスA151がクライアント101において、クライアント101から使用できる状態となる(706)。
次に、利用者がクライアント101に対してリモート接続開始を指示すると(707)、クライアント101は情報処理サーバ102へリモート接続開始要求を送信する(708)。リモート接続開始の指示は、利用者のIDとパスワードの入力に相当し、リモート接続開始要求を受信した情報処理サーバ102では、セッションを生成し、ユーザの認証を行い(709)、クライアント101に対し、接続完了通知を送信する(710)。
接続完了通知を受信すると、クライアント101内にアクティブなデバイスが存在する場合は、クライアント制御プログラム124はデバイス共有準備中である旨のメッセージを表示して利用者に通知し(711)、情報処理サーバ102にはアクティブデバイス情報を送信する(712)。アクティブデバイス情報を受信した情報処理サーバ102は、そのデバイスに対応したドライバの導入状態をチェックし(713)、同一名称のドライバファイルが情報処理サーバ102内に存在しない、または導入済であっても、クライアント101内のドライバA122とバージョンが異なる場合には、クライアント101に対してドライバの送信要求を行う(714)。ドライバの送信要求を受信したクライアント101は当該ドライバを準備の上(715)、ストレージ152内のドライバAファイル162およびドライバA設定ファイル163を情報処理サーバ102に送信する(716)。各ファイルの存在するパスについては、デバイス管理テーブル161内のドライバファイルパス304、設定ファイルパス306を参照することによって取得する。
なお、ステップ714〜716については、ドライバの送信要求を、図6に示したデータサーバ201に対して行い、該当するドライバファイルおよびドライバ設定ファイルをデータサーバ201から受信するように構成しても良い。
ドライバAファイル162およびドライバA設定ファイル163を受信すると、デバイス管理エージェントプログラム134は、受信したドライバAファイル162およびドライバA設定ファイル163を使用することによって、ドライバA132のインストール処理を行う(716)。インストール処理が完了すると、デバイス管理エージェントプログラム134は、ドライバ管理テーブル164の更新を行う(717)。ドライバ管理テーブル164の更新内容としては、ベンダID401、製品ID402、ドライバファイル名403、バージョン404、設定ファイル名405については、ステップ712で受信したアクティブデバイス情報に基づいて更新する。ただし、ドライバファイル名403、設定ファイル名405については、ファイル名より前のパスの部分は削除した上で格納する。また、導入状態406を「リモート導入中」、リモート利用408を「Yes」と更新する。
なお、情報処理サーバ102に既にドライバA122とバージョンも含めて同一のドライバA132が導入済である場合には、713〜717までのステップは行われないが、ステップ718において、リモート利用408を「Yes」に更新することだけは実行する。
次に、情報処理サーバ102は、クライアント101に対してドライバ準備完了通知を送信する(718)。ドライバ準備完了通知を受信したクライアント101は、アクティブであるデバイスA151のプラグイン指示を情報処理サーバ102に行う(720)。プラグイン指示(720)を行う際、プラグインデータもクライアント101から情報処理サーバ102に送信する。プラグイン指示を受信した情報処理サーバ102はプラグイン処理を行う(721)。
ここに、プラグイン処理とは、情報処理サーバ116にデバイスA151が直接挿入された場合と同じ手続きをデバイス管理エージェントプログラム134とOS131とドライバA132の間で再現する処理であり、擬似バスドライバ147がドライバA132に対してプラグインデータを擬似応答することにより情報処理サーバ102で仮想的にデバイスを認識する。
情報処理サーバ102で仮想的にデバイスを認識した後、情報処理サーバ102のOS131やアプリケーションプログラム130からデバイスA151にリクエストがあった場合は、ネットワーク1100を経由して情報処理サーバ102の擬似バスドライバ147からクライアント101のフィルタドライバ143にリクエストを送信する。
クライアント101のフィルタドライバ143では受信したリクエストをデバイスA151で処理し、その処理結果であるレスポンスを情報処理サーバ102の擬似バスドライバ147に送信する。
なお、クライアント101のフィルタドライバ143ではクライアント101のOS121やアプリケーションプログラム120からのリクエストと情報処理サーバ102のOS131やアプリケーションプログラム130のリクエストを排他的に制御している。排他の制御は、例えば、セマフォ等により各リクエストに対して同期を取ることにより行うことができる。
擬似バスドライバ147は、情報処理サーバ102のOS131やアプリケーションプログラム130に、クライアント101のフィルタドライバ143から受信したレスポンスを返信する。これにより、情報処理サーバ102のOS131やアプリケーションプログラム130からクライアント101に接続されたデバイスA151にアクセス可能となる。
プラグイン処理完了後、情報処理サーバ102からクライアント101へプラグイン完了通知が送信され(722)、クライアント制御プログラム124は利用者に対してデバイス共有準備が完了した旨のメッセージを表示して通知する(723)。
以上の処理によって、デバイス管理マネージャプログラム125とデバイス管理エージェントプログラム134が通信することにより、デバイスA151は情報処理サーバ102から直接接続されているときと同様に動作することとなり、すなわちデバイスA151の共有が開始される(724)。
なお、図7におけるデバイス管理マネージャプログラム125とデバイス管理エージェントプログラム134内の各処理プログラムが行う処理の詳細については、図9〜図16で後述する。
図8は、デバイスA151がクライアント101と情報処理サーバ102によって共有された状態から、利用者がデバイスA151を取り外し、クライアント101からの情報処理サーバ102の操作を終了するまでのシステム全体の処理フローを表す図の一例である。
利用者がデバイスA151の取り外しを行うと(801)、OS121がそれを検知し、デバイス管理マネージャプログラム125に通知する。
デバイス管理マネージャプログラム125は、通知された情報に基づいてデバイス管理テーブル161を更新する(802)。引き続き、クライアント101は情報処理サーバ102へデバイス取り外し通知を行い(803)、この通知を受信した情報処理サーバ102はプラグアウト処理を行う(804)。
ここに、プラグアウト処理とは、情報処理サーバ102にデバイスA151が直接接続されていた状態から、切断を行ったときと同じ手続きをデバイス管理エージェントプログラム134とOS131とドライバA132の間で再現する処理であり、擬似バスドライバ147がドライバA132に対してプラグアウトデータを擬似応答することにより情報処理サーバ102で仮想的にデバイスが取り外されたと認識させる処理である。
これにより、デバイスA151は情報処理サーバ102から取り外された状態となり、再びプラグイン処理を行うまでは情報処理サーバ102のアプリケーションプログラム130からクライアント101に接続されたデバイスA151にアクセス不可能となる。プラグアウト処理が完了すると、情報処理サーバ102はクライアント101にプラグアウト処理完了通知を行う(805)。
次に、利用者がクライアント101に対して、情報処理サーバ102との接続の切断を指示する(806)と、クライアント101は情報処理サーバ102に対してリモート切断要求(サービス利用終了通知)を送信する(807)。リモート切断要求を受信した情報処理サーバ102のデバイス管理エージェントプログラム134は、リモートで利用中であるドライバA132をストレージ153内に退避し(808)、デバイスA151の導入状態をリモート接続前の状態に戻す処理を行う(809)。
この処理が行われた後、デバイス管理エージェントプログラム134はドライバ管理テーブル164を更新し(810)、セッションを削除し(811)、クライアント101に対して切断完了通知を行う(812)。なお、デバイスドライバ管理設定テーブル168の端末利用設定601が「共用」でない場合、ステップ808、809の処理は行われず、ステップ716でインストールされたドライバA132がそのままの状態で残ることとなる。
なお、図8におけるデバイス管理マネージャプログラム125とデバイス管理エージェントプログラム134内の各処理プログラムが行う処理の詳細については、図9〜図16で後述する。
図9は、クライアント101内のデバイス管理マネージャプログラム125のクライアント側基本制御プログラム141における、デバイスA151の接続からデバイスA151の共有開始までの処理の流れを表す図の一例である。
なお、図9および図10中の丸囲いのアルファベット記号は、情報処理サーバ102への出力、または情報処理サーバ102からの入力を表しており、他の図中に存在する同じ丸囲いのアルファベット記号の入出力に対応している。
クライアント側基本制御プログラム141は、起動後、イベントを受信する(902)まで待ち状態で待機している(901)。
クライアント側基本制御プログラム141は、デバイスA151の挿入通知をフィルタドライバ143から受信すると(903−Yes)、その挿入通知と共に受信したデバイスA151の識別情報であるベンダID301、製品ID302、シリアル番号303に対応するデバイス管理テーブル161内のアクティブ307の値を「Yes」へ更新するように、クライアント側テーブル処理プログラム142へ指示する(904)。
クライアント側基本制御プログラム141は、ネットワーク接続状態バッファ167内のリモート接続状態501が「接続中」でない場合には(905−No)、再び待ち状態901となる。
また、クライアント側基本制御プログラム141は、利用者からリモート接続開始要求を受信すると(906−Yes)、情報処理サーバ102へリモート接続開始要求を送信する(907)。またクライアント側基本制御プログラム141は、情報処理サーバ102から接続完了通知を受信すると(908)、リモート接続状態501を「接続中」に更新する(909)。
ここで、デバイス管理テーブル161内のアクティブ307を参照することにより、アクティブなデバイスがクライアント101内に存在するかどうかをチェックし、アクティブなデバイスが存在する場合には(910−Yes)、アクティブデバイス情報を情報処理サーバ102へ送信し(911)、イベント受信(913)まで待ち状態になる(912)。
クライアント側基本制御プログラム141は、ドライバの送信要求を受信した場合には(914−Yes)、当該ドライバAファイル162およびドライバA設定ファイル163を情報処理サーバ102へ送信する(915)。送信元の各ファイルの所在については、デバイス管理テーブル161のドライバファイルパス304および設定ファイルパス306を参照することによって特定する。
クライアント側基本制御プログラム141は、ドライバ準備完了通知を受信した場合には(916−Yes)、情報処理サーバ102へプラグイン指示を送信する(917)。
クライアント側基本制御プログラム141は、情報処理サーバ102からのプラグイン処理完了通知を受信すると(918)、デバイスA151の共有準備が完了し、デバイスA151の共有が開始される(723)。
図10は、クライアント101内のデバイス管理マネージャプログラム125のクライアント側基本制御プログラム141における、デバイスA151の共有後からリモート切断までの処理の流れを表す図の一例である。
クライアント側基本制御プログラム141は、待ち状態において(1001)、フィルタドライバ143からからデバイスA151のデバイス取り外し通知のイベントを受信すると(1002、1003−Yes)、デバイス取り外し通知と共に受信したデバイスA151の識別情報であるベンダID301、製品ID302、シリアル番号303に対応するデバイス管理テーブル161内のアクティブ307の値を「No」へ更新するように、クライアント側テーブル処理プログラム142へ指示する(1004)。
クライアント側基本制御プログラム141は、リモート接続状態501が「接続中」である場合には(1005−Yes)、デバイスの取り外し通知を情報処理サーバ102に対して送信する(1006)。
クライアント側基本制御プログラム141は、情報処理サーバ側基本制御プログラム144からプラグアウト処理完了通知を受信すると(1007)、再び待ち状態に戻る。
次にクライアント側基本制御プログラム141は、リモート切断要求のイベントを受信すると(1002、1008−YES)、情報処理サーバ102へリモート切断要求を送信し(1009)、情報処理サーバから切断完了通知を受信後(1010)、リモート接続状態を「切断中」に設定する(1011)。
図11は、クライアント101内のデバイス管理マネージャプログラム125のクライアント側テーブル処理プログラム142における処理の流れを表す図の一例である。
クライアント側テーブル処理プログラム142は、クライアント側基本制御プログラム141からのデバイス管理テーブル161の更新指示を受信すると(1101)、デバイス管理テーブル161が存在するかチェックし(1102)、存在しない場合にはデバイス管理テーブル161を作成する(1103)。
次に、クライアント側テーブル処理プログラム142は、クライアント側基本制御プログラム141から受信したデバイス特定情報により特定されるデバイスについて、デバイス管理テーブル161に記録されている情報の更新を行う(1104)。クライアント側テーブル処理プログラム142は、処理が完了すると、クライアント側基本制御プログラム141へ完了通知を行う(1105)。
図12は、情報処理サーバ102内のデバイス管理エージェントプログラム134の情報処理サーバ側基本制御プログラム144における、リモート接続時の処理の流れを表す図の一例である。
なお、図12〜図14中の丸囲いのアルファベット記号は、クライアント101への出力、またはクライアント101からの入力を表しており、他の図中に存在する同じ丸囲いのアルファベット記号の入出力に対応している。
情報処理サーバ側基本制御プログラム144は、リモート切断中にクライアント101からリモート接続開始要求を受信すると(1201)、セッション生成・認証処理を行い(1202)、処理が終わると、リモート接続完了通知をクライアント101へ送信する(1203)。
図13は、情報処理サーバ102内のデバイス管理エージェントプログラム134の情報処理サーバ側基本制御プログラム144における、リモート接続後からデバイスA151の共有開始までの処理の流れを表す図の一例である。
情報処理サーバ側基本制御プログラム144は、リモート接続中にクライアント101からアクティブデバイス情報を受信すると(1301)、受信したアクティブデバイス情報と、ドライバ管理テーブル164との照合を情報処理サーバ側テーブル処理プログラム145へ指示する(1302)。この際、情報処理サーバ側基本制御プログラム144は、デバイスのベンダID301、製品ID302の情報を情報処理サーバ側テーブル処理プログラム145に送信し、ベンダID301、製品ID302で識別されるデバイスA132に対応するドライバの導入状態406とバージョン404を、情報処理サーバ側テーブル処理プログラム145から照合結果として受信する(1303)。以下、ドライバA132の導入状態によって処理が分岐する(1304)。
まず、導入状態が「退避」の場合には、ドライバの送信は不要であるが、ドライバA132のインストールは必要であるため、情報処理サーバ側基本制御プログラム144は、情報処理サーバ側テーブル処理プログラム145に対して、ドライバA132の退避パスの取得を要求する。
そして、情報処理サーバ側基本制御プログラム144は、ドライバA132のハードウェアIDをレジストリ内、もしくはドライバA設定ファイル166内に記述されたエントリから取得する(1305)。ここに、ハードウェアIDとは、ドライバ設定ファイルとデバイスを適合するために使用する、デバイスのベンダが定義するデバイスの識別文字列である。ハードウェアIDは、各ドライバ設定ファイル内に記述されており、ハードウェアIDとデバイスが一対一に対応するので、ハードウェアIDを介して、ドライバ設定ファイルとデバイスが対応付けられる。
情報処理サーバ側基本制御プログラム144は、取得結果を受信すると(1306)、取得したドライバA132の退避パスおよびハードウェアIDを入力情報として、インストール/アンインストール処理プログラム146に対して、ドライバA132のインストール処理を要求する(1309)。
情報処理サーバ側基本制御プログラム144は、インストール/アンインストール処理プログラム146からインストール完了通知を受信すると(1310)、情報処理サーバ側テーブル処理プログラム145に対して、ドライバ管理テーブル164における、ドライバA132の導入状態406を「リモート導入中」に更新するよう指示する(1311)。
次に、ステップ1304において、導入状態406が「無し」の場合には、情報処理サーバ側基本制御プログラム144は、クライアント101に対して、ドライバA122に対応するドライバAファイル162およびドライバA設定ファイル163の送信要求を行う(1307)。
情報処理サーバ側基本制御プログラム144は、クライアント101からドライバAファイル162およびドライバA設定ファイル163を受信すると(1308)、ドライバA122のハードウェアIDをレジストリ内、もしくはドライバA設定ファイル166内に記述されたエントリから取得した上で、インストール/アンインストール処理プログラム146に対して、ドライバA122のインストール処理を要求する(1309)。ステップ1310、1311については導入状態が「退避」の場合と同様に処理を行う。
次に、ステップ1304において、導入状態406が「導入済」の場合には、情報処理サーバ側基本制御プログラム144は、ステップ1301で受信したクライアント101内のドライバA122のバージョン305と、ステップ1303で受信したバージョン404を比較する(1312)。
比較の結果、バージョンが異なる場合には(1312−Yes)、情報処理サーバ側基本制御プログラム144は、既に導入済であるドライバA132に対応する、ドライバAファイル165およびドライバA設定ファイル166を一時退避させる(1313)。一時退避先のパスについては、例えば、退避パス設定602のパスに、現在リモート接続中の利用者のユーザIDを組み合わせたパスとする。
引き続き、情報処理サーバ側基本制御プログラム144は、ドライバ管理テーブル164において、一時退避したドライバの導入状態406を「一時退避」、退避パス407を一時退避先のパスの値に更新するように、情報処理サーバ側テーブル処理プログラム145に指示する(1314)。その後は導入状態406が「無し」の場合のステップ1307〜1311と同様の処理を行う。
ステップ1312の比較の結果、バージョンが同じである場合には(1312−No)、ドライバの送受信処理およびインストール処理は行われない。
以上の処理により、情報処理サーバ102側でのドライバA132(またはドライバA122)の準備が完了すると、情報処理サーバ側基本制御プログラム144は、クライアント101に対して、ドライバ準備完了通知を行う(1315)。その後、クライアント101からプラグイン指示を受信すると(1316)、情報処理サーバ側基本制御プログラム144は、擬似バスドライバ147に対してプラグイン指示を行う(1317)。
擬似バスドライバ147から、プラグイン処理の完了通知を受信すると(1318)、情報処理サーバ側基本制御プログラム144は、クライアント101に対してプラグイン処理完了通知を送信する(1319)。
以上の処理により、デバイスA151の共有準備が完了し、デバイスA151の共有が開始される(723)。
図14は、情報処理サーバ102内のデバイス管理エージェントプログラム134の情報処理サーバ側基本制御プログラム144における、デバイスA151の共有後からリモート切断までの処理の流れを表す図の一例である。
情報処理サーバ側基本制御プログラム144は、クライアント101からデバイス取り外し通知を受信すると(1403−Yes)、擬似バスドライバ147に対して、デバイス取り外し通知を行う(1404)。情報処理サーバ側基本制御プログラム144は、擬似バスドライバ147からプラグアウト処理完了通知を受信すると(1405)、プラグアウト処理完了通知をクライアント102に対して送信する(1406)。
また情報処理サーバ側基本制御プログラム144は、クライアント101からリモート切断要求を受信すると(1402−Yes)、リモート利用中であるドライバの情報取得要求を情報処理サーバ側テーブル処理プログラム145に対して行う(1407)。情報処理サーバ側基本制御プログラム144は、情報処理サーバ側テーブル処理プログラム145から情報取得結果を受信すると(1408)、以下、リモート利用中であるドライバA132の導入状態によって処理が分岐する(1409)。
導入状態が「リモート導入中」であった場合には、情報処理サーバ側基本制御プログラム144は、端末利用設定601が「共用」であるかどうかチェックし、「共用」である場合には(1410−Yes)、リモート利用中であるドライバA132の退避処理を行う(1411)。ドライバの退避処理とは、ドライバA132に対応するドライバAファイル165とドライバA設定ファイル166をストレージ153内の退避先パスにコピーする処理のことを意味する。また、各ファイルの退避先パスは、退避パス設定602に設定された値とする。
ここで、リモート利用前のドライバが一時退避中でない場合、すなわちリモート接続前にドライバA132が導入済でなかった場合には(1412−No)、情報処理サーバ側基本制御プログラム144は、リモート利用中であるドライバA132のアンインストール処理要求を、インストール/アンインストール処理プログラム146に対して行い(1414)、アンインストール処理の完了後、アンインストール完了通知を受信する(1414)。
その後、情報処理サーバ側基本制御プログラム144は、ドライバ管理テーブル164におけるリモート利用中であるドライバA132の導入状態406、退避パス407、リモート利用408の値を各々現在の状態に更新するように、情報処理サーバ側テーブル処理プログラム145に指示する(1418)。
一方、リモート利用前のドライバ(このドライバを暫定的にドライバA132aと書く)が一時退避中である場合、すなわちリモート接続前にドライバA132が導入済であったが、バージョン305が異なっていた場合には(1412−Yes)、情報処理サーバ側基本制御プログラム144は、リモート接続前に導入済で現在一時退避中であるドライバA132aのインストール処理要求を、インストール/アンインストール処理プログラム146に対して行い(1415)、インストール処理の完了後、インストール完了通知を受信する(1416)。
その後、情報処理サーバ側基本制御プログラム144は、ドライバ管理テーブル164におけるリモート利用中であるドライバA132、および一時退避中であったドライバA132aの導入状態406、退避パス407、リモート利用408の値を各々現在の状態に更新するように、情報処理サーバ側テーブル処理プログラム145に指示する(1418)。
ステップ1410において、端末利用設定601が「専用」であった場合には(1410−No)、情報処理サーバ側基本制御プログラム144は、ドライバ管理テーブル164におけるリモート利用中であるドライバA132の導入状態406を「導入済」に更新するように、情報処理サーバ側テーブル処理プログラム145に指示する(1417、1418)。
ステップ1409において、導入状態が「導入済」であった場合には、情報処理サーバ側基本制御プログラム144は、ドライバ管理テーブル164におけるリモート利用中であるドライバA132に対応するリモート利用408の値を「No」に更新するように、情報処理サーバ側テーブル処理プログラム145に指示する(1417、1418)。
情報処理サーバ側基本制御プログラム144は、ステップ1418までの処理が完了すると、セッションを削除し(1419)、切断完了通知をクライアント101に対して送信する(1420)。以上の処理により、リモート切断処理が完了となる。
図15は、情報処理サーバ102内のデバイス管理エージェントプログラム134の情報処理サーバ側テーブル処理プログラム145における処理の流れを表す図の一例である。
情報処理サーバ側テーブル処理プログラム145は、情報処理サーバ側基本制御プログラム144からの指示を受信すると(1501)、指示内容にしたがって、以下のような処理を行う。
情報処理サーバ側テーブル処理プログラム145は、情報処理サーバ側基本制御プログラム144からドライバ管理テーブル164との照合指示を受信した場合は(1502−Yes)、指示と同時に、デバイスのベンダID、製品IDの情報も受信する。情報処理サーバ側テーブル処理プログラム145は、まず、ドライバ管理テーブル164が存在するかチェックし(1503)、存在しない場合はドライバ管理テーブル164を作成する(1505)。また、ドライバ管理テーブル164が存在する場合には(1503−Yes)、情報処理サーバ側基本制御プログラム144から受信したベンダID、製品IDで識別されるデバイスに対応したドライバの情報がドライバ管理テーブル164に存在するかチェックし(1504)、存在した場合には、その対応したドライバの導入状態406を情報処理サーバ側基本制御プログラム144に送信する(1508)。
情報処理サーバ側テーブル処理プログラム145は、情報処理サーバ側基本制御プログラム144から受信したベンダID、製品IDで識別されるデバイスに対応したドライバの情報がドライバ管理テーブル164に存在しない場合(1504−No)、またはステップ1505でドライバ管理テーブル164を作成後は、ベンダID、製品IDで識別されるデバイスに対応したドライバの情報をOS131のレジストリから検索する(1506)。情報処理サーバ側テーブル処理プログラム145は、検索完了後、検索した結果をドライバ管理テーブル164に保存する(1507)。
この時、情報処理サーバ側テーブル処理プログラム145は、例えば、情報処理サーバ側基本制御プログラム144から受信したベンダID、製品IDで識別されるデバイスに対応するドライバA132がインストールされていた場合には、ベンダID401、製品ID402については情報処理サーバ側基本制御プログラム144から受信した情報をそのまま格納し、ドライバファイル名403、設定ファイル名405については、レジストリから得た情報を格納する。またバージョン404については、ドライバA132のファイルである、ドライバAファイル165に対してAPIを実行することによって取得した上で値を格納する。この場合、導入状態406は「導入済」、リモート利用408は「No」を格納する。
ステップ1506の結果、対応するドライバがインストールされていなかった場合には、情報処理サーバ側テーブル処理プログラム145は、ステップ1507では、ベンダID401、製品ID402には情報処理サーバ側基本制御プログラム144から受信した情報をそのまま格納し、導入状態406には「無し」を格納し、その他の項目には何も格納しない。
ステップ1507の後、情報処理サーバ側テーブル処理プログラム145は、情報処理サーバ側基本制御プログラム144から受信したベンダID、製品IDで識別されるデバイスに対応したドライバの導入状態406およびバージョン404を、照合結果として情報処理サーバ側基本制御プログラム144に送信する(1508)。
次に、情報処理サーバ側テーブル処理プログラム145は、情報処理サーバ側基本制御プログラム144からドライバの各種情報の取得要求を受信した場合(1509−Yes)、要求された情報をドライバ管理テーブル164から取得し(1510)、その結果を情報処理サーバ側基本制御プログラム144に送信する(1511)。
また情報処理サーバ側テーブル処理プログラム145は、情報処理サーバ側基本制御プログラム144からドライバ管理テーブル164の更新指示を受信した場合(1512−Yes)は、受信した更新情報をドライバ導入テーブル164に保存する(1513)。
図16は、情報処理サーバ102内のデバイス管理エージェントプログラム134のインストール/アンインストール処理プログラム146における処理の流れを表す図の一例である。
インストール/アンインストール処理プログラム146は、情報処理サーバ側基本制御プログラム144からの指示を受信すると(1601)、指示内容がインストール処理の場合はインストール処理を実行し(1602、1603)、指示内容がアンインストール処理の場合はアンインストール処理を実行する(1602、1604)。それぞれの場合に実行する処理の詳細について、以下に述べる。
インストール処理の指示を受信した場合は、インストール/アンインストール処理プログラム146は、同時にインストール対象のドライバの、ドライバファイルおよびドライバ設定ファイルのパスと、当該ドライバが対応するデバイスのハードウェアIDを受信する。このパスとハードウェアIDを入力データとして、インストール処理を以下のような手順で行う。
まず、インストール/アンインストール処理プログラム146は、レジストリからハードウェアIDを取得するAPIを実行することによって、入力データであるハードウェアIDと適合するデバイスに対応するドライバが既にインストール済であるかどうかチェックする。
ドライバが既にインストール済である場合には、インストール/アンインストール処理プログラム146は、ハードウェアIDと適合するデバイスに対応する新規のドライバをインストールするAPIを実行することによって、入力データであるパスに存在するドライバファイルがドライバとして動作するように、上書きインストールする。
一方、ドライバがインストール済でない場合には、インストール/アンインストール処理プログラム146は、PnPデバイスのプロパティを設定するAPIと、新規に作成されたデバイスインスタンスをPnPマネージャに登録するAPIと、ハードウェアIDと適合するデバイスに対応する新規のドライバをインストールするAPIを実行することによって、入力データであるパスに存在するドライバファイルがドライバとして動作するように、新規インストールする。
一方、インストール/アンインストール処理プログラム146は、情報処理サーバ側基本制御プログラム144からアンインストール処理の指示を受信した場合は、同時に当該ドライバが対応するデバイスのハードウェアIDを受信する。このハードウェアIDを入力データとして、アンインストール処理を以下のような手順で行う。
まず、インストール/アンインストール処理プログラム146は、レジストリからハードウェアIDを取得するAPIを実行することによって、入力データであるハードウェアIDと適合するデバイスに対応するドライバがインストール済かどうかチェックする。
ドライバがインストール済でなかった場合には、インストール/アンインストール処理プログラム146は、ドライバがインストール済でなかったため、アンインストール処理ができない旨のエラーを情報処理サーバ側基本制御プログラム144に返す。
ドライバがインストール済であった場合には、インストール/アンインストール処理プログラム146は、APIを実行することによって、入力データであるハードウェアIDと適合するデバイスに対応するドライバをアンインストールする。
インストール処理またはアンインストール処理が完了すると、インストール/アンインストール処理プログラム146は、情報処理サーバ側基本制御プログラム144に対して処理完了通知を行う(1605)。
以上、本実施形態に係るリモート操作システムによれば、クライアントに接続されるデバイスを、クライアントから利用する場合と同様の利用環境で、情報処理サーバから利用することが可能となる。
情報処理サーバにデバイスが直接接続されているときと同様に、情報処理サーバからクライアントに接続されているデバイスに対する処理を行うことが可能となる。例えば、情報処理サーバ内のアプリケーションからクライアントに接続されているプリンタに直接アクセスすることが可能となるため、情報処理サーバ内に存在するデータをクライアントに接続されたプリンタに出力することができる。また、情報処理サーバに利用したいデバイスのデバイスドライバがインストールされていない場合でも、利用者や管理者が情報処理サーバにデバイスドライバのインストール作業を手動で行うことなく、利用したいときに自動的にデバイスドライバの送信・インストールが行われることによって、当該システムの運用時の利用者、管理者の負担を軽減できる。
またクライアントへデバイスを接続し、接続された当該デバイスに情報処理サーバからアクセスする際に、デバイスを接続するだけで、他の操作なしで情報処理サーバ側からクライアントに接続されたデバイスを使用可能とするために、クライアント側には、クライアントに接続されたデバイスとクライアントのアプリケーションとの間のデータの送受信と、前記デバイスと情報処理サーバとの間のデータの送受信とを排他的に制御するフィルタドライバを備えるデバイス管理マネージャを設け、情報処理サーバ側にはクライアントとの通信手段とアプリケーションとの間で仮想的にバスドライバとして機能する擬似バスドライバを備えるデバイス管理エージェントを設ける。これにより、情報処理サーバにデバイスが直接接続されたときと同様に、情報処理サーバからクライアントに接続されているデバイスに対する処理を行うことが可能となる。
またクライアント側に接続されたデバイスが特別な機能を持つデバイスドライバを必要とする特殊なデバイスであり、当該デバイスを情報処理サーバで過去に利用したことがない場合には、必要なデバイスドライバを情報処理サーバにインストールする必要がある。
このため、利用者がクライアントにデバイスを接続したことを検知し、情報処理サーバ内に当該デバイスのデバイスドライバが存在しない場合には、クライアント内に存在するデバイスドライバを情報処理サーバへ送信し、自動的にインストールを行う手段を設ける。また、情報処理サーバが複数の利用者で共用されるような場合であって、情報処理サーバの利用終了後に利用前の環境に戻す必要がある場合にも対応するため、情報処理サーバにおけるデバイスドライバの導入状態を復元する手段を設ける。
これにより、リモート操作システムにおいて、クライアントがシンクライアントなどであり、実際の処理装置は情報処理サーバ(サーバ)で行なわれる場合等であっても、情報処理サーバ側にあるデータをクライアントに直接接続されたプリンタなどのデバイスへ出力でき、また、クライアントに直接接続されたICカードリーダなどのデバイスから情報処理サーバ側にデータを出力できる。クライアントに直接接続されたデバイスを、情報処理サーバ側のアプリケーションから直接制御し、利用することができる。
以上発明を実施するための最良の形態について説明したが、上記実施の形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明はその趣旨を逸脱することなく変更、改良され得ると共に、本発明にはその等価物も含まれる。
リモート操作システムのハードウェア構成、およびプログラム構成を表す図の一例である。 ストレージに格納されたデバイス管理テーブルを表す図の一例である。 ストレージに格納されたドライバ管理テーブルを表す図の一例である。 ネットワーク接続状態バッファを表す図の一例である。 デバイスドライバ管理設定テーブルを表す図の一例である。 リモート操作システムのシステム構成を表す図の一例である。 利用者がクライアントを起動してから、情報処理サーバに接続し、デバイスを情報処理サーバから直接利用できるようにするまでの、システム全体の処理フローを表す図の一例である。 デバイスがクライアントと情報処理サーバによって共有された状態から、利用者がデバイスをプラグアウトし、クライアントからの情報処理サーバの操作を終了するまでの、システム全体の処理フローを表す図の一例である。 クライアント内のデバイス管理マネージャの基本制御プログラムにおける、デバイスのプラグインからデバイスの共有開始までの処理の流れを表す図の一例である。 クライアント内のデバイス管理マネージャの基本制御プログラムにおける、デバイスの共有後からリモート切断までの処理の流れを表す図の一例である。 クライアント内のデバイス管理マネージャのテーブル処理プログラムにおける処理の流れを表す図の一例である。 情報処理サーバ内のデバイス管理エージェントの基本制御プログラムにおける、リモート接続時の処理の流れを表す図の一例である。 情報処理サーバ内のデバイス管理エージェントの基本制御プログラムにおける、リモート接続後からデバイスの共有開始までの処理の流れを表す図の一例である。 情報処理サーバ内のデバイス管理エージェントの基本制御プログラムにおける、デバイスの共有後からリモート切断までの処理の流れを表す図の一例である。 情報処理サーバ内のデバイス管理エージェントのテーブル処理プログラムにおける処理の流れを表す図の一例である。 情報処理サーバ内のデバイス管理エージェントのインストール/アンインストール処理プログラムにおける処理の流れを表す図の一例である。
符号の説明
101 クライアント
102 情報処理サーバ
121 OS
122 ドライバA
123 バスドライバ
124 クライアント制御プログラム
125 デバイス管理マネージャプログラム
130 アプリケーションプログラム
131 OS
132 ドライバA
133 情報処理サーバ制御プログラム
134 デバイス管理エージェントプログラム
135 ドライバB
136 バスドライバ
141 クライアント側基本制御プログラム
142 クライアント側テーブル処理プログラム
143 フィルタドライバ
144 情報処理サーバ側基本制御プログラム
145 情報処理サーバ側テーブル処理プログラム
146 インストール/アンインストール処理プログラム
147 擬似バスドライバ
151 デバイスA
152 ストレージ
153 ストレージ
161 デバイス管理テーブル
164 ドライバ管理テーブル
167 ネットワーク接続状態バッファ
168 デバイスドライバ管理設定テーブル
201 データサーバ
1000 リモート操作システム

Claims (18)

  1. デバイスが接続されるサービス利用装置に通信可能に接続され、前記サービス利用装置に入力された入力データを当該サービス利用装置から受信し、前記入力データに応じて情報処理を実行し、その実行結果を前記サービス利用装置に送信するサービスを提供するサービス提供装置と、前記サービス利用装置と、を備えて構成される情報処理システムであって、
    前記サービス利用装置は、
    当該サービス利用装置により実行されるオペレーティングシステムが前記デバイスを利用する際に、前記デバイスに対してコマンドを出力するデバイスドライバと、
    前記デバイスドライバが前記デバイスに対して出力した前記コマンドを取得して前記デバイスに送信するバスドライバと、
    前記デバイスドライバの識別情報を前記サービス提供装置に送信するデバイスドライバ識別情報送信部と、
    前記サービス提供装置から送信される前記デバイスに対するコマンドを受信するコマンド受信部と、
    前記コマンド受信部が受信した前記コマンドを前記バスドライバに引き渡すフィルタドライバと、
    を備え、
    前記サービス提供装置は、
    前記サービス利用装置から、前記デバイスドライバの識別情報を受信するデバイスドライバ識別情報受信部と、
    当該サービス提供装置により実行されるオペレーティングシステムから前記デバイスを利用可能とするために、前記受信した識別情報により特定されるデバイスドライバをインストールするデバイスドライバインストール部と、
    前記オペレーティングシステムが前記デバイスを利用する際に、前記インストールされたデバイスドライバから前記デバイスに対して出力されるコマンドを取得する擬似バスドライバと、
    前記擬似バスドライバが取得した前記コマンドを前記コマンド受信部に送信するコマンド送信部と、
    を備える
    ことを特徴とする情報処理システム。
  2. 請求項1に記載の情報処理システムであって、
    前記サービス提供装置は、複数のデバイスドライバと、各デバイスドライバの識別情報と、をそれぞれ対応付けて記憶する記憶装置を備え、
    前記デバイスドライバインストール部は、前記デバイスドライバ識別情報受信部が受信した識別情報により特定されるデバイスドライバを、前記記憶装置から読み出してインストールする
    ことを特徴とする情報処理システム。
  3. 請求項1に記載の情報処理システムであって、
    前記サービス提供装置は、
    前記デバイスドライバ識別情報受信部が受信した識別情報により特定されるデバイスドライバの送信要求を前記サービス利用装置に送信するデバイスドライバ要求送信部と、
    前記デバイスドライバの送信要求に応じて前記サービス利用装置から送信されてくるデバイスドライバを受信するデバイスドライバ受信部と、
    を備え、
    前記サービス利用装置は、
    前記デバイスドライバ要求送信部から、前記デバイスドライバの送信要求を受信するデバイスドライバ要求受信部と、
    前記デバイスドライバの送信要求に応じて、前記デバイスドライバ識別情報送信部が前記サービス提供装置に送信した前記識別情報により特定されるデバイスドライバを前記デバイスドライバ受信部に送信するデバイスドライバ送信部と、
    を備え、
    前記デバイスドライバインストール部は、前記デバイスドライバ受信部が受信したデバイスドライバをインストールする
    ことを特徴とする情報処理システム。
  4. 請求項3に記載の情報処理システムであって、
    前記サービス提供装置は、複数のデバイスドライバと、各デバイスドライバの識別情報と、をそれぞれ対応付けて記憶する記憶装置と、
    前記デバイスドライバ識別情報受信部が受信した識別情報により特定されるデバイスドライバが前記記憶装置に記憶されているか否かを判定するデバイスドライバ判定部と、
    を備え、
    前記デバイスドライバ要求送信部は、前記判定の結果に応じて、前記デバイスドライバ識別情報受信部が受信した識別情報により特定されるデバイスドライバの送信要求を前記サービス利用装置に送信する
    ことを特徴とする情報処理システム。
  5. 請求項4に記載の情報処理システムであって、
    前記デバイスドライバの識別情報には、当該デバイスドライバの名称を示す情報及びバージョンを示す情報が含まれ、
    前記デバイスドライバ要求送信部は、前記デバイスドライバ識別情報受信部が受信した識別情報により特定されるデバイスドライバと名称及びバージョンのいずれもが同一のデバイスドライバが前記記憶装置に記憶されていない場合には、前記デバイスドライバ識別情報受信部が受信した識別情報により特定されるデバイスドライバと同一名称及び同一バージョンのデバイスドライバの送信要求を、前記サービス利用装置に送信する
    ことを特徴とする情報処理システム。
  6. 請求項5に記載の情報処理システムであって、
    前記デバイスドライバインストール部は、前記デバイスドライバ受信部が受信したデバイスドライバと名称は同一であるがバージョンが異なるデバイスドライバが前記サービス提供装置にインストールされている場合には、当該デバイスドライバをアンインストールした後に、前記デバイスドライバ受信部が受信したデバイスドライバをインストールする
    ことを特徴とする情報処理システム。
  7. 請求項6に記載の情報処理システムであって、
    前記デバイスドライバインストール部は、前記デバイスドライバ受信部が受信した前記デバイスドライバと名称は同一であるがバージョンが異なる前記デバイスドライバをアンインストールする際に、当該デバイスドライバを前記記憶装置に退避しておき、前記サービス提供装置が、前記サービス利用装置から前記サービスの利用を終了するサービス利用終了通知を受信した場合には、前記サービス提供装置にインストールされている前記デバイスドライバをアンインストールし、前記記憶装置に退避しておいた前記デバイスドライバをインストールする
    ことを特徴とする情報処理システム。
  8. 請求項1に記載の情報処理システムであって、
    前記デバイスドライバインストール部は、前記サービス提供装置が前記サービス利用装置から前記サービスの利用を終了するサービス利用終了通知を受信した場合には、前記サービス提供装置にインストールした前記デバイスドライバをアンインストールする
    ことを特徴とする情報処理システム。
  9. デバイスが接続されるサービス利用装置に通信可能に接続され、前記サービス利用装置に入力された入力データを当該サービス利用装置から受信し、前記入力データに応じて情報処理を実行し、その実行結果を前記サービス利用装置に送信するサービスを提供するサービス提供装置と、前記サービス利用装置と、を備えて構成される情報処理システムの制御方法であって、
    前記サービス利用装置は、デバイスドライバと、バスドライバと、デバイスドライバ識別情報送信部と、コマンド受信部と、フィルタドライバと、を備え、
    前記サービス提供装置は、デバイスドライバ識別情報受信部と、デバイスドライバインストール部と、擬似バスドライバと、コマンド送信部と、を備え、
    前記デバイスドライバが、前記サービス利用装置により実行されるオペレーティングシステムが前記デバイスを利用する際に、前記デバイスに対してコマンドを出力し、
    前記バスドライバが、前記デバイスドライバが前記デバイスに対して出力した前記コマンドを取得して前記デバイスに送信し、
    前記デバイスドライバ識別情報送信部が、前記デバイスドライバの識別情報を前記デバイスドライバ識別情報受信部に送信し、
    前記デバイスドライバ識別情報受信部が、前記デバイスドライバの識別情報を受信し、
    前記デバイスドライバインストール部が、前記サービス提供装置により実行されるオペレーティングシステムから前記デバイスを利用可能とするために、前記受信した識別情報により特定されるデバイスドライバをインストールし、
    前記擬似バスドライバが、前記オペレーティングシステムが前記デバイスを利用する際に、前記インストールされたデバイスドライバから前記デバイスに対して出力されるコマンドを取得し、
    前記コマンド送信部が、前記擬似バスドライバが取得した前記コマンドを前記コマンド受信部に送信し、
    前記コマンド受信部が、前記コマンド送信部から送信された前記デバイスに対するコマンドを受信し、
    前記フィルタドライバが、前記コマンド受信部が受信した前記コマンドを前記バスドライバに引き渡す、
    ことを特徴とする情報処理システムの制御方法。
  10. 請求項9に記載の情報処理システムの制御方法であって、
    前記サービス提供装置は、複数のデバイスドライバと、各デバイスドライバの識別情報と、をそれぞれ対応付けて記憶する記憶装置を備え、
    前記デバイスドライバインストール部は、前記デバイスドライバ識別情報受信部が受信した識別情報により特定されるデバイスドライバを、前記記憶装置から読み出してインストールする
    ことを特徴とする情報処理システムの制御方法。
  11. 請求項9に記載の情報処理システムの制御方法であって、
    前記サービス提供装置は、デバイスドライバ要求送信部と、デバイスドライバ受信部と、を備え、
    前記サービス利用装置は、デバイスドライバ要求受信部と、デバイスドライバ送信部と、を備え、
    前記デバイスドライバ要求送信部が、前記デバイスドライバ識別情報受信部が受信した識別情報により特定されるデバイスドライバの送信要求を前記デバイスドライバ要求受信部に送信し、
    前記デバイスドライバ要求受信部が、前記デバイスドライバの送信要求を受信し、
    前記デバイスドライバ送信部が、前記デバイスドライバの送信要求に応じて、前記デバイスドライバ識別情報送信部が前記デバイスドライバ識別情報受信部に送信した前記識別情報により特定されるデバイスドライバを、前記デバイスドライバ受信部に送信し、
    前記デバイスドライバ受信部が、前記デバイスドライバを受信し、
    前記デバイスドライバインストール部が、前記デバイスドライバをインストールする
    ことを特徴とする情報処理システムの制御方法。
  12. 請求項11に記載の情報処理システムの制御方法であって、
    前記サービス提供装置は、複数のデバイスドライバと、各デバイスドライバの識別情報と、をそれぞれ対応付けて記憶する記憶装置と、デバイスドライバ判定部と、を備え、
    前記デバイスドライバ判定部が、前記デバイスドライバ識別情報受信部が受信した識別情報により特定されるデバイスドライバが前記記憶装置に記憶されているか否かを判定し、
    前記デバイスドライバ要求送信部が、前記判定の結果に応じて、前記デバイスドライバ識別情報受信部が受信した識別情報により特定されるデバイスドライバの送信要求を前記サービス利用装置に送信する
    ことを特徴とする情報処理システムの制御方法。
  13. 請求項12に記載の情報処理システムの制御方法であって、
    前記デバイスドライバの識別情報には、当該デバイスドライバの名称を示す情報及びバージョンを示す情報が含まれ、
    前記デバイスドライバ要求送信部は、前記デバイスドライバ識別情報受信部が受信した識別情報により特定されるデバイスドライバと名称及びバージョンのいずれもが同一のデバイスドライバが前記記憶装置に記憶されていない場合には、前記デバイスドライバ識別情報受信部が受信した識別情報により特定されるデバイスドライバと同一名称及び同一バージョンのデバイスドライバの送信要求を、前記サービス利用装置に送信する
    ことを特徴とする情報処理システムの制御方法。
  14. 請求項13に記載の情報処理システムの制御方法であって、
    前記デバイスドライバインストール部は、前記デバイスドライバ受信部が受信したデバイスドライバと名称は同一であるがバージョンが異なるデバイスドライバが前記サービス提供装置にインストールされている場合には、当該デバイスドライバをアンインストールした後に、前記デバイスドライバ受信部が受信したデバイスドライバをインストールする
    ことを特徴とする情報処理システムの制御方法。
  15. 請求項14に記載の情報処理システムの制御方法であって、
    前記デバイスドライバインストール部は、前記デバイスドライバ受信部が受信した前記デバイスドライバと名称は同一であるがバージョンが異なる前記デバイスドライバをアンインストールする際に、当該デバイスドライバを前記記憶装置に退避しておき、前記サービス提供装置が、前記サービス利用装置から前記サービスの利用を終了するサービス利用終了通知を受信した場合に、前記サービス提供装置にインストールされている前記デバイスドライバをアンインストールし、前記記憶装置に退避しておいた前記デバイスドライバをインストールする
    ことを特徴とする情報処理システムの制御方法。
  16. 請求項9に記載の情報処理システムの制御方法であって、
    前記デバイスドライバインストール部は、前記サービス提供装置が前記サービス利用装置から前記サービスの利用を終了するサービス利用終了通知を受信した場合には、前記サービス提供装置にインストールした前記デバイスドライバをアンインストールする
    ことを特徴とする情報処理システムの制御方法。
  17. デバイスが接続されるサービス利用装置に通信可能に接続され、前記サービス利用装置に入力された入力データを当該サービス利用装置から受信し、前記入力データに応じて情報処理を実行し、その実行結果を前記サービス利用装置に送信するサービスを提供するサービス提供装置と、前記サービス利用装置と、を備えて構成される情報処理システムにおける前記サービス利用装置であって、
    当該サービス利用装置により実行されるオペレーティングシステムが前記デバイスを利用する際に、前記デバイスに対してコマンドを出力するデバイスドライバと、
    前記デバイスドライバが前記デバイスに対して出力した前記コマンドを取得して前記デバイスに送信するバスドライバと、
    前記デバイスドライバの識別情報を前記サービス提供装置に送信するデバイスドライバ識別情報送信部と、
    前記サービス利用装置から前記デバイスドライバの識別情報を受信するデバイスドライバ識別情報受信部と、前記サービス提供装置により実行されるオペレーティングシステムから前記デバイスを利用可能とするために、前記受信した識別情報により特定されるデバイスドライバをインストールするデバイスドライバインストール部と、前記オペレーティングシステムが前記デバイスを利用する際に、前記インストールされたデバイスドライバから前記デバイスに対して出力されるコマンドを取得する擬似バスドライバと、前記擬似バスドライバが取得した前記コマンドを前記サービス利用装置に送信するコマンド送信部と、を備える前記サービス提供装置から送信される前記デバイスに対するコマンドを受信するコマンド受信部と、
    前記コマンド受信部が受信した前記コマンドを前記バスドライバに引き渡すフィルタドライバと、
    を備えることを特徴とするサービス利用装置。
  18. デバイスが接続されるサービス利用装置に通信可能に接続され、前記サービス利用装置に入力された入力データを当該サービス利用装置から受信し、前記入力データに応じて情報処理を実行し、その実行結果を前記サービス利用装置に送信するサービスを提供するサービス提供装置と、前記サービス利用装置と、を備えて構成される情報処理システムにおける前記サービス提供装置であって、
    前記サービス利用装置により実行されるオペレーティングシステムが前記デバイスを利用する際に、前記デバイスに対してコマンドを出力するデバイスドライバと、前記デバイスドライバが前記デバイスに対して出力した前記コマンドを取得して前記デバイスに送信するバスドライバと、前記デバイスドライバの識別情報を前記サービス提供装置に送信するデバイスドライバ識別情報送信部と、前記サービス提供装置から送信される前記デバイスに対するコマンドを受信するコマンド受信部と、前記コマンド受信部が受信した前記コマンドを前記バスドライバに引き渡すフィルタドライバと、を備える前記サービス利用装置の前記デバイスドライバ識別情報送信部から、前記デバイスドライバの識別情報を受信するデバイスドライバ識別情報受信部と、
    前記サービス提供装置により実行されるオペレーティングシステムから前記デバイスを利用可能とするために、前記受信した識別情報により特定されるデバイスドライバをインストールするデバイスドライバインストール部と、
    前記オペレーティングシステムが前記デバイスを利用する際に、前記インストールされたデバイスドライバから前記デバイスに対して出力されるコマンドを取得する擬似バスドライバと、
    前記擬似バスドライバが取得した前記コマンドを前記コマンド受信部に送信するコマンド送信部と、
    を備える
    ことを特徴とするサービス提供装置。
JP2006333599A 2006-12-11 2006-12-11 情報処理システム、情報処理システムの制御方法、サービス利用装置及びサービス提供装置 Expired - Fee Related JP4805116B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006333599A JP4805116B2 (ja) 2006-12-11 2006-12-11 情報処理システム、情報処理システムの制御方法、サービス利用装置及びサービス提供装置
US11/740,453 US7788349B2 (en) 2006-12-11 2007-04-26 Information processing system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006333599A JP4805116B2 (ja) 2006-12-11 2006-12-11 情報処理システム、情報処理システムの制御方法、サービス利用装置及びサービス提供装置

Publications (2)

Publication Number Publication Date
JP2008146398A JP2008146398A (ja) 2008-06-26
JP4805116B2 true JP4805116B2 (ja) 2011-11-02

Family

ID=39499605

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006333599A Expired - Fee Related JP4805116B2 (ja) 2006-12-11 2006-12-11 情報処理システム、情報処理システムの制御方法、サービス利用装置及びサービス提供装置

Country Status (2)

Country Link
US (1) US7788349B2 (ja)
JP (1) JP4805116B2 (ja)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8464238B1 (en) * 2006-01-31 2013-06-11 Qlogic, Corporation Method and system for managing storage area networks
US8001553B2 (en) * 2007-06-25 2011-08-16 Microsoft Corporation Aggregate computer system via coupling of computing machines
US20090054069A1 (en) * 2007-08-24 2009-02-26 Zeetoo, Inc. Platform Independent Communication Protocol
JP2010009604A (ja) * 2008-06-27 2010-01-14 Toshiba Corp インストール用データ生成装置
JP2010039684A (ja) * 2008-08-04 2010-02-18 Canon Inc 画像形成装置、情報処理装置、データ処理方法及びプログラム
US8943551B2 (en) 2008-08-14 2015-01-27 Microsoft Corporation Cloud-based device information storage
JP5264391B2 (ja) * 2008-09-30 2013-08-14 キヤノン株式会社 情報処理装置及びインストール方法
JP2010160616A (ja) * 2009-01-07 2010-07-22 Seiko Epson Corp ホスト装置、ホスト装置の制御方法、画像形成システム及びコンピュータープログラム
JP5294892B2 (ja) 2009-01-14 2013-09-18 キヤノン株式会社 画像形成装置、装置、制御方法、及びプログラム
JP5470863B2 (ja) * 2009-01-15 2014-04-16 ソニー株式会社 サーバへの電子機器の登録
JP5166307B2 (ja) * 2009-01-30 2013-03-21 株式会社立花エレテック 接続機器利用システムおよびその方法
JP5743174B2 (ja) * 2009-03-18 2015-07-01 日本電気株式会社 シンクライアントサーバシステム及びusbデバイスのドライバの管理方法
KR20110062937A (ko) * 2009-12-04 2011-06-10 삼성전자주식회사 화상형성장치 및 클라이언트와 연결된 서버, 클라이언트 및 화상형성장치의 드라이버 원격설치방법
JP2011150604A (ja) * 2010-01-22 2011-08-04 Fuji Xerox Co Ltd 情報処理装置、印刷プログラム及び印刷システム
JP5458974B2 (ja) * 2010-03-10 2014-04-02 富士ゼロックス株式会社 印刷システム及び環境調査プログラム
JP5665437B2 (ja) * 2010-09-02 2015-02-04 キヤノン株式会社 ネットワーク機器管理システム、ネットワーク機器管理装置、クライアント装置およびその方法
KR101366993B1 (ko) * 2011-07-01 2014-02-24 알서포트 주식회사 원격 디바이스 드라이버 제공 시스템 및 원격 디바이스 드라이버 제공 방법
KR101251250B1 (ko) * 2011-07-01 2013-04-08 알서포트 주식회사 원격 디바이스 드라이버를 이용한 원격 제어 시스템 및 원격 디바이스 드라이버를 이용한 원격 제어 방법
JP5833880B2 (ja) * 2011-10-07 2015-12-16 キヤノンイメージングシステムズ株式会社 情報処理装置、デバイス制御装置、デバイス制御システム、およびその制御方法
JP6057115B2 (ja) 2012-03-24 2017-01-11 日本電気株式会社 情報処理システム、情報処理方法、携帯端末、情報処理装置およびその制御方法と制御プログラム
US9609456B2 (en) 2012-05-14 2017-03-28 Qualcomm Incorporated Methods, devices, and systems for communicating behavioral analysis information
US9690635B2 (en) 2012-05-14 2017-06-27 Qualcomm Incorporated Communicating behavior information in a mobile computing device
US9324034B2 (en) 2012-05-14 2016-04-26 Qualcomm Incorporated On-device real-time behavior analyzer
US9298494B2 (en) 2012-05-14 2016-03-29 Qualcomm Incorporated Collaborative learning for efficient behavioral analysis in networked mobile device
US9202047B2 (en) 2012-05-14 2015-12-01 Qualcomm Incorporated System, apparatus, and method for adaptive observation of mobile device behavior
US9495537B2 (en) 2012-08-15 2016-11-15 Qualcomm Incorporated Adaptive observation of behavioral features on a mobile device
US9319897B2 (en) 2012-08-15 2016-04-19 Qualcomm Incorporated Secure behavior analysis over trusted execution environment
US9330257B2 (en) 2012-08-15 2016-05-03 Qualcomm Incorporated Adaptive observation of behavioral features on a mobile device
US9747440B2 (en) 2012-08-15 2017-08-29 Qualcomm Incorporated On-line behavioral analysis engine in mobile device with multiple analyzer model providers
US10089582B2 (en) 2013-01-02 2018-10-02 Qualcomm Incorporated Using normalized confidence values for classifying mobile device behaviors
US9686023B2 (en) 2013-01-02 2017-06-20 Qualcomm Incorporated Methods and systems of dynamically generating and using device-specific and device-state-specific classifier models for the efficient classification of mobile device behaviors
US9684870B2 (en) 2013-01-02 2017-06-20 Qualcomm Incorporated Methods and systems of using boosted decision stumps and joint feature selection and culling algorithms for the efficient classification of mobile device behaviors
US9742559B2 (en) 2013-01-22 2017-08-22 Qualcomm Incorporated Inter-module authentication for securing application execution integrity within a computing device
US9491187B2 (en) 2013-02-15 2016-11-08 Qualcomm Incorporated APIs for obtaining device-specific behavior classifier models from the cloud
US9032106B2 (en) * 2013-05-29 2015-05-12 Microsoft Technology Licensing, Llc Synchronizing device association data among computing devices
CN104837688B (zh) * 2013-12-11 2017-09-22 株式会社小松制作所 作业机械、作业机械管理系统以及作业机械管理方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3446532B2 (ja) 1997-04-23 2003-09-16 セイコーエプソン株式会社 コンピュータシステムの周辺機器
US6785894B1 (en) * 1999-04-09 2004-08-31 Sun Microsystems, Inc. Virtual device driver
JP2001197461A (ja) 2000-01-07 2001-07-19 Matsushita Electric Ind Co Ltd マルチメディア情報操作ウインドウの共有操作方法
US6658489B1 (en) * 2000-03-29 2003-12-02 International Business Machines Corporation Method for replacing a device driver during system operation
JP2001296976A (ja) 2000-04-13 2001-10-26 Matsushita Electric Ind Co Ltd ネットワークプリンタシステム
JP2001331428A (ja) 2000-05-18 2001-11-30 Chihiro Tsuyusaki 情報処理装置の遠隔操作ソフト、遠隔操作システム及びプログラムを記録した記録媒体
JP2002034026A (ja) * 2000-07-13 2002-01-31 Nec Corp 遠隔監視システム
US6813670B1 (en) * 2000-09-26 2004-11-02 Microsoft Corporation Automatic server-side plug-and-play without user intervention
JP2002197044A (ja) 2000-12-25 2002-07-12 Matsushita Electric Ind Co Ltd プリンタドライバのインストール方法
US7165109B2 (en) * 2001-01-12 2007-01-16 Microsoft Corporation Method and system to access software pertinent to an electronic peripheral device based on an address stored in a peripheral device
US6904489B2 (en) 2001-10-23 2005-06-07 Digi International Inc. Methods and systems for remotely accessing universal serial bus devices
JP2004078744A (ja) * 2002-08-21 2004-03-11 Canon Inc 情報処理装置、情報処理方法、制御プログラム
US7457831B2 (en) * 2003-03-31 2008-11-25 Microsoft Corporation Peripheral device driver maintenance scheme for networked peripheral device clients
US7676675B2 (en) 2003-06-06 2010-03-09 Microsoft Corporation Architecture for connecting a remote client to a local client desktop
JP2005051578A (ja) * 2003-07-30 2005-02-24 Mitsubishi Electric Corp 通信装置及び通信システム及びプログラム
US20050209842A1 (en) 2004-03-16 2005-09-22 Digi International Inc. Remote USB port system and method
JP2006134214A (ja) * 2004-11-09 2006-05-25 Hitachi Ltd ファイルのバージョン管理方法および計算機システム
US7934213B2 (en) * 2004-11-09 2011-04-26 Microsoft Corporation Device driver rollback
JP2006190320A (ja) 2006-02-16 2006-07-20 Seiko Epson Corp ネットワーク上のデバイスの使用を支援するシステム
JP4321577B2 (ja) * 2006-10-30 2009-08-26 ブラザー工業株式会社 サービス提供方法およびネットワークデバイス

Also Published As

Publication number Publication date
US7788349B2 (en) 2010-08-31
US20080140821A1 (en) 2008-06-12
JP2008146398A (ja) 2008-06-26

Similar Documents

Publication Publication Date Title
JP4805116B2 (ja) 情報処理システム、情報処理システムの制御方法、サービス利用装置及びサービス提供装置
JP4242819B2 (ja) オフライン作業可能な端末を有する計算機システム
US8578372B2 (en) Business-in-a-box integration server and integration method
US9635207B2 (en) Management system and information processing apparatus managing installation and settings of an application
KR20080053289A (ko) 원격 시스템을 위한 플러그 앤드 플레이 장치 재지정
JP5129770B2 (ja) ネットワーク装置
KR101516093B1 (ko) 포트 공유 하드웨어를 통한 저장 장치들에의 대역외 액세스
US20050160150A1 (en) Apparatus and method for managing and transporting virtual disks over a network to networked stations
JP2005071347A (ja) 挿入可能ポータブル・オペレーティング・システム・モジュールを製造し、更新するシステムおよび方法
US20150227605A1 (en) Information processing terminal, synchronization control method, and computer-readable recording medium
US20160241535A1 (en) Terminal authentication and registration system, method for authenticating and registering terminal, and storage medium
JP2017107307A (ja) 機器、情報処理システム、情報処理方法、及びプログラム
JP6848340B2 (ja) 情報処理システム、更新方法、情報処理装置及びプログラム
JP2008004010A (ja) 通信装置及びその制御方法
US20080222043A1 (en) System and method for trans-vendor license registration and recovery
JP2009237767A (ja) 情報引継方法及び退避・復元装置及び情報引継ぎプログラム
CN107430534A (zh) 信息处理设备,程序和记录介质
JP2011150499A (ja) シンクライアントシステム、シンクライアント端末およびシンクライアントプログラム
WO2024041283A1 (zh) 一种客户端升级方法、装置、终端设备及存储介质
US20050228979A1 (en) Stored-program device
US20090249346A1 (en) Image forming apparatus, information processing apparatus and information processing method
US20070192387A1 (en) Information processing device, method and program for controlling information processing device
JP7255105B2 (ja) アプリケーションプログラムおよびデータ転送システム
JP2009020609A (ja) 画像形成装置、プログラム制御方法及びプログラム
JP2011145827A (ja) 仮想バスシステム、およびデバイス管理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110427

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110510

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110707

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110810

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140819

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees