企业信息化系统建设探讨
2009-08-20肖伟斌李磊
肖伟斌 李 磊
摘要:文章以供水行业信息化建设为例探讨利用分层设计思想达到建设高内聚、低耦合的信息化系统。
关键词:分层设计思想;企业信息化;供水行业
中图分类号:F232文献标识码:A 文章编号:1674-1145(2009)18-0045-02
近年供水企业致力于以生产管理、管网管理、营业管理、无纸化办公为主要核心的管理信息系统,在实践应用中已成为城市供水工作中不可缺少的工具。但随着信息化建设的进行,在使用中逐渐出现了新的现象和问题。
一、目前供水行业信息化建设面临的问题
在信息化建设中供水企业缺少一个规范的信息统一管理平台,企业信息量增长的同时,也伴随着业务子系统的增加,多账户运行的复杂烦琐程度增加。多个局部应用系统,各自为政,彼此孤立的系统给管理造成障碍,信息的处理和流转只局限于本部门,不能在整个公司进行很好的共享。有的所谓功能集成,在原有系统上增加内容,如在营业收费系统中又包含了水表管理系统功能、客服系统功能,软件功能耦合紧密,一个功能变动就影响到整个系统。它们本该是一个有机结合的整体,才能保证业务流程的完整性和管理通道的畅通无阻。
二、分层设计思想带来高内聚、低耦合的好处
如何才能避免、解决这些问题呢?建设高内聚、低耦合的信息化系统。内聚性是一个模块内部各个元素间彼此结合的紧密程度的度量。内聚是从功能角度来度量模块内的联系。耦合性是模块间互相连接的紧密程度的度量。
较优秀的系统设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。在软件开发中提出了N层架构思想,即将各个功能分开,放在独立的层中,各层之间通过协作来完成整体功能,在很大程度上达到如下目的:分散关注,松散耦合,逻辑复用,标准定义,解决了软件开发中的强耦合问题,加强了高内聚,低耦合。
如果一个系统没有分层,那么各自的逻辑都紧紧纠缠在一起,彼此间相互依赖,谁都是不可替换的。一旦发生改变,则牵一发而动全身,对项目的影响极为严重。降低层与层间的依赖性,既可保证未来的可扩展,在复用性上也优势明显。每个功能模块一旦定义好统一的接口,就可以被各个模块所调用,而不用为相同的功能进行重复的开发。
但分层思想不是软件架构中独有,互联网传输遵循OSI七层协议,其设计是分层思想合理应用的典范。另外,在许多其他工程技术领域,分层思想也很普遍。当然,在企业信息化系统设计中,也能遵循分层思想来设计。
三、行业信息化建设如何做到高内聚、低耦合
但是供水信息化系统建设怎样像软件一样分层设计呢,可能很多人会问,开发一个营业收费系统,怎么分层?或许你说我的营业收费系统是分三层的,做了数据接口,但是放在整个企业信息化建设中这个应用还是紧耦合的。其实这里有一个误区,信息化系统建设是希望用分层来看待整体供水信息化系统的全部,不再是把视线局限在一个个应用,而是把抽象的级别定位,并将整个供水企业信息化系统作为一个整体生态系统去看待。
先看传统做法,比如营业收费系统、报装管理系统、管网地理信息系统,这些系统上马时间不一样、数据格式、数据库类别、操作系统等都不尽一样,位置分散相互独立,信息共享难、反馈难,信息冗余、不一致。
为信息共享做系统集成,要面对不同语言写的应用程序,各种数据库,弄清各种操作系统环境和各种的网络协议等,为把这些整合起来,还要掌握系统集成工具。而做完一个系统集成项目后,任何系统局部的一丁点修改都有可能影响到系统,所以还要随时准备好对接口进行升级和重新联调。
那么将整个企业信息化系统作为一个整体的生态系统去看待怎么做呢,上面说到我们做一个应用,往往是一个部门需要的应用,单个的应用,而不是企业范围的应用。
举例来说,我们按照单个的应用来分析,供水企业可能用水报装系统有一份用户信息数据、营业收费系统也有一份用户信息数据,这两个用户信息数据可能数据库类型、字段、表结构都不一致,我们就要考虑接口的问题,两个系统如何数据共享的问题,考虑数据是否一致的问题,如果一个系统改了数据结构,可能还要重新设计接口。
而我们现在要站在企业整个业务的角度,重新来分析业务流程,不能局限于一个应用由某个(些)部门使用,按照部门职能一个一个地来做业务分析,应该按照整个企业内部,包括到企业外部,形成整体业务流程分析。例如,供水企业面向用户业务先要申请报装、勘察、施工,然后供水、抄表、收费、调度,水厂生产、监控、调度等等,这里不作具体专业的业务需求分析,仅仅以此为例,可以先分析这些业务活动、业务处理、业务过程,规范出业务层面的视图,然后在用户交互部分构造出用户部分,在构造出数据部分。根据这些业务分析业务活动,得到用户申请界面、勘察录入界面、设计图纸录入界面,用户交费界面、抄表录入界面、调度监控界面、各类报表界面等;还得到用户信息数据、水表安装信息数据、管网信息数据、用水性质数据、用水量数据、费用数据等。可以看到,这里得到了三个层面,业务层面、表示层面、数据层面。
这三个层面,是数据稳定、还是业务、界面更稳定呢?是数据更稳定。应用相对来讲要容易变化,流程又容易变化一些,再往上用户界面的东西变化就更加多了。所以一个极其重要的切分,就是系统中数据和应用的切分。
做好了数据和应用的切分,我们从各种业务角度来看,在相关的业务中怎么使用这些数据。比如按照供水行业来举例,用户信息数据由营业收费业务、用户报装业务使用等来使用,是一对多关系,管网信息数据由水表安装业务、管网管理业务、用水调度业务、爆管处理业务来使用,也是一对多关系,但也可能其他业务与数据是一对一、多对多关系,有点像数据库ER图。分析好了这些关系,然后在数据层上面做一个标准层,来更好地适应了业务流程的变化。有了业务层,至于用户界面的变动就更简单了。
但是进行企业信息化建设,很少有企业一下上马所有的系统,还是要分步走。这就要做好信息化规划,做好信息化系统建设管理。最重要的是要建立标准,想上一个应用,首先要符合标准,想用用户信息数据,必须符合分层式结构设计数据层的要求,不可以随便用,随便加。这样,我们的数据是统一的,更有利于应用共享、有利于数据整理和挖掘。而在数据层之上,我们能够更加灵活地管理业务,而不影响我们数据。