2010-09-20 61 views

回答

3

简短的答案是:不,我知道的。

要牢记的另一件事(你可能已经意识到)是抽象层次非常重要。

一个层次,SOA中的“服务”是业务服务 - 不是像Web服务这样的技术服务;实际上在这个层面上,实现的想法是完全不相关的。这更多的是企业架构和企业架构级别。

下部向下,有可以称之为面向服务的设计,其中软件系统是建立在一个方式,是基于服务 - 它提供的东西是很容易被其他系统所消耗(或大部分消费服务同样的方式)。即使在这一点上,我们也没有谈论像technologu这样的实现特定的东西 - 它更多的是一种思维方式 - 系统如何安排(架构)。

下一个层次是软件系统提供服务作为由地址,绑定和契约(SOA的ABC)定义的物理端点。

在这个级别,你将能够找到实现;我想起了NServiceBus(不是我用过它) - 但你不需要服务巴士来做“服务”导向的建筑。

最后,我不确定您在问题的上下文中如何查看ASP.NET。如果你是基于.Net的,那么WCF是开始寻找的地方;其中一种绑定类型是Web服务,它是基于Web的类型,属于ASP.NET的范畴。或者,如果您正在构建网站或Web应用程序,那么应用程序提供或使用的服务将位于数据访问或服务层 - 与业务逻辑(BL)层松散耦合 - 因此它们并不实际直接关系到你正在做一个Web应用程序的事实,因为这个架构可以适用于不同类型的应用程序(而不仅仅是Web)。

+0

谢谢,你指出我的困惑!我们公司有一个开发架构,我们称之为Core。我们的核心是基于OOP开发的,我正在研究将体系结构改为SOA。在我们的Core中,我们已经将CRUD存储库数据服务层(使用实体框架),服务层,编排层以及最后一个UI(ASP.NET WebForm)进行了广义化。我已经看到NServiceBus和MSMQ,但正如你所提到的,它不是必须使用这些类型的技术,它只是在中期。我想改变和修改我们的核心。 – 2010-09-23 17:57:50

+0

PS:我们在服务层实现函数(如AddOrder,ApproveOrder,...),并在编排层中使用它们。 – 2010-09-23 18:00:30