SOA与ESB
SOA是一组用于服务开发和集成的体系结构概念。服务是通过web提供的一个公开的功能包。ESB是一种基础设施软件,它提供了一种软件体系结构,用于为复杂体系结构提供基本服务。ESB可以作为实现SOA的平台。
什么是SOA?
SOA(面向服务的体系结构)是一组用于服务开发和集成的体系结构概念。SOA处理的是分布式计算,其中用户使用一组可互操作的服务。多个消费者可以使用一个服务,反之亦然。因此,SOA通常用于集成使用不同平台的多个应用程序。为了使SOA能够正常运行,服务应该与操作系统和底层应用程序的技术松耦合。SOA开发人员使用功能单元创建服务,并使其在internet上可用。Web服务可用于实现SOA架构。在这种情况下,web服务成为可通过internet访问的SOA功能单元。任何人都可以使用Web服务,而不必担心用于开发它们的平台或编程语言。SOA是直接建立在面向服务的原则之上的,它讨论具有简单接口的服务,用户可以独立地访问这些服务,而不必担心服务的实际平台实现。
什么是ESB?
ESB(enterpriseservicebus)是一种基础设施软件,它提供了一种软件体系结构,用于为复杂体系结构提供基本服务。对于ESB产品或是一个软件产品,甚至是一个架构风格的产品,都有相当大的争议。它通过事件驱动和基于标准的消息传递引擎(实际上是服务总线)提供服务。在这个消息传递引擎之上,提供了一个抽象层,允许架构师使用总线提供的功能,而无需编写任何实际的代码。ESB通常通过基于标准的中间件基础设施来实现。
在ESB中使用术语“总线”是因为ESB确实提供了与物理计算机总线非常相似的功能,但是在更高的抽象级别上。拥有ESB的一个主要优点是能够减少接触点的数量;因此,使适应变化变得更容易。ESB可以作为实现SOA的平台。转换/路由(流相关)的概念可以由ESB引入SOA。此外,通过证明端点的抽象(在SOA中),ESB促进了服务之间的松耦合。
SOA和ESB的区别是什么?