現在回頭看這份講義,像是一份歷史文件,記錄著當時人們所使用的用詞和工具。然而,工具一時的,觀念是長久的。當時所談的觀念仍然支撐著現在的 Web 環境。有時候拋開那些被高度包裝的種種 Web 開發工具與名詞,回去看看那原初的名詞與意義,反而能夠讓後進者學到純淨的知識,從零思考 web programming 的內涵。
在 CGI 運作方式中,瀏覽器是 HTTP 的 Client 端, HTTP server 是 HTTP 的 Server 端,程式架構是所謂的 Client/Server 架構。但由於 CGI 的加入,使得情況產生了變化。
文件產生者其實就是一個應用程式。 由於將文件產生者及資料,都儲存在 Web server 上,因此主機在服務一個使用者的需求時,要同時進行應用程式的執行及資料的存取工作,當需求量及資料量大時,造成主機莫大的負擔。為了減輕 Web server 的負擔,就把資料給移到另一台主機上。文件產生者再透過網路連向該主機存取資料。 如此一來,便可將應用程式的執行及資料的存取工作,分散在兩台主機上,有效地減輕單一主機的負擔。
後來,又有 Java 及 ActiveX 等技術的出現,以 Java 為例,其運作方式是先以 Java 撰寫應用程式,再將應用程式製作為 Applet 或 Servlet 放在 Web server 上,瀏覽器將 Applet 下載回來執行或者是將 Servlet 在 Web server 上執行,由 Applet 或 Servlet 向特定的主機存取資料。
既然 Client 跟 Database Server 都不用著手,那剩下的就是要放在 Web server 上的那些應用程式的設計工作了,這個設計工作,故且稱之 Web programming 。
Three-tier 架構還可再擴充到所謂的 N-tier 架構,較正式的說法,稱為「分散式架構」。 此外,以傳統工具所打造的應用程式,還是屬於傳統的手工製品,不符合軟體設計元件化的潮流,因此,更進一步地引入了 CORBA 或 Microsoft 的 DCOM ,使用分散式元件塑造應用程式。在此情形下,更明確地區分出 Web Server 與 Application Server ,亦即,在以 CORBA 或 DCOM 所架構的分散式環境中, Web Server 不等於 Application Server 。
在一般的應用上,我們將應用程式及分散式元件放在專門的 Application Server 之上, 通常此 Server 位於企業防火牆內,企業員工則使用專門設計的 Client 連結此 Application Server; 而 Web Server 則進一步地成為防火牆間的內外通道,外部人員以瀏覽器連結 Web Server 執行其上的 CGI 程式, 而 CGI 程式再呼叫 Application Server 上的元件連結資料庫 (或直接連結資料庫)。 此為 Intranet 及 Extranet 的概念。