呂紫源
(中北大學藝術學院,山西太原 030000)
三維動畫造型已成為影視、游戲等娛樂產業的核心部分,然而,其制作成本高、周期長,使得資源共享成為一項重要挑戰。在互聯網環境中,網絡系統資源的共享可以為用戶更加廣泛利用資源提供了極大的便利,也提升了資源利用率。在三維動畫造型資源中,將資源信息化、共享化,可以提高學習和工作效率,促進該領域進入到新的形態[1]。
區塊鏈技術以去中心化、透明化和不可篡改的特性[2],為三維動畫造型資源的共享提供了新的解決方案。文中旨在構建一個自動化的、透明的、安全的基于區塊鏈技術的三維動畫造型資源共享系統,提高資源使用效率。期望通過這個系統,實現三維動畫造型資源的最大化利用,推動產業的持續發展。
基于區塊鏈技術,設計三維動畫造型資源共享系統總體架構,如圖1 所示。

圖1 系統總架構
系統由應用層、用戶層、區塊鏈信用層和數據層組成,其中,區塊鏈信用層包含的資源引入模塊、資源傳輸模塊和資源投放模塊以及數據層的共享資源庫模塊是該系統的重要內容。
資源引入模塊實現了數據源管理、定時任務設置、數據拉取、數據轉換與過濾、數據存儲以及錯誤處理與日志記錄等功能。資源傳輸模塊可以實現數據傳輸協議選擇、數據加密與解密、數據壓縮與解壓縮、數據分片與重組、傳輸速率控制、錯誤處理與重傳機制、進度跟蹤與日志記錄。資源投放模塊是系統中負責將可共享的資源從資源庫中提供給用戶的模塊。該模塊具有資源查詢與篩選、資源預訂與申請、資源狀態管理、投放協議與合同管理、請求響應與通知、使用反饋與評價功能。數據層的共享資源庫模塊是負責存儲和管理所有可共享資源的模塊。該模塊具有資源信息錄入與更新、資源分類與標簽管理、資源狀態管理、資源權限控制、數據存儲與備份功能,為系統提供了存儲和管理所有資源的基礎,保證資源的有效管理和共享。
1.2.1 資源處理器
資源共享系統會將網絡中的純文本、動畫造型仿真、音視頻數據等三維動畫造型資源進行整合和多源讀取,從而實現資源共享過程。因此,在系統硬件中,首先設計一個系統資源處理器,目的是將本地端資源和外域資源進行統一匯總處理。該系統中選用的資源處理器型號為S3C6410,基于ARM 架構,得到的資源嵌入式處理器硬件結構圖如圖2 所示。圖2 中,整個資源處理器中共包含兩個128 MB 的移動式內存器,同時該內存器內部自帶256 MB 的FLASH 閃存,可支持大規模數據接入;將閃存芯片工作頻率設置為其額定頻率(70 MHz),并在芯片接口處利用32 位的DMX512 控制總線將其與Geforce8 芯片分別與時鐘電路的正向端和負向端相連,以起到掉電保護作用;利用S3C6410芯片中的運算放大器放大內存器內部的衰減信號,保證資源數據的完整度;為控制資源數據的傳輸進程,將處理器上的三個引腳與放大器的I/O 引腳相連,并達到保護資源處理器的目的[3]。當系統資源處理器接收到的資源來自多個外域系統時,嵌入式處理器的外接顯示設備上的負載功率會出現失衡現象,為此,采用矩形USB 接口和SD 卡接口來平衡負載功率;將高速USB 接口、SD 卡接口以及主機接口分別與接口板的三個端口連接,在接口板剩余的接口處均設置八位模式的MMC 控制器。網絡模塊采用的是自適應網絡芯片,參數速率高達1 000 MB/S,通過其自身附帶的以太網控制器,將網絡中各項三維動畫轉型資源進行整合并儲存[4]。

圖2 嵌入式資源處理器硬件結構
FPGA 芯片內置20 kB 邏輯單元,用于控制器間的數據傳輸。其內部的主動配置電路如圖3 所示。在FPGA 芯片配置電路中,控制AS 接口與EPCS4 配置芯片串聯后直接連接到FPGA 芯片的TCK、DTO 以及TMS 接口上,作為備用控制電路。

圖3 FPGA芯片配置電路
1.2.2 資源數據輸入輸出電路
在資源嵌入式處理器的控制下,在系統硬件部分設計了資源數據傳輸接口電路板,用于實現資源的傳輸功能。基于USB 接口配置,根據處理器各芯片的功能特點,以電流在處理器中的返回路徑最近的原則,利用S/R2 接口兩端異步引腳與FPGA 芯片并聯,形成接口電路板,控制FPGA 芯片的輸出電壓[5]。在USB 接口和S/R2 接口之間設置電平轉換器,將兩個接口間的電平保持一致。同時,遵循線路等長原則,利用蛇形走線的方式對硬件接口連接電路進行整合。經過上述設計與處理,完成系統硬件部分的設計。
1.3.1 資源引入模塊
資源引入模塊采用拉模式資源引入方式,即定時從其他數據源系統拉取所需數據成功返回后生成本地資源庫的過程。首先系統根據實際需求對資源進行分類,進而將除本地端之外的數據源系統,按需接入不同網關以實現資源共享,并存儲成統一資源模型落庫[6]。三維動畫轉型資源分類情況如表1所示。

表1 三維動畫造型資源分類表
設計師通過自身權限將資源上傳至網站,當系統審核數據無誤后,上層業務系統向其他系統發起資源引入請求,請求包括資源類別、數量、大小等信息。當測試數據源連接狀態正常時,以Schduel 提供的API 注冊定時任務,注冊完畢后,Scheduel 以注冊任務時設定的cron 表達式定時對數據源系統發起調用,對于場景下的記錄信息,統一暫存至配置平臺DRM 中,當構建下一次請求參數時按需取用[7]。為了提高其他資源系統接入時的便利性,需要資源引入代碼具有較高的擴展性。在構建請求參數過程中,要對不同資源數據提供統一的資源傳輸接口,該系統利用工廠模式和策略模式對不同處理器間接口進行創建[8]。syncResource 方法用于實現資源數據引入,buildl mportContext主要用于資源構建并引入上下文,通過getProcessor 從靜態工廠和動態策略中取出數據引入執行器,并采用preExcute 來判斷是否所有感知到的資源數據都存入到引入上下文中的參數Map中,保留新增資源,對重復資源進行比較后予以刪除,然后利用excute 程序完成實際引入并獲取外域資源的過程,在此期間,根據資源類別信息對設定的參數邏輯進行調整,最后通過EcoResourceRepository將引入的資源數據批量落庫。
1.3.2 基于區塊鏈的資源傳輸模塊
區塊鏈技術有著大帶寬、低時延、支持海量接入等優勢,可有效提高系統資源傳輸性能。根據系統的基本功能,利用區塊鏈技術設計的傳輸模塊主要包括端、管、云三部分[9],其結構如圖4 所示。在傳輸模塊的“端”部分,主要將引入的資源進行整合和實現遠程控制;“管”是該模塊的核心部分,主要是資源傳輸的通道,利用切片技術根據資源類別進一步細分為具有不同資源側重能力的子通道,并在承載之間形成隔離[10]。系統根據不同資源類別和需求,選擇對應的切片服務,從而保證系統終端與控制系統之間高效、可靠的數據傳輸;“云”部分主要是負責初步管理系統資源,包括資源切片、資源計算和統計分析等,可根據不同共享需求,靈活分配系統資源庫的資源,實現資源高效利用。

圖4 基于區塊鏈技術的資源傳輸模塊結構
資源投放模塊主要實現基礎數據層資源對用戶投放的功能。在資源傳輸基礎上,對資源進行取出、規則功率以及展位渲染操作。資源投放時序圖如圖5 所示。傳輸模塊將資源傳輸到投放模塊的資源層,當系統發出資源對用戶投放請求時,首先在資源層取出投放所需要的基礎資源層資源,包括案例、文獻、元素、音視頻、效果等動畫資源,對以上資源進行拼裝后,此時展位中已有資源數據,然后按需將各類資源參照過濾規則進行過濾,包括標題、關鍵字、作者、上傳時間、文本類型、瀏覽次數以及擴展性信息等[11]。完成過濾后,系統接入SmartEngine程序,對資源進行編排,需要在解析數組中配置編排對應的方法,流程配置過程中標注各原子能力,同時在資源層中利用@Activity 標識以系統能力的原子,在SOFA 運行加載期間,系統會優先啟動WorkFLowServiceTemplate 程序對資源進行掃描加載解析數組文件,并根據標注能力屬性值將各流程串聯起來,則調用此編排方法時,就依據流程編排的順序依次調用各原子能力[12]。完成對資源的過濾編排后,此時展位中的資源即為需要投放到共享資源庫中的資源。

圖5 資源投放時序圖
資源投放完畢后,根據不同用戶需求,對資源的屬性進行劃定,將相同屬性的資源整合在一個公共共享資源庫專區,實現資源共享[13]。由于系統中的資源數據來源不同,所以資源格式也不一致,因此需要將所有陣元轉換為特定類型,統一格式,構建資源子模式。將生成的子模式作為共享資源庫與資源投放端的連接通信,匯總和整合接口處的資源數據,組建資源集合A,由此可以將資源傳輸函數表示為:
式中,s表示陣元傳輸時間;Q表示傳輸的數據總量;ω表示緩沖參數。
根據上述資源數據的傳輸過程,假設相同硬件結構對每次傳入的資源數據的敏感度均相同[14],因此,引入屬性參數r,可將參數的數量關系表示為:
式中,e11和e21分別表示在不同時刻下的資源數據傳輸量;a11表示系統對數據的敏感度參數,由此形成的資源屬性模式可表示為:
式中,uk表示資源穩定參數;vk表示資源傳輸的平均速度;j表示傳輸延遲參數;κ表示系統對資源的敏感度;E表示資源首次傳輸的時間;p表示資源屬性因子。
在不同資源傳輸時間控制下,將上述資源的各屬性參數進行標準化處理[15],以統一資源數據格式,標準化計算公式為:
式中,f表示資源數據傳輸頻率;T表示系統運行周期。
根據式(4),可得到資源屬性參數隨資源傳輸頻率變化的曲線,將傾向中最小振幅頻率作為屬性劃分分界點,即可實現對資源屬性的劃分。
根據資源屬性劃分,將三維動畫造型資源劃分為上傳共享、下載共享和輸出共享三個功能模塊,具體功能及操作流程如圖6 所示。系統中的共享資源庫模塊為更好地實現優質資源的共享共建,將來源不同的豐富優質資源進行分門別類并組織在公共共享資源庫專區,便于用戶根據自身需求隨時查詢所需資源[16]。在該模塊中,還設置了資源審核模塊,該模塊主要負責維護和優化共享資源庫,負責對上傳入庫的資源進行審核,判斷資源是否符合入庫以及共享的要求。資源共享系統中的所有用戶均具有相互間獨立的資源使用權限,在現在共享功能中,只要輸入自己的賬號和密碼,即可下載感興趣的資源,同時,使用者也可以將自己的作品上傳到系統資源庫中,審核無誤后,即為共享資源。系統后臺調用數據庫代理服務器用于資源讀取,利用FTP 服務器進行資源的上傳和下載操作。

圖6 資源共享庫功能劃分及操作流程
在系統整個設計以及研發過程中,需要對系統的現有功能進行測試,以驗證系統性能的優劣。因此,根據前文研究實際的資源共享系統,設置系統仿真測試環節,測試系統的應用性能。
實驗測試的仿真環境在阿里云搭建Apache+PHP 平臺,編程技術采用.NET 框架+C#語言+WinForm 技術,在局域網的控制下,共計申請10 臺服務器作為資源共享用戶訪問裝置,操作系統均為CentOS7.1。從內部集群中的部署來看,選擇服務器集群中的四個節點為主節點,其余為副節點。系統中的數據庫使用ACCESS 以及Oracle。10 臺服務器上均配置了CIoudEngine 容器化技術,為其他資源系統的接入提供了極大的便利。在測試環境相關參數控制下,將三臺服務器連接到局域網中,對其進行調試,檢測服務器的運行狀態。部署網絡節點,基于Apache2.0 協議開源,采用Ganache-cli:v6.6.0 以太坊節點仿真器和React: v16.5.2 前端框架,其中以太坊APT 的開發工具為Web3:v1.0.0-beta34,且容器之間相互獨立,無需外部接口即可實現虛擬化。另外,測試環境中還需要Hyperledger Fabric 源碼將資源數據編碼成二進制數組,這些二進制數組可以通過源碼編譯形成,為了簡化測試流程,利用git 源碼庫,將其內部的源碼直接拉取出來,由git 源碼庫編譯出的二進制數值可直接調用,并讀取配置文件,在系統啟動時起作用。上述所選擇的環境工具均為目前較為穩定的版本,兼容性較高,可保證測試過程中系統的穩定開發和運行。
基于上述測試準備,在系統的性能測試部分,文中利用區塊鏈創建資源,在Fabric 區塊鏈中,資源在數據庫中以鍵值對的形式存在,以資源id 信息為鍵將資源分布存入共享庫中,并將資源分為數據模型、基礎信息和擴展信息。三維動畫造型資源數據結構如圖7 所示。

圖7 三維動畫造型資源數據結構
根據上述資源數據結構對資源數據的屬性進行劃分,在資源屬性基礎上,用戶進行請求資源共享操作。利用資源植入代碼將資源植入到系統資源庫中,在資源植入過程中,為避免出現由于系統資源庫拼接不完整而產生資源丟包現象,加入服務器補包程序,當系統感知到丟包時,會向資源庫發送丟包請求,得到響應后等待接收補包數據,并將新資源數據插入到原數據隊列,從而保證資源庫中數據的完整性。
通過以上實驗環境部署和數據準備,對系統資源上傳、瀏覽、查詢以及下載等操作進行多次測試,最終選取10 次實驗平均值進行結果分析。分別采用基于大數據的資源共享系統(系統1)和基于混合云平臺的資源共享系統(系統2)與文中設計的資源共享系統開展資源搜索效率測試。測試中利用對系統的不同操作和所用時間的關系來評價系統資源搜索效率。為保證測試結果的公平性,三種系統均在統一局域網且所用資源大小都相同,對比結果如圖8 所示。分析圖8 可知,在不斷增加資源共享系統的搜索次數時,三種系統的搜索時間均有不同程度變化。當搜索次數超過8時,系統1表現出的搜索時間最長,最終搜索時間為2.7 s 左右,系統2 最終搜索時間大約為1.3 s,而文中設計的資源共享系統的搜索時間最短,最終搜索時間數值在0.3 s 左右,且隨著搜索次數的增加,其搜索時間并不呈現指數增長趨勢,由此可以證明,文中設計的資源共享系統的資源搜索效率較高。

圖8 資源搜索效率對比結果
設定每2 min 發送一次數據包,指定相應的共享目標,將四個測試小組分別用來對50個、100個、150個和200 個資源數據包進行測定和分析,并按順序逐次分享給100 名用戶。記錄數據共享前的數據包大小和共享完成后用戶收到的數據包,計算丟包率,結果如圖9 所示。

圖9 共享丟包率對比結果
分析圖9 可知,通過不同數量的資源數據包共享,測得不同系統的丟包率。系統1 的丟包率達到4.8%,系統2 的丟包率達到3.5%,而文中系統的資源共享丟包率均較好的控制在了1.5%以下,表明該系統在運行的過程中,共享的精準度高、誤差小,具有實際的應用價值。
以CPU 占用率達到80%為系統最大負載標準,逐漸增加用戶數量,驗證不同系統提供的最大并發用戶數,結果用圖10 描述。由圖10 可知,系統1 和系統2 的最大并發用戶數分別為248 和212 個,而文中系統最大并發用戶數為307 個,可承載較多的并發用戶數,表明文中系統的承載性良好。

圖10 并發用戶數對比結果
在上節實驗的基礎上,驗證不同系統對不同大小的資源數據包共享的資源利用率,結果如表2 所示。由表2可知,通過不同數量的資源數據包共享,系統1的資源利用率平均為85.75%,系統2的資源利用率平均為89.25%,而文中系統的資源利用率平均為97%,表明文中系統可以全面、完整地共享資源,通過系統中的各個模塊的協同工作,用戶可以便捷地搜索、預訂和使用各種資源,從而實現資源的最大化利用和共享。

表2 資源利用率對比結果
三維動畫造型資源自動共享系統是當前的研究熱點,針對當前三維動畫造型資源共享系統存在高時延,數據傳輸和資源搜索效率低等難,設計了基于區塊鏈技術的三維動畫造型資源共享系統。首先設計了三維動畫造型資源自動共享系統的總體框架,并設計系統資源處理器和資源輸入輸出技術,然后利用區塊鏈技術設計了系統的資源傳輸模塊,結合資源引入模塊、資源投放模塊和共享資源庫模塊構成資源共享系統,最后對三維動畫造型資源自動共享系統的性能進行了測試,結果表明,文中系統較好地解決了當前三維動畫造型資源自動共享系統存在的問題,大幅度提升了資源利用率,資源搜索效率也得到明顯改善。