沸腾的SOA:如何形成清晰的概念?

日期: 2009-06-02 来源:TechTarget中国 英文

  SOA到底是什么?   

  虽然IBM等巨头近年来一直努力的进行SOA扫盲教育,但对于一部分企业的IT人员来说,SOA在他们的脑海中似乎仍然没有清晰的概念。这并不是一个夸张的说法,也不是在嘲笑那些不了解SOA的IT技术人员,因为太多人对SOA有太多定义了。

  有的人认为SOA是一种创新的技术,有的人说SOA是一种新的、统一的标准规范,有的人还认为SOA只是一堆全新的开发工具,有的人说SOA代表着一种先进的IT系统架构体系或一种先进的商业战略思想等种种解释。

  SOA的全称是“Service Oriented Architecture”,如果用中文直白的翻译就是“面向服务的架构”。不过想通过这种晦涩机械的翻译理解SOA显然不可能,特别是一牵扯到服务和架构等词汇,本身就放大稀释了精准定义的可能,这种模糊性也从某种程度上让人一时无法摸清它,那SOA究竟是用来做什么的呢?

  在企业信息化过程中,特别是大型企业在部署信息化过程中,操作系统不统一,不同的应用服务由不同的架构组建而成一直是困扰企业信息化的绊脚石。而对于许多链锁,或者代工企业同样如此,不同企业或者不同下属企业的信息化系统不一致造成了企业的应用服务无法实现高效的整合,网络效率降低、滞缓。

  而SOA就是为了解决这个问题而诞生的,它就像是一条条看不见的线,能够随时把分散的组件珠子串成一条条完整美丽的服务项链。或者就如同儿童乐高积木中一个个标准化大小的积木组件,虽然积木的形状不一,但是标准化的接口却能够让这些组件严丝合缝的紧密联系在一起,最终组成用户想要的作品。因此,通过SOA结构企业的信息化系统和营销等等系统能够高效率无缝的整合在一起。

  在实际实施中,SOA它的主要帮助企业的业务流程更加灵活,它将软件视为由“配置化服务”组成的新系统,并着重强调软件的松散耦合、并使用独立的标准接口,让企业应用系统变得灵活。通过让IT 运行环境更好的支持业务的变化,来保证业务的灵活性。当业务灵活性发生变化的时候,IT 的支撑架构就要很快的适应这种变化。

  从2005年开始,SOA中间件成为了新的明星,吸引着众多厂商的目光,其中以IBM和甲骨文为代表的国际企业动作尤其猛烈。IBM每年在SOA领域的投资达到10亿美元,甲骨文则以85亿美元通过对BEA的收购来全力发展其下一代SOA产品。而与此同时国内软件企业也把巨额资金投入到相应的技术研发中,相继推出了自己的SOA产品。

  目前,SOA在全球和中国,探讨其概念本身的时代已经过去,现在各家SOA企业都在考虑更多的是怎么做好SOA。从目前SOA的发展来看,以业务为中心的SOA项目实现了翻番,从2006年的30%提高至2007年的逾70%。其中,银行与保险业仍在SOA成熟度方面居领先地位。

  SOA魅力何来?

  其实SOA并不是一个新概念,它是著名的顾问咨询公司Gartner公司在1996年提出一个概念,但是受限于当时的技术基础和网络设施等诸多原因,SOA在当时并没有引起企业和IT公司的注意。在Gartner的描述中,SOA是客户端和服务器的软件设计方法,一项应用由软件服务和软件服务使用者组成……

  Gartner公司相信,SOA与大多数通用的客户端和服务器模型的不同之处,在于它着重强调软件组件的松散耦合,并使用独立的标准接口。这一点尤为重要,因为它让SOA不同于以往的企业信息化概念,即用一个新的平台推翻旧有的平台,SOA更关注怎么样对现有的系统进行演化。如果对SOA有正确的理解和实施,那么SOA可以帮助用户对现有的系统,针对不断变化的商业需求进行演化。这可能是很多其他公司的市场部门在不理解SOA的情况下,所产生的一个误导,把SOA和建立新系统联系起来,实际上SOA更多的不是建立新系统,而是对现有系统进行有序梳理加强。

  SOA在企业中强调的是一种全生命周期的流程管理,不仅包括了流程的自动化、流程的实时有效跟踪与监控,还会更多地与业务部门一起来梳理、管理和改进流程,这也是它的美丽所在。SOA不同于OA的流程自动化,也不仅仅是工作流,它既可以满足OA流程的快速应用,也能满足工作流程的个性化定义,不仅能做到以组织架构为基础的动态的角色管理,也能实现跨系统的异构整合应用。

  当IT预算被管理者以大刀阔斧的速度减持的情况下,作为IT掌门人的CIO又应该如何运用有限的IT预算与投入为企业带来更多的IT方面的投资回报。是减少一切的IT开销,少买几台电脑和网络设备?是减少买软件项目的投入,还是优化软件系统,提升业务流程的执行效率?

  大多数管理决策者通常会选择后者,只有企业流程执行的效率提高了,才能提高应对市场变化的速度,增强企业的竞争力。然而,如何优化现有的软件系统,将分散在各个业务系统的流程打通,连接成一条通路,将成为CIO必须面对的一个问题。

  而在SOA的业务流程管理服务中,一个个生产要素都被看作了单独的服务,并找到他们的衔接点。我们可以给出一个简单的例子,多数商家在进行商品交易时,基本上可以分解成:确定商品、选购进货、展示销售、接受订单、销售产品。这其中每个步骤从定义上说都可以称为一个服务,几个服务按顺序串在一起就形成了产品出入库的一个简单的业务流程。SOA就是要先把这几个服务内容定义清楚,然后用IT语言来实现,然后在一个统一的框架标准下,纳入到企业完整的IT系统中,使其成为一个有机的组成部分。

  这样企业中的每一个环节就如同一盒积木中的一个组件一样,当企业需要调整的时候,可以灵活的重新拼组、重用这些定义清晰的组件。例如上面的交易服务流程,可能一个企业许多不同的产品和业务都会有交易服务的内容,服装部门需要交易模块、玩具部门也需要交易模块、食品部门也需要交易模块,而交易模块已经在SOA中被规范化为了一个标准的组建,那么也就意味着所有需要这个模块服务的部门只需要使用这个标准化的模块即可,而不用每个部门都再重新开发一个交易服务模块,造成巨大的资源浪费。

  此时我们或许就能够SOA的魅力了,它其实改进了企业原有的粗放式业务运营系统,用一种全新的思路和方法,将企业的业务路程细致的结构,并给每一个细化的环节明确的定义成为一个个标准化的服务,并在这些细化的服务中刻印上一个统一的接口。更细的组件或者更细的服务环节就能够自然的组合出更多的业务种类,也能够实现最大化的环节复制与再利用。而当这些被SOA用IT标准化的语言打通后,每个封装服务组件的接口都是统一的,自然会流畅的运转,而且千变万化。这种变化可以完全依据企业的具体运营而变化,这就使业务系统和IT系统无限地接近,甚至融合在一起,成为一体,而不会在存在以前粗放业务中的磨合问题。

  SOA的积木怎么搭?

  如今经过近几年的经济发展,国内企业也建设了大量生产型信息化系统,他们也在纷纷尝试着整合这些系统,但与国外同类企业不同的是,它们仍然缺乏大量的服务性系统,许多企业刚刚才部署CRM之类的信息系统。因此,中国有相当数量的服务性系统仍有待新建,全新构造服务才是中国SOA的主要任务,这一点和美国是完全不同的。

  在成熟的美国企业软件市场上,美国企业已经建设了大量的应用系统。美国企业的IT 建设更多集中原有系统改造、升级或整合,新建软件系统比例相对很小。美国实现SOA架构的常见场景是将已有系统中提取和包装成标准的服务,再将不同系统中的分散数据整合包装成为数据服务,最后通过业务流程管理对服务进行整合。

  在IBM提出的“SmartSOA”方法论中,IBM将企业SOA发展过程总结为一个四阶段的“SOA演进图”,即基础整合、跨部门扩展、企业转型、随需而动四个阶段。而中国企业六成以上的部署SOA的企业仍处于第一阶段,处于SOA成熟阶段即随需而动阶段的企业仅占3%左右。

  美国企业市场能对原有系统进行有效分割包装,主要得力于其软件系统中大量部署了标准化、模块化程度都很高的套装应用软件。美国企业经历多年的企业应用集成实践,也为切割的标准化打下了一定的基础。因此,在以新建为主的软件系统建设背景下,中国企业实现SOA架构时更关注建立一个标准的平台,并在其上构造企业所需要的所有标准服务。由于大部分中国企业的现有软件建设技术和业务制定均不规范,导致业务流程难以有效提取。

  同时,不同系统的不同标准的数据源也难以整合。最后,在企业陆续新建的系统中由于缺乏统一的技术架构,最终产生了更多的信息孤岛。

  在实现中国企业SOA架构时,许多现有系统不得不推倒重来,或是将整个系统包装成一个服务,而大量的新建系统将直接构建粒度更小、组合更容易、架构更灵活的标准服务。为了实现国内SOA关键任务,企业和软件开发商在实践着不同的技术路线以构建SOA服务,包括纯代码编写,基于套装软件二次开发或基于面向构件技术平台进行开发。

  但大型套装软件开发周期长,开发费用高,无法有效适应中国企业复杂多变的需求。而纯代码编写又不利于标准遵从,同时开发效率较低,于是面向构件技术渐渐的出现在技术市场,面向构件技术是基于构件的软件开发方法、技术和标准,通常,一个构件包括构件类型、构件实现、提供接口和依赖接口四个方面。用面向构件技术来建造SOA服务,同时可以让SOA服务本身的管理和组装也是一个面向构件的过程,因此基于面向构件开发平台进行定制开发很可能逐渐成为中国企业在进行SOA时的一个选择。

  SOA相关标准化组织

  结构化信息标准促进组织(Organization for the Advancement of Structured Information Standards,OASIS)

  OASIS包括微软、IBM、BEA system、Oracle、Sun、SAP AG、诺基亚等公司,是一个非赢利的国际协会,致力于电子商务相关标准的制定和推广,也是目前制定Web服务标准最多的一个组织。

  OASIS为SOA专门成立了六个技术委员会,分别负责制定电子商务、Web Service开发和部署、服务质量以及面向服务架构等方面的标准。

  万维网联盟(World Wide Web Consortium,W3C)

  W3C主要负责制定Web相关标准和规范,比如HTML、CSS等。W3C专门成立了Web服务专区,下辖六个工作组,负责制定Web服务相关的标准。W3C对Web服务的发展可谓功不可没,像非常著名的SOAP和WSDL皆出自于W3C。

  开放SOA合作组织(Open SOA Collaboration,OSOA)

  OSOA是一个非正式的厂商联盟,其成员包括IBM、BEA、SAP、Oracle。其目的是开发一个语言中立的编程模型,帮助企业软件开发人员能够最大限度发挥SOA架构的特性和优势。尽管OSOA不是一个标准化组织,但制定的规范很可能会成为事实上的标准。OSOA成立了两个项目组,分别负责制定SCA和SDO规范。

  Web服务互操作组织(Web Services Interoperability Organization,WS-I)

  WS-I是一个开放的厂商联盟,鼓励任何对Web服务有兴趣的厂商加盟并贡献自己的力量。它主要致力于提升Web服务基于平台、操作系统和编程语言中立的互操作能力,其成员包括了IBM、微软、Sun、Oracle和BEA等公司。

  互联网工程任务组(Internet Engineering Task Force,IETF)

  The IETF(因特网工程工作小组)是定义标准因特网操作协议(像TCP/IP)的团体,IETF接受国际互联网协会Internet架构委员会(Internet Architecture Board,IAB)的监督管理。IETF的成员分别来自于互联网协会的个人或者组织成员。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐

  • 事件驱动框架和SOA在空军的应用

    空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。

  • 揭秘New Relic APM技术细节

    New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响

  • 仅凭SOA和云无法解决业务数据管理风险问题

    SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。

  • 私有云选项评估:OpenStack vs VMware

    OpenStack和VMware都是混合云和私有云的可选项。那么问题来了,你的组织应该选择哪个呢?