(57)【要約】【課題】セキュア仮想プライベートネットワーク（ＶＰＮ１００）を形成するための方法を提供する。【解決手段】セキュア仮想プライベートネットワークは、各エンティティがＶＰＮ上の少なくとも１つの他のデバイスとのリンクを有するインターネット接続性を備えた２つ又はそれ以上のリンクされたエンティティからなる。本方法は、ＶＰＮに接続可能であることが既知であるエンティティの更新可能なインデックスを備えた既知のアドレスを有するルックアップデバイス（１０４、２４６）を提供する段階によって特徴付けられる。【選択図】図１
2008236719.tif 000002
【特許請求の範囲】
【請求項１】
インターネット接続性を有する２つ又はそれ以上のリンクされたエンティティからなるセキュア仮想プライベートネットワーク（ＶＰＮ１００）を形成するための方法であって、各エンティティが前記ＶＰＮ上の少なくとも１つの他のデバイスとのリンクを有し、
（ａ）前記ＶＰＮに接続可能であることが既知なエンティティの更新可能なインデックスを備えた既知のアドレスを有し、前記ＶＰＮへのリンクを望む既知のエンティティ（「結合エンティティ」）（２３６）からの要求を受け付けるルックアップデバイス（１０４、２４６）を提供する段階と、
（ｂ）前記ＶＰＮ上の少なくとも１つの事前に指定されたコンタクトエンティティ（２３８）が、受信した結合要求に関する前記ルックアップデバイス（１０４）を定期的にポーリングを生じさせる段階と、
（ｃ）前記ルックアップデバイス（１０４）が、前記ＶＰＮ（１００）に接続するための結合エンティティからの要求を受信する段階と、
（ｄ）結合要求に対するポーリングに応じて、前記ルックアップデバイス（１０４）が、前記ポーリング側コンタクトエンティティ（２３８）に各結合エンティティ（２３６）の少なくとも前記アドレスを通知する段階と、
（ｅ）前記コンタクトエンティティ（２３８）が前記ＶＰＮへの接続を許可した場合、前記コンタクトエンティティは、少なくともそのアドレスを前記ルックアップデバイスに提供し、これを前記結合エンティティに渡す段階と、
（ｆ）前記結合エンティティ（２３６）及びコンタクトエンティティ（２３８）が、双方の間に第１リンク（２５４）を設定する段階と、
（ｇ）前記結合エンティティ及び前記コンタクトエンティティが、前記第１リンクを介して認証プロセスを行う段階と、
（ｈ）前記認証プロセスが成功した場合、前記コンタクトエンティティが、前記ＶＰＮに属する少なくとも他のエンティティの状態を前記結合エンティティに通知し、前記結合デバイスが前記ＶＰＮに結合していることを前記ＶＰＮ上の全てのエンティティに通知する段階と、
（ｉ）前記結合デバイスが、前記ＶＰＮに属する他のエンティティの状態を使用して、接続する前記１つ又は２つの近傍のエンティティを含む前記ＶＰＮにおけるそのノード位置を算出する段階と、
（ｊ）前記１つ又は２つの近傍のエンティティが、前記ルックアップエンティティと共に段階（ｃ）から（ｆ）において指示されたタイプのプロセスを開始して、前記結合エンティティと１つ又はそれ以上の第２リンクを設定し、前記第１リンクを終了させる段階と、
（ｋ）前記結合エンティティ及び少なくとも１つの近傍のエンティティが、成功した場合に前記１つ又はそれ以上の第２リンクを維持する相互認証プロセスを行う段階と、
によって特徴付けられる方法。
【請求項２】
初期登録段階(an initial registration step)を含み、これによってエンティティ（２７０）が、１つ又はそれ以上の所要のＶＰＮへのアクセスのために前記ルックアップデバイス（１０４、２７４）に登録し、該登録されたエンティティのみが、続いて前記ルックアップデバイスに認識され又は既知とされ、前記登録段階は、前記エンティティ（２７０）が、少なくともユーザ名、パスワードを含む登録情報を前記ルックアップデバイスに送る段階と、登録されたエンティティがＶＰＮ結合要求を前記ルックアップデバイスに送るときに前記ルックアップデバイス（１０４、２７４）が識別目的で前記登録情報を記憶する段階とを含む、
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記登録段階は、前記ルックアップデバイス（１０４、２７４）が登録エンティティにセキュリティ鍵（２７８）を送り、登録されており且つ他のエンティティが登録されているＶＰＮに固有のセキュリティ鍵に前記エンティティがアクセスできるようにする、
ことを特徴とする請求項２に記載の方法。
【請求項４】
前記段階（ｈ）において、前記コンタクトエンティティは更に、前記ＶＰＮに属する他のエンティティのエンティティ識別子を前記結合エンティティに通知する、
ことを特徴とする請求項１から３のいずれか１項に記載の方法。
【請求項５】
前記段階（ｉ）において、前記結合エンティティは更に、前記ＶＰＮに属する他のエンティティのエンティティ識別子を使用して前記他のエンティティのノード位置を計算する、
ことを特徴とする請求項４に記載の方法。
【請求項６】
前記エンティティ識別子がアドレスである、ことを特徴とする請求項４又は請求項５に記載の方法。
【請求項７】
前記認証プロセスは、前記他のエンティティの称するアイデンティティに固有の鍵（３０４）を使用して前記他のエンティティにチャレンジする前記２つのエンティティの各々からなり、各チャレンジは、前記他のエンティティへの送信（６０４）、前記他のエンティティからの応答（６１２）、及び前記応答が正しいことの前記チャレンジ側エンティティによる検証を含む、
ことを特徴とする請求項１から６のいずれか１項に記載の方法。
【請求項８】
第１エンティティと第２エンティティとの間の各チャレンジが、
（ａ）前記第１エンティティが、データのランダムシーケンス（ＡＢ’６００）を作成し、これを記憶し、これを前記第２エンティティの公開鍵（３０４）で暗号化して、結果として得られる暗号文を前記第２エンティティに送る段階と、
（ｂ）前記第２エンティティが、前記第１エンティティから前記暗号文を受け取り、前記第２エンティティの秘密鍵（３０６）を使用してこれを復号し、結果として得られる平文を前記第１エンティティの公開鍵（３０２）で暗号化して、これを前記第１エンティティに送る段階と、
（ｃ）前記第１エンティティが、前記第２エンティティから前記暗号文を受け取り、前記第１エンティティの秘密鍵（３００）を使用してこれを復号し、前記結果として得られる平文を前記記憶されたデータのランダムシーケンス（ＡＢ’６００）と比較し、その結果一致する場合には前記第２エンティティが認証されたことを受け付ける段階と、
を含む、
ことを特徴とする請求項７に記載の方法。
【請求項９】
ＶＰＮに接続されたエンティティ間のデータトラフィックが対称鍵を使用して暗号化され、前記対称鍵は、前記データのランダムシーケンス（ＡＢ’６００）である、
ことを特徴とする請求項８に記載の方法。
【請求項１０】
前記認証プロセスが周期的に繰り返され、前記周期的に生成されたランダムデータシーケンスは、動的対称セッション鍵として使用される、
ことを特徴とする請求項９に記載の方法。
【請求項１１】
前記エンティティは、前記インターネットに接続することができるプロセッサを有するデバイスである、
ことを特徴とする請求項１から１０のいずれか１項に記載の方法。
【請求項１２】
前記デバイスは、コンピュータ、ＰＤＡ、ＰＰＣ、携帯電話又はスマートフォン、及び組込み型デバイスを含む、
ことを特徴とする請求項１１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、幾つかのコンピュータ間、或いは携帯電話、パーソナルデジタルアシスタント（ＰＤＡ）又は同様のものなど、他の電子デバイスとデータを共有する方法に関する。データは、これらのデバイス間の電子接続を介して、特にインターネット、或いは、例えばＬＡＮ、ＷＡＮ、又は無線ネットワークなどの他の手段を介して共有される。詳細には、本発明は、別個のデバイスに記憶されているデータを、セキュアな方式で、任意選択的には暗号化を用いて特別なセキュアパーティションを使用したインターネット上で共有することに関する。本発明は、セキュアパーティション、セキュアパーティションの作成方法、及びセキュアパーティションの作成方法を実行するためのアプリケーションソフトウェアに関する。本発明はまた、１つ又はそれ以上のリモートデバイスに含まれたデータ及び機能へのアクセスを提供するためのコンピュータシステム、方法、及びインターフェースに関する。
【背景技術】
【０００２】
大多数の人が、情報を記憶する複数のデジタルデバイスを使用している。例えば、ユーザは、スマート携帯電話、家庭でのラップトップ、及び職場でのパーソナルコンピュータを使用する場合がある。従来、データは１つのデバイスから別のデバイスにマニュアルで転送しなければならず、これを行うのは困難であった。２つ又はそれ以上のデバイス間でデータを同期するのに利用可能な他の手段があるが、これらの手段は一般に、その実行のための特定のソフトウェアアプリケーションを必要とする。
【０００３】
これらのデバイス上に記憶された情報にどこからでもセキュアにアクセスできることが益々必要になってきている。これは、動作及び管理が簡単でなくてはならず、これによってあらゆるタイプのデータ、及び各タイプのデータにアクセスしたり修正したりするソフトウェアアプリケーションを、ユーザのどの電子デバイスでも利用できるようにする需要がある。データは、例えばインターネット又はＷＡＮなどのネットワークを介してアクセスされ、データ共有システムはまた、現在使用しているどのデバイスからもデータの所有者だけがデータにアクセス可能であるように効果的なセキュリティを有する必要がある。
【０００４】
複数のデバイスをリンクしようとする試みにおいて、種々のシステム及び方法が考案されてきた。例えば、Ｃｈａｎｇｗｅｎ他に付与された英国特許ＧＢ２４１１０９２は、モバイルノード（例えばラップトップ）のためのセキュアネットワーク経路の作成を記載している。本方法は、モバイルノードの永久ネットワークアドレス及びプロキシ気付アドレス（ケアオブアドレス）を指定する登録要求をホームエージェントに送る段階を含む。プロキシ気付アドレスは、モバイルノードと通信するのに使用される。
【０００５】
別の実施例は、Ｆｏｎｔｉｊｎ他に付与された国際特許ＷＯ０４０８１８１８であり、ピアツー・ピアネットワークにおいてデバイス間でオーナーシップ変更を転送する方法を開示する。本方法は、変更が関連する１つ又はそれ以上のデバイスに変更を伝搬する段階を含む。変更をコミットする責任はデバイス間で渡される。
【０００６】
本明細書で使用される用語「含む（ｃｏｍｐｒｉｓｉｎｇ）」は、「少なくとも部分的に〜からなる」を意味する。用語「含む（ｃｏｍｐｒｉｓｉｎｇ）」を含む本明細書における各表現を解釈する場合、この用語述べられるもの以外の特徴も存在することができる。「ｃｏｍｐｒｉｓｅ」及び「ｃｏｍｐｒｉｓｅｓ」などの関連する用語も同様に解釈すべきである。
【０００７】
本明細書で使用される用語「及び／又は」は、「及び」もしくは「又は」、或いは両方を意味する。
【０００８】
本明細書で使用される名詞に続く「（ｓ）」は、その名詞の複数形及び／又は単数形を意味する。
【０００９】
本明細書に開示される数の範囲（例えば１から１０）の記載は、その範囲内の全ての有理数（例えば、１、１．１、２、３、３．９、４、５、６、６．５、７、８、９及び１０）、及びその範囲内の有理数のいずれかの範囲（例えば、２から８、１．５から５．５、及び３．１から４．７）の記載を含むものとする。
【００１０】
上記及び下記に記載される全ての出願、特許、及び公報の開示全体は、もしあれば、引用により本明細書に組み入れられる。
【００１１】
本明細書では、特許明細書及び他の文献を含む情報の外部ソースについて参照する場合、これは、一般的に本発明の特徴を説明するための背景を提供する目的に過ぎない。別段の指示がない限り、このような情報ソースの参照は、あらゆる権限において、当該情報ソースが従来技術であるか又は当該技術分野において公知の一部を形成すると認められたものとして解釈すべきではない。
【００１２】
【特許文献１】英国特許ＧＢ２４１１０９２公報
【特許文献２】国際特許ＷＯ０４０８１８１８公報
【発明の開示】
【課題を解決するための手段】
【００１３】
ここで本発明を一般論として説明する。本発明の目的は、改良されたプライベートネットワークを提供することであり、或いは少なくとも、有用な選択を社会又は産業界に提供することである。
【００１４】
第１の態様において、本発明は、各エンティティがＶＰＮ上の少なくとも１つの他のデバイスとのリンクを有するインターネット接続性を備えた２つ又はそれ以上のリンクされたエンティティからなるセキュア仮想プライベートネットワーク（ＶＰＮ１００）を形成するための方法にあり、該方法は、
（ａ）ＶＰＮに接続可能であることが既知であるエンティティの更新可能なインデックスを備えた既知のアドレスを有し、ＶＰＮへのリンクを望む既知のエンティティ（「結合エンティティ」）（２３６）からの要求を受け付けるルックアップデバイス（１０４、２４６）を提供する段階と、
（ｂ）ＶＰＮ上の少なくとも１つの事前に指定されたコンタクトエンティティ（２３８）に、受け取られた結合要求に対してルックアップデバイス（１０４）を定期的にポーリングさせる段階と、
（ｃ）ルックアップデバイス（１０４）が、ＶＰＮ（１００）に接続するための結合エンティティからの要求を受け取る段階と、
（ｄ）結合要求に対するポーリングに応じてルックアップデバイス（１０４）が、ポーリング側コンタクトエンティティ（２３８）に各結合エンティティ（２３６）の少なくともアドレスを通知する段階と、
（ｅ）コンタクトエンティティ（２３８）がＶＰＮへの接続を許可した場合、コンタクトエンティティが、少なくともそのアドレスをルックアップデバイスに提供し、これを結合エンティティに渡す段階と、
（ｆ）結合エンティティ（２３６）及びコンタクトエンティティ（２３８）が、双方の間に第１リンク（２５４）を設定する段階と、
（ｇ）結合エンティティ及びコンタクトエンティティが、第１リンクを通じて認証プロセスを行う段階と、
（ｈ）認証プロセスが成功した場合、コンタクトエンティティが、ＶＰＮに属する少なくとも他のエンティティの状態を結合エンティティに通知し、結合デバイスがＶＰＮに結合していることをＶＰＮ上の全てのエンティティに通知する段階と、
（ｉ）結合デバイスが、ＶＰＮに属する他のエンティティの状態を使用して、接続する１つ又は２つの近傍のエンティティを含むＶＰＮにおけるそのノード位置を計算する段階と、
（ｊ）１つ又は２つの近傍のエンティティが、ルックアップエンティティと共に段階（ｃ）から（ｆ）において指示されたタイプのプロセスを開始して、結合エンティティと１つ又はそれ以上の第２リンクを設定して、第１リンクを終了させる段階と、
（ｋ）結合エンティティ及び少なくとも１つの近傍のエンティティが、成功した場合に１つ又はそれ以上の第２リンクを維持する相互認証プロセスを行う段階と、
によって特徴付けられる。
【００１５】
好ましくは、本方法により、エンティティ（２７０）が、１つ又はそれ以上の所要のＶＰＮへのアクセスのためにルックアップデバイス（１０４、２７４）に登録され、該登録されたエンティティのみが、続いてルックアップデバイスに認識され又は既知とされ、登録段階は、エンティティ（２７０）が、少なくともユーザ名、パスワードを含む登録情報をルックアップデバイスに送る段階と、登録されたエンティティがＶＰＮ結合要求をルックアップデバイスに送るときに、ルックアップデバイス（１０４、２７４）が識別目的で登録情報を記憶する段階とを含む。
【００１６】
好ましくは、前記登録段階は、ルックアップデバイス（１０４、２７４）が登録エンティティにセキュリティ鍵（２７８）を送り、登録処理を行うものであって且つ他のエンティティが登録されているＶＰＮに固有のセキュリティ鍵にエンティティがアクセスできるようにする。
【００１７】
好ましくは、段階（ｈ）において、コンタクトエンティティは更に、ＶＰＮに属する他のエンティティのエンティティ識別子を結合エンティティに通知する。
【００１８】
好ましくは、段階（ｉ）において、結合エンティティは更に、ＶＰＮに属する他のエンティティのエンティティ識別子を使用して他のエンティティのノード位置を計算する。
【００１９】
好ましくは、エンティティ識別子はアドレスである。
【００２０】
好ましくは、認証プロセスは、他のエンティティを識別するといわれている固有の鍵（３０４）を使用して他のエンティティにチャレンジする２つのエンティティの各々からなり、各チャレンジは、他のエンティティへの送信（６０４）、他のエンティティからの応答（６１２）、及び応答が正しいことをチャレンジ側エンティティで検証することを含む。
【００２１】
好ましくは、第１エンティティと第２エンティティとの間の各チャレンジは、
（ａ）第１エンティティが、データのランダムシーケンス（ＡＢ’６００）を作成し、これを記憶し、これを第２エンティティの公開鍵（３０４）で暗号化して、結果として得られる暗号文を第２エンティティに送る段階と、
（ｂ）第２エンティティが、第１エンティティから暗号文を受け取り、第２エンティティの秘密鍵（３０６）を使用してこれを復号し、結果として得られる平文を第１エンティティの公開鍵（３０２）で暗号化して、これを第１エンティティに送る段階と、
（ｃ）第１エンティティが、第２エンティティから暗号文を受け取り、第１エンティティの秘密鍵（３００）を使用してこれを復号し、結果として得られる平文を記憶されたデータのランダムシーケンス（ＡＢ’６００）と比較し、一致する場合、第２エンティティが認証されたことを受け付ける段階と、を含む。
【００２２】
好ましくは、ＶＰＮに接続されたエンティティ間のデータトラフィックが対称鍵(symmetric key)を使用して暗号化され、対称鍵は、前記データのランダムシーケンス（ＡＢ’６００）である。
【００２３】
好ましくは、認証プロセスが周期的に繰り返され、周期的に生成されたランダムデータシーケンスは、動的対称セッション鍵(a dynamic symmetric session key)として使用される。
【００２４】
好ましくは、エンティティは、インターネットに接続することができるプロセッサを有するデバイスである。
【００２５】
好ましくは、デバイスは、コンピュータ、ＰＤＡ、ＰＰＣ、携帯電話又はスマートフォン、及び組込み型デバイスを含む。
【００２６】
別の一態様において、本発明は、各々がデータと検証チェックに使用される秘密鍵とを含む２つ又はそれ以上のデバイスを備えたセキュアインターネットパーティションを提供し、パーティションの使用において、各デバイスは１つ又はそれ以上の近傍のデバイスに関連付けられており、パーティションの使用において、各デバイスはまた近傍のデバイス間のデータトラフィックの暗号化及び／又は復号化に使用される暗号鍵及び近傍のデバイスの公開鍵を含み、更にパーティションの使用において、各デバイスは、近傍の秘密鍵及び公開鍵を使用して該近傍のデバイスの検証チェックを行い、近傍デバイスが検証された場合、暗号鍵を使用して近傍デバイスにデータを送信するよう動作する。
【００２７】
近傍のデバイスはループを形成することができる。セキュアインターネットパーティションが３つ又はそれ以上のデバイスから構成されている場合、各デバイスは、２つの近傍のデバイスを有することができる。
【００２８】
検証チェックは、チャレンジ及び応答認証に基づいて行うことができる。検証チェックは、周期的に行うことができる。検証チェックは、周期的に更新された検証シーケンスに基づいて行うことができる。
【００２９】
暗号鍵は対称鍵とすることができ、各デバイスは、実質的に同じ暗号鍵を有することができる。
【００３０】
パーティションは更に、パーティションを含むデバイスのリストを維持するルックアップポイントを有することができる。追加的なデバイスは、この追加的なデバイスの近傍にあるパーティションでのデバイスの詳細をルックアップポイントアドレスから取得することによってパーティションに結合することができる。
【００３１】
パーティションのデバイスは、デバイスの組から構成することができ、デバイスの組は、追加的なパーティションを形成する。
【００３２】
本発明はまた、セキュアインターネットパーティションを作成する方法に関する。別の一態様において、本発明は、デバイスにインストールされるアプリケーションソフトウェアであり、セキュアインターネットパーティションを作成する方法を実行する。更に別の一態様において、本発明は、追加的なデバイスがセキュアインターネットパーティションに結合するのを可能にするルックアップポイントに関する。
【００３３】
別の一態様において、本発明は、インターネット上でデータをセキュアに送信するためのセキュアインターネットパーティションを供給し、このパーティションは、第２デバイスに送信されることになるデータ、暗号鍵、及び検証シーケンスを含む第１デバイスと、第２デバイス及び暗号鍵を検証するために第１デバイスから受信された検証シーケンスを含む第２デバイスとを備え、パーティションの使用において、第１デバイスは、検証シーケンス及び暗号鍵を使用してデータを暗号化するよう動作し、第２デバイスは、暗号鍵及び検証シーケンスを使用してデータを復号する。
【００３４】
第１デバイスは、暗号鍵を使用して、該暗号鍵をパーティションシーケンスと組み合わせ、組み合わせた暗号鍵及びパーティションシーケンスを使用してデータを暗号化することによって、データを暗号化するように動作することができる。データは、パケット化することができ、組み合わされた暗号鍵及びパーティションシーケンスは、パケットの一部を暗号化するのに使用される。パケットは、ヘッダと本体を含むことができ、暗号化された部分は本体とすることができる。
【００３５】
第１デバイスは、パーティションシーケンスを検証シーケンスで暗号化し、これを第２デバイスに送信したデータに追加することによって、前記検証シーケンスを用いてデータを暗号化するよう動作することができる。データは、ヘッダと本体を有するパケットにパケット化することができ、暗号化されたパーティションシーケンスをヘッダに加えることができる。
【００３６】
第２デバイスは、検証シーケンスを用いてパーティションシーケンスを求めることによって、検証シーケンスを用いたデータの復号を行うことができる。更に、第２デバイスは、求められたパーティションを暗号鍵と組み合わせデータの復号化に用い、暗号鍵を使用したデータの復号を行う。
【００３７】
パーティションシーケンスは、周期的に変化することにおいて動的にすることができる。パーティションシーケンスは、ランダムに生成することができる。検証シーケンスは、周期的に変化することにおいて動的にすることができる。パーティションシーケンスは、ランダムに生成できる。
【００３８】
検証シーケンスは、第１及び第２デバイスに固有のものとすることができる。検証シーケンスは、第１デバイスから第２デバイスへのデータ送信に固有のものとすることができる。検証シーケンスは、チャレンジ／応答認証の一部として第１デバイスから受信することができる。第２デバイスは、別の検証シーケンスを含むことができ、第１デバイスは、第１デバイスを検証するために第２デバイスから受信された別の検証シーケンスを含むことができる。
【００３９】
パーティションは、全てが暗号鍵を含む追加的なデバイスを備えることができる。パーティションは、追加的なデバイスを含むことができ、パーティションシーケンスは、パーティションのいずれかのデバイスにデータを送信するときに第１デバイスによって使用される。
【００４０】
別の一態様において、本発明は、インターネット上でセキュアにデータを送信する方法に関する。更に別の一態様において、本発明は、インターネット上でセキュアにデータを受信する方法に関する。別の一態様では、本発明は、インターネット上でセキュアにデータを送受信する方法を実行するためのソフトウェアアプリケーションに関する。
【００４１】
別の一態様において、本発明は、１つ又はそれ以上のリモートデバイスに含まれるデータ及び機能へのアクセスを提供するコンピュータネットワークを提供し、該コンピュータシステムは、データへのアクセスを可能にし且つ機能を提供するリアルオブジェクトを各々が含む２つ又はそれ以上のデバイスを備え、使用時に各デバイスは、バーチャルオブジェクトのペアを使用することによってリモートデバイスのデータ及び機能にアクセスすることが可能となり、第１バーチャルオブジェクトは、リアルオブジェクトと通信するためのデバイス内に位置付けられ、第２バーチャルオブジェクトは、第１バーチャルオブジェクトと通信するためのリモートデバイス内に位置付けられる。
【００４２】
バーチャルオブジェクトは、リアルオブジェクトからデータ及び機能を抽出し、データ及び機能をリアルオブジェクトのオペレーティングシステムから独立させるようにすることができる。オブジェクトは、データを記憶し、データの操作において機能を提供することができるソフトウェアアプリケーションとすることができる。
【００４３】
使用時には、各デバイスは、メタオブジェクトのペアを使用することによってリモートデバイスの追加機能にアクセスすることができ、第１メタオブジェクトは、バーチャルオブジェクトと通信するためのデバイス内に位置付けることができ、ここでメタオブジェクトは追加機能を提供し、第２メタオブジェクトは、第１バーチャルオブジェクトに追加機能を提供するために第１バーチャルオブジェクトと通信するためのリモートデバイス内に位置付けられる。オブジェクトは、複数の動作を含むことができる。
【００４４】
更に別の一態様において、本発明は、１つ又はそれ以上のリモートデバイスに含まれるデータ及び機能へのアクセスを可能にする。別の一態様では、本発明は、電子デバイス用のインターフェースを提供し、１つ又はそれ以上のリモートデバイスに含まれるデータ及び機能にアクセスできるようにする。
【００４５】
本発明の一実施形態は、人が単一のインターフェース上で複数のデバイスのネットワーク上に記憶されたデータコンテンツにアクセスするためのセキュアでフレキシブル且つ簡単な方法を提供する。各デバイスのユーザは、異なるものとすることができ、これによってデバイスのユーザは、単一のインターフェースを使用してデバイス上のどのコンテンツに他のユーザがアクセスできるかを制御することが可能になる。
【００４６】
データは、文書、音楽、写真、電子メール、警報、及び更新などのいずれかのデジタルファイルとすることができる。更に、アクセスデータは、温度を読み取るデジタル入力カード、又はデバイスからのスクリーンショットのような動的ソースからのものとすることができる。インターネットなどのネットワークに接続できるあらゆるデバイスを本発明と共に使用することができる。
【００４７】
本明細書で使用される用語「インターネット」とは、コンピュータ、携帯電話、ＰＤＡ、及び同様のものなどの電子デバイスを接続する他のタイプのネットワークを含むように広義に解釈すべきであり、用語「インターネット」は、イントラネット、又はＷＡＮ、ＬＡＮ、無線ネットワーク、その他などの他の電子通信ネットワークを含むことになる。
【発明を実施するための最良の形態】
【００４８】
ここで本発明の実施例について添付図面を参照して説明する。
【００４９】
インターネットのセキュアパーティションの実施例について説明する。本明細書では、セキュアインターネットパーティションを「クラウド(cloud)」と呼ぶことにする。
【００５０】
＜デバイス＞
プロセッサを有するあらゆるデバイスであり、（ＴＣＰ／ＩＰなどを使用して）インターネットに接続することができ、セキュアインターネットパーティションの一部を形成するためにクラウドに接続することができる。このようなデバイスはまた、一定の最小システム要件を満たさなくてはならない。デバイスの実施例は、ＰＣ（「Ｗｉｎｄｏｗｓ(Ｒ)」、「Ｌｉｎｕｘ」、「Ｍａｃｉｎｔｏｓｈ」、又はオープンソースオペレーティングシステムなどのいずれかのオペレーティングシステムを備える）；「Ｐａｌｍ  ＯＳ」、「Ｗｉｎｄｏｗｓ  ＣＥ／Ｍｏｂｉｌｅ」などのいずれかのオペレーティングシステムを備えたＰＤＡ、ＰＰＣ；「ＢｌａｃｋＢｅｒｒｙ」、Ｊａｖａ（Ｒ）フォン、Ｎｏｋｉａの「Ｓｙｍｂｉａｎ」オペレーティングシステム携帯電話などの携帯電話、又はスマートフォン；及び組み込み型デバイスを含む。
【００５１】
＜エンティティ＞
エンティティは、仮想プライベートネットワーク（ＶＰＮ）或いは「クラウド」における基本ユニット（又はノード）である。エンティティは、オブジェクトの集合であり、デバイス又はクラウドもしくはＶＰＮ自体によって作成することができる。
【００５２】
＜オブジェクト＞
オブジェクトは、エンティティ（すなわちデバイス又はクラウド）に関連付けられる。オブジェクトは、クラウドにおけるデバイス上のデータ及び機能へのアクセスを可能にする機能を含む。すなわち、オブジェクトは動作の集合である。オブジェクトは、動作のインスタンスを作成することができる。オブジェクトは、クラウドの各デバイスからクラウドに付加し、信頼できるデバイスの全てからクラウド内のオブジェクトを利用可能にすることができる。
【００５３】
＜クラウド＞
既知の信頼できるエンティティ間で作成されたＶＰＮである。クラウドは、どのデバイスが信頼されているか及びこれらのエンティティの状態について認識している。またクラウドは、デバイス及び／又は他のクラウドのＶＰＮとすることができる。オブジェクトは、クラウド内の各エンティティから付加することができる。
【００５４】
＜ルックアップポイント＞
ルックアップポイントは、エンティティが互いを見つけることを可能とするためにシステムで使用される。共有ルックアップポイントは、クラウドの集中型の登録及び制御を可能にする。ルックアップポイントは、クラウド内のデバイスの１つに位置付けることができる。或いは、ルックアップポイントはまた、別個のデバイス上にあってもよい。
【００５５】
これらの概念について、図１〜２０に関して詳細に説明する。
【００５６】
図１は、単一クラウド１００のアーキテクチャを概略的に示している。クラウド１００は、４つのエンティティＡ−Ｄから生成されている。エンティティＡは、それ自体が、デスクトップコンピュータ、ノートブック、ＰＤＡ、及びスマートフォンを含むデバイスのセットから構成されたクラウドである。エンティティＢは、別のデスクトップコンピュータである。エンティティＣは別のスマートフォンである。エンティティＤは別のクラウドである。各エンティティＡ−Ｄは、ファイアウォール１０６の後ろに構成されており、インターネット１０２に接続されている。４つ全てのエンティティＡ−Ｄに対し、別のデバイス上で維持される共有ルックアップポイント１０４が存在する。
【００５７】
各エンティティＡ−Ｄは、それぞれ１０８ａ−１０８ｄのラベルが付いた異なるコンテンツに関連付けられている。コンテンツ１０８ａ−１０８ｄは、オブジェクトの形式でクラウド上で共有される。各エンティティＡ−Ｄには、コンテンツ１０８ａ−１０８ｄ全てへの全アクセス及び操作が存在する。これは、参照番号１１０で概略的に示されている。
【００５８】
図２は、共有ルックアップポイント１０４を使用する３つの別個のクラウドＥ、Ｆ、及びＧを示す。クラウドＨは別に存在し、プライベートルックアップポイント１０５を有する。クラウドＥ、Ｆ、及びＧのエンティティは、共有ルックアップポイント１０４を使用する。クラウドＨのエンティティは、プライベートルックアップポイントを使用する。クラウドＨは分離されており、クラウドＨに結合されることになるあらゆるデバイスは、クラウドＨのプライベートルックアップポイント１０５を認識して、これに登録する必要がある。
【００５９】
クラウド１１４内の全てのエンティティがルックアップポイント１０４を共有する場合、クラウドは、集中的に管理されると考えられる。各々を１つのデバイス又は１つのクラウドとすることができる４つのエンティティ、Ａ、Ｂ、Ｃ、及びＤが存在し、これらは共に集中管理クラウド１１４を形成する。
【００６０】
エンティティ間の全トラフィックは、任意選択的に暗号化される。最低限でも、全てのエンティティは認証されなくてはならない。暗号化が使用される場合、暗号化は、エンティティＡ、Ｂ、Ｃ、又はＤに固有であると共に、クラウド１１４にも固有である。
【００６１】
図３及び４において更なる詳細が示される。
【００６２】
完全性リンクは図面では１２０として示される。単一のリンクだけが２つのエンティティ間に既に設定されているが、このリンクは、データ及び完全性などの複数のタイプの情報リンクに用いることができる。この実施例では、リンク１２０が完全性リンク(integrity links)を表す。これらの完全性リンク１２０は、クラウド内の全てのエンティティの周りで完全な円を維持する。これらの完全性リンク１２０は、クラウド１１６内の各エンティティＡ〜Ｄの信用証明(credential)を検証するのに使用される。クラウド内の各エンティティは、クラウド内の他の２つのエンティティの各々によって二度検証されるのが好ましい。例えば、エンティティＢは、Ｂの完全性リンク１２０の両側にあるＡ及びＣによって検証される。
【００６３】
検証は、エンティティが話している人そのものであることを検証するチャレンジレスポンスメカニズムを介して行われ、更に、システムにアクセスしているユーザが誰であるかをエンティティが認識する。ＡがＢにチャレンジしている場合、チャレンジャーＡは、ランダムデータシーケンスを作成し、該シーケンスは、チャレンジされたエンティティＢの公開鍵を使用して暗号化される。エンティティＡは、このデータをエンティティＢに送る。次に、チャレンジされたエンティティＢは、その秘密鍵を使用してランダムデータを復号し、これをＡにチャレンジしたデバイスの公開鍵を使用して再度暗号化する。再度暗号化されたデータは、照合を行うためにＢからチャレンジャーＡに送られる。照合された場合、肯定的な結果の検証が行われたことになる。
【００６４】
検証は周期的に繰り返され、このような方法でデバイスのセキュリティが損なわれるか、又はデバイスがオフラインになった場合、そのエンティティを取り除くように完全性サークルを自動的に再調整する（以下に更に詳しく説明する）。
【００６５】
データリンクは図の１２２で示される。図３では、点線は、クラウド１１６内のエンティティＡ〜Ｄ間で通信するのに使用されるデータリンク１２２を表わす。データリンク１２２は、最初に、他のエンティティを検証するために完全性リンク１２０として設定される。データリンク１２２は、完全性が設定されるまでは有効ではない。データの交換を望むエンティティ間に直接リンクが存在しない場合、データは、中継によって転送することができる。
【００６６】
これらのデータリンク１２２は、必要に応じて作成され、待機（アイドル：idle)時に閉じられる。エンティティ間の直接データリンク１２２は、複数のメッセージが２つのエンティティ間に送られる場合に望ましく、且つ自動的に発生する。次いで、直接データリンク１２２は、待機時において、予め設定された時間、閉じられている。Ａ及びＣなど、既に完全性リンクを持たない２つのエンティティ間のリンクを開くためには、エンティティは、最初に互いを検証することになる。
【００６７】
このデータリンク１２２は、信頼できるエンティティの現在のリストなど、クラウド状態情報を同期させるのに使用することができる。データリンク１２２は、クラウド１１６レコードをクラウド全体にわたって同期させておくのに使用することができる。データリンクは、エンティティ間で全データを転送するのに使用される。データリンクを通じて送られるデータには、データタイプを識別するヘッダ情報が含まれる。同期とは、各エンティティがクラウド１１６の全てのエンティティＡ〜Ｄで利用可能なコンテンツの最新リストを見ることができることを意味する。これらのレコードには、クラウド設定が含まれるが、アプリケーション固有であってもよい。データリンク１２２はまた、クラウドオブジェクトと通信するのに使用することができる。データリンクを通じて送られるパケットのヘッダ情報は、特定のクラウドオブジェクトをアドレス指定できる。
【００６８】
図において、ルックアップリンクは１２４で示される。クラウド１１６はまた、ルックアップポイント１０４へのルックアップリンク１２４を含む。図３に示される実施例では、ルックアップポイントは、ＤＢＭＳを有するコンピュータである。ルックアップポイントは、ＵＲＬ又は固定ＩＰアドレスを有する必要があり、よって、常に見つけることができる。ルックアップリンク１２４は、エンティティ、例えばＡがクラウド１１６にエンティティＡの現在のロケーションを登録しようと試みる場合に使用される。エンティティＡは、ルックアップポイント１０４を介して他のエンティティＢ、Ｃ、及びＤを見つけることができる。この登録通信は、エンティティＡのセッションに使用するために対称鍵を交換する公開／秘密鍵メカニズムを使用して暗号化される。
【００６９】
ルックアップポイント１０４は、エンティティＡ、Ｂ、Ｃ、及びＤのロケーション（位置）を保持する。ルックアップポイント１０４は、ユーザに対して新しいエンティティの作成を管理する。これはまた、クラウドへのこれらのエンティティの結合を管理する。
【００７０】
デバイスマスターキーは、各登録されたデバイスのルックアップポイント上に保持される。このキーは、クラウディ・アプリケーションに対してプライベートデータの全てをロックするのに使用される。例えばデバイスが盗まれた場合には、ルックアップポイント１０４からのこのキーの受信をブロックすることによって、盗まれたデバイスを使用したユーザのクラウドへのあらゆるアクセスを阻止する。
【００７１】
ルックアップポイント１０４は、各ユーザのクラウドの名前を登録するのに使用される。同様にルックアップポイントは、ユーザがクラウドの結合を選択した場合にクラウドに結合するのに必要な二次パスワードである招待パスワードを登録することができる。
【００７２】
ルックアップポイント１０４に記憶されているＤＭＢＳ上で結合問合せ（Join Query）を行い、ユーザが結合可能なクラウドのリストを取得することができる。結合ルックアップは、ルックアップポイント１０４で行われ、結合を行うクラウドに接続することができる。ルックアップは、クラウド名と、任意選択的に招待パスワードとを照合することによって行われる。
【００７３】
クラウド１３０はプライベートに管理することができ、この実施例が図４に示されている。簡単にするために、同じ参照番号が図３に示されたのと同じ要素を表わすのに使用されている。
【００７４】
このクラウド１３０は、ルックアップポイントがクラウドデバイスの１つ、すなわちこの場合エンティティＢのデバイスに位置付けられていることを除いて、クラウド１１６と同じである。この構成では、ルックアップポイントは、１つのクラウド、或いはそれ以外の複数のクラウドの両方を管理することができる。クラウド１１６とは異なり、エンティティＢは、他のエンティティＡ、Ｃ、又はＤがルックアップポイントにアクセスするのに見つることができるように、登録済みＵＲＬ又は固定ＩＰアドレスを持つ必要がある。ルックアップポイントは、クラウドを実行しているのと同じソフトウェアに取り込むことができる。
【００７５】
ここで、デバイスとエンティティとの関係を、図５（ａ）〜５（ｃ）を参照して説明する。
【００７６】
図５（ａ）では、デバイスはエンティティを作成することができる。エンティティが作成されると（すなわち、デバイスをクラウドに接続することによって）、デバイス上のエンティティソフトウェアオブジェクトにリンクすることによって機能を追加することができる。この実施例では、デバイス１３６上のリアルオブジェクト１３４が、リアルオブジェクト１３４に再度リンクするバーチャルオブジェクト１３８を作成することによって、エンティティ１３５に追加される。最終結果はエンティティＩである。
【００７７】
複数のエンティティを結合して別のエンティティを作成することができる。図５（ｂ）では、エンティティＩ、Ｊ、Ｋ、及びＬが結合されて新しいエンティティＭが作成されている。エンティティＩからＬは、単一のデバイスから作成されていなくてはならないという制限はない。例えば、エンティティＭは、１つのクラウドを作成するために共に結合された４つのデバイス、或いはクラウドＭを作成するために共に結合された４つのクラウドを表わすことができる。或いは、クラウド又は２つのデバイス及び２つのクラウドが共に結合されて１つのクラウドを作成する、等である。実施例が図５（ｃ）に示されており、ここでエンティティＸは、エンティティＭ及びＮを結合することによって作成される。エンティティＭは、エンティティＩ、Ｊ、Ｋ、及びＬ上で構成され、エンティティＮは、エンティティＯからＲを結合することによって作成される。
【００７８】
図６は、複数のデバイスにわたって単一のビューを作成するためにオブジェクトがどのように働くかを示している。この実施例では、クラウド１４４を作成するために共に結合されている３つのデバイス１３６、１４０、及び１４２が存在する。図６にはオブジェクトの３つのタイプがあり、すなわち、リアルオブジェクト１４６、１４８、及び１５０；バーチャルオブジェクト１５２、１５４、及び１５６；リモートオブジェクト１５８、１６０、１６２、１６４、１６６、及び１６８である。
【００７９】
リアルオブジェクト１４６、１４８、及び１５０は、それぞれデバイス１３６、１４０、及び１４２の実際のオブジェクトである。これらのオブジェクトによって、デバイスからデータ及び機能にアクセスすることが可能となる。デバイス上で各々が機能の特定のタイプを提供する複数のリアルオブジェクトの存在が可能である。
【００８０】
リアルオブジェクトの実施例は、ファイルブラウザ−ファイル及びフォルダへのアクセスを可能にする；メールブラウザ−電子メールコンテンツ及び機能へのアクセスを可能にする；カレンダーブラウザ−カレンダーへのアクセスを可能にする；音楽ストリーマ−音楽コンテンツへのアクセスを可能にする；ボイスモジュール−ＶＯＩＰのためのデバイスマイクロフォン及びスピーカへのアクセスを可能にする；ビデオストリーマ−ビデオコンテンツへのアクセスを可能にする；チャットモジュール−テキストメッセージングを可能にする；メディアプレーヤ・リモート−デバイスメディアプレーヤのリモート制御を可能にする；リモーアプリケーションモジュール−リモートアプリケーションビュー及び対話を可能にする；広告モジュール−クラウドユーザ固有の情報を有し、ウェブに働きかけて広告を引き込むことができる；バンキング(banking)モジュール−安全なデバイス上にバンククレデンシャル(bank credential)を記憶し、リモートでトランザクションを実行する；プリンタモジュール−クラウドからプリンタへのアクセスを可能にする；パニックモジュール−別のデバイスからのパニック警報を表示する；ウェブＲＳＳフィードモジュール；ＦＴＰサーバモジュール−クラウドから既存のＦＴＰサーバへのアクセスを可能にする；ブログ更新モジュール−クラウドからブログの更新を可能にする；レガシーモジュール−クラウド全体にわたってレガシーアプリケーションへのアクセスを可能にする；データベースモジュール−クラウド全体にわたってデータベースアクセスを可能にする；ウェブカメラモジュール−クラウド内のストリーミングビデオにアクセスする：がある。
【００８１】
バーチャルオブジェクト１５２、１５４、及び１５６は、リアルオブジェクト１４６、１４８、及び１５０にそれぞれリンクするエンティティ１３５、１７０、及び１７２に追加されたオブジェクトである。リアルオブジェクトにリンクされた各バーチャルオブジェクトは、個々のお気に入りセットを有することができる。これによって、１つのエンティティの１つのバーチャオブジェクトが、別のエンティティの同じリアルオブジェクトとは異なるデータ、ひいては別のバーチャルオブジェクトへのアクセスを可能にすることができる。このように、種々のフォルダは、同じファイル共有オブジェクトからのエンティティの各々において共有することができる。
【００８２】
リモートオブジェクト１５８〜１６８は、データリンク１７４を介してバーチャルオブジェクトにリンクされるオブジェクトである。リモートオブジェクト１５８〜１６８は、クラウド上の別のエンティティからバーチャルオブジェクトにアクセスするのに使用される。
【００８３】
リモートオブジェクトとバーチャルオブジェクトの表面は同じであり；下にある通信メカニズムだけが異なる。エンティティ１３５は、オブジェクト１５２、１５８、１６０へアクセスでき、これによって下にある通信メカニズムを介してリアルオブジェクト１４６、１４８、及び１５０にアクセスすることが可能になる。同様に、エンティティ１７０は、オブジェクト１５４、１６２、及び１６４へアクセスでき、これによって下にある通信メカニズムを介してリアルオブジェクト１４６、１４８、及び１５０にアクセスすることが可能になる。また同様に、エンティティ１７２は、オブジェクト１５６、１６６、及び１６８へアクセスでき、これによって下にある通信メカニズムを介してリアルオブジェクト１４６、１４８、及び１５０にアクセスすることが可能となる。この機能及びアクセス方法によって、エンティティ１３５、１７０、及び１７２の各々は、３つのデバイス１３６、１４０、及び１４２全てにわたって共有される単一のビューを使用して同じ機能及びデータへのアクセスが可能となる。
【００８４】
図７は、メタオブジェクトであるオブジェクトの別のタイプを概略的に示している。これは、リアルオブジェクトへのリンクの代わりに、メタオブジェクトが同じエンティティの他のオブジェクトにリンクすることを除いて、バーチャルオブジェクトと同じであり、リンクされたオブジェクトは、それ自体がリモートオブジェクト、バーチャルオブジェクト、又は他のメタオブジェクトになることができる。
【００８５】
本実施例では、クラウド１７６が３つのエンティティ１７８、１８０、及び１８２間に作成されている。デバイス１８６上のリアルオブジェクト１８４は、バーチャルオブジェクト１８５を介してクラウド１７６と共有されている。メタオブジェクト１８８は、リモートオブジェクト１９０にリンクする。
【００８６】
通常のリモートオブジェクト１９０及び１９６と機能的に同一の２つのリモートメタオブジェクト１９２及び１９４がある。ここで、メタオブジェクト１８８は、リモートオブジェクト１９０からその機能及びデータを取得する。リアルオブジェクト１８５は、リアルオブジェクト１８４からその機能及びデータを取得する。
【００８７】
メタオブジェクト１８８は、リンクするオブジェクトに包含されない付加的な機能を作成できる付加的な論理を含む。単一のメタオブジェクトは、クラウド内の複数の（潜在的に全ての）他のオブジェクトにリンクすることができる。
【００８８】
メタオブジェクトの実施例は、警報オブジェクト−変化について１つのオブジェクトを監視し、別のオブジェクトで動作する−；バーチャルフォルダオブジェクト−バーチャルフォルダに保存されるあらゆるデータが自動的にバックアップロケーションに移されるようにバーチャルフォルダを追加するためにファイルフェッチャー(File Fetcher)オブジェクトを使用し、例えば、記憶スペースが制限されたモバイルデバイス上で、これを用いて無制限の写真記憶を可能にすることができる；メール添付オブジェクト−クラウド内のどこからでもファイルを添付できるSend Mail（メール送信）動作を実施するためにファイルフェッチャーオブジェクト及びメールオブジェクトを全てリンクする；バックドア(backdoor)オブジェクト−ソフトウェア上のあらゆる法的要件に対してバックドアを実施するために全てのクラウドオブジェクトへのアクセスを可能にする；パニック警報オブジェクト−他のデバイスにシステム的に又は同時に警告するためにパニックモジュールオブジェクトにリンクする；を含む。
【００８９】
図８は、動作とオブジェクトとの間の関係を概略的に示している。どのオブジェクトも動作を含む。この実施例では、オブジェクト１９４は、動作（i）、（ii）、及び（iii）を含む。メタオブジェクト１９６は、動作（iv）、（vｖ）、及び（vi）を含む。
【００９０】
ここでオブジェクトによる動作の使用について図９を参照して説明する。クラウド１９８は、２つのデバイス２００及び２０２間で作成されている。バーチャルオブジェクト２０４は、デバイス２００上のリアルオブジェクト２０８からエンティティ２０６に追加される。メタオブジェクト２１０は、デバイス２００上のエンティティ２０６に追加される。リアルオブジェクト２０８は、２つの動作（i）及び（ii）を含む。これらの動作は、（vi）及び（vii）としてバーチャルオブジェクト２０４上で利用可能であり、（vi）及び（vii）としてリモートオブジェクト２２０上で利用可能である。
【００９１】
動作のインスタンス(instance)は、動作を使用するために作成される。デバイス２０２上で、リモートオブジェクト２２０の動作（vi）の３つのインスタンスは、（pi）、（pii）、及び（piii）として作成されている。実施例として、オブジェクトが「ファイルフェッチャー(File Fetcher)」であり動作が「GetFile」である場合、３つの同時ファイルリクエスト（pi）、（pii）、及び（piii）を行うことができる。エンティティ２２６でのオブジェクト２２０の動作（vi）は、エンティティ２０６でのオブジェクト２０４の動作（vi）にマップする。これは、デバイス２００のオブジェクト２０８での動作（i）にマップする。
【００９２】
デバイス２０２の動作インスタンス（ai）は、エンティティ２２６のリモートメタオブジェクト２３２から動作（mi）にマップする。動作（mi）は、エンティティ２０６のメタオブジェクト２１０の動作（bi）にマップする。動作（bi）は、バーチャルオブジェクト２０４の動作（vi）の動作インスタンス（biii）を作成する。この実施例での動作（bi）は、単一のオブジェクトと対話するだけであるが、異なるオブジェクト又は同じオブジェクトからの幾つかの動作インスタンスと対話することも可能である。
【００９３】
ここで、不明のエンティティを検出するための上述の完全性リンクの使用について図１０（ａ）を参照しながら説明する。この実施例では、ルックアップポイント２４６を含むクラウド２４４を形成している４つのエンティティ２３６、２３８、２４０、及び２４２が存在する。完全性リンクは、全てのエンティティ２３６、２３８、２４０、及び２４２を共にリンクするサークルを完成するリンク２４８、２５０、２５２、及び２５４によって設定される。図１０（ｂ）に図示するように、エンティティ２３６がオフラインになった場合、新しい完全性リンク２５６がエンティティ２３８と２４２の間に設定される。全ての他のリンクは影響を受けない。
【００９４】
同様にして、このリンクを用いて、クラウドへの接続を望む新しいデバイスを位置付けることができる。図１１を参照すると、クラウド２６０は、エンティティ２３８、２４０、及び２４２の間に設定されている。完全性リンク２４８、２５０、及び２５６は、これらのエンティティ間に存在する。
【００９５】
エンティティ２３６がオンラインになった場合、ルックアップポイント２４６に対し接続部２６２が設定される。エンティティ２３６は、クラウド２６０のロケーション（位置）をルックアップポイント２４６に要求する。ルックアップポイント２４６は、エンティティ２３８が登録済みクラウド２６０コンタクトポイント(contact point)であると判断し、よってルックアップポイント２４６は、エンティティ２３６からの接続が許容されるかどうかをエンティティ２３８に問い合わせる２６４。これはまた、エンティティ２３６についてのロケーション情報をエンティティ２３８に転送している。エンティティ２３８が接続を許容できると応答した２６６場合、ルックアップポイント２４６は、エンティティ２３８のロケーションをエンティティ２３６に伝送する２６７。
【００９６】
次いで、接続２５４がエンティティ２３６とエンティティ２３８との間に設定される。エンティティ２３６及びエンティティ２３８は、互いにチャレンジし検証する（以下に更に詳しく説明する）。エンティティ２３６は、エンティティ２３８から情報をコピーすることによって更新されたクラウド状態情報を有する。最新情報は、他のクラウドメンバーの状態とクラウドメンバーのリストを同期させたものである。この状態更新（クラウド内の他のエンティティのオンライン及び検証された状態を含む）によって、エンティティ２３６は、完全性リンクサークルに組み込まれた場所及びクラウド上で利用可能なものを知ることができる。次に、エンティティ２３６及び２４２は、完全性リンクサークルを完成させるために新しい完全性リンク２５２を設定する。
【００９７】
セキュリティを向上させるためには、デバイスがいずれかのクラウドに接続することができる前に、最初に登録する必要がある。これは、図１２を参照して説明される。これらのデバイスを使用して、ユーザは登録情報を入力しなくてはならない。登録情報は通常、ユーザ名とパスワードを含むことができる。
【００９８】
この実施例では、デバイス２７０は、ルックアップポイント２７４との接続２７２を設定する。登録メッセージは、接続２７２を通じて送られ、これは、登録ユーザ名；登録パスワードのソルトハッシュ；デバイスの固有の識別子；及びローカルネットワークアドレス情報を含む。
【００９９】
登録がルックアップポイント２７４によって受け付けられた場合、次の情報；すなわちクラウディ・アプリケーション情報のロック解除に使用されるマスターキー２７８（これは、デバイス情報；デバイスセキュリティ鍵；暗号化されたファイルシステム鍵；クラウド情報；クラウドセキュリティ鍵を含む）がデバイス２７０に戻される（２７６）。
【０１００】
クラウディ・アプリケーションは、デバイスから離れることのないローカルに記憶された鍵２８０と、デバイス上に記憶されることのないマスターキー２７８であるルックアップポイント記憶情報の両方を使用することによって、デバイス２７０上でロック解除される。
【０１０１】
ここで、図１１で説明されるようにエンティティがクラウドに結合するときのセキュリティ鍵の使用について、図１３を参照しながら説明する。クラウド２８８は、デバイス２９０と２９２の間に設定される。デバイス２９０は、以下のセキュリティ情報、すなわち、クラウド対称鍵２９４、ルックアップポイント公開鍵２９６、秘密鍵３００、公開鍵３０２、及び公開鍵３０４を含む。
【０１０２】
クラウド対称鍵２９４は、各クラウドに固有のランダムに作成されたシーケンスである。データメッセージのクラウドに固有の部分の全ては、一定の時間間隔で変化し各エンティティに対して異なるランダム作成シードと組み合わされた鍵２９４によって暗号化される（図１５（ｂ）、（ｃ）、及び（ｄ）に関して以下に更に詳しく説明する）。
【０１０３】
ルックアップポイント公開鍵２９６は、ルックアップポイント２９８と通信するのに使用される。デバイス２９０の秘密鍵３００は、他のデバイスから送られたメッセージのロック解除に使用される。これは、対称鍵が完全性リンク設定の間に交換されるときに初期の完全性リンク設定についてのみ使用される。デバイス２９０の公開鍵３０２は、信頼できるエンティティが完全性リンク設定の間にデバイス２９０と通信することができるように信頼できるエンティティに渡される。デバイス２９２の公開鍵３０４は、デバイス２９０がデバイス２９０との完全性リンクを設定できるようにデバイス２９２から受け取られる。
【０１０４】
デバイス２９２は、以下のセキュリティ情報；すなわちクラウド対称鍵２９４、ルックアップポイント公開鍵２９６、デバイス２９２の秘密鍵３０６、デバイス２９２の公開鍵３０４、及びデバイス２９０の公開鍵３０２を含む。
【０１０５】
各エンティティ２９０及び２９２は各々、簡単にするためのこの実施例では省略されている追加鍵を含むが、図１５（ｂ）、（ｃ）、及び（ｄ）を参照して以下に更に詳しく説明する。
【０１０６】
デバイス３１０は、クラウド２８８のメンバーではなく、ルックアップポイント公開鍵２９６、デバイス３１０の秘密鍵３１２、及びデバイス３１０の公開鍵３１４を含むだけである。
【０１０７】
ルックアップポイント２９８は、ルックアップポイント公開鍵２９６、及びルックアップポイント秘密鍵３１６を含む。
【０１０８】
図１３で説明されたクラウド２８８に基づいて、クラウドに結合するデバイス３１０の方法について図１４を参照しながら説明する。
【０１０９】
まず、デバイス３１０のユーザは、クラウディ・アプリケーションに以下の情報；すなわちクラウド名（Ｃ）、クラウド招待番号（Ｉ）、クラウドユーザ名（Ｕ）、及びクラウドユーザパスワード（Ｐ）を入力する。
【０１１０】
デバイス３１０は、ルックアップポイント２９８にクラウド名（Ｃ）及び招待番号（Ｉ）を含む結合ルックアップメッセージを送る（３３０）。ルックアップポイント２９８は、このクラウドをサーチし、クラウドに対して固有のエンティティ識別子を戻す（３３２）。
【０１１１】
次にデバイス３１０は、このエンティティＩＤについての接続要求をルックアップポイント２９８に送る（３３４）。ルックアップポイント２９８は、接続要求をエンティティ２９０に送る（３３６）。デバイス２９０は、接続受け付けメッセージによってルックアップ２９８に応答する（３３８）。ルックアップポイント２９８は、デバイス３１０に要求受け付けメッセージを送る（３４０）。
【０１１２】
次にデバイス２９０及びデバイス３１０は接続３４２を設定する。最初に、デバイス３１０は、デバイス２９０に送るための結合メッセージを構成する。メッセージは、Ｃ、Ｕ、Ｐ、及びＩのハッシュドバージョンとランダムシーケンス（Ｓ）を使用して自己暗号化される。デバイス２９０は、結合メッセージをチェックし、ＯＫであれば、デバイス２９０はデバイス３１０についての情報を要求する。
【０１１３】
これに応答して、デバイス３１０は、以下の情報；すなわちデバイス３１０の公開鍵３１４、及びデバイス３１０のエンティティＩＤを２９０に送る。
【０１１４】
デバイス２９０はこの情報を受け取り、クラウド対称鍵２９４、デバイス２９０の公開鍵３０２、及びデバイス２９０のエンティティＩＤを含む招待で応答する。
【０１１５】
デバイス２９０及びデバイス３１０は完全性リンクを設定し、クラウド状態はこのリンクを通じて同期される。状態情報は、クラウドの各メンバーに対するエンティティＩＤのリストを含む。これは、各クラウドエンティティのオンライン状態を受け取る。クラウドレコードは同期され、これらのレコードは、クラウド、エンティティ、及びオブジェクト情報を含む。クラウドレコードは、クラウド内のエンティティ並びにクラウドユーザ／パスワードのリストを含む。クラウドメンバーレコード（各エンティティに対して１つ）は、そのメンバーに対するオブジェクト並びにメンバーに対する表示名のリストを含む。オブジェクトレコード（各オブジェクトに対して１つ）は、オブジェクトがサポートするクラス並びに利用可能な機能タイプのリストを含む。
【０１１６】
同期化はまた、他のクラウドエンティティの公開鍵を含む。このように、エンティティ３１０は、エンティティ３１０及び２９２が完全性リンクを作成し完全性サークルを完成できるように、エンティティ２９２の公開鍵を受け取る。図１５（ａ）は最終状態を示す。
【０１１７】
デバイス２９０は、以下のセキュリティ情報；すなわちクラウド対称鍵２９４、デバイス２９０の秘密鍵３００、デバイス２９０の公開鍵３０２、デバイス３１０の公開鍵３１４、及びデバイス２９２の公開鍵３０４を含む。
【０１１８】
デバイス２９２は、以下のセキュリティ情報；すなわちクラウド対称鍵２９４、デバイス２９２の秘密鍵３０６、デバイス２９２の公開鍵３０４、デバイス３１０の公開鍵３１４、及びデバイス２９０の公開鍵３０２を含む。
【０１１９】
デバイス３１０は、以下のセキュリティ情報；すなわちクラウド対称鍵２９４、デバイス３１０の秘密鍵３１２、デバイス３１０の公開鍵３１４、デバイス２９０の公開鍵３０２、及びデバイス２９２の公開鍵３０４を含む。
【０１２０】
２９０と２９２の間の完全性サークルに位置付けられる追加的エンティティが存在していた場合、エンティティ３１０と２９０間の同期中に、エンティティ３１０は、追加的エンティティの公開鍵を受け取ることになる。このように、エンティティ２１０及び追加的エンティティがデータを共有したい場合、エンティティ２９０又は２９０を経由してこれを中継するのではなく、エンティティ３１０及び追加的エンティティは、その新しい接続を通じて検証チャレンジ及び要求を伝達し、データトラフィックを送信することによって完全性リンクを直接設定することができる。
【０１２１】
静的鍵であり且つクラウド内の全てのエンティティに共通のクラウド対称鍵２９４に加えて、追加の動的鍵を用いて完全性リンクを設定しデータを交換する。これについて、図１５（ｂ）、（ｃ）、及び（ｄ）を参照しながら説明する。
【０１２２】
最初に図１５（ｂ）(i)を参照し、鍵交換を含む完全性リンクチャレンジ及び応答方法について説明する。この実施例では、完全性リンクは、エンティティＡ及びＢ間に設定される。
【０１２３】
エンティティＡでは、ランダムに作成されたシーケンスが各チャレンジに対して生成され（更に周期的に再生成され）、ここでは完全性動的鍵(integrity dynamic key)と呼ばれる。この完全性動的鍵は、対称鍵ＡＢ’６００として使用される。ＡＢ’６００は、Ｂの公開鍵３０４を使用して暗号化され、この暗号化されたバージョンは、チャレンジとしてＢに送られる（６０４）。
【０１２４】
エンティティＢでは、チャレンジが受け取られ、Ｂの秘密鍵３０６を使用して復号され、ＡＢ”６０８として示されるＡＢ’６００の復号バージョンがＢに記憶され、ＡＢ”６０８がＡの公開鍵３０２を使用して暗号化され、応答がＡに戻される（６１２）。
【０１２５】
エンティティＡでは、応答が受け取られ、Ａの秘密鍵３００を使用して復号され、復号されたデータとオリジナルのＡＢ’６００の比較が行われ、照合された場合、リンクは有効であるとしてマーク付けされ、受け付けメッセージ６１６がＢに戻される。
【０１２６】
エンティティＢでは、受け付け応答が受け取られ、リンクが受け付けられたものとしてマーク付けされる。
【０１２７】
この方法は、エンティティＡがエンティティＢにチャレンジするための方法である。同様に、エンティティＢからエンティティＡへのチャレンジもあるが、この場合、使用される完全性動的鍵は、ＢＡ’６２０である。この方法は、図１５（ｂ）(ii)に示される。Ｂで受け取られたオリジナルチャレンジは、ＢがＡを検証する必要がある場合にＢからのカウンタチャレンジをトリガすることになる。この２つのチャレンジは、同時に発生することができる。
【０１２８】
ＡからＢ及びＢからＡへの完全性リンクが受け付けられたものとしてマーク付けされると、そのリンクを通じたデータチャンネルが開かれる。最終状態が図１５（ｂ）(iii)に示されており、ここで上記のプロセスは、次のチャレンジサイクル（例えば１０秒毎に）で繰り返される。古い鍵（ＡＢ’、ＡＢ”、ＢＡ’、ＢＡ”）がデータリンクに対して未だに有効である一時的なオーバーラップ時間期間が存在することができる。このオーバーラップ時間期間の間、完全性動的鍵の古いバージョンと新しいバージョンの両方が有効である。これによって、データリンクは後続のチャレンジの間に開いたままにすることが可能となる。
【０１２９】
ここで、２つのエンティティＡ及びＢ間のデータトラフィックを暗号化する方法について、図１５（ｃ）を参照しながら説明する。
【０１３０】
クラウドは、エンティティＡからエンティティＢにデータＤを送ることを要求する。図１５（ｂ）に関して説明されたように完全性リンクが設定され、エンティティＡ及びＢが完全性動的鍵を交換するようになる。
【０１３１】
エンティティＡは、エンティティＡがその一部である各クラウドに対しデータメッセージを送るのに使用されるシーケンスＲをランダムに生成する。このシーケンスは、クラウド静的対称鍵(cloud static symmetrical key)Ｃと組み合わされて、新しいデータ動的対称鍵ＣＡ’６５０を生成する。Ｒ及びひいてはＣＡ’は、発生するどのようなチャレンジレスポンスにも関係しない周期的時間で再生成される。
【０１３２】
エンティティＡでは、新しいメッセージが開始され（６５６）、ＲがＡＢ’６００を使用して暗号化され６５２、アドレス指定情報を含むメッセージ６５６のヘッダ６６０に付加され６５４；Ｄでは、ＣＡ’６５０を使用して暗号化され（６６４）、メッセージ６５６の本体６６２に付加され、該メッセージは、エンティティＡからエンティティＢに送られる（６６８）。
【０１３３】
エンティティＢでは、メッセージが受け取られ、ヘッダ６６０がＡＢ”６０８を使用して復号され（６９０）、更にＲ’が抽出され（６９２）；クラウド静的対称鍵Ｃ２９４及びＲ’が組み合わされて、ＣＡ”６５０を生成し（６９４）；ＣＡ”６５０が、メッセージ本体６６２を復号しデータＤを抽出７００するのに使用される（６９６）。
【０１３４】
ネットワーク最適化によって、ヘッダを記憶するようにＢに通知するフラグをヘッダに設定することが可能となる。２つの別個のピア間のシーケンシャルメッセージについてメッセージヘッダが同じである場合、ヘッダにフラグがセットされ、受信者（この場合はエンティティＢ）がヘッダをキャッシュする必要がある旨の信号を送る。次のメッセージは、キャッシュされたヘッダを使用するようにエンティティＢに知らせるフラグセットを有することができる。
【０１３５】
エンティティＡが同じクラウドのメンバーであったエンティティＣにメッセージを送りたい場合、エンティティＡは、エンティティＢにメッセージを送るときに使用した同じ値Ｒを使用する。
【０１３６】
簡単にするために、この実施例は、１つだけのクラウドを共有するエンティティＡ及びＢについて説明している。エンティティＡ及びＢが両方とも第２クラウドのメンバーであり、エンティティＡがＢと通信したい場合、そのクラウドで通信する場合に更なる別個のランダムシーケンスＲが生成され使用されることになる。
【０１３７】
クラウドに結合するプロセスについて、図１５（ｄ）を参照しながら説明する。ここで、エンティティＡ、Ｂ、及びＣは同じクラウドのメンバーであり、互いにチャレンジし且つ対称鍵を交換している。
【０１３８】
エンティティＤは、クラウドに結合するプロセス中にある。エンティティＤは、エンティティＣの公開鍵と静的クラウド鍵を含む招待を受け取り、結合要求においてその公開鍵をＣに送っている。
【０１３９】
チャレンジは正常に実行され、Ｃ及びＤは、完全性動的対称鍵を交換している。
【０１４０】
エンティティＤは、Ｂをチャレンジして完全性リンクを完了できるようにＢの公開鍵をＣに要求するプロセス中にある。
【０１４１】
クラウドの登録、結合、離脱、作成、及びクラウド上のコンテンツの共有の方法は、各デバイス及びルックアップポイントにインストールされて、これによってデバイスが上述の方法に従って動作するアプリケーションソフトウェアによって制御される。このアプリケーションソフトウェアの適切なプログラミング言語の実施例は、Ｃ＋＋及びＪａｖａであるが、この代わりに或いはこれに加えて他のいずれかのプログラミング環境を使用することができる。
【０１４２】
図１６は、ソフトウェアのメインソフトウェアモジュールを示す。ソフトウェアは、３つの部分：すなわちユーザインターフェースであるグラフィカルユーザインターフェース（ＧＵＩ）４００と、セキュリティ、デバイス接続、及びクラウドを維持し、エンティティを作成及びリンクする基本エンジンであるコア４０２と、機能及びデータをエンティティに付加するオブジェクト４０４に分けられる。
【０１４３】
新しいアプリケーションは、ＧＵＩ及びオブジェクトを変えることによって作成することができる。例えば、フォルダ及びファイルを示しアクセス可能なファイルフェッチングオブジェクトを付加することによるファイル共有、１つのデバイスが別のデバイスにメッセージを送ることを可能にするチャットオブジェクトを付加することによるメッセージング、付属デバイスから音声データを送ることのできるボイスオブジェクトを付加することによるボイップ（ＶＯＩＰ）、及び他のアプリケーションがある。
【０１４４】
ソフトウェアの設計を図１７に概略的に示す。コアは、サブシステム及びクラウドの全てを作成し初期化するメインマネージャー（Ｍａｉｎ  Ｍａｎａｇｅｒ）４１０を含む。
【０１４５】
ＯＳラッパー（Wrapper）４１２は、下にあるデバイスと通信するソフトウェアモジュールである。これは、暗号化ファイル記憶と、新規／既存のエンティティが使用することができる実施可能なオブジェクトのライブラリを供給する。ＯＳラッパー４１２は、バーチャルオブジェクト及びリモートオブジェクトを作成するのに使用される。ネットワーキング（Networking）４１４は、デバイス間の通信の全てを管理するソフトウェアモジュールであり、エンティティルックアップ、完全性リンク設定、メッセージ中継、及びデバイス固有の暗号化を実行する。
【０１４６】
クラウド４１６は、デバイス上の特定のエンティティ及びこれに関連するクラウドを管理するソフトウェアモジュールである。各クラウドに対してこのモジュールのインスタンスが存在する。クラウド４１６は、クラウド固有の暗号化、クラウド状態の同期化、クラウドレコードの同期化、オブジェクト及び動作メッセージング、及びクラウド完全性リンク維持を実行する。
【０１４７】
クラウド４１８のインスタンスは、デバイス上の単純なクラウドのレイアウトを示す。ＯＳラッパー４２０は、メインマネージャーＯＳラッパー４１２から直接取得される。エンティティネットワーキング４２２は、４１４から取得される。
【０１４８】
クラウド４２４は、メインマネージャー４１０によって管理されるクラウドの別のインスタンスである。これは、クラウドと同じソフトウェアを含む。
【０１４９】
クラウド４２６は、クラウド４２６上のエンティティであるクラウド４２４上に構築されたクラウドであり、実際にはクラウド４２４である。クラウド４２６は、メインマネージャー４１０にバックするのではなく、クラウド４２４を参照する。ＯＳラッパー４２８は、クラウド４２４からのＯＳラッパー４３０から取得される。クラウド４２６からのあらゆるセーブされた非ユーザデータが、クラウド４２４全体にわたって自動的に伝搬され、これは、クラウド状態を含むが、オブジェクトデータ要求からのデータは含まない。クラウド４２６に付加することができる実施可能なオブジェクトのライブラリは、クラウド４２４からのライブラリである。エンティティネットワーキング４３０は、クラウド４２４からのエンティティネットワーキング４３２から取得される。
【０１５０】
更に、クラウド４３４は、クラウド４２６上に構築されたクラウドである。ＯＳラッパー４３６は、クラウド４２６からのＯＳラッパー４４０から取得される。クラウド４３４からのあらゆるクラウド状態情報が、クラウド４２６全体にわたって自動的に伝搬される。同様に、クラウド４３４に付加することができる実施可能なオブジェクトのライブラリは、クラウド４２６からのライブラリである。エンティティネットワーキング４４２は、クラウド４２６からのエンティティネットワーキング４４４から取得される。
【０１５１】
ここで、図１８を参照して、２つの相互接続されたクラウドに関係するソフトウェアについて説明する。全体で５つのデバイスと２つのクラウドがある。クラウドＡは、デバイス（この場合これらはエンティティでもある）４５０、４５２、及び４５４を含む。クラウドＢは、デバイス４５４、４５６、及び４５８を含む。リンク４６０は、クラウドＡの完全性リンクを含む。リンク４６２は、クラウドＢの完全性リンクを含む。
【０１５２】
デバイス４５０のユーザがクラウドＢと対話する場合、デバイス４５６のリアルオブジェクトにデータを送る必要がある。エンティティネットワーキングメッセージがデバイス４５０からデバイス４５６に送られる。このメッセージは、クラウドＡのクラウドＢコンタクトポイント（デバイス４５４）に中継される。
【０１５３】
次に、５つのデバイス４７０、４７２、４７４、４７６、及び４７８上に広がった３つのクラウドＡ、Ｂ、及びＣに関するソフトウェア及びリンクについて図１９の概概略図を参照しながら説明する。
【０１５４】
クラウドＡは、デバイス４７０、４７２、及び４７４上に存在するエンティティから構成される。クラウドＢは、デバイス４７０、デバイス４７６、デバイス４７８、及びクラウドＡ上に存在するエンティティから構成される。クラウドＣは、デバイス４７２及びデバイス４７４上に存在するエンティティから作られる。
【０１５５】
クラウドＡの完全性リンクは、デバイス４７０をデバイス４７４に接続し、デバイス４７０をデバイス４７２に接続し、最後にデバイス４７２をデバイス４７４に接続するリンク４８０から構成される。クラウドＢの完全性リンクは、クラウドＡをデバイス４７８に接続し、クラウドＡをデバイス４７０に接続し、デバイス４７０をデバイス４７６に接続し、及びデバイス４をデバイス４７８に接続するリンク４８６から構成される。最後に、クラウドＣの完全性リンクは、デバイス４７２をデバイス４７４にリンクするリンク４９０である。
【０１５６】
次に、更なる実施例に関するソフトウェア及びリンクについて図２０を参照しながら説明する。この実施例には４つのクラウドＡ、Ｂ、Ｃ、及びＤがある。
【０１５７】
クラウドＡは、デバイス５００、５０２、及び５０４を含む。クラウドＢは、デバイス５００、５０６、５０８、及びクラウドＡを含む。クラウドＣは、デバイス５０２及び５０４を含む。最後に、クラウドＤは、クラウドＡ、クラウドＢ、及びクラウドＣを含む。リンク５１０は、クラウドＡの完全性リンクを含む。リンク５１２は、クラウドＢの完全性リンクを形成する。リンク５１４は、クラウドＣの完全性リンクを形成する。最後にリンク５１６は、クラウドＤの完全性リンクを形成する。
【０１５８】
図２０に示されるクラウドのアプリケーションは、以下の通りとすることができ、：すなわち、クラウドＡ＝ボスの仕事クラウド、デバイス５００＝ボスのオフィスＰＣ、デバイス５０２＝ボスの携帯電話、デバイス５０４＝ボスのラップトップ、クラウドＢ＝ボスの共有クラウド、クラウドＡ＝ボスの仕事クラウド（このクラウドから共有コンテンツへのアクセスを可能にする）、デバイス５００＝ボスのオフィスＰＣ（クラウドＡの一部として共有されていた可能性のないＰＣ上のコンテンツへのアクセスを可能にする）、デバイス５０６＝レセプショニストＰＣ（ボスのスケジュールなどへのアクセスを可能にする）、デバイス５０８＝アシスタントＰＣ、クラウドＣ＝ボスの携帯５０２とラップトップ５０４との間のボスのプライベートクラウド、クラウドＤ＝アドミニストレータクラウド（メンバーからこのクラウドにアクセス可能なプライベートデータを有することができず、これによってデバイスのメンテナンス及びモニタリングオブジェクトへのアクセスだけが可能になる）。
【０１５９】
ここで、ソフトウェアを使用する実施例について、図２１〜４７を参照しながら説明する。
【０１６０】
図２１は、ルックアップポイントＧＵＩのＧＵＩを示す。例えば、これは、図２のルックアップポイント１０４を動作させるサーバのユーザに提示されるインターフェースとすることができる。このＧＵＩでは、クラウディアドミニストレータに登録されたデバイスがシステムに登録される。
【０１６１】
図２２は同じＧＵＩを示しているが、この場合には、アドミニストレータに登録したユーザ全てが表示されている。ここでは、登録されている１人のユーザ「Ｊａｓｏｎ」が存在し、２００のデバイスのうちの３９、及び４００クラウドのうちの１４に関連付けられている。これは、ユーザ「Ｊａｓｏｎ」が２００の別個のデバイスをルックアップポイントに登録し、これらのデバイスを使用して４００クラウドを作成することが可能であることを意味する。現在のところ、３９デバイスが１４クラウドと共に登録されている。
【０１６２】
上述のデバイスのいずれかとすることができるデバイス上でユーザに提示されるインターフェースをユーザの視点から図２３に示されている。この実施例では、デバイスはパーソナルコンピュータであり、「ＴＥＬＰＡＣ−ＤＥＶ」と呼ばれる。これは、ユーザ用のイントロダクション／ウェルカム画面である。
【０１６３】
ユーザが既にルックアップポイントに登録されている場合、ユーザは、既存のユーザであることを示す「Ｏｌｄ」を選択することができる。図２４に示されるように、ユーザは、ユーザ名とパスワードを入力するよう指示される。ユーザが「ＯＫ」をクリックすると、この情報は図１２に関して上記で説明されたようにルックアップポイントに送られる。次いで、デバイスは、ルックアップポイントからデバイス上のアプリケーションをロック解除する鍵を受け取る。ここでデバイスのソフトウェアアプリケーションの全機能がユーザに利用可能となる。
【０１６４】
図２５に示されるように、アプリケーションは実行されているが、デバイスはどのクラウドにも接続されていない。クラウドを作成するために、ユーザは、「Create New Cloud（新しいクラウドの作成）」を選択し、図２６に示されるようにダイアログボックスが現れる。ユーザは、クラウドの名前、そのユーザ名及びパスワードを入力する。これは、新しいクラウドDemoをルックアップポイントに登録している。
【０１６５】
ディスプレイは、ルックアップポイントに同期されており、クラウドDemoのサマリーを図２７に示される拡張可能ツリーとしてユーザに表示させる。ここでクラウドは、３つのオブジェクト；すなわちファイル、メール、及びデバイスから構成されている。現在のところコンテンツは共有されておらず、TELPAC-DEVは、クラウド上の唯一のデバイスである。
【０１６６】
ユーザがDemoクラウド上のメールを共有したい場合、ユーザは、Demoクラウドのサマリーをクリックすることによって現れるポップアップボックスで「local mail sharing（ローカルメール共有）」を選択する。これによって、図２８のダイアログボックスが現れ、ユーザは、チェックボックス「Share mail（メール共有）」を選択する。これによって、デバイス名「TELPAC-DEV」が図２９に示されるようにDemoクラウドのサマリーにおける見出し「メール」の下にリストされるようになる。「メール」見出しの下のTELPAC-DEVを選択することによって、TELPAC-DEVで利用可能なメールのサマリーがインターフェースの右側に表示される。サマリーを使用すると、ユーザはTELPAC-DEV上に記憶されているメールフォルダをナビゲートすることができる。
【０１６７】
ユーザはまたファイルを共有することができる。図３０に示されるように、Demoクラウドサマリーをクリックすることによって、ユーザは、オプション「local mail sharing（ローカルファイル共有）」を選択することができる。これによって、図３１のダイアログボックスが表示されるようになる。ユーザは、ダイアログボックスから「Add（追加）」を選択し、図３２に示されるダイアログボックスを表示させることができる。ここでユーザはタイトルを入力し、ファイルがサマリー内にリストされ、この実施例では名前「Docs」が選択されている。ユーザはまた、共有されるフォルダを選択するためにブラウズすることが可能である。この実施例では、フォルダは、パス名「Ｃ：＼Documents and Settings＼Jason＼My Documents」によって識別される。ユーザは、「ＯＫ」を選択して、図３１のダイアログボックスにユーザを戻すが、図３３に示されるように選択されたフォルダ及びシェア名がダイアログボックス内にリストされる。ダイアログボックスで「ＯＫ」を選択することによって、フォルダは、クラウド上で利用可能になる。これは、図３４に示されたDemoクラウドの更新されたサマリーに示されており、ここでTELPAC-DEVデバイスが見出し「Files（ファイル）」の下にリストされる。TELPAC-DEVによって共有されるフォルダのサマリーは、インターフェースの右側に表示される。
【０１６８】
ユーザはまた、異なるデバイスからクラウディ・アプリケーションを使用することができる。以下の実施例では、ユーザはWM-Jasonと呼ばれるＰＤＡを現在使用している。ここで、ＰＤＡでユーザに提示することができるインターフェースについて説明する。
【０１６９】
ユーザには図３５に示されるウェルカム画面が提示される。図２４と同様に、ユーザは、図３６に示されるようにアプリケーションをロック解除するためにログインしなくてはならない。
【０１７０】
図３７に示されるように、ログインすると、ユーザは未だクラウドに登録していないので、コンテンツを見ることができない。クラウドに登録する段階は、図３８、３９、及び４０に示されている。図１４を参照して説明されたように、最初にユーザは、「join a cloud（クラウドに結合）」を選択し、クラウド名（内部結合から作成されたピックリストから取ることができる）、クラウドにおけるユーザ名、パスワード、及びクラウド招待番号を入力する。この場合、ユーザは、「Demo」と呼ばれるクラウドに結合するよう選択している。
【０１７１】
ユーザのデバイスは、クラウド内の１つ又はそれ以上のデバイスへの完全性リンクを作成することによって自動的にクラウドに結合し、次いで、クラウドの状態が、このリンク全体にわたって同期化される。この同期によって、クラウドで既に利用可能であるデータがデバイスによってアクセス可能になる。
【０１７２】
図４１に示されるように、コンテンツを有するクラウドDemoが利用可能である。見出しDemoをクリックすることによって、コンテンツツリーリストが図４２に示されるように展開される。これは、クラウドDemo上に接続されている２つのデバイス、すなわちデバイス「TELPAC-DEV」及び「WM-Jason」を有することを示している。クラウドに接続されているデバイスTELPAC-DEVから、メール、コンタクト、及びファイルが利用可能である。
【０１７３】
図４３は、TELPAC-DEVのコンテンツがデバイス上のインターフェースを使用してどのようにナビゲートできるかを示す。「ファイル」見出しの下の「TELPAC-DEV」を選択すると、名前「Docs」の下で共有されるフォルダのツリーダイアグラムとその下にリストされるサブフォルダの全てを表示することができる。サブフォルダ「Telpac」（図示せず）が選択された場合、そのフォルダに含まれる文書のリストが図４４に示されるように表示される。これらの文書のいずれか１つを選択することによって、好ましくは２つのデバイス間の直接リンクを使用して文書がTELPAC-DEVデバイスからデバイスにダウンロードされる。
【０１７４】
更なる実施例として、ユーザは、図４５に示されるようなデバイス上でビューすることができるグラフィクファイルを含むものからフォルダ「バックアップ」を選択できる。
【０１７５】
図４２を再度参照すると、メール見出しの下のTELPAC-DEVを選択することができ、これは、図４６に示されるように共有されているTELPAC-DEV上のメールフォルダのサマリーをユーザに提示する。サマリーツリーを使用してフォルダを選択し、図４７に示されるようなクラウドを使用してアクセス可能な電子メールのサマリーの詳細をユーザに提示することができる。
【０１７６】
広範に説明される本発明の精神又は範囲から逸脱することなく、特定の実施形態に示される本発明に対して多数の変形及び／又は修正を行い得ることは当業者には理解されるであろう。
【０１７７】
例えば、クラウド上のエンティティによってビューされる共有インターフェースは、例えば、人が家の中を移動して本棚及びＴＶなどのデバイスを選択し、共有コンテンツにアクセスするようにして芸術的に表示することができる。
【実施例】
【０１７８】
ここで幾つかの付加的な実施形態及び実施例を示す。
【０１７９】
図４８では、この実施形態では「Razberry」と呼ばれるアプリケーションの起動手順を概説するためにフローチャート（６００）が使用される。起動は、この実施形態では自動化される。アプリケーションがデバイスで初期化されると、スプラッシュ画面（６０１−「Ａ」）が表示され、次に、登録画面（６０２−「Ｂ」）に続き、ここでユーザは、先に進むためにはユーザ名とパスワードを入力しなくてはならない。これらの詳細は、この記憶された情報のルックアップからプログラムによって確認される。ログイン画面の実施例が図４９に示されている。ログイン画面はまた、図４９に示されるようにユーザの詳細を忘れてしまったユーザを管理するための機能を有することができる。
【０１８０】
成功した登録に続いてルックアップから戻されたセキュリティ情報を使用して（詳細は図５０を参照）ユーザがプリケーションのロック解除を正常に行うと（６０３−「Ｃ」）、アプリケーションは、初期「Razberry」クラウドがデバイスで利用可能かどうかチェックする（６０４−「Ｄ」）。利用可能でない場合（６０５）、ユーザは、このクラウドを作成するよう招待される。初期クラウドが既にデバイス上で利用可能である場合、該初期クラウドが始まる（６０６）。初期クラウドが行われると、ＧＵＩが表示され（６０７）、これによってユーザは「Razberry」アプリケーションを利用することが可能になる。
【０１８１】
ロック解除されたデータのチェックが行われ（「Ｄ」）、「Razberry」クラウドがこのデバイスで既にセットアップされているかどうかを調べる。デバイスは、「Razberry」クラウドを未だ結合しておらず（「Ｅ」）、よって現在登録されているユーザがどのクラウドを有しているかを見つけ出すためにルックアップからの要求が実行される。（詳しくは図５１を参照。）結果がチェックされ（「Ｆ」）、「Razberry」クラウドがこれまでに作成されていたかどうかを調べる。作成されていた場合（「Ｇ」）、管理用パスワードをユーザが入力することができ、或いは固定パスワードをアプリケーションが使用することができる。このパスワードは、新しいデバイスをクラウドに追加するのに必要である。固有のクラウドＩＤがルックアップによってチェックされる（「Ｈ」）。クラウドＩＤチェックが失敗すると（「Ｉ」）必ずローカルRazberryクラウドデータが取り除かれる。結合は、アプリケーションによって行われ（「Ｊ」）、Razberryクラウドに結合しようとする。結合が失敗すると（「Ｋ」）、ユーザは、新しいクラウドを開始するように指示される。ユーザが新しいクラウドを開始することを選択した場合（「Ｌ」）、既存のクラウドを削除するようにルックアップが示される。新しい管理用パスワードは、ユーザ又はアプリケーションによって設定される（「Ｍ」）。Razberryクラウドは、新しい管理用パスワードを使用して作成される（「Ｎ」）。既存のクラウドは、ローカルに記憶されたデータを使用して起動される（「Ｏ」）。
【０１８２】
上述のように、クラウドは、幾つかのデバイスを含み、各デバイスの登録の詳細が図５０に示すようにフローチャートで例示される。
【０１８３】
デバイスは、デバイスのランダムに生成された固有のＩＤを登録ユーザ名及びパスワードと共に渡すことによってルックアップに登録する（「Ａ」）。ルックアップは、ユーザ登録をチェックし、このデバイスがこのユーザの下で登録されていることを確認する（「Ｂ」）。このデバイスが現在のユーザにとって未知のデバイスである場合（「Ｃ」）は常に、ルックアップはこのユーザの登録詳細をチェックし、これらに新しいデバイスを追加することが可能であるかどうかを調べる。新しいデバイスを追加できる場合（「Ｄ」）、ルックアップ上でこのデバイスについての新しい登録レコードが作成される。新しい登録レコードは、ランダムに作成されたセキュリティ鍵を含む。ランダムに作成されたセキュリティ鍵はデバイスに戻される（「Ｅ」）。デバイスは、ランダムに作成されたセキュリティ鍵を使用してそのローカルクラウドアプリケーションデータをロック解除する（「Ｆ」）。
【０１８４】
更に、ユーザは、幾つかのクラウド、及び図５１に示されるリストを取得するための手順へのアクセスを有することができる。デバイスは、ユーザの登録に関連する利用可能なクラウドのリストを要求する（「Ａ」）。ルックアップは、要求を受け取り（「Ｂ」）、要求側デバイス登録において登録されたクラウドのリストを検索する。リストは、要求側デバイスに戻される（「Ｃ」）。利用可能なクラウドのリスト（「Ｄ」）は、デバイスによって受け取られる。
【０１８５】
ユーザがアクセスへの許可を有するクラウドに結合可能にするプロセスを図５２に示す。クラウド名及び招待が、ルックアップ結合を行うためにルックアップに送られる（「Ａ」）。ルックアップは、現在の登録に対してクラウド名及び招待についての一致を求めて登録クラウドをサーチする（「Ｂ」）。一致したクラウドについての固有のクラウド識別子（「Ｃ」）がデバイスに戻される。デバイスは、クラウドｉｄ（「Ｄ」）を受け取り、そのｉｄを使用してルックアップを実行する。ルックアップを介してクラウドへの直接接続が設定される（「Ｅ」）（図５９を参照）。
【０１８６】
結合要求がクラウドのコンタクトデバイスに送られる（「Ｆ」）。コンタクトデバイスは、クラウドとのコンタクトの好ましい初期ポイントに登録された現在のデバイスである。この要求は、クラウドへの招待のためのクラウド名、招待名、及びユーザ名／パスワードを含む。受け取られたクラウド結合クレデンシャル（「Ｇ」）は、クラウドのあらゆるアクティブな招待に対してチェックされる。招待（「Ｈ」）は、クラウド名、招待及びユーザ名／パスワードを一致させることによって検証される。結合が受け付けられた旨の応答（「Ｉ」）がジョイナーに送られる。そのデバイス情報に対するジョイナーへの要求（「Ｊ」）が送られる。デバイス情報（「Ｋ」）は、クラウドコンタクトデバイスに返送される。この情報は、デバイス結合の識別子及び結合デバイスの公開鍵を含む。受け取られたデバイス情報（「Ｌ」）は、メモリ内に記憶される。クラウド識別子、クラウドセキュリティ鍵、このクラウド上のデバイスに対する現在のデバイスｉｄのリスト、及びこのデバイスの公開鍵を含む招待（「Ｍ」）がジョイナーに戻される。ジョイナーは、クラウド（「Ｎ」）をアプリケーションデータに追加し、クラウドを起動し初期化する。ジョイナー（「Ｏ」）は、全てがｏｋであることをクラウドコンタクトデバイスに応答する。
【０１８７】
クラウドコンタクトデバイス（「Ｐ」）はｏｋを受け取り、メモリに記憶されたジョイナーの情報をアプリケーションデータにロードする。結合デバイス（「Ｑ」）は、このクラウドのデバイスのリストに追加される。検証プロセス（「Ｒ」）は、ジョイナーとクラウドコンタクトデバイスとの間で開始される。ピア間の標準同期プロセス（「Ｓ」）は、クラウドのデバイス及びオブジェクトレコードと共にクラウド上の他のデバイスのセキュリティ鍵によってジョイナー(joiner)を更新する。
【０１８８】
ユーザにクラウドを作成させるためのプロセスが図５３に示される。クラウドの固有の識別子、クラウドの名前、及びこのクラウドに結合するのに使用されることになる招待を含む作成メッセージ（「Ａ」）が、デバイスによってルックアップに送られる。ルックアップ（「Ｂ」）は、デバイスが行っている登録においてクラウド名が未使用であることをチェックする。同じ名前は、各登録毎にのみ使用することができる。ルックアップは、現在の登録が新しいクラウドの作成を可能にすることをチェックする（「Ｃ」）。クラウドのレコード（「Ｄ」）が登録データベースに追加される。デバイス（「Ｅ」）は、クラウドを作成することが許可されたことをルックアップによって知らされる。デバイス（「Ｆ」）は、クラウドの起動及び初期化に進む。各デバイス（「Ｇ」）は、メンバーであるクラウドの固有の識別子のリストを含む。このリストは、新しいクラウド識別子によって更新される。ユーザがクラウドに追加される（「Ｈ」）。招待（「Ｉ」）は、他のデバイスがこのクラウドに結合することを可能にするクラウドに付加される。新しいクラウド（「Ｊ」）の作成は、ユーザに提示するためのＧＵＩに通知される。
【０１８９】
ユーザがアクセスできるクラウドが決定されると、各クラウドのコンテンツをユーザに利用可能にすることができる。デバイスに登録されている各クラウドの起動プロセスのフローチャートが図５４に示されている。デバイス（「Ａ」）は、特定のクラウドの固有の識別子がルックアップに登録されているかどうかを確認するよう要求するメッセージをルックアップに送る。固有のクラウド識別子のリストは、デバイスがそのメンバーであるクラウドに対して各デバイス上のアプリケーションによって記憶される。ルックアップ（「Ｂ」）は、そのデータベース内でクラウド識別子をサーチする。デバイス（「Ｃ」）は、ルックアップの結果を戻される。固有のクラウド識別子（「Ｄ」）がルックアップ上で見つかると常に、デバイスはクラウドの初期化に進む。ＧＵＩは、ユーザに提示するのに利用可能なクラウドについて通知される（「Ｅ」）。クラウドの固有の識別子（「Ｆ」）がルックアップで見つからなかった場合、クラウドはこのデバイスから削除される。
【０１９０】
初期化手順フローチャートが図５５に示される。デバイス上に既に登録されている各クラウドに対して、この結果に対するメッセージがルックアップに送られる（「Ａ」）。クラウドｉｄは、ルックアップデータベースで見つけられる（「Ｂ」）。見つけられた場合（「Ｃ」）、クラウドが初期化される（「Ｄ」）。各クラウド（「Ｄ」）は、クラウド固有の通信に使用される固有の対称暗号鍵を有する。各クラウド（「Ｅ」）は、クラウドの完全性を維持するのに使用される完全性スレッドを有し、これは、クラウドデータの同期化、クラウド状態データの維持、クラウド完全性サークルの維持、及びクラウドセキュリティの維持を含む。各クラウド（「Ｆ」）は、このデバイス上のオブジェクトに対する動作要求を処理するのに使用されるオブジェクト動作ワーカースレッドを含む。新しいクラウド（「Ｇ」）に対して、クラウドレコードが、クラウド、ユーザ、招待、及びメンバーについて追加される。レコードは、このデバイスレコードに対して追加される（「Ｈ」）。クラウドレコードは、同期化のために登録される（「Ｉ」）。全てのアクティブなクラウド招待が、インバイターモジュールに登録され（「Ｊ」）、これによって他のデバイスがこのクラウドに結合可能になる。
【０１９１】
図５６には、クラウドオブジェクトにおける全てのデバイスにわたって単一のビューを読み込むためのプロセスの段階を指示するフローチャートを示しており、これらのオブジェクトとの更なる対話のためにクラウド内のオブジェクト全てをユーザに表示することが可能となる。図５６Ａに示されるように、システムは、デバイス上のデータ及び機能を表わす３つのメイン層、ＧＵＩ、通信コア、及びオブジェクトを有する。図５６Ａの図表は、３つのデバイスの配置を示している。左側の第１デバイスは、そのコアが３つのデバイス全てにわたって延びているように動作する。これによって、第１デバイス上のＧＵＩは、３つのデバイス全てのオブジェクトによって動作不可能になった機能及びデータの全てにアクセスすることが可能となる。この状況は、３つのデバイスの全てに対して繰り返される。
【０１９２】
図５６Ｂに示されるように、コア間のリンクは、インターネット、或いはデバイスを接続する他のネットワークにわたって維持される。
【０１９３】
図５６Ｃに示されるように、デバイスの特定のグループ化（すなわちクラウド）において、上記のデータレコードが各デバイス上で維持される。これらのレコードは、クラウド内のレコードマネージャーによって継続して同期化される。各レコードは、各クラウドに対して異なる固有の識別子によって識別される。
【０１９４】
「クラウドレコード」は、デバイスのレコード、ユーザのレコード、及び招待のレコードへの参照を含むクラウドのマスターレコードである。このレコードは、クラウド全体にわたって継続して同期化され、クラウドの初期作成後は変化しない。「デバイスレコード」は、クラウド内の各デバイスの「デバイスレコード」に対する参照のリストを含む。デバイスレコードは、新しいデバイスがクラウドに結合したときに更新される。「デバイスＡレコード」は、デバイスＡについて維持されるレコードである。デバイスＡはこのレコードを作成し、このレコードを更新できる唯一のデバイスである。レコードは、Ａの各オブジェクトに対して維持されるオブジェクトレコードへの参照のリストを含む。「オブジェクトＡ１レコード」は、オブジェクトＡ１上で実行可能な可能な動作のリストを含む。動作は、フォルダのリストを取得する、ファイルのリストを取得する、電子メールを送る、コンタクトを追加する、その他を行うことができる。レコードはまた、オブジェクトに包含されるクラスをリストする。クラスは、要求される動作の予め定められたセットである。クラスの実施例は、ファイルブラウザ、電子メールブラウザ、コンタクト、カレンダー、その他を含む。オブジェクトが特定のクラスを有する場合、これは特定の動作のサブセットを含むと見なすことができる。これは、オブジェクトの標準化を可能にする。
【０１９５】
オブジェクト共有における段階を説明するフローチャートを図５７に示す。フローチャートの（「Ａ」）から（「Ｈ」）で示される段階は、オブジェクト共有を実行するために続く。
【０１９６】
幾つかの実施可能なオブジェクト通信のフローチャートが図５８に示されている。これはまた、ＸＭＬを介して発生する対話の実施例を示す。種々のフォーマットでのデータは、この実施例に示されるようにＸＭＬとすることができ、或いは他の何らかの規格とすることができる共通規格によって管理される。しかしながら、ＸＭＬは詳細でかなりの冗長性を含む傾向があるので、動作するのに必要な情報だけを含む特定のより簡潔な規格を「Razberry」アプリケーションと共に使用するために開発することができる。図５８の実施例では、メッセージがＸＭＬを使用して前後に渡され、これによってアクティビティの発生が可能になる。段階（「Ａ」）は、フローチャートに示されるように実行される。
【０１９７】
デバイス接続及びルックアップの方法を説明するフローチャートが図５９に示されている。これは、接続マトリクスを利用する。
【０１９８】
図５９では、デバイスＲがデバイスＬ（「ａ」）への接続を望み、デバイス接続／ルックアップ要求をルックアップに送る。ルックアップは、するためにそのデバイス登録データベース（「ｂ」）をサーチして、デバイスＬについてのネットワークアドレス情報を検索する。この情報は、デバイスＬのＩＰアドレス並びにデバイスＬのルックアップによって調べられたＩＰアドレスである。ルックアップは、新しい接続リンクのための接続マトリクスに要求を送る。接続マトリクスは、２つのネットワークポート間で透過的にデータを転送するためにリンクされている２つの新しいネットワークポート（「ｃ」）を割り当てる。これらの２つのリンクされたアドレスＭ１及びＭ２は、ルックアップに戻される。
【０１９９】
ルックアップは、接続マトリクスを受け取る（「ｄ」）。接続要求がデバイスＬに送られる（「ｅ」）。この接続は、デバイスＲ及びＭ２のネットワークアドレス情報（接続リンクの半分）を要求する。デバイスＬは要求（「ｆ」）を受け取り、接続を受け付けることを望むか否かを決定する。この決定は、許可された又は禁止されたＩＰアドレスリストに基づくことができる。デバイスＬは、接続が受け付けられた旨を応答する（「ｇ」）。デバイスＬは、接続マトリクス上のＭ２に接続する（「ｈ」）。デバイスＬは、デバイスＲとの直接接続を設定しようとする（「ｉ」）。この直接接続の試みは、デバイスＲの実際のアドレス及びルックアップによって調べられたアドレスの両方を使用する。ルックアップは、接続に対してデバイスＬからｏｋを受け取り（「ｊ」）、接続マトリクスＭ１と共にデバイスＬのロケーションをデバイスＲに渡す。デバイスＲは、デバイスＬの接続情報を受け取る（「ｋ」）。デバイスＲは、Ｍ１を使用して接続マトリクス上のＭ１に接続する（「ｌ」）。接続マトリクスにおいて、Ｍ１及びＭ２両方への接続の存在が接続リンクを開く（「ｍ」）。これが開かれると、デバイスＲ及びデバイスＬは、直接通信を始めるのに使用することができるハンドシェークメッセージを受け取る。デバイスＲは、デバイスＬとの直接接続を作成しようとする（「ｎ」）。この接続が設定された場合、接続マトリクスリンクが開放され、全てのデバイス通信がシームレスに直接リンクに切り替わる。
【０２００】
図６０には、「Razberry」アプリケーションでのメッセージ交換のプロセスを示すフローチャートが示されている。これは、クラウド内の種々のサブシステムがどのようにアドレス指定されるかを示す。通信交換ボックスによって受け取られたネットワークデータは、データの受信者を識別するヘッダ情報を含む（（「ａ」）を参照）。
【０２０１】
受信者は、：（i）このデバイス上のクラウドに対する結合要求を管理及び処理し、要求を受け付け又は拒否するインバイター(Inviter)、（ii）クラウドコンタクトデバイスを介してクラウドへのクラウド結合要求を管理するジョイナー(Joiner)、（iii）ジョイナーとインバイターの間の中継ポイントであるメディエーター(Mediator)、（iv）デバイスチャレンジメッセージ（Ｈ）及びデバイス／クラウドメッセージ（Ｉ）を管理するピア通信、（v）全てのクラウドに対してルックアップとの通信を管理し、更にルックアップからの接続要求を管理するルックアップ通信とすることができる。
【０２０２】
デバイスクラウド通信は、メッセージがそれによって受けとられるこのデバイス上のクラウドデバイスペアを識別する第２ヘッダを含む（「（ｂ）」を参照）。メッセージは、正しいクラウドに切り替えられる。
【０２０３】
クラウドメッセージは、クラウドメッセージのタイプ及び受信者を識別する第３ヘッダを含む（「（ｃ）」を参照）。受信者は、（i）これらのメッセージがクラウド状態の交換及びクラウドセキュリティ鍵の同期化を行っている完全性マネージャー、（ii）これらのメッセージが、単一のビューを構築するのに使用されるクラウド固有のレコードを同期させるレコード同期化マネージャー、（iii）これらの要求がこのデバイス上のオブジェクトでの動作を実行するために受け取られる動作要求に対するキュー(Queue)、のうちの１つである。
【０２０４】
追加的なメッセージ交換は、ファイルオブジェクト、メールオブジェクト、チャットオブジェクトなどの特定のオブジェクトにメッセージをターゲットするために行われる（「（ｄ）」を参照）。リモートオブジェクトである場合、メッセージは、リモートオブジェクトから要求された特定の動作に切り替えられる（「（ｅ）」を参照）。
【０２０５】
クラウド完全性の維持のための幾つかの段階の実施例を示すフローチャートが図６１に示される。もはやアクセスされないクラウドレコード（「（ａ）」）は、アプリケーションのメモリ使用量を低減するためにメモリから取り除かれる。デバイスがクラウドの他のいずれのデバイスをも認識しない（「（ｂ）」）場合は常に、デバイスはクラウドを捜そうとする。クラウドが見つからない場合、デバイスは、クラウドコンタクトポイントでルックアップに登録する。クラウドのデバイス識別子のリストは、継続して同期される（「（ｃ）」）。これについて図６３で更に説明する。デバイスがオンライン及びオフラインになると常に、決定（「（ｄ）」）が、クラウド内の各オンラインデバイスによってデバイスが新しいクラウドコンタクトポイントになるべきかどうかを決定するための判断が行われる。左側完全性リンクが周期的にチェックされ（「（ｅ）」）、リンクがセット時間期間後にチャレンジされていない場合、新しいチャレンジが行われる。別のセット時間期間後にチャレンジが応答されていない場合、ピアはオフライン及び無効としてマーク付けされる。クラウドでの全ての他のデバイスは、このデバイスのオフライン状態によって即座に更新される。右側完全性リンク（「（ｆ）」）は、（「（ｅ）」）と同様に機能する。
【０２０６】
ピア情報の同期を示すフローチャートが図６２に示される。同様に、クラウド情報の同期化を示すフローチャートが図６３に示されている。
【０２０７】
図６４には、ルックアップポイントのメッセージ処理機能が示されており、並びにこれに包含されるメッセージの実施可能な構造及びメッセージヘッダが示される。
【０２０８】
図６５には、結合問合せのメッセージ処理機能が示されており、並びにこれに包含される幾つかのメッセージの実施可能な構造が示されている。
【０２０９】
図６６から７０では、「Razberry」アプリケーションの種々のスクリーンショットが示されている。図６６は、上部のツールバーのボタンのリストから選択された電子メールサブシステムを示し、クラウドに集められたMicrosoft「Outlook」電子メールフォルダを含む幾つかのデバイスを示している。１つの選択されたデバイスの電子メールが図６７に示されている。図６８は、選択されている１つのデバイスをそのデバイスに対して選択されたファイル管理サブシステムと共に示している。図６９では、カレンダー機能が上部のツールバーから選択されており、「Razberry」アプリケーションを介してMicrosoft「Outlook」カレンダーデータを表示している。図７０は、「Razberry」アプリケーションを介して開かれている１つの電子メールを示している。
【０２１０】
＜オペレーションの実施例＞
「Razberry」アプリケーションのオペレーションを示す実施例として、Johnがファイルを捜していると仮定する。
【０２１１】
Johnは、自分のＰＤＡでRazberryを起動し、ルックアップに登録するために自分のユーザ名及びパスワードを入力する。ＰＤＡは、ルックアップからJohnのRazberryクラウドのロケーションを要求し、Johnの家庭用ＰＣの識別子を受け取る。
【０２１２】
ＰＤＡは、家庭用ＰＣに直接接続し、ＰＤＡと家庭用ＰＣとの間でセキュリティ検証と状態及びヘッダレコード同期が行われる。ＰＤＡは、職場用ＰＣがオンラインであることを知り、職場用ＰＣのロケーションをルックアップに問い合わせる。ＰＤＡ及び職場用ＰＣが共に接続され、完全性リンクが３つのデバイス間で設定される。
【０２１３】
Johnは、職場用ＰＣ上でファイルをビューしたいと決定し、RazberryアプリケーションＧＵＩでこの機能を選択する。ＰＤＡは、職場用ＰＣのデバイスレコードを検索し、これを用いて職場用ＰＣ上のオブジェクトを取得する。ＰＤＡは、このオブジェクトをサーチし、オブジェクトクラス「ファイル」を有するオブジェクトを捜す。ＰＤＡは、職場ＰＣ上のファイルオブジェクトにアドレス指定された新しいオブジェクト／動作を作成し、動作要求メッセージを送る。職場ＰＣは、動作要求メッセージを受け取り、動作要求を処理し、応答メッセージを送信者に戻す。ＰＤＡは、動作要求メッセージへの応答を受け取り、ＰＤＡ  ＧＵＩを使用して職場ＰＣ上のフォルダのリストを表示することができる。
【０２１４】
＜Razberry機能の実施例＞
・ファイルブラウザ−ファイル及びフォルダへのアクセスを可能にする（図６７を参照）
・メールブラウザ−電子メールコンテンツ及び機能へのアクセスを可能にする（図６６及び６８を参照）
・カレンダーブラウザ−カレンダーへのアクセスを可能にする（図６９を参照）
・音楽ストリーマ−音楽コンテンツへのアクセスを可能にする
・音声モジュール−ＶＯＩＰのためのデバイスマイクロフォン及びスピーカへのアクセスを可能にする
・ビデオストリーマ−ビデオコンテンツへのアクセスを可能にする
・チャットモジュール−テキストメッセージングを可能にする
・メディアプレーヤ・リモート−デバイスのメディアプレーヤのリモート制御を可能にする
・リモートアプリケーションモジュール−リモートアプリケーションビュー及び対話を可能にする
・広告モジュール−クラウドユーザ固有情報を有し、ウェブに働きかけて広告を引き込むことができる
・バンキングモジュール−安全なデバイス上にバンククレデンシャルを記憶しリモートでトランザクションを実行する
・プリンタモジュール−クラウドからプリンタへのアクセスを可能にする
・パニックモジュール−別のデバイスからのパニック警報を表示する
・ウェブＲＳＳフィードモジュール
・ＦＴＰサーバモジュール−クラウドから既存のＦＴＰサーバへのアクセスを可能にする
・ＢＬＯＧ更新モジュール−クラウドからＢＬＯＧの更新を可能にする
・レガシーモジュール−クラウド全体にわたってレガシーアプリケーションへのアクセスを可能にする
・データベースモジュール−クラウド全体にわたってデータベースアクセスを可能にする
・ウェブカメラモジュール−クラウドでのストリーミングビデオにアクセスする
【０２１５】
本発明が関係する当業者であれば、本発明の構成及び広範な多岐に渡る実施形態並びにアプリケーションにおける多くの変更は、添付の請求項で定義される本発明の範囲から逸脱することなく当業者に想起されるであろう。本明細書の開示及び説明は、純粋に例証であり、どのような制限を意味するものではない。
【図面の簡単な説明】
【０２１６】
【図１】単一のクラウドのアーキテクチャを示す概略図である。
【図２】複数のクラウドのアーキテクチャを示す概略図である。
【図３】中央で管理される複数のエンティティを示す概略図である。
【図４】プライベートに管理される複数のエンティティを示す概略図である。
【図５】デバイスとエンティティとの間の関係を示す概略図である。
【図６】複数のデバイスにわたって作成できるデータ及び機能の単一ビューを作成するためにオブジェクトがどのように働くかを示す図である。
【図７】リアルオブジェクト、バーチャルオブジェクト、リモートオブジェクト、及びメタオブジェクト間の関係を示す概略図である。
【図８】動作とオブジェクトとの間の関係を示す概略図である。
【図９】動作のインスタンスがオブジェクトにおいてどのように作成されるか示す概略図である。
【図１０】エンティティが失われた場合のクラウドにおける完全性リンクを示す概略図である。
【図１１】エンティティが結合した場合のクラウドにおける完全性リンクを示す概略図である。
【図１２】デバイスの登録中のデバイス上の鍵とルックアップポイントの配置を示す図である。
【図１３】デバイスがクラウドに結合するときの鍵の配置を示す図である。
【図１４】デバイスがクラウドに結合するときの鍵の配置を示す図である。
【図１５（ａ）】デバイスがクラウドに結合するときの鍵の配置を示す図である。
【図１５（ｂ）】２つのエンティティ間の完全性リンクの設定を示す概略図である。
【図１５（ｃ）】クラウドにおける２つのエンティティ間でデータトラフィックを送るプロセスを示す概略図である。
【図１５（ｄ）】エンティティがクラウドに結合するプロセスを示す概略図である。
【図１６】本発明のソフトウェアのためのモジュールの配置を示す概略図である。
【図１７】複数のクラウドにおけるソフトウェアモジュール間の関係を示す図である。
【図１８】複数のクラウドを共有するデバイス間の関係の実施例を示す図である。
【図１９】複数のクラウドを共有するデバイス間の関係の実施例を示す図である。
【図２０】複数のクラウドを共有するデバイス間の関係の実施例を示す図である。
【図２１】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース（ＧＵＩ）を示す図である。
【図２２】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース（ＧＵＩ）を示す図である。
【図２３】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース（ＧＵＩ）を示す図である。
【図２４】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース（ＧＵＩ）を示す図である。
【図２５】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース（ＧＵＩ）を示す図である。
【図２６】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース（ＧＵＩ）を示す図である。
【図２７】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース（ＧＵＩ）を示す図である。
【図２８】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース（ＧＵＩ）を示す図である。
【図２９】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース（ＧＵＩ）を示す図である。
【図３０】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース（ＧＵＩ）を示す図である。
【図３１】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース（ＧＵＩ）を示す図である。
【図３２】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース（ＧＵＩ）を示す図である。
【図３３】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース（ＧＵＩ）を示す図である。
【図３４】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース（ＧＵＩ）を示す図である。
【図３５】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース（ＧＵＩ）を示す図である。
【図３６】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース（ＧＵＩ）を示す図である。
【図３７】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース（ＧＵＩ）を示す図である。
【図３８】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース（ＧＵＩ）を示す図である。
【図３９】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース（ＧＵＩ）を示す図である。
【図４０】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース（ＧＵＩ）を示す図である。
【図４１】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース（ＧＵＩ）を示す図である。
【図４２】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース（ＧＵＩ）を示す図である。
【図４３】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース（ＧＵＩ）を示す図である。
【図４４】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース（ＧＵＩ）を示す図である。
【図４５】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース（ＧＵＩ）を示す図である。
【図４６】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース（ＧＵＩ）を示す図である。
【図４７】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース（ＧＵＩ）を示す図である。
【図４８】起動手順を示すフローチャートである。
【図４９】ログオン画面の実施例を示す図である。
【図５０】デバイス起動手順を示すフローチャートである。
【図５１】結合ルックアップ要求の手順を示すフローチャートである。
【図５２】フローチャートを使用してクラウド結合プロセスを示す図である。
【図５３】クラウド結合手順を示すフローチャートである。
【図５４】クラウド起動手順を示すフローチャートである。
【図５５】クラウド初期化手順を示すフローチャートである。
【図５６】クラウドにおいて全てのデバイス全体にわたる単一ビューを作成するフローチャートである。
【図５６Ａ】単一ビュー全体でのデバイス間の関係を示す概略図である。
【図５６Ｂ】単一ビュー全体でのデバイス間の関係を示す概略図である。
【図５６Ｃ】単一ビュー全体でのデバイス間の関係を示す概略図である。
【図５７】クラウド起動手順を示すフローチャートである。
【図５８】オブジェクト通信を示すフローチャートである。
【図５９】デバイスルックアップ及び接続手順についてのフローチャートである。
【図６０】メッセージ交換手順を示すフローチャートである。
【図６１】クラウド完全性維持手順を示すフローチャートである。
【図６２】ピア情報同期手順を示すフローチャートである。
【図６３】クラウド情報同期手順を示すフローチャートである。
【図６４】ルックアップポイントメッセージ処理手順についての幾つかの詳細を示す図である。
【図６５】結合問合せメッセージング手順についての幾つかの詳細を示す図である。
【図６６】本発明を具現化するソフトウェアアプリケーションをユーザが操作可能にする画面の幾つかの追加の実施例を示す図である。
【図６７】本発明を具現化するソフトウェアアプリケーションをユーザが操作可能にする画面の幾つかの追加の実施例を示す図である。
【図６８】本発明を具現化するソフトウェアアプリケーションをユーザが操作可能にする画面の幾つかの追加の実施例を示す図である。
【図６９】本発明を具現化するソフトウェアアプリケーションをユーザが操作可能にする画面の幾つかの追加の実施例を示す図である。
【図７０】本発明を具現化するソフトウェアアプリケーションをユーザが操作可能にする画面の幾つかの追加の実施例を示す図である。
【符号の説明】
【０２１７】
１００  単一のクラウド
１０２  インターネット及び／又はイントラネット  有線又は無線
１０４  ルックアップポイント
１０６  ファイアウォール
１０８ａ  １０８ｂ  １０８ｃ  １０８ｄ  コンテンツ
１１０  フルアクセス及び操作
【図１】
2008236719.tif 000003
【図２】
2008236719.tif 000004
【図３】
2008236719.tif 000005
【図４】
2008236719.tif 000006
【図５】
2008236719.tif 000007
【図６】
2008236719.tif 000008
【図７】
2008236719.tif 000009
【図８】
2008236719.tif 000010
【図９】
2008236719.tif 000011
【図１０】
2008236719.tif 000012
【図１１】
2008236719.tif 000013
【図１２】
2008236719.tif 000014
【図１３】
2008236719.tif 000015
【図１４】
2008236719.tif 000016
【図１５（ａ）】
2008236719.tif 000017
【図１５（ｂ）】
2008236719.tif 000018
【図１５（ｃ）】
2008236719.tif 000019
【図１５（ｄ）】
2008236719.tif 000020
【図１６】
2008236719.tif 000021
【図１７】
2008236719.tif 000022
【図１８】
2008236719.tif 000023
【図１９】
2008236719.tif 000024
【図２０】
2008236719.tif 000025
【図４８】
2008236719.tif 000026
【図５０】
2008236719.tif 000027
【図５１】
2008236719.tif 000028
【図５２】
2008236719.tif 000029
【図５３】
2008236719.tif 000030
【図５４】
2008236719.tif 000031
【図５５】
2008236719.tif 000032
【図５６】
2008236719.tif 000033
【図５６Ａ】
2008236719.tif 000034
【図５６Ｂ】
2008236719.tif 000035
【図５６Ｃ】
2008236719.tif 000036
【図５７】
2008236719.tif 000037
【図５８】
2008236719.tif 000038
【図５９】
2008236719.tif 000039
【図６０】
2008236719.tif 000040
【図６１】
2008236719.tif 000041
【図６２】
2008236719.tif 000042
【図６３】
2008236719.tif 000043
【図６４】
2008236719.tif 000044
【図６５】
2008236719.tif 000045
【図２１】
2008236719.tif 000046
【図２２】
2008236719.tif 000047
【図２３】
2008236719.tif 000048
【図２４】
2008236719.tif 000049
【図２５】
2008236719.tif 000050
【図２６】
2008236719.tif 000051
【図２７】
2008236719.tif 000052
【図２８】
2008236719.tif 000053
【図２９】
2008236719.tif 000054
【図３０】
2008236719.tif 000055
【図３１】
2008236719.tif 000056
【図３２】
2008236719.tif 000057
【図３３】
2008236719.tif 000058
【図３４】
2008236719.tif 000059
【図３５】
2008236719.tif 000060
【図３６】
2008236719.tif 000061
【図３７】
2008236719.tif 000062
【図３８】
2008236719.tif 000063
【図３９】
2008236719.tif 000064
【図４０】
2008236719.tif 000065
【図４１】
2008236719.tif 000066
【図４２】
2008236719.tif 000067
【図４３】
2008236719.tif 000068
【図４４】
2008236719.tif 000069
【図４５】
2008236719.tif 000070
【図４６】
2008236719.tif 000071
【図４７】
2008236719.tif 000072
【図４９】
2008236719.tif 000073
【図６６】
2008236719.tif 000074
【図６７】
2008236719.tif 000075
【図６８】
2008236719.tif 000076
【図６９】
2008236719.tif 000077
【図７０】
2008236719.tif 000078
【外国語明細書】
2008236719.tif 000079
2008236719.tif 000080
2008236719.tif 000081
2008236719.tif 000082
2008236719.tif 000083
2008236719.tif 000084
2008236719.tif 000085
2008236719.tif 000086
2008236719.tif 000087
2008236719.tif 000088
2008236719.tif 000089
2008236719.tif 000090
2008236719.tif 000091
2008236719.tif 000092
2008236719.tif 000093
2008236719.tif 000094
2008236719.tif 000095
2008236719.tif 000096
2008236719.tif 000097
2008236719.tif 000098
2008236719.tif 000099
2008236719.tif 000100
2008236719.tif 000101
2008236719.tif 000102
2008236719.tif 000103
2008236719.tif 000104
2008236719.tif 000105
2008236719.tif 000106
2008236719.tif 000107
2008236719.tif 000108
2008236719.tif 000109
2008236719.tif 000110
2008236719.tif 000111
2008236719.tif 000112
2008236719.tif 000113
2008236719.tif 000114
2008236719.tif 000115
2008236719.tif 000116
2008236719.tif 000117
2008236719.tif 000118
2008236719.tif 000119
2008236719.tif 000120
2008236719.tif 000121
2008236719.tif 000122
2008236719.tif 000123
2008236719.tif 000124
2008236719.tif 000125
2008236719.tif 000126
2008236719.tif 000127
2008236719.tif 000128
2008236719.tif 000129
2008236719.tif 000130
2008236719.tif 000131
2008236719.tif 000132
2008236719.tif 000133
2008236719.tif 000134
2008236719.tif 000135
2008236719.tif 000136
2008236719.tif 000137
2008236719.tif 000138
2008236719.tif 000139
2008236719.tif 000140
2008236719.tif 000141
2008236719.tif 000142
2008236719.tif 000143
2008236719.tif 000144
2008236719.tif 000145
2008236719.tif 000146
2008236719.tif 000147
2008236719.tif 000148
2008236719.tif 000149
2008236719.tif 000150
2008236719.tif 000151
2008236719.tif 000152
2008236719.tif 000153
2008236719.tif 000154
2008236719.tif 000155
2008236719.tif 000156
2008236719.tif 000157
2008236719.tif 000158
2008236719.tif 000159
2008236719.tif 000160
2008236719.tif 000161
2008236719.tif 000162
2008236719.tif 000163
2008236719.tif 000164
2008236719.tif 000165
2008236719.tif 000166
2008236719.tif 000167
2008236719.tif 000168
2008236719.tif 000169
2008236719.tif 000170
2008236719.tif 000171
2008236719.tif 000172
2008236719.tif 000173