許舒人, 丁 南, 陳 穎, 張澤華
1(中國科學院 軟件研究所,北京 100190)
2(廈門市商務局,廈門 361012)
3(廈門物之聯智能科技有限公司,廈門 361021)
近年來,各地區和有關部門圍繞食用農產品、食品、藥品、稀土產品等重要產品,積極推動應用物聯網、云計算等現代信息技術建設追溯體系,在提升企業質量管理能力、促進監管方式創新、保障消費安全等方面取得了積極成效[1]. 例如商務部門在肉菜、中藥材和酒類追溯進行了試點示范.
2010年以來,分五批支持58個城市建設肉類蔬菜流通追溯體系,以屠宰環節、批發環節、零售環節、超市環節及團體消費環節追溯子系統為支撐,覆蓋58個城市、約1.5萬家企業、30多萬家商戶,每天匯總有效追溯數據約420萬條[2].
2012年以來,分三批支持18個省市建設中藥材流通追溯體系,以中藥材種植和養殖、中藥材經營、中藥材專業市場、中藥飲片生產、中藥飲片經營和中藥飲片使用六大環節追溯子系統為支撐,覆蓋全國18個省市,約2000家企業、1.5萬家商戶[3].
2012年以來,在加強酒類行業管理同時,酒企可利用追溯體系開展防偽、防竄貨、營銷數據分析等相關業務,在茅臺、五糧液、古井等8家企業建成了酒類追溯體系[4].
2016年,國家商務部在上海、山東、寧夏、廈門三省一市啟動了重要產品追溯體系示范建設,鼓勵地方先行先試,探索可復制推廣的追溯體系建設模式.
通過這些試點示范,初步以管理層級的追溯管理平臺為核心,以生產流通環節的追溯子系統為支撐的肉菜、中藥材、酒類流通追溯體系,實現了試點范圍內示范產品的來源可追溯、去向可查證、責任可追究,有效提升了流通領域的示范產品安全保障能力.
由于重要產品追溯系統大都從政府部門監管需要出發,分品種、分階段、分節點進行建設,開發運營成本高,各部門之間缺少統一標準,難于實現重要產品全程追溯,而且追溯系統與企業業務結合不緊密,難于調動企業使用追溯系統的積極性. 如何有效地規劃設計追溯系統成為重要產品追溯領域面臨的挑戰之一.
王姍姍等[5]研究基于批次清單的信息追溯方法,以加工時間為依據結合高津托圖數據結構構建批次清單,實現小麥粉生產加工過程中產品信息和關鍵節點活動信息的精確追溯. 黃向明等[6]提出了基于活動的物料清單的信息追溯方法. 通過對工程機械再制造過程的分析,構建了工程機械再制造過程信息追溯模型. 葉云等[7]研究采用EAV數據模型與XML數據模型混合方法可支撐多品種追溯的動態擴展數據模型優化技術,同時以提升追溯精度、降低追溯成本為目標研究了基于位置服務的追溯精度提升技術. 王雅君等[8]分析了基于過程的海產食品質量追溯過程并建立了基于關鍵節點的過程跟蹤與產品質量追溯模型. 顏波等[9]以羅非魚為研究對象,設計并開發了基于RFID和EPC物聯網的水產品供應鏈可追溯平臺. 韓端鋒等[10]分析了生產物資的屬性信息和關聯信息,使其轉化為物資追溯實體單元的屬性-關聯信息矩陣,得到追溯實體單元的分析模型,設計開發了船舶項目物資追溯實體單元管理的數字化系統. 以上文獻都是以核心企業為中心從內部生產過程向上游、向下游延伸一級研究追溯過程模型,對跨企業多級流通過程支持不夠,追溯信息模型涉及屠宰場、豬肉、超市等特定的主體、產品、節點,沒有抽象出追溯領域共性,追溯編碼側重于追溯實體單元、責任主體所屬主管部門,造成追溯碼不唯一問題,因此,追溯系統的復用性、實用性有待提高.
本文分析了重要產品試點示范追溯系統存在的問題,提出了一套重要產品追溯領域模型,該模型基于供應鏈的產品生產關系和主體交易關系實現溯源責任主體、追蹤產品流向,不僅提高了追溯系統的復用性,而且將追溯融入業務過程,從而降低追溯信息獲取成本.
本文第2節首先分析重要產品追溯系統現狀. 第3節介紹重要產品追溯領域模型. 第4節以實例介紹模型應用效果. 第5節總結本文的工作.
重要產品試點示范過程中制定了國家、行業標準規范,要求在流通節點部署追溯子系統,對流通節點及其經營者進行備案,經營過程中登記產品流通信息,包括進場信息、檢測信息、交易信息,每日逐級上報信息到政府管理平臺,上報信息要求符合編碼規范. 例如,肉菜追溯標準規范的追溯體系總體架構[11]如圖1所示.
該架構以中央、省、市三級追溯管理平臺為核心,以屠宰環節、批發環節、零售環節及團體消費環節追溯子系統為支撐,以追溯信息鏈條完整性管理為重點構建肉類蔬菜流通追溯體系,初步實現了試點范圍內肉類蔬菜的來源可追溯、去向可查證、責任可追究,有效提升了流通領域的肉菜安全保障能力.
由于流通節點[11,12]的類型沒有覆蓋產品的供應鏈各類節點,造成追溯信息鏈條不完整; 由于經營者可能在多個節點重復備案[13],造成責任主體編碼不唯一,影響產品追蹤的有效性; 由于通過進場登記、交易打單等功能采集追溯信息,與企業業務關聯不緊密,造成追溯信息不準確、追溯鏈條脫節.
如圖1所示,供應鏈以產品生產、流通和消費過程經過的產地、加工、批發、零售和消費等特定的環節進行構建,不能涵蓋供應鏈所有環節,如:產品可以經過海關跨境流通,產品可以在任何地方交易,等等.產品供應鏈應由產品生產、流通和消費的責任主體組成,企業可同時具有生產、流通和消費多種業務角色,供應鏈可以只有一個主體,產品自己生產自己消費,也可以由一個生產、多個流通和一個消費組成,產品如果用作生產資料,就成了新產品的原料,新產品屬于下游供應鏈,如圖2(a)所示.

圖1 肉菜追溯體系總體架構
產品風險控制要點沒有形成證據鏈條,如進場登記、出場登記、市場調撥等內部憑據難于保證追溯信息的準確性. 產品的追溯是追究產品生產流通過程中相關主體對產品質量應付的責任,追溯的依據必須具有法律效力,產品所有者承擔產品質量風險責任,所有者可以繼續追溯產品供應商、服務提供商的責任. 追溯領域的核心概念如圖2(b)所示,生產資料可以看成上游供應鏈的產品,生產體現了產品的組合關系,交易體現了主體之間的產品或服務提供的關聯關系,生產、交易在某個節點上進行,交易的執行觸發產品所有權、產品質量責任的變更.
追溯系統由分管生產、流通和消費的政府監管部門分別主導開發,分品類、分階段、分節點實施,所制定的信息結構(如:《SB/T 10684-2012肉類蔬菜流通追溯體系信息處理技術要求》)沒有完全反映追溯領域的共性,缺少跨部門規劃和統一標準,造成追溯系統開發運行成本高、追溯信息難于共享、企業追溯信息負擔重(運行來自不同監管部門的多套追溯系統,向不同監管部門上報不同規范的追溯信息),如圖2(c)所示.
為解決以上問題,應該對追溯領域進行建模. 領域建模通常包括使用多種建模概念(如業務功能、業務流程和業務服務)表示業務體系結構[14]. 追溯系統的關鍵在于識別和追溯產品的生產關系和交易關系,匯集有效的追溯記錄,形成完整的追溯信息鏈條,本文著重對追溯過程模型、追溯編碼方法、追溯領域模型和追溯數據集成方法進行研究,使重要產品追溯系統開發吻合產品供應鏈,提高軟件的復用性、追溯信息的完整性,支持追溯業務價值的提升.
為克服上述按流通節點構造產品供應鏈追溯過程模型帶來的追溯信息完整性、準確性問題,本文基于國際供應鏈理事會開發和維護的供應鏈運作參考模型(SCOR?)(Supply-Chain Operations Reference-model)[15]來分析產品追溯過程,提出重要產品追溯過程模型.
SCOR模型以產品生產、經營和消費的企業為節點構建供應鏈,把鏈條上的所有環節都聯系起來進行優化,提升供應鏈管理水平. SCOR模型將供應鏈界定為計劃(plan)、采購(source)、生產(make)、銷售(deliver)、退貨(return)五大過程,如圖3所示.
產品追溯是依據產品生產、流通和消費記錄溯源產品的責任主體,追蹤產品的流向. 從SCOR模型看,這些追溯信息就是來源于供應鏈計劃、采購、生產、銷售和退貨五大過程記錄,計劃過程不能作為追溯依據,而退貨過程可納入到采購過程和銷售過程,因此追溯信息可視為來源于采購、生產和銷售過程. 采購、銷售分別與供應鏈上游、下游關聯,通過企業間產品交易信息體現. 生產發生在企業內部,將采購自上游供應商的生產資料轉變為銷售給下游客戶的產品,通過產品生產信息體現. 監管部門依據相關法律對生產流通過程中產品質量安全進行監管,通過產品批次質量檢測、行政執法等監管信息體現. 消費者通過消費憑證(采購交易憑證,如:購物小票、發票等具有法律效力的票據)查詢產品生產流通信息,并可以就產品質量問題進行投訴.

圖3 供應鏈運作參考模型
因此,基于過程模式[16]采用UML (Unified Modeling Language)(業務建模定制版)設計追溯過程模型如圖4所示,通過與追溯相關的重要事件、輸入、資源和輸出等來刻畫產品追溯過程,“重要產品追溯”是過程,“追究責任主體”是過程的目標,“消費憑證”是過程的輸入,“生產流通信息”是過程的輸出,“采購信息”、“生產信息”、“銷售信息”和“監管信息”是過程使用的信息資源,“查詢”是過程接收的事件,“消費者”、“生產經營企業”和“監管部門”是與過程相關的參與者.

圖4 產品追溯過程模型
重要產品追溯過程由消費者查詢事件觸發,查詢只需輸入追溯碼(消費憑證號或產品追溯碼),就能獲得對應的產品生產流通信息輸出,投訴需要輸入(上傳)消費憑證. 追溯過程基于采購信息、生產信息、銷售信息和監管信息,為消費者提供查詢投訴服務,達到追究相關企業產品質量安全責任的目的.
由于銷售信息依賴生產信息,生產信息依賴采購信息,監管信息通過產品批次與生產流通信息關聯,確保了追溯信息鏈條的完整性和準確性.
目前試點示范工程中追溯編碼主要有三種方式:
1)按行業編碼,如國家中藥材流通追溯體系的中藥材企業代碼是由行業分類碼開頭(由6位行業分類碼、7位企業編碼、1位驗證碼組成)[17].
2)按部門編碼,如國家農產品質量安全追溯管理信息平臺采用OID(Object Identifier)[18]分層樹形結構對主體、產品進行編碼(中國編碼1.2.156,農業部編碼1.2.156.326,逐級往下編碼)[19].
3)按行政區劃編碼,如肉類蔬菜流通追溯體系的流通節點主體碼由行政區劃代碼開頭(由6位行政區劃代碼、3位備案順序號組成)[13],經營者主體碼由流通節點主體碼+備案號組成(由9位流通節點主體碼、4位備案順序號組成).
這三種方式編碼都是自頂向下編碼,都會造成企業在不同行業、部門或地區中有不同代碼,產品追溯碼以企業代碼為基礎進行編制必然存在唯一性問題.
因此,重要產品追溯編碼應該與行業、部門、地區解耦,并且在追溯信息產生的源頭進行.
重要產品追溯信息的集成目的是收集產品從生產、流通到消費全生命周期的產品追溯信息,追溯的核心依據是交易憑證,追溯碼編碼與載體的設計應緊密結合交易憑證進行. 交易憑證包括生產資料交易憑證、產品交易憑證,通過交易憑證可以追溯這筆業務發生的時間、地點、上游主體、下游主體、以及交易產品,通過交易憑證號、產品追溯碼可以構造產品生產流通過程完整的供應鏈條,實現產品正向跟蹤和逆向溯源.
從責任主體追溯的角度看,生產檔案主要記錄產品生產用到的生產資料,將產品與生產資料進行關聯,可實現產品到生產資料的追溯.
此外,政府在生產流通節點對產品進行批次檢測或抽樣檢測,對產品的質量進行監管,這些信息通過產品批次與產品進行關聯.
追溯碼依據產品生產、流通可分為產品追溯碼和交易憑證號,產品追溯碼追溯產品生產信息(生產主體代碼、產品分類代碼、批號、系列號等),僅當產品作為生產資料再加工(或再包裝)時,才需要變更產品追溯碼,交易憑證號追溯產品流通信息(上游主體代碼、下游主體代碼、交易序號、產品追溯碼等).
通過交易憑證號、產品追溯碼可以構造產品生產流通過程完整的供應鏈條,實現產品正向跟蹤和逆向溯源. 追溯碼編碼方法如圖5所示.

圖5 追溯碼編碼方法
其中,主體代碼建議采用統一社會信用代碼(GB32100—2015),產品分類代碼采用可運輸產品分類代碼(GB/T 7635.1-2002). 交易憑證號、產品追溯碼可以按編碼規則壓縮產生,避免編碼太長(如文獻[19]中的追溯碼位數多達60余位)增加使用難度,追溯二維碼通過交易憑證號、產品追溯碼查詢到數據庫相關記錄信息,抽取產品質量安全重要信息(可附上鏈接方便消費者進一步查詢更詳細信息),進行封裝生成. 這樣可直接利用現有編碼規則和資源,統一編碼內容,方便與其它系統對接,可解決同一責任主體在不同政府部門、流通節點具有不同主體代碼問題,與業務操作行為協同一致,可以實現一筆交易包含多個品種產品,更容易讓企業接受.
重要產品追溯系統建設的目的是采集記錄產品生產、流通、消費等環節信息,實現來源可查、去向可追、責任可究,強化全過程質量安全管理與風險控制的有效措施. 所以,可以從產品生產、流通和消費過程中質量控制要素出發分析追溯信息維度,然后設計追溯領域模型,基于領域模型進行系統開發,提高系統的復用性,從而降低系統開發運行成本.
產品質量控制要素分布在供應鏈中各個環節,生產環節有原料采購、產品生產、產品檢測等,流通環節有運輸保管、產品交易等,監管環節有產品抽檢、行政執法等,消費環節有產品使用、查詢投訴等,這些要素信息都應具有時間、節點、主體、客體等維度,如圖6所示.

圖6 追溯信息維度
時間是重要產品生命周期的關鍵因素,生命周期記錄產品責任主體變遷,訂單執行觸發責任變更,以交易憑證為載體實現追溯.
從出生到消亡,產品在生產基地、加工廠、批發市場、零售市場、配送中心和消費團體等空間節點生產、流通和消費,節點由相應的主體負責經營管理,提供經營場所、產品質量檢測、產品物流等服務,供應鏈上下游主體在節點上進行產品交易和服務交易.
主體包括生產商、物流商、經銷商、消費團體、檢測機構和監管部門等,對節點和主體按行政區劃進行管理,首先要進行注冊備案,主體提供基本信息和相關主體證件證書,經監管部門或節點管理者審批通過才能經營.
生產過程管理產品生產、加工的主要作業活動,記錄生產過程所用的生產資料及其質量保證. 流通過程管理產品物流信息、交易信息及其流通過程質量保證. 生產流通過程中,還要對產品進行檢驗檢測、標識記錄. 標識管理保障產品責任鏈環環相扣,以及產品合并或分割時仍然具有可追溯性. 市場準入要求產品應具備質量合格的相關證明.
另一方面,采購、生產和銷售過程都可能涉及到運輸、倉儲等物流服務,這些服務可以自己完成,也可以通過采購第三方物流服務完成.
客體包括生產資料和產品,生產資料是上游企業的產品. 當前重要產品主要包括食用農產品、食品、藥品、農業生產資料、特種設備、危險品、稀土產品等[1].
采用UML設計重要產品追溯領域模型如圖7所示,用類表示重要產品追溯領域概念,用關聯、泛化和依賴表示領域概念之間的關系. 模型將追溯過程模型(參見圖4)使用的采購信息、生產信息、銷售信息、監管信息、檢測信息、追溯信息等環節信息抽象為業務信息,業務信息分別與主體、節點、產品等維度(參見圖6)建立關聯關系,利用依賴關系將采購信息、生產信息、銷售信息與下層的物流信息連接,基礎的領域類體現共同屬性,繼承的領域類體現特殊屬性,使得模型能夠適應主體、節點和產品的變化,并使領域類的層次清晰、關系簡化,從而模型更加簡明、直觀.
追溯領域模型體現了生產過程、流通過程的共性,統一了重要產品追溯模型,為系統架構的穩定性、擴展性奠定了基礎,并可大大簡化應用軟件的開發.
基于追溯領域模型可以設計重要產品追溯數據庫,匯集按照統一標準規范設計的示范企業追溯系統數據,然而對于政府部門監管系統中的追溯數據如何集成仍然面臨很大的挑戰. 通過調研分析,需要從政府部門監管系統中獲取的追溯信息包括主體信息、生產信息、產品信息、檢測信息、交易信息和物流信息,這些信息來自不同的系統,參照不同的標準代碼,需要進行模式匹配和實例轉換,以解決數據的語法和語義一致性問題.
目前大部分數據倉庫都以星型或雪花模型進行建模,所以每個數據源數據對接可以按如下方法進行:
(1)定義數據源、數據目的,即分別定義讀取數據庫和寫入數據庫的地址、連接賬號和密碼等;
(2)設置數據沖突處理方式(如:覆蓋原有數據、放棄沖突新數據)和觸發事件(如:數據更新觸發、周期性定時執行);
(3)分析源表與目標表字段的差異、數據格式的差異,建立字段映射關系(如用表達式表示);
(4)分析源表與目標表使用代碼的差異,建立代碼映射關系(如對照表);

圖7 重要產品追溯領域模型
(5)依據(3)和(4)的映射關系對主表、維表分別進行抽取、轉換、加載;
(6)對于難于定義映射關系(如字段需要區分情況分別映射、代碼需要調整統計口徑才能映射等)的通過定制模塊進行處理.
追溯數據集成架構如圖8所示,采用ETL (Extract-Transform-Load)中間件[20],實現追溯數據集成標準化、自動化.
上述的重要產品追溯領域模型已在多個重要產品追溯體系建設示范工程規劃設計中應用. 以廈門市重要產品追溯統一平臺建設為例說明追溯領域模型的應用效果.
廈門市重要產品追溯統一平臺負責對廈門市追溯管理信息進行總的集成、管理、查詢和分析操作. 統一平臺向上與中央重要產品追溯管理平臺對接,實現與中央平臺的數據上報,接受中央平臺的監管; 向下與政府監管系統和示范企業追溯系統進行有效對接,按照統一的數據傳輸格式和接口規范,抽取、轉換、加載相關政府部門監管數據,采集各示范企業數據,匯總追溯數據并進行統計分析、數據挖掘等操作,為重要產品的追溯管理和指揮決策提供支撐.

圖8 追溯數據集成架構
統一平臺功能主要包括信息采集審核、監管輔助、追溯碼與標識管理、信息查詢、數據分析、應急管理等. 同時,為小微企業提供了追溯SaaS系統,與統一平臺對接,納入統一平臺管理體系.
小微企業追溯SAAS系統功能包括原料采購、原料庫存、生產加工、產品庫存、產品銷售、產品運輸、產品召回和統計分析等.
納入示范工程的重要產品包括農產品、食品、藥品、酒類、農資和進口食品等6大類產品.
統一平臺規劃設計中應用上述領域模型,與以往試點示范項目相比,系統開發周期大大縮短,系統已投入使用,實現了試點范圍內示范產品的全過程追溯. 有效提升了流通領域的示范產品安全保障能力,應用結果驗證了模型的有效性,下面分別介紹各部分應用效果(圖9).

圖9 追溯領域模型應用
應用追溯過程模型,以產品責任主體構建供應鏈,追溯信息來源于采購、生產和銷售過程,銷售信息依賴生產信息,生產信息依賴采購信息,監管信息通過產品批號與生產流通信息關聯,確保了追溯信息鏈條的完整性和準確性,避免以流通節點構建方式存在追溯信息不準確、信息鏈條脫節的缺陷,企業追溯系統不再依照生產、加工、批發、零售和消費5個環節分別設計,由5種統一為1種,統一平臺與企業追溯系統的接口數量相應減少4倍,降低了接口開發成本.
應用追溯編碼方法,充分利用統一社會信用代碼、行政區劃代碼和可運輸產品分類代碼等國家標準代碼資源,將追溯編碼放在追溯信息產生的源頭,產品批號更好體現產品質量安全因素,即保證了追溯代碼的唯一性,也避免了在流通過程中重復編碼的代價,通過交易憑證號、產品追溯碼可以構造產品生產流通過程完整的追溯信息鏈條,追溯信息與業務信息融合,減輕了追溯信息獲取成本. 統一平臺編碼規范如表1所示.
應用追溯領域模型設計追溯數據庫,統一了農產品、食品、藥品、酒類、農資和進口食品等6大類產品追溯數據模型,主要數據庫表18個,如圖10所示,按照《SB/T 10684-2012 肉類蔬菜流通追溯體系信息處理技術要求》要求的46個主要數據庫表測算,每一個大類產品主要數據庫表可節省28個,6大類產品可節省138個主要數據庫表,數據庫主要表個數規模縮小10.33倍((28×6+18)/18=10.33),并且可以獲得如下效益:(1) 業務信息基于追溯維度,確保信息穩定、可擴展; (2) 責任主體與流通節點分離,適用各類責任主體; (3) 節點僅表示產品生產、流通、消費發生的空間,適用各類節點; (4) 生產資料與產品概念統一,適用產品生產迭代. 因此,降低了追溯數據庫的復雜度,為統一平臺功能開發、追溯數據集成奠定了堅實的基礎,提高系統的穩定性和復用性.

表1 統一平臺追溯編碼規則

圖10 追溯系統主要數據庫表
應用追溯數據集成方法,實現食品監管系統、藥品監管系統、酒類流通監管系統、農產品監管系統、農業生產資料監管系統和進口食品監管系統的數據集成,對接具體信息參照各個系統提供的標準規范,如:《SB/T 10684-2012肉類蔬菜流通追溯體系信息處理技術要求》規定了主體、節點、商品、交易、檢測等信息,《SB_T 10680-2012肉類蔬菜流通追溯體系編碼規則》規定了主體、追溯、批次和商品等編碼規則.采用接口定義機制和ETL中間件支持跨操作系統、跨數據庫和跨管理域的異構數據集成,支持數據提取、轉換、傳輸和加載全過程的操作,支持流程的自動化,周期執行,有效降低了數據集成的難度,促進了追溯數據跨部門交換共享.
本文首先提出一種基于SCOR模型的產品追溯過程模型,該模型以交易信息連接上下游責任主體,以生產信息連接產品與生產資料關系,保證追溯信息鏈條的完整性和準確性. 第二,提出依據交易憑證號、產品追溯碼實現產品正向跟蹤和逆向溯源的追溯編碼方法,保證編碼唯一性,并與業務協同一致. 第三,基于產品質量控制要素,分析追溯信息的維度,設計追溯領域模型,該模型體現了生產過程、流通過程的共性,特性主要體現在產品分類及其屬性上,降低了追溯系統開發復雜度. 第四,給出了一種基于ETL中間件的追溯數據集成方法,解決追溯數據的異構性問題. 最后,以追溯系統建設實例說明追溯領域模型應用效果.