王玉娟,徐繞山
南京信息職業(yè)技術(shù)學(xué)院,江蘇 南京 210046
軟件開(kāi)發(fā)在前幾年進(jìn)行了C/S方式到B/S方式的轉(zhuǎn)變,B/S方式的優(yōu)點(diǎn)明顯,然而也存在著不足之處,主要表現(xiàn)在以下幾個(gè)方面:
1)網(wǎng)絡(luò)帶寬問(wèn)題。這個(gè)問(wèn)題在局域網(wǎng)應(yīng)用不存在,但在廣域網(wǎng)下就可能是問(wèn)題。但隨著互聯(lián)網(wǎng)的高速發(fā)展和https技術(shù)的廣泛應(yīng)用,這個(gè)問(wèn)題應(yīng)該是越來(lái)越小,反之C/S方式在廣域條件下應(yīng)用,是更麻煩的事情,如果不配置VPN,就要去用程序做數(shù)據(jù)同步。
2)服務(wù)器負(fù)載。實(shí)際上隨著集群技術(shù)的應(yīng)用和PC Server價(jià)格的不斷降低,這個(gè)問(wèn)題也不是問(wèn)題,并且如果用戶數(shù)真的很多,可能B/S反而好做一點(diǎn),而C/S并不能直接用DB SERVER支撐大用戶量,而是還需要一個(gè)中間的應(yīng)用服務(wù)層,即C/S/S架構(gòu)才能支持。
3)用戶易用性。這個(gè)才是很多用戶權(quán)衡時(shí)考慮的重點(diǎn)。在一般概念中,B/S的界面遠(yuǎn)遠(yuǎn)比C/S的界面用起來(lái)不方便。
而Ajax技術(shù)就解決了B/S方式所遇到的困難,它使得用戶可以在瀏覽器中像在桌面軟件上一樣輕松、方便地操作,而且不需要安裝插件、控件之類的東西,使得Web應(yīng)用的優(yōu)勢(shì)充分發(fā)揮出來(lái)。
目前,Ajax已經(jīng)成為web應(yīng)用的主流開(kāi)發(fā)技術(shù),大量的業(yè)界巨頭已經(jīng)采納并且在大力推動(dòng)這個(gè)技術(shù)的發(fā)展。例如,IBM、Oracle、Yahoo等業(yè)界領(lǐng)先的公司啟動(dòng)了Open Ajax項(xiàng)目,致力于為Ajax開(kāi)發(fā)建造先進(jìn)強(qiáng)大的開(kāi)發(fā)工具;微軟開(kāi)發(fā)了自己的Ajax框架Altas,用于和服務(wù)器端的ASP.NET框架配合工作;Sun公司也將Ajax技術(shù)列入J2EE的藍(lán)圖中,作為J2EE技術(shù)的有益補(bǔ)充。然而與任何新生技術(shù)一樣,Ajax在某些方面可能犯錯(cuò)誤。
1)XMLHttpRequest的有效性
XMLHttpRequest是Ajax的最核心技術(shù),開(kāi)發(fā)者面對(duì)的一個(gè)最大問(wèn)題是當(dāng)XMLHttpRequest不可用時(shí)如何反應(yīng)。雖然大部分現(xiàn)代瀏覽器支持XMLHttpRequest,但還是有少量的用戶,他們的瀏覽器不能支持,或由于瀏覽器安全設(shè)置而阻止對(duì)XMLHttpRequest的使用。
2)可用性考慮
圍繞著Ajax應(yīng)用的大部分問(wèn)題都是很普通的問(wèn)題。例如,讓用戶知道他們的輸入已經(jīng)被注冊(cè)并處理,是很重要的,因?yàn)樵赬MLHttpRequest處理過(guò)程中并不能提供通常的漏斗旋轉(zhuǎn)光標(biāo)。另一個(gè)問(wèn)題是,用戶可能沒(méi)有注意到他們正在觀看的頁(yè)面已經(jīng)被更新??梢酝ㄟ^(guò)使用各種視覺(jué)技巧來(lái)將用戶的眼光吸引到頁(yè)面的更新區(qū)域。還有一個(gè)問(wèn)題是通過(guò)Ajax更新頁(yè)面打斷了瀏覽器“退回前頁(yè)”按鈕的正常工作,地址欄中的URL不能反映頁(yè)面的全部狀態(tài),并且不能使用書(shū)簽功能。
3)服務(wù)器負(fù)載
使用Ajax界面代替?zhèn)鹘y(tǒng)的基于form的界面可能戲劇性地增加傳遞到服務(wù)器的請(qǐng)求數(shù)量。例如,一個(gè)普通的Google搜索給服務(wù)器造成一次命中,并在用戶確認(rèn)搜索表單時(shí)發(fā)生。然而,Google Suggest,將會(huì)試圖自動(dòng)完成你的搜索詞,在用戶打字時(shí)將會(huì)往服務(wù)器發(fā)送多個(gè)請(qǐng)求。
4)處理異步
沒(méi)有任何東西可以保證XMLHttpRequest將會(huì)按照它們被發(fā)送的順序來(lái)依次結(jié)束。實(shí)際上,在設(shè)計(jì)系統(tǒng)時(shí),應(yīng)該始終假定它們不會(huì)按原來(lái)順序結(jié)束,此時(shí)應(yīng)考慮該如何處理異步服務(wù)器響應(yīng)。
總之,從目前來(lái)看,Ajax的應(yīng)用還不是很成熟。
本文針對(duì)Ajax應(yīng)用中的服務(wù)器負(fù)載加重,異步通信的無(wú)序性和XMLHttpRequest可用性等問(wèn)題給出了解決方法。
1)XMLHttpRequest的有效性
解決XMLHttpRequest的有效性首先使用“窮舉法”適應(yīng)不同的瀏覽器。對(duì)于當(dāng)今流行的瀏覽器如IE、Navigator、Firefox等新近版本都對(duì)XMLHttpRequest提供了支持。
雖然大部分現(xiàn)代瀏覽器支持XMLHttpRequest,但還是有少量的用戶的瀏覽器不能支持,或由于瀏覽器安全設(shè)置而阻止對(duì)XMLHttpRequest的使用。所以,可以采用對(duì)特殊應(yīng)用環(huán)境的“正常降級(jí)”使用,保證應(yīng)用系統(tǒng)能正常運(yùn)行,在系統(tǒng)中保留適用于不支持XMLHttpRequest的瀏覽器的功能。
解決方法之一是設(shè)置當(dāng)瀏覽器不支持XMLHttpRequest時(shí),可以進(jìn)行常規(guī)的提交處理,并執(zhí)行頁(yè)面的整體刷新來(lái)反映狀態(tài)的變化。Ajax的行為可以在頁(yè)面被載入時(shí)通過(guò)JavaScript添加到頁(yè)面中,只在XMLHttpRequest可用的情況下,為操作綁定JavaScript處理函數(shù)。另一個(gè)方法是在用戶登錄時(shí)檢測(cè)XMLHttpRequest是否可用,再?zèng)Q定是提供Ajax版本還是常規(guī)基于form提交的版本。
2)服務(wù)器負(fù)載
使用Ajax界面代替?zhèn)鹘y(tǒng)的基于客戶端表單元素的界面根據(jù)用戶的操作,使頁(yè)面局部刷新而不是整個(gè)頁(yè)面重新載入,可能產(chǎn)生急劇地增加傳遞到服務(wù)器的請(qǐng)求數(shù)量。會(huì)造成服務(wù)器負(fù)載過(guò)重。例如,Google Suggest,將會(huì)試圖自動(dòng)完成你的搜索詞,在用戶打字時(shí)將會(huì)往服務(wù)器發(fā)送多個(gè)請(qǐng)求。
解決方法可以從兩個(gè)方面考慮,即減少網(wǎng)絡(luò)流量和減少服
2)以交換式集線器代替共享式集線器的方式將不失為解除隱患的又一方法。
強(qiáng)化計(jì)算機(jī)管理是網(wǎng)絡(luò)系統(tǒng)安全的保證,加強(qiáng)設(shè)施管理,確保計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)實(shí)體安全;強(qiáng)化訪問(wèn)控制,力促計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)運(yùn)行正常。
訪問(wèn)控制是網(wǎng)絡(luò)安全防范和保護(hù)的主要措施,它的任務(wù)是保證網(wǎng)絡(luò)資源不被非法用戶使用和非常訪問(wèn),是網(wǎng)絡(luò)安全最重要的核心策略之一。
第一,建立入網(wǎng)訪問(wèn)功能模塊。入網(wǎng)訪問(wèn)控制為網(wǎng)絡(luò)提供了第一層訪問(wèn)控制。用戶的入網(wǎng)訪問(wèn)控制可分為3個(gè)過(guò)程:用戶名的識(shí)別與驗(yàn)證;用戶口令的識(shí)別與驗(yàn)證;用戶帳號(hào)的檢查。在3個(gè)過(guò)程中,如果其中一個(gè)不能成立,系統(tǒng)就視為非法用戶,則不能訪問(wèn)該網(wǎng)絡(luò)。
第二,建立網(wǎng)絡(luò)的權(quán)限控制模塊。
第三,建立屬性安全服務(wù)模塊。屬性安全控制可以將給定的屬性與網(wǎng)絡(luò)服務(wù)器的文件、目錄和網(wǎng)絡(luò)設(shè)備聯(lián)系起來(lái)。屬性安全在權(quán)限安全的基礎(chǔ)上提供更進(jìn)一步的安全性。網(wǎng)絡(luò)屬性可以控制以下幾個(gè)方面的權(quán)限:向某個(gè)文件寫(xiě)數(shù)據(jù)、拷貝一個(gè)文件、刪除目錄或文件的查看、執(zhí)行、隱含、共享及系統(tǒng)屬性等,還可以保護(hù)重要的目錄和文件,防止用戶對(duì)目錄和文件的誤刪除、執(zhí)行修改、顯示等。
第四,建立網(wǎng)絡(luò)服務(wù)器安全設(shè)置模塊。網(wǎng)絡(luò)服務(wù)器的安全控制包括設(shè)置口令鎖定服務(wù)器控制臺(tái);設(shè)置服務(wù)器登錄時(shí)間限制、非法訪問(wèn)者檢測(cè)和關(guān)閉的時(shí)間間隔;安裝非法防問(wèn)設(shè)備等。安裝非法防問(wèn)裝置最有效的設(shè)施是安裝防火墻。它是一個(gè)用以阻止網(wǎng)絡(luò)中非法用戶訪問(wèn)某個(gè)網(wǎng)絡(luò)的屏障,也是控制進(jìn)、出兩個(gè)方向通信的門檻。
第五,建立檔案信息加密制度。
第六,建立網(wǎng)絡(luò)智能型日志系統(tǒng)。日志系統(tǒng)具有綜合性數(shù)據(jù)記錄功能和自動(dòng)分類檢索能力。在該系統(tǒng)中,日志將記錄自某用戶登錄時(shí)起,到其退出系統(tǒng)時(shí)止,這所執(zhí)行的所有操作,包括登錄失敗操作,對(duì)數(shù)據(jù)庫(kù)的操作及系統(tǒng)功能的使用。日志所記錄的內(nèi)容有執(zhí)行某操作的用戶保執(zhí)行操作的機(jī)器IP地址、操作類型、操作對(duì)象及操作執(zhí)行時(shí)間等,以備日后審計(jì)核查之用。
第七,建立完善的備份及恢復(fù)機(jī)制。為了防止存儲(chǔ)設(shè)備的異常損壞,可采用由熱插拔SCSI硬盤所組成的磁盤容錯(cuò)陣列,以RAID5的方式進(jìn)行系統(tǒng)的實(shí)時(shí)熱備份。同時(shí),建立強(qiáng)大的數(shù)據(jù)庫(kù)觸發(fā)器和恢復(fù)重要數(shù)據(jù)的操作以及更新任務(wù),確保在任何情況下使重要數(shù)據(jù)均能最大限度地得到恢復(fù)。
第八,建立安全管理機(jī)構(gòu)。安全管理機(jī)構(gòu)的健全與否,直接關(guān)系到一個(gè)計(jì)算機(jī)系統(tǒng)的安全。其管理機(jī)構(gòu)由安全、審計(jì)、系統(tǒng)分析、軟硬件、通信、保安等有關(guān)人員組成。
隨著互聯(lián)網(wǎng)的飛速發(fā)展,網(wǎng)絡(luò)安全逐漸成為一個(gè)潛在的巨大問(wèn)題。網(wǎng)絡(luò)安全性是一個(gè)涉及面很廣泛的問(wèn)題,其中也會(huì)涉及到是否構(gòu)成犯罪行為的問(wèn)題。在其最簡(jiǎn)單的形式中,它主要關(guān)心的是確保無(wú)關(guān)人員不能讀取,更不能修改傳送給其他接收者的信息。此時(shí),它關(guān)心的對(duì)象是那些無(wú)權(quán)使用,但卻試圖獲得遠(yuǎn)程服務(wù)的人。安全性也處理合法消息被截獲和重播的問(wèn)題,以及發(fā)送者是否曾發(fā)送過(guò)該條消息的問(wèn)題。