基于云技术的校园服务系统服务器端设计研究

2015-04-07 09:49陈豪谢晓兰
科技视界 2015年9期

陈豪 谢晓兰

【摘 要】云计算是一种基于Internet以服务的方式提供动态可伸缩的虚拟化资源的计算模式,通过这种模式,共享的软硬件资源和信息可以按需分配给计算机和其它设备。本文顺应目前手持智能终端普及的热潮,进一步推进数字校园的建设,实现高校信息共享的移动化。首先,本文对基于Hadoop分布式计算平台的云技术如MapReduce、HDFS、HBase及其开发环境等进行深入的研究。其次,采用Java语言开发基于Hadoop的针对高校学生的校园服务系统的服务器端系统,该系统包括用户和微博信息服务、通用API以及Web管理系统等部分。

【关键词】Java;Hadoop;HBase;API;Eclipse;校园通

0 绪论

(1)背景和意义

目前高校的电子化信息交流基本都是通过个人电脑来实现,为了满足移动时代的需求,提供移动化的交流平台是建设数字化校园的重要手段之一。同时,考虑到高校的实际情况,如何充分利用有限的计算资源将会是一个重点解决问题。Apache软件基金会的顶级项目Hadoop是一个云计算时代下的成熟的分布式框架,允许用户通过由多台低廉计算机组成的集群来进行大数据集的分布式运算处理。研究Hadoop,对于解决高校资源匮乏、提高计算性能等问题有举足轻重的作用。

(2)研究目的和探讨内容

由于本课题是合作课题,本文关注的内容是基于Hadoop技术的服务端的研究和设计,因此本文不会对Android平台方面的内容进行详述,Android是校园服务系统的前端。

本文首先对Hadoop分布式计算框架核心内容及其结构如HBase等作深入的理论探讨和研究。其次,开发实现基于云技术的校园通服务端系统实例。采用Java语言开发基于Struts2框架和Spring框架以及Hadoop框架的针对高校学生用户的校园服务系统的服务端系统,其中包括提供给前端应用调用的应用程序接口API;校园通的后端系统,供网络管理员对系统进行基本的管理,如系统基本设置、内容管理、用户管理等功能。

1 Hadoop技术及架构

1.1 Hadoop体系架构

Hadoop是Apache软件基金会旗下的一个开源分布式计算平台,提供可靠的、可伸缩的分布式计算。Hadoop软件库是一个允许大数据集的分布式运算在计算机集群上运行的框架,它使用了简单的计算模型。Hadoop被设计用于从单节点服务器扩展到数千台可伸缩的计算机来提供本地计算和存储。相对于依赖硬件的高可用性,Hadoop被设计成能够监测和处理应用层的错误,使得集群中的计算机能够提供高可用性的服务,即使它们可能会发生错误。

MapReduce和HDFS是Hadoop的两大核心。而整个Hadoop的体系结构主要是通过HDFS来实现分布式存储的底层支持的,并且它会通过MapReduce来实现分布式并行任务处理的程序支持。

1.1.1 HDFS分布式文件系统

HDFS采用了主从(Master/Slave)结构模型,一个HDFS集群是由一个NameNode和若干个DataNode组成的,并以管理者(NameNode)-工作者(DataNode)模式运行。其中NameNode作为主服务器,负责管理文件系统的命名空间和客户端对文件的访问操作,它维护者文件系统树及整棵树内所有的文件和目录;DataNode是文件系统的工作节点,负责管理存储的数据,它们会根据需要存储并检索数据块(受客户端或NameNode调度),并且定期向NameNode发送它们所存储的块的列表。

1.1.2 MapReduce计算模型

MapReduce是一种并行编程模式,是Hadoop的核心计算模型,其易用的特性令软件开发者可以轻松地编写出分布式并行程序。在Hadoop的体系结构中,MapReduce是一个简单易用的软件框架,基于它可以将任务分发到由上千台商用机器组成的集群上,并以一种可靠容错的方式并行处理大量的数据集,实现Hadoop的并行任务处理功能。MapReduce框架是由一个单独运行在主节点的JobTracker和运行在每个集群从节点的TaskTracker共同组成的。主节点负责调度构成一个作业的所有任务,这些任务分布在不同的从节点上。

1.2 分布式数据库HBase

HBase是一种“NoSQL”数据库,它是一个开源的、分布式的、多版本的、面向列的存储模型。

其服务器体系结构遵从简单的主从服务器架构,它由Region服务器(RegionServer)和Master服务器(Master Server)构成。Master服务器主要负责管理集群中的Region服务器,而HBase中的所有服务器都是通过ZooKeeper来协调和处理服务器运行期间可能出现的错误。Master服务器本身不存储HBase中的任何数据,HBase上的表会被划分为多个Region,然后分布存储到Region服务器群中。Master服务器中存储的是Region到Region服务器的映射。HBase是一个基于列模式的映射数据库,它只能表示很简单的键-值的映射关系,这相对于传动的关系型数据库有了极大的简化。

2 构建校园通服务端

2.1 服务端整体架构

校园服务系统的服务器端不仅仅是一个Web后端管理系统,还包含了供前端应用调用的通用API,是一个整合了服务和管理的完整系统。本文重点关注如何基于Hadoop技术来提供API服务,对于Web后端管理系统只作简要的阐述。

在本系统中,前端应用通过调用后端提供的API来获取相应的服务,并通过URL请求和JSON格式的数据交换进行相互通信。而系统管理员可以通过常规终端如台式电脑、笔记本电脑等对来访问后端管理Web系统,对服务端系统进行管理。

系统的结构分为负责采集数据并向用户呈现系统状态的视图层、使用Struts2框架负责用户请求和业户逻辑组件交互的控制器层、由Spring框架管理业务逻辑组件的业务逻辑层、使用Spring for Apache Hadoop框架负责数据库操作的数据访问对象层以及基于HBase和HDFS的数据库服务层。即系统将采用Struts2、Spring框架和HBase数据库等技术进行构建。

2.1.1 系统业务架构

系统主要分为两部分:面向前端应用的API和面向管理员的后端Web管理系统。前者主要以提供请求URL的方式,供前端应用调用API获取服务。后端系统提供的服务包括注册登录、获取系统信息、获取/更新用户信息、获取/更新消息信息和获取/更新微博信息等,前端应用可以通过调用相应API来获取对应信息,这些信息都将通过JSON格式的数据来提供,并通过访问令牌提高安全性。后端Web管理系统主要提供系统管理、日志管理、用户管理、消息管理、微博管理等功能。

2.1.2 Hadoop的应用

在本设计中,为了能够使系统能够利用云技术的优势,同时考虑到Hadoop的适用性,将HBase作为系统的应用数据库,以实现在分布式系统上进行高效的数据存储和操作。当系统中的数据量不断增大达到一定程度时,将数据分布存储在集群中的各个节点,能够降低主服务器的负担,充分利用其它节点设备的资源。

2.2 API的设计

本研究中,后端系统通过API为前端应用提供服务,而无需前端应用关注具体实现。API以URL的方式来呈现,前端调用相应的URL来发送请求,后端再根据相应的请求进行校验和处理,最后以JSON格式的数据将服务结果返回给前端。这样的API具有良好的跨平台性,而不仅仅只能够由Android平台的客户端调用,为日后系统的扩展提供了基础。

为了保证系统和数据的安全性,前端和后端的通信采用HTTPS协议,同时除了注册、登录和注销请求外,其它所有来自前端的请求都必须携带由后端系统授权的访问令牌(Access Token),该令牌是在用户成功登录后由系统自动分配的,并且具有唯一性和时效性。

2.3 服务端Web管理系统的设计

服务端Web管理系统是管理员对系统进行管理的媒介,在这个系统上,将以B/S(浏览器/服务器)的形式为管理员提供一个管理系统的方法。管理员可以使用该系统进行系统信息维护、个人信息维护、用户管理、内容管理、日志管理等操作。

在本系统中,具体层次分为三层:action层、service层以及dao层,分别对应请求处理和界面呈现、业务逻辑处理、数据库操作。此外,还包括用于封装数据的model层,即POJO类。

在开发时,首先编写model层的POJO类,然后按照dao、service、action自底向上的顺序编写相应的接口并实现之,最后将系统信息呈现到JSP页面上。

3 总结

本课题是对Hadoop框架的部分关键技术的一次较为深入的研究和分析,并在此基础上设计和实现了具有应用价值的校园通服务端系统。Hadoop作为一个成熟的分布式框架,使得大数据处理能够通过多台廉价的计算机组成的集群来高效地完成任务。结合Struts2和Spring等主流的Java Web框架,原本不适合处理实时任务的Hadoop也能轻松地应对Web应用。基于Hadoop云技术的校园通服务端,将能充分利用校园的有效资源,以较低的成本为高校学生提供优质的掌上在线服务。

随着手持智能终端的不断普及,移动化办公的逐渐推广,本文所研究的Android平台下的校园通是可行,并且也是未来的趋势。日后将在本研究的基础上继续完善其中的相关系统,充分利用Hadoop技术的优势,真正打造出一个具有使用价值的校园应用系统。校园数字化建设是未来的趋势,相信移动化技术和云技术会加快其发展进度,为校园师生的学习、工作带来更多的便利,这也是以后研究的目标。

【参考文献】

[1]Apache Software Foundation.What Is Apache Hadoop?[EB/OL].[2013-5-13]. http://hadoop.apache.org/.

[2]陆嘉恒.Hadoop实战[M].2版.北京:机械工业出版社,2012.

[3]Apache Software Foundation.MapReduce Tutorial[EB/OL].[2013-5-13].http://hadoop.apache.org/docs/r1.1.2/mapred_tutorial.html#Overview.

[责任编辑:汤静]