2.6.1 应用层协议的设计
白板系统用IP广播方式实现应用共享。当任一与会用户进行了某一操作时,根据操作类型,按一定的格式(协议)封装本次操作数据,发送给其他用户。其他用户接收到数据后,按协议解释数据,执行相同的操作,实现共享。
协议用字符(Char)数据打包,基本格式如下:
协议类型+具体数据+结束符
全部协议共分为4类:
·基本图形、文本编辑:绘制图形,编辑文本,修改图形。
·页面管理:白板最多支持10个页面,本协议管理增页、翻页。
·会议信息:发布与会用户信息。
2.6.1.1 文本、图形编辑协议
(1)文本协议格式:‘01‘+页面+x、y坐标+字体+字符串+IP地址+结尾符。
其中,‘01‘是文本协议标识,页面标识白板页,(x,y)坐标标识文本在窗口中的位置,字符串是要传输的文本,IP地址是发送者的IP地址,接收者可以根据IP地址知道本文本的发出人,其他是字体信息。接收端根据字符串中的回车符(0x0D)换行,调节文本输出格式。
(2)图形协议格式:协议标识+页面+坐标信息+线形、填充信息+IP地址+结尾符。
图形包括直线、徒手画、矩形、椭圆等基本图形,需要的主要信息是图形的坐标和线形、填充信息。
另外一些操作本质上和图形绘制相同,如橡皮擦实际上就是颜色为背景色的徒手画,剪(Cut)操作实际上是绘制边框和填充都是背景色的矩形。
2.6.1.2 会议信息协议格式
白板服务器根据用户的加入、退出维护用户信息列表,同时向客户发送这些信息,让用户同步更新。
‘21‘+用户ID、IP和简介+结尾符
‘22‘+用户ID+IP+结尾符
当有新用户加入时,服务器向所有客户发送新用户的信息(协议标识为‘21‘)。同时,服务器向新用户发送所有原客户的信息。客户完成会议信息更新。
当有客户退出,服务器向所有客户发送‘22‘标识的信息,客户根据IP删除这个用户的信息。
2.6.2 多用户并行操作中的冲突问题
CSCW支持多用户协同工作,必然会发生多用户的并发操作,所以冲突就不可避免。再加上多机之间用网络传输共享信息,由于网络时延和传输的不可靠性以及多用户协同之间人的因素,又给CSCW的冲突添加了新的特征。
白板(或其他CSCW)系统中,协作感知是多用户进行协同工作的基础,每个用户对共享对象的操作应立即被其他参与协同工作的用户所感知。另外,白板系统中,计算机的主要作用是支持人与人的交互,人机交互是人人交互的中介,所以白板系统比传统系统涉及更多人的问题。在白板系统中采取何种并发控制机制和它在接口中的表现形式,都会影响到用户对接口质量的评价和用户的实际工作方式。
并发控制是CSCW系统的关键技术之一,一般有以下一些方法:
(1)加锁法:加锁法是保证数据一致性的常用手段,它提供对共享数据的加锁(lock)和解锁(unlock),用于控制用户的并发操作。这种方法设计和实现较简单,但它用于CSCW系统存在一定缺陷。首先是申请和释放的开销会影响用户的快速反馈,并且系统难于确定何时申请或释放锁。其次,锁的粒度(Granularity)难于确定,过小会加重系统负担,过大则影响用户操作的并行性。
(2)集中控制法:采用一个集中控制进程,管理用户对共享对象的操作。所有操作首先发送到集中控制进程,再由它向其他用户分发。它能保证系统操作严格有序,但集中控制进程会成为系统的瓶颈,而且操作必须经过集中控制进程的分发使响应速度变慢。并且由于和服务器的通信,会消耗有限的网络带宽。
(3)可逆执行(UNDO/REDO)操作立即执行,但与操作有关的信息被保存起来。在全局时序的作用下,当几个操作冲突时,其中的一个或几个操作被取消并按预定的次序重做一遍,有很好的响应性能,但全局时序难于实现。且一旦出现REDO的情况,系统开销太大。
(4)操作转换是依赖检测的变形,即冲突自动消除而不需要手工干预。用户操作立刻在本地执行,而且把操作与状态向量一起广播给其他用户。其他用户收到后,把状态向量与本地状态向量比较,决定直接执行(无冲突)或进行转化(有冲突)。基于有服务器的中心控制法和UNDO/REDO,提出了一种冲突消解算法。在该算法中,事件的逻辑顺序由time(全局时间)和sequence(顺序号)共同决定。这个算法逻辑清晰,但全局时间实现起来比较困难。而且,sequence由事件的生成节点产生,在全局上不一定有意义,有可能导致各用户之间界面不一致。实际上,CSCW系统真正关心的不是严格按时间顺序来执行事件,而是操作结果的不冲突性。
在视频会议系统开发中,白板系统的同步控制可以采用集中控制法和时间戳相结合的方法。其系统结构如图2-7所示。当用户进行操作后,首先不改变本地结果,而是把操作和时间戳打包发到控制中心模块,控制中心维护一个缓冲区,按时间戳排列接收到的数据,再周期性地广播发生时间早的操作,让所有用户更新。
图2-7 集中控制模式
2.6.3 协同感知技术
当人们在共享物理空间内进行面对面交谈时,人们可以通过视觉、听觉和触觉等感觉通道以及人的手、嘴、眼、头和足等运动通道的互补特性达到相互沟通的目的,人们可以方便而自然地了解到其他人的位置、动作和意图,从而提高协同工作的效率。而CSCW系统提供了虚拟的工作空间,使远程用户协同工作成为可能。但虚拟空间中的交互和感知远不如在实际物理空间中方便和有效。用户常常希望系统能通过它提供的用户界面,为群体成员提供一个自然的、可与直接感觉和运动通道相媲美的多感知通道。一般的解决方法如下:
(1)带用户名多光标:当用户在本地进行鼠标操作时,鼠标位置不仅能显示在本地共享空间上,同时也能显示在其他协作者的共享空间上。
(2)信息可变的光标:由于用户有文本编辑、图形、橡皮等多种操作类型,为体现用户当前的操作类型,针对特定操作类型来用特定光标。
(3)颜色标示法:为了标记特定对象的生成人,可以采用颜色标示法,即由系统对每个用户分配一种特定颜色,每个协作者的行为结果以分配给该用户的颜色表现在共享空间内。
考虑到网络带宽问题,白板实际上只传输用户的处理结果,如用户画一条直线,只关心直线的起点和终点坐标及直线的宽度、颜色等特性,而不管直线绘制的过程,所以不能使用多光标技术。而颜色标示法需要限制用户所能使用的颜色种类,造成用户使用不自然。
各个白板客户都拥有当前所有参加会议用户的数据,所以可以在打包数据时附加上操作用户的IP地址,其他用户接收到这些数据后,根据IP地址再查找出操作用户ID,在操作结果上附加用户ID,通过这种方式可以达到远程感知的本地化。若远程用户觉得这种显示方式影响自己的观察,可以擦除这些显示ID。
这种方式以较简单的办法实现了简单的协同感知,既不额外增加网络带宽需求,还可以保持自然地协同工作。
2.6.4 大数据量位图的网络传输
上述白板系统上所有对象以位图方式显示,所以编辑图像必须对位图进行操作,在粘贴图像时,大数据量位图的快速、准确传输成为一个不可避免的问题。由于UDP的非面向连接性和低可靠性,在传输位图时,短时间里的大数据量使网络在这个短时间段内网络带宽需求极高,从而导致UDP数据包的大量丢失,不能保证图像传输的可靠性。而TCP协议虽然可保证在传输层的可靠性,但不能保证在应用层的可靠性。当网络主机的处理速度跟不上要求时,用TCP传输图像会导致接收主机来不及处理接收到的所有包,从而产生图像质量下降的问题。所以,用TCP传输并在应用层用回应/重传机制保证可靠性是白板系统位图传输的一个解决办法。
为了不让位图传输干扰其他传输(数据量相对都很小),位图传输用另一套TCP连接传输。其结构框图如图2-8所示。
图2-8 图像传输Socket结构图
算法如下:
(1)当白板客户需要粘贴图像时,首先向服务器发出请求。
(2)白板服务器接收到粘贴请求后:若发现粘贴锁处于开状态,关锁并向粘贴请求客户发出允许粘贴指令,向其他客户发出图像传输指令;若粘贴锁处于关状态,则向粘贴请求客户发出不允许粘贴指令。
(3)若粘贴请求客户接收到白板服务器的不允许粘贴指令,则告诉用户原因,让用户稍后再试;若接收到的是允许粘贴指令,则打开图像传输的服务器Socket(SSocket),等待其他客户的连接请求,同时初始化粘贴图像缓冲区。
(4)当(其他)客户接收到图像传输指令后,初始化图像传输客户Socket(CSocket),并向图像传输服务器Socket发出连接请求。
(5)建立图像传输连接,并开始传输图像。在图像传输中,每次由图像传输服务器向每个连接客户发送一包数据并附上包序号,然后等待回应信息并开始计时。图像传输客户接收到数据后,分离序号并组装数据,向图像传输服务器发送回应信息。若图像传输服务器在计时结束后,仍然没接收到所有回应,则重发数据,一共3次。
(6)图像数据传输完毕后,由图像传输服务器发送完成指令并断开连接。同时向白板服务器发送开粘贴锁指令,由白板服务器开粘贴锁。图像传输客户接收到图像传输完毕指令后,按组装数据生成图像流,并粘贴到合适位置。
上述算法基本上能充分利用网络带宽,并有很高的可靠性,适合于白板中图像的传输。
2.6.5 系统框架结构
协同设计的实现方法可分为集中式和分布式两种。集中式方法一般采用客户机/服务器(C/S)逻辑模式,即某些功能位于某台服务器上,其他客户机站点通过网络获取该项服务。其特点是所有信息相对一致,但网络负担较重。分布式方法采用的是对等模型(peer to peer mode)。它指的是各站点的地位平等,功能是分布的,只有需要协同的数据和信息才通过网络传输,从而减轻了网络负担。其特点是保持数据的一致性比较困难,但适用性广,适合于大范围分布的群组工作方式。
结合集中式和分布式的特点,系统采用客户机/应用服务器/数据库服务器三层结构模式,即将共享信息置于服务器上,在客户机上保留常用数据的一个副本。当某个用户进行一次操作后,客户机并不立即更新本地数据,而是先把修改请求传递给服务器,服务器更新全局数据后再向相应的客户机发出修改通知,各客户机接收到修改通知后才更新本地数据。因为服务器与客户机之间传送的只是需要更新的数据及简单的操作指令,这样既可减少网络信息流量,又易于维护数据的一致性。系统的结构如图2-9所示,各模块功能如下:
图2-9 系统的框架结构图
(1)白板应用层:白板应用层主要负责接受用户操作指令和来自消息表示层的信息,完成对本地用户接口及数据副本的更新,实现对象的绘制、编辑、删除及对象的同步加锁和解锁。
(2)消息表示层:因为本系统中客户机与应用服务器之间采用基于事件驱动的消息通信机制,所以在消息表示层上需要定义适合于本系统的网络通信协议,主要协议的格式如下:
①文本协议格式:“TEXT”+点坐标+字符串+字体+颜色+用户名+结束符。其中,点坐标标识文本在窗口中的位置,字符串是要传输的文本,用户名是发送者的名称,其他是字体信息。
②图形协议格式:操作指令+坐标信息+线宽+颜色+用户名+结束符。图形操作指令包括绘直线、曲线、矩形、椭圆等基本图形,需要的主要信息是图形的坐标和线形、填充信息。
③用户管理协议格式:服务器根据用户的登录、退出更新用户列表,同时向其他客户发送这些信息,让用户保持同步更新。
“LOG”+用户名+结束符
“QUIT”+用户名+结束符
消息表示层是实现协同感知(Collaboration Awareness)的核心模块,主要负责接收应用层的操作指令,并将其封装成为特定的通信协议对象,然后提交给通信管理层进行网络传输以完成群体感知处理;同时接收来自通信管理层的协同消息,并翻译成相应的用户操作指令,传输给白板应用层以完成群体表现处理。这样,设计者既可以让合作者感知到自身的设计过程,又可以感知到合作者的设计情况,最终达到群体感知。
(2)通信管理层:通信管理主要完成客户机与应用服务器之间的通信事务,包括用户请求的响应、消息的接收、分析处理和定向发送。服务器端消息的发送方式主要为广播形式。
(3)协同管理层:协同管理层是整个系统的核心,驻留在应用服务器上,完成用户身份的验证、职权及共享数据管理。
(4)XML转换层:因为XML是一个与平台、语言和厂商无关的统一数据格式标准,且具有开放性、可扩展性、自描述性等特点,所以非常适合于表示资料、概念和上下文,并能方便地被不同使用者在不同环境下重复使用,所以本系统在物理数据库基础上加入XML转换层。XML转换层是实现数据共享的核心,驻留在应用服务器的顶层。这种以XML文件作为数据交流基础的系统结构,给数据带来了良好的表现形式和交换格式,不但为管理者提供了可以直接阅读和编辑XML数据的功能,而且还解决了异构系统间数据交换等问题,实现了数据的统一接口,很好地弥补了关系数据库技术在这些方面的不足。
2.6.6 电子白板系统的优点
(1)支持单用户设计系统的基本功能:协同设计系统首先应具有模型设计的基本功能,而这些正是单用户设计系统所具有的功能。由于大多数用户已经习惯于单用户系统,因此在系统的设计过程中充分考虑了个体工作方式与群体工作方式的无缝性(Seamlessness)和平滑性(Continuity)。
(2)支持多用户协同设计:这是协同设计系统区别于单用户设计系统的地方,即系统可根据用户需要,提供相应的协同设计环境,以支持多学科领域设计者共同完成设计任务。系统以分布式为基础,以信息共享和协作感知为核心,支持用户协作和操作协作。
(3)支持概念设计过程:该电子白板系统能够描述全部的概念设计活动(从需求分析到获得概念产品),对概念设计过程中活动逻辑关系和时序进行了描述、规划与设计,且有助于设计者创建、评价和选择他们的创新设计概念。
(4)支持设计信息捕获、共享及重用:系统获取并结构化概念设计数据和知识,最终用关系数据库管理这些设计信息,这样可以解释设计决定是如何做出来的以及为什么这样决定,预测设计变化的影响,支持设计组成员评价、改善设计,且有利于设计知识的共享及重用。
(5)具有良好的开放性:系统支持文本、图片、DXF等格式文件,为设计者表达他们的创新思想提供了多种工具和形式;系统让历史数据以XML的形式在网络上传输,解决了异构数据源的问题。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。