代征费收费系统的设计与实现

所属栏目:自动化论文 发布日期:2010-09-01 09:17 热度:

  
  提要:本文提出了石龙自来水总公司代征费收费系统的设计与实现。经过实际使用,证明设计可行合理,能有效配合水费的征收,更有助于提高公司的综合管理水平。
  关键词:结构化数据;B/S三层结构;收费系统
  1可行性分析
  本系统开发的目的正是为石龙自来水总公司提高生产效率,提高管理水平服务。目前软件系统结构有C/S和B/S二种基本模式。C/S开发结构需要专门的客户端安装程序,分布功能弱,针对点多面广且不具备网络条件的用户群体,不能够实现快速部署安装和配置;兼容性较差,对于不同的开发工具,具有较大的局限性,采用不同工具,需要重新改写程序;开发成本较高,需要具有一定专业水准的技术人员才能完成;B/S开发结构大大简化了客户端,只要客户端机器能上网就可以。而且开发和维护几乎所有工作也都集中在服务器端,当企业对网络应用进行升级时,只需要更新服务器端的软件就可以,这减轻了异地用户系统维护与升级的成本[1]。如果客户端的软件系统升级比较频繁,B/S是更加灵活的多级分布结构,使得软件网络体系结构跨入一个新阶段。
  所以,传统的C/S结构渐被B/S结构取代。任何用户只需使用WEB浏览器即可对应系统进行操作。因此B/S结构在管理信息系统开发领域中得了飞速的发展。
  2代征费收费系统的设计
  2.1需求说明。
  ①客户说明。石龙自来水总公司在征收水费的同时还征收代征费,包括有清洁卫生与垃圾处理费、超标排污费、污水处理费、治安联防费和防盗门费等5种费用。自来水公司集中管理客户信息。对每一个客户都对应一个最后交费所属月份和最后交费日期,客户管理主要包括客户编号、客户名称、客户地址、用水类型、付款方式等静态信息,以及最后交费月份和最后交费日期等动态信息。
  ②收费管理。收费管理根据客户的付款方式设计出现金收费、转帐收费、银行代扣管理、冲正业务和补打发票。收费都要开出相应的发票记录客户的编号、客户名称、客户地址、用水类型、各种代征费的单价、笔数和金额总额、收费员号、收费机号、付款方式、交费单流水号等等信息。
  ③查询和统计。查询可以用输入客户的部分信息,模糊或精确查找客户的编号。用客户编号查询客户的详细资料,查询今天交费记录和历史交费记录。
  ④系统维护。系统维护包含更改密码、各种用水类型、工作机维护、系统状态维护。
  ⑤特殊处理和和月结。特殊处理是针对石龙自来水总公司的商业规则而定制的业务,月结备份数据是冻结历史数据,初始化交费流水号,更改系统日期。
  ⑥报表管理。生成每台电脑的收费汇总报表,分日报、月报和补打报表,并且统计出现金收入、转帐收入和代扣收入,信息主要包括各代征费的回收金额和发票张数。
  ⑦提供与其他系统数据接口。提供与触摸屏查询系统接口,与语言系统接口,与短信系统接口和安装业务系统接口。
  2.2对象分析
  通过对系统需求进行分析,得出如下几个主要实体对象。
  ①客户对象。客户对象是本系统的核心对象。其客户代码全局唯一,用于唯一标识一个客房。主要组成元素有:客户编号、客户名称、客户地址、电话、用水类型、银行帐号、所属区域等。
  客户对象的下级对象还有已交费对象,它是一个动态的对象,主要元素有:客户编号、交费日期、收费员号、收费机号等。
  ②交费记录对象。交费记录对象对应收费管理的业务。主要元素有:客户编号、户名、地址、用水类型、清洁卫生与垃圾处理费、超标排污费、污水处理费、治安联防费、防防盗门费、总额、收费员、交费日期、付款方式、交费机、交费流水号等。
  ③单价表对象。单价表主要元素有:类型代码、各代征费单价。
  ④操作员对象。操作员对象主要元素有:操作员号、操作姓名、密码权限号。
  3代征费收费系统的实现
  3.1收费系统开发环境
  硬件环境:CPU最低为2.4GPentium4处理器,RAM最小要求512MB,硬盘最少要有80GB。
   软件环境:服务器操作系统是Windows2000 Server及以上版本,Web服务器是IIS5.0及以上版本,数据库为SQLServer2000,开发工具为MicrosoftVisualBasic.NET[2]。
  3.2妥善处理数据库的共享并发
  3.2.1锁(Locking)。并发控制机制是衡量一个数据库系统性能的重要标志之一。数据库系统的并发控制机制协调并发操作以保证事务的隔离性,保证数据的一致性。SQLServer以事务为单位,通常使用锁来实现并发控制[3]。
  SQLServer作为多用户数据库系统,可同时运行多个事务并行存取数据,充分利用系统资源发挥数据库共享资源的特点。在这种情况下,可能出现多个并发的事务同时存取数据存取同一数据的情况。在并发操作中,需要使用某种并发控制机制,以保证在多个用户程序执行时数据的一致性、完整性。
  锁(Locking)是最常采用的并发控制机制。锁就是事务对某个数据库中的资源(如表和记录)存取前,先向系统发出请求,封锁该资源。事务获得锁后,即获得对数据的控制权,在事务释放它的锁之前,其他的事务不能更新此数据。当事务结束或撤销以后,释放被锁定的资源。
  SQLServer有两种主要类型的锁:基本锁和用于特殊情况的专用锁。
  设置事务隔离级为访问数据的操作指定默认的加锁方式,或者用表级锁,防止并发的事务在存取同一数据时相互干扰,影响数据的一致性。
  设置事务隔离级别是对会话中的所有语句指定默认的加锁行为。通过设置的事务隔离级别可以指导SQLServer查询优化器做出正确的加锁决定。
  事务必须运行于可重复读或更高的隔离级别以防止丢失更新。当两个事务检索相同的行,然后基于原检索的值对进行更新时,会发生丢失更新。如果两个事务使用一个UPDATE语句更新行,并且不基于以前检索的值进行更新,则在默认的ReadCommitted隔离级别不会发生丢失更新。
  锁定的级别反过来会影响并发,建议通过设置事务隔离级别既确保数据一致性又兼顾系统并发性,而仅在必要时才使用表级锁定提示更改默认的加锁行为。
  当需要精细控制对资源的锁定类型时,可以使用表级锁定提示。使用SELECT、INSERT、UPDATE和DELETE语句指定表级的锁定类型。一般来说,读操作需要共享锁,写操作需要排它锁。
  3.2.2表中加入时间戳型字段
  如果在创建表时,定义了一个字段为时间戳型(timestamp),则无论用户何时向表中添加(Insert)记录,SQLServer都会自动向该字段加入一个计数器值。
  时间戳字段的值为二进制格式的数据,与系统时间并没有关系,它表示包含时间戳字段的记录的操作顺序,实际上相当于一个单值递增的计数器。
  在数据库中,其列值保持唯一,也就是说,它可以唯一标识表中的字段。一个基本表中只能一个时间戳字段。时间戳字段的值是由系统自动更新的,因此,向表中插入记录时,只需手插入记录中的非时间戳字段的值。SQL服务器不允许人为指定时间戳字段的值,否则服务器会报告错误信息。
  时间戳字段]的实现机制。
  在SQLServer中,对表中每行记录的修改都是首先被写入事务日志(TransactionLog)中,服务器使用日志中[唯一行标识符]作为该行的时间标记。如果连续增加检索行,则时间标记的值是逐渐增加的。
  时间戳字段还有一个重要的用途就是:用在[WHERE]子句中,以防止多个用户同时修改表中的同一个记录。
  在关系数据库中,传统的方法是采用所谓的加锁技术,以防止在多个用户同时试图修改某记录时发出警告。在SQLServer中,对于优化锁则使用了一个新的系统函数tsequal(),使SQL服务器在进行更新操作进,若发生了冲突才发出警告信息。
  在[UPDATE]语句中使用tsequal()函数来确保自某次检索以来,所更新的记录不会被改变。
  SQLServer首先找到该记录的时间戳字段的值[0x0000000000000131],tsequal()函数用来比较该值与给出的常量表达式是否相等,如果相等,就允许修改。时间戳字段的值已经修改为[0x0000000000000135]。如果此时另一个用户更新表中的记录,那么这个用户的更新操作不可能完成。因为此记录已经在前面更新过了,而且在更新的同时,系统已经修改了时间戳字段的值。
  4结束语
  ASP.NET是一种功能强大的Web服务器端技术,它提供了一个真正的面向对象的编程模型。本系统采用了ASP.NET和VisualBasic.net进行开发,不仅实现了各项功能,而且具有很好的封装性,从而使系统运行更安全、更稳定。
  参考文献
  [1]李正希,胡方霞,陈发吉.ASP.NET案例开发[M]北京:中国水利水电出版社,2005
  [2]OllieComes,ChrisGoode.BeginningASP.NETusingVB.NET[R].WroxPress,2001
  [3]闵兰,李生林,张力生.SQL技术在VisualBasic.net应用系统开发中的应用.后勤工程学院学报.2003.19(4):29-32
  
  

文章标题:代征费收费系统的设计与实现

转载请注明来自:http://www.sofabiao.com/fblw/ligong/zidonghua/3306.html

相关问题解答

SCI服务

搜论文知识网的海量职称论文范文仅供广大读者免费阅读使用! 冀ICP备15021333号-3