找回密码
 FreeOZ用户注册
查看: 2361|回复: 22
打印 上一主题 下一主题

求教高人,Java Swing是否可以应用于高可靠性要求的工业领域?

[复制链接]
跳转到指定楼层
1#
发表于 9-7-2010 02:50:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?FreeOZ用户注册

x
各位大侠好,我现在闲在家里,想做几个控制软件&平台的demo,准备去澳洲找工作的时候秀一下,软件的GUI准备用Swing来写。现在有个问题想请教大家,因为考虑到应用于工业现场,软件可靠性会变得非常重要,除了努力剔除bug外,我还想知道,Swing的可靠性是否足够用于工业领域,因为Swing有一个线程安全的问题,随时需要CPU重绘,万一什么时候CPU jam了一下,或者写程序的时候不小心,没有对Swing控件开新线程,又或者一个开启Swing的子程序同时处理其他事情太久,Swing控件来不及重绘,都会导致GUI死掉,而且后面这两种原因很可能查到吐血都查不出来的

不过听说Oracle里面很多的应用都是Java写的,不知道他的界面是Swing写的吗?如果Oracle都用Swing写的,那应该可靠性不是问题了。

OK,请各位大侠指点一下。
回复  

使用道具 举报

2#
 楼主| 发表于 9-7-2010 15:21:45 | 只看该作者
咋没人回呢?

难不成因为俺的RP?
回复  

使用道具 举报

3#
发表于 9-7-2010 15:47:08 | 只看该作者
LZ应该把头像换换,就有人回了~~~比如;半露酥肩的MM
回复  

使用道具 举报

4#
 楼主| 发表于 9-7-2010 16:12:06 | 只看该作者

回复 #3 formatc 的帖子

半露酥肩的MM没有的,全露的有很多
回复  

使用道具 举报

5#
发表于 9-7-2010 16:17:30 | 只看该作者
??
很多wms的界面就是swing做的,某些银行系统也是吧

评分

参与人数 1威望 +20 收起 理由
dark008 + 20 多谢高人指点!!

查看全部评分

回复  

使用道具 举报

6#
 楼主| 发表于 9-7-2010 16:25:02 | 只看该作者

回复 #5 lufumin1832 的帖子

哦,那Swing应该挺靠得住的,其实用Swing做东西还有一个巨大好处,就是可以移植到Cent OS和Solaris上,这两东西可比Microshit的产品稳定太多了
回复  

使用道具 举报

7#
发表于 9-7-2010 21:22:41 | 只看该作者
原帖由 dark008 于 9-7-2010 15:25 发表
哦,那Swing应该挺靠得住的,其实用Swing做东西还有一个巨大好处,就是可以移植到Cent OS和Solaris上,这两东西可比Microshit的产品稳定太多了


Swing在Linux上我碰到过非常特殊的问题,后来发现是Java在Linux上的bug

不需要应用服务器的话,Windows是最好的Java平台
回复  

使用道具 举报

8#
 楼主| 发表于 9-7-2010 22:20:08 | 只看该作者

回复 #7 yuba 的帖子

Windows如果做试验的平台到没什么问题,关键要做工业平台,几年不关机的话,我对Microshit的东西实在没什么信心。
回复  

使用道具 举报

9#
发表于 9-7-2010 22:34:32 | 只看该作者
Why Swing?
why not SWT?
回复  

使用道具 举报

10#
 楼主| 发表于 9-7-2010 22:45:20 | 只看该作者

回复 #9 sliuhao 的帖子

SWT好像也行哦,而且不像Swing这样需要不断重绘界面。

但是关键问题是,我没写过SWT ,哈哈

现在用的IDE都还是Netbeans
回复  

使用道具 举报

11#
发表于 9-7-2010 22:52:10 | 只看该作者

回复 #10 dark008 的帖子

for my understanding, SWT is better than Swing in Java GUI....especial in real time control...
because it is directly native call rather than the layering stuff...

评分

参与人数 1威望 +20 收起 理由
dark008 + 20 谢谢分享!

查看全部评分

回复  

使用道具 举报

12#
 楼主| 发表于 9-7-2010 23:10:28 | 只看该作者

回复 #11 sliuhao 的帖子

好的,接下来试一下SWT,哈哈哈,不过我还要先看书哦,我连Eclipse现在都用得不利索 ,哈哈

OK,多谢高人指点。
回复  

使用道具 举报

13#
发表于 10-7-2010 13:16:39 | 只看该作者
原帖由 dark008 于 9-7-2010 21:20 发表
Windows如果做试验的平台到没什么问题,关键要做工业平台,几年不关机的话,我对Microshit的东西实在没什么信心。


GTK或QT这样原生的Linux GUI 似乎更适合工业应用
回复  

使用道具 举报

14#
发表于 10-7-2010 15:00:04 | 只看该作者
什么是工业应用?

原帖由 yuba 于 10-7-2010 12:16 发表


GTK或QT这样原生的Linux GUI 似乎更适合工业应用
回复  

使用道具 举报

15#
 楼主| 发表于 10-7-2010 15:26:26 | 只看该作者

回复 #14 key 的帖子

连续几年的全开机正常运行
回复  

使用道具 举报

16#
 楼主| 发表于 10-7-2010 15:30:04 | 只看该作者
原帖由 yuba 于 10-7-2010 12:16 发表


GTK或QT这样原生的Linux GUI 似乎更适合工业应用


QT是C++的,我不会,GTK好像是写C的,我不会写Windows下的C也,它的函数库有些什么也不知道(除了printf还有什么吗? )。我只会写硬件上的C。
回复  

使用道具 举报

17#
发表于 11-7-2010 12:08:12 | 只看该作者
连续几年全开机正常运行,需要的是一个稳定的内核和稳固的硬件。
讨论GUI没有太大的意义吧?

试想一下,你是依靠GUI来采集数据吗?如果GUI上出现线程更新问题,数据采集就中止了,
这样的软件架构你敢拿出来工业应用?如果GUI只是一个人机界面,需要时做出合适的显示,
那就没什么了。大不了上面有一个refresh button,就可以解决所有问题。

原帖由 dark008 于 10-7-2010 14:26 发表
连续几年的全开机正常运行

评分

参与人数 1威望 +20 收起 理由
dark008 + 20 谢谢分享!

查看全部评分

回复  

使用道具 举报

18#
 楼主| 发表于 11-7-2010 15:36:48 | 只看该作者

回复 #17 key 的帖子

有道理,果然是高人

我原计划操作系统可能用Linux和Solaris之类的,机器用工控机,这样应该靠得住了。

GUI就与控制处理模块分开写,有问题的话就手动刷新吧。

其实目前只是做个Demo玩玩,现在都闲在家里呢,工作都没有,别谈什么工业应用了

说不定去澳洲找到工作了,要写的控制程序也只是搭建实验平台,死机无所谓,只要最后缓过来能做测试就行。这时候也许就用Labview简简单单弄几个小时就搞定了。
回复  

使用道具 举报

19#
发表于 13-7-2010 13:31:26 | 只看该作者
可以看一下, eclipse RCP.

提供基本工作台功能的核心,包括对可移动以及可叠加的窗口组件(编辑器和视图)、菜单、工具栏、按钮、表格、树形结构等等的支持.

可以省了你很多基础开发的工作, 直接写你的业务就好的。

做为一个平台, 插件功有很大的扩展行
回复  

使用道具 举报

20#
 楼主| 发表于 13-7-2010 15:45:41 | 只看该作者

回复 #19 oea 的帖子

我刚才搜索了一下,好像eclipse RCP可以生成很酷的界面,还有很漂亮的仪表盘。

不过我一般用Jfreechart来做类似的事情的。不知道eclipse RCP会不会更方便一些?
回复  

使用道具 举报

21#
发表于 15-7-2010 20:48:21 | 只看该作者
原帖由 dark008 于 11-7-2010 14:36 发表
有道理,果然是高人

我原计划操作系统可能用Linux和Solaris之类的,机器用工控机,这样应该靠得住了。

GUI就与控制处理模块分开写,有问题的话就手动刷新吧。

其实目前只是做个Demo玩玩,现在都闲在家 ...

Associate LabVIEW Developer Certificate飘过。。。
回复  

使用道具 举报

22#
 楼主| 发表于 16-7-2010 16:29:09 | 只看该作者
原帖由 clarkli 于 15-7-2010 19:48 发表

Associate LabVIEW Developer Certificate飘过。。。


突然想到一个问题,正巧高人路过,请教一下:

我一开始用Labview的时候,就记得在一个什么文档里面,NI有一个重要说明,说的是:Labview不适用于生命支持系统,工业控制系统,航天领域。说白了就是他的可靠性达不到。想问一下,是这样的吗?

我自己就碰到过类似问题,记得有一次写和DAQ仪器的通信程序,逻辑完全没错的程序每次都在串口通信模块出错,但是用过的人都知道的,Labview只会告诉你那个模块错了,至于如何错,怎么解决是不知道的,底层的源代码更不可能看得到。

之后是痛苦的无头绪的Debug半天,在快要吐血之际,上网搜搜看有没有类似的问题和答案吧。

终于在NI的官方论坛,一个Israel的家伙和我碰到类似的问题,在最下角终于看到NI的人出来说话了,说了好多问题的可能成因,最后给出一个possible solution,试过之后还真的好了,即使这个solution有点扯,里面的很多参数设置也是完全凭感觉。

不过这次之后,我对Labview不那么崇拜了,也许在快速构建试验平台上面,目前还无人能敌,但是谈到可靠运行的话,一个基于possible,maybe,I guess,In my experience的软件是很靠不住的。
回复  

使用道具 举报

23#
发表于 4-9-2010 23:10:00 | 只看该作者
LABVIEW的串口模块是有问题,很垃圾。
回复  

使用道具 举报

您需要登录后才可以回帖 登录 | FreeOZ用户注册

本版积分规则

小黑屋|手机版|Archiver|FreeOZ论坛

GMT+11, 2-11-2024 00:30 , Processed in 0.054165 second(s), 40 queries , Gzip On, Redis On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表