新兴且流行的数据即平台 (Data-as-a-platform)Hadoop 与一定程度上失宠的 SOA 的联姻,可能么?Joe McKendrick 在其最新的博文中称,此结合非常有益,尤其对 SOA,因为数据即平台可以极大程度上简化数据整合:
Hadoop 支持的数据即平台,解决了 SOA 执行者们多年来关注的问题。正如 Akred 总结,多年来,许多企业一直尝试理清点对点数据集成带来的意大利面状越发复杂的架构。“他们已经到了应该引入新产品、应该改变的时候了,他们不得不面对 30 个不同的系统”,他说,“它对于企业的市场地位及其应对市场变化作出调整并赢得成功,都会产生切实的影响。”
因此,他推荐的解决方案是使用 Hadoop 作为跨平台数据存储:
若在应用周围组织数据,增加新应用时就会很难处理。与此不同,数据即服务的方法将数据当作跨企业资源来维护。
Akred 在"Hadoop Tuesdays"上的演讲将 Hadoop 引入 SOA:
我们使用数据基础设施层,使用 Hadoop 作数据存储,使用现有企业系统赋予数据有价值的上下文,并在数据层整合它们。然后,消费者应用通过面向服务的数据访问模式对这一集成的数据平台进行抽象。所以,我们向企业以服务的形式暴露企业数据平台,而不是直接提供服务查询功能。
这些建议听起来很好,但是它非常依赖于一个假设,即 Hadoop 可用作企业应用的数据存储。可是 Hadoop 从来就不是为此而设计的——它不是企业应用通常面对的具有 ACID 属性的数据库。即便 HBase 常常被称为数据库,可是该数据库也不是给企业应用用的。
Hadoop 在企业中扮演着重要的角色,它提供大数据量的存储和处理,但是说到高流量数据访问时,其目的绝不是要替代数据库。
这并不意味着 SOA 原则不能应用于 Hadoop 的解决方案中。单个 Map Reduce 任务和它们(通过 Oozie)的组合是应该暴露成服务的,而且可用于业务流程,但是他们是功能性服务,而不是纯粹的数据服务。
所以,Hadoop 和 SOA 能够和谐相处,但不应该以 McKendrick 的博客中所描述的那样。
评论