(57)【特許請求の範囲】
【請求項１】
通信インタフェースを介して入力デバイスが接続された場合に、自機が該入力デバイスを制御できるか否かを判定する判定手段と、
前記判定手段により、自機が前記入力デバイスを制御できないと判定された場合に、無線通信ネットワークを介して接続されたサーバに対して、前記入力デバイスの制御をリクエストする要求手段と、
前記入力デバイスと前記サーバ間の通信が確立して前記入力デバイスを前記サーバが制御できるように、前記通信インタフェースおよび前記無線通信ネットワークを介する前記入力デバイスと前記サーバとの間の信号転送を制御する信号転送制御手段と、
を備えた携帯端末と、
前記要求手段からのリクエストに応答して、前記入力デバイスとの間に確立された通信により前記入力デバイスを制御するサーバと、
を備えたことを特徴とする情報処理システム。
【請求項２】
前記判定手段は、さらに、前記入力デバイスの提供するデータを自機で処理できるか否かを判定し、
前記要求手段は、前記判定手段が、前記入力デバイスの提供するデータを自機で処理できないと判定した場合に、さらに、前記サーバに対して前記入力デバイスの提供するデータの処理をリクエストし、
前記信号転送制御手段は、さらに、前記入力デバイスの提供するデータを前記サーバが処理できるように、前記通信インタフェースおよび前記無線通信ネットワークを介する前記入力デバイスから前記サーバへのデータ転送を制御し、
前記サーバは、前記要求手段からのリクエストに応答して、前記入力デバイスと前記サーバとの間に確立された通信により前記入力デバイスの提供するデータを取得して処理することを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記サーバは、
前記入力デバイスの提供するデータを取得するデータ取得手段と、
前記データ取得手段で取得したデータを前記携帯端末で処理可能なデータに変換する変換手段と、
前記変換手段で変換された前記携帯端末で処理可能なデータを、前記無線通信ネットワークを介して前記携帯端末に送信する送信手段と、
を備え、
前記携帯端末は、
前記携帯端末で処理可能なデータを受信する受信手段をさらに備えたことを特徴とする請求項１または２に記載の情報処理システム。
【請求項４】
前記サーバは、
前記入力デバイスの種類と、前記入力デバイスから入力したデータの出力先を問い合わせる問い合わせメッセージとの対応関係を記憶するメッセージテーブルをさらに備え、
前記携帯端末に接続された前記入力デバイスに対応する前記問い合わせメッセージを前記テーブルから読み出して、前記携帯端末に表示させることを特徴とする請求項１、２または３に記載の情報処理システム。
【請求項５】
前記サーバは、
前記入力デバイスの種類と、前記入力デバイスから取得したデータに対して施すことのできる処理の候補との対応関係を記憶する処理候補テーブルをさらに備え、
前記携帯端末に接続された前記入力デバイスに対応する処理の候補を前記処理候補テーブルから読み出して、前記携帯端末に選択可能に表示させることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理システム。
【請求項６】
通信インタフェースを介して入力デバイスが接続された場合に、自機が該入力デバイスを制御できるか否かを判定する判定ステップと、
前記判定ステップにより、自機が前記入力デバイスを制御できないと判定された場合に、無線通信ネットワークを介して接続されたサーバに対して、前記入力デバイスの制御をリクエストする要求ステップと、
前記要求ステップのリクエストに応答して、前記入力デバイスとの間に確立された通信により前記入力デバイスを制御する制御ステップと、
前記入力デバイスと前記サーバとの間の通信が確立して前記入力デバイスを前記サーバが制御できるように、前記通信インタフェースおよび前記無線通信ネットワークを介する前記入力デバイスと前記サーバとの間の信号転送を制御する信号転送制御ステップと、
を含むことを特徴とする情報処理方法。
【請求項７】
通信インタフェースを介して入力デバイスが接続された場合に、該入力デバイスを認識し、自機が該入力デバイスを制御できるか否かを判定する判定手段と、
前記判定手段により、自機が前記入力デバイスを制御できないと判定された場合に、無線通信ネットワークを介して接続されたサーバに対して、前記入力デバイスの制御をリクエストする要求手段と、
前記入力デバイスと前記サーバとの間の通信が確立して前記入力デバイスを前記サーバが制御できるように、前記通信インタフェースおよび前記無線通信ネットワークを介する前記入力デバイスと前記サーバとの間の信号転送を制御する信号転送制御手段と、
を備えたことを特徴とする携帯端末。
【請求項８】
前記判定手段は、さらに、前記入力デバイスの提供するデータを自機で処理できるか否かを判定し、
前記要求手段は、前記判定手段が、前記入力デバイスの提供するデータを自機で処理できないと判定した場合に、さらに、前記サーバに対して前記入力デバイスの提供するデータの処理をリクエストし、
前記信号転送制御手段は、さらに、前記入力デバイスの提供するデータを前記サーバが処理できるように、前記通信インタフェースおよび前記無線通信ネットワークを介する前記入力デバイスから前記サーバへのデータ転送を制御することを特徴とする請求項７に記載の携帯端末。
【請求項９】
前記入力デバイスの提供するデータを取得して、前記携帯端末で処理可能なデータに変換する変換手段と、
前記変換手段で変換された前記携帯端末で処理可能なデータを、前記無線通信ネットワークを介して前記携帯端末に送信する送信手段と、
を備えた前記サーバから前記携帯端末で処理可能なデータを、無線通信ネットワークを介して受信する受信手段を備えることを特徴とする請求項７または８に記載の携帯端末。
【請求項１０】
通信インタフェースを介して入力デバイスが接続された場合に、該入力デバイスを認識し、自機が該入力デバイスを制御できるか否かを判定する判定ステップと、
前記判定ステップにより、自機が前記入力デバイスを制御できないと判定された場合に、無線通信ネットワークを介して接続されたサーバに対して、前記入力デバイスの制御をリクエストする要求ステップと、
前記入力デバイスと前記サーバとの間の通信が確立して前記入力デバイスを前記サーバが制御できるように、前記通信インタフェースおよび前記無線通信ネットワークを介する前記入力デバイスと前記サーバとの間の信号転送を制御する信号転送制御ステップと、
を含むことを特徴とする携帯端末の制御方法。
【請求項１１】
通信インタフェースを介して入力デバイスが接続された場合に、該入力デバイスを認識し、自機が該入力デバイスを制御できるか否かを判定する判定ステップと、
前記判定ステップにより、自機が前記入力デバイスを制御できないと判定された場合に、無線通信ネットワークを介して接続されたサーバに対して、前記入力デバイスの制御をリクエストする要求ステップと、
前記入力デバイスと前記サーバとの間の通信が確立して前記入力デバイスを前記サーバが制御できるように、前記通信インタフェースおよび前記無線通信ネットワークを介する前記入力デバイスと前記サーバとの間の信号転送を制御する信号転送制御ステップと、
をコンピュータに実行させることを特徴とする携帯端末の制御プログラム。
【請求項１２】
請求項１乃至５のいずれか１項に記載の情報処理システムに含まれるサーバであって、前記要求手段からのリクエストに応答して、前記入力デバイスとの間に確立された通信により前記入力デバイスを制御する制御手段を備えたことを特徴とするサーバ。
【請求項１３】
前記要求手段からのリクエストに応答して、前記入力デバイスと前記サーバとの間に確立された通信により前記入力デバイスの提供するデータを取得して処理する処理手段
をさらに備えたことを特徴とする請求項１２に記載のサーバ。
【請求項１４】
請求項１乃至５のいずれか１項に記載の情報処理システムに含まれるサーバの制御方法であって、
前記要求手段からのリクエストに応答して、前記入力デバイスとの間に確立された通信により前記入力デバイスを制御することを特徴とするサーバの制御方法。
【請求項１５】
請求項１乃至５のいずれか１項に記載の情報処理システムに含まれるサーバの制御プログラムであって、前記要求手段からのリクエストに応答して、前記入力デバイスとの間に確立された通信により前記入力デバイスを制御する制御ステップ
をコンピュータに実行させることを特徴とするサーバの制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理方法、および携帯端末、サーバ、それらの制御方法ならびに制御プログラムに関する。
【背景技術】
【０００２】
上記技術分野において、特許文献１には、複数の周辺機器（例えば、ディスプレイ、マウス、キーボード、プリンタ等）を集約して接続するリモートデスクトップシステムが開示されている。また、無線ＬＡＮ（Local Area Network）もしくは移動体通信網を介してリモートサーバに接続可能な携帯通信端末（例えば、スマートフォン等）も開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１０２３０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記文献に記載の技術では、携帯電話機自体に入力デバイスを接続することは開示されておらず、さらに、サーバが携帯電話機を介してその入力デバイスを制御する技術についても触れられていない。すなわち、携帯電話機を入力デバイスに接続するだけでは、様々な入力デバイスからデータを取得することができなかった。
【０００５】
本発明の目的は、上述の課題を解決する技術を提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明に係るシステムは、
通信インタフェースを介して入力デバイスが接続された場合に、自機が該入力デバイスを制御できるか否かを判定する判定手段と、
前記判定手段により、自機が前記入力デバイスを制御できないと判定された場合に、無線通信ネットワークを介して接続されたサーバに対して、前記入力デバイスの制御をリクエストする要求手段と、
前記入力デバイスと前記サーバ間の通信が確立して前記入力デバイスを前記サーバが制御できるように、前記通信インタフェースおよび前記無線通信ネットワークを介する前記入力デバイスと前記サーバとの間の信号転送を制御する信号転送制御手段と、
を備えた携帯端末と、
前記要求手段からのリクエストに応答して、前記入力デバイスとの間に確立された通信により前記入力デバイスを制御するサーバと、
を備えたことを特徴とする。
【０００７】
上記目的を達成するため、本発明に係る方法は、
通信インタフェースを介して入力デバイスが接続された場合に、自機が該入力デバイスを制御できるか否かを判定する判定ステップと、
前記判定ステップにより、自機が前記入力デバイスを制御できないと判定された場合に、無線通信ネットワークを介して接続されたサーバに対して、前記入力デバイスの制御をリクエストする要求ステップと、
前記要求ステップのリクエストに応答して、前記入力デバイスとの間に確立された通信により前記入力デバイスを制御する制御ステップと、
前記入力デバイスと前記サーバとの間の通信が確立して前記入力デバイスを前記サーバが制御できるように、前記通信インタフェースおよび前記無線通信ネットワークを介する前記入力デバイスと前記サーバとの間の信号転送を制御する信号転送制御ステップと、
を備えたことを特徴とする。
【０００８】
上記目的を達成するため本発明に係る携帯端末は、
通信インタフェースを介して入力デバイスが接続された場合に、該入力デバイスを認識し、自機が該入力デバイスを制御できるか否かを判定する判定手段と、
前記判定手段により、自機が前記入力デバイスを制御できないと判定された場合に、無線通信ネットワークを介して接続されたサーバに対して、前記入力デバイスの制御をリクエストする要求手段と、
前記入力デバイスと前記サーバとの間の通信が確立して前記入力デバイスを前記サーバが制御できるように、前記通信インタフェースおよび前記無線通信ネットワークを介する前記入力デバイスと前記サーバとの間の信号転送を制御する信号転送制御手段と、
を備えたことを特徴とする。
【０００９】
上記目的を達成するため、本発明に係る携帯端末の制御方法は、
通信インタフェースを介して入力デバイスが接続された場合に、該入力デバイスを認識し、自機が該入力デバイスを制御できるか否かを判定する判定ステップと、
前記判定ステップにより、自機が前記入力デバイスを制御できないと判定された場合に、無線通信ネットワークを介して接続されたサーバに対して、前記入力デバイスの制御をリクエストする要求ステップと、
前記入力デバイスと前記サーバとの間の通信が確立して前記入力デバイスを前記サーバが制御できるように、前記通信インタフェースおよび前記無線通信ネットワークを介する前記入力デバイスと前記サーバとの間の信号転送を制御する信号転送制御ステップと、
を含むことを特徴とする。
【００１０】
上記目的を達成するため、本発明に係る携帯端末の制御プログラムは、
通信インタフェースを介して入力デバイスが接続された場合に、該入力デバイスを認識し、自機が該入力デバイスを制御できるか否かを判定する判定ステップと、
前記判定ステップにより、自機が前記入力デバイスを制御できないと判定された場合に、無線通信ネットワークを介して接続されたサーバに対して、前記入力デバイスの制御をリクエストする要求ステップと、
前記入力デバイスと前記サーバとの間の通信が確立して前記入力デバイスを前記サーバが制御できるように、前記通信インタフェースおよび前記無線通信ネットワークを介する前記入力デバイスと前記サーバとの間の信号転送を制御する信号転送制御ステップと、
をコンピュータに実行させることを特徴とする。
【００１１】
上記目的を達成するため、本発明に係るサーバは、
上記情報処理システムに含まれるサーバであって、前記要求手段からのリクエストに応答して、前記入力デバイスとの間に確立された通信により前記入力デバイスを制御する制御手段を備えたことを特徴とする。
【００１２】
上記目的を達成するため、本発明に係るサーバの制御方法は、
上記情報処理システムに含まれるサーバの制御方法であって、前記要求手段からのリクエストに応答して、前記入力デバイスとの間に確立された通信により前記入力デバイスを制御する制御ステップを含むことを特徴とする。
【００１３】
上記目的を達成するため、本発明に係るサーバの制御プログラムは、
上記情報処理システムに含まれるサーバの制御プログラムであって、前記要求手段からのリクエストに応答して、前記入力デバイスとの間に確立された通信により前記入力デバイスを制御する制御ステップをコンピュータに実行させることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、携帯端末に接続された様々な入力デバイスからデータを取得することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１実施形態に係る情報処理システムの構成を示すブロック図である。
【図２】本発明の第２実施形態に係る情報処理システムの構成概要を示す図である。
【図３】本発明の第２実施形態に係る情報処理システムの構成を示すブロック図である。
【図４】本発明の第２実施形態に係る情報処理システム全体の処理の流れを示すシーケンス図である。
【図５Ａ】本発明の第２実施形態におけるスマートフォンの手続きの流れを示すフローチャートである。
【図５Ｂ】本発明の第２実施形態におけるスマートフォンの手続きの流れを示すフローチャートである。
【図６】本発明の第２実施形態におけるスマートフォンに表示されるメッセージを示す図である。
【図７Ａ】本発明の第２実施形態に係る情報処理システムでのパケット送受信処理の一例を示す図である。
【図７Ｂ】本発明の第２実施形態に係る情報処理システムでのパケット送受信処理の他の例を示す図である。
【図７Ｃ】本発明の第２実施形態に係る情報処理システムでのパケット送受信処理のさらに他の例を示す図である。
【図７Ｄ】本発明の第２実施形態に係る情報処理システムで用いられるテーブルの構成を示す図である。
【図７Ｅ】本発明の第２実施形態に係る情報処理システムで用いられるテーブルの構成を示す図である。
【図７Ｆ】本発明の第２実施形態に係る情報処理システムで用いられるテーブルの構成を示す図である。
【図７Ｇ】本発明の第２実施形態に係る情報処理システムの変形例を示す図である。
【図７Ｈ】本発明の第２実施形態に係る情報処理システムの他の変形例を示す図である。
【図８Ａ】本発明の第２実施形態に係る情報処理システムでのサーバとデバイス間での通信確立処理の一例を示す図である。
【図８Ｂ】本発明の第２実施形態に係る情報処理システムでのサーバとデバイス間での通信確立処理の一例を示す図である。
【図８Ｃ】本発明の第２実施形態に係る情報処理システムでのサーバとデバイス間での通信確立処理の一例を示す図である。
【図８Ｄ】本発明の第２実施形態に係る情報処理システムでのサーバとデバイス間での通信確立処理の一例を示す図である。
【図９】本発明の第２実施形態におけるサーバのハードウェア構成を示す図である。
【発明を実施するための形態】
【００１６】
以下に、本発明を実施するための形態について、図面を参照して、例示的に詳しく説明記載する。ただし、以下の実施の形態に記載されている、構成、数値、処理の流れ、機能要素などは一例に過ぎず、その変形や変更は自由であって、本発明の技術範囲を以下の記載に限定する趣旨のものではない。
【００１７】
［第１実施形態］
本発明の第１実施形態としての情報処理システム１００について、図１を用いて説明する。情報処理システム１００は、携帯電話機に接続された入力デバイスが提供するデータを、サーバを介して変換し、携帯電話機で出力可能にするものである。
【００１８】
図１に示すように、情報処理システム１００は、携帯電話機１１０と、サーバ１３０と、入力デバイス１４０とを含む。携帯電話機１１０は、判定部１１１と、要求部１１２と、信号転転送制御部１１３とを備える。
【００１９】
携帯電話機１１０の判定部１１１は、通信インタフェース１５０を介して入力デバイス１４０が接続された場合に、自機１１０が入力デバイス１４０を制御できるか否かを判定する。要求部１１２は、判定部１１１により、自機１１０が入力デバイス１４０を制御できないと判定された場合に、無線通信ネットワークを介して接続されたサーバ１３０に対して、入力デバイス１４０の制御をリクエストする。信号転送制御部１１３は、入力デバイス１４０とサーバ１３０間の通信が確立して入力デバイス１４０をサーバ１３０が制御できるように、通信インタフェース１５０および無線通信ネットワークを介する入力デバイス１４０とサーバ１３０間の信号転送を制御する。
【００２０】
サーバ１３０は、要求部１１２からのリクエストに応答して、入力デバイス１４０との間に確立された通信により入力デバイス１４０を制御する。
【００２１】
以上の構成および動作により、本実施形態に係る情報処理システムによれば、サーバは携帯電話機に接続された入力デバイスを制御して、入力デバイスに記憶されたコンテンツデータを取得することができる。これにより、携帯電話機に接続された様々な入力デバイスからデータを取得することができる。
【００２２】
［第２実施形態］
次に本発明の第２実施形態に係る情報処理システム２００について、図２を用いて説明する。図２は、本実施形態に係る情報処理システム２００の概要を説明するための図である。情報処理システム２００は、スマートフォンなどの携帯電話機２１０と、クラウドサーバ２３０とをネットワーク２５０を介して通信可能に接続されている。また、スマートフォン２１０は、ＤＶＤプレーヤ２４０に接続されている。
【００２３】
スマートフォン２１０は、ＤＶＤプレーヤ２４０と、ＵＳＢ（Universal Serial Bus）などの通信インタフェースを介して接続されている。スマートフォン２１０は、ＤＶＤプレーヤ２４０に接続されると、まず、デバイスを識別できるか否か判定し、識別できた場合、自機でデータ取得できるファイルシステムか判定し、さらに、取得したデータが自機で処理できるデータ形式か否か判定する。判定した結果、自機で処理できない場合には、スマートフォン２１０はクラウドサーバ２３０にネットワーク２５０を介して接続し、ＤＶＤプレーヤ２４０の制御をリクエストする。そして、スマートフォン２１０は、クラウドサーバ２３０とＤＶＤプレーヤ２４０との通信を制御するために信号転送を制御する。
【００２４】
クラウドサーバ２３０は、ＤＶＤプレーヤ２４０の制御をスマートフォン２１０からリクエストされると、スマートフォン２１０によりＤＶＤプレーヤ２４０との間に確立された通信によりＤＶＤプレーヤ２４０を制御する。
【００２５】
（情報処理システムの構成）
次に、情報処理システム２００の内部構成について、図３を用いて説明する。図３は、本実施形態に係る情報処理システム２００の構成を示すブロック図である。
【００２６】
スマートフォン２１０は、接続検知部３１１と、デバイス判定部３１２と、ファイルシステム判定部３１３と、データ形式判定部３１４と、ユーザ問合せ部３１５と、無線通信部３１６とを備える。また、スマートフォン２１０は、ＵＳＢインタフェース３１９と、コンテンツ記憶部３２０と、表示部３２１とを備える。そして、無線通信部３１６は、送信部３１７と、受信部３１８とを備える。
【００２７】
一方、クラウドサーバ２３０は、仮想ＰＣ３３０ａ〜３３０ｃを有する。そして、仮想ＰＣ３３０ａは、データ受信部３３１と、データ変換部３３２と、仮想ＵＳＢインタフェース３３３と、データ送信部３３４とを備える。さらに、ＤＶＤプレーヤ２４０は、ＤＶＤ（Digital Video Disc）３４１を着脱可能であり、ＵＳＢインタフェース３４２を備えている。
【００２８】
スマートフォン２１０の接続検知部３１１は、通信インタフェースとしてのＵＳＢインタフェース３１９を介して何らかのデバイスと接続されたことを検知する。デバイス判定部３１２は、ＵＳＢインタフェース３１９を介して接続されたデバイスがＤＶＤプレーヤ２４０であることを認識すると、自機で制御できるか否か判定する。すなわち、デバイス判定部３１２は、接続を検知したデバイスの種類、ＤＶＤプレーヤ２４０の製造元、ＤＶＤプレーヤ２４０の製品タイプなどを検知してＤＶＤプレーヤ２４０を制御するドライバを有しているか否か判定する。
【００２９】
ファイルシステム判定部３１３は、ＤＶＤ３４１に記憶されたデータのファイルシステムを確認し、スマートフォン２１０からＤＶＤ３４１にアクセスできるか否か判定する。例えば、ＤＶＤ用のファイルシステムとしてUniversal Disk Format （ユニバーサルディスクフォーマット、UDF）が知られている。
【００３０】
データ形式判定部３１４は、ＤＶＤプレーヤ２４０に記憶されたデータのデータ形式が、自機のアプリケーションで対応できるものか判定する。
【００３１】
ユーザ問合せ部３１５は、ドライバを有していない場合、ＤＶＤ３４１のファイルシステムに対応できない場合、あるいは、データ形式に対応していない場合に、ユーザに対して、クラウドサーバ２３０へのアクセスを行なうか否か問い合わせる。特に、ユーザ問合せ部３１５は、データ形式を判定した結果、自機で処理できないデータ形式である場合には、クラウドサーバ２３０にデータの処理をリクエストするか否かユーザに対して問い合わせる。送信部３１７は、ユーザにより選択されたリクエスト結果をクラウドサーバ２３０の仮想ＰＣ３３０ａに送信する。
【００３２】
受信部３１８は、仮想ＵＳＢインタフェース３３３から受信したＩＰ（Internet Protocol）のパケットをアンカプセリングしてＵＳＢのデータに変換する。そして、ＵＳＢインタフェース３１９を介してＤＶＤプレーヤ２４０のＵＳＢインタフェース３４２にデータを送信する。一方、ＤＶＤプレーヤ２４０は、スマートフォン２１０を介して受け取った仮想ＰＣ３３０ａからのコマンドに応答してＵＳＢインタフェース３４２を介して、ＵＳＢインタフェース３１９にデータ（例えばコンテンツデータ）を送る。
【００３３】
送信部３１７は、ＵＳＢインタフェース３１９を介してＤＶＤ３４１からのデータを受け取り、ＩＰ形式のデータにカプセリングして、データ受信部３３１に転送する。
【００３４】
コンテンツ記憶部３２０は、仮想ＰＣ３３０ａから送信された変換済みのデータを記憶し、表示部３２１は、変換済のデータを表示するディスプレイである。
【００３５】
クラウドサーバ２３０の仮想ＰＣ３３０ａは、データ受信部３３１においてスマートフォン２１０のリクエストを受信する。データ変換部３３２は、ＤＶＤプレーヤ２４０から取得したデータをスマートフォン２１０からのリクエストに基づいて、スマートフォン２１０で処理可能（表示可能）なデータ形式に変換する。仮想ＵＳＢインタフェース３３３は、ＤＶＤプレーヤ２４０との間で通信を確立し、スマートフォン２１０からのリクエストに基づいて記憶部３４１に記憶されているデータを読み出して取得する。そして、データ送信部３３４は、変換済みのデータをスマートフォン２１０に送信する。
【００３６】
ＤＶＤプレーヤ２４０はＵＳＢインタフェース３４２を介して、スマートフォン２１０のＵＳＢインタフェース３１９と接続を行なう。
【００３７】
（情報処理システム２００全体の処理の流れ）
次に、情報処理システム２００全体の処理の流れについて、図４に示すシーケンス図を用いて説明する。
【００３８】
ステップＳ４０１において、入力デバイスをスマートフォン２１０に接続すると、ステップＳ４０３において、スマートフォン２１０の接続検知部３１１は、ＵＳＢインタフェースを介してデバイス（ここではＤＶＤプレーヤ２４０）が接続されたことを検知する。ステップＳ４０９において、スマートフォン２１０は、ＤＶＤプレーヤ２４０を自機で制御可能か否か判定する（Ｓ４０９ａ）。ＤＶＤプレーヤ２４０を自機で制御可能と判定すると、さらに、スマートフォン２１０は、ファイルシステムを確認し、ＤＶＤ２４１のデータを自機で取得可能か否か判定する（Ｓ４０９ｂ）。さらに、スマートフォン２１０は、ＤＶＤプレーヤ２４０に記憶されたコンテンツデータを自機で表示再生可能か否か判定する（Ｓ４０９ｃ）。
【００３９】
ステップＳ４１０では、入力デバイスから取得したデータをどこにどのように出力するかを、ユーザに確認する。例えば「ＤＶＤ内のコンテンツを認識できました。どこに出力しますか。」といった表示をスマートフォン２１０の表示部３２１に対して行なう。また例えば「スマートフォン」「外部ディスプレイ」「メール添付」「動画サイトにアップロード」などといった選択肢を表示してもよい。
【００４０】
ステップＳ４０９のいずれかの判定で、「不可」の判断をした場合、または、ステップＳ４０９で「可」の判定であっても、ステップＳ４１０でクラウドサーバ経由の出力が選択された場合、ステップＳ４１１において、スマートフォン２１０は、クラウドサーバ２３０にログインする。このとき、図６に示すように、スマートフォン２１０のユーザに確認をとる。ステップＳ４１３において、送信部３１７は、クラウドサーバ２３０に対して、ＤＶＤプレーヤ２４０からのデータ取得をリクエストする。
【００４１】
さらに、ステップＳ４１５において、クラウドサーバ２３０の仮想ＵＳＢインタフェース３３３は、ＤＶＤプレーヤ２４０との通信確立用のデータを生成する。データ送信部３３４は、通信確立用データをカプセリングし、スマートフォン２１０に送信する（Ｓ４１７）。ステップＳ４１９において、スマートフォン２１０は、クラウドサーバ２３０から受信した通信確立用データをアンカプセリングする。ステップＳ４２１において、ＵＳＢインタフェース３１９は、アンカプセリングされた通信確立用データをＤＶＤプレーヤ２４０に送信する。ステップＳ４２３において、スマートフォン２１０とクラウドサーバ２３０と、ＤＶＤプレーヤ２４０との間の通信が確立する。
【００４２】
クラウドサーバ２３０との通信が確立すると、ステップＳ４２５において、クラウドサーバ２３０は、ＤＶＤプレーヤ２４０を駆動して、ＤＶＤ３４１に記憶されたデータを読み出してスマートフォン２１０に送信させる。ステップＳ４２７において、スマートフォン２１０は、ＤＶＤプレーヤ２４０から送信されたデータをクラウドサーバ２３０に送信するために中継する。ステップＳ４２９において、クラウドサーバ２３０のデータ受信部３３１は、スマートフォン２１０で中継されたデータを受信する。クラウドサーバ２３０は、受信したデータを記憶または送信する。ステップＳ４３１において、データ送信部３３４は、受け取ったデータを必要に応じて変換してスマートフォン２１０に送信する。ステップＳ４３３において、スマートフォン２１０は、受け取った変換済みデータを出力（表示、再生）する。
【００４３】
（スマートフォンでの処理の流れ）
図５Ａを用いて、スマートフォン２１０におけるより詳しい処理の流れを説明する。ステップＳ５０１において、接続検知部３１１はデバイスの接続を検知すると、ステップＳ５０３に進む。ステップＳ５０３において、デバイス判定部３１２は接続されたデバイスを認識しようとする。デバイスを認識できない場合には、ステップＳ５２７に進み、クラウドサーバ２３０に処理をリクエストするか否かについて、ユーザに確認する表示を行なう。接続デバイスを認識できた場合には、ステップＳ５０５に進み、ＵＳＢインタフェース３１９は、デバイスディスクリプタを確認する。ステップＳ５０９において、ＵＳＢインタフェース３１９は、接続されたデバイスを制御するためのドライバを自機に有するか否か確認し、有しなければステップＳ５２７に進む。有する場合には、ステップＳ５１１に進み、ファイルシステム判定部３１３は、デバイスのファイルシステムを確認し、自機で対応可能なファイルシステムであれば、ステップＳ５１３に進む。一方、自機で対応不可能なファイルシステムであれば、ステップＳ５２７に進む。
【００４４】
ステップＳ５１５において、データ形式判定部３１４は、ＤＶＤプレーヤ２４０のＤＶＤ２４１に記憶されたデータのデータ形式を判定する。ステップＳ５１７において、スマートフォン２１０は、そのデータ形式のデータを処理できるアプリケーションを保有しているか確認する。保有していない場合には、ステップＳ５３５に進む。一方、保有している場合には、ステップＳ５１９に進み、処理メニューを表示する。例えば、「スマートフォンに表示」「外部ディスプレイに表示」「メール添付」「動画サイトにアップロード」「データベースに記憶」などといった選択肢を表示する。
【００４５】
ステップＳ５１９において、ユーザから、自機でデータ処理を行なう旨の指示を受け付けるとステップＳ５２３に進み、ＤＶＤプレーヤ２４０からデータを取得する。ステップＳ５２５において、表示部３２１は、取得したデータを表示する（出力する）。
【００４６】
一方、ステップＳ５２７において、スマートフォン２１０は、サーバにデータの処理をリクエストするか否かを確かめるべく、ユーザに対する確認メッセージを表示する。ステップＳ５２９において、クラウドサーバ２３０にリクエストをしない場合には、処理を終了する。一方、クラウドサーバ２３０にリクエストをする場合には、ステップＳ５３１に進んでログイン処理を行ない、リクエストを要求する。ステップＳ５３３に進み、クラウドサーバ２３０からデータ形式通知があれば、ステップＳ５１７に進む。一方、クラウドサーバ２３０からデータ形式の通知がなければ、ステップＳ５３３において通知の有無を確認する作業を繰り返す。
【００４７】
一方、データ処理用アプリケーションがない場合には、ステップＳ５３５において、スマートフォン２１０は、クラウドサーバ２３０にデータ処理をリクエストするか否かを確かめるべく、ユーザに対する確認メッセージを表示する。ステップＳ５３７において、クラウドサーバ２３０にデータ処理をリクエストしない場合には終了する。一方、クラウドサーバ２３０にデータ処理をリクエストする場合には、ステップＳ５３９に進んでログイン処理を行ない、送信部３１７は、クラウドサーバ２３０に対してデータ処理のリクエストを送信する。このとき、同時にクラウドサーバ２３０に対して、スマートフォン２１０が処理（再生、表示）できるデータ形式を通知する。
【００４８】
クラウドサーバ２３０にデータ処理をリクエストした後、ステップＳ５１９に進んで、処理メニューを表示する。ここでの処理メニューで、クラウドサーバ２３０からのメール送信や、ウェブサイトへのアップロードが指示された場合、スマートフォン２１０からクラウドサーバ２３０に対して、そのようなリクエストが送られる。一方、ユーザから自機で再生したい旨の指示があると、ステップＳ５２３において、クラウドサーバ２３０から、スマートフォン２１０で表示可能なように変換されたコンテンツデータを取得する。そしてその場合、ステップＳ５２５においてスマートフォン２１０の表示部３２１にＤＶＤの再生画像を表示する。
【００４９】
（クラウドサーバ２３０での処理の流れ）
図５Ｂを用いて、情報処理システム２００におけるクラウドサーバ２３０の処理の流れを説明する。ステップＳ５５１において、クラウドサーバ２３０の仮想ＰＣ３３０ａは、スマートフォン２１０からのログインを検知すると、登録したユーザであるか否か確認する。登録したユーザでなければ、処理を終了する。登録したユーザであれば、ステップＳ５５３において、仮想ＰＣ３３０ａは、スマートフォン２１０からの通信確立リクエストを続いて受信する。ステップＳ５５７において、仮想ＰＣ３３０ａは、ＵＳＢプロトコルで生成した通信確立用データ（ＵＳＢパケット）をＩＰプロトコルでカプセリングする。
【００５０】
ステップＳ５５７において、仮想ＰＣ３３０ａは、カプセリングした通信確立用データをＤＶＤプレーヤ２４０に送信する。これによりステップＳ５５９において、仮想ＰＣ３３０ａはＤＶＤプレーヤ２４０との間で通信を確立する。次に、テップＳ５６１において、仮想ＰＣ３３０ａは、ＤＶＤプレーヤ２４０からデータを取得する。ステップＳ５６３において、仮想ＰＣ３３０ａは、取得したデータを不図示のメモリに記憶する。ステップＳ５６５において、データ受信部３３１は、ユーザからの指示を取得する。ステップＳ５６７において、仮想ＰＣ３３０ａは、データを記憶することを要求するリクエストか否か確認し、記憶する必要があれば、ステップＳ５６９に進み、サーバ２３０に用意されたストレージ（不図示）に記憶する。
【００５１】
一方、記憶する必要がなければステップＳ５７１に進み、データ送信部３３４は、他のデバイスにデータを送信する必要があるか否か確認する。送信する必要があれば、ステップＳ５７３に進み指定されたアドレスに送信する。他のデバイスに送信する必要がなければ、ステップＳ５７５に進み、スマートフォン２１０で再生表示するか否か確認し、スマートフォン２１０にも送信する必要がなければ処理を終了する。スマートフォン２１０に送信する必要があれば、ステップＳ５７７に進み、データ変換部３３２はスマートフォン２１０において処理可能なデータ形式に変換した後、データ送信部３３４はデータを送信する。
【００５２】
（スマートフォンの表示）
図６は、スマートフォン２１０に表示されるメッセージを示す図である。スマートフォン２１０の表示部３２１は、ユーザに対して、何らかのデバイスがＵＳＢインタフェース３１９に接続されたことを確認した旨のメッセージ６０１を表示する。また、併せて、このデバイスが入力デバイスなのか出力デバイスなのかを確認することができないため、クラウドサーバ２３０に接続してデバイスの制御をリクエストするか否かのメッセージ６０１を表示する。このメッセージ６０１により、スマートフォン２１０は、メッセージを表示する（ＹＥＳ）か否（ＮＯ）かをユーザに選択させる。
【００５３】
〈デバイス情報の取得方法〉
図７Ａ、図７Ｂ、図７Ｃは、ステップＳ４０９、Ｓ５０３で説明したディスクリプタのやりとりについてより詳しく説明する図である。これらの図は、仮想ＰＣ３３０ａとスマートフォン２１０とＤＶＤプレーヤ２４０との間でやり取りされるパケットデータについて示している。
【００５４】
図７Ａは、入出力デバイスがうまく検出できない場合のシーケンスを示す。まず、スマートフォン２１０とＤＶＤプレーヤ２４０とが接続されると、セットアップ・ステージＳ７０１において、トークン・パケットとデータ・パケットとを、スマートフォン２１０からＤＶＤプレーヤ２４０に送信する。ＤＶＤプレーヤ２４０は、これに応えてハンドシェイク・パケットをスマートフォン２１０に送信する。適正なハンドシェイク・パケットが返ってくるか否かにより、自機でＤＶＤプレーヤ２４０を制御できるか判断する。
【００５５】
例えば、スマートフォン２１０に接続されることがあらかじめ想定されているデバイスであれば、適正なハンドシェイク・パケットが返り、データ・ステージ、ステータス・ステージを続ける。それにより取得したデバイスディスクリプタに対応して、スマートフォン２１０内に用意されたデバイスドライバを駆動することで、入出力デバイスを制御できる。しかし、スマートフォン２１０が接続を想定されているデバイスは非常に数が少ない。セットアップ・ステージＳ７０１においてハンドシェイク・パケットが返ってこない場合、ここで、ＵＳＢ切断処理を行ない（Ｓ７０２）、スマートフォン２１０は仮想ＰＣ３３０ａに対してデータ取得のリクエストを行なう（Ｓ４１３）。
【００５６】
次に仮想ＰＣ３３０ａは、スマートフォン２１０を介して、ＤＶＤプレーヤ２４０との間で、セットアップ・ステージＳ７０３を再度行ない、データ・ステージＳ７０４に進むことにより、デバイスディスクリプタといったデバイス情報を取得する。仮想ＰＣ３３０ａは、世の中に存在する様々な入出力デバイスとも接続可能となるように数多くのドライバおよびデータ変換モジュールをあらかじめ備えている。そのため、仮想ＰＣ３３０ａとＤＶＤプレーヤ２４０との間では、セットアップ・ステージＳ７０３、データ・ステージＳ７０４、ステータス・ステージＳ７０５と順調に進み、ＤＶＤプレーヤ２４０と接続が適正に確立する。
【００５７】
図７Ｂは、スマートフォン２１０がＤＶＤプレーヤ２４０から取得したデバイスディスクリプタに対応するドライバをスマートフォン２１０が有していない場合のシーケンスを示す。この場合、スマートフォン２１０とＤＶＤプレーヤ２４０との間でセットアップ・ステージＳ７１１、データ・ステージＳ７１２、ステータス・ステージＳ７１３を行なう。この３つのステージによって取得したデバイスディスクリプタに対応するデバイスドライバをスマートフォン２１０が有していないと判断すると、ＵＳＢ切断処理Ｓ７１４を行ない、スマートフォン２１０は仮想ＰＣ３３０ａに対してデータ取得のリクエストを行なう（Ｓ４１３）。
【００５８】
そして、スマートフォン２１０は、仮想ＰＣ３３０ａに対してＤＶＤプレーヤ２４０との接続を要求する。スマートフォン２１０とＤＶＤプレーヤ２４０との間のＵＳＢ接続を切断後、仮想ＰＣ３３０ａにおいて、再度、セットアップ・ステージＳ７１５、データ・ステージＳ７１６、ステータス・ステージＳ７１７を行なう。これにより仮想ＰＣ３３０ａは、ＤＶＤプレーヤ２４０から直接デバイスディスクリプタを取得して、デバイスにあったドライバを駆動できる。
【００５９】
また、図７Ｃに示すように、スマートフォン２１０とＤＶＤプレーヤ２４０との間のセットアップ・ステージＳ７２１およびデータ・ステージＳ７２２においてＤＶＤプレーヤ２４０から取得したデバイスディスクリプタを、スマートフォン２１０の内部にキャッシュしてＵＳＢ切断処理を行ない（Ｓ７２４）、スマートフォン２１０は仮想ＰＣ３３０ａに対してデータ取得のリクエストを行なう（Ｓ４１３）。
【００６０】
そして、スマートフォン２１０とＤＶＤプレーヤ２４０との間の接続を一度切断した後に、仮想ＰＣ３３０ａ主導で、ＤＶＤプレーヤ２４０との接続確立処理を開始する（Ｓ７２５〜Ｓ７２７）。この場合、セットアップ・ステージＳ７２５において、スマートフォン２１０は、セットアップ用のトークン・パケットおよびデータ・パケットをＤＶＤプレーヤ２４０に送らず、ハンドシェイク・パケットを生成し、仮想ＰＣ３３０ａに送信する。また、データ・ステージＳ７２６では、スマートフォン２１０は、トークン・パケットとデータ・パケットとを仮想ＰＣ３３０ａから受信すると、それらをＤＶＤプレーヤ２４０に送らずに、キャッシュからデバイスディスクリプタを読出し、仮想ＰＣ３３０ａに送信する。すなわち、ＤＶＤプレーヤ２４０からデバイスディスクリプタを取得する処理を省略することが可能となるため、ＤＶＤプレーヤ２４０との通信切断後の再開を効率良く行なうことが可能となる。
【００６１】
（入力デバイス特定テーブル）
図７Ｄに示すように、スマートフォン２１０は、デバイスドライバを有するデバイスディスクリプタと、インタフェースディスクリプタと、ベンダＩＤと、プロダクトＩＤとの対応関係を示すテーブル７３０を記憶する。
【００６２】
スマートフォン２１０は、ＤＶＤプレーヤ２４０が接続された際にＤＶＤプレーヤ２４０から通知されたデバイスディスクリプタと、テーブル７３０のデバイスディスクリプタとを比較する。ＤＶＤプレーヤ２４０から通知されたデバイスディスクリプタがテーブル７３０上のデバイスディスクリプタと一致する場合には、スマートフォン２１０は、ＤＶＤプレーヤ２４０が自機で処理可能な入力デバイスであると判定する。一方、デバイスディスクリプタが一致しない場合には、スマートフォン２１０は、自機で処理不可能な入力デバイスであると判定する。
【００６３】
なお、ＤＶＤプレーヤ２４０から通知されたデバイスディスクリプタ内のベンダＩＤとプロダクトＩＤとを抽出し、テーブル７３０内のベンダＩＤおよびプロダクトＩＤと比較してもよい。その場合、テーブル７３０内に一致するベンダＩＤおよびプロダクトＩＤ７存在する場合には、自機で処理可能な出力デバイスであると判定できる。逆に、ベンダＩＤおよびプロダクトＩＤが一致しない場合には、スマートフォン２１０は、自機で処理不可能なＤＶＤプレーヤ２４０であると判定できる。
【００６４】
（問い合わせ内容テーブル）
図７Ｅに示すように、クラウドサーバ２３０は、スマートフォン２１０のユーザに対して、入力デバイスごとに様々な問い合わせを行なうための問い合わせメッセージとの対応関係を示すテーブル７４０を有している。そして、データ送信部３３４は、スマートフォン２１０に接続された入力デバイスに対応する問い合わせメッセージをテーブル７４０から読み出して、スマートフォン２１０の表示部３２１に表示させる。例えば、ＤＶＤプレーヤ２４０が接続された場合は、スマートフォン２１０の画面で再生するか否か問い合わせる。スキャナが接続された場合には、読み取った画像を仮想ＰＣに記憶するか否か問合わせる。また、デジタルカメラが接続された場合には、ブログにアップロードするか、インターネット上のフォトアルバムに記憶するか、プリント業者に写真のプリントを依頼するか問合わせる。さらに、センサが接続された場合には、センサ結果をどこに送信するかについて候補を表示して選択を促す。
【００６５】
さらに、図７Ｆに示すように、問い合わせ内容のみならず、クラウドサーバ２３０において行なう処理候補を各種の入力デバイスに関連付けて処理候補テーブル７５０として保存している。それぞれの処理候補ごとに、具体的な処理内容、データ変換方法、データサイズなども関連づけて保存している。スマートフォン２１０に接続された入力デバイスに対応する処理の候補を処理候補テーブル７５０から読み出して、スマートフォン２１０に選択可能に表示させる。これら図７Ｅ、７Ｆに示したテーブルを用いることにより、ステップＳ４１０で説明したように、入力デバイスから取得したデータをどこにどのように出力するかを、ユーザに確認することができる。例えば「ＤＶＤ内のコンテンツを認識できました。どこに出力しますか。」といった表示をスマートフォン２１０の表示部３２１に対して行なう。また例えば「スマートフォン」「外部ディスプレイ」「メール添付」「動画サイトにアップロード」などといった選択肢を表示してもよい。
【００６６】
例えば、図７Ｇに示すように、ガイガーカウンタ７８０がスマートフォン７１０に接続された場合が考えられる。そして、スマートフォン７１０の表示部３２１から、放射線量公開サイトにアップロードするようリクエストを受けた場合には、クラウドサーバ２３０は、スマートフォン２１０が有しているＧＰＳ（Global Positioning System）７２２などを用いて、放射線量と検出場所と検出時間とを互いに関連付けて指定のサイトに送信する。これにより、ユーザは簡単に、地図上の各位置での放射線量を公開できる。
【００６７】
また、図７Ｈに示すように、スマートフォン２１０に電子楽器７９０が接続された場合には、クラウドサーバ２３０は電子楽器７９０から得られた演奏データを、同様に他のスマートフォンに接続された他の楽器の演奏データとマージして出力することも可能である。
【００６８】
そして、これら入力デバイスおよびユーザからのリクエストを対応付けてナレッジとして蓄積することにより、入力デバイスを接続された際に、ユーザへの問い合わせ内容を随時変えることが可能となり、ユーザにとって最適な問い合わせ内容を提示できる。
【００６９】
（ＵＳＢ接続処理）
図８Ａ〜図８Ｄを用いて、ＵＳＢでの通信を確立するまでにクラウドサーバ２３０とスマートフォン２１０とＤＶＤプレーヤ２４０との間でやりとりされる信号をより詳細に説明する。特に、ここでは、図７Ｃに示したように、デバイスディスクリプタをキャッシュに保存する例について説明する。
【００７０】
ステップＳ８０１において、ＤＶＤプレーヤ２４０をスマートフォン２１０に接続し、電源を投入する。次に、ステップＳ８０２において、スマートフォン２１０はＤＶＤプレーヤ２４０に対するＵＳＢ接続処理を開始し、リセット信号を送信する。次に、ステップＳ８０３において、スマートフォン２１０は、ＤＶＤプレーヤ２４０に対してアドレスを指定する。この後においてスマートフォン２１０とＤＶＤプレーヤ２４０との間でやりとりされるパケットにはそのアドレスが付加される。
【００７１】
ステップＳ８０４において、スマートフォン２１０はディスクリプタをＤＶＤプレーヤ２４０から取得するために「ＧＥＴ  ＤＥＳＤＣＲＩＰＴＯＲ」の処理を行なう。「ＧＥＴ  ＤＥＳＤＣＲＩＰＴＯＲ」の処理は、図７Ｃで説明したステップＳ７２１〜Ｓ７２３と同様であるため、詳細は説明しない。ディスクリプタのリクエストをＤＶＤプレーヤ２４０に送信すると（Ｓ８０５）、ＤＶＤプレーヤ２４０は、エンドポイント０領域に記憶されたデバイスディスクリプタをスマートフォン２１０に送信する（Ｓ８０６、Ｓ８０７）。スマートフォン２１０は、ステータス・ステージＳ７２３において、その確認信号（ACK）をＤＶＤプレーヤ２４０に送信する。
【００７２】
この時点でデバイスディスクリプタを取得したスマートフォン２１０は、そのデバイスディスクリプタをキャッシュに保存する（Ｓ７２４）。また、そのデバイスディスクリプタを用いて、スマートフォン２１０が制御可能なデバイスか判定する（Ｓ４０９）。制御不可能と判断すると、ステップＳ８１１に進み、ＵＳＢ切断処理を行ない、同時に、クラウドサーバ２３０に対し、ＤＶＤプレーヤ２４０の制御依頼を行なう（Ｓ８１２）。
【００７３】
次に、ステップＳ８１３において、クラウドサーバ２３０は、ＤＶＤプレーヤ２４０の制御を行なうべく処理を開始し、リセット信号を、スマートフォン２１０を介してＤＶＤプレーヤ２４０に送信する。次に、ステップＳ８１５において、クラウドサーバ２３０は、セットアドレスを行ない、ＤＶＤプレーヤ２４０に対してアドレスを指定する。
【００７４】
さらに、クラウドサーバ２３０は、ゲットディスクリプタ（Ｓ８１６）と、ゲットコンフィギュレーション（Ｓ８２４）とをスマートフォン２１０を介してＤＶＤプレーヤ２４０に対して行なう（Ｓ８２３）。具体的には、ステップＳ８１７において、クラウドサーバ２３０は、ゲットディスクリプタをスマートフォン２１０に送る。ステップＳ８１９において、スマートフォン２１０は、キャッシュに保存されたデバイスディスクリプタを読み出し、クラウドサーバ２３０に送信する。
【００７５】
ステップＳ８２５において、ＤＶＤプレーヤ２４０は、エンドポイント０領域に記憶されたコンフィギュレーションディスクリプタを送信する。次に、クラウドサーバ２３０は、スマートフォン２１０を介してＤＶＤプレーヤ２４０に対してＢＵＬＫ  ＴＲＡＮＳＦＥＲを行なうと（Ｓ８２６）、ＤＶＤプレーヤ２４０は、ＤＶＤに保存されたコンテンツデータを読み出して（Ｓ８２７）、クラウドサーバ２３０に送信する。      
【００７６】
ステップＳ４０９において、ＤＶＤプレーヤ２４０のデバイスディスクリプタに基づいて、制御可能なデバイスではないと判定すると、図８ＢのステップＳ８２８に進む。ステップＳ８２８、Ｓ８２９では、コンフィギュレーションディスクリプタ取得処理を行ない、ＤＶＤプレーヤ２４０は、それに応じてコンフィギュレーションディスクリプタをスマートフォン２１０に送信する。スマートフォン２１０は、ステップＳ８３２において、取得したコンフィギュレーションディスクリプタをキャッシュに保存する。そして、ステップＳ４０９において、スマートフォン２１０は、コンフィギュレーションディスクリプタに基づいて、ＤＶＤプレーヤ２４０がスマートフォン２１０にとって制御可能なデバイスか否か判定する。制御可能ではないと判定すると、ステップＳ８３３に進んでスマートフォン２１０とＤＶＤプレーヤ２４０との間のＵＳＢ接続を切断する。
【００７７】
ＵＳＢ接続を切断後、スマートフォン２１０は、クラウドサーバ２３０に対して、ＤＶＤプレーヤ２４０の制御を依頼する。クラウドサーバ２３０は、その制御依頼に応じて、ＵＳＢ制御を開始すると共にリセット信号を、スマートフォン２１０を介してＤＶＤプレーヤ２４０に送信する（Ｓ８３５）そして続けてセットアドレスを行ない（Ｓ８３６）、アドレスをＤＶＤプレーヤ２４０に指定する。さらに、ＧＥＴ  ＤＥＳＣＲＩＰＴＯＲ（Ｓ８３７）で、スマートフォン２１０に対して、ディスクリプタを要求すると、スマートフォン２１０は、その要求をＤＶＤプレーヤ２４０に中継する代わりに、デバイスディスクリプタをキャッシュから読出して（Ｓ８３９）、クラウドサーバ２３０に返す（Ｓ８４０）。
【００７８】
さらに、クラウドサーバ２３０は、スマートフォン２１０を介してＤＶＤプレーヤ２４０に対してＧＥＴ  ＣＯＮＦＩＧＵＲＡＴＩＯＮを実行すると（Ｓ８４１）、スマートフォン２１０は、そのコマンドをＤＶＤプレーヤ２４０に送信する代わりに、キャッシュに記憶されたコンフィギュレーションディスクリプタを読み出し、クラウドサーバ２３０に送信する（Ｓ８４３）。次に、クラウドサーバ２３０は、スマートフォン２１０を介してＤＶＤプレーヤ２４０に対してＢＵＬＫ  ＴＲＡＮＳＦＥＲを行なうと（Ｓ８４４）、ＤＶＤプレーヤ２４０は、ＤＶＤに保存されたコンテンツデータを読み出して（Ｓ８４５）、スマートフォン２１０を介してクラウドサーバ２３０に送信する。      
【００７９】
ステップＳ４０９において、コンフィギュレーションディスクリプタに基づいて、制御可能なデバイスであると判定すると（Ｂ）、図８ＣのステップＳ８４６に示すＢＵＬＫ  ＴＲＡＮＳＦＥＲに進む。ＢＵＬＫ  ＴＲＡＮＳＦＥＲでも、セットアップ・ステージ、データ・ステージ、ステータス・ステージを行なうことにより、ＤＶＤプレーヤ２４０はＤＶＤ２４１からコンテンツデータを読出して、スマートフォン２１０に送信する（Ｓ８４９）。
【００８０】
スマートフォン２１０は、読出されたコンテンツデータを受信すると、キャッシュに保存し（Ｓ８５１）、そのコンテンツデータを再生処理できるアプリケーションがあるか否か判定する（Ｓ８５２）。
【００８１】
処理できると判定すると、ステップＳ８５３に進み、クラウドサーバ２３０にアクセスせずに処理を継続する。つまり、この場合ＤＶＤプレーヤ２４０のコンテンツデータは、そのままスマートフォン２１０で再生できる。
【００８２】
一方、スマートフォン２１０が、ＤＶＤプレーヤ２４０のコンテンツデータを処理できるアプリケーションを有していない場合、ステップＳ８５４に進んでＵＳＢ接続の切断処理を行ない、さらに、図８ＤのステップＳ８５６に進む。
【００８３】
図８ＤのステップＳ８５６では、やはりクラウドサーバ２３０に対してＵＳＢデバイス制御の依頼を行なう。スマートフォン２１０は、クラウドサーバ２３０に対して、ＤＶＤプレーヤ２４０の制御を依頼する。クラウドサーバ２３０は、その制御依頼に応じて、ＵＳＢ制御を開始すると共にリセット信号を、スマートフォン２１０を介してＤＶＤプレーヤ２４０に送信する（Ｓ８５７）そして続けてセットアドレスを行ない（Ｓ８５９）、アドレスをＤＶＤプレーヤ２４０に指定する。さらに、ＧＥＴ  ＤＥＳＣＲＩＰＴＯＲ（Ｓ８６１）で、スマートフォン２１０に対して、ディスクリプタを要求すると、スマートフォン２１０は、その要求をＤＶＤプレーヤ２４０に中継する代わりに、デバイスディスクリプタをキャッシュから読出して（Ｓ８６３）、クラウドサーバ２３０に返す。
【００８４】
さらに、クラウドサーバ２３０は、スマートフォン２１０を介してＤＶＤプレーヤ２４０に対してＧＥＴ  ＣＯＮＦＩＧＵＲＡＴＩＯＮを実行すると（Ｓ８６５）、スマートフォン２１０は、そのコマンドを中継する代わりに、キャッシュに保存されたコンフィギュレーションディスクリプタを読出して、スマートフォン２１０を中継してクラウドサーバ２３０に送信する（Ｓ８６７）。
【００８５】
次に、クラウドサーバ２３０は、スマートフォン２１０を介してＤＶＤプレーヤ２４０に対してＢＵＬＫ  ＴＲＡＮＳＦＥＲを行なうと（Ｓ８６９）、スマートフォン２１０は、キャッシュに保存された入力データを読み出して（Ｓ８７１）、クラウドサーバ２３０に送信する。
【００８６】
以上のシーケンスにより、スマートフォン２１０のキャッシュをうまく使って、クラウドサーバ２３０とＤＶＤプレーヤ２４０との通信を効率的に行なうことが可能となる。
【００８７】
（スマートフォンのハードウェア構成）
スマートフォン２１０の内部構成について、図９を用いて説明する。スマートフォン２１０は、ＣＰＵ（Central Processing Unit）９１０、ＲＯＭ(Read Only Memory)９２０、無線通信部３１６、ＲＡＭ(Random Access Memory)９４０、ストレージ９５０、および入出力インタフェース９６０を備えている。
【００８８】
ＣＰＵ９１０は中央処理部であって、様々なプログラムを実行することによりスマートフォン２１０全体を制御する。ＲＯＭ９２０は、リードオンリメモリであり、ＣＰＵ９１０が最初に実行すべきブートプログラムの他、各種パラメータ等を記憶している。また、ＲＡＭ９４０は、接続検知結果９４１と、デバイス判定結果９４２と、ファイルシステム判定結果９４３と、データ形式判定結果９４４と、取得コンテンツデータ９４５と、変換済コンテンツデータ９４６とを記憶する。
【００８９】
ストレージ９５０は、スマートフォンの処理能力を示す処理能力データベース９５１を記憶している。このデータベースを参照することにより、スマートフォン２１０が自機で処理できるコンテンツデータか否かを判定できる。さらにストレージ９５０は、デバイス判定モジュール９５３と、ファイルシステム判定モジュール９５４と、データ形式判定モジュール９５５と、データ中継モジュール９５６と、ユーザインタフェース表示モジュール９５７と、データ処理アプリケーション９５９とを記憶する。
【００９０】
デバイス判定モジュール９５３は、ＣＰＵ９１０に実行されることにより、デバイス判定部３１２として機能する。また、ファイルシステム判定モジュール９５４は、ＣＰＵ９１０に実行されることにより、ファイルシステム判定部３１３として機能する。
【００９１】
データ形式判定モジュール９５５は、ＣＰＵ９１０に実行されることにより、データ形式判定部３１４として機能する。さらにデータ中継モジュール９５６は、ＣＰＵ９１０に実行されることにより、無線通信部３１６と共に機能して、クラウドサーバ２３０と入力デバイスとの間のデータのやりとりを中継する。具体的には、USBoverIPのカプセリングおよびアンカプセリングを行なう。ユーザインタフェース表示モジュール９５７は、ＣＰＵ９１０に実行されることにより、図６で示したようなダイアログを、スマートフォン２１０のディスプレイに表示する。
【００９２】
入出力インタフェース９６０は、入出力機器との入出力データを中継する。入出力インタフェース９６０には、スマートフォン２１０に内蔵された表示部３２０、タッチパネル９６２、スピーカ９６４、マイク９６５、カメラ９６６が接続される。さらに、外部デバイスを接続可能なＵＳＢインタフェース３１９を備えている。
【００９３】
また、無線通信部３１６は、クラウドサーバ２３０とのネットワークを介した通信を制御する。
【００９４】
ＲＡＭ９４０に記憶される接続検知結果９４１は、接続検知部３１１において検知した、接続されたデバイスの接続検知結果を一次記憶したものである。デバイス判定結果９４２は、検知した接続デバイスがどのようなデバイスであるか判定した結果を一次記憶したものである。本実施形態においては、ＤＶＤプレーヤ２４０を一次記憶する。ファイルシステム判定結果９４３は、自機において取得したＤＶＤプレーヤ２４０に記憶されたデータのファイルシステムを自機で取得可能か否か判定した結果を一時記憶したものである。データ形式判定結果９４４は、ＤＶＤプレーヤ２４０に記憶されたデータのデータ形式を自機で処理能か否か判定した結果を一時記憶したものである。
【００９５】
次に、取得コンテンツデータ９４５は、ＤＶＤプレーヤ２４０などの入力デバイスから取得したコンテンツデータをクラウドサーバ２３０に送信するために一次記憶したものである。変換済コンテンツデータ９４６は、クラウドサーバ２３０において変換したコンテンツデータであり、スマートフォン２１０にて再生する場合に一次記憶する。
【００９６】
以上の構成および動作により、本実施形態に係る情報処理システムによれば、スマートフォンに接続された、ドライバをプリインストールしていない入力デバイスを制御することができる。
【００９７】
［他の実施形態］
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
【００９８】
また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現する情報処理プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、あるいはそのプログラムを格納した媒体、そのプログラムをダウンロードさせるＷＷＷ(Ｗｏｒｌｄ Ｗｉｄｅ Ｗｅｂ)サーバも、本発明の範疇に含まれる。
【図１】
0005970897.tif 000002
【図２】
0005970897.tif 000003
【図３】
0005970897.tif 000004
【図４】
0005970897.tif 000005
【図５Ａ】
0005970897.tif 000006
【図５Ｂ】
0005970897.tif 000007
【図６】
0005970897.tif 000008
【図７Ａ】
0005970897.tif 000009
【図７Ｂ】
0005970897.tif 000010
【図７Ｃ】
0005970897.tif 000011
【図７Ｄ】
0005970897.tif 000012
【図７Ｅ】
0005970897.tif 000013
【図７Ｆ】
0005970897.tif 000014
【図７Ｇ】
0005970897.tif 000015
【図７Ｈ】
0005970897.tif 000016
【図８Ａ】
0005970897.tif 000017
【図８Ｂ】
0005970897.tif 000018
【図８Ｃ】
0005970897.tif 000019
【図８Ｄ】
0005970897.tif 000020
【図９】
0005970897.tif 000021