组建化、标准化、平台化,其中平台化是一个非常非常重要的个性,平台具有什么样的个性,长什么样子,下面请程朝晖分享SOA的平台,程朝晖曾经在BEA中国首席技术发言人,IBM中国华东区中间件主管,普元软件副总裁,欢迎程先生。
程朝晖:大家下午好!沈先生高屋建瓴地讲了SOA背景下的软件中国之道,我们都是在中国的软件企业,我们做了这么多年,还是比较清楚,包括刚才讲的利润在10%以下。为什么一个高科技行业做得那么辛苦呢?沈先生为大家描绘了一个背景,这个背景下提到了二十一世纪。很多媒体,包括国外的专家都在谈二十一世纪是中国的世纪,我们也坚信这个,前一段时间也印证了一下,二十一世纪,01年的时候,我们八十年代、九十年代崇拜的美罗,它可能走向了一个转折点,发生了安然的事件,信任的危机,它整个纳斯达克的泡沫的破裂,一直到9?11的发生。同样这年,我们中国发生了什么?我们中国足球队第一次进入了世界杯,我们获得了奥运会的承办权,我们年底正式加入世贸组织。后面两件事情,对01到08年中国经济发展的影响很重要的,我们加入了世贸组织,为二十一世纪是中国的世纪开了一个好头。但是08年的时候,我们经历了磨难,因为成长要经历磨难。所以08年经历了坎坷,但是我们知道一句话:“天将降大任于斯人也……”。沈先生描绘SOA背景下中国软件的道路,发现我们一方面在学习全球领先的领头羊在干嘛的时候,一方面要找到自己的后发优势。总结来讲,就是精细化的耕耘,大规模的协作。也分享了普元是通过这样一种七年多专注只做一件事情,做到了现在国际SOA标准组织里面的成员,受到组织的邀请,把我们的产品卖到了除了美国之外的国家。沈先生告诉大家,我们一个很简单的策略,或者思路,分享给大家,就是我们专注于自己最核心的东西。现在把这样的方式,在SOA的大背景下,看到我们有机会,能够共同创造更加好的中国软件的发展,也希望吴小波写将来二十年的时候,能把在座各位,包括普元写进去。
今天我的演讲题目,短信里面也问了,说IBM的SOA跟普元的SOA有什么不同?其实大家要想SOA对我有什么用,我怎么用SOA,大家来到这里,就是希望得到这样的答案。接下来,我和我的同事在后面三场演讲中去探讨我们如何实施SOA。
刚才讲到了SAP、IBM、ORACLE无都在做SOA版的应用,他们首先做的都是一个SOA的应用平台,他们需要用SOA的基础架构、SOA的平台,去做新一代、下一代的SOA的应用。到底我们做SOA版的应用的时候,借助什么样的SOA平台,这个平台能帮助我们什么?首先这些观点我们也得到了很多分析结构的验证。当SOA浪潮来的时候,很多人还是观望,并没有警觉到这一浪来了,我是不是会淹掉。它也提到了我们用得最多的软件方式,不足以去支撑我们现在新的业务需求,新的业务需求是需要我们在SOA架构下的平台,因此需要有新一代的中间件平台去做新一代的软件模式、新的应用模式。
同样的IET,也是全球两家著名的分析机构,它也提到,我们在建设IT的时候,应该遵循六大原则,其实里面都跟SOA有关系,但是最重要的是第一需要一套SOA的组织架构,第二个需要组建化跟标准化,这也就是福特模式里面,我们记得福特模式里面最关键的三个特征:模块化、标准化、组建化。现在基本上全球的厂商,基础架构的领导厂商,分析机构都在往这方面去做巨大的投入,做自己的平台也好,新的SOA版应用也好。我们应该怎么做?我们也需要一个新的SOA的平台,能帮助我们快速去把SOA版的应用建起来。
看了大的潮流之后,我们需要看到我们所处的环境,中国与美国有什么不同,为什么中国的SOA与美国的有什么不同?应该说SOA中国的不同在于一种本质的不同。通常,大家知道中医跟西医的差别,中医在于治本,更多在于调养,西医更多在于治标,我们希望是标本兼治。因此,我们看到中国软件的问题在哪里,如果大家有兴趣读一下普元董事长写的软件中国的机会就会知道,中国的应用软件处于一个不平稳期,要面临未来快速的需求变化,这要求我们不断地改造,适应业务跟管理需求的变化。因此,我们中国市场本身的要求是什么?国外来讲,这些应用相对来讲比较成熟,相对来讲整个现在实施的SOA的具体策略,用SOA来把应用之间互联互通,而中国的SOA在于本身就出了问题,我们身体的本身、应用本身出了问题,我们的应用不能支撑我们不断应用的发展变化,因此我们更要关注在本质的应用本身,如何更好地构造出来,这是和国外非常大的不同点。
它也提到了,本身我们把这些应用里面的服务跟流程构造出来,通过平台化的思路和策略去实现它。所以OSOA也提出了SOA的中国路线图。我们怎么做应用?原来很简单,要做应用,就一个项目了,这个项目我们就去选择一套技术,采用一套开发的模式或者框架。但是更多的,我们现在听到说业务人员告诉我说我的需求是这样做的,应该这样去变,而技术人员认为很难理解,或者花很长时间才能满足业务需求。刚才沈先生提到工行跟建行的例子,怎么能更快地对接起来,快速的响应?同样,我们在业务管理上的要求,又怎么在IT业务系统里面体面,在这面,所有完成解决SOA的架构,需要从三个方面,我们以前主要是看技术的流程,上面用SOA框架。现在是SOA,把管理与业务之间的矛盾统一起来,通过整体的有机的解决方案,把它解决。所以在这里面有三个纬度做SOA,第一个是业务,我的业务怎么做,现在我们都是做业务系统。做完了之后,发现互联互通很累,发现每一个模块,做得不好的很难剔除。作为客户,发现这个开发商模块做得很好的时候,不能放到另外一个开发商的平台里面去。所以SOA的应用架构里面,做业务的方式,用构件化和流程化的方式来做我们的应用。同样,通过流程化,把我们业务的模块串联起来,真正实现交付给客户的流程。这是我们做业务的方式,跟以前有很大的不同。如果我们真正实现大家精细化地把每一个模块做好,把核心能力发挥得更好,又能够跟别的开发商、别的合作伙伴能够去合作,因此我们必须在我们业务的模型设计上采用这样一种构件化的模式。
第二个就是技术方面。可以看到,我们原来的技术模式,应该说都是技术的实践与技术的服务都是紧密地绑定在一起,不能做到一个松偶合跟架构化。所以在SOA里面,提出了一个标准的技术架构。当我们判断一个SOA版应用是不是真正意义上的SOA版应用还是伪的SOA版,要看它的业务是不是构件化和流程化的业务模型,第二个看技术上是不是服务化和标准化的技术架构。
第三个是管理,我们做的业务模块,IT实现的构件,它在开发、运行跟管理的时候,都需要有标准化的、规范管理的框架来帮助我们不断去看到里面从业务视角,一些业务的策略如何被贯彻下去,一些业务的成本、业务的绩效怎么有效地被监控起来。
所以在这样一种三位一体的模式下,对我们SOA的应用有一个统一的方案。下面分享一下这个案例。这在于把我们的系统分层,每一层解决不同的问题,每一层里面分模块,分到不同的业务模块、业务构件。这样分层之后,使我们更多专注于我们做得最好的模块,并且把这个模块做得更好,同时与别人进行协作。在这样的模式下我们可以看到,这也是业界比较主流的关键,构件化的业务模式。最高的是业务的流程,真正去满足客户的需求,最终的需求。下面一曾是业务的构件,它对于业务进行领域的、专业化的分工。其实对于我们这些开发商来讲,在这样的模式下找到自己业务的领域,发展得最好,可能是OA里面最小的一个业务的领域。只有这样一种专业分工之后,我们才有可能让农民做得全世界领先,不断在里面耕耘,把自己最核心的能力不断做得更好。同时回想起,我们也经常讲到,很多公司都是在中间死掉,为什么?就是因为他们不能做到使用的人达到的模块,为什么做不到呢?很多客户要求我做OA系统,我做了,客户说你也把我的CR做了吧,什么都做,结果发现什么都做得不好,因为没有这种精力。同时它做的东西,拿到世界上更广的地域竞争的时候,又没有竞争力。所以要专注于自己最核心的东西,把它做得最好。再往下就是平台的构件,能为我们各个的业务模块,能提供平台里相应的功能,像工作流,像业务的组织机构、权限管理。再往下就是我们在项目里面广泛赋予的技术构件。像沈先生提到的我们大客户,采购了普元的SOA应用平台,之后用构件化的方式梳理它的业务,用构件来统一起来。一个客户两、三百个项目,如果你每个相项目都去做构件的话,你开发的效率会打折扣。所以我们的客户清楚地意识到,在自己的企业里面都要进行有效的分工。所以它从技术构件开始,去规划自己的组织构件、业务流程,来交付给客户最优化的流程。这只是SOA版里面最关键的核心。你会发现你整个的业务模型设计不是按照这样的分层的构件做出来的,你将来很难应对你的需求的变化,你的模块的变化,你设计的变化,这就不是真正意义上的SOA版的应用。
第二个方面,我们做SOA的应用的时候,在技术上符合什么样的架构,现在大家说符合NEC行业,大家都符合这样的模式。在SOA版应用的时候,真正意义上的SOA版应用的时候,我从技术架构上怎么做?很简单,我们需要去遵循这样一种非常标准的五层的SOA的基础架构:最下面是我们的资源层,任何一种资源,都是服务。第二层就是构件层,大家知道我们做系统的时候,都有业务逻辑,业务小单元。我们做一个应用的流程的部件,这些部件用各种的技术,JAVA也有,C++也有,微软的技术也有,在整个SOA里面,不会限制你具体的开发技术。因为大家都知道,你如果对于做部件的时候,把技术限制死的话,这样就做不到更好,更精、更创新。所以这个构件层,可以通过整个构件化,以及构件的实现和具体技术的剥离来实现。再往上是服务层,是各个业务流程系统之间搭建一种标准的语言,标准的业务语言、基础语言。你的服务我能调用,我的你也可以。在服务层最关键是实现标准化,包括一些互联互通。这一层使得我下面的构件之间是松偶合的,这些零部件之间,我可以动态、灵活地根据需要到服务层装配,装配出更粗力度的具体场景下业务的模块、业务的场景。再往上通过流程层的编排实现我具体的业务。这是整个SOA架构的四级。再往上就是展现层,这个概念是比较窄的,当然也可以通过一些调用。其实在SOA架构里面,不仅仅是展现,因为大家都知道SOA是组织里面应用之间也需要,应用内部以及应用之间,以及信息流程与人之间都要形成互动,共同去完成一些任务。所以在这里面,需要通过一些富客户端来实现一些应用,同时在协调层协调多个不同的客户、业务来共同完成一个相对复杂的流程。在这里面我们有客户端的支持,一些协同的支持,以及真正把服务通过不同的渠道交付出去。
在以前,大家都会说我也是支持SOA的,我也是得到SOA的认证的。这可能离我真正意义上的SOA的好处有距离。所以我们谈到SOA的时候,已经不是现在的MVC的模式,它把MVC中的C作了一个提升,就是把逻辑分层分成了构件层、服务层跟流程层,使我们在服务层面能够去灵活装配,使得我们通过业务化的流程能动态、实时、快速地把业务流程定制化。这是一个非常大的区别,在SOA的技术架构上。可能大家对SOA,也会讲到SC,这些标准并不是那么容易理解,但是我们很容易去抓住SOA版的关键,我是不是支持五层的标准技术架构。
同时在这样的应用里,大家知道应用里面有运行,我还需要不断维护,不断去监控,然后去改进。因此,怎么样做到这件事情呢?我业务的模式,技术架构也好,需要不断提炼、不断优化。因此,你需要去支持一套规范,管理的规范。你怎么去管理业务流程、业务构件,你怎么去监控这些管理呢?当你管理发生变化的时候,你怎么把管理策略写进去?所以我们需要规范,在企业里面应用SOA,都需要规范管理的框架,这个框架能帮助我们实时管控、监控,甚至到计算层面、操作层面的操作。我们也可以把我们的一些技术的、IT的或者是业务的,这样的一些策略,比如说可能是一些行业的策略,我们与客户交流的时候,我有很多电力的规范和标准,有它的限制和约束,我怎么办?其实它首先思路,以组建化、构件化的思路,把行业的模块做到标准的业务模块,然后这样的业务模块能被调用。同时它把这些行业的要求限制通过这样的管理框架,通过一个策略注入的方式,把策略加入进去,而不需要你写应用逻辑的时候写进去。所以我们安全、交易都是IT的,都是跟终端相关的。当一个手机过来的时候,你应该做什么样的事情,当一个浏览器过来的时候,你有什么样的反映。所以我们可以把平台本身进行配置。
所以,在考虑应用的时候,要考虑一种应用的架构,以前我们是技术的、单一的平台,也给我们带来很多技术上的矛盾。在整个SOA里面,可能也不是单纯的技术,也不是单纯的业务,也不是单纯的管理,是三者非常统一的平台。在这样的框架下,管理我们的业务模块,管理我们技术里面的服务。在这样的应用架构下,我们去应用的时候,需要一些纬度和思路,这样的架构,现在是不是已经标准化了,如果不是标准化,是普元独有的,或者IBM独有的,那这个市场就无序的。因为客户用了你这个组件之后,很难跟别的协同。所以在这里跟大家介绍一下,作为任何一个主流的平台技术,一定是要标准化的。这就是在2006年7月份的时候,在全世界有一个新闻发布会,包括台湾的IDC,以及国内的主流媒体都报道了这样的新闻,有这样的一个组织,OSOA,就是OPEN SOA,这个组织是18家领导厂商组成的,现在只有17家,这是过去杰出平台的领导厂商。这些领导厂商都加入了OSOA,这是新一代的整个的应用技术平台和技术标准,这是一个时代潮流。在这里面,刚才沈先生讲到了,普元也是有幸第一批18家里面邀请成为核心成员。两年过去了,还是18家,为什么?其实作为一个技术标准组织,它里面本身通过一个技术标准还是相当复杂,既要有广泛的代表性,但是又不能过渡复杂。考虑到这一点,在成立之后没有多久,组织上做了一个决定,把核心厂商基本就不再发展,除了一家变两家是可以的。如果微软愿意加入这个组织可以开绿灯,但是其他的厂商是不会允许的。另外的话,就在外围成立了一个OSOA SUPORACLET的组织。普元也是作为亚洲唯一一家加入到这里面。这些组织经过两年的努力,制定了SOA里面最关键的,怎么去构造一个部件、构造一个模块构造一个服务,构造怎么去实现,所有主流的技术都可以成为实现具体的构件的具体实现基础,也制定了整个构件的组装规范。大家知道大构件都是由小密度的构件组织起来的,同时也制订了装配的技术规范,也定义了在SOA里面标准的构件模式,现在已经到了2.1,也制订了整个管理框架,就是整个SOA应用必须要有三个方面的技术,是什么样的架构,是五层的架构。在业务上,在它的服务构造和装配里面都列出来。然后在管理上,通过这样一套标准化、规范化来管理,不能说你是一套管理机制,我是一套管理机制。为了推进整个技术的发展,能够让技术更好地去成熟,并且很好地应用起来,我们这些组织成员一直在不断地推进这个技术、应用这个技术。像我们现在的大客户都在做这样的事情。本来这个组织建立了一个官方的网站,www.OSOA.ORACLEG,我们作为亚洲的组织,承担了中文的官方网站。上面有一条新的技术规范,最新的,翻译成中文了,普元投入了不少的精力在里面,我们也应用了社区的力量做翻译,大家也是非常积极。在一个月内,这些技术规范会翻译成中文,并且会经过普元专家的评审,到时候大家更容易去学习这些规范。为了推进这个技术,我们也是共同去把这个开源技术,去成立了一个孵化的项目,来实现整个SOA技术的开源项目。这样一个开源技术,普元经过了26个月孵化,被Apoche Tuscany组织批准了。普元在这方面更多地投入,最近被通过了,希望这个技术能更好地发展。包括一些技术大会。这样的组织在制定技术标准,这些技术标准我略微给大家做一个介绍。
做应用是什么,是做构件。我们以前做应用是一行一行去写。但是在SOA应用里面,更多的业务模块、流程,是用构件来拼装、组装的,而不是代码。当然,这些原子的构件会作为基础的构件存在,普元也会提供更多够用的、常用的构件。刚才那位朋友提到的,一浪一浪过来,自己怎样应对,刚才沈先生讲,整个市场发展更好,人更多,但是整个会分层。所以我们在这里面也会具体的整合,但是绝大部分是用原子构件,进行组装、应用。当然,有人会进行应用的设计。这就是真正意义上代表了应用软件的基本单元:构件。所有上面的业务模块都是以这个为基础来构件。在SOA定义的最基本的应用软件里面,天生就是服务,被引用,也可以被右边的调用别人的。它的下面支持技术非常多的,这就变成一个完全是标准化的,可以被复用的构件。你换一个样子也是可以的。这是18家厂商共同来做的。
然后在这样的基础上,通过组装的方式来做应用软件的开发,这是一种新的开发模式,就是装配、组装的模式。而这套组装也定义成了标准规范,就是在SCA里面。
也提到了我们构件、装配、逻辑中有,到了应用的层面,我们原来有各种数据、表达方式、模型,在SOA里面也定义了作为一个企业SOA版应用里面,你的数据应该符合什么样的模型跟反馈模式,这就叫SDO,通过这样一种更业务化的数据模型跟访问模式,使得我们可以通过它去访问任意后面各种数据资源,但是在我们企业里面做到了数据模型的统一,访问标准的统一,并且是标准化的。到了现在,一共有这些技术标准的清单陆续地发布,也是一直在更新,一直在不断发展。SCA本身装配的模型,也发布了1.1的规范。要真的去跟上技术的发展非常快,一定是要非常专业地做这件事情。技术规范本身是学习,真正要去弄它也不是那么容易。这也是普元的责任,作为一家专业的平台厂商,我们必须把这些技术作成商业化的平台,为应用开发服务。
有了这样一些规范之后,它还没有成为一个最终的工业化的标准。这样一个规范呢,18家都没有问题,它需要通过一个机构、一个流程来确定这是一个标准指定的过程。因此,18家选择了OASIS这个专门做电子商务、Web服务的非营利组织来定成标准。OASIS里面也有四个核心成员,IBM、ORACLEOCLE、普元、SUN,同时也成立了一个分会,叫做Open CSA Member Section,下面有9个SCA技术委员会和4个SDO技术委员会。我们也通过一个开放、共享的平台MY Groups平台来协作和制定标准。有了这样的SOA应用技术架构之后,我的技术分层,服务有没有标准,都有相应的组织确定。组织也确定了技术发展标准路线图,可以看到,最下面的互联互通已经非常完备和成熟。而当今更为重要的是解决当我构造SOA版应用的时候,我里面的服务怎么被构造,我的流程应该怎么被编排。这些,在整个的SCA、SCO这些规范里面都会去把这些问题不断地去解决,以及在后面的流程这一块,对整个业务流程的建模、编排与管理。一直到后面的服务的治理,怎么更好地治理,形成一套相应的治理规范。在这样的技术标准下,大家都知道术业有专攻,这个技术架构、技术标准很好的,是不是每一个应用开发商都应该掌握,开发它呢?这非常困难,这就是我们倡议的,大家一起来协作这个事情,每一个公司把自己那一块领域做得最好。所以普元一直致力于SOA的应用平台,这个应用平台需要承载SOA的应应用架构,需要承载技术标准,还需要承载我们的一套方法论。当我们做SOA版应用的时候,不会无中生有,需要一个平台支撑,同时也需要支撑SOA版应用的全生命周期。怎么去规划,怎么把流程梳理出来,定义到具体的业务服务,规划和设计出来我们的应用。接着是通过服务的构造,把应用的模块构件构造出来,通过流程的编排编制和业务化、科学化来满足我们的业务需求。当我们的这些构件、服务、流程不断在SOA版应用中做出来的时候,我一个一个SOA版的应用,SOA版的OA、SOA版的CR、SOA版的信用卡系统不断建立起来的时候,每一个应用都需要互联互通。但是积累到一定程度之后,三五个应用,或者三五十个应用的时候,我们需要对这些服务进行统一的注册、运营和管理。这都是现有的产品和技术能支撑的。我们通过服务本身,以及数据本身的运营和管理,能统一地管理起来。最后,对于我们整个应用里面构件是不是合理,每一个服务是不是跑得很健康,是不是如期给我带来了一些管理上监控的信息,我的业务模块设计是不是设计得很合理,我们通过不断的监控,去治理、优化它。我们可能要重新改设计、改规划,又要重新去构造,或者新的编排等等,使得我们SOA版的应用不断往前发展。这样一套生命周期的发展,我们需要一个平台的支撑。如果我们靠手工来做就很困难,所以这里有这样的需要,有一个新的SOA的平台,能把整个SOA版的应用支撑起来。
从最开始的开发,我们整个需求的设计,去实现我的构件,编排、流程,我的测试等等,开发完了之后,中间是整个运行期,运行我们的构件,运行我们的服务,运行我们的流程,运行SOA统一的平台,使得更加在这个平台上访问到多个应用、多个系统、多个服务,在这个平台上操作多个工作任务。在最后面是SOA的治理环境,通过我们的资源的监控、策略的管理、安全、审计等等把我们的每一个业务模块、具体的资源和服务进行持续的管理和治理,这是我们新一代能制成SOA版构件化、管理框架的平台。
可以看到,整个SOA的大浪,躲是躲不过的。每一次架构演变,浪潮过来的时候,是挑战,也是机会。这一浪潮来的时候,原来很小的公司可能就走在前面了,敏锐感觉到了,快速做出来了,它在市场上获得很大的成功。也有一些以前很大的公司,相应反映慢一点,为了保住原来的收获,反映慢了,会被淹没掉的。这种潮流单个公司是不具有抗争力的,需要协作。我们可以看到,现在架构这一块,只剩下IBM了。到了客户机/服务器的时候,SAP一下子做出来了,就是靠特的R3,顺应了浪潮的变化。每一个浪潮,应用都会被推倒重来。到了有客户机服务器的时候,我们银行可以跨网络、跨地域、跨网点做一些新的业务就会被推出来。电信也是一样的,可能原来没有这种架构的时候是不可想象得。到了BS的时候,有一些网络银行啊,服务终端被建起来的。每一代的架构是成本的降低,数量级降低成本,然后它的本身用户体验会更好。同样到了SOA的技术架构潮流来到的时候,也可以看到这些领头的厂商都已经在通过它的SOA的平台来做它SOA的应用。我们整个中国的软件企业也需要合力在一起,能够在这个浪潮过来的时候,我们也能够快速地找到自己的定位,能够采取更好的合作,把我们有竞争力的、能占领更多市场、发挥我们核心能力的SOA的应用做出来,这就是我们需要,通过这个浪潮,我们找到自己的定位,快速地把SOA应用做出来,能够获得竞争力,能够占领市场。我今天的演讲就到这里,谢谢。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
混合云使用不能盲目:学习最佳实践是王道
混合云的采用率正在上升。很多组织看到了云服务的优势,但他们也想要自己拥有一定的灵活性,将一些工作负载和数据保持在本地的控制下。
-
联合创新,携手共赢 华为与Commvault签署全球合作联盟协议
【中国,上海,2015年9月19日】在2015年华为云计算大会上,全球领先的信息与通信解决方案供应商华为与美国知名的数据管理软件及相关服务主要供应商Commvault签署全球合作联盟协议。基于合作协议,双方将会加大投入数据中心备份解决方案在云化环境下的“可服务化”技术研究 。Commvault公司全球业务发展副总裁Andreas May、华为IT数据中心解决方案总裁马力出席签约仪式。
-
企业级架构和应用程序架构区别及联系
应用程序架构描述组成应用程序的主要部分。在Java世界里,应用程序架构都描述两个内容:用于构建特定应用程序的框架组合,以及更多传统的逻辑关注点分离。
-
如何准确建立移动应用服务器端
企业管理青睐于移动性,因为当需要的时候它会将推动生产力提高的信息传达到工作人员所需的地方。