1.1.4 SCA与JBI
目前SOA标准之争中主要就是SCA和JBI两个体系。SCA(Service Component Architecture,服务构件架构)提供了一种编程模型,可以支持基于SOA的应用程序实现。SCA支持实现服务构件的各种技术,绑定访问构件的各种协议。构件可以用不同的编程语言来实现。
SCA体系主要是SCA和SDO两个规范。SCA规范包括了装配模型和客户端模型两部分,前者约定了如何将异种构件装配并发布成服务;后者则约定如何在异种语言环境中调用服务,从而解决服务从服务端到客户端的跨语言、跨环境的问题。SDO(Service Data Objects,服务数据对象)统一和简化了应用程序处理数据的方式,有了SDO后,应用编程人员就可以用一致的方法操作异构数据源,包括关系型数据库、XML数据源、Web Services和企业信息系统。
JBI体系主要是JBI和JDO两个规范。JBI(Java Business Integration,Java业务集成)定义了一个标准的体系结构允许第三方的构件插入到标准的基础设施上。从高层次上看,JBI定义了可以从可插入构件构建集成系统的体系结构,这一结构中构件的交互使用一种经过中介的消息交换机制,而这一消息交换模式是基于WSDL 2.0或WSDL 1.1的。JDO(Java Database Objects,Java数据对象)定义了持久保存类与JDO运行时环境之间的关系。
SCA/SDO定义了与具体技术无关的服务构件组装模型及服务间访问的数据结构表示方式,由于技术无关性及众多厂商的参与,他们得到了众多厂商的支持,也有开源的实现,如Tuscany。而JBI/JDO,它们都是基于Java的技术, JBI更多像服务总线的Java标准定义,偏向于定义服务间的通信和组装模式,而JDO是基于Java的数据对象表示,因此它们使用的范围受到限制,当前支持的主流厂家也不多,但是开源的实现相对还是比较多的,如ServiceMix。
鉴于此,本书后续内容的研发重点也就在SCA体系了,不过其内容远不止SCA和SDO这么简单,因为SOA中间件软件体现的是集成理念、SCA定义的是与具体技术无关的服务构件,所以它必然要涉及许多相关的开发语言、协议、构件装配方法方面的内容。
目标确定了,接下来一起来搭建起开发环境,熟悉开发工具吧。