代码之家  ›  专栏  ›  技术社区  ›  John K

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

  •  2
  • John K  · 技术社区  · 14 年前

    考虑到n层应用程序的常规特性,包括:表示、业务、数据访问;这通常是如何 重建 创建面向服务的体系结构( SOA )?

    从经验丰富的程序员那里寻求高层次的概述。

    在某种程度上,我认为它在概念上是扁平的,而不是有一个垂直的堆栈。或者作为一系列水平模块,每个模块封装自己的小型n层堆栈。中间有更重的通讯协议。

    2 回复  |  直到 14 年前
        1
  •  4
  •   Kris C    14 年前

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

    soa从这一点上后退了一步,着眼于整个企业所需的业务服务范围以及应该在哪里提供这些服务,以减少重复。它们可以很好地构建或重用现有n层应用程序的元素。例如,可能有许多现有的应用程序允许创建订单(例如,销售团队基于内部网客户端的应用程序、网站上的在线应用程序等),然后需要在某个时间同步或聚合它们的数据。相反,可以创建一个“place order”服务,它可以被许多不同的前端应用程序重用。

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

    然后,您可以考虑以不同的方式(编排)将多个服务链接在一起,以提供一个组合服务—例如,如果库存水平低于某个水平,则下订单后会有一个可选的调用给供应商公司服务,以重新进货仓库,而另一个调用是m向帐单服务发出发票等。

        2
  •  1
  •   Adrian K    14 年前

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

    我还认为soa中的s指的是业务服务(busines s level中的一些东西),而不是web服务(技术级别的一些东西)。

    所以从这个意义上说,我不认为应用程序被“重建”成了一个so a;当然这会发生,但会在更高的层次上被驱动。我的意思是,只有在评估了收益、做了一个商业案例等之后,你才会想这么做。

    你想要什么样的概述,技术性的?或者别的什么?

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