毕业论文
计算机论文
经济论文
生物论文
数学论文
物理论文
机械论文
新闻传播论文
音乐舞蹈论文
法学论文
文学论文
材料科学
英语论文
日语论文
化学论文
自动化
管理论文
艺术论文
会计论文
土木工程
电子通信
食品科学
教学论文
医学论文
体育论文
论文下载
研究现状
任务书
开题报告
外文文献翻译
文献综述
范文
云计算判题核的设计与实现+文献综述(8)
对于一般用户的客户端,是动态上下线的,组建云的时候,也是动态云。每个客户端上线时会向服务器进行节点注册,服务器会把其加入调度队列,当客户端下线或者断开时,服务器会把其从队列中删除。
除了动态的这部分节点,我们还有一部分在机房的节点(静态节点),这
这部分节点一般情况是可以提供正常的判题服务的。
这个设计实现了云计算的一个具体的应用(软件即服务),并且将云分成 两部分,动态云和静态云。综合两部分进行调度,提高了计算效率,同时也 保证计算的结果的正确性。
3.2 硬件架构
图 2硬件结构图
最左边是现有的OnlineJudge集群,右侧是CloudServer,是云服务的一个调度服务器。最下面分成两部分,一部分是一般用户节点(这部分是动态的),还有一部分是机房节点(这部分是我们可以控制的)。其中CloudServer和节点都是跨平台的。
这样的架构,我们只需要对OnlineJudge ,CloudServer,和机房节点的机器进行文护,这样就会少很大一部分判题节点的开销。而且,把OJ,CloudServer,判题节点进行解耦,一旦某部分出现问题,可以用该部分的备用机器,而不需要停掉所有的服务,并且可以很快的从故障中恢复。
3.3 软件架构
图 3软件结构图
在最上面是个OJ的整个平台,提供web服务,数据库服务等。下面是一个CloudServer,server向OJ请求判题任务,然后返回给OJ判题的结果。CloudServer主要的模块是一个Distribute,负责调度server给的judgeMission。下面是具体的判题节点,一共分成两块。左边是一般用户的一块,包含两部分,一部分是用户可以看到的OnlineJudge客户端,通过客户端用户可以进行看题,交题,查看判题结果,还可以参加比赛。还有一部分是隐藏在客户端内的一个判题节点。该节点在用户登录时向server注册可以判题,然后等待Distribute的判题调度。右边是机房的判题节点,是一个 纯粹的判题节点,上线时向CloudServer注册,等待Distribute调度。
CloudServer , Distribute 和两部分的节点构成了整个的云计算判题平台。平台接收OnlineJudge发来的判题请求,返回给OnlineJudge判题的结果,整个过程对OnlineJudge是透明的。
该设计的优点:
a. 把很多判题节点抽象成一个节点,对于OnlineJudge,只要把判题任务给CloudServer,然后从CloudServer上拿判题结果就行了。
b. 充分利用了用户闲置的计算机资源。减少了很大的服务器投入。
c. 有机房的判题节点作为保障,使得即使在用户都不在线的情况下所有的请求都能得到处理。
d. 把Distribute和CloudServer解耦,方便以后的Distribute算法的升级。
3.4 Server端软件结构
图 4CloudServer结构图
Server一共分成6个主要模块。
1. 题目服务
客户端会向服务器请求五种题目类型的请求。题目的数目,某个题号的题目信息,所有的比赛列表,某个比赛的所有题目列表,比赛中的某个题目信息。这些所有的请求在服务端分成两类,一个是problem类型请求,一个是contest请求。
Problem请求数据协议
客户端请求时,需要提供problemId,和flag字段。当flag为0时表示正常的请求题目,服务端根据problemId,然后去OnlineJudge上拿到题目的详细信息(包括title , description , input , output , sampleInput , sampleOutput , hint信息),在server端把这些信息重新整理下格式,加入html标签(以一个比较好的界面)然后填入Context字段,发回给客户端。如果problemId大于10000时,表示是某个contest中的题目。客户端请求contest中的题目时,填入的problemId为contestId*10000+该题在这个比赛中的排名。如果flag为1时,从OnlineJudge上拿到当前题库中的题目数目,然后把这个数字填入ProblemId字段发回给客户端。
共9页:
上一页
1
2
3
4
5
6
7
8
9
下一页
上一篇:
VC++计算机与其网络信息取证系统的开发
下一篇:
OpenCV基于智能手机的人脸检测系统设计
架设Linux(2.6内核)的服务器集群【745字】
Linux内核的键盘模拟实现【1538字】
ARM核的AT75C220及其茬指纹识...
于PCI9656设备驱动程序的...
Linux内核源代码的阅读和工具介绍【836字】
实现宽带综合业务数字网...
IOS网络化教师教学评估考核系统设计
10万元能开儿童乐园吗,我...
中国学术生态细节考察《...
C#学校科研管理系统的设计
神经外科重症监护病房患...
国内外图像分割技术研究现状
志愿者活动的调查问卷表
AT89C52单片机的超声波测距...
承德市事业单位档案管理...
公寓空调设计任务书
医院财务风险因素分析及管理措施【2367字】