我是WCF的新手。我正在设计一个基于WCF / WPF的ERP系统,它有以下模块:
a)估算b)规划c)调度d)会计e)库存
我有以下问题:…
我正在设计一个ERP系统......它有以下模块......
我认为考虑你实际建设的内容非常重要。要说你正在建立一个单一的ERP系统是毫无意义的。这是SOA真正有用的地方。
你实际建设的是什么:
我强烈建议您开始将这些单独的服务构建为完全独立的系统。这些服务中的每一项都应具备
使SOA正确的关键是能够在适当的级别组合您的服务。通常为您要支持的每个业务功能创建服务或多个服务。
也许您只需要列出每个业务功能一个服务,或者您可能需要多个服务,例如,因为会计功能非常大并且包含多个功能。
所以,讲课。为了回答你的问题:
我应该选择哪种实例模式?
对于性能,您应该使用每次通话。这对于高容量来说是最有效的,因为每个调用都被分派到一个新的服务实例,该服务实例仅在调用操作期间存在。如果您希望所有客户端也是WCF,那么您应该使用netTcpBinding。
我应该公开一组最小的标准操作,还是应该公开大量特定于问题集的函数?
这取决于很多事情。这里没有规则,但一个指导原则是,给定业务能力中的服务之间的通信可以通过资源和基于HTTP的操作(GET,POST等)来完成。这是因为在业务能力范围内,期望由一个服务公开的实体或资源对消费服务具有意义是合理的。
但是,不同业务领域的服务之间的通信应该更像后一个例子;显式的业务级操作,这些操作在业务域之外具有意义。
最终你的问题很棒,因为你可以写书回答它。但是,对于这个网站,答案需要保持简短,所以我会停止继续你。但是我强烈建议您阅读一般的SOA,特别是关于 业务能力 , 服务自治 ,关于 分歧 RPC和基于资源的Web服务之间。
对于WCF(如果这是您正在使用的技术),您可以进行研究 高性能WCF服务