扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
来源:金蝶 2009年11月24日
关键字:
倪晓兵:金蝶中间件产品经理
各位来宾大家下午好,我来自金蝶中间件的产品经理倪晓兵,大家在外面易拉宝上看到的信息,这个主题演讲是我们的技术总监,也就是说我们的研发中心总经理张勇先生做主题报告。可是他临时出了一点意外,什么意外呢?有点儿发热,他在深圳机场每次过安检的时候上面有一个摄象头被拦下了,公司紧急说让我去,于是我来了。
今天下午我给大家带来一个主题的报告是中间件2.0创新IT商业价值。这是一句完整的主谓宾结构。我们看第一个词中间件,这三个字组合在一起,字大家都认识,但是有时候理解起来很痛苦,而且这种痛苦也会影响到我的生活。比如说我这次在上海出差,出差完以后我住宿酒店,我回深圳要结帐。服务员会问我开个人还是开公司,我说公司,他问我公司名字叫什么?我说金蝶中间件。这时候服务员就不知道中间件怎么写。我说中间不是前,不是后,不是上,不是下的中间,还有一个件就是一件两件的件。还有一个困惑,有的朋友问我你在干什么。我说我在金蝶中间件,他说是新时代的ERP产品吗?到底什么是中间件,第二金蝶为什么做中间件呢?
我们看第一个问题,到底什么是中间件?说这个问题可以给大家举两个形象的例子。第一个例子我们说艺人,我们每天在电视机看到,比如这里列的刘德华。他作为一个所谓的影视歌三栖明星,他的本职工作就是把戏演好,把各歌唱好。但是这些艺人的生活不是很简单,比如要不要做慈善的捐款,我如何提高个人的声誉,他们有时候分身法术。从此在娱乐圈就有了经纪人,从此艺人很简单,我就关注唱歌演戏,或者要不要上通告,所有的东西都是由他的经纪人把琐事安排好。
我们再看第二个例子。古时候交通不方便,我们也没有邮局。我们传递信件的时候面临很多问题,黑店,没有驿站,住店怎么办?在古时候慢慢衍生出了一种机构,这种机构就是镖局,由他们把钱传递给目的地。这是我举的两个例子。
同样在IT领域也是一样的。我们在做一个企业级的应用,按照道理讲,比如我们做一个ERP产品,做一个集团财务或者标准财务。我们程序员关心的应该是我的业务是什么样子的,我的凭证如何实现,我的支出和收入是相等的,我的帐如何配平,我的帐如何展现让领导感知。但是我们程序员除了关心这些东西以外还需要关心很多东西。一个应用系统运行在操作系统和数据库之上,我和操作系统打交道,怎么打交道,我存储数据如何和数据打交道等等。我开发第一个应用系统的时候考虑这个问题,我开发第二个应用系统还要考虑这些问题。长此以往,大家发现这里面其实有很多共性的东西,我们可以把它抽象出来。这些共性的东西我们抽象出来以后,以一种共性凝练的形态,产品化以后在操作系统、数据库之上,在企业应用的业务之下,我们形成了一套产品。这个产品由于最先在国外出现,根据国外的想法。既然你是操作系统和数据库以上,在应用软件之下,在中间这个位置,就给它起了一个名字叫做中间件。
这里是一个比较形象的说法。我们下一步应该说中间件的精确定义是什么东西呢?很抱歉,目前在业界还没有,在学术界也没有对中间件很精确的定义,定义什么东西是中间件。我们只能说在学术界有一个基本的共识,这个共识,中间件是位于操作系统和数据库之上,位于应用软件之下的,起一种连接作用的分布式的软件体系。怎么理解它呢?我们回头看一下,中间件产生的一个直接原因。我们开发一个应用系统,在PC机或者Windows操作系统这个程序员在这个领域非常的专注,我突然告诉他不行,PC加Windows我们要要换,要换到别的平台。这样这个程序员傻眼了,说不懂。这时候我们需要有一个东西屏蔽这些差异。
另外一方面有两个系统,一个,在PC加Windows的平台上构建出来的,另外在别的平台构建出来的。这两个应用系统如何通信,所有的底层东西不一样,通信起来变得非常的麻烦。这是中间件直接产生的原因,中间件的产生就是要解决这两个问题。它提供了从应用系统往下提供了中间层用来屏蔽底层的差异,也提供了标准的接口用两个进行互操作的访问。总结起来就是一个词,中间件的基本能力互操作。
从此,我们总结一下中间件产生的根本原因。其实很简单,就是把我们在应用快法过程当中所碰到的底层、基础性的技术框架性的问题全部抽象出来,把它们的共性凝练出来,最后形成一种产品化的产品。这种产品可以提高我们的开发效率,以及提高我们软件开发的质量。这个就是中间件出现的根本原因。
由于中间件这个名字本身非常强调中间这个概念,导致现在产业界说我是中间件,你也是中间件,很多开发的框架和开发的平台被称之为中间件,这给我们产业发展带来一些困扰,会使中间件从一个基础软件向一个更底层的领域发展带来一些阻碍。我们说在产业界简单把中间件分类,分为常见的有四类。学术界的分类可能更多,学术界有8种分类。产业界是这么分的,应用服务器、消息中间件、集成中间件、交易中间件这四类。
中间件有什么基本作用呢?有三个基本作用。第一个基本作用,作为一个运行期的引擎,我们所有的应用可以部署到中间件,而中间件里面本身已经抽象了很多基础性的框架,基础性的服务,这些服务能干什么呢?能响应我们用户的请求结果,同时可以帮助我们用户访问底层资源。中间件首先在运行期为我们的应用提供一个稳定、安全、可靠的基础运行服务,这是中间件第一个作用。
第二个作用,我们的EAS,包括所有的应有系统都是一个由程序员写代码开发出来的过程。开发的过程无非有三样东西非常的重要。第一编程模型是什么样子的,第二我调用的API是否标准化,是什么样子的。第三我们的业务逻辑是怎么样的。中间件关注编程模型和API这部分。第三个作用就是辅助性的作用,我们可以提供一些应用框架和开发工具。这些就是中间件的基本概念。
中间件目前来看在企业的应用当中占的比例越来越重了,基本上现在每个企业应用开发都要使用到中间件。 中间件现在在业界分成两个阵营,第一阵营就是微软的阵营,这个阵营玩家只有微软一家。还有一个阵营就是JAVA阵营,它最基本的态度就是开放,用开放的态度让大家参与到他的发展规划当中来。正是因为这个原因,中间件JAVA这个领域有很多厂商加入其中,推动JAVA中间件的发展,金蝶也是加入其中,也是努力打造JAVA的中间件。
上面我们大概阐述了什么是中间件。随着我们说现在的英特耐特互联网时代的发展和兴盛,会导致一个什么问题呢?在互联网时代,我们的业务系统会越来越复杂,我们需要的业务功能越来越多样化。在这样的前提下,中间件也必须有一系列的发展和变化的趋势。我们首先回顾一下中间件的起源,中间件的起源就是四个字,共性凝练。原来程序员做很多事情开发一个系统,大家受不了,我们抽象一个东西,我们基于这样的东西开发,我们能够降低工作效率,并且提高开发质量,这是共性凝练的东西,我们说是技术驱动。在这样的起源之下,中间件下一步面临什么样的发展趋势呢?我们可以简单看一下。第一个趋势就是中间件在变宽,变厚,因为互联网应用变复杂的,支撑应用的平台自然也需要变得多样化和复杂。多样化无非表现在两个方面,第一个就是中间件的类型越来越多,传统的中间件很简单,最开始有交易中间件,后来有了应用服务其,消息件,门户等各种各样的中间件平台。第二个变厚是什么?原来我们说它的共性凝练是技术方向的共性凝练,可能在后续的发展当中,越来越多业务组建被抽象多中间件当中,让中间件在上层变厚。同时,可能有更多的操作系统和数据的功能同样抽象到中间件去,中间件的下端也会向下延展。第一个趋势,中间件慢慢会膨胀起来,我们说中间件变宽变厚了。
第二个趋势就是面向服务。包括刚才我们的各个主题演讲很多次提到了SOA这个词。我们在这里先不谈SOA,我们先谈SO。面向服务是什么东西呢?我个人更倾向于北大梅教授的说法,他说面向服务很简单,解决两个问题,一个是解决软件可互用度,一个是解决互操作。中间件面向服务这个领域,让面向服务这个飘渺的概念能够落下来,可实施,可服务,可发展。
趋势三总结起来就是一体化。为什么我们现在提一体化呢?中间件经过了快20年的发展,它的发展步调是非常快的,导致在这里面出现一些问题。中间件目前在发展到这个阶段,更多是一个过渡期,在这个过渡期我们柔和起来弄成一个完整性的平台把它归类,这就是一体化的方面。我们统一内核,一个中间件不管有多少种类,我们希望它是一个统一的内核。在这样的统一内核之上,我们的中间件产品可以进行随时的演化、扩展和蔓延。因为JAVA语言本身缺乏模块化的东西,之前在JAVA中间件就面临这个问题,内核无法统一。但是随着模块化技术的提出,给我们在统一内核方面提供了很多的契机。
第二我们现在面临很多编程模型和应用框架。这些编程模型和应用框架有时候会影响我们的开发效率和开发质量。未来我们希望有一个统一的编程模型,提高我们的开发效率,提高我们对软件的开发能力、支持能力和实施能力。
我们开发出来的这些东西和这些企业级应用我们需要部署到中间件上去。由于部署的类型非常多,我们需要对于它进行统一的维护和管理。这个问题其实我们之前经常会忽略掉,以至于到最后运委的时候和升级的时候给我们带来非常重的成本,痛苦不堪。不管以后有多种类型的中间件,我们最后会把它统一起来进行管理,降低我们在运行期的维护成本。这是它的一体化的趋势。
趋势四,现在我们流行一个词就是虚拟化。虚拟化在之前已经有很多地方,我们已经是实现虚拟化了。我们仔细想想JVAV这种平台的出现也是一种虚拟化,操作系统虚拟化了。中间件也是虚拟化了,它把一些基础的框架性的技术架构虚拟化了。随着现在互联网的时代,虚拟化的概念被拉的很宽,现在什么东西都需要虚拟化,硬件需要虚拟化了,第二我的业务功能需要虚拟化了,我所有业务都要虚拟化。我们经常流行的说法就是云计算和PAAS这样的名词层出不穷。虚拟化和云计算也是中间件未来的发展方向。
由于云计算下一步成为一种流行,意味着在后端所有的计算模型是另外一种革新的模式。在前端呢?这个问题我前两天一个非常偶然的机会看了一下电视,那个节目叫做《完全时尚首层》,李辉主持的。这样非常具备娱乐性质,非常大众化,一点儿不专业的节目里面他提到了两个名词。她说Fromework7的发布给我们IT带来重大的改革,第一个主要的方式就是大家所有的操作都用浏览器完成。在后端通过云端计算完成我们的业务功能。未来我们的IT发展,一定是浏览器统一前端,买了一台机器我们不用装任何操作系统和软件,我们只要有一个浏览器打开,我可以在上面做我所有需要的业务功能。后端呢?中间件和操作系统、数据库进行深入的融合,融合在一起提供一种超规模的计算能力。我们可以把它想象成超级的应用服务其或者超规模的应用服务器。
我们把这几个趋势总结一下。原来的中间件认为是传统的中间件,经过一系列的变迁以后,变迁出了新的中间件的平台和产品,我们如果认为原来传统的是1.0,那我们不妨把这种新的演化出来的中间件平台称之为2.0。由1.0到2.0所有的变化过程我们抽象成四个方面。分别是服务化、自治化、业务和一体化。我们再抽象一下用一个更好记的名字叫做这变化的方向,我们抽象为敏睿融和。这就是中间件2.0的基本概念。中间件1.0的诞生是由于技术方面的驱动,由于程序员实在受不了繁琐的开发工具量,我需要增强开发效率和开发质量,一些搞技术的人做出了中间件这样的东西。中间件2.0的出现它变宽是因为业务越来越复杂,业务越来越多样化,也需要中间件的类型越来越多样化。它变厚说明越来越多的业务模型被抽象到中间件了。所以中间件2.0原始的驱动力是业务驱动的方式。
我们看中间件重要的技术特征。第一个看敏,敏就是面向服务的方式,提供敏捷的IT架构。包括我们说SOA也好,包括我们说面向服务也好,SOA和面向服务的开发过程和我们的传统不一样。我们所有都是从业务出发,通过把业务抽象,对我们的业务建模得到我们一套业务上流程化的模型,针对这些模型当中的各个活动我们进行服务的开发,对服务进行注册、组装,再用流程华化的模式把这些业务串联起来,最终交付给用户使用。面向服务的开发里面,我想和大家强调的一点就是服务的概念。我刚才提过了在北大梅老师的观点里面,他认为服务解决了两个问题,一个是互操作,一个是软件可互用。从这个观点引申一下,我们认为服务是一个什么东西?举一个例子,在古希腊神话里面,当时每个人说的话都是一样的,都可以互相听懂。后来天神害怕了,我住在天堂这么开心,下面的人用同一种语言说话,他们的理解和相互沟通能力大大增强,他的生产力发展是不是威胁到我的地位了。所以他让这片人说这个语言,让那片人说那样的语言,让他们无法沟通。IT经过这么多年的发展,从40年代开始第一台机器出来,经过这么多年的发展,出现了无数的平台、无数的编程语言和无数的数据模型,这些模型都是异构化的。服务提供了一种标准化的东西,每个人都任,相当于所有的应用系统通过一种数据模型和数据对象进行交流。在这种方式下,可以达到一种无边界的信息交往,而且这种交往都是非常敏捷化的。
第二个特性我们说睿。我们作为中间件的产品本身应该具备智能性。有一个实际的例子,我们国内一个很大的电信运营商,他有一个很大的机房,他在这个机房里面部署了很多的硬件,每个硬件上面都部署了中间件,中间件之上部署了很多的应用系统。有一面之词和他们交流,他们说很痛苦,痛苦在什么地方呢?经常某一个业务系统荡机了,发生这种事情他们不知道,客户打电话投诉以后他们才到机房慢慢排查哪个应用系统出错了。第二个方面他希望得到一些预警,出错之前给我一些消息它可能要出错了,万一我没关注的东西出错了,用一种手段让我很快的查出错误。最后他们提出了第三个想法,所有东西能尽量不出错是最好的。这里我们用自治化的方式解决这个问题。自治化就是集中的管控,所有运营服务器,所有中间件平台,所有的信息都在一个统一的监控管理平台看得到。在这种情况下,有任何其中之一发现了错误,我就很容易观察到发信错误。第二就是睿智的洞察,中间件2.0网络结点把自己的健康信息和健康状态发布到一个统一的数据中心,一旦出现错误我知道哪一台机器出错,并且我对出错的情况进行回访。第三点就是智能适应。有了这些数据以后,我希望能够尽量的,根据这些数据进行统一的模型分析,最后能够做到一种自动化的优化配置,尽量让你的产品不出错。
第三个特点我们说是融,融更多就是业务化。我们回想一下刚才所说的面向服务的开发方法,这个蓝色的开发过程是否可以模板化,对开发过程所有的配置进行模板化,在开发过程所运用到的业务组建抽象出来,以一种业务构件的方式提供出来,这样我的开发效率是不是大大的提高了。甚至我可以做到这些所有开发配置模板提供到统一的服务器上面,我们所有的开发人员可以和服务器进行通信,从下面下载模板协助开发。
我们看最后一个特性,我们抽象成和。和我们更多强调一体化,这块更多的阐述没有了。现在是一个过渡阶段,我们需要一体化,统一的内核,统一的编程模型和统一的系统管理。这就是中间件2.0的趋势和它的特征。我们希望在互联网高速发展的今天,在未来的阶段通过中间件2.0敏睿融和的支柱,可以提供稳定可靠,并且更加智能和敏捷的平台支撑我们的应用。
金蝶为什么做中间件呢?金蝶作为一个传统的从财务软件向ERP过渡的厂商,我们96年做一个Windows版本的财务软件,这个软件就是金蝶的KIS的前身。到99年的时候微软推出了DNA三层架构,我们在这个架构开发了我们的K3。但是,在初期开发的过程当中,由于DNA刚刚推出来,本身不成熟,在开发的过程当中我们遇到了很多的问题。微软是我们很好的合作伙伴,我们向他反馈,但是得不到解决,这个问题的后果由我们承担。这样的情况让我们意识到一个问题,核心技术不掌握在我们自己的手里。我们的徐总和金蝶集团的CTO袁总一商量,我们要搞金蝶自己的核心技术。金蝶自己的核心技术也是面临一个方向性的选择,走微软这还是JVAV这一套,最后我们选择了在JVAV领域有所突破,做中国人自己的突破技术,我们开始做中间件。我们从99年第一行代码诞生到现在十年了有6个版本,我们目前形成了完整的产品线,从底层的运营服务器到对SOA方面的支持。从中间件1.0向2.0过渡时期,我们也是改进我们的产品,适应2.0发展的潮流,以及我们和北大合作,做管理器服务的平台。这是我们希望在2.0方向做出的努力。
我们金蝶一贯禀承的技术领先,产品至上的理念,在产品上一直领先。在JVAV这个领域游戏规则制定方面,我们有发言权了,虽然我们现在发言权的分量不够,但是我们已经开始这样做了。我们希望在未来国际标准规范方面,我们希望发言权的份量大大提高。
因为这些原因,我们在十年间建立了2000多家客户和200多个合作伙伴。在四库十二金我们也做了四个工程。由于这些原因,我们在国内中间件领域的市场占有率现在排名第三,排名第一的是BA,排名第二是IBM。
除了在国内之外,我们在国际上也取得了一些成绩。Gortenr把金蝶提到了几个,包括基础架构、SOA解决能力等等,这个在国内只有金蝶这一家。同样和The Open Group的合作及金蝶已经开始在中间件领域立足中国国内的大市场,和The Open Group合作是我们向国际迈出的很坚实的一步。
这就是我今天下午和大家交流的主要内容。软件是我们国家改革开放以来特别想重要发展的东西,软件里面的基础软件,保证操作系统、数据库和中间件是这里面非常合适的部分。作为每一个在国内,我们自己中国人搞这种IT产业的人来说,我们都希望在这种基础领域贡献自己的力量。金蝶做得比较幸运的就是大家都想贡献力量的时候,金蝶已经开始着手做这件事情了。金蝶经过这十年,我们同时对于后续的未来展望,我们希望能够通过我们的坚持和我们持续不懈的努力,保持我们对于核心技术的创新,为我们国产的基础软件搏一个更美好的明天。谢谢大家!
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者