看板 Database 關於我們 聯絡資訊
※ 引述《lisaforlisa (思思)》之銘言: : 請問一下版上的大大...>< : 主從式架構分為二階跟三階...到n階 : 看過書本... : 還是覺得二階跟三階有點懵懵懂懂的... : 我想知道中間的差異性 到底差在哪邊?? : 我只印象 資料庫書本的二階是 用戶端跟伺服端 : (代表要用該公司的資料庫...就要下載使用該軟體才有辦法使用) : 所以 存取度不佳 (如果多人同時上去連該資料庫 應該會當機吧?) (臆測) : 安全性有風險 (對離職的員工未改變其權限的話) : 三階是 用戶端 網頁伺服器 伺服端 : 是說用戶端透過瀏覽器 來與伺服端的資料庫連線 : 安全性較低 (因為連接網路就很容易被駭客攻擊 或是病毒的攻擊) : 可以降低系統對資料庫資源請求的負擔 (有看過但是不懂) : 請問還有什麼可以補充的嗎? (想離清一些觀念 做個分析><) : 麻煩各位大大的解答了了^^" (跪樣) 原則上,主從式架構在不同的系統上,會有不同的定義 站在資料庫系統(Database System)的角度, Database System 算 Server,其它都是 Client 無論你用 SQL Server 的 Enterprise Manager, 或是 JDBC、ODBC、ADO.NET,對 Database System 都是 Client 站在一個 Web 應用系統的角度(Web Application System), Web Server + Middle-Tier + Database Server 整個算是 Server 其它 Browser,或 Spider 程式,就算是 Client 了 但站在 Server 的角度,它又是 Multi-Tier 的架構 對於 A 是三階,B 是二階,其實隨著資訊技術的發展,階數沒有那麼重要 重要在於:每一層架構的定義,與其責任,以及要付出的代價與得到的效益 不過您提到二階與三階的差別,是有其歷史發展的 在 VB/Delphi 火紅的年代, 常見用 VB/Delphi 開發的 Desktop Application + Database,來開發系統, 需要付出維護 Desktop Application 的代價; 大多稱其為二層式架構。 在 Web 火紅的年代,常見用 Browser + Web Server + Database,來開發系統, 解決了 Desktop Application 維護的代價, 但需要要付出 Web Server 維護,以及 Web UI 開發的代價; 大多稱其為三層式架構 效能方面, 對 Desktop Application 而言,每個使用者要直接連資料庫, ,是比較不好的,原因是連資料庫就像發動車子,需要花費較大的成本。 對 Web Application 而言,每個使用者連到 Web Server, 由 Web Server 統籌對資料庫連線 所以站在 Web Application 的立場,採用 Connection Pooling 的方式, 當 Client 要求的時間分開時,可能用少數的連線,就可以滿足需求。 例:   User A 於 00:05 要求資料   User B 於 00:06 要求資料   User C 於 00:07 要求資料 對 Desktop Application,Database Server 需要建立三次 Connection 對 Web Application,Database Server 可能只需建立一次 Connection,然後讓 Web Application 在不同時間,使用同一個 Connection,因此效能會較好。 付出代價方面,若 Web Server 與 Database Server 在同一台機器, 兩方必要分享相同的系統資源(memory、CPU) 若分開兩台 Server,就要兩台 Server 的成本(建置、維護)要付出。 安全方面,與「程式設計」的安全模型考量比較有關, 而採用的系統架構,倒不是最重要的部份, 例如:SQL Injection 預防、無論 Desktop Application 連資料庫, 或是 Web Application 連資料庫,較差的設計,都會產生風險。 資訊安全是很複雜的議題,系統切割的層數越多,安全上的考量也就越多 目前主流的系統架構,當然也考量了基本安全的架構, 但資訊安全的根本,還是需要程式設計師不斷努力,去強化程式碼的設計 架構只能提供基本,已經廣為大眾所知的安全考量。 原則上,分層式的架構設計,是先為了解決責任複雜、開發維護成本的問題, 以及新功能的滿足(例:單機時代到 Web 時代), 經由良好的責任劃分,同時也可以為安全、效能帶來基礎的建設。 在 IT 的領域,層數只會越分越多,這是 IT 用來解決設計問題的唯一方法。 在 ORM 尚未成為主流前,程式設計師要自己寫存取資料(檔案、索引)的程式碼, 現在,有了獨立的關聯式資料庫系統,只要會 SQL,就能做出功能, 但資料庫系統的效能並不會比 Hard Code 還好。 若沒有良好的網路設定與維護,資料庫系統反成了一台可攻擊的伺服器。 當然現在的網路服務(無名小站、GMail),要是沒有現代的多層式架構, 實作將是相同困難的。 大多的書藉,都會提出分層的好處、新架構的好處,但一定會有代價。 隨著時間,您的體會將逐步提升 ^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.198.7.188