2015/02/09

多層,究竟有幾層?試著定義一下。

一層:
如果沒有使用到資料庫,那一定是「一層架構」,所有的操作全在使用者的電腦上完成,大都利用序列化陣列來當作資料庫也就足夠滿足需求。

※Delphi.KTOP 的資深版主 Jason Wang 表示:
「dBase、Foxpro 等這類的檔案型資料庫也屬於一層架構的一種。」

簡而言之,沒有內建 Service 的檔案型資料庫,都稱得上是一層架構。

在Delphi開發上,最常見的檔案型資料庫就是BDE + Paradox或是Mircrosoft Access。

Delphi / C++ Builder 經典的兩層架構
兩層:
檔案型資料庫升格為遠端資料庫伺服器(RDBMS)後,商業邏輯可以透過遠端資料庫伺服器分散運算,原本應用程式便可服務更多使用者,這就是兩層架構。
而大部分 Delphi / C++ Builder 的開發者,有聽過 BDE、ADO、DBX、FireDAC……等元件,都是使用兩層架構開發。雖然資料庫和開發機器有可能在同一台電腦上,但脫離不了「資料庫邏輯」←→「應用程式邏輯」或「資料庫存取封包」←→「應用程式資料集」交互的過程。



DataSnap 定義的三層架構
三層:
DataSnap 即是把 BDE、ADO、DBX、FireDAC 從使用者電腦拉開的代理者,而在使用者電腦上看不到上述任何元件的影子,這時開發者必須很清楚資料流各階層的傳遞流程及生命週期,就像程式設計中「變數」的設計週期一樣。

利用DataSnap橋接服務(Bridge Service),原本Delphi不直接提供資料連結的平台,也能夠透過這個服務來使用。

但絕大多數的開發者在這個階段,因為對三層的設計方式不熟悉,以及文件資訊不足的惡劣條件下毅然地放棄對 DataSnap 的使用,退守回兩層的開發,這實在是很可惜的事情。

其實 DataSnap 本質並不難,只要關鍵流程透通,三層上的天空很廣大的。

超過三層的「多層」:
你聽過「負載平衡」、「驗證」、「快取」等服務器名稱嗎?這些都是三層架構的一種,因應不同需求而採行的策略,完全取決系統架構的設計導向來定義,沒有一定的套路。

設計前的彈性很足,但框架定義完卻很難修改,所以大型專案必須經過長時間的規畫及時間來鑽研系統的穩定性。

多層大致上已經說完了,是不是還很模糊?

換句話說,就是現在網頁設計規範所提的「前端技術」和「後端技術」

前端:
泛指使用者能夠輕易看到的視覺變化技術。(例如:HTML5、JavaScript 和 CSS)

後端:
使用者看不到的繁瑣處理機制。(例如: PHP、ASP.NET 等)

而連接這兩者中間的那一「層」,就是「中間層」,如同 IIS 所扮演的角色一樣。

多層的架構牽涉的面向太廣大了,所以之後的重心還是放在三層 / 前中後端的內容上。

--- 未完待續 ---

沒有留言:

張貼留言