考虑具有以下层的 n 层应用程序的常规特征:表示、业务、数据访问;这通常如何重建以构建面向服务的架构 ( SOA )?
向有此练习经验的程序员寻求高级概述。
在某种程度上,我认为它在概念上是扁平的,而不是有一个垂直堆栈。或者作为一系列水平模块,每个模块都封装了自己的迷你 n 层堆栈。在消息传递之间使用更重的协议。
考虑具有以下层的 n 层应用程序的常规特征:表示、业务、数据访问;这通常如何重建以构建面向服务的架构 ( SOA )?
向有此练习经验的程序员寻求高级概述。
在某种程度上,我认为它在概念上是扁平的,而不是有一个垂直堆栈。或者作为一系列水平模块,每个模块都封装了自己的迷你 n 层堆栈。在消息传递之间使用更重的协议。
SOA 和 n 层是有些不同的概念。n 层通常是关于构建独立应用程序的应用程序架构(可能具有与其他应用程序的一些已定义接口等)。
SOA 对此后退了一步,着眼于整个企业所需的业务服务范围以及应在何处提供这些服务,目的是减少重复。这些可以很好地构建或重用现有 n 层应用程序的元素。例如,可能存在许多允许创建订单的现有应用程序(例如,销售团队基于 Intranet 客户端的应用程序,在网站上在线等),然后需要在某些时候同步或汇总他们的数据。相反,可以创建一个“下订单”服务,该服务可以被许多不同的前端应用程序重用。
这些初始服务很可能基于现有应用程序中的功能而存在,然后包装在业务服务中以提供可重用接口。
然后,您可能会考虑以不同的方式(编排)将多个服务链接在一起以提供复合服务 - 例如,如果库存水平低于特定水平,则可以在 place_order 之后可选调用供应商公司服务以补充仓库,并且进一步调用计费服务以创建发票等。
我的理解是 SOA 方法是您用来允许系统相互通信的方法(而不是在层之间发送数据);您可以构建仅包含一些传统层并依赖现有数据服务的应用程序。
我还认为 SOA 中的 S 指的是业务服务(业务级别的东西)而不是 Web 服务(技术级别的东西)。
所以从这个意义上说,我不认为应用程序被“重建”到 SOA 中。肯定会发生 - 但在更高的水平上推动。我的意思是,只有在评估了收益、做一个商业案例等之后,你才会想要这样做。
您需要什么样的概述,技术概述?或者是其他东西?
高级概述:让了解您提供(或想要提供)的数据和服务的人,弄清楚如何划分它们 - 为简单起见:http ://www.objectwatch.com/whitepapers/ITComplexityWhitePaper.pdf