基于WEB的应用程序与桌面集成 - 技术?

时间:2009-11-09 14:42:00

标签: java gwt desktop rtp

这是关于产品开发的技术决策的一般性问题。 我的目标是开发具有音频和视频通信的基于Web的远程支持(桌面共享应用程序)。

我理想的解决方案是将其开发为网络产品,这意味着客户端始终在浏览器中运行。客户端技术将是JavaScript(使用Google GWT)以及桌面捕获,桌面呈现,音频和视频,我想使用Java applets

服务器端使用Java Servlet技术运行数据库后端(Hibernate和基于SQL的数据源)。对于数据流,我的计划是通过UDP使用RTP / RTSP传输(对于桌面数据,内部协议将是VNC(RFB),但传输将是RTP本身)。对于音频和视频,RTP用于传输。

我的基本版本(原型)将使用中继服务器,这意味着客户端始终连接到服务器(登录,身份验证,会话控制),服务器始终在对等服务器之间中继数据。

我的问题是 - 我的技术决策是否正确?我的意思是,由于多平台支持,我决定使用纯Java。现在我们有Silverlight具有更高级的桌面支持,但它仅限于一个平台(Windows)。

我也担心Java支持音频/视频技术。我见过JMF(Java Media Foundation)似乎支持RTP / RTSP,音频和视频捕获/显示,但这个包看起来非常过时。你觉得怎么样?

对于实际的屏幕截图,我将从AWT Robot类开始。我知道对于高性能桌面捕获,需要更多低级技术,如API挂钩或镜像驱动程序,但我的原型旨在为屏幕捕获提供1 FPS,所以我相信Java Robot会成功。

3 个答案:

答案 0 :(得分:1)

查看Adobe AIR和JavaFX。

答案 1 :(得分:1)

Java applet可以做到,但现在它们有点遗产。在Java术语中,您现在也可以选择Java Web Start(更好的Google关键字是JNLP)和JavaFX。如果你不回避学习一门新语言并希望拥有真正的RIA,那就选择JavaFX吧。否则,Java Web Start A.K.A. JNLP是个不错的选择。使用Java,您可以像在客户端应用程序中一样完成所有操作,只要它们都在安全限制的范围内。

以下是一些使用教程:JavaFX tutorialWeb Start tutorial

答案 2 :(得分:0)

您可能需要检查 Glue42(桌面集成平台)和 Glue42 Core(开源网络应用集成平台)。 Github 项目可用 here。这两种产品协同工作,使用 FDC3 标准集成桌面和 Web 应用程序。