WEB2.0理念下的数字开放实验室

时间:2022-06-19 08:53:14

WEB2.0理念下的数字开放实验室

【摘要】数字开放实验室的管理、决策、发展依赖于信息技术。但建立同构信息系统的成本和风险都过高,因此如何以Web2.0理念为导向,建立异构信息平台具有重大现实意义。针对该需求,文章提出了基于SOA架构和WCF消息技术的整合方案。该系统已经在上海师范大学广泛应用。

【关键词】Web2.0;整合;WCF;SOA;开放实验室

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

引言

上海师范大学数字传媒中心为改善硬件基础设施,花费大量资金购买了一些先进设备及网络平台。为实验室注入了高标准的硬件资源,也形成了比较完整的万欣机房管理平台和实验室设备管理平台。目的是提高学生的实践能力,及提高科研和教学水平。但是通过对上海师范大学数理信息学院全体师生的问卷调查,发现目前实验室管理的信息化程度不高、资源利用率偏低,实验室信息化管理有待于进一步提高。Web2.省略三层架构技术和SqlServer2005数据库进行开发新平台,利用SOA技术实现服务和技术的分离,其中利用WCF技术开发Web Service标准接口,整合万欣机房管理平台和实验室设备管理平台,从而实现跨平台软件服务的整合。整合后的数字开放实验室功能更为强大,不仅能够在线管理独立平台,且融入了体现Web2.0思想的典型技术:RSS,IM(即时聊天)等,从而架构了Web2.0理念下的数字开放实验室。

一 数字开放实验室系统前期分析

为使已有实验室平台相互联系,实现实验室资源时间化,提出在Web2.0思想下整合数字开放实验室。从Web1.0到Web2.0发展来看,互联网经历了一次理念的洗礼与技术的升级。Web2.0的核心思想就是用户之间的彼此交互,倡导开放、参与、共享的理念。从Web1.0时代的自上而下少数资源控制者集中控制的层级结构,发展到自下而上由普通用户集体智慧和力量占主导的对等式网络结构。Web1.0与Web2.0的区别[1],如表1所示。

表1 Web1.0与Web2.0的区别

Web 1.0 Web 2.0

个人网站 博客(blogging)

内容管理系统 维基(WIKI)

大英百科全书在线(BritannicaOuli) 维基百科全书(WikiPedia)

…… ……

开发数字开放实验室秉承了Web2.0的基本思想―对等式整合。首先要清楚哪些平台需要整合,便于项目组成员清晰整合工作,从而使工作顺利进行。例如:上海师范大学数字开放实验室整合图,如图1所示。

其次,在做用户需求之前,要分析已经存在平台的基本架构、数据库和功能,以便后期开发整合系统时的数据兼容性。从系统对象及应用范围的角度出发,对已有平台的数据库进行分析时,一定要推导出数据库中重要的表,表中的字段、主键和表与表之间的关系,为定义数据接口和方便数据读写做好铺垫。在前期准备工作完毕后,最重要的一步就是使用UML建模工具做用户需求分析。充分考虑实验室2.0必须满足学习者哪些方面的需求,体现实验室的哪些资源及用到的具体技术等问题。从简到繁,逐步细化本系统各个模块不同角色的功能。其优点是方便项目组成员进行交流和修改文档,同时也便于科学合理地进行工作安排与任务分配。

二 数字开放实验室系统技术需求

从系统的可扩展性、可维护性、可演化性、安全性及可伸缩性等综合因素进行考虑,确定数字开放实验室系统的整体架构。

首先根据目前实验室信息化的现状,如果无在线数字实验室,采取VisualStudio2008和SqlServer2005设计开发一个在线数字开放实验室。其次从宏观的整合角度对数字开放实验室系统进行整体设计与开发,采用SOA(Service Oriented Architecture,面向服务的架构)和WCF(Windows Communication Foundation,Windows通信基础)技术,对在线数字开放实验室和其他实验室管理平台进行整合,从而实现跨平台的数据传输。最后,从细节角度考虑数字开放实验室系统实现的具体环节。针对数字开放实验室系统各个独立模块的特点,为便于以后对该系统进行更好地优化维护,在整合时可以围绕use-case图及其描述和分析阶段的不同,加入选定的具体技术,同时使用面向对象理论及设计模式等,对系统整合的流程框架进行设计。在应用WCF进行平台整合时的应用步骤及注意事项将是一个重点内容,将成为平台相整合的关键因素。

1 SOA架构

SOA(Service Oriented Architecture),即以服务为导向的软件开发思想。META[2]将SOA定义为:“一种以通用为目的、可扩展、具有联合协作性的架构,所有流程都被定义为服务,服务通过基于类封装的服务接口委托给服务提供者,服务接口根据可扩展标识符、格式和协议单独描述。”该定义表明服务接口和实现技术之间的分离。其实它是一个整合各种服务的架构平台,本质是要通过一个核心服务技术集中管理平台,连接各种服务。SOA架构模式中用户不需要知道服务是由哪个平台提供的,即可完成所需要的请求。其中Web Services是SOA的核心技术,提供标准化服务接口。SOA架构有利于平台整合时建立标准化的服务接口、支持各种消息模式及服务契约的精确定义等,故在平台整合时采取SOA架构数字开放实验室系统。

2 WCF介绍

WCF[3](Windows Communication Foundation,Windows通信基础)是微软为新一代分布式应用提供的解决方案,是构建安全可靠的事务的统一框架,是一种构建分布式面向服务系统丰富的技术基础。采用WCF技术的特色就是保证了信息传递的安全性和可靠性。WCF的三个基本要素为:Contract(契约或者接口)、Address(地址)、Binding(绑定)。WCF的Endpoint(暴露端口)中契约(Contract)即“What”,就是定义具体实现契约的网络服务内容;Address(地址)即“Where”,就是选择合适的地址来激活服务器;Binding(绑定)即“How”,就是设置信息传递的协议。通过WCF端口,信息就可以安全可靠地从Client(客户端)传递到(Service)服务器端。如图2所示。

利用WCF技术开发Web Services服务契约(接口),统一消息风格,使消息以文本的形式和基于开放标准的通信实现平台最优化[4]。根据WCF消息传递机制及基本原理,设计万欣机房管理平台与数字开放实验室系统整合时的WCF整体结构体系,如图3所示。

本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

然后通过WCF的Binding把万欣服务器与实验室管理系统(LMS)的客户端联系起来,设置服务器与客户端的传递协议。万欣服务端通过服务契约(接口)向数字实验室管理系统(LMS)客户端提供服务,实现了消息安全、可靠、高效地传递。

三 上海师范大学数字开放实验室系统整合案例

针对目前实验室管理现状及用户需求分析,项目组决定开发Web2.0理念下数字开放实验室,并整合万欣机房管理平台和实验室管理平台,从而构成数字开放实验室系统。下面就以万欣机房管理平台与数字开放实验室整合为例具体说明整合流程。

1 万欣机房管理平台分析

万欣机房管理平台是帮助机房管理人员有效管理机房资源,实现学校机房管理信息化的软件系统。它可以实现教学上机时自动禁止学生上网、玩游戏、网上聊天等活动,显示实验课时安排、班级详细信息、学生出勤情况、作业情况等,提高师生的工作和学习效率。但是此平台只能在实验室中使用,容易造成上机课资料信息的空间间断性。

目前为保证待开发数字开放实验室系统的数据库与万欣机房管理平台的数据库相兼容,使数据顺利传输。首要任务就是分析万欣机房管理平台的数据库(SQL Server2005数据库)。在万欣机房管理平台数据库中,数据表约有70个。但是通过对表与表之间的关系推导,分析出与整合相关的数据表主要有:用户信息资料表(tblUser)、逻辑班组用户信息表(tbLogicClass)、班级资料或部门资表(tblDepartment)、课程班表(the class)、已结束预约信息表(tblClassUsed)、课程资料表(tblCourse)、预约表(tblPreContract)、学生考勤记录表(tblRollCall)、教师资料表(tblTeacher)等。然后找出每个表的主键、字段及表之间的具体对应关系。从而定义数据接口,方便数据信息在不同平台地读写。通过分析定义万欣数据库接口为:

(1) GetHistoryContracts(teacherID:String)//得到历史预约

(2) GetCurrentContracts(teacherID:String)//得到当前预约

数据模式:Contract(CourseName, CourseID , Room, BeginLessonIndex, EndLessonIndex, TeacherName, StartDate, EndDate, Classes)

(3) GetSubContracts(contractID:WanXin.tblCourse. CourseID)//得到子预约信息。数据模式:SubContract (Date,WeekDay ,BeginTime, EndTime, BeginLessonIndex, EndLessonIndex, Room, AttendanceCount)

(4) GetAttendanceList(courseID,date,beginTime, endTime)//得到出席列表。数据模式:Attendance (StdName,ID,Class)

2 SOA架构数字开放实验室功能设计

本系统可分为三个角色(学生、教师、管理员),各角色分别具有各自功能。本系统主要有五大模块:用户信息、课程管理、设备管理、预约管理、实验社区。数字开放实验室角色功能,如表2所示。

表2 数字开放实验室角色功能

角色 功能

管理员 用户信息(信息录入)、课程管理(导入课程、课程审核)、设备管理(设备录入、设备维护、设备出借)、预约管理(待审核预约、已审核预约、历史预约)、实验社区(讨论模块、专题模块、资源模块、作品展示模块)

教师 用户信息(修改)、课程管理(申请课程、课程审核)、预约管理(预约设备或机房、待审核预约、已审核预约、历史预约)、实验社区(同上)

学生 用户信息管理(修改)、课程管理(查看课程、申请选修课、浏览课堂信息)、预约管理(同教师)、实验社区(同上)

本系统以学习者为中心,方便其获取实验室资源,有效地进行虚拟实验指导。同时还在实验社区中整合RSS聚合技术,方便学习者订阅感兴趣的实验专题;基于IM即时聊天功能的讨论模块中,为师生对实验的相关问题搭建交流平台;设置小组作品展示模块,打破了时间及地域的界限,为学习者提供了思想碰撞的空间。通过在线网络,使学生、教师和管理员三者实现动态交互、共享资源。

3 SOA架构数字开放实验室系统开发

首先要开发一个在线数字开放实验室,主要采用VisualStudio2008和SqlServer2005数据库进行设计开发。此系统的体系结构采用B/S模式的系统三层分布结构。第一层是用户层(USL),用户可以从web界面直接获得所需信息。为确保系统信息的安全性,建立前台登录界面(学生、教师)和后台登录界面(管理员)。第二层是业务逻辑层(BLL),业务逻辑层是系统的核心部分,它能够封装系统的业务服务,负责处理用户层(USL)的应用请求,对其进行业务处理及逻辑判断。如果判断正确,就可以调用数据库的内容,进行数据处理,并将处理结果返回给用户层(USL)。第三层是数据层(DLL),实现事务逻辑、数据逻辑,以及数据库存储与处理。开发SqlServer2005数据库时,必须充分考虑前期分析的万欣数据库中的表及数据接口,以方便数据在数字开放实验室及万欣机房管理平台之间进行读写。当开发数字开放实验室时,也必须考虑整合万欣机房管理系统。采用SOA架构模式使平台和服务接口进行绑定,对服务接口实现封装。其中SOA的核心组件:Web Service,它是利用WCF技术开发Web Service标准服务接口的传输和调用的标准化,从而实现数字开放实验室整合。万欣机房管理平台与数字开放实验室整合后的通讯流程,如图4所示。

通过Web Service标准对服务进行查询和访问,实现信息以文本的形式的跨平台传输,实现了不同平台之间实验室信息互联共享。其实也就是说,Web Service是将XML文本在各个平台之间传送和接收,以达到信息交换的目的。利用WCF开发万欣机房管理系统的契约时,注意WCF代码编程的基本规则。如:获取教师信息的接口,代码如下:

using System.ServiceModel;

{[ServiceContract]

publicinterface IWanXinService

{[OperationContract]

IEnumerable GetTeachers();

}

}

当定义了获取教师信息的接口后,定义真正可用的服务器,获取教师信息的实现代码如下:

public class WanXinServiceType:IWanXinService

{public TblTeacher GetTeacher(string logonName)

{CCMWF db = new CCMWF(ConfigurationManager.ConnectionStrings["CCMWF"].ConnectionString);

本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

var result = (from t in db.TblTeachers

where t.LogonName == logonName

select t).Single();

return result; }

}

而Data Contract则用于定义传递信息的形状与规则。在WCF中自定义新类型时,需要用到[Data Contract]。如万欣契约中定义Attendance类,在此类中有学生姓名、学号、班级信息。代码如下:

using System.Runtime.Serialization;

[DataContract]

public class Attendance

{ [DataMember]

public string StdName;

[DataMember]

public string ID;

[DataMember]

public string Class;

}

数字开放实验室系统整合万欣机房管理平台时,开发部分契约接口的代码如下:

{[OperationContract]

IEnumerable GetTeachers();//获得教师信息

[OperationContract]

IEnumerable GetRooms();//获得实验室地点基本信息

[OperationContract]

IEnumerable GetAllPhysicalClasses();//获得所有物理班信息

[OperationContract]

IEnumerable GetPhysicalClasses(int parentID);

[OperationContract]

IEnumerable GetClassGroup();//获得班级组信息

[OperationContract]

IEnumerable GetStudents(int classID);//获取所有学生信息

……}

四 问题与展望

数字开放实验室系统以整合的思想进行设计与开发,缩短了网站研发周期,合理利用有效资源,并且提高了此系统的稳定性、可扩展性和可伸缩性, 同时在Web2.0理念下整合实验室资源,提高了资源利用率和学生、教师及管理员的工作效率。通过此系统学生和教师可以时时了解实验室设备、机房及课程的相关资源,结合自己的兴趣爱好,合理地安排时间进行创新研究、协作学习及探究学习,能够实现动态管理实验室。目前本系统在上海师范大学得到了很好的应用。

但是随着云计算的发展,此系统的弊端就是:本系统不能够对整合进行迁移,不具备整合的可移动性[6]。如果能够通过把SOA(面向服务的架构)与虚拟化结合在一起实现“基于实验室政策的自动化”,那么在这种情况下,就能够把实验室基础设施和应用程序的托管转移到数字开放实验室系统。从而可以成功地把数字开放实验室系统连接到实验室制定的政策和服务水平上。此目标的实现需要很多方面地协作,但是如果能够实现将是质的飞跃,它将把从面向服务的计算发展到“云”计算,最大限度地提高实验室效益和功用性。将云计算用于系统的整合过程,实现整合的移植性,是我们下一步的研究目标。

本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

上一篇:《Photoshop平面图像设计》案例教学的创新设计 下一篇:基于FLEX和J2EE多媒体远程答疑系统设计与实现