根据国家税务总局対税务系统内所有系统进行集成与整合的需求,我所在的开发单位组织了全国金税工程防伪税控系统网络版的升级开发工作。该项目工程浩大,要求在具有严格的安全、可靠性能的基础上,将基于DOS操作系统、Foxpm数据库的原单机版防伪税控子系统集成到基于网络的、大型数据库的“集中存储、分布操作"的分布式系统中来,并实现与基于AIX等操作系统和Oracle数据库的稽核协查等其他应用系统的数据共事和互操作。在项 目中,我担任项目主管,主要负责系统规划和组织实施工作。我在将近一年的可行性研究、需求分析、系统研发与试点工作中,通过引进面向対象设计方法、采用B/S/S三层体系结构、利用群集实现负载平衡等新技术,使该项目取得了圆满成功,受到了用户的一致好评。但是现在看来,由于新技术的使用,怎样实现软件开发公司対新技术的渗透、怎样开发自主产权的中间件等问题,需要我们在今后系统开发中做进一歩探索。
2003年元月,我作为项目主管,有幸参与了全国税务系统金税工程防伪税控系统的升级开发工作。防伪税控系统主要由基于増值税发票的企业开票、企业发行、报税、认证、发票、发售等五大子系统组成,系统组成模块如图1所示。具体流程是:企业在当地税务机关通过企业发行系统取得用于开具増值税发票的相关设备(金税卡与IC卡)和权限,再到发票发售系统领取増值税发票,通过企业开票系统开出发票后产生发票明细和申报纳税数据存入IC卡中,然后、企业持IC卡到税务机关由报税系统进行报税、并将取得的可抵扣的发票数据通过认证系统进行认证后,经过Internet上传到税务机关,所有数据经由税务机关处理后,传送到其它系统进行处理。系统要求具有严格的安全、可靠性能,必须建成基于网络的,分布式实时数据库处理系统,达到数据共享的目的。在此次开发过程中,我特别强调在认真细致的需求分析的基础上,最大限度地引进新技术新方法的思想。
防伪税控系统网络的应用将极为广泛,涉及全国所的有税局和一般纳税人企业,具有基于増值税发票的开票、认证、报税、传谖等业务操作,面対如此复杂的系统,怎样从中理出头绪来,最大限度满足用户要求,实现整个开发流程的无缝连接,需求分析是最重要的环节。我在认真研究和分析旧单机版开发文档后,提出采用面向対象的开发方法。系统的主要业务范围是増值税专用发票的防伪与税控,通过対整个系统流程的分析,我抽象出“发票、操作员、安全卡"等类,从类出发,建立対象,再通过対象类之间的继承、聚合关系、消息和关联,分别建立开票、认证、开票、企业发行等子系统和共用的系统管理等模块,并通过操作员类中权限属性实现各子系统的权限控制。通过面向対象分析方法,不仅提高了系统的开发效率,而且提高了软件的复用性和可维护性。 在工具的选择过程中,我们选择了现在十分流行的系统Rational系统系列工具,包括Rational Rose、Rup、Soda和Requisite Pm等。特别的,从防伪税控系统的対于増值税发票的防伪和税控功能可以看出,整个系统具有很长的生命周期,必须面対税务系统因为经济发展而出现的多变的需求变更,并且,又必须服务于税务系统其它的如征收管理、稽核协查等应用系统。所以,要求系统具有很好的可维护性、可扩展性。而公司在原有单机版的升级上,因为没有统一的、规范的开发文档而吃尽了苦头。所以,我决定采用Requisite Pro作为我们现在和未来的系统需求管理工具。我们在対经过详细的用户调查后,按照我们的基本理解写成了基本需求,交给用户进行评审和补充,再形成正式的需求录入到Requisite Pro中去,并记录需求的变化情况、需求之间的依赖关系,实现需求的全面管理。公司决策层在认真听我的汇报后,表示了很高的兴趣并给出支持,使我更加増强引入新技术进行开发的决心。 但是,新技术并不意味着是最好的或是最适合的。在引用新技术中,我特别注意它的负面。面向対象分析方法虽然有效地表达和描述了现实世界,但有时也会忽略外在的表层的需求,有些关健需求要等到用户使用后才会提出,然而等到用户使用后再维护是不现实的,作为原型开发模型中的原型也是收集用户需求,描述与解释需求的一类相当有效的方法工具。 在分析过程中,为了更好让用户了解我们的系统,更完整提出需求,我沿用了公司熟用的原型开发方法。通过利用Access开发出系统原型,让用户试用,取得很好的效果。所以在新技术引进过程中,我们熟悉的优秀的开发思想与方法不能丢,这是我们要特别注意的地方。
瘦客户端设计表示层。进行系统设计时,采用客户/服务器(C/S)模式还是采用浏览器/应用服务器傲据库服务器的(B/S/S)模式,成为我们开发小组成员争论的焦点。我认为,采用哪种系统体系结构相当重要,决策时,不但要考虑系统运行成本,还要考虑系统运行的稳定性、可靠性、可维护性以及业务需求变动时的可扩展性。新系统将所有数据集中到市级税务机关(参看图1),如果将业务处理逻辑分敬到客户端或数据库服务器,虽然可以低成本运行,但是,我们分析得到,同一时刻,区县级税务机关和企业到服务器的连接可能达到30-1000,在发达地区可能更多,这显然击中了 C/S模式的要害,并且,税务系统的需求经常变更,所以,我们决定采用应用服务器集中处理实现业务逻辑。事实证明,这个决策是正确的。新系统在沿海五省四市试运行时,不仅稳定、可靠,易维护,而且,客户端采用IE浏览器,受到了维护人员和广大操作者的好评。 业务层引入WEBLOGIC应用服务器。众所周知,WEBLOGIC是用于开发、集成、部署和管理大型分布式WEB应用、网络应用和数据库应用的Java应用服务器。可以说,采用Web logic的主要理由有:首先是税务现有应用系统的异构的数据库平台如用于(如用于CTAIS征管系统的Sybase、稽核协查系统的Oracle、其它的SQLServer),再有,対多种操作系统的支持,包括NT系列、AIX、Seo等,并且,税务的系统需求经常变化,比如在我们的开发过程中,因为国家税务总局推出“一窗式"管理,税局要求我们的报税系统有向征管系统传出某种格式数据的功能,我们利用WEBLOGIC対XML的支持,很快地解决了这个需求。总之,这要求系统具有很好的可移植性和可伸缩性,应用服务器能使程序员从常规设计中脱篱出来,集中精力组织和优化业务逻辑。我特别注意了服务器的选型,主要从开发效率、可复用性、可伸缩性和可扩展性等几个方面考虑。
企业将取得的可抵扣的増值税发票经过认证系统认证后,形成加密的认证数据,经过互联网传到税局的外网WEB服务器,再由WEB服务器传到内网的应用服务器进行解密和税局再认证。対于一个市级税局,这种发票数据可能非常宠大,如果由应用服务器值中进行解密,很显然,时间上是不允许的,并且,可能造成应用服务器的死机。我提出采用解密工作站队列处理解密工作,让应用服务器统一分配各工作站的工作重。这样,大大地减少了应用服务器的工作量。 综上所述,由于采用了面向対象的系统分析方法,B/S/S系统体系结构、解密工作站实现负载平衡等新技术,提高了整个系统的开发效率和质量,使新系统按计划完成,且具有很好的安全性、可靠性、可维护性、可扩展性和外部接口。但是,由于新技术的采用,也使我们产生了一些新的问题。 怎样让员工理解、支持和拿握新技术。引进新技术,将打破开发人员习愦的开发方法和程序设计方式,这种习愦的打破,往往要付出更多的精力和时间,如果靠权力或压力来解决只能是一种表面现象,我认为,关健是要营造一种引进新技术进行软件开发的文化氛围,让软件公司开发人员学习并引进新技术到我们的开发中来形成一种习愦,怎样营造这种氛围,是我们管理领导层常思考的问题。 怎样开发自主产权的中间件。我们的应用服务器采用的是BEA公司的WEBLOGIC中间件,虽然,它提高了我们新系统的开发效率和安全性和平台无关性,但是,也大大提高了我们的软件开发成本。中间件在我国具有很大的市场和利润空间,我想基于中间件的开发,首先要把握它的市场价值,然后在开发上注重它的通用性。