自治应用程序的体系结构
2007-02-23 12:21:12 来源:WEB开发网fiefdom 保存、管理、监视和保护它的主要资源 — 数据。fiefdom 的数据可以保存在不同类型的数据源中,但在大多数情况下,结构化数据保存在关系数据库中,例如 Microsoft SQL Server。fiefdom 从不允许任何人或任何工具从 fiefdom 外部直接获得其数据。fiefdom 可能允许它外界的某些人访问其数据,甚至以这些人的名义进行操作,但只有该 fiefdom 才能直接访问。
fiefdom 不允许外部程序对其任何数据进行加锁。因此,您必须考虑的是使 fiefdom 成为快照的所有数据,而不是实际内容。对于大多数实际用途,当前数据只存在于 fiefdom 内部。您不能期望从 fiefdom 接收到的数据是当前数据,更别说是接收那一刻的数据。fiefdom 内部一些事务可能在您接收到该快照之前已经更改了其数据源中的数据。
大多数 fiefdom 仍坚持管理它们自己的事务。fiefdom 不应该允许外部程序控制在 fiefdom 内运行的事务或部分事务。然而,fiefdom 可以公开服务来管理受外部方控制和协调的部分事务,只要这部分事务是补偿事务。fiefdom 独立控制这部分事务,但是将它作为提供给客户端的服务,这就是事务协调器。
补偿事务的一个例子是遵守 Web 服务事务规范第二部分:业务活动 (BA) 的事务。这样的事务有两个不同的方案。标准方案执行由事务指定的操作。补偿方案执行另一组操作,其作用是删除 fiefdom 中已完成事务的影响。补偿方案由本身可能为另一个 fiefdom 的事务协调器调用。调用补偿方案的情况是 fiefdom 已经完成了它的部分事务,但后来协调器发现事务的其他部分执行失败。在这种情况下,必须消除 fiefdom 运行并完成的部分事务所造成的影响,即使它不能回滚。对记录所加的锁已经释放,而其他事务可能已经改变其状态。补偿方案会消除这些影响。
更多精彩
赞助商链接