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系统平台多格式阅读器的设计与开发

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

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

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

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

基于移动终端的智能监控系统的APP开发

AT89C51单片机智能窗帘控制...

Mono分享App的设计与实现

从政策角度谈黑龙江對俄...

浅论职工思想政治工作茬...

上海居民的社会参与研究

压疮高危人群的标准化中...

AES算法GPU协处理下分组加...

STC89C52单片机NRF24L01的无线病房呼叫系统设计

浅谈高校行政管理人员的...

基于Joomla平台的计算机学院网站设计与开发

酵母菌发酵生产天然香料...

提高教育质量,构建大學生...