APP下载

基于Google云计算平台的文件共享系统设计与实现

2014-04-29林清滢冯健文陆锡聪

计算机时代 2014年7期
关键词:文件共享云计算

林清滢 冯健文 陆锡聪

摘 要: 文件的存储、管理以及随时读取是众多现代企业的基本要求。分析了 Google App Engine开发技术;提出了基于Google云计算平台的文件共享系统的设计方案;通过对Google App Engine开发环境的部署,实现了文件共享系统。

关键词: Google App Engine; 云计算; 文件存储; 文件共享

中图分类号:TP311.5 文献标志码:A 文章编号:1006-8228(2014)07-23-03

Abstract: Storage, management, and readout have become the basic requirements of modern enterprises. The Google App Engine development technology is analyzed. The design scheme of the file sharing system is presented based on Google cloud platform. Through the deployment of Google App Engine development environment, file sharing system is realized.

Key words: Google App Engine; cloud computing; file storing; file sharing

0 引言

随着信息技术的高速发展,人们越来越多地使用计算机进行日常办公,越来越多的文件从纸张变成了存储在计算机中的数据。随着时间的推移,不但数量与规模不断增长,同时也有越来越多的业务需要使用这些文件。存储、管理以及随时读取这些文件是现代很多企业的基本要求[1]。云计算作为一种新兴的共享基础架构,能把巨大的计算资源和存储资源连接在一起,为用户提供强大的信息、服务。

Google公司是目前最大的云计算服务提供商,从云计算服务的分类来看,其推出的Google App Engine(GAE)属于云计算体系中的 PaaS(Platform as a Service,平台即服务)层,主要是向用户提供一个有限免费的“运行时环境”云计算平台,允许用户将应用系统“寄存”在Google的服务器上,并充分利用Google基础架构提供的云计算能力[2]。通过使用GAE,开发人员可以在Google的服务器上运行和维护应用程序,而应用程序可根据访问量和数据存储需要的增长轻松地进行扩展。GAE包括分布式处理技术MapReduce、分布式文件系统GFS(Google File System)和分布式数据库BigTable,这三大部分构成了在Google云平台上实现云计算服务的基础[3-4]。

1 系统的设计

1.1 系统架构设计

用户通过客户端访问文件共享系统,系统将文件存储在Google云计算平台的GFS文件系统中,文件及用户信息存储在云计算平台数据库BigTable中,如图1所示。

系统采用B/S三层结构(表示层、业务逻辑层、数据持久层)的设计模式。系统设计时,客户端采用JSP,CSS设计页面,同时内嵌JavaScript;在业务逻辑方面采用比较成熟的J2EE框架进行设计,实现了可扩展性,有较好的封装性等面向对象设计特征;在数据方面,GAE平台采用分布式对象数据库,因此传统的关系型数据库无法直接使用,必须把关系型数据库中的表映射成云平台下的持久化对象,并产生XML数据文件,然后采用JDO或JPA技术将数据存储到分布式数据库Bigtable中,在系统中我们采用JPA技术实现数据持久化。

1.2 系统功能模块设计

该系统按功能分为以下几个部分。

⑴ 用户管理模块:对个人的信息管理,以及对下级用户的权限管理。作为上级用户具有添加/删除下级用户的权限、封闭/解除用户的系统使用权。删除用户时,会删除该用户的文件上传的记录及存储的文件。

⑵ 文件管理模块:包括对文件进行上传、搜索、下载、删除、文件信息管理等一系列操作。文件上传:将文件存入GFS文件系统的操作,并添加文件上传的记录。文件搜索:搜索文件时可按照文件名以及文件上传时设置的关键字、主题搜索,并按照文件分享权限显示文件列表。文件下载:下载文件的操作,添加文件下载的记录。文件删除:删除文件的记录和存储的文件。文件信息管理:对文件分享方式、文件分类、文件名、文件搜索关键字等文件信息的管理。

1.3 持久化数据设计

GAE使用的BigTable数据库,从某种意义上讲它并不是“数据库”,而是称为“数据存储区”(Datastore),Datastore与传统关系型数据库不同,Datastore中存储的数据对象叫做实体(Entity),每个实体都可以拥有一个或多个属性[5]。因此数据库中的每个表都映射为一个实体类,表内的字段代表这个实体类的属性。在系统中我们设计了用户信息、文件信息、用户上传信息、下载信息等四个实体类,其中用户信息表映射为实体类图如图2所示。

2 系统的实现

2.1 GAE云计算平台的搭建和部署

由于GAE支持Java语言,通过GAE的Java运行环境,开发人员可以使用标准Java技术构建应用程序。因此,在Eclipse上搭建Google App Engine平台,可先在本地模拟Google App Engine,调试完善后再将系统部署到GAE云平台上。其具体的环境搭建和部署步骤如下[6]。

⑴ 安装JDK和Eclipse。

⑵ 安装Eclipse Google插件。运行Eclipse之后,在 Help -> Software Updates中获取Google App Engine的插件Google Plugin for Eclipse。

⑶ 安装Google App Engine的SDK。

⑷ 在本地机器上开发、调试系统。

⑸ 申请GAE空间。

⑹ 利用GAE自带的上传工具将系统部署到GAE平台上。

2.2 用户界面的实现

表示层的设计主要由JSP页面、JavaScript脚本和CSS样式表构成。该部分负责处理页面显示,完成系统与用户的交互,当用户验证之后系统将会进入个人信息管理界面,按照权限,进入系统后界面也是不同的,如图3所示。

2.3 数据持久层的实现

3 结束语

基于Google云计算平台的文件共享系统与传统的文件共享系统相比,在存储空间、运行、安全模式等方面都具有无可比拟的优点。系统的设计与实现可充分利用Google的基础架构运行该应用程序,应用程序可根据访问量和数据存储需要的增长自动地进行扩展;而且Google云计算平台针对网络应用程序存在的安全问题,仅提供对基础操作系统的有限访问权限,保证程序运行的安全性。同时,通过使用JPA,可以使代码有统一的数据库编程方式,这样可以方便地使用云数据库。该系统充分利用了云计算技术的特点,可为基于云计算技术的应用开发提供一定的参考。

参考文献:

[1] 徐强,王振江著.云计算应用开发实践[M].机械工业出版社,2012.

[2] BOSS G, MALLADI P, QUAN D, LEGREGNI L, HALL H. Cloudcomputing[EB/OL]. http://download. boulder.ibm.com/ibmdl/pub/software/dw/wes/hipods/Cloud_computing_wp_final_8Oct.pdf.2007-10-8

[3] Eugene Ciurana. Developing with Google App Engine[M].Berkeley:Apress,2009.

[4] Fay Chang,Jeffrey Dean,Sanjay Ghemawat.Bigtable: A Distributed Storage System for Structured Data[J]. ACM Transactions on Computer Systems,2008.26(2):205-218

[5] John Wheeler.使用Bigtable、Blobstore和Google Storage实现GAE存储[EB/OL]. http://www.ibm.com/developerworks/cn/java/j-gaestorage/#listing4,2011.4.11.

[6] Scott Granneman著,李强等译.Google Apps应用完全指南[M].机械工业出版社,2009.

猜你喜欢

文件共享云计算
基于云计算的移动学习平台的设计
实验云:理论教学与实验教学深度融合的助推器
云计算中的存储虚拟化技术应用
一种用于P2P文件共享网络的匿名通信方案
省级气象数据文件共享存储管理系统研究