问题标签 [soa]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4562 浏览

.net - 使用服务而不是组件有什么优点和缺点?

从过去的几个月开始,我正在从事最新的点网框架中的项目。

我觉得在最新的 dot net 版本中,“服务”比组件更受鼓励。那是对的吗?

我在银光中看到(我是银光的初学者)所有 DB 层操作都暴露为服务。不知道现在组件程序也有吗?

有什么优势?如果所有层都公开为服务而不是 DLLS,性能会怎样?

请通过对这个主题的一些了解,我应该从哪里开始正确理解这个概念?

谢谢

SC

0 投票
2 回答
1707 浏览

java - 哪种 SOA 架构最适合 Java 应用程序?

我目前正在开发一个相当大的 Java 6 应用程序,我们希望将我们的一些功能拆分成一个面向服务的架构。

似乎应用程序空间的主要 SOA 框架是 OSGi,我一直在研究 Felix 和 Knopplerfish,但我想确保这不是我唯一的选择。

即使我们没有构建 Web 应用程序,对我们的应用程序(如 SOAP)使用实际的 Web 服务协议是否有意义?这甚至可以接受吗?

你们中的任何人在您的桌面应用程序中使用过 OSGi(Felix 等)的实现吗?如果有,进展如何?你知道更好的吗?

我们都是 SOA 的新手,因此我们将不胜感激任何帮助。

0 投票
2 回答
607 浏览

wcf - 服务设计(WCF、ASMX、SOA)

征求关于模式或最佳实践的反馈/想法,以解决我多年来见过几次的情况,但我还没有找到任何一种解决方案,可以按照我想要的方式解决它。

这是背景。

公司有 3 个应用程序支持 3 个相互关联的独立“业务线”。其中两个应用程序实际上是从原件复制/粘贴。应用程序需要能够以不同的速度增长并具有稍微不同的功能。功能的主要区别来自数据输入字段。差异基本上属于以下类别之一:

  1. 一个实例有几个字段,而另一个则没有。
  2. 字符串字段在一个实例中的最大长度为 200,但在另一个实例中为 50。
  3. 查找/参考字段具有不同的基础值(即相同的表结构,但来自不同的数据库)。
  4. 字段在一个实例中定义为用户提供的自由文本值,但在另一个实例中定义为查找/引用。

问题是公司内还有其他应用程序需要使用来自这三个独立应用程序的数据,但理想情况下,以核心/集中方式与它们通信(即通过中央服务而不是 3 个独立服务)。我的问题是如何处理,特别是上面的 D 项。我认为“最小公分母”方法可能是唯一的方法。例如:

关于此的其他想法/想法?

蒂亚!

0 投票
2 回答
172 浏览

open-source - 为我的下一个开源项目寻求意见

朋友们,

我正在寻求您的意见,以帮助我考虑下一个开源项目。我有两个想法,其中一个我想做,可能使用 Java 作为主要语言,只是作为一个偏好问题。我特别想知道其中任何一个是否已经完成,这样我就不会重复工作,以及您是否认为它可能对您所做的工作有用。

第一个是 UDDI 的 SOA 目录服务替代方案。当我在 90 年代中期帮助实现中间件/SOA 框架时,我们构建的其中一个部分是目录服务。虽然它没有提供今天 UDDI 提供的元数据存储功能,但它比 UDDI 具有一些优势。很简单:很容易注册服务、进行查找等。速度非常快。使用租用机制注册的服务,因此您可以获得匹配服务实例的列表,知道这些实例可能仍在运行。接下来,它被复制了。当然,许多 UDDI 实现都支持复制。我不想做的是创建另一个 UDDI 实现,而是构建一个替代目录服务,它更像我们在 90 年代所做的,符合当今的框架需求,但更轻量级。在我看来,UDDI 是一个比大多数企业需要的更重量级的解决方案,一个更简单的解决方案可能会提供一些吸引力,前提是它与他们已经使用的任何框架很好地集成。也就是说,很容易选择它作为 UDDI 的替代方案。

第二种可能性是对数据联合系统进行开源实现。我们为一个从未使用过的客户建造了一个,但里面有一些好主意。作为一个开源项目,我想再做一次,因为它提供了一些有用的功能。它本质上允许用户将文档发布到主节点,然后将文档复制到区域服务器,也就是说,将数据推送到靠近组织内使用它的位置。例如,如果一个文档被标记为与某个组织的欧洲地区相关,那么它将被推送到该地区的服务器,以及邻近地区的备份服务器。然后,该地区的用户可以根据需要对文档进行注释,并将其推送回原作者以供考虑。相对于拥有单一文档服务器,像这样的联合系统提供了一些可用性和性能优势。当用户想要一个没有存储在他或她的区域中的文档时,系统会返回到主服务器或另一个区域服务器来获取它。作为一项附加功能,原始系统支持可以从外部来源获取数据的插件,并且包含这些插件可能很有用。

0 投票
7 回答
3790 浏览

wcf - WCF 数据协定和参考实体数据?

征求有关“最佳”模式的反馈/选项/评论,以用于我的服务中的参考数据。

参考数据是什么意思?

让我们以罗斯文为例。订单与数据库中的客户相关。当我实现我的订单服务时,在某些情况下,我希望引用来自订单的“完整”客户,而在其他情况下,我只想引用客户(例如键/值对)。

例如,如果我正在执行 GetAllOrders(),我不想返回一个完全填写的订单,我想返回一个订单的轻量级版本,每个订单的客户只有参考数据。但是,如果我执行 GetOrder() 方法,我可能想要填写客户详细信息,因为此方法的使用者可能需要它。在其他情况下,我可能想要求在某些方法调用期间填写客户详细信息,但留给其他人。

这是我想出的:

这里的想法是,由于在 CustomerDTO 中始终需要 ReferenceInfo(这是一个通用的键/值对),因此我将始终拥有 ReferenceInfo。它为我提供了足够的信息,以便稍后在需要时获取客户详细信息。让 CustomerDTO 需要 ReferenceInfo 的缺点是,当我获得完整的 CustomerDTO(即填写了 CustomerInfo)时,它可能有点过头了,但至少我可以保证参考信息。

是否有一些其他的模式或框架可以用来使这个场景/实现“更干净”?

我问的原因是,虽然我们可以简单地说在 Northwind 中总是返回一个完整的 CustomerDTO,但这在简单的 Northwind 情况下可能工作得很好。就我而言,我有一个具有 25-50 个字段的对象,这些字段是引用/查找类型的数据。在不同的情况下,有些比其他的加载更重要,但我希望这些引用类型的定义尽可能少(这样我就不会陷入“DTO 维护地狱”)。

意见?反馈?注释?

谢谢!

0 投票
2 回答
273 浏览

asp.net-mvc - 在 ASP.NET MVC 中自动将控制器包装在服务周围

问题标题可能不清楚,但我想做的是这样的:

这就是我如何分层我的应用程序

应用程序域应用程序服务应用程序Web

我想要的是,如果我请求类似的东西/api/OrderProcessor/GetAllOrder,它将GetAllOrderApp.Services.OrderProcessorService.

该方法将返回一个IList<Order>,我希望它根据某种格式(我实际上使用 ExtJS)序列化为 JSON,可能类似于:

我可以继续将服务作为控制器,但我不希望服务层被表示材料污染。

我该如何制作这样的包装控制器?

我不想在 Service 类本身上附加任何属性,如果我可以使用 IoC 配置它可能会很好,可能稍后我希望输出是 XML 或者可能使用 DTO 类而不是原始域类。

任何想法?

0 投票
5 回答
6279 浏览

.net - 使用 WCF 的合同优先 SOA

这个问题更多的是探索人们在实际情况下在社区中所做的事情,而不是一个有针对性的问题。我对此进行了相当广泛的搜索,虽然我发现很多博客都提倡契约优先服务设计和一些支持它们的评论,但我还没有找到很多关于使用 WCF 实现契约优先的实用信息,优缺点我最近对 ​​SOA 进行了一些广泛的研究,主要是通过 Thomas Erl 的书籍,他提倡的主要概念之一是契约优先设计。

我的问题如下:

  1. 您如何使用 .NET 和 WCF 进行合同优先服务设计?
  2. 除了 svcutil 之外,还有其他工具可以从合同中生成客户端和服务吗?(任何与 VS 集成的东西都是理想的)
  3. 您在合同优先设计和 wCF 方面遇到过哪些现实世界的专业人士?
  4. 您在使用契约优先设计和 WCF 时遇到了哪些现实世界的弊端?

合约优先开发的主要问题之一似乎是工具。Svcutil 是我发现的唯一可以从合约生成服务代码的东西,而且它的输出很差。它的单一文件,塞满了属性和代码生成工件,基本上需要在合约更新时重新生成和替换。我更喜欢更好的方法,最好是不需要regen-replace的方法。我什至可以手动创建服务端合同,假设它在现实世界的场景中是实用的。

编辑:

虽然 WCSF 解决了我的迫切需求,但学习Protocol BuffersService Factory都是有趣的工具,我相信它们将来会对我有所帮助。

0 投票
2 回答
287 浏览

c# - 将我的应用程序数据和处理后的数据公开为 Web 服务

假设我有一个存储数据、获取数据和处理数据并将它们存储在数据库中的应用程序(可以是任何数据库)。假设我想将我的数据公开为 Web 服务,以便其他系统可以获得处理所需的数据。

Q1.有什么标准可以遵循吗?我可以在 C# 中创建 Web 服务,那么是否足以说或声称我的应用程序符合 SOA 标准?

0 投票
1 回答
984 浏览

java - Mule 聚合器 - 流式聚合

Mule 2.0 框架中使用的集合聚合器有点像这样:

  • 入站路由器接收一组消息并将其拆分为许多较小的消息 - 每个较小的消息都带有对应于父消息的相关 id

  • 这些消息流经各种服务

  • 最后,这些消息到达一个入站聚合器,该聚合器根据父消息的相关 id 和预期消息的数量收集消息。一旦收到所有预期的消息,就会调用聚合函数并返回结果。

现在,当组中的消息数量相当少时,这可以正常工作。然而,一旦一个组中的消息数量变得巨大~100k,那么就会有很多内存被占用来等待后面的消息到达的消息组。如果同时聚合多个组,情况会变得更糟。

解决此问题的一种方法是实现流式聚合器。在我的用例中,我基本上是基于一个键来总结各种消息,这可以在不必同时查看组中的所有消息的情况下完成。我只想知道在将结果转发到端点之前已收到所有消息。

这听起来像是解决问题的合理方法吗?

这是否已经在 Mule 的某个地方实现了?

有没有更好的方法来做到这一点?

0 投票
5 回答
846 浏览

java - 有人对 SeeBeyond / Sun 的 JCAPS 产品有任何反馈吗

我有一个客户目前正在考虑使用 SeeBeyond / Sun 的JCAPS产品,SO 上的任何人都有使用 / 开发它的积极或消极经验吗?