JP5254005B2 - 協調的招待システムおよび方法 - Google Patents

協調的招待システムおよび方法 Download PDF

Info

Publication number
JP5254005B2
JP5254005B2 JP2008508819A JP2008508819A JP5254005B2 JP 5254005 B2 JP5254005 B2 JP 5254005B2 JP 2008508819 A JP2008508819 A JP 2008508819A JP 2008508819 A JP2008508819 A JP 2008508819A JP 5254005 B2 JP5254005 B2 JP 5254005B2
Authority
JP
Japan
Prior art keywords
invitation
collaborative
contact
service
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2008508819A
Other languages
English (en)
Other versions
JP2008539504A (ja
JP2008539504A5 (ja
Inventor
マニオン,トッド・アール
ターラー,ディヴィッド・ジー
グプタ,ロヒット
シングハル,サンディープ・ケイ
ラオ,ラヴィ・ティー
ウェイスバーグ,トマー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2008539504A publication Critical patent/JP2008539504A/ja
Publication of JP2008539504A5 publication Critical patent/JP2008539504A5/ja
Application granted granted Critical
Publication of JP5254005B2 publication Critical patent/JP5254005B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • G06F16/2448Query languages for particular applications; for extensibility, e.g. user defined types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Telephonic Communication Services (AREA)
  • Credit Cards Or The Like (AREA)
  • Stored Programmes (AREA)

Description

本発明は、一般的には、ネットワーク型計算環境に関し、更に特定すれば、ネットワーク型計算環境における協調(collaboration)の促進に関する。
ネットワーク型計算環境は、作業場や家庭においても珍しくない機構となっている。これらの環境は、電子メール、インスタント・メッセージング、マルチメディア文書サーバ、ディスカッション・グループ、ならびにストリーミング・オーディオおよびビデオ、更には没入型対話感覚環境(immersive interactive sensory environment)を含む種々の通信モードを容易にする。従来のソフトウェア・アプリケーションは、これら豊富な通信モードを利用し始めているが、統合化および伸張可能なコンピュータ化協調プラットフォームの視点から考慮すると、各々には限界および/または欠点がある。
従来のコンピュータ・ソフトウェア・アプリケーションの中には、協調サービスの形態を提供するものもあるが、協調者(collaborator)に有効なアクセスを与えることができていない。協調者に対するアクセスが厄介であったり、および/または制限されていると、協調への加入(initiation)に対する障壁となる可能性があり、それ以外の機能的な協調ツールの使用が妨げられる。効果的でない協調者へのアクセスには、従来のソフトウェア・アプリケーションが事実上現況の物理的および/または仮想場所を認識できないという一面がある。また、一部の従来のソフトウェア・アプリケーションが協調的機能性に関する互換性を事実上認識できないという別の一面もある。
個々にリリースされる協調的サービスの形態を提供する従来のソフトウェア・アプリケーションの機能における欠陥を克服することができないため、従来のソフトウェア・アプリケーションの一部は、伸張可能な協調プラットフォーム、フレームワーク、および/またはアーキテクチャに対する準備ができてきない。これは、些細な障害ではない。効果的なアーキテクチャであれば、長年続けて使用することができ、何百万ものノードを有するネットワーク計算環境に組み込むことができる。確立されているアーキテクチャに拡張性、柔軟性、保守性、および/またはスケーラビリティ(scalability)が欠けることは、1つのソフトウェア製品のリリースに対するよりも、遥かに重大な問題となる虞れがある。
この章では、本発明の実施形態の一部について、簡略化した摘要を紹介する。この摘要は、本発明の広い全体像ではない。本発明の鍵となる/なくてはならない要素を特定することや、発明の範囲を正確に叙述することは意図していない。その唯一の目的は、後に提示する更に詳細な説明に対する序論として、簡略化した形態で、本発明の実施形態の一部を紹介することである。
本発明の一実施形態では、1つ以上のコンタクトを、グラフィカル・ユーザ・インターフェース(GUI)のような招待ユーザ・インターフェースによって選択することができる。協調的活動に参加するための招待は、招待ユーザ・インターフェースから、または協調的アプリケーション、例えば、協調的活動を促進する協調的アプリケーションから、選択したコンタクトに発送することができる。招待を招待ユーザ・インターフェースまたは協調的アプリケーションのどちらから発送するかは、設定可能な選択肢である。招待を招待ユーザ・インターフェースから発送する場合、協調的アプリケーションを起動し、次いで招待ユーザ・インターフェースから招待を発送することができる。招待を協調的アプリケーションから発送する場合、協調的アプリケーションを起動し、次いで協調的アプリケーションから招待を発送することができる。
本発明の実施形態では、協調的アプリケーションに参加するための招待は、例えば、協調的サービス・プラットフォームによって受信することができる。協調的サービス・プラットフォームのユーザには、招待に応答して、受入、断り、および無視の内1つを選択する機能(ability)と共に、招待を紹介することができる。ユーザは、招待を受け入れる、断る、または明示的に無視することを選択することができ、ユーザの選択を示す応答を、招待の発送元に送ることができる。
本発明の実施形態では、協調的招待サービスのアプリケーション・プログラミング・インターフェースは、招待エレメント、招待発送エレメント、招待応答エレメント、および招待取り消しエレメントを含む。招待エレメントは、協調的活動に参加するための招待に対応する招待データへのアクセスを与えることができる。招待発送エレメントは、招待を1つ以上のコンタクトに発送するために用いることができる。招待応答エレメントは、協調的招待に応答するために用いることができ、招待取り消しエレメントは、発行した招待を取り消すために用いることができる。
添付した特許請求の範囲は、発明の特徴を特定的に明記するが、本発明およびその利点は、添付図面と関連付けた以下の詳細な説明から最良に理解することができる。
本発明の種々の実施形態の説明を進める前に、本発明の種々の実施形態を実用化することができるコンピュータについて、ここで説明しておく。必須ではないが、本発明の説明は、全体的に、コンピュータが実行するプログラム・モジュールのような、コンピュータ実行可能命令に関して行う。一般に、プログラムは、ルーチン、オブジェクト、コンポーネント、データ構造等を含み、特定のタスクを実行するか、または特定の抽象的データ・タイプを実現する。「プログラム」という用語は、ここで用いる場合、1つのプログラム・モジュールまたは一緒に作用する多数のプログラム・モジュールを暗示する。「コンピュータ」および「計算デバイス」という用語は、ここで用いる場合、パーソナル・コンピュータ(PC)、ハンドヘルド・デバイス、マルチ・プロセッサ・システム、マイクロプロセッサ系プログラマブル消費者用電子製品、ネットワークPC、ミニコンピュータ、タブレットPC、ラップトップ・コンピュータ、マイクロプロセッサまたはマイクロコントローラを有する消費者用器具、ルータ、ゲートウェイ、ハブ等のような、1つ以上のプログラムを電子的に実行するあらゆるデバイスを含む。また、本発明は、分散型計算環境においても採用することができ、その場合、通信ネットワークを通じてリンクされているリモート処理デバイスによってタスクを実行する。分散型計算環境では、プログラムは、ローカルおよびリモートメモリ記憶デバイス双方に位置することもできる。
図1を参照すると、ここに記載する発明の形態を実施することができるコンピュータ102の基本的構成の一例が示されている。その最も基本的な構成では、コンピュータ102は、通例、少なくとも1つの演算装置104およびメモリ106を含む。演算装置104は、本発明の種々の実施形態にしたがってタスクを遂行する命令を実行する。このようなタスクを遂行する際、演算装置104は、電子信号をコンピュータ102の別の部分、およびコンピュータ102外部のデバイスに送り、何らかの結果を出させる。コンピュータ102の正確な構成および形式に応じて、メモリ106は、(RAMのような)揮発性、(ROMまたはフラッシュ・メモリのような)不揮発性、またはこれら2つの何らかの組み合わせとすることができる。図1では、この最も基本的な構成を破線108で示す。
また、コンピュータ102は、更に別の機構/機能性も有することができる。例えば、コンピュータ102は、限定ではないが、磁気または光学的ディスクまたはテープを含む、追加のストレージ(リムーバブル110および/または非リムーバブル112)も含むことができる。コンピュータ記憶媒体は、揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体を含み、コンピュータ実行可能命令、データ構造、プログラム・モジュール、またはその他のデータを含む情報の記憶のためのいずれの方法または技術でも実現できる。コンピュータ記憶媒体は、限定ではなく、RAM、ROM、EEPROM、フラッシュ・メモリ、CD−ROM、ディジタル多様ディスク(DVD)またはその他の光ディスク・ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージまたはその他の磁気記憶デバイス、あるいは所望の情報を格納するために用いることができしかもコンピュータ102がアクセス可能なその他のいずれの媒体も含む。このようなコンピュータ記憶媒体のいずれもが、コンピュータ102の一部をなすことができる。
好ましくは、コンピュータ102は、デバイスに、リモート・コンピュータ116のような、他のデバイスと通信させる、通信接続部114も内蔵する。通信媒体は、通例、コンピュータ読み取り可能命令、データ構造、プログラム・モジュール、またはその他のデータを、搬送波またはその他の移送機構のような変調データ信号において具体化し、あらゆる情報配信媒体を含む。限定ではなく一例として「通信媒体」という用語は、音響、RF、赤外線、およびその他のワイヤレス媒体というようなワイヤレス媒体を含む。「コンピュータ読み取り可能媒体」という用語は、ここで用いる場合、コンピュータ記憶媒体および通信媒体双方を含む。
また、コンピュータ102は、キーボード/キーパッド、マウス、ペン、音声入力デバイス、接触入力デバイス等のような入力デバイス118も有することができる。ディスプレイ、スピーカ、プリンタ等のような出力デバイス120も含むことができる。これらのデバイスは全て当技術分野では周知であり、ここで詳細に説明する必要はない。
以下に続く説明では、特に明記していない限り、1つ以上の計算デバイスが実行する動作のアクト(act)および象徴的表現を参照しながら、本発明について述べる。したがって、このようなアクトおよび動作は、コンピュータが実行するものとして言及する場合もあり、構造化した形態でデータを表す電気信号の、コンピュータの演算装置による操作を含むことは言うまでもない。この操作は、データを変形し、またはそれをコンピュータのメモリ・システムにおける場所に維持し、当業者には良くわかっているやり方でコンピュータ動作の設定変更またはそれ以外の変更を行う。データを維持するデータ構造は、メモリの物理的な場所であり、データのフォーマットによって定義される特定のプロパティを有する。しかしながら、本発明を以上の文脈で記載しているが、当業者には認められるように、限定を意図するのではなく、以下に記載する種々のアクトおよび動作は、ハードウェアで実施してもよい。
本発明の実施形態では、コンピュータ・ソフトウェアのアーキテクチャが、伸張性、柔軟性、保守性、および拡張性がある協調プラットフォームを規定する。アーキテクチャの形態は、適したネットワーク型計算環境に組み込むことができる。アーキテクチャは、従来のコンピュータ・ソフトウェア・アプリケーションと統合した協調を可能とし、および/または拡張することができる。即ち、このアーキテクチャは、総合的な協調的コンタクト管理に備えることができ、ネットワーク型計算環境における現在のコンタクトのプレゼンス(presence)、そして、例えば、利用可能な協調的活動に関する現在のコンタクト能力(contact capabilities)を含む。
図2は、本発明の実施形態を組み込むのに適したネットワーク型計算環境例200を示す。このネットワーク型計算環境では、ネットワーク202は、コンピュータ204、206、および208をネットワーク・ハブ210と通信するように接続する。ネットワーク202は、ローカル・エリア・ネットワーク(LAN)、都市エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、個人エリア・ネットワーク(PAN)、またはその組み合わせとすることができる。ネットワーク202は、ハブ、ゲートウェイ、ルータ、ブリッジ、ポート等のように、適したネットワーク構成機器であればいずれでも、そして適したコンピュー読み取り可能媒体であればいずれでも組み込むことができる。例えば、コンピュータ204、206、208およびネットワーク・ハブ210は、各々、コンピュータ102(図1)のインスタンスとすることもできる。
ネットワーク・ハブ210は、コンピュータ212、214および216を通信するように接続する。ネットワーク・ハブ210ならびにコンピュータ212、214および16は、全体で、サブネットワーク即ちサブネット218の一例と見なすことができるが、勿論、限定的な例ではない。コンピュータ212、214および216は、同じサブネット上にあるとは言わず、その結果、互いに対して特権ネットワーク通信(privileged network communication)を享受することができる。例えば、各コンピュータ204、206、208、212、214および216は、二点間型メッセージを各他のコンピュータ204、206、208、212、214および216に送ることができるが、サブネット218は、サブネット218におけるブロードキャスト型メッセージをサブネット218におけるこれらのコンピュータ212、214および216が受信するように構成することもできる。
協調プラットフォームの伸張性、柔軟性、保守性、および/または拡張性(scalable)がある属性は、そのモジュール構造の1つ以上の側面、その全体としてもモジュール状構造、モジュールの1つずつ同士の双方向処理モード、および/または全体としてのモジュール状構造の双方向処理パターンから得ることができる。図3は、本発明の実施形態によるコンピュータ・ソフトウェア・アーキテクチャ例300を示す。アーキテクチャ300の各側面は、各コンピュータ204、206、208、212、214および216(図2)に設けることができるが、本発明の各実施形態はそのように限定されるのではない。アーキテクチャ300の側面は、全体的にネットワーク型計算環境200を含む、ネットワーク型計算環境200のいずれの適した部分集合を跨いででも、相応しく分散することができる。アーキテクチャ300の異なるバージョンを異なるコンピュータ毎に設けてもよく、アーキテクチャ300の各バージョンが、アーキテクチャ300の他の各バージョンとの互換性を有する度合いは様々であってよい。
アーキテクチャ300は、協調サービス・プラットフォーム302を含むことができる。協調サービス・プラットフォーム302は、コンタクト管理サービス304、公開サービス(publication service)306、シグナリング・サービス308、活動サービス310、データ共有サービス312、認証サービス314、および接続性サービス316を含むことができる。コンタクト管理サービス304は、コンタクト・ストア318、プレゼンス・ストア320、およびコンタクト場所サービス322を含むことができる。公開サービス306は、同期サービス324を含むことができる。シグナリング・サービス308は、招待サービス326を含むことができる。活動サービス310は、オーディオ/ビジュアル(A/V)サービス328を含むことができる。接続性サービス316は、ピア・ツー・ピア(P2P)サービス330、ならびに従来のトランスポート制御プロトコルおよびインターネット・プロトコル(TCP/IP)スタック332を含むことができる。各サービス304、306、308、310、312、314、316は、サービスを実施するメッセージを発送および受信することができるピアを含むこと、および/またはその中に組み込むことができる。
本発明の一実施形態では、コンタクト管理サービス304は、協調者(collaborator)、即ち、協調的サービス・プラットフォーム302のユーザへの有効なアクセスを与える。例えば、コンタクト管理サービス304は、協調的サービス・プラットフォーム302のユーザの一部または全部に対して、コンタクト情報を提供することができる。コンタクト管理サービス304は、1つ以上のデータ・ストアに、コンタクトのデータベースを維持することができる。各コンタクトは、潜在的な協調者となることができる、即ち、協調サービス・プラットフォームのユーザが、各コンタクトにより、1つ以上の協調活動に関与しようとすることができる。コンタクト管理サービス304は、グラフィカル・ユーザ・インターフェース(GUI)を含む、1つ以上のユーザ・インターフェースを設けることができ、例えば、ユーザが選択するためにコンタクトを呈示し、ユーザが個々のコンタクトに関して協調サービス・プラットフォーム302の行動(action)を呼び出すことができるようにする。
コンタクト・ストア318は、コンタクト・オブジェクトおよび"MeContact"オブジェクト(図4を参照して以下で更に詳しく説明する)を格納することができる。プレゼンス・ストア320は、コンタクト・オブジェクトに対するプレゼンス・オブジェクト(図4を参照して以下で更に詳しく説明する)を格納することができる。本発明の実施形態では、プレゼンス・データはコンタクト・データよりも頻繁に変化するので、オブジェクトの異なる更新頻度に合わせて、別個のデータ・ストア318、320を最適化するとよい。
コンタクト場所サービス322は、所与のコンタクトに関して、種々の場所データの内1つ以上を提供することができる。物理的近接度がコンタクト場所の一形態とすることができ、例えば、物理的場所に対して1つ以上のプロキシを利用して、ユーザからコンタクトの物理的距離を推定することができる。無線受信機における信号強度は、物理的距離プロキシの一例である。仮想場所は、コンタクト場所の別の形態とすることができる。例えば、コンタクトは、図2のネットワーク202のように、1つ以上のネットワークにおいて、および/またはコンピュータ204、206、208、212、214、および216のような1つ以上のネットワークノードにおいてアクティブであってもよい。加えて、コンタクトをインアクティブで登録すること、オンラインであるが発見されないこと、またはその他の何らかの相応しい場所的ステータス(locative status)を有することもできる。コンタクト場所サーバ322は、適した登録所に問い合わせこと、および/または、例えば、ピア・ツー・ピア探索またはピア・ツー・ピア名称解明メカニズムを開始して、個々のコンタクトを突き止めることもできる。
公開サービス306は、コンタクトが公開したデータに対するアクセスを与えることができる。本発明の実施形態では、関心のあるユーザは、コンタクトが公開するオブジェクトに申し込み、公開したオブジェクトが公開元のコンタクトによって更新されるときにはいつでも通知を受信することができる。同期サービス324は、公開申し込みのデータベース維持を責務とすることができる。即ち、公開サービス2ー6は、コンタクトが公開するプレゼンス情報に対するアクセスを与えることができる。
シグナリング・サービス308は、ネットワーク型計算環境200(図2)内にいるコンタクト間における協調的会議の設定(establishment)および終了、そして進行中の会議のパラメータ更新に備えることができる。本発明の実施形態では、協調的会議の設定、更新、および終了は、公開/申し込みセマンティックス(semantics)に応じて行われる。本発明の一実施形態では、シグナリング・サービス308は、Handley et al., "SIP: Session Initiation Protocol"(セッション開始プロトコル)、Internet Engineering Task Force (IETF) Request for Comments (RFC) 2543, March 1999のような、セッション開始プロトコル(SIP)の一実現例を組み込む。
招待サービス326は、招待および関係するメッセージをコンタクトに発送すること、およびコンタクトから発送することを可能にする。例えば、ネットワーク型計算環境200(図2)に1つのコンピュータ212からアクセスしているシステム・ユーザが、他のいずれかのコンピュータ204、206、208、212、214および/または216におけるコンタクトを、協調的活動に参加することを招待することができる。招待サービス326は、コンタクト場所サービス322を利用して、コンタクトを突き止め、招待を配信することができる。招待サービス326は、招待の詳細を被招待者に呈示するため、そして被招待者が招待を受け入れる、断る、および/または明示的に無視することができるようにするために、グラフィカル・ユーザ・インターフェース(GUI)のような種々のインターフェースを含むことができる。招待サービス326の一例について、図13を参照して以下で更に詳しく説明する。
活動サービス310は、協調的活動を実施すること、および/または協調的アプリケーションの協調サービス・プラットフォーム302への統合のためのサポートを設けることができる。例えば、活動サービス310は、従来の協調アプリケーションに、協調サービス・プラットフォーム302に準拠したアプリケーション・プログラミング・インターフェース(API)を提供することができる。準拠するAPIは、活動能力に関して個々のコンタクトまたはコンピュータ204、206、208、212、214、216(図2)に問い合わせを行い、アプリケーション特定の招待要件を確認する機能性を含むことができる。オーディオ/ビジュアル・サービス328は、活動サービス310への組み込みに適した協調活動の一例である。
データ共有サービス312は、ファイル、文書、ストリーム、およびオブジェクトを含む、あらゆる適したフォーマットのデータの共有を可能にすることができる。データ共有サーバ312は、データ転送、データ複製、および/またはデータ同期に備えることができる。コンタクト、活動への参加、会議への参加、および/またはネットワーク型計算環境200(図2)のユーザ・グループのような、あらゆる適したアクセス制御リスト(ACL)に基づいて、データ共有をイネーブルおよびディスエーブルすることができる。
認証サービス314は、認証証明書、例えば、コンタクトおよびその他の活動ならびに会議参加者に対する認証証明書を発行し検証することができる。認証サービス314は、コンタクトを信頼できるコンタクトと信頼できないコンタクトとに分類することを可能にする。認証サービス314は、コンタクトの場所とは無関係に、および/または洗練されたネットワーク型計算環境200(図2)の存在に応じて、コンタクトを信頼できるものにすることができる。
本発明の実施形態では、接続性サービス216は、ネットワーク型計算環境200(図2)全域において、例えば、コンピュータ212における第1シグナリング・サービス308のインスタンスとコンピュータ208における第2シグナリング・サービス308のインスタンスとの間で、協調サービス・プラットフォーム302のサービス・インスタンス間の通信を可能にする。接続性サービス316の通信設備は、アプリケーション・プログラミング・インターフェース(API)によって利用可能にすることができるので、他の協調サービス・プラットフォーム302のサービス304、306、308、310、312、314は、基礎のトランスポート・メカニズムには関係なく、インスタンス間で通信することができる。
接続性サービス316は、TCP/IPスタック332および/または、Microsoft(R) Windows(R) Sockets 2 (Winsock) APIのような、それよりも上位の通信アプリケーション・プログラミング・インターフェースを含むことができる。これは、2005年3月付けのMicrosoft Developer Network (MSDN(R)) LibraryのWindows (R) Sockets 2 sectionに記載されている。ピア・ツー・ピア(P2P)サービス330は、ネットワーク計算環境200のオーバーレイ・ネットワークにおいて接続性を提供することができる。例えば、ピア・ツー・ピア・サービス330は、2005年3月付けのMicrosoft Developer Network (MSDN(R))におけるMicrosoft(R) Windows(R) Platform Software Development Kit (SDK) のWindows(R) Platform Networking sectionに記載されているピア・ツー・ピア・アプリケーション・プログラミング・インターフェースに応じて設けることができ、グラフ作成、グループ作成、アイデンティティ・マネージャ、およびピア名称解明プロトコル(PNRP)名称空間(namespace)プロバイダ・アプリケーション・プログラミング・インターフェースを含む。
サービス304、306、308、310、312、314、および316は、協調オブジェクト・モデルにおいて相互に関係付けられた1組の協調オブジェクトを含む、1組のプログラム・オブジェクトによって実施することができる。図4は、本発明の実施形態による1組の協調オブジェクトの一例および協調オブジェクト・モデル400の一例を示す。協調オブジェクト・モデル400は、コンタクト・オブジェクト402、プレゼンス・オブジェクト404、MeContactオブジェクト406およびMyPresenceオブジェクト408、終点オブジェクト414、活動オブジェクト416、ならびに公開オブジェクト418を含むことができる。勿論、協調サービス・プラットフォーム302は、協調オブジェクト402、404、406、408、410、412、414、416および418の各タイプの多くのインスタンスを含むことができる。
コンタクト・オブジェクト402は、協調的参加者、および/または協調的サービス・プラットフォーム302(図3)のユーザを表すのに適した属性を組み込むことができる。即ち、コンタクト・オブジェクト402は、協調的プレゼンス、例えば、ネットワーク型計算環境200(図2)におけるコンタクトのプレゼンスを参照することができる。本発明の実施形態では、コンタクト・オブジェクト402は、プレゼンス・オブジェクト404のインスタンスを参照することによって、協調的プレゼンスを参照する。コンタクト・オブジェクト402の一例については、図5を参照して以下で更に詳しく説明する。
プレゼンス・オブジェクト404は、協調的プレゼンス、例えば、個々の協調サービス・プラットフォーム302のユーザが近い過去におけるいずれかの時点でアクティブになっているネットワーク型計算環境200の1組のコンピュータ204、206、208、212、214、および/または216(図2)を表すのに適した属性を組み込むことができる。ここで、「近い」過去(recent past)は、協調的文脈(collaborative context)によっては、秒から時間、日、そして年単位までも変化する場合もある。プレゼンス・オブジェクト404は、ネットワーク型計算環境200の場所を表す、1つ以上の終点オブジェクト410のインスタンスを参照することができる。例えば、終点オブジェクト410はネットワーク型計算環境200のオーバーレイ・ネットワークにおけるピアに対応することができるので、終点オブジェクト410は、1対1で、ネットワーク型計算環境200のコンピュータ204、206、208、212、214、216と対応する必要はない。
更に、プレゼンス・オブジェクト404は、例えば、1つ以上の協調的終点における協調的能力、および/またはプレゼンス・オブジェクト404と関連のある一部または全部の終点に跨る総計協調的能力を表す、0以上の能力オブジェクト412のインスタンスも参照することができる。加えて、プレゼンス・オブジェクト404は、0以上の公開オブジェクト418のインスタンスも参照することができる。プレゼンス・オブジェクト404の一例については、図16を参照して以下で更に詳しく説明する。公開オブジェクト418の一例については、図7を参照して以下で更に詳しく説明する。能力オブジェクト412の一例については、図8を参照して以下で更に詳しく説明する。
MeContactオブジェクト406は、コンタクト・オブジェクト402の一タイプとすることができ、コンタクト・オブジェクト402の属性および挙動を多形的に継承することができる。MeContactオブジェクト406は、協調サービス・プラットフォームのユーザ自身のコンタクト情報が、他のユーザのコンタクト情報に関して行うことができる特殊な役割のために、コンタクト・オブジェクト402とは差別化するとよい。例えば、MeContactオブジェクト406は、その特定のユーザの既知の協調的コンタクトを表す0以上のコンタクト・オブジェクト402のインスタンスを参照することができる。MeContactオブジェクト406は、例えば、他のMeContactオブジェクト406のインスタンスを参照する必要はない。本発明の実施形態では、こうして、不要な複雑さを回避し、協調サービス・プラットフォーム302(図3)の伸張性、柔軟性、維持性、および/または拡張性に寄与する。
MeContactオブジェクト406は、更に、MyPresenceオブジェクト408のインスタンスも参照することができる。MyPresenceオブジェクト408は、プレゼンス・オブジェクト404の一タイプとすることができ、プレゼンス・オブジェクト404の属性および挙動を多形的に継承することができる。この場合も、MyPresenceオブジェクトは、協調サービス・プラットフォームのユーザ自身のプレゼンスが、他のユーザのプレゼンスに対して行うことができる特殊な役割のために、プレゼンス・オブジェクト404とは差別化するとよい。例えば、本発明の実施形態では、ユーザは彼ら自体のMyPresenceオブジェクト408を明示的に更新することができるが、他のユーザのプレゼンス・オブジェクト404のインスタンスを明示的に更新することはできない。
加えて、MeContactオブジェクト406は、MeContactオブジェクト406と関連があるユーザが、他の協調サービス・プラットフォームのユーザと共に、現在および/または最近参加している協調的会議を表す0以上の会議オブジェクト414のインスタンスを参照することができる。会議オブジェクト414は、協調的活動を表す1つ以上の活動オブジェクト416のインスタンスを参照することができる。本発明の実施形態では、会議オブジェクト414は、活動オブジェクト416の一タイプであり、活動オブジェクト416の属性および挙動を多形的に継承することができる。活動オブジェクト416の一タイプであることの結果、会議オブジェクト414が参照する活動オブジェクト416のインスタンスは、会議オブジェクト414のインスタンスとなることもできる。MeContactオブジェクト406の一例については、図9を参照して以下で更に詳しく説明する。会議オブジェクト414の一例については、図10を参照して以下で更に詳しく説明する。
各協調的オブジェクト402、404、406、408、410、412、414、416および418は、協調的オブジェクト402、404、406、408、410、412、414、416および418のインスタンスを作成および削除するため、ならびに協調的オブジェクト402、404、406、408、410、412、414、416および418の属性の相応しい問い合わせおよび操作のために、アプリケーション・プログラミング・インターフェースを提供することができる。本発明の実施形態では、協調的オブジェクト402、404、406、408、410、412、414、416および418が他の協調的オブジェクト402、404、406、408、410、412、414、416および418を参照するように記載する場合、参照されるオブジェクト、またはそのコピーは、代わりに、参照するオブジェクトに組み込むこと、またはこれと統合することもできる。1つのプログラム・オブジェクトは、適したプログラム参照メカニズムであればいずれを用いても、他のプログラム・オブジェクトを参照することができる。適したプログラム参照メカニズムは、ポインタ、明示的参照、関連するハッシュ・コードおよびその同等物、ならびにこの目的のために特別に設計したプログラム言語の機構を含む。
図4を参照して先に紹介したプログラム・オブジェクト402、404、406、408、410、412、414、416および418について、これより更に詳細に説明する。各プログラム・オブジェクト402、404、406、408、410、412、414、416および418は、1つ以上のアプリケーション・プログラミング・インターフェース・エレメントを含むことができる。各アプリケーション・プログラミング・インターフェース・エレメントは、協調サービス・プラットフォーム302(図3)のサービスを含む、コンピュータ102(図1)のシステム・コンポーネントが、プログラム・オブジェクト402、404、406、408、410、412、414、416および418を構成および制御し、これらと双方向処理するやり方を指定する1つ以上のインターフェース仕様を含むことができる。当業者には明白であろうが、インターフェース仕様は、オブジェクト属性仕様、変数仕様、関数コール仕様、プログラム・オブジェクト仕様、要求/応答メッセージ対のようなメッセージ仕様、および/またはその他のあらゆる相応しいプログラミング・インターフェース仕様を含むことができる。
図5は、本発明の実施形態によるコンタクト・オブジェクト500の一例を示す。コンタクト・オブジェクト500は、協調オブジェクト・モデル400(図4)に組み込むのに適している。コンタクト・オブジェクト500は、名称エレメント502、プレゼンス・エレメント504、バディ・フラグ・エレメント(buddy flag element)506、および近接エレメント508を含む、アプリケーション・プログラミング・インターフェース・エレメントを組み込むことができる。
名称エレメント502は、コンタクト・オブジェクト500と関連のあるコンタクトに対する親しみやすい名称を含むことができる。親しみやすい名称は、例えば、リッチ・テキスト・ストリングとしてエンコードすることができる。プレゼンス・エレメント504は、プレゼンス・オブジェクト404(図4)のインスタンスに対する参照を含むことができる。
バディ・フラグ・エレメント506は、コンタクト・オブジェクト500と関連のあるコンタクトが「バディ」(仲間)クラス・コンタクト(buddy class contact)に分類されていることのインディケータを含むことができる。バディに分類されたコンタクトは、種々の点で特権を得ることができる。例えば、バディは信頼できるコンタクトとなることができ、バディには、優先権、例えば、招待の優先権を与えることができ、協調サービス・プラットフォームのユーザが、例えば、プレゼンス・データのために申し込む1組のコンタクトに、バディを自動的に含むことができる。バディ・クラス・コンタクトは、通常のコンタクトよりも計算上費用が嵩むこともあり、その数は、例えば、バディ・フラグ・アプリケーション・プログラミング・インターフェース・エレメント506に埋め込まれた検査によって、制限するとよい。
近接エレメント508は、物理的近接メトリックおよび/または仮想的近接メトリックを含むことができる。例えば、物理的近接メトリックは、ワイヤレス・ネットワーク・インターフェースにおいて受信する信号強度の尺度とすることができる。勿論、近接アプリケーション・プログラミング・インターフェース・エレメント508を、近接クエリに応答する1つのメトリックに限定する必要はない。例えば、近接クエリは、生の近接メトリック、時間平均近接メトリック、量子化近接メトリック(「信号強度バー」)、および/またはその他の適した近接メトリックであればいずれでも要求することができる。
図6は、本発明の実施形態によるプレゼンス・オブジェクト600の一例を示す。プレゼンス・オブジェクト600は、協調オブジェクト・モデル400(図4)に組み込むのに適している。プレゼンス・オブジェクト600は、リッチ・テキスト記述エレメント602、終点エレメント604、総計ステータス・エレメント606、総計能力エレメント608、公開オブジェクト・エレメント610、新活動招待エレメント612、既存活動招待エレメント614、タイプ別発見能力エレメント616、タイプ別公開オブジェクト発見エレメント618、および公開オブジェクト・エレメント620を含む、アプリケーション・プログラミング・インターフェース・エレメントを組み込むことができる。
リッチ・テキスト記述エレメント602は、プレゼンス・オブジェクト600と関連のあるネットワーク型計算環境200(図2)のプレゼンスを記述するリッチ・テキスト・ストリングを含むことができる。単純な例では、「現在建物9にいる」、「Halo(R)、レベル4の再生」、および「利用不可」が含まれる。終点エレメント604は、アクティブな協調的終点、最近アクティブになった協調的終点、および/または1つ以上の協調的活動においてアクティブな参加者となることができる1組の協調的終点を含むことができる。適した協調的終点の例には、コンピュータ204、206、208、212、214および216、ならびにネットワーク型計算環境200のオーバーレイ・ネットワークのピアが含まれる。
総計ステータス・エレメント606は、1組の協調的終点を跨ぐ協調的プレゼンスを表す、総計プレゼンス・ステータス・インディケータを含むことができる。各協調的終点は、関連するプレゼンス・ステータス、例えば、ONLINE、AWAY、OUT TO LUCH、BE RIGHT BACK、IDLE、ON THE PHONE、またはBUSYを有することができる。1組の終点に関連する総計プレゼンス・ステータスは、その1組の中にある終点のいずれの1つに関連するステータスと同一である必要はない。総計プレゼンス・ステータスが組における終点の少なくとも1つと同一であっても、1つ以上の他の終点とは異なっていてもよい。
総計プレゼンス・ステータスは、種々の総計プレゼンス・ステータス・アルゴリズムの1つ以上によって判定することができる。プレゼンス・ステータスのレベルを格付けすることもでき、総計ステータスを1組の終点における最も高い格付けのステータスに設定することができる。総計ステータスは、個々のステータス値の加重平均、あるいは個々のステータス値のその他の適した線形または非線形の変形としてもよい。また、個々のステータス値は、変換の前に、相応しく並び換えしておくとよい。利用する総計プレゼンス・ステータス・アルゴリズムは、1組における個々の終点の数によって異なってもよい。
総計能力エレメント608は、協調的プレゼンスに関連する総計能力の集合体を含むことができる。協調的プレゼンスにおける個々の各終点には、1組の能力、例えば、協調的活動に関する能力を関連付けることができる。総計能力は、個々の終点の各々の能力の各々の単なる総計であってもよい。一方、総計能力の集合体を、個々の終点の各々にある能力に限定してもよい。更に洗練した総計能力判定アルゴリズムのように、これら両極端の組み合わせも可能である。例えば、総計能力の集合体は、あるいは個々の終点の能力の加重平均プロセス、あるいはその他の適した線形または非線形変換の結果とすることもできる。加えて、総計能力の格付けまたは割合を、総計能力の集合体における各能力に関連させてもよい。
公開オブジェクト・エレメント610は、協調的プレゼンスと関連のある公開オブジェクトの集合体を含むことができる。能力オブジェクト412(図4)は、公開オブジェクト418の一タイプとすることができるが、これら2つは、能力オブジェクト412のインスタンスと関連のある能力が通例長寿命である(例えば、日、週、または年単位のこともある)のに対して、基本公開オブジェクト418のインスタンスと関連のある公開データは通例寿命であるという相違がある。この相違は、コンピュータ・システムの性能を最適化するために利用することができる。
新活動招待エレメント612は、協調サービス・プラットフォーム302(図3)のユーザが、プレゼンス・オブジェクト600と関連のあるコンタクトを、新しい協調的活動に参加するように招待することを可能にする。つまり、活動をホストする関連の会議が既に存在せず、招待が受け入れられれば、作成することができる。招待は、終点エレメント604が参照する各終点、ONLINEプレゼンス・ステータスと関連のある終点のみに配信することができ、招待は、協調的プレゼンスと関連のある各終点に、ある順序で、例えば、順序における各終点に伴うプレゼンス・ステータスによって決定した順序で、またはその他の適した招待配信計画によって配信することができる。
コンタクトに既存の会議および/または活動に加入するように招待する場合、既存の活動アプリケーション・プログラミング・インターフェース・エレメント614への招待が好ましい場合がある。会議および/または活動が既に確立されている場合、一部の協調的パラメータを流通可能にしなくてもよく、または流通し難くする、例えば、現在の参加者による使用において協調的パラメータによって決定される範囲内でのみ流通可能にしてもよい。加えて、柔軟性を低下させると、参加の資格が得られる、したがって招待を受ける候補となるプレゼンスの終点を制限することができる。
タイプ別発見能力エレメント616は、協調サービス・プラットフォーム302(図3)のユーザが、プレゼンス・オブジェクト600と関連のあるプレゼンスに、複数の能力タイプの1つ以上と関連のある能力について問い合わせることを可能にする。能力タイプの例には、チャット、オーディオ、およびビデオのようなアプリケーション・タイプ、オーディオ出力、オーディオ入力、ビデオ出力、ビデオ入力のようなアプリケーション能力、帯域幅、オーディオ品質、およびビデオ解像度のような終点リソース、あるいはあらゆる適した協調的能力タイプが含まれる。タイプ別発見能力エレメント616は、問い合わせに対して、個々の終点の能力および/または総計プレゼンス能力で応答することができる。
タイプ別公開オブジェクト発見エレメント618は、協調サービス・プラットフォーム302(図3)のユーザが、プレゼンス・オブジェクト600と関連のあるプレゼンスに、当該プレゼンスと関連のある公開オブジェクトについて、例えば、公開オブジェクト・エレメント610によってアクセス可能な公開オブジェクトについて問い合わせることを可能にする。公開オブジェクト・タイプは、関連するリッチ・テキスト・ストリングによって判定することができる。例えば、同じリッチ・テキスト・ストリングが関連する公開オブジェクト418(図4)は、同じタイプであると判定することができる。
公開オブジェクト・エレメント620は、プレゼンスに関連するデータの公開を可能にすることができる。例えば、公開オブジェクト・エレメント610によって維持されている1組のプレゼンス・オブジェクトを更新することができる。本発明の実施形態では、公開オブジェクト・アプリケーション・プログラミング・インターフェース・エレメント620を、公開オブジェクト・アプリケーション・プログラミング・インターフェース・エレメント610に組み込むことができる。
図7は、本発明の実施形態による公開オブジェクト700の一例を示す。公開オブジェクト700は、協調オブジェクト・モデル400(図4)への組み入れに適している。公開オブジェクト700は、公認加入者エレメント(authorized subscribers element)702および公開データ・エレメント704を含む、アプリケーション・プログラミング・インターフェース・エレメントを組み込むことができる。
公認加入者エレメント702は、公開オブジェクト700に関連するデータに申し込むことを許可されているコンタクトと関連のある1つ以上のコンタクト・オブジェクト402(図4)のインスタンスを参照することができる。データ・アクセス制御は、木目が粗くてよく、例えば、許可または遮断でよく、あるいは木目を細かくして、データ作成、読み取り、更新、および削除の特権に対する制御を含んでもよい。公開データ・エレメント7084は、公開オブジェクト700に関連する公開データの集合を維持することができる。公開オブジェクト700に関連して、適したデータ集合であればいずれでも公開することができる。
図8は、本発明の実施形態による能力オブジェクト800の一例を示す。能力オブジェクト800は、協調オブジェクト・モデル400(図4)に組み込むのに適している。能力オブジェクト800は、関連するアプリケーション・エレメント802、およびアプリケーション・データ・エレメント804を含むアプリケーション・プログラミング・インターフェース・エレメントを組み込むことができる。
関連アプリケーション・エレメント902は、能力オブジェクト800に関連する能力を実現する1組の協調的アプリケーションに対する参照を含むことができる。アプリケーション・データ・エレメント804は、関連アプリケーション・エレメント802が参照する1組の協調的アプリケーションの各々を構成するために必要なデータ、および/またはデータの仕様を含むことができる。
図9は、本発明の実施形態によるMeContactオブジェクト900の一例を示す。MeContactオブジェクト900は、協調オブジェクト・モデル400(図4)に組み込むのに適している。MeContactオブジェクト900は、コンタクト・エレメント902、バディ・エレメント904、公認加入者エレメント906、アクティブ加入者エレメント908、会議エレメント910、タイプ別能力発見オブジェクト912、およびタイプ別公開オブジェクト発見エレメント914を含む、アプリケーション・プログラミング・インターフェース・エレメントを組み込むことができる。
コンタクト・エレメント902は、MeContactオブジェクト900と関連のある協調サービス・プラットフォーム302(図3)のユーザには分かっているコンタクトと関連のあるコンタクト・オブジェクト402(図4)の1組のインスタンスに対する参照を含むことができる。バディ・エレメント904は、例えば、コンタクト・オブジェクト500のバディ・フラグ・エレメント506(図5)で示すような、協調サービス・プラットフォーム302(図3)のユーザには分かっているコンタクトと関連があり、更にバディ・クラス・コンタクトでもあるコンタクト・オブジェクト402(図4)の1組のインスタンスに対する参照を含むことができる。バディ・エレメント904が参照するコンタクト・オブジェクト402の1組のインスタンス内に単に存在するだけの場合、関連するコンタクトがバディ・クラス・コンタクトであることを示すことができる。コンタクト・エレメント902およびバディ・エレメント904が参照するコンタクト・オブジェクト402の1組のインスタンスは、重複する可能性があるが、少なくとも本発明の実施形態では、この1組は排他的である。
公認加入者エレメント906は、能力データのような、MeContactオブジェクト900に関連する公開データに申し込むことを許可されているコンタクトと関連のあるコンタクト・オブジェクト402(図4)の1組のインスタンスに対する参照を含むことができる。公開データ・アクセス制御は、木目が粗くてもよく、例えば、全ての公開データに対するアクセスを拒否または許可すればよく、あるいは、木目を細かくして、例えば、各公開オブジェクト418、またはその組み合わせに対する許可を作成し、読み取り、更新し、および/または削除するようにしてもよい。
アクティブ加入者エレメント908は、MeContactオブジェクト900と関連がある協調サービス・プラットフォーム302(図3)のユーザによって公開されたデータに対して積極的に(actively)申し込んでいるコンタクトと関連のあるコンタクト・オブジェクト402の1組のインスタンスに対する参照を含むことができる。勿論、アクティブ加入者エレメント908が参照するコンタクト・オブジェクト402のインスタンスは、公認加入者エレメント906が維持する許可に従わなければならない。
会議エレメント910は、MeContactオブジェクト900と関連のある協調サービス・プラットフォーム302(図3)のユーザが現在参加している会議、ユーザが最近参加した会議、および/またはユーザが間もなく参加する会議と関連のある会議オブジェクト414(図4)の1組のインスタンスに対する参照を含むことができる。
タイプ別能力発見オブジェクト912は、協調サービス・プラットフォーム302(図3)のユーザが、MeContactオブジェクトと関連のあるコンタクトに、複数の能力タイプの1つ以上と関連のある能力について問い合わせることを可能にする。例えば、タイプ別能力発見オブジェクト912は、コンタクト・エレメント902、バディ・エレメント904、および/またはMeContactオブジェクト900自体が参照するコンタクト・オブジェクト402(図4)のインスタンスに問い合わせることができる。タイプ別能力発見オブジェクト912は、クエリに対して、個々の終点の能力および/または総計能力で応答することができる。タイプ別公開オブジェクト発見エレメント914は、ユーザが、MeContactオブジェクト900と関連のあるコンタクトに、公開データについて問い合わせることを可能にする。タイプ別能力発見オブジェクト912の場合と同様、タイプ別公開オブジェクト発見エレメント914は、コンタクト・エレメント902、バディ・エレメント904、および/またはMeContactオブジェクト900自体が参照する公開オブジェクト418に問い合わせることができる。
図10は、本発明の実施形態による会議オブジェクト1000の一例を示す。会議オブジェクト1000は、協調オブジェクト・モデル400(図4)に組み込むのに適している。会議オブジェクト1000は、セッション情報エレメント1002、活動エレメント1004、アドミニストレータ・エレメント1006、許可会員エレメント1008、および活動着手エレメント(launch activity element)1010を含むアプリケーション・プログラミング・インターフェース・エレメントを組み込むことができる。
本発明の実施形態では、会議、例えば、会議オブジェクト1000と関連のある会議の役割は、1つ以上の協調サービス・プラットフォーム302(図3)のユーザが参加している1つ以上の協調的活動を組織し、管理し、および/または維持することを含む。セッション情報エレメント1002は、会議レベルのセッション情報を含むことができる。会議レベルにおいて活動レベルのセッション情報を収集することにより、性能の最適化を遂行することができる。活動エレメント1004は、1つ以上の活動オブジェクト416(図4)のインスタンスに対する参照を含むことができる。
アドミニストレータ・エレメント1006は、会議に対してアドミニストレータとして行動することを許可されているコンタクトと関連のある1つ以上のコンタクト・オブジェクト402(図4)のインスタンスを参照することができる。管理運営特権は、許可された参加者および/または活動の追加および除去を含むことができる。許可会員エレメント1008は、会議と関連のある活動に参加することを許可されたコンタクトと関連のある1つ以上のコンタクト・オブジェクト402のインスタンスを参照することができる。許可は、木目が粗くてもよく、例えば、全ての会議活動に参加することを特定のコンタクトに許可または拒否すればよく、あるいは、木目を細かくして、例えば、新たな活動を起動するまたは既存の活動を終了すること、個々の活動に最大限参加すること、または限定的に参加すること(例えば、「オブザーバ・ステータス」)、あるいはこれらの組み合わせに対して許可を付与してもよい。
活動着手エレメント1010は、新たな活動を会議に追加することができる。活動の加入および離脱は、会議、活動、またはこれら2つの組み合わせによって管理することができる。各場合において、会議オブジェクト1000のアプリケーション・プログラミング・インターフェース・エレメントは、アドミニストレータ・エレメント1006および/または許可会員エレメント1008との調和を施行することができる。
例えば、協調サービス・プラットフォーム302(図3)によって、協調オブジェクト・モデル400(図4)に応じて実行する方法の詳細について、これより説明する。図11は、本発明の実施形態にしたがって協調サービス・プラットフォーム302が実行するステップの例を示す。ステップ1102において、コンタクト・オブジェクト402のインスタンスを選択することができる。例えば、コンタクト・ストア318に格納されているコンタクト・オブジェクト402のインスタンスを、コンタクト管理サービス304のユーザ・インターフェースによって選択することができる。
ステップ1104において、選択したコンタクト・オブジェクト402(図4)のインスタンスに、それに関連のあるプレゼンス・オブジェクト404のインスタンスについて問い合わせを行うことができる。例えば、選択したコンタクト・オブジェクト500のプレゼンス・エレメント504(図5)は、関連のあるプレゼンス・オブジェクト404のインスタンスにアクセスするために利用することができる。
ステップ1106において、選択したコンタクト・オブジェクト402(図4)のインスタンスと関連のあるコンタクトが、ネットワーク型計算環境200(図2)内にいるか否か判定を行うことができる。例えば、コンタクトの総計プレゼンス・ステータを、ステップ1104において検索したプレゼンス・オブジェクト600の総計ステータス・エレメント606から得ることができ、そしてコンタクトの総計プレゼンス・ステータスがONLINEである場合、コンタクトがいると判断することができる。コンタクトがいると判断した場合、手順はステップ1108に進むことができる。それ以外の場合、手順を終了することができる。この時点では、コンタクトは協調のためには利用できない。
あるいは、ステップ1104および1106を、選択したコンタクトのプレゼンス情報に申し込むステップと入れ替えて、選択したコンタクトがいることを通知が示すまで待ってからステップ1108に進むようにしてもよい。この代替案を、破線1110で示す。
ステップ1108において、選択したコンタクト・オブジェクト402(図4)に、関連する能力オブジェクト412の1組のインスタンスについて問い合わせることができる。例えば、ステップ1104(および/またはステップ1110)において検索したプレゼンス・オブジェクト404のインスタンスのタイプ別発見能力エレメント616を利用して、1組の関連する能力を得ることができる。検査すべき1組の特定の能力は、1つ以上の目標の協調的活動に応じて異なる場合がある。例えば、音声を伴う会議は、オーディオ・入力能力についてのチェックを誘起することができる。ステップ1112において、選択したコンタクトには必要な能力があるか否か判定を行うことができる。選択したコンタクトには必要な能力がない場合、手順は図12のステップ1202に進むことができる。それ以外の場合、手順を終了することができる。ステップ1112は、単純な検査に限定する必要はない。ステップ1112は、例えば、シグナリング・サービス308(図3)によって調整する折衝(negotiation)を含み、1組の能力の内のいずれかが1つ以上の目標の活動に対して十分であるか否か判定を行うこともできる。
図12は、本発明の実施形態による協調サービス・プラットフォーム302が実行するステップの更に別の例を示す。図11および12のステップは、1114および1116で示す円で繋がれている。選択したコンタクトがネットワーク型計算環境200(図2)にあり、1つ以上の所望の協調的活動に参加することができることを判定した後、ステップ1202において1つ以上の招待を、選択したコンタクトに送ることができる。例えば、コンピュータ212(図2)において、招待サービス326(図3)によって招待を送ることができる。
ステップ1204において、1つ以上の招待は、選択したコンタクトによって受信することができる。例えば、招待の1つは、コンピュータ208(図2)において招待サービス326(図3)によって受信することができる。ステップ1206において、選択したコンタクトは、1つ以上の招待に応答することができる。例えば、選択したコンタクトは、コンピュータ208において招待サービス326のユーザ・インターフェースを利用して、招待の1つに応答することができる。
ステップ1208において、招待が受け入れられたか否か判定を行うことができる。例えば、コンピュータ212における招待サービス326は、ステップ1206において送った応答を受信することができ、応答の内容から、招待が受け入れられたか否か判定することができる。招待が受け入れられた場合、手順はステップ1210に進むことができる。それ以外の場合、手順を終了することができる。
ステップ1204、1206および1208には破線1212で印を付けて、招待に応答するときにおける手順の変動の可能性を強調している。多数の招待を同じ活動に送出する理由の1つは、ネットワーク型計算環境200(図2)では、選択したコンタクトのプレゼンスが多数の終点に跨る場合があるからである。例えば、協調サービス・プラットフォーム302(図3)のユーザが、同じ活動に対する3つの招待をコンピュータ212からコンピュータ216、206および208に送ることもできる。例えば、コンピュータ216は、選択したコンタクトの事務所のデスクトップPCである場合があり、コンピュータ206は選択したコンタクトのラップトップである場合もあり、コンピュータ208は、選択したコンタクトのパーソナル・ディジタル・アシスタント(PDA)である場合もある。招待は、1箇所よりも多い終点において、選択したコンタクトに表示することができる。例えば、選択したコンタクトは、コンピュータ208(この例ではPDA)において招待を断るまたは無視するが、コンピュータ206(ラップトップ)ではこの招待を受け入れることもあり得る。選択したコンタクトは単に招待に応答しないという可能性もある。その結果、時間切れとなり、手順が終了する場合もある。
ステップ1212における別の可能性は、コンピュータ212(図2)における協調サービス・プラットフォーム302(図3)のユーザが、活動に対する招待を、サブネット218における他の各コンピュータ214および216に送出することである。この場合、各コンタクトは並行して応答することができる。
招待を受け入れた後、ステップ1210において、選択したコンタクトは、協調的活動に対して関連のある会議に加入することができる。例えば、会議は、コンピュータ212(図2)によってホストすることができ、選択したコンタクトは、シグナリング・サービス308(図3)および/または活動サービス310を利用して、コンピュータ206から会議に加入することができる。ステップ1214において、活動を組み込んだ協調が得られる。
招待サービス326(図3)の一例について、これより詳細に説明する。即ち、招待サービス326、協調的サービス・プラットフォーム302、および協調的サービス・プラットフォーム302とは別個の協調的アプリケーション(通例それによって参照されるが)の間における双方向処理を強調する。本発明の実施形態では、このような双方向処理の扱いは、協調サービス・プラットフォーム302の使い勝手、拡張性、柔軟性、保守性、および/またはスケーラビリティに寄与し、したがってその広い階級的採用(scale adoption)に対する適格性に寄与する。
図13は、本発明の実施形態による招待場面の一例を示す。第1コンピュータ1302には、第2コンピュータ1304との1つ以上の協調的活動を開始するタスクを指示することができる。例えば、コンピュータ1302および1304は、図2のネットワーク型計算環境200におけるコンピュータ204、206、208、212、214または216のいずれでもよい。各コンピュータ1302および1304は、コンピュータ・オペレーティング・システム1306および1308を含むことができる。各コンピュータ・オペレーティング・システム1306および1308は、協調的サービス・プラットフォーム・モジュール1310および1312を含むことができる。コンピュータ・オペレーティング・システム1302および1304は、同一である必要はない。協調的サービス・プラットフォーム・モジュール1310および1312は、協調的サービス・プラットフォーム302(図3)にしたがうことができる。
コンピュータ・オペレーティング・システム1306および1308は、グラフィカル・ユーザ・インターフェース(GUI)のような、招待ユーザ・インターフェース(UI)1314および1316を含むことができる。本発明の実施形態では、招待ユーザ・インターフェース1314および1316を、それぞれ、協調的サービス・プラットフォーム・モジュール1310および1312に組み込む。コンピュータ1302および1304は、更に、協調的アプリケーション1318および1320も含むことができる。この例では、協調的サービス・プラットフォーム・モジュール1310および1312とは別個であるが、本発明の実施形態では、協調的アプリケーション1318および1320を、協調的サービス・プラットフォーム・モジュール1310および1312に組み込むこともできる。
基本的な協調的招待プロトコルは、3つのメッセージ、協調招待メッセージ1322、協調応答メッセージ1324、および招待取り消しメッセージ1326を含むことができる。
協調招待メッセージ1322は、招待識別子、1つ以上の能力識別子、アプリケーション・データ、およびメッセージを含むことができる。招待識別子は、招待を一意に識別することができる。例えば、招待識別子は、Microsoft(R) Developer Network (NSDN(R)) LibraryにおけるGuid Structure section of .NET Framework Class Library(.NETフレームワーク・クラス・ライブラリのGuid構造の章)、 documentation version 1.1.1.に記載されているような、大域的な一意の識別子(GUID)とするとよい。各能力識別子は、招待と関連のある協調的活動に必要な協調的能力を表す能力オブジェクトを参照することができる。例えば、各能力識別子は、帯域的な一意の識別子(GUID)とすればよい。アプリケーション・データは、例えば、協調的活動を開始するために、協調的アプリケーションに渡すべきデータを含む、および/または指定することができる。メッセージは、標準的またはカスタム招待テキストを収容するリッチ・テキスト・ストリングとすればよい。
協調応答メッセージ1324は、招待識別子、招待応答アクション、応答メッセージ、および拡張応答データを含むことができる。招待識別子は、応答メッセージ1324が応答する宛先である協調招待を識別することができる。例えば、招待識別子は、協調招待メッセージ1322が供給するGUIDとすればよい。招待応答アクションは、応答のタイプを示すことができる。例えば、招待応答は、断り、受入、無視、および誤りの内の1つとすることができる。応答メッセージは、標準的またはカスタム招待応答テキストを収容するリッチ・テキスト・ストリングとすればよい。拡張応答データは、招待および/または協調的活動に関する適した追加の応答データであればいずれでも含むことができる。
招待取り消しメッセージ1326は、当該取り消しメッセージ1326が取り消している招待を識別する招待識別子を含むことができる。例えば、協調招待メッセージ1322は、コンピュータ1302からコンピュータ1304に送り、協調的サービス・プラットフォーム1312のユーザに、協調的サービス・プラットフォーム1310のユーザと共に、協調的活動に参加するように招待することができる。これに応答して、協調応答メッセージ1324をコンピュータ1304からコンピュータ1302に送り、招待が、例えば、受け入れられたのかまたは断られたのか示すことができる。本発明の実施形態では、協調的サービス・プラットフォーム1310のユーザが、コンピュータ1302からコンピュータ1304に招待取り消しメッセージ1326を送ることによって、招待を取り消すことが可能である。
協調的招待方法の例を更に詳細に説明する前に、招待サービス326(図3)のアプリケーション・プログラミング・インターフェース(API)の一例について説明しておくと役に立つであろう。図14は、本発明の実施形態による招待サービス326のアプリケーション・プログラミング・インターフェース(API)1400の一例を示す。招待サービスAPI1400は、招待エレメント1402、招待リスナ作成エレメント(create invitation listener element)1404、保証付招待発送エレメント1406、無保証招待発送エレメント(send unsecured invitation element)1408、招待取り消しエレメント1410、招待応答エレメント1412、招待応答取り込みエレメント1414、登録/登録抹消能力エレメント1416、能力列挙エレメント1418、および能力情報取り込みエレメント1420を含むことができる。各アプリケーション・プログラミング・インターフェース・エレメント1402、1404、1406、1408、1410、1412、1414、1416、1418および1420は、各コンピュータ1302および1304における協調的サービス・プラットフォーム・モジュール1310および1312(図13)に組み込まれた招待サービス326(図3)のアプリケーション・プログラミング・インターフェースに含めることもできるが、コンピュータ1302、1304が招待元、招待先、または双方のどれかに応じて、エレメント1402、1404、1406、1408、1410、1412、1414、1416、1418、および1420のそれぞれを別個にコンピュータ1302および1304によって利用することもできる。
招待エレメント1402は、協調招待メッセージ1322と同じデータの一部または全部に対するアクセスを含み、提供することができる。例えば、協調招待メッセージ1322、またはその一部分は、招待エレメント1402を用いて、招待サービス326(図3)に格納すること、および/またはここから検索することができる。
招待リスナ作成エレメント1404は、コンピュータ1302および1304(図13)のような協調的終点における招待リスナ(invitation listener)をインスタンス化することができる。インターフェース指定パラメータは、インターネット・プロトコル(IP)アドレスまたはP2Pピア識別子(コンピュータ1302、1304毎に多数の終点がある場合もある)、ポート識別子(終点毎に多数の通信ポートがある場合もある)、ならびに招待リスナを設定(configure)または削除(destroy)するための招待リスナ識別子を含むことができる。例えば、オペレーティング・システム1308は、招待リスナ作成エレメント1404を利用して、標準的な招待および/または協調的サービス・ポートにおいて聞いている招待リスナを作成することができる。協調的アプリケーション1320は、招待リスナ作成エレメント1404を利用して、協調的アプリケーション1320と協調するために、招待を予測して聞くことを専用としたカスタム招待ポートにおいて招待リスナを作成することができる。
保証付招待発送エレメント1406は、招待メッセージ1322(図13)の安全な発送を可能にする。インターフェース指定パラメータは、コンタクト・オブジェクト402(図4)のインスタンスに対する参照、終点オブジェクト410のインスタンスに対する参照、送出する招待メッセージ1322に対する参照、一旦招待に対する応答が受信されたならば知らせるべきイベントのような、実行スレッドの同期オブジェクトに対する参照、および保証付招待発送エレメント1406が設定する招待識別子に対する参照を含むことができる。招待メッセージ1322は、参照されるコンタクト・オブジェクト402のインスタンスと関連のあるコンタクトに送ることができる。終点オブジェクト410のインスタンスが設けられている場合、招待メッセージ1322を、関連のある終点に送ることができ、それ以外の場合、招待メッセージ1322は、参照されるコンタクト・オブジェクト402のインスタンスと関連のあるコンタクトがいる場合、各終点に送ることができる。
協調的活動に参加する判断には、安全性の意義(security consequence)があるとよい。例えば、双方向ファイル共有に参加する決定は、データに修正および/または削除を行わせる場合もある。その結果、協調的サービス・プラットフォーム302(図3)のユーザが、信頼できるソースからのみ協調的招待を受け入れることを決定するというようにすることができる。本発明の一実施形態では、コンタクト情報を以前に交換したことがあるユーザ間に、保証付通信接続を確立することができる。例えば、コンタクト情報は、暗号認証証明書を収容するとよく、そして保証付通信接続は、セキュア・ソケット・レイヤ(SSL)またはオーバーレイ・ネットワーク用セキュリティ・サービス・プロバイダ(SSP)技法のような、従来の安全プロトコルを用いて確立するとよい。
しかしながら、ある状況下では、ユーザが不安な招待を許可する決定をする場合もあり得る。無保証招待発送エレメント1408は、保証付招待発送エレメント1406と同様であってもよいが、例えば、招待の発送元および受信先が以前にコンタクト情報を交換したことがあるという要件がないことを除く。例えば、無保証招待発送エレメント1408は、招待メッセージ1322をサブネット218上の各コンピュータ212、214および216(図2)にブロードキャストするために利用することができる。不安な招待は、マルチプレーヤ・ゲームのような、その場だけの協調、および簡易ソーシャル設定における協調をし易くすることができる。
招待取り消しエレメント1410は、取り消しメッセージ1326(図13)の発送を可能にすることができる。インターフェース指定パラメータは、無保証招待発送エレメント1408の保証付招待発送エレメント1406のよって設定された招待識別子のような、招待識別子を含むことができる。招待エレメント1412に対して応答することにより、応答メッセージ1324(図13)の発送を可能にすることができる。インターフェース指定パラメータは、招待識別子および招待応答アクションを含むことができる。
保証付招待発送エレメント1406および無保証招待発送エレメント1408の各々は、同期および非同期バージョン双方を有することができる。例えば、非同期バージョンは、招待メッセージ1322(図13)を送り、次いで招待に対する応答をチェックする前に、実行スレッドにおいて追加命令の実行を可能にすることができる。対照的に同期バージョンは、応答メッセージ1324が受信されるまで、または時間切れとなるまで、実行スレッドにおいて別の命令を実行することなく待機することができる。招待応答取り込みエレメント1414は、非同期的に送られた招待メッセージ1322に対する応答をチェックするため、および/または待つために利用することができる。インターフェース指定パラメータは、招待識別子と、応答メッセージ1324が到着したときにそれに対して設定する参照とを含むことができる。招待発送エレメント1406および1408の同期バージョンは、スレッド同期オブジェクトに対する参照を含む必要はない。
招待サービス1400は、終点能力の登録簿を維持することができる。登録/登録抹消能力エレメント1416は、招待サービス1400による登録および登録抹消を可能にすることができる。インターフェース指定パラメータは、1つ以上の能力オブジェクト412(図4)のインスタンスに対する参照、1つ以上の能力がある終点の特定のユーザまたはその終点のユーザ全てに関係するかについての指示を含むことができる。各能力オブジェクト412のインスタンスは、能力識別子、例えば、大域的に一意の識別子(GUID)と関連付けることができる。本発明の実施形態では、各能力は、個々の協調的アプリケーション1318、1320(図3)と関連がある。招待サービス1400は、登録能力および登録抹消能力のために別個のアプリケーション・プログラミング・インターフェース・エレメントを含むことができる。
能力列挙エレメント1418は、招待サービス1400に登録されている能力の列挙を可能にすることができる。インターフェース指定パラメータは、列挙がある終点の特定のユーザまたはある終点の全てのユーザと関連のある能力のどちらを収容すべきかに関する指示を含むことができる。本発明の実施形態では、列挙は、例えば、能力オブジェクト412(図4)のインスタンスに対する参照の代わりに、能力識別子を含む。その場合、能力オブジェクト412のインスタンスは、能力情報取り込みエレメント1420によって検索することができる。
これより、協調招待方法の例について、更に詳しく説明する。協調的招待に対する基本的な文脈は、ユーザが、招待に対して発送および/または応答するために特定のアプリケーションと双方向処理するか否か(特定の場面)、またはユーザが招待に対して発送および/または応答するために、アプリケーションとは独立したメカニズムと双方向処理を行うか否か(包括的場面)ということである。4つの場面、包括から包括(from generic to generic)、特定から包括(from specific to generic)、包括から特定(from generic to specific)、そして特定から包括(from specific to generic)について、図15から図18に関して以下に説明する。
図15は、本発明の実施形態にしたがって招待を発送するステップの一例を示す。ステップ1502において、待ユーザ・インターフェース(UI)を呼び出すことができる。例えば、協調的サービス・プラットフォーム302(図3)は、招待サービス326のユーザ・インターフェースを呼び出すことができる。ステップ1504において、待ユーザ・インターフェースを用いて、1つ以上のコンタクトを選択することができる。例えば、招待サービス326のユーザ・インターフェースは、コンタクト管理サービス304と双方向処理を行い、ユーザの既知のコンタクトのリスト、または、例えば、バディ・クラス・コンタクトのリストを表示することができ、そしてユーザは、リストを見ながら、これらの表示から1組のコンタクトを選択することができる。
ステップ1506において、招待ユーザ・インターフェースを用いて、活動を選択することができる。例えば、招待サービス326(図3)のユーザ・インターフェースは、活動サービス310と双方向処理を行い、利用可能な協調的活動のリスト、あるいは、例えば、人気のある活動または最後に用いられた活動のリストを表示することができ、ユーザは、リストを見ながら、これらの表示から協調的活動を選択することができる。ステップ1508において、招待ユーザ・インターフェースが招待を発送しようとしているか否か、または特定の協調的アプリケーションから招待が発送されようとしているか否か判定を行うことができる。例えば、この判定は、招待サービス326の設定変更可能な(configurable)パラメータに応じて行うことができる。招待ユーザ・インターフェースが招待を発送しようとしていると判定した場合、手順はステップ1510に進むことができる。それ以外の場合、手順はステップ1512に進むことができる。
ステップ1510において、ステップ1506で選択した活動と関連のある協調的アプリケーションを起動することができる。ステップ1510を破線の外枠で示し、この時点においてアプリケーションを起動することができるが、待ユーザ・インターフェースは、実行スレッドの制御を保持し、ステップ1514に進むことができることを示す。これは、ステップ1516とは対照的である。
ステップ1512において、ステップ1504において選択したコンタクトや、ステップ1506において選択した活動と関連のあるあらゆるコンフィギュレーション・パラメータのような、これまでに収集した招待に関する詳細を格納し、その活動と関連のある協調的アプリケーションによって検索できるようにする。ステップ1516において、その協調的アプリケーションを起動し、招待ユーザ・インターフェースは手順の制御を渡す。
ステップ1514において、招待サービス1400(図14)のアプリケーション・プログラミング・インターフェースによって、例えば、前述のような保証付招待発送エレメント1406または無保証招待発送エレメント1408によって、招待を発送することができる。招待を発送する際、同じアプリケーション・プログラミング・インターフェース・エレメント1406、1408を利用することができるが、手順がステップ1510からステップ1514に進むときには、エレメント1406、1408を呼び出すのは招待ユーザ・インターフェースであり、一方手順がステップ1516からステップ1514に進むときには、エレメント1406、1408を呼び出すのは協調的アプリケーションである。その結果、エレメント1406、1408に渡されるインターフェース指定パラメータが異なる可能性がある。
ステップ1502において開始する手順は、待ユーザ・インターフェースを利用するので、「包括から」の場面の1つを記述する。逆に、ステップ1518からは、「特定から」の場面が開始する。ステップ1518において、協調的アプリケーションを起動することができる。例えば、アプリケーション1318(図13)を、従来のように、コンピュータ・オペレーティング・システム1306によって起動することができる。ステップ1518は、ステップ1520のための事前調整であり、ステップ1518および1520間しばらくの時間が経過する場合もある。
ステップ1520において、協調的アプリケーション1318(図13)のユーザ・インターフェースを用いて、1つ以上のコンタクトを選択することができる。例えば、協調的アプリケーション1318は、協調的サービス・プラットフォーム1310のコンタクト管理サービス304(図3)と双方向処理を行い、アプリケーション・ユーザの既知のコンタクトのリスト、または、例えば、バディ・クラス・コンタクトのリストを表示することができ、そしてアプリケーション・ユーザはこれらの表示から1組のコンタクトを選択することができる。ステップ1504からの進展とは対照的に、協調的活動の選択は必要でなく、手順はステップ1514に進むことができる。協調的アプリケーション1318は、協調的活動を決定することができる。しかしながら、本発明の実施形態では、協調的アプリケーション1318は、多数の活動をサポートすることができ、その場合、ステップ1506の同等物を充当すればよい(appropriate)。ステップ1514において、協調的アプリケーション1318が招待発送エレメント1406または1408(図14)を呼び出すことができる。
図16は、招待サービス1400(図14)が本発明にしたがって招待を発送する際に実行するステップの一例を示す。ステップ1602において、次のコンタクト候補を選択する。例えば、コンタクト候補は、図15のステップ1504または1520において選択した1組の中から選択することができる。
ステップ1604において、コンタクト候補の終点が分かっているか否か判定を行うことができる。例えば、コンタクト候補を表すコンタクト・オブジェクト403が参照するプレゼンス・オブジェクト404(図4)に、その1組の終点オブジェクト410について問い合わせることができる。分かっている終点がコンタクト候補にない場合(例えば、問い合わせの結果が空集合)、手順はステップ1606に進むことができる。コンタクト候補の終点が分かっている場合、手順はステップ1608に進むことができる。ステップ1606において、コンタクト候補の終点を突き止めることができる。例えば、招待サービス326(図3)は、コンタクト場所サービス322と双方向処理を行い、コンタクト候補に対して1組の有効な終点を決定することができる。
ステップ1608において、コンタクト候補に対して分かっている終点の中から、終点候補を選択することができる。ステップ1610において、終点候補との通信接続を確立することができる。例えば、接続性サービス316(図3)との接続を確立することができる。ステップ1612において、終点候補に招待を、例えば、招待メッセージ1322(図13)によって発送することができる。
ステップ1614において、別の終点候補が未だあるか否か判定を行うことができる。未だ別の終点候補がある場合、手順はステップ1608に戻って、次の終点候補を選択することができる。それ以外の場合、手順はステップ1616に進むことができる。ステップ1616において、別のコンタクト候補が未だあるか否か判定を行うことができる。未だ別のコンタクト候補がある場合、手順はステップ1602に戻って、次のコンタクト候補を選択することができる。それ以外の場合、招待を発送したと見なすことができる。
4つの場面の内、「包括から」および「特定から」の部分について説明し終えたので、これより「包括へ」および「特定へ」の部分について、それぞれ、図17および図18を参照しながら説明する。図17は、本発明の実施形態にしたがって、待ユーザ・インターフェースから協調的招待に応答するためのステップの一例を示す。協調的招待を多数の終点に発送した場合、図17および/または図18に示すステップを各終点において実行すればよい。
ステップ1702において、協調的招待を、協調サービス・プラットフォーム302(図3)の標準的通信ポートにおいて受信することができる。例えば、招待メッセージ1322(図13)は、協調的サービス・プラットフォーム302のために予約してあり、招待サービス327が監視するTCP/IPポートに到達することができる。
ステップ1704において、終点が、招待と関連のある活動に参加することができるか否か判定を行うことができる。例えば、招待サービス326(図3)は、招待メッセージ1322(図13)における能力識別子を、招待サービス328に登録されている能力と比較することができる。あるいは、終点のユーザと関連のあるMeContactオブジェクト406(図4)に問い合わせて、それと関連のある1組の能力オブジェクト412を求めることができ、これらを、招待メッセージ1322の中にある能力識別子と比較することができる。終点が、招待と関連のある活動に参加することができると判定した場合、手順はステップ1706に進むことができる。それ以外の場合、手順はステップ1708に進むことができる。
ステップ1706において、ユーザ波招待を受け入れる、断る、または無視することができる。例えば、招待サービス326(図3)は、判断、即ち、受入、断り、または無視に対応するユーザ・インターフェース・エレメントを有する待ユーザ・インターフェースを表示することができる。ユーザは、対応するユーザ・インターフェース・エレメントを選択することにより、招待を受け入れる、断る、または無視することができる。ユーザが招待を受け入れる場合、手順はステップ1710に進むことができる。ユーザが招待を断る場合、手順はステップ1708に進むことができる。ユーザが招待を無視した場合、手順はステップ1712に進むことができる。
ステップ1708において、応答メッセージ1324(図13)を送り、招待が断られたことを示すことができる。例えば、応答メッセージ1324は、招待サービス1400のアプリケーション・プログラミング・インターフェースの招待エレメント1412(図14)に対する応答と共に送ることができる。同様に、ステップ1712において、応答メッセージ1324を送り、ユーザが招待を無視することを選択したことを示すことができる。招待エレメント1412は、この応答を送るためにも用いることができる。本発明の実施形態では、明示的な無視応答を送ることができるので、協調的サービス・プラットフォーム320(図3)の効率が向上する。
ステップ1710において、受け入れた招待の詳細を格納し、協調的活動と関連のある協調的アプリケーション1320が検索できるようにする。例えば、招待メッセージ1322の内容の一部または全部を、招待サービス326(図3)によって、アプリケーション・プログラミング・インターフェースの招待エレメント1402(図14)を用いて格納することができる。ステップ1714において、招待サービス326によって協調的アプリケーション1320を起動することができる。
ステップ1716において、招待の受入を示す応答メッセージ1324(図13)を、例えば、招待サービス1400のアプリケーション・プログラミング・インターフェースの招待エレメント1412に対する応答を利用して送ることができる。ステップ1716からステップ1718に進む際に、実行の制御を、ステップ1714において起動した協調的アプリケーション1320に渡すことができる。あるいは、並列の実行スレッドにおいて協調的アプリケーション1320を起動することもでき、必要に応じてスレッドの同期を取り、ステップ1702において招待を受信した招待サービス・スレッドは、ステップ1716において応答した後に、終了することができる。
ステップ1718において、協調的アプリケーション1320(図13)は、ステップ1710において格納した招待の詳細を読み出すことができる。例えば、格納されている招待の詳細から、協調アプリケーション1320の何らかのコンフィギュレーション設定(再設定)を行うことができる。この時点において、協調アプリケーション1320は、協調的活動に参加し始める準備を整えることができ、ステップ1720において、協調的活動への参加を開始することができる。
図18は、本発明の実施形態にしたがって、特定アプリケーション・ユーザ・インターフェースから協調的招待に応答するためのステップの一例を示す。ステップ1802において、協調的アプリケーションを起動することができる。例えば、コンピュータ・オペレーティング・システム1304によって、従来のように協調的アプリケーション1320(図13)を起動することができる。ステップ1804において、協調的アプリケーション1320は、非標準的、アプリケーション特定協調通信ポートにおいて、招待リスナ(invitation listener)を作成することができる。例えば、協調的アプリケーション1320は、招待サービス1400のアプリケーション・プログラミング・インターフェースの招待リスナ作成エレメント1404(図14)を利用して、協調的サービス・プラットフォーム302(図3)のために予約してあるポートとは異なるTCP/IPポート上に招待リスナを作成することができる。
後のある時点で、ステップ1806において、非標準的ポートにおいて協調的招待を受信することができる。例えば、ステップ1514(図15)において送った招待メッセージ1322(図13)は、アプリケーション特定ポートおよび/または終点に送られている可能性がある。ステップ1808において、協調的アプリケーション1302のユーザは、招待を受け入れる、断る、または明示的に無視することができる。例えば、協調的アプリケーション1320は、判断、即ち、受入、断り、および無視に対応するユーザ・インターフェース・エレメントを有するユーザ・インターフェースを表示することができる。次いで、ユーザは、対応するユーザ・インターフェース・エレメントを選択することにより、所望の応答を選択することができる。ユーザが招待を受け入れる場合、手順はステップ1810に進むことができる。ユーザが招待を断る場合、手順はステップ1812に進むことができる。ユーザが招待を明示的に無視する場合、手順はステップ1814に進むことができる。
ステップ1810、1812および1814の各々において、しかるべき招待応答を招待元に送ることができる。各ステップ1810、1812および1814は、例えば、招待サービス1400の招待エレメント1412(図14)に対する応答を利用して、招待応答アクションを受入、断りまたは無視にそれぞれ設定して、応答メッセージ1324(図13)を送ることができる。所望の協調アプリケーション1320(図13)は既に起動されているので、招待が受け入れられた場合、協調的活動は、これ以上の遅れを伴うことなく、ステップ1816において開始することができる。
協調的プレゼンス公開(collaborative presence publication)のための方法の例について、これより更に詳細に説明する。即ち、サーバレス・プレゼンス公開(serverless presence publication)、即ち、専用のサーバ・コンピュータの必要性とは独立して協調的プレゼンス情報を公開できることは、本発明の実施形態では有利である。例えば、サーバレス・ネットワーク型計算環境、ピア・ツー・ピア・ネットワーク、またはオーバーレイ・ネットワークは、専用のサーバ・コンピュータを必要とするネットワークおよびネットワーク・アプリケーションよりも優れたスケーラビリティを提供することができる。ネットワーク型計算環境200(図2)は、ピア・ツー・ピアまたはオーバーレイ・ネットワークをサポートすることができる。コンピュータ204、2067、208、212、214および216の各々は、ピア・ツー・ピア・ネットワークの1つ以上のピアをサポートすることができる。各ピアは、協調的終点であり、終点オブジェクト410(図4)のインスタンスと関連付けることができる。
前述のように、協調的プレゼンスは、プレゼンス・オブジェクト404(図4)によって表すことができる。プレゼンス・オブジェクト404の、全てを含む、適したポートであればいずれでも、協調的サービス・プラットフォーム302(図3)のユーザに公開することができる。加えて、プレゼンス・オブジェクト404のインスタンスによるプログラム・オブジェクト・インスタンス(programmatic object instance)への参照も公開することができ、終点オブジェクト410、能力オブジェクト412、および更に包括的な公開オブジェクト418を含む。
しかしながら、本発明の実施形態では、通例、1回の公開では十分でない。プレゼンス情報は変化する可能性がある。例えば、公開オブジェクト418は、協調的アプリケーションによって更新することができ、特定の終点と関連のある総計ステータスおよび/またはプレゼンス・ステータスは1日中いつでも変化する可能性があり、例えば、ネットワーク型ワイヤレス・デバイスがオンまたはオフに切り替わることによって、あるいはワイヤレス・ネットワークのカバレッジ・エリアに対して出たり入ったりすることによって、終点が特定のコンタクトのプレゼンスに追加されること、またはそこから除去される可能性があり、新しい協調的アプリケーションをインストールする毎に、終点の能力が変化する可能性がある。効果的な協調には、プレゼンス情報を常に更新することが必要となる場合もある。本発明の実施形態では、プレゼンス申し込みおよびプレゼンス通知メッセージによって、協調的プレゼンス情報を、ネットワーク型計算環境200(図2)のような、サーバレス・ネットワーク計算環境において分散させる。
図19は、本発明の実施形態にしたがってサーバレス・プレゼンス公開に参加するためのステップの例を示す。ステップ1902において、コンピュータ・ユーザは、コンピュータのオペレーティング・システム(OS)によって認証を行うことができる。例えば、ユーザはネットワーク型計算環境200のコンピュータ204、206、208、212、214または216(図2)の1つにログオンすることができる。相応しいコンピュータ・オペレーティング・システムは、"MICROSOFT WINDOWS(登録商標)"または"UNIX(登録商標)"コンピュータ・オペレーティング・システムのいずれかの適したバージョンのように、協調的サービス・プラットフォーム302(図3)をサポートすることができるコンピュータ・オペレーティング・システムを含む。コンピュータ・オペレーティング・システムによって認証を行うと、コンピュータ・ユーザに対してコンピュータが認識したアイデンティティを確定することができ、即ち、コンピュータ・ユーザをMeContactオブジェクト406(図4)のインスタンスと関連付けることができる。
ステップ1904において、協調的サービス・プラットフォーム302の公開サービス306(図3)との通信を初期化することができる。前述のように、公開サービス306はサーバレスとすることができる。例えば、ステップ1904において、コンピュータ・ユーザは、公開サービス306を組み込んだピア・ツー・ピア(P2P)ネットワークに加入することができる。ステップ1906において、コンピュータ・ユーザと関連のあるMeContactオブジェクト406(図4)に収容されている、および/またはこれによって参照されるデータの一部または全部を、例えば、1つ以上のプレゼンス通知メッセージによって、公開サービス306に公開することができ、これによって、コンピュータと協調的サービス・プラットフォーム302のユーザとの協調的プレゼンスを確立する。
ステップ1908において、コンタクト・ストア318(図3)との通信を初期化することができる。例えば、コンタクト・ストアは、データベースのような従来のデータ・ストアとすればよく、コンタクト・ストア318との通信の初期化は、データ・ストアとの通信セッションを確立することを含むことができる。ステップ1910において、コンタクト・ストア318に、ユーザのバディ・クラス・コンタクトについて問い合わせることができる。本発明の実施形態では、コンタクト・ストア318に問い合わせる際、MeContactオブジェクト406のバディ・エレメント904に含まれるコンタクト・オブジェクト402(図4)に対する1つ以上の参照を解除する(de-reference)ことを含む。
ステップ1912において、バディ・クラス・コンタクトのプレゼンスに対して、例えば、プレゼンス申し込みメッセージを用いて、申し込みを行うことができる。プレゼンス申し込みメッセージについては、図20および図21を参照しながら以下で更に詳しく説明する。ステップ1914において、申し込みに応答して、プレゼンス更新通知を受信することができる。例えば、プレゼンス通知メッセージは、申し込みが関連するプレゼンスに変更が生じたときに、ピア・ツー・ピア・ネットワークを通じて送ることができる。
図20は、本発明の実施形態にしたがってプレゼンス申し込みを行うためのステップの一例を示す。例えば、図20によって示すステップは、ステップ1912(図19)の一部として実行することができる。申し込みを行おうとする1組のバディ・クラス・コンタクトは、例えば、ステップ1914等から入手可能とすることができる。ステップ2002において、次のバディ・クラス・コンタクト候補を、この1組から選択することができる。
ステップ2004において、バディ・クラス・コンタクトを探索することができる。例えば、ピア名称解明プロトコル(PNRP)を利用すれば、ピア・ツー・ピア・ネットワークにおけるバディ・クラス・コンタクトと関連のある終点を突き止めることができる。あるいは、または加えて、サブネット218(図2)のようなローカル・ネットワーク区画全域を通じて、コンタクトを探索することができる。適したネットワーク区間であればいずれでも隔離すること、および/またはそこでコンタクトを探索することができる。
探索が成功しない場合もある。例えば、バディ・クラス・コンタクトには、ピア・ツー・ピア・ネットワークおよび/またはローカル・ネットワーク区画内に、関連のある終点がない場合がある。ステップ2006において、バディ・クラス・コンタクトが発見されたか否か判定を行うことができる。例えば、ピア名称解明プロトコルは、ピア・ツー・ピア・ネットワークにおいて関連する協調的終点(例えば、ピア)に対するバディ・クラス・コンタクトの名称を首尾良く解明することができ、あるいはローカル・ネットワーク区画全域においてブロードキャストされ、当該バディ・クラス・コンタクトに対して関連のある終点(例えば、TCP/IPアドレスおよび通信ポート番号)を識別するメッセージに対する回答を受信することができる。バディ・クラス・コンタクトを発見した場合、手順はステップ2008に進むことができる。それ以外の場合、例えば、コンタクトがバディに分類されているために、一時的に発見されないと仮定することができ、手順はステップ2010に進むことができる。
バディに分類されると、コンタクトは通例アクティブな協調的参加者(collaborative participant)であるという仮定を導くことができるので、本発明の一実施形態では、見つからないバディ・クラス・コンタクトを周期的に探索することによって、計算およびネットワーク・リソースに対する要求増大にも拘わらず、協調的サービス・プラットフォーム302(図3)が価値のある機構であることの有効性を十分に高める。手順は、ステップ2010において、探索の合間中待機することができる。例えば、探索の合間の期間は10分とすることができる。ステップ2010は、待機、そして恐らくは後続のステップが別個の実行スレッドにおいて行われる可能性があることを示すために、破線2012で囲まれている。待機ステップ2010のために別個の実行スレッドをインスタンス化した後、主実行スレッドはステップ2014に進むことができる。
バディ・クラス・コンタクトを発見した後、ステップ2008において、プレゼンス申し込みメッセージを、そのコンタクトと関連のある終点、例えば、ステップ2004において発見した終点に送ることができる。プレゼンス申し込みメッセージは、コンタクトと関連のある協調的プレゼンス情報の一部または全部に対する申し込みを指定することができる。例えば、プレゼンス申し込みメッセージは、プレゼンス・オブジェクト600のアプリケーション・プログラミング・インターフェースのリッチ・テキスト記述エレメント602(図6)、終点エレメント604、総計ステータス・エレメント606、総計能力エレメント608、および公開オブジェクト・エレメント610内1つ以上を通じてアクセス可能なプレゼンス情報に対する申し込みを指定することができる。例えば、ステップ1914(図19)において申し込みに応答して送られるプレゼンス通知メッセージは、申し込みによってカバーされるプレゼンスの一部が変化したときにのみ送ればよく、変化したプレゼンス情報の一部のみを含めばよい。
ステップ2014において、1組のバディ・クラス・コンタクトの中に別のバディ・クラス・コンタクトが未だあるか否か判定を行うことができる。そのようなコンタクトが未だある場合、手順はステップ2002に戻り、次のコンタクトを上記1の中から選択することができる。そうでない場合、手順は、ステップ1914(図19)および/または図21のステップ2102のような、別のステップに進むことができる。
図21は、本発明の実施形態によるプレゼンス申し込みを受け入れるステップの一例を示す。ステップ2102において、プレゼンス申し込みメッセージを受信することができる。例えば、これは、ステップ2008(図20)において送ったプレゼンス申し込みメッセージとすることができる。ステップ2104において、プレゼンス申し込みメッセージの発送元と関連のあるコンタクト情報を検索することができる。例えば、プレゼンス申し込みメッセージは、発送元と関連のあるコンタクト・オブジェクト402(図4)のインスタンスを参照することができる。プレゼンス申し込みメッセージの受信先は、コンタクト管理サービス304(図3)によって、発送元のコンタクト情報を検索することができる。
ステップ2106において、プレゼンス申し込みメッセージの発送元に対して申し込み方針(subscription policy)が確定しているか否か判定を行うことができる。例えば、コンタクト管理サービス304(図3)が管理する発送元と関連があるコンタクト情報は、発送元と当該発送元の申し込み方針との間の関連を含むことができる。あるいは、申し込み方針は、全ての申し込み者、または発送元が一員である申し込み者の何らかのグループに対して適当な場合もある。
単純な申し込み方針の例には、拒否および許可が含まれる。即ち、コンタクトからの申し込み拒否要求、またはコンタクトからの申し込み許可要求である。本発明の実施形態では、発送元に対する申し込み方針は、受信先と関連のあるMeContactオブジェクト406の公認加入者エレメント906(図9)が参照するコンタクト・オブジェクト402(図4)の1組のインスタンスによって決定する。発送元と関連のあるコンタクト・オブジェクト402のインスタンスが、公認加入者エレメント906によって参照される組の中にある場合、発送元は許可され、それ以外の場合、発送元は拒否される。
本発明の実施形態では、申し込み方針を更に複雑にすることも可能である。例えば、申し込み方針を更に複雑にすれば、加入者のプレゼンス情報の1つ以上の部分集合に対する申し込みを拒否および/または許可することができる。プレゼンス・オブジェクト600の総計ステータス606(図6)およびリッチ・テキスト記述602に対する申し込みを許可すること、ならびに他のプレゼンス・オブジェクト・エレメント604、608、610に対する申し込みを拒否することは、可能な一例である。プレゼンス・オブジェクト・エレメント602、604、606、608および610、および/またはプレゼンス・オブジェクト・エレメント602、604、606、608および610が参照するプログラム・オブジェクト410、412、418の、全ての含む、適した部分集合であればいずれでも、申し込み方針および/または申し込みの対象となることができる。
申し込み方針が申し込みメッセージの発送元に対して適当である場合、手順はステップ2108に進むことができる。それ以外の場合、手順はステップ2110に進むことができる。ステップ2110において、申し込みの対象である協調的プレゼンスと関連のある協調的サービス・プラットフォーム302(図3)のユーザに、プレゼンス申し込みメッセージの発送元に関する申し込み方針について問い合わせることができる。例えば、公開サービス306は、ユーザ・インターフェース(例えば、グラフィカル・ユーザ・インターフェース、即ち、GUI)を呈示して、発送元と関連のあるコンタクト情報、ならびに拒否および許可のような申し込み方針選択肢を表示することができる。次いで、ユーザは、ユーザ・インターフェースを用いて、発送元に対する申し込み方針を選択することができる。
ステップ2112において、ユーザが選択した申し込み方針を発送元に対して設定することができる。例えば、申し込み方針を、協調的サービス・プラットフォーム302のコンタクト管理サービス304(図3)を通じて発送元と関連付けることができ、あるいは発送元と関連のあるコンタクト・オブジェクト402(図4)に対する参照を、受信先と関連のあるMeContactオブジェクト406のインスタンスの公認加入者エレメント906(図9)が維持する1組の参照に追加することができる。ステップ2108において、確定した発送元に関する申し込み方針を用いて、申し込み方針が申し込みを拒否するか否か判定を行うことができる。申し込み方針が発送元からの申し込みを拒否する場合、手順はステップ2114に進むことができる。それ以外の場合、手順はステップ2116に進むことができる。
ステップ2116において、協調的プレゼンス申し込みを受け入れることができる。例えば、プレゼンス申し込みメッセージによって指定された申し込みは、コンタクト管理サービス304(図3)を通じて、受信先と関連のあるMeContactオブジェクト406と関連付けることができる。本発明の実施形態では、発送元と関連のあるコンタクト・オブジェクト402(図4)のインスタンスを、受信先と関連のあるMeContactオブジェクト406のインスタンスのアクティブな加入者エレメント908(図9)によって参照されるコンタクト・オブジェクト908の1組のインスタンスに追加することによって、プレゼンス申し込みメッセージによって指定された申し込みを受け入れる。許可および拒否よりも申し込みを複雑にする場合、プレゼンス申し込みメッセージによって指定された申し込みは、受け入れる前に、発送元と関連のある申し込み方針に関してフィルタ処理することができる。例えば、申し込みが全てのプレゼンス情報を対象とするが、申し込み方針が申し込みを総計ステータスに制限する場合、総計ステータスに対してのみ、申し込みは受け入れられる。ステップ2108および2116は、合わせて、申し込み方針にしたがって申し込みが受け入れられることを保証することができる。
ステップ2114において、プレゼンス申し込みメッセージの発送元が、受信先のバディ・クラス・コンタクトであるか否か判定を行うことができる。例えば、受信先と関連のあるMeContactオブジェクト900のバディ・エレメント904(図9)によって参照されるコンタクト・オブジェクト402(図4)の1組のインスタンスをチェックして、プレゼンス申し込みメッセージの発送元と関連のあるコンタクト・オブジェクト402のインスタンスを探すことができる。公開サービス306(図3)は、プレゼンス申し込みメッセージの発送元が受信先のバディ・クラス・コンタクトであるか否か、コンタクト管理サービス304を用いて判定することができる。プレゼンス申し込みメッセージの発送元が受信先のバディ・クラス・コンタクトである場合、手順はステップ2118に進むことができる。それ以外の場合、手順はステップ2120に進むことができる。
プレゼンス申し込みメッセージの発送元が受信先のバディ・クラス・コンタクトであると判定した後、プレゼンス申し込みメッセージの受信先が現在発送元のプレゼンスに申し込んでいるか否か判定を行うことができる。例えば、公開サービス306(図3)のアプリケーション・プログラミング・インターフェースは、申し込み列挙エレメントを有し、指定されたコンタクトが行った1組の申し込みを列挙することができ、1組の申し込みをチェックして、発送元のプレゼンスに対して行った申し込みを探すことができる。あるいは、または加えて、受信先と関連のあるMeContactオブジェクト406(図4)のインスタンスのバディ・エレメント904(図9)によって参照されるコンタクト情報は、バディ・クラス・コンタクト毎に、プレゼンスの申し込みがコンタクトによって受け入れられたか否かについての指示を含むことができる。
プレゼンス申し込みメッセージの受信先が現在発送元のプレゼンスに申し込んでいると判定した場合、手順はステップ2120に進むことができる。それ以外の場合、受信先はステップ2122において発送元のプレゼンスに申し込むことができる。例えば、プレゼンス申し込みメッセージの受信先が以前に、図20を参照して先に説明した、発送元を探索するステップを実行しているが、発送元がオンラインになっておらず、受信先は、再度探索する前に、ステップ2010(図20)において待っているという場合があり得る。次いで、発送元がオンラインとなり、プレゼンス申し込みメッセージを発送し終えている。待ち続けて、次いで発送元を再度探索するために計算およびネットワーク・リソースを使う代わりに、本発明の実施形態では、受信先が、往復プレゼンス申し込みメッセージを用いて、バディ・クラス・コンタクトからのプレゼンス申し込みメッセージに応答することができる。ステップ2122において、ステップ2008(図20)について先に説明したように、往復プレゼンス申し込みメッセージをバディ・クラス・コンタクトに送ることができる。
ステップ2120において、ステップ2116において受け入れたプレゼンス申し込みに応じて、1つ以上のプレゼンス通知メッセージを、プレゼンス申し込みメッセージの発送元に送ることができる。初期のプレゼンス通知メッセージは、受け入れた申し込みと一致する全てのプレゼンス情報、あるいは、例えば、受信先が既に所有することが分かっているプレゼンス情報に対するプレゼンスの1組の相違を収容することもできる。初期プレゼンス通知メッセージに続いて、追加のプレゼンス通知メッセージを送り、協調的プレゼンスの更新を加入者に通知することができる。例えば、特定の協調的サービス・プラットフォーム302(図3)のユーザの協調的プレゼンスに対する1つ以上の更新の後に、1つ以上のプレゼンス通知メッセージを公開サービス306(図3)に送ることができる。ユーザのプレゼンスに対する申し込み毎に、公開サービス306は、プレゼンス通知メッセージが参照するプレゼンス情報の1つ以上の部分集合が申し込みと一致するか否か判定を行うことができる。一致する申し込み毎に、公開サービス306はプレゼンス通知メッセージを、申し込みを行った協調的サービス・プラットフォーム302のユーザに伝搬することができる。
本文において引用した刊行物、特許出願、特許を含む全ての文献は、各文献が個々にかつ詳細に言及によって含まれるものとすると示しかつその全体が記載されていたのと同じ範囲で、言及により本文に含まれるものとする。
本発明を記載する文脈における用語「a」および「an」ならびに「the」、更には同様の指示物は、この中で特に明記しておらず明らかに文脈と矛盾するのではない限り、単数および複数双方に当てはまるように解釈することとする。「comprising」、「having」、および「containing」は、特に明記しない限り、開放端用語(open-ended terms)(即ち、「含むが限定されない」を意味する)として解釈することとする。この中において値の範囲を詳述する場合、特にこの中で明記しない限り、その範囲に該当する別個の各値に個々に言及する簡略的な伝達方法として供することを意図するに過ぎず、別個の各値は、あたかもそれがこの中で個々に詳述されたかのように、明細書に組み込まれているものとする。この中に記載した全ての方法は、特にこの中で明記しない限り、そして明らかに文脈と矛盾するのではない限り、適した順序であればそのいずれでも実行することができる。この中で与えたいずれの例そして全ての例、または例示的なことば(例えば、「such as」)の使用も、本発明を一層際立たせることを意図するに過ぎず、そうでないことを主張しない限り、本発明の範囲に対する限定を規定するのではない。明細書におけるどの記載も、特許請求しない任意の要素を発明の実施に必須であることを示すものとして解釈すべきでないことは当然である。
本発明の好適な実施形態についてここに説明したが、発明を実施するために発明者に分かっている最良の形態を含んでいる。これらの好適な実施形態の変形は、前述の説明を読めば、当業者には明白となるはずである。発明者は、当業者がこのような変形を適宜採用することを予期し、発明者は、ここに具体的に記載した以外で発明が実用化されることを意図している。したがって、本発明は、適用可能な法律によって許される範囲において、これに添付された特許請求の範囲に明記されている主題の変更物および均等物全てを含むこととする。更に、その可能な全ての変形における前述の要素のいずれの組み合わせも、特にこの中で明記されていない限り、または明らかに文脈と矛盾しない限り、本発明に包含されるものとする。
図1は、本発明の実施形態を実施するために使用可能なコンピュータ・システムの一例を概略的に示す模式図である。 図2は、本発明の実施形態を組み込むのに適したネットワーク型計算環境の一例を示す模式図である。 図3は、本発明の実施形態による協調サービス・プラットフォームに合ったコンピュータ・ソフトウェア・アーキテクチャの一例を示すブロック図である。 図4は、本発明の実施形態による協調オブジェクト・モデルの一例を示すオブジェクト・モデリング図である。 図5は、本発明の実施形態によるコンタクト・オブジェクトの一例を示すオブジェクト・インターフェース図である。 図6は、本発明の実施形態によるプレゼンス・オブジェクトの一例を示すオブジェクト・インターフェース図である。 図7は、本発明の実施形態による公開オブジェクトの一例を示すオブジェクト・インターフェース図である。 図8は、本発明の実施形態による能力オブジェクトの一例を示すオブジェクト・インターフェース図である。 図9は、本発明の実施形態によるMecontactオブジェクトの一例を示すオブジェクト・インターフェース図である。 図10は、本発明の実施形態による会議オブジェクトの一例を示すオブジェクト・インターフェース図である。 図11は、本発明の実施形態による協調サービス・プラットフォームが実行するステップの一例を示すフローチャートである。 図12は、本発明の実施形態による協調サービス・プラットフォームが実行するステップの別の例を示すフローチャートである。 図13は、本発明の実施形態による招待場面の一例を示す模式図である。 図14は、本発明の実施形態による招待サービス・アプリケーション・プログラミング・インターフェースの一例を示す模式図である。 図15は、本発明の実施形態にしたがって招待を送るステップの一例を示すフローチャートである。 図16は、本発明の実施形態にしたがって招待サービスが招待を送るために実行するステップの一例を示すフローチャートである。 図17は、本発明の実施形態にしたがって待ユーザ・インターフェースから招待に対して応答するステップの一例を示すフローチャートである。 図18は、本発明の実施形態にしたがって、アプリケーション特定ユーザ・インターフェースから招待に応答するステップの一例を示すフローチャートである。 図19は、本発明の実施形態にしたがって、サーバレス・プレゼンス公開に参加するためのステップの一例を示すフローチャートである。 図20は、本発明の実施形態にしたがって協調的プレゼンス予約を行うためのステップの一例を示すフローチャートである。 図21は、本発明の実施形態にしたがって協調的プレゼンス予約を受け入れるためのステップの一例を示すフローチャートである。

Claims (2)

  1. ユーザが少なくとも1つコンタクトを該ユーザとの協調的な活動へ参加するよう招待するための協調的招待のためのコンピュータ実行可能命令を有するコンピュータ読み取り可能記憶媒体であって、前記協調的招待のためのコンピュータ実行可能命令は、コンピュータにより実行されると、該コンピュータに方法を実行させ、前記方法が、
    招待ユーザ・インターフェースが、ユーザの少なくとも1つのコンタクトを含むコンタクト・リストと、ユーザが利用可能な少なくとも1つの協調的活動を含む協調的活動リストとを、ユーザに提供するステップであって、前記招待ユーザ・インターフェースは、前記コンピュータのオペレーティング・システムにより提供され、前記招待ユーザ・インターフェースは、招待の発送を開始するように構成されたグラフィカル・ユーザ・インターフェースを含む、ステップと、
    前記招待ユーザ・インターフェースを介してユーザからの、前記コンタクト・リストのうちの少なくとも1つのコンタクトの選択と、前記協調的活動リストのうちの1つの協調的活動の選択とを受けるステップと、
    前記招待ユーザ・インターフェースが、選択した前記少なくとも1つのコンタクトがオンラインであるか否かを、前記少なくとも1つのコンタクトのプレゼンス・データに基づいて判定するステップと、
    選択した前記少なくとも1つのコンタクトがオンラインであるとき、前記招待ユーザ・インターフェースから、あるいは協調的アプリケーションから直接に、前記少なくとも1つのコンタクトに招待の発送を開始すべきか否かを、パラメータに基づいて判定するステップであって、前記協調的アプリケーションは前記招待ユーザ・インターフェースとは別個であり、前記協調的アプリケーションは前記オペレーティング・システムから起動される、ステップと、
    前記招待ユーザ・インターフェースから前記招待の発送を開始すべきであると判定した場合、
    前記招待ユーザ・インターフェースが前記少なくとも1つのコンタクトへの前記招待の発送を開始するステップと、
    前記協調的アプリケーションから直接に前記招待の発送を開始すべきであると判定した場合、
    前記招待の詳細を格納するステップであって、前記招待の詳細が、選択した前記少なくとも1つのコンタクトと、選択した前記協調的活動に関連するデータを含む、ステップと、
    前記オペレーティング・システムが、選択した前記協調的活動に関連した前記協調的アプリケーション起動するステップと、
    前記協調的アプリケーションが、格納した前記招待の詳細に基づいて前記少なくとも1つのコンタクトへの前記招待の発送を開始するステップと、
    を含む、コンピュータ読み取り可能記憶媒体。
  2. 請求項1記載の媒体において、前記招待ユーザ・インターフェースは、招待サービスのグラフィカル・ユーザ・インターフェースであり、前記招待サービスは、招待をコンタクトへ送ることおよび招待をコンタクトから受けることを可能にするように構成された、媒体。
JP2008508819A 2005-04-25 2005-08-01 協調的招待システムおよび方法 Active JP5254005B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/114,634 US7752253B2 (en) 2005-04-25 2005-04-25 Collaborative invitation system and method
US11/114,634 2005-04-25
PCT/US2005/027581 WO2006115527A1 (en) 2005-04-25 2005-08-01 Collaborative invitation system and method

Publications (3)

Publication Number Publication Date
JP2008539504A JP2008539504A (ja) 2008-11-13
JP2008539504A5 JP2008539504A5 (ja) 2012-08-30
JP5254005B2 true JP5254005B2 (ja) 2013-08-07

Family

ID=37188608

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008508819A Active JP5254005B2 (ja) 2005-04-25 2005-08-01 協調的招待システムおよび方法

Country Status (11)

Country Link
US (1) US7752253B2 (ja)
EP (1) EP1875368A4 (ja)
JP (1) JP5254005B2 (ja)
KR (1) KR101122801B1 (ja)
CN (1) CN101167068B (ja)
BR (1) BRPI0520057A2 (ja)
MX (1) MX2007013353A (ja)
MY (1) MY147346A (ja)
RU (1) RU2385487C2 (ja)
TW (1) TWI387287B (ja)
WO (1) WO2006115527A1 (ja)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7534169B2 (en) 2005-07-08 2009-05-19 Cfph, Llc System and method for wireless gaming system with user profiles
US20070060358A1 (en) 2005-08-10 2007-03-15 Amaitis Lee M System and method for wireless gaming with location determination
US10510214B2 (en) 2005-07-08 2019-12-17 Cfph, Llc System and method for peer-to-peer wireless gaming
US8566109B2 (en) * 2005-11-29 2013-10-22 Alcatel Lucent Common interest community service via presence messaging
US20080014964A1 (en) 2006-07-12 2008-01-17 Loc-Aid Technologies, Inc. System and method for generating use statistics for location-based applications
US9306952B2 (en) 2006-10-26 2016-04-05 Cfph, Llc System and method for wireless gaming with location determination
US8645709B2 (en) 2006-11-14 2014-02-04 Cfph, Llc Biometric access data encryption
US9411944B2 (en) 2006-11-15 2016-08-09 Cfph, Llc Biometric access sensitivity
US20080139187A1 (en) * 2006-12-12 2008-06-12 Ramachandran Subramanian Session establishment in a group communication system
US8255811B2 (en) * 2006-12-20 2012-08-28 International Business Machines Corporation Providing auto-sorting of collaborative partners or components based on frequency of communication and/or access in a collaboration system user interface
US20080162505A1 (en) * 2006-12-29 2008-07-03 Hill Charles R Context browser based navigation of pivotally related information for a document
US8321794B2 (en) * 2007-06-28 2012-11-27 Microsoft Corporation Rich conference invitations with context
US8387153B2 (en) * 2008-01-23 2013-02-26 Telefonaktiebolaget Lm Ericsson (Publ) Communication arrangement
US20090210822A1 (en) * 2008-02-18 2009-08-20 Microsoft Corporation Locating meeting users
US8200819B2 (en) * 2008-03-14 2012-06-12 Industrial Technology Research Institute Method and apparatuses for network society associating
US8219624B2 (en) * 2008-05-08 2012-07-10 International Business Machines Corporation System, method, and apparatus for electronic communication initiation contingent on busyness
US8412930B2 (en) 2008-10-09 2013-04-02 Microsoft Corporation Device authentication within deployable computing environment
EP2377032A4 (en) 2008-12-05 2012-11-07 Social Communications Co CADISM IN REAL INVISIBLE TIME
US10356136B2 (en) 2012-10-19 2019-07-16 Sococo, Inc. Bridging physical and virtual spaces
US20100281095A1 (en) * 2009-04-21 2010-11-04 Wehner Camille B Mobile grid computing
US20100274852A1 (en) * 2009-04-28 2010-10-28 Nokia Corporation Method and Apparatus for Sharing Context to One or More Users
US8893000B2 (en) * 2009-08-26 2014-11-18 International Business Machines Corporation Relocation between virtual environments based upon promotional and alert conditions
US20110055135A1 (en) * 2009-08-26 2011-03-03 International Business Machines Corporation Deferred Teleportation or Relocation in Virtual Worlds
US9160975B2 (en) * 2009-09-25 2015-10-13 At&T Intellectual Property I, L.P. Providing a dedicated channel accessible to a group of users
CN101699877B (zh) 2009-11-05 2012-10-10 中兴通讯股份有限公司 一种移动终端及建立端对端互联网协议连接的方法和系统
KR101059658B1 (ko) * 2010-07-01 2011-08-25 엔에이치엔(주) 개발자 인터페이스 제공 방법 및 시스템
WO2012058610A1 (en) * 2010-10-29 2012-05-03 Paul Everton Electronic emergency messaging system
US9256840B2 (en) * 2011-12-01 2016-02-09 Sap Se Establishing business networks using a shared platform
WO2013106490A1 (en) * 2012-01-09 2013-07-18 Nielsen Christine Marie System and methods for an improved communication and interactive news forum
TWI627987B (zh) 2012-02-28 2018-07-01 Cfph有限責任公司 提供遊戲服務的方法及裝置
CN103312587A (zh) * 2012-03-13 2013-09-18 腾讯科技(深圳)有限公司 约会管理方法、装置和终端
GB201210600D0 (en) 2012-06-14 2012-08-01 Microsoft Corp Call invites
GB201210598D0 (en) 2012-06-14 2012-08-01 Microsoft Corp Notification of communication events
GB201210596D0 (en) 2012-06-14 2012-08-01 Microsoft Corp Notification of communication events
GB2504461B (en) 2012-06-14 2014-12-03 Microsoft Corp Notification of communication events
EP2888674A4 (en) * 2012-08-22 2016-05-18 Nokia Technologies Oy METHOD AND APPARATUS FOR EXCHANGING STATE UPDATES DURING COLLABORATION
CN102946418B (zh) * 2012-10-26 2015-12-09 北京奇虎科技有限公司 一种终端设备、一种图片提供系统和一种图片传输方法
US10223156B2 (en) 2013-06-09 2019-03-05 Apple Inc. Initiating background updates based on user activity
US9462429B2 (en) * 2013-12-12 2016-10-04 Futurewei Technologies, Inc. Missed call notification by notifying contacts of the called party
US20160014059A1 (en) * 2015-09-30 2016-01-14 Yogesh Chunilal Rathod Presenting one or more types of interface(s) or media to calling and/or called user while acceptance of call
US9432796B2 (en) * 2014-05-30 2016-08-30 Apple Inc. Dynamic adjustment of mobile device based on peer event data
US9354860B2 (en) 2014-07-15 2016-05-31 Sap Se Optimizing software change processes using real-time analysis and rule-based hinting
WO2016057005A1 (ru) * 2014-10-08 2016-04-14 Вячеслав Васыльовыч Полиновськый Способ и система для создания трансфера технологий
US10491708B2 (en) 2015-06-05 2019-11-26 Apple Inc. Context notifications
US11836679B2 (en) * 2021-02-18 2023-12-05 Microsoft Technology Licensing, Llc Object for pre- to post-meeting collaboration
US11962427B2 (en) 2021-02-18 2024-04-16 Microsoft Technology Licensing, Llc Auto-generated object for impromptu collaboration
CN113709406B (zh) * 2021-10-27 2022-03-08 广州朗国电子科技股份有限公司 鸿蒙会议一体机的软件协同方法、系统和存储介质

Family Cites Families (103)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05242213A (ja) * 1992-03-02 1993-09-21 Casio Comput Co Ltd 線図作成装置
US7185054B1 (en) * 1993-10-01 2007-02-27 Collaboration Properties, Inc. Participant display and selection in video conference calls
US5689641A (en) * 1993-10-01 1997-11-18 Vicor, Inc. Multimedia collaboration system arrangement for routing compressed AV signal through a participant site without decompressing the AV signal
US6658568B1 (en) 1995-02-13 2003-12-02 Intertrust Technologies Corporation Trusted infrastructure support system, methods and techniques for secure electronic commerce transaction and rights management
US5854898A (en) 1995-02-24 1998-12-29 Apple Computer, Inc. System for automatically adding additional data stream to existing media connection between two end points upon exchange of notifying and confirmation messages therebetween
US5724508A (en) * 1995-03-09 1998-03-03 Insoft, Inc. Apparatus for collaborative computing
US5706462A (en) 1996-02-23 1998-01-06 Microsoft Corporation Self optimizing font width cache
US5917480A (en) 1996-06-04 1999-06-29 Microsoft Corporation Method and system for interacting with the content of a slide presentation
US5987376A (en) 1997-07-16 1999-11-16 Microsoft Corporation System and method for the distribution and synchronization of data and state information between clients in a distributed processing system
US6163809A (en) 1997-12-08 2000-12-19 Microsoft Corporation System and method for preserving delivery status notification when moving from a native network to a foreign network
US6078948A (en) 1998-02-03 2000-06-20 Syracuse University Platform-independent collaboration backbone and framework for forming virtual communities having virtual rooms with collaborative sessions
US6216110B1 (en) 1998-02-27 2001-04-10 Microsoft Corporation System and method for publishing calendar information to a publicly accessible location
US6108687A (en) 1998-03-02 2000-08-22 Hewlett Packard Company System and method for providing a synchronized display to a plurality of computers over a global computer network
US6155840A (en) 1998-09-18 2000-12-05 At Home Corporation System and method for distributed learning
US6363352B1 (en) 1998-11-13 2002-03-26 Microsoft Corporation Automatic scheduling and formation of a virtual meeting over a computer network
US6636888B1 (en) 1999-06-15 2003-10-21 Microsoft Corporation Scheduling presentation broadcasts in an integrated network environment
DE19943453A1 (de) 1999-09-11 2001-03-15 Daimler Chrysler Ag System und Verfahren zur Unterstützung der Gruppeninteraktion (GIA) in hypermedialen Informationsräumen
US6675205B2 (en) 1999-10-14 2004-01-06 Arcessa, Inc. Peer-to-peer automated anonymous asynchronous file sharing
US6526411B1 (en) 1999-11-15 2003-02-25 Sean Ward System and method for creating dynamic playlists
US6636889B1 (en) 2000-01-04 2003-10-21 International Business Machines Corporation System and method for client replication of collaboration space
US20010035976A1 (en) 2000-02-15 2001-11-01 Andrew Poon Method and system for online presentations of writings and line drawings
US6745178B1 (en) 2000-04-28 2004-06-01 International Business Machines Corporation Internet based method for facilitating networking among persons with similar interests and for facilitating collaborative searching for information
US20030158897A1 (en) 2000-05-09 2003-08-21 Viryanet Ltd. Networked platform for creating and supporting communities
US6986046B1 (en) * 2000-05-12 2006-01-10 Groove Networks, Incorporated Method and apparatus for managing secure collaborative transactions
GB2365671A (en) 2000-05-17 2002-02-20 Ibm Teleconferencing system and method
JP2004531780A (ja) 2000-06-22 2004-10-14 マイクロソフト コーポレーション 分散型コンピューティングサービスプラットフォーム
US6968179B1 (en) * 2000-07-27 2005-11-22 Microsoft Corporation Place specific buddy list services
US6701344B1 (en) 2000-07-31 2004-03-02 The Boeing Company Distributed game environment
US6714966B1 (en) 2000-07-31 2004-03-30 The Boeing Company Information delivery service
JP3946426B2 (ja) * 2000-09-28 2007-07-18 株式会社日立製作所 内燃機関の可変動弁装置
AU784512B2 (en) * 2000-10-19 2006-04-13 International Business Machines Corporation Method and system for persistent chat sessions
GB2372846A (en) 2000-11-15 2002-09-04 Vhsoft I P Company Ltd Selective distribution of electronic files via a common access platform
US20020073204A1 (en) 2000-12-07 2002-06-13 Rabindranath Dutta Method and system for exchange of node characteristics for DATA sharing in peer-to-peer DATA networks
US7925703B2 (en) 2000-12-26 2011-04-12 Numedeon, Inc. Graphical interactive interface for immersive online communities
US7020686B2 (en) 2000-12-29 2006-03-28 International Business Machines Corporation Method and system for providing synchronous communication and person awareness in a place
US7127676B2 (en) 2000-12-29 2006-10-24 International Business Machines Corporation Method and system for providing a separate browser window with information from the main window in a simpler format
US6791582B2 (en) 2000-12-29 2004-09-14 International Business Machines Corporation Method and system for identifying and displaying information that is new or has been updated in a place
WO2002057917A2 (en) 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
US7302634B2 (en) 2001-03-14 2007-11-27 Microsoft Corporation Schema-based services for identity-based data access
US7176942B2 (en) * 2001-03-23 2007-02-13 Dassault Systemes Collaborative design
US7065587B2 (en) 2001-04-02 2006-06-20 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) and multilevel cache for use therewith
US7171415B2 (en) 2001-05-04 2007-01-30 Sun Microsystems, Inc. Distributed information discovery through searching selected registered information providers
GB2378268B (en) 2001-06-04 2005-08-03 Gordon Ross A method of providing an interactive multi dimensional visual user interface to groups of users
US6801604B2 (en) 2001-06-25 2004-10-05 International Business Machines Corporation Universal IP-based and scalable architectures across conversational applications using web services for speech and audio processing resources
US7383433B2 (en) 2001-07-31 2008-06-03 Sun Microsystems, Inc. Trust spectrum for certificate distribution in distributed peer-to-peer networks
US20030036941A1 (en) 2001-08-17 2003-02-20 International Business Machines Corporation System and method for scheduling multiple meetings on an electronic calendar
JP4446368B2 (ja) * 2001-09-14 2010-04-07 富士通株式会社 コラボレーション方法、システム、プログラム及び記録媒体
US7493363B2 (en) * 2001-09-19 2009-02-17 Microsoft Corporation Peer-to-peer group management and method for maintaining peer-to-peer graphs
US20030217096A1 (en) 2001-12-14 2003-11-20 Mckelvie Samuel J. Agent based application using data synchronization
JP3967589B2 (ja) 2001-12-28 2007-08-29 富士通株式会社 広告配信方法及び広告配信装置
US20030126027A1 (en) 2001-12-31 2003-07-03 Kimberly-Clark Worldwide Integrated web ring site and method for presenting information
US20030130014A1 (en) * 2002-01-07 2003-07-10 Rucinski David B Reduced complexity user interface
US20040128350A1 (en) 2002-03-25 2004-07-01 Lou Topfl Methods and systems for real-time virtual conferencing
US20030217073A1 (en) 2002-05-14 2003-11-20 Walther Dan E. Increasing the level of automation when scheduling and managing meetings
US20030217142A1 (en) 2002-05-15 2003-11-20 Microsoft Corporation Method and system for supporting the communication of presence information regarding one or more telephony devices
GB2391135B (en) 2002-06-28 2006-01-11 Nokia Corp User group creation
US20040111423A1 (en) 2002-07-13 2004-06-10 John Irving Method and system for secure, community profile generation and access via a communication system
US7275215B2 (en) 2002-07-29 2007-09-25 Cerulean Studios, Llc System and method for managing contacts in an instant messaging environment
WO2004012087A1 (ja) * 2002-07-30 2004-02-05 Sony Corporation プログラム、情報処理方法および装置
GB0218711D0 (en) 2002-08-12 2002-09-18 Mitel Knowledge Corp System and method for facilitating communication using presence and communication services
US7234117B2 (en) * 2002-08-28 2007-06-19 Microsoft Corporation System and method for shared integrated online social interaction
JP2004102459A (ja) * 2002-09-06 2004-04-02 Sony Corp 情報処理システムおよび方法、情報処理装置および方法、並びにプログラム
US8204992B2 (en) * 2002-09-26 2012-06-19 Oracle America, Inc. Presence detection using distributed indexes in peer-to-peer networks
US20040078436A1 (en) 2002-10-18 2004-04-22 International Business Machines Corporation Adding meeting information to a meeting notice
US7328243B2 (en) * 2002-10-31 2008-02-05 Sun Microsystems, Inc. Collaborative content coherence using mobile agents in peer-to-peer networks
US7249123B2 (en) 2002-10-31 2007-07-24 International Business Machines Corporation System and method for building social networks based on activity around shared virtual objects
US9100218B2 (en) 2002-11-18 2015-08-04 Aol Inc. Enhanced buddy list interface
US20040143603A1 (en) 2002-11-21 2004-07-22 Roy Kaufmann Method and system for synchronous and asynchronous note timing in a system for enhancing collaboration using computers and networking
US8095409B2 (en) 2002-12-06 2012-01-10 Insors Integrated Communications Methods and program products for organizing virtual meetings
US20040122901A1 (en) * 2002-12-20 2004-06-24 Nortel Networks Limited Providing computer presence information to an integrated presence system
AU2002359846A1 (en) 2002-12-20 2004-07-22 Philippe Bennett Virtual meetings
US7209948B2 (en) * 2002-12-20 2007-04-24 International Business Machines, Corporation Collaborative review of distributed content
US20040141005A1 (en) 2003-01-22 2004-07-22 International Business Machines Corporation System and method for integrating online meeting materials in a place
US7701882B2 (en) 2003-02-10 2010-04-20 Intercall, Inc. Systems and methods for collaborative communication
JP2004246812A (ja) * 2003-02-17 2004-09-02 Nippon Telegr & Teleph Corp <Ntt> ネットワークコミュニティシステム及びネットワークコミュニティの構成方法並びに該システムに用いる端末装置
JP4389450B2 (ja) * 2003-02-24 2009-12-24 富士ゼロックス株式会社 作業空間形成装置
US20040184445A1 (en) 2003-03-18 2004-09-23 Burne Jeffrey K. Computer algorithm and method for facilitating the networking of individuals
US7549924B2 (en) * 2003-05-09 2009-06-23 Microsoft Corporation Instant messaging embedded games
US7454460B2 (en) * 2003-05-16 2008-11-18 Seiko Epson Corporation Method and system for delivering produced content to passive participants of a videoconference
US20040243580A1 (en) 2003-05-27 2004-12-02 Outi Markki System and method for message handling in a peer-to-peer environment
US7539771B2 (en) 2003-06-06 2009-05-26 Microsoft Corporation Organizational locality in prefix-based structured peer-to-peer overlays
US7337213B2 (en) 2003-06-19 2008-02-26 International Business Machines Corporation Method and apparatus for managing messages in a messaging session
US20050009537A1 (en) 2003-07-11 2005-01-13 Crocker Ronald T. Method and apparatus for facilitating wireless presence-based services
US20050027805A1 (en) 2003-07-15 2005-02-03 Aoki Norihiro Edwin Instant messaging and enhanced scheduling
US8140980B2 (en) * 2003-08-05 2012-03-20 Verizon Business Global Llc Method and system for providing conferencing services
US7512653B2 (en) 2003-08-11 2009-03-31 Sony Corporation System and method for dynamically grouping messaging buddies in an electronic network
US7546343B2 (en) 2003-09-23 2009-06-09 Alcatel-Lucent Usa Inc. System and method for supporting virtual conferences
US7200638B2 (en) 2003-10-14 2007-04-03 International Business Machines Corporation System and method for automatic population of instant messenger lists
US8260857B2 (en) 2003-10-23 2012-09-04 Microsoft Corporation One to many data projection system and method
US20050102245A1 (en) 2003-11-07 2005-05-12 International Business Machines Corporation System, method, and service for negotiating schedules while preserving privacy through a shared representation
US20050125496A1 (en) 2003-12-03 2005-06-09 International Business Machines Corporation Automatically initiating an instant messaging action when a subscriber's availability status changes
US20050198173A1 (en) 2004-01-02 2005-09-08 Evans Alexander W. System and method for controlling receipt of electronic messages
US7885901B2 (en) 2004-01-29 2011-02-08 Yahoo! Inc. Method and system for seeding online social network contacts
EP1587239A1 (en) 2004-04-14 2005-10-19 Siemens Mobile Communications S.p.A. Method of and apparatus for server-side management of buddy lists
US7444379B2 (en) 2004-06-30 2008-10-28 International Business Machines Corporation Method for automatically setting chat status based on user activity in local environment
US20060075091A1 (en) 2004-09-30 2006-04-06 Siemens Information And Communication Networks, Inc. System and method for historical presence map
US7464168B1 (en) 2004-10-19 2008-12-09 Sun Microsystems, Inc. Mechanism for decentralized entity presence
US20060112177A1 (en) 2004-11-24 2006-05-25 Microsoft Corporation Method and system for controlling access to presence information on a peer-to-peer basis
US20060190600A1 (en) 2005-02-18 2006-08-24 Siemens Communications, Inc. Group based presence availability management
US8036140B2 (en) 2005-04-22 2011-10-11 Microsoft Corporation Application programming interface for inviting participants in a serverless peer to peer network
US20060242235A1 (en) 2005-04-22 2006-10-26 Microsoft Corporation Presence monitoring in a serverless peer-to-peer system
US20060242236A1 (en) 2005-04-22 2006-10-26 Microsoft Corporation System and method for extensible computer assisted collaboration
US7617281B2 (en) 2005-04-25 2009-11-10 Microsoft Corporation System and method for collaboration with serverless presence

Also Published As

Publication number Publication date
CN101167068B (zh) 2010-04-21
EP1875368A1 (en) 2008-01-09
TWI387287B (zh) 2013-02-21
RU2007139520A (ru) 2009-04-27
US20060242639A1 (en) 2006-10-26
JP2008539504A (ja) 2008-11-13
KR20080010390A (ko) 2008-01-30
BRPI0520057A2 (pt) 2009-04-14
EP1875368A4 (en) 2010-11-24
TW200638717A (en) 2006-11-01
MY147346A (en) 2012-11-30
RU2385487C2 (ru) 2010-03-27
WO2006115527A1 (en) 2006-11-02
CN101167068A (zh) 2008-04-23
US7752253B2 (en) 2010-07-06
MX2007013353A (es) 2008-01-11
KR101122801B1 (ko) 2012-03-22

Similar Documents

Publication Publication Date Title
JP5254005B2 (ja) 協調的招待システムおよび方法
US7617281B2 (en) System and method for collaboration with serverless presence
KR101251689B1 (ko) 서버리스 피어 투 피어 네트워크에서 참가자를 초대하기위한 애플리케이션 프로그래밍 인터페이스
AU2004211407B2 (en) Systems and methods for collaborative communication
JP2008539504A5 (ja)
EP1974501B1 (en) Ad-hoc creation of group based on contextual information
CN102904733B (zh) 分布式、可缩放、可插入的会议体系结构
US20060031291A1 (en) System and method of video presence detection
US20040148333A1 (en) Peer-to-peer grouping interfaces and methods
CA2371078A1 (en) A distributed system to intelligently establish sessions between anonymous users over various networks
JP2009500708A (ja) ピアツーピアグループ管理のフレームワークおよび方法
RU2413289C2 (ru) Способ и система для наложения ограничений на сессии
US20060239234A1 (en) Application programming interface for discovering endpoints in a serverless peer to peer network
WO2007036143A1 (fr) Procede et systeme pour emettre des informations de presence
US20050091301A1 (en) Systems and methods for multiparty session invite
CN110971506B (zh) 一种去中心化实时集群通讯方法、装置、设备及系统
US20060242236A1 (en) System and method for extensible computer assisted collaboration
DONG Application group support infrastructure for octopus: A multimedia communication middleware

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080801

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101216

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110315

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110323

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110411

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110418

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110512

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110519

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110616

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20110906

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120113

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120412

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120419

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20120713

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130228

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130327

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130417

R150 Certificate of patent or registration of utility model

Ref document number: 5254005

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160426

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250