JP2004334847A - ピアツーピアネットワークでの一時的接続を介するメッセージの通信 - Google Patents

ピアツーピアネットワークでの一時的接続を介するメッセージの通信 Download PDF

Info

Publication number
JP2004334847A
JP2004334847A JP2004110407A JP2004110407A JP2004334847A JP 2004334847 A JP2004334847 A JP 2004334847A JP 2004110407 A JP2004110407 A JP 2004110407A JP 2004110407 A JP2004110407 A JP 2004110407A JP 2004334847 A JP2004334847 A JP 2004334847A
Authority
JP
Japan
Prior art keywords
session
message
participant
user
data
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.)
Granted
Application number
JP2004110407A
Other languages
English (en)
Other versions
JP4658509B2 (ja
Inventor
Philip Ti-Fei Su
ティ−フェイ ス フィリップ
Robert J Jarrett
ジェイ.ジャレット ロバート
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 JP2004334847A publication Critical patent/JP2004334847A/ja
Application granted granted Critical
Publication of JP4658509B2 publication Critical patent/JP4658509B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • EFIXED CONSTRUCTIONS
    • E03WATER SUPPLY; SEWERAGE
    • E03CDOMESTIC PLUMBING INSTALLATIONS FOR FRESH WATER OR WASTE WATER; SINKS
    • E03C1/00Domestic plumbing installations for fresh water or waste water; Sinks
    • E03C1/12Plumbing installations for waste water; Basins or fountains connected thereto; Sinks
    • E03C1/122Pipe-line systems for waste water in building
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/06Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1813Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
    • H04L12/1827Network arrangements for conference optimisation or adaptation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/06Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
    • H04W4/08User group management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/40Connection management for selective distribution or broadcast
    • EFIXED CONSTRUCTIONS
    • E03WATER SUPPLY; SEWERAGE
    • E03CDOMESTIC PLUMBING INSTALLATIONS FOR FRESH WATER OR WASTE WATER; SINKS
    • E03C2201/00Details, devices or methods not otherwise provided for
    • E03C2201/60Reducing noise in plumbing systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Hydrology & Water Resources (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Environmental & Geological Engineering (AREA)
  • Public Health (AREA)
  • Water Supply & Treatment (AREA)
  • Structural Engineering (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Computer And Data Communications (AREA)
  • Telephonic Communication Services (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】 ピアツーピアネットワークを介する、任意選択で協調セッション(たとえば「電子ホワイトボード」セッション)の参加者への一時的接続を介する、メッセージを通信するのに有用なシステムおよび方法を提供する。
【解決手段】 上記のシステムおよび方法の例に、たとえば接続の一過性(たとえば無線接続)のゆえに参加者がセッションへの接続を失うかセッションから離れる時であっても、参加者の間でデータが失われず、接続が失われずに、参加者が簡単にセッションに出入りできるようにするデータ転送用のセッションを確立することが含まれる。これらの例示のシステムおよび方法を用いると、セッションの参加者が、進行中のセッションで前に送信されたデータに簡単にアクセスでき、追い付けるようになる。さまざまな開示されるデータ構造は、メッセージを通信するさまざまなシステムおよび方法でも有用である。
【選択図】 図8

Description

本発明は、全般的にはピアツーピアネットワーク(peer−to−peer network)を介してメッセージを通信するシステム、方法、およびデータ構造に関する。そのようなシステム、方法、およびデータ構造は、たとえば、「電子ホワイトボード(electronic whiteboard)」セッションまたは類似物などの協調セッションに参加するために、一時的な(transient)接続を介してメッセージを通信するのに使用することができる。
さまざまな協調アプリケーションが周知であり、これによって、異なるワークステーションのユーザが、電子データおよび情報を同時に共用でき、同一の情報を同時に見ることができ、リアルタイムでその情報を変更でき、変更された情報を見ることができるようになる(「電子ホワイトボード」セッション、「NetMeeting(登録商標)」セッション(「NetMeeting(登録商標)」は米国ワシントン州レッドモンドのMicrosoft Corporation社の登録商標である)、「WebEx(登録商標)」セッション(「WebEx(登録商標)」は米国カリフォルニア州サンノゼのWebEx Communication Inc.社の登録商標である)に類似する)。そのようなアプリケーションでは、通常は、共通サーバが使用され、すべての参加者が、共通サーバを介してアプリケーションおよび電子ホワイトボードセッションに接続される。したがって、さまざまなセッション参加者が、データの追加、削除、および/または他の修正を行うデータメッセージを送信する際に、サーバは、そのメッセージを処理し、その結果を参加者に使用可能にする。
多くの場合、2つまたはそれ以上のセッション参加者が、システムの既存データに関して、おそらくは衝突する着信メッセージを電子ホワイトボードセッションに送信する。そのような場合、サーバは、どの着信データメッセージが処理されるかならびに着信信号の処理順序を判定し、ある所定のプロトコル(通常は受信の時刻)に従って、衝突し、かつ/または一貫性がない着信メッセージデータ命令を解決する。
別法では、いくつかの場合、共通サーバに接続するのではなく、セッション内のある参加者のマシンが、事実上の「サーバ」として指定される。その場合、この参加者のマシンによって、衝突するまたは着信のメッセージデータが解決される(やはり、通常は、そのマシンに着信するデータメッセージの時刻に基づいて)。
実際のサーバまたは事実上のサーバを使用するそのような使用可能な電子ホワイトボードセッションは、有用であるが、有用性を制限するある種の不利益をこうむる。たとえば、電子ホワイトボードセッションをセットアップし、セッションに参加するのに必要な情報について潜在的な参加者に知らせることは、特に多数の参加者が加わる必要があるかその可能性がある場合、時間がかかり、混乱を招くプロジェクトになる可能性がある。ユーザは、通常は、前に入手したパスワードおよび他の接続情報を使用して、セッションにログインする必要がある。少なくともいくつかの場合、電子ホワイトボードセッションをセットアップする当事者が、ログイン情報を受け取り、これにアクセスできなければならない人を判定することが、困難である場合がある。このセキュリティは、機密通信のためにいくつかの情況で必要になる可能性があるが、この事前の計画によって、特に即座にセッションが必要である場合、電子ホワイトボード通信を使用することが不便になり、ときには不可能になる。さらに、潜在的な参加者が、必要なログイン情報を受け取らないか突き止めることができない場合、その人は、セッションに参加できないか、参加がかなり遅れる可能性がある。さらに、多数のユーザが、さまざまなタイプのセッションに使用されるサーバを知らない可能性があり、これによって、セッションに参加する能力が妨げられる。
多くの通信が、このレベルのセキュリティを必要としない。たとえば、ローカルサブネットまたはイントラネットを介して通信する、会社の施設内に配置された単一の会社の従業員は、通常の電子ホワイトボード通信の追加のログイン機能およびセキュリティ機能を必要としない場合がある。
さらに、なんらかの理由で伝送が中断される場合、単一のサーバ(実際のサーバまたは事実上のサーバ)を使用することによって、データ転送が困難になる可能性がある。伝送の中断は、特に無線接続などの一時的接続を介してシステムに接続されるユーザに関して、頻繁に発生する。無線接続(または他の接続)の中断によって、ユーザがセッションに再ログインする必要が生じ、遅延および通信の問題が引き起こされる可能性がある。さらに、事実上のサーバとして働くマシンのユーザが、なんらかの理由でセッションから離れる場合、これによって、他の残りのユーザに関して中断および/またはセッション障害がもたらされる可能性がある。
したがって、当技術分野には、上で説明したさまざまな短所の1つまたは複数を防ぐ、複数のユーザが協調の方法(たとえば電子ホワイトボードセッション)でデータメッセージを互いに確実に通信できるようにするアプリケーションの必要がある。そのようなシステムによって、参加者がセッションに自由に出入りできるようになると同時に、後から来る参加者および/または他の参加者がセッションを離れた後に来る参加者を含む、セッションへのすべての参加者へのすべてのメッセージデータの信頼性のある伝送が可能にならなければならない。
本発明の諸態様は、ピアツーピアネットワークを介する、任意選択で協調セッション(たとえば「電子ホワイトボード」セッション)の参加者への一時的接続を介する、メッセージ通信に有用なシステム、方法、およびデータ構造に関する。一態様では、本発明は、たとえば接続の一過性のゆえに参加者がセッションへの接続を失うかセッションから離れるときであっても、参加者の間でデータが失われず、接続が失われずに、参加者が簡単にセッションに出入りできるようにするデータ転送用のセッションを確立するシステムおよび方法に関する。別の態様では、本発明は、参加者が、進行中のセッションに簡単にアクセスでき、前に伝送されたデータに追い付けるようにするシステムおよび方法に関する。さまざまなデータ構造も、メッセージを通信するさまざまなシステムおよび方法で有用である。そのようなデータ構造は、セッションの参加者へのメッセージペイロードのブロードキャスト(broadcast)に使用することができる。他の有用なデータ構造に、任意選択でユーザが複数の参加者を含むデータ転送セッションにかかわるときの、ネットワークを介するユーザの識別データのブロードキャストに関するデータを含めることができる。メッセージペイロードおよびユーザ識別データをブロードキャストすることによって、ネットワーク上の他のユーザが、進行中のセッションにかかわり、セッションに参加しなければならないかどうかを簡単に判定することができる。
本発明の上記および他の目的、特徴、および長所は、添付図面と共に解釈される下記の詳細な説明から簡単に明白になり、完全に理解される。
上で説明したように、本発明の諸態様は、無線接続などの一時的接続を使用して一緒に接続されるワークステーションの間の通信を含む、ピアツーピアネットワークを介するメッセージの通信のシステム、方法、およびデータ構造に関する。以下の説明は、読者を助けるためにサブセクションに分割される。サブセクションには、用語、本発明のさまざまな態様の全般的な説明、ハードウェアの例、本発明によるシステム、方法、およびデータ構造の例、および結論が含まれる。
I.用語
本明細書で、下記の用語が使用される。
用語「メッセージ」、「メッセージデータ」、または「データメッセージ」は、全般的に、本明細書で交換可能に使用される。これらの用語は、あるマシンから、他のマシンによる受信のために送信されるすべてのデータを意味する。用語「メッセージペイロード」は、全般的に、データメッセージのうちで、セッションの他のユーザに転送される情報を含む部分を指す。
「ユーザ」は、従来のサブネット接続、イントラネット接続、またはインターネット接続を介するなど、ある方法で通信ネットワークに接続された当事者を意味する。接続は、有線接続、無線接続、または当技術分野で既知の従来の接続など、あらゆる従来の接続とすることができる。
「セッション」は、通信ネットワークを介して互いに通信する複数のネットワークユーザの出会いを意味する。セッションにかかわるユーザは、共通のサブネット上、異なるサブネット上、またはその両方に位置することができる。通信は、視覚的、聴覚的、またはこの組合せとすることができる。
「参加者(パーティシパント)」は、セッションにかかわるユーザを意味する。
「マシン」は、通信ネットワークを介する通信に使用されるすべての装置を指す。「マシン」には、コンピュータ端末またはワークステーション、デスクトップPC、ペンベースまたはスタイラスベースのPC、ノートブックコンピュータ、および/またはラップトップコンピュータ、パームトップ機、PDA、電話機、および類似物が含まれるが、必ずしもこれに制限されない。
「コンピュータ可読媒体」は、コンピュータシステムのユーザによってアクセスできるすべての使用可能媒体を意味する。制限ではなく例として、「コンピュータ可読媒体」に、コンピュータ記憶媒体および通信媒体を含めることができる。「コンピュータ記憶媒体」には、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報の記憶のすべての方法または技術で実施された、揮発性および不揮発性の、取外し可能および取外し不能の媒体が含まれる。「コンピュータ記憶媒体」には、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術;CD−ROM、デジタル多用途ディスク(DVD)、または他の光学記憶装置;磁気カセット、磁気テープ、磁気ディスク記憶装置、または他の磁気記憶装置;あるいは所望の情報の記憶に使用でき、コンピュータによってアクセスできるすべての他の媒体が含まれるが、これに制限はされない。「通信媒体」によって、通常は、搬送波または他のトランスポート機構などの変調されたデータ信号内で、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータが実施され、通信媒体には、すべての情報配布媒体が含まれる。用語「変調されたデータ信号」は、信号内で情報をエンコードするような方法で1つまたは複数の特性を設定または変更された信号を意味する。制限ではなく例として、通信媒体に、有線ネットワークまたは直接配線接続などの有線媒体と、音響、RF、赤外線、および他の無線媒体などの無線媒体が含まれる。上記のいずれかの組合せも、「コンピュータ可読媒体」の範囲に含まれなければならない。
II.本発明のさまざまな態様の全般的な説明
本発明の諸態様は、ピアツーピアネットワークを介するメッセージの通信に有用なシステム、方法、およびデータ構造に関する。そのようなシステム、方法、およびデータ構造は、たとえば、協調セッションにピアツーピアの方法で参加するための一時的接続を介するメッセージの通信に使用することができる。
本発明の1つのより特定の態様は、ネットワーク上でデータを転送する方法に関する。本発明のこの態様には、(a)データ転送するために、複数の参加者を含むセッションを確立することと、(b)前記セッションにかかわる参加者からのメッセージをブロードキャストすることであって、前記メッセージは、少なくとも、ブロードキャストする参加者の識別子、メッセージ識別子、セッション情報、およびメッセージペイロードを含む、ブロードキャストすることと、(c)前記ブロードキャストされるメッセージを受信するユーザは前記セッションの参加者であるかどうかを判定することと、(d)前記ユーザは前記セッションの参加者であるとき、前記ユーザについて前記メッセージを処理することとが含まれる。前記ユーザが前記セッションの参加者であるかどうかを判定することは、本発明の少なくともいくつかの例で、(a)前記ユーザは前記セッションでアクティブであるかどうかを判定すること、または(b)前記ユーザはセッション参加者リストに含まれるかどうかを判定することを含めることができる。他の参加者へのデータ転送に悪影響を及ぼさずに、参加者をセッションに自由に追加することができ、かつ/または参加者がセッションから自由に離れることができる。
本発明によるいくつかの例示的方法では、新たに入手されたメッセージを前記ユーザまたは参加者のために処理することの前に、前記方法は、さらに、前記ユーザまたは参加者は前記セッション内のすべての前のメッセージを受信したかどうかを判定することを含む。未受信メッセージが発見される場合、これらのメッセージを、ユーザまたは参加者のために入手することができる。未受信メッセージは、任意の適切な方法で入手することができる。たとえば、セッションの別の参加者からのブロードキャストを介して、任意選択でメッセージを必要とするユーザまたは参加者が不足(missing)メッセージを要求した後に、そのメッセージを入手することができる。本発明のこの態様のいくつかの例で、セッション参加者は、不足メッセージ要求を受信するとき、1つまたは複数の未受信の前のメッセージを送信するかどうかをランダムに決定する。メッセージ要求および不足メッセージの送信は、ユーザがメッセージヒストリ内のすべてのメッセージを受信するまで繰り返すことができる。
ユーザがセッションの参加者であるかどうかの判定は、本発明から逸脱せずに、任意の適切な方法で達成することもできる。たとえば、ユーザの識別(たとえばID番号)を、セッションへの参加を許可される全ユーザのマスタリスティングに対して検査することができる。別の例として、1つまたは複数の既存セッション参加者が、新規ユーザが存在するかネットワーク上で求めに応じられることの表示を受信することができ、任意選択で新規ユーザをセッションに追加しなければならないかどうかをセッションの1つまたは複数の参加者に尋ねた後に、そのユーザをセッションに追加することができる。さらに別の例として、新規ユーザが存在するかネットワーク上で求めに応じられることの表示を受信した後に、この方法に、さらに、セッションに参加するように新規ユーザを勧誘する(任意選択で、その勧誘を発行しなければならないかどうかをセッションの少なくとも1人の参加者に尋ねた後に)ことと、勧誘が受け入れられる場合に限ってその人を追加することを含めることができる。
本発明の別の態様は、進行中のセッションへのアクセスを得る方法に関する。本発明のこの態様のいくつかの例の方法に、(a)セッションが行われているネットワークにアクセスすることであって、前記ネットワークは、前記セッション内でアクティブでないユーザによってアクセスされ、前記セッションは、メッセージデータを送信し、受信することができる複数の参加者を含むことと、(b)前記ユーザを前記セッションに参加者として追加するかどうかを判定することと、(c)前記ユーザは前記セッションに参加者として追加されるとき、前記セッション中に前に送信されたすべてのメッセージを前記ユーザにブロードキャストすることとが含まれる。ユーザをセッションに追加するかどうかの判定は、上で説明したさまざまな方法を含む任意の適切な方法で達成することができる。
本発明のさらなる態様は、セッションの複数の参加者の間でメッセージを通信する方法に関する。本発明のこの態様のいくつかの例に、(a)少なくとも第1参加者ワークステーションおよび第2参加者ワークステーションにピアツーピアの方法で接続することであって、各参加者ワークステーションは、前記セッション内の他の参加者ワークステーションにピアツーピアの方法でメッセージデータをブロードキャストすることができ、前記セッション内の他の参加者ワークステーションからブロードキャストされたメッセージデータをピアツーピアの方法で受信することができることと、(b)前記第1参加者ワークステーションによって第1メッセージをブロードキャストすることと、(c)少なくとも前記第2参加者ワークステーションによって前記第1メッセージを受信することと、(d)前記第1参加者ワークステーションからブロードキャストされたときに前記第1メッセージを受信しなかった、前記セッションの少なくとも1つの他の参加者ワークステーションに前記第2参加者ワークステーションから前記第1メッセージをブロードキャストすることとが含まれる。さらに、本発明のこれらの態様の少なくともいくつかの例で、新しい参加者ワークステーションをセッションに追加することができ、これらの新たに追加されるワークステーションは、セッションから離れたワークステーションからのメッセージを含むそのセッションの以前のメッセージを、セッションにかかわるままである参加者ワークステーションから入手することができる。
本発明のさらに別の態様は、ネットワーク上の複数の参加者の間でのデータ転送を伴うセッション中にネットワークを介して受信されるデータを処理するシステムに関する。そのようなシステムに、本発明の少なくともいくつかの例で、(a)前記セッションにかかわる参加者からのブロードキャストメッセージを受信するように適合された受信器であって、前記メッセージは、少なくとも、ブロードキャストする参加者の識別子、メッセージ識別子、セッション情報、およびメッセージペイロードを含む受信器と、(b)前記メッセージを受信するネットワークユーザが前記セッションの参加者であるかどうかを判定し、前記ユーザが前記セッションの参加者であるときに前記メッセージを処理するようにプログラムされ、適合されたプロセッサとが含まれる。前記プロセッサは、少なくともいくつかの例で、(a)前記ユーザは前記セッションのアクティブな参加者であるかどうかを判定すること、または(b)前記ユーザは前記セッションの参加者リストに含まれるかどうかを判定することの少なくとも1つによって前記ユーザは前記セッションの参加者であるかどうかを判定することができる。前記メッセージを処理する前に、前記プロセッサは、さらに、前記ユーザが前記セッション内のすべての前のメッセージを受信したかどうかを判定することができ、メッセージが受信されていない場合、ブロードキャストシステムをアクティブ化して、セッションの前に受信されなかったメッセージの要求を送信することができる。
本発明のさらに別の態様は、上で説明した発明による方法を含むさまざまな情報を実施するのに有用なワークステーションに関する。本発明のこの態様によるいくつかの例のワークステーションに、(a)その上でセッションが行われているネットワークにアクセスするように適合された接続システムであって、前記セッションは、メッセージデータを送信し、受信することができる複数の参加者を含む接続システムと、(b)前記ワークステーションのユーザが前記セッションの参加者であるかどうかを判定するようにプログラムされ、適合されたプロセッサと、(c)前記ユーザが前記セッションの参加者であると判定されたとき、前記セッション中に送信されるメッセージデータを受信するように適合されたメッセージ受信システムとを含めることができる。
本発明の他の例は、セッションの複数の参加者の間でメッセージを通信するシステムに関する。そのようなシステムに、本発明の少なくともいくつかの例で、ピアツーピアネットワーク内で接続される複数の参加者ワークステーションであって、前記参加者ワークステーションの少なくともいくつかは、前記ネットワークを介して前記セッション内の他の参加者ワークステーションにメッセージデータをブロードキャストすることと、前記ネットワークを介して前記セッション内の他の参加者ワークステーションからのブロードキャストされたメッセージデータを受信することとができる、複数の参加者ワークステーションを含めることができる。いくつかの例によるシステムで、さまざまな個々の参加者ワークステーションが、自由に前記セッションから退出することができ、前記退出する参加者ワークステーションによって前記セッションから退出する前にブロードキャストされた前記メッセージデータを、必要な場合、他の参加者ワークステーションによって、そのメッセージデータを前に受信した残りの参加者ワークステーションから入手することができる。既存のセッションから離れることのほかに、新しい参加者ワークステーションは、前記セッションに自由に入ることができ、前記セッションに残っている1つまたは複数の参加者ワークステーションから前のメッセージデータ(それ以降に前記セッションから離れたワークステーションからのメッセージデータを含む)を入手することができる。
本発明の別の例示的な態様では、サブネット上のマシンおよび/またはセッションから着信メッセージデータを受信するマシンは、セッションに能動的に参加していないものであっても、着信メッセージデータを受信し、ログ記録し、維持することができる。したがって、本発明の少なくともいくつかの例で、特定のセッションにかかわらないマシンであっても、セッションに新たに到着する参加者にデータを再ブロードキャストし、かつ/またはセッション内の不足メッセージ要求に応答することができる。
本発明の態様は、セッションの参加者にメッセージデータを送信するためのデータ構造を記憶されたコンピュータ可読媒体にも関する。いくつかの例で、このデータ構造に、(a)メッセージIDを表すデータを含む第1データフィールドと、(b)セッション情報を表すデータを含む第2データフィールドと、(c)メッセージペイロードを表すデータを含む第3データフィールドとを含めることができる。前記セッション情報を表す前記データは、本発明の少なくともいくつかの例で、セッションID、セッション参加者リスト、およびセッションメッセージヒストリからなる群から選択される少なくとも1つのメンバを表すデータを含むことができる。さらなる追加の例で、データ構造に、さらに、前記メッセージデータをブロードキャストする参加者の識別子を表すデータを含む第4データフィールドを含めることができる。
本発明による少なくともいくつかのシステムおよび方法に有用な別の例のデータ構造に、任意選択でユーザが複数の参加者を含むデータ転送セッションに参加するとき、ネットワークにユーザの識別データを転送するためのデータ構造を含めることができる。少なくともいくつかの例で、このデータ構造に、(a)ユーザの識別を表すデータを含む第1データフィールドと、(b)前記データ転送セッションに関する識別情報を表すデータを含む第2データフィールドと、(c)前記セッション内の前記ユーザのヒストリを表すデータを含む第3データフィールドとを含めることができる。前記データ転送セッションに関する前記識別情報を表す前記データは、たとえば、セッションIDおよびセッション参加者リストからなる群から選択される少なくとも1つのメンバを表すデータを含むことができる。前記ユーザのヒストリを表す前記データは、たとえば、セッションID、前記セッション内の前記ユーザのワークステーションによって処理された少なくとも最後のメッセージを識別するメッセージIDリスト、および前記セッション内の前記ユーザによって送信された少なくとも最後のメッセージを識別するメッセージIDリストからなる群から選択される少なくとも1つのメンバを表すデータを含むことができる。
本発明によるさまざまなシステム、方法、およびデータ構造は、本発明から逸脱せずに、すべてのメッセージデータの通信に使用することができる。いくつかの例で、メッセージデータに、電子インクデータ、テキストデータ、グラフィックスなどを含めることができる。別の例で、セッションを、複数のセッション参加者がメッセージデータの追加、削除、または修正を行える「仮想ホワイトボード」セッションの形式とすることができる(たとえば、各参加者の個々のコンピュータ画面に、メッセージデータのレンダリングを表示することができ、参加者が、データに追加し、データから削除し、かつ/またはデータを修正することができ、ある参加者によって行われた追加、削除、および/または修正が、他の参加者の画面にも表示される)。また、さまざまなセッション参加者へのメッセージデータの送信に任意の適切なプロトコルを使用することができるが、本発明のいくつかの例で、メッセージが、ユーザデータグラムプロトコル(「UDP」)および/または転送制御プロトコル(「TCP」)を使用してブロードキャストされる。以下で、本発明によるシステム、方法、およびコンピュータ可読媒体を詳細に説明する。
III.ハードウェアの例
図1に、本発明のさまざまな態様を実施するのに使用することができる汎用デジタルコンピューティング環境の概略図を示す。図1では、コンピュータ100に、処理ユニット110、システムメモリ120、およびシステムバス130が含まれ、システムバス130によって、システムメモリ120を含むさまざまなシステムコンポーネントが、処理ユニット110に結合される。システムバス130は、メモリバスまたはメモリコントローラ、周辺バス、およびさまざまなバスアーキテクチャのいずれかを使用するローカルバスを含む複数のタイプのバス構造のいずれかとすることができる。システムメモリ120には、読取専用メモリ(ROM)140およびランダムアクセスメモリ(RAM)150を含めることができる。
起動中などにコンピュータ100内の要素の間で情報を転送するのを助ける基本ルーチンを含む基本入出力システム160(BIOS)が、ROM140に記憶される。コンピュータ100には、ハードディスク(図示せず)から読み取り、これに書き込むハードディスクドライブ170、取外し可能磁気ディスク190から読み取り、これに書き込む磁気ディスクドライブ180、CD ROMまたは他の光学媒体などの取外し可能光ディスク199から読み取り、これに書き込む光ディスクドライブ191も含めることができる。ハードディスクドライブ170、磁気ディスクドライブ180、および光ディスクドライブ191は、それぞれ、ハードディスクドライブインターフェース192、磁気ディスクドライブインターフェース193、光ディスクドライブインターフェース194によってシステムバス130に接続される。これらのドライブおよびそれに関連するコンピュータ可読媒体によって、パーソナルコンピュータ100のコンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの不揮発性ストレージがもたらされる。磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジ、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、および類似物など、コンピュータによってアクセス可能なデータを記憶できる他のタイプのコンピュータ可読媒体をも、例示的オペレーティング環境で使用できることを、当業者は理解するであろう。
オペレーティングシステム195、1つまたは複数のアプリケーションプログラム196、他のプログラムモジュール197、およびプログラムデータ198を含む複数のプログラムモジュールを、ハードディスク170、磁気ディスク190、光ディスク199、ROM140、またはRAM150に記憶することができる。ユーザは、キーボード101およびポインティングデバイス102(マウスなど)などの入力装置を介して、コンピュータ100にコマンドおよび情報を入力することができる。他の入力装置(図示せず)に、マイクロホン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナ、または類似物を含めることができる。上記および他の入力装置は、しばしば、システムバス130に結合されるシリアルポートインターフェース106を介して処理ユニット110に接続されるが、パラレルポート、ゲームポート、またはuniversal serial bus(USB)および類似物などの他のインターフェースによっても接続することができる。さらに、これらの装置を、適当なインターフェース(図示せず)を介してシステムバス130に直接に結合することができる。
モニタ107または他のタイプの表示装置も、ビデオアダプタ108などのインターフェースを介してシステムバス130に接続される。モニタ107に加えて、パーソナルコンピュータには、通常、スピーカおよびプリンタなどの他の周辺出力装置(図示せず)が含まれる。一例では、ペンディジタイザ165および付随するペンまたはスタイラス166が、手書き入力をデジタル的に取り込むために設けられる。ペンディジタイザ165とシリアルポートインターフェース106との間の接続が図1に示されているが、実際には、当技術分野で既知のように、ペンディジタイザ165を、処理ユニット110に直接に結合することができ、あるいは、パラレルポートまたは別のインターフェースおよびシステムバス130を介するなど、任意の適切な方法で処理ユニット110に結合することができる。さらに、ディジタイザ165は、図1ではモニタ107と別に図示されているが、ディジタイザ165の使用可能な入力領域を、モニタ107の表示領域と共存させることができる。さらに、ディジタイザ165は、モニタ107と一体化することができ、モニタ107にオーバーレイされるか、そうでなければ付加される別々の装置として存在することができる。
コンピュータ100は、リモートコンピュータ109などの1つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク化された環境で動作することができる。リモートコンピュータ109は、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の一般的なネットワークノードとすることができ、リモートコンピュータ109には、通常は、コンピュータ100に関して上で説明した要素の多数またはすべてが含まれるが、図1には、図を単純にするためにメモリストレージデバイス111だけが図示されている。図1に示された論理接続には、ローカルエリアネットワーク(LAN)112および広域ネットワーク(WAN)113が含まれる。有線接続および無線接続の両方を使用する、そのようなネットワーキング環境は、オフィス、会社全体のコンピュータネットワーク、イントラネット、およびインターネットでありふれたものである。
LANネットワーキング環境で使用されるとき、コンピュータ100は、ネットワークインターフェースまたはネットワークアダプタ114を介してローカルエリアネットワーク112に接続される。WANネットワーキング環境で使用されるとき、パーソナルコンピュータ100に、通常は、インターネットなどの広域ネットワーク113を介する通信リンクを確立する、モデム115または他の手段が含まれる。モデム115は、コンピュータ100の内蔵または外付けとすることができるが、シリアルポートインターフェース106によってシステムバス130に接続することができる。ネットワーク化された環境では、パーソナルコンピュータ100に関して図示されたプログラムモジュールまたはその一部を、リモートメモリストレージデバイスに記憶することができる。
図示のネットワーク接続が例であり、コンピュータの間の通信リンクを確立する他の技法を使用できることを理解されたい。TCP/IP、Ethernet(登録商標)、FTP、HTTP、UDP、および類似物などのさまざまな周知のプロトコルのいずれかの存在が想定され、このシステムは、ユーザがウェブベースサーバからウェブページを検索できるようにするために、ユーザ−サーバ構成で動作することができる。さまざまな従来のウェブブラウザのいずれかを使用して、ウェブページのデータを表示し、操作することができる。
図1の環境に、例示的環境が示されているが、他のコンピューティング環境も使用できることを理解されたい。たとえば、本発明の1つまたは複数の例で、図1に示され、上で説明されたさまざまな態様のすべてより少ない態様を有する環境を使用することができ、これらの態様が、当業者に明白なさまざまな組合せおよびサブコンビネーションに現れない場合がある。
図2に、本発明のさまざまな態様に従って使用することができるペンベースパーソナルコンピュータ(PC)201を示す。図1のシステムの特徴、サブシステム、および機能のいずれかまたはすべてを、図2のコンピュータに含めることができる。ペンベースのパーソナルコンピュータシステム201には、たとえば、液晶ディスプレイ(LCD)画面など、複数のウィンドウ203が表示される、ディジタイジングフラットパネルディスプレイなどの大きいディスプレイ表面202が含まれる。スタイラス204を使用して、ユーザが、ディジタイジングディスプレイ領域で選択し、強調表示し、書き込むことができる。適切なディジタイジングディスプレイパネルの例に、Mutoh Co.社またはWacom Technology Co.社から入手可能なペンディジタイザなどの電磁ペンディジタイザが含まれる。たとえば光学ディジタイザなどの他のタイプのペンディジタイザも使用することができる。データを操作し、テキストを入力し、スプレッドシート、ワードプロセッシングプログラム、および類似物などの作成、編集、および修正などの普通のコンピュータアプリケーションタスクを実行するために、ペンベースコンピューティングシステム201によって、スタイラス204を使用して行われるジェスチャが解釈される。
スタイラス204に、その機能を補足するためにボタンまたは他の特徴を装備させることができる。一例では、スタイラス204を、「鉛筆」または「ペン」として実施することができ、この場合、一端が、書込部分を構成し、他端が、「消しゴム」端を構成し、この他端が、ディスプレイ上で移動されるとき、ディスプレイ上で、電子インクのうちの消去される部分が示される。マウス、トラックボール、キーボード、または類似物などの他のタイプの入力装置も使用することができる。さらに、ユーザ自身の指を使用して、接触感知ディスプレイまたは近接感知ディスプレイ上で、表示されたイメージの諸部分を選択または指示することができる。その結果、本明細書で使用される用語「ユーザ入力装置」は、広義の定義を有することが意図され、周知の入力装置に対する多数の変形形態が含まれる。
本発明のいくつかの例で、複数のユーザが、ピアツーピアネットワークを介して互いに通信する。これらのユーザは、いくつかの例で、すべての参加者がデータを見ることができ、表示できる方法で、ある参加者からのデータメッセージが別の参加者に通信されるセッション(たとえば、「電子ホワイトボード」セッションまたは別のタイプの協調セッション)に参加することができる。
図3Aおよび3Bに、本発明のある例で行うことができる、互いに通信する参加者A〜Jの例を示す。本発明によるいくつかの例のシステムおよび方法では、参加者A〜Jのすべてに共通サーバに接続させるかまたは参加者のワークステーションの1つを事実上のサーバとして指定するのではなく、参加者A〜Jが、たとえば図1および2に示されたものに類似する汎用コンピュータを有するワークステーションを使用して、ピアツーピアネットワークを介して通信する。この方法での通信は、当技術分野で既知のように、さまざまな通常の方法を含む任意の適切な方法で処理することができる。図示の例では、各参加者が、自分のメッセージデータをピアツーピアネットワークを介して送信し(たとえばブロードキャストまたは指示された送信によって)、その結果、他の参加者が、そのデータを受信するようになる。図3Aに、参加者Aがデータメッセージを参加者B〜Jにブロードキャストした例を示す。次に、図3Bで、参加者Cが、参加者A、B、およびD〜Jにデータメッセージをブロードキャストした。これと同一の方法で、ネットワーク上のすべての参加者A〜J(および、実際にネットワークのすべてのユーザ)が、通信を送信し、ネットワークの他の参加者(およびユーザ)から通信を受信することができる。
適当なシステムまたはプロトコルを使用して、本発明から逸脱せずに、参加者およびネットワークのユーザの間でメッセージを伝送することができる。たとえば、メッセージデータを、TCPまたはUDPを使用して、ネットワークを介してセッションのさまざまな参加者に向けることができる。TCPによって、共通サブネット上のユーザおよび異なるサブネットに位置するユーザの両方への順序通りのデータパケットの配送が保証されるので、TCPメッセージ伝送が有利である(たとえば、インターネットまたは他の通信ネットワークを介する配送)。UDPでは、メッセージ配送または順序通りのメッセージ配送が保証されない。
別の例として、本発明のいくつかの例によるシステムおよび方法によって、UDPのブロードキャスト機能を使用し、所与のサブネット上のすべてのユーザにメッセージデータをブロードキャストすることができる(TCPでは、ブロードキャスト送信がサポートされない)。メッセージデータが、セッションの参加者のリストによりエンコードされる場合、ネットワーク上のユーザは、着信メッセージデータを調べ、そのメッセージデータを含むセッションに参加しているかどうかを判定し、参加者である場合にセッションに参加し、かつ/またはメッセージペイロードを処理することができる。この方法でのデータ転送に関するUDPブロードキャストメッセージの使用を、下で詳細に説明する。
このタイプのUDPブロードキャストは、一般に、共通サブネットに位置するユーザへの送信に制限される。しかし、ブリッジングシステムおよび方法を使用して、本明細書に記載のUDPブロードキャストメッセージのすべてを、他のサブネット上のユーザにブリッジすることができる。本発明から逸脱せずに、任意の適切なブリッジするシステムおよび方法を使用することができるが、適切なブリッジするシステムおよび方法が、発明者Philip SuおよびRobert Jarrettの名義で2003年4月に出願された「Bridging Subnet Broadcasts Across Subnet Boundaries」という名称の米国特許出願(整理番号第003797.00507号)に記載されている。この出願は、参照によってその全体を本明細書に組み込まれる。
しかし、上で注記したように、UDPブロードキャストは、このプロトコルで配送が保証されず、かつ/またはすべてのユーザへのメッセージデータパケットの順序通りの配送が保証されないという点で、制限を有する。しかし、本発明によるいくつかの例のシステムおよび方法では、システムおよび方法によって、参加者のメッセージが不足しているかどうかを判定する方法を提供し、最初に送信されたときにメッセージを受信しなかったユーザに、不足しているメッセージを再送信する方法を提供することによって、この制限が克服される。本発明のこれらの態様によって、セッションに後から参加するユーザまたは偶然にセッションから脱落したユーザが、簡単に「追いつき(catch up)」、前にセッション中に送信された不足しているメッセージデータを受信できるようになる。本発明のこれらの態様も、下で詳細に説明する。
IV.本発明によるシステム、方法、およびデータ構造の例
A.いくつかの例で維持されるデータ
図4に、本発明によるシステムおよび方法のいくつかの例でユーザワークステーションまたは他の適当な記憶システムによって維持することができるいくつかの情報およびデータ400を全体的に示す。各ユーザおよび/またはコンピュータワークステーションが、ネットワーク上の他のユーザに対してユーザおよび/またはワークステーションハードウェアを識別する固有の識別番号402によって識別される。このユーザ識別番号によって、コンピュータシステムにログオンした当事者および/またはハードウェア自体が具体的に識別される。
各ユーザは、潜在的に、図4では符号404a(セッション1)から404n(セッションn)によって示される、任意の数の異なる協調セッションにかかわることができる。各セッション404aから404nを、固有の識別番号(図4では406aから406n)によって識別することができ、ワークステーションまたは他の記憶システムによって、セッションごとに個々の参加者リスト(図4では408aから408n)を維持することができる。あるセッションの参加者リスト408aから408nに、単純に、そのセッションにかかわる参加者ごとおよび/またはセッションに参加することを許可されるユーザごとに固有のユーザID番号402を含めることができる。
各セッションに、セッションに含まれるメッセージのリスティングも含めることができる。図4では、セッション1(404a)のメッセージに、符号410aから410mが割り当てられ、セッションn(404n)のメッセージに、符号420aから420kが割り当てられている。特定のセッションに含めることができるメッセージの数には、制限がない。各メッセージ(410aから410mおよび420aから420k)に、それ自体の固有の識別子が含まれる(メッセージ410aから410mに対してそれぞれ識別子412aから412m、メッセージ420aから420kに対してそれぞれ識別子422aから422k)。さらに、各メッセージ(410aから410mおよび420aから420k)に、それに関連するメッセージペイロード(メッセージ410aから410mに対してそれぞれメッセージペイロード414aから414m、メッセージ420aから420kに対してそれぞれメッセージペイロード424aから424k)が含まれる。メッセージペイロードには、電子インクストローク、テキスト情報、グラフィカル情報、インク、テキストまたはグラフィックスを削除し、移動し、かつ/または修正する命令、および類似物など、任意の適切なデータを含めることができる。
ユーザID402、セッションID406aから406n、メッセージID412aから412mおよび422aから422kの固有の識別子は、当技術分野で既知の普通の方法で割り当てることができる。たとえば、グローバル固有識別番号(「GUID」)を、これらの値のそれぞれに割り当てることができる。
B.電子ホワイトボード
1.独立メッセージ
図5Aから5Jに、本発明の少なくともいくつかの例による、仮想ホワイトボードまたは電子ホワイトボードを介するセッションまたは他の協調セッションの複数の参加者の間で交換することができるデータメッセージの例を示す。図5Aから5Jのそれぞれに、メッセージデータが交換される際に参加者のワークステーションのディスプレイ画面に表示することができる例の電子ホワイトボード500を示す。参加者を、図3Aおよび3Bに関して説明した方法でメッセージデータを転送するのにUDPブロードキャスト伝送を使用するピアツーピアネットワークに一緒に接続することができる。本発明から逸脱せずに、参加者を、同一の場所または異なる場所に位置するものとすることができる。
図5Aから5Jに、電子ホワイトボードに単語「Break」を書く際の参加者A〜Cによる協調作業に関連する電子インクストロークを示す。少なくとも参加者A〜Cは、ある時にセッションにかかわり、そのセッション中に、この単語が、電子ホワイトボードに書かれるが、本発明から逸脱せずに、他者が、このセッションにかかわることができ、かつ/または参加者A〜Cが、いつでもこのセッションから離れることができる。電子インクデータは、当技術分野で既知の普通の方法を含む任意の適切な方法で収集することができ、この電子インクデータを、たとえば、図4のメッセージペイロード414aから414mとして供給することができる。メッセージペイロードには、インクストローク中にペンが接触する電子ホワイトボードの点(または、ペン方向変化の位置および新しいペン方向)、電子ホワイトボード上のストローク位置、ストロークの色、他のストローク特性(太字、斜体、強調表示、下線付きなど)、および類似物を含むが必ずしもこれに制限されない電子インクのさまざまな特徴を表すデータを含めることができる。
図5Aおよび5Bに示されているように、参加者Aは、自分のコンピュータワークステーションに表示される電子ホワイトボード500を使用して、文字「B」を書いた。この例の電子ペンの各ストロークが、少なくとも1つの個々のデータメッセージ(メッセージA1およびメッセージA2)を構成し、このデータメッセージが、参加者Aのコンピュータから、たとえば、UDPブロードキャスト、TCP伝送、または他の適切な伝送プロトコルを介して、セッションの他の参加者に送信される。参加者Aが文字「B」を完成した後に、類似する方法で、参加者Bが、自分のコンピュータワークステーションで2つの電子インクストロークを使用して文字「r」を書き、これらのストロークに対応する(少なくとも)2つのデータメッセージ(図5Cおよび5DのメッセージB1およびB2)を、他の参加者に送信する。次に、参加者Cが、1ストロークを使用して文字「e」を書き、このストロークを表す(少なくとも)1つの電子データメッセージ(図5EのメッセージC1)を他の参加者に送信する。その後、参加者Aが、2ストロークを使用して文字「a」を書き、このストロークを表す(少なくとも)2つのデータメッセージ(図5Fおよび5GのメッセージA3およびA4)を他の参加者に送信し、参加者Bが、3ストロークを使用して文字「k」を書き、このストロークを表す(少なくとも)3つのデータメッセージ(図5H、5I、および5JのメッセージB3、B4、およびB5)を他の参加者に送信する。
図5Aから5Jに示された例では、インクストロークのそれぞれが、他のストロークと独立であり、したがって、各参加者のワークステーションへのさまざまなデータメッセージの「時間順の」配送は、この例では重要な問題ではない(特筆すべきことに、この例の各ストロークのメッセージデータに、電子ホワイトボード上のストロークの絶対位置が含まれ(任意選択で、他の参加者のハードウェアのホワイトボードの位置、解像度などと一致させるための適当なマッピングを可能にする情報を伴う)、あるストロークの位置が、別のストロークの位置に依存しない)。言い換えると、参加者Bが、文字「a」からの1つまたは複数のストローク(メッセージA3および/またはA4)を受け取った後に、かつ/または文字「k」を書き始めた後に、メッセージC1からの文字「e」を受け取る場合、問題がない。ストロークは、任意の順序で各参加者の電子ホワイトボードに表示される可能性があり、それでも、最後の単語が、正しく表示される。
また、図5A〜5Jに示された例に、別々のデータメッセージからなるものとして各ストロークが示されているが、これは要件ではない。本発明から逸脱せずに、任意の数のストロークまたは単一ストロークの一部を、単一のデータメッセージに含めることができる。たとえば、本発明から逸脱せずに、必要に応じて、文字「B」を書くことに含まれるストローク(図5Aおよび5B)を、単一のデータメッセージで他のセッション参加者に送信することができる。別の例として、本発明から逸脱せずに、非常に長いストロークおよび/または複雑なストロークを複数のデータメッセージに分割して、他の参加者に送信することができる。
2.依存メッセージ
しかし、いくつかの場合、ある参加者が、他のメッセージに作用するか他のメッセージに依存するメッセージを送信する。たとえば、参加者が、1つまたは複数の既存のインクストローク、テキスト、グラフィックス、または類似物の色を変更するか、情報を強調表示する、情報を斜体にする、情報に下線を付ける、情報を太字にする、情報を削除する、情報を拡大する、情報を縮小する、情報を移動する、情報をコピーする、あるいは内容または特性に対する他の変更を行う場合がある。図6Aから6Eに、そのような一例を示す。図6Aは、図5Aから5Jで書かれたように単語「Break」で始まる。参加者A、B、およびCが、電子ホワイトボード600での協調作業を使用して、この単語を単語「Brake」に変更すると決定した。この変更の最初のステップとして、図6Aおよび6Bを比較するとわかるように、参加者Cが、「切り取り」機能を使用して、文字「e」を切り取った(すなわち、図6BからのメッセージC2によって、図5EのメッセージC1が削除されるか切り取られた)。このステップは、参加者Cによって、文字「e」を選択し(たとえばなげなわまたは箱選択)、切り取り動作を実行する適切な方法、たとえば従来の方法を使用して実行することができる。別の代替案として、文字「e」を、従来の消去機能を使用してホワイトボードから消去することができる。メッセージC2が、セッションの他の参加者に送信されて、この変更が行われた。したがって、この例のメッセージC2は、メッセージC1に依存する(すなわち、文字「e」を書き込むメッセージが、切り取り動作を実行するメッセージを実行する前に受信されなければならない)。
協調作業の次のステップは、参加者Aが、文字「ak」を文字「Br」の近くに移動することである。図6Cを参照されたい。やはり、これは、任意の適切な方法、たとえば、マウス、ペン、または他の適切なユーザ入力装置による選択アクション(たとえばなげなわまたは箱選択あるいは類似物)およびドラッグアクションを使用して達成することができる。このアクションは、セッションの他の参加者に、メッセージA5として送信される。メッセージA5は、少なくともメッセージA3、A4、B3、B4、およびB5が行われていることを必要とする。任意選択で、メッセージA5が、この特定の例によるシステムまたは方法がオーバーラップする情報を処理できるかどうか(たとえば、レイヤ構造を使用するか他の適切な方法で)に応じて、メッセージC2(上で注記したように、メッセージC1が行われたことに依存する)が行われていることに依存するものとすることができる。
次のステップで、図6Dに示されているように、参加者Bによって、電子インクを使用して、文字「B」に下線が付けられる。この情報は、メッセージB6として他の参加者に送信される。メッセージB6は、やはり、他のすべてのメッセージに依存しない。というのは、このメッセージで、既存のメッセージデータ(たとえばインクストローク)の特性の修正、削除、そうでなければ変更が行われないからである。図6Dに示された方法で手作業で下線を付けることは、この方法で手作業で下線を付ける際のインク、テキスト、またはグラフィックに対するモディファイヤが、単に別のインクストロークであり、下線を付けられるインクまたは他のテキストのデータ構造を修正しないので、電子的に生成される下線付けの使用と区別される。
図6Eに、参加者Cが、移動された文字「k」の後に、メッセージC2(図6B)で削除された文字「e」を貼り付ける「貼付け」動作を示す。このデータメッセージは、メッセージC3としてセッションの他の参加者に送信される。メッセージC3は、少なくともメッセージC2の以前の実行に依存し、メッセージC2自体は、メッセージC1が行われていることに依存する。任意選択で、メッセージC3は、この特定の例によるシステムまたは方法が、オーバーラップする情報を処理できるかどうか(たとえば、レイヤ構造を使用するか他の適切な方法で)に応じて、メッセージA3、A4、A5、B3、B4、およびB5が行われていることに依存するものとすることができる。やはり、本発明から逸脱せずに、本発明の例によるシステムおよび方法によって、このタイプのオーバーラップする情報およびその表示を、適切な方法で処理することができる。
代替案として、貼付けアクションを使用するのではなく、図6EにメッセージC3として示されたように、セッションの参加者が、単純に、適当な位置で別の文字「e」を再度書くことができる。この場合には、新しいストロークは、上で全般的に述べたように電子ホワイトボードでオーバーラップする情報または階層化された情報を処理するのに依存性が必要でない限り、他のストロークに依存しない。
本発明から逸脱せずに、依存性情報を処理する任意の適切な方法を使用することができる。たとえば、メッセージを送信する参加者のマシンは、参加者の発信メッセージによって要求されるアクションを実行するために最低限でも実行されなければならないデータメッセージを判定することによって、上で説明した一般的な方法での依存情報を追跡することができる。その後、メッセージデータが他の参加者に送信される(たとえばブロードキャストされる)とき、新たにブロードキャストされるメッセージによって要求される機能を実行するのに必要なすべての他のメッセージの固有のメッセージIDを含むようにそのメッセージデータをエンコードすることができる。受信するマシンは、依存性情報を調べ、新たに受信されたメッセージを実行する前に、すべての必要な「親」メッセージが実行されることを保証することができる。依存性を処理する別の方法を、下で図7〜8に関して説明する。
C.発信メッセージのデータ構造
図7に、本発明によるシステムおよび方法のさまざまな例で有用な、参加者のワークステーションからの発信メッセージのデータ構造700を全体的に示す。この例のデータ構造700には、メッセージを送信する参加者のユーザID番号702を表すデータを含むフィールドが含まれる。このユーザIDは、図4に関して上で説明した固有のユーザ識別子402とすることができ、これによって、メッセージを送信する特定のユーザまたは参加者を識別することができる。さらに、または代替として、ユーザID702に、メッセージを送信する特定のハードウェアを識別する情報、ハードウェアの特性、および/または送信されるデータ、あるいは類似物(たとえば、データを正確に変換し、セッションに含まれるさまざまなマシンにマッピングできるようにするための、ディスプレイ解像度情報または類似物)などのハードウェア情報を含めることができる。
例のデータ構造700の別のフィールドに、送信されるメッセージの固有のメッセージ識別子704が含まれる。このメッセージ識別子704は、図4に関して上で説明したメッセージ識別子412a〜412mおよび422a〜422kに対応するものとすることができる。
図7の例のデータ構造700には、この新しいメッセージが向けられるセッションに関するさまざまな情報706を含む別のフィールドが含まれる。本発明から逸脱せずに、さまざまなタイプの情報をこのデータフィールドに含めることができる。たとえば、図7に示されているように、このデータフィールドに、メッセージペイロードが向けられる固有のセッションID番号708を含めることができる。また、このデータフィールドに、セッションの参加者のリスト710を含めることもできる(たとえば、セッションのすべての参加者および/またはセッションへの参加を許可されるすべてのユーザのユーザID番号702の形式で)。データ構造700のセッション情報706の別の可能な部分に、「メッセージヒストリ」情報712を含めることができる。このメッセージヒストリ情報に、上で説明したように、この現在のメッセージのすべての依存性情報を含めることができる(たとえば、必要な親のメッセージID番号704のすべて)。
最後に、この例のデータ構造700の別のデータフィールドに、実際のメッセージペイロード714が含まれ、このメッセージペイロード714によって、受信するマシンに、このメッセージの結果として行われるアクションが示される。上で説明したように、このメッセージペイロード714に、電子インク情報(たとえば、インクストローク);テキスト;グラフィックス;電子インク、テキスト、グラフィックス、または類似物を修正する情報;および/または他の適切なまたは所望の情報を含めることができる。
依存性情報および親データメッセージ情報を実際に追跡することが、必要になるまでメッセージアクションが処理されないことを保証する効果的な方法であるが、これを行うことは、少なくともいくつかの場合、困難(不可能でないとしても)および/または計算的に高価である。したがって、本発明のいくつかの例によれば、図7に示されたものなどの発信メッセージに、ある他のタイプのメッセージヒストリ712を含めることができる。例として、メッセージ700を送出するマシンによって、少なくともそのマシンで処理された最後のメッセージのメッセージ識別番号(704、412a〜412m、および422a〜422k)を含めることができる。いくつかの例で、データ構造700のメッセージヒストリ712に、そのマシンで処理された最後の5〜10個のメッセージのメッセージ識別番号(704、412a〜412m、および422a〜422k)が含まれる。次に、受信側のマシンは、送信された新しいメッセージ700を受信するとき、新しいメッセージ700が、送信側のマシンで処理された最後のメッセージのそれぞれ(メッセージヒストリ712から)に依存すると仮定する。受信側のマシンは、まだメッセージ700のメッセージヒストリ712で最後に処理されたメッセージのすべてを受信していない場合、メッセージヒストリ712のすべてのメッセージを受信するまで、新しいメッセージ700を処理しない。
受信側のマシンが、新しいメッセージ700のメッセージヒストリ712のメッセージの1つまたは複数を有しないと仮定すると、受信側のマシンは、不足しているメッセージを待つ(任意選択で、下で詳細に説明するように、メッセージに関する要求を送信する)。不足しているメッセージが受信されるとき、不足しているメッセージも、最初に送信された時からのメッセージヒストリフィールド712を有し、受信側のマシンは、この新たに受信されたメッセージおよび前の不足メッセージを、それらのメッセージヒストリ712のすべてのメッセージが受信されるまで処理しない。この方法で、メッセージ700を受信するマシンは、時間的に後ろに向かってメッセージおよびメッセージヒストリの検査を続け、メッセージヒストリ712内のすべてのメッセージが受信され、処理された後に限って、新たに受信されたメッセージ700を処理する。
別の例として、所与のマシンで処理された最後のメッセージの送信の代替としてまたは追加して、発信メッセージデータ700のメッセージヒストリ712に、この特定のマシンによって送信された最後から1つまたは複数のメッセージのリストを含めることができる。本発明から逸脱せずに、たとえば直前に送信された5〜10個のメッセージを含む、任意の数の前に送信されたメッセージは、メッセージヒストリ712を含めることができる。受信側のマシンによって、上で説明した最後に処理されたメッセージヒストリに追加してまたはその代わりにこの情報が使用されて、同一の方法で、このマシンによって前に送信されたすべてのメッセージが処理されるまで、新しいメッセージ700が処理されないことが保証される。
任意選択で、必要に応じて、後のメッセージによって前のメッセージが削除されるか切り取られる場合、本発明のいくつかの例によるシステムおよび方法では、他の処理に関して進行する前に、削除されるメッセージまたはそれを削除するメッセージを待つ必要がない。このメッセージの対を無視し、受信されず処理されないままにすることができる。
メッセージが正しい順序で処理されることを保証し、正しい依存性を保証するさまざまな他の方法を、本発明から逸脱せずに使用することができる。たとえば、本発明から逸脱せずに、真に独立のメッセージを、それとしてマークすることができ、その結果、本発明のいくつかの例によるシステムおよび方法によって、他のメッセージを待たずにそれらを即座に処理できることが理解されるようになる。さらに、本発明から逸脱せずに、任意の数の前のメッセージ(前に処理され、かつ/または前に送られた)をメッセージヒストリ712に含めることができ、たとえば、メッセージが所与のユーザによって受信されない可能性、ネットワークトラフィック、ネットワーク速度、着信メッセージの速度、セッションの参加者の数、接続のタイプ、ネットワークからのユーザ切断の可能性などのさまざまな要求を考慮に入れることができる。
D.着信メッセージの処理
図8に、本発明のいくつかの例のメッセージ処理のさまざまな態様を示す流れ図を示す。理解の助けとして、図8の情報を、図7で示した符号に関して説明する。この例では、メッセージ700が、たとえばUDPのブロードキャスト能力を使用して、ピアツーピアネットワークを介してブロードキャストされる。図からわかるように、この処理は、セッションの参加者がブロードキャストメッセージ700を送信するときに開始され(S800)、このメッセージは、ネットワークでリスン(listen)しているユーザによって受信される(S802)。UDPブロードキャストメッセージが、サブネット上のすべてのユーザに送信され、サブネットの特定のユーザに向けらるのでないことを想起すると、本発明のこの例によるシステムおよび方法内のブロードキャストメッセージ700を受信するサブネットユーザは、次に、自分がこのセッションID番号をリスンしているかどうかを判定する(S804)。これは、たとえば、メッセージ700に含まれるセッションID番号708を調べることによって達成することができる。受信ユーザが、このセッションID番号をリスンしている場合には(S804の回答Yes)、受信ユーザのコンピュータによって、次に、メッセージ700のメッセージヒストリ712内のすべての前のメッセージが受信されているかどうかが判定される(S806)。そうである場合には、新しいメッセージ700を処理し(S808)、処理が終了する(S810)(たとえば、次のメッセージの処理を開始するか、次のメッセージを待つ)。
S806で、受信ユーザが新たに受信されたメッセージ700のメッセージヒストリ712に示されるすべての前のメッセージを受信していないと判定される場合には(回答「No」)、受信ユーザのマシンによって、不足メッセージに関する要求が送信またはブロードキャストされる(S812)。次に、適切な待機時間の後に、本発明のこの例によるシステムおよび方法では、要求されたメッセージが受信されたかどうかが判定される(S814)。そうでない場合には、メッセージヒストリのすべてのメッセージが受信されるまで、S812およびS814を繰り返す(1つまたは複数の不足メッセージが絶対に受信されない場合、適当なタイムアウトおよび/またはエラーメッセージを提供することができる)。着信する不足メッセージが受信されたときに(S814の回答「Yes」)、このシステムは、S804に戻り(丸囲みのAを参照されたい)、新たに受信されたメッセージのメッセージヒストリが検査されて、メッセージヒストリのすべてのメッセージが受信されたことが保証される。その代わりに、丸囲みのAによって、S806の直前の手順に戻ることができる。この方法では、処理が、時間的に逆に働き、メッセージヒストリ内のすべてのメッセージが受信され、処理されたときに限って、新たに受信されるメッセージの処理が開始される。
S804で、着信メッセージ受信側が、このセッションID番号をリスンしていない場合に(回答「No」)、本発明のこの例のシステムおよび方法では、次に、メッセージ700の参加者リスト710に受信側ユーザのID番号が含まれるかどうかを判定するための検査を行う(S816)。そうでない場合には、このメッセージは、受信側ユーザに宛てられたものではなく(S818)、メッセージは、受信側ユーザのワークステーションによって無視される。手順が終了する(S810)(たとえば、受信側ユーザが、新しいブロードキャストメッセージのリスンを継続することができる)。代替案として、下で詳細に説明するように、特定のセッションにかかわらないユーザが、着信メッセージを維持し、新しい参加者へのメッセージの再ブロードキャストの求めに応じ、かつ/または不足メッセージ要求に応答することができる。
S816で、着信メッセージ700の参加者リスト710に、受信側ユーザのID番号が含まれる場合(回答「Yes」)、受信側ユーザを、セッションに追加することができ(S820)、メッセージヒストリ712に含まれるすべての前のメッセージが受信済みであることを保証する検査を開始することができる(S806)。
S812で、着信する新しいメッセージ700の受信側は、新しいメッセージ700のメッセージヒストリ712内の前に受信されなかったメッセージに関する要求をブロードキャストする。これは、特にUDPが伝送プロトコルとして使用されるときに行うことができる。というのは、上で注記したように、UDPによって、すべての所期の受信側へのメッセージの配布が保証されないからである。したがって、本発明のいくつかの例によるシステムおよび方法では、少なくともいくつかの場合、最初に送信されたときにメッセージを受信しなかった参加者にメッセージをブロードキャストする必要が生じる。さらに、セッションに後から来る人は、セッションのすべての前のメッセージを入手することによって、最新の状態にされる必要がある。図8で説明した手順を使用することによって、セッションのすべての参加者が、システムまたは手順を不当に低速にせずに、メッセージヒストリで不足メッセージがあることが着信メッセージによって知らされるや否や、前の不足メッセージを簡単に入手することができる。
不足メッセージに関する要求がブロードキャストされるときに(S812)、本発明のこの例では、セッションのすべての参加者が、この要求を受信する可能性がある(たとえばUDPブロードキャストとして)。すべての参加者が、不足メッセージを再ブロードキャストする場合、これによって、反復されるブロードキャストメッセージでシステムの動きが不当に妨げられ、これは、多数の参加者がセッションに含まれるときに悪化する問題である。したがって、本発明のいくつかの例では、セッションの各参加者は、要求者による受信のために不足メッセージを再ブロードキャストするかどうかを、そのような要求の受信時に、ランダムに決定する。たとえば、セッションに6人の参加者が含まれる場合、不足メッセージ要求がブロードキャストされるとき、残りの5人の参加者のそれぞれは、不足メッセージを再ブロードキャストするかどうかをランダムに決定する(たとえば、1と5の間の数をランダムに選択し、選択された数が1である場合にメッセージを送信する)。どれもがメッセージを送信しない場合、別の不足メッセージ要求が出され(上で説明したように)、別のランダムな選択手順が行われる。この手順は、要求元の当事者が不足メッセージを受信するまで繰り返すことができる。不足メッセージを供給する、このタイプの手順を使用することによって、セッションのすべての参加者が、他の参加者または新しい参加者に不足メッセージを供給でき、参加者がセッションに自由に出入りできると同時に、前に送信されたデータのすべてが、セッションのすべての参加者から入手可能に保たれる。
本発明のこの態様のいくつかの例で、特定のユーザが不足メッセージを再ブロードキャストするかどうかの判定で、たとえば、特定のネットワークでメッセージが失われる可能性、ネットワークトラフィック、ネットワーク速度、セッションの参加者の数、接続のタイプなどを含むさまざまな要因を考慮することができる。たとえば、特定のネットワークおよび/またはセッションの設定で、通常は50%のUDPブロードキャストメッセージが失われ、所与のユーザが、不足メッセージ再ブロードキャスト要求を受信する5つのユーザの1つである場合、すべての特定のユーザが、不足メッセージ再ブロードキャスト要求に応答してメッセージを再ブロードキャストする2/5の確率を有するようにプログラムして、2つのブロードキャストメッセージの1つが失われる可能性が高いという事実を補償することができる。
代替案として、新しい参加者がセッションに入るとき、いつでも、その新しい参加者にすべての前に送信されたメッセージを自動的に供給する機構を実施することができる(たとえば、最初の送信側参加者によって、1つまたは複数の選択された参加者によって、および/または他の所望のまたは適切な方法で、各メッセージを再送信する)。別の代替案として、元の送信側参加者が、セッションに留まっている場合、要求されたすべての不足メッセージを再送信することができ、元の送信側参加者がセッションに留まってない場合、ランダムな(またはある所定の順序で)別の当事者が、要求された不足メッセージを再送信することができる。不足メッセージ要求に応答して不足メッセージを再送信する参加者を決定する任意の方法を、本発明から逸脱せずに使用することができる。
E.「ピン(ping)」データ
図9に、セッションの潜在的な新しい参加者の発見および/またはユーザが既存セッションに参加できることの発見において、本発明のいくつかの例によるシステムおよび方法を援助するのに有用である可能性があるデータ構造900を示す。セッションが進行中であるとき、セッションの参加者は、たとえばUDPブロードキャスト機能を使用してサブネット上でデータをブロードキャストすることによって、ある識別データを周期的に送信する。このデータを、本明細書では「pingデータ」とも称するが、このデータによって、ネットワークの他のユーザが、ある情報について周期的に知らされる。このタイプのpingデータは、たとえば無線接続および無線通信で、便利に使用される。
本発明のこの態様の例では、データ構造900に、セッションに関するさまざまな重要な情報を含めることができる。第1に、ピンを送出するユーザを識別する情報を含むフィールドを、データ構造900に設けることができる(たとえば、特定のマシンを使用する当事者、ハードウェア、その両方、または類似物を識別できる、上で説明したユーザID番号902)。データ構造900の別のフィールドに、このユーザワークステーションがかかわるセッションに関する情報904を含めることができる。上で注記したように、各ユーザのコンピュータまたはワークステーションが、複数のセッションにかかわることができる。セッションごとに、pingデータに、セッションID番号情報906aおよび906b、セッション参加者リスト908aおよび908b(たとえば、セッションの各参加者のユーザID番号を含む)、および類似物などのさまざまな情報を含めることができる。
pingデータ900に、ユーザがかかわるセッションごとのメッセージヒストリに関する情報も含めることができる。このデータフィールドを、図9の符号910に示す。例として、セッションごとに、pingデータに、このコンピュータによって処理された最後の1つまたは複数のメッセージ(フィールド912aおよび912b)を示すデータおよび/またはこのコンピュータによって送信された最後の1つまたは複数のメッセージ(フィールド914aおよび914b)(たとえばメッセージID番号の形式で)を示すデータを含めることができる。本発明から逸脱せずに、たとえば5〜10個のメッセージなど、任意の所望の数のメッセージを、データフィールド912a、912b、914a、および914bに含めることができる。この方法での「pingデータ」の使用によって、すべてのユーザが最新に保たれ、個々のメッセージが長期間にわたって「失われる」ことがなくなる(たとえば、メッセージが失われ、周期的な「pingデータ」を使用してメッセージIDを送らずに次のメッセージが送信される前に長い時間が経過した場合、失われたメッセージが、長い期間にわたって、たとえば元のメッセージ送信側(または別の参加者)が別のメッセージを送信するまで、失われたままになる可能性がある)。
本発明の少なくともいくつかの例で、このpingデータを、図10に示されたものに類似する手順と共に使用して、新しい参加者としてユーザをセッションに簡単に追加することができる。たとえば、図10の手順は、ユーザが、セッションが行われているネットワークに入るときに開始される(S1000)。新たに入るユーザは、最終的に、セッションの参加者からこのタイプのpingデータを受信する(S1002)。ユーザのID番号が、セッションの少なくとも1人の参加者から受信したpingデータに含まれる場合に(S1004)(たとえば、参加者リスト908aまたは908bの一部として)(回答「Yes」)、ユーザのシステムは、そのユーザがこのセッションに参加できることを知る。ユーザのマシンは、pingデータ900に含まれるメッセージヒストリ910から不足しているメッセージを要求することができ(S1006)、たとえば図8に関して説明した手順によって、セッション内で最新の状態になることができる。必要に応じて、ユーザに、たとえば質問またはダイアログボックスあるいは他の適切な方法を介して、ユーザがセッションへの参加を望むかどうかを決定するオプションを与えることができる。次に、図10の手順が終了し(S1008)、ユーザのシステムは、追加のピンおよび/またはメッセージデータをリスンすることができる。
S1004で、ユーザのID番号が、受信されたpingデータ900の参加者リスト908aまたは908bに存在しないと判定される場合には(回答「No」)、この手順を終了することができ(S1008)、S1006をスキップし、システムは、追加のピンおよび/またはメッセージデータのリスンを継続することができる。
図11に、セッションの潜在的な参加者としてのユーザを、発見し、セッションに勧誘することができる別の手順を示す流れ図が含まれる。この手順が開始されるときに(S1100)、特定のセッションにかかわらないユーザが、セッションが行われているネットワークに入る(S1102)。この事実を、たとえば新たに入るユーザのコンピュータがpingデータ900をブロードキャストする(たとえばUDPブロードキャストを介して)とき、セッションの参加者によって認識することができる。新たに入るユーザが、どのセッションにもかかわっていない場合、pingデータ900を、図9に示されたユーザID番号902に制限することができる。セッションの1つまたは複数の参加者が、この新たに入るユーザのpingデータ情報を受信するとき、この例によるシステムまたは方法では、1つまたは複数の既存の参加者に、新たに入るユーザをセッションに参加するように勧誘しなければならないかどうかのプロンプトを出すことができる(S1104)。参加者が、新しいユーザをセッションに勧誘すると決定する場合(回答「Yes」)、新しいユーザのユーザID番号を、セッションの参加者リストに追加することができる(S1106)。その後、新しいユーザのユーザID番号をフィールド908aまたは908bに含むpingデータ900を送信することができる(S1108)。代替案としては、セッションの次のデータメッセージ700の参加者リスト710に、新しいユーザのユーザIDも含まれる。新しいユーザは、このpingデータ900および/またはメッセージデータ700を受信するとき、このpingデータ900および/またはメッセージデータ700の自分のユーザID番号に留意し、図8および/または10の手順に続くことができる。その後、図11の勧誘する手順が終了するS1110。任意選択で、新しいユーザを、図10に関して上で説明したように、セッションに参加するように勧誘することができる。
S1104で、セッションの参加者が、新しいユーザをセッションに勧誘しないと決定する場合(回答「No」)、S1106およびS1108がスキップされ、手順が終了するS1110。pingデータ900を使用して、特定のユーザがセッションから離れる時を他者に判定させることができる。たとえば、セッション参加者のpingデータ900が、所定の時間インターバル(たとえばpingデータ送信頻度の4倍)以内に受信されない場合、他の参加者が、この参加者がセッションから離れたと判定することができる。必要に応じて、いくつかの例のシステムおよび方法で、この前者の参加者IDを、セッション参加者リストから除去することができる。任意選択で、システムによって、セッションの残りの参加者に、前者の参加者をこのセッションの参加者IDリストから除去するかどうかをたずねるプロンプトを出すことができる。
F.衝突するメッセージ
本発明の少なくともいくつかの例によるシステムおよび方法には、同時の、ほぼ同時の、および衝突する命令を処理するプロトコルおよび手順が含まれる。不可避的に、このタイプの協調システムおよび協調方法には、入力を独立に追加できる複数のユーザが含まれ、さまざまな当事者によって送信されるメッセージデータのいくつかが、衝突する。たとえば、ある参加者が、電子ホワイトボードからのインクストローク、ストローク、テキスト、またはグラフィックスを、別の参加者がその同一のストローク、ストローク、テキスト、またはグラフィックスのいくつかまたはすべての色、サイズ、または別の特性を変更しようとするのと正確に同時に、切り取ろうとする可能性がある。
本発明から逸脱せずに、この状況を任意の適切な方法で処理することができる。たとえば、セッションのすべてのワークステーションが、共通の中央クロックを使用する共通のネットワーク上で動作している場合、この中央クロックに基づいて、各メッセージに送信タイムスタンプを用いてスタンプすることができ、メッセージ処理の順序を、このタイムスタンプに基づくものとすることができる。正確に同一の時刻に送信される2つまたはそれ以上のメッセージについて、ある種の階層的順序付けを使用して、どのメッセージが優先されるかを決定することができる。たとえば、セッションにかかわる参加者ごとのユーザID番号に基づいて、アルファベット順および/または数値順の階層順序付けを使用することができる。別の例として、衝突する参加者がセッションに入った時刻に基づく階層を確立することができる。他のメッセージに対するあるメッセージのランダムな選択を含む多数の他の可能性も、本発明から逸脱せずに使用することができる。
メッセージを、本発明の少なくともいくつかの例でピアツーピアネットワークを介してブロードキャストすることができるので、2つの衝突する同時メッセージが、参加者のワークステーションのいくつかで誤った順序で受信される可能性があり、これによって、上位階層のメッセージが存在することを参加者のワークステーションが知る前の、下位階層のメッセージの処理がもたらされる。たとえば、参加者Bが、同一のインクストロークの拡大を指示するメッセージB10を送信するのと正確に同一の瞬間に、参加者Aが、そのインクストロークの削除を指示するメッセージA10を送信すると仮定する。この2つのメッセージは、衝突する。次に、階層プロトコルのゆえに(たとえば、衝突するメッセージIDまたは衝突する送信側ユーザIDのアルファベット順/数値順に基づいて)、メッセージA10がメッセージB10より優先されると仮定する。この例では、参加者AおよびBのそれぞれが、ピアツーピアの方法で他のすべての参加者と通信するので、参加者C(ならびに他の参加者)が、メッセージA10の前にメッセージB10を受信する可能性がある。メッセージB10が受信される時、参加者Cのワークステーションは、メッセージA10について何も知らず、メッセージB10のヒストリのすべての以前のメッセージが参加者Cのワークステーションに存在する場合、そのワークステーションは、メッセージB10を処理し、その後、メッセージA10を受信する。その場合、メッセージA10を受信するとき、参加者Cのワークステーションは、「元に戻す」機能を実行して、メッセージB10が元に戻されるまで、すべての処理されたメッセージを元に戻すことができる。その後、メッセージA10が、参加者Cのワークステーションで処理され、メッセージB10が、破棄される(メッセージB10に依存する他のすべてのメッセージも)。他の、メッセージB10に依存しない「元に戻された」メッセージは、もう一度、元の順序またはタイムスタンプの順序で、参加者Cのワークステーションによって処理される。
もちろん、本発明から逸脱せずに、衝突するメッセージを処理する他の適切な手順およびプロトコルを使用することができる。
G.新しいセッションの確立
本発明から逸脱せずに、所望の方法または適切な方法で新しいセッションを開始することができる。たとえば、電子ホワイトボードアプリケーションプログラムまたは他のアプリケーションプログラムを起動するとき、そのプログラムによって、起動する当事者に、所望の参加者または許可される参加者の名前またはユーザID番号を入力するプロンプトを出すことができる。別の例として、このタイプのアプリケーションプログラムが起動されるとき、上で説明したように、セッションの潜在的な参加者を、そのpingデータを介して識別し、追加することができる。さらに別の例として、このタイプのプログラムが起動されるとき、起動する当事者が、求めに応じることができる参加者または潜在的な参加者のメニューにアクセスし、このリスティングから可能な参加者を選択することができる。これらのオプションは、単なる例である。これらの可能性および/または他の可能性の組合せを、本発明から逸脱せずに使用することができる。
H.セキュリティ
上で説明したように、本発明のさまざまな例で、UDPブロードキャストを使用して、メッセージおよび/またはpingデータをセッションの参加者に転送する。上で注記したように、UDPブロードキャストデータは、サブネット上のユーザの少なくとも一部がセッションにかかわることを意図されていない場合であっても、サブネット上のすべてのユーザに(およびブリッジ可能な他のサブネットに)無差別に送信される。この特徴は、ユーザがセッションに自由に出入りできるようにすることができるという点で有利であるが、セッションのメッセージデータが他者に露出されるので、潜在的なセキュリティリスクも提示される。
この事実に、本発明から逸脱せずに任意の適切な方法で対処することができる。たとえば、暗号化、スクランブル、および/または他の適切なセキュリティ方法を使用して、セッションおよび/またはメッセージデータへの許可されないアクセスを防ぐことができる。別の例として、本発明の少なくともいくつかの例で、よりセキュアで直接の通信を使用して、少なくともいくつかのメッセージおよび/またはpingデータのブロードキャストを防ぐことができる。本発明から逸脱せずに、当技術分野で従来から既知の技法を含む任意の他の適切なセキュリティ技法を使用することができる。
V.結論
本発明のさまざまな例を上で説明したが、当業者は、本発明の範囲内にこれらの例のすべての組合せおよびサブコンビネーションが含まれることを理解するであろう。さらに、当業者は、上の例が、単に本発明のさまざまな態様を例示するものであることを理解するであろう。たとえば、本発明の多数の態様を、「電子ホワイトボードセッション」または他の協調セッションに関して説明したが、当業者は、本発明がこれらのタイプの協調セッションに制限されないことを理解するであろう。そうではなく、本発明の諸態様は、異なるユーザの間のさまざまなタイプの通信にあまねく適用することができる。また、さまざまな変更および修正を、請求項で定義される本発明の趣旨および範囲から逸脱せずに行うことができる。
本発明のある態様を実施することができる汎用デジタルコンピューティング環境を示す概略図である。 本発明のある態様を実施することができるペンベースのパーソナルコンピューティング(PC)環境を示す図である。 本発明のある例によるシステムおよび方法で使用することができるピアツーピア接続ネットワークを全体的に示す図である。 本発明のある例によるシステムおよび方法で使用することができるピアツーピア接続ネットワークを全体的に示す図である。 本発明のいくつかの例によるシステムおよび方法を使用してさまざまな個々の参加者によって維持することができるデータおよび情報を全体的に示す図である。 本発明のいくつかの例のさまざまな特徴を説明するのに有用な、本発明によるシステムおよび方法を介して転送可能なデータメッセージの例を示す図である。 本発明のいくつかの例のさまざまな特徴を説明するのに有用な、本発明によるシステムおよび方法を介して転送可能なデータメッセージの例を示す図である。 本発明のいくつかの例のさまざまな特徴を説明するのに有用な、本発明によるシステムおよび方法を介して転送可能なデータメッセージの例を示す図である。 本発明のいくつかの例のさまざまな特徴を説明するのに有用な、本発明によるシステムおよび方法を介して転送可能なデータメッセージの例を示す図である。 本発明のいくつかの例のさまざまな特徴を説明するのに有用な、本発明によるシステムおよび方法を介して転送可能なデータメッセージの例を示す図である。 本発明のいくつかの例のさまざまな特徴を説明するのに有用な、本発明によるシステムおよび方法を介して転送可能なデータメッセージの例を示す図である。 本発明のいくつかの例のさまざまな特徴を説明するのに有用な、本発明によるシステムおよび方法を介して転送可能なデータメッセージの例を示す図である。 本発明のいくつかの例のさまざまな特徴を説明するのに有用な、本発明によるシステムおよび方法を介して転送可能なデータメッセージの例を示す図である。 本発明のいくつかの例のさまざまな特徴を説明するのに有用な、本発明によるシステムおよび方法を介して転送可能なデータメッセージの例を示す図である。 本発明のいくつかの例のさまざまな特徴を説明するのに有用な、本発明によるシステムおよび方法を介して転送可能なデータメッセージの例を示す図である。 本発明のいくつかの例のさまざまな特徴を説明するのに有用な、本発明によるシステムおよび方法を介して転送可能なデータメッセージの例を示す図である。 本発明のいくつかの例のさまざまな特徴を説明するのに有用な、本発明によるシステムおよび方法を介して転送可能なデータメッセージの例を示す図である。 本発明のいくつかの例のさまざまな特徴を説明するのに有用な、本発明によるシステムおよび方法を介して転送可能なデータメッセージの例を示す図である。 本発明のいくつかの例のさまざまな特徴を説明するのに有用な、本発明によるシステムおよび方法を介して転送可能なデータメッセージの例を示す図である。 本発明のいくつかの例のさまざまな特徴を説明するのに有用な、本発明によるシステムおよび方法を介して転送可能なデータメッセージの例を示す図である。 本発明によるシステムおよび方法のいくつかの例で有用な、発信ブロードキャストデータメッセージのデータ構造の例を示す図である。 本発明によるある方法の例を示す流れ図である。 本発明によるシステムおよび方法のいくつかの例で有用な、発信ユーザ識別メッセージのデータ構造の例を示す図である。 セッションへの参加者としての新規ユーザの追加の方法の例を示す流れ図である。 セッションへの参加者としての新規ユーザの追加の他の方法の例を示す流れ図である。
符号の説明
402 識別番号
404a〜404n セッション
406a〜406n 識別番号
408a〜408n 参加者リスト
410a〜410m メッセージ
412a〜412m 識別子
414a〜414m メッセージペイロード
420a〜420k メッセージ
422a〜422k 識別子
424a〜424k メッセージペイロード

Claims (73)

  1. ネットワークでデータを転送する方法であって、
    データ転送するために、複数の参加者を含むセッションを確立するステップと、
    前記セッションにかかわる参加者からのメッセージをブロードキャストするステップであって、前記メッセージは、少なくとも、ブロードキャストする参加者の識別子、メッセージ識別子、セッション情報、およびメッセージペイロードを含むステップと、
    前記ブロードキャストされるデータを受信するユーザが前記セッションの参加者であるかどうかを判定するステップと、
    前記ユーザが前記セッションの参加者であるとき、前記ユーザについて前記メッセージを処理するステップと
    を備えることを特徴とする方法。
  2. 前記ユーザが前記セッションの参加者であるかどうかを判定するステップは、
    (a)前記ユーザが前記セッションでアクティブであるかどうかを判定するステップ、または(b)前記ユーザがセッション参加者リストに含まれるかどうかを判定するステップ
    の少なくとも1つを含むことを特徴とする請求項1に記載の方法。
  3. 前記ユーザは前記セッション参加者リストに含まれるが前記セッションで既にアクティブではないと判定されたとき、前記ユーザを前記セッションに追加することを特徴とする請求項2に記載の方法。
  4. 前記ユーザについて前記メッセージを処理するステップの前に、前記方法は、
    前記ユーザが前記セッション内のすべての前のメッセージを受信したかどうかを判定するステップ
    をさらに備えることを特徴とする請求項1に記載の方法。
  5. 前記セッション内で前記ユーザによって前に受信されなかった任意の前のメッセージを入手するステップ
    をさらに含むことを特徴とする請求項4に記載の方法。
  6. 前記受信されなかった前のメッセージは、前記セッションの少なくとも1人の参加者からのブロードキャストを介して入手されることを特徴とする請求項5に記載の方法。
  7. 前記セッション参加者は、1つまたは複数の前記受信されなかった前のメッセージをブロードキャストするかどうかをランダムに決定することを特徴とする請求項6に記載の方法。
  8. 前記ユーザが前記セッション内のすべての前のメッセージを受信していないと判定されたとき、前記方法は、
    (a)前記ユーザによって、少なくとも1つの未受信メッセージに関する要求を送信するステップと、
    (b)前記セッションの少なくとも1人の参加者によって、前記ユーザに前記少なくとも1つの未受信メッセージをブロードキャストするステップと、
    (c)前記セッション内のすべてのメッセージは前記ユーザによって受信されるまで(a)および(b)を繰り返すステップと
    をさらに備えることを特徴とする請求項4に記載の方法。
  9. 前記セッションの各参加者は、前記ユーザによって要求された前記未受信メッセージの1つまたは複数をブロードキャストするかどうかをランダムに決定することを特徴とする請求項8に記載の方法。
  10. 前記セッションは、ピアツーピア通信を用いることを特徴とする請求項1に記載の方法。
  11. 前記セッションの前記参加者は、共通サーバに動作可能に接続されないことを特徴とする請求項1に記載の方法。
  12. 前記セッション参加者または前記ユーザの少なくとも1人は、無線接続を介して前記ネットワークに接続されることを特徴とする請求項1に記載の方法。
  13. 前記ユーザが前記セッションの参加者であるかどうかの前記判定は、
    前記ユーザが前記ネットワークに存在することの指示を受信するステップと、
    前記ユーザを前記セッションに追加するステップと
    を含むことを特徴とする請求項1に記載の方法。
  14. 前記ユーザを前記セッションの参加者リストに追加するステップ
    をさらに備えることを特徴とする請求項13に記載の方法。
  15. 前記指示の受信に応答して、前記方法は、
    前記ユーザを前記セッションに追加するかどうかを少なくとも1人のセッション参加者に問い合わせるステップ
    をさらに備えることを特徴とする請求項13に記載の方法。
  16. 前記指示の受信に応答して、前記方法は、
    前記セッションに参加するように前記ユーザを勧誘するステップ
    をさらに備えることを特徴とする請求項13に記載の方法。
  17. 前記ユーザが前記セッションの参加者であるかどうかの前記判定は、
    前記ユーザを前記セッションに追加するかどうかを少なくとも1人のセッション参加者に照会するステップ
    を含むことを特徴とする請求項1に記載の方法。
  18. 前記メッセージペイロードは、電子インクデータを含むことを特徴とする請求項1に記載の方法。
  19. 前記セッションは、複数のセッション参加者がその上で新しいメッセージを追加し、既存メッセージを削除し、または既存メッセージを修正することができる仮想ホワイトボードを含むことを特徴とする請求項1に記載の方法。
  20. 前記ユーザが前記セッションの参加者であるかどうかの前記判定は、
    前記セッションに参加するように前記ユーザを勧誘するステップと、
    前記勧誘が受け入れられるときに前記ユーザを前記セッションの参加者リストに追加するステップと
    を含むことを特徴とする請求項1に記載の方法。
  21. 前記メッセージは、ユーザデータグラムプロトコルを使用してブロードキャストされることを特徴とする請求項1に記載の方法。
  22. セッションが発生しているネットワークにアクセスするステップであって、前記ネットワークは、前記セッション内でアクティブでないユーザによってアクセスされ、前記セッションは、メッセージデータを含むメッセージを送信し、かつ受信することができる複数の参加者を含むステップと、
    前記ユーザを前記セッションに参加者として追加するかどうかを判定するステップと、
    前記ユーザを前記セッションに参加者として追加するとき、前記セッション中に前に送信されたすべてのメッセージを前記ユーザに送信するステップと
    を備えることを特徴とする方法。
  23. 前記ユーザを前記セッションに参加者として追加するかどうかの前記判定は、
    前記ユーザが前記セッションの参加者リストに含まれるかどうかを判定するステップと、
    前記ユーザが前記参加者リストに含まれるとき、前記ユーザを参加者として前記セッションに追加するステップと
    を含むことを特徴とする請求項22に記載の方法。
  24. 前記ユーザが前記参加者リストに含まれないとき、前記ユーザを前記セッションに追加するかどうかを少なくとも1人のセッション参加者に問い合わせることを特徴とする請求項23に記載の方法。
  25. 前記ユーザを前記セッションに参加者として追加するかどうかの前記判定は、
    前記ユーザが前記セッションの参加者リストに含まれるかどうかを判定するステップと、
    前記ユーザが前記参加者リストに含まれないとき、前記ユーザを前記セッションに追加するかどうかを少なくとも1人のセッション参加者に問い合わせるステップと
    を含むことを特徴とする請求項22に記載の方法。
  26. 前記ユーザを前記セッションに参加者として追加するかどうかの前記判定は、
    前記セッションに参加するように前記ユーザを勧誘するステップと、
    前記勧誘が受け入れられるときに前記セッションに前記ユーザを追加するステップと
    を含むことを特徴とする請求項22に記載の方法。
  27. 前記セッション中に前に送信されたすべてのメッセージを送信するステップは、
    (a)前記ユーザによって、少なくとも1つの未受信メッセージに関する要求を送信するステップと、
    (b)前記セッションの少なくとも1人の参加者によって、前記少なくとも1つの未受信メッセージを前記ユーザに送信するステップと
    (c)前記セッション中に前に送信されたすべてのメッセージが前記ユーザによって受信されるまで、(a)および(b)を繰り返すステップと
    を含むことを特徴とする請求項22に記載の方法。
  28. 前記セッションは、ピアツーピア通信を用いることを特徴とする請求項22に記載の方法。
  29. 前記セッションの前記参加者は、共通サーバに動作可能に接続されないことを特徴とする請求項22に記載の方法。
  30. 前記セッション参加者または前記ユーザの少なくとも1人は、無線接続を介して前記ネットワークに接続されることを特徴とする請求項22に記載の方法。
  31. 前記メッセージの少なくとも一部は、ユーザデータグラムプロトコルを使用してブロードキャストされることを特徴とする請求項22に記載の方法。
  32. 前記メッセージの少なくとも一部は、電子インクデータを含むことを特徴とする請求項22に記載の方法。
  33. セッションの複数の参加者の間でメッセージを通信する方法であって、
    少なくとも第1参加者ワークステーションおよび第2参加者ワークステーションにピアツーピアの方法で接続するステップであって、各参加者ワークステーションは、前記セッション内の他の参加者ワークステーションにピアツーピアの方法でメッセージデータをブロードキャストし、前記セッション内の他の参加者ワークステーションからブロードキャストされたメッセージデータをピアツーピアの方法で受信することができるステップと、
    前記第1参加者ワークステーションによって第1メッセージをブロードキャストするステップと、
    少なくとも前記第2参加者ワークステーションによって前記第1メッセージを受信するステップと、
    前記第2参加者ワークステーションから、前記第1参加者ワークステーションからブロードキャストされたときに前記第1メッセージを受信しなかった前記セッションの少なくとも1つの他の参加者ワークステーションに、前記第1メッセージをブロードキャストするステップと
    を備えることを特徴とする方法。
  34. 新しい参加者ワークステーションを前記セッションに追加するステップと、
    前記第2参加者ワークステーションから、または前記第1参加者ワークステーション以外の前記セッション内に存在する参加者ワークステーションから、前記新しい参加者ワークステーションのために前記第1メッセージを入手するステップと
    をさらに備えることを特徴とする請求項33に記載の方法。
  35. 前記第1メッセージは、ユーザデータグラムプロトコルを使用してブロードキャストされることを特徴とする請求項33に記載の方法。
  36. 前記第1メッセージは、電子インクデータを含むことを特徴とする請求項33に記載の方法。
  37. 前記第1参加者ワークステーションは、前記第1メッセージが前記第2参加者ワークステーションによってブロードキャストされる前に前記セッションから離れることを特徴とする請求項33に記載の方法。
  38. 前記参加者ワークステーションは、共通サーバに動作可能に接続されないことを特徴とする請求項33に記載の方法。
  39. ネットワークを介して受信されるデータを処理するシステムであって、複数の参加者の間のデータ転送を伴うセッションは前記ネットワーク上で発生し、前記システムは、
    前記セッションにかかわる参加者から、少なくとも、ブロードキャストする参加者の識別子、メッセージ識別子、セッション情報、およびメッセージペイロードを含むブロードキャストメッセージを受信するように適合された受信器と、
    前記メッセージを受信するユーザが前記セッションの参加者であるかどうかを判定し、前記ユーザが前記セッションの参加者であるときに前記メッセージを処理するようにプログラムされ、適合されたプロセッサと
    を備えることを特徴とするシステム。
  40. 前記プロセッサは、(a)前記ユーザが前記セッションのアクティブな参加者であるかどうかを判定すること、または(b)前記ユーザが前記セッションの参加者リストに含まれるかどうかを判定することの少なくとも1つによって前記ユーザは前記セッションの参加者であるかどうかを判定することを特徴とする請求項39に記載のシステム。
  41. 前記プロセッサは、前記メッセージを処理する前に、前記ユーザが前記セッション内のすべての前のメッセージを受信したかどうかをさらに判定することを特徴とする請求項39に記載のシステム。
  42. 前記ユーザによって前に受信されなかった前記セッション内の少なくとも1つの前のメッセージに関する要求を送信するように適合されたブロードキャストシステムをさらに備えることを特徴とする請求項41に記載のシステム。
  43. 前記セッションは、ピアツーピア通信を用いることを特徴とする請求項39に記載のシステム。
  44. 前記セッション内のデータ転送は、共通サーバを使用しないことを特徴とする請求項39に記載のシステム。
  45. 前記受信器は、無線接続を介して前記ネットワーク上で前記メッセージペイロードを受信することを特徴とする請求項39に記載のシステム。
  46. 前記メッセージペイロードは、電子インクデータを含むことを特徴とする請求項39に記載のシステム。
  47. 前記セッションは、複数のセッション参加者がその上で新しいメッセージを追加し、既存メッセージを削除し、または既存メッセージを修正することができる仮想ホワイトボードを構成することを特徴とする請求項39に記載のシステム。
  48. 前記メッセージは、ユーザデータグラムプロトコルを使用してブロードキャストされることを特徴とする請求項39に記載のシステム。
  49. メッセージデータを送信し、受信することができる複数の参加者を含むセッションが行われているネットワークにアクセスするように適合された接続システムと、
    ワークステーションのユーザが前記セッションの参加者であるかどうかを判定するようにプログラムされ、適合されたプロセッサと、
    前記ユーザが前記セッションの参加者であると判定されたとき、前記セッション中に送信されるメッセージデータを受信するように適合されたメッセージ受信システムと
    を備えることを特徴とするワークステーション。
  50. 前記プロセッサは、前記ユーザが前記セッションの参加者リストに含まれるかどうかを判定することによって、前記ユーザが前記セッションの参加者であるかどうかを判定することを特徴とする請求項49に記載のワークステーション。
  51. 少なくとも1つの前に受信されなかったメッセージに関する要求をブロードキャストするように適合されたブロードキャストシステム
    をさらに備えることを特徴とする請求項49に記載のワークステーション。
  52. 前記セッションは、ピアツーピア通信を用いることを特徴とする請求項49に記載のワークステーション。
  53. 前記メッセージデータは、共通サーバを介して前記セッションのすべての参加者に転送されないことを特徴とする請求項49に記載のワークステーション。
  54. 前記接続システムは、無線接続を介して前記ネットワークに接続することを特徴とする請求項49に記載のワークステーション。
  55. 前記メッセージ受信システムは、ユーザデータグラムプロトコルを使用してブロードキャストされるメッセージを受信するように適合されることを特徴とする請求項49に記載のワークステーション。
  56. 前記メッセージデータの少なくとも一部は、電子インクデータを含むことを特徴とする請求項49に記載のワークステーション。
  57. セッションの複数の参加者の間でメッセージを通信するシステムであって、
    ピアツーピアネットワーク内で接続される複数の参加者ワークステーションであって、前記参加者ワークステーションの少なくとも一部は、前記ネットワークを介して前記セッション内の他の参加者ワークステーションにメッセージデータをブロードキャストすること、および、前記ネットワークを介して前記セッション内の他の参加者ワークステーションからのブロードキャストされたデータを受信することができる参加者ワークステーションを備え、
    前記参加者ワークステーションの1つは、自由に前記セッションから退出することができ、前記退出する参加者ワークステーションによって前記セッションから退出する前にブロードキャストされた前記メッセージデータは、必要な場合、他の参加者ワークステーションが、前記退出する参加者ワークステーションによってブロードキャストされた前記メッセージデータを前に受信した残りの参加者ワークステーションから入手することができる
    ことを特徴とするシステム。
  58. 新しい参加者ワークステーションは、前記セッションに自由に入り、1つまたは複数の参加者ワークステーションから前のメッセージデータを入手することができることを特徴とする請求項57に記載のシステム。
  59. 前記メッセージデータは、ユーザデータグラムプロトコルを使用してブロードキャストされることを特徴とする請求項57に記載のシステム。
  60. 前記メッセージデータの少なくとも一部は、電子インクデータを含むことを特徴とする請求項57に記載のシステム。
  61. 前記複数の参加者ワークステーションは、メッセージデータ転送のために共通サーバに接続されないことを特徴とする請求項57に記載のシステム。
  62. セッションの参加者にメッセージデータを送信するためのデータ構造を記憶したコンピュータ可読媒体であって、前記データ構造は、
    メッセージIDを表すデータを含む第1データフィールドと、
    セッション情報を表すデータを含む第2データフィールドと、
    メッセージペイロードを表すデータを含む第3データフィールドと
    を含むことを特徴とするコンピュータ可読媒体。
  63. 前記セッション情報を表す前記データは、セッションID、セッション参加者リスト、およびセッションメッセージヒストリからなる群から選択される少なくとも1つのメンバを表すデータを含むことを特徴とする請求項62に記載のコンピュータ可読媒体。
  64. 前記セッション情報を表す前記データは、少なくとも(a)セッションID、(b)セッション参加者リスト、および(c)セッションメッセージヒストリを表すデータを含むことを特徴とする請求項62に記載のコンピュータ可読媒体。
  65. 前記データ構造は、
    前記メッセージデータをブロードキャストする参加者の識別子を表すデータを含む第4データフィールド
    をさらに含むことを特徴とする請求項62に記載のコンピュータ可読媒体。
  66. 前記データ構造は、ユーザデータグラムプロトコルを使用するブロードキャスト用のフォーマットであることを特徴とする請求項62に記載のコンピュータ可読媒体。
  67. 前記メッセージペイロードは、電子インクデータを含むことを特徴とする請求項62に記載のコンピュータ可読媒体。
  68. 複数の参加者を含むデータ転送セッションにユーザがかかわるときに前記ユーザの識別データをネットワークに送信するためのデータ構造を記憶したコンピュータ可読媒体であって、前記データ構造は、
    前記ユーザの識別を表すデータを含む第1データフィールドと、
    前記データ転送セッションに関する識別情報を表すデータを含む第2データフィールドと、
    前記セッションにおける前記ユーザのヒストリを表すデータを含む第3データフィールドと
    を含むことを特徴とするコンピュータ可読媒体。
  69. 前記データ転送セッションに関する前記識別情報を表す前記データは、セッションIDおよびセッション参加者リストからなる群から選択される少なくとも1つのメンバを表すデータを含むことを特徴とする請求項68に記載のコンピュータ可読媒体。
  70. 前記データ転送セッションに関する前記識別情報を表す前記データは、少なくともセッションIDおよびセッション参加者リストを表すデータを含むことを特徴とする請求項68に記載のコンピュータ可読媒体。
  71. 前記ユーザのヒストリを表すデータは、セッションID、前記セッション内で前記ユーザによって処理された少なくとも最後のメッセージを識別するメッセージIDリスト、および前記セッション内で前記ユーザによって送信された少なくとも最後のメッセージを識別するメッセージIDリストからなる群から選択される少なくとも1つのメンバを表すデータを含むことを特徴とする請求項68に記載のコンピュータ可読媒体。
  72. 前記ユーザのヒストリを表す前記データは、セッションIDおよび前記セッション内で前記ユーザによって処理された少なくとも最後のメッセージを識別するメッセージIDリストを少なくとも表すデータを含むことを特徴とする請求項68に記載のコンピュータ可読媒体。
  73. 前記データ構造は、ユーザデータグラムプロトコルを使用するブロードキャスト用のフォーマットであることを特徴とする請求項68に記載のコンピュータ可読媒体。
JP2004110407A 2003-05-02 2004-04-02 ピアツーピアネットワークでの一時的接続を介するメッセージの通信 Expired - Fee Related JP4658509B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/427,941 US7966368B2 (en) 2003-05-02 2003-05-02 Communicating messages over transient connections in a peer-to-peer network

Publications (2)

Publication Number Publication Date
JP2004334847A true JP2004334847A (ja) 2004-11-25
JP4658509B2 JP4658509B2 (ja) 2011-03-23

Family

ID=32990461

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004110407A Expired - Fee Related JP4658509B2 (ja) 2003-05-02 2004-04-02 ピアツーピアネットワークでの一時的接続を介するメッセージの通信

Country Status (7)

Country Link
US (1) US7966368B2 (ja)
EP (2) EP1473871B1 (ja)
JP (1) JP4658509B2 (ja)
KR (1) KR20040094309A (ja)
CN (1) CN100461681C (ja)
AT (2) ATE431656T1 (ja)
DE (2) DE602004021068D1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010225106A (ja) * 2009-03-25 2010-10-07 Nec Corp システム及びメッセージ中継サーバ及び端末装置
JP2014507033A (ja) * 2011-02-04 2014-03-20 クゥアルコム・インコーポレイテッド 画像表示のためのワイヤレスソースデバイスとシンクデバイスとの間のデータ交換
JP2014126965A (ja) * 2012-12-26 2014-07-07 Ricoh Co Ltd 情報処理システム、サーバー機器及び情報処理装置

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050021737A1 (en) * 2003-05-01 2005-01-27 Ellison Carl M. Liveness protocol
US7316027B2 (en) * 2004-02-03 2008-01-01 Novell, Inc. Techniques for dynamically establishing and managing trust relationships
US7299493B1 (en) * 2003-09-30 2007-11-20 Novell, Inc. Techniques for dynamically establishing and managing authentication and trust relationships
US7467415B2 (en) * 2003-09-30 2008-12-16 Novell, Inc. Distributed dynamic security for document collaboration
US7581097B2 (en) * 2003-12-23 2009-08-25 Lenovo Pte Ltd Apparatus, system, and method for secure communications from a human interface device
US7454465B2 (en) * 2004-03-26 2008-11-18 Microsoft Corporation Real-time collaboration and communication in a peer-to-peer networking infrastructure
US8688803B2 (en) 2004-03-26 2014-04-01 Microsoft Corporation Method for efficient content distribution using a peer-to-peer networking infrastructure
US8281142B2 (en) 2005-01-20 2012-10-02 The Invention Science Fund I, Llc Notarizable electronic paper
US7669245B2 (en) * 2005-06-08 2010-02-23 Searete, Llc User accessibility to electronic paper
US8063878B2 (en) 2005-01-20 2011-11-22 The Invention Science Fund I, Llc Permanent electronic paper
US7739510B2 (en) 2005-05-12 2010-06-15 The Invention Science Fund I, Inc Alert options for electronic-paper verification
US7865734B2 (en) 2005-05-12 2011-01-04 The Invention Science Fund I, Llc Write accessibility for electronic paper
US7856555B2 (en) 2005-01-20 2010-12-21 The Invention Science Fund I, Llc Write accessibility for electronic paper
US7774606B2 (en) 2005-01-20 2010-08-10 The Invention Science Fund I, Inc Write accessibility for electronic paper
US8640259B2 (en) 2005-01-20 2014-01-28 The Invention Science Fund I, Llc Notarizable electronic paper
EP1684481B1 (en) * 2005-01-21 2007-03-14 Research In Motion Limited System and Method for selecting an active connection
US7908242B1 (en) 2005-04-11 2011-03-15 Experian Information Solutions, Inc. Systems and methods for optimizing database queries
US7469149B2 (en) * 2005-06-03 2008-12-23 Motorola, Inc. Method and apparatus for serially establishing a group call session
US7774827B2 (en) * 2005-06-06 2010-08-10 Novell, Inc. Techniques for providing role-based security with instance-level granularity
KR100792809B1 (ko) * 2005-08-22 2008-01-14 인피니언 테크놀로지스 아게 회의 세션 초대 메시지의 컴퓨터 지원 구성 방법, 회의세션의 컴퓨터 지원 생성 방법, 회의 세션에서 메시지의컴퓨터 지원 처리 방법, 회의 세션 초대 메시지 생성 유닛,회의 세션 생성 유닛 및 통신 단말 장치
US7634551B2 (en) * 2005-12-07 2009-12-15 Xerox Corporation System and method for forming a cluster of networked devices
US8195747B2 (en) * 2005-12-20 2012-06-05 International Business Machines Corporation User identity based instant messaging session monitoring
US7680044B2 (en) * 2005-12-29 2010-03-16 Panasonic Electric Works Co., Ltd. Systems and methods for managing traffic within a peer-to-peer network
US20070175785A1 (en) * 2006-01-28 2007-08-02 Darren Sharp Accessory bit caddie base marketing cover
US8639605B2 (en) * 2006-04-21 2014-01-28 Thomson Reuters Global Resources Systems and methods for the identification and messaging of trading parties
FI20065479A0 (fi) * 2006-07-05 2006-07-05 Nokia Corp Ryhmäkommunikaatio
US7912865B2 (en) 2006-09-26 2011-03-22 Experian Marketing Solutions, Inc. System and method for linking multiple entities in a business database
WO2008048167A1 (en) * 2006-10-17 2008-04-24 Anoto Ab Data transfer from multiple electronic pens
US8243022B2 (en) * 2006-11-27 2012-08-14 Microsoft Corporation Federated virtual graffiti
US8285656B1 (en) 2007-03-30 2012-10-09 Consumerinfo.Com, Inc. Systems and methods for data verification
US8312033B1 (en) 2008-06-26 2012-11-13 Experian Marketing Solutions, Inc. Systems and methods for providing an integrated identifier
KR101499963B1 (ko) * 2008-08-25 2015-03-06 엘지전자 주식회사 휴대 단말기 및 휴대 단말기를 이용한 정보 제공 방법
US20100100866A1 (en) * 2008-10-21 2010-04-22 International Business Machines Corporation Intelligent Shared Virtual Whiteboard For Use With Representational Modeling Languages
US8086734B2 (en) 2009-08-26 2011-12-27 International Business Machines Corporation Method of autonomic representative selection in local area networks
CN102065062B (zh) * 2009-11-12 2013-08-28 华为终端有限公司 建立联合会话的方法和应用服务器
CN103457935A (zh) * 2009-11-12 2013-12-18 华为终端有限公司 建立联合会话的方法和应用服务器
US9372728B2 (en) * 2009-12-03 2016-06-21 Ol Security Limited Liability Company System and method for agent networks
US9147042B1 (en) 2010-11-22 2015-09-29 Experian Information Solutions, Inc. Systems and methods for data verification
US9130763B2 (en) * 2011-06-20 2015-09-08 Microsoft Technology Licensing, Llc Automatic sharing of event content by linking devices
KR101909031B1 (ko) * 2012-07-26 2018-10-17 엘지전자 주식회사 이동 단말기 및 이의 제어 방법
US11169655B2 (en) 2012-10-19 2021-11-09 Gree, Inc. Image distribution method, image distribution server device and chat system
FR2998995A1 (fr) * 2012-12-03 2014-06-06 France Telecom Procede de communication entre plusieurs utilisateurs munis de terminaux de communication, par l'intermediaire d'une espace virtuel de communication
US9697263B1 (en) 2013-03-04 2017-07-04 Experian Information Solutions, Inc. Consumer data request fulfillment system
US10126927B1 (en) 2013-03-15 2018-11-13 Study Social, Inc. Collaborative, social online education and whiteboard techniques
US9706267B2 (en) * 2013-04-22 2017-07-11 Aginova Inc. iCelsius wireless: wireless monitoring with smart phones and tablets
EP2811796A1 (en) * 2013-06-07 2014-12-10 Stichting Vu-Vumuc Position-based broadcast protocol and time slot schedule for a wireless mesh network
US9489114B2 (en) 2013-06-24 2016-11-08 Microsoft Technology Licensing, Llc Showing interactions as they occur on a whiteboard
JP2015080075A (ja) * 2013-10-16 2015-04-23 ソニー株式会社 映像表示システム、外部装置および映像表示方法
US10102536B1 (en) 2013-11-15 2018-10-16 Experian Information Solutions, Inc. Micro-geographic aggregation system
CN105765502B (zh) * 2013-11-19 2019-10-08 株式会社和冠 用于墨水数据生成、墨水数据呈现、墨水数据操纵以及墨水数据通信的方法和系统
US9529851B1 (en) 2013-12-02 2016-12-27 Experian Information Solutions, Inc. Server architecture for electronic data quality processing
US10262362B1 (en) 2014-02-14 2019-04-16 Experian Information Solutions, Inc. Automatic generation of code for attributes
WO2016049905A1 (zh) * 2014-09-30 2016-04-07 深圳市大疆创新科技有限公司 一种飞行任务处理方法、装置及系统
JP6729590B2 (ja) * 2015-07-24 2020-07-22 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
JP2017076207A (ja) * 2015-10-14 2017-04-20 株式会社リコー 画像処理装置及び画像処理システム
US10375194B2 (en) * 2015-10-30 2019-08-06 The Nielsen Company (Us), Llc Methods and apparatus to prevent illicit proxy communications from affecting a monitoring result
CN106685600B (zh) * 2015-11-05 2019-09-20 北京中广上洋科技股份有限公司 局域网内工作站之间的消息传递方法
CN110383319B (zh) 2017-01-31 2023-05-26 益百利信息解决方案公司 大规模异构数据摄取和用户解析
US10963434B1 (en) 2018-09-07 2021-03-30 Experian Information Solutions, Inc. Data architecture for supporting multiple search models
WO2020212610A1 (en) * 2019-04-18 2020-10-22 Medicus Ai Gmbh Method and system for selective broadcasting
US11941065B1 (en) 2019-09-13 2024-03-26 Experian Information Solutions, Inc. Single identifier platform for storing entity data
US11880377B1 (en) 2021-03-26 2024-01-23 Experian Information Solutions, Inc. Systems and methods for entity resolution
US12063575B2 (en) * 2021-04-22 2024-08-13 Amdocs Development Limited System, method, and computer program for unified messaging platform deployed on ephemeral mesh network
EP4408036A1 (fr) * 2023-01-27 2024-07-31 Bull Sas Procédé de communication de messages entre une pluralité d'équipements d'utilisateur

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11272534A (ja) * 1998-01-20 1999-10-08 Fujitsu Ltd ドキュメント分散処理方法,ドキュメント分散処理システムのサーバ管理方法およびサーバプログラムの記録媒体
US6212548B1 (en) * 1998-07-30 2001-04-03 At & T Corp System and method for multiple asynchronous text chat conversations
JP2001331469A (ja) * 2000-05-23 2001-11-30 Ntt Comware Corp データの共有方法、端末装置および記録媒体
JP2002183064A (ja) * 2000-10-19 2002-06-28 Internatl Business Mach Corp <Ibm> 永続チャット・セッションの方法およびシステム
JP2003085111A (ja) * 2001-09-14 2003-03-20 Fujitsu Ltd コラボレーション方法、システム、プログラム及び記録媒体
JP2004110573A (ja) * 2002-09-19 2004-04-08 Ricoh Co Ltd データ通信方法、データ通信装置、データ通信システム及びデータ通信プログラム

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5216675A (en) * 1990-05-23 1993-06-01 The United States Of America As Represented By The Secretary Of The Air Force Reliable broadcast protocol
US5805825A (en) * 1995-07-26 1998-09-08 Intel Corporation Method for semi-reliable, unidirectional broadcast information services
US6016505A (en) * 1996-04-30 2000-01-18 International Business Machines Corporation Program product to effect barrier synchronization in a distributed computing environment
US6295550B1 (en) * 1996-10-23 2001-09-25 Ncr Corporation Session creation mechanism for collaborative network navigation
US5940082A (en) * 1997-02-14 1999-08-17 Brinegar; David System and method for distributed collaborative drawing
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
US6484196B1 (en) * 1998-03-20 2002-11-19 Advanced Web Solutions Internet messaging system and method for use in computer networks
US6363421B2 (en) * 1998-05-31 2002-03-26 Lucent Technologies, Inc. Method for computer internet remote management of a telecommunication network element
US6505253B1 (en) * 1998-06-30 2003-01-07 Sun Microsystems Multiple ACK windows providing congestion control in reliable multicast protocol
US6604129B2 (en) * 1999-03-25 2003-08-05 At&T Corp. Method and apparatus for a conference call mediation service
US6304898B1 (en) * 1999-10-13 2001-10-16 Datahouse, Inc. Method and system for creating and sending graphical email
US6564249B2 (en) * 1999-10-13 2003-05-13 Dh Labs, Inc. Method and system for creating and sending handwritten or handdrawn messages
US6763373B2 (en) * 1999-10-13 2004-07-13 Datahouse Labs, Inc. Method and system for creating and sending handwritten or handdrawn messages
US6606644B1 (en) * 2000-02-24 2003-08-12 International Business Machines Corporation System and technique for dynamic information gathering and targeted advertising in a web based model using a live information selection and analysis tool
US6980518B1 (en) * 2000-06-23 2005-12-27 International Business Machines Corporation Gossip-based reliable multicast message recovery system and method
US6910069B1 (en) * 2000-07-31 2005-06-21 The Boeing Company Joining a broadcast channel
US6920497B1 (en) * 2000-07-31 2005-07-19 The Boeing Company Contacting a broadcast channel
WO2002057917A2 (en) * 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
US20020129106A1 (en) * 2001-03-12 2002-09-12 Surgency, Inc. User-extensible system for manipulating information in a collaborative environment
US6981223B2 (en) * 2001-03-19 2005-12-27 Ecrio, Inc. Method, apparatus and computer readable medium for multiple messaging session management with a graphical user interface
US6636745B2 (en) * 2001-08-10 2003-10-21 Motorola, Inc. Method and apparatus to shorten call-setup time
US20030051029A1 (en) * 2001-09-07 2003-03-13 Reedy Dennis G. Dynamic provisioning of sevice components in a distributed system
US20030135552A1 (en) * 2002-01-14 2003-07-17 Blackstock Michael A. Method for discovering and discriminating devices on local collaborative networks to facilitate collaboration among users
US20030135565A1 (en) * 2002-01-14 2003-07-17 Julio Estrada Electronic mail application with integrated collaborative space management
US20030163525A1 (en) * 2002-02-22 2003-08-28 International Business Machines Corporation Ink instant messaging with active message annotation
US7421736B2 (en) * 2002-07-02 2008-09-02 Lucent Technologies Inc. Method and apparatus for enabling peer-to-peer virtual private network (P2P-VPN) services in VPN-enabled network
US7362349B2 (en) * 2002-07-10 2008-04-22 Seiko Epson Corporation Multi-participant conference system with controllable content delivery using a client monitor back-channel
US7613772B2 (en) * 2002-07-25 2009-11-03 Colligo Networks, Inc. Method for context based discovery and filtering of portable collaborative networks
US7069438B2 (en) * 2002-08-19 2006-06-27 Sowl Associates, Inc. Establishing authenticated network connections
US7676580B2 (en) * 2003-03-27 2010-03-09 Microsoft Corporation Message delivery with configurable assurances and features between two endpoints
US20040215784A1 (en) * 2003-04-28 2004-10-28 Yan Qi Distributed management of collaboration sessions including local and remote servers

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11272534A (ja) * 1998-01-20 1999-10-08 Fujitsu Ltd ドキュメント分散処理方法,ドキュメント分散処理システムのサーバ管理方法およびサーバプログラムの記録媒体
US6212548B1 (en) * 1998-07-30 2001-04-03 At & T Corp System and method for multiple asynchronous text chat conversations
JP2001331469A (ja) * 2000-05-23 2001-11-30 Ntt Comware Corp データの共有方法、端末装置および記録媒体
JP2002183064A (ja) * 2000-10-19 2002-06-28 Internatl Business Mach Corp <Ibm> 永続チャット・セッションの方法およびシステム
JP2003085111A (ja) * 2001-09-14 2003-03-20 Fujitsu Ltd コラボレーション方法、システム、プログラム及び記録媒体
JP2004110573A (ja) * 2002-09-19 2004-04-08 Ricoh Co Ltd データ通信方法、データ通信装置、データ通信システム及びデータ通信プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010225106A (ja) * 2009-03-25 2010-10-07 Nec Corp システム及びメッセージ中継サーバ及び端末装置
JP2014507033A (ja) * 2011-02-04 2014-03-20 クゥアルコム・インコーポレイテッド 画像表示のためのワイヤレスソースデバイスとシンクデバイスとの間のデータ交換
JP2014126965A (ja) * 2012-12-26 2014-07-07 Ricoh Co Ltd 情報処理システム、サーバー機器及び情報処理装置

Also Published As

Publication number Publication date
EP1496646B1 (en) 2009-05-13
ATE364273T1 (de) 2007-06-15
ATE431656T1 (de) 2009-05-15
EP1473871A3 (en) 2004-12-22
CN1543124A (zh) 2004-11-03
EP1496646A2 (en) 2005-01-12
KR20040094309A (ko) 2004-11-09
EP1473871A2 (en) 2004-11-03
DE602004006798T2 (de) 2007-10-11
DE602004021068D1 (de) 2009-06-25
JP4658509B2 (ja) 2011-03-23
EP1496646A3 (en) 2005-05-25
US7966368B2 (en) 2011-06-21
DE602004006798D1 (de) 2007-07-19
CN100461681C (zh) 2009-02-11
US20040221043A1 (en) 2004-11-04
EP1473871B1 (en) 2007-06-06

Similar Documents

Publication Publication Date Title
JP4658509B2 (ja) ピアツーピアネットワークでの一時的接続を介するメッセージの通信
JP4477387B2 (ja) サブネット境界を越えたサブネットブロードキャストのブリッジ
US11847250B2 (en) Controlling disclosure of identities in communication sessions
US7454465B2 (en) Real-time collaboration and communication in a peer-to-peer networking infrastructure
EP2761582B1 (en) Automatic identification and representation of most relevant people in meetings
US7818679B2 (en) Method, system, and apparatus for enabling near real time collaboration on an electronic document through a plurality of computer systems
KR101137099B1 (ko) 확장형 실시간 공동작업 시스템을 위한 아키텍처
US20050089023A1 (en) Architecture for an extensible real-time collaboration system
KR20060045874A (ko) 분산된 다자간 회의를 제어하기 위한 메카니즘
US20150032809A1 (en) Conference Session Handoff Between Devices
US20060200517A1 (en) Method and apparatus for real time multi-party conference document copier
CN102739635A (zh) 自动的会议重新加入
TW202147834A (zh) 同步本地房間和遠端共享
JP2017518562A (ja) マルチメディアシグナリング制御のために有効にされるパブリッシュ/サブスクライブ・ネットワーク、そのネットワーク内でセッションを開始する方法、及び夫々のネットワークデバイス
US20090119368A1 (en) System and method for gathering conversation information
Tung MediaBoard: A shared whiteboard application for the MBone
US20060150245A1 (en) System and method of automatically transforming instant message transmission modes on internet
KR20190075391A (ko) 데이터 분산 서비스를 위한 장치 및 방법, 데이터 분산 서비스 시스템
US8515992B2 (en) Method and system for creating executable document and repository links within virtual workplace environments
JP4600204B2 (ja) 電子会議プログラム、電子会議端末装置、電子会議システム
Truong Video Conference Room Implementation with WebRTC and React
RU2377640C2 (ru) Архитектура для расширяемой системы совместной работы в реальном времени
Čičák et al. Interaction support in presentation system
JP2004120039A (ja) 通信確立方法及びそれを用いた端末装置及び通信確立プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070328

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100430

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: 20101217

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101224

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

Free format text: PAYMENT UNTIL: 20140107

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4658509

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

LAPS Cancellation because of no payment of annual fees