科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道专访孟岩:理解SOA与Enterprise Web2.0

专访孟岩:理解SOA与Enterprise Web2.0

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

技术专家、CSDN总编孟岩在深入研究这一技术之后给出了自己的理解,并指出国内企业和国外企业在实施SOA时所面对的不同境况,在具体的实施过程中应该注意的问题和难点。

来源:infoq.com/cn 2007年8月27日

关键字: Web Services web2.0 Enterprise 2.0 SOA

  • 评论
  • 分享微博
  • 分享邮件

记者:请问你是怎么理解SOA的?
 
孟岩:我这个理解来说下来就是,有这么大概几个过程,也分成这么几个阶段。最早就是03年左右,我刚到CSDN的时候,那个时候呢,SOA有一段的这个宣传的这种高潮,各大公司,包括微软、IBM、Oracle、BEA啊,都在打SOA,所以当时我们作为技术媒体,不得不了解一下SOA是什么东西,在那个时候,我们是很模糊的。所以我的第一个阶段呢,我就认为在技术上,我认为SOA是一个用Web Services来做企业应用的,这么一个想法,所以本质上我只是觉得这东西没什么大不了得,因为在03年的时候,Web Services 这个概念已经火了两三年了,所以我觉得,SOA没有什么了不起的。 之后不久呢,通过跟企业接触,企业告诉我们呢,也是一个误解,现在来看也就是一个误解,就是SOA是一个新一代的企业应用集成这样的一种架构,也就是EAI的下一代,当时我们就这么看的一个问题。有人提出来说,中国是不是不太适合SOA,因为在中国EAI在企业没有特别多成熟的运用系统,主要依靠新建,所以呢,当时也比较困惑这个问题。后来SOA呢,进入了一段相对不是那么热闹的一个阶段,可以说进入了一个具体实施的一个时期,各家的认识和经验都在积累,我们的思想也处在一个相对来说比较稳定的一个状态。那么再过一段时间,当这个一些实施成果上来以后,包括我们去采访一些SOA实施,有了实践经验以后的这些人,我们作为媒体来讲,得到一个新的认识,就是因为SOA是一种新的企业的IT基础架构的,这么一种风格,一种架构,其中流行的一种东西就是一个ESB,即总线,然后很多Services通过根据总线相连接,简化之间的交互,达到松耦合等等。所以当时,我们那个时候,大概一年以前的时候,我对这件事情的认识呢,进化到它是一个风格,它是一种架构,它架构也可以具体实例化成一种技术,一个产品,这是我当时的一个认识。 那么到现在,到今天,又经过一段时间的演化,又经过了跟一些企业的交流,跟一些这个行里的大师,或者行业里的领导人物的交流,我最后,我觉得我现在的认识,相对可能比较接近1996年Gartner提出来SOA的概念,这SOA是指什么呢,SOA是一种新的建构企业应用和企业IT基础架构,主要是企业IT基础架构的思想、方法、风格、工具的一个总称,所以SOA现在的这个思想,比较泛,就是说比较宽广,就是说含义比较宽广。甚至我发明了一个顺口溜,说“SOA是个筐,什么都可以往里装”,只要你这些新方法,是符合企业IT基指架构发展的下一个潮流,一个阶段,那么现在很多人都把它会往SOA里去装,但是呢,SOA还是有它确切的含义和它明确的价值,所以,我刚才说的这个含义呢,其实是我现在的一个认识。

记者:我也知道你在前段时间去了美国,去参加一个IBM组织的SOA大会,然后也接触了很多国外的SOA专家,我想问一下,国外的那个技术人员对SOA的理解和国内的人对SOA的理解,有什么区别吗? 

孟岩:恩,说实话,在这一点上,我不能说我知道的很清楚。我是跟国外的技术人员就这方面交流的并不多,但是呢,从国外的一些文章,网站上的一些文章,还从有限的一些交流来看的话,SOA这个概念即使在美国,这仍然是一个引起很多争议,引起很多的误会的这个概念。尤其是在开发者,在很技术的人员当中,SOA是一个招人讨厌的,或者说是不被人理解的,或者是别人觉得,你就是个叫Hip,这么一个东西。也有很多不同的认识跟理解,可是我觉得,如果要是正本溯源的话,还是应该去向Gartner这个提出SOA的这个组织,像IBM,像BEA,Oracle,包括微软,他们技术的决策者,技术方向的决策者,到那里去SOA的真经,如果我们到那里去问的话,我觉得,他们那里的SOA的思路跟我们国内目前一般开发人员,一般技术管理者的认识水平,那还是不太一样的,就是还是有,他们还是比我们要领先很多的。

记者:但是另外一种观点就是说,SOA是从国外开始兴起的,主要是去解决一些,去整合遗留的系统,但是我们国内的IT历史并不是特别长,你认为SOA对我们国内的IT界有什么作用? 

孟岩:我需要指出的是,你刚才的那个Statement就不对,首先它是从国外来的,这是对的,我们所有的东西差不多都是从国外来的。但是说它只是为了整合遗留系统,这句话就有问题。因为SOA要做的第一件事情不是整合,第一件事情,当然还是重新梳理你的业务流程,把它SOA把它Service化,但是呢,在着手进行改造,第一件事情,打散你的业务,先破再立,不是简单的把过去的业务进行整合。我们如果运气好,你过去的业务系统呢,正好能被完整的包装成一个服务,那当然好了,但是如果你过去的业务系统,不好被完整的包装成一个服务,那就需要先把它打开,给张三的给张三,给李四的给李四,把它包装配成一个服务,这个是要纠正的。所以就是说,即使从国外的企业来讲,它也不纯粹是一个整合的概念,它确实是一个以服务为导向,重新规划系统的这么一个过程,而对中国呢,我讲过了刚才的观点,如果说国外呢,是改建为主,就是我的房子已经盖好了,我要改建,我一定要把它该拆的拆,该破的破,该打通的打通,对吧,但是它毕竟都属于改建;中国的情况呢,则是新建、改建、扩建并行,我们大量的系统,大量的企业,到现在还在怀疑IT的价值,它没有进行第一代的IT化的建设,还有一些企业已经进行了第一代的IT建设,还有很多的企业正在进行第二代的,第三代的IT建设。 从2003年开始,中国IT建设70%的投资是二次建设,所以你可以想像一下,做IT的公司才多少?大量的公司,大量的企业还没有做IT,还没有认真的把IT放到自己的这个管理中间来,包括还有一些非企业性质的,政府、学校和一些社会组织,都还没有把IT纳入自己的业务管理的过程当中,所以潜力是很大的。对于它们来说,一个主要的考虑就是,说白了,领导说话算不算话,这个很重要,领导说话要算话你就必须要让IT系统足够灵活。我们中国的企业是有这样的特点,和我们国家国情比较接近,我们喜欢突变,我们可能会在某一个水平线上,某一个状态上维持一个比较长的时间,然后突然一下发生巨大变化,这个时候就是要求我们IT系统非常灵活,其实我个人认为,我们中国的企业在国际市场上获得一些成果一个很重要的原因,我们以外国人想象不到的速度在改变自己。所以呢,这是我刚才上一个问题讲到的,中国的企业绝不会允许自己损失机动性,损失敏锐性,因为这是我们赖以生存的一个根本,所以如果你上一个IT系统,让我把这个敏锐性给损失掉了,我就不会上,也不会要的。 反映在很多现实当中,开发人员给我们无耐地摇头解释说,中国没法做IT,那领导人拍脑袋就变,你还非得听他的不可。这就说明一个问题,领导人拍脑袋就变,这可不一定是坏事,这可能是这个企业竞争力的源泉之一。所以我们在中国做企业的话,要支持这种东西,要足够灵活,要让IT系统能够跟随决策者的思想变化而变化。IT的意义本身在于使你的管理规范化,流程化,效率提高,严格,这样一个避免人为因素,降低对人力素质的要求,这样的一个特点。所以我们,还是刚才说的,我们中国的IT,目前在SOA要解决的问题就是不损失灵活性的情况下,提高管理水平、有效性、管理的效果。

记者:那么在实施SOA的过程中你认为应该注意哪些问题,有哪些难点存在? 

孟岩:在实施SOA的过程当中,第一个难点,我觉得是要改变一些思维,改变一些传统的思维方式。传统的思维方式是把这种,从业务到IT系统,这种运作过程看成是一种魔术的,要靠培养巨牛无比的人,这个既要具有极强的面向对象这些基础的软件和IT基础的这种知识和技能,通过多年的磨炼,能够规避各种各样的风险;然后还要懂这个业务,要善于沟通,要用有效的方法来帮它及时地找到和发现自己的错误,这是非常难做到的事情。那么首先要改变观念就是说,我们现在一个层面是业务,一个层面是技术,所以我们在中间加一个层面,叫Service,这个Service是一个贴近技术,贴近业务,又可以被技术支持的一个概念,能够以它为标准,又能够以它为单位,对于业务来进行模块化,实现Service之后,你会发现,当你的业务要发生变化的时候,你所要做的仅仅是微调Service内部的接口、契约、服务质量和重新调整各个Service之间的关系,几乎就可以满足你对业务调整的需要。 这就是说我们把业务给模块化,找到合理的一个单元,可以用它来把业务这个事情模块化,而这个单元又特别巧的,也不是特别巧的,刻意地可以被技术,用我们现在传统的这一代组件啊,对象啊这些东西来支持和实现,这不是很好的事情吗?我们说一句谚语叫“当你在软件里面遇到任何问题的时候,请增加一个中间层”,这个就是这个思想的一个应用。增加了一个Service这样的一个中间层,一个间接层,来协调这两个差的太远的之间的关系,来做到这件事情。所以首先思想上要改变,要知道SOA为什么?知道了这一点,你才能够有可能去正确的去实施SOA,SOA在实施的时候第一步,应该是梳理业务流程;第二步,应该是用Service的观点重新描述你的业务流程,这个过程也是挺关键的,我认为,从这个过程往下,就比较容易一些,包括做一些具体实现Service的一些方法、操作和我们常用的一些方法。当然可能还有一些新的标准,SCA啊,SDO啊,包括ESB啊,包括一些提供的工具。 但总的来说,到了我们开发者日常工作这一块,他的改变有,但是他的工作形态的变化并不是很大,可是在这个业务梳理和业务架构这个过程当中,是有一个关键变化,这个是我觉得这个,你刚才说到难点在哪。那么这个难点归根到底就在于,我认为SOA存在的关键在于,它是否能够培养出足够多的高素质的,高质量的这种SOA架构师。SOA的架构师跟我们传统意义上的架构师不太一样,传统意义上的架构师就是变魔术的那帮人,也不知道他怎么想的就变了。现在呢,要把这个过程分成两步,第一步把它分解成为服务,把服务之间的关系理顺;第二步,把每个服务的接口、契约,全部都封装好,服务之间的关系,包括它的Governance之间的关系,这个叫做业务架构,这个人我认为是在SOA时代最吃香而且至关重要的一个脚色。
 
记者:你按照你的意思来说,就是我们现在的开发人员,或者说是一些架构师,做转变的话,要重视业务的发展,是这样吗?
 
孟岩:对,我觉得这句话其实说的很多。就是没有SOA时候,大家也都在做,你作为一个开发者也好,作为一个架构师也好,你一定要关注业务。但是呢,过去这种说法,是种泛泛的,我们不知道怎么关注,你总不能让我去成为一个石油专家,一个银行家,或者一个什么,才能够就是说开始这样的一个系统,那这样的人有多少呢?成为那样的人,还做IT系统吗?有这样的问题存在。现在呢,有一个具体的指导方针,就是说你该怎么去了解业务了,你要把业务分解成为一个一个的Service,理顺这些Service的关系,调整Service的接口和契约,这是对这个的理解。对开发者的理解,对开发者的影响来讲,有些实践就要变了。比如说,我们现在用到的一些,它已经熟习的一些思想、方法,一些东西可能有一些变化。 因为过去呢,你直接面向业务,开发者往往要学会一种能力,看了一段自然语言文本,就把一个什么对象图啊,什么模块图啊,类图啊等都画出来,这个是过去要求的一个。现在呢,你要面对的问题,可能就是说,你要面临的是怎么样最好的,向外界提供高质量的符合企业的服务,这是开发者的一个变化。但是更大的影响呢,对于开发者来讲的话,是他需要重新安排自己的职业生涯和规划,过去他觉得我学习这些东西也就可以成为架构师,设计师架构师怎么怎么样,或者我就专心的做我的.NET,做我的Java的内核,高效率的东西,也可以成为那个领域的专家,但是你要知道这是两个不同的路线。现在呢,你想做企业里面的架构师,有来之后,你就可能,对自己职业的规划,一个目标,要有一些调整和变化。

记者:我在看很多关于SOA的文章都提到各式各样的标准,我想问一下,为什么SOA里面会有那么多的标准? 

孟岩:其实坦率的说,现在SOA一个很大的问题就是标准化不够,标准没有得到很好的制定和实施,甚至可以说,我可以这么讲,SOA,现在是有一个OSOA组织了,但是这个组织不是一个很强有力的组织,国际化的这个标准组织一般都是比较松散的,这个OSOA也是松散的。然后呢,各大厂商都有自己的想法和主意,结果就是说,SOA标准化的东西目前做的不是特别好,但是尽管有这么多的问题,还是有SCA、SDO这样的标准出现,这个对于SOA还是很好的事情,还有一些其他的标准,比如说WS-*,有三十多个标准,那些东西不属于SOA,尽管可以用它很好的来实现SOA,但是你不要把它作为SOA标准,所以在我看来呢,SOA的问题不是说标准化太多,而是标准不足的问题。我们马上面临很大的一个问题就是说,微软它做了一套体系,跟SOA的SCA、SDO标准是不一致的,这里的问题就是说,我们当然还要看,微软的WPF、WCF跟这个是相关的,以及WF这个标准,能够互相兼容,互相操作。如果可以的话,当然很好,如果不可以的话,怎么办?我们得到了一些微软方面的承诺,但是毕竟这个还是不官方承诺,我们想看看这个事情怎么发展。所以标准有,如果谈到SOA的话,标准真的不是太多了,而是还不够。
 
记者:另外然后业界里面流行的概念,一个是SOA,另外一个是Web 2.0,两者之间也是有很大的关系,我想请你评价一下这两者之间的关系? 

孟岩:这次我去美国的时候呢,我去参加的IBM Impact 2007这个大会,这个大会的主办者或者说最主要的一个人,是IBM软件集团的一个副总载,叫Sandy Carter,是一位女士,IBM的一位传奇的一位女性。她写了一本书,叫做《业务的新语言》,子标题是SOA&Web2.0,所以从这句话来看,就知道这两个是有关系的。什么关系?我可以这么说的,这两个东西协同起来,可以共同为我们搭配刚才所说的敏捷业务的目标,为什么这么说,因为传统上,这个企业呀,你像我们业务系统总得用数据,业务逻辑,在它上面展现,还有一些整合的过程,有人提出Portal,企业级Portal这样一个概念,这么一些过程的话。实际上,当整个技术转移到外围以后,由于Web技术,第一代Web技术的制约,也使得它们在企业运行当中的,企业当中的一些运用受到了一些限制,现在的问题就是说,Web 2.0这东西怎么理解呀,大家还在说。我觉得固然有很多,从网络社会学意义角度去出发,去阐述Web 2.0,著名的博客Keso,他提了很多,比如说用户与这个编辑处于同等地位呀,强调自由啊,强调话语权的平等呀,开放性呀,强调用户权益至上,把这些东西列为Web 2.0的一个标杆。 但是从我们做IT的技术来讲,Web 2.0他有他固定的技术含义,他是指一系列的第二代的Web服务的集合,这里面包括像RSS、Atom,然后有这个Syndication,其实就是刚才说的这两个协议的抽象概念。然后有像这个Blog的这种服务,社会网络,技术上的有Ajax,数据的Mashup ,有数据的微格式,这样的一些东西,这个东西综合起来,能够给用户更好的体验,能够给实施者提供更轻便,更容易的一种集成,这种东西叫Web 2.0。那么它为什么可以用来和SOA一起来为企业来服务来使用呢?你记住,我们刚才说为了业务敏捷性,业务敏捷性就意味着,我们不仅仅数据和业务的关系发生变化,它给用户的展现,它的集成方式,它的集成范围,都会迅速发生改变,而在这一点上,传统的企业使用的C/S模型,或者第一代Web技术,它那种局限性,都使你没有办法很快地,使你的最后传到用户那里的最后的一公里也跟着一块变。 只有我们采用Web 2.0这些功能,Web 2.0提供的这些服务和协议,它这种风格,REST和Micro-format也就是微格式,这些东西融合起来,你才能够从下到上为用户,为企业提供一套完整的敏捷的技术栈,才能够说,人家的Idea一变,业务一变,底下的数据变,上面的模型,上面的业务叫流程变、服务变,流程变,最后到上头来,到前边Portal也变了,这个界面也变了,数据表单也变了,只有这个才能做到这一点。所以Sandy Carter在这本书里面画了一张图,我刚刚提到她也是这个原因,这张图是一个金字塔,然后她用一张薄片,把金字塔拦腰一切,底下SOA,上边Web 2.0,很明显地说明这个问题,就是说在底下要用企业级的SOA技术解决问题,将数据用标准方式如XML等暴露出来,上边用Web 2.0的技术去整合Mashup,去呈现,这种东西就会导致,就会使得我们刚才说的业务敏捷性的目标得以实现,这就是这两个技术应用之间的关系。 它们之间有什么关系?它们之间是盟友的关系,我们共同协作可以达成敏捷性的目标,否则的话,如果你几家是很快变化的数据和流程,上面我还是传统老旧的那一套,比如说Web 1.0的,或者是,甚至是更传统的VB或者是更传统的.NET富客户端所写的程序,当然对于企业最后还是得不到迅速变化,随之实施的这么一个结果。那我可以给你举一个小例子,这个Web 2.0一旦跟企业应用相结合,形成一个Enterprise Web 2.0这么一个新概念。 那么这个,我给你举一个小例子,已经实施的例子:就是有一家远洋航运公司,他们呢,做了这么样一个应用,就是他们通过GPS系统,将自己的每一艘航船在远洋,在地球上的位置,都能够实时的确定下来,他们把这个数据得到并放在一个服务器系统里面;他们另外一个系统保存着每一艘远洋航船此次航运他的目的地、起点、他的运货是哪些,这些定单信息,这些商务上的信息;另外一个系统保存着每艘航船里边的人都是谁,雇员的信息,海员的信息,临时工是谁,他的情况是什么样子。然后,其实现在就表示他们已经提供了一些服务了,在把这些服务跟就是,他把这些数据用SOA的方式,把这些服务给整合起来。整合起来之后,跟Web 2.0这个技术能够理解的格式比如XML以后,再跟Google Map整合,立刻得到了一张全球海洋图,一张大的一个全球地图,每一艘现在在什么位置都可以看到。当他点击那个船的时候,他可以立刻看到这个船本身的信息,船上船员的信息,这次航行的有关商务信息,都可以看到,这个就是SOA跟Web 2.0融合的一个例子。但故事还没完,当我们部署到内部的时候,好多事情就会不断的出现。因为你不仅可以缝合你,Mashup你自己企业内部的信息,当你采用公共的Enterprise Web 2.0作为你的架构以后,你就可以公开的自由的获得,或者是通过付费的方式,获得别的企业高质量的数据服务。他们很快又购买了一家海洋天气预报公司所提供的高质量的数据服务,然后Mashup到这张图里面,就可以看到天气的情况。然后更有意思的是,他们后来又想知道海盗报警,哪些地方发生海盗的事情,英国有家公司提供这样的信息,于是他们就把那些信息又通过Web Service的方式抓过来,那些公司的信息通过Web Service的方式暴露出来了,他们把这些信息抓过来,缝合到这张图里面去,让它来显示不同的信息。它立刻就可以得到,我这次航行处在什么样的气象条件下,海洋气象条件下,然后它前方或者它路过的地方,有没有海盗的这个情况,高危险地区我就要提示它警告它,这样的一个应用,我认为是目前我所知道的,比较好的Enterprise Web 2.0和SOA的应用,这么一个表现。我相信,由于这样的一个系统,据我所知,它是在一家全球顶级的大公司支持之下,来完成的。据说这个整个的项目的实施,尤其是后面融合数据的过程,都是非常快,花费统一,而且就是说,完全没有那些繁冗的过程,这就是Enterprise web 2.0的威力。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章