(57)【特許請求の範囲】
【請求項１】
第１クライアント装置と第２クライアント装置との間のインスタントメッセージングセッションを前記第１クライアント装置が確立するステップと、
前記第１クライアント装置に関連付けられたデータへのアクセスを提供するように構成されたキーをカレンダサーバに前記第１クライアント装置が要求するステップであって、前記第１クライアント装置に関連付けられた前記データは、前記第１クライアント装置のユーザが出席するようにスケジューリングされたミーティングまたは他のイベントを表すカレンダデータを含む、ステップと、
前記キーを前記カレンダサーバから前記第１クライアント装置が受信するステップと、
前記インスタントメッセージングセッションを介して、前記第２クライアント装置に前記キーを前記第１クライアント装置が送信して、前記第１クライアント装置に関連付けられた前記データにアクセスすることを前記第２クライアント装置に可能にするステップと、
ミーティングをスケジューリングするため、インスタントメッセージングのアプリケーションからの要求を前記カレンダサーバに前記第１クライアント装置が送信するステップと、
前記インスタントメッセージングセッションを介して前記第２クライアント装置に前記ミーティングに出席することの招待を前記第１クライアント装置が送信するステップと、
前記インスタントメッセージングセッションを介して、前記第２クライアント装置のユーザは前記招待を受け入れたとのインジケータを前記第２クライアント装置から前記第１クライアント装置が受信するステップと、
前記ミーティングが受け入れられたとのインジケータを前記カレンダサーバに前記第１クライアント装置が送信するステップと
を備えたことを特徴とする方法。
【請求項２】
前記インスタントメッセージングセッションは、前記第１クライアント装置と前記第２クライアント装置との間のピアツーピア接続を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記キーは、暗号化されることを特徴とする請求項１に記載の方法。
【請求項４】
前記キーは、指定された時間間隔の後に満了するように構成されることを特徴とする請求項１に記載の方法。
【請求項５】
前記キーは、前記インスタントメッセージングセッションの終了時に満了するように構成されることを特徴とする請求項１に記載の方法。
【請求項６】
第１クライアント装置と第２クライアント装置との間のインスタントメッセージングセッションを前記第１クライアント装置が確立するステップと、
前記第１クライアント装置に関連付けられたデータへのアクセスを提供するように構成されたキーをカレンダサーバに前記第１クライアント装置が要求するステップであって、前記第１クライアント装置に関連付けられた前記データは、前記第１クライアント装置のユーザが出席するようにスケジューリングされたミーティングまたは他のイベントを表すカレンダデータを含む、ステップと、
前記キーを前記カレンダサーバから前記第１クライアント装置が受信するステップと、
前記インスタントメッセージングセッションを介して、前記第２クライアント装置に前記キーを前記第１クライアント装置が送信して、前記第１クライアント装置に関連付けられた前記データにアクセスすることを前記第２クライアント装置に可能にするステップと、
ミーティングをスケジューリングするため、インスタントメッセージングのアプリケーションからの要求を前記カレンダサーバに前記第１クライアント装置が送信するステップと、
前記インスタントメッセージングセッションを介して前記第２クライアント装置に前記ミーティングに出席することの招待を前記第１クライアント装置が送信するステップと、
前記インスタントメッセージングセッションを介して、前記第２クライアント装置のユーザは前記招待を断ったとのインジケータを前記第２クライアント装置から前記第１クライアント装置が受信するステップと、
前記ミーティングが断られたとのインジケータを前記カレンダサーバに前記第１クライアント装置が送信するステップと
を備えたことを特徴とする方法。
【請求項７】
前記キーが満了したことを前記第１クライアント装置が決定するステップと、
新しいキーを前記カレンダサーバに前記第１クライアント装置が要求するステップと、
新しい有効なキーを前記カレンダサーバから前記第１クライアント装置が受信するステップと
をさらに備えたことを特徴とする請求項１に記載の方法。
【請求項８】
前記インスタントメッセージングセッションを介して、前記第２クライアント装置に関連付けられたデータにアクセスすることを前記第１クライアント装置に可能にするためのキーを前記第２クライアント装置から前記第１クライアント装置が受信するステップをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項９】
前記第２クライアント装置から受信されたキーを前記第１クライアント装置に関連付けられたキーの格納に前記第１クライアント装置が追加するステップをさらに備えたことを特徴とする請求項８に記載の方法。
【請求項１０】
コンピュータによって実行されると、前記コンピュータに請求項１に記載の方法を実行させるコンピュータ読取可能な命令を有する１つまたは複数のコンピュータ読取可能な記憶媒体。
【請求項１１】
第１クライアント装置のインスタントメッセージングのアプリケーションから、前記第１クライアント装置に関連付けられたデータにアクセスするキーについての要求をカレンダサーバが受信するステップであって、前記第１クライアント装置に関連付けられた前記データは、前記第１クライアント装置のユーザが出席するようにスケジューリングされたミーティングまたは他のイベントを表すカレンダデータを含む、ステップと、
前記キーを前記カレンダサーバが生成するステップと、
前記キーについての要求の受信に応答して前記キーを前記第１クライアント装置に前記カレンダサーバが返すステップと、
第２クライアント装置のインスタントメッセージングのアプリケーションから、前記第１クライアント装置に関連付けられた前記データにアクセスするための要求を前記カレンダサーバが受信するステップと、
前記キーが有効であることを前記カレンダサーバが検証するステップと、
前記キーが有効である場合、前記第１クライアント装置に関連付けられた前記データにアクセスするための要求の受信に応答して、前記第１クライアント装置に関連付けられた前記データを前記第２クライアント装置に前記カレンダサーバが返すステップと、
ミーティングをスケジューリングするため、前記第１クライアント装置の前記インスタントメッセージングのアプリケーションから、前記ミーティングに関連付けられた詳細を含んでいる要求を前記カレンダサーバが受信するステップと、
前記ミーティングに関連付けられた詳細を含んでいる要求に応答して、前記ミーティングに関連付けられた招待を、前記インスタントメッセージングセッションを介して前記第１クライアント装置から前記第２クライアント装置に送信させるデータを前記第１クライアント装置に前記カレンダサーバが返すステップと、
前記第２クライアント装置のユーザが前記ミーティングに出席する前記招待を受け入れたとのインジケータを、前記第２クライアント装置のインスタントメッセージングのアプリケーションから前記カレンダサーバが受信するステップと、
前記インジケータの受信に応答して、前記ミーティングに関連付けられたサマリデータを前記第２クライアント装置のインスタントメッセージングのアプリケーションに前記カレンダサーバが返すステップと
を備えたことを特徴とする方法。
【請求項１２】
前記キーが有効であることを前記カレンダサーバが検証するステップは、
前記第１クライアント装置に関連付けられた前記データにアクセスする前記要求に基づいて、特定のキーを集約されたキーの集合から前記カレンダサーバが検索するステップと、
前記特定のキーが識別されると、前記特定のキーが有効であることを前記カレンダサーバが検証するステップと
を含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記第１クライアント装置に関連付けられたカレンダデータに前記ミーティングを前記カレンダサーバが追加するステップをさらに備えたことを特徴とする請求項１１に記載の方法。
【請求項１４】
前記インジケータの受信に応答して、前記第２クライアント装置に関連付けられたカレンダデータに前記ミーティングを前記カレンダサーバが追加するステップをさらに備えたことを特徴とする請求項１１に記載の方法。
【請求項１５】
第１クライアント装置のインスタントメッセージングのアプリケーションから、前記第１クライアント装置に関連付けられたデータにアクセスするキーについての要求をカレンダサーバが受信するステップであって、前記第１クライアント装置に関連付けられた前記データは、前記第１クライアント装置のユーザが出席するようにスケジューリングされたミーティングまたは他のイベントを表すカレンダデータを含む、ステップと、
前記キーを前記カレンダサーバが生成するステップと、
前記キーについての要求の受信に応答して前記キーを前記第１クライアント装置に前記カレンダサーバが返すステップと、
第２クライアント装置のインスタントメッセージングのアプリケーションから、前記第１クライアント装置に関連付けられた前記データにアクセスするための要求を前記カレンダサーバが受信するステップと、
前記キーが有効であることを前記カレンダサーバが検証するステップと、
前記キーが有効である場合、前記第１クライアント装置に関連付けられた前記データにアクセスするための要求の受信に応答して、前記第１クライアント装置に関連付けられた前記データを前記第２クライアント装置に前記カレンダサーバが返すステップと、
ミーティングをスケジューリングするため、前記第１クライアント装置の前記インスタントメッセージングのアプリケーションから、前記ミーティングに関連付けられた詳細を含んでいる要求を前記カレンダサーバが受信するステップと、
前記ミーティングに関連付けられた詳細を含んでいる要求に応答して、前記ミーティングに関連付けられた招待を、前記インスタントメッセージングセッションを介して前記第１クライアント装置から前記第２クライアント装置に送信させるデータを前記第１クライアント装置に前記カレンダサーバが返すステップと、
前記第２クライアント装置のユーザが前記ミーティングに出席する前記招待を断ったとのインジケータを、前記第１クライアント装置のインスタントメッセージングのアプリケーションから前記カレンダサーバが受信するステップと、
前記第１クライアント装置に関連付けられたカレンダデータから前記ミーティングを前記カレンダサーバが除去するステップと、
前記インジケータの受信に応答して、前記ミーティングが前記第１クライアント装置に関連付けられたカレンダデータから除去されたことを示すサマリデータを前記第１クライアント装置のインスタントメッセージングのアプリケーションに前記カレンダサーバが返すステップと
を備えたことを特徴とする方法。
【請求項１６】
前記第２クライアント装置に関連付けられたカレンダデータから前記ミーティングを前記カレンダサーバが除去するステップをさらに備えたことを特徴とする請求項１５に記載の方法。
【請求項１７】
前記第２クライアント装置のインスタントメッセージングアプリケーションから、前記第１クライアント装置に関連付けられたデータにアクセスする前記キーを登録するための要求を前記カレンダサーバが受信するステップと、
前記第１クライアント装置に関連付けられたデータにアクセスする前記キーが有効であることを前記カレンダサーバが検証するステップと、
前記第１クライアント装置に関連付けられたデータにアクセスする前記キーを前記第２クライアント装置に関連付けられ集約されたキーの集合に前記カレンダサーバが追加するステップと
をさらに備えたことを特徴とする請求項１１に記載の方法。
【請求項１８】
コンピュータによって実行されると、前記コンピュータに請求項１１に記載の方法を実行させるコンピュータ読取可能な命令を有する１つまたは複数のコンピュータ読取可能な記憶媒体。
【請求項１９】
第１クライアント装置と第２クライアント装置との間でインスタントメッセージングセッションを確立する手段と、
前記第１クライアント装置に関連付けられたデータにアクセスするキーをカレンダサーバから前記第１クライアント装置が入手する手段であって、前記第１クライアント装置に関連付けられた前記データは、カレンダデータを含む、手段と、
前記インスタントメッセージングセッションを介して前記第２クライアント装置に前記キーを提供し、前記第２クライアント装置に対して前記第１クライアント装置に関連付けられた前記データへのアクセスを与える手段と、
前記第１クライアント装置のユーザと前記第２クライアント装置のユーザとの両方によって出席されるミーティングをスケジューリングすることを前記第２クライアント装置に可能にする手段と、
前記インスタントメッセージングセッションを介して前記第１クライアント装置からミーティング招待を前記第２クライアント装置に送信する手段と、
前記インスタントメッセージングセッションを介して前記第２クライアント装置のユーザが前記ミーティング招待を受け入れたとのインジケータを前記第２クライアント装置から受信する手段と、
前記ミーティングが受け入れられたとのインジケータを前記カレンダサーバに送信する手段と
を備えたことを特徴とするシステム。
【請求項２０】
前記第１クライアント装置に関連付けられた前記データに基づいてタスクを実行することを前記第２クライアント装置に可能にする手段をさらに備えたことを特徴とする請求項１９に記載のシステム。
【請求項２１】
前記タスクは、前記第１クライアント装置に関連付けられた前記データの変更を含むことを特徴とする請求項２０に記載のシステム。
【請求項２２】
実行されると、コンピュータシステムに実行させるコンピュータ読取可能な命令を含む１つまたは複数のコンピュータ読取可能な記憶媒体であって、前記コンピュータ読取可能な命令は、
インスタントメッセージングセッションに参加する第１クライアント装置から、前記第１クライアント装置に関連付けられたデータへのアクセスを提供するように構成されたデータアクセスキーに関する要求を受信するステップであって、前記第１クライアント装置に関連付けられた前記データは、カレンダデータを含む、ステップと、
前記データアクセスキーに関する要求に応答して、前記第１クライアント装置にデータアクセスキーを提供するステップと、
前記インスタントメッセージングセッションに参加する第２クライアント装置から、前記第１クライアント装置に関連付けられたデータに関する、前記データアクセスキーを含む要求を受信するステップと、
前記データアクセスキーを含む要求に応答して、前記第１クライアント装置に関連付けられた前記データを前記第２クライアント装置に提供するステップと、
ミーティングをスケジューリングするよう、前記第２クライアント装置からの要求を受信するステップと、
前記第２クライアント装置に関連付けられたカレンダデータに前記ミーティングを追加するステップと、
前記インスタントメッセージングセッションに関連付けられた参加者からミーティングが断わられたとのインジケータを受信するステップと
前記第２クライアント装置に関連付けられた前記カレンダデータから前記ミーティングを除去するステップと
を含むことを特徴とするコンピュータ読取可能な記憶媒体。
【請求項２３】
実行されると、前記コンピュータシステムに、前記第１クライアント装置に関連付けられた前記カレンダデータから前記ミーティングを除去させるコンピュータ読取可能な命令をさらに含むことを特徴とする請求項２２に記載のコンピュータ読取可能な記憶媒体。
【請求項２４】
前記実行されると、前記コンピュータシステムに実行させるコンピュータ読取可能な命令は、
前記データアクセスキーを登録するため、前記第２クライアント装置からの要求を受信するステップと、
前記要求に応答して、前記第２クライアント装置に関連付けられたキーの格納に前記データアクセスキーを追加するステップと
をさらに含むことを特徴とする請求項２２に記載のコンピュータ読取可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般には、インスタントメッセージングに関し、より詳細には、インスタントメッセージングセッションでのデータの共有に関する。
【背景技術】
【０００２】
電子カレンダが、ミーティング、面会予約、および他のスケジューリングされたイベントを探し出すのに個人によって使用される一般的なツールになった。複数の個人を含むイベントをスケジューリングする場合、イベントをスケジューリングする人は、イベントに招かれるその他の個人に関連付けられるカレンダまたはスケジュールを見るためのアクセスを有する場合とそうでない場合がある。ユーザが、イベントをスケジューリングし、出席する１人または複数の他の個人を示す場合、通常は、電子メールのメッセージがその他のユーザに送られ、その他のユーザは、ミーティングの要求を受け入れるか断ることができる。１人のユーザがイベントをスケジューリングする時間と、その他の出席者が電子メールを確認し、ミーティングの要求に応答する時間との間の遅延のゆえに、スケジューリングされたミーティングの時間が過ぎてしまうか、１人または複数の出席者が、かち合うイベントにスケジューリングされるか招待される可能性がある。これが発生した場合に、ミーティングを再度スケジューリングする必要が生じる場合があり、スケジューリングのプロセスをもう一度開始しなければならない。さらに、開始するユーザが、すぐに回答を得ない場合があるので、ユーザは、通常、電子メール応答を確認するために個人的な時間をスケジューリングして、ミーティングが受け入れられたかどうか、または再度スケジューリングが必要であるかどうかを決定する必要もある。
【０００３】
インスタントメッセージングは、複数のユーザが、ネットワーク接続またはピアツーピア接続を介してリアルタイムにテキストメッセージを交換できるようにする、ますます人気が高まる通信ツールである。インスタントメッセージングは、インスタントメッセージが、同時にオンラインである２人のユーザの間でリアルタイムに交換されるという点で、電子メールと異なる。その一方で、電子メールメッセージは、メッセージが作成される時間にオンラインである１人のユーザと、ずっと後になるまで電子メールを確認するためにオンラインにならない可能性があるもう１人のユーザとの間で交換されることができる。
【０００４】
インスタントメッセージングは、通信の効率的なツールであるが、リアルタイム通信から自然に流れる可能性があるその他のタスクの一部をサポートしない。たとえば、２人のユーザが、インスタントメッセージングの会話にかかわり、個人的に会う時間をスケジューリングすると決断する場合に、各ユーザが、個人のカレンダを調べる必要があり、両方のユーザが会うのに使用可能な時間を識別できる前に、かなりの時間が、スケジューリング情報の交換に費やされる可能性がある。３人以上の個人がインスタントメッセージングの会話に参加しており、個人的に集まる時間をスケジューリングしたい場合に、このシナリオはさらに困難になる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
したがって、ユーザが、カレンダデータなどの情報をリアルタイムで簡単に共有できる、インスタントメッセージングセッションのツールの必要が存在する。
【課題を解決するための手段】
【０００６】
インスタントメッセージングセッション内のデータ共有を可能にする技術を説明する。インスタントメッセージングセッションに参加するユーザは、インスタントメッセージングセッションを介して、個人のカレンダデータなどのユーザのデータへのアクセスを提供するデータのアクセスキーに関する要求を送信することができる。キーが、インスタントメッセージングセッションを介してユーザの間で交換される。キーの交換によって、インスタントメッセージングセッションに参加するユーザが、お互いのデータにアクセスすることが可能になる。
【０００７】
ユーザが、互いのデータへのアクセスを有する場合、他のタスクも実行することができる。たとえば、お互いのカレンダデータを見ることに加えて、ユーザは、インスタントメッセージングセッションの参加者のカレンダに追加されるミーティングをスケジューリングすることもできる。ミーティングの招待が配布され、ユーザはインスタントメッセージングセッション内でミーティングを受け入れるか断ることができる。
【発明を実施するための最良の形態】
【０００８】
（概要）
以下で説明する実施形態は、インスタントメッセージングセッションでデータを共有する技術を提供する。説明する例示的実施形態は、ユーザが、インスタントメッセージングセッションでカレンダデータを共有し、ミーティングをスケジューリングすることを可能にする。しかし、本明細書において説明する技術が、カレンダデータの共有を可能にすることに制限されるのではなく、インスタントメッセージングセッションを介して実行できる他の種類のデータ共有および関連するタスクを可能にするのに使用できることを理解されたい。
【０００９】
説明する例示的な実施形態では、２人のユーザがインスタントメッセージングセッションを介して通信している場合、ユーザの１人が、カレンダ共有要求を開始することができ、このカレンダ共有要求は、他方のユーザによって受け入れられると、インスタントメッセージングのユーザインターフェースに、両方のユーザに関連するカレンダ情報を表示させる。両方のユーザが、インスタントメッセージングのユーザインターフェース内で、両方のユーザのカレンダを同時にブラウズすることができる。いずれかのユーザが、両方のユーザが出席するミーティングをスケジューリングすることもできる。ミーティングは、インスタントメッセージングセッションを介してスケジューリングされるので、両方のユーザが、ミーティングを受け入れることができ、そのミーティングが、両方のユーザのカレンダで即座にスケジューリングされる。
【００１０】
ユーザのカレンダデータへのアクセスは、暗号化されたキーの使用によって制御される。ユーザが、個人のカレンダデータにアクセスするキーを要求する場合、そのキーを別のユーザに与えて、その別のユーザにカレンダデータを見る許可を与えることができる。インスタントメッセージングセッション内でデータのアクセスキーを交換することによって、ユーザは、別のユーザに、自分のカレンダデータへの一時的なアクセス権を与えることができる。すなわち、共有されるキーを、所与の時間にまたは他の判断基準で（たとえば、インスタントメッセージングセッションが閉じられる場合に）満了するように構成することができる。データは、インスタントメッセージングセッション内で共有されるので、共有データに基づく通信を容易にすることもできる。たとえば、別のユーザのカレンダに追加されるミーティングをスケジューリングする場合、電子メールではなく、インスタントメッセージングを介して、ミーティング招待を送信し、確認を受信することができる。
【００１１】
（インスタントメッセージングのシナリオ）
図１に、インスタントメッセージングセッションを介してカレンダ共有およびミーティングのスケジューリングを実行することができる、例示的なインスタントメッセージングセッションを例示する。第１ユーザ（Ａｄａｍ）１０２および第２ユーザ（Ｂｏｂ）１０４が、インスタントメッセージングの会話１０６にかかわっている。インスタントメッセージングの会話１０６に関連付けられるテキストが、インスタントメッセージングのユーザインターフェース１０８でＡｄａｍ  １０２に表示され、インスタントメッセージングのユーザインターフェース１０８は、コンピュータシステム１１０を介してＡｄａｍ  １０２に提示される。同様に、インスタントメッセージングの会話１０６に関連付けられるテキストが、インスタントメッセージングのユーザインターフェース１１２を介してＢｏｂ  １０４に表示され、インスタントメッセージングユーザインターフェース１１２は、コンピュータシステム１１４を介してＢｏｂ  １０４に提示される。交換されるテキストメッセージは、コンピュータシステム１１０とコンピュータシステム１１４との間で接続１１６を介して送信され、接続１１６は、たとえば、ネットワーク接続またはピアツーピア接続を表現する。
【００１２】
インスタントメッセージングセッションに参加する２人の個人だけを図示し、および説明するが、本明細書で説明する技術を、３人以上の個人がインスタントメッセージングセッションに参加するシナリオにも適用することができることを理解されたい。
【００１３】
（ユーザインターフェース）
図２〜１１に、図１に例示されたインスタントメッセージングセッション内でのカレンダ共有およびミーティングのスケジューリングを支援する例示的なユーザインターフェーススクリーンを例示する。図２に、インスタントメッセージングのユーザインターフェース画面を介してカレンダ共有を開始できる、例示的なインスタントメッセージングのユーザインターフェース画面を例示する。例示のインスタントメッセージングセッションでは、Ａｄａｍ  １０２およびＢｏｂ  １０４が、対話を交わしており、今週末に夕食のために会うことに同意している。日付について同意を試みる場合、Ａｄａｍ  １０２は、彼がカレンダを確認することを示す。この時点で、Ａｄａｍ  １０２は、たとえばＬａｕｎｃｈ  Ｓｉｔｅ（サイト起動）のメニューアイテム２０２を選択し、これによって、使用可能なアクティビティのドロップダウンメニュー２０４が表示される。Ａｄａｍ  １０２は、Ｓｃｈｅｄｕｌｅ  ａ  Ｍｅｅｔｉｎｇの（ミーティングをスケジューリングする）メニューアイテム２０６を選択し、これによって、インスタントメッセージングのユーザインターフェース１０８からインスタントメッセージングのユーザインターフェース１１２にカレンダ共有招待が送信される。
【００１４】
例示的な実施形態では、インスタントメッセージングセッションに、３人以上の個人が含まれる場合に、カレンダ共有招待を、ユーザの各々に送信することができる。あるいはまた、ユーザが、カレンダ共有セッションに含まれるインスタントメッセージングセッションの参加者を指定することができる。
【００１５】
図３に、インスタントメッセージングのユーザインターフェース画面を介してカレンダ共有招待を受け入れるか断ることができる、例示的なインスタントメッセージングのユーザインターフェース画面を例示する。上述したように、図２に例示されたＳｃｈｅｄｕｌｅ  ａ  Ｍｅｅｔｉｎｇのメニューアイテム２０６を選択することによって、カレンダ共有招待３０２が、送信され、インスタントメッセージングのユーザインターフェース１１２を介してＢｏｂ  １０４に表示される。招待３０２が、インスタントメッセージングのユーザインターフェース１１２に送信される場合、確認３０４が、インスタントメッセージングユーザインターフェース１０８に表示され、カレンダ共有招待３０２がＢｏｂ  １０４に送信されたことをＡｄａｍ  １０２に示す。例示の例では、Ａｄａｍ  １０２は、取り消しリンク３０６を選択することによって、招待を取り消すことができる。同様に、Ｂｏｂ  １０４は、受け入れリンク３０８を選択することによって、または断りリンク３１０を選択することによって、それぞれ、招待を受け入れるか、または断ることができる。
【００１６】
図４および５に、インスタントメッセージングのユーザインターフェース画面を介して共有カレンダ情報を見ることができる、例示的なインスタントメッセージングのユーザインターフェース画面を例示する。図４に、Ａｄａｍ  １０２に表示される、インスタントメッセージングのユーザインターフェース画面１０８を介する共有カレンダデータの表示を例示する。同様に、図５に、Ｂｏｂ  １０４に表示される、インスタントメッセージングのユーザインターフェース画面１１２を介する共有カレンダデータの表示を例示する。たとえば、Ｂｏｂが、図３に例示された受け入れリンク３０８を選択する場合、Ａｄａｍのインスタントメッセージングのユーザインターフェース１０８（図４に図示）は、ミーティングのスケジューリング領域４０２を表示するために、サイズが大きくなる。Ｂｏｂ  １０４がカレンダ共有の招待を受け入れたことの確認４０４も表示される。ミーティングのスケジューリング領域４０２には、メニューバー４０６、日付インジケータ４０８、現在のユーザカレンダ領域４１０、および共有カレンダ領域４１２が含まれる。例示的な実施形態では、ミーティングのスケジューリング領域４０２に、日付インジケータ４０８に関連付けられた気象データを表示できる、気象条件予報領域４１４も含めることができる。これは、たとえば、ユーザが、バーベキューなど、アウトドアイベントをスケジューリングしようとする場合に有用になる可能性がある。
【００１７】
例示の例では、共有カレンダ領域４１２が、「Ｓｈａｒｅｄ  Ｃａｌｅｎｄａｒｓ（共有カレンダ）」の見出しを有する。代替実施形態では、たとえば、カレンダデータが表示されているユーザの名前を含むように、見出しを動的に生成することができる。
【００１８】
メニューバー４０６に、ｎｅｗ  ｍｅｅｔｉｎｇ（新規ミーティング）アイテム４１６、ｄａｙ（日付）アイテム４１８、ｗｅｅｋ（週）アイテム４２０、ｇｏ  ｔｏ  ｄａｔｅ（日付に移動）アイテム４２２、およびｓｈａｒｉｎｇ（共有）アイテム４２４を含めることができる。例示的な実施形態では、ユーザが、ｎｅｗ  ｍｅｅｔｉｎｇアイテム４１６を選択する場合、ユーザが、表示されたカレンダに追加される新しいミーティングをスケジューリングできるようにする画面が表示される。ｎｅｗ  ｍｅｅｔｉｎｇアイテム４１６の選択は、以下で図８に関して詳細に説明する。
【００１９】
ｄａｙアイテム４１８およびｗｅｅｋアイテム４２０は、ユーザが、一度に一日ビューと一度に一週間ビューのと間でカレンダディスプレイをトグルすることを可能にする。例示の例では、ｄａｙアイテム４１８が選択されている。
【００２０】
ｇｏ  ｔｏ  ｄａｔｅアイテム４２２の選択によって、ユーザが、別の日のカレンダ情報を表示することを選択できるようになる。同様に、日付インジケータ４０８の左右の矢印の選択によって、次の日または前の日のカレンダ情報（あるいは、現在のビューが週ビューである場合には、次の週／前の週の情報）が表示される。ｇｏ  ｔｏ  ｄａｔｅアイテム４２２の選択は、以下で図７に関してさらに詳細に説明する。
【００２１】
ｓｈａｒｉｎｇアイテム４２４を選択することによって、ユーザが、他者に表示される、カレンダに関連付けられた詳細のレベルを選択できるようになる。ｓｈａｒｉｎｇアイテム４２４の選択は、以下で図６に関してさらに詳細に説明する。
【００２２】
上述したように、図５に、インスタントメッセージングのユーザインターフェース画面１０８（図４に例示）がＡｄａｍに表示されている間にＢｏｂ  １０４に表示される、インスタントメッセージングｍｐユーザインターフェース画面１１２を介する共有カレンダデータの表示を示す。Ｂｏｂが、図３に示された受け入れリンク３０８を選択する場合、Ｂｏｂのインスタントメッセージングのユーザインターフェース１１２（図５に図示）は、ミーティングのスケジューリング領域５０２を表示するために、サイズが大きくなる。Ｂｏｂ  １０４がカレンダ共有の招待を受け入れたことの確認５０４も、表示される。ミーティングのスケジューリング領域４０２と同様に、ミーティングのスケジューリング領域５０２にも、メニューバー５０６、日付インジケータ５０８、現在のユーザカレンダ領域５１０、および共有カレンダ領域５１２が含まれる。
【００２３】
Ａｄａｍに示されるディスプレイ（図４に例示）では、Ａｄａｍのカレンダが、現在のユーザカレンダ領域４１０に表示され、Ｂｏｂのカレンダが、共有カレンダ領域４１２に表示される。同様に、Ｂｏｂに示されるディスプレイ（図５に例示）では、Ｂｏｂのカレンダが、現在のユーザカレンダ領域５１０に表示され、Ａｄａｍのカレンダが、共有カレンダ領域５１２に表示される。図４からわかるように、Ａｄａｍは、自分のカレンダのイベントに関連付けられた詳細を見ることができるが、Ｂｏｂのカレンダでは、Ｂｏｂが予定ありか空き時間かの表示しか見ることができない。同様に、図５からわかるように、Ｂｏｂは、自分のカレンダのイベントに関連付けられた詳細を見ることができるが、Ａｄａｍのカレンダでは、Ａｄａｍが予定ありか空き時間かの表示しか見ることができない。
【００２４】
３人以上の個人に関連付けられたカレンダデータが、インスタントメッセージングセッションを介して共有される場合に、現在のユーザカレンダ領域４１０に、現在のユーザに関連付けられたカレンダデータが表示され、共有カレンダ領域４１２に、その他のすべてのユーザに関連付けられた集合的なカレンダデータが表示される。
【００２５】
図６に、ユーザのカレンダが他者と共有される場合、ユーザが、表示される詳細のレベルを選択できるようにするメニューアイテムの選択を例示する。たとえば、Ａｄａｍ  １０２が、メニューバー４０６からｓｈａｒｉｎｇのメニューアイテム４２４を選択することができる。これによって、たとえば３つの選択肢を含む、ドロップダウンメニュー６０４が表示される。ａｌｌ  ｄｅｔａｉｌｓ（すべての詳細）の選択肢は、選択された場合に、Ａｄａｍに表示されるＡｄａｍのカレンダに関連付けられた同一の詳細をＢｏｂにも表示されるようにする。デフォルトの選択として例示されたｆｒｅｅ／ｂｕｓｙ（空き時間／予定あり）の選択肢は、Ａｄａｍが予定ありか空き時間かのインジケータだけをＢｏｂに表示させる。ｎｏｎｅ（なし）の選択肢は、選択された場合に、Ａｄａｍのカレンダの表現をＢｏｂに表示するが、スケジューリングされたミーティングのインジケータは表示させない。
【００２６】
代替実施形態では、共有メニュー６０４に、例示されたものより多数または少数の選択肢を含めることができることを理解されたい。たとえば、読み取り／書き込みメニューアイテムは、選択された場合、他のユーザが、データ所有者からの特定の確認を必要とせずに、ユーザのカレンダデータを直接に変更する許可を与えることができる。
【００２７】
図７に、カレンダデータが表示される日付をユーザが変更できるようにするメニューアイテムの選択を例示する。たとえば、Ａｄａｍ  １０２が、メニューバー４０６からｇｏ  ｔｏ  ｄａｔｅのメニューアイテム４２２を選択することができる。例示の例では、この選択によって、ドロップダウンカレンダ７０２が表示される。次に、Ａｄａｍ  １０２は、カレンダから日付を選択することができ、表示されるカレンダデータが、選択された日付のＡｄａｍおよびＢｏｂのスケジュールを反映するように変更される。説明している例示的な実施形態では、各ユーザ（たとえば、ＡｄａｍおよびＢｏｂ）が、同時に異なる日付のカレンダデータを見ることができる。すなわち、Ａｄａｍがどの日付を選択したかは、Ｂｏｂにどの日付のカレンダデータが表示されるかに影響せず、Ｂｏｂが選択した日付は、Ａｄａｍに表示されるカレンダデータに影響しない。しかし、代替実施形態では、所定のユーザが、１人または複数の他のユーザが見るものを制御することができる。たとえば、所定のユーザが別の日にナビゲートする場合に、他のユーザに表示されるデータを、その他の日に自動的に変更することができるほうがよい。
【００２８】
図８に、ユーザ（たとえばＡｄａｍ  １０２）がｎｅｗ  ｍｅｅｔｉｎｇのメニューアイテム４１６を選択した結果として行うできる例示的な画面ディスプレイを例示する。ｎｅｗ  ｍｅｅｔｉｎｇのメニューアイテム４１６の選択の後に、ミーティングのスケジューリング領域４０２に、メニューバー８０２、ミーティング定義領域８０４、リマインダ領域８０６、および反復領域８０８が含まれる。
【００２９】
メニューバー８０２に、ｓｅｎｄ（送信）の選択肢およびｃａｎｃｅｌ（取り消し）の選択肢が含まれる。ユーザがｓｅｎｄの選択肢を選択する場合、新しいミーティングを受け入れることの招待が、インスタントメッセージングセッションを介して、現在のインスタントメッセージングのカレンダ共有セッションに参加しているその他の個人に送信される。ユーザが、ｃａｎｃｅｌの選択肢を選択する場合、ユーザの、新しいミーティングをスケジューリングする要求が取り消される。
【００３０】
ミーティング定義領域８０４には、ユーザが、新しいミーティングに関連付けられた件名、場所、開始日時、および終了日時を定義できるようにするツールが含まれる。ミーティング定義領域８０４には、ユーザが、ミーティングに関する追加のメモを記録し、ミーティングのカテゴリ（たとえば、個人用またはビジネス）を指定できるようにするツールも含めることができる。さらに、ミーティング定義領域８０４には、ユーザおよびユーザが自分のカレンダを共有する他のユーザにミーティングをどのように見せるかをユーザが指定できるようにするツールも含めることができる。たとえば、ｓｈｏｗ  ｔｉｍｅ  ａｓ（時を〜として表示）のドロップダウンリストを用いると、ユーザが、ミーティングの時間をユーザのカレンダにどのように表示するかを選択できるようになる。選択肢には、たとえば、ｂｕｓｙ（予定あり）、ｏｕｔ  ｏｆ  ｔｈｅ  ｏｆｆｉｃｅ（外出中）、ｆｒｅｅ（空き時間）、またはｔｅｎｔａｔｉｖｅ（仮の予定）を含めることができる。別の例が、ｐｒｉｖａｔｅ（プライベート）確認ボックスであり、これは、確認マークを付けられた場合に、ミーティングが、ユーザのカレンダを共有できる他のユーザに示されないことを示す。
【００３１】
リマインダ領域８０６には、ユーザにミーティングのことを思い出させるかどうか、およびどのように思い出させるかをユーザが示すことを可能にするツールが含まれる。たとえば、ユーザは、電子メール（指定された電子メールアドレスでの）によって、スケジューリングされたミーティングの開始の前の特定の時間間隔に思い出せることを選択することができる。さらに、ユーザは、オンラインのアラートシステムを介して、スケジューリングされたミーティングの開始の前の特定の時間間隔に思い出せることを選択することができる。
【００３２】
反復領域８０８には、反復するミーティングが発生する頻度をユーザが指定できるようにするツールが含まれる。例の頻度として、制限はされないが、毎日、毎週、毎月、および毎年を含めることができる。追加の選択肢も使用可能とすることができる。たとえば、ユーザが毎月を選択する場合に、追加の選択肢によって、ユーザが、ミーティングが毎月特定の日付（たとえば毎月５日）、または毎月特定の日（たとえば毎月第２火曜日）に行われることを指定できるようにすることができる。
【００３３】
ユーザがミーティングを定義し終えたならば、ユーザは、メニューバー８０２のｓｅｎｄの選択肢を選択して、現在のインスタントメッセージングのカレンダ共有セッションの他の参加者に、ミーティングへの招待を送信させることができる。
【００３４】
図９に、現在のインスタントメッセージングのカレンダ共有セッションの参加者が受信することのできるミーティング招待を例示する例示的な画面ディスプレイを例示する。ミーティング招待には、図８に関して上述したミーティング定義からのデータが含まれる。ミーティング招待に、ａｃｃｅｐｔ（受け入れ）ボタン９０２、ｔｅｎｔａｔｉｖｅ（仮の予定）ボタン９０４、およびｄｅｃｌｉｎｅ（断り）ボタン９０６が含まれる。ユーザが、ｄｅｃｌｉｎｅボタン９０６を選択する場合に、ミーティングはスケジューリングされない。ユーザが、ａｃｃｅｐｔボタン９０２またはｔｅｎｔａｔｉｖｅボタン９０４を選択する場合に、ミーティングは、両方のユーザのカレンダでスケジューリングされる。
【００３５】
図１０に、ユーザがミーティング招待を受け入れた後に表示することができる例示的なミーティング確認画面を例示する。例示的な実施形態では、図１０に例示されたミーティング確認が、両方のユーザに表示される。ミーティング確認１００２は、ミーティングがユーザのカレンダに追加されたことを示し、ミーティングの詳細を表示し、ミーティングに出席することが確認されたユーザのリストを表示する。代替実施形態では、ミーティングへの出席が確認されたユーザのリストを、３人以上のミーティング出席者がいる場合に限って表示することができる。
【００３６】
図１１に、ユーザがミーティング招待を断った後に表示することができる例示的な断られたミーティング通知画面１１００を例示する。例示的な実施形態では、図１１に例示された断られたミーティングサマリ画面が、最初にミーティングをスケジューリングしたユーザに表示される。ミーティングサマリ１１０２は、ミーティングがユーザのカレンダから除去されたことを示し、ミーティングの詳細を表示し、およびミーティングに出席するように招待されたユーザのリストと、どのユーザが招待を断ったかのインジケータを表示する。代替実施形態では、ミーティングに関連付けられた追加の詳細を、断られたミーティング通知画面１１００の一部として表示することもできる。たとえば、日付、時刻、件名、場所、およびカテゴリなどの詳細を表示することができる。さらに、ゲストリストを表示することができる。例示的な実施形態では、複数のユーザがミーティングに招待される場合に、ゲストリスト領域に、どのユーザが招待を受け入れ、どのユーザが招待を断ったかを示すデータを含めることができる。
【００３７】
（例示的な環境）
図１２に、インスタントメッセージングセッション内のカレンダ共有を実装することができる例示的な環境１２００を例示する。例示の環境１２００には、インスタントメッセージングサーバ１２０２およびカレンダサーバ１２０４が含まれ、両方が、インターネット１２１０などのネットワークを介して、クライアント装置１２０６および１２０８を介してアクセス可能である。インスタントメッセージングサーバ１２０２は、クライアント装置１２０６と１２０８との間のインスタントメッセージングセッションの確立を容易にする（上述したように、インスタントメッセージングセッションは、３つ以上のクライアント装置の間で確立することができるが、説明の目的のために、インスタントメッセージングセッションに２人のユーザだけが含まれる例を説明する）。インスタントメッセージングセッションの確立によって、クライアント装置１２０６および１２０８のユーザが、通常はピアツーピア接続１２１２を介して、通信できるようになる。インスタントメッセージングセッションが確立されたならば、いずれかのユーザが、確立されたインスタントメッセージングセッション内でカレンダ共有セッションを開始する要求を開始することができる。カレンダ共有のセッション要求は、カレンダサーバ１２０４によって処理される。カレンダ共有に関して例示し、説明するが、本明細書で説明する技術を、制限はされないが、音楽共有、共有文書編集などを含む、他の種類のデータ共有にも同様に適用できることを理解されたい。
【００３８】
（カレンダ共有セッションの確立）
図１３に、インスタントメッセージングセッション内のカレンダ共有セッションを確立する際に実行することができる例示的な一連の通信を例示する。例示の例では、Ａｄａｍという名前のユーザが、クライアント装置１２０６を使用しており、Ｂｏｂという名前のユーザが、クライアント装置１２０８を使用している。ＡｄａｍとＢｏｂは、ＡｄａｍがＢｏｂとのカレンダ共有セッションを開始すると決断した場合、確立されたインスタントメッセージングセッションを介して互いに通信している。
【００３９】
Ａｄａｍは、矢印１３０２によって表されているように、クライアント装置１２０６からクライアント装置１２０８にカレンダ共有要求を送信させる。上述した図２に、ユーザにより選択することができ、カレンダ共有要求を生成させるメニューアイテムを例示する。矢印１３０４は、Ｂｏｂがカレンダ共有セッションを開始する招待を受け入れる場合にクライアント装置１２０８からクライアント装置１２０６に送信される通信を表す。カレンダ共有招待は、図３に関して上述したインスタントメッセージングセッションを介して受信し、応答することができる。
【００４０】
説明する実施形態では、ＡｄａｍおよびＢｏｂの各々が、カレンダサーバ１２０４に格納されたカレンダデータを有する。説明する例示的な実施形態では、許可された個人だけが個人のカレンダを見る、かつ／または変更することができ得るよう、カレンダデータにパスワード保護を行う。したがって、カレンダ共有セッションを開始する招待が送信され、受け入れられた後に、クライアント装置１２０６および１２０８のインスタントメッセージングアプリケーションの各々が、各々それぞれのユーザのカレンダデータを共有する要求をカレンダサーバ１２０４に送信する。たとえば、矢印１３０６によって表されるように、クライアント装置１２０８は、カレンダ共有要求をカレンダサーバ１２０４に送信する。同様に、矢印１３０８によって表されるように、クライアント装置１２０６は、カレンダ共有要求をカレンダサーバ１２０４に送信する。カレンダサーバ１２０４は、Ｂｏｂのカレンダデータにアクセスするのに使用可能な暗号化されたキーを、クライアント装置１２０８に送り返す（矢印１３１０によって表される）。同様に、カレンダサーバ１２０４は、Ａｄａｍのカレンダデータにアクセスするのに使用可能な暗号化されたキーを、クライアント装置１２０６に送り返す（矢印１３１２によって表される）。暗号化されたキーが、矢印１３１４および１３１６によって表されるように、インスタントメッセージングセッションを介して交換され、これによって、各ユーザにその他のユーザのカレンダデータへのアクセス権が与えられる。すなわち、Ａｄａｍのキーが、Ｂｏｂに送信され、これによって、Ｂｏｂに、Ａｄａｍのカレンダ情報へのアクセス権が与えられ、Ｂｏｂのキーが、Ａｄａｍに送信され、これによって、Ａｄａｍに、Ｂｏｂのカレンダ情報へのアクセス権が与えられる。３人以上のユーザがカレンダ共有セッションに参加している場合には、データアクセスキーを、すべての参加者の間で交換することができる。キーを交換した後に、キーを、カレンダサーバ１２０４に登録する。たとえば、クライアント装置１２０８のインスタントメッセージングアプリケーションが、要求１３１８をカレンダサーバ１２０４に送信する。要求１３１８には、キーを格納するアクセス制御リスト（ＡＣＬ）が、Ａｄａｍのカレンダへのアクセスを提供する新しいキーと共に含まれる。例示的な実施形態では、ＡＣＬが、クッキーとして格納され、送信され、および新しいキーが、ＵＲＬの一部として送信される。カレンダサーバ１２０４は、受信したＡＣＬを更新し、満了したすべてのキーを除去し、新しいキーを追加する。カレンダサーバ１２０４は、矢印１３２０によって示されるように、更新されたＡＣＬクッキーを返す。同様の交換が、矢印１３２２および１３２４によって例示されるように、クライアント装置１２０６とカレンダサーバ１２０４との間で行われる。説明する例示的な実施形態では、キー登録が、カレンダサーバ１２０４によって実行される。なぜならば、セキュリティの理由から、クライアントが、ＡＣＬクッキー内の個々のキーまたはキーの集合のデコードおよびエンコードに必要な情報について信頼されないからである。
【００４１】
図１３には例示されていないが、例示的な実施形態では、Ａｄａｍのディスプレイプリファレンスを、Ｂｏｂのクライアントに表示されるカレンダデータにも適用することができる。これは、たとえば、ＡｄａｍおよびＢｏｂが異なるタイムゾーンにいる場合に重要になる可能性がある。そのような実施形態では、ＡｄａｍのクライアントがＢｏｂのキーの登録に成功した後に、Ａｄａｍのディスプレイプリファレンスに関する要求が、クライアント装置１２０６からカレンダサーバ１２０４に送信される。ディスプレイプリファレンスが返される場合、このディスプレイプリファレンスは、インスタントメッセージセッションを介してクライアント装置１２０８に送信される。例のディスプレイパラメータには、制限はされないが、言語、タイムゾーン、週の始まりの日、一日ビューの開始時刻、および日ビューの終了時刻を含めることができる。
【００４２】
図１４に、インスタントメッセージングセッション内で共有カレンダ情報を表示できるようにするために実行することができる例示的な一連の通信を例示する。図１３に関して上述した、暗号化されたキーの交換の後に、各クライアント装置は、カレンダデータを要求する。たとえば、矢印１４０２によって表されるように、クライアント装置１２０８が、カレンダ情報に関する要求（クライアント装置１２０８に格納されたＡＣＬクッキーを含む要求）をカレンダサーバ１２０４に送信する。カレンダサーバ１２０４は、Ｂｏｂの認証証明書（たとえば、ユーザ名およびパスワード）を検証し、受信したＡＣＬに、Ａｄａｍのカレンダデータにアクセスするための有効なキーが含まれることを検証する。カレンダサーバ１２０４は、ＢｏｂのカレンダデータとＡｄａｍのカレンダデータとの両方をクライアント１２０８に返す（矢印１４０４によって表される）ことによって要求に応答する。同様に、矢印１４０６は、クライアント装置１２０６からカレンダサーバ１２０４に送信される、カレンダ情報に関する要求を表し、矢印１４０８は、カレンダサーバ１２０４からクライアント装置１２０６へのＡｄａｍとＢｏｂとの両方のカレンダデータの送信を表す。たとえば、図４および５に例示するように、受信されたカレンダデータをユーザに表示することができる。
【００４３】
（新しいミーティングのスケジューリング）
図１５に、インスタントメッセージングセッションの参加者が、新しいミーティングへの出席のスケジューリングを可能にするために実行することができる例示的な一連の通信を例示する。図４に関して上述したように、インスタントメッセージングのユーザインターフェースのカレンダ共有部分は、ユーザインターフェースを介して、（図８に示されているように）新しいミーティングを定義できるユーザインターフェースを表示させる選択可能な選択肢（たとえば、ｎｅｗ  ｍｅｅｔｉｎｇのメニューアイテム４１６）を提供することができる。ユーザが、（たとえば、図４に例示されたｎｅｗ  ｍｅｅｔｉｎｇのメニューアイテム４１６を選択することによって）新しいミーティングのスケジューリングを要求する場合、新規ミーティング要求が、クライアント装置（たとえばクライアント装置１２０６）からカレンダサーバ１２０４に送信される。新規ミーティング要求の送信は、図１５では矢印１５０２によって表される。
【００４４】
矢印１５０４は、ユーザが新しいミーティングを定義できるようにするユーザインターフェース画面を表示するようにクライアント装置１２０６に指示するデータの、カレンダサーバ１２０４からクライアント装置１２０６への送信を表す。そのようなユーザインターフェース画面の例を、図８に関して上述した。
【００４５】
図８に関して上述したように、インスタントメッセージングのユーザインターフェースのカレンダ共有部分は、ユーザが新しいミーティングをスケジューリングできるようにするツールを提供することができる。Ａｄａｍがミーティングの詳細を定義した後に、ミーティングの詳細が、クライアント装置１２０６からカレンダサーバ１２０４に送信される（矢印１５０６によって表される）。ミーティング保存要求の送信データには、ミーティングをカレンダサーバ１２０４内の適当なカレンダデータに追加できるようにするためのミーティングの詳細が含まれる。ミーティング保存要求を受信すると、カレンダサーバ１２０４は、ミーティングを受け入れるためにその他のユーザへの招待が送信されたことを示す確認ページを表示するのに必要なデータを、クライアント装置１２０６に送り返す。矢印１５０８によって示されるように、ミーティング招待を生成するためのデータも、カレンダサーバ１２０４からクライアント装置１２０６に送り返される。
【００４６】
次に、ミーティング招待（矢印１５１０によって表される）が、クライアント装置１２０６からクライアント装置１２０８へ、あらかじめ確立されたインスタントメッセージングセッションを介して送信される。クライアント装置１２０８が、ミーティング招待データを受信する場合、データが、カレンダサーバ１２０４に転送される（矢印１５１２によって表される）。次に、カレンダサーバが、ミーティング招待データを使用して、ミーティングの詳細を調べ、矢印１５１４によって表されるように、ミーティングＲＳＶＰのユーザインターフェース画面を生成するデータをクライアント装置１２０８に送り返す。例としてミーティングＲＳＶＰのユーザインターフェース画面を、図９に関して上述した。図９に関して上述したように、招待されたユーザは、招待を受け入れるか、仮の予定として招待を受け入れるか、招待を断ることを選択することができる。スケジューリングされたミーティングの受け入れに関連付けられた通信情報の交換を、以下で図１６に関して説明する。スケジューリングされたミーティングの断りに関連付けられた通信情報の交換を、以下で図１７に関して説明する。
【００４７】
（スケジューリングされたミーティングの受け入れ）
図９に関して上述したように、スケジューリングされたミーティングを受け入れる招待を、ユーザがスケジューリングされたミーティングを受け入れる、仮の予定として受け入れる、または断ることを可能にする選択可能なボタンを含むユーザインターフェースを介して表示することができる。図１６に、ミーティング招待のユーザによる受け入れに基づいて実行することができる例示的な一連の通信を例示する。
【００４８】
例示の例では、Ｂｏｂが、Ａｄａｍによってスケジューリングされたミーティングを受け入れる。たとえば、Ｂｏｂは、図９に関して上述したように、ａｃｃｅｐｔボタン９０２を選択することができる。（ユーザがｔｅｎｔａｔｉｖｅボタン９０４を選択する場合に、同様の交換が実行される。）ａｃｃｅｐｔボタンの選択によって、矢印１６０２によって表されるように、ミーティング受け入れ通知がカレンダサーバ１２０４に送信される。矢印１６０４によって表されるように、同様のミーティング受け入れ通知が、ミーティング招待を受信したクライアント装置１２０６にも送信される。ミーティング受け入れ通知１６０２および１６０４のフォーマットおよび内容は、同様のものとすることができ、あるいは、非常に異なるものとすることができる。たとえば、例示的な実施形態では、ミーティング受け入れ通知１６０２は、ウェブページ内のポストフォームから生成されるが、ミーティング受け入れ通知１６０４を、インスタントメッセージングセッションによってサポートされる専用のメッセージフォーマットとすることができる。
【００４９】
カレンダサーバ１２０４が、ミーティング受け入れ通知を受信する場合、カレンダサーバは、両方のユーザのカレンダに関連付けられたデータを更新して、ミーティングがスケジューリングされ、受け入れられたことを示す。次に、カレンダサーバ１２０４は、矢印１６０６によって表されるように、ミーティングサマリデータをクライアント装置１２０８に送信する。次に、受信されたミーティングサマリデータを、たとえば図１０に例示するように表示することができる。
【００５０】
クライアント装置１２０６が、ミーティング受け入れ通知を受信する（矢印１６０４によって表される）場合、クライアント装置１２０６は、ミーティングサマリの要求をカレンダサーバ１２０４に送信する（矢印１６０８によって表される）。ミーティングサマリの要求の受信に応答して、カレンダサーバ１２０４は、矢印１６１０によって表されるように、ミーティングサマリデータをクライアント装置１２０６に送信する。次に、受信されたミーティングサマリデータを、たとえば図１０に例示するように表示することができる。
【００５１】
（スケジューリングされたミーティングの断り）
図１７に、ミーティング招待のユーザによる断りに基づいて実行することができる例示的な一連の通信を例示する。たとえば、ユーザがミーティング要求を受信する場合、ユーザは、図９に例示されたｄｅｃｌｉｎｅボタン９０６と同様のｄｅｃｌｉｎｅボタンを選択することによって応答することができる。
【００５２】
例示の例では、Ｂｏｂが、Ａｄａｍによってスケジューリングされたミーティングを断る。たとえば、Ｂｏｂは、図９に関して上述したｄｅｃｌｉｎｅボタン９０６を選択することができる。ｄｅｃｌｉｎｅボタンを選択することによって、矢印１７０２によって表されるように、カレンダデータの要求がカレンダサーバ１２０４に送信される。また、ｄｅｃｌｉｎｅボタンを選択することによって、矢印１７０４によって表されるように、ミーティング断り通知が、ミーティング招待を受信したクライアント装置１２０６に送信される。カレンダサーバ１２０４が、カレンダデータの要求１７０２を受信する場合、カレンダサーバは、矢印１７０６によって表されるように、要求されたデータ（たとえば、ＡｄａｍおよびＢｏｂのカレンダに関連付けられたカレンダデータ）をクライアント装置１２０８に送信する。次に、受信されたカレンダデータを、たとえば図５に例示するように表示することができる。
【００５３】
クライアント装置１２０６が、ミーティング断り通知１７０４を受信する場合、クライアント装置１２０６は、ミーティングを削除する要求（矢印１７０８によって表される）をカレンダサーバ１２０４に送信する。ミーティングを削除する要求の受信に応答して、カレンダサーバ１２０４は、ＡｄａｍおよびＢｏｂのカレンダからミーティングを削除し、矢印１７１０によって表されるように、断られたミーティングに関連付けられたサマリデータをクライアント装置１２０６に送信する。次に、受信されたミーティングサマリデータを、たとえば図１１に例示するように表示することができる。
【００５４】
（クライアント装置）
図１８に、インスタントメッセージングセッション内のカレンダ共有を支援するように構成された例示的なクライアント装置１８０２の選択されたコンポーネントを例示する。クライアント装置１８０２を、制限はされないが、パーソナルコンピュータ、モバイルコンピューティング装置、セルラー電話機、携帯情報端末、またはインスタントメッセージングアプリケーションを支援するように構成できる他の種類のコンピューティング装置を含む、さまざまなコンピューティング装置のいずれかとして実装することができる。クライアント装置１８０２には、１つまたは複数のプロセッサ１８０４、１つまたは複数の通信インターフェース１８０６、およびメモリコンポーネント１８０８が含まれる。オペレーティングシステム１８１０および１つまたは複数のアプリケーションプログラム１８１２が、メモリ１８０８に格納され、プロセッサ１８０４で実行される。インスタントメッセージングアプリケーション１８１４は、メモリ１８０８に格納され、プロセッサ１８０４で実行される特定のアプリケーションプログラムである。
【００５５】
通信インターフェース１８０６は、クライアント装置１８０２が、インスタントメッセージングサーバ１２０２およびカレンダサーバ１２０４などの他のコンピューティングシステムと通信することを可能にする。例示的な実施形態では、通信インターフェース１８０６が、ＨＴＴＰプロトコルを介する通信をサポートする。
【００５６】
インスタントメッセージングアプリケーション１８１４は、インスタントメッセージングサーバ１２０２と通信（通信インターフェース１８０６を介して）して、複数のユーザの間でインスタントメッセージングセッションを確立するように構成される。インスタントメッセージングアプリケーション１８１４は、さらに、ユーザが、確立されたインスタントメッセージングセッションを介して、カレンダ共有セッションに参加することを要求する場合、カレンダサーバ１２０４と通信するように構成される。例示的な実施形態では、インスタントメッセージングアプリケーション１８１４が、クッキーの受信、格納、および送信が可能なＨＴＴＰクライアントを含むまたは利用する。インスタントメッセージングアプリケーション１８１４は、ユーザがインスタントメッセージングの通信情報を送信および受信できるようにするユーザインターフェースを提供する。インスタントメッセージングアプリケーション１８１４は、ユーザが、確立されたインスタントメッセージングセッション内のカレンダ共有セッションに参加できるようにするユーザインターフェースも提供する。
【００５７】
（カレンダサーバ）
図１９に、インスタントメッセージングセッション内のカレンダ共有を支援するように構成された例示的なカレンダサーバ１２０４の選択されたコンポーネントを例示する。カレンダサーバ１２０４には、プロセッサ１９０２、通信インターフェース１９０４、およびメモリコンポーネント１９０６が含まれる。オペレーティングシステム１９０８およびデータアクセス認証機能（ａｕｔｈｅｎｔｉｃａｔｏｒ）１９１０が、メモリ１９０６に格納され、プロセッサ１９０２によって実行される。単一のサーバとして例示されているが、カレンダサーバ１２０４のコンポーネントを、１つまたは複数の物理的システムの間で分散できることを理解されたい。たとえば、カレンダデータ１９１２を、一緒にカレンダデータウェアハウスシステムを形成する複数のサーバシステムにわたって分散することができる。
【００５８】
通信インターフェース１９０４は、カレンダサーバ１２０４がクライアント装置１８０２などの他のコンピューティング装置と通信することを可能にする。
【００５９】
カレンダデータリポジトリ１９１２は、メモリ１９０６に格納され、カレンダサーバ１２０４のユーザのカレンダデータを保持する。たとえば、カレンダサーバ１２０４によって支援されるカレンダデータサービスを、サブスクリプションサービスとして提供することができる。
【００６０】
データアクセス認証機能１９１０は、カレンダデータリポジトリ１９１２内の格納されたカレンダデータへのアクセスを要求するユーザが、要求しているデータへのアクセスを許可されることを検証する。例示的な実施形態では、データアクセス認証機能１９１０は、ユーザ名およびパスワード、または他の技術を介してユーザを認証する。ユーザが認証されたならば、ユーザは、ユーザ自身のカレンダデータにアクセスすることができ、かつ／または他者とカレンダデータを共有するために暗号化されたキーを要求することができる。要求があると、データアクセス認証機能１９１０は、カレンダサーバ１２０４の認証されたユーザの暗号化されたキーを生成する。暗号化されたキーを、他のユーザと共有することができる。暗号化されたキーをユーザ要求に含めて、カレンダデータリポジトリ１９１２に格納されたデータにアクセスすることができる。カレンダデータリポジトリ１９１２内の別のユーザのデータにアクセスするユーザ要求を受信する場合、データアクセス認証機能１９１０は、要求されたデータへのアクセスをユーザに与える前に、要求に有効なキーが含まれることを検証する。
【００６１】
例示的な実施形態では、ユーザがカレンダ共有要求を送信する場合、データアクセス認証機能１９１０が、暗号化されたキーを生成する。暗号化されたキーは、３０分間など、指定された時間間隔の後に満了するように設定することができる。さらに、暗号化されたキーを、現在のインスタントメッセージングセッションに関連付けることができ、結果として、ユーザがインスタントメッセージングセッションを去る場合、インスタントメッセージングセッション中にユーザが入手した他のユーザのカレンダへのキーのすべてが無効になる。
【００６２】
データアクセス認証機能１９１０は、ユーザがまだインスタントメッセージングセッションに参加している間にキーが満了する場合に、自動的に新しいキーを要求するようにクライアントのインスタントメッセージングアプリケーションに指示するように構成することができる。同様に、データアクセス認証機能１９１０は、ユーザに構成された許可が変更された場合に、新しいキーを自動的に要求するようにクライアントのインスタントメッセージングアプリケーションに指示するように構成することができる。たとえば、ユーザが、他のユーザに配布されるキーを有し、ユーザが予定ありか空き時間かのインジケータではなく、ユーザのカレンダのすべての詳細を他のユーザが見ることができるようにするために許可を変更した場合に、新しいキーを、自動的に要求し、再配布することができる。
【００６３】
例示的な実施形態では、キーは、クライアント装置で保持されるクッキーに格納される。インスタントメッセージングアプリケーションが、カレンダサーバ１２０４からのデータを要求する場合、クッキーが、要求と共に送信される。データアクセス認証機能１９１０は、キーをユーザのクッキーに追加するように構成することができ、これによって、追加されたデータへのユーザアクセスが与えられる。さらに、データアクセス認証機能１９１０は、ユーザのクッキーから満了したキーを除去するように構成することができる。
【００６４】
（カレンダ共有方法）
図２０は、インスタントメッセージングセッション内でカレンダデータを共有する例示的な方法２０００を例示するフロー図である。例示の方法は、適切なハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せで実装することができる。
【００６５】
図２０は、２つに分割され、図の左側には、第１ユーザ「ユーザＡ」に関連付けて実行される処理を例示し、図の右側には、第２ユーザ「ユーザＢ」に関連して実行される処理を例示する。
【００６６】
ブロック２００２および２００４では、ユーザＡとユーザＢとの間でインスタントメッセージングセッションが確立される。たとえば、ユーザＡが、ユーザＡのコンピュータシステムにインストールされたインスタントメッセージングクライアントを介してユーザＢとのインスタントメッセージングセッションを開始することができる。あるいはまた、ユーザＢがインスタントメッセージングセッションを開始することができる。インスタントメッセージングセッションを確立する技術は、当事業者に周知である。
【００６７】
ブロック２００６では、ユーザＡが、カレンダ共有セッションに参加するようにユーザＢを招待する。たとえば、図２および３に関して上述したように、ユーザＡは、ブロック２００２および２００４に関して上述したように確立されたインスタントメッセージングセッションに関連付けられたユーザインターフェース内からカレンダ共有メニューアイテムを選択することができる。図１３の矢印１３０２によって例示されるように、カレンダ共有要求は、インスタントメッセージングセッションを介して、ユーザＡに関連付けられたクライアント装置からユーザＢに関連付けられたクライアント装置に送信される。
【００６８】
ブロック２００８では、ユーザＢが、カレンダ共有セッションに参加する招待を受け入れる。たとえば、図３に関して説明したように、ユーザＢは、ユーザＢによる招待の受け入れを示すインスタントメッセージングのユーザインターフェース内の受け入れリンクを選択して、カレンダ共有セッションを開始することができる。図１３の矢印１３０４によって示されるように、ユーザＢの受け入れの表示は、インスタントメッセージングセッションを介してユーザＡのクライアント装置に送信される。
【００６９】
ブロック２０１０では、ユーザＡのクライアント装置が、ユーザＡのカレンダデータにアクセスするのに使用することができるキーを要求し、受信する。たとえば、図１３の矢印１３０８によって表されるように、カレンダ共有要求が、ユーザＡのクライアント装置からカレンダサーバに送信される。図１３の矢印１３１２によって表されるように、要求に応答して、カレンダサーバは、キーを返すが、このキーを暗号化することができる。返されるキーによって、ユーザＡのカレンダデータへのアクセスが提供される。
【００７０】
同様に、ブロック２０１２では、ユーザＢのクライアント装置が、ユーザＢのカレンダデータにアクセスするのに使用できるキーを要求する。たとえば、図１３の矢印１３０６によって表されるように、カレンダ共有要求が、ユーザＢのクライアント装置からカレンダサーバに送信される。図１３の矢印１３１０によって表されるように、要求に応答して、カレンダサーバは、キーを返すが、このキーを暗号化することができる。返されるキーによって、ユーザＢのカレンダデータへのアクセスが提供される。
【００７１】
ブロック２０１４および２０１６では、キーを交換する。すなわち、ブロック２０１４では、ユーザＡのキーが、インスタントメッセージングセッションを介してユーザＢに送信される。同様に、ブロック２０１６では、ユーザＢのキーが、インスタントメッセージングセッションを介してユーザＡに送信される。
【００７２】
ブロック２０１８および２０２０では、交換されたキーを登録する。たとえば、図１３に関して上述したように、ユーザＢのキーを、登録要求と共にカレンダサーバに送信する。カレンダサーバは、ユーザＢのキーが有効であることを検証し、次に、キーをユーザＡのアクセス制御リストに追加し、このアクセス制御リストを、たとえばクッキーとして、格納することができる。同様の処理が、ユーザＢのＡＣＬにユーザＡのキーを登録するために、ユーザＢのために実行される。
【００７３】
例示的な実施形態では、開始するユーザ（たとえば、ユーザＡ）に関連付けられたディスプレイプリファレンスを、ユーザＢに表示されるデータに適用することができる。そのような実施形態では、図２０に例示しないが、ユーザＢのキーをユーザＡのＡＣＬに登録した後に、ユーザＡのディスプレイプリファレンスに関する要求が、ユーザＡのためにカレンダサーバに送信される。ディスプレイプリファレンスが受信された場合、そのディスプレイプリファレンスが、インスタントメッセージングセッションを介してユーザＡからユーザＢに送信される。ディスプレイプリファレンスには、制限はされないが、言語、タイムゾーン、週の始まりの日、ならびに一日ビューの開始時刻および終了時刻を含めることができる。
【００７４】
ブロック２０２２および２０２４では、ユーザＡのクライアント装置およびユーザＢのクライアント装置の各々が、カレンダサーバにカレンダデータを要求する。そのような要求を、図１４に例示する。たとえば、ユーザＡの要求は、矢印１４０６によって表され、ユーザＢの要求は、矢印１４０２によって表される。
【００７５】
ブロック２０２６および２０２８では、カレンダデータが、要求に応答してカレンダサーバから返される。このデータ送信の例を、図１４に例示する。たとえば、ユーザＡによるカレンダデータの受信が、矢印１４０８によって表され、ユーザＢによるカレンダデータの受信が、矢印１４０４によって表されている。
【００７６】
（スケジューリングされたミーティングを受け入れる方法）
図２１は、インスタントメッセージングセッション内で、スケジューリングされたミーティングを受け入れる例示的な方法２１００を例示するフロー図である。例示の方法は、適切なハードウェア、ソフトウェア、ファームウェア、またはその組合せで実装することができる。
【００７７】
図２１は、２つに分割され、図の左側には、第１ユーザ「ユーザＡ」に関連付けて実行される処理を例示し、図の右側には、第２ユーザ「ユーザＢ」に関連付けて実行される処理を例示する。
【００７８】
ブロック２１０２および２１０４では、ユーザＡとユーザＢとの間でインスタントメッセージングカレンダ共有セッションが確立される。たとえば、図２０に関して上述したように、インスタントメッセージングのカレンダ共有セッションを確立することができる。いずれかのユーザが、カレンダ共有セッションを開始することができる。
【００７９】
ブロック２１０６では、ユーザＡが、カレンダ共有セッションを介してミーティングをスケジューリングする。たとえば、図８に関して上述したように、ユーザＡは、スケジューリングされるミーティングの開始日時および終了日時を入力することによって、ミーティングをスケジューリングすることができる。ユーザＡが（たとえば、図８に例示されたｓｅｎｄボタンを選択することによって）ミーティングをスケジューリングする場合、ミーティング要求が、図１５に例示された矢印１５０６に関して上述したように、カレンダサーバ１２０４に送信される。
【００８０】
ブロック２１０８では、ユーザＡのクライアント装置が、確立されたインスタントメッセージングセッションを使用して、ミーティングに出席するための招待をユーザＢに送信する。たとえば、ユーザＡが、（図８に関して上述した）Ｓｅｎｄボタンを選択する場合、ミーティング招待が、インスタントメッセージングセッションを介してユーザＢに送信される。このデータ送信を、図１５に例示された矢印１５１０に関して上述した。
【００８１】
ブロック２１１０では、ユーザＢは、図１５の矢印１５１０によって例示されるように、インスタントメッセージングセッションを介してミーティング招待を受信する。次に、ミーティング招待データが、カレンダサーバ１２０４に送信され（矢印１５１２）、およびミーティングＲＳＶＰページを表示するデータが返される（矢印１５１４）。ミーティングＲＳＶＰ詳細を表示することができる例示的なユーザインターフェースは、図９に関して上述した。
【００８２】
ブロック２１１２では、ユーザＢが、ミーティング招待を受け入れる。たとえば、図９に関して上述したように、ユーザＢは、ａｃｃｅｐｔボタン９０２を選択して、ミーティングをユーザＢのカレンダデータに追加しなければならないことを示すことができる。
【００８３】
ブロック２１１４では、ユーザＡは、ユーザＢがスケジューリングされたミーティングを受け入れたことの通知を受信する。たとえば、図１６で例示したように、ミーティング受け入れ通知を、ユーザＢのクライアント装置からユーザＡのクライアント装置に送信することができる（矢印１６０４）。
【００８４】
ブロック２１１６および２１１８では、ユーザＡおよびユーザＢの各々が、スケジューリングされたミーティングに関連付けられたサマリデータを受信する。たとえば、図１６に例示されているように、ユーザＢがミーティング招待を受け入れる場合、ミーティング受け入れ通知１６０２が、カレンダサーバ１２０４に送信される。応答として、ミーティングサマリデータが、カレンダサーバ１２０４から返される（矢印１６０６）。同様に、ユーザＡは、ユーザＢがミーティング招待を受け入れたことの通知を受信する（矢印１６０４）場合、ミーティングサマリに関する要求が、カレンダサーバ１２０４に送信される（矢印１６０８）。次に、カレンダサーバ１２０４が、ミーティングサマリデータを送り返す（矢印１６１０）。ミーティングサマリデータが、たとえば図１０に例示されているように、両方のユーザに表示される。
【００８５】
（スケジューリングされたミーティングを断る方法）
図２２は、インスタントメッセージングセッション内で、スケジューリングされたミーティングを断る例示的な方法２２００を例示するフロー図である。例示の方法は、適切なハードウェア、ソフトウェア、ファームウェア、またはその組合せで実装することができる。
【００８６】
図２２は、２つに分割され、図の左側には、第１ユーザ「ユーザＡ」に関連付けて実行される処理を例示し、図の右側には、第２ユーザ「ユーザＢ」に関連付けて実行される処理を例示する。
【００８７】
ブロック２２０２および２２０４では、ユーザＡとユーザＢとの間でインスタントメッセージングのカレンダ共有セッションが確立される。たとえば、図２０に関して上述したように、インスタントメッセージングのカレンダ共有セッションを確立することができる。いずれかのユーザが、カレンダ共有セッションを開始することができる。
【００８８】
ブロック２２０６では、ユーザＡが、カレンダ共有セッションを介してミーティングをスケジューリングする。たとえば、図８に関して上述したように、ユーザＡは、スケジューリングされるミーティングの開始日時および終了日時を入力することによって、ミーティングをスケジューリングすることができる。ユーザＡが（たとえば、図８に例示されたｓｅｎｄボタンを選択することによって）ミーティングをスケジューリングする場合、ミーティング要求が、図１５に例示された矢印１５０６に関して上述したように、カレンダサーバ１２０４に送信される。
【００８９】
ブロック２２０８では、確立されたインスタントメッセージングセッションを使用して、ミーティングに出席するための招待をユーザＢに送信する。たとえば、ユーザＡが、（図８に関して上述した）Ｓｅｎｄボタンを選択する場合、ミーティング招待が、インスタントメッセージングセッションを介してユーザＢに送信される。このデータ送信は、図１５に例示された矢印１５１０に関して上述した。
【００９０】
ブロック２２１０では、ユーザＢは、図１５の矢印１５１０によって例示されるように、インスタントメッセージングセッションを介してミーティング招待を受信する。次に、ミーティング招待データが、カレンダサーバ１２０４に送信され（矢印１５１２）、およびミーティングＲＳＶＰページを表示するデータが返される（矢印１５１４）。ミーティングＲＳＶＰ詳細を表示することができる例示的なユーザインターフェースは、図９に関して上述した。
【００９１】
ブロック２２１２では、ユーザＢが、ミーティング招待を断る。たとえば、図９に関して上述したように、ユーザＢは、ｄｅｃｌｉｎｅボタン９０６を選択して、ミーティングがユーザＢのカレンダデータに追加されないことを示すことができる。
【００９２】
ブロック２２１４では、ユーザＡは、ユーザＢが、スケジューリングされたミーティングを断ったことの通知を受信する。たとえば、図１７に例示されたように、ミーティング断り通知が、ユーザＢのクライアント装置からユーザＡのクライアント装置に送信される（矢印１７０４）。
【００９３】
ブロック２２１６では、ユーザＡが、断られたミーティングに関連付けられたサマリデータを受信する。たとえば、図１７に示されたように、ユーザＡは、ユーザＢがミーティング招待を断ったことの通知を受信する（矢印１７０４）場合、ミーティング削除要求が、カレンダサーバ１２０４に送信される（矢印１７０８）。次に、カレンダサーバ１２０４は、ミーティングをユーザＡのカレンダデータから除去し、ミーティングサマリデータを送り返す（矢印１７１０）。ミーティングサマリデータが、たとえば図１１に例示されたように、ユーザＡに表示される。
【００９４】
ブロック２２１８では、ユーザＢが、共有カレンダデータを受信する。たとえば、図１７に示されたように、ユーザＢがミーティング招待を断る場合、カレンダデータに関する要求１７０２が、カレンダサーバ１２０４に送信される。応答として、共有カレンダデータが、カレンダサーバ１２０４からユーザＢに送り返される（矢印１７０６）。
【００９５】
（ユーザデータへの認証されたアクセスを提供する方法）
図２３は、ユーザデータへの認証されたアクセスを提供する例示的な方法２３００を例示するフロー図である。例示の方法は、適切なハードウェア、ソフトウェア、ファームウェア、またはその組合せで実装することができる。
【００９６】
ブロック２３０２では、カレンダサーバが、第１ユーザのために、第１ユーザに関連付けられたデータにアクセスするキーに関する要求を受信する。たとえば、図１３に関して上述したように、ユーザ（たとえば、Ａｄａｍ）は、インスタントメッセージングのアプリケーションを介して、Ａｄａｍのカレンダデータにアクセスするキーに関する要求を送信することができる。
【００９７】
ブロック２３０４では、カレンダサーバ１２０４は、受信した要求を認証する。たとえば、キーを要求するユーザが、キーを用いてアクセスすることができるデータに関連付けられたユーザであることを検証するために、ユーザ名およびパスワードを要求することができる。要求が送信されているユーザの身元を検証するために、すべての種類のユーザ認証を使用することができることを理解されたい。
【００９８】
ブロック２３０６では、カレンダサーバ１２０４は、要求が認証されたか否かを決定する。要求が認証されない場合（ブロック２３０６からの「Ｎｏ」の分岐）に、ブロック２３０８では、カレンダサーバ１２０４がエラーを返す。
【００９９】
一方、要求が認証される場合（ブロック２３０６からの「Ｙｅｓ」の分岐）に、ブロック２３１０では、カレンダサーバ１２０４は、認証されたユーザに関連付けられたデータへのアクセスを可能にするキーを生成する。たとえば、図１３に例示されたように、Ａｄａｍがキーを要求する場合、Ａｄａｍのカレンダデータにアクセスするキーが、生成される。
【０１００】
ブロック２３１２では、カレンダサーバ１２０４が、生成されたキーを要求元のアプリケーションに送信する。たとえば、要求が、インスタントメッセージングのアプリケーションから受信された場合に、生成されたキーは、インスタントメッセージングのアプリケーションに送り返される。
【０１０１】
所定の時間間隔の後に、ブロック２３１４では、カレンダサーバ１２０４は、第２ユーザからのデータに関する要求を受信する。要求には、第１ユーザのデータへのアクセスを可能にするために生成されたキーが含まれる。
【０１０２】
ブロック２３１６では、カレンダサーバ１２０４が、キーを検証する。たとえば、カレンダサーバ１２０４は、キーに関連付けられた満了期間が経過していないことを検証することができる。
【０１０３】
ブロック２３１８では、カレンダサーバ１２０４は、キーが有効であるか否かを決定する。カレンダサーバ１２０４は、キーが有効でないと決定する場合（ブロック２３１８からの「Ｎｏ」の分岐）に、ブロック２３２０では、カレンダサーバ１２０４がエラーを返す。例示的な実施形態では、キーがクッキーの一部として送信された場合に、カレンダサーバ１２０４は、クッキーを変更して、無効なキーを除去することができる。あるいはまた、カレンダサーバ１２０４は、新しい有効な有粉キーを要求するように要求元アプリケーションに指示するデータを返すこともできる。
【０１０４】
一方、カレンダサーバ１２０４が、キーが有効であると決定する場合（ブロック２３１８からの「Ｙｅｓ」の分岐）に、ブロック２３２２では、カレンダサーバ１２０４は、第２ユーザのために受信した要求に応答して、第１ユーザに関連付けられ要求されたデータを返す。
【０１０５】
（結論）
上述した技術は、インスタントメッセージングセッション内でのデータ共有および関連するタスクのサポートを可能にする。本発明を、構造的特徴および／または方法論的ステップに固有の言葉で説明したが、請求項で定義される本発明が、必ずしも説明した特定の特徴またはステップに制限されないことを理解されたい。むしろ、特定の特徴およびステップは、請求される発明を実装する好ましい形式として開示されたものである。
【図面の簡単な説明】
【０１０６】
【図１】カレンダ共有およびミーティングスケジューリングを実行することができる例示的なインスタントメッセージングセッションを介して通信する２人のユーザを例示する絵で表した図である。
【図２】インスタントメッセージングのユーザインターフェース画面を介してカレンダ共有を開始することができる、例示的なインスタントメッセージングのユーザインターフェース画面を絵で表した図である。
【図３】インスタントメッセージングのユーザインターフェース画面を介してカレンダ共有招待を受け入れるまたは断ることができる、例示的なインスタントメッセージングのユーザインターフェース画面を絵で表した図である。
【図４】インスタントメッセージング会話に参加する第１ユーザに共有カレンダ情報を表示するのに使用することができる例示的なインスタントメッセージングのユーザインターフェース画面を絵で表した図である。
【図５】インスタントメッセージング会話に参加する第２ユーザに共有カレンダ情報を表示するのに使用することができる例示的なインスタントメッセージングのユーザインターフェース画面を絵で表した図である。
【図６】ユーザのカレンダが他者と共有される場合、インスタントメッセージングのユーザインターフェース画面を介してユーザが表示される詳細のレベルを選択することができる、例示的なインスタントメッセージングのユーザインターフェース画面を絵で表した図である。
【図７】インスタントメッセージングのユーザインターフェース画面を介して、ユーザは共有カレンダデータが表示された日を変更することができる、例示的なインスタントメッセージングのユーザインターフェース画面を絵で表した図である。
【図８】インスタントメッセージングのユーザインターフェース画面を介してユーザが新しいミーティングをスケジューリングすることができる、例示的なインスタントメッセージングのユーザインターフェース画面を絵で表した図である。
【図９】スケジューリングされたミーティングを受け入れるまたは断るために招待を表示するのに使用することができる例示的なインスタントメッセージングのユーザインターフェース画面を絵で表した図である。
【図１０】ユーザがミーティング招待を受け入れた後に表示することができる例示的なインスタントメッセージングのユーザインターフェース画面を絵で表した図である。
【図１１】ユーザがミーティング招待を断った後に表示することができる例示的なインスタントメッセージングのユーザインターフェース画面を絵で表した図である。
【図１２】インスタントメッセージングセッション内のカレンダ共有を実装することができる例示的な環境を絵で表した図である。
【図１３】インスタントメッセージングセッション内のカレンダ共有セッションを確立するために実行することができる例示的な一連の通信を例示する絵で表した図である。
【図１４】インスタントメッセージングセッション内で共有カレンダ情報を表示できるようにするために実行することができる例示的な一連の通信を例示する絵で表した図である。
【図１５】インスタントメッセージングセッションの参加者が出席する新しいミーティングのスケジューリングを可能にするために実行することができる例示的な一連の通信を例示する絵で表した図である。
【図１６】ミーティング招待のユーザによる受け入れに応答して実行することができる例示的な一連の通信を例示する絵で表した図である。
【図１７】ミーティング招待のユーザによる断りに応答して実行することができる例示的な一連の通信を例示する絵で表した図である。
【図１８】インスタントメッセージングセッション内のカレンダ共有を支援するように構成された例示的なクライアント装置の選択されたコンポーネントを例示するブロック図である。
【図１９】インスタントメッセージングセッション内のカレンダ共有を支援するように構成された例示的なカレンダサーバの選択されたコンポーネントを例示するブロック図である。
【図２０】インスタントメッセージングセッション内でカレンダデータを共有する例示的な方法のフロー図である。
【図２１】インスタントメッセージングセッション内でミーティングをスケジューリングし、受け入れる例示的な方法のフロー図である。
【図２２】インスタントメッセージングセッション内でミーティングをスケジューリングし、断る例示的な方法のフロー図である。
【図２３】ユーザデータへの認証されたアクセスを提供する例示的な方法のフロー図である。
【図１】
0004745717.tif 000002
【図２】
0004745717.tif 000003
【図３】
0004745717.tif 000004
【図４】
0004745717.tif 000005
【図５】
0004745717.tif 000006
【図６】
0004745717.tif 000007
【図７】
0004745717.tif 000008
【図８】
0004745717.tif 000009
【図９】
0004745717.tif 000010
【図１０】
0004745717.tif 000011
【図１１】
0004745717.tif 000012
【図１２】
0004745717.tif 000013
【図１３】
0004745717.tif 000014
【図１４】
0004745717.tif 000015
【図１５】
0004745717.tif 000016
【図１６】
0004745717.tif 000017
【図１７】
0004745717.tif 000018
【図１８】
0004745717.tif 000019
【図１９】
0004745717.tif 000020
【図２０】
0004745717.tif 000021
【図２１】
0004745717.tif 000022
【図２２】
0004745717.tif 000023
【図２３】
0004745717.tif 000024