知识管理视野下精品课程网络资源库的设计和实现论文
4关键技术的实现
4.1SCO与LMS间接口的技术实现在对SCO进行Wrapper时,建立APIWrapper.js这样一个javascript文件,分别对应上述APIAdapter的API函数建立相应的function,示例如下: FunctiondoLMSInitialize(){Varapi=getAPIHandle();
If(api==null){Alert“无法完成LMS的API启动”);
Return"false";}
Varresult=api.LMSInitialize(““);//此处调用Adapter和LMS间的通信
If(result.toString()!=”true”){Var
err=ErrorHandler();}
Returnresult.toString();}
在建立好相应的AP工Wrapper.js后,就可以在制作的学习对象中实现对这些function的调用,以完成SCO与Adapter间的通信。例如,在可执行学习对象中加入这样一段javascript:
javascript:……
Varresult=doLMSInitialize();
If(result!一true){..…}
Result:=ReadURL(“javascript:
doLMSInitialize()”,100)
这样就初步实现SCO与APIAdapter间的通信,也为LMS的Launch工作做了初始化。但是对于LMS还是无法使用和显示,因为APIWrapper.js只是对SCO的一个打包过程,使它符合DataModel,并没有实现与Server端的LMS进行通信。要实现这一步,需要在Server端建立一个APIAdapter.java来完成Adapter与ServerLMS的通信,实现DataModelSCE的数据传送。
4.2学习对象显示
接口的技术实现APIAdapterApplet.java是一个严格按照标准制定的类,通过编写该类实现sco在LMS中的通信和共享所需要的符合SCORM规范的API。该Applet在LMS启动时自动启动,在该类中实现全部的API函数,以LMSInitialize为例:
PublicStringLMSInitialize(Stringparam)//SCO调用的第一个且唯一调用的API
{Stringresult;
Result=cmiBooleanFalse;//初始化为未启动
StringtempParm=String.value0f(param);
If((tempParm.equals("null”)日tempParm.
equals(“”))!二true){
This.1msErrorManager.
SetCurrentErrorCode("201");
Returnresult;}
If(this.isLMSInitialized==true){}//开始接受数据
Returnresult;}