问题标签 [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 投票
1 回答
117 浏览

.net - .NET SOA 商业推荐

我正在寻找一个涵盖消息队列、分布式缓存、故障转移/冗余的 .NET 中间件系统。我更喜欢看某种基于标准的商业解决方案。

你会推荐什么?从公司的角度来看,任何可用的东西都经受住了时间的考验,很可能会继续经营下去?

一个重要的方面是我们想要具有良好管理/监控工具的东西。我想 Java 世界已经有很多年了,但是似乎没有什么东西可以从 .NET 世界中跳出来。

0 投票
2 回答
743 浏览

soa - 如何平衡 DRY 原则和最小化依赖关系?

我遇到了 DRY 原则(不要重复自己)和最小化围绕 Rete 规则引擎的依赖关系的问题。

大型 IT 组织中的规则引擎往往是企业级的(注意大写的“E”——这是一项严肃的业务)。所有规则都必须表达一次,既好又干,并集中在一个昂贵的规则引擎中。组维护规则引擎并且是规则集的保持者。

当该 IT 组织是美国保险公司的一部分时,往往会有很多规则。有适用于所有州和产品的规则,但每个州倾向于针对不同的产品制定自己的法律,因此规则需要反映这些怪癖。类别很多:精算、承保,甚至用于从第 3 方机构订购信用和机动车辆报告。

从设计的角度来看,我遇到的问题是集中规则和处理当然是好的和干燥的,但是有成本:

  1. 额外的网络跃点以访问位于中心的规则服务并返回结果;
  2. 如果规则引擎被暴露为 SOAP Web 服务,则额外的复杂性 - 消费者必须打包 SOAP 请求并将响应 OXM 回他们自己的域;
  3. 维护规则引擎的企业组、设置和维护规则的业务以及使用规则的开发人员之间的附加接口;
  4. 额外的复杂性——有时数据驱动的解决方案可能就足够了。
  5. 额外的依赖——无法控制自己规则的组件不得不担心规则引擎的外部依赖,以进行测试、部署、发布等。

许多其他企业技术(例如,B2B 网关、ESB 等)都会出现这些问题。

相同的企业组也将 SOA 吹捧为基本原则。但我对正确服务设计的理解是,它们应该平铺业务空间,并且是幂等的、独立的和孤立的。如果服务的规则在其他地方维护,服务如何独立和隔离?

我想在简单性方面犯错,认为如果规则可以被证明仅适用于孤立的情况,那么消除依赖关系应该优先于集中化。我不确定这个争论是否会赢得胜利。

所以我的问题是:

  1. 您对集中化与独立性的争论有何看法?
  2. 您对规则引擎等企业工具有何经验?
  3. 我怎样才能使孤立的论点更有力?
  4. 如果我的观点不正确,你会提出什么论据来支持中心化?
0 投票
4 回答
3757 浏览

java - 编排与消息驱动架构

编排引擎与消息驱动系统的职责是什么。

如果我必须构建一个必须将不同的独立组件(不需要公开 Web 服务端点的跨技术/平台组件)串在一起的系统,那么要选择哪个工具集?

有更好的选择吗?

0 投票
1 回答
771 浏览

wcf - 为 WCF 应用程序向 IANA 注册端口

我们目前正在开发 SOA 应用程序,我们将使用 WCF 来处理所有进程间通信。在决定将哪些端口用作默认端口时,我们已经查阅了常用端口列表,并且包括用于更改这些默认端口的配置选项。

为了减少冲突的机会,我想使用 IANA 端口注册表单(http://www.iana.org/cgi-bin/usr-port-number.pl)来注册我们打算使用的端口并被占用令人惊讶的是,表单仍然假设任何使用端口的人都必须编写自己的协议!当您认为 WCF 是一种高级抽象并且使用量不断增加时,为什么仅提供 Binding 信息还不够?

我已经就此联系了 IANA,得到的答复基本上是我需要提供 WCF 的完整协议实现,这可能会随着单个属性的翻转而发生巨大变化。

对此的总体感觉是什么?是否值得进行注册,还是可以接受使用端口以希望将来没有人与之冲突?IANA 列表需要多长时间才能作为参考,因为大多数应用程序都没有列出?

意见和答案一样受欢迎!

0 投票
2 回答
2093 浏览

php - PHP5:dns_get_record() 只返回子域的 A 记录

在 Linux 上运行 PHP 5.2,我使用dns_get_record(). 从文档中可以看出,此功能可以复制dig,但我发现不一致。我的目标是获得对每个主机名所属的域具有权威性的主要和次要名称服务器。

dns_get_record('example.com', DNS_NS);返回良好的结果。 dns_get_record('www.example.com', DNS_NS);什么都不返回。 dns_get_record('www.example.com', DNS_ANY);只返回一个 A 记录。 dns_get_record('www.example.com', DNS_SOA);什么都不返回。

但是,从使用 dig 的命令行,我总能得到至少 SOA:

dig www.example.com NS 或者 dig www.example.com SOA

返回包含名称服务器的有效权限部分(在 SOA 中)。

如何在 PHP 中复制它?我已经尝试过 PEAR Net_DNS 模块并看到了与dns_get_record().

0 投票
2 回答
4589 浏览

authentication - SOA 服务设计/认证

我对 SOA 比较陌生,因此在进行试验。

目前,对我造成最大问题的部分是身份验证,我目前的想法涉及以下内容:

客户端向身份验证/用户服务发送某种身份验证消息,该服务查询数据库,如果找到用户并且密码有效,它将使用会话 ID 进行响应,该 ID 将用于所有进一步的请求这个客户。

这对我来说似乎相当不错,但我不知道应该如何处理对其他服务的请求,我想到了三种不同的方法。

  1. 每个服务都会询问身份验证服务会话是否有效,如果有效,用户所在的角色。身份验证服务会在数据库中查找并做出相应的回复。

  2. 身份验证服务将所有会话信息保存在 ram 中,并在没有 db 往返请求的情况下进行响应。

  3. 身份验证服务向 esb 发送授权消息,esb 将此授权消息转发给每个服务,并且这些服务将其缓存。不再需要对身份验证服务的进一步请求。如果用户注销或他的角色发生变化,另一条消息将被发送并由所有服务处理。

我认为第一种方法对身份验证服务/数据库造成了太大的压力,但实施起来却最少。

第二个仍然很容易实现,但对身份验证服务的压力几乎保持不变。

第三个实现起来稍微复杂一些,但会减少响应时间,因为不会发生对身份验证服务的访问。但是,如果会话信息过多,这种方法就会失败,并且很难提供可扩展性。

0 投票
4 回答
6155 浏览

soa - Sugar CRM SOAP get_entry_list

我有 sugarcrm 实例,并想使用自定义 php 代码从中获取一些数据。

我为此使用 nusoap 客户端。我能够获取数据,但只想选择特定 id(record) 的数据。我正在做的是

但我没有得到任何结果。我的代码有问题吗???

0 投票
3 回答
501 浏览

.net - 是否应该使用 SOA 实现远程 UI?

以前我们有桌面应用程序,但考虑到客户端不希望访问服务器(物理或远程)这一事实,我们将它们变成了将在(理论上)24/7 运行的Windows 服务。

现在我们需要为该服务提供一个远程用户界面,以保留旧功能和旧界面。

为此,我们已经考虑过使用 WCF 开发几个 SOA 服务。我们将有一个服务用于配置,另一个服务用于例如网络信息、统计等,以便所有服务的总和提供与旧接口相同的功能,但分为不同的功能区域。

我在 SOA 方面没有太多经验,所以这种设计是否正确?SOA 是否适合远程 UI?应该只有一项服务还是应该有逻辑组?

注意:我们有几个应用程序可以访问服务的某些部分信息,这就是我们进行逻辑划分的原因。

编辑:对谁可以连接以及早期可以访问的内容实施任何安全措施是否值得?我有点看到它带有一个很大的 YAGNI 警告,但也许我错了。

我对有关如何实现远程 UI、现有框架、最佳方法、使用 SOA 的优缺点等的各种建议感兴趣

0 投票
6 回答
330 浏览

database - (Web) 服务依赖问题

假设我们有一个简单的电子商务系统,有两个独立的系统:库存管理系统 (IMS) 和订单管理系统 (OMS)。假设 IMS 提供有关库存的信息(getItem、getItemQuantities 等),而 OMS 提供订购服务(startOrder、addItemToOrder、finalizeOrder 等)

这两个系统使用不同的后端实现为 Web 服务。在 OMS 中,假设一个简单的模型,如:

在 IMS 中,假设模型如下:

您可以轻松找出一个简单的数据库表结构来实现上述内容。

作为一个用例,考虑客户向订单添加商品。此请求需要 OMS 进行多次服务/数据库调用:

  1. orderId 的验证(可选,可以将此责任传递给数据库)。
  2. 调用 IMS 以验证传入的 itemId 是否存在(由于 diff DB 而需要)
  3. 调用 IMS 以根据传入的数量验证库存(由于 diff DB 而需要)
  4. 将新记录插入表中(必需)

从性能的角度来看,这有意义吗?你能想出更好的方法吗?


[编辑]:作为后续,在用户向 OMS 询问订单详细信息的情况下,它只能返回 orderId,以及每个包含 itemId、数量和 subTotal 的 orderLineItem 列表。客户实际上也想要项目的名称和描述。是否有责任(通过 IMS)向客户检索名称/描述,还是由 OMS 负责?

0 投票
1 回答
495 浏览

wcf - 您如何将 QoS 与 WCF 关联?

在 SOA(Service Oriented Architecture)中,服务组合通常在组合阶​​段考虑 QoS 或服务质量。如果我要创建基于 WCF 的 SOA,我将如何在 WCF 上下文中获得 QoS?