1wme.lzu.edu.cn/document/research on mathematics... · web view第五章 总结与展望 52...

121
分类号: 密级: 论文题目(中文) 数学试题网格和数学试题   标记语言的研究   论文题目(外文)Research on Mathematics Assessment Grid and Mathematics Assessment Markup La nguage 李 冠 宇 科、专 计算机软件与理论 计算机数学及其应用 硕 士 导师姓名、职称 李 廉 教授 2006 6 月至 2007 5 论文提交日期 2007 5 论文答辩日期 学位授予日期

Upload: others

Post on 18-Jan-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

1

分类号: 密级:

研 究 生 学 位 论 文

论文题目(中文) 数学试题网格和数学试题  

标记语言的研究    

论文题目(外文)Research on Mathematics Assessment Grid and

Mathematics Assessment Markup Language

研 究 生 姓 名 李 冠 宇

学 科、专 业   计算机软件与理论

研 究 方 向 计算机数学及其应用

学 位 级 别 硕 士

导师姓名、职称 李 廉   教授

论 文 工 作

起 止 年 月 2006年6月至2007年5月

论文提交日期 2007年5月

论文答辩日期 年 月

学位授予日期

校址:甘肃省兰州市

原 创 性 声 明

本人郑重声明:本人所呈交的学位论文,是在导师的指导下独立进行研究所取得的成果。学位论文中凡引用他人已经发表或未发表的成果、数据、观点等,均已明确注明出处。除文中已经注明引用的内容外,不包含任何其他个人或集体已经发表或撰写过的科研成果。对本文的研究成果做出重要贡献的个人和集体,均已在文中以明确方式标明。

本声明的法律责任由本人承担。

论文作者签名: 日 期:

关于学位论文使用授权的声明

本人在导师指导下所完成的论文及相关的职务作品,知识产权归属兰州大学。本人完全了解兰州大学有关保存、使用学位论文的规定,同意学校保存或向国家有关部门或机构送交论文的纸质版和电子版,允许论文被查阅和借阅;本人授权兰州大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用任何复制手段保存和汇编本学位论文。本人离校后发表、使用学位论文或与该论文直接相关的学术论文或成果时,第一署名单位仍然为兰州大学。

保密论文在解密后应遵守此规定。

论文作者签名: 导师签名: 日 期:

摘要

近年来,随着Internet及Web技术的发展以及W3C和相关机构对数学表达式在网络上的表示、传输及转换等方面的研究取得重要成果,国内外众多机构开始深入研究和开发基于Web的数学教育系统。考试和测验是数学教学过程中的一个重要组成部分,但目前对于如何表示数学试题没有一个正式的标准,而且现有的数学试题库都分散在各个学校和相关机构,使得这些试题资源得不到充分利用。

本文在研究了目前网格技术理论及成果的基础上,提出构建基于Globus和OGSA-DAI的数学试题网格系统(MAG)。本文提出了数学试题网格的概念,描述了网格环境下对异构数学试题库及文件整合的方案及架构,讨论了MAG所提供的服务及构建MAG所采用的一些技术。

数学试题标记语言(MAML)是构建数学试题网格的基础,是描述数学试题有效方法。本文详细介绍了制定MAML的意义及MAML的功能,通过对数学试题题型及结构的研究,提出了一套完整的MAML方案,包括标记的定义、MAML文档的转换和显示,并提供了对MAML进行转换的完整的XSL代码。数学公式和数学图像可以以MathML和SVG的形式嵌入到MAML中,从而完整地以XML的方式描述数学试题。

关键词 XML,Globus,MathML,数学试题网格,MAML

Abstract

In recent years, Internet and Web technology developed quickly. At the same time, W3C and related agencies made significant progress in the field of description, transmission and transfer of mathematical expression on Internet. Many institutions began to do researches on Web-based mathematics education system. Examinations and Tests are important parts of mathematics teaching. But there is no standard way to describe the mathematics questions. Mathematics questions are stored in databases in various schools and the relevant agencies. These resources are not fully utilized.

Based on the study of the theory of grid, we did researches on building of MAG(mathematics questions grid) system which is based on Globus and OGSA- DAI. This paper presents a concept of mathematical questions grid and researches on integration of questions heterogeneous resources.

Mathematics questions Markup Language (MAML) which describes mathematics questions well is the basis of mathematics questions grid. This paper introduces something bout the development and significance of MAML. We apply a XSL document which transfers MAML into XHTML. Mathematical formulae in MathML and mathematical images in SVG can be embedded in MAML.

Keywords XML, Globus, MathML, Mathematics Accessment Grid, MAML

目录

I摘要

IIAbstract

III目录

1第一章 绪论

11.1教育信息化

21.2 WME

31.3 网格技术在教育信息化领域的应用

4第二章 网格研究现状

42.1 网格的概念

42.2 网格产生的背景

52.3 网格的特点:

52.4 网格的发展

52.5 网格体系结构

62.5.1 五层沙漏模型(层次协议结构):

92.5.2 OGSA开放网格体系结构

112.5.3 WSRF

122.6 网格相关技术

122.6.1 XML语言

142.6.2 SOAP 协议

152.6.3网格支撑基础--Web Service技术

192.7 Globus

222.8 OGSA-DAI

242.9 数据网格

25第三章 数学试题网格

253.1 数学试题网格(MAG)的概念

263.2 MAG的体系结构

293.3 构建MAG平台

293.4 MAG服务

313.5 本章小结

32第四章 数学试题描述语言MAML

324.1 MAML的意义

334.2 MathML简介

364.3 SVG简介

384.4 MAML的制定

384.4.1 MAML的概念及功能

394.4.2 MAML元素的定义

414.4.3 MAML的显示

464.5 MAEdit

484.6 MathEdit

494.7 GeoSVG

52第五章 总结与展望

53参考文献

68致谢

第一章 绪论

1.1教育信息化

基于Internet的远程教育已经成为目前研究的热点。随着我国教育和科研计算机网与中国教育卫星宽带多媒体传输平台的互连互通,现代远程教育网络平台已初具规模,越来越多的研究机构和企业开始进行教育内容的研究与开发。

目前在我国各类学校中占主要地位的教学模式是以教师为中心,主要靠老师讲、学生听的班级授课模式,这种教学模式的优点是有利于教师起主导作用,便于教师组织课堂教学。这种模式基本上是在工业化社会初期形成的,当时的生产力水平较低,社会节奏和社会发展步伐迟缓,知识的增长较慢,教学手段落后、单一。考试作为检查学生学习效果的基本手段,是教学过程中的一个重要环节。考试之前的一项重要工作就是命题。在传统的命题组卷过程中,任课教师往往要花费大量的时间去查找相关资料,反复推敲试题的难度和知识点的覆盖率,所以传统的命题组卷方式的效率十分低下,而且试卷的内容往往受到出卷人的主观意志的影响。

进入信息化社会以后,社会节奏与知识增长速度大大加快。自上世纪80年代以来,为了迎接信息化社会对教育提出的种种挑战,国内外的学者作了许多探索,从CAI、ICAI、卫星电视、多媒体到教育网络,努力运用各种最新的信息技术手段来优化教育与教学过程,并且取得了显著的成效。同样,作为教学过程的重要环节之一,考试系统也需要进行深刻变革,才能辅助现有的教学体系实现教学质量与教学效率的大幅度提高。

基于Internet的考试系统具有非常广泛的应用前景。国内对这类系统的研究开发还刚刚处于起步阶段,目前虽然有许多科研机构与科研工作者着手于此类项目的研究,也开发出了一些相应的考试系统,但仍存在着不足,离在全国范围内普遍应用还有一定距离。

也正是由于基于Internet的教育网络在实现全新的教育体制与教学模式方面具有其它技术手段无可比拟的优越性,因此世界各国尤其是发达国家无不对此给予高度重视,并投入大量的资金开展这一领域的基础与应用研究。美国的Rice University早在90年代就开始了试题库系统的研究,并在此基础上于2001年提出了基于XML的试题标记语言QML 1.0[1]。英国在这方面采取的行动也非常令人瞩目,它从1989年开始,在全国范围的所有高等学校中实施一项称之为“计算机用于教学创新”(Computers in Teaching Initiative,简称CTI)的庞大项目,其目标是要通过计算机、多媒体与远程通讯技术的结合(在当前就是通过Internet),实现对高等院校所有学科(包括文科、理科、医学、环境等各个领域)从教学模式、教学内容到教学组织形式的彻底变革。如英国Bristol University在90年代就致力于面向本科生的基于网络的数学考试系统TAL(Test and Learn Examination System)[2]的开发;从1996年到1998年又进一步对TAL进行拓展,使它能够支持其他学科如化学等科目的在线考试;在1998年到1999年期间,TAL的开发主要针对利用网络的便利条件来对数据库中的试题进行添加和修改。

1.2 WME[3]

美国Kent大学ICM研究所近年来一直致力于WME(Web-based Mathematics Education)系统的研究和开发,WME是分布式的现代网络数学教育系统,在系统中提供由数学专家开发的数学课程及动态化的教学实例和各种数学教育资源,各个学校或其他教育单位可以建立自己的WME网站,这将成为WME分布式系统中的一个节点。学生可以通过浏览器使用本校的WME资源,也可以访问Internet上的其他WME共享资源。WME中的教育资源主要来自三种途径:(1)WME系统中由数学教育专家组开发的数学教育资源;(2)本地教师利用系统集成的WME管理和开发工具开发所需的课程内容;(3)其他节点中上的数学教育资源。图1显示了WME的总体特征。

WME三个最大的特点是交互性、完整性、灵活性。交互性指WME所提供的课程内容动手操作性强,并且具有寓教于乐,操作简单,功能强大等特点。完整性主要指WME将提供中小学的数学教育的几乎全部内容,对同一内容还提供不同的各地名师讲解的课程内容。灵活性主要指WME的网站的信息、教学内容都是可以制定和修改的,由于不同学校、不同教师、不同学生群体,教学重点和方法是不同的,WME提供了学校层次、班级层次和页面的自由制订功能。通过WME系统,学生可以更加深入的理解所学的知识,扩大知识面,使自己所学的知识得到练习、巩固和提高。

2004年底,兰州大学ICCM(Internet Computing & Computer Mathematics)实验室开始与美国Kent大学ICM研究所开始WME项目合作,开始我们的主要任务是将Kent大学ICM研究所正在研究和开发的WME先锋系统在我国进行汉化和推广。在汉化的过程,我们发现由于中美文化的差异,以及不同教师对教学内容要求也不一样,WME先锋系统中很多内容不能直接翻译成中文,而是应该根据不同地区,不同学校,不同教师的要求不同,可以由教师自己设置及开发自己的教学内容,我们提出了在WME课程结构中,除原有的TM,TLP,Vsec外,应该将一个课程内容分为多个PU,TU,IU,QU,对于不同的Unit,教师可以进行制定。

1.3 网格技术在教育信息化领域的应用

在教育信息化领域,一直有资源共享共建的呼声,人们呼吁要减少重复建设,扩大散落在各地各处各个学校的特色资源的共享范围。网格技术的发展,为教育领域的资源共享提供了有力的技术支持。已经有厂商和研究机构在关注如何利用网格实现基础教育信息化的创新性应用。由中国人民大学附属中学、国家图书馆、清华大学、北京理工大学等共同承担的 “基于IPV6的国家基础教育网格应用示范”项目课题[4],就是要在基础教育领域应用网格技术。在我国推广WME的过程中,我们发现另外一个重要的信息,在我国,由于高考升学压力的缘故,在基于Web的数学教育中,教师更关心学生测试和评估。于是,我们对WME DMAD[5]及其他现有的试题库进行了研究和分析,在此基础上我们提出建立数学试题网格系统。

我们应当看到未来Internet网络教育的发展方向,结合国内教育特点,加大对试题网格的研究力度,促进数学试题网格系统在信息化教育中发挥巨大作用。

第二章 网格研究现状

2.1 网格的概念

网格自上世纪九十年代中期被提出以来,得到迅速的发展,被称作“英特网的第三次革命”。网格的最重要的特点是资源共享并利用这些共享的资源来解决问题。这些资源包括CPU资源、存储资源、网络资源、外设资源、软件资源以及知识资源等等。网格是一种新兴的资源共享技术,它利用现有的网络基础设施、协议规范、Web和数据库技术,为用户提供一体化的智能信息平台,其目标是创建一种架构在OS和Web之上的基于Internet的下一代资源共享平台和软件开发基础设施。随着网格研究的深入,与其相关的应用课题研究的意义也变得越来越重要。当前网格应用主要集中在计算网格、数据网格、语义网格、信息网格、知识网格、服务网格以及着重于家庭网络的设备网格等方面[6]。

2.2 网格产生的背景

网络与计算机的发展使网格有了产生和发展的可能。网络的发展开始于20世纪70年代初,1969年美国国防部高级研究计划署(ARPA,Advanced Research Projects Agency)建立了ARPANet。 1973年ARPANet扩展成为国际互联网Internet。1998年在美国一种新的主干网络((vBNS) Very Highspeed Backbone Network Service)建立起来,它连接了大概100多家研究机构,随之,连接美国、加拿大、新加坡、台湾以及韩国等国家和地区的网络的建立也为网格的出现提供了基础。

与网格计算发展有关的另一要素是计算机机群计算形式。计算机技术的发展也经历了许多阶段,每一个阶段都有一种形式的计算机占主导地位。特别是在90年代以后,微机成为一种广为普及的计算机类型,而微机性能的提高、高速系统级网络计算的发展,以及成熟和免费操作系统的出现,为机群计算形式提供了基础。由此而知,计算机每一个发展的过程都将大大提高计算机的普及程度和计算机的性能,为更大、更复杂的问题的解决提供了支持。

网格是借鉴电力网(electric power grid)的概念提出来的,建立网格的最终目的是希望用户在使用网格计算和网格资源的时候,就如同现在使用电力一样方便。在使用电力的时候,不需要知道它是从哪个发电站送出来的,也不需要知道它是通过什么样的发电机产生的,所使用的是一种统一形式的“电能”,而网格发展之初就是要提供给使用者的也是一种与地理位置无关、与具体的计算设施无关的通用的计算能力。

2.3 网格的特点:

(1)分布性 网格上的各类资源(硬资源和软资源)通常类型复杂、规模较大、跨越地理范围较广。

(2)共享性 尽管网格资源是分布的,但是它们却是可以充分共享的。

(3)自相似性 网格的局部和整体之间存在着一定的相似性,局部往往在许多地方具有全局的某些特征,而全局的特征在局部也有一定的体现。

(4)动态性 随着时间的推移,网格拥有的资源或功能可以增加或减少。

(5)异构性 网格可以包含多种异构资源,包括跨越地理分布的多个管理域。

(6)多级管理域网格系统的资源通常属于不同的机构或组织,并且使用不同的安全机制,因此既需要各个机构或组织对其拥有的资源有自主的管理能力,又需要他们共同参与解决多级管理域的问题,以实现资源共享和互操作。

2.4 网格的发展

网格是一种正在发展的技术,对其发展阶段的划分也有几种观点,本文将网格的发展划分为以下三个阶段:

第一代网格大致是1995年以前的网格,典型代表是FAFNER和I-WAY两个项目,这个时期的网格都是把超级计算机节点连接起来,为高性能应用共享计算资源。

第二代网格的大致时间是从1995年到2000年,典型代表是Globus和Legion等项目。这个时期建立了面向协议和模式的网格体系结构,解决了网格的异构性、可扩展性、适应性、安全性等问题,可实现各种资源的共享。

第三代网格的典型代表是2002年2月发布的开放网络服务结构(OGSA)把互联网和网格结合起来,建立资源一体化和服务一体化的网格结构。

2.5 网格体系结构

1999年图灵奖得主微软研究院的吉姆格瑞(C James.Gray)提出计算机研究应该转向“革命性体系结构”[5]。

美国国家科学基金会认为高性能计算机发展正处于重要的转型期,并于2001年就启动了一系列项目,鼓励“革命性体系结构概念”的研究,重点包括如何用好摩尔定律带来的硬件进步,提高计算机的效率和生产力;面向服务的或高生产力的高性能计算机体系结构、节点、处理器芯片、系统软件、编程语言;可信计算与自主计算(自律计算)技术;可重构技术等。美国国家科学基金会最终确定了Cyberinfrastructure项目的重要性和可行性,将于2005年国家每年投资6-10亿美元正式启动,网格就是该项目的重要内容。

网格体系结构是关于如何建造网格的技术,包括对网格基本组成部分和各部分功能的定义和描述,网格各部分相互关系与集成方法的规定,网格有效运行机制的刻画。显然,网格体系结构是网格的骨架和灵魂,是网格最核心的技术,只有建立合理的网格体系结构,才能够设计和建造好网格,才能够使网格有效地发挥作用。

在普通用户看来网格就是虚拟的大计算机,但对于如何构造这个虚拟的大计算机,到目前为止人们对网格理论基础、网格应用、编程语言以及网格“革命性体系结构问题”等的认识还远未统一。现有的网格理论与实践都主要针对科研领域,对网格如何发展为面向社会信息基础设施的理论和技术研究还很不充分,尤其没有网格信息基础设施理论模型、“即插即效”网格设备、“即用”的网格应用、“普适计算”模式、网格编程语言、“网格革命性体系结构”等专门研究的实现。

网格研究指导网格实践,开展网格相关方面的理论研究对网格发展及社会网格信息基础设施建设意义重大。

2.5.1 五层沙漏模型(层次协议结构):

目前影响比较广泛的网格体系结构是五层沙漏模型,沙漏模型是Ian Foster等人在Globus项目最初的时候提出的,自底向上分别是构造层、连接层、资源层、汇聚层、应用层。构造层连接底层的本地资源和上层,主要是用来为上层访问本地资源提供统一接口,屏蔽各地资源的异构性;连接层定义了核心网格事务处理所需的通信和认证协议,提供了加密的安全机制,用于识别用户和资源;资源层的协议调用构造层的功能以访问和控制本地资源;汇聚层建立在资源层和连接层形成的协议瓶颈之上,主要负责多种资源的共享;应用层存在于虚拟组织中,是根据任一层次定义的服务构造的。

在五层沙漏结构中,最重要的思想就是以“协议”为中心,强调服务与应用程序接口(API,Application Programming Interfaces)和软件发展工具(SDK,Software Development Kits)的重要性。

五层沙漏结构根据该结构中各组成部分与共享资源的距离,将对共享资源进行操作、管理和使用的功能分散在五个不同的层次,由底向上分别是构造层、连接层、资源层、汇聚层和应用层。越向下层就越接近于物理的共享资源,越向上层就越接近于抽象资源的表示。

五层沙漏结构的底层是构造层(fabric)。构造层面对的是一个个具体的物理(也可以是逻辑的)资源,它通过对这些局部资源的管理,向上层提供对这些资源的管理和控制界面。构造层的资源可以是一个很复杂的系统,如果构造层资源提供的功能越丰富,则构造层资源可以支持的高级共享操作就越多。构造层应该实现的基本功能包括查询机制(发现资源的结构和状态等信息)、控制服务质量的资源管理能力等。

构造层上面是连接层(connectivity)。主要是为下层的物理资源提供安全的数据通信能力,这是资源之间进行互操作的前提,连接层使得孤立的单个资源之间建立了联系。连接层的基本功能就是实现相互的通信。它定义了核心的通信和认证协议,利用这些通信协议允许在构造层的资源之间交换数据。

连接层之上是资源层((resource)。它反映的是抽象的局部资源的特征。资源层建立在连接层的通信和认证协议之上,它完全只考虑单个的局部资源,因此忽略全局状态和跨越分布资源集合的原子操作。

资源层上是汇聚层(collective)。它完成的功能是将以单个资源形式表现出来的资源集中起来,协调解决多个资源之间的问题。由于汇聚层的协议和服务描述的是资源的共性,因此并不涉及资源的具体特征。而且由于汇聚层是建立在资源层和连接层形成的协议瓶颈之上,所以不需要在资源上再强加其它的新要求。

最上面的是应用层(application),它和资源的距离最远,所关心的是有什么样的资源可以由下面提供给虚拟组织,解决不同虚拟组织的具体问题。应用层是在虚拟组织环境中存在的,是根据在任一层次上定义的服务来构造的。

五层沙漏结构的一个重要特点就是沙漏形状。其内在的含义就是因为各部分协议的数量是不同的,对于其核心的部分,既要能够实现上层各种协议向核心协议的映射,同时也要实现核心协议向下层其它各种协议的映射。核心协议在所有支持网格计算的地点都应该得到支持,所以核心协议的数量不能太多,因此核心协议就成为协议层次结构中的瓶颈。在五层沙漏结构中,资源层和连接层共同组成这一核心的瓶颈部分,而整个结构就形成了一个两头粗中间细的类似沙漏形状的结构(如图3)。这种结构可以和微内核的操作系统进行类比,一个小的核心有利于移植,也比较容易实现并得到支持。

五层沙漏结构是一种影响广泛的结构,其主要特点是简单,主要侧重于定性的描述而不是具体的协议定义。

对于不同的网格应用来说,它们在构造层使用的资源可能是有所不同的,但是到了连接层和汇聚层使用的就是几乎完全相同的服务,而到了汇聚层以上它的功能又分散开来,这样正好符合沙漏结构的瓶颈之说,那么在对具体应用时,只要在这个框架下进行裁剪,就可以方便的实现各自的具体功能了。

2.5.2 OGSA[6][7]开放网格体系结构

美国Argonne国家实验室Globus项目负责人Ian Foster,看中并利用了Web Services的技术突破性,在原有沙漏网格体系结构的基础上设计出著名的OGSA网格体系结构。

如果说五层沙漏结构是以“协议”为中心的“协议结构”,那么OGSA就是以“服务”为中心的“服务结构”。这里的服务是指具有特定功能的网络化实体。在OGSA框架中,将一切都抽象为服务,包括计算机、程序、数据、仪器设备等。这种抽象将资源、信息、数据等统一起来,十分有利于通过统一的标准接口来管理和使用网格。

为了使服务的思想更加明确和具体,OGSA定义了“网格服务”的概念。网格服务是一种Web Service,虽然Web Service提供一种基于服务的框架结构,但是Web Service面对的一般都是永久服务,而在网格应用环境中,大量的是临时性的短暂服务,所以OGSA结合Web Service,提出了网格服务,用于解决服务的发现、动态服务的创建、服务生命周期的管理等与临时服务有关的问题。OGSA是第一个明确提出的基于Web services的网格体系结构,具有理论及概念价值。该结构把网格计算从科学与工程计算应用领域扩展到更广泛的以分布式系统服务集成为主要特征的商业等应用领域,建立了网格服务的基本概念。它是面向服务的网格系统结构,主要突出从网格用户的角度看上去的网格系统结构是什么样子。OGSA的三个主要组件是开放网格服务基础结构、OGSA服务和OGSA模式。OGSA将整个网格看作是网格服务的集合,这个集合具有很强的动态性和可扩展性,体现出网格的动态特性。OGSA把所有的资源都包装成服务,把网格中的各种资源的异构性隐藏起来,用服务这种统一的实体提供共享接口。GSH(Grid Service Handle,网格服务句柄)与网格服务实例相对应,GSH只是一个URI形式的名字,没有携带访问网格服务实例所需要的信息,要访问一个GSH对应的网格服务实例,必须解析GSH得到相应的GSR(Grid Service Reference,网格服务参照)。

OGSA的虚拟组织需要建立一个注册服务和一个句柄映射服务,将该组织内的各种资源包装成服务,并把这些服务发布到注册服务可以提供查询的注册中心[5]。网格用户通过注册服务访问注册中心所有服务工厂的信息和己经创建的服务实例的信息。用户通过请求特定的服务工厂创建一个实例,并按照服务接口描述把数据传递给该实例就可以开始访问服务实例,获得服务提供的功能。

OGSA架构由四个主要的层构成:

图4 OGSA的主要架构

(1)资源——物理资源和逻辑资源。构成网格能力的资源并不仅限于处理器。物理资源包括服务器、存储器和网络。物理资源之上是逻辑资源,它们通过虚拟化和聚合物理层的资源来提供额外的功能。通用的中间件,比如文件系统、数据库管理员、目录和工作流管理人员,在物理网格之上提供这些抽象服务。

(2)Web服务,以及定义网格服务的开放网格服务基础架构(OGSI:OpenGrid Services Infrastructure)扩展。OGSA架构中的第二层是Web服务。这里有一条重要的OGSA原则:所有网格资源(逻辑的与物理的)都被建模为服务。OGSI规范定义了网格服务并建立在标准Web服务技术之上。

OGSI利用诸如XML与WSDL这样的Web服务机制,为所有网格资源指定标准的接口、行为与交互。不仅如此,OGSI还进一步扩展了Web服务的Web服务层定义,提供了动态的、有状态的和可管理的Web服务的能力,这在对网格资源进行建模时都是必需的。

(3)基于OGSA架构的服务。Web服务层及其OGSI扩展为下一层提供了基础设施:基于架构的网格服务。全球网格论坛目前正在致力于在诸如程序执行、数据服务和核心服务等领域中定义基于网格架构的服务。随着这些新架构的服务开始出现,OGSA将变成更加有用的面向服务的架构。

(4)网格应用程序。随着时间的推移,一组丰富的基于网格架构的服务不断被开发出来,使用一个或多个基于网格架构的服务的新网格应用程序也开始出现。这些应用程序构成了OGSA架构的第四个主要的层。

在OGSA的结构中,OGSA的两个主要逻辑组件是Web服务加上OGSI层和基于OGSA架构的服务层。目前,普遍认为网格是网络服务与网格资源的聚合体,OGSA是以服务为中心的体系结构,并抽象出网格资源,导致其不能作为建立网格的标准体系结构。

2.5.3 WSRF

WSRF(WS-Resource framework,网络服务资源框架)已超越了OGSA,成为研究的热点,WSRF是根据特定的消息交换和相关的XML模式来定义Web服务资源(WS-Resource)方法的描述规范。这些规范定义了网络服务和一个或者多个有状态的网格资源之间的关联(association )方法,描述了定义资源状态的视图,以及网络服务与网格资源( WS-Resource)相关联的总的类型定义的方法,描述了如何通过网络服务接口来访问网格资源( WS-Resource)的状态,定义了网格资源(WS-Resource)分组(grouping)和寻址(addressing)相关的机制。它推动、引进并总结了五个独立的规范文档之间的相互关系,它们都是标准化定义,包括:网格资源属性( WS-ResourceProperties )、网格资源生命期管理(WSResourceLifetime )、可更新的网络服务引用( WS-RenewableReferences)、网络服务组(WS-ServiceGroup )、基本错误服务〔WS-BaseFaults )以及能够如何支持用于异步通知(asynchronous notification)的网络通知服务机制( W S-Notification ),具体描述如表

Name

Description

WS-ResourceProperties

Describes associating stateful resources using Web services, and how elements of publicly visible properties of a resource are, retrieved, changed, and deleted.

WS-ResourceLifetime

Allow a requestor to destroy a WS-Resource either immediately or at a scheduled future point in time.

WE-RenewableReferenes

Annotate a WS-Addressing endpoint reference with information needed to retrieve a new endpoint reference when the current reference becomes invalid.

WS-ServiceGroup

Create and use heterogeneous by-reference collections of Web services.

WS-BaseFault

Describes a base fault type used for reporting errors.

WS-Notification

Standard approaches to notification using a topic-based publish and subscribe pattern

表1 WSRF的六个独立组成部分

2005年1月31日发布的Globus Toolkit 4(GT4),实现了WSRF和WSN标准。GT4提供API来构建有状态的Web服务,其目标是建立分布式异构计算环境。所有知名的GT3协议都被重新设计为可以使用WSRF。并且GT4也在其中增添了一些新的Web服务的组件。

2.6 网格相关技术

2.6.1 XML语言[8][9]

XML是专为Web应用而设计的SGML(standard generalized markup language)的优化子集。同SGML类似,XML是一种元标记语言,使用者可按需创建标记,XML的可扩展性就在于此。这些标记通过XML DTD(Document Type Definition)来加以定义,DTD是一系列关于元素类型、属性、实体和符号的定义。

1. XML的特点

(1)可扩展性。XML是设计标记语言的元语言,而不是HTML这样的只有一个固定标记集的特定标记语言。

(2)自描述性。XML文档通常包含一个文档类型声明,不仅人能读懂XML文档,而且计算机也能处理。XML文档中的数据可以被任何能够对XML数据进行解析的应用所提取、分析和处理,并以所需格式显示。XML表示数据的方式真正做到了独立于应用系统,并且这些数据能重用。

(3)异构性。正是因为XML具有自描述性和可扩展性,所以XML可以作为一种通用格式,在异构系统之间进行数据传递。

(4)结构性。数据存储格式不受显示格式的制约。一般包括三个要素:数据、结构以及显示方式。XML使用DTD(文档类型定义)规定一套关于标记符号的语法、语义规则,比较准确地描述文本资料的内容、含义、结构、特征和关系等信息(称为元资料),而把资料的外观表现形式交给样式表处理,这样就把资料的内容和其表现形式合理地隔开,从而大大提高XML资料的可理解性、可交换性和重用性。

XML语言已成为一种新的数据交换标准。它具有良好的数据存储格式、可扩展、高度结构化等特性。当需要与不同的数据源进行交换时,可通过XML解决数据的统一接口问题;当需要把同一数据以不同的方式表现出来,可通过XML使用户界面更具有个性化、风格化;当对同一数据进行不同要求编辑、增减来满足个性需求时,可以通过XML处理数据,生成满足个性化要求的不同的数据文档。

2. XML功能

由于XML有以下功能和优点,使得XML技术成为开发数学试题网格的基础。

XML具有良好的、统一的文档格式。常规的半结构化和非结构化的文档,比如Word格式、Email、Web页面等,不便于统一存储、搜索、管理和浏览。而XML文档是一种树型结构的文档,可以把某一类型所有文档的共同属性,如标题、作者、段落、图片等,抽象提取出来,定义成格式良好的 DTD,把每个属性的内容放到XML的DTD相对应的节点中去。

通常对于XML存储到数据库有两种不同的方式:直接模式,将整篇文档存到数据库text类型的字段中;映射模式,定义好XML文档的DTD,通过DTD将XML文档的每个节点映射到数据库的相应字段中;通过以XML来传递和显示,以数据库来存储,这样的一套方法可以解决知识管理中对于半结构和非结构化文档的统一存储、管理和浏览这一系列问题。

内容与表现相分离。在Web上显示数学试题,无非有两种方式:一是HTML,一是XML。采用HTML的困难在于HTML是内容和表现结合在一起的。而XML是内容和表现相分离的,XML负责存放文档的内容,XSL负责相应的XML的显示。

便于搜索。XML正好是一种结构化的数据,使得网格应用能够很容易理解这些数据的含义,通过节点内容和属性进行搜索。

代表着未来的发展方向。最近发布的数据库服务器纷纷强调很好地支持了XML,甚至从网络传输协议来看,最近由W3C、微软、IBM 和SAP共同制定的SOAP协议(简单对象访问协议),同样也是以XML为核心的,其实质就是用XML来编码HTTP的传输内容。我们有理由相信今后未来无论是在Internet还是Intranet上传递的都将是XML文件。因此采用目前先进的技术来构建的基于XML的数学试题网格系统,应该具有很好的向后兼容性。

2.6.2 SOAP 协议[10]

SOAP(simple object access protocol)是基于W3C为Internet分布式计算制定的远程过程调用(RPC)规范[11]。SOAP本身是“一个没有发明任何新技术的技术”。简单的说:SOAP=HTTP+XML。SOAP简单地用XML来编码HTTP的传输内容,把XML的使用代码化为请求和响应参数编码模式,并用HTTP作传输。SOAP以XML形式提供了一个简单、轻量的用于在分散或分布环境中交换结构化和类型信息的机制。SOAP在Internet或者Intranet上通过标准的XML协议和信息格式来发布和访问商业应用服务。使用SOAP可以在Web站点放置可编程的元素,发布能满足特定功能的在线应用服务。

SOAP本身并没有定义任何应用程序语义,如编程模型或特定语义的实现。实际上它通过提供一个有标准组件的包模型和在模块中编码数据的机制,定义了一个简单的表示应用程序语义的机制。

SOAP 包括三个部分:

1.SOAP封装。结构定义了一个整体框架用来表示消息中包含什么内容,谁来处理这些内容以及这些内容是可选的或是必需的。

2.SOAP编码规则定义了用以交换应用程序定义的数据类型的实例的一系列机制。

3.SOAP RPC表示定义了一个用来表示远程过程调用和应答的协定。

三个部分都作为SOAP的一部分一起描述,但它们在功能上是相交的。特别的,封装和编码规则是在不同的名域中定义的,这种模块性的定义方法增加了简单性。在SOAP封装,SOAP编码规则和SOAP RPC协定之外,这个规范还定义了两个协议的绑定,描述了在有或没有HTTP扩展框架的情况下,SOAP消息如何包含在HTTP消息中被传送。SOAP信息结构如图 所示。

图5 SOAP信息结构

2.6.3网格支撑基础--Web Service技术

1.Web Service的概念

Web Service[12]是一种具有下列功能的软件组件:

(1)可以通过SOAP接口来进行访问。

(2)使用WSDL文档形式描述接口。

由于XML在分布式应用之间往往被广泛用于作为信息交换的方式,所以Web Service的基础就是关于XML协议方面的工作。在Web Service中几个重要的协议标准除了SOAP,WSDL,UDDI外,还有WS-Inspection。

SOAP是扩展的XML消息协议,它形成了Web Service的基础。SOAP提供一种简单一致的机制支持一个应用程序向另一个应用程序发送XML消息协议,它是一种单向的传送。任何应用都能以发送者或是接收者的身份参与信息的交换。SOAP消息也可以组合来支持多种通信行为,而它本身只定义了消息结构和很少几条消息处理规则。它完全独立于潜在的传输协议,所以SOAP消息可以通过HTTP、JMS或者邮件传输协议进行交换,目前使用最频繁的就是HTTP协议。

Web Service提供永久的无状态服务,实现了程序间远程访问透明性。Web网页的普及与Internet的发展相辅相成,在技术上很好的实现了分布于全球范围的网页定位与网页间相互链接,各种网页查找技术与方法正不断涌现并高速发展。如何把这种Web网页定位与链接技术扩展应用到远程程序访问中,IT业界推出了Web Service技术。由IBM及微软等工业巨头们标准化的Web Services技术实现了Web Service的定位、访问与管理,将发展为网格社会基础设施标准。

一个网络服务就是一个可以被URI识别的软件应用,它的接口和绑定可以被XML(Extensible Markup Language)描述和发现,并且可以通过基于Internet的协议直接支持与其他基于XML消息的软件应用的交互。Web Services是W3C的标准,是许多工业提议的基础,如Microsoft的.NET,IBM的“computing on demand”。与网格有关的三个网络服务标准分别为WSDL ( Web Service Description Language)、UDDI(Universal Description Discovery and Integration)和SOAP(Simple Object Access Protocol )。其中WSDL是描述网络服务接口与访问方法的XML文档,复杂服务可以由多个服务复合,它是网络服务的接口定义语言。最近成立的WS-I组织将致力于网络服务的互操作机制。

其整体架构如下图:

WSFL

服务流

安全

可管理性

服务质量

Static UDDI

服务发现

Direct UUI

服务发布

WSDL

服务描述

SOAP

基本XML的消息

HTTP、FTP、IIOP、SMTP等

网络

图6 Web Services的整体架构

与网络分层结构相同,上一层需要下一层的支持,而安全性、可管理性、服务质量则需要在各个层次都有体现。通过这样一个层次分明的架构,Web Services希望达到实现动态应用集成的目标,将电子商务等应用推向智能化和更加实用的阶段。

Web Services描述了一种重要的分布式计算技术,与DCE, CORBA, JAVA RMI等方法不同,它更强调基于单个Internet标准,即XML来解决异构分布计算的问题。网络服务定义了一种用于描述被访问的软件组件、访问组件的方法以及找到网络服务提供者的发现方法的技术,网络服务不倾向于任何特定的编程语言、编程模型以及系统软件。

Web Services的体系结构中包括三个角色:服务提供者(Service Provider)、服务请求者(ServiceRequestor)和服务注册器(Service Registry)。角色之间的关系及其操作如图7 所示。

典型的应用过程分四步:

第一步,服务提供者用程序设计语言实现并部署服务;

第二步,服务提供者通过“WSDL十UDDI API”的方式进行服务发布;

第三步,服务请求者通过“UDDI API+参数”进行服务发现;

第四步,服务注册器(也称服务中介者)利用WSDL返回请求,服务请求者与服务提供者通过绑定实现。

图7 Web Service 的运行模式

2.网格服务与Web Service的比较

网格服务和Web Service之间既有相同之处,又存在一定的区别,两者之间的关系可以从下面几个方面来比较。

(l)网格服务仍是一种Web Service。它提供了一组接口,这些接口的定义明确并且遵守特定的惯例,解决服务发现、动态服务创建、生命周期管理、通知等问题。具备了原来Web Service的所有有利因素。

网络服务描述语言(WSDL,Web Services Description Language)提供的标准机制支持在异构的动态网格环境里,用于注册和发现接口的定义和端点实现的描述,以及基于特定的接口绑定动态产生代理。网格服务基于Web Service机制,所以可以开发大量的工具和服务。

(2)Web Service针对永久服务,而网格服务更支持临时服务。Web Service解决了发现和激发永久服务的问题。但是,在网格中大量的是临时服务,因此OGSA对Web Service进行了扩展,提出了网格服务的概念。网格服务可以支持临时服务实例,可以动态的创建和删除服务。

OGSA专门定义了一类网格服务,用于实现创建网格服务实例的Factory接口。Factory接口并不规定网格服务是如何创建的,它在具体的运行环境中,Factory接口根据运行环境所提供的标准机制来创建并管理新的服务实例。在运行环境中可以详细定义服务的实现,但是实现的细节对于OGSA的服务请求者来说是透明的。

(3)网络中的工作能力。Web Service的核心是在大的异构网络上将各种应用连接起来,借助于Web标准统一描述、发现和集成协议(UDDI, Universal Description Discovery and Integration), WSDL和可扩展标志语言/简单对象访问协议(XML/SOAP, Extensible Markup Languagel/Simple Object Access Protocol)等,将Internet从一个通信网络发展到一个应用平台。一旦Web Service要在更大的范围内得以实现,那么应用连接标准的制定就会成为一个突出问题。

由于Web Service一开始就设计为在整个异构网络上工作,当前标准还没有考虑其它方面的复杂性,而网格已经解决了这些问题。比如,不同操作系统之间的通信、访问基于不同文件系统的文件等问题,因此网格服务给Web Service提供了下层的协议支持。网格服务中利用一些高级的协议,可以使Web Service可扩展、更安全、更可靠、而且具有高性能。

在Web Service中与网格服务有关的三个标准分别是SOAP、 WSDL和UDDI。

(4)网格服务与Web服务之间的界限逐渐模糊。由于Web服务本身的一些特性,所以用它来开发网格系统就具有了一些无可比拟的优势,比如:增强的兼容性;通过消除数据交换的复杂性,使跨平台开发成为可能;很容易部署在己有的Web服务器上:很容易通过已有的HTTP安全机制与防火墙的支持来提供安全性;通过Intranet或Internet访问网格组件的难度降低,这样就使得通信变得容易,可访问性增强等等。因此,Web服务已经逐渐成为新的网格服务标准的一个组成部分。

2.7 Globus

Globus项目发起于20世纪90年代中期,是美国Argonne国家实验室等科研单位的研发项目。其最初的目的是希望把美国境内的各个高性能计算中心通过高性能网络连接起来,方便美国的大学和研究机构使用,提高高性能计算机的使用效率。

随着对Globus项目的深入研究,它的目标也进一步扩展。通过Globus项目可以方便地对地理上分布的研究人员建立虚拟组织,进行跨学科的虚拟合作。而最近,Globus项目又把在商业计算领域中的Web Service技术融合进来,希望不仅仅局限于科学计算领域,还能够对各种商业应用进行广泛的、基础性的网格环境支持,实现更方便的信息共享和互操作,从而对商业模式、人员的工作方式和生活方式产生深远的影响。

Globus Toolkit工具包来源于Globus项目,是一个开放源码的网格的基础平台,基于开放结构、开放服务资源和软件库。Globus Toolkit作为一个软件工具集,主要是用来解决网格环境中工具、服务和应用开发的关键技术问题。它提供了一个模块化的服务包,实现了标准的网格协议和API。同时,它是一种基于社团的、开放结构、开发源码的服务的集合,也是支持网格与网格应用的软件库。Globus Toolkit支持网格和网格应用,目的是为构建网格应用提供中间件服务和程序库。Globus Toolkit具有较为统一的国际标准,有利于整合现有资源,也易于维护和升级换代。现在,一些重要的公司,包括IBM和微软等都公开宣布支持Globus Toolkit。目前大多数网格项目都是采用基于GlobusToolkit所提供的协议及服务建设的。

Globus随着体系结构的变化经历了几次飞跃, 变得越来越完善,目前Globus toolkit的最新版本为4.0,即GT4。GT4 提供API来构建有状态的Web服务,其目标是建立分布式异构网格环境,它由安全( Security)、数据管理(Data Management)、实施管理( Execution Management)、信息服务( Information Services)和公共运行环境(Common Runtime)等5个组件集组成。组件种类分为Web服务组件和非Web服务组件两大类。安全组件集负责安全认证、身份鉴别、证书管理、安全委托和单点登录等,有公共认证CA、授权认证AA、代理Delegation、证书管理CM,CM包括静态的SimpleCA 和动态的Myproxy;数据管理组件集负责数据传送和复制,从底层到高层有网格文件传输协议GridFTP、可靠定位服务RLS、可靠文件传输RFT和数据复制服务DRS等;实施管理组件集负责任务调度,主要有网格资源分配管理GRAM和远程控制GTP 等;信息服务组件集负责系统信息数据收集和监控管理,采用监控发现服务MDS协议,包括Web监控发现服务WebMDS、索引Index、触发器Trigger等;公共运行环境组件集是公共基础运行环境,包括Python、Java、C语言的WSCore和CCL 等。由于数据网格应用的需求迫切,Globus系统在原有面向计算网格的基础上增加了数据网格的功能,对数据的高速传输、数据复制、数据复制的选择、元数据管理等进行了研究和实现, 成为数据网格应用的开发平台。Globus toolkit4.0体系结构如图8所示[13]。

图8 Globus Toolkit 4 体系结构

Globus Toolkit4.0(以下简称GT4)是WSRF(Web Services resource framework)的第一个参考实现。GT4 提供API 来构建有状态的Web 服务,其目标是建立分布式异构计算环境。所有知名的GT3 协议都被重新设计为可以使用WSRF,并且GT4 也在其中增添了一些新的Web服务的组件。

WS Core是GT4 层次结构中的核心,WS Core是对两个新标准的实现:WSRF 和Web Services Notification(WSN)。它包括参考实现(reference implementation)、安全基础设施(security infrastructure)和系统级服务(system-level services),提供了SOAP安全、传输层安全、相互认证、单点登录服务认证等功能,其新特性包括基于Apache Tomcat的JNDI注册项、HTTP/1.1 客户机服务器支持、进行WS-Addressing转换的URI解析器服务等。并且,GT4 还提供了一组使用C编写的基本工具集:C WSCore,可以用该工具集来创建启用WSRF的Web服务和客户机对WS-Resource和WS-Notification的确认。

GT4客户端的实现是基于JAX-RPC的客户端模式,Globus使用标准的JAX-RPC客户端编程模型和AXIS客户端框架的网格服务客户机。GT4服务端框架主要包括Web服务引擎和GT4服务容器二个组件。GT4使用由Apache AXIS提供的Web服务引擎,该引擎运行在J2EE Web容器内,并提供一个SOAP 消息监听者(AXIS servlet)。它负责处理普通的Web服务行为,SOAP请求/响应进行序列化和反序列化、JAX -RPC句柄调用和网格服务配置。GT4容器用来将应用和服务运行时的细节分离开,将消息分发给对应的服务实例,以管理网格服务的状态和生命期。

2.8 OGSA-DAI[14]

OGSA-DAI即开放网格服务架构数据访问和集成(Open Grid Services Architecture-Data Access and Integration),它符合基于OGSA的网格标准,并在Globus Toolkit上进行开发。支持DB2、Oracle、,Xindice、 MySql等数据库管理系统。

OGSA-DAI项目致力于建造通过网格访问和集成来自不同的孤立数据源的中间件。这个项目是由UK Database Task Force提出构想。OGSA-DAI的目标是通过网格进行数据访问和集成提供统一的服务接口。通过OGSA-DAI的接口,不同的、异构的数据源和资源被视为逻辑上的单一资源。它还允许这些资源在OGSA的框架内进行集成。OGSA-DAI网格服务提供基本的操作来完成复杂的操作,比如数据联盟、在虚拟组织进行分布式查询,但是它隐藏了如数据库驱动、数据格式和从客户端的传输机制等技术细节。这个目标通过提供高效率的网格中间件的标准组件执行来实现的。这些标准组件用来访问和控制数据信息和资源。开放网格服务架构— 数据存取和集成(OGSA-DAI)使得现有数据资源,如关系数据库和XML数据库能够通过扩展活动较容易地集成到网格环境中。

OGSA-DAI的体系结构如图9所示。

图9 OGSA-DAI体系结构

网格数据服务(Grid Data Service,GDS ):通过这项服务可以访问某个数据资源(关系数据库或XML数据库,甚至是存储在普通文件中的数据)。

网格数据服务工厂(Grid Data Service Factory ,GDSF ):这项服务用于创建二个GDS实例,来访问特定的数据资源。

服务组注册器(Service Group Registry,DAISGR):这项服务用于找到所需要的GDS,也可以通过它找到用于创建所需GDS的工厂。

OGSA-DAI可提供三种服务:DAISGR,GDSF,GDS。三者间的关系见图10。DAISGR是一个专用的注册服务,与OGSI兼容的服务都可以将它的状态数据(如:服务名称、生命周期、所处位置、连接的数据源等)在这里注册,通过注册可以让客户端了解存在哪些服务、这些服务的能力以及它们所管理的数据源,网格数据服务注册可使应用程序动态找到数据库。GDSF是一个专门的工厂服务,用来表示各种数据源,或创建GDS与客户端交互访问数据源,访问特定数据源时必须先配置GDSF,使用不同的工厂来链接不同的数据源。GDS是OGSA-DAI的核心构件,支持数据访问、集成、发布。一个GDS实例由GDSF创建,并以XML文档形式接收客户端请求,经GDS处理后将结果再以XML文档形式返回给客户端。

图10 DAISGR,GDSF,GDS交互关系

2.9 数据网格[15]

数据网格的概念来自网格,它是网格技术在数据管理方面的应用和实现,即是为了建立网格环境下,透明访问异构数据资源的新的体系结构。

网格技术的研究目标是实现网络虚拟环境下高性能资源的共享和协同工作,以解决一致使用各种分散资源的问题。数据网格解决了方便高效使用分布式数据资源的问题,其研究内容主要集中在广域、异构、分布环境下如何对数据进行管理;如何从地理分布的各种异构数据资源中获取数据;并通过地域分布的协作和处理,从数据源中获取有用信息。从这个角度,数据网格可以理解为是应用程序、用户等同底层存储系统之间的中间件,它对应用程序提供一致的管理和使用存储系统的界面,对用户屏蔽广域操作的复杂性和广域网络上存储系统的异构性。

数据网格的标准化工作是由Grid Forum的Data Grid Group制定和建立的。该工作组定义Data Grid为:一个有效结合数据和计算资源的分布式系统。目前,数据网格已成为网格技术研究的热点和主要内容之一,Grid Forum将网格主要分为七个方面:Peer-to-peer、安全、调度、性能和信息服务、体系结构、数据管理、应用和编程模型。

第三章 数学试题网格

3.1 数学试题网格(MAG)的概念

数学试题网格(Mathematics Assessment Grid)的目的是构建一个数学试题资源管理的网格系统,这个系统能够将分散在各个学校、研究机构的独立及数学试题库及Internet上的数学试题资源整合为一个超大数学试题资源虚拟库。用户可以通过这个数学试题网格系统获取满足需要的数学试题并组卷。这个过程对用户来说是透明的,数学网格系统自动在分散的试题库中搜索并组建成符合用户要求的试卷。

我们开发了MAML(数学试题标记语言)做为数学试题描述的标准。在数学试题网格系统中,不同来源、不同格式的数学试题都要被自动转换成以MAML描述的标准数学试题,然后进行组卷,并反馈给用户。图11显示了数学试题网格的主要概念。

图11 数学试题网格

试题资源是数学试题网格的基础,数学试题网格系统,将会给用户提供一个虚拟的、开放的、超大的数学试题资源库。数学试题网格中试题资源的来源主要有以下三种方面:

(1)研究机构、学校、从事教育等单位已建立并投入使用的数学试题库

这些试题库是异构的,通常是存储于数据库中的。MAG采用了OGSA-DAI,提供了访问这些试题库的接口,实现了对这些异构数据库的统一访问。这些试题库通常也用专门字段来表示试题的描述信息。

(2)用数学试题标记语言MAML描述的标准试题库

现有的试题库,大多数并没有对试题的属性进行详细地描述。用MAML描述的数学试题库不仅存储了试题本身,包括题干、题支、答案,还存储了每道试题的描述信息。用MAML描述的数学试题库是一个开放式的试题库,每个学校和其他教育机构可以建立自己的试题库服务器,并负责数据库的管理与维护。加入MAG的相关机构可以把所属的试题库在数学试题网格系统进行注册,数学试题网格系统会自动从已注册的试题库中搜索满足用户需要的试题,组成试卷。这些试题库既可以是传统的关系数据库,也可以是XML数据库。

(3)利用搜索引擎技术,语义分析,信息提取等技术搜索并提取网络中的试题

现在互联网上有大量的以网页形式存储的数学试题,在MAG项目中,我们将研究搜索和选择Internet上的数学试题进行组卷的可行性。首先要开发网络爬虫,自动从Web服务器中搜索并下载数学试题,再利用语义分析、信息提取的方法将数学试题从试卷文档中分离出来,自动转换成MAML描述的数学试题,并存储到以MAML描述的标准试题库中。

3.2 MAG的体系结构

网格体系结构是关于如何建造网格的技术,包括对网格基本组成部分和各部分功能的定义、网格各部分相互关系与集成方法的规定以及网格有效运行机制的刻画。网格体系结构是网格的核心技术,只有建立合理的体系结构,才能更好地设计和建造网格并使网格更好地发挥作用。

信息网格研究的重点是底层的信息存储、表示、对外发布、呈现给用户的各层应用程序逻辑具体分层、实现和集成以及各中间层的数据存储、接口界面、通信机制等方面。在MAG中,主要研究的就是数学试题的表示、存储和显示方式、异构数据库的通一访问、作业调度策略、网格安全机制、网格的管理及评价、通信机制、应用程序接口等。

MAG从逻辑上可以分成三个层次:应用层、中间件层和资源层。

应用层

MAG portal及MAG客户端程序

中间件层

Web服务接口与Socket接口

MAG网络中间件、安全服务、用户管理、服务管理、网格管理等

资源层

数学试题库及运行各种试题库系统的节点主机

表2 MAG的层次结构

资源层:网格资源层是构成网格系统的基础,由所有的地理上分布的和从Internet任何地方接入的数学试题库系统资源组成,这些资源通过网络设备连接起来。网格资源层仅仅实现了各种数学试题库物理上的连通,但从逻辑上看,这些资源仍然是孤立的,资源共享问题仍然没有得到解决。因此,必须在网格资源层的基础上通过网格中间件来完成广域资源的有效共享。

中间件层:网格中间件层是指一系列工具和协议软件。在MAG中,中间件层的功能是屏蔽网格资源层中数学试题库系统资源的分布、异构特性,向网格应用层提供透明、一致的使用接口。它提供了核心服务,比如:资源的协作分配、存储访问、安全、认证、作业管理与调度等。网格中间层同时提供用户编程接口。MAG抽象各种数据存储方式,形成一个抽象模型,为不同的试题资源库提供统一的数据访问接口。

应用层:网格应用层是用户需求的具体体现。MAG应用层为程序员提供编程API接口与规范,同时也为普通用户提供Web方式的访问接口。应用程序通过各层的API调用相应的服务,再通过服务调用网格上的资源来完成任务。MAG将存储、检索数据集等高层用户的请求映射为异构分布式存储环境中的底层存储访问操作,实现广域范围内对数据有效的统一访问和管理。用户可以通过Web方式来使用网格,搜索试题并组卷,也可以通过用户程序来访问网格。

从服务的角度看,MAG提供了用户管理、安全管理、作业管理、网格管理、资源管理和网格应用等服务。以Web方式访问时MAG的结构如下图如示:

MAG portal

退

用户管理 安全证书管理 作业管理 网格监控

资源

管理

网格应用

Globus

数学试题库 数学试题网页 其它网格资源

Mysql服务器

Myproxy服务 任务调度服务 网格基本服务

OGSA-DAI adapter

在数学试题网格中,试题库和试题文件都是异构的,如何实现对异构数学试题库的统一访问是实现MAG的重要一步。我们利用Globus Toolkit和OGSA-DAI建立异构数据集成平台,此平台对各个异构数学试题数据源进行无缝连接, 对各个节点数据源提供数据共享注册的功能,协调管理各个节点数据源,为用户提供一个统一透明的访问接口。利用Globus Toolkit和OGSA-DAI,可以实现对网格开发工具进行封装,从而屏蔽网格理论和工具的复杂性。将若干个分布的、独立的异构数据源集成到一个特定的环境中,实现对这些多数据库系统的统一查询,屏蔽各个业务节点数据库的结构、运行环境上的差异、网络分布状况和具体的物理位置,保证各个节点数据库的独立性和数据的安全。

图13 统一访问异构试题库

3.3 构建MAG平台

OGSA 的产生使得网格不仅仅局限于科学领域。作为OGSA和WSRF的实现GT4(Globus Toolkit 4)已经成为建立网格应用的首选。该平台还在进一步的发展当中。平台仅仅是一个基础的设施,操作系统也是一种平台,因为有了丰富的应用程序,才会变得精彩。如果因特网上没有内容,那么www协议也就没有什么意义。网格平台的出现仅仅是一个基础,真正需要做的是开发基于该平台的大量的应用,而这一任务已经超出了Globus的范围。MAG是基于网格平台的一个具体应用,针对开发过程中的一些问题提出了相应的解决方案。

在MAG中,所提供的网格服务均运行在GT4所提供的网格容器中。我们的目标是利用网格来实现大规模的数学试题资源的动态共享。

3.4 MAG服务

1.MAG资源管理

信息服务是MAG资源管理的重要内容,信息服务提供各种分布式网格资源的静态与动态信息,主要有三大功能:

(1)资源发现。发现MAG中有哪些资源;

(2)提供资源状态信息。主要是MAG中资源的属性信息;

(3)提供资源调度与监控信息。主要是MAG资源的实时信息(如:当前CPU的负载、数据库的当前的访问者等)。

MAG采用分布式体系结构,普通节点周期性地向主节点注册索引信息。元数据管理是网格的重要组成部分,元数据可以分为系统元数据(systemmetadata)、副本元数据(replicametadata)和应用元数据(applicationmetadata)[15]。MAG为了实现命名的透明性,需要有效管理数量繁多的名字和属性,以及它们之间的关系;为了实现定位的透明性,需要有效管理数据集的定位信息;同时,MAG需要有效管理数据资源的有关信息。实际上,这些信息就是用于描述资源、数据集和用户的元数据。系统元数据主要是关于网格自身结构的信息,比如,网络互联情况、存储系统的容量和使用策略等。副本元数据主要是关于数据副本的信息。应用元数据主要是关于与具体应用相关的数据资源的逻辑结构或语义的信息,比如,数据的内容和结构、获取数据的必要条件等。元数据的管理包括元数据的命名、发布和访问,并为用户提供统一的访问接口。MAG中,每个节点除了存储系统元数据,每次组卷后,MAG都要存储组卷的试题信息、用户信息、试题库信息、节点信息等。

在进行资源注册时,用户需说明数据库类型、数据库名,同时,对于关系型数据库,还要说明表名、各字段的含义,以达到对异构数据库进行统一的目的。

2.安全管理

从本质上讲,Internet的安全保障一般提供下面两方面的安全服务:(1)访问控制服务,用来保护各种资源不被非授权使用;(2)通信安全服务,用来提供认证,数据保密性与完整性和各通信端的不可否认性服务。但是这两方面的的安全服务不能完全解决网格环境下的安全问题。

从用户的角度出发,最基本的问题就是如何在网格这样的复杂环境中提供给用户简单易用的安全功能。一个用户只需要在提交任务前进行一次认证,以后在任务运行时,安全机制就可以在任务申请其他资源时进行自动的认证,不需要用户再次参与认证过程,用户证书和私钥必须得到安全而灵活的保护,使用户在任何地方都可以使用自己的证书和密钥,而证书和密钥存放在安全的地方。并且,不应该直接使用用户自己的证书或密钥,通过代理的方式,使用代理证书来进行认证,这样有利于保护用户的密钥和个人信息的保护。另外,虽然资源是提供给网格虚拟组织共享的,但是资源提供者有能力决定资源的本地访问控制,从而改变资源在虚拟组织中的访问控制策略。

3.搜索试题的策略

用户在MAG中组卷时,MAG提供了多种策略供用户选择,进行试题搜索时,MAG会根据用户确定的这些策略调整作业调度方式。

(1)高可靠性策略。使用这种策略时,对高质量的试题资源库、抽中率较高的试题优先进行选择。每次组卷后,MAG都会保存所抽中试题的相关描述信息,并计算抽中试题的可靠性指数。

(2)是否避免重复。搜索试题时,对特定时间段或待定用户、特定网格节点已经抽取的试题进行限制,以免与重复。

(3)难度策略。组卷时,用户可以设定要抽取的各种难度试题的比例。

(4)题量策略。由于各资源库的试题质量和数量参差不齐,不同试题库中的试题不可避免地存在重复。所以每次搜索返回的试题量应大于用户实际需要的试题量,并由用户选择符合需要的试题进行组卷。每次抽题的比例应由用户设置。

4.用户管理

用户管理包含用户注册、登录、密码找回、用户自服务、全局用户管理等功

能,用户注册信息保存在数据库中,并且每一个门户节点都拥有自己的用户数据

库。

3.5 本章小结

本章提出了数学试题网格的概念,描述了网格环境下异构数学试题资源整合系统的设计方案及架构,讨论了MAG所提供的服务及构建MAG所采用的一些技术。论文描述的只是我们开展工作的极小部分,仅仅是项目的前期工作。

第四章 数学试题描述语言MAML

4.1 MAML的意义

要真正实现在网络上信息资源共享,需要解决的两个问题,一是如何有效过滤和筛选资料,二是如何有效地描述资料。九十年代以来,世界上有很多标准化(学术)组织都正在致力于基于网络的教育资源标准化的研究,并起草了一些相应规范,其中影响较大的有国际电子电气工程师协会学习技术标准委员会(LTSC)编制的《学习对象元数据模型(LOM)》和在线数字图书馆中心(OCLC)编制的《都柏林核心元数据标准(Dublin Core)》,我国也于2002年制定了《学习对象元数据模型》。

数学试题网格系统是依据每道试题的属性搜索试题并组织试卷的。现有数学试题库无法进行数据的共享,很大原因是由于数学试题描述的标准不统一,制定数学试题描述标准目的就是制定一套描述数学试题的统一标准,为学校、企业、其他机构和个人在使用和建立数学试题资源时提供一套资源编目准则,以使用户能快速、有效地在各地数学试题资源库及门户网站中检索到所需的试题资源,广泛地实现资源共享。

数学试题网格系统用元数据来描述数学试题资源的属性。所谓元数据是指关于数据的数据,也就是指信息资源的编目信息,其作用类似于超级市场中商品的条形码,它通过描述资源的属性,使得使用者能够不需要直接浏览教育资源就获得教育资源的主要特征信息。基于这些属性,使用者还可以对数学试题资源进行分类管理、浏览查找、共享互换以及实现自动组卷,从而为学习者或教育者查找、评价、获取和使用数学试题资源提供支持,实现教育资源的共享和互换。

XML (eXtensible Markup Language,可扩展标记语言)可以实现数据的跨平台传输、交换和共享。它不同于只能提供数据格式描述HTML,XML提供了数据结构的描述,从而有助于进行文件内容的结构声明和语义描述。它具有下列特点:

(1)描述资源的数据结构;

(2)标记可自行扩展;

(3)数据呈现与处理可分离操作;

(4)语法规范严格、可验证;

(5)人机可读、能实现智能型的检索和信息抽取互用;

(6)具有良好的开放发展性。

XML是我国教育信息化技术标准CELTS 4.2的指定资源描述语言。由于XML所具有的优点,使它成为网格中进行资源描述的工具。

现阶段互联网上的数学试题和试卷有多种形式:HTML网页、WORD文档、PDF文档或者存储于数据库中。由于缺少必要的试题和试卷描述信息,导致这些试题和试卷很难被搜索,很难被用来自动组卷。E-learning和E-testing近年来发展很快,但到目前为止,还没有一个描述数学试题和试卷的标准,不同的系统各自有不同的试题描述方法,致使这些试题在不同系统间不能共享。因此,我们制定了MAML(Mathematics Assessment Markup Language),MAML是基于XML的数学试题(试卷)描述语言,提供了定义良好的数学试题和试卷描述标记元素,这些标记元素用于描述数学试题或数学试卷。可以把MathML描述的数学公式和SVG描述的数学图像嵌入到MAML中,同样,MAML可以被嵌入到XHTML网页。MAML不仅可以用于网页中来描述数学试题和试卷,还可以用于像E-learning和E-testing这样的系统中。

在MAML中,通常情况下数学公式是用MathML来描述的,数学图像是用SVG来描述的,下面两节简单介绍MathML和SVG技术。

4.2 MathML[16][17]简介

MathML就是这样的一种XML 语言,它的定义就是为了解决在Web技术中应用数学表达式的问题。MathML的全称是Mathematical Markup Language。最早的MathML规范草案在1998年1月6日公布,并于当年2月底向W3C(World Wide Web Consortium)提交,W3C组织于1998年4月7日发布了MathML的1.0版本。2001年2月21日MathML2.0版本正式发布。对于MathML的诞生,要归功于Wolfram研究所和W3C数学工作组的开发人员,2000年10月,Wolfram研究所主办了第一次正式的MathML会议,大约两百名出席者肯定了制定这项标准的价值和意义。MathML可以说是最“古老的”XML语言之一,它完全采用XML 的定义规范,可以表示几乎所有类型的公式,它使得数学成为得到XML恩泽的第一个领域。为了满足用户对数学表达式的各种处理和服务的需要,MathML 实现了以下的设计目标:

(1)能为不同层次的数学符号及其含义编码。

(2)能为不管是表现上还是语义上的数学格式之间相互转换提供便利,输出格式可以是图形显示、语音合成以及计算机代数系统输入或者排版语言等。

(3)允许传递其它特殊应用的信息。

(4)有效支持长表达式的浏览。

(5)提供可扩展功能。

(6)能够和其它数学编辑技术进行良好配合。

(7)良好的可读性,易于开发与应用。

目前,对于MathML的一些更高要求,W3C也正在逐步实现。如让浏览器支持包含MathML代码的HTML网页的显示;网页中用MathML表示的数学表达式能触发一定的交互操作,如对鼠标点击做出反应以及和其它的应用程序进行通信等。MathML的功能正在不断完善,相应的各种公式编辑器和转换器也在开发和更新。现在MathML在基于网络的教育、科研、出版和信息交换,甚至商务操作中发挥越来越重要的作用。

MathML像所有的XML语言一样,其标记结构也可以分成两种形式,一种是有首标签和尾标签的,如,首尾标签之间包含着该标记的内容,另外一种是只有一个标签的空标记,如。数学表达式具有递归性,即表达式是由子表达式构成的。MathML利用了数学表达式这个最大的特点,设计了它的标记方式,而且继承了XML标准树状结构的标记排列方式,每一个节点表示了一个MathML标记,在父节点下的分支称为子节点。每个树叶节点是数学表达式中一个不可分割的最小的单元,如一个数字,一个变量标识符或者一个运算符。MathML专门用于描述数学符号并且捕获其结构与内容,它的目的是使数学信息可以在Web上使用和重用,并且可以在其他应用系统上得到使用和重用,如计算机代数系统、排版打印系统以及语音合成系统等。MathML从表现形式(Presentation)和语义内容(Content)两个不同的角度定义各种数学符号和公式,它所包含的元素主要分成三大类:表现元素(Presentation elements)、内容元素(Content elements)和接口元素(Interface elements),分别对应表现标记、内容标记和接口标记。下面分别对这三种标记作简要介绍。表现标记大约有30 个,附带50多种属性,主要目的是用来描述抽象数学符号的二维结构,相当于一个数学符号构造器,把数学符号的语法结构表现出来。如标记表示该表达式是线性方向的,标记表示上标符号,表示下标符号。每一个表现标记都对应着唯一的一种符号模式,如一行、上标或下标等。表现标记可以分为两类:象征标记和空标记,其中象征标记代表独立的符号、数字和标识符名称,空标记数量比较少,仅用于和布局纲要的关联。下面我们用一个例子来说明如何使用表现标记来描述数学表达式。

数学表达式为:

0

4

4

2

=

+

+

x

x

,对应的表现标记如下:

x

2

+

4

⁢

x

+

4

=

0

内容标记大约有120 个,其中大部分是空标记,附带的属性只有简单的12 种。表现标记和内容标记都能够分别表示数学表达式,它们的不同在于,前者是从数学表达式的显示形式来描述,后者是从数学表达式本身的内在含义进行描述,如表示各种运算符、关系式和函数以及定义数据类型。如标记主要用来对某个表达式应用一种运算操作,也可以生成一个新的数学对象。上面的例子也可以使用内容标记描述,如下所示:

x

2

4

x

4

0

MathML 允许用户分别使用表现标记和内容标记来描述一个数学对象,有时为了同时从结构和语义两方面描述一个数学对象,MathML 也允许混合使用这两种标记。

4.3 SVG[18]简介

SVG( Scalable Vector Graphics)是一种2001年8月由W3C组织制定的基于XML的开放的二维矢量图形描述语言。SVG图像是与XML1. 0兼容的一种由SVG元素组成的Web文档。 SVG元素是指示如何绘制图像的一些指令,由阅读器( SVGViewer - Web浏览器中可安装此阅读器插件)解释这些指令,把SVG图像在指定设备上显示出来。 使用SVG可以在网页上显示出各种各样的高质量的矢量图形,支持的功能包括:几何图形、动画、渐变色、滤镜效果等。 最为关键的是, SVG是完全用普通文本来描述的,也就是说,这是一种专门为网络而设计的基于文本的图像格式

1.SVG的特性

(1)基于XML标准。 XML是公认的下一代网络标记语言,拥有无穷的生命力。 SVG在最开始设计的时候就基于XML,这使得它具有一种先天的优势,并且同HTML、CSS、DOM、XSL、JavaScrip t、CGI一样,成为新的标准。

(2)高质量的图像。由于基于矢量,使得SVG图像的质量得到大大的提高。 放大、缩小以及各种特效都比位图的表现要好,在打印的时候,完全可以以印刷质量输出图片。SVG图像在客户浏览端动态绘制,用户可以随意调整图像的一些参数而不会导致图像模糊。 SVG图像的大小只与图形的复杂程度有关,而与图形的具体尺寸无关。

(3)灵活易用的文件格式。 SVG图像主要由3个部分组成:矢量图形、位图和文字。 由于SVG文件是以文本的形式(XML)存放的,所以更改起来非常方便。 在页面运行的过程中,我们也可以对很多部分做修改,而其中的图形描述又可以被任何人重复的使用。

(4)支持交互和动画。 SVG支持SMIL(SynchronizedMultimedia Integration Language),使得用户可以自由的同SVG中的元素完成一些交互的动作,从而完成既定的目标,这一点在目前单独依靠图片是完成不了的,需要由网页中的Script语句来实现。

(4)支持字符查找。查找“图片”中的字符,在SVG图像中成为可能,而这在其它格式的图片文件中则是不可能的。在SVG图像内的文字可以让用户通过搜索引擎在浏览器内进行搜索。

(5)支持Xlink和Xpointer。这意味着我们可以在SVG文档之间制作超链接,这使我们拥有一种能力,可以制作一个完全由SVG构成的WEB站点,这个站点可以包含图片、文本以及拥有与用户进行交互的能力。

2.SVG的原理

SVG是一种描述XML中二维图形的语言,它使用SVG元素来描述文本、轨迹(直线和曲线集)和图像。一旦定义了那些图像,则可以使用各种感兴趣的方式对它们进行剪裁、转换和操纵。除此之外,也可以通过指定事件处理程序来定义交互式和动态功能,并且可以使用“文档对象模型(DOM)”来修改文档的元素、属性和特性。最后,因为SVG使用直线、曲线、文本和其它图元来描述图形,所以可以将SVG图像按比例缩放到任何精度。

例如,下图为一统计用直方图。

以下为绘制该图的X及Y轴的部分代码:

< svg height = " 50" width = " 100" >

 < path style = " stroke: black; stroke - width: 2; fill: red"

   d = "M 10 10 L 90 10 L 90 40 L 10 40 Z" / >

    . .

  < g style = " stroke - width: 2; stroke: black" >

   < path d = "M 40 220 L 40 30 L 40 220 L 200 220 Z" / >

  < /g >

  < g style = " fill: none; stroke: #B0B0B0; stroke - width: 1; stroke - dasharray:24" >

< path d = "M 42 200 L 198 200 Z" / >

  < path d = "M 42 180 L 198 180 Z" / >

  < path d = "M 42 160 L 198 160 Z" / >

  < path d = "M 42 140 L 198 140 Z" / >

  < path d = "M 42 120 L 198 120 Z" / >

  < path d = "M 42 100 L 198 100 Z" / >

  < path d = "M 42 80 L 198 80 Z" / >

  < path d = "M 42 60 L 198 60 Z" / >

  < path d = "M 42 40 L 198 40 Z" / >

 < /g >

    . .

< svg >

SVG图像由文字代码构成,相比于传统的矢量图形,其存储量大为减小。此外,由于是矢量图形,放大和缩小SVG图形不会影响图像的显示效果。如果要将传统图形(GIF或JPEG文件)放大到相同的尺寸,则图像将变得颗粒状并且难以辨认。

4.4 MAML的制定

4.4.1 MAML的概念及功能

MAML是基于XML数学试题标记语言。它对数学试题元数据标准进行了很好地实现和表示。以MAML描述的数学试题和试卷可以在不同的系统中共享。MAML的功能如下:

1.对数学试题和数学试卷的内容进行编码描述

2.对数学试题和数学试卷的描述信息进行编码描述

3.能与和XHTML、MathML和SVG嵌套,更好地描述数学试题和试卷

4.便于编辑

5.可以嵌入到网页中,并在浏览器中显示

6.便于扩展

7. 便于数学资源及数学试题的搜索

MAML作为试题网格中描述数学试题和试题卷的标准语言,它具有以下的特点和优点:

1.MAG系统从各种异构数据库提取出来的试题可以转换为MAML标记的试题,实现异构数据库的资源整合。

2.利用MAML可以直接将试题和试卷发布在网上,数学试题网格系统可以从网上直接搜索试题标记语言试题,生成试卷。

3.MAML采用XML作为数学试题描述的基本语言,开发技术人员很容易学习和掌握。

4.一个用MAML编写的数学试题描述文档具有良好的平台和设备无关性,可以被任何支持XML的软件很好地处理。使用MAML开发的应用可以在支持XML的任何网络和设备上使用。

5.软件开发者按照W3C文档对象模型(Document Object Model,DOM)规范编写的组态软件操作MAML设备描述文件接口,可以用任何编程语言来实现,容易开发。

6.MAML语言的完备性是指整个MAML能覆盖所有必要的功能。MAML设计阶段最初就考虑到完备性的要求,经过实证,MAML具有完备性,能较好地覆盖数学试题描述的所有功能,并具有一定的扩展性。

4.4.2 MAML元素的定义

我们把数学试题划分成5类:单项选择、多项选择、填空题、判断题、解答题。每道数学试题由两部分组成:试题内容(试题本身)和试题描述信息,而试题内容从表现形式可以划分为文本、图像和公式,如图14。

图14 试题结构

另外,试卷可划分为两种类型:一种是空白的试卷,没有学生信息,另一种是有考生信息和考生答案的试卷。

根据数学试题的结构和数学试题所需要的描述信息,可以将MAML元素分为四类:

(1)试卷标记元素(Paper markup element),用于描述数学试卷

(2)试题内容元素(Question content markup element),用于描述数学试题内容

(3)试题描述元素(Question descriptive markup element),用于描述数学试题描述信息

(4)格式元素(Presentation markup element)

同时,以MathML元素和SVG元素描述的数学公式和图像可以嵌入到MAML中。

MAML标记元素共有35个:

表3 试卷标记元素

paper

试卷的总标识元素

pspecification

试卷附加信息(试卷要求等)

pdescription

试卷描述信息(所有描述信息元素父节点)

pschool

学校名称

psubject

科目

Pgrade

年级

pstarttime

考试开始时间

Pclass

班组

pendtime

考试结束时间

Pname

学生姓名

psite

考试地点

pstudentid

学生编号

pdifficulty

试卷难度

psection

试卷分块标识

pscore

得分

表4 试题内容元素

questionset

试题集

qmathml

MathML表示的公式

question

试题

Qsvg

SVG图像

qdescription

试题描述信息(所有描述信息元素父节点)

Qimage

其他格式的图像

qbody

试题体

qtocorrect

改错题中需要修改的部分

qchoice

选择题的一个选项

Qblank

空格

qtext

试题文本

Qkey

试题标准答案

表5 试题描述元素

qtopic

知识点

qrscore

分值

qcorrectness

正确率

Qscore

学生得分

qdifficulty

难度

qanswer

学生答案

表6 格式元素

maml

MAML根元素

Qbr

换行标志

除了上述标记元素外,还有多个属性用于描述试卷和试题。

4.4.3 MAML的显示

MAML可以被嵌入到XHTML网页中,但是浏览器不能直接处理MAML,所以MAML描述的数学试题和试卷不能直接在浏览器中显示。在浏览器显示和处理MAML之前,需要把MAML转换成普通的网页。有两种转换方式可供选择:在服务器端进行转换,在客户端进行转换。我们设计MAML的目的是便于用户通过这些标记对试题进行搜索,假如在服务器端对MAML进行转换,客户端将不能直接得到这些标记,也就无法进行搜索,所以对MAML的转换只能在客户端进行转换。在IE6中,由于IE6不支持MathML和SVG,所以需要安装插件,如MathPlayer和SVGViewer。

XSL是把XML转换成XHTML的成熟工具,所以我们开发了math.xsl,详细代码见附录,具体的转换过程如图15所示。

用户向服务器发出请求时,服务器会把要应的MAML文档发送到客户端,MAML文档被math.xsl转换为标准的XHTML文档,并在游览器在显示。这个转换过程是在客户端完成的。

图12所示的试题可以用MATHML描述如下:

<?xml-stylesheet type="text/xsl" href="question.xsl"?>

1

SELECTIVE HIGH SCHOOLS TEST

The number pattern in triangle P is repeated in triangle Q.

73.99984,7.999776 177,7.999776 -29.00008" id="polygon1" transform="matrix(1,0,0,1,102.5,66.67)" />

:g>

:g>

3:text>

15:text>

45:text>

X:text>

40:text>

20:text>

P:text>

:svg>

What is the value of X?

1

2

2

3

20

这个XML文档在IE中显示的效果如下图:

图16 试题显示效果图

图17是一套数学试卷在IE中显示的效果图。

图17 试卷显示效果图

4.5 MAEdit

在ICCM实验室,我们正在开发MaEdit。MaEdit是一个基于Web的图形化界面的数学试题编辑器。MaEdit用JavaScript和DOM开发,在支持JavaScript和DOM的浏览器下都能运行,但要求浏览器支持MathML和SVG,或者安装了MathML和SVG插件。MaEdit的功能有:

(1)以GUI的方式创建和编辑数学公式

(2)支持直接以MAML代码方式编辑数学公式

(4)调用MathEdit来编辑数学公式,并把MathML代码插入到MAML中

(5)调用GeoSVG画数学图像,并将其插入到MAML中

(6)增加或、修改或删除试题的描述信息

(7)将试题保存成MAML文档

在MaEdit中,用户可以以图形化的方式编辑数学试题本身和试题的描述信息,然后把试题保存成MAML文档。

MAEdit的主要特点有:

(1)基于web的开放编辑环境