打印本文 打印本文  关闭窗口 关闭窗口  
中科软左春新领域新模式促使行业软件变化
作者:franklou  文章来源:腾讯科技  点击数 0  更新时间:2010/12/11 13:25:42  文章录入:admin

图文:中科软总裁左春发表主题讲演

中科软科技股份有限公司总裁左春(腾讯科技摄)

腾讯科技讯 2010年12月10日消息,中国软件技术大会第八届今日在北京国家会议中心隆重召开,中科软科技股份有限公司总裁左春现场表示,行业应用软件体系结构受到与业务模型、新的商业模式的影响,新的领域业务模型、新的组织模式和商业模式和新的技术的运用这些模式促成了新的行业体系结构的变化。

他表示,中国在多个领域已经开放,软件行业是一个超度竞争的市场,这必然带来一个超度竞争的经营方式,这恰恰就是体系结构,业务模型的机会。中国的很多企业,特别是大企业数据量非常大,还有一些国际标准在不停的变,这些标准时比较新的,这些新标准结合应用体系结构带来了很多机会。

他认为,行业应用软件体系结构受到与业务模型、新的商业模式的影响,新的领域业务模型、新的组织模式和商业模式和新的技术的运用这些模式促成了新的行业体系结构的变化。

以下为左春现场发言实录:

大家都知道体系结构是我们软件行业里非常重视的一个内容。今天我想通过以下几个方面介绍行业软件体系结构。

首先架构师是在做行业应用或者做软件工程师里大家看着相当是一个官职,大家在职业规划中都很想成为一个架构师。在座很多程序员或者说技术爱好者都想成为架构师。所以今天我也想借这个技术大会的平台跟大家谈一谈我们对软件体系结构的一些看法,通过介绍让大家对这个内容有比较泛泛的了解。我看了日程安排,大概有八分之一的演讲者会谈到这个内容,在这儿我先抛砖引玉,让大家对软件体系结构优一个简单的介绍,这样便于大家在听后续讲座过程中有一个概括性的了解。

首先要想成为一个架构师或者想成为一个专家要对一个内容的定义非常了解,或者是研究它的定义。所以,软件体系结构它的定义有很多,在这里因为时间很短所以简单归纳一下。后面会讲如果你找到一个很好的参考文献,会有很多架构定义,在这儿我简单给出一个我的归纳定义,在这个基础上讨论一些架构的共性、特性等等内容。

软件体系结构我们把它定义就是元素和元素之间的关系形成系统组成的结构。元素强调了基本概念的内容、对象、关系强调了约束准则等等。环境就是为了提高效率把它的背景做一些说明。总而言之,我们现在建立的软件很多是建立在一个认知域的过程上。特别是做行业应用的时候很多软件是服务业,举个例子,比如在金融里,银行、保险或者是电信,内容很多是服务里的内容。这些服务是产品,它的模型是建立认知域上,这是架构师的特点,他要对自然语言和认知域模型有很高的理解。在体系结构共性里面有几点:

首先会强调概括和抽象,做元素和元素之间表述的时候要尽可能的使得分布均匀。再讨论元素和元素之间进一步的变化和细化这就是体系结构强调的要点。回顾定义简单说一下,大家可以看看参考文献,这些文献中对体系结构因为有很多翻译此比如把元素翻译层构建、组件,有的时候翻译成组装。还有就是关系、约束、形式、准则等等。很多定义的词是相互借用的一个单词有很多种不同的含义,在这儿就是强调它的概括性。在这些定义里还会出现环境、背景上下文等等这样的描述。

三个特性:简化性。大家知道在一个认知域里头一个复杂的事情想说清楚就要适当的简化。所以大道至简这都是老子的概括总结,大道理可能要很抽象、很简单的词语表述这样才能便于大家沟通、交流。所以体系结构更像是给世界做一个蓝图,这个蓝图有不同的流派。最典型的比如说给一个景物做一个蓝图可能去画画,画画过程中有古典派、抽象派、印象派。画画过程中作为一个普通者觉得一幅画挺好,挺真实的,但是现在出了很多印象派或者更新的潮流这就给我们一个感觉,原来描述现实世界可以由很多种方式。而且这些方式都是不同的方法去递进,在递进过程中似乎没有一个标准答案。这样的话就给在座各位要想成为架构师或者成为体系架构的分析师就开了一扇窗。就是说原来这个东西大家都有一定的流派,我自己也可以打破一个框框讨论这个事,原理是这样,要想成为一个流派的引导者还有一个公众的认可。但是主要方向是这样的。所以简单的说每一种流派都有不同的方式递进显示内容。这就是孔子说的“书不尽言,言不尽意”,就是说怎么样写也表达了你说的内容,怎么样说也表达不了你本身的想法。孔子的说法非常正确,这是思辨。孔子先人说的这样书不尽言,言不尽意说了这么高深的话,但是问题是孔子没说书更尽言,言更尽意。细分文化是用技术方法使书更逼近言,用言更逼近意。所以我们现在即要理解或者发扬传统的文化,孔子的这些文化,同时也要看到它的欠缺的地方。看到技术上的推进。怎么样使得我们更加逼近我们现实中要表达的现实内容。所以要想做个架构师首先要特别熟悉你的蓝图,抽象或者把它简化。

另外简化过程中要特别强调高手和低手之间的区别就在于你用尽量少的概念或者变量,去表达更多的复杂的现实事情。这就是现实效率的做法。在系统里主要思想不是来自中国的,系统论的思想是要强调抽象,大家都知道钱学森提出了很多系统论的思想。在很多船舶是他提出来要做总体锁,有的人研究火炮、有的人研究动力,但是需要有一个总体锁把握总体分类,这就相当于简化过程中有一个总体的概念。所以想做一个架构师或者理解软件体系结构的话,理解、抽象、概括是具体的意义。

不同的方法会形成不同的流派,而且流派有点跨越像艺术的发展,而不是像纯技术的。为什么现在很多教学领域强调不要把工程师单纯的做技术,而是要在艺术方面做更多的可融。

另外一个重点就是简化,我们要分析简化。大家都知道简化其实就是忽视,就是要忽视一些东西。像我们看东西或者听东西一样,有的时候还真能忽视一些东西。看东西的时候我们能把焦距锁定。或者闻的时候,大家知道香菇做的时候焦灼于某一种味道,最后真的能闻到这种味道。所以高级行业应用和体系结构式是有很好的忽视策略,就是把什么忽视了。忽视在生活中的例子非常多,举个例子我们买房子,如果拿出工程图纸,有两米多高,说这就是你们家的房子,一页一页翻吧。还有一种做法是楼书,就两页,有一个说明,卧室在那儿、起居室在哪儿等等,看楼书以后就能大概知道这个房子功能配置情况。所以到底是工程文件好还是楼书好呢?他们各有作用。但是现在作为一个体系结构师的话要对楼书有一定的概括,所以这就是忽视。在忽视的过程中,往往是先忽视通用环境性的东西。就像我们讲故事,我们讲红楼梦,不要一个一个介绍人,而是先从故事情节讲,然后再去介绍人。忽视的时候我们很倾向于把背景通用的东西忽视掉。所以大家注意,要忽视常识性的东西而把那个领域特点的东西留在那儿。

第二点就是均匀性。做体系结构因为有很多种分类,有点像数学上的均匀划分,就是把一个全景分成互相交不同的部分。均匀划分就是使得每一块都尽可能的均匀。比如我们把一年分成春夏秋冬。一个好的体系结构应该有一个均衡感的感觉。由于划分的存在所以有一个更好的比较。虽然我不知道划分是不是更好,但是当别人有一个更好的划分的时候我们就可以有一个很好的比较,所以体系结构做的时候是有一个可比较的东西。因为划分在认知域里面都是一些概念,当我们描述认知域模型的时候,划分和划分是否均匀,实际上每一组人都有不同的观点。

第三点是演化和辅助作用。老子讲大道至简,大道至烦。随着演化会逐渐复杂化。像我们一开始有八卦然后有六十四卦等等,总体来讲是要让它月来细化。所以体系结构有一个由简至繁的特点。这点越是在高层,行业应用里数据变化越多。越是在底层越稳定。

另外就是它有辅助推理作用。分类本身就是推理,为什么易经能够算卦因为它也是分类,假设我们证明一个数的特征说它不是奇数所以没有什么什么,所以分类是对于我们推理某种结果的一个比较好的工具。所以信息不完备的情况下分类也是基于某种结果和条件的推断。

行业应用软件体系结构是以某领域为背景为主体的元素。像我们的大领导或者佛家说出来的话概括性很强,怎么都没有错,这就是抽象的好像。但是实际定义中它又不是一个针对具体问题的解决方案。从这个定义上来看我们更关注领域的元素是什么,领域元素之间关系是什么?它的原理同样是忽视通用的。我们下面要讨论的是软件有很多种,我们开技术大会有很多厂家都谈,有些厂家是做系统软件的,有些厂家是做通用软件,有些事做行业软件的。每一类软件都有体系架构和架构师。通用的部分就是强调组成和组成的概括,专用的部分因为每一个领域有自己的关系或者自己强调的东西,所以变得各不相同了。

下面我们就给出一个行业应用软件。行业应用软件体系结构特点,只要是行业应用体系结构一定是用行业软件建立起来的结构。那么这个有什么样的元素?有什么样的关系?有什么样的支撑?举一个保险的例子,当它纵向的元素相当于产品比如说财产保险、人身保险、汽车保险等等。它的行为、之间的关系有一些修改、理赔等等这些这是行为的关系。所以一个行业应用软件的架构师是要对知识有高度理解的,不然没法做架构师。因为如果对行业不清楚,你当然可以当架构师,你可以说反正就是那些元素,那些关系,一个好的架构师是强调领域中最主要的内容。这也是为什么在软件行业,为什么中国的软件有机会在行业应用中涉及到各种领域知识单纯技术工程师并不是对这个很熟悉。

下面简单比较一下行业应用软件和系统软件在体系结构上有什么样的一些差异?首先就是行业应用软件想要表述一个现实和复杂认知域的关系。系统软件已经被抽象在底层了,它是一个相对比较稳定的结构处理。比如操作主要对象就是CPU、内存、进程、文件系统等等这些。它不会按照这个领域知识再去扩展。行业应用软件体系结构强调组装的概念。而系统软件更强调组件。比如炒菜同样的原料,同样的油盐酱醋,但是它出来的东西味道不一样,客户感受不一样,行业软件体系里很强调组装,而且它后面有很多冗余的组装。虽然冗余但是我们用起来很方便,甚至我们在定义上还相互循环定义,这就是我们在建立模型的时候的一个特点。还有一个就是,在组装领域因为基础是语言学,这些词我们不用了怎么办?我们不用了可以把它边缘化。但是可能哪年时来运转,这个词又火了。这就是这两个体系结构之间的差异。

行业体系结构都是有约束的语言,系统软件更倾向于逻辑性更强的语言,技术语言很容易被淘汰,如果你想成为体系结构专家要加强定义的理解,定义看起来很抽象,但是要总结然后完善自己的架构。通过这个我们去交流,因为技术上最大的问题还是交流。办软件技术大会也是这样,我们是技术交流平台或者技术交流方法很落后,所以技术大会要解决这个问题。

在很复杂的内容上我们要学会用大道至简的思想体现在架构里。行业体系结构中要特别突出这个领域的知识。通过这些模型和专业术语使我们和业务人员沟通的更加流畅。

还有一点,为什么我们特别强调领域模型,行业体系结构,就是因为我们现在并不落后。刚才也说了中国人有机会,机会在哪儿呢?首先中国多领域已经开放,是一个超度竞争的市场,这必然带来一个超度竞争的经营方式,这恰恰就是体系结构,业务模型很显然我们的竞争比起欧洲来讲,我们竞争度很高,很有机会。还有就是中国的很多企业,特别是大企业数据量非常大,比如做保险,因为中国人口众多,数据量很大,国外没有这么大的数据量。还有一个就是技术的优势。主要是反应在做一个应用软件在建的初期,有一个当期技术依赖,就是对当期技术依赖,像我们盖房子,如果再早一点盖我们可能依赖于砖,再往后可能依赖于某种框架。每一个建筑物对技术有初期依赖,这方面我们也是有优势的。还有一些国际标准在不停的变,这些标准时比较新的,这些新标准结合应用体系结构给我们带来了很多机会。

总之,行业应用软件体系结构受到与业务模型、新的商业模式的影响。我们现在谈云,云有点像一大堆房地产商突然要转型做物业公司。因为他可能觉得房地产竞争太激烈了,物业每天都收钱所以商业模式也是推动改变的主要原因。领域业务模型、新的组织模式和商业模式和新的技术的运用这些模式促成了新的行业体系结构的变化。