SOA服务导向架构

所谓的SOA服务导向架构(service oriented architecture, SOA),就是将软件与信息服务直接与商业流程整合的一种方法,如此一来,特定的服务就可以重复使用,必要的时候还可以重新组合。 这样的发展大幅降低了开发成本,同时也改进公司为客户与供货商等提供新服务或改善服务的能力。 这些应用对于企业而言都是相当正面的,不过,即使SOA确实符合企业的需要,你可能还是会面临来不及构建的问题。MIT Solan Center Information Systems Research(CISR),20年间进行了456个企业研究项目,从信息架构的策略与IT主导的策略性选择(IT Architecture as Strategy and IT-Driven Strategic Choices)一文中描述了4个不同架构阶段,包含: 第一阶段:Silos(各种应用程序乃是以点对点的方式,链接成相互分离的系统) 第二阶段:IT标准化(standardized IT) 第三阶段:标准化商业流程 第四阶段:商业模块化 SOA的效益实现之前,业务部门与IT人员必须先经历各关卡的考验。而且双方都不能跳过任何一个阶段,你最多只能加速通过这些过程。这份研究的首席研究科学家Jeanne W. Ross指出,对CISR 研究人员而言,这个结论是让人无法意料到的,不过当我们说明这个事实的时候,他们会恍然大悟说,原来这就是我们无法顺利进行的原因。 大多数的企业现在都身处于第一或第二阶段,无法更进一步跳至其他阶段,在SOA未被广泛有效采纳与应用之前,企业都往往需要经过好几年或是数十年的时间,才能推进到下一阶段。 CISR的研究提供一个让商业与IT人员有所依循的准则及方向,有了这依循的方向,企业就可以避免分散心力,也可让大家在经历这场长期抗战,在做出种种努力之后,不会感到灰心与失望;同时还可了解最后抵达成功的时候,公司将会是何等样貌。在长期建构的投资过程中,每个阶段都会让你拥有立即的回报,这的确是一件让人鼓舞的事。 公司需要学习如何避免走错了方向,才可以缩短经历的时间。尽管如此,每一个阶段保守估计,还是需要经历约5年的时间。State Street的 Saul强调:之前并没有研究机构针对这部分,发布信息架构的相关法则;不过今日的企业在有了遵循的法则之后,就不再需要小心翼翼地去试验,尝试错误。 还有一件值得高兴的事,ROSS表示:你的竞争者可能跟你同样处于相同的架构基础上,而且他们也不可能跳过任何一个阶段,对于那些没有遵循法则,只是不断在尝试错误的人来说,这样可能浪费更多时间与精力,最后反而建置出一个不合适的商业流程与信息基础架构。 ROSS建议我们不要试图大幅跃进,CIO应该与其他的业务伙伴合作,按部就班让企业一步步地前进,强化专业,建立认同感与增进ROI回报率,这样反而更能保持长期的成长。在发展之际,除了外在的建设,心智上的基础建设也需要同等的成熟度,这也是CIO与其他企业同僚另一个评估的方向。 SOA的繁杂 研究机构与商业报导双双报导:CIO无法避免SOA的发展,SOA绝对有实力让公司变得更为敏捷而有效率。厂商采用这个显眼的标志,也可以帮助他们进行产品的销售。所以不管什么样的CIO,他们都会听到相同的讯息 ,你必须尽快建置SOA,否则就会处于相对不利的竞争局面中。 说真的,即使你不是处在CISR所描述企业可以因此完全受惠的阶段中,SOA还是有许多的优点。Ron Schmelzer的SOA顾问资深分析师ZapThink表示:如果你在组织准备好之前建置SOA基础技术,你还是可以得到更有效益的系统整合成果。导入SOA有点像是Web Services,它可以帮助你创造一个共同的语言,这样业务与IT才会拥有共同一致的前进目标。 Ji MeadWestvaco 的前任CIO Jim McGrane提到:当你要从不成熟的SOA建置过程中获得好处的时候,你可能也会得到不好的结果。从不好的流程中建立出失败的Web services接口,往往只会让缺点更加突显。 你应该去了解为什么你的公司无法成功实施SOA的原因,这可以帮助CIO了解公司目前所处的阶段,可以从实施SOA之中得到什么效益。从Silo到商业模块化的四个阶段演变 即使他们不懂这4阶段演变是什么,一个成功的企业还是会不断地努力往更完善的阶段前进。 如今大部分的公司都处于技术标准化的第二阶段。整个1990年代,诉求的重点很明显是放在IT所开发出的Silos独立商业系统,发展的目前主要都是为了解决特定部门的需求。由于部门的要求不同,因而产生高额的费用和支持需求,这种复杂的状况(成为早期IT的象征),让企业无法成长,更不用说浪费了许多的成本。这结果最后导致大部份的企业都尽可能采用标准化平台技术,只采用一种或两种PC架构,以及一个标准化的数据库技术,以便供所有部门使用,或是采用相同型态的硬件和操作系统供Server使用。 比较进步的企业会处于第三阶段,也就是标准化的商业流程。在这阶段中,商业范畴的问题会被全面考虑,而且IT负责人与业务负责人会成为共事的伙伴。 非常少数的企业可以进入第四阶段─商业模块化,第四阶段会将商业流程和他们支持的技术模块整合,之后就可以有效地重复再运用,或是灵活地加以重新组合,这是SOA组织对SOA效益的基本承诺。在这阶段各单位会了解哪些流程应该专属于哪些特定部门所有,哪些流程应该成为整个企业的标准,哪些是两者都适用。 McGrane指出:要从第一阶段进入第二阶段,可无法像火箭一样快速。尽管费时费力,不过今日许多供货商、顾问、信息人员,都已经广泛地了解如何建立「成功标准化平台」的战略与策略。至于第二阶段到第三阶段,则是需要组织变革和企业的责任背书,这反而是比较难的一环。进入第四阶段会更困难,这需要对公司整体重新作定义与定位。 第一阶段到第二阶段的主要任务大部分属于信息部门的范围,ROI的重点在于成本节省上面。然而第三阶段到第四阶段,专注的焦点转换到“IT如何满足各部门实时性或定义性需求”上,依据需求开发商业流程,创造出弹性化模块化的IT服务架构,此时ROI的重点在于“让企业更加灵活敏捷”。 McGrane强调:这时候的重点不再是“成本管理”,而是在企业改造。如果CEO和CFO财务长无法了解这一点,那你就糟了,工作任务势必会窒碍难行。 健全的平台 从第一阶段Silo转变到标准化平台所面临的压力,对大部分CIO而言,是很容易感同身受的。当IT要面临日益复杂的管理与整合问题时,我们常听到业务部门对 IT成本不断上升、系统上线时程延长…等种种问题抱怨。要将“企业平台标准化”并非如你所听到的一样简单,首先你要决定什么应该“标准化”。 State Street的 Saul指出:将“网络层次标准化”是有道理的,不过将特定的商业用途标准化并不合理。举例来说,共同储存网络系统和email系统都该节省成本,同时改进信息分享的机制。不过对于股票交易者而言,即使很多基本功能都是相同的,例如客户管理和报表功能等等,他们投资时所需要的应用程序功能需求,都可能比其他衍生性金融产品还要多。 我们今天的企业IT架构都是建筑在不同的“层次(layer)”之上,从网络、硬件、操作系统和中间件、数据库直到形成应用程序,一层一层堆栈起来。而这些「层次」在商业运作的层面上差异性可能相当小,差异通常只限于应用程序的层次上。 因此所谓“需要标准化”的对象是指那些「可能标准化」的功能,而不是强迫他们都要符合商业应用层次的需求。这样的方法可以让设计者专注于商业应用服务上面,一旦可以重复使用这些核心组件,就会为企业带来很多的好处。 至于下一个议题就在于:如何处理旧系统转移到新的标准化系统之后所产生的变化。不只你使用的技术会面临到过渡的问题,你的使用者也会面临过渡期。Saul强调,你一定会面临一个你不认同的技术,不过它却可能扮演重要角色,同时也会是一个有优异表现的技术。 State Street很早就成立一个“信息架构委员会”来推动标准化,传达相关的议题。要解决标准化先后顺序的问题,委员会必须拥有明确的企业目标,避免因为IT的实行而产生严重的商业标准化问题。 这个委员会为IT与业务双方埋下了合作的种子,也为未来几年迈向第三阶段预作准备。 转变到第三阶段时,有个比较难解决的议题,那就是人的因素。银行保险公司TD Banknorth的执行副总监兼CIOJohn Petrey表示:第一阶段的使用者与IT职员会把重点放在解决个别特定的问题上,这点是很容易理解的。对于解决问题的人而言,将「技术标准化」可能同时代表着失去管理或是失去提供最好的解决方案的机会。Petrey强调:能够理解“想要得到好处之前,需要分享更多”这件事,的确需要花时间养成。事实上,文化上突然的转变,与要让人们认知到不同文化的产生,都不是一天就能觉醒的。 除此之外,公司要达成目标也需要下定决心,通常危机会更突显“为什么必须改变?”的事实。至于平常时候,一个公司的领导者的领袖特质、魅力,或是人格特质,也都是影响别人去改变的力量。TD Banknorth的Petrey用无情的方式准备将被并购的公司进行标准化。他说:“我们的确是在做破坏与取代的工作,因为异质平台不会是企业的立足点。”协同合作时期 CIO Karl Wachs强调:“当一个组织将平台标准化之后,下一步就是要进行IT与商业流程的整合。”举例来说,化工制造商Celanese就是经过4年的标准化过程与协同运作,因而节省了40%的IT成本。Celanese将原来的7个数据中心(data center)及13个ERP系统,分别整合成一个。企业开始在单一ERP系统进行商业流程标准化的时候,这种协同运作的机制通常开始于第二阶段,完成于第三阶段。 Wachs说:有效率了解商业流程,并将流程标准化不是一件小事,它可是需要的IT与商业之间密切的合作 这些努力会让IT与业务双方了解,不同部门会使用许多相同的核心流程。举例而言,我们的化工单位的运作方式跟塑化部门是不同的,所以他们各自拥有不同的销售流程和CRM导入方式。不过,我们可以将所有的功能整合在同一个系统上,经由设定,让系统为不同的商业运作做服务。要对这些问题作深入的了解,你需要进一步分析你该持续遵守哪些原则。Wachs表示:没有这些原则,你无法对IT服务做适当的管理,更不用说是商业流程。ZapThink的 Schmelzer也表示,这种案例的管理重点在于,企业决定特定商业流程与IT流程的依据原则是什么?以及企业如何建置商业与IT系统,就像架构定义检核需求和投资的优先级等重点。 从第二迈入第三阶段之际,可以为企业带来出乎意料的好处。在TD Banknorth里,各个业务单位往往需要更精密的产品才可以跟别人竞争,基于这一点,就很需要IT来维持成长的动力,以及维护产品的复杂性与精密度。在此同时,基于成本压力的考虑,CIO就必须在资源相同的基础上,创造出更完善的工具。这种压力趋使企业产生优化效益,带领企业进入第三阶段。 举例来说,当TD Banknorth进入第三阶段的时候,他开始花更多的心力在数据架构上。Petrey指出,你必须投入真正的资源来发展与规划,这包含确保数据定义标准化,确保多元系统之间的数据存取与解译,能够更加容易且正确,同时并收集与提供客户更好服务的模式。 TD Banknorth已经明确指出,参与商业流程的IT人员,必须同时扮演跟业务使用者之间的关系经理人,以确保IT与商业的目标是一致的。 虽然TD Banknorth已经将科技平台标准化,但是并没有全部把购买或开发的应用程序都标准化。Petrey回想时指出:“我们了解过去犯了这些错误,是会降低服务水平,同时也会影响公司的成长。现在应该改善这些不好的系统,以便符合新的IT架构。现在的TD Banknorth也正持续努力地改善之前的缺失,迈向第四阶段,而在此阶段相对需要更严格的管理机制,以便确保过去的错误不会再发生。” Meck的CIO Joe Solfaro说:专注在架构上当然也可以为未来带来利益。很多公司的IT成本都花在如何将平台标准化,不过这也需要符合商业流程和信息架构,因为一旦它变成一个可以节省成本的平台,往往会让企业变的更加灵活。几年前Merck发展一个共同的数据架构,即使系统规划上有战略性考虑,还是需要支持相同的策略方向。 从文化的角度来看,企业进入第三阶段时,就必须放手让IT与业务的同仁进行。你必须停止一直进行策略性规划,你要相信其他人可以管理并执行这些细节。这些转变有些发生在第一阶段过渡到第二阶段的时候。至于要在第三阶段放手让成员去执行就不容易,因为IT与业务部门的立场非常不同,他们必须彼此互信才有办法合作。 商业流程模块化 很少的企业是处于第四阶段,他们只占CISR调查的450家公司中的6%而已。CIO通常在第三阶段后期就可以看出第四阶段的成效将会如何。Celanese的CIO Wachs表示,该企业有部份的单位处于第四阶段,把重点放在“流程模块化”上面,这样才可以在企业内部获得良善的管理。 他强调,只有当那些特定功能可以弹性运用的时候,公司的灵活度才得以展现。不过这需要了解这些功能是什么?如何被使用?以及会影响到什么?相对的,要达到如此的成效,需要一个功能弹性又数据一致的架构。 State Street Saul.认为在第四阶段初期,必须让我们的信息人员更加熟悉商业流程,同时善长沟通协调。IT与业务之间的界线是很模糊的,不过可以确定的是 ,我们需要一个擅长经营IT与商业流程的人来进行沟通协调与整合的工作。对某些公司来说,IT代表着服务分享成果的一部份。 MeadWestvaco的McGrane表示,至于企业处于第四阶段的成孰期会呈现什么面貌,这点就比较不清楚要了解如何让IT更灵活,改变游戏规则与不断改进都只是刚开始的事,他也不确定这些所需的技术是否已经存在,不过他可以确定的是,当你的企业无法顺利进入第三阶段时,你绝对无法迈入第四阶段,因为第三阶段会建立许多第四阶段所需的商业流程方向,这也将是整个企业商业模块化的基础。 这是个旅程,不是终点 CISR的Ross表示:如果把每个阶段的成果都当作抵达的终点,这倒是件吸引人的事,不过更真实的观点,应该是把它当作企业从一个阶段,慢慢过渡到另一个阶段的转变过程。因为这样改变程度非常巨大,而且相当重要,所以大家必须不断随着科技的进步而改变。这也是为什么CIO必须不断鼓励创新建设与奖励日益求精的的价值,这样才可以化解改变过程中所带来的冲击,同时激励管理热忱。 事实上,由于公司合并之后会存在许多的旧系统,这些都是来自不同层次的业务需求与共识,或是外部的力量(例如法规…等),通常他们会同时处于不同的阶段,举Celanese为例,他们的人力资源HR系统就是因为薪资需求的问题,还停留在第二阶段,然而有些其他系统却已经进入第四阶段。 不论改善企业效益的与企业敏捷度的压力如何沉重,现在就进行吧!就越快越好,我们不像X-Men一样,可以一步登天跳过这些阶段。别忘了,每一个阶段所奠定下来的技术性、流程性、文化性和行为性建设都是迈向下一阶段的基础。你不可能略过每一个必经阶段,这样的现象连企业并购时都是一样,即使并购的公司所处的阶段领先于另一个公司,也都还是必须按部就班的前进。举例来说,2002年,McGrane的Mead处于第三阶段,之后被处于第一阶段的Westvaco所并购,所以新的CIO必须将合并后的公司从第二阶段带领到第三阶段。到现在为止,这个整合后的公司已经共同朝向相同的成熟阶段迈进。 此外,企业应该了解架构没有所谓完成的时候,ZapThink的分析师Schmelzer表示:这种观念是为了不断地调整服务内涵,未必是所谓的完成;例如将两种服务结合成一个整合性服务,反之亦然,这就是调整服务内涵。 Schmelzer也建议:CIO未必拥有这些技能,所以他们需要一个建立架构的团队来相互协助。 CISR的Ross表示:企业管理信息架构的演变,必须体认过程的本身就是一种回报,最后的成果比不上持续改善所得到的成效来的重要。你需要的是一天一天的进步,而不是在想如何一步登天,抵达第四阶段。

时间: 2024-09-23 19:59:29

SOA服务导向架构的相关文章

《微软云计算Windows Azure开发与部署权威指南》——第6章 Windows Azure平台访问控制与总线AppFabric6.1 服务导向架构

第6章 Windows Azure平台访问控制与总线AppFabric 6.1 服务导向架构 微软云计算Windows Azure开发与部署权威指南什么是SOA(Service-Oriented Architecture,服务导向架构)?SOA的理念广为人知,然而其概念解释又有多种版本.本书认为SOA是为了满足组织机构的商业需求而建立的松耦合的体系结构. 需要读者注意的是,SOA注重架构而不是实现,它不是一门技术,而是一门设计哲学,很多人将面向服务的架构和面向服务的实现混淆.SOA并不强调实现的

SOA的SaaS化:通过SaaS提供SOA服务

据国外媒体报道,现在已经出现了一些通过互联网提供SOA服务的需求.美国一家ESB供应商Cape Clear的老板Dana Gardner曾对媒体谈过将SOA.ESB作为一个集成的服务提供的可能性.之后不久,他的公司就通过云计算为用户提供ESB服务. Dana Gardner说,通过云计算提供的SOA工具和平台对于中小企业来说应该有很大的吸引力,因为部署SOA的工程对中小企业来说,需要太多的时间和专业技能,而且还需要后期的维护,让中小企业感觉负担太重.所以,通过"云"提供SOA的服务,应

向服务组件架构出发

相当数量的博客们一直想知道关于服务组件架构(SCA)的标准化努力. SCA的挑选(pick-and-chose)规范风格使人很容易在SCA的宇宙中迷失.因为社区中基本没有SCA的使用经验,许多值得详细说明的领域依旧还处于调查研究之中,或者甚至还未被触及. 首先,读者很容易被误导相信SCA是Java领域的(又一个)革命.就两点来说,这是错误的.首先,尽管面向Java的工作吸引了绝大多数的注意力,但是SCA不仅仅只关心Java领域:还有针对C++.COBOL.PHP和BPEL的规范.话说回来,我们所

SOA质量管理在SOA服务生命周期管理中的角色

简介:本文来自于 Rational Edge:本文介绍了 SOA 服务生命周期管理,并 且阐述了 SOA 质量管理以及 IBM Rational 工具及最佳实践的支持对于将 SOA 开发活动与业务目标相结合的重要性. 好的治理是构建成功的面向服务的体系结构(Service Oriented Architecture,SOA)的基础.SOA 治理是使各种业务单位和 IT 涉众确保他们共 同设计的 SOA 是真正跨企业的.缺乏恰当的治理会令您很难获取将 SOA 的业务 价值最大化的业务过程敏捷性和投

专业技术顾问王庆友--大型APP服务端架构演化及最佳实践

[51CTO.com原创稿件]在WOT2016移动互联网技术峰会上,王庆友前1号店首席架构师兼独立技术顾问为我们讲述APP服务端的变化过程.王庆友老师从四个方面为我们讲述:架构历史和问题.最新服务端2.0架构.APP架构总结及架构本质的理解. 架构历史和问题 最初架构,可以称为0.1版本,架构本身非常简单了.首先有一个无线接口模块,统一对接APP的请求,内部是利用各个业务开发team提供架包完成业务逻辑返回结果.这个架构有两色,一个是集中式架构,另外是架包物理耦合.对于一开始提供一个简单的APP

《PHP精粹:编写高效PHP代码》——3.2节面向服务的架构

3.2 面向服务的架构SOA(Service-Oriented Architecture,面向服务的架构)是在各种PHP应用程序中日益得到普及的方法.它是基于一个服务层的系统,提供系统需要的所有功能,但这个服务提供的是应用层,并未链接到表现层.这样,多种系统就可以使用这个相同模块化.可重复使用的功能了.例如,你可以写一个服务层,接着website和几个移动设备应用程序都来使用服务层,同时我们允许第三方对它集成.这个系统架构可能最终看起来如图3.1所示. SOA方法允许我们使用.测试,以及强化(h

微服务与架构师

因为工作的关系,最近面试了很多软件架构师,遗憾的是真正能录用的很少.很多候选人有多年的工作经验,常见的框架也玩得很溜.然而最擅长的是"用既定的技术方案去解决特定的问题",如果遇到的问题没有严格对应的现成框架,就比较吃力.这样的技能水平或许适合某些行业,但很遗憾不符合我们的要求.   软件架构师到底应该做什么,又为什么这么难做好,这都是近来的热门问题,我也一直在和朋友们讨论.正巧,最近我看完了新鲜出炉的<微服务设计>,所以大概可以谈谈自己的看法了.因为这类问题比较抽象,也没有

大咖直播第五期问答整理:小咖秀张华伟讲解千万级用户App服务端架构设计

3月18日在线实时分享顺利结束,本次由小咖秀技术总监张华伟讲解千万级用户App服务端架构设计.本次直播中现场观众提出了很多技术问题,我们把这些问题和答案整理好分享给大家. 问答列表: 负载均衡是怎么做的? 如果使用阿里云负载均衡,是如何做数据同步? 有用到反向代理吗?技术架构能说下吗? 程序怎么扩展 能说下服务器数量? 怎么上线? 上线版本怎么控制的? 初期搭建系统的时候,阿里云选择的基本配置是什么呢 请问功能模块之间的通信是怎么实现的?http接口?RPC?WS?还是其他? 缓存选择的方向是怎

元数据如何驱动微服务报文架构?

本文讲的是元数据如何驱动微服务报文架构?,随着微服务的概念逐渐被人们接受,大家都在努力将自己的应用系统向微服务框架转型.在我们研发微服务框架的时候,就发现随着服务数量的增多,服务接口定义就需要一套统一数据标准来支撑:在对服务接口做实参的时候,频繁的且重复性的赋值让人很抓狂.本文将阐明我们面临这些问题是如何解决的. 本文目录: 一.什么是报文 二.报文为什么需要规范 三.常规的报文规范 四.微服务下的报文规范面临的问题 五.元数据驱动的微服务报文 六.技术实践 一.什么是报文? 报文(messag