☆ 赵学孔
(华南师范大学教育信息技术学院,广东广州 510631)
网 络 学 习 社 区 (Networked/Online Learning Communities)作为一种新型学习方式受到越来越多研究者的青睐。网络学习社区中由于参与者之间知识结构以及认知能力的复杂多变,对于同一个问题往往会形成认知冲突,而在此环节中,成员之间即时的交流互动成为了他们解决冲突、获取新知识的重要环节。IWebIM是一款开源的聊天组件,能集成于网页中任何地方,从而弥补了网络学习社区中学习与聊天“非同步”的不足之处,为社区成员之间即时的交流互动搭建了桥梁。
IWebIM是国内开源社区Jooyea(中文亦称“聚易”)技术团队开发的一款轻量级的即时通讯聊天组件,其作为一款开源组件,为站点提供了一个良好的web模式的即时聊天扩展应用。它不仅可以集成到Jooyea技术团队所开发的iweb sns,iwe mall等产品中,还可以集成到其它论坛、博客、新闻系统、社区等任何网站系统上来提供用户交流。目前,该组件已在国内的部分社区网站中应用,并且取得了非常显著的效果[1]。
1.开源性
IWebIM最大的特点之一是作为一款开源软件,其底层代码完全免费公开。所谓开源软件(Open Source Software,简称OSS),是指公开源代码的软件,它与闭源软件相对应,具有授权自由等特点。而IwebIM正是继承了开源的特性,用户能在遵循开源授权的条件下从社区中免费下载该组件并尝试着修改其底层代码,以进行二次开发与扩展。
2.集成性
IWebIM组件与我们熟知的QQ聊天工具最大的不同之处在于其应用模式,QQ聊天工具主要是基于客户端C/S模式,而IWebIM组件则基于Web模式,即B/S模式。正因此模式的不同,该组件的一大特色之处在于其能够方便地集成于任何网站系统中,从而给用户之间基于Web的交流互动提供便捷。此外,从底层代码也可看出,IWebIM组件提供了开源的接口文件、库函数lib等核心代码,这为用户在后期的网站集成方面提供了可能。
3.功能丰富
与其它聊天工具类似,IWebIM组件具有最基本的聊天、查看聊天日志等功能。随着该组件新产品的不断发布,目前已经具有在线聊天、查看聊天日志、分组、添加/删除好友、搜索用户、添加讨论组、设置个人信息等功能。此外,该组件支持一对一、一对多以及多对多聊天功能模式。
4.高并发
高并发是我们一般在做服务器软件时需要考虑的基本问题,软件的并发数除了直接受到服务器硬件性能的影响外,很大程度上也受到软件本身的制约。而从用户角度来讲,并发数与用户终端的在线体验密切联系。从官方网站相关数据资料可知[2],IWebIM组件在设计之处就以解决大型站点高并发高负载为理念来开发的。面对高并发性,该组件在用户的交流会话过程中主要是通过基于内存的缓存服务器来实现数据交换,而数据库只用于定时保存聊天记录。
网络学习社区是网络环境下以学习为目的的虚拟社区,其形成的关键是学习者之间的互动。从社区的支撑环境来看,目前许多网络学习社区都已具备BBS、博客、E-mail等异步或同步交流工具,然而,这些工具通常作为一个独立的模块(即单独的页面) 与社区的学习中心呈“分离”状态,从而不利于学习者在学习过程中进行即时的交流互动,这在一定程度上也影响了参与者交流的积极性。由此可见,如何在网络学习社区中增强参与者之间的会话交流是我们关心的重点。
从上述IWebIM组件的特点可以看出,作为一款基于Web模式的开源聊天组件,其潜在着巨大的价值。基于此种理念,笔者考虑可将IWebIM聊天组件应用于网络学习社区以挖掘其潜力。在学习社区中,IWebIM具有如下优势:
IWebIM聊天组件的数据库可与学习社区数据库紧密结合在一起,用户在安装该组件的时候,主要是通过修改组件配置文件“configuration”中数据库的路径以及连接参数来建立与学习社区数据库的关系。换言之,IWebIM并没有单独设立数据库,而是通过配置文件与社区数据库集成在一起。由此给社区成员带来的好处有:参与者只需注册一个账号便可在学习社区中执行相关操作,参与学习;IWebIM聊天组件会自动获取社区数据库中用户注册信息,包括用户的聊天账户名;在IWebIM中修改后的用户信息会与数据库形成同步更新。
在网络学习社区中,目前用得比较多的交流工具有BBS、博客等,这些工具主要基于“一对多”模式,也就是说,社区中一人发言,多人可查看,然而,这对一些私人问题带来了不便。此外,对于大型学习社区而言,由于以上这些交流工具支持的并发数有限,其很难满足“多对多”交流模式。而IWebIM聊天组件是基于流行的PHP+MySQL架构开发的,具有高并发性,且支持“一对一、一对多以及多对多”多种交流模式的功能。由此,社区中的学习者不再局限于某一种交流方式,而可以选择自己感兴趣的小组进行“一对多”交流,也可选择某一位“专家”进行“一对一”私聊,同时小组与小组之间还可以实现“多对多”交流,从而为“立体化”交流提供可能。
IWebIM聊天组件根据注册账号为每一位学习者赋予了编辑权限,学习者可以根据自己的偏好对该组件进行设定,主要包括修改界面外观、编辑讨论组、编辑好友、设置信息呈现方式等。IWebIM组件的这种管理方式在一定程度上类似于大家常用的QQ聊天工具,所以在组件的操作上并不会给新手用户造成不便之处,反而作为一种微型聊天工具,在社区的学习氛围的影响下,会愈发引起学习者的兴趣。
与传统的聊天工具相比,IWebIM的最大特点在于它作为一款基于Web模式的聊天组件,能集成到任何网页中,由此,即使学习者在学习中不断的切换页面,也可以通过该组件实时共享信息。不言而喻,QQ是比较流行的一款聊天工具,并且许多学者在研究中谈到QQ在网络协作学习中发挥着重要角色,然而,不难发现,我们实际上并没有或是很少将QQ工具很好地用在协作学习中。笔者认为其主要原因在于环境因素,即QQ作为一款独立的聊天工具,它与我们的网络学习环境之间存在着脱节。
此外,IWebIM组件安装好之后,它一般会自动悬浮于学习社区的每个页面中,并且用户可以随意控制它在网页中的位置。与传统的社区聊天室相比,学习者可借助该组件在任何时刻、任何页面来进行交流,而并非进入独立的聊天页面才可进行交流。
由上述可看出,IWebIM在学习社区中潜在优越的价值,那么我们如何将该组件应用于社区是本文接下来要讨论的问题。在应用之前,用户首先需要下载该聊天组件到本地机,IWebIM是开源的组件,所以用户可以从官方网站上免费下载使用(下载地址为http://tech.jooyea.com/pandp.php芽pro=im)。
IWebIM以PHP为主要开发语言,数据库默认采用开源的MySQL,所以为了保持IWebIM在学习社区能稳定流畅地运行,首先确保要集成该组件的社区也基于PHP+MySQL架构开发。一般而言,IWebIM组件支持的运行环境需求如下:服务器方面,可选用Apache、IIS、Lihttpd等;系统主体语言采用PHP语言;数据库采用MySQL5.0.x及以上。在此,笔者根据官方网站提出的要求推荐使用 Apache2.2.x+PHP5.2.x+MySQL5.1.x 配置环境。
从IWebIM的开发技术来看,其主要采用了面向对象的编程思想来开发。所谓面向对象(Object-Oriented)是指一种运用对象、类、封装、继承、多态和消息等概念来构造、重构软件的方法,其本质在于用对象来理解和分析问题空间。面向对象思想的好处是用户在编程时不必考虑部分已封装好的方法操作,而只需在实际应用中调用方法即可,从而能使得系统复杂的工作条理清晰、编写容易。
在修改配置文件前,笔者认为有必要先对IWebIM的体系架构稍作了解。如图1所示,IWebIM主文件包主要包括 Ajax、langpackage、iweb_lib、uploadfiles、getfile.php 以及configuration.php文IWebIM件。其中,Ajax提供聊天窗口中信息内容的无刷新显示;langpackage用于定义组件的界面语言;iweb_lib定义了组件所用到的函数,以及与数据库连接方法、接口类等;uploadfiles提供了用户上传资料的空间;configuration.php则是组件的配置文件。我们一般只需通过configuration.php配置文件来实现对组件的路径、连接方式修改,而其它文件可以不用深入理解。
图1 IWebIM组件体系架构
IWebIM集成到学习社区中,我们只需要将配置文件稍作修改即可,主要修改配置文件中与社区页面的连接以及与社区主数据库的连接。
1.与社区站点连接
configuration.php配置文件定义了与社区站点连接的接口,社区主系统在运行中会自动根据该接口找到IwebIM组件。与社区系统的链接我们只需要修改配置文件中以下几处:首先,“$session_prefix = ″isns_″;”定义了组件的前缀,为了让系统识别此组件,在此,需要将等号后面的内容修改与社区主系统的文件前缀保持一致;其次,“$siteDomain = ″http:/localhost/iweb/″;” 定义了站点主系统的地址,用户需要根据社区网站的实际ip地址进行修改,如“$siteDomain = ″http:/www.nlc.com/iweb/″;”。至此,IWebIM基本上已集成到社区系统中。但为了保持组件中数据的更新与社区系统达成同步,我们还必须修改其数据库连接配置。
2.与后台数据库连接
IWebIM与社区系统连接的关键在于数据库。用户编辑个人信息、加入讨论组、添加好友、编辑好友以及发布信息等的具体操作都会在数据库中存有记录,所以,数据库的连接成功与否直接影响组件的运行效果。同样,我们需要在configuration.php配置文件中进行如下修改:首先 , 找 到 “$session_uid = $_SESSION[$session_prefix.'user_id'];”语句,其主要用来获取当前系统里存放的用户id值并将该值赋予im中用户的id,在此,需要将“$session_prefix.'user_id'”修改并与社区数据库中的用户id字段保持一致;其次,需要修改im中查询数据库的语句 “$getUserInfoSql = ″SELECT user_id uid,user_name u_name,user_ico u_ico FROM isns_users WHERE user_id='$session_uid'″;”,在此只需将 select语句中的数据库表“isns_users”以及表中的各个字段“user_id,user_name……”与社区主数据库中的用户表保持一致。
在以上工作完成后,IWebIM组件已经完成了安装。接下来,需要对IWebIM组件进行运行测试,主要查看该组件是否在社区的网页中出现,是否与数据库成功连接并保持数据的同步更新。若仍存在问题,则需要返回到上述的配置文件仔细检查自己的设置是否得当,否则直接投入使用。
IWebIM聊天组件与其它聊天工具相比,该组件应用在学习社区中具有一定的优越性,其主要与组件自身的开源性、集成性以及运行模式等因素相关。将IWebIM组件应用于网络学习社区还有很多潜力可挖掘,并且它伴随着我国开源社区队伍的壮大不断发展,其功能也逐步完善、强大。开发基于P2P的音视频聊天插件,与IWebIM一对一聊天实现整合,从而使用户在社区中实现音视频同步聊天是IWebIM开源社区今后的研发动向,[3]这也是本研究下一步所关注的。
[1][2]IwebIM Product Description[DB/OL].http://tech.jooyea.com/pandp.php芽pro=im.
[3]IwebIM 社区[DB/OL].http://www.iwebim.com.