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。原文连接为
点击打开