專利名稱:提供模型數(shù)據(jù)生成器的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及數(shù)據(jù)處理。更具體地講,本發(fā)明涉及用于生成用于模型
業(yè)務(wù)對象(mockup business object)的模型數(shù)據(jù)(mockup data)的系統(tǒng)和方法。
背景技術(shù):
在企業(yè)如何開展業(yè)務(wù)中存在并將繼續(xù)存在各種改進(jìn)和改變。通過成長的 竟?fàn)幒腿蚧⒑喜⒑褪召徥欠癯霈F(xiàn)這些改進(jìn)和改變,或者業(yè)務(wù)模型的修補(bǔ), 成功的關(guān)鍵常常在于企業(yè)的信息技術(shù)(IT)組織如何能夠迅速的適應(yīng)于發(fā)展業(yè) 務(wù)需求。因此,主要的挑戰(zhàn)在于這些企業(yè)如何處理這種變革。
對于使能企業(yè)活力的組織,它們必須保證企業(yè)應(yīng)用不僅僅是驅(qū)動效率的 高性能業(yè)務(wù)引擎,而且它們還成為未來業(yè)務(wù)系統(tǒng)的靈活的構(gòu)件塊(building block)。最近以服務(wù)形式出現(xiàn)了一種有前途的解決方案。服務(wù),諸如網(wǎng)絡(luò)服務(wù) 或程序,代表能夠由其它應(yīng)用找到和訪問的獨(dú)立的(self-contained)、自述 (self-describing)的應(yīng)用功能。服務(wù)是獨(dú)立的,因為除了服務(wù)本身以外使用該服 務(wù)的應(yīng)用不必依賴于任何東西,服務(wù)也是自述的,因為關(guān)于如何使用該服務(wù) 的所有信息能夠從服務(wù)自身獲得。所述描述被集中地存儲,并且可以通過標(biāo) 準(zhǔn)機(jī)制來訪問。
不同于要求程序員建立和保持在應(yīng)用之間的鏈接,服務(wù)是松散的連接的 (loosely coupled),使得連接更筒單和更加靈活,并允許應(yīng)用設(shè)計師(architects) 更容易地找到和理解由其它合作應(yīng)用提供的服務(wù)。但是,服務(wù)中存在的問題 是它們通常被設(shè)計來暴露(expose)個別應(yīng)用的功能,因而太受限制以至于不能 成為用于企業(yè)范圍(enterprise-wide)的業(yè)務(wù)處理的有效的構(gòu)件塊。這種不足的 一個解決方案被轉(zhuǎn)移到面向服務(wù)的體系結(jié)構(gòu)(Service Oriented Architecture, SOA)。 SOA是一種開放體系結(jié)構(gòu)的中間件,其建立在服務(wù)的益處之上。SOA 的例子能夠在企業(yè)服務(wù)框架(Enterprise Service Framework, ESF)中找到,ESF 可以從德國Walldorf的SAP AG購買到。術(shù)語"SOA"還被稱為"分布式對 象"(distributed objects)體系結(jié)構(gòu),諸如CORBA(Common Object R叫uest Broker
Architecture)禾口 DCOM(Distributed Component Object Model)。
SOA使能從實(shí)際應(yīng)用中提煉(abstraction)建模為服務(wù)(也稱為企業(yè)服務(wù))的 業(yè)務(wù)對象(business objects , BO)。將服務(wù)聚集(aggregating)為業(yè)務(wù)級 (business-level)的企業(yè)服務(wù)可以為自動化企業(yè)規(guī)模的業(yè)務(wù)情節(jié)(scenarios)的任 務(wù)提供更有意義的構(gòu)件塊。企業(yè)服務(wù)允許IT組織有效的開發(fā)復(fù)合應(yīng)用,復(fù)合 應(yīng)用被定義為組合了來自已有系統(tǒng)的功能和信息的應(yīng)用,以便支持新的業(yè)務(wù) 處理和情節(jié)。
SOA還使能企業(yè)服務(wù)儲存庫的使用。企業(yè)服務(wù)儲存庫存儲相關(guān)的已有企 業(yè)服務(wù),并使它們?yōu)樗x擇的合作伙伴和客戶所用。通過使用企業(yè)服務(wù)儲存 庫,這些所選擇的合作伙伴和客戶能夠使用已有企業(yè)服務(wù)來幫助實(shí)施新的服 務(wù)和相應(yīng)的業(yè)務(wù)對象。術(shù)語"業(yè)務(wù)對象"(BO)代表對業(yè)務(wù)有重要意義的物理 或邏輯對象,諸如包括用于生成釆購定單的方法的數(shù)據(jù)結(jié)構(gòu)。"對象"指的是 參數(shù)(例如,數(shù)據(jù))和相關(guān)方法的軟件束(software bimdle)。例如,在面向?qū)ο?的編程中,對象是由數(shù)據(jù)和與該數(shù)據(jù)相關(guān)聯(lián)的操作組成的類(class)的具體實(shí)現(xiàn) (實(shí)例)。
當(dāng)開發(fā)服務(wù)和業(yè)務(wù)對象時,其它系統(tǒng)組件的開發(fā)被延遲,直到完成所述 服務(wù)和相應(yīng)的業(yè)務(wù)對象。創(chuàng)建模型業(yè)務(wù)對象從而便利于其它系統(tǒng)組件的開發(fā)。 通常,需要對這些服務(wù)和業(yè)務(wù)對象進(jìn)行多次的回歸(regression)以及海量數(shù)據(jù) 測試。但是,這些模型業(yè)務(wù)對象需要在實(shí)際開發(fā)業(yè)務(wù)對象之前填入應(yīng)用于回 歸測試和海量數(shù)據(jù)測試的數(shù)據(jù)。同樣,這里也需要改善對用于這些模型業(yè)務(wù)
對象的模型數(shù)據(jù)的開發(fā)。
發(fā)明內(nèi)容
本發(fā)明提供了用于提供用于模型業(yè)務(wù)對象的模型數(shù)據(jù)的方法和裝置,包 括計算機(jī)程序產(chǎn)品。
在一個示范實(shí)施例中,這里提供了 一種用于創(chuàng)建用于模型對象的模型數(shù) 據(jù)的方法,在框架內(nèi)實(shí)施的模型對象包括其它對象。該方法還可以包括從 用戶接收將要為其創(chuàng)建模型數(shù)據(jù)的模型對象的名稱,其中所述對象包括一個 或多個節(jié)點(diǎn);從用戶接收要為所述對象的每個節(jié)點(diǎn)創(chuàng)建的記錄的數(shù)量;確定 是否為每個節(jié)點(diǎn)創(chuàng)建新的模型數(shù)據(jù)或修改已有模型數(shù)據(jù);從用戶接收用于所 述模型數(shù)據(jù)的開始范圍和結(jié)束范圍;以及基于存儲在框架內(nèi)的元數(shù)據(jù)以及所
述開始和結(jié)束范圍,在框架內(nèi)生成所述對象的每個節(jié)點(diǎn)的模型數(shù)據(jù)。
應(yīng)當(dāng)理解,前述的一般描述以及后面的詳細(xì)描述都僅僅是示例性的和說 明性的,而不是將本發(fā)明限制在所描述的范圍。除了那些在這里所論述的以 外,還可以提供另外的特征和/或變化。例如,本發(fā)明可以致力于所公開的特
征的各種組合和子組合(subcombinations),和/或在以下的詳細(xì)描述中公開的 一些另外的特征的組合和子組合。
這里所合并、并組成此說明書的一部分的附圖示出了本發(fā)明的某些方面, 并結(jié)合描述,幫助解釋了與本發(fā)明相關(guān)聯(lián)的一些原理。在附圖中,
圖1A說明了符合與本發(fā)明相關(guān)的某些方面的示范系統(tǒng)環(huán)境的框圖; 圖1B說明了符合與本發(fā)明相關(guān)的某些方面的示范模式(schema);
驟的流程圖。
具體實(shí)施例方式
現(xiàn)在將對本發(fā)明進(jìn)行詳細(xì)描述,在附圖中說明了本發(fā)明的示例。在以下 描述中論述的實(shí)施方式并不代表與所要求保護(hù)的發(fā)明一致的全部實(shí)施方式。 而是僅僅是符合與本發(fā)明相關(guān)的某些方面的一些示例。無論哪種情況下,相 同的參考標(biāo)號在整個附圖中將總是用來指代相同或相似的部分。
圖1A是示范系統(tǒng)100環(huán)境的框圖,其包括客戶端系統(tǒng)110和用于生成 業(yè)務(wù)對象(business object)的服務(wù)器系統(tǒng)190。業(yè)務(wù)對象可以擔(dān)當(dāng)存儲在模 型存儲器(storage)中的、用于在運(yùn)行時使用的模型(mockups)。通過提供用于 模型業(yè)務(wù)對象的持續(xù)性框架(persistence framework),能夠獨(dú)立于實(shí)際業(yè)務(wù)對 象而使用模型業(yè)務(wù)對象,諸如在系統(tǒng)100的開發(fā)完成或結(jié)束時實(shí)施的業(yè)務(wù)對 象。同樣,生成的模型業(yè)務(wù)對象允許諸如用戶接口的開發(fā)的系統(tǒng)100的組件 的開發(fā)獨(dú)立于、并平行于實(shí)際業(yè)務(wù)對象的實(shí)施來進(jìn)行。
參考圖1A,客戶端系統(tǒng)110包括用戶接口(user interface, UI)120和類屬 客戶端代理(generic client proxy, GCP)140??蛻舳讼到y(tǒng)110通過網(wǎng)絡(luò)連接150b 連接到服務(wù)器系統(tǒng)l卯。服務(wù)器系統(tǒng)190還包括服務(wù)管理器(service manager,
SM)160、儲存庫175、模型服務(wù)適配器196、模型數(shù)據(jù)生成器197、數(shù)據(jù)庫 170、以及服務(wù)提供商180、 181。系統(tǒng)100可以實(shí)施為企業(yè)服務(wù)框架(ESF) 的一部分。ESF是一種計算機(jī)框架類型,諸如客戶端-服務(wù)器體系結(jié)構(gòu)框架, 其包括一個或多個服務(wù)。框架是在一個或多個內(nèi)聯(lián)的計算機(jī)上的軟件系統(tǒng)。 所述服務(wù)通過通信機(jī)制,諸如因特網(wǎng)或內(nèi)聯(lián)網(wǎng),可以被ESF的其它部分諸如 客戶端系統(tǒng)和它們的對應(yīng)用戶所訪問。ESF可以使用由SAP NetweaverTM(可 以從德國Walldorf的SAP AG買到)提供的工具來構(gòu)建。雖然圖1A示出了單 一的客戶端系統(tǒng)110和單一的服務(wù)器系統(tǒng)190,但是也可以使用多個客戶端 系統(tǒng)和服務(wù)器系統(tǒng)。而且,在圖1A中描繪的組件可以分布在多個位置。雖 然就客戶端-服務(wù)器體系結(jié)構(gòu)和ESF描述了圖1A,但是系統(tǒng)100也可以使用 任何其它的體系結(jié)構(gòu)或框架。
客戶端系統(tǒng)110可以包括一個或多個處理器,諸如計算機(jī),以便與服務(wù) 器系統(tǒng)190連接。用戶接口 120可以提供一個接口以允許用戶與其它應(yīng)用諸 如服務(wù)提供商180、 181以及它們的相應(yīng)業(yè)務(wù)對象相互作用(interact)。用戶接 口 120可以包括提供來自服務(wù)提供商180、 181的內(nèi)容的瀏覽器。在一些實(shí)施 方式中,SAP Web Dynpro (可以從德國Walldorf的SAP AG買到)被用作用 于生成用戶接口 120的基于模型(model-based)的開發(fā)環(huán)境,雖然也可以使用 其它的開發(fā)環(huán)境。用戶接口 120可以通過網(wǎng)絡(luò)連接150a調(diào)用(call)類屬客戶端 代理l仰的應(yīng)用程序接口 (application program interface , API), 以i"更與 <列i口月良 務(wù)提供商180、 181之一相互作用。
類屬客戶端代理140可以具有在客戶端系統(tǒng)110實(shí)施的、能夠被用戶接 口 120訪問的API。當(dāng)進(jìn)行例示說明(instantiate)時,類屬客戶端代理140可以 通過網(wǎng)絡(luò)連接150b將如遠(yuǎn)程過程調(diào)用(Remote Procedure Call, RPC)或簡單對 象訪問協(xié)議(Simple Object Access Protocol , SOAP)接口提供給服務(wù)器系統(tǒng)190 的服務(wù)管理器160。類屬客戶端代理140可以被實(shí)施為通過提供定義明確的 接口給服務(wù)管理器160,來控制對用戶接口 120可用的功能。例如,服務(wù)管 理器160可以包括各種過程,但是類屬客戶端代理140可以僅被允許訪問那 些過程的子集(subset)。而且,類屬客戶端代理140可以緩沖在用戶接口 120 和服務(wù)管理器160之間的請求和/或響應(yīng)。
網(wǎng)絡(luò)連接150a-150i可以單獨(dú)或以任何適當(dāng)?shù)慕M合來包括基于電話系統(tǒng) 的(telephony-based)網(wǎng)絡(luò)、局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、專用內(nèi)聯(lián)網(wǎng)、無線
LAN、因特網(wǎng)、內(nèi)聯(lián)網(wǎng)、無線網(wǎng)絡(luò)、總線、或任何其它的通信機(jī)制。而且, 有線和/或無線組件和系統(tǒng)的任何適當(dāng)?shù)慕M合都可以提供網(wǎng)絡(luò)連接150a-150g。 并且,網(wǎng)絡(luò)連接150a-150g可以使用雙向、單向、或?qū)S猛ㄐ沛溄觼砭唧w實(shí) 現(xiàn)。網(wǎng)絡(luò)鏈接150a-150g還可以實(shí)施標(biāo)準(zhǔn)傳輸協(xié)議,諸如傳輸控制協(xié)議/網(wǎng)際 協(xié)議(TCP/IP)、超文本傳輸通訊協(xié)議(HTTP)、 SOAP、 RPC、或其它協(xié)議。
服務(wù)器系統(tǒng)190可以包括一個或多個諸如計算機(jī)的處理器以便與諸如客 戶端系統(tǒng)110的其它計算機(jī)接口連接。類屬客戶端代理140調(diào)用在服務(wù)器系 統(tǒng)l卯的服務(wù)管理器160的API。當(dāng)調(diào)用服務(wù)管理器160的API時,在服務(wù) 器系統(tǒng)190創(chuàng)建服務(wù)管理器160的實(shí)例(instance)。雖然服務(wù)管理器160被描 述為在服務(wù)器系統(tǒng)190內(nèi),但服務(wù)管理器160也可以位于任何位置和分布在 多個位置。
儲存庫175可以存儲與業(yè)務(wù)對象相關(guān)聯(lián)的信息,包括用于業(yè)務(wù)對象的元 數(shù)據(jù),以及用于模型業(yè)務(wù)對象的模型數(shù)據(jù)。例如,儲存庫175可以存儲包括 標(biāo)識符(ID)和模型數(shù)據(jù)內(nèi)容的業(yè)務(wù)對象節(jié)點(diǎn)的列表。業(yè)務(wù)對象的ID是指在儲 存庫175內(nèi)唯一地標(biāo)識各個業(yè)務(wù)對象節(jié)點(diǎn)的、業(yè)務(wù)對象節(jié)點(diǎn)的標(biāo)識存儲器地 址。存儲器地址能夠被用來訪問和讀取特定業(yè)務(wù)對象節(jié)點(diǎn)的數(shù)據(jù)內(nèi)容。例如, 業(yè)務(wù)對象節(jié)點(diǎn)的ID可以由目錄結(jié)構(gòu)(directory stmcture)和與該業(yè)務(wù)對象節(jié)點(diǎn) 相關(guān)聯(lián)的文件名組成。儲存庫175可以被實(shí)施為企業(yè)服務(wù)儲存庫,雖然也可 以使用任何其它的計算機(jī)可讀存儲介質(zhì)。
儲存庫175還可以存儲關(guān)于一個或多個業(yè)務(wù)對象的元數(shù)據(jù)。元數(shù)據(jù)可以 被定義為關(guān)于數(shù)據(jù)的數(shù)據(jù)。例如,元數(shù)據(jù)是指關(guān)于數(shù)據(jù)自身的信息,諸如數(shù) 據(jù)的內(nèi)容、質(zhì)量、條件、源、尺寸、格式、性質(zhì)等??蓴U(kuò)展標(biāo)記語言(XML) 是元數(shù)據(jù)的一個具體例子,因為其是一種用于定義其它數(shù)據(jù)對象的格式。元 數(shù)據(jù)可以包括模式(schema)。模式是組織或結(jié)構(gòu),諸如數(shù)據(jù)庫的組織或在面向 對象的程序中對象的結(jié)構(gòu)。在面向?qū)ο蟮木幊讨校?即,用在業(yè)務(wù)或其它 的上下文關(guān)系中的對象的分析以及在這些數(shù)據(jù)對象之間的關(guān)系的標(biāo)識)產(chǎn)生 模式,其可以作為模式存儲在儲存庫175中。模式可以被可視地描述為結(jié)構(gòu) 或形式的面向文本的描述(例如,腳本)。例如,元數(shù)據(jù)可以為數(shù)據(jù)庫表的形式。 元數(shù)據(jù)可以包括諸如業(yè)務(wù)對象中節(jié)點(diǎn)的數(shù)量、節(jié)點(diǎn)的名稱、業(yè)務(wù)對象層級中 節(jié)點(diǎn)的位置、節(jié)點(diǎn)的結(jié)構(gòu)、關(guān)聯(lián)、動作、以及對節(jié)點(diǎn)的默認(rèn)查詢等信息。
儲存庫175還可以存儲與模型業(yè)務(wù)對象相關(guān)聯(lián)的模型數(shù)據(jù)。模型數(shù)據(jù)如
下面將要描述的、由模型數(shù)據(jù)生成器197生成。
圖IB描述了用于含有存儲在儲存庫175的才莫型數(shù)據(jù)的業(yè)務(wù)對象節(jié)點(diǎn)的 示例模式。模式包括用于銷售定單198a的業(yè)務(wù)對象節(jié)點(diǎn)、包含銷售定單項 198a的銷售定單項198b、以及相應(yīng)的產(chǎn)品描述198c。圖1B還描述了具有生 成的模型數(shù)據(jù)的業(yè)務(wù)對象節(jié)點(diǎn),如在父類節(jié)點(diǎn)銷售定單項198d、子類節(jié)點(diǎn)銷 售定單項198e、以及子類節(jié)點(diǎn)產(chǎn)品描述198f中所示。如以下所述,這些模型 數(shù)據(jù)業(yè)務(wù)對象中的模型數(shù)據(jù)由模型數(shù)據(jù)生成器197生成。而且,圖IB中所述 的模式包括標(biāo)識在業(yè)務(wù)對象節(jié)點(diǎn)198之中的關(guān)系的關(guān)鍵字199a-d。例如,關(guān) 鍵字199a是用于鏈接業(yè)務(wù)對象節(jié)點(diǎn)198a和198b的銷售定單標(biāo)識值("id,,)。 關(guān)鍵字199b將銷售定單項198b的產(chǎn)品標(biāo)識值(在圖1B標(biāo)為"product id") 鏈接到產(chǎn)品描述198c的產(chǎn)品標(biāo)識值(標(biāo)為"id")。描述了業(yè)務(wù)對象節(jié)點(diǎn)以及 它們?nèi)绾位ハ嚓P(guān)聯(lián)的模式可以被看作元數(shù)據(jù),并存儲在儲存庫175中。而且, 模式可以被看作如何實(shí)施這些業(yè)務(wù)對象節(jié)點(diǎn)的"模型"(model)。模型可以擔(dān) 當(dāng)使能業(yè)務(wù)對象的其它模型以及它們的節(jié)點(diǎn)的組合的模板(template)。模型還 可以用于生成腳本(script),該腳本用于生成用于業(yè)務(wù)對象和它們的節(jié)點(diǎn)的代 碼。模式可以作為元數(shù)據(jù)存儲在儲存庫175中。在系統(tǒng)100的最終實(shí)施期間, 用戶將與諸如網(wǎng)絡(luò)服務(wù)或服務(wù)提供商180或181的服務(wù)相互作用(例如,接收 產(chǎn)品編目),以便訪問存儲在儲存庫175中的業(yè)務(wù)對象。存儲在業(yè)務(wù)對象中模 型數(shù)據(jù)也可以存儲在儲存庫175中。
參考圖1A,模型服務(wù)適配器196可以包括API,該API被調(diào)用時使用元 數(shù)據(jù)生成模型業(yè)務(wù)對象。例如,存儲在儲存庫175中的元數(shù)據(jù)被用于生成模 型業(yè)務(wù)對象。模型服務(wù)適配器196在模型存儲器(mockup storage)中存儲任何 生成的模型業(yè)務(wù)對象。
模型數(shù)據(jù)生成器197可以包括API,該API被調(diào)用時使用用戶響應(yīng)和元 數(shù)據(jù)生成用于模型業(yè)務(wù)對象的模型數(shù)據(jù)。例如,存儲在儲存庫175中的元數(shù) 據(jù)可以用于生成模型數(shù)據(jù)。具體來講,如果圖IB的模式描述了含有實(shí)際數(shù)據(jù) 的實(shí)際業(yè)務(wù)對象的模型,則模型可以用于提供用于生成模型業(yè)務(wù)對象的模型 數(shù)據(jù)的類似;溪型。模型數(shù)據(jù)生成器197將任何生成的模型數(shù)據(jù)存儲在模型存 儲器224中(如圖2所示)。在運(yùn)行時,使用具有模型數(shù)據(jù)的模型業(yè)務(wù)對象,以 便獨(dú)立地進(jìn)行系統(tǒng)100的組件的開發(fā)。例如,用戶接口設(shè)計師可以不用顧忌 在系統(tǒng)100完成時可能使用的實(shí)際業(yè)務(wù)對象數(shù)據(jù)來開發(fā)用戶接口 120,以便
與含有模型數(shù)據(jù)的模型業(yè)務(wù)對象相互作用。
圖2描述了示范模型數(shù)據(jù)生成器197。模型數(shù)據(jù)生成器197可以基于存 儲在儲存庫175中的元數(shù)據(jù)以及用戶響應(yīng)生成用于模型業(yè)務(wù)對象的模型數(shù) 據(jù)。模型數(shù)據(jù)生成器197還可以在模型存儲器224中存儲模型數(shù)據(jù)。而且, 模型數(shù)據(jù)生成器197可以在運(yùn)行期間例示模型數(shù)據(jù)。生成模型數(shù)據(jù)的步驟將 參考圖3在下面進(jìn)行描述。參考圖2,當(dāng)被服務(wù)管理器160調(diào)用時,模型數(shù) 據(jù)生成器197調(diào)用數(shù)據(jù)分析器212。
模型數(shù)據(jù)生成器197包括數(shù)據(jù)分析器212、數(shù)據(jù)生成器引擎220、以及后 臺工作管理器226。數(shù)據(jù)分析器212允許用戶指定創(chuàng)建模型數(shù)據(jù)的數(shù)值范圍。 例如,用戶可以指定一個設(shè)定在從'T,到"1000"的整數(shù)域的值。從而,參 考圖1B,用戶可以指定為198b中的"line id"生成的數(shù)據(jù)必須是在"1"到 "1000"之間的整數(shù)。數(shù)據(jù)分析器212還允許用戶指定使用正則表達(dá)式(regular expressions)設(shè)定的值。數(shù)據(jù)分析器212還執(zhí)行對由用戶為特定字段指定的值 的檢驗,以便確定該字段是否有效(valid)。例如,對于銷售定單項198b, "line id"必須是整數(shù),而"product id"也必須是整數(shù)。因此,用戶可以只指定模 型數(shù)據(jù)的整數(shù)范圍,例如,從'T,到"1000"的范圍。如果用戶指定了一個 字符范圍,則數(shù)據(jù)分析器212將確定該字段不是有效的。
數(shù)據(jù)生成器引擎220可以被模型數(shù)據(jù)生成器197調(diào)用以生成用于模型業(yè) 務(wù)對象的模型數(shù)據(jù)。模型數(shù)據(jù)獨(dú)立于任何實(shí)際數(shù)據(jù)來生成。例如,基于存儲 在模型存儲器224中的業(yè)務(wù)對象元數(shù)據(jù),以及用戶輸入,數(shù)據(jù)生成器引擎220 創(chuàng)建用于模型業(yè)務(wù)對象節(jié)點(diǎn)的模型數(shù)據(jù)(例如,在圖1B中描述的表),并將所 得到的模型業(yè)務(wù)對象節(jié)點(diǎn)中的模型數(shù)據(jù)存儲在模型存儲器224中。所述表具 有技術(shù)名稱,諸如"銷售定單"、"銷售定單項"、以及"產(chǎn)品描述"。數(shù)據(jù)生 成器引擎220將這些技術(shù)名稱映射到諸如模型存儲器224或數(shù)據(jù)庫170之類 的適當(dāng)?shù)拇鎯ζ鳈C(jī)構(gòu)。模型業(yè)務(wù)對象節(jié)點(diǎn)、數(shù)據(jù)庫表名稱、以及字段名稱(例 如參見198a的"id"、"定單日期"、以及"客戶id")之間的關(guān)聯(lián)被存儲在模 型存儲器224。
模型業(yè)務(wù)對象節(jié)點(diǎn)可以具有對業(yè)務(wù)對象節(jié)點(diǎn)的字段的相關(guān)聯(lián)的默認(rèn)查
詢。例如,每個模型業(yè)務(wù)對象節(jié)點(diǎn)可以具有包括字段以及那些字段的默認(rèn)SQL
查詢的相關(guān)聯(lián)的數(shù)據(jù)庫表(例如,對應(yīng)節(jié)點(diǎn)198a-c的表)。交易緩沖器
(transactional buffer)222可以使能數(shù)據(jù)庫數(shù)據(jù)和緩沖器數(shù)據(jù)的歸并(merging)。
例如,對模型業(yè)務(wù)對象節(jié)點(diǎn)中的模型數(shù)據(jù)的改變可以被存儲到緩沖器中,直 到實(shí)施對數(shù)據(jù)庫的保存。當(dāng)調(diào)用保存時,緩沖器中的任何改變都被寫入數(shù)據(jù)
庫170中,這樣所述改變被以有序的(或分階段的(phased))方式被輸入 (entered)。交易緩沖器222還可以通過模型業(yè)務(wù)對象節(jié)點(diǎn)提供父類-子類以及 子類-父類導(dǎo)航(navigation)。例如,存儲在模型存儲器224中的模型業(yè)務(wù)對象 模型可以包括定義了父類節(jié)點(diǎn)(例如,節(jié)點(diǎn)198a)和子類節(jié)點(diǎn)(例如,節(jié)點(diǎn)198b) 的模式(例如參見圖1B)。父類節(jié)點(diǎn)可以是用于生成銷售定單的模型業(yè)務(wù)對象 節(jié)點(diǎn),而子類節(jié)點(diǎn)之一可以是銷售定單的對象(例如,包含在定單中的項目以 及所述項目的產(chǎn)品描述)。交易緩沖器222因此可以提供在那些節(jié)點(diǎn)198之間 的導(dǎo)航。雖然結(jié)合銷售定單業(yè)務(wù)對象描述了模型業(yè)務(wù)對象節(jié)點(diǎn),但是也可以 使用其它類型的對象。
數(shù)據(jù)生成器引擎220中的交易緩沖器222管理交易緩沖,諸如對模型存 儲器224的模型業(yè)務(wù)對象節(jié)點(diǎn)執(zhí)行的創(chuàng)建、檢索、更新、以及刪除。例如, 服務(wù)管理器160可以從服務(wù)提供商180、 181調(diào)用各種過程以例示存儲在模型 存儲器224中模型業(yè)務(wù)對象,以便與模型業(yè)務(wù)對象相互作用以及操縱模型業(yè) 務(wù)對象節(jié)點(diǎn)。這些過程可以包括創(chuàng)建、檢索、更新、以及刪除對應(yīng)于服務(wù)提 供商180、 181的模型業(yè)務(wù)對象節(jié)點(diǎn)的指令。例如,"創(chuàng)建,,過程能夠用來創(chuàng) 建新的模型業(yè)務(wù)對象節(jié)點(diǎn),"更新"過程用來更新一個或多個模型業(yè)務(wù)對象節(jié)
點(diǎn)中的數(shù)據(jù)內(nèi)容,"檢索,,過程用來檢索模型業(yè)務(wù)對象節(jié)點(diǎn),而"刪除"過程 用來刪除一個或多個模型業(yè)務(wù)對象節(jié)點(diǎn)。而且,這些過程可以組合使用,例 如"查詢,,過程與"檢索,,過程,用來從模型業(yè)務(wù)對象節(jié)點(diǎn)搜索和檢索數(shù)據(jù) 內(nèi)容。當(dāng)使用創(chuàng)建、檢索、更新、以及刪除過程時,交易緩沖器222還可以 實(shí)施另外的過程,諸如檢查、保存、以及清空,并且支持改變通告,以改變 服務(wù)管理器160的處理程序(handler)。雖然交易緩沖器222如上所述對模型業(yè) 務(wù)對象執(zhí)行諸如創(chuàng)建、檢索、更新、以及刪除的過程,交易緩沖器222還可 以對任何對象執(zhí)行所述過程。
后臺工作管理器226可以將存儲在交易緩沖器222中的所有模型數(shù)據(jù)寫 入數(shù)據(jù)庫170或模型存儲器224。如果在寫入操作期間出現(xiàn)任何失敗,則后 臺工作管理器226將維持?jǐn)?shù)據(jù)庫170中的任何不一致。
數(shù)據(jù)庫引擎和字段名稱映射器228可以提供對數(shù)據(jù)庫170的訪問,并提 供代理名稱和數(shù)據(jù)庫名稱之間的任何需要的映射功能。節(jié)點(diǎn)字段的代理名稱
(例如,圖IB中節(jié)點(diǎn)198b的"product id")可以代表在模型業(yè)務(wù)對象的代理 生成(proxy generation)時生成的用于高級業(yè)務(wù)應(yīng)用編程(ABAP)字典中的節(jié)點(diǎn) 字段的ABAP名稱。當(dāng)使用元數(shù)據(jù)創(chuàng)建用于模型業(yè)務(wù)對象節(jié)點(diǎn)的數(shù)據(jù)庫表時, 用與代理名稱完全相同的名稱來創(chuàng)建數(shù)據(jù)庫表的列名稱可能是并不實(shí)用的。 同樣,數(shù)據(jù)庫170可以使用"偽"名稱,而不是由模型業(yè)務(wù)對象節(jié)點(diǎn)所用的 實(shí)際代理名稱。數(shù)據(jù)庫引擎228還可以包括限制對數(shù)據(jù)庫170的訪問的API。 例如,只有數(shù)據(jù)庫引擎228能夠得知在數(shù)據(jù)庫170中使用的實(shí)際偽字段名稱。 系統(tǒng)200的所有其它組件只能得知代理名稱,該代理名稱由數(shù)據(jù)庫引擎228 映射到數(shù)據(jù)庫170的實(shí)際偽字段名稱。數(shù)據(jù)庫引擎228還可以提供默認(rèn)查詢 過程。例如,模型業(yè)務(wù)對象節(jié)點(diǎn)可以包括預(yù)定的查詢作為默認(rèn)查詢。這樣, 默認(rèn)查詢(由模型引擎定義)可以是對模型業(yè)務(wù)對象節(jié)點(diǎn)(或其相應(yīng)的數(shù)據(jù)庫表) 定義的任何查詢。
而且,當(dāng)服務(wù)管理器160的API被模型服務(wù)適配器196調(diào)用時,服務(wù)管 理器160可以例示一個或多個服務(wù)提供商180、 181以及相應(yīng)的模型業(yè)務(wù)對象。
模型存儲器224提供對模型業(yè)務(wù)對象、用于模型業(yè)務(wù)對象的模型數(shù)據(jù)、 以及它們的業(yè)務(wù)對象節(jié)點(diǎn)的存儲(例如參見圖1B)。模型存儲器224還可以包 括元數(shù)據(jù)。雖然模型儲存器224可以用來存儲與模型業(yè)務(wù)對象相關(guān)聯(lián)的所有 模型數(shù)據(jù),但是與模型業(yè)務(wù)對象節(jié)點(diǎn)相關(guān)聯(lián)的實(shí)際數(shù)據(jù)可以存儲在另外的位 置,諸如數(shù)據(jù)庫170。參考圖1B,模型業(yè)務(wù)對象節(jié)點(diǎn)可以對應(yīng)節(jié)點(diǎn)198。在 這個例子中,與節(jié)點(diǎn)198a的定單日期相關(guān)聯(lián)的數(shù)據(jù)可以被存儲在數(shù)據(jù)庫170 中。模型存儲器224可以實(shí)施為計算機(jī)可讀存儲介質(zhì)(例如,磁盤驅(qū)動、光盤 驅(qū)動等)。
圖3是用于創(chuàng)建用于模型業(yè)務(wù)對象的模型數(shù)據(jù)的示范步驟的流程圖。參 考圖2和圖3,當(dāng)服務(wù)管理器160調(diào)用模型數(shù)據(jù)生成器197時,該調(diào)用啟動 步驟302。數(shù)據(jù)分析器212可以首先從用戶接收要為其創(chuàng)建模型數(shù)據(jù)的業(yè)務(wù) 對象的名稱(步驟302)。用戶(例如,在計算機(jī)前的人)在這種情況下可以指定 業(yè)務(wù)對象以及需要為其填上模型數(shù)據(jù)(也稱為"模擬數(shù)據(jù)"或"虛擬數(shù)據(jù)") 的業(yè)務(wù)對象節(jié)點(diǎn)的名稱。
對模型數(shù)據(jù)生成器197的調(diào)用啟動數(shù)據(jù)分析器212,以確定在為那個業(yè)
務(wù)對象創(chuàng)建模型數(shù)據(jù)之前是否存在指定的模型業(yè)務(wù)對象。例如,如果通過調(diào) 用所請求的模型業(yè)務(wù)對象沒有任何對應(yīng)的數(shù)據(jù)存儲在;^莫型存儲器224中,則
數(shù)據(jù)分析器212可以確定該業(yè)務(wù)對象不存在。
然后用戶可以提供要為業(yè)務(wù)對象的每個節(jié)點(diǎn)創(chuàng)建的記錄的數(shù)量(步驟
304)。例如,如果用戶指定父類節(jié)點(diǎn)198a,則用戶可以指定^t型數(shù)據(jù)生成器 197將要創(chuàng)建多少模型銷售定單項198a。該父類節(jié)點(diǎn)可以是用于生成銷售定 單的模型業(yè)務(wù)對象節(jié)點(diǎn),而子類節(jié)點(diǎn)之一(例如,198b)可以是銷售定單的對象 (例如,包含在定單中的項目以及所述項目的產(chǎn)品描述)。
如果數(shù)據(jù)分析器212確定業(yè)務(wù)對象已經(jīng)與模型數(shù)據(jù)相關(guān)聯(lián),則用戶可以 選擇保存和清除舊的數(shù)據(jù)(步驟306)。如果用戶決定清除該模型數(shù)據(jù),則在指 定業(yè)務(wù)對象中的模型數(shù)據(jù)被刪除并且不被保存(步驟308)。但是,如果用戶決 定保存已有模型數(shù)據(jù),則數(shù)據(jù)分析器212可以將該數(shù)據(jù)寫入模型存儲器224 中。例如,如果用戶選擇銷售定單項198a,并且那個節(jié)點(diǎn)的日期被設(shè)定為 "03/04/05",用戶可以選擇清除這個數(shù)據(jù),并讓模型數(shù)據(jù)生成器197為這個 節(jié)點(diǎn)創(chuàng)建新的模型日期。用戶還可以將銷售定單項198d中的信息保存到模型 存儲器224。
用戶還可以被給予修改已有數(shù)據(jù)的機(jī)會(步驟310)。例如,如果用戶指定 業(yè)務(wù)對象銷售定單項198d,則用戶可以將定單日期或客戶id改變?yōu)榕c所存儲 的值不同的值。如果用戶決定修改已有數(shù)據(jù),則用戶首先必須指定該數(shù)據(jù)的 開始和結(jié)束范圍(步驟314)。該范圍由業(yè)務(wù)對象的相應(yīng)模式來確定。例如,如 果用戶修改該定單日期,則他必須指定的范圍必須對應(yīng)于日期范圍。
用戶可以決定不修改任何已有數(shù)據(jù)(步驟310),而是為所選業(yè)務(wù)對象創(chuàng)建 新的數(shù)據(jù)(步驟312)。用戶可以如上所述再次指定所述數(shù)據(jù)的開始和結(jié)束范圍 (步驟314)。 一旦用戶已經(jīng)指定了是否要創(chuàng)建新的數(shù)據(jù)或要修改已有數(shù)據(jù),則 數(shù)據(jù)生成器引擎220可以基于存儲在儲存庫175中的元數(shù)據(jù)以及由用戶指定 的數(shù)值范圍來創(chuàng)建模型數(shù)據(jù)(步驟316)。然后數(shù)據(jù)生成器引擎220可以遍歷 (traverse through)所指定的業(yè)務(wù)對象的每個節(jié)點(diǎn),并為每個節(jié)點(diǎn)在模型存儲器 224中創(chuàng)建記錄(步驟318)。數(shù)據(jù)生成器引擎220為模型業(yè)務(wù)對象自動創(chuàng)建隨 機(jī)模型數(shù)據(jù)。
在一個實(shí)施例中,用戶可以為要由模型數(shù)據(jù)生成器197生成的數(shù)據(jù)指定 每個模型業(yè)務(wù)對象的父類-子類比率。因此,用戶可以指定特定的父類節(jié)點(diǎn)可 以具有與其相關(guān)聯(lián)的"X"數(shù)量的子類節(jié)點(diǎn)。例如,在圖1B的例子中,父類 節(jié)點(diǎn)198d具有與其相關(guān)聯(lián)的兩個子類節(jié)點(diǎn)198e和198f。用戶可能已經(jīng)指定
了該父類具有兩個子類節(jié)點(diǎn)。在另一個實(shí)施例中,用戶在選#^該父類-子類比 率時被給予有修改該記錄的機(jī)會。因此,如果用戶選擇較大的父類-子類比率, 則用戶能夠看到將為那個比率創(chuàng)建的記錄的數(shù)量。用戶能夠修改這個數(shù)量以
使模型數(shù)據(jù)生成器197為特定節(jié)點(diǎn)產(chǎn)生更多或更少的記錄。在同一個例子中, 如果用戶為每個父類節(jié)點(diǎn)指定了兩個子類節(jié)點(diǎn),則模型數(shù)據(jù)生成器197可以 警告該用戶將為這個業(yè)務(wù)對象創(chuàng)建七個記錄。此時,如果希望如此,用戶可 以減少記錄的數(shù)量。
這里所公開的系統(tǒng)和方法可以以例如包括數(shù)據(jù)處理器的各種方式來實(shí) 現(xiàn),數(shù)據(jù)處理器例如是還包括數(shù)據(jù)庫、數(shù)字電子電路、固件、軟件或任何它 們的組合的計算機(jī)。而且,本發(fā)明的上述特征和其它方面和原理可以在各種 環(huán)境中實(shí)施。這樣的環(huán)境和相關(guān)應(yīng)用可以被特定地構(gòu)建,用于根據(jù)本發(fā)明執(zhí) 行各種處理和操作,或者它們可以包括選擇性的激活或由代碼配置以提供所 需功能的通用計算機(jī)或計算平臺。這里公開的處理并非必然地與任何特定的 計算機(jī)、網(wǎng)絡(luò)、體系結(jié)構(gòu)、環(huán)境、或其它裝置相關(guān),并且可以由硬件、軟件、 和/或固件的適當(dāng)組合來實(shí)施。例如,可以使用具有按照本發(fā)明的教導(dǎo)編寫的 程序的各種通用機(jī)器,或者更方便地構(gòu)建特定裝置或系統(tǒng)來執(zhí)行所需要的方 法和記述。
這里公開的系統(tǒng)和方法可以作為計算機(jī)程序產(chǎn)品實(shí)施,即,以信息載體 有形地實(shí)現(xiàn)的計算機(jī)程序,例如以機(jī)器可讀存儲設(shè)備或載波,用于執(zhí)行或控 制例如可編程處理器、計算機(jī)、或多個計算機(jī)數(shù)據(jù)處理裝置的數(shù)據(jù)處理裝置 的操作。計算機(jī)程序可以用任何形式的編程語言來編寫,包括編譯或解釋語 言,并且其可以配置為包括獨(dú)立程序,或適于計算環(huán)境使用模塊、組件、子 程序、或其它單元的任何形式。計算機(jī)程序可被配置為在一個地點(diǎn)或分布在 多個地點(diǎn)并通過通信網(wǎng)絡(luò)相互連接的一個或多個計算機(jī)上執(zhí)行。
前述描述是為了說明而不是為了限定本發(fā)明的范圍,本發(fā)明的保護(hù)范圍 由所附權(quán)利要求的范圍來定義。其它的實(shí)施例也在以下權(quán)利要求書的范圍以 內(nèi)。
權(quán)利要求
1.一種用于創(chuàng)建用于模型對象的模型數(shù)據(jù)的方法,在框架內(nèi)實(shí)施的所述模型對象包括其它對象,該方法包括從用戶接收將要為其創(chuàng)建模型數(shù)據(jù)的模型對象的名稱,其中所述對象包括一個或多個節(jié)點(diǎn);從用戶接收要為所述對象的每個節(jié)點(diǎn)創(chuàng)建的記錄的數(shù)量;確定是否為每個節(jié)點(diǎn)創(chuàng)建新的模型數(shù)據(jù)或修改已有模型數(shù)據(jù);從用戶接收用于所述模型數(shù)據(jù)的開始范圍和結(jié)束范圍;以及基于存儲在框架內(nèi)的元數(shù)據(jù)以及所述開始和結(jié)束范圍,在框架內(nèi)生成所述對象的每個節(jié)點(diǎn)的模型數(shù)據(jù)。
2. 如權(quán)利要求l所述的方法,還包括允許用戶在所述對象的每個節(jié)點(diǎn)內(nèi)保存已有模型數(shù)據(jù),其中所述對象包 括業(yè)務(wù)對象。
3. 如權(quán)利要求l所述的方法,其中所述確定步驟還包括允許用戶在保存所述已有模型數(shù)據(jù)之后清除所述對象的每個節(jié)點(diǎn)內(nèi)的所 述已有模型數(shù)據(jù)。
4. 如權(quán)利要求l所述的方法,還包括創(chuàng)建所述對象的每個節(jié)點(diǎn)的模型數(shù)據(jù)的記錄。
5. 如權(quán)利要求l所述的方法,其中所述確定步驟還包括提示用戶以確定用戶是否希望創(chuàng)建新的模型數(shù)據(jù)或改變已有模型數(shù)據(jù)。
6. 如權(quán)利要求l所述的方法,還包括 向用戶顯示所述對象的子類節(jié)點(diǎn)與父類節(jié)點(diǎn)的比率; 向用戶顯示將要為每個節(jié)點(diǎn)創(chuàng)建的記錄的數(shù)量;以及 允許用戶修改記錄的數(shù)量。
7. 如權(quán)利要求l所述的方法,其中所述框架是計算機(jī)框架。
8. —種用于創(chuàng)建用于模型對象的模型數(shù)據(jù)的系統(tǒng),在框架內(nèi)實(shí)施的所述 模型對象包括其它對象,該系統(tǒng)包括處理器;以及存儲器,其中所述處理器和存儲器被配置來執(zhí)行方法,該方法包括 從用戶接收將要為其創(chuàng)建模型數(shù)據(jù)的模型對象的名稱,其中所述對象包 括一個或多個節(jié)點(diǎn);從用戶接收要為所述對象的每個節(jié)點(diǎn)創(chuàng)建的記錄的數(shù)量; 確定是否為每個節(jié)點(diǎn)修改已有模型數(shù)據(jù)或創(chuàng)建新的模型數(shù)據(jù); 從用戶接收用于所述模型數(shù)據(jù)的開始范圍和結(jié)束范圍;以及 基于存儲在框架內(nèi)的元數(shù)據(jù)以及所述開始和結(jié)束范圍,在框架內(nèi)生成所 述對象的每個節(jié)點(diǎn)的模型數(shù)據(jù)。
9. 如權(quán)利要求8所述的系統(tǒng),還包括允許用戶在所述對象的每個節(jié)點(diǎn)內(nèi)保存已有模型數(shù)據(jù),其中所述對象包 括業(yè)務(wù)對象。
10. 如權(quán)利要求8所述的系統(tǒng),其中所述確定還包括允許用戶在保存所述已有模型數(shù)據(jù)之后清除所述對象的每個節(jié)點(diǎn)內(nèi)的所 述已有模型數(shù)據(jù)。
11. 如權(quán)利要求8所述的系統(tǒng),還包括 創(chuàng)建所述對象的每個節(jié)點(diǎn)的模型數(shù)據(jù)的記錄。
12. 如權(quán)利要求8所述的系統(tǒng),其中所述確定還包括提示用戶以確定用戶是否希望創(chuàng)建新的模型數(shù)據(jù)或改變已有模型數(shù)據(jù)。
13. 如權(quán)利要求8所述的系統(tǒng),還包括 向用戶顯示所述對象的子類節(jié)點(diǎn)與父類節(jié)點(diǎn)的比率; 向用戶顯示將要為每個節(jié)點(diǎn)創(chuàng)建的記錄的數(shù)量;以及 允許用戶修改記錄的數(shù)量。
14. 如權(quán)利要求8所述的系統(tǒng),其中所述框架是計算機(jī)框架。
15. —種計算機(jī)可讀介質(zhì),其含有指令以便配置處理器執(zhí)行用于創(chuàng)建用 于模型對象的模型數(shù)據(jù)的方法,在框架內(nèi)實(shí)施的所述模型對象包括其它對象, 該方法包括從用戶接收將要為其創(chuàng)建模型數(shù)據(jù)的模型對象的名稱,其中所述對象包括一個或多個節(jié)點(diǎn);從用戶接收要為所述對象的每個節(jié)點(diǎn)創(chuàng)建的記錄的數(shù)量; 確定是否為每個節(jié)點(diǎn)修改已有模型數(shù)據(jù)或創(chuàng)建新的模型數(shù)據(jù); 從用戶接收用于所述模型數(shù)據(jù)的開始范圍和結(jié)束范圍;以及 基于存儲在框架內(nèi)的元數(shù)據(jù)以及所述開始和結(jié)束范圍,在框架內(nèi)生成所述對象的每個節(jié)點(diǎn)的模型數(shù)據(jù)。
16. 如權(quán)利要求15所述的計算機(jī)可讀介質(zhì),還包括允許用戶在所述對象的每個節(jié)點(diǎn)內(nèi)保存已有模型數(shù)據(jù),其中所述對象包 括業(yè)務(wù)對象。
17. 如權(quán)利要求15所述的計算機(jī)可讀介質(zhì),其中所述確定步驟還包括 允許用戶在保存所述已有模型數(shù)據(jù)之后清除所述對象的每個節(jié)點(diǎn)內(nèi)的所述已有模型數(shù)據(jù)。
全文摘要
提供用于模型對象的模型數(shù)據(jù)的方法和裝置,包括計算機(jī)程序產(chǎn)品。在一個示范實(shí)施例中,所述方法可以包括從用戶接收將要為其創(chuàng)建模型數(shù)據(jù)的模型對象的名稱,其中所述對象包括一個或多個節(jié)點(diǎn)。所述方法還可以包括從用戶接收要為所述對象的每個節(jié)點(diǎn)創(chuàng)建的記錄的數(shù)量;確定是否為每個節(jié)點(diǎn)修改已有模型數(shù)據(jù)或創(chuàng)建新的模型數(shù)據(jù);從用戶接收用于模型數(shù)據(jù)的開始范圍和結(jié)束范圍;以及基于存儲在框架內(nèi)的元數(shù)據(jù)以及開始和結(jié)束范圍、在框架內(nèi)生成所述對象的每個節(jié)點(diǎn)的模型數(shù)據(jù)。
文檔編號G06F17/30GK101097579SQ20071010958
公開日2008年1月2日 申請日期2007年6月27日 優(yōu)先權(quán)日2006年6月27日
發(fā)明者弗蘭克·布倫斯威格, 普雷尚思·雷, 普雷格尼什·B·米斯特里, 阿布海·A·蒂普爾 申請人:Sap股份公司