中间件的以WEB服务的方式对外提供交互,WEB应用客户端和其它应用程序客户端从不同的平台,不同的软件开发环境调用该中间件的WEB服务接口,从而获得来自不同数据源的数据,实现数据的透明访问。下面结合中间件的框架图详细说明其中的核心模块。
3.1 核心模块描述
3.1.1中间件配置模块
1>配置当前中间件和异构数据库的连接信息:包括数据库地址,登陆用户名,密码,数据库名。完成此项配置后当前中间件能够使用本地子查询模块获得经过配置数据库中的数据。
2>配置当前中间件和其它中间件的连接信息:包括连接其它中间件的用户名,密码。完成此项配置可以使中间件实现互连,构成数据共享网络。
3.1.2查询路由模块
路由模块分析用户提交的查询语句从中找出该查询需要路由的中间件,然后到本地中间件配置信息中查找其它中间件的路由信息,即连接信息,把子查询发送到对应的中间件,完成路由。
3.1.3本地子查询执行模块/查询结果重组模块
本地子查询执行模块将利用OLE DB技术实现。传统的数据库集成处理方式都需要针对不同的数据库实现相应的包装器,完成查询操作。本地子查询模块根据不同的数据库类型, 加载对应的OLE DB PROVIDER,实现对多个不同数据库的查询操作。
查询结果重组模块收集本地子查询和非本地子查询的结果,这些结果以DataSet的形式存在的,然后合并为一个大的DataSet作为最终的结果。在返回结果给客户端时根据DataSet生成一个结果XML文件给客户端,完成整个查询流程。
3.1.4安全控制模块
中间件配置后加入到由其它中间件构成的数据共享网络,通过安全控制模快配置中间件在数据共享网络中共享自身的哪些数据信息,及数据共享到怎样的程度,网络中哪些中间件能够访问自身等等。
3.1.5查询分解模块
为实现查询的高效分解,我们为中间件定义了新的查询语法,如下:
1> 用关键字DEFINE,以数据表为单位定义查询源数据单元,并以[]作为数据单元的分割符。
例:DEFINE [server1.db1.table1=a] [server2.db2.table2=b]
解释:中间件server1上的数据库db1中的数据表table1为变量a
中间件server2上的数据库db2中的数据表table2为变量b
2> 用关键字SELECT指点结果集单元,以[]作为单元分割符。
例:SELECT[a.*][b.id].
3> 用关键字FROM指定结果集来自的数据单元, 并以[]作为数据单元的分割符。
例:FROM [a][b]
4> 用关键字WHERE AND OR 指定查询条件, 并以[]作为条件单元的分割符。
例:WHERE [a.id=b.id]AND[a.age>b.age]
5> 用关键字ADDITION指定数据单元使用的属性/数据库函数/存储过程, 并以[]作为单元分割符。
例:ADDITION [a.id=GROUP BY][b.age=ORDER BY DESC][a.age=DISTINCT]
[a.age=MAX]
含义:查询过程中以a.id进行分组;以b.age进行降序排列结果;结果中a.age唯一对a.age求和 等等。
文章来源于领测软件测试网 https://www.ltesting.net/