项⽬编号 INFO-115-C01
⽂档编号 TR-REC-032 中国科学院数据应⽤环境建设与服务元数据访问服务接⼝规范(征求意见稿)
中国科学院数据应⽤环境建设与服务项⽬组2009年6⽉⽬ 次1 范围 (1)
2 规范性引⽤⽂件 (1)3 术语和定义 (1)4 符号与缩略语 (2)5 数据格式定义 (3)
5.1 接⼝的编码⽅式及响应格式 (3)5.1.1 接⼝编码⽅式 (3)5.1.2 接⼝响应格式 (3)5.1.3 接⼝响应请求状态码 (3)6 接⼝规范 (4)6.1 采⽤协议 (4)6.2 接⼝安全 (5)6.3 连接⽅式 (6)6.4 技术实现 (6)6.5 接⼝列表 (6)6.6建库单位开放接⼝ (7)6.6.1 元数据收割接⼝ (7)6.6.2其他接⼝ (13)
附录A (资料性附录) OpenURL (18)元数据访问服务接⼝规范1 范围
本规范规定了中国科学院数据应⽤环境建设与服务项⽬内元数据访问服务接⼝采⽤的协议、连接⽅式、调⽤参数以及数据的返回格式。
本规范适⽤于中国科学院数据应⽤环境建设和服务项⽬中元数据访问服务接⼝。2 规范性引⽤⽂件
下列⽂件对于本⽂件的应⽤是必不可少的。凡是注⽇期的引⽤⽂件,仅所注⽇期的版本适⽤于本⽂件。凡是不注⽇期的引⽤⽂件,其最新版本(包括所有的修改单)适⽤于本⽂件。GB 18030-2005 信息技术 中⽂编码字符集TR-REC-014 核⼼元数据标准TR-REC-017 资源唯⼀标识符规范3 术语和定义
下列术语和定义适⽤于本规范。z资源 resource
可以被标识的实体对象或服务。
在本规范准中,特指可被标识的数据集、数据或服务。z数据集 dataset
由相关数据组成的可标识集合。⼀个数据集可能是⼀个较⼩的数据集合,在物理上或逻辑上位于⼀个较⼤的数据集之内;反之,⼀个数据集也可能由若⼲数据集组成,是这些⼦数据集的⽗数据集。
本规范中,数据集指中国科学院数据应⽤环境建设与服务项⽬的主题数据库、参考数据库、专题数据库、专业数据库及其各级⼦库。z数据 data
对事实、概念或指令的⼀种形式化表⽰,适⽤于以⼈⼯或⾃动⽅式进⾏通信、解释或处理。
本规范中,数据是指所有能输⼊到计算机并被计算机程序处理的符号的介质的总称,是⽤于输⼊电⼦计算机进⾏处理,具有⼀定意义的数字、字母、符号和模拟量等的通称。z服务 service
本规范中,服务是指数据应⽤环境建设与服务项⽬中数据集满⾜应⽤系统或者⼈的需要时,与之发⽣的“直接”接触⾏为及有关结果。
z标识符 identifier
⽤于标识数据对象或服务项⽬的⼀组字符。z资源唯⼀标识符 resource unique identifier唯⼀标识资源的⼀组字符。4 符号与缩略语
URI 统⼀资源标识符(Uniform Resource Identifier)URL 统⼀资源定位符(Uniform Resource Locator)XML 可扩展标记语⾔(Extensible Markup Language)5 数据格式定义
5.1 接⼝的编码⽅式及响应格式5.1.1 接⼝编码⽅式
接⼝响应的数据基于xml语⾔格式,编码⽅式采⽤⾃定义编码的⽅式(常⽤编码⽅式包括:UTF-8、GBK、GB2312、ISO-
8859-1等),接⼝响应数据所使⽤的编码⽅式必须在返回XML头信息的encoding属性中说明。例如:
5.1.2 接⼝响应格式
请求服务响应的状态码
相关信息
5.1.3 接⼝响应请求状态码
以下状态码只列出接⼝中遇到的普遍问题,可根据数据库建库规范中规定的范围增加。通⽤状态码相关说明200 服务调⽤成功400 请求格式错误401 未授权访问402 不可识别的verb403 服务器拒绝访问404 指定的资源未找到408 请求超时500 服务器内部错误响应状态码返回格式:
响应请求状态码
响应请求状态码的描述6 接⼝规范6.1 采⽤协议
HTTP1.1(超⽂本传输协议)
超⽂本传输协议(HTTP)是⼀种为分布式,合作式,超媒体信息系统。它是⼀种通⽤的,⽆状态(stateless)的协议,除了应⽤于超⽂本传输外,它 也可以应⽤于诸如名称服务器和分布对象管理系统之类的系统,这可以通过扩展它的请求⽅法,错误代码和报头来实现。HTTP的⼀个特点是数据表现形 式是可输⼊的和可协商性的,这就允许系统能被建⽴⽽独⽴于数据传输。
HTTP是⼀个客户端和服务器端请求和应答的标准(TCP)。客户端是终端⽤户,服务器
端是⽹站。通常,由HTTP客户端发起⼀个请求,建⽴⼀个到服务器指定端⼝(默认是80端⼝)的TCP连接。HTTP服务器则在那个端⼝监听客户端发送过来的请求。 ⼀旦收到请求,服务器(向客户端)发回⼀个状态⾏,⽐如\"HTTP/1.1 200 OK\",和(响应的)消息,消息的消息体可能是请求的⽂件、错误消息、或者其它⼀些信息。6.2 接⼝安全
采⽤基于IP地址的⾝份验证⽅式。在服务调⽤的过程中,服务提供者获取调⽤者的ip 地址,在本地保存的授权访问ip地址列表中查询,认证通过执⾏服务返回数据,不通过则拒绝服务。认证流程如下图所⽰:
图6-1 基于ip地址的⾝份认证⽅式拒绝服务返回数据格式:
403
服务拒绝访问-ip地址认证未通过
6.3 连接⽅式
POST⽅式(必须实现):
POST ⽅法被⽤于请求源服务器接受请求中的实体作为请求资源的⼀个新的从属物。
POST⽅法的实际功能是由服务器决定的,并且经常依赖于请求URI(Request-URI)。POST提交的实体是请求URI的从属物,就好像⼀个⽂件从属于⼀个⽬录,⼀篇新闻⽂章从属于⼀个新闻组,或者⼀条记录从属于⼀个数据库。POST⽅法的响应是可缓存的。GET⽅式(可选):
GET⽅法意思是获取被请求URI(Request-URI)指定的信息(以实体的格式)。如果请求URI涉及到⼀个数据⽣成过程,那么这个⽣成的数据应该被作为实体在响应中返回,但这并不是过程的资源⽂本,除⾮资源⽂本恰好是过程的输出。GET请求的响应是可缓存的。6.4 技术实现
接⼝采⽤OpenURL技术实现,OpenURL技术规范详见附录A。接⼝语法格式说明:http://url/service?[query]
[?]号前⾯为科学数据库参建单位提供的服务地址,需要在资源注册系统
(http://www.doczj.com/doc/71e5ec8171fe910ef12df894.html )中注册。只有注册的服务科学数据中⼼才可以进⾏访问。[query]部分包括多组参数名称与参数值,其中最主要的verb参数,定义了访问服务的具体名称见接⼝列表中的接⼝名称。6.5 接⼝列表
本规范所涉及的接⼝见下表:
接⼝提供⽅ 接⼝类型 接⼝名称 接⼝描述
dhGetDatabaseMetadata 核⼼元数据获取接⼝ 建库单位 元数据收割接⼝
dhGetCatalog 概念树收割接⼝
其他接⼝ <缺省> 接⼝基本信息获取接⼝ sysDatabaseStatistic 数据库统计接⼝ sysGetEntityList 数据表记录数获得接⼝cmsGetNews 新闻收割接⼝ sysStatus 服务状态监控接⼝6.6建库单位开放接⼝6.6.1 元数据收割接⼝
6.6.1.1 dhGetDatabaseMetadata接⼝说明:
元数据收割接⼝,根据数据集唯⼀标识,获得当前数据集的核⼼元数据信息请求参数说明:verb:dhGetDatabaseMetadatauri:数据集唯⼀标识调⽤⽰例:
http://url/service?verb=dhGetDatabaseMetadata&uri=cn.csdb.plants响应格式说明:
详见《TR-REC-014 核⼼元数据标准标准》响应格式⽰例:唯⼀标识符关键词(可重复)简介⽬的类型
创建者(可重复)其他贡献者来源创建⽇期
更新频率 数据格式记录数存储量时间范围空间范围
类⽬名称(可重复)分类表语种
URL(可重复)数据志质量报告关联类型
关联数据库名称关联数据库URI权限声明共享声明联系⼈名称单位
通信地址电话Email元数据标准元数据创建⽇期联系⼈姓名单位
通信地址电话Email
6.6.1.2 dhGetCatalog接⼝说明:
获取主题库概念树(导航⽬录)接⼝请求参数说明:verb:dhGetCatalog调⽤⽰例:
http://url/service?verb=dhGetCatalog响应格式说明:
概念树包括root,node和leaf三个层次,其中,root是根节点,表⽰概念树的顶层概念;node是枝⼲节点,表⽰概念树的中间层概念,中间层概念可不⽌⼀层;leaf 是叶⼦节点,表⽰概念树的底层概念。
root根节点通过四个属性字段加以描述,即uri,url,introduction,name。其中,uri是顶层概念的唯⼀标识;url是通过顶层概念可以访问到的内容的⽹址;introduction 是顶层概念的解释性内容说明;name是根节点名称。node枝⼲节点通过五个属性字段加以描述,即uri,url,introduction,order,name。其中,uri是中间层概念的唯⼀标识;url是通过中间层概念可以访问到的内容的⽹址;introduction是中间层概念的解释性内容说明;order是中间层概念对应内容的显⽰顺序;name是枝⼲节点名称。
leaf叶⼦节点通过五个属性字段加以描述,即uri,url,introduction,order,name。其中,uri是底层概念的唯⼀标识;url是通过底层概念可以访问到的内容的⽹址;introduction是底层概念解释性的内容说明;order是底层概念对应内容的显⽰顺序;name是叶⼦节点名称。
概念树唯⼀标⽰符详见《TR-REC-017 资源唯⼀标识符规范》相关规定。响应格式⽰例:
url=\"http://www.doczj.com/doc/71e5ec8171fe910ef12df894.html \" introduction=\"化学作为根节点,包括应⽤化学和有机化学等枝⼲节点。\" name=\"化学\">
url=\"http://www.doczj.com/doc/71e5ec8171fe910ef12df894.html /xxx\" introduction=\"应⽤化学涉及到有关化学应⽤相关的内容,包括化学配⽅、化⼯产品、精细化化⼯产品等。\" order=\"1\" name=\"应⽤化学\">
url=\"http://www.doczj.com/doc/71e5ec8171fe910ef12df894.html /xxx\" introduction=\"有机化学涉及到化学物结构、化学反应和化学品基本信息等内容。\" order=\"2\" name=\"有机化学\">
url=\"http://www.doczj.com/doc/71e5ec8171fe910ef12df894.html /xxx\" introduction=\"化合物结构是有机化学的核⼼内容之⼀,包括化合物结构、化合物名称、化合物⼆维坐标、三维坐标、环系统等)。\"order=\"3\" name=\"化合物结构\">
url=\"http://www.doczj.com/doc/71e5ec8171fe910ef12df894.html /xxx\" introduction=\"化学反应覆盖了国内外化学⽂献中报道的⼤量化学反应,可获取相关反应信息及参考⽂献等,对反应机理研究,合成路线设计具有相当参考意义。\" order=\"4\" name=\"化学反应\">order=\"1\">化合物结构名称基本性质
url=\"http://www.doczj.com/doc/71e5ec8171fe910ef12df894.html /xxx \" introduction=\"有机化合物的cas编号\" order=\"4\">cas登录号6.6.2其他接⼝6.6.2.1 缺省参数接⼝接⼝说明:
获取系统基本信息接⼝,包括接⼝版本号,开发语⾔,实现服务名称,编码⽅式,建库单位信息(联系⼈,电话,邮件等)等信息
请求参数说明:
根据服务注册地址访问,⽆任何参数调⽤⽰例:
直接访问服务注册地址http://url/service响应格式说明:⽬前实现的接⼝版本
开发语⾔(如java,php,VDB等)实现的服务,以,号分隔服务启动时间联系⼈姓名
联系⼈电话联系⼈电⼦邮件响应格式⽰例:1.0
VisualDB 1.3
usrGetUser,sysDatabaseStatistic,dhGetIndexespportedVerbs>2009-01-01 12:27:08接⼝联系⼈姓名(010)8123****
test@http://www.doczj.com/doc/71e5ec8171fe910ef12df894.html6.6.6.2 sysDatabaseStatistic接⼝说明:
数据库统计接⼝,获取每个数据集的DBMS的名称,版本号,数据量等信息。请求参数说明:
verb:sysDatabaseStatistic调⽤⽰例:
http://url/service?verb=sysDatabaseStatistic响应格式说明:
数据库管理系统名称(如mysql,oracle,sqlserver等)数据库版本号最后修改时间数据集唯⼀标识数据量(字节数)数据集包含的⽂件数量
数据集包含的⽂件总⼤⼩(字节)响应格式⽰例:MYSQL5.1.5
2008-01-01 12:30:09cn.csdb.gibbs27262976026456785400
6.6.6.3 sysGetEntityList
接⼝说明:
根据数据库唯⼀标识获得数据表的信息(包括表名,记录数)请求参数说明:verb:sysGetEntityListuri:数据库唯⼀标识调⽤⽰例:
http://url/service?verb=sysGetEntityList&uri=cn.csdb.plants.002响应格式说明:表名记录数最后修改时间响应格式⽰例:
cn.csdb.plants.002.tablename26789
2009-01-01 15:28:376.6.6.4 cmsGetNews接⼝说明:新闻收割接⼝请求参数说明:verb:cmsGetNews
startDate:获取新闻起始⽇期endDate:获取新闻结束⽇期调⽤⽰例:
http://url/service?verb=cmsGetNews&startDate=2009-01-01&endDate=2009-02-05 响应格式说明:显⽰图⽚的URL来源更新时间访问地址响应格式⽰例:
http://www.doczj.com/doc/71e5ec8171fe910ef12df894.html2009-09-02 10:20:37
http://www.doczj.com/doc/71e5ec8171fe910ef12df894.html /prohtml/0.new.news/pages/O0437.ht ml6.6.6.5 sysStatus接⼝说明:
系统服务状态监控接⼝请求参数说明:
verb:sysStatus调⽤⽰例:
http://url/service?verb=sysStatus响应格式说明:In service,Out service响应格式⽰例:200
因篇幅问题不能全部显示,请点此查看更多更全内容