中間件的以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安全控制模塊
中間件配置后加入到由其它中間件構成的數據共享網絡,通過安全控制?炫渲弥虚g件在數據共享網絡中共享自身的哪些數據信息,及數據共享到怎樣的程度,網絡中哪些中間件能夠訪問自身等等。
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求和 等等。
文章來源于領測軟件測試網 http://www.kjueaiud.com/