ImageVerifierCode 换一换
格式:DOCX , 页数:37 ,大小:1.01MB ,
资源ID:8178429      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8178429.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于云协作平台的客户端设计与实现本科毕业论文.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于云协作平台的客户端设计与实现本科毕业论文.docx

1、基于云协作平台的客户端设计与实现本科毕业论文题目:基于云协作平台的客户端设计与实现基于云协作平台的客户端设计与实现摘要云协作平台其理论依据来源于云计算,是基于互联网,将共享的软硬件资源和信息,通过云资源调度管理系统(JH scheduler),按需提供给计算机和其他设备,并对这些设备进行管理。云协作平台通常提供通用的通过浏览器访问的应用,软件和数据可存储在数据中心。浏览器和服务器结构虽然简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本,然而浏览器和服务器结构也有一些自身无法克服的缺点。现如今,浏览器种类繁多,良莠不齐,这样,就引发了一个很难做到平衡的问题浏览器的兼

2、容性问题,还有一个根问重要的是:如果要将本地的一些应用程序集成到云平台,浏览器就显得捉襟见肘了。客户端的出现恰恰解决了以上问题。本文基于云协作平台,以浏览器实现的功能为设计参考,重点在于节省系统软硬件资源,避免不同浏览器带来的浏览器兼容性问题,增强云协作平台前端的可扩展性,并为客户端增加一些与服务端交互的工具,提高云协作平台的用户体验和产品的认可度。客户端的实现是以观察者模式为设计模式,以QT GUI为开发框架,使用Thrift,Boost等第三方工具库。做到与浏览器端高度一致,与服务器端接口兼容,又具有客户端特色的云协作平台的用户前端软件。通过几个月的学习和努力,熟悉了服务器端的运行机制,以

3、及服务器和浏览器的交互过程,在此基础上参考浏览器端实现的用户操作界面,实现了与浏览器端功能相同的客户端。经过测试,运行稳定,可以投放使用。关键词:云协作平台;JH scheduler;客户端;QT GUIDesign and Implementation of the Client On Cloud Collaboration PlatformAbstractCloud collaboration platform the theoretical basis from the cloud computing, Internet based, will be shared hardware an

4、d software resources and information be provided to computers and other equipment, and management of these devices. Cloud collaboration platforms usually provide generic application through the browser, software and data can be stored in the data center. The browser and the server mechanism while si

5、mplifying the client computer load, reduce the cost and the workload of system maintenance and upgrading, reducing the overall cost of the user, but the browser and server structure also has some can not overcome its own shortcomings. Nowadays, the browser types, uneven, some good and some bad, so,

6、it raises a very difficult problem - the browser balance compatibility issues, there is a root to ask important: if some applications into the cloud platform local, the browser is tightly elbow. The client has solved above problems.In this paper, cloud based collaboration platform, the browser funct

7、ions as a design reference, Through resource scheduling management system (JH scheduler), focused on saving the system software and hardware resources, avoid browser compatibility problems caused by cloud browser, enhanced collaboration platform front-end scalability, and to increase the number of i

8、nteractive tools for the client and server, improve the recognition of cloud cooperation platform user experience and product the. The client is realized by the observer pattern is a design pattern, using the Thrift to QT GUI as the development framework, Boost, and three party tool library. To do w

9、ith the browser and the server is highly consistent, compatible interface, user front end software cloud collaboration platform and client characteristics.Through several months of study and work, familiar with the operation mechanism of the server, and the server and browser interaction process, th

10、e user operation interface on the basis of browser implementation, achieved with the same client browser function. After testing, stable operation, can be put in use.Key Words: Cloud collaboration platform ; JH scheduler ;The client;QT GUI 1 绪论1.1课题设计背景 2006年8月9日,google首席执行官埃里克施密特(Eric Schmidt)在搜索引擎

11、大会(SESSanJose2006)首次提出“云计算”(Cloud Computing)的概念。之后包括Google 、IBM、雅虎、惠普、英特尔,以及戴尔在内的世界顶尖级IT公司为推动和发展云计算不遗余力,争先恐后。云计算理论逐步成熟和结构趋于完整,基于云计算的产品应运而生,云协作平台就是其中的一个典型。云协作平台其理论依据来源于云计算,自然是基于互联网,将共享的软硬件资源和信息,通过运行于服务器端的资源调度管理系统(JH scheduler)统一协调,按需提供给计算机和其他设备,并对这些设备进行管理。云协作平台通常提供通用的通过浏览器访问的应用,软件和数据可存储在数据中心。浏览器和服务器结

12、构虽然简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本,然而浏览器和服务器结构也有一些自身无法克服的缺点。现如今,浏览器种类繁多,良莠不齐,这样,就引发了一个很难做到平衡的问题浏览器的兼容性问题,还有一个更为重要的是:如果要将本地的一些应用程序集成到云协作平台,浏览器就显得捉襟见肘了。客户端的出现恰恰解决了以上问题。1.2课题设计的目的和意义浏览器能够实现的功能,客户端同样也可以实现,但这并不是说,客户端就可以完全取代浏览器来实现与云平台的交互,完成生产实践。浏览器旨在其灵活性,可移动性,而客户端旨在其高度的集成性,以及其普适性,即可以集成操作系统上的所有应用,更

13、方便的为用户提供服务;普适性在于操作系统的较为明确,程序开发有的放矢,这样也大大降低了开发成本,和开发、维护周期。客户端/服务器结构能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器,这样可以提高工作效率,缩短工作时间,使云平台能够更高效、快捷的工作。客户端/服务器结构在数据安全性方面也明显高于浏览器/服务器结构,可以较为容易地实现多层认证。1.3课题的主要研究工作由于云协作平台的浏览器版已经实现,而客户端版是尽量和浏览器版保持一致,因此,熟悉服务器端运行机制和浏览器版的基本结构使得开发客户端变得有的放矢,也就相对容易的多了。服务器端的为java web实现,客户端实现是

14、用C+实现,两者之间需要一个可以相互调用的接口。除此之外,从服务器端拿到的数据列表需要显示在客户端的对话框页面,而这些数据列表是在浏览器端已经实现的,在对话框上能够直接显示web页面,就使得开发工作量减轻许多,这样也为客户端节省了响应时间。1.4 论文结构安排本论文共有四章,具体组织如下:第一章:通过对已经实现的云协作平台的Web端功能分析,提出客户端开发的目的和意义,此次研究的主要任务,以及本次论文的组织结构。第二章:主要介绍资源调度管理系统(JH scheduler)和开发本系统所采用的相关技术,包括设计模式中的观察者模式,Thrift库、Boost库以及QT GUI编程等。第三章:系统需

15、求分析,其中包括用户需求分析、性能需求分析、数据需求分析。第四章:系统概要设计,从软件体系结构,数据库设计,系统功能模块设计等方面叙述。第五章:系统详细设计与实现,用户登录页面,操作界面,以及各个功能模块的实现。第六章:系统测试第七章:总结2 课题设计的关键技术云协作平台是通过资源调度管理系统,统一对用户作业需求进行动态管理、分配资源的协作的系统。一般是基于互联网,也有用专业网的情况。云协作平台的主要功能是:分工合作、资源控制、作业管理等功能。2.1 资源调度管理系统简介资源调度管理系统(以下称JH Scheduler)是一个集资源监控和分布式应用调度为一体的云计算的基础架构管理中间件,利用J

16、H Scheduler可以快速的建立起一个完整企业级应用服务平台。它可以监控、调度、管理网络上的10台到上千台不同操作系统的服务器、工作站和虚拟机,把它们作为云计算资源集中管理起来为多种类型的应用软件提供统一服务平台。 JH Scheduler具有完备的和可扩展的资源定义、监控等功能,包括硬件资源、操作系统、软件许可证资源、存储资源等等,并且为应用软件提供多种接口来使用这些云计算资源,从而轻易实现应用软件的并行分布式运行和弹性计算,完成从传统的以服务器为中心的计算模式向以应用服务为中心的计算模式迁移。 JH Scheduler支持多种类型应用软件的通用中间件,包括CAD/CAE软件、制造业设计

17、软件、石油勘探分析软件、模拟仿真软件、科学计算软件等,这些不同类型的应用软件可以同时使用JH Scheduler管理的应用集群,从而实现计算资源的充分共享。 由JH Scheduler管理的应用集群系统具有高可用性,用户可以配置多个管理节点,即使只有一个JH Scheduler管理节点正常运行,应用集群服务也不会宕机,做到应用服务的全天候可用,为用户和应用提供最佳的计算服务。 为了使计算资源得到高效使用,JH Scheduler内置多种高效的管理调度策略,包括先来先服务、用户/用户组资源配额管理、基于队列的优先级设置、资源公平共享调度、独占式作业调度、抢占式作业调度等,基于这些策略,JH Sc

18、heduler把应用软件的每一次执行实例作为一个作业来进行调度和管理,并为管理员和作业的用户提供方便的作业状态监控和友好的用户界面。此外,JH Scheduler还有可扩展的接口,可以为特殊的管理调度需求定制策略。 由JH Scheduler管理的应用集群系统具有高可靠性,作业在没有资源的情况下将在系统中排队等待资源。即使在执行过程中计算节点出现故障,JH Scheduler仍然可以把作业重新调度到其它机器上继续执行。 作为云计算基础架构产品,JH Scheduler与其基础之上的Web portal产品提供安全友好的用户管理和使用界面;通过与JH License Manager集成管理应用集

19、群系统的许可证资源,并提供专门针对许可证资源的先进调度;通过与JH Analytics集成为用户提供丰富的资源使用和作业调度报表功能,以及详尽灵活的计费系统。 JH Scheduler产品的总体结构如图2.1所示。图2.1 JH scheduler 总体结构图2.2 观察者模式简介2.2.1 概述观察者模式有时被称作发布/订阅模式,观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。2.2.2 解决的问题将一个系统分割成一个一些类相互协作的类有一个不好的副作用,那就是需要维护相关对象间的一致性

20、。我们不希望为了维持一致性而使各类紧密耦合,这样会给维护、扩展和重用都带来不便。观察者就是解决这类的耦合关系的。2.2.3 模式中的角色抽象主题(Subject):它把所有观察者对象的引用保存到一个聚集里,每个主题都可以有任何数量的观察者。抽象主题提供一个接口,可以增加和删除观察者对象。具体主题(ConcreteSubject):将有关状态存入具体观察者对象;在具体主题内部状态改变时,给所有登记过的观察者发出通知。抽象观察者(Observer):为所有的具体观察者定义一个接口,在得到主题通知时更新自己。具体观察者(ConcreteObserver):实现抽象观察者角色所要求的更新接口,以便使本

21、身的状态与主题状态协调。2.2.4 模式解读实现观察者模式有很多形式,比较直观的一种是使用一种“注册通知撤销注册”的形式。如图2.2详细的描述了这样一种过程: 图2.2观察者模式实现过程观察者(Observer)将自己注册到被观察对象(Subject)中,被观察对象将观察者存放在一个容器(Container)里。被观察 被观察对象发生了某种变化(如图中的SomeChange),从容器中得到所有注册过的观察者,将变化通知观察者。撤销观察观察者告诉被观察者要撤销观察,被观察者从容器中将观察者去除。观察者将自己注册到被观察者的容器中时,被观察者不应该过问观察者的具体类型,而是应该使用观察者的接口。这

22、样的优 点是:假定程序中还有别的观察者,那么只要这个观察者也是相同的接口实现即可。一个被观察者可以对应多个观察者,当被观察者发生变化的时候,他可以将消息 一一通知给所有的观察者。基于接口,而不是具体的实现这一点为程序提供了更大的灵活性。2.2.5 模式总结优点观察者模式解除了主题和具体观察者的耦合,让耦合的双方都依赖于抽象,而不是依赖具体。从而使得各自的变化都不会影响另一边的变化。缺点依赖关系并未完全解除,抽象通知者依旧依赖抽象的观察者。适用场景当一个对象的改变需要给变其它对象时,而且它不知道具体有多少个对象有待改变时。一个抽象某型有两个方面,当其中一个方面依赖于另一个方面,这时用观察者模式可

23、以将这两者封装在独立的对象中使它们各自独立地改变和复用。2.3 Thrift库2.3.1 Thrift简介Thrift是一个跨语言的服务部署框架,最初由Facebook于2007年开发,2008年进入Apache开源项目。Thrift通过一个中 间语言(IDL, 接口定义语言)来定义RPC的接口和数据类型,然后通过一个编译器生成不同语言的代码(目前支持C+,Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk和OCaml),并由生成的代码负责RPC协议层和传输层的实现。2.3.2 Thrift架构图2.3 Th

24、rift架构Thrift实际上是实现了C/S模式,通过代码生成工具将接口定义文件生成服务器端和客户端代码(可以为不同语言),从而实现服务端和客户端跨语 言的支持。用户在Thrift描述文件中声明自己的服务,这些服务经过编译后会生成相应语言的代码文件,然后用户实现服务(客户端调用服务,服务器端提服务)便可以了。其中protocol(协议层, 定义数据传输格式,可以为二进制或者XML等)和transport(传输层,定义数据传输方式,可以为TCP/IP传输,内存共享或者文件共享等)被用作运行时库。2.3.3 支持的数据传输格式、数据传输方式和服务模型(1)支持的传输格式TBinaryProtoco

25、l 二进制格式.TCompactProtocol 压缩格式TJSONProtocol JSON格式TSimpleJSONProtocol 提供JSON只写协议, 生成的文件很容易通过脚本语言解析。TDebugProtocol 使用易懂的可读的文本格式,以便于debug(2)支持的数据传输方式TSocket -阻塞式sockerTFramedTransport 以frame为单位进行传输,非阻塞式服务中使用。TFileTransport 以文件形式进行传输。TMemoryTransport 将内存用于I/O. java实现时内部实际使用了简单的ByteArrayOutputStream。TZli

26、bTransport 使用zlib进行压缩, 与其他传输方式联合使用。当前无java实现。(3)支持的服务模型TSimpleServer 简单的单线程服务模型,常用于测试TThreadPoolServer 多线程服务模型,使用标准的阻塞式IO。TNonblockingServer 多线程服务模型,使用非阻塞式IO(需使用TFramedTransport数据传输方式)2.3.4 Thrift使用(1)编译安装:./configure make make install(2)利用Thrift部署服务主要流程:编写服务说明,保存到.thrift文件根据需要,编译.thrift文件,生成相应的语言源代

27、码根据实际需要,编写client端和server端代码。a).thrift文件编写一般将服务放到一个.thrift文件中,服务的编写语法与C语言语法基本一致,在.thrift文件中有主要有以下几个内容:变量声明、数据声明(struct)和服务接口声明(service, 可以继承其他接口)。 b)client端和server端代码编写 client端和server端代码要调用编译.thrift生成的中间文件。在client端,用户自定义CalculatorClient类型的对象(用户在.thrift文件中声明的服务名称是Calculator,则生成的中间代码中的主类为CalculatorClie

28、nt),该对象中封装了各种服务,可以直接调用(如client.ping()),然后thrift会通过封装的rpc调用server端同名的函数。在server端,需要实现在.thrift文件中声明的服务中的所有功能,以便处理client发过来的请求。如图2.4所示。图2.4 client端和server端的书写2.4 Boost库2.4.1 Boost库简介Boost库是一个可移植、提供源代码的C+库,作为标准库的后备,是C+标准化进程的开发引擎之一。Boost库由C+标准委员会库工作组成员发起,其中有些内容有望成为下一代C+标准库内容。在C+社区中影响甚大,是不折不扣的“准”标准库。Boost

29、由于其对跨平台的强调,对标准C+的强调,与编写平台无关。大部分Boost库功能的使用只需包括相应头文件即可,少数(如正则表达式库,文件系统库等)需要链接库。2.4.2 Boost的log库(1)相关概念 日志记录:一个独立的消息包,这个消息包还不是实际写到日志里的消息,它只是一个候选的消息。 属性:日志记录中的一个消息片。 属性值:那就是上面所说的属性的值了,可以是各种数据类型。 日志槽(LOG SINK):日志写向的目标,它要定义日志被写向什么地方,以及如何写。 日志源:应用程序写日志时的入口,其实质是一个logger对象的实例。 日志过滤器:决定日志记录是否要被记录的一组判断。 日志格式化

30、:决定日志记录输出的实际格式。 日志核心:维护者日志源、日志槽、日志过滤器等之间的关系的一个全局中的实体。主要在初始化logging library时用到。 (2)框架结构 Boost log的框架结构如图2.5所示:图2.5 Boost log的框架结构A)应用程序在图的右侧,通过一个或多个logger实例发送日志消息。B)应用程序也可以出现在左侧,那就是一个日志的显示实例了。C)一个日志记录的数据中会包括许多属性。属性基本上是一个函数,它的返回值就是属性值。比如时间不仅是一个函数(也是一个属性)。D)有三种类型的属性集:全局的,特定线程的,特定源的。前两个是由logging core来维护

31、的,所以不用再初始化。全局属性集中的属性被连接到所以的日志对象上。线程属性集中的属性会连接到把它注册到属性集时的那个线程。源属性集由初始化日志的源来维护的,它会连接到一个特定的源上。当一个源初始化日志对象的时候,它会从上述的三个属性集的所有属性中得到属性值。这些值会在将来处理。如果在不同的属性集中有相同的属性名字的时候就会造成冲突,解决冲突的方法是全局属性集的优先级最低,源属性集的优先级最高。高优先级的属性会覆盖低优先级的属性。E)当组合属性值的时候,logging core来决定一个属性是否要被送到sink中,这就是过滤。有两层过滤,首先应用的是全局中过滤,全局过滤用来快速的过滤掉那些不需要

32、的日志记录。然后 就是sink指定的过滤了。每个sink都有单独的过滤器。sink过滤器允许将一个日志记录定向到一个指定的sink。F)如果一个日志记录至少通过了一个sink的话,它就可以用了。这时候就是日志消息格式化的时候了。格式化完成的日志消息和属性值一起被送到接收它们的sink中。G)如上图所示,sink被分为前端和后端两个部分。这是为了抽象sink的通用功能,如过滤和线程同步。前端由日志库提供,用户不大可能再去实现它。而后端 很可能是在日志库的外面,它来实现对日志记录的处理。如写文件,发送到网络等。日志库提供了大部分通常用到的后端程序。 2.5 QT GUI简介2.5.1 QT GUI简介和功能特点QT提供了设计师工具,可以很方便的使用鼠标拖拽的方

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1