盧民榮
(江夏學院 福建福州 350003)
基于Socket的實驗室智能控制系統(tǒng)研究
盧民榮
(江夏學院 福建福州 350003)
計算機實驗教學主要在機房進行,為了避免學生在上課時玩游戲、看電影、瀏覽網(wǎng)頁等,文章提出研究基于Socket的實驗室智能控制系統(tǒng)。該系統(tǒng)主要通過教務部門的教務端、實驗室教師機端和學生端三端管理,從學生端收集學生上課各種行為,根據(jù)行為庫分等級進行智能消息提示和遠程關閉進程等處理。通過智能偽裝防止學生惡意關閉本控制系統(tǒng),并將經(jīng)常出現(xiàn)網(wǎng)絡不正常的計算機信息推送到實驗室管理人員,以降低學生自斷網(wǎng)絡擺脫監(jiān)控的做法。系統(tǒng)還提供了智能監(jiān)管功能,對實驗室教師和學生進行雙向監(jiān)督,有效減少學生異常行為,提升教師監(jiān)控力度。
Socket,多線程,實驗教學,教務監(jiān)管,智能控制
計算機實驗室是高校教學、科研的重要場所,計算機實驗教學是教學科研的重要組成部分,其教學質量直接影響到整個學科的系統(tǒng)教學效果[1]。陳雅、徐省華等針對廣州市及其周邊的“211工程”高校、一般本科高校、專科院校共11所高校進行實驗教學管理現(xiàn)狀調查,只按教學內(nèi)容進行檢查的占9%,無任何檢查的占27.3%[2]。高校實驗室上課基本形式是以教師為主體進行講解,學生完成相應的實踐作品。上機課一般情況下是一個教師面對幾十個學生,部分資源緊張的甚至面對上百個學生。在上課過程中學生難免出現(xiàn)玩游戲、看電影等與學習無關的行為。實驗教學布置的課堂作業(yè)往往是電子版材料,相互拷貝的抄襲現(xiàn)象嚴重等均給教師和教務管理人員的工作帶來很大的麻煩,課堂管理是公認的難題。為了杜絕學生出現(xiàn)違規(guī)行為,一般都是教師來回巡視實驗室,但這種做法既浪費教師的時間又容易出現(xiàn)顧此失彼,影響整體教學質量[3,4]。
隨著計算機技術的迅速發(fā)展,通過計算機技術實施遠程計算機監(jiān)控應用越來越廣泛,高校實驗室通過監(jiān)控系統(tǒng)可以進一步簡化教師對學生的管理,提高課堂效率[5,6]。目前高校實驗室運用比較普遍的廣播、監(jiān)控系統(tǒng)有紅蜘蛛多媒體電子教室、凌波多媒體教學軟件等具有比較齊全的電子教學功能。它們可以清楚展示教師操作計算機的細節(jié)的屏幕廣播、讓教師或某個學生對其他學生的電腦進行操作的遠程遙控、以及屏幕監(jiān)視、屏幕錄像、電子畫板、收發(fā)作業(yè)、遠程開關機等。但對學生進行學習無關操作時卻無法及時阻止或提示,本文運用Socket技術,結合C#語言開發(fā)實驗室智能控系統(tǒng),主要實現(xiàn)記錄學生與學習無關的異常行為,并根據(jù)異常等級實施智能控制,同時還包括教務監(jiān)管、消息推送、進程偽裝和程序自適應等功能。通過實驗表示,基于Socket技術的實驗室智能控制系統(tǒng)可以和機房里現(xiàn)有的凌波多媒體教學軟件相互融合,有效制止學生在實驗室的異常行為,有效提高實驗教學質量,其系統(tǒng)功能本身具有實際的應用和推廣價值。
1.1 Socket套接字通信工作原理
Socket(套接字)接口是TCP/IP網(wǎng)絡中最為通用的 API,技術也最為成熟、穩(wěn)定。Visual Studio 2010(C#)提供了很好的Socket編程支持,運用C#編程設計可以很方便在計算機中創(chuàng)建一個通信端口。通過這個端口,可以將局域網(wǎng)內(nèi)計算機可以與任何一臺具有 Socket 接口的計算機通信;而且Socket 接口也是Internet 上進行應用開發(fā)最為通用的API[7,8]。目前高校校園網(wǎng)絡及實驗室組網(wǎng),基本都是使用TCP/IP協(xié)議網(wǎng)絡,Socket編程可以實現(xiàn)基于TCP/IP協(xié)議的網(wǎng)絡通信功能,通過Socket接口通信技術實現(xiàn)客戶端和服務器之間數(shù)據(jù)流發(fā)送和接收功能[6],其工作原理如圖1所示。
圖1 Socket工作原理
1.2 系統(tǒng)網(wǎng)絡架構
實驗實訓中心一般設在教務處中,或獨立為部門。根據(jù)高校實驗室網(wǎng)絡管理,實驗實訓中心和教務處相關實驗教學管理人員的辦公場所與實驗室屬于半分離狀態(tài);各個實驗室內(nèi)部是都一個獨立網(wǎng)段的局域網(wǎng),學校各個辦公場所和實驗室又組成一個大的局域網(wǎng)即校園網(wǎng),因此各級網(wǎng)絡之間除財務處等個別科室外,一般都可以進行相互通信。系統(tǒng)整體包括教務監(jiān)管服務端、教師端、學生端三大部分,教師端設計為兩個角色既面向實驗室學生又接受教務處管理;在實驗室內(nèi)由教師機承擔主控Socket服務端,與實驗室內(nèi)所有學生機進行通信,獲得學生上課行為并根據(jù)系統(tǒng)智能處理相關行為;同時在教務監(jiān)理總服務端監(jiān)聽下,實驗室教師機定時將學生上課行為匯總到教務端,對于異常行為的信息則立即發(fā)送到教務端,教務端根據(jù)該學生在不同實驗室的學習行為進行統(tǒng)計分析,如異常行為次數(shù)過多則從教務處下達處罰通知至教師端,教師端再轉發(fā)到學生端,其系統(tǒng)網(wǎng)絡架構見圖2。
圖2 系統(tǒng)網(wǎng)絡架構
如圖2所示,本系統(tǒng)采用分層模塊化結構設計,可以減輕教務服務器的負荷,減少網(wǎng)絡擁塞,有利于系統(tǒng)的實施。
1.3 實驗室教師機與學生機的通信設計
Socket在不同主機的相關進程之間的進行數(shù)據(jù)交換,其構造函數(shù)有兩個參數(shù),第一個參數(shù)是IP地址即依照TCP/IP協(xié)議要連接的目標服務端計算機的IP地址;第二個參數(shù)是端口號即服務端計算機上提供通訊服務的端口號且該端口號在通訊前必須要分配一個沒有被訪問的;只有滿足這兩個參數(shù)才可能進行連接,建立兩個進程間的通訊鏈路[3]。同一實驗室內(nèi)教師機和學生機的網(wǎng)絡布局都會設計為同一網(wǎng)段的局域網(wǎng),教師機IP地址一般都是固定的,作為服務端進行監(jiān)控學生計算機,而學生機的IP地址相對比較不固定,作為客戶端連接沒有影響。教師機與學生機的Socket通信設計如圖3所示。
實驗室上課時,教師機作為Socket通信的服務端,首先建立Socket()把IP地址和端口號進行綁定并啟動監(jiān)聽,同時根據(jù)實驗室教師規(guī)模設置本實驗室服務端的請求隊列長度和實驗室網(wǎng)段規(guī)則,用于限制其它實驗室學生機不正常的連接。學生機和教師機建立連接后,學生機就可以將本機上課操作行為發(fā)送到教師機,教師機接受學生信息后系統(tǒng)根據(jù)異常行為判斷,如學生存在不正常行為將給予警告,并記錄學生的異常行為,嚴重者教務處介入監(jiān)管。實驗室下課時,關閉計算機時自動關閉Socket所有連接。
圖3 教師機與學生機的通信設計
本系統(tǒng)是基于Visual Studio 2010開發(fā)平臺,采用C#編程語言,實現(xiàn)Socket三級管理;將實驗室教師和教務監(jiān)管人員聯(lián)合管理學生上課行為,糾正不良學風,通過異常行為檢測和智能消息提醒輔助提升學習質量,采用進程偽裝技術防止學生逃離監(jiān)控范圍。
2.1 異常行為處理
系統(tǒng)對異常行為進行分類,并預設了各種行為表現(xiàn)和相應的處理機制,學生在實驗室上課過程中系統(tǒng)會實時登記學生上課行為,并根據(jù)學生行為進行相關處理。計算機當前各種操作都會記錄到系統(tǒng)進程中,每個進程都對應某一種應用[7],通過監(jiān)視系統(tǒng)進程可以獲取學生當前操作的應用程序。其中打開網(wǎng)頁操作所對應的系統(tǒng)進程比較特殊,在系統(tǒng)進程中只能獲取其是否打開網(wǎng)頁的進程,而瀏覽的網(wǎng)址是否合法還需要在網(wǎng)頁進程中挖掘,獲得網(wǎng)址步驟為:
(1)導入user32.dll,并設計枚舉單元
public enumSendMessageTimeoutFlags:uint
{
SMTO_NORMAL = 0x0000,
SMTO_BLOCK = 0x0001,
SMTO_ABORTIFHUNG = 0x0002,
SMTO_NOTIMEOUTIFNOTHUNG = 0x0008
}
(2)通過FindWindow(″IEFrame″, null)獲得當前處理IE瀏覽器窗口類名和窗口名稱匹配指定的字符串ip;
(3)然后在字符串ip基礎上調用FindWindowEx(ip,IntPtr.Zero,″WorkerW″, null)獲得第一激活窗口字符串;
(4)最后通過SendMessageTimeout()調用窗口程序,并返回當前IE瀏覽器的網(wǎng)址。
將以上4個步驟整合成函數(shù)getCurrentURL(),方便程序調用并獲得當前IE瀏覽器的網(wǎng)址,具體收集學生上課行為程序如下:
System.Diagnostics.Process[] p = System.Diagnostics.Process.GetProcesses();
//要發(fā)送的消息,格式為:“進程名稱||句柄||進程標識”
string[] msg = new string[p.Length];
for (int i = 0; i
if (p[i].ProcessName == ″iexplore″)msg[i] = p[i].ProcessName + ″||″ + ″當前打開網(wǎng)頁″+ ″||″ + getCurrentURL();
else
msg[i] = p[i].ProcessName + ″||″ + p[i].Handle.ToString() + ″||″ + p[i].Id.ToString();
//將本機進程信息發(fā)送到服務端
sendData(socket,msg);
2.2 智能處理
教師機接受到學生的上課行為信息,系統(tǒng)根據(jù)行為庫將學生上課行為按不同等級進行劃分,進行相關處理,如警告信息提示、遠程強制關閉、上報教務處等,具體行為庫維護如圖4所示。
圖4 行為庫維護界面
行為庫的健全直接影響本系統(tǒng)的智能程度,當計算機出現(xiàn)進程在行為庫中不匹配時,系統(tǒng)會智能檢測學生機CPU、內(nèi)存使用率。當該學生機的CPU、內(nèi)存使用率連續(xù)比較長時間處于較高狀態(tài),系統(tǒng)會將該進程列為C類警告,并發(fā)送消息提示學生注意上課。系統(tǒng)管理員定期檢查C類警告進程,根據(jù)該進程對上課影響程度調整警告等級和設置相關處理辦法。學生在上課過程中可能需要通過網(wǎng)頁查詢資料,在行為庫中只能檢測到學生是否打開網(wǎng)頁而具體打開網(wǎng)址是否符合上課要求,則需要在行為庫中對網(wǎng)址合法化進行維護。互聯(lián)網(wǎng)的網(wǎng)站很多,維護比較麻煩,系統(tǒng)提供智能的處理方式,通過網(wǎng)站打開次數(shù)和時長判定該網(wǎng)站是否介入審查,當教師或教務管理人員審查后對該網(wǎng)站進行評定行為等級。學生在上課過程中發(fā)現(xiàn)計算機被監(jiān)控,可能會玩手機或進行其它與計算機無關的操作等,此時系統(tǒng)會智能判定學生機是否出現(xiàn)不作為的情況。當CPU、內(nèi)存使用率在一定時間段處于基本不變或較長時間網(wǎng)絡處于監(jiān)測之外則視為學生上課不作為,系統(tǒng)登記后自動發(fā)送消息對學生機。
當系統(tǒng)檢測到學生的異常行為,系統(tǒng)會自動調用警告函數(shù)sendWarning(″10.2.22.18″,“警告:林興杰同學上課玩游戲已被登記,請立即關閉游戲!”);學生機彈出如圖5提示框。如果系統(tǒng)警告3次及以上仍不改正,系統(tǒng)將調用函數(shù)killProcess(“10.2.7.33”,pID,pHandle,“關閉:陳超同學已經(jīng)警告三次仍然繼續(xù)玩游戲,系統(tǒng)將強制關閉!”);進行遠程關閉學生機。
圖5 警告消息提示界面
2.3 智能偽裝
實驗室智能控制系統(tǒng)可以減少學生玩游戲、看電影等現(xiàn)象,但有些學生就會嘗試擺脫監(jiān)控,在上課時斷開網(wǎng)絡或結束實驗室智能控制系統(tǒng)的進程。當正常網(wǎng)絡斷開3分鐘以上,教師機會出現(xiàn)未正常連接的提示信息,同時系統(tǒng)會調用網(wǎng)絡ping命令,如網(wǎng)絡連接正常則表示學生結束了系統(tǒng)控制進程,此時通過教師機遠程啟動該控制系統(tǒng)。為了使保護控制系統(tǒng)的進程不被發(fā)現(xiàn),可采用進程偽裝為操作系統(tǒng)內(nèi)部進程,如:svchost,system,rundll32等[8]。經(jīng)過偽裝的進程,看起來就像正常的系統(tǒng)進程,不易被察覺,但在系統(tǒng)更新時要分別進行。
進程保護不允許計算機用戶強制結束任務或關閉進程,以達到應用程序或服務穩(wěn)定運行。進程偽裝方法結合進程保護技術,其保護效果將會更好,一方面可以保護自身不被惡意軟件破壞,另一方面系統(tǒng)安全防護軟件不易檢測出來[9]。
2.4 智能監(jiān)管
為了加強教務管理,教務部門會定期抽查或巡視課堂,但教室、學生數(shù)多且巡視會影響課堂教學,這給教務監(jiān)管帶來不少麻煩,基于Socket的實驗室智能控制系統(tǒng)可以輔助教務部門監(jiān)管教學,實現(xiàn)智能管理。系統(tǒng)從各實驗室教師機接收學生上課行為,每個月統(tǒng)計各個實驗室上課情況,對學生行為進行綜合分析,將學生上課情況定期生成實驗教學質量檢查報告,并分發(fā)至輔導員,對經(jīng)常玩游戲、看電影、曠課等現(xiàn)象的學生進行批評處理。經(jīng)教務智能監(jiān)管后,學生上課異常行為明顯減少,尤其是玩游戲、看電影等明顯減少,但曠課改進比較小,如圖6所示(數(shù)據(jù)以出現(xiàn)警告信息人次進行統(tǒng)計)。
圖6 異常行為變化(按月統(tǒng)計)
系統(tǒng)按學期統(tǒng)計出各個學生上課各種行為,一方面為批評和指正學生提供依據(jù),另一方面也能警示教師維護好上課課堂秩序。優(yōu)差學生上課行為的對比如圖7所示,教師實驗教學課堂行為控制區(qū)別如圖8所示。
圖7 優(yōu)差學生上課行為對比
圖8 教師實驗教學課堂行為控制區(qū)別
基于Socket的實驗室智能控制系統(tǒng)一方面能及時提示學生上課避免出現(xiàn)異常行為,并進行糾正;另一方面也能督促教師提高實驗教學課堂控制。同時對于位置固定的計算機經(jīng)常出現(xiàn)網(wǎng)絡不能正常連接,則能提示實驗室管理人員進行檢測和維修,保證網(wǎng)絡正常工作。從兩個學期實驗上課行為觀察,學生異常行為有一定的改善。但系統(tǒng)智能控制主要基于行為庫,而行為庫的完善程度直接影響系統(tǒng)的智能程度。這也加大了系統(tǒng)維護的工作量,且需進一步提升系統(tǒng)的自我維護的智能程度。另外,游戲應用層出不窮尤其是網(wǎng)頁游戲,難以有效監(jiān)控。運行基于Socket的實驗室智能控制系統(tǒng)后,確實能明顯降低學生玩游戲、看電影等現(xiàn)象,有效提升實驗教學質量,從技術上為教務部門監(jiān)控實驗教學提供新的手段,該方案具有一定的推廣價值。
[1]劉宣春.湖南高校圖書館人力資源管理現(xiàn)狀調查與分析[J].高校圖書館工作,2008,28(6):50.
[2]陳雅,徐省華.高校計算機實驗室設備及實驗教學管理現(xiàn)狀的調查與分析[J].實驗技術與管理,2010,48(10):191.
[3]郭玉芝.基于Socket的實驗室教師機遠程控制系統(tǒng)的設計與研究[D].中國海洋大學,2011.7.
[4]康冰,趙宏偉,任麗莉. 網(wǎng)絡控制系統(tǒng)建模方法綜述[J].吉林大學學報(信息科學版),2006,24(1):42.
[5]蔣漪漣.Windows服務器性能監(jiān)控的設計與實現(xiàn)[J].微型電腦應用,2010,26(9):22.
[6]陳爭光,楊雪松.系統(tǒng)進程監(jiān)視及保護系統(tǒng)的實現(xiàn)[J].自動化技術與應用,2008,27(2):64.
[7]Alsagoff S N.Malware self protection mechanism[C].International Symposium on Information Technology.Malaysia:Kuala Lumpur,2008.1.
[8]藍智靈,宋宇波,唐磊.基于直接內(nèi)核對象操作的進程偽裝保護方法[J].東南大學學報(自然科學版),2013,59(1):24.
(責任編輯胡安娜)
The Research of Laboratory Intelligence Control System Based on Socket
LU Minrong
(Jiangxia University,F(xiàn)uzhou,F(xiàn)ujian 350003, China)
Nowadays, most of the experiments in colleges and universities are conducted by computers. However, some of the students tend to play video games,see online movies,access various kinds of websites while having experiment classes. Therefore the laboratory intelligence control system based on socket was proposed in this paper in order to reduce the amount of students doing other things except experiments. This system could not only supervised the terminals of students but also collected information of students’ operations on computers, such as seeing online movies,disconnecting the internet in order to free from monitoring by the system. All this information would be sent to the system used by the administrators of laboratories, who could shut down these processes.
socket, multithreading, experiment teaching, teaching affairs monitoring,intelligence control
2014-6-16
盧民榮(1981-),男,福建漳州,碩士,講師、工程師,研究方向為實時計算機應用、虛擬仿真和數(shù)據(jù)挖掘。Email:luminrong163@163.com。
TP 311
A
1674-9545(2014)04-0029-(05)