首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SOA架构理解

SOA架构理解
EN

Stack Overflow用户
提问于 2013-04-29 16:26:00
回答 2查看 414关注 0票数 0

我被要求使用WCF在一个基于SOA的项目中工作。我曾经涉足过WCF (创建和消费),但从未涉足过SOA。我说单个服务应该有通常的服务层、业务层和数据访问层(如果需要的话),这样说对吗?然后,服务层将公开方法。

服务A是否可以引用服务B,服务B是否可以引用服务A?

然后UI可以通过引用访问这些服务--这本质上就是SOA吗?我正在努力寻找最新的、最新的教程(Youtube),我在网上看到的“指南”似乎非常复杂。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-29 16:45:23

我想这个Wikipedia entry很清楚吧?

让我们来看一个简单的例子。假设我们有一个图书馆应用程序,它可以让你检入和检出图书。

如果您看一下处理n层系统的“传统”非面向服务架构的方法,那么就会有一个名为MyService的服务,它的方法类似于CheckOutBook。这样就可以在内部拥有一个Book类和一个Person类,并执行Book.IsAvailable = FalsePerson.NumberOfBooks

这很好,但是假设您现在有另一个想要与人一起工作的应用程序。您不能只使用上面的服务,因为逻辑与您正在做的事情紧密耦合,即库事务。相反,您必须将代码复制/粘贴到新服务"BookShop“中。

使用面向服务的体系结构,您将拥有一个图书服务和一个Person服务。Person服务将有一个操作,如Person.AssociateWithBook,库和BookShop都可以使用它,而无需更改,因为它足够简单,只需做最少的操作。然后由应用程序调用正确的服务来完成所需的工作。这意味着它是可重用的,而不需要修改各种服务。

这是非常简单化的,但希望能显示出架构的差异,并让您上手?

票数 2
EN

Stack Overflow用户

发布于 2013-04-29 16:39:21

我会跳过关于SOA的问题,因为每个人都可以称SOA为他所理解的SOA (面向服务的体系结构)。我的意思是,每个使用服务的架构都可以被称为SOA...

从技术方面来说,我会用下一种方式构建它:

在IMO中,服务本身应该具有尽可能少的逻辑(如外观模式),所有这些逻辑都应该向下移动到业务逻辑。

使用ServiceA.BusinessLogic的服务A调用服务B(服务B的代理可用于ServiceA.BL)。

服务B也是如此,调用服务A。

这将为您提供双向通信,而不会出现双工问题(中断的回调,...)。

UI也应该访问服务--使用UI.BusinessLogic (我通常倾向于将服务通信看作是一种通信数据访问层)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16274177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档