简述SCA及SCA和SOA的关系

java分享会

分享人:北京分院 胡凯博

1.背景介绍

2.知识剖析

3.解决方案

4.编码实战

5.更多讨论

1.背景介绍

SCA规范
SCA全称Service Component Architecture,即服务组件框架。它由BEA、IBM、Oracle等知名中间件厂商联合制定的一套符合SOA思想的规范。 SCA在2005年11月,发布了0.9版本的规范,其中包括了组装模型规范,Java/C++客户端以及其实现规范。2006年4月,整个SCA规范有了很大的改进,推出了对应的0.95版本。2007年3月,SCA的1.0版本终于发布。 Task9的tuscany就是SCA规范的实现。

SOA架构
面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。

2.SCA的实现

SCA致力于解决软件应用的两个问题:复杂性和重用性。

SCA提供了构建分布式系统的简单模型 其次,SCA通过composite,component和服务的方式来实现应用程序资源和业务逻辑的重用。
而且SCA它作为一种编程规范,与具体的语言和平台无关。它既可以运行于统一操作系统的不同进程,也可以跨越不同机器上的多个进程。 而且SCA作为一种规范,需要与其他企业架构结合使用,比如它没有定义持久层和表现层的机制,它可以和JDBC,jsp等技术结合使用

Task9中的Tuscany就是apache提供的一个实现了SCA规范/编程模型的开源项目,为java sca提供了其运行环境.

SCA中有几个基本元素:
component:实现功能的单元
service:组件通过服务的方式对外提供服务
composite:用于描述如何连接组件和服务

2.SOA的具体实现

由于SOA的架构实现不依赖于技术和平台,所以能够被各种不同的技术实现。
比如:RPC,REST,Web Service,java RMI等等

RPC协议:

RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。

它和java RMI的区别是RPC协议是跨语言的,是一种略微底层的传输协议。而java RMI只支持java,而且RMI支持对java对象的传输。RPC的消息传输由一种叫XDR的语言表示,它抽象了不同语言数据类型的差异,因此可以跨平台。
总的来说,java RMI可以看作java版本的rpc协议。

Java RMI协议:

之前说RMI和RPC差不多,两者在根本上都是基于tcp协议来传输数据的。java RMI在java1.1版本就提供了,它是在tcp协议上传递可序列化的java对象,只能用在java虚拟机上,绑定语言,客户端和服务端都必须是java

web service协议:

webservice是一种标准,他可以通过soap或rest的方式来实现。 传统的soap-webservice,使用了soap协议(基于xml包装)等。如果使用restful-webservice的话,则不需要soap与之相关的协议等,而是通过最简单的 http 协议传输数据 ( 包括 xml 或 json) 。既简化了设计,也减少了网络传输量(因为只传输代表数据的 xml 或 json ,没有额外的 xml 包装)。
(soap协议:一种严格定义的简单对象访问协议)

REST:

REST(Representational State Transfer)一种轻量级的Web Service架构,可以完全通过HTTP协议实现。我们在Task2里的restful风格就是REST的实现,通过HTTP协议提供GET、POST、PUT和DELETE方法获取参数,吞吐标准数据格式(一般是json)

4.编码实战

5.更多讨论

相关文档:http://blog.csdn.net/pcceo1/article/details/51245249/p>
http://blog.csdn.net/tantexian/article/details/48196453

鸣谢

感谢观看,如有出错,恳请指正

BY : 北京分院 胡凯博