TWI742980B - 用於申請規劃介面遷移的電腦化系統以及用於申請規劃介面遷移的電腦實行方法 - Google Patents

用於申請規劃介面遷移的電腦化系統以及用於申請規劃介面遷移的電腦實行方法 Download PDF

Info

Publication number
TWI742980B
TWI742980B TW110100347A TW110100347A TWI742980B TW I742980 B TWI742980 B TW I742980B TW 110100347 A TW110100347 A TW 110100347A TW 110100347 A TW110100347 A TW 110100347A TW I742980 B TWI742980 B TW I742980B
Authority
TW
Taiwan
Prior art keywords
group
api
planning interface
application planning
compatibility
Prior art date
Application number
TW110100347A
Other languages
English (en)
Other versions
TW202209114A (zh
Inventor
趙南雄
Original Assignee
南韓商韓領有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 南韓商韓領有限公司 filed Critical 南韓商韓領有限公司
Application granted granted Critical
Publication of TWI742980B publication Critical patent/TWI742980B/zh
Publication of TW202209114A publication Critical patent/TW202209114A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/425Lexical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/12Network monitoring probes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0894Policy-based network configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Human Computer Interaction (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本發明提供一種用於API遷移的電腦化系統。系統包含: 記憶體,儲存指令;以及處理器,經組態以執行指令以執行包含以下的操作:將客戶端帳戶分離成三個群組;指定第一API與第一群組通信且指定第二API與第二群組通信;以及指定第一API與第三群組的第一部分通信且指定第二API與第三群組的第二部分通信。操作亦可包含收集來自群組的通信且產生與每一群組相關聯的度量,以及產生比較報告及相容性報告。操作亦可包含基於比較報告及相容性報告傳輸警示或建議中的至少一者。

Description

用於申請規劃介面遷移的電腦化系統以及用於 申請規劃介面遷移的電腦實行方法
本揭露內容大體上是關於用於升級或遷移雲環境中的申請規劃介面(application programming interface;API)的電腦化系統及方法。特定言之,本揭露內容的實施例是關於在API修改、升級或遷移期間使用水桶測試(bucketed testing)或分段運行測試(split-run testing)來進行API效能的自動比較評估的系統及方法。
API為計算介面,其藉由定義用於交互作用的方法而允許不同技術及應用程式之間的通信以一起工作,而不必考慮語言或平台。API指定允許傳達資料、存取資訊以及構建應用程式的常式及協定集合。API目前在雲計算環境中非常重要,因為API已變成客戶端與資料提供商之間的主要點。特定言之,API允許客戶在需要時以穩定、有組織且安全的方式自商業系統存取資訊。實際上,API在商業至雲環境的轉換中非常有利,因為其允許自訂及安全的交互作用。舉例而言,經由API,有可能使伺服器與外部客戶 端通信,同時管理商業資源的安全性,並且監視及分析交互作用。總體而言,使用API雲服務可創建通信橋,且建立服務不同類型客戶端的架構。
一旦部署API,系統的客戶端即使用所述API來存取資訊及/或與服務提供商通信。然而,在一些情形下,可能需要修改、更新或升級API。舉例而言,服務提供商可決定修改API中的函數或協定以改良類別、函數以及屬性起作用的方式。可引入此等改變以提高通信效率(例如最小化網路擁擠)或防止錯誤。一個API至另一API之轉換或遷移或者不同版本的API之間的轉換或遷移可產生問題,因為客戶端系統可能不能夠適應於更新後的API或因為API表現不同,從而導致延遲或非預期結果。舉例而言,在更新後的API中,客戶端使用的腳本處理命令中的一些可被修改或移除。此等改變可在API遷移期間導致相容性錯誤。並且鑒於某些API的複雜性以及客戶端與伺服器之間可能存在的複雜交互作用,可能難以識別及校正不相容性。
所揭露的用於API遷移的系統及方法解決上文所闡述的問題及/或先前技術中的其他問題中的一或多者。
本揭露內容的一個態樣是針對一種用於API遷移的電腦化系統。所述系統可包含:至少一個記憶體,儲存指令;及至少一個處理器,經組態以執行所述指令以執行操作。所述操作可包含:將客戶端帳戶分離成第一群組、第二群組以及第三群組(每一群組具有不同成員);指定第一API與所述第一群組通信且指定第二 API與所述第二群組通信;以及指定所述第一API與所述第三群組的第一部分通信且指定所述第二API與所述第三群組的第二部分通信。所述操作亦可包含(在時間間隔期間)收集來自所述第一群組、所述第二群組以及所述第三群組的通信,且產生與每一群組相關聯的度量。此外,所述操作亦可包含產生比較與所述第一群組相關聯的度量及與所述第二群組相關聯的度量的比較報告,且基於與所述第三群組相關聯的度量產生相容性報告。在一些實施例中,所述操作亦可包含基於所述比較報告及所述相容性報告傳輸警示或建議中的至少一者。
本揭露內容的另一態樣是針對一種用於API遷移的電腦實行方法。所述方法可包含:將客戶端帳戶分離成第一群組、第二群組以及第三群組(每一群組具有不同成員);指定第一API與所述第一群組通信且指定第二API與所述第二群組通信;以及指定所述第一API與所述第三群組的第一部分通信且指定所述第二API與所述第三群組的第二部分通信。所述方法亦可包含(在時間間隔期間)收集來自所述第一群組、所述第二群組以及所述第三群組的通信,且產生與每一群組相關聯的度量。此外,所述方法亦可包含產生比較與所述第一群組相關聯的度量及與所述第二群組相關聯的度量的比較報告,且基於與所述第三群組相關聯的度量產生相容性報告。在一些實施例中,所述方法亦可包含基於所述比較報告及所述相容性報告傳輸警示或建議中的至少一者。
本揭露內容的又一態樣是針對一種系統,所述系統包含:一或多個處理器;及一或多個記憶體裝置,儲存指令。在由所述一或多個處理器執行時,所述指令組態所述一或多個處理器以:將客 戶端帳戶分離在第一群組、第二群組以及第三群組中(每一群組具有不同成員);指定第一API與所述第一群組通信且指定第二API與所述第二群組通信(所述第一API為舊有API且所述第二API為更新後API),其中所述第一API及所述第二API包含連接線上商店與電子商務資料中心的整合擴展。所述指令亦可組態所述一或多個處理器以:指定所述第一API與所述第三群組的第一部分通信且指定所述第二API與所述第三群組的第二部分通信;以及(在時間間隔期間)收集來自所述第一群組、所述第二群組以及所述第三群組的通信。所述指令亦可組態所述處理器以:產生與每一群組相關聯的API度量;產生比較與所述第一群組相關聯的API度量及與所述第二群組相關聯的API度量的比較報告(所述比較報告包括與所述第一群組相關聯的所述API度量同與所述第二群組相關聯的所述API度量之間的差值);以及基於與所述第三群組相關聯的API度量產生相容性報告。此外,所述指令亦可組態所述處理器以:判定所述差值是否低於可行性臨限值;判定與所述第三群組相關聯的所述API度量是否低於相容性臨限值;以及回應於判定所述差值低於所述可行性臨限值且與所述第三群組相關聯的所述API度量大於所述相容性臨限值,傳輸包括更新後API映射表及遷移API外掛程式的建議。
100、300:系統
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:汽車
320:API管理器
340:線上資源
350:客戶端裝置
360:第三方系統
370:網路
380:資料庫
402:處理器
404:輸入/輸出裝置
410:記憶體
412:程式
414:客戶端應用程式
416:資料
420:攝影機
430:指紋感測器
502:通信裝置
504:資料庫處理器
510:資料庫記憶體
512:資料庫程式
514:資料
600:API遷移系統
610:客戶端帳戶
612:第一群組
614:第二群組
616:第三群組
616A:第三群組的第一部分
616B:第三群組的第二部分
620:伺服器及資料中心
625:方法轉換器
632:API閘道A
634:API閘道B
636:後設資料儲存器
640:通信分析器
642:網路分析器
644A、644B、644C:專用記憶體
650:舊有/更新分析器
660:報告產生器
670:管理者網路
700:API路由系統
704:訂單閘道
710:路由器API
722:提交訂單
724:獲取訂單
726:檢查訂單狀態
732:訂單廣播
734:內部訂單
736:訂單追蹤
742:服務交換
744:訂單佇列
746:訂單資料庫存取
748:訂單追蹤
800:API調用過程流程
802:事件日誌
804:叢集事件串流
806:事件整合處理器
808:分散式文件儲存器
810:微服務模組
812:驗證提供商
814:事件匯流排
818:舊有API閘道
820:更新API閘道
900:分析及比較API調用的系統
902:資料串流模組
904:攝取引擎
906:記憶體分離模組
908:佇列模組
912:日誌管線
914:即時分析模組
916:編譯器
918:相容性及比較報告器
1000:分段運行測試系統
1002:舊有API
1004:更新後API
1006:冗餘過濾器
1012:後設資料比較器
1014:代理比較器
1016:客戶端比較器
1018:分配記錄
1020:測試定義
1022:比較度量
1100:API映射表
1102:API客戶端
1104:指定的API
1106:方法
1108:測試情境
1110:舊有群組
1112:更新群組
1114:相容性群組A
1116:相容性群組B
1200:API遷移測試過程
1202、1204、1206、1208、1210、1212、1214、1302、1304、1306、1308、1310、1312、1314、1316、1318、1320、1402、1404、1406、1408、1410、1412、1414、1416、1420、1502、1504、1506、1508、1510、1512、1514:步驟
1300:API差分評估過程
1400、1500:過程
1600:桌上型電腦GUI
1602:標題
1604:報告區段
1606:錯誤詳情面板
1608:結果鏈路
1650:行動GUI
1652:訊息
圖1A為與所揭露實施例一致的示出包括用於實現運送、運輸以及物流操作的通信的電腦化系統的網路的例示性實施例的示 意性方塊圖。
圖1B描繪與所揭露實施例一致的包含滿足搜尋請求的一或多個搜尋結果以及交互式使用者介面元素的樣本搜尋結果頁(Search Result Page;SRP)。
圖1C描繪與所揭露實施例一致的包含產品及關於所述產品的資訊以及交互式使用者介面元素的樣本單一顯示頁(Single Display Page;SDP)。
圖1D描繪與所揭露實施例一致的包含虛擬購物車中的物件以及交互式使用者介面元素的樣本購物車頁。
圖1E描繪與所揭露實施例一致的包含來自虛擬購物車的物件以及關於購買及運送的資訊以及交互式使用者介面元素的樣本訂單頁。
圖2為與所揭露實施例一致的經組態以利用所揭露電腦化系統的例示性履行中心的圖解圖示。
圖3為與所揭露實施例一致的例示性系統的示意性方塊圖。
圖4為與所揭露實施例一致的例示性客戶端裝置的方塊圖。
圖5為與所揭露實施例一致的例示性資料庫的方塊圖。
圖6為與所揭露實施例一致的例示性API遷移系統的方塊圖。
圖7為與所揭露實施例一致的例示性API路由系統的方塊圖。
圖8為與所揭露實施例一致的例示性API調用過程流程的方塊圖。
圖9為與所揭露實施例一致的用於分析及比較API調用的例 示性系統的方塊圖。
圖10為與所揭露實施例一致的用於API遷移的例示性分段運行測試系統的方塊圖。
圖11為與所揭露實施例一致的用於分段運行測試的例示性API映射表。
圖12為與所揭露實施例一致的例示性API遷移測試過程的流程圖。
圖13為與所揭露實施例一致的例示性API差分評估過程的流程圖。
圖14為與所揭露實施例一致的用於判定API度量的例示性過程的流程圖。
圖15為與所揭露實施例一致的用於執行API遷移建議的例示性過程的流程圖。
圖16顯示與所揭露實施例一致的在API評估期間產生的警示及/或通知的例示性圖形使用者介面。
以下詳細描述參考隨附圖式。只要可能,即在圖式及以下描述中使用相同附圖標號來指代相同或類似部分。儘管本文中描述若干示出性實施例,但修改、調適以及其他實施方案是可能的。舉例而言,可對圖式中所示出的組件及步驟進行替代、添加或修改,且可藉由取代、重新排序、移除步驟或將步驟添加至所揭露方法來修改本文中所描述的示出性方法。因此,以下詳細描述不限於所揭露實施例及實例。實情為,本發明的正確範圍由隨附申請專利 範圍界定。
本揭露內容的實施例是針對用於促進API遷移及/或使API遷移自動化的系統及方法,所述API遷移可包含API的修改、升級及/或更新。特定言之,所揭露的系統及方法可提供用於對多個API執行水桶測試或分段運行測試以評估其效能且識別遷移期間的問題及/或不相容性的工具。在一些實施例中,所揭露的系統及方法可藉由提供用於在不同API系統之間自動驗證或翻譯函數的工具來改良網站維護及更新的技術領域。舉例而言,所揭露的系統及方法可藉由提供用於執行自動比較API測試的工具來改良API遷移期間的網站除錯。另外,所揭露的系統及方法可藉由使API映射表及流程路徑的維持自動化來改良網站維護的領域。
此外,所揭露的系統及方法可藉由提供用於對API進行自動水桶測試或分段運行測試的工具來改良網站除錯的技術領域。此類工具可利用比較分析來識別API不相容性及不佳效能,且自動重新組態API系統及/或產生通知。舉例而言,所揭露的系統及方法可經組態以偵測過期碼或舊有碼在API腳本中的使用、提出修改及/或自動更新所述修改。此外,所揭露的系統及方法可藉由產生指示難度的比較報告來促進API版本控制。此外,除了評估不相容性問題以外,所揭露的系統及方法亦可藉由基於API效能產生比較度量而進行定量效能評估。
此外,所揭露的系統及方法可藉由使用API函數觸發監視功能來改良網路監視操作。舉例而言,在本揭露內容的一些實施例中,系統可僅監視網路通信中涉及API函數或常式的部分。舉例而言,所揭露的系統及方法可藉由以下方式來改良API轉換期 間的網路管理:作為API的部分,對發起及停止資料收集工具中的封包擷取的特定函數進行規劃,以過濾所關注的交互作用且促進對API效能的分析。
現將詳細參考所揭露實施例,其實例示出於隨附圖式中。
圖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(描繪為在履行中心(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 Display 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、重量、大小、報價、折扣或類似者相關的資訊。在一些實施例中,SRP亦可包含遞送選項、遞送選項的截止時間及/或請求使用者輸入的超媒體元素。外部前端系統103可(例如,經由網路)將SRP發送至請求使用者裝置。
使用者裝置可接著例如藉由點選或輕觸使用者介面或使 用另一輸入裝置自SRP選擇產品,以選擇表示於SRP上的產品。使用者裝置可製訂對關於所選產品的資訊的請求且將其發送至外部前端系統103。作為回應,外部前端系統103可請求與所選產品相關的資訊。舉例而言,資訊可包含除針對各別SRP上的產品呈現的資訊以外的額外資訊。此可包含例如保存期限、原產國、重量、大小、包裹中的物件的數目、處置說明、黎明或第一時間遞送的截止時間,或關於產品的其他資訊。資訊亦可包含類似產品的建議(基於例如巨量資料及/或對購買此產品及至少一個其他產品的客戶的機器學習分析)、頻繁詢問的問題的答案、來自客戶的評論、製造商資訊、圖像,或類似者。
外部前端系統103可基於所接收的產品資訊、客戶裝置的位置以及遞送選項的可用性來準備單一顯示頁(SDP)(例如,圖1C)。SDP亦可包含其他交互式元素,諸如「現在購買」按鈕、「添加至購物車」按鈕、數量欄、物件的圖像,或類似者。SDP可更包含提供產品的賣方的列表。可基於每一賣方提供的價格來對列表進行排序,使得可在頂部處列出提供以最低價格銷售產品的賣方。亦可基於賣方排名來對列表進行排序,使得可在頂部處列出排名最高的賣方。可基於多個因素來製訂賣方排名,所述因素包含例如賣方的符合承諾PDD的過去的追蹤記錄。外部前端系統103可(例如,經由網路)將SDP遞送至請求使用者裝置。
請求使用者裝置可接收列出產品資訊的SDP。在接收到SDP後,使用者裝置可接著與SDP交互。舉例而言,請求使用者裝置的使用者可點選或以其他方式與SDP上的「放在購物車中」按鈕交互。此將產品添加至與使用者相關聯的購物車。替代地或另 外,使用者可藉由提供遞送指令來與SDP交互。使用者裝置可將把產品添加至購物車的此請求傳輸至外部前端系統103。
外部前端系統103可產生購物車頁(例如,圖1D)。在一些實施例中,購物車頁列出使用者已添加至虛擬「購物車」的產品。使用者裝置可藉由在SRP、SDP或其他頁上的圖標上點選或以其他方式與所述圖標交互來請求購物車頁。在一些實施例中,購物車頁可列出使用者已添加至購物車的所有產品,以及關於購物車中的產品的資訊(諸如每一產品的數量、每一產品每物件的價格、每一產品基於相關聯數量的價格)、關於PDD的資訊、遞送方法、運送成本、用於修改購物車中的產品(例如,刪除或修改數量)的使用者介面元素、用於訂購其他產品或設置產品的定期遞送的選項、用於設置利息支付的選項、用於前進至購買的使用者介面元素,或類似者。使用者裝置處的使用者可在使用者介面元素(例如,寫著「現在購買」的按鈕)上點選或以其他方式與所述使用者介面元素交互,以發起對購物車中的產品的購買。在如此做後,使用者裝置可將發起購買的此請求傳輸至外部前端系統103。在一些實施例中,購物車頁可包含文字盒輸入、交互式圖標,或針對每一產品遞送的建議訊息。
外部前端系統103可回應於接收到發起購買的請求而產生訂單頁(例如,圖1E)。在一些實施例中,訂單頁重新列出來自購物車的物件且請求支付及運送資訊的輸入。舉例而言,訂單頁可包含請求關於購物車中的物件的購買者的資訊(例如,姓名、地址、電子郵件地址、電話號碼)、關於接收者的資訊(例如,姓名、地址、電話號碼、遞送資訊)、運送資訊(例如,遞送及/或揀貨的 速度/方法)、支付資訊(例如,***、銀行轉賬、支票、儲存的積分)、請求現金收據(例如,出於稅務目的)的使用者介面元素,或類似者的區段。外部前端系統103可將訂單頁發送至使用者裝置。
使用者裝置可輸入關於訂單頁的資訊,且點選或以其他方式與將資訊發送至外部前端系統103的使用者介面元素交互。自此處,外部前端系統103可將資訊發送至系統100中的不同系統,以使得能夠創建及處理具有購物車中的產品的新訂單。在一些實施例中,外部前端系統103可進一步經組態以使得賣方能夠傳輸及接收與訂單相關的資訊。
在一些實施例中,內部前端系統105可實行為使得內部使用者(例如,擁有、操作或租用系統100的組織的雇員)能夠與系統100中的一或多個系統交互的電腦系統。舉例而言,在SAT系統101使得系統的呈現能夠允許使用者針對物件下訂單的實施例中,內部前端系統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亦可向勞動力管理系統(workforce 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中的產品的一或多個計數、哪一履行中心儲存每一產品、產品的預期或當前訂單,或類似者。
在一些實施例中,履行通信報閘道(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的自希望使用系統100(圖1A)銷售產品的賣方接收到物件的區域。舉例而言,賣方可使用卡車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中,API管理器320可包含經組態以處理來自即時客戶端裝置的資料串流的資訊請求的伺服器、電腦模組及/或資料處 理中心。舉例而言,API管理器320可處置來自外部通信的請求(例如,API管理器320可為外部前端系統103的部分)、來自系統內的其他分區的內部請求(例如,API管理器320可為內部前端系統103的部分)、系統100的不同部分之間的通信(例如,API管理器320可介接WMS 119與FMG 115)。在此等多個情境中,API管理器320可處理API調用且解析客戶端請求。API管理器320亦可(例如經由3PL系統121A至3PL系統121C)與可能請求資訊或與後端系統的交互作用的客戶端及/或第三方耦接。此外,API管理器320可在資料庫中提供用以解析針對資訊或操作的客戶端請求的資訊。
在一些實施例中,API管理器320亦可執行用以更新或遷移用於與不同客戶端介接的API的操作。舉例而言,API管理器320可執行用以在不同API之間分離客戶端群且在遷移或測試期間進行API指定的操作。舉例而言,如關於圖12進一步所論述,API管理器320可執行用以在不同API之間運行比較及相容性測試且基於所述結果來實行API指定的操作。在一些實施例中,API管理器320可包含用以評估API的效能且計算API度量的網路分析器。
另外或替代地,在一些實施例中,API管理器320可藉由系統100(圖1A)的組件中的一或多者實行。舉例而言,API管理器320可為SAT系統101、外部前端系統103、FO系統113、SCM系統117及/或WMS 119(圖1A)的部分。在其他實施例中,API管理器320可藉由一或多個獨立伺服器實行,所述獨立伺服器經組態以執行用於將內容提供至客戶端裝置及/或為客戶端裝置 350產生網頁的操作。
除API管理器320之外,系統300亦可包含線上資源340、客戶端裝置350、第三方系統360以及資料庫380。在一些實施例中,如圖3中所繪示,系統300的組件可連接至網路370。然而,在其他實施例中,系統300的組件可直接彼此連接而無需網路370。舉例而言,資料庫380可直接耦接至API管理器320。
線上資源340可包含藉由實體提供的一或多個伺服器或儲存服務,所述實體諸如網頁託管、網路連接、雲或備份服務的提供商。在一些實施例中,線上資源340可與儲存用於驗證服務、網域名稱系統(Domain Name System;DNS)或登陸頁的網頁的託管服務或伺服器相關聯。在其他實施例中,線上資源340可與雲計算服務相關聯。在另外其他實施例中,線上資源340可與通信報服務相關聯,諸如(例如)蘋果推播通知服務(Apple Push Notification Service)、天藍行動服務(Azure Mobile Services)或谷歌雲通信報(Google Cloud Messaging)。在此類實施例中,線上資源340可處置與所揭露實施例的功能相關的訊息及通知的遞送,諸如處置數位權利的管理。
客戶端裝置350可包含經組態以進行與所揭露實施例一致的一或多個操作的一或多個計算裝置。舉例而言,客戶端裝置350可包含桌上型電腦、膝上型電腦、伺服器、行動裝置(例如,平板電腦、智慧型電話等)、機上盒、遊戲裝置、隨身計算裝置或其他類型的計算裝置。在一些實施例中,客戶端裝置350可包含使用者裝置102(圖1A)且作為系統100的部分操作。然而,在其他實施例中,客戶端裝置350可獨立於系統100。客戶端裝置 350可包含經組態以執行儲存於記憶體(諸如包含於客戶端裝置350中的記憶體)中的軟體指令以進行操作以實行下文所描述功能的一或多個處理器。舉例而言,客戶端裝置350可經組態以與API管理器320通信以請求用於顯示網頁或傳輸客戶端請求的資訊。此外,客戶端裝置350可經組態以根據由API管理器320傳輸的指令(諸如回呼腳本或函數)進行操作。另外,客戶端裝置350可經組態以用於有線及/或無線通信,且可包含在由處理器執行時進行網際網路相關通信(例如,TCP/IP)及內容顯示過程的軟體。舉例而言,客戶端裝置350可執行產生及顯示具有產品資訊的介面的瀏覽器軟體。因此,客戶端裝置350可執行允許客戶端裝置350經由網路370與組件通信且經由包含於客戶端裝置350中的顯示裝置在介面中顯示內容的應用程式。
在一些實施例中,如下文關於圖4進一步所描述,客戶端裝置350可運行特定經組態以與API管理器320交互的應用程式。此外,客戶端裝置350可儲存一或多個賬戶。舉例而言,客戶端裝置350可儲存關於客戶的遞送偏好、客戶的位置、客戶賬戶以及客戶識別的資訊以用於API交換期間的驗證。
所揭露實施例不限於客戶端裝置350的任何特定組態。舉例而言,客戶端裝置350可為儲存及執行行動應用程式以執行操作的行動裝置,所述操作提供由API管理器320及/或線上資源340提供的功能。在某些實施例中,客戶端裝置350可經組態以執行與位置服務(諸如GPS位置)相關的軟體指令。舉例而言,客戶端裝置350可經組態以判定地理位置,以及提供位置資料及對應於所述位置資料的時戳資料。結合圖4進一步描述客戶端裝置 350。
資料庫380可包含組態有適當軟體的一或多個計算裝置,所述軟體用於執行與為API管理器320提供客戶帳戶、API組態、度量(諸如API度量)以及報告的資料一致的操作。資料庫380可包含例如甲骨文TM(OracleTM)資料庫、賽貝斯TM(SybaseTM)資料庫或其他關連式資料庫或非關連式資料庫,諸如HadoopTM順序檔案、HBaseTM或CassandraTM。資料庫380亦可包含計算組件(例如,資料庫管理系統、資料庫伺服器等),所述計算組件經組態以接收及處理對儲存於資料庫的記憶體裝置中的資料的請求及自資料庫提供資料。
儘管單獨繪示資料庫380,但在一些實施例中,資料庫380可包含於API管理器320或線上資源340中,或以其他方式與API管理器320或線上資源340相關。
資料庫380可經組態以收集及/或維護與使用者帳戶及API指定或所記錄通信相關聯的資料。舉例而言,資料庫380可儲存關於系統300的使用者的使用者設定檔的資訊。此外,資料庫380可儲存關於地址及客戶端ID的資訊,包含針對特定地址及/或客戶端ID的遞送方法。資料庫380亦可儲存先前所生成的API映射表,且可儲存API外掛程式。資料庫380可自各種來源收集資料,所述來源包含例如線上資源340或第三方系統360。另外,資料庫380可包含關於客戶端裝置350作業系統的資訊。下文結合圖5進一步描述資料庫380。
在一些實施例中,第三方系統360可包含系統100的一或多個元件。舉例而言,第三方系統360可包含3PL系統121A至 3PL系統121C(圖1)。另外或替代地,第三方系統360可包含藉由與API管理器320相關的實體提供的一或多個伺服器或儲存服務,所述實體諸如服務提供商或履行中心。第三方系統360亦可經由網路370連接至系統300,但在其他實施例中,第三方系統360可包含與系統300的一些元件的直接連接。舉例而言,為了最小化延遲或網路擁擠,某些第三方系統360可在專用網路中與API管理器320連接。此外,第三方系統360可經組態以提供及/或請求來自API管理器320的資訊以存取來自系統300的其他元件的資訊。在一些實施例中,儘管第三方系統360亦可耦接至網路370,但其可能不為API管理器320的客戶端。
網路370可為經組態以提供系統300的組件之間的通信的任何類型的網路。舉例而言,網路370可為提供通信、交換資訊及/或促進資訊交換的任何類型的網路(包含基礎設施),諸如網際網路、區域網路、近場通信(near field communication;NFC)或使得能夠在系統300的組件之間發送及接收資訊的其他合適的連接。在一些實施例中,系統300的一或多個組件可經由專用通信鏈路直接通信。在另外其他實施例中,網路370可包含多個網路,從而組織例如一或多個網路。
應理解,出於描述的便利性,本文中已界定系統300的功能建置區塊的組態及邊界。只要適當地進行指定功能及其關係,即可界定替代性邊界。替代方案(包含本文中所描述的替代方案的等效物、擴展、變化、偏差等)將是顯而易見的。此類替代方案落入所揭露實施例的範圍內。
現參考圖4,繪示與所揭露實施例一致的例示性客戶端裝 置350(圖3)的方塊圖。在一些實施例中,客戶端裝置350可實行使用者裝置102A至使用者裝置102B(圖1A)。
在一個實施例中,客戶端裝置350可包含一或多個處理器402、一或多個輸入/輸出(input/output;I/O)裝置404以及一或多個記憶體410。在一些實施例中,客戶端裝置350可呈行動計算裝置形式,諸如智慧型手機或平板電腦、通用電腦或此等組件的任何組合。替代地,客戶端裝置350(或包含客戶端裝置350的系統)可基於進行與所揭露實施例一致的一或多個操作的軟體指令的儲存、執行及/或實行而經組態為特定設備、嵌入式系統、專用電路。根據一些實施例,客戶端裝置350可包含與所揭露實施例一致的訪問網站的網路瀏覽器或類似計算裝置。
處理器402可包含一或多個已知處理裝置,諸如由英特爾(Intel)TM製造的行動裝置微處理器、NVIDIATM,或來自其他製造商的各種處理器。所揭露實施例不限於組態於客戶端裝置350中的任何具體類型的處理器。
記憶體410可包含一或多個儲存裝置,所述儲存裝置經組態以儲存由處理器402使用以進行與所揭露實施例相關的功能的指令。舉例而言,記憶體410可經組態有一或多個軟體指令,諸如可在由處理器402執行時進行操作的程式412。所揭露實施例不限於經組態以進行專用任務的單獨程式或電腦。舉例而言,記憶體410可包含執行客戶端裝置350的功能的單一程式412,或程式412可包含多個程式。記憶體410亦可包含可將客戶端裝置350組態以通信或執行操作以與系統300的其他元件交互的客戶端應用程式414。舉例而言,客戶端應用程式414可指定與API管理器 320通信及/或產生產品資訊請求的指令,如結合圖7進一步描述。此外,客戶端應用程式414可解譯用於在客戶端裝置350中產生圖形使用者介面(graphical user interface;GUI)或修改所顯示的GUI的指令。記憶體410亦可儲存資料416,API管理器320可使用所述資料416來產生及維護資訊叢集。
在某些實施例中,記憶體410可儲存用於存取API管理器320或將請求發送至API管理器320的指令。舉例而言,記憶體410可包含經由TCP/IP與API管理器320通信的應用程式。此外,其他軟體組件可經組態以請求來自API管理器320的資訊或判定客戶端裝置350的位置。舉例而言,此等軟體指令在由處理器402執行時可使用API來請求來自資料庫380的資訊及/或請求資訊更新。軟體指令亦可實行腳本以修改在客戶端裝置350中所顯示的網頁。
I/O裝置404可包含一或多個裝置,所述一或多個裝置經組態以允許藉由客戶端裝置350接收到及/或傳輸資料,以及允許客戶端裝置350與其他機器及裝置通信,諸如系統300的其他組件。舉例而言,I/O裝置404可包含用於確認包裹的遞送或向使用者提供資訊的螢幕。I/O裝置404亦可包含用於NFC通信的組件。l/O裝置404亦可包含允許使用者與客戶端裝置350交互的一或多個數位及/或類比裝置,諸如觸敏區域、按鈕或麥克風。I/O裝置404亦可包含一或多個加速計以偵測客戶端裝置350的定向及慣性。I/O裝置404亦可包含所屬技術領域中已知的用於與API管理器320交互的其他組件。
在一些實施例中,客戶端裝置350亦可包含擷取影像且 可用於識別使用者想要的產品的攝影機420。此類識別可觸發對用於顯示的內容資訊的請求。另外或替代地,客戶端裝置350可包含允許使用者解鎖客戶端裝置350以訪問其賬戶、發送資訊請求以及購買物件的指紋感測器430。攝影機420及指紋感測器430兩者可由處理器402操作且使用加密保全以使使用者不可能自外部存取指紋或攝影機資訊。
客戶端裝置350的組件可以硬體、軟體或硬體及軟體兩者的組合實行,如將對所屬技術領域中具有通常知識者顯而易見。
現參考圖5,繪示與所揭露實施例一致的資料庫380(圖3)中的例示性一者的方塊圖。在一些實施例中,資料庫380可包含於系統100的元件中。舉例而言,資料庫380可為外部前端系統103或WMS 119(圖1A)的部分。
資料庫380可包含通信裝置502、一或多個資料庫處理器504,以及包含一或多個資料庫程式512及資料514的資料庫記憶體510。資料庫380可包含NoSQL資料庫,諸如HBase、MongoDBTM或CassandraTM。替代地,資料庫380可包含諸如甲骨文、MySQL以及微軟SQL伺服器的關連式資料庫。
在一些實施例中,資料庫380可為伺服器、通用電腦、大型主機電腦或此等組件的任何組合。在一些實施例中,資料庫380包含在系統300的其他元件(諸如API管理器320)內。與所揭露實施例一致的其他實施為可能的。
在一些實施例中,資料庫380可包含非關連式資料庫及嵌入式資料庫兩者。舉例而言,資料庫380可包含諸如Hbase的非關連式資料庫,以及諸如RocksDB的嵌入式資料庫(例如,鍵 值儲存資料庫)。
通信裝置502可經組態以與系統300或系統100的一或多個組件通信,所述一或多個組件諸如線上資源340、API管理器320或SCM系統117。特定言之,通信裝置502可經組態以經由API管理器320與客戶端裝置350或系統300的其他元件通信。
資料庫380的組件可以硬體、軟體或硬體及軟體兩者的組合實行。舉例而言,儘管資料庫380的一或多個組件可實行為電腦處理指令模組,但資料庫380的功能性的所有或一部分可改為以專用電子硬體實行。
資料庫記憶體510可包含程式512,程式512可包含指令以產生記錄的叢集及/或對來自客戶端裝置350的資訊請求作出回應。另外,資料庫記憶體510可包含用於系統300的元件之間的通信的指令。舉例而言,資料庫記憶體510可包含用於客戶端裝置350與API管理器320之間的通信的指令。另外,程式512可包含在由API管理器320處理資訊時即時儲存所述資訊的指令。
資料514亦可為與網頁相關聯的資料,諸如線上資源340的資訊,或來自客戶端裝置350的使用者帳戶。資料514可包含例如關於API指定或通信偏好的資訊。
圖6為與所揭露實施例一致的例示性API遷移系統600的方塊圖。在API遷移系統600中,API管理器320(圖3)可連接至客戶端帳戶610、伺服器及資料中心620、通信分析器640以及報告產生器660。
客戶端帳戶610可包含系統300(圖3)中的使用者,所述使用者可經由API管理器320與系統300的其他元件交互。舉 例而言,客戶端帳戶610可包含與客戶端裝置350、第三方系統360及/或線上資源340相關聯的帳戶。在一些實施例中,客戶端帳戶可包含購物者的帳戶、內部服務的帳戶以及線上零售商的客戶。另外或替代地,客戶端帳戶610可包含與賣方(例如,經由賣方入口網站109連接的帳戶)、工作者(例如,在勞動管理系統125中指定的工作者)或履行中心(例如FMG 115)相關聯的帳戶。如圖6中所繪示,客戶端帳戶可劃分在多個群組中。API管理器320可將客戶端帳戶610分類在不同群組中,從而針對所述群組中的每一者以特定組態實行及管理API。舉例而言,客戶端帳戶610可分類在第一群組612、第二群組614以及第三群組616中。在一些實施例中,如圖6中所繪示,所述群組中的每一者可彼此獨立(亦即,每一群組具有唯一帳戶),且所述群組對總數目的客戶端帳戶610的一部分進行取樣。然而,在其他實施例中,第一群組612、第二群組614以及第三群組616可共用一些帳戶及/或可涵蓋總數目的帳戶。
客戶端帳戶610至第一群組612、第二群組614以及第三群組616中的劃分可基於群組分段規則。在此等實施例中,API管理器320可實行群組分段規則以劃分客戶端帳戶610以進行API測試。群組分段規則可包含例如群組大小規則,使得群組中的每一者應具有相同數目個帳戶。分段規則亦可包含帳戶多樣性規則,其可要求每一群組具有與內部API調用相關聯的至少一個帳戶、與外部API調用相關聯的一個帳戶及/或產生週期性調用的帳戶。舉例而言,分段規則可指定每一群組應包含每分鐘具有至少一個請求的帳戶。帳戶類別亦可包含新帳戶及返回帳戶,且分段規則可要 求每一群組具有新帳戶及老帳戶兩者。群組分段規則亦可包含特定帳戶數目(例如每一群組應包含至少1000個帳戶)且包含用於地理分段的規則。此外,在一些實施例中,分段規則可基於裝置的起源類型來劃分帳戶,要求每一群組包含例如與行動裝置相關的帳戶、與伺服器相關的帳戶以及與桌上型電腦相關的帳戶。此外,群組分段規則可指定不同群組的大小之間的關係,例如要求第一群組612大於第二群組614且第三群組大於第一群組612。此分段類型可為顯著的,以保證API系統評估的統計顯著性。
在一些實施例中,群組分段規則可組態為動態的,且基於帳戶的行為而改變。舉例而言,API管理器320可監視群組中的每一者中的帳戶的活動性。若API管理器320判定一個帳戶為不活動的,則API管理器320可用來自未分組帳戶的另一賬號來替換所述帳戶。
在一些實施例中,如圖6中所繪示,第三群組616可為再分為第一部分616A及第二部分616B。如結合圖12進一步所論述,對第三群組616進行再分可允許在並行運行多個API的單獨群組中運行相容性測試。不同API在一組使用者中的同時操作可展現低於API效能的不相容性或冗餘。
客戶端帳戶610可經由API閘道連接至API管理器320。在一些實施例中,API管理器320可包含多個API閘道,諸如API閘道A 632及API閘道B 634。API閘道A 632及API閘道B 634可位於客戶端帳戶610與藉由API管理器320介接的後端服務之間。在一些實施例中,API閘道A 632及API閘道B 634可充當反向代理以接受API調用、聚合履行所述API調用所需的各種服務 以及返回適當結果。此外,API閘道A 632及API閘道B 634可處置諸如使用者驗證、速率限制以及統計的任務。
在一些實施例中,API閘道A 632及API閘道B 634可經組態以使客戶端介面與後端實現解耦。因此,當客戶端帳戶610中的一者進行請求時,API閘道A 632及API閘道B 634可將所述請求分成多個請求、將所述多個請求路由至正確的模組(如結合圖7進一步所描述)、產生回應並且追蹤額外調用。
在一些實施例中,API閘道A 632及API閘道B 634可專用於不同API群組或系統,可指定給不同帳戶,且可經組態以並行工作。舉例而言,在API閘道A 632處置來自第一群組612的調用的同時,API閘道B 634可處置來自第二群組614的調用。此外,API閘道A 632可進行針對用舊有API(用先前部署的函數及操作)來進行處理的調用,而API閘道B 634可進行針對用更新或修改後的API(用新函數及操作)來進行處理的調用。具有API閘道的此多重性允許API管理器320藉由將不同API指定到客戶端帳戶的不同群組而在自動分析中測試並比較不同API的效能。此組態可允許API管理器320執行自動分段測試或水桶測試以用於比較兩個或多於兩個API的效能及相容性。如圖6中所繪示,在一些實施例中,API管理器320可組態API閘道A 632以處置來自第一群組612及第一部分616A的通信,且組態API閘道B 634以處置來自第二群組614及第二部分616B的通信。舉例而言,API管理器320可使用指定一組使用者及所指定閘道的API映射表而將API閘道A 632及API閘道B 634指定到特定帳戶。
除閘道外,API管理器320亦可包含後設資料儲存器636, 所述後設資料儲存器636可錄入來自API閘道A 632及API閘道B 634的資料。舉例而言,後設資料儲存器636可記錄經由閘道自客戶端帳戶610接收的水桶存取控制、頻道、預設物件控制、通知、物件、鍵以及項目。在一些實施例中,儲存在後設資料儲存器中的資訊可用於API度量的計算,如結合圖14進一步所描述。
API管理器320可與伺服器及資料中心620連接且在處理API調用之後請求資訊。舉例而言,API管理器320可處理來自與客戶端帳戶610相關聯的客戶端裝置的請求,且向伺服器及資料中心620請求資訊以解析客戶端請求。在一些實施例中,當使用者經由API調用請求物件資訊時,API管理器320可自伺服器及資料中心620擷取所述資訊以將所述資訊中繼至客戶端。在一些實施例中,伺服器及資料中心620可包含線上零售商的伺服器。替代地,API管理器320可經由方法轉換器625連接至伺服器及資料中心620,所述方法轉換器625可在不同語法之間翻譯指令以與伺服器及資料中心620交互。舉例而言,當以一種格式接收API調用但API管理器已判定所述格式不再可用或高效時,API管理器320可指示方法轉換器625將指令調整為所選擇格式。
除了與伺服器及資料中心620耦接以外,API管理器320亦可耦接至通信分析器640,所述通信分析器640可擷取並分選經由API管理器320傳入的通信以執行比較及相容性評估。通信分析器640可包含網路分析器642。網路分析器642可經組態以過濾及擷取進出客戶端帳戶610的通信的封包。在一些實施例中,API管理器320可標記用並行API中的每一者處置的通信以促進網路分析器642所進行的過濾或分選。另外,通信分析器640可包含 專用記憶體644A至專用記憶體644C,所述專用記憶體可經組態以針對經分離群組中的每一者儲存來自通信的封包或資料。為了促進稍後對每一API及每一客戶端帳戶群組的效能的分析,專用記憶體644A至專用記憶體644C可經組態以排他性地儲存與經分離群組中的一者相關聯的資料。舉例而言,專用記憶體644A可儲存與第一群組612相關的資料,專用記憶體644B可儲存與第二群組614相關的資料,且專用記憶體644C可儲存與第三群組616相關的資料。此資料分離可促進稍後的資料處理。在一些實施例中,網路分析器642可經組態以擷取自與(第一群組、第二群組以及第三群組中的)客戶端帳戶相關聯的客戶端裝置傳入的封包,且將自每一群組擷取的封包儲存在獨立記憶體空間(諸如專用記憶體644A至專用記憶體644C)中。
如圖6中所繪示,通信分析器640可耦接至舊有/更新分析器650,所述舊有/更新分析器650可估計度量且評估API的效能及其相容性。舉例而言,基於專用記憶體644A至專用記憶體644C中的資訊,舊有/更新分析器650可判定基礎設施API度量、應用程式API度量以及API產品度量以比較API閘道A 632及API閘道B 634所進行的API處置的效能。此外,舊有/更新分析器650可判定API相容性,例如分析HTTP回應碼的行為。結合圖10進一步描述舊有/更新分析器650。
舊有/更新分析器650可將資訊提供至報告產生器660,所述報告產生器660可產生API的相容性報告及/或API效能的比較報告。舉例而言,報告產生器660可在所測試API中的一者相比於其他所測試API具有較差的效能時產生警示,或可提供關於 哪些函數或過程導致不相容性的建議。在一些實施例中,報告產生器660可將電子郵件或訊息發送至廣播警示或建議的管理者網路670。報告產生器660亦可經組態以將指令傳輸至API管理器320。舉例而言,在一些實施例中,舊有/更新分析器650可斷定更新後或當前API相比於舊有API表現更佳。此外,舊有/更新分析器650可判定不存在顯著可比性問題。在此類情境中,報告產生器660可傳輸指令至API管理器320以切換指定到舊有API的帳戶,以有利於更新API。在一些實施例中,API管理器320可斷開API閘道A 632,且將與舊有API相關聯的客戶端帳戶重新指定為藉由更新後的API處置。
圖7為與所揭露實施例一致的例示性API路由系統700的方塊圖。系統700可用以藉由選擇不同級別及類型的API來解析來自客戶端裝置350的API調用。此外,在系統700中,客戶端裝置350的每一群組可指定到不同API群組及/或路徑,以實現完整API操作的自動比較。
在系統700中,訂單閘道704可接收來自客戶端裝置350的請求。在一些實施例中,訂單閘道704可藉由串流處理軟體實行以即時地收集資訊的串流且處理所述串流,結合圖8進一步描述。訂單閘道704可將資訊提供至路由器API 710,所述路由器API 710可將客戶端請求及API調用路由至不同API服務。舉例而言,路由器API 710可在識別請求來自與第一群組612相關聯的帳戶時將API調用路由至舊有API系統,而在判定請求來自與第二群組614相關聯的帳戶時將API調用路由至更新後的API系統。在一些實施例中,路由器API 710可基於API映射表及訂單 入口704所提取的資訊而選擇API閘道A 632或API閘道B 634中的一者來處理請求。
路由器API 710可引導請求穿過可包含多個級別的API的不同內部API。第一級API可產生若干其他API的內容、特徵以及功能性。第一級API可將項目資料格式、交互時序或協定指定至特定頻道及上下文中。第一級API可包含提交訂單722、獲取訂單724以及檢查訂單狀態726的函數。
第一級API可與第二級API通信。第二級API可組合資料且協調其他API用於特定任務。舉例而言,第二級API可支援企業出售物(例如產品及服務)的組合。第二級API可包含用於訂單廣播732、內部訂單734以及訂單追蹤736的函數。此等函數可實現邏輯及編配。不同於其他級別,第二級API不與端系統直接通信,而是替代地連接至第三級API以獲得資料。在一些實施例中,第二級API使用表示狀態傳送函數(representational state transfer function;REST)來聚合來自多個系統的資料。
第二級API可與第三級API通信,所述第三級API可經組態以將資訊返回至客戶端裝置350及/或實現客戶端裝置350與後端系統之間的直接交互。第三級API可支援多於一種值串流及/或企業能力。第三級API可經組態以使用例如直接Java調用或SAP調用來與系統通信。第三級API可處置系統特定連接及設置,且公開資源及標準格式。第三級API可包含用於服務交換742、訂單佇列744、訂單資料庫存取746以及訂單追蹤748的函數。
舊有API及更新後API可包含第一級API至第三級API中的每一者。因此,API路由系統700展示用於解析來自客戶端裝 置350的API調用的例示性路徑組態,但可執行類似過程來處置不同來源的調用。舉例而言,類似架構可用以處置對於資訊的內部請求及/或與履行中心通信。
圖8為與所揭露實施例一致的例示性API調用過程流程800的方塊圖。過程流程800描述API管理器320可如何處置資料串流(例如,來自客戶端裝置350的API調用的串流)。舉例而言,API管理器320可使用過程流程800來處理及分選API調用的串流以進行比較或分段運行API測試。在一些實施例中,經由過程流程800,API管理器320可將API調用的串流路由至多個API閘道中。
在過程流程800中,事件日誌802可接收傳入的資料串流。傳入的資料串流可包含來自系統中請求資訊或操作的客戶端裝置及使用者的API調用或請求的串流。舉例而言,傳入的資料串流可包含訂單及/或追蹤請求。在一些實施例中,事件日誌802可藉由提供即時饋送的高通量處置的串流處理軟體(諸如阿帕奇卡夫卡(Apache Kafka))實行。舉例而言,事件日誌802可包含Java串流處理庫,且使用依靠於「訊息集合」抽象化的基於二進制TCP的協定,所述「訊息集合」抽象化自然地將訊息聚集在一起以減小網路往返的開銷。
事件日誌802接著可將訊息集合及/或處理後的資料串流傳達至叢集事件串流804。叢集事件串流804可產生傳入資料調用的叢集的群組,且基於所產生的群組提供用於支援一般操作執行的最佳化引擎。在一些實施例中,叢集事件串流804可基於時間間隔、地理及/或客戶端帳戶分類來產生資料串流批次。此資料叢 集化可藉由基於類似請求及/或通信路徑將API調用分批而最佳化API調用。在一些實施例中,叢集事件串流804可藉由阿帕奇火花(Apache Spark)實行。
可將經叢集的事件傳輸至事件整合處理器806,所述事件整合處理器806可包含用於諸如即時分析、資料整合、通知管理以及自適應決策的使用案例的事件驅動應用程式。事件整合處理器806可擷取來自各種資料來源的事件,處理並分析所述事件,與多個服務及資料儲存器整合,且即時地將輸出發佈至各個端點。經整合的事件接著可儲存於分散式文件儲存器808的非結構化文件中。分散式文件儲存器808可藉由允許特定查詢、索引、複製以及負載平衡的NoSQL資料庫程式實行。
微服務模組810可消耗分散式文件儲存器808中的資料來識別事件且在虛擬化核心中處理事件。舉例而言,微服務模組810可採用在專用虛擬核心中運行的多個事件驅動應用程式框架。微服務模組810可處理並過濾API調用(即使所述API調用使用API函數或組態的不同版本),且標準化或轉換所述API調用以供稍後藉由例如API管理器320處理。
在微服務模組810處,過程流程800可剖析及標準化即時資料串流以促進其識別及路由。執行此準備階段允許將API調用分在不同API系統(例如舊有API系統與當前API系統)下以執行水桶測試。藉由通過事件日誌802、叢集事件串流804以及事件整合處理器806,有可能識別群組且將所述群組正確地路由至API系統中的一者,同時收集用於稍後評估及/或比較的相關資訊。
微服務模組810可與驗證提供商812及事件匯流排814 通信,所述驗證提供商812可驗證處理後API調用的有效性,所述事件匯流排814可組織所述調用以將所述調用饋送至API閘道中。驗證提供商812可包含基於符記的驗證及/或在微服務模組810中的每一微服務處實行安全性組件。事件匯流排814可處置服務間通信。在一些實施例中,事件匯流排814可充當用於異步事件驅動的通信的中間頻道。此外,事件匯流排814可支援發佈/訂用、分散式、點至點以及請求-回應通信報。在一些實施例中,事件匯流排814可允許客戶端使用事件匯流排814與對應的伺服器節點通信。
驗證提供商812及事件匯流排814可與舊有API閘道818及更新API閘道820兩者通信。舉例而言,驗證提供商812可提供傳入資料串流中的API調用的驗證,而事件匯流排814可提供關於特定請求的資訊以及由微服務模組810及/或事件整合處理器產生的相關聯經標記後設資料。在一些實施例中,舊有API閘道818及更新API閘道820可藉由API閘道A 632及API閘道B 634(圖6)實行。
圖9為與所揭露實施例一致的用於分析及比較API調用的例示性系統900的方塊圖。在一些實施例中,系統900可為系統600的子系統。舉例而言,當API管理器320以進行API效能的即時評估為目標時,系統900可實行舊有/更新分析器650。
系統900可包含資料串流模組902,所述資料串流模組902可接收來自網路分析器的資訊及/或來自與一組客戶端帳戶相關聯的通信的資訊。舉例而言,資料串流模組902可接收在網路分析器642(圖6)擷取封包時來自所述網路分析器642的資訊或 通過API管理器320的通信的資訊。資料串流模組902可將此資訊傳輸至攝取引擎904,所述攝取引擎904可執行資料過濾、識別或標準化。舉例而言,攝取引擎904可執行具有資料準備特徵的自動資料攝取以結構化及組織API調用,使得可即時地分析所述API調用。攝取引擎904可執行API調用的分批及串流攝取兩者。
在一些實施例中,攝取引擎904可經由記憶體分離模組906將處理後的資料儲存在專用記憶體中,諸如專用記憶體644A至專用記憶體644C(圖6)。另外或替代地,攝取引擎904可將資訊提供至佇列模組908,所述佇列模組908分選來自兩個或多於兩個API系統的資料。此經過組織的資料接著可經由日誌管線912傳輸至即時分析模組914。即時分析可基於用每一API系統處置的API調用的記錄來估計API度量。如結合圖14進一步所描述,即時分析模組914可基於API交互作用的度量來定量效能。舉例而言,即時分析模組914可基於經由日誌管線912傳入的資訊來判定諸如延遲、相容性以及錯誤度量的度量。此外,在一些實施例中,即時分析模組914可執行兩個或多於兩個API的額外測試。舉例而言,即時分析模組914可將相同的GET、POST以及PUT請求發送至多個API並比較結果。
來自即時分析模組914的輸出可傳輸至編譯器916,所述編譯器916可聚合所估計的度量且判定中繼至相容性及比較報告器918的統計資料,所述相容性及比較報告器918可產生不同API系統之間的相容性及比較報告。相容性及比較報告器918可使用由即時分析模組914產生的度量來判定例如更新後的API是否與舊有API相容及/或更新後的API是否具有改良的度量。此外,相 容性及比較報告器918可產生指定導致不相容性的函數或常式的報告。在此等實施例中,相容性及比較報告器918可包含源相容性(例如針對舊有API寫入的程式碼無法針對更新後的API編譯)及二進制相容性(例如針對舊有API編譯的程式碼無法針對更新API庫鏈接/運行)的問題。此外,相容性報告亦可包含線相容性(其描述舊有API與更新後API之間的通信錯誤)及語義相容性(其指示非預期結果)。
在一些實施例中,相容性及比較報告器918可產生比較API的效能的警示或報告。舉例而言,相容性及比較報告器918可產生來自線上JavaScript物件表示(JavaScript Object Notation;JSON)比較器的結果,所述結果詳述在線上比較器中受測試的端點的輸入及回應且針對每一端點重複。
圖10為與所揭露實施例一致的用於API遷移的例示性分段運行測試系統1000的方塊圖。分段運行測試系統1000展示用於兩個或多於兩個API的自動比較評估的舊有/更新分析器650(圖6)的組態。
如圖10中所繪示,舊有/更新分析器650可包含用於比較效能及判定兩個API的相容性的多個模組。所述模組可包含後設資料比較器1012、代理比較器1014、客戶端比較器1016以及分配記錄1018。後設資料比較器1012可比較API中的每一者的通信中的後設資料。舉例而言,後設資料比較器1012可檢索及分析通信中的後設資料,諸如來自由不同API閘道所處置的每一個API調用或通信的位址、位置以及時間。代理比較器1014可比較每一API的運行時間及計算資源使用。舉例而言,代理比較器1014 可比較API運行時間、與後端系統的交互的數目以及發送回至API客戶端的回應的數目。此外,代理比較器1014可判定安全措施之間的差異。代理比較器1014可比較後端保護及驗證成功率。
客戶端比較器1016可比較利用API系統中的每一者的API客戶端。舉例而言,客戶端比較器1016可識別及評估使用API中的每一者的API客戶。舉例而言,客戶端比較器1016可儲存發送請求至每一API的裝置或帳戶。客戶端比較器1016亦可評估每一API客戶端的使用位準以及在API客戶端的交互作用期間軟體開發套件(software development kit;SDK)的使用。分配記錄1018可比較經由表示狀態傳送(REST)API端點請求至後端伺服器的每一API的分配及檢索請求。此外,分配記錄1018可實行與自舊有及更新API傳遞的上下文相比的分配規則。分配記錄1018亦可儲存指定用於對與多個API相關聯的請求作出回應的計算資源分配。
舊有/更新分析器650中的模組允許自動評估兩個API的效能。舉例而言,舊有/更新分析器650可使用後設資料比較器1012、代理比較器1014、客戶端比較器1016以及分配記錄1018來產生允許不同API的自動評估及試驗性遷移的比較及/或相容性度量。因此,在一些實施例中,舊有/更新分析器650可輸出比較度量1022,所述比較度量1022可反映舊有API與更新後API之間的比較效能。
如圖10中所繪示,舊有/更新分析器650可耦接至測試定義1020及冗餘過濾器1006。測試定義1020可例如由管理者網路670(圖6)定義,且可指定API調用收集的長度、將測試的API 系統的數目及/或指定客戶端帳戶分段規則。冗餘過濾器1006可耦接至舊有API 1002及更新後API 1004的系統。舉例而言,舊有API 1002及更新後API 1004可分別耦接至API閘道A 632及API閘道B 634。為了促進比較評估且將在比較分析期間使用的資源減至最少,冗餘過濾器1006可移除舊有及更新後API中具有相同特徵的調用。舊有API 1002與更新後API 1004之間的一些函數可維持不變。舉例而言,某些基礎操作可自API的一個版本延續至其他版本。對於某些情形(例如,當評估相容性時),追蹤兩個API系統之間的類似或冗餘調用可為不必要的及/或導致額外監視。因此,冗餘過濾器1006可消除冗餘調用以自分段運行分析中移除所述冗餘調用。然而,其他實施例可以更一般途徑為目標,且收集甚至冗餘調用以評估每一API系統的多個組件之間的交互作用。
圖11為與所揭露實施例一致的用於分段運行測試的例示性API映射表1100。API映射表1100可包含描述使用者群組或分類的API客戶端1102。舉例而言,在API映射表1100中,列可包含客戶端帳戶群組,諸如舊有群組1110(例如第一群組612)、更新群組1112(例如第二群組614)、相容性群組A(例如第一部分616A)以及相容性群組B(例如第二部分616B)。針對API客戶端1102中的每一者,API映射表1100可指定所指定的API。如圖11中所繪示,所指定的API 1104可選自兩個選項「API 1」及「API 2」中的一者。舉例而言,API映射表1100可指定舊有群組1110及相容性群組A 1114使用舊有API(例如經由圖6中的API閘道A 632),而更新群組1112及相容性群組B 1116使用更新後API(例如經由API閘道B 634)。
API映射表1100亦可指定與API相關聯及/或API客戶端1102群組中的每一者所准許的方法1106。在一些實施例中,不同API可具有相同方法及函數。在其他實施例中,如圖11中所表示,不同API可具有不同方法及/或包含額外方法及函數。
此外,API映射表1100可指定API客戶端1102群組中的每一者的測試情境1108。舉例而言,API映射表1100可判定舊有/更新分析器650將執行的分析的類型且提供用於測試定義1020(圖10)的參數。此外,API映射表1100可指定舊有/更新分析器650是否將比較API客戶端1102群組中的每一者的載入時間、回應時間及/或寫入時間。
圖12為與所揭露實施例一致的例示性API遷移測試過程1200的流程圖。在一些實施例中,系統300的元件可進行過程1200。舉例而言,如以下步驟描述中所揭露,API管理器320可進行過程1200。替代地或另外,第三方系統360可進行過程1200或過程1200的部分。另外,在其他實施例中,系統100或系統100的部分可進行過程1200。舉例而言,外部前端系統103、內部前端系統105及/或FMG 115可進行過程1200。
在步驟1202中,API管理器320可根據群組分段規則分離群組中的客戶端帳戶。舉例而言,API管理器320可獲取客戶端帳戶(諸如圖6中的客戶端帳戶610)的群且將其劃分在三個或多於三個群組亞群中,諸如第一群組612、第二群組614以及第三群組616,以開始API測試/評估。對於此類劃分,API管理器320可採用群組分段規則,所述群組分段規則可包含:在亞群中的每一者中具有相同數目個帳戶,在亞群中的每一者中具有相同數目個行 動裝置,及/或最大化群中的每一者中的帳戶的多樣性。舉例而言,API管理器320可產生其中存在至少一種類別的使用者帳戶的亞群,其中使用者帳戶可包含外部零售商、第三方供應商、使用者帳戶,及/或內部部門。替代地或另外,群組分段規則可指定客戶端帳戶群組的相對大小。舉例而言,在一些實施例中,API管理器320可產生群組以使得第一群組及第二群組包括比第三群組數目更大的客戶端帳戶。
在一些實施例中,如圖6中所繪示,在步驟1202中,API管理器320可分離第一群組、第二群組以及第三群組中的客戶端帳戶,每一群組具有不同成員。舉例而言,如先前結合圖6所論述,API管理器320可將客戶端群體劃分在三個群組中且產生可用於評估API相容性的子群組。
在步驟1204中,API管理器320可指定API與在步驟1202中產生的群組通信。經選擇用於通信的API可包含舊有API及更新API。舉例而言,API管理器320可組態API映射表,所述API映射表指定對來自不同群組的API調用作出回應的API閘道。另外或替代地,API管理器320可組態API路由器,諸如路由器API 710(圖7),以基於位址及/或客戶端ID用不同API系統解析API調用。在一些實施例中,在步驟1204中,API管理器可指定第一API(例如,舊有API)與第一群組通信,且指定第二API(例如,新的或修改後的API)與第二群組通信。在步驟1204中,並且指定第一API與第三群組的第一部分通信且指定第二API與第三群組的第二部分通信。
在步驟1206中,API管理器320可使用網路分析器(諸 如網路分析器642(圖6))收集來自群組中的每一者的通信。舉例而言,API管理器320可組態網路分析器以自在步驟1202中形成的群組中的每一者擷取與API調用相關的通信。在一些實施例中,API管理器320可收集路由器點處的通信以處置雙向通信(例如,API請求及回應)且將其組態成在預定間隔內收集提供明顯樣本的資料。收集可針對特定時間間隔而定義,以便收集產生統計顯著資料的足夠數目個樣本,或可在資料串流到達時即時地進行。舉例而言,API管理器320可將網路分析器組態成在預期的高流量的數小時期間收集資訊以收集大量且不同數目個API調用。在此類實施例中,在步驟1206中,API管理器320可在時間間隔期間收集來自第一群組、第二群組以及第三群組的通信,且產生與每一群組相關聯的API度量。替代地或另外,API管理器320可使用例如過程流程800即時地進行通信收集以處理且評估資料的串流。此外,API管理器320可過濾步驟1206中的通信以便於處理並產生API度量。舉例而言,在步驟1206中,API管理器320可實行冗餘過濾器1006以過濾重複的API調用或識別在舊有API 1002與更新API 1004之間保持不變的行為。
在步驟1208中,API管理器320可計算及/或產生群組中的每一者的API度量。基於形成與步驟1202中的群組中的每一者相關聯的API調用的結果,API管理器320可估計諸如基礎設施、應用程式及/或產品度量的API度量以評估API的效能。舉例而言,在一些實施例中,API管理器320可判定舊有API及更新後的API的API度量。如結合圖14進一步論述,API管理器320可基於特定API應用程式及/或在樣本中擷取的調用判定API度量。 在API管理器320包含系統900的實施例中,產生度量可包含採用即時分析模組914(圖9)來計算度量。替代地或另外,API管理器320可與舊有/更新分析器650通信以估計兩個或多於兩個API的效能且產生經比較度量1022。
在步驟1210中,API管理器320可使用步驟1208的API度量產生相容性報告及比較報告。舉例而言,API管理器320可產生不匹配度量、不一致調用或不良基礎設施效能的報告。如結合圖13進一步描述,API管理器320在產生相容性報告及比較報告時可將API度量及/或得分與臨限值進行比較。在一些實施例中,比較報告可比較舊有API操作與更新後的API操作之間的API度量。舉例而言,比較報告可包含舊有及更新後的度量中的與調用相關聯的度量。此外,相容性報告可指定操作舊有API及更新後的API兩者的群組中的API度量。在此類實施例中,相容性報告可識別API之間的不匹配以試圖識別同時操作兩個API是否會產生影響整個系統的相容性問題。在一些實施例中,在步驟1210中,API管理器320可自報告產生器660(圖6)請求相容性報告及比較報告。
相容性報告可允許API管理器320評估使使用者同時操作兩個API系統的效果。在一些情形下,客戶端可能不能夠鑒於API改變或更新而更新其系統。因此,有必要同時操作兩個API(舊有及更新後的)。相容性報告可識別並行API操作的問題。相容性報告可指定源相容性、二進制相容性、線相容性以及語義相容性。相容性報告可指示舊有API與更新API之間是否存在任何移除的服務或重命名服務、HTTP綁定的變化、欄位類型的變化或資 源格式的變化。相容性報告亦可指定已改變HTTP定義中的URL格式的特定調用。另外或替代地,相容性報告可指定API之間的源相容性、二進制相容性以及語義相容性錯誤。
此外,在某些實施例中,API管理器320亦可產生將相關聯於第一群組的API度量與相關聯於第二群組的API度量進行比較的比較報告,同時基於相關聯於第三群組(其運用兩個API進行操作)的API度量產生相容性報告。在此類實施例中,API管理器320可使用JSON或GSON比較器來評估每一API處置不同請求或方法的方式。在此類實施例中,API管理器320可將比較後設資料與鍵的JSON路徑提取器後處理器用於每一API系統中的類似通信。此外,比較報告可指定來自第一群組的API調用之間的不匹配以及與第一群組及第二群組相關聯的度量之間的差。
在一些實施例中,比較報告及相容性報告可包含得分。API管理器320可基於比較報告判定比較得分且基於相容性報告判定相容性得分。API管理器320可判定比較得分,所述比較得分以單個數字提供對兩個API之間的效能的評估。舉例而言,當與舊有API相關聯的API度量比與更新API相關聯的度量更差時,比較得分可為正且高的。相反,當與舊有API相關聯的API度量比與更新API相關聯的度量更佳時,比較得分可為負及/或低的。比較報告亦可包含臨限值比較。
類似地,API管理器320可基於相容性報告計算相容性得分。若存在無不相容性的許多函數或來自同時使用舊有及更新API的群組的通信中存在許多錯誤,則API管理器320可指定低及/或負的相容性得分。但若不存在不相容性且來自同時使用舊有 及更新API的群組的錯誤率低,則API管理器320可指定高及/或正得分。
在步驟1212中,API管理器320可基於相容性報告及比較報告產生並傳輸警示及/或建議。舉例而言,當比較報告指示舊有API具有比更新後的API更佳的效能時,API管理器320可產生不切換至更新後的API的建議及/或針對API提出修改。此外,在步驟1212中,API管理器320可在步驟1208的API度量中的任一者低於臨限值時及/或在API管理器320發現不同調用之間的不相容性(諸如語法不相容性)時產生警示。因此,在步驟1212中,API管理器320可基於比較報告及相容性報告傳輸警示或建議中的至少一者。如結合圖16進一步論述,警示及/或建議可包含用於顯示具有建議的圖形使用者介面的指令。在一些實施例中,關於API的相容性及可比較性的警示及訊息可經由管理員網路670傳輸。在此類實施例中,警示或建議可包含不匹配的API調用,且API管理器320可藉由在管理員網路670中自動地廣播訊息而產生警示或建議。
在一些實施例中,步驟1212中的警示及建議可包含特定資訊。舉例而言,警示可包含與第三群組相關聯的低於相容性臨限值的度量,且建議可包含更新後的API映射表及遷移API外掛程式中的至少一者。更新後的API映射表可包含具有基於建議或警示的修改後資訊的表,諸如API映射表1100(圖11)遷移API外掛程式可包含經由API遷移過程引導管理的逐步精靈(wizard)。舉例而言,遷移外掛程式可創建用於API的可下載的遷移封裝以及安裝者腳本。遷移外掛程式亦可允許使用者將安裝者腳本上載 至雲環境且運行轉換API調用及URL的遷移精靈以遵守伺服器及資料中心的介接條件。舉例而言,遷移外掛程式可安裝在方法轉換器625中且提供用於重命名或修改API調用的語法的工具。
在步驟1214中,API管理器320可藉由更新API映射表及/或採用API遷移外掛程式而自動地遷移所選擇群組的API。在一些實施例中,遷移可基於步驟1212的建議或警示。舉例而言,在API管理器320產生指示舊有系統性能比更新API好的警示時,API管理器320可自動地將指定至更新API的客戶端帳戶遷移至舊有API。此遷移可涉及重新組態API閘道或路由器以使用舊有API解析API調用。替代地或另外,基於建議,API管理器320可在步驟1210的相容性得分及比較得分兩者皆超過臨限值時自動地將指定至舊有API的群組中的客戶端帳戶遷移至更新API。舉例而言,當API管理器320運用圖6中所繪示的組態進行水桶測試時,API管理器320可回應於判定比較得分及相容性得分高於臨限值而將第二(更新)API指定至第一群組612及第三群組616。
API管理器320可藉由重新組態API映射表(諸如API映射表1100(圖11))或藉由執行API遷移外掛程式來進行自動遷移。舉例而言,基於步驟1212的建議或警示,API管理器320可程式設計API閘道A 632及API閘道B 634(圖6)以將內容路由至特定API。此外,在一些實施例中,在步驟1214中,API管理器320可藉由例如用更新API的函數替代來自舊有API的函數而自動地調整API映射指令。舉例而言,API管理器320可在API函數之間建立等價且判定與更新後的系統中的對應API函數的關 係。在一些實施例中,自動遷移可包含應用轉換函數或編譯表來將客戶端指令或來自舊有API格式的請求轉換至當前或更新API。這些轉換函數可包含使用例如方法轉換器625來更新調用的語法。
圖13為與所揭露實施例一致的例示性API差分評估過程1300的流程圖。在一些實施例中,系統300的元件可進行過程1300。舉例而言,如以下步驟描述中所揭露,API管理器320可進行過程1300。替代地或另外,第三方系統360及/或資料庫380可進行過程1300或過程1300的部分。另外,在其他實施例中,系統100或系統100的部分可進行過程1300。舉例而言,內部前端系統105及/或FMG 115可進行過程1300。在一些實施例中,過程1300可跟隨過程1200。然而,在其他實施例中,過程1300可獨立於過程1200。
在步驟1302中,API管理器320可計算客戶端帳戶的每一群組的API度量。舉例而言,API管理器320可採用網路分析器642(圖6)來收集與客戶端帳戶的每一群組相關聯的通信且基於通信日誌判定API度量。
在步驟1304中,API管理器320可判定比較得分及/或相容性得分。舉例而言,基於API度量,API管理器320可判定更新API具有更佳效能且舊有API產生高比較得分。此外,基於操作兩個API的客戶端的群組的API度量,API管理器可判定在同時操作API時是否不存在相容性問題且產生高相容性得分。
在步驟1306中,API管理器320可判定比較得分是否低於臨限值。若API管理器320判定比較得分低於臨限值(步驟1306:是),則API管理器320可繼續至步驟1308且識別導致較低效能 的失配度量或調用。然而,若API管理器320判定比較得分並不低於臨限值(步驟1306:否),則相容性得分可繼續至步驟1310。
在步驟1310中,API管理器320可判定相容性得分是否低於臨限值。若API管理器320判定相容性得分低於臨限值(步驟1310:是),則API管理器320可繼續至步驟1312且同時使用兩個API來識別不相容性類型及兩個API之間或群的成員之間的行為改變。在步驟1312及/或步驟1308之後,API管理器320可在步驟1314中產生警示或建議。然而,若在步驟1310中,API管理器320判定相容性得分並不低於臨限值(步驟1310:否),則API管理器320可繼續至步驟1316。
在步驟1316中,API管理器320可產生更新後的API映射表及/或產生遷移外掛程式。舉例而言,API管理器320可更新API映射表1100。遷移外掛程式可包含可用於在不同API之間傳送客戶端帳戶的不同外掛程式中的一或多者。在一些實施例中,除遷移精靈以外,遷移外掛程式可包含不宜用函數以便於識別或構建轉變函數。遷移外掛程式亦可包含下載函數、判定函數的存在的操作、分解函數以及正規化函數。
在步驟1318中,API管理器320可產生遷移策略及建議。舉例而言,基於相容性得分及比較得分,API管理器320可產生對起始遷移及起始API遷移的時間的建議。在一些實施例中,如結合圖15進一步論述,建議可包含對更新後的API的遷移策略。
在步驟1320中,API管理器320可傳輸建議。舉例而言,API管理器320可將步驟1318的建議傳輸至與網路管理器相關聯的裝置。在一些實施例中,建議可即時地傳輸,或在相容性得分及 比較得分得以估計時傳輸。
圖14為與所揭露實施例一致的用於判定API度量的例示性過程1400的流程圖。在一些實施例中,系統300的元件可進行過程1400。舉例而言,如以下步驟描述中所揭露,API管理器320可進行過程1400。替代地或另外,舊有/更新分析器650可進行過程1400或過程1400的部分。另外,在其他實施例中,系統100或系統100的部分可進行過程1400。舉例而言,內部前端系統105及/或FMG 115可進行過程1400。在一些實施例中,過程1400可為過程1200的部分。舉例而言,過程1400可作為步驟1208(圖12)的部分進行。然而,在其他實施例中,過程1400可獨立於過程1300。
在步驟1402中,API管理器320可接收計算API度量的指令。舉例而言,API管理器320可自網路管理員接收對兩個API的效能進行比較性分析且請求對API度量的計算的指令。然而,在其他實施例中,請求可為自動的且在收集期之後及/或基於網路分析器組態產生。
在步驟1404中,API管理器320可識別具有所收集API調用的記憶體群組。舉例而言,API管理器320可識別其中已儲存有與第一群組、第二群組以及第三群組相關聯的通信的記憶體空間。在步驟1406中,API管理器320可判定是否需要估計基礎設施API度量。若API管理器320判定需要估計基礎設施API度量(步驟1406:是),則API管理器320可繼續至步驟1408。
在步驟1408中,API管理器320可估計基礎設施API度量,其可包含工作時間度量、中央處理單元(CPU)使用度量以及 記憶體使用度量。工作時間度量可量測API服務的可用性。在一些實施例中,工作時間度量可基於停工時間的百分比。低工作時間度量可指示API並不如所預期的作出回應且可能需要一些冗餘量測。在一些實施例中,API管理器320可藉由評估API調用的特定序列判定工作時間度量。CPU使用度量可量測API伺服器CPU用量。此類度量可為相關的超額預訂及過載的應用程式,諸如過多自旋鎖。為量測CPU用量,API管理器可在伺服器中及/或藉由包含擷取諸如CPU及記憶體用量的度量的代理程式監視電腦資源中的活動性。記憶體使用度量,如CPU用量,亦量測資源利用率(如CPU及記憶體容量)。API管理器320可使用監視記憶體源的可用性的代理程式判定記憶體用量。在一些實施例中,記憶體使用度量亦可量測記憶體當中的任務的分佈以評估API是否為過載特定記憶體單元。
若API管理器320判定不需要估計基礎設施API度量(步驟1406:否),則API管理器320可跳過步驟1408且繼續至步驟1410。在步驟1410中,API管理器320判定是否需要估計應用程式度量。若API管理器320判定需要估計應用程式API度量(步驟1410:是),則API管理器320可繼續至步驟1412。
在步驟1412中,API管理器320可估計應用程式度量,所述應用程式度量可包含每分鐘的請求(例如,每分鐘的API調用)、回應的最大延遲,以及每分鐘的錯誤。為計算每分鐘的請求,API管理器320可用於評估資料庫及/或伺服器的效能。API管理器可識別API每分鐘是否具有大於預期數目的請求且尋找是否存在例如導致重複調用的相關聯錯誤。替代地或另外,每分鐘的請求 可指示應組合特定函數以減少API調用。此外,API管理器320可估計延遲以追蹤對客戶請求的回應的延遲。在一些實施例中,追蹤延遲的變化可指示新端點被添加、綱目改變,以及更多操作變得停滯。因此,API管理器320可經由API閘道追蹤伺服器與客戶端之間的每一通信以判定每一通信的平均延遲。API管理器320可估計其類似度量,諸如每秒的請求(Requests per Second;RPS)及每秒的查詢(Queries per Second;QPS)。
步驟1412亦可包含針對API及/或相關聯群組中的每一者估計每分鐘的錯誤。舉例而言,API管理器320可針對API調用的數目判定錯誤的數目。此類度量可估計錯誤及API的錯誤傾向。在一些實施例中,API管理器320可使用HTTP狀態碼來判定每分鐘的錯誤的數目。
若API管理器320判定不需要估計應用程式API度量(步驟1410:否),則API管理器320可跳過步驟1412且繼續至步驟1414。在步驟1414中,API管理器320判定是否需要估計產品度量。若API管理器320判定需要估計產品API度量(步驟1414:是),則API管理器320可繼續至步驟1416。
在步驟1416中,API管理器320可判定度量,諸如使用增長、唯一及/或最大消費者、API保留度、首次問世時間(Time To First Hello World;TTFHW)、每次交易的調用以及SDK採用,以及其他。此外,API管理器可判定產品API度量,包括唯一API消費者的數目及每一商業交易的調用。
若API管理器320判定不需要估計產品API度量(步驟1414:否),則API管理器320可跳過步驟1416且繼續至步驟 1420。在步驟1420中,API管理器320可返回與所評估群組中的一或多者相關聯的API操作的API度量。
圖15為與所揭露實施例一致的用於執行API遷移建議的例示性過程1500的流程圖。在一些實施例中,系統300的元件可進行過程1500。舉例而言,如以下步驟描述中所揭露,API管理器320可進行過程1500。替代地或另外,第三方系統360可進行過程1500或過程1500的部分。另外,在其他實施例中,系統100或系統100的部分可進行過程1500。舉例而言,內部前端系統105及/或FMG 115可進行過程1500。在一些實施例中,過程1500可跟隨過程1200。然而,在其他實施例中,過程1500可獨立於過程1200。
在步驟1502中,API管理器320可接收提供API遷移建議的指令。舉例而言,當比較得分高於臨限值時,API管理器320可接收產生API遷移建議的指令。
在步驟1504中,API管理器320可執行API網路的線框審查。舉例而言,API管理器320可產生表示API及其連接的骨架框架的視覺引導。在一些實施例中,線框可包含API函數的範圍、資訊及函數的API交互作用中的優先級、用於顯示某些種類的資訊的規則,以及不同情形在顯示器上的效果。
在步驟1506中,API管理器320可組態重引導測試且產生風險評估。舉例而言,API管理器320可組態允許測試彼此不同的API的重引導測試引擎。重引導測試可包含不同API調用,為每一功能的功能。此外,API管理器320可產生風險評估,包含風險的範疇、性質、定量、容限以及處理。舉例而言,在步驟1506 中,API管理器320可判定API故障的風險是操作性的還是財政的,其亦可估計遷移期間的風險機率及用以降低遷移期間的風險的建議。
在步驟1508中,API管理器320可判定評估的評量基準(benchmarking)。舉例而言,API管理器320可判定API度量、相容性得分以及比較得分的臨限值數。在步驟1510中,API管理器320可遷移群組且針對遷移後的群組執行實況API測試。舉例而言,API管理器320可更新API映射表並執行外掛程式且經由網路分析器起始對具有修改後的API的群組的效能監視。
在步驟1512中,API管理器320可基於在步驟1510中記錄的度量及出現率執行錯誤校正及效能校正。基於步驟1512的錯誤及效能校正,API管理器320可在步驟1514中產生API遷移效能報告。在一些實施例中,API管理器320可產生具有關於所收集度量及/或效能結果的資訊的自動報告。
圖16顯示與所揭露實施例一致的在API評估期間產生的警示及/或通知的例示性圖形使用者介面(GUI)。圖16繪示桌上型電腦GUI 1600及行動GUI 1650的例示性改變。如結合圖12進一步描述,作為過程1200部分,API管理器320可產生桌上型電腦GUI 1600及/或行動GUI 1650且經由管理員網路670傳達所述GUI。
桌上型電腦GUI 1600可包含:指定通知的類型的標題1602;報告區段1604;以及錯誤詳情面板1606,其可包含關於不相容的API調用及/或表現不佳的度量的更具體資訊。另外,桌上型電腦GUI 1600可包含結果鏈路1608以查看相容性報告及比較 報告的額外結果。
行動GUI 1650可包含具有關於舊有API與更新後的API之間的水桶測試或分段運行測試的相容性錯誤或比較結果的具體資訊的訊息1652。
本揭露內容的另一態樣是針對一種儲存指令的非暫時性電腦可讀媒體,所述指令在執行時使得一或多個處理器進行方法,如上文所論述。電腦可讀媒體可包含揮發性或非揮發性、磁性、半導體、磁帶、光學、可移除、非可移除或其他類型的電腦可讀媒體或電腦可讀儲存裝置。舉例而言,電腦可讀媒體可為在其上具有儲存的電腦指令的儲存單元或記憶體模組,如所揭露。在一些實施例中,電腦可讀媒體可為在其上具有儲存的電腦指令的磁碟或快閃驅動器。
對所屬技術領域中具有通常知識者將顯而易見的是,可對所揭露系統及相關方法作出各種修改及變化。其他實施例對所屬技術領域中具有通常知識者將自本說明書的考量及所揭露系統及相關方法的實踐顯而易見。意欲僅將本說明書及實例視為例示性的,其中真實範圍由以下申請專利範圍及其等效物指示。
儘管已參考本揭露內容的特定實施例繪示及描述本揭露內容,但應理解,可在不修改的情況下在其他環境中實踐本揭露內容。已出於示出的目的呈現前述描述。前述描述並不詳盡且不限於所揭露的精確形式或實施例。修改及調適對所屬技術領域中具有通常知識者將自本說明書的考量及所揭露實施例的實踐顯而易見。另外,儘管將所揭露實施例的態樣描述為儲存於記憶體中,但所屬技術領域中具有通常知識者應瞭解,此等態樣亦可儲存於其 他類型的電腦可讀媒體上,諸如次級儲存裝置,例如硬碟或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來設計。
此外,儘管本文中已描述示出性實施例,但所屬技術領域中具有通常知識者將基於本揭露內容瞭解具有等效元件、修改、省略、(例如,各種實施例中的態樣的)組合、調適及/或更改的任何及所有實施例的範圍。申請專利範圍中的限制應基於申請專利範圍中所採用的語言來廣泛地解釋,且不限於本說明書中所描述或在本申請案的審查期間的實例。實例應視為非排他性的。另外,所揭露方法的步驟可以包含藉由對步驟重新排序及/或***或刪除步驟的任何方式修改。因此,希望僅將本說明書及實例視為示出性的,其中藉由以下申請專利範圍及其等效物的完整範圍指示真實範圍及精神。
因此,已僅出於示出的目的而呈現前述描述。前述描述並不詳盡且不限於所揭露的精確形式或實施例。修改及調適對所屬技術領域中具有通常知識者將自本說明書的考量及所揭露實施例 的實踐顯而易見。
申請專利範圍應基於申請專利範圍中所採用的語言來廣泛地解釋,且不限於本說明書中所描述的實例,所述實例應視為非排他性的。另外,所揭露方法的步驟可以包含藉由對步驟重新排序及/或***或刪除步驟的任何方式修改。
1200:API遷移測試過程
1202、1204、1206、1208、1210、1212、1214:步驟

Claims (20)

  1. 一種用於申請規劃介面遷移的電腦化系統,所述系統包括:至少一個記憶體,儲存指令;以及至少一個處理器,經組態以執行所述指令以執行包括以下的操作:將客戶端帳戶分離成第一群組、第二群組以及第三群組,每一群組具有不同成員;指定第一申請規劃介面與所述第一群組通信且指定第二申請規劃介面與所述第二群組通信;指定所述第一申請規劃介面與所述第三群組的第一部分通信且指定所述第二申請規劃介面與所述第三群組的第二部分通信;在時間間隔期間收集來自所述第一群組、所述第二群組以及所述第三群組的通信,且產生與每一群組相關聯的度量;產生比較與所述第一群組相關聯的所述度量及與所述第二群組相關聯的所述度量的比較報告;基於與所述第三群組相關聯的所述度量產生相容性報告;以及基於所述比較報告及所述相容性報告傳輸警示或建議中的至少一者。
  2. 如請求項1所述的系統,其中所述第一申請規劃介面為舊有申請規劃介面且所述第二申請規劃介面為更新後申請規劃介面;且所述操作更包括基於所述建議將所述客戶端帳戶自動遷移至 所述更新後申請規劃介面。
  3. 如請求項2所述的系統,其中所述操作更包括:基於所述比較報告判定比較得分且基於所述相容性報告判定相容性得分;以及回應於判定所述比較得分及所述相容性得分大於臨限值而將所述第二申請規劃介面指定給所述第一群組及所述第三群組。
  4. 如請求項1所述的系統,其中所述第一群組及所述第二群組與所述第三群組相比包括更大數目的客戶端帳戶。
  5. 如請求項1所述的系統,其中:所述比較報告指定來自所述第一群組的申請規劃介面調用之間的失配以及與所述第一群組及所述第二群組相關聯的所述度量之間的差;所述相容性報告指定所述第一申請規劃介面與所述第二申請規劃介面之間的源相容性、二進制相容性以及語義相容性錯誤;所述警示或所述建議包括所述失配;且產生所述警示或所述建議包括在管理者網路中自動廣播訊息。
  6. 如請求項1所述的系統,其中收集所述通信包括組態網路分析器以進行以下操作:擷取自與所述第一群組、所述第二群組以及所述第三群組中的所述客戶端帳戶相關聯的客戶端裝置傳入的封包;以及將自每一群組擷取的所述封包儲存在獨立記憶體空間中。
  7. 如請求項6所述的系統,其中產生所述度量包括:針對所述第一群組、所述第二群組以及所述第三群組中的每 一者產生:基礎設施申請規劃介面度量,包括工作時間、中央處理單元使用以及記憶體使用;應用程式申請規劃介面度量,包括每分鐘請求、平均最大延遲以及每分鐘錯誤;以及產品申請規劃介面度量,包括唯一申請規劃介面消費者的數目及每商業交易的調用。
  8. 如請求項7所述的系統,其中:所述警示包括與所述第三群組相關聯的低於相容性臨限值的所述度量;且所述建議包括更新後申請規劃介面映射表及遷移申請規劃介面外掛程式中的至少一者。
  9. 如請求項1所述的系統,其中所述第一群組、所述第二群組以及所述第三群組包括相同數目的所述客戶端帳戶。
  10. 如請求項1所述的系統,其中:所述第一申請規劃介面及所述第二申請規劃介面包括連接線上商店與電子商務資料中心的整合擴展;且收集所述通信包括記錄自日誌管線檢索的通信的屬性同時排除客戶端側通信。
  11. 一種用於申請規劃介面遷移的電腦實行方法,所述方法包括將客戶端帳戶分離在第一群組、第二群組以及第三群組中,每一群組具有不同成員;指定第一申請規劃介面與所述第一群組通信且指定第二申請 規劃介面與所述第二群組通信;指定所述第一申請規劃介面與所述第三群組的第一部分通信且指定所述第二申請規劃介面與所述第三群組的第二部分通信;在時間間隔期間收集來自所述第一群組、所述第二群組以及所述第三群組的通信,且判定與每一群組相關聯的度量;產生比較與所述第一群組相關聯的所述度量及與所述第二群組相關聯的所述度量的比較報告;基於與所述第三群組相關聯的所述度量產生相容性報告;以及基於所述比較報告及所述相容性報告傳輸警示或建議中的至少一者。
  12. 如請求項11所述的方法,其中所述第一申請規劃介面為舊有申請規劃介面且所述第二申請規劃介面為更新後申請規劃介面。
  13. 如請求項12所述的方法,更包括:基於所述比較報告判定比較得分且基於所述相容性報告判定相容性得分;以及回應於判定所述比較得分及所述相容性得分大於臨限值而將所述第二申請規劃介面指定給所述第一群組及所述第三群組。
  14. 如請求項11所述的方法,其中所述第一群組及所述第二群組與所述第三群組相比包括更大數目的客戶端帳戶。
  15. 如請求項11所述的方法,其中:所述比較報告指定來自所述第一群組及所述第二群組的申請規劃介面調用之間的失配; 所述相容性報告指定所述第一申請規劃介面與所述第二申請規劃介面之間的源相容性、二進制相容性以及語義相容性錯誤;所述警示或所述建議包括所述失配;且產生所述警示或所述建議包括在管理者網路中自動廣播訊息。
  16. 如請求項11所述的方法,其中收集所述通信包括組態網路分析器以進行以下操作:擷取自與所述第一群組、所述第二群組以及所述第三群組中的所述客戶端帳戶相關聯的客戶端裝置傳入的封包;以及將自每一群組擷取的所述封包儲存在獨立記憶體空間中。
  17. 如請求項16所述的方法,其中產生所述度量包括針對所述第一群組、所述第二群組以及所述第三群組中的每一者產生:基礎設施申請規劃介面度量,包括工作時間、中央處理單元使用以及記憶體使用;應用程式申請規劃介面度量,包括每分鐘請求、平均最大延遲以及每分鐘錯誤;以及產品申請規劃介面度量,包括唯一申請規劃介面消費者的數目及每商業交易的調用;所述警示包括與所述第三群組相關聯的低於可行性臨限值的所述度量;且所述建議包括更新後申請規劃介面映射表及遷移申請規劃介面外掛程式中的至少一者。
  18. 如請求項11所述的方法,其中所述第一群組、所述 第二群組以及所述第三群組包括相同數目的所述客戶端帳戶。
  19. 如請求項11所述的方法,其中:所述第一申請規劃介面及所述第二申請規劃介面包括連接線上商店與電子商務資料中心的整合擴展;且收集所述通信包括記錄自日誌管線檢索的通信的屬性同時排除客戶端側通信。
  20. 一種用於申請規劃介面遷移的電腦化系統,所述系統包括:一或多個處理器;以及一或多個記憶體裝置,儲存指令,所述指令在由所述一或多個處理器執行時組態所述一或多個處理器以進行以下操作:將客戶端帳戶分離在第一群組、第二群組以及第三群組中,每一群組具有不同成員;指定第一申請規劃介面與所述第一群組通信且指定第二申請規劃介面與所述第二群組通信,所述第一申請規劃介面為舊有申請規劃介面且所述第二申請規劃介面為更新後申請規劃介面,所述第一申請規劃介面及所述第二申請規劃介面包括連接線上商店與電子商務資料中心的整合擴展;指定所述第一申請規劃介面與所述第三群組的第一部分通信且指定所述第二申請規劃介面與所述第三群組的第二部分通信;在時間間隔期間收集來自所述第一群組、所述第二群組以及所述第三群組的通信,且產生與每一群組相關聯的申請規劃介面度量;產生比較與所述第一群組相關聯的所述申請規劃介面度量及 與所述第二群組相關聯的所述申請規劃介面度量的比較報告,所述比較報告包括與所述第一群組相關聯的所述申請規劃介面度量同與所述第二群組相關聯的所述申請規劃介面度量之間的差值;基於與所述第三群組相關聯的所述申請規劃介面度量產生相容性報告;判定所述差值是否低於可行性臨限值;判定與所述第三群組相關聯的所述申請規劃介面度量是否低於相容性臨限值;以及回應於判定所述差值低於所述可行性臨限值且與所述第三群組相關聯的所述申請規劃介面度量大於所述相容性臨限值,傳輸包括更新後申請規劃介面映射表及遷移申請規劃介面外掛程式的建議。
TW110100347A 2020-08-26 2021-01-06 用於申請規劃介面遷移的電腦化系統以及用於申請規劃介面遷移的電腦實行方法 TWI742980B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/003,380 US10956244B1 (en) 2020-08-26 2020-08-26 Systems and methods for automated application programming interface evaluation and migration
US17/003,380 2020-08-26

Publications (2)

Publication Number Publication Date
TWI742980B true TWI742980B (zh) 2021-10-11
TW202209114A TW202209114A (zh) 2022-03-01

Family

ID=74004091

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110100347A TWI742980B (zh) 2020-08-26 2021-01-06 用於申請規劃介面遷移的電腦化系統以及用於申請規劃介面遷移的電腦實行方法

Country Status (7)

Country Link
US (2) US10956244B1 (zh)
EP (1) EP3961394A1 (zh)
JP (1) JP2023540150A (zh)
KR (2) KR102402680B1 (zh)
CN (1) CN114116442A (zh)
TW (1) TWI742980B (zh)
WO (1) WO2022043763A1 (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11526933B1 (en) 2015-12-28 2022-12-13 Wells Fargo Bank, N.A. Systems and methods for trackable transaction requests
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US11508097B1 (en) * 2020-12-11 2022-11-22 Wells Fargo Bank, N.A. Visualizations of multi-nodal transfers and gesture-based interactivity in virtual or augmented reality
US11184454B1 (en) 2020-12-21 2021-11-23 Coupang Corp. Systems and methods for managing perpetual data requests to conserve resources
US11698825B2 (en) * 2021-03-08 2023-07-11 Red Hat, Inc. Application programming interface compatibility
US20230004651A1 (en) * 2021-06-30 2023-01-05 Cisco Technology, Inc. Penetration testing for api service security
US20230109797A1 (en) * 2021-09-20 2023-04-13 International Business Machines Corporation Api health analysis
US11829745B2 (en) * 2021-09-20 2023-11-28 Salesforce, Inc. Augmented circuit breaker policy
US11297152B1 (en) 2021-09-30 2022-04-05 metacluster lt, UAB Regulation methods for proxy services
CN113992755B (zh) * 2021-10-27 2024-06-28 中国电信股份有限公司 基于微服务网关的请求处理方法、***、设备及存储介质
US11968280B1 (en) * 2021-11-24 2024-04-23 Amazon Technologies, Inc. Controlling ingestion of streaming data to serverless function executions
US12015603B2 (en) 2021-12-10 2024-06-18 Amazon Technologies, Inc. Multi-tenant mode for serverless code execution
US20230388226A1 (en) * 2022-05-26 2023-11-30 Accenture Global Solutions Limited On-site artificial intelligence application programming interfaces for routing and adapting traffic
US12008366B2 (en) 2022-06-03 2024-06-11 International Business Machines Corporation Correlating usage to issues in application programming interfaces
US11979287B1 (en) * 2022-11-25 2024-05-07 Dell Products L.P. Data center monitoring and management operation including a microservice autoscaling operation
KR102649770B1 (ko) * 2023-01-10 2024-03-21 쿠팡 주식회사 정보를 제공하는 방법 및 이를 지원하는 전자 장치
CN116361194B (zh) * 2023-05-19 2023-08-29 深圳凡泰极客科技有限责任公司 异常代码识别方法、***、电子设备及存储介质
CN117827275A (zh) * 2023-12-20 2024-04-05 北京比格大数据有限公司 迁移评估方法及装置、设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI326426B (en) * 2003-09-25 2010-06-21 Ibm System, method and computer program product for loading software on a plurality of processors
US20110314443A1 (en) * 2010-06-18 2011-12-22 International Business Machines Corporation Seamless migration of tuxedo® applications to a cics® hosting environment
US20150022666A1 (en) * 2013-07-22 2015-01-22 Intellivision Technologies Corp. System and method for scalable video cloud services
TWI519957B (zh) * 2007-10-01 2016-02-01 奎畢斯控股公司 用以提供原生及非原生顯示實用程式之應用程式編程介面
US9292361B1 (en) * 2011-08-19 2016-03-22 Google Inc. Application program interface script caching and batching
US20190288915A1 (en) * 2018-03-19 2019-09-19 Secure-24, Llc Discovery and migration planning techniques optimized by environmental analysis and criticality
US20190318079A1 (en) * 2018-04-12 2019-10-17 Webroot Inc. RESTRICTING ACCESS TO APPLICATION PROGRAMMING INTERFACES (APIs)
US20200065160A1 (en) * 2018-08-23 2020-02-27 Fujitsu Limited Automated api evaluation based on api parameter resolution

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6591417B1 (en) * 1999-12-30 2003-07-08 International Business Machines Corporation Method of and system for testing compatibility with an external API upgrade
US7571389B2 (en) * 2001-05-31 2009-08-04 International Business Machines Corporation System, computer-readable storage device, and method for combining the functionality of multiple text controls in a graphical user interface
US8141106B2 (en) * 2004-12-01 2012-03-20 Computer Associates Think, Inc. Managing elements residing on legacy systems
US7549144B2 (en) * 2005-02-22 2009-06-16 Microsoft Corporation Custom API modeling for source code static analysis simulator
US7895579B2 (en) * 2006-06-16 2011-02-22 Microsoft Corporation Automated method and system for collecting and reporting API performance profiles
US8701103B1 (en) * 2007-10-31 2014-04-15 Wal-Mart Stores, Inc. Method and system for minimizing or eliminating downtime when updating a website
WO2009150788A1 (ja) * 2008-06-10 2009-12-17 パナソニック株式会社 組み込み機器におけるapi評価システム
US8539475B2 (en) * 2009-09-29 2013-09-17 Oracle America, Inc. API backward compatibility checking
KR101587030B1 (ko) * 2010-12-27 2016-02-03 에스케이텔레콤 주식회사 M2m 어플리케이션의 api 함수 호출 정책 관리 시스템 및 그 구현 방법
US9300759B1 (en) * 2013-01-03 2016-03-29 Amazon Technologies, Inc. API calls with dependencies
US10324826B2 (en) * 2013-02-12 2019-06-18 Focus IP Inc. Developer channel compliance
US9442700B2 (en) 2013-09-30 2016-09-13 MuleSoft, Inc. API notebook tool
US9146787B2 (en) * 2013-11-07 2015-09-29 Accenture Global Services Limited Analytics for application programming interfaces
US9619217B2 (en) * 2013-11-20 2017-04-11 Wolfram Research, Inc. Methods and systems for cloud computing
US9560037B2 (en) * 2014-06-19 2017-01-31 Microsoft Technology Licensing, Llc Integrated APIs and UIs for consuming services across different distributed networks
US20160335168A1 (en) * 2015-05-15 2016-11-17 Microsoft Technology Licensing, Llc Real-time analysis of application programming interfaces
US9898273B1 (en) * 2015-12-22 2018-02-20 VCE IP Holding Company LLC Dynamically updating APIS based on updated configuration file of a computing system
US10394552B2 (en) * 2016-05-17 2019-08-27 Dropbox, Inc. Interface description language for application programming interfaces
WO2018000135A1 (zh) 2016-06-27 2018-01-04 华为技术有限公司 网络交换设备及时隙交换的方法
US10310850B2 (en) * 2016-10-19 2019-06-04 Facebook, Inc. Methods and systems for determining relevant changes in an API
US10725836B2 (en) * 2017-04-25 2020-07-28 Intento Inc. Intent-based organisation of APIs
US10379838B1 (en) * 2017-06-28 2019-08-13 Amazon Technologies, Inc. Update and rollback of code and API versions
KR102255806B1 (ko) * 2017-07-03 2021-05-26 (주)더리스 Api 연동방식의 해외 온라인 쇼핑몰 통합 관리 방법 및 시스템
US10678513B2 (en) * 2017-09-12 2020-06-09 Devfactory Fz-Llc Library upgrade method, apparatus, and system
US10796350B2 (en) * 2017-09-25 2020-10-06 Oracle International Corporation Systems and methods for using facade API for phased upgrade of core API
US10572370B2 (en) * 2017-09-26 2020-02-25 Fujitsu Limited Test-assisted application programming interface (API) learning
US10644962B2 (en) * 2017-11-15 2020-05-05 APImetrics Inc. Continuous monitoring for performance evaluation of service interfaces
JP6542865B2 (ja) * 2017-12-04 2019-07-10 株式会社日立製作所 インタフェース集約装置及びインタフェース管理方法
US10956242B1 (en) * 2017-12-06 2021-03-23 Amazon Technologies, Inc. Automating the migration of web service implementations to a service provider system
US20190179624A1 (en) * 2017-12-11 2019-06-13 International Business Machines Corporation Software upgrade impact analysis by cognitive services
US10810608B2 (en) * 2018-02-19 2020-10-20 International Business Machines Corporatior API pricing based on relative value of API for its consumers
US10503569B2 (en) * 2018-04-17 2019-12-10 International Business Machines Corporation Feature-based application programming interface cognitive comparative benchmarking
EP3582103A1 (en) * 2018-06-14 2019-12-18 QlikTech International AB Methods and systems for application program interface management
US11048564B2 (en) * 2018-09-21 2021-06-29 International Business Machines Corporation API evolution and adaptation based on cognitive selection and unsupervised feature learning
US10824483B2 (en) * 2018-11-20 2020-11-03 R Software Inc. Application programming interface scoring, ranking and selection
US20210382764A1 (en) * 2018-12-05 2021-12-09 Hewlett-Packard Development Company, L.P. Comparisons of application programming interface interactions to determine compatibilities
US11481498B2 (en) * 2019-01-28 2022-10-25 Visa International Service Association Continuous vulnerability management for modern applications
US20200301760A1 (en) * 2019-03-19 2020-09-24 Honeywell International Inc. Methods and systems for generating and recommending api mashups
US10990455B2 (en) * 2019-09-18 2021-04-27 Moesif, Inc. Management of application programming interface (API) retention
US11409642B2 (en) * 2020-01-13 2022-08-09 Fujitsu Limited Automatic parameter value resolution for API evaluation
US11449909B2 (en) * 2020-01-24 2022-09-20 Salesforce.Com, Inc. Customizable formula based dynamic API evaluation using a database system
US11281505B2 (en) * 2020-02-12 2022-03-22 Moesif, Inc. Management of application programming interface (API) conversion for end users
US11354108B2 (en) * 2020-03-02 2022-06-07 International Business Machines Corporation Assisting dependency migration
CN113448814B (zh) * 2020-03-26 2024-04-26 伊姆西Ip控股有限责任公司 用于评估应用程序接口的方法、设备和程序产品

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI326426B (en) * 2003-09-25 2010-06-21 Ibm System, method and computer program product for loading software on a plurality of processors
TWI519957B (zh) * 2007-10-01 2016-02-01 奎畢斯控股公司 用以提供原生及非原生顯示實用程式之應用程式編程介面
US20110314443A1 (en) * 2010-06-18 2011-12-22 International Business Machines Corporation Seamless migration of tuxedo® applications to a cics® hosting environment
US9292361B1 (en) * 2011-08-19 2016-03-22 Google Inc. Application program interface script caching and batching
US20150022666A1 (en) * 2013-07-22 2015-01-22 Intellivision Technologies Corp. System and method for scalable video cloud services
US20190288915A1 (en) * 2018-03-19 2019-09-19 Secure-24, Llc Discovery and migration planning techniques optimized by environmental analysis and criticality
US20190318079A1 (en) * 2018-04-12 2019-10-17 Webroot Inc. RESTRICTING ACCESS TO APPLICATION PROGRAMMING INTERFACES (APIs)
US20200065160A1 (en) * 2018-08-23 2020-02-27 Fujitsu Limited Automated api evaluation based on api parameter resolution

Also Published As

Publication number Publication date
WO2022043763A1 (en) 2022-03-03
EP3961394A1 (en) 2022-03-02
KR20220029795A (ko) 2022-03-08
US11307913B2 (en) 2022-04-19
KR102402680B1 (ko) 2022-05-30
TW202209114A (zh) 2022-03-01
KR20220074839A (ko) 2022-06-03
JP2023540150A (ja) 2023-09-22
US10956244B1 (en) 2021-03-23
CN114116442A (zh) 2022-03-01
US20220066848A1 (en) 2022-03-03

Similar Documents

Publication Publication Date Title
TWI742980B (zh) 用於申請規劃介面遷移的電腦化系統以及用於申請規劃介面遷移的電腦實行方法
KR102684255B1 (ko) 반복적이고 적응적인 전자 알림을 위한 시스템 및 방법
TWI760020B (zh) 產生動態網站的電腦化系統及電腦實行方法以及非暫時性電腦可讀媒體
TWI777532B (zh) 用於集中式狀態監測的系統、電腦實行方法及設備
KR102575655B1 (ko) 데이터의 동적 집계와 데이터 손실의 최소화를 위한 시스템 및 방법
TW202113709A (zh) 用於出站預測之電腦實施系統以及電腦實施方法
TW202113746A (zh) 使用入站裝載模式於出站預測之電腦實施系統以及電腦實施方法
KR20240102930A (ko) 다수의 아이템이 있는 웹 사이트 로딩을 위한 시스템 및 방법
TW202215318A (zh) 用於動態庫存平衡的系統、電腦實行方法及設備
TW202113708A (zh) 用於出站預測的電腦實施的系統以及方法
TW202137023A (zh) 用於更新網頁上的產品資訊的電腦實施系統以及方法
TWI843063B (zh) 電腦實行方法及電腦實行系統