2010-04-23 55 views
1

我的管理層最近接觸到了一個有趣的問題 - 我很確定我在告訴我的老闆正確的信息,但我真的想確保我告訴他們正確的東西。如何通過網絡在兩個應用程序之間保持持久的網絡連接?

我被要求開發具有此功能的一些軟件:

  • 在一個位置的應用程序正在不斷處理實時數據每秒鐘且僅當底層數據以任何方式發生了變化,生成數據。
  • 在該數據已經改變結果發送到另一個箱子在網絡上
  • 時保持兩臺機器之間的持續連接,改變遙控盒,如果由於某種原因,網絡連接下樓

從我的理解中,我想我需要做一些關於做某種TCP/IP套接字級別的東西的閱讀。這樣,如果連接斷開,遠程位置將意識到它收到的數據可能是陳舊的。

但是管理層似乎非常確信這可以使用SOAP來完成。我認爲SOAP或多或少是客戶從服務器啓動過程並通過HTTP協議獲得一些結果的一種方式。假設我錯了嗎?我無法找到關於SOAP如何能夠解決這樣的問題的很多信息。

我覺得我辦公室周圍的很多人都在使用SOAP作爲流行語,並且對SOAP的實際內容產生了一些混淆 - 並且能夠做到這一點。

任何想法如何完成這項任務,將不勝感激!

回答

3

我認爲SOAP是錯誤的工具。 SOAP是交換結構化數據的規範。對於你的問題,最簡單的事情就是編寫一個程序來傳輸數據並確定另一端是否存在。套接字是一個好方法。網絡上有很多套接字編程教程。選擇你的語言,並問谷歌先生。寫幾個演示程序來教你自己如何工作。詢問你是否有更具體的問題。

對於這個問題,你需要一個發送者和一個接收者。發送者在獲取數據時發送數據,接收者等待數據並在數據到達時將其傳遞。先做好工作。接下來,添加心跳;定期發送一條說明「我還活着」的消息。接下來的工作。你需要確定你想要的確切行爲 - 如果雙方都會向另一端發送心跳,你願意等待心跳的最長時間,以及心跳應該停止的時間。網絡連接可能會斷開,另一端可能會崩潰,另一端可能會掛起,並且可能還有其他條件需要考慮(例如,如果實時數據是無稽之談?)。找出如何處理每個條件,並編寫錯誤處理代碼。測試一下,並與文檔一起提供。

2

SOAP當然不會告訴你數據源何時關閉,儘管您可以使用「心跳」來添加它。

也許你是對的,他們只是重複一個流行詞,並且實際上並不知道SOAP是什麼,或者確實沒有什麼真正的理由,或者爲什麼它應該在這裏使用。

相關問題