(57)【要約】【課題】使用するユーザ端末を切り替えた場合でも、切替先のユーザ端末でデータのダウンロードを継続して行えるとともに全データを取得可能とする。【解決手段】ユーザ端末にて、利用者が使用するアプリケーションからのデータ要求に基づきプロキシサーバを介してデータを要求し、このデータ要求により要求されたデータであって該ユーザ端末宛てに送信されたデータをアプリケーションに転送するとともに記憶手段に格納し、利用者が、使用するユーザ端末をユーザ端末１からユーザ端末２に切り替える操作をすると、ユーザ端末１は、ユーザ端末２を介してプロキシサーバに経路切替要求を送信し、この経路切替要求を受信したプロキシサーバは、ユーザ端末１宛てに送信中のデータをユーザ端末２宛てに送信を切り替え、ユーザ端末１は、先に受信し記憶しているデータをユーザ端末２宛てに転送する。【選択図】        図３
2004362062.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続される少なくとも２以上のユーザ端末と、前記ネットワークを介して前記ユーザ端末が接続するプロキシサーバとを含むネットワークシステムにおいて、
前記ユーザ端末は、
データを記憶する記憶手段と、利用者が使用するアプリケーションと、クライアントプロキシと、を具備してなり、
前記クライアントプロキシは、前記アプリケーションからのデータ要求に基づき前記プロキシサーバを介してデータを要求する処理と、前記データ要求により要求されたデータであって該ユーザ端末宛てに送信されたデータを前記アプリケーションに転送するとともに前記記憶手段に格納する処理とを行い、さらに、利用者が、使用するユーザ端末をユーザ端末１からユーザ端末２に切り替える操作をすると、ユーザ端末１のクライアントプロキシは、ユーザ端末２に対し、前記プロキシサーバ宛ての経路切替要求を送信する処理と、さらに、前記記憶手段に格納されたデータを転送する処理とを行い、ユーザ端末２のクライアントプロキシは、ユーザ端末１から受信した経路切替要求を前記プロキシサーバに転送する処理を行うことを特徴とし、
前記プロキシサーバは、
前記経路切替要求を受信すると、前記ユーザ端末１宛てに送信中のデータを前記ユーザ端末２宛てに送信を切り替える
ことを特徴とするネットワークシステム。
【請求項２】
前記ユーザ端末１とユーザ端末２とを無線通信媒体を介して接続し、
利用者が、使用するユーザ端末をユーザ端末１からユーザ端末２に切り替える操作をしたときに、前記ユーザ端末１のクライアントプロキシは、前記無線通信媒体を介して、前記記憶手段に格納されたデータを前記ユーザ端末２に転送することを特徴とする請求項１に記載のネットワークシステム。
【請求項３】
ハンドオフ前の前記ユーザ端末のクライアントプロキシは、前記プロキシサーバへのデータ要求および経路切替要求のそれぞれに、当該ユーザ端末の識別情報および通信セッションの識別情報を付加し、
前記プロキシサーバは、先に受信したデータ要求および現に受信した経路切替要求に付加されたユーザ端末の識別情報および通信セッションの識別情報から、経路切替を行うユーザ端末と通信セッションを識別する
ことを特徴とする請求項１または請求項２に記載のネットワークシステム。
【請求項４】
前記経路切替要求に、切替先のユーザ端末の識別情報がさらに付加される
ことを特徴とする請求項３に記載のネットワークシステム。
【請求項５】
前記ユーザ端末の識別情報として、端末名またはＩＰアドレスを使用する
ことを特徴とする請求項４に記載のネットワークシステム。
【請求項６】
前記通信セッションの識別情報として、通信セッションを開始した時刻情報あるいは前記クライアントプロキシが管理するセッション識別子を使用する
ことを特徴とする請求項４に記載のネットワークシステム。
【請求項７】
利用者が、使用するユーザ端末をユーザ端末１からユーザ端末２に切り替える操作をすると、前記プロキシサーバおよび前記ユーザ端末１のクライアントプロキシはそれぞれ、送信するデータのデータサイズを前記ユーザ端末２のクライアントプロキシに通知する
ことを特徴とする請求項１から請求項６のいずれかに記載のネットワークシステム。
【請求項８】
利用者が、使用するユーザ端末をユーザ端末１からユーザ端末２に切り替える操作をすると、前記プロキシサーバまたは前記ユーザ端末１のクライアントプロキシは、前記データ要求により要求されたデータの全データのサイズと送信するデータのデータサイズとを前記ユーザ端末２のクライアントプロキシに通知する
ことを特徴とする請求項１から請求項６のいずれかに記載のネットワークシステム。
【請求項９】
前記データ要求および経路切替要求にＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）プロトコルのリクエストを使用する
ことを特徴とする請求項１から請求項８のいずれかに記載のネットワークシステム。
【請求項１０】
前記データサイズの通知に、ＨＴＴＰレスポンスヘッダ内のＣｏｎｔｅｎｔ−Ｌｅｎｇｔｈを使用する
ことを特徴とする請求項７から請求項９のいずれかに記載のネットワークシステム。
【請求項１１】
ネットワークに接続される少なくとも２以上のユーザ端末と、前記ネットワークを介して前記ユーザ端末が接続するプロキシサーバとを含むネットワークシステムにおける端末切替時のデータ・ダウンロード継続方法であって、
前記ユーザ端末にて、
利用者が使用するアプリケーションからのデータ要求に基づき前記プロキシサーバを介してデータを要求する手順と、
前記データ要求により要求されたデータであって該ユーザ端末宛てに送信されたデータを前記アプリケーションに転送するとともに当該ユーザ端末に備わる記憶手段に格納する手順と、を実行し、
さらに、利用者が、使用する前記ユーザ端末をユーザ端末１からユーザ端末２に切り替える操作をすると、
前記ユーザ端末１は、前記ユーザ端末２を介して前記プロキシサーバに経路切替要求を送信し、
前記経路切替要求を受信したプロキシサーバは、前記ユーザ端末１宛てに送信中のデータを前記ユーザ端末２宛てに送信を切り替え、
前記ユーザ端末１は、先にプロキシサーバから受信し記憶しているデータをユーザ端末２宛てに転送する
ことを特徴とするネットワークシステムにおける端末切替時のデータ・ダウンロード継続方法。
【請求項１２】
ユーザ端末に実装されるクライアントプロキシ（プログラム）であって、
利用者が使用するアプリケーションからのデータ要求に基づきプロキシサーバを介してデータを要求する手順と、
前記データ要求により要求されたデータであって該ユーザ端末宛てに送信されたデータを前記アプリケーションに転送するとともに当該ユーザ端末に備わる記憶手段に格納する手順と、
利用者が、使用するユーザ端末を当該ユーザ端末から他のユーザ端末に切り替える操作をすると、切替先のユーザ端末のクライアントプロキシを介して前記プロキシサーバに経路切替要求を送信する手順と前記記憶手段に格納されたデータを切替先のユーザ端末に転送する手順と、
をコンピュータに実行させるためのプログラム。
【請求項１３】
プロキシサーバに実装されるプログラムであって、
ユーザ端末からのデータ要求に基づき要求されたデータを取得し、取得したデータを該ユーザ端末宛てに送信する手順と、
利用者が、使用するユーザ端末をユーザ端末１からユーザ端末２に切り替える操作をしたときに前記ユーザ端末１のクライアントプロキシからユーザ端末２のクライアントプロキシを介して送信されて来る経路切替要求を受信する手順と、前記経路切替要求を受信した場合に、前記ユーザ端末１宛てに送信中のデータを前記ユーザ端末２宛てに送信を切り替える手順と、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワークシステム、該ネットワークシステムにおける端末切替時のデータ・ダウンロード継続方法及びそのプログラムに関する。
【０００２】
【従来の技術】
ユビキタスコンピューティング環境においては、利用者は意識することなく各所に偏在したコンピューティング資源やネットワーク資源を利用する。
このようなユビキタスコンピューティング環境で利用できる技術として、下記の非特許文献１または２に記載の技術が挙げられる。これらの技術の目的は、ユーザがデバイスや通信リンク、コンテンツなどをコンテキストに応じて適切に選択および切り替えることを可能とするものであり、コンテキストに応じた動的な通信切替技術としてセッションレイヤモビリティ手法を提案している。この技術の特徴は、アプリケーションレベルでのインターフェースをＩＰアドレスとＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）やＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）のセッションレベルでのポート番号によって決定するのではなく、新たにアプリケーションレベルでの通信識別子を導入するところにある。ここでの通信識別子の一例として“ホストＡとのＴＥＬＮＥＴ通信”が挙げられている。アプリケーションレベルでの通信識別子の導入により、ユーザが使用する端末を切り替えることでＩＰアドレスやポート番号が変更された場合でも、アプリケーションは再接続することなく、シームレスに通信を継続することができる。
【０００３】
他方、非特許文献３に記載の技術が挙げられる。この技術の目的は、デバイスハンドオフ時に、ビデオやオーディオといったストリーミングアプリケーションを継続できるようにすることであり、ハンドオフ時のメディア転送の途切れを削減する技術として、代替サービス発見および予約方式と、それらの方式を実現するミドルウェアを提案している。この技術では、バックグランドでの周期的なデバイス発見や、ユーザから切り替え指示以前に先行的に接続を行う先行接続、デバイス接続完了後のメディア転送先の切り替え（スムーズハンドオフ）により、ユーザの体感的な接続時間の短縮を実現している。また、デバイスハンドオフ時のデータの切り替え手法として、ミドルウェアにおいて通信途中のデータの出力先の変更を行っている。
【０００４】
【非特許文献１】
今井  尚樹、外３名，「ユビキタス環境におけるサービスモビリティサポート」，２００２年総合大会予稿集，電子情報通信学会，２００２年，Ｂ−７−１３，ｐ．２４０
【非特許文献２】
金子  晋丈、外４名，「多様化するインターネット環境のためのセッションレイヤモビリティサポート」，２００２年総合大会予稿集，電子情報通信学会，２００２年，Ｂ−７−１４，ｐ．２４１
【非特許文献３】
「シームレスサービス実現のためのモバイルマルチメディアミドルウェア」，情報処理学会研究報告，情報処理学会，２００１年，２００１−ＭＢＬ−１８，ｐ．２６１−２６８
【０００５】
【発明が解決しようとする課題】
しかしながら、前者の技術ではデバイスハンドオフを実行する時点で送受信されているデータの処理方法が規定されていない。また、後者の技術では、通信途中にデバイスハンドオフを行った場合に、ハンドオフ先の端末では途中のデータから受信することになる。ストリーミングアプリケーションでは、途中からのデータであっても画像や音声への復号が可能であるが、ＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）をはじめとするデータのダウンロードでは、データの完全性が必要であり、ハンドオフ先の端末で全データを正しく受信する必要があり、この技術では対応できない。
【０００６】
本発明は、上記の点に鑑みてなされたもので、利用者が使用するユーザ端末（デバイス、コンピュータ）を他のユーザ端末に切り替えた場合でも、切り替えた先のユーザ端末で、データのダウンロードを継続して行えるとともに全データを取得できるネットワークシステム、該ネットワークシステムにおける端末切替時のデータ・ダウンロード継続方法及びそのプログラムを提供するものである。
【０００７】
【課題を解決するための手段】
請求項１に記載の発明は、ネットワークに接続される少なくとも２以上のユーザ端末と、前記ネットワークを介して前記ユーザ端末が接続するプロキシサーバとを含むネットワークシステムにおいて、前記ユーザ端末は、データを記憶する記憶手段と、利用者が使用するアプリケーションと、クライアントプロキシと、を具備してなり、前記クライアントプロキシは、前記アプリケーションからのデータ要求に基づき前記プロキシサーバを介してデータを要求する処理と、前記データ要求により要求されたデータであって該ユーザ端末宛てに送信されたデータを前記アプリケーションに転送するとともに前記記憶手段に格納する処理とを行い、さらに、利用者が、使用するユーザ端末をユーザ端末１からユーザ端末２に切り替える操作をすると、ユーザ端末１のクライアントプロキシは、ユーザ端末２に対し、前記プロキシサーバ宛ての経路切替要求を送信する処理と、さらに、前記記憶手段に格納されたデータを転送する処理とを行い、ユーザ端末２のクライアントプロキシは、ユーザ端末１から受信した経路切替要求を前記プロキシサーバに転送する処理を行うことを特徴とし、前記プロキシサーバは、前記経路切替要求を受信すると、前記ユーザ端末１宛てに送信中のデータを前記ユーザ端末２宛てに送信を切り替えることを特徴としている。
【０００８】
また、請求項２に記載の発明は、請求項１に記載のネットワークシステムにおいて、前記ユーザ端末１とユーザ端末２とを無線通信媒体を介して接続し、利用者が、使用するユーザ端末をユーザ端末１からユーザ端末２に切り替える操作をしたときに、前記ユーザ端末１のクライアントプロキシは、前記無線通信媒体を介して、前記記憶手段に格納されたデータを前記ユーザ端末２に転送することを特徴としている。
【０００９】
また、請求項３に記載の発明は、請求項１または請求項２に記載のネットワークシステムにおいて、ハンドオフ前の前記ユーザ端末のクライアントプロキシは、前記プロキシサーバへのデータ要求および経路切替要求のそれぞれに、当該ユーザ端末の識別情報および通信セッションの識別情報を付加し、前記プロキシサーバは、先に受信したデータ要求および現に受信した経路切替要求に付加されたユーザ端末の識別情報および通信セッションの識別情報から、経路切替を行うユーザ端末と通信セッションを識別することを特徴としている。
【００１０】
また、請求項４に記載の発明は、請求項３に記載のネットワークシステムにおいて、前記経路切替要求に、切替先のユーザ端末の識別情報がさらに付加されることを特徴としている。
【００１１】
また、請求項５に記載の発明は、請求項４に記載のネットワークシステムにおいて、前記ユーザ端末の識別情報として、端末名またはＩＰアドレスを使用することを特徴としている。
【００１２】
また、請求項６に記載の発明は、請求項４に記載のネットワークシステムにおいて、前記通信セッションの識別情報として、通信セッションを開始した時刻情報あるいは前記クライアントプロキシが管理するセッション識別子を使用することを特徴としている。
【００１３】
また、請求項７に記載の発明は、請求項１から請求項６のいずれかに記載のネットワークシステムにおいて、利用者が、使用するユーザ端末をユーザ端末１からユーザ端末２に切り替える操作をすると、前記プロキシサーバおよび前記ユーザ端末１のクライアントプロキシはそれぞれ、送信するデータのデータサイズを前記ユーザ端末２のクライアントプロキシに通知することを特徴としている。
【００１４】
また、請求項８に記載の発明は、請求項１から請求項６のいずれかに記載のネットワークシステムにおいて、利用者が、使用するユーザ端末をユーザ端末１からユーザ端末２に切り替える操作をすると、前記プロキシサーバまたは前記ユーザ端末１のクライアントプロキシは、前記データ要求により要求されたデータの全データのサイズと送信するデータのデータサイズとを前記ユーザ端末２のクライアントプロキシに通知することを特徴としている。
【００１５】
また、請求項９に記載の発明は、請求項１から請求項８のいずれかに記載のネットワークシステムにおいて、前記データ要求および経路切替要求にＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）プロトコルのリクエストを使用することを特徴としている。
【００１６】
また、請求項１０に記載の発明は、請求項７から請求項９のいずれかに記載のネットワークシステムにおいて、前記データサイズの通知に、ＨＴＴＰレスポンスヘッダ内のＣｏｎｔｅｎｔ−Ｌｅｎｇｔｈを使用することを特徴としている。
【００１７】
また、請求項１１に記載の発明は、ネットワークに接続される少なくとも２以上のユーザ端末と、前記ネットワークを介して前記ユーザ端末が接続するプロキシサーバとを含むネットワークシステムにおける端末切替時のデータ・ダウンロード継続方法であって、前記ユーザ端末にて、利用者が使用するアプリケーションからのデータ要求に基づき前記プロキシサーバを介してデータを要求する手順と、前記データ要求により要求されたデータであって該ユーザ端末宛てに送信されたデータを前記アプリケーションに転送するとともに当該ユーザ端末に備わる記憶手段に格納する手順と、を実行し、さらに、利用者が、使用する前記ユーザ端末をユーザ端末１からユーザ端末２に切り替える操作をすると、前記ユーザ端末１は、前記ユーザ端末２を介して前記プロキシサーバに経路切替要求を送信し、前記経路切替要求を受信したプロキシサーバは、前記ユーザ端末１宛てに送信中のデータを前記ユーザ端末２宛てに送信を切り替え、前記ユーザ端末１は、先にプロキシサーバから受信し記憶しているデータをユーザ端末２宛てに転送することを特徴としている。
【００１８】
また、請求項１２に記載の発明は、ユーザ端末に実装されるクライアントプロキシ（プログラム）であって、利用者が使用するアプリケーションからのデータ要求に基づきプロキシサーバを介してデータを要求する手順と、前記データ要求により要求されたデータであって該ユーザ端末宛てに送信されたデータを前記アプリケーションに転送するとともに当該ユーザ端末に備わる記憶手段に格納する手順と、利用者が、使用するユーザ端末を当該ユーザ端末から他のユーザ端末に切り替える操作をすると、切替先のユーザ端末のクライアントプロキシを介して前記プロキシサーバに経路切替要求を送信する手順と前記記憶手段に格納されたデータを切替先のユーザ端末に転送する手順と、をコンピュータに実行させるためのプログラムである。
【００１９】
また、請求項１３に記載の発明は、プロキシサーバに実装されるプログラムであって、ユーザ端末からのデータ要求に基づき要求されたデータを取得し、取得したデータを該ユーザ端末宛てに送信する手順と、利用者が、使用するユーザ端末をユーザ端末１からユーザ端末２に切り替える操作をしたときに前記ユーザ端末１のクライアントプロキシからユーザ端末２のクライアントプロキシを介して送信されて来る経路切替要求を受信する手順と、前記経路切替要求を受信した場合に、前記ユーザ端末１宛てに送信中のデータを前記ユーザ端末２宛てに送信を切り替える手順と、をコンピュータに実行させるためのプログラムである。
【００２０】
【発明の実施の形態】
以下、本発明の実施の形態を、図面を参照して説明する。
図１に本発明による第１の実施形態のシステム構成を示している。
本実施の形態では、利用者が、デスクトップＰＣやノートＰＣ、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、携帯電話といったユーザ端末を用いて、サーバからデータをダウンロードすることを想定している。本システムは、図１に示すように、少なくとも２台以上のユーザ端末と、プロキシサーバ、サーバとで構成され、各コンピュータは有線あるいは無線でネットワークと接続されている。ネットワークとしては、インターネットの他、ＬＡＮやダイアルアップによるネットワークを利用してもよい。
【００２１】
ユーザ端末は、利用者が使用するアプリケーション（プログラム）と、このアプリケーションからのデータ要求に基づきプロキシサーバを介してサーバからデータを取得し、取得したデータをアプリケーションに転送するとともにキャッシュに格納するクライアントプロキシ（プログラム）とを実装している。このとき、１台のユーザ端末に実装されるクライアントプロキシ数とアプリケーション数の対応として１対１または１対多あるいは多対多のいずれであってもよい。また、キャッシュの実現形態はユーザ端末に備わる書き換え可能な記憶装置（記憶手段）であれば、メモリ、ハードディスクや光ディスク、外部記憶装置といった形態は問わない。
【００２２】
次に、本発明による第２の実施形態を説明する。
図２は本発明による第２の実施形態のシステム構成図である。
本実施形態も、基本的には上記第１の実施形態と同様であるが、本実施形態では、同図に示すユーザ端末１およびユーザ端末２は、無線通信媒体により接続されており、ハンドオフ時のユーザ端末間のデータ転送にこの無線通信媒体を使用する。ここで、ユーザ端末間を無線で接続することで、ユーザによる有線ケーブルの接続といった作業を省き、ユーザの利便性を高めることができる。無線通信媒体としては、例えば、無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）や近距離無線通信、ＩｒＤＡ（Ｉｎｆｒａｒｅｄ  Ｄａｔａ  Ａｓｓｏｃｉａｔｉｏｎ）等の赤外線通信、ＵＷＢ（Ｕｌｔｒａ  Ｗｉｄｅ  Ｂａｎｄ）技術による無線通信等が挙げられる。
【００２３】
ここで、上記第１または第２の実施形態において各装置が実行する、端末切替時のデータ・ダウンロード継続方法について、図３を参照し説明する。
図３は本発明によるダウンロード継続方法を説明するためのシーケンス図である。なお、アプリケーション１およびクライアントプロキシ１は、図１または図２に示すユーザ端末１に実装されるプログラムであり、アプリケーション２およびクライアントプロキシ２は、図１または図２に示すユーザ端末２に実装されるプログラムである。
【００２４】
図３においてＳ１〜Ｓ６は、ハンドオフ前のユーザ端末（ここでは、ユーザ端末１）を起点とするデータ要求シーケンスで、Ｓ７以降はハンドオフ後の経路切替要求シーケンスを示している。
利用者はサーバからデータを取得すべく、ユーザ端末１上のアプリケーション１を用いてデータ要求を行う（Ｓ１）。このときのデータ要求は、まず、当該ユーザ端末１のクライアントプロキシ１が受ける。
データ要求を受信したクライアントプロキシ１は、ネットワークを介して接続されたプロキシサーバに対して、このデータ要求を転送する（Ｓ２）。
データ要求を受信したプロキシサーバは、サーバに対して、上記データ要求を転送する（Ｓ３）。
【００２５】
データ要求を受信したサーバは、要求されたデータを保持しているか確認し、保持している場合にはプロキシサーバに対して応答情報（これにはサーバから送信される全データのデータサイズの情報が含まれ、これによりクライアントプロキシ１はデータの全体長を知ることができる）と実際のデータを送信する（Ｓ４）。このときに、送信するデータのデータサイズがパケットサイズより大きい場合には、複数のパケットに分割して送信を行う。
サーバからのデータを受信したプロキシサーバは、ユーザ端末１に対してこのデータを転送する（Ｓ５）。
プロキシサーバからのデータを受信したユーザ端末１のクライアントプロキシ１は、受信したデータをアプリケーション１に転送するとともに（Ｓ６）、このデータをキャッシュに格納する。
【００２６】
ここで、利用者が、使用するユーザ端末を切り替える操作として、利用者からクライアントプロキシ１に対して直接あるいは他のプログラムを介してハンドオフの実行要求および、ハンドオフ先のユーザ端末（ここでは、ユーザ端末２）の識別情報（ホスト名（端末名）あるいはＩＰアドレス等）を通知する（Ｓ７）。ハンドオフの実行要求を受けたクライアントプロキシ１は、ハンドオフ先のユーザ端末であるユーザ端末２に対して経路切替要求（後述）を送信する（Ｓ８）。ここで送信された経理切替要求は、ユーザ端末２のクライアントプロキシ２が受ける。
そして、ユーザ端末１では、クライアントプロキシ１あるいは他のプログラムによりアプリケーション１を終了する（Ｓ９）。
【００２７】
経路切替要求を受信したユーザ端末２のクライアントプロキシ２は、先にユーザ端末１のアプリケーション１がデータ要求を出す段階と同一の状態となるように、ユーザ端末２に実装されたアプリケーション２を起動するとともに（Ｓ１０）、受信した経路切替要求をプロキシサーバに転送する（Ｓ１１）。
起動したアプリケーション２は、アプリケーション１が先に実行したのと同様にサーバに対するデータ要求を行う（Ｓ１２）。このデータ要求は、クライアントプロキシ２が受ける。
【００２８】
一方、経路切替要求を受信したプロキシサーバは、ユーザ端末１宛てに送信していたデータを、ユーザ端末２宛てに送信するよう経路を切り替え（Ｓ１３）、応答情報（これには、ユーザ端末１に対する未送信のデータ（すなわち、これからユーザ端末２に送信するデータ）のデータサイズが含まれる）と実際のデータを送信する（Ｓ１４）。
プロキシサーバからのレスポンス（応答情報と実際のデータ）を受信したユーザ端末２のクライアントプロキシ２は、この応答情報をユーザ端末１のクライアントプロキシ１に転送し、プロキシサーバから受信したデータをキャッシュに格納する（Ｓ１５）。
【００２９】
応答情報を受信したクライアントプロキシ１は、プロキシサーバでの経路切替が正常に行われたことを認識し、これに応じて対応する応答情報とキャッシュに格納していたデータをユーザ端末２に送信する（Ｓ１６）。なお、このときクライアントプロキシ１から送信されるデータは、前述の第１の実施の形態の場合は、ネットワークを介して送信され、第２の実施の形態の場合は、無線通信媒体を介して送信される。
【００３０】
ユーザ端末２のクライアントプロキシ２は、ユーザ端末１のクライアントプロキシ１から受信したデータをアプリケーション２に転送するとともに、このデータをキャッシュに格納する。そして、クライアントプロキシ１から受信したすべてのデータをアプリケーション２に転送した後に、プロキシサーバから受信しキャッシュに格納している後続のデータをアプリケーション２に転送する（Ｓ１７）。
以上のようにして、端末切替時のデータのダウンロードが継続され、結果として全データがユーザ端末２のアプリケーション２に渡される。
【００３１】
ここで、図４に、データ要求（同図（ａ））および経路切替要求（同図（ｂ））としてＨＴＴＰのリクエストを用いた場合のこれらのヘッダ情報の一例を示す。
本例では、プロキシサーバにおいてデータ要求と経路切替要求を判別するため、経路切替要求のヘッダに「Ｃｏｎｎｅｃｔ：ＮｅｗＬｉｎｅ」を付加している（ここでのＮｅｗＬｉｎｅには、ハンドオフ先のユーザ端末（ここでは、ユーザ端末２）の識別情報（端末名あるいはＩＰアドレス等）が設定され、その他の情報はデータ要求と同一の情報が設定される）。また、プロキシサーバに対し先に渡されるデータ要求と後の経路切替要求とを対応づけるため、データ要求および経路切替要求ともに、端末名（ＭａｃｈｉｎｅＮａｍｅ：ｓｃｃｍｏｂｉｌｅ；これは当該ユーザ端末に割り当てられたＩＰアドレスでもよい）とデータ要求が発生した時刻情報（Ｄａｔｅ：Ｔｕｅ，０８  Ａｐｒ  ２００３  ０５：０６：２５．０９９  ＧＭＴ）とを付加している。これにより、プロキシサーバが複数の利用者を収容する場合や、単一の利用者が複数のアプリケーションを使用する場合でも、それぞれのユーザ端末に対するそれぞれの通信セッション毎にデバイスハンドオフの実行を制御することが可能となる。
【００３２】
次に、図５に、データ要求および経路切替要求としてＨＴＴＰのリクエストを用いた場合のデータ要求および経路切替要求のヘッダ情報の他の例を示す。
本例でも、図４に示した例と同様に、プロキシサーバにおいてデータ要求と経路切替要求を判別するため、経路切替要求のヘッダに「Ｃｏｎｎｅｃｔ：ＮｅｗＬｉｎｅ」を付加している。また、プロキシサーバに対し先に渡されるデータ要求と後の経路切替要求とを対応づけるため、データ要求および経路切替要求に端末名（これは当該ユーザ端末に割り当てられたＩＰアドレスでもよい）と、本例では特にクライアントプロキシが管理するセッション識別子（ここでは通信セッション毎に割り当てられた数値を用い、図５では、Ｎｕｍｂｅｒ：１９６）を付加している。これにより、上記例と同様に、プロキシサーバが複数の利用者を収容する場合や、単一の利用者が複数のアプリケーションを使用する場合でも、それぞれのユーザ端末に対するそれぞれの通信セッションごとにデバイスハンドオフの実行を制御することが可能となる。
【００３３】
以上のように、経路切替要求には、データ要求に含まれる情報が含まれる。この経路切替要求を、前述のようにハンドオフ前のユーザ端末１から、ハンドオフ先のユーザ端末２を介してプロキシサーバに転送することにより、ハンドオフ先のユーザ端末２は、先にプロキシサーバおよびサーバに転送されたデータ要求の内容を知ることができる。したがって、この情報を基に、先にユーザ端末１のアプリケーション１がデータ要求を出す段階と同一の状態となるように、ユーザ端末２に実装されたアプリケーション２を起動させることができる。
【００３４】
次に、図６に、プロキシサーバ内のスレッド管理テーブルの一例を示す。
このテーブルは、プロキシサーバが、データの送受信のためにスレッドを用いて並列処理を行う場合に、このスレッド（複数）を管理するためのものである。ここでは、ユーザ端末のクライアントプロキシとの通信セッション毎に、プロキシサーバがスレッドを起動し、そのスレッドがサーバからのデータ取得やクライアントプロキシへのデータ配信、経路切替処理を実行することを想定する。
この図に示すスレッド管理テーブルでは、スレッドの識別情報としてスレッド識別子と、端末名および時刻情報の対応を管理している。なお、端末名の代わりにＩＰアドレスでも良く、時刻情報の代わりにユーザ端末で管理しているセッション識別子を用いても良い。
【００３５】
ここで、データ要求および経路切替要求の受信時のプロキシサーバの動作について、図７を参照し説明する。
図７は、ＨＴＴＰリクエスト受信時のプロキシサーバの動作フローチャートである。なお、以下に説明する例は、データ要求および経路切替要求に上記ＨＴＴＰリクエストを用い、スレッドによるデータの送受信の制御を行う場合の動作例である。また、以下では、ユーザ端末の識別情報とこのユーザ端末のＩＰアドレスとが対応づけられているものとする。
【００３６】
プロキシサーバは、はじめに、クライアントプロキシからＨＴＴＰリクエストを受信すると、これから得られる送信元のユーザ端末の識別情報を基にそのＩＰアドレスを取得する（Ｓ２１）。
次いで、Ｓ２１で受信したＨＴＴＰリクエストが、データ要求であるか経路切替要求であるか判別する（Ｓ２２）。図４および図５に示した例のように、データ要求と経路切替要求を判別するため、経路切替要求のヘッダに「Ｃｏｎｎｅｃｔ：ＮｅｗＬｉｎｅ」が付加される場合には、本情報がヘッダ内に含まれているかどうかで判別を行う。
【００３７】
Ｓ２２でＨＴＴＰリクエストがデータ要求であると判別した場合には、データ要求で指定されたサーバからデータを取得しかつ取得したデータを、このデータ要求をしたユーザ端末へ転送するためのスレッドを起動する（Ｓ２３）。
Ｓ２３で起動したスレッドに対して、スレッド識別子とデータ要求に付加されたユーザ端末の識別情報および通信セッションの識別情報をスレッド管理テーブルへ登録する（Ｓ２４）。ここでは、ユーザ端末の識別情報として端末名を、通信セッションの識別情報として時刻情報を用いる場合を想定する（図６参照）。
【００３８】
Ｓ２２でＨＴＴＰリクエストが経路切替要求であると判別した場合には、ヘッダ内の端末名に該当するスレッドをスレッド管理テーブルから検索する（Ｓ２５）。
Ｓ２５でスレッド管理テーブルに該当するスレッドが存在した場合には、そのスレッドの時刻情報がヘッダ内の時刻情報と一致するか照合する（Ｓ２６）。
Ｓ２６で時刻情報が一致した場合には、スレッド識別子に対応したスレッドに経路切替要求を行うとともに、切り替え先のＩＰアドレスとしてＳ２１で取得した送信元のＩＰアドレス（経路切替要求の場合、このＩＰアドレスは、この経路切替要求を転送している切替先のユーザ端末のＩＰアドレスである）を通知する。経路切替要求を受信したスレッドは、現在送信中のデータの送信先を、通知されたＩＰアドレスに変更する（Ｓ２７）。
以上のようにして、プロキシサーバにおける経路切替がなされる。
【００３９】
次に、図８に、ＨＴＴＰレスポンスのヘッダ情報の一例を示す。
同図（ａ）は、プロキシサーバからハンドオフ先のユーザ端末へ送られるＨＴＴＰレスポンスであり、プロキシサーバから送信するデータのデータサイズを「Ｃｏｎｔｅｎｔ−Ｌｅｎｇｔｈ」に設定している。本データサイズとして、サーバから最初にＨＴＴＰレスポンスで通知されるデータサイズ（全データサイズ）から、既にハンドオフ前のユーザ端末に送信したデータサイズを減算した値（すなわち、未送信のデータのデータサイズ）を設定する。一方、同図（ｂ）は、ハンドオフ前のユーザ端末からハンドオフ先のユーザ端末へのＨＴＴＰレスポンスであり、ハンドオフ前のユーザ端末が転送するデータサイズを「Ｃｏｎｔｅｎｔ−Ｌｅｎｇｔｈ」に設定している。本データサイズとして、ハンドオフ前のユーザ端末がプロキシサーバから既に受信したデータのサイズを設定する。その他の情報は、一般的なＨＴＴＰレスポンスのヘッダ情報の内容と同様である。
【００４０】
なお、ユーザ端末１が要求したデータのデータサイズ（全データのデータサイズ）は、最初にユーザ端末１からのデータ要求に応じてプロキシサーバから返される応答情報に含まれるので、ハンドオフ前のユーザ端末からハンドオフ先のユーザ端末へのＨＴＴＰレスポンスに、上記ハンドオフ前のユーザ端末がプロキシサーバから既に受信したデータのデータサイズと、上記全データのデータサイズとを設定し、上記各データサイズを、ハンドオフ前のユーザ端末からのみハンドオフ先のユーザ端末に与えるようにしてもよい。
【００４１】
あるいは、プロキシサーバは、ハンドオフ前のユーザ端末に送信済みのデータサイズと全データのデータサイズの両方がわかるので、上記各データサイズをプロキシサーバからのみハンドオフ先のユーザ端末に与えるようにしてもよい。これらの場合、ハンドオフ先のユーザ端末のクライアントプロキシが、上記各データサイズを基に、ハンドオフ前のユーザ端末およびプロキシサーバの双方から送信されるデータのデータサイズを算出する。もちろん、ハンドオフ前のユーザ端末またはプロキシサーバの一方から、これらの双方から送信される各データのデータサイズを算出して、これらのデータサイズをハンドオフ先のユーザ端末に与えるようにしてもよい。
【００４２】
ここで、ＨＴＴＰレスポンスヘッダ内のＣｏｎｔｅｎｔ−Ｌｅｎｇｔｈを用いた場合のデータサイズ通知に関する動作について、図９を参照し説明する。
図９は、この場合のデータサイズ通知に関するシーケンス図である。
なお、同図において、ハンドオフ前のシーケンスは、図３に示すＳ１〜Ｓ６と同一であるので図示せず、以下においてもその説明を省略する。また、図３にて示したキャッシュも同様に省略している。
【００４３】
また以下の例においては、アプリケーション１からサーバに要求された全データのデータサイズは、サーバから、最初にＨＴＴＰレスポンスヘッダ内のＣｏｎｔｅｎｔ−Ｌｅｎｇｔｈを用いてクライアントプロキシ１に与えられ（以下の例では、このデータサイズは３０２６６２３２バイトとなる）、切替時のレスポンスにて、プロキシサーバおよびハンドオフ前のユーザ端末１から、ハンドオフ先のユーザ端末２にそれぞれ送信するデータのデータサイズを通知するものとして説明する。
【００４４】
はじめに、利用者からクライアントプロキシ１に対して直接あるいは他のプログラムを介してハンドオフの実行要求および、ハンドオフ先のユーザ端末の識別情報（ホスト名あるいはＩＰアドレス等）を通知する（Ｓ３１）。
ハンドオフの実行要求を受けたクライアントプロキシ１は、ハンドオフ先のユーザ端末であるユーザ端末２に対して経路切替要求を送信する（Ｓ３２）。ここで送信された経理切替要求は、ユーザ端末２のクライアントプロキシ２が受ける。
そして、ユーザ端末１では、クライアントプロキシ１あるいは他のプログラムによりアプリケーション１を終了する（Ｓ３３）。
【００４５】
経路切替要求を受信したユーザ端末２のクライアントプロキシ２は、先にユーザ端末１のアプリケーション１がデータ要求を出す段階と同一の状態となるようにユーザ端末２のアプリケーション２を起動するとともに（Ｓ３４）、プロキシサーバに経路切替要求を転送する（Ｓ３５）。起動したアプリケーション２は、サーバに対するデータ要求を行う（Ｓ３６）。このデータ要求は、クライアントプロキシ２が受けるが、プロキシサーバおよびサーバへは転送されない。このときアプリケーション２は、ユーザ端末１においてアプリケーション１がデータ要求を出した時点と同じ状態となる。
【００４６】
一方、経路切替要求を受信したプロキシサーバは、ユーザ端末１宛てに送信していたデータを、ユーザ端末２宛てに送信するよう経路を切り替え（Ｓ３７）、前述のＣｏｎｔｅｎｔ−Ｌｅｎｇｔｈを含む応答情報と実際のデータを送信する（Ｓ３８）。ここでは、プロキシサーバがクライアントプロキシ２に送信するデータのサイズとして、５６２７０２３バイトを設定している。このプロキシサーバからのレスポンスを受信したユーザ端末２のクライアントプロキシ２は、その応答情報をクライアントプロキシ１に転送する（Ｓ３９）。
【００４７】
クライアントプロキシ２からの応答情報を受信したユーザ端末１のクライアントプロキシ１は、プロキシサーバでの経路切替が正常に行われたことを認識し、Ｃｏｎｔｅｎｔ−Ｌｅｎｇｔｈを含む応答情報とキャッシュに格納していたデータをユーザ端末２に送信する（Ｓ４０）。ここでは、クライアントプロキシ１がユーザ端末２に送信するデータのサイズとして、２４６３２０９バイトを設定している。
【００４８】
クライアントプロキシ２は、クライアントプロキシ１からのデータを、Ｓ４０にて送信された応答情報に含まれるＣｏｎｔｅｎｔ−Ｌｅｎｇｔｈで指定されたサイズ（２４６３９２０９バイト）だけアプリケーション２に転送した後に（Ｓ４１）、プロキシサーバからのデータをＳ３８にて送信された応答情報に含まれるＣｏｎｔｅｎｔ−Ｌｅｎｇｔｈで指定されたサイズ（５６２７０２３バイト）だけアプリケーション２に転送する（Ｓ４２）。このように、プロキシサーバおよびハンドオフ前のユーザ端末１から、ハンドオフ先のユーザ端末２に送信するデータのサイズを通知することで、ハンドオフ先のユーザ端末でアプリケーションに送信するデータのデータサイズを事前に検出することが可能となる。
以上のようにして、ハンドオフ先のアプリケーションに、サーバからダウンロードされる全データが渡される。
【００４９】
なお、上記で説明した各動作フローは一例であり、上記の処理の流れに限定されるものではない。
また、クライアントプロキシ（プログラム）およびプロキシサーバの機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行させるようにしてもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
【００５０】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００５１】
前述したとおり、利用者が使用するユーザ端末を切り替えた場合に、ハンドオフ前のユーザ端末は既に受信したデータをハンドオフ先のユーザ端末に送信し、プロキシサーバは送信途中のデータをハンドオフ先のユーザ端末に送信することで、ハンドオフ先のユーザ端末でデータのダウンロードを継続することができ、ハンドオフ先のユーザ端末では、ハンドオフ前のユーザ端末から最初に要求した全データを受けることができる。また、ハンドオフ時にハンドオフ先のユーザ端末で新規にダウンロードを行う場合に比べて、ダウンロード時間の短縮が見込まれる。特に、将来的にＵＷＢ（Ｕｌｔｒａ  Ｗｉｄｅ  Ｂａｎｄ）を始めとする短距離無線通信の伝送速度が１００Ｍｂｉｔ／ｓから１Ｇｂｉｔ／ｓに高速化される見込みであり、前述の第２の実施の形態のように、ハンドオフ時の端末間のデータ転送にこのような無線通信媒体を用いることで、プロキシサーバからのダウンロードと比べて高速な転送が可能となる。
【００５２】
また、プロキシサーバは、データ要求および経路切替要求に付加されたユーザ端末の識別情報および通信セッションの識別情報から、経路切替を行う通信セッションを識別可能とすることで、プロキシサーバが複数の利用者を収容する場合や、単一の利用者が複数のアプリケーションを使用する場合でも、通信セッション毎にデバイスハンドオフの実行を制御することが可能となる。
【００５３】
また、ハンドオフ先のユーザ端末のクライアントプロキシは、プロキシサーバおよびハンドオフ前のユーザ端末からのデータの終了を通信セッションの切断で検出することが可能であるが、エラー等の理由でセッションが切断した場合には、プロキシサーバおよびハンドオフ前のユーザ端末から全データを受信したか判別することができない。そのため、利用者が使用するユーザ端末を切り替えたときに、プロキシサーバおよびハンドオフ前のクライアントプロキシは送信するデータのデータサイズ（あるいは、プロキシサーバまたはハンドオフ前のクライアントプロキシのいずれかが、全データのデータサイズと実際に送信するデータのデータサイズ）をハンドオフ先のクライアントプロキシに通知することで、ハンドオフ先のクライアントプロキシでアプリケーションに送信すべきデータサイズを事前に検出することが可能となる。
【００５４】
また、インターネット上で広く使われているＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）プロトコルを本発明に適用することで、現在、多数存在するＨＴＴＰを用いたアプリケーションやサーバを修正することなく、本発明を実施することが可能であり、プロキシサーバを制御するプログラムおよびクライアントプロキシの開発が容易となる。
以上、この発明の実施形態を、図面を参照して詳述した。もちろん、本発明の具体的な構成は、上記実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の構成等も含まれる。
【００５５】
【発明の効果】
以上、詳細に説明したように、本発明によれば、利用者が使用するユーザ端末を他のユーザ端末に切り替えた場合でも、切り替えた先のユーザ端末で、データのダウンロードを継続して行えるとともに最初に要求した全データを取得することができる。
【図面の簡単な説明】
【図１】本発明による第１の実施形態のシステム構成図である。
【図２】本発明による第２の実施形態のシステム構成図である。
【図３】本発明によるデータ・ダウンロード継続方法のシーケンス図である。
【図４】本発明によるＨＴＴＰのリクエストを用いたデータ要求および経路切替要求のヘッダ情報の一例である。
【図５】本発明によるＨＴＴＰのリクエストを用いたデータ要求および経路切替要求のヘッダ情報の他の例である。
【図６】本発明によるプロキシサーバが管理するスレッド管理テーブルの一例である。
【図７】本発明によるＨＴＴＰリクエスト受信時のプロキシサーバの動作フローチャートである。
【図８】本発明によるＨＴＴＰレスポンスのヘッダ情報の一例である。
【図９】本発明によるＣｏｎｔｅｎｔ−Ｌｅｎｇｔｈを用いたデータサイズ通知に関するシーケンス図である。
【図１】
2004362062.tif 000003
【図２】
2004362062.tif 000004
【図３】
2004362062.tif 000005
【図４】
2004362062.tif 000006
【図５】
2004362062.tif 000007
【図６】
2004362062.tif 000008
【図７】
2004362062.tif 000009
【図８】
2004362062.tif 000010
【図９】
2004362062.tif 000011