高吞吐量全球訂單承諾系統(tǒng)的制作方法
【專利摘要】公開的技術用于利用多個服務器的高吞吐量訂單承諾。方法和裝置通過接收請求指定項目的可用性狀態(tài)的查詢、從存儲在計算機系統(tǒng)的存儲器中的概要數(shù)據(jù)結構中檢索與項目相關聯(lián)的概要數(shù)據(jù)、基于概要數(shù)據(jù)確定用于指定項目的可用性數(shù)據(jù)、以及基于確定的可用性數(shù)據(jù)發(fā)送指示項目的可用性的查詢響應提供項目可用性信息。方法和裝置通過接收識別要被調(diào)度的項目的調(diào)度請求、確定用于項目的調(diào)度、基于存儲器內(nèi)數(shù)據(jù)庫中的調(diào)度存儲用于項目的可用性信息、以及基于調(diào)度發(fā)送調(diào)度響應提供訂單調(diào)度。存儲可用性信息可以使得存儲器內(nèi)數(shù)據(jù)庫生成引起概要數(shù)據(jù)結構的更新的通知。
【專利說明】高吞吐量全球訂單承諾系統(tǒng)
【背景技術】
[0001]訂單承諾系統(tǒng)跟蹤用于諸如產(chǎn)品或服務之類的項目的可用性,并且提供關于訂單項什么時候可以被交付的承諾。訂單承諾被例如諸如網(wǎng)絡存儲和呼叫中心之類的訂單輸入、實行、和捕獲系統(tǒng)使用??梢曰诋斍艾F(xiàn)有存貨或?qū)眍A期需求與供給提供訂單承諾。可用于承諾(ATP)系統(tǒng)基于當前現(xiàn)有供給和諸如公開采購訂單之類的調(diào)度的收入來提供承諾的日期。能承諾(CTP)系統(tǒng)是使用將來、無計劃的供給/需求以計算計劃的可用性并提供承諾日期的ATP的擴展。能交付(CTD)系統(tǒng)使用運輸時間以承諾訂單可以在用戶站點交付的日期。供給和需求信息可以從交易和計劃系統(tǒng)中收集。訂單承諾系統(tǒng)的示例是Oracle (R) Global Order Promising 產(chǎn)品。
【發(fā)明內(nèi)容】
[0002]本發(fā)明的實施例提供用于在訂單承諾系統(tǒng)中執(zhí)行訂單承諾操作的技術,包括調(diào)度訂單和對關于訂單的項目和狀態(tài)的可用性的查詢做出響應。利用共享概要數(shù)據(jù)的多個服務器執(zhí)行訂單承諾操作,概要數(shù)據(jù)是供應鏈的狀態(tài)的只讀/概要??梢杂啥鄠€服務器基于概要數(shù)據(jù)并行處理查詢,并且服務器的數(shù)目可以增加到實現(xiàn)高吞吐量訂單承諾。
[0003]公開了用于利用多個服務器進行高吞吐量訂單承諾的技術。方法和裝置響應于請求指定項目的可用性狀態(tài)的查詢提供項目可用性信息。與項目相關聯(lián)的概要數(shù)據(jù)然后從存儲在計算機系統(tǒng)的存儲器中的概要數(shù)據(jù)結構中檢索。基于概要數(shù)據(jù)對于指定項目確定可用性數(shù)據(jù)并且基于確定的可用性數(shù)據(jù)發(fā)送指示項目的可用性的查詢響應。通過響應于識別要被調(diào)度的項目的調(diào)度請求提供訂單調(diào)度。確定項目的調(diào)度并且基于存儲器內(nèi)數(shù)據(jù)庫中的調(diào)度對于項目存儲可用性信息。然后基于調(diào)度發(fā)送調(diào)度響應。存儲可用性信息可以使得存儲器內(nèi)數(shù)據(jù)庫生成指示更新的可用性信息可用的通知,并且可以在可用性服務器處接收該通知,其因此可以更新概要數(shù)據(jù)結構。
[0004]在一些實施例中,檢索概要數(shù)據(jù)包括對存儲器內(nèi)數(shù)據(jù)庫查詢與項目相關聯(lián)的概要數(shù)據(jù)??梢栽跊]有獲得對存儲器內(nèi)數(shù)據(jù)庫的專用訪問的情況下進行檢索概要數(shù)據(jù)。概要數(shù)據(jù)可以包括一個或多個項目標識符和關聯(lián)的可用性信息??捎眯孕畔⒖梢园椖康目捎眯缘囊粋€或多個日期。確定可用性數(shù)據(jù)包括通過概要數(shù)據(jù)檢索與項目相關聯(lián)的可用性的日期。
[0005]一方面,可以接收指示更新的可用性信息是可用的通知。更新的可用性信息可以被存儲在概要數(shù)據(jù)結構中。另一方面,概要數(shù)據(jù)結構可以被優(yōu)化以用于數(shù)據(jù)的快速插入和檢索。
[0006]在進一步的實施例中,接收識別要被調(diào)度的項目的調(diào)度請求??梢源_定對項目的調(diào)度并且可以將用于項目的可用性信息存儲在存儲器內(nèi)數(shù)據(jù)庫中??捎眯孕畔⒖梢詠碓从谡{(diào)度并且基于調(diào)度的調(diào)度響應可以被發(fā)送或傳送。一方面,由單獨的線程執(zhí)行在存儲器內(nèi)數(shù)據(jù)庫中存儲可用性信息。存儲可以使得存儲器內(nèi)數(shù)據(jù)庫生成指示更新的可用性信息可用的通知。此后,指示更新的可用性信息可用的通知可以被接收并且更新的可用性信息可以被存儲在可用性服務器處在概要數(shù)據(jù)結構中。
[0007]在進一步的實施例中,接收與訂單承諾相關的請求。請求可以參考來自于可以被訂購的多個項目中的至少一個項目。確定請求的類型并且基于請求、項目、將請求與可用性信息相關聯(lián)的概要數(shù)據(jù)、和參考一個或多個服務器的服務器配置數(shù)據(jù)評估一個或多個路由規(guī)則?;诼酚梢?guī)則的評估,選擇對應于請求的類型的類型的服務器并且請求被傳遞到服務器。
[0008]在一個實施例中,一個或多個服務器與可以被訂購的多個項目的一個或多個部分相關聯(lián)。選擇服務器可以包括選擇與關聯(lián)于項目的部分相關聯(lián)的服務器。請求可以是可用性查詢請求或訂單調(diào)度請求。一個或多個規(guī)則的每一個可以包括條件和服務器標識符。然后可以基于與條件對其評估為真的規(guī)則相關聯(lián)的服務器標識符確定服務器。在進一步的實施例中,條件可以包括參考請求、概要數(shù)據(jù)的一個或多個屬性的表達式。請求可以是可用性查詢請求并且請求可以被傳遞到基于路由規(guī)則的評估選擇的可用性服務器。一方面,請求可以是訂單調(diào)度請求并且請求可以被傳遞到基于路由規(guī)則的評估選擇的調(diào)度服務器。
【專利附圖】
【附圖說明】
[0009]圖1是示出了其中可以執(zhí)行本發(fā)明的各個實施例的示范性操作環(huán)境的組件的方框圖。
[0010]圖2是示出了其中可以執(zhí)行本發(fā)明的各個實施例的示范性計算機系統(tǒng)的方框圖。
[0011]圖3A是示出了根據(jù)本發(fā)明的一個實施例使用單個共享的存儲器內(nèi)數(shù)據(jù)庫實例的示范性高吞吐量全球訂單承諾系統(tǒng)的方框圖。
[0012]圖3B是示出了根據(jù)本發(fā)明的一個實施例使用多個分布式存儲器內(nèi)數(shù)據(jù)庫實例的示范性高吞吐量全球訂單承諾系統(tǒng)的方框圖。
[0013]圖4是示出了根據(jù)本發(fā)明的一個實施例的高吞吐量全球訂單承諾系統(tǒng)的示范性中介層的方框圖。
[0014]圖5是示出了根據(jù)本發(fā)明的一個實施例的高吞吐量全球訂單承諾系統(tǒng)的示范性可用性查詢引擎的方框圖。
[0015]圖6是示出了根據(jù)本發(fā)明的一個實施例的高吞吐量全球訂單承諾系統(tǒng)的示范性運送選項引擎的方框圖。
[0016]圖7是示出了根據(jù)本發(fā)明的一個實施例的高吞吐量全球訂單承諾系統(tǒng)的示范性存儲器內(nèi)概要數(shù)據(jù)結構的方框圖。
[0017]圖8是示出了根據(jù)本發(fā)明的一個實施例的高吞吐量全球訂單承諾系統(tǒng)的示范性調(diào)度引擎的方框圖。
[0018]圖9是根據(jù)本發(fā)明的實施例的中介處理的說明性流程圖。
[0019]圖10是根據(jù)本發(fā)明的實施例的可用性查詢處理的說明性流程圖。
[0020]圖11是根據(jù)本發(fā)明的實施例的調(diào)度處理的說明性流程圖。
【具體實施方式】
[0021]在下面描述中,為了說明目的,闡述許多細節(jié)以便提供對本發(fā)明的各個實施例的徹底的了解。但是,本領域技術人員將清晰,在沒有一些細節(jié)的情況下也可以實踐本發(fā)明的實施例。在其它實例中,以方框圖形式示出公知的結構和設備。
[0022]繼續(xù)的描述僅僅提供示范性實施例,并且不是意欲限制本公開范圍、應用性、或配置。相反地,示范性實施例的繼續(xù)描述將向本領域的技術人員提供用于執(zhí)行示范性實施例的啟動描述。應當理解,在沒有脫離在附加權利要求書中闡述的本發(fā)明的精神和范圍的情況下,可以在要素的功能和安排方面做出各種改變。
[0023]在下面描述中給出細節(jié)以提供對實施例的徹底了解。但是,本領域普通技術人員將理解,可以不用這些特定的細節(jié)來實踐本實施例。例如,電路、系統(tǒng)、網(wǎng)絡、處理、和其它組件可以被顯示為方框圖中的組件以便以不會不必要的細節(jié)模糊實施例。在其它實例中,在沒有不必要的細節(jié)以便避免模糊實施例的情況下,可以示出公知的電路、處理、算法、結構、和技術。
[0024]同時,應當注意各個實施例可以被描述為處理,其通常被描述為流程、流程圖、數(shù)據(jù)流程圖、結構圖、或方框圖。雖然流程可以描述作為順序處理的操作,但是可以并行或同時執(zhí)行許多操作。此外,可以重新布置操作的順序。雖然處理在完成它的操作時被終止,但是可以具有未包括在圖內(nèi)的附加步驟。處理可以對應于方法、功能、程序,子例程、子程序等等。當處理對應于函數(shù)時,它的終止可以對應于將功能返回到調(diào)用函數(shù)或主函數(shù)。
[0025]術語“機器可讀媒介”包括但是不局限于便攜式的或固定的存儲器設備、光存儲器設備、無線信道和能夠存儲、包含或傳送指令和/或數(shù)據(jù)的各種其它媒介。代碼片段或機器可執(zhí)行指令可以表示程序、功能、子程序、例程、子例程、模塊、軟件包、類、或指令、數(shù)據(jù)結構或程序語句的任何組合。代碼片段可以通過傳遞和/或接收信息、數(shù)據(jù)、自變量、參數(shù)、或存儲內(nèi)容被耦接到另一個代碼段或硬件電路。信息、自變量、參數(shù)、數(shù)據(jù)、等等可以被經(jīng)由包括存儲器共享、消息傳遞、令牌傳遞、網(wǎng)絡傳輸?shù)鹊热魏魏线m的方法傳遞、轉發(fā)、或發(fā)送。
[0026]此外,可以通過硬件、軟件、固件、中間件、微代碼、硬件描述語言、或其任何組合執(zhí)行實施例。當以軟件、固件、中間件或微代碼執(zhí)行時,執(zhí)行必需任務的程序代碼或代碼段可以被存儲在機器可讀介質(zhì)中。處理器可以執(zhí)行必需的任務。
[0027]圖1是示出了其中可以執(zhí)行本發(fā)明的各個實施例的示范性操作環(huán)境的組件的方框圖。系統(tǒng)100可以包括一個或多個用戶計算機105、110,其可以用來操作客戶端,不論專用應用、網(wǎng)絡瀏覽器,等等。用戶計算機105、110可以是通用的個人計算機(包括,僅僅舉例,運行微軟公司的Windows和/或蘋果公司的Macintosh操作系統(tǒng)的各種版本的個人計算機和/或膝上型計算機)和/或運行各種商業(yè)上可用的UNIX或類似UNIX的操作系統(tǒng)(包括但不限制GNU/Linux操作系統(tǒng)的種類)中的任何一個的工作站計算機。這些用戶計算機105、110也可以具有各種應用中的任何一個,包括一個或多個開發(fā)系統(tǒng)、數(shù)據(jù)庫客戶端和/或服務器應用、和網(wǎng)絡瀏覽器應用。可替換地,用戶計算機105、110可以是任何其它電子設備,諸如薄客戶端計算機、互聯(lián)網(wǎng)啟動的移動電話、和/或個人數(shù)字助理,其能夠經(jīng)由網(wǎng)絡(例如,下面描述的網(wǎng)絡115)進行通信和/或顯示并導航網(wǎng)頁或其它類型電子文件。雖然示出示范性系統(tǒng)100具有兩個用戶計算機,但是可以支持任何數(shù)目的用戶計算機。
[0028]在一些實施例中,系統(tǒng)100也可以包括網(wǎng)絡115。網(wǎng)絡可以是為本領域技術人員所熟知的任何類型的網(wǎng)絡,其可以利用包括但不限于TCP/IP、SNA、IPX、AppleTalk等等各種商業(yè)上可用的協(xié)議中的任何一個支持數(shù)據(jù)通信。僅僅舉例,網(wǎng)絡115可以是諸如以太網(wǎng)、令牌環(huán)網(wǎng)和/或同樣之類的局域網(wǎng)(“LAN”);廣域網(wǎng);包括但不限于虛擬專用網(wǎng)絡(“VPN”)的虛擬網(wǎng)絡;互聯(lián)網(wǎng);內(nèi)部網(wǎng);外部網(wǎng);公用交換電話網(wǎng)(“PSTN”);紅外網(wǎng)絡;無線網(wǎng)絡(例如,在IEEE802.11套協(xié)議、在本領域中已知的藍牙協(xié)議、和/或任何其它無線協(xié)議中的任何一個下操作的網(wǎng)絡);和/或這些和/或諸如GSM、GPRS, EDGE、UMTS、3G、2.5G、CDMA、CDMA2000、WCDMA、EVDO等等之類的其他網(wǎng)絡的任何組合。
[0029]系統(tǒng)也可以包括一個或多個服務器計算機120、125、130,其可以是通用計算機和/或?qū)S梅掌饔嬎銠C(包括,僅僅舉例,PC服務器、UNIX服務器、中范圍服務器、大型計算機機架安裝的服務器等等)。服務器的一個或多個(例如,130)可以被專用于正在運行的應用,諸如商業(yè)應用、網(wǎng)絡服務器、應用服務器等。此類服務器可以用來處理來自于用戶計算機105、110的請求。應用也可以包括用于控制對服務器120、125、130的資源的訪問的任何數(shù)目的應用。
[0030]網(wǎng)絡服務器可以運行包括上述討論的任何一個的操作系統(tǒng),以及任何商業(yè)上可用的服務器操作系統(tǒng)。網(wǎng)絡服務器也可以運行各種服務器應用和/或中層應用中的任何一個,包括HTTP服務器、FTP服務器、CGI服務器、數(shù)據(jù)庫服務器、Java服務器、業(yè)務應用軟件,等等。服務器也可以是一個或多個計算機,其能夠響應于用戶計算機105、110運行程序或腳本。如一個示例,服務器可以運行一個或多個網(wǎng)絡應用。網(wǎng)絡應用可以被執(zhí)行為一個或多個腳本或以任何程序設計語言編寫的程序,諸如JavaTM、C、》1、或_C++,和任何腳本語言,諸如Perl、Python、TCL,以及任何程序/腳本語言的組合。服務器也可以包括數(shù)據(jù)庫服務
器,包括但不限于那些來自于Oracle?、Microsoft?、Sybase?、IBiM?等等的
商業(yè)上可用的數(shù)據(jù)庫服務器,其可以處理來自于運行在用戶計算機105、110上的數(shù)據(jù)庫客戶端的請求。
[0031]在一些實施例中,應用服務器可以動態(tài)地創(chuàng)建網(wǎng)頁以顯示在終端用戶(客戶端)系統(tǒng)上。網(wǎng)絡應用服務器創(chuàng)建的網(wǎng)頁可以經(jīng)由網(wǎng)絡服務器被轉發(fā)到用戶計算機105。類似地,網(wǎng)絡服務器可以從用戶計算機中接收網(wǎng)頁請求和/或輸入數(shù)據(jù)并且可以將網(wǎng)頁請求和/或輸入數(shù)據(jù)轉發(fā)到應用和/或數(shù)據(jù)庫服務器。本領域技術人員將認識到,可以由單個服務器和/或多個專用服務器根據(jù)特定的實施方式的需要和參數(shù)執(zhí)行參考各種類型的服務器描述的功能。
[0032]系統(tǒng)100也可以包括一個或多個數(shù)據(jù)庫135。數(shù)據(jù)庫135可以存在于各種位置。例如,數(shù)據(jù)庫135可以存在于本地于(和/或存在于)一個或多個計算機105、110、115、125、、130的存儲介質(zhì)上??商鎿Q地,它也可以遠離任何或所有計算機105、110、115、125、130、和/或與這些中的一個或多個通信(例如,經(jīng)由網(wǎng)絡120)。在特定組實施例中,數(shù)據(jù)庫135可以存在于為本領域技術人員所熟知的存儲器區(qū)域網(wǎng)(“SAN”)中。類似地,用于執(zhí)行屬于計算機105、110、115、125、130的功能的任何必需文件可以被視情況本地和/或遠程地存儲在相應的計算機上。在一組實施例中,數(shù)據(jù)庫135可以是關系數(shù)據(jù)庫,諸如OraclelOg,其被適配為存儲、更新、和響應于SQL格式化的命令檢索數(shù)據(jù)。
[0033]圖2是示出了其中可以執(zhí)行本發(fā)明的各個實施例的示范性計算機系統(tǒng)200。系統(tǒng)200可以用來執(zhí)行如上所述計算機系統(tǒng)中的任何一個。示出計算機系統(tǒng)200包括可以被經(jīng)由總線255電學耦接的硬件元件。硬件元件可以包括一個或多個中央處理單元(CPU) 205、一個或多個輸入設備210(例如,鼠標、鍵盤、等等),和一個或多個輸出設備215(例如,顯示設備、打印機、等等)。計算機系統(tǒng)200也可以包括一個或多個存儲設備220。例如,存儲設備220可以是磁盤驅(qū)動器、光存儲器設備、諸如隨機存取存儲器(“RAM”)和/或只讀存儲器(“ROM”)之類的固態(tài)存儲設備,其可以是可編程的、可閃速更新的和/或同樣的東西。
[0034]計算機系統(tǒng)200另外可以包括計算機可讀存儲介質(zhì)讀取器225a、通信系統(tǒng)230 (例如,調(diào)制解調(diào)器、網(wǎng)卡(無線的或有線的)、紅外通信設備,等等)、和可以包括如上所述的RAM和ROM的工作存儲器240。在一些實施例中,計算機系統(tǒng)200也可以包括處理加速單元235,其可以包括DSP、專用處理器,和/或同樣的東西。
[0035]計算機可讀存儲介質(zhì)讀取器225a還可以被連接到計算機可讀存儲介質(zhì)225b,和(并且可選地與存儲設備220結合)包括地表示遠程、本地、固定、和/或可移動存儲器設備一起加上用于臨時地和/或更永久地包含計算機可讀信息的存儲介質(zhì)。通信系統(tǒng)230可以允許數(shù)據(jù)被與網(wǎng)絡220和/或如上所述參考系統(tǒng)200的任何其它計算機交換。
[0036]計算機系統(tǒng)200也可以包括被顯示為普通位于工作存儲器240內(nèi)的軟件元素,包括操作系統(tǒng)245和/或其它代碼250,諸如應用程序(其可以是客戶應用、網(wǎng)絡瀏覽器、中層應用、RDBMS、等等)。應當理解,計算機系統(tǒng)200的可替換實施例可以具有如上所述的許多變化。例如,也可能使用自定義的硬件和/或在硬件、軟件(包括諸如小程序之類的可移植軟件)、或兩者中執(zhí)行特定元件。此外,可以采用到諸如網(wǎng)絡輸入/輸出設備之類的其它計算設備的連接。計算機系統(tǒng)200的軟件可以包括用于執(zhí)行如這里描述的本發(fā)明的實施例的代碼250。
[0037]圖3A是示出了根據(jù)本發(fā)明的一個實施例的使用共享的存儲器內(nèi)數(shù)據(jù)庫實例370的示范性高吞吐量全球訂單承諾系統(tǒng)300的方框圖。訂單承諾系統(tǒng)300可以被執(zhí)行為例如可在計算機系統(tǒng)的處理器上運行的計算機程序代碼。訂單承諾系統(tǒng)300執(zhí)行高吞吐量訂單承諾操作,其包括跟蹤諸如產(chǎn)品或服務之類的項目的訂單和可用性、以及提供關于訂購的項目可以被交付的日期的承諾。諸如項目可用性查詢320、訂單調(diào)度請求322、或其它類型的請求之類的訂單承諾請求由在線商店310或其它源生成,并且根據(jù)請求320、322的類型和由路由規(guī)則309限定的其它標準發(fā)送給請求中介306,其將請求分布到多個不同類型的服務器,包括可用性服務器324和調(diào)度服務器344。調(diào)度服務器344使用永久數(shù)據(jù)庫380存儲表示訂單處理系統(tǒng)300的狀態(tài)的細節(jié)數(shù)據(jù)382,包括訂單、庫存信息、承諾日期、訂單承諾工作流程配置、等等。調(diào)度服務器344與諸如可用性服務器324和運送選項服務器366的其它類型服務器共享細節(jié)數(shù)據(jù)382的部分。共享數(shù)據(jù)在此被稱為概要數(shù)據(jù)374,并且包括項目狀態(tài)信息376、項目可用性信息378、和可以由其它類型服務器324、366所需的其它信息。概要數(shù)據(jù)374利用存儲器內(nèi)數(shù)據(jù)庫370或其它高速共享數(shù)據(jù)庫被在服務器324、344、366之間共享。
[0038]經(jīng)由存儲器內(nèi)數(shù)據(jù)庫370共享概要數(shù)據(jù)374使得訂單承諾操作能被更高效地執(zhí)行,因為不同類型的服務器可以并行(即,同時)執(zhí)行操作。系統(tǒng)吞吐量,例如訂單承諾請求的處理速率,可以通過增加更多服務器324、344、366并且在服務器之間劃分(即分割)項目而增加,以使得多個調(diào)度服務器可以并行處理對于在不同部分中的項目的訂單??捎眯苑掌?24可以類似地分配給數(shù)據(jù)的不同部分,和/或被用其它方式負載平衡,因為由可用性服務器324執(zhí)行的查詢操作讀取而不是寫到概要數(shù)據(jù)374。因此,多個可用性服務器324可以對概要數(shù)據(jù)374(例如,相同的項目)的相同部分并行執(zhí)行查詢操作。可用性服務器324的每一個可以在概要結構330中維護概要數(shù)據(jù)324的它自己的副本,其可以在處理可用性查詢320時使用??捎眯苑掌?26響應于從存儲器內(nèi)數(shù)據(jù)庫370接收到指示概要數(shù)據(jù)已經(jīng)改變的通知修改概要結構330。在其它實施例中,在處理可用性查詢而不是維護概要結構330時,可用性服務器324可以直接利用存儲器內(nèi)數(shù)據(jù)庫370讀取概要數(shù)據(jù)374。
[0039]在一組實施例中,可以是例如網(wǎng)頁或用于在在線商店中訂購項目的其他用戶界面的前端310從用戶301接收下訂單、檢查項目可用性、改變或取消訂單等等的請求。前端310可以由執(zhí)行在線商店并向訂單請求中介306發(fā)送命令相關請求的網(wǎng)絡服務器提供,訂單請求中介306將請求分布到可用性服務器324和調(diào)度服務器344。調(diào)度服務器344的每一個使用訂單處理引擎350以執(zhí)行實際訂單承諾操作,諸如調(diào)度訂單、完成日期承諾、等等。引擎350可以例如以計算機程序代碼以諸如C、C++、JAVA等之類的語言實施。在一個示例中,訂單處理引擎350構成并維護例如隨機存取存儲器(“RAM”)等的計算機系統(tǒng)的存儲器中的訂單處理數(shù)據(jù)結構,其包含表示訂單和執(zhí)行訂單處理操作所需的相關信息的訂單處理數(shù)據(jù)。引擎350可以在系統(tǒng)存儲器和諸如數(shù)據(jù)庫380之類的永久存儲介質(zhì)之間轉移訂單處理數(shù)據(jù)。在一個示例中,當引擎350開始時,它從存儲在數(shù)據(jù)庫380中的細節(jié)數(shù)據(jù)382中將現(xiàn)有訂單數(shù)據(jù)加載到系統(tǒng)存儲器中,以使得利用存儲器存取操作對存儲在存儲器中的訂單處理數(shù)據(jù)執(zhí)行訂單承諾操作。數(shù)據(jù)庫380可以是例如諸如Oracle?關系數(shù)據(jù)庫管理系統(tǒng)等之類的關系數(shù)據(jù)庫。
[0040]在一個或多個實施例中,隨著信息被處理邏輯消費并生成,引擎350存儲并檢索數(shù)據(jù)庫380中的訂單信息。例如,當下新訂單322時,引擎350從數(shù)據(jù)庫380和/或源系統(tǒng)384檢索關于訂購的項目的可用性的信息、確定完成訂單的承諾的日期、將表示數(shù)據(jù)庫380中的訂單的信息存儲為細節(jié)數(shù)據(jù)382、并且提供承諾的日期和訂單的狀態(tài),其被以訂單調(diào)度結果323返回到前端310。源系統(tǒng)384提供用在訂單承諾中的信息,諸如庫存細節(jié),其可以被加載到數(shù)據(jù)庫380中。因此,數(shù)據(jù)庫380包含由訂單承諾系統(tǒng)300所需的信息,包括關于訂單的信息,其隨著創(chuàng)建、修改、和完成訂單被更新。數(shù)據(jù)庫380中的細節(jié)數(shù)據(jù)382被永久地存儲在諸如盤之類的存儲介質(zhì)上,以使得如果訂單處理服務300關閉,例如為了執(zhí)行系統(tǒng)維護、或由于電力故障或崩潰,關于訂單狀態(tài)、處理時間等等的信息不會丟失。
[0041]一方面,網(wǎng)絡前端310可以高速接收對訂單的請求,其可以導致對引擎350的相應高速的請求。例如,在非常高容量、特別是在新產(chǎn)品引入期間的高峰情況下由零售商或經(jīng)銷商操作的在線商店以可能超過引擎350的單個實例的能力的高速度生成請求。如果用戶界面前端310以大于引擎350的最大處理速度的速度生成輸入訂單承諾操作請求320、322,則可能發(fā)生諸如響應用戶訂單請求的延遲之類的問題。
[0042]在一組實施例中,訂單承諾系統(tǒng)300使用可用性服務器324和調(diào)度服務器344以增加系統(tǒng)300的吞吐量性能(例如,每秒處理的訂單),除由引擎350的單個實例提供的以夕卜。此系統(tǒng)架構允許與響應時間和針對的其它性能度量的監(jiān)視相結合的動態(tài)可分級性。系統(tǒng)300允許自動地引導管理組件按比例增大或減小以調(diào)整變化的系統(tǒng)負擔的規(guī)則和閾值。此架構在吞吐量和負載平衡方面提供彈性的同時允許24X7系統(tǒng)的可用性。
[0043]在一組實施例中,如上面引入的,訂單承諾系統(tǒng)300利用共享訂單概要數(shù)據(jù)的多個類型的服務器接收、處理、并對請求做出響應以執(zhí)行訂單承諾操作。訂單承諾操作被分為多個不同類型,包括檢查項目是否可用于訂購的可用性查詢操作、和訂單調(diào)度操作??捎眯圆樵儾僮饔煽捎眯苑掌?24處理。訂單調(diào)度操作創(chuàng)建并調(diào)度對于項目的新訂單,并且提供關于訂單將在什么時候完成的承諾。訂單調(diào)度操作由調(diào)度服務器344處理。其它類型的操作包括運送選項查詢操作,其查詢關于可用于運送訂單的選項。運送選項操作可以由運送選項服務器366處理。因此,訂單或可以被不同地處理的其它操作可以與類型相關聯(lián)并且由特定類型的服務器處理,其可以被優(yōu)化以高效地處理那個類型的訂單。例如,每個類型的服務器可以維護并且使用表示訂單處理系統(tǒng)的狀態(tài)的細節(jié)數(shù)據(jù)382的不同部分或副本。不同類型的服務器然后可以比它們可以存取細節(jié)數(shù)據(jù)更高效地存取數(shù)據(jù)的它們的部分或副本,因為,例如,特定類型的服務器可以執(zhí)行操作的有限集合,諸如讀取而不是寫入數(shù)據(jù),或可以僅僅存取數(shù)據(jù)的某些部分,或可以能夠使用關于由服務器執(zhí)行的特定類型的操作的行為的知識以更高效地存取數(shù)據(jù)。
[0044]在一個或多個實施例中,可以存在每種類型的服務器324、344、366的多個實例,例如,可以存在每個類型的多于一個服務器可以運行,并且用于每個類型的操作的工作負載可以在執(zhí)行該類型的操作的服務器之間劃分。服務器324、344、366可以跨一個或多個主機(例如,計算機處理器)分布,其中相同或不同類型的一個或多個服務器運行在每個主機上。例如,每個服務器可以位于不同的主機上,在這種情況下,服務器經(jīng)由網(wǎng)絡通信在主機之間存取共享數(shù)據(jù)。在另一個示例中,若干服務器可以位于單個主機上,在這種情況下,月艮務器可以經(jīng)由諸如共享存儲器或進程間通信之類的快速通信路徑存取共享數(shù)據(jù)。單個主機可以通常處理有限數(shù)目的服務器,因此在一個或多個實施例中,通過增加運行附加服務器實例的附加主機,并且在不同主機上的服務器經(jīng)由網(wǎng)絡通信存取共享數(shù)據(jù),實現(xiàn)擴展訂單承諾系統(tǒng)的處理能力和/或性能。
[0045]在一個或多個實施例中,利用存儲器內(nèi)數(shù)據(jù)庫370,例如,Oracle⑧TimesTen?.等實現(xiàn)對共享數(shù)據(jù)的高效存取。共享數(shù)據(jù)被存儲在可以由位于相同主機上的多個服務器存取的共享存儲器區(qū)域中。隨著共享數(shù)據(jù)和數(shù)據(jù)更新被經(jīng)由通信網(wǎng)絡在服務器的主機之間交換,TimesTen也使得不位于相同主機上的服務器能夠存取共享數(shù)據(jù)。存儲器內(nèi)數(shù)據(jù)庫可以被以至少兩個不同的方式配置并存取,分別對應于圖3A和3B。圖3A示出了根據(jù)一個實施例的共享存儲器內(nèi)數(shù)據(jù)庫實例370,以及圖3B示出了根據(jù)另一個實施例的經(jīng)由網(wǎng)絡396通信的多個分布式存儲器內(nèi)數(shù)據(jù)庫實例303、386、390、和394。
[0046]圖3A和3B示出多個服務器324、344、366,但是沒有示出服務器到主機計算機的具體分配。因此,服務器324、344、366可以被理解為可以在主機上運行的服務器處理。在一個或多個示例中,每個服務器324、344、366可以對應于一個主機計算機,但是在其它示例中,服務器324、344、366可以共享主機計算機,即,多個服務器可以運行在主機計算機上。主機計算機可以具有存取相同存儲器空間的一個或多個處理器(例如,處理單元、核等)。服務器324、344、366的兩個或更多個可以在多處理器或多核主機上運行并且存取圖3A的存儲器內(nèi)數(shù)據(jù)庫370,包括概要數(shù)據(jù)374,在利用存儲器存取操作的共享存儲器中,其比如圖3B所示的利用通信網(wǎng)絡398 (例如,TCP/IP、以太網(wǎng)等)更高效。但是,如果多處理器或多核計算機沒有被使用,或所需的服務器的數(shù)目大于多處理器或多核主機中可用的處理器或核的數(shù)目,則圖3B所示的網(wǎng)絡通信布置可以是優(yōu)選的,因為主機的數(shù)目可以通過增加更多主機而增加。
[0047]在一個示例中,服務器324、344、366可以在相同的主機計算機上運行,但是主機應當具有足夠的處理器或核數(shù)目以處理訂單承諾工作量。如果工作量超過單個主機計算機的容量,則可以根據(jù)需要添加附加主機以處理附加工作量,其中工作量由請求中介306在主機之間分布。相反地,如果主機計算機的計算能力超過處理工作量所需的,則一個或多個主機計算機、處理器、或核可以被去除并且分配給其它任務,其中請求中介被重新配置為將輸入的訂單承諾請求分布到剩余的主機計算機。
[0048]因此,圖3A示出根據(jù)一個或多個實施例的單個存儲器內(nèi)數(shù)據(jù)庫實例(例如,數(shù)據(jù)庫服務器)370。在客戶端-服務器類的布置中存取存儲器內(nèi)數(shù)據(jù)庫實例370,其中訂單承諾服務器充當存儲器內(nèi)數(shù)據(jù)庫服務器370的客戶端。在圖3A中,如果諸如可用性服務器324和/或調(diào)度服務器344之類的一個或多個訂單承諾服務器位于不同的主機上,則不在與存儲器內(nèi)數(shù)據(jù)庫服務器370相同的主機上的每個服務器建立與存儲器內(nèi)數(shù)據(jù)庫服務器370的網(wǎng)絡連接。位于與存儲器內(nèi)數(shù)據(jù)庫服務器370相同的主機上的服務器可以利用共享存儲器而不是網(wǎng)絡連接與存儲器內(nèi)數(shù)據(jù)庫服務器370進行通信。
[0049]如以上引入的,系統(tǒng)300包括請求中介306,其從諸如出售被訂購的項目的在線商店之類的源接收查詢消息320和訂單調(diào)度消息322,并且將消息轉發(fā)到適當?shù)姆掌?。請求中介可以是例如運行為獨立過程或也提供其它服務的過程的一部分的服務器。請求中介306檢查每個輸入信息,確定服務器324、344、366的哪一個將處理消息、并且將消息轉發(fā)到確定的服務器。將使用哪一個服務器的確定基于消息中的信息、消息路由規(guī)則309和/或存儲器內(nèi)概要數(shù)據(jù)374,如下所述。如果消息是查詢消息則選擇可用性服務器,或如果消息是調(diào)度消息則選擇調(diào)度服務器。
[0050]在一組實施例中,利用路由規(guī)則309從一組可用性服務器324或調(diào)度服務器344中選擇具體的可用性服務器或調(diào)度服務器。每個規(guī)則可以具有條件和動作。如果條件由輸入消息滿足(即,滿足),則執(zhí)行與規(guī)則相關聯(lián)的動作。動作可以例如確定消息要被轉發(fā)到的服務器。如果條件不滿足,則以同樣的方式選擇另一個規(guī)則并且評估,或如果所有規(guī)則已被評估,則可以執(zhí)行默認動作,諸如將消息轉發(fā)到隨機地選擇的服務器。規(guī)則可以是用戶定義的和/或由系統(tǒng)提供的。輸入信息320、322參考諸如產(chǎn)品之類的項目,并且條件可以基于產(chǎn)品身份、產(chǎn)品屬性、產(chǎn)品類別、產(chǎn)品組、產(chǎn)品關系、庫存閾值、等等。規(guī)則可以由用戶更新以修改路由行為。請求中介306可以將輸入的請求消息320分割為多個子請求并且將每個子請求路由到不同的服務器,以使得子請求可以被并行處理。請求中介然后可以將來自于子請求的結果合并到單個結果消息中,作為對請求消息的響應被返回。
[0051]在一組實施例中,可用性服務器326生成對訂單相關的信息的查詢,諸如對在指定位置處現(xiàn)在和將來的存貨可用性的請求,的響應??捎眯苑掌?26利用存儲在概要結構330中的概要數(shù)據(jù)的表示確定請求的可用性信息。概要結構330可以包括,例如,時程化的可用性信息、產(chǎn)品狀態(tài)、等等。可用性服務器326從概要結構330中讀取概要數(shù)據(jù),確定期望的結果,諸如用于指定的項目量的最早可用性日期,并且發(fā)送結果作為對接收的請求的響應,例如作為發(fā)送給從其接收請求的中介服務器的響應消息。
[0052]在一組實施例中,由調(diào)度服務器創(chuàng)建概要數(shù)據(jù)并作為概要數(shù)據(jù)374存儲在存儲器內(nèi)數(shù)據(jù)庫370 (例如,Oracle⑧TimesTen?等),以實現(xiàn)比在更新數(shù)據(jù)庫并運行查詢時執(zhí)行盤輸入/輸出操作的普通數(shù)據(jù)庫更快速的查詢性能。調(diào)度服務器348的數(shù)據(jù)管理器352執(zhí)行將概要數(shù)據(jù)374存儲在存儲器內(nèi)數(shù)據(jù)庫370中涉及的動作。在圖3A中示出的每個服務器348、354、360包括相關的引擎350、356、362和數(shù)據(jù)管理器352、358、364。存儲器內(nèi)數(shù)據(jù)庫370通常在更新數(shù)據(jù)庫或執(zhí)行查詢時不執(zhí)行盤輸入/輸出操作。反而,存儲器內(nèi)數(shù)據(jù)庫在隨機存取存儲器(RAM)等中維護數(shù)據(jù)庫內(nèi)容,其中在存儲器內(nèi)數(shù)據(jù)庫被啟動時數(shù)據(jù)被加載到存儲器中,并且在存儲器內(nèi)數(shù)據(jù)庫停止或執(zhí)行盤提交操作時數(shù)據(jù)被寫到盤中。
[0053]在一個或多個實施例中,利用包括由調(diào)度服務器存儲在存儲器內(nèi)數(shù)據(jù)庫中的概要數(shù)據(jù)374的副本的概要結構330表示概要數(shù)據(jù)。圖3A和3B示出可用性服務器的此布置。在其它實施例中,可用性服務器使用存儲器內(nèi)數(shù)據(jù)庫,而不是維護概要結構330,在這種情況下,可用性服務器可以建立到存儲器內(nèi)數(shù)據(jù)庫的共享實例的網(wǎng)絡連接(類似于圖3A中從調(diào)度服務器到存儲器內(nèi)數(shù)據(jù)庫的連接),或可用性服務器可以通過共享存儲器存取圖3B的存儲器內(nèi)數(shù)據(jù)庫384的實例(類似于在圖3B中用于調(diào)度服務器示出的布置)。
[0054]在一組實施例中,可用性服務器326中的概要處理334更新概要結構330以將由調(diào)度服務器344做出的更新反映到概要數(shù)據(jù)374。概要處理334響應于從存儲器內(nèi)數(shù)據(jù)庫接收到的通知執(zhí)行這些更新。這些通知可以是例如,TimesTen XLA通知事件,其由TimesTen存儲器內(nèi)數(shù)據(jù)庫在數(shù)據(jù)庫數(shù)據(jù)被修改時生成。每個通知事件識別已被更新的數(shù)據(jù)項(例如,關系行和列)。可用性服務器從存儲器內(nèi)數(shù)據(jù)庫檢索在通知中識別的項目,并且將項目存儲在概要結構330中。因此,可用性服務器響應于存儲器內(nèi)的概要數(shù)據(jù)374的更新修改概要結構330。
[0055]在一個實施例中,可用性服務器326的概要處理330使用諸如互斥鎖定之類的同步操作以防止多個服務器寫到概要結構330。在其它實施例中,可用性服務器與概要數(shù)據(jù)374的不同部分相關聯(lián)并且在更新概要結構330時不需要執(zhí)行同步操作。示出兩個可用性服務器326、328,每個包括概要結構330、332和概要處理334、336。可以根據(jù)需要使用任何數(shù)目的可用性服務器,以處理由網(wǎng)絡前端310生成的輸入請求的工作量。
[0056]可用性查詢操作讀取但是并未修改概要結構330中的概要數(shù)據(jù),因此可用性服務器326不需要防止其它服務器同時執(zhí)行可用性查詢操作。相反,在修改訂單承諾系統(tǒng)狀態(tài)數(shù)據(jù)的服務器中,采取預防以避免由多個服務器并行存取狀態(tài)數(shù)據(jù)。諸如獲得對狀態(tài)數(shù)據(jù)或其部分的互斥鎖定之類的這些預防是耗時的,并且可以導致讀/寫服務器處的低吞吐量,因為一個請求每次由一個服務器處理??捎眯苑掌鲗Υ鎯ζ鲀?nèi)概要數(shù)據(jù)執(zhí)行只讀檢查并且不修改庫存水平或其它狀態(tài)數(shù)據(jù)。此檢查的結果可以足夠滿足用戶的請求,例如,如果用戶檢查項目是否可用,并且不希望訂購項目。因此,可用性服務器執(zhí)行可以通過降低調(diào)度服務器上的請求負載來增加性能的第一級可用性檢查。多個可用性服務器可以同時運行,并且當系統(tǒng)運行以適配到系統(tǒng)負載時,運行服務器池中的可用性服務器的數(shù)目可以被動態(tài)地配置。
[0057]在一個或多個實施例中,概要數(shù)據(jù)結構330存儲訂單承諾數(shù)據(jù)的概要。概要結構330由例如具有用戶可配置的模型的請求中介使用以路由請求,并且由可用性服務器使用以確定項目可用性。概要數(shù)據(jù)被概括并組織以與存儲在數(shù)據(jù)細節(jié)數(shù)據(jù)庫中的數(shù)據(jù)相比較,減小存儲在存儲器中的數(shù)據(jù)量。概要數(shù)據(jù)可以是例如,產(chǎn)品、產(chǎn)品類別、產(chǎn)品關系、貨幣和由倉庫/位置規(guī)劃的庫存。
[0058]中介層306使用規(guī)則309,例如,產(chǎn)品到服務器節(jié)點映射317、或如在此其它地方描述的基于條件的規(guī)則,以選擇每個請求將被發(fā)送到的服務器。例如,請求320和322可以根據(jù)它們的屬性中的一個或多個,諸如發(fā)起請求的地理區(qū)域、請求被接收的時間、被訂購的項目的類型等,被劃分。每個服務器可以與一部分相關聯(lián)。在圖3A中,第一調(diào)度服務器348與第一部分346相關聯(lián)。第二調(diào)度服務器354和第N調(diào)度服務器360與第二部分347相關聯(lián)。對于具有在與第一部分346相關聯(lián)的第一范圍中的項目數(shù)字的項目的訂單調(diào)度請求322被請求中介306發(fā)給第一服務器348。對于具有在與第二部分347相關聯(lián)的第二范圍中的項目數(shù)字的項目的訂單調(diào)度請求322被請求中介306發(fā)給第二服務器354或第η服務器360。例如,當系統(tǒng)300正在操作并且服務器正在運行時,服務器與部分之間的關聯(lián)可以由用戶或管理員動態(tài)地改變,或響應于改變工作量級別和/或服務器負載級別、可用性等等。在一個或多個實施例中,系統(tǒng)包括其它類型的服務器,諸如運送選項服務器366,并且請求中介306可以將運送選項請求消息路由到運送選項服務器366。
[0059]在一組實施例中,系統(tǒng)度量和管理模塊(未示出)可以控制并監(jiān)視系統(tǒng)中各種類型的服務器,包括可用性服務器、調(diào)度服務器、和運送選項服務器。管理模塊提供對于服務器群344或用于各個節(jié)點346的控制操作,例如,開始/停止,并且也可以提供對于諸如存儲器負載、CPU負載、激活線程信息、請求吞吐量、和最小/最大/平均請求處理時間之類的度量的統(tǒng)計信息。管理模塊可以通過自動地開始/停止服務器節(jié)點支持動態(tài)可分級性以維護預定義的限制內(nèi)的平均系統(tǒng)吞吐量??梢杂蔁峤粨Q能力提供24x7支持,其中服務器節(jié)點可以被啟動并利用背景中的最近細節(jié)數(shù)據(jù)382更新,并且然后服務器節(jié)點可以接管激活服務器節(jié)點的請求通道。之前激活的服務器然后可以被關閉。從終端用戶視角,此服務器交換可以被無縫實現(xiàn),并且沒有請求被丟失。
[0060]圖4是示出了根據(jù)本發(fā)明的一個實施例的高吞吐量全球訂單承諾系統(tǒng)的示范性中介層的方框圖。中介層包括請求中介406,其可以具有對產(chǎn)品和產(chǎn)品組與關系的用戶定義的規(guī)則409。請求中介406的分解組件430可以將輸入請求消息320分割為多個子請求。組織組件432可以依據(jù)規(guī)則409將每個請求或子請求路由到不同的服務器,以使得請求(和子請求)可以被并 行處理。除了規(guī)則409或代替規(guī)則409,產(chǎn)品服務器映射410可被使用以選擇請求要被發(fā)送到的服務器。可用的服務器可以包括在引擎服務器池408中,其分解組件430可以查詢以確定哪一個服務器可用。合并組件434然后可以將來自于子請求的結果合并到作為對請求消息的響應返回的單個結果消息。規(guī)則409可以是可配置的,并且可以基于庫存閾值、產(chǎn)品類別或族、產(chǎn)品關系等等。規(guī)則409可以被更新,以使得更新的規(guī)則用于將來請求?;诮邮盏牟樵冋埱笙?20或調(diào)度請求消息322,請求中介406檢查存儲器內(nèi)概要數(shù)據(jù)結構和用戶定義的規(guī)則,并且動態(tài)地確定要將請求路由到存儲器內(nèi)可用性查詢或調(diào)度服務器中的哪一個。請求中介406也可以將請求路由到存儲器內(nèi)運送選項引擎366,并且確定要使用多個存儲器內(nèi)的運送選項服務器366的哪一個。
[0061]圖5是示出了根據(jù)本發(fā)明的一個實施例的高吞吐量全球訂單承諾系統(tǒng)的示范性可用性查詢服務器池(即,群)324的方框圖??捎眯苑掌?24可以將快速可見性提供到由位置的現(xiàn)在和將來存貨可用性中。可用性服務器325可以將從網(wǎng)絡商店310中經(jīng)由中介層306路由的客戶材料可用性查詢320作為輸入。利用諸如時程化的可用性、產(chǎn)品狀態(tài)等之類的概要數(shù)據(jù)信息,可用性服務器326可以返回包括用于項目522的請求量524的最早可用日期526的響應321。概要數(shù)據(jù)374被存儲在存儲器內(nèi)數(shù)據(jù)庫374中,其可以經(jīng)由共享存儲器或網(wǎng)絡通信存取,如上參考圖3Α所述。
[0062]可用性服務器326可以對存儲器內(nèi)概要數(shù)據(jù)結構執(zhí)行只讀檢查,并且不降低庫存級別??捎眯苑掌?26可以執(zhí)行第一級別類型的可用性檢查,以便最大化性能。由于可用性服務器326對內(nèi)部概要數(shù)據(jù)執(zhí)行的查詢的只讀特性,可用性服務器324的操作不需要阻塞調(diào)度服務器344。可用性服務器池324中的服務器的數(shù)目可以被動態(tài)地配置為適應改變的系統(tǒng)負載。
[0063]在一個示例中,規(guī)則309可以被定義為將對不同類型的產(chǎn)品的請求路由到不同的服務器324。假如對產(chǎn)品A或相關產(chǎn)品B和C的請求被路由到第一可用性服務器326,并且對產(chǎn)品X或相關商品Y和Z的請求被路由到第二可用性服務器327。第一服務器326然后可以被配置有指示服務器326將處理哪些項目的項目列表550。項目列表550包括產(chǎn)品A,并且還指示產(chǎn)品A與產(chǎn)品B和C有關。項目列表550因此指示服務器326分配給產(chǎn)品A、B、和C,并且應當處理它接收的對于那些產(chǎn)品的任何請求。在一個示例中,服務器326可以忽略對不在項目列表550中的項目的請求,盡管中介306通常應當不向服務器326發(fā)送對未分配的項目的請求。項目列表550也可以被存儲在請求中介306中或可被請求中介306存取,或?qū)穆酚梢?guī)則可以被增加到請求中介306的路由規(guī)則列表309。在此示例中,第一路由規(guī)則可以被定義具有諸如“產(chǎn)品是A、B、或C”之類的條件和諸如“路由到服務器節(jié)點I”之類的動作。在其它實施例中,此規(guī)則可以被作為對項目列表550的替換而存儲在服務器326中。
[0064]類似地,第二服務器327可以被配置有指示服務器327將處理哪些項目的項目列表552 (或?qū)囊?guī)則)。項目列表552包括產(chǎn)品X,并且還指示產(chǎn)品X與產(chǎn)品Y和Z有關,以使得服務器327將處理參考或包括產(chǎn)品X、Y、和Z中的至少一個的請求。類似地,第二例程規(guī)則可以具有諸如“產(chǎn)品是X、Y、或Ζ”之類的條件和“路由到服務器節(jié)點2”的動作。也預期其它類型的規(guī)則,例如搜索數(shù)據(jù)表以尋找產(chǎn)品標識符的規(guī)則,和選擇與數(shù)據(jù)表中的產(chǎn)品標識符相關聯(lián)的服務器節(jié)點的動作。
[0065]圖6是示出了 根據(jù)本發(fā)明的一個實施例的高吞吐量全球訂單承諾系統(tǒng)的示范性存儲器內(nèi)運送選項服務器600的方框圖。運送選項服務器600可以為運送選項的列表提供對應的期望到達日期。運送選項服務器600接收項目代碼622和運送日期624作為輸入,并且可以基于用于具體項目的可用的運送選項導出期望的到達日期626。到運送選項服務器600的輸入可以是來自于請求中介306的運送選項請求620。在一個示例中,用戶檢查網(wǎng)絡商店310上的可用性,并且如果查詢的材料和量可用,則下一步驟可以是檢查可用的運送選項。運送選項服務器600可以返回具有對于請求的項目的期望的到達日期626的一組有效的運送選項。運送選項引擎600可以因此從運送選項選擇中分隔材料承諾和調(diào)度。
[0066]圖7是示出了根據(jù)本發(fā)明的一個實施例的高吞吐量全球訂單承諾系統(tǒng)的示范性存儲器內(nèi)概要數(shù)據(jù)結構702的方框圖。存儲器內(nèi)概要數(shù)據(jù)結構702被存儲在存儲器內(nèi)數(shù)據(jù)庫服務器370中,例如共享存儲器區(qū)域中。數(shù)據(jù)結構702存儲諸如產(chǎn)品、產(chǎn)品類別、產(chǎn)品關系、以及當前和由倉庫/位置規(guī)劃的庫存之類的信息,其可以由請求中介306使用以路由請求、并且由可用性查詢服務器324使用。概要數(shù)據(jù)結構702也可以包含源、制造、供應商、和能力信息以便由調(diào)度服務器344使用。存儲器內(nèi)概要數(shù)據(jù)結構702中的數(shù)據(jù)可以被組織并概括以減少數(shù)據(jù)量和/或存取。概要數(shù)據(jù)702可以提供可配置的冗余和柱狀存儲以用于快速存取,并且可以被索引以使得搜索和存取高效得多。
[0067]由于調(diào)度改變引起的任何庫存變化可以利用異步和接近實時更新被動態(tài)地反映在存儲器數(shù)據(jù)結構702中。由于運送、接收、或其它引起的庫存變化可以被動態(tài)地反映在存儲器數(shù)據(jù)結構中,并且如果用戶選定,則接近于實時更新。設置相關的變化(新項目、新用戶、新倉庫/位置等等)可以應用戶請求被引入存儲器結構702中。
[0068]在一個或多個實施例中,可用性服務器326維護概要結構330中的概要數(shù)據(jù)702的至少一部分的副本,其可以包括項目750與項目可用性752之間的關聯(lián)。如上所述,概要數(shù)據(jù)702是詳細數(shù)據(jù)382的部分的概要。概要處理334響應于從存儲器內(nèi)數(shù)據(jù)庫370接收到的通知生成并更新概要結構330以包含概要數(shù)據(jù)702中的信息的副本。概要處理可以利用數(shù)據(jù)結構和提供數(shù)據(jù)項的快速查找和修改的算法構成概要結構330。例如,概要結構330可以由每個產(chǎn)品位置組合的可用性狀態(tài)(例如,“可用”、“存貨小于10”、“缺貨”或可替換地“可用”或“在[η]天內(nèi)可用”)的產(chǎn)品和位置的列表構成。
[0069]圖8是示出了根據(jù)本發(fā)明的一個實施例的高吞吐量全球訂單承諾系統(tǒng)300的示范性池,即,調(diào)度服務器348、354、360的群344的方框圖。每個調(diào)度服務器348包括可以基于項目可用性執(zhí)行對請求322的調(diào)度的訂單承諾引擎350。調(diào)度服務器從請求中介306或其它源中接收調(diào)度請求322。每個訂單調(diào)度請求322包括識別要被調(diào)度的項目的項目代碼522、和要被調(diào)度的項目的量524?;谡埱?22的內(nèi)容和調(diào)度引擎350的設置,可以在調(diào)度之前檢查單級庫存可用性,或可以檢查多級可用性,在這種情況下可以考慮諸如組件、生產(chǎn)資源、供應商能力、和領先時間之類的信息。也可以包括產(chǎn)品替換和組件替換。最終運送日期526、產(chǎn)品、和從位置528 (例如,倉庫或供應商地點)的運送可以被在訂單調(diào)度請求消息323中到返回中介模塊306。
[0070]每個調(diào)度服務器348可以存取或存儲諸如組織、日歷等等之類的共享信息。調(diào)度服務器也可以具有諸如一組 產(chǎn)品、產(chǎn)品類別/族、和用于那些產(chǎn)品/產(chǎn)品類別/族的可用性信息或準備可用性信息所需的信息之類的專用的特定于服務器的信息。每個調(diào)度服務器348可以在存儲器內(nèi)數(shù)據(jù)庫370的概要數(shù)據(jù)374中存儲調(diào)度結果的部分。在每個調(diào)度服務器344與訂單數(shù)據(jù)的不同分區(qū)相關聯(lián)的情況下,在調(diào)度服務器344之間沒有沖突或競爭。因此,對不同產(chǎn)品分區(qū)中的產(chǎn)品的請求可以在不同的調(diào)度節(jié)點上被并行處理。對相同產(chǎn)品分區(qū)的產(chǎn)品的請求可以在產(chǎn)品被分配到的調(diào)度節(jié)點上被依次處理。要被調(diào)度服務器348處理的項目可以被在項目列表850中指定,其與上面參考圖5描述的項目列表550相似。類似地,要由調(diào)度服務器354處理的項目可以被在項目列表852中指定。
[0071]圖9是根據(jù)本發(fā)明的實施例的中介處理的說明性流程圖。圖9的處理可以例如由計算機系統(tǒng)的處理器執(zhí)行的機器可讀指令實施,并且可以由圖3Α的請求中介306執(zhí)行。處理從塊902通過接收諸如訂單調(diào)度請求322之類的訂單承諾請求開始。塊904確定請求的類型,如上參考請求中介306所述。塊906確定請求是否是可用性請求類型的。如果是的話,則塊908評估路由規(guī)則309以確定請求應當發(fā)送到的服務器。塊908可以咨詢產(chǎn)品服務器映射317以確定對應于在請求中指定的產(chǎn)品的服務器。塊910利用通信網(wǎng)絡、共享存儲器、進程間通信、或其它通信的形式將請求轉發(fā)(例如發(fā)送)到識別的可用性服務器??捎眯苑掌魃蓪φ埱蟮捻憫?,并且塊920接收并轉發(fā)響應到網(wǎng)絡服務或發(fā)送請求322的其它實體。
[0072]如果塊906確定請求不是可用性請求,則塊912確定請求是否是調(diào)度請求類型的。如果是的話,則塊914評估路由規(guī)則309以確定請求應當發(fā)送到的服務器。塊914評估路由規(guī)則以識別調(diào)度服務器,類似于塊906,并且塊916將請求轉發(fā)到識別的調(diào)度服務器。調(diào)度服務器調(diào)度訂單并且生成結果,塊920接收該結果并轉發(fā)給進行調(diào)用的網(wǎng)絡服務或發(fā)送請求322的其它實體。
[0073]圖10是根據(jù)本發(fā)明的實施例的可用性查詢處理的說明性流程圖。圖10的處理可以例如由計算機系統(tǒng)的處理器執(zhí)行的機器可讀指令執(zhí)行,并且可以由一個或多個可用性服務器324執(zhí)行。圖10的處理從塊1002通過接收對于項目的可用性查詢請求320開始。請求可以從例如網(wǎng)絡服務接收到,其隨后轉發(fā)來自于請求中介的請求。塊1004從概要結構330中檢索對于在請求中指定的項目的可用性信息。塊1006使用可用性信息以確定項目的最早可用日期。塊1008發(fā)送確定的最早可用日期作為對查詢請求的響應。
[0074]圖11是根據(jù)本發(fā)明的實施例的調(diào)度處理的說明性流程圖。圖11的處理可以例如由計算機系統(tǒng)的處理器執(zhí)行的機器可讀指令實施,并且可以由圖3A的一個或多個調(diào)度服務器344執(zhí)行。處理從塊1102通過接收對于特定項目的訂單調(diào)度請求開始。塊1104將請求提交到調(diào)度引擎350,其確定用于項目的調(diào)度和承諾的完成日期并且在訂單細節(jié)數(shù)據(jù)庫382中存儲調(diào)度和完成日期。塊1106開始新的(或使用現(xiàn)有的)單獨的控制線程以利用新的調(diào)度數(shù)據(jù)更新存儲器內(nèi)數(shù)據(jù)庫370中的概要數(shù)據(jù)374。即,服務器線程在繼續(xù)處理附加消息之前不等待存儲器內(nèi)數(shù)據(jù)庫370被更新。塊1110將調(diào)度響應321、323發(fā)送到從其接收調(diào)度請求的實體(例如,網(wǎng)絡服務314)。當單獨的線程已經(jīng)更新了概要數(shù)據(jù)374時,存儲器內(nèi)數(shù)據(jù)庫370檢測更新和并且向每個可用性服務器326中的概要處理330通知變化,如在塊1108所示。在塊1112處概要處理330檢索對概要數(shù)據(jù)庫382的更新并且在概要結構330中存儲更新,之后處理結束。
[0075]在上述說明書中,為了例示目的,以特定順序描述方法。應當理解,在可替換的實施例中,所述方法可以以與描述的不同的順序執(zhí)行。也應當理解,上面描述的方法可以由硬件元件執(zhí)行或可以被包括在機器可執(zhí)行指令的序列中,其可以用來使得諸如通用或?qū)S锰幚砥骰蚶弥噶罹幊痰倪壿嬰娐分惖臋C器執(zhí)行所述方法。這些機器可執(zhí)行指令可以被存儲在一個或多個機器可讀介質(zhì)上,諸如CD-ROM或其它類型光盤、軟磁盤、ROM、RAM、EPROM、EEPR0M、磁或光卡、閃速存儲器、或適合于存儲電子指令的其它類型機器可讀介質(zhì)??商鎿Q地,所述方法可以由硬件和軟件組合執(zhí)行。
[0076]雖然這里已經(jīng)詳細描述本發(fā)明的說明性和目前優(yōu)選的實施例,但是應當理解,可以別樣不同地包含并采用本發(fā)明構思,并且除由現(xiàn)有技術限制之外,附加權利要求書預期被解釋以包括此類變化。
【權利要求】
1.一種方法,包括: 由計算機系統(tǒng)接收請求指定項目的可用性狀態(tài)的查詢; 由所述計算機系統(tǒng)從存儲在所述計算機系統(tǒng)的存儲器中的概要數(shù)據(jù)結構中檢索與該項目相關聯(lián)的概要數(shù)據(jù); 由所述計算機系統(tǒng)基于所述概要數(shù)據(jù)確定用于所述指定項目的可用性數(shù)據(jù);以及 由所述計算機系統(tǒng)基于確定的可用性數(shù)據(jù)發(fā)送指示所述項目的可用性的查詢響應。
2.如權利要求1所述的方法,其中檢索概要數(shù)據(jù)包括針對與所述項目相關聯(lián)的所述概要數(shù)據(jù)查詢存儲器內(nèi)數(shù)據(jù)庫。
3.如權利要求1所述的方法,其中檢索概要數(shù)據(jù)在沒有獲得對存儲器內(nèi)數(shù)據(jù)庫的專用存取的情況下完成。
4.如權利要求1所述的方法,其中所述概要數(shù)據(jù)包括一個或多個項目標識符和關聯(lián)的可用性信息。
5.如權利要求4所述的方法,其中所述可用性信息包括所述項目的一個或多個可用性日期。
6.如權利要求1所述的方 法,其中確定可用性數(shù)據(jù)包括通過所述概要數(shù)據(jù)檢索與所述項目相關聯(lián)的可用性日期。
7.如權利要求1所述的方法,還包括: 接收指示更新的可用性信息可用的通知;以及 在所述概要數(shù)據(jù)結構中存儲所述更新的可用性信息。
8.如權利要求6所述的方法,其中所述概要數(shù)據(jù)結構被優(yōu)化以用于數(shù)據(jù)的快速插入和檢索。
9.如權利要求1所述的方法,還包括: 由所述計算機系統(tǒng)接收識別要被調(diào)度的項目的調(diào)度請求; 由所述計算機系統(tǒng)確定用于所述項目的調(diào)度; 由所述計算機系統(tǒng)將用于所述項目的可用性信息存儲在存儲器內(nèi)數(shù)據(jù)庫中,所述可用性信息基于所述調(diào)度;以及 由所述計算機系統(tǒng)基于所述調(diào)度發(fā)送調(diào)度響應。
10.如權利要求9所述的方法,其中所述存儲由單獨的線程執(zhí)行。
11.如權利要求9所述的方法,其中所述存儲使得存儲器內(nèi)數(shù)據(jù)庫生成指示更新的可用性信息可用的通知,并且該方法還包括: 在可用性服務器處接收指示更新的可用性信息可用的通知;以及 在所述可用性服務器處將所述更新的可用性信息存儲在所述概要數(shù)據(jù)結構中。
12.—種方法,包括: 由計算機系統(tǒng)接收與訂單承諾相關的請求,所述請求參考來自于能夠被訂購的多個項目中的至少一個項目; 由所述計算機系統(tǒng)確定所述請求的類型; 由所述計算機系統(tǒng)基于所述請求的類型、所述項目、將所述請求與可用性信息相關聯(lián)的概要數(shù)據(jù)、和參考一個或多個服務器的服務器配置數(shù)據(jù)來評估一個或多個路由規(guī)則;由所述計算機系統(tǒng)并且基于所述路由規(guī)則的評估,選擇與所述請求的類型對應的類型的服務器;以及 由所述計算機系統(tǒng)將所述請求傳送到所述服務器。
13.如權利要求12所述的方法,其中一個或多個服務器與能夠被訂購的多個項目的一個或多個部分相關聯(lián),并且選擇服務器還包括選擇與關聯(lián)于所述項目的部分相關聯(lián)的服務器。
14.如權利要求12所述的方法,其中所述請求是可用性查詢請求或訂單調(diào)度請求。
15.如權利要求12所述的方法,其中所述一個或多個規(guī)則的每一個包括條件和服務器標識符,并且所述服務器是基于與所述條件對其評估為真的規(guī)則相關聯(lián)的服務器標識符確定的。
16.如權利要求15所述的方法,其中所述條件包括參考概要數(shù)據(jù)、請求的一個或多個屬性的表達式。
17.如權利要求12所述的方法,其中所述請求是可用性查詢請求,并且傳送請求包括將所述請求傳送到基于所 述路由規(guī)則的評估而選擇的可用性服務器。
18.如權利要求12所述的方法,其中所述請求是訂單調(diào)度請求,并且傳送請求包括將所述請求傳送到基于所述路由規(guī)則的評估選擇的調(diào)度服務器。
19.一種系統(tǒng),包括: 處理器,被配置為: 接收與訂單承諾相關的請求,所述請求參考來自于能夠被訂購的多個項目中的至少一個項目; 確定所述請求的類型; 基于所述請求的類型、所述項目、將所述請求與可用性信息相關聯(lián)的概要數(shù)據(jù)、和參考一個或多個服務器的服務器配置數(shù)據(jù)來評估一個或多個路由規(guī)則; 基于所述路由規(guī)則的評估選擇與所述請求的類型對應的類型的服務器;以及 將請求傳送到所述服務器; 接收所述請求,其中所述請求包括請求指定項目的可用性狀態(tài)的查詢; 從存儲在計算機系統(tǒng)的存儲器中的概要數(shù)據(jù)結構中檢索與所述項目相關聯(lián)的概要數(shù)據(jù); 基于所述概要數(shù)據(jù)確定用于所述指定項目的可用性數(shù)據(jù);以及 基于確定的可用性數(shù)據(jù)發(fā)送指示所述項目的可用性的查詢響應。
20.—種方法,包括: 由計算機系統(tǒng)接收識別要被調(diào)度的項目的調(diào)度請求; 由所述計算機系統(tǒng)確定用于所述項目的調(diào)度; 由所述計算機系統(tǒng)將用于所述項目的可用性信息存儲在存儲器內(nèi)數(shù)據(jù)庫中,所述可用性信息基于所述調(diào)度;以及 由所述計算機系統(tǒng)基于所述調(diào)度發(fā)送調(diào)度響應。
【文檔編號】G06Q30/06GK104025144SQ201280053526
【公開日】2014年9月3日 申請日期:2012年9月26日 優(yōu)先權日:2011年9月30日
【發(fā)明者】S·萊克什米娜雷楊安, R·古森斯, M·李, C·羅塔厄 申請人:甲骨文國際公司