2008-05-30
Ruby on Rails架构模型
关键字: rails ruby ruby on rails敏捷开发最佳实践 李刚
学习须要温故而知新,现在学习ror(使用的是李刚、郭秋霞的《Ruby on Rails敏捷开发最佳实践》),感觉很有收获,不过还是要自己好好整理一下,总结进我的博客,以便日后复习之用。下面就是我学习后自己理解和总结的Ruby on Rails架构模型,并且和Java EE的架构模型做了一下对比。
Ruby on Rails架构模型
Ruby On Rails框架提供了开发企业级应用的全部解决方案,这一点也是Ruby on Rails能吸引开发者的重要原因。
Ruby on Rails提供了开发企业级应用所必需的全部功能:Web服务器、处理HTTP请求和HTTP响应的MVC框架、处理底层数据持久化的ORM框架。而这些服务,在轻量级Java EE应用中都有相应的实现,而且每种服务都有超过一种的选择。
Ruby on Rails通过大量约定,简化了Java EE应用中的XML文件配置,但即便如此,依然可以看出Ruby on Rails和Java EE应用的较大类似性。
图1显示了Ruby on Rails框架的架构模型。
从图1中不难看出,Rails框架主要由如下4个部分组成。
(1)WEBrick服务器:这是所有Web应用的基础。WEBrick服务器主要用于提供底层的Socket连接和多线程的服务。通过WEBrick服务器的支持,允许Web应用开发者无须关心底层的Socket通信机制,无须理会多线程等,就可以开发Web应用。
(2)RHTML页面:这是一种功能强大的模板页面,它是Ruby on Rails的视图层技术,包括负责收集用户输入的表单页,以及包含显示处理结果的显示页。
(3)ActionController:这并不是一个类,而是一个模块,该模块里包含了一个Base类,Base类是所有控制器的父类。因此图1将ActionController画成系统的控制器,该控制器向上负责为RHTML页面提供服务,向下调用ActiveRecord的方法来处理用户请求。
(4)ActiveRecord:这是Ruby on Rails的核心,也是Ruby on Rails应用中最复杂的组件,它合并了Java EE应用中的三个成员——富领域对象、业务逻辑组件和DAO组件,因此功能非常丰富。
学习Ruby on Rails开发主要就是学习如何使用ActionController里的控制器方法来取出请求参数,并调用ActiveRecord组件里的业务逻辑方法,再根据不同的领域模型来建立相应的ActiveRecord Model对象。
图2显示了Java EE应用的架构示意图。
对比图1和图2不难发现:Ruby on Rails和Java EE应用架构如此相似,如果把Java EE应用架构中的业务逻辑组件、DAO组件和富领域对象三者合一,就完全变成了Ruby on Rails的应用架构。
Ruby on Rails架构模型
Ruby On Rails框架提供了开发企业级应用的全部解决方案,这一点也是Ruby on Rails能吸引开发者的重要原因。
Ruby on Rails提供了开发企业级应用所必需的全部功能:Web服务器、处理HTTP请求和HTTP响应的MVC框架、处理底层数据持久化的ORM框架。而这些服务,在轻量级Java EE应用中都有相应的实现,而且每种服务都有超过一种的选择。
Ruby on Rails通过大量约定,简化了Java EE应用中的XML文件配置,但即便如此,依然可以看出Ruby on Rails和Java EE应用的较大类似性。
图1显示了Ruby on Rails框架的架构模型。
从图1中不难看出,Rails框架主要由如下4个部分组成。
(1)WEBrick服务器:这是所有Web应用的基础。WEBrick服务器主要用于提供底层的Socket连接和多线程的服务。通过WEBrick服务器的支持,允许Web应用开发者无须关心底层的Socket通信机制,无须理会多线程等,就可以开发Web应用。
(2)RHTML页面:这是一种功能强大的模板页面,它是Ruby on Rails的视图层技术,包括负责收集用户输入的表单页,以及包含显示处理结果的显示页。
(3)ActionController:这并不是一个类,而是一个模块,该模块里包含了一个Base类,Base类是所有控制器的父类。因此图1将ActionController画成系统的控制器,该控制器向上负责为RHTML页面提供服务,向下调用ActiveRecord的方法来处理用户请求。
(4)ActiveRecord:这是Ruby on Rails的核心,也是Ruby on Rails应用中最复杂的组件,它合并了Java EE应用中的三个成员——富领域对象、业务逻辑组件和DAO组件,因此功能非常丰富。
学习Ruby on Rails开发主要就是学习如何使用ActionController里的控制器方法来取出请求参数,并调用ActiveRecord组件里的业务逻辑方法,再根据不同的领域模型来建立相应的ActiveRecord Model对象。
图2显示了Java EE应用的架构示意图。
对比图1和图2不难发现:Ruby on Rails和Java EE应用架构如此相似,如果把Java EE应用架构中的业务逻辑组件、DAO组件和富领域对象三者合一,就完全变成了Ruby on Rails的应用架构。
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则







评论排行榜