煤矿安全监控系统联网软件的架构设计研究.doc_第1页
煤矿安全监控系统联网软件的架构设计研究.doc_第2页
煤矿安全监控系统联网软件的架构设计研究.doc_第3页
煤矿安全监控系统联网软件的架构设计研究.doc_第4页
煤矿安全监控系统联网软件的架构设计研究.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

煤矿安全监控系统联网软件的架构设计研究姚晓捷,白尚旺,党伟超,常浩(太原科技大学,计算机科学与技术学院 山西太原 030024)摘要:软件架构是降低成本,改进质量,按时交付产品和按需交付产品的关键因素。本文通过对软件分层架构技术的介绍及分析,结合煤矿安全监控系统联网软件的实际需求,选择了适合该系统的三层架构方案,并详细介绍了表示层、业务逻辑层、数据访问层在系统中的设计和实现过程。 关键词:三层架构;煤矿安全监控系统;ExtJs框架; Research of Coal Mine Safety Monitoring System Internet Software ArchitectureYao Xiaojie, Bai Shangwang,Dang Weichao,Chang Hao(College of Computer Science and Technology, Taiyuan University of Science and Technology, Taiyuan 030024)Abstract : Software architecture is the key to reduce costs, to improve quality, and to hand over the products on time and on-demand. Based on the description and analysis of software layered architecture technology, combined with the demand of coal mine safety monitoring system networking software,this paper select three-tier architecture as software architecture and introduce the design and implementation process of presentation layer, business logic layer , data access layer. Keywords: Three-tier Architecture; ExtJs; Coal Mine Safety Monitoring System1引言煤矿是国家重要的基础能源和有限的不可再生的战略性资源,是一个国家经济发展的主要动力。但是,煤矿事故的频繁发生,为经济发展和社会稳定造成了巨大威胁,安全生产问题已经成为社会各界和各级煤矿监管部门普遍关注的焦点。随着信息技术在煤矿工业中的不断发展和应用,煤矿安全监控系统对于煤矿安全生产越来越突显其重要作用1。煤矿安全监控系统联网软件是在集团公司、省市县等范围内建立安全监控网络,将煤矿安全生产过程中的实时数据汇总传输至各级煤矿安全监控中心,使各级煤矿安全监管部门能够实时监测所辖区域内煤矿的安全生产状况,能够及时发现和处理煤矿安全隐患,杜绝事故的发生。目前,煤矿采用的安全监控系统多为基于C/S模式的安全监控系统,需要专门的客户端安装程序,不能够实现快速部署安装和配置,对于进一步的业务拓展具有较大的局限性。本系统采用B/S模式下的三层架构体系结构体现了分而治之的思想2,各层之间的开发可以并行进行,提高了系统开发效率,降低了系统开发成本,同时也使代码间层次清楚,易于复用和维护。系统表示层采用ExtJs框架开发,实现了页面的动态交互和异步刷新3,使B/S模式下开发的用户界面具有桌面应用系统的风格,有效改善了用户体验。本文从建立煤矿安全监控系统联网软件的实际需求出发,详细阐述了.net三层架构技术在煤矿安全监控系统联网软件中的应用与实现过程,并给出了基于.net三层架构技术构建系统的解决方案。2分层架构在软件体系架构设计中,分层架构是最常见、也是最重要的一种架构模式,甚至说分层模式是很多架构模式的基础,分层模式能够将软件中的各个功能分开,实现相对独立的开发模式。分层模式的关键点在于确定依赖,即通过分层,可以限制子系统间的依赖关系,使系统以更松散的方式耦合,从而更易于维护4。常见的分层架构主要有以下几种:(1)两层架构两层应用程序允许用户界面和应用程序代码直接访问数据库,应用程序使用数据库中存储的数据模型,但是不需要在该模型之上建立逻辑模型,因为可以使用数据绑定将ADO.NET数据集与用于构建用户界面的很多控件直接连接,所以开发工作变得简单。当开发中的系统是一个原型系统或者功能简单的小型系统时,两层应用程序是理想的,它们的开发成本和时间都很少。随着应用系统规模的不断扩大,业务逻辑的复杂程度越来越高,以及人们对于软件可复用性、可扩展性、可维护性等方面的需求,两层架构的局限性也日益突显。(2)三层架构三层架构从下至上分别为数据访问层(DAL)、业务逻辑层(BLL)、表示层( U I层) 5。如图2.1所示:图2.1 三层架构数据访问层位于最下层,主要是负责数据的增加、修改、删除、查找、更新等操作。它独立于数据源而存在,可以访问的数据对象有关系数据库、实时数据库、XML文档、文本文件等。业务逻辑层是系统的核心部分,它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,也就是说它是与系统所应对的领域逻辑有关。表示层位于最上层,离用户最近,用于显示数据和接收用户输入的数据,负责整个系统的交互姿态和外观,为用户提供一种交互式操作的界面6。三层架构的优势在于分散关注、松散耦合、逻辑复用、标准定义7。在软件设计过程中采用三层架构可以实现开发人员的并行开发,将不同的开发人员分工到不同的结构层次中,以提高软件开发的效率和软件质量。同时,三层架构也是现在企业应用系统普遍采用的主流架构方式,以三层架构设计的系统具备良好的可控性、扩展性、稳定性与安全性,因此本系统采用这种方式来实现。3煤矿安全监控系统联网软件实例3.1系统功能需求分析煤矿安全监控系统联网软件主要功能是保证安全监管部门能够及时了解各煤矿井下实时信息,发现各种异常情况及报警信息,督促煤矿及时进行处理,以减少事故的发生。经过分析及调研,系统应包括以下几个主要功能:(1)实时监控监测系统应能够对于各煤矿井下甲烷浓度、一氧化碳尝试、风速、温度、主扇开停等主要环境参数进行实时监控,提供井下传感器历史数据的查询功能,显示各煤矿实时联网状态,便于用户全面掌握煤矿井下信息及安全生产状况。(2)报警信息提示及查询对于煤矿发生的报警、断电等异常信息,系统能够通过声光报警等方式及时提醒用户,对于历史报警信息可能提供查询功能。(3)预警信息提示系统能够通过对实时信息的监测和分析,对于即将到达报警值与断电值的安全数据进行提示,通知用户提前采取措施。(4)短信报警功能当煤矿发生报警时,系统能够在第一时间自动向相关负责人发送短信报警通知,从而及时采取应对措施。(5)煤矿基本信息用户能够查看所辖区域内煤矿的各种基础信息,如煤矿生产状态、核定产能、定员数、瓦斯涌出量、瓦斯等级等信息,同时具有添加、修改、删除功能。(6)统计报表管理系统应能够对井下开关量及模拟量报警数据、井下设备运行情况等进行统计形成报表,并提供打印、导出功能。(7)系统维护系统可以将用户分为不同的角色,对于不同的角色分配不同的权限,达到权限控制的目的;可对用户进行添加、修改、删除操作;可以对用户的登录操作及与数据库相关的操作进行记录。3.2系统架构设计为了提高系统的可维护性、可扩展性及可复用性,系统对.net三层架构体系进行了拓展,在数据访问层(DAL)、业务逻辑层(BLL)、用户表示层(UI)的基础上将数据对象实体与方法分离,形成了在各层之间传递数据的业务实体(MODEL),将数据访问层细分为数据访问接口模块(IDAL)、数据访问实现模块(DALPostgres)、反射工厂模块(DALFactory)及封装了各种数据库访问和操作方法的数据库访问模块(DBUTILITY)。其中,每层的变化都不应当对其它各层产生影响。系统分层架构图如图3.2所示。图3.2 系统分层架构图数据访问层为业务逻辑层提供所需的数据,在数据访问层中采用了“面向接口”的编程思想,将各个业务实体的方法抽象至数据访问接口模块(IDAL)中,可以使系统在多个数据库之间灵活迁移而不会影响业务逻辑层(BLL)与用户表示层(UI)的实现。数据访问实现模块(DALPostgres)实现了IDAL的接口,完成对PostgreSQL数据库的增加、删除、修改操作。DALFactory模块利用反射机制动态创建对象并返回其接口类型。DBUTILITY模块提供了操作数据库所需的各种方法。MODAL中每个实体对象来自于数据库中相应的表,其中每个属性对应于数据表中的每一列,这些实体对象并不具有持久化的功能,只是作为数据的载体,在各个层中传递数据。业务逻辑层是系统的核心,是连接数据访问层和用户表示层的桥梁。其主要功能是根据业务规则对于数据访问层提供的数据进行加工处理,将符合用户请求的数据返回到用户表示层。在本系统中,业务逻辑层通过调用IDAL模块中的方法来得到数据库中数据并进行处理,将结果返回给用户表示层。用户表示层是系统与用户的接口,主要处理与用户的交互逻辑,为用户提供人性化的使用界面。用户表示层采用ExtJs框架来实现。ExtJs提供了大量用户界面元素,这些元素包括表单、对话框、选项卡、树、网格和页面布局等,开发人员可以直接使用这些元素来快速开发自己的页面,与传统的web页面开发方式相比,不仅降低页面编码的复杂性,简化了AJAX开发,也使页面效果达到桌面应用程序的风格,为用户提供了一个友好的人机交互界面。3.3实现3.3.1系统平台搭建本系统采用的开发环境为Visual Studio 2005,以C#为主要开发语言, 前台界面使用ExtJs框架,后台数据库为PostgreSQL 8.2。系统共包含七个项目,如图3.3所示,其中web项目为网站项目,其余均为类库项目。图3.3代码组织结构系统平台搭建可分为两步,首先建立空白解决方案,添加一个网站项目及六个类库项目,命名方式见图3.3。然后建立各层之间的依赖关系,在每个项目上右击,选择“项目依赖项”,在弹出窗口中选择该项目依赖的其它项目。图3.4给出了各项目间的依赖关系图。图3.4各项目间依赖关系3.3.2表示层中ExtJs框架的应用Ext JS框架是一种Javascript开发框架,这种强大的Javascript库提供了可重用的对象和部件,简化了Ajax开发和丰富了客户端界面效果,通过使用该框架可以使Web层的开发使用到面向对象的特性,比如可复用性和可继承性等。该框架的核心思想是通过Javascript来动态创建页面的标记元素,从而使得页面更灵活。其实EXT本身并没使用到新技术,而是在Javascript基础上结合这些设计思想发展过来的,它与普通的Javascript相比具有以下一些优点和特性8:(1) EXT所有JavaScript库都是跨浏览器支持的,这种支持使开发人员在构建Web 应用程序时不需要考虑目标浏览器。(2)完全面向对象且可扩展的。(3)复用性高,便于统一Web程序的界面设计。为了使用ExtJs框架,需要在每个aspx页面添加其代码文件的引用,代码如下:系统主页面框架采用ExtJs的viewport组件来实现,将页面分为四个区域,上方显示系统标题及登录用户等信息,下方为系统版本信息,左侧为系统菜单树,中间区域显示当前用户页面,如图3.5所示。主要实现代码如下 : var viewport = new Ext.Viewport(layout:border, items: /每个区域通过大括号分开, 此处为页面上方内容 region:north, html: ,/左侧显示系统菜单 region:west, items:tree/系统菜单树 ,/中心区域, 用户操作页面 region:center, html: ,/下方区域 region:south, html: );图3.5 系统主页面3.3.3业务逻辑层实现业务逻辑层BLL通过调用DALFactory层的方法创建相应的数据访问层对象,调用该对象的方法得到需要的数据,对数据进行加工处理后返回到表示层显示给用户。以创建实时异常传感器对象为例:private static readonly IExpReal expReal = GasAccess.CreateExpReal ();/此方法创建实时异常传感器对象以下代码返回前台界面实时报警列表数据:public IList GetExpRealList(string strMineIds, string mineId, string monitorTypes, int transducerState,string feed, string sortField, string sortDir, int limit, int start, out int counts)IList results = new List();IList expRealList = expReal.GetExpRealList(strMineIds ,mineId ,monitorTypes ,transducerState ,feed ,sortField ,sortDir ,limit ,start ,out counts );/调用expReal对象的方法得到数据库原始数据 /此处代码对数据进行逻辑处理,得到前台界面所需数据。具体代码略。return results; 3.3.4 反射技术在数据访问层中的应用反射是.NET中的重要机制,通过反射可以获取已加载的程序集和在其中定义的类型(如类,接口和值类型)的信息。可以使用反射来动态的创建类型的实例,将类型绑定到现有对象,从现有对象获取类型并调用其方法或访问其字段和属性,以及访问代码中应用的特性9。数据访问层中DALFactory模块通过反射机制动态创建对象10,以创建实时异常传感器对象为例,在页面中引入using System.Reflection命名空间,创建对象代码如下:public static IExpReal CreateExpReal() string className = path + .Gas.ExpReal; 使用Assembly.Load(path)方法加载了dll文件,CreateInstance方法从程序集中查找指定的类型,创建它的实例并返回 return (IExpReal)Assembly.Load(path).CreateInstance(className);4结语本文介绍了三层架构技术及其优势,通过对煤矿安全监控系统联网软件的功能需求分析,详细介绍了表示层、业务逻辑层及数据访问层在本系统中的设计与实现。采用分层架构的系统具有很强的通用性及可扩展性,对于相同类型的系统具有一定的参考作用。另外,该系统已经上线运行,经实践证明,运行效果良好。参考资料1李宗磊,侯西南.基于.NET平台的智能安全监控系统及联网系统的研究与应用.科技情报开发与经济,2010,20(9):104-105.2张培培,魏峰,赵书昭.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论