(57)【要約】【課題】携帯端末に接続されたデバイスと、ネットワークおよび携帯端末を介してデバイスを動作させるために情報処理装置において使用されたプログラムとの適切な組合せを、その組合せの履歴に基づいて選定すること。【解決手段】ネットワークおよび携帯端末を介して接続されたデバイスと、該デバイスを動作させるために情報処理装置において使用されたプログラムとの組合せの履歴を蓄積しておき、携帯端末に接続されたデバイスに関する情報を、ネットワークを介して前記携帯端末から受信した場合に、蓄積部に蓄積されたデバイスとプログラムとの組合せの履歴に基づいて、デバイスとプログラムとの組合せを選定することを特徴とする。【選択図】  図１
2013200704.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークおよび携帯端末を介して接続されたデバイスと、該デバイスを動作させるために情報処理装置において使用されたプログラムとの組合せの履歴を蓄積する蓄積手段と、
携帯端末に接続されたデバイスに関する情報を、前記ネットワークを介して前記携帯端末から受信した場合に、前記蓄積手段に蓄積された前記デバイスと前記プログラムとの前記組合せの履歴に基づいて、前記デバイスと前記プログラムとの組合せを選定する選定手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記プログラムは、前記デバイスを駆動するデバイスドライバと、前記デバイスを前記ネットワークおよび前記携帯端末を介して制御するためのドライバアプリケーションとを含むことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記選定手段が選定した前記デバイスと前記プログラムとの前記組合せを、前記ネットワークを介して前記ユーザが指定する端末に送信する送信手段を、さらに備えることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記蓄積手段は、さらに、デバイス使用時の環境要因の組合せを蓄積し、
前記選定手段は、さらに、前記蓄積手段を参照して、携帯端末に接続された前記デバイスを制御するための前記環境要因の組合せを選定することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記蓄積手段は、さらに、入力デバイスと出力デバイスとの組合せを蓄積し、
前記選定手段は、さらに、前記蓄積手段を参照して、携帯端末に接続された前記デバイスを含む入力デバイスと出力デバイスとの組合せを選定することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記選定手段による、前記デバイスと前記プログラムとの組合せの前記選定と、前記環境要因の組合せの前記選定と、前記入力デバイスと前記出力デバイスとの組合せの前記選定とのいずれかを選択する選択手段をさらに備えることを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記選定手段は、前記蓄積手段に蓄積された組合せのうち、出現数が最多の組合せを組合せとして選定することを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記蓄積手段は、前記組合せに対応付けてユーザの満足度を蓄積し、
前記選定手段は、さらに、前記ユーザの満足度を参照して組合せを選定することを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
前記選定手段は、前記蓄積手段に蓄積された組合せのうち、デバイスを携帯端末に接続した前記ユーザの満足度が最大の組合せを組合せに選定することを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記選定手段は、前記蓄積手段に蓄積された組合せのうち、前記満足度の累積が最大の組合せを組合せに選定することを特徴とする請求項８に記載の情報処理装置。
【請求項１１】
前記蓄積手段は、さらに、当該情報処理装置と前記携帯端末との間の通信量と通信方式との組合せを蓄積し、
前記選定手段は、さらに、前記蓄積手段を参照して、携帯端末に接続された前記デバイスを処理するための通信量と通信方式との組合せを選定することを特徴とする請求項１乃至１０のいずれか１項に記載の情報処理装置。
【請求項１２】
携帯端末に接続されたデバイスに関する情報を、前記ネットワークと前記携帯端末を介して前記デバイスから取得する取得手段をさらに備え、
前記選定手段は、前記携帯端末に接続されたデバイスに関する前記情報を前記取得手段から得ることを特徴とする請求項１乃至１１のいずれか１項に記載の情報処理装置。
【請求項１３】
ネットワークおよび携帯端末を介して接続されたデバイスと、該デバイスを動作させるために情報処理装置において使用されたプログラムとの組合せの履歴を蓄積する蓄積ステップと、
携帯端末に接続されたデバイスに関する情報を、前記ネットワークを介して前記携帯端末から受信した場合に、前記蓄積手段に蓄積された前記デバイスと前記プログラムとの前記組合せの履歴に基づいて、前記デバイスと前記プログラムとの組合せを選定する選定ステップと、
を含むことを特徴とする情報処理装置の制御方法。
【請求項１４】
ネットワークおよび携帯端末を介して接続されたデバイスと、該デバイスを動作させるために情報処理装置において使用されたプログラムとの組合せの履歴を蓄積する蓄積ステップと、
携帯端末に接続されたデバイスに関する情報を、前記ネットワークを介して前記携帯端末から受信した場合に、前記蓄積手段に蓄積された前記デバイスと前記プログラムとの前記組合せの履歴に基づいて、前記デバイスと前記プログラムとの組合せを選定する選定ステップと、
をコンピュータに実行させることを特徴とする情報処理装置の制御プログラム。
【請求項１５】
デバイスを接続するコネクタと、
接続された前記デバイスからデバイス情報を取得して、ネットワークを介して情報処理装置に送信する送信手段と、
前記情報処理装置が前記デバイス情報に基づいて選定した前記デバイスと前記デバイスを動作させるプログラムとの組合せを、他の携帯端末に送信するよう指示する指示手段と、
を備えることを特徴とする携帯端末。
【請求項１６】
他の携帯端末に接続されたデバイスのデバイス情報に基づいて選定された、前記デバイスと前記デバイスを動作させるプログラムとの組合せを、ネットワークを介して情報処理装置にリクエストするリクエスト手段と、
前記情報処理装置から前記ネットワークを介して受信した前記デバイスと前記プログラムとの組合せを表示する表示手段と、
をさらに備えることを特徴とする請求項１５に記載の携帯端末。
【請求項１７】
携帯端末と、該携帯端末とネットワークを介して接続する情報処理装置とを備える情報処理システムであって、
前記情報処理装置が、
前記ネットワークおよび前記携帯端末を介して接続されたデバイスと、該デバイスを動作させるために当該情報処理装置において使用されたプログラムとの組合せの履歴を蓄積する蓄積手段と、
前記携帯端末に接続されたデバイスに関する情報を、前記ネットワークを介して前記携帯端末から受信した場合に、前記蓄積手段に蓄積された前記デバイスと前記プログラムとの前記組合せの履歴に基づいて、前記デバイスと前記プログラムとの組合せを選定する選定手段と、
を備え、
前記携帯端末が、
前記携帯端末に接続されたデバイスに関する前記情報を、前記ネットワークを介して前記情報処理装置に送信する送信手段、
を備えることを特徴とする情報処理システム。
【請求項１８】
前記プログラムは、前記デバイスを駆動するデバイスドライバと、前記デバイスを前記ネットワークおよび前記携帯端末を介して制御するためのドライバアプリケーションとを含むことを特徴とする請求項１７に記載の情報処理システム。
【請求項１９】
前記情報処理装置は、前記選定手段が選定した前記デバイスと前記プログラムとの前記組合せを、前記ネットワークを介して前記ユーザが指定する端末に送信する送信手段を、さらに備えることを特徴とする請求項１７または１８に記載の情報処理システム。
【請求項２０】
前記蓄積手段は、さらに、デバイス使用時の環境要因の組合せを蓄積し、
前記選定手段は、さらに、前記蓄積手段を参照して、携帯端末に接続された前記デバイスを制御するための前記環境要因の組合せを選定することを特徴とする請求項１７乃至１９のいずれか１項に記載の情報処理システム。
【請求項２１】
前記蓄積手段は、さらに、入力デバイスと出力デバイスとの組合せを蓄積し、
前記選定手段は、さらに、前記蓄積手段を参照して、携帯端末に接続された前記デバイスを含む入力デバイスと出力デバイスとの組合せを選定することを特徴とする請求項１７乃至２０のいずれか１項に記載の情報処理システム。
【請求項２２】
前記情報処理装置は、前記選定手段による、前記デバイスと前記プログラムとの組合せの前記選定と、前記環境要因の組合せの前記選定と、前記入力デバイスと前記出力デバイスとの組合せの前記選定とのいずれかを選択する選択手段をさらに備えることを特徴とする請求項２１に記載の情報処理システム。
【請求項２３】
前記選定手段は、前記蓄積手段に蓄積された組合せのうち、出現数が最多の組合せを組合せとして選定することを特徴とする請求項１７乃至２２のいずれか１項に記載の情報処理システム。
【請求項２４】
前記蓄積手段は、前記組合せに対応付けてユーザの満足度を蓄積し、
前記選定手段は、さらに、前記ユーザの満足度を参照して組合せを選定することを特徴とする請求項１７乃至２３のいずれか１項に記載の情報処理システム。
【請求項２５】
前記選定手段は、前記蓄積手段に蓄積された組合せのうち、デバイスを携帯端末に接続した前記ユーザの満足度が最大の組合せを組合せに選定することを特徴とする請求項２４に記載の情報処理システム。
【請求項２６】
前記選定手段は、前記蓄積手段に蓄積された組合せのうち、前記満足度の累積が最大の組合せを組合せに選定することを特徴とする請求項２４に記載の情報処理システム。
【請求項２７】
前記蓄積手段は、さらに、当該情報処理装置と前記携帯端末との間の通信量と通信方式との組合せを蓄積し、
前記選定手段は、さらに、前記蓄積手段を参照して、携帯端末に接続された前記デバイスを処理するための通信量と通信方式との組合せを選定することを特徴とする請求項１７乃至２６のいずれか１項に記載の情報処理システム。
【請求項２８】
前記情報処理装置は、携帯端末に接続されたデバイスに関する情報を、前記ネットワークと前記携帯端末を介して前記デバイスから取得する取得手段をさらに備え、
前記選定手段は、前記携帯端末に接続されたデバイスに関する前記情報を前記取得手段から得ることを特徴とする請求項１７乃至２７のいずれか１項に記載の情報処理システム。
【請求項２９】
前記携帯端末は、
デバイスを接続するコネクタと、
接続された前記デバイスからデバイス情報を取得して、ネットワークを介して情報処理装置に送信する送信手段と、
前記情報処理装置が前記デバイス情報に基づいて選定した前記デバイスと前記デバイスを動作させるプログラムとの組合せを、他の携帯端末に送信するよう指示する指示手段と、
をさらに備えることを特徴とする請求項１７乃至２８のいずれか１項に記載の情報処理システム。
【請求項３０】
前記携帯端末は、
他の携帯端末に接続されたデバイスのデバイス情報に基づいて選定された、前記デバイスと前記デバイスを動作させるプログラムとの組合せを、ネットワークを介して情報処理装置にリクエストするリクエスト手段と、
前記情報処理装置から前記ネットワークを介して受信した前記デバイスと前記プログラムとの組合せを表示する表示手段と、
をさらに備えることを特徴とする請求項１７乃至２９のいずれか１項に記載の情報処理システム。
【請求項３１】
携帯端末と、該携帯端末とネットワークを介して接続し、前記ネットワークおよび前記携帯端末を介して接続されたデバイスと、該デバイスを動作させるために情報処理装置において使用されたプログラムとの組合せの履歴を蓄積する蓄積手段を有する情報処理装置とを備える情報処理システムの情報処理方法であって、
前記携帯端末が、前記携帯端末に接続されたデバイスに関する情報を、前記ネットワークを介して前記情報処理装置に送信する送信ステップと、
前記情報処理装置が、前記携帯端末に接続されたデバイスに関する前記情報を、前記ネットワークを介して前記携帯端末から受信した場合に、前記蓄積手段に蓄積された前記デバイスと前記プログラムとの前記組合せの履歴に基づいて、前記デバイスと前記プログラムとの組合せを選定する選定ステップと、
を含むことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークおよび携帯端末を介して接続したデバイスに関連する処理を蓄積した履歴に基づいて選定する技術に関する。
【背景技術】
【０００２】
上記技術分野において、特許文献１には、デバイスをシンクライアントに接続した場合に、サーバにおいて対応するデバイスドライバを実行する技術が開示されている。また、段落［００２０］には、１つのデバイスに対応して複数のデバイスドライバが記憶されることが示唆されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１０２３０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記文献には、複数のデバイスドライバから、接続されたデバイスやシンクライアントやサーバにとって適切なデバイスドライバを選定することについては、記載も示唆もない。したがって、上記文献に記載の技術では、複数のデバイスドライバが有ったとしても適切なデバイスドライバを選定することができなかった。
【０００５】
本発明の目的は、上述の課題を解決する技術を提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明に係る装置は、
ネットワークおよび携帯端末を介して接続されたデバイスと、該デバイスを動作させるために情報処理装置において使用されたプログラムとの組合せの履歴を蓄積する蓄積手段と、
携帯端末に接続されたデバイスに関する情報を、前記ネットワークを介して前記携帯端末から受信した場合に、前記蓄積手段に蓄積された前記デバイスと前記プログラムとの前記組合せの履歴に基づいて、前記デバイスと前記プログラムとの組合せを選定する選定手段と、
を備えることを特徴とする。
【０００７】
上記目的を達成するため、本発明に係る方法は、
ネットワークおよび携帯端末を介して接続されたデバイスと、該デバイスを動作させるために情報処理装置において使用されたプログラムとの組合せの履歴を蓄積する蓄積ステップと、
携帯端末に接続されたデバイスに関する情報を、前記ネットワークを介して前記携帯端末から受信した場合に、前記蓄積手段に蓄積された前記デバイスと前記プログラムとの前記組合せの履歴に基づいて、前記デバイスと前記プログラムとの組合せを選定する選定ステップと、
を含むことを特徴とする。
【０００８】
上記目的を達成するため、本発明に係るプログラムは、
ネットワークおよび携帯端末を介して接続されたデバイスと、該デバイスを動作させるために情報処理装置において使用されたプログラムとの組合せの履歴を蓄積する蓄積ステップと、
携帯端末に接続されたデバイスに関する情報を、前記ネットワークを介して前記携帯端末から受信した場合に、前記蓄積手段に蓄積された前記デバイスと前記プログラムとの前記組合せの履歴に基づいて、前記デバイスと前記プログラムとの組合せを選定する選定ステップと、
をコンピュータに実行させることを特徴とする。
【０００９】
上記目的を達成するため、本発明に係る装置は、
デバイスを接続するコネクタと、
接続された前記デバイスからデバイス情報を取得して、ネットワークを介して情報処理装置に送信する送信手段と、
前記情報処理装置が前記デバイス情報に基づいて選定した前記デバイスと前記デバイスを動作させるプログラムとの組合せを、他の携帯端末に送信するよう指示する指示手段と、
を備えることを特徴とする。
【００１０】
上記目的を達成するため、本発明に係るシステムは、
携帯端末と、該携帯端末とネットワークを介して接続する情報処理装置とを備える情報処理システムであって、
前記情報処理装置が、
前記ネットワークおよび前記携帯端末を介して接続されたデバイスと、該デバイスを動作させるために当該情報処理装置において使用されたプログラムとの組合せの履歴を蓄積する蓄積手段と、
前記携帯端末に接続されたデバイスに関する情報を、前記ネットワークを介して前記携帯端末から受信した場合に、前記蓄積手段に蓄積された前記デバイスと前記プログラムとの前記組合せの履歴に基づいて、前記デバイスと前記プログラムとの組合せを選定する選定手段と、
を備え、
前記携帯端末が、
前記携帯端末に接続されたデバイスに関する前記情報を、前記ネットワークを介して前記情報処理装置に送信する送信手段、
を備えることを特徴とする。
【００１１】
上記目的を達成するため、本発明に係る方法は、
携帯端末と、該携帯端末とネットワークを介して接続し、前記ネットワークおよび前記携帯端末を介して接続されたデバイスと、該デバイスを動作させるために情報処理装置において使用されたプログラムとの組合せの履歴を蓄積する蓄積手段を有する情報処理装置とを備える情報処理システムの情報処理方法であって、
前記携帯端末が、前記携帯端末に接続されたデバイスに関する情報を、前記ネットワークを介して前記情報処理装置に送信する送信ステップと、
前記情報処理装置が、前記携帯端末に接続されたデバイスに関する前記情報を、前記ネットワークを介して前記携帯端末から受信した場合に、前記蓄積手段に蓄積された前記デバイスと前記プログラムとの前記組合せの履歴に基づいて、前記デバイスと前記プログラムとの組合せを選定する選定ステップと、
を含むことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、携帯端末に接続されたデバイスと、ネットワークおよび携帯端末を介してデバイスを動作させるために情報処理装置において使用されたプログラムとの適切な組合せを、その組合せの履歴に基づいて選定できる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１実施形態に係る情報処理装置の構成を示すブロック図である。
【図２】本発明の第２実施形態に係る情報処理システムの動作を説明する図である。
【図３】本発明の第２実施形態に係る情報処理システムの構成を示すブロック図である。
【図４Ａ】本発明の第２実施形態に係る情報処理システムの動作手順を示すシーケンス図である。
【図４Ｂ】本発明の第２実施形態に係るディスクリプタ取得の手順を示す図である。
【図４Ｃ】本発明の第２実施形態に係るデータ入出力の手順を示す図である。
【図４Ｄ】本発明の第２実施形態に係るＵＳＢプロトコルを示す図である。
【図５】本発明の第２実施形態に係るクラウドサーバの機能構成を示すブロック図である。
【図６】本発明の第２実施形態に係る携帯端末の機能構成を示すブロック図である。
【図７】本発明の第２実施形態に係るユーザ登録ＤＢの構成を示す図である。
【図８】本発明の第２実施形態に係るデバイスＤＢの構成を示す図である。
【図９】本発明の第２実施形態に係るプログラムＤＢの構成を示す図である。
【図１０】本発明の第２実施形態に係る組合蓄積ＤＢの一部構成を示す図である。
【図１１】本発明の第２実施形態に係る組合蓄積ＤＢの一部構成を示す図である。
【図１２】本発明の第２実施形態に係るクラウドサーバのハードウェア構成を示すブロック図である。
【図１３】本発明の第２実施形態に係る提案プログラムテーブルの構成を示す図である。
【図１４】本発明の第２実施形態に係るクラウドサーバの処理手順を示すフローチャートである。
【図１５】本発明の第２実施形態に係るプログラム選定処理の処理手順を示すフローチャートである。
【図１６】本発明の第２実施形態に係る携帯端末のハードウェア構成を示すブロック図である。
【図１７Ａ】本発明の第２実施形態に係る携帯端末の処理手順を示すフローチャートである。
【図１７Ｂ】本発明の第２実施形態に係るデバイス接続処理の処理手順を示すフローチャートである。
【図１８】本発明の第３実施形態に係る情報処理システムにおける携帯端末がデバイス情報を取得できない場合の動作手順を示すシーケンス図である。
【図１９】本発明の第４実施形態に係る情報処理システムの動作を説明する図である。
【図２０】本発明の第４実施形態に係る情報処理システムの動作手順を示すシーケンス図である。
【図２１】本発明の第４実施形態に係るクラウドサーバの機能構成を示すブロック図である。
【図２２】本発明の第４実施形態に係る組合蓄積ＤＢの構成を示す図である。
【図２３】本発明の第４実施形態に係る提案情報テーブルの構成を示す図である。
【図２４】本発明の第４実施形態に係るクラウドサーバの処理手順を示すフローチャートである。
【図２５】本発明の第５実施形態に係る情報処理システムの動作を説明する図である。
【図２６】本発明の第５実施形態に係る情報処理システムの動作手順を示すシーケンス図である。
【図２７】本発明の第５実施形態に係るクラウドサーバの機能構成を示すブロック図である。
【図２８】本発明の第５実施形態に係る組合蓄積ＤＢの構成を示す図である。
【図２９】本発明の第５実施形態に係る対応デバイステーブルの構成を示す図である。
【図３０】本発明の第５実施形態に係るクラウドサーバの処理手順を示すフローチャートである。
【図３１】本発明の第６実施形態に係る情報処理システムの動作を説明する図である。
【図３２】本発明の第７実施形態に係る情報処理システムの動作を説明する図である。
【図３３】本発明の第７実施形態に係る情報処理システムの動作手順を示すシーケンス図である。
【図３４】本発明の第７実施形態に係るクラウドサーバの機能構成を示すブロック図である。
【図３５】本発明の第７実施形態に係る携帯端末の機能構成を示すブロック図である。
【図３６】本発明の第７実施形態に係る組合蓄積ＤＢの構成を示す図である。
【図３７】本発明の第７実施形態に係る提案通信方式テーブルの構成を示す図である。
【図３８】本発明の第７実施形態に係るクラウドサーバの処理手順を示すフローチャートである。
【図３９】本発明の第８実施形態に係る情報処理システムの動作を説明する図である。
【図４０】本発明の第９実施形態に係る情報処理システムの動作を説明する図である。
【発明を実施するための形態】
【００１４】
以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素は単なる例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。
【００１５】
［第１実施形態］
本発明の第１実施形態としての情報処理装置１００について、図１を用いて説明する。情報処理装置１００は、携帯端末１１１に接続されたデバイス１２１を、ネットワーク１３０を介して制御する装置である。なお、情報処理装置１００は、クラウドサーバ等のサーバであるが、これに限定されるものではない
【００１６】
図１に示すように、情報処理装置１００は、蓄積部１０１と、選定部１０２と、を含む。蓄積部１０１は、ネットワーク１３０および携帯端末１１１を介して接続されたデバイス１２１と、デバイス１２１を動作させるために情報処理装置１００において使用されたプログラムとの組合せの履歴１０１ａを蓄積する。選定部１０２は、携帯端末１１１に接続されたデバイス１２１に関する情報を、ネットワーク１３０を介して携帯端末１１１から受信した場合に、蓄積部１０１に蓄積されたデバイスとプログラムとの組合せの履歴１０１ａに基づいて、デバイスとプログラムとの組合せ１０２ａを選定する。
【００１７】
本実施形態によれば、携帯端末に接続されたデバイスと、ネットワークおよび携帯端末を介してデバイスを動作させるために情報処理装置において使用されたプログラムとの適切な組合せを、その組合せの履歴に基づいて選定できる。
【００１８】
［第２実施形態］
次に、本発明の第２実施形態に係る情報処理システムについて説明する。本実施形態に係る情報処理システムは、情報処理装置であるクラウドサーバが携帯端末に接続されたデバイスと、そのデバイスを動作させるために使用したプログラムとの組合せの履歴を蓄積する。そして、携帯端末にデバイスが接続された通知を受けると、組合せの履歴に基づいてプログラムを選定する。かかるプログラムは、少なくとも、デバイスを駆動するデバイスドライバ（以下、デバイスドライバやドライバとも言う）と、ネットワークおよび携帯端末を介してデバイスを制御するドライバアプリケーション（以下、ドライバアプリとも言う）とを含む。さらに、入出力データを処理するデータ処理アプリケーアション（以下、データ処理アプリとも言う）を含んでよい。なお、本実施系帯においては、情報処理装置をクラウドサーバなどのサーバとして説明するが、情報処理装置はクラウドサーバなどのサーバに限定されるものではない。
【００１９】
本実施形態によれば、携帯端末にデバイスが接続された場合に、ネットワークおよび携帯端末を介してデバイスを適切に制御するデバイスドライバとドライバアプリケーションとの組合せを選定できる。
【００２０】
なお、本実施形態においては、携帯端末がＵＳＢコネクタを有し、ＵＳＢデバイスをＵＳＢケーブルで接続する例を説明するが、携帯端末とデバイスとの接続はＵＳＢに限定されない。
【００２１】
《情報処理システム》
まず、図２、図３および図４Ａ〜図４Ｄを参照して、本実施形態に係る情報処理システムの構成および動作を説明する。
【００２２】
（動作説明）
図２は、本実施形態に係る情報処理システム２００の動作を説明する図である。
【００２３】
図２の情報処理システム２００には、情報処理装置であるクラウドサーバ２１０と、携帯端末２２０と、デバイス２３０と、携帯端末２４０とが図示されている。本実施形態においては、携帯端末２２０はスマートフォンであり、デバイス２３０はデジタルカメラであり、携帯端末２４０はユーザがクラウドサーバ２１０の提案出力を希望するタブレットである。しかしながら、これに限定されるものではない。
【００２４】
クラウドサーバ２１０は、デバイスとプログラムとの組合せの履歴を蓄積する組合蓄積データベース（以下、ＤＢ）２１２を参照して、組合選定部２１１において、携帯端末２２０に接続したデバイス２３０を適切に動作させるプログラムを選定する。なお、選定されるプログラムは、デバイス２３０を駆動するデバイスドライバ・プログラムと、クラウドサーバ２１０−携帯端末２２０−デバイス２３０を、ネットワークを介して結んで制御するドライバアプリケーション・プログラムとを含む。さらに、プログラムが、デバイス２３０の入出力データを処理するデータ処理プログラムを含んでもよい。なお、明細書中では、デバイスドライバ・プログラムを「デバイスドライバ」とも称し、ドライバアプリケーション・プログラムを「ドライバアプリケーション」とも称す。また、ドライバアプリケーション・プログラムやデータ処理プログラム、ＷＥＢアプリケーションなどを単に「アプリケーション」と総称する場合もある。
【００２５】
携帯端末２２０のコネクタ（例えば、ＵＳＢコネクタ）にデバイス２３０が接続されると、クラウドサーバ２１０は、携帯端末２２０を経由してデバイス２３０を認知する。そして、携帯端末２２０を介したデバイス２３０の接続時に使用されたプログラムの履歴を蓄積した組合蓄積ＤＢ２１２に基づいて、デバイスドライバ・プログラムとドライバアプリケーションプログラムとの適切な組合せが選定される。そして、選定されたデバイスドライバ・プログラムとドライバアプリケーションプログラムとの適切な組合せは、携帯端末２４０の表示画面２４１上のウインドウ２４２内に提案される。図２では、ウインドウ２４２内に、携帯端末２２０を所有するユーザが過去のデバイス２３０の接続時に使用して満足度の高かったプログラムリスト２４３が提案されている。また、ユーザ個人でなく、全ユーザの過去の満足度の累積などからプログラムリスト２４４が提案されている。なお、ユーザの満足度が収集できない場合は、組合せの出現数が最多のものを選定してもよい。
【００２６】
なお、図２においては、デバイス２３０を接続した携帯端末２２０とは異なる携帯端末２４０に、プログラムリスト２４３、２４４を提案したが、携帯端末２２０の表示画面２２１上に提案してもよい。また、本実施形態においては、ユーザにプログラムを提案してユーザが指示するように説明したが、クラウドサーバ２１０が、組合蓄積ＤＢ２１２に基づいて選定したプログラムを、ユーザへの提案なしに実行してもよい。
【００２７】
（構成）
図３は、本実施形態に係る情報処理システム２００の構成を示すブロック図である。
【００２８】
情報処理システム２００は、図３のように、ネットワーク３３０を介して接続されたクラウドサーバ２１０と、携帯端末３１１〜３１３とを有する。携帯端末３１１〜３１３には、デバイス３２１〜３２３が接続可能である。例えば、デジタルカメラであるデバイス３２１で撮像された画像は、携帯電話である携帯端末３１１を経由してクラウドサーバ２１０に送信される。その画像は、クラウドサーバ２１０に保存されてもよいし、画像処理されてスマートフォンである携帯端末３１３を経由して大型ディスプレイ３２３に表示されてもよい。あるいは、ＤＶＤプレイヤであるデバイス３２２に格納されたビデオ映画は、タブレット３１２で再生されてもよいし、クラウドサーバ２１０を経由し、スマートフォンである携帯端末３１３を経由して大型ディスプレイ３２３で再生されてもよい。
【００２９】
図２にも図示されたように、クラウドサーバ２１０は、携帯端末にデバイスを接続時に使用されたプログラムの履歴を蓄積した組合蓄積ＤＢ２１２と、組合蓄積ＤＢ２１２を参照して、携帯端末へのデバイス接続時にデバイスに対するプログラム組合せを選定する組合選定部２１１とを有する。
【００３０】
（動作手順）
図４Ａは、本実施形態に係る情報処理システム２００の動作手順を示すシーケンス図である。図４Ａにおいては、デバイス２３０と携帯端末２２０とはＵＳＢケーブルで接続され、携帯端末２２０とクラウドサーバ２１０とはＩＰネットワークで接続されているとする。
【００３１】
まず、ステップＳ４０１において、携帯端末２２０のＵＳＢコネクタにＵＳＢケーブルでデバイス２３０が接続される。ステップＳ４０３において汎用ＵＳＢドライバが起動して、携帯端末２２０とデバイス２３０との間のパケットのやり取りが開始される。携帯端末２２０はデバイス２３０をクリアした後、ステップＳ４０５において、携帯端末２２０をホストとするデバイスアドレスを設定する。そして、携帯端末２２０は、ステップＳ４０７において、デバイス２３０に設定されているディスクリプタを取得する。ディスクリプタには、デバイス・ディスクリプタ、コンフィギュレーション・ディスクリプタ、インタフェース・ディスクリプタ、エンドポイント・ディスクリプタ、を含む。携帯端末２２０は、ステップＳ４０９において、取得したディスクリプタをＩＰカプセリングしてクラウドサーバ２１０に送信する。
【００３２】
クラウドサーバ２１０は、ステップＳ４１１において、デバイス２３０とプログラムとの組合せの履歴を蓄積する組合蓄積ＤＢ２１２に基づいて、携帯端末２２０に接続したデバイス２３０を動作させるのに適切なプログラムを選定する。ステップＳ４１３においては、選定した適切なプログラムを携帯端末２２０あるいは他の携帯端末２４０に報知して、ユーザによる指定を受信する。なお、ステップＳ４１３をスキップして、選定したプログラムを実行してもよい。ステップＳ４１５においては、選定した、あるいは選定後にユーザに指定されたプログラムのうち、ＵＳＢデバイスドライバを起動する。続いて、ステップＳ４１７において、選定した、あるいは選定後にユーザに指定されたプログラムのうち、ドライバアプリケーションを起動する。
【００３３】
クラウドサーバ２１０は、ステップＳ４１９において、ＩＰネットワークおよび携帯端末２２０を介してクラウドサーバ２１０をホストとするデバイスアドレスを設定する。例えば、デバイス２３０が入力デバイスである場合は、クラウドサーバ２１０が、ステップＳ４２１において、データ入力リクエストを携帯端末２２０に送る。携帯端末２２０は、ステップＳ４２３において、バルク転送（ＩＮ）によって入力データを取得する。そして、ステップＳ４２５において、携帯端末２２０は、入力データをＩＰカプセリングしてクラウドサーバ２１０に送信する。クラウドサーバ２１０は、ステップＳ２１０において、入力データを記憶する。そして、データ処理が必要であれば、ステップＳ４２９において、データ処理アプリケーションを起動する。なお、データ処理アプリケーションも、ステップＳ４１１において、選定される。
【００３４】
一方、デバイス２３０が出力デバイスである場合は、クラウドサーバ２１０が、ステップＳ４４１において、出力データを取得する。そして、クラウドサーバ２１０は、ステップＳ４４３において、携帯端末２２０に対してデータ出力リクエストを出力データと共に送信する。携帯端末２２０は、ステップＳ４４５において、アンカプセリングした出力データをバルク転送（ＯＵＴ）によりデバイス２３０に送出する。
【００３５】
図４Ｂは、本実施形態に係るディスクリプタ取得の手順を示す図である。
【００３６】
デバイス２３０に設定されているディスクリプタは、ＧＥＴ＿ＤＥＳＣＲＩＰＴＯＲなどのＵＳＢリクエストにより取得される。ＵＳＢリクエストは、それぞれコントロール転送によりデバイス２３０とやり取りされる。各コントロール転送は、セット・ステージと、データ・ステージと、ステータス・ステージとからなる。各ステージは、トークン・パケットと、データ・パケットと、ハンドシェイク・パケットとからなる。ディスクリプタは、各データ・ステージのデータ・パケットで取得される。
【００３７】
デバイス２３０から取得したディスクリプタはＩＰヘッダやＴＣＰヘッダでＩＰカプセリングして、携帯端末２２０からクラウドサーバ２１０に送信される。
【００３８】
図４Ｃは、本実施形態に係るデータ入出力の手順を示す図である。ここで、図４Ｃの上段は、デバイス２３０へのデータ出力の手順を示し、図４Ｃの下段は、デバイス２３０からのデータ入力の手順を示す。
【００３９】
デバイス２３０へのデータ出力は、まず、クラウドサーバ２１０からＩＰカプセリングした出力データが携帯端末２２０に送信される。次に、携帯端末２２０は、アンカプセンリグして取得したデータはバルク転送（ＯＵＴ）でデバイス２３０に転送される。各バルク転送（ＯＵＴ）は、トークン・パケットと、データ・パケットと、ハンドシェイク・パケットとからなる。
【００４０】
デバイス２３０からのデータ入力は、まず、携帯端末２２０は、バルク転送（ＩＮ）でデバイス２３０から入力データを取得する。各バルク転送（ＩＮ）は、トークン・パケットと、データ・パケットと、ハンドシェイク・パケットとからなる。次に、携帯端末２２０から、ＩＰカプセリングした入力データがクラウドサーバ２１０に送信される。
【００４１】
図４Ｄは、本実施形態に係るＵＳＢプロトコルを示す図である。図４Ｄは、図４Ｂおよび図４Ｃに示した各パケットの構成を示した図である。
【００４２】
図４Ｄの上段は、コントロール転送のプロトコルを示す。また、図４Ｄの下段は、バルク転送のプロトコルを示す。なお、コントロール転送のデータ・ステージと、バルク転送のトランザクションとにおいては、ホスト（携帯端末）からターゲット（デバイス）へのデータ伝送のみを示すが、ターゲット（デバイス）からホスト（携帯端末）へのデータ伝送も同様である。
【００４３】
ここで、ＳＹＮＣは同期ビット、ＰＩＤはパケットの種別、ＡＤＲｘはデバイスアドレス、ＥＰはエンドポイント、ＣＲＣは訂正ビットを示す。また、ＥＰ0はディスクリプタを記憶するエンドポント０を示し、ＥＰyは入出力データを記憶するエンドポイント１〜ｎを示す。
【００４４】
《クラウドサーバの機能構成》
図５は、本実施形態に係るクラウドサーバ２１０の機能構成を示すブロック図である。
【００４５】
クラウドサーバ２１０は、ネットワーク３３０を介して携帯端末２２０、２４０と通信する通信制御部５０１を有する。通信制御部５０１において携帯端末２２０、２４０から受信したメッセージからは、ユーザ情報受信部５０２においてユーザＩＤや認証情報などのユーザ情報を受信する。また、端末情報受信部５０３において携帯端末ＩＤや認証情報などの端末情報を受信する。ユーザ情報と端末情報とに基づいて、ユーザ登録部５０４は、ユーザ登録ＤＢ５０５にユーザを登録する（図７参照）。
【００４６】
また、ディスクリプタ受信部５０６は、携帯端末２２０に接続したデバイス２３０から取得したディスクリプタを受信する。デバイス判定部５０７は、受信したデバイス２３０のディスクリプタから、デバイスＤＢ５０８（図８参照）を参照して、接続したデバイス２３０を判定する。そして、組合選定部２１１は、受信したユーザ情報と判定したデバイスとに対応して、組合蓄積ＤＢ２１２（図１０および図１１参照）に基づいて適切なプログラムを選定する。
【００４７】
組合選定部２１１で選定されたプログラムは、提案プログラム送信部５０９が有する提案プログラムテーブル５０９ａ（図１３参照）に記憶され、携帯端末２２０、２４０に送信される。一方、組合選定部２１１で選定されたプログラムは、プログラムＤＢ５１０（図９参照）から検索されて、ドライバアプリケーション実行部（１）５１１で、携帯端末２２０のドライバアプリケーション実行部（２）６０３と協働して実行される。ドライバアプリケーション実行部（１）５１１においては、ＵＳＢデバイスドライバ５１２も実行される。
【００４８】
《携帯端末の機能構成》
図６は、本実施形態に係る携帯端末２２０、２４０、３１１〜３１３の機能構成を示すブロック図である。以下、構成は同様なので、携帯端末２２０を代表させて説明する。
【００４９】
本実施形態の携帯端末２２０は、ＵＳＢデバイスを接続するためのＵＳＢコネクタ６０１を有する。そして、ＵＳＢコネクタ６０１に接続したデバイスのディスクリプタを取得するための汎用ＡＵＳＢドライバ６０２を有する。さらに、携帯端末２２０は、ＵＳＢデバイスとのデータ入出力をＩＰカプセリングしてＩＰネットワークを介してクラウドサーバ２１０に送受信するために、ドライバアプリケーション実行部（２）６０３を有する。ドライバアプリケーション実行部（２）６０３は、クラウドサーバ２１０のドライバアプリケーション実行部（１）５１１と協働して、携帯端末２２０を経由するクラウドサーバ２１０とデバイス２３０とのデータのやり取りを行なう。ドライバアプリケーション実行部（２）６０３は、デバイス２３０から取得したデータをＩＰネットワークにパケット送信するための、送信フレーム生成部６０４とカプセリング部６０５を含む。また、ドライバアプリケーション実行部（２）６０３は、ＩＰネットワークから受信したパケットからデバイス２３０にデータを出力するための、アンカプセリング部６０６とＵＳＢデータ生成部６０７を含む。そして、クラウドサーバ２１０とのネットワークを介した通信を制御する通信制御部６０８を有する。
【００５０】
また、携帯端末２２０は、通信制御部６０８を介してＵＳＢデバイスとは異なるデータの送信を行なう送信部６１３と受信部６１４とを有する。また、携帯端末２２０は、タッチパネルやキーボードなどからなる操作部６０９と、入出力部６１０とを有する。入出力部６１０は、受信部５１４が受信したデータを表示する表示部６１１と、音声を入出力する音声入出力部６１２とを有する。
【００５１】
（ユーザ登録ＤＢ）
図７は、本実施形態に係るユーザ登録ＤＢ５０５の構成を示す図である。なお、ユーザ登録ＤＢ５０５は、図７の構成に限定されない。
【００５２】
ユーザ登録ＤＢ５０５は、ユーザＩＤ７０１に対応付けて、携帯端末ＩＤ７０２、携帯端末の機種７０３、通信性能７０４、携帯端末が有するデバイスコネクタ７０５、搭載されているデバイスドライバ７０６、音声通信方式７０７、データ通信方式７０８などを記憶する。
【００５３】
（デバイスＤＢ）
図８は、本実施形態に係るデバイスＤＢ５０８の構成を示す図である。なお、デバイスＤＢ５０８は、図８の構成に限定されない。
【００５４】
デバイスＤＢ５０８は、デバイスＩＤ８０１に対応付けて、デバイスの機種８０２、入力デバイスか出力デバイスかの種別８０３、デバイスが有する接続コネクタ８０４、通信方式８０５、デバイスの能力８０６などを記憶する。ここで、接続コネクタ８０４と通信方式８０５とは対応するので、いずれかを記憶するのみでもよい。
【００５５】
（プログラムＤＢ）
図９は、本実施形態に係るプログラムＤＢ５１０の構成を示す図である。なお、プログラムＤＢ５１０は、図９の構成に限定されない。
【００５６】
プログラムＤＢ５１０には、プログラム種別９０１として、デバイスドライバと、ドライバアプリケーションと、データ処理アプリケーションとを記憶する。各プログラム種別９０１には複数のプログラムのプログラムＩＤ９０２を記憶する。そして、各プログラムＩＤ９０２に対応付けて、そのプログラムにより処理可能である、ＩＰネットワークを介する通信相手の通信端末９０３、その通信方式９０４、通信端末９０３が有する接続コネクタ９０５、接続デバイス９０６、その能力９０７などを記憶する。かかるプログラムＤＢ５１０に基づいて、接続デバイスを動作可能なプログラム候補が検索される。
【００５７】
（組合蓄積ＤＢ）
図１０および図１１は、本実施形態に係る組合蓄積ＤＢ２１２の構成を示す図である。なお、組合蓄積ＤＢ２１２は、図１０および図１１の構成に限定されない。
【００５８】
まず、図１０は、組合蓄積ＤＢ２１２のうち、ユーザごとに蓄積した構成１０１０を示す図である。
【００５９】
構成１０１０は、ユーザＩＤ１０１１とユーザが有する携帯端末１０１２とに対応付けて、接続した経験のある接続デバイス１０１３を記憶する。そして、接続した各接続デバイス１０１３に対応付けて、今まで使用した使用ドライバ１０１４と使用アプリ１０１５とのプログラム組合せを記憶する。なお、プログラム組合せは、データ処理アプリや他の関連プログラムを含んでもよい。このプログラム組合せに対応付けて、その評価の指標となる、利用回数１０１６、各回の満足度を累積した累積満足度１０１７、累積満足度１０１７を回数で除算した平均満足度１０１８を記憶する。なお、評価の指標はこれに限定されない。他の指標１０１９も記憶する。
【００６０】
次に、図１１は、組合蓄積ＤＢ２１２のうち、全ユーザについて蓄積した構成１１２０を示す図である。
【００６１】
構成１１２０は、携帯端末１１２１に対応付けて、接続コネクタ１１２２を記憶する。さらに、各接続コネクタ１１２２に対応付けて、接続した経験のある接続デバイス１１２３を記憶する。以下、使用ドライバ１１２４から平均満足度１１２８までは、評価の指標が全ユーザとなるだけで、図１０の使用ドライバ１０１４から平均満足度１０１８までと同様である。さらに、全ユーザの満足度のうち、最大満足度と最小満足度１１２９を記憶する。なお、評価の指標はこれに限定されない。他の指標も記憶する。
【００６２】
《クラウドサーバのハードウェア構成》
図１２は、本実施形態に係るクラウドサーバ２１０のハードウェア構成を示すブロック図である。
【００６３】
図１２で、ＣＰＵ１２１０は演算制御用のプロセッサであり、プログラムを実行することで図５のクラウドサーバ２１０の各機能構成部を実現する。ＲＯＭ１２２０は、初期データおよびプログラムなどの固定データおよびプログラムを記憶する。また、通信制御部５０１は通信制御部であり、本実施形態においては、ネットワーク３３０を介して携帯端末２２０、２４０および３１１〜３１３と通信する。なお、ＣＰＵ１２１０は１つに限定されず、複数のＣＰＵであっても、あるいは画像処理用のＧＰＵ(Graphics Processing Unit)を含んでもよい。
【００６４】
ＲＡＭ１２４０は、ＣＰＵ１２１０が一時記憶のワークエリアとして使用するランダムアクセスメモリである。ＲＡＭ１２４０には、本実施形態の実現に必要なデータを記憶する領域が確保されている。ユーザ情報１２４１は、通信中のユーザの識別子とその認証情報などである。端末情報１２４２は、通信中の携帯端末の識別子とその認証情報などである。ディスクリプタ１２４３は、携帯端末に接続したデバイスから携帯端末が取得してクラウドサーバ２１０に送信したデバイス情報である。提案プログラムテーブル５０９ａは、クラウドサーバ２１０から携帯端末を通じてユーザに提案するため、接続デバイスを動作させるのに適切なプログラムを選定して記憶するテーブルである（図１３参照）。デバイス用データ１２４４は、デバイスに入出力するためのデータである。送受信メッセージ１２４５は、携帯端末と通信制御部５０１を介して送受信するメッセージである。
【００６５】
ストレージ１２５０には、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。ユーザ登録ＤＢ５０５は、図７に示したデータベースである。デバイスＤＢ５０８は、図８に示したデータベースである。プログラムＤＢ５１０は、図９に示したデータベースである。組合蓄積ＤＢ２１２は、図１０および図１１に示したデータベースである。
【００６６】
ストレージ１２５０には、以下のプログラムが格納される。クラウドサーバ制御プログラム１２５１は、本クラウドサーバ２１０の全体を制御するプログラムである。デバイス情報取得モジュール１２５２は、クラウドサーバ制御プログラム１２５１において、携帯端末に接続したデバイスの情報を取得するモジュールである。プログラム選定モジュール１２５３は、クラウドサーバ制御プログラム１２５１において、組合蓄積ＤＢ２１２を参照して接続したデバイスを動作させる適切なプログラムを選定するモジュールである（図１４参照）。デバイス制御モジュール１２５４は、クラウドサーバ制御プログラム１２５１において、接続したデバイスを制御するモジュールである。デバイス制御モジュール１２５４は、ＵＳＢデバイスドライバを含む。ドライバアプリケーション（１）１２５５は、携帯端末のドライバアプリケーション（２）１６５６と協働して、クラウドサーバ２１０と携帯端末２２０とデバイス２３０を繋ぐためのプログラムである。
【００６７】
なお、図１２には、本実施形態に必須なデータやプログラムのみが示されており、本実施形態に関連しないデータやプログラムは図示されていない。
【００６８】
（提案プログラムテーブル）
図１３は、本実施形態に係る提案プログラムテーブル５０９ａの構成を示す図である。
【００６９】
提案プログラムテーブル５０９ａは、携帯端末ＩＤ１３０１とユーザＩＤ１３０２とに対応付けて、携帯端末に接続した接続デバイス１３０３を記憶する。そして、各接続デバイス１３０３に対応付けて、プログラム選定モジュール１２５３が選定したデバイスドライバとドライバアプリとの組合せを記憶する。デバイスドライバとドライバアプリとの組合せは、ユーザ単位の満足度に基づいたユーザ嗜好の組合せ１３０４と、全ユーザの満足度を考慮したデバイスサーバ推奨の組合せ１３０５と、を含む。
【００７０】
なお、データ処理アプリを含んでもよい。また、さらに他の指標、例えばデバイスの使用環境に適切なプログラムの組合せを選定してもよい。使用環境としては、例えば、速さを重視するか品質を重視するかなども含まれてよい。
【００７１】
《クラウドサーバの処理手順》
図１４は、本実施形態に係るクラウドサーバ２１０の処理手順を示すフローチャートである。このフローチャートは、図１２のＣＰＵ１２１０がＲＡＭ１２４０を使用しながら実行し、図５の機能構成部を実現する。
【００７２】
まず、ステップＳ１４１１において、パケットの受信か否かを判定する。また、ステップＳ１４３１において、パケットの送信か否かを判定する。パケットの受信であればステップＳ１４１３に進み、アンカプセリングして、接続したデバイスのディスクリプタの受信であるか否かを判定する。ディスクリプタでなければ、入力データの受信とする。
【００７３】
ディスクリプタの受信であればステップＳ１４１５に進んで、ディスクリプタから接続したデバイスのデバイス情報を取得する。そして、ステップＳ１４１７において、デバイス情報から組合蓄積ＤＢ２１２を参照してデバイスを適切に動作させるプログラムを選定する（図１５参照）。ステップＳ１４１９においては、選定されたデバイスドライバを起動する。なお、デバイスに対しては、クラウドサーバ２１０によるデバイスアドレスが設定される。次に、ステップＳ１４２１において、ドライバアプリケーションを起動する。必要であれば、携帯端末２２０に対応するアプリケーションをダウンロードする。
【００７４】
入力データの受信であればステップＳ１４２３に進んで、入力データを取得する。そして、ステップＳ１５２５において、必要に応じてデータ処理が行なわれる。なお、データ処理アプリケーションもステップＳ１４１７において選定されてよい。ステップＳ１４２７においては、デバイスからの入力データを記憶する。
【００７５】
一方、デバイスへのパケット送信であればステップＳ１４３３に進んで、出力データを取得する。そして、ステップＳ１４３５において、デバイスへカプセリングした出力データを出力する。すなわち、デバイスドライバおよびドライバアプリケーションに出力データを渡す。
【００７６】
（プログラム選定処理）
図１５は、本実施形態に係るプログラム選定処理Ｓ１４１７の処理手順を示すフローチャートである。
【００７７】
まず、ステップＳ１５０１において、接続したデバイス情報に基づいて組合蓄積ＤＢ２１２の履歴からユーザが使用したプログラムを検索し、満足度の高い適切なプログラムを選定する。次に、ステップＳ１５０３において、接続したデバイス情報に基づいて組合蓄積ＤＢ２１２の履歴から全ユーザの蓄積データを検索し、満足度の高い適切なプログラムを選定する。
【００７８】
ステップＳ１５０５においては、プログラムをユーザに提案してユーザの指定を問い合わせるか否かを判定する。ユーザに問い合わせる場合はステップＳ１５０７に進んで、選定した満足度の高いプログラムをユーザの指定する携帯端末に送信する。そして、ステップＳ１５０９においてユーザによるプログラム指定を待って、プログラム指定を受信するとリターンする。ユーザに問い合わせない場合は、そのままリターンしてプログラムを実行することになる。
【００７９】
なお、ステップＳ１５０５における「プログラムをユーザに提案してユーザの指定を問い合わせるか否かの判定」は、以下のように行なわれる。例えば、クラウドサーバ２１０が、ユーザ登録などの時に、ユーザに問い合わせるか／問い合わせ無しに実行して良いかを設定して、予めテーブルに登録してもよい。かかる設定は、ユーザ単位でなく、更に細かくプログラムグループ単位やプログラム単位で設定してもよい。また、携帯端末２２０からクラウドサーバ２１０へのデバイス情報に、ユーザによる指定が必要か否かの情報が含まれていてもよい。この場合には、デバイス接続毎にユーザが設定してもよいし、予め携帯端末２２０に登録していてもよい。この登録情報も、ユーザ単位でなく、更に細かくプログラムグループ単位やプログラム単位の設定であってもよい。
【００８０】
なお、ステップＳ１５０７において、「ユーザによるプログラム表示の送信先の携帯端末指定」が無ければ、プログラム表示はデバイスを接続した携帯端末２２０に対して行なわれる。「ユーザによるプログラム表示の送信先の携帯端末指定」は、例えば、図２においては、予め携帯端末２２０からユーザが携帯端末２４０へのプログラム表示をして、クラウドサーバ２１０内に記憶してもよい。また、携帯端末２２０からユーザが携帯端末２４０へのプログラム表示の転送を指定してもよい。あるいは、本人あるいは他のユーザが他の携帯端末において選定されたプログラムを見たい場合には、アクセスした他の携帯端末を送信先に指定する。また、予め接続デバイスや接続デバイスグループを利用したアプリケーションにおけるデバイス接続であれば、クラウドサーバ２１０内に予め設定された送信する携帯端末を指定するテーブルを有し、これを参照してもよい。
【００８１】
《携帯端末のハードウェア構成》
図１６は、本実施形態に係る携帯端末２２０、２４０、３１１〜３１３のハードウェア構成を示すブロック図である。以下、携帯端末２２０を代表して説明する。
【００８２】
図１６で、ＣＰＵ１６１０は演算制御用のプロセッサであり、プログラムを実行することで図６の携帯端末２２０の各機能構成部を実現する。ＲＯＭ１６２０は、初期データおよびプログラムなどの固定データおよびプログラムを記憶する。また、通信制御部６０８は通信制御部であり、本実施形態においては、ネットワークを介してクラウドサーバ２１０と通信する。なお、ＣＰＵ１６１０は１つに限定されず、複数のＣＰＵであっても、あるいは画像処理用のＧＰＵを含んでもよい。
【００８３】
ＲＡＭ１６４０は、ＣＰＵ１６１０が一時記憶のワークエリアとして使用するランダムアクセスメモリである。ＲＡＭ１６４０には、本実施形態の実現に必要なデータを記憶する領域が確保されている。ユーザＩＤ１６４１は、携帯端末を使用中のユーザの識別子とその認証情報である。デバイス接続フラグ１６４２は、携帯端末のＵＳＢコネクタ６０１にデバイスを接続したことを示すフラグである。取得したディスクリプタ１６４３は、接続したＵＳＢデバイスから取得したディスクリプタである。デバイス入出力パケット１６４４は、ＵＳＢデバイスに入出力するパケットである。サーバ送受信パケット１６４５は、通信制御部６０８を介してクラウドサーバ２１０と送受信するカプセリングしたパケットである。入出力データ１６４６は、入出力インタフェース１６６０を介して入出力される入出力データを示す。
【００８４】
ストレージ１６５０には、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。携帯端末ＩＤ１６５１は、本携帯端末の識別子である。ストレージ１６５０には、以下のプログラムが格納される。携帯端末制御プログラム１６５２は、本携帯端末２２０の全体を制御する制御プログラムである。接続デバイス制御モジュール１６５３は、携帯端末制御プログラム１６５２において、接続したデバイスを制御するモジュールである。接続デバイス制御モジュール１６５３には、汎用ＵＳＢドライバ１６５４が含まれる。ドライバアプリケーション（２）１６５５は、クラウドサーバ２１０のドライバアプリケーション（１）１２５５と協働して、クラウドサーバ２１０−携帯端末２２０−デバイス２３０を結ぶ。
【００８５】
入出力インタフェース１６６０は、入出力機器との入出力データをインタフェースする。入出力インタフェース１６６０には、表示部６１１、タッチパネルなどからなる操作部６０９が接続される。また、スピーカやマイクなどの音声入出力部６１２が接続される。さらに、ＧＰＳ(Global Positioning System)位置生成部１６６１やカメラ１６６２などが接続される。そして、ＵＳＢコネクタ６０１が接続される。
【００８６】
なお、図１６には、本実施形態に必須なデータやプログラムのみが示されており、本実施形態に関連しないデータやプログラムは図示されていない。
【００８７】
《携帯端末の処理手順》
図１７Ａは、本実施形態に係る携帯端末２２０、２４０、３１１〜３１３の処理手順を示すフローチャートである。このフローチャートは、図１６のＣＰＵ１６１０がＲＡＭ１６４０を使用して実行し、図６の機能構成部を実現する。
【００８８】
まず、ステップＳ１７１１において、ＵＳＢコネクタ６０１にＵＳＢデバイスが接続したか否かを判定する。次に、ステップＳ１７２１において、デバイスからの入力データをクラウドサーバ２１０に送信するか否かを判定する。次に、ステップＳ１７３１においては、クラウドサーバ２１０からデバイスへの出力データ用パケットの受信か否かを判定する。
【００８９】
ＵＳＢデバイスが接続された場合はステップＳ１７１３に進んで、汎用ＵＳＢデバイスを起動する。そして、ステップＳ１７１５において、携帯端末からのデバイスアドレス設定をして、ディスクリプタを取得する。次に、ステップＳ１７１７において、取得したディスクリプタをクラウドサーバ２１０に送信する。ステップＳ１７１９においては、クラウドサーバ２１０の処理に従ってデバイス接続の処理を行なう（図１７Ｂ参照）。
【００９０】
入力データのクラウドサーバ２１０への送信であればステップＳ１７２３に進んで、デバイスからの入力データを取得する。そして、ステップＳ１７２５において、カプセリングしてクラウドサーバ２１０への送信パケットを生成し、ＩＰネットワークを介して送信する。一方、出力パケットのクラウドサーバ２１０からの送信であればステップＳ１７３３に進んで、アンカプセリングしてデバイスへの出力データを取得する。そして、ステップＳ１７３５において、デバイスへＵＳＢパケット化された出力データを出力する。
【００９１】
（デバイス接続処理）
図１７Ｂは、本実施形態に係るデバイス接続処理Ｓ１７１９の処理手順を示すフローチャートである。
【００９２】
まず、ステップＳ１７５１において、クラウドサーバ２１０から満足度の高い適切なプログラムの提案があるか否かを判定する。提案が無ければステップＳ１７５９に進んで、クラウドサーバ２１０の選定した携帯端末用アプリケーションを起動する。
【００９３】
クラウドサーバ２１０からの提案があればステップＳ１７５３に進んで、受信した提案プログラムを表示する。ステップＳ１７５５において、ユーザによる提案プログラムからの使用プログラムの指定を待つ。ユーザの指定があればステップＳ１７５７に進んで、指定されたプログラム情報をクラウドサーバ２１０に送信する。そして、ステップＳ１７５９において、携帯端末用アプリケーションを起動する。
【００９４】
［第３実施形態］
次に、本発明の第３実施形態に係る情報処理システムについて説明する。本実施形態に係る情報処理システムは、上記第２実施形態と比べると、デバイスが携帯端末に接続された時に、携帯端末がデバイス情報を取得できない点で異なる。その他の構成および動作は、第２実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【００９５】
本実施形態によれば、どんなデバイスが接続されても制御が可能である。
【００９６】
《情報処理システムの動作手順》
図１８は、本実施形態に係る情報処理システム１８００における携帯端末がデバイス情報を取得できない場合の動作手順を示すシーケンス図である。
【００９７】
図１８においては、携帯端末２２０がデバイス情報を取得できない例として、デバイスがＲＳ２３２ケーブルからＵＳＢケーブルに接続されている場合を説明する。携帯端末２２０は、ＵＳＢパケットからＲＳ２３２に接続されたデバイスのデバイス情報を取得する特殊ドライバを有しないとする。しかし、これに限定されない。なお、図１８において第２実施形態の図４Ａと同様のステップには同じステップ番号を付して、説明は省略する。
【００９８】
ステップＳ１８０１においては、ＲＳ２３２ケーブルとＵＳＢケーブルによってデバイスが携帯端末２２０に接続される。携帯端末２２０は、ステップＳ４０３以降、汎用ＵＳＢドライバを起動してデバイスのディスクリプタを取得しようとするが、ステップＳ４０７において、ディスクリプタを取得できないまま、タイムアウトをする。
【００９９】
携帯端末２２０は、タイムアウトを検出すると、ステップＳ１８０９において、汎用ＵＳＢドライバの処理を停止する。そして、ステップＳ１８１１において、クラウドサーバ２１０に接続したデバイスの制御を依頼する。
【０１００】
デバイス制御の依頼を受けたクラウドサーバ２１０は、ステップＳ１８１３において、接続したデバイスを動作させ得るドライバ類を順に動作させて、接続したデバイスを判定する。詳細には、まず、ステップＳ１８１５において１組のドライバを起動する。次に、ステップＳ１８１７において、起動したドライバでデバイスをアクセスする。ステップＳ１８１９において、デバイスを制御可能か否かが判定される。制御可能と判定されれば、ステップＳ１８２１において、そのドライバによってデバイス情報を取得する。かかるドライバには、デバイスを駆動可能なドライバと共に、ＲＳ２３２とＵＳＢとの変換を実現するドライバが含まれる。
【０１０１】
デバイス情報が獲得できれば、ステップＳ４１１において、組合蓄積ＤＢ２１２を参照して、デバイスドライバを含む適切なプログラムを選定する。以降は、図４Ａと同様の処理が行なわれる。
【０１０２】
［第４実施形態］
次に、本発明の第４実施形態に係る情報処理システムについて説明する。本実施形態に係る情報処理システムは、上記第２実施形態と比べると、クラウドサーバで使用するプログラムではなく、蓄積された履歴に基づいてデバイス使用時に置かれた環境要因により適切なデバイス設定が選定される点で異なる。その他の構成および動作は、第２および第３実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【０１０３】
本実施形態によれば、携帯端末にデバイスが接続された場合に、ネットワークおよび携帯端末を介してデバイスを適切に制御するためのデバイス設定を選定できる。
【０１０４】
《情報処理システム》
図１９および図２０を参照して、本実施形態に係る情報処理システムの構成および動作を説明する。
【０１０５】
（動作説明）
図１９は、本実施形態に係る情報処理システム１９００の動作を説明する図である。なお、第２実施形態の図２と同様の構成要素には同じ参照番号を付して、説明は省略する。
【０１０６】
図１９の情報処理システム１９００は、情報処理装置であるクラウドサーバ１９１０を有する。クラウドサーバ１９１０は、デバイスと環境要因に対応する設定情報や代替情報との組合せの履歴を蓄積する組合蓄積ＤＢ１９１２を参照して、組合選定部１９１１において、携帯端末２２０に接続したデバイス２３０を適切に動作させる設定情報や代替情報を選定する。なお、選定される設定情報は、デバイス２３０に対してクラウドサーバ１９１０から自動的に設定されてもよいし、図１９のように、タブレットである携帯端末２４０に表示して、ユーザにより設定されてもよい。
【０１０７】
携帯端末２２０のコネクタ（例えば、ＵＳＢコネクタ）にデバイス２３０が接続されると、クラウドサーバ１９１０は、携帯端末２２０を経由してデバイス２３０を認知する。そして、携帯端末２２０またはデバイス２３０が検知した環境要因に基づいて、デバイス２３０に設定された設定データの履歴や携帯端末２２０とデバイス２３０との組合せの履歴を蓄積した組合蓄積ＤＢ１９１２に基づいて、適切な設定データあるいは適切な携帯端末２２０とデバイス２３０との組合せが選定される。そして、選定された適切な設定データあるいは適切な携帯端末２２０とデバイスとの組合せは、携帯端末２４０の表示画面２４１上のウインドウ１９４２内に提案される。図１９では、ウインドウ１９４２内に、携帯端末２２０またはデバイス２３０が検知した環境要因に基づいて選定された、携帯端末２２０への過去のデバイス２３０の接続時に使用して満足度の高かった設定データを含むデバイス設定１９４３が提案されている。また、携帯端末とデバイスとの組合せ履歴における過去の満足度の累積などから、デバイスの代替提案と携帯端末の代替提案とを含む代替１９４４が提案されている。
【０１０８】
なお、図１９においては、デバイス２３０を接続した携帯端末２２０とは異なる携帯端末２４０に、デバイス設定１９４３やデバイスや携帯端末の代替１９４４を提案したが、携帯端末２２０の表示画面２２１上に提案してもよい。
（動作手順）
図２０は、本実施形態に係る情報処理システム１９００の動作手順を示すシーケンス図である。なお、第２実施形態の図４Ａと同様のステップには同じステップ番号を付して、説明を省略する。また、ディスクリプタ取得までの手順は同じであるので、ステップＳ４０９の携帯端末２２０からクラウドサーバ１９１０へのディスクリプタ送信から図示する。
【０１０９】
ステップＳ２０１１において、クラウドサーバ１９１０は、デバイス２３０および／または携帯端末２２０が検知した環境要因を取得する。なお、環境要因には、図１９の例のようなデジタルカメラであれば、天気や明るさなどが含まれ、プリンタであれば、温度や湿度などが含まれる。ステップＳ２０１３においては、過去の履歴を蓄積した組合蓄積ＤＢ１９１２に基づいて、検知した環境要因に対して適切な設定データが選定される。また、ステップＳ２０１５においては、過去の履歴を蓄積した組合蓄積ＤＢ１９１２に基づいて、検知した環境要因に対して適切な代替デバイスや代替携帯端末が選定される。
【０１１０】
ステップＳ２０１７においては、選定された設定情報や代替情報を、ユーザによる設定や代替のために、携帯端末２２０あるいは他の携帯端末２４０に送信して問い合わせる。なお、設定情報は問い合わせをせずに、クラウドサーバ１９１０からデバイス２３０に設定することもできる。以下、ステップＳ４１５におけるＵＳＢデバイスドライバの起動以降は、図４Ａと同様であるので省略する。
【０１１１】
《クラウドサーバの機能構成》
図２１は、本実施形態に係るクラウドサーバ１９１０の機能構成を示すブロック図である。なお、図２１において、第２実施形態の図５と同様の機能構成部には同じ参照番号を付して、説明は省略する。また、煩雑さを避けるため第２実施形態の処理に対応する機能構成部の接続線は削除している。
【０１１２】
環境要因情報受信部２１１３は、デバイス２３０あるいは携帯端末２２０が検知した環境要因情報を、ネットワークを介して携帯端末２２０から受信する。受信された環境要因に対応付けてデバイス設定やデバイスと携帯端末との組合せの履歴が組合蓄積ＤＢ１９１２に蓄積される（図２２参照）。組合選定部２１１１は、デバイス判定部５０７からのデバイス情報と、環境要因情報受信部２１１３からの環境要因情報とに従って、デバイスの設定情報や代替デバイス、代替携帯端末を選定する。選定された情報は、提案情報を記憶する提案情報テーブル２１０９ａ（図２３参照）を有する提案情報送信部２１０９から携帯端末に送信される。
【０１１３】
（組合蓄積ＤＢ）
図２２は、本実施形態に係る組合蓄積ＤＢ１９１２の構成を示す図である。なお、図２２に示すデータは、図１０および図１１のデータに追加して蓄積されてよい。
【０１１４】
図２２の上段は、接続デバイスの設定値の履歴を蓄積するデータベース２２１０である。データベース２２１０は、接続デバイス２２１１に対応付けて、種々の環境要因２２１２とそれに対応する設定値２２１３の履歴と、各設定値２２１３の満足度２２１４を記憶する。
【０１１５】
また、図２２の下段は、接続デバイスと携帯端末との組合せの履歴を蓄積するデータベース２２２０である。データベース２２２０は、接続デバイス２２２１に対応付けて、種々のデバイス環境要因２２２２とそれに対応する携帯端末２２２３の履歴と、接続デバイスと携帯端末との組合せの満足度２２２４を記憶する。
【０１１６】
（提案情報テーブル）
図２３は、本実施形態に係る提案情報テーブル２１０９ａの構成を示す図である。
【０１１７】
提案情報テーブル２１０９ａは、接続したデバイス２３０１に対応付けて、設定値２３０２とその満足度２３０３、接続した携帯端末２３０４とその満足度２３０５、を記憶する。
【０１１８】
《クラウドサーバの処理手順》
図２４は、本実施形態に係るクラウドサーバ１９１０の処理手順を示すフローチャートである。このフローチャートは、図１２のＣＰＵ１２１０がＲＡＭ１２４０を使用しながら実行し、図２１の機能構成部を実現する。なお、第２実施形態の図１４と同様のステップには同じステップ番号を付して、説明を省略する。
【０１１９】
ステップＳ２４４１において、携帯端末２２０から受信したパケットが入力データである場合に、さらに、環境要因情報であるか否かを判定する。環境要因情報であればステップＳ２４４３に進んで、環境要因情報により組合蓄積ＤＢ１９１２を検索して、適切なデバイス設定値を選定する。また、環境要因情報により組合蓄積ＤＢ１９１２を検索して、適切なデバイスと携帯端末との組合せを選定する。そして、ステップＳ２４４７において、選定したデバイス設定値や代替情報を携帯端末２２０あるいは２４０に送信する。
【０１２０】
［第５実施形態］
次に、本発明の第５実施形態に係る情報処理システムについて説明する。本実施形態に係る情報処理システムは、上記第２および第３実施形態と比べると、蓄積された履歴に基づいて、携帯端末に接続されたデバイスに対応する適切な他のデバイスを選定する点で異なる。その他の構成および動作は、第２乃至第４実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【０１２１】
本実施形態によれば、携帯端末にデバイスが接続された場合に、ネットワークおよび携帯端末を介して接続すべき適切な他のデバイスを選定できる。
【０１２２】
《情報処理システム》
図２５および図２６を参照して、本実施形態に係る情報処理システムの構成および動作を説明する。
【０１２３】
（動作説明）
図２５は、本実施形態に係る情報処理システム２５００の動作を説明する図である。なお、第２実施形態の図２および第４実施形態の図１９と同様の構成要素には同じ参照番号を付して、説明は省略する。
【０１２４】
図２５の情報処理システム２５００は、情報処理装置であるクラウドサーバ２５１０を有する。クラウドサーバ２５１０は、接続されたデバイスと対応付けられるデバイスとの組合せの履歴を蓄積する組合蓄積ＤＢ２５１２を参照して、組合選定部２５１１において、携帯端末２２０に接続したデバイス２３０に対応する適切なデバイスを選定する。なお、本実施形態では、携帯端末２２０への入力デバイスの接続に対応する出力デバイスの選定を説明するが、これに限定されない。出力デバイスに対応する入力デバイスの選定、あるいは入力デバイスに対応する他の入力デバイスの選定や、出力デバイスに対応する他の出力デバイスの選定であってもよい。
【０１２５】
携帯端末２２０のコネクタ（例えば、ＵＳＢコネクタ）にデバイス２３０が接続されると、クラウドサーバ２５１０は、携帯端末２２０を経由してデバイス２３０を認知する。そして、携帯端末２２０に接続したデバイス２３０に基づいて、デバイス２３０と対応するデバイスとの組合せの履歴を蓄積した組合蓄積ＤＢ２５１２に基づいて、適切なデバイス２３０と他のデバイスとの組合せが選定される。そして、選定された適切なデバイス２３０と他のデバイスとの組合せは、携帯端末２４０の表示画面２４１上のウインドウ２５４２内に提案される。図２５では、ウインドウ２５４２内に、携帯端末２２０に接続した入力デバイスであるデジタルカメラに対応して選定された、満足度の高かった出力デバイス２５４３が提案されている。
【０１２６】
なお、図１９においては、デバイス２３０を接続した携帯端末２２０とは異なる携帯端末２４０に、出力デバイス２５４３を提案したが、携帯端末２２０の表示画面２２１上に提案してもよい。
【０１２７】
（動作手順）
図２６は、本実施形態に係る情報処理システム２５００の動作手順を示すシーケンス図である。なお、第２実施形態の図４Ａと同様のステップには同じステップ番号を付して、説明を省略する。また、ディスクリプタ取得までの手順は同じであるので、ステップＳ４０９の携帯端末２２０からクラウドサーバ２５１０へのディスクリプタ送信から図示する。
【０１２８】
ステップＳ２６１１において、クラウドサーバ２５１０は、過去の履歴を蓄積した組合蓄積ＤＢ２５１２に基づいて、入力デバイスであるデバイス２３０に対応する適切な出力デバイスを選定する。ステップＳ２６１３においては、出力デバイス情報を携帯端末２２０あるいは他の携帯端末２４０に送信する。
【０１２９】
以下、他の携帯端末２４０に対応する出力デバイスを接続する例を示すが、これに限定されない。携帯端末へのＵＳＢデバイス接続時の処理は、図４Ａと同様である、まず、ステップＳ２６１５において、携帯端末２４０のＵＳＢコネクタにＵＳＢケーブルで出力デバイスが接続される。ステップＳ２６１７において汎用ＵＳＢドライバが起動して、携帯端末２４０と出力デバイスとの間のパケットのやり取りが開始される。携帯端末２４０は出力デバイスをクリアした後、ステップＳ２６１９において、携帯端末２４０をホストとするデバイスアドレスを設定する。そして、携帯端末２４０は、ステップＳ２６２１において、出力デバイスに設定されているディスクリプタを取得する。ディスクリプタには、デバイス・ディスクリプタ、コンフィギュレーション・ディスクリプタ、インタフェース・ディスクリプタ、エンドポイント・ディスクリプタ、を含む。携帯端末２４０は、ステップＳ２６２３において、取得したディスクリプタをＩＰカプセリングしてクラウドサーバ２５１０に送信する。以下、ステップＳ４１１以降のプログラム選定および起動処理は、図４Ａと同様なので図示は省略する。
【０１３０】
その後、例えば、入力デバイスから出力デバイスへのデータ転送が以下のように行なわれる。ステップＳ２６３１において、携帯端末２２０は、入力デバイスから携帯端末２２０へのバルク転送（ＩＮ）により入力データを取得する。そして、ステップＳ２６３３において、入力データをＩＰカプセリングしてクラウドサーバ２５１０に送信する。クラウドサーバ２５１０は、受信したパケットをアンカプセリングして入力データを取得し、ステップＳ２６３５において記憶する。必要であれば、ステップＳ２６３７において、データ処理が行なわれる。
【０１３１】
次に、ステップＳ２６３９において、カプセリングした出力データがクラウドサーバ２５１０から携帯端末２４０に送信される。携帯端末２４０は、出力データのＵＳＢパケットを生成して、ステップＳ２６４１において、バルク転送（ＯＵＴ）により出力デバイスに送出する。
【０１３２】
《クラウドサーバの機能構成》
図２７は、本実施形態に係るクラウドサーバ２５１０の機能構成を示すブロック図である。なお、図２７において、第２実施形態の図５と同様の機能構成部には同じ参照番号を付して、説明は省略する。また、煩雑さを避けるため第２実施形態の処理に対応する機能構成部の接続線は削除している。
【０１３３】
デバイス判定部５０７でディスクリプタから判定した接続デバイスの組合せの履歴が組合蓄積ＤＢ２５１２に蓄積される（図２８参照）。組合選定部２７１１は、デバイス判定部５０７からの携帯端末２２０に接続したデバイス情報に従って、対応するデバイスを選定する。選定されたデバイス情報は、対応デバイスを記憶する対応デバイステーブル２７０９ａ（図２９参照）を有する対応デバイス送信部２７０９から携帯端末に送信される。
【０１３４】
（組合蓄積ＤＢ）
図２８は、本実施形態に係る組合蓄積ＤＢ２５１２の構成を示す図である。なお、図２８に示すデータは、図１０および図１１のデータ、あるいは図２２のデータに追加して蓄積されてよい。
【０１３５】
図２８は、第１デバイスと第２デバイスとの対応の履歴を蓄積するデータベース２８１０である。本実施形態では、例えば、第１デバイスが入力デバイスであり、第２デバイスが出力デバイスである。データベース２８１０は、第１デバイス２８１１に対する、携帯端末を含む接続端末２８１２、デバイスドライバ２８１３、デバイスアプリ２８１４の組合せを記憶する。その組合せに対応して、第２デバイス２８１５に対する、携帯端末を含む接続端末２８１６、デバイスドライバ２８１７、デバイスアプリ２８１８の組合せを記憶する。これら全体の組合せに対応付けて、満足度２８１９を記憶する。
【０１３６】
（対応デバイステーブル）
図２９は、本実施形態に係る対応デバイステーブル２７０９ａの構成を示す図である。
【０１３７】
対応デバイステーブル２７０９ａは、携帯端末２２０に接続したデバイスのデバイスＩＤ２９０１に対応付けて、入出力２９０２、接続デバイスに対応して選定されたデバイスドライバ２９０３、選定されたドライバアプリ２９０４、を記憶する。そして、接続デバイスに対応して選定された適切なデバイスのデバイスＩＤ２９０５、入出力２９０６、使用するデバイスドライバ２９０７、使用するドライブアプリ２９０８、その満足度２９０９を記憶する。
【０１３８】
《クラウドサーバの処理手順》
図３０は、本実施形態に係るクラウドサーバ２５１０の処理手順を示すフローチャートである。このフローチャートは、図１２のＣＰＵ１２１０がＲＡＭ１２４０を使用しながら実行し、図２７の機能構成部を実現する。なお、第２実施形態の図１４と同様のステップには同じステップ番号を付して、説明を省略する。
【０１３９】
ステップＳ１４１５において携帯端末２２０に接続したデバイス２３０から取得したデバイス情報に基づいて、ステップＳ３０１７において、組合蓄積ＤＢ２５１２を参照して接続デバイスに対応する適切なデバイスを選定する。そして、ステップＳ３０１９において、選定した適切なデバイスを携帯端末２２０あるいは２４０に通知する。
【０１４０】
［第６実施形態］
次に、本発明の第６実施形態に係る情報処理システムについて説明する。本実施形態に係る情報処理システムは、上記第２、第４および第５実施形態の処理をユーザが携帯端末から選択できる点で異なる。その他の構成および動作は、第２乃至第５実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【０１４１】
本実施形態によれば、第２、第４および第５実施形態の処理の組合せを、ユーザが適切に選定できる。
【０１４２】
《情報処理システムの動作説明》
図３１は、本実施形態に係る情報処理システム３１００の動作を説明する図である。なお、第２実施形態の図２、第４実施形態の図１９、または第５実施形態の図２５と同様の構成要素には同じ参照番号を付して、説明は省略する。
【０１４３】
情報処理システム３１００は、上記第２実施形態、第４実施形態および第５実施形態を組み合わせて、その適切な組合せの対象を切り替え可能な実施形態である。クラウドサーバ３１１０は、第２実施形態の図１０および図１１、第４実施形態の図２２、および第５実施形態の図２８を含む組合蓄積ＤＢ３１１２を有する。また、第２実施形態の図１３、第４実施形態の図２３、および第５実施形態の図２９を切り替えるテーブル３１１１を有する。
【０１４４】
携帯端末２４０へのクラウドサーバ３１１０からの提案は、それぞれに表示されたスイッチ３１４１、３１４２、３１４３によって互いに切り替わるように構成されている。
【０１４５】
なお、クラウドサーバ３１１０の構成および動作は、第２実施形態、第４実施形態および第５実施形態を組み合わせたものであるので、説明は省略する。
【０１４６】
［第７実施形態］
次に、本発明の第７実施形態に係る情報処理システムについて説明する。本実施形態に係る情報処理システムは、上記第２乃至第６実施形態と比べると、接続したデバイスの予想通信量に基づいて、携帯端末の通信容量（帯域）を拡張できる点で異なる。その他の構成および動作は、第２乃至第６実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【０１４７】
本実施形態によれば、携帯端末にデバイスが接続された場合に、ネットワークおよび携帯端末を介するデバイスとの通信容量をデバイスの通信量に対応して選定できる。
【０１４８】
《情報処理システム》
図３２および図３３を参照して、本実施形態に係る情報処理システムの構成および動作を説明する。
【０１４９】
（動作説明）
図３２は、本実施形態に係る情報処理システム３２００の動作を説明する図である。なお、第２実施形態乃至第６実施形態と同様の構成要素には同じ参照番号を付して、説明は省略する。
【０１５０】
図３２の情報処理システム３２００は、携帯端末３２２０と情報処理装置であるクラウドサーバ３２１０とを有する。ここで、スマートフォンである携帯端末３２２０は、４Ｇ／３Ｇなどによるデータ通信と、ＷｉＦｉ(wireless fidelity）による音声通信とが同時に動作可能である。また、携帯端末３２２０には、ＵＳＢケーブルでアダプタ３２３０が接続されている。アダプタ３２３０は、複数のコネクタを有する。また、クラウドサーバ３２１０は、接続されたデバイスから予想される通信量に十分な通信容量と通信方式との組合せの履歴を蓄積する組合蓄積ＤＢ３２１２を参照して、組合選定部３２１１において、携帯端末３２２０に接続したデバイスに対応する適切な通信方式を選定する。
【０１５１】
図３２は、キーボード３２４０とポインティングデバイス３２５０とが既に携帯端末３２２０に接続されて動作している場合に、大型ディスプレイ３２６０を携帯端末３２２０に追加接続した状況を示している。当初、携帯端末３２２０とクラウドサーバ３２１０は、４Ｇまたは３Ｇによる通信でキーボード３２４０とポインティングデバイス３２５０との制御およびデータの入出力をしている。
【０１５２】
ここで、大型ディスプレイ３２６０が接続されて、その予測通信量から、携帯端末３２２０の４Ｇあるいは３Ｇでの通信容量では足らない可能性が判明すると、図３２の中央図に示したように、携帯端末３２２０には“通信容量が不足する可能性があります。ＷｉＦｉ通信加えて通信しますか”とのメッセージが報知される。
【０１５３】
ユーザが“はい”のボタン３２２３をタッチすると、図３２の右図に示したように、クラウドサーバ３２１０と携帯端末３２２０との通信は、４Ｇ／３ＧとＷｉＦｉとの両方で行なわれて通信容量を増加させ、通信量の増大をカバーする。
【０１５４】
なお、実際には、ＩＰネットワーク中は両通信方式のルートを区別することは出来ず、携帯端末２２０との最後の無線通信の段階で２通信方式に分離される。また、通信方式は、４Ｇ、３Ｇ、ＷｉＦｉに限定されない。携帯端末３２２０が有する複数の通信チャネルが通信容量増加のために使用される。また、図３２では、接続するデバイスの増加の例を示したが、例えば、通信容量の減少などの環境変化をクラウドサーバ３２１０が予測して、複数の通信チャネルを使用して通信容量増加の処理を行なってもよい。
【０１５５】
なお、図３２においては、デバイスを接続した携帯端末３２２０に、通信チャネル追加を提案したが、先述の実施形態のように他の携帯端末２４０の表示画面２４１上に提案してもよい。
【０１５６】
（動作手順）
図３３は、本実施形態に係る情報処理システム３２００の動作手順を示すシーケンス図である。なお、第２実施形態の図４Ａと同様のステップには同じステップ番号を付して、説明を省略する。また、ディスクリプタ取得までの手順は同じであるので、ステップＳ４０９の携帯端末３２２０からクラウドサーバ２５１０へのディスクリプタ送信から図示する。
【０１５７】
ステップＳ３３１１において、クラウドサーバ３２１０は、過去の履歴を蓄積した組合蓄積ＤＢ３２１２に基づいて、クラウドサーバ３２１０と携帯端末３２２０間の通信量を予測する。そして、ステップＳ３３１３において、通信容量（帯域）が予測した通信量に対して十分か否かを判定する。かかる判定は、予測通信量の最大値あるいはその何割かを超える通信容量があるかにより判断するのが望ましい。通信容量が十分であればステップＳ４１５に進み、ＵＳＢデバイスドライバを起動する。それ以降の手順は、図４Ａと同様である。
【０１５８】
一方、通信容量が十分でない場合はステップＳ３３１５に進んで、過去の履歴を蓄積した組合蓄積ＤＢ３２１２に基づいて、クラウドサーバ３２１０と携帯端末３２２０間の適切な通信方式を選定する。そして、ステップＳ３３１７において、通信方式の変更を携帯端末３２２０あるいは２４０に提案して、ユーザに問い合わせる。なお、ステップＳ３３１７における問い合わせをせずに、クラウドサーバ３２１０が自動的に適切な通信方式に変更してもよい。
【０１５９】
ユーザからの通信方式指定を受けると、ステップＳ３３１９において、指定された通信方式に変更する。そして、ステップＳ３３２１において、ＵＳＢデバイスドライバを起動する。ステップＳ３３２３においては、第１チャネル用のドライバアプリを起動する。ステップＳ３３２５においては、第２チャネル用のドライバアプリを起動する。上記プログラムが起動されれば、ステップＳ３３２７において、第１デバイス（キーボード３２４０／ポインティングデバイス３２５０）の入出力が実行され、ステップＳ３３２９において、追加された第２デバイス（大型ディスプレイ３２６０）の入出力が実行される。
【０１６０】
なお、第１デバイスと第２デバイスとの分割は、図３３と異なる分割でもよい。あるいは、入力データと出力データとを分割して異なるチャネルで通信してもよい。
【０１６１】
《クラウドサーバの機能構成》
図３４は、本実施形態に係るクラウドサーバ３２１０の機能構成を示すブロック図である。なお、図３４において、第２実施形態の図５と同様の機能構成部には同じ参照番号を付して、説明は省略する。また、煩雑さを避けるため第２実施形態の処理に対応する機能構成部の接続線は削除している。
【０１６２】
デバイス判定部５０７でディスクリプタから判定した接続デバイスの組合せの履歴と対応する通信量および通信方式の組合せが組合蓄積ＤＢ３２１２に蓄積される（図３６参照）。通信量予測部３４１３は、携帯端末３２２０に接続されたデバイスに基づいて、組合蓄積ＤＢ３２１２を参照して通信量を予測する。組合選定部３４１１は、通信量予測部３４１３の予測した通信量に従って、適切な通信方式を選定する。選定された通信方式は、通信方式の提案を記憶する提案通信方式テーブル３４０９ａ（図３７参照）を有する通信方式送信部３４０９から携帯端末に送信される。
【０１６３】
また、４Ｇ（３Ｇ）／ＷｉＦｉの分離／結合部３４１４は、携帯端末３２２０への送信データの通信経路を４Ｇ／３ＧとＷｉＦｉとに分離、あるいは携帯端末３２２０からの受信データの結合を行なう。
【０１６４】
《携帯端末の機能構成》
図３５は、本実施形態に係る携帯端末３２２０の機能構成を示すブロック図である。なお、図３５において、第２実施形態の図６と同様の機能構成部には同じ参照番号を付して、説明は省略する。
【０１６５】
通信分離部３５１５は、クラウドサーバ３２１０への通信経路を４Ｇ／３ＧとＷｉＦｉとに分離する。図６と同じ通信制御部６０８は４Ｇ／３Ｇの通信を行ない、第２通信制御部３５０８はＷｉＦｉの通信を行なう。
【０１６６】
（組合蓄積ＤＢ）
図３６は、本実施形態に係る組合蓄積ＤＢ３２１２の構成を示す図である。
【０１６７】
組合蓄積ＤＢ３２１２の上段は、携帯端末の各通信方式における通信容量の履歴データ３６１０である。通信容量の履歴データ３６１０は、携帯端末３６１１に対応付けて、４Ｇのみの通信容量３６１２、３Ｇのみの通信容量３６１３、ＷｉＦｉのみの通信容量３６１４、４Ｇ＋ＷｉＦｉの通信容量３６１５、３Ｇ＋ＷｉＦｉの通信容量３６１６を記憶する。
【０１６８】
組合蓄積ＤＢ３２１２の中段は、接続デバイスに対応する通信量の履歴データ３６２０である。通信量の履歴データ３６２０は、接続デバイス３６２１に対応付けて、最大通信量３６２２、平均通信量３６２３、ＵＳＢの最大通信量３６２４、ＵＳＢの平均通信量３６２５を記憶する。なお、ＵＳＢ以外のデバイス接続であれば、対応する最大通信量と平均通信量とを記憶する。
【０１６９】
組合蓄積ＤＢ３２１２の下段は、接続デバイス組に対応する通信量の履歴データ３６３０である。すなわち、複数のデバイスが接続した場合に、個々のデバイスの通信量の総和とならないことがあるので準備される。接続デバイス組の通信量の履歴データ３６３０は、接続デバイス組み３６３１に対応付けて、最大通信量３６３２、平均通信量３６３３、ＵＳＢの最大通信量３６３４、ＵＳＢの平均通信量３６３５を記憶する。なお、ＵＳＢ以外のデバイス接続であれば、対応する最大通信量と平均通信量とを記憶する。また、ＵＳＢと他のデバイス接続の混在であれば、それらの組合せの通信量の履歴が蓄積される。
【０１７０】
（提案通信方式テーブル）
図３７は、本実施形態に係る提案通信方式テーブル３４０９ａの構成を示す図である。
【０１７１】
提案通信方式テーブル３４０９ａは、接続デバイスあるいは接続デバイス組み３７０１に対応付けて、予測最大通信量３７０２、予測平均通信量３７０３、接続している携帯端末３７０４、現状の通信方式３７０５、通信方式の変更要否のフラグ３７０６、変更提案方式３７０７を記憶する。例えば、第１ラインでは、３Ｇから４Ｇ＋ＷｉＦｉへの変更が提案される。第２ラインでは、通信容量が十分であり通信方式の変更は必要ない。第３ラインでは、３ＧからＷｉＦｉへの変更が提案される。
【０１７２】
《クラウドサーバの処理手順》
図３８は、本実施形態に係るクラウドサーバ３２１０の処理手順を示すフローチャートである。このフローチャートは、図１２のＣＰＵ１２１０がＲＡＭ１２４０を使用しながら実行し、図３８の機能構成部を実現する。なお、第２実施形態の図１４と同様のステップには同じステップ番号を付して、説明を省略する。
【０１７３】
ステップＳ１４１５において携帯端末３２２０に接続したデバイスから取得したデバイス情報に基づいて、ステップＳ３８１１において、組合蓄積ＤＢ３２１２を参照して接続デバイスのトータル通信量を予測する。ステップＳ３８１３においては、予測した通信量が現在の携帯端末３２２０の通信容量で通信ＯＫか否かを判定する。通信ＯＫであれば処理を終了する。通信容量が不足していればステップＳ３８１５に進んで、組合蓄積ＤＢ３２１２を参照して提案する適切な通信方式を選定する。そして、選定した通信方式を携帯端末３２２０に通知する。
【０１７４】
パケット受信においてデバイスからの入力データであれば、ステップＳ３８２１において、選定された通信方式が４Ｇ／３Ｇ＋ＷｉＦｉか否かを判定する。４Ｇ／３Ｇ＋ＷｉＦｉであればステップＳ３８２３に進んで、両方式で入力データを取得する。そして、ステップＳ３８２５において、両方式で取得した入力データを、必要であればマージする。
【０１７５】
一方、携帯端末３２２０へのパケット送信であればステップＳ３８４１に進んで、選定された通信方式が４Ｇ／３Ｇ＋ＷｉＦｉか否かを判定する。４Ｇ／３Ｇ＋ＷｉＦｉであればステップＳ３８４３に進んで、取得した出力データを４Ｇ／３Ｇ経由とＷｉＦｉ経由とに分離する。かかる分離方法は限定されない。できるだけ通信容量の増加量が多い方が、かつ携帯端末３２２０への負荷の増大が少ない分離方法が望ましい。ステップＳ３８４５において、４Ｇまたは３Ｇ経路のパケット送信を行なう。そして、ステップＳ３８４７において、ＷｉＦｉ経路のパケット送信を行なう。
【０１７６】
［第８実施形態］
次に、本発明の第８実施形態に係る情報処理システムについて説明する。本実施形態に係る情報処理システムは、上記第２乃至第７実施形態と比べると、携帯端末をルータが代替している点で異なる。その他の構成および動作は、第２および第７実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【０１７７】
本実施形態によれば、ルータにデバイスが接続された場合に、ネットワークおよびルータを介してデバイスを適切に制御するデバイスドライバとドライバアプリケーションとの組合せを選定できる。
【０１７８】
《情報処理システムの動作説明》
図３９は、本実施形態に係る情報処理システム３９００の動作を説明する図である。なお、図３９において、第２実施形態の図２と同様の構成要素には同じ参照番号を付して、説明は省略する。
【０１７９】
ルータ３９２０は、クラウドサーバ２１０からの通信の経路に存在し、複数のデバイスコネクタを有している。デバイスコネクタはＵＳＢコネクタが望ましい。ルータ３９２０には、キーボード３９３１とポインティングデバイス３９３２とが接続されている。以下、クラウドサーバ２１０は、ルータ３９２０を特定のデータ処理機能を有しない端末として第２実施形態と同様の処理が可能である。
【０１８０】
［第９実施形態］
次に、本発明の第９実施形態に係る情報処理システムについて説明する。本実施形態に係る情報処理システムは、上記第２乃至第８実施形態と比べると、携帯端末やルータをノート型ＰＣが代替している点で異なる。その他の構成および動作は、第２および第８実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【０１８１】
本実施形態によれば、ノート型ＰＣにデバイスが接続された場合に、ネットワークおよびノート型ＰＣを介してデバイスを適切に制御するデバイスドライバとドライバアプリケーションとの組合せを選定できる。
【０１８２】
《情報処理システムの動作説明》
図４０は、本実施形態に係る情報処理システム４０００の動作を説明する図である。なお、図４０において、第２実施形態の図２と同様の構成要素には同じ参照番号を付して、説明は省略する。
【０１８３】
ノート型パーソナルコンピュータ（以下ＰＣ）４０２０には、ＵＳＢケーブルにより、プロジェクタ４０３１が接続されている。クラウドサーバ２１０は、組合蓄積ＤＢ２１２を参照して、デバイスドライバおよびドライバアプリケーションを選定して、クラウドサーバ２１０で起動する。
【０１８４】
［他の実施形態］
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されものではない。本発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
【０１８５】
また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を推奨実現する制御プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされる制御プログラム、あるいはその制御プログラムを格納した媒体、その制御プログラムをダウンロードさせるＷＷＷ(World Wide Web)サーバも、本発明の範疇に含まれる。
【図１】
2013200704.tif 000003
【図２】
2013200704.tif 000004
【図３】
2013200704.tif 000005
【図４Ａ】
2013200704.tif 000006
【図４Ｂ】
2013200704.tif 000007
【図４Ｃ】
2013200704.tif 000008
【図４Ｄ】
2013200704.tif 000009
【図５】
2013200704.tif 000010
【図６】
2013200704.tif 000011
【図７】
2013200704.tif 000012
【図８】
2013200704.tif 000013
【図９】
2013200704.tif 000014
【図１０】
2013200704.tif 000015
【図１１】
2013200704.tif 000016
【図１２】
2013200704.tif 000017
【図１３】
2013200704.tif 000018
【図１４】
2013200704.tif 000019
【図１５】
2013200704.tif 000020
【図１６】
2013200704.tif 000021
【図１７Ａ】
2013200704.tif 000022
【図１７Ｂ】
2013200704.tif 000023
【図１８】
2013200704.tif 000024
【図１９】
2013200704.tif 000025
【図２０】
2013200704.tif 000026
【図２１】
2013200704.tif 000027
【図２２】
2013200704.tif 000028
【図２３】
2013200704.tif 000029
【図２４】
2013200704.tif 000030
【図２５】
2013200704.tif 000031
【図２６】
2013200704.tif 000032
【図２７】
2013200704.tif 000033
【図２８】
2013200704.tif 000034
【図２９】
2013200704.tif 000035
【図３０】
2013200704.tif 000036
【図３１】
2013200704.tif 000037
【図３２】
2013200704.tif 000038
【図３３】
2013200704.tif 000039
【図３４】
2013200704.tif 000040
【図３５】
2013200704.tif 000041
【図３６】
2013200704.tif 000042
【図３７】
2013200704.tif 000043
【図３８】
2013200704.tif 000044
【図３９】
2013200704.tif 000045
【図４０】
2013200704.tif 000046