- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在考虑为一组服务使用 SOA 架构来支持我咨询的业务,以前我们使用数据库集成,其中每个应用程序从共享的 MS SQL 数据库中挑选出它需要的东西并使用它等等。我们有各种与怪物数据库(包括 java、.net 和 microsoft access)集成的应用程序,由于所有内容都是紧密耦合的,因此具有参照完整性。
我对如何支持服务之间的数据共享有点困惑。
让我们以产品服务为例,它位于批发商每月提供的产品数据库之上。我们构建了一个域模型,并将其放置在使用 Hibernate 或其他任何东西的数据库中,根据批发商提供的有关产品的信息,实现明智的产品是一个大型对象图。
现在假设 Review 服务、Pricing Service、Shipping Service 和 Stock Service 将订阅 ProductUpdated、ProductAdded、ProductDeleted。问题是每个服务只需要部分或部分关于产品的信息。运输可能只需要尺寸和重量。定价可能只需要产品编号、批发成本、批量折扣、迄今为止的有效价格。审核可能需要产品 ID、产品名称、生产商。
是否只是发布整个产品(合适的非订阅者特定契约(Contract),例如 ProductUpdated 和合适的模式 - 代表所有产品对象图)并让订阅者将他们需要的任何内容映射到他们的域模型(或者他妈的做他们想做的事情),这是标准做法吗?想要,甚至可能没有域模型)...
或者在我写这篇文章时,我在想:
产品服务发布 ProductAdded 消息(不包含产品详细信息,仅包含产品 ID 和时间戳)
Pricing Service 订阅 ProductAdded 并发布 RequestPricingForProduct 消息
产品服务发布 ResultForPricingForProduct 消息
嗯.. 似乎好一点......但感觉就像我正在根据我可以识别的其他服务以及他们将需要什么来构建产品服务契约(Contract),也许在 future XYZ 服务需要不同的东西。我打算停在那里,因为我认为我感到困惑的地方越来越清楚了……也许上面的方法会起作用,因为我应该公开一种方法来返回任何应该公开的东西,嗯。
任何意见或方向非常感谢。对不起,如果这看起来半生不熟。
最佳答案
我实际上认为这个问题的解决方案是不共享数据。 SOA 意味着数据归服务所有——它是该数据的技术权威。我建议阅读一些 Pat Helland 的文章,例如 Data On The Inside, Data On The Outside .
这些不同服务之间唯一应该共享的是主键 - 您的示例中的 ProductId 。否则,对于每个服务,需要事务一致的数据会放在一起。
不需要一个“产品”。每个服务都可以对其服务中的产品有不同的看法。对于定价服务,您有一个 productId 和一个价格。对于评论服务,productId 和评论。等等。
如果这些数据来自所有这些不同的服务,那么人们开始困惑的是如何在 UI 中显示这些数据。如何显示产品的评论列表,该产品具有来自 ProductService 的产品名称和来自 ReviewService 的评论文本?
答案是从所有不同的服务组成 UI。从产品服务中获取产品并从评论服务中获取评论数据,然后在 UI 中组合这些数据。
关于SOA 风格 - 共享数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/963851/
我经常听到非技术客户或项目经理把面向服务的体系结构 (SOA) 作为一个流行词四处流传,几乎不关心或不了解它的实际含义(例如:“我可以购买 SOA 吗?”)。还有很多关于 SOA 的错误信息(例如:“
一些 SOA 基础是: 松耦合 可重用性 无状态服务 服务之间的正式契约(Contract) 粗粒度 异步 抽象底层逻辑(黑盒) 可组合(作为构建块的服务) 可发现服务 自治服务 它们中的大多数都可以
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 去年关闭。 Improve th
我是一名学生,我有一篇名为“网格计算”的学期论文和另一篇名为“SOA”的论文。 作为实验室练习的一部分,我创建了基于 SOA 的 Web 服务。但似乎网格计算处理相同的基于 WSDL 的服务。我实际上
它们有许多共同的特征。但是有什么区别呢? MOM 允许异步,而 SOA 不允许,这是唯一的区别吗? 最佳答案 SOA,即面向服务的体系结构,是一种体系结构,它定义了如何在不同应用程序之间构建对业务信息
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
所以我今天的开放式潜在主观问题是; 如果您有机会在今天的 Microsoft 技术上构建 SOA;你会从下面的选项中选择什么? WCF、WF + AppFabric BizTalk + ESB 工具包
Web 服务是一种面向服务的架构实现。 但是,我们能说 CORBA、RMI 和 Java EE 平台也是 SOA 的实现吗? 最佳答案 如果您说 SOA 意味着 WS-* 标准,那么答案是否定的。 但
我对这些 Web 服务术语 SOA、ESB 感到困惑。 任何人请解释。 最佳答案 SOA 是一种架构方法,您可以在其中以粗粒度的方式公开和封装“服务”。它没有规定任何技术机制或实现。 SOA更多地与系
关闭。这个问题需要多问focused 。目前不接受答案。 已关闭10 年前。 已锁定。这个问题及其答案是locked因为这个问题是题外话,但却具有历史意义。目前不接受新的答案或互动。 有人可以用简单的
“服务代理”在 SOA 模型架构中的作用是什么? 最佳答案 服务代理旨在成为服务的注册表,并存储有关哪些服务可用以及谁可以使用它们的信息。例如,最初设想为 Web 服务注册中心的 UDDI 现在被视为
我在网上看过,但我对包装器服务是包装遗留应用程序还是一组复杂服务感到困惑。 更新:从我收到的答案来看,SOA 中没有公认的“包装服务”定义,经过进一步调查,我意识到“包装服务”取决于定义它的人。我的意
我对 SOA 中编排的含义感到困惑,我阅读了很多定义但没有明白这个想法,你能帮我吗? 最佳答案 有两种主要方法可以从更大的类(class)粒度服务、编排和编排中执行所有必要的细粒度服务。 对于管弦乐队
我一直在研究异步消息传递,我喜欢它优雅地处理某些领域中的一些问题的方式,以及它如何使领域概念更加明确。但对于一般的领域驱动开发(至少在服务/应用程序/ Controller 层)来说,它是一种可行的模
我创建了一个名为 QM_MQ_TEST 的队列管理器 crtmqm QM_MQ_TEST strmqm QM_MQ_TEST runmqsc QM_MQ_TEST DEFINE CHANNEL(QM
我在 Weblogic 10.3.6 中有一个包含 SOA 服务器的域。我刚刚使用 JDeveloper 部署了一个名为 soa_1 的 SOA 应用程序以及名为 HelloWorld 的 BPEL
任何机构都在他们的商店中使用 Talend SOA Suite。 如果我没记错的话,它与 Oracle SOA Suite 和 Service Bus 相比如何,因为这两个产品都实现了 EIP 模式?
我最近开始了一个副项目。它应该是一本虚拟食谱书,具有存储和检索食谱 (CRUD)、对它们进行评分和搜索的功能。这不是什么新鲜事,但我想将它构建为桌面应用程序,以了解有关数据库、单元测试、UI 等的更多
什么时候分布式事务在面向服务的架构中有意义? 最佳答案 分布式事务在 SOA 环境中经常使用。如果您有一个调用多个服务的复合服务,则底层服务调用应作为单个事务处理。业务流程应允许其步骤回滚。如果底层资
我正在阅读有关SOA原理和模式的信息,但我无法理解什么是不可知论的服务。您对此有任何直接的定义吗?概念和用法是什么? 最佳答案 可以在Agnostic/non-agnostic revisited中找
我是一名优秀的程序员,十分优秀!