基于SCORM标准课件的移动客户端架构设计

一、前言

本不想前言写些相关概念,想直奔主题了,但作为男人直奔主题好像不太好,怎么也得有个前言聊会来点气氛,怎么,已经有很懂的同学,好吧,请无视本节直奔后面的主题好了。

什么SCORM?

SCORM是一种标准,是在线学习系统(E-Learning)的一种内容标准(课件标准),课件的内容主要由HTML+XM+JS组成。结束。


结束了?还不解,那好吧,再听我打个比方,听完也就有个基本概念了:

春节回家不容易吧,回家被相亲的同学有木有,相信老爸老妈一定动员了七大姑八大姨去帮你找对象,三姑姑说我这有个姑娘瓜子脸会做饭;二姨父说我这有个姑娘1米75身材高挑;三姨妈说我这有个姑娘家里做生意巨有钱;大姨夫说...小姨说...等等等等,老爸老妈说我们希望找个这样的儿媳妇:小脸看着顺眼、孝顺、1米65左右、家里经济条件要好...好了,各位,注意了,这时老爸老妈说的儿媳妇要求就是标准(相当于E-Larning系统中的SCORM课件标准),七大姑八大姨就按照这个统一标准去找合适的姑娘,目标明确,定位清晰,所有亲朋好友都遵循统一的标准推荐姑娘过来,老爸老妈一看这么多都符合标准啊(IT术语是都兼容啊),乐开怀了,选哪个呢?当然,找媳妇只能找一个,但是E-Learning系统中就是为了通吃,不同厂商的E-Learning系统中兼容运行不同开发商开发的课件,不做任何修改的直接运行,跨学习平台,同时保持教学要求的各种技术标准。


再举个例,你有个日本爱情动作片.mp4, 你可以在PC上、手机上、平板电脑上使用各种不同的软件来看,这些不同平台、不同开发商、不同的软件为什么能够播放MP4呢,让你很爽,因为MP4制作时,播放软件播放时,都遵循了ISO/IEC 14496-12标准,ISO/IEC 14496即MPEG-4标准,同理,SCORM就是E-Learning的行业标准。

还需要详细了解SCORM的请看看“维基百科”怎么说,看看“百度百科”怎么说。


二、问题

E-Learning平台的发展是伴随着互联网的发展和普及的,基于B/S架构的LMS学习平台和开发商层出不穷,B/S架构的优势在基于PC互联网时代显而易见。

但需求总是在不断变化的,唯一不变的是变化。移动互联网的兴起,智能移动设备的普及,催动了新的需求和业务发展,对于传统LMS系统(Learning Managed System)在智能移动设备上的衍生和使用成了自然而然的诉求和发展。

但是,传统LMS系统结合移动设备时,出现了一些新的问题:

1、传统B/S架构的LMS系统是始终在线的,实现SCORM支持的架构设计也是B/S模式的,但在移动设备上,设备有时在线有时离线很常见,那如何实现离线学习和并与现有LMS平台保持记录同步,这是个问题。

2、ADL官方对SCORM的API范例也是传统B/S的JAVA实现,但在移动终端,操作系统不同,语言不同,iOS设备上App是Objective-C语言开发,Android上是Java语言,WindowsPhone是C#,等等,如何兼顾不同移动平台、不同开发语言,这是个问题。

3、传统课件都是基于PC浏览器设计的,如果直接放到手机和平板电脑上,界面体验惨不忍睹,怎么办?还有Flash在iOS上不支持怎么办?


三、架构设计

小时候很喜欢看小人书,现在也觉得那种形式很好,以图为主辅助少量文字,简单、通俗易懂,实际工作中,画个架构图或者画个流程图就能把事情说清楚,所以,这里也以图为主。

问题1和2的其实就是软件设计的问题,架构设计的问题,我们先来看下传统LMS平台的架构以及SCORM运行时环境:


鄙人实际项目中实现的移动客户端架构和SCORM运行时环境:

基于SCORM标准课件的移动客户端架构设计_第1张图片

解释一下:

"Standard SCORM"就是标准SCORM课件,使用任何工具制作的标准SCORM课件即可,v1.2, v2004等等。

“API Adapter”是需要开发商自己实现的JS,目的是产生一个JS的API实例,供标准课件中的JS方法调用。

"Bridge Layer"桥接层是使用PhoneGap这样提供JS和原生代码交互的第三方框架来实现,当然也实现了跨移动平台的好处。

"Local DB"是移动设备上的本地数据库,使用SQLite,iOS/Android/WP都支持,不多说了。

"Sync Module"同步模块,这个功能自己开发或使用产品都无所谓,毕竟架构上是模块化松耦合的。


问题1和问题2在这种架构模式下可以得到很好的解决,具体要点是:

在线时,下载课件,下载学习记录到本地数据库;

学习课件时,每一个页面的学习记录、状态等等信息都先保存在本地数据库,再判断在线否,在线则上传学习记录。

(除了学习记录还有用户信息、企业信息、部门信息、课程信息、消息通知等等数据需要同步,结合一个用户多个设备,一个设备多个用户等等企业复杂需求,这样的同步策略往往有通用规则也有特殊规则,这是另一个话题,不是本文重点,以后再说)


下面加一点配菜,让主菜更润口些。

上面图一中红色方框内的就是标准SCORM课件的内容,我们再来了解下SCORM课件包的物理结构:

基于SCORM标准课件的移动客户端架构设计_第2张图片


做Android的同学有木有亲切一下,mainfest.xml呀,看名字也心领神会了,对了,你懂的。核心的“imsmanifest.xml”配置文件的结构如下:

基于SCORM标准课件的移动客户端架构设计_第3张图片

不懂的同学我再补一句,课件的名称及课件的目录结构、资源清单以及相互链接,还有一些教学参数都在这里。


再来了解一下一个标准SCO页面的流程:

基于SCORM标准课件的移动客户端架构设计_第4张图片

以上是基于SCORM V1.2的实现流程,至于其他版本类似,我相信大家再学习时绝对是触类旁通的。


四、课件设计

问题3怎么解决呢,等等,问题3是啥?好吧,给瞌睡哥一次机会,Replay:

传统课件都是基于PC浏览器设计的,如果直接放到手机和平板电脑上,界面体验惨不忍睹,怎么办?还有Flash在iOS上不支持怎么办?

先讲个小故事提提神,说几个关键词:多普达、神达、Windows Mobile、PPC、WinCE、黑莓...等等,这样的关键词,让大家想到了什么,想不到什么,好吧,那是鄙人太老了,那就说iPhone吧,5S,土豪金,不管是屌丝还是高富帅白富美啥的,都High了吧,想当初乔帮主2007年手持iPhone横空出世,新一代的硬件设计,新一代的操作系统,全新的用户体验迅速成为智能手机的新起点,iOS系统的交互方式逐渐成为移动交互的事实上的标准,So,多普达、神达等等一批Windows Mobile手机迅速消失在大家视野中,一手拿砖头一手拿手写笔的装逼时代迅速消失,为什么,千言万语只说一条:用户体验不好,怎么才是好,iOS那样才是好,为什么,为什么呢,问问Google的Android为什么一开始的原型是模仿黑莓的,2007年iPhone一出来,安迪鲁宾就呆了,立马山寨开始,当然涅槃之后的Android更有胜处,微软就呆萌了,鲍尔默的可爱发言和藐视,以及微软的不思变导致了几乎是霸主的Windows Mobile品牌和市场迅速消失,至今还没翻身,叹...好了,打住,有些跑题了,不好意思来情绪了,哥也是性情中人,感花叹草的,哥做了四、五年的WINCE/WindowsMobile最后都让微软玩废了。


说了一些闲话,其实也不是闲话,核心想说的是,与时俱进最重要,把握用户需求最重要,现在已经是满嘴跑用户体验的时代了,所以,对于问题3,解决方案就是一个字:改!改不了的重做,推倒重做,就是这么坚决。不管你以前做了多少课件,成百上千的,如果是HTML为主的恭喜你工作量轻松了,如果是Flash的,尤其是交互式动画的写了ActionScript的,很遗憾,工作量多了。为什么?乔布斯为什么不允许iOS设备支持Flash,抛开个人恩怨,官方理由确实成立,用户体验不好,鼠标体验无法让人在小屏幕上用手指爽起来,还耗电耗资源,有同学说了Android支持Flash那不就可以重用Flash课件了,我只想说一声同学你找个交互式Flash点点试试,如果你再用了iBooks电子书那样的用户体验后,就会觉得旧Flash课件在移动设备上使用就是个渣,就如同你看到美女后又看到丑女,你会如何选择呢(特殊癖好的哥服了)。


技术实现:HTML5,这就是方向标,旧有的Flash课件需要重新做成HTML5版的,就是HTML4版都行,在iOS/Android/WP等等以及PC平台统统支持,为什么HTML5那么好就不多说了,给大家找美工美眉套近乎的一次机会吧。

有人说能不能把以前Flahs课件转换为HTML5格式的,我说可以,但非常不理想,纯视频的Flash转成mp4没问题,HTML5支持,但大都数的Flash课件是交互式的,除非不要交互了改看视频了,实际项目中我们找了一大票转换软件,Adobe的,google的,还有一些厂商的,结果是惨不忍睹,如果列位知道有好软件不妨介绍一下。


五、后语

郭德纲都反三俗了,春晚红色舞蹈都出来了,最后结尾也传递点正能量:

总结下:与时俱进、看准标准、技术融合、用户体验、唯快不破。

(请欲参加河南卫视《成语英雄》的童鞋们说说这些四字哪些是成语,哪些是俗语)



补充几个链接:

SCORM标准组织的官方(ADL)网站:http://www.adlnet.org/

SCORM开发文档,感谢博主:点击打开链接

SCORM制作软件eXe, eLearning XHTML editor(主要是免费,收费的就不说了,太多了)官网:http://www.exelearning.org/

你可能感兴趣的:(基于SCORM标准课件的移动客户端架构设计)