每个网络服务都有服务代理吗?

has every webservice a service broker?

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

Web 服务是 SOA 的具体实现,那么它们之后有服务代理吗?例如,我在 asp.net 中创建了一个 Web 服务,其中 returns "hallo world" 通过创建它,我是否也创建了一个服务代理?

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

Web 服务是独立的、自描述的模块化应用程序,可以通过 Web 发布、定位和调用。

A network component in a Web Services architecture can play one or more fundamental roles: service provider, service broker, and service client.

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

不要让从维基百科复制粘贴的答案愚弄您:-)

Webservices are concrete implementations of a SOA

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

存储库

事实是:当您开始构建您的 SOA 环境时,您(或其他人)将编码服务(即网络服务),您的服务将以技术合同(WSDL、WADL、..)为基础为实施。您的客户会要求它,而您希望它存储在某个地方。这个地方通常是一个服务存储库。您可以开发自己的产品,使用 UDDI 标准,或者只购买大供应商(IBM、TIBCO、Oracle 等)的产品之一。

经纪人

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

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