时间:2024-05-22
莫小香 韦健 苏秀刚
摘要 种质资源是蝴蝶兰育种和产业化生产的重要物质基础。为了解决传统蝴蝶兰种质资源管理存在的检索困难、数据丢失、缺乏统计分析等问题,并实现种质资源数据共享,构建了蝴蝶兰种质资源数据信息库,采用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方法对表单的提交过程进行拦截。客户端校验则减少数据回传服务端的时间,提升用户操作体验,当数据提交到服务端后,会在服务端中再次对数据进行校验。
(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.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!