新IT时代疾病:SOA焦虑症?

 
   | |

导读:ERP,企业资源计划。CRM,客户关系管理。XML产生。基于HTTP的SOAP、WSDL、UDDI产生,Webservice作为数据通讯协议和数据传输访问协议体系产生。

关键词:ERP 企业资源计划 CRM 客户关系管理 XML SOAP WSDL

 
正在加载数据...

  1996年,Gartner提出了SOA概念。

  Gartner还曾提出两个很著名的概念:

  ERP,企业资源计划。以企业资源的角度来组织企业的人、财、物、信息。此概念产生于大生产时代MRP之后,号召把企业的上下游也纳入到企业通盘战略考虑当中。因为社会已经变成了产业链,从原材料到生产到物流到销售到售后服务,每个环节都影响生产企业。生产已经变的不是第一重要了,供不应求时代已经结束。进入营销渠道的时代。

  CRM,客户关系管理。以客户服务的角度出发来重新组织企业的人、业务、流程、信息。此概念在ERP的基础上,把眼光从供应链上游和生产企业转移到了客户终端。生产时代结束,营销推销时代也快结束,不考虑客户感受,不和客户交互交流,一味生产和推销,是不可能获胜的。

  (从什么角度来组织资源和流程,颇像技术界的面向过程、面向对象、面向组件、如今面向服务了)

  在这样的大背景下,Web2.0也是顺应这个概念产生的,口碑营销、精确分众、圈子、即时通信、短信、博客,各种交互工具顺应时代而产生。

  ERP和CRM都是应用层面的产物。

  这样的应用,在信息化方面如何落地。

  于是,SOA概念随即而出。

  1996年的美国,互联网已经很发达了。但是互联网技术并没有跟上。企业仍然封闭在自己的信息化世界。虽然有CORBA、COM+、RMI/EJB这些技术模型在支撑,但向互联网公众提供信息服务,而非上下游合作伙伴提供信息服务,CORBA、COM+、RIM/EJB仍然在穿透防火墙和通用数据格式传输上仍然存在问题,三个体系都有自己的通讯协议和数据传输协议,普通消费者无法参与其中。

  2000年,XML产生。随机基于HTTP的SOAP、WSDL、UDDI产生,Webservice作为一个基于互联网通用技术基础上发展的数据通讯协议和数据传输访问协议体系产生了。

  但是Webservice只是定义了基于通用互联网技术的数据通讯和数据传输访问。就相当于底层通路通了。但是基于上面的应用呢,还是没有一个规范。就相当于,路通了,但是在这条路上什么样规格的车跑起来最顺畅,还没有这个规范。(当然你可以不要规范,自己造个自己的车,以后在和拥有统一规格的车一起管理和运行时交互时就有了问题。这个描述也为了回答相当一部份人提出的那个问题:我们既然有了Webservice,那干吗还要SCA/SDO呢?)

  SOA就是干这件事的。

  但是,SOA,业界大佬太急。就如同在.COM大潮中,每个企业都急于申明我们是一家.com公司。于是,这个市场混淆了各种视听。

  做工作流的、做OA的、做业务基础平台的、做组件的、做中间件的、做EAI的,都号称自己已经是SOA了。有的说SOA是为了业务敏捷(可以灵活调整系统以适应快速发生变化的业务竞争。现摘录一段话:SOA通过把传统应用模块分解成更小的构件,并把这些构件当作可以重用的Web服务,CIO们就能通过选择和安排所需构件,来生成最贴合的系统。这和当年我们做WINDOWS DNA架构是多么相似。但当年SOA已经提出,但并没有人说WINDOWS DNA架构是SOA架构。没流行这个名词的原因??),有的说SOA是为了系统整合,有的说SOA是企业总线,有的说SOA是种业务分析设计思想,有的说SOA是技术架构模型,有的说SOA类似UML的作用,可以使业务设计人员和技术设计人员有共同语言,有人更说SOA就和web2.0一样,就是个概念。颇像当年微软急于把自己所有产品都打上.NET标志一样,最后弄的大家都搞不清楚什么是.NET了。直到2007年发布WPF、WCF、WF之后,.NET的技术走向才算基础架构定型。SOA和当时的.NET非常相似。

  如今,SOA规范才真正落地为SCA和SDO。工作流规范业界已经成型,WF也符合业界工作流规范,所以SOA中并没有定义工作流规范。而对应WPF的SOA显然也不需要,毕竟SOA考虑的是业务接口服务层面,而非这个服务以什么样的图形界面规范来让客户存取,没有必要(中国普元补上了这一环节。中国普元也是OSOA顶级成员之一。光有接口没有UI,还是需要程序员动手写这个UI,业务人员不可能没有UI去做灵活改变业务功能和流程,即使有BPEL和DSL也不行。别给业务人员任何技术的东西,别想着DSL和UML就能让业务人员用起来)。所以,SCA和SDO已经够用了,SOA架构真正成型。

  但SCA和SDO是2007年8月才定型的(虽然2005年已经草案了)。所以之前急于号称是SOA产品的厂商不知作何感想。

  我阅读了SCA和SDO标准,我也对比了过去我研究的CORBA,我也对比了微软的WCF,架构思想居然非常类似。

  当年DEC和IBM主导定义的CORBA,太复杂,SUN和微软都做了定制化裁减,发展了自己的RMI/EJB和COM+。由于Webservice的出现,微软立即发展了基于Webservice的架构体系:WCF。但是JAVA世界由于标准制定牵扯了大量厂商的利益,发展缓慢。而IBM也不愿意尴尬的在SUN的JAVA世界做个影子巨人。IBM一直盘算着如何做领袖。

  于是SOA真正架构,吸收了CORBA的教训(IBM由于当年的CORBA没有带起业界标准很是懊恼,这次要卷土重来,更加学聪明了,谁说大象不能跳舞),也结合了Webservice,也借鉴了WCF(WCF也是在Webservice基础上发展起来的架构,很多技术借用了Webservice的技术,而非另起一套底层),终于产生。

  而OSOA组织,最近才出现SUN的踪影,而SCA和SDO标准中并没有SUN提交的草案。

  JAVA和.NET两大平台,封闭而专有。而IBM需要的是一种业界标准制定者。SOA这回达成了IBM的意愿。无论是JAVA,还是.NET,甚至是PHP,只要符合SCA和SDO,就可以提供业界标准服务接口。

  挣脱了语言和专属平台优缺点的樊笼,IBM蓝色巨人又成为自由的业界之神。

  我为什么这么关注和信任和理解SOA。其实和我自身所处的软件行业非常有关系。

  我是做企业管理软件的。很早业界就都有共识:软件不能这样卖了。我们把一套办公系统卖给了运营商,人家用我们的软件做服务,收费比我们卖软件还多。

  所以,就连卖软件老大微软也在喊着软件服务化。

  过去是在企业内部运行的软件,一个企业不外乎也就那么多人那么多数据。但是,一旦把软件服务化、互联网化了,就不抵有多少人访问了。

  所以,我们如何应对软件服务化、互联网化。

  上亿人访问的Webservice,其架构就不能象搭建企业内部运行的软件架构,你看Google,都有几十万台PC集群的计算资源才能支撑互联网服务。我们过去的传统的企业内部机房磁盘阵列和计算机集群架构不适合在公网上了,我们的数据库也不适合服务几亿人了。

  所以,我特别关注我们如何软件服务化,软件服务化的架构是什么样的?

  其实,业界都在往一个方向跑,不管是Google、还是Yahoo、还是微软、还是咱们的百度、QQ、盛大、阿里,大家都在往软件服务化、互联网的方向跑。(如果你仅仅是把眼光放到SAAS,放到和过去的ASP[应用服务托管]去对比,眼界显然需要更高一些)

  应用软件运行需要基础设施。首先,基础硬件设施,几十万台PC的集群如何虚拟文件系统和计算资源分配,这就是云计算要解决的问题。现在云计算是个热门,Yahoo、Google、IBM、微软都在研究和建设。但微软慢了一步(微软在互联网计算上一直不敏感,用传统软件的方式看互联网),所以WFS没有出来(可能没想通作为集群中的一个节点资源,如何加入集群,和集群同构,还能符合个人桌面计算管理)。

  有了云计算硬件基础,还需要数据存取软件基础。有了分布式文件系统,文件存取应该没什么问题,但关系数据的存取,这是现在所有数据库产品都没有解决的。Amazon看到了机会,推出了S3服务。全球互联网就是个超级计算机,而S3就是这个计算机上的数据库。

  而所有的SOA应用,都必须在一个容器中运行,否则,有外界调用这些服务,这些服务运行中使用的资源谁来管理呢(很多人不明白容器是干什么用的,不明白中间件的来历,也不明白为什么JAVA和.NET都要做容器。如果你做应用,你自己还要负责那么多底层的分配与释放与并发,那么你做的既不专业,也累,也不稳定,不如交给系统商去管理)。容器负责内存、资源的分配、调度、回收,负责安全,负责事务,负责并发,负责池化。而这些SOA服务,也必须能随时升级,就必须具备软件热插拔的功能。现在热的OSGi研究就属此类。

  有了这些基础设施,我们的应用就必须SOA化,成为软件服务,让所有人来使用。使用者一方可能是一个C#写的客户端,可能是一个PHP网站,可能是一个JAVA网站,也可能是一个FLASH。

  全球大大小小的公司提供了这么多Open API,如何调用。用各自的语言?JAVA?C#?PHP?Javascript?

  我想会产生一种新的语言来组织这些Open API,而不是这么技术化的程序员使用的开发编码语言。

  它,会是DSL。Domain Specific language。它可能会高于Javascript,但和Javascript类似,但又低于JAVA,C#这些重型开发语言。但它肯定是动态语言。这样随时改变流程,随时改变应用。这就是业务敏捷。

  这就是我预想中的未来SOA时代计算环境。

  你,还在用传统的业务基础平台思路搭建企业管理软件架构吗?

  未来SOA时代,未来软件服务化时代,你,准备好了吗?

原文出处:http://tech.it168.com/a2008/1104/210/000000210108.shtml
 
来源:IT168    作者:阿朱    
 
 
 
 
 

UDDI

 
统一描述、发现和集成(UDDI,Universal Description, Discovery, and Integration)基于XML的注册项,用于世界范围的商家在因特网上的列表。
 
8年前W3C推广XHTML 1.0意在推进HTML markup向符合XML格式markup的方向发展。行业内部的“浏览器之战”令浏览器和网页使用人员陷入一片混乱之中……
 
同XML-RPC相比,Web服务理念有哪些先进的地方?在XML-RPC中RPC代表SOAP的远程过程调用。同时,W3C也在忙于SOAP标准,两个相互联系的标准诞生了……
 
JBoss将jBPM系统看作是其开放源JBoss Enterprise Middleware Suite(JEMS)的组成部分。3.1版本在JBoss Seam中添加了多进程语言支持和集成……
 
是否有强制性的虚拟路径在UDDI登陆的WSDL文件?如果没有,我要怎样获得更进一步的信息发布服务……

热门技术手册排行

 

随着开源技术越来越成熟,一个稍有开发经验的人通过学习就可以用开源的产品和技术构建一套可用的系统。对于从事软件开发的人员,尤其是对Java或动态语言相关领域的人来说,“开源”也许是他们最喜爱的单词。但是,很多时候我们需要的不仅仅是一个可用的系统,而是希望这个系统开发更简易、性能更高和扩展性更好等。这确实是一个令人头痛的问题。本指南很多地方都是点到为止,要深入了解相关信息的读者请借助参考资料、网站等自行挖掘。

 

本专题分六部分探讨SOA设计模式,当初设计面向服务架构的一大初衷就是降低服务间耦合度,由此提高服务的灵活性和自由度。

 

业务流程管理(business process management,bpm)不是一个新概念,甚至不是一个新名词。它是从相关的业务流程变革领域,如业务流程改进(bpi)、业务流程重组(bpr)、业务流程革新中发展起来的。流程管理技术也是从早期的工作流管理、eai、流程自动化、流程集成、流程建模、流程优化等技术中发展起来的。

 

TOAGF是一个架构框架,简而言之,TOGAF是一种协助发展,验收,运行,使用,和维护架构的工具。它是基于一个迭代(Iterative)的过程模型,支持最佳实践和一套可重用的现有架构资产。

 

云计算的概念越来越流行,Amazon、Google和IBM是第一批将云计算引入公众视线的公司。云计算就是新的Web2.0,一种既有技术上的市场绽放。

 

Mashup是一个非常cool的新的应用程序种类。如果你想真正的了解它们,我们需要回过头来看看你现在的计算机,其实它就是一个非常好的帮助你理解mashup的模型。现在开源的操作系统无疑是非常好的apis的集合或应用程序编程接口,帮助开发者去构建其应用程序。计算机本身也是一个很好的为用户提供接口的例子,键盘和鼠标可以被理解为你通过计算机的接口而使用的不同的应用程序。本技术手册为读者提供了一些相关信息,如果需要深入了解mashup,读者可以借助其他参考资源。

查看更多
 
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
电子邮件地址:
请输入您的电子邮件地址
密码:
下次自动登录