我正在開發一個通過http api與服務器通信的桌面應用程序。如何爲設計目的可視化通信協議?
我意識到我在開發過程的開始時犯了一個錯誤,現在我必須修改這些應用程序中的整個通信代碼(何時發送什麼和回覆什麼等)。
有沒有一種方法,我可以在視覺上(如思維導圖)計劃兩個軟件之間的所有通信?
我正在開發一個通過http api與服務器通信的桌面應用程序。如何爲設計目的可視化通信協議?
我意識到我在開發過程的開始時犯了一個錯誤,現在我必須修改這些應用程序中的整個通信代碼(何時發送什麼和回覆什麼等)。
有沒有一種方法,我可以在視覺上(如思維導圖)計劃兩個軟件之間的所有通信?
可視化通信協議的一種便捷方式是使用UML。具體而言,sequence diagrams類似:
This site具有公共通信協議相當多的序列圖。
其他,常常是有用的,圖是communication diagrams:
有用於創建這樣的圖的各種UML modeling tools。
我不明白你的應用程序需要做什麼,但在設計幾款移動和桌面應用程序後,我對這些問題有一些經驗。
一般有拖的主要特點:
您的系統可以實現這些功能的任何一方,但對方必須支持這一點。 例如從本地應用程序推送 - >服務器只能在應用程序運行時工作 - 前臺/後臺和它可以訪問一些本地資源:互聯網連接,CPU,磁盤,RAM。我們需要獲得互聯網連接才能生成http呼叫並傳遞一些數據。所以你可以設計這個應用程序在運行時運行或將它們添加到OS Scheduler中。 OS調度程序可以在Mac OS,Linux,Windows上找到,並且您可以訪問此功能並使用它來定義即使您的應用程序未被啓動也能運行的任務。
萬一您的本地應用程序可以運行沒有互聯網連接,例如在沒有3G網絡或Wifi的區域工作的手機遊戲。您可以設計您的應用程序以將數據本地存儲在磁盤/ Ram上,並在您連接到互聯網後將其發送到服務器。
另一個問題是思考與服務器的連接,你可能會有一些停機時間。所以你的本地應用程序應該總是得到確認,數據在服務器上發送和接收,併發生所有必要的操作:日誌,數據庫保存等。在獲得確認後,本地應用程序可以刪除消息。
拉動功能很簡單,您的本地應用程序在午餐或計劃任務上提取數據。除非你知道如何構建實時流套接字代碼,現在可用並適用於流星框架的例子,否則服務器的另一種方式是從本地提取它的技巧。但總的來說,大部分時間都不需要。
我希望這會幫助你,併產生一些幫助。
@Malt:謝謝你澄清我的標題。 – Sevron