(57)【特許請求の範囲】
【請求項１】
ＯＳを実行する第１の制御部と、
前記ＯＳから独立して動作する第２の制御部と、
前記第１の制御部によって制御され、ＵＳＢインタフェースによって外部ネットワークに接続して通信を行う第１通信部と、
前記第２の制御部によって制御され、ＵＳＢインタフェースによって前記外部ネットワークに接続して通信を行う第２通信部と、
入力された通信設定を記憶する共通記憶部と、
前記外部ネットワークの接続先を前記第１通信部又は前記第２通信部のいずれか一方から他方に切り替える切替部と、
前記第２の制御部によって制御され、前記切替部が前記接続先を前記第２通信部から前記第１通信部へ切り替える場合、少なくともＵＳＢ設定及びネットワーク設定を含む前記第２通信部の通信設定を前記共通記憶部に書込む第２通信設定部と、
前記第１の制御部によって制御され、前記第２通信設定部により前記共通記憶部に書込まれた前記第２通信部の通信設定を取得し、取得した該通信設定を前記第１通信部に設定する第１通信設定部とを備え、
前記切替部は、前記第１通信設定部により前記第１通信部に前記第２通信部の通信設定が設定された後、前記第２通信部から前記第１通信部へ前記外部ネットワークの接続先を切り替える
ことを特徴とする情報処理装置。
【請求項２】
ＯＳを実行する第１の制御部と、
前記ＯＳから独立して動作する第２の制御部と、
前記第１の制御部によって制御され、外部ネットワークに接続して通信を行う第１通信部と、
前記第２の制御部によって制御され、前記外部ネットワークに接続して通信を行う第２通信部と、
入力された通信設定を記憶する共通記憶部と、
前記外部ネットワークの接続先を前記第１通信部又は前記第２通信部のいずれか一方から他方に切り替える切替部と、
前記第２の制御部によって制御され、前記切替部が前記接続先を前記第２通信部から前記第１通信部へ切り替える場合、前記第２通信部の通信設定を前記共通記憶部に書込む第２通信設定部と、
前記第１の制御部によって制御され、前記第２通信設定部により前記共通記憶部に書込まれた前記第２通信部の通信設定を取得し、取得した該通信設定を前記第１通信部に設定する第１通信設定部とを備え、
前記第１通信部は、前記第１通信設定部により前記第２通信部の通信設定が自己に設定された場合、前記共通記憶部に対して情報を書込み、且つ該書込んだ情報に対する応答が前記共通記憶部に書込まれた場合、該応答を読込むことで擬似的な通信を行い、該擬似的な通信が確立したか否かを判定し、
前記第２通信部は、前記第１通信部により前記共通記憶部に書込まれた情報に対する応答を前記共通記憶部に書込み、
前記切替部は、前記第１通信設定部により前記第１通信部に前記第２通信部の通信設定が設定された後、前記第１通信部によって擬似的な通信が確立したと判定された場合に、前記第２通信部から前記第１通信部へ前記外部ネットワークの接続先を切り替える
ことを特徴とする情報処理装置。
【請求項３】
前記第１の制御部によって制御され、前記切替部が前記接続先を前記第２通信部から前記第１通信部へ切り替える場合、前記第２通信部が前記外部ネットワークから受信した情報を前記共通記憶部に書込む第２同期部と、
前記第２の制御部によって制御され、前記第２同期部によって前記共通記憶部に書き込まれた情報を基に、前記第１通信部の動作を外部ネットワークからの通信に同期させる第１同期部と
をさらに備えたことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記切替部が前記接続先を前記第１通信部から前記第２通信部へ切り替える場合、
第１通信設定部は、前記第１通信部の通信設定を前記共通記憶部に書込み、
第２通信設定部は、前記第１通信設定部により前記共通記憶部に書込まれた前記第１通信部の通信設定を取得し、取得した該通信設定を前記第２通信部に設定し、
前記切替部は、前記第２通信設定部により前記第２通信部に前記通信設定が設定された後、前記第１通信部から前記第２通信部への接続先の切り替えを行う
ことを特徴とする請求項１〜３のいずれか一つに記載の情報処理装置。
【請求項５】
ＯＳを実行する第１のＣＰＵ及び前記ＯＳから独立して動作する第２のＣＰＵとを有する情報処理装置の制御方法であって、
前記第１のＣＰＵによって制御され、外部ネットワークに接続して通信を行う第１通信部から、前記第２のＣＰＵによって制御され、前記外部ネットワークに接続して通信を行う第２通信部へ、前記外部ネットワークの接続先を切り替える場合、前記第２通信部における通信設定を共通メモリに書込み、
前記共通メモリに書込まれた前記第２通信部の通信設定を取得し、
取得した該通信設定を前記第１通信部に設定し、
前記第２通信部の通信設定が前記第１通信部に設定された場合、前記第１通信部に、前記共通記憶部に対して情報を書込ませ、
前記第２通信部に、前記第１通信部により前記共通記憶部に書込まれた情報に対する応答を前記共通記憶部に書込ませ、
前記第１通信部が書込んだ情報に対する応答が前記共通記憶部に書込まれた場合、前記第１通信部に、該応答を読込ませることで擬似的な通信を行わせることで、該擬似的な通信が確立したか否かを判定し、
前記第１通信部に前記第２通信部の通信設定が設定された後、前記擬似的な通信が確立したと判定した場合に、前記外部ネットワークの接続先を前記第１通信部から前記第２通信部へ切り替える
ことを特徴とする情報処理装置制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理装置制御方法に関する。
【背景技術】
【０００２】
近年、情報をサーバから端末装置に配信する、プッシュ型のデータ配信サービスが普及してきている。このようなサービスはＰＵＳＨサービスと呼ばれる。ＰＵＳＨサービスとは、端末装置の電源のオン／オフの状態又は端末装置のネットワーク接続の有無に関わらず、サーバから端末装置に情報が配信されると、端末装置が自動的にその情報を受信できるサービスである。
【０００３】
このようなサービスを実現するため、ユーザからの操作を待ち受け、端末装置の電源管理を行う遠隔操作通信装置を搭載する端末装置が提供されている。この遠隔操作通信装置は、独自のＣＰＵを有し、端末装置のＣＰＵ（Central  Processing  Unit）による制御とは独立して端末装置の電源制御などを行うことができる装置である。以下では、端末装置のＣＰＵにより制御される各部を総称して「端末装置本体」と言う。遠隔操作通信装置は、端末装置のソフトオフ時（以下では、「電源オフ」と言う。）にも動作することで機能を果たしている。このように、遠隔操作通信装置は、端末装置の電源オフ時にも動作することから常時電力を消費する。そこで、消費電力を減らすために、遠隔操作通信装置は、数ＭＨｚ〜数十ＭＨｚで動作するＭＰＵ（Micro  Processing  Unit）を用いた通常低消費電力回路で実現されている。さらに、遠隔操作通信装置は、ＵＳＢ（Universal  Serial  Bus）などのインタフェースを介して通信デバイスを接続することで、ネットワーク接続が可能となる。
【０００４】
このような常時通電である遠隔操作通信装置を使用すれば、端末装置の電源オフ時においても、プッシュ通知の送信や、ファイルのダウンロードといったＰＵＳＨサービスを提供することができる。
【０００５】
ただし、遠隔操作通信装置は低クロックで実現されるため、遠隔操作通信装置の通信デバイスは、端末装置本体が有する通信デバイスに比べて十分な転送速度を得ることができない。端末装置が電源オフの場合には、端末装置において処理が行われていないため、低速な通信でも操作に影響はない。これに対して、端末装置が電源オンの場合には、操作者が端末装置を操作して端末装置本体に処理を行わせていることが考えられる。このような状況では、転送速度が低いと処理スピードが遅くなり、操作者の要求に十分に応えることが困難となる。すなわち、電源オンの場合に、遠隔操作通信装置経由で端末装置本体がデータを取得することは避けることが好ましい。そこで、例えばＵＳＢインタフェースを介して通信デバイスと接続する場合には、端末装置本体及び遠隔操作通信装置のぞれぞれと通信デバイスとを結ぶＵＳＢバスをＵＳＢバススイッチを用いて選択的に切り替え、端末装置本体及び遠隔操作通信装置のいずれかをＵＳＢホストとする方法がある。このような方法により、遠隔操作通信装置を搭載した端末装置において、電源オンの場合の通信速度を低下させることの無い常時接続を実現することが考えられる。
【０００６】
ここで、二重化された通信制御装置において、現用系と待機系の共通のメモリにデータを退避させ、切り替え時に退避系が共通のメモリを参照することで、系切り替え後も通信制御を継続する従来技術が提案されている。また、端末装置の内部に複数の処理回路を有し、バスを切り替えていずれかの処理回路にプロトコル処理を行わせる従来技術が提案されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１０−１４５４５６号公報
【特許文献２】特開２００４−１４７２５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、ＵＳＢホストをＵＳＢバススイッチにより端末装置本体及び遠隔操作通信装置の一方から他方に切り替えることは、端末装置本体及び遠隔操作通信装置の一方からＵＳＢデバイスを取り外し、他方へ取り付ける物理的な操作と同じである。すなわち、端末装置本体及び遠隔操作通信装置の一方から他方への切り替え後には、ＵＳＢのエニュメレーション処理、ネットワークコネクションの確立及びアプリケーションのサーバへの接続が発生する。このため、端末装置本体及び遠隔操作通信装置の一方から他方へ切り替えた場合、ネットワーク接続が切断され、一時不通となるおそれがある。このように、切り替え時にネットワーク接続が一時不通となるとすると、ＰＵＳＨサービスの品質が低下してしまう危険がある。
【０００９】
この点、二重化された通信制御装置において切り替え時に通信制御の継続性を維持する従来技術では、いずれの通信制御装置もネットワークとの接続はなされており、切り替えにおける通信デバイスのデタッチやアタッチの処理が必要ない。そこで、この従来技術では、通信デバイスのデタッチやアタッチによるネットワークの一時不通は考慮されておらず、そのような原因によるＰＵＳＨサービスの品質の低下を回避することはできない。また、バスを切り替えていずれかの処理回路にプロトコル処理を行わせる従来技術においても、切り替えにおけるネットワーク接続の一時不通を回避することができない。
【００１０】
開示の技術は、上記に鑑みてなされたものであって、搭載された遠隔操作通信装置による通信及び自装置における当該遠隔操作通信装置以外による通信の一方から他方に外部ネットワークとの通信を切り替える場合のネットワーク接続の一時不通を抑制する情報処理装置及び情報処理装置制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本願の開示する情報処理装置及び情報処理装置制御方法は、一つの態様において、第１の制御部は、ＯＳを実行する。第２の制御部は、前記ＯＳから独立して動作する。第１通信部は、前記第１の制御部によって制御され、ＵＳＢインタフェースによって外部ネットワークに接続して通信を行う。第２通信部は、前記第２の制御部によって制御され、ＵＳＢインタフェースによって前記外部ネットワークに接続して通信を行う。共通記憶部は、入力された通信設定を記憶する。切替部は、前記外部ネットワークの接続先を前記第１通信部又は前記第２通信部のいずれか一方から他方に切り替える。第２通信設定部は、前記第２の制御部によって制御され、前記切替部が前記接続先を前記第２通信部から前記第１通信部へ切り替える場合、少なくともＵＳＢ設定及びネットワーク設定を含む前記第２通信部の通信設定を前記共通記憶部に書込む。第１通信設定部は、前記第１の制御部によって制御され、前記第２通信設定部により前記共通記憶部に書込まれた前記第２通信部の通信設定を取得し、取得した該通信設定を前記第１通信部に設定する。そして、前記切替部は、前記第１通信設定部により前記第１通信部に前記第２通信部の通信設定が設定された後、前記第２通信部から前記第１通信部へ前記外部ネットワークの接続先を切り替える。
【発明の効果】
【００１２】
本願の開示する情報処理装置及び情報処理装置制御方法の一つの態様によれば、搭載された遠隔操作通信装置による通信及び自装置における当該遠隔操作通信装置以外による通信の一方から他方に外部ネットワークとの通信を切り替える場合のネットワーク接続の一時不通を抑制できるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施例に係る情報処理装置のブロック図である。
【図２】図２は、共通記憶部に格納されるデータのデータフォーマットを示す図である。
【図３】図３は、遠隔操作通信装置から情報処理装置への切り替え時のデータの流れを説明するための図である。
【図４】図４は、切り替え処理のフローチャートである。
【図５】図５は、切り替え処理におけるデータの流れを表すシーケンス図である。
【図６】図６は、切り替え処理の概略を表すシーケンス図である。
【図７】図７は、情報処理装置のハードウェア構成図である。
【発明を実施するための形態】
【００１４】
以下に、本願の開示する情報処理装置及び情報処理装置制御方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理装置及び情報処理装置制御方法が限定されるものではない。
【実施例】
【００１５】
図１は、実施例に係る情報処理装置のブロック図である。図１に示すように、本実施例に係る情報処理装置１は、切替部１１、制御部１２、プロトコルスタック設定部１３、ＵＳＢ通信部１４、同期部１５、記憶部１６、スイッチ１７及び遠隔操作通信装置１００を有している。また、以下の説明では、情報処理装置１のうち遠隔操作通信装置１００を除いた部分を指す場合、「情報処理装置１本体」という。
【００１６】
また、遠隔操作通信装置１００は、切替部１０１、制御部１０２、プロトコルスタック設定部１０３、ＵＳＢ通信部１０４、同期部１０５、記憶部１０６及び共通記憶部１１０を有している。
【００１７】
スイッチ１７は、例えば図１に示す３Ｇ通信モジュール２などのＵＳＢデバイスと接続されている。そして、本実施例では、３Ｇ通信モジュール２は、外部ネットワークと接続している。また、スイッチ１７は、切替部１１又は切替部１０１からの指示を受けて、ＵＳＢ通信部１４又はＵＳＢ通信部１０４のいずれかが３Ｇ通信モジュール２と接続するように選択的に切り替える。すなわち、スイッチ１７がＵＳＢ通信部１４を３Ｇ通信モジュール２の接続先として選択した場合、３Ｇ通信モジュール２とＵＳＢ通信部１４との間でデータの送受信が可能となる。また、スイッチ１７がＵＳＢ通信部１０４を３Ｇ通信モジュール２の接続先として選択した場合、３Ｇ通信モジュール２とＵＳＢ通信部１０４との間でデータの送受信が可能となる。
【００１８】
以下では、スイッチ１７により３Ｇ通信モジュールとの接続がＵＳＢ通信部１４からＵＳＢ通信部１０４へ切り替えられる場合を、「ＵＳＢ通信部１０４への切り替え」と言う。また、スイッチ１７により３Ｇ通信モジュール２との接続がＵＳＢ通信部１０４からＵＳＢ通信部１４へ切り替えられる場合を、「ＵＳＢ通信部１４への切り替え」という。また、いずれかへの切り替えかを特に区別しない場合、単に「切り替え」という。さらに、いずれかへの切り替えかを特に区別しない場合、ＵＳＢ通信部１４及びＵＳＢ通信部１０４のうち、切り替えの前に３Ｇ通信モジュール２と接続していた側を「切替元」といい、切り替えの後に３Ｇ通信モジュール２に接続される側を「切替先」という。
【００１９】
また、共通記憶部１１０は、メモリなどの記憶装置である。そして、共通記憶部１１０は、情報処理装置１本体の各部及び遠隔操作通信装置１００の各部のいずれからもデータの読み書きが行える。図２は、共通記憶部に格納されるデータのデータフォーマットを示す図である。図２に示すように、共通記憶部１１０に格納されるデータのデータフォーマット２００は、通知領域２０１、プロトコルスタック設定領域２１０及び同期領域２２０を有している。
【００２０】
通知領域２０１は、接続元から接続先に対する、切り替えの発生の通知や設定完了の通知といったデータを格納する領域である。
【００２１】
プロトコルスタック設定領域２１０は、プロトコルの各階層における通信設定を格納する領域である。プロトコルスタック設定領域２１０は、アプリ設定領域２０２、ネットワーク設定領域２０３及びＵＳＢ設定領域２０４を有している。後述するように、プロトコルスタック設定領域２１０に格納される通信設定は、切り替えの際に接続元から接続先へ通信設定を受け渡すために使用される。
【００２２】
アプリ設定領域２０２は、アプリケーションの設定情報を表すアプリケーション情報を格納する領域である。アプリケーションとは、例えば、ＰＵＳＨサービスを受信するアプリケーションなどである。そして、アプリケーション情報とは、例えば、認証先サーバ情報、認証情報及びデバイス識別子などである。
【００２３】
また、ネットワーク設定領域２０３は、ネットワークの設定情報を表すネットワーク情報を格納する領域である。ネットワーク情報とは、例えば、ＩＰ（Internet  Protocol）アドレスや、ポート番号、セッション管理情報及びＰＰＰ（Pont-to-Pont  Protocol）におけるＩＤ（IDentification）やＰＷ（Pass  Word）などである。
【００２４】
また、ＵＳＢ設定領域２０４は、ＵＳＢの設定情報を表すＵＳＢ情報を格納する領域である。ＵＳＢ情報とは、例えば、デバイスアドレス、エンドポイント及びデバイスドライバなどである。
【００２５】
また、同期領域２２０は、切り替え時に情報処理装置１本体及び遠隔操作通信装置１００の動作を同期させるために必要な情報を格納する領域である。同期領域２２０は、データ転送領域２０５を有している。ここで、図２では、説明の便宜上、同期領域２２０は、データ転送領域２０５と同じ領域を指すように記載しているが、実際には、同期領域２２０にデータ転送領域２０５が含まれることを示しており、同期領域２２０には同期に必要な他の情報も書込まれる。
【００２６】
データ転送領域２０５は、３Ｇ通信モジュール２から受信したデータを接続先から接続元へ転送するための領域である。
【００２７】
図１に戻って、ＵＳＢ通信部１４は、スイッチ１７がＵＳＢ通信部１４を３Ｇ通信モジュール２の接続先として選択している場合、３Ｇ通信モジュール２との間でデータの送受信を行う。さらに詳しくは、ＵＳＢ通信部１４は、制御部１２に指示されたデータを３Ｇ通信モジュール２を介して外部ネットワークへ送信する。また、ＵＳＢ通信部１４は、３Ｇ通信モジュール２を介して外部ネットワークからのデータを受信する。ＵＳＢ通信部１４は、受信したデータを制御部１２へ出力する。ここで、ＵＳＢ通信部１４は、１ｍｓの間隔でＳＯＦ（Start  of  Frame）パケットにより通信の同期を取っている。ＳＯＦパケットは、データの伝送を行う単位であるフレームの先頭に配置されている。言い換えれば、フレームは、１ｍｓ毎にＳＯＦパケットを先頭にトランザクション群が続く構成となっている。そして、通信が発生する場合は、ＵＳＢ通信部１４は、１つ又は複数のフレームにまたがったＵＳＢトランザクションを送受信することで、データ通信を実現する。
【００２８】
これに対して、スイッチ１７がＵＳＢ通信部１０４を３Ｇ通信モジュール２の接続先として選択している場合、ＵＳＢ通信部１４は、通信を行わない。
【００２９】
また、ＵＳＢ通信部１０４への切り替えの場合、制御部１２からの切り替え通知を受けて、ＵＳＢ通信部１４は、３Ｇ通信モジュール２から受信したデータを制御部１２へ出力するとともに、同期部１５へ出力する。
【００３０】
これに対して、ＵＳＢ通信部１４への切り替えの場合、ＵＳＢ通信部１４は、同期部１５からの制御を受けて、ＵＳＢ通信部１０４のＳＯＦの受信タイミングでリセットが行われる。これにより、ＵＳＢ通信部１４は、３Ｇ通信モジュール２と同期する。その後、ＵＳＢ通信部１４は、後述するように共通記憶部１１０に構成された仮想的な３Ｇ通信モジュールである仮想３Ｇ通信モジュールと仮想的な接続が行われる。この、仮想的な３Ｇ通信モジュールについては後で詳細に説明する。これにより、ＵＳＢ通信部１４は、共通記憶部１１０に構成された仮想３Ｇ通信モジュールとのデータの授受を行うことができる状態になる。そして、ＵＳＢ通信部１４は、擬似的なＵＳＢ応答の仮想３Ｇ通信モジュールへの送信指示を制御部１２から受ける。この指示を受けて、ＵＳＢ通信部１４は、擬似的なＵＳＢ応答を共通記憶部１１０のデータ転送領域２０５に書き込む。そして、ＵＳＢ通信部１４は、通知領域２０１を監視し、遠隔操作通信装置１００の制御部１０２から擬似応答が通知領域２０１に書き込まれたかを判定する。擬似応答が通知領域２０１に書き込まれた場合、ＵＳＢ通信部１４は、擬似応答を読み込む。そして、ＵＳＢ通信部１４は、仮想３Ｇ通信モジュールとの通信が正常に確立したかを判定する。仮想３Ｇ通信モジュールとの通信が正常に確立したと判定した場合、ＵＳＢ通信部１４は、同期完了を制御部１２へ通知する。このＵＳＢ通信部１４が、「第１通信部」の一例にあたる。
【００３１】
ＵＳＢ通信部１０４への切り替えの場合、同期部１５は、同期命令を制御部１２から受ける。そして、同期部１５は、ＵＳＢデバイスである３Ｇ通信モジュール２のＵＳＢディスクリプタを制御部１２から受信する。そして、同期部１５は、受信したＵＳＢディスクリプタを共通記憶部１１０の同期領域２２０に書き込む。これにより、共通記憶部１１０は、仮想３Ｇ通信モジュールとして構成される。
【００３２】
次に、同期部１５は、３Ｇ通信モジュール２から受信したデータの入力をＵＳＢ通信部１４から受ける。そして、同期部１５は、受信したデータを共通記憶部１１０のデータ転送領域２０５に書き込む。
【００３３】
これに対して、ＵＳＢ通信部１４への切り替えの場合、同期部１５は、同期命令を制御部１２から受ける。制御部１２からの同期命令に従って、ＵＳＢ通信部１４は、共通記憶部１１０のデータ転送領域２０５を監視する。そして、同期部１５は、データ転送領域２０５に書き込まれるデータのＳＯＦを参照し、ＳＯＦの受信タイミングでＵＳＢ通信部１４のリセットを行い、ＵＳＢ通信部１４を３Ｇ通信モジュール２に同期させる。この同期部１５が、「第１同期部」の一例にあたる。
【００３４】
プロトコルスタック設定部１３は、ＵＳＢ通信部１０４への切り替えの場合、通信設定格納命令を制御部１２から受ける。そして、プロトコルスタック設定部１３は、通信設定を共通記憶部１１０へ書き込む。具体的には、プロトコルスタック設定部１３は、３Ｇ通信モジュール２を使用して行っている通信におけるアプリケーション情報をアプリ設定領域へ２０２書き込む。また、プロトコルスタック設定部１３は、ＵＳＢ通信部１４が３Ｇ通信モジュール２を介して行っていた外部ネットワークとの通信におけるネットワーク情報をネットワーク設定領域２０３へ書き込む。さらに、プロトコルスタック設定部１３は、ＵＳＢデバイスである３Ｇ通信モジュール２のＵＳＢ情報をＵＳＢ設定領域２０４へ書き込む。
【００３５】
これに対して、ＵＳＢ通信部１４への切替の場合、プロトコルスタック設定部１３は、通信設定の取得命令を制御部１２から受ける。そして、プロトコルスタック設定部１３は、共通記憶部１１０からＵＳＢ通信部１０４が使用していた通信設定を取得する。具体的には、プロトコルスタック設定部１３は、３Ｇ通信モジュール２を使用して通信を行っているアプリケーション情報をアプリ設定領域２０２から取得する。また、プロトコルスタック設定部１３は、ＵＳＢ通信部１０４が３Ｇ通信モジュール２を介して行っていた外部ネットワークとの通信におけるネットワーク情報をネットワーク設定領域２０３から取得する。さらに、プロトコルスタック設定部１３は、ＵＳＢデバイスである３Ｇ通信モジュール２のＵＳＢ情報をＵＳＢ設定領域２０４から取得する。そして、プロトコルスタック設定部１３は、取得した通信設定を制御部１２へ出力する。このプロトコルスタック設定部１３が、「第１通信設定部」の一例にあたる。
【００３６】
記憶部１６は、メモリやハードディスクなどの記憶装置である。そして、記憶部１６には、ＯＳやＰＵＳＨサービスのアプリケーションなどが記憶されている。
【００３７】
制御部１２について、スイッチ１７がＵＳＢ通信部１４を３Ｇ通信モジュール２の接続先として選択している場合を説明する。制御部１２は、ＵＳＢ通信部１４からデータの入力を受ける。そして、制御部１２は、記憶部１６などを用いてデータの処理を行う。また、制御部１２は、外部へのデータの送信が必要な場合には、ＵＳＢ通信部１４へデータを出力する。
【００３８】
制御部１２は、スイッチ１７がＵＳＢ通信部１４を３Ｇ通信モジュール２の接続先として選択している状態で、例えばシャットダウン命令などの切り替え要因が発生した場合、シャットダウンまたはスタンバイモードの制御部１０２を起動する。また、制御部１２は、ＵＳＢ通信部１４に切り替えを通知する。また、制御部１２は、同期命令を同期部１５に通知する。また、制御部１２は、通信設定の格納命令をプロトコルスタック設定部１３に通知する。さらに、制御部１２は、共通記憶部１１０の通知領域２０１に切り替え開始の通知を書き込む。
【００３９】
次に、制御部１２は、共通記憶部１１０の通知領域２０１を監視し、遠隔操作通信装置１００の制御部１０２から同期設定完了通知が書き込まれたことを確認する。
【００４０】
次に、制御部１２は、共通記憶部１１０の同期領域２２０を監視し、遠隔操作通信装置１００のＵＳＢ通信部１０４からＵＳＢ応答が書き込まれたかを判定する。制御部１２は、同期領域２２０にＵＳＢ応答が書き込まれた場合、擬似応答を同期領域２２０へ書き込む。その後、制御部１２は、共通記憶部１１０の通知領域２０１を監視し、制御部１０２から同期完了の通知が書き込まれたことを判定する。さらに、制御部１２は、共通記憶部１１０の通知領域２０１を監視し、通知領域２０１に切り替え通知が書き込まれたかを判定する。そして、同期完了通知及び切り替え通知が書き込まれると、制御部１２は、ＵＳＢ通信部１４からＵＳＢ通信部１０４へ３Ｇ通信モジュール２の接続先を切り替える命令を切替部１１へ出力する。
【００４１】
次に、制御部１２について、スイッチ１７がＵＳＢ通信部１０４を３Ｇ通信モジュール２の接続先として選択している場合を説明する。この場合、制御部１２は、通常はシャットダウンしている。そして、スイッチ１７がＵＳＢ通信部１０４を３Ｇ通信モジュール２の接続先として選択している状態で、切り替え要因が発生した場合、遠隔操作通信装置１００の制御部１０２からの制御により電力供給が開始され、起動する。
【００４２】
制御部１２は、通信設定の取得命令をプロトコルスタック設定部１３に通知する。その後、制御部１２は、取得命令の応答として通信設定をプロトコルスタック設定部１３から受信する。
【００４３】
そして、制御部１２は、受信した通信設定からＵＳＢ情報を取得し、ＵＳＢ通信部１４の設定を行う。例えば、制御部１２は、受信したＵＳＢ情報から、ＵＳＢ通信部１０４が使用しているＵＳＢデバイスアドレス、使用しているエンドポイント、デバイスドライバなどを用いて、ＵＳＢ通信部１０４が構成しているＵＳＢホストと同じ振る舞いをするＵＳＢホストをＵＳＢ通信部１４に構成する。
【００４４】
また、制御部１２は、受信した通信設定からネットワーク情報を取得し、ＵＳＢ通信部１４に設定する。例えば、制御部１２は、ＩＰアドレス、ポート番号、セッション管理及びＰＰＰ接続情報などのネットワーク設定を行う。
【００４５】
また、制御部１２は、受信した通信設定の中からアプリケーション情報を受信し、該当するアプリケーションを起動する。そして、制御部１２は、起動したアプリケーションにアプリケーション情報を適応する。例えば、制御部１２は、起動したアプリケーションに対して、ＰＵＳＨサーバ、認証情報及びデバイス識別しなどを設定する。そして、制御部１２は、設定完了の通知を共通記憶部１１０の通知領域２０１へ書き込む。
【００４６】
さらに、制御部１２は、同期命令を同期部１５に通知する。次に、制御部１２は、ＵＳＢ通信部１４における同期が完了したかを判定する。そして、制御部１２は、ＵＳＢ通信部１４の同期が完了した場合、同期完了通知を通知領域２０１に書き込む。
【００４７】
その後、制御部１２は、３Ｇ通信モジュール２に対するＵＳＢエニュメレーションを実行して、ＵＳＢデバイスを登録する。ここで、制御部１２は、デバイスアドレス、エンドポイントとして、ＵＳＢ通信部１４に設定したものと同じものを使用する。
【００４８】
その後、制御部１２は、ＵＳＢディスクリプタの情報を共通記憶部１１０の同期領域２２０から取得する。制御部１２は、同期領域２２０に書き込まれたＵＳＢディスクリプタの情報を取得することで、３Ｇ通信モジュール２の仕様が取得できる。そこで、制御部１２は、３Ｇ通信モジュール２のＵＳＢディスクリプタを使用して、３Ｇ通信モジュール２に対するデータを作成することができる。そして、制御部１２は、作成した３Ｇ通信モジュール２へのデータを共通記憶部１１０の通知領域２０１へ書き込むことができる。さらに、制御部１２は、３Ｇ通信モジュール２の通知領域２０１から取得したデータを３Ｇ通信モジュール２から取得したデータとして取り扱う。このように、制御部１２は、共通記憶部１１０を介して３Ｇ通信モジュール２との通信が行えるかのように振舞うことができる。すなわち、制御部１２は、共通記憶部１１０を仮想３Ｇ通信モジュールとして使用することができる。
【００４９】
そこで、制御部１２は、仮想３Ｇ通信モジュールに対して擬似的なＵＳＢ応答を行う指示をＵＳＢ通信部１４へ通知する。その後、制御部１２は、ＵＳＢ通信部１４から同期完了の通知を受信した場合、切り替え通知を通知領域２０１に書き込む。
【００５０】
その後、制御部１２は、ＵＳＢ通信部１４への切り替えが行われ、ＵＳＢ通信部１４からデータの入力を受けると、起動しているアプリケーションなどを用いて受信したデータに対する処理を開始する。
【００５１】
切替部１１は、ＵＳＢ通信部１４からＵＳＢ通信部１０４へ３Ｇ通信モジュール２の接続先を切り替える命令の入力を制御部１２から受ける。そして、切り替え命令を受信すると、切替部１１は、スイッチ１７がＵＳＢ通信部１０４を３Ｇ通信モジュール２の接続先として選択するよう切替える。
【００５２】
次に遠隔操作通信装置１００について説明する。ＵＳＢ通信部１０４は、スイッチ１７がＵＳＢ通信部１０４を３Ｇ通信モジュール２の接続先として選択している場合、３Ｇ通信モジュール２と間でデータの送受信を行う。さらに詳しくは、ＵＳＢ通信部１０４は、制御部１０２に指示されたデータを３Ｇ通信モジュール２を介して外部ネットワークへ送信する。また、ＵＳＢ通信部１０４は、３Ｇ通信モジュール２を介して外部ネットワークからのデータを受信する。ＵＳＢ通信部１０４は、受信したデータを制御部１０２へ出力する。ここで、ＵＳＢ通信部１０４は、１ｍｓの間隔でＳＯＦパケットにより通信の同期を取っている。
【００５３】
これに対して、スイッチ１７がＵＳＢ通信部１４を３Ｇ通信モジュール２の接続先として選択している場合、ＵＳＢ通信部１０４は、通信を行わない。
【００５４】
また、ＵＳＢ通信部１４への切り替えの場合、制御部１０２からの切り替え通知を受けて、ＵＳＢ通信部１０４は、３Ｇ通信モジュール２から受信したデータを制御部１０２へ出力するとともに、同期部１０５へ出力する。
【００５５】
これに対して、ＵＳＢ通信部１０４への切り替えの場合、ＵＳＢ通信部１０４は、同期部１０５からの制御を受けて、ＵＳＢ通信部１４のＳＯＦの受信タイミングでリセットが行われる。これにより、ＵＳＢ通信部１０４は、３Ｇ通信モジュール２と同期する。その後、ＵＳＢ通信部１０４は、後述するように共通記憶部１１０に構成された仮想３Ｇ通信モジュールと仮想的な接続が行われる。すなわち、ＵＳＢ通信部１０４は、共通記憶部１１０に構成された仮想３Ｇ通信モジュールとのデータの授受ができる状態となる。そして、ＵＳＢ通信部１０４は、擬似的なＵＳＢ応答の仮想３Ｇ通信モジュールへの送信指示を制御部１０２から受ける。この指示を受けて、ＵＳＢ通信部１０４は、擬似的なＵＳＢ応答を共通記憶部１１０のデータ転送領域２０５に書き込む。そして、ＵＳＢ通信部１０４は、通知領域２０１を監視し、情報処理装置１本体の制御部１２から擬似応答が通知領域２０１に書き込まれたかを判定する。擬似応答が通知領域２０１に書き込まれた場合、ＵＳＢ通信部１０４は、擬似応答を読み込む。そして、ＵＳＢ通信部１０４は、仮想３Ｇ通信モジュールとの通信が正常に確立したかを判定する。仮想３Ｇ通信モジュールとの通信が正常に確立したと判定した場合、ＵＳＢ通信部１０４は、同期完了を制御部１０２へ通知する。このＵＳＢ通信部１０４が、「第２通信部」の一例にあたる。
【００５６】
ＵＳＢ通信部１４への切り替えの場合、同期部１０５は、同期命令を制御部１０２から受ける。そして、同期部１０５は、ＵＳＢデバイスである３Ｇ通信モジュール２のＵＳＢディスクリプタを制御部１０２から受信する。そして、同期部１０５は、受信したＵＳＢディスクリプタを共通記憶部１１０の同期領域２２０に書き込む。これにより、共通記憶部１１０は、仮想３Ｇ通信モジュールとして構成される。
【００５７】
次に、同期部１０５は、３Ｇ通信モジュール２から受信したデータの入力をＵＳＢ通信部１０４から受ける。そして、同期部１０５は、受信したデータを共通記憶部１１０のデータ転送領域２０５に書き込む。
【００５８】
これに対して、ＵＳＢ通信部１０４への切り替えの場合、同期部１０５は、同期命令を制御部１０２から受ける。制御部１０２からの同期命令に従って、ＵＳＢ通信部１０４は、共通記憶部１１０のデータ転送領域２０５を監視する。そして、同期部１０５は、データ転送領域２０５に書き込まれるデータのＳＯＦを参照し、ＳＯＦの受信タイミングでＵＳＢ通信部１０４のリセットを行い、ＵＳＢ通信部１０４を３Ｇ通信モジュール２に同期させる。この同期部１０５が、「第２同期部」の一例にあたる。
【００５９】
プロトコルスタック設定部１０３は、ＵＳＢ通信部１４への切り替えの場合、通信設定格納命令を制御部１０２から受ける。そして、プロトコルスタック設定部１０３は、通信設定を共通記憶部１１０へ書き込む。
【００６０】
これに対して、ＵＳＢ通信部１０４への切替の場合、プロトコルスタック設定部１０３は、通信設定の取得命令を制御部１０２から受ける。そして、プロトコルスタック設定部１０３は、共通記憶部１１０からＵＳＢ通信部１４が使用していた通信設定を取得する。具体的には、プロトコルスタック設定部１０３は、３Ｇ通信モジュール２を使用した通信におけるアプリケーション情報をアプリ設定領域２０２から取得する。また、プロトコルスタック設定部１０３は、ＵＳＢ通信部１４が３Ｇ通信モジュール２を介して行っていた外部ネットワークとの通信におけるネットワーク情報をネットワーク設定領域２０３から取得する。さらに、プロトコルスタック設定部１０３は、ＵＳＢデバイスである３Ｇ通信モジュール２のＵＳＢ情報をＵＳＢ設定領域２０４から取得する。そして、プロトコルスタック設定部１０３は、取得した通信設定を制御部１０２へ出力する。このプロトコルスタック設定部１０３が、「第２通信設定部」の一例にあたる。
【００６１】
記憶部１０６は、メモリやハードディスクなどの記憶装置である。そして、記憶部１０６には、ＯＳやＰＵＳＨサービスのアプリケーションなどが記憶されている。
【００６２】
制御部１０２について、スイッチ１７がＵＳＢ通信部１０４を３Ｇ通信モジュール２の接続先として選択している場合を説明する。制御部１０２は、ＵＳＢ通信部１０４からデータの入力を受ける。そして、制御部１０２は、記憶部１０６などを用いてデータの処理を行う。また、制御部１０２は、外部へのデータの送信が必要な場合には、ＵＳＢ通信部１０４へデータを出力する。
【００６３】
制御部１０２は、スイッチ１７がＵＳＢ通信部１０４を３Ｇ通信モジュール２の接続先として選択している状態で、情報処理装置１の起動などの切り替え要因が発生した場合、シャットダウンまたはスタンバイモードの制御部１２を起動する。また、制御部１０２は、ＵＳＢ通信部１０４に切り替えを通知する。また、制御部１０２は、同期命令を同期部１０５に通知する。また、制御部１０２は、通信設定の格納命令をプロトコルスタック設定部１０３に通知する。
【００６４】
次に、制御部１２は、共通記憶部１１０の通知領域２０１を監視し、遠隔操作通信装置１００の制御部１０２から同期設定完了通知が書き込まれたことを確認する。
【００６５】
次に、制御部１０２は、共通記憶部１１０の同期領域２２０を監視し、情報処理装置１本体のＵＳＢ通信部１４からからＵＳＢ応答が書き込まれたかを判定する。制御部１０２は、同期領域２２０にＵＳＢ応答が書き込まれた場合、擬似応答を同期領域２２０へ書き込む。その後、制御部１０２は、共通記憶部１１０の通知領域２０１を監視し、制御部１２から同期完了の通知が書き込まれたことを判定する。さらに、制御部１０２は、共通記憶部１１０の通知領域２０１を監視し、通知領域２０１に切り替え通知が書き込まれたかを判定する。そして、同期完了通知及び切り替え通知が書き込まれると、制御部１０２は、ＵＳＢ通信部１０４からＵＳＢ通信部１４へ３Ｇ通信モジュール２の接続先を切り替える命令を切替部１０１へ出力する。
【００６６】
次に、制御部１０２について、スイッチ１７がＵＳＢ通信部１４を３Ｇ通信モジュール２の接続先として選択している場合を説明する。この場合でも、遠隔操作通信装置１００は常時通電であるため、制御部１０２は、起動している。制御部１０２は、共通記憶部１１０の通知領域２０１を監視している。そして、情報処理装置１本体の制御部１２により切り替え開始の通知が通知領域２０１に書き込まれた場合、制御部１０２は、通信設定の取得命令をプロトコルスタック設定部１０３に通知する。その後、制御部１０２は、取得命令の応答として通信設定をプロトコルスタック設定部１０３から受信する。
【００６７】
そして、制御部１０２は、受信した通信設定からＵＳＢ情報を取得し、ＵＳＢ通信部１０４の設定を行う。例えば、制御部１０２は、受信したＵＳＢ情報から、ＵＳＢ通信部１４が使用しているＵＳＢデバイスアドレス、使用しているエンドポイント、デバイスドライバなどを用いて、ＵＳＢ通信部１４が構成しているＵＳＢホストと同じ振る舞いをするＵＳＢホストをＵＳＢ通信部１０４に構成する。
【００６８】
また、制御部１０２は、受信した通信設定からネットワーク情報を取得し、ＵＳＢ通信部１０４に設定する。例えば、制御部１０２は、ＩＰアドレス、ポート番号、セッション管理及びＰＰＰ接続情報などのネットワーク設定を行う。
【００６９】
また、制御部１０２は、受信した通信設定の中からアプリケーション情報を受信し、該当するアプリケーションを起動する。そして、制御部１０２は、起動したアプリケーションにアプリケーション情報を適応する。例えば、制御部１０２は、起動したアプリケーションに対して、ＰＵＳＨサーバ、認証情報及びデバイス識別しなどを設定する。そして、制御部１２は、設定完了の通知を共通記憶部１１０の通知領域２０１へ書き込む。
【００７０】
さらに、制御部１０２は、同期命令を同期部１０５に通知する。次に、制御部１０２は、ＵＳＢ通信部１０４における同期が完了したかを判定する。そして、制御部１０２は、ＵＳＢ通信部１０４の同期が完了した場合、同期完了通知を通知領域２０１に書き込む。
【００７１】
その後、制御部１０２は、３Ｇ通信モジュール２に対するＵＳＢエニュメレーションを実行して、ＵＳＢデバイスを登録する。ここで、制御部１０２は、デバイスアドレス、エンドポイントとして、ＵＳＢ通信部１４に設定したものと同じものを使用する。
【００７２】
その後、制御部１０２は、ＵＳＢディスクリプタの情報を共通記憶部１１０の同期領域２２０から取得する。制御部１０２は、同期領域２２０に書き込まれたＵＳＢディスクリプタの情報を取得することで、３Ｇ通信モジュール２の仕様が取得できる。そこで、制御部１０２は、３Ｇ通信モジュール２のＵＳＢディスクリプタを使用して、３Ｇ通信モジュール２に対するデータを作成することができる。そして、制御部１０２は、作成した３Ｇ通信モジュール２へのデータを共通記憶部１１０の通知領域２０１へ書き込むことができる。さらに、制御部１０２は、３Ｇ通信モジュール２の通知領域２０１から取得したデータを３Ｇ通信モジュール２から取得したデータとして取り扱う。このように、制御部１０２は、共通記憶部１１０を介して３Ｇ通信モジュール２との通信が行えるかのように振舞うことができる。すなわち、制御部１０２は、共通記憶部１１０を仮想３Ｇ通信モジュールとして使用することができる。
【００７３】
そこで、制御部１２は、仮想３Ｇ通信モジュールに対して擬似的なＵＳＢ応答を行う指示をＵＳＢ通信部１４へ通知する。その後、制御部１２は、ＵＳＢ通信部１４から同期完了の通知を受信した場合、切り替え通知を通知領域２０１に書き込む。
【００７４】
その後、制御部１０２は、ＵＳＢ通信部１０４への切り替えが行われ、ＵＳＢ通信部１０４からデータの入力を受けると、起動しているアプリケーションなどを用いて受信したデータに対する処理を開始する。
【００７５】
切替部１０１は、ＵＳＢ通信部１０４からＵＳＢ通信部１４へ３Ｇ通信モジュール２の接続先を切り替える命令の入力を制御部１０２から受ける。そして、切り替え命令を受信すると、切替部１１は、スイッチ１７がＵＳＢ通信部１０４を３Ｇ通信モジュール２の接続先として選択するよう切替える。
【００７６】
次に、図３を参照して、３Ｇ通信モジュール２の接続を遠隔操作通信装置１００から情報処理装置１本体への切り替える場合のデータの流れについて説明する。図３は、遠隔操作通信装置から情報処理装置への切り替え時のデータの流れを説明するための図である。図３において、ＰＵＳＨアプリ２０及びＰＵＳＨアプリ１２０を点線で記載しているが、これは、図１における制御部１２及び制御部１０２によって起動されたアプリケーションを表している。すなわち、ＰＵＳＨアプリ２０は、図１における制御部１２及び記憶部１６などにより実現され、図３におけるＰＵＳＨアプリ１２０は制御部１０２及び記憶部１０６により実現される。
【００７７】
ユーザによるＰＣ起動またはＰＵＳＨサービスによるＰＣ起動によって、切り替え要因が発生すると、情報処理装置１が起動する。プロトコルスタック設定部１０３は、ＰＵＳＨアプリ１２０から取得したアプリケーション情報であるＰＵＳＨアプリ情報を共通記憶部１１０へ書き込む（ステップＳ１）。
【００７８】
また、プロトコルスタック設定部１０３は、ＵＳＢ通信部１０４が使用しているネットワーク情報を共通記憶部１１０へ書き込む（ステップＳ２）。
【００７９】
さらに、プロトコルスタック設定部１０３は、ＵＳＢ通信部１０４が使用しているＵＳＢ情報を共通記憶部１１０へ書き込む（ステップＳ３）。
【００８０】
これに対して、プロトコルスタック設定部１３は、ＰＵＳＨアプリ情報を共通記憶部１１０から取得する（ステップＳ４）。プロトコルスタック設定部１３が取得したＰＵＳＨアプリ情報は、ＰＵＳＨアプリ２０へ通知される。
【００８１】
また、プロトコルスタック設定部１３は、ネットワーク情報を共通記憶部１１０から取得する（ステップＳ５）。
【００８２】
さらに、プロトコルスタック設定部１３は、ＵＳＢ情報を共通記憶部１１０から取得する（ステップＳ６）。
【００８３】
その後、同期部１０５は、ＵＳＢ通信部１０４からの通信を共通記憶部１１０へ転送し、３Ｇ通信モジュール２のＵＳＢディスクリプタを共通記憶部１１０へ書き込む（ステップＳ７）。ここで、図３におけるＵＳＢ通信部１０４から仮想３Ｇ通信モジュールへの矢印は、ＵＳＢ通信部１０４からの通信の共通記憶部１１０への転送を表している。これにより、共通記憶部１１０の中に仮想３Ｇ通信モジュールが構成される。
【００８４】
そして、同期部１５は、同期部１０５によって共通記憶部１１０に転送された通信のＳＯＦを取得し（ステップＳ８）、ＵＳＢ通信部１４をリセットすることで、ＵＳＢ通信部１０４とＵＳＢ通信部１４との同期が取れる。
【００８５】
これにより、ＵＳＢ通信部１４は、取得した各種通信設定を用いて共通記憶部１１０に構成された仮想３Ｇ通信モジュールに対して接続を仮想的に行うことができる（ステップＳ９）。
【００８６】
このように、ＵＳＢ通信部１４を仮想３Ｇ通信モジュールとの接続を仮想的に確立しておくことで、ＵＳＢ通信部１４は、スイッチ１７の切り替えにより実際の３Ｇ通信モジュール２に接続されたときに、既に確立している設定を用いて接続を確立することができる。したがって、実際の切り替え後には通信設定などを行う必要が無いので、通信の中断を軽減することができる。
【００８７】
ここでは、遠隔操作通信装置１００のＵＳＢ通信部１０４から情報処理装置１本体のＵＳＢ通信部１４へ接続を切り替える場合について説明した。この点、情報処理装置１本体のＵＳＢ通信部１４から遠隔操作通信装置１００のＵＳＢ通信部１０４に切り替える場合においても、データの流れが逆になるだけで同様のデータの受け渡しが行われ、仮想３Ｇ通信モジュールが共通記憶部１１０に構成される。
【００８８】
次に、図４を参照して、遠隔操作通信装置１００のＵＳＢ通信部１０４から情報処理装置１本体のＵＳＢ通信部１４への接続の切り替え処理の流れを説明する。図４は、切り替え処理のフローチャートである。
【００８９】
遠隔操作通信装置１００の動作時に、シャットダウンなどの切り替え要因が発生する（ステップＳ１０１）。
【００９０】
次に、制御部１０２は、移行先である情報処理装置１本体の制御部１２が有するＣＰＵに電源を供給し制御部１２を起動させる（ステップＳ１０２）。
【００９１】
プロトコルスタック設定部１０３は、ＵＳＢ通信部１０４が使用している通信設定を共通記憶部１１０へ書き込む（ステップＳ１０３）。
【００９２】
プロトコルスタック設定部１３は、通信設定を共通記憶部１１０から取得する。そして、制御部１２は、プロトコルスタック設定部１３が取得した通信設定をＵＳＢ通信部１４などに設定する（ステップＳ１０４）。
【００９３】
制御部１２は、共通記憶部１１０の通知領域２０１に設定完了の通知を書き込み、設定完了を通知する（ステップＳ１０５）。
【００９４】
同期部１０５は、ＵＳＢ通信部１０４が３Ｇ通信モジュール２から受信したデータを共通記憶部１１０のデータ転送領域２０５へ転送する（ステップＳ１０６）。
【００９５】
そして、同期部１５は、データ転送領域２０５に書き込まれたデータのＳＯＦを取得し、ＵＳＢ通信部１４とＵＳＢデバイスである３Ｇ通信モジュール２との同期を取る（ステップＳ１０７）。
【００９６】
そして、制御部１２は、３Ｇ通信モジュール２に対するＵＳＢエニュメレーションを実行して、ＵＳＢデバイスを登録し設定する（ステップＳ１０８）。
【００９７】
次に、ＵＳＢ通信部１４は、擬似的なＵＳＢ応答の通知を共通記憶部１１０の通知領域２０１に書き込み、制御部１０２は、通知領域２０１に書き込まれた擬似的なＵＳＢ応答の通知を取得する。これにより、ＵＳＢ通信部１４は、制御部１０２に対して擬似的なＵＳＢ応答を通知する(ステップＳ１０９)。
【００９８】
次に、制御部１０２は、擬似応答の通知を共通記憶部１１０の通知領域２０１に書き込み、ＵＳＢ通信部１４は、通知領域２０１に書き込まれた擬似応答の通知を取得する。これにより、制御部１０２は、ＵＳＢ通信部１４に対して擬似応答を通知する(ステップＳ１１０)。
【００９９】
そして、制御部１２は、ＵＳＢ通信部１４が擬似応答の通知を制御部１０２から受けると、同期完了の通知を共通記憶部１１０の通知領域２０１に書き込み、制御部１０２は、通知領域２０１に書き込まれた同期完了の通知を取得する。これにより、制御部１２は、制御部１０２に対して同期完了の通知を行う(ステップＳ１１１)。
【０１００】
さらに、制御部１２は、切り替え通知を共通記憶部１１０の通知領域２０１に書き込み、制御部１０２は、通知領域２０１に書き込まれた切り替え通知を取得する。これにより、制御部１２は、制御部１０２に対して切り替え通知を行う(ステップＳ１１２)。
【０１０１】
制御部１０２は、制御部１２から切り替え通知を受けると、バススイッチであるスイッチ１７の切り替えを切替部１０１へ通知する。そして、切替部１０１は、スイッチ１７をＵＳＢ通信部１４に切り替える（ステップＳ１１３）。
【０１０２】
その後、移行元である遠隔操作通信装置１００のＣＰＵが動作を停止する（ステップＳ１１４）。
【０１０３】
次に、図５を参照して、切替元、切替先及び３Ｇ通信モジュール２の間の切り替え処理におけるデータの流れを説明する。図５は、切り替え処理におけるデータの流れを表すシーケンス図である。ここで、紙面に向かって左端に書かれた切替元、３Ｇ通信モジュール２及び切替先のそれぞれから延びる線の間を結ぶ矢印はデータの流れを示している。また、図５は、紙面に向かって右に向かって時間の経過を表している。
【０１０４】
まず、切替元と３Ｇ通信モジュール２との間で通信が行われている（ステップＳ２０１）。ここで、点線２５０で表される時点で切り替え要因が発生したものとする。
【０１０５】
すると、切替元から切替先へ、アプリケーション情報が通知される（ステップＳ２０２）。これにより、切替先で、アプリケーションの設定が行われる。
【０１０６】
また、切替元から切替先へ、ネットワーク情報が通知される（ステップＳ２０３）。これにより、切替先で、ネットワークの設定が行われる。
【０１０７】
さらに、切替元から切替先へ、ＵＳＢ情報が通知される（ステップＳ２０４）。これにより、切替先で、ＵＳＢの設定が行われる。
【０１０８】
ここで、範囲Ｐの間は、プロトコルスタック設定部１３及びプロトコルスタック設定部１０３により各ステップの処理が実現される。
【０１０９】
その後、共通記憶部１１０に仮想３Ｇ通信モジュールが構成されると、切替元と３Ｇ通信モジュールとの間の通信が行われる（ステップＳ２０５）と共に、そのデータが切替元から切替先へ転送される（ステップＳ２０６）。これにより、切替先と３Ｇ通信モジュール２との間で同期が取られる。
【０１１０】
その後、切替先から切替元へ、切り替え通知が行われる（ステップＳ２０７）。
【０１１１】
これにより、スイッチ１７により、３Ｇ通信モジュール２との接続が切替元から切替先へ切り替えられ（ステップＳ２０８）、これにより、切替元の通信は切断される（ステップＳ２０９）。
【０１１２】
ここで、範囲Ｑの間は、同期部１５及び同期部１０５並びに制御部１２及び制御部１０２により各ステップの処理が実現される。
【０１１３】
その後、接続先と３Ｇ通信モジュール２との間で通信が行われる（ステップＳ２１０）。
【０１１４】
次に、図６を参照して、遠隔操作通信装置１００のＵＳＢ通信部１０４から情報処理装置１本体のＵＳＢ通信部１４への接続の切り替えの概略についてさらに説明する。図６は、切り替え処理の概略を表すシーケンス図である。図６において示す情報処理装置１は情報処理装置１本体を表している。
【０１１５】
遠隔操作通信装置１００は、受信したＳＯＦ３００を用いて３Ｇ通信モジュール２と同期を取っている。ここで、一例として先頭のＳＯＦにだけ符号を付けたが、遠隔操作通信装置１００から延びている線上に記載されたブロックは全てＳＯＦを表している。そして、遠隔操作通信装置１００は、ＳＯＦ３００と同様にそれぞれのタイミングで他のＳＯＦを用いて３Ｇ通信モジュール２と同期を取っている。
【０１１６】
そして、一点鎖線で表されるタイミングで情報処理装置１本体が起動されるなどの切り替え要因が発生する（ステップＳ３０１）。
【０１１７】
そこで、遠隔操作通信装置１００は、情報処理装置１に対して、電源を供給すると共に、通信設定を通知する（ステップＳ３０２）。
【０１１８】
電源の供給を受けて、情報処理装置１本体は起動する（ステップＳ３０３）。
【０１１９】
次に、情報処理装置１は、各種通信設定を行う（ステップＳ３０４）。
【０１２０】
この間、遠隔操作通信装置１００から共通記憶部１１０にＵＳＢディスクリプタが書き込まれ、仮想３Ｇ通信モジュールが構成される（ステップＳ３０５）。
【０１２１】
そして、情報処理装置１本体では、３Ｇ通信モジュール２に対するＵＳＢホストを構成する（ステップＳ３０６）。
【０１２２】
その後、遠隔操作通信装置１００は、受信したＳＯＦ３００を共通記憶部１１０を介して情報処理装置１本体に転送する（ステップＳ３０７）。これにより、情報処理装置１本体は、ＳＯＦ３０１〜３０３を取得する。そして、情報処理装置１は、ＳＯＦ３０１〜３０３を受信したタイミングでＵＳＢ通信部１４をリセットすることにより、ＵＳＢ通信部１４を３Ｇ通信モジュール２に同期させる。すなわち、矢印４０２で表される間に、情報処理装置１は、ＵＳＢエニュメレーションを行う。
【０１２３】
そして、ＵＳＢエニュメレーション完了後、情報処理装置１のＵＳＢ通信部１４は、接続先を仮想３Ｇ通信モジュールから３Ｇ通信モジュール２へ切り替える（ステップＳ３０８）。この時点で、遠隔操作通信装置１００のＵＳＢ通信部１０４と３Ｇ通信モジュール２との接続が切断される（ステップＳ３０９）。
【０１２４】
その後、情報処理装置１本体は、ＳＯＦ３０４で表されるＳＯＦを取得して、３Ｇ通信モジュール２と同期を取る。その後、情報処理装置１本体は、３Ｇ通信モジュール２とＵＳＢ通信を行う。
【０１２５】
すなわち、矢印４０１の間は遠隔操作通信装置１００が３Ｇ通信モジュールとＵＳＢ通信を行い、その間の矢印４０２の間に情報処理装置１はＵＳＢエニュメレーションを行ってしまい、矢印４０３では情報処理装置１が３Ｇ通信モジュールとＵＳＢ通信を行う。したがって、図６で示すように、矢印４０１と矢印４０３との間にタイムラグが無く、通信の中断が発生しないことが分かる。
【０１２６】
図７は、情報処理装置のハードウェア構成図である。図７に示すように、情報処理装置１は、グラフィックコントローラ５０１、メインＣＰＵ５０２、メモリ５０３、チップセット５０４、ストレージ５０５、ＵＳＢホスト５０６、バススイッチ５０７及び遠隔操作通信装置１００を有している。
【０１２７】
さらに、遠隔操作通信装置１００は、サブＣＰＵ６０１、ＵＳＢデバイス共通領域６０２、メモリ６０３、ＵＳＢホスト６０４を有している。
【０１２８】
グラフィックコントローラ５０１、メモリ５０３及びチップセット５０４は、メインＣＰＵ５０２とバスで接続されている。そして、チップセット５０４は、ストレージ５０５及びＵＳＢホスト５０６とバスで接続されている。さらに、ＵＳＢホスト５０６は、ＵＳＢデバイス共通領域６０２及びバススイッチ５０７とバスで接続されている。
【０１２９】
ストレージ５０５及びメモリ５０３により、図１における記憶部１６の機能を実現している。また、ストレージ５０５にはＯＳやＰＵＳＨサービスのアプリケーションなどが記憶されている。
【０１３０】
そして、メインＣＰＵ５０２、チップセット５０４及びメモリ５０３は、例えば、図１に示した切替部１１、制御部１２、プロトコルスタック設定部１３及び同期部１５等の機能を実現する。例えば、メモリ５０３は、図１に例示した切替部１１、制御部１２、プロトコルスタック設定部１３及び同期部１５等による処理を実現する各種プログラムを記憶している。そして、メインＣＰＵ５０２及びチップセット５０４は、これらの各種プログラムを読み出して実行することで、上述した各機能を実現するプロセスを生成する。
【０１３１】
また、ＵＳＢホスト５０６は、図１に示したＵＳＢ通信部１４の機能を実現する。さらに、グラフィックコントローラ５０１は、プロセスの実行結果などといった各種データをモニタに表示する。
【０１３２】
バススイッチ５０７は、図１に示したスイッチ１７の機能を実現する。バススイッチ５０７は、３Ｇ通信モジュール２と接続され、さらにＵＳＢホスト５０６及びＵＳＢホスト６０４が切り替え可能に接続されている。
【０１３３】
ＵＳＢデバイス共通領域６０２、メモリ６０３及びＵＳＢホスト６０４は、サブＣＰＵ６０１とバスで接続されている。ＵＳＢデバイス共通領域６０２には、メインＣＰＵ５０２はＵＳＢホスト５０６を介してアクセスでき、サブＣＰＵ６０１はＵＳＢホスト６０４を介してアクセスできる。
【０１３４】
ＵＳＢデバイス共通領域６０２は、共通記憶部１１０を実現する。そして、サブＣＰＵ６０１及びメモリ６０３は、例えば、図１に示した切替部１０１、制御部１０２、プロトコルスタック設定部１０３及び同期部１０５等の機能を実現する。例えば、メモリ６０３は、図１に例示した切替部１０１、制御部１０２、プロトコルスタック設定部１０３及び同期部１０５等による処理を実現する各種プログラムを記憶している。そして、サブＣＰＵ６０１は、これらの各種プログラムを読み出して実行することで、上述した各機能を実現するプロセスを生成する。また、サブＣＰＵ６０１は、情報処理装置１のメインＣＰＵ５０２とは独立して動作する。すなわち、メインＣＰＵ５０２が動作していない状態でも、サブＣＰＵ６０１は処理を行うことができる。
【０１３５】
また、ＵＳＢホスト６０４は、図１に示したＵＳＢ通信部１０４の機能を実現する。
【０１３６】
以上に説明したように、本実施例に係る情報処理装置は、情報処理装置本体の通信部又は遠隔操作通信装置の通信部のいずれか一方から他方へＵＳＢデバイスの接続先を切替える場合に、切り替え前に仮想の通信モジュールを構成する。そして、切替先の通信部を構成した仮想の通信モジュールに仮想的に接続させることで、情報処理装置は、実際のＵＳＢデバイスとの接続に対して必要な通信設定を予め行い、切り替え後に予め設定した通信設定を用いて実際のＵＳＢデバイスとの通信を行う。これにより、切り替え後のＵＳＢデバイスに対する通信設定を省略することができる。したがって、通信の再接続による一時不通を発生させること無く、情報処理装置本体の通信部又は遠隔操作通信装置の通信部のいずれか一方から他方へＵＳＢデバイスの接続先を切替えることができる。すなわち、情報処理装置の起動やシャットダウンといった使用状況に応じて、切り替えが発生した場合でも、ＰＵＳＨサービスを中断無く継続して提供することが可能となり、ＰＵＳＨサービスの品質を高めることが可能となる。
【符号の説明】
【０１３７】
１  情報処理装置
２  ３Ｇ通信モジュール
１１  切替部
１２  制御部
１３  プロトコルスタック設定部
１４  ＵＳＢ通信部
１５  同期部
１６  記憶部
１７  スイッチ
１００  遠隔操作通信装置
１０１  切替部
１０２  制御部
１０３  プロトコルスタック設定部
１０４  ＵＳＢ通信部
１０５  同期部
１０６  記憶部
１１０  共通記憶部
【図１】
0005699756.tif 000002
【図２】
0005699756.tif 000003
【図３】
0005699756.tif 000004
【図４】
0005699756.tif 000005
【図５】
0005699756.tif 000006
【図６】
0005699756.tif 000007
【図７】
0005699756.tif 000008