我为科学论文研究SOA和Web服务。我的知识状态是,每个SOA架构都需要服务代理。
Webservices是SOA的具体实现,所以他们有……
不要因为维基百科的复制粘贴的答案欺骗你:-)
Web服务是SOA的具体实现
这个假设/陈述是 的 错误 强> 。至少SOA和Web服务之间没有直接关系。 SOA是一种架构范例,其中Web服务是基于WSDL的具体技术(堆栈)及其结果,即SOAP协议。而已。 Web服务可能有助于建立松散耦合的服务环境,这是SOA范例所期望的。但您也可以与其他技术堆栈(自编黑客,RMI,甚至基于REST)建立SOA环境。
的 知识库 强>
问题是:当您开始构建SOA环境时,您(或其他人)将编写服务(即Web服务),其中您的服务将具有技术合同(WSDL,WADL,...)作为实现的基础。您的客户会要求它,您希望它存储在某个地方。这个地方通常是一个服务存储库。您可以开发自己的,使用UDDI标准或只购买大型供应商(IBM,TIBCO,Oracle等)的产品之一。
的 经纪人 强>
SOA上下文中的消息代理是某个软件,它支持连接的伙伴系统的分离。通常它叫做ESB(企业服务总线)。 SOA范例的目标之一是,任何人都可以使用这些服务(可重用性)。因此,您不希望通过P2P连接(也称为意大利面条架构)连接您的服务 - 想象一下,其中一个服务参与者更改了它的硬件/ IP:这对所有连接的合作伙伴系统来说都是一场噩梦。这就是发明ESB的原因,它在服务消费者和服务提供者之间起作用。 通常,这些ESB产品支持许多技术或-stacks / API,如HTTP,JMS,REST等。
资料来源:我长期以来为一家大公司提供自称SOA环境和成千上万种不同的(网络)服务。
Web服务是一组相关的应用程序函数,可以通过Internet以编程方式调用。企业可以动态地混合和匹配Web服务,以最少的编程执行复杂的事务。 Web服务允许世界各地的买家和卖家相互发现,动态连接,并以最少的人工交互实时执行交易。
Web服务是独立的,自描述的模块化应用程序,可以在Web上发布,定位和调用。
Web服务体系结构中的网络组件可以播放一个或 更基本的角色:服务提供商,服务经纪人和服务 客户。
服务经纪人注册并对已发布的服务进行分类并提供搜索服务。例如,UDDI充当WSDL描述的Web服务的服务代理。