一种基于微服务架构的通用信息管理系统的制作方法

文档序号:12967626阅读:371来源:国知局
一种基于微服务架构的通用信息管理系统的制作方法与工艺

本发明涉及电子信息领域,尤其涉及一种基于微服务架构的通用信息管理系统。



背景技术:

传统的企业软件oa、erp、crm等因为需要满足各种各样复杂且多变的业务需求,通常会包含有成百上千的功能点,而这些功能点都作为一个完整的单体式架构应用进行打包部署。所有的模块功能都是整体部署在一台服务器上,一方面,可能会面临为了若干热点功能的可用而导致浪费的过量冗余资源,面对热点功能时对应用进行横向扩展时非常困难;另外一方面,随着公司或者组织业务的不断扩张,需求不断的增加,越来越多的人加入开发团队,代码库也在急剧膨胀。在这种情况下,单块架构的可维护性、灵活性在降低,而测试成本、构建成本以及维护成本却在显著增加。

复杂的业务需求会导致系统代码规模越来越大,最后开发团队里任何一个人的都无法全部搞懂它,而添加新功能和修复错误都是建立在对现有系统的理解的基础上,这将会导致添加新功能与修改错误及其困难与耗费时间;如果系统无法快速编译和部署的话,开发者在开发过程中就会有大部分时间在进行重启和部署,导致生产效率的降低;传统企业软件的缺陷对于业务功能极其复杂的软件开发、测试、部署、排错、扩展和升级等工作都非常的困难,需要耗费巨大的人力物力。



技术实现要素:

针对上述问题,本发明的目的在于提供一种基于微服务架构的通用信息管理系统,将微服务架构与传统企业软件进行整合得出通用信息管理系统,快速响应业务需求,提高了生产效率,综合利用服务器资源。

本发明提供了一种基于微服务架构的通用信息管理系统,包括展示层、平台层、应用层和资源层;所述展示层,用于接收用户指令以显示数据或提交数据;

所述平台层,用于接收由所述展示层提交的所述用户指令,根据所述用户指令提供对应系统底层服务及根据所述用户指令生成发送至所述应用层的请求指令;

所述应用层,用于接收由所述平台层提交的所述请求指令,根据所述请求指令调用对应的服务功能以处理与所述用户请求对应的业务;其中,所述应用层至少包括业务应用层及系统应用层,

所述业务应用层,用于从所述请求指令中解析获得与自身相对应的服务请求指令,并发送所述服务请求指令给所述系统应用层;

所述系统应用层,用于响应所述服务请求指令以提供对应业务服务,并根据所述业务服务生成发送至所述资源层的数据请求指令;

所述资源层,用于获取所述系统应用层发出的数据请求指令,并根据所述数据请求指令提供所述系统应用层处理所述业务服务所需的数据。

优选地,

所述资源层至少包括nosql非关系型数据库及sql关系型数据库;所述资源层具体用于:

获取所述应用层的系统核心服务模块发出的数据请求指令,解析所述数据请求指令;

当所述数据请求指令为写操作且识别到所述数据请求指令中包含进行缓存的请求参数时,先将所述数据请求指令中包含的数据写入所述nosql非关系型数据库,再写入sql关系型主数据库并同步到sql关系型从数据库中;

当所述数据请求指令为写操作且识别到所述数据请求指令中包含不进行缓存的请求参数时,将所述数据请求指令中包含的数据写入sql关系型主数据库并同步到sql关系型从数据库中;

当所述数据请求指令为读操作且识别到所述数据请求指令中包含进行缓存的请求参数时,从所述nosql非关系型数据库中读取数据;

当从所述nosql非关系型数据库中没有读取到所述数据时,从所述sql关系型从数据库中读取所述数据;

当从所述sql关系型从数据库中没有读取到所述数据时,返回空值;

当所述数据请求指令为读操作且识别到所述数据请求指令中包含不进行缓存的请求参数时,从所述sql关系型从数据库中读取所述数据;

当从所述sql关系型从数据库中没有读取到所述数据时,返回空值。

优选地,

所述系统应用层至少包括列表服务模块、表单服务模块、远程报表服务模块及数据引擎服务模块;

所述列表服务模块,用于以列表形式显示数据;

所述表单服务模块,用于获取用户的编辑数据,至少包括表单域、变单标签及表单按钮;

所述远程报表服务模块,用于根据消息队列方式进行异步调用来获取数据和生成报表;

所述数据引擎服务模块,用于执行配置的数据规则集合将所述编辑数据保存到所述资源层的数据库中。

优选地,

所述列表服务模块的配置具体包括新增列表单元、添加字段单元、添加操作单元、报表模板单元及权限设置单元;

所述新增列表单元,用于设置至少包括列表编号、模板类型及查询sql语句的编写的核心参数;

所述添加字段单元,用于对每个字段进行至少包括数据类型、输入类型及数据源类型的属性的设置;

所述添加操作单元,用于定义对列表数据进行操作的按钮;

所述报表模板单元,用于解析上传的报表模板;

所述权限设置单元,用于设置预设的角色对列表有对应的操作权限。

优选地,

所述表单服务模块的配置具体包括表单配置单元、字段配置单元、布局单元、操作配置单元、文档模板单元及权限单元;

所述表单配置单元,用于设置至少包括表单编号、模板类型及sql语句的编写的核心参数;

所述字段配置单元,用于对每个字段进行至少包括数据类型、输入类型及数据源类型的属性的设置;

所述布局单元,用于设置布局样式以使所述表单标签、所述表单域及所述表单按钮按照预设样式布局在页面上;

所述操作配置单元,用于定义对表单数据进行操作的按钮;

所述文档模板单元,用于解析上传的文档模板;

所述权限单元,用于设置预设的角色对表单有对应的操作权限。

优选地,

所述远程报表服务模块的配置具体包括报表配置单元、字段属性单元及报表模板生成单元;

所述报表配置单元,用于设置至少包括报表编号及sql语句的编写的核心参数;

所述字段属性单元,用于对每个需导出的字段进行至少包括数据类型及数据源类型的属性的设置;

所述报表模板生成单元,用于自动生成报表模板或解析上传的报表模板。

优选地,

所述数据引擎服务子模块的配置具体包括规则集合配置单元、规则变量单元及运算规则单元;

所述规则集合配置单元,用于设置至少包括规则集合编号、全局校验函数、自定义类和方法的核心参数;

所述规则变量单元,用于设置运算过程中的全局变量;

所述运算规则单元,用于选择进行操作的数据库表,设置规则类型、执行条件及校验函数,添加规则参数。

优选地,所述列表服务模块具体用于:

预处理所述列表服务指令中的请求参数,添加常量参数,根据解析出的所述请求参数中的列表编号发送数据请求指令给所述资源层以使所述资源层提供对应的列表配置信息,根据列表配置的响应类型获取列表数据;

当所述响应类型为通用sql查询时,通过解析构造查询参数语句,添加数据权限配置,解析构造排序语句,执行sql语句获取所述列表数据;

当所述响应类型为自定义扩展函数时,解析获取调用扩展函数类及方法名,使用反射调用所述扩展函数类及方法获取所述列表数据;

所述表单服务模块具体用于:

预处理所述表单服务指令中的请求参数,添加常量参数,根据解析出的所述请求参数中的表单编号发送数据请求指令给所述资源层以使所述资源层提供对应的表单配置信息,根据表单配置的sql获取表单数据,根据sql的操作类型及预设的权限进行运算分析,加载所述文档模板,将所述表单数据以所述文档模板形式导出。

优选地,所述远程报表服务模块具体用于:

接收报表远程导出指令,将至少包括报表编号及请求参数的数据包装成消息添加到导出消息队列中;

所述远程报表服务子模块监听所述导出消息队列,当读取到新消息且所述远程报表服务子模块处于空闲阶段时执行导出操作;

根据报表编号发送数据请求指令给所述资源层以使所述资源层提供对应的报表配置信息及报表模板;

根据报表配置的sql获取报表数据,将所述报表数据写入所述报表模板并进行导出操作;

优选地,所述数据引擎服务模块具体用于:

预处理所述数据引擎服务指令中的请求参数,添加常量参数;

根据解析出的所述请求参数中的规则集合编号发送数据请求指令给所述资源层以使所述资源层提供对应的规则集合配置信息;

检查规则集合合法性,预处理所述规则集合,分析规则变量并获取所述规则变量实际值;

执行全局校验函数以校验所提交表单数据的合法性;

解析属性参数字段以构造属性sql语句,解析条件参数字段以构造条件sql语句,获取当前操作数据表以组装目标sql语句,执行局部校验函数以校验所述数据表中的数据的合法性,检验通过的执行目标sql语句。

本发明提供了一种基于微服务架构的通用信息管理系统,由展示层接收用户指令以显示数据或提交数据的;由平台层接收所述用户指令并根据所述用户指令提供对应系统底层服务或生成发送至所述应用层的请求指令;由业务应用层从所述请求指令中解析获得与自身相对应的服务请求指令,并发送所述服务请求指令给系统应用层,以响应所述服务请求指令以提供对应业务服务,由资源层解析所述系统应用层发来的数据请求指令并提供需要的数据。所述通用信息管理系统的各个模块为单独的应用服务,开发者在编译和部署过程中只需关注和理解一个或者多个应用服务的代码过程而无需掌握整个系统,极大提高了生产效率;在编程环境中发现有错误,因系统各模块的独立性能够实现快速定位并进行修复,提高系统可用性;同时也方便对系统的热点功能进行横向扩展,增加服务器资源,综合利用服务器的计算资源,从而使本系统能够适应多变得业务需求和方便进行升级扩展。

附图说明

为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种基于微服务架构的通用信息管理系统的结构示意图。

图2是本发明实施例提供的基于微服务架构的通用信息管理系统的一种整体架构图。

图3是本发明实施例提供的一种基于微服务架构的通用信息管理系统的应用层的结构示意图。

图4是本发明实施例提供的一种基于微服务架构的通用信息管理系统的资源层的结构示意图。

图5是本发明实施例提供的系统应用层中的列表服务模块的权限设置示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,本发明提供了一种基于微服务架构的通用信息管理系统,包括展示层100、平台层200、应用层300和资源层400;

在本发明实施例中,所述通用信息管理系统在系统架构上采用了微服务架构,例如使用springcloud的技术框架,springcloud是一系列框架的有序集合。它利用springboot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用springboot的开发风格做到一键启动和部署。

所述展示层100,用于接收用户指令以显示数据或提交数据。在本发明实施例中,所述展示层,负责系统与web端和移动端的用户的交互,用户通过展示层所显示的页面信息进行相关操作,例如查询数据或者增加数据信息,所述展示层将用户操作封装成用户指令发送给平台层以做相关处理,最终显示用户所需要的数据信息。所述展示层与所述平台层通过jwt进行通信,所述jwt全称为jsonwebtoken,是一个非常轻巧的规范。这个规范允许我们使用jwt在用户和服务器之间传递安全可靠的信息。

所述平台层200,用于接收由所述展示层提交的所述用户指令,根据所述用户指令提供对应系统底层服务并根据所述系统底层服务生成发送至所述应用层的请求指令。

请参阅图2,在本发明实施例中,所述平台层包括负载均衡模块、api网关模块、注册中心模块和配置中心模块,所述api网关模块,负责服务请求路由、组合及协议转换,它是整个系统的唯一入口,客户端的所有请求都必须先经过api网关,然后由它将请求路由到合适的微服务;所述api网关模块的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。使用api网关的最大优点是,它封装了应用程序的内部结构。客户端只需要同网关交互,而不必调用特定的服务。api网关为每一类客户端提供了特定的api。这减少了客户端与应用程序间的交互次数,还简化了客户端代码。所述注册中心模块,包括负责对首次登录的用户输入的用户名和口令进行判断,看其是否与系统中存储的该用户的用户名和口令一致,来判断用户身份是否正确、通过合法性验证来判断是否拥有对当前请求进行访问的权限,如果正确,进行以后的服务请求,否则,服务不可用,结束进程,所述统一认证服务模块保证用户自身账户与信息安全。

在本发明实施例中,所述平台层,负责接收由所述展示层提交的所述用户指令,解析所述用户指令中具体地服务请求并根据所述服务请求提供对应服务,如注册中心模块解决账号验证等服务治理相关问题,所述平台层负责提供负载均衡、智能路由、服务治理、配置管理等底层系统服务。当所述服务请求为数据请求等非底层系统服务时,由所述api网关模块发送请求指令给所述应用层以处理所述服务请求。

所述应用层300,用于接收由所述平台层提交的所述请求指令,根据所述请求指令调用对应的服务功能以处理与所述请求指令对应的业务;其中,所述应用层至少包括业务应用层310及系统应用层320。

在本发明实施例中,所述应用层,负责接收由所述平台层提交的所述请求指令,解析处理所述请求指令,根据所述请求指令调用不同服务处理相应的业务逻辑,例如所述请求指令为修改数据,则根据所述请求指令调用表单服务和数据引擎服务对所述数据进行修改并保存到数据库中。

在本发明实施例中,请参阅图3,所述应用层至少包括业务应用层310及系统应用层320,所述业务应用层310,用于从所述请求指令中解析获得与自身相对应的服务请求指令,并发送所述服务请求指令给所述系统应用层320。

在本发明实施例中,所述业务应用层310,负责处理用户实际的业务需求,如任务管理、采购管理、检查勘察等具体业务功能点,各功能实现的原理是通过不同的配置,单个或者组合调用系统核心服务来处理不同的业务需求。通过暴露rset接口供api网关进行调用。rest定义了应该如何正确地使用web标准,例如http和uri,和大多数人的实际使用方式有很大不同。使用所述rset接口,使所述系统拥有更好稳定优质的web架构,提高系统的综合利用水平。

所述系统应用层320,用于响应所述服务请求指令以提供对应业务服务,并根据所述业务服务生成发送至所述资源层的数据请求指令。

在本发明实施例中,所述系统应用层320,负责响应所述服务请求指令,解析处理各种业务配置以提供对应业务服务,将每个用户请求分解为基础的增删查改,并对资源层的数据做相应的操作,通过暴露rest接口供api网关进行调用。

所述资源层400,用于获取所述系统应用层发出的数据请求指令,并根据所述数据请求指令提供所述系统应用层处理所述业务服务所需的数据。

在本发明实施例中,所述资源层400,获取所述应用层的系统应用层发出的数据请求指令,解析所述数据请求指令,根据所述数据请求指令提供所述系统应用层处理所述业务服务所需的数据,例如提供数据记录。

在本发明实施例中,请参阅图4,所述资源层400至少包括nosql非关系型数据库及sql关系型数据库;所述资源层具体用于:

获取所述应用层的系统核心服务模块发出的数据请求指令,解析所述数据请求指令;当所述数据请求指令为写操作且识别到所述数据请求指令中包含进行缓存的请求参数时,先将所述数据请求指令中包含的数据写入所述nosql非关系型数据库,再写入sql关系型主数据库并同步到sql关系型从数据库中;当所述数据请求指令为写操作且识别到所述数据请求指令中包含不进行缓存的请求参数时,将所述数据请求指令中包含的数据写入sql关系型主数据库并同步到sql关系型从数据库中;当所述数据请求指令为读操作且识别到所述数据请求指令中包含进行缓存的请求参数时,从所述nosql非关系型数据库中读取数据;当从所述nosql非关系型数据库中没有读取到所述数据时,从所述sql关系型从数据库中读取所述数据;当从所述sql关系型从数据库中没有读取到所述数据时,返回空值;当所述数据请求指令为读操作且识别到所述数据请求指令中包含不进行缓存的请求参数时,从所述sql关系型从数据库中读取所述数据;当从所述sql关系型从数据库中没有读取到所述数据时,返回空值。其中,所述nosql非关系型数据库可为redis数据库,所述sql关系型可为mysql数据库,所述redis数据库是一个支持网络、可基于内存亦可持久化的日志型、key-value数据库。所述mysql数据库是一个中小型的网络数据库,拥有良好的并发能力。

综上所述,本发明提供了一种基于微服务架构的通用信息管理系统,包括接收用户指令以显示数据或提交数据的展示层;用于接收由所述展示层提交的所述用户指令,根据所述用户指令提供对应系统底层服务或根据根据所述用户指令生成发送至所述应用层的请求指令的平台层;至少包括用于从所述请求指令中解析获得与自身相对应的服务请求指令,并发送所述服务请求指令给所述系统应用层的业务应用层和用于响应所述服务请求指令以提供对应业务服务,并根据所述业务服务生成发送至所述资源层的数据请求指令的系统应用层的应用层和用于获取所述系统应用层发出的数据请求指令,并根据所述数据请求指令提供所述系统应用层处理所述业务服务所需的数据的资源层。所述通用信息管理系统的各个模块为单独的应用服务,开发者在编译和部署过程中只需关注和理解一个或者多个应用服务的代码过程而无需掌握整个系统,极大提高了生产效率;在编程环境中发现有错误,因系统各模块的独立性能够实现快速定位并进行修复,提高系统可用性;同时也方便对系统的热点功能进行横向扩展,增加服务器资源,综合利用服务器的计算资源,从而使本系统能够适应多变得业务需求和方便进行升级扩展。

为了便于对本发明的理解,下面将对本发明的一些优选实施例做更进一步的描述。

第一个优选实施例:

请参阅图2,所述系统应用层320至少包括列表服务模块321、表单服务模块322、远程报表服务模块323及数据引擎服务模块324。

所述列表服务子模块321,用于以列表形式显示数据。

所述表单服务子模块322,用于获取用户的编辑数据,至少包括表单域、变单标签及表单按钮。

所述远程报表服务子模块323,用于根据消息队列方式进行异步调用来获取数据和生成报表。

所述数据引擎服务子模块324,用于执行配置的数据规则集合将所述编辑数据保存到所述资源层的数据库中。

在本发明优选实施例中,所述列表服务模块321,以列表的形式显示多条记录(数据集),并提供查询、导入导出、超链接等功能,列表是系统中常见的一种页面展示效果。所述列表服务模块321的配置具体包括新增列表单元、添加字段单元、添加操作单元、报表模板单元及权限设置单元。所述新增列表单元,用于设置至少包括列表编号、模板类型及查询sql语句的编写的核心参数;所述添加字段单元,用于对每个字段进行至少包括数据类型、输入类型及数据源类型的属性的设置;所述添加操作单元,用于定义对列表数据进行操作的按钮,例如新增、导入、导出等操作按钮;所述报表模板单元,用于解析上传的报表模板,当需要对列表数据进行导入、导出时,可上传如excel报表模板使系统解析所述报表模板进行相关导入或者导出操作;所述权限设置单元,请参阅图5,用于设置预设的角色对列表有对应的操作权限,如系统管理员拥有所有权限,地市负责人则只有本身归属所在地的相关权限。

在本发明优选实施例中,所述表单服务模块322,用于获取用户的编辑数据,负责数据采集功能,至少包括表单域、变单标签及表单按钮。所述表单服务模块322的配置具体包括表单配置单元、字段配置单元、布局单元、操作配置单元、文档模板单元及权限单元;所述表单配置单元,用于设置至少包括表单编号、模板类型及sql语句的编写的核心参数;所述字段配置单元,用于对每个字段进行至少包括数据类型、输入类型及数据源类型的属性的设置,如数据类型为int、char,输入类型限定男或者女;所述布局单元,用于设置布局样式以使所述表单标签、所述表单域及所述表单按钮按照预设样式布局在页面上;所述操作配置单元,用于定义对表单数据进行操作的按钮,例如新增、导入、导出等操作按钮;所述文档模板单元,用于解析上传的文档模板,当需要对表单数据进行导入、导出时,可上传如word报表模板使系统解析所述文档模板进行相关导入或者导出操作;所述权限单元,用于设置预设的角色对表单有对应的操作权限,如系统管理员拥有所有权限,基础用户只拥有查询权限。

在本发明优选实施例中,所述远程报表服务模块323,是为了满足多用户并发导出样式复杂、数据量大的报表,我们将获取数据和生成报表的功能抽取成一个单独服务模块,通过消息队列方式进行异步调用。所述远程报表服务模块323的配置具体包括报表配置单元、字段属性单元及报表模板生成单元;所述报表配置单元,用于设置至少包括报表编号及sql语句的编写的核心参数;所述字段属性单元,用于对每个需导出的字段进行至少包括数据类型及数据源类型的属性的设置;所述报表模板生成单元,用于自动生成报表模板或解析上传的报表模板,对于样式简单的报表可以使用系统自动生成的方式生成模板,对于样式复杂的报表则需要用户自行设计并上传报表模板,让系统进行解析。

在本发明优选实施例中,所述数据引擎服务模块324,用于执行配置好的数据dml规则集合,从而将表单服务采集到的数据持久化到数据库,所述dml为数据操纵语言,sql的分类之一,命令使用户能够查询数据库以及操作已有数据库中的数据的计算机语言。dml包括:insert插入、update更新、delete删除。

所述数据引擎服务模块324的配置具体包括规则集合配置单元、规则变量单元及运算规则单元;所述规则集合配置单元,用于设置至少包括规则集合编号、全局校验函数、自定义类和方法的核心参数;所述规则变量单元,用于设置运算过程中的全局变量;所述运算规则单元,用于选择进行操作的数据库表,设置规则类型、执行条件及校验函数,添加规则参数,所述校验函数如crc检验函数、奇偶校验函数等。

第二个优选实施例:

所述列表服务模块321具体用于:

预处理所述列表服务指令中的请求参数,添加常量参数,根据解析出的所述请求参数中的列表编号发送数据请求指令给所述资源层以使所述资源层提供对应的列表配置信息,根据列表配置的响应类型获取列表数据。

当所述响应类型为通用sql查询时,通过解析构造查询参数语句,添加数据权限配置,解析构造排序语句,执行sql语句获取所述列表数据。

当所述响应类型为自定义扩展函数时,解析获取调用扩展函数类及方法名,使用反射调用所述扩展函数类及方法获取所述列表数据。

在本发明优选实施例中,所述列表服务模块321的响应过程为:

预处理请求参数,添加常量参数;根据列表编号检查缓存中有无对应的列表配置信息,有则读取,无则从数据库加载并加入到缓存中;根据列表配置的响应类型(通用sql查询、自定义扩展函数)来获取查询数据结果集(通常有多条记录)。

响应类型为通用sql查询的处理步骤如下:

解析构造查询参数语句;添加数据权限配置;解析构造排序语句;执行sql语句获取结果集。

响应类型为自定义扩展函数的处理步骤如下:

解析获取调用扩展函数类及方法名;使用反射调用上述类及方法获取结果集。

第三个优选实施例:

所述表单服务模块322具体用于:

预处理所述表单服务指令中的请求参数,添加常量参数,根据解析出的所述请求参数中的表单编号发送数据请求指令给所述资源层以使所述资源层提供对应的表单配置信息,根据表单配置的sql获取表单数据,根据sql的操作类型及预设的权限进行运算分析,加载所述文档模板,将所述表单数据以所述文档模板形式导出。

在本发明优选实施例中,所述表单服务模块322的响应过程为:

预处理请求参数,添加常量参数。

根据表单编号检查缓存中有无对应的表单配置信息,有则读取,无则从数据库加载并加入到缓存中。

根据表单配置的sql获取数据结果集(通常只有一条记录)。

根据不同的操作类型(新增、查看、编辑)以及配置的权限条件进行运算,对表单域、表单按钮进行权限控制初始化操作。

加载对应的查询模板,与数据结果集合并输出到响应流呈现给用户。

第四个优选实施例:

所述远程报表服务模块323具体用于:

接收报表远程导出指令,将至少包括报表编号及请求参数的数据包装成消息添加到导出消息队列中。

所述远程报表服务子模块监听所述导出消息队列,当读取到新消息且所述远程报表服务子模块处于空闲阶段时执行导出操作。

根据报表编号发送数据请求指令给所述资源层以使所述资源层提供对应的报表配置信息及报表模板。

根据报表配置的sql获取报表数据,将所述报表数据写入所述报表模板并进行导出操作。

在本发明优选实施例中,所述表远程报表服务模块323的响应过程为:

用户点击报表远程导出按钮后,系统会将含有报表编号、请求参数等数据作为一条消息添加到导出消息队列中。

远程报表服务持续监听导出消息队列,如果读取到新消息且当前服务处于空闲阶段则开始执行导出操作。

根据报表编号读取对应的报表配置信息、报表模板。

根据报表配置的sql获取进行已分页处理的数据结果集,并加载到内存中。

遍历上述数据结果集写入到报表模板,写入完毕后将生成的报表临时文件持久化到硬盘中。

重复上述第s4、s5步,直至处理完所有数据结果集。

合并第s6步产生的所有报表临时文件为正式的报表文件。

系统在完成导出后亦会推送一条处理完毕的消息,用户接收到消息后即可点击下载按钮下载报表。

第五个优选实施例:

所述数据引擎服务模块324具体用于:

预处理所述数据引擎服务指令中的请求参数,添加常量参数。

根据解析出的所述请求参数中的规则集合编号发送数据请求指令给所述资源层以使所述资源层提供对应的规则集合配置信息。

检查规则集合合法性,预处理所述规则集合,分析规则变量并获取所述规则变量实际值。

执行全局校验函数以校验所提交表单数据的合法性。

解析属性参数字段以构造属性sql语句,解析条件参数字段以构造条件sql语句,获取当前操作数据表以组装目标sql语句,执行局部校验函数以校验所述数据表中的数据的合法性,检验通过的执行目标sql语句。

在本发明优选实施例中,所述表远程报表服务模块324的响应过程为:

预处理请求参数,添加常量参数。

根据规则集合编号检查缓存中有无对应的规则集合配置信息,有则读取,无则从数据库加载并加入到缓存中。

检查规则集合合法性,看当前用户是否有权限请求该规则集。

对规则集合进行预处理,处理规则变量,获取变量实际值。

执行全局校验函数,校验提交数据的合法性。

规则集合调用前执行前置通知方法。

开始执行规则(通过为一条或多条)。

检验通过的执行目标sql语句,否则抛出异常。

规则集合调用前执行后置通知方法。

所述执行规则具体步骤如下:

解析属性参数字段,构造属性sql语句。

解析条件参数字段,构造条件sql语句。

获取当前操作数据表,组装目标sql语句。

执行局部校验函数,校验提交数据的合法性。

以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1