[發明專利]一種基于需求驅動的電梯數據服務組合與視圖自動生成方法在審
| 申請號: | 201810037892.0 | 申請日: | 2018-01-16 |
| 公開(公告)號: | CN108334566A | 公開(公告)日: | 2018-07-27 |
| 發明(設計)人: | 張元鳴;黃浪游;李夢妮;陸佳煒;徐俊;高飛;肖剛 | 申請(專利權)人: | 浙江工業大學 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 杭州天正專利事務所有限公司 33201 | 代理人: | 王兵;黃美娟 |
| 地址: | 310014 浙*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 電梯數據 服務組合 需求驅動 原子數據 自動生成 電梯 復合數據 用戶數據 服務生成 數據服務 數據集成 數據組合 約束條件 自動搜索 組合視圖 數據集 依賴圖 封裝 服務 自動化 | ||
1.一種基于需求驅動的電梯數據服務組合與視圖自動生成方法,包括以下步驟:(1)建立電梯數據服務依賴圖;
將電梯相關數據集封裝為電梯原子數據服務,其定義如下:
定義1原子數據服務:將可獨立訪問且語義不可再分的數據服務稱為原子數據服務,它表示為一個八元組ADS=<Id,Name,Fields,Description,Input,Output,Operations,Publisher>,其中Id是ADS的唯一標識;Name是ADS的名稱;Fields是ADS的屬性列表;Description是ADS的語義描述;Input是ADS的輸入,有一個或多個;Output是ADS的輸出,是一個關系;Operations是對ADS可執行的操作,包括查詢、修改和刪除;Publisher是ADS的發布者;
根據數據依賴關系,建立電梯數據服務依賴圖的具體步驟如下:
步驟a1:根據電梯數據庫的元數據,封裝電梯原子數據服務ADS;
步驟a2:根據屬性間的函數依賴和連接依賴,建立電梯數據依賴圖DDG,其節點為屬性,有向邊為依賴關系;
步驟a3:基于電梯數據依賴圖,將屬性間的數據依賴關系直接轉換為原子數據服務之間的依賴關系,構建電梯數據服務依賴圖DSDG,其節點為原子數據服務,無向邊為連通關系;
(2)根據用戶需求自動生成電梯復合數據服務;
(2.1)用戶數據需求描述;
數據服務組合過程是在用戶數據需求驅動下進行的,用戶數據需求DR表示用戶所需要操作的數據對象,其定義如下:
定義2數據需求:用戶所需要的屬性列表、約束條件以及執行的操作稱為數據需求,表示為一個三元組DR=<Requires,Conditions,Operations>,其中Requires表示數據需求的屬性列表;Conditions={<Field,Value>|Field表示屬性名,Value表示屬性值>}表示數據需求的約束條件;Operations={get,delete,update}表示需要執行的操作;
(2.2)基于數據服務依賴圖生成復合數據服務;
根據用戶數據需求,在數據服務依賴圖上自動搜索相關的原子數據服務,并將原子數據服務組合的結果稱為復合數據服務CDS,其定義如下:
定義3復合數據服務:由若干原子數據服務組成且可被獨立訪問的數據服務稱為復合數據服務,它表示為一個八元組CDS=<Id,Name,Sub-DSDG,Description,Input,Output,Operations,Publisher>,其中Id是CDS的唯一標識;Name是CDS的名稱;Sub-DSG是DSDG的子圖;Description是CDS的語義描述;Input是CDS的輸入,有1到多個;Output是CDS的輸出,是一個關系;Operations是對CDS可執行的操作;Publisher是CDS的發布者;
基于需求驅動的復合數據服務生成算法的思想:從第一個需求屬性開始按廣度優先策略訪問數據服務依賴圖,直至訪問到所有需求屬性,得到第一個屬性至其余屬性之間的訪問路徑,按訪問路徑依次選取相關的ADS,組合所有ADS生成CDS,算法具體步驟如下:
輸入:數據服務依賴圖DSDG,數據需求DR
輸出:復合數據服務CDS
步驟b1:選取DR的Requires屬性列表中第一個屬性field1,屬性field1做已訪問標記,判斷屬性field1是否為主鍵,若是,選取以field1為輸入屬性、輸出屬性的ADS為初始訪問結點node1;若不是,選取以field1為輸入屬性、field1所屬表主鍵為輸出屬性的ADS為初始訪問結點node1;
步驟b2:將結點node1做已訪問標記,加入輸出列表并壓入隊列queue;
步驟b3:若queue不為空,則彈出結點node1,將node1所有鄰接結點中未訪問過的結點壓入queue,做已訪問標記,并記錄每個結點的前置結點為node1;
步驟b4:判斷已訪問結點是否包含DR屬性列表中所有的ADS,若包含,則轉步驟b5;若不包含,則轉步驟b3;
步驟b5:判斷DR的Requires屬性列表中是否存在未訪問的屬性field2,若存在,屬性field2做已訪問標記,按步驟b1的判斷規則選取ADS作為初始訪問結點node2,將node2加入輸出列表中;若不存在,將輸出列表中的ADS封裝為一個CDS,結束算法;
步驟b6:判斷node2的前置結點是否包含在輸出列表中,若包含,則轉步驟b5;若不包含,則加入輸出列表中,將前置結點標為node2重復步驟b6;
只要數據依賴圖包含數據需求的屬性列表中所有屬性,就一定能夠查找到相關原子數據服務,通過服務組合生成滿足數據需求的復合數據服務;
(3)根據用戶約束條件自動生成電梯數據組合視圖;
復合數據服務CDS包含了與數據需求相關的原子數據服務及其依賴關系,以用戶數據需求的約束條件作為輸入,其執行的結果稱為數據組合視圖,其定義如下:
定義4數據組合視圖:執行復合數據服務后生成的結果稱為數據組合視圖,其形式上是一張二維表格;
基于需求驅動的電梯數據組合視圖自動生成算法的思想:從第一個條件屬性對應的ADS開始執行,并按廣度優先策略訪問復合數據服務,當有冗余訪問的情況時,將圖結構的已訪問部分和未訪問部分劃分,從未訪問部分繼續訪問,直至執行所有ADS,對所有產生的數據子集依次進行連接操作組成完整的數據集,再按所有條件對數據集進行投影和篩選操作,得到結果集,算法具體步驟如下:
輸入:復合數據服務依賴圖CDS,數據需求DR
輸出:電梯數據組合視圖DCV
步驟c1:選取DR的Conditions中第一個條件的屬性,判斷屬性field是否為主鍵,若是,執行輸入屬性、輸出屬性都為field的ADS1;若不是,執行以field為輸入屬性、field所屬表主鍵為輸出屬性的ADS1;
步驟c2:按廣度優先策略,將與ADS1所有連通的ADS壓入隊列Queue1
步驟c3:若Queue1不為空,彈出ADS2,若ADS1的輸出屬性為主鍵,轉步驟c4;若ADS1的輸出屬性不為主鍵,轉步驟c6;若Queue1為空,將當前數據集存入數據集鏈表,轉步驟c8;
步驟c4:若ADS2的輸出屬性為主鍵,則ADS2的輸出結果等于ADS1的輸出結果;若ADS2的輸出屬性不為主鍵,轉步驟c5;
步驟c5:若ADS2的輸出屬性所屬的表有多個主鍵,將除ADS1的輸出屬性外的其余主鍵為輸入的ADS壓入隊列Queue2,然后轉步驟c2;若只有一個主鍵,則以ADS1的輸出結果為輸入,執行ADS2,然后轉步驟c2;
步驟c6:若ADS2的輸出屬性與ADS1的輸出屬性屬于同一張表,轉步驟7,否則將ADS2壓入隊列Queue2;
步驟c7:若ADS2的輸出屬性所屬表只有一個主鍵,則轉步驟c5,否則將除ADS1的輸出屬性外的其余主鍵為輸入的ADS壓入隊列Queue2;
步驟c8:若Queue2不為空,彈出ADS3,轉步驟c2;若Queue2為空,將數據集鏈表里的多個數據子集執行連接操作;
步驟c9:按所有的Requires屬性對連接的結果執行投影操作,然后按所有的Conditions條件進行篩選,結束算法;
數據組合視圖中包含的屬性與數據需求的屬性列表相匹配,當執行的數據結果存在滿足數據需求的約束條件時,自動生成一張二維表格。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于浙江工業大學,未經浙江工業大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810037892.0/1.html,轉載請聲明來源鉆瓜專利網。





