(57)【要約】【課題】  マルチパーティ会議セッションに参加している参加コンピュータシステムに関するメンバシップ情報を配信すること。【解決手段】  リンクデータベースは、参加コンピュータシステムと、その参加コンピュータシステムに論理リンクされている近隣コンピュータシステムのリストとを識別する、１つまたは複数のリンク状態記録を含む。新しいコンピュータシステムがマルチパーティセッションに加入した場合等に、この加入等の変更は、対応する近隣コンピュータシステムのリンクデータベース中に反映される。近隣コンピュータシステム同士がリンクデータベースを交換するので、変更は最終的にすべての参加コンピュータシステムに伝搬される。したがって、参加コンピュータシステムは継続的に、各参加コンピュータシステムが他の参加コンピュータシステムとそれらに関連する論理リンクとを意識しているという安定状態に向かって遷移する。【選択図】  図２Ａ
2004328731.tif 000002
【特許請求の範囲】
【請求項１】
招待コンピュータシステムを少なくとも含むマルチパーティアプリケーションレイヤセッションにおいて、前記招待コンピュータシステムは加入コンピュータシステムにネットワーク接続可能であり、前記加入コンピュータシステムと前記招待コンピュータシステムとは電子メッセージを転送することによって通信することができる場合に、前記加入コンピュータシステムにおける加入側アプリケーションレイヤプロセスが前記マルチパーティアプリケーションレイヤセッションに加入する方法であって、
前記招待コンピュータシステムにハローメッセージを送信する動作と、
前記招待コンピュータシステムが前記加入コンピュータシステムに論理リンクされていることを示す招待側リンク状態記録を含む招待側リンクデータベースを、前記招待コンピュータシステムから受信する動作と、
前記招待側リンクデータベースを受信するのに応答して、前記加入コンピュータシステムが前記招待コンピュータシステムに論理リンクされていることを少なくとも示すように加入側リンクデータベースを更新する動作と、
前記加入コンピュータシステムが前記招待コンピュータシステムに論理リンクされていることを示す更新済み加入側リンク状態記録を、前記招待コンピュータシステムに送信する動作と
を含むことを特徴とする方法。
【請求項２】
前記ハローメッセージの送信前に、プロトコルスタック中で前記加入側アプリケーションレイヤプロセスよりも下に位置する加入側下位プロトコルレイヤが、対応する招待側下位プロトコルレイヤからセキュリティ情報を受信する動作をさらに含み、
前記セキュリティ情報は、前記マルチパーティアプリケーションレイヤセッションで認証するためのものであることを特徴とする請求項１に記載の方法。
【請求項３】
前記ハローメッセージの送信前に、プロトコルスタック中で前記加入側アプリケーションレイヤプロセスよりも下に位置する加入側下位プロトコルレイヤが、対応する招待側下位プロトコルレイヤからエントリポイントを受信する動作をさらに含み、
前記エントリポイントは、前記招待コンピュータシステムに接続して下位レイヤ接続データを交換するためのものであることを特徴とする請求項１に記載の方法。
【請求項４】
ハローメッセージを送信する前記動作は、１つまたは複数のリンク状態記録を含む同期メッセージを送信する動作を含むことを特徴とする請求項１に記載の方法。
【請求項５】
招待側リンクデータベースを受信する前記動作は、１つまたは複数のリンク状態記録を受信する動作を含み、
各リンク状態記録は、前記マルチパーティアプリケーションレイヤセッションに参加しているコンピュータシステム間の１つまたは複数の論理リンクを示すことを特徴とする請求項１に記載の方法。
【請求項６】
招待側リンクデータベースを受信する前記動作は、スキーマベースの招待側リンクデータベースを受信する動作を含むことを特徴とする請求項１に記載の方法。
【請求項７】
スキーマベースの招待側リンクデータベースを受信する前記動作は、ＸＭＬスキーマに従って定義されたＸＭＬ命令を受信する動作を含むことを特徴とする請求項６に記載の方法。
【請求項８】
加入側リンクデータベースを更新する前記動作は、前記加入コンピュータシステムについての近隣リストに前記招待コンピュータシステムを追加する動作を含むことを特徴とする請求項１に記載の方法。
【請求項９】
加入側リンクデータベースを更新する前記動作は、前記加入リンクデータベース中の現バージョンのリンク状態記録を、前記招待コンピュータシステムから受信した更新済みバージョンのリンク状態記録で置き換える動作を含むことを特徴とする請求項１に記載の方法。
【請求項１０】
加入側リンクデータベースを更新する前記動作は、前記加入側アプリケーションレイヤプロセスが対応する招待側アプリケーションレイヤプロセスに論理接続されており、前記加入側アプリケーションレイヤプロセスと前記招待側アプリケーションレイヤプロセスとが会議データを交換することができることを示す動作を含むことを特徴とする請求項１に記載の方法。
【請求項１１】
更新済み加入側リンク状態記録を前記招待コンピュータシステムに送信する前記動作は、スキーマベースのリンク状態記録を送信する動作を含むことを特徴とする請求項１に記載の方法。
【請求項１２】
スキーマベースの招待側リンクデータベースを送信する前記動作は、ＸＭＬスキーマに従って定義されたＸＭＬリンク状態記録を送信する動作を含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記招待コンピュータシステムが前記加入コンピュータシステムの近隣であることを示すリンク状態記録を含む第２の更新済み招待側リンクデータベースを受信する動作をさらに含むことを特徴とする請求項１に記載の方法。
【請求項１４】
前記加入コンピュータシステムが前記ハローメッセージを送信する前に、前記加入コンピュータシステムと前記招待コンピュータシステムとは両方とも前記マルチパーティアプリケーションレイヤセッション内の参加コンピュータシステムであることを特徴とする請求項１に記載の方法。
【請求項１５】
前記マルチパーティアプリケーションレイヤセッションはマルチパーティ会議セッションであることを特徴とする請求項１に記載の方法。
【請求項１６】
招待コンピュータシステムを少なくとも含むマルチパーティアプリケーションレイヤセッションにおいて、前記招待コンピュータシステムは加入コンピュータシステムにネットワーク接続可能であり、前記加入コンピュータシステムと前記招待コンピュータシステムとは電子メッセージを転送することによって通信することができる場合に、前記招待コンピュータシステムにおける招待側アプリケーションレイヤプロセスが前記加入コンピュータシステムを招待して前記マルチパーティアプリケーションレイヤセッションに加入させる方法であって、
前記加入コンピュータシステムからハローメッセージを受信する動作と、
前記ハローメッセージを受信するのに応答して、前記招待コンピュータシステムが前記加入コンピュータシステムに論理リンクされていることを示すように招待側リンクデータベースを更新する動作と、
前記招待コンピュータシステムが前記加入コンピュータシステムに論理リンクされていることを示す招待側リンク状態記録を少なくとも含む前記更新済み招待側リンクデータベースを、前記加入コンピュータシステムに送信する動作と、
前記加入コンピュータシステムが前記招待コンピュータシステムに論理リンクされていることを示す加入側リンク状態記録を、前記加入コンピュータシステムから受信する動作とを含むことを特徴とする方法。
【請求項１７】
前記ハローメッセージの受信前に、プロトコルスタック中で前記招待側アプリケーションレイヤプロセスよりも下に位置する招待側下位プロトコルレイヤが、対応する加入側下位プロトコルレイヤにセキュリティ情報を送信する動作をさらに含み、
前記セキュリティ情報は、前記マルチパーティアプリケーションレイヤセッションで認証するためのものであることを特徴とする請求項１６に記載の方法。
【請求項１８】
前記ハローメッセージの受信前に、プロトコルスタック中で前記招待側アプリケーションレイヤプロセスよりも下に位置する招待側下位プロトコルレイヤが、対応する加入側下位プロトコルレイヤにエントリポイントを公示する動作をさらに含み、前記エントリポイントは、前記加入コンピュータシステムに接続して下位レイヤ接続データを交換するためのものであることを特徴とする請求項１６に記載の方法。
【請求項１９】
前記加入コンピュータシステムからハローメッセージを受信する前記動作は、前記ハローメッセージを指定のしきい値内で受信する動作を含み、前記指定のしきい値は、前に前記加入コンピュータシステムに送信された返信期間から計算されることを特徴とする請求項１６に記載の方法。
【請求項２０】
前記加入コンピュータシステムからハローメッセージを受信する前記動作は、１つまたは複数のリンク状態記録を含む同期メッセージを受信する動作を含むことを特徴とする請求項１６に記載の方法。
【請求項２１】
招待側リンクデータベースを更新する前記動作は、前記招待コンピュータシステムに対応する近隣リストに前記加入コンピュータシステムを追加する動作を含むことを特徴とする請求項１６に記載の方法。
【請求項２２】
招待側リンクデータベースを更新する前記動作は、前記招待側アプリケーションレイヤプロセスが対応する加入側アプリケーションレイヤプロセスに論理接続されており、前記招待側アプリケーションレイヤプロセスと前記加入側アプリケーションレイヤプロセスとが会議データを交換することができることを示す動作を含むことを特徴とする請求項１６に記載の方法。
【請求項２３】
前記更新済み招待側リンクデータベースを前記加入コンピュータシステムに送信する前記動作は、１つまたは複数のリンク状態記録を送信する動作を含み、
各リンク状態記録は、前記マルチパーティアプリケーションレイヤセッション内のコンピュータシステム間の１つまたは複数の論理リンクを示すことを特徴とする請求項１６に記載の方法。
【請求項２４】
前記更新済み招待側リンクデータベースを前記加入コンピュータシステムに送信する前記動作は、スキーマベースの招待側リンクデータベースを送信する動作を含むことを特徴とする請求項１６に記載の方法。
【請求項２５】
スキーマベースの招待側リンクデータベースを送信する前記動作は、ＸＭＬスキーマに従って定義されたＸＭＬ命令を送信する動作を含むことを特徴とする請求項２４に記載の方法。
【請求項２６】
加入側リンク状態記録を受信する前記動作は、スキーマベースのリンク状態記録を受信する動作を含むことを特徴とする請求項１６に記載の方法。
【請求項２７】
スキーマベースのリンク状態記録を受信する前記動作は、ＸＭＬスキーマに従って定義されたＸＭＬリンク状態記録を受信する動作を含むことを特徴とする請求項２６に記載の方法。
【請求項２８】
前記招待側リンクデータベースをさらに更新して前記加入側リンク状態記録を含める動作をさらに含むことを特徴とする請求項１６に記載の方法。
【請求項２９】
前記さらに更新された招待側リンクデータベースを、前記招待コンピュータシステムについての近隣リストに含まれる少なくとも１つのコンピュータシステムに送信し、前記マルチパーティアプリケーションレイヤセッションに参加している他のコンピュータシステムに前記加入側リンク状態記録が伝搬されるようにする動作をさらに含むことを特徴とする請求項２８に記載の方法。
【請求項３０】
前記招待コンピュータシステムが前記ハローメッセージを受信する前に、前記招待コンピュータシステムと前記加入コンピュータシステムは両方とも前記マルチパーティアプリケーションレイヤセッション内の参加コンピュータシステムであることを特徴とする請求項１６に記載の方法。
【請求項３１】
前記マルチパーティアプリケーションレイヤセッションはマルチパーティ会議セッションであることを特徴とする請求項１６に記載の方法。
【請求項３２】
修復コンピュータシステムおよび近隣コンピュータシステムを含めたネットワーク接続可能な複数の参加コンピュータシステムを有するマルチパーティアプリケーションレイヤセッションにおいて、前記近隣コンピュータシステムは前記修復コンピュータシステムについての近隣リスト中にある場合に、前記修復コンピュータシステムにおけるアプリケーションレイヤプロセスが前記マルチパーティアプリケーションレイヤセッションの修復を開始する方法であって、
前記近隣コンピュータシステムからリンクデータがもはや受信されなくなっていることを検出する動作と、
前記修復コンピュータの近隣リストから前記近隣コンピュータシステムを削除する動作と、
修復側リンクデータベースから前記近隣コンピュータシステムのリンク状態記録を削除する動作と、
前記修復側リンクデータベース中の残りのリンク状態記録に基づいて、論理的に到達不可能な参加コンピュータシステムのリストを識別する動作と、
前記マルチパーティセッションを修復するために、少なくとも１つの論理的に到達不可能な参加コンピュータシステムを加入させることを試みる動作と
を含むことを特徴とする方法。
【請求項３３】
前記近隣コンピュータシステムからリンクデータがもはや受信されなくなっていることを検出する前記動作は、返信タイマが切れる動作を含むことを特徴とする請求項３２に記載の方法。
【請求項３４】
前記近隣コンピュータシステムからリンクデータがもはや受信されなくなっていることを検出する前記動作は、指定の応答期間内にハートビートメッセージを受信しない動作を含むことを特徴とする請求項３２に記載の方法。
【請求項３５】
前記修復側リンクデータベース中のリンク状態記録に基づいて論理的に到達不可能な参加コンピュータシステムのリストを識別する前記動作は、前記修復側リンクデータベースに含まれるリンクのどんな組合せを経由しても到達できない参加コンピュータシステムを識別する動作を含むことを特徴とする請求項３２に記載の方法。
【請求項３６】
前記マルチパーティセッションを修復するために少なくとも１つの論理的に到達不可能な参加コンピュータシステムを参加させることを試みる前記動作は、論理的に到達不可能な参加コンピュータシステムにハローメッセージを送信する動作を含むことを特徴とする請求項３２に記載の方法。
【請求項３７】
前記マルチパーティセッションを修復するために少なくとも１つの論理的に到達不可能な参加コンピュータシステムを参加させることを試みる前記動作は、論理的に到達不可能な参加コンピュータシステムのリスト中で識別される、論理的に到達不可能な参加コンピュータシステムそれぞれを参加させることを試みる動作を含むことを特徴とする請求項３２に記載の方法。
【請求項３８】
招待コンピュータシステムを少なくとも含むマルチパーティアプリケーションレイヤセッションで使用するためのコンピュータプログラム製品であって、前記招待コンピュータシステムは加入コンピュータシステムにネットワーク接続可能であり、前記加入コンピュータシステムと前記招待コンピュータシステムとは電子メッセージを転送することによって通信することができ、前記コンピュータプログラム製品は、前記加入コンピュータシステムにおける加入側アプリケーションレイヤプロセスが前記マルチパーティアプリケーションレイヤセッションに加入する方法を実施するものであり、コンピュータ実行可能命令を記憶した１つまたは複数のコンピュータ可読媒体を備え、前記コンピュータ実行可能命令は、プロセッサによって実行されたとき、
前記招待コンピュータシステムにハローメッセージを送信する動作と、
前記招待コンピュータシステムが前記加入コンピュータシステムに論理リンクされていることを示す招待側リンク状態記録を含む招待側リンクデータベースを、前記招待コンピュータシステムから受信する動作と、
前記招待側リンクデータベースを受信するのに応答して、前記加入コンピュータシステムが前記招待コンピュータシステムに論理リンクされていることを少なくとも示すように加入側リンクデータベースを更新する動作と、
前記加入コンピュータシステムが前記招待コンピュータシステムに論理リンクされていることを示す更新済み加入側リンク状態記録を、前記招待コンピュータシステムに送信する動作と
を前記加入コンピュータシステムに行わせることを特徴とするコンピュータプログラム製品。
【請求項３９】
前記１つまたは複数のコンピュータ可読媒体は物理媒体であることを特徴とする請求項３８に記載のコンピュータプログラム製品。
【請求項４０】
招待コンピュータシステムを少なくとも含むマルチパーティアプリケーションレイヤセッションで使用するためのコンピュータプログラム製品であって、前記招待コンピュータシステムは加入コンピュータシステムにネットワーク接続可能であり、前記加入コンピュータシステムと前記招待コンピュータシステムとは電子メッセージを転送することによって通信することができ、前記コンピュータプログラム製品は、前記招待コンピュータシステムにおける招待側アプリケーションレイヤプロセスが前記加入コンピュータシステムを招待して前記マルチパーティアプリケーションレイヤセッションに加入させる方法を実施するものであり、コンピュータ実行可能命令を記憶した１つまたは複数のコンピュータ可読媒体を備え、前記コンピュータ実行可能命令は、プロセッサによって実行されたとき、
前記加入コンピュータシステムからハローメッセージを受信する動作と、
前記ハローメッセージを受信するのに応答して、前記招待コンピュータシステムが前記加入コンピュータシステムに論理リンクされていることを示すように招待側リンクデータベースを更新する動作と、
前記招待コンピュータシステムが前記加入コンピュータシステムに論理リンクされていることを示す招待側リンク状態記録を少なくとも含む前記更新済み招待側リンクデータベースを、前記加入コンピュータシステムに送信する動作と、
前記加入コンピュータシステムが前記招待コンピュータシステムに論理リンクされていることを示す加入側リンク状態記録を、前記加入コンピュータシステムから受信する動作と
を前記招待コンピュータシステムに行わせることを特徴とするコンピュータプログラム製品。
【請求項４１】
前記１つまたは複数のコンピュータ可読媒体は物理媒体であることを特徴とする請求項４０に記載のコンピュータプログラム製品。
【請求項４２】
修復コンピュータシステムおよび近隣コンピュータシステムを含めたネットワーク接続可能な複数の参加コンピュータシステムを有するマルチパーティアプリケーションレイヤセッションで使用するためのコンピュータプログラム製品であって、前記近隣コンピュータシステムは前記修復コンピュータシステムについての近隣リスト中にあり、前記コンピュータプログラム製品は、前記修復コンピュータシステムにおけるアプリケーションレイヤプロセスが前記マルチパーティアプリケーションレイヤセッションの修復を開始する方法を実施するものであり、コンピュータ実行可能命令を記憶した１つまたは複数のコンピュータ可読媒体を備え、前記コンピュータ実行可能命令は、プロセッサによって実行されたとき、
前記近隣コンピュータシステムからリンクデータがもはや受信されなくなっていることを検出する動作と、
前記修復コンピュータの近隣リストから前記近隣コンピュータシステムを削除する動作と、
修復側リンクデータベースから前記近隣コンピュータシステムのリンク状態記録を削除する動作と、
前記修復側リンクデータベース中の残りのリンク状態記録に基づいて、論理的に到達不可能な参加コンピュータシステムのリストを識別する動作と、
前記マルチパーティセッションを修復するために、少なくとも１つの論理的に到達不可能な参加コンピュータシステムを加入させることを試みる動作と
を前記修復コンピュータシステムに行わせることを特徴とするコンピュータプログラム製品。
【請求項４３】
前記１つまたは複数のコンピュータ可読媒体は物理媒体であることを特徴とする請求項４２に記載のコンピュータプログラム製品。
【請求項４４】
リンク状態記録を表すためのデータ構造を記憶した１つまたは複数のコンピュータ可読媒体であって、前記データ構造は、
マルチパーティアプリケーションレイヤセッションに参加している参加コンピュータシステムを識別するためのコンピュータシステム識別子を表すコンピュータシステム識別子フィールドと、
前記コンピュータシステム識別子フィールド中で識別される前記参加コンピュータシステムに論理リンクされている１つまたは複数の近隣コンピュータシステムのリストを表す近隣リストフィールドと
を備えることを特徴とするコンピュータ可読媒体。
【請求項４５】
前記近隣リストフィールドは、
１つまたは複数の近隣コンピュータシステム識別子フィールドからなり、各近隣コンピュータシステム識別子フィールドは、前記コンピュータシステム識別子フィールド中で表される前記参加コンピュータシステムに論理リンクされている近隣コンピュータシステムを識別するための近隣コンピュータシステム識別子を表すことを特徴とする請求項４４に記載のコンピュータ可読媒体。
【請求項４６】
前記データ構造はさらに、
前記コンピュータシステム識別子フィールド中で表される前記参加コンピュータシステムを記述するのに使用されるメタデータを表すコンピュータシステムメタデータフィールドを備えることを特徴とする請求項４４に記載のコンピュータ可読媒体。
【請求項４７】
前記データ構造はさらに、
前記コンピュータシステム識別子フィールド中で表される前記参加コンピュータシステムが前記リンク状態記録を表すデータ構造を生成した時を表すタイムスタンプフィールドを備えることを特徴とする請求項４４に記載のコンピュータ可読媒体。
【請求項４８】
リンクデータベースを表すためのデータ構造を記憶した１つまたは複数のコンピュータ可読媒体であって、前記データ構造は、
マルチパーティアプリケーションレイヤセッションに参加しており前記リンクデータベースを送信した参加コンピュータシステムを識別するためのコンピュータシステム識別子を表すコンピュータシステム識別子フィールドと、
前記コンピュータシステム識別子フィールド中で表される前記参加コンピュータシステムが、近隣コンピュータシステムから前記リンクデータがもはや受信されなくなっていることを検出する前に前記リンクデータベースの送信に対する応答をどれだけ待機するかを示す返信しきい値の基礎として使用される返信期間値を表す返信期間フィールドと、
前記コンピュータシステム識別子フィールド中で表される前記コンピュータシステムに加えて、前記マルチパーティアプリケーションレイヤセッションに参加している他の参加コンピュータシステムについての１つまたは複数のリンク状態記録を表すリンク状態記録フィールドとを備えることを特徴とするコンピュータ可読媒体。
【請求項４９】
リンクデータベースからのリンクデータを転送するためのフォーマットを定義するスキーマを表すデータ構造を記憶した１つまたは複数のコンピュータ可読媒体であって、前記データ構造は、
リンクデータベースからのリンクデータを転送することになるコンピュータシステムを識別するためのフォーマットを定義するｆｒｏｍフィールドと、
前記ｆｒｏｍフィールド中で定義される前記識別フォーマットに従って識別されるコンピュータシステムが、近隣コンピュータシステムからリンクデータがもはや受信されなくなっていることを検出する前にリンクデータの送信に対する応答をどれだけ待機するかを示す返信しきい値の基礎として使用される返信期間を表すためのフォーマットを定義する期間フィールドと、
前記ｆｒｏｍフィールド中で定義される前記識別フォーマットに従って識別されるコンピュータシステムから転送されることになるリンクデータを有する１つまたは複数のコンピュータシステムを表すノードタイプフィールドと
を備えることを特徴とするコンピュータ可読媒体。
【請求項５０】
前記ノードタイプフィールドは、
前記ｆｒｏｍフィールド中で定義される前記識別フォーマットに従って識別されるコンピュータシステムから転送されることになるリンクデータを有するコンピュータシステムを識別するためのノードフォーマットを定義するノードｕｒｉフィールドと、
前記ノードｕｒｉフィールド中で定義される前記ノード識別フォーマットに従って識別されるコンピュータシステムに関連するメタデータを表すためのフォーマットを定義する名前フィールドと、
前記ノードｕｒｉフィールド中の前記ノードｕｒｉフィールドフォーマットに従って識別されるコンピュータシステムに論理リンクされた１つまたは複数のコンピュータシステムを表すためのフォーマットを定義するリンクタイプフィールドと
からなることを特徴とする請求項４９に記載のコンピュータ可読媒体。
【請求項５１】
前記リンクタイプフィールドは、
前記ノードｕｒｉフィールド中の前記ノードｕｒｉフィールドフォーマットに従って識別されるコンピュータシステムに論理リンクされたコンピュータシステムを識別するためのフォーマットを定義するリンクｕｒｉフィールドからなることを特徴とする請求項４９に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータネットワークに関し、より詳細には、マルチパーティアプリケーションレイヤセッション（ｍｕｌｔｉ−ｐａｒｔｙ  ａｐｐｌｉｃａｔｉｏｎ  ｌａｙｅｒ  ｓｅｓｓｉｏｎ）に関するメンバシップ情報の配信に関する。
【背景技術】
【０００２】
コンピュータネットワークは、あるコンピュータまたはデバイス（以下、この両方を「コンピューティングシステム」と呼ぶ）が電子メッセージを使用してネットワークを介して別のコンピューティングシステムと通信できるようにすることにより、我々の情報通信能力および情報アクセス能力を高めてきた。電子メッセージがコンピューティングシステム間で転送されるとき、電子メッセージはしばしば、電子メッセージ内のデータに対する操作（例えばパケット化、ルーティング、フロー制御）を実施するプロトコルスタックの中を通る。オープンシステムインターコネクト（「ＯＳＩ」）モデルは、プロトコルスタックを実装するためのネットワーキングフレームワークの一例である。
【０００３】
ＯＳＩモデルでは、電子メッセージを転送するための動作が７つの別々の「レイヤ」に分類され、各レイヤは、データ転送プロセスにおける何らかの動作を実施するように指定されている。プロトコルスタックはこれらの各レイヤを実装することが可能だが、多くのプロトコルスタックは、ネットワークを介したデータ転送で使用するための選択されたレイヤだけを実装する。データがコンピューティングシステムから送信されるときは、データはアプリケーションレイヤで発生し、より低い中間レイヤに渡され、次いでネットワーク上に渡される。データがネットワークから受信されるときは、データは物理レイヤに入り、より高い中間レイヤに渡されてから、最終的にアプリケーションレイヤで受け取られる。最上レイヤであるアプリケーションレイヤは、アプリケーションおよびエンドユーザプロセス、例えば電子会議ソフトウェアをサポートすることを担う。
【０００４】
プロトコルスタック中の下位レイヤの機能は通常、アプリケーションレイヤから抽象化される。すなわち、アプリケーションデータは、アプリケーションレイヤ間で下位レイヤを介して転送されるが、下位レイヤの機能はアプリケーションレイヤに露呈されない。抽象化により、別々のコンピューティングシステムにあるいくつかのアプリケーションレイヤプロセスには、アプリケーションレイヤプロセスが相互に直接に接続されているように見えるようにすることができる（このとき実際は、対応するプロトコルスタック中の下位レイヤが、アプリケーションレイヤ間で転送されるデータを処理している）。したがって、２つのアプリケーションレイヤプロセス間の通信は、通信を容易にする基礎の物理ネットワークにかかわらず、論理接続と見なすことができる。
【０００５】
多くの場合、コンピューティングシステムが相互に通信するとき、コンピューティングシステムは最初に通信セッションを確立する。これには、異なるいくつかのコンピューティングシステムにおけるアプリケーションレイヤプロセスが、マルチパーティアプリケーションレイヤセッション、例えばマルチパーティ会議セッションを確立することを含めることができる。マルチパーティ会議セッションを確立するために、各コンピューティングシステムにおける会議アプリケーションが相互に論理接続する。論理接続の結果、コンピューティングシステムは通常、例えばＴ．１２０会議セッションなどの論理階層に構成される。
【０００６】
次いで、論理接続された会議アプリケーションは、論理階層のルートとして制御コンピューティングシステムを選択する。論理階層中の他のコンピューティングシステムは、リーフコンピューティングシステム（論理階層中でそれよりも下に他のコンピューティングシステムがないコンピューティングシステム）、または中間コンピューティングシステム（論理階層中でルートコンピュータシステムとリーフコンピューティングシステムとの間のどこかにあるコンピューティングシステム）とすることができる。制御コンピューティングシステムは、論理階層中の他のコンピューティングシステム間で会議データが転送されるのを容易にする。中間およびリーフの各コンピューティングシステムは、ルートコンピューティングシステムとの間で会議データを送受信するためのリンク情報（論理接続に関連する）を維持する。同様に、制御コンピューティングシステムは、中間およびリーフの各コンピューティングシステムとの間で会議データを送受信するためのリンク情報を維持する。
【０００７】
通常、会議データは、論理階層のブランチの１つにある中間またはリーフコンピューティングシステムで発生する。中間またはリーフコンピューティングシステムは、論理階層を上って制御コンピューティングシステムに会議データを転送する。次いで制御コンピューティングシステムは、論理階層を下って、論理階層中のすべての中間およびリーフコンピューティングシステムに会議データを転送する。したがって、通常の会議セッションの間、すべての会議データは制御コンピューティングシステムを通って流れる。
【０００８】
しかし、論理階層のブランチの１つにある中間またはリーフコンピューティングシステムは通常、論理階層の他のいずれかのブランチにある中間またはリーフコンピューティングシステムと直接には通信しない。そのため、論理階層のブランチの１つにある中間およびリーフコンピューティングシステムが論理階層の他のブランチにある中間またはリーフコンピューティングシステムについてのリンク情報を維持する必要は、たとえあったとしてもわずかである。すべての会議データは制御コンピューティングシステムを通って流れるので、ある中間またはリーフコンピューティングシステムに障害が発生しても、この障害のあるコンピューティングシステムを含む対応するブランチの外にあるコンピューティングシステムに会議データを転送するのには影響しない。したがって、ある中間またはリーフコンピューティングシステムに障害が発生しても、他のブランチにあるコンピューティングシステムへは、引き続き会議データを転送することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
残念ながら論理階層中では、制御ルートコンピューティングシステムの障害は、マルチパーティ会議セッションに関する会議データの転送に重大な悪影響を及ぼす可能性がある。制御ルートコンピューティングシステムに障害が発生すると、論理階層中の他のコンピューティングシステムは選出モードに移る。選出モードの間、会議データの転送は保留され、他のコンピューティングシステムは、新しい制御ルートコンピューティングシステムを選出することを試みる。
【００１０】
新しいルート制御コンピューティングシステムを選出するために通常実施される選出アルゴリズムは、非常に複雑であり、完了するまでにおよそ数秒かかる可能性がある。選出モードの間はデータが転送されないので、選出アルゴリズム実施中はユーザ体験が著しく劣化する。また、ルート制御コンピューティングシステムとして選出されるべきコンピューティングシステムに対して、他のコンピューティングシステムが初めは同意しない場合もある。そのため、選出アルゴリズムは、適切な選出結果が達成されるまで何回かにわたって継続して実施される場合がある。これにより、選出プロセスが長引き、ユーザ体験がさらに劣化する可能性がある。さらに、適切な選出結果が達成されないこともある（すなわち、選出アルゴリズムが新しい制御コンピューティングシステムを自動的に選出することができない）。したがって、マルチパーティ会議セッションをリセットし、かつ／または新しい制御ルートコンピューティングシステムを選択するために、システム管理者の専門技術が必要な場合がある。
【００１１】
また、マルチパーティ会議セッションのコンピューティングシステムが選出モードにあるときは、追加のコンピューティングシステムがマルチパーティ会議セッションに加入できないことがある。選出モードの間にマルチパーティ会議セッションに加入しようとするコンピューティングシステムのユーザは、マルチパーティ会議セッションが存在しないという誤った指示を受ける。この結果、マルチパーティ会議セッションが確立されており、その後（新しい制御ルートコンピューティングシステムが選出された後で）会議データを引き続き転送することができるもかかわらず、ユーザは、マルチパーティ会議セッションに接続する努力をそれ以上しなくなる可能性がある。したがって、マルチパーティアプリケーションレイヤセッションに関するメンバシップ情報を配信するためのシステム、方法、コンピュータプログラム製品、およびデータ構造が有利であろう。
【課題を解決するための手段】
【００１２】
従来技術に伴う上述の問題は、本発明の原理によって克服される。本発明の原理は、マルチパーティアプリケーションレイヤセッションに関するメンバシップ情報を配信するための方法、システム、コンピュータプログラム製品、およびデータ構造を対象とする。マルチパーティアプリケーションレイヤセッション、例えばマルチパーティ会議セッションは、複数の参加コンピュータシステムを含む。異なるいくつかのネットワーク技術（例えばイーサネット（登録商標）、トークンリング、８０２．１１など）によって、種々の参加コンピュータシステムをマルチパーティ会議セッションに物理接続することができる。各参加コンピュータシステムにおける会議アプリケーションは、相互に論理リンクされ（すなわち会議アプリケーションリンクが物理接続から抽象化され）、例えば階層ツリーなどの論理グラフを形成する。ある参加コンピューティングシステム（ｐａｒｔｉｃｉｐａｔｉｎｇ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍ）における会議アプリケーションが、他の複数の参加コンピューティングシステムにおける会議アプリケーションに論理リンクされることが可能である。
【００１３】
加入コンピュータシステム（ｊｏｉｎｉｎｇ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍ）が、すでにマルチパーティ会議セッションに参加している場合のある招待コンピュータシステムにハローメッセージを送信することにより、マルチパーティ会議セッションに加入する（または、まだ生きていることをマルチパーティ会議セッションに示す）ことを試みることができる。招待コンピュータシステム（ｉｎｖｉｔｉｎｇ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｒｍ）は、ハローメッセージを受信し、招待コンピュータシステムが加入コンピュータシステムに論理リンクされていることを示すように招待側リンクデータベースを更新する。招待側コンピュータシステムは、更新済み招待側リンクデータベースを加入コンピュータシステムに送信する。更新済み招待側リンクデータベースは、少なくとも、招待コンピュータシステムが加入コンピュータシステムに論理リンクされていることを示す招待側リンク状態記録を含む。招待コンピュータシステムがすでにマルチパーティ会議セッションに参加しているときは、招待側リンクデータベースは、他の参加コンピュータシステムについてのリンク状態記録も含むことができる。
【００１４】
リンク状態記録は、少なくとも、コンピュータシステム識別子と、タイムスタンプと、近隣コンピュータシステムへの論理リンクのリストとを含む。したがって、加入コンピュータシステムがマルチパーティ会議セッションに加入するとき、加入コンピュータシステムは、他の参加コンピュータシステムと、他の参加コンピュータシステムを接続する論理リンクとを含むリンクデータベースを受信することができる。そのため、ある参加コンピューティングシステムに障害が発生したときでも、他の参加コンピュータシステムは障害からより容易に回復することができ、マルチパーティ会議セッションは、ユーザ体験を著しく劣化させることなく継続することができる。
【００１５】
加入コンピュータシステムは、更新済み招待側リンクデータベースを受信し、場合によっては招待側リンクデータベースからのリンク状態記録で加入側リンクデータベースを更新する。加入側リンクデータベースを更新することは、加入側リンクデータベース中のタイムスタンプを、受信した招待側リンクデータベース中のタイムスタンプと比較することを含むことができる。受信した招待側リンクデータベース中のリンク状態記録の方が新しいときは、受信した招待側リンクデータベースからのリンク状態記録で加入側リンクデータベースを更新することができる。ある参加コンピュータシステムについてのリンク状態記録が加入側リンクデータベースにないときは、受信した招待側リンクデータベースからの対応するリンク状態記録を使用して、加入側リンクデータベースを更新する。
【００１６】
適切なら、加入コンピュータシステムはまた、加入コンピュータシステムが招待コンピュータシステムに論理リンクされていることを示すために、加入側リンクデータベース中の加入側リンク状態記録を挿入（または更新）する。加入コンピュータシステムは、加入側リンク状態記録を招待コンピュータシステムに送信する。招待コンピュータシステムは、加入側リンク状態記録（ならびに更新済み招待側リンクデータベース）を他の参加コンピュータシステムに転送することができる。したがって、参加コンピュータシステムは継続的に、各参加コンピュータシステムが他の参加コンピュータシステムと他の参加コンピュータシステムに関連する論理リンクとを意識しているという安定状態に向かって遷移する。
【００１７】
いくつかの実施形態では、修復コンピュータシステム（ｒｅｐａｉｒｉｎｇ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍ）が、近隣コンピュータシステム（例えば修復側リンク状態記録中で修復コンピュータシステムに論理リンクされているとして示されている参加コンピュータシステム）からリンクデータがもはや受信されなくなっていることを検出する。そのため、修復コンピュータシステムは、修復コンピュータシステムの近隣コンピュータシステムリスト（例えば修復側リンク状態記録に含まれる）からこの近隣コンピュータシステムを削除し、修復側リンクデータベースからこの近隣コンピュータシステムのリンク状態記録を削除する。修復コンピュータシステムは、修復側リンクデータベース中のリンクデータに基づいて、論理的に到達不可能な参加コンピュータシステムのリストを識別する。修復コンピュータシステムは、マルチパーティ会議セッションを修復するために、少なくとも１つの論理的に到達不可能な参加コンピュータシステムを加入させることを試みる。
【００１８】
本発明のその他の特徴および利点については後述するが、その一部はこの記述から自明であろうし、あるいは本発明の実施によってわかるであろう。本発明の特徴および利点は、添付の特許請求の範囲に特に示す手段および組合せによって実現および獲得することができる。本発明のこれらおよび他の特徴は、後続の記述および添付の特許請求の範囲からより完全に明らかになるであろうし、あるいは以下に述べる本発明の実施によってわかるであろう。
【発明を実施するための最良の形態】
【００１９】
本発明の上述のおよび他の利点および特徴を得ることのできる方式について述べるために、添付の図面に示す本発明の具体的な実施形態を参照することによって、上に簡単に述べた本発明をより具体的に述べる。これらの図面は本発明の典型的な実施形態を表すだけであり、したがって本発明の範囲を限定するものと考えるべきではないとの理解のもとに、本発明を、添付の図面を使用してさらに具体的かつ詳細に記述および説明する。
【００２０】
本発明の原理は、マルチパーティアプリケーションレイヤセッションに関するメンバシップ情報の配信を提供することにある。マルチパーティ会議セッション内の参加コンピュータシステムは、他の参加コンピュータシステムにハートビートメッセージを断続的に送信して、以前に参加コンピュータシステム間で確立されたリンクを論理的に検証することができる。同様に、加入するコンピュータシステムは、ハローメッセージ（これは本質的に、加入コンピュータシステムを招待コンピュータシステムに紹介するハートビートメッセージである）を参加コンピュータシステムに送信して、マルチパーティ会議セッションへの加入を試みることができる。参加コンピュータシステムは、ハローメッセージを受信するのに応答して、１つまたは複数のリンク状態記録を、ハローメッセージを送ったコンピュータシステム（参加と加入のいずれか）に返す。ハローメッセージを送ったコンピュータシステムは、返された１つまたは複数のリンク状態記録を使用して、参加コンピュータシステムのリンクデータベースを更新することができる。各リンク状態記録は、参加コンピュータシステムを識別するコンピュータシステム識別子と、タイムスタンプと、参加コンピュータシステムの近隣コンピュータシステムのリストとを含むことができる。
【００２１】
いくつかの実施形態では、修復コンピュータシステムが、近隣コンピュータシステムからリンクデータがもはや受信されなくなっていること（例えばハートビートメッセージに応答してリンク状態記録が受信されないこと）を検出する。リンクデータがもはや受信されなくなっていることを検出するのに応答して、修復コンピュータシステムは、この近隣コンピュータシステムに関連するリンクデータを修復側リンクデータベースから削除する。修復コンピュータシステムは、論理的に到達不可能な少なくとも１つの参加コンピュータシステムに接続することにより、マルチパーティ会議セッションの修復を試みる。論理リンクが確立されたときは、修復側データベースを他の参加コンピュータシステムに伝搬することができる。したがって、参加コンピュータシステムは継続的に、各参加コンピュータシステムが他の参加コンピュータシステムとの間の論理リンクを意識しているという安定状態に向かって遷移する。
【００２２】
本発明の範囲内の実施形態には、コンピュータ実行可能命令またはデータ構造を搬送するかまたは記憶した、コンピュータ可読媒体が含まれる。このようなコンピュータ可読媒体は、汎用または専用コンピュータシステムからアクセスできる任意の利用可能な媒体とすることができる。限定ではなく例として、このようなコンピュータ可読媒体には、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスク記憶装置、磁気ディスク記憶装置または他の磁気記憶デバイスなどの物理記憶媒体を含めることができ、あるいは、所望のプログラムコード手段をコンピュータ実行可能命令、コンピュータ可読命令、またはデータ構造の形で搬送または記憶するのに使用でき、汎用または専用コンピュータシステムからアクセスできるその他の任意の媒体を含めることができる。
【００２３】
情報がネットワークまたは他の通信接続（配線式または無線式、あるいは配線式と無線式の組合せ）を介してコンピュータシステムに転送または提供されるとき、この接続をコンピュータ可読媒体と見なすのが適切である。したがって、こうしたどんな接続も、コンピュータ可読媒体と呼ぶのが適切である。以上の組合せもまた、コンピュータ可読媒体の範囲に含めるべきである。コンピュータ実行可能命令またはコンピュータ可読命令は、例えば、汎用コンピュータシステムまたは専用コンピュータシステムに何らかの機能または機能グループを実施させる命令およびデータを含む。コンピュータ実行可能命令またはコンピュータ可読命令は、例えば、バイナリや、アセンブリ言語などの中間フォーマット命令や、さらにはソースコードとすることができる。
【００２４】
この記述および添付の特許請求の範囲において、「コンピュータシステム」は、協働して電子データに対する動作を実施する１つまたは複数のソフトウェアモジュール、１つまたは複数のハードウェアモジュール、またはこれらの組合せとして定義する。例えば、コンピュータシステムの定義には、パーソナルコンピュータのハードウェアコンポーネント、ならびにパーソナルコンピュータのオペレーティングシステムなどのソフトウェアモジュールが含まれる。モジュールの物理レイアウトは重要ではない。コンピュータシステムには、ネットワークを介して結合された１つまたは複数のコンピュータを含めることができる。同様に、コンピュータシステムには、単一の物理デバイス（移動電話機やパーソナルディジタルアシスタント「ＰＤＡ」など）を含めることもでき、その場合は内部モジュール（メモリやプロセッサなど）が協働して電子データに対する動作を実施する。
【００２５】
この記述および添付の特許請求の範囲において、「論理通信リンク」は、コンピュータシステムやモジュールなどの２つのエンティティ間で電子データを送信することを可能にする任意の通信パスとして定義する。２つのエンティティ間の通信パスの実際の物理表現は重要ではなく、時とともに、例えばルーティングパスが変更されたときなどに、変化する場合がある。論理通信リンクには、システムバス、ローカルエリアネットワーク、ワイドエリアネットワーク、インターネット、これらの組合せの一部を含めることができ、あるいは、電子データの移動を容易にするその他の任意のパスの一部を含めることができる。論理通信リンクは、配線式リンク、無線リンク、または配線式リンクと無線リンクとの組合せが含まれるものとして定義する。論理通信リンクにはまた、本発明の原理を実装するコンポーネントからデータの一部にアクセスできるようにデータの一部を条件付けまたはフォーマットするソフトウェアモジュールまたはハードウェアモジュールを含めることもできる（例えばプロキシ、ルーチン、ゲートウェイなど）。
【００２６】
この記述および添付の特許請求の範囲において、「スキーマ」は、複数のコンピュータシステム間の共有語彙の表現であって、表現された共有語彙に従った文書を複数のコンピュータシステムが処理することを可能にするものとして定義する。例えば、拡張可能マークアップ言語（「ＸＭＬ」）スキーマは、ＸＭＬスキーマ言語のスキーマ構造を使用して、ＸＭＬ文書のクラスを定義および記述することができる。スキーマ構造は、ＸＭＬ文書で使用されるデータ型、要素およびそれらの内容、属性およびそれらの値、エンティティおよびそれらの内容、表記についての、意味、用法、関係を制約し文書化するのに使用することができる。したがって、ＸＭＬスキーマにアクセスすることのできるコンピュータシステムはどれも、ＸＭＬスキーマに従ったＸＭＬ文書を処理することができる。さらに、ＸＭＬスキーマにアクセスすることのできるコンピュータシステムはどれも、やはりＸＭＬスキーマにアクセスすることのできる他のコンピュータシステムによって使用されるように、ＸＭＬ文書を作成または修正することができる。
【００２７】
スキーマは、例えば「．ｄｔｄ」拡張子で終わるＤＴＤファイルなど、文書型定義（「ＤＴＤ」）を含むように定義される。スキーマはまた、例えば「．ｘｓｄ」拡張子で終わるＸＭＬスキーマファイルなど、ワールドワイドウェブコンソーシアム（「Ｗ３Ｃ」）ＸＭＬスキーマを含むように定義される。ただし、特定のＤＴＤまたはＸＭＬスキーマについての実際のファイル拡張子は重要ではない。スキーマを利用して、ほぼどんなデータ型も定義することができる。これらのデータ型には、データ構造を定義するのに使用される、論理、バイナリ、８進数、１０進数、１６進数、整数、浮動小数点、文字、文字列、ユーザ定義のデータ型、およびこれらのデータ型の組合せが含まれる。ＸＭＬ要素、属性、および属性値は、スキーマ中で定義されるデータ型によって表すことができる。この記述および添付の特許請求の範囲において、「スキーマベース」とは、スキーマによって、および／またはスキーマに従って定義されることを指す。
【００２８】
この記述および添付の特許請求の範囲において、「リンクデータ」は、限定ではないが、マルチパーティ会議セッションにおけるコンピュータシステムから他のコンピュータシステムへのリンクに関連する任意の情報を含むものとして一般に定義する。リンクデータは、リンクデータベース、リンク状態記録、コンピュータシステム識別子、タイムスタンプ、および近隣リストを含むものとして定義する。リンクデータはまた、コンピュータシステム識別子で識別されるコンピュータシステムを記述するメタデータを含むものとして定義する。
【００２９】
当業者なら理解するであろうが、本発明は、ルータ、ゲートウェイ、ファイアウォール、プロキシ、パーソナルコンピュータ、ラップトップコンピュータ、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な民生電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、移動電話機、ＰＤＡ、ページャなどを含めた多くのタイプのコンピュータシステム構成によるネットワークコンピューティング環境で実施することができる。本発明は分散システム環境で実施することもでき、その場合、ネットワークを介して（配線式リンク、無線リンク、または配線式リンクと無線リンクとの組合せによって）リンクされた、ローカルとリモートの両方のコンピュータシステムがタスクを実施する。分散システム環境では、プログラムモジュールを、ローカルとリモートの両方のメモリ記憶デバイスに配置することができる。
【００３０】
図１および後続の説明は、本発明を実施することのできる適したコンピューティング環境に関する簡単で一般的な記述を提供するものである。必須ではないが本発明は、コンピュータシステムによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的なコンテキストで述べる。一般にプログラムモジュールは、特定のタスクを実施するか特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。コンピュータ実行可能命令、関連するデータ構造、およびプログラムモジュールは、本明細書に開示する方法の動作を実行するためのプログラムコード手段の例を表す。
【００３１】
図１を参照すると、本発明の原理に適した動作環境は、コンピュータシステム１００の形の汎用コンピュータシステムを含む。コンピュータシステム１００は例えば、本明細書に開示する動作を実施するように適合されたパーソナルコンピュータとすることができる。
【００３２】
コンピュータシステム１００はユーザ入力インターフェース１７０を備え、ユーザ入力インターフェース１７０は、例えばキーボード、マイクロホン、マウスなどの入力デバイスから情報を受け取る。入力デバイスは、情報の入力を可能にするようにユーザ入力インターフェース１７０に結合させることができる。入力デバイスは、事前プログラム済みデータに応答して、またはユーザによる入力デバイス操作に応答して、このような結合を介して情報を転送することができる。
【００３３】
コンピュータシステム１００はビデオ出力インターフェース１５０を備え、ビデオ出力インターフェース１５０は、外部ビデオ表示デバイスにビデオ出力信号を提供する。コンピュータシステム１００は、例えばカラーまたは白黒コンピュータモニタなどのビデオ表示デバイスと一体に、または別々に配置されたものとすることができる。ビデオ表示デバイスは、提供されたビデオ出力信号を受け取るようにビデオ出力インターフェース１５０に結合させることができる。
【００３４】
同様に、コンピュータシステム１００はオーディオ出力インターフェース１３０を備え、オーディオ出力インターフェース１３０は、外部オーディオ出力デバイスにオーディオ出力信号を提供する。コンピュータシステム１００はまた、オーディオシステムと一体に、または別々に配置されたものとすることができ、オーディオシステムは、スピーカ、または音声データを発することのできるその他のデバイスを備える。オーディオシステムは、提供されたオーディオ出力信号を受け取るようにオーディオ出力インターフェース１３０に結合させることができる。
【００３５】
コンピュータシステム１００は処理ユニット１２０を備え、処理ユニット１２０は、複雑かつフレキシブルな汎用処理機能を可能にする。処理ユニット１２０は、本発明の特徴を含めたコンピュータシステム１００の特徴を実施するようになっているコンピュータ実行可能命令を実行する。処理ユニット１２０はシステムバス１１０に結合され、システムバス１１０はまた、システムメモリ１４０を含めた他の様々なシステムコンポーネントを相互接続する。
【００３６】
システムメモリ１４０は、様々な揮発性および／または不揮発性メモリを一般に表し、これらには、先に論じたメモリタイプを含めることができる。ただし、コンピュータシステム１００中で使用される具体的なメモリタイプは、本発明にとって重要ではない。システムメモリ１４０には、１つまたは複数のプログラムモジュールを含めたプログラムコード手段を記憶することができる。１つまたは複数のプログラムモジュールには、オペレーティングシステム１４１、１つまたは複数のアプリケーションプログラム１４２、その他のプログラムモジュール１４３、およびプログラムデータ１４４を含めることができる。
【００３７】
コンピュータシステム１００はまた、磁気ハードディスク１３９に対して読み書きするための磁気ハードディスクドライブ１２７も備える。磁気ハードディスクドライブ１２７は、大容量記憶インターフェース１６０によってシステムバス１１０に接続される。磁気ハードディスクドライブ１２７および磁気ハードディスク１３９は、コンピュータ実行可能命令、データ構造、プログラムモジュール、およびその他のデータの不揮発性記憶域をコンピュータシステム１００に提供する。例えば磁気ハードディスク１３９は、オペレーティングシステム１４１、アプリケーションプログラム１４２、その他のプログラムモジュール１４３、およびプログラムデータ１４４を含めた、１つまたは複数のプログラムモジュールを記憶することができる。
【００３８】
コンピュータシステム１００は、例えばオフィス全体または企業全体のコンピュータネットワーク、イントラネット、および／またはインターネットなどのネットワークに接続可能である。コンピュータシステム１００は、このようなネットワークを介して、外部ソース、例えばリモートコンピュータシステムおよび／またはリモートデータベースとデータを交換することができる。
【００３９】
コンピュータシステム１００はネットワークインターフェース１８０を備え、ネットワークインターフェース１８０を介して外部ソースとの間でデータを受信および／または送信する。図１に示すように、ネットワークインターフェース１８０は、論理通信リンク１８２を介したリモートコンピュータシステム１８３とのデータ交換を容易にする。論理通信リンク１８２はネットワークの一部を表し、リモートコンピュータシステム１８３はネットワークのノードを表す。例えば、リモートコンピュータシステム１８３は、コンピュータシステム１００に加入しようとする加入コンピュータシステムとすることができる。一方、リモートコンピュータシステム１８３は、コンピュータシステム１００が加入させようとする招待コンピュータシステムとすることもできる。
【００４０】
同様に、コンピュータシステム１００はシリアルポートインターフェース１９０を備え、シリアルポートインターフェース１９０を介して外部ソースとの間でデータを受信および／または送信する。シリアルポートインターフェース１９０は、論理通信リンク１５９を介してモデム１９１に結合され、コンピュータシステム１００は、論理通信リンク１５９を介して外部ソースとの間でデータを受信および／または送信する。図１に示すように、シリアルポートインターフェース１９０およびモデム１９１は、論理通信リンク１９２を介したリモートコンピュータシステム１９３とのデータ交換を容易にする。論理通信リンク１９２はネットワークの一部を表し、リモートコンピュータシステム１９３はネットワークのノードを表す。例えば、リモートコンピュータシステム１９３は、コンピュータシステム１００に加入しようとする加入コンピュータシステムとすることができる。一方、リモートコンピュータシステム１９３は、コンピュータシステム１００が加入させようとする招待コンピュータシステムとすることもできる。
【００４１】
図１は本発明に適した動作環境を表しているが、本発明の原理は、必要に応じた適切な修正とともに本発明の原理を実施することのできる、任意のシステムで採用することができる。図１に示す環境は例示的なものでしかなく、本発明の原理を実施することのできる様々な環境をごく一部でも表すものでは決してない。
【００４２】
本発明によれば、リンクデータ処理モジュール、ならびに関連データ（リンクデータベース、リンク状態記録、コンピュータシステム識別子、タイムスタンプ、近隣リスト、メタデータ、スキーマを含む）を、コンピュータシステム１００に関連する任意のコンピュータ可読媒体に記憶し、それらにアクセスすることができる。例えば、このようなモジュールの一部および関連するプログラムデータの一部は、オペレーティングシステム１４１、アプリケーションプログラム１４２、プログラムモジュール１４３、および／またはプログラムデータ１４４に含めて、システムメモリ１４０に記憶することができる。
【００４３】
大容量記憶デバイス、例えば磁気ハードディスク１３９などがコンピュータシステム１００に結合されているときは、このようなモジュールおよび関連するプログラムデータを大容量記憶デバイスに記憶することもできる。ネットワーク化された環境では、コンピュータシステム１００に関して示したプログラムモジュールまたはその一部は、リモートコンピュータシステム１８３および／またはリモートコンピュータシステム１９３に関連するリモートのメモリ記憶デバイス、例えばシステムメモリおよび／または大容量記憶デバイスなどに記憶することができる。このようなモジュールの実行は、上述のように分散環境で実施することができる。
【００４４】
図２に、マルチパーティ会議セッション２００の例示的なネットワークアーキテクチャを示す。わかりやすくするために、マルチパーティ会議セッション２００を論理グラフとして表す。この論理グラフ表現は、マルチパーティ会議セッション２００に参加する参加コンピュータシステム間にある基礎の物理接続を抽象化している。さらに、特に示さないが、参加コンピュータシステム間にある基礎の物理接続は、ほぼどんなネットワーク技術の接続とすることもできる（例えばトークンリング、イーサネット（登録商標）、ＩＥＥＥ８０２．１１、ディジタル加入者線（「ＤＳＬ」）、非同期転送モード（「ＡＴＭ」）、統合ディジタルサービス通信網（「ＩＳＤＮ」）、データオーバーケーブルサービスインターフェース仕様（「ＤＯＣＳＩＳ」））。各参加コンピュータシステムは、異なる方式でマルチパーティ会議セッション２００に物理接続することができる。
【００４５】
マルチパーティ会議セッション２００には、コンピュータシステム２０２、２０３、２０４、２０７、２０８が参加している（以下、「参加コンピュータシステム」と呼ぶ）。参加コンピュータシステムは、対応する論理通信リンク２１１から２１４、および対応する論理通信リンク２１６から２１９によってリンクされている（以下、単に「リンク」と呼ぶ）。マルチパーティ会議セッション２００内に示す各リンクは、起点コンピュータシステムと宛先コンピュータシステムとに関連付けられている。矢印の付いていないリンク端は、リンクの起点側の端を示し、矢印付きのリンク端は、リンクの宛先側の端を示す。例えばリンク２１６は、コンピュータシステム２０３を起点とし、コンピュータシステム２０７を宛先とする。
【００４６】
参加コンピュータシステム間における基礎の物理接続は、データフローの方向に応じて異なる場合がある（例えばファイアウォール、ルータ、プロキシなどのせいで）。したがって、異なる方向のデータフローを表すために、コンピュータシステムは多重リンクとすることができる。例えば、コンピュータシステム２０３からコンピュータシステム２０２へのデータパス（リンク２１２）についての基礎の物理接続と、コンピュータシステム２０２からコンピュータシステム２０３へのデータパス（リンク２１１）についての基礎の物理接続とは、異なる場合がある。マルチパーティ会議セッション２００内の各参加コンピューティングシステムは、１つまたは複数のリンク状態記録を含むリンクデータベースと、リンクデータ処理モジュールとを備えることができ、リンクデータ処理モジュールは、リンク状態データベースに含めるリンクデータ、またはリンク状態データベースからのリンクデータを処理する。リンクデータは、マルチパーティアプリケーションレイヤセッションのメンバであるコンピュータシステムと、どのようにマルチパーティアプリケーションレイヤセッションのメンバであるコンピュータシステムが接続されるかとを示す、メンバシップ制御情報を含むことができる。
【００４７】
マルチパーティ会議セッション２００は、リアルタイム会議セッションとすることができる。したがって、参加コンピュータシステム間で会議データ、例えばオーディオビデオデータを転送することができる。会議データの転送は、各参加コンピュータシステムにおける会議参加者が他のすべての会議参加者のしていることを聞くことおよび／または見ることができるような形で行うことができる。例えば、ある参加コンピュータシステムにおける会議アプリケーションが会議データを検出し、これを、他の参加コンピュータシステムで再生されるように、他の参加コンピュータシステムにおける対応する会議アプリケーションに転送することができる。
【００４８】
参加コンピュータシステムは時々、他の参加コンピュータシステムにハートビートメッセージを送信して、以前に確立されたリンクがまだ存在することを検証することができる。ハートビートメッセージの受信に応答して、送信参加コンピュータシステムは、受信参加コンピュータシステムに送信側リンクデータベースを送信することができる。受信参加コンピュータシステムは、送信側リンクデータベース中のタイムスタンプ（またはバージョン番号）を、受信側リンクデータベース中のタイムスタンプ（またはバージョン番号）と比較することができる。比較結果が適切なら、受信参加コンピュータシステムは、送信側リンクデータベースからのリンク状態記録で受信側リンクデータベースを更新する。したがって、参加コンピュータシステムは継続的に、各参加コンピュータシステムが他の参加コンピュータシステムと他のコンピュータシステムに関連するすべてのリンクとを意識しているという安定状態に向かって遷移する。
【００４９】
リンクデータベースは、各参加コンピュータシステムのリンク状態記録を含むことができる。例えばテーブル１は、マルチパーティ会議セッション２００内の参加コンピュータシステムについてのリンクデータベースの例を論理的に表したものである。
【００５０】
【表１】
2004328731.tif 000003
【００５１】
テーブル１によって表されるリンクデータベースは、加入コンピュータシステム２０６がマルチパーティ会議セッション２００に加入しようとする前の、マルチパーティ会議セッション２００内の各参加コンピュータシステムにおけるリンクデータベース（例えばリンクデータベース２３８）とすることができる。テーブル１の各行は、１つの参加コンピュータシステムについてのリンク状態記録を表す。例えば、コンピュータシステム２０７についての行は、バージョン番号「５」を示しており、また、コンピュータシステム２０７がコンピュータシステム２０３へのリンク（リンク２１７）およびコンピュータシステム２０８へのリンク（リンク２１８）を有することを示している。
【００５２】
リンク状態記録は、参加コンピュータシステムについてのリンクデータを維持するのに使用されるデータ構造とすることができる。例えば、マルチパーティ会議セッション２００に参加している各参加コンピュータシステムは、対応するリンク状態記録に関連付けられているものとすることができる。リンク状態記録は、ほぼどんなフォーマットとすることもできる。ただし以下は、リンク状態記録を表す例示的なリンクデータ構造である。
【００５３】
【表２】
2004328731.tif 000004
【００５４】
この例示的なリンクデータ構造の行３は、「コンピュータシステム識別子フィールド」であり、参加コンピュータシステムを識別するためのコンピュータシステム識別子を表す。コンピュータシステム識別子の値には、例えばネットワークアドレス（例えばインターネットプロトコル（「ＩＰ」）アドレス）や、ユニフォームリソース識別子（「ＵＲＩ」）（例えばユニフォームリソースロケータ（「ＵＲＬ」）を含めることができる。例示的なリンクデータ構造の行４は、「コンピュータシステムメタデータフィールド」であり、行３で識別される参加コンピュータシステムを記述するのに使用されるメタデータを表す。メタデータの値には、例えば、行３で識別された参加コンピュータシステムを参照するのに使用される記述名を含めることができる。
【００５５】
例示的なリンクデータ構造の行５は、「近隣リストフィールド」であり、行３で識別される参加コンピュータシステムに対する近隣コンピュータシステムのリストを表す。近隣リストの値には、例えば、行３で識別される参加コンピュータシステムにリンクされている他の参加コンピュータシステムを識別する複数のコンピュータシステム識別子を含めることができる。例示的なリンクデータ構造の行６は、「タイムスタンプフィールド」であり、行３で識別される参加コンピュータシステムがこの例示的なリンクデータ構造を生成した時を表す。タイムスタンプの値には、例えば絶対時間値（例えば１２：０５ＰＭ）、差分時間値（例えば５分）、バージョン番号（例えば１、２、３など）、インデックス値を含めることができる。インデックス値は、ほぼどんなデータ型としてもよく、例えばストリング、文字、整数、浮動小数点、さらにはユーザ定義のデータ型とすることができる。
【００５６】
マルチパーティ会議セッション２００に参加しているコンピュータシステムは、加入コンピュータシステムがマルチパーティ会議セッション２００に加入しようとするのに利用することのできる１つまたは複数のエントリポイント（例えばコンピュータシステムアドレスおよびルーティング情報）を公示することができる。例えば、コンピュータシステム２０８は、コンピュータシステム２０８に接続するのに使用することのできる関連するＩＰアドレスを公示することができる。さらにコンピュータシステム２０８は、コンピュータシステム２０８に関連するネットワークコンポーネントに基づいて、データを適切にコンピュータシステム２０８にルーティングするためのルーティング情報を公示することもできる。エントリポイントおよびルーティング情報は、プロトコルスタック中でアプリケーションレイヤ（例えば会議アプリケーション）よりも下にある、リンクデータを処理する下位レイヤ（例えばネットワークレイヤおよび／またはトランスポートレイヤ）で公示することができる。したがって、参加コンピュータシステムは、リンクデータを交換して論理リンクを確立する前に、下位レイヤの接続データ（例えばネットワークレイヤデータおよび／またはトランスポートレイヤデータ）を交換することができる。コンピュータシステムは、下位レイヤのプロトコル（例えばＩＰ、伝送制御プロトコル（「ＴＣＰ」）、ユーザデータグラムプロトコル（「ＵＤＰ」）など）の電子メッセージ（例えばパケットやフレームなど）を送受信することによって、下位レイヤの接続データを交換することができる。
【００５７】
下位レイヤの接続データを交換することには、参加コンピュータシステムが、マルチパーティ会議セッション２００への加入を要求する加入コンピュータシステムとセキュリティ情報を交換することを含めることができる。セキュリティ情報には、参加コンピュータシステムの認証ならびに加入コンピュータシステムの認証に使用される公開鍵を含めることができる。例えば、参加コンピュータシステムを認証するためのグループ公開鍵を、加入コンピュータシステムに提供することができる。このグループ公開鍵で、加入コンピュータシステムの公開鍵、名前、およびセッション識別子に署名することができる。グループ公開鍵署名により、参加コンピュータシステムは、加入コンピュータシステムがマルチパーティ会議セッション２００に加入しようとするときに、加入コンピュータシステムを認証および許可することができる。いくつかの実施形態では、招待コンピュータシステムの公開鍵を利用して、加入コンピュータシステムの公開鍵、名前、およびセッション識別子に署名する。
【００５８】
図３に、マルチパーティ会議セッションに加入する方法３００のフローチャートを示す。方法３００は、図２Ａに示すコンピュータシステムに関して述べる。
【００５９】
方法３００は、ハローメッセージを送信する動作（動作３０１）を含む。動作３０１は、加入コンピュータシステムが招待コンピュータシステムにハローメッセージを送信する動作を含むことができる。例えば、図２Ａに示すように、加入コンピュータシステム２０６がコンピュータシステム２０８にハローメッセージ２２２を送信する。ハローメッセージは本質的に、マルチパーティアプリケーションレイヤセッションに参加しているコンピュータシステムに、未接続の加入コンピュータシステムを紹介するハートビートメッセージである。例えば、ハローメッセージ２２２は、加入コンピュータシステム２０６をコンピュータシステム２０８に紹介することができ、マルチパーティ会議セッション２００に加入する要求を含むことができる。方法３００は、ハローメッセージを受信する動作（動作３０５）を含む。動作３０５は、招待コンピュータシステムが加入コンピュータシステムからハローメッセージを受信することを含むことができる。例えば、図２Ａに示すように、コンピュータシステム２０８が加入コンピュータシステム２０６からハローメッセージ２２２を受信する。
【００６０】
方法３００は、招待側リンクデータベースを更新する動作（動作３０６）を含む。動作３０６は、招待コンピュータシステムが加入コンピュータシステムにリンクされていることを示すように、招待側リンクデータベースを更新することを含むことができる。招待側リンクデータベースは、ハローメッセージの受信に応答して更新することができる。例えば、ハローメッセージ２２２の受信に応答して、リンクデータ処理モジュール２４８は、コンピュータシステム２０８が加入コンピュータシステム２０６にリンクされていることを示すように、リンクデータベース２３８を更新することができる。
【００６１】
リンクデータベース２３８を更新することは、加入コンピュータシステム２０６がコンピュータシステム２０８の近隣であることを示すように、適切な近隣リスト（例えばコンピュータシステム２０８に対応するリンク状態記録に含まれる近隣リスト）にコンピュータシステム識別子の値を追加することを含むことができる。リンク状態記録を更新することはまた、リンク状態記録が変更されたことを示すように、例えばバージョン番号をインクリメントすることによってタイムスタンプフィールドのタイムスタンプ値を変更することを含むことができる。いくつかの実施形態では、参加コンピュータシステムは、その参加コンピュータシステムを識別するコンピュータシステム識別子フィールド値を有するリンク状態記録だけを更新することができる。それにより、リンク状態記録が別の参加コンピュータシステムで受信されたとき、リンク状態記録に含まれるリンクデータが正確である可能性はより高くなる。
【００６２】
方法３００は、更新済み招待リンクデータベースを送信する動作（動作３０７）を含む。動作３０７は、招待コンピュータシステムが、更新済み招待側リンクデータベースを加入コンピュータシステムに送信することを含むことができる。招待側リンクデータベースは、少なくとも、招待コンピュータシステムが加入コンピュータシステムにリンクされていることを示すリンク状態記録を含む。例えば、コンピュータシステム２０８は、コンピュータシステム２０８が加入コンピュータシステム２０６にリンクされていることを示すようにリンクデータベース２３８を更新した後で、そのリンクデータベース２３８をコンピュータシステム２０６に送信することができる。いくつかの実施形態では、同期メッセージを使用して、更新済みリンクデータベースからのデータを転送する。
【００６３】
本発明は、いずれかの特定のトランスポートプロトコルおよびフォーマットを使用したメッセージングに限定されないことを理解されたい。ただし、本発明の原理を実施するのに使用することのできるプロトコルの一例は、「ＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）」と呼ばれるものである。リンクデータベース２３８からのリンクデータはＳＯＡＰメッセージに含めることができ、ＳＯＡＰメッセージは、例えばハイパーテキストトランスファープロトコル（「ＨＴＴＰ」）やダイレクトインターネットメッセージカプセル化（「ＤＩＭＥ（Ｄｉｒｅｃｔ  Ｉｎｔｅｒｎｅｔ  Ｍｅｓｓａｇｅ  Ｅｎｃａｐｓｕｌａｔｉｏｎ）」など、任意の数の下位レベルのプロトコルをトランスポートとして使用する。以下は、リンクデータベース２３８からのリンクデータを含む同期メッセージを表すためにＳＯＡＰエンベロープのヘッダおよび／または本体に含めることのできる、第１の例示的なＸＭＬ命令を表すものである。
【００６４】
【表３−１】
2004328731.tif 000005
【００６５】
【表３−２】
2004328731.tif 000006
【００６６】
この第１の例示的なＸＭＬ命令内（すなわち＜Ｓｙｎｃ＞と＜／Ｓｙｎｃ＞との間）の要素には、１つまたは複数の自由形式ＸＭＬ文書を含めることができる。同様に、第１の例示的なＸＭＬ命令内の要素には、マルチパーティ会議セッション２００に参加しているコンピュータシステムからアクセス可能なＸＭＬスキーマに従って定義された１つまたは複数のＸＭＬ文書を含めることができる。スキーマ（例えばＸＭＬスキーマ）を使用してデータ構造（例えばＸＭＬデータ構造）中のデータ型の意味を制約すると、どのようにリンクデータが表現されるかを定義（さらには再定義）するフレキシビリティが増大する。
【００６７】
この第１の例示的なＸＭＬ命令は、マルチパーティ会議セッション２００に参加しているコンピュータシステムについてのリンク状態記録を表す。第１の例示的なＸＭＬ命令の行１は、含まれるリンク状態記録がコンピュータシステム２０８から送信されたこと（含まれるＵＲＩによって示される）、およびリンク状態記録を受信するコンピュータシステム（例えば加入コンピュータシステム２０６）がｐｉｎｇ期間３以内に応答すべきであることを示す。ｐｉｎｇ期間は、例えばミリ秒、秒、分など、任意の単位とすることができる。ｐｉｎｇ期間に基づく指定のしきい値内でコンピュータシステム２０８が受信コンピュータシステムから応答を受信することができなかった場合、このことは、受信コンピュータシステムからリンクデータがもはや受信されなくなっていることを示す。
【００６８】
各リンク状態記録（例えば行２〜４、行５〜９、行１０〜１２、行１３〜１６、行１７〜１９にある）は、対応する「ノード」タグ（すなわち＜Ｎｏｄｅと＜／Ｎｏｄｅ＞との間）で表される。名前と値のいくつかの対を使用して、リンク状態記録に含まれるリンクデータを表すことができる。例えば、行１３にある名前と値の対は、「ｕｒｉ」属性と、対応するｕｒｉ属性値「ｓｏａｐ：／／ａｄｄｒｅｓｓ＿２０７」とを表す。値ｓｏａｐ：／／ａｄｄｒｅｓｓ＿２０７は、コンピュータシステム２０７を識別するユニフォームリソース識別子（「ＵＲＩ」）（例えばコンピュータシステム識別子フィールド中で表されるもの）である。したがって、コンピュータシステム２０７に送信すべきリンクデータは、ｓｏａｐ：／／ａｄｄｒｅｓｓ＿２０７のＵＲＩに送信すればよい。行１３にある別の名前と値の対は、「ｎａｍｅ」属性と、対応する名前属性値「Ｎｏｄｅ２０７」とを表す。値Ｎｏｄｅ２０７は、コンピュータシステム２０７についての記述名（例えばコンピュータシステムメタデータフィールド中で表されるもの）である。したがって、コンピュータシステム２０７を参照するときは、記述名Ｎｏｄｅ２０７を使用することができる。
【００６９】
行１３にある別の名前と値の対は、「ｖｅｒｓｉｏｎ」属性と、対応するバージョン属性値「５」とを表す。値５は、コンピュータシステム２０７についてのリンク状態記録のバージョン（例えばタイムスタンプフィールド中で表されるもの）である。コンピュータシステムが対応するリンク状態記録を更新するとき、コンピュータシステムは、バージョン属性値を（例えばバージョン属性値をインクリメントすることによって）変更して、更新済みリンク状態記録を以前のリンク状態記録と区別することができる。したがって、コンピュータシステムが更新済みリンクデータ、例えばリンクデータベース２３８を受信したとき、受信コンピューティングシステムは、現在のリンク状態記録と受信したリンク状態記録のバージョン番号を比較して、新しい方のリンク状態記録を決定することができる。リンクデータベース２３８中のリンク状態記録が、受信コンピュータシステムにあるリンク状態よりも新しいときは、受信コンピュータシステムにあるリンクデータベースを更新して、新しい方のリンク状態記録を含める。
【００７０】
行１４は、コンピュータシステム２０７からコンピュータシステム２０３へのリンク（リンク２１７）を表す。行１４にある名前と値の対は、「ｕｒｉ」属性と、対応する属性値「ｓｏａｐ：／／ａｄｄｒｅｓｓ＿２０３」とを表す。したがって、コンピュータシステム２０３にリンクデータを送信するには、コンピュータシステム２０７は、リンクデータをｓｏａｐ：／／ａｄｄｒｅｓｓ＿２０３のＵＲＩに送信すればよい。行１５は、コンピュータシステム２０７からコンピュータシステム２０８へのリンク（リンク２１８）を表す。行１５にある名前と値の対は、「ｕｒｉ」属性と、対応するｕｒｉ属性値「ｓｏａｐ：／／ａｄｄｒｅｓｓ＿２０８」とを表す。したがって、コンピュータシステム２０８にリンクデータを送信するには、コンピュータシステム２０７は、リンクデータをｓｏａｐ：／／ａｄｄｒｅｓｓ＿２０８のＵＲＩに送信すればよい。行１４および１５は、まとめて近隣リストフィールド中で表すことができる。
【００７１】
他のＮｏｄｅタグの属性および属性値（行２〜４、行５〜９、行１０〜１２、行１７〜１９にある）も、対応する参加コンピュータシステム２０２、２０３、２０４、２０８について同様のリンクデータを表す。いくつかの実施形態では、この第１の例示的なＸＭＬ命令は、ＳＯＡＰエンベロープのヘッダ部分に含まれ、アプリケーションデータ（例えば会議データ）は、ＳＯＡＰエンベロープの本体部分に含まれる。したがって、リンクデータの更新は会議データと共に送信することができ、別個の電子メッセージを生成する必要はない。
【００７２】
いくつかの実施形態では、ハローメッセージ（例えば動作３０１および３０５で利用されるのと同様のもの）またはその他のハートビートメッセージが、同期メッセージの形をとる。したがって、加入コンピュータシステムまたは参加コンピュータシステムは、マルチパーティアプリケーションレイヤセッションに加入しようとするとき、またはセッションとの接続を再確立しようとするときに、招待コンピュータシステムまたは別の参加コンピュータシステムにリンク状態データを提供することができる。同期メッセージの形でハローメッセージまたはハートビートメッセージを受信したコンピュータシステムは、対応するリンクデータベースを更新して、同期メッセージに含まれるリンク状態データを含めることができる。これは、加入コンピュータシステムがすでに他のコンピュータシステムに接続されているとき（例えば２つのマルチパーティアプリケーションレイヤセッションを相互に接続するとき）、特に有利な可能性がある。
【００７３】
他のいくつかの実施形態では、ハローメッセージまたはその他のハートビートメッセージは、どんなＮｏｄｅタグも含まないＳＯＡＰメッセージである。以下は、ハローメッセージまたはハートビートメッセージを表すためにＳＯＡＰエンベロープのヘッダおよび／または本体に含めることのできる第２の例示的なＸＭＬ命令を表すものである。
【００７４】
【表４】
2004328731.tif 000007
【００７５】
この第２の例示的なＸＭＬ命令内のＳｙｎｃタグ中で表されるデータは、リンク状態データ（例えば１つまたは複数のＮｏｄｅタグ）を含む同期メッセージ内（例えば第１の例示的なＸＭＬ命令内）で表されるデータと同じフォーマットとすることができる。したがって、同じスキーマを使用して、ハローメッセージ、ハートビートメッセージ、同期メッセージ中のデータ型の意味を制約することができる。これにより、ハローメッセージ、ハートビートメッセージ、同期メッセージのより効率的な処理が促進される。第２の例示的なＸＭＬ命令は、行１で、これらがコンピュータシステム２０４から送信されたこと（含まれるＵＲＩによって）と、第２の例示的なＸＭＬ命令を受信するコンピュータシステムがｐｉｎｇ期間２以内に応答すべきであることを示す。
【００７６】
図３に戻るが、方法３００は、招待側リンクデータベースを受信する動作（動作３０２）を含む。動作３０２は、加入コンピュータシステムが招待コンピュータシステムから招待側リンクデータベースを受信することを含むことができる。例えば、加入コンピュータシステム２０６がコンピュータシステム２０８からリンクデータベース２３８を受信することができる。
【００７７】
方法３００は、加入側リンクデータベースを更新する動作（動作３０３）を含む。動作３０３は、加入コンピュータシステムが招待コンピュータシステムにリンクされていることを少なくとも示すように、加入側リンクデータベースを更新することを含むことができる。例えば、リンクデータ処理モジュール２４６は、加入コンピュータシステム２０６がコンピュータシステム２０８にリンクされていることを示すリンク状態記録を含めるように、リンクデータベース２３６を更新することができる。リンクデータ処理モジュール２４６はまた、適切なタイムスタンプ値に応じて、リンクデータベース２３８からのその他のリンク状態記録を含めるようにリンクデータベース２３６を更新することもできる。したがって加入コンピュータシステム２０６は、マルチパーティ会議セッション２００内の他の参加コンピュータシステムと、それらに対応するリンクとを意識している。
【００７８】
方法３００は、更新済み加入側リンク状態記録を送信する動作（動作３０４）を含む。動作３０４は、加入コンピュータシステムが招待コンピュータシステムに更新済み加入側リンク状態記録を送信することを含むことができる。加入側リンク状態記録は、加入コンピュータシステムが招待コンピュータシステムにリンクされていることを招待コンピュータシステムに示すことができる。例えば、加入コンピュータシステム２０６がコンピュータシステム２０８にリンク状態記録２２４を送信することができる。リンク状態記録２２４は、加入コンピュータシステム２０６がコンピュータシステム２０８にリンクされていることを、コンピュータシステム２０８に示すことができる。
【００７９】
方法３００は、加入側リンク状態記録を受信する動作（動作３０８）を含む。動作３０８は、招待コンピュータシステムが加入コンピュータシステムから加入側リンク状態記録を受信することを含むことができる。例えば、コンピュータシステム２０８が加入コンピュータシステム２０６からリンク状態記録２２４を受信することができる。リンク処理モジュール２４８は、リンク状態記録２２４を含めるようにリンクデータベース２３８を更新することができる。加入コンピュータシステム２０６は今や、参加コンピュータシステムと見なされる。
【００８０】
次いでコンピュータシステム２０８は、リンクされている他の参加コンピュータシステム（例えばコンピュータシステム２０７）に更新済みリンクデータベース２３８を送信することができる。次いで、これらの他のコンピュータシステムはさらに、マルチパーティ会議セッション２００内の他の参加コンピュータシステム（例えばコンピュータシステム２０３、２０２、２０４）に更新済みリンクデータベース２３８を（例えば適切な同期メッセージを転送することによって）伝搬することができる。このように、ある参加コンピュータシステムにおけるリンクデータの変更が、最終的には他の参加コンピュータシステムに押し寄せる。したがって、マルチパーティ会議セッション２００は継続的に、各参加コンピュータシステムが他の参加コンピュータシステムと他の参加コンピュータシステムに関連する対応するリンクとを意識しているという安定状態に向かって遷移する。
【００８１】
参加コンピュータシステムは時々、マルチパーティ会議セッション２００内の他のコンピュータシステムに対して、再加入を試みることができ、あるいは生きていることを証明することができる。したがって、２つの参加コンピュータシステム間で方法３００を繰り返すことができる。いくつかの実施形態では、送信コンピュータシステムが受信コンピュータシステムに、送信側同期メッセージを送信するか、または送信側リンクデータ更新がない場合は送信側ハートビートメッセージを送信する。送信コンピュータシステムはまた、受信コンピュータシステムに送信側返信しきい値も示す。ハートビートメッセージは、参加コンピュータシステムを識別するＵＲＩ、およびｐｉｎｇ期間を含むことができる。
【００８２】
受信コンピュータシステムは、送信側同期メッセージまたは送信側ハートビートメッセージを受信し、これに応答して、送信コンピュータシステムに受信側同期メッセージを送信するか、または受信側リンクデータ更新がない場合は受信側ハートビートメッセージを送信する。受信コンピュータシステムはまた、送信コンピュータシステムに受信側返信しきい値も示す。送信コンピュータシステムは、送信側返信しきい値以内に受信側同期メッセージまたはハートビートメッセージを受信すると、受信コンピュータシステムを「生きている」と見なす。同様に、送信コンピュータシステムは、受信側同期メッセージまたはハートビートメッセージに応答して、再び送信側同期メッセージまたは送信側ハートビートメッセージを送信する（そして別の送信側返信しきい値を示す）。受信コンピュータシステムは、受信側返信しきい値以内に送信側同期メッセージまたは送信側ハートビートメッセージを受信すると、送信コンピュータシステムを生きていると見なす。
【００８３】
マルチパーティ会議セッション内の各参加コンピュータシステムは、同様にして、同期メッセージおよびハートビートメッセージを他の参加コンピュータシステムと交換することができる。例えばコンピュータシステム２０３は、各コンピュータシステム２０２、２０４、２０７と、リンクデータを含む同期メッセージを交換することができる。それにより、ある参加コンピュータシステムで更新されたリンクデータが、（例えば適切な同期メッセージを転送することによって）他の参加コンピュータシステムに伝搬される。例えば、加入コンピュータシステム２０６がマルチパーティ会議セッション２００に加入したことを示すリンクデータが、コンピュータシステム２０８からコンピュータシステム２０７へ、コンピュータシステム２０３へ、というように伝搬される。このように、マルチパーティ会議セッションの間はいつでも、１つまたは複数の同期メッセージおよび／または１つまたは複数のハートビートメッセージを参加コンピュータシステム間で転送することができる。
【００８４】
マルチパーティ会議セッションの間に、参加コンピュータシステムがマルチパーティ会議セッションを離れるか、障害を起こすか、または参加コンピュータシステム間のリンクが障害を起こす場合がある。これらのどれが発生しても、ある参加コンピュータシステムが別の参加コンピュータシステムからリンクデータを受信することができなくなる可能性がある（例えば指定のしきい値によって）。図２Ｂに、コンピュータシステム２０７に障害が発生した後のマルチパーティ会議セッション２００を示す。コンピュータシステム２０７からのリンクデータがコンピュータシステム２０３および２０８（以前の近隣コンピュータシステム）で受信されなくなっていることを示すために、コンピュータシステム２０７を破線で示す。また図２Ｂには、加入コンピュータシステム２０６とコンピュータシステム２０８とを接続するリンク２３５および２３６も示す。これは、加入コンピュータシステム２０６が参加コンピュータシステムであることを示している。
【００８５】
図４は、マルチパーティ会議セッションを修復する方法４００のフローチャートである。方法４００は、図２Ｂに示したコンピュータシステムに関して述べる。方法４００は、近隣コンピュータシステムからリンクデータがもはや受信されなくなっていることを検出する動作（動作４０１）を示す。動作４０１は、近隣コンピュータシステムからリンクデータがもはや受信されなくなっていることを修復コンピュータシステムが検出することを含むことができる。例えば図２Ｂで、コンピュータシステム２０３とコンピュータシステム２０８の両方が、コンピュータシステム２０７（コンピュータシステム２０３とコンピュータシステム２０８の両方の近隣リスト中にあるコンピュータシステム）からリンクデータがもはや受信されなくなっていることを検出することができる。リンクデータがもはや受信されなくなっていることは、返信タイマが切れることから検出することができる。例えば、コンピュータシステム２０３は、以下の第３の例示的なＸＭＬ命令をコンピュータシステム２０７に送信したものとすることができる。
【００８６】
【表５−１】
2004328731.tif 000008
【００８７】
【表５−２】
2004328731.tif 000009
【００８８】
この第３の例示的なＸＭＬ命令の行１は、第３の例示的なＸＭＬ命令がコンピュータシステム２０３に関連するＵＲＩから送信されたことを示す。行１はまた、行２〜４に縦の（ｖｅｒｔｉｃａｌ）省略符号で表した１つまたは複数のリンク状態記録が返信期間「４」を有することも示す。コンピュータシステム２０３は、返信期間から計算される指定のしきい値以内にコンピュータシステム２０７から返信を受信しなかったときは、コンピュータシステム２０７からのリンクデータが受信されなくなっていることを検出する。指定のしきい値は、例えば返信期間に２を掛けた値とすることができる。これにより、第３の例示的なＸＭＬ命令がコンピュータシステム２０３からコンピュータシステム２０７に伝わるために１つの期間があり、返信リンクデータ（例えばリンクデータベース）がコンピュータシステム２０７からコンピュータシステム２０３に伝わるために１つの期間があるものとすることができる。
【００８９】
方法４００は、修復コンピュータシステムの近隣コンピュータシステムリストから近隣コンピュータを削除する動作（動作４０２）を含む。方法４００はまた、修復側リンクデータベースから近隣コンピュータシステムのリンク状態記録を削除する動作（動作４０３）も含む。例えば、リンクデータ処理モジュール２４３は、コンピュータシステム２０７からリンクデータがもはや受信されなくなっていることを検出すると、リンクデータベース２３３を更新して、コンピュータシステム２０７への参照を削除することができる。同様に、リンクデータ処理モジュール２４８は、コンピュータシステム２０７からリンクデータがもはや受信されなくなっていることを検出すると、リンクデータベース２３８を更新して、コンピュータシステム２０７への参照を削除する。したがって、コンピュータシステム２０７に障害が発生した後、適切に更新されたリンクデータベース２３３および２３８は、以下のテーブル２によって表すことができる。
【００９０】
【表６】
2004328731.tif 000010
【００９１】
方法４００は、修復側リンクデータベース中のリンク状態記録に基づいて、論理的に到達不可能なコンピュータシステムのリストを識別する動作（動作４０４）を含む。図２Ｂに示すように、コンピュータシステム２０７に障害が発生した後、加入コンピュータシステム２０６およびコンピュータシステム２０８は、もはやコンピュータシステム２０３にリンクされていない。したがってコンピュータシステム２０３は、コンピュータシステム２０６および２０８を論理的に到達不可能と識別することができる。同様に、コンピュータシステム２０８は、コンピュータシステム２０２、２０３、２０４を論理的に到達不可能と識別することができる。
【００９２】
方法４００は、論理的に到達不可能な少なくとも１つのコンピュータシステムを加入させることを試みる動作（動作４０５）を含む。例えば、コンピュータシステム２０３は、ハローメッセージをコンピュータシステム２０８に送信することができ、コンピュータシステム２０８は、リンクデータベース２３８を使用して応答することができ、コンピュータシステム２０３はさらに、リンクデータベース２３３を使用して返信することができる（すべてまとめてリンクデータ２４４で表す）。したがってその後、コンピュータシステム２０３とコンピュータシステム２０８が近隣であることを示すように、リンクデータベース２３３および２３８を更新することができる。次いで、リンクデータベース２３６および２３８からの更新済みリンクデータを、（例えば適切な同期メッセージを転送することによって）マルチパーティ会議セッション２００内の他の参加コンピュータシステムに伝搬することができる。
【００９３】
いくつかの実施形態では、修復コンピュータシステムは、論理的に到達不可能な複数のコンピュータシステム、さらには論理的に到達不可能なあらゆるコンピュータシステムへのリンクを確立することを試みる。図２Ｂで、コンピュータシステム２０３は、コンピュータシステム２０８および加入コンピュータシステム２０６へのリンクを確立することを試みることができる。同様に、コンピュータシステム２０８は、コンピュータシステム２０２、コンピュータシステム２０３、およびコンピュータシステム２０４へのリンクを確立することを試みることができる。以前に論理的に到達不可能であったコンピュータシステムを加入させた後には、この以前に論理的に到達不可能であったコンピュータシステムにあるリンクデータは、他の論理的に到達不可能なコンピュータシステムへの接続性を示すことができる。したがって、参加コンピュータシステムは、論理的に到達不可能なあらゆるコンピュータシステムへのリンクを確立しようとすることもできるが、参加コンピュータシステムが他の以前に論理的に到達不可能であったコンピュータシステムを加入させることにより、論理的に到達不可能ないくつかのコンピュータシステムは到達可能になる場合がある。論理的に到達不可能なコンピュータシステムが到達可能になったときは、参加コンピュータシステムは、論理的に到達不可能なコンピュータシステムを加入させる試みをやめることができる（というのは、他の加入したコンピュータシステムから参加コンピュータシステムにリンクデータが伝搬されることになるからである）。これにより、マルチパーティ会議セッション２００の参加コンピュータシステム間にリンクの「ウェブ」がもたらされる。
【００９４】
マルチパーティ会議セッション２００内の参加コンピュータシステムによって交換されるリンクデータは、以下の例示的なＸＭＬスキーマに従って定義することができる。
【００９５】
【表７−１】
2004328731.tif 000011
【００９６】
【表７−２】
2004328731.tif 000012
【００９７】
行６〜１４は、「ＳｙｎｃＴｙｐｅ」データ型の「Ｓｙｎｃ」要素を定義する。より具体的には、行７〜１１は、ＳｙｎｃＴｙｐｅデータ型が「ＮｏｄｅＴｙｐｅ」データ型の「Ｎｏｄｅ」要素を０個以上含むと定義し、行１２は、ＳｙｎｃＴｙｐｅデータ型がＵＲＩデータ型の「ｆｒｏｍ」属性を含むと定義し、行１３は、ＳｙｎｃＴｙｐｅデータ型が短整数データ型の「ｉｎｔｅｒｖａｌ」属性を含むと定義する。
【００９８】
行１６〜２４はさらに、ＮｏｄｅＴｙｐｅデータ型を定義する。より具体的には、行１７〜２１は、ＮｏｄｅＴｙｐｅデータ型が「ＬｉｎｋＴｙｐｅ」データ型の「Ｌｉｎｋ」要素を０個以上含むと定義し、行２２は、ＮｏｄｅＴｙｐｅデータ型がＵＲＩデータ型の「ｕｒｉ」属性を含むと定義し、行２３は、ＮｏｄｅＴｙｐｅデータ型がストリングデータ型の「ｎａｍｅ」属性を含むと定義する。
【００９９】
行２６〜２８はさらに、ＬｉｎｋＴｙｐｅデータ型を定義する。より具体的には、行２７は、ＬｉｎｋＴｙｐｅデータ型がＵＲＩデータ型のｕｒｉ属性を含むと定義する。
【０１００】
マルチパーティ会議セッション２００内の各参加コンピュータシステムは、この例示的なＸＭＬスキーマにアクセスすることができる。それにより、マルチパーティ会議セッション２００に含まれる各参加コンピュータシステムは、この例示的なＸＭＬスキーマに従ってリンクデータを処理することができる。
【０１０１】
本発明は、その趣旨または本質的な特性を逸脱することなく、その他の特定の形で実施することもできる。述べた実施形態は、あらゆる点で例示的なものでしかなく、限定的なものではないと考えるべきである。したがって、本発明の範囲は、以上の記述によってではなく添付の特許請求の範囲によって示す。特許請求の範囲の均等物の意味および範囲に含まれるあらゆる変更は、特許請求の範囲に包含される。
【図面の簡単な説明】
【０１０２】
【図１】本発明の原理に適した動作環境を示す図である。
【図２Ａ】本発明の原理による、マルチパーティ会議セッションへの加入を容易にするネットワークアーキテクチャの一例を示す図である。
【図２Ｂ】本発明の原理による、マルチパーティ会議セッションの修復を容易にするネットワークアーキテクチャの一例を示す図である。
【図３】マルチパーティ会議セッションに加入する方法の例示的なフローチャートである。
【図４】マルチパーティ会議セッションを修復する方法の例示的なフローチャートである。
【符号の説明】
【０１０３】
１００  コンピュータシステム
１１０  システムバス
１２０  処理ユニット
１２７  磁気ハードディスクドライブ
１３０  オーディオ出力インターフェース
１３９  磁気ハードディスク
１４０  システムメモリ
１４１  オペレーティングシステム
１４２  アプリケーションプログラム
１４３  プログラムモジュール
１４４  プログラムデータ
１５０  ビデオ出力インターフェース
１６０  大容量記憶インターフェース
１７０  ユーザ入力インターフェース
１８０  ネットワークインターフェース
１８２  論理通信リンク
１８３  リモートコンピュータシステム
１９０  シリアルポートインターフェース
１９１  モデム
１９２  論理通信リンク
１９３  リモートコンピュータシステム
２００  マルチパーティ会議セッション
２０２  コンピュータシステム
２０３  コンピュータシステム
２０４  コンピュータシステム
２０６  加入コンピュータシステム
２０７  コンピュータシステム
２０８  コンピュータシステム
２１１〜２１４  論理通信リンク
２１６〜２１９  論理通信リンク
２２２  ハローメッセージ
２２４  リンク状態記録
２３３  リンクデータベース
２３５、２３６  リンク
２３６  リンクデータベース
２３８  リンクデータベース
２４３  リンクデータ処理モジュール
２４４  リンクデータ
２４６  リンクデータ処理モジュール
２４８  リンクデータ処理モジュール
【図１】
2004328731.tif 000013
【図２Ａ】
2004328731.tif 000014
【図２Ｂ】
2004328731.tif 000015
【図３】
2004328731.tif 000016
【図４】
2004328731.tif 000017