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

2023-12-24

考虑到 n 层应用程序的常规特征,其中包括:表示层、业务层、数据访问层;这通常怎么样rebuilt打造面向服务的架构(SOA)?

向在此练习中经验丰富的程序员寻求高层次的概述。

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


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

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 N 层应用程序重建为面向服务的架构 (SOA)? 的相关文章

  • JPA 实体和/与 DTO

    在这些情况下帮助决定何时使用 DTO 以及何时使用 Entity 的总体思路是什么 UI 服务器端java调用服务 它应该获取 发送实体还是 DTO Web 服务调用服务 服务是否应该接受实体或 DTO 我喜欢阅读传递实体的代码 传递更简单
  • 洋葱结构与六边形结构的比较

    它们之间有什么区别 洋葱 六边形 根据我的理解 它们是相同的 它们专注于应用程序核心的领域 并且应该与技术 框架无关 如果有的话 它们之间有什么区别 另外 我认为使用其中一种架构或什至针对 N 层架构并没有真正的优势 如果做得不好 仅仅遵循
  • 微服务版本控制

    就在运行时支持同一服务的多个版本化部署以及消费者如何使用不同版本而言 适应基于微服务的架构中的版本控制的最佳实践是什么 1 如果我们使用基于路由的版本控制作为提到的方法之一here http niels nu blog 2016 micro
  • 如何通过WMI确定操作系统平台?

    我试图弄清楚 WMI 中是否有一个位置可以返回可在 所有 版本的 Windows 上工作的操作系统架构 即 32 位或 64 位 当我发现以下内容时 我以为我已经弄清楚了我的Win2k8系统 Win32 OperatingSystem OS
  • 什么算作失败?

    假设我有一个伪 C 程序 For i 0 to 10 x a 2 x 5 next 30 FLOPS 的 FLOP 数量是 1 x 1 x 5 1 2 x 5 10 loop 吗 我很难理解什么是失败 请注意 指示我从何处获取 操作 计数
  • 在事务结束时发送事件

    我有一个服务对象的接口 如下所示 为简洁起见进行了简化 public interface ItemService public Item getItemById String itemId int version public void c
  • 托管扩展性框架 (MEF) 与复合 UI 应用程序块 (CAB)

    我们目前正在考虑在下一个应用程序中使用 CAB 或 MEF 我没有在 Codeplex 上看到任何有关如何处理同级控制通信的事件代理的示例 也许我错过了 MEF 中的控制间通信如何工作 此外 我们计划使用 Infragistics 它为 C
  • 与云无关的架构? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在对一个新解决方案进行一些架构工作 该解决方案最初将在 Windows Azure 中运行 不过 我希望解决方案 或至少是架构 设计 与云无
  • 在 DDD 中,表示层可以同时使用 Repository 和 Service 类吗?

    如果表示层只应该使用服务 那么服务类必须公开存储库已实现的相同方法 以使它们可供表示层使用 这似乎是错误的 有人可以帮我澄清一下吗 我敢打赌 这似乎是错误的 因为您实际上并不需要这种抽象级别 应用服务有facades http en wik
  • C:epoll和多线程

    我需要创建专门的 HTTP 服务器 为此我计划使用 epoll sycall 但我想利用多个处理器 核心 但我无法提出架构解决方案 ATM我的想法如下 使用自己的epoll描述符创建多个线程 主线程接受连接并将它们分配给线程epoll 但还
  • 在 Codeigniter 中使用/嵌入 Ember js

    我即将开始开发一个 Web 应用程序 使用 Ember js 作为前端技术 使用 Codeigniter 作为后端 我遇到的问题是如何在 codeigniter 中嵌入或使用 ember js 可以通过 Web 服务从 codeignite
  • 如何在无 null 设计中实现 List、Set 和 Map?

    当您在大多数情况下可以返回 null 空对象以避免 null 时 这很好 但是像 Collection 这样的对象呢 在爪哇 Map回报null if key in get key 地图上没有找到 我能想到的最好的避免方法null在这种情况
  • “if”在 ASP.NET MVC View (.aspx) 文件中被认为有害?

    我记得看到一个博客 或其他内容 说你不应该在 ASP NET MVC 的 aspx 文件中使用 但我不记得它说的替代方案是什么 有人记得看过这个并指出我吗 基本上 这意味着您的视图中不应该有大量的 if 语句 您的控制器和视图模型应该能够处
  • 策略模式还是命令模式?

    假设我有一个金融交易列表 我需要针对这些交易执行一系列验证规则 一个例子是我有一笔购买产品的交易 但是首先我需要验证交易中的帐户是否有足够的可用资金 产品没有售完等 由于这些规则 交易将是标记为拒绝 并应指定错误代码 当然 我正在考虑用一个
  • 为什么 Visual Studio 2008 总是重建我的整个项目?

    我有一个包含大约 60 个 C 源文件的 Visual Studio 项目 我可以进行构建 并且它可以毫无错误地完成 但如果我立即再次按 F7 它总是会重新编译大约 50 个源文件 它不会重新编译所有文件 这很奇怪 我设置了 启用最小重建
  • 相同的 SAML 响应是否应该被接受两次、多次?

    只要在允许的 SAML 令牌生命周期内 SAML 联合软件是否应该接受相同的 SAML 响应 简单来说 IDP 识别提供商 发出 SAML 响应 然后 SP 服务提供商 接受 处理它 第一次使用后是否可以立即重新使用相同的未修改的 SAML
  • 如何实现 Eclipse 清理和构建(又名重建)?

    我删除了我的 binEclipse Indigo 中的文件夹 与 Helios 非常相似 现在我想知道如何重建我的 Java 项目 我只是找不到像 Netbeans 中那样的按钮 对于 Eclipse 您可以在下面找到重建选项项目 gt 清
  • JavaFX 中的 MVC 模式与场景生成器

    我是 JavaFX 新手 根据我当前的设置 正在努力创建合适的 MVC 架构 我使用 Scene Builder 单击了一个 UI 并指定了一个 Controller 类 Startup public class Portal extend
  • Google BigQuery 底层架构

    所以我大约 10 分钟前才开始摆弄 Google BigQuery 我想知道是否有人知道他们用来存储数据的底层架构 例如 这只是他们自己的下一代 BigTable 基础设施吗 另外 他们在索引 索引重建等方面使用什么样的策略是否清楚 我只是
  • 从另一个命令 Handle() 方法中调用命令

    嗨 我正在使用简易注射器 https simpleinjector orgDI 库并一直在关注一些关于围绕命令模式设计的架构模型的非常有趣的材料 同时 在我的架构的命令方面 https cuttingedge it blogs steven

随机推荐

  • 使用 awk 在文件中查找字符串

    所以我想从文件中抓取一个字符串 文件包含数据 Id Name CreationDate Comment 1 testing 19 10 11 created by jag 2 develop 19 10 12 created by jag
  • (FB Instant games) 我如何获取/设置屏幕分辨率?

    如何在移动 Facebook 应用程序或 Messenger 中获取 设置即时游戏的屏幕分辨率 我尝试通过 window screen width 和 window innerWidth 获得它 它返回了我360像素 但我在Chrome浏览
  • 了解 C++ 中的顺序一致性栅栏

    我正在阅读有关 C 中的内存顺序的内容 我可以很好地理解放松和获取 释放模型 但我正在努力解决顺序一致性问题 如果我没记错的话 从参考参数 https en cppreference com w cpp atomic memory orde
  • 如何使用CAGradientLayer绘制渐变色轮?

    我从这些链接中得到了一些参考 色轮背后的算法是什么 https stackoverflow com questions 4897181 what is the algorithm behind a color wheel 色轮背后的数学 h
  • 将日期字符串解析为带时区的日期时间

    我有一个字符串 r Thu Dec 17 08 56 41 CST 2020 这里CST代表中国中部时间 亚洲 上海 我想将它解析为日期时间 我正在做类似的事情 from dateparser import parse r1 parse r
  • 如何评估 PHP 中作为字符串传递的公式?

    只是想找出正确且更安全的方法来执行作为字符串传递的数学运算 在我的场景中 它是从图像 EXIF 数据中获取的值 经过一番研究后 我发现了两种方法 首先 使用eval function calculator1 str eval str str
  • 如何在注销时从 uber API 中删除访问令牌?

    I am doing integrate uber sdk using oAuth2Client in ios I got access token using https login uber com oauth v2 token htt
  • 使用 UITextView 防止自动换行

    使用iPhone sdk 3 1 2 我有一个启用垂直和水平滚动的 UITextView 控件 我希望每行文本都显示而不换行 以便用户可以水平滚动来查看它 我遇到的问题是 即使启用了水平滚动 文本也会以 iPhone 屏幕的宽度换行 即 3
  • android 4.4.X:taskAffinity 和 launchmode 与 Activity 生命周期

    我开发了一个简单的应用程序 它演示了我注意到的 Android 4 4 X 设备上的一些奇怪行为 假设我想要有 2 个 主要 活动 其中第一个活动每次恢复时都会说 Hello 通过启动 HelloActivity 而第二个活动则有andro
  • 调整 JButton 中 ImageIcon 的大小

    我正在创建一个包含特定 ImageIcon 的 JButton 主要问题是原始图标尺寸比按钮尺寸大得多 结果当按钮显示时 只能看到部分图标 调整 ImageIcon 大小以使其适合 JButton 的方法是什么 Image img icon
  • 无法更改开关颜色

    我正在寻找仅将这种颜色应用于所有开关 但默认情况下 它正在采取colorAccent而不是这个主题进行切换 装置 棉花糖 layout
  • Git:停止 git 推送

    我正在将一个大文件推送到 git 但连接速度非常慢 终止此推送 推送中 并在连接更好时恢复它的最安全方法是什么 Killing the client Ctrl C or any other method won t cause the da
  • 无法批量分配受保护的属性:tags_attributes?

    我正在尝试按照以下方式为帖子创建标签导轨指南 http guides rubyonrails org getting started html tag rb class Tag lt ActiveRecord Base attr acces
  • 如何检查Python应用程序是否在AWS lambda函数中运行?

    我有一个连接到数据库的 Python 应用程序 我希望数据库凭据在本地环境 用于测试 或 lambda 函数 用于生产 中运行时有所不同 有什么方法可以从 Python 应用程序检测它是否在 lambda 函数内运行 编辑2 感谢 Mark
  • 如何绕过open-uri中的SSL证书验证?

    我尝试通过 https 连接访问带有 open uri 的文件 不幸的是证书有问题 我得到了证书验证失败错误 我对此无能为力 所以我必须绕过验证 我找到了这个answer http www peterkrantz com 2007 open
  • C# 错误“...的类型初始值设定项引发了异常

    此错误仅发生在某些计算机上 通过读取堆栈信息 当我在静态类中调用此静态方法 FormatQuery 时出现一些问题 using System using System Collections Generic using System Dat
  • 如何清除NiFi队列?

    我们正在 NiFi 中创建一些流 在某些情况下可能会建立队列 但由于某种原因 流无法按预期工作 在一天结束时 我想清除队列并以某种方式实现自动化 问题是我们如何从后端删除队列 我们有什么办法可以实现这一目标吗 除了 Bryan 提到的明确的
  • 在 Vaadin Flow 14 中过滤网格中的项目的简单示例

    我想抑制某些项目的显示GridVaadin Flow 14 中的小部件 例如 如果用户输入年份IntegerField小部件 我希望网格仅显示相关日期在那一年之前的项目 日期在该日期或之后的项目应该消失 如果用户更改年份数字 则应重新应用过
  • 如何将 Windows docker 容器部署到 docker-for-desktop Kubernetes 集群?拉取访问被拒绝

    我正在运行启用了 kubernetes 的桌面版 docker 我正在使用 Windows 容器 但也一直在运行 Linux 容器 我将模式切换到 Windows 另外 kubernetes 正在运行 但一直在使用 Linux 所以我猜集群
  • 将 N 层应用程序重建为面向服务的架构 (SOA)?

    考虑到 n 层应用程序的常规特征 其中包括 表示层 业务层 数据访问层 这通常怎么样rebuilt打造面向服务的架构 SOA 向在此练习中经验丰富的程序员寻求高层次的概述 在某种程度上 我认为它在概念上是扁平化的 而不是有一个垂直的堆栈 或