(57)【特許請求の範囲】
【請求項１】
異なる認証ドメインにわたり操作を実行する方法であって、
初期認証ドメインに位置する初期サーバ・システムにより、クライアント・システムからメッセージで送信された要求された操作を受信するステップと、
前記初期サーバ・システムにより、前記要求された操作が前記初期認証ドメイン以外の認証ドメインに位置する少なくとも１つのリソースを必要とすることを決定することに応じて、前記初期サーバ・システムにより、前記初期サーバ・システムのメモリにおいて、前記要求された操作を完了するために前記クライアント・システムによってコンタクトされるべき１つまたは複数のその他の認証ドメインを指示するリダイレクション・リストを作成するステップと、
前記要求された操作を完了するために前記リダイレクション・リストにおいて指示される前記その他の認証ドメインにコンタクトするよう前記クライアント・システムに命令する、前記初期サーバ・システムから前記クライアント・システムに前記リダイレクション・リストを送信するステップとを備え、
前記リダイレクション・リストを作成するステップは、複数のリスト・エントリを作成するステップを含み、前記リスト・エントリの各々は、
ｉ）前記クライアント・システムによってコンタクトされるべき前記その他の認証ドメインのうちの対応する１つを記述し、
ｉｉ）前記その他の認証ドメインのうちの前記対応する１つがどのように前記クライアント・システムによってコンタクトされるかを指示する方法。
【請求項２】
各リスト・エントリは、
ｉ）前記クライアント・システムによってコンタクトされるべき前記その他の認証ドメインのうちの前記対応する１つのサーバ・システムを指示するユニフォーム・リソース・ロケータ（ＵＲＬ）と、
ｉｉ）メソッドと、
ｉｉｉ）本体とを含み、
前記クライアント・システムは、各リスト・エントリについて、ハイパーテキスト転送プロトコル（ＨＴＴＰ）要求を前記その他の認証ドメインのうちの前記対応する１つの前記サーバ・システムに発行することによって前記その他の認証ドメインにコンタクトし、
前記ＨＴＴＰ要求は、前記リスト・エントリに含まれる前記メソッド、前記ＵＲＬ、および前記本体を含む請求項１に記載の方法。
【請求項３】
前記クライアント・システムにより、前記その他の認証ドメインから部分結果を受信するステップであって、前記その他の認証ドメインのそれぞれ１つから受信される各部分結果は、前記要求された操作をその認証ドメインに含まれる少なくとも１つのリソースに適用することによって得られる少なくとも１つの結果を備えるステップと、
前記リダイレクション・リストに応じて前記クライアント・システムにより、前記その他の認証ドメインから受信された前記部分結果を単一の最終結果に集約するステップと、
前記クライアント・システムにより、前記最終結果を前記クライアント・システムのユーザに表示するステップとをさらに備える請求項２に記載の方法。
【請求項４】
前記初期サーバ・システムにより、前記要求された操作を前記初期認証ドメインに含まれる少なくとも１つのリソースに適用することによって部分結果を生成するステップと、
前記初期サーバ・システムにより、前記部分結果を前記クライアント・システムに送信するステップと、
前記クライアント・システムにより、前記初期サーバ・システムから前記部分結果を受信するステップとをさらに備え、
前記その他の認証ドメインから受信された前記部分結果を単一の最終結果に集約するステップは、前記初期サーバ・システムから受信された前記部分結果を、前記その他の認証ドメインから受信された前記部分結果と共に集約するステップを含む請求項１に記載の方法。
【請求項５】
前記クライアント・システムにより、前記クライアント・システムのユーザ・インターフェイスを通じて前記クライアント・システムのユーザから、前記初期認証ドメイン以外の認証ドメインに位置する少なくとも１つのリソースの選択を受信するステップと、
前記要求された操作における前記クライアント・システムにより、前記初期認証ドメイン以外の前記認証ドメインに位置する前記ユーザ選択のリソースの指示を格納するステップとをさらに備え、
前記要求された操作が前記初期認証ドメイン以外の認証ドメインに位置する少なくとも１つのリソースを必要とすることを前記初期サーバ・システムにより決定することは、前記要求された操作において、前記初期認証ドメイン以外の前記認証ドメインに位置する前記ユーザ選択のリソースの前記指示を見出すことに応じ、
前記リダイレクション・リストを作成するステップは、前記ユーザ選択のリソースが位置する前記認証ドメインに対応する前記リダイレクション・リストにエントリを作成するステップを含む請求項２に記載の方法。
【請求項６】
前記クライアント・システムのユーザ・インターフェイスを通じて前記クライアント・システムのユーザから、前記要求された操作が前記ユーザのアカウントにリンクされたすべての認証ドメインのすべてのリソースにわたり、前記クライアント・システムにより実行されることを示す指示を受信するステップと、
前記初期サーバ・システムに格納されているアカウント情報に応じて、前記ユーザの前記アカウントに以前リンクされた認証ドメインを前記初期サーバ・システムにより識別するステップであって、前記ユーザの前記アカウントに以前リンクされた前記認証ドメインは、前記初期認証ドメイン以外であるステップとをさらに備え、
前記要求された操作が前記初期認証ドメイン以外の認証ドメインに位置する少なくとも１つのリソースを必要とすることを前記初期サーバ・システムにより決定することは、前記ユーザの前記アカウントに以前リンクされた前記認証ドメインを識別することに応じ、
前記リダイレクション・リストを作成するステップは、前記ユーザの前記アカウントに以前リンクされた前記認証ドメインに対応する前記リダイレクション・リストにエントリを作成するステップを含む請求項２に記載の方法。
【請求項７】
前記要求された操作は、少なくとも１つの検索クエリを含む検索操作を備え、
前記その他の認証ドメインからの前記受信された部分結果の各々は、前記検索クエリと一致する前記その他の認証ドメインに格納されているドキュメントのリストを備え、
前記クライアント・システムは、ドキュメントの前記リストを結合することによって前記部分結果を、前記検索クエリと一致するドキュメントの最終リストに集約することをさらに備える請求項３に記載の方法。
【請求項８】
前記初期サーバ・システムは、部分結果を前記クライアント・システムにさらに送信し、前記部分結果は、前記検索クエリと一致する前記初期認証ドメインに格納されているドキュメントのリストを備え、
前記クライアント・システムは、前記初期サーバ・システムから受信された前記部分結果を前記その他の認証ドメインから受信された前記部分結果と結合して、前記検索クエリと一致するドキュメントの前記最終リストにする請求項７に記載の方法。
【請求項９】
前記要求された操作は、ソース・ファイル・リポジトリに格納されているファイルがターゲット・ファイル・リポジトリにコピーされることを指示するコピー操作を備え、
前記ソース・ファイル・リポジトリは前記その他の認証ドメインのうちの第１の認証ドメインに位置し、
前記ターゲット・ファイル・リポジトリは前記その他の認証ドメインのうちの第２の認証ドメインに位置し、
前記リダイレクション・リストを作成するステップは、
ソース・サーバのＵＲＬを格納する第１のリスト・エントリを作成するステップであって、前記ソース・サーバは前記その他の認証ドメインのうちの第１の認証ドメインに位置するステップと、
ターゲット・サーバのＵＲＬを格納する第２のリスト・エントリを作成するステップであって、前記ターゲット・サーバは前記その他の認証ドメインのうちの第２の認証ドメインに位置するステップと、
転送サーバのＵＲＬを格納する第３のリスト・エントリを作成するステップであって、前記転送サーバは前記ソース・ファイル・リポジトリから前記ターゲット・ファイル・リポジトリに前記ファイルをコピーすることの責任を負うステップとを含む請求項１に記載の方法。
【請求項１０】
前記初期認証ドメイン以外の前記認証ドメインに位置する前記ユーザ選択のリソースは、ファイル・リポジトリを備え、
前記初期認証ドメイン以外の前記認証ドメインに位置する前記ユーザ選択のリソースの前記指示を格納するステップは、前記要求された操作において前記ファイル・リポジトリを指し示すパスを格納するステップを含む請求項５に記載の方法。
【請求項１１】
異なる認証ドメインにわたり操作を実行するためのシステムであって、
処理回路と、該処理回路に結合されたメモリとを備えるアプリケーション・プログラミング・インターフェイス（ＡＰＩ）サーバであって、該メモリは、前記処理回路によって遂行されるとき、前記ＡＰＩサーバに、
クライアント・システムからメッセージで送信された要求された操作を受信することと、
前記要求された操作が、前記ＡＰＩサーバが位置する初期認証ドメイン以外の認証ドメインに位置する少なくとも１つのリソースを必要とすることを決定することと、
前記ＡＰＩサーバの前記メモリにおいて、前記操作が前記初期認証ドメイン以外の認証ドメインに位置する少なくとも１つのリソースを必要とすることの前記決定に応じて、前記要求された操作を完了するために前記クライアント・システムによってコンタクトされるべき１つまたは複数のその他の認証ドメインを指示するリダイレクション・リストを作成することと、
前記ＡＰＩサーバ・システムから前記クライアント・システムに前記リダイレクション・リストを送信することであって、前記リダイレクション・リストは、前記要求された操作を完了するために前記リダイレクション・リストにおいて指示される前記その他の認証ドメインにコンタクトするよう前記クライアント・システムに命令することと、を行わせる命令を格納するＡＰＩサーバを備え、
前記リダイレクション・リストは複数のリスト・エントリを含み、
前記リスト・エントリの各々は、
ｉ）前記クライアント・システムによってコンタクトされるべき前記その他の認証ドメインのうちの対応する１つを記述し、
ｉｉ）前記その他の認証ドメインのうちの前記対応する１つが前記クライアント・システムによってコンタクトされる方法を指示することをさらに備えるシステム。
【請求項１２】
各リスト・エントリは、
ｉ）前記クライアント・システムによってコンタクトされるべき前記その他の認証ドメインのうちの前記対応する１つのサーバ・システムを指示するユニフォーム・リソース・ロケータ（ＵＲＬ）と、
ｉｉ）メソッドと、
ｉｉｉ）本体とを含み、
前記リダイレクション・リストは、前記クライアント・システムに、各リスト・エントリについて、ハイパーテキスト転送プロトコル（ＨＴＴＰ）要求を前記その他の認証ドメインのうちの前記対応する１つの前記サーバ・システムに発行することによって前記その他の認証ドメインにコンタクトすることを行わせ、
前記ＨＴＴＰ要求は、前記リスト・エントリに含まれる前記メソッド、前記ＵＲＬ、および前記本体を含む請求項１１に記載のシステム。
【請求項１３】
前記クライアント・システムは、処理回路と、該処理回路に結合されたメモリとを備え、前記メモリは、前記処理回路によって遂行されるとき、前記クライアント・システムに、
前記その他の認証ドメインから部分結果を受信させることであって、前記その他の認証ドメインのそれぞれ１つから受信される各部分結果が、前記要求された操作をその認証ドメインに含まれる少なくとも１つのリソースに適用することによって得られる少なくとも１つの結果を備えることと、
前記その他の認証ドメインから受信された前記部分結果を単一の最終結果に集約することと、
前記最終結果を前記クライアント・システムのユーザに表示することとを行わせる命令を格納することをさらに備える請求項１２に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
認証ドメイン（本明細書において単に「ドメイン」とも称される）は、要求側エンティティが、ドメイン内に安全に格納されているリソースへのアクセスを得る前に、認証されることを求めるリソースのセットである。たとえば、認証ドメインは、事業組織に属している情報技術（ＩＴ）リソース（たとえば、データ、サーバ・コンピュータ・システム、ソフトウェア・サービスなど）から成り、組織の従業員が、ドメインのセキュア・リソースのいずれかへのアクセス権限を与えられる前に、（たとえば、従業員のユーザ名およびパスワードでログインすることによって、またはその他の方式で）最初に認証されることを要求することがある。
【０００２】
認証ドメインは通常、個別のものであり、独立している。したがって、ユーザが複数の認証ドメインにアクセスすることができる場合、ユーザは、別個のトランザクションまたはプロセスを通じて認証ドメインの各々１つに対して認証する必要がある。加えて、異なる認証ドメインに単数または複数のユーザを認証するために異なる資格情報および／またはプロセスが必要になる場合もある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
異なる認証ドメインにわたり操作を実行するための以前のシステムは、重大な欠点を有していた。特に、以前のシステムが、クライアントに代わってさまざまな異なるドメインに認証することをサーバに許可したときに、問題が生じた。そのような認証は、スーパーユーザ・アカウントの使用によって、またはサーバ内でクライアントの認証資料をキャッシュすることによって達成されてきた。これらのシステムにより、クライアントが検索操作を実行するとき、中央サーバは、スーパーユーザ・アカウントによって提供された権限に基づいて、またはキャッシュされた認証資料を使用するクライアントとしての機能を果たすことによって、さまざまな認証ドメインに安全に格納されているデータにクライアントに代わってアクセスするよう機能する。このタイプの手法において、中央サーバは、安全に格納されているデータへの完全な可視性を有する。セキュア・ドメインの外部のエンティティに提供されるそのようなデータ可視性は、多くのコンテキストにおいて容認できないものである。特に、顧客のセキュア・データをサードパーティに公開すること（たとえば、クライアントに代わって機能する中央サーバ）は、多くのサービスとしてのソフトウェア（ＳａａＳ）顧客が有するデータ・プライバシー保護要件に反する。これらのデータ・プライバシー保護要件を満たすために、ＳａａＳプロバイダは、顧客データにアクセスする能力を持たないことが必要である。加えて、クライアントが、ユーザに代わって機能することをサードパーティ・サーバに許可する場合は常に、否認防止は保持され得ない場合もあり、したがってユーザの名前で行なわれるアクションが実際にユーザによって実行されたという保証はない。
【０００４】
以前のシステムのその他の欠点は、異なる認証ドメインにわたり固有の操作を実行することに関する。たとえば、既存の検索サービスは通常、ワールドワイドウェブ全体にわたり格納されている情報にインデックス付けすることによって動作し、次いで結果として得られるインデックスに基づいて検索クエリに応答する。しかし、これらの既存の検索システムは、固有のユーザのコンテキストにおいて動作することはできず、したがって、エンドユーザ認証を必要とする情報にはアクセスすることができない。さらに、既存のシステムは、複数の認証ドメインにわたり検索結果を集約する能力に欠けている。複数のドメインに関して検索を実行しようとするユーザは、したがって、検索されるべき個々の認証ドメインの各々について個別の検索操作を発行して、１ドメインずつ検索を実行する必要がある。
【０００５】
加えて、異なるドメインにわたりコピー操作を実行するために一部の以前のシステムは、最初にソース・ドメインからクライアントにデータをダウンロードし、次いでクライアントからターゲット・ドメインにデータをアップロードしていた。この手法は、モバイル・デバイス経由で大容量ファイルを転送するサーバ間のコピー操作は実際的ではないので、クライアントがモバイル・デバイスである場合には効果的ではない。このマルチドメイン・コピーの手法は、主にクライアントにおいて操作を実行するためのビジネス論理を配置するので、「ＲＥＳＴｆｕｌ」なクライアント−サーバ手法を提供するという目標、つまりＲｅｐｒｅｓｅｎｔａｔｉｏｎａｌ  Ｓｔａｔｅ  Ｔｒａｎｓｆｅｒ（ＲＥＳＴ）のアーキテクチャ原理に適合する目標、と矛盾する。対照的に、ＲＥＳＴｆｕｌに準拠する手法は、主にサーバ内で操作を実行するためのビジネス論理を配置するものである。
【課題を解決するための手段】
【０００６】
以前のシステムのこれらのおよびその他の短所に対処するため、異なる認証ドメインに位置するファイル・リポジトリ上で操作を実行するための新しいシステムが開示される。開示されるシステムにおいて、初期認証ドメインに位置する初期アプリケーション・プログラミング・インターフェイス（ＡＰＩ）サーバは、クライアント・システムから要求された操作を受信する。初期サーバは、操作が、複数の異なる認証ドメインにわたり実行されることを検出する。次いで、初期サーバは、初期認証ドメインとは異なる１つまたは複数の認証ドメインに位置する複数のＡＰＩサーバを指示するエントリを有するリダイレクション・リストを生成する。初期サーバは、リダイレクション・リストをパーシャル・レスポンスに格納し、パーシャル・レスポンスをクライアント・システムに返信する。パーシャル・レスポンスは、クライアント・システムに、リダイレクション・リストのエントリによって指示されるＡＰＩサービスの各々にコマンドを実行するよう命令する。初期ＡＰＩサーバは、オプションとして、クライアント・システムに送信する部分結果をリダイレクション・リストと共に含むことができる。
【０００７】
リダイレクション・リストのエントリによって指示されるＡＰＩサーバが、クライアント・システムによって送信されたコマンドに応答する場合、クライアント・システムは、それらのレスポンスに含まれる部分結果が、要求された操作と一致する結果タイプであることを検証する。クライアント・システムはまた、適切な数の非ヌルの部分結果が受信されることを検証する。次いで、クライアント・システムは、受信したすべての部分結果を単一の最終結果に集約するが、この最終結果は、クライアント・システムのユーザ・インターフェイスでクライアント・システムのユーザに表示されてもよい。最終結果は、要求された操作に対して返された結果タイプであり、初期ＡＰＩサーバまたはリダイレクション・リストによって指示されるＡＰＩサーバの１つから受信されたリスト、または単一の項目であってもよい。さまざまな固有の操作が、開示されるシステムを使用して提供されてもよい。そのような操作の例は、クロスドメイン・コピー、マルチドメイン検索、および／またはマルチドメイン・ユーザ・アクティビティ・レポートを含むが、これらに限定されることはない。
【０００８】
有利なことに、および以前のシステムとは対照的に、クライアント・システムのみが、異なる認証ドメイン上で実行されている要求された操作の結果として取り出されたデータにアクセスすることができる。取り出されたデータは、認証ドメインからクライアント・システムに直接送信されるので、開示されるシステムは、認証済みの要求側クライアント・システムの外部への顧客データの公開を回避することにより、ひいてはデータ・プライバシー保護を提供することにより、以前のシステムにまさる改善をもたらす。したがって、以前の技術とは対照的に、開示されるシステムは、多くのサービスとしてのソフトウェア（ＳａａＳ）プロバイダ環境のような、データ・プライバシー保護要件を有するコンテキストにおける使用に適している。
【０００９】
開示されるシステムはまた、Ｒｅｐｒｅｓｅｎｔａｔｉｏｎａｌ  Ｓｔａｔｅ  Ｔｒａｎｓｆｅｒ（ＲＥＳＴ）準拠のクライアントを使用するという点において、以前のシステムよりも有利である。リダイレクション・リストを処理するために、クライアントは、一連の非同期的に発行されるドメイン固有の操作を使用する必要があるだけで、リダイレクション・リストのエントリによって指示されるＡＰＩサーバは、各自の認証ドメイン内のクライアント・システムから送信されるコマンドを処理する必要があるだけである。このようにして、開示されるシステムは、比較的軽量のクライアントを有するというＲＥＳＴの目標を満足し、したがってＲＥＳＴクライアント−サーバ・アーキテクチャの制約に適合する。
【００１０】
前述ならびにその他の特徴および利点は、さまざまな図表全体を通じて類似した参照符号が同じ部分を示す添付の図面に示されている本開示の特定の実施形態の以下の説明から明らかである。図面は、必ずしも一定の縮尺では示されていないが、本開示のさまざまな実施形態の原理を説明することに重点が置かれている。
【図面の簡単な説明】
【００１１】
【図１】開示されるシステムの例示的な実施形態におけるコンポーネントを示すブロック図である。
【図２】開示されるシステムの例示的な実施形態におけるクライアント・システムおよび初期アプリケーション・プログラミング・インターフェイス（ＡＰＩ）サーバの構造を示すブロック図である。
【図３】開示されるシステムの例示的な実施形態における初期アプリケーション・プログラミング・インターフェイス（ＡＰＩ）サーバによって生成され、このサーバから送信されるパーシャル・レスポンスの構造の少なくとも一部の例を示すブロック図である。
【図４】開示されるシステムの例示的な実施形態におけるリダイレクション・リスト・エントリの構造の例を示すブロック図である。
【図５】開示されるシステムの例示的な実施形態における異なる認証ドメインにわたる操作の要求を処理するために初期アプリケーション・プログラミング・インターフェイス（ＡＰＩ）サーバによって実行されるステップの例を示す流れ図である。
【図６】開示されるシステムの例示的な実施形態における異なる認証ドメインにわたる操作を実行するためにＲＥＳＴｆｕｌクライアント・システムによって実行されるステップの例を示す流れ図である。
【図７】ユーザが異なる認証ドメインにわたり実行されるべき操作を指定できるようにする、開示されるシステムの例示的な実施形態によって生成されるグラフィカル・ユーザ・インターフェイスの一部における特徴を示す簡略化されたスクリーンショットを示す図である。
【発明を実施するための形態】
【００１２】
本明細書において開示される特定の実施形態、例、および実施態様の個々の特徴は、技術に理に適う任意の望ましい方法で結合されてもよい。さらに、そのような特徴は、これによりすべての可能な組み合わせ、順列、変形を形成するためにこの方法で結合される。ただしそのような組み合わせ、順列、および／または変形が明示的に除外されているか、または実行不可能である場合を除く。そのような組み合わせ、順列、および変形のサポートは、本文書において存在するものと見なされる。
【００１３】
異なる認証ドメインに位置するファイル・リポジトリ上で操作を実行するための新しいシステムが開示されている。開示されたシステムにおいて、初期認証ドメインに位置する初期アプリケーション・プログラミング・インターフェイス（ＡＰＩ）サーバは、クライアント・システムから要求された操作を受信する。初期サーバは、操作が、複数の異なる認証ドメインにわたり実行されることを検出する。次いで、初期サーバは、初期認証ドメインとは異なる１つまたは複数の認証ドメインに位置する複数のＡＰＩサーバを指示するエントリを有するリダイレクション・リストを生成する。初期サーバは、クライアント・システムにリダイレクション・リストを送信し、次いでクライアント・システムに、リダイレクション・リストのエントリによって指示されるＡＰＩサービスの各々にコマンドを実行するよう命令する。初期サーバは、オプションとして、クライアント・システムに送信する部分結果をリダイレクション・リストと共に含むことができる。リダイレクション・リストのエントリによって指示されるＡＰＩサーバは、部分結果と共にクライアント・システムによって送信されたコマンドに応答し、クライアント・システムは、受信するすべての部分結果を単一の最終結果に集約する。最終結果はクライアント・システムのユーザ・インターフェイスでクライアント・システムのユーザに表示されてもよい。
【００１４】
図１は、開示されるシステムの例示的な実施形態におけるコンポーネントのブロック図である。図１に示されるコンポーネントの操作中に、クライアント・システム１０は、要求された操作３０を初期アプリケーション・プログラミング・インターフェイス（ＡＰＩ）サーバ１２に送信する。初期ＡＰＩサーバ１２は、初期認証ドメイン１４に位置する。初期認証ドメイン１４は、第１のセキュア・リソース１６をさらに含む。
【００１５】
要求された操作３０を受信したことに応じて、初期ＡＰＩサーバ１２は、クライアント・システム１０が初期認証ドメイン１４に認証されているかどうかを決定する。認証されていない場合、初期ＡＰＩサーバ１２は、たとえば、クライアント・システム１０のユーザに初期認証ドメイン１４の各自のユーザ名およびパスワードを入力するよう求めるチャレンジレスポンス認証プロトコルを通じて、または特定の実行環境に適切なその他の認証プロセスを通じて、クライアント・システム１０に認証されるよう要求する。
【００１６】
クライアント・システム１０が初期認証ドメイン１４に認証された後、初期ＡＰＩサーバ１２は、要求された操作３０を解析して、要求された操作３０を完了するために、初期認証ドメイン１４の外部からのリソース（つまり、第１のセキュア・リソース１６以外のリソース）を必要とするかどうかを決定する。必要としない場合、初期ＡＰＩサーバ１２は、第１のセキュア・リソース１６からのリソースを使用して初期認証ドメイン１４内で要求された操作３０を処理する。それ以外の場合、要求された操作３０が初期認証ドメイン１４以外の１つまたは複数の認証ドメインからのリソースを必要とする場合、初期ＡＰＩサーバ１２は、初期認証ドメイン１４とは異なる１つまたは複数の認証ドメインに位置する複数のＡＰＩサーバを指示するエントリを有するリダイレクション・リストを生成する。たとえば、要求された操作３０が、認証ドメインＡ２０に含まれる第２のセキュア・リソース２２から、および認証ドメインＢ２６に含まれる第３のセキュア・リソース２８からのリソースを必要とする場合、初期ＡＰＩサーバ１２は、認証ドメインＡ２０のＡＰＩサーバＡ１８を指示する第１のエントリ、および認証ドメインＢ２６のＡＰＩサーバＢ２４を指示する第２のエントリを有するリダイレクション・リストを生成する。
【００１７】
次いで、初期ＡＰＩサーバ１２は、リダイレクション・リストをパーシャル・レスポンス３２に格納する。初期ＡＰＩサーバ１２は、オプションとして、生成されたリダイレクション・リストと共に部分結果をパーシャル・レスポンス３２に含むことができる。たとえば、要求された操作３０が、第１のセキュア・リソース１６の１つまたは複数のリソースにも適用可能である場合、初期ＡＰＩサーバ１２は、要求された操作３０を第１のセキュア・リソース１６に適用し、要求された操作３０を第１のセキュア・リソース１６に適用することで得られた任意の結果を、パーシャル・レスポンス３０内に部分結果として格納する。代替として、要求された操作３０が第１のセキュア・リソース１６のリソースに適用されない場合、初期ＡＰＩサーバ１２は、パーシャル・レスポンス３２の部分結果をヌルと等しく設定するか、または部分結果全体を省略することができる。次いで、初期ＡＰＩサーバ１２は、パーシャル・レスポンス３２をクライアント・システム１０に送信する。
【００１８】
クライアント・システム１０はパーシャル・レスポンス３２を受信し、パーシャル・レスポンス３２および／またはリダイレクション・リスト自体は、クライアント・システム１０に、リダイレクション・リストに含まれるエントリによって指示されるＡＰＩサービスの各々でコマンドを実行するよう命令する。したがって、クライアント・システム１０は、コマンド１  ３４を生成して、それを認証ドメインＡ２０のＡＰＩサーバＡ１８に送信する。コマンド１  ３４は、パーシャル・レスポンス３２に含まれるリダイレクション・リスト内に含まれるエントリに含まれる情報に基づいてクライアント・システム１０によって生成される。コマンド１  ３４は、ドメイン固有のコマンドである、つまり第２のセキュア・リソース２２内で完全に実行され得るコマンドである。ＡＰＩサーバＡ１８は、コマンド１  ３４を受信し、クライアント・システム１０が認証ドメインＡ２０に以前認証されているかどうかを最初に決定する。認証されていない場合、ＡＰＩサーバＡ１８は、たとえば、クライアント・システム１０のユーザに認証ドメインＡ２０の各自のユーザ名およびパスワードを入力するよう求めるチャレンジレスポンス認証プロトコルを通じて、または特定の実行環境に適切ないくつかのその他の認証プロセスを通じて、クライアント・システム１０が認証ドメインＡ２０に認証されるよう要求する。
【００１９】
クライアント・システム１０が認証ドメインＡ２０に認証された後、ＡＰＩサーバＡ１８は、第２のセキュア・リソース２２でコマンド１  ３４を実行することにより部分結果を生成し、部分結果をレスポンス１  ３６に格納する。次いで、ＡＰＩサーバＡ１８は、レスポンス１  ３６をクライアント・システム１０に送信する。
【００２０】
図１の例においてさらに、クライアント・システム１０は、コマンド２  ３８を生成して、それを認証ドメインＢ２６のＡＰＩサーバＡ２４に送信する。コマンド２  ３８は、パーシャル・レスポンス３２に含まれるリダイレクション・リスト内に含まれる別のエントリに含まれる情報に基づいてクライアント・システム１０によって生成される。コマンド２  ３８は、コマンド２  ３８がコマンド１  ３４に関して受信される任意のレスポンスに先立って送信され得るという点において、コマンド１  ３４に関して非同期的にクライアント・システム１０によって送信されてもよい。コマンド２  ３８はまた、ドメイン固有のコマンド、つまり第３のセキュア・リソース２８内で完全に実行され得るコマンドである。したがって、ＡＰＩサーバＢ２４は、第３のセキュア・リソース２８でコマンド２  ３８を実行することにより部分結果を生成し、部分結果をレスポンス２  ４０に格納する。次いで、ＡＰＩサーバＢ２４は、レスポンス２  ４０をクライアント・システム１０に送信する。
【００２１】
クライアント・システム１０は、初期ＡＰＩサーバ１２から受信したレスポンス（つまり、パーシャル・レスポンス３２）、ＡＰＩサーバＡ１８から受信したレスポンス（つまり、レスポンス１  ３６）、およびＡＰＩサーバＢ２４から受信したレスポンス（つまり、レスポンス２  ４０）を、受信した各部分結果のタイプが要求された操作３０に返されると予想されるタイプと一致することを検証することによって部分的に処理する。たとえば、要求された操作３０に返されると予想されるタイプが項目のフィードである場合、クライアント・システム１０は、パーシャル・レスポンス３２、レスポンス１  ３６、またはレスポンス２  ４０のいずれかに含まれる各部分結果オブジェクトが実際に項目のフィードであることを検証する。
【００２２】
同様に、クライアント・システム１０はまた、ＡＰＩサーバ１２、ＡＰＩサーバＡ１８、およびＡＰＩサーバＢ２４から受信したレスポンスを、適切な数の部分結果が要求された操作３０について受信されることを検証することによって処理することができる。たとえば、要求された操作３０が単一の要素のみを受信すると予想される場合、クライアント・システム１０は、ＡＰＩサーバ１２、ＡＰＩサーバＡ１８、およびＡＰＩサーバＢ２４から受信されたレスポンスのうちの１つだけが任意のコンテンツを含むことを検証する。たとえば、要求された操作３０が単一の要素のレスポンスのみを予想する場合、クライアント・システム１０は、１つを除くレスポンスのすべてがコンテンツを有していないこと（たとえば、ＨＴＴＰタイプ２０４−コンテンツなし）を検証する。クライアント・システム１０によって受信された部分結果オブジェクトのタイプおよび合計数が検証される場合、クライアント・システム１０は、すべての受信された部分結果オブジェクトを単一の最終結果４２に集約し、それが、たとえばクライアント・システム１０のユーザ・インターフェイスで、クライアント・システム１０のユーザに表示されてもよい。
【００２３】
最終結果１０は、要求された操作に対して返された結果タイプであり、初期ＡＰＩサーバまたはリダイレクション・リストによって指示されるＡＰＩサーバの１つから受信されたオブジェクトのリスト、または単一のオブジェクトであってもよい。たとえば、要求された操作３０が、第１のセキュア・リソース１６、第２のセキュア・リソース２２、および第３のセキュア・リソース２８内のファイル・リポジトリの検索クエリと一致するファイルの検索（つまり、マルチドメイン検索操作）を実行するよう求める要求である場合、クライアント・システム１０によって受信される各部分結果は、セキュア・リソースのそれぞれのセットにおいて検索クエリと一致するファイルのリストで構成される。具体的には、パーシャル・レスポンス３２は、検索クエリと一致する第１のセキュア・リソース１６内のすべてのファイルのリストである部分結果オブジェクトを含むことになり、レスポンス１  ３６は、検索クエリと一致する第２のセキュア・リソース２２内のすべてのファイルのリストである部分結果オブジェクトを含むことになり、レスポンス２  ４０は、検索クエリと一致する第３のセキュア・リソース２８内のすべてのファイルのリストである部分結果オブジェクトを含むことになる。次いで、クライアント・システム１０は、受信した部分結果を、最終結果４２としてユーザに表示するために、検索クエリと一致するファイルの単一のリストに集約する。
【００２４】
要求された操作３０が、クロスドメイン・コピー操作である場合、たとえば、第１の認証ドメイン（たとえば、認証ドメインＡ２０）から第２の認証ドメイン（たとえば、認証ドメインＢ２６）にファイルをコピーするよう求める要求である場合、１つの部分結果のみが非ヌルとなる、つまりレスポンス２  ４０で受信される部分結果となり、これは第３のセキュア・リソース２８内のファイルコピーの識別子を含み、コピー操作が正常であったことを指示する。次いで、クライアント・システム１０による部分結果集約は、単一の結果オブジェクトを処理するステップ、たとえば新しいファイルコピーのビジュアル表示を第３のセキュア・リソース２８内のその新しい場所に示すことによってコピー操作が正常であったことを、ユーザ・インターフェイスを通じてユーザにレポートするステップから成る。
【００２５】
もう１つの例において、要求された操作３０は、複数の認証ドメイン（たとえば、認証ドメインＡ２０と認証ドメインＢ２６の両方）において実行される指定されたユーザのファイルに関連のあるアクティビティを記述するログ・データまたは同種のものを求める要求のような、マルチドメイン・ユーザ・アクティビティ・レポート要求であってもよい。そのようなユーザ・アクティビティ・データは、各認証ドメインによって非公開で保持され、ファイルアクセス、ファイル変更、ファイル削除などのような、複数の認証ドメインの各々１つに含まれるファイルに指定されたユーザによって実行された操作に関する、時間、ファイル名、およびその他の詳細のような情報を含むことができる。この場合、レスポンス１  ３６は、第２のセキュア・リソース２２に含まれるファイルに関して指定されたユーザのアクションを記述するユーザ・アクティビティ・データを含む部分結果を含むことになり、レスポンス２  ４０は、第３のセキュア・リソース２８に含まれるファイルに関して指定されたユーザのアクションを記述するユーザ・アクティビティ・データを含む部分結果を含むことになる。次いで、クライアント・システム１０による部分結果集約は、たとえば、第２のセキュア・リソース２２と第３のセキュア・リソース２８の両方に含まれるファイルに関して指定されたユーザのすべてのファイル関連のアクティビティを示す、レポートまたは同様のものが（たとえば、クライアント・システム１０のグラフィカル・ユーザ・インターフェイスを通じて）クライアント・システム１０のユーザに提示されるように、レスポンス１  ３６およびレスポンス２  ４０からの部分結果データを最終結果４２に結合するステップから成る。
【００２６】
簡潔な説明を目的として、図１では３つの認証ドメインのみが示されているが、開示されるシステムがそのように限定されないことを当業者であれば理解するであろう。したがって、開示されるシステムは、さまざまな認証ドメインの任意の固有の数がサポートされるように具現され操作されてもよい。
【００２７】
図１に示されるクライアント・システム１０ならびにＡＰＩサーバ１２、１８および２４は、たとえば、各々処理回路（たとえば、１つまたは複数のプロセッサ）、メモリ、および／またはその他のプログラム・ストレージ、および１つまたは複数の入力／出力インターフェイスを有する、１つまたは複数のコンピュータ・システムとして、またはコンピュータ・システム内で具現されてもよい。本明細書において説明される操作は、ソフトウェア、ファームウェア、専用ハードウェア回路、および／またはその一部の組み合わせを使用するそのようなコンピュータ・システムにおいて具現されてもよい。同様に、当業者は、図１に示されるクライアント・システム１０、ならびにＡＰＩサーバ１２、１８、および２４の１つまたは複数が、１つまたは複数の仮想マシンまたは同様のものとして、これらを含んで、またはこれらの中で具現されてもよいことが理解される。
【００２８】
図１に示されるクライアント・システム１０、ならびにＡＰＩサーバ１２、１８、および２４の間の通信は、たとえば、１つまたは複数のローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、および／またはインターネットのような、１つまたは複数のコンピュータまたはその他のタイプの通信ネットワークを介して提供されてもよい。クライアント・システム１０、ならびにＡＰＩサーバ１２、１８、および２４の間の通信は、ハイパーテキスト転送プロトコル（ＨＴＴＰ）を含むがこれに限定されないさまざまな固有の通信プロトコルを使用することができる。
【００２９】
図２は、開示されるシステムの例示的な実施形態におけるクライアント・システムおよび初期アプリケーション・プログラミング・インターフェイス（ＡＰＩ）サーバの構造を示すブロック図である。図２の実施形態に示されているように、クライアント・システム１０は、ディスプレイ・デバイス５０、通信インターフェイス５２、処理回路５４、およびメモリ５６として示されるプログラム・ストレージを含む。ディスプレイ・デバイス５０は、情報を可視の形態で提示するように動作可能な任意の固有のタイプの出力デバイスを含むか、またはそのような出力デバイスで構成されてもよい。通信インターフェイス５２は、たとえば、１つまたは複数のネットワーク・インターフェイス・カード（ＮＩＣ）または同種のものを含むか、またはそのようなＮＩＣで構成されてもよい。処理回路５４は、たとえば、１つまたは複数のマイクロプロセッサまたは同種のものを含むか、またはそのようなマイクロプロセッサで構成されてもよい。メモリ５６は、たとえば、クライアント・システム１０において使用するプログラム（命令のシーケンス）および／またはデータ（たとえば、プログラム状態情報）を格納するように動作可能な任意の固有のタイプの揮発性または不揮発性の半導体メモリまたは同種のものを含むか、またはそのような半導体メモリで構成されてもよい。
【００３０】
メモリ５６は、処理回路５４で実行するためのプログラム論理を格納する。図２の１つの実施形態において、メモリ５６は、ＲＥＳＴｆｕｌクライアント５８として示される、ＲＥＳＴ準拠のクライアント・アプリケーション・ソフトウェアを含む。ＲＥＳＴｆｕｌクライアント５８は、グラフィカル・ユーザ・インターフェイスの少なくとも一部をディスプレイ・デバイス５０内のクライアント・システム１０のユーザに提供するためのクライアント・ユーザ・インターフェイス論理６０を含む。認証論理および認証資料６１は、たとえば認証ドメインに位置するＡＰＩサーバを通じて、クライアント・システム１０をさまざまな異なる認証ドメインに認証するためのプログラムコードおよび／または認証資料を含む。たとえば、認証論理および認証資料６１は、クライアント・システム１０が、リダイレクション・リストの処理中にコンタクトされたさまざまな認証ドメインの１つまたは複数に以前認証されたという証拠を含む１つまたは複数の「認証クッキー」のような認証資料を含むことができる。したがって、そのような「認証クッキー」は、クライアント・システム１０が、リダイレクション・リストの処理中に認証ドメインのＡＰＩサーバと通信しているときにその認証ドメインに以前認証されたことを証明するために、クライアント・システム１０によって使用されてもよい。認証論理および認証資料６１は同様に、または代替として、たとえばＬＡＮマネージャ、ＮＴ  ＬＡＮマネージャ（ＮＴＬＭ）、ケルベロス、または任意の他の固有の認証プロトコルのような、たとえば１つまたは複数の認証プロトコルを使用して、リダイレクション・リストの処理中にコンタクトされたさまざまな認証ドメインの１つまたは複数にクライアント・システム１０を認証するためのプログラムコードおよび／または認証資格情報を含むこともできる。
【００３１】
操作要求／コマンド生成論理６０は、図１に示される要求された操作３０、コマンド１  ３４、およびコマンド２  ３８を含む、要求された操作および／またはコマンドを生成するため、およびそのような操作および／またはコマンドを通信インターフェイス５２を使用して送信するためのプログラムコードを含む。レスポンス・ハンドラ６６は、複数のレスポンス・ハンドラ・プログラムコード・モジュールを含み、これらは通信インターフェイス５２を通じてＲＥＳＴｆｕｌクライアント５８のクライアント・システム１０によって受信されたメッセージ（たとえば、レスポンス）を処理することに責任を負う。したがって、クライアント・システム１０がＲＥＳＴｆｕｌクライアント５８のレスポンス（たとえば、図１に示されるパーシャル・レスポンス３２、レスポンス１  ３６、またはレスポンス２  ４０のうちの１つ）を受信すると、ＲＥＳＴｆｕｌクライアント５８は、レスポンスがパーシャル・レスポンスであるか、またはその他のタイプのレスポンスであるかを決定する。受信したレスポンスがパーシャル・レスポンスである場合、受信したレスポンスは、処理のためにパーシャル・レスポンス・ハンドラ６４に渡される。ＲＥＳＴｆｕｌクライアント５８のクライアント・システム１０によって受信されたその他のレスポンスは、その他のレスポンス・ハンドラ６６によって処理される。
【００３２】
図２の例示的な実施形態においてさらに、初期ＡＰＩサーバ１２は、通信インターフェイス８４、処理回路８２、およびメモリ８０として示されるプログラム・ストレージを含む。通信インターフェイス８４は、たとえば、１つまたは複数のネットワーク・インターフェイス・カード（ＮＩＣ）または同種のものを含むか、またはそのようなＮＩＣで構成されてもよい。処理回路８２は、たとえば、１つまたは複数のマイクロプロセッサまたは同種のものを含むか、またはそのようなマイクロプロセッサで構成されてもよい。メモリ８０は、たとえば、初期ＡＰＩサーバ１２において使用するプログラム（命令のシーケンス）および／またはデータ（たとえば、プログラム状態情報）を格納するように動作可能な任意の固有のタイプの揮発性または不揮発性の半導体メモリまたは同種のものを含むか、またはそのような半導体メモリで構成されてもよい。
【００３３】
図２に示されるメモリ８０は、要求およびコマンド処理論理９０として示される、処理回路８２で実行するためのプログラム論理、ならびに認証ドメイン・データベース８８、およびユーザ・アカウント・データベース８６を格納する。要求された操作（たとえば、図１の要求された操作３０）が、通信インターフェイス８４を通じて初期ＡＰＩサーバ１２によって受信される場合、要求は、要求およびコマンド解析論理９２に渡される。要求およびコマンド解析論理９２は、要求された操作を実行することが、ローカル認証ドメイン以外（たとえば、図１の初期認証ドメイン１４以外）の１つまたは複数の認証ドメインに位置する１つまたは複数のリソースにアクセスすることを必要とするかどうかを決定する。必要とする場合、要求された操作は、処理のためにマルチ認証ドメイン操作要求処理論理９４に渡される。それ以外の場合、受信した要求された操作が、ローカル認証ドメイン内に含まれる（たとえば、図１の初期認証ドメイン内に含まれる）リソースを使用して、完全に実行され得る場合には、要求された操作は、その他のコマンド処理論理９６に渡される。
【００３４】
たとえば、要求およびコマンド解析論理９２は、受信した要求された操作がローカル認証ドメインの外部に含まれるリソースの任意の指示を含むかどうかを決定するために、受信した要求された操作の内容を調べることができる。そのような指示は、たとえば、ローカル認証ドメイン以外の認証ドメインに位置する１つまたは複数のファイル・リポジトリ内の１つまたは複数のファイルまたはファイルの場所を指定する１つまたは複数のパスを含み得る。受信した要求された操作がローカル認証ドメイン外部に含まれるリソースの任意の指示を含む場合、受信した要求された操作は、処理のためにマルチ認証ドメイン操作要求処理論理９４に渡される。
【００３５】
もう１つの例において、要求およびコマンド解析論理９２は、受信した要求された操作に関連付けられているユーザが以前、ローカル認証ドメイン以外の１つまたは複数の認証ドメインにそのアカウントをリンクしていたかどうかを決定するために、ユーザ・アカウント・データベース８６のコンテンツを調べることができる。以前ユーザのアカウントにリンクされたそのような認証ドメインの参照（名前、パス、ＵＲＬなど）は、たとえば、ユーザに関連付けられ、ユーザ・アカウント・データベース８６に含まれるエントリに格納されてもよい。受信した要求されたコマンドが、ユーザのアカウントにリンクされたすべての認証ドメインにわたりコマンドが実行されるべきであることを指示する場合、およびユーザのアカウントが、ローカル認証ドメイン以外の少なくとも１つの認証ドメインにリンクされている場合、受信した要求された操作は、処理のためにマルチ認証ドメイン操作要求処理論理９４に渡される。
【００３６】
マルチ認証ドメイン操作要求処理論理９４は、パーシャル・レスポンス（たとえば、図１のパーシャル・レスポンス３２）を生成することによって、および要求された操作を送信したクライアント・システム（たとえば、クライアント・システム１０）にパーシャル・レスポンスを送信することによって、要求された操作を処理する。マルチ認証ドメイン操作要求処理論理９４によって生成されたパーシャル・レスポンスは、要求された操作を完了するために、要求側クライアント・システムによってコンタクトされるべき１つまたは複数のその他の認証ドメインを指示するエントリを有するダイレクトリストを含む。リダイレクション・リストの各エントリの内容は、認証ドメインがクライアント・システムによってコンタクトされる方法を指示する情報（たとえば、ＡＰＩサーバのＵＲＬ）を含む。所与の認証ドメインがコンタクトされる方法を指示するそのような情報は、認証ドメイン・データベース８８からマルチ認証ドメイン操作要求処理論理９４によって取得されてもよい。認証ドメイン・データベース８８は、ローカル認証ドメイン以外の１つまたは複数の異なる認証ドメインを記述する情報を含む。そのような情報は、たとえば、各認証ドメインがクライアント・システム１０のようなクライアント・システムによってコンタクトされる方法を記述する情報を含むことができる。所与の認証ドメインがクライアント・システムによってコンタクトされる方法を記述する情報は、たとえば、認証ドメイン内の、クライアント・システムからコマンドを受信することに責任を負うＡＰＩサーバのＵＲＬを含むことができる。
【００３７】
マルチ認証ドメイン操作要求処理論理９４はまた、オプションとして、パーシャル・レスポンスに含まれるべき部分結果を生成することによって、要求された操作を処理するように動作することもできる。たとえば、部分結果は、ローカル認証ドメイン内に含まれるリソースで要求された操作を実行することによって得られた結果を含むことができる。
【００３８】
図３は、開示されるシステムの例示的な実施形態における初期アプリケーション・プログラミング・インターフェイス（ＡＰＩ）サーバによって生成され、このサーバから送信されるパーシャル・レスポンスの構造の少なくとも一部の例を示すブロック図である。図３に示されるように、パーシャル・レスポンス３２は、ＨＴＴＰレスポンス・タイプ１５０、アプリケーション・レスポンス・タイプ１５２、部分結果オブジェクト１５４、および例示の目的で示されるリダイレクション・リスト・エントリ１  １５６から、リダイレクション・リスト・エントリ２  １５８、リダイレクション・リスト・エントリ３  １６０、リダイレクション・リスト・エントリＮ  １６２に至る複数のリスト・エントリで構成されるリダイレクション・リスト１５５を含む。ＨＴＴＰレスポンス・タイプのコンテンツは、たとえば、ＨＴＴＰレスポンスステータス２００のような、ＨＴＴＰレスポンス・ステータスコードを含むことができる。アプリケーション・レスポンス・タイプ１５２のコンテンツは、たとえば、ＲＥＳＴｆｕｌクライアント５８（図２）に関するレスポンスのタイプが「パーシャル・レスポンス」であるので、ＲＥＳＴｆｕｌクライアント５８に、レスポンスをパーシャル・レスポンス・ハンドラ６４に向けさせることを指示するコードまたは値を含むことができる。部分結果オブジェクト１５４は、オブションであり、存在する場合は、たとえば、初期ＡＰＩサーバが位置する同じ認証ドメインに位置する１つまたは複数のリソースに要求された操作を適用した結果を含むことができる。
【００３９】
リダイレクション・リスト内の各エントリ１５６は、要求された操作を完了するために、クライアントが、クライアントによってコンタクトされるべきその他の認証ドメインの１つにコンタクトする方法を指示する。
【００４０】
図４の例示のリダイレクション・リスト・エントリ２００によって示されるように、リダイレクション・リスト・エントリは、ＵＲＬ２０２、メソッド２０４、および本体２０６を含む。ＵＲＬ２０２は、リダイレクション・リスト・エントリ２００の認証ドメインに位置するＡＰＩサーバのＷｅｂアドレスであり、クライアントが認証ドメインにコンタクトする場合にクライアントによって使用されるものである。メソッド２０４は、たとえば、クライアントが認証ドメインにコンタクトする場合にクライアントによって使用されるＨＴＴＰ要求メソッド（たとえば、ＧＥＴ、ＰＯＳＴなど）である。本体２０６は、たとえば、ＵＲＬ２０２によって指示されるＡＰＩサーバにクライアント・システムによって送信された要求と共に含まれるべき、たとえばＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ（ＪＳＯＮ）ドキュメントのような、その他の情報を含む。
【００４１】
図５は、例示的な実施形態における異なる認証ドメインにわたる操作の要求を処理するために初期ＡＰＩサーバによって実行されるステップの例を示す流れ図である。図５に示されるステップは、たとえば、図１および図２に示される初期ＡＰＩサーバ１２（「初期サーバ」）によって実行されてもよい。ステップ３００において、初期サーバは、クライアント・システムから要求された操作を受信する。ステップ３００において受信される操作は、たとえば、クロスドメイン・コピー、マルチドメイン検索、またはマルチドメイン・ユーザ・アクティビティ・レポート要求のような、任意の固有のマルチドメイン操作であってもよい。ステップ３０２において、初期サーバは、要求された操作を解析し、操作の完了には、ローカル認証ドメイン以外の認証ドメインからの少なくとも１つのリソースが必要であることを決定する。たとえば、初期サーバは、要求された操作を解析して、操作が、ローカル認証ドメインの外部に位置するファイル・リポジトリ内のファイルの場所を指示する１つまたは複数のパスを含むことを決定することができる。操作の完了には、ローカル認証ドメイン以外の１つまたは複数の認証ドメインからのリソースが必要であることを決定するステップに応じて、ステップ３０４において、初期サーバは、リダイレクション・リストを生成する。ステップ３０４において生成されたリダイレクション・リストは、クライアントが、要求された操作を完了するためにコンタクトすべき認証ドメインの各々に対するリスト・エントリを含む。たとえば、クロスドメイン・コピーの場合、リダイレクション・リストは、ｉ）コピーされるべきファイルが現在位置しているソース認証ドメインのＡＰＩサーバを指示する第１のエントリ、ｉｉ）ファイルがコピーされるべきターゲット認証ドメインのＡＰＩサーバを指示する第２のエントリ、ｉｉｉ）ファイルをソース認証ドメイン内のその現在の場所からターゲット認証ドメイン内の場所にコピーするようクライアントによって命じられるべきＡＰＩサーバを指示する第３のエントリ、（送信側ＡＰＩサーバはソース、ターゲット、または一部のその他の認証ドメインのいずれかに位置してもよい）を含む。
【００４２】
もう１つの例において、マルチドメイン検索の場合、リダイレクション・リストは、元の要求された操作で指示された検索クエリと一致するファイルを検索されるべき異なる認証ドメインの各々に対するエントリを含む。およびさらなる例において、マルチドメイン・ユーザ・アクティビティ・レポート要求の場合、リダイレクション・リストは、指定されたユーザに関するファイルアクティビティ情報を取得されるべき異なる認証ドメインの各々に対するエントリを含む。
【００４３】
ステップ３０６において、初期サーバは、オプションとして、要求された操作をローカル認証ドメインに含まれるリソースに適用することによって、部分結果オブジェクトを生成する。たとえば、マルチドメイン検索の場合、初期サーバは、元の要求された操作からの検索クエリと一致するローカル認証ドメイン内に位置するすべてのファイルのリストである部分結果オブジェクトを作成することができる。
【００４４】
ステップ３０８において、初期サーバは、リダイレクション・リストおよび任意の部分結果オブジェクトを、ステップ３１０において初期サーバからクライアント・システムに送信するために、パーシャル・レスポンスに格納することができる。
【００４５】
図６は、開示されるシステムの例示的な実施形態における異なる認証ドメインにわたる操作を実行するためにＲＥＳＴｆｕｌクライアント・システムによって実行されるステップの例を示す流れ図である。図６に示されるステップは、たとえば、図１および図２に示されるクライアント・システム１０（「クライアント・システム」）によって実行されてもよい。ステップ４００において、クライアント・システムは、マルチドメイン操作の要求を受信する。たとえば、クライアント・システムは、ステップ４００において、クライアント・システムによって生成されたグラフィカル・ユーザ・インターフェイスで実行されるユーザアクションの指示を受信することができる。グラフィカル・ユーザ・インターフェイスで実行されるユーザアクションは、ｉ）要求されるべき操作のタイプ（たとえば、検索、コピー、ユーザ・アクティビティ・レポート要求など）、およびｉｉ）操作が実行されるべき複数の認証ドメイン（たとえば、マルチドメイン検索で検索されるべきドメイン、クロスドメイン・コピーのためのソースおよびターゲット・ドメイン、アクティビティがマルチドメイン・ユーザ・アクティビティ・レポート要求のために取得されるべきドメインなど）を含むことができる。ステップ４００において受信された要求に応じて、クライアント・システムは、要求された操作を生成する。操作が実行されるべき認証ドメインを識別する、パスまたは同種のもののような指示は、クライアント・システムが要求された操作を生成するとき、クライアント・システムによって要求された操作に格納される。あるいは、ユーザのアカウントに以前リンクされたすべての認証ドメインにわたり実行されるべき要求された操作の場合、クライアント・システムは、クライアント・システムが要求された操作を生成するときに要求された操作内のユーザのアカウントにリンクされたすべての認証ドメインにわたり要求された操作が実行されることを示す指示を含む。次いで、クライアント・システムは、ステップ４０２において、要求された操作を初期ＡＰＩサーバに送信する。
【００４６】
クライアント・システムは、ＡＰＩサーバからレスポンスを受信し、ステップ４０４において、レスポンスがパーシャル・レスポンスであることを決定して、パーシャル・レスポンスをパーシャル・レスポンス・ハンドラ（たとえば、図２のパーシャル・レスポンス・ハンドラ６４）に渡す。パーシャル・レスポンスが部分結果オブジェクトを含む場合、クライアント・システムは、ステップ４０６において、パーシャル・レスポンスから部分結果オブジェクトを格納する。リダイレクション・リストに含まれている任意の部分結果オブジェクトは、要求された操作のドキュメント化されたレスポンス・タイプと同じであるタイプを有するはずである。たとえば、要求された操作が項目のフィードを返す場合、初期ＡＰＩサーバからクライアント・システムに送信される任意の部分結果は、項目のフィードでなくてはならない。１つの実施形態において、初期ＡＰＩサーバがクライアント・システムに送信する部分結果を有していない場合、初期ＡＰＩサーバは、ヌルの値を有する部分結果をクライアント・システムに送信する。
【００４７】
ステップ４０８において、クライアント・システムは、リダイレクション・リストを処理する。４１０において、リダイレクション・リストの処理に応じて、リダイレクション・リストの各エントリについて、クライアント・システムは、コマンドを作成して、それをパーシャル・レスポンスを生成した初期ＡＰＩサーバを含む認証ドメイン以外の認証ドメインのＡＰＩサーバに送信する。ステップ４１０において送信されたコマンドは、各コマンドが、以前送信されたコマンドのいずれか１つに対して任意のレスポンスが受信される前に送信され得るという点において、非同期的に送信されてもよい。ステップ４１０において送信されたコマンドの各々は、クライアント・システムが、コマンドが送信された認証ドメインに認証されることが必要になるという結果をもたらし得る。たとえば、ステップ４１０において送信されたコマンドの１つまたは複数は、宛先ＡＰＩサーバが、クライアント・システムとのチャレンジレスポンス認証プロトコルを実行するという結果をもたらし得る。そのような場合、ＡＰＩサーバは、質問（「チャレンジ」）を提示し、クライアント・システムは、ＡＰＩサーバを含む認証ドメインに認証されるために有効な回答（「レスポンス」）を提供する必要がある。チャレンジレスポンスプロトコルは、たとえば、パスワード認証を必要とすることがあるが、この場合、クライアント・システムは、クライアント・システムのユーザのパスワードから成る有効なレスポンスを提供することができる。その他のタイプの認証プロトコルは、クライアント・システムを、リダイレクション・リストのエントリによって指示される各認証ドメインに認証するために実行されてもよい。あるいは、クライアント・システムが、リダイレクション・リストのエントリによって指示される認証ドメインに以前認証されている場合、クライアント・システムは、たとえば認証クッキーまたは同種のもののような、クライアント・システムに以前格納された認証資料の形態の、その以前の認証の証拠を認証ドメインに含まれるＡＰＩサーバに提供することができる。
【００４８】
ステップ４１２において、クライアント・システムは、初期ＡＰＩサーバから、およびステップ４１０で発行されたコマンドへのレスポンスで受信した結果を、単一の最終結果に集約する。たとえば、要求された操作が「フィード」を返す場合、パーシャル・レスポンスおよび／またはステップ４１０で発行されたコマンドへのレスポンスにおけるすべての部分結果は、同じタイプのフィードでなければならず、クライアント・システムは、すべての受信した部分結果を、最終結果である単一のリストにそれらを連結することによって集約する。もう１つの例において、要求された操作が単一の要素レスポンスを返す場合、パーシャル・レスポンスまたはステップ４１０で発行されたコマンドへのレスポンスの１つのみが部分結果を含み、ステップ４１０で発行されたコマンドへのレスポンスのすべてのその他のレスポンスは、２０４−コンテンツなしのステータスコードを有する。次いで、クライアント・システムは、ステップ４１４において、アプリケーションのグラフィカル・ユーザ・インターフェイスを通じてクライアント・システムのユーザに最終結果を表示する。
【００４９】
図７は、ユーザが異なる認証ドメインにわたり実行されるべき操作を指定できるようにする、開示されるシステムの例示的な実施形態によって生成されるグラフィカル・ユーザ・インターフェイスの一部における特徴を示す簡略化されたスクリーンショットを示す図である。図７に示されるアプリケーション・ユーザ・インターフェイス５００は、たとえば、ディスプレイ・デバイス５０を通じてクライアント・ユーザ・インターフェイス論理６０によってクライアント・システム１０（図１および図２）のユーザに表示されてもよい。図７に示されるように、アプリケーション・ユーザ・インターフェイス５００は、フォルダ１  ５０４からフォルダ２  ５０６、フォルダＮ  ５０８に至るフォルダ表現５０２を含む。フォルダ表現５０２の各々は、異なる認証ドメインに位置するファイル・リポジトリ（たとえば、ファイル・サーバ・システムまたはファイル共有サービス）を表すことができる。たとえば、図１を参照すると、フォルダ１  ５０４は、認証ドメインＡ２０に位置するファイル・リポジトリを表すことができ、フォルダ２  ５０６は、認証ドメインＢ２６に位置するファイル・リポジトリを表すことができる。したがって、クライアント・システム１０のユーザは、フォルダ１  ５０４を選択する（たとえば、クリックする）ことによって認証ドメインＡ２０に位置するファイル・リポジトリを選択することができる、および／またはフォルダ２  ５０６を選択する（たとえば、クリックする）ことによって認証ドメインＢ２６に位置するファイル・リポジトリを選択することができる。同様に、クライアント・システム１０のユーザは、フォルダ１  ５０４をダブルクリックすることによって認証ドメインＡ２０に含まれるファイル・リポジトリに含まれるファイルからブラウズおよび選択することができ、フォルダ２  ５０６をダブルクリックすることによって認証ドメインＢ２６に含まれるファイル・リポジトリに含まれるファイルからブラウズおよび選択することができる。
【００５０】
ファイル・コマンド５１０は、コマンド１  ５１２から、コマンド２  ５１４、コマンド３  ５１６、コマンドＮ  ５１８までを含むことが示されている。ファイル・コマンド５１０は、１つまたは複数の現在選択されているファイル、ファイル・リポジトリなどに関して実行されるべき固有の要求された操作を指示するためにユーザが選択することができるユーザ・インターフェイス表示オブジェクト（たとえば、ボタン）の例である。たとえば、コマンド１  ５１２をクリックすることで、１つまたは複数の現在選択されているファイル・リポジトリに関して検索操作をトリガーすることができる。したがって、ユーザが、フォルダ１  ５０４およびフォルダ２  ５０６を選択した後にコマンド１  ５１２をクリックする場合、マルチドメイン検索操作は、検索項目と一致するファイルを探して、認証ドメインＡ２０のファイル・リポジトリおよび認証ドメインＢ２６のファイル・リポジトリを検索するよう開始されることになる。そのような要求された操作は、認証ドメインＡ２０および認証ドメインＢ２６を指示するパスを含む。
【００５１】
あるいは、コマンド１  ５１２をクリックすることで、クライアント・システム１０のユーザに関連付けられているアカウントに以前リンクされたすべての認証ドメインに位置するすべてのファイル・リポジトリに関して検索操作をトリガーすることができる。その場合、要求された操作は、検索操作が、ユーザに関連付けられているアカウントに以前リンクされたすべての認証ドメインのすべてのファイル・リポジトリにわたり実行されることを示す指示を含むように生成される。
【００５２】
もう１つの例において、コマンド２  ５１４をクリックすることで、現在選択されているファイルを、続いて選択されるターゲット・ファイルの場所またはリポジトリにコピーするコピー操作をトリガーすることができる。したがって、ユーザが、フォルダ１  ５０４内をブラウズしながら、認証ドメインＡ２０に位置するファイル・リポジトリに含まれるファイルを選択し、次いでコマンド２  ５１４をクリックし、次いで認証ドメインＢ２６内のファイル・リポジトリがコピーのターゲットであることを指示する場合、クロスドメイン・コピー操作が、認証ドメインＡ２０に位置するファイル・リポジトリから、認証ドメインＢ２６に位置するファイル・リポジトリに選択されたファイルをコピーするように開始される。
【００５３】
およびもう１つの例において、コマンド３  ５１６をクリックすることで、１つまたは複数の現在選択されているファイル・リポジトリにわたり以前指示されたユーザに関してユーザ・アクティビティ・レポート要求をトリガーすることができる。したがって、ユーザが、フォルダ１  ５０４およびフォルダ２  ５０６が選択されている間にコマンド３  ５１６をクリックする場合、マルチドメイン・ユーザ・アクティビティ・レポート要求は、認証ドメインＡ２０に位置するファイル・リポジトリと認証ドメインＢ２６に位置するファイル・リポジトリの両方にわたり以前指示されたユーザによって実行されたすべてのファイル操作を記述するログ・データを収集するよう開始されることになる。あるいは、コマンド３  ５１６をクリックすることで、クライアント・システム１０のユーザに関連付けられているアカウントに以前リンクされたすべての認証ドメインに位置するすべてのファイル・リポジトリにわたり以前指示されたユーザに関してユーザ・アクティビティ・レポート要求をトリガーすることができる。
【００５４】
当業者であれば、図７に示される固有のユーザ・インターフェイス・オブジェクト（つまり、ボタン）が、簡便な例示および説明の目的のために提供されているに過ぎず、開示されるシステムが、それらの固有のユーザ・インターフェイス・オブジェクトを使用して、開示されるシステムによってサポートされるマルチドメイン操作にユーザアクセスを提供する実施形態に限定されないことを理解するであろう。任意の適切なタイプのグラフィカル制御要素（たとえば、ドロップダウンメニュー、ポップアップメニュー、コンテキストメニュー、サブメニューなど）は、ファイル・コマンド５１０に示されるボタンまたはフォルダ表現５０２に示されるフォルダの機能的な代替として使用されてもよい。さらに、アプリケーション・ユーザ・インターフェイス５００自体は、簡略化された表現で示され、示されているもの以外のさまざまなユーザ・インターフェイス表示オブジェクトは、必要に応じて固有の実施形態に含まれるかまたは追加されてもよい。
【００５５】
このように、異なる認証ドメインに位置する複数のファイル・リポジトリ上で操作が実行されるようにする固有の特徴を有し、しかも以前のシステムにまさる大幅な改善をもたらす、操作を実行するための新しいシステムが開示される。開示されるシステムは、異なる認証ドメイン上で要求された操作を効果的に実行し、しかもクライアント・システムのみが異なるドメインで操作を実行した結果として異なるドメインから取り出されたデータにアクセスできるようにすることを含む、以前の手法にまさる固有の改善をもたらす。取り出されたデータは、それぞれの認証ドメインからクライアント・システムに直接送信されるので、開示されるシステムは、認証済みの要求側クライアント・システムの外部への顧客データの公開を回避することにより、ひいてはデータ・プライバシー保護を提供することにより、以前のシステムにまさる改善をもたらす。したがって、以前の手法とは対照的に、開示されるシステムは、多くのサービスとしてのソフトウェア（ＳａａＳ）プロバイダ環境のような、データ・プライバシー保護要件を有するコンテキストにおける使用に適している。
【００５６】
開示されるシステムはまた、Ｒｅｐｒｅｓｅｎｔａｔｉｏｎａｌ  Ｓｔａｔｅ  Ｔｒａｎｓｆｅｒ（ＲＥＳＴ）準拠のクライアントを使用することによって以前のシステムにまさる改善をもたらす。開示されるシステムによって生成されるリダイレクション・リストを処理するために、クライアントは、有利なことに、一連の非同期的に発行されるドメイン固有の操作を使用する必要があるだけで、リダイレクション・リストのエントリによって指示されるＡＰＩサーバは、各自の認証ドメイン内のクライアント・システムから送信されるコマンドを処理する必要があるだけである。このようにして、開示されるシステムは、比較的軽量のクライアントを有するという望ましいＲＥＳＴの目標を満足し、したがってＲＥＳＴクライアント−サーバ・アーキテクチャの制約に適合する。
【００５７】
上記の説明は、固有のシステム、デバイス、および／またはコンポーネントを指示するためにさまざまな固有の用語を使用して実施形態の例を提供するが、そのような用語は、例示的なものであり、利便性および簡潔な説明を目的として使用されているに過ぎない。開示されるシステムは、上記で使用される用語によって識別されるシステム、デバイスおよび／またはコンポーネントを含むかまたは伴う実施形態に限定されることはない。
【００５８】
当業者によって理解されるように、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として具現されてもよい。したがって、本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、または本明細書においてすべてが概して「回路」、「モジュール」もしくは「システム」と称され得るソフトウェアおよびハードウェアの態様を組み合わせる実施形態の形をとることができる。さらに、本発明の態様は、コンピュータ可読プログラムコードを具現させた１つまたは複数の非一時的コンピュータ可読ストレージ媒体において具現されたコンピュータ・プログラム製品の形をとることができる。
【００５９】
１つまたは複数のコンピュータ可読ストレージ媒体の任意の組み合わせが使用されてもよい。コンピュータ可読ストレージ媒体は、たとえば、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読取り専用メモリ（ＥＰＲＯＭまたはフラッシュメモリ）、ポータブルコンパクトディスク読取り専用メモリ（ＣＤ−ＲＯＭ）、光ストレージ・デバイス、磁気ストレージ・デバイス、または前述のものの任意の適切な組み合わせであってもよいが、これらに限定されることはない。本文書のコンテキストにおいて、コンピュータ可読ストレージ媒体は、命令実行システム、装置、またはデバイスによって、またはこれらと接続して使用するプログラムを含むかまたは格納することができる任意の非一時的有形の媒体であってもよい。
【００６０】
開示されるシステムは、完全にソフトウェアベースの実施形態、完全にハードウェアベースの実施形態、またはソフトウェアおよびハードウェア要素を共に含む実施形態の形をとることができる。図面は、本発明の実施形態による方法、装置、およびコンピュータ・プログラム製品のブロック図および流れ図の説明図を含む。そのような図面の各ブロック、およびそれらのブロックの組み合わせが、コンピュータ・プログラム命令によって実施され得ることが理解されるであろう。これらのコンピュータ・プログラム命令は、コンピュータまたはその他のプログラマブル・データ処理装置上で実行する命令が、単一または複数のブロックにおいて指定される機能を実施するための手段を作成するように、コンピュータまたはその他のプログラマブル・データ処理装置にロードされてマシンを生成することができる。これらのコンピュータ・プログラム命令はまた、特定の方式で機能するようにコンピュータまたはその他のプログラマブル・データ処理装置を指図することができるコンピュータ可読メモリに格納されて、コンピュータ可読メモリに格納された命令が、単一または複数のブロックにおいて指定される機能を実施する命令手段を含む製造品を生成するようにされてもよい。コンピュータ・プログラム命令はまた、コンピュータまたはその他のプログラマブル・データ処理装置にロードされて、コンピュータまたはその他のプログラマブル装置上で実行する命令が、単一または複数のブロックにおいて指定される機能を実施するためのステップを提供するように、コンピュータ実施のプロセスを生成するためにコンピュータまたはその他のプログラマブル装置上で一連の操作ステップが実行されるようにすることができる。
【００６１】
当業者であれば、本発明の機能を定義するプログラムが、（ａ）非書き込み可能ストレージ媒体（たとえば、コンピュータＩ／Ｏアタッチメントによって読取り可能なＲＯＭまたはＣＤ−ＲＯＭディスクのようなコンピュータ内の読取り専用メモリ・デバイス）に永続的に格納された情報、または（ｂ）書き込み可能ストレージ媒体（たとえば、フロッピーディスクおよびハードドライブ）に変更可能に格納された情報を含むがこれらに限定されることはない多数の形態で、コンピュータに搬送され得ることを容易に理解すべきである。
【００６２】
本発明は、上記の例示的な実施形態を通じて説明されているが、開示される本明細書における発明の概念を逸脱することなく、例示される実施形態の変更および変形が行なわれてもよいことが当業者には理解されよう。
【図１】
0006495467.tif 000002
【図２】
0006495467.tif 000003
【図３】
0006495467.tif 000004
【図４】
0006495467.tif 000005
【図５】
0006495467.tif 000006
【図６】
0006495467.tif 000007
【図７】
0006495467.tif 000008