1996年的美国,互联网已经很发达了。但是互联网技术并没有跟上。企业仍然封闭在自己的信息化世界。虽然有CORBA、COM+、RMIEJB这些技术模型在支撑,但向互联网公众提供信息服务,而非上下游合作伙伴提供信息服务,CORBA、COM+、RIMEJB仍然在穿透防火墙和通用数据格式传输上仍然存在问题,三个体系都有自己的通讯协议和数据传输协议,普通消费者无法参与其中。
2000年,XML产生。随机基于HTTP的SOAP、WSDL、UDDI产生,WebService作为一个基于互联网通用技术基础上发展的数据通讯协议和数据传输访问协议体系产生了。
但是WebService只是定义了基于通用互联网技术的数据通讯和数据传输访问。就相当于底层通路通了,但是基于上面的应用呢,还是没有一个规范。就相当于路通了,但是在这条路上什么样规格的车跑起来最顺畅,还没有这个规范——当然你可以不要规范,自己造个自己的车,但以后在和拥有统一规格的车一起管理和运行时交互时就有了问题。这个描述也为了回答相当一部份人提出的那个问题:我们既然有了WebService,那干嘛还要SCASDO呢?
SOA就是干这件事的。
但是,对于SOA,业界大佬太过于着急。就如同在.COM大潮中,每个企业都急于申明我们是一家.COM公司。于是,这个市场混淆了各种视听。
做工作流的、做OA(OfficeAutomation,)的、做业务基础平台的、做组件的、做中间件的、做EAI(EnterpriseApplicationIntegration,企业应用集成)的,都号称自己已经是SOA了。
有的说SOA是为了业务敏捷,即可以灵活调整系统以适应快速发生变化的业务竞争。现摘录一段话:SOA通过把传统应用模块分解成更小的构件,并把这些构件当作可以重用的Web服务,CIO们就能通过选择和安排所需构件,来生成最贴合的系统。这和当年我们做WINDOWSDNA架构是多么相似。但当年SOA已经提出,但并没有人说WINDOWSDNA架构是SOA架构。有的说SOA是为了系统整合,有的说SOA是企业总线,有的说SOA是种业务分析设计思想,有的说SOA是技术架构模型,有的说SOA有类似UML的作用,可以使业务设计人员和技术设计人员有共同语言,有人更说SOA就和Web2.0一样,就是个概念。颇像当年微软急于把自己所有产品都打上.NET标志一样,最后弄的大家都搞不清楚什么是.NET了。直到2007年发布WPF、WCF、WF之后,.NET的技术走向才算基础架构定型。SOA和当时的.NET非常相似。
如今,SOA规范才真正落地为SCA(ServiceComponentArchitecture,服务组件架构)和SDO(ServiceDataObjects)。工作流规范业界已经成型,WF也符合业界工作流规范,所以SOA中并没有定义工作流规范。而对应WPF的SOA显然也不需要,毕竟SOA考虑的是业务接口服务层面,而非这个服务以什么样的图形界面规范来让客户存取,没有必要。但中国普元补上了这一环节。中国普元也是OSOA顶级成员之一。光有接口没有UI,还是需要程序员动手写这个UI,业务人员不可能没有UI去做灵活改变业务功能和流程,即使有BPEL和DSL也不行。别给业务人员任何技术的东西,别想着DSL和UML就能让业务人员用起来。所以,SCA和SDO已经够用了,SOA架构真正成型。
但SCA和SDO是2007年8月才定型的----虽然2005年已经有了草案。所以之前急于号称是SOA产品的厂商不知作何感想。
信息发布:广州名易软件有限公司 http://www.myidp.net