具有Java中/后端的RoR Web层

时间:2010-10-29 04:53:55

标签: java ruby-on-rails ruby spring

我正在寻找关于在分层架构中使用不同语言的一些建议/反馈。现在,所讨论的体系结构是一个全Java堆栈(db,中间层和Web层),使用Spring将所有内容绑定在一起。我们一直在讨论将Ruby on Rails用于Web层的想法,但我想知道是否有人之前已经这样做过(可能使用不同的语言/技术)。切换到RoR背后的想法是提高Web层的开发速度,但是我最初的分析是它也会降低中间层的开发速度。

我试图获取数据的一些问题是:

  • 是否有任何小型开发团队在类似架构中实际使用混合语言方法?
  • 你为什么用这种方法?什么运作良好,什么运作不好?
  • 您将如何处理接口和模型(可能使用Google协议缓冲区或Apache Thrift)?
  • 使用这样的方法还有其他好处或陷阱吗?

2 个答案:

答案 0 :(得分:2)

虽然我没有RoR的经验,但我们采用了类似的方法将Django作为前端层,我们将使用基于java的服务进行高容量事务处理后端。

我们在django模型中定义数据库,使用django views / jquery开发Web前端,显然可以获得一个免费的管理站点。

在java方面,我们运行一个hibernate逆向工程任务来为java代码生成数据库访问类。如果需要,我们使用家庭制作的JSON而不是AMQP RPC机制来在python和java组件之间进行通信。

这种方法有起有落。对于我们而言,由于我们没有使用任何大型Java框架,它使我们能够访问我们的解决方案的快速/轻量级Web前端,以及使用Django模型格式(我非常喜欢)对数据库建模的简便性。

在不利方面,我们确实遇到了一些hibernate逆向工程配置的棘手问题(如果你做的事情不是标准的话,这很复杂 - 尤其是与某些Django ManyToMany关系有关)。

我注意到你提到你已经拥有一个带有Web层的基于Spring的架构。我不是这里的专家,但可能会为您提供值得探索的机会,例如groovy / grails或SpringMVC,它们在版本3中声称要简化并且更快地开发。这可能会为您提供所需的胜利。

折衷方案可能是查看一些受RoR启发的Java工具,如Rife

最重要的是,您必须根据自己的应用程序要求和团队功能进行调用。它对我们有用,我认为对我们来说是正确的决定,但如果你的团队已经加入了Java&春季技能然后春季3可能是要走的路(但问一位Spring专家:-))

罗布

答案 1 :(得分:1)

此演示文稿可能对您有用:Rails on Spring - Using JRuby as the Secret Sauce