Ruby on Rails開發Web應用的基本概念

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。原文連接爲 點擊打開
相關文章
相關標籤/搜索