普元高级副总裁刘尔洪
“尽管所有的行业都在追求QCD(质量Quality、成本Cost与交货期Delivery),不过做软件与做传统行业依然有着很大的区别。这其中最为关键的一点就是,软件开发的质量往往难以控制。”普元高级副总裁刘尔洪是这样描述软件行业的开发困境的,“因此,软件企业必须要了解一个基本概念——如何基于平台构建软件产品。”
平台改变世界
在我们的生活中,无处不充斥着“平台制造”的概念。小到我们手中的玩具,大到驾驶的汽车、居住的房屋,基于统一平台构筑个性化产品的例子屡见不鲜。举例来说,汽车制造的最初,是为特定用户手工打造。当客户对汽车的需求量增多以至于产品交付难以满足时,制造商开始专注提高生产效率,降低成本。福特的流水线实现了产品的高速生产,并进一步激发了汽车产业基于平台,甚至模块化的先进生产理念,为不同客户的个性化需求提供大规模产品交付。
类似这样的例子还有很多。一方面,制造商需要满足用户的不同应用需求,开发出不同的产品以应对市场;另一方面,制造商还需要掌控开发和制造成本,为不同的产品找到相同的诉求点。在这样的两相博弈之下,基于同样的基础架构和模块,并在此基础上实现模块自由搭配的模式开始涌现。各种行业的实践证明,平台化生产与制造已经成为达到“个性”与“共性”融合的最佳方式之一。
美国《时代》网站曾表示,在科技产业领域,任何企业想要取得绝对市场优势,首先需开发出性能优越的平台,同时基于此平台实现用户量的规模化增长。从这一角度出发,普元也提出了自己的一个观念——平台改变世界。
软件平台的“四个现代化”
刘尔洪认为,软件平台化这一理念的中心思想有四个方向:产品化、层次化、组件化以及简约化。他将这四个方向戏称为“四个现代化”。
产品化是四个方向中最重要的一个部分,按照刘尔洪的观点,“产品化可以看成平台最终产生价值的系数,如果它是0.5,其他做了一百分,也只有50分。”实际上,这一部分主要的内容就是,如何将开发平台向应用转化,以及这种转化的实现可能性。无法最终满足用户需求的平台是没有意义的,因此,如何能够依托平台建设,产生出各种不同的应用产品,体现平台价值,是普元软件软件平台观念中最被看重的一个部分。
层次化主要解决的是不同应用问题的统一解决。一般来说,在开发层面,从上到下会有不同领域的问题需要解决,而解决不同领域问题则需要不同领域的平台。传统的解决方式往往面临重复开发、繁琐管理的缺陷,消耗大量的人力物力。因此,设计平台时要有层次化的架构,能够分得开,分得开是很重要的特性,技术平台和业务平台之间有清晰的接口和依赖关系,不是耦合在一起的,依赖关系是需要管理的,业务平台和业务之间也有着清晰的依赖关系。
组件化,顾名思义,是通过合理的划分,由不同的人负责不同的性能组件要素,然后再根据应用需求进行搭配组合。
最后,刘尓洪重点介绍了简约化的部分。他认为,平台本身的构造,还会涉及到方法论层面的东西。人才培养的体系不仅仅是有一套软件就足够了。因此,如何实现软件开发的简单易行,摒弃复杂要素,是软件平台成功与否的一个重要关隘。
软件平台与SOA:貌合神不同
对于普元软件来说,今天所提出的整套“软件平台”概念,是通过此前的不断摸索和时间积累而产生的。在构建出软件平台模型前,普元经常会遇到一个问题:如何满足不同用户的开发需求?
从开发角度来看,不同的应用从某种程度上是可以共享开发工具的。不过,开发工具的通用却并不能保证最终产品的表现能够真正满足用户需求。因此,尽管开发工具相同,但是开发人员还是不得不为不同的项目分别进行二次开发。更为让人难以接受的是,由于开发工具的目标已经不同,因此,其演进路线也是大相径庭。这样一来,不仅浪费了大量的精力和时间,而且项目的管理也成为了非常繁琐的工作。
实际上,类似于普元“软件平台”的概念很早以前就已经为业界所认知。其中,SOA(面向服务的体系结构 Service-Oriented Architecture)是最为我们所熟知的一种体系模型。从实现方式、开发结构、开发目的等层面来说,二者有着很大的相似性。
刘尓洪并没有讳言软件平台与SOA的关联:“平台化也要用SOA架构理念做平台化,才能够体现平台化最大的价值。”不过,他认为,二者从内涵来讲有区别的:“SOA更多是在企业运营环境中间怎么样复用,建立柔性的架构,从架构理念角度着眼。这与软件平台化解决的东西很多东西是相通的。但是平台化本身强调的是更彻底复用。这里面不仅仅包括对架构的复用,包括对相关管理体系、文档、测试等各个方面复用含在平台概念当中。”
“对于软件平台来说,首先要达到的一个目标,就是要实现第三方的易用,同时还要保证架构、文档、测试等方面复用性的最大化。”刘尓洪表示,“从本质上来说,软件平台化是一种更为先进的生产模式。