background image

  

SOA 是英文 Service—oriented Architecture,即面向服务构架的缩写。本质

上说

SOA 体现的是一种新的系统构架,在基于 SOA 架构的系统中,具体应用程序的

 

功能是由一些松耦 合并具有同一接口方式的组件

(也就是 Service)组合构建起来的。

 

  

SOA 服务具有平台独立的自我描述 XML 文档。Web 服务描述语言 

(WSDL,Web Services Description Language)是用于描述服务的标准语言。 
SOA 服务用消息进行通信,该消息通常使用 XML Schema 来定义(也叫做
XSD,XML Schema Definition)。SOA 基于标准化传输方式(HTTP 和 JMS),采用
标准化协议

(SOAP)进行调用。在一个企业内部,SOA

 

服务通过一个扮演 目录列表

(directory listing)角色的登记处(Registry)来进行维护。应用程序在登记处
(Registry)

 

寻找并调用某项服务。统一描述、定义和集成

(UDDI  

Universal 

Description  

Definition  

and Integration)是服务登记的标准。简言之,SOA 具

有以下三大基本特征:

 

  

(1)独立的功能实体。在 Internet

 

这样松散的 使用环境中,任何访问请求都有可

能出错,因此任何企图通过

Internet 进行控制的结构都会面临严重的稳定性问题。传

统的组件技术,如

.NET Remoting,EJB,COM 或者 CORBA,都需要有一个宿主

(Host 或者 Server)

 

来存放和管理这些功能实体。当宿主本身或者其他功能部分 出现

问题的时候,在该宿主上运行的其它应用服务就会受到影响。

SOA 非常强调架构中提

 

供服务的功能实体的完全独立自主的能力。常见的用来进行自我恢复的技 术,比如事

务处理

(Transaction),消息队列(Message Queue),冗余部署(Redundant 

Deployment)和集群系统(Cluster)在 SOA 中都起到至关重要的作用。

 

  

(2)大数据量低频率访问。对于.NET Remoting,EJB 或者 XML-RPC 这些传统的

分布式计算模型而言,他们的服务提供都是通过函数调用的方式进行的,一个功能的

 

完成往往需要通过客 户端和服务器来回很多次函数调用才能完成。在

Internet 的环境

下,这些调用给系统的响应速度和稳定性带来较大的影响。针对这一问题,

SOA 系统

 

推荐 采用大数据量的方式一次性进行信息交换。

 

  

(3)基于文本的消息传递。在 COM、CORBA 这些传统的组件模型中,从服务器端

 

传往客户端的是一 个二进制编码的对象,在客户端通过调用这个对象的方法来完成某

些功能。但是在

Internet 环境下,不同语言,不同平台对数据、甚至是一些基本数据

 

类型 定义不同,给不同的服务之间传递对象带来的很大困难。

Internet 中大量异构系