lom*_*axx 16 architecture wcf soa soap web-services
我最近与我们的一位建筑师进行了对话,他总结了他对SOA的使用"我们唯一一次使用服务就是当我们需要异步操作时,否则我们将直接使用直接进入数据存储"
我考虑过这个陈述,看起来相当合理,因为服务在发布订阅模型中运行良好,但我想知道在其他场景中你应该使用SOA吗?
alb*_*jan 24
我们向客户公开服务,因为他们不能直接连接到数据源.
我们向自己公开服务,因为使用WCF更容易将它们分布在不同的技术上.
我们公开服务,因为我们为同一数据源提供了不同的用户界面.当我们使用服务时,我们节省了三分之一的工作量.
这绝不仅仅是因为异步行为.
小智 9
使用服务的另一种情况是,您希望集成异构技术堆栈.
换句话说,如果你的数据库是postgres,但是你有Java,Perl,Python和C++代码,你可以编写存储过程并让每种编程语言都调用它们.如果您正在使用没有存储过程的数据库,或者您希望能够将其切换出来 - 或者您只想在端口80上运行,则可以将SQL调用包装在面向服务的层中(想想现在可以被任何人调用的websphere - 而且你可以在SOA层中放置身份验证和授权逻辑(连接到LDAP,无论如何).
您也可以使用该SOA层,比如建立一个逻辑例程,在管理发票或为客户创建语句的角落中使用旧的COBOL框"填充".
因此,如果您有许多遗留系统需要互连 - 比如将销售系统与仓储系统连接到订单预测系统 - SOA可能是实现该目标的一种方式.(您还可以使用"服务总线"创建事件驱动系统,作为协调变更的更好方式.)
只是我说话.
在许多情况下,您可以从使用服务中受益.其中一些场景已经由行业大师编写(例如SOA成名的Thomas Erl).
我想你要找:
你的同事保持谨慎是正确的.采用Web服务时引入了许多部署和支持变量.