1. 程式人生 > >web應用程式 兩層c/s、三層c/s、b/s架構對比及Servlet由來

web應用程式 兩層c/s、三層c/s、b/s架構對比及Servlet由來

一、c/s:client/server

1、兩層的c/s

特點:使用資料庫伺服器充當伺服器(在資料庫編寫業務處理邏輯,比如Oracle資料庫,可以使用pl/sql來寫業務處理邏輯),客戶端一般使用vb,vc,dephi這樣的語言來開發(客戶端主要負責提供操作介面和少量的業務處理邏輯)。

缺點:

a.可移植性差:因為業務邏輯基本上是寫在資料庫裡,當資料庫發生了改變,業務處理邏輯基本上要重新寫。

b.不適合大型應用:因為客戶端跟資料庫之間要有一個持續的資料庫連線,而資料庫的連線有個數的限制。

2、三層的c/s

特點:資料庫只負責儲存資料,所有的業務邏輯寫在應用伺服器(應用伺服器需要開發人員去開發,比如用java語言來開發)裡面,客戶端只負責介面。

優點:

a.可移植性好:資料庫發生改變,不影響。應用伺服器所在的作業系統發生改變,如果使用java語言來開發應用伺服器的話,也不影響。

b.適合開發大型應用:可以通過應用伺服器叢集,通過負載均衡等技術,減輕資料庫的訪問壓力。

缺點:

a.客戶端需要單獨安裝和除錯

b.開發相對比較複雜,比如要自定義協議,需要自己開發客戶端與伺服器端的通訊處理模組。

二、b/s:browser/server

特點:客戶端使用瀏覽器,伺服器端使用web伺服器,客戶端與伺服器端使用標準化的http協議來進行通訊。
優點:
與c/s架構相比,有兩個優點:
a,客戶端不需要單獨安裝
b,開發相對簡單(因為c/s架構需要自定義協議,開發相應的通訊模組,而b/s使用標準化的http協議,瀏覽器與web伺服器都提供了相應的通訊模組)。

整個web通訊流程中,browser端和web伺服器端的通訊介面已經存在,程式設計師只需實現browser中的GUI(HTML、CSS、JavaScript等技術)和web中的業務處理邏輯(Servlet等),以及採用資料庫訪問技術(JDBC等)訪問資料庫即可,這些技術也就是Java Web的基礎技術。

三、Servlet由來

sun公司制訂的一種用來擴充套件web伺服器功能的元件規範。
    (1)擴充套件web伺服器功能
        早期的web伺服器(iis,apache ws等等),只能夠處理靜態資源的請求(即需要事先將html檔案寫好並儲存到web伺服器相應的資料夾下面),不能夠處理動態資源的請求(即需要進行計算,然後生成相應的html)。
        a,可以使用cgi程式來擴充套件。
            cgi程式可以使用c/c++,perl等語言來開發,但是,程式比較複雜,而且可移值性不好,效能也比較差,現在用得不多。
        b,servlet可以擴充套件這些web伺服器的功能。
            瀏覽器傳送請求給web伺服器(apache ws),web伺服器檢查請求是否需要計算,如果需要,web伺服器會訪問servlet容器,servlet容器會呼叫servlet來進行計算。

Servlet容器除了可以執行servlet以外,還可以直接充當一個簡單的web伺服器,比如tomcat本身是一個servlet容器,也可以直接接受瀏覽器請求。

    (2)元件規範
        1)什麼是元件?
            符合一定規範,實現部分功能,並且需要部署到相應的容器裡面才能執行的軟體模組。
        2)什麼是容器?
            符合一定規範,為元件提供執行環境及相應服務的程式。

轉載請註明出處:http://blog.csdn.net/daijin888888/article/details/51005932