武汉的开发者们注意啦!AI技术战略、框架以及最佳实战尽在Azure OpenAI Day 了解详情
写点什么

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

评论

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

一文吃透 Go 内置 RPC 原理

捉虫大师

Go RPC

架构训练营模块八作业

现在不学习马上变垃圾

架构训练营10期

在云原生和裸金属环境开展NFS存储性能比对测试

QE_LAB

云原生 性能测试

简述XML和JSON

devpoint

JavaScript json xml

MATLAB实现图像的傅立叶变换

timerring

图像处理

开发者进阶必备的9个Tips & Tricks!

SEAL安全

开发者 企业号 3 月 PK 榜 开发人员

面试官:你了解Spring Security 权限控制吗?

做梦都在改BUG

Java spring spring security

安全高效 | AIRIOT智慧工地管理解决方案

AIRIOT

物联网 智慧工地

手写模拟Spring底层原理-Bean的创建与获取

京东科技开发者

spring 接口 aop 代码 bean

3.基于Label studio的训练数据标注指南:文本分类任务

汀丶人工智能

信息抽取 数据标注 文本分类 labelstudio

MYSQL索引知识大集合

阿呆

索引 MySQL InnoDB

浅谈ChatGPT掀起的一波浪潮 | 社区征文

海风极客

ChatGPT

互联网工程师1480道Java面试题及答案整理( 2023年 整理版)

架构师之道

java面试

中移链元交易功能对接说明

BSN研习社

OpenCloudOS 如何以最小成本,高效定位内存泄露路径?

OpenCloudOS

Linux 内存 opencloudOS

服务老是被攻击,如何设计一套比较安全的接口访问策略?

做梦都在改BUG

解读场景化视频制作工具的实现过程

阿里云视频云

云计算 智能生产

探究计算机视觉新兴能力:如何通过提示检索提高性能?

Zilliz

计算机视觉

会声会影2023官方新功能介绍

茶色酒

会声会影2023

LED显示屏配电柜专业知识

Dylan

系统、 电子 LED显示屏

如何通过C#/VB.NET代码在Word中更改字体颜色

在下毛毛雨

C# .net word文档 字体 段落

软件测试/测试开发 | 功能测试转测试开发,该如何写简历?如何与其他竞争者中脱颖而出?

测试人

软件测试 自动化测试 测试开发

小程序成生活“标配”,成互联网商业的重要阵地

没有用户名丶

小程序化

从智能进化模型看用友BIP的AI平台化能力

YonBuilder低代码开发平台

运维训练营第16周作业

好吃不贵

2049 数据合规可信计划共同体研讨会在京召开,易观作为标准起草单位应邀参加

易观分析

数据 数字化

大厂的职级晋升答辩是什么 · 职级晋升系列

致知Fighting

后端 晋升

从 Netflix 传奇看,结果导向的产品路线图如何制定?(下篇)

LigaAI

敏捷开发 研发管理 研发效能 it路线图 企业号 3 月 PK 榜

再创佳绩!阿里云 4 篇论文入选顶会 FAST 2023

云布道师

阿里云 云存储

AIGC新实践:AI代写神器搞定BI计算字段所有难题

网易数帆

AI BI

一天约了4个面试,复盘一下面试题和薪资福利

王中阳Go

Go 面试 面试题 简历优化 大厂突击

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