SCA
在xml中composite是SCA定义的最小部署单位。每个xml文件的根元素必须为composite,在composite下可以有多个component及service标签
Component
通过implementation定义和已有系统的集成,提供多种实现集成的支持:Spring、Java、C等。Service子标签表明当前component对外提供了什么service;reference子标签表明当前component引用了什么service
service
service代表了对外提供服务的描述,包含了name、promote、requires和policySets四个属性。其中promote属性指定了提供此服务的component。
Interface子标签可定义对外提供的接口。支持三种方式对外提供接口:java语言方式的接口、 WSDL1.1以及WSDL2.0方式。可将interface标签写为interface.Java或interface.wsdl,Java方式的情况还支持callbackInterface属性。
binding标签来指定服务发布的方式,SCA默认支持的方式有SCA、WebService以及JMS三种,如不指定则以服务的实现方式来决定。
从service标签来看,在采用SCA的情况下,可以很方便地将各种方式实现的功能以多种方式对外提供,对系统的侵入非常小。
SCA标准默认提供的通信方式为SCA、WebService和JMS三种。SCA方式是指由框加来选择采用相应的通信方式,需要调用的服务在同一JVM中,则会自动切换为本地调用,如在不同JVM中,则采用Webservice或JMS等方式;WebService的实现为HTTP方式;JMS则可用多种方式来实现:TCP/IP、HTTP等。
SCA提供了清晰的发布服务、调用服务及无缝和现有应用集成的支持。在调试、跟踪的支持上SCA标准没有明确的定义;依赖管理方面也没有明确的定义;高性能及高可用这两点不好在标准中进行定义。
ESB
ESB只是一个概念,核心思想基于消息中间件来实现系统间的交互。基于消息中间件所构建的系统交互的中间场所称为总线,系统间交互的数据格式采用统一的消息格式,由总线完成消息的转化、路由、发送到相应的目标应用。
ESB五要素:
标准的消息通信格式
使各个系统保持同样的方式与总线通信
消息路由
消息路由是指当总线接到消息后,根据消息中的数据来决定需要调用的系统。当多个系统相互调用时,可以总线上以流程的方式编排访问的顺序。如根据A系统返回的结果决定是访问B系统还是C系统。
支持多种消息交互类型
消息交互要支持请求、响应和发布、订阅等方式,请求、响应方便实现同步请求,发布、订阅方便实现异步消息广播。
支持多种网络协议
多个系统进行交互,通常支持多种网络协议,如TCP/IP、UDP/IP、HTTP等
支持多种数据格式并能相互转换
各系统发送消息至总线,由总线将消息转发,各系统中的数据格式总线要支持转换。