我有一个正在设计的系统,我们使用4台内部制造的专用PC,这些PC具有16个串行端口(db-9 RS232),我需要同时与64台设备(4x 16)通信并管理通信。这是我设计的模型,我正在征求反馈
**服务器:**在一个系统上运行并协调客户端应用程序。维护主状态机并确保客户端与该状态机同步。(例如,所有单元执行任务A,当最后一个单元报告完成时,所有单元执行任务B)。
通过.net remoting?WCF?进行通信
客户端:可以与服务器在同一系统上运行。管理所有IO。管理实际任务执行的业务逻辑(坏主意?)通过Remoting/WCF通过通知事件(例如INotifyPropertyChanged)报告状态。
我从来没有使用过.net remoting或任何类型的分布式应用程序,所以我在这方面完全是个新手,但我学得很快。在这一点上,文献和社区建议将非常感谢。
2条答案
按热度按时间qyswt5oh1#
如果我是你,我会仔细阅读分布式系统设计。一般来说,在一个系统中有一个单点故障是一个坏主意(一个特殊的PC机是“服务器”,所有其他的PC机都需要与它通信)。
但在你的情况下,这很可能是无关紧要的。
阅读分布式系统设计。
我想说,你选择的API并不是最重要的,首先你需要规划架构,以及在各种场景下你想要得到的行为(比如一台PC机擅离职守)。
阅读你的请求后,我很快就想到了分布式发布/订阅系统。如何实现发布/订阅由你决定。你可以使用MSMQ,或者WCF和WS-Eventing,或者......
oewdyzsn2#
一定要查看并发和协调运行时(CCR):
http://msdn.microsoft.com/en-us/library/bb648752.aspx
编辑:
下载链接:
http://msdn.microsoft.com/en-us/robotics/aa731520.aspx