(57)【要約】  システムは、サーバと、当該サーバと通信する第１の電子装置において実行可能なソースクライアントとを備える。ソースクライアントは、ファイルをサーバに送信するように動作可能である。システムは、サーバと通信する第２の電子装置において実行可能な受信クライアントをさらに備える。受信クライアントは、サーバがソースクライアントからファイルの全体を受信する前に、ファイルの複数の部分のうちの第１の部分をサーバから検索するように動作可能である。【選択図】図３
2009534762.tif 000002
【特許請求の範囲】
【請求項１】
サーバと、
前記サーバと通信する第１の電子装置において実行可能なソースクライアントであって、ファイルを前記サーバに送信するように動作可能なソースクライアントと、
前記サーバと通信する第２の電子装置において実行可能な受信クライアントであって、前記サーバが前記ソースクライアントから前記ファイルの全体を受信する前に、前記ファイルの複数の部分のうちの第１の部分を前記サーバから検索するように動作可能な受信クライアントと、
を備える、システム。
【請求項２】
前記ファイルは該ファイルの一連の離散した部分で前記サーバに送信される、請求項１に記載のシステム。
【請求項３】
前記受信クライアントは、前記サーバが前記ソースクライアントから第２のファイル部分を受信する前に、前記第１のファイル部分を検索するように動作可能な請求項１に記載のシステム。
【請求項４】
前記受信クライアントは、前記サーバが前記ソースクライアントから第２のファイル部分を受信した後に、前記第１のファイル部分を検索するように動作可能な請求項１に記載のシステム。
【請求項５】
前記ソースクライアントは第１のモバイルオブジェクトを作成するように動作可能であり、該第１のモバイルオブジェクトは前記サーバにおけるプロクシオブジェクトを作成するように動作可能な請求項１に記載のシステム。
【請求項６】
前記第１のモバイルオブジェクトは、前記複数のファイル部分を前記プロクシオブジェクトに提供するように動作可能な請求項５に記載のシステム。
【請求項７】
前記プロクシオブジェクトは、前記複数のファイル部分を前記サーバに結合されている記憶装置に記憶するように動作可能な請求項６に記載のシステム。
【請求項８】
前記第１のモバイルオブジェクトは、前記ファイルが前記サーバに送信されていることを前記受信クライアントに通知するように動作可能な第２のモバイルオブジェクトを作成するように動作可能な請求項５に記載のシステム。
【請求項９】
前記受信クライアントはモバイルオブジェクトを作成するように動作可能であり、該モバイルオブジェクトは前記サーバにおけるプロクシオブジェクトを作成するように動作可能な請求項１に記載のシステム。
【請求項１０】
前記プロクシオブジェクトは、前記サーバに結合されている記憶装置から前記複数のファイル部分を検索すると共に、該複数のファイル部分を前記受信クライアントに提供するように動作可能な請求項９に記載のシステム。
【請求項１１】
前記複数のファイル部分は暗号化される、請求項１に記載のシステム。
【請求項１２】
前記複数のファイル部分は前記ソースクライアントによって暗号化される、請求項１１に記載のシステム。
【請求項１３】
記憶構成要素を有する電子システムにおいて実施可能な方法であって、該電子システムはソース装置及び受信装置に結合され、該方法は、
前記ソース装置からファイルの複数の部分を受信すると共に、該複数の部分を前記記憶構成要素に記憶するように動作可能な第１のオブジェクトを実行すること、及び
前記第１のオブジェクトが前記ソース装置から前記ファイルの全体を受信する前に、前記記憶構成要素から前記ファイルの第１の部分を検索すると共に、該第１の部分を前記受信装置に提供するように動作可能な第２のオブジェクトを実行すること、
を含む、方法。
【請求項１４】
前記第１のオブジェクトはモバイルオブジェクトによって作成され、該モバイルオブジェクトは前記ソース装置上に作成される、請求項１３に記載の方法。
【請求項１５】
前記第２のオブジェクトはモバイルオブジェクトによって作成され、該モバイルオブジェクトは前記受信装置上に作成される、請求項１３に記載の方法。
【請求項１６】
電子システムに結合されている電子装置において実施可能な方法であって、
ソース装置からファイルを受信するように動作可能な前記電子システムとのネットワーク接続を確立すること、及び
前記電子システムが前記ソース装置から前記ファイルの全体を受信する前に、該電子システムから前記ファイルの複数の部分のうちの第１の部分を検索すること、
を含む、方法。
【請求項１７】
前記ネットワーク接続を確立することは、
前記電子装置がモバイルオブジェクトを作成すること、及び
前記モバイルオブジェクトが前記電子システムにおけるプロクシオブジェクトを作成すること、
を含む、請求項１６に記載の方法。
【請求項１８】
前記プロクシオブジェクトは、前記複数のファイル部分を前記電子システムに結合されている記憶装置から検索すると共に、該複数のファイル部分を前記電子装置に提供するように動作可能な請求項１７に記載の方法。
【請求項１９】
少なくとも１つの第１のコンピュータから、通信媒体を通じて前記少なくとも１つの第１のコンピュータに接続される少なくとも１つの第２のコンピュータに、コンピュータプログラム製品を転送する方法であって、
（ａ）前記少なくとも第１のコンピュータにおいてコンピュータ実行可能命令にアクセスするステップであって、該コンピュータ実行可能命令は、データ処理システム上で実行されると、少なくとも、
（１）ファイルをソース装置から受信するように動作可能なサーバとのネットワーク接続を確立するステップ、及び
（２）前記サーバが前記ファイルの全体を前記ソース装置から受信する前に、前記ファイルの第１の部分を前記サーバから検索するステップ、
を実行する、アクセスするステップと、
（ｂ）前記コンピュータ実行可能命令を前記少なくとも１つの第１のコンピュータから前記通信媒体を通じて前記少なくとも１つの第２のコンピュータに転送するステップと、
を含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
［優先権の主張］
本願は、２００６年４月２１日に出願された米国仮特許出願第６０／７４５，３５４号、２００６年６月２日に出願された米国仮特許出願第６０／８０３，８３１号、２００６年８月２４日に出願された米国仮特許出願第６０／８２３，４９４号、２００６年９月１５日に出願された米国仮特許出願第６０／８２５，８５２号、２００６年１２月１１日に出願された米国仮特許出願第６０／８６９，４５１号、及び２００７年４月９日に出願された米国仮特許出願第６０／９１０，７４７号からの優先権を主張するものであり、これらの仮特許出願は参照により本明細書に援用される。
【０００２】
本発明は、包括的にはコンピュータに実装されるプロセスに関し、特に電子装置間での電子ファイルの共有に関する。
【背景技術】
【０００３】
コンピュータネットワークユーザは、通常、電子メール添付又はファイル転送プロトコル（ＦＴＰ）サイト等の拙劣な従来技術による方法を使用して大容量ファイルを交換している。大半の電子メールシステムは、添付文書のサイズを制限しており、そのため、ユーザは、離散したファイルがそれぞれに添付された複数の電子メールを送信するよう強いられる。ＦＴＰサイトの安全度は通常、中程度であり、不慣れなユーザがＦＴＰサイトの使用を管理することは難しいことが多い。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上述されていない従来技術に伴う他の問題も、本開示の読後に当業者に容易に明らかになるように、本発明の実施形態の教示を使用して解消することができる。
【課題を解決するための手段】
【０００５】
本発明の一実施形態では、システムは、サーバと、当該サーバと通信する第１の電子装置において実行可能なソースクライアントとを備える。ソースクライアントは、ファイルをサーバに送信するように動作可能である。システムは、サーバと通信する第２の電子装置において実行可能な受信クライアントをさらに備える。受信クライアントは、サーバがソースクライアントからファイルの全体を受信する前に、ファイルの複数の部分のうちの第１の部分をサーバから検索するように動作可能である。
【０００６】
本発明の好ましい実施形態及び代替的な実施形態について添付図面を参照して以下に詳細に説明する。
【発明を実施するための最良の形態】
【０００７】
本発明の一実施形態は、モバイルエージェントと呼ばれる（モバイルオブジェクト又はエージェントオブジェクトと称されることもある）プロセスを利用することによってリモートプログラミングの概念を強化する。一般に、これらの概念は、第１の（「ホスト」）コンピュータシステムに存在するオブジェクト（モバイルエージェントオブジェクト）が、自己の現在の実行状態を保持しながら、自己を第２の（「リモートホスト」）コンピュータシステムに対してトラスペアレントにする能力を提供する。モバイルエージェントオブジェクトの動作を以下に概説する。
【０００８】
モバイルエージェントオブジェクトの命令、保持されるその実行状態、及びモバイルエージェントオブジェクト所有の他のオブジェクトはパッケージングすなわち「符号化」されて、コンピュータネットワークを介してすべての標準通信手段によって伝送可能であるように構成されるデータストリングを生成する。リモートホストに伝送されると、データストリングは復号化されて、リモートホストシステム内にやはりモバイルエージェントオブジェクトと呼ばれるコンピュータプロセスが生成される。復号化されたモバイルエージェントオブジェクトは、上述したように符号化されたオブジェクトを含み、保持されているその実行状態のままである。リモートホストコンピュータシステムは、ここではリモートホスト環境で動作しているモバイルエージェントオブジェクトの実行を再開する。
【０００９】
ここでは新しい環境で動作しながら、モバイルエージェントオブジェクトの命令は、リモートホストによって実行されて、データオブジェクトの定義、作成、及び操作並びに他のリモートホストコンピュータオブジェクトとの対話を含む、任意の複雑性の動作を実行する。
【００１０】
図１は、本発明を実施することができる、適したコンピューティングシステム環境１００の一例を示す。コンピューティングシステム環境１００は、適したコンピューティング環境の単なる一例にすぎず、本発明の使用又は機能の範囲に対するいかなる限定も示唆することを意図されない。コンピューティング環境１００は、例示的な動作環境１００に示される構成要素の任意の１つ又は組み合わせに関連する、いかなる従属性又は要件も有するものとして解釈されるべきではない。
【００１１】
本発明の実施形態は、多くの他の汎用又は専用コンピューティングシステム環境又は構成を使用しても動作可能である。本発明との併用に適し得る既知のコンピューティングシステム、環境、及び／又は構成の例としては、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド又はラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラミング可能な消費者電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記システム又は装置のうちのいずれかを含む分散コンピューティング環境等が挙げられるが、これらに限定されない。
【００１２】
本発明の実施形態は、プログラムモジュール等のコンピュータ実行可能命令がコンピュータによって実行されるという一般的な文脈の中で説明することができる。一般に、プログラムモジュールは、特定のタスクを実行するか、又は特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、データ構造等を含む。本発明は、タスクが、通信ネットワークを通じてリンクされているリモート処理装置によって実行される分散コンピューティング環境で実施することも可能である。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含むローカルコンピュータ記憶媒体及びリモートコンピュータ記憶媒体の両方に配置することができる。
【００１３】
図１を参照すると、本発明を実施する例示的なシステムは、コンピュータ１１０の形態の汎用コンピューティング装置を備える。コンピュータ１１０の構成要素は、処理ユニット１２０と、システムメモリ１３０と、システムメモリを含む様々なシステム構成要素を処理ユニット１２０に結合するシステムバス１２１とを含むことができるが、これらに限定されない。システムバス１２１は、メモリバス又はメモリコントローラと、周辺機器バスと、様々なバスアーキテクチャのうちの任意の構造を使用するローカルバスとを含むいくつかの種類のバス構造のいずれであってもよい。限定ではなく例として、このような構造は、業界標準アーキテクチャ（ＩＳＡ）バスと、マイクロチャネルアーキテクチャ（ＭＣＡ）バスと、エンハンストＩＳＡ（ＥＩＳＡ）バスと、米国映像電子技術標準化協会（ＶＥＳＡ）ローカルバスと、メザニンバスとしても既知の周辺機器相互接続（ＰＣＩ）バスとを含む。
【００１４】
コンピュータ１１０は、通常、様々なコンピュータ可読媒体を備える。コンピュータ可読媒体は、コンピュータ１１０がアクセス可能な利用可能な任意の媒体であることができ、揮発性媒体及び不揮発性媒体の両方、着脱可能媒体及び非着脱可能媒体の両方を含む。限定ではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体及び通信媒体を含むことができる。コンピュータ記憶媒体は、任意の方法又は技術で実施され、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータ等の情報を記憶する揮発性媒体及び不揮発性媒体の両方、着脱可能及び非着脱可能媒体の両方を含む。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ若しくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）若しくは他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ若しくは他の磁気記憶装置、又は、所望の情報の記憶に使用することができ、且つコンピュータ１１０がアクセス可能な他の任意の媒体を含むが、これらに限定されない。通信媒体は、通常、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータを、搬送波若しくは他の搬送メカニズム等の変調データ信号で具現化し、任意の情報配信媒体を含む。「変調データ信号」という用語は、特徴セットの１つ又は複数を有するか、又は信号に情報を符号化するように変更される信号を意味する。限定ではなく例として、通信媒体は、有線ネットワーク又は直接有線接続等の有線媒体と、音響媒体、ＲＦ媒体、赤外線媒体、及び他の無線媒体等の無線媒体とを含む。上記の任意の組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。
【００１５】
システムメモリ１３０は、読み出し専用メモリ（ＲＯＭ）１３１及びランダムアクセスメモリ（ＲＡＭ）１３２等の揮発性及び／又は不揮発性メモリの形態のコンピュータ記憶媒体を含む。立ち上げ時等にコンピュータ１１０内の要素間での情報の転送を助ける基本ルーチンを含む基本入出力システム１３３（ＢＩＯＳ）は、通常、ＲＯＭ１３１に記憶される。ＲＡＭ１３２は、通常、処理ユニット１２０が直ちにアクセス可能であり、且つ／又は処理ユニット１２０が現在処理中のデータ及び／又はプログラムモジュールを含む。限定ではなく例として、図１は、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、及びプログラムデータ１３７を示す。
【００１６】
コンピュータ１１０は、他の着脱可能／非着脱可能、揮発性／不揮発性コンピュータ記憶媒体を含むこともできる。単なる例として、図１は、非着脱可能不揮発性磁気媒体から読み出すか又はこの媒体へ書き込むハードディスクドライブ１４０と、着脱可能不揮発性磁気ディスク１５２から読み出すか又はこの媒体へ書き込む磁気ディスクドライブ１５１と、ＣＤ  ＲＯＭ又は他の光学媒体等の着脱可能不揮発性光ディスク１５６から読み出すか又はこの媒体へ書き込む光ディスクドライブ１５５とを示す。例示的な動作環境で使用することができる他の着脱可能／非着脱可能、揮発性／不揮発性コンピュータ記憶媒体としては、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭ等が挙げられるが、これらに限定されない。ハードディスクドライブ１４１は、通常、インタフェース１４０等の不揮発性メモリインタフェースを通じてシステムバス１２１に接続され、磁気ディスクドライブ１５１及び光ディスクドライブ１５５は、通常、インタフェース１５０等の着脱可能メモリインタフェースによってシステムバス１２１に接続される。
【００１７】
上述され図１に示されるドライブ及びそれに関連付けられるコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、及びコンピュータ１１０の他のデータの記憶を提供する。図１中、例えば、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、及びプログラムデータ１４７を記憶して示されている。これらの構成要素がオペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、及びプログラムデータ１３７と同じであっても異なってもよいことを留意されたい。ここでは、少なくとも異なるコピーであることを示すために、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、及びプログラムデータ１４７に異なる符号が付与されている。ユーザは、キーボード１６２、及び一般にマウス、トラックボール、又はタッチパッドと称されるポインティング装置１６１等の入力装置を通じてコマンド及び情報をコンピュータ２０に入力することができる。他の入力装置（図示せず）としては、マイクロホン、ジョイスティック、ゲームパッド、衛星用アンテナ、スキャナ等を挙げることができる。これらの及び他の入力装置は、システムバスに結合されているユーザ入力インタフェース１６０を通じて処理ユニット１２０に接続されることが多いが、パラレルポート、ゲームポート、又はユニバーサルシリアルバス（ＵＳＢ）等の他のインタフェース及びバス構造によって接続されてもよい。モニタ１９１又は他の種類の表示装置も、ビデオインタフェース１９０等のインタフェースを介してシステムバス１２１に接続される。モニタに加えて、コンピュータは、スピーカ１９７及びプリンタ１９６等の他の周辺出力装置を含むこともでき、これらは出力周辺機器インタフェース１９０を通じて接続することができる。
【００１８】
コンピュータ１１０は、リモートコンピュータ１８０等の１つ又は複数のリモートコンピュータへの論理接続を使用するネットワーク接続環境内で動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア装置、又は他の一般的なネットワークノードであってよく、通常、コンピュータ１１０に関して上述した要素のうちの多く又はすべてを含むが、メモリ記憶装置１８１のみが図１に示されている。図１に示される論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１及び広域ネットワーク（ＷＡＮ）１７３を含むが、他のネットワークを含んでもよい。このようなネットワーク接続環境はオフィス、企業規模コンピュータネットワーク、イントラネット、及びインターネットで一般的である。
【００１９】
ＬＡＮネットワーク接続環境で使用される場合、コンピュータ１１０は、ネットワークインタフェース又はアダプタ１７０を通じてＬＡＮ１７１に接続される。ＷＡＮネットワーク接続環境で使用される場合、コンピュータ１１０は、通常、モデム１７２、又はインターネット等のＷＡＮ１７３を介して通信を確立する他の手段を含む。内蔵されていても外付けであってもよいモデム１７２は、ユーザ入力インタフェース１６０、又は他の適した機構を介してシステムバス１２１に接続することができる。ネットワーク接続環境内で、コンピュータ１１０に関して示されるプログラムモジュール又はその部分は、リモートメモリ記憶装置に記憶することができる。限定ではなく例として、図１は、リモートアプリケーションプログラム１８５をメモリ装置１８１に常駐するものとして示している。図示のネットワーク接続が例示的なものであり、コンピュータ間に通信リンクを確立する他の手段を使用してもよいことが理解されるであろう。
【００２０】
これより図２を参照すると、図示の例示的なコンピュータネットワークシステム２００の文脈の中で本発明の一実施形態を説明することができる。システム２００は、ネットワーク２２０（例えば、インターネット）等の通信媒体を介してサーバ２３０等の電子装置又は電子システムにリンクされているパーソナルコンピュータ又はワークステーション等の電子ユーザ装置２１０、２８０を含む。サーバ２３０は、データベース２４０、電子記憶装置２７０、及びコンピュータシステム２６０にさらに結合するか又はアクセスすることができる。図２に示す実施形態は、ネットワーク２２０を介して２つのユーザ装置２１０、２８０に結合されている１つのサーバ２３０を含むが、１つ又は複数のこのようなサーバに結合されている２つ以上のこのようなユーザ装置を使用して本発明の実施形態を実施してもよいことを認識されたい。
【００２１】
一実施形態では、各ユーザ装置２１０、２８０及びサーバ２３０のそれぞれは、図１に示し図１を参照して考察するコンピュータ１１０に関連付けられる全特徴のうちのすべて又は少数を含むことができる。ユーザ装置２１０、２８０は、コンピュータ画面又はディスプレイ２５０、２９０のそれぞれを含むか、又は結合される。ユーザ装置２１０、２８０は、ネットワークコンピューティングプロセス及びローカルコンピューティングプロセスの両方を含む様々な目的に使用することができる。
【００２２】
ユーザ装置２１０、２８０は、ネットワーク２２０を介してサーバ２３０にリンクされ、それによって、ユーザ装置２１０、２８０で実行されているコンピュータプログラム、例えばブラウザ又は他のアプリケーション等は、サーバ２３０との双方向通信に協力することができる。サーバ２３０をデータベース２４０及び／又は電子記憶装置２７０に結合して、そこから情報を検索すると共に、そこに情報を記憶することができる。さらに、サーバ２３０は、サーバが特定の処理機能をコンピュータシステムに委任することができるようにコンピュータシステム２６０に結合することができる。
【００２３】
これより図３を参照すると、ユーザ装置２１０のユーザ（図示せず）がファイルをユーザ装置２８０に転送することができるようにする、本発明の一実施形態の機能を示す。一実施形態では、サーバ２３０又は他の適切な電子装置の管理者（図示せず）は、ファイル転送アプリケーションをユーザ装置２１０、２８０に転送してそこにインストールする。ユーザ装置２１０、２８０にインストールされると、ファイル転送アプリケーションは、ユーザ装置２１０、２８０のそれぞれによって、実行可能にファイル転送クライアント３１０、３２０を提供する。ファイル転送クライアント３１０、３２０のそれぞれは、各モバイルエージェントランタイム環境３３０、３４０を含む。モバイルエージェントランタイム環境３３０、３４０は、モバイルオブジェクトが実行するようにプログラムされる動作を実行する能力を、モバイルオブジェクトに可能にすることに専用とされるユーザ装置２１０、２８０のメモリの部分を含む。ファイル転送アプリケーションには、ディスプレイ２５０、２９０にそれぞれ表示可能なユーザインタフェース３５０、３６０も含まれる。一実施形態では、インタフェース３５０、３６０は、ファイルを配置することができる各電子フォルダに対応する。このような各電子フォルダを、特定のフォルダを介してファイルを受信し且つ／又は送信する許可を有するユーザを定義するユーザ群に割り当てることができる。
【００２４】
ユーザ装置２８０のユーザとのファイルの共有を開始するために、ユーザ装置２１０のユーザは、ファイルをインタフェース３５０に対応し、ユーザ装置２８０が受信者として関連付けられているフォルダに配置することができる。ユーザは、例えば、ファイルを表すアイコンをインタフェース３５０に「ドラッグアンドドロップ」すること、又はインタフェース３５０に関連付けられているコマンドを使用してファイルを開くこと等の従来の動作を通じてそれを行うことができる。ソースクライアント３１０は、インタフェース３５０に対応するフォルダを監視する。インタフェース３５０内のファイルの配置に気づくと、ソースクライアント３１０はサーバ２３０をポーリングして、この場合、ユーザ装置２８０を含む受信者群を判断し、サーバにファイルを共有する要求を出す。
【００２５】
ファイル共有要求に応答して、サーバ２３０は転送トークン（図示せず）をソースクライアント３１０に返す。一実施形態では、転送トークンは、ファイルに対応するトランザクション識別子として機能するデータストリングを含む。転送トークンを受信すると、ソースクライアント３１０は、トークン、及びファイルを特徴付ける情報（例えば、受信者ＩＤ、送信者ＩＤ、ファイル名、ファイル作業空間（すなわち、インタフェース３５０に対応し、共有のためにファイルが配置されたフォルダの名称）、ファイルサイズ等）（集合的に「ファイル転送情報」）を含む、転送モバイルオブジェクト（ＴＭＯ）３７０を作成する。
【００２６】
ＴＭＯ３７０は、サーバ２３０で実行されているモバイルエージェントランタイム環境３８０に移り、ファイル転送のためのＴＭＯのサーバ側エージェントとして機能するプロクシオブジェクト３９０を作成する。一実施形態では、プロクシ３９０はそれ自体、モバイルオブジェクトである。プロクシ３９０が作成された後、ＴＭＯ３７０はソースクライアント３１０に戻る。
【００２７】
ＴＭＯ３７０は、ユーザ装置２１０に戻ると、プロクシ３９０とのネットワーク接続を確立する。続けて、ＴＭＯ３７０はファイルを読み出し、ファイルの離散した部分をプロクシ３９０に順次転送する。一実施形態では、ファイル部分のサイズはおよそ６４キロバイトであるが、より小さな又は大きな部分を同様に利用することが可能である。ファイル部分を受信すると、プロクシ３９０は、電子受信肯定応答をＴＭＯ３７０に対して提供する。ＴＭＯ３７０は、プロクシ３９０から受信肯定応答を受信した後でのみ、後続するファイル部分を提供する。さらに、ＴＭＯ３７０は、ファイル転送ステータスをソースクライアント３１０に定期的に通知し、ユーザがこの情報をディスプレイ２５０で見ることができる。ファイルの全体がプロクシ３９０に転送されると、ＴＭＯ３７０は、ファイル転送の完了をソースクライアント３１０に通知し、次に終了される。
【００２８】
一実施形態では、ＴＭＯ３７０とプロクシ３９０との間のネットワーク通信は障害回復モードを有する。例えば、ネットワーク接続が失われた場合、プロクシ３９０は終了され、ＴＭＯ３７０は上記プロシージャを再開し（すなわち、プロクシ及びネットワーク接続をセットアップし）、新しいプロクシに接続障害時のファイル転送ステータスを通知する。有利なことに、このような接続障害の場合、ＴＭＯ３７０は、障害回復プロセス自体を開始するように構成され、ソースクライアント３１０又はサーバ２３０からの命令は必要ない。
【００２９】
プロクシ３９０が作成されると、プロクシは、プロクシが受信したファイルデータを書き込むことができる記憶装置２７０でのスペースの割当てを要求する。ファイルの全体が記憶装置２７０に書き込まれると、プロクシ３９０は、ファイル記憶完了をサーバ２３０に通知し、次に終了される。
【００３０】
プロクシ３９０の作成時又は作成される前後に、ＴＭＯ３７０は、受信クライアント３２０に移り、ソースクライアント３１０からファイルが転送されていることを受信クライアントに通知するメッセージングモバイルオブジェクト（ＭＭＯ）３０５を作成する。その際、ＭＭＯは、上述したファイル転送情報を受信クライアント３２０に提供する。そのように通知されたことに応答して、受信クライアント３２０は、ファイル転送情報を含む転送モバイルオブジェクト（ＲＴＭＯ）３１５を作成する。
【００３１】
ＲＴＭＯ３１５は、サーバ２３０で実行されているモバイルエージェントランタイム環境３８０に移り、ファイル転送のためのＲＴＭＯのサーバ側エージェントとして機能するプロクシオブジェクト３２５を作成する。一実施形態では、プロクシ３２５はそれ自体、モバイルオブジェクトである。プロクシ３２５を作成した後、ＲＴＭＯ３１５は受信クライアント３２０に戻る。
【００３２】
ＲＴＭＯ３１５は、ユーザ装置２８０に戻ると、プロクシ３２５とのネットワーク接続を確立する。さらに、ＲＴＭＯ３１５は、転送されたファイルが配置されることになる電子ファイルフォルダをセットアップするように受信クライアント３２０に命令する。
【００３３】
一実施形態では、プロクシ３２５は、サーバ２３０をポーリングして、ソースプロクシ３９０がソース装置２１０から記憶装置２７０にファイルデータを配置したか否かを判断することができる。プロクシ３２５は、記憶装置２７０から、ソースプロクシ３９０によって記憶装置２７０に記憶されている各ファイル部分を読み出し、このような各ファイル部分を受信クライアント３２０に提供する。代替的に、プロクシ３２５はファイル部分のコピーを作成し、その後、このような各ファイル部分は受信クライアント３２０に提供される。一実施形態では、プロクシ３２５は、先入れ先出し（ＦＩＦＯ）様式でファイル部分を読み出して提供する。したがって、ユーザ装置２８０は、ユーザ装置２１０がファイルのサーバ２３０への転送を完了する前にファイルの少なくとも１つの部分を受信することができる。さらに、受信クライアント３２０が、ソースクライアント３１０がファイル転送を開始するときにアクティブである場合、プロクシ３２５は、サーバ２３０がソースクライアントから後続ファイル部分を受信する前に、最初のファイル部分を読み出して受信クライアントに提供することができる。ソースクライアント３１０がファイル転送を開始するときに、受信クライアント３２０がアクティブではない（例えば、ユーザ装置２８０がオフである）場合、プロクシ３２５は、サーバ２３０がソースクライアントから後続ファイル部分を受信した後に、最初のファイル部分を読み出して受信クライアントに提供することができる。
【００３４】
ファイルの全体がＲＴＭＯ３１５に提供されると、プロクシ３２５は、ファイル共有完了をサーバ２３０に通知し、次に終了される。さらに、ファイルの全体がユーザ装置２８０上の新しいファイルフォルダに転送され終えると、ＲＴＭＯ３１５は、ファイル転送完了を受信クライアント３２０に通知し、次に終了される。すべての指定受信者がファイルデータを受信すると、サーバ２３０はファイル部分を記憶装置２７０から除去することができる。
【００３５】
一実施形態では、転送されたファイルの各部分は暗号化される。代替的な実施形態では、ファイル暗号化は、ファイル部分がソースクライアント３１０から受信されるとき、又はソース装置２１０によって受信されるときに、サーバ２３０によって適用することができる。サーバ２３０によって暗号化される場合、サーバは、ファイルの全体のデータセットに適用可能なそれ自体の鍵を有することができる。ソース装置２１０による暗号化の場合、暗号化及び対応する各鍵は、所望に応じて各作業空間、各ファイル、又は各ファイル部分に適用することができる。
【００３６】
図４は、本発明の一実施形態によるプロセス４００を示す。プロセス４００は、記憶装置に結合されるか又は記憶装置を含む電子システムにおいて実施することが可能である。プロセス４００は、離散したブロックとして示される動作セットとして示される。プロセス４００は、任意の適したハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせで実施することができる。動作が説明される順序は必ずしも限定として解釈されるべきではない。
【００３７】
ブロック４１０において、第１のオブジェクトが実行される。第１のオブジェクトは、ソース装置からファイルの複数の部分を受信するように動作可能である。さらに、第１のオブジェクトは、その部分を記憶装置に記憶するように動作可能である。一実施形態では、第１のオブジェクトは、ソース装置上に作成されるモバイルオブジェクトによって作成される。例えば、ＴＭＯ３７０は、ファイル転送のためのＴＭＯのサーバ側エージェントとして機能するプロクシオブジェクト３９０を作成する。続けて、ＴＭＯ３７０はファイルを読み出し、ファイルの離散した部分をプロクシ３９０に順次転送する。プロクシ３９０は、受信したファイルデータを記憶装置２７０に書き込む。
【００３８】
ブロック４２０において、第２のオブジェクトが実行される。第２のオブジェクトは、ファイルの第１の部分を記憶装置から検索するように動作可能である。第２のオブジェクトは、第１のオブジェクトがソース装置からファイルの全体を受信する前に、第１の部分を受信装置に提供するようにさらに動作可能である。一実施形態では、第２のオブジェクトは、受信装置上に作成されるモバイルオブジェクトによって作成される。例えば、ＲＴＭＯ３１５は、ファイル転送のためのＲＴＭＯのサーバ側エージェントとして機能するプロクシオブジェクト３２５を作成する。プロクシ３２５は、記憶装置２７０から、ソースプロクシ３９０によって記憶装置２７０に記憶された各ファイル部分を読み出し、このような各ファイル部分を受信クライアント３２０に提供する。一実施形態では、プロクシ３２５は、先入れ先出し（ＦＩＦＯ）様式でファイル部分を読み出して提供する。
【００３９】
図５は、本発明の一実施形態によるプロセス５００を示す。プロセス５００は、ソース装置からファイルを受信するように動作可能な電子システムに結合されている電子装置において実施することが可能である。プロセス５００は、離散したブロックとして示される動作セットとして示される。プロセス５００は、任意の適したハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせで実施することができる。動作が説明される順序は必ずしも限定として解釈されるべきではない。
【００４０】
ブロック５１０において、電子装置がモバイルオブジェクトを作成する。例えば、受信クライアント３２０がＲＴＭＯ３１５を作成する。
ブロック５２０において、モバイルオブジェクトは、電子システムにおいてプロクシオブジェクトを作成する。例えば、ＲＴＭＯ３１５が、サーバ２３０で実行されているモバイルエージェントランタイム環境３８０に移り、ファイル転送のためのＲＴＭＯのサーバ側エージェントとして機能するプロクシオブジェクト３２５を作成する。
【００４１】
ブロック５３０において、電子システムとのネットワーク接続が確立される。例えば、ＲＴＭＯ３１５は、ユーザ装置２８０に戻ると、プロクシ３２５とのネットワーク接続を確立する。
【００４２】
ブロック５４０において、ファイルの複数の部分のうちの第１の部分が、電子システムから検索される。一実施形態では、プロクシオブジェクトは、電子システムに結合されている記憶装置からファイル部分を検索し、そのファイル部分を電子装置に提供するように動作可能である。電子システムがファイルの全体をソース装置から受信する前に、第１の部分は電子装置によって受信される。例えば、ＲＴＭＯ３１５は、ファイル転送のためのＲＴＭＯのサーバ側エージェントとして機能するプロクシオブジェクト３２５を作成する。プロクシ３２５は、記憶装置２７０から、ソースプロクシ３９０によって記憶装置２７０に記憶された各ファイル部分を読み出し、このような各ファイル部分を受信クライアント３２０に提供する。一実施形態では、プロクシ３２５は、先入れ先出し（ＦＩＦＯ）様式でファイル部分を読み出して提供する。
【００４３】
本発明の好ましい実施形態を図示し説明したが、上述したように、本発明の精神及び範囲から逸脱することなく多くの変更を行うことが可能である。例えば、２つ以上の受信装置が、ユーザ装置２８０及び図３を参照して上述したように、ソース装置２１０から共有ファイルを受信することができる。一実施形態では、これらの複数の受信装置は、それぞれが各プロクシオブジェクトを展開してサーバ２３０からファイル部分を検索することによって共有ファイルを同時に受信することができる。むしろ、本発明は全体的に添付の特許請求の範囲を参照することによって判断されるべきである。
【図面の簡単な説明】
【００４４】
【図１】本発明の一実施形態を実施することができる、例示的な動作環境の概略図である。
【図２】本発明の一実施形態を実施することができる、例示的な動作環境の機能ブロック図である。
【図３】本発明の一実施形態によるファイル共有を示す機能ブロック図である。
【図４】本発明の一実施形態による第１の方法を示す流れ図である。
【図５】本発明の一実施形態による第２の方法を示す流れ図である。
【図１】
2009534762.tif 000003
【図２】
2009534762.tif 000004
【図３】
2009534762.tif 000005
【図４】
2009534762.tif 000006
【図５】
2009534762.tif 000007
【国際調査報告】
2009534762.tif 000008