观点 | 表现和根源 | 先进企业的启示 | 如何开始 | 价值与效果 | 展望 | 下载电子版

第二章 先进企业的启示

章节小结

* 海比研究在调查时发现,有17%的大型企业,例如,中国建设银行、国家电网、港华燃气等,尽管也处于多项目多系统的阶段,但是他们却较好的应对了五大挑战,并让信息化建设处于可控的状态。

* 通过对这部分企业的深入调研,海比研究发现,他们有一个共同的特点,即他们都拥有一个统一的软件平台,该平台承载了企业中主要的应用。

* 在大型企业CIO们看来,软件平台在整个IT系统中定位于操作系统、数据库、应用服务器和最终的应用系统之间,是更为面向业务层次的中间件。它其实是承载了所有的应用系统,同时覆盖了所有的基础软件。

一、先进企业的做法:软件平台模式

海比研究在调查时发现,有17%的大型企业,例如,中国建设银行、国家电网、港华燃气等,尽管也处于多项目多系统的阶段,但是他们却较好的应对了五大挑战,并让信息化建设处于可控的状态。通过对这部分企业的深入调研,海比研究发现,他们有一个共同的特点:他们的信息化模式都不约而同地采用了“软件平台模式”,即“以平台托应用,平台与应用并重”的建设模式。在这些先进企业中,他们都拥有一个统一的软件平台,或者在建设应用系统中同时进行软件平台的建设。他们很清楚,这个软件平台的使命是承载企业中的各种应用。

案例:建设银行打造SUP软件平台

1、客户介绍

中国建设银行(China Construction Bank)成立于1954年10月1日(当时行名为中国人民建设银行,1996年3月26日更名为中国建设银行)。 是国有五大商业银行之一,在中国五大银行中排名第四。

2、主要挑战

中国建设银行有自己的软件研发中心,拥有近4000名软件开发人员,其主要的IT系统都是由自己开发的。

在自己研发的过程中,建设银行主要遇到以两个挑战:

1)开发效率低、软件质量不高。这主要表现在各个系统的架构没有统一规划,业务复用非常少。例如,没有统一的服务接口方案;架构中缺少跨业务、跨页面的数据管理;没有统一的监控框架;缓存、资源管理、消息等技术支持组件不足;对已有的公共系统如EAI、UAAP等,没有进行进一步的包装,各项目组自行实施,成本大、不统一;等等。

2)研发过程管理混乱。例如,缺乏从已有系统中抽象可复用单元的过程保障;软件开发过程中单元测试不足,不进行每日构建与集成,不利于规模较大项目的管理;软件的非功能规范难于落实和检查,虽然进行了代码走查,但是过多的java代码,走查比较困难。缺乏管理监控的基础设施,不利于系统的管理、优化;等等。

3、解决方案与实施路线

为此,建设银行在很早前就认识到,需要有一个统一的开发平台来收敛建设银行的应用架构,解决应用中的非功能性需求。建设银行的做法如下:

第一步:自己研发软件平台。2005?年,建设银行自己开发了SUP1.0的开发平台,期望这个平台能够建立一个开放、高效、安全、稳定、统一的J2EE架构,从而为建设银行业务的发展提供强有力的支撑。但由于在软件平台的研发方面没有经验,也没有组织上的保障,SUP1.0还有很多不足问。

第二步,对SUP1.0进行优化。通过找到在平台化领域具有非常深厚积淀的普元,寻求咨询建议,建设银行最终非常清晰的理清了新平台的客户化改造需求,从而为发布新一代SUP平台打下了扎实基础,也大大降低了实施风险。

第三步,开发新一代SUP2平台。在普元已有平台的基础上定制开发适合建行的新一代应用平台,建行获得知识产权。同时,普元提供知识转移的培训和后续服务,并帮助建行建立此领域满足发展的人力资源队伍。

建设银行新一代SUP2平台的主要功能包括:

1)能够支持应用的设计开发,减少工作量;

2)可复用的应用框架;基础应用框架包含了菜单组件包、安全组件包(本地和UAAP)等功能模块在不同应用项目中得到了最大的复用。

3)规范系统结构;为应用系统提供统一的组件化结构视图。

4)J2EE应用互联;为J2EE应用系统的互联提供方便,支持将现有的J2EE系统快速发布成服务。

5)工作流集成;实现了与工作流的业务接口集成,即通过接口封装实现了具体工作流产品无关性。

6)报表集成;实现了与建设银行的统一报表平台RIDE的集成,方便应用项目组使用RIDE报表功能。

7)兼容既有成果;兼容建设银行原有的SUP1开发平台和原有的JAVA开发规范。支持主流的基础环境。支持WebLogic、WebSphere多应用服务器、支持Oracle、infomix、DB2等数据库,支持Windows、Linux、HPUX、AIX等多操作系统。  



图表 5 建设银行软件平台实施路线图  

4、实施效果

新一代SUP2平台于2009年8月推出后,截止2010年5月,已经有30个项目基于新平台开发上线,总计代码规模800万行,涉及10家左右开发商和多个分行开发部门。,例如对公客户关系管理系统、个贷系统、反洗钱监测分析系统、操作风险管理系统等。

由于引入软件平台,建行软件开发的代码、架构、框架、文档(相关规范)等战略性核心资产得到了很好的复用,复用率达到80%以上,比以前大有提高。同时,系统上线时间也比以前缩短了30%以上。更重要的是,通过应用软件平台,软件研发的相关标准与规范得到了落实,研发过程的管理变得更为有序、科学,系统的质量也有大的提高。

信息化采用“软件平台模式”,在企业中搭建统一的软件平台,正是解决大型企业信息化建设过程中有效解决“多系统多项目并行”难题的关键。BAPO理论认为,多项目的复杂系统运营一般可以分为五个等级,即单项目、有意识、可管理、可测量、最优化。对于每个企业而言,都会经历这五个阶段。处于不同阶段的企业,会面临不同的问题和挑战。



图表 6 BAPO成熟度模型

要想掌控复杂IT系统,就必须从有意识级向可管理级迈进,而后再走向可测量级、最优化级。而从有意识级走向可管理级的过程中,最关键的一个步骤就是要在企业中建立统一的软件平台。调研中的这些先进企业,正是搭建了统一软件平台的企业,才得以避免信息化“失控”的局面。

小贴士:BAPO理论中涉及的五个阶段

BAPO(Business/Architecture/Process/Organisation) 是欧洲学术界经过六年时间从众多项目整理出来的一个评估框架,该评估框架涉及5个阶段, 覆盖了软件工程的四个评估维度(商业、架构、流程和组织)。

BAPO理论对于商业维度的分析共分为五个阶段,为企业CIO在IT系统建设不同阶段提供了需要思考与借鉴的标准。

Level 1:单项目(Project-Based)阶段

单项目阶段是最基本的阶段。处在这一阶段的企业一般没有产品线愿景,也没有考虑产品线。其市场、销售和产品管理都是基于单独的产品来考虑的,因而无需考虑各个系统之间的关系,项目预算也都只针对每个单独的系统。

Level 2: 有意识(Aware)阶段

有意识阶段是指意识到多产品(项目)线管理能带来好处,但是不知道如何管理多产品(项目)线的阶段。处在这一阶段的企业,其市场、销售和产品管理都意识到了多产品线工程带来的机会,但是公司没有清晰的策略来运行多产品(项目)线,计划仍旧是按照单个系统开发来制定,但是在产品路线中有机会的话会考虑领域工程,很多核心资产都是过程中产生,而不是有计划的开展。

Level 3: 可管理(Managed)阶段

可管理阶段是指公司对多产品(项目)线已经有较好的认识,软件多产品(项目)线管理已经是IT商业战略的一部分。处在这一阶段的企业对多产品(项目)线管理的愿景和目标都很清晰。并深刻了解到:多产品(项目)线预期收益将驱动市场、销售和产品开发。通过引入软件平台的方式可以以较低的成本进行大量定制化工作。这类企业的多软件(项目)产品线已经开始影响到其投资决策 。

Level 4: 可测量(Measured)阶段

可测量阶段是指公司对基于软件平台的多产品(项目)线应用已经非常熟悉,软件产品线可以很好的协助制定商业战略,这一阶段,不仅企业本身对产品线愿景和目标很清晰,而且客户和投资者也对产品线愿景和目标比较了解。这个阶段,企业基于软件平台,能实现成本、收益和投资回报率都可测量,可变性管理也可度量,市场、销售和产品管理由这些可测量值指导,在预算方面,能量化成本和重用对预算的影响。

Level 5: 最优化(Optimised)阶段

最优化阶段是指公司应用软件平台模式管理多产品(项目)线已经非常成熟,软件产品线工程和商业协调一致,共同作用。处于这一阶段的企业,不断优化调整软件平台模式,并基于产品线工程调整或优化目标和愿景 ,恰当计算IT成本以及投资回报率,并进而改善IT商业战略,准确计算产品线成本和利润。

二、软件平台的本质与框架

1、对软件平台认识的误区

其实,软件平台在国内企业中并不少见。当前,搭建统一的信息化软件平台正成为很多企业的招标项目。本次调研发现,95%的大型企业已开始有意识或无意识地引入软件平台。可以说,在大型企业的信息化中,平台化已有一种“泛滥”的趋势。



图表 7 贵公司是否引入了软件平台?

但值得关注的是,调研发现,绝大部分的大型企业CIO对软件平台的了解程度还远远不够,高达93%的CIO对软件平台框架是什么、98%的CIO对功能细节到底有什么不清楚,87%的CIO不知道如何实施与部署软件平台。



图表 8 您对软件平台最不了解的是什么?

调研发现,正因为了解程度还不够,当前CIO们对软件平台的认知还存在很多的误区。最大的误区便是,很多CIO将平台的认识泛化了。他们往往认为,在企业应用中,只要有一个平台的层级,便认为就是平台化了。具体而言,对软件平台认识的泛化表现有三个典型表现,这也是对软件平台认识的三个典型误区:

误区一:软件平台就是中间件,很多CIO认为应用服务器、工作流、报表工具等中间件就是软件平台;

误区二:软件平台就是数据交换平台,很多CIO认为EAI、ESB等数据交换平台就是软件平台;

误区三:软件平台就是开发工具,很多CIO认为软件平台就是开发工具、运行时环境,只是一个软件开发和运行的工具集。

对软件平台的这些认知都是错误的。作为大型企业解决信息化建设过程中多系统多项目并行问题的有效方法,软件平台不仅仅是一个简单的中间件、数据交换平台,也不仅仅是一套开发和运行的工具集,它是一个完整的体系,是信息化建设的一种新模式。

2、软件平台的本质与定位

软件平台的本质

其实,平台并不是IT行业特有的专属名词,它更早被广泛的应用在广义的制造业领域,可以在不同行业中表现为不同的应用场景。一般而言,人们将平台定义为任何一种在其上可以构建其他技术或过程的技术基础。本质上来说,平台是一个产业成熟到一定阶段后,人们用来简化复杂生产系,实现规模化定制常用的一种方法。这在很多行业中得到了成功实践,如汽车制造业中的福特汽车生产平台、玩具中的乐高玩具积木平台、服装业的ZARA服装生产平台等。

具体到软件平台,其本质是包括了可复用的软件架构和框架、众多组件,以及可进行复用和管理的一系列工具组合。大型企业的CIO们引入软件平台,就是希望这能在系统建设中实现更多的软件全生命周期核心资产的共享与复用,降低多系统多项目并行构建与管理的复杂性,从而实现规模化定制,全面提升“QCD”。这就是大型企业信息化引入软件平台的本质作用所在。

需要强调的是,这里的复用不仅仅是代码的复用,而是指包括代码、运行态、测试、文档等的软件全生命周期中核心资产的全面复用。相对代码级复用,这是更高级、更全面的复用。

软件平台的定位

软件平台的内涵可以定义为:软件平台是用来构建与支撑企业尤其是大型企业各种IT应用的独立软件系统,它是开发、运行和管理各种IT应用的基础,是各种应用系统得以实现与运营的支撑条件。一般来说,软件平台要包括两个基本要素,即支撑环境和开发与管理体系,其中支撑环境是指各种IT应用开发与运行的基本环境;开发与管理体系是指开发与维护管理各种IT应用的工具与方法。

在大型企业CIO们看来,软件平台在整个IT系统中定位于操作系统、数据库、应用服务器和最终的应用系统之间,是更为面向业务层次的中间件。它其实是承载了所有的应用系统,同时覆盖了所有的基础软件。

 

图表 9 软件平台的定位

3、软件平台的功能框架与层级

软件平台的功能框架

先进企业的CIO们认为,一个完整的软件平台应该包括如下五大基本功能,即:开发、支撑、治理、集成和运维。之所以要包括这五大基本功能,是因为他们基本包括了IT系统的全生命周期管理。

* 开发功能:主要是向企业用户提供开发新应用所需要的相关功能;

* 支撑功能:主要包括整体系统的配置调整、扩容、以及迁移等功能;

* 治理功能:是指对于IT系统研发和构建过程中的的管理与控制;

* 集成功能:主要包括与第三方系统的集成与接口;

* 运维功能:主要用于IT系统构建之后的维护与管理。



图表 10 软件平台基本功能框架

软件平台的层级

值得注意的是,软件平台也有层级。根据经典的IPD(Integrated Product Development,集成产品开发)产品开发方法论,在企业信息化过程中构建统一的软件平台时,可分为如下两个层次:核心技术平台、领域应用平台。而企业中各个最终应用系统则可基于核心技术平台与领域应用平台来构建。  



图表 11 平台层级示意图

1) 核心技术平台是指本企业信息化中各个系统都需要用到的技术功能的集合。一般包括开发环境,运维环境,治理环境,以及技术组件四个大部分。在技术组件部分中,包含封装的各类技术组件。各技术组件可以进行灵活的调配和组合,从而快速、高质量、低成本实现各种应用,例如用户安全、用户权限管理等组件。

2) 领域应用平台是指面向企业内某一应用领域的基本功能的集合。例如,对于某个具体的电信运营商而言,它可以在核心技术平台之上形成几个领域应用平台,如面向财务、HR等管理领域的管理软件平台,面向运营领域的BOSS平台,面向增值业务的增值业务管理平台等。

3) 最终应用系统是指在核心技术平台和领域应用平台之上所构建的、面向企业业务单元的应用软件。例如,以电信运营商为例,在其核心技术平台与可以在管理软件平台上构建HR系统、财务系统,在BOSS平台构建计费系统,在增值业务平台构建短信管理系统等。

小配文

“构建企业信息化的统一软件平台时,要注意软件平台的层级特征,其交付物的接触界面为领域应用平台,但核心技术平台不能少。”

——华为

三、软件平台的四个特征

由于大型企业信息化对平台的巨大需求,导致现在市场上出现了众多的软件平台产品,也出现了软件平台的泛化。但调研发现,这些泛化的“软件平台”,不能给CIO带来真正的价值。

先进企业的实践表明,一个软件平台要想能真正解决大型企业多系统多项目并行建设难题,给用户带来真正价值,必须具备四个特征,即层次化、组件化、产品化、体系化。

特征一:层次化

层次化是指软件平台在设计时要有采用层次化的架构,这是管理可变性和降低复杂度的重要方法。一般来讲,包括了聚焦于技术能力领域的核心技术平台和聚焦于业务能力领域的领域应用平台。其中,核心技术平台能够很好的提供最底层的基础支撑,具备很高的可扩展性以及灵活性。领域应用平台能够很好的调用底层的核心技术平台的功能组件,并且能针对领域提供很好的应用支撑环境。而对于最终应用系统,不仅能够灵活调用领域应用平台的功能组件,并且能很好地结合最终业务来进行应用开发。

特征二:组件化

组件化是指把平台里功能相似,具有内聚特征的相关模块组织在一起,并以标准的方式对外提供出来的形式。为支撑多应用多系统,软件平台需要组件化。一般来讲,这些组件需要:可基于SOA相关标准规范进行标准化与解耦;有确定的组件基线版本;可进行自动化集成、自动化测试;并拥有足够的扩展能力。

组件化能使软件系统的构建实现更彻底得复用,可避免重复建设和大量浪费,是软件系统复用得以实现的重要保证;同时,组件化可保证系统更易集成、各系统间异步持续发展,并可支持分布式研发团队协作与外包,以及可重复的检验等。

特征三:产品化

产品化是将软件平台以完整的产品形式呈现,这是平台内涵重要的考量标准。只有产品化了软件平台才能真正成为供企业或第三方简便使用的工具,帮助用户实现架构、文档、测试等软件核心资产的高度复用,进行软件质量的可重复检验、异步持续发展,同时,由于软件平台产品化版本可收敛,这样可保持维护成本降低。

产品化有四个关键点需要把握:1)确定的产品版本基线;2)可持续集成和完整的自动化测试;3)齐全的使用文档和人才培训体系;4)不断升级满足新需求的能力。

小配文

“即便是自己用的软件平台,也必须实现产品化。否则无法在多个系统或项目、可持续地得到应用。没有产品化,就无法持续升级。”

——中信银行

特征四:体系化

体系化是指软件平台不仅要有平台产品和工具,还要有相应的标准与规范、知识与资产、实施方法论、人才培养体系以及相应服务体系。好的软件平台往往会固话了实施方法论,并由于它是给第三方使用的,所以不能允许被随意修改。体系化后的软件平台才能真正在企业应用中达到效果,高效解决QCD的问题。

调研表明,当一个平台不具备上述四个特征时,这是一个不合格的“软件平台”,也不能真正的、可持续地在大型企业信息化发挥应有的作用。



图表 12 软件平台应该具备的四个特点

四、软件平台和SOA、遗留系统的关系

在企业中引入软件平台后,有几个关系值得注意,即软件平台和遗留系统的关系、软件平台和项目外包之间的关系,以及软件平台和SOA的关系。

1、软件平台和遗留系统的关系

软件平台的引入将改变原有企业IT系统的建设模式。但由于很多大型企业的IT系统并不是一张白纸,他们往往拥有很多遗留系统。软件平台和这些遗留系统有两个关系:第一,软件平台是各个遗留系统的良好集成平台,通过该平台,可以很方便地实现遗留系统的集成;第二,软件平台是对遗留系统进行“资产现代化”的最佳工具,例如可以通过软件平台实现对遗留系统的SOA化、遗留系统的封装与集成等。这使遗留系统可以纳入新的IT规划与技术架构之中,而不用推倒重来。

2、软件平台和项目外包的关系

软件平台和项目外包并没有彼此替代的关系。大型企业引入软件平台后,其IT系统的建设仍然可以采用项目外包的方式。但软件平台的建立,对于IT系统的项目外包会带来两个巨大的好处:第一,软件平台为多个项目的外包提供了统一、共享的平台,这确保了各个项目和系统之间能实现最高程度的复用与集成;第二,软件平台为项目外包制定了统一的标准、统一的流程,以及统一的管理方法。这为大型企业项目外包的管理与控制带来了极大方便。软件平台可以确保每个外包项目始终处于大型企业自身的掌控之下。

3、软件平台和SOA的关系

SOA是近年来出现IT系统构建的新理念。由于具有以客户为中心、构建方便快捷、快速适应变化等特点,SOA越来越得到大型企业的青睐,并逐渐成为企业IT建设的主流。SOA的实现可以依靠很多技术和工具,软件平台则是一种非常高效的SOA工具和产品。软件平台具有组件化的特点,本身就采用SOA的理念实现。基于软件平台来构建各种IT系统,天然具有SOA的特征。

我是普元顾问,欢迎与我在线交流。