1.1. 内核

NJUST Open Judge的体系结构类似于微内核操作系统,通过轻量的微内核组织内核扩展以实现业务功能,在内核之上为表示层,用于给最终用户交互。系统的体系结构如图 1 1所示。这一体系结构允许各种粒度的扩展,在目前可以支持很方便地添加内核扩展、添加新的策略、发布新的开放平台API等。

 相比传统的数据层、业务层、表示层三层架构,以及服务器经常使用的请求处理模型而言,基于微内核的体系结构在消息传递上会有更大的开销,但在另一方面,这一体系结构提供了很大的可扩展性,这一扩展性并不仅仅体现在对于功能的扩展上,而是更进一步地,允许各个内核扩展组件拥有最大程度的独立性,从而支持更有针对性的性能优化,如应用内核扩展的分布式部署来提升负载能力等。文献综述

微内核通过MEF框架负责内核拓展(下面简称KEXT)的发现,发现之后根据接口调用每个KEXT的初始化方法,这样可以初始化每一个KEXT。

KEXT相互通信,也可以相互服务。在KEXT开发之前,先声明好KEXT的服务接口以及事件。KEXT加载后,可以通过微内核获得指定类型的KEXT,然后根据约定的接口调用其服务;也可以订阅KEXT约定的事件。

系统原有的KEXT包括:

Problem KEXT:负责题库的管理

Code KEXT:负责代码的存储以及版本控制

User KEXT:负责账户的管理

Judge KEXT:负责提供判题的功能

Online Judge KEXT:负责管理所有Online Judge的提供商(Provider)

Contest KEXT:负责管理ACM/ICPC竞赛

1.2. 表示层

表示层使用ASP.NET MVC 3技术,该技术把一次HTTP请求分为模型、视图、控制器进行分工处理,最终渲染出用户所需要的结果。

上一篇:复杂行车环境中障碍物检测的方法研究
下一篇:Android系统平台多格式阅读器的设计与开发

JAVA禾粒农场智能管理系统人事管理

床旁智能交互系统HL7标准接口数据同步的实现

MAG3110无线智能停车平台中...

智能算法的海上应急救援基地选址优化设计

基于启发式算法的智能路径规划研究

基于RFID的智能保险理赔系统设计

基于433MHz的智能家居系统设计硬件和驱动层

激光模拟训练器材国内外研究现状

发酵米粉优势菌株的发酵特性研究

淮安市高校足球运动损伤问卷调查表

浅谈农村大气环境保护的制度构建【1868字】

日语论文中日酒文化对比研究

新疆农林高校學生昆虫生...

2021年什么行业赚钱,适合...

个案管理茬老年糖尿病患...

大淘宝网的虚假交易研究

肢体语言在小学英语教学中的应用浅谈