CN1565105A - 手持无线会议技术 - Google Patents
手持无线会议技术 Download PDFInfo
- Publication number
- CN1565105A CN1565105A CNA028196139A CN02819613A CN1565105A CN 1565105 A CN1565105 A CN 1565105A CN A028196139 A CNA028196139 A CN A028196139A CN 02819613 A CN02819613 A CN 02819613A CN 1565105 A CN1565105 A CN 1565105A
- Authority
- CN
- China
- Prior art keywords
- message
- software program
- ccp
- wireless cooperation
- pda
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/06—Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1813—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
- H04L12/1822—Conducting the conference, e.g. admission, detection, selection or grouping of participants, correlating users to one or more conference sessions, prioritising transmission
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1813—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
- H04L12/1827—Network arrangements for conference optimisation or adaptation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1813—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
- H04L12/1831—Tracking arrangements for later retrieval, e.g. recording contents, participants activities or behavior, network status
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/04—Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M15/00—Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
- H04M15/08—Metering calls to called party, i.e. B-party charged for the communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/24—Accounting or billing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/189—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast in combination with wireless systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M2215/00—Metering arrangements; Time controlling arrangements; Time indicating arrangements
- H04M2215/20—Technology dependant metering
- H04M2215/2026—Wireless network, e.g. GSM, PCS, TACS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M2215/00—Metering arrangements; Time controlling arrangements; Time indicating arrangements
- H04M2215/62—Called party billing, e.g. reverse billing, freephone, collect call, 0800 or 0900
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W80/00—Wireless network protocols or protocol adaptations to wireless operation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Multimedia (AREA)
- Entrepreneurship & Innovation (AREA)
- Computer Security & Cryptography (AREA)
- Strategic Management (AREA)
- Human Resources & Organizations (AREA)
- Economics (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Data Mining & Analysis (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Between Computers (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephonic Communication Services (AREA)
Abstract
手持设备PDA(110)应用程序和手持应用的用户的系统,方法和软件体系结构/程序(10),用于实现和物理远程通信设备的实时无线协作会议。有利的是,程序(10)提供无线协作会议而无需大量改变手持应用。手持应用更新其内部状态以镜像其它参加者的设备的状态。无线协作软件实现针对数据通信带宽优化的无线协作会议方法,使用适于手持设备的性能和规格的已有手持应用,使用较小信息分组进行通信,提供用于端到端,端到多端和端到机器应用会议的公共可编程和用户接口,并且该软件允许终端用户对这种会议活动进行调度,共享管理和记费。
Description
技术领域
本发明涉及无线会议,尤其涉及在根据用于信息交换的无线方法而构造的手持计算机中,用于通过无线平台真实时或准实时地或在两个或更多用户之间交换,处理和访问信息的系统,软件程序和方法。
背景技术
会议系统是现在随处可见的机构,用于允许不同位置的多个人员针对一或多个主题协作和一起工作。电信公司和其它厂商通过传统电话线路提供基于语音的电信会议。视频会议也在使用,虽然由于视频设备费用和带宽的限制,它没有如预测的那样迅速成为主流。基于计算机的会议已经存在了若干年,其具有例如Symantec的pcAnywhere和微软公司的NetMeeting的形式,允许PC用户对共享软件应用或文件进行协作。最终,Web协作会议已经投入使用,其允许通过标准Web协议和因特网连接执行应用和内容协作。
协作会议是在两个或更多参加者之间进行同步通信的能力。通信介质可以是任何允许的软件应用,例如字处理器,电子数据表格或讲义。会议的多个参加者可以通过例如提供一组幻灯片的介质进行通信。每个参加者会同时看见幻灯片。下一代的通信允许参加者作出改变,这种改变在所有参加者的计算机上复制。一个例子是编辑电子数据表格的参加者。
若干公司已经开发出包含语音和数据的有线协作会议。由于以下3个或更多的原因,协作会议排除了移动手持参加者:带宽约束,因为桌面会议协议依赖屏幕共享的程度通常甚于依赖真实应用共享的程度;屏幕尺寸,因为桌面的比喻(metaphor)不适于典型手持设备的2×3英寸屏幕;和依赖快速网络和最优交换来同步会议的有线协作通信方法。
带宽约束源于广域网基础设施的限制。无线广域网数据传送有多个竞争标准。当前最大的广泛可用带宽介于9800-19200位每秒之间。高速技术,例如以3G的名义(moniker)划分的那些技术已经开发了一段时间,但是没有广泛应用,并且现在仅仅在有限范围内使用。此外,多数提出的3G系统提供最优和饱和的带宽最大和最小传送速率,使得未来几年无线带宽会受到容量的限制。
屏幕尺寸约束起因于移动手持计算机的成因。这些设备通常具有2至4个英寸的尺寸,屏幕大约为2英寸。移动手持计算机上显示的任何信息均应当格式化成适合小屏幕尺寸。
提出有线协作通信方法以允许参加者观看共享信息。应用程序实际不运行在参加者的计算机上。实际上,参加者在查看主机上运行的应用程序的″视图″。信息没有本地存储在每个参加者的计算机上。当改变屏幕,例如前进到讲义中的下一幻灯片时,向参加者发送下一幻灯片的视图。这类协作需要大量的带宽,可靠的连接和复杂的交换。
需要一种使手持应用实现协作会议并且满足无线手持计算机的约束的系统和方法和软件体系结构/程序。此外,允许应用平衡手持操作系统以得到更多的屏幕显示/共享的软件程序和接口提供丰富的功能(在会议之前,期间和之后使用),在使用有限无线带宽量或位的情况下实现功能,并且提供通用的方式以开发这种支持协作的应用。这允许使用手持应用与一或多个用户或机器进行交互。本发明提供了这种系统,软件程序和方法。
发明内容
通过提供允许手持应用和手持应用的用户在满足无线手持计算机的约束和提供一组服务,并且不必大量修改应用本身的情况下实现无线协作会议的系统,方法和软件体系结构/程序,本发明实现了若干技术优点。
所述软件程序,体系结构和接口允许现成的应用在在线和离线数据处理和显示方面平衡手持的操作系统,并且提供在会议之前,期间和之后使用的丰富功能,而所述功能在使用有限数量的无线带宽或位的情况下执行,并且提供通用的方式以开发这种支持协作的应用。
这个系统实现了无线协作会议方法,其针对数据通信带宽而优化,使用适于手持设备的性能和规格的已有手持应用,使用较小的信息分组进行通信,为端到端,端到多端和端到机器应用会议提供公共可编程和用户接口,并且实现了终端用户借以能够调度,共享,管理会议活动并且被针对这种会议活动而记费的系统。
这个体系结构允许两个不同和相关的会议模式。在一个模式中,所有用户具有同等的权利来修改文件,并且以协作方式进行修改。手持设备接收数据编辑消息,数据编辑消息使得实现本发明的每个手持设备程序能够更新其内部状态和数据结构,以对其它参加者的设备中的每个上的状态和数据结构进行镜像。在另一个模式中,只有所有参加者中被批准了呈现权利的″提供者″控制显示更新消息,显示更新消息允许每个参加者的手持设备由单个提供者来控制。在这个模式中,手持设备全部镜像提供者的行为,屏幕位置,滚动和显示。在两种情况下,本发明提供了清除机构以控制,使能和协同这些状态。
附图说明
图1是各种无线协作会议的模块图,其中可以由支持本发明的软件的PDA和物理上远程分布的通信设备以准实时的方式建立所述无线协作会议;
图2是无线协作会议协议会话的模块图,如图所示,无线协作会议协议会话包含PDA,所述PDA与物理远程通信设备,例如PDA和桌面计算机交换系统消息,数据编辑消息和显示更新消息;
图3是建立连接或等待来自另一设备的这种连接的PDA的模块图;
图4是CCP事件管理器的模块图,CCP事件管理器接收具有结构化位组形式的消息;而
图5是在无线协作会话中交换的DEM和DUM消息的模块图。
具体实施方式
现在参照图1,附图标记10所指的是无线环境中本发明所允许的若干无线协作会议环境的模块图。这个系统实现了无线协作会议方法,其针对数据通信带宽而优化,使用适于手持设备的性能和规格的已有手持应用,使用较小的信息分组进行通信,为端到端,端到多端和端到机器应用会议提供公共可编程和用户接口,并且实现了终端用户借以能够调度,共享,管理会议活动并且被针对这种会议活动而记费的系统。
本发明被构造为应用编程接口(API)的第一实施例允许多个独立软件厂商(ISV)使用这种接口允许其应用程序进行无线会议。公共编程接口,公共用户接口,公共事件和内部机构/体系结构允许ISV将这种更新的功能引入到其独立的应用程序中,使得终端用户能够使用公共使用模型。这些使用的例子是已经开发出独立绘图应用的ISV。有利的是,用户12可以使用本发明允许其应用程序与一或多个用户无线通信,并且全部用户可以看见和修改绘图,如14和16所示。
本发明被构造为在手持计算机12上工作的软件程序的第二实施例使用会议系统与提供数据的机器18无线通信。用户12可以容易地监视所述机器公共接口产生并且通过网关发送到会议服务器的实时或准实时信息,其中所述网关被构造成允许这种用户进行安全或公开的访问。手持应用接着使用可以以图表形式显示内容的软件程序显示数据流,允许操作数据,甚至将输入和控制传送回到机器。有利的是,这种使用可以允许例如医生实时监视患者EKG和至关重要的迹象,同时通过电话与医院通信,从而允许进行更加精确的诊断和治疗。
另一例子可以是连接到HVAC和电气使用设备的建筑管理器,其监视建筑的重要迹象,甚至提供输入回到机器,使得它们可以调整其设置。
本发明被构造为软件程序的第三实施例在被构造为执行信息交换机的手持计算机中工作。软件可以包含例如电子数据表格的手持设备生产应用程序。无线手持设备会议参加者均具有从指定为″主机″的参加者自动发送到其手持计算机的电子数据表格的复本,如16所示。会议参加者可以改变电子数据表格。全部参加者均从每个参加者的手持计算机接收全部输入。使用每个参加者的设备的处理能力本地执行电子数据表格重新计算。有利的是,仅仅输入在手持计算机之间传输,所述手持计算机用于使用今天广泛使用的有限带宽技术进行例外的应用会议执行。在″协作″模式中,会议参加者可以在业务手册(workbook)的任何地方,甚至业务手册内的分立表单中进行改变。全部改变被发送到参与会议的全部设备。在″提供者″模式中,一个参加者得到呈现的控制。针对″呈现″给会议中所有参加者的信息,提供者可以上/下左/右滚动,改变表单,改变缩放。可选地,可以在一或多个用户12,14和16,以及用户22之间建立会议,用户22可以通过桌面网关20,例如使用WebEx 24软件,Chasseral 26软件或微软公司NetMeeting 28软件链接PC。
本发明被构造为软件程序的第四实施例在被构造为执行信息交换机的手持计算机中工作。软件可以包含例如字处理器的手持设备生产应用程序。无线手持设备会议参加者均具有从指定为″主机″的参加者自动发送到其手持计算机的文件的复本。会议参加者可以改变文件。全部参加者均从每个参加者的手持计算机接收全部输入。使用每个参加者的设备的处理能力本地执行用于重新格式化的文件重新计算。有利的是,仅仅输入在手持计算机之间传输,所述手持计算机用于使用今天广泛使用的有限带宽技术进行例外的应用会议执行。在″协作″模式中,会议参加者可以在文件的任何地方,甚至文件的分立部分中进行改变。全部改变被发送到参与会议的全部设备。在″提供者″模式中,一个参加者得到呈现的控制。针对″呈现″给会议中所有参加者的信息,提供者可以上/下滚动。
本发明被构造为软件程序的第五实施例在被构造为执行信息交换机的手持计算机中工作。软件可以包含手持生产应用程序,例如幻灯片讲义(例子;微软公司用于PC的PowerPoint)。无线手持设备会议参加者均具有从最初为″主机″的参加者自动发送到其手持计算机的讲义的复本。会议参加者可以改变讲义。全部参加者均从每个参加者的手持计算机接收全部输入。使用每个参加者的设备的处理能力本地执行用于显示的讲义幻灯片呈现。有利的是,仅仅输入在手持计算机之间传输,所述手持计算机用于使用今天广泛使用的有限带宽技术进行例外的应用会议执行。在″协作″模式中,会议参加者可以在讲义的任何地方,甚至讲义的分立幻灯片中进行改变。全部改变被发送到参与会议的全部设备。在″提供者″模式中,一个参加者得到讲义的控制。针对″呈现″给会议的所有参加者的信息,提供者可以上/下滚动,缩放,查看例如概况或注解的不同视图,并且切换幻灯片。
本发明的第六实施例提供一种用于对两个或更多手持设备用户之间的无线会议进行调度,建立,管理和记费的系统。这个系统在服务器上实现,代表会使用具有传输能力的手持计算机与服务器通信的客户,所述传输能力允许手持计算机通常使用TCP/IP和通过因特网与服务器联系。两个或更多参加者通过系统允许的会议ID,用户名和口令连接到服务器,并且接着,其每个均自动检索会议文件并且开始协作会议。
本发明的第七实施例用于提供和数据会议并行的语音通信。这个增强为本发明提供了附加的不同商业应用。通过硬件和软件形式的数据载体提供的同时语音和数据(SVD)预计会在未来若干年中得到商业应用,并且使得本发明增强的用户体验更加类似于现有的有线会议系统,而本发明的用户可以同时讲话和共享数据。
现在参照图2,通过适合执行无线协作会议的每个设备,包含PDA设备100上驻留的应用程序110实现本发明的无线协作会议。如图所示,应用模块110包含各种模块,这里会首先概括并且接着具体地讨论所述模块。
个人数字助理/手持计算机(PDA)100引入存储器,中央处理单元,系统的操作系统和用户接口功能,存储,程序执行。
应用程序110实现可以通过协作或会议技术增强的功能。
桌面计算机200引入存储器,中央处理单元,系统的操作系统和UI行为,存储,程序执行。
事件循环111处理将被程序110执行的队列操作。
会议和协作协议(CCP)事件处理程序120处理CCP系统库160产生的特定事件,并且还调用程序内的现有或新功能模块130。
应用程序功能模块130是执行应用程序中的操作的代码段。
CCP系统库160实现CCP API 170,并且处理会议协议消息(161),过滤数据编辑消息(DEM)(162),显示更新消息(DUM)(163),以及管理连接。
CCP API 170是应用程序实现并且用来在其程序中引入CCP功能的会议和协作应用编程接口。
会议和协作会话300是两个或更多连接的、实现CCP API 170的PDA100或台式计算机200之间的异步数据传送。
现在,仍然参照图2,CCP系统消息161具有在完整而概括地提供的会议和协作协议中说明的形式。
CCP数据编辑消息(DEM)162和CCP显示更新消息(DUM)163也具有在会议和协作协议中说明的形式。与更新视图状态的显示更新消息163(DUM)相反,数据编辑消息162(DEM)被用来对数据块分类,所述数据块被远程计算机用来更新数据状态。此区别使得远程用户可以过滤DUM 163的接收,使得其显示在其改变协作数据时保持一致。CCP应用编程接口(API)170具有在完整而概括地提供的会议和协作API中说明的形式。
PDA 100上运行的每个应用程序110是独立的程序,该程序具有适当的行为和功能,以成为拥有其自身权利的有用程序。通过CCP系统库160的扩展和增强,能够通过TCP/IP,红外,蓝牙或CPP系统库160实现的任何其他通信协议与远程连接的PDA 100上的相同应用程序110异步通信。低层通信是透明的,因为CCP系统库160提供这种CCP API 170以使之透明。
CCP事件处理程序120解码数据编辑消息(DEM)162并且调用应用程序功能模块130。有利的是,通过这样处理,可以使每个应用程序110相信其正操作的数据是本地产生的,并且同样地,允许应用程序110执行必要操作而无需进一步的修改。例如,CCP库160接收数据编辑消息162,数据编辑消息162被CCP API 170的实现者编码以封装内部应用程序110存储器结构,其使得对例如电子数据表格单元执行操作。CCP事件处理程序120解封这个DEM 162,并且使之适合局部存储器中的相同结构,以及调用应用程序功能模块130来操作数据。其效果是,在很少或没有修改现有应用程序的情况下,操作远程产生的数据。这种简单性源于这样的精心设计,即只发送原子用户接口操作所产生的改变数据,并且通过相反过程在参加者手持设备上解释该数据,从而以相同或类似方式只对改变的数据进行操作,其中程序已经对用户进入数据或用户接口输入进行了操作。有关发送和应答哪些数据输入和接口事件的识别被本发明的结构简化,并且CCP API 170的工程先导(engineering lead)和实现者通常多数只涉及与其程序已经处理的操作组相同的操作组。
CCP事件处理程序120解码显示更新消息163并且调用应用程序功能模块130。通过这样处理,可以使每个应用程序相信其正操作的数据是本地产生的,并且同样地,允许应用程序执行必要操作而无需进一步的修改。例如,当CCP库160接收显示更新消息163(显示更新消息163被CCP API 170的实现者编码以封装内部应用程序110存储器结构,其使得对例如屏幕抽头(screen tap)的显示执行操作)时,CCP事件处理程序120解封这个DUM 163,并且使其适合相同的局部存储器结构,以及调用应用程序功能模块130以操作数据。其效果是,在很小或没有修改现有应用程序的情况下,其操作远程产生的操作,并且导致应用程序的行为使得远程用户正控制用户的本地应用程序110。这种简单性源于这样的精心设计,即只发送原子用户接口操作所产生的改变数据,并且通过相反过程在参加者手持设备上解释该数据,从而以相同或类似方式只对改变的数据进行操作,在该方式中,程序会已经对用户进入数据或用户接口输入进行操作。有关发送和应答哪些数据输入和接口事件的识别被本发明的结构简化,并且CCP API 170的工程先导和实现者通常多数只涉及与其程序已经处理的操作组相同的操作组。
CCP系统库160以这样的方式处理会议系统消息161,该方式使得能够连接到另一实现CCP API 170的PDA 100上运行的远程应用程序110,并且从其接收连接。有利的是,应用程序110不必知道如何与远程设备进行TCP/IP,IR,蓝牙连接,不必知道如何断开这种连接,也不必知道如何用这种协议实现特定的通信规则。而是,应用程序110只需知道其会接收来自CCP系统库160、会被传送到应用程序110并且由定制(custom)CCP事件处理程序121处理的消息。
CCP系统库160能够过滤显示更新消息163,以允许每个远程应用程序110确定是否只会处理数据或显示事件。有利的是,这允许远程应用程序110用户在PDA 100或桌面计算机210上并行输入和修改数据,同时仍然参与协作和会议会话300。
每个桌面计算机210可以按照与前面参照PDA 100描述的方式相同的方式实现CCP API 170。此外,桌面计算机210可以具有嵌入式数据产生设备的形式,例如心脏监视器,HVAC系统或制造设备。在这种情况下,这些设备只实现数据编辑消息161,并且允许远程监视,甚至是所述设备或硬件的控制,如图3所示。
链接到并且实现CCP API 170的现有应用执行适当设置方法的调用,并且接着告诉CCP系统库160连接或等待连接(收听)。当进行连接时,通过由CCP事件处理程序120处理的事件将此操作通知应用程序110。
CCP事件管理器170接收具有结构化字节组的形式的消息。这些字节被覆盖到文档化编程结构上,从而允许它们被解释为专用msg_id和有效负载,如图4所示。有效负载具有程序或特定于消息的数据。在两侧的CCP系统库160之间发送系统消息161以建立会议,关闭会议,接受新实体加入会议,发送文本消息,发送和接收出错消息,对通信块进行排队和出队,发送和接收会议文件,和与各种其它协议相关的、如这里完整且概括地讨论的会议和协作协议中描述的实现。
例如DEM 162和DUM 163消息的专用事件是最令人关心的,因为它们涉及实际无线协作会话,如图5所示。每个数据编辑消息162被设计成对应于一个原子数据编辑操作。作为一个例子,在电子数据表格协作的情况下,如果一个单元的公式将被编辑,发起应用客户端创建和封装具有用于新编辑的单元的行,列和公式的DEM 162。目的客户端应用程序接收这个DEM 162,将会议msg_id和特定于应用的msg_id与公式编辑的msg_id相匹配,解封有效负载,并且调用适当的应用层功能或子程序处理单元公式编辑。有利的是,这允许强制客户端程序认为数据是本地发起的,并且避免应用程序重新设计或对已经测试的应用代码的大量附加编程。
显示更新消息163是控制用户接口的消息。一个例子是滚动。如果发起客户端应用程序需要通知会议其已经滚动,它封装一个滚动事件并且作为DUM发送。当被接收客户端接收时,DUM再次与msg_id匹配,并且接着解释滚动事件。接着在每个接收客户端上创建这个滚动事件,因为客户端应用程序已经在内部这样做了,并且进行适当的函数调用,使得每个接收客户端程序被强制认为事件是本地触发的。有利的是,这避免了客户端程序的大量重新设计,并且避免改动已经测试通过的代码。
DUM 163的独特之处在于,CCP系统库160能够有选择地过滤DUM消息,如果接收客户端应用程序告诉它如此的话。有利的是,这允许接收客户端应用程序成为会议的数据参加者,但不必使屏幕用户接口到处移动(导致同时编辑的困难)。会议和协作协议160和会议和协作API 170详细描述如何进行适当函数调用以使能或禁止DUM事件,如现在描述的。
协作协议规范(CCP)
介绍
协作协议是传送无关的协议,被用来允许两个同层设备彼此连接,并且允许客户端连接到服务器,以交换各种形式的内容。在本文中描述了交换的实际内容的格式,但是其被认为是使用协议的应用的功能。值得注意的是,这个协议是传送中性(transport-neutral)和内容中性(content-neutral)的。协议本身可扩展到附加内容格式。
在本文中,在使用术语无源器件的情况下,术语中继服务器可以替换使用,对于客户-服务器的情况而言。
协议的初始版本会涉及两个传送(IrDA和TCP/IP),但是假定添加另一协议的支持不会影响这个文件。
在被发送到对等设备之前,协议头中的全部16位和32位整数会被转换成网络字节顺序。
对于全部结构定义,常数和枚举类型,参见Collab.h文件。对于API定义,参见Collaboration_ptcl_spec.doc。
下面是有关具有两个进行通信的设备的框架中存在的协作协议的结构概述。
此文描述了协作协议20 API和传送中间API之间的数据流。
消息综述
本章足够详细地定义协作协议消息。
对于所有协作协议消息,初始16个字节的字段相同:
消息中的字节(4字节) |
消息类型(4字节) |
协议版本(2字节) |
会议ID(2字节) |
用户ID(2字节) |
保留(2字节) |
●消息中的字节-这个整个协作协议消息(包含消息头)中的字节数。在交付给应用程序之前,接收设备可以使用该值在传送上保持读取,直到接收了消息中的所有字节。注意:按照网络字节顺序发送所有的16和32位整数。
●消息类型-有四组消息,并且通过位屏蔽确定一个特定消息所属的组。
○0x------01到0x------FF:系统消息(if msg&0x000000FF)
○0x----01--到0x----FF--:会议消息;通常被传送到所有其它会议参加方(if msg&0x0000FF00)
○0x--01----到0x--FF----:用户定义消息(ifmsg&0x00FF0000)
○0x01------到0xFF------:保留
对于系统消息,定义如下:
消息 | 数值 |
clbSysConnectReguest | 0x00000001 |
clbSysConnectResponse | 0x00000002 |
clbSysConfIDRequest | 0x00000003 |
clbSysConfIDResponse | 0x00000004 |
clbSysJoinConference | 0x00000005 |
clbSysLeaveConference | 0x00000006 |
clbSysUserStatus | 0x00000007 |
clbSysNewDocument | 0x00000008 |
clbSysGetDocument | 0x00000009 |
clbSysSetDocument | 0x0000000A |
clbSysSetDocumentResponse | 0x0000000B |
clbSysSetDisplayUpdateState | 0x0000000C |
clbSysBaton | 0x0000000D |
对于会议消息,定义如下:
消息 | 数值 |
clbConfDataUpdate | 0x00000100 |
clbConfDisplayUpdate | 0x00000200 |
clbConfText | 0x00000300 |
●协议版本-最高有效字节包含主版本号。最低有效字节包含次版本号。对于版本1.02,这个数值会是0x0102
●会议ID-这个数值一定在协作会话开始前传送到用户并且由用户在客户设备上通过某种输入方法输入。对于端到端会议,这个数值必须为0xFFFF。例外的是对于clbSysConfIDRequest和clbSysConfIDlResponse消息,其中数值必须为0xFFFF。
●用户ID-这个数值一定在协作会话开始前传送到用户并且由用户在客户设备上通过某种输入方法输入。对于端到端会议,这个数值必须为0xFFFF。这个数值用于两个目的:
○验证这个用户属于这个特定会议
○在来自这个设备的后续消息中标识这个用户/设备
中继服务器(或被动设备)必须验证和存储这个数值,并且用其识别这个特定客户端。这对于用户名是类似的。
系统消息
可以从客户端向中继服务器,从中继服务器向客户端,或者端到端地发送系统消息。系统消息没有被中继服务器自动传递到客户端。它们被用来指示某种类型的、特定于特定客户端和中继服务器之间的关系的交互。
通过屏蔽32位消息类型(在转换成主机字节顺序后)的高24位可以确定系统消息。例如:
if(msg & 0x000000FF)
//为系统消息
clbSysConnectRequest(0x00000001)
在传送连接活跃后立即从主动设备(发起传送连接的设备)向被动设备发送这个消息。它必须是所交换的第一个消息。
以下是这个消息的消息有效负载:
应用类型 |
NULL终结的口令 |
●应用类型在ConnectRequest消息中,使得被动设备可以拒绝会话,如果应用不被支持或一与会议匹配。下面是应用类型的定义:
○clbAppTypeIM=1
○clbAppTypeQuickWord=2
○clbAppTypeQuickSheet=3
●以非加密方式发送口令。
clbSysConnectResponse(0x00000002)
这个消息是响应clbSysConnectRequest消息的接收从被动(侦听)设备发送到主动设备的。被动设备会验证会议ID,参加者ID和口令,并且会发送这个消息作为响应。目的是指示信息是否Valid,并且可能将主动设备重定向到其它地址和/或端口号。
这个消息的消息有效负载如下:
响应码(2字节) |
NULL终结的重定向地址 |
响应码是下列之一:
●ETClbResponseAcceptNoRedirect(0x0001)-有效会议和用户ID;这个会议在这个设备上举行。
●ETClbResponseAcceptRedirect(0x0002)-有效会议和用户ID;客户端必须断开连接并且重新连接到所提供的地址。
●ETClbResponseRejectBadConfID(0x0003)-未知会议
●ETClbResponseRejectBadC0nfTime(0x0004)-已知会议,但不马上举行。
●ETClbResponseRejectBadUserID(0x0005)-对这个会议无效的用户ID
●ETClbResponseRejectBadPassword(0x0006)-用户名有效但口令无效
●ETClbResponseRejectUnsupportedApp(0x0007)-所请求的应用不被被动设备支持
●ETClbResponseRejectMaxClients(0x0008)-已经连接的最大客户端数
●ETClbResponseRejectByUser(0x0009)-被用户拒绝
●ETClbResponseRejectOther(0x000A)-未指定的拒绝
当接收到任何拒绝时,主动方必须关闭传送连接。在传送连接未被关闭时,被动方会忽略任何通过连接接收的进一步的消息。
当接收到ETClbResponseAcceptRedirect消息时,主动方必须关闭连接,分析新地址,并且尝试连接到会议的新主机。假定传送与当前传送相同。地址具有ASCII格式和以下TCP/IP结构:主机名或lIP地址元组,后跟字符′:′,端口号,NULL终结符。例如:″yahoo.com:9800″或″192.168.1.3:9778″。
clbSysConfIDRequest(0x00000003)
这个消息的目的是提供一种方式,使得端到端会议中的被动设备不需要主动方具有其IP地址。会使用会议ID来寻址被动设备。被动设备会连接到服务器,该服务器的作用是使会议ID和IP地址关联,并且发送这个消息以作为第一消息。服务器会用具有新会议ID的clbSysConfID Response消息应答。服务器会记录会议ID和IP地址,并且当主动方尝试连接到已知服务器时,会被重定向到被动设备。
消息头中的会议ID必须为0xFFFF。
这个消息的消息有效负载如下:
IP地址(4字节) |
NULL终结的口令 |
●IP地址按照网络字节顺序发送。
●口令以非加密方式发送并且必须是NULL终结的。
clbSysConfIDResponse(0x00000004)
当接收到clbSysConfIDRequest消息时,这个消息被从会议ID服务器应用发送到客户端。
消息头中的会议ID必须为0xFFFF。
这个消息的消息有效负载如下:
会议ID(2字节) |
●有效负载中的会议ID必须按照网络字节顺序发送。
clbSysJoinConference(0x00000005)
在建立协作会话后立即从主动设备(发起传送连接的设备)向被动设备发送这个消息。被动方可以忽略该消息。中继服务器必须执行以下操作:
●如果这是这个会议的第一个用户,则开始会议
●如果这不是这个会议的第一个用户,并且这个会议没有设置为″公开″会议,则中继服务器产生和发送clbSysUserStatus消息给所有现有会议参加者,以向其通知这个用户加入会议。
这个消息的消息有效负载如下:
设备类型(2字节) |
NULL终结的自提供描述名(最多32字符) |
●设备类型如下:
○0x0001:PalmOS PDA
○0x0002:PocketPC PDA
○0x0003:J2ME显示设备
○(根据需要加入更多类型)
●当用户加入或离开会议时,自提供描述名会被发送到其它会议参加者。这必须是NULL终结的。中继服务器应当在其内部结构中将将这个字段与这个用户关联。
clbSysLeaveConference(0x00000006)
当客户离开会议时从客户端向中继服务器发送这个消息。客户端设备通常立即关闭传送连接。被动方设备可以忽略消息。中继服务器必须执行以下操作:
●如果这是该会议的最后用户,则关闭会议
●.如果这不是该会议的最后用户,并且这个会议没有设置为″公开″会议,则中继服务器产生和发送clbSysUserStatus消息给所有现有会议参加者,以通知他们这个用户退出会议
这个消息没有消息有效负载。
clbSysUserStatus(0x00000007)
当用户加入或离开会议时,从中继服务器向客户端设备发送这个消息。
这个消息的消息有效负载如下:
状态(2字节) |
NULL终结的自提供描述名(最多32字符) |
●状态为:
●0x0001:用户加入会议
●0x0002:用户离开会议
●描述名与这个客户端在clbSysJoinConference消息中提供的相同。
clbSysNewDocument(0x00000008)
当从其客户端之一接收到clbSysSetDocument消息时,从中继服务器向客户端设备发送这个消息。其目的是通知剩余客户端可以检索会议文件。通常,客户端设备会向中继服务器发送clbSysGetDocument消息以得到文件。
这个消息对于端到端协作会话不是有效的,并且在这种情况下必须被接收设备忽略。
这个消息的有效负载包含:
NULL终结的文件名 |
clbSysGetDocument(0x00000009)
端到端地从客户端向中继服务器发送这个消息。目的是得到会议文件。
当接收到这个消息时,中继服务器或接收方设备必须通过clbSysSetDocument消息向客户端发送文件。
这个消息的有效负载包含:
NULL终结的文件名 |
如果消息中没有文件名(有效负载中根本没有字节,或只有单0字节[空串]),假定接收设备知道哪个文件是会议文件,并且会通过clbSysSetDocument消息用该文件响应。
clbSysSetDocument(0x0000000A)
在以下3种情况上可以发送这个消息:
●当对等方设备希望向中继服务器发送会议文件以便能够发布到其它客户端时。
●当中继服务器希望向客户端发送会议文件时。
●当两个对等方设备进行会议并且一个希望向另一个发送会议文件时。
当接收到这个消息时,接收方客户端设备必须读取整个消息以得到文件本身并且将文件保存到“盘”中。
当中继服务器接收这个消息时,它们必须通知所有其它客户端可通过clbSysNewDocument消息得到新会议文件。客户端接着通过clbSysGetDocument消息表示希望得到新文件。
这个消息的有效负载包含:
NULL终结的文件名 |
文件本身 |
●接收文件的设备使用消息头的字节总数字段可以确定何时接收了整个消息。一旦整个消息被接收并且保存,应用可以对文件进行操作(或许通过加载文件)。
clbSysSetDocumentResponse(0x0000000B)
从客户端到中继服务器或端到端地发送这个消息。目的是通过clbSysSetDocument消息令另一方知道其接收了刚发送的会议文件。
这个消息的有效负载包含:
状态(2字节) |
状态为:
●CLB_SETDOCRESPONSE_OK(1):无差错
●CLB_SETDOCRESPONSE_ERR(2):没有完整接收到文件。
clbMsgSetDisplayUpdateState(0x0000000C)
这个消息被用来指明发送该消息的设备是否希望接收显示更新消息(DUM)。
两字节的有效负载包含:
使能或禁止(2字节) |
状态为:
●CLB_DISPLAYUPDATE_ENABLE(1)-是,向我发送DUM。
●CLB_DISPLAYUPDATE_DISABLE(2)-否,不向我发送DUM。
clbMsgBaton(0x0000000D)
这个消息被用来传送接力棒(baton)请求和对接力棒请求的应答。当会议处于“投影模式”
时,只有一个设备可能发送显示更新消息(DUM)和数据编辑消息(DEM)。发送这些消息必须拥有接力棒。
这个消息的有效负载包含:
接力棒操作(2字节) |
接力棒操作必须是以下操作之一:
●CLB_BATON_REQUEST(1)-发送方正请求接力棒
●CLB_BATON_GRANTED(2)-发送方正准许拥有接力棒
●CLB_BATON_GRANTED_DUE_TO_TIMEOUT(3)-拥有接力棒的设备没有响应接力棒请求,因此放弃拥有接力棒
●CLB_BATON_DENIED(4)-发送方正拒绝请求以放弃接力棒
●CLB_PROJECTOR_MODE_CANCELLED(5)-会议正离开投影模式。
会议消息
可以从客户端向中继服务器,从中继服务器向客户端,或者端到端地发送会议消息。会议消息被中继服务器自动传递到其它客户端设备(但不回到源设备)。
通过屏蔽32位消息类型的高16位和低8位可以确定会议消息。
例如:
if(msg & 0x0000FF00)
//是会议消息
对于在客户端发起的会议消息(即不被中继服务器传递到客户端),消息头中的用户ID是其自身的用户ID。对于中继服务器传递到客户端的会议消息,消息头中的用户ID是发起方的用户ID。
clbConfDataUpdate
这个消息被用来指示会议文件中的某种改变。可以从客户端向中继服务器,从中继服务器向客户端,或者端到端地发送这个消息。当接收到这个消息时,中继服务器会没有改变地向其它客户端传递该消息。中继服务器还会更新主文件。[不在初始版本中]
这个消息的有效负载取决于举行会议的应用。应用负责对这个消息的数据进行格式化。协议会简单地将消息头中的消息类型设置成clbConfDataUpdate并且将数据交给接收方。
为了使应用确定其是否能够解释和处理数据,协议规定消息的前两个字节包含有关消息中包含的数据的版本的字段。
数据版本(2字节) |
数据起始 |
clbConfDisplay Update
这个消息被用来指示会议文件的显示中的某种改变。可以从客户端向中继服务器,从中继服务器向客户端,或者端到端地发送这个消息。当接收到这个消息时,中继服务器会没有改变地向其它客户端传递该消息。
这个消息的有效负载取决于举行会议的应用。应用负责对这个消息的数据进行格式化。协议会简单地将消息头中的消息类型设置成clbConfDisplayUpdate并且将数据交给接收方。
为了使应用确定其是否能够解释和处理数据,协议规定消息的前四个字节包含有关消息中包含的数据的应用类型和版本的字段。
应用类型(2字节) |
数据版本(2字节) |
数据起始 |
clbConfText
在打开协作会话之后的任意时刻,可以从客户端设备到中继服务器,从中继服务器到客户端设备,或者从端到端会话的任意一方发送这个消息。
除了前面描述的消息头之外,clbContTextMsg包含紧接在消息头后面的该消息的NULL终结的ASCII文本。
目的用户ID(2字节) |
NULL终结的ASCII文本··· |
●如果文本将交付给仅仅一个用户,则用户ID必须被放在前两个字节中。如果消息将交付给所有用户,或者这是一个端到端会议,则产两个字节中必须为0xFFFF值。
会话关闭
简单地通过关闭传送连接,被动或主动方设备均可在任意时刻关闭协作会话。
会议和协作协议API(CCP API)控制块
称作控制块的结构被传入协作层的每个函数,并且也被协作层传入传送模块。其可以被认为是整个协议栈的主结构。它跟踪状态,地址,连接类型,针对当前传入消息接收的字节的数目,及其它。在与协作层接口的主模块中声明这个结构,并且也可以在包含主应用事件循环的模块中声明为外部的。
应用程序很少有机会读取或改变控制块结构中的变量。本文说明了这些时机。
TSRCtlBlock gCtlBlock;
Function API
clbGetLib V ersion
UInt16 clbGetLibVersion(void);
说明:得到协作库的版本。注意,这独立于协作协议版本。
例子:
if(clbGetLtibVersion()!=0x0103);
//出错
clbRun
void clbRun(void);
说明::检查等待的事件,写入任何等待的传出消息,并且为SR(传送)层提供CPU时间。这个函数必须从应用程序主事件循环中的循环调用。
例子:
//在应用程序的主事件循环中 do { clbRun(&gCtlBlock); EvtGetEvent(&event,10); //请求系统处理事件 if(false==SysHandleEvent(&event)) //系统事件处理程序的其余部分...。 clbConnect <!-- SIPO <DP n="25"> --> <dp n="d25"/> Err clbConnect(TSRCtlBlock*ctlBlock, TOutputType xPort, UInt32 confID, UInt32 userID, UInt16 appType, Char*password);
说明:开始建立协作会话的过程。应用程序必须在调用这个程序之前设置期望的连接类型。如果试图建立TCP/IP连接,则必须在调用之前设置ctlBlock中的IP地址和端口。这是异步调用。通过事件队列中的CLB_CONNECTION_UP事件将连接通知调用方。
参数:
ctlBlock 指向主控制块的指针
xPort 传送类型(IR或TCP/IP,见sr.h)
confID 会议ID;由用户通过UI输入
userID 用户ID;由用户通过UI输入
appType 应用程序;应用程序已知,例如QuickWord
passWord 这个用户的口令。NULL终结。
例子:
gCtlBlock.connType=appPrefs->LastTransport;//IR或 TCP/IP gCtlBlock.connHdl=-1; gCtlBlock.passiveMode=false; gCtlBlock.bytesRcvdThisMsg=0; gCtlBlock.bytesExpectedThisMsg=0; gCtlBlock.confID=prefs.confID; <!-- SIPO <DP n="26"> --> <dp n="d26"/> gCtlBlock.userID=prefs.userID; bCtlBlock.bReceivingDocument=false; StrCopy(gCtlBlock.password, pGadget->appPrefs->LastPassword); //设置地址填充 if(gCtlblock.connType==ETOutputTCPIP) { StrNCopy(gCtlBlock.info.TCPIPInfo.addrString,″192.168.1.1″, MAX_IPADDRESS_CHARS); //端口具有主机字节顺序 gCtlBlock.info.TCPIPInfo.portNum= StrAToI(COLLABORATION_PORT); } else//对于这个版本,必须是IR { //不做任何事情 } if(clbConnect(&gCtlBlock,gCtlBlock.connType, gCtlBlock.confID,gCtlBlock.userID,ETAppTypeQuickword, gCtlBlock.password)!=ETCLBOK) { FrmCustomAlert(ErrorAlert,“启动连接错误″,NULL,NULL); } //现在等待CLB_CONNECTION_UP事件 clbListen Err clbListent TSRCtlBlock*ctlBlock,clbAppAcceptSessionCB acceptsessCB);
说明:开始″侦听″指定连接类型。在ctlBlock.connType字段中指定连接类型。在进行这个调用之前将其设置成期望的传送。这是异步调用。当建立连接时,通过事件队列中的CLB_CONNECTION_UP事件通知调用方。
参数:
ctlBlock指向主控制块的指针。
acceptSessCB 指向验证会话的接受的回调函数的指针。
例子:
gCtlBlock.connType=ETOutputTCPIP;//或ETOutputIR gCtlBlock.connHdl=-1; gCtlBlock.passiveMode=true; gCtlBlock.confID=0; gCtlBlock.userID=0; gCtlBlock.bytesRcvdThisMsg=0; gCtlBlock.bytesExpectedThisMsg=0; gCtlBlock.bReceivingDocument=0; if(gCtlBlock.connType==ETOutputTCPIP) { gCtlBlock.info.TCPIPInfo.addrString[0]=0; gCtlBlock.info.TCPIPInfo.portNum= StrAToI(COLLABORATION_PORT); } if(clbListen(&gCtlBlock,AcceptSessionFunc)!=ETCLBOK) { FrmCustomAlert(ErrorAlert,″侦听错误″,NULL,NULL); <!-- SIPO <DP n="28"> --> <dp n="d28"/> } clbGetConfID Err clbGetconfID(TSRCtlBlock*ctlBlock,TOutputType xPort, UInt32 userID,Char*password);
说明:开始得到新会议的会议ID的过程。在端到端会议中,被动设备会调用这个函数以在公知的服务器上注册其IP地址。通过连接到公知服务器并且重定向,主动客户端于是可以使用返回给被动设备的会议ID连接到被动设备。
这个调用的结果会通过CLB_CONFID事件传递给应用程序,其中evtData32会包含新的会议ID。应用程序接着应当调用clbListen以进入侦听模式。
参数:
ctlBlock 指向主控制块的指针
xPort 传送类型(IR或TCP/IP,见sr.h)
userID 用户ID;由用户通过UI输入
passWord 这个用户的口令。NULL终结。
例子:
if(clbGetConfID(&gCtlBlock,gCtlBlock.connType,gCtlBlock.userID,gCtlBlock.password)!=ETCLBOK)
{
FrmCustomAlert(ErrorAlert,″获得会议ID出错″,NULL,NULL);
}
clbSendMsg
Err clbSendMsg(TSRCtlBlock*ctlBlock,TClbMSg*clbMsg);
说明:向当前连接写入协作消息中的数据。期望调用方使用clbCreate调用创建消息,将数据复制到缓冲区,接着调用这个函数以进行写入。这是异步调用。会通过事件队列的事件向调用方通知写入成功完成。
参数:
ctlBlock指向连接控制块的指针
outBuf 指向要写入的缓冲区的指针
返回:
ETCLBOK | 无差错 |
ETCLBErr | 由于堆栈当前忙于发送另一个消息,或者队列中有过多的等待传出消息,不能发送此消息 |
ETCLBErrState | 由于状态问题,例如试图在不具有接力棒时发送显示更新消息,不会写入此消息 |
例子:
Char localBuf[MAX_TEXT_LEN],*payLoad; TClbTextMsg*clbMsg; //创建协作消息(要发送的文本已经在″localBuf″中) clbMsg=(TClbTextNsg*)clbCreate(clbMsgTextMsg, gCtlBlock.confID,gCtlBlock.userID,StrLen(localBuf)+3); //复制以下的数据 <!-- SIPO <DP n="30"> --> <dp n="d30"/> payLoad=(Char*)CLB_BUF_ADDR(clbMsg)+2; payLoad[0]=0; StrCopy(payLoad,localBuf); //发出 if(clbSendMsg(&gCtlBlock,(TClbMsg *)clbMsg)!= ETCLBOK) { FrmCustomAlert(ErrorAlert,“更新远程设备出错”,NULL, NULL); } //在发送另一个之前等待通过CLB_WRITE_COMPLETE消息 对发送的确认 clbDisconnect Err clbDisconnect(TSRCtlBlock*ctlBlock);
说明:断开打开的连接。这是异步调用。会通过事件队列的事件通知调用方连接被关闭。在关闭连接之前会发出clbMsgLeaveConference消息。
参数:
ctlBlock指向主控制块的指针
clbCreate
TClbHeader*clbCreate(ETClbMsg msgType,UInt16 confID,UInt16 userID,Int32 numBytes);
说明:创建消息头得到填充并且准备填充有效负载的协作消息。字节数目是单纯有效负载所需的数目;这个函数会自动计算消息头的空间。其返回指向消息头(因此,消息本身)的指针。使用CLB BUF ADDR宏访问“有关负载”地址。
参数:
消息类型例子:clbMsgConfText,clbMsgConfDataUpdate
会议ID 向服务器标识期望会议的唯一ID
用户ID 向服务器标识这个用户的唯一ID
字节数目纯有效负载;不计入消息头
例子:(例如参见clbSendMsg的注解)
clbSendDocument
Err clbSendDocument(TSRCtlBlock*ctlBlock,Char*docName,UInt16 confID,UInt16 userID);
参数:
ctlBlock指向连接控制块的指针
docName要发送的文件的名称(NULL终结)
会议ID 当前会议的会议ID
用户ID 用户ID
说明:创建具有正确头信息的新clbSysSetDocument消息,发出消息,并且还找到文件数据库并且发送它。
例子:
clbSendDocument(ctlBlock,″budget2002.pdb″, ctlBlock->confID,ctlBlock->userID); 注意:这是异步消息,并且会产生 CLB_WRITEDOC_COMPLETE事件,该事件在接收设备通过 clbMsgSetDocumentResponse消息确认文件的接收之后被发送到应用 程序。 clbChangeState void clbChangeState(TSRCt1Block*ctlBlock,TStatusType newState); 说明:将控制块的状态变量成员改变到新状态。通过 TStatusType Typedef定义了有效状态: Typedef enum { //主动和被动状态 ETConnStatusDown, ETConnStatusUp, //主动状态 ETConnStatusUpPending, ETConnStatusAuthOutPending //被动状态 ETConnStatusListenPending, ETConnStatusListen, ETConnStatusAuthInPending, ETConnStatusDownPending }TStatusType;
应用程序应当只会使用ETConnStatusDown,ETConnStatusUp,ETConnStatusListenPending,和ETConnStatusListen。在协作模块内部管理其它状态。例如,
应用程序必须
●当接收到CLB_CONNECTION_UP事件时将状态设置到ETConnStatusUp
●当接收到CLB_CONNECTION_DOWN事件时将状态设置到ETConnStatusDown
●正好在启动新连接之前将状态设置到ETConnStatusDown
●在调用clbListen之前将状态设置到ETConnStatusListenPending
●当中止侦听时将状态设置到ETConnStatusDown
参数:
ctlBlock控制块指针
新状态参见上述有效状态
例子:
void clbChangeState(&gCtlBlock.ETConnStatusUp);
clbGetPeerName
void clbGetPeerName(TSRCtlBlock*ctlBlock,Char*peerName,Int16 maxChars);
说明:调用传送(SR)层以得到所连接设备的串格式的名称。返回结果在peerName中具有NULL终结的格式。名称取决于传送。例如,对于TCP/IP,会返回″192.168.1.1″形式的IP地址。
参数:
ctlBlock控制块指针
peerName放置结果的缓冲区
peerName最大字符数缓冲区尺寸
clbGetLocalAddr
void clbGetLocalAddr(TSRCtlBlock*ctlBlock,Char*localAddr,Int16 maxChars);
说明:调用传送(SR)层以得到这个本地设备的串格式的名称。返回结果在localAddr中具有NULL终结的格式。名称取决于传送。例如,对于TCP/IP,会返回″192.168.1.1″形式的IP地址。
参数:
ctlBlock控制块指针
localAddr 放置结果的缓冲区
localAddr最大字符数 缓冲区尺寸
clbAppAcceptSessionCB
typedefETClbResponse(*clbAppAcceptSessionCB)(Char*userID,
Char*passWord,
UIntl6appType,
Char*remoteAddr);
说明:应用程序回调函数以验证应用程序是否希望接受传入会话。这作为clbListen调用的参数而传入。传递NULL意味着批准全部传入会话。当传入会话进入库时,会调用这个函数,并且根据返回代码指示的应答而作出反应。
clbGetConfStatus
UInt16 clbGetConfStatus(TSRCtlBlock*ctlBlock);
说明:返回跟踪下面情况的内部变量:
●会议是否处于投影模式(PROJECTOR_MODE)
●这个设备是否具有接力棒(HAVE_BATON)
应用程序可以使用这个调用检查位字段的状态。
参数:
ctlBlock指向连接控制块的指针。
例子:
if(clbGetConfStatus(ctlBlock)&PROJECTOR_MODE)
clbRequestBaton
UInt16 clbRequestBaton(TSRCtlBlock*ctlBlock);
说明:创建和发出在消息有效负载中具有CLB_BATON_REQUEST的clbMsgBaton消息。启动定时器,使得如果在BATON_REQUEST_TIMEOUT秒内另一方没有响应,堆栈会发出具有批准状态的CLB_BATON_STATUS事件。
参数:
ctlBlock指向连接控制块的指针。
返回:
ETCLBOK | 无差错 |
ETCLBErr | 另一接力棒请求等待(在超时周期内) |
例子:
clbRequestBaton(& gCtlBlock);
clbRegisterEventCB
void clbRegisterEventCB(callBackFuncPtr);
说明:注册当堆栈有事件发送到应用程序时调用的回调函数。在事件部分中列出可以发送的事件。
参数:
callBackFuncPtr 指向会处理事件的回调函数的指针。这个函数必须具有以下原型:
Boolean CBFunc(QEventType*evt,void*ptr);
如果其处理了事件,回调函数必须返回true,否则必须返回false。
例子:
clbRegisterEventCB(myEventHandler);
常数
这个部分会列出协作协议中使用的常数(#defines)和类型(typedefs)。
CLB_VERSION
简单版本数值。两个字节。最高有效字节是主版本;最低有效字节是次要版本。这个数值被协作层放入每个协作消息头中。
#define CLB_VERSION 0x0102//高字节主版本,低字节次要版本
CLB_LIB_VERSION
库版本号。两个字节。最高有效字节是主版本;最低有效字节是次要版本。库版本独立于协议版本。
#define CLB_LIB_VERSION 0x010A//高字节主版本,低字节次要版本
差错代码
这些均被用作API调用的返回值,并且可能通过事件传递到应用程序。
#define ETCLBOK 0
#define ETCLBErr-1
#define ETCLBErrState-2
#define ETCLBErrPendingOutMsgs-3
消息类型
应用程序从不发送或接收clbMsgConnectRequest,clbMsgJoinConference,clbMsgLeaveConference,clbMsgUserStatus或clbMsgConnectResponse消息;这些由协作层发送和处理。应用程序会将其它有效类型中的一个传入clbCreate调用。
/*** 协作消息类型 0x000000FF=系统消息 0x0000FF00=会议消息 0x00FF0000=用户定义消息 0xFF000000=无定义,保留 ***/ #define clbMsgConnectRequest 0x00000001 #define clbMsgConnectResponse 0x00000002 #define clbMsgConfIDRequest 0x00000003 #define clbMsgConfIDResponse 0x00000004 #define clbMsgJoinConference 0x00000005 #define clbMsgLeaveConference 0x00000006 #define clbMsgUserStatus 0x00000007 #define clbMsgNewDocument 0x00000008 #define clbMsgGetDocument 0x00000009 #define clbMsgSetDocument 0x0000000A #define clbMsgSetDocumentResponse 0x0000000B #define clbMsgSetDisplayUpdateState 0x0000000C #define clbMsgBaton 0x0000000D #define clbMsgSetDocumentReady 0x0000000E #define clbMsgConfDataUpdate0x00000100 #define clbMsgConfDisplayUpdate 0x00000200 #define clbMsgConfText 0x00000300 #define CLB_SYSMSG_MASK 0x000000FF #define CLB_CONFMSG_MASK 0x0000FF00 <!-- SIPO <DP n="39"> --> <dp n="d39"/> #define CLB_USERMSG_MASK 0x00FF0000 #define CLB_RESERVEDMSG_MASK 0xFF000000 COLLABORATION_PORT
协作协议的TCP端口。被动设备会侦听这个端口。主动设备会连接到这个端口。如果这个协议变成乘积的一部分,端口必须在IANA(因特网地址分配管理机构)注册。
#define COLLABORATION_PORT 9800
CLB_HEADER_BYTES
协作消息头中的字节的数目。
#define CLB_HEADER_BYTES(sizeof(TClbHeader))
CLB_BUF_ADDR
允许快速和容易地访问指向协作消息中″有效负载″的点数的宏。
#define CLB_BUFADDR(x)(((UInt8*)x)+CLB_HEADER_BYTES)
CLB_EVT_XXX_BASE
这个数值是基值,其中将其与一个数值相加以获得唯一事件编号。
#define CLB_EVT_SYS_BASE 0
#define CLB_EVT_CONF_BASE 1000
#define CLB_EVT_USER_BASE 2000
CLB_Message常数
这些数值与上线的消息相关。根据常数名称可以确定与其相关的消息。
#define CLB_DISPLAYUPDATE_ENABLE 1 #define CLB_DISPLAYUPDATE_DISABLE 2 #define CLB_BATON_REQUEST 1 #define CLB_BATON_GRANTED 2 #define CLB_BATONG_RANTED_DUE_TO_TIMEOUT 3 #define CLB_BATON_DENIED 4 #define CLB_PROJECTORMODE_CANCELLED 5 #define CLB_SETDOCRESPONSE_OK 1 #define CLB_SETDOCRESPONSE_ERR 2 #define CLB_USERSTATUS_JOIN 1 #define CLB_USERSTATUS_LEAVE 2
枚举类型
这个部分列出协作协议的枚举类型。
对连接请求的应答
这些数值被被动方通过clbConnectResponse消息传递回到主动方。
typedef enum { clbResponseAcceptNoRedirect=1, clbResponseAcceptRedirect, clbResponseRejectBadConfID, clbResponseRejectBadConfTime, clbResponseRejectBadUserID, clbResponseRejectBadPassword, clbResponseRejectUnsupportedApp, clbResponseRejectMaxClients, clbResponseRejectByUser, clbResponseRejectOther }ETClbResponse;
应用程序类型
针对包含″应用程序类型″的连接请求的特定调用。
typedef enum
{
ETAppCollaboration=1,
ETAppTypeQuickword,
ETAppTypeQuicksheet
}TCLBAPPType;
类型
这些部分描述协作协议使用的类型。这里列出实际消息的结构。应用程序很少(即使有)直接处理这些结构。大部分由协作层负责。
在应用层,16位和32位整数具有主机字节顺序。
协作消息头
这个数据位于每个协作消息的开始处。协作层通过clbCreate调用设置这些数值。应用程序不应该设置这些数值。
typedef struct { UInt32 totalBytes; UInt32 msgType; UInt16ptclVersion; UInt16 confID; UInt16 userID; UInt16 reserved; }TClbHeader; typedef TClbHeader TClbMsg;
协作连接请求消息
一旦传送连接建立,主动设备发送这个消息。它包含消息头和口令。口令是NULL终结的ASCII串。
typedef struct
{
TClbHeader clbHdr;
UInt16 appType;
Char*passWord;
}TClbConnectRequest;
协作连接应答消息
在接收ConnectRequest消息之后,被动设备发送这个消息。它验证口令,并且回送应答码,以及可能的新地址和主动方连接到的端口。
typedef struct
{
TClbheader clbHdr;
UInt16 responseCode;
Char*redirectAddr;
}TClbConnectResponse;
协作会议ID请求消息
由不久成为的被动设备向公知服务器发送这个消息以获得会议ID。消息头中的会议ID数值必须被设置成0xFFFF。IP地址必须具有网络字节顺序。口令是NULL终结的ASCII串。
typedef struct
{
TClbHeader clbHdr;
UInt32 IPAddr;
Char*passWord;
}TClbConfIDRequest;
协作会议ID应答消息
由公知服务器向不久成为的被动设备发送这个消息以提供新会议ID。消息头中的会议ID数值必须被设置成0xFFFF。有效负载中的会议ID字段必须具有网络字节顺序。
typedef struct
{
TClbHeader clbHdr;
UInt16 confID;
}TClbConfIDResponse;
协作设置文件消息
这个消息的目的是指示会议文件正被发送。通常,当新版本的会议文件可用时,中继服务器会向全部客户端发送clbMsgNewDocument消息。客户端接着会向服务器发送clbMsgGetDocument消息,并且服务器会应答以具有文件的clbMsgSetDocument消息。
typedef struct
{
TClbHeader clbHdr;
Char*docName;
//上述之后是文件
}TClbSetDocMsg;
协作新文件消息
这个消息的目的是指示存在新版本的会议文件。通常,当新版本的会议文件可用时,中继服务器会向全部客户端发送clbMsgNewDocument消息。客户端接着会向服务器发送clbMsgGetDocument消息,并且服务器会应答以具有文件的clbMsgSetDocument消息。
typedef struct
{
TClbHeader clbHdr;
Char*docName;
}TClbNewDocMsg;
协作获取文件消息
这个消息的目的是指示发送方希望向其发送新版本的会议文件。通常,当新版本的会议文件可用时,中继服务器会向全部客户端发送clbMsgNewDocument消息。客户端接着会向服务器发送clbMsgGetDocument消息,并且服务器会应答以具有文件的clbMsgSetDocument消息。如果这个消息的发送方不知道文件名,可以省略docName,或者回送空串(″″)和缺省会议文件。
typedef struct
{
TClbHeader clbHdr;
Char*docName;
}TClbGetDocMsg;
协作设置文件就绪消息
这个消息的目的是通知其它对等方或中继服务器其已经打开会议文件。通过这个方式,对于在其被接收之后打开多长时间没有歧义。中继服务器可以知道在客户端就绪之前消息被缓冲多长时间。
客户端发送消息clbSetDocumentReady,而对等方或中继服务器对其进行处理。消息期待DocName。
typedef struct
{
TClbHeader clbHdr;
Char*docName;
}TClbSetDocReadyMsg;
协作文本消息
这是简单文本消息,只有协作消息头,用户ID和某些NULL终结的文本。如果文本将被广播到所有连接用户,设置用户ID为0xFFFF。否则消息只会被发送到所指示的特定用户。对于对等会议,忽略这个字段。
typedef struct
{
TClbHeader clbHdr;
UInt16 userID;
//变长,之后是NULL终结的ASCII文本
}TClbTextMsg;
协作用户消息
任何用户消息(参见消息类型部分)均是自由形式的。应用程序预计会调用clbCreate以创建消息,填写有效负载,并且调用clbSend以发出消息。在收到时,库会忽略那些消息的内容,并且简单地发送它们或将它们传递到应用程序。
事件
这些常数定义协作协议可以回送到应用程序的事件。应用程序必须具有针对这些事件的事件处理程序。
与事件相关的数据会被包含在所传递的事件的″一般(generic)″部分中。事件的″一般″部分是Int16的数组。对于某些事件,其会超载以包含地址。对于每个消息,在注解中提供通过消息传递的相关数据。
CLB_EVT_XXX_BASE
这些数值只是基值,其中将其与数值相加以标识唯一事件标识符。系统事件为0-999,会议事件为1000-1999,用户事件为2000-2999。
#define CLB_EVT_SYS_BASE 0
#define CLB_EVT_CONF_BASE 1000
#define CLB_EVT_USER_BASE 2000
CLB_CONNECTION_UP
这个事件被发送到应用程序,以作为clbConnect或clbListen调用的结果。
相关数据:
event.evtData16错误码
#define CLB_CONNECTION_UP(CLB_EVT_SYS_BASE+1)//1
CLB_CONNECTION_DOWN
作为clbDisconnect调用的结果,或如果另一方结束传送连接,这个事件被发送到应用程序。
相关数据:
event.evtData16错误码
#define CLB_CONNECTION_DOWN(CLB_EVT_SYS_BASE+2)//2
CLB_WRITEMSG_COMPLETE
这个事件被发送到应用程序,以作为clbWrite调用的结果。它指示所有数据已经写入传送中。
相关数据:
event.evtData16错误码
库会释放传出消息使用的存储器。
#define CLB_WRITEMSG_COMPLETE(CLB_EVT_SYS_BASE+3)//3
CLB_WRITEDOC_COMPLETE
作为clbSendDocument调用的结果发送到应用程序。指示已经发送整个文件。
相关数据:
event.evtData16错误码
#define CLB_WRITEDOC_COMPLETE(CLB_EVT_SYS_BASE+4)//4
CLB_DATA_RCVD
当已经接收整个协作消息时,这个事件被发送到应用程序。协作层负责来自传送层的消息片段的装配。
相关数据:
event.evtData16错误码
event.evtData32指向TClbMsg的指针。可以根据消息头确定所有事情。注意:应用程序负责释放evtData32所指的存储器。
#define CLB_DATA_RCVD(CLB_EVT_SYS_BASE+5)//5
为访问存储器,指针表示以下操作:
TClbMsg*clbMsg; <!-- SIPO <DP n="50"> --> <dp n="d50"/> Char*textPtr; //类型转换 clbMsg=(TClbMsg*)pEvent->evtData32; switch(clbMsg->msgType) { case clbMsgConfText: textPtr=(Char*)CLB_BUF_ADDR(clbMsg); textPtr+=sizeof(UInt16);//跳过目的用户ID FrmCustomAlert(InfoAlert,textPtr,NULL,NULL);
注意:这个例子说明如何访问协作文本消息中的数据。
CLB_NEWDOC_ARRIVED
当新会议文件到达时发送到应用程序。协作层负责向存储堆写入文件本身。应用程序应当只从这个消息获取文件的名称,并且读取文件。
相关数据:
event.evtData16错误码
event.evtData32指向文件名称的指针。
#define CLB_NEWDOC_ARRIVED(CLB_EVT_SYS_BASE+6)//6
注意:不释放evtData32中的指针。它是ctlBlock结构的静态成员。
CLB NEWDOC EXISTS
当得到有关新版本的会议文件可供检索的通知时,发送到应用程序。应用程序应当通过发出clbGetDocument消息来响应。没有文件附加到这个消息;这只是一个令所有参加者知道其应当进行检索的方式。
应用程序应当释放evtData32所指的存储器。
相关数据:
event.evtData16错误码
event.evtData32指向文件名称的指针。
#define CLB_NEWDOC_EXISTS(CLB_EVT_SYS_BASE+7)//7
CLB_REQUEST_NEWDOC
当请求最近版本的会议文件时发送到应用程序,可能是发出clbMsgNewDocument消息的结果。当clbSysGetDocument消息到达时,堆栈向应用程序发送这个消息。
没有文件附加到这个消息。
应用程序应当释放evtData32所指的存储器。
相关数据:
event.evtData16错误码
event.evtData32指向文件名称的指针。
#define CLB_REQUEST_NEWDOC(CLB_EVT_SYS_BASE+8)//8
CLB_BATON_STATUS
当出现以下情况时响应应用程序请求接力棒而发送到应用程序:
●其它设备以批准或拒绝接力棒的clbMsgBaton消息响应,或
●已经超时
●已经释放接力棒
相关数据:
event.evtData16接力棒状态,为CLB_BATON_GRANTED,CLB_BATON_GRANTED_DUE_TO_TIMEOUT或CLB_BATON_DENIED,CLB_BATON_LOST之一
#define CLB_BATON_STATUS(CLB_EVT_SYS_BASE+9)//9
CLB_NEWDOC_READY
当打开文件时发送到应用程序。是来自对等方或中继服务器的clbSetDocumentReadyMsg的结果。
应用程序应当释放evtData32所指的存储器。
相关数据:
event.evtData16错误码
event.evtData32指向文件名称的指针。
#define CLB_NEWDOC_READY(CLB_EVT_SYS_BASE+10)//10
CLB_CONFID
当以新会议ID接收到clbSysConfIDResponse消息(响应clbGetConfID调用)时,发送到应用程序。
相关数据:
event.evtData16错误码
event.evtData32新会议ID.这会是32位变量中的16位数值。
#define CLB_CONFID(CLB_EVT_SYS_BASE+6)//10
应用程序的主事件循环
存在3个必须对应用程序的主事件循环(其中调用和处理EvtGetEvent)进行的改变。A sample event loop is at the end of thissection.
clbRun
这个函数执行3个功能:
●检查是否存在任何等待发送的待执行传出消息,如果存在,发送它们。
●检查任何将被协作层或应用程序处理的用户事件。如果队列中存在任何事件,选择第一个事件,并且调用clbHandleEvent以确定是否可以处理该事件。如果不能,调用通过clbRegisterEventCB调用注册的回调函数以确定应用程序是否可以处理它。这2个函数中的一个必须知道取自用户事件队列的任何事件并且对其进行处理。
●调用srRun以为传送层提供CPU时间。为了保持对用户输入的响应,以非阻塞方式调用某些传送函数。这表明某些函数被调用,并且如果不需要做任何操作,它们简单地返回。例如,侦听TCP端口通常是阻塞调用。套接字″accept″调用的NetLib实现以超时作为参数,所以必须以查询方式调用。因此,必须有某种方式使得在循环中调用这个函数。srRun函数执行这个功能。必须在应用程序的主事件循环中调用clbRun。
EvtGetEvent()的超时
为了在应用层和通信层上实现期望的响应,较小的超时应当被传入应用程序主事件循环中的EvtGetEvent。参见以下例子。
主事件循环的例子
void AppEventLoop(void) { EventType event; do { //允许协作层运行 clbRun(& gCtlBlock); //不传递evtWaitForever进入EvtGetEvent //EvtGetEvent(& event,evtWaitForever); EvtGetEvent(& event,10); //请求系统处理事件。 if(false==SysHandleEvent(& event)) { //系统不处理事件。 Word error; //请求菜单处理事件。 if(false==MenuHandleEvent(0,& event,& error)) <!-- SIPO <DP n="55"> --> <dp n="d55"/> { //菜单不处理事件。 //请求app(that is,this)处理事件。 if(false ==AppEventHandler(& event)) { //应用程序不处理事件。 //发送事件到适当窗口。 FrmDispatchEvent(& event); }//end if(false==AppEventHandler(& event)) }//end if(false==MenuHandleEvent(0,& event,& error)) }//end if(false==SysHandleEvent(& event)) }while(event.eType!=appStopEvent);
通知堆栈函数会处理事件
应用程序必须在堆栈上注册回调函数,以接收来自堆栈的事件。这个回调函数的原型必须为:
Boolean CBFunc(QEventType*evt,void*ptr);
使用clbRegisterEventCB API调用注册回调函数。做这个操作的良好时机是在活跃窗口的初始化函数中。
ErrorAlert资源
协作层和通信层利用ID为1000的报警资源。这个资源在Alert.h中设置。改变具有一个参数(″^″)的报警资源的数值。
关闭日志文件
对LOGCLOSE的调用必须在应用程序的AppStop()函数关闭日志文件结束时进行。如果不允许记录日志,LOGCLOSE宏不做任何操作。如果允许记录日志,LOGCLOSE宏解析LogClose(),因此不需要括号。不必打开日志;当第一次进行日志调用时打开日志。
处理针对应用程序的协作消息
协作层会向应用程序传递以下事件:
●CLB_CONNECTION_UP ●CLB_CONNECTION_DOWN ●CLB_WRITEMSG_COMPLETE ●CLB_WRITEDOC_COMPLETE ●CLB_DATA_RCVD ●CLB_NEWDOC_ARRIVED ●CLB_NEWDOC_EXISTS ●CLB_REQUEST_NEWDOC ●CLB_BATON_STATUS ●CLB_CONFID
应用程序必须在通过clbRegisterEventCB API调用传入的函数中处理这些事件。这里是样本函数。(注意:这不具有任何处理事件的实际代码;它仅仅是为了说明结构)
Boolean MainFormHandleClbEvents(QEventType*pEvent, void*ptr) { Boolean handled=false; TSRCtlBlock*ctlBlock=(TSRCtlBlock*)ptr; <!-- SIPO <DP n="57"> --> <dp n="d57"/> switch(pEvent->evtType) { case CLB_CONNECTION_UP: handled=true; break; case CLB_CONNECTION_DOWN: handled=true; break; case CLB_WRITEMSG_COMPLETE: handled=true; break; case CLB_WRITEDOC_COMPLETE: handled=true; break; case CLB_DATA_RCVD: handled=true; break; case CLB_NEWDOC_ARRIVED: handled=true; break; case CLB_NEWDOC_EXISTS: handled=true; break; case CLB_REQUEST_NEWDOC: handled=true; break; case CLB_BATON_STATUS: handled=true; break; <!-- SIPO <DP n="58"> --> <dp n="d58"/> case CLB_CONFID: handled=true; break; default: handled=false; break; }//end switch return handled; }
虽然通过特定优选实施例描述了本发明,但本领域的本申请人员在阅读本申请时可以理解许多变型和修改。因此,在考虑到现有技术的情况下,所附权利要求书应当得到尽可能广泛的解释,以包含所有这种变型和修改。
Claims (60)
1.一种可在PDA可读介质上执行的无线协作软件程序,包括:
会议和协作协议(CCP),能够准实时地与物理远程通信设备上驻留的另一所述无线协作软件程序无线通信。
2.如权利要求1所述的无线协作软件程序,其中CCP能够以无线方式使PDA上运行的应用程序的数据与物理远程设备上运行的公共应用程序协作,而无需根本改变PDA应用程序。
3.如权利要求2所述的无线协作软件程序,其中CCP能够更新PDA内部状态以镜像物理远程通信设备的状态。
4.如权利要求3所述的无线协作软件程序,其中CCP能够协同数据和屏幕信息。
5.如权利要求4所述的无线协作软件程序,其中CCP能够使得在处理接收的数据信息时,可以有选择地过滤接收的屏幕信息。
6.如权利要求1所述的无线协作软件程序,还包括由CCP实现的应用程序接口(API)。
7.如权利要求6所述的无线协作软件程序,其中CCP能够与远程通信设备通信以异步交换数据。
8.如权利要求6所述的无线协作软件程序,还包括由CCP实现的CCP系统库。
9.如权利要求8所述的无线协作软件程序,其中CCP系统库适于处理针对远程通信设备传送的CCP的会议消息。
10.如权利要求9所述的无线协作软件程序,其中会议消息包括会议协议消息,系统更新消息,系统编辑消息和系统更新消息。
11.如权利要求10所述的无线协作软件程序,其中会议消息是结构化的字节组。
12.如权利要求8所述的无线协作软件程序,还包括处理由CCP系统库产生的特定事件的CCP事件处理程序。
13.如权利要求12所述的无线协作软件程序,还包括多个功能模块,其中CCP事件处理程序还适于处理针对现有和新的所述功能模块的特定事件。
14.如权利要求1所述的无线协作软件程序,其中无线协作软件程序能够在与另一所述无线协作软件程序通信时自动向其发送文件,其中可由PDA和物理远程通信设备编辑所述文件。
15.如权利要求1所述的无线协作软件程序,其中应用程序是现成的应用程序。
16.如权利要求1所述的无线协作软件程序,其中远程通信设备是另一PDA。
17.如权利要求1所述的无线协作软件程序,其中远程通信设备是桌面计算机。
18.如权利要求1所述的无线协作软件程序,其中远程通信设备是在线馈送网关。
19.一种能够准实时地与远程通信设备进行无线协作的PDA,包括:
存储器,CPU和PDA操作系统;和
在PDA上加载并且可由PDA执行的无线协作软件程序,包括:
会议和协作协议(CCP),能够准实时地与物理远程通信设备上驻留的另一所述无线协作软件程序无线通信。
20.如权利要求19所述的无线协作软件程序,其中CCP能够以无线方式使PDA上运行的应用程序的数据与物理远程设备上运行的公共应用程序协作,而无需根本改变PDA应用程序。
21.如权利要求19所述的无线协作软件程序,其中CCP能够更新PDA内部状态以镜像物理远程通信设备的状态。
22.如权利要求20所述的无线协作软件程序,其中CCP能够协同数据和屏幕信息。
23.如权利要求21所述的无线协作软件程序,其中CCP能够使得在处理接收的数据信息时,可以有选择地过滤接收的屏幕信息。
24.如权利要求19所述的无线协作软件程序,还包括由CCP实现的应用程序接口(API)。
25.如权利要求19所述的无线协作软件程序,其中CCP能够与远程通信设备通信以异步交换数据。
26.如权利要求24所述的无线协作软件程序,还包括由CCP实现的CCP系统库。
27.如权利要求26所述的无线协作软件程序,其中CCP系统库适于处理针对远程通信设备传送的CCP的会议消息。
28.如权利要求27所述的无线协作软件程序,其中会议消息包括会议协议消息,系统更新消息,系统编辑消息和系统更新消息。
29.如权利要求27所述的无线协作软件程序,其中会议消息是结构化的字节组。
30.如权利要求26所述的无线协作软件程序,还包括处理由CCP系统库产生的特定事件的CCP事件处理程序。
31.如权利要求30所述的无线协作软件程序,还包括多个功能模块,其中CCP事件处理程序还适于处理针对现有和新的所述功能模块的特定事件。
32.如权利要求19所述的无线协作软件程序P,其中CCP能够在与远程通信设备上驻留的另一所述无线协作软件程序通信时自动向其发送文件。
33.如权利要求19所述的无线协作软件程序,其中应用程序是现成的应用程序。
34.如权利要求19所述的PDA,其中无线协作软件程序能够准实时地与另一远程PDA设备协作。
35.如权利要求19所述的PDA,其中无线协作软件程序能够准实时地与桌面计算机协作。
36.如权利要求19所述的PDA,其中无线协作软件程序能够准实时地与在线馈送网关协作。
37.一种用于准实时地在PDA和物理远程通信设备之间进行无线协作的方法,包括:
执行第一驻留程序并且与物理远程通信设备协作的PDA还执行第一驻留程序准实时地与该远程通信设备无线协作。
38.如权利要求37所述的方法,其中每个PDA和物理远程通信设备均运行公共应用程序,其中无需根本改变PDA或物理远程通信设备的应用程序但可执行所述无线协作。
39.如权利要求37所述的方法,其中PDA包含可在PDA上执行的无线协作软件程序,所述无线协作软件程序包括:
会议和协作协议(CCP),能够准实时地与远程通信设备上驻留的另一所述无线协作软件程序通信。
40.如权利要求39所述的方法,其中协作软件程序还驻留在远程通信设备上,并且可被远程通信设备执行。
41.如权利要求37所述的方法,其中PDA能够更新其内部状态以镜像物理远程通信设备的状态。
42.如权利要求38所述的方法,其中PDA能够协同数据和屏幕信息。
43.如权利要求39所述的方法,其中PDA能够使得在处理接收的数据信息时,可以有选择地过滤接收的屏幕信息。
44.如权利要求39所述的方法,其中无线协作软件程序还包括由CCP实现的应用程序接口(API)。
45.如权利要求35所述的无线协作软件程序,其中CCP能够与远程通信设备通信以异步交换数据。
46.如权利要求39所述的无线协作软件程序,其中协作软件程序还包括由API实现的CCP系统库。
47.如权利要求46所述的无线协作软件程序,其中CCP系统库适于处理针对远程通信设备传送的CCP的会议消息。
48.如权利要求47所述的无线协作软件程序,其中会议消息包括会议协议消息,系统更新消息,系统编辑消息和系统更新消息。
49.如权利要求48所述的无线协作软件程序,其中会议消息是结构化的字节组。
50.如权利要求39所述的无线协作软件程序,其中协作软件程序还包括处理由CCP系统库产生的特定事件的CCP事件处理程序。
51.如权利要求39所述的无线协作软件程序,其中协作软件程序还包括多个功能模块,其中CCP事件处理程序还适于调用现有和新的所述功能模块。
52.如权利要求37所述的方法,还包括将PDA指定为主机并且由PDA自动向物理远程通信设备发送第一文件以开始无线协作的步骤。
53.如权利要求37所述的方法,还包括将物理远程通信设备指定为主机并且由其自动向PDA发送第一文件以开始无线协作的步骤。
54.如权利要求37所述的方法,其中公共应用程序是现成的应用程序。
55.如权利要求37所述的方法,其中远程通信设备是另一PDA。
56.如权利要求37所述的方法,其中远程通信设备是桌面计算机。
57.如权利要求37所述的方法,其中远程通信设备是在线馈送网关。
58.如权利要求52所述的方法,其中可由PDA和物理远程通信设备编辑第一文件。
59.如权利要求53所述的方法,其中可由PDA和物理远程通信设备编辑第一文件。
60.如权利要求37所述的方法,还包括由PDA在协作期间同时与物理远程通信设备交换语音通信的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US33740401P | 2001-11-10 | 2001-11-10 | |
US60/337,404 | 2001-11-10 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1565105A true CN1565105A (zh) | 2005-01-12 |
Family
ID=23320420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA028196139A Pending CN1565105A (zh) | 2001-11-10 | 2002-11-06 | 手持无线会议技术 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20030208541A1 (zh) |
EP (1) | EP1442560A2 (zh) |
JP (1) | JP2005509960A (zh) |
KR (1) | KR20050043721A (zh) |
CN (1) | CN1565105A (zh) |
CA (1) | CA2460600A1 (zh) |
WO (1) | WO2003043301A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014029089A1 (en) * | 2012-08-22 | 2014-02-27 | Nokia Corporation | Method and apparatus for exchanging status updates while collaborating |
Families Citing this family (93)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8873730B2 (en) | 2001-02-27 | 2014-10-28 | Verizon Patent And Licensing Inc. | Method and apparatus for calendared communications flow control |
US8774380B2 (en) | 2001-02-27 | 2014-07-08 | Verizon Patent And Licensing Inc. | Methods and systems for call management with user intervention |
US8761363B2 (en) | 2001-02-27 | 2014-06-24 | Verizon Data Services Llc | Methods and systems for automatic forwarding of communications to a preferred device |
US8488766B2 (en) | 2001-02-27 | 2013-07-16 | Verizon Data Services Llc | Methods and systems for multiuser selective notification |
US8798251B2 (en) * | 2001-02-27 | 2014-08-05 | Verizon Data Services Llc | Methods and systems for computer enhanced conference calling |
US8488761B2 (en) | 2001-02-27 | 2013-07-16 | Verizon Data Services Llc | Methods and systems for a call log |
US8751571B2 (en) | 2001-02-27 | 2014-06-10 | Verizon Data Services Llc | Methods and systems for CPN triggered collaboration |
US8472606B2 (en) | 2001-02-27 | 2013-06-25 | Verizon Data Services Llc | Methods and systems for directory information lookup |
US6976017B1 (en) | 2001-02-27 | 2005-12-13 | Verizon Data Services Inc. | Method and apparatus for context based querying |
US8503650B2 (en) | 2001-02-27 | 2013-08-06 | Verizon Data Services Llc | Methods and systems for configuring and providing conference calls |
US8467502B2 (en) * | 2001-02-27 | 2013-06-18 | Verizon Data Services Llc | Interactive assistant for managing telephone communications |
US7912193B2 (en) | 2001-02-27 | 2011-03-22 | Verizon Data Services Llc | Methods and systems for call management with user intervention |
US8503639B2 (en) | 2001-02-27 | 2013-08-06 | Verizon Data Services Llc | Method and apparatus for adaptive message and call notification |
US8494135B2 (en) | 2001-02-27 | 2013-07-23 | Verizon Data Services Llc | Methods and systems for contact management |
US8472428B2 (en) | 2001-02-27 | 2013-06-25 | Verizon Data Services Llc | Methods and systems for line management |
US8750482B2 (en) | 2001-02-27 | 2014-06-10 | Verizon Data Services Llc | Methods and systems for preemptive rejection of calls |
US7903796B1 (en) | 2001-02-27 | 2011-03-08 | Verizon Data Services Llc | Method and apparatus for unified communication management via instant messaging |
US8761816B2 (en) | 2002-11-25 | 2014-06-24 | Telesector Resources Group, Inc. | Methods and systems for single number text messaging |
US6750897B1 (en) | 2001-08-16 | 2004-06-15 | Verizon Data Services Inc. | Systems and methods for implementing internet video conferencing using standard phone calls |
US7127271B1 (en) | 2001-10-18 | 2006-10-24 | Iwao Fujisaki | Communication device |
US7107081B1 (en) | 2001-10-18 | 2006-09-12 | Iwao Fujisaki | Communication device |
US7466992B1 (en) | 2001-10-18 | 2008-12-16 | Iwao Fujisaki | Communication device |
US8676897B1 (en) * | 2001-11-30 | 2014-03-18 | Hewlett-Packard Development Company, L.P. | N-way interactive communication using hand held computers |
US20030114147A1 (en) * | 2001-12-13 | 2003-06-19 | Goss Stephen C. | Hold service on wireless calls |
US9392120B2 (en) | 2002-02-27 | 2016-07-12 | Verizon Patent And Licensing Inc. | Methods and systems for call management with user intervention |
US7299264B2 (en) * | 2002-05-07 | 2007-11-20 | Hewlett-Packard Development Company, L.P. | System and method for monitoring a connection between a server and a passive client device |
US20040054757A1 (en) * | 2002-09-14 | 2004-03-18 | Akinobu Ueda | System for remote control of computer resources from embedded handheld devices |
US8229512B1 (en) | 2003-02-08 | 2012-07-24 | Iwao Fujisaki | Communication device |
US8241128B1 (en) | 2003-04-03 | 2012-08-14 | Iwao Fujisaki | Communication device |
DE10329244A1 (de) * | 2003-06-24 | 2005-01-13 | Deutsche Telekom Ag | Verfahren und System zur Kommunikation zwischen Konferenzteilnehmern |
US8090402B1 (en) | 2003-09-26 | 2012-01-03 | Iwao Fujisaki | Communication device |
US8121635B1 (en) | 2003-11-22 | 2012-02-21 | Iwao Fujisaki | Communication device |
CN1630246B (zh) * | 2003-12-15 | 2011-04-27 | 联想(北京)有限公司 | 一种远程桌面获取数据的实现方法 |
FI117150B (fi) | 2004-02-26 | 2006-06-30 | Nokia Corp | Menetelmä ja sovellus kokouspuhelun järjestämiseksi solukkoverkossa sekä solukkoverkossa toimiva päätelaite |
US20050198124A1 (en) * | 2004-03-03 | 2005-09-08 | Mccarthy Shawn J. | System and method for embedded instant messaging collaboration |
US8041348B1 (en) | 2004-03-23 | 2011-10-18 | Iwao Fujisaki | Communication device |
JP2005346202A (ja) * | 2004-05-31 | 2005-12-15 | Toshiba Corp | 電子機器 |
US7584244B2 (en) | 2004-06-04 | 2009-09-01 | Nokia Corporation | System, method and computer program product for providing content to a terminal |
US20100299736A1 (en) * | 2004-09-01 | 2010-11-25 | Nortel Networks Limited | Automated session admission |
US20060167997A1 (en) * | 2005-01-27 | 2006-07-27 | Nokia Corporation | System, method and computer program product for establishing a conference session and synchronously rendering content during the same |
US7266383B2 (en) * | 2005-02-14 | 2007-09-04 | Scenera Technologies, Llc | Group interaction modes for mobile devices |
US8811586B2 (en) | 2005-02-17 | 2014-08-19 | Nokia Corporation | Method and application for arranging a conference call in a cellular network and a mobile terminal operating in a cellular network |
KR101174525B1 (ko) | 2005-03-08 | 2012-08-16 | 삼성전자주식회사 | 푸쉬투토크 오버 셀룰러 네트워크의 응답 클라이언트 식별방법 및 그 시스템 |
JP4273526B2 (ja) * | 2005-03-30 | 2009-06-03 | 日本電気株式会社 | サービスシステム、情報制御装置および情報制御方法 |
KR100715144B1 (ko) * | 2005-04-06 | 2007-05-10 | (주)파도시스템 | Pda 단말 간의 네트워크 시스템 구성 방법 |
US8208954B1 (en) | 2005-04-08 | 2012-06-26 | Iwao Fujisaki | Communication device |
US20070005694A1 (en) * | 2005-06-30 | 2007-01-04 | Pando Networks, Inc. | System and method for distributed multi-media production, sharing and low-cost mass publication |
US7925701B2 (en) * | 2005-07-25 | 2011-04-12 | Sony Ericsson Mobile Communications Ab | Mobile communication terminal supporting information sharing |
US20070050448A1 (en) * | 2005-08-25 | 2007-03-01 | Polycom, Inc. | Method and system for information collaboration over an IP network via handheld wireless communication devices |
US20070218885A1 (en) * | 2006-03-16 | 2007-09-20 | Lucent Technologies Inc. | Method and apparatus for remote generation of a conference call using SMS or email messages |
US7945612B2 (en) * | 2006-03-28 | 2011-05-17 | Microsoft Corporation | Aggregating user presence across multiple endpoints |
US20070239869A1 (en) * | 2006-03-28 | 2007-10-11 | Microsoft Corporation | User interface for user presence aggregated across multiple endpoints |
US9241038B2 (en) * | 2006-05-23 | 2016-01-19 | Microsoft Technology Licensing, Llc | User presence aggregation at a server |
US20080005233A1 (en) * | 2006-06-29 | 2008-01-03 | Yigang Cai | Online conferencing systems for sharing documents |
KR100848289B1 (ko) * | 2007-01-05 | 2008-10-10 | 엠피에스리서치(주) | 무선망에서 피투피 기반의 확장성 있는 실시간 이동그룹통신 서비스 관리 시스템 및 방법 |
US7890089B1 (en) | 2007-05-03 | 2011-02-15 | Iwao Fujisaki | Communication device |
US8559983B1 (en) | 2007-05-03 | 2013-10-15 | Iwao Fujisaki | Communication device |
US8782527B2 (en) | 2007-06-27 | 2014-07-15 | Microsoft Corp. | Collaborative phone-based file exchange |
US20090016496A1 (en) * | 2007-07-14 | 2009-01-15 | Bulmer Michael W | Communication system |
US8676273B1 (en) | 2007-08-24 | 2014-03-18 | Iwao Fujisaki | Communication device |
US9154552B2 (en) | 2007-09-06 | 2015-10-06 | Microsoft Technology Licensing, Llc | Method and apparatus for cooperative file distribution with receiver determined quality of services |
US9178957B2 (en) * | 2007-09-27 | 2015-11-03 | Adobe Systems Incorporated | Application and data agnostic collaboration services |
US8639214B1 (en) | 2007-10-26 | 2014-01-28 | Iwao Fujisaki | Communication device |
US8472935B1 (en) | 2007-10-29 | 2013-06-25 | Iwao Fujisaki | Communication device |
US9420014B2 (en) | 2007-11-15 | 2016-08-16 | Adobe Systems Incorporated | Saving state of a collaborative session in an editable format |
US8744720B1 (en) | 2007-12-27 | 2014-06-03 | Iwao Fujisaki | Inter-vehicle middle point maintaining implementer |
US8543157B1 (en) | 2008-05-09 | 2013-09-24 | Iwao Fujisaki | Communication device which notifies its pin-point location or geographic area in accordance with user selection |
US8340726B1 (en) | 2008-06-30 | 2012-12-25 | Iwao Fujisaki | Communication device |
US8452307B1 (en) | 2008-07-02 | 2013-05-28 | Iwao Fujisaki | Communication device |
US7945622B1 (en) | 2008-10-01 | 2011-05-17 | Adobe Systems Incorporated | User-aware collaboration playback and recording |
US9294291B2 (en) | 2008-11-12 | 2016-03-22 | Adobe Systems Incorporated | Adaptive connectivity in network-based collaboration |
EP2528303B1 (en) * | 2009-04-08 | 2014-07-02 | BlackBerry Limited | System and method for sharing data in a group of mobile devices |
US20100262924A1 (en) * | 2009-04-08 | 2010-10-14 | Kalu Onuka Kalu | System and method for linking items to a group |
US9065868B2 (en) * | 2009-04-08 | 2015-06-23 | Blackberry Limited | System and method for sharing data in a group of mobile devices |
US9917702B2 (en) * | 2009-04-08 | 2018-03-13 | Blackberry Limited | System and method for managing items in a list shared by a group of mobile devices |
US8254890B2 (en) | 2009-04-08 | 2012-08-28 | Research In Motion Limited | System and method for managing items in a list shared by a group of mobile devices |
CN102035877A (zh) * | 2009-10-07 | 2011-04-27 | 捷讯研究有限公司 | 管理由一组移动设备共享的列表中的项的系统和方法 |
US20110252384A1 (en) * | 2010-04-09 | 2011-10-13 | Bank Of America Corporation | Wireless display application |
US9002935B1 (en) | 2010-05-04 | 2015-04-07 | Google Inc. | Copying document content through a hosted system |
US8996985B1 (en) | 2011-03-16 | 2015-03-31 | Google Inc. | Online document processing service for displaying comments |
US10075533B2 (en) | 2011-09-15 | 2018-09-11 | Paypal, Inc. | Method and apparatus for transferring the state of content using short codes |
AU2015275329B2 (en) * | 2011-12-29 | 2017-01-19 | Ebay Inc. | System for transferring states between electronic devices |
US8819798B2 (en) * | 2011-12-29 | 2014-08-26 | Ebay Inc. | System and method for transferring states between electronic devices |
US8965349B2 (en) * | 2012-01-26 | 2015-02-24 | Apple Inc. | Interactive application sharing |
US10187433B2 (en) | 2013-03-15 | 2019-01-22 | Swyme Ip Bv | Methods and systems for dynamic adjustment of session parameters for effective video collaboration among heterogenous devices |
US11716392B2 (en) * | 2013-04-24 | 2023-08-01 | Blackberry Limited | Updating an application at a second device based on received user input at a first device |
US9313021B2 (en) * | 2013-08-29 | 2016-04-12 | National Chiao Tung University | Secret communication method with self-authentication capability |
US20150163067A1 (en) * | 2013-12-09 | 2015-06-11 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd | Control of computing device use during conferences |
US20160291915A1 (en) * | 2015-03-31 | 2016-10-06 | Airwatch Llc | Display sharing sessions between devices |
US9794306B2 (en) | 2015-04-30 | 2017-10-17 | At&T Intellectual Property I, L.P. | Apparatus and method for providing a computer supported collaborative work environment |
US10819759B2 (en) | 2015-04-30 | 2020-10-27 | At&T Intellectual Property I, L.P. | Apparatus and method for managing events in a computer supported collaborative work environment |
CN105872953A (zh) * | 2016-03-29 | 2016-08-17 | 乐视控股(北京)有限公司 | 用户设备之间通信的方法以及用户设备 |
US10904038B1 (en) * | 2019-11-21 | 2021-01-26 | Verizon Patent And Licensing Inc. | Micro-adapter architecture for cloud native gateway device |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US37366A (en) * | 1863-01-06 | Improved mode of attaching chimneys to lamps | ||
US4572509A (en) * | 1982-09-30 | 1986-02-25 | Sitrick David H | Video game network |
US5649104A (en) * | 1993-03-19 | 1997-07-15 | Ncr Corporation | System for allowing user of any computer to draw image over that generated by the host computer and replicating the drawn image to other computers |
JPH0879391A (ja) * | 1994-09-02 | 1996-03-22 | Fujitsu Ltd | 電子会議システム |
US5618045A (en) * | 1995-02-08 | 1997-04-08 | Kagan; Michael | Interactive multiple player game system and method of playing a game between at least two players |
US5748618A (en) * | 1995-09-29 | 1998-05-05 | Intel Corporation | Multilevel arbitration in a data conference |
US6343313B1 (en) * | 1996-03-26 | 2002-01-29 | Pixion, Inc. | Computer conferencing system with real-time multipoint, multi-speed, multi-stream scalability |
US6332153B1 (en) * | 1996-07-31 | 2001-12-18 | Vocaltec Communications Ltd. | Apparatus and method for multi-station conferencing |
US6016478A (en) * | 1996-08-13 | 2000-01-18 | Starfish Software, Inc. | Scheduling system with methods for peer-to-peer scheduling of remote users |
US5848415A (en) * | 1996-12-18 | 1998-12-08 | Unisys Corporation | Selective multiple protocol transport and dynamic format conversion in a multi-user network |
US6699187B2 (en) * | 1997-03-27 | 2004-03-02 | Medtronic, Inc. | System and method for providing remote expert communications and video capabilities for use during a medical procedure |
US6363352B1 (en) * | 1998-11-13 | 2002-03-26 | Microsoft Corporation | Automatic scheduling and formation of a virtual meeting over a computer network |
US6636888B1 (en) * | 1999-06-15 | 2003-10-21 | Microsoft Corporation | Scheduling presentation broadcasts in an integrated network environment |
JP3654797B2 (ja) * | 1999-07-29 | 2005-06-02 | 富士通株式会社 | 伝言システム及び伝言装置 |
US6434599B1 (en) * | 1999-09-30 | 2002-08-13 | Xoucin, Inc. | Method and apparatus for on-line chatting |
US6625258B1 (en) * | 1999-12-27 | 2003-09-23 | Nortel Networks Ltd | System and method for providing unified communication services support |
SG99886A1 (en) * | 2000-02-24 | 2003-11-27 | Ibm | System and method for collaborative multi-device web browsing |
US6732103B1 (en) * | 2001-05-08 | 2004-05-04 | Worldcom, Inc. | Systems and methods for generating and transmitting event information and follow-up event coordination information |
US6674459B2 (en) * | 2001-10-24 | 2004-01-06 | Microsoft Corporation | Network conference recording system and method including post-conference processing |
-
2002
- 2002-11-05 US US10/288,005 patent/US20030208541A1/en not_active Abandoned
- 2002-11-06 KR KR1020047004192A patent/KR20050043721A/ko not_active Application Discontinuation
- 2002-11-06 EP EP02789478A patent/EP1442560A2/en not_active Withdrawn
- 2002-11-06 CA CA002460600A patent/CA2460600A1/en not_active Abandoned
- 2002-11-06 JP JP2003545005A patent/JP2005509960A/ja active Pending
- 2002-11-06 WO PCT/US2002/035673 patent/WO2003043301A2/en not_active Application Discontinuation
- 2002-11-06 CN CNA028196139A patent/CN1565105A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014029089A1 (en) * | 2012-08-22 | 2014-02-27 | Nokia Corporation | Method and apparatus for exchanging status updates while collaborating |
US9787616B2 (en) | 2012-08-22 | 2017-10-10 | Nokia Technologies Oy | Method and apparatus for exchanging status updates while collaborating |
Also Published As
Publication number | Publication date |
---|---|
EP1442560A2 (en) | 2004-08-04 |
JP2005509960A (ja) | 2005-04-14 |
KR20050043721A (ko) | 2005-05-11 |
WO2003043301A2 (en) | 2003-05-22 |
CA2460600A1 (en) | 2003-05-22 |
WO2003043301A3 (en) | 2003-08-21 |
US20030208541A1 (en) | 2003-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1565105A (zh) | 手持无线会议技术 | |
CN1201533C (zh) | 因特网电话网络系统、网络访问方法及通话装置适配器 | |
CN1263302C (zh) | 远程会议系统和远程会议支持方法 | |
CN1199417C (zh) | 多业务通信系统及方法 | |
CN1172506C (zh) | 通过互联网传送多媒体数据的管理方法及实施该方法所用的芯片卡 | |
CN1794705A (zh) | 即时消息用户使用其它即时消息系统聊天室的方法及系统 | |
CN1575466A (zh) | 存在管理的实现 | |
CN1655553A (zh) | 便于第三方呼叫和设备控制的系统和方法 | |
CN1526246A (zh) | 移动即时消息收发和存在服务 | |
CN1890944A (zh) | 用于web服务中介体的端口类型不可知的代理支持 | |
CN1507725A (zh) | 因特网通信系统、因特网通信方法、对话管理服务器、通信适配器、通信中继服务器及程序 | |
CN1615646A (zh) | 通信装置 | |
CN1729672A (zh) | 用于分布式多媒体应用的能力和服务质量协商和会话建立的软件体系结构 | |
CN1510875A (zh) | 用于控制信息处理设备的系统和方法 | |
CN1816053A (zh) | 基于会话初始化协议的流媒体直播p2p网络方法 | |
CN1801814A (zh) | 一种离线消息发送和接收方法 | |
CN1819671A (zh) | 关于按键通话发言权和队列信息的方法及其相关装置 | |
CN1968251A (zh) | 数据通信装置 | |
CN1770805A (zh) | 计算机辅助管理电话会议的方法以及电话会议服务器装置 | |
CN1653790A (zh) | 应用程序接口 | |
CN1735061A (zh) | 通信系统、电子设备及其控制方法、信息提供装置和方法 | |
CN1656482A (zh) | 在使用用户档案web门户的电信网中用于服务和应用个性化的方法和装置 | |
CN1306720A (zh) | 虚拟电话通用可配置接口 | |
CN1832414A (zh) | 提供多个群组通信业务的方法、群组通信业务系统及群组通信业务服务器单元 | |
CN1507202A (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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |