决策分析与解决方案(Decision Analysis and Resolution, DAR)的目的,在于利用正式的评估过程,依据已建立的准则,评估已识别的多种备选方案,以分析可能的决策,确定最佳解决方案。正式的决策流程减少了决策的主观性,提高了决策的科学性。
在项目实施过程中,技术方案选型往往是比较揪心的一个过程,需要在满足需求、技术先进性、成熟度、成本、人力、工期等方面进行平衡,而且这些方案是项目干系人和项目组成员在头脑风暴会议经上,通过快速互动、刺激提出有创意的备选技术解决方案。每个方案都有意义,或者说,多数的方案都是能解决问题,只是成本、时间、人力等纬度的目标一致性需要统一衡量。
所以提出方案的人,都会认为自己的方案比较优,这样矛盾就产生了,需要一套决策分析管理过程来决策选择哪个方案。
在本项目的架构设计阶段,技术人员提出多套备选前端开发技术解决方案,对于这样产生的决策分析,表面上看是选择性决策,而通过深入分析,发现隐含多项技术组合结构决策,为了加快决策进度,抓住核心,把多项技术固化下来,下面介绍此决策分析实践。
1、系统总体技术方案介绍
为了应对企事业面对的系统技术和业务改革挑战,我们要建设的PaaS办公能力平台应超越传统PaaS范畴,在业务能力和技术能力组件上有所加强,形成更有针对性的“厚PaaS”平台。通过这个平台,我们可以统一技术框架、统一流程管理、提高数据一致性、提高资源利用率、提高服务和技术的标准化、简化上层应用的开发和运维。
目标架构按云计算设计分为四层:外包资源(IaaS)层、业务运营PaaS平台层、软件服务层、复合应用层。最终通过门户统一接入。
(1)外部资源层:目标架构搭建在企业内部虚拟化资源池上,由虚拟化资源池提供设备资源(虚拟机),以及以此所部署的Oracle、MySQL、MongoDB数据库。
(2)业务运营PaaS平台层:基础平台层采用Opentext Cordys BOP4 平台,此平台是企业内部办公系统云计算PaaS平台,为企业信息化提供统一的开发、运维、运营服务,并可以提供文件服务、报表服务、审批单框架服务、任务服务(是与云门户统一待办相关的服务)、主数据服务、流程服务、表单服务、用户组织机构服务、监控服务、接口服务、文档服务等。
注:这些服务是在原生服务基础上进行的本地化,但是不会改造产品本身,特殊个性化仍用原生服务。系统架构是在传统PaaS平台基础上,提供贴近业务的专业PaaS服务:业务能力组件和技术能力组件。
(3)软件服务层:在PaaS平台上,开发软件服务,在应用服务设计时,合理拆分为易组合的软件组件服务,采用适配技术,以满足快速开发、实施的需求。整体上规划出公文管理、通用办公、流程管理、运维管理四大部分。参考租户模型,按省公司、地市、虚拟组织及应用模式进行部署。服务中间件使用Cordys、Apache HTTP、Java EE(Tomcat/JBoss)。
(4)复合应用:就是展现用户界面,按目标应用复合软件组件服务,分别为不同用户提供不同展现界面。界面技术可使用Cordys XForm、HTML/HTML5、JavaScript、JSP等。
2、项目关键信息
2.1、背景
用户选型BPM产品为Cordys,并且,用户使用Cordys产品已经5年了。原技术实现中未使用JavaEE技术,Web服务使用Cordys产品自身所集成的Apache Http,前端开发技术属于富客户端Web2.0。
前几年,我们曾经对原系统前端开发技术进行优化,以克服富客户端技术对终端设备要求高的问题,创新的采用轻量技术实现在低配置终端和服务器上流畅的、稳定的运行系统,主要采用的技术有:
(1)在富客户端(XForm)技术框架内,嵌入HTML轻量界面,提高低配置终端应用性能,并美化界面;
(2)合并操作界面的Soap请求(Web Service),减少网络上数据交互量和数据传输量,降低对网络带宽压力,也减轻了终端网络压力;
(3)数据库分区优化,避开存储的热盘,也对数据库SQL进行优化,以及数据解耦。
现如今方案是升级BPM产品,不仅要提供流程服务,还要做为PaaS平台使用。用户的目标是通过新建流程管理平台,支持企业流程再造,支撑业务快速实施,并提供较好流程监督与审计的能力。
2.2、项目实施计划关键信息
由于项目的需求是部分明确,按项目量化管理(CMMI高成熟度)模型,建议本项目采用增量开发模型。项目实施计划关键信息如下:
(1)开发工期5个月;
(2)投资预算为120人月;
(3)现有开发人力及掌握技术情况(项目经理及需求、测试人员除外),计划组织成22人项目团队。
(4)技术成熟度方面,Cordys与JavaEE平台都比较成熟;
(5)技术风险:
- Cordys平台有厂家现场技术支持;
- 在JavaEE平台上无高并发集群实施经验。
2.3、前端开发技术方案选型思路
做为项目经理,希望项目按计划实施,并因此严格掌控项目目标。目标的达成要得到有效管控,这时遇到前端开发技术方案选型的问题。我的要求是用最简洁的方案,花费最少的成本和时间,能达到用户要求就是好方案。
其实目标的达成,还是有些思路可以遵循的,也是以前项目经验教训和技术进步所恩赐的,例如:
(1)解耦:业务、数据解耦,也就是说在将来系统建成后,如果有修改或新需求,大多数情况下是可操作的,而且花费少,不影响现有的业务和数据,因此,推荐系统使用SOA技术,以及组件化和适配技术;
(2)采用Restful规范(数据传输采用JSON格式),是针对Soap XML协议的,以此来减少网络数据传输量,降低客户端解析数据压力,也可降低服务器数据端口吞吐量;
(3)尽量合理使用Cordys平台提供的能力;
(4)选择技术成熟度较高的方案,开发人员都会用或易掌握的技术;
(5)项目组主要成员需要达成一致。
表单式业务处理,也就是前端技术架构层次为多层架构,也是满足运维人员灵活配置、组件化结构,如下图所示。
第一层为界面展现层,是业务数据输入、展现的终端界面,为传统View;
第二层为业务逻辑处理层,用于组件化装配业务;
第三层为数据适配层,用于表单数据输入、输出通过数据项定义来对应;
第四层为数据操作处理Model层,为传统Model,而Model与View的对应是通过多层配置适配转换出来的,也就是说传统模型依赖关系在此架构下不适用。
3、决策分析
3.1、候选方案列表
(1)HTML
前端采用HTML+JavaScript+CSS开发技术与Apache HTTP服务器,后端服务为Cordys BOP 4平台,提供服务组件;
优点:不依赖JavaEE容器,直接使用Cordys集成Apache HTTP服务,系统集成架构相对简洁,有实施经验;
劣势:缺少可用开源框架,开发效率较低,缺乏JavaScript开发人员。
(2)JSP
前端采用HTML+JavaScript+CSS+JSP开发技术自主开发与Apache Tomcat + HTTP服务器,后端服务为Cordys BOP 4平台,提供服务组件;
优点:现成开源框架较多,能大幅提高开发效率,而且JSP开发人力资源较丰富,降低对Cordys平台的依赖;
劣势:系统依赖JavaEE容器,需要与Cordys平台集成,缺乏基于JavaEE环境高并发应用实施经验。
(3)XForm+HTML
完全基于Cordys BOP 4平台,前端界面少量采用HTML+JavaScript+CSS开发技术与Apache HTTP服务器;
优点:与候选方案(1)类似,并可充分利用Cordys平台集成功能;
劣势:缺少Cordys开发人员,用HTML部分开发效率低,缺乏JavaScript开发人员,并且,使用XForm开发的那部分功能可能存在终端性能问题。
综上所述,3个候选方案很难取舍,因此提出决策分析计划,依据CMMI成熟度模型,决策分析技术架构选型方案。
3.2、决策分析计划
注:评估方法采用Delphi法。
3.3、评估准则列表
评估准则选择,首先依据项目管理的五个过程和九大知识领域,再依据软件工程进行选择,这里评估准则所选择是依据公司CMMI成熟度模型。
(1)满足需求
需求有业务需求,也有软件需求,之所以把满足需求列在首位,是因为软件需求要求的:一是终端性能需求、二是界面美观需求、三是提供快速开发能力需求(含运维支撑能力)。
(2)投资成本
投资成本在这里具体体现开发效率、人力投入来体现。评分标准是:开发效率及相关人员级别,也就是说低级别技术人员开发效率高,投资成本就能得高分。
(3)技术成熟可靠
技术成熟可靠是指所使用的技术广泛使用,系统稳定(很少死机),业界有成功案例,公司有成功实施案例得高分。
(4)技术风险
技术风险主要是考虑是否有厂家技术支持,出现技术难题能快速解决得高分。
(5)人力资源
人力资源是指所采用的技术,公司能提供充足的资源,或通过其他合作渠道获得足够的资源。
依据上述准备,下周进行决策分析评估,评估完成后,我再分享结果。有不足之处,欢迎分享、反馈。
参考:
(1)管理支撑办公系统技术架构选型及相关技术应用范围、方法分析2014年4月 肖永威
(2)管理支撑办公系统技术架构选型对比讨论(J2EE与SOA对比)2014年4月 肖永威