矯桂娥
隨著寬帶網絡、3G技術的迅猛發展,網絡已進入人們日常的學習、工作、生活之中。隨著網絡資源的多媒體化、網絡服務形式的多樣化等,教學環境發生了相應的變化,師生之間、同學之間需要一個良好的“網絡環境”,以此促進了校園網,尤其是無線校園網的構建。借助于無線網絡的全面覆蓋,通過多種終端,師、生隨時隨地都可以實現學習、查找資料、主題探討、共享資源、網絡化教學方式的實施等。目前,基于Internet的即時通訊軟件,如騰訊的QQ、移動的飛信、微軟的MSN、阿里巴巴的旺旺等等,都有著各自的用戶群,而且數量也很龐大。但是在通訊的時候,安全性、實時性、文件傳輸的速度等問題都或多或少地存在。本文主要探討:基于校園網內,設計和實現一款師生之間的即時通訊軟件,以提高通信的效率,保證良好的學習、工作環境。
實現即時通訊軟件的方式很多,從模式角度有 C/S模式或B/S模式,從使用的語言來說,有基于Java語言或基于C++語言等。
P2P(Peer to Peer的縮寫),對等網絡,是一種網絡的信息交換方式。相對于c/s模式而言,是在網絡中各個節點之間直接進行資源和服務共享,在一定程度上“解放”了服務器。當然,這里的“對等”只是各個節點邏輯上的對等,也就是節點之間在應用層建立了虛擬連接,這樣所有的節點之間就互聯組成一個應用層的邏輯上的虛擬網絡。從某種意義上說并不是一項新技術,但是現在卻得到了廣泛的應用,如即時消息、內容交換、游戲、數字版權、社區網絡、金融、生物等等。
p2p網絡是一種具有較高擴展性的分布式系統結構,主要的優勢就是弱化甚至取消服務器,能夠充分利用網絡(尤其是局域網)中各個節點的潛在資源。鑒于此,p2p網絡中的用戶可以不斷地加入,服務需求增加的同時系統的資源和服務能力也在同步的增強。以班級、年級、專業等為單位的網內,師生之間、學生之間、社團之間等的交流變得很容易,相對也很“安靜”,而且幾乎不需要增加過多的成本。
隨著用戶的不斷加入,添加和維護用戶(學生、教師等)信息的工作量也是不容忽視的。若是要求 p2p網絡中每個節點都來完成這個工作,顯然不合適,這個工作由服務器統一完成比較好。另外,服務器還用來初始化并交互一些客戶端之間的信息、進行服務端調用以及作為進入其他系統的網關。
基于上述的原因,根據學校的實際情況,校園網內即時通訊軟件采用的結構仍舊保留服務器,也就是c/s+p2p網絡結構。這種結構能實現整個網絡的負載平衡,既保證了數據的安全性和一致性,也保證了系統的擴充能力。
Adobe Flash Platform是用于創建富于表現力,能夠一致運行于跨操作系統和設備的應用程序、內容和視頻,并且覆蓋超過98%的具有因特網連接的桌面用戶的領先Web設計和開發平臺。除了普及型、表現形式和一致性等 3個方面,決定了flash平臺技術在Web開發中具有絕對的優勢。
Flash平臺技術發展迅速,其最新版本的開發語言ActionScript3.0,完全區別于ActionScript2.0和ActionScript1.0,是真正的面向對象的語言,提供了很多的類用以完成即時通訊。再加上可視化的開發界面,使得flash平臺實現程序開發、RIA應用開發以及游戲成為可能。
Flash發布形式多樣,效率高,所以選擇flash平臺技術也使得軟件的階段檢查和測試很容易進行,也易于部署。據Adobe官方數據,全球95%的互聯網廣告、75%的互聯網視頻以及85%的互聯網web游戲都是flash形式發布的。
RTMFP(Real Time Media Flow Protocol的縮寫),實時媒體流協議,是 flash運用 p2p,首先要創建的一個連接。RTMFP是 Adobe公司開發的一套新的通信協議,用來幫助Flash Player的終端用戶之間進行直播、實時通訊,因為不需要所有的連接都通過服務器,所以帶寬消耗少,且基于 UDP協議從而保證了較快的傳送速度。另外,RTMFP還有兩個特性:快速連接恢復以及IP動態化。
所以本軟件采用flash CS5.5作為開發平臺,客戶端的軟件維護也很簡單。
XML被廣泛用來作為跨平臺之間交互數據的形式,主要針對數據的內容,通過不同的格式化描述手段(XSLT,CSS等)可以完成最終的形式表達。本通訊軟件的服務器中,相關信息的存儲采用xml,而不是通常的Access,Oracle和SQL Server等數據庫,因為目前軟件不需要很強的數據分析能力,XML基于ASCII的文檔結構使得它也適合于在Internet使用。比如,對于軟件中教師信息的xml文件的代碼如下:


校園網內即時通訊軟件包括文字、音頻、視頻通信,還可以實現文件共享等功能。
flash平臺技術開發的軟件,打包以后是一個可執行文件,運行環境是flash player,部署方便,安全性較好。主用的功能模塊:
(1)登錄模塊
運行軟件以后,要求輸入用戶名和密碼,符合了就可以選擇通信方式進行通信,不符合要求繼續輸入。設計上包括加載外部的xml文件,登錄按鈕添加單擊監聽事件,用來處理用戶輸入的用戶名是否和加載的xml文件中的相應節點信息相符合。同時需要把新登錄的用戶信息寫入xml文件。讀取xml信息使用loader函數。
(2)啟動p2p服務模塊
合法登錄后準備構建p2p服務,包括建立網絡連接、添加連接服務器的時間偵聽器、創建連接群組的端口等。
(3)通訊模塊
連接到相同端口的用戶之間進行通訊,需要選擇不同的通訊方式以進入不同的通訊模塊。通訊方式包括文字、音頻、視頻;通訊對象包括群聊、獨聊。選擇不同的通訊方式,是通過按鈕來實現的,所以要使用到as3.0的事件監聽機制對不同的按鈕進行監聽。通訊過程中,不管哪種方式,都包含發送模塊和接收模塊。
(4)界面實現模塊
兩個界面,登陸界面和通信界面,都包含操作提示功能。通信界面中會看到所有成員列表以及目前在線的成員情況,然后選擇通信方式,但最終進入的通信界面設置基本一樣。
享用著高速安全的校園內網即時通訊的同時,一定要注意網絡管理,因為在這樣的網絡環境中,會出現一些問題:病毒的快速傳播、帶寬的大量占用、知識產權等問題,可以借助于操作系統、相關的管理軟件實現管理策略。
主要給出啟動p2p服務并創建連接的代碼。



/*GroupSpecifier類可以構造一個傳遞到 NetStream 和NetGroup的構造函數的加密groupspec字符串。構造函數中的"myGroup/groupOne"為群組標識,可以隨意字符串代替*/
var groupspec:GroupSpecifier= new GroupSpecifier("myGroup/groupOne");
groupspec.postingEnabled= true;
//指定是否能通過ip多播方式交換更新關于組成員的信息。
groupspec.ipMulticastMemberUpdatesEnabled= true;
/*將相關的群組加入某個 IP地址并偵聽相關的端口Multicast的IP地址需要從不低于224開始,端口需高于1024—— “224.0.0.0:1024”為保證唯一性,一般設置高一些比較可靠*/
groupspec.addIPMulticastAddress("225.225.0.1:30303");
//在已成功的連接nc上創建一個群組;

隨著社會經濟的不斷進步,IT產業已走進人們的生活,信息化管理已經成為企業管理的主流趨勢。如今,中小企業的信息化建設也正在如火如荼的進行。校園網內的即時通訊軟件可以推廣至企業內部、樓宇等局域網內。對于企業來說,部署即時通訊軟件能帶來很多的好處:提高工作效率,保證工作環境,規范管理,實現無紙化辦公,充分利用資源,降低成本等等。進一步擴展,基于樓宇內的各種類型終端的通信也是很有市場的。
為了充分利用網絡資源,本文提出了校園網內即時通訊軟件的實現和使用,師生反映良好。當然在使用的過程中發現需要進一步完善的地方:隨著軟件功能的增加和用戶數量以及信息的增多,增加數據庫的使用以代替xml;為了便于更多的人可以共享資源,增加不同的用戶身份,比如現在沒有的“游客”身份;增加互動游戲功能等等。
隨著移動網絡的快速發展,面向internet的、面向移動網絡的 p2p技術的研究以及應用前景看好,在此拋磚引玉,望更多的應用能付諸于使用。
[1]劉磊,李聞天,肖幪,王榮彬,校園網中P2P應用的管理策略及流量監控初探[J],昆明理工大學學報(理工版),2008, 33(3),P45-48.
[2]李偉,徐正全,楊鑄,應用于移動互聯網的 Peer-to-Peer關鍵技術[J],軟件學報,2009,20(8),P2199-2213.
[3]歐中洪,宋美娜,戰曉蘇,宋俊德,移動對等網絡關鍵技術[J],軟件學報,2010,19(2),P50-53.
[4]程春玲,周蕓,徐小龍,基于主被動連接的P2P節點識別算法[J],計算機技術與發展,2010,20(12),P49-52.
[5]秦豐林,劉琚,P2P 網絡流媒體關鍵技術[J],電子學報,2011,39(4),P919-925.
[6]吳征遠,,基于FMS 的網絡視頻答疑系統設計[J],牡丹江大學學報,2011,20(8),P116-118.