【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

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

评论

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

阿里P7大牛整理!对Android开发的现状和未来发展的思考,吊打面试官系列!

欢喜学安卓

android 程序员 面试 移动开发

嵌入式软件架构设计之分层设计

cdhqyj

架构 软件 嵌入式 分层

Knativa 基于流量的灰度发布和自动弹性实践

Serverless Devs

Serverless Kubernetes 运维 云原生 Knative

Rust从0到1-基础概念-函数

rust 函数

spark性能调优之JVN调优

大数据技术指南

spark 3月日更

微信扫码登录技术实现的简单思考

朱季谦

redis

智慧党建平台建设--开拓新时期党建系统

13530558032

区块链数字版权保护--为数字版权保护赋能

13530558032

visualvm工具远程对linux服务器上的JVM虚拟机进行监控与调优

朱季谦

JVM GC 调优

从开源的历史与今天,聊聊为什么要期待HDC.Cloud 2021

脑极体

近万字原创长文,以追忆2020年:《请回答,2020》

朱季谦

随笔杂谈

web前端面试题详细解析

yumibgt

面试

android开发经典实战!我的移动开发春季历程,大厂直通车!

欢喜学安卓

android 程序员 面试 移动开发

Python OpenCV 图像平移,取经之旅第 10 天

梦想橡皮擦

3月日更

基于NB-IoT的智慧路灯监控系统(NB-IoT专栏—实战篇5:手机应用开发)

不脱发的程序猿

物联网 28天写作 3月日更 NB-IoT智慧路灯 手机应用开发

Activiti工作流自动生成28张数据库表的底层原理分析

朱季谦

Activity 工作流引擎

区块链如何应用到食品?区块链食品安全溯源

13530558032

EGG Network阿凡提的模式是怎么样的?早点了解别错失这个机会!

币圈那点事

区块链

金三银四,冰河为你整理了这份20万字134页的面试圣经!!

冰河

面试 面经 offer 金三银四 我要进大厂

统一日志管理方案:Spring项目logback日志与logstash和Elasticsearch整合

朱季谦

ELK

是谁拖(慢)了 Redis 的后腿?

escray

redis 学习 极客时间 3月日更 Redis 核心技术与实战

压抑了五个月的我终于可以放声呐喊了!阿里是真的难进,Java四面面经+面试题

Java架构追梦

Java 阿里巴巴 架构 面试 金三银四

vue项目中使用tinymce富文本编辑器实现图片上传/粘贴格式

yumibgt

tinymce

Kylin安装部署

五分钟学大数据

kylin 3月日更

2021最新分享Java面试全套合集!

比伯

Java 编程 架构 面试 计算机

v01.12 鸿蒙内核源码分析(双向链表) | 谁是内核最重要结构体 | 百篇博客分析 HarmonyOS 源码

鸿蒙研究站

鸿蒙 HarmonyOS 鸿蒙内核源码分析 百篇博客分析鸿蒙 百万汉字注解鸿蒙

策略枚举:消除在项目里大批量使用if-else的正确姿势

朱季谦

枚举 策略模式

模仿Activiti工作流自动建表机制,实现Springboot项目启动后自动创建多表关联的数据库与表的方案

朱季谦

建表

深入理解Spring Security授权机制原理

朱季谦

security

新思科技解析导致汽车无钥匙进入系统易受攻击的漏洞及缺陷

InfoQ_434670063458

什么?都1202年了还不懂k8s和容器的关系?!这份k8s指南快拿走不谢!

观测云

云计算 k8s 云服务 知识星球

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