【问题标题】:Rebuild N-tier app into Service-Oriented Architecture (SOA)?将 N 层应用程序重建为面向服务的架构 (SOA)?
【发布时间】:2011-01-21 21:41:43
【问题描述】:

考虑具有以下层的 n 层应用程序的常规特征:表示层、业务层、数据访问层;这通常是如何重建以构建面向服务的架构 (SOA)?

向有此练习经验的程序员寻求高级概述。

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

【问题讨论】:

  • 我喜欢新的流行语,因为 SOA 还不够酷。
  • 我认为 Woot4Moo 暗示的是您将 SaaS(一种许可模式)与 SOA(一种软件架构)混淆了。
  • @molf 确实是我的朋友,但我也听说人们使用 SaaS 作为 SOA 的替代品
  • 至少你没有先从我这里听到!已对问题进行了适当的修改。谢谢。
  • "...一系列水平模块,每个模块都封装了自己的迷你 n 层堆栈。"我认为这就是您正在寻找的答案。

标签: architecture soa n-tier-architecture rebuild


【解决方案1】:

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

SOA 对此后退了一步,着眼于整个企业所需的业务服务范围以及应在何处提供这些服务,旨在减少重复。这些可以很好地构建或重用现有 n 层应用程序的元素。例如,可能存在许多允许创建订单的现有应用程序(例如,销售团队基于 Intranet 客户端的应用程序、网站在线等),然后需要在某个时候同步或汇总其数据。相反,可以创建一个“下订单”服务,该服务可以被许多不同的前端应用程序重用。

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

然后,您可能会考虑以不同的方式(编排)将多个服务链接在一起以提供复合服务 - 例如如果库存水平低于特定水平,则在 place_order 之后可选调用供应商公司服务以补充仓库,并进一步调用计费服务以创建发票等。

【讨论】:

  • 很好的解释。我要补充一点,这些概念并不是相互排斥的,因此您可以拥有一个与 n 层系统连接的服务。
  • 好点。我正在考虑一些更好地回答原始问题的修订,例如如何最好地重新集成现有的 n 层应用程序以形成 SOA,因此将尝试合并这些 cmets
【解决方案2】:

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

我还认为 SOA 中的 S 指的是业务服务(业务级别的东西)而不是 Web 服务(技术级别的东西)。

所以从这个意义上说,我不认为应用程序被“重建”为 SOA。肯定会发生 - 但在更高的水平上推动。我的意思是,只有在评估了收益、完成业务案例等之后,您才会想要这样做。

您需要什么样的概述,技术概述?还是别的什么?

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

【讨论】:

    猜你喜欢
    • 2014-06-04
    • 2015-02-15
    • 2010-11-08
    • 2018-08-27
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    相关资源
    最近更新 更多