关闭

SOA六大悬疑和阴暗面

550人阅读 评论(0) 收藏 举报
来源:中国计算机用户
  SOA是如今IT界所谈甚多,但却所知甚少的话题之一。作为构建IT系统的一种方法,SOA可通过公共通信协议来连接网络上的诸多应用,这样企业往往借助Web服务即可重复使用原有软件,以节省经费。
  Saugatuck Technology公司预测,到明年,多达三分之二的IT部门会拥有局部或者全面的SOA生产环境。但SOA实施过程复杂,IT部门在选择SOA时依然面临一些紧要的问题。

  1、谁因使用SOA而节省费用或者实现盈利?
  安飞士公司(Avis Budget Group Inc.)的服务架构信息技术主管Ashok Kumar说自己就是。大约两年前,Avis开始在公司局部使用SOA,与合作伙伴建立新渠道。派驻新泽西州的Kumar说: “现在对方可以直接与我们有业务往来,不必通过中间人。这样为对方和我们都节省了费用。如今引入新合作伙伴的成本降低,这要归功于SOA。”

  他说,安飞士如今只要一天就能引入新的合作伙伴,因为有了SOA,只要重新配置一下相关服务,而不必大幅改动应用。Kumar说: “起初,引入新合作伙伴的成本在4万~5万美元,现在降到了3千~4千美元。”

  任何公司都会面临与实施SOA有关的先期成本。但许多IT专家认为: 从长远来看,SOA可以减少费用。《面向服务的架构傻瓜书》一书的合著者、行业分析师Judith Hurwitz说,用户不能仅仅从短期投资回报来看待SOA。

  Hurwitz说: “就这种技术而言,你的真正目标是重复使用以及松散耦合组件的功能。不能从短期效益来看待这项技术,因为实际上,出现变化后才会收到实际成效。”

  Hurwitz强调,传统的软件构建方法假定工作从头开始,开发的软件旨在解决某个具体问题。而SOA让企业非常灵活,可以迅速应对重大变化。企业可能在部署SOA数月后也看不到显著效益,但一旦突然进行收购,“应对这种变化、积极响应然后提供软件的能力就会出现重大变化”,她如是说。

  弗雷斯特研究公司的分析师Larry Fulton说,人们经常提到的一个相关问题是,企业在SOA上要花多少钱?

  Fulton说: “这个问题很难回答,因为假设五年前我投入500万美元构建新的ERP系统,现在准备构建新的ERP系统,还准备使用SOA,我仍会在项目的软件等方面投入500万美元,这笔钱是不是果真用在SOA上呢?不是,这笔钱是用在整套业务解决方案上的。”

  Saugatuck Technology的副总裁兼高级战略顾问Mike West说,SOA能带来两种回报。IT人员可减少提供服务的费用,这是第一种回报。West认为SOA仍处于早期阶段,如今使用SOA并且节省费用的企业恐怕只有10%到15%。

  West说,还有比例更少的少数公司在使用SOA并且在提高利润。他强调,如今到处是能够迅速以低成本完成、但缺少长远效益的项目。SOA却是一种截然不同的系统构建及管理方法,它为迅速应对变化奠定了基础。

  归eBay所有的PayPal就是这样一家公司。负责核心技术的副总裁Matthew Mengerink说,PayPal利用SOA为外部开发人员提供了工具,把网上零售商连接到PayPal用来在买卖双方之间转账的系统。PayPal为24万名开发人员组成的社区提供了大约16种应用编程接口(API)。

  2、为何很难找到有SOA专长的员工?
  Fulton说,他从未碰到过声称拥有所需SOA架构师的客户。有个客户告诉他,挑出架构师的最佳办法就是,让10名开发人员进行工作,观察十年,然后确定谁是架构师。

  Mengerink说,由于IT界人士没有就SOA的含意达成一致,找到SOA专家的任务更是难上加难。他说: “有人过来说‘SOA是指微软的服务接口。’另一人过来说‘不,SOA是苹果公司的专用接口工具。’谁对谁错呢?但要是你想招聘一名工程师,就容易多了。”

  Mengerink认为,最好的办法是对自己的人进行培训,这是因为SOA的底层概念和技术不是很复杂。当然,要是你正好在PayPal这样的大公司实施SOA,这项工作比较容易。他说: “大公司在某种程度上能够确定SOA的定义。谁有实力,谁就可以向世人表明这种定义。”

  Kumar说,SOA需要的观念有别于传统的IT基础设施构建方法。他强调,许多人会用Java编程,也懂得如何开发单一的Web服务,但使用面向服务的架构把诸多服务组合起来很难。他说: “许多人很难迈出这一大步,这就是为什么我们往往求助于外部的服务提供商。即使那样,我还是认为,要找到优秀人才太难了。”

  就算招到了精通SOA的员工,也会发现他们试图一下子完成好多工作。Hurwitz在书中写道,激情高涨的员工有时“想当英雄”。

  她写道: “年轻的开发队伍可能会决定打破规则,开始自己编写代码,抢在竞争公司的其他同行之前开发出一套新的功能。的确,这种创新意识对建立市场领导地位非常重要。但要记住这一点: 创新和创造总是需要有所约束。”

  3、微软对SOA有头绪了吗?
  Fulton说: “客观地说,现在微软对SOA有了头绪。眼下,其SOA战略本身有点神秘,想揭开微软神秘面纱有点困难。我认为,微软已认识到SOA是市场上的一股重要势力。”

  预计如今重视SOA的开发商会提供可靠的企业服务总线(ESB)。Hurwitz称,ESB是为SOA中诸多服务起到通信作用的“神经中枢”,在SOA组件、基础架构服务和业务流程之间充当中间人。ESB用途广泛,可连接各种类型的中间件、元数据定义库、注册中心和服务接口。据Fulton介绍,不像IBM和BEA Systems两家公司,微软配置ESB的方法稍嫌复杂。

  Fulton说: “微软目前对ESB的说法不是‘嗨,这是我们的ESB产品’,而是‘你们(客户)可以构建ESB,可以使用我们的这些产品来实现。’他们甚至谈到了使用加速包在BizTalk等平台上简化开发工作。”
  微软公司的BizTalk Server,这款业务流程管理服务器拥有设计、开发、部署及管理公司业务流程的工具。Hurwitz称BizTalk里面的集成技术是微软“替代ESB的一种方案”。
  Hurwitz与合著者在书中列出了支持SOA的另外七款微软产品,其中包括: 微软Windows Server,这个基础架构平台用于连接诸多应用、网络和Web服务; 微软.Net,这个开发框架用于构建应用和Web服务; 还有Windows Communication Foundation,这一套信息传送技术让SOA组件能彼此联系,并且简化了系统的开发及运行。

  Fulton说,微软似乎在随大流,支持一般的Web服务和服务接口。

  不过,West认为: “微软的做法有悖于SOA。SOA提供了开放标准,可以根据它们来构建,那样就有了一定的互操作性,可以使用不同开发商的产品。微软在Web服务方面却侧重于以微软为中心的方法。”

  Hurwitz在接受电话采访时说,微软“在现阶段意识到了SOA”。她说,这家公司在考虑“互联网服务总线”之类的方案,那样就可以对外开放微软内部的服务总线,从而满足该公司防火墙外合作伙伴的要求。据她声称,微软还没有完全解决许多问题,譬如服务治理、为客户提供找到单项服务的机制。她说: “微软正在这方面进行积极思考及规划。我认为他们还没有彻底地全面考虑SOA。”

  4、SOA会给网络性能和管理带来怎样的影响?
  顾问David Jacobs在写给IT专业人士的文章中写道,尽管SOA有诸多优点,它肯定会给你的网络带来负担,因为要求增加了,还有复杂的网络管理及运作。

  他强调,因为SOA中的每个应用都由许多单个的软件组件组成,所以网络上任何地方出现故障都会导致该应用瘫痪。部署SOA之后,监控网络、立即应对问题方面的能力显得尤为重要。

  据Jacobs声称,评估网络性能的方式可能也会有所变化。吞吐量等尺度具有误导性,因为每个流程会使应用组件之间形成错综复杂的关系。因为其中的每层关系本身涉及少量数据,所以总的事务处理速度和响应能力成了重要的衡量尺度。

  他强调: “生产力由用户事务完成多快来衡量。组件之间每次交换所需的数据速率和时间是影响事务处理速度的一个因素,但只是其中一个因素。管理软件必须能够在应用层面检测出问题,然后深入分析、查出问题根源。”

  在安飞士公司,监控网络性能和管理是IT主管试图向该公司更多部门推广SOA时面临的难题之一。Kumar说: “许多用户分布在没有足够带宽的小地方。要是我们开始大规模推广开发而成的这项SOA功能,网络带宽会成为瓶颈。”

  安飞士现使用SOA提供客户服务,譬如预订、结账及寄送发票。带宽可用性对企业内部用户来说没什么问题,但Kumar认为公司很难为远程用户提供足够带宽。

  Hurwitz强调,SOA在可扩展性方面会带来问题,这要看公司在防火墙外面在多大的范围内联系客户、供应商和合作伙伴的系统。她说: “但我认为,这对网络带来的影响与部署需要通信功能的各种分布式应用对网络带来的影响没什么不同。”她补充说,ESB有助于为组件和服务之间的联系提供便利。

  Linthicum Group LLC的顾问David Linthicum认为,SOA技术开发商更加注重增强特性和功能,而不是提供可扩展性,为此付出代价的自然是用户。

  他写道: “最近采用的SOA技术和方法基本上没有经受更大的应用、信息和服务管理流量负荷的检验。SOA实施者满足于让解决方案启动及运行起来,但在许多情况下,根本没有考虑SOA的扩展性这个方面,也没有考虑负荷测试或者其他基本的性能方面。我们看到了这种疏忽造成的后果,因为SOA问题领域超出了其架构及技术的能力范围。”

  Linthicum 建议在将SOA投入到生产环境之前进行性能建模,并测试实际场景。他写道: “只有进行测试,才会知道它的表现如何。”他还建议在每项SOA服务的源头增强处理功能,从而提高性能。

  5、如果IT部门使用SOA,安全要求会变化吗?
  安飞士公司的IT主管在开始实施SOA时,以为安全只是次要问题; 现在安全成了他们非解决不可的最紧要问题之一。
  使用SOA有助于与业务合作伙伴建立新渠道,而安飞士必须确保像司机的驾驶证和信用卡信息这些敏感数据在数据库内部及传输途中都经过加密。
  Kumar说: “你会有队列,会有数据库,也会有渠道,所以我们力求每个过程都是安全的。你构建的是更加分布式的环境。从安全角度来看,管理起来更难了。这种环境里面有更多组件,而不是像在比较集中的大型机环境下,你只要关注一个地方。”
  身份管理是IT管理人员在SOA方面必须克服的重大挑战之一。
  Hurwitz说: “要是在SOA环境下,同一业务服务可能会有10种不同的使用方式。你要确保已落实了安全体系,表明谁在什么情况下可以访问哪些资源等等,这样情况变复杂了。在某些方面,风险也更大了,因为你在重复使用许多服务; 你一定要确保在这上面有合理的安全级别。”
  Saugatuck Technology公司的West在去年发布的研究报告中写道,传统的应用安全机制“在SOA下毫无成效、使用不便”,因为针对不同应用,身份和访问权限(包括密码和特权)也大不相同。
  事实证明,单次登录在大企业环境下还不具有扩展性; 要是运用到横跨多个业务合作伙伴的SOA环境下,单次登录会因隐私和竞争问题而变得更为复杂。
  相对来说问题不大的是联合身份管理方案,它的工作方式是,信任安全声明来源,并使用安全声明标记语言(SAML)。West写道,对访问控制信息的请求可以编入到浏览器请求或者加入到Web服务事务中。他说: “这样一来,身份管理服务器可为应用所响应的用户生成有关身份和权限的声明。应用、服务或者‘封装起来的’服务接口就不需要访问目录或者信任单个用户,因为它只要知道及信任安全声明和声明来源即可。”

  West认为在众多业务合作伙伴、客户和非员工之间传输数据时,SOA有着自己特有的漏洞,需要在企业内外多个方面加强管理。

  Mengerink显得比较乐观,他说,部署SOA之后,安全实际上变得容易了。不过这仅仅是相对于PayPal在保护网上支付时面临的巨大任务。他强调,PayPal的SOA是完全为了开发人员而提供的。

  他说: “我们在网上的受攻击面实在太大了。现在‘你只要在我们网站上进行注册、输入名字,我们就知道你是谁,会给你一个特殊令牌,然后允许你与我们进行对话’,这就建立了一条非常狭窄的联系通道,外人无法窥视,因而安全大大提高。不然谁都可以上www.PayPal.com网站开始攻击。”

  6、SOA有哪些“阴暗面”?
  安全显然至少给一部分部署SOA的IT主管带来了挑战,不过安全不是在构建面向服务的架构时会发现的惟一一个“阴暗面”。据Fulton声称,SOA的其中一个“阴暗面”是,很难提供数据的统一视图,也很难访问多个业务服务上的数据。
  原有软件可以重复用于新的业务流程是很好,但同时暴露了大多数企业的一个致命弱点: 它们的客户数据会随着时间而发生变化。
  Fulton举了个例子: 五年前,有线电视公司只要向客户居住的公寓或者房子寄送账单,对方就能收到。而如今,客户可以在多个地方收到账单。这只是很小的变化,可是原有应用对此束手无策。所以,可以操纵服务的所有构建模块来迅速做事,但一定要弄清楚如何统一数据。人们仍在为解决这个问题而努力。”
  他说,目前大约有15家开发商在提供成熟的ESB,不过业界在管理数据方面的技术还不太成熟。
  很难获得新SOA项目所需的资金是另一个潜在的不利因素。Kumar说,就算从长远来看,SOA确实能够为公司节省费用,还是很难说服掌控预算的人把眼光放远些。
  他说: “现在的整套做法是按照具体的项目来进行拨款的。每个项目都要证明各自的投资回报。现在,我们让人们对SOA引起了注意,不过还是很难让财务人员明白不能着眼于单个项目的道理。”
  Hurwitz声称,SOA的“阴暗面”就是“它根本不关技术”。她说,引起问题的是开发这项技术的人员,如果他们没有与公司的业务人员进行协作,或者没有考虑公司其实需要哪些服务,更是如此。
  她说: “要是你构建了1万项业务服务,它们可能过于细化了,所以很难使用。这不会给你带来多大的帮助。阴暗面就是没有把它做好。”
  Fulton则认为称“阴暗面”为 “影响面”更合适和中性一些。比如其中一个影响就是,需要购买技术来支持SOA; 另一个影响就是,要是有人认识到面前有众多产品要选择,就会产生混淆。
  他说: “现在市面上有ESB、SOA管理产品、管理Web服务的产品、用于Web服务的硬件加速设备以及网关等等。问题在于‘我到底需要什么?’当然,实际答案是‘这还要看具体情况’。不过许多人说‘告诉我要买哪些东西,那样可以开始构建SOA’。这恐怕是对待SOA的糟糕至极的态度,因为你最后可能把钱浪费在了不会充分利用的东西上。” 
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:695523次
    • 积分:8146
    • 等级:
    • 排名:第2571名
    • 原创:3篇
    • 转载:584篇
    • 译文:0篇
    • 评论:129条
    最新评论