TYPESDK 服務端設計思路與架構之一:應用場景分析 作為一個渠道SDK統一接入框架,TYPESDK從一開始,所面對的需求場景就是多款游戲,通過一個統一的SDK服務端,能夠同時接入幾十個甚至幾百個各種渠道的SDK。而且這些渠道介面的具體接入欄位和接入邏輯,每個月以至每周,都可能發生或大或小的變動。 ...
TYPESDK 服務端設計思路與架構之一:應用場景分析
作為一個渠道SDK統一接入框架,TYPESDK從一開始,所面對的需求場景就是多款游戲,通過一個統一的SDK服務端,能夠同時接入幾十個甚至幾百個各種渠道的SDK。而且這些渠道介面的具體接入欄位和接入邏輯,每個月以至每周,都可能發生或大或小的變動。在這樣一個複雜的應用場景下,我們應該如何設計一個足夠強大而又足夠靈活的SDK服務端呢?
首先我們需要釐清,在整個應用場景中,TYPESDK所處的位置,以及它所需要實現的核心功能。
圖1
如圖1所示,TYPESDK服務端最關心的介面,是游戲服務端與TYPESDK服務端之間的通信介面,以及渠道服務端與TYPESDK服務端之間的通信介面。以登錄流程為例,就是游戲服務端向TYPESDK服務端發起的驗證用戶請求和渠道服務端向TYPESDK服務端返回的驗證結果;以支付流程為例,就是渠道服務端向TYPESDK服務端發起的支付完成回調和TYPESDK服務端向游戲服務端發起的發貨請求。
下麵我們分別就這兩個主要流程進行分析:
圖2
流程說明
- 用戶點擊登錄按鈕時,游戲客戶端調用TypeSDK登錄介面,詳細調用方式及參數說明請參考客戶端介面文檔
- TypeSDK客戶端調用渠道客戶端SDK的API登錄
- 渠道客戶端SDK自我機制請求渠道服務端
- 渠道客戶端SDK獲取服務端返回的驗證用參數
- TypeSDK客戶端獲取渠道客戶端SDK獲得的參數並包裝
- 游戲客戶端獲取包裝後的參數
- 游戲客戶端將包裝後參數用自身機制傳輸給游戲服務端
- 游戲服務端訪問TypeSDK服務端的用戶會話驗證介面。將流程6中獲得的參數傳送給TypeSDK服務端。
- TypeSDK服務端訪問渠道服務端的用戶驗證介面,進行登錄驗證
- 渠道返回驗證結果
- TypeSDK服務端對渠道返回的驗證結果進行包裝,返回給游戲服務端游戲服務端根據渠道驗證結果,通知游戲客戶端本次登錄是否成功。
從以上的流程中可以分析出,在登錄流程中,TYPESDK服務端所需要完成的工作就是完成一個包裝的動作。將游戲服務端提供的標準化的參數,根據渠道的要求進行分別包裝,讓數據符合渠道服務端的需求,隨後提交給渠道服務端。然後再把各種渠道返回的千奇百怪的驗證結果做出區分解析,再通知游戲服務端,以供游戲邏輯使用。
圖3
流程說明
- 充值訂單到帳後,渠道服務端非同步通知TYPESDK服務端
- TYPE服務端通知游戲服務端發貨
- 游戲服務端收到發貨請求後先保存該請求,立刻返回TYPESDK服務端,表示已收到發貨請求。
- TYPESDK返回渠道服務端
- 游戲服務端非同步處理髮貨邏輯。並通知游戲客戶端
再看充值到帳流程,在這個簡化版的充值到帳流程中,我們可以看到,TYPESDK服務端所完成的工作也是一個簡單的包裝動作,將各種不同的渠道回調請求包裝成標準的數據格式,通知給游戲服務端,供游戲處理髮貨。
根據以上分析,我們就理清了TYPESDK服務端在整個流程中的位置和主要工作。在接下來的文章中,我們再具體的分析,怎樣的設計,才能讓它更好的適應靈活多變的應用場景,應付主要風險。以及如何將各大渠道的服務端SDK,接入我們這個統一的框架中。