元数据概述元数据的定义
元数据,通常定义为描述数据的数据,旨在便利存取、管理、共享和处理大量结构化和或非结构化的数据。在过去的几年里,元数据的概念在现实中大量使用,如为了支持信息检索,或为了软件配置,或为了不同系统之间的数据交互。对于不同应用领域,元数据有着不同的应用,但这些元数据的存在有两个共同点:元数据对数据进行描述;元数据的存在是为了更有效地使用数据,元数据是关于数据的结构数据1。
元数据作用元数据的定义是“关于数据的数据”,比如传统数据库中的数据字典就是一种元数据。近年来,随着计算机技术应用的广泛化,元数据得到人们越来越多的关注,这是由多方面的需求决定的。
首先是管理数据的需求。当系统数据量越来越大时,检索、使用这些数据的效率就会降低,通过存储关于系统和数据的内容、组织、特性等细节信息(这些即为元数据)可以帮助有效地进行管理,从而提高效率。
第二是系统分布、互通和重用的要求。目前信息系统一个共同的趋势就是信息共享,要实现异构系统中的信息共享,就需要描述数据语义、软件开发过程的元数据,而且这些元数据必须标准化,以充分实现分布、互通和重用。
第三是元数据重用、综合的需求。目前,很少有单一工具能满足大型商业应用的需求,用户常常需要使用多种工具的组合,不同工具之间的数据交换的途径之一就是通过标准的元数据。
元数据是关于数据的数据,是对“业务数据”本身及其运行环境的刻画和定义的数据,因此元数据具有上述重要的功能。而且,现有企业不仅仅要处理好各种应用数据,更需要着力从事的是如何建立和管理好自己的企业级的元数据信息仓储,使之成为连接各种应用的纽带和衍生新应用的源泉1。
元数据交换的过程在WCF服务端的运行时,有一组类库随时待命把服务的元数据输出为WSDL描述提供给请求者,只要有客户端按照服务端约定的方法来请求元数据,服务端立即将服务运行时状态写成WSDL文件提供。客户端得到的实际上就是WSDL文件(还有一些框架描述文件XSD),客户端拿到文件后再使用自己的方法来解读WSDL,把他翻译成客户端可用的源代码或配置文件,这时客户端就得到了服务的编程模型,通过一些代理类,客户端甚至可以像调用本地对象一样使用WCF服务。
因此整个过程是这样:客户端向服务端请求元数据交换---服务端运行时将元数据编写成WSDL文件提---供客户端获得文件---客户端翻译文件---客户端根据翻译结果生成本地类代码和配置---客户端获得服务的本地编程模型。这就是元数据交换的过程1。
基于XML文本的元数据交换概述XML元数据交换(XML Metadata Interchange),简称XMI,是由OMG组织开发的,它是统一建模语言UML模型中元数据的标准交换方式。
XML元数据交换算法是使数据交换各方之间按共同规则描述元数据信息的 XML 模板文档,通过解析 XML模板文档识别该元数据的信息,完成对元数据的存取交换功能,而无须知道各应用程序的元数据库结构信息和元数据交换握手信号的规则等技术细节2。
实现原理基于文本格式元数据交换的算法,是使不同应用系统之间在交换元数据时,各个应用系统可以按事先提供的一个按照共同规则描述了元数据信息的XML模板文档,来解析模板文档识别该元数据的信息,并完成对元数据的存取交换功能,而不用知道各应用系统的元数据库结构信息和元数据交换握手信号的规则等技术细节。
整个元数据交换存储系统由三部分组成应用系统、MSXML解析器组件和模板。组件实现对元数据的存储和读取,并向应用系统提供若干接口。应用系统可以利用组件提供的接口实现对元数据存储和读取,而无需知道存取的细节。XML模板文档由应用系统的开发者提供,用来向组件提供要存取变量的详细信息。
首先由应用系统生成一个模板文档,此模板借助XML技术详尽地描述应用系统中需要交换的各个元数据的关键信息,如元数据名、元数据所占字节大小和元数据包含字段个数等。它相当于应用系统和组件共同遵守的一个用来描述元数据信息的规则集,组件可以通过解析XML模板文档辨别出应用系统中需要交换的元数据的信息。应用系统就可以通过调用组件公开的接口来对元数据进行存取操作,而无需知道实现存取的细节。组件根据接口参数传入的元数据名称,在XML模板文档中找到相应的元数据信息,然后识别出它的具体信息,从而可以实现对该元数据的存取。由于组件可以通过XML模板文档推断出需要交换存取的元数据的信息,所以,组件端一旦交由应用系统使用,就可以不加改变地用来交换不同应用系统中的元数据2。
创建XML模板示例XML文档模板创建规则是在实际开发中可采用的、认为比较合理的一种规则,在实际应用中也可以创建其他规则,但前提条件是各个应用系统和组件端必须遵守同一个规则。电子试卷生成规则的 XML 文档模板中元数据信息采用类对象描述方式,统一表达为 :
//课程名称 //学生姓名与学号 //纸张大小 //页边距 //纸张方向 //题型、//小题数量、分值、最终得分、题号 //小题、分值与得分、题号 //题干 //选择项,非选择题一般不用此节点 //学生答案 //此题标准答案 //教师评判,非客观题的评分情况说明 //学生交卷后生成的数字签名 //教师评判后生成的数字签名 其中,testDocument 是XML文本模板文件交换元数据部分的开始标签;baseInfo, pageSetting, examInfo 是 3 个基本类信息标签,baseInfo 存储课程名称与学生基本信息;pageSetting存储电子试卷的页面设置信息用于控制试卷的显示与打印,examInfo 存储试卷的详细信息,包括试题信息,学生的作答情况和教师的评判情况;hashCode 标签用于保存考试试卷的数字签名信息,保证电子试卷的完整性,防止试卷被恶意篡改。在学生考试过程中生成试卷时,标准答案项与教师评判项标签均为空,在教师评卷时此类信息才会被加入到试卷中,以供打印或评估时查阅3。