(57)【特許請求の範囲】
【請求項１】
要求側のリモート端末に対し、サービス・エンジンにより提供されるサービスへのアクセスとワークスペース・データの同期ワークスペース要素へのアクセスとを提供することができるサーバ・システムであって、
オペレーティング・システムが格納され、該格納されているオペレーティング・システムの実行に基づいて、前記サービスおよび前記同期ワークスペース要素へのアクセスを可能にする大域サーバを備え、前記大域サーバが、
前記サービスを指しているアドレスを格納する記憶媒体と、
前記リモート端末と通信するための通信リンクを確立する通信インタフェースと、
前記通信インタフェースに結合され、前記リモート端末から前記サービスにアクセスするための構成データの要求を受信し、前記リモート端末に構成データを送信する要求処理エンジンと、
前記記憶媒体および前記通信インタフェースに結合され、前記リモート端末による前記サービスへのアクセスを許可するアクセス許可手段であって、前記送信された構成データに基づいて前記リモート端末により生成されるアクセス要求に応答して、前記格納されているアドレスに基づき前記サービスへのアクセスを許可する前記アクセス許可手段と、
第１のワークスペース・データのセットにおける独立に修正可能なワークスペース要素の元と、第２のワークスペース・データのセットにおける独立に修正可能なワークスペース要素のコピーとを同期させて前記同期ワークスペース要素を生成する同期手段であって、前記第１のワークスペース・データのセットが前記大域サーバのクライアントであって前記リモート端末とは異なる別の端末上に格納されており、前記第２のワークスペース・データのセットが前記大域サーバ上に格納されている前記同期手段と、
を備え、
前記サービス・エンジンが前記別の端末上にあり、前記サービスが前記第１のワークスペース・データのセットにおけるワークスペース・データに関連する、サーバ・システム。
【請求項２】
前記記憶媒体がさらに、前記同期ワークスペース要素を指しているアドレスを格納するように構成されている、請求項１に記載のサーバ・システム。
【請求項３】
前記同期手段がさらに、前記通信リンクを確立するために前記通信インタフェースを始動させる同期開始モジュールを含む、請求項１に記載のサーバ・システム。
【請求項４】
前記別の端末が、ファイアウォールによって保護されるローカル・エリア・ネットワークに位置している、請求項１に記載のサーバ・システム。
【請求項５】
前記別の端末が、ファイアウォールの保護外に位置している、請求項１に記載のサーバ・システム。
【請求項６】
前記大域サーバが、前記サービスへのアクセス要求に関して、前記リモート端末のプロキシとして動作するように構成されている、請求項４または５に記載のサーバ・システム。
【請求項７】
前記大域サーバが、前記ファイアウォールを介した前記通信リンクをセキュアなものにするために使用する鍵をさらに備える、請求項４に記載のサーバ・システム。
【請求項８】
前記大域サーバが、前記サービスへのアクセスを前記リモート端末に提供する前に識別および認証サービスを実行するためのセキュリティ・エンジンをさらに備える、請求項１に記載のサーバ・システム。
【請求項９】
前記大域サーバが、前記サービスを構成するのに使用される前記構成データを前記リモート端末に供給する構成エンジンをさらに備える、請求項１乃至８のいずれか一項に記載のサーバ・システム。
【請求項１０】
前記要求処理エンジンが、前記リモート端末による前記サービスへのアクセスを制御するために使用するアプレットを前記リモート端末に供給するように構成されている、請求項１乃至９のいずれか一項に記載のサーバ・システム。
【請求項１１】
前記リモート端末に前記アプレットを提供するために使用されるアプレット・ホスト・エンジンをさらに備える請求項１０に記載のサーバ・システム。
【請求項１２】
前記ワークスペース要素がバージョン情報を含む、請求項１に記載のサーバ・システム。
【請求項１３】
前記サービスが前記ワークスペース要素を使用して構成されている、請求項１に記載のサーバ・システム。
【請求項１４】
要求側のリモート端末に対し、サービス・エンジンにより提供されるサービスへのアクセスとワークスペース・データの同期ワークスペース要素へのアクセスとを提供するための方法であって、
前記サービスを指しているアドレスを大域サーバの記憶装置に格納するステップと、
前記大域サーバが、通信インタフェースを使用して前記リモート端末との通信リンクを確立するステップと、
前記大域サーバが、要求処理エンジンにて、前記リモート端末から前記サービスにアクセスするための構成データの要求を受信するステップと、
前記大域サーバが、前記通信インタフェースを使用して前記構成データを前記リモート端末に送信するステップと、
前記大域サーバが、前記要求処理エンジンにて、前記リモート端末から前記サービスへのアクセス要求を受信するステップであって、前記アクセス要求が前記送信された構成データに基づき生成される当該ステップと、
前記大域サーバのアクセス提供手段が、前記リモート端末による前記サービスへのアクセスを前記サービスへのアクセス要求に応答して前記アドレスに基づき提供するステップと、
前記大域サーバの同期手段が、第１のワークスペース・データのセットにおける独立に修正可能なワークスペース要素の元と、第２のワークスペース・データのセットにおける独立に修正可能なワークスペース要素のコピーとを同期させて前記同期ワークスペース要素を生成するステップであって、前記第１のワークスペース・データのセットが前記大域サーバのクライアントであって前記リモート端末とは異なる別の端末上に格納されており、前記第２のワークスペース・データのセットが前記大域サーバ上に格納されている当該ステップと、
を備え、
前記サービス・エンジンが前記別の端末上にあり、前記サービスが前記第１のワークスペース・データのセットにおけるワークスペース・データに関連するものであり、前記要求処理エンジン、前記アクセス提供手段、および前記同期手段が、前記大域サーバ上に格納されているオペレーティング・システムの実行に基づいて制御される、方法。
【請求項１５】
前記同期ワークスペース要素を指しているアドレスを前記大域サーバの記憶装置に格納すること、
前記要求処理エンジンが、前記リモート端末から、前記同期ワークスペース要素へのアクセス要求を受信すること、
前記アクセス提供手段が、前記同期ワークスペース要素へのアクセスを前記リモート端末に提供すること、
をさらに備える請求項１４に記載の方法。
【請求項１６】
前記サービスへのアクセスを提供する前記別の端末が、ファイアウォールによって保護されるローカル・エリア・ネットワーク内に位置している、請求項１４に記載の方法。
【請求項１７】
前記サービスへのアクセスを提供する前記別の端末が、ファイアウォールの保護外に位置している、請求項１４に記載の方法。
【請求項１８】
前記大域サーバが、前記サービスへのアクセス要求に関して、前記リモート端末のプロキシとして動作するように構成されている、請求項１６または１７に記載の方法。
【請求項１９】
前記大域サーバが、鍵を使用して、前記ファイアウォールを介したアクセスを許可するステップをさらに備える請求項１６に記載の方法。
【請求項２０】
前記大域サーバが、前記同期ワークスペース要素へのアクセスを提供する前に識別および認証サービスを実行するステップをさらに備える請求項１４に記載の方法。
【請求項２１】
前記大域サーバが、前記リモート端末による前記サービスへのアクセスを制御するアプレットを提供するステップをさらに備える請求項１４に記載の方法。
【請求項２２】
前記リモート端末のアプレットにユーザ・インタフェースを結合すること、および前記ユーザ・インタフェースと前記アプレットとを介してユーザが前記同期ワークスペース要素へのアクセスを要求できるようにしたことを備える請求項１４に記載の方法。
【請求項２３】
前記同期ワークスペース要素がバージョン情報を含む、請求項１４に記載の方法。
【請求項２４】
前記サービスが前記同期ワークスペース要素を使用して構成されている、請求項１４に記載の方法。
【請求項２５】
要求側のリモート端末において、サービス・エンジンにより提供されるサービスとワークスペース・データの同期ワークスペース要素とにアクセスするための方法であって、
前記サービスを指しているアドレスを大域サーバの記憶装置に格納するステップと、
前記リモート端末が、通信インタフェースを使用して前記リモート端末と前記大域サーバとの間の通信リンクを確立するステップと、
前記リモート端末が、前記大域サーバに、前記サービスにアクセスするための構成データの要求を送信するステップと、
前記リモート端末が、前記大域サーバから前記構成データを受信するステップと、
前記リモート端末が、前記受信した構成データに基づいて前記サービスへのアクセス要求を生成し、該生成したアクセス要求を前記大域サーバに送信するステップと、
前記リモート端末が、前記格納されたアドレスに基づき前記アクセス要求に応答して提供される前記サービスにアクセスするステップと、
前記大域サーバの同期手段が、第１のワークスペース・データのセットにおける独立に修正可能なワークスペース要素の元と、第２のワークスペース・データのセットにおける独立に修正可能なワークスペース要素のコピーとを同期させるステップであって、前記第１のワークスペース・データのセットが前記大域サーバのクライアントであって前記リモート端末とは異なる別の端末上に格納されており、前記第２のワークスペース・データのセットが前記大域サーバ上に格納されている当該ステップと、
を備え、
前記サービス・エンジンが前記別の端末上にあり、前記サービスが前記第１のワークスペース・データのセットにおけるワークスペース・データに関連する、方法。
【請求項２６】
前記同期ワークスペース要素を指しているアドレスを前記大域サーバの記憶装置に格納すること、
前記リモート端末が、前記大域サーバに、前記同期ワークスペース要素へのアクセス要求を送信すること、
前記大域サーバが、前記リモート端末に、前記同期ワークスペース要素へのアクセスを提供すること、
をさらに備える請求項２５に記載の方法。
【請求項２７】
前記サービスへのアクセスを提供する前記別の端末が、ファイアウォールによって保護されるローカル・エリア・ネットワーク内に位置している、請求項２６に記載の方法。
【請求項２８】
前記サービスへのアクセスを提供する前記別の端末が、ファイアウォールの保護外に位置している、請求項２６に記載の方法。
【請求項２９】
前記大域サーバが、前記サービスへのアクセス要求に関して、前記リモート端末のプロキシとして動作するように構成されている、請求項２６または２７に記載の方法。
【請求項３０】
前記大域サーバが、鍵を使用して、前記ファイアウォールを介したアクセスを許可するステップをさらに備える請求項２７に記載の方法。
【請求項３１】
前記大域サーバが、前記同期ワークスペース要素へのアクセスを提供する前に識別および認証サービスを実行するステップをさらに備える請求項２５に記載の方法。
【請求項３２】
前記大域サーバが、前記リモート端末による前記サービスへのアクセスを制御するアプレットを提供するステップをさらに備える請求項２５に記載の方法。
【請求項３３】
ユーザ・インタフェースをアプレットに結合すること、および前記ユーザ・インタフェースと前記アプレットとを介してユーザが前記同期ワークスペース要素へのアクセスを要求できるようにしたことを備える請求項２５に記載の方法。
【請求項３４】
前記ワークスペース要素がバージョン情報を含む、請求項２５に記載の方法。
【請求項３５】
前記サービスが前記ワークスペース要素を使用して構成されている、請求項２５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全般的にはコンピュータ・ネットワークに関し、詳細には、コンピュータ・ネットワーク内で統一情報に大域的にかつ安全にアクセスするシステムと方法を提供する。
【背景技術】
【０００２】
現在、インターネットにより約１００，０００のコンピュータ・ネットワークと数百万台のコンピュータが相互に接続されている。それぞれのコンピュータには、ｅメールの作成、送信、および受信、ウェブ・サイトへのアクセス、ファックス・ドキュメントの作成および受信、データの保存および取り出しなど、さまざまなサービスを提供する多数のアプリケーション・プログラムが格納されている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ローミング・ユーザ、つまりリモートでワークステーションに訪れ、アクセスするユーザは、いくつかの問題に直面している。プログラム設計者は、ローミング・ユーザが通信リンクを確立し、リモート・ワークステーションからローカル・コンピュータに必要な情報と必要なサービス・アプリケーション・プログラムをダウンロードすることができる通信手法を開発した。これらの手法を使用すると、ローミング・ユーザはリモート・ワークステーション上のデータを操作し、終了したら、その操作したデータをリモート・ワークステーションからローカル・コンピュータにアップロードして戻すことができる。しかし、低速のコンピュータと低速の通信チャネルでは、大きなファイルやプログラムをダウンロードするのは非常に時間がかかる作業となる。さらに、安全でないチャネルでファイルとプログラムをダウンロードすると、ダウンロードしたデータの完全性と機密性をひどく脅かすことになる。
【０００４】
データの一貫性も、ローミング・ユーザにとって重要な問題である。たとえば、ドキュメントの独立に修正できる複数のコピーを維持するときに、ユーザは古いバージョンを使用するおそれがある。ユーザが非一貫性に気づかないうちに、当事者間の誤った通信またはデータの喪失が起こっている可能性がある。この場合、ユーザは、一貫性に欠けるこのバージョンを調和させることを試み、誤った通信に対処することに、より長い時間を費やさなければならない。
【０００５】
データの非一貫性の問題は、ドキュメントの複数のコピーを異なるネットワーク位置に保持しているときにはさらに深刻化する。たとえば、従来型のファイアウォール技法などのネットワーク・セキュリティ・システムが置かれていると、ユーザはこれらのネットワーク位置のうちの特定の位置にしかアクセスできない場合がある。他のサイトにアクセスできなければ、ユーザはアクセス可能なサイト上のバージョンが最新のドラフトであることを確認することができない。
【０００６】
また、異なるベンダのアプリケーション・プログラムを使用するときにもデータ一貫性の問題が発生することがある。たとえば、Ｎｅｔｓｃａｐｅ  ＮａｖｉｇａｔｏｒTMのウェブ・エンジンとＩｎｔｅｒｎｅｔ  ＥｘｐｌｏｒｅｒTMのウェブ・エンジンはそれぞれ、興味のあるウェブ・サイトへのクイック・リファレンス用にブックマークを保存する。しかし、それぞれのウェブ・エンジンは異なるフォーマットを使用しており、ブックマークを異なるファイルに保存するため、ブックマークに互換性がない。さらに、一方のウェブ・エンジンは必要なブックマークを保存できるが、他方はそうではない。たとえば、ユーザが家庭ではＩｎｔｅｒｎｅｔ  ＥｘｐｌｏｒｅｒTMのウェブ・エンジンを実行し、職場ではＮｅｔｓｃａｐｅ  ＮａｖｉｇａｔｏｒTMのウェブ・エンジンを実行する場合、それぞれのロケーションでブックマークの非一貫性が生じることになる。
【０００７】
したがって、複数のユーザが過剰なユーザ時間を費やさず、データの完全性と機密性をひどく脅かさず、データ一貫性を損なわずに、リモートでコンピュータ・サービスにアクセスできるようにするシステムと方法が必要である。
【課題を解決するための手段】
【０００８】
本発明は、コンピュータ・ネットワーク内でサービスと統一（同期）ワークスペース要素に対する大域的かつ安全なアクセスを可能にするシステムと方法を実現する。ユーザは、インターネットなどのコンピュータ・ネットワークを介して大域サーバに接続され、ウェブ・エンジンを利用できる端末を使用して大域サーバにアクセスすることができる。
【０００９】
クライアントは、コンピュータ・ネットワークを介して大域サーバに結合されており、ワークスペース・データの第１のセットを格納している。クライアントは、ワークスペース・データの第１のセット（ワークスペース要素を含む）の選択された部分を大域サーバに同期するように構成されている。大域サーバは、その選択された部分の修正可能なコピーを独立に格納する。大域サーバは、さらに、大域サーバに直接送信されたｅメールなどのクライアントから受信していないワークスペース・データも格納できる。したがって、大域サーバはワークスペース・データの第２のセットを格納する。大域サーバは、ユーザがリモート端末からアクセスしようとする試みを識別して認証するように構成されており、またクライアント上に格納されているワークスペース・データの第１のセットまたは大域サーバ上に格納されているワークスペース・データの第２のセットのいずれかへのアクセスをクライアント構成に基づいて行うように構成されている。大域サーバは複数のクライアントを管理し、クライアント間のワークスペース・データの同期を取ることができることは理解されるであろう。
【００１０】
ｅメール管理、ブックマークのアクセス、カレンダ操作、ネットワーク・アクセスなどのサービスを管理するためのサービス・エンジンは、クライアント、大域サーバ、あるいは他のコンピュータなど、コンピュータ・ネットワーク内のどこにでも格納することができる。大域サーバは、ユーザがサービスにアクセスできるように構成され、認証管理またはユーザ選択設定のレベルに応じて、使用可能なサービス群の一部のみを含む。サービス要求をクライアントから受信すると、大域サーバは構成情報を送信して、サービスへアクセスできるようにする。
【００１１】
各クライアントは基本システムを備え、大域サーバは同期エージェントを備える。基本システムと同期エージェントは自動的に、安全な接続を確立し、クライアント上に格納されているワークスペース・データの第１のセットの選択された部分と大域サーバ上に格納されているワークスペース・データの第２のセットの同期をとる。基本システムは、クライアント上で動作し、選択された部分を検査して、最後に同期をとってからワークスペース要素が修正されているかどうかを判定する。同期エージェントは大域サーバ上で動作し、第２のセット内のワークスペース要素が修正されているかどうかを基本システムに通知する。修正バージョンを交換して、ワークスペース要素の更新されたセットが両方のロケーションに格納され、またリモート・ユーザが更新されたデータベースにアクセスできるようにする。２つのバージョンに食い違いが存在する場合、基本システムは内容を検査し、好ましいバージョンを生成するなどの対応処置を講じ、これらを両方のロケーションに格納する。システムはさらに、予め定められている基準が満たされたときに相互接続と同期化を開始するクライアント・サイト（ファイアウォールで保護してよい）に同期開始モジュールを備えることができる。
【００１２】
本発明の方法はクライアントと大域サーバとの通信リンクを確立するステップを含む。この方法は、ユーザ要求に基づいてクライアントとサービスとの通信リンクを確立するステップを含む。この方法は、構成データを受信し、その構成データを使用して、オペレーティング・システム、ウェブ・エンジン、およびその他の構成要素などのクライアント構成要素を設定する。クライアント構成要素を設定することにより、クライアントはサービスと通信し、クライアント上にユーザおよびサービス固有ユーザ・インタフェースを実装する。通信リンクを確立するステップは、さらに、アクセス特権を確認するステップを含むこともできる。
【００１３】
他の方法では、大域トランスレータを使用してワークスペース要素の同期をとる。この方法は、同期をとるワークスペース要素を選択するステップと、クライアントと大域サーバとの通信リンクを確立するステップと、クライアントと大域サーバ上の各ワークスペース要素のバージョン情報を検査して最後の同期以降に修正されたワークスペース要素を判定するステップを含む。この方法は、対応するバージョンを比較し、対応処置を実行することにより続行する。対応処置は、両方のストアに好ましいバージョンを格納するステップ、またはコンテンツ・ベースの分析を用いてバージョンを調和させるステップを含むことができる。
【発明の効果】
【００１４】
本発明のシステムと方法には、安全な大域的にアクセス可能な第三者、つまり大域サーバを提供できるという有利な特徴がある。このシステムと方法は、ユーザが大域サーバに、したがってワークスペース・データにリモートから、安全にアクセスできる安全な手法を提供する。大域ファイアウォール、識別サービス、およびセキュリティ・サービスは大域サーバ側で実行するため、企業は比較的機密性のある情報を大域サーバ上に格納し、許可されたクライアントに使用させることができる。けれども、本発明ではさらに、企業は大域サーバ上に機密情報の一部のみを維持できるため、大域サーバが損なわれても損失は一部に限られる。さらに、大域サーバには、クライアント・プロキシとして動作し、サービスへのアクセスの制御、鍵の使用のロギング、および資源へのアクセスのロギングを行えるという利点もある。
【００１５】
職場、家庭、オフサイトおよび大域サーバ・サイトを維持するクライアント・ユーザは、ワークスペース・データやその一部をこの４サイトすべてで安全に同期をとることができる。さらに、予め定められている基準（同期開始モジュールが同期をいつ開始するかを制御する）を設定することで、ユーザの通勤途中などに予め定められている時刻に、あるいはユーザ・ログオフやユーザ・ログオンなどの予め定められているユーザ操作の後に、一般同期モジュールがユーザ要求に応じてワークスペース・データの同期をとることができる。このシステムと方法はインターネット上で動作するため、システムはインターネットを利用できるスマート・フォン、テレビ・セットトップ（たとえば、ウェブＴＶ）など、ウェブ・エンジンを搭載した接続端末を使用してアクセスすることが可能であり、距離に関係なくアクセスできる。このシステムと方法はフォーマット変換機能を備えるので、異なるアプリケーション・プログラムと異なるプラットフォーム間のワークスペース要素のマージが可能である。さらに、同期はファイアウォールの内側から開始されるため、入ってくる通信と、出て行く通信の一部のプロトコルのみを禁止する典型的なファイアウォールはワークスペース要素同期化の障害にはならない。
【００１６】
さらに、ローミング・ユーザが大域サーバからワークスペース・データにアクセスできるようにしたり、クライアントからワークスペース・データにアクセスするサービスにアクセスできるようにすることができる。たとえば、ユーザは個人情報を大域サーバに格納したくないが、情報にリモート・アクセスしたいという場合がある。さらに、大域サーバが損なわれた場合に備えてセキュリティを高めるため、ユーザは職場のクライアント上に機密度の高いワークスペース要素を格納したい場合がある。
【００１７】
本発明は、さらに、情報に緊急アクセスする必要のあるローミング・ユーザにとっても都合がよいと思われる。ローミング・ユーザは、クライアントを制御する管理情報システム（ＭＩＳ）管理者に、クライアント上の情報にアクセスするための適切な鍵を大域サーバに用意するよう要求することができる。一時的なアクセスのみが望ましければ、鍵を後で自動的にあるいは要求に応じて破壊することができる。それとは別に、ＭＩＳ管理者は同期をとるワークスペース要素として必要な情報を選択し、大域サーバとの即時同期を要求することができる。したがって、大域サーバおよびクライアントは、必要な情報の同期をとり、ユーザは同期の完了後、大域サーバの情報にアクセスすることができる。
【００１８】
さらに、本発明のシステムと方法を使用すると、鍵、使用可能なサービス、および対応するサービス・アドレスの同期をとり、ワークスペース・データおよびサービスのアクセス性を更新することができる。たとえば、クライアントのユーザが、電子証明を必要とするインターネット上のサイトにアクセスし、ユーザがその証明を入手する場合、本発明のシステムと方法により、新規取得証明と大域サーバ上に格納されている鍵と同期をとることができる。したがって、ユーザは、その情報を大域サーバに与えるために、大域サーバに連絡する必要がない。同期手段が自動的に情報の同期をとる。
【図面の簡単な説明】
【００１９】
【図１】本発明によるリモートからアクセスできデータの同期をとる安全なネットワークを示すブロック図である。
【図２】図１のリモート端末の詳細を示すブロック図である。
【図３】図１の大域サーバの詳細を示すブロック図である。
【図４】図１の同期エージェントの詳細を示すブロック図である。
【図５】大域フォーマットによるブックマークの例を視覚的に表したものである。
【図６】図３の構成データを視覚的に表したものである。
【図７】図１のクライアントの詳細を示すブロック図である。
【図８】図１の基本システムの詳細を示すブロック図である。
【図９】サービス・リストの例を示す図である。
【図１０】リモートから安全なサーバにアクセスする方法を示す流れ図である。
【図１１】クライアントと大域サーバとのリンクを作成する図１０のステップの詳細を示す流れ図である。
【図１２】第１の実施形態におけるサービスにアクセスするための図１０のステップの詳細を示す流れ図である。
【図１３】第２の実施形態におけるサービスにアクセスするための図１０のステップの詳細を示す流れ図である。
【図１４】第３の実施形態におけるサービスにアクセスするための図１０のステップの詳細を示す流れ図である。
【図１５】安全なネットワーク上でワークスペース要素の複数のコピーの同期をとるための方法を示す流れ図である。
【発明を実施するための形態】
【００２０】
図１は、通信チャネル１１０を介して大域サーバ１１５に結合されるリモート・コンピュータ端末１０５などの第１のサイトを含む、ネットワーク１００を説明するブロック図である。次に大域サーバ１１５は、通信チャネル１２０を介して、ローカル・エリア・ネットワーク（ＬＡＮ）１２５などの第２のサイトに結合され、また通信チャネル１２２を介してクライアント１６７などの第３のサイトに結合される。通信チャネル１１０、通信チャネル１２０、通信チャネル１２２は、インターネットなどのコンピュータ・ネットワークの構成要素と呼んでかまわない。大域サーバ１１５は、大域ファイアウォール１３０によって保護され、ＬＡＮ  １２５はＬＡＮファイアウォール１３５によって保護されている。
【００２１】
ＬＡＮ  １２５は、クライアント１６５を備え、クライアント１６５はワークスペース・データ１８０（ｅメール・データ、ファイル・データ、カレンダ・データ、ユーザ・データなど）と大域サーバ１１５とを同期させるためのベース・システム１７０を含み、またスケジューリング、ｅメール、ページング、ワードプロセッシングなどのコンピュータ・サービスを提供するサービス・エンジン１７５を備えることもできる。当業者であれば、ワークスペース・データ１８０はアプリケーション・プログラムなどの他の種類のデータを含むことができることを認識するであろう。ワークスペース・データ１８０はそれぞれ、ワークスペース要素に分割することができ、それぞれのワークスペース要素は特定のバージョン情報７８２（図７）によって識別できることもさらに理解されるであろう。たとえば、それぞれのｅメール、ファイル、カレンダなどを「ワークスペース・データ内のワークスペース要素」と呼ぶことができる。簡単のため、クライアント１６５上のそれぞれのワークスペース要素のことを、ここではフォーマットＡで格納されているという。さらに、ワークスペース・データ１８０またはその一部をクライアント１６５、ＬＡＮ  １２５内の他のシステム、または大域サーバ１１５に接続されている他のシステム（図には示されていない）などのローカルの異なる位置に格納することができることも理解されるであろう。
【００２２】
クライアント１６７はクライアント１６５に似ている。ただし、クライアント１６７上に格納されているワークスペース・データをフォーマットＢで格納されているといい、これはフォーマットＡと同じであっても、異なっていてもよい。クライアント１６５に関して上述および後述するすべてことも、クライアント１６７に関して当てはめることができる。たとえば、クライアント１６７はリモート端末１０５からアクセス可能なサービス（図には示されていない）を備えたり、ワークスペース要素を大域サーバ１１５などに同期させるためのベース・システム（図に示されていない）を備えるといったことも可能である。
【００２３】
大域サーバ１１５は、ファイアウォールを介したサービスへの安全なアクセスを許可されたユーザにのみ提供するためのセキュリティ・システム１６０を備える。セキュリティ・システム１６０は、識別および認証のサービスを実行し、それに応じて、識別と認証のレベルに基づいて複数のアクセス・レベルを使用可能にすることができる。大域サーバ１１５はさらに、構成データ３５６（図３および６）をリモート端末１０５にダウンロードしてオペレーティング・システム２７０（図２）、ウェブ・エンジン２８３（図２）、アプレット・エンジン２９０（図２）などのリモート端末１０５の構成要素を構成する構成システム１５５を備える。構成システム１５５は構成データ３５６を使用して、リモート端末１０５がサービス・エンジン１７５によって提供されるサービスにアクセスし、ユーザおよびサービスに固有なユーザ・インタフェースを実現できるようにする。
【００２４】
大域サーバ１１５は、ワークスペース・データ１８０の選択された部分のそれぞれの選択されたワークスペース要素の独立に修正可能なコピーを含む、ワークスペース・データ１６３を格納する。したがって、ワークスペース・データ１６３はそれぞれの対応するバージョン情報７８２（図７）の独立に修正可能なコピーを含む。ワークスペース・データ１６３はさらに、大域サーバ１１５に直接送信されたｅメールなどの元は大域サーバ１１５上にあるワークスペース要素または他のクライアント（図には示されていない）からダウンロードしたワークスペース要素も含むことができる。大域サーバ１１５は、大域トランスレータ１５０によってフォーマットＡとフォーマットＢとの間で簡単に変換できるように選択された「大域フォーマット」と呼ばれるあるフォーマットでワークスペース・データ１６３を保持する。フォーマットＡとフォーマットＢについては、当業者であれば、大域フォーマットは実際にはそれぞれの情報タイプの大域フォーマットを含むことを理解するであろう。たとえば、ブックマーク（図５）用の大域フォーマット、ファイル用の大域フォーマット、カレンダ・データ用の大域フォーマット、ｅメール用の大域フォーマットなどがありえる。
【００２５】
大域サーバ１１５はさらに、ワークスペース・データ１６３のワークスペース要素を検査するための同期エージェント１４５を備える。さらに詳しく述べると、ここでは「同期手段」と総称するベース・システム１７０と同期エージェント１４５は協動して作業データ１６３をワークスペース・データ１８０の選択された部分に同期させる。同期手段は、ワークスペース要素（たとえば、特定のワードプロセッサ・ドキュメント）を個別に同期させたり、ワークスペース要素フォルダ（たとえば、ブックマーク・フォルダ）を同期させることができる。一般に、ベース・システム１７０はＬＡＮ１２７内のワークスペース・データ１８０の選択された部分を管理し、同期エージェント１４５は大域サーバ１１５内のワークスペース・データ１６３の選択された部分を管理する。大域トランスレータ１５０は同期手段と協動してフォーマットＡ（またはフォーマットＢ）と大域フォーマットとの間の変換を行うことが理解されるであろう。さらに、大域サーバ１１５はワークスペース・データ１６３をワークスペース・データ１８０とクライアント１６７上のワークスペース・データ（図には示されていない）に同期させることができることも理解されるであろう。したがって、ワークスペース・データ１６３はクライアント１６７上のワークスペース・データ（図には示されていない）に簡単に同期させることができる。
【００２６】
リモート端末１０５はウェブ・エンジン１４０を備え、このエンジンは大域サーバ１１５に要求を送信し、表示する情報を大域サーバ１１５から受信する。ウェブ・エンジン１４０はハイパーテキスト転送プロトコル（ＨＴＴＰ）およびハイパーテキスト・マークアップ言語（ＨＴＭＬ）を使用して、大域サーバ１１５とインタフェースする。ウェブ・エンジン１４０は、実行したときに大域サーバ１１５にアクセスするセキュリティ・インタフェースとして動作し、要求されたサービスとのアプリケーション・インタフェースとして動作するアプレットを実行できるようになっていてもよい。本発明を使用すると、ユーザはインターネットに接続されているリモート・クライアント１０５を操作し、大域サーバ１１５にアクセスすることができ、それにより、大域サーバ１１５上のサービスおよびワークスペース・データまたは大域サーバ１１５によってアクセスできるサービスおよびワークスペース・データにアクセスすることができる。
【００２７】
図２は、中央処理装置（ＣＰＵ）２１０としてＭｏｔｏｒｏｌａ  Ｐｏｗｅｒ  ＰＣTMマイクロプロセッサまたはＩｎｔｅｌ  ＰｅｎｔｉｕｍTMマイクロプロセッサを搭載しているリモート端末１０５の詳細を説明するブロック図である。キーボードおよびマウスなどの入力デバイス２２０および陰極線管（ＣＲＴ）ディスプレイなどの出力デバイス２３０は信号バス２３５を介してＣＰＵ  ２１０に結合される。通信インタフェース２４０、読み取り専用メモリ（ＲＯＭ）や磁気ディスクなどのデータ記憶装置２５０、およびランダム・アクセス・メモリ（ＲＡＭ）２６０は、さらに信号バス２３５を介してＣＰＵ  ２１０に結合される。通信インタフェース２４０は、図１に示されているように、通信チャネル１１０に結合される。
【００２８】
オペレーティング・システム２７０はＣＰＵ  ２１０による処理を制御するためのプログラムを備え、通常は、データ記憶装置２５０に格納され、実行時にＲＡＭ  ２６０（図に示されている）にロードされる。オペレーティング・システム２７０はさらに、通信インタフェースを２４０を介して通信チャネル１１０との間でメッセージ・パケットを生成しての転送するための通信エンジン２７５を備える。オペレーティング・システム２７０はさらに、大域サーバ１１５から受信した伝送制御プロトコル（ＴＣＰ）データ、ドメイン・ネーム・サーバ（ＤＮＳ）アドレスなどのＯＳ構成データ３５６（図３）に基づいてオペレーティング・システム２７０を設定するオペレーティング・システム（ＯＳ）構成モジュール２７８を備える。
【００２９】
オペレーティング・システム２７０はさらに、大域サーバ１１５と通信するためのウェブ・エンジン１４０を備える。ウェブ・エンジン１４０は、大域サーバ１１５から受信した構成データ３５６に基づいてホーム・ページ・アドレス、ブックマーク、キャッシュ・データ、ユーザ選択設定などのウェブ・エンジン１４０の要素を設定するためのウェブ・エンジン（ＷＥ）構成モジュール２８６を備えることもできる。ウェブ・エンジン１４０はさらに、大域サーバ１１５との通信に暗号化手法を使用するための暗号化エンジン２８３も備えていてよい。ウェブ・エンジン１４０はさらに、セキュリティを実現するアプレットを含むダウンロードしたアプレットの実行を処理するためのアプレット・エンジン２９０も備えることができる。アプレット・エンジン２９０は、大域サーバ１１５から受信した構成データ３５６に基づいてアプレット・エンジン２９０の要素を設定するためのアプレット・エンジン（ＡＥ）構成モジュール２９５を備える場合もある。
【００３０】
図３は、中央処理装置（ＣＰＵ）３１０としてＭｏｔｏｒｏｌａ  Ｐｏｗｅｒ  ＰＣTMマイクロプロセッサまたはＩｎｔｅｌ  ＰｅｎｔｉｕｍTMマイクロプロセッサを搭載している大域サーバ１１５の詳細を説明するブロック図である。キーボードおよびマウスなどの入力デバイス３２０および陰極線管（ＣＲＴ）ディスプレイなどの出力デバイス３３０は信号バス３３５を介してＣＰＵ  ３１０に結合される。通信インタフェース３４０、読み取り専用メモリ（ＲＯＭ）や磁気ディスクなどのデータ記憶装置３５０、およびランダム・アクセス・メモリ（ＲＡＭ）３７０は、さらに信号バス３３５を介してＣＰＵ  ３１０に結合される。図１に示されているように、通信インタフェース３４０は、通信チャネル１１０と通信チャネル１２０に結合される。
【００３１】
オペレーティング・システム３８０はＣＰＵ  ３１０による処理を制御するためのプログラムを備え、通常は、データ記憶装置３５０に格納され、実行時にＲＡＭ  ３７０（図に示されている）にロードされる。オペレーティング・システム３８０はさらに、通信インタフェースを３４０を介して通信チャネル３４５との間でメッセージ・パケットを生成して転送するための通信エンジン３８２を備える。オペレーティング・システム３８０はさらに、リモート端末１０５が大域サーバ１１５が提供するウェブ・ページ９００（図９）のリスティング機能を表示できるように、ページ・データ３６８をリモート端末１０５に送信するウェブ・ページ・エンジン３９８も備える。他のウェブ・ページ・データ３６８にはセキュリティ方法の選択を表示するための情報も含んでいてもよい。
【００３２】
オペレーティング・システム３８０は、リモート端末１０５にアプレットを送信するためのアプレット・ホスト・エンジン３９５を含むことができる。構成エンジン３８９は、アプレット・ホスト・エンジン３９５とともに動作し、構成アプレット３５９と構成データとユーザ・データ３５６をリモート端末１０５に送信する。リモート端末１０５は、構成アプレット３５９を実行し、構成データとユーザ・データ３５６を使用して、リモート端末１０５の要素（たとえば、オペレーティング・システム２７０、ウェブ・エンジン１４０、およびアプレット・エンジン２９０）を設定する。構成データとユーザ・データ３５６は、図６を参照して詳しく説明される。
【００３３】
オペレーティング・システム３８０はさらに、図１を参照して説明されている同期エージェント１４５を備える。同期エージェント１４５は大域サーバ１１５上のワークスペース・データ１６３をクライアント１６５上のワークスペース・データ１８０に同期させる。図１に関して上で説明したように、大域トランスレータ１５０はクライアント１６５で使用するフォーマットＡと大域サーバ１１５で使用する大域フォーマットとの変換を行う。
【００３４】
オペレーティング・システム３８０はさらに、クライアント１６５またはリモート端末１０５との安全な通信リンクを確立するよう通信エンジン３８２に指示するかどうかを決定し、ユーザのアクセス権を判定するためのセキュリティ・エンジン３９２も備えることができる。たとえば、セキュリティ・エンジン３９２はクライアント１６５またはリモート端末１０５にセキュリティ・アプレット３６２を転送し、このアプレットは、受信者側が実行すると、ユーザをポーリングし、大域サーバ１１５に応答を返す。大域サーバ１１５はこの応答を検査して、ユーザを識別し、認証することができる。
【００３５】
たとえば、クライアント１６５が大域サーバ１１５にアクセスしようとしたときに、セキュリティ・エンジン３８４は、大域サーバ１１５が特定のポートから届いた通信を受け入れるかどうかを決定する。受け入れるのであれば、セキュリティ・エンジン３９２は通信エンジン３８２がクライアント１６５への通信チャネル３４５を開けるようにする。受け入れない場合には、チャネルを開かない。チャネルを開いた後、セキュリティ・エンジン３９２は認証セキュリティ・アプレット３６２をリモート端末１０５に転送して、ユーザをポーリングして、ユーザＩＤやパスワードなどの識別および認証情報を得る。認証セキュリティ・アプレット３６２は応答を生成して、大域サーバ１１５に返し、大域サーバ１１５はこの情報を使用して、ユーザの素性を確認し、それに応じてアクセス権を与える。
【００３６】
リモート端末１０５またはクライアント１６５にサービスを提供するときには「要求処理エンジン」は構成エンジン３８９とアプレット・ホスト・エンジン３９５であってよいことは理解されるであろう。要求処理エンジンは、大域サーバ１１５から直接ワークスペース・データ１６３の取得操作を実行するときにウェブ・ページ・エンジン３９８とすることができる。要求処理エンジンは、クライアント１６５からあるいは大域サーバ１１５に接続されている他のサイトからワークスペース・データ１８０取得操作を実行するときには構成エンジン３８９とアプレット・ホスト・エンジン３９５であってよい。要求処理エンジンは、ユーザの識別および認証などのセキュリティ・サービスを実行するときには、セキュリティ・エンジン３９２であってよい。要求処理エンジンは、クライアント１６５との同期処理を実行するときには、同期エージェントであってよい。さらに、要求処理エンジンはこれらの構成要素のいかなる組み合わせであってもよい。
【００３７】
図４は、通信モジュール４０５および汎用同期モジュール４１０を含む同期エージェント１４５の詳細を説明するブロック図である。通信モジュール４０５は、データを圧縮するルーチンとベース・システム１７０と通信チャネル１２０を介して通信するルーチンを備える。通信モジュール４０５はさらに、大域ファイアウォール１３０とＬＡＮファイアウォール１２５を介してチャネルを安全に通信するためのルーチンを備えることができる。
【００３８】
汎用同期モジュール４１０は、ワークスペース要素が同期しているかどうかを判定するルーチンと最後に同期をとった後に修正すべきと判断された要素のベース・システム１７０にバージョン情報（図には示されていない）を転送するためのルーチンを備える。汎用同期モジュール４１０は、自分の最後の同期署名（図には示されていない）を維持するか、ベース・システム１７０から同期要求とともに最後の同期署名のコピーを受信するか、またはワークスペース・データが同期していることを保証する他の手段を実行することができる。汎用同期モジュール４１０はさらに、ベース・システム１７０からワークスペース・データ１８０のワークスペース要素の好ましいバージョンを受信するルーチンと、ベース・システム１７０にワークスペース・データ１８０のワークスペース要素の好ましいバージョンを転送するルーチンを備える。
【００３９】
図５は、大域フォーマットによるブックマークワークスペース要素の例を示している。トランスレータ１５０は、取り込まれているすべてのフォーマット間の変換に必要なすべての情報を取り込んでいる。たとえば、第１のクライアントに対して、フォーマットＡのブックマークが要素Ｘ、Ｙ、およびＺを必要とし、第２のクライアントに対して、フォーマットＢのブックマークが要素Ｗ、Ｘ、およびＹを必要とする場合、大域トランスレータ１５０はＷ、Ｘ、Ｙ、およびＺを取り込んで、大域フォーマットでブックマークを生成する。さらに、トランスレータ１５０は、最終変更日などの、同期手段（図４において後述）が必要とする情報を取り込む。したがって、大域フォーマットのブックマークはユーザ識別番号（ＩＤ）  ５０５、エントリＩＤ  ５１０、親ＩＤ  ５１５、フォルダＩＤフラグ５２０、名前５２５、説明５３０、ユニフォーム・リソース・ロケータ（ＵＲＬ）５３５、位置５４０、削除ＩＤフラグ５４５、最終変更日５５０、作成日５５５、および分離ＩＤフラグ５６０を含む。
【００４０】
図６は、構成データとユーザ・データ３５６の詳細を説明するブロック図である。構成データ３５６は、ＴＣＰデータおよびＤＮＳアドレスなどの設定６０５、ホーム・ページ・アドレス、ブックマーク、およびキャッシュ・データなどのウェブ・ブラウザ設定、アプレット・エンジン設定、およびユーザのｅメール・アドレス、名前、署名ブロックなどのアプレット構成データを含む。サービスがユーザの自分のローカル・クライアント１６５上に置かれていない場合があるためアプレット固有の構成データとユーザ・データ３５６が必要であることは理解されるであろう。構成データとユーザ・データ３５６はさらに、フォント、ウィンドウ・サイズ、テキスト・サイズなどの予め定められたユーザ選択設定６１０を含む。
【００４１】
構成データ３５６はさらに、ユーザに提供されるサービス６１５のセットも含む。サービス６１５は、登録ユーザのリストとユーザの好みの使用可能なサービス６１５の各ユーザのリストを含む。サービスはさらに、サービス６１５にアクセスするのに必要な認証レベルのリストを含むことができる。構成データとユーザ・データ３５６はさらに、大域サーバ１１５を介してアクセス可能なそれぞれのサービス６１５の位置を指定するサービス・アドレス６２０を含む。
【００４２】
図７は、それぞれ信号バス７４０に結合されているＣＰＵ  ７０５、入力デバイス７１０、出力デバイス７２５、通信インタフェース７１０、データ記憶装置７２０、およびＲＡＭ  ７３０を含むクライアント１６５の詳細を説明するブロック図である。
【００４３】
オペレーティング・システム７３５は、ＣＰＵ  ７０５による処理を制御するためのプログラムを備え、通常は、データ記憶装置７２０に格納され、実行時にＲＡＭ  ７３０（図に示されている）にロードされる。サービス・エンジン１７５は、バージョン情報（図には示されていない）を含むワークスペース・データ１８０を管理するサービス・プログラムを備える。サービス・エンジン１７５はさらに、データ記憶装置７２０に格納し、実行時にＲＡＭ  ７３０（図に示されている）にロードすることができる。ワークスペース・データ１８０は、データ記憶装置３３０に格納できる。図１を参照しながら上で説明したように、ベース・システム１７０はクライアント１６５上のワークスペース・データ１８０を大域サーバ１１５上のワークスペース・データ１６３に同期させるように動作する。ベース・システム１７０は、さらに、データ記憶装置７２０に格納し、実行時にＲＡＭ  ７３０（図に示されている）にロードすることができる。ベース・システム１７０は、図８を参照してさらに詳しく説明される。
【００４４】
図８は、通信モジュール８０５、ユーザ・インタフェース・モジュール８１０、ロケータ・モジュール８１５、同期開始（「同期開始」）モジュール８２０、汎用同期モジュール８２５、およびコンテンツ・ベース同期モジュール８３０を備える、ベース・システム１７０の詳細を説明するブロック図である。簡単のため、各モジュールは信号バス８４０を介して互いに更新するものとして説明している。ベース・システム１７０は同期エージェント１４５に含まれるものと同じ構成要素を備えることは理解されるであろう。
【００４５】
通信モジュール８０５は、データを圧縮するルーチンと、通信インタフェース７１０（図７）を介して同期エージェント１４５（図１）と通信するルーチンを備える。通信モジュール８０５は、セキュア・ソケット・レイヤ（ＳＳＬ）技術とユーザ識別および認証手法（つまり、電子証明）を適用して、ＬＡＮファイアウォール１３５および大域ファイアウォール１３０を介して安全な通信チャネルを確立するルーチンを備えることができる。同期はＬＡＮファイアウォール１３５内から開始し、ハイパーテキスト転送プロトコル（ＨＴＴＰ）などの一般に利用可能なプロトコルを使用するので、一般にインバウンド通信とある種のアウトバウンド・プロトコルを阻害する代表的なファイアウォール１３５は、ｅメール同期の障害とはならない。通信モジュール８０５の例として、ＴＣＰ／ＩＰスタックやＡｐｐｌｅＴａｌｋTMプロトコルがある。
【００４６】
ユーザ・インタフェース８１０は、ユーザと通信するためのルーチンを備え、従来型のグラフィカル・ユーザ・インタフェース（ＧＵＩ）を備えてもよい。ユーザ・インタフェース８１０は、ここで説明したように、クライアント１６５構成要素と調整しながら動作する。
【００４７】
ロケータ・モジュール８１５は、ワークスペース・データ１８０内のワークスペース要素のメモリ位置と、ワークスペース・データ１６３内のワークスペース要素のメモリ位置を識別するためのルーチンを備える。ワークスペース要素のメモリ位置の識別は、インテリジェント型ソフトウェア、つまりプリセットされたメモリ・アドレスまたはシステムのレジストリを使用するか、またはダイアログ・ボックスを使用してユーザに問い合わせるように実施される。ロケータ・モジュール８１５は、システム起動時または大域サーバ１１５との通信後にワークスペース要素のメモリ位置識別を実行して、ワークスペース要素の更新されたメモリ位置を保持できることは理解されるであろう。
【００４８】
同期開始モジュール８２０は、ワークスペース・データ１６３およびワークスペース・データ１８０の同期処理を開始する時期を決定するルーチンを備える。たとえば、同期開始モジュール８２０は、ユーザから要求があったとき、特定の時刻に、予め定められた期間の経過後、予め定められている変更回数の後、ユーザのログオフなどのユーザ操作の後、または同様の基準が満たされたときに、データ同期処理を開始することができる。同期開始モジュール８２０は、汎用同期モジュール８２５にルーチンの開始を指令することにより、データ同期処理を開始する。代表的ＬＡＮ  ファイアウォール１２５ではインバウンド通信を妨げ、アウトバウンド通信を許可するため、同期エージェント１４５との通信はＬＡＮ  １２５内から開始するのが好ましいことは理解されるであろう。
【００４９】
汎用同期モジュール８２５は、同期エージェント１４５（図１）にバージョン情報を要求するルーチンと、修正されたバージョンを判定する最終同期日時などの最後の同期署名８３５と突き合わせてバージョン情報を比較するルーチンを備える。汎用同期モジュール８２５はさらに、特定のワークスペース要素の一方のバージョンのみまたは両方のバージョンが修正されているかどうかを判定するためにローカル・バージョンとリモート・バージョンを比較するルーチンと、適切な同期応答アクションを実行するルーチンを備える。適切な同期応答アクションには、ワークスペース・データ１８０内のワークスペース要素の修正されたバージョン（好ましいバージョン）を転送するステップまたは変更の編集だけを他のストアに転送するステップを含むことができる。他の適切な同期応答アクションには、２つの修正されたバージョン間の調和が必要な場合に、コンテンツ・ベース同期モジュール８３０にルーチンの実行を指令するステップを含むこともできる（後述）。
【００５０】
同期エージェント１４５は好ましくはローカルのバージョン情報１２４を検査し、最後の同期署名８３５以降に修正された要素のみを転送することは理解されるであろう。この手法により、プロセッサの計算能力を効率的に利用し、通信チャネル７１２で不要なデータを転送することを避けられる。そこでＬＡＮ  １３５内の汎用同期モジュール８２５は、データ要素を比較して、調和が必要かどうかを判断する。データ同期が完了したら、汎用同期モジュール８２５は最後の同期署名８３５を更新する。
【００５１】
コンテンツ・ベース同期モジュール８３０は、同じワークスペース要素内でワークスペース・データ１６３、１８０の２つ以上の修正されたバージョンを調和させるルーチンを備える。たとえば、最後の同期以来、元のユーザワークスペース要素とそのコピーが両方とも独立に修正されている場合、コンテンツ・ベース同期モジュール８３０は適切な応答アクションを決定する。コンテンツ・ベース同期モジュール８３０は、修正されたバージョンのうち好ましいものを選択するようユーザに要求するか、予め定められているユーザ選択設定に基づいて、つまり両方のストアに両方のバージョンを格納するか、または変更を単一の好ましいバージョンに統合し両方のストアでそれぞれの修正されたバージョンを置き換えることにより応答することができる。両方のバージョンが両方のストアに格納されている場合、ユーザに好ましいバージョンを選択するよう助言できるように、それぞれのバージョンに他のバージョンへのリンクを含めることができる。
【００５２】
同期を望んでいるクライアント１６５はベース・システム１７０であってよいことは理解されるであろう。それとは別に、１つのベース・システム１７０で複数のクライアント１６５を管理することもできる。さらに、スマート電話などの計算能力が限られているシン・クライアント１６５については、すべての同期は、大域サーバ１１５によって実行できることは理解されるであろう。したがって、ユーザ・インタフェース・モジュール８１０、ロケータ・モジュール８１５、汎用同期モジュール８２５、およびコンテンツ・ベース同期モジュール８３０などのベース・システム１７０の構成要素は、大域サーバ１１５上に置くことができる。クライアント１６５から同期処理を開始するために、クライアント１６５は通信モジュール８０５と同期開始モジュール８２０を備える。
【００５３】
図９は、大域サーバ１１５のウェブ・エンジン３９８によって維持されるような、ＵＲＬでアドレス指定可能なハイパーテキスト・マークアップ言語（ＨＴＭＬ）ベースのウェブ・ページによって提供されるアクセス可能サービスのリスト例９００である。リスト９００には、表題９１０「リモート・ユーザのホーム・ページ」、提供されるサービス６１５の一覧、および提供されるサービス６１５のうち選択されたサービスに対するポインタ９７０が含まれる。図からわかるように、提供されるサービスはｅメール・サービス９２０、カレンダ・サービス９３０、インターネット・アクセス・サービス９４０、ページング・サービス９５０、ファクス送信サービス９６０、ユーザ認証サービス９６３、およびワークスペース・データ取り出しサービス９６７を備えることができる。図には示されていないが、ブックマーキング、ＱｕｉｃｋＣａｒｄTMなどの他のサービスもリスト９００に含めることができる。ウェブ・ページはリスト９００にあるサービス６１５を提供するが、円グラフや表などの他のデータ構造もそれとは別に使用することができる。
【００５４】
図１０は、ユーザがコンピュータ・ネットワーク１００内でサービス６１５にアクセスできるようにする方法１０００を説明する流れ図である。方法１０００はステップ１００５でリモート端末１０５により開始し、大域サーバ１１５との通信リンクを確立する。大域サーバ１１５はステップ１０１０で、大域サーバ１１５の機能にアクセスする特権がユーザにあることを確認する。ユーザ・アクセス特権を確認するステップには、ユーザ証明を検査するステップ、秘密パスワードを取得するステップ、電子署名技術を使用するステップ、チャレンジ／応答手法を実行するステップなどが含まれていてもよい。セキュリティ・エンジン３９２により、アプレット・ホスト・エンジン３９５は通信チャネル３４５を介してリモート端末１０５に、実行したときに大域サーバ１１５と通信してユーザの認証を行う認証セキュリティ・アプレット３６２を転送することができることは理解されるであろう。
【００５５】
ユーザ・アクセス特権が確認されると、大域サーバ１１５のウェブ・ページ・エンジン３９８はステップ１０１５で、ウェブ・ページ・データ３６８と構成データとユーザ・データ３５６をリモート端末１０５に送信する。リモート端末１０５のウェブ・エンジン１４０はステップ１０２０で、ウェブ・ページ・データ３６８と構成データとユーザ・データ３５６を使用して、出力デバイス２３０上にウェブ・ページ・サービス・リスト９００（図９）を表示し、大域サーバ１１５で提供するサービス６１５にアクセスできるようにする。サービス・リストの例９００は図９に関して示され、説明されている。
【００５６】
ウェブ・ページ９００上に一覧表示されているオプションから、ユーザはステップ１０２５で、入力デバイス２２０を介してサービス６１５を選択する。それに対する応答として、要求処理エンジン（図３を参照して説明している）は選択されたサービス６１５を提供する。たとえば、大域サーバ１１５のアプレット・ホスト・エンジン３９５はステップ１０３０で、リモート端末１０５に、対応するアプレット３５９と構成データおよびユーザ・データ３５６をダウンロードして、要求されたサービス６１５を実行することができる。それとは別に、ウェブ・ページ・エンジン３９８は、たとえば、ＨＴＴＰ、とＨＴＭＬを使用して、選択されたサービス６１５を提供することもできる。図６を参照して上で説明したように、構成データとユーザ・データ３５６は選択されたサービス６１５を設定するためにユーザのお気に入りのフォントなどのユーザ固有の選択設定を取り込むことができる。構成データとユーザ・データ３５６はさらに、格納されているブックマーク、カレンダ・データ、ページャ番号などのユーザ固有、サービス固有の情報を含むことができる。それとは別に、対応するアプレット３５９と構成データとユーザ・データ３５６は、ステップ１０１５でダウンロードされていると思われる。アプレット３５９によりサービスへのアクセスを提供するステップについて、図１２〜１４を参照して以下の段でさらに詳しく説明する。
【００５７】
リモート端末１０５のアプレット・エンジン２９０はステップ１０３５で、対応するダウンロードされたアプレットの実行を開始する。大域サーバ１１５はステップ１０４０で、選択されたサービス６１５を開始し、ステップ１０４５で、サービス６１５にアクセスするため図１２〜１４を参照して説明している３つのモードのうちの１つを選択する。たとえば、ユーザが別のファイアウォールで保護されていないサービス・サーバ（たとえば、クライアント１６５）上でサービス６１５を使用する場合、大域サーバ１１５はユーザに直接アクセスすることができる。ユーザがＬＡＮ  １２５内でサービス・サーバの提供するサービス６１５を選択した場合、大域サーバ１１５はユーザ用のプロキシとしてサービス６１５にアクセスすることができる。それぞれのファイアウォール１３０および１３５は、大域サーバ１１５で選択しなければならないアクセスの適切なモードを確立するポリシーを格納することができることは理解されるであろう。その他にも、アクセスのモードは、ユーザ選択設定、使用可能かどうか、実現可能かどうかによっても選択される。大域サーバ１１５はステップ１０５０で、選択されたモードを使用して、リモート端末１０５のユーザが選択されたサービス６１５にアクセスできるようにする。
【００５８】
図１１は、ステップ１１０５でリモート端末１０５が知られているユニフォーム・リソース・ロケータ（ＵＲＬ）を使用して大域サーバ１１５を呼び出すことで開始するステップ１００５の詳細を説明する流れ図である。大域サーバ１１５とリモート端末１０５はステップ１１０７で、場合によっては、セキュア・ソケット・レイヤ（ＳＳＬ）技術を応用することにより、安全な通信チャネルを確立する。つまり、大域サーバ１１５のセキュリティ・エンジン３９２はステップ１１１０で、安全なインバウンド通信が許されているかどうかを判定し、許されている場合に、リモート端末１０５との通信チャネルを確立するということである。リモート端末１０５のウェブ・エンジン１４０と大域サーバ１１５のセキュリティ・エンジン３９２はステップ１１１５で、場合によっては公開鍵証明を使用して、安全な通信チャネル・パラメータのネゴシエーションを行う。安全な通信チャネルの例として、ＲＣ４暗号を使用するＲＳＡがある。そこで、ステップ１１１５は、大域サーバ１１５とリモート端末１０５の両方に知られている暗号プロトコルを選択するステップを含むことができる。リモート端末１０５の暗号化エンジン２８３と大域サーバ１１５の安全な通信エンジン３９２はステップ１１２０で、安全なチャネル・パラメータを使用して、安全な通信チャネルを確立する。方法５０５はそこで終了する。
【００５９】
図１２は、大域サーバ１１５によって、リモート端末１０５がサービス６１５へ直接接続できるようにさせられることを特徴とする、ステップ１０５０ａという名前の、第１の実施形態におけるステップ１０５０の詳細を説明する流れ図である。ステップ１０５０ａは、ステップ１２０５でアプレット・エンジン２９０によって開始される。ステップ１２０５は、データ記憶装置３８０からサービス・アドレス６２０を取り出し、かつキーセーフ３６５から認証情報を取り出す選択されたサービス６１５に対して構成アプレット３５９を実行する。通信インタフェース３４０はステップ１２１０で、取り出されたサービス・アドレス６２０で大域サーバ１１５の通信インタフェース３４０との安全な直接接続を確立し、認証情報を使用して自己を認証する。アプレットはステップ１２１５で、サービス６１５とのＩ／Ｏインタフェースとして動作する。ステップ１０５０ａはそこで終了する。
【００６０】
図１３は、リモート端末１０５に対して大域サーバ１１５がサービス６１５へのプロキシとして動作する、ステップ１０５０ｂという名前の、第２の実施形態におけるステップ１０５０の詳細を説明する流れ図である。ステップ１０５０ｂは、構成アプレット３５９がステップ１３０５で選択されたサービス６１５のサービス・アドレス６２０を要求し、その結果サービス・アドレス６２０を取り出し、アプレット３５９を大域サーバ１１５に送ることから開始する。アプレット３５９はステップ１３１０で、大域サーバ１１５の通信インタフェース３４０との接続を確立する。大域サーバ１１５はステップ１３１５で、選択されたサービス６１５のサービス・アドレス６２０と選択されたサービス６１５の認証情報をキーセーフ３６５から取り出す。大域サーバ１１５の通信インタフェース３４０はステップ１３２０で、安全なチャネル・パラメータのネゴシエーションを行い、サービス・サーバ１０１４との安全なチャネルを確立する。通信インタフェース３４０はステップ１３２０で、さらに、自分自身をユーザとして認証する。
【００６１】
これ以降、アプレット３５９はステップ１３２５で、大域サーバ１１５の通信インタフェース３４０とのＩ／Ｏインタフェースとして動作する。大域サーバ１１５がステップ１３３０で、リモート端末１０５のユーザの要求を実行する権限がないと判断した場合、大域サーバ１１５はステップ１３４５で、方法１０５０ｂが終了するかどうか、たとえばユーザが終了したかどうかを判定する。終了している場合、方法１０５０ｂは終了する。終了していなければ、方法１０５０ｂはステップ１３２５に戻り、他の要求を取得する。大域サーバ１１５がステップ１３３０で、リモート端末のユーザの要求を実行する権限があると判断した場合、大域サーバ１１５はステップ１３４０で、サービス６１５に対するリモート端末１０５のプロキシとして動作する。大域サーバ１１５は、プロキシとして、サービス要求を選択されたサービス６１５に転送し、応答を現在リモート端末１０５上で実行中の要求側アプレット３５９に転送する。方法１０５０ｂはそこでステップ１３４５にジャンプする。
【００６２】
図１４は、要求されているサービス６１５が大域サーバ１１５上に置かれている、ステップ１０５０ｃという名前の、第３の実施形態におけるステップ１０５０の詳細を説明する流れ図である。ステップ１０５０は、アプレットがステップ１４０５で選択されたサービス６１５のサービス・アドレス６２０を取り出し、その結果大域サーバ１１５上のサービス６１５のサービス・アドレス６２０が構成アプレット３５９に送られることから開始する。こうして、アプレットはステップ１４１０で、大域サーバ１１５との安全な接続を確立する。リモート端末１０５はすでに、図１０のステップ１０１０を参照して説明しているように、大域サーバ１１５に対し自分自身を識別し認証しているので、識別および認証のステップを追加する必要はない。
【００６３】
ステップ１４１５で、サービス６１５が現在実行中かどうかの判定を行う。実行中であれば、ステップ１４２５で、サービス６１５が複数のユーザを取り扱えるかどうかの判定を行う。取り扱えるのであれば、大域サーバ１１５はステップ１４３０で、ユーザのインスタンスを作成し、アプレットはステップ１４４０で、大域サーバ１１５上のサービス６１５とのＩ／Ｏインタフェースとして動作する。方法１０５０ｃはそこで終了する。複数のユーザを取り扱えなければ、サービス６１５がステップ１４２５で、複数のユーザを取り扱えないと判断した場合、方法１０５０ｃはステップ１４４０に進む。さらに、ステップ１４１５で、サービス６１５が現在実行中でないと大域サーバ１１５が判断した場合、大域サーバ１１５はステップ１４２０で、サービス６１５を初期化し、ステップ１４２５に進む。
【００６４】
図１５は、大域トランスレータ１５０を使用してワークスペース・データ１６３とワークスペース・データ１８０を安全なネットワーク１００内で同期させる方法１５００を説明する流れ図である。方法１５００は、ユーザ・インタフェース９００がステップ１５０５で、同期手段で同期させるワークスペース・データ１６３とワークスペース・データ１８０のワークスペース要素に対するユーザによる選択を可能にすることから開始する。ロケータ・モジュール８１５はステップ１５１０で、ワークスペース・データ１６３とワークスペース・データ１８０内のワークスペース要素のメモリ位置を識別する。新しいワークスペース要素を大域サーバ１１５に追加した場合など、選択されたワークスペース要素が対応するメモリ位置を持たない場合には、１つ選択する。選択されたメモリ位置は、既存のワークスペース要素でも、新たなワークスペース要素でもよい。上記のように、ワークスペース要素のメモリ位置識別は、インテリジェント型ソフトウェアまたはダイアログ・ボックスを使用して実施することができる。汎用同期モジュール８２５はステップ１５１５で、ワークスペース要素の前の状態をヌル・セットに等しくなるように設定し、ワークスペース要素のすべての情報が追加されていることを示す。
【００６５】
同期開始モジュール８２０はステップ１５２０で、ステップ１５０５で選択されたワークスペース要素の同期を開始することを指示する予め定められている基準が満たされているかどうかを判定する。満たされていなければ、同期開始モジュール８２０はステップ１５２５で、待機し、ステップ１５２０にループ・バックする。満たされている場合、通信モジュール８０５と通信モジュール４０５はステップ１５３０で、安全な通信チャネルを確立する。
【００６６】
汎用同期モジュール８２５はステップ１５３５で、ワークスペース要素が修正されているかどうかを判定する。つまり、汎用同期モジュール８２５はステップ１５３５で、ワークスペース・データ１８０内の選択されたそれぞれのワークスペース要素のバージョン情報を最後の同期署名４３５と突き合わせて検査し、修正されたワークスペース要素を特定する。この比較するステップには、最後の修正日と最後の同期の日付とを比較するステップを含む、あるいは最後の交互作用の時点で現在の状態と前の状態を比較するステップを含むことができる。同様に、汎用同期モジュール８１５はワークスペース・データ１６３内の対応するそれぞれのワークスペース要素のバージョン情報と最後の同期署名４３５を検査して、修正されたワークスペース要素を特定する。
【００６７】
ステップ１５３５で、フォルダの修正されたワークスペース要素が特定されなかった場合、汎用同期モジュール８２５はステップ１５６０で、最後の同期署名４３５を更新し、方法１５００は終了する。特定された場合、汎用同期モジュール８２５はステップ１５４０で、最後の同期以来、ワークスペース要素の複数のバージョンが修正されているかどうかを判定する。
【００６８】
１つのバージョンしか修正されていない場合、対応する汎用同期モジュール８２５はステップ１５４５で、加えられた変更を判定する。上記のように、加えられた変更を判定するステップは、ワークスペース要素の現在状態と最後の交互作用の時点でのワークスペース要素の前の状態とを比較することにより実施することができる。変更がワークスペース・データ１６３におけるバージョンにしか行われたかった場合、大域トランスレータ１５０はステップ１５５０で、変更を他のストアで使用するフォーマットに変換し、汎用同期モジュール４１０はステップ１５５５で、変換された変更を汎用同期モジュール８２５に転送し、ワークスペース・データ１８０内の旧ワークスペース要素を更新する。更新されたバージョンがワークスペース・データ１８０内のワークスペース要素であれば、汎用同期モジュール８２５は更新されたバージョンに加えられた変更を大域トランスレータ１５０に送信して、そこで変換し、次に汎用同期モジュール４１０に送信して、そこでワークスペース・データ１６３内の旧ワークスペース要素を更新する。汎用同期モジュール８２５と汎用同期モジュール４１０はステップ１５５７で、ワークスペース要素の前の状態を更新して、この交互作用の時点での現在状態を反映させる。方法１５００はそこでステップ１５３５に戻る。
【００６９】
汎用同期モジュール８２５がステップ１５４０で、複数のバージョンが修正されたと判断した場合、汎用同期モジュール８２５はステップ１５６５で、各バージョンに対する変更を計算し、ステップ１５７０で、コンテンツ・ベース同期モジュール８３０に内容を検査して衝突が存在しているかどうかを判定するよう指令を出す。たとえば、コンテンツ・ベース同期モジュール８３０は、ユーザが一方のバージョンではパラグラフを削除し、他方のバージョンではその同じパラグラフを修正している場合に衝突が存在すると判断することができる。コンテンツ・ベース同期モジュール８３０は、ユーザがそれぞれのバージョンで異なるパラグラフを削除している場合に衝突は存在していないと判断することができる。衝突が見つからなければ、方法１５００はステップ１５５０にジャンプし、他のストアに各バージョンでの変更を変換して転送する。しかし、衝突が見つかった場合、コンテンツ・ベース同期モジュール８３０はステップ１５７５で、修正されたバージョンを調和させる。上記のように、調和させるステップには、ユーザからの指令またはすでに選択されている選択設定に基づく指令を要求し、両方のストアに両方のバージョンを格納するなどの応答アクションを実行するステップを含めることができる。２つのバージョンの間のリンクを２つのバージョンのそれぞれに置くことができるため、ユーザは好ましいバージョンを選択するために両方のバージョンを検査することを認識することは理解されるであろう。方法１５００はそこでステップ１５５０に進む。
【００７０】
さらに、ステップ１５１０で、新しいワークスペース要素と新しいワークスペース要素がマージされる既存のワークスペース要素が「修正済み」に設定され、前の状態がヌル・セットに設定されることも理解されるであろう。したがって、汎用同期モジュール８２５はステップ１５４０で、複数のバージョンが修正されていると判断し、コンテンツ・ベース同期モジュール８３０はステップ１５７０で、衝突が存在していないと判断することになる。それぞれにおける変更は変換され、他のストアに転送される。したがって、２つのバージョンは事実上それぞれのストアでマージされ格納される。
【００７１】
たとえば、クライアント１６５上のウェブ・エンジン１４０によって第１のブックマーク・フォルダが作成され、リモート端末１０５上のウェブ・エンジン１４０によって第２のフォルダが作成され、大域サーバ１１５上には既存のフォルダが存在しておらず、同期させるこれらのフォルダのそれぞれをユーザが選択している場合、同期手段は第１のフォルダと第２のフォルダを実際にマージする。つまり、クライアント１６５上の汎用同期モジュール８２５は第１のフォルダが修正され、前の状態がヌル・セットに等しくなっていると判断する。汎用同期モジュール８２５は変更、つまり第１のフォルダ内のすべてのワークスペース要素を判定して、大域サーバ１１５上の新しい大域フォルダに送信する。同様に、リモート端末１０５上の汎用同期モジュール（図には示されていない）は、最後の交互作用の時点で、第２のフォルダと大域フォルダのそれぞれの前の状態がヌル・セットであると判断する。汎用同期モジュール８２５は、コンテンツ・ベース同期モジュール８３０に、各フォルダに加えられた変更を検査して衝突が存在するかどうかを判定するよう指令を出す。衝突が存在しないと、汎用同期モジュール８２５は変更を大域フォルダに転送し、汎用同期モジュール４１０はその変更を第２のストアに転送し、そうすることで、大域フォルダと第２のフォルダにおいて第１のフォルダと第２のフォルダのワークスペース要素をマージする。汎用同期モジュール４１０は、大域フォルダが最後の交互作用に関して修正されたことを汎用同期モジュール８２５に通知し、新たな変更を第１のフォルダに転送する。こうして、第１のフォルダと第２のフォルダはマージされ、それぞれのストアに格納される。
【００７２】
本発明の好ましい実施形態に関する前記の説明は例示のみを目的としており、前記の実施形態および方法の他の変形形態も本発明により実現される。たとえば、サーバはクライアントによってポーリングされるコンピュータであればどのようなものでもよい。したがって、リモート端末１０５をクライアントの一種と呼ぶこともできる。アプレットに関してシステムと方法を説明してきたが、ＪａｖａTMアプレット、ＪａｖａTMアプリケーション、あるいはマイクロソフト社が開発したＡｃｔｉｖｅＸTMコントロールなどの他のダウンロード可能な実行プログラムを代わりに使用することもできる。本発明の構成要素は、プログラムされた汎用デジタル・コンピュータを使用して、あるいは特定用途向け集積回路を使用して、あるいは相互接続された従来型の構成要素と回路を使用して実装することもできる。本発明に記載の実施形態は、説明のため提示したのであって、網羅しているのでも、限定しているのでもない。前記の教示に照らして、さまざまな変形形態および修正形態が可能である。本発明は、頭記の特許請求の範囲によってのみ限定される。
【符号の説明】
【００７３】
１００  データ同期ネットワーク
１０５  リモート・コンピュータ端末
１１０  １２０  １２２  通信チャネル
１１５  大域サーバ
１２５  ローカル・エリア・ネットワーク（ＬＡＮ）
１３０  大域ファイアウォール
１３５  ＬＡＮファイアウォール
１４０  ウェブ・エンジン
１４５  同期エージェント
１５０  大域トランスレータ
１５５  構成システム
１６０  セキュリティ・システム
１６３  サーバワークスペース・データ
１７０  クライアント・ベース・システム
１７５  クライアント・サービス・エンジン
１８０  クライアント・ワークスペース・データ
２１０  ３１０  ７０５  ＣＰＵ
２２０  ３２０  ７１５  入力デバイス
２３０  ３３０  ７２５  出力デバイス
２４０  ３４０  ７１０  通信インタフェース
２５０  ３５０  ７２０  データ記憶装置
２６０  ３７０  ７３０  ランダム・アクセス・メモリ（ＲＡＭ）
２７０  ３８０  ７３５  オペレーティング・システム
３５６  構成データとユーザ・データ
４０５  ８０５  通信モジュール
４１０  ８２５  汎用同期モジュール
５００  大域フォーマットのブックマーク例
８１０  ユーザ・インタフェース・モジュール
８１５  ロケータ・モジュール
８２０  同期開始モジュール
８３０  コンテンツ・ベース同期モジュール
９００  リスト
【図１】
0004563488.tif 000002
【図２】
0004563488.tif 000003
【図３】
0004563488.tif 000004
【図４】
0004563488.tif 000005
【図５】
0004563488.tif 000006
【図６】
0004563488.tif 000007
【図７】
0004563488.tif 000008
【図８】
0004563488.tif 000009
【図９】
0004563488.tif 000010
【図１０】
0004563488.tif 000011
【図１１】
0004563488.tif 000012
【図１２】
0004563488.tif 000013
【図１３】
0004563488.tif 000014
【図１４】
0004563488.tif 000015
【図１５】
0004563488.tif 000016