首页 理论教育 基础信息设置7个模块操作流程

基础信息设置7个模块操作流程

时间:2022-02-12 理论教育 版权反馈
【摘要】:CSCW系统提供了虚拟的工作空间,使远程用户协同工作成为可能。协同控制是CSCW系统的重要特性。CSCW支持多用户协同工作,则不可避免地要发生多用户的并发操作,也带来了多用户间的协作冲突。电子白板系统并发控制的特点和它的一般需求如下:响应性:在CSCW中响应时间一般划分为本地响应时间和通告时间。

9.6.1 系统中的感知技术

感知(Awareness)在协同系统中是指信息的通告,在共享电子白板系统中是指一个用户的操作能被其他用户了解的能力。由于共享电子白板要支持不同地域的用户共享虚拟的工作空间,而用户间不能通过对话、手势交流等物理空间的感知手段,如果用户间缺乏足够的相互感知的能力,一个用户的工作就可能被另一个用户忽视甚至破坏,所以要向共享虚拟空间的用户提供一些感知服务。感知功能可有效地模拟物理空间的类似感知途径,提高虚拟会议的直观生动性。

CSCW系统提供了虚拟的工作空间,使远程用户协同工作成为可能。但虚拟空间中的交互感知远不如在实际物理空间中方便和有效。用户常常希望系统能通过它提供的用户界面,为群体成员提供一个自然、可与直接感觉和运动通道相媲美的多感知通道。由于CSCW系统与传统的计算机应用系统相比,它增加了人—人交互这一工作模式。因此,如何为CSCW系统设计一个支持人—人交互的用户界面,以及该界面的好坏直接决定了该系统能否为人们所接受,能否广泛地推广使用。因此,在为CSCW系统设计用户界面时,必须以用户对界面的实际需求为出发点,使用户界面的外在形式和内部机制能符合群体交互的需求,即设计以人为中心的用户界面。

在网络环境中进行协同工作的难度远大于在会议室中面对面讨论问题时的难度,为了更好地进行协同工作,协作者需要知道同组内其他用户的存在、状态及行为,这种群体感知能力是CSCW系统区别于非协同系统的显著标志之一。多用户共享工作窗口,为了协调多用户操作,必须使用户感知当前的操作者及操作类型。在传统的PC环境下的白板系统中,一般的采用的感知技术有远程指针、带用户名多光标、信息可变光标、颜色标识法等等。

在MWBS中,由于移动设备的特殊性,不可能采用传统PC环境下的光标感知的方法,电子白板系统所采取的感知技术通常有:

◣对会议成员的登录/退出情况的感知:通过在线用户列表来完成这一功能。当成员加入会议时,在线列表显示加入会议的所有用户的名称。

◣对会议主持者的感知:发起会议的主席始终显示在会议成员的最前列,主席对会议具有最高控制权限。

◣对用户操作的感知:将当前操作者突出显示于一个特定位置,以显示当前操作是由哪个用户来进行的。

通过上述感知服务,可以了解其他用户的操作区域、正在进行的操作和全局分布情况,有利于用户对会议全局的掌控。

9.6.2 系统中的协同控制

多用户为完成同一任务而分工协作时,协同控制往往是必不可少的。协同控制是CSCW系统的重要特性。协同的含义是向协同工作的用户提供共享环境,使用户感知同组内其他用户的存在以及他们的行为和状态,从而让用户知道工作的最新进展。协同控制就是控制管理多个用户的行为间存在的依赖关系。

9.6.2.1 迟到者问题

迟到者(Late comer)问题是指:当一个用户加入一个已经存在的协同过程时,用户如何获得以前的交互信息;或是当系统软、硬件发生故障时,用户被迫暂时退出,当再次加入时,如何在原来基础上进行工作空间的状态同步。解决迟到者问题的要求有:

(1)一致性:迟到者应该能获得与其他用户相同的系统状态;

(2)健壮性:当某一个客户端发生问题时不能影响其他用户;

(3)低网络负载:只传输必需的数据。

在传统的PC环境下的解决方案通常有两种:一种是当新用户加入时,把目前绘制的图形按位图格式传送给用户;另一种方法是采用操作日志,记录下用户的每一个操作,在用户加入后,把日志传给新用户。前者处理简单,但传送的数据量很大,响应慢;后者传输时需消耗大量的内存。由此可见,这两种方法都不适用于移动环境下的资源有限的移动终端设备。

系统采取的方案是:通过对传递到各个通信Agent的信息进行串行化的方法来避免发生同步不完整的情况,将所有消息对象都序列化后发送给迟到的用户,迟到的用户在接收到该序列流后,进行反序列化以重现迟到前的白板信息(如图9-11所示)。当协同管理Agent判别到有新的用户加入时,消息管理Agent会自动判断该用户的类型并给此用户发送信息。这种方法不会增加系统的开销,也不会给系统增加延迟,其他用户在服务器给迟到者传输历史信息时发出的操作将按照正确的顺序在包括迟到者在内的各个客户端得到执行,更适用于MWBS。

图9-11 迟到者问题解决流程

9.6.2.2 发言者控制

在电子白板系统中,当某一用户执行操作时,所有的会议参与者的屏幕上都要体现它的执行结果。其特点为:

(1)同一时刻只有一个用户能够进行输入操作;

(2)对任意用户的响应应该满足及时性。

要满足以上的需求,应有一个机制来对各个用户的操作进行协作控制。系统采取了授权的方式,即发言权控制方式来实现协同机制。对输入的控制称为发言权控制,在共享工作空间中,控制协调多用户的发言权、维护数据的一致性至关重要。发言权传递机制意味着在任何时候,只有具有发言权的操作者才具有相应的操作权,其他用户只能等待。在协同工作中,每个用户都可以通过某一种方式获得发言权,也可以主动地放弃发言权。另外还应防止某个用户过于积极发言而拒绝放弃发言权,所以一般提供四种模式的发言权控制(见表9-1)。

表9-1 常见的发言权控制模式

9.6.3 系统中的并发控制问题

9.6.3.1 系统中并发控制的需求分析

CSCW支持多用户协同工作,则不可避免地要发生多用户的并发操作,也带来了多用户间的协作冲突。而终端用户间使用移动网络传输共享信息,由于移动网络本身不稳定,以及时延和传输的不可靠性,再加上多用户协同之间人的因素,又给CSCW的冲突添加了新的特征。在MWBS中采取何种并发控制机制会影响到用户对系统质量的评价和用户的实际工作方式。电子白板系统并发控制的特点和它的一般需求如下:

(1)响应性:在CSCW中响应时间一般划分为本地响应时间和通告时间。通告时间指所有其他参与协同工作用户响应该用户的操作而改变共享对象及其在多用户接口中的表现形式所需要的时间。系统要求接口对用户的动作快速响应。

(2)稳健性:除具有传统并发系统的对节点崩溃或通信失效等错误的恢复能力,CSCW还应该关注用户的某些特殊动作,如新增用户导致系统的重构。并发控制算法必须适应这种重构。

(3)良好的协作感知性:由于各用户的协作感知是进行协同工作的基础,CSCW系统对协作感知提出了很高的要求。在设计并发控制算法时必须充分考虑协作感知,以满足系统的要求。

(4)支持用户控制机制:在CSCW系统中,协作机制和协作规则的分离是一条重要的设计原则,目的是使用户的工作尽量少受事先定义好的规程限制,能更自然、灵活地进行工作。因此,CSCW系统的并发控制机制也应遵循机制和规则分离的原则,使用户能根据特定的协作环境动态地选择共享策略,提高协同工作的效率。

9.6.3.2 “半乐观锁”算法

通常来说,分布式系统常用的并发控制方法有如下几种:

(1)令牌机制:令牌机制假设系统只有一个令牌,用户操作前必须先获得令牌。任何时候最多只能有一个用户拥有令牌,更改共享资源,而其他用户需等待活动用户释放信息或者观察活动用户的操作结果。令牌机制控制简单但不灵活,令牌有可能丢失,而且采用令牌机制系统虽不会出现不一致的问题,但其不支持并发编辑,因此应用于协同合作的移动白板并不适合。

(2)可逆执行:即操作可以立即执行,但与操作有关的信息被保存起来,以便必要时取消操作,这种机制为所有的操作定义一个全程时序。当两个或多个有冲突的操作并发执行时,其中的一个或多个操作被取消,并按预定的顺序重做一遍。这种方法的响应性好,但是定义一个操作的全程时序比较困难。

(3)加锁法:保证数据一致性的常用手段,分为悲观锁和乐观锁。采用乐观锁是基于用户对共享对象的操作很少发生冲突,以申请锁的行为一般都会成功为前提。用户在申请后立即获得一个实验锁,不必知道其申请是否成功即可立即开始对共享对象进行操作。悲观锁必须确认加锁成功后才能执行其他操作。乐观锁的响应时间很短,而悲观锁不利于交互操作。

(4)集中控制法:采用一个集中控制进程,管理用户对共享对象的操作。所有操作首先发送到集中控制进程,再由它向其他用户分发。它能保证系统操作严格有序,保持一致,但集中控制进程会成为系统的瓶颈,而且操作必须经过集中控制进程的分发,这使得响应速度变慢,因此不适用网络带宽有限的移动网络环境。

(5)事务机制:所谓“事务”是指一个操作集,它被提交到所有站点。事务具有原子性、隔离性、一致性和持久性。事务机制就是同一时刻只允许用户处于活动状态,其他用户只能被动执行该操作集的操作。事务机制的原子性和隔离性使得事务的执行过程是不可见的,因此,不适用于实时CSCW环境下的交互使用。

通过对以上并发控制方法的比较,考虑到设计的MWBS适用于临时召开的紧急会议,系统定位为用户量较少的小规模系统,发生冲突的几率大大降低,因此选择“半乐观锁”方法作为并发控制方法。采用此方法比较适合于CSCW系统的要求,而且可以有效提高系统的响应速度,降低网络通信量。同时,计算简单、占用资源少,所以更适用于移动环境。

根据在等待请求的批准期间的行为方式,“乐观锁”被分为“半乐观锁”和“全乐观锁”两种。“全乐观锁”在等待期间继续执行其他操作,因此撤消时要撤消一系列操作,这样会使用户屏幕的内容恢复到过去某一时刻的显示内容,会使用户有不自然的感觉。“半乐观锁”在获批准前不再进行其他操作,故若请求得不到批准时仅需撤消一步操作即可。“半乐观锁”的算法描述如下:

收到用户操作请求消息A

将用户消息对象A添加到消息队列中

如果共享对象状况表的当前状态为“未被执行”

启动一个线程

修改“对象状况表”的状态为“使用中”

向所有客户端转发消息A

将对象状态表的状态改为“未被使用”

如果共享对象状态表的当前状态为“使用中”

向客户端回复“不同意”消息

……

9.6.4 系统中的Agent通信设计

Agent通信是一个重要的研究内容,建立在下层可靠的数据通信基础之上,它与下层的数据通信不同,Agent之间主要是交换含有语义的控制信息和知识。Agent之间通过进行交互和通信,来实现相互交换信息、进行协调或合作完成求解任务。传统的电子白板在使用过程中,由于各个用户之间需要交互,而信息共享又是由人的行为驱动,因而它们是无序的,也是不可预测的。从已有的电子白板模型看,它们都没有很好地解决信息共享的一致性和主动性问题。另外,对异步工作方式的支持不够,灵活性需要进一步提高。

Agent的通信可以划分为三个层次:会话层、通信语言层和传输层。传输层指实现数据信息传输的协议和有关机制,如TCP/IP、UDP等;ACL(Agent Communication Language)是处于传输层之上的一个逻辑层,即通信语言层,它是Agent用于表达关于通信内容的观点或态度并将其传输给会话方的一种媒介或工具。Agent可以就某特定问题提出请求、查询、声明、通知或做出回答等。会话层包括Agent用于管理整个会话过程的结构、规则和有关的会话策略等。ACL是Agent之间为了交换信息而使用的一种语言。Agent可以通过ACL来表达它对其生存环境的认识、观念、态度以及它的知识、能力、合作愿望和方式、情感、对问题空间的理解和定义等。

9.6.4.1 Agent间的通信机制

通信机制是Agent间相互感知、信息沟通的基本途径,它包括通信方式、通信原语和通信内容三部分。形式地表示为:

通信机制::=<通信方式>,<通信原语>,<通信内容>

通信方式::=<点—点通信>|<间接通信>|<约定通信>|<混合通信>

通信原语::=<公告>|<预约>|<请求>|<允诺>|<通知>|<拒绝>|<应答>

通信内容::=(<行为>,<源Agent>,<目标Agent>,<时间>,<原因>,<信息>)

通信方式分为点-点通信、间接通信、约定通信和混合通信四种,说明如下:

(1)点-点通信:源Agent和目标Agent间直接通信,只有双方知道,安全性好。

(2)间接通信:源Agent将公告信息发布到电子白板上,其他Agent都可获得发布的信息,这种方式适于广播与组播通信。

(3)约定通信:源Agent将消息发送到与目标Agent约定的地点(如某个公共数据区),实现间接通信。

(4)混合通信:在协同过程中,有时不仅要求组内成员间的点-点通信,还要求组间有选择地进行点-点通信,实现这一要求的途径是采用混合通信方式,其原理是将白板划分为一个公共数据区,供所有成员访问。通信内容反映了源Agent希望目标Agent做什么、何时服务、服务的理由及怎样服务等。

系统采用混合通信方式,其中客户端Agent和服务器Agent的通信示意图如图9-12所示。

图9-12 客户端Agent和服务器Agent的通信示意图

9.6.4.2 Agent间的通信协议

关于Agent通信语言的标准化问题,美国DARPA于1993年在其KSE(Knowledge Sharing Effort)计划中为解决大规模知识库的知识共享和再利用而提出了KQML语言。KQML是一个高级的、基于消息的通信语言和信息交换协议,采用了协议栈思想,其理论基础为speech-Act理论,认为言语是一种行为,反映一定意图,要产生一些动作。KQML不同于传输协议(TCP/IP、SMTP、IIOP等),也不同于内容语言(如MF、SQL等),它分为通信、消息和内容三个层次结构。KQML的三层结构如图9-13所示。

KQML的核心是预先定义的行为词(perforrmative)。采用ASCII字符串表示的行为词(perfromative)具有可读性好,方便程序分析(特别是对许多知识库程序),可以在许多内部应用消息机制的平台之间传递等优点。

图9-13 KQML的层次结构图

行为词形式化定义如下:

设计的电子白板系统将消息都包装为KQML消息。具体做法为:在“content”值域中封装用户在界面上输入的图形类别及图形的关键点(如线段的起止坐标)数据值即可。处理控制、管理服务,包括用户登录、退出、创建会议、暂停/恢复交谈、更新成员列表等,主要通过KQML中的performative值确定控制消息类型,实现时可利用KQML的保留语义动作。例如当我们要定义用户1的登录动作时,可定义动作“login”用来传输用户1的登录消息,如图9-14(a)所示。我们也可以根据需要自行定义新的语义动作,图9-14(b)表示用户Userl向服务器发出登录请求,用户密码为“123”。

图9-14 KQML消息实例

9.6.4.3 通信协议集的制定

电子白板系统的实质是典型的数据通信,要求有可靠的传输机制和通信协议集。Internet的标准通信协议是TCP/IP协议族,可在其基础上建立电子白板的应用层协议集。协议集的模型采用请求/应答模式与KQML模式相结合的方式,采用符合KQML规范的消息格式。

按功能划分,协议集中的协议分为两大类:数据传输协议和控制信息协议。数据传输协议包括文字传输和图形传输(各自又分为用户Agent发出和服务Agent发出两类),主要用于传输用户输入的文字和绘图数据。文字传输协议的KQML消息中只需在“content”值域中包含图形的关键点(如线段的起止点)坐标数组值。控制信息协议主要处理控制、管理任务,包括用户登录、创建交谈室、用户退出、暂停/恢复交谈、刷新交谈室或成员列表、Agent注册等,主要通过消息中的performative值确定控制消息类型。实现时,可利用KQML保留语义动作“tell”定义文字传输消息,如图9-14所示。

9.6.4.4 消息的数据结构设计

MWBS中,客户与服务器间的通信是通过一系列的白板消息来完成的。在移动网络条件的限制下,为了提高系统的响应时间,将共享对象复制到各用户本地端,各用户对共享对象的操作以消息的形式通知其他用户,其他用户在接收到消息后在本地执行相应操作,从而保持各用户端共享对象的一致性和达到用户间相互感应的目的。这些信息分为两类:一类是控制信息,如授权信息、在线用户更新信息、用户的登录/退出、暂停/恢复交谈等;另一类是数据信息,即图形的内容,如白板中绘制的圆形、直线、曲线等内容变更信息。白板消息被定义为对象,消息的类型反映出对白板内容进行的变更操作。服务器接收到消息之后,首先识别白板消息的类型,然后根据相应的处理程序对消息进行处理。由于设计的移动白板适用于临时的小范围会议,因此没有考虑诸如聊天室类的视频信息。

当系统中的任一方需要发送消息时,它先将发送的数据按白板消息格式进行打包,然后传送给服务器。服务器收到数据后,调用消息解析函数,进行相关处理后,发出应答消息并将信息转发给其他客户端。经过这样一个过程,就可以实现各终端之间的信息同步(如图9-15所示)。其中实线表示的是客户端和服务器端之间的通信;虚线部分表示的是客户端之间的虚交互通道,因为实际上客户端之间并没有建立直接的连接,他们的交互都是需要通过服务器中转的。

图9-15 消息交互示意图

所有消息由两部分组成:消息头和消息体,如图9-16所示:

图9-16 消息格式

服务器端和客户端传送的消息按如下通信协议组织:

消息类型|消息长度|元素1|元素2|元素3|…|元素n。其示意图如图9-17所示。

图9-17 消息结构示意图

其中Type表明消息类型;Length表示消息长度;Element List中的每一个元素为一个消息单元,里面存储了绘图类型的特征值。

在MWBS中,客户端Agent和服务器Agent间的通信协议是根据此白板消息设计决定的。其数据结构如表9-2所示:

表9-2 系统中的Agent间传递的白板消息结构

下面以用户Agent和服务器Agent收发消息工作过程为例,说明一下系统的大致工作过程。用户Agent工作过程见图9-18:

图9-18 用户Agent工作过程

(1)用户状态管理Agent初始化所有的成员,身份认证Agent提供节点的认证功能;

(2)消息管理Agent与服务器实现连接,建立消息传输通道,创建通信线程,并监听Socket处的消息;

(3)若消息解包成功,则对KQML消息进行解包或者打包,并把消息发送出去;

(4)若消息解包不成功,则返回用户处重新获得。

服务器Agent工作过程:

(1)启动服务器更新管理Agent初始化的所有成员数据;

(2)接收用户状态管理Agent的请求,并进行连接,连接成功后建立一条消息传送的通道;

(3)任务协同管理Agent启动侦听节点,侦听网络消息;

(4)若成功从socket处获得KQML消息,则对KQML消息进行解析处理后把消息转发到其他的用户;若不成功,则把消息放入消息管理Agent中待发(见图9-19)。

图9-19 服务器Agent工作过程

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈