Web应用架构

C/S架构

Web应用从最初就採用C/S架构。Server负责监听client请求,提供资源,Client向server发起请求并渲染页面。两者通过TCP/IP协议栈之上的HTTP协议通信。

多层架构

在Web 2.0时代,随着交互性的要求,这个架构变得更为复杂。Server须要提供更复杂的服务,Client也要完毕很多其它的交互任务,涌现出非常多新的提供更快更好服务的技术。对应的,C/S架构须要以一种更复杂的方式来组织,即多层架构。

多层架构中的每一层负责提供一个特定的功能,与其它层通过良好的接口进行交互,易于升级维护。原始的C/S架构能够视作Server、Client两层。

3层架构

典型的3层架构为表示层,逻辑层,数据层

  • 表示层由浏览器负责渲染
  • 逻辑层由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内置的HTTP服务器,能够使用rails server命令启动,速度较慢,适合完毕开发阶段的測试
  • SQLite:最简单的数据库,相同仅仅适合开发阶段的測试
  • Rack Middleware:中间件,用于server软件和应用之间的交互

缺点

  • 不适合海量服务,Twitter已经由ROR转向Scala
  • 它是一个框架,隐藏了太多细节

MVC架构

Model表示数据,View使用数据渲染页面,而Controller是媒介。View和Model的严格分离保留了重用性。



使用Rails创建应用时会自己主动依照MVC架构生成相关代码,包含:

  • 表示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,原文链接为点击打开

Ruby on Rails开发Web应用的基本概念的更多相关文章

  1. 在linux,windows上安装ruby on rails开发环境

    ruby是一个非常优秀的语言,ruby的精髓rails可以让web开发的效率成倍的提高,下面就介绍一下我搭建rails环境的过程.windows下搭建ruby rails web开发环境本篇文章主要是 ...

  2. [Ruby on Rails系列]2、开发环境准备:Ruby on Rails开发环境配置

    前情回顾 上次讲到Vmware虚拟机的安装配置以及Scientific Linux 6.X系统的安装.这回我们的主要任务是在Linux操作系统上完成Ruby on Rails开发环境的配置. 在配置环 ...

  3. 开发环境准备:Ruby on Rails开发环境配置

    开发环境准备:Ruby on Rails开发环境配置 前情回顾 上次讲到Vmware虚拟机的安装配置以及Scientific Linux 6.X系统的安装.这回我们的主要任务是在Linux操作系统上完 ...

  4. 各种环境下搭建ruby on rails开发环境

    win10上搭建raby on rails环境: 步骤如下 1.安装ruby (我选择的版本是ruby 2.2.3p173) 2.安装rails gem 在这之前建议先把gem的源换成淘宝的源,速度快 ...

  5. [QuickRoR]Ruby on Rails开发环境安装

    1.Setup Ruby on Rails2.Test Web App3.Create the First Web App 1.Setup Ruby on Rails1) Download rubyi ...

  6. 用VirtualBox和vagrant在win7×64上搭建ruby on rails 开发环境

    下载准备 1.vagrant 官方  WINDOWS Universal (32 and 64-bit) http://www.vagrantup.com/downloads.html 2.Virtu ...

  7. Ruby on Rails 开发笔记

    安装 Ruby on Rails Install Rails: A step-by-step guide 创建应用 # 创建新的应用程序 $ rails new blog $ cd blog # 启动 ...

  8. win7安装ruby on rails开发环境

    前言 我们看到很多文章说ruby环境windows它是非常困难的基础上,这将是各种稀奇古怪的问题,因此,建议linux和mac发. 可是我依照教程搭了下,问题也不算太多.总过大概花费了2个半小时左右就 ...

  9. Ruby和Rails开发环境安装

    更新包管理 sudo apt-get update 安装curl sudo apt-get install curl *安装rvm via curl \curl -L https://get.rvm. ...

随机推荐

  1. Deep Learning for Natural Language Processing1

    Focus, Follow, and Forward Stanford CS224d 课程笔记 Lecture1 Stanford CS224d 课程笔记 Lecture1 Stanford大学在20 ...

  2. Criteria 和 DetachedCriteria的区别与使用(转)

    转自:http://javapub.iteye.com/blog/1149709 Criteria 和 DetachedCriteria 的主要区别在于创建的形式不一样, Criteria 是在线的, ...

  3. USB 3.1 Type-C

    [時報記者任珮云台北報導]微軟.英特爾.蘋果今年將新款PC介面升級至USB 3.1規格,Wintel陣營今年新款PC產品亦將全面採用USB 3.1介面,里昂證出具最新的報告指出,在新趨勢帶動下,台廠的 ...

  4. WPS Office手机版调用接口代码指导帖之一(Android)

    经常会有一些喜欢开发鼓捣的童鞋问我们,WPS Office手机版是否提供调用接口,希望在android中使用一个调用命令,直接调用WPS手机版来打开指定的DOC文件,而不用弹出一个程序可选列表(如果用 ...

  5. C# 使用XmlDocument类对XML文档进行操作

    原创地址:http://www.cnblogs.com/jfzhu/archive/2012/11/19/2778098.html 转载请注明出处 W3C制定了XML DOM标准.很多编程语言中多提供 ...

  6. poj2762 Going from u to v or from v to u?

    Going from u to v or from v to u? Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 13040 ...

  7. 关于在用Swift开发iOS时如何隐藏NavigationBar和TabBar

    举个例子:如果我有一个页面需要进入时同时隐藏NavigationBar和TabBar,那么我就在那个页面的ViewController的代码里加上下面的代码.就可以实现了.接下来告诉大家每一块要注意的 ...

  8. checkbox和radio的样式美化问题

    如果你下定决心要改变现有的默认的checkbox和radio的样式,那么我目前有两种办法: 1.自己动手写一个,也就是自己写代码实现将input的checkbox和radio默认的样式隐藏掉,使用绝对 ...

  9. C# in Depth阅读笔记2:C#2特性

    1.方法组转换 c#2支持一个从方法组到兼容委托类型的隐式转换,即如: button.click+=new eventhandler(logevent)可以写成 button.click+=logev ...

  10. asp.net RadioButton控件基础

    RadioButton按钮呢,必须要设置groupname属性的值才能将多个RadioButton按钮设置为单选按钮,当AutoPostBack="true"的时候,在change ...