我正在设计一个系统,我们使用 4 台我们内部制造的专用 PC,它有 16 个串行端口 (db-9 RS232) 我需要同时与 64 个单元 (4x16) 通信并管理通信。 这是我想出的模型,我正在征求反馈
服务器: 服务器在一个系统上运行并协调客户端应用程序。 维护主状态机并确保客户端与该状态机保持同步。 (例如,所有单元执行任务 A,当最后一个单元报告完成时,所有单元执行任务 B)。
通过 .net 远程处理进行通信? WCF?
客户: 客户端可以与服务器运行在同一系统上。 管理所有 IO。管理实际任务执行的业务逻辑 (坏主意?) 通过远程处理/WCF 报告状态 通过通知事件(例如 INotifyPropertyChanged)。
我从未使用过 .net 远程处理或任何类型的分布式应用程序,所以我在这方面完全是新手,但我学得很快。 此时,我们将非常感谢文献和社区建议。
如果我是你,我会阅读分布式系统设计。 一般来说,系统中出现单点故障是一个坏主意(一台特殊的 PC 是“服务器”,所有其他 PC 都需要与其通信。)
但就你而言,很可能这并不重要。
阅读分布式系统设计。
我想说,你选择的 API 并不是最重要的。 首先,您需要规划架构以及您想要在各种场景中获得的行为(例如其中一台 PC 擅离职守。)。
只是阅读您的要求后的快速反应,我会研究分布式发布/订阅系统。 如何实现发布/订阅取决于您。 您可以使用 MSMQ,或 WCF 和 WS-Eventing,或 ....