论文部分内容阅读
【摘 要】随着社会和经济的发展,城市的污水和废水排放呈明显上升趋势,大多数污水处理厂的信息化建设与该市的经济发展已极不适应,已不能满足该市现代化城市运行管理及城市发展的要求,鉴于这种情况,昆明市污水处理公司进行了信息化综合管理平台的设计和开发工作。该平台采用了B/S三层架构设计,设立了单独的WEB服务器和数据库服务器,整个系统包括了远程数据提交系统。公司人事、资产、工资、报表分析、公文处理这几个子系统,在设计之初便采取了一系列的服务器优化措施,而在系统投入运行之后,这些措施确实也达到了预期的效果。在该项目投入运行之后,大幅度的提高了该公司的业务效率及领导决策水平。
【关键字】污水处理 信息 优化
在昆明市污水处理公司的信息化管理平台的设计和开发工作共历时8个多月,共经历了系统的需求分析、架构设计、概要设计和部分代码编写和测试工作。
通过对该项目做详细的需求分析,该公司下属有8个污水处理分厂和若干个泵站,而每个污水处理分厂的业务范围又不尽相同,其业务数据量比较庞大。对于一个系统来说,可以断定,随着时间后移,数据量的日益庞大一定会大大降低系统的使用效率。所以,在设计之初就从项目的硬件和软件上做出充分的系统优化准备,从整个系统的架构设计到程序代码的编写都尽量考虑到系统优化措施。
一、在软件设计采取了若干措施一提高系统效率
(一)在架构设计时,采用了B/S三层架构,且对中间业务层和数据库层分别设计了独立服务器。使业务处理逻辑和数据库操作在不同的服务器上执行,这样的效率显然要优于将业务层和数据库层置于同一台服务器的做法。
(二)对应用程序的优化,首先是要选择优秀的语言平台,要求开发出的页面具有高性能、高弹性。该项目选用了ASP.NET。在代码中尽量将经常使用的对象存储在session和application中,但有一点,太大的对象最好不要存在它们里面,这样占用了较多的内存。对代码的优化方面虽然是比较繁琐的工作,但却很重要,项目中,我们曾经遇到系统测试时可用内存不断缩小的情况。若是简单的采取扩充内存的方案,不可能从根本上解决问题。随着时间推移,总有内存耗尽系统崩溃的时候。针对这种情况,我们对内存进行了跟踪,对代码进行分析,最终发现,是某些组件在调用过程中造成了循环调用,导致无法运行垃圾回收,不能释放内存。在对这些问题代码进行修改后,解决了这个问题。
(三)采取了页面缓存机制,经常被访问到的页面只占总页面数的很少一部分,对这部分频繁访问的页面采取了被动缓存机制。这样,当用户需要访问这些页面的时候,不需要访问WEB服务器,而直接从本地机器缓存中读取给用户,减小了网络流量,提高了访问速度。但这里有一点要注意,对页面缓存时间的设置不能太长,这样会浪费内存资源。
(四)数据库的设计对访问数据库的效率也有很大的影响。首先从设计的细节上,我们采取了比如对于查询操作选择合适的索引,使设计的表的列数尽量少,尽量不使用链接操作,对SQL语言的编写也遵循了一些原则。另外因为我们选用的是.net开发平台,采用的是ADO.NET数据库连接方式,而ADO.NET与MS SQL SERVER有比较好的集成,访问速度较其他数据库有明显速度优势。我们选用了MS SQL SERVER作为数据库平台。再次在数据库服务器端采用了存储过程,采用存储过程明显降低了网络流量,并且降低了业务层与数据层的交互频率,且因为存储过程为编译好的类似批执行方式,所以比执行从业务层发送过来的SQL语言速度有明显提高。对于数据库的连接,我们充分利用了ADO.NET的数据库连接池机制。系统将数据库的连接放在连接池中,需要时取出,不需时放回,等待下一次连接请求,降低了对服务器资源的浪费,大大改善了打开和关闭数据库对性能的影响。
(五)在对大量数据的查询提取操作上,采取了分页机制,但不是传统的分页,传统分页是采用取出所有记录,然后进行分页,这样没能缓解数据库的压力,我们采用了按页面显示需要分页从数据库中动态取出数据的机制。大大减少了数据库查询所用的实践。
(六)降低数据量。一般来说,大量的Web页面传输内容都由图像文件和其它二进制格式文件组成;某图书馆应用开发中我们设法减少GIF文件对颜色的使用,并调整JPEG格式文件大小。随着Html文档日趋复杂和javascript的大量运用,通过减少HTML或JavaScfipt文档中的空白来压缩页面,能大大减少文件尺寸。
二、在软件优化的基础上,对硬件也做了相应的优化我们
(一)对于该系统的数据,因为污水处理公司的业务数据量庞大,而对大数据量的插入、修改、查询、分析工作对服务器的负担较重,我们采取了将该公司管理数据数据库与业务数据数据库放置在不同数据库服务器上的方式。且其存储器采用由3快硬盘组成的冗余廉价磁盘阵列RAID1,并将每个表的数据均匀分布在3块磁盘上,因为参与阵列的3块磁盘保持同样的繁忙程度,可以有多个磁盘磁头并行对一张表进行插入、修改、查询工作,从而大大提高了其I/O性能。
(二)分析整个系统,可能外部访问对WEB服务器的压力不会太大,但内部对业务数据的处理随着数据量的增加可能压力较大,鉴于这种实际,我们采取了设置一台web服务器来处理HTTP请求,而另外部署了2台机器作为业务服务器,使Web只有最少的任务,把实际处理交给各个应用服务器处理,然后返回结果给Browser。
(三)对2台业务服务器,采取了软件负载均衡措施。通过上述措施的采取,一方面提高了系统的可用性和效率,另一方面,为以后系统功能的扩充留下了充分的空间。使该系统在若干年内不会被时代所淘汰。本项目的实施是系统优化工程极好的实践,为今后类似系统的开发提供了可供借鉴的经验。
参考文献:
[1]杭世 ,陈吉宁,等.污泥处理处置的认识误区与控制对策.2004年国际污泥无害化经验交流会论文汇编.2004.1 -5
[2]柯建明, 王凯军, 田宁 宁. 北京城市污水污泥的处理 和处置方法问题 研究. 中国沼气, 2000,1 8(3):35- 38
【关键字】污水处理 信息 优化
在昆明市污水处理公司的信息化管理平台的设计和开发工作共历时8个多月,共经历了系统的需求分析、架构设计、概要设计和部分代码编写和测试工作。
通过对该项目做详细的需求分析,该公司下属有8个污水处理分厂和若干个泵站,而每个污水处理分厂的业务范围又不尽相同,其业务数据量比较庞大。对于一个系统来说,可以断定,随着时间后移,数据量的日益庞大一定会大大降低系统的使用效率。所以,在设计之初就从项目的硬件和软件上做出充分的系统优化准备,从整个系统的架构设计到程序代码的编写都尽量考虑到系统优化措施。
一、在软件设计采取了若干措施一提高系统效率
(一)在架构设计时,采用了B/S三层架构,且对中间业务层和数据库层分别设计了独立服务器。使业务处理逻辑和数据库操作在不同的服务器上执行,这样的效率显然要优于将业务层和数据库层置于同一台服务器的做法。
(二)对应用程序的优化,首先是要选择优秀的语言平台,要求开发出的页面具有高性能、高弹性。该项目选用了ASP.NET。在代码中尽量将经常使用的对象存储在session和application中,但有一点,太大的对象最好不要存在它们里面,这样占用了较多的内存。对代码的优化方面虽然是比较繁琐的工作,但却很重要,项目中,我们曾经遇到系统测试时可用内存不断缩小的情况。若是简单的采取扩充内存的方案,不可能从根本上解决问题。随着时间推移,总有内存耗尽系统崩溃的时候。针对这种情况,我们对内存进行了跟踪,对代码进行分析,最终发现,是某些组件在调用过程中造成了循环调用,导致无法运行垃圾回收,不能释放内存。在对这些问题代码进行修改后,解决了这个问题。
(三)采取了页面缓存机制,经常被访问到的页面只占总页面数的很少一部分,对这部分频繁访问的页面采取了被动缓存机制。这样,当用户需要访问这些页面的时候,不需要访问WEB服务器,而直接从本地机器缓存中读取给用户,减小了网络流量,提高了访问速度。但这里有一点要注意,对页面缓存时间的设置不能太长,这样会浪费内存资源。
(四)数据库的设计对访问数据库的效率也有很大的影响。首先从设计的细节上,我们采取了比如对于查询操作选择合适的索引,使设计的表的列数尽量少,尽量不使用链接操作,对SQL语言的编写也遵循了一些原则。另外因为我们选用的是.net开发平台,采用的是ADO.NET数据库连接方式,而ADO.NET与MS SQL SERVER有比较好的集成,访问速度较其他数据库有明显速度优势。我们选用了MS SQL SERVER作为数据库平台。再次在数据库服务器端采用了存储过程,采用存储过程明显降低了网络流量,并且降低了业务层与数据层的交互频率,且因为存储过程为编译好的类似批执行方式,所以比执行从业务层发送过来的SQL语言速度有明显提高。对于数据库的连接,我们充分利用了ADO.NET的数据库连接池机制。系统将数据库的连接放在连接池中,需要时取出,不需时放回,等待下一次连接请求,降低了对服务器资源的浪费,大大改善了打开和关闭数据库对性能的影响。
(五)在对大量数据的查询提取操作上,采取了分页机制,但不是传统的分页,传统分页是采用取出所有记录,然后进行分页,这样没能缓解数据库的压力,我们采用了按页面显示需要分页从数据库中动态取出数据的机制。大大减少了数据库查询所用的实践。
(六)降低数据量。一般来说,大量的Web页面传输内容都由图像文件和其它二进制格式文件组成;某图书馆应用开发中我们设法减少GIF文件对颜色的使用,并调整JPEG格式文件大小。随着Html文档日趋复杂和javascript的大量运用,通过减少HTML或JavaScfipt文档中的空白来压缩页面,能大大减少文件尺寸。
二、在软件优化的基础上,对硬件也做了相应的优化我们
(一)对于该系统的数据,因为污水处理公司的业务数据量庞大,而对大数据量的插入、修改、查询、分析工作对服务器的负担较重,我们采取了将该公司管理数据数据库与业务数据数据库放置在不同数据库服务器上的方式。且其存储器采用由3快硬盘组成的冗余廉价磁盘阵列RAID1,并将每个表的数据均匀分布在3块磁盘上,因为参与阵列的3块磁盘保持同样的繁忙程度,可以有多个磁盘磁头并行对一张表进行插入、修改、查询工作,从而大大提高了其I/O性能。
(二)分析整个系统,可能外部访问对WEB服务器的压力不会太大,但内部对业务数据的处理随着数据量的增加可能压力较大,鉴于这种实际,我们采取了设置一台web服务器来处理HTTP请求,而另外部署了2台机器作为业务服务器,使Web只有最少的任务,把实际处理交给各个应用服务器处理,然后返回结果给Browser。
(三)对2台业务服务器,采取了软件负载均衡措施。通过上述措施的采取,一方面提高了系统的可用性和效率,另一方面,为以后系统功能的扩充留下了充分的空间。使该系统在若干年内不会被时代所淘汰。本项目的实施是系统优化工程极好的实践,为今后类似系统的开发提供了可供借鉴的经验。
参考文献:
[1]杭世 ,陈吉宁,等.污泥处理处置的认识误区与控制对策.2004年国际污泥无害化经验交流会论文汇编.2004.1 -5
[2]柯建明, 王凯军, 田宁 宁. 北京城市污水污泥的处理 和处置方法问题 研究. 中国沼气, 2000,1 8(3):35- 38