軟硬體作業平台介紹                   後端資料庫介紹               前端開發工具介紹

   網路三層式架構介紹                 軟體特色介紹

三層式架構介紹

伴隨著企業自身的發展和外部環境的複雜化,企業的需求也越來越複雜,應用程式的開發
也更加困難。因此三層式客戶/伺服器架構的出現將有助於解決這一問題。但是要談三層的
技術,我們就必需先從資料庫的演變來說起。

傳統的 1-Tier

 以前 DBF 系統就是將資料庫放於 Local(單機上),如我們用 DBASE 或 Clipper 透過
Use / Append / Replace / Delete / Seek…等指令去存取DBF檔案,您寫的程式是在 Local 上執
行,並呼叫 Local 上的 DBASE 或 Clipper LIB(或 DLL)去存取這些 DBF 的資料,整個過
程都在同一個 Local PC 上執行,我們可以叫它 One-Tier,它的最大缺點就是在於只能單機
使用 。

  LAN 的 1-Tier

    Novell 及 Windows 可以將DBF置於 File Server 上,所以進入了Multi-User 時代,此時,
DBF 讓多個 PC 可以共用資料(可讀可寫),確實帶來便利性。但在 DBASE 或 Clipper 的
PRG 還是在 PC 端執行(程式可以放在File Server上,但 Run 是在 PC 上),所以 PC 端只是
去網路 Open DBF 資料,讀寫都是在 PC 端去完成的,這個架構只是 DBF 的共用,File 
Server 並沒有任何事情做,所以還是在 One-Tier 上作業,所以此架構的問題就在於資料一
多就造成速度上的瓶頸,尤其是資料的穩定度常因 PC 當機造成嚴重的毀損。

DataBase Server 2-Tier

    2-Tier 就是 Client/Server 的架構,Client 就是 PC 或終端機,Server 就是 Database Server
約十五年前,IBM發展 DB2 Client/Server 開啟了大門,此後如雨後春筍,Informix/Sybase/
Oracle/MS-SQL相繼崛起,從此 RDBMSRelation DataBase Management System)已經成為資
料庫的共同標準。
     所謂 DataBase Server,就是專門處理資料庫的主機,處理資料庫的方法是採用一種大家
標準的語言-SQL,這種語言已經成為發展資料庫的共同標準(如 ANSI-92 標準),就是
無論您使用哪種資料庫,您都可以使用相同的 SQL 語言即可以存取資料庫。所有的 PC
Client都必須以 SQL 來下達給 Database Server,並由 DataBase Server 全權處理。所以Client/
Server 是一種分工的模式,由 Client 來提出申請,由Server來完成資料存取的目的,如此即
可以將資料安全集中於 DataBase Server 上,不必像 DBF 分散到 PC 上存取,容易亂掉與損
毀(尤其是 Index 檔案),資料的穩定度相對提高,處理大量資料的速度也相對提升
DBF 資料一大,速度就是慢),C/S 架構確實提升不少速度與品質。

Application Server Three-Tier

    其實 2-TIER 已經解決了不少資料庫的問題,但面臨大型系統,C/S會因為Connection數量
(使用者的聯機數)的暴增而造成Database Server無法負荷,通常一個 ApplicationConnection  
只要到達 30 50 User 就會造成 DB Server 疲於奔命,速度與效能將有顯著的改變;另
一個問題就是當資料庫的資料很大時,Client/Server 通常會依 SQL 命令將大量數據傳回 
Client,往往造成網路與 Server 的瓶頸;再者就是維護的問題,大型的系統有很多很大的 
Client 程式,分散到各個 Client 上,每當有程式版本異動時,都必須大費周章的將Client
式換掉,再加上目前整個 A/P 的全球發展趨勢就是 Thin-Client(瘦小的 Client),並讓  
Client 能自動維護或不必維護的效果,3-Tier 的架構與相關技術也就因運而生了。在以前的
/服務器(C/S)二層主從架構中﹐存在一些致命的缺點。首先﹐在客戶機/服務器的架構
下﹐前端的使用者越多﹐前、後端之間的連接(CONNECTION)就越多﹐後端資料庫伺服器
的負擔就越重﹐進而大幅度降低系統的效率。這種情況在短時間內湧進大量的數據讀寫及
存取要求時更為嚴重。舉例來說,假設某公司有1000個員工,而且與某家公餐廳約定,早
上十點到十一點所有的員工都可以打電話到這家餐廳訂便當,請想象一下,在短短一小時
內,這家餐廳必須接聽一千通電話,就算這家餐廳有十條專線,都可能應接不暇接造成員
工電話接不通,這種現象就有如client/server服務器架構的系統,資料庫伺服器的負擔過
重,降低了整個應用系統的效率。同樣的道理,如果在一套應用系統中同時有太多的前端
用戶連上候端伺服器,那麼後端伺服器將窮於應付,因為這個伺服器除了要處理資料庫的
存取動作之外,還必須HANDLE每個前端連接的CONNECTION,從技術 而言,伺務器將
會不斷地進行 DISK SWAP動作,系統還快得起來嗎?  Client/Server架構最令人無法接受的就
是前端應用程式的分發工作,當軟體開發廠商把應用程式開發完後,除了要把生成的應用
系統檔複製到每一台前端電腦之外,還必須將一些Client/Server之間的連接程式安裝在前端
電腦上(比如BDE,SQL LINK),假如某家公司的前端用戶有好幾百個,且分散在各個不同
的地區甚至國外,如果應用程式更新版本,那就意味著所有的前端使用的電腦必須更新安
裝,這將大大增加系統的維護成本。
另外還有一個非常重要的問題是,在Client/Server主從架構下,公司運行的整套應用系統中
往往只有單一的資料庫伺服器,若是此資料庫伺服器因為某種因素當機,那麼是不是公司
所有的運作都必須停下來,在現今許多公司對電腦依賴程度與日劇增,誰都不能接受因為
電腦當機而使公司運作停止的現象。就算複製了一份一模一樣的資料庫伺服器當作備份,
也必須重新啟動系統,而無法做到 24小時的運作模式。採用三層架構的應用系統,對客
戶和軟體開發廠商來看都大大簡化了系統的維護工作。三層架構應用系統的最終客戶端電
腦只需要一個單純應用程式檔,不需要再安裝其它軟體。當系統版本升級更新後,只要把
修改後的執行檔透過網路覆製到前端電腦即可,而不需要費時費力地為每一台前端用戶電
腦重新安裝一次。 為了解決Client/Server的架構中服務器不穩定而導致系統停止運作的問
題,三層架構的應用系統強調系統的穩定性,延展性以及執行效率,所以我們在開發三層
構的應用系統中提供了容錯能力以及負載平衡的能力。
在具有容錯能力以及負載平衡的能力的系統中,主要是應用程序服務器部分提供多台
不同的服務器,當客戶端應用程序或是WEB服務需要使用企業對象的服務時,可以依據目
前每一台服務器的負荷以及是否可以提供服務的情形來動決定連結到哪一台服務器之中。
例如有服務器A和服務器BA10個用戶連結B9個用戶連時,這時客戶端應用程序向
服務器提出會話申請,此時應用程序服務器程序會自動偵測當前AB的運行能力與狀況,
圖便是採用這種容錯和具有平衡能力的應用系統。
    三層分布式架構的出現是為了解決Client/Server結構在維護上需要非常在的成本,當客戶
端在不同的地區時,更為明顯。此外也是為了改善Client/Server結構延展性的問題,因為
Client/Server結構能夠支持的客戶端數目有一定的限度,當客戶端數目超過200人的時候,
客戶機/服務器結構的效能便開始下降。對於INTERNET/INTRANET和電子商業等應用系統
而言,這種客戶端數目的限制,更是簡直無法忍受的,所以需要使用更具延展性的分布式
架構來克服這個問題。另外就是地區距離條件的原因,一個公司或企業分布在各個地區,
甚至各個國家的子公司或生產工廠,需要使用一些相同的數據來協調完成工作,採用
Client/Server的結構,在應用系統的架設的成本上會遠遠超過三層架構。
另外從使用的角度看,三層分布式架構也是優於Client/Server服務器的,在三層應用系統的
開發當中,系統的結構就接近於強迫地決定了軟體開發人員以企業對象的形態編寫企業邏
輯,進而允許其它的系統或是INTERNET/INTRANET系統結構也可以重複使用這些企業對
象。這對於需要使用系統的客戶和軟體開發廠商以及客戶端應用系統的維護都有正面的效
益,同時也能夠降低了系統的維護成本。當一套應用系統在使用過程中需要修正,需要結
合新一代的信息系統的時候,使用三層分布式架構就可以將各種系統有效地整合在一起,
這也是這種架構得到廣泛使用的原因之一。此外,所有的軟體開發工具廠商,數據庫廠
商,中介軟體廠商,以及INTERNET/INTRANET工具廠商都加入了支持三層分布式架構,
所以也造成這種架構系統應用開發的成熟階段。從信息時代的發展來看,一套應用系統必
須具備良好的穩定性,延展性,重複使用程度高以及較低的維護成本等特質,才能更好地
滿足使用者的需要,才能給我們的工作帶來真正的方便提升我們的工作效率。
   軟硬體作業平台介紹                  後端資料庫介紹               前端開發工具介紹
   網路三層式架構介紹                 軟體特色介紹