(57)【要約】  端末（３１）は、Ｉ／Ｏ機能（３６）により、Ｉ／Ｏリソース識別子や、ＧＵＩウインドウのサイズ等のＩ／Ｏリソース関連情報を取得し、Ｉ／Ｏリソース（３７）中に保有していく。端末切り替えの何らかのトリガがあると、Ｉ／Ｏ機能（３６）は、Ｉ／Ｏリソース（３７）中のＩ／Ｏリソース関連情報を、端末（３２）に転送する。端末（３２）は、リソース再現機能（３８）により、受信したＩ／Ｏリソース関連情報を再現する。ユーザは、利用中の端末内ウインドウや、音声データ等のＩ／Ｏリソースを、Ｉ／Ｏ機能を含む環境全体を転送することなく、端末（３２）のＩ／Ｏ機能（４１）に切り替えてサービスを継続する。
2010021230.tif 000002
【特許請求の範囲】
【請求項１】
第１の端末で利用中のＩ／Ｏリソースを第２の端末で継続して利用する端末切替システムであって、
前記第１の端末は、
前記Ｉ／ＯリソースのＩ／Ｏを行うＩ／Ｏ部と、
端末切り替えのトリガがあると、前記Ｉ／Ｏリソースの関連情報を前記第２の端末に転送する転送部と、
を備え、
前記第２の端末は、
前記Ｉ／Ｏ部と、
前記第１の端末から前記Ｉ／Ｏリソースの関連情報を受信する転送部と、
受信した前記Ｉ／Ｏリソースの関連情報に基づいて前記Ｉ／Ｏリソースを再現するリソース再現部と、
を備える端末切替システム。
【請求項２】
前記第１の端末および前記第２の端末の各端末は、前記Ｉ／Ｏリソースに関する識別情報を端末の切り換え前後で一致しないように管理するＩＤ管理部をさらに備える請求項１に記載の端末切り換えシステム。
【請求項３】
前記第１の端末および前記第２の端末の各端末は、プロセスを実行するプロセス実行部をさらに備え、
前記第１の端末および前記第２の端末の前記転送部は、前記第１の端末と前記第２の端末との間のルーティングを設定し、
前記第２の端末の前記I／O部は、当該ルーティングに基づいて前記第１の端末の前記プロセス実行部で実行されるプロセスを利用する請求項２に記載の端末切替システム。
【請求項４】
前記第１の端末および前記第２の端末の各端末は、プロセスを実行するプロセス実行部をさらに備え、
前記第２の端末の前記転送部は、前記第２の端末内部でのルーティングを設定し、
前記第２の端末の前記Ｉ／Ｏ部は、当該ルーティングに基づいて前記第２の端末内部の前記プロセス実行部で実行されるプロセスを利用する請求項２に記載の端末切替システム。
【請求項５】
前記第１の端末および前記第２の端末の各端末は、プロセスを実行するプロセス実行部をさらに備え、
前記第１の端末および前記第２の端末の前記転送部は、前記第１の端末と前記第２の端末との間のルーティングを設定し、
前記第１の端末の前記Ｉ／Ｏ部は、当該ルーティングに基づいて、前記第２の端末の前記プロセス実行部で実行されるプロセスを利用する請求項２に記載の端末切替システム。
【請求項６】
前記ＩＤ管理部は、端末の切替に用いる識別情報を予め確保しておき、その他の識別情報とはＩＤプールを分けておく請求項２に記載の端末切替システム。
【請求項７】
前記ＩＤ管理部は、前記Ｉ／Ｏリソースに関する識別情報を端末の切り換え前後で書き換える請求項２に記載の端末切替システム。
【請求項８】
前記第２の端末の前記Ｉ／Ｏ部が前記ルーティングの設定の完了を検知すると、前記第２の端末の前記ＩＤ管理部は、前記Ｉ／Ｏリソースに関する識別情報の書き換えを開始する請求項３乃至５のいずれかに記載の端末切替システム。
【請求項９】
利用中のＩ／Ｏリソースを他の端末で継続して利用させる端末であって、
前記Ｉ／ＯリソースのＩ／Ｏを行うＩ／Ｏ部と、
端末切り替えのトリガがあると、前記Ｉ／Ｏリソースの関連情報を前記他の端末に転送する転送部と、
を備える端末。
【請求項１０】
他の端末で利用中のＩ／Ｏリソースを継続して利用する端末であって、
前記他の端末から転送された前記Ｉ／Ｏリソースに関する識別情報を端末の切り換え前後で一致しないように管理するＩＤ管理部と、
前記他の端末から転送された前記Ｉ／Ｏリソースの関連情報に基づいて前記Ｉ／Ｏリソースを再現するリソース再現部と、
を備える端末。
【請求項１１】
第１の端末で利用中のＩ／Ｏリソースを、第２の端末で継続して利用する端末切替方法であって、
前記第１の端末で端末切り替えのトリガがあると、前記第１の端末から前記Ｉ／Ｏリソースの関連情報を前記第２の端末に転送するステップと、
前記第１の端末および前記第２の端末で前記Ｉ／Ｏリソースに関する識別情報を端末の切り換え前後で一致しないように管理するステップと、
前記第２の端末で前記Ｉ／Ｏリソースの関連情報に基づいて前記Ｉ／Ｏリソースを再現するステップと、
を含む端末切替方法。
【請求項１２】
第１の端末で利用中のＩ／Ｏリソースを、第２の端末で継続して利用する際に、
前記第１の端末で端末切り替えのトリガがあると、前記Ｉ／Ｏリソースの関連情報を前記第２の端末に転送するステップと、
前記第１の端末および前記第２の端末で前記Ｉ／Ｏリソースに関する識別情報を端末の切り換え前後で一致しないように管理するステップと、
前記第２の端末で前記Ｉ／Ｏリソースの関連情報に基づいて前記Ｉ／Ｏリソースを再現するステップと、
を前記第１の端末および前記第２の端末のコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザが利用しているサービスを他の端末で継続利用する端末切り替えの手法に関し、特に、Ｉ／Ｏ（入出力）機能を実行する端末を切り替える端末切替システム、端末切替方法、端末、及びプログラムに関する。
本願は、２００８年８月１９日に、日本に出願された特願２００８−２１０８７５号に基づき優先権を主張し、その内容をここに援用する。
【背景技術】
【０００２】
従来、利用中の端末内ウインドウや、音声データ等のＩ／Ｏリソースを、異なる端末で継続して利用するための技術として、両方の端末にＪＡＶＡ（登録商標）や、ＶＭｗａｒｅ（登録商標）等のプラットフォームを搭載してＩ／Ｏ機能自体を転送する技術が知られている。【０００３】
関連技術としては、通信サービスを他の装置で継続利用するための手法であり、ネットワーク側に機能を追加せず、クライアント、サーバ共に既存を含めた任意の通信サービスを遷移できる技術が提案されている。【０００４】
また、他の関連技術としては、異なるＧＵＩ（Graphical User Interface）上に開発されたアプリケーションを同一ディスプレイ画面上に同時表示する技術が提案されている（例えば、特許文献１参照）。【０００５】
なお、ユーザのキーボードや、マウス等による入力を、ディスプレイ上にグラフィカルに表示するシステムとしては、ＵＮＩＸ（登録商標）系ＯＳ（Operating System）で使われているＸ  Ｗｉｎｄｏｗ（登録商標）システムや、Ｗｉｎｄｏｗｓ（登録商標）ＯＳで使われているＧＤＩ（Graphic Device Interface）ベースのＧＵＩがある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平０５−１１９５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した関連技術には、ＪＡＶＡ（登録商標）や、ＶＭｗａｒｅ等のプラットフォームを搭載する場合には、Ｉ／Ｏ機能を含む環境全体を転送するような大掛かりな実装が必要となる。また、Ｉ／Ｏ機能自体を転送しない場合には、転送前後でＩ／ＯリソースのＩＤ（識別子）を保存する必要があるが、遷移元と遷移先との間でＩＤが一致してしまう可能性があるために実現できないという問題がある。【０００８】
特に、上述した他の関連技術（特許文献１）では、ＯＳ中のＧＵＩ表示を一括処理するＩ／Ｏ機能自体に改造が必要である。また、そもそも同一端末内での処理を想定しており、端末間のＩ／ＯリソースＩＤの調整には言及していない。【０００９】
本発明は、このような事情を考慮してなされたものであり、その目的は、利用中の端末内ウインドウや、音声データ等のＩ／Ｏリソースを、Ｉ／Ｏ機能を含む環境全体を転送することなく、異なる端末で継続して利用することができる端末切替システム、端末切替方法、端末、及びプログラムを提供することにある。
【課題を解決するための手段】
【００１０】
上述した課題を解決するために、本発明の端末切替システムは、第１の端末で利用中のＩ／Ｏリソースを第２の端末で継続して利用する端末切替システムであって、前記第１の端末は、前記Ｉ／ＯリソースのＩ／Ｏを行うＩ／Ｏ部と、端末切り替えのトリガがあると、前記Ｉ／Ｏリソースの関連情報を前記第２の端末に転送する転送部と、を備え、前記第２の端末は、前記Ｉ／Ｏ部と、前記第１の端末から前記Ｉ／Ｏリソースの関連情報を受信する転送部と、受信した前記Ｉ／Ｏリソースの関連情報に基づいて前記Ｉ／Ｏリソースを再現するリソース再現部と、を備える。【００１１】
上記端末切替システムは、前記第１の端末および前記第２の端末の各端末は、前記Ｉ／Ｏリソースに関する識別情報を端末の切り換え前後で一致しないように管理するＩＤ管理部をさらに備えてもよい。【００１２】
上記端末切替システムにおいて、前記第１の端末および前記第２の端末の各端末は、プロセスを実行するプロセス実行部をさらに備え、前記第１の端末および前記第２の端末の前記転送部は、前記第１の端末と前記第２の端末との間のルーティングを設定し、前記第２の端末の前記Ｉ／Ｏ部は、当該ルーティングに基づいて前記第１の端末の前記プロセス実行部で実行されるプロセスを利用してもよい。【００１３】
上記端末切替システムにおいて、前記第１の端末および前記第２の端末の各端末は、プロセスを実行するプロセス実行部をさらに備え、前記第２の端末の前記転送部は、前記第２の端末内部でのルーティングを設定し、前記第２の端末の前記Ｉ／Ｏ部は、当該ルーティングに基づいて前記第２の端末内部の前記プロセス実行部で実行されるプロセスを利用してもよい。【００１４】
上記端末切替システムにおいて、前記第１の端末および前記第２の端末の各端末は、プロセスを実行するプロセス実行部をさらに備え、前記第１の端末および前記第２の端末の前記転送部は、前記第１の端末と前記第２の端末との間のルーティングを設定し、前記第１の端末の前記Ｉ／Ｏ部は、当該ルーティングに基づいて、前記第２の端末の前記プロセス実行部で実行されるプロセスを利用してもよい。【００１５】
上記端末切替システムにおいて、前記ＩＤ管理部は、端末の切替に用いる識別情報を予め確保しておき、その他の識別情報とはＩＤプールを分けておいてもよい。【００１６】
上記端末切替システムにおいて、前記ＩＤ管理部は、前記Ｉ／Ｏリソースに関する識別情報を端末の切り換え前後で書き換えてもよい。【００１７】
上記端末切替システムにおいて、前記第２の端末の前記Ｉ／Ｏ部が前記ルーティングの設定の完了を検知すると、前記第２の端末の前記ＩＤ管理部は、前記Ｉ／Ｏリソースに関する識別情報の書き換えを開始してもよい。【００１８】
また、本発明の端末は、利用中のＩ／Ｏリソースを他の端末で継続して利用させる端末であって、前記Ｉ／ＯリソースのＩ／Ｏを行うＩ／Ｏ部と、端末切り替えのトリガがあると、前記Ｉ／Ｏリソースの関連情報を前記他の端末に転送する転送部と、を備える。【００１９】
また、本発明の端末は、他の端末で利用中のＩ／Ｏリソースを継続して利用する端末であって、前記他の端末から転送された前記Ｉ／Ｏリソースに関する識別情報を端末の切り換え前後で一致しないように管理するＩＤ管理部と、前記他の端末から転送された前記Ｉ／Ｏリソースの関連情報に基づいて前記Ｉ／Ｏリソースを再現するリソース再現部と、を備える。【００２０】
また、本発明の端末切替方法は、第１の端末で利用中のＩ／Ｏリソースを、第２の端末で継続して利用する端末切替方法であって、前記第１の端末で端末切り替えのトリガがあると、前記第１の端末から前記Ｉ／Ｏリソースの関連情報を前記第２の端末に転送するステップと、前記第１の端末および前記第２の端末で前記Ｉ／Ｏリソースに関する識別情報を端末の切り換え前後で一致しないように管理するステップと、前記第２の端末で前記Ｉ／Ｏリソースの関連情報に基づいて前記Ｉ／Ｏリソースを再現するステップと、を含む。【００２１】
また、本発明のプログラムは、第１の端末で利用中のＩ／Ｏリソースを、第２の端末で継続して利用する際に、前記第１の端末で端末切り替えのトリガがあると、前記Ｉ／Ｏリソースの関連情報を前記第２の端末に転送するステップと、前記第１の端末および前記第２の端末で前記Ｉ／Ｏリソースに関する識別情報を端末の切り換え前後で一致しないように管理するステップと、前記第２の端末で前記Ｉ／Ｏリソースの関連情報に基づいて前記Ｉ／Ｏリソースを再現するステップと、を前記第１の端末および前記第２の端末のコンピュータに実行させる。
【発明の効果】
【００２２】
この発明によれば、第１の端末で端末切り替えのトリガがあると、Ｉ／Ｏリソースの関連情報を第２の端末に転送し、該Ｉ／Ｏリソースに関する識別情報を端末の切替前後で一致しないように管理しつつ、第２の端末でＩ／Ｏリソースの関連情報に基づいてＩ／Ｏリソースを再現するようにしたので、利用中の端末内ウインドウや、音声データ等のＩ／Ｏリソースを、Ｉ／Ｏ機能を含む環境全体を転送することなく、異なる端末で継続して利用することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の第１実施形態による端末切替システムの構成を示すブロック図である。
【図２】本第１実施形態による端末切替システムの動作を説明するためのシーケンス図である。
【図３】本第２実施形態による端末切替システムの構成を示すブロック図である。
【図４】本第２実施形態による端末切替システムの動作を説明するためのシーケンス図である。
【図５】本第３実施形態による端末切替システムの構成を示すブロック図である。
【図６】本第３実施形態による端末切替システムの動作を説明するためのシーケンス図である。
【図７】本第４実施形態による端末切替システムの動作を説明するためのシーケンス図である。
【図８】第２実施形態（図３の構成）において、Ｗｉｎｄｏｗｓ（登録商標）のＧＵＩシステム上の入出力を遷移する場合について説明するブロック図である。
【図９】第３実施形態（図５の構成）において、Ｗｉｎｄｏｗｓ（登録商標）のＧＵＩシステム上の入出力を遷移する場合について説明するブロック図である。
【発明を実施するための形態】
【００２４】
以下、本発明の実施形態を、図面を参照して説明する。
（実施形態１）
【００２５】
図１は、本発明の第１実施形態による入出力端末切替システムの構成を示すブロック図である。図１において、端末３１（Ａ）及び端末３２（Ｂ）は、ディスプレイ、スピーカ、ボタン、キーボード、マウス等のうちの幾つかのＩ／Ｏ機器を備えた端末である。端末３１及び端末３２は、各々、リソース再現機能３３、３８、端末間通信機能３４、３９、ＩＤ管理機能３５、４０、Ｉ／Ｏ機能３６、４１、Ｉ／Ｏリソース３７、４２からなるＩ／Ｏ  ＩＦ機能４３、４４から構成される。各機能ブロック間では、データ通信等でプログラムの命令や、データなどが授受される。なお、これらの機能セットは、端末切り替えを双方向で実現するために、端末３１及び端末３２で同じものとしている。したがって、片方向の切り替えの際には、後述する動作の説明でするように、一方の端末中で、このうちの幾つかの機能が実行されない。
【００２６】
次に、本第１実施形態による端末切替システムの動作について説明する。
図２は、本第１実施形態による端末切替システムの動作を説明するためのシーケンス図である。本第１実施形態では、ユーザが端末３１のディスプレイ、キーボード等のＩ／Ｏ機能３６を使ってサービスを利用していて、急遽、端末３２のＩ／Ｏ機能４１に切り替えてサービスを継続することになった場合を想定する。この場合、ＩＤ管理機能３５、４０の振る舞いに応じて、以下に示す２通りのいずれかの方法でＩ／Ｏリソースに関するＩＤを遷移元、遷移先の二系統の間で一致しないように管理する。
【００２７】
第一の方法は、端末切り替えの用途で用いるＩＤを事前確保しておいて、その他の用途のＩＤとはＩＤプールを分けておく方法である。
【００２８】
第二の方法は、ＩＤプールを分けない場合に、後述するように、リソース再現の後、全てのＩ／Ｏ処理要求に記載されているＩ／Ｏリソースに関するＩＤを、古い遷移元と新たな遷移先との二系統の間で書き換える処理を行う方法である。
【００２９】
まず、端末３１において、Ｉ／Ｏ  ＩＦ機能４３内のＩ／Ｏ機能３６により、全Ｉ／Ｏ処理を管理し、Ｉ／Ｏリソース識別子や、ＧＵＩウインドウのサイズ等のＩ／Ｏリソース関連情報を取得し、Ｉ／Ｏリソース３７中に保有していく（ステップＳａ１）。
【００３０】
ここで、端末切り替えの何らかのトリガ（ユーザの指定等）があると（ステップＳａ２）、Ｉ／Ｏ機能３６は、Ｉ／Ｏリソース３７中のＩ／Ｏリソース関連情報を、それぞれの端末３１、３２の端末間通信機能３４、３９を経由して、端末３２のＩ／Ｏ  ＩＦ機能４４内のＩ／Ｏ機能４１に転送し、Ｉ／Ｏリソース４２に登録する（ステップＳａ３）。端末３２のリソース再現機能３８は、受信したＩ／Ｏリソース関連情報をＩ／Ｏ機能４１に対して設定する（ステップＳａ４）。
【００３１】
ここで、上記第二の方法を採用する場合、ＩＤ管理機能４０がＩ／Ｏリソース４２中のＩ／Ｏリソース関連情報を参照して、これ以降の全てのＩ／Ｏ処理要求に記載されているＩ／Ｏリソースに関するＩＤを、古い遷移元と新たな遷移先の二系統の間で書き換える処理を開始する。
【００３２】
このようにして、ユーザは、利用中の端末内ウインドウや、音声データ等のＩ／Ｏリソースを、Ｉ／Ｏ機能を含む環境全体を転送することなく、端末３２のＩ／Ｏ機能４１に切り替えてサービスを継続することができる。なお、再び、端末３１のＩ／Ｏ機能３６に戻してサービスを継続したい場合には、上記記述中の「端末３１」と「端末３２」とを入れ替えた内容（図の数字表記は異なる）で同様の処理を行えばよい。
（実施形態２）
【００３３】
次に、本発明の第２実施形態について説明する。
図３は、本第２実施形態による端末切替システムの構成を示すブロック図である。本第２実施形態は、図１に示す構成をベースとし、ユーザが利用するサービスのプロセスが遷移しない場合のシステム構成である。図３において、端末８１（Ａ）及び端末８２（Ｂ）は、ディスプレイ、スピーカ、ボタン、キーボード、マウス等のうちの幾つかのＩ／Ｏ機器を備えた端末である。端末８１及び端末８２は、各々、リソース再現機能８５、９０、端末間通信機能８６、９１、ＩＤ管理機能８７、９２、Ｉ／Ｏ機能８８、９３、Ｉ／Ｏリソース８９、９４からなるＩ／Ｏ  ＩＦ機能８３、８４と、プロセス９５から構成される。各機能ブロック間では、データ通信等でプログラムの命令や、データなどが授受される。なお、これらの機能セットは、入出力端末切り替えを双方向で実現するために端末８１及び端末８２で同じものとしている。したがって、片方向の切り替えの際には、後述する動作の説明でするように、一方の端末中で、このうちの幾つかの機能が実行されない。
【００３４】
次に、本第２実施形態による端末切替システムの動作について説明する。
図４は、本第２実施形態による端末切替システムの動作を説明するためのシーケンス図である。本第２実施形態では、ユーザが端末８１のディスプレイ、キーボード等のＩ／Ｏ機能８８を使ってサービスアプリケーションのプロセス９５を利用していて、急遽、端末８２のＩ／Ｏ機能９３に切り替えてサービスを継続することになった場合を想定する。端末８１の処理性能は、十分なため、プロセス９５の実行端末を切り替えないで、ＩＤ管理機能８７、９２の振る舞いに応じて、２通りの方法のいずれかの方法でＩ／Ｏリソースに関するＩＤを遷移元、遷移先の二系統の間で一致しないように管理する。
【００３５】
第一の方法は、入出力端末切り替えの用途で用いるＩＤを事前確保しておいて、その他の用途のＩＤとはＩＤプールを分けておく方法である。
【００３６】
第二の方法は、ＩＤプールを分けない場合に、後述するように、リソース再現の後、全てのＩ／Ｏ処理要求に記載されているＩ／Ｏリソースに関するＩＤを、古い遷移元と新たな遷移先との二系統の間で書き換える処理を行う方法である。
【００３７】
まず、端末８１において、Ｉ／Ｏ  ＩＦ機能８３内のＩ／Ｏ機能８８により、全Ｉ／Ｏ処理を管理し、Ｉ／Ｏリソース識別子や、ＧＵＩウインドウのサイズ等のＩ／Ｏリソース関連情報を取得し、Ｉ／Ｏリソース８９中に保有していく（ステップＳｂ１）。
【００３８】
ここで、プロセス９５を停止して端末切り替えのトリガをかけると（ステップＳｂ２）、Ｉ／Ｏ機能８８は、Ｉ／Ｏリソース８９中のＩ／Ｏリソース関連情報を、それぞれの端末８１、８２の端末間通信機能８６、９１を経由して、端末８２のＩ／Ｏ  ＩＦ機能８４内のＩ／Ｏ機能９３に転送し、Ｉ／Ｏリソース９４に登録する（ステップＳｂ３）。リソース再現機能９０は、受信したＩ／Ｏリソース関連情報をＩ／Ｏ機能９３に対して設定する（ステップＳｂ４）。
【００３９】
ここで、端末８２中の端末間通信機能９１は、端末８１中のプロセス９５と接続するため、端末８１中の端末間通信機能８６と通信し、これ以降の全てのＩ／Ｏ処理要求は、端末間通信機能８６と端末間通信機能９１のいずれか一方、または両方を経由するようになる。端末間通信機能８６、９１は、Ｉ／Ｏ処理要求を受信すると、それぞれの端末内のＩ／Ｏリソース８９、９４中のセッション情報を参照して、端末切り替えを行おうとしているセッションに該当する場合に、Ｉ／Ｏ機能９３−端末間通信機能９１−端末間通信機能８６−プロセス９５の経路で、双方向にルーティングできるよう設定する（ステップＳｂ５）。
【００４０】
ここで、プロセス９５を再開し（ステップＳｂ６）、上記ルーティング設定の完了を端末８２のＩ／Ｏ機能９３が検知すると、Ｉ／Ｏ機能９３−端末間通信機能９１−端末間通信機能８６−プロセス９５の経路で通信が開始される（ステップＳｂ７）。
【００４１】
なお、上記第二の方法を採用する場合、さらにＩＤ管理機能９２がＩ／Ｏリソース９４中のＩ／Ｏリソース関連情報を参照して、これ以降の全てのＩ／Ｏ処理要求に記載されているＩ／Ｏリソースに関するＩＤを、古い遷移元と新たな遷移先との二系統の間で書き換える処理を開始する。
【００４２】
このようにして、ユーザは、利用中の端末内ウインドウや、音声データ等のＩ／Ｏリソースを、Ｉ／Ｏ機能を含む環境全体を転送することなく、端末８２のＩ／Ｏ機能９３に切り替えてサービスを継続することができる。なお、再び、端末８１のＩ／Ｏ機能８８に戻してサービスを継続したい場合には、上記記述中の「端末８１」と「端末８２」とを入れ替えた内容（図の数字表記は異なる）で同様の処理を行えばよい。
（実施形態３）
【００４３】
次に、本発明の第３実施形態について説明する。
図５は、本第３実施形態による入出力端末切替システムの構成を示すブロック図である。本第３実施形態は、図１に示す構成をベースとし、ユーザが利用するサービスのプロセスが遷移しない場合のシステム構成である。図５において、端末１３１（Ａ）及び端末１３２（Ｂ）は、ディスプレイ、スピーカ、ボタン、キーボード、マウス等のうちの幾つかのＩ／Ｏ機器を備えた端末である。端末１３１及び端末１３２は、リソース再現機能１３５、１４０、端末間通信機能１３６、１４１、ＩＤ管理機能１３７、１４２、Ｉ／Ｏ機能１３８、１４３、Ｉ／Ｏリソース１３９、１４４からなるＩ／Ｏ  ＩＦ機能１３３、１３４と、プロセス１４５、１４６、サービスＨＯ（ハンドオーバー）機能１４７、１４８から構成される。各機能ブロック間は、データ通信等でプログラム命令や、データなどが授受される。なお、これらの機能セットは、入出力端末切り替えを双方向で実現するために端末１３１および端末１３２で同じものとしている。したがって、片方向の切り替えの際には、後述する動作の説明でするように、一方の端末中で、このうちの幾つかの機能が実行されない。
【００４４】
次に、本第３実施形態による端末切替システムの動作について説明する。
図６は、本第３実施形態による端末切替システムの動作を説明するためのシーケンス図である。本第３実施形態では、ユーザが端末１３１のディスプレイ、キーボード等のＩ／Ｏ機能１３８を使ってサービスアプリケーションのプロセス１４５を利用していて、急遽、端末１３２のＩ／Ｏ機能１４３に切り替えてサービスを継続することになった場合を想定する。この場合、端末１３１の処理性能が不十分なため、プロセス１４５の実行端末を切り替える場合、ＩＤ管理機能１３７、１４２の振る舞いに応じて、以下に示す２通りの方法のいずれかの方法で、Ｉ／Ｏリソースに関するＩＤを遷移元、遷移先の二系統の間で一致しないように管理する。
【００４５】
第一の方法は、入出力端末切り替えの用途で用いるＩＤを事前確保しておいて、その他の用途のＩＤとはＩＤプールを分けておく方法である。
【００４６】
第二の方法は、ＩＤプールを分けない場合に、後述するように、リソース再現の後、全てのＩ／Ｏ処理要求に記載されているＩ／Ｏリソースに関するＩＤを、古い遷移元と新たな遷移先との二系統の間で書き換える処理を行う方法である。
【００４７】
まず、端末１３１において、Ｉ／Ｏ  ＩＦ機能１３３内のＩ／Ｏ機能１３８により、全Ｉ／Ｏ処理を管理し、Ｉ／Ｏリソース識別子や、ＧＵＩウインドウのサイズ等のＩ／Ｏリソース関連情報をＩ／Ｏリソース１３９中に保有していく（ステップＳｃ１）。
【００４８】
ここで、プロセス１４５を停止して端末切り替えのトリガをかけると（ステップＳｃ２）、端末１３１のＩ／Ｏ機能１３８は、Ｉ／Ｏリソース１３９中のＩ／Ｏリソース関連情報をそれぞれの端末１３１、１３２の端末間通信機能１３６、１４１を経由して、端末１３２のＩ／Ｏ  ＩＦ機能１３４内のＩ／Ｏ機能１４３に転送し、Ｉ／Ｏリソース１４４に登録する（ステップＳｃ３）。端末１３２のリソース再現機能１４０は、受信したＩ／Ｏリソース関連情報をＩ／Ｏ機能１４３に対して設定する（ステップＳｃ４）。
【００４９】
ここで、実行中のプロセス１４５（遷移先では、プロセス１４６）は、サービスＨＯ機能１４７、１４８と連携し、端末１３１から端末１３２へ遷移する（ステップＳｃ５）。サービスハンドオーバに適用する技術は、関連技術で規定される技術の他、ＪＡＶＡ（登録商標）や、ＶＭｗａｒｅのプロセスマイグレーション等、何でも良く限定しない。
【００５０】
ここで、端末１３２中の端末間通信機能１４１は、上記サービスＨＯによって外部のプロセスと接続する必要がなくなっているため、端末内部のルーティング設定を行う。すなわち、端末間通信機能１４１がＩ／Ｏ処理要求を受信すると、Ｉ／Ｏリソース１４４中のセッション情報を参照して、端末切り替えを行おうとしているセッションに該当する場合に、Ｉ／Ｏ機能１４３−端末間通信機能１４１−プロセス１４６の経路で双方向にルーティングできるよう設定する（ステップＳｃ６）。
【００５１】
ここで、プロセス１４６を再開し（ステップＳｃ７）、上記ルーティング設定の完了をＩ／Ｏ機能１４３が検知すると、Ｉ／Ｏ機能１４３−端末間通信機能１４１−プロセス１４６の経路で通信が開始される（ステップＳｃ８）。なお、上記ｂ３）の方法を採る場合、さらに、ＩＤ管理機能１４２がＩ／Ｏリソース１４４中のＩ／Ｏリソース関連情報を参照して、これ以降の全てのＩ／Ｏ処理要求に記載されているＩ／Ｏリソースに関するＩＤを、古い遷移元と新たな遷移先との二系統の間で書き換える処理を開始する。
【００５２】
このようにして、ユーザは、利用中の端末内ウインドウや、音声データ等のＩ／Ｏリソースを、Ｉ／Ｏ機能を含む環境全体を転送することなく、端末１３２のＩ／Ｏ機能１４３に切り替えてサービスを継続することができる。なお、再び、端末１３１のＩ／Ｏ機能１３８に切り戻してサービスを継続したい場合には、上記記述中の「端末１３１」と「端末１３２」を入れ替えた内容（図の数字表記は異なる）で同様の処理を行う。
（実施形態４）
【００５３】
次に、本発明の第４実施形態について説明する。
本第４実施形態では、ユーザが利用するサービスのプロセスを遷移するが、入出力を切り替えない場合について説明する。なお、本第４実施形態による端末切替システムは、図５に示す構成と同じであるので説明を省略する。
【００５４】
図７は、本第４実施形態による端末切替システムの動作を説明するためのシーケンス図である。本第４実施形態では、ユーザが端末１３１のディスプレイ、キーボード等のＩ／Ｏ機能１３８を使ってサービスアプリケーションのプロセス１４５を利用していて、急遽、処理性能が不十分なため、プロセス１４５の実行端末を切り替える一方、入出力は端末１３１のままでサービスを継続する場合を想定する。この場合、ＩＤ管理機能１３７、１４２の振る舞いに応じて、２通りの方法のいずれかの方法で、Ｉ／Ｏリソースに関するＩＤを遷移元、遷移先の二系統の間で一致しないように管理する。
【００５５】
第一の方法は、入出力端末切り替えの用途で用いるＩＤを事前に確保しておいて、その他の用途のＩＤとはＩＤプールを分けておく。
【００５６】
第二の方法は、ＩＤプールを分けない場合、後述するように、リソース再現の後、全てのＩ／Ｏ処理要求に記載されているＩ／Ｏリソースに関するＩＤを古い遷移元と新たな遷移先との二系統の間で書き換える処理を行う。
【００５７】
まず、端末１３１において、Ｉ／Ｏ  ＩＦ機能１３３内のＩ／Ｏ機能１３８により、全Ｉ／Ｏ処理を管理し、Ｉ／Ｏリソース識別子やＧＵＩウインドウのサイズ等のＩ／Ｏリソース関連情報をＩ／Ｏリソース１３９中に保有していく（ステップＳｄ１）。
【００５８】
ここで、プロセス１４５を停止して端末切り替えのトリガをかけると（ステップＳｄ２）、端末１３１のＩ／Ｏ機能１３８は、Ｉ／Ｏリソース１３９中のＩ／Ｏリソース関連情報を、それぞれの端末の端末間通信機能１３６、１４１を経由して、端末１３２のＩ／Ｏ  ＩＦ機能１３４内のＩ／Ｏ機能１４３に転送し、Ｉ／Ｏリソース１４４に登録する（ステップＳｄ３）。端末１３２のリソース再現機能１４０は、受信したＩ／Ｏリソース関連情報をＩ／Ｏ機能１４３に対して設定する（ステップＳｄ４）。
【００５９】
ここで、実行中のプロセス１４５（遷移先のプロセス１４６）は、サービスＨＯ機能１４７、１４８と連携し、端末１３１から端末１３２へプロセス遷移する（ステップＳｄ５）。サービスハンドオーバに適用する技術は、関連技術で規定される技術の他、ＪＡＶＡ（登録商標）や、ＶＭｗａｒｅのプロセスマイグレーションなどでも良く、一つに限定されない。
【００６０】
ここで、端末１３２中のプロセス１４６は、入出力を端末１３１のままでサービス継続するため、端末１３１中のＩ／Ｏ機能１３８と接続する。このため、端末１３２中の端末間通信機能１４１は、端末１３１中の端末間通信機能１３６と通信し、これ以降の全てのＩ／Ｏ処理要求は、端末間通信機能１３６と端末間通信機能１４１のいずれか一方、または両方を経由するようになる。端末間通信機能１３６、１４１は、Ｉ／Ｏ処理要求を受信すると、それぞれの端末１３１、１３２内のＩ／Ｏリソース１３９、１４４中のセッション情報を参照して、端末切り替えを行おうとしているセッションに該当する場合に、Ｉ／Ｏ機能１３８−端末間通信機能１３６−端末間通信機能１４１−プロセス１４６の経路で双方向にルーティングできるよう設定する（ステップＳｄ６）。
【００６１】
ここで、プロセス１４６を再開し（ステップＳｄ７）、上記ルーティング設定の完了をＩ／Ｏ機能１４３が検知すると、Ｉ／Ｏ機能１３８−端末間通信機能１３６−端末間通信機能１４１−プロセス１４６の経路で通信が開始される（ステップＳｄ８）。なお、上記第二の方法を採る場合、さらに、ＩＤ管理機能１４２がＩ／Ｏリソース１４４中のＩ／Ｏリソース関連情報を参照して、これ以降の全てのＩ／Ｏ処理要求に記載されているＩ／Ｏリソースに関するＩＤを古い遷移元と新たな遷移先との二系統の間で書き換える処理を開始する。
【００６２】
このようにして、ユーザは、利用中の端末内ウインドウや、音声データ等のＩ／Ｏリソースを、Ｉ／Ｏ機能を含む環境全体を転送することなく、端末１３２にプロセス実行を切り替え、入出力は端末１３１のままで、サービスを継続するようになる。なお、再び、端末１３１にプロセス実行を戻してサービスを継続したい場合には、上記記述中の「端末１３１」と「端末１３２」を入れ替えた内容（図の数字表記は異なる）で同様の処理を行う。
（他の実施形態）
【００６３】
次に、本発明の他の実施形態について説明する。
上述した第２実施形態では、プロセス遷移しない場合に、図３に示す構成で、ＩＤ管理機能９２にて、Ｉ／Ｏリソース８９、９４に関するＩＤを遷移元、遷移先の二系統の間で変換する処理を行うが、これらは遷移先の機能ブロックにて実行している。これは、遷移元のＩＤ管理機能８７にて実行するよう変更しても良い。
【００６４】
また、上述した第１乃至第４実施形態では、Ｉ／Ｏ処理のセッション毎に入出力端末を切り替える方式となっているので、個々の端末の性能情報に基づいて、映像は端末３１、８１、１３１で扱い、音声は端末３２、８２、１３２で扱うといったように、入出力を複数の端末の組み合わせで実行することも可能である。
【００６５】
（実施例）
次に、上述した第２実施形態、第３実施形態において、Ｗｉｎｄｏｗｓ（登録商標）のＧＵＩシステム上の入出力遷移の例について、図８、図９を参照して説明する。上述した第２実施形態、第３実施形態において、Ｘ  Ｗｉｎｄｏｗシステム上の入出力遷移を実現することも可能であるが、その場合には、標準Ｘサーバに対して改造を施す。
（実施例１）
【００６６】
図８は、上述した第２実施形態（図３の構成）において、Ｗｉｎｄｏｗｓ（登録商標）のＧＵＩシステム上の入出力を遷移する場合について説明するブロック図である。ユーザは、Ｗｉｎｄｏｗｓ（登録商標）のＧＵＩシステムベースの端末２５１を使っている。今、ユーザがディスプレイ、キーボード等の入出力機器を制御するＧＤＩ２５８を用いて、サービスアプリケーションのプロセス２６５を利用しており、急遽、端末２５２のＧＤＩ２６３に切り替えてサービスを継続することになった場合を想定する。端末２５１の処理性能が十分なため、プロセス２６５の実行端末は切り替えない場合、ＩＤ管理機能２５７、２６２の振る舞いに応じて、２通りの方法のいずれかの方法で、Ｉ／Ｏリソースに関するＩＤを遷移元、遷移先の二系統の間で一致しないように管理する。
【００６７】
第一の方法は、入出力端末切り替えの用途で用いるＩＤを事前に確保しておいて、その他の用途のＩＤとはＩＤプールを分けておく方法である。
【００６８】
第二の方法は、ＩＤプールを分けない場合に、後述するように、リソース再現の後、全てのＩ／Ｏ処理要求に記載されているＩ／Ｏリソースに関するＩＤを、古い遷移元と新たな遷移先の二系統の間で書き換える処理を行う方法である。
【００６９】
まず、端末２５１において、Ｉ／Ｏ  ＩＦ機能２５３内のＧＤＩ２５８により、全Ｉ／Ｏ処理を管理し、Ｉ／Ｏリソース識別子や、ＧＵＩウインドウのサイズ等のＩ／Ｏリソース関連情報をＩ／Ｏリソース２５９中に保有していく。Ｉ／Ｏリソース２５９、２６４は、Ｗｉｎｄｏｗｓ（登録商標）が扱うＩ／Ｏリソース識別子であるデバイスコンテキストハンドルを含んでいる。
【００７０】
ここで、プロセス２６５を停止して端末切り替えのトリガをかけると、ＧＤＩ２５８は、Ｉ／Ｏリソース２５９中のＩ／Ｏリソース関連情報を、それぞれの端末２５１、２５２の端末間通信機能２５６、２６１を経由して、端末２５２のＩ／Ｏ  ＩＦ機能２５４内のＧＤＩ２６３に転送し、Ｉ／Ｏリソース２６４に登録する。端末２５２のリソース再現機能２６０は、受信したＩ／Ｏリソース関連情報をＧＤＩ２６３に対して設定する。
【００７１】
ここで、端末２５２中の端末間通信機能２６１は、端末２５１中のプロセス２６５と接続するため、端末２５１中の端末間通信機能２５６と通信し、これ以降の全てのＩ／Ｏ処理要求は、端末間通信機能２５６と端末間通信機能２６１のいずれか一方、または両方を経由するようになる。端末間通信機能２５６、２６１は、Ｉ／Ｏ処理要求を受信すると、それぞれの端末２５１、２５２内のＩ／Ｏリソース２５９、２６４中のセッション情報を参照して、入出力端末切り替えを行おうとしているセッションに該当する場合に、ＧＤＩ２６３−端末間通信機能２６１−端末間通信機能２５６−プロセス２６５の経路で双方向にルーティングできるよう設定する。
【００７２】
ここで、プロセス２６５を再開し、上記ルーティング設定の完了をＧＤＩ２６３が検知すると、ＧＤＩ２６３−端末間通信機能２６１−端末間通信機能２５６−プロセス２６５の経路で通信が開始される。なお、上記第二の方法を採用する場合、さらに、端末２５２のＩＤ管理機能２６２がＩ／Ｏリソース２６４中のＩ／Ｏリソース関連情報を参照して、これ以降の全てのＩ／Ｏ処理要求に記載されているデバイスコンテキストハンドルを古い遷移元と新たな遷移先との二系統の間で書き換える処理を開始する。
【００７３】
このようにして、ユーザは、Ｉ／Ｏ機能を含む環境全体を転送することなく、端末２５２のＧＤＩ２６３に切り替えてサービスを継続することができる。
【００７４】
なお、再び、端末２５１のＧＤＩ２５８に戻してサービスを継続したい場合には、上記記述中の「端末２５１」と「端末２５２」を入れ替えた内容（図の数字表記は異なる）で同様の処理を行えばよい。
（実施例２）
【００７５】
図９は、上述した第３実施形態（図５の構成）において、Ｗｉｎｄｏｗｓ（登録商標）のＧＵＩシステム上の入出力を遷移する場合について説明するブロック図である。ユーザは、Ｗｉｎｄｏｗｓ（登録商標）のＧＵＩシステムベースの端末３０１を使っている。今、ユーザがディスプレイ、キーボード等の入出力機器を制御するＧＤＩ３０８を用いて、サービスアプリケーションのプロセス３１５を利用しており、急遽、端末３０２のＧＤＩ３１３に切り替えてサービスを継続することになったとする。端末３０１の処理性能が不十分なため、プロセス２６５の実行端末を切り替える場合、ＩＤ管理機能３０７、３１２の振る舞いに応じて、２通りの方法のいずれかの方法で、Ｉ／Ｏリソースに関するＩＤを遷移元、遷移先の二系統の間で一致しないように管理する。
【００７６】
第一の方法は、入出力端末切り替えの用途で用いるＩＤを事前に確保しておいて、その他の用途のＩＤとはＩＤプールを分けておく方法である。
【００７７】
第二の方法は、ＩＤプールを分けない場合に、後述するように、リソース再現の後、全てのＩ／Ｏ処理要求に記載されているＩ／Ｏリソースに関するＩＤを古い遷移元と新たな遷移先との二系統の間で書き換える処理を行う方法である。
【００７８】
まず、端末３０１において、Ｉ／Ｏ  ＩＦ機能３０３内のＧＤＩ３０８により、全Ｉ／Ｏ処理を管理し、Ｉ／Ｏリソース識別子や、ＧＵＩウインドウのサイズ等のＩ／Ｏリソース関連情報をＩ／Ｏリソース３０９中に保有していく。Ｉ／Ｏリソース３０９、３１４は、Ｗｉｎｄｏｗｓ（登録商標）が扱うＩ／Ｏリソース識別子であるデバイスコンテキストハンドルを含んでいる。
【００７９】
ここで、プロセス３１５を停止して端末切り替えのトリガをかけると、ＧＤＩ３０８は、Ｉ／Ｏリソース３０９中のＩ／Ｏリソース関連情報を、それぞれの端末の端末間通信機能３０６、３１１を経由して端末３０２のＩ／Ｏ  ＩＦ機能３０４内のＧＤＩ３１３に転送し、Ｉ／Ｏリソース３１４に登録する。端末３０２のリソース再現機能３１０は、受信したＩ／Ｏリソース関連情報をＧＤＩ３１３に対して設定する。
【００８０】
ここで、実行中のプロセス３１５（遷移先では、プロセス３１６）は、サービスＨＯ機能３１７、３１８と連携し、端末３０１から端末３０２へプロセス遷移する。サービスハンドオーバに適用する技術は、関連技術で規定される技術の他、ＪＡＶＡ（登録商標）や、ＶＭｗａｒｅのプロセスマイグレーション等、何でも良く限定しない。
【００８１】
ここで、端末３０２中の端末間通信機能３１１は、上記サービスＨＯによって外部のプロセスと接続する必要がなくなっているため、端末内部のルーティング設定を行う。すなわち、端末間通信機能３１１がＩ／Ｏ処理要求を受信すると、Ｉ／Ｏリソース３１４中のセッション情報を参照して、入出力端末切り替えを行おうとしているセッションに該当する場合に、ＧＤＩ３１３−端末間通信機能３１１−プロセス３１６の経路で双方向にルーティングできるよう設定する。
【００８２】
ここで、プロセス３１６を再開し、上記ルーティング設定の完了をＧＤＩ３１３が検知すると、ＧＤＩ３１３−端末間通信機能３１１−プロセス３１６の経路で通信が開始される。なお、上記第二の方法を採用する場合、さらに、ＩＤ管理機能３１２がＩ／Ｏリソース３１４中のＩ／Ｏリソース関連情報を参照して、これ以降の全てのＩ／Ｏ処理要求に記載されているデバイスコンテキストハンドルを古い遷移元と新たな遷移先との二系統の間で書き換える処理を開始する。
【００８３】
このようにして、ユーザは、Ｉ／Ｏ機能を含む環境全体を転送することなく、端末３０２のＧＤＩ３１３に切り替えてサービスを継続することができる。
【００８４】
なお、再び、端末３０１のＧＤＩ３０８に戻してサービスを継続したい場合には、上記記述中の「端末３０１」と「端末３０２」を入れ替えた内容（図の数字表記は異なる）で同様の処理を行う。
【００８５】
上述した第１乃至第４実施形態によれば、ユーザが利用中の端末内ウインドウや、音声データ等のＩ／Ｏリソースを、異なる端末で継続利用する際に、Ｉ／Ｏ機能を含む環境全体を転送することなく実現できる。また、端末の処理性能に応じて、プロセス実行端末と入出力実行端末との遷移を全ての組み合わせ（（端末Ａ：端末Ｂ）＝（プロセス：入出力）、（なし：プロセス、入出力）、（入出力：プロセス））で実行可能である。
【産業上の利用可能性】
【００８６】
本発明は、利用中の端末内ウインドウや、音声データ等のＩ／Ｏリソースを、異なる端末で継続して利用するための技術に適用できる。
【符号の説明】
【００８７】
３１、３２    端末
３３、３８    リソース再現機能
３４、３９    端末間通信機能
３５、４０    ＩＤ管理機能
３６、４１    Ｉ／Ｏ機能
３７、４２    Ｉ／Ｏリソース
４３、４４    Ｉ／Ｏ  ＩＦ機能
８１、８２    端末
８３、８４    Ｉ／Ｏ  ＩＦ機能
８５、９０    リソース再現機能
８６、９１    端末間通信機能
８７、９２    ＩＤ管理機能
８８、９３    Ｉ／Ｏ機能
８９、９４    Ｉ／Ｏリソース
９５    プロセス
１３１、１３２    端末
１３３、１３４    Ｉ／Ｏ  ＩＦ機能
１３５、１４０    リソース再現機能
１３６、１４１    端末間通信機能
１３７、１４２    ＩＤ管理機能
１３８、１４３    Ｉ／Ｏ機能
１３９、１４４    Ｉ／Ｏリソース
１４５、１４６    プロセス
１４７、１４８    サービスＨＯ機能
２５１、２５２    端末
２５３、２５４    Ｉ／Ｏ  ＩＦ機能
２５５、２６０    リソース再現機能
２５６、２６１    端末間通信機能
２５７、２６２    ＩＤ管理機能
２５８、２６３    ＧＤＩ
１５９、２６４    Ｉ／Ｏリソース
２６５    プロセス
３０１、３０２    端末
３０３、３０４    Ｉ／Ｏ  ＩＦ機能
３０５、３１０    リソース再現機能
３０６、３１１    端末間通信機能
３０７、３１２    ＩＤ管理機能
３０８、３１３    ＧＤＩ
３０９、３１４    Ｉ／Ｏリソース
３１５、３１６    プロセス
３１７、３１８    サービスＨＯ機能
【図１】
2010021230.tif 000003
【図２】
2010021230.tif 000004
【図３】
2010021230.tif 000005
【図４】
2010021230.tif 000006
【図５】
2010021230.tif 000007
【図６】
2010021230.tif 000008
【図７】
2010021230.tif 000009
【図８】
2010021230.tif 000010
【図９】
2010021230.tif 000011
【国際調査報告】
2010021230.tif 000012
2010021230.tif 000013