摘要:本文分析了郵件管理系統(tǒng)的網(wǎng)絡(luò)拓撲結(jié)構(gòu)和郵件管理系統(tǒng)的功能組成結(jié)構(gòu),然后分析了系統(tǒng)除了需要完整的功能外,還需要高性能、高可靠的系統(tǒng);最后提出采用Ajax技術(shù)從應(yīng)用程序的優(yōu)化設(shè)計方面來提高系統(tǒng)的性能。
關(guān)鍵詞:郵件系統(tǒng);性能;Ajax技術(shù)
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2008)08-10ppp-0c
1 引言
隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,越來越多的事情都依賴于網(wǎng)絡(luò)。現(xiàn)在如果一天沒有了網(wǎng)絡(luò),好像就無法正常生活。而電子郵件系統(tǒng)正好是人們在網(wǎng)上交流的一個很好的工具,可以通過它來發(fā)送信件、發(fā)送賀卡等,所以現(xiàn)在使用電子郵件的客戶是越來越多,基本上每一個人都有一個電子信箱。使用的人多了,必然要求電子郵件的性能要高,如果不能及時的完成客戶的指令,會造成很多客戶的流失。所以,為了滿足客戶的性能要求,我們必須對郵件系統(tǒng)的性能進行改進。
2、郵件系統(tǒng)網(wǎng)絡(luò)拓撲結(jié)構(gòu)
電子郵件系統(tǒng)主要由郵件服務(wù)器、網(wǎng)絡(luò)傳輸設(shè)備、客戶端PC機和認證服務(wù)器所構(gòu)成。具體的網(wǎng)絡(luò)拓撲結(jié)構(gòu)圖如圖1所示。
圖1郵件系統(tǒng)網(wǎng)絡(luò)拓撲結(jié)構(gòu)圖
從郵件系統(tǒng)的網(wǎng)絡(luò)拓撲結(jié)構(gòu)圖,我們可知郵件系統(tǒng)的通訊過程。首先用戶登錄郵件管理系統(tǒng)頁面注冊用戶信息,也就是說,用戶首先登陸了認證服務(wù)器,得到認證后才能發(fā)送郵件;然后用戶的郵件需要通過防火墻,郵件管理系統(tǒng)再檢測郵件是否是合法郵件;最后,用戶請求成功,郵件系統(tǒng)接收郵件。
3 郵件系統(tǒng)功能設(shè)計
郵件管理系統(tǒng)功能主要由下幾個部分組成。用戶登錄模塊,該模塊是指用戶登錄系統(tǒng)必須先注冊用戶信息,驗證通過以后,認證服務(wù)器系統(tǒng)會返回用戶的用戶名和登錄密碼;增加郵件模塊,該模塊是指用戶發(fā)送郵件,發(fā)送郵件時可以增加多個附件一起發(fā)送;修改郵件模塊,該模塊是指用戶登錄郵件系統(tǒng)后,編輯郵件,然后把郵件放入到草稿箱,需要發(fā)送郵件時,可以先從草稿箱中調(diào)出郵件進行修改,最后發(fā)送郵件;瀏覽郵件模塊,該模塊是指用戶閱讀郵件,閱讀時可以下載附件信息;刪除郵件模塊,該模塊是指用戶可以把閱讀完的郵件或者有些垃圾郵件刪除。
4 郵件系統(tǒng)的性能設(shè)計
上面分析了郵件系統(tǒng)的網(wǎng)絡(luò)拓撲結(jié)構(gòu)和系統(tǒng)的功能設(shè)計方案,然而郵件系統(tǒng)中最為重要的是它的性能,沒有高性能的系統(tǒng)是得不到用戶的肯定的。在郵件系統(tǒng)的性能設(shè)計方面,我們采用了Ajax技術(shù)。
4.1 AJAX技術(shù)性能提高方案選擇
在傳統(tǒng)的郵件管理系統(tǒng)中,如果需要閱讀郵件時,都需要整個頁面的刷新,也就是說所有頁面的數(shù)據(jù)都需要從服務(wù)器中重新讀取一次,這樣的交互方式將會產(chǎn)生大量的冗余數(shù)據(jù),占用了大量的帶寬,降低了瀏覽器響應(yīng)速度。所以我們在思考怎么樣能像桌面管理系統(tǒng)一樣,減少中間的過程,提高頁面的響應(yīng)速度。經(jīng)過多年的研究發(fā)現(xiàn)通過AJAX技術(shù)可以實現(xiàn)。
Ajax 由 HTML、JavaScript技術(shù)、DHTML 和文檔對象模型(DOM)組成,HTML 用于建立 Web 表單并確定應(yīng)用程序其他部分使用的字段;JavaScript 代碼是運行 Ajax 應(yīng)用程序的核心代碼,幫助改進與服務(wù)器應(yīng)用程序的通信;DHTML 或 Dynamic HTML,用于動態(tài)更新表單; DOM 用于(通過 JavaScript 代碼)處理 HTML 結(jié)構(gòu)和(某些情況下)服務(wù)器返回的 XML。
4.2 AJAX技術(shù)的實現(xiàn)過程
在一般的 Web 應(yīng)用程序中,用戶填寫表單字段并單擊 Submit 按鈕。然后整個表單發(fā)送到服務(wù)器,服務(wù)器將它轉(zhuǎn)發(fā)給處理表單的腳本(通常是 PHP 或 Java,也可能是 CGI 進程),腳本執(zhí)行完成后再發(fā)送回全新的頁面。該頁面可能是帶有已經(jīng)填充某些數(shù)據(jù)的新表單的 HTML,也可能是確認頁面,或者是具有根據(jù)原來表單中輸入數(shù)據(jù)選擇的某些選項的頁面。當(dāng)然,在服務(wù)器上的腳本或程序處理和返回新表單時用戶必須等待。屏幕變成一片空白,等到服務(wù)器返回數(shù)據(jù)后再重新繪制。
然而采用Ajax技術(shù)可以避免了這個交互的過程。Ajax 基本上就是把 JavaScript 技術(shù)和 XMLHttpRequest 對象放在 Web 表單和服務(wù)器之間。當(dāng)用戶填寫表單時,數(shù)據(jù)發(fā)送給一些 JavaScript 代碼而不是直接發(fā)送給服務(wù)器。相反,JavaScript 代碼捕獲表單的數(shù)據(jù)并向服務(wù)器發(fā)送請求,因為請求是異步發(fā)送的,所以JavaScript 代碼是不用等待服務(wù)器的響應(yīng)。實現(xiàn)過程中的部分代碼如下所示:
/* Create a new XMLHttpRequest object to talk to the Web server */
var xmlHttp = 1;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
try {
xmlHttp = new ActiveXObject(\"Msxml2.XMLHTTP\");
} catch (e) {
try {
xmlHttp = new ActiveXObject(\"Microsoft.XMLHTTP\");
} catch (e2) {
xmlHttp = 1;
}
}
@end @*/
if (!xmlHttp typeof XMLHttpRequest != 'undefined') {
xmlHttp = new XMLHttpRequest();
}
4.3 AJAX技術(shù)在郵件系統(tǒng)中的應(yīng)用
Ajax技術(shù)已經(jīng)在多個郵件系統(tǒng)中得到了應(yīng)用,網(wǎng)易的126郵件也采用了Ajax技術(shù),采用該技術(shù)方案極大地提高了郵件管理系統(tǒng)的響應(yīng)速度。最近21cn的郵件管理系統(tǒng)也正采用Ajax技術(shù)來提高郵件系統(tǒng)的性能。
5 結(jié)束語
系統(tǒng)性能提高的技術(shù)有很多,比如采用服務(wù)器的負載均衡技術(shù)、數(shù)據(jù)庫的優(yōu)化技術(shù)等方面,本文主要是采用了應(yīng)用程序上的優(yōu)化技術(shù),也就是采用Ajax技術(shù)來提高系統(tǒng)的性能。當(dāng)然對應(yīng)用系統(tǒng)的性能研究是一個非常復(fù)雜的問題,需要大家共同努力,一起攻關(guān)。
參考文獻:
[1]陳勇.安全電子郵件系統(tǒng)的設(shè)計與分析[J].艦船電子工程.2006(4).
[2]劉宇東,基于B/S模式安全郵件系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機安全.2007(3).
[3]Brett McLaughlin掌握Ajax,第1部分:Ajax簡介.[EB/OL].http://www.ibm.com/develop
erworks/cn/xml/wa-ajaxintro1.html.2006-1-4.
[4]ajax使用心得[EB/OL].http://www.java-cn.com/technology/tech/4614.html.2008-1-10.