基于hadoop设计与实现

2024-09-02

基于hadoop设计与实现(共10篇)

1.基于hadoop设计与实现 篇一

基于FPGA的指纹采集接口设计与实现

一、引言

相对于密码、证件等传统身份认证技术和诸如语音、虹膜、脸形、签名等其他生物特征识别认证技术而言,指纹识别认证是一种更为理想的身份认证技术。其优点体现在:

1.广泛性——每个人的每一跟手指都具有指纹;

2.唯一性——每个人的指纹都不相同,极难进行复制;

3.稳定性——指纹不会随着年龄的增长而改变;

4.易采集性——指纹图像可运用专业的指纹传感器获取,易于开发识别认证系统。

随着电子商务的发展和消费类电子的普及,越来越多的领域需要指纹识别系统。目前,基于、的独立式指纹识别系统已经成功应用于考勤、门禁、安检等领域。同时,随着微电子技术的进步,设计开发能应用在小型微型系统(如手机、PDA等)的ASIC资金资助:上海市科学技术委员会PDC计划项目(No.047062023)和AM 0403项目(专用集成电路)指纹识别认证系统,将具有很强的现实意义和广阔的市场空间。

由于FPGA(现场可编程门阵列)具有高集成度,低功耗,短开发周期等优点,本文选用FPGA作为指纹识别认证系统的核心器件,以控制其依次实现指 纹采集、指纹特征点提取、存储、比 对等等过程。可见,指纹识别认证系统的首要任务是如何采集到高质量指纹图像以保证后续任务的完成,而指纹图像质量不仅与指纹传感器自身的性能有关,也与数 据传输通信接口的性能密切相关。因此,如何设计性能优良的通信接口是实际系统设计的一个难点问题。于是本文针对这一问题进行了研究,介绍了一种基于 FPGA与滑动式指纹传感器的指纹采集接口的设计与实现方法。

二、简介指纹采集接口器件

本指纹采集接口的核心控制器件为Xilinx公司SpartanIII系列的XC3S400型FPGA芯片,它的封装形式为PQ208。这款芯片采用先进的90ns工艺,最大容量40万门,工作频率高达200M,足以完成系统需要。

另外,本文选用的指纹采集传感器为富士通公司的MBF300滑动式电容指纹采集传感器。这款指纹传感器采用标准CMOS技术,含有8位A/D变换 器,能在2.8V~5V的宽电压范围内工作,能自动检测到是否有指纹到达传感器,并实现在线采集。而它与以往采用的面积式指纹传感器相比最大的优点在于,在保证指纹图像高分辨率(500dpi)的同时大大减小了传感器的尺寸(13.3×3.6)。

MBF300支持3种通信接口:8位微处理器总线接口(microprocessor bus interface)、集成的USB全速接口(Integrated USB Full-Speed Interface)和集成SPI接口(Integrated Serial Peripheral Interface)。其中本文选用SPI接口,并将详细讲述基于MBF300和FPGA的SPI设计与实现方法。

MBF300的SPI接口需要时钟信号线SCK、主进从出信号线MISO、主出从进信号线MOSI和使能信号线,共4根信号线。其中,传感器的时钟 源可以从外部输人,也可以外接一个晶体振荡器后,利用MBF300内部的振荡电路来获得时钟源。在选择了SPI模式后,MBF300的其他两种模式将自动 禁止。在本系统中,MBF300在SPI工作模式下相当于一个从设备,XC3S400作为主设备。XC3S400通过读写MBF300内部的寄存器实现对 它的控制,以完成指纹采集的任务。

另外,MBF300在SPI的从设备状态下,它的通信协议的具体内容包括:

MOSI线上的数据在SCK的上升沿被采样;

MISO线上的数据在SCK的下降沿发生改变;

SCK在空闲状态时,可以为高电平,也可以为低电平;

串行传输过程中,高位在前(最先被移出)。具体时序见图1。

三、指纹采集接口的设计与实现

本文中指纹传感器MBF300的主要任务是采集指纹图像,并自动A/D转换,并把转换后的图像数据通过SPI接口传送到FPGA芯片XC3S400 中,以进行指纹登记或者指纹识别比对。由此可见,指纹采集是整个指纹识别系统的第一步,采集质量的好坏将直接影响系统的性能与准确度的高低,因此,接下来 将重点介绍指纹采集接口——SPI接口的设计,在此过程中,XC3S400为SPI主设备,MBF300为SPI从设备。

1、指纹采集电路

由于FPGA内部采用的SRAM存储器结构,所以需要外置一个PROM在上电时对FPGA进行程序配置。同时,还扩展了一个SRAM和Flash分 别用作存储指纹程序运行时的临时数据和指纹数据信息。另外,为了实现与PC机通信,指纹采集部分还设计一个RS232接口,整个的硬件电路如图2所示。由 图中可以看出,整个指纹采集的核心部件就是FPGA芯片XC3S400,它相当于常见的嵌入系统中的DSP或者ARM,控制着整个指纹采集,以及指纹登 记,指纹比对,结果输出等过程。

2、指纹采集接口硬件设计与实现

本文的SPI接口主设备为FPGA芯片XC3S400,从设备为指纹传感器MBF200。由于FPGA没有特定管脚的要求,本文任意选用XC3S400的4个I/O口137—140,分别与指纹传感器MBF300的相应管脚连接,见图3所示。

3、指纹采集接口软件设计与实现

接口时钟采用传感器内部的12M时钟,整个采集指纹图像流程如图4所示,主要有初始化,调整参数,指纹采集,指纹存储几部分组成。

3.1 初始化XC3S400和MBF300

XC3S400为FPGA器件,因此在系统上电后先要对其进行初始化,即从PROM中读取配置数据,以完成后面的指纹采集、特征点提取、存储、比对等工作;初始化XC3S400之后,接着初始化指纹传感器MBF300,其中部分VHDL源程序如下:

……

ENTITY ini_mbf300 IS

PORT(......pgc : INOUT STD_LOGIC_VECTOR(7 DOWNTO 0);

dtr : INOUT STD_LOGIC_VECTOR(7 DOWNTO 0);

dcr : INOUT STD_LOGIC_VECTOR(7 DOWNTO 0);

thr : INOUT STD_LOGIC_VECTOR(7 DOWNTO 0);

ctrlb : INOUT STD_LOGIC_VECTOR(7 DOWNTO 0);

isr : INOUT STD_LOGIC_VECTOR(7 DOWNTO 0);

icr : INOUT STD_LOGIC_VECTOR(7 DOWNTO 0);

......);--定义需要初始化的MBF300寄存器;

END ini_mbf300;

ARCHITECTURE ini_mbf300 OF ini_mbf300 IS

BEGIN

pgc <= “00000110 ”;--初始设置图像增益为1.5;

dtr <= “00111111”;

dcr <= “00000001”;

thr <= “00101100”;

ctrlb <= “00000001”;--使能阵列,AD及时钟;

isr <= “00000011”;--清空中断;

icr <= “01011001”;--使能自动检测;…...END ini_mbf300;......3.2 调整MBF300参数

调整MBF300参数,也就是调整PGC、DTR、DCR三个寄存器的值来调整放电时间、放电电流速率和图像的放大增益,直到获得最佳质量的图像。

3.3 采集指纹图像

XC3S400按照MBF300的SPI时序要求,在MOSI信号线上发送一系列读写MBF300寄存器的指令,并由MBF300在MISO信号线上发送A/D转换后的指纹数据,直到一幅完整的256*32的指纹图像传输完毕。

3.4 存储指纹图像

采集到的原始指纹图像保存到片外SRAM中,地址空间为0000 0000 0000 0000~FFFF FFFF FFFF FFFF。实验调试与结论

指纹采集接口的整个程序的VHDL源代码已经通过调试,在ModelSim SE 6.1b中成功仿真,FPGA的SPI时序与MBF300一致,完全能达到指纹采集的目的。于是将MBF300设置为DTR=0x15,DCR= 0x20,PGC=0x01,通过SPI接口采集到的原始指纹数据通过图2中的RS232接口传送给PC机,然后利用Matlab工具数据转化得到指纹图 像,它足以满足后续的指纹特征点提取、比对等要求。

四、小结

这种基于FPGA芯片XC3S400与固体指纹传感器MBF300的SPI接口具有设计实现简单,传输速率高的特点,完 全能胜任指纹采集的任务。而MBF300的高精度更能保证采集到的指纹图像的质量,这有利于简化后续的指纹图像增强、二值化等算法。总之,基于FPGA与 指纹传感器的指纹采集系统的SPI接口的成功实现,为指纹识别技术的SOC片上集成打开一个良好的开端。

本文作者创新点:

虽然基于DSP或者ARM的指纹识别认证系统已经在考勤,门禁等领域实现商品化,但这样的嵌入式系统很难实现小型化集成化,更无法SOC,所以本文 采用FPGA来实现指纹识别认证系统,利用FPGA高集成度,低功耗,短开发周期等优点,并以实现系统的ASIC为研究背景,具有很强的现实意义和广阔的 市场空间。

只有保证高质量的指纹采集才会保证高质量的指纹识别认证,因此本文主要介绍了基于FPGA的指纹识别系统的指纹采集接口部分的设计与实现方案,经实验研究证实该接口完全能满足实际需要,这为指纹识别系统的片上集成打开了一个良好的开端。

参考文献:

[1]谢健阳,李铁才,唐降龙等.指纹识别系统的设计与实现.微计算机信息.2006;22(3-2):156-157;

[2]周宁婕,付宇卓,周煜.基于DSP的指纹识别系统硬件平台设计.计算机仿真.2005;22(1):241-243;

[3]黄林波,杜坤梅,谢建阳等.基于ARM的指纹识别算法的研究与开发.哈尔滨商业大学学报(自然科学版).2005;21(2):179-181;[4]沈小丰, 李小贝.便携式指纹识别系统的设计.自动化技术与应用.2005;24(4):55-58

[5] MBF300 Solid State Fingerprint Sweep Sensor,Data Sheet[Z].2002 [6] Spartan-3 FPGA Family: Complete Data Sheet [Z].2005

2.基于hadoop设计与实现 篇二

关键词:推荐选课系统,Hadoop,协同过滤算法,分布式计算与存储

随着各类在线选课系统的普遍使用, 学生可以轻松地通过手机、电脑等设备登录在线选课系统, 便捷地管理自己的选、退课程。但是, 一个较为显著的问题在于, 大部分选课系统并没有提供课程之间是否有联系、是否符合学生的培养计划等等信息并没有提供。

事实上, 当前的选课模式存在很多复杂的问题[1], 常见的主要有先导和后继课程问题, 同时, 学生人数众多, 课程数量众多, 由此产生大量的可选课程组合, 信息过载问题逐渐突出。大多数在线选课系统并没有解决这些问题。

目前, 解决上述问题的方法主要依靠学校开设新生入学指导或各类选课指导课程。这些课程虽然在一定程度上解决了一些问题, 但是仍存在明显不足。主要表现为实时性不强, 比如:学生因故错过了指导课程, 或者课程距离选课时隔太久造成遗忘等等。因此, 一个可行的解决办法就是用推荐选课系统来代替选课指导课程。

1 相关技术分析

1.1 分布式计算与存储技术

推荐系统的作用就是通过挖掘用户和信息之间的联系, 找到用户可能会感兴趣的信息[2], 然后向用户做出推荐。对于选课系统来说, 推荐系统通过对大量历史选课数据进行分析, 能够为学生提供课程信息和相关建议以帮助学生进行选课, 它可以一对一“指导”学生完成选课。

然而, 推荐系统扩展性差和耗费大量计算时间是令人无法容忍的, 推荐系统如何能够在很短时间内从海量数据中做出高质量的推荐, 是一项严峻的挑战[3]。该研究基于Hadoop平台和协同过滤算法, 设计了一种面向高校学生的在线推荐选课系统。系统主要实现以下功能:

(1) 给学生提供课程推荐服务, 帮助学生优化课程选择;提高课程资源利用率。

(2) 以Hadoop为平台, 解决单机推荐系统效率低、耗时长的问题, 满足选课高峰期的高并行计算。

Hadoop是一个可靠、高效、可扩展的开源分布式软件框架[4], 实现了一个分布式文件系统HDFS (Hadoop Distributed File System) 。

HDFS的主要特点是高容错性, 这源于其被设计用于部署在廉价的通用硬件上。HDFS采用数据分布式存储, 依靠代码迁移机制, 在处理大规模数据集时, 有效避免了数据传输过程中的耗时问题;同时依靠适度的数据冗余机制, 允许系统从失效的节点中恢复, 从而保证了系统的可靠性, 因此HDFS非常适合拥有超大数据集的应用程序。

1.2 协同过滤技术

协同过滤技术是一种常用的推荐技术, 也是较成功的推荐技术之一[5-6]。其主要根据“物以类聚”的思想, 寻找拥有相似性的群体, 利用相似群体的偏好给目标用户制定推荐策略。

协同过滤算法的实现可分为三个步骤, 分别是:构建用户——项目矩阵;寻找最近邻居;产生TOP-N推荐数据[7]。目前, 协同过滤推荐技术主要分为三种类型:基于用户的协同过滤推荐、基于项目的协同过滤推荐和基于模型的协同过滤推荐。

该研究根据以上三种推荐类型分别给出了以下三种推荐算法设计。

(1) 基于用户的协同过滤算法。

所谓基于用户的协同过滤算法, 即以用户对课程的评分为依据, 来判断用户之间相似性的算法。简言之, 就是给用户推荐与其选择相似的其他用户选择的课程。

用例说明:

基于用户的协同过滤算法其基本思想简单易懂。首先, 根据用户对课程的喜好, 找到与其相似的其他用户, 这些用户可以看作当前用户的邻居, 即邻居用户的喜好与当前用户的喜好相同或者相似;然后, 从邻居用户的选课中, 选择合适的课程推荐给向当前用户即可。从计算的角度看, 就是将一个用户对于所有课程的喜好作为一个向量, 计算其他用户与当前用户之间的相似度大小;根据相似度的大小, 找到若干邻居用户, 再根据邻居用户的选课, 预测当前用户对未选择课程的喜好情况, 计算出一个有序的课程列表推荐给当前用户。表1给出了一个例子, 对于学生A, 根据其历史选课记录, 这里计算得到一个邻居C, 那么, 就可以将学生C选择的课程4推荐给学生A。

(2) 基于项目的协同过滤算法。

所谓基于项目的协同过滤算法, 即以用户对课程的评分为依据, 来判断课程之间相关性的算法。其推荐依据是课程之间的相关性大小, 而与当前用户无关。也即给用户推荐与其已选课程相关的其他课程。

用例说明:

基于项目的协同过滤算法其基本思想也十分简单, 相比较于基于用户而言, 该算法只关心课程之间的联系, 而不关心用户之间的关系。首先, 根据用户对课程的喜好, 找到关联度高的其他课程, 然后将这些关联度高的课程推荐给用户。从计算的角度看, 就是将所有用户对某课程的偏好作为一个向量来计算课程之间的相关度, 得到课程的相关课程后, 根据用户的历史偏好预测当前用户还没有表示偏好的课程, 计算得到一个排序的课程列表作为推荐列表。表2给出了一个例子, 根据所有学生的历史偏好, 除学生A外, 选择了课程1的其他学生同时也选择了课程4, 则说明课程1和课程4是相关的, 而学生A选择了课程1, 那么可以将课程4推荐给学生A。

(3) 基于模型的协同过滤算法。

所谓基于模型的协同过滤算法, 是指通过对数据库中的数据进行分析和挖掘, 建立相应的模型, 依据模型, 生成预测和推荐的算法。即给用户推荐符合一定规则模型的课程。

基于模型的协同过滤算法与以上两种算法区别较大, 其基本思想在于建立合适的模型, 如基于贝叶斯网络技术的模型、基于关联规则的模型和基于聚类的模型[8]等等, 推荐的质量取决于模型的质量。该算法利于解决数据稀疏和冷启动问题。即对于新增开的课程及新入学的学生不存在历史数据的情况, 采用该算法。

2 推荐系统的设计

2.1 推荐流程

系统的推荐算法流程如图1所示。

首先, 根据学生信息表、课程信息表及选课信息表, 对初始数据进行抽取、转化、装载等操作, 构建学生特征向量及课程特征向量, 建立用户模型和课程模型。

随后, 数据进入协同过滤算法, 第一步, 考虑用户是否为新生, 如果是则采用基于属性值偏好矩阵的最近邻推荐策略;若否则继续判断该用户已选课程记录是否大于3条, 若大于3条, 则采用基于用户的协同过滤推荐算法;若小于3条, 则采用基于项目的协同过滤推荐算法。

协同过滤算法产生的结果集, 经过滤后与候选结果集共同进行排序。过滤阶段主要过滤内容为学生已经选择的课程, 候选结果集主要为新增开的课程。经过排序后产生的结果即为推荐列表, 显示给用户。

2.2 推荐系统架构

基于Hadoop的学生选课推荐系统采用分层架构来实现, 在传统MVC三层架构的基础上加一层算法策略层, 构成推荐系统的四层架构模型, 如图2所示。

数据访问层负责存储管理, 数据主要为学生的历史选课记录, 同时提供基本的数据持久化操作, 并通过备份策略达到数据安全的要求[9]。

算法策略层是系统的核心, 主要由Hadoop平台以及一系列并行抽象算法组成。该层不关心具体的业务逻辑, 而只负责处理数据访问层存储的用户偏好数据, 然后, 将计算结果保存在存储层的同时传递给控制层, 由控制层进行相关的业务逻辑处理, 最后统一传递给应用层展示给用户。

控制层连接了应用层和算法策略层。该层不关心算法策略层和数据访问层的实际工作, 而只关心业务逻辑需求, 并将业务处理结果传递给应用层展示, 是整个系统的控制器。

应用层是直接与用户进行交互的部分, 作为一个完整的系统, 推荐结果的展示也是推荐系统中不可或缺的组成部分, 尤其对于用户而言, 好的展现方式必然能够带来更佳的用户体验。

3 推荐系统的实现

根据数据存储的实际需要, 系统实现主要分为两部分, 一是Hadoop的配置, 二是算法的部署。作为整个推荐系统的运行平台, Hadoop的安装、配置是系统平稳运行的基础, 而算法的正确部署则决定了系统能否正常运行。

3.1 Hadoop的配置

Hadoop包括三种运行模式:单机模式 (Standalone) 、伪分布式 (Pseudo distributed) 和完全分布式 (Fully distributed) [10]。

该推荐系统中, Hadoop集群采用第三种, 完全分布式的运行模式。系统由4 台PC组成, 其中, 1 台作为Master节点, 其余3 台作为Slave节点。每台PC硬件都是Intel Dual-core2.6GHz Ubuntu-10.10-server-i386, Hadoop版本为1.0.4。

3.2 推荐算法的部署

系统集成的分布式并行化算法为协同过滤算法和全局排序算法。开发完成后, 将程序打包上传到Hadoop的相关目录下, 即可完成部署。

4 结语

3.基于hadoop设计与实现 篇三

摘要:移动互联网时代到来,其独特优势有助于创新大学生思想政治教育的教学和管理方式,因此,开发一款基于Android平台微心理App具有重大意义。整个开发过程分为两部分:客户端基于Android,使用E-clipse 开发,利用AVD 运行测试;后台服务端使用MyEclipse 开发。系统设计主要包括职校学生需求分析、系统的目标确定、系统的设计原则、总体架构和功能设计。这款APP可以方便师生进行心理健康教育与咨询,促进学校信息化的建设。

关键词:移动互联网;微心理;App

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)22-0056-02

引言

随着移动智能终端不断演化、4G网络与无线WIFI逐步普及以及移动互联网应用软件多样化、个性化,移动互联网极大地改变着大学生的思维方式、学习方式和生活方式。移动互联网时代到来,其独特优势有助于创新大学生思想政治教育的教学和管理方式,搭建起大学生思想政治教育新平台,突破传统教育模式时空限制,增强大学生思想政治教育实效性。然而,当前大学生思想政治教育运用移动互联网的范围较窄、层次较浅、实效不强。全方位、深层次把握移动互联网对于大学生思想政治教育实效性的影响状况,针对其负面制约提出针对性改进策略,是推进大学生思想政治教育与时俱进的重要课题。因此,开发一款基于Android平台微心理App具有重大意义。基于Android 微心理App 系统总体设计

微心理App 基于C/S 模式,整个开发过程分为两部分: 客户端基于Android,后台服务端使用MyEclipse 开发。其中客户端界面美观且易于操作,涉及用户登录,微心理主界面,自我成长、情绪管理、人际沟通、情感认知、专家在线、心理科普、课程讲座等功能板块。

2.1 系统功能结构图

2.2 数据库设计

通过对用户的需求分析,数据库设计中确定为3个数据实体,心理辅导栏目、用户、栏目、详情。根据每个实体属性设计对应的数据库中的表。数据库管理系统采用MySQL,其中各实体采用的ER 图以及相对应的数据库表如表1所示。

2.3 用户登录模块

如果用户在微心理App 中有账号,可以直接登录,访问主网页,并且可以进入个人中心后查看、修改个人信息,并选择相关的心理活动栏目进行咨询或学习。如没有,则需要注册,注册通过后,才能进行上述步骤。

2.4 心理咨询模块

心理咨询模块由自我成长、情绪管理、人际沟通、情感认知、专家在线、心理科普、课程讲座等内容组成,用户可以根据自己的需求,点击相应的内容进行查看和咨询。

2.5 个人中心模块

该模块主要用于用户个人信息的查看、修改,以及查看收藏的心理活动知识和讲座信息等,只有登录进去后,才能使用该模块的功能。基于Android 微心理App 系统详细设计与实现

详细设计是软件工程中软件开发的一个步骤,就是对概要设计的一个细化,就是详细设计每个模块实现算法,所需的局部结构。在详细设计阶段,主要是通过需求分析的结果,设计出满足用户需求的嵌入式系统产品。

3.1 系统业务流程图

1)系统数据流图

2)登录数据流图

3)信息数据流图

3.2 系统实现

1)客户端

进入微心理App 的首页,可以看到主题为“微心理”的主界面,导航分为三块,分别是:微心理在线智能测评、心理咨询栏目以及热门活动。点击相应的导航,可以跳转到相应的功能模块。服务器端

在服务器端,我们可以通过输入用户名和密码,进入后台管理界面,在后台中,根据管理员权限可以对模块进行功能、名称、用户等进行相关的管理,如下图所示: APP的设计与实现的意义

1)为职校心理健康教育提供有效决策依据

心理健康教育课程是一门实践性很强的学科,新的社会实践是其存在和发展的重要推动力。移动互联网在大学生中的广泛应用为心理健康教育工作既带来了机遇也带来了挑战。通过对移动互联网这一新领域的调查研究,对所获取的信息进行真实、客观、全面的描述和分析,对职校学生心理健康教育在移动互联网领域上有个正确的认识与把握,为职校心理健康教育工作方法提供有效的决策依据,是目前新形势下我国德育教育工作的重要课题。

2)完善心理健康教育的服务体系

利用信息网络技术,结合管理技术和创新思路,能改变传统的心理教育方法,提高工作质量效率。

3)及早预防和解决职校生心理问题。

《基于移动互联网职校心理健康教育平台》能及时地反映动态的学生心理状态,提取相关的学生心理信息,做到信息监测,实事求是,提前预警,防患未然。

4)方便师生进行心理健康教育与咨询

基于移动互联网职校心理健康教育平台的主体一是学生,二是教师,三是心理专家,主体借助移动互联网,利用平台中的在线测试,专题讲座,在线专家咨询等交互功能,快捷、方便地实现心理健康教育与咨询。

参考文献:

4.基于hadoop设计与实现 篇四

基于ArcIMS的校园WebGIS系统设计与实现

介绍了WebGIS及ArcIMS基础理论;给出了面向师生服务的校园WebGIS系统体系结构、数据的设计思想;论述了地图服务的创建与管理、网站建立、图形-属性双向查询、专题制图等主要功能的`具体实现:对实现的系统进行了分析与评价.

作 者:杨正华 刘恒飞 闫浩文  作者单位:杨正华(兰州市勘察测绘研究院,甘肃,兰州,730000)

刘恒飞,闫浩文(兰州交通大学数理与软件工程学院,甘肃,兰州,730070)

刊 名:矿山测量 英文刊名:MINE SURVEYING 年,卷(期):2009 “”(2) 分类号:P208 关键词:ArcIMS   WebGIS   地图服务  

5.基于hadoop设计与实现 篇五

摘 要:文章所介绍的网上书店系统是一个基于B/S模式的Web信息管理系统。在设计过程中,主要是根据浏览器/服务器的三层体系构架思想,通过ASP.NET4.0结合ADO.NET访问SQL Server2008数据库,开发了一个简单、高效的网上购书系统。

关键词:网上书店;ASP.NET;三层架构

随着Internet和电子商务的兴起,传统的图书销售方式已不能满足人们的需求,尤其是近年随着当当网、卓越和阿玛逊等购书网站的飞速发展,人们更加热衷于网上选购图书。相比于传统的实体店图书销售模式,网上书店具有选购图书更为便捷、采购成本更低等优点。目前网上图书越来越丰富,人们基本上可以做到足不出户就可以选购自己喜欢的图书,选购过程中又可以快速地进行货比三家,最终可以愉快地选购性价比最高的图书,而且支付方式也相当便利。正是因为网上购书的便利和高效率,使网上书店迅速发展。系统描述

这里介绍的网上书店系统主要分为前台管理和后台管理两大部分,前台用户可以浏览和查询图书,将图书加入购物车,可以添加和删除订单,在线进行支付等功能。后台管理员可以管理用户的信息、维护商品库(比如添加、删除图书,更改图书信息等),及处理订单等功能。系统设计

网上书店系统模块设计上,主要分成前台管理和后台管理两大功能模块,前台管理系统的功能模块如图1所示,后台管理系统的功能模块如图2所示。

在前台管理系统中,用户可以通过注册或登陆后,可通过浏览器查看到各类图书的详细信息,也可以根据图书编号、图书名称、图书类别和热销商品分类页等对图书进行对应的查找,方便快速地了解到自己需要的图书信息。用户在浏览过程中,可以将自己喜欢的图书放入购物车,同时,也可以对购物车的物品进行二次选择,把不喜欢的图书删除或变更该图书的购买数量,在确认订单并付款成功后,用户也可以在个人订单页上,查看相应的订单详细。

在后台管理系统中,管理员则可以对图书信息进行相应的管理,例如:添加新的图书信息(新进仓的图书)、修改当前图书售买信息(如库存数量、售价及商品介绍等进行变更)和删除该图书(对该商品进行下架处理)等。还可以对用户的订单进行处理,例如:按客户要求变更图书配送地址、修改发票信息及通知物流人员进行商品流通配送等。另外,管理员还可以对用户账号信息、管理员账号信息、权限等进行必要的维护、管理。数据库设计

根据对系统的功能和实际业务需求进行分析,本系统在设计上,共设了6张数据表格,具体如下:(1)用户表,用于记录用户的详细信息,主要包括用户名、密码、姓名、性别、用户类别、电话、地址和邮政编码等。(2)管理员表,用来存放管理员的基本信息,主要包括用户名、密码和权限等。(3)图书类型表,用于记录图书的分类信息,主要包括类型编号和类型名。(4)图书表,用于存放图书的详细信息,主要包括图书编号、类型编号、图书名、价格、作者、字数、版次、书号和图片等数据项。(5)购物车表,用于记录订单的大概信息,主要包括购物车编号、用户名、图书编号和数量登录。(6)订单表,用于记录订单的各类信息,主要包括订单编号、用户名、订单日期、发货方式、付款方式、总金额和是否发货、当前物流配送实况等。主要功能模块实现

4.1 用户注册

用户注册的主要技术是通过SQL语句中的“insert into”命令,然后通过Command中的ExecuteNonQuery方法,把数据更新回用户表。通过使用RequiredFiledValidator控件,验证用户名和密码不能为空。通过调用函数Checkname()检测用户名是否重名,先把返回值result定义为false,然后检测数据表是否有同名的username,若有则另result=true,并且提示“用户名已被注册”。否则,把注册用户名更新回数据表。关键实现代码如下:

4.2 订单处理

后台管理员根据用户的支付情况对订单进行处理,如果用户已经支付,则将订单的是否发货改为发货状态。后台管理员在处理订单的过程中,可以对订单进行单个处理,也可以进行批量处理。为减少编写代码的工作量,将数据绑定到DataList控件,关键代码如下:结语

随着时下电子商务平台的快速发展,越来越多的人习惯了网上购物的快捷、高效。而相对于传统书店来说,网上书店具有运营成本低、无地域限制、购书简单、方便等优点。面对未来市场竞争的不断加剧,网上书店或者有完全取替传统书店的可能。

[参考文献]

[1]曾新勇.电子商务企业发展面临的困境及未来发展趋势[J].中国商贸,2014(9):89-91.[2]宁云智,林东升.ASP.NET程序设计项目教程[M].大连:大连理工大学出版社,2014.[3]田晶.基于.net技术的蓝星网上书店系统的设计与实现[D].长春:吉林大学,2008.Design and Implementation of Online Bookstore Based on ASP.NET Li Liangqi1,Mo Wenlang2

(1.The Information Technology Department,GuangDong Nanfang Vocational College,Jiangmen 529000,China; 2.TCL Air Conditioner Co.,Ltd.,Zhongshan 528400,China)

6.基于hadoop设计与实现 篇六

随着信息技术的高速发展, 整个社会正逐步进入“数字化”时代, 全球数据持续以爆炸性速度增长, 面对持续增长的海量数据对传统存储系统带来的新的挑战, 企业需要建立起高吞吐量、高可靠性和可扩展的存储系统。日常生产运营中, 企业一般都会有多个业务系统, 每个业务系统有各自的归档系统, 在这种情况下, 企业需要维护多个独立且各不相同的归档系统, 大大增加了维护和管理的负担并导致系统整体可扩展性差。如果构建一个统一的数据存储平台作为多个业务系统的公共归档系统, 那么所有业务系统的归档系统就可以整合为一个系统。

2 数据迁移设计与实现

2.1 分层存储系统

为了构建一个统一的数据存储平台供多系统使用, 本文设计了分层存储系统作为大数据存储平台。分层存储系统由在线存储平台和大数据存储平台组成。其中, 在线存储平台为企业的业务系统提供了在线数据的保存和处理服务, 保存了业务系统最近一段时间的数据, 大数据存储平台保存了企业业务系统所有的历史数据, 如图1所示。

2.2 数据迁移设计

数据迁移模块的主要功能是将在线存储平台的数据迁移到大数据平台上。其中, 在线存储平台的数据包含了结构化和非结构化两种类型的数据。结构化数据迁移需要将关系型数据库中的数据迁移到No SQL数据库中;非机构化数据迁移需要将数据文件从传统文件系统迁移到分层存储系统中的大数据平台。

(1) 结构化数据迁移设计

在线存储平台的数据通常采用传统的关系型数据库进行保存, 为了可扩展性的需要, 大数据平台基本上都采用了非关系型数据库 (如No SQL数据库) 。由于关系型数据库和No SQL数据库在数据的查询接口、数据模型、体系结构等方面都存在较大的差异, 数据迁移的设计要考虑很多类型转换和兼容性的问题。本文系统中涉及到的结构化数据迁移是指将数据从关系型数据库数据迁移到HBase表中。

系统需要定期将在线存储平台中的结构化数据迁移到No SQL数据库中, 以便进行后续的查询和数据处理工作。其过程就是将在线存储平台的数据库记录导出, 并转换成目标格式, 保存在No SQL数据库中。具体结构化数据模块设计如图2所示。

迁移的过程分为以下五个部分:

a.获取源数据库和目标HBase数据库连接信息, 以及源数据表字段到目标HBase表的映射关系;

b.源数据库包含My SQL、DB2、Oracle等, 每个数据库的数据格式都不同, 通过采用不同的JDBC (Java数据库连接) 使用SQL查询获取数据库数据;

c.HBase的数据是列式存储的, 输出格式为<关键字, 时间戳, 值>, 根据映射, 将每条输入记录拼装成多条HBase输出记录;

d.通过HBase连接信息建立与HBase的连接;

e.HBase提供了数据插入接口, 调用数据插入接口, 将步骤c中拼装好的数据插入到指定的HBase表中。

(2) 非结构化数据迁移设计

现有Hadoop数据迁移工具Flume使用较多, Flume是一个分布式、可靠的日志聚合的系统, 它可以在系统中定制各种类型的数据发送方, 将数据收集到一个节点上。Flume的优点是使用简单, 上传的文件可以按照大小、行或者是处理的时间分割为多个文件。但是在Flume-ng版本中, 每个数据源只能有一个文件, 而实际情况是要将多个在线存储平台的服务器中的文件夹整体都迁移到HDFS的指定目录下。如果采用Flume, 将需要针对每个文件设置一个配置文件, 实现过于繁琐。

针对Flume中存在的问题, 可以采用Apache VFS实现不同文件系统间非结构化数据迁移。该方式与Flume相比, 实现更加灵活。首先根据配置获取源数据、写入目标数据位置信息, 然后根据数据不同类型获取单个文件或目录下所有文件列表, 最后将迁移的文件写入到目标地址中。具体实现流程如图3所示。

迁移的过程分为以下五个部分:

a.根据迁移程序设置获取源、目标数据地址等相关信息, 主要包括数据类型信息, 分为两种:文件和目录信息;

b.根据源数据配置信息判断数据类型, 如果是文件直接读取该文件内容, 如果是目录则递归获取目录所包含该目录下所有文件信息;

c.如果数据类型是目录方式则判断目标目录, 如果不存在则创建目标目录;

d.通过调用HDFS接口, 在指定位置创建文件并写入数据;

e.通过以上的步骤, 只需要在迁移程序配置源、目标位置信息, 就可以实现业务平台的非结构化数据迁移到大数据平台的HDFS中。

2.3 数据迁移实现

(1) 结构化数据迁移实现

根据结构化数据迁移设计实现迁移程序, 其配置界面如图4所示, 该转换从Oracle中读取数据, 然后将数据插入HBase中。在“将数据插入HBase中”步骤配置与HBase关联的Zookeeper信息, 点击获取表名获取HBase映射信息表中记录的已经配置映射的表, 指定输出表为dsbtasklog, 点击获取指定表的映射获取表dsbtasklog的所有配置过的映射名称并选取logdata映射。

(2) 非结构化数据迁移实现

Apache VFS (Virtual File System) 提供了一种虚拟文件系统, 能够方便在其所支持的文件系统 (如:本地系统、FTP、HTTP、HDFS等) 进行文件操作。Apache VFS核心是File Object接口, 不同文件系统都实现该接口的方法, 进而根据不同文件系统类型调用其相应处理方式。

非结构化数据迁移重点需要解决实现不同文件系统与HDFS迁移以及迁移中的性能问题, 正式利用了Apache VFS可以在不同文件系统间进行文件操作以及多线程并发操作从而解决了非结构化数据迁移不同文件系统兼容和迁移性能问题。

根据非结构化数据迁移设计实现其迁移程序, 配置界面如图5所示。该转换中通过设置源、目标数据地址配置信息, 其中源数据地址一般为本地文件系统而目标地址为HDFS文件系统。

4 结语

分层存储系统很好地解决了海量数据增长的压力, 本文设计与实现的Hadoop大数据迁移程序满足了分层存储系统对结构化和非结构化迁移的要求。在实际应用中, 由于该程序拥有众多的文件接口, 能够处理传统操作系统、FTP等文件大大方便提高了系统灵活性, 另外在设计和实现过程中也存在需要完善的地方, 例如对异常的处理和日志的记录等需要加强。

摘要:为解决持续增长的海量数据的存储压力, 提出了由在线存储平台和大数据存储平台组成的分层存储系统, 并对分层存储系统中结构化、非结构化数据迁移的设计和实现进行了详细描述, 同时介绍了系统实际使用情况及优缺点。

关键词:Hadoop,HBase,大数据,数据迁移

参考文献

[1]李晨翔, 何刚, 孙莉.基于Hadoop平台的分布式ETL系统设计与实现[J].福建电脑, 2013 (11) :111-114.

[2]Apache Supported File Systems.Apache Commons VFS 2.1-SNAPSHOT API[EB/OL].[2014-08-20].http://commons.apache.org/proper/commonsvfs/filesystems.html.

7.基于hadoop设计与实现 篇七

基于GIS的建设用地管理系统设计与实现

为了适应社会经济快速发展和人口持续增长对建设用地节约集约利用提出的高要求,本系统以建设用地节约集约利用评价、影响因素相关性分析、需求预测等理论方法为基础,运用ArcGIS空间分析、专题图制作等功能实现了用地动态监测、现状评价和趋势预测,为基层国土资源部门的`建设用地管理和科学规划决策提供技术保障.本文以湖北省蕲春县漕河镇城区建设用地为例,详细阐述了系统各项功能的实施.

作 者:王慧珍 程雄 赵晶 梅松 WANG Hui-zhen CHENG Xiong ZHAO Jing MEI Song 作者单位:武汉大学资源与环境科学学院,武汉,430079刊 名:测绘科学 ISTIC PKU英文刊名:SCIENCE OF SURVEYING AND MAPPING年,卷(期):200934(5)分类号:P208关键词:建设用地管理 数据组织 功能模块 趋势预测

8.基于hadoop设计与实现 篇八

摘要:介绍了PCI桥接口芯片PCI9052和CAN接口芯片SJA1000,给出了基于PCI总线的CAN总线适配卡软硬件的设计思路、过程及实现方法。

关键词:PCI总线 PCI9052 CAN总线 SJA1000

现场总线CAN(Controller Area Network控制器局域网络)以其高性能、高可靠性及独特的设计,越来越受到人们的重视和青睐,不但在汽车行业中应用广泛,而且在工业控制、机器人、医疗器械、传感器等领域发展迅速。为了扩展CAN总线的功能,与计算机相连,可设计具有CAN接口和PC接口的CAN适配卡,用来收集CAN总线上各个节点的信息,转发给PC机,并可将PC机的命令和数据转发给各个节点以及完成对CAN总线上的用户系统的部分监控和管理工作。

PCI总线是Intel公司推出的一种先进的高性能32/64位局部总线,可同时支持多组外围设备,不受制于处理器,数据吞吐量大(33MHz总线频率、32位传输时峰值可高达132MB/s)。目前PCI是处于主流的计算机总线。以往的CAN卡一般都是基于ISA总线的,由于ISA部传输速率低,CAN卡必须增加中继控制功能,才能够适应CAN的高速传输,导致造价高、体积大、传输速率低,不利于CAN总线的推广应用。由于PCI总线传输速度快,而且支持热插拔、电源管理等功能,不但能满足CAN总线的高速数据传输,性能高、功能强,而且体积小、价格低、使用方便、应用范围广。

CAN卡的设计包括硬件设计和软件设计。

(本网网收集整理)

1 硬件设计

PCI总线是一种独立于CPU的局部总线,不同于传统的ISA总线。由于PCI总线规范定义了严格的电气特性和时序要求,开发难度比ISA总线的开发难度大。实现PCI接口的方案一般有两种:采用可编程逻辑器件和专用总线接口器件。采用可编程逻辑器件实现PCI接口的最大好处是比较灵活,可把PCI时序模块和功能模块结合在一起,可以利用的器件也比较多(如Altera公司的CPLD器件、Xilinx公司的FPGA器件等),还可以购买由厂家提供的用VHDL、AHDL等硬件描述语言编制的PCI核心设计模块,但其设计难度还是很高,因为PCI总线对负载要求、传输数据的建立时间的要求都比较苛刻,同时还需要器件内部实现用于配置的各类寄存器,以及完成逻辑校验、地址译码等工作的寄存器(大致需要15000个门电路)。此外,还需加入FIFO、用户寄存器组和后端设备接口等部分。设计这种PCI总线接口会导致将大量的人力、物力投入到复杂的逻辑验证和时序分析的工作上,开发周期较长。要用专用接口器件虽然没有采用可编程逻辑器件那么灵活,但能够有效地降低接口设计的难度,缩短开发时间。专用接口器件具有较低的成本和很高的通用性,能够优化数据传输,提供配置空间,具备用于突发传输功能的片内FIFO,提供扩展局部总线等优点,并且许多公司还提供配套的开发工具(例如评估板或驱动程序开发软件),使用很方便,开发周期短。目前市场上常见的有PLX、AMCC、Cypress等公司的PCI桥芯片,各个型号的PCI接口芯片的大致特点如表1所示。

表1 各公司PCI接口芯片

公 司芯片型号(模式)芯片功能及特点价 格开发技术支持PLXPCI9052(从)

PCI9054(主)型号众多,使用方便,性能好较便宜提供快速开发板RDK出售CYPRESSCY7C09449PV-AC(主)内置DPRAM,有效降低系统成本便宜技术文档TIPCI2031(从)

PCI1251(主)与TI的`DSP可无缝连接很便宜提供评估模块AMCCAMCC5920(从)

AMCC5933(主)FIFO接口适合于设计数据采集卡,性能好较昂贵提供评估板

PCI设备可分为主模式和从模式。主模式桥芯片可以进行DMA操作,而从模式只能接受读写操作。根据PCI提供的传输数据带宽(最大132MB/s)和CAN总线(最大1Mbps)的要求,加上经济和开发难度与周期上考虑(主模式桥芯片较昂贵,开发难度较大),又因不需要DMA功能,采用从模式桥芯片足以满足传输数据的需要。此外,选择芯片不仅考虑性能和经济上的要求,而且还需要考虑硬件开发和驱动程序开发的难易。如果不提供足够的芯片说明和应用样例及开发工具,将大大增加开发难度和延长开周期。因此,采用PLX公司的PCI总线目标接口芯片PCI9052作为CAN卡中的PCI接口芯片,负责与计算机之间的数据通信。

PCI9052是PLX公司开发的低价格PCI总线从模式接口芯片,低功耗,符合PCI2.1规范,提供的局部总线(Local Bus)可通过编程设置为8/16/32位的(非)复用总线。其主要特点有:

(1)直接数据转换模式 PCI9052支持PCI到Local Bus的内存映射和I/O映射的突发读写。

(2)ISA接口逻辑 PCI9052支持通过8/16位内存映射或I/O映射从PCI到ISA总线的单周期读、写访问。方便从ISA向PCI卡的转换。

(3)中断产生器 由Local Bus的两个中断信号可以产生一个PCI中断信号:INTA#。

(4)局部总线 PCI9052提供的局部总线不但可编程,而且与PCI总线的时钟相互独立运行,可实现异步操作,总线操作自动实现时序同步。两部分的异步运行方便了高、低速设备的兼容。局部的运行时钟频率范围0~40MHz、TTL电平,可由PCI提供或由用户自行提供;PCI的运行时钟频率范围0~33MHz。

(5)串行EEPROM 用于存入PCI BUS和Local Bus的部分配置信息。

(6)4个局部设备片选 基址和地址范围可以由串行EEPROM或主控设备进行设置。

(7)5个局部地址空间 基址和地址范围及其映射可以由串行EEPROM或主控设备进行设置。

(8)Big/Little Endian模式的字节交换 适合不同计算机体系。

(9)局部总线等待状态 降了等待信号LRDYi#用于握手之外,PCI9052还有一个内部等待产生器(包括地址到数据周期、数据到数据周期和数据到地址周期的等待)。

(10)延迟读模式 PCI9052支持PCI2.1规范的延迟读模式。

(11)FIFO PCI9052包括一个64Byte的写FIFO和一个32Byte的读FIFO,从而支持预取模式、即突发操作。

(12)PCI锁定机制 主控设备可以通过锁定信号占有对PCI9052的唯一访问权。

由于CAN总线的迅猛发展,许多芯片厂商开发了很多系列的CAN通信控制器芯片。如表2所示。

表2 主要CAN总线芯片

制造商芯片型号芯片功能及特点Intel82527

8XC196CA/CBCAN通信控制器,符合CAN2.0B

扩展的8XC196+CAN通信控制器,符合CAN2.0BPhilipsSJA1000

82C250

P51XA-C3CAN通信控制器,符合CAN2.0B

高性能CAN总线收发器

16位微控制器+CAN通信控制器,符合CAN2.0BMotorola68HC05X4系列68HC05微处理器+CAN通信控制器NEC7CAN通信控制器,符合CAN2.0A/B

由于PCI9052可以启动局部总线的读写,CAN卡不再需要微控制器,采用CAN通信控制器即可,本CAN卡采用SJA1000.SJA1000支持BasicCAN和PeliCAN模式,具有FIFO、支持热插拔等功能,不但可以实现CAN总线接口功能,而且芯片可以根据晶振的频率,输出可编程的CLKOUT信号,该信号正好可作为PCI9052的局部总线的总线频率,节省了器件,方便了设计。CAN总线的总线频率可为12MHz、16MHz或24MHz,PCI9052自动实现局部总线与PCI总线的访问同步。CAN总线收发器采用82C250.该芯片是CAN总线控制器和物理总线的接口,可以提供对CAN总线的差动发送和接受能力,具有抗瞬间干扰、保护部的能力,可以通过调整CAN总线通讯脉冲的边沿斜率来降低射频干扰。

由于PCI设备在计算机中的硬件资源是系统动态分配的,因此在设计出基本的硬件框架后,要进行PCI配置设计。CAN卡的硬件资源为映射SJA1000内部寄存器的内存映射间和一个中断源。PCI9052提供5个局部地址空间,可以选用其中的一个作为SJA1000的地址空间,分配32个8位地址。同时设置相应的初始化,PCI配置寄存器中的寄存器PCIBAR2设置为0XFFFFFFE0,向系统请求分配内存的数量为32,类型为不可预读,其它寄存器的值可设置为0。设置局部地址空间的范围为0X00000000~0X00000020。PCI9052提供2个局部中断源,利用LINTi1即可,注意的是:LINTi1信号线没有驱能力,SJA1000的INT引脚也没有驱动能力,因此该信号线必须加上拉电阻,否则该信号线的电平不确定,工作肯定不正常。SJA1000提供电平触发中断信号,因此PCI9052的中断触发模式设置为电平触发。利用PCI9052的局部设备片CS0#作为SJA1000的片选信号。CS0#片选信号的起始地址和地址范围为CS0 Base Address寄存器设置,值为0x00000002。另外,PCI9052的LRDYi#信号为局部总线数据准备信号,SJA1000的寄存器地址映射成地址,数据传输不存在延迟等待,因此LRDYi#引脚可接地,表示SJA1000的寄存器总是立即可读写。PCI9052寄存器的初始值由串行EEPROM提供,在PCI9052加电后读取。EEPROM必须采用支持连读功能的芯片,本用Microchip的93LC46B。用PCX公司提供的开发工具PlxMon可对93LC47B进行读写。

PCI9052的硬件调试可采用PlxMon。利用它可以对PCI设置的配置资源进行检验。利用PLX提供的SDK,可以对PCI9052的局部寄存器、局部总线及EEPROM进行读写,这样可以调试硬件。借助开发工具,不必开发PCI设备的调试软件,可节省很多时间。同时,SDK也为驱动程序的开发提供了程序框架,加快了开发进度。

CAN卡的电路框图如图1所示。

2 软件设计

软件设计包括驱动程序的设计和COM组件程序设计。

由于PCI设备的中断、I/O端口、映射内存等资源都是动态分配的,必须编写驱动程序管理硬件,才能供用户编程使用。为了通用性和兼容性,CAN卡驱动程序的开发采用支持Windows XP、Windows和Windows98的WDM驱动程序。开发工具采用Visual C++6.0和Win2000 DDK。由于CAN卡上没有微控制器,因此对CAN总线端口的所有操作都是由驱动程序来完成的。这不仅可以由计算机来实现复杂的功能,例如,错误检测、断点续传等,同时节省了硬件,而且有利于CAN卡的升级――只要更换驱动程序即。驱动程序的功能主要是配置SJA1000的CAN接口、收发CAN总线上的数据、对发数据和CAN总线错误均采用中断处理,驱动程序可以快速响应,通过事件(Event)内核对象直接通知给用户程序。由于WDM驱动程序运行在系统的内核态,编写非常复杂,限于篇幅,仅给出软件的框图(见图2)。

为了方便用户的使用,还应编写相应的API函数或ActiveX控件等其它应用层的程序提供给用户。由于ActiveX控件基于先进的COM技术,具有良好的封装性、使用灵活性等特点,可使用户编程简单、方便,因此在CAN卡的设计中编写了ActiveX控件,ActiveX控件负责与驱动程序的通信,通过控件的事件把CAN卡接收的数据通知给用户程序,利用控件的属性设置CAN通信控制器,按照设置的方法发送用户程序的数据。

9.基于hadoop设计与实现 篇九

随着互联网以及智能终端的发展,视频数据规模呈现爆炸式增长。有报告指出[1]:“智能视频监控、视频内容分析和视频分析每年处理数万亿小时的视频监视图像”。而据邬贺铨院士报告指出:“在线视频将成为消费者互联网流量的主导,网络视频流量比例将从2015年的37.4%增长到2019年的52%;网络视频流量占消费者互联网流量比例从2015年66%增长到2019年80%。2019年以电视机为终端的互联网视频将比2014年增长4倍”。

文本、语音、图像以及图像的序列视频是自然界最重要的信息载体,文本往往用来表达概念,图像和语音则往往记录更为真实的场景,彼此互补而又不可替代。由于图片的摄取更为方便,随着移动互联网的发展,用户越来越倾向于使用图片或视频记录场景。此外,大量的摄像头监控存储了海量数据,这些数据准确记录了监控场景中发生的各种事件。由于视频数据包含了文本数据无法承载的信息,准确挖掘视频数据中包含的信息对实际应用具有重要的意义。

相比文本数据,视频数据处理有几个难点。(1)数据规模远远超过文本,这导致视频数据处理的计算量特别大;(2)视频数据具有高度非结构化特点,原始数据必须经过滤波、检测、识别等一系列复杂操作才能得到有价值的信息。随着深度学习等技术的发展,对视频数据的理解能力越来越高,计算瓶颈问题则相对更为突出。

由于视频计算密集,单机已经很难满足大规模视频处理需求。对一个大型视频处理系统,尽管开发者可以从头搭建分布式处理系统,但需要花费大量的精力在底层处理框架,如任务加载、数据分割、结果汇总等。考虑到大规模视频处理有相当部分的工作可以重复利用,我们提出一种通用的大规模视频处理平台方案,使得用户只需关注业务逻辑和核心算法。由于大数据技术已经提供了大量的分布式计算方案,我们进一步基于Hadoop平台提出一种参照实现,该框架使用Hadoop的HDFS模块存储数据,视频处理部分使用Hadoop Map Reduce通用计算框架,在Hadoop上叠加一层Hadoop Video,负责封装通用的视频处理任务,如视频切割、解码以及接口封装。基于Hadoop Video,应用系统只需实现特定的接口即可实现大规模处理系统。

后续我们称大规模视频处理框架为Big Video,基于Hadoop实现的框架则成为Hadoop Video。

2 系统需求

从开发者角度,Big Video需要支持一下核心功能:

视频存储。首先集群应该提供一个超大的存储空间,用户能够方便的上传并存储视频。支持各种大小的视频文件,同时兼容图像数据。

视频解码。Big Video应该自动提供解码功能,适应各种不同的视频格式。

内嵌函数。Big Video应当提供丰富的图像处理套件,如常用特征抽取,各种矩阵操作函数,滤波函数以及经典的物体检测、识别等。

编程接口。同时提供视频级和帧级别的编程接口,满足有状态和无状态任务需求。在帧级别接口用户仅需对帧进行操作,属于无状态计算。在视频级接口,用户可以使用序列进行操作,也就是能够获得视频整个的序列。

并发调度。能够提供高效的并发调度机制,需要考虑到数据的物理位置尽可能减少跨节点传输。

性能要求。系统能够提供接近线性的扩展能力,也就是处理容量能够随CPU核心数目成准线性增加。同时能够支持GPU并行处理并进行丰富的功能封装,用户无需使用复杂的GPU底层编程接口。

3 关键设计

视频存储:为了并行处理,并减少带宽需求,视频数据应尽可能分布到不同的计算节点,实现一般采用块方式。考虑到视频数据的特殊性,每个块应携带必要的视频编码信息,以保证能够独立解码。

分布处理:由于视频数据巨量,应尽可能减少数据跨节点的传输,包括原始视频数据和解码后的帧数据。因此每个加载的任务应就近处理所在物理节点的数据,这种就近访问思想是大数据平台的重要设计理念。基于此原则,视频解码以及帧处理都应当尽可能在视频段所在的物理机完成。图1给出了相应的示意图。

开发接口:根据任务的不同,我们简单分无状态计算和有状态计算。无状态计算指视频帧的处理不具有前后依赖关系;有状态则相反。这两种不同类型的任务要求平台能够暴露视频级处理接口和帧级处理接口。由于处理任务非常多样,平台需设计层次化的接口,简单可分为Low level和High level接口。Low level接口设计面向一般性计算,不做任何特定假设,比如将所有处理结果抽象为<key,value>对,key,value是任意对象类型。而High level接口则可以封装为对象检测、物体搜索、背景建模等特定任务。

视频解码:视频解码是视频处理系统特有的前置环节,也是计算密集的环节。视频解码需要考虑的因素包括:

(1)格式支持:应支持主流视频格式,如mp4,mkv,avi,rmvb等。

(2)解码速度:对720p分辨率视频,CPU主频2.5GHZ下,单CPU应能支持每秒300帧以上。

4 Hadoop参照实现

很多大数据平台如Hadoop在很大程度上已经实现了Big Video处理的基础工作,但由于视频数据的特殊性,从头基于Hadoop开发大规模视频处理系统仍需大量工作(如视频解码,数据切块),在Hadoop上叠加Hadoop Video Layer仍然可以大幅度简化视频处理任务的开发。我们以Hadoop平台为参照,解释如何利用现有的Hadoop功能以及新增的Hadoop Video Layer开发实现Big Video处理框架。

视频存储:利用Hadoop的HDFS模块存储视频,将视频文件存储为Sequence File存储结构,称为Video Sequence File。Sequence File中Key的设计应当能够保证每个视频块可以索引到原始的视频块,以方便后续的回放追踪等。每个value应可以独立解码。由于一个视频文件可能非常大,转储到Sequence File需要预先做切割。切割工具可以使用ffmpeg或基于其开发。从原始视频上传到Hadoop的指定结构称为Hadoop Video的上传模块,由Hadoop Video Layer提供。

视频解码:视频解码通过Map Reduce实现并行。Map的输入为Sequence File,因此一条记录就是一个完整的视频块。Map函数对视频块执行解码,生成一系列frame,并进一步调用由用户实现的Frame Processor接口的process方法,该方法的输入是解码好的frame,输出是<output key,output value>对,output key和output value的具体语义由用户定义。

结果汇总:结果汇总直接使用Reducer实现。由于Reducer的逻辑是按照Map函数的outputkey进行合并,用户需要重载Reduce函数。

最后,从应用开发角度看,用户程序仅需要重载Frame Processer和Reducer类,其他全部由Hadoop Video完成。

5 结束语

本论文提出了一种面向一般性大规模视频处理的分布式计算框架,探讨了若干设计需求和设计要素,我们指出这种框架可以很大程度复用现有计算平台如Hadoop和Spark。我们以Hadoop为例,给出了大规模视频处理框架的实现方案。

参考文献

10.基于hadoop设计与实现 篇十

摘要:基于网络的教务教学管理是21世纪教务教学管理的发展方向,大多数高校已经充分认识到了这个形势,都在努力去研究和开发,但实现效果大都不很理想,或实质上仍然处于单机管理状态,无法实现信息的高效共享,本文结合我院实际情况,采用B/S结构的开发模式,针对网络化教务教学管理信息系统进行了设计和实现,并提出了实现网络教务教学管理系统时应该注意的一些关键问题。

关键词:教务教学管理系统浏览器/服务器结构教务教学 电子计算机和网络应用技术的普及为学校的教务、教学管理及改变传统的教学模式提供了新的手段和思维模式,随着高校教育体制的改革,特别是扩大招生以后,给高校的教学管理工作提出了许多新的课题,教学管理信息化水平不高在我校表现的尤为明显。为了改善目前的尴尬状况,从繁琐、复杂、混乱的教务教学工作中解脱出来,发挥高校的信息技术和硬件资源集中的优势,借助计算机和网络技术实现高等学校教学管理信息化,促使教学管理的选课、排课、考评与工作量核算系统实现自动化、现代化,并使现有的教育资源特别是教师资源效用最大化,我们设计开发了基于网络的教务教学管理系统。问题提出

由于学校规模的扩大,学生和教师的人数快速增加,使我校原有的一套教务教学管理模式受到了极大的冲击,具体表现如下:

学生选课无法适应跨专业、跨年级的要求,这严重影响了学生学习的积极性,也使教学资源不能按需最优分配;

教育资源大量闲置,配置不合理,未能最大限度地发挥其效用;

在对教师教学质量的监控中,仍然采取原有的一套管理方法,既不能发挥学生的主体作用,也不能很好的对教学质量进行监控;

在考试中未能发挥出计算机的效用,成绩查询也较为困难而且出错率高;

在院、系两级的教师工作量核算中,也存在着重复计算与手工计算效率低等问题。教务教学管理系统的设计功能设计

基于网络的教务教学管理系统主要包括以下五个功能模块(如图1),这几个模块中学生选课管理、学生成绩管理、共享教学资源管理这三个模块在处理时对数据库结构的要求较高,所以,在数据库的设计上要在能够保证信息全面的基础上,尽量保证表格的精简。图1 管理功能模块示意图

基于网络的教务教学管理系统的开发过程 体系结构

系统体系结构采用三层结构模型,即前端客户机为浏览器,表示层放在前端,应用层放在应用服务器上,数据层单独用一个服务器。三层结构与传统的客户/服务器方式相比,充分利用现有浏览器软件,减轻了网络和客户机的负载,维护相对简单,且支持跨平台。系统开发环境

根据系统要求结合当前实际,系统的开发选择开发环境如表1示,表1 系统开发环境 网络操作系统

Windows 2000 Server

Web服务器管理程序

IIS4.0

数据库管理系统

NT SQL Server 2000

Web服务器与数据库连接

ISAP(IDC)

Client端开发工具

HTML、Frontpage、VbScript、ASP

浏览器

IE 5.0 及以后版本

数据转换开发工具

Visual Basic 6.0

首先,Windows 2000 Server 是Microsoft公司推出的新一代网络操作系统,代表了Windows的新技术,是完全支持32位体系结构的开放式的多任务操作系统,提供了强大的网络功能,完全符合网络操作系统的选取原则,是PC级服务器代替小型机服务器的最佳操作系统。其次,Microsoft公司的SQL Server 2000作为面向中小型企业的网络数据库服务系统,提供了与众多高级数据库管理器相同的运行性能。它基本符合管理信息系统对数据库平台的要求,而且能够与Windows 2000 Server 很好地兼容。

再次,ASP是微软公司推出的IIS3.0的一个组件,利用它可以产生和运行动态的、交互的、高性能的Web服务应用程序。其工作原理如图:

图2 ASP的工作原理

从软件的技术层面看:无须编译;易于生成;独立于浏览器;面向对象;存取数据库方便,可使用ADO组件;与任何ActiveX Script语言兼容;源程序码不会外漏;安全性高。Web与数据库技术的结合应用 实现动态网页关键技术之一是Web与数据库的接口技术。系统中用户登录、维护信息、共享教学资源管理、成绩判定、成绩分析、教职工工作量核算、教学考评信息管理等功能本质上都是对数据库的一系列SQL操作。

ASP中使用ADO(ActiveX Data Objects)组件访问后台数据库。ADO工作在服务器端,它是一组优化的访问数据库专用对象集,为ASP提供了完整的站点数据库访问技术方案。通过ADO组件,用户可以在浏览器画面中输入、更新和删除站点数据库信息。在浏览器/服务器(B/S)的三层结构下实现对数据库的访问应满足以下两个基本要求。(1)信息安全。

防止非法用户的访问和防止授权用户对数据非法的操作。数据库的安全性通过用户名和口令字来实现,若在客户端直接输入数据库名、用户名/口令,就将数据库的安全性暴露在大众面前。非法用户一旦得到了数据库名,用户名/口令便可进入数据库,任意修改数据记录,这样将会导致例如考试成绩、考评信息等敏感信息受到威胁。解决的方法是用Web切断客户端和数据库的直接联系。Web用户名记录在服务器端变量中,可以通过检查此变量使用户只能访问与身份相对应的页面。服务器端通过ADO组件访问数据库。不同的DB用户,对数据库有不同的操作权限。Web用户名和DB用户名存在对应关系,通过ASP脚本完成两者之间的转换。采用这种方法,数据库名、数据库用户名/口令被严格限制在Web和数据库之间,根据不同Web用户的权限控制用户对数据库的操作,客户端必须了解Web用户名/口令,才可完成对数据库的相应操作。(2)保证信息的完整、可靠、一致性。在数据库中,数据之间相互是有关联的,必须保证一个事务在一定时间内对所有相关数据进行全部修改,要么不成功,要么一次完成,即保证信息的完整性。在网络传输和通信的过程中随时可能中断,另外,由于所有的浏览器都支持BACK和FORWARD操作,用户在任何时刻可任意回到某一步骤,这都将造成数据的不一致性。解决问题的方法是:将一个事务的完整处理过程安排在一个HTM页面上,要么一次性提交数据库系统处理,要么不提交,另外,Web服务器具有超时判断的能力,在会话结束时检查事务的操作是否全部收到,若未全部收到应主动退回所有事务,防止数据不一致。系统特点分析

1)先进的管理思想,本系统将学生入学到毕业的所有数据统一管理,纳入到本系统当中,改变了以往教务模块分散,不全面的弊端。教务数据集中管理,最大程度地实现了数据的共享,从而避免管理漏洞的产生,同时为学校管理层的决策支持提供详尽的数据。它为促进学校教务管理的科学化、信息化,保障学分制的顺利实行提供了强有力的支持。

2)先进的技术,模块化的软件结构。系统运行于Internet上,采用C/S结构与B/S结构相结合的体系结构既满足教务管理用户集中、大量处理数据的要求,又满足学生最大范围地使用该系统。各子系统即可独立运行,也可联合运行,实现数据共享。

3)系统操作的友好性,本教务系统是标准的Windows程序,全部采用了以图形化的界面来显示和修改数据。其中的每个模块都采用统一的数据记录定位操作和数据编辑操作。学会了对一个模块的数据操作后即可操作系统所有的模块,让教务管理人员真正将精力花在教务管理上,而不是简单和繁重的信息处理上。

4)强大的权限管理功能,提供全面的安全策略,教务管理流程复杂,因而在本系统可为每个进入本系统的用户设置不同的权限。权限控制可细到记录、字段级,例如可控制用户是否可看某些数据显示窗口中的字段列,以及不同系的教务人员只能修改本系的数据。权限最大可设到模块,即是否可对某一模块有操作权限。通过集中的用户权限管理可使不同的教务能以最安全的模式协调工作。配合多种数据备份策略,保障教务数据的安全性。

5)跨越时间、空间限制,学生选课采用WEB平台和数据库结合的技术,实现了网上选课。学生可以在任意时间通过网上进行选课,不受时间、地点的限制。结论

根据我院教务教学管理的种种不足进行了此次系统设计与开发,从现有软硬件资源条件出发,吸收了其他院校的一些经验的基础上有所突破,实现了系统的安全、适用、简单、快捷,切实根据实际要求,吸收和采用了如B/S与C/S混合结构技术、ASP数据上传组件等先进技术,系统已经基本解决了现有的问题,能够方便地协调好教师、学生、教室三者的关系,使资源达到最大化的利用。系统已初步顺利运行,将在以后的实践中不断摸索、完善,强化其功能,优化其性能。参考文献:

黄梯云,李一军.管理信息系统.修订版.北京:高等教育出版社,2000 余伟萍.计算机管理信息系统开发与应用.北京:电子科技大学出版社,1998 Laudon,Kenneth C.Laudon.Jane P.Management Iformation Systems-New Spproaches to Organization & Technology.Fifth Edition.Prentice Hall ,1998 张家钰.观念先行推进教学管理现代化建设[J].中国高等教育,2003,8.李京申,沈鸿.局域网管理(Windows NT平台)职业技能培训教程(管理员级).北京:希望电子出版社,2000 周绪,管丽娜.SQL Server 2000中文版入门与提高.北京:清华大学出版社,2001 杨树勋.高校教务和教学管理[M].化学工业出版社.刁兴春,李赤红.Web和数据库接口的技术研讨.通信工程学院学报,1998,12(2):19~232 刘德山.基于C/S和B/S混合结构的教学管理信息系统[J].辽宁师范大学学报,2002.曹向东.一种网络化教学信息管理系统的开发与实现[J].中国数据通信,2001,3.The design and implement of educational administration and teaching management system based on network

Hei Long jiang Institute of Science and Technology

Miaohui

Gao taiguang

Sun yongbo Abstract :The educational administration and teaching management which based on network is the direction of the teaching management development in the 21st century , Most colleges have known this situation ,and they all did a lot of R&D work, But the effect is not ideally or in fact the management is still stand-alone ,and the information can not be shared with high efficiency.This article designed and carried out the MIS of teaching management based on network with the development mode of B/S structure.And the article also put forward some key questions about the realization of educational administration an teaching management system Keywords: Educational administration and teaching management system

Browser/Server structure

上一篇:进口医疗器械自查自纠报告下一篇:大学生村官如何在“创先争优”活动中发挥作用