我想在Intranet中创建三个WCF服务。 就其功能而言,三个WCF服务彼此独立,例如
验证服务 - 处理与验证帐户和帐户持有人有关的所有事项。即如果存在账户,如果持卡人存在等
帐户服务 - 处理帐户余额存款和存款余额
用例: 用户希望存入一些钱。
UI通过调用帐户服务开始。帐户服务调用验证器 用于检查帐户是否存在的服务。 Validator服务返回boolean 表明帐户是否存在。如果验证器服务返回true 然后账户服务存钱。
用户想要取钱。
UI通过调用帐户服务开始。帐户服务调用验证器 如果帐户存在,请进行Validator服务返回true。帐户 然后,服务调用限制服务来检查用户是否可以接受此操作 平衡。如果限制服务返回true,则为account service 调用适当的方法,减少平衡,并给予平衡 用户。
我计划将它们作为Windows服务托管,因为UI和所有这些服务都将部署在同一台机器上。
您对此有何看法?
您是否建议您在此类SOA架构上推荐哪些服务与服务相互通信?我真的很关心它的可扩展性,安全性和性能。
感谢。
答案 0 :(得分:1)
为什么三个单独的服务用于以这种方式链接的操作?您似乎正在将SOA推向极端,而您不需要这样做。
我会创建一个处理帐户操作(存款,取款,余额查询,转帐等)的服务。验证和限制之类的东西,除非用户可用,我会把它放在幕后,或者作为合同中的私有方法,或者更可能在服务引用的底层DLL中。
拥有只做一件事的服务本身并不是坏事 - 但是拥有多个服务只做一件事,并且所有这些事情都归结为一个逻辑分组,是过度的(IMO)。我建议您仔细研究您尝试建模的业务流程 - 分组(如果有的话)应该很明显。
我会推荐Juval Lowry的书Programming WCF Services: Mastering WCF and the Azure AppFabric Service Bus - 它被许多人认为是WCF的圣经,他有一个完整的附录,是SOA的一个很好的入门。