QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

企业开发期待的 Ruby 支持

  • 2007-12-02
  • 本文字数:2341 字

    阅读完需:约 8 分钟

在所有关于 Ruby 的讨论中,很少有人说 Ruby 适合企业应用的开发,但是这一切正在发生转变。

很多人问过企业应用的开发人员是否还需要一门新的语言。大部分人认为有了 Java 我们还需要什么?而对于 Ruby 最激烈的争论永远都是关于性能,语言特性(动态类型、命名空间和原生线程等等)和缺少主要赞助商的支持。

作者并没有继续这些争论,而是换了一种角度:企业应用的开发者还有什么需要现在无法得到满足?基于这个问题让我们再来看看 Ruby 所能提供的价值,进而再来讨论支持复杂的企业应用所需要的架构。

消息队列

应用消息可以提高应用间的交互性和集成能力,就像胶水一样。技术和安全问题是最关键的,现在还缺乏一些可信赖的、功能完善的开放的解决方案。JMS 作为一个 API 标准的出现,使得一些基于 Java 的解决方案产生出来,其中既有免费的也有商业的,使很多软件组件集成到企业网络中的步伐慢下来。另一个主要的问题是传统的集成技术很难使用、扩展基于消息的架构。

一个基于 Ruby 的消息队列系统如果可以满足大部分的标准和安全问题,将弥补上面提到的空白。尤其有用的是可以支持 AMQP 协议的集成,保证与已有的基于 Java 的解决方案之间的交互性。敏捷开发可以保证快速、灵活的解决商业问题。一个敏捷的软件集成架构将是解决目前问题的重要一步。

中心化的认证和授权

过去的几年中大家一再强调认证管理,大部分的企业系统都有一个组件用于认证。然而权限的验证要么留给每个应用各自处理,要么集成到认证系统里面。在很多小的企业系统中,没有大型的应用,除了 E-mail,可能根本就不存在权限控制问题。

应用的集成可以提供协作和信息分享,让企业的 IT 投资在未来体现出更多的价值。适当的权限管理控制是非常重要的,而且也是技术上的挑战。尤其是当你的客户和合作伙伴增加后,完善的信息系统可以为你产生巨大的价值,但前提是你要可以用正确的缺陷管理使用它。很多大企业错误的认识了应用集成带来的挑战,而一些小企业甚至根本没看到。

无论是大企业还是小企业,身份认证和权限验证都不适合作为标准解决方案的一部分。一个中心化的访问控制架构是需要的,安全,可监控,有很高的扩展性,容易和各种应用集成,还要支持现在主流引擎的属性。

一些有趣的学术研究已经完成,但是还没有给企业带来太多的效益。这个敏感的领域会获得很多优秀的厂商关注和支持,但是大部分开发和集成的优势应该来自于 Ruby 的敏捷和灵活性。

数据库

Ruby 已经可以很好的与数据库集成,这些都是通过接口实现的,并不需要暴露数据模型。

Web 开发

Ruby 在一些领域已经取得了明显的成功,而基于 Rails 的产品在特定的问题域(新开发的数据模型,而且没有过高的集成需求)也表现得很突出。但这还不足以说明 Rails 可以解决问题,取得成功。

企业需要考虑的需求更加广泛,不仅仅局限于 Web 开发(相对客户端开发而言)。面向客户的应用往往需要继承很对已有的数据库,高性能,可扩展性,开发的适应性和与其它应用紧密集成的能力。

站在 Java 的角度看这些需求都很简单,有大量的 Web 开发框架可供选择,一种框架是不可能适合开发所有的客户应用的。Ruby 世界已经开始尝试一些新方法去满足客户的需求。尤其值得注意的是基于 Java 的 Tapestry 框架是组建模型的,而不是传统的 MVC 结构,这也许可以提供一种完全不同的方法在满足企业需求的同时达到 Ruby 的敏捷效率。

SOA

今天,SOA 页面临一些实质性的挑战,通过几年的努力,前方的道路仍然不够明确。厂商们的争论依旧停留在标准和方法论上,并没有什么实质性的进展。作者认为 Ruby 也许可以让 SOA 更加敏捷、灵活,但这一切还不清楚。

架构部署

Java 在为一些大型的重要应用上取得了不少成功经验,可以保证这些应用不中断的提供在线服务。但事实上 Java 所能提供的可管理能力和可靠性要依赖于大量复杂的配置和管理工作。所以,往往很难快速集成新的应用或快速响应变更的需求。

同时,敏捷软件对可管理部署中的关键问题也提出了批评。事实上这是企业尚未部署 Ruby 应用的关键原因。例如,现在还没有提供一个部署工具来摆脱手工操作,要是需要部署上百台服务器,工作量可想而知。

Ruby 需要一套复杂的部署工具和运行时容器(支持逆向控制和依赖注入模式)。这需要 Ruby 应用提供一系列的服务(包括日志,消息,持久性,访问控制,事件等等)来让系统管理员管理,而不是开发人员。Java 在这个领域做得很好,有很多的东西值得 Ruby 借鉴。未来,我们将会有一个敏捷的应用管理框架,它可以带给我们足够的可扩展性和定制性。甚至可以将现在应用中的部署和管理方式转换过来。

结论

企业中的 IT 经理需要稳定性,可管理性和专业的支持,但是开发人员很少会满足这样的优先级需求。企业的管理者需要快速、复杂的方案来解决问题,有能力应用信息来使企业增长,提高客户服务。这个需求上的分歧可能会给 Ruby 在企业中的应用创造机会。

为什么在很多免费或商业的 Java 解决方案已经存在的情况下,我还要写这个 Ruby 的企业需求?就是为了减少摩擦和开销,加速方案的实现,分析由商业驱动的 IT 行为。Java 很难满足这样的需求,因为它在实践,方法论和传统间存在严格的约束。

Java 世界里新产品产生的速度已经放慢了,重要的是语言的改进成为了阻碍,很多的能量都放在了已有方案的改进中,比如 EEv3。同时,企业应用中很多关键部分已经有了大量优秀的商业产品。总的来说,Java 世界是以厂商为中心的,而不是以社区或者业务为中心的。

但是,Ruby 已经看到这些挑战并做出些有价值的贡献了吗?这大概是我下回要写的。

查看英文原文: Enterprise-Ruby Wish List - - - - - -

译者简介:苏锐,Ruby on Rails 开发者,关注各种 Web 开发技术,Mac 爱好者。他的博客为: http://www.surui.net 。参与 InfoQ 中文站内容建设,请邮件至 china-editorial@infoq.com

2007-12-02 19:261739

评论

发布
暂无评论
发现更多内容

众妙之门玄之又玄,游戏系统中的伪随机(Pseudo-Randomization)和真随机(True-Randomization)算法实现Python3

刘悦的技术博客

算法 游戏 Python3 算法实践 随机数

Java经典算法题(二),这10个经典又容易被人疏忽的JVM面试题

爱好编程进阶

Java 面试 后端开发

Kotlin的扩展函数知识点

北洋

kotlin andiod 4月月更

企业级知识管理(KM)建设方法及过程

小炮

知识管理

对线郭老师职业发展,记下自己的心得体会

北洋

面试 职业规划 程序猿 4月月更

每周问答精选:PolarDB-X完全兼容MySQL吗?

阿里云数据库开源

数据库 阿里云 开源 polarDB PolarDB-X

Java有线程安全的set吗?,跳槽薪资翻倍

爱好编程进阶

Java 面试 后端开发

智能手表的下半场,机遇与挑战并存

FinClip

带你了解极具弹性的Spark架构的原理

华为云开发者联盟

spark mapreduce 内存 RDD Spark架构

报名开启|QKE 容器引擎托管版暨容器生态发布会!

青云技术社区

Netty权威指南:Linux网络-I-O-模型简介,分享我在Java开发中走的一些弯路

爱好编程进阶

Java 面试 后端开发

redis优化系列(一)基于docker搭建Redis主从

乌龟哥哥

4月月更

Redis面试题汇总,mysql索引优化面试题常问

爱好编程进阶

Java 面试 后端开发

Spring Boot 实战 :入门篇,想给金三银四找工作的程序员几点建议

爱好编程进阶

Java 面试 后端开发

java的反射用不好容易走火入魔?还可以用内省啊!,网易java面试题和答案

爱好编程进阶

Java 面试 后端开发

Java程序员如何加入自己理想的大厂呢?本人来分享亲身经历的腾讯Java技术岗的面经。

爱好编程进阶

Java 面试 后端开发

MyBatis实现一对一,一对多关联查询,HTTPS面试常问全解析

爱好编程进阶

Java 面试 后端开发

世界读书日晒出你的书单,有机会领取免费读书年卡!

InfoQ写作社区官方

书籍推荐 热门活动 2022世界读书日

Vue + Node.js 搭建「文件上传」管理后台

蒋川

Vue Node Node Exporter

企业级知识管理(KM)建设方法及过程

小炮

知识管理

社区运营书籍推荐

坚果

4月月更

Myabtis源码分析五-Mybatis配置加载完全图解,建造者模式的使用,涵盖Java各种技术栈

爱好编程进阶

Java 面试 后端开发

RocketMQ msgId与offsetMsgId释疑(实战篇),腾讯技术官发布的“神仙文档”火爆网络

爱好编程进阶

Java 面试 后端开发

开源大数据OLAP引擎最佳实践

五分钟学大数据

数仓 4月月更

Rust异步框架的性能评估

非凸科技

tokio Zenoh 异步框架 async_std smol

如何进行项目协同管理

阿里云云效

阿里云 项目管理 敏捷开发 项目协同 研发协作

数学史有没有必要读?关于数学教育,我们忽视了太多

图灵教育

数学 数学史 数学教育

OutOfMomeryError异常实例与处理,zookeeper面试题总结

爱好编程进阶

Java 面试 后端开发

PlatoFarm推出正式版游戏经济模型的特点分析

西柚子

Spring Boot在微服务中的最佳实践!,作为Java程序员都应掌握

爱好编程进阶

Java 面试 后端开发

悟空的私藏「架构』书籍推荐

悟空聊架构

4月日更 悟空聊架构

企业开发期待的Ruby支持_Ruby_Francis Cianfrocca_InfoQ精选文章