4008-888-888
9490489@qq.com

开发一个在线教育产品需要哪些技术?

2013年被称为国内在线教育(也称为在线学习)的元年。从那一年开始,在线教育开始蓬勃发展,与此同时,也带动了如机器学习、直播、VR/AR等技术与在线学习各细分领域应用的深度融合。

从产品形态来说,在线教育产品大致可分为视频类(如录播课程和直播课程【由平台组织,B2C】)、工具(如单词、题库、笔记、评测等)、综合(如某些垂直网站)、家校互动、家教O2O、互动教学(如C2C线上一对一)、垂直信息(如留学服务类)等。不同的产品形态所需要技术支撑体系迥然各异。我以时下最火的直播教学产品开发举例。

要打造一个好的教育直播产品,首先得有一个好的架构。无论是MVC(MVP、MV*)、传统的3层、n-tier、SOA还是Micro-services、中台等,总之要通过架构(图)来诠释其构建——即业务及产品设计的技术实现,以帮助分析师、开发工程师、开发经理乃至测试、运维、产品等团队成员理解技术架构背后的东西和相关设计规则,以便各部分开展深化设计,比如用户体验、子系统和基础架构设计。下面是一个直播产品的典型架构:

这个产品采用的是微服务架构,通过API网关和消息服务器为包括Web端、APP、H5、小程序、后台等客户端提供相关RESTful/Web Socket接口。所有的排课、直播、互动、通讯、同步等逻辑均在服务器端处理。从这个架构图中可以看到,服务器开发会涉及诸如集群、负载均衡、分布式存储、CDN、流程引擎、消息通讯、缓存、数据库、搜索、流媒体、音视频编解码、任务调度、数据分析等一系列的技术。这个平台完全基于流程驱动,同时通过运行时服务(Runtime Services)为各服务器(进程)提供相关的平台服务支撑。典型的业务流程如下所示:

虚拟教室(客户端)有Web/iOS/Android/H5/小程序版本。由于绝大多数老师上课还是使用电脑,为给老师提供更自然、更接近与真实的直播教学体验,同时也避免下载安装客户端软件,需要在Web端实现完整的教室功能,含直播推流功能;而学生端只需打开浏览器便可以观看直播,无需安装任何插件。

客户端开发的重点:1)白板的实现;2)音视频处理。白板开发的难点和核心技术是客户端图形工具(各种图形算法,涉及几何、物理、化学、美术等学科图形)开发以及直播中各端绘图及笔迹(毫秒级)同步。Web端白板、绘图完全基于H5 Canvas/JavaScript开发(可配合C++写的直播助手程序以实现更灵活的硬件操纵及性能提升);iOS/Android白板则基于原生开发,绘图算法也是由Web端移植。音视频处理的重点1)实现高效且低功耗的视频推流;2)流媒体实时传输(延迟需控制在=70ms)。

抛开所谓的技术,有一点是好的在线教育产品研发都应该注意的,一定要符合学科习惯!举个例子,不同的老师对于图形工具的使用(或功能)需求其实是不一样的,比如三角形,几何老师需要的是等腰、直角、钝角……乃至徒手绘制,而英语老师需要的仅仅只是一个triangle图形而已。

以上简单介绍了开发一个教育直播产品可能会涉及的技术和一些关键点。当然,支撑一个百万、千万级负载的教育直播产品需要的技术栈远不止上面所提到的技术。但是,相信通过上面的简单介绍,至少能够有一个在线教育产品所涉及技术的初步印象。如果有对直播产品开发或产品设计感兴趣的同学,可以私信或留言,我会尽可能地给你一些好的建议!

2014-2018 深圳市佳为科技有限公司 版权所有
粤ICP12032518