TWI763225B - 用於路由網路流量的電腦實行系統以及方法 - Google Patents
用於路由網路流量的電腦實行系統以及方法 Download PDFInfo
- Publication number
- TWI763225B TWI763225B TW109147088A TW109147088A TWI763225B TW I763225 B TWI763225 B TW I763225B TW 109147088 A TW109147088 A TW 109147088A TW 109147088 A TW109147088 A TW 109147088A TW I763225 B TWI763225 B TW I763225B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- database
- network connection
- computer
- databases
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 230000004044 response Effects 0.000 claims abstract description 14
- 238000012544 monitoring process Methods 0.000 claims abstract description 6
- 230000008569 process Effects 0.000 description 34
- 238000012384 transportation and delivery Methods 0.000 description 31
- 239000000872 buffer Substances 0.000 description 15
- 230000010076 replication Effects 0.000 description 11
- 238000007726 management method Methods 0.000 description 9
- 238000013068 supply chain management Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 230000002452 interceptive effect Effects 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 5
- 238000005457 optimization Methods 0.000 description 4
- 238000012856 packing Methods 0.000 description 4
- 229920001690 polydopamine Polymers 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 201000007197 atypical autism Diseases 0.000 description 3
- 238000013475 authorization Methods 0.000 description 3
- 208000029560 autism spectrum disease Diseases 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000001407 pulse-discharge detection Methods 0.000 description 3
- 230000007723 transport mechanism Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 241001272996 Polyphylla fullo Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000004941 influx Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 230000035939 shock Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/101—Server selection for load balancing based on network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1012—Server selection for load balancing based on compliance of requirements or conditions with available server resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1036—Load balancing of requests to servers for services different from user content provisioning, e.g. load balancing across domain name servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Transfer Between Computers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Supply And Distribution Of Alternating Current (AREA)
- Control Of Multiple Motors (AREA)
- Motorcycle And Bicycle Frame (AREA)
Abstract
本發明提供系統及方法,用於:監視多個網路連接資料庫
的利用率;自第一使用者裝置接收針對儲存於多個網路連接資料庫中的資料元素的第一資料讀取請求;基於利用率及負荷分擔比來選擇多個網路連接資料庫當中的第一目標資料庫;產生針對儲存於第一目標資料庫中的資料元素的拷貝的第一資料查詢;以及回應於第一資料讀取請求將資料元素的拷貝自第一目標資料庫轉發至第一使用者裝置。
Description
本揭露內容大體上是關於用於跨多個伺服器平衡網路負荷或流量以達成超高伺服器可利用性的電腦化方法及系統。特定而言,本揭露內容的實施例是關於藉由智慧型地跨多個伺服器路由網路流量來最大化正常運行時間且最小化來自伺服器的延長使用的錯誤的發明性及非習知系統。
在當今社會中,愈來愈多的日常活動在線上進行,訪問網際網路的裝置的數目及線上儲存的資料量呈指數增長。然而,網際網路不是儲存大量資料的線上抽象場所。其為客戶端裝置(例如,行動電話、電腦、伺服器)及儲存裝置(例如,硬驅動機)之間的連接的網,所述客戶端裝置及儲存裝置實體地容納於類似於資料中心或伺服器群的某處。
伺服器是指在包括儲存裝置陣列的電腦系統上運行的電腦程式。舉例而言,當網站的電腦可讀資料檔案集合(例如,用於渲染網站的電腦可讀指令、用於在網站上顯示的影像檔案)儲存於伺服器的儲存裝置中時,將網站代管於伺服器上。當使用者藉由將其網址輸入至網頁瀏覽器中來訪問網站時,使用者的裝置(亦即,
客戶端裝置)向伺服器發送檢索適當檔案的查詢且處理所述檔案以在網頁瀏覽器上顯示網站。
儘管本質上簡單,但針對訪問儲存於伺服器中的檔案的個別查詢可能在伺服器上增加巨大負荷。已知查詢中的急劇激增導致伺服器崩潰,諸如當遊戲伺服器因來自在其啟動日期登錄遊戲的數百萬人的查詢而淹沒時,以及當售票網站在著名藝術家的音樂會的門票發行時淹沒時。
另外,伺服器無法在不確定時段內持續在線。其必須不時地離線以進行維護,此時由伺服器提供的任何服務(例如,網站、遊戲等)對於使用者是不可獲得的。
一些人已實行多個伺服器以解決此問題。在此實施方案中,在伺服器當中分擔由傳入查詢產生的負荷。然而,使用者裝置未經程式化以判定其應將其查詢發送至哪一伺服器以獲得最佳服務,且用所述能力對個別使用者裝置進行程式化增加總體動態的複雜性。將路由演算法實行於數百萬個使用者裝置將使得裝置因增加的複雜性而更易發生故障。
因此,需要用於管理由場景後方的傳入查詢產生的網路負荷的系統及方法,使得在沒有來自使用者裝置的任何額外指令的情況下將傳入查詢分配給不同伺服器。此類系統及方法將減輕個別伺服器上的負荷、降低其故障率,且整體上達成更大的正常運行時間,其中負荷在不同伺服器之間轉移,使得伺服器的子集可在服務保持在線的同時離線。
本揭露內容的一個態樣是針對一種用於路由網路流量的電腦實行系統。所述系統可包括儲存指令的記憶體及經組態以執行指令的至少一個處理器。所述指令可包括:監視多個網路連接資料庫的利用率;自第一使用者裝置接收針對儲存於所述多個網路連接資料庫中的資料元素的第一資料讀取請求;基於所述利用率及負荷分擔比來選擇所述多個網路連接資料庫當中的第一目標資料庫;產生針對儲存於所述第一目標資料庫中的所述資料元素的拷貝的第一資料查詢;以及回應於所述第一資料讀取請求將所述資料元素的所述拷貝自所述第一目標資料庫轉發至所述第一使用者裝置。
本揭露內容的又一態樣是針對一種用於路由網路流量的電腦實行方法。所述方法可包括:監視多個網路連接資料庫的利用率;自第一使用者裝置接收針對儲存於所述多個網路連接資料庫中的資料元素的第一資料讀取請求;基於所述利用率及負荷分擔比來選擇所述多個網路連接資料庫當中的第一目標資料庫;產生針對儲存於所述第一目標資料庫中的所述資料元素的拷貝的第一資料查詢;以及回應於所述第一資料讀取請求將所述資料元素的所述拷貝自所述第一目標資料庫轉發至所述第一使用者裝置。
再另外,本揭露內容的另一態樣是針對一種用於路由網路流量的電腦實行系統。所述系統可包括:多個網路連接資料庫,經組態以儲存相同資料集合;協調器,經組態以監視所述多個網路連接資料庫的網路流量及網路負荷;以及服務程式,經組態以接收檢索儲存於所述多個網路連接資料庫中的資訊的多個使用者請求,其中所述協調器經進一步組態以將所述多個使用者請求的子
集路由至所述多個網路連接資料庫當中的第一資料庫,其中所述第一資料庫經組態以回應於所述多個使用者請求的所述子集而傳輸資料。
本文中亦論述其他系統、方法以及電腦可讀媒體。
1、10、15:資料集
100:系統
101:運送授權技術系統
102A、107A、107B、107C、119A、119B、119C:行動裝置
102B:電腦
103:外部前端系統
105:內部前端系統
107:運輸系統
109:賣方入口網站
111:運送及訂單追蹤系統
113:履行最佳化系統
115:履行通信報閘道
117:供應鏈管理系統
119:倉庫管理系統
121A、121B、121C:第3方履行系統
123:履行中心授權系統
125:勞動管理系統
200:履行中心
201、222:卡車
202A、202B、208:物件
203:入站區
205:緩衝區
206:叉車
207:卸貨區
209:揀貨區
210:儲存單元
211:包裝區
213:樞紐區
214:運輸機構
215:營地區
216:牆
218、220:包裹
224A、224B:遞送工作者
226:汽車
300、500:網路化環境
310:資料源
320:寫入資料庫
330:資料串流器
340:資料佇列器
350A:複製串流器A
350B:複製串流器B
360A:讀取資料庫A
360B:讀取資料庫B
400、600:過程
410、420、430、440、450、460、610、620、630、640、650:步驟
510:讀取請求
520:協調器
530:服務程式
540:所請求資料
t1、t2、t3、t4:時間
圖1A為與所揭露實施例一致的示出包括用於實現運送、運輸以及物流操作的通信的電腦化系統的網路的例示性實施例的示意性方塊圖。
圖1B描繪與所揭露實施例一致的包含滿足搜尋請求的一或多個搜尋結果以及交互式使用者介面元素的樣本搜尋結果頁(Search Result Page;SRP)。
圖1C描繪與所揭露實施例一致的包含產品及關於所述產品的資訊以及交互式使用者介面元素的樣本單一顯示頁(Single Display Page;SDP)。
圖1D描繪與所揭露實施例一致的包含虛擬購物車中的物件以及交互式使用者介面元素的樣本購物車頁。
圖1E描繪與所揭露實施例一致的包含來自虛擬購物車的物件以及關於購買及運送的資訊以及交互式使用者介面元素的樣本訂單頁。
圖2為與所揭露實施例一致的經組態以利用所揭露電腦化系統的例示性履行中心的圖解圖示。
圖3為與所揭露實施例一致的示出包括用於用新資訊更新資
料庫且將所述新資訊複製至多個資料庫的電腦化系統的網路化環境的例示性實施例的示意性方塊圖。
圖4為與所揭露實施例一致的用於用新資訊更新資料庫且將所述新資訊複製至多個資料庫的例示性電腦化過程的流程圖。
圖5為與所揭露實施例一致的示出包括用於處理傳入查詢的電腦化系統的網路化環境的例示性實施例的示意性方塊圖。
圖6為與所揭露實施例一致的用於處理傳入查詢的例示性電腦化過程的流程圖。
以下詳細描述參考隨附圖式。只要可能,即在圖式及以下描述中使用相同附圖標號來指代相同或類似部分。儘管本文中描述若干示出性實施例,但修改、調適以及其他實施方案是可能的。舉例而言,可對圖式中所示出的組件及步驟進行替代、添加或修改,且可藉由取代、重新排序、移除步驟或將步驟添加至所揭露方法來修改本文中所描述的示出性方法。因此,以下詳細描述不限於所揭露實施例及實例。實情為,本發明的正確範圍由隨附申請專利範圍界定。
本揭露內容的實施例是針對智慧型地跨多個伺服器路由網路流量的電腦化方法及系統,其中期望恆定正常運行時間及最小錯誤率。
參考圖1A,繪示示出包括用於實現運送、運輸以及物流操作的通信的電腦化系統的系統的例示性實施例的示意性方塊圖100。如圖1A中所示出,系統100可包含各種系統,所述系統中
的每一者可經由一或多個網路彼此連接。所述系統亦可經由直接連接(例如,使用電纜)彼此連接。所描繪系統包含運送授權技術(shipment authority technology;SAT)系統101、外部前端系統103、內部前端系統105、運輸系統107、行動裝置107A、行動裝置107B以及行動裝置107C、賣方入口網站109、運送及訂單追蹤(shipment and order tracking;SOT)系統111、履行最佳化(fulfillment optimization;FO)系統113、履行通信報閘道(fulfillment messaging gateway;FMG)115、供應鏈管理(supply chain management;SCM)系統117、倉庫管理系統119、行動裝置119A、行動裝置119B以及行動裝置119C(描繪為位於履行中心(fulfillment center;FC)200內部)、第3方履行系統121A、第3方履行系統121B以及第3方履行系統121C、履行中心授權系統(fulfillment center authorization;FC Auth)123以及勞動管理系統(labor management system;LMS)125。
在一些實施例中,SAT系統101可實行為監視訂單狀態及遞送狀態的電腦系統。舉例而言,SAT系統101可判定訂單是否超過其承諾遞送日期(PDD)且可採取適當的動作,包含發起新訂單、對未遞送訂單中的物件進行重新運送、取消未遞送訂單、發起與訂購客戶的連絡,或類似者。SAT系統101亦可監視其他資料,包含輸出(諸如在特定時間段期間運送的包裹的數目)及輸入(諸如接收到的用於運送的空紙板盒的數目)。SAT系統101亦可充當系統100中的不同裝置之間的閘道,從而(例如,使用儲存及轉發或其他技術)實現諸如外部前端系統103及FO系統113的裝置之間的通信。
在一些實施例中,外部前端系統103可實行為使得外部使用者能夠與系統100中的一或多個系統交互的電腦系統。舉例而言,在系統100使得系統的呈現能夠允許使用者針對物件下訂單的實施例中,外部前端系統103可實行為接收搜尋請求、呈現物件頁以及索求支付資訊的網頁伺服器。舉例而言,外部前端系統103可實行為電腦或電腦運行軟體,諸如阿帕奇(Apache)HTTP伺服器、微軟網際網路資訊服務(Internet Information Service;IIS)、NGINX,或類似者。在其他實施例中,外部前端系統103可運行經設計以接收及處理來自外部裝置(例如,行動裝置102A或電腦102B)的請求、基於彼等請求自資料庫及其他資料儲存庫獲取資訊,以及基於所獲取的資訊將回應提供至接收到的請求的定製網頁伺服器軟體。
在一些實施例中,外部前端系統103可包含網頁快取系統、資料庫、搜尋系統或支付系統中的一或多者。在一個態樣中,外部前端系統103可包括此等系統中的一或多者,而在另一態樣中,外部前端系統103可包括連接至此等系統中的一或多者的介面(例如,伺服器至伺服器、資料庫至資料庫,或其他網路連接)。
藉由圖1B、圖1C、圖1D以及圖1E所示出的例示性步驟集合將有助於描述外部前端系統103的一些操作。外部前端系統103可自系統100中的系統或裝置接收資訊以供呈現及/或顯示。舉例而言,外部前端系統103可代管或提供一或多個網頁,包含搜尋結果頁(SRP)(例如,圖1B)、單一詳情頁(Single Detail Page;SDP)(例如,圖1C)、購物車頁(例如,圖1D),或訂單頁(例如,圖1E)。(例如,使用行動裝置102A或電腦102B的)使
用者裝置可導航至外部前端系統103且藉由將資訊輸入至搜尋方塊中來請求搜尋。外部前端系統103可向系統100中的一或多個系統請求資訊。舉例而言,外部前端系統103可向FO系統113請求滿足搜尋請求的資訊。外部前端系統103亦可(自FO系統113)請求及接收包含於搜尋結果中的每一產品的承諾遞送日期或「PDD」。在一些實施例中,PDD可表示在特定時間段內(例如,在一天結束(下午11:59)前)訂購的情況下對含有產品的包裹將何時抵達使用者的所要位置或承諾將產品遞送至使用者的所要位置處的日期的估計。(PDD在下文相對於FO系統113進一步論述。)
外部前端系統103可基於資訊來準備SRP(例如,圖1B)。SRP可包含滿足搜尋請求的資訊。舉例而言,此可包含滿足搜尋請求的產品的圖像。SRP亦可包含每一產品的各別價格,或與每一產品的增強遞送選項、PDD、重量、大小、報價、折扣或類似者相關的資訊。外部前端系統103可(例如,經由網路)將SRP發送至請求使用者裝置。
使用者裝置可接著例如藉由點選或輕觸使用者介面或使用另一輸入裝置自SRP選擇產品,以選擇表示於SRP上的產品。使用者裝置可製訂對關於所選產品的資訊的請求且將其發送至外部前端系統103。作為回應,外部前端系統103可請求與所選產品相關的資訊。舉例而言,資訊可包含除針對各別SRP上的產品呈現的資訊以外的額外資訊。此可包含例如保存期限、原產國、重量、大小、包裹中的物件的數目、處置說明,或關於產品的其他資訊。資訊亦可包含類似產品的推薦(基於例如巨量資料及/或對購
買此產品及至少一個其他產品的客戶的機器學習分析)、頻繁詢問的問題的答案、來自客戶的評論、製造商資訊、圖像,或類似者。
外部前端系統103可基於接收到的產品資訊來準備SDP(單一詳情頁)(例如,圖1C)。SDP亦可包含其他交互式元素,諸如「現在購買」按鈕、「添加至購物車」按鈕、數量欄、物件的圖像,或類似者。SDP可更包含提供產品的賣方的列表。可基於每一賣方提供的價格來對列表進行排序,使得可在頂部處列出提供以最低價格銷售產品的賣方。亦可基於賣方排名來對列表進行排序,使得可在頂部處列出排名最高的賣方。可基於多個因素來製訂賣方排名,所述因素包含例如賣方的符合承諾PDD的過去的追蹤記錄。外部前端系統103可(例如,經由網路)將SDP遞送至請求使用者裝置。
請求使用者裝置可接收列出產品資訊的SDP。在接收到SDP後,使用者裝置可接著與SDP交互。舉例而言,請求使用者裝置的使用者可點選或以其他方式與SDP上的「放在購物車中」按鈕交互。此將產品添加至與使用者相關聯的購物車。使用者裝置可將把產品添加至購物車的此請求傳輸至外部前端系統103。
外部前端系統103可產生購物車頁(例如,圖1D)。在一些實施例中,購物車頁列出使用者已添加至虛擬「購物車」的產品。使用者裝置可藉由在SRP、SDP或其他頁上的圖標上點選或以其他方式與所述圖標交互來請求購物車頁。在一些實施例中,購物車頁可列出使用者已添加至購物車的所有產品,以及關於購物車中的產品的資訊(諸如每一產品的數量、每一產品每物件的價格、每一產品基於相關聯數量的價格)、關於PDD的資訊、遞送方
法、運送成本、用於修改購物車中的產品(例如,刪除或修改數量)的使用者介面元素、用於訂購其他產品或設置產品的定期遞送的選項、用於設置利息支付的選項、用於前進至購買的使用者介面元素,或類似者。使用者裝置處的使用者可在使用者介面元素(例如,寫著「現在購買」的按鈕)上點選或以其他方式與所述使用者介面元素交互,以發起對購物車中的產品的購買。在如此做後,使用者裝置可將發起購買的此請求傳輸至外部前端系統103。
外部前端系統103可回應於接收到發起購買的請求而產生訂單頁(例如,圖1E)。在一些實施例中,訂單頁重新列出來自購物車的物件且請求支付及運送資訊的輸入。舉例而言,訂單頁可包含請求關於購物車中的物件的購買者的資訊(例如,姓名、地址、電子郵件地址、電話號碼)、關於接收者的資訊(例如,姓名、地址、電話號碼、遞送資訊)、運送資訊(例如,遞送及/或揀貨的速度/方法)、支付資訊(例如,信用卡、銀行轉賬、支票、儲存的積分)、請求現金收據(例如,出於稅務目的)的使用者介面元素,或類似者的區段。外部前端系統103可將訂單頁發送至使用者裝置。
使用者裝置可輸入關於訂單頁的資訊,且點選或以其他方式與將資訊發送至外部前端系統103的使用者介面元素交互。自此處,外部前端系統103可將資訊發送至系統100中的不同系統,以使得能夠創建及處理具有購物車中的產品的新訂單。
在一些實施例中,外部前端系統103可進一步經組態以使得賣方能夠傳輸及接收與訂單相關的資訊。
在一些實施例中,內部前端系統105可實行為使得內部
使用者(例如,擁有、操作或租用系統100的組織的雇員)能夠與系統100中的一或多個系統交互的電腦系統。舉例而言,在系統100使得系統的呈現能夠允許使用者針對物件下訂單的實施例中,內部前端系統105可實行為使得內部使用者能夠查看關於訂單的診斷及統計資訊、修改物件資訊或審查與訂單相關的統計的網頁伺服器。舉例而言,內部前端系統105可實行為電腦或電腦運行軟體,諸如阿帕奇HTTP伺服器、微軟網際網路資訊服務(IIS)、NGINX,或類似者。在其他實施例中,內部前端系統105可運行經設計以接收及處理來自系統100中所描繪的系統或裝置(以及未描繪的其他裝置)的請求、基於彼等請求自資料庫及其他資料儲存庫獲取資訊,以及基於所獲取的資訊來將回應提供至接收到的請求的定製網頁伺服器軟體。
在一些實施例中,內部前端系統105可包含網頁快取系統、資料庫、搜尋系統、支付系統、分析系統、訂單監視系統或類似者中的一或多者。在一個態樣中,內部前端系統105可包括此等系統中的一或多者,而在另一態樣中,內部前端系統105可包括連接至此等系統中的一或多者的介面(例如,伺服器至伺服器、資料庫至資料庫,或其他網路連接)。
在一些實施例中,運輸系統107可實行為實現系統100中的系統或裝置與行動裝置107A至行動裝置107C之間的通信的電腦系統。在一些實施例中,運輸系統107可自一或多個行動裝置107A至行動裝置107C(例如,行動電話、智慧型手機、PDA,或類似者)接收資訊。舉例而言,在一些實施例中,行動裝置107A至行動裝置107C可包括由遞送工作者操作的裝置。遞送工作者
(其可為永久雇員、暫時雇員或輪班雇員)可利用行動裝置107A至行動裝置107C來實現對含有由使用者訂購的產品的包裹的遞送。舉例而言,為遞送包裹,遞送工作者可在行動裝置上接收指示遞送哪一包裹及將所述包裹遞送到何處的通知。在抵達遞送位置後,遞送工作者可(例如,在卡車的後部中或在包裹的條板箱中)定位包裹、使用行動裝置掃描或以其他方式擷取與包裹上的識別符(例如,條碼、影像、文字串、RFID標籤,或類似者)相關聯的資料,且遞送包裹(例如,藉由將其留在前門處、將其留給警衛、將其交給接收者,或類似者)。在一些實施例中,遞送工作者可使用行動裝置擷取包裹的相片及/或可獲得簽名。行動裝置可將資訊發送至運輸系統107,所述資訊包含關於遞送的資訊,包含例如時間、日期、GPS位置、相片、與遞送工作者相關聯的識別符、與行動裝置相關聯的識別符,或類似者。運輸系統107可在資料庫(未描繪)中儲存此資訊以用於由系統100中的其他系統訪問。在一些實施例中,運輸系統107可使用此資訊來準備追蹤資料且將所述追蹤資料發送至其他系統,從而指示特定包裹的位置。
在一些實施例中,某些使用者可使用一個種類的行動裝置(例如,永久工作者可使用具有定製硬體(諸如條碼掃描器、尖筆以及其他裝置)的專用PDA),而其他使用者可使用其他類型的行動裝置(例如,暫時工作者或輪班工作者可利用現成的行動電話及/或智慧型手機)。
在一些實施例中,運輸系統107可使使用者與每一裝置相關聯。舉例而言,運輸系統107可儲存使用者(由例如使用者識別符、雇員識別符或電話號碼表示)與行動裝置(由例如國際行動
設備身分(International Mobile Equipment Identity;IMEI)、國際行動訂用識別符(International Mobile Subscription Identifier;IMSI)、電話號碼、通用唯一識別符(Universal Unique Identifier;UUID)或全球唯一識別符(Globally Unique Identifier;GUID)表示)之間的關聯。運輸系統107可結合在遞送時接收到的資料使用此關聯來分析儲存於資料庫中的資料,以便尤其判定工作者的位置、工作者的效率,或工作者的速度。
在一些實施例中,賣方入口網站109可實行為使得賣方或其他外部實體能夠與系統100中的一或多個系統電子地通信的電腦系統。舉例而言,賣方可利用電腦系統(未描繪)來上載或提供賣方希望經由使用賣方入口網站109的系統100來銷售的產品的產品資訊、訂單資訊、連絡資訊或類似者。
在一些實施例中,運送及訂單追蹤系統111可實行為接收、儲存以及轉送關於含有由客戶(例如,由使用裝置102A至裝置102B的使用者)訂購的產品的包裹的位置的資訊的電腦系統。在一些實施例中,運送及訂單追蹤系統111可請求或儲存來自由遞送含有由客戶訂購的產品的包裹的運送公司操作的網頁伺服器(未描繪)的資訊。
在一些實施例中,運送及訂單追蹤系統111可請求及儲存來自在系統100中描繪的系統的資訊。舉例而言,運送及訂單追蹤系統111可請求來自運輸系統107的資訊。如上文所論述,運輸系統107可自與使用者(例如,遞送工作者)或車輛(例如,遞送卡車)中的一或多者相關聯的一或多個行動裝置107A至行動裝置107C(例如,行動電話、智慧型手機、PDA或類似者)接收
資訊。在一些實施例中,運送及訂單追蹤系統111亦可向倉庫管理系統(warehouse management system;WMS)119請求資訊以判定個別產品在履行中心(例如,履行中心200)內部的位置。運送及訂單追蹤系統111可向運輸系統107或WMS 119中的一或多者請求資料,在請求後處理所述資料,且將所述資料呈現給裝置(例如,使用者裝置102A及使用者裝置102B)。
在一些實施例中,履行最佳化(FO)系統113可實行為儲存來自其他系統(例如,外部前端系統103及/或運送及訂單追蹤系統111)的客戶訂單的資訊的電腦系統。FO系統113亦可儲存描述特定物件保存或儲存於何處的資訊。舉例而言,某些物件可能僅儲存於一個履行中心中,而某些其他物件可能儲存於多個履行中心中。在再其他實施例中,某些履行中心可經設計以僅儲存特定物件集合(例如,新鮮農產品或冷凍產品)。FO系統113儲存此資訊以及相關聯資訊(例如,數量、大小、接收日期、過期日期等)。
FO系統113亦可計算每一產品的對應PDD(承諾遞送日期)。在一些實施例中,PDD可以基於一或多個因素。舉例而言,FO系統113可基於下述者來計算產品的PDD:對產品的過去需求(例如,在一段時間期間訂購了多少次所述產品)、對產品的預期需求(例如,預測在即將到來的一段時間期間多少客戶將訂購所述產品)、指示在一段時間期間訂購了多少產品的全網路過去需求、指示預期在即將到來的一段時間期間將訂購多少產品的全網路預期需求、儲存於每一履行中心200中的產品的一或多個計數、哪一履行中心儲存每一產品、產品的預期或當前訂單,或類似者。
在一些實施例中,FO系統113可定期(例如,每小時)
判定每一產品的PDD且將其儲存於資料庫中以供檢索或發送至其他系統(例如,外部前端系統103、SAT系統101、運送及訂單追蹤系統111)。在其他實施例中,FO系統113可自一或多個系統(例如,外部前端系統103、SAT系統101、運送及訂單追蹤系統111)接收電子請求且按需求計算PDD。
在一些實施例中,履行通信報閘道(FMG)115可實行為自系統100中的一或多個系統(諸如FO系統113)接收呈一種格式或協定的請求或回應、將其轉換為另一格式或協定且將其以轉換後的格式或協定轉發至其他系統(諸如WMS 119或第3方履行系統121A、第3方履行系統121B或第3方履行系統121C)且反之亦然的電腦系統。
在一些實施例中,供應鏈管理(SCM)系統117可實行為進行預測功能的電腦系統。舉例而言,SCM系統117可基於例如下述者來預測對特定產品的需求水平:對產品的過去需求、對產品的預期需求、全網路過去需求、全網路預期需求、儲存於每一履行中心200中的計數產品、每一產品的預期或當前訂單,或類似者。回應於此預測水平及所有履行中心中的每一產品的量,SCM系統117可產生一或多個購買訂單以購買及儲備足夠數量,以滿足對特定產品的預測需求。
在一些實施例中,倉庫管理系統(WMS)119可實行為監視工作流程的電腦系統。舉例而言,WMS 119可自個別裝置(例如,裝置107A至裝置107C或裝置119A至裝置119C)接收指示離散事件的事件資料。舉例而言,WMS 119可接收指示此等裝置中的一者的使用掃描包裹的事件資料。如下文相對於履行中心200
及圖2所論述,在履行過程期間,可藉由特定階段處的機器(例如,自動式或手持式條碼掃描器、RFID讀取器、高速攝影機、諸如平板電腦119A、行動裝置/PDA 119B、電腦119C的裝置或類似者)掃描或讀取包裹識別符(例如,條碼或RFID標籤資料)。WMS 119可將指示掃描或包裹識別符的讀取的每一事件以及包裹識別符、時間、日期、位置、使用者識別符或其他資訊儲存於對應資料庫(未描繪)中,且可將此資訊提供至其他系統(例如,運送及訂單追蹤系統111)。
在一些實施例中,WMS 119可儲存使一或多個裝置(例如,裝置107A至裝置107C或裝置119A至裝置119C)與一或多個使用者(所述一或多個使用者與系統100相關聯)相關聯的資訊。舉例而言,在一些情形下,使用者(諸如兼職雇員或全職雇員)可與行動裝置相關聯,此是由於使用者擁有行動裝置(例如,行動裝置為智慧型手機)。在其他情形下,使用者可與行動裝置相關聯,此是由於使用者暫時保管行動裝置(例如,使用者在一天開始時拿到行動裝置,將在一天期間使用所述行動裝置,且將在一天結束時退還所述行動裝置)。
在一些實施例中,WMS 119可維護與系統100相關聯的每一使用者的工作日志。舉例而言,WMS 119可儲存與每一雇員相關聯的資訊,包含任何指定的過程(例如,自卡車卸載、自揀貨區揀取物件、合流牆(rebin wall)工作、包裝物件)、使用者識別符、位置(例如,履行中心200中的樓層或區)、藉由雇員經由系統移動的單位數目(例如,所揀取物件的數目、所包裝物件的數目)、與裝置(例如,裝置119A至裝置119C)相關聯的識別符,
或類似者。在一些實施例中,WMS 119可自計時系統接收登記及登出資訊,所述計時系統諸如在裝置119A至裝置119C上操作的計時系統。
在一些實施例中,第3方履行(3rd party fulfillment;3PL)系統121A至第3方履行系統121C表示與物流及產品的第三方提供商相關聯的電腦系統。舉例而言,儘管一些產品儲存於履行中心200中(如下文相對於圖2所論述),但其他產品可儲存於場外、可按需求生產,或可以其他方式不可供用於儲存於履行中心200中。3PL系統121A至3PL系統121C可經組態以(例如,經由FMG 115)自FO系統113接收訂單,且可直接為客戶提供產品及/或服務(例如,遞送或安裝)。在一些實施例中,3PL系統121A至3PL系統121C中的一或多者可為系統100的部分,而在其他實施例中,3PL系統121A至3PL系統121C中的一或多者可在系統100外部(例如,由第三方提供商擁有或操作)。
在一些實施例中,履行中心Auth系統(FC Auth)123可實行為具有各種功能的電腦系統。舉例而言,在一些實施例中,FC Auth 123可充當系統100中的一或多個其他系統的單一簽入(single-sign on;SSO)服務。舉例而言,FC Auth 123可使得使用者能夠經由內部前端系統105登入、判定使用者具有訪問運送及訂單追蹤系統111處的資源的類似特權,且使得使用者能夠在不需要第二登入過程的情況下取得彼等特權。在其他實施例中,FC Auth 123可使得使用者(例如,雇員)能夠使自身與特定任務相關聯。舉例而言,一些雇員可能不具有電子裝置(諸如裝置119A至裝置119C),且實際上可能在一天的過程期間在履行中心200內
自任務至任務以及自區至區移動。FC Auth 123可經組態以使得彼等雇員能夠在一天的不同時間指示其正進行何任務以及其位於何區。
在一些實施例中,勞動管理系統(LMS)125可實行為儲存雇員(包含全職雇員及兼職雇員)的出勤及超時資訊的電腦系統。舉例而言,LMS 125可自FC Auth 123、WMS 119、裝置119A至裝置119C、運輸系統107及/或裝置107A至裝置107C接收資訊。
圖1A中所描繪的特定組態僅為實例。舉例而言,儘管圖1A描繪連接至FO系統113的FC Auth系統123,但並非所有實施例均要求此特定組態。實際上,在一些實施例中,系統100中的系統可經由一或多個公用或私用網路彼此連接,所述網路包含網際網路、企業內部網路、廣域網路(Wide-Area Network;WAN)、都會區域網路(Metropolitan-Area Network;MAN)、順應IEEE 802.11a/b/g/n標準的無線網路、租用線,或類似者。在一些實施例中,系統100中的系統中的一或多者可實行為在資料中心、伺服器群或類似者處實行的一或多個虛擬伺服器。
圖2描繪履行中心200。履行中心200為儲存用於在訂購時運送至客戶的物件的實體位置的實例。可將履行中心(FC)200劃分成多個區,所述區中的每一者描繪於圖2中。在一些實施例中,可認為此等「區」為接收物件、儲存物件、檢索物件以及運送物件的過程的不同階段之間的虛擬劃分。因此,儘管在圖2中描繪「區」,但其他區劃分為可能的,且在一些實施例中可省略、複製或修改圖2中的區。
入站區203表示FC 200的自希望使用來自圖1A的系統100出售產品的賣方接收到物件的區域。舉例而言,賣方可使用卡車201來遞送物件202A及物件202B。物件202A可表示足夠大以佔據其自身運送托板的單一物件,而物件202B可表示在同一托板上堆疊在一起以節省空間的物件集合。
工作者將在入站區203中接收物件,且可使用電腦系統(未描繪)來視情況檢查物件的損壞及正確性。舉例而言,工作者可使用電腦系統來比較物件202A及物件202B的數量與物件的所訂購數量。若數量不匹配,則工作者可拒絕物件202A或物件202B中的一或多者。若數量的確匹配,則工作者可(使用例如台車、手推平車、叉車或手動地)將彼等物件移動至緩衝區205。緩衝區205可為當前(例如由於揀貨區中存在足夠高數量的物件以滿足預測需求而)無需處於揀貨區中的所述物件的暫時儲存區域。在一些實施例中,叉車206操作以圍繞緩衝區205及在入站區203與卸貨區207之間移動物件。若(例如,由於預測需求而)需要揀貨區中的物件202A或物件202B,則叉車可將物件202A或物件202B移動至卸貨區207。
卸貨區207可為FC 200的在將物件移動至揀貨區209之前儲存所述物件的區域。指定給揀貨任務的工作者(「揀貨員」)可靠近揀貨區中的物件202A及物件202B,使用行動裝置(例如,裝置119B)來掃描揀貨區的條碼,且掃描與物件202A及物件202B相關聯的條碼。揀貨員可接著(例如,藉由將物件置放於推車上或攜帶所述物件)將所述物件取至揀貨區209。
揀貨區209可為FC 200的將物件208儲存於儲存單元
210上的區域。在一些實施例中,儲存單元210可包括實體擱架、書架、盒、手提包、冰箱、冷凍機、冷儲存區或類似者中的一或多者。在一些實施例中,揀貨區209可組織成多個樓層。在一些實施例中,工作者或機器可以多種方式將物件移動至揀貨區209中,包含例如叉車、電梯、傳送帶、推車、手推平車、台車、自動化機器人或裝置,或手動地移動。舉例而言,揀貨員可在卸貨區207中將物件202A及物件202B置放於手推平車或推車上,且將物件202A及物件202B步移至揀貨區209。
揀貨員可接收將物件置放(或「堆裝」)於揀貨區209中的特定點(諸如儲存單元210上的特定空間)的指令。舉例而言,揀貨員可使用行動裝置(例如,裝置119B)來掃描物件202A。裝置可例如使用指示走道、貨架以及位置的系統來指示揀貨員應將物件202A堆裝於何處。裝置可接著提示揀貨員在將物件202A堆裝於所述位置之前掃描所述位置處的條碼。裝置可(例如,經由無線網路)將資料發送至諸如圖1A中的WMS 119的電腦系統,從而指示已由使用裝置119B的使用者將物件202A堆裝於所述位置處。
一旦使用者下訂單,揀貨員即可在裝置119B上接收自儲存單元210檢索一或多個物件208的指令。揀貨員可檢索物件208、掃描物件208上的條碼,且將所述物件208置放於運輸機構214上。儘管將運輸機構214表示為滑動件,但在一些實施例中,運輸機構可實行為傳送帶、電梯、推車、叉車、手推平車、台車或類似者中的一或多者。物件208可接著抵達包裝區211。
包裝區211可為FC 200的自揀貨區209接收到物件且將
所述物件包裝至盒或包中以用於最終運送至客戶的區域。在包裝區211中,指定給接收物件的工作者(「合流工作者」)將自揀貨區209接收物件208且判定所述物件208對應於哪一訂單。舉例而言,合流工作者可使用諸如電腦119C的裝置來掃描物件208上的條碼。電腦119C可在視覺上指示物件208與哪一訂單相關聯。此可包含例如對應於訂單的牆216上的空間或「單元格」。一旦訂單完成(例如,由於單元格含有所述訂單的所有物件),合流工作者即可指示包裝工作者(或「包裝員」)訂單完成。包裝員可自單元格檢索物件且將所述物件置放於盒或包中以用於運送。包裝員可接著例如經由叉車、推車、台車、手推平車、傳送帶、手動地或以其他方式將盒或包發送至樞紐區(hub zone)213。
樞紐區213可為FC 200的自包裝區211接收所有盒或包(「包裹」)的區域。樞紐區213中的工作者及/或機器可檢索包裹218且判定每一包裹預期去至遞送區域的哪一部分,且將包裹投送至適當的營地區(camp zone)215。舉例而言,若遞送區域具有兩個更小子區域,則包裹將去至兩個營地區215中的一者。在一些實施例中,工作者或機器可(例如,使用裝置119A至裝置119C中的一者)掃描包裹以判定其最終目的地。將包裹投送至營地區215可包括例如(例如,基於郵遞碼)判定包裹去往的地理區域的一部分,以及判定與地理區域的所述部分相關聯的營地區215。
在一些實施例中,營地區215可包含一或多個建築物、一或多個實體空間或一或多個區域,其中自樞紐區213接收包裹以用於分選至路線及/或子路線中。在一些實施例中,營地區215與FC 200實體地分開,而在其他實施例中,營地區215可形成FC
200的一部分。
營地區215中的工作者及/或機器可例如基於下述者來判定包裹220應與哪一路線及/或子路線相關聯:目的地與現有路線及/或子路線的比較、對每一路線及/或子路線的工作負荷的計算、時刻、運送方法、運送包裹220的成本、與包裹220中的物件相關聯的PDD,或類似者。在一些實施例中,工作者或機器可(例如,使用裝置119A至裝置119C中的一者)掃描包裹以判定其最終目的地。一旦將包裹220指定給特定路線及/或子路線,工作者及/或機器即可移動待運送的包裹220。在例示性圖2中,營地區215包含卡車222、汽車226以及遞送工作者224A及遞送工作者224B。在一些實施例中,卡車222可由遞送工作者224A駕駛,其中遞送工作者224A為遞送FC 200的包裹的全職雇員,且卡車222由擁有、租用或操作FC 200的同一公司擁有、租用或操作。在一些實施例中,汽車226可由遞送工作者224B駕駛,其中遞送工作者224B為在視需要基礎上(例如,季節性地)遞送的「靈活」或臨時工作者。汽車226可由遞送工作者224B擁有、租用或操作。
圖3為示出用於用新資訊更新資料庫且將所述新資訊複製至多個資料庫的網路化環境300的例示性實施例的示意性方塊圖。網路化環境300可包括各種電腦化系統,所述電腦化系統中的每一者可經由一或多個網路彼此連接。在一些實施例中,圖3中所描繪的元件中的每一者可表示系統的群組、系統的網路中的個別系統、系統內部的功能單元或模組,或其任何組合。且在一些實施例中,元件中的每一者可經由一或多個公用或私用網路連接彼此通信,所述網路連接包含網際網路、企業內部網路、廣域網路
(Wide-Area Network;WAN)、都會區域網路(Metropolitan-Area Network;MAN)、順應IEEE 802.11a/b/g/n標準的無線網路、有線網路,或類似者。個別系統亦可位於一個地理位置內或在地理上分散。
在一些實施例中,所描繪系統包含資料源310、寫入資料庫320、資料串流器330、資料佇列器340、一或多個複製串流器(例如,複製串流器A 350A),以及一或多個讀取資料庫(例如,讀取資料庫A 360A)。寫入資料庫320及讀取資料庫(例如,讀取資料庫360A至讀取資料庫360B)可統稱為資料庫,且可用SQL、甲骨文(Oracle)、Cassandra或其他類似關連式資料庫管理系統(relational database management system;RDBMS)實行。儘管圖3中僅描繪兩對複製串流器及讀取資料庫,但所述數目僅為例示性的且可實行額外對複製串流器及讀取資料庫。
另外,圖3中所描繪的每一系統可呈伺服器、通用電腦、大型主機電腦、諸如圖形處理單元(graphical processing unit;GPU)的專用計算裝置、膝上型電腦或此等計算裝置的任何組合的形式。在其他實施例中,每一系統或系統的子集可實行為單一系統的一或多個功能單元。另外或替代地,每一系統或其子集可為獨立系統,或子系統的一部分,所述子系統可為較大系統的部分。
在一些實施例中,資料源310可為經組態以提供待儲存於寫入資料庫330以及讀取資料庫360A及讀取資料庫360B中的新資訊的任何電腦化系統。舉例而言,資料源310可為其自身的伺服器、另一電腦化系統或另一資料庫。在一些實施例中,資料源310可包括大於一個電腦化系統,每一電腦化系統經組態以產生待
儲存於寫入資料庫330中的新資訊。
更具體而言,在一些實施例中,資料源310可為與收集、累積及/或產生自如上文相對於圖2所描述的FC 200處的各種活動累積的各種資料的履行中心相關聯的資料庫。在此實例中,在資料源310處累積的資料可包含由特定FC(例如,FC 200)處置的每一產品的產品識別符(例如,庫存計量單位(stock keeping unit;SKU))、每一產品的當前庫存水平,以及每一產品的不同服務(例如,同日遞送、當場安裝)的可利用性,以及其他。替代地,資料源310可為諸如上文相對於圖1A所描述的SAT系統101、SOT系統111及/或FO系統113的系統。
在一些實施例中,寫入資料庫320可為經組態以收集、組織以及儲存各種資料的電腦化系統。寫入資料庫320可為關連式資料庫,其中將儲存於其中的資料組織於一或多個資料集中。與經組態以接受用於儲存的新資料且使資料可用於客戶端裝置(例如,行動裝置107A至行動裝置107C)的習知資料庫相反,寫入資料庫320可經組態以僅藉由自資料源310接受新資料來收集及維護最新資料集,而不可由客戶端裝置訪問。相較於習知資料庫,將讀取及寫入功能性分開成專用資料庫(例如,寫入資料庫320及讀取資料庫360A至讀取資料庫360B)允許每一功能性發生而不與另一者混合,從而降低寫入或讀取錯誤的風險。
在一些實施例中,資料串流器330可包含經組態以自資料源310接收新資訊且將寫入資料庫320更新為併入有新資訊的一或多個計算裝置。新資訊可包括如組織於寫入資料庫320中的整個資料集(例如,在新資料記錄的情況下)或包括資料集的一部
分的資料元素(例如,在更新現有資料記錄的情況下)。無論情況如何,資料串流器330均可經組態以識別寫入資料庫320中的對應於新資訊的資料集,且在下文相對於圖4所描述的過程中用新資訊重寫資料集。
在一些實施例中,資料佇列器340可包含經組態以經由資料串流器330自寫入資料庫320接收新的或更新的資料集且將所述新的或更新的資料集添加至緩衝器(其中等待複製至讀取資料庫360A至讀取資料庫360B的一系列資料集排隊)的一或多個計算裝置。在一些實施例中,資料佇列器340可包括用於儲存緩衝器的儲存媒體,諸如硬磁碟驅動機、固態驅動機、RAM、ROM或快閃記憶體。在資料佇列器340中排隊的每一資料集可與對應於將資料集寫入至寫入資料庫320的時間的時戳相關聯。緩衝器可包括經組態以在一定時間量內保存資料的堆疊、序列、佇列或其他資料結構。在一些實施例中,包括緩衝器的堆疊、序列或佇列可遵循先進先出(First In First Out;FIFO)方法,其中首先將添加至緩衝器的第一資料集輸出至複製串流器350A至複製串流器350B。在另外的實施例中,資料佇列器340亦可經組態以無限期地儲存資料集系列作為備份以用於資料恢復或記錄保存目的。
在一些實施例中,佇列可在將新資料集複製至讀取資料庫360A至讀取資料庫360B之前充當所述新資料集的暫時儲存庫。此允許將上文所描述的寫入過程及下文所描述的複製過程分開,使得在將資料集複製至每一讀取資料庫時發生的任何錯誤均不會影響寫入至寫入資料庫320的新資訊。此外,時戳可允許每一複製串流器監視已將多少新資訊複製至相關聯讀取資料庫,使
得複製串流器可獨立於其他複製串流器暫停及恢復複製過程。
舉例而言,當複製串流器A 350A在時間X遇到使得其停止將新資料集複製至讀取資料庫A 360A的錯誤時,即使超過時間X,資料佇列器340亦可繼續將來自寫入資料庫320的新資料集累積至佇列上,且複製串流器B 350B可繼續將新資料集複製至讀取資料庫B 360B。一旦解決了複製串流器A 350A或讀取資料庫A 360A中的錯誤,複製串流器A 350A即可自時戳X恢復將新資料集複製至讀取資料庫A 360A。
在一些實施例中,複製串流器350A至複製串流器350B可各自包含經組態以自資料佇列器340中的佇列讀取新資料集且經由下文相對於圖4所描述的過程將新資料集重寫至各別讀取資料庫上的一或多個計算裝置。可將每一複製串流器350A至複製串流器350B指定給讀取資料庫(例如,讀取資料庫A 350A),串流器負責保持所述讀取資料庫最新。因此,在一些實施例中,每一複製串流器350A至複製串流器350B可實行為單獨系統,以便允許每一串流器即使在一個串流器發生故障時亦彼此獨立地操作。
在一些實施例中,每一複製串流器350A至複製串流器350B可追蹤自資料佇列器340檢索到的新資料集及其相關聯時戳,此可輔助每一複製串流器350A至複製串流器350B經由資料佇列器340中的佇列追蹤其進度,且允許其即使在因例如維護或錯誤的間斷之後亦恢復複製。
在一些實施例中,讀取資料庫360A至讀取資料庫360B可為經組態以儲存如組織於寫入資料庫320中的資料集的電腦化系統。每一讀取資料庫360A至讀取資料庫360B可為關連式資料
庫,其中將儲存於其中的資料組織於一或多個資料集中。每一讀取資料庫360A至讀取資料庫360B可進一步經組態以儲存與儲存於寫入資料庫320中的彼等資料集相同的資料集,受制於相關聯複製串流器的複製進度。舉例而言,若寫入資料庫320包含資料集1至資料集10(亦即,主集合),則每一讀取資料庫360A至讀取資料庫360B可經組態以複製及儲存資料集1至資料集10。
然而,在某些時間點,儲存於每一讀取資料庫360A至資料庫資料庫360B中的資料集可能因在資料佇列器340的複製過程及各別複製串流器350A至複製串流器350B期間引起的延遲或因複製串流器350A至複製串流器350B的不同複製時程而不同。舉例而言,若寫入資料庫320在時間t1更新以保存資料集1至資料集10(亦即,主集合)且在時間t2再次更新以保存資料集1至資料集15,且在t3在複製串流器A 350A中發生錯誤(剛好在讀取資料庫350至讀取資料庫350B更新以保存資料集1至資料集10之後),則讀取資料庫A 360A將在t4繼續保存資料集1至資料集10,而讀取資料庫B 360B將再次更新以保存資料集1至資料集15。在另一實例中,若複製串流器A 350A及複製串流器B 350B輪流自資料佇列器340讀取新資料集且將其複製至其各別讀取資料庫360A至讀取資料庫360B,則一個讀取資料庫將始終滯後於另一讀取資料庫,直至滯後的讀取資料庫更新以保存相同資料集為止。以此方式,讀取資料庫360A至讀取資料庫360B可保存類似資料集,所述資料集可為儲存於寫入資料庫320中的主集合的不同版本。
圖4為用於用新資訊更新資料庫且將所述新資訊複製至
多個資料庫的例示性電腦化過程400的流程圖。過程400可在必須服務於大量查詢的任何伺服器(諸如(例如)SAT系統101、SOT系統111及/或FO系統113)上實行。此伺服器可包括網路化系統,諸如上文在圖3中所描述的彼等網路化系統。下文參考圖3的網路化系統描述過程400,但系統、子系統或模組的任何其他組態可用於進行過程400。
在步驟410處,可使得資料源310可用,且資料串流器330可接收待寫入至資料庫(亦即,寫入資料庫320及讀取資料庫360A至讀取資料庫360B)中的新資訊。如上文所論述,新資訊可包括組織於寫入資料庫320中的整個資料集(例如,在新資料記錄的情況下)或包括資料集的一部分的資料元素(例如,在更新現有資料記錄的情況下)。
在步驟420處,資料串流器330可識別寫入資料庫320中的對應於新資訊的資料集且用新資訊更新資料集。資料串流器330可以任何數目種方式識別對應資料集,包含但不限於使用由寫入資料庫320提供的索引功能或遍尋寫入資料庫320中的資料集。在識別對應資料集之後,資料串流器330可藉由用新資訊取代資料集的一部分(例如,當新資訊包括新資料元素時)或藉由用新資訊取代整個資料集(例如,當新資訊包括整個資料集時)來更新資料集。另外或替代地,若未在寫入資料庫320中找到對應資料集,則資料串流器330可在寫入資料庫320中創建新資料集且將新資訊儲存於新資料集中。
在步驟430處,一旦更新對應資料集或添加新資料集,資料串流器330即可自寫入資料庫320讀取回全部新的或更新的
資料集以複製至讀取資料庫360A至讀取資料庫360B。如本文中所提及,資料串流器330可自寫入資料庫320讀取全部資料集,即使新資訊僅更新資料集的一部分亦是如此,以便簡化複製過程。舉例而言,當新資訊僅包括儲存於寫入資料庫320中的資料集的一部分時,僅將特定部分複製至讀取資料庫360A至讀取資料庫360B將需要遍尋讀取資料庫360A至讀取資料庫360B中的資料集以識別對應於所述部分的資料集且更新所述特定部分,此與更新寫入資料庫320的過程大體上相同且違背具有專用寫入資料庫及讀取資料庫的初衷。此過程亦將比如由所揭露實施例使得可能的僅重寫整個資料集花費更多計算資源及時間。
在一些實施例中,資料串流器330可讀取具有時戳的資料集或記錄讀取資料集的時間。時戳可用於在資料集隨時間推移而更新時保留所述資料集的快照,及/或充當其他系統(例如,資料佇列器340或複製串流器350A至複製串流器350B)可用以追蹤其各別更新過程的參考。
在步驟440處,資料佇列器340可自資料串流器330接收資料集且將所述資料集添加至緩衝器中的佇列、序列或堆疊。在一些實施例中,資料佇列器340可儲存自資料串流器330接收到的具有時戳的資料集,或使資料集與對應於將資料集添加至緩衝器中的時間的時戳相關聯。在一些實施例中,當新資訊變得可自資料源310獲得時,步驟450及步驟460可週期性地或不斷地進行。
在步驟450及步驟460處,複製串流器350A至複製串流器350B可各自複製儲存於緩衝器中的資料集且將對應資料集重寫於其各別讀取資料庫360A至讀取資料庫360B中。舉例而言,
複製串流器A 350A可訪問資料佇列器340內的緩衝器以複製儲存於其中的資料集、識別讀取資料庫A 360A中的對應於所複製資料集的資料集,以及用複製的資料集重寫識別出的資料集。以此方式,來自資料源310的新資訊寫入至資料庫320以成為表示資料集在一時刻的快照的主集合的一部分,且在讀取資料庫360A至讀取資料庫360B中可用於由其他系統(例如,行動裝置107A至行動裝置107C或其他伺服器)訪問。在一些實施例中,當新資料集累積於緩衝器中時,步驟450及步驟460可週期性地或不斷地進行。
在一些實施例中,每一複製串流器(例如,複製串流器350A或複製串流器350B)可基於各別複製串流器的時程彼此獨立地運作。此允許讀取資料庫360A至讀取資料庫360B保持彼此獨立且在其中的一者(例如,因維護或故障)變得離線或來自傳入查詢激增的網路負荷的情況下充當備份。在一些實施例中,每一複製串流器(例如,複製串流器350A或複製串流器350B)可使用與緩衝器中的資料集相關聯的時戳來追蹤已將哪一資料集複製至其對應讀取資料庫(例如,讀取資料庫360A或讀取資料庫360B),以及複製串流器接下來應複製哪一資料集。
圖5為示出包括用於處理傳入查詢(例如,讀取請求510)的電腦化系統的網路化環境500的例示性實施例的示意性方塊圖。網路化環境500可包括各種電腦化系統,所述電腦化系統中的每一者可經由一或多個網路彼此連接。在一些實施例中,圖5中所描繪的元件中的每一者可表示系統的群組、系統的網路中的個別系統、系統內部的功能單元或模組,或其任何組合。且在一些實施
例中,元件中的每一者可經由一或多個公用或私用網路連接彼此通信,所述網路連接包含網際網路、企業內部網路、廣域網路(WAN)、都會區域網路(MAN)、順應IEEE 802.11a/b/g/n標準的無線網路、有線網路,或類似者。個別系統亦可位於一個地理位置內或在地理上分散。
在一些實施例中,所描繪系統包含包括服務程式530的協調器520,以及上文相對於圖3所描述的讀取資料庫360A至讀取資料庫360B。儘管圖5中僅描繪兩對複製串流器及讀取資料庫,但所述數目僅為例示性的且可實行額外讀取資料庫。
另外,圖5中所描繪的每一系統可呈伺服器、通用電腦、大型主機電腦、諸如圖形處理單元(GPU)的專用計算裝置、膝上型電腦或此等計算裝置的任何組合的形式。在其他實施例中,每一系統或系統的子集可實行為單一系統的一或多個功能單元。另外或替代地,每一系統或其子集可為獨立系統,或子系統的一部分,所述子系統可為較大系統的部分。
在一些實施例中,協調器520可為經組態以接收一或多個讀取請求510且提供儲存於讀取資料庫360A至讀取資料庫360B中的所請求資料540的任何電腦化系統。讀取請求510可為來自諸如SOT系統111的其他系統或諸如行動裝置107A至行動裝置107C的客戶端裝置的傳入查詢。所請求資料540可為由讀取請求510所請求且自讀取資料庫360A至讀取資料庫360B中的任一者檢索到的任何資料集或其一部分。
在一些實施例中,協調器520可經組態以充當讀取請求510的集中式接收器或處理器,所述集中式接收器或處理器藉由判
定自哪一讀取資料庫讀取來管理不同讀取資料庫360A至讀取資料庫360B上的負荷。自客戶端的視角看,此組態保持讀取請求510簡單且易於實行。換言之,嘗試使客戶端裝置(例如,行動裝置107A至行動裝置107C或SOT系統111)與實行所揭露實施例的資料庫(例如,SAT系統101)介接的程式設計師或網路管理員僅需要為讀取請求指定一個目的地,而非必須判定哪一讀取資料庫(例如,讀取資料庫360A至讀取資料庫360B)為可用的。在一些實施例中,協調器520可進一步經組態以管理讀取資料庫360A至讀取資料庫360B,從而能夠使任何或所有讀取資料庫360A至讀取資料庫360B在線或離線以及自網路化環境添加或移除讀取資料庫。
在一些實施例中,服務程式530可為經組態以監視讀取資料庫360A至讀取資料庫360B的狀態且判定哪一讀取資料庫(亦即,讀取資料庫360A至讀取資料庫360B中的一者)應服務於特定讀取請求510的任何電腦化系統。協調器520可使用內建軟體開發套件(software development kit;SDK)以與服務程式530介接。
在一些實施例中,服務程式530可使用各種感測器及系統監視器來追蹤哪一讀取資料庫在線及其各別健康。舉例而言,服務程式530可經組態以監視每一讀取資料庫的診斷參數(例如,溫度、年齡或電流汲取水平)。在一些實施例中,此資料可能適用於判定讀取資料庫360A至讀取資料庫360B中的任一者中的故障的任何風險及採取適當措施來減少風險(例如,更換對應讀取資料庫中的一或多個儲存裝置、使讀取資料庫離線以用於維護)。
在另外的實施例中,服務程式530可追蹤其用於服務於讀取請求510的讀取資料庫(亦即,讀取資料庫360A至讀取資料庫360B中的任一者)。另外或替代地,服務程式530可追蹤具有未服務的讀取請求持續最長時間的讀取資料庫。此資料可防止服務程式530過多依賴於特定讀取資料庫或允許服務程式530在先前讀取資料庫正定位及傳輸所請求資料540時選擇另一讀取資料庫。
一旦服務程式530已判定服務於讀取請求510的特定讀取資料庫(例如,讀取資料庫A 360A),服務程式530即可經組態以將讀取請求510中繼至所判定讀取資料庫。所判定讀取資料庫接著可檢索對應於讀取請求510的所請求資料540的拷貝且在下文相對於圖6所描述的過程中將所述拷貝轉發至使用者裝置。在此情況下,其他讀取資料庫(例如,讀取資料庫B 360B)可不參與處理特定讀取請求510,且有空處理由服務程式530中繼的另一讀取請求。
圖6為用於處理傳入查詢的另一例示性電腦化過程600的流程圖。過程600可在必須服務於大量查詢的任何伺服器(諸如(例如)SAT系統101、SOT系統111及/或FO系統113)上實行。此伺服器可包括網路化系統,諸如上文在圖5中所描述的彼等網路化系統。下文參考圖5的網路化系統描述過程600,但系統、子系統或模組的任何其他組態可用於進行過程600。
在步驟610處,服務程式530可追蹤讀取資料庫360A至讀取資料庫360B的使用歷史以監視其伺服器利用率。伺服器利用率可指在預定時段內已使用每一讀取資料庫的次數之間的比。舉
例而言,服務程式530可以已由每一讀取資料庫360A至讀取資料庫360B服務的服務讀取請求510的總數目的百分比或分數來表現伺服器利用率。在一些實施例中,任何離線讀取資料庫360A至讀取資料庫360B的伺服器利用率可等於零或空值。
在步驟620處,協調器520可自客戶端裝置(例如,行動裝置107A至行動裝置107C或SOT系統111)接收針對可能儲存於讀取資料庫360A至讀取資料庫360B中的某些資料的讀取請求510。所請求資料可為(例如,資料集的)特定資料元素或資料元素集合。
在步驟630處,服務程式530可基於利用率及負荷分擔比來選擇服務於讀取請求510的特定讀取資料庫。在一些實施例中,負荷分擔比可為與讀取資料庫360A至讀取資料庫360B相關聯的指定每一讀取資料庫應相對於彼此利用多少的預定比。舉例而言,在包括兩個讀取資料庫360A至讀取資料庫360B的網路化環境中,負荷分擔比可為100:0、50:50、25:75、10:90等。替代地,在包括三個讀取資料庫的另一網路化環境(未繪示)中,負荷分擔比可為33.3:33.3:33.3、25:50:25、100:0:0、50:50:0等。本文中列舉的比僅為例示性的,且可使用適用於在多個成員當中劃分任務的任何比集合。在一些實施例中,具有0負荷分擔比的讀取資料庫可指示(例如,因離線)無資料請求510可由讀取資料庫服務。
在一些實施例中,負荷分擔比可由網路管理員基於預期網路負荷及可用讀取資料庫360A至讀取資料庫360B的數目來預定。舉例而言,若預期負荷相對低及/或若必須使讀取資料庫離線以用於維護,則網路管理員可基於哪一讀取資料庫必須離線來將
負荷分擔比設定為100:0或0:100。替代地,若讀取資料庫360A至讀取資料庫360B兩者將在線,則負荷分擔比可為50:50。在一些實施例中,若網路管理員輸入總計不為100的負荷分擔比的錯誤值集合,則服務程式530可藉由將其總和除以每一比來判定正確負荷分擔比。(例如,120:80將變成60:40。)
在另外的實施例中,負荷分擔比可為可視需要自由調整的。舉例而言,當僅讀取資料庫A 360A服務於讀取請求510(亦即,負荷分擔比為100:0)且網路負荷激增至需要額外讀取資料庫的點時,可將負荷分擔比調整為50:50,使得可使讀取資料庫B 360B在線且分擔負荷。另外,當例如因錯誤而必須使讀取資料庫A 360A離線時,可將負荷分擔比調整為0:100。在另一實例中,若使第三讀取資料庫(未繪示)取代讀取資料庫A 360A,則可將負荷分擔比調整為0:50:50。在任何情形下,網路管理員可輸入,且服務程式530可自其接收輸入,以用於指定新負荷分擔比以調整現有比。
再另外,在一些實施例中,服務程式530可經組態以基於讀取資料庫360A至讀取資料庫360B的狀態來自動調整負荷分擔比。舉例而言,當服務程式530偵測到讀取資料庫A 360A處於臨界狀態(例如,遇到錯誤、崩潰、失去電力、成為惡意攻擊的目標)時,服務程式530可調整負荷分擔比,使得讀取資料庫B 360B服務於所有讀取請求510。此組態可允許服務程式530以人類無法偵測及作出反應的速率快速回應於可能使整個系統陷入危險的意外偶發事件。
在一些實施例中,服務程式530可逐漸實現對負荷分擔
比的調整。舉例而言,當服務程式530接收指示服務程式530將負荷分擔比自50:50調整為0:100的使用者輸入時,服務程式530可逐步調整負荷分擔比,使得負荷分擔比改變,例如50:50、40:60、30:70、20:80、10:90以及0:100。將負荷分擔比改變回50:50可使用類似比集合以相反次序進行。每一步驟中的改變的量僅為例示性的,且服務程式530可以最大化讀取資料庫360A至讀取資料庫306B的使用壽命及/或減輕對其的壓力的任何增量來間隔調整。
負荷分擔比的此逐漸調整對於允許讀取資料庫360A至讀取資料庫360B啟動至其充分效能位準是必需的。逐漸調整可防止或減輕對讀取資料庫360A至讀取資料庫360B的潛在衝擊,若大量讀取請求510突然指向特定讀取資料庫,則可能發生所述潛在衝擊。讀取請求的此急劇湧入可能導致讀取資料庫在未正確定址的情況下發生故障。
回至服務程式530如何選擇服務於讀取請求510的特定讀取資料庫,所述選擇可以是基於利用率及負荷分擔比。在一些實施例中,服務程式530可比較每一讀取資料庫360A至讀取資料庫360B的利用率與負荷分擔比,且選擇利用率小於負荷分擔比的讀取資料庫。替代地,服務程式530可使用基於負荷分擔比來加權的偽隨機數產生器(pseudo random number generator;PRNG)來選擇讀取資料庫。更具體而言,服務程式可將每一讀取資料庫360A至讀取資料庫360B關聯至一數字,且使用PRNG來挑選所述數字中的一者,其中用負荷分擔比對PRNG進行加權以使得選擇與讀取資料庫相關聯的特定數字的機率等於對應於讀取資料庫的負荷分擔比。
再另外,當服務程式530處於調整負荷分擔比的過程中時,服務程式530可能需要將指定給一個讀取資料庫(例如,讀取資料庫A 360A)的讀取請求510的子集移動至另一讀取資料庫(例如,讀取資料庫B 360B)。針對每一讀取請求510,服務程式530可使用下式來計算移動指示符。
服務程式530可在移動指示符不等於1時將特定讀取請求510自當前讀取資料庫(例如,讀取資料庫A 360A)移動至新的讀取資料庫(例如,讀取資料庫B 360B),且在移動指示符等於1時使讀取請求510保持於當前讀取資料庫(例如,讀取資料庫A 360A)處。在移動至大於一個讀取資料庫的一些實施例中,服務程式530可使用PRNG來選擇其他讀取資料庫當中的讀取資料庫。
相對於每一讀取請求510,針對讀取請求選擇的讀取資料庫(例如,讀取資料庫A 360A)可切換至主動狀態,而其他未選擇的讀取資料庫(例如,讀取資料庫B 360B)可切換至主動備用狀態。處於兩者狀態的讀取資料庫仍可繼續接收更新的資料集,如上文相對於圖4所描述,使得所有讀取資料庫準備好對後續讀取請求作出回應。每一讀取資料庫可相對於每一讀取請求510在主動狀態與主動備用狀態之間自由切換。
在步驟640處,服務程式530可經組態以向所選擇的讀取資料庫(例如,讀取資料庫A 360A)產生資料詢問,以用於檢索由讀取請求510所請求的資料的拷貝。在一些實施例中,所選擇的讀取資料庫可藉由將所請求的資料識別為儲存於所選擇的讀
取資料庫中且將用於傳輸的資料複製為所請求資料540來對資料詢問作出回應。若讀取資料庫無法識別所請求的資料,則讀取資料庫可返回空值或預定資料。
在步驟650處,協調器520可將所請求資料540轉發至產生讀取請求510的客戶端裝置。在一些實施例中,步驟620至步驟650可在每當協調器520接收到讀取請求510時發生,而服務程式530繼續進行步驟610。
儘管已參考本揭露內容的特定實施例繪示及描述本揭露內容,但應理解,可在不修改的情況下在其他環境中實踐本揭露內容。已出於示出的目的呈現前述描述。前述描述並不詳盡且不限於所揭露的精確形式或實施例。修改及調適對所屬技術領域中具有通常知識者將自本說明書的考量及所揭露實施例的實踐顯而易見。另外,儘管將所揭露實施例的態樣描述為儲存於記憶體中,但所屬技術領域中具有通常知識者應瞭解,此等態樣亦可儲存於其他類型的電腦可讀媒體上,諸如次級儲存裝置,例如硬碟或CD ROM,或其他形式的RAM或ROM、USB媒體、DVD、藍光,或其他光碟機媒體。
基於書面描述及所揭露方法的電腦程式在有經驗開發者的技能內。各種程式或程式模組可使用所屬技術領域中具有通常知識者已知的技術中的任一者來創建或可結合現有軟體來設計。舉例而言,程式區段或程式模組可以或藉助於.Net框架(.Net Framework)、.Net緊密框架(.Net Compact Framework)(及相關語言,諸如視覺培基(Visual Basic)、C等)、爪哇(Java)、C++、目標-C(Objective-C)、HTML、HTML/AJAX組合、XML或包含爪
哇小程式的HTML來設計。
此外,儘管本文中已描述示出性實施例,但所屬技術領域中具有通常知識者將基於本揭露內容瞭解具有等效元件、修改、省略、(例如,各種實施例中的態樣的)組合、調適及/或更改的任何及所有實施例的範圍。申請專利範圍中的限制應基於申請專利範圍中所採用的語言來廣泛地解釋,且不限於本說明書中所描述或在本申請案的審查期間的實例。實例應視為非排他性的。另外,所揭露方法的步驟可以包含藉由對步驟重新排序及/或插入或刪除步驟的任何方式修改。因此,希望僅將本說明書及實例視為示出性的,其中藉由以下申請專利範圍及其等效物的完整範圍指示真實範圍及精神。
600:過程
610、620、630、640、650:步驟
Claims (20)
- 一種用於路由網路流量的電腦實行系統,所述系統包括:記憶體,儲存指令;以及至少一個處理器,經組態以執行所述指令以用於:監視多個網路連接資料庫的利用率;自第一使用者裝置接收針對儲存於所述多個網路連接資料庫中的資料元素的第一資料讀取請求;基於與所述多個網路連接資料庫中的至少一個相關聯的至少一個預定比、使用者輸入或所述多個網路連接資料庫的狀態來確定負荷分擔比;基於所述利用率及所述負荷分擔比來選擇所述多個網路連接資料庫當中的第一目標資料庫;產生針對儲存於所述第一目標資料庫中的所述資料元素的拷貝的第一資料查詢;以及回應於所述第一資料讀取請求將所述資料元素的所述拷貝自所述第一目標資料庫轉發至所述第一使用者裝置。
- 如請求項1所述的電腦實行系統,其中所述資料元素的至少一個複製拷貝儲存於所述多個網路連接資料庫中的每一者中。
- 如請求項1所述的電腦實行系統,其中所述多個網路連接資料庫中的每一者含有相同資料項集合。
- 如請求項1所述的電腦實行系統,其中所述多個網路連接資料庫中的每一者含有類似資料元素集合,每一資料元素 集合與主集合的不同版本相關聯。
- 如請求項1所述的電腦實行系統,所述指令更包括:自所述第一使用者裝置接收針對所述資料元素的第二資料讀取請求;以及產生針對儲存於不同於所述第一目標資料庫的第二目標資料庫中的所述資料元素的另一拷貝的第二資料查詢。
- 如請求項1所述的電腦實行系統,其中所述第一目標資料庫處於主動狀態,而所述多個網路連接資料庫中的其餘資料庫處於主動備用狀態。
- 如請求項1所述的電腦實行系統,所述指令更包括:接收用於調整所述負荷分擔比的使用者輸入。
- 如請求項1所述的電腦實行系統,所述指令更包括:隨時間推移逐漸調整所述負荷分擔比。
- 如請求項1所述的電腦實行系統,其中所述負荷分擔比為經組態以防止選擇所述多個網路連接資料庫當中的特定資料庫。
- 如請求項1所述的電腦實行系統,其中所述多個網路連接資料庫當中的所述負荷分擔比總計100%。
- 一種用於路由網路流量的電腦實行方法,所述方法包括:監視多個網路連接資料庫的利用率;自第一使用者裝置接收針對儲存於所述多個網路連接資料庫中的資料元素的第一資料讀取請求;基於與所述多個網路連接資料庫中的至少一個相關聯的至少 一個預定比、使用者輸入或所述多個網路連接資料庫的狀態來確定負荷分擔比;基於所述利用率及所述負荷分擔比來選擇所述多個網路連接資料庫當中的第一目標資料庫;產生針對儲存於所述第一目標資料庫中的所述資料元素的拷貝的第一資料查詢;以及回應於所述第一資料讀取請求將所述資料元素的所述拷貝自所述第一目標資料庫轉發至所述第一使用者裝置。
- 如請求項11所述的電腦實行方法,其中所述資料元素的至少一個複製拷貝儲存於所述多個網路連接資料庫中的每一者中。
- 如請求項11所述的電腦實行方法,其中所述多個網路連接資料庫中的每一者含有相同資料項集合。
- 如請求項11所述的電腦實行方法,其中所述多個網路連接資料庫中的每一者含有類似資料元素集合,每一資料元素集合與主集合的不同版本相關聯。
- 如請求項11所述的電腦實行方法,更包括:自所述第一使用者裝置接收針對所述資料元素的第二資料讀取請求;以及產生針對儲存於不同於所述第一目標資料庫的第二目標資料庫中的所述資料元素的另一拷貝的第二資料查詢。
- 如請求項11所述的電腦實行方法,其中所述第一目標資料庫處於主動狀態,而所述多個網路連接資料庫中的其餘資料庫處於主動備用狀態。
- 如請求項11所述的電腦實行方法,所述指令更包括:接收用於調整所述負荷分擔比的使用者輸入。
- 如請求項11所述的電腦實行方法,所述指令更包括:隨時間推移逐漸調整所述負荷分擔比。
- 如請求項11所述的電腦實行方法,其中所述負荷分擔比為經組態以防止選擇所述多個網路連接資料庫當中的特定資料庫。
- 一種用於路由網路流量的電腦實行系統,所述系統包括:多個網路連接資料庫,經組態以儲存相同資料集合;協調器,經組態以監視所述多個網路連接資料庫的網路流量及網路負荷;以及服務程式,經組態以接收檢索儲存於所述多個網路連接資料庫中的資訊的多個使用者請求,其中所述協調器經進一步組態以基於與所述多個網路連接資料庫中的至少一個相關聯的至少一個預定比、使用者輸入或所述多個網路連接資料庫的狀態來確定負荷分擔比,其中所述協調器經進一步組態以基於利用率以及所述確定來將所述多個使用者請求的子集路由至所述多個網路連接資料庫當中的第一資料庫,其中所述第一資料庫經組態以回應於所述多個使用者請求的所述子集而傳輸資料。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/928,104 | 2020-07-14 | ||
US16/928,104 US11032361B1 (en) | 2020-07-14 | 2020-07-14 | Systems and methods of balancing network load for ultra high server availability |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202203621A TW202203621A (zh) | 2022-01-16 |
TWI763225B true TWI763225B (zh) | 2022-05-01 |
Family
ID=76213284
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111111475A TW202231027A (zh) | 2020-07-14 | 2020-12-31 | 用於路由網路流量的電腦實行系統以及方法 |
TW109147088A TWI763225B (zh) | 2020-07-14 | 2020-12-31 | 用於路由網路流量的電腦實行系統以及方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111111475A TW202231027A (zh) | 2020-07-14 | 2020-12-31 | 用於路由網路流量的電腦實行系統以及方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11032361B1 (zh) |
KR (3) | KR102422709B1 (zh) |
TW (2) | TW202231027A (zh) |
WO (1) | WO2022013618A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11381639B1 (en) | 2020-06-03 | 2022-07-05 | Amazon Technologies, Inc. | Load balancing technique selection based on estimated load |
US11245628B1 (en) * | 2020-06-03 | 2022-02-08 | Amazon Technologies, Inc. | Load balancing based on randomized selection of a load value based on a load probability distribution |
US20220180692A1 (en) * | 2020-12-03 | 2022-06-09 | Adrenalineip | Method, system, and apparatus for optimizing the display of micro-markets |
KR102519010B1 (ko) * | 2022-12-30 | 2023-04-06 | 주식회사 에스티씨랩 | 디지털 서비스 기반의 병목 구간 별 진입 대상을 관리하기 위한 진입 관리 서버, 방법 및 프로그램 |
KR102519061B1 (ko) * | 2022-12-30 | 2023-04-06 | 주식회사 에스티씨랩 | 구간 제어 방식 기반의 유량 제어를 위한 장치 및 방법 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6108646A (en) * | 1997-05-27 | 2000-08-22 | Fujitsu Limited | Database mechanism, mediating method in database system and program storing medium for implementing database system |
US20120131093A1 (en) * | 2010-11-22 | 2012-05-24 | International Business Machines Corporation | Connection distribution for load balancing in a distributed database |
KR101589213B1 (ko) * | 2015-07-15 | 2016-01-27 | 주식회사 지오그레이트 | 백업 데이터베이스를 활용한 운영 데이터베이스 부하 분산 방법 |
US20170102757A1 (en) * | 2015-10-07 | 2017-04-13 | Electronics And Telecommunications Research Institute | Device for distributing load and managing power of virtual server cluster and method thereof |
TW201902224A (zh) * | 2017-04-28 | 2019-01-01 | 美商艾斯卡瓦公司 | 藉由使用主要資料篩的資料無損縮減及對於已經使用主要資料篩來無損地縮減的資料進行多維度搜索和內容關聯的檢索 |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09167141A (ja) * | 1995-12-18 | 1997-06-24 | Hitachi Ltd | 負荷分散制御方法 |
US6128657A (en) * | 1996-02-14 | 2000-10-03 | Fujitsu Limited | Load sharing system |
US6374297B1 (en) * | 1999-08-16 | 2002-04-16 | International Business Machines Corporation | Method and apparatus for load balancing of web cluster farms |
JP2001155053A (ja) * | 1999-12-01 | 2001-06-08 | Mitsubishi Electric Corp | 半導体集積回路の信頼性検証方法及びセルライブラリデータベース |
US6639904B1 (en) * | 1999-12-15 | 2003-10-28 | Verizon Laboratories Inc. | Method and system for adapting a channel assignment plan to include shared frequency channels |
US6950848B1 (en) * | 2000-05-05 | 2005-09-27 | Yousefi Zadeh Homayoun | Database load balancing for multi-tier computer systems |
US7633969B2 (en) * | 2004-09-10 | 2009-12-15 | Tekelec | Methods, systems, and computer program products for dynamically adjusting load sharing distributions in response to changes in network conditions |
JP4058038B2 (ja) * | 2004-12-22 | 2008-03-05 | 株式会社日立製作所 | 負荷監視装置および負荷監視方法 |
US20070143460A1 (en) * | 2005-12-19 | 2007-06-21 | International Business Machines Corporation | Load-balancing metrics for adaptive dispatching of long asynchronous network requests |
US8209696B2 (en) * | 2006-02-13 | 2012-06-26 | Teradata Us, Inc. | Method and system for load balancing a distributed database |
KR100827626B1 (ko) | 2006-07-21 | 2008-05-07 | 인하대학교 산학협력단 | 링 기반 연결 구조를 이용한 그리드 데이터베이스 시스템및 이를 위한 부하 분산 방법 |
US9231999B2 (en) * | 2007-11-28 | 2016-01-05 | Red Hat, Inc. | Multi-level load balancer |
JP5213077B2 (ja) * | 2008-10-06 | 2013-06-19 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 複数のアプリケーションサーバにより共有データをアクセスするシステム |
US9116752B1 (en) * | 2009-03-25 | 2015-08-25 | 8X8, Inc. | Systems, methods, devices and arrangements for server load distribution |
US20160174103A9 (en) * | 2010-02-25 | 2016-06-16 | Eden Rock Communications, Llc | Method & system for cellular network load balance |
US8892728B2 (en) * | 2011-07-21 | 2014-11-18 | Hewlett-Packard Development Company, L.P. | Automatic zone-based management of a data center |
US8495106B2 (en) * | 2011-11-18 | 2013-07-23 | International Business Machines Corporation | Write instruction datasource for database write procedure |
CN103577407B (zh) | 2012-07-19 | 2016-10-12 | 国际商业机器公司 | 用于分布式数据库的查询方法及查询装置 |
US9742674B1 (en) * | 2012-08-15 | 2017-08-22 | F5 Networks, Inc. | Methods for distributed application visibility and reporting and devices thereof |
CN102932440A (zh) | 2012-10-26 | 2013-02-13 | 北京奇虎科技有限公司 | 用于分布式数据存储系统的数据管理方法、设备和系统 |
US20150120697A1 (en) * | 2013-10-28 | 2015-04-30 | Scalebase Inc. | System and method for analysis of a database proxy |
US9407692B2 (en) * | 2013-11-27 | 2016-08-02 | Avi Networks | Method and system for distributed load balancing |
US10303702B2 (en) * | 2014-02-07 | 2019-05-28 | Ignite Scalarc Solutions, Inc. | System and method for analysis and management of data distribution in a distributed database environment |
US9471439B2 (en) * | 2014-03-13 | 2016-10-18 | Sybase, Inc. | Systems and methods for reducing load database time |
US10666574B2 (en) * | 2015-09-28 | 2020-05-26 | Amazon Technologies, Inc. | Distributed stream-based database triggers |
JP2020514935A (ja) * | 2017-03-15 | 2020-05-21 | ファウナ, インク.Fauna, Inc. | データベース用の方法及びシステム |
US10503613B1 (en) * | 2017-04-21 | 2019-12-10 | Amazon Technologies, Inc. | Efficient serving of resources during server unavailability |
US10649962B1 (en) * | 2017-06-06 | 2020-05-12 | Amazon Technologies, Inc. | Routing and translating a database command from a proxy server to a database server |
US20190065258A1 (en) | 2017-08-30 | 2019-02-28 | ScalArc Inc. | Automatic Provisioning of Load Balancing as Part of Database as a Service |
US10579432B1 (en) * | 2018-08-13 | 2020-03-03 | Twitter, Inc. | Load balancing deterministically-subsetted processing resources using fractional loads |
CN110740293A (zh) | 2019-09-06 | 2020-01-31 | 武汉烽火众智数字技术有限责任公司 | 一种数据传输方法、系统、装置及计算机存储介质 |
US11080262B1 (en) * | 2019-09-27 | 2021-08-03 | Amazon Technologies, Inc. | Optimistic atomic multi-page write operations in decoupled multi-writer databases |
US11381639B1 (en) * | 2020-06-03 | 2022-07-05 | Amazon Technologies, Inc. | Load balancing technique selection based on estimated load |
-
2020
- 2020-07-14 US US16/928,104 patent/US11032361B1/en active Active
- 2020-12-22 KR KR1020200180759A patent/KR102422709B1/ko active IP Right Grant
- 2020-12-31 TW TW111111475A patent/TW202231027A/zh unknown
- 2020-12-31 TW TW109147088A patent/TWI763225B/zh active
-
2021
- 2021-01-18 WO PCT/IB2021/050348 patent/WO2022013618A1/en active Application Filing
- 2021-06-03 US US17/338,017 patent/US11627181B2/en active Active
-
2022
- 2022-07-14 KR KR1020220086965A patent/KR102654171B1/ko active IP Right Grant
-
2024
- 2024-03-29 KR KR1020240043077A patent/KR20240046468A/ko not_active Application Discontinuation
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6108646A (en) * | 1997-05-27 | 2000-08-22 | Fujitsu Limited | Database mechanism, mediating method in database system and program storing medium for implementing database system |
US20120131093A1 (en) * | 2010-11-22 | 2012-05-24 | International Business Machines Corporation | Connection distribution for load balancing in a distributed database |
KR101589213B1 (ko) * | 2015-07-15 | 2016-01-27 | 주식회사 지오그레이트 | 백업 데이터베이스를 활용한 운영 데이터베이스 부하 분산 방법 |
US20170102757A1 (en) * | 2015-10-07 | 2017-04-13 | Electronics And Telecommunications Research Institute | Device for distributing load and managing power of virtual server cluster and method thereof |
TW201902224A (zh) * | 2017-04-28 | 2019-01-01 | 美商艾斯卡瓦公司 | 藉由使用主要資料篩的資料無損縮減及對於已經使用主要資料篩來無損地縮減的資料進行多維度搜索和內容關聯的檢索 |
Also Published As
Publication number | Publication date |
---|---|
TW202203621A (zh) | 2022-01-16 |
WO2022013618A1 (en) | 2022-01-20 |
KR20220008718A (ko) | 2022-01-21 |
KR102654171B1 (ko) | 2024-04-04 |
TW202231027A (zh) | 2022-08-01 |
KR20220103901A (ko) | 2022-07-25 |
US11032361B1 (en) | 2021-06-08 |
KR102422709B1 (ko) | 2022-07-20 |
US11627181B2 (en) | 2023-04-11 |
KR20240046468A (ko) | 2024-04-09 |
US20220021730A1 (en) | 2022-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI763225B (zh) | 用於路由網路流量的電腦實行系統以及方法 | |
TWI760020B (zh) | 產生動態網站的電腦化系統及電腦實行方法以及非暫時性電腦可讀媒體 | |
TWI773048B (zh) | 降低資料庫查詢延遲之系統以及方法 | |
TWI760216B (zh) | 用於管理高度可獲取分佈混合資料庫的電腦實行系統以及方法 | |
US11899678B2 (en) | Systems and methods for low latency aggregated data provision | |
TWI748566B (zh) | 動態聚集資料及資料損失最小化的系統以及方法 | |
TWI778626B (zh) | 電腦實施系統及電腦實施方法 | |
KR102396707B1 (ko) | 웹페이지 상에 제품 정보를 업데이트하기 위한 컴퓨터화된 시스템 및 방법 | |
TWI762140B (zh) | 用於將網站資料傳輸至客戶端裝置的電腦化系統、電腦實行方法及系統 | |
TW202223678A (zh) | 用於使區域快取同步的電腦實行系統以及方法 |