APP下载

基于RESTful架构的科技信息共享接口系统的设计

2018-12-22

软件 2018年7期
关键词:条数列表架构

黄 沛



基于RESTful架构的科技信息共享接口系统的设计

黄 沛

(四川省科学技术信息研究所,四川 成都 610016)

在一个包含了多个子系统的大型科技综合服务平台系统里,需要各个子系统间相互交换共享数据,为此采用RESTful架构设计了科技信息共享接口系统,为各个子系统提供了相互存取各自可公开的私有数据的能力,同时避免了传统方法开发量大兼容性差的弊端。

RESTful;数据共享;Web Service;HTTP协议

0 引言

一个大型的科技综合服务系统往往是由多个子系统构成的:例如信息采集系统、交流评论系统、发布展示系统等,这些系统内部的数据资源经常需要相互之间进行交换共享,然而通过传统的方法存在着开发工作量过大、平台兼容性差等缺陷,通过基于RESTful架构设计一套简洁高效安全的科技信息共享接口系统,可以比较有效的解决上述问题。

1 技术原理

RESTful[1]架构是一种互联网软件架构,它结构清晰、符合标准、易于理解、扩展方便,正得到越来越多网站系统的采用。RESTful架构是Roy Thomas Fielding博士首先提出的一种互联网软件架构原则,REST是Representational State Transfer(表现层状态转换)的缩写,Roy Thomas Fielding博士是HTTP协议(1.0版和1.1版)的主要设计者。

此架构的基本原理[1]描述如下:

(1)将互联网上任何一个资源(包括文本、图片、视频、歌曲、服务等),用一个URI(统一资源定位符)指向它,由于资源表示一种实体,所以URI在命名时应该使用名词而不能是动词,例如;http://api.somesite.net/users。

(2)通过HTTP协议中四个操作方法:GET、POST、PUT、DELETE完成对上述资源的存取操作,其中GET用来获取资源(一项或多项),POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源。

(3)资源的表现形式需要客户端和服务端通过HTTP协议进行协商,即客户端需要通过Accept头请求其可以接受的特定的资源格式,服务端则通过Content-Type头告诉客户端其发出的资源格式。对于文本资源,可以采用HTML、XML、JSON 等格式,对于图片资源,可以采用用PNG或JPG格式。

2 优势

采用RESTful架构设计的互联网软件,相对于传统的使用基于SOAP(Simple Object Access Protocol,即简单对象访问协议)协议的Web Service[7-9](即Web服务)模式开发的应用系统,具有以下 优点[2-6]:

(1)可以高效利用缓存来提高响应速度。SOAP Web Service系统随着不断的增加协议内容,体系变得庞大臃肿,流程环节繁多,使得服务器提供数据存取的缓存机制变得非常复杂,甚至不可实现;而RESTful系统则由于实现简洁、环节单一,服务器可以非常方便的对其提供各种缓存加速机制。

(2)软件依赖性小。SOAP Web Service系统由于体系复杂,为方便开发,不同的开发环境需要提供各自的开发框架;而RESTful系统则只要开发环境能够支持HTTP协议[10]开发即可。

(3)不需要额外的资源发现机制。SOAP Web Service系统在接口定义上有严格的要求,各种数据规格都有精确的规定,因而也要求必须定义一套复杂的资源发现机制,而RESTful系统则不用这样。

(4)兼容性好。采用RESTful架构开发的系统,可以在不同的开发环境中直接使用,不需额外配置,而SOAP Web Service系统则必须根据不同的开发环境进行不同程度的调整。

3 系统实现

3.1 全库检索

1、功能:获取系统所有可公开的信息列表。

2、API接口定义:

GET/alllist?catalog=&keyword=&thispage=&pagesize=<4>

catalog即搜索的栏目编号;keyword即搜索关键词;thispage 和 pagesize 为分页使用的参数,分别表示当前要取第几页的数据和每页数据条数。

3、返回值:返回结果为如下Json格式:

{

“issuccess” : “true/false” , //数据获取成功或失败

“totalnum” : “100” , //总条数

“wordspace”: “搜索的关键词”

//返回搜索关键词, 套红时使用

“result” : [ //结果列表

{

“name” : “标题”, //信息标题

“url” : “http://xxx.com/Detail.aspx?

pid=123456”,

“infoabstract”: “摘要”,

//信息摘要内容(200字以内)

“source”: “信息来源名称”,

//信息来源名称

“sourcewebsite” :“http://xxx.com”,

//信息来源网址

“createtime” : “2014-08-04”

//发布时间

},

],

“hint” : “成功/失败的说明。”//数据获

取成功说明或失败的原因

}

3.2 最热门数据

1、功能:获取最热门的数据列表,默认返回最前面的8条数据。

2、API接口定义:

GET /toplist?catalog=

catalog即搜索的栏目编号。

3、返回值:返回结果为如下Json格式:

{

“issuccess” : “true/false” , //数据获取成功或失败

“result” : [ //结果列表

{

“name” : “标题” , //信息标题

“url” : “http://xxx.com/Detail.aspx?

pid=123456”,

“createtime” : “2014-08-04”

//发布时间

},

] ,

“hint” : “成功/失败的说明。”//数据获取成功说明或失败的原因

}

3.3 科技文献数据

1、功能:获取科技文献数据列表。

2、API接口定义:

GET/techdoc?tp=&keyword=&thisPage= &pageSize=

tp即文献类型;keyword即查询关键字;thisPage即当前页,起始页码为1;pageSize即每页显示条数,最大30条。

3.4 科技成果数据

1、功能:获取科技成果数据列表。

2、API接口定义:

GET/techresult?tp=&thisPage=&pageSize=

tp即数据分类(科技成果:0,科技项目:1,科技需求:2,科技专家:3);thisPage即当前页,起始页码为1;pageSize即每页显示条数,最大30条。

3.5 科技报告数据

1、功能:获取科技报告数据列表。

2、API接口定义:

GET/techreport? keyword=&thisPage=

&pageSize=

keyword即查询的关键字,格式为“字段:关键字”,多关键字检索用逗号分开,例如“字段1:关键字1,字段2:关键字2”,采用UTF-8编码;thisPage即当前页,起始页码为1;pageSize即每页显示条数,最大30条。

4 结语

采用RESTful架构设计的科技信息共享接口系统,有效解决了大型科技综合服务系统中各个分/子系统间数据共享交换的难题,简化了程序设计,改善了各系统间的兼容性,提高了平台的总体性能。目前,该共享接口系统已在四川省科技创新综合服务平台中得到应用,经过实际运行证明其设计思想是正确和可行的,为今后类似系统的设计开发提供了借鉴和参考。

[1] Leonard Richardson, Sam Ruby, Mike Amundsen. RESTful Web APIs[M]. O¢Reilly Media, 2013.

[2] 李莹, 柳生鹏, 赵朗, 潘纲. 自适应RESTful Web API进化模型的研究[J]. 计算机集成制造系统, 2017, (5): 1020-1030.

[3] 唐明伟, 苏新宁, 蒋勋. RESTful Web服务和知识库协同驱动的突发事件网络舆情实时追踪[J]. 山东大学学报: 理学版, 2017, (6): 49-55.

[4] 王卫列. Restful+OData: 企业信息系统集成的简明之道[J]. 计算机应用与软件, 2017, (12): 147-153

[5] 曹步清, 文一凭, 王少伟. 基于Restful的Mashup应用服务系统[J]. 计算机应用与软件, 2016, (2): 17-20, 50.

[6] 高攀攀, 王健, 黄颖, 何克清. 互联网上基于SOAP和REST的Web服务的对比分析[J]. 小型微型计算机系统, 2015, (11): 2417-2421.

[7] Wang S, Sun Q, Zou H, Yang F. Particle Swarm Optimization with Skyline Operator for Fast Cloud-based Web Service Composition[J]. Mobile Networks and Applications, 2013, 18(1): 116-121.

[8] Wang S, Zheng Z, Wu Z, Lyu M, Yang F. Reputation Measurement and Malicious Feedback Rating Prevention in Web Service Recommendation Systems[J]. IEEE Transactions on Services Computing, 2015, 8(5): 755-767.

[9] 陈玉亮, 薛燕平. 基于WebService的数字档案资源集成研究与实现[J]. 软件, 2015, 36(9): 39-41.

[10] 阮晓龙. HTTP协议状态检测与性能分析软件的设计与实现[J]. 软件, 2015, 36(7): 136-141.

Design of Sharing Interface System For Technology Information Base on Restful Architecture

HUANG Pei

(Institute of Scientific and Technical Information of Sichuan, Chengdu 610016, Sichuan, China)

In a large-scale technology integrated service platform system that includes multiple subsystems, mutual exchange of shared data among the various subsystems is required. A RESTful architecture is adopted to design a sharing interface system for technology information to provide mutual access for each subsystem. It provides each subsystem with the ability to access each other¢s disclosed private data, and avoids the disadvantages of the large development amount and poor compatibility of the traditional methods.

RESTful, Data sharing, Web Service, Http protocol

TP393.09

A

10.3969/j.issn.1003-6970.2018.07.036

黄沛(1975),男,研究方向:计算机应用。

本文著录格式:黄沛. 基于RESTful架构的科技信息共享接口系统的设计[J]. 软件,2018,39(7):170-172

猜你喜欢

条数列表架构
基于FPGA的RNN硬件加速架构
学习运用列表法
功能架构在电子电气架构开发中的应用和实践
巧算金鱼条数
LSN DCI EVPN VxLAN组网架构研究及实现
人民网、新华网、中国非公企业党建网两新党建报道条数排行
对多边形对角线条数的探究
每只小猫给了猫妈妈几条鱼
一种基于FPGA+ARM架构的μPMU实现
不含3-圈的1-平面图的列表边染色与列表全染色