`
sunnygrass1
  • 浏览: 74827 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
社区版块
存档分类
最新评论
阅读更多

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时代,未来软件服务化时代,你,准备好了吗?

后记:
20%的企业在上第一代系统,不需要SOA。但软件产品提供商需要考虑SOA,以防未来的集成。但现在对于企业没有需求,不会因为SOA加分买单。
30%的企业在全部替掉第一代系统,不需要SOA。但软件产品提供商需要考虑SOA,以防未来的集成。但现在对于企业没有需求,不会因为SOA加分买单。
30%的企业在整合自己内部的第二代系统,可能需要SOA,但实质上采用的少。但软件产品提供商需要考虑SOA,以防未来的集成。客户可能会因为SOA加分买单。
10%的企业在整合自己的上下游,需要SOA。
10%的企业开始为最终客户提供信息交互服务,如同我们看到的Google API一样,需要SOA。

现在关注和编写SOA时机正确吗?正确,因为你看上面的比例,有50%的企业有SOA需求。
但如果你面临的客户市场恰恰不是这50%,而是另外的50%,那么奉劝你继续做好现在的产品,SOA还不需要。
 

分享到:
评论

相关推荐

    面向服务架构(SOA)中南大学SOA原理与技术 00 课程简介(共66页).ppt

    面向服务架构(SOA)中南大学SOA原理与技术 01 SOA技术概述(共74页).ppt 面向服务架构(SOA)中南大学SOA原理与技术 02 Web服务基础(共66页).ppt 面向服务架构(SOA)中南大学SOA原理与技术 03 Web服务实现(共...

    SOA.zip_SOA optical_SOA 光_SOA 半导体_VPI SOA仿真_光放大

    **SOA光学与半导体光放大器** 在信息技术领域,特别是在光纤通信系统中,半导体光放大器(Semiconductor Optical Amplifier,简称SOA)扮演着至关重要的角色。SOA是一种利用半导体材料(如镓铝砷化物,GaAs/AlGaAs...

    解读SOA :SOA实践方法论

    解读SOA Interpret SOA SOA越来越被企业接受,很多公司都准备规划SOA。但具体怎么上,没有一套很好的方法论是不行的。资料是IBM在长期的摸索中总结的一套SOMA方法论,由于是内部培训资料,所以比较难得。 内容 ...

    SOAOperation_soa开发_SOA_teamcenter_TeamcenterSOA_

    标题"SOAOperation_soa开发_SOA_teamcenter_TeamcenterSOA_"暗示我们将深入探讨Teamcenter中的SOA操作,这通常涉及到在Teamcenter环境中开发和利用SOA服务来增强其功能。SOA开发意味着创建、管理和维护这些服务,以...

    SOA资源,SOA教程,SOA开发

    SOA资源,SOA教程,SOA开发SOA资源,SOA教程,SOA开发

    通过Oracle EBS 看SOA

    SOA这个名词,几年前就经帯在网上看到戒者在一些讲座中听到,但自己真正比较“近距离”接触“SOA”,还是在去年的“中国IT精英年会”上,当时IBM大中华区的老总大谈IBM 的SOA,BEA公司(当时还没被Oracle 收购)也讲了很多...

    SOA面向服务架构

    ### SOA面向服务架构知识点详解 #### 一、面向服务架构(SOA)概述 面向服务架构(Service-Oriented Architecture, SOA)是一种组件模型,它将应用程序的不同功能单元(即服务)通过这些服务之间定义良好的接口和契约...

    SOA.rar_SOA_SOA 开发

    **SOA(Service-Oriented Architecture,面向服务架构)是一种软件设计模式,它提倡将功能作为独立的服务,这些服务可以通过网络进行交互,实现模块化、松耦合的系统。在本压缩包“SOA.rar”中,我们主要探讨的是...

    SOA principles & practice(SOA课程课件 10章)

    **服务导向架构(Service-Oriented Architecture,简称SOA)是一种设计和构建软件系统的方式,其核心理念是通过松散耦合的服务来实现业务功能。本课件详细介绍了SOA的原理及其实践,共分为10个章节,旨在提供一个...

    SOA作业及要求,soa

    SOA,即Service-Oriented Architecture(面向服务的架构),是一种设计复杂应用系统的方法论,其核心理念是将应用程序的不同功能单元通过通信协议联系起来,这些单元被称为服务。SOA强调的是服务之间的松耦合,使得...

    面向服务架构(SOA)SOA原理与技术 全套PPT课件 共8个章节 含实验指导书.rar

    面向服务架构(SOA)中南大学SOA原理与技术 01 SOA技术概述(共74页).ppt 面向服务架构(SOA)中南大学SOA原理与技术 02 Web服务基础(共66页).ppt 面向服务架构(SOA)中南大学SOA原理与技术 03 Web服务实现(共...

    soa pdf 关于soa的文章

    ### SOA与SOMA:服务导向架构及建模方法详解 #### 一、引言 随着软件工程的发展,从结构化编程到面向对象编程,再到组件化开发,技术不断演进。在这一过程中,服务导向架构(SOA)成为了一个重要的里程碑。SOA不仅...

    SOA发展历史介绍SOA的发展

    **SOA(Service-Oriented Architecture,面向服务架构)**是一种软件设计范式,它强调通过独立、可重用的服务来构建系统。自20世纪90年代末被提出以来,SOA经历了漫长的发展历程,逐渐成为现代企业信息化建设的重要...

    SOA从业人员指南 SOA入门资料

    **服务导向架构(Service-Oriented Architecture,简称SOA)是一种设计和构建软件系统的方法,它强调通过松散耦合的服务来实现业务流程的集成和灵活性。本指南将深入探讨SOA的核心概念、优势以及实施策略,帮助从业...

    执行SOA——SOA实践指南

    **执行SOA——SOA实践指南** 在信息技术领域,Service-Oriented Architecture(SOA,面向服务架构)是一种设计和构建软件系统的方法,它强调通过松散耦合的服务来实现业务流程。这篇博客文章和相关的资源集合,...

    IBM soa 培训教材-SOA 治理

    ### IBM SOA 治理培训教材核心知识点详解 #### 一、为什么需要 SOA 治理? 在企业信息化建设的过程中,随着服务导向架构(SOA)的应用日益广泛,如何确保服务的有效管理成为了关键问题。SOA 治理的重要性在于它...

    SOA最佳实践之深入浅出SOA域模型

    ### 深入浅出SOA域模型:BEA最佳实践解析 #### 一、SOA概念与背景 服务导向架构(Service-Oriented Architecture,简称SOA)是一种设计复杂应用和服务的方式,它强调组件之间的松耦合以及通过标准化协议进行通信的...

    SOA成熟度模型为SOA 护航

    SOA成熟度模型(SOA Maturity Model)可以为IT和业务用户提供一种框架,使其能够正确地评估SOA在企业中的适用性和收益。 在过去的10年中,面向服务的架构(SOA)已经成为应用设计、开发和实施领域中意义最为重大的一...

    Executing SOA (执行SOA)2008

    《Executing SOA: A Practical Guide for the Service-Oriented Architect》是Norbert Bieberstein、Robert G. Laird、Dr. Keith Jones与Tilak Mitra四位资深SOA实践者共同编著的一本深入探讨服务导向架构(SOA)...

Global site tag (gtag.js) - Google Analytics