CN1543124A - 在对等网络中经瞬态连接的通信消息 - Google Patents

在对等网络中经瞬态连接的通信消息 Download PDF

Info

Publication number
CN1543124A
CN1543124A CNA2004100323606A CN200410032360A CN1543124A CN 1543124 A CN1543124 A CN 1543124A CN A2004100323606 A CNA2004100323606 A CN A2004100323606A CN 200410032360 A CN200410032360 A CN 200410032360A CN 1543124 A CN1543124 A CN 1543124A
Authority
CN
China
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
CNA2004100323606A
Other languages
English (en)
Other versions
CN100461681C (zh
Inventor
P��T��F����
P·T·F·苏
R·J·贾勒特
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 Technology Licensing LLC
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 CN1543124A publication Critical patent/CN1543124A/zh
Application granted granted Critical
Publication of CN100461681C publication Critical patent/CN100461681C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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
    • 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

Abstract

描述了用于经对等网络,可选地经瞬态连接,将消息到传送到协同会话(如“电子白板”会话)的参与者的系统和方法。这种系统和方法的例子可包括建立数据传输的会话,使参与者能容易地进入或离开会话而不丢失数据或丢失参与者之间的连接,即使在如由于连接的瞬态特性(如无线连接)而造成的参与者离开会话或丢失对会话的连接时也是如此。这些示例的系统和方法使会话参与者能容易地访问和赶上在进行的会话中以前发送的数据。各种揭示的数据结构也在用于通信消息的各种系统和方法中有用。通过使用如上所述的系统和方法,能实施对等协同通信,而不需要使所有会话参与者连接到公共的服务器。

Description

在对等网络中经瞬态连接的通信消息
技术领域
本发明一般涉及经过对等网络传送消息的系统、方法和数据结构。例如,这种系统、方法和数据结构可用于经瞬态连接而传送消息到协同会话,如“电子白板”会话,的参与者。
背景技术
众所周知有许多协同应用程序,它们允许用户在不同工作站同时共享电子数据和信息,并同时观看同样的信息,实时对信息作出改变,并观看改变后的信息(类似于“电子白板”会话,“NetMeeting”会话(“NetMeeting”是华盛顿州雷蒙德市(Redmond,Washington)的微软公司注册的商标),或“WebEx”会话(“WebEx”是加利福尼亚州圣何塞市(San Jose,California)的WebEx通信有限公司(WebEx Communication Inc.)注册的商标))。这些应用程序通常利用公共服务器,且所有参与者经公共服务器连接到应用程序和电子白板会话。因此当各种会话参与者发送增加、删除和/或修改数据的数据消息时,服务器处理这些消息并作出对参与者可用的结果。
在许多情况中,两个或多个会话参与者发送输入的并可能冲突的消息到系统中关于现有数据的电子白板会话。在这种情况中,服务器确定处理哪些输入的数据消息,以及对输入信号的处理次序,并且服务器按某些预定的协议(通常是接收时间)解决任何冲突和/或不一致的输入消息数据指令。
另选地,在某些情况中,不是连接到公共服务器,参与者的机器在会话中被指定成事实上的“服务器”。在这种情况中,此参与者的机器解决冲突的或输入的消息数据(通常又基于输入数据消息到该机器的时间)。
虽然这种使用实际的或事实上的服务器的电子白板会话是有用的,但是它们也面临限制它们的有用性的某些缺点。例如,建立电子白板会话并将参加会话所需的信息通知给潜在的参与者,这是耗时且混乱的任务,尤其是在许多参与者需要或可能需要参加时更是如此。用户通常需要使用以前获得的口令和其它连接信息来登录此会话。至少在某些情况中,建立电子白板会话的一方难以确定谁应接收并访问登录信息。虽然在某些情况中对敏感通信而言这种安全是必须的,但是这些事先计划的要求使得使用电子白板通信不方便并有时不可能,尤其需要以即席方式的会话时更是如此。此外,若潜在的参与者未收到或不能够定位需要的登录信息,他就不能加入此会话或大大推迟加入。此外,许多用户可能不知道用于这些各种会话类型的服务器,这妨碍他们加入会话的能力。
许多通信不要求这种级别的安全等级。例如,位于公司管区中经局部子网或内联网通信的单个公司的雇员,可能不需要通常的电子白板通信的附加的登录和安全特征。
此外,使用单个服务器(实际的或事实上的),若信息传送由于任何原因被打断,则可能引起数据传输困难。传送中断经常发生,尤其是对通过如无线连接那样的瞬态连接而连接到系统的用户更是如此。无线连接(或其他连接)的中断会导致需要用户重新登录到会话,引起延时和通信困难。而且,若用作事实上的服务器的机器的用户由于任何原因而离开会话,这会对其他用户导致中断和或会话失败。
因而,在本领域中需要这样一种应用,它允许多个用户使用数据消息,以避免了如上所述的一个或多个缺点的协同方式(如以电子白板会话方式)而可靠地互相通信。这样一种系统应允许参与者自由地加入和离开会话,而仍能可靠地发送所有消息到会话的所有参与者,包括发送到晚到的参与者和/或其他参与者已离开该会话之后。
发明内容
本发明的各方面涉及用于经过对等网络,任选地通过瞬态连接,传送消息到协同会话(如“电子白板”会话)的参与者的系统、方法和数据结构。在一个方面,本发明涉及建立用于数据传输的会话的系统和方法,它使得参与容易地进入和离开会话而不会丢失数据或丢失参与者之间的连接,即使当参与者离开会话或如由于它们连接的瞬态特性而丢失了对会话的连接时也如此。在另一方面,本发明涉及允许参与者容易地访问并赶上在进行的对话中以前发送的数据。各种数据结构可用于传送消息的各种系统和方法。这些数据结构可用于将消息有效载荷传送到会话的参与者。任选地,当用户加入到包括多个参与者的数据传输会话时,其他可用的数据结构可包括用于通过网络广播用户的标识数据的数据。通过广播消息有效载荷和用户标识数据,网络上的其它用户能容易地判断他们是否要被卷入正在进行的会话并加入该会话。
附图简述
图1例示了能实现本发明的某些方面的通用数字计算环境的示意图;
图2例示了能实现本发明的某些方面的笔式个人计算(PC)环境;
图3A和3B一般地例示了对等连接网络,它能用于本发明的某些例子的系统和方法;
图4一般地示出了由使用本发明的某些例子的系统和方法的各个单独参与者保存的数据和信息;
图5A到6E例示了通过本发明的系统和方法可传输的数据消息的例子,这对解释本发明的某些例子各种特征方面是有用的;
图7是用于本发明的系统和方法的某些例子的输出的广播数据消息的示例性数据结构;
图8是例示本发明的某些方法的流程图;
图9是用于本发明的系统和方法的某些例子的输出的用户标识消息的示例性数据结构;
图10是例示增加新的用户到会话中作为会话的参与者所述的方法的例子的流程图;以及
图11例示了增加新的用户到会话中作为会话的参与者的其他方法的例子的流程图。
具体实施方式
如上所述,本发明的诸方面涉及通过对等网络传送消息,包括在使用如无线连接那样的瞬态连接而互相连接的工作站之间通信,的系统、方法和数据结构。为助于读者理解,下面的描述分成各子段。这些字段包括:术语;本发明各方面的一般描述;示例硬件;本发明的示例系统、方法和数据结构;结论。
I、术语
在本说明书中使用下列术语:
术语“消息”或“消息数据”或“数据消息”在本说明书中交替使用。这些术语指的是从一台机器发送的由另一台机器接收的任何数据。术语“消息有效载荷”一般指的是包括要传输到会话中的其他用户的信息的数据消息部分。
“用户”指的是以某种方式,如通过传统的子网、内联网或因特网连接,连接到通信网络的成员。连接可以是如有线连接、无线连接或业内已知的其它连接那样的任何传统的连接。
“会话”指的是多个网络用户经通信网络互相通信的会议。加入会话的用户可位于公共子网上、不同的子网上或两者上。通信可以是视频的、声频的或其组合。
“参与者”指的是加入会话的用户。
“机器”指的是在经通信网络的通信中使用的任何设备。“机器”包括但不限于计算机终端或工作站、台式PC、笔式或触笔式PC、笔记本和/或膝上型计算机、掌上机、PDA、电话等。
“计算机可读媒体”指的是任何能由计算机系统上的用户访问的可得到的媒体。例如,“计算机可读媒体”可包括但不限于:计算机存储媒体和通信媒体。“计算机存储媒体”包括以任何技术或方法实现的易失型和非易失型、可移除和不可移除的媒体,用于存储诸如计算机可读指令、数据结构、程序模块或其他数据那样的信息。“计算机存储媒体”包括但不限于:RAM、ROM、EEPROM、闪存或其他存储技术;CD-ROM、数字通用盘(DVD)或其他光存储设备;磁带盒、磁带、磁盘存储器或其它磁存储设备;或能用于存储所需信息并能由计算机存取访问的任何其它媒体。“通信媒体”一般以如载波或其它传送机制那样的调制数据信号的形式将计算机可读指令、数据结构、程序模块或其他数据具体化,并包括任何信息传送媒体。术语“调制数据信号”指的是以设置或改变一个或多个特征的方式来编码信号中的信息的信号。作为例子但非限制,通信媒体包括如有线网络或直接线缆连接的有线媒体,和如声音、RF、红外之类的无线媒体和其它无线媒体。任何上述的组合也应包括在“计算机可读媒体”的范围之中。
II、本发明各方面的一般描述
本发明的诸方面涉及可用于经对等网络传送消息的系统、方法和数据结构。例如,可使用这些系统、方法和数据结构以对等方式在协同会话中通过瞬态连接将消息传送到参与者。
本发明的更加详细的方面涉及到在网络上传输数据所述的方法。本发明的该方面的一个例子包括:(a)为数据传输建立会话,其中会话包括多个参与者;(b)从加入会话的参与者广播消息,其中该消息至少包括:广播参与者标识符、消息标识符、会话信息以及消息有效载荷;(c)判断接收广播消息的用户是否是会话的参与者;以及(d)当该用户是会话的参与者时,为该用户处理该消息。在本发明的至少某些例子中,判断用户是否是会话的参与者包括:(a)判断该用户是否在该会话中是活动的,或(b)判断该用户是否包含在会话参与者列表中。参与者可自由地加入和/或自由地离开会话,而不会不利地影响到其他参与者的数据传输。
在本发明的某些示例方法中,在对用户或任一参与者处理新获得的消息之前,所述方法还包括判断该用户或参与者是否已接收会话中所有以前的消息。若发现任何未接收的消息,该用户或参与者能获得这些消息。未收到的消息能以任何合适的方式获得。例如,可选地在需要消息的用户或参与者发送对丢失消息的请求之后,能通过从会话中的另一参与者的广播而获得消息。在本发明的该方面的一些例子中,当收到丢失消息请求时,会话的参与者会随机地判断是否发送一个或多个未接收的以前消息。消息请求和丢失消息的发送能重复,直到用户收到消息历史记录中的所有消息为止。
判断用户是否是会话中的参与者也能以任何合适的方式实现而不背离本发明。例如,用户的标识(如ID号)能针对授权能参与会话的所有用户的主列表进行校验。作为另一例子,可选地在询问会话中的一个或多个参与者新用户是否应被加入到会话中之后,一个或多个已有的会话参与者能接收关于新的用户已出现或在网上存在的指示,该用户可被加入到该会话中。在又一个例子中,在接收到新的用户出现或在网上存在的指示之后,所述方法还包括邀请新用户加入会话(可选地在询问会话中的至少一个参与者此邀请是否应被发出之后),仅当邀请被接受后才将新用户加入。
本发明的另一方面涉及访问正进行的会话所述的方法。本发明的该方面的某些示例方法包括:(a)访问发生会话的网络,其中网络可由不在会话中活动的用户访问,且其中会话包括能发送和接收消息数据的多个参与者;(b)判断是否加入该用户作为会话的参与者;和(c)当该用户作为参与者被加入到会话时,将所有以前在会话期间发送的消息广播给该用户。判断是否加入该用户的步骤能以任何合适的方式实现,包括上述的各种方式。
本发明的其它方面涉及在会话的多个参与者之间通信消息所述的方法。本发明这些方面的若干例子包括:(a)以对等方式连接至少第一参与者工作站及第二参与者工作站,其中每个参与者工作站能够以对等方式广播消息到会话中的其他参与者工作站,并以对等方式接收来自会话中的其他参与者工作站的广播消息;(b)由第一参与者工作站广播第一消息;(c)至少由第二参与者工作站接收第一消息;和(d)从第二参与者工作站广播第一消息到会话中在从第一参与者工作站广播时未收到第一消息的至少一个其它参与者工作站。此外,在本发明的这些方面的至少某些例子中,新的参与者工作站能加入到会话中,且这些新加入的工作站能获得会话中以前的消息,包括来自己离开会话的工作站的消息及来自仍进行会话的参与者工作站的消息。
本发明的又一个例子涉及与在网络上多个参与者之间数据传输有关的会话期间处理经网络接收的数据的系统。至少在本发明的某些例子中,这种系统可包括:(a)适用于接收来自加入会话的参与者的广播消息的接收器,其中消息至少包括:广播参与者标识符、消息标识符、会话信息和消息有效载荷;以及(b)可编程并适用于判断接收该消息的网络用户是否是会话的参与者的处理器,当该用户是会话的参与者时,处理该消息。至少在某些例子中,处理器通过下列步骤之一判断用户是否是会话的参与者,这些步骤包括:(a)判断该用户是否是会话的活动参与者,或(b)判断该用户是否包含在会话的参与者列表中。在处理消息之前,处理器还判断该用户是否已接收会话中所有以前的消息,若有任何消息未接收到,则可激活广播系统来发送对会话中以前未接收消息的请求。
本发明的还有的方面涉及用于实现包括上述本发明方法的各种方法的工作站。本发明的该方面的某些示例工作站可包括:(a)适应于访问在其中发生会话的网络的连接系统,其中会话包括能发送和接收消息数据的多个参与者;(b)可编程并适应于判断工作站的用户是否为会话中的参与者的处理器;和(c)适应于在判断出用户是会话的参与者时,接收在会话期间发送的消息数据的消息接收系统。
本发明的其他例子涉及在会话中多个参与者之间通信消息的系统。至少在本发明的某些例子中,这些系统可包括在对等网络中连接的多个参与者工作站,其中至少某些参与者工作站能够经网络广播消息数据到会话中的其他参与者工作站,并经网络接收来自会话中的其他参与者工作站的广播消息数据。在某些例子的系统中,各种单独的参与者工作站能自由地退出会话,且,如有必要的话,由退出的参与者工作站在退出以前广播的消息数据能由其他参与者工作站从已经接收该消息数据的余下的参与者工作站获得。除了退出现有会话之外,新的参与者工作站能自由地进入会话,并从留在会话中的一个或多个参与者工作站获得任何以前的消息数据(包括来自退出的工作站离开以前的消息数据)。
本发明的另一示例性方面中,子网上的任何机器和/或从会话接收输入的消息数据的任何机器、甚至不活动地参与该会话的那些机器,可接收、登录并保存输入的消息数据。因此,至少在本发明的某些例子中,连未涉及特定会话的机器都能重播数据给会话中的新加入的参与者,和/或对会话中的丢失消息请求进行作出回应。
本发明的诸方面还涉及具有存储有用于发送消息数据到会话参与者的数据结构的计算机可读媒体。在某些例子中,此数据结构可包括:(a)包含代表消息ID的数据的第一数据字段;(b)包含代表会话信息的数据的第二数据字段;(c)包含代表消息有效载荷的数据的第三数据字段。在本发明的至少某些例子中,代表会话信息的数据可包括代表从由会话ID;会话参与者列表;会话消息历史组成的组中选择出的至少一项的数据。在又一附加例子中,数据结构还可包括第四数据字段,它含有代表广播消息数据的参与者的标识符的数据。
至少在本发明的某些系统和方法中有用的另外的示例性数据结构可包括用于,可选地在用户加入到包括多个参与者的数据传输会话时,发送用户的标识数据到网络上的数据结构。在至少某些例子中,此数据结构可包括:(a)包含代表用户标识的数据的第一数据字段;(b)包含代表关于数据传输会话的标识信息的数据的第二数据字段;和(c)包含代表在会话中用户历史的数据的第三数据字段。例如,代表有关数据传输会话的标识信息的数据可包括代表从由会话ID和会话参与者列表组成的组中选择出的至少一个成员的数据。例如,代表用户的例示的数据可包括代表从由会话ID;至少标识由会话中的用户的工作站处理的最近消息的消息ID;和至少标识由会话中的用户发送的最近消息的消息ID组成的组中选择出的至少一个成员的数据。
本发明的各种系统、方法和数据结构可用于发送任何消息数据而不背离本发明。在某些例子中,消息数据可包括电子墨水数据、文本数据、图象等。作为另外例子,会话能以“虚拟白板”的形式,其中多个会话参与者能加入、删除或修改消息数据(如每个参与者的各自的计算机屏幕能示出消息数据的演示,且参与者能加入、删除和/或修改该数据,且由一个参与者作出的增加、删除和/或修改也将出现在其他参与者的屏幕上)。而且,虽然任何合适的协议都可用于发送消息数据到各种会话参与者,但是在本发明的某些例子中,使用用户数据报协议(“UDP”)和/或传输控制协议(“TCP”)来广播消息。下面更详细地描述本发明的系统、方法和计算机可读媒体。
III、示例硬件
图1示出能用于实现本发明的各个方面的通用数字计算环境的示意图。在图1中计算机100包括处理单元110、系统存储器120和将包括系统存储器120的各种系统组件连接到处理单元110的系统总线130。系统总线130可以是若干类总线结构中的任一种,包括存储器总线或存储控制器、外围总线、以及使用各种总线体系结构中的任一种的局部总线。系统存储器120可包括只读存储器(ROM)140和随机存取存储器(RAM)150。
包含如在启动期间帮助计算机100内的各部件间传输信息的基本例行程序的基本输入/输出系统160(BIOS)存储在ROM 140中。计算机100还可包括读写硬盘(未示出)的硬盘驱动器170、读写可移除磁盘190的磁盘驱动器180、和读写如CDROM或其它光媒体之类的可移除的光盘192的光盘驱动器191。硬盘驱动器170、磁盘驱动器180和光盘驱动器191分别通过硬盘驱动器接口192、磁盘驱动器接口193和光盘驱动器接口194连接到系统总线130。这些驱动器和它们相关的计算机可读媒体为个人计算机100提供计算机可读指令、数据结构、程序模块和其它数据的非易失性存储。本领域的技术人员应理解,在示例性操作环境中也能使用其他类型的能存储由计算机存取访问的数据的计算机可读媒体,如磁带盒、闪存卡、数字视频盘、Bernoulli卡式磁带、随机存取存储器(RAM)、只读存储器等。
能存储在硬盘驱动器170、磁盘190、光盘192、ROM 140或RAM 150中的若干程序模块包括操作系统195、一个或多个应用程序196、其他程序模块197和程序数据198。用户能通过如键盘101和指针设备102(如鼠标)那样的输入设备输入命令和信息到计算机100中。其他输入设备(未示出)可包括话筒、操纵杆、游戏手柄、卫星反射器、扫描仪等。这些和其他输入设备常常能通过连接到系统总线130的串行端口接口106连接到处理单元110,但也能通过如并行端口、游戏端口或通用串行总线(USB)那样的其他接口连接。此外,这些设备也能经合适的接口(未示出)直接连接到系统总线130。
监视器107或其它类型的显示设备也能经过如视频适配器108那样的接口连接到系统总线。除监视器107之外,个人计算机通常包括如扬声器和打印机那样的其它外围输出设备(未示出)。在一个例子中,提供笔式数字化仪和附带的笔或触笔166,以便数字化地捕捉手写输入。虽然在图1中示出在笔式数字化仪165和串行端口106之间的连接,但实际上笔式数字化仪165能直接连到处理单元110,或它能以任何合适的方式连接到处理单元110,如通过并行端口或其他接口和业内已知的系统总线130。此外,虽然在图1中数字化仪165示作与监视器107分开,但是数字化仪165的可用输入区域能与监视器107的显示区域共存。而且数字化仪165能集成在监视器107中,或它能作为重叠或附属于监视器107的单独设备而存在。
计算机100能用于在使用对如远地计算机109那样的一个或多个远地计算机的逻辑连接在联网环境中。远地计算机109可以是服务器、路由器、网络PC、对等设备或其它公共网络节点,它通常包括上述关于计算机100所描述的许多或所有部件,虽然为简单化起见,在图1中只示出存储设备111。在图1中描述的逻辑连接包括局域网(LAN)112和广域网(WAN)113。这种联网环境在使用有线和无线连接的办公室、企业范围计算机网路、内联肉和因特网中是常见的。
在LAN联网环境中使用时,计算机100通过网络接口或适配器114连到局域网112。在WAN网路环境中使用时,个人计算机100一般包括调制解调器115其它装置来在诸如因特网之类的广域网上建立通信链路。内置或外接到计算机100的调制解调器115可经串行端口接口106而连接到系统总线。在联网环境中,关于个人计算机所描述的程序模块或其部分可存储在远地的存储设备中。
可以理解,示出的网络连接是示例性的,可使用在计算机之间建立通信链路的其他技术。我们认为存在各种众知的协议的任一种,如TCP/IP、以太网、FTP、HTTP、UDP等,且系统能以用户-服务器的配置方式操作,以便允许用户从Web服务器检索网页。各种传统的Web浏览器的任一种都能用于显示和处理在网页上的数据。
虽然图1的环境示出了一种示例性环境,但是可以理解也能使用其它计算环境。例如,本发明的一个或多个例子能使用具有比图1所示的上述全部方面要少的方面的环境,对本领域的技术人员而言,这些方面可以是各种组合和子组合的形式。
图2示出能按本发明的各方面使用的笔式个人计算机(PC)201。在图1的系统中的任何特征、子系统和功能可以包括在图2的计算机中。笔式个人计算机系统201包括如液晶显示器(LCD)屏的数字化平板显示器那样的大的显示面202,在该显示面上显示多个视窗203。使用触笔204,用户能在数字化显示区域选择、加亮和写入。合适的数字化显示屏的例子包括如从Mutoh公司(Mutoh Co.)或Wacom技术公司(Wacom Technology Co.)可买到笔式数字化仪那样的电磁笔式数字化仪。也能使用其它类型的笔式数字化仪,如光数字化仪。笔式计算系统201解释使用触笔204作出的动作,以便处理数据、输入文本和执行传统的计算机应用任务,如创建、编辑和修改电子报表、文字处理程序等。
触笔204可配备有按键或其它特征以扩展其能力。在一个例子中,触笔204可如“铅笔”或“钢笔”那样工作,其中一端组成写部分,而另一端组成“擦除器”部分,并且,当擦除器部分在显示屏上移动时,指示出要被擦除的显示屏上的电子墨水的部分。也能使用其它类型的输入设备,如鼠标、轨迹球、键盘等。此外,在触敏式或接近敏感式显示器上可使用用户的手指选择或指出显示图像的部分。因此,这里所使用的术语“用户输入设备”具有广泛的定义,它包容已知输入设备的许多变种。
在本发明的某些例子中,多个用户经对等网络而互相通信。在某些例子中,这些用户可以是会话的参与者,会话中,来自一个参与者的数据消息以所有参与者都能看到并处理该数据的方式而传送到其他参与者(如“电子白板”会话或其它类型的协同会话)。
如在本发明的某些例子中发生的那样,图3A和3B示出互相通信的参与者A-J的例子。在本发明的某些示例系统和方法中,不是让所有参与者A-J连接到公共服务器,或指定一个参与者的工作站作为事实上的服务器,而是参与者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消息到其它子网的用户。能使用任何合适的桥接系统和方法而不背离本发明,合适的桥接系统或方法在美国专利申请“Bridging Subnet Broadcasts Across Subnet Boundaries”中描述,2003年4月24日提交,发明者名为Philip Su和Robert Jarrett(代理人文档号003797.00507)。此待决专利申请整体上结合于此作为参考。
然而如上所述,UDP广播具有某些限制,该协议不保证提交和/或依次提交消息数据包到所有用户。但是本发明的某些示例系统和方法,通过向系统和方法提供判断参与者是否丢失任何消息的手段,并提供向初始发送时未接收到消息的用户重新发送丢失的消息的手段,从而克服了此限制。本发明的这些方面还允许后加入到会话的用户或偶而离开会话的用户能容易地“赶上”并接收在会话中先前发送的任何丢失的消息数据。本发明的这些方面还在下面更详细地加以描述。
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)。消息有效载何可包括任何合适的数据,如电子墨水笔划、文本信息、图象信息、删除、移动和/或修改墨水、文本或图象的指令等。
可用业内众知的任何传统方式来为用户ID 402、会话ID406a到406n和消息ID 412a到412m和422a到422k指定唯一的标识符。例如,可对这些值的每一个指定全局唯一的标识号(“GUID”)。
B、电子白板
1、独立消息
图5A到5J例示出数据消息的例子,它们可经本发明的至少某些例子的虚拟的或电子白板或其它协同会话而在会话的多个参与者之间交换。图5A到5J中的每一附图示出示例出电子白板500,在消息数据交换时,它呈现在参与者工作站的显示屏上。参与者可在对等网络上使用UDP广播发送而连接在一起,以图3A和3B描述的方式传输消息数据。参与者可位于相同或不同的地方而不背离本发明。
图5A到5J例示出与由参与者A-C共同努力在电子白板上书写单词“Break”相关的电子墨水笔划。至少参与者A-C在某些时刻加入到会话中,在此期间在电子白板上写出此词,虽然其他人参加入会话和/或参与者A-C能不时地离开,这不背离本发明。电子墨水数据能以任何合适方式收集,包括业内众知的传统方式,且此电子墨水数据能如图4的消息有效载荷414a到414m那样提供。消息有效载荷可包括表明电子墨水各种特征的数据,包括但不限于在墨水笔划中笔所触及的电子白板上的点(或笔方向改变的位置和新的笔的方向);在电子白板上笔划的位置;笔划的颜色;其它笔划特征(黑体、斜体、加亮、下划线等)。
如图5A和5B所示,参与者A使用在他的计算机工作站上出现的电子白板500来书写字母“B”。在此例中,电子笔的每个笔划组成至少一个单独的数据消息(消息A1和消息A2),它从参与者A的计算机通过如UDP广播、TCP发送或其它合适的传输协议而发送到会话中的其他参与者。在参与者A完成字母“B”后,参与者B在他的计算机工作站上以类似所述的方法使用两个电子墨水笔划书写字母“r”,并发送对应这些笔划的(至少)两个数据消息(图5C和5D中的消息B1和B2)到其他参与者。然后参与者C使用一个笔划书写字母“e”并发送代表此笔划的(至少)一个电子数据消息(图5E的消息C1)到其他参与者。随后,参与者A使用两个笔划书写字母“a”并发送代表这些笔划的(至少)两个数据消息(图5F和5G的消息A3和A4)到其他参与者,且参与者B使用三个笔划书写字母“k”并发送(至少)三个数据消息(图5H、5I和5J的消息B3、B4和B5)到其他参与者。
在图5A到5J示出的例子中,每个墨水笔划独立于其它笔划,所以在此例子中“按次序”提交各种数据消息到每个参与者工作站并不是重要的问题(注意,在此例中,每个笔划的消息数据包括在电子白板上笔划的绝对位置(可选地带有允许适当地映射以匹配在其他参与者硬件上电子白板的位置、分辨率等的信息),使得一个笔划的位置不依赖于其它笔划的位置)。换言之,若参与者B在接收字母“a”(消息A3和/或A4)的一个或多个笔划之后,和/或甚至在他开始写字母“k”之后,接收来自消息C1的字母“e”,那也没有关系。笔划能以任何次序出现在每个参与者的电子白板上,而最终的单词仍然正确地呈现。
而且虽然图5A-5J的例子示出组成各笔划组成单独的数据消息,但这并不是必须的。任何数目的笔划或单个笔划的一部分都可包含在单个数据消息中而不背离本发明。例如,若需要,包含在书写字母“B”的笔划(图5A和5B)可在单个数据消息中发送到其他会话参与者而不背离本发明。作为另外的例子,很长的和/或复杂的笔划可被分成两个或更多的数据消息,以便发送到其他参与者,这不背离本发明。
2、依赖消息
然而在某些情况中,某些参与者会发送依赖于其它消息的消息。例如,一个参与者可改变一个或多个现有的墨水笔划、文本、图象等的颜色、加亮显示信息、斜体显示信息、下划线信息、黑体信息、删除信息、放大信息、缩小信息、移动信息、复制信息或对其内容或特征作出其它一些改变。图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将在消息C2(图6B)中删除的字母“e”粘贴在经移动的字母“k”之后。此数据消息作为消息C3被送到会话中的其他参与者。消息C3至少依赖于先前消息C2的完成,而后者本身又依赖于消息C1的发生。任选地,根据特定例子的系统或方法是否能处理重叠的信息(如使用层次结构或其它任何合适的方式),消息C3可依赖于消息A3、A4、A5、B3、B4和B5的发生。而且,本发明的例子的系统和方法能以任何合适所述的方法处理此类重叠信息及其显示而不背离本发明。
作为替代,不是如图6E所示的消息C3那样使用粘贴动作,而是会话中的任一参与者简单地在合适的位置重写字母“e”。在此情况中,如上一般讨论的那样,新的笔划不依赖于任何以前的笔划,除非需要某种依赖性来处理在电子白板上的重叠或分层信息。
可使用处理依赖信息的任何合适方式而不背离本发明。例如,发送消息的参与者机器通过判断为了完成参与者输出消息所需的动作而至少要完成哪些数据消息,来以上述的一般方式跟踪依赖信息。于是,当该消息数据被发送(如广播)到其他参与者时,它能被编码以包含为完成新的广播消息所需的功能而必需的任何其它消息的唯一的消息ID。然后,接收的机器能看到依赖信息,并保证在新接收的消息被完成之前已完成所有必需的“父”消息。下面结合图7和8描述处理依赖性的其它方法。
C、输出消息的数据结构
图7一般地例示出用于本发明的系统和方法的各种例子中的从参与者工作站输出的消息的数据结构700。此例中的数据结构700包括包含代表发送消息的参与者的用户ID号702的数据。此用户ID可以是上面结合图4所讨论的唯一的用户标识符402,它能标识发送消息的特定用户或参与者。此外或另选地,用户ID 702也可包括硬件信息,如标识发送消息的特定硬件的信息、硬件和/或正被发送的数据的特征等(如显示分辨率信息等,使得该数据能被精确地翻译和映射到加入会话的各个机器中)。
示例的数据结构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可包括电子墨水信息(如墨水笔划);文本;图象;修改电子墨水、文本、图象等的信息等;和/或其他合适的或希望的信息。
虽然实际跟踪依赖性和父数据消息信息是保证没有消息动作在应该被处理之前就得到处理的有效方法,但是至少在某些情况中这样做是困难的(若不是不可能)和/或计算量很大的。因此,本发明的某些例子,如图7所示的输出消息可包括某种其它类型的消息历史712。例如,发送消息700的机器可包含至少在该机器上处理的最近消息的消息标识号(704、412a-412m,422a-422k)。在某些例中,数据结构700在消息历史712中会包括在该机器上处理的最近5-10个消息的消息标识号(704、412a-412m、422a-422k),或更多。因而,当接收的机器接收被发送的新消息700时,它们将(从消息历史712)认为该新消息700依赖于在发送机器上处理的每个最近消息。若接收的机器仍未收到在消息700的消息历史712中处理的所有最近消息,则它在接收到消息历史712中的所有消息之前不处理新消息700。
假设接收机器在新消息700的消息历史712中没有一个或多个消息,它将等待丢失的消息(可选地,发出对丢失消息的请求,这在下面详细讨论)。当丢失的消息被接收,该丢失的消息也具有从它开始发送时刻起的消息历史字段712,除非和直到在其消息历史712中的所有消息也被接收之前,接收的机器将不处理新收到的和以前丢失的消息。以此方式,接收消息700的机器将持续校验消息和时间上追溯的消息历史,并只有在消息历史712中所有消息被接收和处理之后才处理新接收的消息700。
作为另一例子,另选地或除发送在给定机器上处理的最近消息以外,输出的消息数据700在其消息历史712中可包含由此特定机器发送的一个或多个最近消息的一个列表。任何数目的以前发送的消息能包括在消息历史712中而不背离本发明,如5-10个以前刚发送的消息。然后接收机器以同样方式使用此信息加上或替代上述最近处理的消息历史,以保证在由该机器以前发送的所有消息被处理之前不处理新的消息700。
希望时可选地,若后来的消息删除或剪切先前的消息,则本发明的某些例子的系统和方法在进行其它处理之前不必等待删除的消息或删除它的消息。此对消息能被忽略并保持为不被接收和不被处理。
能使用保证消息以合适的次序被处理并保证合适的依赖性的各种其它方法而不背离本发明。例如,确实独立的消息能被标记以使得本发明的某些例子的系统和方法将知道它们能立即处理而不必等待其它消息。此外,任何数目的以前的消息(以前处理的和/或以前发送的)可包含在消息历史712中而不背离本发明,例如,考虑各种因素,如未被给定用户接收的消息的似然率、网络通信量、网络速度、输入消息的速率、会话中参与者的数量、连接的类型、用户从网络断开的似然率等。
D、处理输入消息
图8示出描述在本发明某些例子中处理消息的各方面的流程图。为帮助理解,结合图7中提供的参考标号讨论图8中的信息。此例中,经对等网络,使用如UDP的广播能力来广播消息700。如所示,在会话中参与者发送广播消息时过程开始(S800),该消息由在网上进行侦听的用户接收(S802)。UDP广播消息发送到子网的所有用户而不是针对子网的特定用户,在本发明的此例的系统和方法中接收广播消息700的子网用户接着判断他(她)是否侦听此会话ID号(S804)。这能通过例如查看包括在消息700中的会话ID号708来实现。若接收用户正在侦听此会话ID号(在S804回答“是”),则接收用户的计算机接着校验以确定消息700的消息历史712中的所有以前的消息是否已被接收(S806)。若是,则处理新的消息700(S808),且过程结束(S810)(如开始处理下一个消息或等待下一个消息)。
若在S806判定,接收用户还未收到在新接收的消息700的消息历史712中所提到的所有以前的消息(回答“否”),则接收用户的机器将发送或广播对任何丢失消息的请求(S812)。然后,在适当的等待时间后,本发明的此例的系统和方法判断所请求的消息是否已被收到(S814)。若否,则重复S812和S814,直到消息历史中的所有消息被收到为止(若一个或多个丢失消息从未被收到,则可提供合适的超时和/或差错消息)。当输入的丢失消息被收到(在S814回答“是”),系统返回到S804(见箭头A),并校验新接收的消息的消息历史,以确保收到在其消息历史中的所有消息。否则箭头A返回到S806之前的过程。以此方式,处理在时间上追溯进行,且只有当在其消息历史中所有消息已被接收和处理时,才开始处理新接收的消息。
若在S804输入消息接收者不在侦听此会话ID号(回答“否”),则本发明的此例的系统和方法接着校验以便判断在消息700中的参与者列表710是否包括接收用户的ID号(S816)。若否,则此消息不是针对该接收用户的(S818),该消息被该接收用户的工作站忽略。过程结束(S810)(如,该接收用户可继续侦听新的广播消息)。另选地,未加入特定会话的用户可保存输入消息,并能重播消息到到新的参与者和/或响应对丢失消息的请求,这在下面将更详细描述。
若在S816,输入消息700的参与者列表710包括接收用户的ID号(回答“是”),则接收用户能被加入到该会话(S820),且可开始校验以保证在消息历史712中所有的以前消息。
在S812,输入的新消息700的接收者广播对新消息700的消息历史712中以前未接收到的消息的请求。尤其是当使用UDP作为传输协议时更会发生此情况,因为,如上所提到的那样,UDP不保证提交消息给所有预定的接收者。因而,本发明的某些例子的系统和方法至少在某些情况需要广播消息到没有接收到最初发送的消息的参与者。此外,会话的后来者将需要通过获取会话中所有以前的消息而达到会话的前沿。通过使用图8中描述的过程,只要输入的消息告诉会话的参与者他们丢失了消息历史中的消息,所有会话的参与者能容易地获得任何以前丢失的消息,而不会过分地减慢系统或过程。
在本发明的此例中,当对丢失消息的请求被广播时(S812),会话的所有参与者可接收此请求(如UDP广播)。若所有参与者重播丢失的消息,这将用重复的广播消息而过分地阻塞系统,当大量参与者涉及该会话中时,问题就恶化了。因而,在本发明的某些例子中,会话中的每个参与者将随机地决定当接收到这样的请求时是否重播丢失的消息以让请求者接收。例如,若会话包括六个参与者,当广播丢失消息请求时,余下五个参与者中的每一个参与者将随机决定是否重播丢失的消息(如随机地选择1和5之间的数,若选中的数是1,则发送该消息)。若无人发送消息,将出现另外的丢失消息请求(如上讨论),且将发生另一随机选择过程。此过程能重复,直到请求方接收到丢失的消息为止。通过使用此类过程以提供丢失的消息,会话的任何参与者能向其它参与者或新参与者提供丢失的消息,使参与者能自由进入或离开会话而仍然保持所有以前发送的数据对会话的所有人都可用。
在本发明的某些例子中,关于特定用户是否会重播丢失的消息的判断要考虑诸多因素,例如,在某一网络中丢失消息的似然率、网络通信量、网络速度、参与会话的参与者数、连接的类型等。例如,若特定网络和/或会话的建立一般丢失50%的UDP广播消息,且给定的用户是接收丢失消息重播请求的五个用户之一,则任一用户能编程成具有2/5的概率来响应丢失消息重播请求而重播消息,以补偿两个广播消息中的一个可能会丢失的事实。
另选地,当新参与者任何时刻进入会话,一个机制能自动地提供所有以前发送的消息到该新的参与者(如由原先发消息的参与者、一个或多个选定的参与者、和/或以任何其它希望的或合适的方式重发的消息)。又一另选例子,原先发消息的参与者只要仍在会话中,就能重发任何被请求的丢失消息,若原先发消息的参与者不再留在会话中,则另外成员能随机地(或以某种预定次序)重发被请求的丢失消息。能使用响应丢失消息请求来判断参与者是否重发丢失消息的任何方法而不背离本发明。
E、“查验(ping)”数据
图9例示出数据结构900,它能用于帮助本发明的某些例子的系统与方法来发现会话的潜在的新参与者和/或发现一用户可能加入现有的会话。当会话在进行中时,会话的参与者将例如通过使用UDP广播能力在子网上广播数据那样周期地发送某些标识数据。该数据在本说明书中也称为“查验数据”,它周期性地通知网络上的其他用户某些信息。此类的查验数据通常用于例如无线连接和通信中。
在本发明这方面的例子中,数据结构900可包括对会话重要的各种信息。首先,在数据结构900中提供包含标识发出查验数据的用户的信息的字段(如上述的用户ID号902,它能标识使用特定机器、硬件或两者的成员)。数据结构900中的另一字段可包括关于该用户的工作站所加入的会话904的信息。如上面提到的那样,每个用户的计算机或工作站能加入不只一个会话。对于每个会话,查验数据可包含各种信息,如会话ID号信息906a和906b、会话参与者列表908a和908b(如包括会话的每个参与者的用户ID号)等。
查验数据900还可包括有关用户参与的每个会话的消息历史的信息。在图9中此数据字段以参考标号910示出。例如,对于每个会话,查验数据可包括表明由此计算机处理最近的一条或多条消息的数据(字段912a和912b)和/或表明由此计算机发出的最近的一条或多条消息(字段914a和914b)(如以消息ID号的方式)的数据。在数据字段912a、912b、914a和914b中可包括任何希望数目的消息,如5-10个消息,这不背离本发明。以此方式使用“查验数据”帮助保持所有用户更新并防止单个消息长期“丢失”(例如,若消息丢失且在下一消息发送之前经过长时间,不使用周期性的“查验数据”发送消息ID,则丢失的消息会继续保持丢失,例如直到原先消息发送者(或另外的参与者)发送其它消息为止)。
在本发明至少某些例子中,此查验数据能结合如图10所示的过程而使用,以方便地加入新的用户作为会话的新参与者。例如,当用户进入发生会话的网络时开始图10的过程(S1000)。新进入的用户最终将接收来自会话参与者的此类查验数据(S1002)。若用户的ID号包括在从至少一个会话参与者接收的查验数据中(S1004)(如作为参与者列表908a或908b的一部分)(回答是“是”),则用户的系统将知道该用户能加入此会话。然后用户的机器能从与查验数据900包含在一起的消息历史910请求丢失的消息(S1006),并如通过结合图8描述的过程而达到会话的前沿。若希望,用户能通过询问或对话框或任何其它合适的方式得到选项,决定他(她)是否希望加入会话。然后图10的过程结束(S1008),且用户的系统能侦听其它的查验和/或消息数据。
在S1004,若过程判定该用户的ID号未出现在接收的查验数据900中的参与者列表908a或908b中(回答“否”),则此过程跳过S1006而结束(S1008),且系统能继续侦听其它查验和/或消息数据。
图11包括描述另一过程的流程图,通过该过程,用户作为会话的潜在参与者能被发现并被邀请到会话中。过程开始时(S1100),未加入特定会话的用户进入发生会话的网络(S1102)。例如当新进入用户的计算机广播查验数据900时(如通过UDP广播),此事实能被会话的参与者认出。若新进入的用户未加入任何会话,如图9所示,该查验数据900可限于用户ID号902。当会话中一个或多个参与者接收此新进入用户的查验数据信息时,此例的系统和方法能提醒一个或多个现有的参与者,新进入的用户是否应被邀请参与该会话(S1104)。若参与者决定邀请新来者加入会话(回答“是”),则新来者的用户ID号被加到该会话的参与者列表(S1106)。然后,可发送在字段908a或908b中包括新来者的用户ID号的查验数据900(S1108)。另选地,会话中的下一个数据消息700在参与者列表710中也将包括新来者的用户ID。当新来者接收此查验数据900和/或消息数据700时,他在查验数据900和/或消息数据700中记入他的用户ID,且进行图8和或10的过程。然后图11的邀请过程结束S1110。可选地,如联系图10如上所描述的那样,新用户能被邀请加入会话。
若在S1104,会话中的参与者决定不邀请新来者加入会话(回答“否”),则跳过S1106和S1108,且过程结束S1110。也可使用查验数据900使其他人能判定某一用户何时已离开会话。例如,若在预定的时间间隔内(如查验数据发送频率的4倍)未收到会话参与者的查验数据900,则其他参与者可判定此参与者已离开该会话。若希望的话,可在某些示例系统和方法中从会话参与者列表中删除该先前的参与者的ID。可选地,系统能提醒会话的其余参与者,询问是否应从会话的参与者ID列表中删除以前的参与者。
F、冲突消息
本发明的至少某些例子的系统和方法包括处理同时的、几乎同时的和冲突的指令的协议和过程。在此类包括独立地能加入输入的多个用户的协同系统和方法中,由各个成员发送的某些消息数据不可避免地会冲突。例如一个参与者会寻求从电子白板剪切掉一个墨水笔划、多个笔划、文本或图象,恰巧同时另一参与者寻求改变同一笔划、多个笔划、文本或图象中的某些或所有的颜色、大小或其它特征。
此情况能以任何合适的方式得到处理而不背离本发明。例如,若会话中的所有工作站在使用同一中央时钟的公共网络上运作,每个消息可以用基于此中央时钟的发送时间标记来标记,而消息处理的次序可基于此时间标记。对于两个或多个恰巧同时发送的消息来说,可使用某类分层的次序来确定哪个消息占先。例如,可根据对加入该会话的每个参与者的用户ID号使用字母和/或数字的层次排序。作为另一例子,可根据冲突的参与者加入会话的时间建立层次关系。也可使用包括在其它消息中随机选择一消息的许多其它可能方法,这不背离本发明。
因为至少在本发明的某些例子中消息是在对等网络上广播的,两个冲突的同时消息可在某些参与者的工作站以错识的次序被接收,从而导致在参与者的工作站知道存在较高层消息之前处理较低层的消息。例如,假设参与者A发送消息A10,命令删除墨水笔划,恰巧同时参与者B发送消息B10,命令放大同一墨水笔划。这两个消息互相冲突。然后假设,由于分层协议,消息A10领先于消息B10(如根据冲突消息ID或冲突发送用户ID的字符/数字次序)。因为在本例中参与者A和B都以对等方式与所有其他参与者通信,参与者C(和其他人)能在消息A10之前收到消息B10。在收到消息B10时,参与者C的工作站不知道消息A10,且若在消息B10的历史中所有以前的消息都出现在参与者C的工作站,该工作站可处理B10,然后以后接收消息A10。在此情况下,当它接收消息A10时,参与者C的工作站能执行“取消”(undo)功能以取消所有已处理的消息,直到取消消息B10为止。然后消息A10将在参与者C的工作站被处理,而消息B10(以及任何其它依赖消息B10的消息)将被舍弃。其它不依赖于消息B10的“被取消”的消息将再次由参与者C的工作站以原始的或按时间标记的次序进行处理。
当然,可使用其它合适的过程和协议处理冲突消息而不背离本发明。
G、建立新会话
能以任何希望或合适的方式发起新会话而不背离本发明。例如,当启动电子白板应用程序或其它应用程序时,程序提醒启动程序的一方输入希望的或授权的参与者的名字或用户ID号。作为另一例子,当启动此类应用程序时,会话的潜在的参与者能经过如上所述的查验数据被标识和加入。作为又一个例子,当此类程序被启动时,启动程序的一方能访问合适的或潜在的参与者的菜单,并从此列表中选择可能的参与者。这些选项仅仅是例子。能使用这些可能性和/或其它可能性的组合而不背离本发明。
H、安全性
如上所述的本发明的各种例子使用UDP广播来传输消息和/或查验数据到会话的参与者。如上提到的那样,UDP广播数据不加区别地发送到子网上所有用户(并能桥接到其它子网),甚至至少某些用户不想加入会话也是如此。虽然此特征的好处在于它允许用户自由地加入和离开会话,但是它也具有潜在的安全隐患,因为他人也面对着会话的消息数据。
能以任何合适的方式处理此事实而不背离本发明。例如,可使用加密、加扰和/或其它合适的安全方法,以防止对会话和/或消息数据的非授权的访问。作为另一例子,至少在本发明的某些例子中,可使用更加安全的和直接的通信,避免广播至少某些消息和/或查验数据。包括业内传统上已知的技术的任何其它合适的安全技术都能被使用而不背离本发明。
V、结论
上面已描述了本发明的各种例子,业内普通人士将理解到本发明将这些例子的所有组合及子组合包括在其范围中。此外,本领域的技术人员认识到,上述例子简单地例示了本发明的各方面。例如,虽然本发明的许多方面借助“电子白板会话”或其它协同会话描述,但是本领域的技术人员应该认识到,本发明不限于这些类型的协同会话。本发明的诸方面能广泛地应用于不同用户之间各种类型的通信。

Claims (73)

1、一种在网络上传输数据的方法,其特征在于,包括:
建立数据传输的会话,该会话包含多个参与者;
从加入该会话的参与者广播消息,该消息至少包括:广播参与者标识符、消息标识符、会话信息和消息有效载荷;
判断接收经广播的消息的用户是否是会话的参与者;以及
当该用户是会话的参与者时,对该用户处理消息。
2、按权利要求1所述的方法,其特征在于,判断用户是否是会话的参与者的步骤至少包括下述两个步骤之一:
(a)判断该用户是否在会话中活动;或
(b)判断该用户是否包含在会话的参与者列表中。
3、按权利要求2所述的方法,其特征在于,当判断出该用户包含在会话的参与者列表中但在会话中已经不活动时,将该用户添加到该会话中。
4、按权利要求1所述的方法,其特征在于,在对该用户处理消息之前,所述方法还包括:
判断该用户是否已接收到会话中所有以前的消息。
5、按权利要求4所述的方法,其特征在于,还包括:
获得以前未被该用户接收的会话中的任何以前的消息。
6、按权利要求5所述的方法,其特征在于,通过来自会话中的至少一个参与者的广播来获得未收到的以前的消息。
7、按权利要求6所述的方法,其特征在于,会话参与者随机判断是否要广播一个或多个未收到的以前的消息。
8、按权利要求4所述的方法,其特征在于,当判断出该用户还未收到会话中的所有以前的消息时,所述方法还包括:
(a)由该用户发送对至少一个未收到的消息的请求;
(b)通过会话的至少一个参与者广播所述至少一个未收到的消息给该用户;以及
重复(a)和(b)直到会话中所有消息被该用户收到为止。
9、按权利要求8所述的方法,其特征在于,会话中每个参与者随机判断是否广播一个或多个由该用户请求的未收到的消息。
10、按权利要求1所述的方法,其特征在于,该会话涉及对等通信。
11、按权利要求1所述的方法,其特征在于,会话中的参与者在操作上不连接公共服务器。
12、按权利要求1所述的方法,其特征在于,会话的至少一个参与者或所述用户是经无线连接而连接到该网络的。
13、按权利要求1所述的方法,其特征在于,判断该用户是否是会话的参与者的步骤包括:
接收该用户出现在网络上的指示;以及
将该用户加到该会话中。
14、按权利要求13所述的方法,其特征在于,还包括:
将该用户加到对该会话的参与者列表中。
15、按权利要求13所述的方法,其特征在于,响应对该指示的接收,所述方法还包括:
询问会话的至少一个参与者,是否加入该用户到会话中。
16、按权利要求13所述的方法,其特征在于,响应对该指示的接收,所述方法还包括:
邀请该用户加入该会话。
17、按权利要求1所述的方法,其特征在于,判断该用户是否是会话的参与者的步骤包括:
询问会话的至少一个参与者是否加入该用户到会话中。
18、按权利要求1所述的方法,其特征在于,消息有效载荷包括电子墨水数据。
19、按权利要求1所述的方法,其特征在于,该会话包括虚拟白板,在该虚拟白板上,多个会话参与者能增加新消息、删除现有消息或修改现有消息。
20、按权利要求1所述的方法,其特征在于,判断该用户是否是会话的参与者的步骤包括:
邀请该用户加入到会话;以及
当邀请被接受时,增加该用户到该会话的参与者列表中。
21、按权利要求1所述的方法,其特征在于,使用用户数据报协议广播该消息。
22、一种方法,其特征在于,包括:
访问发生会话的网络,其中由会话中不活动的用户访问该网络,且其中会话包含能发送和接收包含消息数据的消息的多个参与者;
判断是否加入该用户作为参与者到会话中;以及
当该用户被加到会话中作为参与者时,发送在会话中发送的所有以前的消息到该用户。
23、按权利要求22所述的方法,其特征在于,判断是否加入该用户作为参与者到会话中的步骤包括:
判断该用户是否包含在会话的参与者列表中;以及
当该用户包含在参与者列表中时,加入该用户到会话中作为参与者。
24、按权利要求23所述的方法,其特征在于,当该用户未包含在参与者列表中时,询问会话的至少一个参与者是否加入该用户到会话中。
25、按权利要求22所述的方法,其特征在于,判断是否加入该用户作为参与者到会话中的步骤包括:
判断该用户是否包含在该会话的参与者列表中;以及
当该用户未包含在参与者列表中时,询问会话的至少一个参与者是否加入该用户到会话中。
26、按权利要求22所述的方法,其特征在于,判断是否加入该用户作为参与者到会话中的步骤包括:
邀请该用户加入会话;以及
当邀请被接受时加入该用户到会话中。
27、按权利要求22所述的方法,其特征在于,发送在会话中发送的所有以前的消息的步骤包括:
(a)由该用户发送对至少一个未收到的消息的请求;
(b)由会话中的至少一个参与者发送该至少一个未收到的消息到该用户;以及
重复(a)和(b)直到会话中发送的所有以前的消息被该用户接收为止。
28、按权利要求22所述的方法,其特征在于,该会话涉及对等通信。
29、按权利要求22所述的方法,其特征在于,会话的参与者在操作上不连接公共服务器。
30、按权利要求22所述的方法,其特征在于,会话的至少一个参与者或所述用户是经无线连接而连接到该网络的。
31、按权利要求22所述的方法,其特征在于,至少一些消息是使用用户数据报协议而被广播的。
32、按权利要求22所述的方法,其特征在于,至少一些消息包括电子墨水数据。
33、一种在会话中的多个参与者之间传送消息的方法,其特征在于,包括:
以对等方式连接至少第一参与者工作站和第二参与者工作站,其中每个参与者工作站能以对等方式广播消息数据到会话中其它参与者工作站,并以对等方式接收来自其它参与者工作站的广播消息;
由第一参与者工作站广播第一消息;
至少由第二参与者工作站接收第一消息;以及
从第二参与者工作站广播第一消息到会话中的没有接收到从第一参与者工作站广播的第一消息的至少一个其它参与者工作站。
34、按权利要求33所述的方法,其特征在于,还包括:
增加新的参与者工作站到会话中;以及
从第二参与者工作站或从出现在会话中的不是第一参与者工作站的一个参与者工作站为新的参与者工作站获得第一消息。
35、按权利要求33所述的方法,其特征在于,使用用户数据报协议广播第一消息。
36、按权利要求33所述的方法,其特征在于,第一消息包括电子墨水数据。
37、按权利要求33所述的方法,其特征在于,第一参与者工作站在由第二参与者工作站广播第一消息前离开会话。
38、按权利要求33所述的方法,其特征在于,参与者工作站在操作上不连接公共服务器。
39、一种用于处理经网络接收的数据的系统,其特征在于,在该网络上发生涉及在多个参与者之间数据传输的会话,其中该系统包括:
适应于接收来自加入会话的参与者的广播消息的接收器,其中该消息至少包括:广播参与者标识符、消息标识符、会话标识符和消息有效载荷;
可编程并适应于判断接收该消息的用户是否是会话的参与者的处理器,若该用户是会话的参与者,则处理器处理该消息。
40、按权利要求39所述的系统,其特征在于,该处理器通过至少下列之一来判断该用户是否是会话的参与者:(a)判断该用户是否是会话中的活动参与者;或(b)判断该用户是否包含在会话的参与者列表中。
41、按权利要求39所述的系统,其特征在于,在处理消息之前,该处理器还判断该用户是否已接收该会话中的所有以前的消息。
42、按权利要求41所述的系统,其特征在于,还包括:
适应于对以前未被该用户收到的会话中的至少一个以前的消息发送一请求的广播系统。
43、按权利要求39所述的系统,其特征在于,该会话涉及对等通信。
44、按权利要求39所述的系统,其特征在于,在会话中的数据传输不利用公共服务器。
45、按权利要求39所述的系统,其特征在于,所述接收器通过无线连接经网络接收消息有效载荷。
46、按权利要求39所述的系统,其特征在于,所述消息有效载荷包括电子墨水数据。
47、按权利要求39所述的系统,其特征在于,所述会话构成虚拟白板,在虚拟白板上,多个会话参与者能加入新消息、删除现有消息或修改现有消息。
48、按权利要求39所述的系统,其特征在于,使用用户数据报协议广播消息。
49、一种工作站,其特征在于,包括:
适应于访问发生会话的网络的连接系统,其中该会话包含多个能发送和接收消息数据的参与者;
能编程并适应于判断工作站的用户是否是会话的参与者的处理器;以及
适应于在判定该用户是会话参与者时接收在会话中发送的消息数据的消息接收系统。
50、按权利要求49所述的工作站,其特征在于,该处理器通过判断该用户是否包含在该会话的参与者列表中,来判断该用户是否是该会话的参与者。
51、按权利要求49所述的工作站,其特征在于,还包括:
适应于广播对至少一个以前未接收的消息的请求的广播系统。
52、按权利要求49所述的工作站,其特征在于,该会话涉及对等通信。
53、按权利要求49所述的工作站,其特征在于,消息数据不通过公共服务器传输到会话的所有参与者。
54、按权利要求49所述的工作站,其特征在于,连接系统经无线连接连接到该网络。
55、按权利要求49所述的工作站,其特征在于,消息接收系统适应于使用用户数据报协议接收消息广播。
56、按权利要求49所述的工作站,其特征在于,至少一些消息数据包括电子墨水数据。
57、一种用于在会话的多个参与者之间通信消息的系统,其特征在于,包括:
在对等网络中连接的多个参与者工作站,其中至少一些参与者工作站能经网络广播消息数据到会话中的其它参与者工作站,并经网络接收来自会话中的其它参与者工作站的广播消息数据,
其中参与者工作站之一能自由地退出该会话,且由退出的参与者工作站在退出该会话前广播的消息数据能由其它参与者工作站按需从以前已接收由退出的参与者工作站广播的消息数据的其余参与者工作站获得。
58、按权利要求57所述的系统,其特征在于,新的参与者工作站能自由地进入会话,并获得来自一个或多个参与者工作站的以前的消息数据。
59、按权利要求57所述的系统,其特征在于,使用用户数据报协议广播消息数据。
60、按权利要求57所述的系统,其特征在于,至少一些消息数据包括电子墨水数据。
61、按权利要求57所述的系统,其特征在于,多个参与者工作站不连接公共服务器进行消息数据传输。
62、存有用于发送消息数据到会话的参与者的数据结构的计算机可读媒体,该数据结构包括:
包含代表消息ID的数据的第一数据字段;
包含代表会话信息的数据的第二数据字段;和
包含代表消息有效载荷的数据的第三数据字段。
63、按权利要求62的计算机可读媒体,其特征在于,代表会话信息的数据包括代表从包括下列数据的组中选择的至少一个成员的数据:会话ID;会话参与者表;和会话消息历史。
64、按权利要求62的计算机可读媒体;其特征在于,代表会话信息的数据至少包括代表下列的数据:(a)会话ID;(b)会话参与者表;和(c)会话消息历史。
65、按权利要求62的计算机可读媒体,其特征在于,该数据结构还包括:
包含代表广播该消息数据的参与者的标识符的数据的第四数据字段。
66、按权利要求62的计算机可读媒体,其特征在于,该数据结构是使用用户数据报协议广播的格式。
67、按权利要求62的计算机可读媒体,其特征在于,该消息有效载荷包括电子墨水数据。
68、存有用于当用户加入包括多个参与者的数据传输会话时,发送用户标识数据到网络的数据结构的计算机可读媒体,其中该数据结构包括:
包含代表用户的标识的数据的第一数据字段;
包含代表有关数据传输会话的标识信息的数据的第二数据字段;和
包含代表会话中用户历史的数据的第三数据字段。
69、按权利要求68的计算机可读媒体,其特征在于,代表关于数据传输会话的标识信息的数据包括代表从包括下列数据的组中选择的至少一个成员的数据:会话ID和会话参与者表。
70、按权利要求68的计算机可读媒体,其特征在于,代表有关数据传输会话的标识信息的数据包括代表至少一个会话ID和会话参与者表的数据。
71、按权利要求68的计算机可读媒体,其特征在于,代表用户的历史的数据包括代表从包括下列数据的组中选择的至少一个成员的数据:会话ID;至少标识由会话中用户处理的最近消息的消息ID;和至少标识由会话中用户发送的最近消息的消息ID。
72、按权利要求68的计算机可读媒体,其特征在于,代表用户历史的数据包括至少代表会话ID和至少标识由会话中用户处理的最近的消息的消息ID表。
73、按权利要求68的计算机可读媒体,其特征在于,数据结构是使用用户数据报协议广播的格式。
CNB2004100323606A 2003-05-02 2004-03-30 在对等网络中经瞬态连接的通信消息 Expired - Fee Related CN100461681C (zh)

Applications Claiming Priority (2)

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
US10/427,941 2003-05-02

Publications (2)

Publication Number Publication Date
CN1543124A true CN1543124A (zh) 2004-11-03
CN100461681C CN100461681C (zh) 2009-02-11

Family

ID=32990461

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100323606A Expired - Fee Related CN100461681C (zh) 2003-05-02 2004-03-30 在对等网络中经瞬态连接的通信消息

Country Status (7)

Country Link
US (1) US7966368B2 (zh)
EP (2) EP1496646B1 (zh)
JP (1) JP4658509B2 (zh)
KR (1) KR20040094309A (zh)
CN (1) CN100461681C (zh)
AT (2) ATE364273T1 (zh)
DE (2) DE602004021068D1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101069393B (zh) * 2005-12-29 2012-03-14 松下电工株式会社 管理对等网络内的通信量的节点和方法
CN1988531B (zh) * 2005-12-20 2012-03-28 国际商业机器公司 管理网络通信的方法和系统
CN102065062B (zh) * 2009-11-12 2013-08-28 华为终端有限公司 建立联合会话的方法和应用服务器
CN103457935A (zh) * 2009-11-12 2013-12-18 华为终端有限公司 建立联合会话的方法和应用服务器
CN106685600A (zh) * 2015-11-05 2017-05-17 北京中广上洋科技股份有限公司 局域网内工作站之间的消息传递方法
CN107851073A (zh) * 2015-07-24 2018-03-27 索尼公司 信息处理设备、信息处理方法以及程序

Families Citing this family (60)

* 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
US7467415B2 (en) * 2003-09-30 2008-12-16 Novell, Inc. Distributed dynamic security for document collaboration
US7299493B1 (en) * 2003-09-30 2007-11-20 Novell, Inc. Techniques for dynamically establishing and managing authentication and trust relationships
US7316027B2 (en) * 2004-02-03 2008-01-01 Novell, Inc. Techniques for dynamically establishing and managing trust relationships
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
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
US8640259B2 (en) 2005-01-20 2014-01-28 The Invention Science Fund I, Llc Notarizable 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
US7865734B2 (en) 2005-05-12 2011-01-04 The Invention Science Fund I, Llc Write accessibility for electronic paper
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
DE602005000715T2 (de) * 2005-01-21 2007-12-06 Research In Motion Ltd., Waterloo System und Verfahren zur Auswahl einer aktiven Verbindung
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
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
JP5206532B2 (ja) * 2009-03-25 2013-06-12 日本電気株式会社 システム及びメッセージ中継サーバ及び端末装置
US8086734B2 (en) * 2009-08-26 2011-12-27 International Business Machines Corporation Method of autonomic representative selection in local area networks
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
US10108386B2 (en) * 2011-02-04 2018-10-23 Qualcomm Incorporated Content provisioning for wireless back channel
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 엘지전자 주식회사 이동 단말기 및 이의 제어 방법
WO2014061715A1 (ja) * 2012-10-19 2014-04-24 グリー株式会社 画像配信方法、画像配信サーバ装置及びチャットシステム
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
JP6155635B2 (ja) * 2012-12-26 2017-07-05 株式会社リコー 情報処理システム、サーバー機器及び情報処理装置
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
WO2015075930A1 (en) * 2013-11-19 2015-05-28 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
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
CN105518558B (zh) 2014-09-30 2018-02-02 深圳市大疆创新科技有限公司 一种飞行任务处理方法、装置及系统
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
CA3050139A1 (en) 2017-01-31 2018-08-09 Experian Information Solutions, Inc. Massive scale heterogeneous data ingestion and user resolution
US10963434B1 (en) 2018-09-07 2021-03-30 Experian Information Solutions, Inc. Data architecture for supporting multiple search models
WO2020212604A1 (en) * 2019-04-18 2020-10-22 Medicus Ai Gmbh Method and system for selectively transmitting data
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
US20220345855A1 (en) * 2021-04-22 2022-10-27 Amdocs Development Limited System, method, and computer program for unified messaging platform deployed on ephemeral mesh network

Family Cites Families (37)

* 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
JPH11272534A (ja) 1998-01-20 1999-10-08 Fujitsu Ltd ドキュメント分散処理方法,ドキュメント分散処理システムのサーバ管理方法およびサーバプログラムの記録媒体
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
US6212548B1 (en) * 1998-07-30 2001-04-03 At & T Corp System and method for multiple asynchronous text chat conversations
US6604129B2 (en) * 1999-03-25 2003-08-05 At&T Corp. Method and apparatus for a conference call mediation service
US6564249B2 (en) 1999-10-13 2003-05-13 Dh Labs, Inc. Method and system for creating and sending handwritten or handdrawn messages
US6304898B1 (en) * 1999-10-13 2001-10-16 Datahouse, Inc. Method and system for creating and sending graphical email
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
JP3571616B2 (ja) 2000-05-23 2004-09-29 エヌ・ティ・ティ・コムウェア株式会社 データの共有方法、端末装置および記録媒体
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
AU784512B2 (en) * 2000-10-19 2006-04-13 International Business Machines Corporation Method and system for persistent chat sessions
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
JP4446368B2 (ja) * 2001-09-14 2010-04-07 富士通株式会社 コラボレーション方法、システム、プログラム及び記録媒体
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
JP2004110573A (ja) * 2002-09-19 2004-04-08 Ricoh Co Ltd データ通信方法、データ通信装置、データ通信システム及びデータ通信プログラム
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

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1988531B (zh) * 2005-12-20 2012-03-28 国际商业机器公司 管理网络通信的方法和系统
CN101069393B (zh) * 2005-12-29 2012-03-14 松下电工株式会社 管理对等网络内的通信量的节点和方法
CN102065062B (zh) * 2009-11-12 2013-08-28 华为终端有限公司 建立联合会话的方法和应用服务器
CN103457935A (zh) * 2009-11-12 2013-12-18 华为终端有限公司 建立联合会话的方法和应用服务器
CN107851073A (zh) * 2015-07-24 2018-03-27 索尼公司 信息处理设备、信息处理方法以及程序
CN106685600A (zh) * 2015-11-05 2017-05-17 北京中广上洋科技股份有限公司 局域网内工作站之间的消息传递方法
CN106685600B (zh) * 2015-11-05 2019-09-20 北京中广上洋科技股份有限公司 局域网内工作站之间的消息传递方法

Also Published As

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

Similar Documents

Publication Publication Date Title
CN1543124A (zh) 在对等网络中经瞬态连接的通信消息
AU2020203752B2 (en) Authentication of service requests initiated from a social networking site
CA2977035C (en) System and method for video communication
US10834031B2 (en) Information exchange method, client, and apparatus
EP3734914B1 (en) Authentication of service requests
US20170091717A1 (en) Auto extraction of tasks from unstructured communications such as emails and messages
CN109600349B (zh) 一种业务数据的共享实现方法、装置、设备和介质
EP3447631B1 (en) Writing trajectory synchronization method and system for multiple clients
CN1653829A (zh) 在非即时消息传送环境中提供即时消息传送功能
CN1685380A (zh) 远程教育系统、听讲确认方法及听讲确认程序
CN104836977A (zh) 即时通讯过程中的视频通讯方法及系统
EP3101837B1 (en) User terminal grouping method, conference server and conference system
CN1917480A (zh) 用于经由即时消息的任务委托的方法和系统
WO2010137512A1 (ja) ネットワークシステム、通信端末、通信方法、および通信プログラム
CN112470430B (zh) 到包括数字协作工具的位置的用户中心式连接
WO2019217251A1 (en) Novel decency filtration tools and their use in interfacing systems
CN103986710A (zh) 一种消息传输的方法、装置及系统
CN103401936A (zh) 一种界面共享的处理方法及装置
CN1941707A (zh) 一种呈现用户状态和信息的方法及系统
KR101788075B1 (ko) Telegram API를 이용한 화상회의 초대 방법
US9959416B1 (en) Systems and methods for joining online meetings
WO2015135358A1 (zh) 处理即时消息的方法、消息服务器、终端与系统
CN101052151A (zh) 实时传输图像数据的方法
TWI611710B (zh) 應用於通訊軟體的業務綁定系統
CN113949595A (zh) 一种在线会议的通话控制方法、装置及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150428

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150428

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090211

Termination date: 20200330

CF01 Termination of patent right due to non-payment of annual fee