2010-04-23 98 views
1

我的管理层最近接触到了一个有趣的问题 - 我很确定我在告诉我的老板正确的信息,但我真的想确保我告诉他们正确的东西。如何通过网络在两个应用程序之间保持持久的网络连接?

我被要求开发具有此功能的一些软件:

  • 在一个位置的应用程序正在不断处理实时数据每秒钟且仅当底层数据以任何方式发生了变化,生成数据。
  • 在该数据已经改变结果发送到另一个箱子在网络上
  • 时保持两台机器之间的持续连接,改变遥控盒,如果由于某种原因,网络连接下楼

从我的理解中,我想我需要做一些关于做某种TCP/IP套接字级别的东西的阅读。这样,如果连接断开,远程位置将意识到它收到的数据可能是陈旧的。

但是管理层似乎非常确信这可以使用SOAP来完成。我认为SOAP或多或少是客户从服务器启动过程并通过HTTP协议获得一些结果的一种方式。假设我错了吗?我无法找到关于SOAP如何能够解决这样的问题的很多信息。

我觉得我办公室周围的很多人都在使用SOAP作为流行语,并且对SOAP的实际内容产生了一些混淆 - 并且能够做到这一点。

任何想法如何完成这项任务,将不胜感激!

回答

3

我认为SOAP是错误的工具。 SOAP是交换结构化数据的规范。对于你的问题,最简单的事情就是编写一个程序来传输数据并确定另一端是否存在。套接字是一个好方法。网络上有很多套接字编程教程。选择你的语言,并问谷歌先生。写几个演示程序来教你自己如何工作。询问你是否有更具体的问题。

对于这个问题,你需要一个发送者和一个接收者。发送者在获取数据时发送数据,接收者等待数据并在数据到达时将其传递。先做好工作。接下来,添加心跳;定期发送一条说明“我还活着”的消息。接下来的工作。你需要确定你想要的确切行为 - 如果双方都会向另一端发送心跳,你愿意等待心跳的最长时间,以及心跳应该停止的时间。网络连接可能会断开,另一端可能会崩溃,另一端可能会挂起,并且可能还有其他条件需要考虑(例如,如果实时数据是无稽之谈?)。找出如何处理每个条件,并编写错误处理代码。测试一下,并与文档一起提供。

2

SOAP当然不会告诉你数据源何时关闭,尽管您可以使用“心跳”来添加它。

也许你是对的,他们只是重复一个流行词,并且实际上并不知道SOAP是什么,或者确实没有什么真正的理由,或者为什么它应该在这里使用。