system: [SYSTEM]

user: 2. 系统的设计与实现 2.1. 系统设计目标 为填补鸟类管理与鸟情数据分析功能在全国范围内的技术空白，笔者以鸟类信息管理为主线，以鸟情分析为着力点，搭建了该系统。该系统以鸟类专家为技术支撑 [ 3 ] ，以各类鸟爱好者为大众基础，对鸟类信息资源进行整合，为机场提供鸟情方面的有力信息支持。 2.2. 系统数据库 机场鸟撞预警防范系统的数据来源主要有两种。 1) 通过该系统开放接口获取非标准化真实数据。该系统中具有在线百度地图，可以实时获取鸟类地理位置信息。 2) 鸟类活动的文献资料。该系统已将《山东鸟类分布名录》录入到数据库中。因此数据库中的信息都是真实有效的。如图1所示。 图1. 鸟情信息 2.3. 技术创新 2.3.1. NDolls数据框架 NDolls数据框架是该系统的特色。该框架是自行研制发明的，很好的解决了往常连接数据库存在的不稳定，不安全等问题。 开发者在进行系统项目研发的过程中，数据库是非要重要的方面。系统和数据库的连接经常出错。数据库连接出错，那么数据的安全就存在问题。目前常用的是三层框架，即Model、View、Controller，这是软件设计中常用的标准。该三层框架在开发过程中，诸多问题。相互之间的依赖程度很高，如果某一层框架发生变化就会导致其它框架受到重大的影响。可谓是牵一发而动全身。这种情况下就加大了开发者的工作量，增加了工作的繁琐度，降低了工作效率，带来了不必要的麻烦，造成的是无用功 [ 4 ] [ 5 ] 。该三层框架针对表与表之间的关联处理的不够妥当，支持程度不高，一旦表的内容有所改变，一些原本已经完成的工作就需要重新做。 针对上述问题，提出了NDolls框架。NDolls数据库框架可以解决目前数据库链接方面的弊端。NDolls框架封装了底层数据库，这样就减少了直接操作底层数据库的麻烦。与此同时，对数据库进行操作时也一定程度上对底层数据库结构的依赖度降低。该框架并不是复杂难用而是简单可靠，它只是对多数据的支持通过简单的配置参数来实现。这样就拓展了NDolls框架的应用范围，不只是仅仅局限于一个数据库，而是多个，对NDolls数据库框架的推广也提供了极大的方便。目前，该NDolls数据库框架支持SQL Server数据库和SQLite数据库。随着该框架的使用和发展，在将来可以支持更多种类的数据库。NDolls数据库框架也不再局限于。NET平台。在未来的发展中可以发明更多的数据库框架，例如实现java语言与数据库的可靠连接，以此来减少程序开发人员的工作量。 目前研发的NDolls数据库框架需要在特定的环境中才能使用。该框架需要在.Net Framework4.0及以上版本中使用。在项目中需要添加引用NDoll.Core.dll及NDoll.Data.dll。 2.3.2. 数据库配置 开发人员可以根据具体的情况选择“代码方式”或者“配置文件方式”中的一种，来实现与数据库的链接管理。目前，NDolls框架中只有这两种实现方式。 SQL Server和SQ Lite数据库都可以采用NDolls数据库框架。数据库类型的配置通过“DBType”实现，数据库连接的配置通过“Connection String”实现。DBtype是数据库类型，包括SQ Lite和SQL Server数据库。Connection String代表链接字符串。 配置文件配置方式中数据库连接的实现，要求appSettings中增加连接字符串项Connection String。主项目的配置文件通过该解决方案来实现。配置文件配置方式实现代码如图2所示。 代码配置方式中数据库连接的实现需要加入代码进行配置。代码添加在没有系统调用数据库操作的位置即可。代码的配置方式实现如图3所示。 2.3.3. NDolls常用功能 对数据库的操作不是完成几个配置就能实现操作的，在NDolls中对数据库操作的支持是通过建立容器来实现的。Repository功能容器的创建可以实现操作数据库的目的。因此，只有先建立Repository功能容器，才可以操作数据库。该功能容器创建后，我们就可以利用容器的各种方法来实现数据库的增加、删除、修改、查询等常用的功能。容器的创建示例如图4所示。 在系统中手工录入数据，将这些数据新增到数据库中，需要调用Add方法，该方法是在Repository容器中写好的。底层的数据库通过NDolls自动实现插入(INSERT)操作。新增操作如图5所示。 系统中的数据进行修改时，这个时候就要调用Update方法，该方法已经在Repository容器中写好。底层数据库的修改操作在调用方法后可以通过NDolls自动实现。修改的操作如图6所示。 录入到数据库中数据需要保存在数据库中。Add Or Update方法的调用能够实现数据的保存。该方法是封装在Repository容器中的。底层数据库的保存操作通过该NDolls自动实现。主键给NDolls提供了判断的标准。该数据库框架根据主键自动判断数据是修改还是增加的操作。保存操作如图7所示。 图2. 配置文件配置方式 图3. 代码配置方式 图4. 容器创建示例 图5. 容器创建示例 图6. 底层数据库修改 数据库的查询操作由查询项、条件项、排序项等组成。查询项方面，数据库的查询是由排序和条件来决定的。NDolls抽象数据库查询过程中的因素为查询项。由于使用情况的不同，查询项又分为四种：Condition Item类(条件项)、Order Item类(排序项)、Conditon And Group (与关系条件组)、Conditon Or Group (或关系条件组)。如图8所示。 如果查询条件单一简单，没有复杂的组合条件，就使用条件项即可。条件项示例如图9所示。 条件项现在支持的条件查询有精确查询、模糊查询、左侧模糊查询、右侧模糊查询等。所有的查询如图10所示。 查询的排序方式通过排序项来定义查询。可以按升序查询也可以按降序进行查询。排序项示例如图11所示。 与关系条件组(Condition And Group)指的是多种条件的组合。与关系条件组示例如图12所示。 或关系条件组(Condition Or Group)指的是随机的条件的组合并非是必须所有条件的组合。或关系条 图7. 底层数据库保存 图8. 查询项的组成 图9. 条件项示例 件组示例(User Name包含hello或包含kitty)如图13所示。 系统开发完成后进行查询时可以按照单个主键查询、多个主键组合查询、条件项查询。 按主键查询(单主键)示例如图14所示。 按主键查询(联合主键)示例如图15所示。 按条件项查询示例如图16所示。 2.4. 系统组成 系统包括管理前台和管理后台两部分。 2.4.1. 系统前台 系统前台主要包括：用户中心模块、鸟类查询模块、系统帮助模块最新动态。游客不用登陆可查询简单的鸟类信息。普通用户和管理员必须先注册，然后登陆。登陆后可以修改自己的注册信息，上传自己的拍客信息等。对于鸟类查询模块用户可以按照季节，按照名称，按照所处地域位置，按照鸟类颜色进行筛选查找。在按照名称查找时对于不常见的字我们可以采用拼音查找。系统帮助模块可以帮助用户 图10. 条件查询示例 图11. 排序项示例 图12. 关系条件组示例 图13. 或关系条件组示例 尽快了解系统的一些基本操作方法和系统的功能 [ 6 ] [ 7 ] 。最新动态中包含最近的国内外研究成果，管理员推荐的热门论文及话题，用户可以就自己感兴趣的话题参与话题讨论。如图17所示。 2.4.2. 系统后台 管理后台是所有管理员管理系统数据针对系统运营的工具。目前该系统的后台采用.NET框架，共分 图14. 主键查询示例 图15. 联合主键查询示例 图16. 条件项查询示例 为鸟类信息、日常运营、会员管理、系统设置、帮助五大功能模块，实现系统所有信息的管理。如图18所示。 1) 鸟类信息 鸟类知识库中已经将鸟类的所有信息导入到数据库。后台管理员可以通过该平台对鸟类的静态信息，例如鸟类的颜色、形状大小、分布区域、出现的季节、有无危害性等进行添加。该平台也可以对鸟类的动态信息进行添加 [ 8 ] ，在该模块中加载了地图，可以从地图上选择经纬度，从而确定鸟类的分布地点，这样更加准确的保存了鸟类的动态信息。该功能都已经实现。如图19所示。 2) 日常运营 子模块包括文章管理、日志查询。其中的文章根据具体需要实现了树形分类管理，用户登录后可以实现所有文章的“增删改查导”管理；日志查询，主要是结合前台用户登录后的具体操作信息进行的记录，后台也具备了“增删改查导”的功能。如图20所示。 3) 会员管理 子模块分为普通用户、专家用户、管理员。 其中普通用户是各类分支用户的基础，专家用户是在普通用户基础上的“拓展”，后台具备了这三类用户的“增删改查导”功能。如图21所示。 4) 系统设置 包括字典库管理、国家地点管理、文章类别管理、鸟类类型管理、用户角色管理、用户权限管理。 图17. 加载地图页面 图18. 系统功能结构图 该功能仅对个别系统管理员开放，其中的字典库为系统内所有分类(1级分类)提供技术支持；国家地点管理将全国行政范围以“省市区街居”为层次进行划分和管理 [ 9 ] ；文章类别管理是根据鸟类文章的具体需要实现的树形管理；鸟类类型管理是根据鸟的科目属实现的分层管理；用户角色管理是针对各类管理员登陆后台后，各自具备的操作权限而设计的，每种角色具备与众不同的权限，通过管理员的Role记录各自的角色。如图22所示。 图19. 加载地图页面 图20. 日常运营 2.5. 系统实现 本系统采用基于.NET系统开发，使用C#编程语言，初期采用SQL Server数据库(后期视情况切换到Oracle数据库)，采取基于NDolls的多层体系架构实现。地图展示方面，使用互联网开放的百度地图API(需联网支持)实现各种效果 [ 10 ] 。 图21. 会员管理 图22. 系统设置 2.6. 鸟情数据统计分析 鸟情研究在社会生活中发挥着越来越重要的作用。目前，通过该系统采集的数据形式各样，来源广泛。在本文中抽出机场鸟情方面的数据，进行分析。为鸟撞防范提供真实的理论基础。 对采集到的数据按照天气的不同进行统计分析。如果天气寒冷，春天的时候，候鸟到北方来的时间会推迟，秋天的季节，鸟类会提前飞往南方。天气的变化对鸟类的影响极大，在某种程度上改变了鸟类的栖息地。夏天和秋天的季节，如果有暴风雨的天气来临，鸟类会因为捕捉机场周围田地上的昆虫而聚集到一起。大雨过后，空气清新，一些蚯蚓、蜗牛等会到地面上，这些动物吸引了大批鸟类来觅食。下雪过后，清扫机场，鸟类常常选择这里的空地为活动场所。这就加大了鸟撞事故的发生。天气的变化影响了航空路线 [ 11 ] ，也影响了鸟类的活动规律，加大了鸟撞防范的难度。 该系统建立了鸟情数据库，既有文献资料也有拍客、机场人员上传的现实数据。系统中观察记录的内容包括鸟类名称、发现地点、活动时间、出现季节、外观、危险性、活动地址。系统内部有统计分析机制，如果使用人员想要统计出在某时间段出现的鸟类 [ 12 ] ，则可以采用查询的方式得到。例如：统计分析出2014.7.22~2016.1.7活动时间段的鸟类名称，以及它们的活动地点。统计出该信息之后，则在机场旁边的这些地点进行重点驱赶对应的鸟类。在这种情况下，相关鸟类就会减少了鸟撞事故的发生。统计分析如图23所示。 通过鸟情数据的统计分析，机场使用人员对鸟类的活动规律才能进行初步的掌握。机场使用人员掌握了这些科学的数据，就会与鸟撞规律进行结合 [ 13 ] ，主动使用正确的驱鸟措施，极大的减少了鸟撞的风险。该系统对机场使用人员录入的数据进行了统计分析，数据具有非常大的现实意义。对鸟情数据的分析，可以得出鸟类的分布规律，季节变迁，数量变化，从而有针对性地进行驱鸟，胜算更大。该系统的设计与实现为人工智能驱鸟的研究提供了科学依据。 该系统的使用人员对机场的几种鸟一天里的活动时间、出现的数量进行了记录。统计分析结果可以通过EXCEL表格导出。如图24所示。 对采集到的鸟情数据按照鸟类的分布地点进行统计分析。可以得出机场周边地区固定的鸟类。机场驱鸟人员可以根据该科学统计数据 [ 14 ] ，找到针对这几种鸟类的防范措施。很大程度上减少了鸟撞事故的发生。机场的周围有很多农田、森林、河流湖泊等。鸟类在这一带地区出现的频率较高。随着气候的变化，季节的变迁，鸟类活动也会有明显的周期变化 [ 15 ] 。该系统可以针对每种鸟的季节性变化进行统计分 图23. 鸟类活动时间段统计分析界面 图24. 某机场几种鸟的日期活动曲线 析。通过查询的功能可以统计分析出某天鸟类的活动，数量的多少。从而根据这些数据有效地进行驱鸟。