技术领域
[0001] 本发明涉及在线教育领域,尤其涉及一种基于状态机的线上课堂教学同步方法及系统。
相关背景技术
[0002] 现有的线上课堂教学方案大多按照课堂教学流程进行,业务组件之间耦合较大,一旦出现问题很难恢复到正常状态,在网络状态不稳定的场景下可靠性难以保障。
具体实施方式
[0020] 为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
[0021] 本发明最关键的构思在于:通过状态机同步教师端和学生端,实现提高线上课堂教学的可靠性。
[0022] 如图1所示,本发明提供一种基于状态机的线上课堂教学同步方法,包括:
[0023] S1、根据线上课堂教学的业务逻辑配置状态机;所述状态机包括教师端的状态机和学生端的状态机;
[0024] S2、根据所述状态机同步教师端和学生端的状态。
[0025] 进一步地,所述S2具体为:
[0026] 从学生端的状态机中获取学生端的当前状态,得到第一状态;
[0027] 从教师端的状态机中获取与所述第一状态相应的状态,得到第二状态;
[0028] 从教师端的状态机中获取教师端的当前状态,得到第三状态;
[0029] 教师端根据所述教师端的状态机向学生端发送从所述第二状态转换至所述第三状态的第一指令和第一数据。
[0030] 由上述描述可知,实现根据学生端的当前状态和教师端的当前状态同步学生端和教师端,使得学生端可快速恢复到与教师端对应的状态。
[0031] 进一步地,还包括:
[0032] 判断所述第一指令是否由教师端从第三状态或第三状态之后的任一状态转换至终态或终态之前的任一状态所触发的指令,若是,则不执行所述第一指令。
[0033] 由上述描述可知,当学生端处于状态恢复中时,不执行教师端发送的其它指令,如,在同步完成前,教师端由当前状态转换到下一状态所触发的指令,可保证学生端在同步过程中避免因为消息时序问题导致状态紊乱。
[0034] 进一步地,所述S2之前,还包括:
[0035] 学生端接收教师端发送的第二指令;
[0036] 判断学生端是否存在执行所述第二指令所需的数据,若否,则:
[0037] 学生端向教师端请求与所述第二指令相应的第二数据;
[0038] 当学生端接收所述第二数据后,执行所述第二指令。
[0039] 由上述描述可知,在相关资源完整接收后再执行相应的指令可保证指令执行的正确性,提高用户体验。
[0040] 进一步地,还包括:
[0041] 实时保存学生端的状态机的当前状态。
[0042] 由上述描述可知,实现当学生端重新与教师端连接时,可从学生端断线前的状态开始同步,提高同步的效率。
[0043] 如图2所示,本发明还提供一种基于状态机的线上课堂教学同步系统,包括:
[0044] 配置模块1,用于根据线上课堂教学的业务逻辑配置状态机;所述状态机包括教师端的状态机和学生端的状态机;
[0045] 同步模块2,用于根据所述状态机同步教师端和学生端的状态。
[0046] 进一步地,所述同步模块包括:
[0047] 第一获取单元21,用于从学生端的状态机中获取学生端的当前状态,得到第一状态;
[0048] 第二获取单元22,用于从教师端的状态机中获取与所述第一状态相应的状态,得到第二状态;
[0049] 第三获取单元23,用于从教师端的状态机中获取教师端的当前状态,得到第三状态;
[0050] 发送单元24,用于教师端根据所述教师端的状态机向学生端发送从所述第二状态转换至所述第三状态的第一指令和第一数据。
[0051] 进一步地,还包括:
[0052] 第一判断模块3,用于判断所述第一指令是否由教师端从第三状态或第三状态之后的任一状态转换至终态或终态之前的任一状态所触发的指令,若是,则不执行所述第一指令。
[0053] 进一步地,还包括:
[0054] 发送模块4,用于学生端接收教师端发送的第二指令;
[0055] 第二判断模块5,用于判断学生端是否存在执行所述第二指令所需的数据,若否,则:学生端向教师端请求与所述第二指令相应的第二数据;
[0056] 执行模块6,用于当学生端接收所述第二数据后,执行所述第二指令。
[0057] 进一步地,还包括:
[0058] 保存模块7,用于实时保存学生端的状态机的当前状态。
[0059] 从上述描述可知,通过本发明提供的一种基于状态机的线上课堂教学同步系统,实现学生端和教师端的状态同步,从而实现提高线上课堂教学的可靠性。
[0060] 实施例:
[0061] S1、根据线上课堂教学的业务逻辑配置状态机;所述状态机包括教师端的状态机和学生端的状态机;
[0062] 其中,首先将线上课堂教学的业务逻辑进行拆解并从中抽象出对应的状态与规则,减少业务之间的耦合度。分析线上课堂教学的业务逻辑,将流程分解为课件讲解、随堂练习、屏幕推送等业务环节,结合技术上的上下课、登录等环节,最终形成线上课堂教学的状态机如图3所示,根据所述线上课堂教学的状态机配置学生端和教师端中的状态机。业务组件在运行时,通过线上课堂教学状态机动态地校验和转换状态,保障线上课堂教学状态的可靠性。
[0063] 对于较为复杂的业务场景,为了保证该业务场景正常运行,需为其配置相应的状态机,如随堂练习场景的状态机如图4所示。
[0064] S2、根据所述状态机同步教师端和学生端的状态。具体为:从学生端的状态机中获取学生端的当前状态,得到第一状态;从教师端的状态机中获取与所述第一状态相应的状态,得到第二状态;从教师端的状态机中获取教师端的当前状态,得到第三状态;教师端根据所述教师端的状态机向学生端发送从所述第二状态转换至所述第三状态的第一指令和第一数据;判断所述第一指令是否由教师端从第三状态或第三状态之后的任一状态转换至终态或终态之前的任一状态所触发的指令,若是,则不执行所述第一指令。
[0065] 例如,第一学生端由于网络不稳定等因素断开与教师端的连接,挂起第一学生端自身的状态机。在断开连接前,第一学生端处于“做题中”状态。当第一学生端重新连接教师端时,教师端已转至“老师已收卷”状态。因此,根据随堂练习场景的状态机,第一学生端同步从“做题中”状态到“老师已收卷”状态之间的状态。具体为:学生在第一学生端继续做题,当学生在第一学生端做题完毕后,向教师端提交答案,并转至“学生已提交答案”的状态。并向教师端提交试卷,执行交卷操作。教师端发送收卷指令,获取学生端提交的试卷,学生端转到“老师已收卷”状态。
[0066] 当第一学生端处于恢复同步的状态时,其它学生端仍与教师端按状态机的规则正常运转。此时,教师端由于状态转换所触发的指令也会发送给第一学生端。第一学生端判断当前收到的指令是否为教师端由“老师已收卷”之后的状态所触发的指令,若是,则第一学生端暂不执行该指令。如,在第一学生端恢复同步的过程中,教师端下发“老师公布结果”的指令,除第一学生端之外的学生端均已接收试卷答案,转至“学生已获取结果”状态,教师端在发送试卷答案后也转至“学生已获取结果”状态。但,此时,第一学生端尚未完成恢复同步操作,因此,第一学生端在收到教师端由于正常的状态转换发送的“老师公布结果”的指令时,暂存该指令信号,待恢复同步操作完成后,第一学生端执行相应的接收指令,并转换至“学生已获取结果”状态。
[0067] 当学生端未完整接收执行相应指令所需的资源时,也会挂起自身的状态机,待资源接收完毕后再跳转至相应的状态。具体为:
[0068] 学生端接收教师端发送的第二指令;
[0069] 判断学生端是否存在执行所述第二指令所需的数据,若否,则:
[0070] 学生端向教师端请求与所述第二指令相应的第二数据;
[0071] 当学生端接收所述第二数据后,执行所述第二指令。
[0072] 例如,教师端已从“发送习题”状态转为“做题计时”状态。教师端向学生端发送计时指令,部分学生端由于网速等因素的影响,相应习题的数据资源还未完整接收,学生无法开始做题,因此暂不执行计时指令,待相应习题的数据资源完整接收后,再执行计时指令并转至“做题计时”状态。若当学生端转为“做题计时”状态时,教师端已从“做题计时”状态转为“老师已收卷”状态,则学生端根据状态机同步从“做题计时”状态到“老师已收卷”状态之间的状态。
[0073] 此外,在学生端与教师端同步的过程中,还需实时保存学生端的状态机的当前状态。
[0074] 若学生端只是由于网络因素与教师端短时间断开连接,状态机会自动保存当前状态。但是,若学生端由于故障需重启系统,则当重启系统后,状态机的状态会恢复到起始态。因此,先将状态机的当前状态同步至系统重启前保存的学生端的最新状态,有利于提高恢复状态同步的效率。
[0075] 综上所述,本发明提供的一种基于状态机的线上课堂教学同步方法及系统,通过根据线上课堂教学的业务逻辑配置教师端和学生端的状态机,从而当学生端因网络等其它因素掉线后,重新连接上教师端时,可分别获取教师端和学生端的状态机的当前状态,根据状态机同步教师端和学生端,从而提高了线上课堂教学的可靠性。本发明还提供一种基于状态机的线上课堂教学同步系统,实现学生端和教师端的状态同步。
[0076] 以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。