一支笔撑起的黑科技课堂

还记得曾经的高中数学老师,曾讲过她的判卷经历:她儿子判选择题,她判大题,她老公核算总分——全家总动员,最后还需要数学课代表登成绩。 

但是!在腾讯的智慧教育解决方案里,借助一款“神笔”,打造了“企鹅智笔课堂”,使得批改作业可以智慧化,把老师们从繁重的试卷批改工作中解放出来,更加专注地投身到创新教学形式中。除此之外还有很多神奇功能,可谓一支笔撑起了黑科技课堂,可以戳下方视频直观感受一下 


企鹅智笔课堂的大功臣是智能点阵笔。

智能点阵笔是一款基于计算机视觉识别辅助技术的智能硬件产品。在它的笔尖隐藏着一只“摄像机”—— 微型感应器。基于点阵笔的数据采集功能,腾讯教育利用大数据、AI、云等相关技术打造了企鹅智笔课堂,涵盖了备课、授课、互动、测验、批改、学情分析等多种教学环节,不仅是将老师们从繁重教务工作中解放出来的”超能小助手“,也是所有学生课堂学习的“记录官”,助力师生进行个性化教学 

 

企鹅智笔课堂背后的技术架构揭秘


企鹅智笔课堂是如何在一支点阵笔的身后,建立起云上的深度服务体系呢? 


业务背景分析


“企鹅智笔课堂系统”的设计目标是能够同时服务教师和学生,并将自己融入已有的教育体系,并提升教育能力。从整体架构设计上,按照低耦合、高可用、可独立服务的设计原则,我们设计了3个相对独立的子系统: 

  • 课前的“选题组卷”模块。

  • 课中的“互动教学和随堂测验”模块。

  • 课后的“在线批改与个性化报告”模块。


首先,我们期望每个子系统有自己独立的用户体系,可以独立服务,但需要解决账户打通问题,如何识别不同系统的用户是不是同一个实体用户呢?其次,为了每个系统都会产生自己的数据,如何将这些数据同步汇总到一起,同时又能够保证数据关系的准确性呢? 在这样的服务诉求下,两个不可绕过的难点出现了:

  • 用户拉通。

  • 数据交互。


为了实现这两个重要的基本需求,我们设计并开发了“企鹅智笔课堂基础核心服务”,一个可远程调用的数据处理服务。 


技术选型


我们对比了常用的应用层网络通信,http与grpc协议,如下图所示。 

虽然http协议有浏览器支持,但是在传输效率和安全性等方面都不及grpc协议,而基础核心服务是提供接口服务的,无需浏览器支持,因此在协议选型中采用grpc协议。 

接下来,以必备的服务器为核心,我们对比了使用自建服务器与腾讯云服务器,在架构上带来的差异,如下图所示。 

腾讯云提供了一系列方便开发者使用的组件,高可用、低维护、定向服务(关系型数据库/NoSql数据库)等方面全面优于自建服务,因此选用腾讯云进行服务部署,具体涉及的云服务: 

  • 云服务器(CVM)

  • 云文件存储(CFS)

  • 大数据检索(ElasticSearch)

  • 云数据库(CDB:redis/mysql/sqlserver)

  • 云消息队列(CMQ)

架构设计


1. “企鹅智笔课堂”的总体架构

“企鹅智笔课堂”的总体架构如下图所示。

一支笔撑起黑科技课堂?背后的技术秘密原来是这样的_java

从上图可以看出基础核心服务(GRPC微服务集群)在中间起到了承上启下的作用。业务层与基础组件的交互,以及业务层之间的数据交互都要通过基础核心服务,基础核心服务承担着一个重要的数据存储于调度功能。下文将展示数个基于核心服务的逻辑架构设计。 


2. 基础核心服务的架构

基于核心服务的逻辑架构设计如下图所示。

一支笔撑起黑科技课堂?背后的技术秘密原来是这样的_java_02

grpc云服务集群通过ETCD注册到服务组中,同时基础核心服务grpc云服务集群也可以通过ETCD发现登录组件服务,从而获取登录用户信息;grpc服务接收到调用方发送的请求之后,进行相应的处理,存入CDB、CFS或者ES,当一个业务层的数据流程结束后,基础核心服务会向CMQ写入一个消息,通知其下游的业务层进行相应的业务处理。 


技术难点

1. 用户数据拉通

回到最初的“神之疑问”,不同的子用户系统中的账号,到底对应的是不是同一个实体用户呢?一个用户在3个子系统中可能有3个不同的id,3个不同的用户名称,3个不同的账号密码,更可怕的是,不同的用户在不同的系统中,用户名都很有可能是重复的,这种问题,交给个大活人来判断都有难度,更何况是程序处理,OMG!难道除了上帝真的没有人知道了吗?当然还有,那就是“智慧校园开放平台”的“登录组件”。 


首先,子系统1用户在登录时使用登录组件,微信扫描二维码后返回用户识别码,以及在浏览器中种一个登录态cookie,当用户在当前浏览器切换到子系统2时,子系统2在取到登录态cookie后,通过grpc服务向登录组件发起校验,校验通过后则准许用户登录,同时子系统2可以通过grpc服务向登录组件获取用户信息,从而确定用户在子系统2内的角色和权限,这样用户就不用重复登陆了,从而实现了子系统之间的无缝切换。 


具体流程可参见如下流程示意图。

一支笔撑起黑科技课堂?背后的技术秘密原来是这样的_java_032. 数据结构的反向映射

根据业务的不同,每张表的结构都不同,而grpc则对传入传出参数有着强数据结构的校验,每次对数据库内数据的调整都要每个字段逐一赋值吗?如果真的这么做,代码冗余就会非常严重,可维护性也会严重下降,这里,我们是用“反向映射”的方法来解决问题。所谓“反向映射”,就是程序在运行时确定数据的类型和标签,并可以对数据进行动态修改。 


处理这个问题流程如下图所示。

一支笔撑起黑科技课堂?背后的技术秘密原来是这样的_java_04

3. 数据交互

正如“巴别塔”的建造,带来巨大的语言沟通障碍一样,多用户体系系统的架构也面临着巨大的数据交互的压力。每个系统产生的数据都不是独立的,都需要其他的系统继续处理,而其他系统如何跨系统取数据呢?最简单暴力的方法就是子系统直接开放http api接口,这种做法简单粗暴,虽然立竿见影,但是问题也很明显,首先就是暴露在公网的接口需要进行身份校验,其次,随着参与交互的子系统数量的增加,沟通成本会呈指数上升,虽然目前只有3个子系统,但是随着产品特性的增加引入新的子系统不可避免。


那么最好的处理方法就是设立一个“仓库管理员”,子系统1产生的数据,可以通过“仓库管理员”存入“仓库”,子系统2需要什么数据可以跟“仓库管理员”要,如果“仓库”里有就给你,没有就告诉你没有。使用grpc微服务集群搭建的基础核心服务正好充当这个“管理员”的角色。每个系统产生的数据由基础核心服务进行汇总,其他系统需要数据则从基础核心服务中获取。 


课堂效果


1. 课前:下载资源,手写教案

教师可以通过优质的资源库进行资源下载和课前备课,通过使用点阵笔,还可以将老师们在纸上书写的教案生成课件,并支持多平台录课工具,通过腾讯云上传到网络上分享微课资源。 

2. 课中:掌上黑板,随心所欲

点阵笔可以实时记录老师的板书内容,并进行投屏。老师只需拿着一支笔一张纸,即可在教室里边走边板书,摆脱讲台束缚,实现“移动式教学”,与学生进行深层互动。 


3. 课后:作业批改,省时省力

点阵笔搭配AI智能识别与智能题库系统,就可以做到对学生作业的实时批改:自动给选择题、填空题和部分主观题评判,帮助老师节省大量的批阅时间。 

4. 考试:试卷批改,AI阅卷

和写作业一样,用点阵笔答题相当于大型考试录播现场。每一个同学的答题过程和答题结果都实时上传云端。 

客观题自动判分,主观题不仅可以识别字迹,还支持老师回看学生作答过程。像作者数学老师那种“全家总动员”的批改景象就不复存在了。 

5. 个性化错题本

“企鹅智笔课堂”支持与腾讯云端数据结合,形成完整的集体答题“错题本”for teachers、个人“错题本”for students,通过学生笔尖的停顿时间、涂改情况等数据来分析学生的思考过程,对学生作业和考试结果进行数据化分析,作为老师教学的参照,可以极大地提高教学效率。 

一支笔撑起黑科技课堂?背后的技术秘密原来是这样的_java_05


落地效果:全国6000+所学校

 

腾讯“企鹅智笔课堂”是与生态合作伙伴拓思德、学科网等战略合作共研,已经陆续在北京、深圳、天津等40多个教育局落地,覆盖了超过6000所学校 

一支笔撑起黑科技课堂?背后的技术秘密原来是这样的_java_06

“ ‘企鹅智笔课堂’技术实现了低成本、高效率的笔迹实时记录,可以进一步收集学生的过程信息,帮助老师了解学生的整个答题思维过程。” 

——南外高中校长冯大


总结


“世上无难事只怕有心人”,任何一个业务都有其业务难点,任何一个业务难点都会带来对应的技术难点,但这些难点都是可以被解决的,只要思路清晰,方向正确,会使我们解决问题的难度降低很多。“智笔课堂”这个项目,我们充分利用了腾讯云提供的丰富的基础组件服务,极大地降低了开发成本与后期运维成本,将一个原本复杂的系统大大的简化了。 

架构上的实践其实涉及多个角度的解析,本文暂就核心架构,进行了关键设计的分享,后续将结合本方案针对大数据检索及AI应用等维度,进行专项分享,感兴趣的同学请持续关注云加社区。