
| 出版日期:2002-05-13 总期号:1116 本年期号:33 |
|
工程质量的保证
美国电子政府实践 邓侃 电子政府作为大型的工程项目,要进行的工作千头万绪,历时长,要参与的人员很多,他们个性和能力差异很大。如何保证工程质量,很值得研究。比较美国几个先进州的做法,可以归纳出三条经验:合理的组织结构,有效的人员培训和规范的工作模式,外加各模块相对独立的技术体系。 机构划分与职责 有三类人参与电子政府工程,他们是政府工作人员、从非商业机构如大学和研究所请来的学术专家,以及受聘的IT咨询公司职员。参与初期调研和设计的人员包括政府内部工作人员,还有受商业影响不大,观点公正的学术专家。IT咨询公司一般不被邀请参与电子政府工程的概念设计,以免假公济私。政府通过招标,把项目委托给IT咨询公司实施。IT咨询公司内部组织结构不受政府制约。因此,组织结构的合理与否,主要取决于如何把政府职员和专家的意见综合起来,各取所长,协调统一。 以弗吉尼亚州为例,电子政府工程机构分四级。工程最高负责人是州信息办公厅主任(Commonwealth CIO and Chief Enterprise Architect),以下三级是,电子政府工程顾问委员会(Enterprise Architecture Steering Committee)、工程指挥部(Enterprise Architecture Workgroup),还有各具体项目小组(Domain Teams)。州信息办公厅主任的职责是组建电子政府工程机构,招募顾问委员会成员以及工程指挥部骨干,向州长和州政府汇报工作等。信息办主任最艰巨的任务或许是向州政府申请工程预算。 工程顾问委员会不是常设机构,其成员包括州政府各部门负责人以及从大学和研究所请来的高级专家。他们定期开会,议题是制订工程总体战略,协调各政府部门工作以支持工程实施,招募工程指挥部成员和各具体项目小组组长,监督工程进度,裁决项目委托给哪些IT咨询公司等。其中工程总体战略是指概念化的体系结构和工程指导原则,共23条准则,分三部分:工程指导原则,技术指南和工程进度控制。逐条研究这些准则,所得印象是虽然它们的出发点是弗吉尼亚州,不过基本上也适用于其它不少州。另外,至少英国的电子政府工程准则也大同小异。 电子政府工程的灵魂是工程指挥部。这是一个常设机构,其成员包括州政府信息部门的骨干,如数据库管理员,IT日常管理部门主要成员等;同时也包括从大学和研究所借调来的全日制技术人员。他们的任务是设计电子政府的系统框架,制订工程实施计划和大致进度,起草项目招标书,组建各具体项目小组,拟订各项目小组工作章程和文件写作范本等。工程指挥部的工作质量是整个电子政府工程质量的基石。鉴于此,我们对美国几个先进州的工程指挥部的文件做了仔细分析,发现各州工程指挥部设计的系统框架大致接近,它们制订的工程实施计划也有不少共同之处。区别比较大的地方是指导各项目小组工作的章程和文件写作范本,以及项目招标书。这不难理解,因为各州政府所辖地区不同,产业特点各异,州政府内部机构及功能也不完全相似。各项目小组与州政府内部机构直接挂钩,所以它们工作的侧重点也就随各州特点而因地制宜。 电子政府工程机构中人数最多的是各项目小组。弗吉尼亚州组建了九个工作小组,它们与州政府内部机构直接挂钩,负责调查各政府部门职能,规划与各政府部门职能相应的功能模块的基本结构,调研如何衔接各部门功能模块以保证合作顺利,同时设计使用方便的用户界面,规划网络铺设及服务器和计算机安装,保证系统安全和制订数据库数据建模原则等。按照工程指挥部下达的工作章程所规定的调查方向,分析方法,各项目小组逐步完成,重点在充实细节。各小组的成果体现在它们提交给工程指挥部的报告和建议书上。报告和建议书的写作基本上是依照工程指挥部颁发的范本,照猫画虎。严格工作章程和文件范本的用意是,保证各项目小组的报告和建议书不至于离工程指挥部的期望太远;在这个底线上,鼓励各项目小组充分发挥各自的聪明才智。 各项目小组需定期、经常与工程指挥部联系,汇报工作进展,讨论解决问题的办法,如对下达的工作章程和文件范本有不同意之处也可以提出。工程指挥部有义务即时解决项目小组的问题,合理时适当修改工作章程和文件范本。在项目小组组建初期,先对小组长和业务骨干进行详细培训,然后对小组所有成员有的放矢地做专项辅导。为提高效率,培训和辅导不涉及项目小组工作范围以外的知识。 当各项目小组基本完成任务时,工程指挥部负责整理设计从上到下整个电子政府系统,制订工程实施计划和大致进度,起草项目招标书。同时,每隔一段时间向顾问委员会汇报,以确保没有重大缺陷。顾问委员会的主要职责是挑毛病。如果顾问委员会审议通过,而以后却发现问题,顾问委员会需承当责任。 前文所述的是如何从对人的管理入手,保证工程设计的质量。但是一旦把项目承包给中标的IT咨询公司后,政府机构不便也不可能逐行逐句地检查IT咨询公司写的程序。所以,质量管理的另外一个方面是,如何减少个别不良的模块对系统整体质量的影响。美国几个先进州的工程总体战略不约而同地都强调各功能模块相对独立,在这个战略指导下各州均采用了多层次面向服务的体系结构(N-tier Service Oriented Architecture)。原因有多方面,其中质量控制也在考虑之列。如果发现某些功能模块质量不良,在这种体系结构内,相对而言比较容易修改甚至替换这些模块,而不致连累其它模块。 功能决定了系统结构 电子政府系统从功能角度上讲,可以分成三个层次:用户接口(Interface)、事务处理逻辑(Business Logic)和数据存取(Data Access)。例如对某个地区进行人口普查,首先要从数据库查询该地区有多少居民,这就是数据存取过程;对该地区所有居民进行统计分析,如调查受教育程度、收入和人种分类与犯罪率的关系等,属于事务处理逻辑范畴;警察局要调用犯罪率分析结果,须通过用户接口,用户接口的形式可以是网页,也可以是其它形式如网络服务,网页便于警察或其他人阅读,而网络服务便于把犯罪率分析结果作为输入与其它应用程序相连。基于这三个功能层次,电子政府系统似乎可以延用工业界前些年盛行的用户-中间层-服务器三层结构。用上面的例子来说,警察局的电脑作为用户,须安装用户调用函数库(Client Library),用户调用函数库负责建立用户端(警察局的电脑)与中间层(人口普查服务器)的联系,然后调用某一服务(教育程度与犯罪率的关系);中间层接到指令后,与服务器(数据库)联系,索取人口普查数据,得到所有数据后,进行教育程度与犯罪率的统计分析。用户-中间层-服务器这三个层次强调的是概念上的区别,在实际安装上完全可以把中间层和服务器(数据库)放在同一台机器上。当然为了提高运行速度,也可以把中间层放在与服务器(数据库)不同的机器上。不过,通常不会把中间层和用户端安装在同一台机器上,原因主要是为了减少网络上的数据传输量。在上面例子中,如果中间层和用户端安装在同一台机器上,也就是说把提供人口普查服务的中间层的程序安装在警察局的电脑里,当中间层向服务器(数据库)索取人口普查数据时,该地区所有居民的资料都要从数据库通过网络传给警察局的电脑,很显然,这么多数据要传输,势必给网络造成很大压力。反过来,如果把人口普查中间层和数据库放在同一台机器上,通过网络传输的将只是统计分析的最后结果,而不包括每个居民的资料如姓名之类,网络数据传输量就大大减轻。 多层次面向服务的体系结构是用户-中间层-服务器三层结构的延伸。从技术上讲主要得益于网络服务和Sun的J2EE框架的推动,从功能上讲主要是提高了用户-中间层-服务器三层结构的可扩展性、速度和各功能模块的相对独立性及可重复利用性。所谓“面向服务”是为了区别于传统的应用程序。应用程序可以用不同语言编写,如C和Java。某一个程序可以调用另一个程序,不过通常情况下程序的相互调用发生在用同一种语言编写的程序之间,而且它们都安装在同一台机器上。为了方便在不同机器、不同语言和不同操作系统之间实现远程调用,人们把用不同语言编写的应用程序做了一番统一包装,变成服务。在传统的三层结构里,中间层包含一些事务处理逻辑,而这些逻辑的实现方式通常就是应用程序。多层次面向服务的体系则强调把事务处理逻辑一律包装成服务,理由是为了简便逻辑服务单元之间的相互调用,而且当某一服务单元需要修改时,那些调用它的服务单元却不必做改动。面向服务的用意是提高事务处理逻辑各服务单元的相对独立性及可重复利用性。 把事务处理逻辑一律包装成服务后,中间层的结构变得更加灵活多变。诸如多处理逻辑服务单元可以统统安装在一台机器上,也可以把它们分别放在多个中间层服务器上,以提高运行速度。另外也可以把中间层再细分为若干层,比如把与数据存取关系比较大的服务单元放在离数据库比较近的中间子层,而把与互联网用户直接相关的服务单元结合成网络层。考虑到系统的用户多种多样,有的通过互联网与中间层联系,有的使用无线联系,所以电子政府系统不仅要有网络层,也许还要有无线层。即便第一期工程不包括无线层,至少也要在体系设计上应保证将来插入无线层或其它层,不会有太多麻烦。 |
|||||||||||||||||||||||||||