CN111274262A - 一种SQLServer自动判题系统 - Google Patents
一种SQLServer自动判题系统 Download PDFInfo
- Publication number
- CN111274262A CN111274262A CN202010008374.3A CN202010008374A CN111274262A CN 111274262 A CN111274262 A CN 111274262A CN 202010008374 A CN202010008374 A CN 202010008374A CN 111274262 A CN111274262 A CN 111274262A
- Authority
- CN
- China
- Prior art keywords
- module
- service
- statement
- subsystem
- sql
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012545 processing Methods 0.000 claims abstract description 38
- 238000010977 unit operation Methods 0.000 claims abstract description 21
- 238000002955 isolation Methods 0.000 claims abstract description 16
- 238000004088 simulation Methods 0.000 claims description 49
- 230000006996 mental state Effects 0.000 claims description 12
- 238000005516 engineering process Methods 0.000 claims description 11
- 238000012544 monitoring process Methods 0.000 claims description 6
- 230000008859 change Effects 0.000 claims description 5
- 238000012986 modification Methods 0.000 claims description 4
- 230000004048 modification Effects 0.000 claims description 4
- 230000000903 blocking effect Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 claims description 3
- 238000013461 design Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 7
- 238000000034 method Methods 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/20—Education
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Tourism & Hospitality (AREA)
- General Health & Medical Sciences (AREA)
- General Business, Economics & Management (AREA)
- Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Educational Technology (AREA)
- Educational Administration (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种SQLServer自动判题系统,其包括自动判题子系统、高并发数据处理子系统、数据编译分析子系统、微服务单元运行安全跟踪子系统和Docker隔离编译子系统。本发明结构设计合理,判题的准确性高,能多方面用例来验证结果的正确性,加强了学生对知识点的牢固掌握,有效、快速、公正智能的数据库知识考核方式,让老师能轻松了解到学生对数据库的学习情况,可以实现判题的100%可靠性,并提升学生的实际编程能力。
Description
技术领域
本发明涉及一种判题系统,具体涉及一种SQLServer自动判题系统。
背景技术
互联网的发展十分迅猛,高校基于网络教育相关的平台被越来越多的高校看中,对于传统高校来说,使用Web网页来进行对学生的管理和考核,不失为一个明智之举,其中Web的考试平台对于高校来说无疑是一个重要组成部分,对于计算机类的学生,利用考试平台来进行各种计算机语言的考试十分重要,各大高校的考试平台对于C语言和Java这两大语言编译的支持已经比较完善,但对于《数据库原理及应用》等课程的自动判题平台的建立基本上没有看到,而且现行的很多数据库课程的考试,还停留在纸质模式。
现行有部分平台实现了数据库相关课程的自动考核,但是其算法是以字符串匹配为准,并未实际运行学生的代码,即使代码中有语法错误,也无法进行检测。现有模式无法体现学生的根本水平,并且对SQL的语法不能达到精确的把握。
发明内容
针对上述背景技术中存在的问题,本发明提出了一种结构设计合理,判题的准确性高,能多方面用例来验证结果的正确性,加强了学生对知识点的牢固掌握,有效、快速、公正智能的数据库知识考核方式,让老师能轻松了解到学生对数据库的学习情况,可以实现判题的100%可靠性,并提升学生的实际编程能力的SQLServer自动判题系统。
本发明的技术方案如下:
上述的SQLServer自动判题系统,包括自动判题子系统、高并发数据处理子系统、数据编译分析子系统、微服务单元运行安全跟踪子系统和Docker隔离编译子系统;所述自动判题子系统用于根据提交的SQL语句初始化一个对应的数据库并将提交的SQL语句在该数据库中模拟运行,得到模拟运行的结果显示;所述高并发数据处理子系统用于处理多人提交代码编译所发生的高并发现象,实现排队的异步方式,提高代码处理的效率并在出队列后再针对其请求来进行负载均衡;所述数据编译分析子系统用于将所述自动判题子系统处理的数据回显给用户;所述微服务单元运行安全跟踪子系统用于实现单元数据处理的实时监测,并及时通报单元运行异常和单元运行结果的情况;所述Docker隔离编译子系统用于将实现查询语句与更改语句相互隔离进行编译;所述微服务注册中心用于所述自动判题子系统、高并发数据处理子系统、数据编译分析子系统和微服务单元运行安全跟踪子系统各自服务模块之间的消息转发和负载均衡。
所述SQLServer自动判题系统,其中:所述自动判题子系统包括微服务生产者模块、微服务消费者模块、最终查询SQL语句模拟执行模块和最终更改SQL语句模拟执行模块;所述微服务生产者模块用于接受所有模块的请求,接受到请求后会处理请求的目的并且通过注册中心实现下一级请求的调用;所述微服务消费者模块用于从消息队列得到请求并且对其进行处理以得到最终处理接口的位置,然后向微服务注册中心发出最终的请求;所述最终查询SQL语句模拟执行模块用于得到负载均衡的请求调用后执行SQL模拟环境得到最终的结果;所述最终更改SQL语句模拟执行模块用于得到负载均衡的请求调用后执行SQL模拟环境。
所述SQLServer自动判题系统,其中:所述自动判题子系统的判题功能是通过运行程序中预留的sql触发器与索引文件来实现的;所述自动判题子系统的成绩显示页面采用Java和JS技术,能够在当前基于过程化考试平台上运行。
所述SQLServer自动判题系统,其中:所述高并发数据处理子系统包括RabbitMQ消息队列模块、生产者发送消息模块、消费者接受消息模块和微服务注册中心模块;所述RabbitMQ消息队列模块用来将接受到的所有信息进行队列化处理避免消息阻塞;所述生产者发送消息模块用于将信息发送到消息队列中;所述消费者接受消息模块用于接受经过消息队列处理后的信息;所述微服务注册中心模块用于进行服务之间的负载均衡。
所述SQLServer自动判题系统,其中:所述数据编译分析子系统包括微服务消费者-分析模块、微服务生产者-WebSocket接受信息模块、查询SQL语句分析结果模块、更新SQL语句分析结果模块和服务追踪链模块;所述数据编译分析子系统是将所述自动判题子系统处理的数据传回所述微服务生产者-WebSocket接受信息模块并通过所述微服务生产者-WebSocket接受信息模块将数据回显给用户;所述查询SQL语句分析结果模块用于将查询语句进行模拟执行,将结果返回给数据库并通过注册中心通知服务跟踪链模块;所述更新SQL语句分析结果模块用于将更新语句进行模拟执行,将结果返回给数据库并且通过注册中心通知所述服务跟踪链模块;所述微服务消费者-分析模块用于接受由所述RabbitMQ消息队列模块出来的请求并将其解析为查询语句请求或者更新请求,以得到所述查询SQL语句分析结果模块和更新SQL语句分析结果模块的编译结果;所述微服务生产者-WebSocket接受信息模块用于接受所述微服务消费者-分析模块的最终成绩;所述服务追踪链模块用于监测所述微服务生产者-WebSocket接受信息模块、微服务消费者-分析模块、查询SQL语句分析结果模块和更新SQL语句分析结果模块,并且在得到结果通知的时候将队列空余通知所述RabbitMQ消息队列模块。
所述SQLServer自动判题系统,其中:所述高并发数据处理子系统有两个运行阶段,第一阶段为:微服务消费者得到出消息队列的请求;微服务生产者将请求存入消息队列,由所述微服务注册中心进行服务之间的调用;第二阶段为:微服务消费者得到出消息队列的请求后根据请求的多少后运用负载均衡来运行启动了多个所述查询SQL语句模拟执行模块和更改SQL语句模拟执行模块服务来进行并发请求分流。
所述SQLServer自动判题系统,其中:所述微服务单元运行安全跟踪子系统包括微服务生产者Zipink发送心跳模块、负载均衡注册中心模块、微服务消费者Zipink模块、查询SQL语句模拟执行发送心态模块和更新SQL语句模拟执行发送心态模块;所述微服务生产者Zipink发送心跳模块、负载均衡注册中心模块、微服务消费者Zipink模块、查询SQL语句模拟执行发送心态模块和更新SQL语句模拟执行发送心态模块均向所述服务追踪链模块提供自己的服务状态信息,且所述服务追踪链模块接受信息后并通过服务链路追踪组件Zipkin提供的API接口来辅助查询跟踪数据以分布式系统的监控程序,通过UI组件及时发现系统中出现的延迟升高问题以及系统性能瓶颈根源。
所述SQLServer自动判题系统,其中:所述Docker隔离编译子系统包括Select语句最终解析模块、多个相同的Select语句解析服务模块、多个相同的update语句解析服务模块、Update语句最终解析模块、Docker模块和数据库镜像服务模块;所述Select语句最终解析模块用于Select语句在模拟SQL环境下的解析;所述Update语句最终解析模块用于Update语句在模拟SQL环境下的解析;多个相同的所述update语句解析服务模考用于查询以及修改所需要的多个服务模块;所述Docker模块用于启动数据库来存储编译SQL的信息以及生成最终的SQL编译结果;多个所述Select语句解析服务模块与多个所述Update语句最终解析模块均有单独的Docker服务器,每个所述Docker服务器上都部署有多个与所述Select语句解析服务模块和update语句解析服务模块服务相对应的SQL-Server数据库镜像来存放数据库编译的模拟结果。
所述SQLServer自动判题系统,其中:所述Docker隔离编译子系统采用Docker+SQLServer技术来隔离分配出各有2G空间的两部分来分别进行两种语句的编译,并在修改语句编译结束后初始化所有单元的编译数据库来避免语句的相互影响。
有益效果:
本发明通过自动判题系统的设计、JAVA SpringCloud、SpringBoot新型后端框架技术、信息处理和计算机网络的最新的前沿技术,为学生、老师提供一种有效、快速、公正智能的数据库知识考核方式,让老师能轻松了解到学生对数据库的学习情况。
实现数据库相关课程以SQLServer为教学工具类的自动化判题,目前在高校教学考核中,还没有使用机器判题对SQLServer语句进行自动判断,都是采用传统试卷模式,这种模式下对于学生的水平考核不能进行精确测量,也无法验证学生的实际编程水平。
改变传统的纸质模式,以计算机判题作为核心依据,纸质改卷具有对程序语句判题的不准确性,通过计算机程序方法来进行判题,可以实现判题的100%可靠性,并提升学生的实际编程能力。
由于数据库语法类判题需要根据不同的场景采用不同的方法,对于数据的insert,delete,update,需要设定不同的操作模式,对于对象的create,drop,alter也需要设定不同的操作方式,因此需要对每类不同的题目设定不同的initsql(称为初始化sql)和judgesql(称为服务端判断sql),judgeCase(称为服务端判题示例),通过该模式可以实现多种题型的全面考核,能实现对学生知识点的全面考察;judgeCase是对学生完全保密的,是由教师进行设定,系统通过运行学生代码,用judgeCase去进行一一对比,根据每个case的得分比例,最终返回学生的得分数。
系统采用Docker+SQLServer的架构来实现系统并发模式,可以承载多人考试的模式,该模式下学生提交代码后,考试者需要及时查看结果的正确性,并及时做修改,因此对系统并发要求较高,因此采用先进的Docker模式,可以实现大规模并发请求。
将SQL编程类题目进行细化,分为create/insert/update/delete/select五种题型,并实现对每类题型的综合考察。对于不同的题目类型设定不同的initsql和judgesql,实现考核的精确化。
本发明采用“SQL Compile System”优点如下:
(1)提供了判题的准确性,建立多方面用例来验证结果的正确性,加强了学生对知识点的牢固掌握;
(2)提供多题型的判题模式,包括create类型,select类型,insert类型,update类型,delete类型的综合判定,可以从多方面考察学生的知识点掌握水平;
(3)支持sql类数据库管理系统的自动判题,包括SQLServer等关系型数据库语句的自动判题。
附图说明
图1为本发明SQLServer自动判题系统的结构树形图;
图2为本发明SQLServer自动判题系统的工作原理图;
图3为本发明SQLServer自动判题系统的自动判题子系统的结构框图;
图4本发明SQLServer自动判题系统的高并发数据处理子系统的结构框图;
图5本发明SQLServer自动判题系统的数据编译分析子系统的结构框图;
图6本发明SQLServer自动判题系统的微服务单元运行安全跟踪子系统的结构框图;
图7为本发明SQLServer自动判题系统的Docker隔离编译子系统的结构框图。
具体实施方式
如图1、2所示,本发明SQLServer自动判题系统,包括自动判题子系统1、高并发数据处理子系统2、数据编译分析子系统3、微服务单元运行安全跟踪子系统4、Docker隔离编译子系统5和微服务注册中心6。
该自动判题子系统1用于根据提交的SQL语句初始化一个对应的数据库,并将提交的SQL语句在该数据库中模拟运行,并且得到模拟运行的结果显示;如果是出题老师用户则将该结果存储在预期结果中,如果是学生则将该结果与出题老师的预期结果进行对比,得出最终的分数。该自动判题子系统1的判题功能是通过运行程序中预留的sql触发器与索引文件来实现的;该自动判题子系统1的成绩显示页面采用Java、JS技术,能够在当前基于过程化考试平台上运行。
如图3所示,该自动判题子系统1包括微服务生产者模块、微服务消费者模块、最终查询SQL语句模拟执行模块和最终更改SQL语句模拟执行模块。该微服务生产者模块用于接受所有模块的请求,接受到请求后会处理请求的目的并且通过微服务注册中心6实现下一级请求的调用。该微服务消费者模块用于从消息队列得到请求并且对其进行处理得到最终处理接口的位置,然后向微服务注册中心6发出最终的请求。该最终查询SQL语句模拟执行模块用于得到负载均衡的请求调用后执行SQL模拟环境,得到最终的结果。该最终更改SQL语句模拟执行模块用于得到负载均衡的请求调用后执行SQL模拟环境。
该高并发数据处理子系统2采用RabbitMQ消息队列技术,处理了多人提交代码编译所发生的高并发现象,实现了排队的异步方式,极大的提高了代码处理的效率,并在出队列后再针对其请求来进行负载均衡。
如图4所示,该高并发数据处理子系统2包括RabbitMQ消息队列模块、生产者发送消息模块和消费者接受消息模块。该RabbitMQ消息队列模块用来将接受到的所有信息进行队列化处理避免消息阻塞;该生产者发送消息模块用于将接受到的判题请求信息发送到RabbitMQ消息队列模块中;该消费者接受消息模块用于接受经过消息队列处理后的信息。
该数据编译分析子系统3主要是将自动判题子系统1处理的数据传回微服务生产者-WebSocket接受信息模块并且通过微服务生产者-WebSocket接受信息模块将数据回显给用户;该数据编译分析子系统3的处理模式采用SpringCloud微服务单元化管理模式,多个查询SQL语句分析结果模块和更新SQL语句分析结果模块内连接各自的模拟数据库环境,各自进行编译后将结果发送至微服务生产者-WebSocket接受信息模块,微服务生产者-WebSocket接受信息模块接收数据后将与先前的标准结果的缓存进行符合度分析,结束单元的处理之后将数据通过WebSocket及时显示。
如图5所示,该数据编译分析子系统3包括微服务消费者-分析模块、微服务生产者-WebSocket接受信息模块、查询SQL语句分析结果模块、更新SQL语句分析结果模块和服务追踪链模块。该微服务消费者-分析模块接受由高并发数据处理子系统2的RabbitMQ消息队列模块出来的请求并将其解析为查询语句请求或者更新请求并且得到查询SQL语句分析结果模块以及更新SQL语句分析结果模块的编译结果;该微服务生产者-WebSocket接受信息模块用于接受微服务消费者-分析模块的最终成绩;该查询SQL语句分析结果模块用于将查询语句进行模拟执行,将结果返回给自动判题子系统1中的根据对应SQL语句初始化后的数据库并且通过微服务注册中心6通知服务追踪链模块。该更新SQL语句分析结果模块用于将更新语句进行模拟执行并将结果返回给数据库并且通过微服务注册中心6通知服务跟踪链模块;该服务追踪链模块用于监测上述的微服务生产者-WebSocket接受信息模块、微服务消费者-分析模块、查询SQL语句分析结果模块和更新SQL语句分析结果模块,并且在得到结果通知的时候将队列空余通知高并发数据处理子系统2的RabbitMQ消息队列模块。
该高并发数据处理子系统2有两个运行阶段;第一阶段为:微服务消费者得到出消息队列的请求;微服务生产者将请求存入消息队列,由微服务注册中心6进行服务之间的调用。第二阶段为:微服务消费者得到出消息队列的请求后根据请求的多少后运用负载均衡来运行启动了该数据编译分析子系统3的多个查询SQL语句模拟执行模块和更改SQL语句模拟执行模块服务来进行并发请求分流。
该微服务单元运行安全跟踪子系统4用于实现单元数据处理的实时监测,及时通报单元运行异常以及单元运行结果的情况;该微服务单元运行安全跟踪子系统4采用一种分布式追踪的一个解决方案整合Zipkin(服务链路追踪组件)技术分析微服务日志数据,并且使用了微服务架构的微服务注册中心6心跳检测原理,实时将单元服务状态发送Zipkin主界面以及微服务架构的微服务注册中心6;若发生异常处理信息将在Zipkin主界面以及微服务架构的微服务显示异常单元,以此来实现微服务单元运行状态安全跟踪。
如图6所示,该微服务单元运行安全跟踪子系统4包括微服务生产者Zipink发送心跳模块、负载均衡注册中心模块、微服务消费者Zipink模块、查询SQL语句模拟执行发送心态模块和更新SQL语句模拟执行发送心态模块。该微服务生产者Zipink发送心跳模块、负载均衡注册中心模块、微服务消费者Zipink模块、查询SQL语句模拟执行发送心态模块和更新SQL语句模拟执行发送心态模块均向该数据编译分析子系统3的服务追踪链模块提供自己的服务状态信息,且该数据编译分析子系统3的服务追踪链模块接受信息后并通过Zipkin(服务链路追踪组件)提供的API接口来辅助查询跟踪数据以分布式系统的监控程序,通过UI组件及时发现系统中出现的延迟升高问题以及系统性能瓶颈根源。
该Docker隔离编译子系统5是将实现查询语句与更改语句相互隔离进行编译,减少两种语句的影响;该Docker隔离编译子系统5采用Docker技术来隔离分配出各有2G空间的两部分来分别进行对SQLserver两种语句的编译,并在修改语句编译结束后初始化所有单元的编译数据库来避免语句的相互影响。
如图7所示,该Docker隔离编译子系统5包括Select语句最终解析模块、多个相同的Select语句解析服务模块、Update语句最终解析模块、多个相同的update语句解析服务模块、Docker模块和数据库镜像服务模块。该Select语句最终解析模块用于Select语句在模拟SQL环境下的解析;该Update语句最终解析模块用于Update语句在模拟SQL环境下的解析;该多个相同的update语句解析服务模考用于查询以及修改所需要的多个服务模块,因为要实现负载均衡减少单个服务的压力,所以该Docker隔离编译子系统5有多个相同的服务来进行分流;该Docker模块用于启动数据库来存储编译SQL的信息以及生成最终的SQL编译结果。该多个Select语句解析服务模块与多个Update语句最终解析模块均有单独的Docker服务器,每个Docker服务器上都部署有多个与Select语句解析服务模块和update语句解析服务模块服务相对应的SQL-Server数据库镜像来存放数据库编译的模拟结果,这样做到了多条请求数据库编译之间的隔离,使得到的结果公平。
该微服务注册中心6用于自动判题子系统1、高并发数据处理子系统2、数据编译分析子系统3和微服务单元运行安全跟踪子系统4各自服务模块之间的消息转发和负载均衡;在微服务架构中,微服务注册中心6是最核心的基础服务之一。
本发明结构设计合理,判题的准确性高,能多方面用例来验证结果的正确性,加强了学生对知识点的牢固掌握,有效、快速、公正智能的数据库知识考核方式,让老师能轻松了解到学生对数据库的学习情况,可以实现判题的100%可靠性,并提升学生的实际编程能力。
Claims (9)
1.一种SQLServer自动判题系统,其特征在于:所述自动判题系统包括自动判题子系统、高并发数据处理子系统、数据编译分析子系统、微服务单元运行安全跟踪子系统和Docker隔离编译子系统;
所述自动判题子系统用于根据提交的SQL语句初始化一个对应的数据库并将提交的SQL语句在该数据库中模拟运行,得到模拟运行的结果显示;
所述高并发数据处理子系统用于处理多人提交代码编译所发生的高并发现象,实现排队的异步方式,提高代码处理的效率并在出队列后再针对其请求来进行负载均衡;
所述数据编译分析子系统用于将所述自动判题子系统处理的数据回显给用户;
所述微服务单元运行安全跟踪子系统用于实现单元数据处理的实时监测,并及时通报单元运行异常和单元运行结果的情况;
所述Docker隔离编译子系统用于将实现查询语句与更改语句相互隔离进行编译;
所述微服务注册中心用于所述自动判题子系统、高并发数据处理子系统、数据编译分析子系统和微服务单元运行安全跟踪子系统各自服务模块之间的消息转发和负载均衡。
2.如权利要求1所述的SQLServer自动判题系统,其特征在于:所述自动判题子系统包括微服务生产者模块、微服务消费者模块、最终查询SQL语句模拟执行模块和最终更改SQL语句模拟执行模块;
所述微服务生产者模块用于接受所有模块的请求,接受到请求后会处理请求的目的并且通过注册中心实现下一级请求的调用;
所述微服务消费者模块用于从消息队列得到请求并且对其进行处理以得到最终处理接口的位置,然后向微服务注册中心发出最终的请求;
所述最终查询SQL语句模拟执行模块用于得到负载均衡的请求调用后执行SQL模拟环境得到最终的结果;
所述最终更改SQL语句模拟执行模块用于得到负载均衡的请求调用后执行SQL模拟环境。
3.如权利要求1所述的SQLServer自动判题系统,其特征在于:所述自动判题子系统的判题功能是通过运行程序中预留的sql触发器与索引文件来实现的;所述自动判题子系统的成绩显示页面采用Java和JS技术,能够在当前基于过程化考试平台上运行。
4.如权利要求1所述的SQLServer自动判题系统,其特征在于:所述高并发数据处理子系统包括RabbitMQ消息队列模块、生产者发送消息模块、消费者接受消息模块和微服务注册中心模块;
所述RabbitMQ消息队列模块用来将接受到的所有信息进行队列化处理避免消息阻塞;
所述生产者发送消息模块用于将信息发送到消息队列中;
所述消费者接受消息模块用于接受经过消息队列处理后的信息;
所述微服务注册中心模块用于进行服务之间的负载均衡。
5.如权利要求4所述的SQLServer自动判题系统,其特征在于:所述数据编译分析子系统包括微服务消费者-分析模块、微服务生产者-WebSocket接受信息模块、查询SQL语句分析结果模块、更新SQL语句分析结果模块和服务追踪链模块;
所述数据编译分析子系统是将所述自动判题子系统处理的数据传回所述微服务生产者-WebSocket接受信息模块并通过所述微服务生产者-WebSocket接受信息模块将数据回显给用户;
所述查询SQL语句分析结果模块用于将查询语句进行模拟执行,将结果返回给数据库并通过注册中心通知服务跟踪链模块;
所述更新SQL语句分析结果模块用于将更新语句进行模拟执行,将结果返回给数据库并且通过注册中心通知所述服务跟踪链模块;
所述微服务消费者-分析模块用于接受由所述RabbitMQ消息队列模块出来的请求并将其解析为查询语句请求或者更新请求,以得到所述查询SQL语句分析结果模块和更新SQL语句分析结果模块的编译结果;
所述微服务生产者-WebSocket接受信息模块用于接受所述微服务消费者-分析模块的最终成绩;
所述服务追踪链模块用于监测所述微服务生产者-WebSocket接受信息模块、微服务消费者-分析模块、查询SQL语句分析结果模块和更新SQL语句分析结果模块,并且在得到结果通知的时候将队列空余通知所述RabbitMQ消息队列模块。
6.如权利要求5所述的SQLServer自动判题系统,其特征在于:所述高并发数据处理子系统有两个运行阶段,第一阶段为:微服务消费者得到出消息队列的请求;微服务生产者将请求存入消息队列,由所述微服务注册中心进行服务之间的调用;第二阶段为:微服务消费者得到出消息队列的请求后根据请求的多少后运用负载均衡来运行启动了多个所述查询SQL语句模拟执行模块和更改SQL语句模拟执行模块服务来进行并发请求分流。
7.如权利要求5所述的SQLServer自动判题系统,其特征在于:所述微服务单元运行安全跟踪子系统包括微服务生产者Zipink发送心跳模块、负载均衡注册中心模块、微服务消费者Zipink模块、查询SQL语句模拟执行发送心态模块和更新SQL语句模拟执行发送心态模块;
所述微服务生产者Zipink发送心跳模块、负载均衡注册中心模块、微服务消费者Zipink模块、查询SQL语句模拟执行发送心态模块和更新SQL语句模拟执行发送心态模块均向所述服务追踪链模块提供自己的服务状态信息,且所述服务追踪链模块接受信息后并通过服务链路追踪组件Zipkin提供的API接口来辅助查询跟踪数据以分布式系统的监控程序,通过UI组件及时发现系统中出现的延迟升高问题以及系统性能瓶颈根源。
8.如权利要求1所述的SQLServer自动判题系统,其特征在于:所述Docker隔离编译子系统包括Select语句最终解析模块、多个相同的Select语句解析服务模块、多个相同的update语句解析服务模块、Update语句最终解析模块、Docker模块和数据库镜像服务模块;
所述Select语句最终解析模块用于Select语句在模拟SQL环境下的解析;所述Update语句最终解析模块用于Update语句在模拟SQL环境下的解析;多个相同的所述update语句解析服务模考用于查询以及修改所需要的多个服务模块;所述Docker模块用于启动数据库来存储编译SQL的信息以及生成最终的SQL编译结果;
多个所述Select语句解析服务模块与多个所述Update语句最终解析模块均有单独的Docker服务器,每个所述Docker服务器上都部署有多个与所述Select语句解析服务模块和update语句解析服务模块服务相对应的SQL-Server数据库镜像来存放数据库编译的模拟结果。
9.如权利要求1所述的SQLServer自动判题系统,其特征在于:所述Docker隔离编译子系统采用Docker+SQLServer技术来隔离分配出各有2G空间的两部分来分别进行两种语句的编译,并在修改语句编译结束后初始化所有单元的编译数据库来避免语句的相互影响。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010008374.3A CN111274262B (zh) | 2020-01-06 | 2020-01-06 | 一种SQLServer自动判题系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010008374.3A CN111274262B (zh) | 2020-01-06 | 2020-01-06 | 一种SQLServer自动判题系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111274262A true CN111274262A (zh) | 2020-06-12 |
CN111274262B CN111274262B (zh) | 2022-08-26 |
Family
ID=71000085
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010008374.3A Expired - Fee Related CN111274262B (zh) | 2020-01-06 | 2020-01-06 | 一种SQLServer自动判题系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111274262B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897749A (zh) * | 2017-03-03 | 2017-06-27 | 盐城工学院 | 自动阅卷方法及系统 |
CN108596799A (zh) * | 2018-03-27 | 2018-09-28 | 佛山市顺德区中山大学研究院 | 一种基于Verilog的判题装置、方法及系统 |
CN109508293A (zh) * | 2018-11-08 | 2019-03-22 | 上海洛谷网络科技有限公司 | 一种高并发的算法竞赛程序在线评测系统 |
WO2019075820A1 (zh) * | 2017-10-20 | 2019-04-25 | 深圳市鹰硕技术有限公司 | 一种试卷批阅系统 |
-
2020
- 2020-01-06 CN CN202010008374.3A patent/CN111274262B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897749A (zh) * | 2017-03-03 | 2017-06-27 | 盐城工学院 | 自动阅卷方法及系统 |
WO2019075820A1 (zh) * | 2017-10-20 | 2019-04-25 | 深圳市鹰硕技术有限公司 | 一种试卷批阅系统 |
CN108596799A (zh) * | 2018-03-27 | 2018-09-28 | 佛山市顺德区中山大学研究院 | 一种基于Verilog的判题装置、方法及系统 |
CN109508293A (zh) * | 2018-11-08 | 2019-03-22 | 上海洛谷网络科技有限公司 | 一种高并发的算法竞赛程序在线评测系统 |
Non-Patent Citations (3)
Title |
---|
由东友: "SQL Server考核自动阅卷系统设计与实现", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
舒新峰 等: "基于Docker的分布式程序判定系统设计与实现", 《实验室研究与探索》 * |
陈尧妃 等: "基于XML的SQL Server数据库技能操作自动阅卷", 《计算机系统应用》 * |
Also Published As
Publication number | Publication date |
---|---|
CN111274262B (zh) | 2022-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106095673B (zh) | 基于web接口的自动化测试方法及系统 | |
Caro et al. | intsvy: An R package for analyzing international large-scale assessment data | |
Fortmann-Roe | Consistent and clear reporting of results from diverse modeling techniques: the A3 method | |
CN105224458B (zh) | 一种数据库测试方法及系统 | |
Lancaster et al. | A comparison of source code plagiarism detection engines | |
US10410219B1 (en) | Providing automatic self-support responses | |
CN108764480A (zh) | 一种信息处理的系统 | |
CN110347598A (zh) | 一种测试脚本生成方法、装置、服务器及存储介质 | |
KR20160021110A (ko) | 텍스트 매칭 장치와 방법 및 텍스트 분류 장치와 방법 | |
CN111309343B (zh) | 一种开发部署方法及装置 | |
CN111400473A (zh) | 意图识别模型的训练方法及装置、存储介质及电子设备 | |
CN111767334A (zh) | 信息抽取方法、装置、电子设备及存储介质 | |
US20220027768A1 (en) | Natural Language Enrichment Using Action Explanations | |
CN112732567A (zh) | 基于ip的mock数据测试方法、装置、电子设备及存储介质 | |
CN113837908A (zh) | 一种基于课程的网络培训系统与方法 | |
CN111274262B (zh) | 一种SQLServer自动判题系统 | |
JP2021165850A (ja) | 学習支援装置及びプログラム | |
CN116383155B (zh) | 一种基于eda验证仿真器的日志查询系统 | |
CN111931034A (zh) | 数据搜索方法、装置、设备及存储介质 | |
CN112069833A (zh) | 日志分析方法、日志分析装置及电子设备 | |
CN112149828A (zh) | 基于深度学习框架的算子精度检测方法和装置 | |
CN111580412A (zh) | 基于半实物模型的测试评价系统 | |
CN115422427A (zh) | 就业技能需求分析系统 | |
CN115269862A (zh) | 一种基于知识图谱的电力问答与可视化系统 | |
KR101245824B1 (ko) | 학습 정보를 제공하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20220826 |
|
CF01 | Termination of patent right due to non-payment of annual fee |