電腦網路與連結技術:第六章 交談層、表現層與應用層上一頁      下一頁

 

翻轉工作室:粘添壽

 

6-8  Web-based 網路應用架構

隨著網站伺服器的流行,Web-based 網路應用架構也隨著環境的需求,不斷進步與演變,以下我們就目前發展的三個基本架構來加以說明。

 

6-8-1 靜態網頁伺服器

『靜態網頁伺服器』(Static Web Server只提供標準文件格式,讓不同工作平台上的瀏覽器顯示網頁。這網頁可以包含文字、影像、聲音的多媒體,甚至可以達到動畫或播放視訊、音訊等功能。然而,並非所有瀏覽器都具備這些功能,而是依照使用者的需求,在網站上下載(Plug-in)各種播放程式(如,ActiveXFlashMedial PlayMP3)以增加瀏覽器的功能。基本上,靜態網頁伺服器系統是將網頁內容置放於網站內,客戶端透過網路將網頁內容下載到瀏覽器上執行並顯示出來,顯示內容可能是文件、音訊或視訊等等。它們之間的動作是單方向的,客戶端無法傳遞任何訊息給伺服器端,因此稱之為『靜態網頁伺服器』,如圖 6-18 所示。

 

6-18 靜態網頁伺服器架構

 

6-8-2 動態網頁伺服器

隨著網站伺服器的盛行,單方向的瀏覽網站上的網頁內容,並不能夠滿足環境的需求。我們需要類似資料庫伺服器一樣有效率的架構,讓客戶端和伺服器端能相互交換訊息,伺服器端能提供資料庫環境讓客戶端可以查詢使用。所以有所謂的『三層發展架構』(Three-Tire Architecture的產生,可分為客戶端(Client)、Web 伺服器(Web Server)、與資料庫伺服器(Database Server)三個層次。資料庫伺服器負責儲存應用程式所需的資料,Web 伺服器則負責伺服功能的運作與網頁的建立,而客戶端便利用瀏覽器和伺服器連接,透過網頁的各種呈現方式讓使用者和伺服器端、資料庫端做單/雙向的溝通,此架構稱之為『動態網頁伺服器』(Dynamic Web Server

程式設計師利用 HTML 語言在網站設計各種表格(Form),讓使用者在瀏覽器上填入。這些表格可以是:(1) 提供線上目錄及訂購產品;(2) 使用者登記基本資料;(3) 使用者填問答卷等等。在使用者輸入之後,表格內容會進行組合及轉換,轉換成資料庫可以辨識的格式或相容的查詢語言,資料庫才能執行查詢(query)的工作。

在許多的資料庫系統裡,我們必須定義一個標準介面來結合資料庫和 HTML 之間的連接,以期不同的資料庫系統都能提供標準介面的連接方式,使用 HTML 所製作的程式就很容易連結到各種資料庫系統,甚至程式設計師不需要去考慮到底使用何種資料庫統,皆可使用標準模式發展應用程式。這個標準介面稱之為『共通閘門介面』(Common Gateway Interface, CGI,凡是具有 CGI 介面的程式也稱為 CGI 程式。CGI 程式可由 PerlC 、或 Java 等程式語言發展。當瀏覽器執行到 CGI 程式時,它會透過 CGI 介面查詢資料庫系統,如圖 6-19 所示。

 

6-19 動態網頁伺服器架構

 

6-8-3 Server/Daemon 動態網頁伺服器

為提高網站的執行效率,我們希望使用連結常駐記憶體中的『多重執行緒』(Multi-Thread來提高效率,而不再使用呼叫程序(Procedure Call)方式。兩者最大的不同點是,程序必須經過呼叫才會載入記憶體中執行(原來不存在),執行完畢便釋放記憶體(也不再存在),下一個程式有用到該程序時再載入記憶體;而執行緒是常駐在記憶體內,應用程式使用到某一個執行緒,便連結到該執行緒,執行完後,便切斷彼此之間連線,該執行緒還是停留在記憶體內。一般執行緒可由多個應用程式連結,稱之為『多重執行緒』。不像一般程序(procedure),如被三個應用程式呼叫,就有三份程式被載入記憶體內。程式的設計以手搞(Scripting)方式為主,取代了傳統以 CPerl等所寫的 CGI程式,使用簡單的 Script 語言做動態網頁設計,其工具如:IBM公司的 Net.DataSun公司的 JSPJava Server Page)和Microsoft ASPActive Server Page)等等。其架構如圖 6-20 所示。

 

6-20 Server/Daemon 動態網頁伺服器架構

 

<GOTOP>