☆ 趙學(xué)孔
(華南師范大學(xué)教育信息技術(shù)學(xué)院,廣東廣州 510631)
網(wǎng) 絡(luò) 學(xué) 習(xí) 社 區(qū) (Networked/Online Learning Communities)作為一種新型學(xué)習(xí)方式受到越來越多研究者的青睞。網(wǎng)絡(luò)學(xué)習(xí)社區(qū)中由于參與者之間知識結(jié)構(gòu)以及認(rèn)知能力的復(fù)雜多變,對于同一個問題往往會形成認(rèn)知沖突,而在此環(huán)節(jié)中,成員之間即時的交流互動成為了他們解決沖突、獲取新知識的重要環(huán)節(jié)。IWebIM是一款開源的聊天組件,能集成于網(wǎng)頁中任何地方,從而彌補了網(wǎng)絡(luò)學(xué)習(xí)社區(qū)中學(xué)習(xí)與聊天“非同步”的不足之處,為社區(qū)成員之間即時的交流互動搭建了橋梁。
IWebIM是國內(nèi)開源社區(qū)Jooyea(中文亦稱“聚易”)技術(shù)團(tuán)隊開發(fā)的一款輕量級的即時通訊聊天組件,其作為一款開源組件,為站點提供了一個良好的web模式的即時聊天擴(kuò)展應(yīng)用。它不僅可以集成到Jooyea技術(shù)團(tuán)隊所開發(fā)的iweb sns,iwe mall等產(chǎn)品中,還可以集成到其它論壇、博客、新聞系統(tǒng)、社區(qū)等任何網(wǎng)站系統(tǒng)上來提供用戶交流。目前,該組件已在國內(nèi)的部分社區(qū)網(wǎng)站中應(yīng)用,并且取得了非常顯著的效果[1]。
1.開源性
IWebIM最大的特點之一是作為一款開源軟件,其底層代碼完全免費公開。所謂開源軟件(Open Source Software,簡稱OSS),是指公開源代碼的軟件,它與閉源軟件相對應(yīng),具有授權(quán)自由等特點。而IwebIM正是繼承了開源的特性,用戶能在遵循開源授權(quán)的條件下從社區(qū)中免費下載該組件并嘗試著修改其底層代碼,以進(jìn)行二次開發(fā)與擴(kuò)展。
2.集成性
IWebIM組件與我們熟知的QQ聊天工具最大的不同之處在于其應(yīng)用模式,QQ聊天工具主要是基于客戶端C/S模式,而IWebIM組件則基于Web模式,即B/S模式。正因此模式的不同,該組件的一大特色之處在于其能夠方便地集成于任何網(wǎng)站系統(tǒng)中,從而給用戶之間基于Web的交流互動提供便捷。此外,從底層代碼也可看出,IWebIM組件提供了開源的接口文件、庫函數(shù)lib等核心代碼,這為用戶在后期的網(wǎng)站集成方面提供了可能。
3.功能豐富
與其它聊天工具類似,IWebIM組件具有最基本的聊天、查看聊天日志等功能。隨著該組件新產(chǎn)品的不斷發(fā)布,目前已經(jīng)具有在線聊天、查看聊天日志、分組、添加/刪除好友、搜索用戶、添加討論組、設(shè)置個人信息等功能。此外,該組件支持一對一、一對多以及多對多聊天功能模式。
4.高并發(fā)
高并發(fā)是我們一般在做服務(wù)器軟件時需要考慮的基本問題,軟件的并發(fā)數(shù)除了直接受到服務(wù)器硬件性能的影響外,很大程度上也受到軟件本身的制約。而從用戶角度來講,并發(fā)數(shù)與用戶終端的在線體驗密切聯(lián)系。從官方網(wǎng)站相關(guān)數(shù)據(jù)資料可知[2],IWebIM組件在設(shè)計之處就以解決大型站點高并發(fā)高負(fù)載為理念來開發(fā)的。面對高并發(fā)性,該組件在用戶的交流會話過程中主要是通過基于內(nèi)存的緩存服務(wù)器來實現(xiàn)數(shù)據(jù)交換,而數(shù)據(jù)庫只用于定時保存聊天記錄。
網(wǎng)絡(luò)學(xué)習(xí)社區(qū)是網(wǎng)絡(luò)環(huán)境下以學(xué)習(xí)為目的的虛擬社區(qū),其形成的關(guān)鍵是學(xué)習(xí)者之間的互動。從社區(qū)的支撐環(huán)境來看,目前許多網(wǎng)絡(luò)學(xué)習(xí)社區(qū)都已具備BBS、博客、E-mail等異步或同步交流工具,然而,這些工具通常作為一個獨立的模塊(即單獨的頁面) 與社區(qū)的學(xué)習(xí)中心呈“分離”狀態(tài),從而不利于學(xué)習(xí)者在學(xué)習(xí)過程中進(jìn)行即時的交流互動,這在一定程度上也影響了參與者交流的積極性。由此可見,如何在網(wǎng)絡(luò)學(xué)習(xí)社區(qū)中增強參與者之間的會話交流是我們關(guān)心的重點。
從上述IWebIM組件的特點可以看出,作為一款基于Web模式的開源聊天組件,其潛在著巨大的價值。基于此種理念,筆者考慮可將IWebIM聊天組件應(yīng)用于網(wǎng)絡(luò)學(xué)習(xí)社區(qū)以挖掘其潛力。在學(xué)習(xí)社區(qū)中,IWebIM具有如下優(yōu)勢:
IWebIM聊天組件的數(shù)據(jù)庫可與學(xué)習(xí)社區(qū)數(shù)據(jù)庫緊密結(jié)合在一起,用戶在安裝該組件的時候,主要是通過修改組件配置文件“configuration”中數(shù)據(jù)庫的路徑以及連接參數(shù)來建立與學(xué)習(xí)社區(qū)數(shù)據(jù)庫的關(guān)系。換言之,IWebIM并沒有單獨設(shè)立數(shù)據(jù)庫,而是通過配置文件與社區(qū)數(shù)據(jù)庫集成在一起。由此給社區(qū)成員帶來的好處有:參與者只需注冊一個賬號便可在學(xué)習(xí)社區(qū)中執(zhí)行相關(guān)操作,參與學(xué)習(xí);IWebIM聊天組件會自動獲取社區(qū)數(shù)據(jù)庫中用戶注冊信息,包括用戶的聊天賬戶名;在IWebIM中修改后的用戶信息會與數(shù)據(jù)庫形成同步更新。
在網(wǎng)絡(luò)學(xué)習(xí)社區(qū)中,目前用得比較多的交流工具有BBS、博客等,這些工具主要基于“一對多”模式,也就是說,社區(qū)中一人發(fā)言,多人可查看,然而,這對一些私人問題帶來了不便。此外,對于大型學(xué)習(xí)社區(qū)而言,由于以上這些交流工具支持的并發(fā)數(shù)有限,其很難滿足“多對多”交流模式。而IWebIM聊天組件是基于流行的PHP+MySQL架構(gòu)開發(fā)的,具有高并發(fā)性,且支持“一對一、一對多以及多對多”多種交流模式的功能。由此,社區(qū)中的學(xué)習(xí)者不再局限于某一種交流方式,而可以選擇自己感興趣的小組進(jìn)行“一對多”交流,也可選擇某一位“專家”進(jìn)行“一對一”私聊,同時小組與小組之間還可以實現(xiàn)“多對多”交流,從而為“立體化”交流提供可能。
IWebIM聊天組件根據(jù)注冊賬號為每一位學(xué)習(xí)者賦予了編輯權(quán)限,學(xué)習(xí)者可以根據(jù)自己的偏好對該組件進(jìn)行設(shè)定,主要包括修改界面外觀、編輯討論組、編輯好友、設(shè)置信息呈現(xiàn)方式等。IWebIM組件的這種管理方式在一定程度上類似于大家常用的QQ聊天工具,所以在組件的操作上并不會給新手用戶造成不便之處,反而作為一種微型聊天工具,在社區(qū)的學(xué)習(xí)氛圍的影響下,會愈發(fā)引起學(xué)習(xí)者的興趣。
與傳統(tǒng)的聊天工具相比,IWebIM的最大特點在于它作為一款基于Web模式的聊天組件,能集成到任何網(wǎng)頁中,由此,即使學(xué)習(xí)者在學(xué)習(xí)中不斷的切換頁面,也可以通過該組件實時共享信息。不言而喻,QQ是比較流行的一款聊天工具,并且許多學(xué)者在研究中談到QQ在網(wǎng)絡(luò)協(xié)作學(xué)習(xí)中發(fā)揮著重要角色,然而,不難發(fā)現(xiàn),我們實際上并沒有或是很少將QQ工具很好地用在協(xié)作學(xué)習(xí)中。筆者認(rèn)為其主要原因在于環(huán)境因素,即QQ作為一款獨立的聊天工具,它與我們的網(wǎng)絡(luò)學(xué)習(xí)環(huán)境之間存在著脫節(jié)。
此外,IWebIM組件安裝好之后,它一般會自動懸浮于學(xué)習(xí)社區(qū)的每個頁面中,并且用戶可以隨意控制它在網(wǎng)頁中的位置。與傳統(tǒng)的社區(qū)聊天室相比,學(xué)習(xí)者可借助該組件在任何時刻、任何頁面來進(jìn)行交流,而并非進(jìn)入獨立的聊天頁面才可進(jìn)行交流。
由上述可看出,IWebIM在學(xué)習(xí)社區(qū)中潛在優(yōu)越的價值,那么我們?nèi)绾螌⒃摻M件應(yīng)用于社區(qū)是本文接下來要討論的問題。在應(yīng)用之前,用戶首先需要下載該聊天組件到本地機,IWebIM是開源的組件,所以用戶可以從官方網(wǎng)站上免費下載使用(下載地址為http://tech.jooyea.com/pandp.php芽pro=im)。
IWebIM以PHP為主要開發(fā)語言,數(shù)據(jù)庫默認(rèn)采用開源的MySQL,所以為了保持IWebIM在學(xué)習(xí)社區(qū)能穩(wěn)定流暢地運行,首先確保要集成該組件的社區(qū)也基于PHP+MySQL架構(gòu)開發(fā)。一般而言,IWebIM組件支持的運行環(huán)境需求如下:服務(wù)器方面,可選用Apache、IIS、Lihttpd等;系統(tǒng)主體語言采用PHP語言;數(shù)據(jù)庫采用MySQL5.0.x及以上。在此,筆者根據(jù)官方網(wǎng)站提出的要求推薦使用 Apache2.2.x+PHP5.2.x+MySQL5.1.x 配置環(huán)境。
從IWebIM的開發(fā)技術(shù)來看,其主要采用了面向?qū)ο蟮木幊趟枷雭黹_發(fā)。所謂面向?qū)ο螅∣bject-Oriented)是指一種運用對象、類、封裝、繼承、多態(tài)和消息等概念來構(gòu)造、重構(gòu)軟件的方法,其本質(zhì)在于用對象來理解和分析問題空間。面向?qū)ο笏枷氲暮锰幨怯脩粼诰幊虝r不必考慮部分已封裝好的方法操作,而只需在實際應(yīng)用中調(diào)用方法即可,從而能使得系統(tǒng)復(fù)雜的工作條理清晰、編寫容易。
在修改配置文件前,筆者認(rèn)為有必要先對IWebIM的體系架構(gòu)稍作了解。如圖1所示,IWebIM主文件包主要包括 Ajax、langpackage、iweb_lib、uploadfiles、getfile.php 以及configuration.php文IWebIM件。其中,Ajax提供聊天窗口中信息內(nèi)容的無刷新顯示;langpackage用于定義組件的界面語言;iweb_lib定義了組件所用到的函數(shù),以及與數(shù)據(jù)庫連接方法、接口類等;uploadfiles提供了用戶上傳資料的空間;configuration.php則是組件的配置文件。我們一般只需通過configuration.php配置文件來實現(xiàn)對組件的路徑、連接方式修改,而其它文件可以不用深入理解。
圖1 IWebIM組件體系架構(gòu)
IWebIM集成到學(xué)習(xí)社區(qū)中,我們只需要將配置文件稍作修改即可,主要修改配置文件中與社區(qū)頁面的連接以及與社區(qū)主數(shù)據(jù)庫的連接。
1.與社區(qū)站點連接
configuration.php配置文件定義了與社區(qū)站點連接的接口,社區(qū)主系統(tǒng)在運行中會自動根據(jù)該接口找到IwebIM組件。與社區(qū)系統(tǒng)的鏈接我們只需要修改配置文件中以下幾處:首先,“$session_prefix = ″isns_″;”定義了組件的前綴,為了讓系統(tǒng)識別此組件,在此,需要將等號后面的內(nèi)容修改與社區(qū)主系統(tǒng)的文件前綴保持一致;其次,“$siteDomain = ″http:/localhost/iweb/″;” 定義了站點主系統(tǒng)的地址,用戶需要根據(jù)社區(qū)網(wǎng)站的實際ip地址進(jìn)行修改,如“$siteDomain = ″http:/www.nlc.com/iweb/″;”。至此,IWebIM基本上已集成到社區(qū)系統(tǒng)中。但為了保持組件中數(shù)據(jù)的更新與社區(qū)系統(tǒng)達(dá)成同步,我們還必須修改其數(shù)據(jù)庫連接配置。
2.與后臺數(shù)據(jù)庫連接
IWebIM與社區(qū)系統(tǒng)連接的關(guān)鍵在于數(shù)據(jù)庫。用戶編輯個人信息、加入討論組、添加好友、編輯好友以及發(fā)布信息等的具體操作都會在數(shù)據(jù)庫中存有記錄,所以,數(shù)據(jù)庫的連接成功與否直接影響組件的運行效果。同樣,我們需要在configuration.php配置文件中進(jìn)行如下修改:首先 , 找 到 “$session_uid = $_SESSION[$session_prefix.'user_id'];”語句,其主要用來獲取當(dāng)前系統(tǒng)里存放的用戶id值并將該值賦予im中用戶的id,在此,需要將“$session_prefix.'user_id'”修改并與社區(qū)數(shù)據(jù)庫中的用戶id字段保持一致;其次,需要修改im中查詢數(shù)據(jù)庫的語句 “$getUserInfoSql = ″SELECT user_id uid,user_name u_name,user_ico u_ico FROM isns_users WHERE user_id='$session_uid'″;”,在此只需將 select語句中的數(shù)據(jù)庫表“isns_users”以及表中的各個字段“user_id,user_name……”與社區(qū)主數(shù)據(jù)庫中的用戶表保持一致。
在以上工作完成后,IWebIM組件已經(jīng)完成了安裝。接下來,需要對IWebIM組件進(jìn)行運行測試,主要查看該組件是否在社區(qū)的網(wǎng)頁中出現(xiàn),是否與數(shù)據(jù)庫成功連接并保持?jǐn)?shù)據(jù)的同步更新。若仍存在問題,則需要返回到上述的配置文件仔細(xì)檢查自己的設(shè)置是否得當(dāng),否則直接投入使用。
IWebIM聊天組件與其它聊天工具相比,該組件應(yīng)用在學(xué)習(xí)社區(qū)中具有一定的優(yōu)越性,其主要與組件自身的開源性、集成性以及運行模式等因素相關(guān)。將IWebIM組件應(yīng)用于網(wǎng)絡(luò)學(xué)習(xí)社區(qū)還有很多潛力可挖掘,并且它伴隨著我國開源社區(qū)隊伍的壯大不斷發(fā)展,其功能也逐步完善、強大。開發(fā)基于P2P的音視頻聊天插件,與IWebIM一對一聊天實現(xiàn)整合,從而使用戶在社區(qū)中實現(xiàn)音視頻同步聊天是IWebIM開源社區(qū)今后的研發(fā)動向,[3]這也是本研究下一步所關(guān)注的。
[1][2]IwebIM Product Description[DB/OL].http://tech.jooyea.com/pandp.php芽pro=im.
[3]IwebIM 社區(qū)[DB/OL].http://www.iwebim.com.