获取外部数据到web应用程序



我是一名经验丰富的应用程序开发人员,现在必须开发一个我没有很多经验的web应用程序。

我正在做一个有许多分布式服务器组件的项目。它目前有一个客户端应用程序监视这些组件,查看警报和日志等。每台服务器的状态都是通过tcp/ip上的专有协议传递的。

当前基于UI的应用程序有一个线程,该线程持续监视套接字连接的消息,一旦接收到消息,将所有内容的当前状态存储在内存中,然后将其显示给用户。

我的问题是如何在web应用程序环境中实现类似的东西。我的第一个想法是在服务器启动时创建一个类似的通信线程,然后当用户请求数据时,响应从内存数据中建立起来,但阅读关于web应用程序启动自己的线程是不好的做法。

我读过一些关于使用Quartz或TimerTask在web应用程序中运行周期性调度任务的文章,但这个任务更连续。这条路还能走吗?

我正在开发的web应用程序在Java使用JSF运行Tomcat在Linux上。对了,应用程序的并发用户数量很低。(最多25个,但更可能是2或3个)

方法1

使用石英是好的。建议不要使用TimerTask。

方法2

我假设web应用程序有某种数据库。由于您需要在用户请求时显示状态,而不是实时显示,您可以做的是编写一个独立的守护程序应用程序(不是web应用程序),它读取服务器状态并更新对web应用程序可见的表。当用户发出请求时,可以引用该表来产生输出。

为什么要让服务器关注这个问题?在您的客户端(浏览器)中,您可以轮询当前状态并据此调整显示。这样做可以消除很多复杂性。

至于你的客户端将如何更新,这取决于你的应用程序。如果你只允许现代浏览器,你可以看看HTML5 WebSockets。其他选项包括使用AJAX对屏幕进行部分更新或对整个屏幕进行刷新。

相关内容

  • 没有找到相关文章

最新更新