摘要:本文介紹了一種基于B/S體系的Web平臺“電路分析網(wǎng)上答疑系統(tǒng)”的設(shè)計與實現(xiàn).該系統(tǒng)可以使師生在課余時間通過網(wǎng)絡(luò)進(jìn)行快速的電路圖繪制與修改,并可以通過語音和文字兩種方式對疑難問題進(jìn)行交流。
關(guān)鍵詞:網(wǎng)上答疑系統(tǒng);B/S結(jié)構(gòu);電路圖繪制
中圖分類號:TP311.52
文獻(xiàn)標(biāo)識碼:A
1引言
隨著近年來我國網(wǎng)絡(luò)通信建設(shè)的飛速發(fā)展,各行各業(yè)對于網(wǎng)絡(luò)的應(yīng)用已是相當(dāng)普遍。在各大高校中,校園寬帶網(wǎng)的日益完善也使大部分學(xué)生開始通過網(wǎng)絡(luò)進(jìn)行學(xué)習(xí)和交流。但是在高校教學(xué)這個領(lǐng)域,我們依然過分依賴于傳統(tǒng)的教學(xué)模式,對于網(wǎng)絡(luò)的開發(fā)和應(yīng)用程度遠(yuǎn)遠(yuǎn)不夠。即使是網(wǎng)絡(luò)教學(xué)系統(tǒng),也是大多為靜態(tài)、無反饋的系統(tǒng),很少提供交互式學(xué)習(xí)的功能。在教學(xué)改革工作的探討中,互動式教學(xué)一直為人們所關(guān)注。為此,我們在多年電路分析傳統(tǒng)教學(xué)的基礎(chǔ)上,開發(fā)了一個基于B/S結(jié)構(gòu)的網(wǎng)上教學(xué)與答疑系統(tǒng),當(dāng)作“電路分析”教學(xué)的補(bǔ)充環(huán)節(jié),并可延伸至其它課程及其它專業(yè)的教學(xué)。教師使用該系統(tǒng)可以通過在線繪制電路圖、語音文字交流等功能進(jìn)行網(wǎng)上教學(xué)、在線輔導(dǎo)答疑、與學(xué)生互動交流。希望通過此系統(tǒng)充分利用現(xiàn)有的計算機(jī)和網(wǎng)絡(luò)資源,打破傳統(tǒng)教學(xué)模式在時間、空間上的限制,創(chuàng)造一種全新的教學(xué)模式,從而提高教學(xué)效率和質(zhì)量。
2系統(tǒng)架構(gòu)設(shè)計
2.1系統(tǒng)模塊設(shè)計
在多年教學(xué)經(jīng)驗及師生反饋的基礎(chǔ)上,對此系統(tǒng)運用軟件工程的思想可以分為如下幾個模塊,見圖1。
(1) 實時教學(xué)模塊
此模塊是整個系統(tǒng)的核心部分,為了充分彌補(bǔ)課堂教學(xué)的不足,同時也為了加強(qiáng)師生網(wǎng)絡(luò)教學(xué)的互動性,該模塊需設(shè)立如下兩種功能:
第一:師生雙方快速繪制電路圖并實時更新。第二:實時通過語音或者文字形式進(jìn)行交流。確保雙方表述問題直觀準(zhǔn)確。
(2) 教學(xué)資源及留言模塊
為了便于同學(xué)課余自學(xué)及課后復(fù)習(xí),教師可以將部分教學(xué)資源共享,學(xué)生中優(yōu)秀的課程資料也可以上傳。在留言模塊中學(xué)生可以將疑難問題提出并等待老師回復(fù)。
(3) 系統(tǒng)管理及維護(hù)模塊
該模塊主要對整個系統(tǒng)的安全性與規(guī)范化起到保障作用,并進(jìn)行日常管理、維護(hù)工作。
2.2系統(tǒng)實現(xiàn)模式
根據(jù)本系統(tǒng)所設(shè)定的模塊的功能,同時考慮到系統(tǒng)的健壯性、易操作性和易于管理等因素,決定采取基于B/S結(jié)構(gòu)的三層模式進(jìn)行開發(fā),這樣系統(tǒng)將具有良好的靈活性和可擴(kuò)展性,稍做修改就可以應(yīng)對環(huán)境和應(yīng)用條件的變動。同時B/S結(jié)構(gòu)的“瘦客戶端”,使系統(tǒng)具備很高的穩(wěn)定性、延展性和執(zhí)行效率。三層模式將服務(wù)統(tǒng)一于客戶端,也使系統(tǒng)具備了良好的容錯能力和負(fù)載平衡能力。
鑒于與Windows系統(tǒng)良好的兼容性,整個三層系統(tǒng)采用ASP動態(tài)網(wǎng)頁服務(wù)器腳本技術(shù)編寫。ASP是目前十分流行的動態(tài)網(wǎng)頁開發(fā)工具,使用它可以創(chuàng)建和運行動態(tài)、交互的Web服務(wù)器應(yīng)用程序。動態(tài)數(shù)據(jù)對象ADO可以與ASP結(jié)合以建立提供數(shù)據(jù)信息的網(wǎng)頁內(nèi)容,通過ODBC驅(qū)動程序連接數(shù)據(jù)庫。ADO具有容易使用、開發(fā)執(zhí)行快速、消耗系統(tǒng)資源較少和占用磁盤空間小等優(yōu)點[3]。當(dāng)使用者利用瀏覽器作為輸入界面,提出問題或輸入查詢請求時,瀏覽器會將這些數(shù)據(jù)返回給服務(wù)器,服務(wù)器對這些數(shù)據(jù)進(jìn)行處理,如通過ADO創(chuàng)建數(shù)據(jù)對象,根據(jù)用戶的請求對數(shù)據(jù)進(jìn)行相應(yīng)的操作(或是將數(shù)據(jù)存入數(shù)據(jù)庫,或是對數(shù)據(jù)進(jìn)行查詢等),最后服務(wù)器將執(zhí)行的結(jié)果再通過ASP程序返回給瀏覽器,通過WEB頁面顯示出來。
在系統(tǒng)開發(fā)過程中,還需要結(jié)合COM組件技術(shù)將語音傳輸與電路圖繪制功能制作成ActiveX控件。而對于由于實時語音、圖畫傳輸所造成的系統(tǒng)頻繁刷新導(dǎo)致用戶舒適度下降的問題,則使用最新的AJAX技術(shù)解決,提高界面友好性。圖2為整個系統(tǒng)實現(xiàn)模式的結(jié)構(gòu)圖。
3COM組件完成語音、繪圖功能
COM是微軟公司為了計算機(jī)工業(yè)的軟件生產(chǎn)更加符合人類的行為方式開發(fā)的一種新的軟件開發(fā)技術(shù)。在COM構(gòu)架下,人們可以開發(fā)出各種各樣的功能專一的組件,然后將它們按照需要組合起來,構(gòu)成復(fù)雜的應(yīng)用系統(tǒng)。COM技術(shù)可以使多個應(yīng)用系統(tǒng)重復(fù)利用同一個組件;可以方便地將應(yīng)用系統(tǒng)擴(kuò)展到網(wǎng)絡(luò)環(huán)境下;而且COM與語言、所在平臺無關(guān)。
本系統(tǒng)基于COM組件技術(shù)的ActiveX控件采用C++語言開發(fā),分為語音傳輸與實時繪制電路圖兩部分。
3.1語音組件
語音傳輸功能的實現(xiàn)需要深入掌握socket套接字原理和網(wǎng)絡(luò)傳輸協(xié)議,合理使用socket技術(shù),掌握常用的語音處理算法、播放處理技巧和數(shù)據(jù)封裝格式。圖3為語音處理控件原理圖。
其具體實現(xiàn)的方法是針對一個點實現(xiàn)話音的實時采集、處理、播放,同時能進(jìn)行可靠的傳送和接收,然后將每個點與服務(wù)器相連接。對于前者,采用Windows MDK的低層音頻服務(wù)比較合適,因為底層音頻服務(wù)中的回調(diào)機(jī)制為我們提供了很大的方便。聲音的采集和播放建立在Windows底層波形音頻數(shù)據(jù)塊結(jié)構(gòu)WAVEHDR的基礎(chǔ)上。當(dāng)應(yīng)用程序不斷向設(shè)備驅(qū)動程序提供音頻數(shù)據(jù)時,設(shè)備驅(qū)動程序控制音頻設(shè)備在后臺完成錄音和放音的具體操作,通過回調(diào)機(jī)制可以檢測到何時用完一個數(shù)據(jù)塊,并及時傳送下一個數(shù)據(jù)塊,保證了聲音的連續(xù)性。有了這種單機(jī)上的實時采集、回放功能后,接下來的工作就是在網(wǎng)絡(luò)上傳送話音數(shù)據(jù)。在B/S結(jié)構(gòu)的網(wǎng)絡(luò)傳輸方面,選擇基于RTP協(xié)議進(jìn)行開發(fā),RTP是點對點通信(unicast)和多點廣播(multicast,多播)網(wǎng)絡(luò)上的實時傳輸協(xié)議,面向應(yīng)用層,用來給實時數(shù)據(jù)的封裝提供一個固定框架格式。RTP本身不具有獨立傳輸數(shù)據(jù)的能力,它必須和底層的網(wǎng)絡(luò)協(xié)議(TCP、UDP等)結(jié)合起來完成數(shù)據(jù)傳輸服務(wù)。圖4為語音傳輸控件界面圖。
3.2繪圖組件
為了提高用戶手繪電路圖的效率,決定采用面向?qū)ο?、基于圖元的Windows GDI繪制技術(shù)來完成繪圖組件功能。
GDI是Graphics Device Interface的縮寫,含義是圖形設(shè)備接口,它的主要任務(wù)是負(fù)責(zé)系統(tǒng)與繪圖程序之間的信息交換,處理所有Windows程序的圖形輸出。
在Windows操作系統(tǒng)下,GDI處理來自Windows應(yīng)用程序的圖形函數(shù)調(diào)用,然后把這些調(diào)用傳遞給合適的設(shè)備驅(qū)動程序,由設(shè)備驅(qū)動程序來執(zhí)行與硬件相關(guān)的函數(shù)并產(chǎn)生最后的輸出結(jié)果。GDI的繪制工作需要通過一個設(shè)備上下文進(jìn)行,設(shè)備上下文是一種Windows數(shù)據(jù)結(jié)構(gòu),它包括了與一個設(shè)備的繪制屬性相關(guān)的信息,每次繪制操作所對應(yīng)的設(shè)備上下文對象中封裝了實現(xiàn)繪制線條、形狀和文本的Windows API函數(shù)。
圖5為繪圖控件界面圖,對于其繪制過程中所用到的圖元的設(shè)計首先要考慮的是按照對功能的抽象,進(jìn)行類基礎(chǔ)上的合理層次劃分。
考慮到圖元設(shè)計的實用性和可擴(kuò)展性,圖元繪制系統(tǒng)應(yīng)滿足以下要求:
(1) 圖元應(yīng)包括電路分析教學(xué)中常見的元素,并能讓用戶隨意改變圖元的大小、位置等屬性。
(2) 圖元對象的多重復(fù)用,根據(jù)圖元的屬性方法和操作特性,進(jìn)一步設(shè)計圖元對象的成組和拆組功能。
整個繪圖控件運用軟件工程的思想,將繪圖過程進(jìn)行細(xì)化和優(yōu)化處理,圖6是繪圖控件的時序圖。
4AJAX技術(shù)在系統(tǒng)中的應(yīng)用
AJAX是一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。傳統(tǒng)的Web應(yīng)用允許用戶填寫表單(form),當(dāng)提交表單時就向Web服務(wù)器發(fā)送一個請求。服務(wù)器接收并處理傳來的表單,然后返回一個新的網(wǎng)頁。這個做法浪費了許多帶寬,因為在前后兩個頁面中的大部分HTML代碼往往是相同的。由于每次應(yīng)用的交互都需要向服務(wù)器發(fā)送請求,應(yīng)用的響應(yīng)時間就依賴于服務(wù)器的響應(yīng)時間。這導(dǎo)致了用戶界面的響應(yīng)比本地應(yīng)用慢得多。
與此不同的是,AJAX應(yīng)用可以僅向服務(wù)器發(fā)送并取回必需的數(shù)據(jù),它使用SOAP或其它一些基于XML的web service接口,并在客戶端采用JavaScript處理來自服務(wù)器的響應(yīng)。因為在服務(wù)器和瀏覽器之間交換的數(shù)據(jù)大量減少,結(jié)果就是響應(yīng)更快的應(yīng)用。同時很多的處理工作可以在發(fā)出請求的客戶端機(jī)器上完成,所以Web服務(wù)器的處理時間也減少了。
根據(jù)AJAX的特點,在系統(tǒng)中將AJAX運用于用戶登錄模塊與語音、繪圖傳輸模塊。在用戶登錄模式中,用戶可以用游客身份登錄系統(tǒng),在觀看其他人討論后,可以直接登錄參加討論,而不用像傳統(tǒng)的web系統(tǒng)要先退回到登錄模塊再重新進(jìn)入討論區(qū)。在語音、繪圖實時傳輸模塊,由于頻繁的系統(tǒng)刷新,影響了用戶的舒適度,AJAX可以不打斷用戶之間的交流,將傳輸、刷新工作轉(zhuǎn)入后臺運行,提高了系統(tǒng)的友好性。
5結(jié)束語
通過網(wǎng)絡(luò)組織答疑活動,提高了學(xué)生課余時間主動參與學(xué)習(xí)的興趣,調(diào)動了學(xué)生學(xué)習(xí)的積極性。同學(xué)與同學(xué)之間、教師與同學(xué)之間的討論活躍了思維,彌補(bǔ)了傳統(tǒng)教學(xué)師生互動的不足。作為一種新的嘗試,網(wǎng)絡(luò)答疑系統(tǒng)還有一些需要改善的方面,比如用戶界面設(shè)計的友好性,繪制電路圖功能的多樣性等,需要在以后的工作中繼續(xù)完善。
參考文獻(xiàn):
[1] 沈文智. Microsoft IIS 網(wǎng)頁技術(shù)[M]. 北京:人民郵電出版社,1998.
[2] 薩師煊,王珊. 數(shù)據(jù)庫系統(tǒng)概論[M]. 北京:高等教育出版社,2001.
[3] 廖彬山. ASP動態(tài)網(wǎng)站開發(fā)教程[M]. 北京:清華大學(xué)出版社,2000.
[4] 袁連海,董文. SQL Server 2000應(yīng)用開發(fā)實例教程[M]. 北京:機(jī)械工業(yè)出版社,2002.
[5] 吳建明. web service在校園即時消息系統(tǒng)中的應(yīng)用[J]. 計算機(jī)工程,2004.
Abstract: This paper introduces the design and implementation of a sort of electronic circuits analyzes online answering system based on B/S framework. Teachers and students could draw and modify the circuit diagram online rapidly . The online answering is the important of a remote education system , which can solve the view-exchanging problem between students and teachers.
Key words: online answering system, B/S, circuit diagram drawing