将N层应用程序重建为面向服务的体系结构(SOA)?

时间:2010-02-27 23:21:33

标签: architecture soa n-tier-architecture rebuild

考虑n层应用的常规特征,包括:演示,业务,数据访问等层;通常重建如何构建面向服务的体系结构( SOA )?

寻求本练习中经验丰富的程序员的高级概述。

在某种程度上,我认为它在概念上是扁平化而不是一个垂直堆叠。或者作为一系列水平模块,每个模块封装自己的迷你n层堆栈。其间有较重的协议用于消息传递。

2 个答案:

答案 0 :(得分:4)

SOA和n层有些不同的概念。 n层通常是关于构建独立应用程序的应用程序体系结构(可能有一些定义到其他应用程序的接口等)。

SOA从此退后一步,查看整个企业所需的业务服务范围及其应提供的位置,旨在减少重复。这些可能很好地构建或重用现有n层应用程序的元素。例如,可能存在许多允许创建订单的现有应用程序(例如,销售团队的基于内联网客户端的应用程序,网站上的在线等),然后需要在某些时刻同步或聚合他们的数据。相反,可以创建一个“下订单”服务,可以由许多不同的前端应用程序重用。

这些初始服务可能基于现有应用程序中的功能而存在,然后将其包装在业务服务中以提供可重用的接口。

然后,您可以查看以不同方式(编排)将多个服务链接在一起以提供组合服务 - 例如如果库存水平低于一定水平,则place_order之后是供应商公司服务的可选调用以重新进货仓库,并进一步调用开票服务以创建发票等。

答案 1 :(得分:1)

我的理解是,您可以使用SOA方法让系统相互通信(而不是在层之间发送数据);您可以构建仅包含部分传统图层并依赖现有数据服务的应用程序。

我还认为SOA中的S指的是商业服务(商业服务中的某些东西),而不是Web服务(技术层面的东西)。

因此,从这个意义上讲,我认为应用程序不会“重建”为SOA;确定会发生 - 但是会在更高的水平上推动。我的意思是,只有在评估了好处,做商业案例等之后,你才会想要这样做。

您接下来是什么样的概述,技术概述?或其他什么?

高级概述:让了解您提供(或想要提供的)数据和服务的人,弄清楚如何刻录它们 - 简单起见:http://www.objectwatch.com/whitepapers/ITComplexityWhitePaper.pdf

相关问题