浅析CSCL的未来发展方向
日期:2008年5月9日 评论次数:No Comments » 浏览次数:
【摘 要】 本文以CSCL中的图形式[wiki]交流[/wiki]问题为研究[wiki]对象[/wiki]。针对已经设计实现的一个实验系统,简述了其功能[wiki]需求[/wiki]、结构设计、特点分析、Server/Client两端的程序设计、用户权限管理、实验过程与实验结果等等,并给出了部分程序实例。最后也坦陈了需要进一步完善的方向。
【关键词】 CSCL,图形式交流系统
背景与概述
计算机支持的协作式学习CSCL(Computer Supported Co-Learning)是现代远程[wiki]教育[/wiki]中的一个重要方面。在CSCL中,仅靠文字式的同步交流是远远不够的,很多问题都需要藉助于图形才能表达得更为清楚。譬如,处在不同地域的某个兴趣小组在创造式学习过程中,想讨论一下某个机械机构的设计方案或是某个小产品的改型设计或是某个控制程序的流程图,单靠文字描述就难以表达清楚各自的想法,或者说,若没有图形式的实时交流讨论给予支持,仅背靠背地在网上、而非面对面地讨论这[wiki]类[/wiki]问题,简直就无从谈起。
在超级跨国公司的研发中心之间,CSCW(Computer Supported Co-Working)系统依靠计算机网络在良好地运转,大大地提高了工作效率和产品的竞争力。但是在非在校生和在校生的CSCL系统中,却无力效仿。
现在,在校生和非在校生的CSCL,还主要限于基于Telnet的BBS、基于web的聊天室、采用Java技术的电子白板等几种交流方式。
基于Telnet的BBS
BBS是一种基于网络的实时在线交流讨论的重要方式。客户参加讨论时一般先要通过Telnet登录到某台远程主机上,然后进入BBS系统。基于Telnet的BBS系统已经成为一种时尚,其功能也已相当完善,例如用户管理、文章传阅、实时讨论、用户留言、电子邮件等均已为广大用户所熟悉。但它有一个明显的缺点,因Telnet是为了远程登录UNIX主机而出现的,使得客户机好像只是一个仿真字符终端,而不能使用其他丰富的媒体手段,难以进行图形式的实时交流讨论。
基于Web的聊天室
这是目前较为普遍的一种CSCL的交流讨论方式,客户通过浏览各种基于WWW的网页来获取知识和信息。这种方式只能进行语言式的交流,即使有一些简单的表情符号,也大都由系统定制,用户不能随意更改。显然,它所传递的信息量十分有限。
采用Java技术的电子白板系统
这是一种采用Client/Server方式工作的基于WWW的多用户交流讨论系统,其Server程序在服务器上运行,而Client端则是运行着一个嵌入在Web页面中的用Java书写的applet应用程序。这种交流讨论方式由于受到Java的功能限制,只能传递一些极为简单的几何图形,诸如点、线、方、圆等等,对于那些用CAD设计的结构图或用Protel设计的电路图等等复杂图形就无能为力了。
本研究小组在探究CSCL的过程中,就这一问题进行了初步研究,并设计实现了一个简单的系统模型。经初步演练实验,取得了一定的实效。
系统的功能描述
在支持图形式交流讨论的CSCL系统中,其交流讨论的内容,除文字式的叙述外,还应包括各式各样的图示,这是系统中要研究的主要内容;其交流讨论的形式,既可以是一对一的互动交流,也可以是一个小组内多个组员的多边互动交流。前者是指交流信息通过Server在两个Client端口之间传送,后者是指交流信息通过Server在几个Client端口之间传送。
登录系统中的用户权限分为三类:管理员或称超级用户;
读写用户;
只读用户。
管理员用户:相当于版主,可给其他用户分配权限,当然也可收阅别人的或传发自己的信息参与交流;
读写用户:既可收阅别人的又可传发自己的信息参与交流,几个读写用户之间的控制权机制采用的是抢先方式;
只读用户:只可收阅别人的交流信息,无法传发自己的信息参与交流。
系统中设有内部保密机制,非法用户即使在信息传递途中非法截取成功,但也无法读懂。
系统的结构设计
该系统的设计基于TCP/IP技术协议,采用Client/Server模式。
图文交流信息数据库
系统中选用Oracle作为图文交流信息数据库,其主要功能有二:
1.存储所有用户的相关信息,诸如用户名、用户口令、访问权限等等;
2.作为客户交流信息的集中存储器,以特定的字符串序列实时存储交流讨论的图文信息,以备事后索取下载。
服务器端:服务器提供有若干必备的应用软件(如AutoCAD、Pro/E等),用户登录成功之后就可共享它们,藉以交流讨论。用户在交流讨论过程中,服务器作为信息中转站提供后台服务,并把交流讨论的图文信息
实时地转换为特定的字符串序列送往“图文交流信息数据库”进行集中存储。
客户端:提供用户登录界面,显示交流讨论的图文信息,但不做任何存储。
专用浏览器:只有合法用户在成功登录之后才可使用。由于客户端在交流讨论过程中不做任何存储操作,用户就无法实时地在本地保存讨论信息,(所有讨论信息都以特定的字符串序列被实时地保存在“图文交流
信息数据库”中),只能通过这个专用浏览器下载而生成“笔记”。
设计实现
Server端的主要任务是监听Client端口的申请,时刻准备与其建立Socket连接,一旦连接成功,便可以进行信息的交流讨论。
Server端的实现方法
把一个TserverSocket元件放到Form或数据模块上,应用程序就变成了一个TCP/IP服务器。当服务器处于监听状态时,就可用TserverScoket来操控服务器端的Socket对象。当客户端提出连接请求时,服务器端接受了这个请求并建立了连接,此时就可用Tserversocket来操控服务器端Socket与客户端Socket之间的对话。
下面给出两段程序实例:
网络监控
procedure TServerForm.ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Log(Format('%-20s %s', ['连接', Socket.RemoteAddress]));
ViewMode := vmColor4;
CompMode := clDefault;
SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_NORMAL);
UpdateStats;
end;
procedure TServerForm.ServerSocket1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Log(Format('%-20s %s', ['断开', Socket.RemoteAddress]));
UpdateStats;
end;
信息的交换
procedure TServerForm.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
s : string;
begin
Log(Format('%-20s %s', ['接受的数据来此', Socket.RemoteAddress]));
s := Socket.ReceiveText;
NumRec := NumRec + Length(s);
UpdateStats;
CurMsg := CurMsg + s;
while IsValidMessage(CurMsg) do begin
s := TrimFirstMsg(CurMsg);
ProcessMessage(s, Socket);
end;
end;
Client端的实现方法
把一个TclientSocket元件放在Form或者数据模块上,应用程序就变成了一个TCP/IP客户。当客户端的Socket向服务器端的Socket提出连接请求时,而服务器端Socket又正好处于监听状态,这个请求就会被自动接受并建立相应连接,以进行彼此之间的对话。
其“信息交流”的程序实例如下:
procedure TClientForm.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
s : string;
msg : integer;
len : integer;
PerStr : string;
tdif : double;
cps : string;
begin
s := Socket.ReceiveText;
NumRec := NumRec + Length(s);
UpdateStats;
if CurMsg = '' then LastRec := GetTickCount;
CurMsg := CurMsg + s;
if Length(CurMsg) >= 8 then begin
Move(CurMsg[1], msg, sizeof(integer));
Move(CurMsg[5], len, sizeof(integer));
PerStr := Format('(%1.0n%%)', [Length(CurMsg) / (len + 8.0) * 100.0]);
tdif := (GetTickCount – LastRec) / 1000.0;
if tdif > 0.5 then cps := Format('%1.0n cps', [Length(CurMsg) / tdif])
else cps := '';
Stat[0] := Format('接受到: %1.0n of %1.0n %s %s',
[Length(CurMsg) + 0.0, len + 8.0, PerStr, cps]);
LastCPS := cps;
end else begin
if Length(s) > 0 then
Stat[0] := '接受到: ' + IntToStr(Length(CurMsg));
end;
while IsValidMessage(CurMsg) do begin
s := TrimFirstMsg(CurMsg);
ProcessMessage(s, Socket);
end;
end;
输入欲连接服务器的IP地址以及提供服务的端口地址,同时输入你的用户名和密码,点击“连接”,便可以得到服务器的响应。
动态显示标识:动态显示客户端是否向服务器请求连接的状态。
状态栏:显示当前的状态信息。
文字输入区:用户输入的文字信息将显示于该处。
图形交流区:供交流用的图形信息从服务器传送过来之后将显示于该处,拥有读写权限的客户还可对其进行修改,相应的编辑工具按钮也将显示于该处。
文字交流区:供交流用的文字信息从服务器传送过来之后将显示于该处。
工具栏:工具栏中的几个按钮可供用户刷新屏幕、下载文件、设置客户端界面的显示形式等等。
信息安全
我们在交流讨论相关问题时,总不希望被他人知晓。系统中为此进行了特殊处理。
定义信息类型:先把那些在Server端与Client端之间传送的信息分为若干类型,对每一种类型分别给定一个代码(系统中共定义了二十多个,下表仅给出其中几个),以便后续处理。
信息类型 代码 注释
MSG_LOGON_NAME 0 用户名
MSG_LOGON 1 用户密码
MSG_REFRESH 2 图形刷新
MSG_SCREEN_UPDATE 3 图形变化
MSG_CLICK 4 鼠标点击
MSG_FILE 5 文件下载
MSG_CHAT 6 聊天记录
信息类型代码注释
MSG_LOGON_NAME 0 用户名
MSG_LOGON 1 用户密码
MSG_REFRESH 2 图形刷新
MSG_SCREEN_UPDATE 3 图形变化
MSG_CLICK 4 鼠标点击
MSG_FILE 5 文件下载
MSG_CHAT 6 聊天记录
信息整合处理:在Server端与Client端之间传送的信息连同其分类代码一起先被转换成特殊的字符串序列,再进行发送。譬如,由Server端传送给客户端图示信息应该随时刷新,为此先要定义一个函数SendMsg():
procedure TServerForm.SendMsg(MsgNum: integer; const MsgData: string; Socket: TCustomWinSocket);
var
s : string;
begin
s := IntToByteStr(MsgNum) + IntToByteStr(Length(MsgData)) + MsgData;
Socket.SendText(s);
end;
尔后就可在服务器端的应用程序中直接调用这个函数,调用命令如下:
SendMsg(MSG_REFRESH, tmp, Socket)。
信息解读处理:
从Server端传送到Client端的信息是一串经过特殊处理的字符序列,必须经过特殊转换才能辨认。解读函数ProcessMessage()定义如下:
procedure TServerForm.ProcessMessage(const Msg: string; Socket: TCustomWinSocket);
var
MsgNum, x,aa,i: integer;
rc : integer;
Data : string;
bmp : TBitmap;
tmp,usertype : string;
begin
CurSocket := Socket;
Move(Msg[1], MsgNum, sizeof(integer));
Data := Copy(Msg, 9, Length(Msg));
if MsgNum = MSG_REFRESH then begin
……………
end;
end;
尔后就可在客户端的应用程序中直接调用这个函数,调用命令如下:
ProcessMessage(s, Socket)。
实验过程和实验结果
该系统曾在局域网内进行了实地运行实验,并获得了成功。
一台Compaq服务器置于校园内的CAI中心实验室,并安装了AutoCAD2000软件;四台Pentium III作为Client 端,分别置于不同的学生宿舍、教室、教师办公室内;都未安装AutoCAD2000软件,只安装了图形交流客户端。
在实验过程中,一位教师和四个学生讨论一幅汽车车身的设计图,学生随意向教师提出一些修改意见(既可以用文字,也可以用图形),教师可根据学生的意见来发表自己的回复意见,(当然也是既可以用文字,又可以用图形)。所有这些图文交流信息都会同步地显示在师生各自的屏幕上。
结论与结束语
综上所述,该系统是一个基于TCP/IP的图形式实时交互系统,并兼具字符式交互方式,拓宽了适用范围,在CSCL中更具实用性。其主要特点可归纳为:
1.与Windows平台及其应用软件兼容;
2.支持较复杂图形的实时交互,在一定程度上可满足技术设计的需要;
3.可实时地进行交流资料存档,便于日后查阅与研究;
4.可设置用户权限,方便管理和使用。
由于时间的限制,目前系统还有许多地方不完善,例如:“同时支持声音方式的实时交流讨论、同时
支持不同组别、不同话题的实时交流讨论”等等这些问题还都没有解决。但是,它给我们带来了一种新的
理念。
总之,CSCL的前途是光明的,它必将在不久的将来风靡全球。
资料来源于 网鹰工作室 转载 http://www.newying.org
0 Comments.