《基于群智感知的校园信息系统研究与设计和实现计算机科学与技术专业.docx》由会员分享,可在线阅读,更多相关《基于群智感知的校园信息系统研究与设计和实现计算机科学与技术专业.docx(41页珍藏版)》请在课桌文档上搜索。
1、*tj名者*71.1研究课题的提出7L2国内外研究现状71.3 本文的主要工作71.4 本文组织结构8第二章相关技术和研究工作102.1 Android移动应用开发102.1.1 AndrOid应用开发概述102.1.2 XUtilS3开发框架112.1.3 Android应用开发模式112.2 群智感知技术12221群智感知基本概念12222群智感知数据采集122.3 奖励机制132.4 本章小结13第三章需求分析与功能设计153.1 系统应用分析153.1.1 用户群体分析153.1.2 应用范围分析163.2 功能设计163.2.1 系统概述16322功能模块16173.2.3 主体业务
2、和功能实现3.3 奖励机制模型设计183.4 本章小结18第四章系统研究设计204.1 系统架构设计204.2 移动客户端设计204.3 服务器端设计214.3.1 服务器端概要设计214.3.2 数据库设计224.3.3 NgrOk内网映射234.4 客户而与服务器“而乂互设VI.23第五章系统实现254.4.1 噪声监测定位服务254.4.2 移动客户端网络编程304.4.3 移动客户端主界面逻辑314.4.4 移动客户端活动跳转325.2 服务器端的实现335.2.1 基本说明335.2.2 服务器核心API接口335.3 Ngrok内网穿透375.3.1 基本说明375.3.2 使用方
3、法375.4 本章小结38第六章总结和展望396.1 本文总结396.2 未来工作展望39参考文献41致谢42摘要随着移动互联网的飞速发展,4G(The4thGenerationcommunicationsystem)网络不断普及,为了进一步提高用户体验,5G网络也逐渐面向社会群体并在部分地区进行试用。智能设备凭借着其便捷性、及时性、互动性等因素聚集了庞大的用户群体。因此,为了满足用户各方面需求,移动设备不断更新,突出表现在其强大的计算能力、性能和集成了数量众多、功能复杂的传感器等方面。传统传感网络通过部署大量无线传感器来进行数据收集任务,限制因素较多且不易于维护,群智感知技术应运而生。它充分
4、使用了用户闲置的移动设备的感知能力,对其下发感知任务,高速网络的支持使得用户能够有意识或无意识的参与到任务中,并为专业人员提供所需数据,从而完成大规模、复杂的感知任务。本文意在开发一个基于Android平台的校园信息系统。通过应用群智感知技术,对校园不同地区不同地点进行噪声收集并上传服务器提供给用户进行阅览,使用户能寻找更加合适的地点来学习。同时,在系统中也将引入奖励机制,从而提高校园用户的参与度和积极性。本文根据群智感知技术和奖励机制,完成了包括客户端和服务器端的系统设计。在此基础上,对深层次的功能需求提出构想,并提出了相应的可行方案。关键词:群智感知;奖励机制;校园信息AbstractWi
5、ththerapiddevelopmentandproliferationofthewirelessInternetandthe4G(The4thGenerationcommunicationsystem)technology,5Gnetworksaregraduallyconductedinsomeregionsaimingatimprovingtheuserexperience.Mobiledeviceshavegatheredalargenumberofusersduetoitsconvenience,timelinessandinteraction.Therefore,inordert
6、omeetthevariousneedsofusers,mobiledevicesareconstantlyupdated,highlightingitspowerfulcomputingcapabilities,performanceandintegrationofalargenumberofsensorswithcomplexfunctions.Traditionalsensornetworksdeployalargequantityofwirelesssensorstoperformdatacollectiontasks,andtherearemanylimitationsanditis
7、hardtomaintain.Thus,crowdsensingcomeintobeingsinceitcantakefulladvantageoftheusersmobiledeviceasasensingunitandassignsperceptualtaskstousergroups,high-speednetworksupportenablesuserstoconsciouslyorunconsciouslyparticipateintasksandprovidedataforprofessionalstocompletelarge-scale,complexsensingtasks.
8、ThethesiswillchoosecrowdsensingtechnologytodevelopacampusinformationsystembasedontheAndroidplatform.Throughtheapplicationofcrowdsensingtechnology,noiseiscollectedatdifferentareasofthecampusandisuploadedtotheserverforuserstoread,soastoprovideuserswithreal-timeinformationqueriestoachievethepurposeoffi
9、ndingamoresuitableplaceforlearning.Atthesametime,incentiveswillalsobeintroducedintothesystemtoincreasetheparticipationandenthusiasmofvolunteers.Thisthesiscompletesthedesignoftheentiresystemarchitecture,includingtheclientandserver,basedontheintelligenceandtheincentives.Onthebasisofthecompletionofthes
10、ystemdesignandimplementation,theconceptofdeep-levelfunctionalrequirementsisproposedaswellascorrespondingfeasiblesolutionsaresuggested.Keywords:CrowdSensing;IncentiveMechanism;Campusinformation时至今日,社交类应用五花八门,如很早就火热起来的传统社交应用QQ,方便快捷的微信应用,知识问答的知乎平台和逐渐没落的校园信息平台人人网。随着大学生数量的不断增加,庞大的人群数量已然让校园成为了一个社区。大学生活丰富多
11、彩,信息量纷繁复杂,社区人群无法即时获取到自己所需要的信息数据。因此,针对个人的调查研究以及对大学生日常生活中问题的访问研究,提出了校园信息平台构建的设想。本文着重于对校园信息平台的分析,意在构建一个校园信息系统,并在其中引入群智感知技术,通过对Android应用开发技术的学习,开发了一款校园信息平台系统,着重对校园内外周边环境噪声监测、定位和分享进行实现,其中包括需求分析、功能设计、系统架构设计以及整体功能系统的实现。本文涉及的主要工作有:(1)研究校园中涉及到群智感知的方向,并结合奖励机制提高用户的参与度和积极性,来获取更多更广的即时信息。(2)学习AndrOid平台开发技术,学习TOmC
12、at服务器配置搭建。(3)对校园信息平台功能进行需求分析,功能设计,奖励机制算法设计。(4)对系统进行整体设计,分为客户端和服务器。(5)对系统功能模块进行实现。第一章绪论本章首先对课题进行分析和设想,了解其在国内外的发展现状,紧接着概述了本文的主要工作和设计思路,在本章的最后则介绍了论文的整体组织结构。1.1 研究课题的提出时至今日,社交类应用五花八门,如很早就火热起来的传统社交应用QQ,精致便捷的微信应用,知识问答讨论的知乎平台和逐渐没落的校园信息平台人人网。随着大学生数量的不断增加,庞大的人群数量已然让校园成为了一个社区。大学生活丰富多彩,信息量纷繁复杂,社区人群无法即时获取到自己所需要
13、的信息数据。因此,针对个人的调查研究以及对大学生日常生活中问题的访问研究,提出了校园信息平台构建的设想。1.2国内外研究现状互联网起源于美国,在此期间,互联网诞生了许多的奇思妙想。FaCebook解决了社区群体间人与人直接的交流互动的问题;TWitter解决了信息实时传递分享等问题;GOOgIe解决了信息检索的问题;Y。UtUbe解决了视频分享等问题。但由于某些原因,国内的诸多用户无法正常的使用此类应用。为了满足庞大的用户群体需求,国内也逐渐出现了此类应用,如人人网、微博、百度、各类视频直播平台等,虽然在使用上没有了门槛的限制,但由于利益等关系,提供的信息也是鱼龙混杂,用户无法及时获取到自己想
14、要的信息。创建于2014年的FaCebook,最初只是为在校大学生提供信息交流、社交等服务,随后它不断完善,逐渐形成个性化和多元化的社交信息,在FaCeboOk中,熟知的关系使得用户之间的交流更加的轻松愉悦,也更加的真实。随着其迅速发展并逐渐壮大,Facebook不在仅仅局限于在校园内的发展,成为了全球最大、最实用的交流社交平台。FaCebOOk正是抓住了互联网社区化发展的趋势,从而获得了成功。1.3 本文的主要工作本文的主要工作是设计一个基于Android的校园信息化平台,选用AndroidStUdio作为系统的客户端开发工具。 在进行系统开发前,本文首先进行相关技术研究和调研。(1)对An
15、droid移动开发技术的研究。简要概述Android移动应用开发的相关要点,包括JaVa开发语言和XUtilS3开发框架。(2)研究群智感知技术。对群智感知技术的基础概念进行一定的了解,分析数据采集方式的异同点。(3)研究奖励机制,为了提高用户参与任务的积极性和参与度,设计出合理的奖励机制算法,将其运用到系统相关的任务中去,从而获取实时可靠的信息来提供给用户群体参考。 需求分析和功能设计本项目在对应用进行开发之前,需要对应用的需求和功能模块进行设计,为了尝试将群智感知引入到校园信息生活中,本文首先分析了日常生活中设计到群智感知技术的同类应用,再结合自己的日常生活和咨询身边同学获取相关信息。对应
16、用的功能进行设计并找寻功能实现的方法,最后,为了提供高用户群体的积极性和参与度,设计相关的奖励机制算法。 系统结构设计为了提高应用开发的效率,以有限的时间,取得最大的进度,选取了XUtiIS3开源框架对客户端进行辅助开发,包括Ul界面设计、网络交互设计,同时对系统的架构进行设计。 系统功能实现本次应用选用AndroidStUdio开发平台进行客户端应用开发,包括Ul界面设计、网络请求响应和数据传输、JSoN序列化传输、活动逻辑设计和实现。服务器端则是通过TOmCat在本地搭建服务器,服务器数据库则是使用本地的MySQL关系型数据库。考虑到移动用户的用户群体,本服务器通过Ngrok进行反向代理,
17、将本地Web应用暴露在公网上,供其他用户共同体验并协助调试。1.4 本文组织结构本文共分为六个章节,安排如下:第一章:绪论。本章首先解释提出课题的依据,简单介绍了相关技术的发展现状。最后说明了本文的的主要工作和设计思路并分章节介绍了本文的组织结构。第二章:相关技术和研究工作。本章首先简单概述了AndrOid开发,包括Android的平台架构、Android的优势、Android开源框架xUtils3以及Android开发模式。然后阐述了群智感知技术基本概念、数据采集方式,最后阐述了引入奖励机制的原因和必要性。第三章:需求分析与功能设计。需求分析主要包括用户群体分析和应用范围分析,设计应用的主要
18、功能模块,包括系统概述、功能模块和主体业务功能实现。最后进行了奖励机制模型设计。第四章:系统研究设计。提出了基于AndrOid平台的校园信息系统设计方案,包括客户端和服务器端设计,接着介绍了用于服务器端的Ngrok内网映射技术,并简单阐述了客户端和服务器端交互模式。第五章:系统实现。介绍了基于AndrOid平台的校园信息系统主要功能模块的实现方法和过程,服务器端的核心API接口实现方法,最后考虑到移动用户群体,通过Ngrok内网映射将Web服务器部署在外网上供用户访问。第六章:总结与展望。对全文内容进行了总结同时对未来创新改进工作进行了设想,提出创新点和改进方法。第二章相关技术和研究工作本章简
19、述了Android开发,包括Android开发平台架构、优势所在、xUtils3开发框架和开发模式。接着详细介绍了群智感知技术,描述了其数据采集方式的异同点,最后解释了引入奖励机制的必要性。2.1 Android移动应用开发2.1.1 Android应用开发概述Android最早是由AndyRUbin开发的,主要用于支持手机的操作系统,在2(X)5年8月被Google收购,2年后,Google联合84家公司组件了手机联盟,将Android系统进行了改良,从而有了真正意义上的AndrOid操作系统。首部Android智能手机于2010年10月发布,其后AndrOid操作系统沿用到了平板电脑以及其
20、他领域上Android的市场占有率很快跃居全球首位。2.1 l.lAndroid平台架构(1) Android平台是由4个部分组成,分别是Linux内核层、AndrOid运行时库和其他库、应用框架层和应用程序层。(2) 1.inux内核层:Android的核心系统服务是基于LinUX2.6内核的,添加了一个名为Goldfish的虚拟CPU和AndrOid所需的特定驱动代码。该层提供了安全机制、存储器管理、进程管理、网络堆栈和驱动模块。它使用的是YAFFS2(YetAnotherFlashFileSyStem)文件系统。YAFFS2是一种开源的,专为NANDFlash所设计,具有很好移植性,能在
21、多种系统上运行的文件系统。(3) Android运行时库和其他库:前者包含了一组核心库和DaIVik虚拟机,同时它还拥有大量库类支持,且大部分为开源代码,如Android系统采用的嵌入式数据库SQIite等叫Dalvik是谷歌公司自己设计用于Android平台的虚拟机,但是DaIVik不流畅的运行效率一直为用户所诟病,在其后便出现了ART(AndroidRuntime)o(3)应用框架层:在该层中,开发人员拥有访问核心应用所使用的所有APl框架的权限。AndrOid应用框架的架构设计简化了组件的重用性,所以任何应用都可以发布他们的组件,在保证安全的情况下,这些组件也可以被直接使用。(4)应用程
22、序层:AndrOid的应用程序通常是以JaVa程序编写的,同时还包括了存储在res目录中的各种资源文件。该层提供相应的APl供开发者实现应用开发。2.1.1.2Android的优势AndrOid做的最成功的一点,就是凭借着其高度的开放性,吸引了大量的开发者。开源的代码库、无须授权、免费开发软件、社区第三方资源共享等,为开发者提供巨大的帮助。越来越多的开发者愿意在Android平台是进行开发学习。Google的日益强大也使得Android收集可以无缝结合GOogIe提出的相关服务,如地图、邮件等,同时AndrOid也可以通过第三方平台与其他应用相结合。由于Android的这些优点,出现了很多为用
23、户量身打造的的产品。1.1.2 Xutils3开发框架xUtils是基于Afinal开发的功能较为完善的一个Android开发框架,在2017间发布了xUtils3.0最新版本,不仅在原基础上添加了新功能,还提高了框架的性能。xUtils支持超大文件(超过2G)上传,提供了丰富的http请求协议,更加灵活的0RM(0bjectRelationalMaPPing)以及更多的事件注解支持。xUtils是最低兼容Android4.0版本(apilevel14)。虽然xUtils3包含了大量功能,但依然很轻量级(246K),且特性强大,使用方便。1.1.3 Android应用开发模式现如今,安卓开发己
24、经发展日趋稳定完善,产生了3种主要开发模式,第一种是基于客户/服务器(C/S)架构的原生开发模式(NatiVeApp),面向于高性能、快速响应类的终端应用。第二种是基于浏览器/服务器(B/S)架构的Web应用开发模式,综合两种模式的混合开发模式叫三种开发模式特点如图2.1所示:NativeAppHybridAppWebApp侬接近优秀差睁快慢跨平台开发成本昂贵三诞碎片化适配三国严整严3!严更三姊支持谈非常短缺通用人才版本升级维护保守开放强中弱图2.1三种开发模式特点2.2 群智感知技术221群智感知基本念群智感知技术是指通过(人所携带的)各种移动终端设备对环境进行感知和数据收集,由于节点的移动
25、性和社会性等特性,它解决了传统传感网络节点覆盖不足、成本代价大、缺乏可扩展性等问题,并且提高了感知数据的实时性和可靠性网。移动用户通过移动设备有意识或者无意识的参与到感知任务中来,完成规模庞大内容复杂的任务。群智感知技术使得收集数据的不再必须是专业的技术人员,将收集数据的任务分配给社会上的普通个体中,以个人为中心,实现个体与群体的双赢网。222群智感知数据采集群智感知技术的感知数据由用户参与,在感知层进行收集。服务器产生感知任务,将其分发给用户,用户有意识或无意识的进行感知数据的收集。因此,感知数据的采集方式也分为两种,即参与式感知和机会感知。在参与式感知中,由于用户是主动参与数据收集任务的,
26、数据的精度相对较高,但是由于用户的主观意识干扰,对数据的精度存在一定的干扰因素。又由于用户的活动时间的不确定性,用户无法将任意时刻符合要求的感知数据进行采集,导致数据采集的实时性不高,如在道路监控应用中,用户感知到道路拥堵信息,当用户将道路拥堵信息进行收集上报时,用户已经离开了该段路段,因此导致了时间空间信息上的不准确,更重要的是,用户在路况信息复杂的情况下,无法实时不停的上传数据,也导致了感知结果的不确定性网。而在机会感知的方式中,用户是直接或间接的参与到数据感知任务中来“叫用户的干扰性较小。筛选感知数据的成本降低,对应的也带来了一些问题。由于不是用户主动参与进行数据收集,导致采集到的数据受
27、到应用环境和感知算法的约束。因此感知数据采集的难度相对比参与式感知难度高,群智感知数据还有可能泄露用户的隐私和敏感信息,因此需要设计一个合理的隐私保护机制用来保护用户隐私的同时进行数据采集UL本次设计中,用户是通过参与式感知方式主动参与到任务中来,用户的主观性影响较大,因此会引入奖励机制的概念来降低此类影响。2.3 奖励机制本文中主要采取的感知方式是参与式感知方式,因此用户的个人意愿起到了至关重要的作用。在群智感知中奖励机制的作用是在系统平台管理下希望有更多具有移动设备的用户参与到感知任务中来,提供可靠实时的感知数据。群智感知数据采集受到参与者数量的限制,主要存在两个原因:(1)参与者希望能在
28、为服务器提供感知数据的同时能够获取一定的报酬,而不是无偿无条件的情况下参与到任务中来。因为感知数据的同时对消耗设备电量、计算资源、数据流量以及用户自己本身的时间。若没有报酬,用户难以保持积极的心态持续参与到任务中。(2)用户在为服务器提供感知数据的同时可能会暴露自己的部分隐私信息如数据文本、图像、音频、位置信息等,这也是用户在考虑是否参加感知任务的一大限制因素。因此,设计合理的奖励机制是激励用户参与感知任务提供可靠数据的重要技术手段。2.4 本章小结本章介绍了AndrOid移动应用开发,群智感知技术以及其奖励机制。在本章的第一节中,着重分析了Android平台的架构特点以及AndrOid开发的
29、优势所在之处。紧接着介绍本文中将设计到的XUtiIS3开发框架,展示了其强大的功能和特性。最后介绍了AndrOid开发的三种应用开发模式,本文中则是采用的原生开发模式。第二节介绍了群智感知技术的基本概念,着重分析了群智感知技术的数据采集方式,分为参与式感知和机会感知两种,并介绍了他们的不同之处和优劣势。第三节阐释了奖励机制的作用,分析了2个主要的限制因素,强调引入奖励机制的必要性。第三章需求分析与功能设计为了完成设计,除了需要相关的技术支持,还要在校园信息平台中引入群智感知技术和相关的激励机制,为校园用户提供较好的功能体验。3.1 系统应用分析3.1.1 用户群体分析本文中所要开发的应用主要针
30、对群体是在校大学生,结合2018年极光大数据关于2018年4月大学生群体app行为研究报告得出的数据看到,大学生的主要追求还是不断学习,汲取知识。从极光大数据大学生人群社交风格TGl如图3.1所示1:大学生人群社交风格TGltopieTOP2fTOP3即滴流的尚同城交友IBflI校园Ii区KESHJt三J3W幽SSttEKE3ITGI1;匿名聊天E3:幽默笑话EZStaK9i9TGIr0WJ11R占此K一”事占拉图3.1大学生人群社交风格TGI(极光大数据提供数据)在校大学生对知识的追求最为突出,但在校园社区方面的活跃度也相对靠前。另外,通过同学之间的问卷调查,可以简单总结出在校大学生的一些特
31、点:1、渴望在校期间能够不断提高自己、学习更多的知识。2、社交圈较窄,很少参加社交活动。3、拥有较多可自由支配的空闲时间,部分人无法合理支配。4、在校大学生普遍对移动设备存在依赖性,“手机不离手”成为普遍现象。3.1.2应用范围分析本文中设计的校园应用是针对校园环境噪声监测,首先由于校园内作为学习场所,噪声现象并不明显。通过本人亲身经历,对周边环境进行了解和对同学进行咨询发现,部分本该用来安静学习的场所由于各种因素导致环境声音较为嘈杂,反而并不适合用来学习或进行其他活动。本应用更倾向于室内噪声环境监测,由于受条件等因素制约,简化为对整体校园及周边环境噪声监测,上传显示噪声分布。3.2功能设计3
32、.2.1 系统概述本系统利用庞大的校园用户群体,收集大学校园内的有关信息,为大学生用户群体提供真实可靠的即时信息,同时引入群智感知的概念,通过奖励机制激发用户积极性,使其能为学生用户群体带来便利的同时也让用户能够为他们提供帮助,成为受其欢迎的校园移动应用平台。322功能模块本系统有热点信息、辅助功能、个人信息3个主要功能模块,其逻辑结构如下图3.2所示:3.2.3 主体业务和功能实现3.2.3.1 注册/登陆社区类应用是为用户提供信息咨询、功能服务的平台,每一位用户都拥有自己的专属账户用来保存自己的信息和发布信息。用户对个人隐私的重视度极高,所以对拥有个人专属账户是应用的必要之处。详细功能:(
33、1)注册功能:用户在使用APP前,首先要注册个人专属的账户,以供后续应用的登陆等操作。(2)登陆功能:用户在已经拥有个人账户时,通过登陆功能登陆到APP应用主界面,使用其中的各项功能。(3)找回密码功能:日常生活中,用户拥有各种各样的账户,忘记密码的情况在所难免,所以提供了密码找回功能,根据个人独有的手机号码进行密码找回功能。3.23.2 辅助功能该模块用于存放应用中的所有功能性模块,用于为用户日常生活中提供方便快捷的用户服务,同时用户也可以主动向服务器提供自己所收集到的信息,实现资源共享。详细功能:(1)周边环境噪声查看:在百度地图上显示当前服务器上所收集到的所有环境数据噪声,为用户提供预览
34、参考作用。(2)噪声监测定位功能:通过自身的移动设备对自身周边环境进行噪声监测,查看噪声分贝值,将数据传输到服务器以供其他用户进行浏览。3.23.3 我的信息、我的信息模块为用户提供个人信息的管理。3.3 奖励机制模型设计本文中通过用户主动参与方式来进行数据收集,引入合理的奖励机制模型来提高用户参与任务的积极性,在目前看来,对参与用户直接进行奖励是主要的激励方法口2】。本文中的用户行为主要是用户主动参与噪声数据收集。由于收集方式是通过手机声音传感器进行收集和算法数值转化,定位则是采取的GPS定位方式,所以在数据质量方面保证了数据的正确性,在代表性方面存在一定的偏差。而用户主动参与的积极性在任务
35、收集方面起到决定性作用,所以设计用户积分的计算公式如下:UserRank=5+Math,rint(2*Iog5-(Task)其中TaSk表示用户采集数据的次数,USerRank表示用户的积分值,Math.rint则是进行四舍五入取整操作。为了鼓励用户更多的参与收集任务,所以规定用户首次参加任务基础分为5分,根据用户参与任务的次数,构造一个渐进递增函数。在上面的函数中,用户参与任务的次数越多,每次获得的积分也就越高,这样随着获得积分数的增加,用户参与任务的积极性也会提高。但积分的数值不会无限制的增长,考虑到任务参与的峰值,当用户参与任务达到一定的次数,单次获取的积分数量也将渐进为一个常量。在本文
36、中同样考虑到积分的作用,如果只是单纯的进行积分奖励,而积分没有实质性的作用时,用户参与任务的积极性也会逐渐丧失。所以为了保持用户的积极性,本文在用户对服务器噪声数据每访问一次,则需要消耗5点积分值。当然,对新用户首次使用时,初次访问服务器数据是免费的。如果用户只是单纯的向服务器索取数据却不参与任务,当积分值减少到不足以访问服务器时,则无法再查看到服务器的噪声数据,这也是积分模型的合理之处。3.4 本章小结本章主要工作如下:1、通过对用户群体、应用环境分析,总结出社区类用户的主要需求,将本文所要演示的校园信息平台定位于校园之中,意在为大学生用户群体提供安静的环境。2、进行应用的核心功能模块设计。
37、3、设计奖励机制模型,提出积分模型UserRank,提出该模型的设计思路和设计方法。第四章系统研究设计本文在第二章中着重对Android技术开发和群智感知技术进行了背景了解和相关的技术研究,第三章中则对系统进行了需求分析和相应的功能设计。在本章节中,则是对设计的总体设计方案进行阐述,包括客户端和服务器端的设计。4.1 系统架构设计本文中将采用c/s架构I进行系统的设计,系统中的数据集中存储在服务器端,服务器采用MySQL数据库负责数据存取以及相应的业务处理工作,并为客户端提供对应的接口返回JSON数据。移动客户端实现系统的各个功能模块,包括用户交互Ul设计,应用逻辑设计,访问服务器数据存取解析
38、等操作,实现用户注册登陆、GPS定位以及周边环境噪声监测等功能,最后利用奖励机制提高用户主动参与活动的积极性。客户端利用http协议访问服务器。4.2 移动客户端设计移动客户端是应用开发的关键部分,如何开发一款移动应用取决于使用的目标群体,我们需要站在用户的角度去考虑关注的要点。应用设计中,我们通常以高内聚低耦合作为划分模块的准则,低耦合使得代码在后期更易于修改和维护,高内聚则意在模块之间关系要清晰明了,这使得代码在运行时更加安全。另外在完成模块设计和功能实现的同时,我们还要考虑良好的用户交互体验。移动客户端的核心架构图如图4.1所示:用户交互层网络编程模块传感器模块业务逻相模块用户登陆横块数
39、据存取层网络交互层服务器本地数据持久层图4.1中,移动客户端被分成多个层次:用户交互层、应用层、数据存储层、本地数据持久层、网络交互层,每一层都有其本职工作并为上层提供服务。1、用户交互层:该层主要负责完成用户交互UI界面的设计,点击事件的接受和响应。2、应用层:该层涵盖了移动客户端的各个模块功能:(1)登陆注册模块:主要负责用户的注册、登陆、密码找回等功能。(2)业务逻辑模块:负责完成移动客户端主要辅助功能的实现,包括百度地图API接口实现、定位功能、噪声监测和数值转换功能实现。(3)网络编程模块:由于本次设计使用了XUtilS3开发框架,该开发框架的网络模块大大方便了在实际开发中的网络模块
40、的开发。(4)传感器模块:主要负责处理移动设备传感器检测收集的感知数据,如GPS定位信息、噪声监测信息等。3、数据存取层:数据存取层主要负责对本地数据的存取,包括读取用户登陆、注册信息,对定位位置信息、噪声监测数值等进行存取操作。4、本地数据持久层:该层主要负责本地数据的持久化存储,分为硬盘持久化存储和内存持久化存储。5、网络交互层:该层负责完成移动客户端通过网络请求访问服务器端的APl接口,接受和响应网络数据。对服务器响应的json数据通过Gson进行解析获得我们需要的数据。4.3 服务器端设计4.3.1 服务器端概要设计服务器端主要负责实现后台业务逻辑和系统的数据存储操作,并为客户端提供接
41、口服务。服务器端核心架构图如图4.2所示:交互接口层工业务逻辑层工数据库图4.2服务器端核心架构图如图4.2所示:服务器端分成了3个部分,业务逻辑层根据对应的业务请求进行服务器的访问,交互接口层则是对业务逻辑层分别进行封装后为客户端提供对应的APl接口服务。业务逻辑层根据具体的业务模块分为:用户登陆注册模块、定位信息存取模块、噪声监测值存取模块等服务器功能以及其与数据库的交互。4.3.2 数据库设计本节简单介绍了服务器端数据库中重要的表结构(1)用户表loginuser字段类型说明Idint(10)用户标志,主键,自增userjoginnamevarchar(20)用户名user_nickna
42、mevarchar(40)用户昵称user_pwdvarchar(20)用户密码user_avatarurlvarchar(40)用户头像Urluser_gendervarchar(20)用户性别user_telvarchar(40)用户联系方式user_participationdecimal(10)用户参与度user_rankint(20)用户分数值user_createtimevarchar(255)用户注册时间(2)噪声定位数值表POSitiOninfo字段类型说明Idint(10)信息标识,主键,自增userjoginnamevarchar(20)用户名noise_valuevarc
43、har(255)噪声值LatitudeDouble定位经度LongitudeDouble定位纬度4.3.3Ngrok内网映射一款应用的各类数据是存储在公共服务器上,为了给任意用户提供数据存取服务,服务器需要对外开放给用户进行访问,所以在这里使用到了Ngrok内网映射服务。Ngrok是当下非常流行的一项反向代理服务,用于进行内网穿透,通过在公共的端点和本地运行的Web服务器之间建立一个安全的通道。这样我们就可以将本地的Web服务器部署在外网上供所有用户进行使用和调试等操作,本服务支持80端口以及自定义tcp端口转发等。4.4 客户端与服务器端交互设计本章的前三节中介绍了本系统的整体架构,并对客户
44、端和服务器端进行了详细设计。客户端方面进行了详细设计,包括Ul设计和交互页面设计等。客户端访问服务器是通过网络请求模块进行连接,本次设计中使用了XUtilS3开发框架,大大方便了在应用设计中网络模块的开发。客户端通过XUtiIS3集成的http网络传输协议,主要是以get的方式为主。客户端根据对应的业务需求,利用http协议发送ReSqUeSt请求给后台服务器,服务器接收到请求后处理业务,同时根据请求的要求返回一个JSON格式的响应数据给客户端,客户端接收到这个响应数据后,通过GSON工具对JSON数据进行解析成为可识别的数据格式,并反馈给用户。4.5 本章小结本章的主要工作为:1、考虑采用C
45、/S架构对系统进行整体的架构设计。2、完成客户端架构设计和客户端交互界面的设计。3、完成服务器端架构设计,设计服务器端数据库,将服务器部署在公网上供用户使用。4、采用http网络传输协议实现客户端与服务器端的交互。第五章系统实现本章在完成前文所述功能设计的基础上,完成了模块功能的具体实现,包括客户端的核心功能实现、服务器端核心APl实现以及服务器架设方式的介绍。51客户端核心模块的实现5.1.1噪声监测定位服务移动客户端的噪声监测定位服务主要集中在百度地图上进行实现,如图5.1、5.2分别是定位服务和噪声分布定位和监测图。用户:IlIll当前曝声值:27db图5.1定位服务图T:16- 0L1
46、C用户:1111111当前曝声值:图5.2噪声分布定位和监测图为了实现如图5.1和5.2所示的信息,需要实现以下几点要求:1、在系统中使用百度地图SDK。(1)申请密钥如果想要使用百度地图SDK,先向百度官方申请开发者密钥。如图5.3所示:tt*回诞*在信息(双击也改)11073165 Campus lj7P7Z42qwl657zL10QZibgylmW6Yw AMOldflC1106758S XinDW Gpm4jPTUd39PmEF6RHWQvOwEp4WlxVKU AndroidQ11067212 DINGWEI ShGuhvFyP9pOkGOd9Rcu7ofVv5ZvXP Androidfi11066816 DingWeaF7r2ucLP2lpu59TdeeIBVSQfgDUwbTH服务SS图5.3百度地图密钥申请(2)下载相关SDK如图5.4所示,根据系统所需要使用到的功能