王玉香,張喜紅
(亳州職業(yè)技術(shù)學(xué)院,安徽 亳州 236800)
中藥植物標(biāo)本在中醫(yī)文化傳承、教學(xué)科研活動中起到了舉足輕重的作用[1-2]。但傳統(tǒng)的中藥植物標(biāo)本因受標(biāo)本空間限制,只能直觀地展現(xiàn)采集地、時間、品名、鑒定人等基本信息,無法使學(xué)習(xí)與觀賞者較為全面地了解中藥材資源的相關(guān)信息。隨著物聯(lián)網(wǎng)、無線移動互聯(lián)網(wǎng)等技術(shù)的發(fā)展,智能手機(jī)終端已成為人們生活、學(xué)習(xí)、工作不可缺失的工具之一,而基于此的信息獲取方式也在發(fā)生變化,信息量的需求也與日俱增。所以,傳統(tǒng)的中藥植物標(biāo)本信息存儲及管理方式制約了其在文化傳承、實(shí)際教學(xué)科研活動中所起的作用。據(jù)此,利用數(shù)據(jù)庫整理歸檔中藥植物標(biāo)本的全面信息是解決該問題的有效途徑。
目前大多智能手機(jī)集成有NFC標(biāo)簽讀、寫硬件設(shè)備[3]。NFC以其成本低廉、信息交互方便簡單、信息存儲量相對較大的優(yōu)勢,在物流管理、食品溯源、消費(fèi)支付等方面得到了廣泛應(yīng)用[4-6]。如孫旭[4]將生鮮農(nóng)產(chǎn)品供應(yīng)鏈中各環(huán)節(jié)的信息存儲在NFC標(biāo)簽里,通過開發(fā)標(biāo)簽管理端、政府端、企業(yè)端、消費(fèi)者查詢端等不同的應(yīng)用端,實(shí)現(xiàn)了生鮮農(nóng)產(chǎn)品生產(chǎn)運(yùn)輸?shù)裙?yīng)鏈環(huán)節(jié)的監(jiān)控以及可追溯,對農(nóng)產(chǎn)品各環(huán)節(jié)質(zhì)量的保證提供了很好的控制方式。劉超超等[6]將個人基本信息存儲在NFC上,利用智能手機(jī)APP程序就可實(shí)現(xiàn)個人信息的管理和他人基本信息的獲取,加為好友后,還可標(biāo)注認(rèn)識的時間、地點(diǎn)、方式等,并可從數(shù)據(jù)庫獲取更多信息,克服了紙質(zhì)名片保存和查找不便的難題,為日常交際提供了便利。謝衛(wèi)全[7]將存有景區(qū)介紹信息的NFC標(biāo)簽粘貼于旅游景點(diǎn)介紹銘牌上,通過內(nèi)置NFC讀寫器的Android手機(jī)終端可以輕松查閱景區(qū)介紹,提高了旅游業(yè)的信息化水平與服務(wù)質(zhì)量,降低了景點(diǎn)銘牌信息更新與管理的難度。黃雙雙[8]將存有博物館內(nèi)部具體點(diǎn)位置信息、展覽品的相關(guān)信息等的NFC標(biāo)簽粘貼在博物館內(nèi)部的相應(yīng)位置,游客通過手機(jī)識讀標(biāo)簽選擇不同的界面,即可實(shí)現(xiàn)當(dāng)前位置信息的查詢、當(dāng)前位置館藏物品情況的查閱、想觀看的展品的位置及路線導(dǎo)航、展品的簡要和詳細(xì)信息的查閱等,提高了博物館工作的信息化、智能化水平,使參觀者對博物館中展品的查找更加便捷,獲取的展品信息更全面、高效,參觀體驗(yàn)更豐富、愉快?;诖?,在對相關(guān)研究分析的基礎(chǔ)上,本文以NFC標(biāo)簽為信息索引載體、基于Android手機(jī)終端、Web服務(wù)器、數(shù)據(jù)庫等技術(shù)構(gòu)建了中藥植物標(biāo)本信息管理系統(tǒng)。
中藥植物標(biāo)本管理系統(tǒng)的組成架構(gòu)如圖1所示,由粘貼于標(biāo)本上的NFC標(biāo)簽、安卓手機(jī)客戶端、Web服務(wù)器、后臺數(shù)據(jù)庫構(gòu)成。因NFC標(biāo)簽儲存容量有限,僅用于儲存標(biāo)本的一些基本信息與詳細(xì)信息的遠(yuǎn)程訪問URL地址,其中基本信息包括標(biāo)本的編號、采集地、入庫狀態(tài)、鑒定時間、鑒定專家等,詳細(xì)信息包括標(biāo)本的采集地生態(tài)環(huán)境、分布狀態(tài)、易變性狀等。Web服務(wù)器的功能是處理客戶端的查詢、增加標(biāo)本記錄請求,是后臺數(shù)據(jù)庫與客戶端信息交互的橋梁。
安卓手機(jī)客戶終端分為標(biāo)本管理員與普通用戶兩個版本,標(biāo)本管理員手機(jī)安裝標(biāo)本管理客戶版本,學(xué)生與參觀者安裝普通用戶版本。普通用戶客戶端僅具有NFC標(biāo)簽信息讀取和顯示功能;標(biāo)本管理員客戶端主要包括用戶注冊、登錄、增加記錄、標(biāo)本信息編輯、NFC標(biāo)簽讀寫、數(shù)據(jù)加載、上傳等功能(見圖2)。無論是管理員客戶端還是普通用戶客戶端,實(shí)現(xiàn)標(biāo)本信息的讀取、上傳、加載、編輯等功能的關(guān)鍵技術(shù)主要包括兩個方面:①NFC標(biāo)簽信息的寫入與讀取;②在服務(wù)器與客戶端兩者之間實(shí)現(xiàn)信息交互。
圖1 系統(tǒng)總體架構(gòu)框圖Fig.1 Frame diagram of system
圖2 客戶端組織結(jié)構(gòu)圖Fig.2 Structural diagram of clients
近年來,伴隨著Android移動終端設(shè)備的應(yīng)用,興起了兩大非接觸識別技術(shù),分別是NFC與二維碼技術(shù)[9],其中,NFC代表短距離的無線通信,是near field communication的簡稱,這是一種互聯(lián)技術(shù),采用非接觸識別的方式,由索尼、飛利浦公司合作研發(fā)而成。雖然其通信方式與傳統(tǒng)的RFID類似,但因其改進(jìn)的信號衰減方式比傳統(tǒng)的RFID具有更近的距離、更高的帶寬、更低的能耗。其與藍(lán)牙、紅外相比速度更快、且更加安全可靠。雖然二維碼技術(shù)也是非接觸識別技術(shù)的主流之一,但是NFC與二維碼識別技術(shù)相比,其儲存信息量相對較大,同時由于中藥植物標(biāo)本制作工作大多在野外進(jìn)行,工作人員無法攜帶二維碼圖案打印設(shè)備,由此可見,NFC識別技術(shù)適合于中藥植物標(biāo)本系統(tǒng)的應(yīng)用。
NFC標(biāo)簽根據(jù)容量和格式的不同劃分成4種,用數(shù)字1~4區(qū)別,本系統(tǒng)NFC標(biāo)簽僅用于儲存標(biāo)本的一些基本信息與詳細(xì)信息的遠(yuǎn)程訪問URL地址,總體需存的信息量不大,但為了后期更靈活地對標(biāo)本信息進(jìn)行完善,這里選擇容量最大的標(biāo)簽類型4,內(nèi)存32 KB,通信時的速度也很快,最高達(dá)424 kb∕s,最低也有106 kb∕s。
Android系統(tǒng)從2.3版本就實(shí)現(xiàn)了對NFC的支持,并提供了相應(yīng)的操作類[8,10]。Android系統(tǒng)首先要進(jìn)行相應(yīng)的初始化設(shè)置才能對NFC進(jìn)行讀寫,其步驟大致如下:①在AndroidManifest.xml里配置文件開啟NFC使用權(quán)限。②在界面類文件中通過NfcAdapter類聲明NFC適配器全局變量。③在OnCreate()的生命周期中利用方法NfcAdapter.getDefaultAdapter()來獲得系統(tǒng)默認(rèn)的適配器。④判斷手機(jī)當(dāng)前NFC功能是否啟動。⑤如果打開了NFC功能,并將Activity活動模式設(shè)置為單個任務(wù)的模式,也就是從后臺跳轉(zhuǎn)到當(dāng)前活動Activity時,則不會重新創(chuàng)建界面;將過濾器設(shè)置為只接受NfcAdapter.AC?TION_TAG_DISCOVERED活動。⑥再在onResume()的生命周期的啟動前臺來完成調(diào)度,進(jìn)而獲得NFC卡的標(biāo)簽值,由后臺發(fā)送Tag,有了這個Tag,對NFC卡的讀取、寫入等具體操作就可以進(jìn)行了。
標(biāo)本制作人員或標(biāo)本管理人員需要為標(biāo)本制作NFC標(biāo)簽,所以管理員客戶端要具有寫NFC功能,標(biāo)本記錄條添加界面由多個輸入標(biāo)本相關(guān)信息的可編輯文本框、寫入標(biāo)簽和上傳保存按鍵等控件構(gòu)成。當(dāng)“寫入標(biāo)簽”控件監(jiān)聽到單擊事件時,執(zhí)行寫入NFC標(biāo)簽的操作,在執(zhí)行寫入操作前,需事先通過getText()方法獲取界面可編輯文本框中標(biāo)本的相關(guān)信息,并通過方法NdefRecord()來構(gòu)造Ndef格式的記錄。寫入方法的關(guān)鍵代碼如下:
NFC標(biāo)簽的讀取操作與寫入操作類似,具體步驟是在獲得標(biāo)簽Tag值后,首先通過Ndef ndef=Ndef. get(tag)得到標(biāo)簽的Ndef,接著通過ndef.connect()來建立連接,隨后再由NdefMessage message=ndef. getNdefMessage()獲取這個連接通道的具體內(nèi)容,并通過以下方法,即byte[]data=message.toByteArray()與String str=new String(data,Charset.forName("UTF-8"))實(shí)現(xiàn)內(nèi)容信息的格式轉(zhuǎn)換,以備顯示或進(jìn)行其他操作,最后通過ndef.close()關(guān)閉此通道。
中藥植物標(biāo)本的制作工作大多在野外進(jìn)行,一般情況下不存在WiFi網(wǎng)絡(luò)覆蓋,導(dǎo)致Android終端與遠(yuǎn)程后臺數(shù)據(jù)庫的信息交互只能借助移動數(shù)據(jù)網(wǎng)絡(luò)進(jìn)行。因此,選用一種快速、簡潔的數(shù)據(jù)交互方式顯得格外重要。當(dāng)前移動終端與Web服務(wù)器后臺數(shù)據(jù)庫主流的信息交互方式分別為XML與JSON,JSON是XML技術(shù)的擴(kuò)展[11],與XML相比更易封裝與解析;其次其采用了完全獨(dú)立于語言的文本格式和“名稱∕值”對的集合與值的有序列表兩種結(jié)構(gòu),符合多種語言的習(xí)慣,方便編程人員的編寫與閱讀;再者主流的PHP超文本預(yù)處理器與Android已內(nèi)含相關(guān)的類[8],在一定程度上有助于簡化程序設(shè)計工作。所以,選用JSON技術(shù)來實(shí)現(xiàn)移動終端和Web服務(wù)器兩者之間信息的交互。
在中藥植物標(biāo)本管理系統(tǒng)中,管理員手機(jī)客戶端需要將標(biāo)本信息上傳到Web服務(wù)器后臺數(shù)據(jù)庫,有時還需要查詢下載后臺數(shù)據(jù)庫的標(biāo)本信息;普通用戶手機(jī)客戶端需依據(jù)NFC中的標(biāo)本編號訪問后臺服務(wù)器加載標(biāo)本的詳細(xì)信息。為了實(shí)現(xiàn)上述交互功能,后臺的服務(wù)器選用PHP+Apache+MySQL的方式實(shí)現(xiàn);Android訪問服務(wù)器的方法選用HttpClient+POST的請求方法;考慮到JSON格式文件的輕量級優(yōu)勢,前后臺之間的數(shù)據(jù)交互使用JSON格式。其實(shí)現(xiàn)的Android上的客戶端和遠(yuǎn)程后臺上的數(shù)據(jù)庫兩者間的交互流程是:Android上的客戶端首先通過方法DefaultHttpClient()創(chuàng)建了HttpClient對象;接著通過HttpPost(url)創(chuàng)建POST請求,其中URL為從NFC標(biāo)簽讀到的后臺服務(wù)器地址;隨后通過setEnti?ty(new UrlEncodedFormEntity(params,HTTP.UTF_8))設(shè)置請求參數(shù),并通過HttpResponse response=http?Client.execute(post)來向服務(wù)器發(fā)送相應(yīng)的請求;Web服務(wù)器在收到客戶端的請求后,按照請求命令檢索后臺數(shù)據(jù)庫并得到相應(yīng)的數(shù)據(jù),在PHP腳本中通過json_encode()函數(shù)將要返回的數(shù)據(jù)與響應(yīng)打包成JSON格式回傳到Android客戶端;Android客戶端在收到數(shù)據(jù)之后,使用相應(yīng)JSON格式解析類的方法對數(shù)據(jù)進(jìn)行解析,并顯示到相應(yīng)用戶界面。
中藥植物標(biāo)本管理系統(tǒng)客戶端的設(shè)計界面如圖3和圖4所示。圖3是普通用戶客戶端界面,普通用戶客戶端僅具有NFC標(biāo)簽信息讀取,標(biāo)本信息加載顯示功能界面。當(dāng)參觀者或?qū)W生需要了解標(biāo)本信息時,打開界面,開啟NFC適配器掃讀NFC標(biāo)簽,便可從遠(yuǎn)程服務(wù)器加載標(biāo)本信息到本地終端。圖4是標(biāo)本管理員客戶端界面,包括用戶注冊、登錄,增加記錄、標(biāo)本信息編輯、NFC標(biāo)簽讀寫、數(shù)據(jù)加載、上傳等功能界面,管理員可在此界面完成標(biāo)本信息的錄入、修改等操作。
圖3 普通用戶客戶端界面Fig.3 Interface of client for ordinary user
圖4 管理員客戶端界面Fig.4 Interface of client for administrator
為了降低中藥植物標(biāo)本制作、管理工作的難度,滿足工作人員野外作業(yè)的便攜要求,同時為了使學(xué)生或參觀者能夠通過手機(jī)終端快速查找標(biāo)本的詳細(xì)信息,基于NFC標(biāo)簽、Android客戶端、Apache+PHP+MySQL服務(wù)器建立了中藥植物標(biāo)本管理系統(tǒng),在前后臺信息交互中采用了輕量級的JSON格式,經(jīng)實(shí)際使用證實(shí)該系統(tǒng)有助于提高管理人員的工作效率,有助于學(xué)生與參觀者更加快捷、全面了解標(biāo)本的信息。同時,在此系統(tǒng)框架的基礎(chǔ)上,后期可為中藥植物標(biāo)本增加語音、視頻等多種媒體信息,使中藥植物標(biāo)本在教學(xué)科研及文化傳承中得到更好的應(yīng)用。
參考文獻(xiàn)(References)
[1] 王玉香,張喜紅.基于圖像處理技術(shù)的西洋參外形特征參數(shù)測定[J].淮北師范大學(xué)學(xué)報(自然科學(xué)版),2017,38(3):49-52.
[2] 張喜紅.基于BP神經(jīng)網(wǎng)絡(luò)的西洋參等級分類方法研究[J].云南民族大學(xué)學(xué)報(自然科學(xué)版),2017,26(4):322-326.
[3] 陳靜,趙云雁,張志鴻,等.基于NFC技術(shù)的智能海報安全實(shí)現(xiàn)[J].鄭州大學(xué)學(xué)報(工學(xué)版),2013,34(3):98-101.
[4] 孫旭.基于NFC技術(shù)的生鮮農(nóng)產(chǎn)品供應(yīng)鏈可追溯系統(tǒng)設(shè)計及應(yīng)用研究[D].長春:吉林大學(xué),2016.
[5] 周書亦.基于NFC技術(shù)移動支付系統(tǒng)的虛擬銀行發(fā)展模式研究:以吉林九臺農(nóng)村商業(yè)銀行為例[D].長春:吉林大學(xué),2016.
[6] 劉超超,王彬.基于NFC技術(shù)的電子名片管理系統(tǒng)的設(shè)計[J].物聯(lián)網(wǎng)技術(shù),2016,6(11):39-40,43.
[7] 謝衛(wèi)全.基于Android的NFC手機(jī)景點(diǎn)介紹系統(tǒng)[D].廣州:華南理工大學(xué),2013:18-19.
[8] 黃雙雙.基于NFC的博物館智能導(dǎo)航系統(tǒng)設(shè)計[J].物聯(lián)網(wǎng)技術(shù),2015(11):60-62.
[9] 劉小丹,黃翠翠.中心區(qū)域可視二維條碼的設(shè)計及編碼方法[J].計算機(jī)工程與設(shè)計,2012,33(1):392-395.
[10]趙特木.基于Android平臺的NFC信息管理系統(tǒng)的設(shè)計與實(shí)現(xiàn)[D].大連:大連理工大學(xué),2013.
[11]龔成瑩,邢敬宏,胡銀保.基于JSON的Android移動終端與PHP及MySQL數(shù)據(jù)通信[J].工業(yè)儀表與自動化裝置,2013(1):63-65,69.