1、分布式环境下共享学习资源模型研究 赵隽琪 姚宇明 陈德人 (浙江大学计算机系,浙江大学远程教育学院) 摘要 基于标准建设可复用共享学习资源是现代远程教育的一个重要内容。本文讨论了分布式环境下基于 SCORM 标准的共享学习资源模型,结合 CORBA 和 J2EE 这两种分布式环境框架,设计一个共享学习资源模型系统。 关键词 SCORM,分布式, J2EE, CORBA, XML, EJB, 学习资源 Abstract Its very important to make reusable learning resource based on specification in the moder
2、n distance education. In this article we discuss the sharable learning resource model conform to the SCORM specification in the distribute environment. We also design a sharable learning resource model system using CORBA and J2EE technology. Key wordsSCORM ,Distribute ernvironment,J2EE,CORBA,XML,EJB
3、, Learning resource 一、引言 现代远程教育是以计算机网络多媒体技术为基础,体现开放性、协同学习、共享资料、无时空限制的教育,它为社会成员构筑一个随时、随地、自主学习的终身学习体系,也称网上学习。学习资源共享是其中一个重要内容。目前教学资源的共享基本上停留在简单的HTML 文件和其他常用文档文件共享的基础之上,没有统一的结构,课件重复开发严重,结构混乱,管理难度大,费用高。这些情况严重阻碍了学习资源在高层次、大尺度上的共享和交流。远程教育要成为真正意义上的网上协同学习,成为教育体系中不可 或缺且有活力的组成部分,必须在共享课件资源制作和管理上符合标准化原则,实现资源复用和协同
4、操作,SCORM 标准等有关技术为实现此目标提供了强有力的支持。 二、 SCORM 标准概述 目前国际上已经有不少国家的机构和公司致力于远程教育技术规范的制定和推广。其中比较著名的有美国航空工业计算机辅助训练委员会( AICC)提出的计算机管理教学标准、 美国国防部提出的可共享课件对象参照模型 (SCORM)、 IMS 全球学习联合公司的学习系统技术规范以及 IEEE 1484 系列标准。许多国家还组织力量进行标准本地化工作。 其中 IMS 规范了关于学习服务器 (Learning Servers)、学习内容 (Learning Content)以及它们企业级集成的相关协议 ,IEEE1484
5、 是 在国际电气和电子工程师协会学习技术标准委员会(简称 IEEE LTCS)主持下制定的全面的远程教育规范,包括 IMS 在内的众多企业和组织都参与了 1484标准的制定 。 图 1 SCORM 标准 发展进程 (摘自 ADL 主页) SCORM 标准由美国国防部建议,是关于共享课件创建、管理和使用的标准。美国国防部最早提出高级分布式学习建议 (ADL Initivate) ,从兼容性、促进远程学习和商业上考虑,定义了一系列高级要求,比如内容复用、可访问性、持久性和协同学习等。从 1997 年开始,ADL 就围绕制定基于 Web 的学习技术标准与业界组织、企业一起展开工作。到 1998 年,
6、 ADL在对众多远程教育标准研究基础上,形成了一个统一框架,即 可共享课件对象参照模型(Sharable Courseware Object Reference Model,SCORM)。目前 SCORM 已经发展到 2.0 版本。图 1 反映了 SCORM 标准与其它标准的关系。 SCORM 定义了共享课件对象参照模型。现有练习和学习模型可以映射到这个模型上。SCORM 规范实现了课件管理系统、开发工具接口和数据结构的标准化。 SCORM V1.0 发布以后, ADL Co-Lab 等单位也开发了一些工具用于测试开发的课件是否符合标准。根据调查,符合SCORM 模型的课件系统,费用降低 30
7、-60%;效率提高 30%;学生掌握的知识量增加 30% 1 。 三、分布式计 算环境相关技术 自计算机出现以来,怎样将计算机互连起来以更好地利用资源,高效完成各种信息处理,一直为人们所思考和探索。在上个世纪七、八十年代,服务器 /客户机技术一直是分布式计算环境的主流技术。近十年出现了一种全新分布式计算概念,即网络就是计算机,任何计算设施不需预先配置和安装,便可在任何时间任何地点加入网络,并且能和网络中已有的各种软硬件一起协调工作完成分布式计算。 计算级网络是典型的异构 (Hyterogeneous)体系 ,这种异构同时来源于硬件和软件。即便在一个小的局域网环境中,可能存在着不同公司的工作站
8、、服务器、 PC、交换机、路由器等硬件设备,工作站上可能运行不同版本的 UNIX 操作系统,而 PC 机上则是 windows 系统。软件开发语言也是种类繁多。远程教育课件资源共享必须考虑建立在这样一个异构系统平台上。解决这个问题,需遵循如下两条原则: 寻求独立于平台的模型和抽象 在不牺牲太多性能的情况下,尽可能隐藏低层的复杂细节 两种主流分布式环境框架 CORBA 和 J2EE 很好地贯彻了以上原则。 3.1 CORBA 技术 由对象管理组 (Object Management Group ,OMG)编写和维护的 CORBA 规范 提供了一种灵活、切实可行的抽象集,并确定了一些服务程序。 O
9、MG 制定的对象管理体系 (Object Management Architecture ,OMA)及其核心( CORBA 规范)是一个适用于各类分布式系统的完整的体系结构。 CORBA 体系结构整体上可以分为 3 个部分: 对象模型 (Object Model)将对象定义为永恒不变,始终是唯一的封装实体。客户端只能通过严格定义的接口向对象发送请求才可以获得对象的服务。对象的实现细节和位置对于客户端是隐藏的。 引用模型 (Reference Model)提供接口种类。 接口大致分为对象服务接口、领域接口和应用程序接口,分别对应 CORBA 服务对象、领域通用服务对象和应用程序特定服务对象。 对
10、象请求代理 (ORB)。所有接口种类由一个 ORB 按概念连接在一起。通常,一个 ORB可以在客户机和对象之间进行通信,当请求发送后, ORB 定位对象并激活它。 图 2 是 CORBA 结构图。 图 2 CORBA 结构图 ( 摘自 The Common Object Request Broker: Architecture and Specification ) 下面结合一般请求流来说明 CORBA 体 系结构: 1、 客户端提出请求。有两种方式,一种是通过静态存根 (Static Stubs),它是由IDL(Interface Definition Language 接口定义语言 )映射
11、成特定编程语言的类,包含了服务端对象的接口定义。客户端通过调用存根中的方法 (Method)来发送请求;另一种是通过动态调用接口 (Dynamic Invocation Interface,DII),比如接口仓库( Interface Reponsitory)。不论哪一种方式,客户机都将请求传送给与这个进程相连的 ORB 核心。 2、 客户机 ORB 核心通过网络传送给与服务器应用程序连接的服务器 ORB 核心。这个过程可以通过共享文件实现,但在真正分布式环境下,名字服务 (Naming Service)是最合适的机制。 3、 服务器 ORB 核心将请求分配给对象适配器 (Object Ada
12、pter),由它产生目标对象。一个对象适配器是一个插入式对象,它用来做代理,允许调用程序在不知道对象实际接口情况下调用一个对象的方法。这里涉及到一个伺服程序的概念。伺服程序就是 CORBA 对象的实例 。定义它们的类继承了编译 IDL 接口定义时产生的框架类,在伺服类中,可以重载框架基本类中 的虚拟函数。用对象适配器注册这些伺服程序,当客户机发出要求调用伺服类对应的 CORBA 对象的请求时,允许对象适配器调度请求给这些伺服程序。直到 CORBA 2.1 版本,仅仅适用于基本对象适配器 (Basic Object Adapter,BOA),CORBA 2.2 版本引入可移植的对象适配器 (Po
13、rtable Object Adapter,POA)取代了 BOA。 POA 强调在维护应用程序的可移植过程中,应确保 CORBA 对象和与编程语言有关的伺服程序之间的完全交互。 4、 对象适配器进一步将请求分配给实现目标对象的伺服程序 。与客户机一样,服务器可以选择静态或动态调度机制用于它的伺服程序,这取决于对象接口定义是 IDL 编译形成的静态框架 (static skeleton)还是其伺服程序可以使用动态框架接口 (dynamic skeleton interface,DSI)。 5、 伺服程序执行请求后,返回结果给客户应用程序。 CORBA 最大的好处就是它有一个标准的接口定义手段来
14、支持异构环境下不同平台的集成,与语言、平台无关。 CORBA 的客户端和服务端可以用许多不同的语言实现,比如Java,C+,C,Smalltalk 等等。这一成就归功于 OMG 接口定义语言 (IDL)。 IDL 支持内置的简单类型和结构化类型,提供接口、操作定义规范,以及用于名字作用域的模块结构。 IDL 不是编程语言,它唯一的目的就是允许对象接口以与任何具体的编程语言无关的形式来定义。这一点是 CORBA 支持异构系统和独立开发的应用程序集成的关键。 IDL 编辑器可以把 IDL 结构翻译成不同编程语言,比如 C+类、 Java 类。多种 IDL 语言映射的存在意味着可以用不同的语言实现分
15、布式系统的不同部分。 除了语言独立性和实现独立性以外, CORBA 还具有面向对象性、定位透明性、结构体系独立性、操作 系统独立性、协议独立性和传输独立性等优点,限于篇幅,不再详述。可见参考文献 2。 当然 CORBA 在体现它的技术完美性同时,也存在着一些不足之处。最大的问题是 CORBA程序实现复杂,缺少绝对的系统级基础结构 (比如并发性、事务、资源管理和容错等 ),这些重任都落在了程序员的肩上。另外, CORBA 开发工具和运行环境比较昂贵也是一个问题。 3 2 J2EE(Java 2 Platform Enterprise Edition) J2EE 是美国 Sun 公司 新近 推出的
16、一种全新概念的模型 。企业在拓展业务的时候,需要向客户 提供具有高可用性、安全性和可扩展性的服务。这些服务通常采用分布式环境下的多层体系结构,其中中间层提供了把商业功能和数据与 EIS( Enterprise Information System ,企业信息系统) 相结合的功能 , 客户端从复杂的业 务 逻辑中分离出来,利用成熟的 INTERNET 技术使用户在管理上所花费的时间最小化。 J2EE 通过定义一个标准的体系结构来实现这个目标。这个体系结构包括: J2EE Application Programming Model- 一种用于开发多层次,瘦客户用户程序的标准 设计模型。 J2EE
17、Platform- 一个标准的平台,用来整合 J2EE 的应用程序,指定一系列的接口和方法。 J2EE Compatibility Test Suite- 一套兼容测试组件,用来检测产品是否同J2EE 平台兼容 。 J2EE Reference Implementation- 用来示范 J2EE 的能力 。 图 3 是 J2EE 的体系结构图。 图 3 J2EE 体系结构图 (摘自 Java2 Platform Enterprise Edition Specification) J2EE 是一个开发 EJB(Enterprise JavaBean),Servlet 和 JSP (Java Se
18、rver Page)等Web 应用的平台。 J2EE 产品提供了 EJB、 Servlet和 JSP 技术完整实现的应用服务器。从图3 中可以看到, Web Container 和 EJB Container 共同构成了中间层来实现业务逻辑。 这里值得指出的是 EJB 技术。 EJB 结构是开发和配置基于组件的分布式应用系统的一种组件结构。用 EJB 结构开发的应用程序是可伸缩的、事务型的、多用户安全的。这些应用程序可能 只需编写一次,就可以在支持 EJB 规范的任何服务器平台上配置。 SUN 公司同时也规范了支持 EJB 的组件事务监控器( CTM)。 CTM 提供了能自动管理事务、对象分布
19、、并发性、安全性、持久性和资源的基础结构。从这一点上说, J2EE 弥补了 CORBA 的不足。 客户和 EJB 的底层通讯基于 RMI-IIOP 协议。它结合了 Java-RMI(java 远程方法调用协议 )和 CORBA 两种分布式协议。所以 EJB 体系基于 RMI,通过 IIOP(Internet Inter-Orb Protocol)与 CORBA 应用程序通信。 从 EJB 体 系结构图(图 4)中可以看到客户端通过 Java 命名和目录接口 (JNDI)查询分布式 EJB 对象,得到 EJB 对象的 HOME 接口。通过 HOME 接口,客户端可以定位、创建和删除EJB 对象。
20、然后客户端可以通过远程接口调用分布式 EJB 对象,完成业务逻辑功能。一个 EJB对象的客户端可以是客户程序、 JSP、 Servlet,也可以是另外一个 EJB 对象。 EJB 实例运行于一个 EJB 容器中。容器是控制 EJB 并为其提供重要的系统级别服务的运行环境,提供了事务管理、安全、远程客户连接、生命周期管理和数据库连接池等功能。 和 CORBA 相 比, EJB 提供了强壮的基础结构 ,大大减少了程序开发人员的工作量,而且与 WEB 技术有更紧密的联系,因此在短短几年内成为一种主流分布式技术。 图 4 EJB 体系结构 (摘自 Enterprise JavaBeans Specif
21、ication ) CORBA 和 EJB 很好的解决了分布式计算环境中的异构问题。在分布式计算环境下,可交换数据的结构标准化是另一个十分重要的方面。 W3C 组织推出的 XML 基于层次化结构,具有良好的数据存储结构、可扩展、高度结构化等特点,是一种描述共享数据和文档的理想手段。 四、 XML 技术概述 XML 是一套定义语义标记的规则,这些标记将文档分成许多部分,并且对各个部分进行标识。它也是元标记语言,即定义了用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言。它主要有以下特征: 允许不同专业开发与自己的特定领域相关的标记语言,以方便本领域内的数据交换。 自描述数据。界定
22、XML 内容的标记给所界定的数据中每一个元素命名,并且可以提供特定的附加属性。这些命名和属性都是和所涉及的现实世界中的问题密切相关。应用程序很容易从中提取出相关内容。 XML 文件中数据是结构化和集成的,是不同的应用间 交换数据的理想格式。在利用XML 进行数据交换的应用中,电子商务领域走在了前列。基于 XML的 ebXML 标准成为当前最热门的企业数据交换技术,为 EDI(Electronic Data Interchange)开创了新的发展方向。 与 Web 体系结构紧密联系。 与 Java 技术关系紧密, Sun 公司提供的 jaxp 开发包,支持基于 DOM(文档对象模型, docum
23、ent object model)和 SAX( Simple API for XML)两种方式的 XML 文件解析和读写功能。这就把 XML 和 J2EE,甚至于 CORBA 等分 布式技术紧密联系在一起。 通过以上特征可以看出,采用 XML 作为课件资源描述的工具,对于基于 WEB 的标准化、 对象化共享资源制作和管理来说,是目前最为理想的手段。 五、 SCORM 标准在分布式环境下应用 5 1 学习管理系统 LMS(Learning Management System) 学习管理系统 LMS 提供学习内容传送、跟踪、报告、管理学习内容和学生学习进度、学生交互等一整套功能。目前 LMS 具体
24、实现方式非常多。 SCORM 对于 LMS 如何实现,提供什么功能并没有做规定,自身也没有提供管理功能,它的重点在于课件 内容和 LMS 的关键接口上。在 SCORM 中, LMS 可以被看作是一个智能化服务端,由它来决定传送什么课件内容、何时传送以及进行学习管理。这样课件内容就突破了课程的约束,成为可重用、可共享、环境平台无关的资源。 5 2 教学资源组织 SCORM 作为不断出现的新技术和商业产品的一个桥梁,把当前的主要技术规范,如 AICC、IMS、 IEEE 等应用到一个特定的模型上。 SCORM 的要求是可访问性、协作性、持久性、可重用性。 SCORM 主要包括 3 个元素: 课程结
25、构格式( course struct format):基于 XML 的 课程结构表示 ,可用于在不同的 LMS 间传输转换。 运行环境( runtime enviroment) :包括基于 WEB 的内容的初始化协议、内容 -LMS应用编程接口、可执行课件内容和 LMS 间交换的数据模型。 元数据( meta data) :课程元数据用来描述课程包,可以在课件中搜索课程或者描述课程的信息;内容元数据提供独立于课程的内容描述信息,可用于内容的重用;原始媒体元数据提供媒体描述信息。这些媒体内容独立于课程内容,包括文档、多媒体流等,它们一般存在于独立的文件中。利用元数据, SCORM 实现了对象化单
26、元知识的重 用。 SCORM 体系结构见图 5。 图 5 SCORM 结构图 (摘自 SCORM Specification) 5.2.1 XML 绑定的 课程结构格式 CSF( course struct format) CSF 是由许多组织共同开发的,如 IMS、 ADL、 AICC、 IEEE 等。从图 5 中可以看出, CSF是 SCORM 标准的核心。 CSF 基于层次结构,是课程从一个 LMS 向另外一个 LMS 转换过程的中间模型。因此可以充分利用 XML 支持开发特定领域的标记语言并有自描述数据的特性 ,用同样基于层次结构的 XML 来描述 CSF。 SCORM 标准规范了 C
27、SF 的 XML 描述,并提供了范例。 CSF通过 3 组信息描述一个课程:全局属性 (global properties)描述课程的属性,如标题等;块 (block)描述课程的结构;目标 (objectives)描述结构中课程元素的学习目标。图 6 是 CSF的基本结构图。 CourseGlobal PropertiesObjectivesBlock图 6 CSF 基本结构 在块 (block)部分,可以包含独立于课程的内容元数据 的链接指针,以达到面向对象的资源复用目的。从图 5 中可以看出,内容元数据也可以包含对媒体元数据的连接 (比如通过路径或 URL)。内容元数据和媒体元数据也由 X
28、ML 描述,而控制 CSF 和内容元数据、媒体元数据的连接复用是典型的 LMS 功能。 图 5 中还有一个外部课程元数据 (external course meta-data),这是考虑到不同用户的需求不尽相同而提供的一个扩展部分。标准建议慎重使用外部课程元数据,因为可能会有LMS 无法理解这一部分,甚至导致整个 CSF 都无法使用。 5 2 2 运行环境 (runtime enviroment) 在 LMS 把课件内容发送到客户端后, LMS 和可执行内容之间必须有一个通讯手段。由于课件内容可以在多个 LMS 之间共享复用, SCORM 提供了一个通用的方法,用以连接和启动可执行内容以及 L
29、MS 和内容之间通信,并且预定义了数据模型,这就是运行环境。 运行环境包括以下 3 个部分: 内容连接和启动协议 (content launch protocol):LMS 编程接口和可执行课件内容的连接协议。 内容应用程序接口( content application program interface) :课件内容与 LMS通讯的 API。 内容数据模型( content data model) :LMS 和课件内容之间传递的数据 ,包括 LMS传递给可执行内容的相关学习者信息,以及内容传递给 LMS 的学习结果数据。 图 7 显示了 SCORM 运行环境的结构。 图 7 SCORM 运行
30、环境结构示图 (摘自 SCORM Specification ) 在网络环境下,可能同时存在多个 LMS,这些 IMS 的实现也许各不相同。这是一个典型的分布式环境。对于客户端来说,为每一个 LMS 定义一个 API 适配器 (API Adapter)和一种通讯协议与 该 LMS 通讯是不现实的,也是违背 SCORM 资源共享原则的。于是 SCORM 运行环境在服务端 LMS 上定义一个适配器,这个适配器封装了不同 LMS 的通讯细节,呈现给客户端一个统一的通讯接口。这样开发者可以集中力量设计客户端和适配器的单一通讯模式,而不必关注 LMS 的具体实现细节。 对于适配器的实现方案,笔者从跨平台
31、方面考虑比较倾向于采用 CORBA 和 J2EE 两种体系结构。当然还存在着比如 Miscrosoft ActiveX/DCOM 体系结构和 SOAP 协议等多种解决方案。 在 CORBA 方案中,客户端可执行课件内容的 API 适配器可以由 java 实现,服务端适配器是一个 ORB(对象请求代理 , Object Request Broker),IIOP 作为通讯协议,伺服类封装针对特定 LMS 的通讯细节和业务逻辑。伺服类可以由 java 或者 C+实现。 在 J2EE 方案中,客户端可执行课件内容的 API 适配器依旧由 java 实现,服务端适配器是一个 J2EE 应用服务器,其中包
32、括 Web 和 EJB 容器, HTTP 或 RMI-IIOP 作为通讯协议,由 Servlet 和 /或 EJB 来封装特定的商务逻辑细节。图 8 是这两种方案的示图。 (a) (b) 图 8 适配器解决方案示图 (a) CORBA (b) J2EE (摘自 SCORM Specification ) 5 3 应用研究 笔者在研究学习资源共享平台过程中,在开发基于 SCORM 标准的学习资源共享模型系统方面作了一些尝试,证明这样的设想是可行的,能有效提高资源共享效率。系统基于多层结构,有效结合了 XML、 CORBA 和 EJB 三种。系统大致分成 3 个层次: 客户端:包括浏览器和基于 G
33、UI 的客户界面两种形式。学习者通过浏览器访问 LMS服务器,通讯协议为 HTTP。在这种情况下,客户端的客户程序采用 Java Applet。系统管理员通过基于 GUI 的客户程序与 LMS 服务器上的 ORB 通讯。管理程序不采用 Java Applet 的主要原因是管理程序比较庞大,采用 Applet 形式会占用大量的网络资源,效率较低。客户机和服务器间的共享学习资源数据交换采用基于SCORM 标准的 XML 文档,在客户端,客户程序 (Java Applet 或 Java Applection)负责 XML 文档的解析。 中间层:在这一层 CORBA 和 J2EE 结合来完成这一功能,
34、所以比较复杂。 J2EE部分分为两个层次:第一层为 JSP 页面和 Servlet,主要完成和客户端的通讯以及页面显示。第二层是 EJB 容器,包括完成各种业务逻辑的 EJB 对象。在这一层主要完成学习资源数据的 XML 文档化、 XML 文档的解析、数据的存取以及其他各种业务逻辑。由于 EJB 客户端和 EJB 对象的底层通信采用 RMI-IIOP,所以这两层之间存在着一个代理 (Broker),为了层次结构清晰起见,我们把这个 Broker 和 CORBA 部分的 ORB 看成一 个整体。在 CORBA 部分运行于 ORB 之上的是各种管理服务功能对象。 存储层:这一层为存储共享学习资源的
35、数据库系统。 图 9 为模型系统的框架结构。 Browser(Java Applet)GUI-Based ClientX M L 文档X M L 文档JSP/ServletORBEJBEJBEJBCORBA对象DB图 9 模型系统框架 六、结束语 现代远程教育作为社会教育体系的一个重要方面,在当今网络社会中面临着巨大的发展机遇,也将创造前所未有的经济效益和社会效益。建设可共享、可复用、面向对象的资源制作和管理平台是远程教育的一个非常重要的方面。现代化工 业非常强调标准化,世界各国也在组织力量致力于远程教育技术规范的标准化和标准本地化。我们的资源库建设同样必须基于标准化原则进行。只有这样才能避免
36、低水平重复建设,实现提高效率,降低费用的目标,为构筑社会终身学习体系添砖加瓦。 参考文献 1. SCORM Specification http:/www.adlnet.org/ 2. The Common Object Request Broker: Architecture and Specification OMG 著 3. Java2 Platform Enterprise Edition Specification Sun 著 4. Enterprise JavaBeans Specification Sun 著 5. A Component Model for Standardized Web-based Education L. Anido, M. Llamas, M.J. 6. Fernndez, M. Caeiro, J. Santos and J. Rodrguez , ETSI Telecommunications, University of VigoE-36200 Vigo, Spain. 7. CORBA 分布计算环境中对象适配机制的优化和构件化 项君、高洪奎等, 计算机科学与工程 2000 年第 22 卷第 5 期。
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。