防偽標(biāo)識(shí)管理系統(tǒng)子系統(tǒng)的架構(gòu)設(shè)計(jì)。防偽標(biāo)識(shí)管理系統(tǒng)子系統(tǒng)是一物一碼系統(tǒng)的核心子系統(tǒng),它提供了標(biāo)識(shí)碼大數(shù)據(jù)量支持,防偽標(biāo)識(shí)管理系統(tǒng)具有高效的大數(shù)據(jù)量標(biāo)識(shí)碼創(chuàng)建能力、標(biāo)識(shí)碼查詢、掃碼、激活及標(biāo)識(shí)碼關(guān)聯(lián)關(guān)系持久化等特性。標(biāo)識(shí)碼管理子系統(tǒng)作為SaaS平臺(tái)微服務(wù)架構(gòu)體系中的一員,它以微服務(wù)的形態(tài)存在于微服務(wù)架構(gòu)體系中,標(biāo)識(shí)碼管理子系統(tǒng)由數(shù)個(gè)微服務(wù)組成,防偽標(biāo)識(shí)管理系統(tǒng)主要的微服務(wù)包括:標(biāo)識(shí)碼管理API、標(biāo)識(shí)碼查詢API、標(biāo)識(shí)碼掃碼API、標(biāo)識(shí)碼RPC、標(biāo)識(shí)碼Generator、標(biāo)識(shí)碼Activator、標(biāo)識(shí)碼Scanner及標(biāo)識(shí)碼API網(wǎng)關(guān)等。
防偽標(biāo)識(shí)管理系統(tǒng)子系統(tǒng)核心功能包括:編碼規(guī)則管理、標(biāo)識(shí)碼生成、標(biāo)識(shí)碼大數(shù)據(jù)量分庫(kù)分表支持、標(biāo)識(shí)碼激活、標(biāo)識(shí)碼掃碼。
防偽標(biāo)識(shí)管理系統(tǒng)設(shè)計(jì)思想標(biāo)識(shí)碼管理子系統(tǒng)被分割成許多小粒度的服務(wù)并融入到SaaS平臺(tái)微服務(wù)架構(gòu)體系。由于微服務(wù)具有自治能力,因此,防偽標(biāo)識(shí)管理系統(tǒng)子系統(tǒng)的微服務(wù)都有自己的生命周期。這些微服務(wù)需要和其他微服務(wù)進(jìn)行交互、通信,比如,生成標(biāo)識(shí)管理系統(tǒng)會(huì)通過HTTP協(xié)議請(qǐng)求標(biāo)識(shí)碼API以上傳ZIP文件進(jìn)行激活;標(biāo)識(shí)碼查詢API通過HTTP2/TCP協(xié)議調(diào)用標(biāo)識(shí)碼RPC等。
以下是相關(guān)的微服務(wù)職能描述:
防偽標(biāo)識(shí)管理系統(tǒng)API:防偽標(biāo)識(shí)管理系統(tǒng)標(biāo)識(shí)碼業(yè)務(wù)功能定義(比如,標(biāo)識(shí)碼可以被定義為,”管控碼“、”營(yíng)銷碼“等);編碼規(guī)則管理,主要包含功能:碼段管理和碼段類型管理;標(biāo)識(shí)碼生成,由于標(biāo)識(shí)碼大批量生成是耗時(shí)的動(dòng)作,因此,生成過程需要以任務(wù)隊(duì)列的方式進(jìn)行管理;防偽碼管理;標(biāo)識(shí)碼激活任務(wù)管理,主要包含功能:激活統(tǒng)計(jì)和標(biāo)識(shí)碼文件導(dǎo)出;標(biāo)識(shí)碼數(shù)據(jù)占用空間管理。
防偽標(biāo)識(shí)管理系統(tǒng)標(biāo)識(shí)碼查詢API;標(biāo)識(shí)碼詳細(xì)信息查詢;標(biāo)識(shí)碼防偽查詢;防偽標(biāo)識(shí)管理系統(tǒng)標(biāo)識(shí)碼掃碼API,標(biāo)識(shí)碼對(duì)應(yīng)的二維碼掃碼處理;根據(jù)標(biāo)識(shí)碼查詢其二維碼被掃描的次數(shù)。
防偽標(biāo)識(shí)管理系統(tǒng)標(biāo)識(shí)碼RPC,提供標(biāo)識(shí)碼管理遠(yuǎn)程調(diào)用功能:標(biāo)識(shí)碼查詢,激活,父碼子碼綁定,掃碼,防偽查詢等;防偽標(biāo)識(shí)管理系統(tǒng)Generator,標(biāo)識(shí)碼Generator是一個(gè)后臺(tái)程序,主要負(fù)責(zé)調(diào)度生成標(biāo)識(shí)碼任務(wù),每次它只處理一個(gè)生成標(biāo)識(shí)碼任務(wù),按任務(wù)隊(duì)列解決標(biāo)識(shí)碼生成高并發(fā)問題。
防偽標(biāo)識(shí)管理系統(tǒng)標(biāo)識(shí)碼Activator,標(biāo)識(shí)碼Activator是一個(gè)后臺(tái)程序,主要負(fù)責(zé)調(diào)度激活標(biāo)識(shí)碼任務(wù),每次它只處理一個(gè)激活標(biāo)識(shí)碼任務(wù),按任務(wù)隊(duì)列解決標(biāo)識(shí)碼激活高并發(fā)問題。
防偽標(biāo)識(shí)管理系統(tǒng)標(biāo)識(shí)碼Scanner防偽標(biāo)識(shí)管理系統(tǒng)標(biāo)識(shí)碼Scanner是一個(gè)后臺(tái)程序,主要負(fù)責(zé)保存來自MQ消息隊(duì)列的標(biāo)識(shí)碼掃碼信息,其中,掃碼信息包含,掃碼移動(dòng)端的地理位置信息,微信用戶信息以及掃碼時(shí)間等,它將接收到的每一條掃碼信息存儲(chǔ)在數(shù)據(jù)庫(kù)大表中以備后期進(jìn)行大數(shù)據(jù)分析,其中,掃碼信息被根據(jù)企業(yè)分庫(kù),根據(jù)數(shù)量分表的方法存儲(chǔ)起來。
防偽標(biāo)識(shí)管理系統(tǒng)標(biāo)識(shí)碼API網(wǎng)關(guān),API網(wǎng)關(guān)可以提供多種功能,主要包括:反向代理/網(wǎng)關(guān)路由、聚合請(qǐng)求以及橫切關(guān)注點(diǎn)(如,身份驗(yàn)證/授權(quán)、服務(wù)發(fā)現(xiàn)、響應(yīng)緩存、重試策略、斷路、限流、負(fù)載均衡、日志跟蹤、請(qǐng)求查詢字符串控制、IP白名單,等等)。標(biāo)識(shí)碼API網(wǎng)關(guān)是一個(gè)基于HTTP/HTTPS協(xié)議的微服務(wù)接口網(wǎng)關(guān)路由層,將標(biāo)識(shí)碼微服務(wù)和標(biāo)識(shí)碼掃碼微服務(wù)統(tǒng)一路由到同一個(gè)網(wǎng)關(guān)接口,對(duì)外暴露微服務(wù)個(gè)數(shù)越少,系統(tǒng)可受攻擊面積就越小。
防偽標(biāo)識(shí)管理系統(tǒng)架構(gòu)圖標(biāo)識(shí)碼管理子系統(tǒng)作為一物一碼系統(tǒng)的核心,溯源、二維碼營(yíng)銷、防竄貨等子系統(tǒng)都依賴于該系統(tǒng)提供的標(biāo)識(shí)碼數(shù)據(jù),在整個(gè)系統(tǒng)運(yùn)作時(shí)標(biāo)識(shí)碼數(shù)據(jù)在不同子系統(tǒng)之間進(jìn)行流通,標(biāo)識(shí)碼管理子系統(tǒng)又是標(biāo)識(shí)碼數(shù)據(jù)的工廠,它負(fù)責(zé)高效的生成標(biāo)識(shí)碼,在使用標(biāo)識(shí)碼環(huán)節(jié)它需要提供數(shù)據(jù)輸出、二次處理的能力,比如,標(biāo)識(shí)碼的激活、更新等。防偽標(biāo)識(shí)管理系統(tǒng)子系統(tǒng)由許多微服務(wù)構(gòu)成,如下圖所示:
防偽標(biāo)識(shí)管理系統(tǒng)應(yīng)用程序通過使用HTTP/HTTPS協(xié)議請(qǐng)求標(biāo)識(shí)碼管理微服務(wù),防偽標(biāo)識(shí)管理系統(tǒng)微服務(wù)在內(nèi)部網(wǎng)絡(luò)將執(zhí)行遠(yuǎn)程調(diào)用標(biāo)識(shí)碼RPC;當(dāng)請(qǐng)求經(jīng)過標(biāo)識(shí)碼API網(wǎng)關(guān)時(shí),API網(wǎng)關(guān)又將請(qǐng)求路由到對(duì)應(yīng)的微服務(wù),比如,標(biāo)識(shí)碼查詢微服務(wù),標(biāo)識(shí)碼查詢微服務(wù)在內(nèi)部網(wǎng)絡(luò)將執(zhí)行遠(yuǎn)程調(diào)用標(biāo)識(shí)碼RPC。
防偽標(biāo)識(shí)管理系統(tǒng)微服務(wù)接收生成標(biāo)識(shí)碼命令,一個(gè)新的標(biāo)識(shí)碼生成任務(wù)在后臺(tái)被創(chuàng)建,標(biāo)識(shí)碼Generator負(fù)責(zé)執(zhí)行大批量生成標(biāo)識(shí)碼;標(biāo)識(shí)碼管理微服務(wù)接收激活標(biāo)識(shí)碼命令,一個(gè)新的標(biāo)識(shí)碼激活任務(wù)在后臺(tái)被創(chuàng)建,標(biāo)識(shí)碼Activator負(fù)責(zé)分解標(biāo)識(shí)碼數(shù)據(jù)包并逐個(gè)激活標(biāo)識(shí)碼。
防偽標(biāo)識(shí)管理系統(tǒng)移動(dòng)端,來自移動(dòng)端應(yīng)用程序(比如,微信小程序,原生移動(dòng)APP,PDA等)的請(qǐng)求被標(biāo)識(shí)碼API網(wǎng)關(guān)路由到對(duì)應(yīng)的微服務(wù),標(biāo)識(shí)碼查詢微服務(wù)和掃碼微服務(wù),標(biāo)識(shí)碼查詢微服務(wù)在內(nèi)部網(wǎng)絡(luò)將執(zhí)行遠(yuǎn)程調(diào)用標(biāo)識(shí)碼RPC。防偽標(biāo)識(shí)管理系統(tǒng)工控機(jī),生成防偽標(biāo)識(shí)管理系統(tǒng)與標(biāo)識(shí)碼管理子系統(tǒng)的交互功能主要包括:標(biāo)識(shí)碼數(shù)據(jù)包ZIP上傳激活、標(biāo)識(shí)碼激活任務(wù)同步。核心業(yè)務(wù)流程
防偽標(biāo)識(shí)管理系統(tǒng)編碼規(guī)則管理:標(biāo)識(shí)碼由不同類型的碼段組合而成,碼段主要分:流水號(hào)、企業(yè)碼段、固定字符碼段、隨機(jī)、日期時(shí)間等。流水號(hào)和企業(yè)碼段為系統(tǒng)預(yù)設(shè)碼段,它們分別有各自的預(yù)設(shè)位數(shù)。編碼規(guī)則管理主要負(fù)責(zé)管理這些標(biāo)識(shí)碼碼段,動(dòng)態(tài)的管理碼段的長(zhǎng)度,標(biāo)識(shí)碼的總長(zhǎng)度;
防偽標(biāo)識(shí)管理系統(tǒng)標(biāo)識(shí)碼生成,標(biāo)識(shí)碼Generator負(fù)責(zé)標(biāo)識(shí)碼生成,它在接收來自“標(biāo)識(shí)碼管理微服務(wù)”的命令之后通過任務(wù)調(diào)度,根據(jù)生成標(biāo)識(shí)碼任務(wù)創(chuàng)建的先后順序進(jìn)行處理;防偽標(biāo)識(shí)管理系統(tǒng)分庫(kù)分表標(biāo)識(shí)碼數(shù)據(jù)存儲(chǔ)支持分庫(kù)分表管理,支持多租戶。標(biāo)識(shí)碼數(shù)據(jù)屬于企業(yè)增值資產(chǎn),適合以不透明化分庫(kù)分表技術(shù)實(shí)現(xiàn)大數(shù)據(jù)管理,防止大數(shù)據(jù)被隨意操作。數(shù)據(jù)庫(kù)按租戶和碼類型進(jìn)行劃分;標(biāo)識(shí)碼數(shù)據(jù)以數(shù)據(jù)量達(dá)到1億每表并結(jié)合路由機(jī)制進(jìn)行劃分(即,當(dāng)表數(shù)據(jù)量達(dá)到1億時(shí)自動(dòng)切分到下一個(gè)新表),其中,路由機(jī)制需實(shí)現(xiàn)多租戶支持,
防偽標(biāo)識(shí)管理系統(tǒng)標(biāo)識(shí)碼數(shù)據(jù)的創(chuàng)建與更新通過數(shù)據(jù)庫(kù)與表之間的路由技術(shù)實(shí)現(xiàn)精準(zhǔn)檢索,創(chuàng)建標(biāo)識(shí)碼數(shù)據(jù)時(shí)“標(biāo)識(shí)碼Generator”借助路由將大量數(shù)據(jù)保存到不同的數(shù)據(jù)庫(kù)表;標(biāo)識(shí)碼激活、綁定等一系列的數(shù)據(jù)更新操作則由“標(biāo)識(shí)碼RPC”負(fù)責(zé)對(duì)路由進(jìn)行調(diào)配、計(jì)算,最終,完成標(biāo)識(shí)碼數(shù)據(jù)的更新操作。
防偽標(biāo)識(shí)管理系統(tǒng)數(shù)據(jù)庫(kù)名包含租戶編碼和標(biāo)識(shí)碼類型信息。數(shù)據(jù)庫(kù)表名主要以有序數(shù)字區(qū)分且其數(shù)值自增。
其中,租戶編碼和標(biāo)識(shí)碼類型舉例如下:
租戶編碼:18、19、20、21、22
標(biāo)識(shí)碼類型:productcode、packagecode.
防偽標(biāo)識(shí)管理系統(tǒng)激活防偽標(biāo)識(shí)管理系統(tǒng)激活主要以上傳標(biāo)識(shí)碼數(shù)據(jù)包ZIP文件到一物一碼系統(tǒng),標(biāo)識(shí)碼管理微服務(wù)負(fù)責(zé)分派請(qǐng)求到標(biāo)識(shí)碼激活微服務(wù)進(jìn)行處理。防偽標(biāo)識(shí)管理系統(tǒng)客戶端主要有:
防偽標(biāo)識(shí)管理系統(tǒng):支持一小批碼激活、大數(shù)據(jù)量激活標(biāo)識(shí)碼,以上傳ZIP數(shù)據(jù)包的方式激活。
防偽標(biāo)識(shí)管理系統(tǒng):大數(shù)據(jù)量激活標(biāo)識(shí)碼,以上傳ZIP數(shù)據(jù)包的方式激活,
防偽標(biāo)識(shí)管理系統(tǒng)掃碼:移動(dòng)端掃描二維碼,解析二維碼中的標(biāo)識(shí)碼,收集掃碼信息和用戶相關(guān)信息,“標(biāo)識(shí)碼API網(wǎng)關(guān)”將請(qǐng)求路由到”標(biāo)識(shí)碼掃碼微服”,”標(biāo)識(shí)碼掃碼微服”接收掃碼信息后,發(fā)布消息給事件總線,“標(biāo)識(shí)碼Scanner”訂閱消息并對(duì)消息進(jìn)行處理然后將相關(guān)信息存儲(chǔ)到數(shù)據(jù)庫(kù)。消息通過事件總線進(jìn)行發(fā)布/訂閱;通過事件總線訂閱掃碼消息的的微服務(wù)可以根據(jù)需要將接收消息進(jìn)行處理。上圖標(biāo)注的“其他微服務(wù)”包括“統(tǒng)計(jì)微服務(wù)”,訂閱掃碼事件的“統(tǒng)計(jì)微服務(wù)”加收到消息后可以執(zhí)行相關(guān)數(shù)據(jù)的統(tǒng)計(jì),比如,用戶畫像,熱力圖,等等。
防偽標(biāo)識(shí)管理系統(tǒng)數(shù)據(jù)模型設(shè)計(jì):數(shù)據(jù)模型是數(shù)據(jù)特征的抽象。數(shù)據(jù)是描述事物的符號(hào)記錄,模型是現(xiàn)實(shí)世界的抽象。數(shù)據(jù)模型從抽象層面描述了架構(gòu)系統(tǒng)的靜態(tài)特征和約束條件;防偽標(biāo)識(shí)管理系統(tǒng)子系統(tǒng)的微服務(wù)共用同一個(gè)主數(shù)據(jù)庫(kù),數(shù)據(jù)模型主要由以下幾個(gè)模塊組成:編碼規(guī)則(包括,標(biāo)識(shí)碼編碼規(guī)則和防偽碼編碼規(guī)則)、標(biāo)識(shí)碼任務(wù)(包括,生成標(biāo)識(shí)碼任務(wù)和激活標(biāo)識(shí)碼任務(wù))。