将 N 层应用程序重建为面向服务的架构 (SOA)? [英] Rebuild N-tier app into Service-Oriented Architecture (SOA)?

查看:26
本文介绍了将 N 层应用程序重建为面向服务的架构 (SOA)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Considering the regular characteristics of an n-tier app with layers like: presentation, business, data access; how is this normally rebuilt to make a Service-Oriented Architecture (SOA)?

向在此练习中经验丰富的程序员寻求高级概述.

Seeking high level overview from programmers experienced in this exercise.

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

To a degree I picture it conceptually flattening out rather than having one vertical stack. Or as a series of horizontal modules each encapsulating their own mini n-tier stack. With heavier protocols in between for messaging.

推荐答案

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

SOA and n-tier are somewhat different concepts. n-tier is generally about the application architecture of building a standalone application (which may have some defined interfaces to other applications etc).

SOA 退后一步,着眼于整个企业所需的业务服务范围以及应在何处提供这些服务,旨在减少重复.这些很可能建立在或重用现有 n 层应用程序的元素.例如,可能有许多允许创建订单的现有应用程序(例如,销售团队基于内联网客户端的应用程序、网站在线等),然后需要在某个时候同步或聚合它们的数据.相反,可以创建下订单"服务,该服务可以被许多不同的前端应用程序重用.

SOA takes a step back from this and looks at the range of business services that are required across the enterprise and where they should be provided, with an aim to reduce duplication. These may well build on or reuse elements of existing n-tier applications. For example there might be a number of existing applications that allow an order to be created (e.g. intranet client based application by sales team, online at website etc), which then need to synchronise or aggregate their data at some point. Instead a 'place order' service could be created, that can be reused by a number of different front-end applications.

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

These initial services could well exist based on functionality within existing applications that is then wrapped in a business service to provide the reusable interface.

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

You might then look at chaining a number of services together in different ways (orchestration) to provide a composite service - e.g. place_order is followed by an optional call to a supplier company service to restock the warehouse if the stock level is below certain level, and a further call is made to a billing service to create an invoice etc.

这篇关于将 N 层应用程序重建为面向服务的架构 (SOA)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆