服务事务
1、事务的基本概念
事务是一系列操作的集合,这些操作才逻辑上构成一个执行单元,其构成的操作或者全部执行或者全部不执行。因此,只有构成事务的所有操作都成功执行才意味着事务的成功执行,否则,事务的执行失败,系统还原到事务执行前的状态。
(1)原子事务模型,具有以下属性
a. 原子性(Atomic):事务包含的操作要么全部成功,要么一个也不发生;
b. 一致性(Consistency):事务完成时应处于有效状态,即与客观事实相符的状态;
c. 隔离性(Isolation):事务执行过程中事务的内部状态产生的临时结果在事务外部可见;
d. 持久性(Durability):一旦事务成功完成,则对系统状态的改变是持久的,不受将来可能出现的错误的影响。如下图所示
(2)基于补偿的事物模型,放宽了原子事务的原子性和隔离性的要求,允许事务中操作改变系统的状态,而在事务失败时采取补偿状态,以将系统恢复到有效状态。如下图所示
2、WEB服务事务
由于WEB服务所处的分布式松耦合环境,对WEB服务事务提出两点要求:
(1) 需要同时支持原子事务和基于补偿的事务
(2) 需要同时支持集中式事务管理和分布式事务管理
服务安全
1、分布式应用安全框架的基本要求
a. 标识(identification):识别系统访问者的身份
b. 认证(authentication):认证系统访问者标识的有效性
c. 授权(authorization):系统访问者只能访问系统中被授权的特定操作和资源
d. 机密性(confidentiality):消息在发送者和接收者之间传输时不能被第三方窃听
e. 完整性(integrity):消息在传输过程中要保持完整,不能被非法篡改
2、WEB服务安全性需求和规范
a. 认证和授权:通过在SOAP消息头中包含认证和授权信息实现。有SAML(Security Assertions Markup Language)和XACML(XML Access Control Markup Language)规范。
b. 机密性:通过XML-Encryption规范实现。
c. 完整性:通过XML-Signature规范实现。
WEB服务安全性不仅要求在传输层实现点到点的安全,而且需要在消息层实现端到端的安全,原因是:
a.传输层安全只能实现点到点的安全,无法保证消息从发送者到接受者的全程安全。
b.WEB服务应用通常仅需要对SOAP消息中的敏感信息进行加密,而传输层安全机制把整个SOAP消息作为负载进行加密。
因此,在WEB服务的安全机制中,使用SSL/TLS、IPSec等规范实现传输层安全的同时,通过WS-Security规范来实现WEB服务消息层端到端的安全。即,WS-Security定义了如何通过扩展SOAP协议,在SOAP消息头中包含认证、权限、签名等安全信息,以及利用XML-Encryption进行SOAP消息加密。
3、WEB服务安全语言:WS-Security
一种扩展SOAP,用以描述WEB服务消息的各种安全特征的语言。如使用WS-Security,在SOAP消息中增加用户名、密码、安全证书和签名信息,以及对消息进行加密。