TR-REC-033数据跨域互操作技术规范(征求意见稿)20100329目录[隐藏]11范围22规范性引用文件33术语和定义44符号与缩略语55数据格式定义o5.15.1接口的编码方式及响应格式5.1.15.1.1接口编码方式5.1.2.1.2接口响应格式5.1.35.1.3接口响应请求状态码o5.25.2科学数据交换格式5.2.15.2.1科学数据交换格式定义5.2.25.2.2科学数据交换格式支持的数据类型65数据格式定义o6.16.1采用协议o6.26.2接口安全o6.36.3连接方式o6.46.4技术实现o6.56.5接口列表o6.66.6建库单位开放接口6.6.16.6.1数据获取接口6.6.1.16.6.6.1dhGetDatabaseList6.6.1.26.6.6.2dhGetDatabaseSchema6.6.1.36.6.6.3dhGetIndexes6.6.1.46.6.6.4dhGetIndexModifications6.6.26.6.2数据访问接口6.6.2.16.6.2.1daiGetRecord6.6.2.26.6.2.2uiGetRecord6.6.2.36.6.2.3daiQuery6.6.2.46.6.2.4uiQuery6.6.2.56.6.6.5daiGetFile7附录A(资料性附录)OpenURL8附录B(资料性附录)CQLo8.1B.1简单词汇o8.2B.2关系表达式8.2.1B.2.1关系运算符8.2.2B.2.2关系修饰符8.2.3B.2.3映射集合o8.3B.3布尔表达式:8.3.1B.3.1布尔运算符9附录C(资料性附录)MIME1范围本规范规定了中国科学院数据应用环境建设与服务项目内数据跨域互操作接口采用的协议,连接方式,调用参数以及数据的返回格式。2规范性引用文件下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅所注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。GB18030-2005信息技术中文编码字符集3术语和定义下列术语和定义适用于本规范。资源resource可以被标识的实体对象或服务。在本规范准中,特指可被标识的数据集、数据或服务。数据集dataset由相关数据组成的可标识集合。一个数据集可能是一个较小的数据集合,在物理上或逻辑上位于一个较大的数据集之内;反之,一个数据集也可能由若干数据集组成,是这些子数据集的父数据集。本规范中,数据集指中国科学院数据应用环境建设与服务项目的主题数据库、参考数据库、专题数据库、专业数据库及其各级子库。数据data对事实、概念或指令的一种形式化表示,适用于以人工或自动方式进行通信、解释或处理。本规范中,数据是指所有能输入到计算机并被计算机程序处理的符号的介质的总称,是用于输入电子计算机进行处理,具有一定意义的数字、字母、符号和模拟量等的通称。服务service本规范中,服务是指数据应用环境建设与服务项目中数据集满足应用系统或者人的需要时,与之发生的“直接”接触行为及有关结果。标识符identifier用于标识数据对象或服务项目的一组字符。4符号与缩略语URI统一资源标识符(UniformResourceIdentifier)URL统一资源定位符(UniformResourceLocator)XML可扩展标记语言(ExtensibleMarkupLanguage)5数据格式定义5.1接口的编码方式及响应格式5.1.1接口编码方式接口响应的数据基于xml语言格式,编码方式采用自定义编码的方式(常用编码方式包括:UTF-8、GBK、GB2312、ISO-8859-1等),接口响应数据所使用的编码方式必须在返回XML头信息的encoding属性中说明。例如:?xmlversion=1.0encoding=UTF-8?.1.2接口响应格式?xmlversion=1.0encoding=UTF-8?responsehead!--response头信息--code请求服务响应的状态码/codemessage相关信息/message/headbody!--response具体信息,接口返回的信息全部封装在body中--/body/response5.1.3接口响应请求状态码以下状态码只列出接口中遇到的普遍问题,可根据数据库建库规范中规定的范围增加。通用状态码相关说明200服务调用成功400请求格式错误401未授权访问402不可识别的verb403服务器拒绝访问404指定的资源未找到408请求超时500服务器内部错误响应状态码返回格式:?xmlversion=1.0encoding=UTF-8?responseheadcode响应请求状态码/codemessage响应请求状态码的描述/message/headbody!—接口返回的具体数据--/body/response5.2科学数据交换格式科学数据交换格式:SDEF(ScientificDataExchangeFormat)中国科学院科学数据库集成不同学科领域的数据,数据类型也各不相同,异地数据的交互非常困难,SDEF使用统一的格式对数据进行封装,为资源共享与透明访问提供保障。5.2.1科学数据交换格式定义sdef!--不同类型的科学数据--value原始数据/valuetitle显示值/title/sdef5.2.2科学数据交换格式支持的数据类型value元素与title元素中的数据值相同,title元素可省略。文本类型:stringvalue:文本内容title:空sdef示例:sdefvalue氢氧化钠/valuetitle/title/sdef整型类型:longvalue:数值(int、long等)title:空sdef示例:sdefvalue512/valuetitle/title/sdef浮点型类型:doublevalue:数值(float、double等)title:数值的文本(可以是普通的显示方法,也可以用科学计数法显示)sdef示例:sdefvalue31.4159/valuetitle3.14159E+01/title/sdef日期时间类型:datevalue:从1970年1月1日00:00:00GMT以来的毫秒数;负数表示在1970年1月1日00:00:00GMT之前的毫秒数title:yyyy-MM-dd格式的时间sdef示例:sdefvalue1228061164796/valuetitle2008-11-01/title/sdefHTML类型:htmlvalue:HTML字符串title:纯文本内容字符串sdef示例:sdefvalueahref=””b查看课程信息/b/a/valuetitle查看课程信息/title/sdef超链接类型:hyperlinkvalue:超链接字符串(包括http、ftp链接等)title:空sdef示例:sdefvalue枚举类型:enumvalue:键title:键所对应的值sdef示例:sdefvalue1/valuetitle男/title/sdef表达式类型:expressionvalue:表达式计算出的结果title:表达式计算出来结果的显示sdef示例:sdefvalue62.8/valuetitle6.28E+01/title/sdef文件类型:files增加接口value:filesfile!—文件id--/file!—多个文件--/filestitle:文件标题列表sdef示例:sdefvaluefilesfile1f62831923a78f8a0123a7fc4c5a00c3/filefile402880e823b2359c0123b2534caf001/filefiles/valuetitle计算机1班编译原理成绩单.xls,2009年度xx大学计算机专业课程表.doc/title/sdef引用类型:value:引用记录的urititle:引用记录title字段的标题sdef示例:sdefvaluecn.csdb.vdb.vdbstu.course/1001/valuetitle编译原理/title/sdef集合类型:value:itemsitem引用记录的id(带/的格式)/item!—包含多个引用记录--/itemstitle:记录数sdef示例:sdefvalueitemsitemcn.csdb.vdb.vdbstu.teacher/1001/itemitemcn.csdb.vdb.vdbstu.teacher/1003/itemitemcn.csdb.vdb.vdbstu.teacher/1005/item/items/valuetitle3/title/sdef化学结构式:ChemStructurevalue:SMILES字符串title:空sdef示例:sdefvalueC1=CC2=C(C=C1)C=CC=C2/valuetitle/title/sdef5数据格式定义6.1采用协议HTTP1.1(超文本传输协议)超文本传输协议(HTTP)是一种为分布式,合作式,超媒体信息系统。它是一种通用的,无状态(stateless)的协议,除了应用于超文本传输外,它也可以应用于诸如名称服务器和分布对象管理系统之类的系统,这可以通过扩展它的请求方法,错误代码和报头来实现。HTTP的一个特点是数据表现形式是可输入的和可协商性的,这就允许系统能被建立而独立于数据传输。HTTP是一个客户端和服务器端请求和应答的标准(TCP)。客户端是终端用户,服务器端是网站。通常,由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端发送过来的请求。一旦收到请求,服务器(向客户端)发回一个状态行,比如HTTP/1.1200OK,和(响应的)消息,消息的消息体可能是请求的文件、错误消息、或者其它一些信息。6.2接口安全采用基于IP地址的身份验证方式。在服务调用的过程中,服务提供者获取调用者的ip地址,在本地保存的授权访问ip地址列表中查询,认证通过执行服务返回数据,不通过则拒绝服务。认证流程如下图所示:图6-1基于ip地址的身份认证方式拒绝服务返回数据格式:?xmlversion=1.0encoding=UTF-8?responseheadcode403/codemessage服务拒绝访问-ip地址认证未通过/message/headbody/body/response6.3连接方式POST方式(必须实现):POST方法被用于请求源服务器接受请求中的实体作为请求资源的一个新的从属物。POST方法的实际功能是由服务器决定的,并且经常依赖于请求URI(Request-URI)。POST提交的实体是请求URI的从属物,就好像一个文件从属于一个目录,一篇新闻文章从属于一个新闻组,或者一条记录从属于一个数据库。POST方法的响应是可缓存的。GET方式(可选):GET方法意思是获取被请求