2012-09-07 21 views
1

我被賦予了一個系統的架構和設計的艱鉅任務。我非常適合編程,而不是設計。所以,我決定在這裏請教一些關於如何/從哪裏開始我的任務的建議。我曾試圖把所有正確的問題,(我認爲)在下面的圖片:如何評估我的應用程序設計?

Click above link to view bigger image

Actual Image.

所以,我可以回答這些中的一個問題:「爲什麼?XML-RPC」因爲它是健壯的,精心設計的,符合行業標準的通信方式(我在IEEE論文中讀到它)。

請回答圖像中的任何問題。

P.S.我同意,要求簡單解決所有這些(圖片中的最後一個問題)是非常懶惰的。但是,這不是應該做什麼?不解決曾經解決過的任何問題?

編輯: 該應用程序必須基本上爲遠程用戶提供一種與機器交互的方式。一種方法是,應用程序應該爲機器交互API提供網絡功能。

+1

對不起,這個問題太含糊。也許再試一個更具體的問題。你問「這是最好的設計?」,但我不知道你設計的這個程序應該做什麼。 – AndrewR

+0

應用程序應該基本上爲遠程用戶提供一種與機器交互的方式。一種稱呼它的方式是,應用程序應該提供網絡可調用的機器交互API。我希望我明確自己。 – Prasanth

+0

我並不是真正的設計專家,但我可以看到你在這裏展示的是非常基本的。也許你可以嘗試添加更多細節,例如機器做什麼?機器運行速度?等等...... – mbm

回答

1

感謝您的澄清。

我想你需要做更多的研究,確切地說你想在服務器(機器計算機)和客戶端之間進行通信。一種選擇可能是使用MSMQ(消息隊列)的雙向通信。微軟在這裏有一個關於它的網頁http://msdn.microsoft.com/en-us/library/ms752264.aspx

下面是我看到它可能的工作。每個部分都是解決方案中的單獨項目。

機電腦(服務器)項目(EXE,控制檯應用程序?)

  • 蘊含的ServiceHost接受來自客戶端計算機的API調用。
  • 當新的客戶端計算機連接時,添加到要更新的客戶端列表。
  • 當客戶端斷開連接時(或者在發送更新通信之前檢查客戶端是否啓動),從列表中刪除客戶端以進行更新。
  • 接受API調用,回撥所有客戶端計算機以提供進程中狀態,並在「計算機」上運行請求。
  • 當「機器」完成時,打電話給客戶端計算機以提供完整的狀態。

客戶端計算機(客戶端)項目(EXE,GUI應用程序)

  • 包含接受來自服務器狀態更新一ServiceHost的。
  • 開始時,向新客戶端聯機的服務器發送通知(API)。
  • 退出時,向客戶端正在脫機的服務器發送通知(API)。
  • 提供一個窗口,顯示狀態以及可用的任何其他讀數或信息,這些讀數或信息將從服務器提供。
  • 提供選項,允許用戶將命令發送到服務器(API),這將在本機上運行

合同項目

  • 包含所有的類對象,這將是從客戶端和服務器來回傳遞。
  • 客戶端和服務器項目都引用此項目。兩者都需要能夠使用這些類來發送或接收通信。
+0

非常感謝您的回答。我需要一段時間才能完全掌握你所說的話。 – Prasanth

+0

正如jgauffin所建議的,我選擇了使用WCF,但它也可以使用MSMQ的知識。只需將信息放在這裏,以便有人可能會發現它有用:** WCF是我所需要的。** – Prasanth

相關問題