欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

向應(yīng)用的數(shù)據(jù)庫(kù)注入數(shù)據(jù)的方法和設(shè)備的制作方法

文檔序號(hào):6597750閱讀:203來(lái)源:國(guó)知局
專利名稱:向應(yīng)用的數(shù)據(jù)庫(kù)注入數(shù)據(jù)的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域
本發(fā)明的實(shí)施方式涉及數(shù)據(jù)處理領(lǐng)域,更具體地,本發(fā)明的實(shí)施方式涉及通過(guò)在 用戶定義的邏輯對(duì)象與應(yīng)用的應(yīng)用編程接口(API)之間建立關(guān)聯(lián),來(lái)實(shí)現(xiàn)向應(yīng)用的數(shù)據(jù)庫(kù) 中注入數(shù)據(jù)的方法、設(shè)備和計(jì)算機(jī)程序產(chǎn)品。
背景技術(shù)
隨著計(jì)算機(jī)軟件應(yīng)用的數(shù)據(jù)處理量的不斷提高,普通軟件應(yīng)用通??梢蕴幚韥?lái)自 各種數(shù)據(jù)源的數(shù)據(jù)。此時(shí)用戶并不關(guān)心這些數(shù)據(jù)源的物理位置以及數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),而是利 用軟件應(yīng)用通過(guò)自己的API來(lái)訪問(wèn)數(shù)據(jù)源。這里的數(shù)據(jù)源可以作廣泛理解,可以包括集中 式或者分布式數(shù)據(jù)庫(kù)、數(shù)據(jù)存儲(chǔ)文件、以及軟件應(yīng)用可以向其中注入數(shù)據(jù)和/或從其中讀 取數(shù)據(jù)的任何其他形式的存儲(chǔ)方式。然而,在用戶需要向軟件應(yīng)用的數(shù)據(jù)庫(kù)中注入數(shù)萬(wàn)兆字節(jié)甚至更大量的數(shù)據(jù)時(shí), 如何方便快捷地實(shí)現(xiàn)數(shù)據(jù)注入成為一項(xiàng)棘手難題。例如,對(duì)于軟件測(cè)試工程師而言,在軟件 應(yīng)用發(fā)布之前,需要對(duì)應(yīng)用進(jìn)行充分測(cè)試。其中模擬用戶的真實(shí)應(yīng)用環(huán)境中的數(shù)據(jù),并利用 這些數(shù)據(jù)進(jìn)行測(cè)試是一項(xiàng)重要步驟。又例如,在將軟件應(yīng)用部署至用戶環(huán)境中時(shí),用戶也需 要向數(shù)據(jù)庫(kù)中注入大量用戶數(shù)據(jù)。由于大多數(shù)用戶根本不關(guān)心軟件應(yīng)用以何種方式訪問(wèn)數(shù) 據(jù)源,也并不關(guān)心數(shù)據(jù)源的物理位置,此時(shí)用戶面對(duì)的紛繁復(fù)雜的數(shù)據(jù)存儲(chǔ)方式,很難實(shí)現(xiàn) 數(shù)據(jù)注入和數(shù)據(jù)遷移。盡管調(diào)用軟件應(yīng)用的API可以精確地進(jìn)行讀寫操作,然而對(duì)于軟件應(yīng)用的普通用 戶而言,他/她很可能根本并不了解哪些API與數(shù)據(jù)庫(kù)的讀寫操作相關(guān),也并不了解這些 API調(diào)用哪些參數(shù)來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的讀寫操作。由此迫切需要一種能夠便于用戶向應(yīng)用的 數(shù)據(jù)注入數(shù)據(jù)的方法、設(shè)備和計(jì)算機(jī)程序產(chǎn)品。在現(xiàn)有技術(shù)中,為了解決大量數(shù)據(jù)注入的問(wèn) 題,主要存在以下幾種解決方案1.使用測(cè)試自動(dòng)化工具軟件測(cè)試工程師通常使用測(cè)試自動(dòng)化工具來(lái)實(shí)現(xiàn)向軟 件應(yīng)用的數(shù)據(jù)庫(kù)中注入數(shù)據(jù)。然而這種方式在批量數(shù)據(jù)時(shí)往往效率低下,并且由此導(dǎo)致消 耗大量時(shí)間進(jìn)而影響測(cè)試工作的進(jìn)度。2.專用數(shù)據(jù)注入工具即針對(duì)特定的應(yīng)用來(lái)專門開發(fā)數(shù)據(jù)注入工具。使用此方式 的最大缺陷在于大大提高了開發(fā)成本除了開發(fā)軟件應(yīng)用本身以外,還必須開發(fā)專門的數(shù) 據(jù)注入工具。這對(duì)于大多數(shù)開發(fā)者而言是難以接受的。另外,需要針對(duì)每個(gè)軟件應(yīng)用開發(fā) 專用的數(shù)據(jù)注入工具,即使是應(yīng)用數(shù)據(jù)模式設(shè)計(jì)中的微小變化,也將導(dǎo)致重新調(diào)整專用工 具的實(shí)現(xiàn),才能準(zhǔn)確無(wú)誤地實(shí)現(xiàn)數(shù)據(jù)的注入。3.使用數(shù)據(jù)庫(kù)提供商的批量數(shù)據(jù)裝載工具這也需要額外的工作,首先必須學(xué)習(xí) 如何使用這些工具;此外,還需要深入了解數(shù)據(jù)庫(kù)的構(gòu)建方式,例如,需要了解數(shù)據(jù)庫(kù)中的 各個(gè)數(shù)據(jù)表之間的邏輯關(guān)系、了解各個(gè)表中的字段設(shè)置等等。

發(fā)明內(nèi)容
由此,迫切需要一種支持用戶方便快捷地向應(yīng)用的數(shù)據(jù)庫(kù)中注入數(shù)據(jù)的方法、設(shè) 備和計(jì)算機(jī)程序產(chǎn)品。并且希望能夠由并不熟悉應(yīng)用的API以及數(shù)據(jù)庫(kù)設(shè)計(jì)的普通用戶使 用;也即,希望能夠以用戶易懂的方式向應(yīng)用的數(shù)據(jù)庫(kù)注入數(shù)據(jù),而無(wú)須了解應(yīng)用和數(shù)據(jù)庫(kù) 的細(xì)節(jié)。在本發(fā)明的一個(gè)實(shí)施方式中,提供了用于向應(yīng)用的數(shù)據(jù)庫(kù)注入數(shù)據(jù)的方法。該方 法包括將所述應(yīng)用的應(yīng)用編程接口導(dǎo)入到目標(biāo)系統(tǒng)中;基于用戶輸入,建立邏輯對(duì)象;建 立所述邏輯對(duì)象與所述應(yīng)用的應(yīng)用編程接口之間的關(guān)聯(lián);形成數(shù)據(jù)注入規(guī)則;以及基于所 述關(guān)聯(lián)和所述數(shù)據(jù)注入規(guī)則,向所述應(yīng)用的所述數(shù)據(jù)庫(kù)注入數(shù)據(jù)。在本發(fā)明的另一實(shí)施方式中,其中所述建立所述邏輯對(duì)象與所述應(yīng)用的應(yīng)用編程 接口之間的關(guān)聯(lián)包括以下至少一個(gè)在所述邏輯對(duì)象的屬性與所述應(yīng)用編程接口的簡(jiǎn)單參 數(shù)對(duì)象之間建立映射;以及在所述應(yīng)用編程接口的復(fù)雜參數(shù)對(duì)象與其他邏輯對(duì)象之間建立 映射。在本發(fā)明的另一實(shí)施方式中,提供了用于向應(yīng)用的數(shù)據(jù)庫(kù)注入數(shù)據(jù)的設(shè)備。所述 設(shè)備包括導(dǎo)入裝置,用于將所述應(yīng)用的應(yīng)用編程接口導(dǎo)入到目標(biāo)系統(tǒng)中;建立裝置,用于 基于用戶輸入來(lái)建立邏輯對(duì)象;關(guān)聯(lián)裝置,用于建立所述邏輯對(duì)象與所述應(yīng)用的應(yīng)用編程 接口之間的關(guān)聯(lián);形成裝置,用于形成數(shù)據(jù)注入規(guī)則;以及注入裝置,用于基于所述關(guān)聯(lián)和 所述數(shù)據(jù)注入規(guī)則來(lái)向所述應(yīng)用的所述數(shù)據(jù)庫(kù)注入數(shù)據(jù)。在本發(fā)明的另一實(shí)施方式中,其中所述關(guān)聯(lián)裝置可以包括以下至少一個(gè)第一映射 裝置,用于在所述邏輯對(duì)象的屬性與所述應(yīng)用編程接口的簡(jiǎn)單參數(shù)對(duì)象之間建立映射;以及 第二映射裝置,用于在所述應(yīng)用編程接口的復(fù)雜參數(shù)對(duì)象與其他邏輯對(duì)象之間建立映射。本發(fā)明的各實(shí)施方式提供了一種可以支持不具有編程知識(shí)的普通用戶向一個(gè)應(yīng) 用的數(shù)據(jù)庫(kù)注入數(shù)據(jù)的方法、設(shè)備和計(jì)算機(jī)程序產(chǎn)品。


結(jié)合附圖并參考以下詳細(xì)說(shuō)明,本發(fā)明各實(shí)施方式的特征、優(yōu)點(diǎn)及其他方面將變 得更加明顯,在附圖中圖1示意性示出了根據(jù)本發(fā)明的一個(gè)實(shí)施方式的向應(yīng)用的數(shù)據(jù)庫(kù)注入數(shù)據(jù)的方 法的流程圖;圖2示意性示出了根據(jù)本發(fā)明的又一個(gè)實(shí)施方式的向應(yīng)用的數(shù)據(jù)庫(kù)注入數(shù)據(jù)的 方法的流程圖;圖3示意性示出了根據(jù)本發(fā)明的另一個(gè)實(shí)施方式的向應(yīng)用的數(shù)據(jù)庫(kù)注入數(shù)據(jù)的 設(shè)備的結(jié)構(gòu)框圖;圖4示意性示出了根據(jù)本發(fā)明的一個(gè)實(shí)施方式的過(guò)濾掉無(wú)關(guān)應(yīng)用編程接口的方 法的流程圖;圖5示意性示出了根據(jù)本發(fā)明的一個(gè)實(shí)施方式的構(gòu)建與數(shù)據(jù)庫(kù)注入有關(guān)的應(yīng)用 編程接口的初始集合的方法的流程圖;圖6示意性示出了根據(jù)本發(fā)明的一個(gè)實(shí)施方式的構(gòu)建與數(shù)據(jù)庫(kù)注入有關(guān)的應(yīng)用 編程接口的擴(kuò)展集合的方法的流程圖7示意性示出了根據(jù)本發(fā)明的一個(gè)實(shí)施方式的構(gòu)建有關(guān)應(yīng)用編程接口的初始 集合與擴(kuò)展集合的過(guò)程中構(gòu)造的樹狀結(jié)構(gòu)的示意圖;圖8示意性示出了根據(jù)本發(fā)明的一個(gè)實(shí)施方式的在邏輯對(duì)象屬性與應(yīng)用編程接 口參數(shù)對(duì)象之間建立映射的方法的流程圖;圖9示意性示出了根據(jù)本發(fā)明的一個(gè)實(shí)施方式的在邏輯對(duì)象屬性與應(yīng)用編程接 口參數(shù)對(duì)象之間建立映射的過(guò)程中構(gòu)造的樹狀結(jié)構(gòu)的示意圖;圖10示意性示出了根據(jù)本發(fā)明的一個(gè)實(shí)施方式的在邏輯對(duì)象屬性與應(yīng)用編程接 口參數(shù)對(duì)象之間建立映射的用戶界面示意圖;以及圖11示意性示出了根據(jù)本發(fā)明的另一個(gè)實(shí)施方式的用于向應(yīng)用的數(shù)據(jù)庫(kù)注入數(shù) 據(jù)的設(shè)備框圖。
具體實(shí)施例方式在下文中,僅以數(shù)據(jù)庫(kù)作為各種數(shù)據(jù)源的示例,文中的“數(shù)據(jù)庫(kù)”并不限制多種數(shù) 據(jù)源的類型,而是僅為舉例目的。附圖中的流程圖和框圖,圖示了按照本發(fā)明各種實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程 序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代 表一個(gè)模塊、程序段、或代碼的一部分,所述模塊、程序段、或代碼的一部分包含一個(gè)或多個(gè) 用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所 標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)接連地表示的方框?qū)嶋H 上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要 注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以 用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī) 指令的組合來(lái)實(shí)現(xiàn)。在本發(fā)明的實(shí)施方式中,基于用戶輸入來(lái)建立邏輯對(duì)象,并且自動(dòng)地建立邏輯對(duì) 象與待測(cè)應(yīng)用的應(yīng)用編程接口之間的關(guān)聯(lián),從而自動(dòng)地向該應(yīng)用的數(shù)據(jù)庫(kù)中批量注入數(shù)據(jù) 在下文中,將參考圖1至圖3詳細(xì)描述根據(jù)本發(fā)明的實(shí)施方式的方法和設(shè)備。圖1示意性示出了根據(jù)本發(fā)明的一個(gè)實(shí)施方式的向應(yīng)用的數(shù)據(jù)庫(kù)注入數(shù)據(jù)的方 法的流程圖100。如圖1所示,流程100在步驟S102將應(yīng)用的應(yīng)用編程接口(API)導(dǎo)入到 目標(biāo)系統(tǒng)中。將應(yīng)用編程接口導(dǎo)入目標(biāo)系統(tǒng),從而可以分析得出與向數(shù)據(jù)庫(kù)中輸入數(shù)據(jù)相 關(guān)的API,進(jìn)而可以分析各API之間的調(diào)用關(guān)系以及參數(shù)對(duì)象之間的關(guān)系。如本領(lǐng)域技術(shù)人員所已知,應(yīng)用通常采用API來(lái)與外部實(shí)現(xiàn)數(shù)據(jù)交互,例如對(duì)數(shù) 據(jù)庫(kù)、數(shù)據(jù)文件進(jìn)行讀寫數(shù)據(jù),或者實(shí)現(xiàn)與其他應(yīng)用之間的數(shù)據(jù)交互。應(yīng)用的最終用戶通常 對(duì)于該應(yīng)用的API并不具有深入的了解,他/她們僅需理解如何使用基于API實(shí)現(xiàn)的該應(yīng) 用的上層功能即可,而并不需要了解紛繁復(fù)雜的API之間的調(diào)用關(guān)系、各個(gè)API的參數(shù)以及 每個(gè)API實(shí)現(xiàn)的功能。通過(guò)查閱用戶手冊(cè)或者其他幫助文件,用戶可以獲取應(yīng)用中各API 的信息,包括API的名稱、調(diào)用參數(shù)、返回參數(shù)、該API的注釋以及各API之間的調(diào)用關(guān)系等寸。然后,流程100在步驟S104,基于用戶輸入來(lái)建立邏輯對(duì)象。應(yīng)當(dāng)理解,由于不要 求用戶熟知應(yīng)用的API的細(xì)節(jié),所以本發(fā)明的一個(gè)實(shí)施方式在用戶的有限認(rèn)知與應(yīng)用的復(fù)橋梁。邏輯對(duì)象是能夠完整地描述應(yīng)用中的使用場(chǎng)景 中的一個(gè)實(shí)體,在本發(fā)明的一個(gè)實(shí)施方式中,將用戶定義的邏輯對(duì)象關(guān)聯(lián)到應(yīng)用的API,此 時(shí)這個(gè)API即為向數(shù)據(jù)庫(kù)中插入該邏輯對(duì)象所代表的數(shù)據(jù)的入口。用戶可以以多種方式定義邏輯對(duì)象,例如用戶可以指定需要訪問(wèn)的數(shù)據(jù)庫(kù)中的表 的名稱、或者指定API的操作對(duì)象的名稱、或者還可以通過(guò)搜索API的注釋而向用戶提供可 選擇的API列表等。之后,在步驟S106中,在邏輯對(duì)象與應(yīng)用的API之間建立關(guān)聯(lián)。根據(jù)本發(fā)明的一 個(gè)實(shí)施方式,邏輯對(duì)象可以具有多種屬性,并且已知的是,應(yīng)用的API可以具有多個(gè)參數(shù)對(duì) 象(其中包括簡(jiǎn)單參數(shù)對(duì)象和復(fù)雜參數(shù)對(duì)象)。建立所述關(guān)聯(lián)的目的在于,可以在所述邏輯 對(duì)象的屬性與所述應(yīng)用編程接口的簡(jiǎn)單參數(shù)對(duì)象之間建立映射;以及在所述應(yīng)用編程接口 的復(fù)雜參數(shù)對(duì)象與其他邏輯對(duì)象之間建立映射,也即通過(guò)間接方式在邏輯對(duì)象與API的簡(jiǎn) 單參數(shù)對(duì)象之間建立映射。接著,在步驟S108中,形成數(shù)據(jù)注入規(guī)則。應(yīng)當(dāng)理解,數(shù)據(jù)注入規(guī)則是在向應(yīng)用的 數(shù)據(jù)庫(kù)中注入數(shù)據(jù)時(shí)所采用的約束關(guān)系。即,在注入數(shù)據(jù)過(guò)程中,可以對(duì)原有數(shù)據(jù)文件中的 數(shù)據(jù)進(jìn)行過(guò)濾,或者利用隨機(jī)方式來(lái)生成滿足該約束關(guān)系的數(shù)據(jù)。注入規(guī)則可以包括各種 形式,例如至少一個(gè)所述邏輯對(duì)象的屬性的取值范圍、被注入數(shù)據(jù)的數(shù)量、生成被注入數(shù) 據(jù)時(shí)使用的隨機(jī)值生成器、被注入數(shù)據(jù)中的至少一個(gè)值的類型以及被注入數(shù)據(jù)中的至少一 個(gè)值的出現(xiàn)頻度,等等。接著,在步驟SllO中,基于所述關(guān)聯(lián)和所述數(shù)據(jù)注入規(guī)則,向所述應(yīng)用的所述數(shù) 據(jù)庫(kù)注入數(shù)據(jù)。后文將舉例說(shuō)明注入數(shù)據(jù)的多種可行方式。圖2示意性示出了根據(jù)本發(fā)明的又一個(gè)實(shí)施方式的向應(yīng)用的數(shù)據(jù)庫(kù)注入數(shù)據(jù)的 方法的流程圖200。如圖2所示,流程200在步驟S202將應(yīng)用的API包導(dǎo)入目標(biāo)系統(tǒng)。對(duì) 于不同應(yīng)用,API包可以具有不同的形式。在根據(jù)本發(fā)明一個(gè)實(shí)施方式的方法中,可以分析 應(yīng)用的配置文件或程序設(shè)置文件,例如針對(duì)JAVA應(yīng)用而言,可以從該應(yīng)用的JNI. jar文件 中導(dǎo)入該應(yīng)用的API。應(yīng)當(dāng)注意,根據(jù)本發(fā)明的一個(gè)實(shí)施方式,在被導(dǎo)入的API包中不必對(duì)API的功能進(jìn) 行區(qū)分。通常不能僅通過(guò)導(dǎo)入API包中的各API而得知其中哪些API的功能涉及向應(yīng)用的 數(shù)據(jù)庫(kù)中注入數(shù)據(jù)。要判斷哪些API與向數(shù)據(jù)庫(kù)中注入數(shù)據(jù)有關(guān),需要在導(dǎo)入全部API之 后分析各API的功能并進(jìn)行過(guò)濾。在步驟S202之前、之中、之后或與之并行,流程200在步驟S204中過(guò)濾掉與向應(yīng) 用的數(shù)據(jù)庫(kù)注入數(shù)據(jù)無(wú)關(guān)的API。應(yīng)當(dāng)注意,與向應(yīng)用的數(shù)據(jù)庫(kù)注入數(shù)據(jù)相關(guān)包括直接相關(guān) 和間接相關(guān)兩種情況。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,由于API中可以存在復(fù)雜的調(diào)用關(guān)系,即 使某API如API 1本身沒有直接向應(yīng)用的數(shù)據(jù)庫(kù)中注入數(shù)據(jù),并不意味著該API 1與注入 數(shù)據(jù)無(wú)關(guān)而可以立刻將其過(guò)濾掉。而是,API 1可能與向數(shù)據(jù)庫(kù)注入數(shù)據(jù)間接相關(guān),例如, 當(dāng)某API如API 1的返回參數(shù)是作為直接注入數(shù)據(jù)的API 2的參數(shù)對(duì)象時(shí)即為間接相關(guān)。 例如,兩個(gè)API分別示例如下API_1 (varl, var2);API_2 (var3);其中API_2與數(shù)據(jù)注入直接相關(guān),并且此時(shí)參數(shù)var3必須經(jīng)過(guò)調(diào)用API_1 (varl,var2)才能實(shí)現(xiàn),即在調(diào)用API_2時(shí)出現(xiàn)了這樣的情況:API_2 (API_1 (varl, var2)) 0即,在 調(diào)用API_2的過(guò)程中,嵌套調(diào)用了 API_1。由此API_1也是與數(shù)據(jù)注入相關(guān)聯(lián)的API,其中 API_1是間接相關(guān),而API_2是直接相關(guān)。在下文中,將以具體示例的方式示出將應(yīng)用編程接口包導(dǎo)入目標(biāo)系統(tǒng)的過(guò)程。應(yīng) 該注意,在本說(shuō)明書通篇使用了以軟件研發(fā)行業(yè)通常使用的變更管理應(yīng)用的示例,來(lái)描述 根據(jù)本發(fā)明的實(shí)施方式的方法的整體操作流程。其中該變更管理應(yīng)用提供了與需求管理、 質(zhì)量管理、版本控制等相關(guān)的API,并提供資產(chǎn)登記、狀態(tài)變化、流程監(jiān)控等變更功能。例如,選擇該應(yīng)用提供的API包,如JAVA應(yīng)用的JNI. jar,導(dǎo)入該API包后可以得 到所有API列表,如表1所示,其中僅示意性示出了部分API 表1應(yīng)用的API列表
序號(hào)API定義12Attachment AddAttachment(str, str, UserSession)3Email (......)4UserSession Logon(str, str, Database)5Database DBConnect(str, str, str, str)6NewResource(str, str, int)7Chart (......)8CPUCount (......)9Boolean NewRecord(str, str, Resource, Date, Attachment, UserSession)10Query (......)11應(yīng)當(dāng)注意,上文表1中僅示意性示出了各API的定義。例如,應(yīng)用編程接口 Database DBConnect (str, str, str, str)表示,i亥 API 的名稱為 DBCormect,返回對(duì)象的類 型為Database,并且該API調(diào)用的參數(shù)對(duì)象是4個(gè)字符串型(“str”)的簡(jiǎn)單參數(shù)對(duì)象。在過(guò)濾無(wú)關(guān)API的同時(shí),可以記錄與數(shù)據(jù)注入有關(guān)的API以及它們之間的制約關(guān) 系。為方便下文描述起見,首先對(duì)作為API的參數(shù)對(duì)象進(jìn)行分類1)簡(jiǎn)單對(duì)象是指編程環(huán)境中直接提供的數(shù)據(jù)類型的對(duì)象,例如當(dāng)前各種編程語(yǔ)言所提供的整型、浮點(diǎn)型、布爾型、字符串型、日期類型等等類型的對(duì)象。應(yīng)當(dāng)注意,對(duì)于在不 同編程環(huán)境中開發(fā)的應(yīng)用,其簡(jiǎn)單對(duì)象的種類可以不同。2)復(fù)雜對(duì)象是指不是由編程環(huán)境中直接提供的類型的對(duì)象,而是由開發(fā)人員自己 定義的數(shù)據(jù)結(jié)構(gòu),例如可以是面向?qū)ο缶幊淘O(shè)計(jì)中的類或者結(jié)構(gòu),還可以具有其他類型的 表現(xiàn)形式。復(fù)雜對(duì)象可以由其他API來(lái)返回。為方便描述起見,根據(jù)參數(shù)對(duì)象的復(fù)雜性,將 調(diào)用API時(shí)的參數(shù)的對(duì)象分別稱為簡(jiǎn)單參數(shù)對(duì)象和復(fù)雜參數(shù)對(duì)象;而將作為API的返回結(jié) 果的對(duì)象分別稱為簡(jiǎn)單返回對(duì)象和復(fù)雜返回對(duì)象。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,通過(guò)上文中關(guān)于直接相關(guān)和間接相關(guān)的分析可知, 可以以兩個(gè)步驟實(shí)現(xiàn)過(guò)濾操作。首先,找到直接向應(yīng)用的數(shù)據(jù)庫(kù)中注入數(shù)據(jù)的API,即直接 相關(guān)的API ;繼而,檢查在第一步中找到的API的參數(shù)對(duì)象的復(fù)雜性,并且找到以復(fù)雜參數(shù) 對(duì)象為返回對(duì)象的全部API,即間接相關(guān)的API。現(xiàn)在返回圖2中的步驟S206,在該步驟中,基于用戶輸入來(lái)建立邏輯對(duì)象。應(yīng)當(dāng)理 解,由于不要求用戶熟知應(yīng)用的API的細(xì)節(jié),所以本發(fā)明的一個(gè)實(shí)施方式在用戶的有限認(rèn) 知與應(yīng)用的復(fù)雜API之間建立“邏輯對(duì)象”以作為橋梁。邏輯對(duì)象是能夠完整地描述應(yīng)用 中的使用場(chǎng)景中的一個(gè)實(shí)體,在本發(fā)明的一個(gè)實(shí)施方式中,將用戶定義的邏輯對(duì)象關(guān)聯(lián)到 應(yīng)用的API,此時(shí)這個(gè)API即為向數(shù)據(jù)庫(kù)中插入該邏輯對(duì)象所代表的數(shù)據(jù)的入口。用戶可以以多種方式定義邏輯對(duì)象,例如用戶可以指定需要訪問(wèn)的數(shù)據(jù)庫(kù)中的表 的名稱、或者指定API的操作對(duì)象的名稱、或者還可以通過(guò)搜索API的注釋而向用戶提供可 選擇的API列表等。之后,在步驟S208中,在邏輯對(duì)象與應(yīng)用的API之間建立關(guān)聯(lián)。根據(jù)本發(fā)明的一 個(gè)實(shí)施方式,邏輯對(duì)象可以具有多種屬性,并且已知的是,應(yīng)用的API可以具有多個(gè)參數(shù)對(duì) 象(其中包括簡(jiǎn)單參數(shù)對(duì)象和復(fù)雜參數(shù)對(duì)象)。建立所述關(guān)聯(lián)的目的在于,可以在所述邏輯 對(duì)象的屬性與所述應(yīng)用編程接口的簡(jiǎn)單參數(shù)對(duì)象之間建立映射;以及在所述應(yīng)用編程接口 的復(fù)雜參數(shù)對(duì)象與其他邏輯對(duì)象之間建立映射,也即通過(guò)間接方式在邏輯對(duì)象與API的簡(jiǎn) 單參數(shù)對(duì)象之間建立映射。接著,在步驟S210中,形成數(shù)據(jù)注入規(guī)則。應(yīng)當(dāng)理解,數(shù)據(jù)注入規(guī)則是在向應(yīng)用的 數(shù)據(jù)庫(kù)中注入數(shù)據(jù)時(shí)所采用的約束關(guān)系。即,在注入數(shù)據(jù)過(guò)程中,可以對(duì)原有數(shù)據(jù)文件中的 數(shù)據(jù)進(jìn)行過(guò)濾,或者利用隨機(jī)方式來(lái)生成滿足該約束關(guān)系的數(shù)據(jù)。注入規(guī)則可以包括各種 形式,例如至少一個(gè)所述邏輯對(duì)象的屬性的取值范圍、被注入數(shù)據(jù)的數(shù)量、生成被注入數(shù) 據(jù)時(shí)使用的隨機(jī)值生成器、被注入數(shù)據(jù)中的至少一個(gè)值的類型以及被注入數(shù)據(jù)中的至少一 個(gè)值的出現(xiàn)頻度,等等。接著,在步驟S212中,基于所述關(guān)聯(lián)和所述數(shù)據(jù)注入規(guī)則,向所述應(yīng)用的所述數(shù) 據(jù)庫(kù)注入數(shù)據(jù)。后文將舉例說(shuō)明注入數(shù)據(jù)的多種可行方式?,F(xiàn)在參考圖3,其中示意性示出了根據(jù)本發(fā)明的一個(gè)實(shí)施方式的向應(yīng)用的數(shù)據(jù)庫(kù) 注入數(shù)據(jù)的設(shè)備300的結(jié)構(gòu)框圖。根據(jù)本發(fā)明一個(gè)實(shí)施方式的設(shè)備300可以包括邏輯對(duì) 象接口機(jī)構(gòu)310、元數(shù)據(jù)操作機(jī)構(gòu)320、應(yīng)用編程接口集成機(jī)構(gòu)330以及元數(shù)據(jù)XML存儲(chǔ)器 340。通過(guò)使用應(yīng)用編程接口集成機(jī)構(gòu)330來(lái)導(dǎo)入應(yīng)用的API,用戶并不需要了解應(yīng)用 API的詳細(xì)信息,也不必了解待注入數(shù)據(jù)的數(shù)據(jù)庫(kù)的設(shè)計(jì)方式、存儲(chǔ)結(jié)構(gòu),即可向其中注入數(shù)據(jù),亦不需額外的開發(fā)和維護(hù)的工作。邏輯對(duì)象接口機(jī)構(gòu)310支持用戶建立自己可理解 的邏輯對(duì)象,并幫助用戶在與該邏輯對(duì)象相關(guān)的應(yīng)用API之間建立關(guān)聯(lián)。邏輯對(duì)象接口 機(jī)構(gòu)310還支持用戶制定數(shù)據(jù)注入規(guī)則,并控制向數(shù)據(jù)庫(kù)注入數(shù)據(jù)或者清空先前裝載的數(shù) 據(jù)。元數(shù)據(jù)操作機(jī)構(gòu)320管理相關(guān)的邏輯對(duì)象之間的關(guān)系、邏輯對(duì)象與應(yīng)用API之間的關(guān) 系、應(yīng)用API之間的關(guān)系以及數(shù)據(jù)注入規(guī)則等,并將上述內(nèi)容以元數(shù)據(jù)的方式存儲(chǔ)在元數(shù) 據(jù)XML存儲(chǔ)器340中。應(yīng)當(dāng)注意,本發(fā)明的一個(gè)實(shí)施方式中采用XML的形式來(lái)存儲(chǔ)元數(shù)據(jù), 本領(lǐng)域技術(shù)人員應(yīng)理解還可以使用其他的存儲(chǔ)形式來(lái)存儲(chǔ)上述內(nèi)容。在圖3的虛線框部分中示出了多個(gè)應(yīng)用(應(yīng)用1至應(yīng)用N)和相對(duì)應(yīng)的數(shù)據(jù)庫(kù)(應(yīng) 用1數(shù)據(jù)庫(kù)至應(yīng)用N數(shù)據(jù)庫(kù))。圖3所示應(yīng)用的一個(gè)例子是可從國(guó)際商業(yè)機(jī)器公司購(gòu)得的 ClearQuest0圖3所示應(yīng)用的另一個(gè)例子是同樣可從國(guó)際商業(yè)機(jī)器公司購(gòu)得的ClearCase。 一個(gè)目標(biāo)系統(tǒng)中可以包括也可以不包括圖3中所示的一個(gè)或多個(gè)應(yīng)用。在一個(gè)實(shí)施方式 中,將目標(biāo)系統(tǒng)中不包括的一個(gè)應(yīng)用集成到該目標(biāo)系統(tǒng)中以測(cè)試該應(yīng)用的性能。為此,利用 圖3所示的設(shè)備來(lái)向該待集成的應(yīng)用的對(duì)應(yīng)的數(shù)據(jù)庫(kù)中注入數(shù)據(jù)。因此,可以使用本發(fā)明 的設(shè)備來(lái)將一個(gè)新的應(yīng)用集成到目標(biāo)系統(tǒng)中。在一個(gè)實(shí)施方式中,在完成數(shù)據(jù)注入之后,也 可以去除所集成的應(yīng)用。注意,此時(shí)已經(jīng)向該應(yīng)用相應(yīng)的數(shù)據(jù)庫(kù)中注入了所需數(shù)據(jù),因此, 去除該應(yīng)用并不會(huì)對(duì)已注入數(shù)據(jù)的數(shù)據(jù)庫(kù)的內(nèi)容造成不利影響。在圖3中,應(yīng)用編程接口集成機(jī)構(gòu)330從被集成的應(yīng)用中導(dǎo)入API包,并且過(guò)濾掉 與數(shù)據(jù)注入無(wú)關(guān)的API。該應(yīng)用編程接口集成機(jī)構(gòu)330同待集成的應(yīng)用直接進(jìn)行交互,其 功能包括導(dǎo)入應(yīng)用的API包,初始化應(yīng)用API的調(diào)用環(huán)境,調(diào)用應(yīng)用API向應(yīng)用數(shù)據(jù)庫(kù)中 注入數(shù)據(jù),清除數(shù)據(jù)等。過(guò)濾后得到的API或者是與數(shù)據(jù)注入直接相關(guān)的API,或者是與該 直接相關(guān)的API的復(fù)雜參數(shù)對(duì)象相關(guān)的API。在該應(yīng)用編程接口集成機(jī)構(gòu)330進(jìn)行處理之 后,可以將過(guò)濾后得到的API、API的參數(shù)對(duì)象、API之間的關(guān)系以及涉及到的應(yīng)用數(shù)據(jù)庫(kù)表 的基本信息等傳輸至元數(shù)據(jù)操作機(jī)構(gòu)320,并以XML等形式存儲(chǔ)到一個(gè)存儲(chǔ)器中,如元數(shù)據(jù) XML存儲(chǔ)器340中。元數(shù)據(jù)操作機(jī)構(gòu)320管理如下關(guān)系邏輯對(duì)象與應(yīng)用的API之間的關(guān)系、邏輯對(duì)象 之間的關(guān)系、邏輯對(duì)象屬性的取值范圍以及邏輯對(duì)象之間的制約關(guān)系等。表2示意性示出 了元數(shù)據(jù)的內(nèi)容表2元數(shù)據(jù)的內(nèi)容
權(quán)利要求
1.用于向應(yīng)用的數(shù)據(jù)庫(kù)注入數(shù)據(jù)的方法,包括 將所述應(yīng)用的應(yīng)用編程接口導(dǎo)入到目標(biāo)系統(tǒng)中; 基于用戶輸入,建立邏輯對(duì)象;建立所述邏輯對(duì)象與所述應(yīng)用的應(yīng)用編程接口之間的關(guān)聯(lián); 形成數(shù)據(jù)注入規(guī)則;以及基于所述關(guān)聯(lián)和所述數(shù)據(jù)注入規(guī)則,向所述應(yīng)用的所述數(shù)據(jù)庫(kù)注入數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的方法,還包括過(guò)濾掉所述應(yīng)用的與向所述應(yīng)用的所述數(shù)據(jù)庫(kù) 注入數(shù)據(jù)無(wú)關(guān)的應(yīng)用編程接口。
3.根據(jù)權(quán)利要求2所述的方法,其中所述過(guò)濾掉與向所述應(yīng)用的所述數(shù)據(jù)庫(kù)注入數(shù)據(jù) 無(wú)關(guān)的應(yīng)用編程接口包括獲得初始集合,所述初始集合包括與向所述應(yīng)用的所述數(shù)據(jù)庫(kù)注入數(shù)據(jù)有關(guān)的應(yīng)用編 程接口 ;獲得擴(kuò)展集合,所述擴(kuò)展集合包括對(duì)所述初始集合中的應(yīng)用編程接口的復(fù)雜參數(shù)對(duì)象 和復(fù)雜返回對(duì)象中的至少一個(gè)進(jìn)行定義的應(yīng)用編程接口;以及過(guò)濾掉除所述初始集合和所述擴(kuò)展集合中的應(yīng)用編程接口之外的應(yīng)用編程接口。
4.根據(jù)權(quán)利要求3所述的方法,其中所述初始集合是通過(guò)以下至少一種方式指定的 將向所述數(shù)據(jù)庫(kù)中插入數(shù)據(jù)的應(yīng)用編程接口指定為所述初始集合;以及基于用戶輸入指定所述初始集合。
5.根據(jù)權(quán)利要求3或4所述的方法,所述獲得所述擴(kuò)展集合包括對(duì)于定義了所述初始集合和所述擴(kuò)展集合中的應(yīng)用編程接口,迭代地將包括復(fù)雜參數(shù) 對(duì)象和復(fù)雜返回對(duì)象中的至少一個(gè)的應(yīng)用編程接口加入所述擴(kuò)展集合,直到所述初始集合 和所述擴(kuò)展集合中的參數(shù)對(duì)象和返回對(duì)象均為簡(jiǎn)單對(duì)象或者均由所述初始集合和所述擴(kuò) 展集合中的應(yīng)用編程接口定義。
6.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其中所述建立所述邏輯對(duì)象與所述應(yīng)用 的應(yīng)用編程接口之間的關(guān)聯(lián)包括以下至少一個(gè)在所述邏輯對(duì)象的屬性與所述應(yīng)用編程接口的簡(jiǎn)單參數(shù)對(duì)象之間建立映射;以及 在所述應(yīng)用編程接口的復(fù)雜參數(shù)對(duì)象與已經(jīng)或?qū)⒁c簡(jiǎn)單參數(shù)對(duì)象建立映射的邏輯 對(duì)象之間建立映射。
7.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其中所述形成數(shù)據(jù)注入規(guī)則包括以下至 少一個(gè)根據(jù)所述目標(biāo)系統(tǒng)的默認(rèn)方式,形成所述數(shù)據(jù)注入規(guī)則;以及 根據(jù)用戶的自定義方式,形成所述數(shù)據(jù)注入規(guī)則。
8.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其中所述向所述應(yīng)用的所述數(shù)據(jù)庫(kù)注入 數(shù)據(jù)包括從至少一個(gè)數(shù)據(jù)文件向所述應(yīng)用的所述數(shù)據(jù)庫(kù)批量地注入數(shù)據(jù)。
9.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其中所述向所述應(yīng)用的所述數(shù)據(jù)庫(kù)注入 數(shù)據(jù)包括根據(jù)所述數(shù)據(jù)注入規(guī)則自動(dòng)生成隨機(jī)數(shù)據(jù);以及 向所述應(yīng)用的所述數(shù)據(jù)庫(kù)批量地注入所述隨機(jī)數(shù)據(jù)。
10.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其中所述數(shù)據(jù)注入規(guī)則包括以下至少一個(gè)至少一個(gè)所述邏輯對(duì)象的屬性的取值范圍; 被注入數(shù)據(jù)的數(shù)量;生成被注入數(shù)據(jù)時(shí)使用的隨機(jī)值生成器; 被注入數(shù)據(jù)中的至少一個(gè)值的類型;以及 被注入數(shù)據(jù)中的至少一個(gè)值的出現(xiàn)頻度。
11.用于向應(yīng)用的數(shù)據(jù)庫(kù)注入數(shù)據(jù)的設(shè)備,包括導(dǎo)入裝置,用于將所述應(yīng)用的應(yīng)用編程接口導(dǎo)入到目標(biāo)系統(tǒng)中; 建立裝置,用于基于用戶輸入來(lái)建立邏輯對(duì)象;關(guān)聯(lián)裝置,用于建立所述邏輯對(duì)象與所述應(yīng)用的應(yīng)用編程接口之間的關(guān)聯(lián); 形成裝置,用于形成數(shù)據(jù)注入規(guī)則;以及注入裝置,用于基于所述關(guān)聯(lián)和所述數(shù)據(jù)注入規(guī)則來(lái)向所述應(yīng)用的所述數(shù)據(jù)庫(kù)注入數(shù)據(jù)。
12.根據(jù)權(quán)利要求11所述的設(shè)備,還包括過(guò)濾裝置,用于過(guò)濾掉所述應(yīng)用的與向所述 應(yīng)用的所述數(shù)據(jù)庫(kù)注入數(shù)據(jù)無(wú)關(guān)的應(yīng)用編程接口。
13.根據(jù)權(quán)利要求12所述的設(shè)備,其中所述過(guò)濾裝置包括第一獲得裝置,用于獲得初始集合,所述初始集合包括與向所述應(yīng)用的所述數(shù)據(jù)庫(kù)注 入數(shù)據(jù)有關(guān)的應(yīng)用編程接口;第二獲得裝置,用于獲得擴(kuò)展集合,所述擴(kuò)展集合包括對(duì)所述初始集合中的應(yīng)用編程 接口的復(fù)雜參數(shù)對(duì)象和復(fù)雜返回對(duì)象中的至少一個(gè)進(jìn)行定義的應(yīng)用編程接口 ;以及應(yīng)用編程接口過(guò)濾裝置,用于過(guò)濾掉除所述初始集合和所述擴(kuò)展集合中的應(yīng)用編程接 口之外的應(yīng)用編程接口。
14.根據(jù)權(quán)利要求13所述的設(shè)備,還包括以下至少一個(gè)第一指定裝置,用于將向所述數(shù)據(jù)庫(kù)中插入數(shù)據(jù)的應(yīng)用編程接口指定為所述初始集 合;以及第二指定裝置,用于基于用戶輸入指定所述初始集合。
15.根據(jù)權(quán)利要求13或14所述的設(shè)備,所述第二獲得裝置包括迭代裝置,用于對(duì)于定義了所述初始集合和所述擴(kuò)展集合中的應(yīng)用編程接口,迭代地 將包括復(fù)雜參數(shù)對(duì)象和復(fù)雜返回對(duì)象中的至少一個(gè)的應(yīng)用編程接口加入所述擴(kuò)展集合,直 到所述初始集合和所述擴(kuò)展集合中的參數(shù)對(duì)象和返回對(duì)象均為簡(jiǎn)單對(duì)象或者均由所述初 始集合和所述擴(kuò)展集合中的應(yīng)用編程接口定義。
16.根據(jù)權(quán)利要求11至14中任一項(xiàng)所述的設(shè)備,其中所述關(guān)聯(lián)裝置包括以下至少一個(gè)第一映射裝置,用于在所述邏輯對(duì)象的屬性與所述應(yīng)用編程接口的簡(jiǎn)單參數(shù)對(duì)象之間 建立映射;以及第二映射裝置,用于在所述應(yīng)用編程接口的復(fù)雜參數(shù)對(duì)象與已經(jīng)或?qū)⒁c簡(jiǎn)單參數(shù)對(duì) 象建立映射的邏輯對(duì)象之間建立映射。
17.根據(jù)權(quán)利要求11至14中任一項(xiàng)所述的設(shè)備,其中所述形成裝置包括以下至少一個(gè)第一形成裝置,用于根據(jù)所述目標(biāo)系統(tǒng)的默認(rèn)方式來(lái)形成所述數(shù)據(jù)注入規(guī)則;以及 第二形成裝置,用于根據(jù)用戶的自定義方式來(lái)形成所述數(shù)據(jù)注入規(guī)則。
18.根據(jù)權(quán)利要求11至14中任一項(xiàng)所述的設(shè)備,其中所述注入裝置從至少一個(gè)數(shù)據(jù)文 件向所述應(yīng)用的所述數(shù)據(jù)庫(kù)批量地注入數(shù)據(jù)。
19.根據(jù)權(quán)利要求11至14中任一項(xiàng)所述的設(shè)備,還包括隨機(jī)數(shù)據(jù)生成裝置,用于根據(jù) 所述數(shù)據(jù)注入規(guī)則自動(dòng)生成隨機(jī)數(shù)據(jù),并且其中所述注入裝置向所述應(yīng)用的所述數(shù)據(jù)庫(kù)批 量地注入所述隨機(jī)數(shù)據(jù)。
20.根據(jù)權(quán)利要求11至14中任一項(xiàng)所述的設(shè)備,其中所述數(shù)據(jù)注入規(guī)則包括以下至少 一個(gè)至少一個(gè)所述邏輯對(duì)象的屬性的取值范圍; 被注入數(shù)據(jù)的數(shù)量;生成被注入數(shù)據(jù)時(shí)使用的隨機(jī)值生成器; 被注入數(shù)據(jù)中的至少一個(gè)值的類型;以及 被注入數(shù)據(jù)中的至少一個(gè)值的出現(xiàn)頻度。
全文摘要
本發(fā)明的實(shí)施方式提供了向應(yīng)用的數(shù)據(jù)庫(kù)注入數(shù)據(jù)的方法。該方法包括將所述應(yīng)用的應(yīng)用編程接口導(dǎo)入到目標(biāo)系統(tǒng)中;基于用戶輸入,建立邏輯對(duì)象;建立該邏輯對(duì)象與該應(yīng)用的應(yīng)用編程接口之間的關(guān)聯(lián);形成數(shù)據(jù)注入規(guī)則;以及基于該關(guān)聯(lián)和該數(shù)據(jù)注入規(guī)則,向該應(yīng)用的該數(shù)據(jù)庫(kù)注入數(shù)據(jù)。還提供了向應(yīng)用的數(shù)據(jù)庫(kù)注入數(shù)據(jù)的設(shè)備。該設(shè)備包括導(dǎo)入裝置,用于將該應(yīng)用的應(yīng)用編程接口導(dǎo)入到目標(biāo)系統(tǒng)中;建立裝置,用于基于用戶輸入來(lái)建立邏輯對(duì)象;關(guān)聯(lián)裝置,用于建立該邏輯對(duì)象與該應(yīng)用的應(yīng)用編程接口之間的關(guān)聯(lián);形成裝置,用于形成數(shù)據(jù)注入規(guī)則;以及注入裝置,用于基于該關(guān)聯(lián)和該數(shù)據(jù)注入規(guī)則來(lái)向該應(yīng)用的該數(shù)據(jù)庫(kù)注入數(shù)據(jù)。因此,不具有編程知識(shí)的普通用戶也可以向應(yīng)用的數(shù)據(jù)庫(kù)注入數(shù)據(jù)。
文檔編號(hào)G06F9/44GK102141907SQ201010102999
公開日2011年8月3日 申請(qǐng)日期2010年1月28日 優(yōu)先權(quán)日2010年1月28日
發(fā)明者楊樹, 鞠琳, 高偉斌, 高雪峰 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
万年县| 额敏县| 邢台县| 静乐县| 洛川县| 丹寨县| 昌黎县| 象山县| 崇州市| 建阳市| 南康市| 临江市| 同德县| 建阳市| 玉溪市| 杭锦后旗| 曲靖市| 和静县| 保德县| 翁牛特旗| 恩平市| 璧山县| 巴东县| 沈阳市| 视频| 德庆县| 甘洛县| 塔城市| 永川市| 隆尧县| 萍乡市| 泰和县| 栾川县| 朝阳市| 莆田市| 晋中市| 云阳县| 灵山县| 桃源县| 怀化市| 壶关县|