基于云协作平台的客户端设计与实现本科毕业论文.docx
- 文档编号:15675185
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:77
- 大小:1.17MB
基于云协作平台的客户端设计与实现本科毕业论文.docx
《基于云协作平台的客户端设计与实现本科毕业论文.docx》由会员分享,可在线阅读,更多相关《基于云协作平台的客户端设计与实现本科毕业论文.docx(77页珍藏版)》请在冰点文库上搜索。
基于云协作平台的客户端设计与实现本科毕业论文
毕业论文声明
本人郑重声明:
1.此毕业论文是本人在指导教师指导下独立进行研究取得的成果。
除了特别加以标注地方外,本文不包含他人或其它机构已经发表或撰写过的研究成果。
对本文研究做出重要贡献的个人与集体均已在文中作了明确标明。
本人完全意识到本声明的法律结果由本人承担。
2.本人完全了解学校、学院有关保留、使用学位论文的规定,同意学校与学院保留并向国家有关部门或机构送交此论文的复印件和电子版,允许此文被查阅和借阅。
本人授权大学学院可以将此文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本文。
3.若在大学学院毕业论文审查小组复审中,发现本文有抄袭,一切后果均由本人承担,与毕业论文指导老师无关。
4.本人所呈交的毕业论文,是在指导老师的指导下独立进行研究所取得的成果。
论文中凡引用他人已经发布或未发表的成果、数据、观点等,均已明确注明出处。
论文中已经注明引用的内容外,不包含任何其他个人或集体已经发表或撰写过的研究成果。
对本文的研究成果做出重要贡献的个人和集体,均已在论文中已明确的方式标明。
学位论文作者(签名):
年月
关于毕业论文使用授权的声明
本人在指导老师的指导下所完成的论文及相关的资料(包括图纸、实验记录、原始数据、实物照片、图片、录音带、设计手稿等),知识产权归属华北电力大学。
本人完全了解大学有关保存,使用毕业论文的规定。
同意学校保存或向国家有关部门或机构送交论文的纸质版或电子版,允许论文被查阅或借阅。
本人授权大学可以将本毕业论文的全部或部分内容编入有关数据库进行检索,可以采用任何复制手段保存或编汇本毕业论文。
如果发表相关成果,一定征得指导教师同意,且第一署名单位为大学。
本人毕业后使用毕业论文或与该论文直接相关的学术论文或成果时,第一署名单位仍然为大学。
本人完全了解大学关于收集、保存、使用学位论文的规定,同意如下各项内容:
按照学校要求提交学位论文的印刷本和电子版本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、扫描、数字化或其它手段保存或汇编本学位论文;学校有权提供目录检索以及提供本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有关部门或者机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入学校有关数据库和收录到《中国学位论文全文数据库》进行信息服务。
在不以赢利为目的的前提下,学校可以适当复制论文的部分或全部内容用于学术活动。
论文作者签名:
日期:
指导教师签名:
日期:
题目:
基于云协作平台的客户端设计与实现
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:
所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:
日 期:
指导教师签名:
日 期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:
按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:
日 期:
学位论文原创性声明
本人郑重声明:
所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:
日期:
年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:
日期:
年月日
导师签名:
日期:
年月日
注意事项
1.设计(论文)的内容包括:
1)封面(按教务处制定的标准封面格式制作)
2)原创性声明
3)中文摘要(300字左右)、关键词
4)外文摘要、关键词
5)目次页(附件不统一编入)
6)论文主体部分:
引言(或绪论)、正文、结论
7)参考文献
8)致谢
9)附录(对论文支持必要时)
2.论文字数要求:
理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
3.附件包括:
任务书、开题报告、外文译文、译文原文(复印件)。
4.文字、图表要求:
1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写
2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。
图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画
3)毕业论文须用A4单面打印,论文50页以上的双面打印
4)图表应绘制于无格子的页面上
5)软件工程类课题应有程序清单,并提供电子文档
5.装订顺序
1)设计(论文)
2)附件:
按照任务书、开题报告、外文译文、译文原文(复印件)次序装订
3)其它
基于云协作平台的客户端设计与实现
摘要
云协作平台其理论依据来源于云计算,是基于互联网,将共享的软硬件资源和信息,通过云资源调度管理系统(JHscheduler),按需提供给计算机和其他设备,并对这些设备进行管理。
云协作平台通常提供通用的通过浏览器访问的应用,软件和数据可存储在数据中心。
浏览器和服务器结构虽然简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本,然而浏览器和服务器结构也有一些自身无法克服的缺点。
现如今,浏览器种类繁多,良莠不齐,这样,就引发了一个很难做到平衡的问题——浏览器的兼容性问题,还有一个根问重要的是:
如果要将本地的一些应用程序集成到云平台,浏览器就显得捉襟见肘了。
客户端的出现恰恰解决了以上问题。
本文基于云协作平台,以浏览器实现的功能为设计参考,重点在于节省系统软硬件资源,避免不同浏览器带来的浏览器兼容性问题,增强云协作平台前端的可扩展性,并为客户端增加一些与服务端交互的工具,提高云协作平台的用户体验和产品的认可度。
客户端的实现是以观察者模式为设计模式,以QTGUI为开发框架,使用Thrift,Boost等第三方工具库。
做到与浏览器端高度一致,与服务器端接口兼容,又具有客户端特色的云协作平台的用户前端软件。
通过几个月的学习和努力,熟悉了服务器端的运行机制,以及服务器和浏览器的交互过程,在此基础上参考浏览器端实现的用户操作界面,实现了与浏览器端功能相同的客户端。
经过测试,运行稳定,可以投放使用。
关键词:
云协作平台;JHscheduler;客户端;QTGUI
DesignandImplementationoftheClientOnCloudCollaborationPlatform
Abstract
Cloudcollaborationplatformthetheoreticalbasisfromthecloudcomputing,Internetbased,willbesharedhardwareandsoftwareresourcesandinformationbeprovidedtocomputersandotherequipment,andmanagementofthesedevices.Cloudcollaborationplatformsusuallyprovidegenericapplicationthroughthebrowser,softwareanddatacanbestoredinthedatacenter.Thebrowserandtheservermechanismwhilesimplifyingtheclientcomputerload,reducethecostandtheworkloadofsystemmaintenanceandupgrading,reducingtheoverallcostoftheuser,butthebrowserandserverstructurealsohassomecannotovercomeitsownshortcomings.Nowadays,thebrowsertypes,uneven,somegoodandsomebad,so,itraisesaverydifficultproblem--thebrowserbalancecompatibilityissues,thereisaroottoaskimportant:
ifsomeapplicationsintothecloudplatformlocal,thebrowseristightlyelbow.Theclienthassolvedaboveproblems.
Inthispaper,cloudbasedcollaborationplatform,thebrowserfunctionsasadesignreference,Throughresourceschedulingmanagementsystem(JHscheduler),focusedonsavingthesystemsoftwareandhardwareresources,avoidbrowsercompatibilityproblemscausedbycloudbrowser,enhancedcollaborationplatformfront-endscalability,andtoincreasethenumberofinteractivetoolsfortheclientandserver,improvetherecognitionofcloudcooperationplatformuserexperienceandproductthe.Theclientisrealizedbytheobserverpatternisadesignpattern,usingtheThrifttoQTGUIasthedevelopmentframework,Boost,andthreepartytoollibrary.Todowiththebrowserandtheserverishighlyconsistent,compatibleinterface,userfrontendsoftwarecloudcollaborationplatformandclientcharacteristics.
Throughseveralmonthsofstudyandwork,familiarwiththeoperationmechanismoftheserver,andtheserverandbrowserinteractionprocess,theuseroperationinterfaceonthebasisofbrowserimplementation,achievedwiththesameclientbrowserfunction.Aftertesting,stableoperation,canbeputinuse.
KeyWords:
Cloudcollaborationplatform;JHscheduler;Theclient;QTGUI
1绪论
1.1课题设计背景
2006年8月9日,google首席执行官埃里克·施密特(EricSchmidt)在搜索引擎大会(SES San Jose 2006)首次提出“云计算”(CloudComputing)的概念。
之后包括Google、IBM、雅虎、惠普、英特尔,以及戴尔在内的世界顶尖级IT公司为推动和发展云计算不遗余力,争先恐后。
云计算理论逐步成熟和结构趋于完整,基于云计算的产品应运而生,云协作平台就是其中的一个典型。
云协作平台其理论依据来源于云计算,自然是基于互联网,将共享的软硬件资源和信息,通过运行于服务器端的资源调度管理系统(JHscheduler)统一协调,按需提供给计算机和其他设备,并对这些设备进行管理。
云协作平台通常提供通用的通过浏览器访问的应用,软件和数据可存储在数据中心。
浏览器和服务器结构虽然简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本,然而浏览器和服务器结构也有一些自身无法克服的缺点。
现如今,浏览器种类繁多,良莠不齐,这样,就引发了一个很难做到平衡的问题——浏览器的兼容性问题,还有一个更为重要的是:
如果要将本地的一些应用程序集成到云协作平台,浏览器就显得捉襟见肘了。
客户端的出现恰恰解决了以上问题。
1.2课题设计的目的和意义
浏览器能够实现的功能,客户端同样也可以实现,但这并不是说,客户端就可以完全取代浏览器来实现与云平台的交互,完成生产实践。
浏览器旨在其灵活性,可移动性,而客户端旨在其高度的集成性,以及其普适性,即可以集成操作系统上的所有应用,更方便的为用户提供服务;普适性在于操作系统的较为明确,程序开发有的放矢,这样也大大降低了开发成本,和开发、维护周期。
客户端/服务器结构能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器,这样可以提高工作效率,缩短工作时间,使云平台能够更高效、快捷的工作。
客户端/服务器结构在数据安全性方面也明显高于浏览器/服务器结构,可以较为容易地实现多层认证。
1.3课题的主要研究工作
由于云协作平台的浏览器版已经实现,而客户端版是尽量和浏览器版保持一致,因此,熟悉服务器端运行机制和浏览器版的基本结构使得开发客户端变得有的放矢,也就相对容易的多了。
服务器端的为javaweb实现,客户端实现是用C++实现,两者之间需要一个可以相互调用的接口。
除此之外,从服务器端拿到的数据列表需要显示在客户端的对话框页面,而这些数据列表是在浏览器端已经
实现的,在对话框上能够直接显示web页面,就使得开发工作量减轻许多,这样也为客户端节省了响应时间。
1.4论文结构安排
本论文共有四章,具体组织如下:
第一章:
通过对已经实现的云协作平台的Web端功能分析,提出客户端开发的目的和意义,此次研究的主要任务,以及本次论文的组织结构。
第二章:
主要介绍资源调度管理系统(JHscheduler)和开发本系统所采用的相关技术,包括设计模式中的观察者模式,Thrift库、Boost库以及QTGUI编程等。
第三章:
系统需求分析,其中包括用户需求分析、性能需求分析、数据需求分析。
第四章:
系统概要设计,从软件体系结构,数据库设计,系统功能模块设计等方面叙述。
第五章:
系统详细设计与实现,用户登录页面,操作界面,以及各个功能模块的实现。
第六章:
系统测试
第七章:
总结
2课题设计的关键技术
云协作平台是通过资源调度管理系统,统一对用户作业需求进行动态管理、分配资源的协作的系统。
一般是基于互联网,也有用专业网的情况。
云协作平台的主要功能是:
分工合作、资源控制、作业管理等功能。
2.1资源调度管理系统简介
资源调度管理系统(以下称JHScheduler)是一个集资源监控和分布式应用调度为一体的云计算的基础架构管理中间件,利用JHScheduler可以快速的建立起一个完整企业级应用服务平台。
它可以监控、调度、管理网络上的10台到上千台不同操作系统的服务器、工作站和虚拟机,把它们作为云计算资源集中管理起来为多种类型的应用软件提供统一服务平台。
JHScheduler具有完备的和可扩展的资源定义、监控等功能,包括硬件资源、操作系统、软件许可证资源、存储资源等等,并且为应用软件提供多种接口来使用这些云计算资源,从而轻易实现应用软件的并行分布式运行和弹性计算,完成从传统的以服务器为中心的计算模式向以应用服务为中心的计算模式迁移。
JHScheduler支持多种类型应用软件的通用中间件,包括CAD/CAE软件、制造业设计软件、石油勘探分析软件、模拟仿真软件、科学计算软件等,这些不同类型的应用软件可以同时使用JHScheduler管理的应用集群,从而实现计算资源的充分共享。
由JHScheduler管理的应用集群系统具有高可用性,用户可以配置多个管理节点,即使只有一个JHScheduler管理节点正常运行,应用集群服务也不会宕机,做到应用服务的全天候可用,为用户和应用提供最佳的计算服务。
为了使计算资源得到高效使用,JHScheduler内置多种高效的管理调度策略,包括先来先服务、用户/用户组资源配额管理、基于队列的优先级设置、资源公平共享调度、独占式作业调度、抢占式作业调度等,基于这些策略,JHScheduler把应用软件的每一次执行实例作为一个作业来进行调度和管理,并为管理员和作业的用户提供方便的作业状态监控和友好的用户界面。
此外,JHScheduler还有可扩展的接口,可以为特殊的管理调度需求定制策略。
由JHScheduler管理的应用集群系统具有高可靠性,作业在没有资源的情况下将在系统中排队等待资源。
即使在执行过程中计算节点出现故障,JHScheduler仍然可以把作业重新调度到其它机器上继续执行。
作为云计算基础架构产品,JHScheduler与其基础之上的Webportal产品提供安全友好的用户管理和使用界面;通过与JHLicenseManager集成管理应用集
群系统的许可证资源,并提供专门针对许可证资源的先进调度;通过与JHAnalytics集成为用户提供丰富的资源使用和作业调度报表功能,以及详尽灵活的计费系统。
JHScheduler产品的总体结构如图2.1所示。
图2.1JHscheduler总体结构图
2.2观察者模式简介
2.2.1概述
观察者模式有时被称作发布/订阅模式,观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。
这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。
2.2.2解决的问题
将一个系统分割成一个一些类相互协作的类有一个不好的副作用,那就是需要维护相关对象间的一致性。
我们不希望为了维持一致性而使各类紧密耦合,这样会给维护、扩展和重用都带来不便。
观察者就是解决这类的耦合关系的。
2.2.3模式中的角色
抽象主题(Subject):
它把所有观察者对象的引用保存到一个聚集里,每个主题都可以有任何数量的观察者。
抽象主题提供一个接口,可以增加和删除观察者对象。
具体主题(ConcreteSubject):
将有关状态存入具体观察者对象;在具体主题内部状态改变时,给所有登记过的观察者发出通知。
抽象观察者(Observer):
为所有的具体观察者定义一个接口,在得到主题通知时更新自己。
具体观察者(ConcreteObserver):
实现抽象观察者角色所要求的更新接口,以便使本身的状态与主题状态协调。
2.2.4模式解读
实现观察者模式有很多形式,比较直观的一种是使用一种“注册——通知——撤销注册”的形式。
如图2.2详细的描述了这样一种过程:
图2.2观察者模式实现过程
观察者
(Observer)将自己注册到被观察对象(Subject)中,被观察对象将观察者存放在一个容器(Container)里。
被观察
被观察对象发生了某种变化(如图中的SomeChange),从容器中得到所有注册过的观察者,将变化通知观察者。
撤销观察
观察者告诉被观察者要撤销观察,被观察者从容器中将观察者去除。
观察者将自己注册到被观察者的容器中时,被观察者不应该过问观察者的具体类型,而是应该使用观察者的接口。
这样的优点是:
假定程序中还有别的观察者,那么只要这个观察者也是相同的接口实现即可。
一个被观察者可以对应多个观察者,当被观察者发生变化的时候,他可以将消息一一通知给所有的观察者。
基于接口,而不是具体的实现——这一点为程序提供了更大的灵活性。
2.2.5模式总结
优点
观察者模式解除了主题和具体观察者的耦合,让耦合的双方都依赖于抽象,而不是依赖具体。
从而使得各自的变化都不会影响另一边的变化。
缺点
依赖关系并未完全解除,抽象通知者依旧依赖抽象的观察者。
适用场景
当一个对象的改变需要给变其它对象时,而且它不知道具体有多少个对象有待改变时。
一个抽象某型有两个方面,当其中一个方面依赖于另一个方面,这时用观察者模式可以将这两者封装在独立的对象中使它们各自独立地改变和复用。
2.3Thrift库
2.3.1Thrift简介
Thrift是一个跨语言的服务部署框架,最初由Facebook于2007年开发,2008年进入Apache开源项目。
Thrift通过一个中间语言(IDL,接口定义语言)来定义RPC的接口和数据类型,然后通过一个编译器生成不同语言的代码(目前支持C++,Java,Python,PHP,Ruby,Erlang,Perl,Haskell,C#,Cocoa,Smalltalk和OCaml),并由生成的代码负责RPC协议层和传输层的实现。
2.3.2Thrift架构
图2.3Thrift架构
Thrift实际上是实现了C/S模式,通过代码生成工具将接口定义文件生成服务器端和客户端代码(可以为不同语言),从而实现服务端和客户端跨语言的支持。
用户在Thrift描述文件中声明自己的服务,这些服务经过编译后会生成相应语言的代码文件,然后用户实现服务(客户端调用服务,服务器端提服务)便可以了。
其中protocol(协议层,定义数据传输格式,可以为二进制或者XML等)和transport(传输层,定义数据传输方式,可以为TCP/IP传输,内存共享或者文件共享等)被用作运行时库。
2.3.3支持的数据传输格式、数据传输方式和服务模型
(1)支持的传输格式
TBinaryProtocol–二进制格式.
TCompactProtocol–压缩格式
TJSONProtocol–JSON格式
TSimpleJSONProtocol–提供JSON只写协议,生成的文件很容易通过脚本语言解析。
TDebugProtocol–使用易懂的可读的文本格式,以便于debug
(2)支持的数据传输方式
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 协作 平台 客户端 设计 实现 本科毕业 论文