首页 > 范文大全 > 正文

让SOA来得更猛烈一些

开篇:润墨网以专业的文秘视角,为您筛选了一篇让SOA来得更猛烈一些范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

soa来了……”这只是2004年初中国软件业发出的一个信号。今天,企业用户部署SOA的计划已经箭在弦上,蓄势待发。

SOA浪潮的热度,让人惊叹――作为新一代的软件架构,SOA将快速取代传统的软件架构。Gartner预计今年全球销售出的所有商业应用软件产品,支持SOA的将超过80%。SOA之所以来势汹汹,与市场的需求强烈是密不可分的。传统的软件架构已经有着几十年的历史,面对现代企业业务流程快变的特点,已经实实在在地显露出疲态,无论设计、开发、部署还是维护都给企业IT管理部门带来了很大的负担。基于SOA的软件系统凭其协同、高效、易于部署和维护等优点,更加迎合企业用户的切实需求。

尽管SOA 也不是一个很新的概念,在几年前就出现了雏形。但在最近几年,随着大规模的标准的不断涌现,基于标准的Web服务技术的日益成熟使得在企业范围内成功实施SOA成为可能,接下来的问题只有如何高效管理和提高应用的安全性。

需求 提上快车道

任何新兴的技术,检验优劣的标准无疑是应用;而推动其进步和发展乃至普及的必然是市场需求。SOA的起源,正是基于市场上企业信息系统遭遇应用集成瓶颈的背景。

在过去的二三十年内,企业大多数都构建了一些基于传统软件架构的管理信息系统。这些系统是相互独立的,即使多个系统是相同的厂商提供和建设。由于受到当时信息技术水平的限制,企业信息系统建设过程中缺乏相互的数据共享和信息交互。导致的结果就是,企业内部出现了的众多的信息和数据孤岛。企业的业务流程并没有借助IT系统流畅地实现,系统的功效不但没有得到应有的发挥。反之,众多的系统的分头管理和维护给企业IT管理部门带来了很大的负担。企业需要整合应用系统,适应企业不断发展的需要。虽然一些IT提供商可以提出了应用集成的解决方案,只是治标不治本,不能从根本上解决问题。当遇到内部应用系统繁多、IT系统架构繁杂的情况时,方案就会失灵。

就单个的信息系统而言,企业也希望他们的基础架构发生一些变化。由于市场的变化日趋迅速,需要企业及时做出响应,因此现代企业的业务流程不可能是一成不变的。而基于传统软件架构模式构建的软件信息系统是依据事先的需求分析和系统架构设计来完成的,这种需求反映的往往只是企业过去某一时间点的业务流程。待到系统开发设计完成,企业的需求已经发生了变化,系统架构和业务流程之间存在偏差,系统必定不能发挥其最大功效。

这也就是为什么结构越复杂的系统,实施成功率越低的缘由,因为结构越复杂,实施周期就越长,系统架构与业务流程的偏差就越大,失败的几率自然就增加。企业需要容易实施,可以方便地改变流程的系统。

另一方面,随着互联网技术的成熟,偌大的世界又变得非常渺小,无论人与人之间,还是企业与企业之间的沟通变得更加容易。但是这还不够,企业的管理者们希望通过有效的手段帮助企业的应用系统加强交互,以改变传统的商务谈判和交易模式,实现真正意义上的电子商务。这要求企业的应用系统间不但要突破部门间的界限,同时必须打通企业间的界限,提高系统间以及企业间应用的互操作性。

基于这些应用需求,SOA为企业展现了一个完美的蓝图,它把企业的业务流程颗粒化成一个个“服务”。企业的IT管理部门可以根据自身的业务需求轻松组合这些颗粒,使得应用需求突破了传统信息系统的边界局限。所有的用户可以使用一个统一的一体化的方式来应用各种信息和数据,Web服务则能够以一种一贯的完整的方式向不同的应用提供数据。

为了反映商业业务流程的变化,企业可以随时增添新的应用,而不必要考虑重建企业的原有系统。在这个过程中,企业也可以将服务颗粒延伸到边界以外。这样,客户、员工、供应商、伙伴,都能够成为同样一个系统的使用者,而不必考虑部门间、企业间以及不同业务间的边界。对于开发人员而讲,开发和设计工作会变得如此轻松,编码只是在服务颗粒定义过程中,一劳永逸。之后可以根据商业流程规划对应的的系统结构,并根据需要重新组装服务颗粒。

事实标准 瞄准下一代

Web服务,指一组软件规范,可以让不兼容的应用程序在统一的网络通讯协议下互相沟通。SOA是一种用于构建分布式系统的架构方法和理念,它的核心是依据这种方法构建的应用可以将功能作为服务交付给用户。SOA的实现可以基于Web服务,但是它也可以使用其它的技术来代替,只是Web服务是目前采用率最高的。SOA影响力的快速提高得益于这两年大批量Web服务规范的推出,正是这些Web服务规范定义了实现服务以及与它们的交互所需要的细节,帮助SOA很快成为可以投入应用的技术。

为了让Web服务系统能和常规的应用系统一样可靠,但兼容性比它们更强大,软件供应商们终于站在了一起,不断研究和补充着Web服务规范。IBM、微软、BEA、甲骨文等都在基础的Web服务技术之上添加了很多的规范,意在强化安全、功能与稳定性。如今,SOAP(简单数据存取协议)与WSDL技术(网络服务描述语言)是其中两个流传较广的网络服务通讯协议。W3C和WS-I则是两个最有影响力的标准制定组织,W3C包含三个工作组:Web Services Architecture WG Working Group 、XML Protocol WG和Web Services Description WG,是Web服务技术框架和细节标准的主要制定者;WS-I是由微软、IBM、甲骨文、惠普、BEA等为首的计算机业巨头们共同创建的,致力于推动Web服务解决方案全面应用的技术组织。WS-I的主要任务是实现不同平台的互操作性,将各个Web服务规范中的二义性进行重新定义,在语义上确保交互的一致性,同时开发并提供多种测试工具,以测试具体的平台实现是否满足互操作性的要求。据悉,在过去的一年中,平均每一周都有新的Web服务或SOA相关的标准出现。基于这些事实标准,软件提供商纷纷推出支持SOA的产品。去年年底,BEA了带有进军SOA市场号角意义的Diablo产品并声称在WebLogic新版全线产品支持SOA;IBM也在了支持SOA的WebSphere Application Server 6.0之后并迅速将SOA推广到其软件集团的五大产品家族中;作为企业应用市场的巨无霸SAP也不甘示弱,不但积极参与SOA标准的制定,还在公司内部专门项目计划努力实现产品SOA化大转移。

和许多成熟的技术一样,SOA也面临技术标准从多变精的烦恼。基于SOA的应用将跨越简单的应用系统,并且还可能跨越企业边界。因此,用户不得不考虑使用环境的安全性以及如何链接对方的安全域。这需要考虑SOA所部署服务的度量、可靠性以及响应时间,以便确保它们在承诺的范围之内。当用户使用来自业务伙伴的服务时,又不得不考虑面向服务的管理来以协作方式管理企业之间的服务。表面看来,SOA的标准已经足够多,但仔细分析不难发现标准仍然存在盲点。更重要的是,太多标准反倒容易让厂商和用户感到无所适从。

成本 全面普及的“双刃剑”

企业应用新的技术,建设新的IT系统,无非出自两种考虑:一个是规范企业业务流程,节省运营成本;另一个是提高企业业务效率,帮助企业赚取更多的钱。

SOA对于用户的吸引力,也来自于此。它通过将企业IT转变为基于服务驱动的交付模式,将可能带来更高的业务灵活性。但是,现在SOA很难描述清楚,开发、部署和管理SOA自然要面对很多挑战。

企业信息化的过程使得内部积累了一些IT基础设施和应用系统。随着系统数量的增加,这些企业应用环境的结构变得非常复杂,而且由于脆弱的体系结构和紧密耦合的集成造成了许多的故障点。企业为此要付出巨大的精力和金钱,据统计企业通常需要将80%的IT应用预算用于现有系统的维护。原因很简单,现代企业无论在组织结构方面,还是业务流程,甚至企业文化都是运动性变化着的,而传统地应用环境和信息系统只有数据存储是相对运动的,其结构在实施完毕之后就变成了静止的。企业在花费精力维护繁杂的应用环境的同时,仍然需要投入来完成静止的系统架构和运动的业务需求之间的落差。这显得非常笨拙和无力。因此,公司高层管理人员希望自己的企业拥有更具自适应性的IT应用和基础设施。Coference Board的调查显示,全球企业领导九成以上认为,速度、灵活性和适应性是企业选择和实施IT系统优先考虑的问题。

与传统的软件体系架构不同,SOA是针对企业业务流程变化而设计的。基于SOA的应用系统将成为灵活的IT资产,因为它们可以“即插即用”,可以根据业务发展的需要快速、轻松地重新规划其用途。在SOA中,服务是封装成用于业务流程的可重用组件的应用程序函数。它提供信息或简化业务数据从一个有效的状态向另一个转变。服务请求者到服务提供者的绑定与服务之间应该是松耦合的。服务请求者不必知道提供者实现的技术细节,比如程序设计语言、部署平台,通过通信协议,可以调用服务来强调互操作性和位置透明性。

无论从什么角度,SOA都是简易的,它可以帮助企业节省一大部分成本。那为何还有人对SOA提出质疑?

原因很简单,当企业拥有许多旧有系统时,问题就来了。将企业原有架构推倒,重建信息系统,必将损失惨重,通常管理者心理上也难以接受。

通常情况下,软件服务商会把这些系统打包成一个服务,然后再依据相应的标准接口和外界通信。一些业界专家直言不讳,如果旧有系统结构过于原始和复杂,依照先有的技术去打包这些系统,成本将会超过将系统翻新的费用。这时候,用户必须做出抉择,是否继续应用让人头疼的旧有系统。毕竟,推倒价格不菲的旧系统,再增加一笔费用走上SOA之路,是需要足够勇气的。

安全治理 防患于未然

虽然SOA只是一种方法论,基于SOA应用程序的安全问题已经受到了业界的一致关注。原因很简单,SOA应用也是要通过工具实现的实实在在的应用系统。由于基于SOA的产品通常要跨越部门和企业的边界,就给恶意攻击者留下了更多的机会,SOA的安全挑战是空前的。由于SOA理念中重要一条的就是加强业务间、部门间和企业间的互操作性,企业更多的后台应用和应用系统将被开放,黑客就有机会借助这种可操作性完成顺藤摸瓜式的攻击,并利用新的攻击方式,如通过XML入侵、跨网站脚本、缓冲区溢出、URL/表单参数调整、拒绝服务等。

作为一种新兴的开放性技术,SOA同样要面临管理风险带来的安全问题,这主要包括由于管理的失误造成的开发部署的高成本、系统需求和安全策略的混淆、错误的访问规则等等。

对付这些安全问题,关键就是要对症下药。对于一些恶意攻击,就要在网络传输层实施必要的安全策略,保证数据传输的密性、完整性、及不可否认性。由于基于SOA的应用可能会涉及多种组织的访问控制,这时候就要在单点登录和联合身份识别方面下足功夫,尤其是对于企业的关键应用更是要倍加保护。对于企业间串连的Web服务,加载高效的用户身份安全传播机制;针对跨数字身份的安全域,建立链接或可移动性的机制,从而提供无缝的应用访问。至于管理风险,用户应该运用一定的管理工具,制定一致的管理策略,清晰描绘各种角色用户的访问服务和应用的权利。

所有这一切,关键的工作在于规划。企业实施SOA,必须坚持由内到外的原则。首先完成企业数据服务、共享应用以及定义内部流程,在将安全和管理工作做组织后,才能考虑搭接企业间的服务接口,打通SOA应用的桥梁。

Web服务期待标准

王宇

Web服务标准爆炸性的发展到底是好是坏?为什么这种爆炸性的发展是不可避免的?在这种状况趋于稳定之前,软件架构师、设计师和开发员如何进行应对?

程序员进行的无约束的自由开发,导致分布式系统架构产生了一定的混乱状况。随着OMG的CORBA和微软的DCOM出现,它们试图将分布式系统架构标准化,因此也促进系统的跨平台能力和不同系统间的交互能力。而从这之后我们在这方面确实取得了长足的发展。如今,Web服务出现了,但是我们要开始面对一个完全不同的难题:过多的标准。

尽管在今天我们很难想象,但是在1999年末SOAP规格的时候,Web服务确实处于一个微不足道的开始阶段,Web服务也很简单。然后WSDL也出现了,这是一种描述Web服务的方法。每个人都开始谈论被称为UDDI的Web服务注册。这个时候,Web服务已经完全进入到一个过度的循环中,每个人都开始梦想有更新的方法让Web服务能够做更加不可思议的事情。但是,现实很快就击碎了人们的幻想―Web服务仍未成熟。你所能做的事情,也只是发送和接收一个简单的XML消息而已。即使一个简单的东西―不同的系统对同一个SOAP消息解析的不同―也会导致一些不兼容的问题发生。

我们也许可以解释导致标准激增(也称为Web服务字母汤(alphabet soup))的两个关键原因。

行业发展快于标准

时间是不会等待任何人的,对商业世界也是一样。如果标准的投入使用太缓慢,那么行业发展也会变慢。不同的行业的领头人(如微软、IBM、Verisign、BEA、Sun、惠普等等)都形成了他们自己的联盟,开始他们自己的规范来解决他们面对的问题。

例如,微软、IBM和Verisign一起了WS-Security,它描述了一种保护SOAP消息的方法。还有其他一些像这样的规范的例子有WS-Transaction、WS-Routing、WS-Reliability、WS-ReliableMessaging、WS-BPEL、WS-Notification、WS-Eventing, WS-AtomicTransactions, WS-Coordination, and WS-SecureConversation, 所有规范都是由行业的领头人所结成的不同联盟而出来的。

Web服务中的“政治化”

如果把软件开发看作是一个政治舞台的话,那么Web服务就是其中的社会保障部门或者是医疗保险部门。Web服务具有很多有竞争性的优势,每个从Web服务中获益的公司都希望能够由他们来决定Web服务是如何工作的,以此在市场中取得领先的地位和更大的市场份额。

那么,为了保障这些利益,还有什么方法比规定一个自己的规范还要来得更有效呢?这就是Web服务标准激增的第二个原因。

这里有一个典型的例子,两家不同的联盟,为Web服务的可靠性了两个相似但又截然不同的规范,分别是WS-Reliability和WS-ReliableMessaging。另一个例子是Sun和其他一些公司的自由联盟的格式规范,而与此同时,微软为了他的Web服务标识管理而推出的Passport服务。

可以肯定,该行业本身已经意识到Web服务标准不断激增的问题,为此已经成立了这样一个组织―Web Service Interoperation Organization(WS-I)。这是一个开放的行业组织,所研究的问题主要是一些当Web服务发挥出它的全部潜力的时候急需解决的问题,

例如Web服务的跨平台,跨操作系统和跨语言能力等问题。他们采用了非常实用的方法,尝试从SOAP消息开始对Web服务技术栈从下往上进行标准化。该方法最大好处在于所有业界的人都一致同意这些基本要素。把这些基本要素形成规范的文本可以建立并且保证Web服务实现在不同平台上的协同工作能力,对于Web服务保持长期的成功和生命力来说,这一点非常重要。

作为一个软件架构师、设计师、或者开发员,在进行(或计划进行)Web服务工作的时候,为了保证万无一失,有两个很关键的步骤应该遵循,否则就很容易陷入不可自拔的泥潭。

第一,必须非常熟悉与W3C的规范相关的核心Web服务。这些包括XML schemas、SOAP,WSDL,XML数字签名和XML加密。另一个需要细读的是WS-I’s Basic Profile(WS-I 基本概要),它由WS-I,用于保证Web服务的协同工作能力。

第二,Web服务的成功与否,并不取决于到底采用了多少种不同的规范。要尽量让Web服务越简单越好。从最基础的地方开始,在仔细地分析考虑了系统的需求之后,选择每一个合适的规范,才是成功之道。

浅析Web服务投资回报

王宇

企业可以运用系统的方法来认定一个Web服务项目的投资回报。特别值得提出的是,不论一个项目或者一个技术在理论上多么可行和有前景,在没有进行过系统的分析之前,所有这些都是纸上谈兵、没有实现的;只有通过真实的投资案例证明这个项目或者一个技术的采纳真的可行才有效。

企业必须对项目或者技术的缺陷提出警告,剩下的是由项目执行者如业务经理人、项目经理或者软件开发人员通过商业分析、系统架构设计来决策。

Web服务的决策前提

投资回报(ROI)是一个关键的财政指标,强调的是一个商业投资的合理性,它的定义是分子为净利润除以成本,用百分数表示,公式如下:

ROI = [(现金受益-Web服务成本) /Web服务成本] x 100%

公司作投资决策以前,必须进行一定的投资分析。Web服务的投资也是如此。对于投资分析方法而言,有两种基本的分析方式,即现金流折现分析和投资回报期限分析。

投资回报分析是一个项目决策的必要前提。技术项目的投资回报分析,不论对于新的项目还是已经进行中的项目都是多维度函数,相关的因素包括了操作成本,商业行为的变化和效益产出。投资回报分析逐渐成为抛弃一个项目还是采用一个新技术的关键决策手段,也是评估一个正在进行的项目是否成功的尺度。一个好的投资汇报分析决定了一个新的项目或者技术是否是低成本高效益,因而也决定了一个公司的业绩和公司的竞争力。

投资回报分析办法

公司采用Web服务也需要进行上述分析。Web服务的投资成本包括:软件、硬件、系统集成、未来的产品支持成本,所有这些都需要进行精确的估算。

同时,有一点必须明白:投资回报率不仅仅与技术相关。无论采用什么技术,在计算投资回报时,都应该考虑一系列的业务和人员成本。我们在进行任何投资回报的时候,不能仅仅考虑采用新技术所能够产生的相关费用和收益。

您的公司如何衡量Web服务的投资回报?错误的方法是计算在日常文书工作上的时间节省,或者是计算通过节省数据录入所得到公司经费的节省。而正确的方法是计算操作成本和发展成本的降低。

采用Web服务的投资收益来源于几个方面:自动化流线型的业务流程,缩短的应用开发周期和高度的可重用性。这些因素对于不同的公司、应用和实现来说差别很大。

在进行Web服务的投资回报计算的时候,需要考虑三个因素:相关成本、技术收益和业务收益。

Web服务的相关成本包括硬件需求、软件需求、培训成本、网络带宽需求、监控工具和操作成本及销售咨询成本这几个因素。

新技术收益包括软件自动化、中间件技术、集成系统标准化、应用和管理流程的集成和可重复使用的代码可复制这几个因素。

业务收益包括最终用户效率提高、参与动态业务、业务行为协作、给客户更好服务、降低成本以及其他。

应该明白,Web服务的好处包括了直接和间接的收益,这些都包括在投资回报分析当中。

而新技术不成熟、标准不成熟和安全性等问题则是在计算投资回报和风险管理的时候需要考虑的种种因素。

应用投资回报公式

根据前面的分析,用下面步骤可以估算投资回报:

计算Web服务的部署成本,并且得出其总和;计算Web服务所带来的技术收益,并且得出其总和;计算Web服务所带来的业务收益,并且得出其总和;计算Web服务部署所需要面临的所有风险,并且得出其总和。

此外,成本包括了资金成本、人工、管理、支持成本、操作成本和协议成本用A表示;净收益,包括有形净收益,用B表示;风险以及潜在成本,用C表示,那么:

Web服务的投资回报=(B - A - C)/ (A+C) * 100。

这并不是惟一的Web服务投资回报的计算模型,企业还可以采用另外的模型进行计算,但是一定要找到最适合自己的模型。Web服务通过标准的工业协议,提供了一种方案,这个方案让用户摆脱了自己购买硬件,软件和网络的小作坊方式,通过合理的Web服务投资分析,将降低投资成本。