一种基于云计算的数据挖掘平台架构设计与实现


青岛大学 硕士学位论文 一种基于云计算的数据挖掘平台架构设计与实现 姓名:纪俊 申请学位级别:硕士 专业:计算机软件与理论 指导教师:邵峰晶 20090603 摘要网络技术在带给人们大量信息的同时,也极大地增加了人们从海量数据中发现有用知识的难度,而解决这一问题的努力促进了数据挖掘技术的出现和快速发展。目前,数据挖掘技术已在金融、医疗、军事、管理等诸多领域的决策分析方面被广泛应用。云计算是能提供动态资源池、虚拟化和高可用性的计算平台。云计算开发平台可被用来开发高性能应用程序,但数据本身具有噪声、异构等问题,而现有的云计算开发平台当前还没有数据规约功能,利用云计算进行数据挖掘的解决方案尚未被提出。针对上述问题,首先,扩展GoogleAppEngine开发平台,设计与实现其数据规约功能,主要解决异构数据访问问题与未存在数据类型访问问题;然后,在扩展的GoogleAppEngine开发平台基础上设计与实现一数据挖掘系统,通过实验验证数据规约功能的有效性及云计算平台执行数据挖掘操作的高效性。在数据规约模块设计过程中,通过采用可被扩展的元数据定义、数据集模板定义及数据集定义逐层抽象数据集的数据类型、数据结构、访问地址等信息,实现对异构数据集的抽象以及对未有数据类型的访问。在基于云计算的数据挖掘系统设计过程中,基于分层设计的思想,将该平台的层次自底向上划分为:算法层、任务层和用户层,其中,底层透明的为其上层提供服务,上层通过层间开放接口调用下层服务,使得层与层之间的功能相对独立,易于系统的二次开发。同时各层接口均以REST接口方式对外开放,可被开发者嵌入到其应用程序中。在算法层设计过程中设计了多层插件框架结构,增加了算法实现与维护的灵活性。最后,在对系统开发环境及系统开发关键技术分析的基础上,给出了基于云计算的数据挖掘平台原型的实现过程。并通过实验数据分析,验证了目标的有效性与高效性。关键词:数据挖掘;云计算;数据规约;分布式系统2 Abstractnedevelopmentofnetworktechniquesbringspeopleinagreatdealofinformation,italsogreatlyincreasethedifficultytofindusefulknowledgefrommassdata·Thee仃ortstosoIvethisproblempromotetheemergenceandrapiddevelopmentofdatamlnmgtechniques.Atpresent,thedataminingtechnologiesandtoolshavebeenusedinthefinancial,medical,military,andmanyotherareasofcommercialdecision‘makinganalysis.CloudcomputingisastyleofcomputinginwhichdynamicallyscalableandoftenvirtualizedresourcesaleprovidedasaserviceovertheInternet.Cloudcomputingplatformcanbeusedtodevelopmenthighcapabilityprogrammes·However,itdoesnotprovidedatareductionservicewhichisoneofthebasesofdata-mining.Sothemethodtoimplementdata-miningsystemoncloudcomputingplatformhasnotbeenworkedoutyet·Tos01vetheseproblems,inthispaper,adatareductionmoduleforaccessingisomericandnewtypedataisdesignedandimplementedtoexpandGoogleAppEnginecloudplatform,furthermore.anewdata-miningsystembuiltontopofcloudcomputingservlCeslsdesignedandimplementedtOverifythevalidityofdatareductionmoduleandtheefficiencyofcloudbaseddata-miningprocess·Da协reductionmodulesupportsuniformdefinitionofdatasetsbyusingmeta-datadeftnition。datasetdefinitionanddatasetinstancedefinitiontoabstractdatatype,datastmcture。locationinformationandSOon.Layeredthinkingmodelisusedandanewmuti-Iayeredpluginarchitectureisinducedtoenhancethescalabilityofthesystem·AllsysteminterfacesareRESTfulwhichcouldbeembededinotherapplications·Meanwhile,manyimportantthoughtsandmethodstOdesignandim,plementtheplatfornlareinducedinthispaperandaprototypeofdata—miningplatformbasedonthisarchitectureisintroducedatlastsectionofthispaper.Experimentalresultsshowthattheproposedmethodisverypromising。Keywords:datamining;cloudcomputing;datareduction;distributedsystem3 学位论文独创性声明学位论文独创性声明本人声明,所呈交的学位论文系本人在导师指导下独立完成的研究成果。文中依法引用他人的成果,均已做出明确标注或得到许可。论文内容未包含法律意义上已属于他人的任何形式的研究成果,也不包含本人已用于其他学位申请的论文或成果。本人如违反上述声明,愿意承担由此引发的一切责任和后果。论文作者签名:芗移予文日期:久幻丁椭,o日J学位论文知识产权权属声明本人在导师指导下所完成的学位论文及相关的职务作品,知识产权归属学校。学校享有以任何方式发表、复制、公开阅览、借阅以及申请专利等权利。本人离校后发表或使用学位论文或与该论文直接相关的学术论文或成果时,署名单位仍然为青岛大学。。本学位论文属于:保密口,在年解密后适用于本声明。不保密面。论文作者躲,.弓勰.吼如。芦肌日t三篙一萎坠经三::≤二三主三兰三冬人不得擅自使用,40 第一章譬|言1.1课题研究目的与意义第一章引言随着计算机科学与技术的迅速发展,越来越多|l皇数据被存储在计算机存储分质中,这缝数据往往是大量的、复杂的、异构的、有噪声的,很难通过人工直接理解,其中蕴含的知识与模式更是雉以被发现。掰在科研与商业等领域,经常需要分析这些数据,从中发现有价值的信息与模式或对未来做预测。为迎接这些挑战,来自不阉学科的研究者汇集捌一起,着手开发可以处理不同数据类型的受有效盼、可俘缩的技术与工具,数据挖掘(DataMining)[1,2]作为一门交叉学科应运而生。这些工作建立在研究者壳蓠使溺的方法学帮算法之上,在数据挖掘领域达到高潮。特别地是,数据挖掘利用了来朗如下一些领域的思想:(1)来自统计学的抽样、估计和假设检验,(2)人工智能、模式识别和机器学习的搜索算法、建模技术和学习理论。数据挖掘也迅速地接纳了来自其他领域的思想,这些领域包括最优化、进化计算、信息论、信号处理、可褫化和倍息检索。数据挖掘又称为数据库中的知识发现(KnowledgeDiscoveryinDatabase,KDD)是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。它的盥埂使褥之前很多无法放理解的历史数据得到了利片j,为科学研究与商_k决策等多个领域起到了指导作用,具有深远的社会和经济意义。这些年来,随羞计算机网络技术特别是阏格计算与云计算的发展,越来越多的数据分布式的存储在嘲络中,这些海量的、分布式的、异构的、.复杂的数据给数据挖掘系统的实现带来了强大难题:蓠先,处理这些数据熬复杂度很高,系统的计算能力很难达到要求,此时传统的单机服务器所能提供的有限计算资源往往4i能满足要求,需要借助分布式计算技术来实瑗人规模著行计算。云计算是畿提供动态资源涟、康拟纯黧l高bl‘篇性的计算平台。云计算开发平台可被用来开发高性能应用程序,但数据本身具有噪声、异构等问题,而现有的云计算开发平台当前还没有数据规约功能,剩崩云计算进行数据挖掘籍解凌方案尚未被提出。针对上述问题,首先,扩展GoogleAppEngine开发平台,设计与实现其数据规约功能,主要解决异构数据访阏闷题与未存在数据类型访闻问题;然后,在扩 青岛人学硕士学使论文展的GoogleAppEngine开发平台基础上设计与实现一数据挖掘系统,通过实验验证数据规约功能的有效性及云计算平台执行数据挖掘操作的高效性。1.2国内外研究现状为解决上述问题,国内外学者们相继提出了基于集群的[3]、基于三层C/S结构的[4】、基于Agent羲[5】等各种分布式并行数据挖掘平台框架,这些框架提高了数据挖掘系统的处理能力,但系统实现相对复杂且适应性较差,往往开发投入很火却父能针对特殊应用。之后,文献[6】总结了前入的经验与思想,提出了知识隧格的概念并基于GlobusToolkit[7]设计了一种分布式并行知识发现平台框架,框架充分利用GlobusToolkit所提供的网格计算[8]能力,解决了传统数据挖掘框架计算能力不足的问题,成为了近儿年此类问题研究的基石并有徽多针对其框架且基于GlobusToolkit的系统实现与改进方法被提出[9,10,11]。倔网格计算缺少商业化实现,且GlobusToolkit是基于中间件技术,濡要用户通过编程或者安装设置来搭建底层架构,这为系统实现增加了难度,更重要的是,这种框架下实现的系统所部署到的网格的计算能力即服务器的数鐾与硬件指标楚其系统的瓶颈,针对中小企业、科研单位、个人用户而言很难负担起太大的开销来满足处理能力要求较高的系统硬件需求。即使大型机构能提供足够硬件设备,在系统不王作或老非满负蔫工绛时也会造成很多资源被l衬置而浪费。与此同时,配备二学业人员来维护网格计算环境也是必需的,这也礁:一定程度上增加了系统的开销。云计算俸为霹格计算的舟级,存近两年被提出,他具有超大规模、虚拟化、高可靠性、通用性强、高扩展性、按需服务、易用等优点,这些优点可被用米搭建数据挖掘系统解决部分上述闻遂,而之前未有基于云计算的数据挖掘系统解决方案被提出。3论文各部分的内容安排论文的第二章主要介绍云计算平台及其特点与服务,第三章介绍数据规约工具的设计与实现,第四章详细阐述了基于云计算的数据挖掘系统设计思想、设计要点、特性以及具体层与层之间的关系等。文章的第四章介绍基于本文提出的框架所实现的一个数据挖掘甲螽的原型系统以及实现系统的关键思想、技术与步骤,第五章通过实验数据验证了数据规约工具的有效性及基于云计算的数据挖掘系统的高效性,第六章是文章的总结,最恁一部分是结束语与致谢。2 第二章云计算平台2。.1云计算定义第二章云计算平台云计算(CloudComputing)[12,13]是一种分布在大规模数据中心、能动态的提供嚣种服务器资源以满足科研、电子商务等领域需求的计算平台。云计算是分布式计算(DistributedComputing)【14】、并行计算(ParallelComputing)[15】豢l网格计算(GridComputing)[16]的发展,是虚拟化(Virtualization)[17]、效用计算(UtilityComputing)[18]、laaS(基础设施即服务)、PaaS(平螽即服务)、SaaS(软件即服务)等概念混合演进并跃升的结果。云计算平台通过相关调度策略利用虚拟化技术,针对焉户的不同需求,动态、透嚼的提供其所需的虚拟计算与存储资源,并在当前用户不使用时将其资源动态回收供给其他用户,就像发电厂供电一样为用户输送廉价的计算与存储资源,诖普通用户实现大规模并行计算与海量数据操作麓为可能,也为搭建统一开放的知识网格系统提供了底层支持。2。2云计算特点云计算具有以下特点:(1)超大规模。“云”具有相当的规模,Google云计算已经拥有100多万台服务器,Amazon、IBM、微软、Yahoo等的“云”均拥有几十万台服务器。企-E私有云一般拥有数西上千螽服务器。“云”能赋予用户兹所未有的计算能力。(2)虚拟化。云计算支持用户在任意位置、使用各种终端获取应用服务。所请求的资源来自“云”,而不是固定的有形的实体。应用在“云”中某处运行,但用户无需了解、也不用担心应羽运行的其体位置。(3)赢可靠性。“云”使用了数据多副本容错、计算节点同构可互换等措施来保障服务的高可靠性,使用云计算比使用本地计算机可靠。(4)通用性。云计算不针对特定的应用,在“云”的支撑下可以构造出各种应用,同~个“云”可以同时支撑不同的应用运行。3 青岛大学硕士学位论文要。(5)高可扩展性。“云’’的规模可以动态伸缩,满足应用和用户规模增长的需(6)按需服务。“云’’是一个庞大的资源池,可按需购买;云可以象自来水,电,煤气一样计费。(7)极其廉价。由于“云”的特殊容错措施br以采用极其廉价的节点来构成云,“云”的自动化集中式管理使大量企I≯无需负担日益高昂的数据中心管理成本,“云’’的通用性使资源的利用率较之传统系统大幅提升,因此剧户可以充分享受“云”的低成本优势,经常只要花费几百美元、几天时间就能完成以前需要数万美元、数月时阀蠢‘能完成的任务。2.3云计算与网格计算的对比Table2.1Comparationcloudcomputingwithgridcomputing表2.1云计算‘J网格计算的对比稠格降计算共囱‘特性目标一致:虚拟计算机资游并通过再种网络』乓亭它功能庶拟化搜瞒中闯佧,例如Globus米集成搜掰管理程痔性方(Virtualized)各种硬件与操作系统提供虚拟资(Hypervisor)例如Xen来窿源虚拟操作系统数据健jH基丁.06SI—DAI标准采集成符使iIj人尺度的文忭系统’J种不同数据,例如DB、文件、Frl’l,,优化算法朱提供海量虚拟来提侯统一的数据访阀数据,例如GFS、Bigtable、SimpleDB嚣现舀复(Self-healing)没有统一方法针对巧i残赢测实现Recovery—’oriented能性computing[19]被提倡方面CAP(consistency、availability、partition-tolerance)[20]理论被府潮蕊向服务基T-SOAP的应J}j氍序领域毖TWeb2.0应川雅序领域(Serviee—oriente(1)伸缩性提供给单一服务的中等尺度的伸为一至多个服务提供海域(Scalability)缭性(一台物理诗算机为单位,受麓线性麓动态{审缩性限丁.网格自身机器数几)(一台虚拟计算机为单位)4 第二章云计算平念可见;云计算与鲻格计算目标是~致的,都是虚拟计算极资源并通过各种网络共享它们为上层应用服务,但云计算在理论上增加了自复方面的支持,在伸缩性、盘复性以及其他各方露均优予网格计算。特别是其以虚拟计算机为粒度的动态伸缩性为搭建高伸缩性高可靠性而廉价的系统开发带来了极大便利。2.4云计算架构云计算抽缘了计算与存储资源并动态的分配给需要使用的用户,它是一个高伸缩性、离可靠性、底层透明、安全的底簇檠构并舆有友好的监控与维护接口。如图2.1,在其上开发应用时只需要按照其应用程序接fJ规范调用所需资源即可,不必像使用GlobusToolkit那样花费大量时间来降低系统所需吞吐量以减少硬件投资,其使用赞用跟总的资源使用量成正比两不像以往跟系统吞吐量成正比。如此用户只需关心业务逻辑实现,针对数据挖掘实现而言,我们可以把各种算法部署到云计算乎台运行然后通过云计算平台的控铡面板或者接踊设定目标响应时闻就能得到满意的结聚。Fig.2.1CloudComputingarchitecture图2.1云计算架梅云计算平台具有动态{串缭性,如图2。2所示,~个应麓{程序在资源请求很少的时候可能执行在~个粒度的虚拟机上,而当资源请求增长时,最先成为系统瓶颈的往往是当前运行环境的计算能力,这时云计算平台通过系统监控服务发现当翦运季一环境负载过高,自动动态从云计算资源池巾请求新的虚拟机加入到当前运行环境,以集群的方式线性增长当蔫运彳亍环境豹计算能力竣满足应用程穿的资源请求。而当应用程序的资源请求进一步增长时,这时不只运行环境的计算能力,数据库端也将成为瓶颈,特别是当虚拟机数鼍的增加所带来的并发与协调执行代价过离时,这时数据库所在的运行环境也将被动态扩展以满足海量的资源请求。而当应用程序资源 青岛人学硕士学位论立请求降低时,则是相反的情况,虚拟机逐步被回收回资源池以待被其他当前高资源请求的应用所使用。如此一来,世界各地的应用程序可通过共享同一个庞大的云训算资源池米获得超大的系统吞吐能力阻满足用户在某些情况下所需要的超高计算或者存储资源请求.而付出的代价却只是其总的资源使用量的费用。以I系统的动态扩展与收缩过程并不需要用户干预,系统会自动进行,开发者在其平台,j:开发时除了按照其规范并遵循程序易于被横向扩展的原则外,跟开发奉地应用程序没有太大区别,这给系统开发者与使用者都带来了很大的实惠。Fig22CloudComputingapplicationrllllmodeH22云计算应用程序运行方式2.5现有云计算平台简介现有的云计算、P台已趋卡成熟.像GoogleAppEngine[21.221与AmazonElasticComputeCloud[23]等,基于云计算实现的应州可以方便的部署其上使州其计算资源。而数据存储方面,GoogIeBigtable[241二JAmazonSimpleStorageService[25】等为实现海帚数据的分布式存储与访问提供丁支持。云训算平台的商业化发展以与成熟为实现本文提出的数据挖掘系统提供了很壶,的底层架构支持。木文提出的系统的实现是基于GoogleAppEngine,下文将主要介绍GoogleAppEngine各方面特点。盈删0啼 第二章云计算平台作为新一代的基于云计算的网络程序开发平台,GoogleAppEngine使用户可以在Google的基础架构上开发与运行网络应用程序。GoogleAppEngine应用程序易于构建和维护,并可根据用户访问量和数据存储需要的增长轻松扩展。使用GoogleAppEngine将不再需要维护服务器:开发者只需上传其应用程序,它便可立即为用户提供服务。开发者可以与全世界的人共享应用程序,也可以限制为只有授权用户成员可以访问。应用程序环境方面,通过GoogleAppEngine,即使在重载和数据量极大的情况下,也可以轻松构建能安全运行的应用程序。该环境包括以下特性:I.动态网络服务,提供对常用网络技术的完全支持2.持久存储有查询、分类和事务3.自动扩展和载荷平衡4.用于对用户进行身份验证和使用Google帐户发送电子邮件的API5.一种功能完整的本地开发环境,可以在您的计算机上模拟GoogleAppEngine6.GoogleAppEngine应用程序是使用Python编程语言实现的。该运行时环境包括完整Python语言和多数Python标准库。目前,GoogleAppEngine支持Python语言和Java语言,将来它将支持更多语言。在安全性方面,GoogleAppEngine引入了Sandbox技术。在安全环境中运行的应用程序,仅提供对基础操作系统的有限访问权限。这些限制让AppEngine可以在多个服务器之间分发应用程序的网络请求,并可以启动和停止服务器以满足访问量需求。Sandbox将您的应用程序隔离在它自己的安全可靠环境中,该环境与网络服务器的硬件、操作系统和物理位置无关。安全Sandbox环境的限制实例包括: 毒岛大学硕士学僚论文1.应用程序只能通过提供的网址获取和电子邮件服务和API访问互联网中的其他计算机。其他计算机只能通过在标准端口上进行HTTP(或HTTPS)请求来连接至该应用程序。2.应用程序无法向文件系统写入。应用程序三£能读取通过应用程序代码上传的文件。该应用程序必须使用AppEngine数据库存储所有在请求之间持续存在的数据。3.应用程序代码仅在响应网络请求时运行,且必须在几秒钟内返回响应数据。请求处理程序不能在响应发送后产生予进程或执行代码。在应用程序开发与运行语言环境方丽,AppEngine提供了一个使用Python编程语言的运行时环境。将来的版本将考虑使用其他编穰语言和运行时环境配置。Python运行时环境使用Python2.5.2版。该环境包括Python标准库。Python环境为数据库、Google帐户、跚址获取和咆子邮l譬服务提供了丰富的PythonAPI。AppEngine还提供了一个称为webapp的简单Python网络应用程序框架,从而可以轻松开始构建应用程序。方便起冕,AppEngine还包括Django网络应用程彦框架0.96.1版。只要这些库是完全使用Python实现并麒不需要任何不受支持的标准库模块,开发者就可以使用开发的巍用程序上传萁链第三方霹。这也是本系统插髂系统实现的技术保障,通过这项支持,数据挖掘平台的各种算法作为库可被动态更薪与上传。数据瘁方蘧,AppEngine提供了强大的分布式数据存储赧务BigTable,其中包含查询引擎和事务功能。就像分布式网络服务器随访问量增加一样,该分布式数据库也会隧数据而增加。该AppEngine数据瘁与传统关系数据库不瞄。数据对象有一类和一组属性。查询可以检索按属性值过滤和分类的给定种类的实体。属性值可以是受支持的褐性值类型巾的任何一’种。数据库的PythonAPI包括一。个可以定义数据库实体结构的数据建模界厮。数搌模型可以指示属性值必须位于给定范围内,如果未给定任何范围,还可以提供默认值。应用程序可以根据需要向数据提供或多或少的结构。数据库使用乐观锁定进行并发控制。如果有其他进程尝试更薪某实体,而同时该实体位于以固定次数进行重新尝试的事务中,此时该实体将更新。癍用程序可以在一个事务中执行多顼数攒疼操作(全部成功或者全部失败),从面确保数据的完整性。数据库通过其分布式网络使用“实体组"实现事务。一个事务操作一个组内的实体。同一组的实体存储在一起,以高效执行事务。应用程序可以在实体创建时将实体分配刘组。 第一章云计算平台GoogIeAppEngine云计算开发平台的上述特点使其可被用来开发高性能的数据挖掘应用程序,但数据本身具有噪声、异构等问题.而当前GoogleAppEngine没有数据规约功能以访问异构数据。所以本文首先要做的是扩展其平台使其具有数据规约功能。第三章数据规约工具的设计与实现3.1数据规约工具设计数据集(Dataset)是一个数据的集合,是数据挖掘的对象。数据集实例是包括访问地址在内的一个具体数据集。数据规约工具日标是扩腱GoogleAppEngine{]:笈平台使其支持异构数据与束存在类型数据的访问。如图31所示,数据规约工具即可被数据挖掘系统调用,也可被其他云计算平台上运行的应用调J;fl以访问异构数据。Fig3lSystemllyergraph目31系统层次圊用户在访问其数据集实例之前.首先通过数据规约T具的定义管理模块添加一数据集实例定义文件描述其数据集实例,然扁使用其定义文件ID调用数据规约工具的数据访问模块进行数据读写。 青岛人学硕士学位论文读取凌写异构数据定义解析模块定义管理模块数据规约工具调州与返必数据规约王具接口数据读取请求二—◆用户—●■■■■■■—■●返回数据集内容Fig.3。2Relationshipbetweeninnermodulesofdatareductiontool网3.2数据规约工具内部模块关系图其中,数据访阀模块提供数据集读取服务,定义管理模块提供数据定义服务与、数据集定义服务、数据集注册与注销服务,定义解析模块包括数据解析服务、数据集解析服务与数据集实例解析服务。陶3,3捕述了数据规约工具备服务、备定义文件、并构数据集及其之问的关系,箭头代表调用。.一一一一一一一一一一一E主三刍一一一一一一一.一一一.Fi93.3Relationshipbetweenservicesofdatareductiontool图3.3数据规约工具各服务关系lO鹾勰赢五主新~罴『—厂,,,。,.。。,。.,。。。.。。,,。。,。。。,。.。。.。.。,;.。。..。。一 第二章云计算平台定义解析模块通过采用可被扩展的元数据定义、数据集模板定义及数据集定义逐层抽象数据集的数据类型、数据结构、访问地址等信息,实现对异构数据集的抽象以及对未有数据类型的访问。图3.4描述了数据规约工具各服务、各定义文件、异构数据集及其之间的关系,箭头代表调用。其中,元数据定义文件存放每个数据类型的定义,它由只向管理员开放的数据定义服务维护,它为数据集模板定义提供了原子定义。数据集模板文件存放用户自定义数据集模板,它由数据集定义服务维护并被数据集注册服务使用,与实际数据集对应(配置具体数据集位置、数据源类型等)而实例化为数据集实例文件。数据集实例文件则是数据访问的依据,数据访问组件调用服务通过它选择指定的数据引擎访问指定位置的数据,通过数据集解析服务返回此数据集的含义被各种算法作为参数使用,也就是说,在数据集被访问时,用户不但可以像以往一样得到数据的内容,而且可以获得数据集的定义,此定义最终被解析为能被各种算法所识别的各种原子类型数据的组合从而达到数据层抽象的目的。具体的调用流程如下:用户定义数据集时,系统调用数据集定义服务查看要定义的数据集类型是否在已定义的数据集模板内,如果模板已存在,则只需调用数据集注册与注销服务将其数据集存储位置与数据引擎等信息注册到数据集实例文件即可,而当模板均不符合要求,则先调用数据集定义服务,并利用数据解析服务所提供的数据元定义来定义目标数据集模板,再米调用数据集注册与注销服务就完成了。用户访问数据集时,系统调用数据集存取服务,此服务通过数据访问组件服务获得数据集的实例文件并按照实例文件记录的具体数据引擎类型启用对应服务连接数据源返回数据内容,同时,数据访问组件服务调用数据集解析服务,并最终通过数据解析服务获得数据集的定义并返刚给用户。2数据规约工具实现3.2.1数据定义规范数据定义规范包括数据元定义文件规范、数据集模板文件规范、数据集实例文件规范。三种规范的意义在于抽象数据集结构,数据元定义文件抽象每种数据类型,数据集模板文件定义各种数据集模板,数据集实例文件则定义具体数据集实例。XML(ExtensibleMarkupLanguage)即可扩展标记语言,它与HTML一样,都是SGML(StandardGeneralizedMarkupLanguage,标准通用标记语言)。XML是 青岛大学硕士学位论文Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XMI,是一种简单的数据存储语言,使用一系列简单的标记描述数据,丽这些标记可以用方便的方式建立,虽然XML占用的空阅比二进制数据要占用更多的空间,但XML简单易于掌握和使用。XML的简单使其易于在任何应用程序中读笃数据,这使XML成为数据交换的唯一公共语言,虽然不同的艘用软件也支持其它的数据交换格式,但他们都将支持XML,这意味着各种程序可以更容易的与Windows、MacOS、Linux以及其他平台’F产生的信息结合,然后霹以趣载XML数据到程序中并分析他,并以蹦L格式输出结果。为提高系统的可扩展性与平台无关性,在本文中,XML语言被用来定义数据规范。一个关予商品类型定义的实例如篷3.莲所示。在数据元定义文髂中所有元数据的定义在⋯</fiels>标签内,每个字段的定义定义存⋯</field>内,其name属性佟为标识符被各种数据集模板文件号|焉,type属性对应计算枕开发语言的内部数据结构类型,其他属性则可选,针对具体内部类型有关。此文件由系统管理员维护,在定义数据集模扳文件时被载入并被解析,用于定义数据集模板文件。数据集模板文件中所有数据集模板定义在⋯</templates>标签内,每个数据集模板定义在