專利名稱:多線程業(yè)務(wù)編程庫的制作方法
多線程業(yè)務(wù)編程庫 背景 企業(yè)資源計(jì)劃系統(tǒng)(ERP)正變得更加公開以便開放用于創(chuàng)建定制應(yīng)用程序的開 發(fā)者體驗(yàn)并且擴(kuò)展和豐富用戶體驗(yàn)。因此,ERP的體系結(jié)構(gòu)正在通過使得ERP能夠支持多 種語言、數(shù)據(jù)庫技術(shù)和業(yè)務(wù)框架來進(jìn)行轉(zhuǎn)變以適應(yīng)這些改變。 然而,體系結(jié)構(gòu)轉(zhuǎn)變必須找到一種保護(hù)ERP系統(tǒng)供應(yīng)商和ERP客戶在該產(chǎn)品中的 大量投入的方式以使得現(xiàn)有系統(tǒng)和應(yīng)用程序不會(huì)荒廢。體系結(jié)構(gòu)轉(zhuǎn)變需要在升級(jí)期間最小 化在時(shí)間和/或成本方面的投入,并且還需要提供在其上為諸如轉(zhuǎn)換到其他多種語言和/ 或業(yè)務(wù)框架等將來的改變而構(gòu)建的平臺(tái)。還可能需要解決所產(chǎn)生的安全問題和性能。
概述 提供本概述是為了以簡化的形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的一些概 念。本概述并不旨在標(biāo)識(shí)出所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于限定 所要求保護(hù)的主題的范圍。 公開了一種供在企業(yè)資源計(jì)劃系統(tǒng)(ERP)中使用的業(yè)務(wù)編程庫。該庫的體系結(jié)構(gòu) 可以足夠穩(wěn)健以支持將來多代語言、數(shù)據(jù)庫技術(shù)和業(yè)務(wù)框架。該庫可用于企業(yè)資源計(jì)劃系 統(tǒng)中的若干目的。該庫可用作用于訪問由ERP組件用來為客戶機(jī)請(qǐng)求服務(wù)的常見數(shù)據(jù)類型 和業(yè)務(wù)方法函數(shù)的應(yīng)用程序接口 (API)的類庫。該庫可用作供ERP編譯器發(fā)出所需運(yùn)行時(shí) 調(diào)用的運(yùn)行時(shí)環(huán)境。該庫可用作供ERP組件與ERP數(shù)據(jù)接口的數(shù)據(jù)庫訪問機(jī)制。該庫可提 供元數(shù)據(jù),諸如表、表單、表單個(gè)性化等。并且,該庫可提供用于ERP數(shù)據(jù)庫的管理功能。以 此方式,這些服務(wù)可被合并在庫中,由此提供用于管理類型、方法、數(shù)據(jù)庫信息和訪問的集 中式地點(diǎn)。通過將這些服務(wù)收集到集中式庫中并將這些服務(wù)實(shí)現(xiàn)為API,數(shù)據(jù)訪問可以聚集 在單個(gè)位置而不是遍及整個(gè)ERP,由此降低改變的成本和不方便之處。添加將來一代語言或 框架也可通過集中式庫的存在,按經(jīng)濟(jì)的方式解決。另外,用于數(shù)據(jù)訪問的現(xiàn)有客戶機(jī)接口 能夠由業(yè)務(wù)編程庫以最小的改變來服務(wù)并且可保護(hù)其投入。 業(yè)務(wù)編程庫在其中操作的企業(yè)資源系統(tǒng)可具有供客戶機(jī)(最終用戶或開發(fā)者)訪 問ERP系統(tǒng)的因特網(wǎng)接口、像為請(qǐng)求服務(wù)的中樞那樣工作的服務(wù)層、元數(shù)據(jù)提供者、可以是 或可以不是關(guān)系型的數(shù)據(jù)庫、以及可能已由客戶開發(fā)者創(chuàng)建以便為其公司定制應(yīng)用程序的 業(yè)務(wù)應(yīng)用程序?qū)ο?。這些組件可以在或可以不在同一計(jì)算機(jī)或服務(wù)器上。服務(wù)層、元數(shù)據(jù) 提供者和業(yè)務(wù)應(yīng)用程序?qū)ο罂梢允菢I(yè)務(wù)編程庫的顧客(patron),但其他組件也可經(jīng)由類似 接口光顧(patronize)該庫。 業(yè)務(wù)編程庫的體系結(jié)構(gòu)可以對(duì)應(yīng)于庫服務(wù)的類型來對(duì)API進(jìn)行分組。庫的顧客可 調(diào)用對(duì)應(yīng)于執(zhí)行其任務(wù)所需的必要的庫服務(wù)的API。業(yè)務(wù)邏輯調(diào)用服務(wù)可包括對(duì)ERP的類 進(jìn)行操作的業(yè)務(wù)方法,這些類諸如但不限于,基類、表類、代碼單元類和其他已利用的類。數(shù) 據(jù)庫訪問服務(wù)可包括讀取、修改、插入和刪除。數(shù)據(jù)庫管理服務(wù)可包含各種功能,諸如但不 限于,服務(wù)器配置、數(shù)據(jù)庫備份、數(shù)據(jù)庫還原、數(shù)據(jù)庫測試和數(shù)據(jù)庫優(yōu)化。元數(shù)據(jù)展示功能可 以向ERP展示表、表單和其他元數(shù)據(jù)。并且,諸如但不限于布爾值、整數(shù)、日期、GUID、字符串 等常見數(shù)據(jù)類型可經(jīng)由業(yè)務(wù)編程庫來訪問。還可使得該庫能夠?yàn)楣芾韱T、ERP組件或某一
8其他進(jìn)程提供用于添加、刪除和修改庫組及其內(nèi)容的接口 。 業(yè)務(wù)編程庫能夠?qū)RP的數(shù)據(jù)庫進(jìn)行多線程訪問。該庫的API對(duì)其操作的數(shù)據(jù)庫 的資源或?qū)ο罂捎稍搸旎谒鼈儗?duì)于整個(gè)連接生存期是否必需來管理。該庫可允許不止一 個(gè)線程以非順序方式調(diào)用API和訪問資源。 業(yè)務(wù)編程庫還可提供安全許可檢查層。安全許可可基于許可協(xié)定和顧客定義的許 可來建立??梢栽趲斓念櫩停ǔJ堑幌抻诜?wù)層或業(yè)務(wù)應(yīng)用程序?qū)ο螅{(diào)用API時(shí)執(zhí)行 間接和可執(zhí)行許可檢查。在服務(wù)層處結(jié)合完整安全檢查進(jìn)行安全許可檢查可集中ERP系統(tǒng) 服務(wù)器側(cè)的安全檢查,并因此提高安全強(qiáng)度。
附圖
圖1示出了可根據(jù)各權(quán)利要求來操作的示例性計(jì)算系統(tǒng)的框圖;
圖2示出了示例性企業(yè)資源計(jì)劃系統(tǒng)以及業(yè)務(wù)編程庫如何適合該系統(tǒng);
圖3示出了用于啟用業(yè)務(wù)編程庫的過程的實(shí)施例;
圖4示出了用于提供對(duì)業(yè)務(wù)編程庫的多線程訪問的方法的實(shí)施例;
圖5示出了檢查業(yè)務(wù)編程庫中的間接安全許可的示例性方法;以及
圖6示出了用于檢查業(yè)務(wù)編程庫中的可執(zhí)行許可的方法的實(shí)施例。
描述 盡管以下正文闡明眾多不同實(shí)施例的詳細(xì)描述,但是應(yīng)當(dāng)理解,該描述的法律范 圍由本發(fā)明所附的權(quán)利要求書的言辭來限定。該詳細(xì)描述應(yīng)被解釋為僅是示例性的,且不 描述每一可能的實(shí)施例,因?yàn)槊枋雒恳豢赡艿膶?shí)施例即使不是不可能的也是不切實(shí)際的。 可使用現(xiàn)有技術(shù)或在本申請(qǐng)?zhí)峤蝗罩箝_發(fā)的技術(shù)來實(shí)現(xiàn)眾多替換實(shí)施例,而這仍落入權(quán) 利要求書的范圍之內(nèi)。 還應(yīng)該理解,在本專利中,除非使用句子"如此處所用,術(shù)語'_'特此被定義
為意指……"或者類似句子來明確地定義一個(gè)術(shù)語,否則不管是明確地還是含蓄地,都沒有 限制該術(shù)語意義超出其平?;蚱胀ㄒ饬x的意圖,并且,這一術(shù)語不應(yīng)該被解釋為被限制在 基于本專利的任何部分中(除了權(quán)利要求書的語言之外)所做的任何陳述的范圍中。就本 專利所附的權(quán)利要求書中所述的任何術(shù)語在本專利中以與單數(shù)意義相一致的方式來引用 而言,這是為簡明起見而如此做的,僅僅是為了不使讀者感到混淆,且這類權(quán)利要求術(shù)語并 不旨在隱含地或以其它方式限于該單數(shù)意義。最后,除非一權(quán)利要求要素是通過敘述單詞 "裝置"和功能而沒有敘述任何結(jié)構(gòu)來定義的,否則任何權(quán)利要求要素的范圍并不旨在基于 35U. S. C. § 12第6段的應(yīng)用來解釋。 參考圖l,用于實(shí)現(xiàn)所要求保護(hù)的方法和裝置的示例性系統(tǒng)包括計(jì)算機(jī)110形式 的通用計(jì)算設(shè)備。虛線輪廓中所示出的組件在技術(shù)上不是計(jì)算機(jī)110的一部分,而是用于 示出圖1的示例性實(shí)施例。計(jì)算機(jī)110的組件可包括但不限于,處理器120、系統(tǒng)存儲(chǔ)器 130、存儲(chǔ)器/圖形接口 121(也被稱為北橋芯片)以及I/0接口 122(也被稱為南橋芯片)。 系統(tǒng)存儲(chǔ)器130和圖形處理器190可以耦合到存儲(chǔ)器/圖形接口 121。監(jiān)視器1191或其他 圖形輸出設(shè)備可以耦合到圖形處理器190。 —系列系統(tǒng)總線可以耦合各種系統(tǒng)組件,這些系統(tǒng)總線包括處理器120、存儲(chǔ)器 /圖形接口 121和1/0接口 122之間的高速系統(tǒng)總線123,存儲(chǔ)器/圖形接口 121和系統(tǒng) 存儲(chǔ)器130之間的前端總線124,以及存儲(chǔ)器/圖形接口 121和圖形處理器190之間的高級(jí)圖形處理(AGP)總線125。系統(tǒng)總線123可以是若干種類型的總線結(jié)構(gòu)中的任一種,包 括,作為示例而非限制,這些體系結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線、微通道體系結(jié)構(gòu) (MCA)總線和增強(qiáng)型ISA (EISA)總線。隨著系統(tǒng)體系結(jié)構(gòu)的進(jìn)化,可以使用其他總線體系結(jié) 構(gòu)和芯片組,但通常大致遵循該模式。例如,諸如英特爾和AMD等公司分別支持IntelHub Architecture (英特爾中樞體系結(jié)構(gòu),IHA)和Hypertransport (超傳輸)體系結(jié)構(gòu)。
計(jì)算機(jī)110通常包括各種計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是能由計(jì)算機(jī) 110訪問的任何可用介質(zhì),而且包含易失性和非易失性介質(zhì)、可移動(dòng)和不可移動(dòng)介質(zhì)。作 為示例而非限制,計(jì)算機(jī)可讀介質(zhì)可包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包 括以用于存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的任何方法或 技術(shù)實(shí)現(xiàn)的易失性和非易失性、可移動(dòng)和不可移動(dòng)介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括,但不限于, RAM、 R0M、 EEPROM、閃存或其它存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其它光盤存儲(chǔ)、 磁帶盒、磁帶、磁盤存儲(chǔ)或其它磁存儲(chǔ)設(shè)備、或能用于存儲(chǔ)所需信息且可以由計(jì)算機(jī)110訪 問的任何其它介質(zhì)。通信介質(zhì)通常以諸如載波或其它傳輸機(jī)制等已調(diào)制數(shù)據(jù)信號(hào)來體現(xiàn)計(jì) 算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并包括任意信息傳送介質(zhì)。術(shù)語"已調(diào)制 數(shù)據(jù)信號(hào)"指的是其一個(gè)或多個(gè)特征以在信號(hào)中編碼信息的方式被設(shè)定或更改的信號(hào)。作 為示例而非限制,通信介質(zhì)包括有線介質(zhì),諸如有線網(wǎng)絡(luò)或直接線連接,以及無線介質(zhì),諸 如聲學(xué)、RF、紅外線和其它無線介質(zhì)。上述中任一組合也應(yīng)包括在計(jì)算機(jī)可讀介質(zhì)的范圍之 內(nèi)。 系統(tǒng)存儲(chǔ)器130包括易失性和/或非易失性存儲(chǔ)器形式的計(jì)算機(jī)存儲(chǔ)介質(zhì),如只 讀存儲(chǔ)器(R0M)131和隨機(jī)存取存儲(chǔ)器(RAM) 132。系統(tǒng)ROM 131可包含永久系統(tǒng)數(shù)據(jù)143, 諸如標(biāo)識(shí)和制造信息。在某些實(shí)施例中,基本輸入/輸出系統(tǒng)(BIOS)也可存儲(chǔ)在系統(tǒng)ROM 131中。RAM 132通常包含處理器120可以立即訪問和/或目前正在其上操作的數(shù)據(jù)和/或 程序模塊。作為示例而非限制,圖1示出了操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136 和程序數(shù)據(jù)137。 I/O接口 122可將系統(tǒng)總線123與將各種內(nèi)部和外部設(shè)備耦合到計(jì)算機(jī)110的多 個(gè)其他總線126、127和128耦合。串行外圍接口 (SPI)總線126可連接到基本輸入/輸出 系統(tǒng)(BIOS)存儲(chǔ)器133,該BI0S包含幫助在諸如啟動(dòng)期間在計(jì)算機(jī)110內(nèi)的元件之間傳遞 信息的基本例程。 超級(jí)輸入/輸出芯片160可用于連接到多個(gè)'傳統(tǒng)'外圍設(shè)備,諸如例如,軟盤152、 鍵盤/鼠標(biāo)162和打印機(jī)196。在某些實(shí)施例中,超級(jí)I/0芯片122可以用連接到低引腳數(shù) (LPC)總線來連接到1/0接口 121。超級(jí)1/0芯片121在商業(yè)市場廣泛地可購買到。
在一個(gè)實(shí)施例中,總線128可以是外圍部件互連(PCI)總線或其變型,可用于將更 高速的外圍設(shè)備連接到1/0接口 122。 PCI總線可被稱為夾層(Mezzanine)總線。PCI總 線的變型包括快速外圍部件互連(PCI-E)和擴(kuò)展外圍部件互連(PCI-X)總線,前者具有串 行接口而后者是向后兼容并行接口。在其他實(shí)施例中,總線128可以是串行高級(jí)技術(shù)附件 (ATA)總線(SATA)或并行ATA(PATA)形式的ATA總線。 計(jì)算機(jī)110也可以包括其它可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介 質(zhì)。僅作為示例,圖1示出了對(duì)不可移動(dòng)、非易失性磁介質(zhì)進(jìn)行讀寫的硬盤驅(qū)動(dòng)器140???移動(dòng)介質(zhì),諸如通用串行總線(USB)存儲(chǔ)器152或CD/DVD驅(qū)動(dòng)器156可直接或通過接口150連接到PCI總線128??梢栽谠撌纠圆僮鳝h(huán)境中使用的其它可移動(dòng)/不可移動(dòng)、易失 性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于,磁帶盒、閃存卡、數(shù)字多功能盤、數(shù)字錄像帶、 固態(tài)RAM、固態(tài)ROM等等。 以上描述和在圖1中示出的驅(qū)動(dòng)器及其相關(guān)聯(lián)的計(jì)算機(jī)存儲(chǔ)介質(zhì)為計(jì)算機(jī)IIO提 供對(duì)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲(chǔ)。例如,在圖1中,硬盤驅(qū)動(dòng)器 140被示為儲(chǔ)存操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146和程序數(shù)據(jù)147。注意,這 些組件可以與操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù)137相同,也可以 與它們不同。操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146和程序數(shù)據(jù)147在這里被標(biāo) 注了不同的標(biāo)號(hào)是為了說明至少它們是不同的副本。用戶可通過諸如鼠標(biāo)/鍵盤162等輸 入設(shè)備或其他輸入設(shè)備組合來將命令和信息輸入計(jì)算機(jī)20。其它輸入設(shè)備(未示出)可以 包括話筒、操縱桿、游戲手柄、圓盤式衛(wèi)星天線、掃描儀等。這些和其他輸入設(shè)備通常通過諸 如SPI 126、 LPC 127或PCI 128等1/0接口總線中的一個(gè)來連接到處理單元120,但可以 使用其他總線。在某些實(shí)施例中,其他設(shè)備可經(jīng)由超級(jí)I/0芯片160耦合到并行端口、紅外 接口、游戲端口以及諸如此類(未描繪)。 計(jì)算機(jī)IIO可使用經(jīng)由網(wǎng)絡(luò)接口控制器(NIC) 170的至一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī),如 遠(yuǎn)程計(jì)算機(jī)180的邏輯連接來在聯(lián)網(wǎng)環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)180可以是個(gè)人計(jì)算機(jī)、服 務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其它常見的網(wǎng)絡(luò)節(jié)點(diǎn),并且一般包括上面相對(duì)于計(jì)算機(jī) IIO所述的許多或全部元件。圖1所描繪的NIC 170和遠(yuǎn)程計(jì)算機(jī)180之間的邏輯連接可 包括局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)或兩者,但還可包括其他網(wǎng)絡(luò)。這樣的聯(lián)網(wǎng)環(huán)境常見于辦 公室、企業(yè)范圍計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中。 在某些實(shí)施例中,網(wǎng)絡(luò)接口可以在寬帶連接不可用或未使用寬帶連接時(shí)使用調(diào)制 解調(diào)器(未描繪)??梢岳斫?,所示的網(wǎng)絡(luò)連接是示例性的,且可以使用在計(jì)算機(jī)之間建立 通信鏈路的其它手段。 圖2示出了其中可存在業(yè)務(wù)編程庫203的示例性企業(yè)資源計(jì)劃系統(tǒng)環(huán)境200。 企業(yè)資源計(jì)劃系統(tǒng)(ERP)環(huán)境200可包括用于主存ERP的web服務(wù)的因特網(wǎng)信息服務(wù)器 (IIS) 205。 IIS(205)可用作ERP服務(wù)對(duì)一個(gè)或多個(gè)客戶機(jī)208的接口??蛻魴C(jī)208可以是 ERP系統(tǒng)200的最終用戶或者它們可以是使用ERP系統(tǒng)200平臺(tái)來創(chuàng)建自定義業(yè)務(wù)應(yīng)用程 序?qū)ο?10的開發(fā)者。業(yè)務(wù)應(yīng)用程序?qū)ο?10可包括托管、非托管代碼或其任意組合。ERP 服務(wù)可由服務(wù)層215來協(xié)調(diào)和管理,該服務(wù)層可以像經(jīng)由IIS 205為來自客戶機(jī)208的請(qǐng) 求服務(wù)的中樞那樣工作。服務(wù)代理程序218可以是可允許客戶開發(fā)者208經(jīng)由IIS205使 用ERP開發(fā)環(huán)境來構(gòu)建和定制web服務(wù)的實(shí)體。業(yè)務(wù)應(yīng)用程序?qū)ο?10還可以直接與服務(wù) 代理程序218接口以便進(jìn)行定制。元數(shù)據(jù)提供者220可負(fù)責(zé)提供服務(wù)層215和服務(wù)代理程 序218所需的元數(shù)據(jù),諸如但不限于,表單、表單個(gè)性化和表。服務(wù)層215、元數(shù)據(jù)提供者220 和業(yè)務(wù)應(yīng)用程序?qū)ο?10可具有到業(yè)務(wù)編程庫203的直接接口。盡管未在圖2中示出,但 ERP 200中可存在企業(yè)資源計(jì)劃系統(tǒng)環(huán)境200的其他組件,并且這些組件也可具有到業(yè)務(wù) 編程庫203的接口。 該業(yè)務(wù)編程庫203可提供供ERP編譯器發(fā)出所需運(yùn)行時(shí)代碼的運(yùn)行時(shí)環(huán)境。庫 203可以不包含用于ERP的實(shí)際數(shù)據(jù)(例如,表、表單、方法等),但可包含供顧客用來訪問 這些數(shù)據(jù)的、對(duì)應(yīng)于一組庫服務(wù)的一組應(yīng)用程序接口 (API)223、225、228、230、233。這些數(shù)據(jù)本身可存儲(chǔ)在可以是或可以不是關(guān)系型的一個(gè)或多個(gè)ERP數(shù)據(jù)庫235中。庫的顧客210、 215、218可調(diào)用必需的庫服務(wù)的API 223、225、228、230、233來為客戶機(jī)請(qǐng)求服務(wù)。
之后是對(duì)企業(yè)資源計(jì)劃系統(tǒng)200中的概念的討論以幫助提供業(yè)務(wù)編程庫203的上 下文。可以從客戶機(jī)208經(jīng)由IIS 205進(jìn)行新連接以便執(zhí)行系統(tǒng)200中的一系列操作。服 務(wù)層215可為該IIS會(huì)話創(chuàng)建連接對(duì)象并且可向其分配一線程。在任何時(shí)刻,可能存在有 且只有一個(gè)與連接相關(guān)聯(lián)的線程。在連接生存期中,可調(diào)用各種應(yīng)用程序?qū)ο髞韴?zhí)行任務(wù)。 應(yīng)用程序?qū)ο罂捎傻谌介_發(fā)者210來創(chuàng)建或者應(yīng)用程序?qū)ο罂梢允欠?wù)層215的一部 分。在使用時(shí),應(yīng)用程序?qū)ο罂梢躁P(guān)聯(lián)到連接、線程和安全數(shù)據(jù)。為了執(zhí)行其任務(wù),應(yīng)用程 序?qū)ο罂赏ㄟ^調(diào)用元數(shù)據(jù)提供者220以及任何必需的API 223、225、228、230、233來光顧庫 203以創(chuàng)建、刪除或修改表單、表、記錄以及數(shù)據(jù)庫235的其他這樣的資源。
由此,庫203可用作用于訪問數(shù)據(jù)類型和業(yè)務(wù)邏輯方法函數(shù)的運(yùn)行時(shí)類庫API。庫 203可以是公開的或者可以不是公開的。業(yè)務(wù)邏輯庫服務(wù)API集合223可包含用于關(guān)于ERP 類的一個(gè)或多個(gè)業(yè)務(wù)方法的API,其中類可以是表類、代碼單元類或基類。其他類也是可能 的。該組業(yè)務(wù)方法可由業(yè)務(wù)邏輯庫服務(wù)API223支持。同樣,常見類型集合225可經(jīng)由業(yè)務(wù) 編程庫203訪問。可能的業(yè)務(wù)方法和常見類型的窮舉列表通常是熟悉ERP系統(tǒng)領(lǐng)域的人所 已知的,并且并非被本專利申請(qǐng)涵蓋。 對(duì)應(yīng)于庫203中的數(shù)據(jù)庫訪問庫服務(wù)的API集合228可包含用于諸如但不限于檢 索、修改、插入和刪除的一個(gè)或多個(gè)數(shù)據(jù)庫功能的API。對(duì)應(yīng)于數(shù)據(jù)庫管理的API集合230可 包含用于諸如但不限于服務(wù)器配置、備份、還原、測試和優(yōu)化的一個(gè)或多個(gè)管理功能的API。 對(duì)應(yīng)于元數(shù)據(jù)展示庫服務(wù)的API集合233可提供供庫顧客獲取在為客戶機(jī)請(qǐng)求服務(wù)時(shí)使用 的表、表單和其他元數(shù)據(jù)的API。 業(yè)務(wù)編程庫203還可提供對(duì)庫203的多線程訪問控制238。線程可由ERP200分配 和管理以便在執(zhí)行完成客戶機(jī)請(qǐng)求所需的(可能的)多個(gè)步驟時(shí)跟蹤該請(qǐng)求。庫203的線 程控制238可允許多個(gè)線程以非順序方式訪問庫服務(wù)的API (并由此訪問數(shù)據(jù)庫235)。多 線程訪問控制238的細(xì)節(jié)在稍后的一個(gè)章節(jié)中更全面地描述。 安全檢查240也可由業(yè)務(wù)編程庫203來執(zhí)行,具體而言是間接和可執(zhí)行許可檢查。 安全許可,無論是間接的還是可執(zhí)行的,都可基于許可協(xié)定和顧客定義的許可來建立。在顧 客210、215、220調(diào)用庫服務(wù)的API 223、225、228、230、233時(shí),可驗(yàn)證與API的調(diào)用者和/ 或服務(wù)的數(shù)據(jù)庫對(duì)象相關(guān)聯(lián)的間接和可執(zhí)行許可以確定是否允許訪問數(shù)據(jù)庫。安全檢查方 法240在稍后的一個(gè)章節(jié)中更全面地描述。 圖2的示例性ERP系統(tǒng)200的每一個(gè)組件都可駐留在可采取計(jì)算機(jī)110的形式的 計(jì)算機(jī)或服務(wù)器上。多個(gè)組件可駐留在單個(gè)計(jì)算機(jī)或服務(wù)器上,一些組件可駐留在一個(gè)服 務(wù)器上,一些組件可駐留在另一服務(wù)器上,或者其他組合是可能的。 一個(gè)組件(例如數(shù)據(jù)庫 235)的多個(gè)實(shí)例是可能的。 圖3示出了啟用諸如圖2的庫203的業(yè)務(wù)編程庫以供諸如圖2的ERP系統(tǒng)200的 企業(yè)資源計(jì)劃系統(tǒng)使用的示例性方法300。在起始點(diǎn)302,庫為ERP系統(tǒng)提供運(yùn)行時(shí)環(huán)境 305。該庫還可經(jīng)由其體系結(jié)構(gòu)來為將來各代ERP系統(tǒng)提供運(yùn)行時(shí)環(huán)境。該結(jié)構(gòu)可提供308 庫服務(wù)的應(yīng)用程序接口 310以供庫的顧客使用。這些API可以對(duì)諸如但不限于表單、表、記 錄和數(shù)據(jù)庫中的其他數(shù)據(jù)等資源進(jìn)行操作??蓪⑦@些API分組到各個(gè)類別中,包括但不限于,業(yè)務(wù)邏輯調(diào)用功能312、數(shù)據(jù)庫訪問功能315、數(shù)據(jù)庫管理功能318、元數(shù)據(jù)展示320和常 見數(shù)據(jù)類型322。其他類別也是可能的。到API庫310的接口 325可出于庫管理的目的而 提供,以使得可對(duì)API的類別和類別的內(nèi)容進(jìn)行添加、刪除或修改。該接口可由管理員、ERP 的另一組件、另一進(jìn)程或某一其他實(shí)體訪問。方法300還可提供對(duì)庫服務(wù)310的多線程訪 問328和安全許可檢查330,并且然后該方法可結(jié)束333。 圖4示出了用于提供對(duì)諸如圖200的庫203的業(yè)務(wù)編程庫的多線程訪問的方法 400。在起始點(diǎn)402,可將數(shù)據(jù)庫的資源分類成跨連接的405,即能夠由多個(gè)實(shí)況連接使用, 或者按連接的,即能夠由單個(gè)連接在該連接的生存期內(nèi)使用。如果資源被分類成跨連接的 并且連接需要資源的私有副本408,則可以在創(chuàng)建該連接時(shí)打開私有副本410,并且然后該 方法可結(jié)束412。否則,在業(yè)務(wù)編程庫的環(huán)境(environ)中,當(dāng)?shù)谝痪€程調(diào)用API來對(duì)一資 源進(jìn)行操作415時(shí),可獲取連接對(duì)象418,并且可創(chuàng)建對(duì)該資源的引用422。該引用可以在 線程的整個(gè)生存期內(nèi)使用以使得能夠快速訪問所需資源。如果資源被分類成跨連接的425, 則在API執(zhí)行的持續(xù)時(shí)間內(nèi)鎖定資源并且在API完成時(shí)解除鎖定428。如果資源被分類成 按連接的425并且如果資源是在按服務(wù)調(diào)用的基礎(chǔ)上使用的,則可將資源表示為基于棧的 數(shù)據(jù)433。否則,可將按連接的、不按服務(wù)調(diào)用的資源作為連接對(duì)象的子對(duì)象來存儲(chǔ)435,并 且該方法可結(jié)束412。 圖5示出了用于由業(yè)務(wù)編程庫來檢查間接安全許可的方法500。在起始點(diǎn)502,可 在運(yùn)行時(shí)建立508對(duì)應(yīng)用程序?qū)ο蟮拈g接許可505。間接許可可基于許可協(xié)定、顧客定義的 許可、其他源或其某一組合。可創(chuàng)建512對(duì)應(yīng)于應(yīng)用程序?qū)ο?10的所述應(yīng)用程序?qū)ο笤S可 505的應(yīng)用程序?qū)ο缶浔?。類似地,?duì)于通常但不一定是表的資源,可在運(yùn)行時(shí)建立518間 接許可515并且可創(chuàng)建520對(duì)應(yīng)于所述資源許可的資源句柄。當(dāng)?shù)诙€程調(diào)用API來對(duì)一 資源進(jìn)行操作522時(shí),可獲取相關(guān)聯(lián)的連接對(duì)象525。如果應(yīng)用程序句柄所指示的許可528 和資源句柄所指示的許可530兩者都表示允許,則可允許API繼續(xù)其對(duì)資源的操作533。如 果句柄所指示的許可528、530中的一個(gè)或兩者表示拒絕,則可以不允許API對(duì)資源進(jìn)行操 作535并且該方法可結(jié)束537。 圖6示出了用于由業(yè)務(wù)編程庫來檢查可執(zhí)行安全許可的示例性方法600。在起始 點(diǎn)602,可在運(yùn)行時(shí)建立608對(duì)應(yīng)用程序?qū)ο蟮目蓤?zhí)行許可605??蓤?zhí)行許可可基于許可協(xié) 定、顧客定義的許可、其他源或其某一組合??蓜?chuàng)建612對(duì)應(yīng)于應(yīng)用程序?qū)ο?10的所述應(yīng) 用程序?qū)ο笤S可605的應(yīng)用程序句柄。當(dāng)?shù)谌€程調(diào)用API來對(duì)一資源進(jìn)行操作615時(shí), 可獲取618相關(guān)聯(lián)的連接對(duì)象。如果應(yīng)用程序句柄所指示的許可620表示允許,則可允許 API操作623。否則,可禁止該API 625。該示例性方法600然后可結(jié)束628。
盡管以上正文陳述了眾多不同實(shí)施例的詳細(xì)描述,但是應(yīng)當(dāng)理解,本專利的法律 范圍由本專利所附的權(quán)利要求書的言辭來限定。該詳細(xì)描述應(yīng)被解釋為僅是示例性的, 且不描述每一可能的實(shí)施例,因?yàn)槊枋雒恳豢赡艿膶?shí)施例即使不是不可能的也是不切實(shí)際 的??墒褂矛F(xiàn)有技術(shù)或在本申請(qǐng)?zhí)峤蝗罩箝_發(fā)的技術(shù)來實(shí)現(xiàn)眾多替換實(shí)施例,而這仍落 入權(quán)利要求書的范圍之內(nèi)。 由此,可在此處所描述和示出的技術(shù)和結(jié)構(gòu)上作出許多修改和變化而不脫離本權(quán) 利要求的精神和范圍。因此,應(yīng)當(dāng)理解,此處所描述的方法和裝置僅是說明性的,且不限制 本權(quán)利要求的范圍。
1權(quán)利要求
一種使得業(yè)務(wù)編程庫203能夠供企業(yè)資源計(jì)劃系統(tǒng)200使用的方法300,所述企業(yè)資源計(jì)劃系統(tǒng)200包括業(yè)務(wù)應(yīng)用程序、元數(shù)據(jù)提供者220、服務(wù)層215、數(shù)據(jù)庫235和客戶機(jī)208,所述方法300包括a)提供305支持所述企業(yè)資源計(jì)劃系統(tǒng)200的運(yùn)行時(shí)環(huán)境;b)提供308庫服務(wù)的運(yùn)行時(shí)應(yīng)用程序接口(API)310,包括提供一組業(yè)務(wù)邏輯調(diào)用API 223 312,包括提供對(duì)應(yīng)于關(guān)于所述企業(yè)資源計(jì)劃系統(tǒng)200的類的至少一個(gè)業(yè)務(wù)方法的至少一個(gè)API,所述類包括包含基類、表類和代碼單元類的組中的一個(gè);提供一組數(shù)據(jù)庫訪問API 228 315,包括提供對(duì)應(yīng)于包含數(shù)據(jù)庫檢索、數(shù)據(jù)庫修改、記錄插入和記錄刪除的組中的至少一個(gè)的至少一個(gè)API;提供一組數(shù)據(jù)庫管理功能230 318,包括提供對(duì)應(yīng)于包含數(shù)據(jù)庫服務(wù)器配置、數(shù)據(jù)庫備份、數(shù)據(jù)庫還原、數(shù)據(jù)庫測試和數(shù)據(jù)庫優(yōu)化的組中的至少一個(gè)的至少一個(gè)API;提供一組元數(shù)據(jù)展示功能233 320,包括提供對(duì)應(yīng)于包含提供表元數(shù)據(jù)和提供表單元數(shù)據(jù)的組中的至少一個(gè)的至少一個(gè)API;以及提供一組常見數(shù)據(jù)類型225 322,包括對(duì)應(yīng)于所述一組常見數(shù)據(jù)類型中的至少一個(gè)成員的至少一個(gè)API;c)為對(duì)應(yīng)于以下各項(xiàng)中的至少一個(gè)的業(yè)務(wù)應(yīng)用程序?qū)ο?10提供對(duì)所述業(yè)務(wù)編程庫203的多線程訪問238 328所述業(yè)務(wù)應(yīng)用程序、所述服務(wù)層215和所述元數(shù)據(jù)提供者220;以及d)提供對(duì)所述業(yè)務(wù)應(yīng)用程序?qū)ο?10和所述服務(wù)層215的安全許可檢查240 330,包括在所述業(yè)務(wù)應(yīng)用程序?qū)ο?10或所述服務(wù)層215調(diào)用所述運(yùn)行時(shí)API 310的情況下提供安全許可檢查。
2. 如權(quán)利要求1所述的方法,其特征在于,所述服務(wù)層215包括所述企業(yè)資源計(jì)劃系統(tǒng) 200的web服務(wù)中樞并且所述數(shù)據(jù)庫235包括關(guān)系型數(shù)據(jù)庫。
3. 如權(quán)利要求1所述的方法,其特征在于,還包括啟用用于添加、刪除和修改一個(gè)或多 個(gè)庫服務(wù)及其相應(yīng)的運(yùn)行時(shí)API 310的接口 。
4. 如權(quán)利要求1所述的方法,其特征在于,提供多線程訪問328包括提供以非順序方式 對(duì)一個(gè)或多個(gè)庫服務(wù)的一個(gè)或多個(gè)運(yùn)行時(shí)API 310的一個(gè)或多個(gè)線程訪問。
5. 如權(quán)利要求1所述的方法,其特征在于,提供安全許可檢查330還包括建立對(duì)應(yīng)于包 含許可證許可和顧客定義的許可的組中的至少一個(gè)的安全許可。
6. 如權(quán)利要求1所述的方法,其特征在于,提供多線程訪問328包括將所述數(shù)據(jù)庫235 的資源分配給第一線程,包括400 :將所述資源分類成跨連接和按連接中的一個(gè)405,如果所述資源被分類成跨連接的405并且第一客戶機(jī)208的連接需要所述資源的私有 副本408,則在創(chuàng)建所述連接時(shí)創(chuàng)建所述私有副本410,以及如果第一線程調(diào)用第一所請(qǐng)求的庫服務(wù)的第一運(yùn)行時(shí)API 310來對(duì)所述資源進(jìn)行操作415,則獲取連接對(duì)象418,包括所述第一線程、所述第一客戶機(jī)208和所述第一客戶機(jī)208的 連接之間的關(guān)聯(lián);創(chuàng)建所請(qǐng)求的引用422,包括所述資源、所述連接對(duì)象和所述第一線程之間的關(guān)聯(lián); 如果所述資源被分類成跨連接的425,則在所述第一運(yùn)行時(shí)API 310對(duì)所述資源進(jìn)行操作時(shí)鎖定所述資源428,并且在所述第一運(yùn)行時(shí)API 310完成操作時(shí)解除對(duì)所述資源的鎖定428 ;以及如果所述資源被分類成按連接的425,則從包含以下動(dòng)作的組中選擇一個(gè)動(dòng)作1)將 所述資源作為所述連接對(duì)象的子對(duì)象來存儲(chǔ)435,以及2)如果所述資源是按服務(wù)調(diào)用的 430,則將所述對(duì)象表示為基于棧的數(shù)據(jù)433。
7. 如權(quán)利要求1所述的方法,其特征在于,提供安全許可檢查330包括500 : 在運(yùn)行時(shí)建立對(duì)所述數(shù)據(jù)庫235的資源的間接許可518,包括創(chuàng)建資源句柄520,所述資源句柄包括第一組間接許可數(shù)據(jù);在運(yùn)行時(shí)建立對(duì)對(duì)應(yīng)于第二業(yè)務(wù)應(yīng)用程序的應(yīng)用程序?qū)ο?10 510的間接許可508, 包括創(chuàng)建應(yīng)用程序?qū)ο缶浔?12,所述應(yīng)用程序?qū)ο缶浔ǖ诙M間接許可數(shù)據(jù);獲取連接對(duì)象525,包括第二線程、第二客戶機(jī)208和所述第二客戶機(jī)208的連接之間 的關(guān)聯(lián);以及如果所述第二線程和所述第二客戶機(jī)208的連接對(duì)應(yīng)于所述第二業(yè)務(wù)應(yīng)用程序,則 獲取所述應(yīng)用程序?qū)ο?10 510,并且如果所述第二線程調(diào)用第二所請(qǐng)求的庫服務(wù)的第二運(yùn)行時(shí)API 310來訪問所述資源 522,則在所述應(yīng)用程序?qū)ο缶浔?28和所述資源句柄530兩者都指示允許訪問的情況下授 予間接許可533。
8. 如權(quán)利要求1所述的方法,其特征在于,提供安全許可檢查330包括600 : 在運(yùn)行時(shí)建立對(duì)對(duì)應(yīng)于第三業(yè)務(wù)應(yīng)用程序的應(yīng)用程序?qū)ο?10 610的可執(zhí)行許可608,包括創(chuàng)建應(yīng)用程序?qū)ο缶浔?12,所述應(yīng)用程序?qū)ο缶浔ǖ谌M間接許可數(shù)據(jù); 獲取連接對(duì)象618,包括第三線程、第三客戶機(jī)208和所述第三客戶機(jī)208的連接之間的關(guān) 聯(lián);以及如果所述第三線程和所述第三客戶機(jī)208的連接對(duì)應(yīng)于所述第三業(yè)務(wù)應(yīng)用程序并且 如果所述第三線程調(diào)用第三所請(qǐng)求的庫服務(wù)的第三運(yùn)行時(shí)API 310 615,則在所述應(yīng)用程 序?qū)ο缶浔甘驹试S訪問620的情況下授予可執(zhí)行許可623。
9. 一種使得業(yè)務(wù)編程庫203能夠供企業(yè)資源計(jì)劃系統(tǒng)200使用的方法300,所述企業(yè) 資源計(jì)劃系統(tǒng)200包括業(yè)務(wù)應(yīng)用程序, 元數(shù)據(jù)提供者220,服務(wù)層215,包括所述企業(yè)資源計(jì)劃系統(tǒng)200的web服務(wù)中樞, 數(shù)據(jù)庫235,包括關(guān)系型數(shù)據(jù)庫,以及 客戶機(jī)208 ; 所述方法300包括a) 提供305支持所述企業(yè)資源計(jì)劃系統(tǒng)200的運(yùn)行時(shí)環(huán)境,b) 提供308庫服務(wù)的運(yùn)行時(shí)應(yīng)用程序接口 (API) 310,包括提供一組業(yè)務(wù)邏輯調(diào)用API 223 312,包括提供對(duì)應(yīng)于關(guān)于所述企業(yè)資源計(jì)劃系統(tǒng) 200的類的至少一個(gè)業(yè)務(wù)方法的至少一個(gè)API,所述類包括包含基類、表類和代碼單元類的組中的一個(gè);提供一組數(shù)據(jù)庫訪問API 228 315,包括提供對(duì)應(yīng)于包含數(shù)據(jù)庫檢索、數(shù)據(jù)庫修改、記 錄插入和記錄刪除的組中的一個(gè)的至少一個(gè)API ;提供一組數(shù)據(jù)庫管理功能230 318,包括提供對(duì)應(yīng)于包含數(shù)據(jù)庫服務(wù)器配置、數(shù)據(jù)庫備 份、數(shù)據(jù)庫還原、數(shù)據(jù)庫測試和數(shù)據(jù)庫優(yōu)化的組中的至少一個(gè)的至少一個(gè)API ;提供一組元數(shù)據(jù)展示功能233 320,包括提供對(duì)應(yīng)于包含提供表元數(shù)據(jù)和提供表單元 數(shù)據(jù)的組中的至少一個(gè)的至少一個(gè)API ;以及提供一組常見數(shù)據(jù)類型225 322,包括對(duì)應(yīng)于所述一組常見數(shù)據(jù)類型中的至少一個(gè)成 員的至少一個(gè)API ;c) 為對(duì)應(yīng)于以下各項(xiàng)中的至少一個(gè)的業(yè)務(wù)應(yīng)用程序?qū)ο?10提供對(duì)所述業(yè)務(wù)編程庫 203的多線程訪問238 328 :所述業(yè)務(wù)應(yīng)用程序、所述服務(wù)層215和所述元數(shù)據(jù)提供者220, 以及d) 提供對(duì)所述業(yè)務(wù)應(yīng)用程序?qū)ο?10和所述服務(wù)層215的安全許可檢查240 330,包 括在所述業(yè)務(wù)應(yīng)用程序?qū)ο?10或所述服務(wù)層215調(diào)用所述運(yùn)行時(shí)API 310的情況下提供 安全許可檢查。
10. 如權(quán)利要求9所述的方法,其特征在于,提供多線程訪問328包括400 :a) 提供以非順序方式對(duì)一個(gè)或多個(gè)庫服務(wù)的一個(gè)或多個(gè)運(yùn)行時(shí)API 310的一個(gè)或多 個(gè)線程訪問,以及b) 將所述數(shù)據(jù)庫235的資源分配給第四線程,包括400 : 將所述資源分類成跨連接和按連接中的一個(gè)405,如果所述資源被分類成跨連接的405并且第四客戶機(jī)208的連接需要所述資源的私有 副本408,則在創(chuàng)建所述連接時(shí)創(chuàng)建所述私有副本410,并且如果第四線程調(diào)用第四所請(qǐng)求的庫服務(wù)的第四運(yùn)行時(shí)API 310來對(duì)所述資源進(jìn)行操作415,則獲取連接對(duì)象418,包括所述第四線程、所述第四客戶機(jī)208和所述第四客戶機(jī)208的 連接之間的關(guān)聯(lián);創(chuàng)建所請(qǐng)求的引用422,包括所述資源、所述連接對(duì)象和所述第四線程之間的關(guān)聯(lián); 如果所述資源被分類成跨連接的425,則在所述第四運(yùn)行時(shí)API 310對(duì)所述資源進(jìn)行操作時(shí)鎖定所述資源428,并且在所述第四運(yùn)行時(shí)API 310完成操作時(shí)解除對(duì)所述資源的鎖定428 ;以及如果所述資源被分類成按連接的425,則從包含以下動(dòng)作的組中選擇一個(gè)動(dòng)作1)將 所述資源作為所述連接對(duì)象的子對(duì)象來存儲(chǔ)435,以及2)如果所述資源是按服務(wù)調(diào)用的 430,則將所述對(duì)象表示為基于棧的數(shù)據(jù)433。
11. 如權(quán)利要求9所述的方法,其特征在于,提供安全許可檢查330包括如果對(duì)應(yīng)于 顧客應(yīng)用程序的顧客應(yīng)用程序?qū)ο?10 510 610調(diào)用用于訪問所述數(shù)據(jù)庫235的表的第五 所請(qǐng)求的庫服務(wù)的第五運(yùn)行時(shí)API 310,則提供安全許可檢查,所述顧客應(yīng)用程序包括包含 所述業(yè)務(wù)應(yīng)用程序和所述服務(wù)層215的組中的一個(gè),提供安全許可檢查還包括創(chuàng)建對(duì)應(yīng)于所述顧客應(yīng)用程序?qū)ο?10 510 610的應(yīng)用程序?qū)ο缶浔?12 612,所述應(yīng)用程序?qū)ο缶浔P(guān)于所述顧客應(yīng)用程序?qū)ο?10 510 610的第一組許可數(shù)據(jù),所述 第一組許可數(shù)據(jù)包括包含間接和可執(zhí)行許可數(shù)據(jù)508 608的組中的一個(gè);以及利用所述應(yīng)用程序?qū)ο缶浔?28 530 520來確定是否向所述顧客應(yīng)用程序?qū)ο?10 510 610授予許可。
12. 如權(quán)利要求11所述的方法,其特征在于,確定528 530 620是否向所述顧客應(yīng)用程 序?qū)ο?10 510 610授予許可包括確定是否授予包含間接許可500和可執(zhí)行許可600的組 中的一個(gè),其中確定是否授予間接許可500包括如果包括關(guān)于所述表的第二組間接許可數(shù)據(jù)的 應(yīng)用程序?qū)ο缶浔?28和所述表的句柄530兩者都指示允許訪問,則授予間接許可533,并 且確定是否授予可執(zhí)行許可600包括如果所述應(yīng)用程序?qū)ο缶浔甘驹试S訪問620,則 授予可執(zhí)行許可623。
13. —種有形地包含可由計(jì)算機(jī)執(zhí)行的指令程序的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述指令程 序用于執(zhí)行用于使得業(yè)務(wù)編程庫203能夠供企業(yè)資源計(jì)劃系統(tǒng)200使用的步驟,所述企業(yè) 資源計(jì)劃系統(tǒng)200包括業(yè)務(wù)應(yīng)用程序、元數(shù)據(jù)提供者220、服務(wù)層215、數(shù)據(jù)庫235和客戶機(jī) 208,所述步驟包括a) 提供305支持所述企業(yè)資源計(jì)劃系統(tǒng)的運(yùn)行時(shí)環(huán)境,b) 提供308庫服務(wù)的運(yùn)行時(shí)應(yīng)用程序接口 (API)310,包括提供一組業(yè)務(wù)邏輯調(diào)用API 223 312,包括提供對(duì)應(yīng)于關(guān)于所述企業(yè)資源計(jì)劃系統(tǒng)的類的至少一個(gè)業(yè)務(wù)方法的至少一個(gè)API,所述類包括包含基類、表類和代碼單元類的組中的 一個(gè).提供一組數(shù)據(jù)庫訪問API 228 315,包括提供對(duì)應(yīng)于包含數(shù)據(jù)庫檢索、數(shù)據(jù)庫修改、記 錄插入和記錄刪除的組中的一個(gè)的至少一個(gè)API ;提供一組數(shù)據(jù)庫管理功能230 318,包括提供對(duì)應(yīng)于包含數(shù)據(jù)庫服務(wù)器配置、數(shù)據(jù)庫備 份、數(shù)據(jù)庫還原、數(shù)據(jù)庫測試和數(shù)據(jù)庫優(yōu)化的組中的至少一個(gè)的至少一個(gè)API ;提供一組元數(shù)據(jù)展示功能233 320,包括包含提供對(duì)應(yīng)于提供表元數(shù)據(jù)和提供表單元 數(shù)據(jù)的組中的至少一個(gè)的至少一個(gè)API ;以及提供一組常見數(shù)據(jù)類型225 322,包括對(duì)應(yīng)于所述一組常見數(shù)據(jù)類型中的至少一個(gè)成 員的至少一個(gè)API ;c) 為對(duì)應(yīng)于以下各項(xiàng)中的至少一個(gè)的業(yè)務(wù)應(yīng)用程序?qū)ο?10提供對(duì)所述業(yè)務(wù)編程庫 203的多線程訪問238 328 :所述業(yè)務(wù)應(yīng)用程序、所述服務(wù)層215和所述元數(shù)據(jù)提供者220, 以及d) 提供對(duì)所述業(yè)務(wù)應(yīng)用程序?qū)ο?10和所述服務(wù)層215的安全許可檢查240 330,包 括在所述業(yè)務(wù)應(yīng)用程序?qū)ο?10或所述服務(wù)層215調(diào)用所述運(yùn)行時(shí)API 310的情況下提供 安全許可檢查。
14. 如權(quán)利要求13所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述服務(wù)層215包括所述 企業(yè)資源計(jì)劃系統(tǒng)200的web服務(wù)中樞并且所述數(shù)據(jù)庫235包括關(guān)系型數(shù)據(jù)庫。
15. 如權(quán)利要求13所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,還包括啟用用于添加、刪除和修改一個(gè)或多個(gè)庫服務(wù)及其相應(yīng)的運(yùn)行時(shí)API 310的接口 。
16. 如權(quán)利要求13所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,提供多線程訪問328包括 提供以非順序方式對(duì)一個(gè)或多個(gè)庫服務(wù)的一個(gè)或多個(gè)運(yùn)行時(shí)API310的一個(gè)或多個(gè)線程訪 問。
17. 如權(quán)利要求13所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,提供安全許可檢查330包 括建立對(duì)應(yīng)于包含許可證許可和顧客定義的許可的組中的一個(gè)的安全許可。
18. 如權(quán)利要求13所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,提供多線程訪問328包括 將所述數(shù)據(jù)庫235的資源分配400給第一線程,包括400 :將所述資源分類成跨連接和按連接中的一個(gè)405,如果所述資源被分類成跨連接的405并且第一客戶機(jī)208的連接需要所述資源的私有 副本408,則在創(chuàng)建所述連接時(shí)創(chuàng)建所述私有副本410,以及如果第一線程調(diào)用第一所請(qǐng)求的庫服務(wù)的第一運(yùn)行時(shí)API 310來對(duì)所述資源進(jìn)行操作415,則獲取連接對(duì)象418,包括所述第一線程、所述第一客戶機(jī)208和所述第一客戶機(jī)208的 連接之間的關(guān)聯(lián);創(chuàng)建所請(qǐng)求的引用422,包括所述資源、所述連接對(duì)象和所述第一線程之間的關(guān)聯(lián); 如果所述資源被分類成跨連接的425,則在所述第一運(yùn)行時(shí)API 310對(duì)所述資源進(jìn)行操作時(shí)鎖定所述資源428,并且在所述第一運(yùn)行時(shí)API 310完成操作時(shí)解除對(duì)所述資源的鎖定428 ;以及如果所述資源被分類成按連接的425,則從包含以下動(dòng)作的組中選擇一個(gè)動(dòng)作1)將 所述資源作為所述連接對(duì)象的子對(duì)象來存儲(chǔ)435,以及2)如果所述資源是按服務(wù)調(diào)用的 430,則將所述對(duì)象表示為基于棧的數(shù)據(jù)433。
19. 如權(quán)利要求13所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,提供安全許可檢查330包 括500 :在運(yùn)行時(shí)建立對(duì)所述數(shù)據(jù)庫235的資源的間接許可518,包括創(chuàng)建資源句柄520,所述 資源句柄包括第一組間接許可數(shù)據(jù);在運(yùn)行時(shí)建立對(duì)對(duì)應(yīng)于第二業(yè)務(wù)應(yīng)用程序的應(yīng)用程序?qū)ο?10 510的間接許可508, 包括創(chuàng)建應(yīng)用程序?qū)ο缶浔?12,所述應(yīng)用程序?qū)ο缶浔ǖ诙M間接許可數(shù)據(jù);獲取連接對(duì)象525,包括第二線程、第二客戶機(jī)208和所述第二客戶機(jī)208的連接之間 的關(guān)聯(lián);以及如果所述第二線程和所述第二客戶機(jī)208的連接對(duì)應(yīng)于所述第二業(yè)務(wù)應(yīng)用程序,則 獲取所述應(yīng)用程序?qū)ο?10 510,并且如果所述第二線程調(diào)用第二所請(qǐng)求的庫服務(wù)的第二運(yùn)行時(shí)API 310來訪問所述資源 522,則在所述應(yīng)用程序?qū)ο缶浔?28和所述資源句柄530兩者都指示允許訪問的情況下授 予間接許可533。
20. 如權(quán)利要求13所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,提供安全許可檢查330包括600 :在運(yùn)行時(shí)建立對(duì)對(duì)應(yīng)于第三業(yè)務(wù)應(yīng)用程序的應(yīng)用程序?qū)ο?10 610的可執(zhí)行許可 608,包括創(chuàng)建應(yīng)用程序?qū)ο缶浔?12,所述應(yīng)用程序?qū)ο缶浔ǖ谌M間接許可數(shù)據(jù);獲取連接對(duì)象618,包括第三線程、第三客戶機(jī)208和所述第三客戶機(jī)208的連接之間 的關(guān)聯(lián);以及如果所述第三線程和所述第三客戶機(jī)208的連接對(duì)應(yīng)于所述第三業(yè)務(wù)應(yīng)用程序并且 如果所述第三線程調(diào)用第三所請(qǐng)求的庫服務(wù)的第三運(yùn)行時(shí)API 310 615,則在所述應(yīng)用程 序?qū)ο缶浔甘驹试S訪問620的情況下授予可執(zhí)行許可623。
全文摘要
一種供企業(yè)資源計(jì)劃系統(tǒng)使用的業(yè)務(wù)編程庫提供運(yùn)行時(shí)環(huán)境和API服務(wù)的庫,該API服務(wù)的庫用于訪問常見數(shù)據(jù)類型和業(yè)務(wù)方法、用于訪問表和表單元數(shù)據(jù)、以及用于數(shù)據(jù)庫管理和檢索/修改。該庫提供使用多個(gè)線程來安全地訪問所展示的服務(wù)的能力,并且還提供間接和可執(zhí)行許可檢查以提高系統(tǒng)安全性。
文檔編號(hào)G06F9/46GK101772764SQ200880101325
公開日2010年7月7日 申請(qǐng)日期2008年6月23日 優(yōu)先權(quán)日2007年7月31日
發(fā)明者D·C·邁克雷, L-B·克里斯琴森, T·M·雷特, T·W·邁霍夫, U·容漢斯 申請(qǐng)人:微軟公司