本專利申請涉及以下共同未決申請,并且要求這些申請的優(yōu)先權(quán),這些申請全文并入本文:
A.以與本專利申請同一申請人的名義于2014年9月9日提交的印度專利申請No.4421/CHE/2014,標(biāo)題為“Generating Instruction Sets Implementing Business Rules Designed To Update Business Objects Of Financial Applications”;以及
B.以與本專利申請同一申請人的名義于2015年1月13日提交的美國非臨時專利申請No.14/595,223,標(biāo)題為“Generating Instruction Sets Implementing Business Rules Designed To Update Business Objects Of Financial Applications”。
技術(shù)領(lǐng)域
本公開涉及企業(yè)應(yīng)用服務(wù)器,并且更具體地涉及產(chǎn)生實現(xiàn)被設(shè)計為更新根據(jù)應(yīng)用數(shù)據(jù)模型指定的對象的規(guī)則的指令集。
背景技術(shù):
應(yīng)用被用來處理數(shù)據(jù)并且提供對應(yīng)的期望功能。金融應(yīng)用是與金融工具(諸如信用卡、貸款、銀行賬戶等)的管理有關(guān)的一類應(yīng)用。如相關(guān)領(lǐng)域中眾所周知的,金融應(yīng)用在各種商業(yè)企業(yè)(諸如銀行、保險公司、證券經(jīng)紀(jì)業(yè)等)中得到使用。
應(yīng)用經(jīng)常是基于數(shù)據(jù)模型(“應(yīng)用數(shù)據(jù)模型”)開發(fā)的,這些數(shù)據(jù)模型可以不同于根據(jù)其存儲數(shù)據(jù)的數(shù)據(jù)模型。例如,數(shù)據(jù)可以根據(jù)關(guān)系數(shù)據(jù)庫模型以表格的形式存儲,而應(yīng)用可以基于根據(jù)應(yīng)用數(shù)據(jù)模型指定的對象(以下“數(shù)據(jù)對象”)而被開發(fā)。數(shù)據(jù)對象被定義為包含各種屬性,數(shù)據(jù)對象的實例(“對象實例”)具有各個屬性的對應(yīng)值。
規(guī)則被用在應(yīng)用中以更新根據(jù)應(yīng)用數(shù)據(jù)模型指定的數(shù)據(jù)對象。規(guī)則處于概念層次,是可能對更接近于機器能夠進行操作的層次(例如,編程語言、SQL查詢等)的對應(yīng)實現(xiàn)不熟悉的用戶(例如,管理員、管理者、分析員、高級管理人員等)可理解的。
更新數(shù)據(jù)對象意味著改變數(shù)據(jù)對象的各個對象實例的一個或多個屬性的對應(yīng)值。作為簡單的情況,銀行可能具有如下規(guī)則:該規(guī)則根據(jù)客戶的信用評級的不同水平(高風(fēng)險、中等風(fēng)險和低風(fēng)險)以及貸款的類型(例如,住房、汽車、個人等)來更新利率??梢匀菀椎乩斫猓?guī)則的執(zhí)行引起多個對象實例的改變。復(fù)雜的規(guī)則典型地涉及幾個更多的變量/維度、對多個屬性的更新和/或?qū)τ诒桓聦傩缘闹档膹?fù)雜計算。
規(guī)則被轉(zhuǎn)換為更適合于在機器上執(zhí)行的等效指令集。例如,假定數(shù)據(jù)對象存儲在管理數(shù)據(jù)庫系統(tǒng)中,指令集包括指向關(guān)系數(shù)據(jù)庫系統(tǒng)的表格的SQL(結(jié)構(gòu)化查詢語言)查詢。
本公開的各方面針對的是產(chǎn)生這樣的指令集:該指令集實現(xiàn)被設(shè)計為更新根據(jù)應(yīng)用數(shù)據(jù)模型指定的對象的規(guī)則。
附圖說明
參照下面簡要描述的附圖來描述本公開的示例實施例。
圖1是例示了在其中可以實現(xiàn)本公開的幾個方面的示例環(huán)境的框圖。
圖2是例示了根據(jù)本公開的一方面的產(chǎn)生實現(xiàn)被設(shè)計為更新根據(jù)應(yīng)用數(shù)據(jù)模型指定的對象的規(guī)則的指令集的方式的流程圖。
圖3A例示了在一個實施例中為執(zhí)行而指定規(guī)則的方式。
圖3B例示了在一個實施例中根據(jù)本公開的幾個方面對規(guī)則進行處理的方式。
圖4A例示了在一個實施例中向用戶顯示被確定為適合合并的規(guī)則子集的方式。
圖4B例示了在一個實施例中向用戶顯示合并規(guī)則子集的結(jié)果的方式。
圖5是例示了在其中本公開的幾個方面可通過執(zhí)行適當(dāng)?shù)能浖噶疃僮鞯臄?shù)字處理系統(tǒng)的細(xì)節(jié)的框圖。
在附圖中,相似的附圖標(biāo)記一般指示相同的、功能上類似的和/或結(jié)構(gòu)上類似的要素。要素首次出現(xiàn)的附圖由對應(yīng)附圖標(biāo)記中的最左邊的數(shù)字指示。
具體實施方式
1.概述
本公開的一個方面產(chǎn)生這樣的指令集:該指令集實現(xiàn)被設(shè)計為更新根據(jù)應(yīng)用數(shù)據(jù)模型指定的對象的規(guī)則。在一個實施例中,對被設(shè)計為更新對象的規(guī)則進行處理以形成(規(guī)則的)桶集以使每個桶包含在執(zhí)行次序上不具有相互依賴性的規(guī)則。然后,對于每個桶,確定被設(shè)計為更新公共(數(shù)據(jù))對象的規(guī)則子集,并且為每個確定的規(guī)則子集產(chǎn)生對應(yīng)的單個指令集。然后,并行地執(zhí)行為每個桶中包含的規(guī)則子集產(chǎn)生的指令集。
通過為更新公共對象的每個規(guī)則子集產(chǎn)生單個指令集(例如,最終被轉(zhuǎn)譯為單個SQL查詢),可以減少這種公共對象為處理桶中的規(guī)則而需要的總持續(xù)時間。假定在此類更新期間將為對象提供排他性訪問(例如,使用數(shù)據(jù)庫中的表格/列的鎖定),排他性訪問的持續(xù)時間也相應(yīng)地減少,由此降低與需要對對象進行排他性訪問的其他應(yīng)用對于同一對象的爭用沖突的概率。另外,通過并行地執(zhí)行與桶內(nèi)的規(guī)則對應(yīng)的指令集,至少當(dāng)?shù)讓迎h(huán)境提供足夠的多重處理能力時可以獲得類似的效率。
根據(jù)本公開的另一個方面,發(fā)送桶中經(jīng)確定的規(guī)則子集以供顯示,同時指示這些規(guī)則子集中的每個規(guī)則子集可以被合并(也就是說,可以產(chǎn)生單個指令集)。如此,只有當(dāng)從用戶接收到指示每個規(guī)則子集要被合并的輸入數(shù)據(jù)時,才執(zhí)行與規(guī)則子集相對應(yīng)的指令集的產(chǎn)生。
因此,(應(yīng)用的)用戶便于指示要被合并的特定子集(以及所產(chǎn)生的單個指令集)以及哪些子集將不被合并(也就是說,將產(chǎn)生用于每個規(guī)則的單獨的指令集)。因此,如果(從用戶接收的)輸入數(shù)據(jù)指示規(guī)則子集中的特定規(guī)則將被排除合并,則為排除該特定規(guī)則的規(guī)則子集(也就是說,僅為該子集中的其他規(guī)則)產(chǎn)生對應(yīng)的單個指令集。結(jié)果,可以向用戶提供對規(guī)則合并的增強控制。
根據(jù)本公開的另一個方面,接收優(yōu)先數(shù)據(jù),該優(yōu)先數(shù)據(jù)指示在每個規(guī)則的執(zhí)行之前要被執(zhí)行的對應(yīng)規(guī)則集。因此,桶被形成為使得對應(yīng)規(guī)則集不被包括在包含所述規(guī)則的同一個桶中(因為所述規(guī)則關(guān)于執(zhí)行對所述對應(yīng)規(guī)則集具有依賴性)。
根據(jù)本公開的又一個方面,根據(jù)應(yīng)用數(shù)據(jù)模型指定的對象被存儲在關(guān)系數(shù)據(jù)庫服務(wù)器中。如此,每個規(guī)則如果被獨立地執(zhí)行,則將被實現(xiàn)為指向關(guān)系數(shù)據(jù)庫服務(wù)器的對應(yīng)SQL(結(jié)構(gòu)化查詢語言)命令。此外,對應(yīng)的單個指令集是以指向關(guān)系數(shù)據(jù)庫服務(wù)器的單個SQL命令的形式實現(xiàn)的。因此,與子集中的規(guī)則對應(yīng)的待執(zhí)行的不同SQL命令被單個SQL命令取代。
下面參照用于例示的例子來描述本公開的幾個方面。然而,本領(lǐng)域技術(shù)人員將認(rèn)識到,可以在沒有一個或多個特定細(xì)節(jié)的情況下或者可以用其他方法、部件、材料等來實施本公開。在其他情況下,眾所周知的結(jié)構(gòu)、材料或操作未被詳細(xì)展示,以免混淆本公開的特征。此外,所描述的特征/方面可以以各種組合實施,但是為簡潔起見,在本文中僅描述這些組合中的一些組合。
2.示例環(huán)境
圖1是例示了在其中可以實現(xiàn)本公開的幾個方面的示例環(huán)境的框圖。該框圖被示為包含終端用戶系統(tǒng)110A-110Z、互聯(lián)網(wǎng)120、內(nèi)聯(lián)網(wǎng)130、服務(wù)器系統(tǒng)140A-140C、管理員系統(tǒng)150以及數(shù)據(jù)存儲器180A-180B。
僅作例示,在該圖中僅示出了代表性數(shù)量/類型的系統(tǒng)。許多環(huán)境經(jīng)常根據(jù)該環(huán)境被設(shè)計的目的而包含數(shù)量和類型都更多的系統(tǒng)。下面更詳細(xì)地描述圖1的每個系統(tǒng)/裝置。
內(nèi)聯(lián)網(wǎng)130表示在全都設(shè)于企業(yè)(用點線邊界示出)內(nèi)的服務(wù)器系統(tǒng)140A-140C、管理員系統(tǒng)150和數(shù)據(jù)存儲器180A-180B之間提供連接的網(wǎng)絡(luò)?;ヂ?lián)網(wǎng)120擴展這些系統(tǒng)(以及企業(yè)的其他系統(tǒng))與外部系統(tǒng)(諸如終端用戶系統(tǒng)110A-110Z)的連接。內(nèi)聯(lián)網(wǎng)130和互聯(lián)網(wǎng)120均可以使用相關(guān)領(lǐng)域中眾所周知的協(xié)議(諸如傳輸控制協(xié)議(TCP)和/或互聯(lián)網(wǎng)協(xié)議(IP))來實現(xiàn)。一般來說,在TCP/IP環(huán)境中,IP數(shù)據(jù)包用作基本傳輸單元,源地址被設(shè)置為向該數(shù)據(jù)包發(fā)源的源系統(tǒng)分配的IP地址,目的地地址被設(shè)置為該數(shù)據(jù)包最終被遞送到的目的地系統(tǒng)的IP地址。
當(dāng)數(shù)據(jù)包的目的地IP地址被設(shè)置為目的地系統(tǒng)的IP地址時,IP數(shù)據(jù)包被說成是指向(directed to)目的地系統(tǒng),使得數(shù)據(jù)包通過網(wǎng)絡(luò)120和130最終被遞送到目的地系統(tǒng)。當(dāng)數(shù)據(jù)包包含指定目的地應(yīng)用的內(nèi)容(諸如端口號)時,數(shù)據(jù)包也可以被說成是指向此類應(yīng)用。目的地系統(tǒng)可以被要求使對應(yīng)端口號保持可用/開放,并且通過對應(yīng)的目的地端口對數(shù)據(jù)包進行處理?;ヂ?lián)網(wǎng)120和內(nèi)聯(lián)網(wǎng)130均可以使用有線介質(zhì)或無線介質(zhì)的任何組合來實現(xiàn)。
數(shù)據(jù)存儲器180A-180B均表示便于由在企業(yè)的其他系統(tǒng)(諸如服務(wù)器系統(tǒng)140A-140C和管理員系統(tǒng)150)中執(zhí)行的企業(yè)應(yīng)用存儲和檢索數(shù)據(jù)集合的非易失性(持久性)存儲器。
數(shù)據(jù)存儲器180A-180B均可以被實現(xiàn)為使用關(guān)系數(shù)據(jù)庫技術(shù)的數(shù)據(jù)庫服務(wù)器,并因此提供使用諸如SQL(結(jié)構(gòu)化查詢語言)之類的結(jié)構(gòu)化查詢的數(shù)據(jù)存儲和檢索??商娲?,如相關(guān)領(lǐng)域中眾所周知的,數(shù)據(jù)存儲器180A-180B均可以被實現(xiàn)為文件服務(wù)器,該文件服務(wù)器提供被組織為一個或多個目錄的文件的形式的數(shù)據(jù)的存儲和檢索。
在一個實施例中,如上面在背景部分中所指出的,數(shù)據(jù)存儲器180A-180B中維護的數(shù)據(jù)根據(jù)包含數(shù)據(jù)對象、屬性和對象實例的應(yīng)用數(shù)據(jù)模型(在數(shù)據(jù)存儲器外部提供)被提供訪問權(quán)。當(dāng)被存儲在關(guān)系數(shù)據(jù)庫系統(tǒng)中時,數(shù)據(jù)對象可以對應(yīng)于一個或多個表格,每個屬性對應(yīng)于此類表格的相應(yīng)列,每個對象實例對應(yīng)于此類表格的行。當(dāng)被存儲在文件服務(wù)器中時,每個數(shù)據(jù)對象可以對應(yīng)于一個或多個文件,每個對象實例由文件中的一組行表示,每行又指定屬性和對應(yīng)的值。
終端用戶系統(tǒng)110A-110Z均表示被用戶用來產(chǎn)生并行送指向企業(yè)的特定系統(tǒng)的用戶請求的系統(tǒng),諸如個人計算機、工作站、移動站、移動電話、計算平板等。用戶請求可以使用適當(dāng)?shù)挠脩艚缑?例如,由在企業(yè)中執(zhí)行的應(yīng)用提供的網(wǎng)頁)來產(chǎn)生。例如,用戶可以將用于執(zhí)行各種任務(wù)的用戶請求發(fā)送給在服務(wù)器系統(tǒng)140A-140C中執(zhí)行的企業(yè)應(yīng)用。
服務(wù)器系統(tǒng)140A-140C均表示執(zhí)行企業(yè)應(yīng)用(例如,金融應(yīng)用、分析框架等)的服務(wù)器,諸如web/應(yīng)用服務(wù)器,其中企業(yè)應(yīng)用能夠執(zhí)行用戶使用終端用戶系統(tǒng)110A-110Z請求的任務(wù)。響應(yīng)于從終端用戶系統(tǒng)接收到請求,每個服務(wù)器系統(tǒng)執(zhí)行請求中指定的任務(wù),并且將任務(wù)的執(zhí)行結(jié)果發(fā)送到發(fā)起請求的終端用戶系統(tǒng)。每個服務(wù)器系統(tǒng)可以使用內(nèi)部存儲(例如,存儲在服務(wù)器內(nèi)的非易失性存儲器/硬盤中)的數(shù)據(jù)、外部數(shù)據(jù)(例如,數(shù)據(jù)存儲器180A-180B中維護的數(shù)據(jù))和/或在執(zhí)行此類任務(wù)時從外部源(例如,從用戶)接收的數(shù)據(jù)。
管理員系統(tǒng)150表示便于用戶管理(創(chuàng)建、更新、刪除)由在服務(wù)器系統(tǒng)140A-140C中執(zhí)行的不同企業(yè)應(yīng)用訪問的對應(yīng)數(shù)據(jù)的服務(wù)器,諸如web/應(yīng)用服務(wù)器。在一個實施例中,在管理員系統(tǒng)150中指定的分析框架便于用戶指定用于更新根據(jù)應(yīng)用數(shù)據(jù)模型指定的對象的規(guī)則,該框架然后將這些規(guī)則轉(zhuǎn)換為適合于數(shù)據(jù)存儲器180A-180B的實現(xiàn)的對應(yīng)指令集(例如,SQL查詢)。此類分析框架的例子是從Oracle Corporation可購得的Oracle金融服務(wù)分析應(yīng)用(OFSAA),Oracle Corporation是本申請的預(yù)定受讓人。
在一種現(xiàn)有方法中,分析框架將每個規(guī)則轉(zhuǎn)換為對應(yīng)的指令集(也就是說,指令集的數(shù)量等于規(guī)則的數(shù)量)。因此,期望的是,為給定的規(guī)則集產(chǎn)生最佳數(shù)量(更少)的指令集。如下面通過例子描述的,根據(jù)本公開的幾個方面擴展的管理員系統(tǒng)150促進實現(xiàn)被設(shè)計為更新根據(jù)應(yīng)用數(shù)據(jù)模型指定的對象的規(guī)則的此類最佳指令集的產(chǎn)生。
3.產(chǎn)生實現(xiàn)規(guī)則的指令集
圖2是例示了根據(jù)本公開的一個方面的產(chǎn)生實現(xiàn)被設(shè)計為更新根據(jù)應(yīng)用數(shù)據(jù)模型指定的對象的規(guī)則的指令集的方式的流程圖。僅作例示,針對圖1特別是管理員系統(tǒng)150來描述該流程圖。然而,如相關(guān)領(lǐng)域的技術(shù)人員通過閱讀在此提供的公開內(nèi)容將明白的,許多特征也可以在其他環(huán)境中(并且可能使用其他類型的系統(tǒng)/服務(wù)器)實現(xiàn),而不脫離本公開的幾個方面的范圍和精神。
另外,如相關(guān)領(lǐng)域的技術(shù)人員將明白的,所述步驟中的一些步驟可以按與下面描繪的順序不同的順序執(zhí)行,以適合特定環(huán)境。此類實現(xiàn)中的許多實現(xiàn)意在被本公開的幾個方面所涵蓋。該流程圖從步驟201開始,在步驟201中,控制立即轉(zhuǎn)到步驟210。
在步驟210中,管理員系統(tǒng)150接收被設(shè)計為更新根據(jù)應(yīng)用數(shù)據(jù)模型指定的數(shù)據(jù)對象的規(guī)則。因此,每個規(guī)則包含運算符和運算數(shù),運算數(shù)中的至少一個是數(shù)據(jù)對象或?qū)?yīng)的屬性。規(guī)則可以通過使用終端用戶系統(tǒng)110A-110Z之一從用戶接收。
在步驟220中,管理員系統(tǒng)150形成規(guī)則的桶以使得每個桶中的規(guī)則在執(zhí)行次序上不具有相互依賴性。如果在執(zhí)行次序上,在后的規(guī)則的執(zhí)行被要求僅在在前的規(guī)則的執(zhí)行結(jié)束之后開始,則可以說存在相互依賴性。在沒有此類相互依賴性時,兩個規(guī)則都可以并行執(zhí)行。
在下面描述的實施例中,用戶指定優(yōu)先數(shù)據(jù)/排序(即,為了執(zhí)行給定規(guī)則哪些在前的規(guī)則必須完成的手動指示),但是此類或其他依賴性可以通過檢查對每個規(guī)則指定的輸入和輸出來推斷。在此類情形下,管理員系統(tǒng)150確保在前的規(guī)則不被包括在包含所述給定規(guī)則的桶中。
在步驟230中,管理員系統(tǒng)150從在步驟220形成的一個或多個桶中選擇桶。具體地說,選擇其規(guī)則尚未被處理(按照下述步驟240至270)的桶。此類未被處理的桶的選擇可以以已知的方式執(zhí)行。例如,每個桶可以與指示對應(yīng)的桶是已經(jīng)被處理(第一值)、還是尚未被處理(第二值)的標(biāo)志相關(guān)聯(lián)。因此,管理員系統(tǒng)150可以選擇其標(biāo)志被設(shè)置為第二值的桶。
在步驟240中,管理員系統(tǒng)150識別由所選擇的桶中的每個規(guī)則更新的數(shù)據(jù)對象(以及對應(yīng)的屬性)??梢酝ㄟ^檢查由分析框架維護的元數(shù)據(jù)來確定對被更新的數(shù)據(jù)對象的識別。
在步驟250中,管理員系統(tǒng)150確定更新相同數(shù)據(jù)對象的規(guī)則子集。換句話說,桶中更新相同數(shù)據(jù)對象的規(guī)則被包括在同一個子集中。在實施例中,所確定的規(guī)則子集被發(fā)送以供顯示在(與終端用戶系統(tǒng)110A-110Z之一相關(guān)聯(lián)的)顯示單元上,同時指示每個規(guī)則子集均可以被合并(也就是說,可以產(chǎn)生單個指令集)。用戶被使得能夠選擇要被合并的特定子集和/或每個子集中的特定規(guī)則。假定從用戶接收到指示所有規(guī)則子集要被合并的輸入數(shù)據(jù),繼續(xù)進行描述。
在步驟260中,管理員系統(tǒng)150為每個規(guī)則子集產(chǎn)生單個指令集。為子集產(chǎn)生的單個指令集被設(shè)計為執(zhí)行(與子集相對應(yīng)的)數(shù)據(jù)對象的屬性的值的更新(由子集中的規(guī)則確定)。在實施例中,單個指令集被形成為單個SQL聲明,例如,具有用于更新的多個列的“MERGE”聲明。
在步驟270中,管理員系統(tǒng)150標(biāo)記用于并行執(zhí)行的(為不同規(guī)則子集產(chǎn)生的)不同指令集。換句話說,如果在步驟250中形成四個規(guī)則子集,則對應(yīng)的四個指令集可以被并行地執(zhí)行。
在步驟280中,管理員系統(tǒng)150檢查是否還存在要處理的桶(即,其標(biāo)志被設(shè)置為第二值的桶)。在此類檢查之前,管理員系統(tǒng)150首先將與所選擇的桶相關(guān)聯(lián)的標(biāo)志設(shè)置為第一值以指示所選擇的桶已經(jīng)被處理。如果還有桶,則控制轉(zhuǎn)到步驟230,在步驟230中選擇新的(尚未被處理的)桶,否則轉(zhuǎn)到步驟299(在所有桶都已經(jīng)被處理之后)。流程圖在步驟299中結(jié)束。
因此,通過識別給定規(guī)則集中的哪些規(guī)則可以被組合為單個指令集,可以為被設(shè)計為更新數(shù)據(jù)對象的給定規(guī)則集產(chǎn)生最佳的指令集。此外,通過使得用戶(諸如在高概念層次上進行操作的管理者)能夠選擇要被合并的特定規(guī)則,可以領(lǐng)會到規(guī)則的選擇可以基于商業(yè)/金融考慮、而非基于數(shù)據(jù)對象的底層實現(xiàn)來執(zhí)行。
下面通過例子來例示管理員系統(tǒng)150可以根據(jù)圖2來執(zhí)行指令集的產(chǎn)生的方式。
4.說明性例子
圖3A-3B和圖4A-4B共同例示了在一個實施例中產(chǎn)生實現(xiàn)被設(shè)計為更新根據(jù)應(yīng)用模型指定的對象的規(guī)則的指令集的方式。下面詳細(xì)地描述這些圖中的每個圖。
圖3A例示了在一個實施例中指定用于執(zhí)行的規(guī)則的方式。作為例示,規(guī)則被示為以表格(具有行和列)的形式指定。然而,在替代性實施例中,規(guī)則可以以任何方便的方式、使用適當(dāng)?shù)挠脩艚缑嬷付?。?biāo)題為“SIMPLIFYING GROUPING OF DATA ITEMS STORED IN A DATABASE”的美國專利No.8856126中詳細(xì)描述了用于指定規(guī)則的用戶界面的例子。
因此,表310描繪了用戶使用終端用戶系統(tǒng)110A-110Z之一在分析框架中指定的(被設(shè)計為更新數(shù)據(jù)對象的)規(guī)則集。列311(“規(guī)則Id”)指定規(guī)則的唯一標(biāo)識符(諸如R1、R2等),列312(“層級/域”)指定用作規(guī)則的輸入的對應(yīng)的值集(被命名為H1、H2等),列313(“量度/范圍”)指定由規(guī)則更新的(各種數(shù)據(jù)對象的)屬性,諸如M1、M2等。
每個層級/域表示可以在數(shù)據(jù)對象的屬性中存儲的對應(yīng)的潛在值集。潛在值以本領(lǐng)域中眾所周知的樹數(shù)據(jù)結(jié)構(gòu)的形式組織。每個量度表示將被用執(zhí)行相關(guān)聯(lián)的一組計算的結(jié)果更新的對應(yīng)的一個或多個屬性(數(shù)據(jù)對象中的屬性)。當(dāng)數(shù)據(jù)對象被存儲在關(guān)系數(shù)據(jù)庫系統(tǒng)中時,每個層級表示可以在數(shù)據(jù)庫系統(tǒng)的列中存儲的潛在值,而每個量度表示數(shù)據(jù)庫系統(tǒng)中的(表格的)列。
表310的每行指定要用于更新企業(yè)應(yīng)用的數(shù)據(jù)對象的對應(yīng)規(guī)則。一般來說,每個規(guī)則為層級/域的值的組合(列312中的輸入)指定對應(yīng)的計算,該計算所得的值將被存儲在量度/范圍(列313)中。例如,行318指示由名稱“R3”唯一地標(biāo)識的規(guī)則為層級H4和H5中的值的各種組合指定對應(yīng)的計算,該計算所得的值被更新在量度M4中。類似地,其他行指定對應(yīng)規(guī)則的細(xì)節(jié)。
表格320描繪了分析框架中典型地由分析框架的開發(fā)者/管理員指定的一組量度。列321(“量度Id”)指定量度的唯一標(biāo)識符(諸如M1、M2等),而列322(“對象”)和323(“屬性”)指定量度所表示的對應(yīng)的數(shù)據(jù)對象和屬性。
表320的每行指定可以被分析框架中指定的規(guī)則更新的對應(yīng)量度。例如,行328指示量度M4(其由行318指定的規(guī)則R3更新)對應(yīng)于數(shù)據(jù)對象B1中所包含的屬性A5和A6。類似地,其他行指定分析框架中所使用的對應(yīng)量度的細(xì)節(jié)。
表330描繪了被定義為分析框架中的運行定義(run definition)的一部分的一組過程。運行定義表示以(按順序次序執(zhí)行的)過程/步驟的序列的形式指定的應(yīng)用過程流程。用戶可以將由分析框架提供的一個或多個組件(諸如規(guī)則)指示為運行定義中的過程。在下面的描述中,假定運行定義的各種過程僅指示規(guī)則。
因此,表330描繪了用戶使用終端用戶系統(tǒng)110A-110Z之一在分析框架中指定的一組過程步驟。列331(“過程Id”)指定過程的用于過程步驟的標(biāo)識符(諸如P1、P2等)。應(yīng)注意,相同的過程標(biāo)識符可以在多行中重復(fù)以指示所述多行中指定的對應(yīng)的過程步驟是同一個過程的一部分。列332(“規(guī)則Id”)指定要作為過程步驟被執(zhí)行的規(guī)則的標(biāo)識符,列333(“優(yōu)先”)指示哪些在前的規(guī)則必須完成以便執(zhí)行對應(yīng)的過程步驟中指定的規(guī)則。沒有在前的規(guī)則(由符號“-”指示)暗示規(guī)則(諸如R1、R2、R3)可以并行執(zhí)行。
表330中的每行指定過程的序列(P1、P2),每個過程被指示執(zhí)行對應(yīng)的規(guī)則集。例如,過程P1(基于列331中的相同標(biāo)識符P1)被指示執(zhí)行作為對應(yīng)的過程步驟的規(guī)則R1、R2、R4、R6、R3、R5和R9。規(guī)則中的一些(在列333中)被示為對在前的規(guī)則具有相互依賴性,這暗示規(guī)則的執(zhí)行僅在一個或多個在前的規(guī)則的執(zhí)行完成之后才開始。例如,行338指示規(guī)則R4對規(guī)則R2具有相互依賴性以暗示規(guī)則R4的執(zhí)行僅在規(guī)則R2的執(zhí)行完成之后才可以開始。
可以領(lǐng)會到,上面所指出的序列和優(yōu)先實施規(guī)則之間的執(zhí)行次序。在此公開中假定,用戶對可以引起相互依賴性的各種條件進行檢查,并且指定與規(guī)則之間存在的條件相符的序列。例如,用戶可以檢查兩個規(guī)則是否更新被映射到同一數(shù)據(jù)對象中的同一屬性的量度,并且相應(yīng)地指定在這兩個規(guī)則之間存在相互依賴性。在替代性實施例中,執(zhí)行次序上的此類相互依賴性可以由管理員系統(tǒng)150通過檢驗每個規(guī)則更新的各種量度來確定。
因此,用戶被使得能夠指定與根據(jù)應(yīng)用數(shù)據(jù)模型指定的對象的屬性相對應(yīng)的期望量度、用于更新量度(以及對應(yīng)地,數(shù)據(jù)對象的屬性)的規(guī)則以及運行定義,該運行定義指定將根據(jù)期望的執(zhí)行次序執(zhí)行的規(guī)則的序列。下面通過例子描述可以由管理員系統(tǒng)150處理用戶指定的規(guī)則以產(chǎn)生最佳指令集的方式。
5.處理規(guī)則
圖3B例示了在一個實施例中對規(guī)則進行處理的方式。具體地說,圖3A中為過程P1指定的規(guī)則的處理在圖3B中被示出,并且在下面被更詳細(xì)地描述。
管理員系統(tǒng)150響應(yīng)于接收到表330的運行定義,首先形成用于過程P1的規(guī)則的桶以使每個桶中的規(guī)則在執(zhí)行次序上不具有相互依賴性。一般來說,不具有列333的優(yōu)先數(shù)據(jù)中指示的在前的規(guī)則(由符號“-”)的規(guī)則被分組到公共桶中。具有優(yōu)先數(shù)據(jù)中指示的在前的規(guī)則的任何規(guī)則然后基于在前的規(guī)則所屬的桶被分組到其他桶中。特別地,在前的規(guī)則與被分組的所述規(guī)則不被包括在相同的桶中。
表340指定為所接收的運行定義(表330)的過程P1中的規(guī)則形成的桶集。每個桶(諸如#1、#2)被示為包含對應(yīng)的規(guī)則組/集(諸如{R1,R2,R3,R9}和{R4,R5,R6})??梢宰⒁獾?,桶#1由不具有優(yōu)先規(guī)則(由表330中的“-”指示)的規(guī)則形成。其他規(guī)則R4、R5和R6被示為被分組到桶#2中,因為所有的規(guī)則都具有屬于同一個桶#1的對應(yīng)優(yōu)先規(guī)則。
管理員系統(tǒng)150之后可以對規(guī)則的每個桶進行處理。表350和355共同例示了對桶#1中的規(guī)則進行處理的方式,而表360和365共同例示了對桶#2中的規(guī)則進行處理的方式。下面詳細(xì)地描述對桶#1中的規(guī)則進行處理的方式。
管理員系統(tǒng)150首先識別由桶#1中的每個規(guī)則更新的數(shù)據(jù)對象(和屬性)。可以通過如下方式來執(zhí)行識別,即,首先基于表310來識別由每個規(guī)則更新的量度,之后基于表320來確定與經(jīng)更新的量度相對應(yīng)的特定屬性/數(shù)據(jù)對象。表350描繪了管理員系統(tǒng)150為桶#1(即,[R1,R2,R3,R9])中的規(guī)則識別的數(shù)據(jù)對象(B1和B2)以及對應(yīng)的屬性(諸如A1、A2等)。
管理員系統(tǒng)150然后確定更新相同數(shù)據(jù)對象的規(guī)則子集。表355指示為桶#1確定的各種規(guī)則子集。可以觀察到,規(guī)則R1、R3和R9被示為包括在第一子集中,因為所有這些規(guī)則都更新相同的數(shù)據(jù)對象B1,而規(guī)則R2被示為包括在第二子集中,因為規(guī)則R2更新不同的數(shù)據(jù)對象B2。
管理員系統(tǒng)150然后產(chǎn)生用于規(guī)則{R1,R3,R9}的單個指令集以及用于規(guī)則{R2}的另一個指令集。類似地,管理員系統(tǒng)150對桶#2(即,{R4,R5,R6})中的規(guī)則進行處理(如表360和365所示那樣),并且為子集{R4,R6}和{R5}產(chǎn)生各自的指令集。可以觀察到,只產(chǎn)生了與為過程P1確定的四個規(guī)則子集相對應(yīng)的4個指令集。這與在上面指出的現(xiàn)有方法中將會產(chǎn)生的(與過程P1中的七個規(guī)則相對應(yīng)的)7個指令集形成對比。
表380例示了作為運行定義的一部分將所確定的規(guī)則子集提供給用戶的方式。表380類似于表330,因此為了簡潔起見,這里不重復(fù)對共同要素的描述??梢杂^察到,每個規(guī)則子集被示為運行定義中的對應(yīng)過程(P1、P2)下的子過程(諸如S11、S12、S21等)。每個子過程被示為包含被管理員系統(tǒng)150確定在子集中的各種規(guī)則。例如,子過程S11對應(yīng)于管理員系統(tǒng)150為桶#1確定(如表355所示那樣)的規(guī)則子集{R1,R3,R9}。
在一個實施例中,管理員系統(tǒng)150為作為子過程的一部分而指定的各種規(guī)則產(chǎn)生單個指令集。因此,所確定的要被合并的規(guī)則子集被示為表380中的對應(yīng)子過程。然而,在替代性實施例中,子過程可以僅用于子集的視覺表示。管理員系統(tǒng)150然后可以存儲指示屬于各種子集的規(guī)則的附加數(shù)據(jù)(例如,指示子集的編號),并且相應(yīng)地基于該附加數(shù)據(jù)來產(chǎn)生單個的指令集。
根據(jù)本公開的一個方面,例如在與終端用戶系統(tǒng)110A-110Z之一相關(guān)聯(lián)的顯示單元(圖1中未示出)上向用戶顯示所確定的規(guī)則子集。規(guī)則子集的合并(單個指令集的產(chǎn)生)僅響應(yīng)于指示要執(zhí)行(對應(yīng)子集的)此類合并的(從用戶接收的)輸入數(shù)據(jù)而執(zhí)行。下面通過例子來描述管理員系統(tǒng)150可以顯示所確定的子集并且(使用終端用戶系統(tǒng)110A-110Z)從用戶接收輸入數(shù)據(jù)的方式。
6.顯示用于合并的規(guī)則
圖4A例示了在一個實施例中向用戶顯示被確定為適合于合并的規(guī)則子集的方式。雖然本文中的示例環(huán)境對應(yīng)于銀行/金融應(yīng)用,但是在此描述的特征可以應(yīng)用于利用類似架構(gòu)的其他環(huán)境。
顯示區(qū)域400描繪了在與終端用戶系統(tǒng)110A-110Z之一相關(guān)聯(lián)的顯示單元(圖1中未示出)上提供的用戶界面的一部分。在一個實施例中,顯示區(qū)域400對應(yīng)于顯示由管理員系統(tǒng)150提供的各個網(wǎng)頁的瀏覽器。網(wǎng)頁響應(yīng)于用戶使用終端用戶系統(tǒng)110A中的瀏覽器(例如,通過指定對應(yīng)的URL)發(fā)送適當(dāng)?shù)恼埱蠖惶峁?/p>
特別地,顯示區(qū)域400的用戶界面便于用戶/管理者查看(和編輯)過程/運行定義的細(xì)節(jié)。顯示區(qū)域410提供過程定義的細(xì)節(jié),諸如名稱、類型、版本等。顯示區(qū)域420描繪了作為過程定義的一部分而指定的過程步驟的層級。特別地,顯示區(qū)域420指示過程包含被命名為“Non-Sec Pre-Migration RWA-EL”和“Non-Sec Pre-Migration RWA-UL”的兩個步驟。
顯示區(qū)域430指定過程定義中指定的每個過程步驟的細(xì)節(jié)。特別地,顯示區(qū)域430指示每個對象/過程步驟的唯一標(biāo)識符(與顯示區(qū)域420中相同)、對象的優(yōu)先(其指示哪些在前的步驟/對象/規(guī)則要在對應(yīng)步驟的執(zhí)行之前被執(zhí)行)以及對象的類型。可以觀察到,對象/過程步驟這兩者的對象類型被指示為計算規(guī)則。
可以進一步觀察到,兩個對象都被示為(通過對應(yīng)復(fù)選框的選擇)被選擇指示兩個對象/規(guī)則的子集可以被合并(并且產(chǎn)生單個指令集)。應(yīng)注意到,在替代性實施例中,任何適當(dāng)?shù)囊曈X突顯(諸如相同顏色、字體等的使用)可以用于指示可以被合并的特定規(guī)則子集。例如,不能被合并的所有規(guī)則都可以用共同的顏色顯示,而每個規(guī)則子集可以用對應(yīng)的唯一顏色(不同于共同顏色)顯示。
因此,用戶被使得能夠通過使用顯示區(qū)域400的用戶界面指示將合并的特定子集。例如,用戶可以排除子集中的規(guī)則(通過移除對應(yīng)復(fù)選框中的選擇)。另外,用戶可以(基于子集的指示/視覺突顯)觀察到,鑒于特定規(guī)則不更新由子集中的其他規(guī)則更新的公共數(shù)據(jù)對象,該特定規(guī)則不被包括在該規(guī)則子集中。用戶因此可以修改該特定規(guī)則以形成(更新公共數(shù)據(jù)對象的)經(jīng)修改的規(guī)則,然后執(zhí)行子集的確定以使經(jīng)修改的規(guī)則被包括在子集中(并且顯示在顯示區(qū)域430中)。
在用戶已經(jīng)選擇要被合并的子集之后,用戶點擊/選擇“合并規(guī)則”鏈接/按鈕450以指示所選擇的規(guī)則子集(這里為“Non-Sec Pre-Migration RWA-EL”和“Non-Sec Pre-Migration RWA-UL”)將被合并。作為響應(yīng),管理員系統(tǒng)150創(chuàng)建與被指示要被合并的每個規(guī)則子集相對應(yīng)的子過程(通過在顯示區(qū)域430中從用戶接收的輸入數(shù)據(jù))。管理員系統(tǒng)150然后可以如下面詳細(xì)描述的那樣向用戶顯示所創(chuàng)建的子過程。
圖4B例示了在一個實施例中向用戶顯示合并規(guī)則子集的結(jié)果的方式。具體地說,圖4B描繪了響應(yīng)于用戶點擊圖4A中的“合并規(guī)則”鏈接450的結(jié)果。
顯示區(qū)域470描繪了在合并對應(yīng)的規(guī)則子集之后的過程步驟的層級。可以觀察到,顯示區(qū)域470指示已經(jīng)創(chuàng)建了被命名為“Merge Exe Sub Process”的新過程步驟,而前面的兩個步驟“Non-Sec Pre-Migration RWA-EL”和“Non-Sec Pre-Migration RWA-UL”被顯示在該新過程步驟之下。顯示區(qū)域480指示新過程步驟“Merge Exe Sub Process”是子過程(由類型指示)。
因此,合并規(guī)則子集的結(jié)果以過程定義的各種子過程的形式被顯示給用戶。用戶然后可以點擊/選擇“保存”按鈕490以指示包括要被合并的各種規(guī)則子集的過程定義將被保存/存儲作為過程定義的一部分。響應(yīng)于執(zhí)行(圖4B的)保存的過程/運行定義,管理員系統(tǒng)150為過程步驟“Merge Exe Sub Process”產(chǎn)生單個指令集,并然后(與其他單個指令集并行地)執(zhí)行該單個指令集,以使得特定量度基于對應(yīng)計算而被更新。
在一個實施例中,企業(yè)應(yīng)用所使用的數(shù)據(jù)對象被存儲在關(guān)系數(shù)據(jù)庫服務(wù)器中。因此,每個規(guī)則如果被獨立地執(zhí)行,則被實現(xiàn)為針對關(guān)系數(shù)據(jù)庫服務(wù)器的對應(yīng)的SQL(結(jié)構(gòu)化查詢語言)命令。附錄A描繪了如果規(guī)則“Non-Sec Pre-Migration RWA-EL”被獨立地執(zhí)行則可以由管理員系統(tǒng)150產(chǎn)生并執(zhí)行的SQL命令。附錄B描繪了可以為規(guī)則“Non-Sec Pre-Migration RWA-UL”產(chǎn)生的SQL命令。單個指令集在執(zhí)行時也以針對關(guān)系數(shù)據(jù)庫服務(wù)器的單個SQL命令的形式被實現(xiàn)。附錄C描繪了可以作為用于經(jīng)合并的規(guī)則子集/子過程“Merged Exe Sub Process”的單個指令集而產(chǎn)生的SQL命令。SQL命令然后被執(zhí)行,同時可能實現(xiàn)上面在概述部分中指出的功效中的一個或多個。
應(yīng)進一步領(lǐng)會到,上面描述的特征可以在各種實施例中被實現(xiàn)為硬件、可執(zhí)行模塊和固件中的一個或多個的期望組合。關(guān)于當(dāng)可執(zhí)行模塊中的指令被執(zhí)行時各種特征可操作的實施例,繼續(xù)進行描述。
7.數(shù)字處理系統(tǒng)
圖5是例示了其中本公開的幾個方面通過執(zhí)行適當(dāng)?shù)能浖噶疃僮鞯臄?shù)字處理系統(tǒng)500的細(xì)節(jié)的框圖。數(shù)字處理系統(tǒng)500對應(yīng)于管理員系統(tǒng)150。
數(shù)字處理系統(tǒng)500可以包含一個或多個處理器(諸如中央處理單元(CPU)510)、隨機存取存儲器(RAM)520、二級存儲器530、圖形控制器560、顯示單元570、網(wǎng)絡(luò)接口580以及輸入接口590。除顯示單元570外的所有組件都可以通過通信路徑550相互通信,通信路徑550可以包含相關(guān)領(lǐng)域中眾所周知的若干總線。下面更詳細(xì)地描述圖5的組件。
CPU 510可以執(zhí)行在RAM 520中存儲的指令以提供本公開的幾個特征。CPU 510可以包含多個處理單元,每個處理單元可能被設(shè)計用于特定任務(wù)??商娲?,CPU 510可以僅包含單個通用處理單元。RAM 520可以使用通信路徑550從二級存儲器530檢索指令。
RAM 520被示為當(dāng)前包含構(gòu)成共享環(huán)境525和/或用戶程序526(諸如金融應(yīng)用、分析框架等)的軟件指令。共享環(huán)境525包含用戶程序共享的實用程序,并且此類共享實用程序包括提供用于執(zhí)行用戶程序526的(公共)運行時環(huán)境的操作系統(tǒng)、設(shè)備驅(qū)動器、虛擬機、流程引擎等。
圖形控制器560基于從CPU 510接收的數(shù)據(jù)/指令來產(chǎn)生給顯示單元570的顯示信號(例如,RGB格式的顯示信號)。顯示單元570包含用于顯示由顯示信號定義的圖像(諸如圖4A-4B的用戶界面的部分)的顯示屏幕。輸入接口590可以對應(yīng)于可用于提供各種輸入(諸如在圖4A-4B的用戶界面中指定期望的輸入等)的鍵盤和定點裝置(例如,觸控板、鼠標(biāo))。網(wǎng)絡(luò)接口580提供與網(wǎng)絡(luò)的連接(例如,通過使用互聯(lián)網(wǎng)協(xié)議),并且可以用于與其他連接的系統(tǒng)(諸如服務(wù)器系統(tǒng)130A-130C、數(shù)據(jù)存儲器180A-180B)通信。
二級存儲器530可以包含硬盤驅(qū)動器535、閃存536以及可移動存儲驅(qū)動器537。二級存儲器530表示可以存儲數(shù)據(jù)(例如,圖3A-3B所示的數(shù)據(jù)的部分)和軟件指令(例如,用于執(zhí)行圖2的步驟的軟件指令)以使得數(shù)字處理系統(tǒng)500能夠提供根據(jù)本公開的幾個特征的非暫時性介質(zhì)。二級存儲器530中存儲的代碼/指令要么可以在被CPU510執(zhí)行之前被拷貝到RAM 520以使執(zhí)行速度更高,要么可以直接被CPU 510執(zhí)行。
二級存儲器530可以包含硬盤驅(qū)動器535、閃存536以及可移動存儲驅(qū)動器537。數(shù)據(jù)和指令中的一些或全部可以被提供在可移動存儲單元540上,并且數(shù)據(jù)和指令可以被可移動存儲驅(qū)動器537讀取并且提供給CPU 510??梢苿哟鎯卧?40可以使用與可移動存儲驅(qū)動器537兼容的介質(zhì)和存儲格式來實現(xiàn),以使得可移動存儲驅(qū)動器537可以讀取數(shù)據(jù)和指令。因此,可移動存儲單元540包括存儲有計算機軟件和/或數(shù)據(jù)的計算機可讀(存儲)介質(zhì)。然而,該計算機(或一般地,機器)可讀介質(zhì)可以為其他形式(例如,不可移動、隨機存取等)。
在本文件中,術(shù)語“計算機程序產(chǎn)品”一般用來指可移動存儲單元540或安裝在硬盤驅(qū)動器535中的硬盤。這些計算機程序產(chǎn)品是用于向數(shù)字處理系統(tǒng)500提供軟件的裝置。CPU 510可以檢索軟件指令,并且執(zhí)行指令以提供上面描述的本公開的各種特征。
在此所使用的術(shù)語“存儲介質(zhì)”是指存儲使機器以特定方式操作的數(shù)據(jù)和/或指令的任何非暫時性介質(zhì)。此類存儲介質(zhì)可以包括非易失性介質(zhì)和/或易失性介質(zhì)。非易失性介質(zhì)包括例如光盤、磁盤或固態(tài)驅(qū)動器,諸如存儲存儲器530。易失性介質(zhì)包括動態(tài)存儲器,諸如RAM520。常見形式的存儲介質(zhì)包括例如軟盤、柔性盤、硬盤、固態(tài)驅(qū)動器、磁帶或任何其他磁性數(shù)據(jù)存儲介質(zhì)、CD-ROM、任何其他光學(xué)數(shù)據(jù)存儲介質(zhì)、具有孔圖案的任何物理介質(zhì)、RAM、PROM和EPROM、FLASH-EPROM、NVRAM、任何其他存儲器芯片或盒。
存儲介質(zhì)不同于傳輸介質(zhì),但是可以與傳輸介質(zhì)結(jié)合使用。傳輸介質(zhì)參與在存儲介質(zhì)之間傳送信息。例如,傳輸介質(zhì)包括同軸電纜、銅線和光纖,包括構(gòu)成總線550的導(dǎo)線。傳輸介質(zhì)還可以采取聲波或光波的形式,諸如無線電波和紅外數(shù)據(jù)通信期間產(chǎn)生的那些。
貫穿本說明書,所引用的“一個實施例”、“實施例”或類似語言意味著與該實施例相關(guān)聯(lián)地描述的特定的特征、結(jié)構(gòu)或特性被包括在本公開的至少一個實施例中。因此,貫穿本說明書,短語“在一個實施例中”、“在實施例中”和類似語言的出現(xiàn)可以全都指同一個實施例,但不一定是全都指同一個實施例。
此外,本公開所描述的特征、結(jié)構(gòu)或特性可以在一個或多個實施例中以任何合適的方式組合。在上面的描述中,為了提供對本公開的實施例的透徹理解,提供了許多具體的細(xì)節(jié),諸如編程的示例、軟件模塊、用戶選擇、網(wǎng)絡(luò)事務(wù)、數(shù)據(jù)庫查詢、數(shù)據(jù)庫結(jié)構(gòu)、硬件模塊、硬件電路、硬件芯片等。
8.結(jié)論
雖然上面已經(jīng)描述了本公開的各種實施例,但是應(yīng)理解,它們僅僅是作為例子呈現(xiàn)的,而非限制。因此,本公開的廣度和范圍不應(yīng)受上述任一示例性實施例的限制,而是應(yīng)僅根據(jù)權(quán)利要求及其等同來限定。
應(yīng)理解,在附件中例示的突出本公開的功能和優(yōu)點的附圖和/或抓屏僅是出于舉例的目的呈現(xiàn)的。本公開是足夠靈活的且可配置的,使得它可以以除附圖所示的方式之外的方式利用。
此外,摘要的目的使得專利局和公眾、尤其是本領(lǐng)域中不熟悉專利或法律用語或措辭的科學(xué)家、工程師和從業(yè)者能夠快速地通過粗略的審視來確定本申請的技術(shù)公開內(nèi)容的性質(zhì)和本質(zhì)。摘要不意在以任何方式限制本公開的范圍。
附錄A
為Non-Sec Pre-Migration RWA-EL產(chǎn)生的SQL
附錄B
為Non-Sec Pre-Migration RWA-UL產(chǎn)生的SQL
附錄C
為Merged Exe Sub Process產(chǎn)生的SQL