SOA是一种 粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通信,不涉及底层编程接口和通信模型。
在SOA中, 服务是一种为了满足某项业务需求的操作、规则等的逻辑组合,它包含一系列有序活动的交互,为实现用户目标提供支持。
SOA并不仅仅是一种开发方法,还具有管理上的优点,管理员可直接管理开发人员所构建的相同服务。 多个服务通过企业服务总线(ESB)提出服务请求,由应用管理来进行处理
关键目标
实施SOA的关键目标是实现企业IT资产重用的最大化
在实施SOA过程中要牢记以下特征:
可从企业外部访问、随时可用(服务请求能被及时响应)、粗粒度接口(粗粒度提供一项特定的业务功能,而细粒度服务代表了技术构件方法)、服务分级、松散耦合(服务提供者和服务使用者分离)、可重用的服务及服务接口设计管理、标准化的接口(WSDL、SOAP、XML是核心)、支持各种消息模式、精确定义的服务接口。
从基于对象到基于构件再到基于服务,架构越来越松散耦合,粒度越来越粗,接口越来越标准。
基于服务的构件与传统构件的区别有四点:
- 服务构件粗粒度,传统构件细粒度居多;
- 服务构件的接口是标准的,主要是WSDL接口,而传统构件常以具体API形式出现;
- 服务构件的实现与语言是无关的,而传统构件常绑定某种特定的语言;
- 服务构件可以通过构件容器提供QoS的服务,而传统构件完全由程序代码直接控制。
关键技术
SOA中应用的关键技术如下表