Web應用架構
C/S架構
Web應用從最初就採用C/S架構。Server負責監聽client請求,提供資源,Client向server發起請求並渲染頁面。html
二者經過TCP/IP協議棧之上的HTTP協議通訊。web
多層架構
在Web 2.0時代。隨着交互性的要求。這個架構變得更爲複雜。Server需要提供更復雜的服務。Client也要完畢不少其它的交互任務,涌現出很是多新的提供更快更好服務的技術。數據庫
對應的,C/S架構需要以一種更復雜的方式來組織,即多層架構。
多層架構中的每一層負責提供一個特定的功能。與其它層經過良好的接口進行交互,易於升級維護。原始的C/S架構可以視做Server、Client兩層。瀏覽器
3層架構
典型的3層架構爲表示層,邏輯層,數據層ruby
- 表示層由瀏覽器負責渲染
- 邏輯層由server端操縱數據。併發往表示層
- 數據層負責存儲數據。
6層架構
假設進一步切割,就獲得6層架構。例如如下圖網絡
- 表示層分爲Client層和表示邏輯層
- Client層負責渲染展現頁面
- 表示邏輯層爲Server依據腳本生成網頁
- 邏輯層分爲商業邏輯層和數據訪問層
- 事務邏輯層表徵事務邏輯和流程
- 數據訪問層負責存取數據,發往事務邏輯層
- 服務端一般有網絡層負責網絡
Ruby on Rails
Ruby on Rails是一個基於Ruby開發的構建Web應用的開源框架或者開源庫,Twitter、Hulu、Github、Iteye等公司都採用了rails
框架。架構
組件
Ruby on Rails包含一系列組件併發
- Rake:類似於make,可以用來改動、遷移數據庫
- WEBrick:一個Rails內置的HTTPserver,可以使用rails server命令啓動,速度較慢,適合完畢開發階段的測試
- SQLite:最簡單的數據庫。相同僅僅適合開發階段的測試
- Rack Middleware:中間件,用於server軟件和應用之間的交互
缺點
- 不適合海量服務,Twitter已經由ROR轉向Scala
- 它是一個框架,隱藏了太多細節
MVC架構
Model表示數據,View使用數據渲染頁面,而Controller是媒介。View和Model的嚴格分離保留了重用性。mvc
使用Rails建立應用時會本身主動依照MVC架構生成相關代碼。包含:app
- 表示Model的一個類,數據庫中會創建對應的表
- 一個Controller,對應的URL解析和數據庫中的操做會一一對應好
- View包含一系列html文件用來渲染頁面
Active Record
Active Record機制使object-relational mapping (ORM)變得可行。在Ruby中以ActiveRecord模塊的形式出現。ORM映射機制爲:
- class - table
- object - record(表的一行)
- attribute - record value(表的一列)
ActiveRecord模塊提供下面功能:
- 與數據庫創建鏈接
- 表的建立
- ORM映射
- 使用object完畢CRUD操做(Create、Read、Update、Delete)
轉載請註明做者:Focustc。博客地址爲
http://blog.csdn.net/caozhk。原文連接爲
點擊打開