写点什么

企业开发期待的 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:261908

评论

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

软件测试/测试开发 | AppCrawler 自动遍历测试工具实践(一)

测试人

软件测试 自动化测试 测试开发 自动遍历 AppCrawler

【等保小知识】等保四级是最高级别吗?等保四级适用于哪些领域?

行云管家

等保 等保测评 等保四级

甩掉容量规划炸弹:用 AHPA 实现 Kubernetes 智能弹性伸缩

阿里巴巴中间件

阿里云 Kubernetes 云原生 AHPA

行业分析| 交通综合执法对讲系统

anyRTC开发者

指挥调度 快对讲 语音对讲 视频对讲 综合执法

Serverless 奇点已来,下一个十年将驶向何方?

Serverless Devs

Java高手速成 | 高质量代码编写最佳实践

TiAmo

编程好习惯 设计原则 Java’

赞赞赞!融云收获行业媒体「组团打 Call」

融云 RongCloud

使用 NineData 高效编写 SQL

NineData

数据库 sql 数据库开发 数据管理工具 NineData

华为云Stack新版发布:构筑行业云底座,共创行业新价值

华为云开发者联盟

云计算 后端 华为云 企业号 1 月 PK 榜

云图说 | Workflow:流水线工具,助您高效完成AI开发

华为云开发者联盟

人工智能 华为云 AI开发 企业号 1 月 PK 榜

为什么网络I/O会被阻塞

华为云开发者联盟

后端 开发 华为云 企业号 1 月 PK 榜

一文总结ACE代码框架

OpenHarmony开发者

OpenHarmony

火山引擎 DataLeap 通过中国信通院测评,数据管理能力获官方认可!

字节跳动数据平台

大数据 数据治理

HDI压合设计准则作业规范

华秋PCB

PCB PCB设计 HDI

文末领资料 | 研发效能领域的三个年度关键词

思码逸研发效能

研发管理 研发效能

【等保小知识】等保3.0就是等保三级吗?

行云管家

等保 等保2.0 等保3.0

《金融电子化》:隐私计算赋能银行助贷业务自主风控 | 华夏银行×洞见科技

洞见科技

隐私计算 风控

Diffie-Hellman密钥协商算法探究

百度Geek说

数据安全 企业号 1 月 PK 榜

视频实时自然美颜, 无惧素颜上镜

HarmonyOS SDK

HMS Core

【Redis 技术探索】「数据迁移实战」手把手教你如何实现在线 + 离线模式进行迁移 Redis 数据实战指南(数据检查对比)

码界西柚

redis 1月日更 数据对比 Redis-full-check

无监控,不运维!深入浅出介绍ChengYing监控设计和使用

袋鼠云数栈

ISV生态合作伙伴体系多领域赋能,开拓市场赛道

元年技术洞察

数据中台 数据 数字化转型 ISV 方舟平台

牛啊!长这么大还是头一次见24W字的SpringBoot从入门到实战文档

程序知音

Java spring 微服务 springboot 后端技术

编程的终结;展望2023年AI系统方向;AI的下一个阶段

OneFlow

人工智能 深度学习

TDengine 公布 2022 年度中国时序数据应用创新奖,33 个科技企业创新应用脱颖而出

TDengine

数据库 tdengine 时序数据库

react源码中的hooks

flyzz177

React

Git操作不规范,战友提刀来相见!

王中阳Go

golang git 深度思考 高效工作 学习方法

信用卡APP评测系列:科技赋能信用卡APP创新升级,助力客户体验提升

易观分析

金融 信用卡

学术加油站|机器学习应用在数据库调优领域的前沿工作解读

OceanBase 数据库

数据库 oceanbase

大咖说·对话开源|与Tapdata论道数据技术开放生态

大咖说

开源

关于 Serverless 应用架构对企业价值的一些思考

Serverless Devs

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