您现在的位置是:首页 > 数字化转型 >

普元高级副总裁刘尔洪:软件平台的内涵、价值与路线图

2011-06-18 00:54:00作者: 来源:

摘要普元高级副总裁刘尔洪:软件平台的内涵、价值与路线图...

刘尔洪:

各位嘉宾下午好!非常高兴和大家相聚在一年一度的盛会上,我今天试图从软件平台的本质入手和各位分享一下我的看法,不妥之处希望大家多多交流。

前一段时间和他聊天是潜在的客户,现在已经变成普元正式客户,是一家做飞机的,国内做军方飞机的,也不便进一步介绍这件事情。当时发出一个感慨,什么时候做软件能够像造飞机一样就好了。是啊,做软件比做飞机难吗?大家知道做飞机是更大的系统工程,在座很多人在天上飞来飞去,也不担心飞机哪里有一个问题?做软件时时刻刻埋在交付时间、成本压力当中,只要做软件的人,负责软件管理和建设的人一定深有其痛,原来有一家电信运营商信息化部门刚组建的时候,请我去给他们讲过一次课,引用电信行业一句话,珍爱生命,远离BOSS,这是电信行业流行一句话。因为大家做得很辛苦,辛苦的同时价值得不到体现。这就是软件行业的现状。

我们讲软件平台,为什么要做软件平台呢?软件平台是手段,不是目的,最终为了解决什么样的问题,这个问题进一步想一想,和做飞机要解决的问题是一样的,无非就是三个方面:QCD。Q是指质量,C是成本更低,D是交付更快。

做任何的产品做任何的项目这三个方面都是终极目标。做飞机也是一样的,能否交付更快?我和做飞机这位专家聊,做飞机有没有平台呢?有啊,做飞机一般投入批量生产之前大概花十年的时间做飞机的平台,因为飞机本身也有多种的型号,有战略机、运输机,大型、小型的,最终通过平台自动化生产以及相关的架构组装起来,最终能够达到QCD较好的目的,做软件做到现在,有的做了几十年了,系统性能很难搞清楚,测试难以检测,比方说我现在把我的软件业务包给第三方做,第三方交付给我的东西是否能达到质量的要求是不清楚的,为什么呢?因为没有检测手段。如果我们飞机上面一个零件要是用第三方的供应商的话,肯定有充分的检测手段,软件行业是很新兴的行业,这个问题今天讨论的议题平台化道路一定是企业化在多应用多项目的状态下必然要走的道路。一个国内公司走向海外,并且能保持持续的竞争能力,和越来越大的市场份额,最本质其中IPD成功实施是最重要的因素。IPD做其他的产品也是可以的,华为主要是生产设备和软件时用的。另外就是,BAPO是欧洲做多产品线开发的机制,这两个理论同时都在说明一个很关键的点,当你的企业在多应用、多产品线的状态下,如果你从第二级别到第三级别跨越时,都必须要走平台化的道路。

IPD也是五级,现在很多的公司处在二级,在某些方面有意思,但是还不够很清晰,从二级到三级跨越的时候,必须要平台化,必须走平台化的路,BAPO也是这么说的,BAPO从理论角度来讲,适用面更加宽泛。

这个平台我们也在用,我们也在做,我相信很多企业都有平台,很多开发商也有平台,你讲的平台和我的平台有什么区别呢?我们希望基于平台的模式,未来对企业信息化的规划和建设有一个什么样的愿景,这是最终用户企业的例子,最终一个用户,我是一家电信运营商或者一家物流公司,信息化建设基于一个技术平台或者一套技术平台,上面有几个领域的业务,也有一些核心的业务平台,这个业务平台是干什么用呢?能够将我这个领域先进好的业务模型复用好,保持其稳定,最终在上面构建此领域的应用,主要是BSS域、OSS域、MSS域。BSS域就是管客户、产品、市场,业务系统。OSS域是管资源的,因为每个企业将我的核心企业资源包装好,包装成产品和服务卖给客户,OSS就管资源,电力行业就变成了电力输电、配电、变压器资源管理,电信领域就是各种各样交换机和交换领域的管理。MSS域就是管理支撑域,管理支撑域是什么呢?HR、人事、项目管理等管理软件和OA,分成三个域,这三个域有自己的核心业务平台,业务平台是建立在技术平台之上的。如果要多了一个业务平台的情况下,迅速将我下面技术平台进行重新的组合,型成新的技术平台和业务平台,开发新的利用。最好的方法是说,以后做业务就做这一块,下面不大变了,无论是从开发的工作量、系统的稳定性,可变化的程度会大大加快,如果对软件开发商来讲也是这样的。接到客户的项目,我是基于我的平台化的版本之上,我加一些客户化的内容就可以了,就变成客户想要的项目,客户化的版本叫N版本,我有这样的体系架构是最好的,我有一个技术平台,上面有产品平台。

以OA举例,有哪些核心和共享的技术呢?核心技术、关键技术、公共技术都放在技术平台里面,OA领域有什么样的共性呢?每个OA都需要流程、即时通讯等放在产品平台上面。如果我卖的时候会发现,我在市场上碰到的竞争对手,我卖到电信领域和银行领域需要的OA也有一些特殊的要求,比方说我卖到银行的话,银行希望OA能够跟我的影像工作图结合得更好,这样的话在上面加一些内容变成电信版本,再加上一些内容变成银行的版本,到最终客户加一些个性化的内容变成最终客户的版本。这几个层次最好独立发展,不是上面客户给我提一个需求,下面要改一道,QCD不可能好,客户提一个新的需求,上面改就完了,下面也是一样的,下面该怎么样升级就怎么样升级,一般来讲越到下面,变化性越小,变化的周期越长,到了技术平台,除非我要引入一个新的技术,比方说我们今天所讲的云计算或者SOA的架构,引入新的技术架构,才在这里做另外的支撑,相对来说周期较长,越到上面变化越快,到了上面可能很快就变了。如果有这样一个架构,又能发展,这是大家理想的模式,其实这就是平台化的架构。

很多客户明确讲在招标要求是一个平台,公司在做的时候自己封装了一个平台,但是没什么改变?平台只是手段,是为了解决最终的问题,如果要解决最终的问题,这个平台又需要什么样的特性呢?平台也要实现四个现代化前面开彬业介绍了,产品化、层次化、组件化、体系化,如果四化实现不了,很难解决QCD的问题。为什么这样呢?

层次化,几个原因必须将平台分层次,平台都是面向领域的,不可能做一个所有领域通用的平台,一定都是面向领域的,如果我们从技术平台和业务平台来讲,技术平台是面向技术领域,业务平台面向业务领域的,技术平台解决什么问题呢?一般来讲是是三大类问题,核心技术、关键技术和公共技术,核心竞争力更是技术平台解决。业务平台解决什么问题呢?业务平台解决业务方面抽象的问题,有一个合理业务模型优化的问题。这两个领域做的人可能都是不一样的,因为我下面需要技术高手来做,上面需要业务专家对业务和技术很理解的人才可以做,比方说技术平台未来性能提高一倍,加入云计算的能力,怎么办呢?不让业务高手来做就做不了。面向的领域不同,必须要分层,而且各有各发展的路线,周期也是不同的。无论是用户还是开发商经常会遇到的困难,往往做大规模项目开发时,做到一定的程度时,我发现我有一些关键的技术问题解决不好,结果引起架构的重新变动,最终造成系统重新做一套系统。这种案例比比皆是,也是最大的浪费,因为核心技术没有解决好,造成整个项目的返工。一般来讲,技术平台的研究和业务平台的研究机制也是不一样的、流程也是不一样的,所以从人力资源组织、面向的领域到研究的方法都会有所区别,所以发展的路线,技术平台1.0、2.0、3.0,业务平台1.0、2.0、3.0发展路线都是不一样的,一定要层次化。

层次化还能带来一个好处,可以更加容易响应业务上的变化,如果我有这个层次,我在这个领域增加一些特性,就可以使得整个方案在电信领域的竞争力更强了,如果加不了,就很难。所以,最好有一个平台,平台上面可以加一些和谐的特性或者某一细分市场的特性,我就可以在行业当中树立更好的竞争力,但是加的时候,又不能统统都要改,那样的话代价太大了,不够敏捷,电信行业特性自己发展,很多用户需要加就都加了,明天需要也都加上去,比较快。

什么叫基限,是可管理的,技术平台有1.0,1.0有哪些接口和特性呢?我是可管理的,未来升到2.0的时候,上面的应用基于2.0做的时候,原来基于1.0,哪些接口和组件做的,基限一定是不能改的,平台改一部分放进来,如果不能改的话,对分层次的平台提出另外的要求,也就是扩展能力要高,不能改只能在上面扩展,每个层次的平台扩展能力要够。第二就是组件化,首先是更合理的使用,一个平台封装很多的技术组件,不是说某一个业务领域用,另外一个业务领域也会用,不能将所有的东西都堆成一个技术平台,最好是说关键技术形成某一领域的技术平台,又比较轻,又可以完全复用,必须组件化,更容易继承和持续发展。我做技术组建123的团队和做456的团队都在这个领域一步步往上发展,只要接口这些东西不变的话,我是可管理的。另外可重复的检验,技术组件一旦发展了,所有的架构、自动化测试的案例都可以复用,既然可以复用,就可以自动化的检测,可重复检测,这是软件面临很大的问题,将大应用放在一起,所有东西不可以自动化检测,如果组件化就可以做到这一点。基于标准的组件架构要有支持组件的架构,自动化集成组件,自动化测试的能力,对组件自动化能力有要求,做到这个程度这个组件不错。

产品化,这也是最漠视的一环,也是平台的概念为什么容易泛化的一环,为什么产品化?任何平台做出来,为了给别人用,不是为了给自己用,我在公司内部做一个平台,也是给其他人用的。给其他人用的话,是两个团队,协同将应用做出来,还要保持可持续发展能力,所以对平台的产品化有着很高的要求。产品化内涵也是一样的,要缺陷版本的基限,要有产品化的机制,有敏捷的过程、持续集成、自动化测试。我的意思是,产品的方法和做项目的方法不一样,每一个东西变了以后,对应用有什么样的影响,经过充分的测试。如果要想快速交付产品的版本,有敏捷的过程、持续集成、自动化测试等才可以快速交付,才能满足上层需要。扩展能力满足要求。使用文档和人才培训、培养体系要齐全。为什么呢?不是给自己用的,给别人用的,产品化非常重要。产品化还有一个很重要的价值,包括了架构文档最大程度的复用,有时候仅仅是代码的复用,编程序的方式发生了变化,将代码弄过来再改一改就可以了,这其实是很低很低层次的复用,最大的价值在哪儿呢?在于架构、文档、测试这方面的复用是最大的。

这个应用上线有稳定性、安全性和系统的问题,那个应用也有呢?同样的问题要解决很多次每个应用都需要性能稳定性,每个应用都会出问题。为什么?因为架构没有成功的复用,是代码层次的复用,并没有在运行架构真正的复用。架构是为了解决非功能性需求的问题,所谓非功能性需求性能稳定性、可靠性、可管理性、可管理性是非功能性需求,有非功能性需求需要架构,既然每个应用都需要,为什么不能充分复用,为什么在一个应用里面解决一道,又要另外一个应用当中解决一道呢?而且解决的时候不知道问题出在哪个环节?所以产品化可以让你最大程度复用。

第四,体系化。体系化的价值无论是用户、开发商都是我们追求的目标,管理容易量化,很多做研发是说不清楚的,效率高和低、质量好与坏,很多时候是说不清楚的,谁也说不清楚,所以最后管理能够量化,质量可审计,做得好做得不好我是知道的。人员易培养,很多时候对工程师依赖挺大的,从产业的角度来看,绝对不是一件好事,从个人发展角度来看,也许是好事。你依赖我,我工资就可以高一点,但是从产业的发展角度来讲,不是规模化生产的模式。知识易转移,我做的东西如果换一个人接手,是比较容易的。应用易监控,运营维护过程当中有什么问题,不一定派高层,很快能检测出问题。要做到一点的话,其实就不仅仅是说一个软件平台就可以解决所有的问题,一定是还有基于平台怎样加强管理的方法论,所以我们叫平台的体系,目标是解决QCD的问题,光通过平台解决问题是有限的,如果平台加方法论形成体系化的平台或者平台的体系可以很好地解决这些问题。体系化除了要有管理的方法论,将很多的管理思想固化到工具当中,为什么我们造汽车、造飞机质量可以较好呢?因为将很多的工具固化下来了,软件固化得很少,大家讲着业务功能模块,管理上的方法固化得很少。我可以告诉大家普元做到什么程度呢?普元发一个版本到最后,一天可以出一个大的版本,除了版本,每天可以知道每个人提交的代码行数,测试的覆盖率、测试通过率是多少,都是自动化的,网上大家提交的代码集成起来,部署在几十台、上百台的服务器里面,测试案例跑完之后,生成自动化报告,报告完了之后,自动给组长、开发经理、开发人员,基于平台化的概念。

平台的建设模式,开彬也提到了,我再补充一下。用标准产品作为平台在初期时也是可以的,非功能性特写可以通过平台解决,可以是完全复用的平台。从做的方式来讲,第一次做这种事情时,基于平台的方法论,无论是哪种模式,采用标准产品模式还是标准产品的定制模式还是完全定制模式需要和方法论结合。对能力的要求是什么呢?这三种不同的建设模式,对自身能力的要求或者对供应商能力的要求是完全不一样的,如何采用标准产品模式,第一要有一个第三方产品化的平台,第二基于平台不同的方法,第三平台能够满足需求。如果采用标准产品定制模式,除此之外,对第三方专业厂商平台产品拓展能力、研发服务能力要求很高,如果要用这种模式,除了这个要求之外,还要有管控方法等,完全自己定制就更难了,还西药有足够的技术积累。我这里面想强调的一点是,想用平带的模式,无论开发商还是用户,基于平台的模式进行信息化规划和建设,最重要第一个版本的规划和第一个体系的形成是最难的,我相信有很多开发商做应用时都想做成应用型的应用,做到最后都是不了了之,我熟悉的开发商也是非常之多的,而且都是大的开发商,最终都是不了了之,第一个版本不知道怎么样做,除了有一个基限品,还有平台管理的方法和量化工具,基于平台管理,和原来的情况结合好,才能够将给予平台的体系建立起来。

另外还有一个很重要的问题,如果平台建好了,对开发商来讲,问题就变成了我到客户那儿怎样交付的问题,交付的时候,我可能会碰到一些新的需求,新的需求让平台响应又响应不过来,因为涉及到核心技术,这个客户说我需要支撑云,云能力没有技术积累,怎么办呢?平台本身持续发展也是很重要的。怎么样建持续发展能力呢?需要有对技术平台预言和规划、成果化的机制,普元也是这么做的,普元有三年五年的技术目标规划,针对技术领域,对未来的核心技术、关键技术和公共技术,梳理之后可以看哪里好哪里不够,哪里需要提升,最终梳理成每一年的技术目标规划解决哪些技术问题,之后会进行技术预言的立项,将技术风险全部解决了,最终回将技术上的东西转化成技术货架,产品平台就可以直接用了,包括云计算对移动终端的支持,都是通过这样一套机制操作的。往往会发现比客户想得要早,规划要早一点。

最后我想和大家分享一下普元的情况。普元现在的产品有很多,EOS、ESB、BPS,这三个核用一个平台的。安装升级的工具、对云能力的支持都是一样的,开发治理运行平台有很多共同的东西,还有其他领域的内容,如移动终端支持,这些都在技术平台里面。技术平台在上面长出了BTP,光做交易还不够,是指大规模海量交易,在上面长出BTP,两者加起来面向交易市场,而且这两块都可以独立发展。SDP,是云环境下面的交付平台,有很多的ISP开发互联网的增值服务,张三天气预报,王五的彩信服务和李四的位置服务,部署云的开发平台,将服务编排一下做成自己的业务平台将其运营,从SDP平台长出来的,对产品平台化的要求是较高的,ESB和BPS都是一样的,BPS上面有高级企业版将可靠性和量的架构上要求封装到其中,就变成高级企业版。流程银行版是说在BPS里面加了很多内容管理和影像处理变成高级企业版,产品架构是这样的情况。

普元开发工具做得是很不做的,我们做得是不是很难呢?也是很简单的,因为下面有一个开发工具技术平台,开发工具的技术平台有一些共同的基础,还有一些核心的框架,核心框架做任何一个开发工具,不管做任何一个领域的开发工具都需要项目、开发团队、开发调试、部署、打包、文档生成等功能,不管做什么开发工具,否则不是完整的开发工具,要想做一个完整的开发工具都有这一套内容的。这是我们自己技术平台,EOS、BPT、BPS、ESB最终开发工具是不一样的,在上面做配置和扩展形成了几个不一样的开发工具。在座有可能变成银行的开发工具和某一个业务系统的开发工具,也是在上面扩展就可以了,本身我也可以自主发展,在上面也可以自主发展,这是平台化的好处。以后做什么开发工具都快,比别人快多了,好多了,为什么?因为一直在进行,前瞻性也好,这拨人在做规划和引进,一直在不断地提高质量,所以会带来各个方面的价值。

这是UI集成技术平台示例,我们支持这么多,手机、平板电脑、PC以及遥感设备,上面还有很多在UI要用到的核心技术和关键技术,最终我们也可以将其变成各个应用领域的东西,比方说管理仪表盘、统一监控平台都可以基于UI平台扩展,运行环境的平台,高性能、高可靠性、可管理性、服务事件的能力、运维支撑、日志的体系都集中在运行环境当中,每个应用都需要,不需要日志,不需要日志就没法弄,将东西卖到全球市场就需要国际化,只要有应用就需要高的稳定性,这些东西应该将其共享。治理环境的技术平台,企业在IT这一块有着大量的信息需要集中管理和检测,并且集中做出反映,也需要平台化的体系支持,今天要监控是否有违规交易,我认为可能是违规的交易,触发相关的事件,一个银行有欺诈行为的存取款,一旦检测到这样的事件触发另外一个事件响应他,让这个客户经理劝服,这也是监控的机制,包括一个系统调用很多其他应用的服务,什么时候调,是否调得成功,质量如何,都需要管理和治理,需要统一的架构,这是关于治理环境具有这样的架构。

普元在用平台化的思路做产品和技术思路,也希望这些经验给在座的各位未来能够带来一些有意的启示。谢谢大家!


(本文不涉密)
责任编辑:

站点信息

  • 运营主体:中国信息化周报
  • 商务合作:赵瑞华 010-88559646
  • 微信公众号:扫描二维码,关注我们