论文部分内容阅读
云计算是近几年最为火热的技术之一,它通过使计算分布在大量的计算机上,搭建分布式计算系统,将计算和存储等资源分配到有需求的应用上,使得计算能力也可以作为一种如煤气、水电一样的商品进行流通。其潜在的商业价值让各大企业趋之若鹜。然而其虚拟化、异构的基础设施等特点,给应用访问数据源(企业数据中心、数据库等)带来了巨大的困难。为此在云计算系统中,数据服务层主要需要解决两个问题:1、向上为应用提供统一的数据访问接口;2、向下对底层异构数据源进行访问封装。这也是本课题所属项目BI-PaaS(Business Intelligence and Platform as a Service)的数据访问层需要解决的两个重要问题。本文论述课题是BI-PaaS项目的数据访问层部分,BI-PaaS是某研究院云计算项目的一个子项目。它建立在云计算基础设施之上,是以工作流为集成机制的一个商务智能信息分析平台。数据访问层作为BI-PaaS的数据服务接口,最重要的目标就是解决以上的两个问题:1、向上为应用提供统一的数据访问接口;2、向下进行异构数据源的访问封装。另一方面,由于大部分BI应用使用HDFS (Hadoop Distribute File System)作为数据存储的数据源,因此数据访问层还有一个重要的目标就是需要支持HDFS作为底层数据源之一。通过工程实践的方式,本文对异构数据源的访问封装进行了研究。首先根据项目需求,分析并研究了主流JAVA对象持久化技术,对比各种技术的优缺点,并着重研究了JDO(JAVA Data Object)规范,选择JDO作为数据访问层的技术方案。然后结合项目需求和JDO规范,参考一些类似的JDO产品开源软件如datanucleus,设计自身的数据访问层,描述了重要模块的功能特点。接着,此基础之上实现对HDFS的访问封装,设计对象在HDFS上的存储方案,并编写相应的存储适配器嵌入系统,使得通过JDOAPI能够将JAVA对象直接存储到HDFS并取出,为各种BI应用提供HDFS数据源。然后对数据访问层及HDFS访问模块进行了测试,验证其符合BI-PaaS对数据访问层的要求,以及通过JDO API对HDFS进行对象存取访问的可行性。最后总结了本文所有的工作,提出了存在的相关问题,并对本课题可能的改善和下一步工作方向进行了展望。