论文部分内容阅读
随着Internet的迅猛发展,网民数量骤增,在线系统的用户人数也节节攀升,使得现有的系统设计捉襟见肘。首先,原有的系统设计和网络、硬件资源条件无法满足用户数不断上升的系统需求。这导致不少在线系统运营困难,举步维艰,具体表现在:(1)系统抗压能力差,无法适应用户规模扩大的压力需求;(2)容错能力差,某个功能模块的异常导致系统瘫痪;(3)无谓提交问题,因网络延时或硬件处理速度慢而造成的误提交。其次,原有的系统设计无法满足用户的多样化和可变化的需求。用户数的骤增产生了多样化与可变化的需求,即单个的在线系统需要满足不同用户的使用需求,而这些需求是随时间而变化的,这给系统设计者提出了艰巨的课题。也面程序设计网上竞赛系统临这样的困境。本文提出一种基于分布式的MIX/S架构模式,结合基于本体的构件化系统分析和设计的方法以解决现有的问题,并通过设计和实现分布式程序设计竞赛系统来验证本文的工作。本文按如下步骤展开:首先,分析在线系统的现存问题的成因,提出基于分布式的MIX/S架构模式解决系统规模扩大的问题。应用在分布式程序设计竞赛系统中,提出分布式评测、分布式服务、服务器分布式的设计思想。将本体理论及本体论方法纳入分布式在线系统的分析与建模,并通过对分布式程序设计竞赛系统的分析阐明本体论方法相对于传统建模方法的优势。其次,提出基于本体的数据模型/操作模型的分析和设计方法,解决系统需求多样性和可变性的问题。对于程序设计竞赛系统存在的评测结果二义性的问题以及评测规则多样性的需求,对评测系统进行本体建模,将本体模型分为操作模型和数据模型,清晰地描述其本质。对程序设计竞赛系统中的编译环境设置子系统本体建模,描述编译环境、程序设计语言、编译器与编译、运行操作之问的概念和关系,满足对编译环境可变性的需求。然后,在分布式程序设计竞赛系统本体模型的基础上,进行构件化设计,将系统本体模型映射为构件化的本体模型,进行多层结构化模式的横向与纵向设计,一一细分,通过从构件化本体模型至构件接口定义的机器映射得到所有的构件接口信息描述。最后,基于以上理论和方法,设计并实现了分布式程序设计竞赛系统,该系统目标是举办2009年ACM/ICPC亚洲赛区上海站的网上预赛。本人作为负责人加入课题组,共同完成了初期的系统原型,于此平台上成功举办了我校校内程序设计竞赛的多次热身赛、预赛和决赛。