数据完整性是任何系统都无法忽视的重要元素之一。在单一的系统和数据库条件下,数据完整很轻松就能实现,但是在分散的多系统中,这种复杂性就会大幅提升。由于分散系统有着多数据库和多应用的特征,因此为了维护数据完整,跨越多数据源之间的操作都需要被正确处理,通常是使用二段式提交协议(2-phase commIT protocol)的方式来实现。
分散系统的复杂性源于各种预置型应用和周边支持应用的混合。这种环境下,并不是所有应用都能得到充分控制,或许某些应用接口并不支持XA。比方说,B2B的集成标准EDI和ebXML就是确保可靠性和数据集成的首选方法。
一旦涉及到SOA和云环境,数据完整性的问题就会被进一步放大。SaaS应用是一种多租户式的应用,由第三方托管,它们一般是通过HTTP协议和基于API的XML来提供功能使用。SOAP和基于Web服务的REST是实施这些API的最常见的方式。同样,在SOA环境下,大部分预置型应用是通过SOAP和REST web服务来提供功能,而其中web服务所面临的最大挑战之一就是交互管理。虽然管理web服务的数据完整性有不少标准,但是这些标准都仍未成熟,同时并非所有的厂商都支持它们。另外,每一种SaaS应用或许有不同等级的可用性和SLA(服务等级协议),这就进一步复杂化操作交互管理和数据完整性。
让我们假设一种情况,即一家公司创建新客户:这家公司使用了2家SaaS厂商,一家提供市场应用,一家提供CRM应用,外加一套预置型ERP应用。当一名新客户下订单时,客户信息需要被发送到市场服务(部署市场活动)、CRM服务(进行客户管理)和ERP应用(进行生产与交货安排)。市场和CRM应用通过HTTP和基于SOAP web服务的API来创建客户信息,而ERP应用则通过数据库API来创建客户信息。以下是这一流程中的操作顺序模拟:
1.通过SOAP web服务在市场应用中创建客户;
2.通过SOAP web服务在CRM中创建客户;
3.通过数据库在ERP中创建客户。
为了维护三种应用中的数据完整性,就要确保以上三种步骤的完全正确。一个合理的方法是重新设计操作顺序,使得每个操作步骤相对独立,成为互不影响的段式操作。这样一来,流程中任何步骤上产生的失败,都不会影响到下一步。在整个流程被完成之前,每个步骤中的错误都能被恢复。尤其是在服务环境中,这种分散的设计最为可靠,也是保持数据完整性的有力保障。或者说,它在带有web服务界面的基于SOA和SaaS的环境下最能发挥出优势。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
事件驱动框架和SOA在空军的应用
空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。
-
云计算税收问题难倒厂商和用户
无论是总统、国会还是议会主导的政府,历来都会寻找各种税收收入的新来源。而云计算,看起来是被放在仔细审查收入的最新领域之一。
-
国内做Saas大的厂商有哪些?
-
传统ERP软件如何SaaS化?