当前位置:首页 期刊杂志

基于RESTful Web Services的智能报表系统设计

时间:2024-05-04

杨丝雨,孙连山

(陕西科技大学 电气与信息工程学院,陕西 西安 710021)

基于RESTful Web Services的智能报表系统设计

杨丝雨,孙连山

(陕西科技大学 电气与信息工程学院,陕西 西安 710021)

为提高企业总部与分支机构之间报表数据交换效率,降低报表系统客户端与服务器之间的耦合度,结合REST架构简单性、松散耦合、高度可伸缩性以及良好的性能等特点,提出了以RESTful Web Services作为在线智能报表系统Web服务的方案。分析了系统的整体业务功能,详细介绍了系统在服务端和客户端的设计,实现了该系统,验证了RESTful Web Services对提高系统整体性能的作用。

RESTful;智能报表;URI;HTTP方法;智能报表系统

0 引言

在企业信息化建设中,报表占据着非常重要的地位,越来越多的智能报表系统应运而生。大型企业通常采用树状的组织架构,总部下辖多个分部,而各个分部又可能进一步管辖多个单位,每个单位甚至又可以进一步细分为部门和班组。智能报表系统就用于满足企业总部与分支机构之间的基于灵活可定制报表的数据交换和汇总。主要功能包括:企业各单位设计创建报表模板、分发报表模板至下属单位或协作单位、对所获得的上报数据进行汇总并持久化封存,形成企业管理的信息资源库。各单位需填写来自上级或协作单位的报表模板并上报企业运行数据。显而易见,在企业不同层次的机构之间存在着复杂的数据交换,协调着企业运营。提高数据交换效率,并加快其查询速度是智能报表系统亟需解决的问题。

多数研究者倾向于报表系统的灵活性以及方便用户使用等特性的研究,例如,苏子林和王林[1]研究并实现了中国式报表的通用格式,设计出多层结构的智能报表系统,使得系统能够面向开发人员、系统管理员和一般用户(业务处理人员和高层决策人员)。胡佐和肖文[2]介绍了将模板技术应用于智能报表系统,提高了系统的易用性及可维护性。本文旨在使用RESTful API技术,提高智能报表系统的数据交换效率及系统整体性能,同时保持其灵活性、易用性等特点。

1 REST架构

REST(Representational State Transfer,表述性状态移交)是由Roy Fielding博士2000年在其博士于论文中首次提出,作为分布式系统设计的一种架构风格,它使得HTTP协议最初的设计思想得到了最大发挥,让人们真正理解HTTP的本来面貌。在REST的名称“表述性状态转移”中,省略了主语,表述性指资源的表述性,所谓“资源”,就是网络上的一个实体,或者说是网络上的一个具体信息,可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的实在。用一个特定的URI(统一资源定位符)指向每种资源,要获取该资源,只需访问它的URI。因此URI就成了每个资源的地址或独一无二的识别符[3]。对资源的获取、创建、修改和删除4种基本操作对应于HTTP协议提供的GET、POST、PUT和DELETE方法[4]。当一个客户端对一个资源发起GET请求时,服务器会以一种有效的方式提供一个采集了资源信息的文档作为回应。这就是表述——一种以机器可读的方式对资源当前状态的说明[5]。

总体而言,在REST的概念中,整个Web被看作是一组资源的集合,资源由URI标识,对资源进行的操作由客户端指定的URI和HTTP协议动词的组合来实施,同时将资源和资源的表示分开,为构建可扩展、简单性、可移植和松耦合的Web程序提供了一个架构上的准则,REST这种基于资源的设计改变了传统的基于服务的设计思想,可以降低开发的复杂性,提高系统的可伸缩性,提高资源的访问效率[6]。

2 系统业务分析

RESTful Web服务是面向资源的服务,因此构建基于RESTful Web服务的智能报表系统,重点是分析智能报表系统的业务,将业务所涉及的事物抽象成资源,根据业务为每个资源设计URI和资源表示。资源确定后,才可以设计和实现整个系统。本文所设计的智能报表系统基本业务功能主要包括六大部分。

2.1 报表模板及模板类别管理

模板定义了用户上报数据的规范,企业内部数据流转是基于模板的,因此报表模板在智能报表系统中占据重要地位。模板具有类别,例如财务报表、生产报表,生产报表又可以细分为生产情况完成表、生产成本表等。即模板的类别形成一个层次结构,而模板则是最下层类别中的元素。企业中的各个部门可基于系统创建的报表类别树新增自定义的模板。每个单位自主创建一系列模板。每个单位可以查找并使用其自己创建的模板或系统提供的模板,创建周期性下发任务或单个下发任务。

2.2 数据采集任务管理

数据采集任务管理即报表的下发任务管理,是用户管理其数据采集工作过程的核心概念。数据采集任务可以大致分为两类:一类是随机发布的单个采集任务,一类是周期性下发的一系列采集任务。

2.3 上报任务及上报数据管理

企业内的某个部门既可能作为数据采集方,主动下发报表模板,采集数据,又可能作为数据提供方,填报数据。一般地,一个数据采集的报表模板会下发给多个不同的部门,即每个部门实际上接受了一个需要完成的数据上报任务,需要在系统中填报数据并将这些数据保存在数据库中。即下发任务和上报任务之间是一对多的关系。

2.4 报表汇总数据管理

针对同一报表模板进行填报所得的上报数据均可被汇总在一起,展现企业运营过程中的价值和规律。因此汇总表与报表模板以及汇总范围密切相关。报表模板和汇总范围就确定了一个汇总表。对符合同一模板的不同数据上报表的汇总,就是将各单位数据上报表中相同位置的单元格数据进行累加并保存在汇总表中的相应位置。

允许用户对汇总表的相应位置进行透视查询,获取汇总明细数据,即观察该汇总数据的数据来源以及具体的数据内容。

2.5 企业分支机构管理

企业一般包含总部与多个分支机构。各个分支机构内部也包含多个部门,分支机构之间也存在着层次关系,系统需要对企业的各个分支机构进行管理。

2.6 用户信息管理

按照用户权限,可以将用户分为一般用户、系统管理员及超级管理员。除了超级管理员外,其他系统用户必须隶属于唯一的一个部门,允许管理员新增人员、修改其基本信息、根据其姓名或编号查询人员。允许所有用户修改其基本信息及登录密码,但一般用户不能修改其部门等信息。

3 系统设计

REST风格的Web Services即按照REST原则创建“轻量级”的Web服务,它是一种面向资源的架构[7],所有智能报表系统的数据和功能都被设计成资源对外呈现,用户通过资源的URI和统一的HTTP方法(GET、POST、PUT、DELETE等)访问资源、执行操作。本文提出了一种基于REST架构风格的Web服务的系统体系结构(见图1),主要由Web服务客户端和Web服务器两大部分构成。

图1 REST风格Web服务体系结构

客户端部分包括Web浏览器、桌面应用以及移动设备等。本文所设计的智能报表系统采用B/S架构即浏览器和服务器的网络结构模式[8]。这种结构具有分布性特点,可以随时随地进行查询、浏览等业务处理,并且方便业务的拓展,因此采用Web浏览器作为Web服务的客户端。通过报表资源的URI(通常就是URL)和标准的HTTP方法向服务器发出请求。如果请求成功,服务器将返回HTTP响应状态码200 OK,对于GET和PUT请求将返回相应格式的资源表述(如XML、JSON等);否则,服务器返回其它相应的HTTP响应状态码和错误信息。对于本文所采用的Web浏览器,可以直接在地址栏输入地理信息资源的URL,根据所需通过HTTP GET方法获取资源相对应的表述。如下为通过GET请求报表模板资源的请求和响应代码,资源的表述形式为JSON格式,资源的具体表现可在HTTP请求头中进行设置:

GET /base/template/10001 HTTP/1.1

Host:localhost:8080

服务器返回的响应:

HTTP/1.1 200 OK

Content-Type:application/json

{

“Template”:[

{

“TemplateID”: “10001”,

“TemplateName”: “for test”,

““”TemplateData”: “0x2deab8f…..”,

“TemplateType”: “type”,

“TemplateDesc”: “for test”,

“CreatorId”: “00001”,

“CreatorName”: “sonya”,

“CreateTime”: “2016-10-20T15:58:22.674Z”

}

]

}

服务器端主要由Web服务器、服务应用程序和数据库组成。当Web服务器接收到REST服务请求后,由服务应用程序来解析并处理请求,然后对数据库执行相应的CRUD操作,并返回相应请求的资源表示。依据上文对智能报表系统业务进行分析,所有模板、周期性下发任务、上报任务及报表数据、汇总报表数据、系统用户信息,以及企业各个分支机构信息等均应被设计为资源,有相应的URI和允许的HTTP操作(即RESTful API),本文以模板资源为例,分析资源的抽象过程,其它主要资源的URI和HTTP方法如表1所示。为便于系统扩展,本文在设计时为每类资源均提供了HTTP的4个标准方法。

表1 部分资源及其对应的URI和HTTP方法

报表系统的业务功能复杂多样,但都围绕报表模板展开,因此模板可被抽象成资源,其中模板的创建对应资源的创建,查询对应资源的读取,对模板的修改对应资源的修改,废弃对应资源的删除。查询还可细分为3类:查询所有模板、按模板ID查询、按关键词查询。进一步分析发现,模板的创建、查询和按关键词查询均是针对整个模板资源而言,因此模板资源还需要划分为所有模板资源和单个模板资源,其URI设计如下:①所有模板资源URI:/template;②单个模板资源URI:/template/{templateid}。

4 结语

利用Restful Web Services实现企业信息管理系统,可以避免传统基于SOAP协议的Web Services复杂的协议集解析,更易于实现,更符合Web的本源,具有简单性、可寻址性及缓存性等特性,服务器的开销和维护成本更低,同时方便更多的服务无缝地在桌面和手持式平台进行大规模部署。本文针对REST架构的Web Services的特点,研究了其在智能报表系统中的应用与实现。所设计的方案能够提高智能报表系统数据交换的效率,也提高了系统的整体性能,同时降低了开发成本,具有良好的可扩展性和广阔的应用前景。此后,还需要更深入地研究REST这种全新并且优秀的Web设计风格,以更好地为企业信息系统服务。企业信息管理系统是个庞大复杂的系统,有着不同的机构、不同类别的内容等,因此,如何规划数据集、如何将数据集转化为资源、如何命名资源、如何设计表示、如何将资源与资源间的联系表达出来即创建资源的连通性整合资源等诸多问题都需要作进一步研究。

[1] 李大鹏.基于Rest风格web服务的研究[J].电子商务,2010(4):63-65.

[2] 阮一峰.理解RESTful架构[EB/OL].[2011-9-12].http://www.ruanyifeng.com/blog/2011/09/restful.html.

[3] RICHARDSON L,RUBY S.RESTful web services[M].Reilly Media,2007.

[4] 王非,蔡勇,贺志军.RESTful Web Services在信息系统中的应用[J].计算机系统应用,2013,2(22):221-225.

[5] [美]RICHARDSON,L AMUNDSEN M.RESTful Web APIs中文版[M].赵震一,李哲,译.北京:电子工业出版社,2014.

[6] 单剑锋,马德锦.常用Web服务技术研究[J].计算机技术与发展,2013,6(23):253-257.

[7] L RICHARDSON.RESTful web services中文版[M].徐涵,译.北京:电子工业出版社,2008.

[8] 王进.B/S模式下的三层架构模式[J].软件导刊,2011,10(3):30-31.

(责任编辑:孙 娟)

杨丝雨(1993-),女,陕西潼关人,陕西科技大学电气与信息工程学院硕士研究生,研究方向为软件技术;孙连山(1977-),男,黑龙江佳木斯人,博士,陕西科技大学电气与信息工程学院副教授,研究方向为可信软件技术、软件安全工程。

10.11907/rjdk.162841

TP319

A

1672-7800(2017)003-0077-03

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!