WEB伺服器多框架的解決方案

才智咖 人氣:2.17W

【摘要】在INTRANET上設計基於WEB的MIS時,大批量資料錄入變成了操作上的瓶頸,並給WEB SERVER與DATABASE造極大的負擔。

WEB伺服器多框架的解決方案

為解決這個問題,我們設計了多框架結構,將應用的功能進行細分,然後交給各框架分別完成,這種分工協作方式可以使操作介面上的資料實現受控的部分重新整理,有效地減小了網路的資料傳輸量,縮短了各部分的處理時間,同時了也大大減輕了WEB SERVER與DATABASE的系統負擔。

多框架解決方案採用ASP(ActiveX Server Pages)及ADO(ActiveX Data Objects)完成與資料庫的互動工作。採用DOM技術解決和框架之間的協作問題。

關鍵詞:多框架

*注:本文中討論的方案中WEB伺服器為IIS4.0、客戶端瀏覽器為IE4.0以上版本。

一、問題的提出

最初,我們採用ASP及ADO技術在INTRANET上設計基於WEB的MIS(下文簡稱MIS)時,沿用了以往設計WEB站點時的設計習慣。但隨著設計的深入,我們發現,現有的系統結構無法承擔大批量的資料錄入工作,因此,必須重新構造系統的總體設計結構。

MIS與普通的WEB站點之間最大的區別在於處理資訊的方式。普通WEB站點的主要功能是釋出資訊,採集資訊只是它極小的一部分功能,而且這些資訊採集功能也都是比較簡單的。但對於MIS系統來說,資訊的採集及維護工作佔有比較高的比例,在這些資訊採集功能中還存在一些較為複雜及大批量的資料錄入功能,這些功能成為了系統中的設計難點。

二、問題的分析

當一個系統涉及到複雜及大批量的資料錄入功能時,同時也就涉及到了響應速度及介面的問題。在以往的C/S方式中,客戶端的錄入速度由錄入員來控制,一般情況下,當錄入員熟悉了操作方式之後,錄入速度是不受系統限制的。但在WEB方式下,頁面採用完全重新整理方式,每次的互動操作至少要造成一個頁面的重新整理。這種重新整理的工作不僅更新了資料,也將介面上的一些固定內容重新載入了一遍。對於普通使用者來說,這種短時間的重新整理並不會造成影響;但對於長時間進行操作的錄入員來說,錄入一條資料就要等待一段時間(這一段時間可能是2-3秒,也可能是十幾秒甚至幾分鐘),是絕對不能接受的。即使,網路有足夠的頻寬,頁面的過載也會造成一種閃動的效果,這種一閃一閃的重新整理造成錄入員必須重新識別頁面上的各種元素,不僅也會拖慢了他們的錄入速度,還造成眼睛的快速疲勞。

三、解決方案

如果能夠“不”重新整理頁面而“快速更新”頁面中的資料,問題應該能夠解決了。而且頁面由於沒有重新整理,一些必須由伺服器儲存的狀態資訊也能夠在客戶端儲存下來了,從而減輕伺服器的負擔。那麼如何達到這個目標呢?下面將詳細討論。

1.設計思路

首先,我們確立採用多框架建立頁面。框架(Frames)其實不是什麼新東西,許多站點上都用它來完成顯示固定標題及選單的功能。採用框架能夠避免一些頁面的重複訪問。但是如果結合使用DOM(Document objects model),框架可以完成許多細緻的工作。

按照DOM的定義,框架可以被當作一個物件。假設我們建立了一個框架,並給它取名為A,則對於建立框架的頁面來說,A是Frames集合中的一個成員,而對於A中的頁面來說,A相當於window物件。因些,雖然框架之間不存在從屬關係,但可以通過它們的父頁面(物件)建立各框架之間的關係。

如右圖所示:框架之間能夠進行相互控制與資料傳送。

1).在框架A中用的是最常用的框架控制方式,利用<A TARGET=“B” HREF=”URL”> 控制B框架中的頁面過載。

2).在框架B中,通過按鈕的點選事件對框架C進行控制,這裡的控制是通過DOM來實現的。(假設B中按鈕Name值為“B1”)

控制C中的URL,在按鈕的ONCLICK事件中加入以下程式碼:(VBScript)

sub b1_onclick

set Bframe = parent.B

Bframe.location.href = “URL”

End sub

控制C中的文字框內容,在按鈕的ONCLICK事件中加入以下程式碼:(VBScript)

sub b1_onclick

set Bframe = parent.B

Brame.document.all.txt1.value = “劉念”

‘txt1是C框架中文字框的Value值

end sub

2.新的框架結構

如上圖,我們定義了一個新的框架結構。在新的框架結構中,除了用來放置一、二級選單的MENU1、MENU2和用來放置三級選單及具體應用功能的Aapp之外,還增加了三個專門用來處理資料的框架(在上圖中用虛線表示)。這三個框架不需要介面,在應用執行的時候是看不見的。

淘寶Web伺服器,Tengine-1.2.5 版本釋出

我們很高興的告訴大家,Tengine-1.2.5 版本正式釋出了。您可以在這裡下載:http://tengine.taobao.org/download/tengine-1.2.4.tar.gz或者可以在github上檢出程式碼:https://github.com/taobao/tengine

本次釋出的亮點是新增加的upstream_check模組,可以用來對後端伺服器進行主動健康檢查,以自動的下線失效的伺服器。當您使用Tengine作為負載均衡(反向代理)時,這個功能非常有用。

其他的更新包括:

* Feature:允許syslog輸出日誌時指定程式的標識(program identifier);* Change:合併nginx-1.0.14至nginx-1.0.15之間的修改;* Change:將accept_mutex_delay的預設值從500毫秒更改為100毫秒以提高效能;* Bugfix:修復syslog的一個在後端伺服器連線不上導致端錯誤的bug;* Bugfix:修復access_log可能和buffer引數衝突的bug;

Tengine是由淘寶網發起的Web伺服器專案。它在Nginx的基礎上,針對大訪問量網站的需求,添加了很多高階功能和特性。Tengine的 效能和穩定性已經在大型的網站如淘寶網,天貓商城等得到了很好的檢驗。它的最終目標是打造一個高效、穩定、安全、易用的Web平臺。

從2011年12月開始,Tengine成為一個開源專案。

以下沿引專案主頁上的特性介紹:

繼承Nginx-1.0.14的所有特性,100%相容Nginx的配置;輸入過濾器機制支援。通過使用這種機制Web應用防火牆的編寫更為方便;組合多個CSS、JavaScript檔案的訪問請求變成一個請求;支援管道(pipe)和syslog(本地和遠端)形式的日誌以及日誌抽樣;自動根據CPU數目設定程序個數和繫結CPU親緣性;監控系統的負載和資源佔用從而對系統進行保護;顯示對運維人員更友好的出錯資訊,便於定位出錯機器;更強大的防攻擊(訪問速度限制)模組;backtrace模組,程式崩潰的時候可以顯示出錯的呼叫棧;更方便的命令列引數,如列出編譯的模組列表、支援的指令等;可以根據訪問檔案型別設定過期時間;

在Tengine的網站上可以瀏覽更多資訊:http://tengine.taobao.org

Hiawatha 8.4釋出,安全的Web伺服器

Hiawatha 是一個Linux/UNIX下安全的Web伺服器,其設計的最主要的目的就是安全,當然它也是快速的而且易於配置。

Hiawatha 8.4 的改進內容:

MaxServerLoad option added.Bugfix: invalid reverse proxy request when URL parameters are present.PolarSSL updated to version 1.1.4.Small bugfixes and improvements.

RHEL/CentOS上為Web伺服器架設 “XR”(Crossroads) 負載均衡器

Crossroads 是一個獨立的服務,它是一個用於Linux和TCP服務的開源負載均衡和故障轉移實用程式。它可用於HTTP,HTTPS,SSH,SMTP 和 DNS 等,它也是一個多執行緒的工具,在提供負載均衡服務時,它可以只使用一塊記憶體空間以此來提高效能。

首先來看看 XR 是如何工作的。我們可以將 XR 放到網路客戶端和伺服器之間,它可以將客戶端的請求分配到伺服器上以平衡負載。

如果一臺伺服器宕機,XR 會轉發客戶端請求到另一個伺服器,所以客戶感覺不到停頓。看看下面的圖來了解什麼樣的情況下,我們要使用 XR 處理。