ESB是一种支持SOA实施的技术选择。
JBI是Java领域一种支持SOA实施的技术选择。
SCA是一种支持SOA实施的技术选择。
没有直接关系,目的不一致。
JBI和ESB是互补的。JBI提供一个模型和将集成组件作为服务的标准接口。JBI可以宿主在一个应用程序服务器环境或者在一个ESB容器中。ESB提供了一套基础架构包括了事件驱动的SOA,高度分布的路由目的地命名,企业消息能力和分布管理能力。
【摘录】SCA has a strong model for defining composite applications、Services can be implemented in multiple languages、Can bind interfaces and references to different technologies。
JBI:Defines a standard, loosely coupled, ESB architecture、SE / BC are exchangeable between JBIimplementations、Provides standard abstraction for all JBI components。
融合性:When combining JBI and SCA, all JBI service engines can be used in SCA components, SCA components can be called from JBI, SCA applications can be deployed as service units in a JBI container.
相同点:都是一种规范;都是一种架构;一种编程模式;都定义了模块,服务概念。
不同点:OSGI强调模块的动态性;SCA强调服务的分布性;OSGI来源与单个JVM产品架构的需求;SCA来业务SOA化的技术需求;OSGI更适合产品架构;SCA更适合业务系统架构。
融合性:SCA可以作为Bundle部署到OSGI环境,以增强OSGI环境的业务架构解决能力;OSGI可以作为一个模块部署到SCA环境中,从而利用OSGI环境下的基础通用服务。
相同点:都是SOA的一个可选的技术方案;都基于服务的概念;都是可分布的;都提供插件特性等。
不同点:SCA是一个标准, ESB是一个概念;SCA有模块的概念, ESB没有这个概念;SCA是一个组装车间, ESB是一个中介机构;SCA简单而清晰, ESB复杂而模糊,不同产品特性千差万别