一支笔撑起的黑科技课堂
还记得曾经的高中数学老师,曾讲过她的判卷经历:她儿子判选择题,她判大题,她老公核算总分——全家总动员,最后还需要数学课代表登成绩。
但是!在腾讯的智慧教育解决方案里,借助一款“神笔”,打造了“企鹅智笔课堂”,使得批改作业可以智慧化,把老师们从繁重的试卷批改工作中解放出来,更加专注地投身到创新教学形式中。除此之外还有很多神奇功能,可谓一支笔撑起了黑科技课堂,可以戳下方视频直观感受一下。
企鹅智笔课堂的大功臣是智能点阵笔。
智能点阵笔是一款基于计算机视觉识别辅助技术的智能硬件产品。在它的笔尖隐藏着一只“摄像机”—— 微型感应器。基于点阵笔的数据采集功能,腾讯教育利用大数据、AI、云等相关技术打造了企鹅智笔课堂,涵盖了备课、授课、互动、测验、批改、学情分析等多种教学环节,不仅是将老师们从繁重教务工作中解放出来的”超能小助手“,也是所有学生课堂学习的“记录官”,助力师生进行个性化教学。
企鹅智笔课堂背后的技术架构揭秘
企鹅智笔课堂是如何在一支点阵笔的身后,建立起云上的深度服务体系呢?
业务背景分析
“企鹅智笔课堂系统”的设计目标是能够同时服务教师和学生,并将自己融入已有的教育体系,并提升教育能力。从整体架构设计上,按照低耦合、高可用、可独立服务的设计原则,我们设计了 3 个相对独立的子系统:
课前的“选题组卷”模块。
课中的“互动教学和随堂测验”模块。
课后的“在线批改与个性化报告”模块。
首先,我们期望每个子系统有自己独立的用户体系,可以独立服务,但需要解决账户打通问题,如何识别不同系统的用户是不是同一个实体用户呢?其次,为了每个系统都会产生自己的数据,如何将这些数据同步汇总到一起,同时又能够保证数据关系的准确性呢? 在这样的服务诉求下,两个不可绕过的难点出现了:
用户拉通。
数据交互。
为了实现这两个重要的基本需求,我们设计并开发了“企鹅智笔课堂基础核心服务”,一个可远程调用的数据处理服务。
技术选型
我们对比了常用的应用层网络通信,http 与 grpc 协议,如下图所示。
虽然 http 协议有浏览器支持,但是在传输效率和安全性等方面都不及 grpc 协议,而基础核心服务是提供接口服务的,无需浏览器支持,因此在协议选型中采用 grpc 协议。
接下来,以必备的服务器为核心,我们对比了使用自建服务器与腾讯云服务器,在架构上带来的差异,如下图所示。
腾讯云提供了一系列方便开发者使用的组件,高可用、低维护、定向服务(关系型数据库/NoSql 数据库)等方面全面优于自建服务,因此选用腾讯云进行服务部署,具体涉及的云服务:
云服务器(CVM)
云文件存储(CFS)
大数据检索(ElasticSearch)
云数据库(CDB:redis/mysql/sqlserver)
云消息队列(CMQ)
架构设计
1. “企鹅智笔课堂”的总体架构
“企鹅智笔课堂”的总体架构如下图所示。
从上图可以看出基础核心服务(GRPC 微服务集群)在中间起到了承上启下的作用。业务层与基础组件的交互,以及业务层之间的数据交互都要通过基础核心服务,基础核心服务承担着一个重要的数据存储于调度功能。下文将展示数个基于核心服务的逻辑架构设计。
2. 基础核心服务的架构
基于核心服务的逻辑架构设计如下图所示。
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 内的角色和权限,这样用户就不用重复登陆了,从而实现了子系统之间的无缝切换。
具体流程可参见如下流程示意图。
2. 数据结构的反向映射
根据业务的不同,每张表的结构都不同,而 grpc 则对传入传出参数有着强数据结构的校验,每次对数据库内数据的调整都要每个字段逐一赋值吗?如果真的这么做,代码冗余就会非常严重,可维护性也会严重下降,这里,我们是用“反向映射”的方法来解决问题。所谓“反向映射”,就是程序在运行时确定数据的类型和标签,并可以对数据进行动态修改。
处理这个问题流程如下图所示。
3. 数据交互
正如“巴别塔”的建造,带来巨大的语言沟通障碍一样,多用户体系系统的架构也面临着巨大的数据交互的压力。每个系统产生的数据都不是独立的,都需要其他的系统继续处理,而其他系统如何跨系统取数据呢?最简单暴力的方法就是子系统直接开放 http api 接口,这种做法简单粗暴,虽然立竿见影,但是问题也很明显,首先就是暴露在公网的接口需要进行身份校验,其次,随着参与交互的子系统数量的增加,沟通成本会呈指数上升,虽然目前只有 3 个子系统,但是随着产品特性的增加引入新的子系统不可避免。
那么最好的处理方法就是设立一个“仓库管理员”,子系统 1 产生的数据,可以通过“仓库管理员”存入“仓库”,子系统 2 需要什么数据可以跟“仓库管理员”要,如果“仓库”里有就给你,没有就告诉你没有。使用 grpc 微服务集群搭建的基础核心服务正好充当这个“管理员”的角色。每个系统产生的数据由基础核心服务进行汇总,其他系统需要数据则从基础核心服务中获取。
课堂效果
1. 课前:下载资源,手写教案
教师可以通过优质的资源库进行资源下载和课前备课,通过使用点阵笔,还可以将老师们在纸上书写的教案生成课件,并支持多平台录课工具,通过腾讯云上传到网络上分享微课资源。
2. 课中:掌上黑板,随心所欲
点阵笔可以实时记录老师的板书内容,并进行投屏。老师只需拿着一支笔一张纸,即可在教室里边走边板书,摆脱讲台束缚,实现“移动式教学”,与学生进行深层互动。
3. 课后:作业批改,省时省力
点阵笔搭配 AI 智能识别与智能题库系统,就可以做到对学生作业的实时批改:自动给选择题、填空题和部分主观题评判,帮助老师节省大量的批阅时间。
4. 考试:试卷批改,AI 阅卷
和写作业一样,用点阵笔答题相当于大型考试录播现场。每一个同学的答题过程和答题结果都实时上传云端。
客观题自动判分,主观题不仅可以识别字迹,还支持老师回看学生作答过程。像作者数学老师那种“全家总动员”的批改景象就不复存在了。
5. 个性化错题本
“企鹅智笔课堂”支持与腾讯云端数据结合,形成完整的集体答题“错题本”for teachers、个人“错题本”for students,通过学生笔尖的停顿时间、涂改情况等数据来分析学生的思考过程,对学生作业和考试结果进行数据化分析,作为老师教学的参照,可以极大地提高教学效率。
落地效果:全国 6000+所学校
腾讯“企鹅智笔课堂”是与生态合作伙伴拓思德、学科网等战略合作共研,已经陆续在北京、深圳、天津等 40 多个教育局落地,覆盖了超过 6000 所学校。
“ ‘企鹅智笔课堂’技术实现了低成本、高效率的笔迹实时记录,可以进一步收集学生的过程信息,帮助老师了解学生的整个答题思维过程。”
——南外高中校长冯大学
总结
“世上无难事只怕有心人”,任何一个业务都有其业务难点,任何一个业务难点都会带来对应的技术难点,但这些难点都是可以被解决的,只要思路清晰,方向正确,会使我们解决问题的难度降低很多。“智笔课堂”这个项目,我们充分利用了腾讯云提供的丰富的基础组件服务,极大地降低了开发成本与后期运维成本,将一个原本复杂的系统大大的简化了。
本文转载自公众号云加社区(ID:QcloudCommunity)。
原文链接:
https://mp.weixin.qq.com/s/YrFkkIjiZLEpjqJMjC9lqw
评论