4

我的公司是一家大型电信公司的软件解决方案提供商。该环境目前基于 IBM WebSphere,前端 IBM Portal 服务器与提供 EJB 服务的后端 WebSphere Application Server 集群通信。有些 portlet 使用我们自己开发的 MVC 模式,有些是用 JSF 编写的。

最近我们做了一个概念验证的富/厚客户端应用程序,它直接与后端服务器上的 EJB 通信。它是使用 NetBeans 平台编写的,并使用 WebSphere 应用程序客户端库来建立与 EJB 的通信。

真正痛苦的是让客户端使用安全的 JAAS/SSL 通信。但是,在解决了这个问题之后,我们发现富客户端比我们已经习惯的基于 Web 的门户客户端应用程序具有许多优势:

  • 巨大的性能优势(CORBA 与 HTTP,去掉了 Portal Server 中间人)
  • 由于使用了 NetBeans 的可视化设计器和 Swing 通常稳健的体系结构,开发得以简化和快速
  • 无需将客户端应用程序部署到测试服务器,从而缩短了调试周期
  • 没有像基于 Web 的开发那样混杂的技术(Struts、JSF、JQuery、HTML、JSTL 等)

在忍受了基于 Web 的开发(甚至是 JSF)的痛苦一段时间后,我得出了以下结论:富客户端并不适合所有情况,但是当您在内部开发基于 Intranet 的解决方案,那么如果不考虑 NetBeans 平台或 Eclipse RCP,您会发疯的。

对富客户端与 Web 客户端有何评论/经验?

4

2 回答 2

3

一个好处是可以在客户端完成大量计算/验证,这允许每个客户端分担整个应用程序的处理负载。

胖客户端的另一个好处是您可以在客户端中保存您的状态。这使您的服务器无状态,它们可以更好地扩展,并使容错变得轻而易举。

在我们的例子中,我们的应用程序中有硬件接口,扫描仪位于工作站的串行端口上,我们还为打印机实现了一个 JNI 层,以便我们可以从我们的应用程序中控制打印作业。(发票打印)

对于新软件的启动和分发,我们运行了一个更新 jar,它会根据服务器上的部署日期检查本地系统上的文件,以查看本地系统是否是最新的。如果系统已过期,我们会下载所需的 jar 文件,然后启动应用程序。这避免了用户需要访问网页。

我还推荐这本书用于服务器端模式,因为它们与新的 Java EE 内容相关。

于 2010-04-29T13:36:25.833 回答
1

只要您使用 Java Web Start 进行部署,我不一定不同意。IT 中的 Web 应用程序的重点是避免在不再支持版本 X 时尝试将每个人更新到版本 Y 的远程部署混乱。

你可以通过 webapps 免费获得它。

于 2010-04-29T13:36:04.427 回答