【问题标题】:has every webservice a service broker?每个网络服务都有服务代理吗?
【发布时间】:2015-05-28 09:27:08
【问题描述】:

我为一篇科学论文学习 SOA 和 Web 服务。我的知识状态是,每个 SOA 架构都需要一个服务代理。

Web 服务是 SOA 的具体实现,那么它们之后有服务代理吗?例如,我在 asp.net 中创建了一个 web 服务,它通过创建它返回“你好世界”,我是否也创建了一个服务代理?

【问题讨论】:

  • 我认为服务代理没有标准定义。什么叫服务经纪人?
  • 我认为它是一个注册 web 服务的注册表

标签: asp.net web-services soa


【解决方案1】:

不要被来自维基百科的复制粘贴答案欺骗你:-)

Web 服务是 SOA 的具体实现

这个假设/陈述是错误的。至少 SOA 和 Web 服务之间没有直接关系。 SOA 是一种架构范式,其中 Web 服务是基于 WSDL 及其结果 SOAP 协议的具体技术(堆栈)。而已。 Web 服务可能有助于建立 SOA 范式所期望的松散耦合的服务环境。但是您也可以使用其他技术堆栈(例如,自写的 hack、RMI,甚至基于 REST)构建 SOA 环境。

存储库

问题是:当您开始构建 SOA 架构时,您(或其他人)将对服务(即 Web 服务)进行编码,其中您的服务将具有技术合同(WSDL、WADL ......)作为基础执行。您的客户会要求它,而您希望它存储在某个地方。这通常是一个服务存储库。您可以开发自己的产品、使用 UDDI 标准或购买大型供应商(IBM、TIBCO、Oracle 等)的产品之一。

经纪人

SOA 上下文中的消息代理是一些软件,它支持连接的合作伙伴系统的解耦。通常称为 ESB(企业服务总线)。 SOA 范式的目标之一是任何人都可以使用服务(可重用性)。因此,您不想通过 P2P 连接(又名意大利面条架构)连接您的服务 - 只需想象其中一个服务参与者更改它的硬件/IP:这对于所有连接的合作伙伴系统来说都是一场噩梦。这就是发明 ESB 的原因,它在服务消费者和服务提供者之间起作用。 通常,这些 ESB 产品支持许多技术或堆栈/API,例如 HTTP、JMS、REST 等。

资料来源:很长一段时间以来,我一直在为一家大公司使用自称的 SOA 环境和数千种不同的(网络)服务。

【讨论】:

  • 嘿 Aydin,我能在这个场合问你,RPC 与 SOA 和 REST 有什么关系? RPC 是自己实现 WebService 的机会,还是 SOA 和 REST 建立在 RPC 之上?
  • 嘿史蒂夫,说实话我很难回答这个问题,因为术语“RPC”有很多不同的含义,具体取决于上下文(XML-RPC VS SOAP,RPC 与 Document- WSDL 中的风格,RPC 与面向消息的架构——即 JMS 驱动的)。 RPC 的定义仅意味着您在远程接口上调用方法/操作,因此与该特定接口紧密耦合。但它的真正定义取决于上下文。关于 REST 与 (JSON-)RPC 在这里查看投票最多的答案:stackoverflow.com/questions/15056878/rest-vs-json-rpc
【解决方案2】:

Web 服务是一组相关的应用程序功能,可以通过 Internet 以编程方式调用。企业可以动态混合和匹配 Web 服务,以通过最少的编程来执行复杂的事务。 Web 服务允许世界各地的买家和卖家相互发现、动态连接并以最少的人工交互实时执行交易。

Web 服务是自包含、自描述的模块化应用程序,可以在 Web 上发布、定位和调用。

Web 服务架构中的网络组件可以播放一个或 更基础的角色:服务提供者、服务代理和服务 客户。

服务代理注册和分类发布的服务并提供搜索服务。例如,UDDI 充当 WSDL 描述的 Web 服务的服务代理。

【讨论】:

  • 我知道什么是 Web 服务,但我没有得到服务代理的图片。我是那种边做边学的人。在过去的几周里,我编写了大约 20 个 Web 服务,但我没有在服务代理处注册任何人。这就是我问这个问题的原因。
猜你喜欢
  • 2011-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多