4

我想开发一个应用程序,服务器将大量数据推送到客户端。(每 20 毫秒 20 kb)500kbps。所有数据都是双精度/浮点值。

我试图回答这个问题,如果桌面应用程序(Java Swing 应用程序)有一些固有的东西,与通过 http 推送数据的 Web 应用程序相比,这将使它成为这个用例的更好选择。

是否有关于 Java swing 应用程序以及如何从服务器到客户端的数据传输,这使得它们与 Web 应用程序(tomcat 作为应用程序服务器.. JS 在客户端)相比更快。

如果我说 Web 服务器和应用程序在同一个本地网络上,那么答案会如何变化。

4

2 回答 2

2

我的投票是桌面,但我有偏见(当你唯一的工具是锤子时......)

我的第一个想法是线程和自定义网络。您可以根据需要获得推送和拉取协议的额外好处(是的,您可以在 Web 环境中获得它,但 Java 是为此而设计的,AJAX 已经满足了这种需求)

我还会推出一个多样化和可定制的 UI 工具包,但有人可能会争辩说您可以使用 HTML 来实现这一点,但我个人发现 Swing 工具包运行起来更快且更易于维护,恕我直言。

缺点是需要在每台客户端机器上安装应用程序并处理更新

这是我的一般看法,希望对你有帮助

另一个问题是,应用程序需要做什么?

于 2012-10-07T06:26:05.427 回答
1

UI 不太可能同时显示 1000 米。用户很可能一次只查看少量仪表。UI 只需要针对屏幕上显示的仪表进行更新。这应该会大大减少负载。假设网络和缓存数据库组件对于 Web 和桌面应用程序来说大致相同,那么真正的区别在于图表/图形的渲染速度,以及倾向于使用它的频率或多少人。

MadProgrammer 的原型设计建议是有道理的。从原型中获得的测试数据将回答性能问题。

基于网络将更有用/更有价值,因为它可以在任何台式机、平板电脑或智能手机上使用。我假设希望随时随地将数据提供给尽可能多的用户。另外,我认为人眼无法检测到 20 毫秒的更新。你可能会延长它,用户甚至不会注意到它。电影大约每秒 25 帧,即 40 毫秒/帧。

您预计有多少并发用户?我认为这不会影响解决方案,因为两者都可以扩展。

于 2012-10-07T10:47:41.550 回答