APP下载

一种分布式现代远程教育系统的设计与实现

2009-05-04刘雪艳苏锦旗

现代教育技术 2009年4期
关键词:远程教育

刘雪艳 张 强 苏锦旗

【摘要】针对当前远程教育系统设计和实现中存在的问题,结合远程教育系统的跨地域、跨平台、分布式等实际需要,采用CORBA和Web Services技术,设计和实现一种基于中间件技术的分布式现代远程教育系统,为现代远程教育提供了一个信息共享、业务处理和远程交互平台。

【关键词】CORBA;Web Services;远程教育

【中图分类号】G40-057 【文献标识码】B 【论文编号】1009—8097(2009)04—0105—04

引言

现代远程教育以其时空自由、资源共享、系统开放、协作多样等优势得到了前所未有的关注和应用,在教育部颁布的《国家远程教育工程资源建设技术规范》和《现代远程教育工程教育资源开发标准》中规定,现代远程教育体系结构是一种分布式、多系统集成、跨平台、功能组件可扩充的开放性系统。随着Internet和Web技术的飞速发展,人们为构建这样的系统提出了许多可行的解决方案,文献1提出了将组件技术运用到现代远程教育中的思想[1],文献2、3将CORBA(common object request broker architecture ,公共对象请求代理结构)技术应用到远程教育系统中[2][3],文献4将Web Services技术引入到教育教学资源建设中[4],以上文献为现代远程教育系统提供了好的思想和方法,但是远程教育系统是一个复杂的系统,利用单一的技术和方法并不能解决当前远程教育系统的关键问题—资源共享问题。本文将提出一种基于CORBA和Web Services技术相结合的现代远程教育系统的设计方法,解决了远程教育系统中的广域范围内的完全资源共享问题。

一 CORBA、Web Services技术在远程教育系统中的应用分析

CORBA是OMG(Object Management Group,对象管理组织)提出的一个分布式计算框架,CORBA适应分布式技术和面向对象技术的发展,为解决异构环境下的分布式对象间的通信规定了完整的体系结构,实现面向对象分布式计算。Web Services是一种新的基于XML协议的分布式计算框架体系,W3C(World Wide Web Consortium,万维网协会)对其定义是,一个能被URI所识别的应用软件,它的接口及功能,能够以XML的形式来定义、描述和发现;使用基于XML的消息,通过基于Internet的协议来交换信息,一个Web Services能够直接与其他软件代理进行互操作[5]。

CORBA和Web Services都是跨平台的,包括硬件、操作系统及语言环境,二者都具有相应的服务描述、发现和定位机制,这是二者的共同之处。然而,由于CORBA和Web Services出于不同目的,在具体实现技术上具有不同之处:(1)CORBA是一个真正的面向对象的分布式计算框架,具有成熟的经验和完整稳定的体系,具有丰富的语言映射和对象服务,如事件服务、命名服务、生命周期服务等,而且具有容错及负载平衡能力,非常适合建立局域网内的远程教育系统的业务逻辑。而Web Services是以消息机制为中心,作为Web Services核心的简单对象访问协议,其实并不真正处理对象,而Web Services注重于Internet的轻量级服务,适合建立广域网的远程教育系统;(2)CORBA客户端和服务器端必须是相同的CORBA体系,两端使用相同的接口IDL,两端运行都需要ORB,是紧耦合的。与CORBA相反,Web Services体系是松耦合的;(3)CORBA通讯核心是ORB/IIOP,没有专门的端口用于通讯,对于基于Internet的应用,不是所有的客户端都支持IIOP,IIOP也没有在所有的防火墙上安装。这样,如果防火墙隔开了客户端和服务器端,任何IIOP包都要通过的可能性很低。所以,CORBA在Web上应用具有一定的局限性。而Web Services传输是通过HTTP传输SOAP消息,HTTP是一种使用广泛的协议,具有专用的端口,一般的防火墙都配置为允许HTTP通过[6]。

目前的远程教育系统在技术实现上存在以下问题:1、互操作性问题,现有的各种教育系统采用不同的开发平台和操作环境,具有各自的数据传输和消息传输的通讯协议,异构系统彼此之间互不兼容,各个系统之间不能相互访问,无法实现原有系统与新开发的有机集成;2、资源共享问题,现有教学资源的格式和组织方式各不相同,基于HTTP和HTML这种低水平教学资源的共享和自治还达不到教学资源完全共享的要求,教学资源没有统一的格式和规范,各种教学工具和学习工具无法方便的集成到现有的远程教育资源系统中去,实现完全资源共享正是应用远程教育系统的最终目的,为必须建立一种资源共享和系统之间互操作的,同时又不丧失资源多样性和实现的灵活性的现代远程教育系统。分布对象计算技术作为中间件,提供了软件总线的机制,使得异构平台下的各种系统具有良好的可扩展性和集成性。作为分布对象计算技术的典型代表CORBA技术具有良好的开放性、跨平台多语言支持特性等优点,Web Services是一种基于Web的计算模式,它提出了新的、面向服务的体系结构,可以提供便于在互联网范围内进行服务注册和发现以及调用的手段,在互联网上方便地进行发布、发现和互操作,打破企业间的界限,实现信息的集成。

根据以上的分析,CORBA作为分布式对象计算技术的典型代表,具有成熟的应用经验和完整体系的工业标准,尤其在非Java、C#和实时性要求较高的系统中得到广泛应用,但是由于CORBA受防火墙的约束和紧耦合性的限制,使得它只适合构建在内联网的教育教学系统的业务逻辑,而无法在Internet上提供完整的CORBA服务。Web Services以其灵活的消息机制,松散耦合及友好防火墙机制而适合构造基于Internet的应用系统,因此利用Web Services的互操作性和CORBA强大的执行能力来构造现代远程教育系统是可行的,将这两种技术集成并应用到现代远程教育系统中,既可以满足网内的强大的分布式计算功能,又可以实现CORBA对象的Web应用。

二 远程教育系统设计

1 基本思想

利用CORBA构建内网的异构分布式环境下的远程教育系统,利用Web Services服务的注册、发现机制,实现CORBA对象的Internet范围内的调用。因为SOAP的目标就是要实现平台与环境的无关性和独立性,每一个通过网络的远程调用都可以通过SOAP封装起来,实现把CORBA服务发布到Web服务上。通过Web Services来集成和扩展CORBA逻辑,结合分布式对象计算技术CORBA和Web Services的优点来实现教学系统的WEB信息集成。

2 系统设计

(1) 基于CORBA的内网系统

在网内,将所有系统元素都抽象为CORBA对象,构成局部对象执行体和局部ORB模型,实现局域网中的异构计算机互操作和统一的组件调度,建立局部环境中的ORB总线。系统的所有CORBA对象都插到该总线上,同时又作为完成系统功能的各种服务。这些服务既是客户端同时又是服务器端。如图1所示,一个教学管理系统主要包括:教学资源(以素材库为基础的课件库、试题库等)、教学设备(用于教学的各种硬件设备)、系统管理(系统的权限、数据库等基本信息管理)、资源管理(对各种资源的调度管理)、教师、学生等,这些系统元素都抽象为CORBA对象(服务),构建基于CORBA服务的虚拟教学平台。同时系统需要CORBA的事件服务、安全服务、名字服务等基础服务,这些基础服务是我们构建自己CORBA服务的基础。

(2) 基于Web Services的Web应用扩展

为了实现CORBA对象的Web范围内应用,将教师、学生、教学资源、教学设备等CORBA对象包装为SOAP消息来传输。如图1所示,在系统后端CORBA应用逻辑需要以Web Services的形式提供给服务请求方,首先CORBA Client端调用SOAP消息来封装CORBA调用请求,然后发送SOAP消息请求,同时准备接收从服务器端返回的信息;在服务器端,从Internet上接收远程的SOAP消息请求,将SOAP消息进行解析,将SOAP请求转换为CORBA调用,再调用本地的CORBA服务完成服务请求,并将结果再包装为SOAP 返回给客户端(CORBA请求方),这样就实现了各种教学系统对象(CORBA对象)在Web范围内的远程调用。

CORBA应用逻辑以Web Services的形式提供给服务请求方需要将IDL接口产生相应的WSDL描述,OMG为了推广CORBA规范与Web Services之间的互操作,于2003年1月采纳一个新的规范,“CORBA to WSDL/SOAP Inter working”规范,该规范详细的描述CORBA IDL到WSDL(绑定到SOAP消息机制)的规则映射。为了实现客户端在透明的情况下获得服务器端所提供服务的具体信息,还需要WSDL和UDDI,服务提供者可以用建立和发行WSDL文档的方法来描述他们的Web服务,而把这个WSDL文档集中发布在同一个中心注册表里,消费者可以通过轻松地访问中心注册表获得WSDL文档,从而获得服务的具体信息。

三 远程教育系统实现

笔者在C++ Bulider、Visbrok、SQL Server环境下对内网系统进行了实现,利用Java WSDP(Java Web Services Developer Pack)实现了远程教育系统的Web Services功能。限于篇幅,这里只给出基于CORBA的分布式数据库和系统安全机制的具体实现方法和思路。

1分布式数据库实现

通过对分布式数据库系统和CORBA技术的分析,基于CORBA的分布式对象技术开发大型分布式数据库系统是合理、可行的。基于该技术, 笔者为远程教育系统实现了基于分布式对象技术CORBA的分布式数据库系统DDS(Distributed Database System)。DDS为每个数据库生成一个局部数据库对象LDBObject(Local Database Object),LDBObject提供了对数据库的存取、查询和更新。同时在客户端有一个全局数据库代理GDBAgent(Global DataBase Agent),客户端应用程序只需要向GDBAgent发出数据操作请求,具体的局部数据库对象定位及数据结果整理由GDBAgen完成。GDBAgen本身也是CORBA对象,局部数据库对象的管理由名字管理器来完成[7][8]。

(1) DDS体系结构

(2) DDS主要系统元素

GDBAgent:DDS引入一个全局数据库代理GDBAgent,它是一个可以独立运行的CORBA对象, 向用户提供全局数据库模式。在整个系统中至少要有一个GDBAgent运行,为了避免GDBAgent可能会引起数据库访问的瓶颈,建议运行多个GDBAgent。LDBObject:DDS中每个节点上的数据库都生成一个LDBObject,LDBObject本质上是一个CORBA对象,LDBObject中用IDL语言定义了对数据库的各种操作。在服务器端程序中有LDBObject的伺服程序,用来具体实现LDBObject的对数据库的各种操作。LDBObject的伺服程序通过ODBC与后台数据库相连。

(3) 名字管理器的实现

DDS中名字管理器提供从名称到对象应用的映射,是在CORBA现有的名字服务的基础上加以修改形成本系统的名字管理器。DDS中名字管理器提供从名称到对象应用的映射,是在CORBA现有的名字服务的基础上加以修改形成本系统的名字管理器。CORBA命名服务中规定,在特定的上下文中,名字注册是唯一的,每个名字只能准确的确定一个对象。在分布式数据库中,因为同一个数据库可能在不同结点的计算机上同时存在,而且为了满足分布式数据库并发操作和一致性要求,要求各个结点上的每个LDBObject都必须在命名服务器中注册,在引用时同时被引用。因此,CORBA的命名服务已不能满足CDDS的要求。DDS中的名字管理器,即可以支持同一对象多次注册,又可以保证每个名字解析时同时可以获取多个对象引用。图2是名字管理器中维护的命名树。

当对象LDBObjectA到名字管理器注册时,若名字树中没有LDBObjectA时创建LDBObjectA的命名环境,并在该环境下以名字LDBObjectA_1注册。当对象LDBObjectC以LDBObjectC注册时,名字树中已经存在LDBObjectC的命名环境,则名字管理器在LDBObjectC的命名环境下以名称DBObjectAgentC_2注册。所有对象的注册首先创建命名环境并以新的名字注册,在有相同的对象来注册时直接在该命名环境下新的名称再注册。LDBObjectC下有多少个子节点,代表LDBObjectC在多少个结点上存在。当客户端GDBAgent需要获取DBObjectAgentC的对象引用时,解析命名空间树,当解析到DBObjectAgentC时,遍历DBObjectAgentC下的所有对象并同时获得这些对象的对象引用。这样每个结点上的DBObjectAgentC所代表的数据库都执行了相同的操作,保持了各个结点上相同数据库的一致性。

以下是名字管理器实现的伪代码:名字注册

{if(不存在)

{创建}

else

{int i = 1;

while(存在)i++;

创建;} }

解析名字获取对象引用

{int i = 1;

While(存在)

{通过获取对象引用objRef;

将该引用加入对象引用链表objRefList;

i++;}

返回对象引用链表objRefList; }

2系统安全机制

为了满足远程教育系统的安全性,设计了以下系统安全防护体系,如图4所示。

业务网隔离系统:在业务网络与外部网络(外部信息源)布署一套专用安全隔离设备,实施强制性访问控制规则,确保内部网络安全。外网隔离系统:在对外信息发布服务器与公网的边界布署一套专用安全隔离设备,实施单向数据交换与强制性、唯一性应用数据交换规则,保障业务网络与外部网络的隔离。基于USB的认证卡:在需要进入业务网进行业务操作的每一台PC上安装基于USB的硬件身份识别卡,确保在网络中进行数据交换与操作的用户的合法身份。

构建的安全体系中,在网络数据交换的边界部署专用安全隔离设备,使该系统作为强制性的访问控制措施保障业务网络的正常运行。公网隔离通过交易重构与应用捆绑技术实现。隔离系统采用单向通讯机制、定时通讯机制、应用捆绑过滤。隔离系统执行两个网络之间的访问控制策略,它只允许符合规则的应用协议与数据在指定的时间或规则下通过,其它应用与数据将无法传递。隔离系统是一个分离器,通过隔离风险区域(即有一定风险的外部网络)与安全工作区域(调度系统)的连接,有效地监控了网间的任何活动,保证了内部网络的安全。业务网与外部信息源隔离,作为外部信息源与安全工作区域之间信息的出入口,能在符合应用协议的基础上根据实际的安全策略控制出入网络的信息流,它是提供信息安全服务,实现网络和信息安全的基础设施。系统提供必要的强制性访问控制机制,但又不造成网络的瓶颈,并通过安全策略控制进出系统的数据,保护政府的关键资源,隔离系统是一种有效的网络安全模型,是机构总体安全策略的重要组成部分。

五 结语

利用功能强大的分布式计算CORBA技术来构造网内教学系统,利用CORBA技术可以将各种异构的教学资源和信息实现无缝集成,基于ORB提供的软总线机制,使得系统中的各种教学资源、学习对象、教学对象、应用系统、硬件资源等各种符合规范的接口定义对象,都可以直接插到软总线上进行方便的集成,而且为系统的实现提供了一种分层的实现思想,实时CORBA技术的成熟为解决现在网络教学当中存在的实时交互问题提供了强有力的支持,建立在CORBA技术上的教学系统具有灵活、易开发、易扩充、易集成和交互式操作等优点。利用Web Services灵活的消息机制、松散耦合体系以及防火墙友好而构建基于Internet的远程教学系统应用,基于这两种技术构建的远程教育系统,很好的适应了当前远程教育系统的需求。但是在具体实现中还存在许多具体的问题,如将SOAP请求转化为IIOP调用等问题都需要进一步研究,随着CORBA规范的不断完善和Web Services技术的不断成熟,这两种技术的结合将对构建高效、完善的现代远程教育系统的发挥更大的作用。

参考文献

[1] 张琴珠,梁明.组件技术在现代教育系统中的运用[J].电化教育研究,2001,11:45-49.

[2] 王凤蕊,王文宏.利用CORBA技术和思想来开展网络远程教学[J].现代教育技术,2002,2:69-79.

[3] Alexandre J.P.D.Fonte, Jose Carlos Metrolho.CORBA and Web Technologies Applied to Long Distance Learning [J], IEEE, 2001:2131-2134.

[4] 顾海群,谷清范.CORBA对象调用服务的Web Services封装设计与实现[J].计算机工程,2005,31:114-135.

[5] 朱其亮,郑斌.CORBA原理及应用[M].北京:北京邮电大学出版社,2001,8:120-150.

[6] Aniruddha Gokhale, Bharat Kumar, Arnaud Sahuguet.

Reinventing the Wheel CORBA vs. Web Servicess [EB/ OL].

[7]Abraham Silberschatz.DatabaseSystem Concepts(Fourth Edition)[M].北京:机械工业出版社,2003,3:223-280.

[8] 张强,陈伟.基于CORBA的分布式数据库系统的设计与实现[J].计算机工程,2004,30:62-64.

猜你喜欢

远程教育
多媒体教学古诗有感
探究党员干部远程教育模式创新
2005—2015年中国远程教育机构及其学习者成本效益研究的量化分析
远程教育中教学交往策略探究
发挥远程教育平台优势?探索社区教育数字化学习模式
教育信息处理在远程教育中的应用
从《远程教育》35年载文看远程教育研究趋势
网络远程教育学习行为及效果的分析研究
基于IPoverDVB—S单向传输模式的远程终端系统与数据维护技术