移动近红外珍稀木材鉴别云服务系统的设计与实现——毕业论文_第1页
移动近红外珍稀木材鉴别云服务系统的设计与实现——毕业论文_第2页
移动近红外珍稀木材鉴别云服务系统的设计与实现——毕业论文_第3页
移动近红外珍稀木材鉴别云服务系统的设计与实现——毕业论文_第4页
移动近红外珍稀木材鉴别云服务系统的设计与实现——毕业论文_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

分类号 密级 公开 UDC 全日制硕士专业学位研究生学位论文移动近红外珍稀木材鉴别云服务系统的设计与实现作 者 姓 名:指 导 教 师: 专业学位名称:农业推广硕士专业学位领域:农业信息化研 究 方 向:近红外光谱技术所 在 学 院:信息工程学院论文提交日期: 年 月浙 江 农 林 大 学 年 月 日摘要近红外光谱技术在木材品种鉴别方面的应用已经有了大量的研究。在实验室环境中,近红外光谱技术结合化学计量学中一些常见的定性分析方法已经能够很好的将指定的某几类范围内的木材进行区分和识别,并且具有较高的正确率。传统的近红外光谱设备体积庞大,只能固定架设在实验室中,分析材料只能运送到实验室进行采谱分析,这限制了近红外光谱野外作业的应用能力;一般要对某一领域和产品进行近红外光谱分析要进行近红外建模,此过程十分消耗人力物力,建模的周期又很长,建模成本很高,建模程序又受到编程语言的限制,不能够很好的移植到不同的平台,这些缺点严重制约了该技术的普及和应用。本文结合以上的背景,利用现阶段近红外在木材识别方面的研究成果,提出并设计了一套移动近红外珍稀木材鉴别云服务系统。该系统利用了前人对于近红外光谱技术在木材鉴别领域的探索,结合了云端计算的概念和云服务器程序开发技术,提出了一种从近红外设备到客户端程序,客户端程序再到服务端的三层体系计算架构。把珍稀木材的鉴别计算模型部署到云端,封装好接口以提供客户端访问;然后分别基于Windows Forms应用程序和Android应用程序,开发了相应的近红外珍稀木材检测客户端,客户端应用程序连接了近红外设备能够实现操控设备以获取光谱数据,客户端还负责和云端服务器沟通,把待计算的光谱数据通过网络传给服务端程序计算并接受返回结果。设备的轻便性有利于实现近红外光谱采集的移动野外作业,而云端的计算则克服了移动设备如Android手机计算能力较弱,耗时较久的问题。本文中研究和实现的内容分为四大部分:1)珍稀木材近红外光谱计算模型(SIMCA分类判别预测模型)的构建;2)采用ASP.NET API的服务端编程技术构建云端服务程序;3)面向Windows系统并且适用于触控平板操作设计体验的Windows Forms客户端程序开发实现;4)面向Android移动操作系统客户端程序开发实现。该系统的设计和实现针对解决传统近红外光谱分析技术在生产应用中的缺陷提供了一种有效的方案。关键词: 云服务,近红外光谱,珍稀木材鉴别,Windows Forms,AndroidABSTRACTThe application of near infrared spectroscopy in the identification of wood varieties has been a lot of research. In a laboratory environment, some qualitative analysis method based on near infrared spectroscopy and chemometrics, has been able to well specified separation and identification of some species within the wood, and has high accuracy.The near infrared spectrum detection equipment of large volume, it can only be placed in the laboratory, analysis of materials can only be transported to the laboratory for spectral analysis, which limits the application of near infrared spectroscopy and moving ability of working out. To establish an analytical model for the near infrared spectrum analysis of a certain field or product, This process is consumption of manpower, the modeling cycle is very long, the modeling cost is very high, but also by the modeling procedure of programming language restrictions, can not be ported to different platforms, these shortcomings restrict the popularization and application of this technology.Combined with the above background, this paper proposed and designed a set of mobile near infrared rare wood identification cloud service system based on the research results of the present stage in the field of wood identification. The system uses the previous exploration of near infrared spectroscopy in wood identification field, combined with the concept of cloud computing and cloud server program development technology, put forward a kind of from near infrared equipment to the client, the client program to the server, the three layer architecture. The identification model of the rare wood is deployed to the cloud, exposing the interface to provide client access. Then, based on the Forms Windows application and Android application, the corresponding near infrared rare wood detection client is developed. The client application connects the near infrared device, which can control the device to obtain the spectral data. The client is also responsible for the communication with the cloud server, the spectrum data to be calculated through the network to the server program to calculate and accept the return results. The portability of the equipment is conducive to the realization of near infrared spectrum acquisition of mobile field operations, while the cloud computing has overcome the mobile devices such as Android mobile computing power is weak, time-consuming problem. The research and implementation of the content of this paper is divided into four parts: 1) SIMCA classification discriminant prediction calculation model of rare wood near infrared spectroscopy; 2) build the cloud server application based on ASP.NET API; 3) Windows Forms client program construction and suitable for touch panel operation design experience; 4) Android client application construction. The design and implementation of this system provides an effective solution to solve the defect of traditional near infrared spectroscopy technology in the production and application.Key words: Cloud service, near infrared spectroscopy, rare wood identification , Windows Forms,Android0 ABSTRACT目 录摘要IABSTRACTII1绪论51.1研究背景51.2国内外研究现状61.3课题的研究内容71.4课题的研究意义72相关理论和技术基础92.1近红外光谱技术的理论基础92.1.1近红外光谱的吸收原理92.1.2近红外光谱技术92.1.3近红外光谱技术特点102.2材料和定性分析方法112.2.1实验样本112.2.2试验方法112.3Asp.Net Web Api服务端技术132.3.1 Asp.Net Web Api背景132.3.2 Asp.Net Web Api的体系结构142.4Windows Forms技术基础162.5Android技术基础172.5.1 Android操作系统架构172.5.2 应用程序组成19本章小结203系统方案设计213.1系统整体框架设计213.2定性判别模型算法的设计223.3服务器端功能设计233.4 Windows Forms应用程序功能设计233.5 Android应用程序功能设计2569本章小结264系统开发实现274.1系统开发环境274.1.1建模程序和服务端开发环境274.1.2 Windows Forms客户端开发环境274.1.3 Android客户端开发环境274.2建立Simca木材分类模型274.2.1模型流程构建274.2.2模型元素构建294.3Web Api服务程序的具体实现324.3.1服务端工作流程构建324.4 Windows Forms客户端实现364.4.1近红外光谱仪交互模块374.4.2图谱的列表和图形化显示模块414.4.3服务器交互模块454.4.4程序实现的效果图474.5 Android客户端实现484.5.1设备控制模块494.5.2界面显示模块494.5.3服务端交互模块53本章小结555总结展望565.1总结565.2展望56参考文献58附录60Error! No text of specified style in document. Error! No text of specified style in document.1 绪论1.1 研究背景珍稀木材的种类很多,不同种类的木材价格各异且相差很大。中国 红木 国家标准(GB/T 18107-2000),将5属8类33种珍稀木材列为红木1,对品类的木材学名和商品名做了规范。近年来,由于珍贵木材原料的日益稀缺,其价格也逐年上涨,与其相对应的家具制品价格更是昂贵,甚至个别精致红木家具制品要以百万人民币来衡量。存在不少商家为了获取高额利润,用与红木有相似外观特征的低价木材冒充高档红木,或者在红木家具制品中混杂劣质红木,严重破坏了红木家具制品的市场秩序,损害了广大消费者的利益。据中国消费者协会调查显示,红木家具市场的合格率仅为30%,红木家具投诉的数量也是逐年增加2。木材检测技术的研究,木材检测设备与软件的开发能准确有效的检测仿冒,以假乱真的红木制品,对矫正不良市场秩序,规范红木家具市场具有重要的积极意义。近些年来,近红外光谱分析技术在木材无损检测上面的应用研究比较多,近红外光谱分析所采用的算法和成型的软件也都比较成熟,但是由于近红外技术在任何领域上的应用都需要一个专门的建模过程,不管是定性还是定量分析,前期的建模都要耗费极大的人力和物力,这使得近红外技术应用的前期研究成本会非常的大,因而阻碍了该技术广泛的应用。此外,传统的近红外设备体积庞大,光谱的计算也对计算机的性能提出了较高的要求,通常只能架设在实验室或者固定的地方,使得其应用的灵活性和移动便携性大大的降低了。对于一些需要野外作业的内容则显得不是很合适。目前有杭州尼迩光电科技公司开发的轻型近红外设备尺寸(直径*高)为45*42毫米,重量小于60克,这为近红外设备手持化的室外检测提供了解决方案。由于近红外设备必须搭配一台计算机,传统的笔记本电脑还是过于笨重,不方便外出携带,在进行大量的光谱采集时,重复的鼠标操作、频繁的设备移动还是显得笨拙,并且操作过程很容易出错。为此我们考虑采用更加轻便和更具移动性能的Android触控智能手机和Windows平板电脑来取代传统的笔记本和台式计算机来进行光谱的获取。但是,虽然现在移动计算设备发展迅速,比如现在的基于Android操作系统的平板和手机,但其计算能力和性能较好的台式计算机或笔记本电脑相比相差太大。经笔者亲自实验,同样的计算程序部署在台式计算机上运算只要500-700毫秒,而部署在测试手机上运算时间却要30-40秒,耗时太久,无法满足珍稀木材和红木家具现场快速的检测的需求。虽每年移动设备的计算性能都会提高一个台阶,但是还是无法满足大量近红外光谱数据的快速计算要求。近年来,中国4G网络覆盖快速推进,4G网络的传输速率峰值能达到100Mbps,网络传输中的耗时会变得很小。因此,通过移动设备获取光谱,把待计算的光谱文件上传到云端高性能计算服务器中计算,然后接收返回计算结果的方式成为了解决目前问题的一种思路,我们采用Asp.Net Web Api服务端程序开发技术,借助远程服务计算机来解决手机等移动设备计算能力弱,计算耗时长的问题。利用云端计算的思想和技术,不仅能解决移动设备计算性能的问题,还可以提高模型的重复利用率,实现一个云端模型部署,为各个不同平台,多终端设备提供计算服务,为近红外光谱技术在木材识别方面的应用提供一种便捷可行的方案。1.2 国内外研究现状近红外光谱分析技术应用在木材识别领域的研究探索很多,杨忠等3利用近红外光谱技术对八类红木光谱进行研究分析,结果表明近红外光谱吸光度与红木色度学参数之间存在非常高的线性相关性,可以较高精度得识别红木类别,但其研究的范围大,没有具体到红木中的33种。马明宇等4利用人工神经网络结合近红外光谱,分别采用反向传播人工神经网络(BPANN)与广义回归神经网络(GRNN)建立了一般树种识别模型,结果表明BPANN模型和GRNN模型鉴别精确度分别在97%和99%以上。杨金勇等5以大叶桉和3类松树样品作为研究对象,利用主成分分析与Fisher判别模型结合近红外光谱技术进行木材树种的分类识别研究。刘亚娜6建立常见木材树种的近红外光谱识别模型,在此基础上探讨影响木材近红外光谱识别技术的因素,并初步探讨了木材近红外光谱识别技术的机理。2003年,日本专家利用NIR分析技术结合马氏距离对木材进行分类,成功识别出实验中的每类木材7。Adedipe8等利用近红外光谱和SIMCA实现了红橡木和白橡木的在线快速分类和分离。Russ9等研究了一种利用近红外漫反射光谱结合PCA以木材芯片的形式确定阔叶树种的方法。2010年,Fujimoto10等利用近红外光谱技术识别出了同种木材的死节和活节。Pastore11,12等将4种常用的珍贵木材:大叶桃花心木、圭亚那栋树、西班牙柏木和南美桃花心木研磨成粉并采集其近红外光谱进行分析,研究表明利用近红外光谱技术可以实现这4种木材的快速识别,但对样本进行磨粉等加工处理,这显然在实际应用中并不适用。以上的研究都表明,近红外光谱技术在木材识别领域的可行性。目前针对于近红外技术结合移动设备和云端计算思想方面的研究有:祁兴普、陈通13等基于Android操作系统,针对MicroNIR1700微型近红外光谱仪开发微型近红外实时监测云系统,实现了Android应用程序对近红外光谱仪的控制、光谱采集、样品指标检测、短信通知等功能,需要把相应的模型导入到手机中,光谱分析计算在Android手机上完成,云端服务只负责数据信息的保存。翟建龙14基于Andorid平板,针对MicroNIR1700光谱仪,设计了一种稳定的便携式针对脐橙水果品质检测装置,对脐橙品质建立了近红外分析模型,对成熟期和不成熟期的同一品种的脐橙的pH值和果皮厚度与近红外光谱吸光度建立PLS模型。使用Eclipse和Android SDK开发了水果光谱采集和品质检测的软件。其设计思想依然是单机版的分析设备,未能结合云端计算的概念。利用云计算结合近红外光谱的研究有黄华、祝诗平15等提出了利用云计算中的高性能服务器代替单机版主机,在云服务器上开发近红外光谱软件分析系统,并详细分析了近红外光谱云计算分析系统的架构与设计步骤。实验结果与单机环境下一致。然而该论文主要是提出近红外光谱技术和云计算的结合思想,在具体实现方面则不甚详细。相关研究都表明近红外光谱技术在木材识别方面的可行性,而结合云端计算的思想近些年来也随着云计算概念的流行开始越来越多的应用。本文参考了以上论文的研究成果,构建移动近红外珍稀木材云服务系统。1.3 课题的研究内容(1)整个系统的方案设计在对近红外光谱相关的定性分析算法、CShap编程语言、Asp.Net Web Api服务端编程、Windows Forms客户端以及Android操作系统应用程序开发进行了深入的学习和理解之后,设计了整个近红外珍稀木材鉴别云服务系统的设备到客户端,客户端到服务端三层结构。分别对建模系统,服务端,客户端程序各个模块功能进行了详细的设计。(2)研究近红外光谱定性分析方法及其编程实现,及对六种木材光谱样本的收集并建立分类判别模型,测试模型的准确性。建模方法的编写是整个系统中最重要和关键的部分,直接关系到系统的有效性。建模系统的设计还要有扩展性,因为光谱数据处理包括一系列的预处理方法、波长段选择、定性建模方法。(3)研究服务端的编程实现模型建立好以后,要把模型文件放到云端服务器,服务端程序实现两个功能:1)能够接受并处理客户端上传来的光谱文件。2)能够调用保存在云端的模型文件,使用模型文件里面保存的预处理,波长段选择,建模算法等计算程序对待测光谱进行预测判别,得出评价结果返回给客户端程序。本课题服务端程序开发使用Asp.Net Web Api编程技术实现。(4)Windows Forms应用程序的编程实现针对Windows操作系统平台的设备,对Windows Forms客户端应用程序进行编程实现,实现其中的三大功能模块:近红外光谱仪交互模块,图谱的列表和图形化显示模块,服务器交互模块。(5)Android应用程序的编程实现针对Andorid操作系统开发相应的客户端应用程序,实现其中的三大功能模块:近红外光谱仪交互模块,图谱的列表和图形化显示模块,服务器交互模块。1.4 课题的研究意义本系统的设计是基于对上面研究背景中所提及到的问题的分析,建立起一个近红外云端计算的服务系统,分别开发相应的Android应用程序和Windows Forms应用程序客户端实现一个云多个端的系统结构。本课题的研究意义如下:(1)实现云端Web Api服务程序,能够接受客户端所采集上传的光谱,并保存,实现木材判别模型的存储,程序调用模型和光谱进行预测判别,并且给客户端返回响应结果。实现近红外检测的联网和云端计算功能,解决移动设备计算能力薄弱的缺点。(2)实现Windows Forms应用程序和Android端应用程序,并且部署到Windows 10平板和Android手机上,使手持的设备可以采集近红外光谱,并对光谱数据进行显示,管理,上传等功能,实现近红外采集光谱谱软件和设备的便携化,手持化,移动化。(3)利用互联网思维提高近红外光谱技术应用水平的高度和广度,以及在实际生产环境中节省成本,提高作业效率提供了一种解决手段。综上所述,本课题的开展对实际生产环境近红外光谱珍稀木材检测技术在移动化,便携化,云端计算方面的实际开发操作部署方面具有比较现实的参考意义。2 相关理论和技术基础2.1 近红外光谱技术的理论基础2.1.1近红外光谱技术原理近红外(Near Infrared, NIR)区域按ASTM定义是指波长在7802526 nm范围内的电磁波。近红外光谱(Near-Infrared Spectroscopy, NIRS)属于分子振动光谱,产生于共价化学键非谐能级振动,是非谐振动的倍频和组合频,位于可见光和中红外光区之间,适用于测定含C-H、N-H、O-H等基团的物质,由于不同基团产生的光谱吸收峰位置和强度都不同,根据Lambert-Beer吸收定律,吸收光谱会随着样品成分组成或结果的变化而产生变化16。2.1.2近红外光谱技术近红外光谱技术,是根据近红外波段内的透射和反射光谱,对研究对象进行定性和定量分析的现代分析技术,因其具有高效、快速、成本低和绿色环保等特点,已被广泛用于食品17、药品18、林业19、农业20等领域中,是近年来分析化学领域迅猛发展的高新分析技术。近红外光谱技术构成近红外光谱技术主要包括近红外光谱仪、化学计量学软件和多元校正模型等。近红外光谱仪是用于采集被测样品近红外光谱的设备,化学计量学软件是用于关联光谱和样品性质的工具,而校正模型是用于反映样品光谱与性质之间对应关系的定量或定性的工作曲线。(1)近红外光谱仪近红外光谱仪的基本构造与普通光谱仪相同,都主要由光源系统、分光系统、测量器件、检测器、控制和数据处理系统及记录显示系统这6大部分构成21。传统分析仪因体积大、制样繁琐、检测速度慢、费用较高,随着微机电系统(Micro-Electro-Mechanical System, MEMS)技术的兴起,近几年国际上出现了一些基于MEMS技术的新型近红外光谱仪,具有重量轻、体积小、速度快、寿命长、可集成化以及成本低等优点,推动了光谱仪的小型化、便携化22,本研究中采用的就是基于MEMS技术的微型近红外光谱仪。(2)化学计量学化学计量学(Chemometrics)是一门应用数学统计学与计算机科学的工具,设计或选择最优量测程序和试验方法,并通过解析化学量测数据最大限度地获取信息的化学分支学科23。近红外光谱吸收强度弱,光谱信噪比低,易有一些与待测样本性质无关的信息造成的干扰,因此,对例如木材这种样本进行近红外光谱分析就需要从重叠、变动的光谱中提取微弱信息,化学计量学方法不可或缺,其主要作用是建立近红外光谱和组分(性质)之间的数学桥梁,建立校正模型对未知样品实现预测24。因此,近红外光谱技术的化学计量学方法主要涉及三方面内容:一是光谱预处理方法研究,对样本光谱进行预处理,减少以至于消除各种非目标因素对光谱造成的影响;二是光谱特征波长的选择与提取,有选择性地提取与分类目标有关的信息并抑制非相关特征和噪声的影响;三是近红外光谱校正方法研究,以期建立稳健、可靠、灵敏度高的校正模型。近红外光谱技术的测量过程本课题的研究对象为红木,首先采集制备样品并通过实验室方法测定木材样品的性质,对样品进行分类,分为校正集和验证集,对校正集样本进行近红外光谱扫描,对扫描的光谱进行预处理。然后将测得的样品性质添加到样品集中,用化学计量学软件进行建模,对模型进行校正,最后用建立的模型对未知样品进行预测,图2.1展示了整个测量过程。图 2.1木材近红外光谱技术测量过程Figure 2.1 Detection of wood by using near infrared spectroscopy2.1.3近红外光谱技术特点与传统分析技术相比,近红外光谱分析技术主要有以下几个优点:(1)速度快。测量过程只需1-2分钟,通过事先建立好的分析模型可以快速检测出样本的组成成分或性质。(2)效率高。通过一次光谱的测量和所建定量或定性模型,可同时对样本中的各组分或性质进行检测。(3)不需化学试剂,不污染环境。近红外光谱分析技术只需样品的光谱,不需要添加任何化学剂,避免了有害物质的产生,绿色环保。(4)可在线分析。由于近红外光在光纤中具有良好的传输特性,通过光纤可以实现光谱仪远距离和复杂恶劣环境在线测量。虽然近红外技术与化学法及其他仪器方法相比有许多优势,但也有它的局限性,主要表现在以下两个方面:一是近红外光谱分技术是一种间接分析技术。前期需要花费较多的时间和费用建立模型且模型需要维护和升级,模型建立的质量和模型的合理使用直接影响分析结果的准确性;二是测试灵敏度较低。这主要是由于近红外光谱作为分子振动的非谐振吸收跃迁几率较低。2.2 材料和定性分析方法2.2.1实验样本本系统对四种红木进行定性判别建模,分别是:奥氏黄檀,刺猬紫檀,大果紫檀,非洲紫檀。木材来源为本实验室采集全国各地珍稀木材生产厂家的这四种木材边角料,经由专业老师鉴定,确保木材样本的准确性。在测试环境温度25下,每个木材样品经过近红外光谱仪光纤探头扫描,采集和整理的四类木材近红外光谱样本数据见表2.1。表2.1四类珍稀木材近红外光谱样本集Table 2.1 Near infrared spectra of four kinds of rare wood珍稀木材种类样本数校正集验证集奥氏黄檀9030刺猬紫檀9030大果紫檀9030非洲紫檀90302.2.2试验方法预处理方法近红外光谱仪采集的原始数据中除包含与样本化学结构相关的信息外,同时也包含对光谱图中信息产生干扰的噪音信号,从而影响模型的建立和对未知样品的预测。因此,光谱数据预处理主要用于筛选数据、消除噪声和其他因素对数据信息的影响,为校正模型的建立和未知样品的准确预测打下数据基础。常用的数据预处理方法有数据平滑、数据求导等25-27。(1)数据平滑处理平滑处理是消除噪声最常用的一种方法,其基本假设是光谱含有的噪声为零均随机白噪声,若多次测量取平均值便可有效地平滑高频噪声,提高信噪比。常用的信号平滑方法有移动平均平滑法和Savitzky-Golay卷积平滑法28。本文采用Savitzky-Golay 卷积平滑法,相比移动平均平滑法,Savitzky-Golay卷积平滑法是通过多项式来对移动窗口内的数据进行多项式最小二乘拟合,本质上是一种加权平均法,更强调中心点的中心作用。(2)数据求导处理由于仪器、样品背景及其他因素影响,采集的近红外光谱经常出现谱图偏移或漂移现象,且对于样品不同组分之间的相互干扰导致光谱谱线重叠的现象,可采用求导的方法进行基线校正处理。常用的光谱求导方法一般有两种:直接差分法和Savitzky-Golay卷积求导法。对于分辨率高、波长采样点多的光谱,采用直接差分法求导后的光谱与实际相差不大,但对于波长采样点不多的光谱,该方法所求的导数误差较大,因此可采用Savitzky-Golay卷积求导法计算。(3)正交信号校正正交信号校正(Orthogonal Signal Correction, OSC)是1998年Wold等29提出的一种光谱预处理方法,其基本思想是利用正交化方法,消除光谱中与预测值无关的部分,从而得到“纯净”的光谱。OSC主要用于光谱过滤,删除数据中不理想的系统变化如基线漂移等,以提高模型的性能。建模方法簇类独立软模式法(Soft Independent Modelling of Class Analogy, SIMCA)SIMCA是一种以主成分分析为基础的方法,其基本原理是对校正集中每一类样本的光谱数据矩阵分别进行主成分分析,建立每一类的主成分分析数学模型,然后对未知样本分类。基于主成分分析的SIMCA判别方法主要步骤为:首先对校正集样本的光谱数据进行主成分分析,通过主成分分析为每一类样本建立一个主成分分析模型;计算未知样本与各校正集主成分分析模型的距离,找出最小距离的类。对于校正集中的各类,如类k,可建立其各自的主成分分析模型:(2.1)式(2.1)中Xk为校正集第k类所有样本的近红外光谱矩阵();n为第k类所有样本数;p为波长变量数;Tk为得分矩阵();为最佳主成分数,其可通过交互验证法确定;Pk为载荷矩阵();Ek为光谱残差矩阵()。于是,类k的残余方差:(2.2)式(2.2)中,eij为样本i的波长j处的光谱残差。对于未知样本,首先计算其得分向量和光谱残差:(2.3)(2.4)然后计算其光谱残差方差:(2.5)若方差和k类总残差方差有类似的数量级,则此样本可归于k类。若,则样本不属于k类。2.3 Asp.Net Web Api服务端技术Asp.Net Web Api是一种在.NET Framework上建立RESTful风格应用程序的框架,用于轻松构建可被多种客户端(包括浏览器和移动设备)访问的基于HTTP网络协议的服务端程序30。2.3.1 Asp.Net Web Api背景随着RESTful服务架构的流行,微软本身传统的Services框架WCF臃肿和庞大的体型及繁琐的各种配置开始逐渐不能满足企业快速搭建轻量级、多样化的服务框架的需求,而微软也意识到了这个严重性的问题。13年初,伴随着VS2012团队及.NET4.5框架的发布,微软正式推出Asp.Net Web Api。作为Asp.Net MVC 4的一部分,Asp.Net Web Api的设计目的就是简化RESTful服务的开发。Asp.Net Web Api不是架构的一次升级,而是一个全新的框架。它取WCF Web Api与ASP.NET MVC优点和精华于一身,去除WCF本身较繁琐的配置问题,只因专注提供基于HTTP 协议的Service,使得Asp.Net Web Api服务开发人员可快速开发出自身使用或对外公开的Web Api。极大地满足了为多种客户端同时提供服务的开发需求。Asp.Net Web Api可以在多种多样的场景下使用。如图2.2所示,通过使用纯粹的HTTP,它十分的轻量化,很适合被低功耗的设备使用,另外,他可以被基于浏览器的web应用提供服务,最后由于他是建立在HTTP协议之上,它也可以为分布式的云计算和企业级应用提供计算服务。图 2.2 Asp.Net Web Api可以用于广泛多样的场景Figure 2.2 Asp.Net Web Api can be used for a wide variety of scenarios2.3.2 Asp.Net Web Api的体系结构Asp.Net Web Api具有非常现代化的设计,利用了.NET Framework框架最新版本的强大的功能,但是它的核心,是建立在一个简单的管道和过滤器的设计模式,Asp.Net Web Api团队做了一些关键的决定,这些决定是这个架构具有很好的鲁棒性,模块化,和可测试性,一些重要的决定包括:异步的方式:Asp.Net Web Api框架采用自顶向下的任务异步编程模型,这是框架具有很强的扩展性。不在具有HttpContext.Current:虽然Asp.Net MVC 把HttpContext包含进HttpContextBase中为了更好的可测试性,Asp.Net Web Api在这方面做的更多,它把request的上下文属性都存储在Request.Properties字典里面。虽然HttpContext.Current仍能在Asp.Net Web Api中工作,但是强烈建议不使用它,因为很有可能在基于任务的异步进程转化中丢失上下文。客户端库复制相同的HTTP管道和服务器库一致:这有助于统一的编程模型,以及易于集成测试,因为你可以很快的唤醒客户端和服务器通信,并通过客户端的管道直接连接到服务端管道。能够宿主在IIS服务器和任何的self-hosted服务器,图2.3展示了Web Api管在IIS及自托管的框架:图 2.3 Asp.Net Web Api整体框架Figure 2.3 Asp.Net Web Api whole frame支持依赖注入:Asp.Net Web Api支持任何自定义的依赖注入框架通过简单的服务定位接口。可以对框架本身的组件服务定位:可以自定义很多Asp.Net Web Api元素来支持你自己定义的实现。高可测试性:Asp.Net Web Api框架所有的模块几乎都是可测试的。HttpConfiguration:Asp.Net Web Api运行时上下文在HttpConfiguration类中进行抽象和呈现,HttpConfiguration是定义运行时每个方面的核心位置,它没有静态的属性让它更易于测试,重要的上下文属性包括:Routes(路由)、Message handlers(消息处理器)、Global filters(全局过滤器)、Formatters(格式器)、Dependency resolver(依赖解析器)、Parameter binding providers(参数绑定提供者)。2.4 Windows Forms技术基础Windows Forms是.NET Framework下的一组托管库,被设计用来开发丰富的客户端应用程序。它是一个图形化的数据接口用来显示数据和管理用户交互,使客户端应用程序更容易部署和具有更好的安全性。Windows Forms提供了一个内容丰富的客户端程序库接口从托管代码访问本地窗口图形界面元素。它是建立在事件驱动的体系结构,类似于窗口客户端,因此,它等待用户的输入来执行程序。Windows Forms中的每一个控件都是一个类的具体实例。在GUI及其行为控制布局的使用方法和访问管理。窗口形式提供了各种控件,例如文本框、按钮和网页以及创建自定义控件的选项。它还包含用于创建画笔、字体、图标和其他图形对象(如直线和圆)的类。Windows Forms Designer是Visual Studio .NET下的一个工具,用来在窗体上插入控件并且安排它们的布局,用于添加代码来处理事件,实现用户交互。表格数据绑定到XML,数据库的数据可以使用DataGrid控件显示。应用程序设置是Windows Forms的另一个功能,用于创建、存储和维护运行时状态信息,可用于检索用户首选的设置,如工具栏位置和最近使用的列表。这些设置可以在未来的应用程序中重复使用。一些构建Windows Forms应用程序的最佳实践包括:窗体类可以扩展,使用继承,设计一个可以提供高层次的抽象和代码重用的应用程序框架。Forms应该是紧凑的,可以控制它的大小,提供最小化的功能。此外,控件的动态创建和删除可以减少静态控件的数量。Forms可以被分解成快打包在程序集中,可以自定的更新自己,被管理时对程序的影响减少到最小。设计应用程序是无状态的,可扩展性和易于调试和维护的灵活性。窗体应用程序应根据所需的信任级别设计,需要对权限请求,并在必要的情况下处理安全异常。Windows Forms不能通过跨应用程序域边界,因为他们并不是被设计为使用跨应用程序域32。图 2.4 Windows Forms 程序中的主要类及其层次关系Figure 2.5 Windows Forms main classes and their hierarchical relationships图2.5 展示了Windows Forms 程序中的主要类及其层次关系,下面对每个类进行简单的介绍:Control 类:Control是其他控件的基类。它具备了控件的最基础的功能,比如控件大小, 控件是否可视等。 Button控件,TextBox控件等都派生于Control类。ScrollableControl 类:ScrollableControl继承于Control 类并且给所有需要滚动条的控件实现了自动滚动的功能。CommonDialog 类:CommonDialog是所有对话框的基类。比如 OpenFileDialog,PrintDialog都继承于CommonDialog类。ContainerControl 类:ContainerControl继承于 ScrollableControl 添加了标志和焦点管理功能用于放置其他控件。Form 类:Form类继承自 ContainerControl 并且描述了所有显示在应用程序中的窗口。 Form 类提供的属性和方法允许你显示不同类型的 forms, 包含对话框和多文档界面 (MDI) forms。所有 Windows Forms 都派生自这个类,因为它提供了 forms 所需要的基本功能。UserControl 类:UserControl继承于ContainerControl 类并且提供了空白的控件让你可以使用 Windows Forms Designer 工具来自定义自己的所需控件。Application 类:封装了Windows Forms程序运行时的各种操作33。2.5 Android技术基础2.5.1 Android操作系统架构如图2.6所示,Android系统是由五个不同层次构成的软件栈,每一层尤其独立相应的作用,并且从底层到最高层,分别依次向上层提供服务。位于最下面一层的是Linux内核,它的上一层是Android运行时和本地标准库,接着是应用程序框架层,该层负责实现Android应用程序与下层本地库和Linux内核的之间的交互,最高一层则是Andorid应用程序34。图 2.5 Android系统架构Figure 2.6 Android system architectureLinux内核:Linux内核层处在Android软件栈的最底层,它是传统桌面Linux系统经过内核提取,修改,优化,使其运行在移动设备上更加优良合适。标准库:Android包含了一些C和C+语言编写的支持库,Android应用程序可以通过JNI(Java本地接口)调用如下表格2.2中所示的这些支持库提供功能。表2.2 Android支持库Table 2.2 Android support library支持库说明Media Libraries支持多种常用音频、视频格式的录制和回放功能SQLite为应用程序和系统提供关系型数据库支持SSL提供对典型加密功能支持Bionic系统 C 库,提供基于 C 语言的系统函数库Web Kit Android浏览器使用的浏览器引擎Surface Manager提供对显示子系统的支持和管理SGL用于 Android 的底层 2D 图形引擎Android运行时:主要是指Android虚拟机技术(Dalvik)。Dalvik不是一种基于栈的虚拟机,而是基于寄存器的虚拟机,可以根据不同的硬件设备进行优化,每次执行Dalvik中的可执行文件。而Java虚拟机执行的则是Java标准字节码,这是两者的不同之处。应用程序框架:应用框架层直接支撑应用层,该层为开发人员提供了一组丰富功能的APIs。开发人员可以直接调用。主要包括:View视图系统、资源管理器、内容管理器、通知管理器、活动管理器、窗口管理器、包管理器等。应用程序:Andorid系统附带了一些基本的必需的应用程序,包括电话、短信息、浏览器、日历、地图、联系人等核心应用,应用程序构成了整个框架的最高层。2.5.2 应用程序组成Andorid应用程序主要包括四大组件:Activity、Broadcast Receiver、Content Provider和Service。这些组件组成Android应用程序的核心内容,它们之间通过Intent来彼此交互沟通,传达信息和数据。(1)ActivityActivity是Android系统组件中最常用最基本的组件,Activity是应用程序的入口,负责和用户交互交互,它占据一个单独的屏幕,监听和处理用户操作所产生的事件都在Activity中完成,一个应用程序可以包含多个Activity,当一个活动被开启时,此时Activity会被推到栈顶位置,这时该Activity是显示在屏幕中、具有焦点、可接受并响应用户操作。如果活动结束,那么Activity就会被销毁。图2.7表示了Activity生命周期图 2.6 Activity生命周期Figure 2.7 Activity life cy

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论