卓越网络学习系统计划书

卓越网络学习系统计划书

V0.2

方兵

20046

 

这是有关卓越网络学习系统的系统设计,这个设计整合了现有DS(当然DS需要为此进行重新开发新版本)和我们设想中的信息资源库系统,并提供了更多更高级的功能。该系统从语言学习出发,又不局限于语言学习,是一个全功能的综合学习系统。

从中可以看出,这个网络学习系统是网络时代的产物,充分体现了“一切都是服务的理念”,并有效的整合了地域上的一切可利用的资源,充分发挥了分布式计算的作用。并不局限于英语学习,可以将各种学习功能纳入其中,并可以于随时随地进行访问。从中,我们可以感受到,这套网络学习系统的推出必将是带来学习方式的新的突破。

一.      系统特性

1.  通用的服务接口,各学校可方便的共享资源;

2.  良好的用户体验(XP),方便多样的用户界面;

3.  开放的编程接口,轻松扩展系统功能;

4.  完善的网络访问机制,随时随地享受服务;

5.  优秀的缓存机制,联机和离线均可使用;

6.  动态加载运行组件,采用“徐徐注入”的方式减少需要加载的程序集大小;

7.  程序自动升级,有效降低部署成本;

8.  高效的开发效率,稳定、安全的系统。

二.      物理拓扑结构

卓越网络学习系统的物理拓扑结构有如下几种形式,如下图所示:

 

这是很传统的一种组网方式,学校的所有教学活动在一个独立的校园网内进行。这种网络拓扑结构适用于较小的、单校区的学校,如中学,小型的大学等等。

这种组网方式则没有一个明显独立的校园网,学校的的各项教学活动集中进行,但在全校范围内来看则有呈现一种分散的形态。这种网络拓扑结构适用于较大的或多校区的学校,是目前最常见的校园组网方式。

这种组网方式呈现出一种非常明显的完全分散形态,学校的各项教学活动都是完全分散进行。这种网络拓扑结构适用于没有地理意义上的学校概念的学校,如函授学院、远程学院、网上学校等等。这种系统才是真正意义上的网络学习系统。

 

 

基于以上三种组网方式,我们在做开发的时候,要充分考虑组网的灵活性和不确定性,开发出能同时适用于以上三种网络结构的网络学习系统。

解决以上问题的方案是,充分利用WebSevices.net Remoting的强大的穿透防火墙的能力,在对性能要求和互动要求比较高的地方使用.net Remoting,在其他地方使用WebServices。具体在图上已做了标注。

三.      系统功能简述

基于以上网络拓扑结构,现针对各网络节点对各自要实现的功能作一个简单叙述:

1.         Able资源中心①包括服务器和客户端两个元素,两元素之间通过WebServices相连。Able资源中心实现如下服务:

a)         注册鉴权,各学校客户只有在注册并缴纳服务费之后才能享受Able资源中心提供的一系列增值服务;

b)        大学资源中心服务器储存资源的列表,各大学资源中心在使用注册的帐户登陆之后和获得各大学资源中心服务器储存资源的列表,从而可与各大学资源中心共享资源;

c)        Able提供的教学资源,这里和上面提供的大学资源中心服务器储存的资源的列表可以按学科分类,并分为基本资源和扩展资源,分别收取服务费;

d)        教学论坛、教学聊天室;

e)         Able提供的互动实验室,这些互动实验室属于增值服务,只有各学校购买相应实验室的一定时间的服务,该学校的大学资源中心才能下载并分发给本校学生使用;

f)         提供系统的升级服务,分发系统的升级及扩展组件;

g)        收集系统Bug及客户体验报告,以便在后续开发中参考。

此处应当考虑服务器群集技术的应用。

2.         大学资源中心②包括服务器和客户端两个元素,两元素之间通过WebServices相连。大学资源中心实现如下服务:

a)         纪录学校用户的活动,学校的教师和学生的身份认证信息储存在这里,并纪录下用户在系统中的活动信息,并可以查询分析;

b)        资源储存和分发,学校的有关教学资源储存在这里,可以分发给各语音教室从事各项教学活动;

c)        本校的教学论坛和教学聊天室;

d)        转发Able教学论坛和教学聊天室的信息;

e)         互动实验室的存储和分发,只有购买了相应实验室的一定时间的授权才能在服务期内使用;

f)         与其他学校资源中心交换资源信息,教学资源有是否公开属性,如果属性为真,则该资源可与其他学校资源中心共享;

g)        Able资源中心下载并更新自身程序,获取并分发语音教室、客户机的更新程序。

此处应当考虑服务器群集技术的应用。

3.         教室教师机④和教室学生机是目前DS系统的组成部分。当然DS需要为满足这里的功能需求进行重新开发。在此基础上,为从以控制系统为中心转向以教学资源为中心,加入了教室服务器③,在软件开发上教室服务器和教室教师机作为两个独立的组件来开发,在部署上可以根据需要部署在同一机器上或是分开部署。教室服务器(教师机)实现如下功能:

a)         接受教师机的指令控制学生机进行各项教学活动,;

b)        从校资源中心获取并分发教学资源,并根据需要进行缓存,以备以后教学使用;

c)        转发教学论坛和教学聊天室的信息;

d)        转发互动实验室信息;

e)         将学生在本教室中的活动提交校资源中心;

f)         从校资源中心下载并更新自身程序,获取并分发学生机的更新程序。

此处应当考虑一台服务器同时对多个语音教室的教室机和学生机的控制(基于会话的概念)和服务器群集技术的利用。

4.         教室教师机④将实现如下功能:

a)         从教室服务器获取教学资源并播放,并根据需要进行缓存,以备以后教学使用;

b)        在教师控制下向教室服务器发出指令以控制学生机的活动;

c)        将学生的活动发给教室服务器并转发到校资源中心。

d)        教学论坛和教学聊天室客户端;

e)         互动实验室客户端;

f)         从教室服务器下载并更新自身程序。

5.         教室学生机⑤将实现如下功能:

a)         在教师机的控制下开展各项教学活动

b)        从教室服务器获取教学资源并播放,并根据需要进行缓存,以备以后教学使用;

c)        将学生的活动发给教室服务器并转发到校资源中心;

d)        教学论坛和教学聊天室客户端;

e)         互动实验室客户端;

f)         从教室服务器下载并更新自身程序。

6.         校外系统⑥的使用,学校的教师、学生在校外时,比如在家里、在移动中,一样可以通过各种方式来享受我们的服务。校外系统分为教师版和学生版。他们可以:

a)         通过各种方式来获取资源进行学习,无论是使用电脑还是移动设备;

b)        可以将资源缓存在本地,从而无论在联机时还是在离线时均可自由的学习;

c)        备课、资源录入和组织;

d)        将师生的活动发给教室服务器并转发到校资源中心;

e)         教学论坛和教学聊天室客户端;

f)         互动实验室客户端;

g)        从教室服务器下载并更新自身程序。

四.      系统逻辑结构

基于以上功能分析,卓越网络学习系统大致分为如下六个子系统,每个子系统又分为若干个模块,逻辑结构图目前暂定如下,在系统分析设计过程中应该会做调整:


 


 

下面就系统逻辑结构和物理拓扑结构的关系作一个说明:

1.             服务注册和鉴权子系统有两个子模块,分别是服务注册续费和服务登陆鉴权。服务注册续费模块部署于Able资源中心(资料存储),而服务登陆鉴权则位于Able资源中心(身份认证)和学校资源中心(请求发起)。

2.             资源管理子系统有两个子模块,分别是试题库管理模块和教学课件管理模块。

                         i.              试题库管理模块分为四个子模块:试题录入子模块位于Able资源中心(资源存储)和学校资源中心(资源存储),在教室服务器上有转发功能,在教师机和校外系统教师版上有录入界面;试题查询子模块位于Able资源中心(查询搜索)、学校资源中心(查询搜索)、教室服务器(转发和缓存功能)和教师机(查询界面和缓存功能)、校外系统教师版(查询界面和缓存功能);试卷生成子模块位于学校资源中心(查询试题和生成试卷)、教室服务器(转发功能)、教师机(控制界面)和校外系统教师版(控制界面);试卷呈现子模块位于教师机、学生机以及校外系统教师版。

                       ii.              教学课件管理模块分为三个子模块:课件录入子模块位于Able资源中心(资源存储)和学校资源中心(资源存储),在教室服务器上有转发功能,在教师机和校外系统教师版上有录入界面;课件查询子模块位于Able资源中心(查询搜索)、学校资源中心(查询搜索)、教室服务器(转发和缓存功能)、教师机(查询界面和缓存功能)、学生机(查询界面和缓存功能)和校外系统(查询界面和缓存功能);课件呈现子模块位于教师机、学生机和校外系统。

3.             受控教学子系统分为三个子模块,分别是广播授课、分组讨论和师生问答。三个子模块均位于教师机、教室服务器和学生机。

4.             师生活动记录和分析子系统分为四个子模块,分别是考试成绩管理、教学活动管理、网络作业管理和师生登陆鉴权。除考试成绩管理中的子模块考试成绩记录和网络作业管理的子模块作业批改仅位于学校资源中心(资料存储和客观题自动判分)、教室服务器(转发功能)、教师机(主观题手动判分)和校外系统教师版(主观题手动判分)外,其他各模块均位于学校学校资源中心(资料存储和查询)、教室服务器(中转功能)、教师机、学生机和校外系统中。

5.             系统升级服务和客户体验报告子系统位于整个系统的每一个节点中。

6.             互动社区子系统位于整个系统的每一个节点中,其中Able资源中心和大学资源中心作为服务端,教室服务器作为转发器,教室机、学生机和校外系统作为客户端。

五.      系统开发原则

本系统在开发中,必须遵守如下原则:

1.  松耦合、组件化;

为了实现前述方便可扩展的系统特性,系统各模块之间必须要实现松耦合、组件化。这里的组件并不仅是指本文前述的模块,作为项目的最初计划书,这里的模块划分相当的粗略,在后面详细设计阶段会划分出更多更详细的模块,开发应当在该详细级别的程度上实现松耦合、组件化。

2.  分层开发,层间通过接口访问;

基于前述松耦合、组件化的要求以及动态系统升级的要求,各组件都应当遵循分层开发的约定,初定应当划分为如下三层:

1)        数据访问层。这一层封装对数据的读取和访问,在数据库端,是对数据库的访问;在客户端,是调用网络接口,如WebServices.net Remoting

2)        业务逻辑层。这一层封装对数据的处理和业务逻辑的实现;

3)        业务界面层。这一层并不指的仅是用户界面,而是指暴露出来用于供外界调用的接口。对于用户端来说,是用户界面;而对于网络服务端来说,则可能是WebServices.net RemotingAPI

原则上各组件都应当实现以上三层,但在实际设计中,应根据实际情况进行调整增减。

层与层之间应当通过接口访问而不是直接调用,其目的在于方便的升级和扩充系统。

3.  规范的接口定义;

既然各程序集之间要求通过接口访问而不是直接调用,那么接口的定义将成为系统开发中最为首要和重要的问题,无论本项目最后由多少人来开发,在制定好科学而规范的接口之后,项目将能够非常容易的分解安排,每位开发人员完成自己那部分工作的接口实现,整个系统就能够很好的工作。

4.  程序集动态加载;

实现程序集动态加载也是可扩展应用程序的一个重要特征,在设计和开发中要注意并充分使用这一技术。

5.  细颗粒的程序集;

为实现以上程序集动态加载的特征,并有效降低网络下载程序集对带宽的要求,单个程序集(exedlletc)的大小必须限制在可接受的范围内,一般来说,每个文件应当小于200k

6.  单服务器访问;

单服务器访问是简化系统设计,增强稳定性的重要原则。简单的说就是卓越网络学习系统虽然是一个复杂的网络系统,很多节点在网络中既做服务器又作客户机,但只要在设计中注意一点,就是节点自身作为客户机时只访问一个服务器,就能够从单体角度看系统复杂度得到尽量的降低,这样在将来部署的时候也能够尽量的简单。如教室教师机只访问教室服务器,即使有些操作需要访问学校资源中心,也需通过教室服务器中转。

六.      项目生命周期

卓越网络学习系统项目预计需耗用200-240个人月,生命周期规划为如下五个阶段:

其中互动社区子系统中的互动实验室模块为增值服务模块,将在系统投入运行后再行开发,下述的项目周期中只开发接口。

1.         分析

本阶段分为开始和细节两个子阶段。

开始阶段应当完成以下工作:

a)         前景文档:对核心项目需求、关键性质、主要限制做一个一般性的前景说明(本文档可以认为是);

b)        最初的顶级用例:系统应当实现哪些顶级意义上的功能,以便让用户能够使用这些功能。

细节阶段应当完成以下工作:

a)         详细的需求说明书:对系统功能的需求的尽可能纤细的需求说明书,从每一个细节来说明希望系统将是个什么样子;

b)        详细的用例模型:系统应当实现的每一个细节上的功能;

本阶段投入的人月大体为项目全部人月的15%

2.         设计

本阶段应当完成以下工作:

a)         详细的交互模型:该模型精确的描述用户使用每一个功能流程,并描述在使用该功能的过程中,需要与哪些系统组件发生交互;

b)        接口设计:应当制定出规范的接口定义,然后编码阶段便可以开始,和设计的后阶段同时进行;

c)        数据库设计;

d)        类设计;

本阶段投入的人月大体为项目全部人月的25%

3.         编码

本阶段应当完成以下工作:

a)         接口开发,完成接口的开发工作,并再次论证接口设计的合理性和可行性;

b)        数据库开发;

c)        类的实现。

本阶段投入的人月大体为项目全部人月的30%

4.         测试

本阶段应当完成以下工作:

a)         系统测试;

b)        Bug排除;

c)        用户手册的编写。

本阶段投入的人月大体为项目全部人月的20%

5.         部署

本阶段应当完成以下工作:

a)         系统的部署;

b)        互动社区子系统中的互动实验室模块的开发;

c)        进入后续维护阶段。

本阶段是项目开发完成后的一项长期工作。

七.      开发语言及相应的技术

本系统采用C#语言开发,网络连接采用.net RemotingWebServices,其他技术包括DirectX9.0b

八.      开发工具

本系统采用如下开发工具进行开发:

1.  设计建模工具 Rational Rose

2.  编码工具 Visual Studio.net 2003

3.  数据库工具 SQL Server 2000

4.  版本控制工具 Visual Source Safe 6.0c

九.      部署环境

服务器环境为Windows 2000 Server/2003 + SQL Server 2000;客户端环境为Windows 2000 Professional/XP

十.      对现有API使用的建议

由于卓越网络学习系统中的受控教学子系统已有用C++开发的产品DS1.0,对于这部分系统的开发有两个想法,一是直接利用现有系统的API,将其整合到新的网络学习系统中去,二是采用.net技术进行重新开发。

直接利用现有系统的API的好处是利用了现有资源,缩短了开发周期,降低本系统的开发成本,但是其副作用也是显而易见的:

1.         现有API很难说可以不做任何变动直接拿来用,估计需要根据实际情况进行相应修改,这样修改的风险就无法预测和控制了,考虑到再测试等等方面的因素,在某种不如意的情况下付出的成本可能比采用.net技术重新开发的成本相当甚至更高;

2.         该部分将无法跨防火墙通信,从而使我们的系统无法满足前述第三种网络拓扑结构,失去一部分市场;

3.         这部分将无法实现动态加载,也就无法实现动态升级和动态扩展。

解决方案有如下两种:

一是直接采用.net技术重新开发;

二是将现有系统的API进行相应修改,然后采用.net技术开发相应的适配器,调用这些API,然后再在适当的时候用采用.net技术重新开发的相应组件替换掉这些API

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值