SOA今年在中国确实很火。五月份开始,去优快云看看,关于“SOA中国路线”的宣传铺天盖地。10月31日,“SOA中国路线”全国路演到了北京,我去听了听。总体的感觉,是泛泛而谈。三个小时内,6个演讲(我听了前5个就开溜了),每个就20多分钟,要深入而具体是不可能的。其中倒是安排了两、三个算是案例的演讲,不过同样感觉是不痛不痒。要说留下映像的就是两个人的两句话了。一是IDC分析师姜振鹏说的:中国和美国的SOA是不一样的;一是普元程朝晖说的:SOA是集业务、技术、管理于一体的。可能是我对SOA太无知了,所以听不出更有价值的东西了。
无知人说说无知人对SOA的物质的了解和理解吧:
首先,SOA是什么?字面理解:Service-oriented architecture 面向服务的架构。那么什么是服务呢?服务具有以下这样的特性:1、服务是自包含的。即服务是模块化的、可以独立部署的;2、服务是分布的。就是说你可以在网络上通过服务名或者服务的位置来调用它;3、提供接口的。服务使用者只需知道服务的接口就可以调用服务,服务的具体细节实现对用户来说是透明的;4、服务是互通性。无论是服务的提供者还是服务的使用者,都可以在不同平台上用不同的语言来实现或者调用。Java和Dot net阵营的人可以省不少口水了。5、服务是可发现的。通过注册,服务应该是可以被使用者发现的。6、服务是动态绑定的。就是说服务的真正实现是在运行时绑定的。通过这些教条式定义,的确能有效帮助理解什么是服务。
SOA和Web Service有什么关系?首先要明确的是,SOA和Web Service并不是一回事。后者只是前者的实现方式之一。如何实现SOA,并不一定要用Web Service。比如还有基于CORBA的实现、基于WebSphere MQ with Custom Extensions的实现。只是,得益于Web Service的平台无关性、已得到广泛的支持、很有前途等优势,它成为实现的SOA的最主要的方式。其实,有些时候,为了降低实现基于soap 的Web Service的复杂性,基于http的REST方式也大行其道。
SOA能干些什么?首先得说SOA是生于美国的。它的诞生是针对美国那样的环境下企业应用面临问题的解决方案。具体的不知道,就晓得美国很发达,人家的好多企业比我们的共和国还年长呢。年长了,肯定家底厚实,构建与不同时期应用系统肯定数量不少,站在企业IT战略角度的考虑,肯定是要解决众多系统的整合问题的。外国人钱多也不会一竿子打倒从头再来,在保护现有投资这个前提下解决问题,SOA并应运而生。把原业务处理封装为服务,构建新应用时直接调用各个服务就行了,像搭积木一样。
SOA在中国能干些什么?呼应一下开头,IDC分析师姜振鹏说的:中国和美国的SOA是不一样的。人家资本主义很多年了,所以很发达了,同时也很成熟了,体现在企业中是成熟的运营、管理体系,相对稳定的业务流程。所以,把业务包装为服务的SOA在美国出生也就是自然的。说说我们自己吧,人家在大步走在资本主义道路上的时候,我们还在受气、被打、打人着呢。现在能有这样的成就,我们是该好好自豪一把。我们在得意我们的快速发展的时候,快速发展有时也会带来问题。既然是发展的,就不是稳定的,这体现在我们的方方面面,无论是政策面上的,还是落到实处的企业管理、运营上。就谈SOA,在中国企业,能不能也像美国那样获得成功呢。SOA是把业务封装为服务的,目前我们也谈BPM,但是,无奈我们的业务变化太大了,而且我们的管理、运营水平确实又太低了。所以把业务封装成服务的前提就是不稳定的,这样的环境下,SOA能不能还根正苗红呢?可以联想一下为什么国内的ERP的失败率那么高呢?好多失败的案例:说有一家东北的汽配厂家,在当地那是杠杠的,老板看到形势需要他们上ERP,他们就上了,结果砸进去很多钱,ERP没搞成,厂子砸了。问题是什么?首先我想到的肯定不是承建方的问题,我觉得就是IBM、SAP这些厂家来实施,照样会是这个结果。因为,厂子自身的水平压根就不够上ERP的水平。国内好多生意是凭人气凭信用做的,可能没见单子,没收到一毛钱的时候就可以出货了,要在系统中规规矩矩来做,生意可能早黄了。同样,有些CRM也面对这样的困惑,销售、市场人员不乐意把他的客源放到CRM里,因为那时他们赖以生存的根本。所以说,中国的企业够SOA了么?够了,再上。比较失笑的是现实中有拿着SOA这个概念(也没有任何产品支持)来忽悠的,而且能忽悠得客户以为终于找到治病救人强身健体的灵丹妙药了的,佩服!
面对SOA我们应该怎么办?首先说,SOA是个好东西。值得学习。像我们做技术的,整天被一个个破土而出的新名词整得头晕眼花。但很有一部分是昙花一现型。从目前各大厂商对SOA的重视程度和在中国的推动力度来说,SOA还是很有前途的。但是,目前没有的的确确缺乏有说服力的成功案例,毕竟还处在实验阶段的技术,敢于做第一个吃螃蟹的人还没站出来。当然可能有些企业内部应用的小打小闹的东西是有的,但是真正把企业核心业务平台架构在SOA之上的,或许得等好多年,或者好多好多年