一种工作流引擎支持多数据源配置安全访问系统及方法与流程

文档序号:12720137阅读:280来源:国知局
一种工作流引擎支持多数据源配置安全访问系统及方法与流程

本发明涉及计算机技术领域,具体涉及一种工作流引擎支持多数据源配置安全访问系统及方法。



背景技术:

工作流系统是支撑应用软件开发的一个基础组件产品,它的发展与应用平台的发展需求息息相关,需要不断适应新的要求。

随着硬件平台的性能不断提升,集群、虚拟化部署、云计算平台的发展,部署统一工作流引擎服务平台,统一维护与管理,分配给不同的独立应用或独立机构调用,进行严格的分级管理权限,成为此类通用基础组件平台统一规划部署的一个方向,可以大幅降低用户的部署维护成本。

在区域型电子政务、大型集团公司分级应用中,采用这种方式开发工作流类应用已经逐渐形成一个新的方向,可以更好的满足各级单位、各类应用的共性需求,也满足各自的个性化需求,而且不给这些分子机构带来额外的硬件投入与维护成本。

但是目前的工作流引擎产品,基本只支持单一的工作流数据源,并且在保密企业中,数据分级管理、数据传输、数据备份的独立性安全保密要求无法很好的满足要求。



技术实现要素:

为了解决上述问题,本发明的做法是通过开发工作流引擎专用的多数据源适配器,对引擎支持多个数据源进行配置管理。并对各个接口的数据操作进行统一封装,各接口调用经过适配器进行数据源的分派,指向正确的数据源,透明的实现各独立数据源的虚拟独立调用与管理,即满足数据源独立性、安全性的要求。另外,在数据传输过程中,验证数据信息,确保信息安全。

本发明提供了一种工作流引擎支持多数据源配置安全访问系统,该系统包括:应用层、逻辑处理层、数据源层,其中

所述应用层包括多数据源配置管理模块、多数据源封装加载模块、数据源安全密码管理模块、多数据源查询请求模块,数据呈现模块;

所述逻辑处理层包括数据库操作接口模块、数据安全模块、数据查询分析模块、多数据源适配器模块、结果整合模块;

所述数据源层包括独立自应用数据源、统一业务应用数据源、高安全性应用数据源;

其特征在于:

在所述应用层中,

多数据源配置管理模块:用于创建管理多个工作流引擎数据源,设定数据源的应用标识,对数据源进行初始化,确定数据源的启用、停用;

多数据源封装加载模块:负责引擎服务启动时,对多数据源内存数据、定时程序加载与启动;

优选地,当工作引擎针对不同数据源启动时,对所述多数据源封装加载模块进行初始化,加载扩展数据源所需的初始化参数,所述初始化参数中包括数据源应用标识,启动与数据源数量一样的数据采集线程,各个采集线程与多个数据源一一对应。

数据源安全密码管理模块:对分级管理员密码进行管理;

多数据源查询请求模块:用来接收用户查询请求,根据不同的用户权限分级发送给逻辑处理层;

数据呈现模块:将获取的数据通过web页面可视化呈现;

所述逻辑处理层接收用户的查询请求,完成全局查询到局部查询的分解操作和局部查询返回数据的整合,其中,

所述数据安全模块:对用户进行身份验证,以防止非法用户进入;

所述多数据源适配器模块包括数据源应用标识、数据库标识符、数据库IP地址、数据库端口、数据库名称、数据库用户名密码以及数据库编码方式;所述数据源应用标识关联对应的工作流引擎标准调用接口;

所述数据查询分析模块获取用户的查询请求,解析该查询请求,通过多数据源适配器模块发送给不同的数据库操作接口;数据库操作接口执行该查询请求并将结果返回给结果整合模块,结果整合模块将整合后的数据发送给数据呈现模块。

本发明还提供了一种工作流引擎支持多数据源配置安全访问方法,其特征在于,包含以下步骤:

1、在工作流引擎支持多数据源配置安全访问系统中部署部署多数据源配置管理模块、多数据源封装加载模块、数据源安全密码管理模块、多数据源适配器模块;

2、对外提供数据源参数赋值,实现工作流引擎接口中的数据库操作接口的封装;

3、遍历启动状态的数据源,对处于启动状态的数据源分别进行工作流引擎服务的数据加载,完成引擎服务的二次封装;

4、创建新的独立工作流数据源:创建工作流引擎与数据源关联信息,创建数据库表标识符及特征值,创建数据表与数据源应用标识之间的关联关系,同时创建查询限制条件;

5、进入数据源安全密码管理模块,设置独立数据源的访问密码,访问标识,所述访问标识为用户名+随机数nonce+用户角色+数据库名称进行MD5散列的十六进制编码;

6、进入工作流引擎多数据源管理模块填写正确的数据连接池标识,并用此连接池标识对新的数据源进行初始化;

7、管理员登录工作流流程管理平台,根据适配器转发规则,调用工作流引擎中的数据接口,获取数据库以及数据表信息;

8、根据工作流流程,完成全局查询到局部查询的分解操作和局部查询返回数据的整合;所述分解操作包括:

①将涉及不同数据源的查询分解为对于每一个独立的数据源的查询;

②设定查询条件的优先级别,其中包含查询条件的多表关联查询优先级别最高,其次是包含多个条件的查询,最后是不带条件的表查询;先执行优先级别高和多个条件的数据源的查询,获取数据量结果较少的数据结果;

③如果得到的结果含有要显示的字段,则将结果放入数据缓存,根据得到的结果重新生成新的独立的数据源查询语句;转向②。

④如果缓存中存在数据,根据最后查询的结果在数据缓存中查找数据,然后将数据整合在一起。

9、数据传输加密,并展示查询数据;所述加密包括XML签名及验证,所述XML签名包括<Reference>元素和签名元素的生成,通过<DSAKeyValue>来创建签名和验证所需的私钥/公钥对。

本发明通过开发工作流引擎专用的多数据源适配器,在对多个数据源进行配置管理的同时,对各个接口的数据操作进行统一封装,各接口调用经过适配器进行数据源的分派,指向正确的数据源,透明的实现各独立数据源的虚拟独立调用与管理,即满足数据源独立性、安全性的要求,又不会对原有工作流模型,开发成果造成影响。同时,出于对用户的数据安全和数据隐私的保护考虑,对数据传输进行加密处理,可以使敏感而重要数据处于自己的掌握之中,有利于实现隐私数据的保护。

本发明有益的效果在于:(1)大幅度降低用户部署成本及维护成本;(2)可以实现统一部署的工作流引擎服务支持多个分开管理的独立数据源;(3)在现有技术的基础上进一步实现动态扩展;(4)在满足数据源独立性的前提下进一步保障数据安全;(5)提供给用户多种直观的数据可视化显示结果,让用户更容易理解和分析工作流引擎,同时对用户设定不同的权限、对数据传输保护,有利于实现隐私数据的保护。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1是本发明所提供的一种工作流引擎支持多个数据源系统的体系结构图;

图2是本发明所提供的一种工作流引擎支持多数据源系统的方法流程图;

图3是本发明所提供的一种工作流引擎支持多数据源配置安全系统的结构框图;

图4是本发明所提供的一种工作流引擎支持多数据源配置安全方法流程图;

图5是本发明所提供的根据数据库连接标识,对新的数据源初始化的可视化界面。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

如附图1所示,本发明提供了一种工作流引擎多数据源处理系统,该工作流引擎多数据源处理系统包括四个技术模块,通过相互配合实现工作流引擎多数据源的配置与管理。

(1)引擎多数据源配置管理模块:

用于创建新的引擎数据源,并对数据源进行初始化;数据源的启用、停用管理。

(2)引擎服务多数据源加载模块:

负责引擎服务启动时,对多数据源内存数据、定时程序等的加载与启动。

(3)独立数据源安全密码管理模块:

提供给独立数据源的分级管理员使用,可以确保本数据源的密码安全。

(4)工作流引擎多数据源适配器模块:

根据创建数据源时建立的引擎与数据源关联,在引擎标准调用接口的数据库操作层进行封装,增加数据源定向参数,确保引擎调用操作转发到正确的数据源。

如图2,由所述工作流引擎多数据处理系统执行的方法的具体实施流程如下:

(1)引擎服务部署的同时部署上述四个功能模块。

(2)对引擎接口的数据库操作接口进行封装,对外提供数据源参数赋值方法。

(3)对引擎服务启动加载进行二次封装,遍历启动状态的数据源,分别进行引擎服务的数据加载。

(4)创建新的独立工作流数据源(一般是创建新的数据库)。

(5)进入独立数据源安全密码管理模块,设置数据源访问密码,访问标识。(为了确保安全,此步骤可以由分级管理员自行操作,或分级管理后期在此修改密码)

(6)然后,进入引擎多数据源管理模块填写正确的数据连接池标识,并用此连接池标识对新的数据源进行初始化。

该方法的可视化界面如图5所示,其中所述初始化包括选择确定不同数据源的类型(如Oracle、MSSQL、SQL等)、输入数据库名称、数据库用户名、访问密码及主机名加端口号(如SQLDBServer:1433)或IP地址加端口号等。

由此,该工作流引擎支持多数据源的处理方法,在对多个数据源进行配置管理的同时,对各个接口的数据操作进行统一封装,透明的实现各独立数据源的虚拟独立调用与管理,即满足数据源独立性、安全性的要求,又不会对原有工作流模型,开发成果造成影响。采用该方法,可以实现统一部署工作流引擎服务,支持多个分开管理的独立数据源,并可以实现动态扩展。

根据本发明的另一个方面,如附图3所示,还提供了一种工作流引擎支持多数据源配置安全访问系统,该系统包括:应用层、逻辑处理层、数据源层,其中

所述应用层包括多数据源配置管理模块、多数据源封装加载模块、数据源安全密码管理模块、多数据源查询请求模块,数据呈现模块;

所述逻辑处理层包括数据库操作接口模块、数据安全模块、数据查询分析模块、多数据源适配器模块、结果整合模块;

所述数据源层包括独立自应用数据源、统一业务应用数据源、高安全性应用数据源;

其特征在于:

在所述应用层中,

多数据源配置管理模块:用于创建管理多个工作流引擎数据源,设定数据源的应用标识,对数据源进行初始化,确定数据源的启用、停用;

优选地,数据源启动时,加载数据源所需的初始化参数,所述初始化参数中包括数据源应用标识,启动与数据源数量一样的数据采集线程,各个采集线程与多个数据源一一对应。

多数据源封装加载模块:负责引擎服务启动时,对多数据源内存数据、定时程序加载与启动;

数据源安全密码管理模块:对分级管理员密码进行管理;

多数据源查询请求模块:用来接收用户查询请求,根据不同的用户权限分级发送给逻辑处理层;

数据呈现模块:将获取的数据通过web页面可视化呈现;

所述逻辑处理层接收用户的查询请求,完成全局查询到局部查询的分解操作和局部查询返回数据的整合,其中,

所述数据安全模块:对用户进行身份验证,以防止非法用户进入;

所述多数据源适配器模块包括数据源应用标识、数据库标识符、数据库IP地址、数据库端口、数据库名称、数据库用户名密码以及数据库编码方式;所述数据源应用标识关联对应的工作流引擎标准调用接口;

所述数据查询分析模块获取用户的查询请求,解析该查询请求,通过数据源适配器模块发送给不同的数据库操作接口;数据库操作接口执行该查询请求并将结果返回给结果整合模块,结果整合模块将整合后的数据发送给数据呈现模块。

优选地,根据查询请求中的请求参数和数据源应用标识的映射关系,获取不同的数据源应用标识,并通过该数据源应用标识获取工作流引擎标准调用接口。

根据本发明的另一个方面,还提供了一种工作流引擎支持多数据源配置安全访问的方法,该方法具体实施步骤如附图4所示,具体如下:

步骤1、在工作流引擎支持多数据源配置安全访问系统中部署多数据源配置管理模块、多数据源封装加载模块、数据源安全密码管理模块、多数据源适配器模块;

在该步骤中:定义工作流的定义、执行、管理等过程需要的各个组件与接口;其中接口包括工作流过程定义接口、管理&监控工具接口、工作流客户端应用接口、应用调用接口以及其他工作流引擎颁布服务接口;所述工作流过程定义接口定义了系统部署的逻辑抽象;所述应用调用接口利用工作流数据库将不同类型脚本流程进行整合;所述管理&监控工具接口包括资源的监控与管理、角色的监控与管理、过程的监控与管理等;所述工作流客户端应用接口包括建立通信、在部署工作流中进行相应得操作、操作管理操作和数据处理。

步骤2、对外提供数据源参数赋值,实现工作流引擎接口中的数据库操作接口的封装;

步骤3、遍历启动状态的数据源,对处于启动状态的数据源分别进行工作流引擎服务的数据加载,完成引擎服务的二次封装;

在该步骤中,依据WFMC模型提供的基础类和一些服务,并对这些类和服务进行封装。

步骤4、创建新的独立工作流数据源:创建工作流引擎与数据源关联信息,创建数据库表标识符及特征值,创建数据表与数据源应用标识之间的关联关系,同时创建查询限制条件,创建完毕后,对工作流引擎标准调用接口进行封装,向工作流引擎标准调用接口提供数据源定向参数,确保引擎调用操作转发到正确的数据源;

在该步骤以前,还包括用户访问工作流引擎支持多数据源配置安全访问系统时,通过用户ID,系统自动获取用户的角色,获取用户的权限,若用户具有权限,则检查权限的生命周期、若权限的生命周期在周期范围内及任务执行时间在有效执行时间段内,则在其范围内,则允许用户访问否则拒绝访问。

在该步骤中:通过身份认证模块对所有访问工作流引擎系统的用户进行身份验证,以防止非法用户进入;客户端得到身份认证后,向访问过滤器提出执行任务请求的具体内容。访问过滤器主要负责从客户端请求的具体内容中提出有关访问控制信息内容,如请求的任务,用户标识,用户的角色(用户模式),请求访问的客体等;

优选地,所述用户的角色包括三种用户模式,即系统管理模式、安全保密管理模式、安全审计模式;

所述系统管理模式:配置集成的涉及应用系统服务,包括涉密应用服务器地址,端口、虚拟目录名称等;

所述安全保密管理模式:配置系统安全方面的全局变量,包括登录失败限制次数、自动解锁时间、定期更改密码时间、会话过期时间、第三方涉密应用系统单点登录会话过期时间、登录会话过期时间、密码最小长度等;维护角色列表;

所述安全审计模式:查看系统管理员和安全管理员的日志信息,对系统管理员、安全保密管理员的操作行为进行审计。

步骤5、进入数据源安全密码管理模块,设置数据源信息,所述设置数据源信息包括:数据源应用标识、数据库标识符、数据库IP地址、数据库端口、数据库名称、数据库用户名、访问密码、数据库编码方式以及访问池信息;所述访问密码为用户名+随机数nonce+用户角色+数据库名称进行MD5散列的十六进制编码,所述访问池信息包括数据库连接池标识;

步骤6、进入工作流引擎多数据源配置管理模块填写正确的数据连接池标识,并用此连接池标识对新的数据源进行初始化;

在该步骤中可以采用附图5的界面来实现,所述初始化包括确定不同数据源的类型(如Oracle、MSSQL、SQL等)、输入数据库名称、数据库用户名、访问密码及主机名加端口号(如SQLDBServer:1433)或IP地址加端口号等。

步骤7、登录工作流流程管理平台,根据适配器转发规则,调用工作流引擎中的数据接口,获取数据库以及数据表信息;

在该步骤中,获取每个数据库标识符及特征值,根据各种数据库的标识符与数据源的关联关系,获取数据源的应用标识,根据工作流引擎与数据源的关联关系,适配器根据该应用标识符调用工作流引擎中该数据源的数据接口,并获取数据。

在该步骤中获取数据库以及数据库表信息包括获取连接相应的数据库并提取目标数据库的所有表信息;并将数据库的表信息提交到工作流引擎处理平台(该逻辑处理层作为工作流引擎处理平台);在数据库信息的提取过程中,采用了基于元数据(Metadata)的数据库信息提取。

对数据库中提取的数据进行查询配置,进而实现数据审计。其步骤如下:选择要查询的表,工作流引擎支持多数据源配置安全访问系统根据用户所选择的数据库表,与逻辑处理层进行连接;根据用户所选择的表,在逻辑处理层中读取所选表所有可供查询的字段列表,并记录字段数目;循环遍历字段列表,根据字段名称,读取各字段的内容的查询限制条件,将各字段的查询限制条件加入到表整体控制条件中。

所述查询显示条件包括能否被外界查询的内容、“是”表示可以被查询,“否”表示不能被查询,以及将该数据表可供哪些部门查询等。

优选的,只有那些数据表标识被配置为许可状态时,才能对数据表中的字段以及字段中的限制条件进行设置。

多数据源查询请求步骤:用来接收用户查询请求,并将该请求发送给逻辑处理层;

优选地、根据用户的权限等级进行分类,并设定根据权限和认证标识码查询不同数据源。

优选地,逻辑处理层还包括对映射模板中所包含的配置文件解析,才能够转换对不同的数据源查询的有关语句,数据库连接池的配置文件能够对不同的数据源进行连接,并执行数据查询,结果通过xml文件形式返回。所述映射模板中包括不同数据源与逻辑处理数据库表、字段的映射关系。

步骤8、根据工作流流程,完成多个数据源的全局查询到局部查询的分解操作和局部查询返回数据的整合。

在该步骤中接收用户的查询条件,完成全局查询到局部查询的分解操作和局部查询返回数据的整合,即将全局查询重写为对各个数据源的查询,然后各数据源根据查询要求自行独立处理。

所述分解操作包括:利用映射模版获得需要查询的相关数据,同时在不同的数据库中,将相关的字段集以及表名等方面的信息相应的获取,同时把这一系列信息构成能够形成不同数据库的查询语句。把查询语句合理的分解完之后,放入到查询消息队列中执行查询。

优选地,所述分解操作还包括:

①将涉及不同数据源的查询分解为对于每一个独立的数据源的查询;

②设定查询条件的优先级别,其中包含查询条件的多表关联查询优先级别最高,其次是包含多个条件的查询,最后是不带条件的表查询;先执行优先级别高和多个条件的数据源的查询,获取数据量结果较少的数据结果;

③如果得到的结果含有要显示的字段,则将结果放入数据缓存,根据得到的结果重新生成新的独立的数据源查询语句;转向②。

④如果缓存中存在数据,根据最后查询的结果在数据缓存中查找数据,然后将数据整合在一起。

通过设定查询条件的优先级别,加快数据的搜索速度。

步骤9、数据传输加密,并展示查询数据;加密包括XML签名及验证,所述XML签名包括<Reference>元素和签名元素的生成,通过<DSAKeyValue>来创建签名和验证所需的私钥/公钥对。

在该步骤中对传输的数据进行加密,以防止数据在传输过程中被非法获取。

加密是保证文档数据安全的重要手段,XML加密为需要结构化数据安全交换的应用程序提供了一种端到端的安全。可以利用XML的加密和数字签名技术来实现。

优选地,XML加密文档在传输过程中的可靠性由XML签名来实现。它不仅可以保证数据传输过程中的完整性,而且也可以识别消息发送者的身份。消息通常采用发送者的私钥进行签名,而采用相应的公钥进行验证。这样,如果接收者知道了发送者的公钥就可以对发送者的身份进行确认,避免了篡改消息和伪装发送人情况的出现。

该XML签名操作过程包括对签名的操作过程包含有:对待签名数据进行格式转换;随后通过哈希函数计算待签名数据的摘要值;将计算出的摘要值与签名算法进行封装操作;最后使用非对称加密方式中的私钥对封装元素进行签名操作,得到经过签名操作的XML数据。

所述加密包括XML签名及验证步骤如下:

生成<Reference>元素包括:

1.对数据进行Transforms转换。

2.对转换后的数据采用ComputeSignature方法计算签名。

3.生成<Reference>元素。

生成签名元素包括:

1.创建一个新的SignedXml对象,要把XmlDocument对象传送给它。

2.在SignedXml对象中添加从数据库中获得的签名用户的私钥。

3.创建指定签名内容的Reference对象。

4.添加XmlDsigEnvelopedSignatureTransform对象NReference对象中。

5.添加Reference对象至SignedXml对象中。

6.计算签名运用ComputeSignature方法。

7.查找签名的XML表示形式,是一个<Signature>元素,然后把它重新保存到一个XmlElement对象中。

8.在XmlDocument对象尾部添加该元素。

签名验证的步骤包括

1.利用<Singatue Method>元素将<Singed Info>元素转换为所需的<Signature Value>元素,<Signature Value>元素中包含有数字签名的实际数值,该数值使用Base-64的编码格式。

2.<在Key Info>中获取签名者公钥信息:

1)、计算<SignedInfo>元素摘要。

2)、利用公钥解密<Signature Value>元素。

3)、对比上述两个摘要,同时重新计算<SignedInfo>元素引用摘要并与<DigestValue>中的摘要并比较,若不一样则签名失败。

通过上述签名及验证,实现了XML数据传输的完整性、保密性、可靠性、不可抵赖性,充分保证了系统的安全性。

优选地,将返回的数据实时保存到浏览器页面的缓存中,将缓存中的数据信息组成XML流程定义文件,并将该流程定义文件输出,然后工作流引擎平台通过检查所缓存的工作流定义来确定要执行的会话管理服务。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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