莫小香 韋健 蘇秀剛



摘要 種質資源是蝴蝶蘭育種和產業化生產的重要物質基礎。為了解決傳統蝴蝶蘭種質資源管理存在的檢索困難、數據丟失、缺乏統計分析等問題,并實現種質資源數據共享,構建了蝴蝶蘭種質資源數據信息庫,采用MySQL、HTML5、控件動態表單等關鍵技術,設計了展示層、接口層、控制層、業務層、模型層和數據層前后端分離的體系架構,實現了蝴蝶蘭種質資源數據科學存儲、高效管理、開放共享,為區內外科研機構在蝴蝶蘭品種引進、新品種選育及種質資源管理方面提供案例參考。
關鍵詞 蝴蝶蘭;種質資源;數據信息庫;動態表單;前后端分離
中圖分類號 S-058 ?文獻標識碼 A
文章編號 0517-6611(2020)10-0201-04
doi:10.3969/j.issn.0517-6611.2020.10.054
Abstract Germplasm resources are the important material basis of Phalaenopsis breeding and industrialization production. In order to solve the traditional Phalaenopsis germplasm resources management problem of difficult information retrieval, data loss, lack of statistical analysis, and realize germplasm resource data sharing, the ?Phalaenopsis germplasm resources information database was established. With the key technologies of MySQL, HTML5, controls dynamic form, we had designed the architecture of display layer, interface layer, control layer, business layer, model layer and data layer of frontendbackend separation, realized scientific storage, efficient management and open sharing of Phalaenopsis germplasm resources data. It provided case reference for the scientific research institutions in the aspects of Phalaenopsis variety introduction, new variety breeding and germplasm resources management.
Key words Phalaenopsis;Germplasm resource;Information database;Dynamic form;Frontendbackend separation
??
蝴蝶蘭(Phalaenopsis)是蘭科蝴蝶蘭屬常綠草本植物花卉,是全球最具影響力的觀賞花卉之一,被譽為“蘭中皇后”,在全球熱帶花卉貿易中,蘭花銷量位居榜首[1-2]。目前我國多地實現蝴蝶蘭的規模化、產業化、商品化生產,且國內外對蝴蝶蘭的需求量不斷增加,由此推動國內外在蝴蝶蘭種質資源的收集、保護、開發等研究[3-4]。蝴蝶蘭種源很多來源國外,國內自主培育的新品種有待提升,且在種質資源收集和保護方面落后于國外[5]。因此,急需收集蝴蝶蘭種質資源,建立蝴蝶蘭種質資源數據信息庫,為種質資源保存和共享利用提供新途徑,為蝴蝶蘭產業發展提供源動力[6-8]。近幾年,國內花卉類數據信息庫的開發迅速發展[9-14],但鮮見有蝴蝶蘭種質資源數據信息庫報道。針對目前科技人員在數據存儲中存在的檢索困難、數據丟失、非標準記錄、缺乏統計分析等問題,當前種質資源數據的保存、管理方式的滯后性,新的技術手段應用到種質資源的存儲管理上,而運用信息技術構建數據信息庫是有效優化蝴蝶蘭種質資源管理的有效途徑。動態表單技術能提高Web表單的開發效率,減少數據信息庫開發與維護的工作量,滿足不同終端用戶對表單的個性化需求[15],并大量應用在信息管理系統中[16-17]。因此,筆者構建了基于動態表單的蝴蝶蘭種質資源數據信息庫,錄入了收集到的200多個蝴蝶蘭品種(系)生物學性狀數據、農藝學性狀數據、細胞學數據、雜交育種性狀數據、圖片影像等信息,實現了集訪問查詢、交流互動、開放共享等多功能于一體,提升了蝴蝶蘭種質資源信息的存儲、更新、管理,及時反映當前蝴蝶蘭種質資源現狀,為科技人員在種質資源管理提供信息化管理手段,為蝴蝶蘭種質資源保護、種質創新和種質管理方面提供案例參考。
1 數據信息庫設計
1.1 總體設計
在蝴蝶蘭種質資源的收集與培育科研工作中,通常根據《植物新品種特異性、一致性和穩定性測試指南 蝴蝶蘭》進行數據采集,但由于科研人員的需求不同產生標準之外的指標數據,針對這些數據重新開發管理系統會導致開發周期變長、維護內容增多。而傳統的3層架構數據信息庫表單和流程都是由軟件開發人員在開發階段定制,由此導致修改困難、程序復用性差、可擴展性差等問題,不能滿足用戶的個性化需求[18-19]。因此,采用動態表單的設計模式進行數據信息庫設計,可以減少開發與維護的工作量,普通科研人員也能對表單和流程進行修改,提高數據信息庫的擴展性。
數據信息庫總體設計分為數據信息庫主體與共享模塊兩大部分,主體采用Browser/Server結構,統一使用網頁瀏覽器進行訪問。信息庫基于.NET Framework 4框架下的C#語言,使用面向對象的方法開發,使用MVC模式進行結構設計。數據信息庫軟件使用Microsoft SQL Server 2012。
蝴蝶蘭種質資源數據信息庫采用前后端分離的模式進行設計,客戶端程序與服務端程序不存在交叉生成展示性的代碼,客戶端使用AJAX、浮動框架等技術手段,對服務端的Restful API進行請求調用,瀏覽器再進行網頁的渲染。服務端代碼只針對業務、流程與數據進行相應的處理,客戶端代碼只進行網頁的展示與渲染,真正做到前后端分離(圖1)。
1.2 數據信息庫結構設計?
數據信息庫采用MVC設計模式,分為展示層、接口層、控制層、業務層、模型層、數據層等6層(圖2)。
(1)展示層。存放后臺管理與展示網站兩大部分的靜態資源,如JavaScript、CSS、HTML模板、圖片等文件。
(2)接口層。分為內部接口與外部接口:①內部接口用于系統內各個模塊的通信,不設置訪問限制,不允許跨域訪問;②外部接口用于共享數據的讀取,外部系統的接入,嚴格限制接口的接入與訪問次數,接口主要使用.NET下的WebAPI進行開發。
(3)控制層。負責功能模塊間的流程控制,不涉及具體的業務處理,針對業務流程,編寫專用控制器進行控制。
(4)業務層。包含有系統中數據信息庫結構管理、數據管理、表單緩存管理、表單模板管理等核心功能模塊,負責數據處理與表單生成。
(5)模型層。以實體類組成,描述各個對象的具體屬性,以及對象間的關聯關系,是數據的主要載體。
(6)數據層。負責數據信息庫的直接訪問與具體操作,采用輕量級ORM框架Dapper.NET與傳統ADO.NET結合進行開發。
1.3 數據信息庫模塊與功能設計
1.3.1 數據信息庫管理模塊。
數據信息庫管理模塊由數據信息庫管理、數據信息庫表管理、字段管理、數據管理4個管理子模塊與一個結構安全保障模塊共同組成,是表單生成環節的重要支撐。
(1)數據信息庫管理。將相同或類似的數據信息庫表進行歸類,便于用戶檢索。
(2)數據信息庫表管理。負責數據信息庫表、主鍵、索引的建立,整合數據信息庫表所必須執行的關鍵操作。
(3)字段管理。負責對字段相關屬性進行配置,如字段名、字段類型、對應控件類型、是否為空、輸入值長度等。字段的各項配置信息是表單動態生成與數據校驗的主要依據。
(4)數據管理。負責各個數據信息庫表中數據的管理,包括有查詢、添加、編輯、刪除、上傳、導入等功能,是數據信息庫正常使用的保障。
(5)結構安全。為保證數據信息庫表的結構安全,在用戶進入修改數據信息庫表和字段的頁面時,系統會自動鎖定該數據信息庫,在數據信息庫被鎖定后,其他用戶將不能訪問修改頁面。當用戶離開頁面后,系統將解除數據信息庫鎖定狀態。
1.3.2 表單控件管理模塊。表單控件管理模塊分為控件樣式管理與控件值管理2個部分。
(1)控件樣式管理。將控件模板的HTML代碼存儲在XML文件中,配合使用正則表達式、替換占位符等手段,通過表單生成模塊對HTML標簽屬性進行動態賦值,最后生成表單控件。
(2)控件值管理。以鍵值對的形式儲存用于填充控件選項的數據,如:是與1,否與0,2個鍵值作為最簡單的判斷選項。
1.3.3 表單生成模塊。
表單生成模塊是數據信息庫核心模塊之一,以數據信息庫管理模塊作為數據支撐,以控件管理、控件值管理作為表現支撐(圖3)。
(1)讀取字段信息。從數據信息庫中讀取字段信息,在客戶端瀏覽器中使用HTML5中的新特性Session Storage,以JSON格式的數據進行存儲,作為生成表單與數據校驗的基礎依據。
(2)生成表單。在生成表單時,以字段屬性作為生成依據,采用分次生成加載模式。加載過程中,使用AJAX異步加載控件,完成控件的加載與渲染后,再次使用AJAX進行數據的異步加載。此外,表單生成模塊另一項重要的功能是生成數據的校驗規則。生成時將校驗規則以JSON格式記錄在HTML標簽的自定義屬性“datarole”中,以便校驗環節中調用。
? (3)數據校驗。在數據保存前,在客戶端與服務端分別進行2次校驗,校驗規則以字段屬性作為依據,以確保數據的準確。在客戶端中,用戶進行數據提交前,使用JQuery編寫的校驗模塊進行數據校驗。如數據無法通過校驗,則使用preventDefault方法對表單的提交過程進行攔截??蛻舳诵r瀯t減少數據回傳服務端的時間,提升用戶操作體驗,當數據提交到服務端后,會在服務端中再次對數據進行校驗。
(4)數據保存。采用分次保存模式,在單個表單進行第一次數據提交并保存成功后,系統自動生成該條數據的索引ID,并緩存在客戶端中。此后的數據提交都攜帶此ID,分次對該條數據進行更新。
1.4 網站與公共查詢
為滿足用戶的查詢需求,數據信息庫配套開發了展示網站,其中包括公共查詢頁面,可提供部分非涉密的信息查詢。網站使用靜態模板生成動態頁面技術,開發有信息發布、圖片發布、視頻發布等功能。
公共查詢功能使用數據信息庫的內部接口實現,通過字段定義的字段名、字段類型、默認值等參數來進行查詢頁面的生成,并且限制單IP每分鐘的查詢次數,避免不必要的訪問占用服務器資源。
1.5 共享數據模塊
(1)共享數據接口設計。采用Web API進行開發,API嚴格遵循Restful,接口采用接入驗證的方式,在調用共享接口前,需要在數據信息庫系統中進行登記,登記后生成一對接入的appid與token,在調用數據接口時,必須傳入appid與token才能接收到數據。接口設計每日調用次數限制可在接口控制中修改。
(2)使用Nginx對接口進行分流。為均衡數據信息庫主體的查詢需求與共享接口的調用需求,數據信息庫使用了Nginx進行負載均衡的設置,數據信息庫主體與共享接口分別分配一個端口,使用Nginx進行訪問的調配,最后統一以80端口進行訪問。
(3)解決跨域問題。采用JSONP、CORS、Nginx反向代理等技術手段解決跨域訪問受限的問題。
1.6 數據信息庫完整性的保證
數據信息庫使用Microsoft SQL Server數據庫代理的自動備份功能,每周進行一次差異備份,每月進行一次完整備份,保存至本地服務器硬盤上。在每次備份后,將備份文件通過FTP軟件,自行上傳至異地的FTP服務器上。在物理結構上保證數據信息庫的完整。
1.7 附件的管理 附件的管理與數據信息庫信息管理進行嚴格的區分,附件使用專用的附件庫記錄,附件庫是獨立開發的模塊。數據信息庫使用動態表單中自動生成的附件上傳控件對附件進行操作,但附件信息最終記錄在附件庫中,數據信息庫僅使用引用的方式對附件進行調用。
2 數據信息庫運行效果
2.1 數據信息庫總體流程
蝴蝶蘭種質資源數據信息庫按功能劃分可分為數據信息庫管理、數據信息庫信息管理、網站管理等3個功能分區,用戶通過制定數據信息庫結構后,對數據信息庫進行數據的錄入,并管理網站上的查詢權限。
2.2 數據信息庫管理 負責數據信息庫結構、字段信息等內容的管理。字段的數據類型可使用Int、Varchar、Decimal、Text,提供單行文本框、多行文本框、單選按鈕、多選按鈕、時間選擇框、下拉菜單以及文件上傳框7類基礎控件。支持不同數據信息庫間的字段相互關聯引用,作為控件選項值。數據庫管理界面見圖4。
2.3 數據信息庫信息管理?
數據信息庫信息管理功能面向數據維護管理人員,提供數據信息庫數據的查詢、添加、刪除、修改。用戶在增加大量數據時,通過導入功能進行作,數據信息庫可自動生成并向用戶提供與數據信息庫最新結構相同導入模板,用戶通過模板進行數據的導入。
2.4 網站管理 網站管理功能包含有欄目管理與內容管理兩個部分,負責網站欄目內容與樣式的制定、信息內容的編輯與發布。信息內容以文章類型與圖集類型為主,可發布文字、圖片、視頻、音頻等內容。
3 結論
(1)蝴蝶蘭種質資源數據信息庫開發完成后,錄入了廣西壯族自治區農業科學院花卉研究所收集保存的200多個蝴蝶蘭品種(系)信息,由基本信息、DUS信息、生物學性狀、F1花特征、栽培數據、生理數據及農業植物新品種保護信息等7類數據模塊組成,共計160項性狀描述,通過信息化管理手段,減輕了科研人員的數據管理工作量,提高了科研效率,特別對于育種的延續性研究,提供了歷史數據的支撐。
(2)蝴蝶蘭種質資源數據信息庫在其試運行過程中,發現還有進一步優化的空間,可繼續優化訪問端口,使其更好地服務用戶;完善數據信息庫功能,優化數據信息庫結構,提高數據信息庫的運行速度。
(3)建立蝴蝶蘭種質資源數據信息庫是為了將已有的蝴蝶蘭種質資源的數據整理歸類入庫,實現種質資源數據的科學存儲、簡易查詢及高效管理,并發布上網最終實現資源開放共享,避免科研人員的重復研究,從而促進現有種質資源的有效利用。在數據信息庫初步建成后,后期更重要的工作是數據信息庫的持續建設、更新與維護工作。
(4)實現蝴蝶蘭種質資源的合理共享和數據的適度開放性,提高種質資源數據的利用,是當前急需解決的關鍵問題。一是加強現有蝴蝶蘭種質資源的利用,進行蝴蝶蘭種質創新和新品種選育,實現蝴蝶蘭商品化生產,創造更大的效益;二是不斷豐富種質資源庫和種質資源數據信息庫,更好地為新品種引進、選育及基礎研究提供服務,從而形成科研促進生產、生產保障科研的良性循環。未來將繼續挖掘大量蝴蝶蘭優秀的種質資源,并開發大數據,提取有效信息以實現種質資源信息的增值服務,為蝴蝶蘭種質資源高效利用提供交流共享和技術平臺。
參考文獻
[1]許申平,張騰飛,廖飛雄,等.蝴蝶蘭種質資源與育種研究[J].中國園藝文摘,2010(5):27-30.
[2] 武愛龍.蝴蝶蘭仍有很大的市場發展空間——從國內外產業發展現狀看我國蝴蝶蘭產業發展[J].中國花卉園藝,2014(7):30-32.
[3] 王錫巧,彭寶富,廖慶華,等.蝴蝶蘭種質資源圃建設綜述[J].現代園藝,2019(3):63-66.
[4] 陳和明,呂復兵,李佐,等.基于表型性狀的蝴蝶蘭種質資源分類[J].中國園藝文摘,2017(2):1-7,26.
[5] 朱根發.蝴蝶蘭種植資源及雜交育種進展[J].廣東農業科學,2015(5):31-38.
[6] 潘靜嫻,宋韻瓊,張朝陽,等.園藝作物種質資源管理及數據庫建設研究綜述[J].上海師范大學學報(自然科學版),2017,46(5):762-768.
[7] 周偉偉,王新悅.種質資源是花卉產業發展的源動力[J].中國花卉園藝,2016(23):10-15.
[8] 楊文娟,高媛,魏鑫,等.芝麻種質資源信息數據庫的設計與構建[J].中國油料作物學報,2018,40(1):57-63.
[9] 易懋升,黎揚輝,張志勝,等.紅掌種質資源數據庫的建立[J].廣東農業科學,2005(1):8-11.
[10] 段旭良,馮秀蘭,趙蕾,等.林木和花卉種質資源信息共享平臺的設計與開發[J].北京林業大學學報,2007,29(5):147-152.
[11] 陳菁玨,吳昀,鄭日如,等.浙江省宿根花卉種質資源數據庫開發研制[C]//穆鼎,李思鋒.中國球根花卉研究進展2011.西安:陜西科學技術出版社,2011:70-75.
[12] 陳佳瀛,潘以峰,李玉龍,等.上海多功能花卉種質資源數據庫的建立與應用前景[J].上海師范大學學報(自然科學版),2015,44(6):632-637.
[13]王冉冉,張克,趙祥云,等.百合種質資源數據庫信息查詢系統的研究與構建[J].農業科技與信息(現代園林),2015(4):314-316.
[14] 李佐,陳和明,肖文芳,等.利用表型數據構建蝴蝶蘭初級核心種質[J].園藝學報,2015,42(S1):2780.
[15] 喻瑩瑩,李新,陳遠平.前后端分離的終端自適應動態表單設計[J].計算機系統應用,2018,27(4):70-75.
[16] 吳昶成,談華宇,邱小平.科研管理系統中動態表單技術的應用與實現[J].現代計算機(專業版),2015(10):78-80.
[17] 歐陽廣津.基于動態表單的綜合信息服務管理平臺的設計與實現[D].貴陽:貴州大學,2018.
[18] 王瑞霞,隋宏偉,劉弘.基于XML的表單設計器構件的設計與實現[J].計算機應用研究,2007,24(7):183-185.
[19] 張佳強,王士同.信息管理系統動態表單技術的研究與實現[J].計算機應用與軟件,2010,27(8):29-32.