Ruby on Rails为企业SOA做好准备了吗

 
   | |

导读:Ruby on Rails是一个可以使你开发,部署,维护web应用程序变得简单的框架。MVC架构可以使他们的程序变得更清晰在java中象Tapestry和Struts这些框架都是基于MVC。

关键词:Ruby on Rails web应用程序 MVC架构 java

 
正在加载数据...

  Oracle帮您准确洞察各个物流环节

  Ruby on Rails为现实世界的面向服务架构(SOA)做好准备了吗?

  答案应该是肯定的。Tate负责RESTful SOA项目的开发工作,该项目使用Ruby on Rails进行开发。不过,作为Ruby的早期倡导者,Tate表示,虽然Ruby具备有利于RESTful项目开发工作的所有动态语言具备的功能,但它也存在一个明显的不足。

  “只有你部署了它以后并且逐步扩展,Ruby才能发挥作用,”Tate说。

  这就是Tate为什么同Ezra Zygmuntowicz(托管服务公司EngineYard.com创始人合首席架构师)以及Clinton Begin(软件顾问、以SQL为中心的Java框架iBATIS的创始人)合作撰写了一本新书---《Rails应用部署指南》。

  这本书的用意是帮助开发人员学会如何成功部署Rails应用,并使它们可以按照比例扩展和性能可调谐。这本书还向读者介绍如何在RailsNginxMongrel集群上安装应用并实现高可扩展性。Tade说。

  “我们设立虚拟箱(virtualized boxes)而不是规则的专用箱来分开你的架构组件,” Zygmuntowicz解释说。“所以你的数据库层有单独的虚拟机,应用层有单独的虚拟机,Web服务器曾也有单独的虚拟机。所以,这些Linux虚拟机是不会与很多其它服务混合运行在一起的。”

  让每一个用户在其自己的虚拟机上运行所需的服务,有利于规模调整和性能调节,EngineYard架构师说。“它可以让你用一种更好更高效的方式调解你的应用服务的性能,因为你架构的每一层都是可以单独扩展的,”他解释说。

  Begin说,这本书将有助于开发人员现实世界中逐渐学会部署Rails应用。但是,Begin在之前所写的一本关于iBATIS的书中,他指出,所有的有关程序编码的书籍都有其局限性,很大一部分原因是技术的发展太迅速了,大部分的编程手册在它们印刷的时候就已经过期了。

  “我所希望我的书能够教会开发人员如何看待Rails部署以及弄明白为何它这样部署,”Begin说。 “仔细研究过这本书的开发人员都应该可以部署Rails,就像我们在书中做得那样。”

  古语说得好:“授之以鱼,不如授之以渔。” Begin表示,开发人员应该讲这本书看作为一个如何给这种轻型系统建立架构的起点。

  “我希望开发人员在阅读完这本书以后能够自我反思,”Begin说。“牢记我们在书中教给大家的部署步骤和注意事项,并把这些知识应用到实际部署中。唯一的区别就是实际的部署中使用的服务器可能不会是书中提到的Mongrel,很多开发人员在实际部署中可能会用到Thin服务器。”

  Begin表示,即使在书中没有提到Thin,他也相信阅读过此书的开发人员将对Rails部署有基本的了解,以便能够使用他们选择的应用服务器工作。

  “我希望他们能够阅读这本书,但是不要照搬书上的内容,”Begin说。“我希望开发人员能够掌握我们书中传授的做法,并能创造出适合于他们自己需要的新的部署方法。我们不会试图推行一个一劳永逸的方法。”

  如果开发人员可以学会有效地为企业SOA部署Ruby on Rails应用,他们就可以利用作者提到的那些功能,这要比使用Java或者C#有用得多。

  对于那些计划采用RESTful方法的人来说,Ruby on Rails很有优势,Tate说。

  “Rails的贡献之一就是它具备成为一个非常有效率的REST平台的能力,”Tates解释说。“REST能自动从Rails资源服务器取得更新并自动扩展,而其它平台则需要你在空闲时手动输入脚本代码执行这项工作。从这个角度来看,这个平台的优势是你可以有一个技能出理HTML请求还能处理XML请求。在你开始创建额外应用和定制应用时,这个平台就已经可以使用了。”

  虽然在工作期间,Begin广泛使用Java语言,但他仍然坚持认为Ruby on Rails是实际部署SOA的最好选择。

  “原因在于,我认为动态语言,不仅仅是Ruby而是大多数情况下,都很重要,因为目前的Java、C #或其它任何静态编译语言,它们的问题是在对Web服务进行编码的时候会产生大量的代码,”Begin说。“我有一个计算税款的Web服务。对于一个Web来说,它所产生的代码就超过了50000行---2.4兆字节的Java代码。这仅仅是一个Web服务,而我们有 20个类似的Web服务。我甚至都没有启动我的应用。”

  虽然Begin没有明确说Ruby on Rails将会使开发人员的效率提高十倍,但根据他的使用Java的经验,Rails具有很多内在的优势,其中一些是不能量化的,就像Begin所说的“Rails是一个令人感到愉快的工作平台。”

  根据自己使用Rails的体验,Begin说:“Rails平台简单易用,我认为使用它你将更具生产力。你不需要花时间在你的内部环境中编写同Web服务通讯的SOA层和适配器,你要做得实花更多时间来满足客户的需要,但不是技术需要。这就是我认为Rails作为最终产品的优势所在。”

  注:什么是Ruby on Rails?

  Ruby on Rails是一个可以使你开发,部署,维护web应用程序变得简单的框架。

  当然了,所有的web框架都有同样的目标。是什么使得Rails如此不同呢?我们可以通过几个途径来回答这个问题。

  第一是看架构。在过去的时间里,许多开发者在严谨的web应用程序上使用MVC架构。他们发现MVC架构可以使他们的程序变得更清晰在java中象Tapestry和Struts这些框架都是基于MVC。 Rails也是一个MVC框架。当你使用Rrails进行开发,应用程序的所有代码以一种标准方式互相作用。在开始开发之前,整个应用程序的骨架已经搭好的。

  回答这个问题的第二个是看编程语言。 Rails程序是使用Ruby编写的,它是一门现代,面向对象的脚本语言。 Ruby简洁,不难理解。它可以让你快速地用代码自然, 清晰表达想法。让你的程序能很简单被编写并且在几个月后还能很容易读懂。

原文出处:http://tech.it168.com/a2008/0820/201/000000201322.shtml
 
来源:IT168    
 
 
 
 
 

Ruby on Rails

 
由InfoQ中文站、敏捷方法论的领导厂商ThoughtWorks共同举AgileChina 2009的新闻发布会于今日在京举行。敏捷中国大会是国内敏捷技术领域最高水平的大会。
 
Ruby on Rails是构建在Ruby语言上的一个Web开发开源框架,有时也被称为RoR或Rails。Ruby是一个面向对象的编程语言,与Perl和Python类似。
 
很多语言被描述为“脚本语言”,这些语言可以被用来编写Web服务用户应用。“脚本语言”这个术语经常应用在像“quick and dirty”的解决方案上……
 
一个具有15年经验的开发商在设计网络书店这个项目时,从Java转移到了Rails。他所设计的项目包括实用书店,实用程序编制LLC的一种,该实用书店出售印刷物和可下载的PDF……
 
"Advanced Rails Recipes: 84 New Ways to Build Stunning Rails Apps"一书的作者Mike Clark说,Ruby语言框架的最新版本Rails 2.0意在对REST应用进行操作……

热门技术手册排行

 

随着开源技术越来越成熟,一个稍有开发经验的人通过学习就可以用开源的产品和技术构建一套可用的系统。对于从事软件开发的人员,尤其是对Java或动态语言相关领域的人来说,“开源”也许是他们最喜爱的单词。但是,很多时候我们需要的不仅仅是一个可用的系统,而是希望这个系统开发更简易、性能更高和扩展性更好等。这确实是一个令人头痛的问题。本指南很多地方都是点到为止,要深入了解相关信息的读者请借助参考资料、网站等自行挖掘。

 

本专题分六部分探讨SOA设计模式,当初设计面向服务架构的一大初衷就是降低服务间耦合度,由此提高服务的灵活性和自由度。

 

业务流程管理(business process management,bpm)不是一个新概念,甚至不是一个新名词。它是从相关的业务流程变革领域,如业务流程改进(bpi)、业务流程重组(bpr)、业务流程革新中发展起来的。流程管理技术也是从早期的工作流管理、eai、流程自动化、流程集成、流程建模、流程优化等技术中发展起来的。

 

TOAGF是一个架构框架,简而言之,TOGAF是一种协助发展,验收,运行,使用,和维护架构的工具。它是基于一个迭代(Iterative)的过程模型,支持最佳实践和一套可重用的现有架构资产。

 

云计算的概念越来越流行,Amazon、Google和IBM是第一批将云计算引入公众视线的公司。云计算就是新的Web2.0,一种既有技术上的市场绽放。

 

Mashup是一个非常cool的新的应用程序种类。如果你想真正的了解它们,我们需要回过头来看看你现在的计算机,其实它就是一个非常好的帮助你理解mashup的模型。现在开源的操作系统无疑是非常好的apis的集合或应用程序编程接口,帮助开发者去构建其应用程序。计算机本身也是一个很好的为用户提供接口的例子,键盘和鼠标可以被理解为你通过计算机的接口而使用的不同的应用程序。本技术手册为读者提供了一些相关信息,如果需要深入了解mashup,读者可以借助其他参考资源。

查看更多
 
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
电子邮件地址:
请输入您的电子邮件地址
密码:
下次自动登录