`
lgx522
  • 浏览: 125809 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

RoR要在企业领域成功,必须过实时性这一关

 
阅读更多
最近在弄RoR,几乎也快成Java的叛徒了。
谁让RoR做Web+DB就是Easy呢?一个字,爽。

由于本人的工作实际上是在医疗行业做系统维护的,工作时间成天面对的是那些个讨厌的PB程序。有的时候就在琢磨,什么时候能不能有公司也用Java或RoR做一套完整的HIS,来取代这些个五花八门、乱七八糟的C/S程序,达到信息资源整合的目的。
前阵子见某公司用C#搞过一套,还是很成气候的。不过本人对MS早已敬而远之了,加之实际看下来,性能不过了了,才知道.NET的后台处理能力是不如Java。

医疗行业的业务系统,对实时性要求很高,这是导致技术上过时的C/S系统继续垄断的重要原因。尤其像门诊相关的系统,几个延时下来,操作人员恨不得把机器扔了。PB这类C/S技术做的系统,代码设计之烂惨不忍暏。从长远看来,极难维护和扩展,重用则基本不可能,但眼前的实时性还是满足的。所以,当前医疗行业的信息系统,普遍存在着这样的尴尬局面。

曾经考虑过以Java作为解决方案,即业务操作为主的部分采用Swing或Applet作界面,查询为主的部分采用Web。这种方案最适合的技术无疑是被打入冷宫的EJB(不得不说,EJB一开始就把桌面程序和Web并重,的确是深知企业的需求,企业的业务系统的确不是当前Web的实时性能够满足)。Spring做后端是比较简单,可惜一上来就是冲着Web去的,RCP并不成熟。
这几天开始接触EJB3了,发现比以前简化得多了,不知能不能满足以上需要。这个问题请有经验的同道们一起讨论。
前些天看一些同道用Java后台+WebService+WinForm做前端,本人实在觉得不妥。其实Swing开发起来及运行速度不比WinForm慢多少。结合RMI比WebService快多了。看来自从倒EJB运动以来,大家对EJB以至于Sun的官方技术几乎形成了一种歧视,这完全是没有必要的。Sun以前的技术在重量级领域非常之优秀,只是大家大多数情况用不到。现在开始着手经量级了,大家还是应该尊重一下。

RoR做Web那是没得挑了。可惜企业业务系统的实时性要求就如游戏,稍微慢一点就爽不了。即使用现在流行的Ajax,开发起来繁得很,最后的速度和C/S还是差几个数量级。这样的程序拿到企业,最终还是很难说服领导,因为领导们不关心你用什么技术,他只关心能不能更好更快地解决问题。
所以建议JavaEye的诸位同道,不要成天盯着Web。说实在的,internet领域容不下那么多的就业人员,也淘不出那么多金。
解决企业的实际问题,当是大家未来的前途所在。
建议JavaEye同仁多在RCP下些功夫。

最后说到RoR,如果它能够很好地解决实时性问题,即一方面是表现层的响应速度,一方面是高并发访问的容量,那么我们大家真有必要把它引入企业。
分享到:
评论
56 楼 xiaoyu 2007-05-29  
ray_linn 写道
xiaoyu 写道
ray_linn 写道
xiaoyu 写道
每个实时系统是有一定的响应范围的, 楼主也没有说错什么.

关于type-ahead(输入提示), 不知道大家有没有做过测试, 大部中国的网站实现(例如新浪的股票查询等), 在firefox下, 输入中文, 会没有反应(与中文输入法有很大关系). 发现Google的实现是比较另类的, 不用监听键盘键入事件, 不过也不是支持所有的输入法(算是比较完美的了).



一个词只用来表达一种情况,又不是武侠小说,一会就出现万年金蟾一会就出现天山雪莲.

Real-Time,这么专有的名词有什么好狡辩di.


我只想说任何东西都有它的范围, 像儿童这个词. 儿童也有它的范围, 只要是6岁以上14岁以下的人.

实时也是这样, 有一些系统需要在0.00000001秒作出反应, 有一些只需要在0.0001秒. 但对于我们来讲都可以说是实时的. 像java可以做实时系统, 那是因为它可以做一定范围内的.


他题目根本将的不是java,是界面...鹅的神呀


明白.
55 楼 ray_linn 2007-05-29  
xiaoyu 写道
ray_linn 写道
xiaoyu 写道
每个实时系统是有一定的响应范围的, 楼主也没有说错什么.

关于type-ahead(输入提示), 不知道大家有没有做过测试, 大部中国的网站实现(例如新浪的股票查询等), 在firefox下, 输入中文, 会没有反应(与中文输入法有很大关系). 发现Google的实现是比较另类的, 不用监听键盘键入事件, 不过也不是支持所有的输入法(算是比较完美的了).



一个词只用来表达一种情况,又不是武侠小说,一会就出现万年金蟾一会就出现天山雪莲.

Real-Time,这么专有的名词有什么好狡辩di.


我只想说任何东西都有它的范围, 像儿童这个词. 儿童也有它的范围, 只要是6岁以上14岁以下的人.

实时也是这样, 有一些系统需要在0.00000001秒作出反应, 有一些只需要在0.0001秒. 但对于我们来讲都可以说是实时的. 像java可以做实时系统, 那是因为它可以做一定范围内的.


他题目根本将的不是java,是界面...鹅的神呀
54 楼 xiaoyu 2007-05-29  
ray_linn 写道
xiaoyu 写道
每个实时系统是有一定的响应范围的, 楼主也没有说错什么.

关于type-ahead(输入提示), 不知道大家有没有做过测试, 大部中国的网站实现(例如新浪的股票查询等), 在firefox下, 输入中文, 会没有反应(与中文输入法有很大关系). 发现Google的实现是比较另类的, 不用监听键盘键入事件, 不过也不是支持所有的输入法(算是比较完美的了).



一个词只用来表达一种情况,又不是武侠小说,一会就出现万年金蟾一会就出现天山雪莲.

Real-Time,这么专有的名词有什么好狡辩di.


我只想说任何东西都有它的范围, 像儿童这个词. 儿童也有它的范围, 只要是6岁以上14岁以下的人.

实时也是这样, 有一些系统需要在0.00000001秒作出反应, 有一些只需要在0.0001秒. 但对于我们来讲都可以说是实时的. 像java可以做实时系统, 那是因为它可以做一定范围内的.
53 楼 gigix 2007-05-29  
xiaoyu 写道
每个实时系统是有一定的响应范围的, 楼主也没有说错什么.

关于type-ahead(输入提示), 不知道大家有没有做过测试, 大部中国的网站实现(例如新浪的股票查询等), 在firefox下, 输入中文, 会没有反应(与中文输入法有很大关系). 发现Google的实现是比较另类的, 不用监听键盘键入事件, 不过也不是支持所有的输入法(算是比较完美的了).

监听键盘事件是非常弱智的做法……你要是在Selenium项目里工作过,考虑7种不同浏览器的兼容性,你就知道了。
52 楼 ray_linn 2007-05-29  
xiaoyu 写道
每个实时系统是有一定的响应范围的, 楼主也没有说错什么.

关于type-ahead(输入提示), 不知道大家有没有做过测试, 大部中国的网站实现(例如新浪的股票查询等), 在firefox下, 输入中文, 会没有反应(与中文输入法有很大关系). 发现Google的实现是比较另类的, 不用监听键盘键入事件, 不过也不是支持所有的输入法(算是比较完美的了).



一个词只用来表达一种情况,又不是武侠小说,一会就出现万年金蟾一会就出现天山雪莲.

Real-Time,这么专有的名词有什么好狡辩di.
51 楼 xiaoyu 2007-05-29  
每个实时系统是有一定的响应范围的, 楼主也没有说错什么.

关于type-ahead(输入提示), 不知道大家有没有做过测试, 大部中国的网站实现(例如新浪的股票查询等), 在firefox下, 输入中文, 会没有反应(与中文输入法有很大关系). 发现Google的实现是比较另类的, 不用监听键盘键入事件, 不过也不是支持所有的输入法(算是比较完美的了).
50 楼 抛出异常的爱 2007-05-29  
又没讨论his,
只是说说企业领域。。。。

PS:我也不看好Ruby的企业扩展。
49 楼 yananay 2007-05-29  
讨论的没什么意思,因为讨论的人里面,大部分都没做过HIS。。。
48 楼 ray_linn 2007-05-19  
clamp 写道
ray_linn 写道


任何依靠人工输入的数据,都有一定的hit rate,因为人自身的记忆能力就是有限的,这是我的设计的依据。从新回到药品吧,一个科一天开的药品和检查,一定是某个大集合的小子集,所以一定能设计出一种类似cache的模式来提高响应速度。

你说的是最坏的情况是影响大,但发生率低的。


对于某一些特定岗位的工作人员,会面临从数万乃至数十万的列表中快速输入某个值的要求。
虽然可以通过树型展开,但是速度就达不到要求。

所以比较常见的设计做法就是用户输入前几个数字或字母,在下拉列表中即时刷新可选择项,其实和google目前的搜索效果差不多。

但需要注意的是google返回的结果列表只有5个,因为它不需要把所有满足条件的结果都列出来.

但是在企业应用中,应当把所有的结果都列出来,这样下拉列表中的值都有数百乃至上千项,而且要让用户感觉不到延迟.





偶只能说具体事情具体分析, 这个当然有. 业务就是技术,技术就是业务,业务不熟,就常常过度设计.

其实就是ajax,内网里才有多少延迟..10ms吧
47 楼 抛出异常的爱 2007-05-19  
clamp 写道
ray_linn 写道


任何依靠人工输入的数据,都有一定的hit rate,因为人自身的记忆能力就是有限的,这是我的设计的依据。从新回到药品吧,一个科一天开的药品和检查,一定是某个大集合的小子集,所以一定能设计出一种类似cache的模式来提高响应速度。

你说的是最坏的情况是影响大,但发生率低的。


对于某一些特定岗位的工作人员,会面临从数万乃至数十万的列表中快速输入某个值的要求。
虽然可以通过树型展开,但是速度就达不到要求。

所以比较常见的设计做法就是用户输入前几个数字或字母,在下拉列表中即时刷新可选择项,其实和google目前的搜索效果差不多。

但需要注意的是google返回的结果列表只有5个,因为它不需要把所有满足条件的结果都列出来.

但是在企业应用中,应当把所有的结果都列出来,这样下拉列表中的值都有数百乃至上千项,而且要让用户感觉不到延迟.



只有胖客户端才能达到数万-数十万的列表需求。。。
B/S又不是神。。。
有个一百左右cookies就受不了。。
46 楼 clamp 2007-05-19  
ray_linn 写道


任何依靠人工输入的数据,都有一定的hit rate,因为人自身的记忆能力就是有限的,这是我的设计的依据。从新回到药品吧,一个科一天开的药品和检查,一定是某个大集合的小子集,所以一定能设计出一种类似cache的模式来提高响应速度。

你说的是最坏的情况是影响大,但发生率低的。


对于某一些特定岗位的工作人员,会面临从数万乃至数十万的列表中快速输入某个值的要求。
虽然可以通过树型展开,但是速度就达不到要求。

所以比较常见的设计做法就是用户输入前几个数字或字母,在下拉列表中即时刷新可选择项,其实和google目前的搜索效果差不多。

但需要注意的是google返回的结果列表只有5个,因为它不需要把所有满足条件的结果都列出来.

但是在企业应用中,应当把所有的结果都列出来,这样下拉列表中的值都有数百乃至上千项,而且要让用户感觉不到延迟.



45 楼 shaucle 2007-05-19  
楼上的都是king of night?
44 楼 drinkjava 2007-05-19  
企业应用访问量不大、对界面美观没有什么要求,不限于浏览器访问,用PB/VB/DELPHI开发是唯一的选择。但如果反过来,访问量巨大,只能用浏览器访问,你再用PB试试?访问量可以有办法,但"限于浏览器"这一条是谁也躲不过去的。WEB应用和企业应用解决的是不同的问题,根本没有可比性。
43 楼 yfmine 2007-05-19  
抛出异常的爱 写道
数量太大的话。。。。
一个cookie的树你认为怎么样?

PS:变态需求什么时候都有,大多数作不出来。。。但我的任务就是用变态方式来解决变态需求

能不能具体谈谈...我猜想是不是这样的:
www.mycompany.com
path = /node0
path = /node0_node1
path = /node0_node1_node2

cookie值按一定优先级排序存储到不同的 nodexxx 里,找某样东西的时候,就直接在内存中查找节点名字,再去取得相应名字所对应的cookie里的数据?
42 楼 xiang 2007-05-19  
LZ好好去看看PB11吧
开发BS软件,那速度也算得上是天下第一了!!!!!

可惜PB11没有使用AJAX技术,否则要一统江湖了
41 楼 ray_linn 2007-05-18  
dengyin2000 写道
ray_linn 写道
dengyin2000 写道

把数据现load到client端,也就是javascript中。 如果数量太大的话,该怎样处理。 也可以先load到server中。 然后通过ajax取数据。 但是这样的话实时性就差点


数据量再大也是可以解决的,以医院为例子,仓库里的药也不过就是数万种,常开的处方也就数千种,常用药呢,数量则更少。

那么javascript加载常用药,ajax取不常用药。


我增对的当然不是才几千条这样的数量。。  当然  如果数据上万 几十完的话swing也是有同样的问题。 如果数据量这么大, 肯定还是要每次发送sql去查找数据库了。 实时性肯定降低。 但是swing少了数据传输的过程。可能实效性可能会好点


任何依靠人工输入的数据,都有一定的hit rate,因为人自身的记忆能力就是有限的,这是我的设计的依据。从新回到药品吧,一个科一天开的药品和检查,一定是某个大集合的小子集,所以一定能设计出一种类似cache的模式来提高响应速度。

你说的是最坏的情况是影响大,但发生率低的。
40 楼 ray_linn 2007-05-18  
lgx522 写道
ray_linn 写道

数据量再大也是可以解决的,以医院为例子,仓库里的药也不过就是数万种,常开的处方也就数千种,常用药呢,数量则更少。


其实HIS系统,药相对少得多,诊疗检查项目才够多。原先PB做的HIS,是把拼音字头映射的好多个txt存在本地,每次启程序的时候检测更新并加载进内存。拼音字头作输入、名称作显示、编码为条件,到数据库里查规格、价格、库存等信息,Client根据根据输入的项目、数量计算种类和价格,格式化后打印。
原先用C/S实现还是比较容易的,不知Ajax是否可以很好地实现。


这个也简单,签名的applet和activex也可以做到
39 楼 dengyin2000 2007-05-18  
ray_linn 写道
dengyin2000 写道

把数据现load到client端,也就是javascript中。 如果数量太大的话,该怎样处理。 也可以先load到server中。 然后通过ajax取数据。 但是这样的话实时性就差点


数据量再大也是可以解决的,以医院为例子,仓库里的药也不过就是数万种,常开的处方也就数千种,常用药呢,数量则更少。

那么javascript加载常用药,ajax取不常用药。


我增对的当然不是才几千条这样的数量。。  当然  如果数据上万 几十完的话swing也是有同样的问题。 如果数据量这么大, 肯定还是要每次发送sql去查找数据库了。 实时性肯定降低。 但是swing少了数据传输的过程。可能实效性可能会好点
38 楼 ozzzzzz 2007-05-18  
to potian
主要是需求不匹配的问题,比如国内排班就不是那么复杂,药品管理也和国外很不同,系统管理的能力同国外也很有差距。
有时间如果je做HIS的人够多,可以专门开一个贴讨论一下。
37 楼 lgx522 2007-05-18  
再说点题外的,前些日子到www.open-open.com下了个叫FreeCol的Java仿《文明》游戏,“及时响应性”还真不错。颠覆了笔者过去对Java“慢”的成见。
说实在的,Java这一口,值得研究的实在太多了。本人一直是诚惶诚恐,总觉着自己所知太少,还望诸位高人多多指点。

相关推荐

    神经网络ror resenet模型

    这两个数据集的难度相对较大,因为类别的数量多,图像尺寸小,这使得它们成为评估深度学习模型在图像识别上的有效性的重要基准。 **ResNet和Ror模型在CIFAR数据集上的表现** 在CIFAR-10上达到89%的准确率,以及在...

    RoR性能优化经验谈

    在本文中,我们将探讨一些RoR性能优化的关键方面,主要基于JavaEye网站在使用RoR过程中积累的实际经验。 首先,RoR性能优化涉及到多个层面,包括应用程序的部署、服务器配置以及代码优化。在部署方面,操作系统的...

    ror

    NULL 博文链接:https://xuxiangpan888.iteye.com/blog/266696

    初探ROR

    Ruby on Rails(简称ROR)是一个基于Ruby编程语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在促进开发过程的简洁性和效率。Ruby on Rails的核心理念是“Don't Repeat Yourself”(DRY,...

    ror实例

    "ror实例"可能指的是在学习或实践中,通过创建一个具体的Rails应用程序来理解和掌握RoR的工作原理和最佳实践。 在Ruby on Rails中,重要知识点包括: 1. **Gemfile与Gemfile.lock**:项目中的Gemfile用于指定项目...

    ror中文资料

    在提供的压缩包文件中,我们可以看到"Ruby语言中文教程",这暗示了资源可能包含了关于Ruby语言的基础知识和进阶内容,对于学习RoR至关重要。Ruby是RoR的基础,理解其语法和特性对于掌握RoR框架极其关键。 **Ruby...

    ROR安装必备所有架包

    在Ruby on Rails(ROR)开发环境中,安装和配置正确的依赖包是至关重要的。这个压缩包包含了一系列用于ROR框架的基础组件,但不包括Ruby本身。让我们深入了解一下这些包的作用和重要性。 首先,`actionpack`是Rails...

    RoR选题方向—源代码

    在这个选题方向中,我们主要探讨的是与RoR相关的源代码分析和学习。源代码是理解任何编程语言或框架工作原理的关键,对于RoR来说也不例外。 在深入源代码之前,我们需要了解RoR的一些核心概念。如ActiveRecord,它...

    RoRBlog 基于RoR的博客系统

    基于RoR的博客系统,代码风格简单清晰,前后太完善,适合初学者。

    Windows 上搭建 ROR环境

    ### Windows上搭建Ruby on Rails(ROR)环境详解 #### 一、引言 随着Web开发技术的不断发展,Ruby on Rails(简称Rails或ROR)作为一种高效、简洁且优雅的Web开发框架,受到了广大开发者的青睐。然而,在Windows...

    ROR 文件的上传与下载

    为了正确地处理二进制文件,必须在表单中设置`enctype="multipart/form-data"`属性,这是通过在Rails的`start_form_tag`辅助方法中设置`multipart => true`选项来实现的。 ```erb ({:action=>'create'}, {"name"=>...

    freemis 基于ror框架的mis

    1. **灵活性**:作为基于RoR的系统,FreeMIS具有高度可扩展性和模块化设计,可以根据不同业务需求进行定制和调整。 2. **快速开发**:利用RoR的生产力优势,FreeMIS的开发周期相对较短,能够快速实现功能迭代。 3. *...

    RoR 培训课程PPT

    ### RoR培训课程PPT知识点概述 #### 一、课程概览与背景介绍 ...RoR以其简洁优雅的语法和强大的生态系统,在Web开发领域占有举足轻重的地位。希望每位学员都能从中受益匪浅,成为优秀的Ruby on Rails开发者。

    机遇ROR 的图书管理系统

    《机遇ROR的图书管理系统》是一份以Ruby on Rails(简称ROR)技术为核心,旨在构建高效、便捷的图书管理解决方案的学习资料。Ruby on Rails,是基于Ruby编程语言的开源Web应用框架,它遵循MVC(Model-View-...

    ROR环境配置

    在IT行业中,Ruby on Rails(简称ROR)是一款基于Ruby语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在简化Web应用开发过程,提高开发效率。本文将深入探讨如何配置ROR开发环境,以及...

    ror留言板程序

    在这个"ror留言板程序"中,我们可以看到以下几个关键部分: 1. **Rakefile**:Rake是Ruby中的一个构建工具,类似于Java的Ant或Python的setup.py。Rakefile是Rake的工作配置文件,用于定义一系列的任务,如数据库...

    ROR绿色最新环境(2013/3/10)

    ROR环境 Ruby version 1.9.3 (java) RubyGems version 1.8.24 Rack version 1.4 Rails version 3.2.12 JavaScript Runtime therubyrhino (Rhino) Active Record version 3.2.12 Action Pack version 3.2.12 ...

    excel lib ror ruby

    标题 "excel lib ror ruby" 暗示我们要讨论的是在Ruby on Rails(简称RoR)框架中使用库来处理Excel文件的相关知识。RoR是一个流行的开源Web开发框架,而Ruby语言本身支持与Microsoft Excel文件交互,这在数据导入...

    javarebel 用JAVA和ROR一样方便测试

    破解版本的JAR包,放到本地磁盘,ECLIPUS直接用,到JVM设置直接加 -noverify -javaagent:D:\javarebel.jar

Global site tag (gtag.js) - Google Analytics