如何评估我的应用程序设计?

时间:2012-09-07 06:54:28

标签: c# architecture xml-rpc

我接受了一项体系结构和设计的艰巨任务。我对编程很满意,而不是设计。所以,我决定在这里就如何/在哪里开始我的任务提出一些建议。我试图在下面的图片中提出所有正确的问题(我认为):

Click above link to view bigger image

Actual Image.

所以,我可以回答其中的一个问题:“为什么选择XML-RPC?”因为,它是强大的,精心设计的,行业标准的通信方式(我在IEEE论文中阅读)。

请回答图片中的任何问题。

P.S。我同意,要求所有这些(图像中的最后一个问题)的简单解决方案是非常懒惰的。但这不是应该做的吗?什么都解决不了解?

编辑: 该应用程序必须基本上为远程用户提供与计算机交互的方式。一种方法是,app应该为机器交互api提供网络功能。

1 个答案:

答案 0 :(得分:1)

感谢您的澄清。

我认为您需要对服务器(计算机计算机)与客户端之间的确切通信方式进行更多研究。一种选择可能是使用MSMQ(消息队列)的双向通信。 Microsoft在此处有一个关于它的页面http://msdn.microsoft.com/en-us/library/ms752264.aspx

以下是我认为可能有效的方法。每个部分都是解决方案中的一个单独项目。

计算机(服务器)项目(exe,控制台应用程序?)

  • 包含ServiceHost以接受来自客户端计算机的API调用。
  • 当新客户端计算机连接时,添加到要更新的客户端列表。
  • 从列表中删除客户端,以便在断开连接时进行更新(或在发送更新通信之前检查客户端是否已启动)。
  • 接受API调用,回拨给所有客户端计算机以提供进程中状态,并在“计算机”上运行请求。
  • 当“机器”完成时,调用客户端计算机以提供完整状态。

客户端计算机(客户端)项目(exe,GUI应用程序)

  • 包含一个ServiceHost,它接受来自服务器的状态更新。
  • 开始时,向服务器发送新客户端在线的通知(API)。
  • 在退出时,向服务器发送通知(API),客户端将脱机。
  • 提供一个窗口,显示状态以及您可用的任何其他读数或信息,这些信息将从服务器提供。
  • 提供选项以允许用户将命令发送到将在计算机上运行的服务器(API)

合同项目

  • 包含将从客户端和服务器来回传递的所有类对象。
  • 客户端和服务器项目都引用此项目。两者都需要能够使用这些类来发送或接收通信。