要不要使用ESB取决于每家组织的独特需求和情况。譬如说,如果分布式服务的编制必不可少,而这些服务没有接入到异步消息传送基础架构,编制起来难度就会相当大。
不过单单有了ESB并不等于就有了SOA。在实施的各种规模的SOA中,一般不会只有一种。可能需要连接多条消息总线,而且消息在这些总线上传送过程中还需要转换。
思科、Forum Systems、IBM DataPower、Layer 7和Reactivity等厂商提供的新一代XML设备非常胜任这项工作,这类设备主要用于保护、管理及提升SOA的性能。这些厂商销售的设备可以根据内 容来转发XML消息,并使用专门为此设计的处理器高速完成XML转换、转发及映射等工作。
这些设备大多集成了一系列功能,其中许多功能与ESB的功能相重叠。它们尤其善于对服务进行虚拟化处理,这样一旦需要提升性能时,就可以动态创建服务,而且可以在运行时使用集中管理软件,执行针对服务制订的策略。大多数设备还包括了一系列XML安全功能。
实际上,上述这些厂商销售的首批设备是XML防火墙,用来阻挡基于XML的威胁和拒绝服务攻击。如今,XML安全设备支持加密/解密、验证、身份管理、XML模式验证及更多功能,既可以控制应用访问,又能保护网络边界。
随着SOA日趋成熟,安全服务必不可少。ADP公司就是这种情况,该公司现正致力于部署标准安全模型,作为供其他所有服务使用的集中流程。同样,技术服 务提供商USi也在使用联合身份管理验证用户身份。高级技术部门的副总裁Mike Rulf说: “服务可能甚至不知道用户是谁,但知道该用户已在服务传送过程中的某个阶段通过了验证,因为服务传送了这些验证信息。”
AMR研 究公司的高级分析师Dennis Gaughan提醒道: “SOA中的安全没有得到足够的注意。”早期项目往往侧重于定义服务和传送接口,或者侧重于把业务逻辑与数据逻辑彼此分开来,并且把它们与执行及显示分开 来。但随着服务得到广泛使用及采用,重新改动服务以适应访问控制和授权机制就变得困难重重——这往往需要大范围改动,因为安全控制会改变流程和数据流。
USi公司的Rulf说,这就是为什么一开始考虑到安全性比较明智的原因,哪怕你的安全服务和系统还没有得到部署。在USi,所有服务都有一个标准的 Web服务描述语言(WSDL)模板,模板包括了安全验证和访问控制,还包括错误报告、调用行为及数据预期等,确保一开始服务就有安全性。
使用LDAP将是身份管理项目的关键,Turato计划让所有服务都包括调用LDAP查询的机制。为了防止每个服务在每次运行时进行直接查询,Avis Budget现计划在业务流程的特定阶段进行查询,然后把该验证信息传送给以后的服务。
这种方法存在的风险是,有人只要一路传送“通过验证的”属性,就可以骗过验证机制,所以Turato准备把验证属性变成签名,签名可以跟踪验证在何处进行、何时进行,目的是为了确保在合适流程的合适阶段进行了验证。
测试及调试服务 部署SOA时常不被重视的另一个工作就是测试及调试。ADP公司的Bongiorno说: “从许多方面来看,实施得当的SOA有助于你更快进入市场,但测试方面需要一些时间。”
虽然使用严格定义的服务接口有助于缓解服务集成测试工作,但服务之间多对多联系的性质以及配置服务的众多软硬件系统给测试带来了难度。eBay的 Barrese说: “你总不至于把整个企业变成质量保证实验室,”所以你得尽量扩大测试平台,但又不能影响企业业务的正常运作。
eBay自行开发了部分质量保证工具用于自动递归测试,帮助测试SOA固有的许多执行场景。同时也使用现成工具,譬如Mercury Interactive开发的工具(ADP公司也使用Mercury的自动递归测试工具)。另外,eBay正在评估采用开放源代码的Apache Axis服务测试工具与其BEA和IBM平台的兼容性。
一个与此有关的难题是版本控制。随着服务越来越大,常常需要支持多个版本,因为你没法同时更新所有服务。注册中心或者存储库可以维护版本信息,作为那些服务的标准属性的一部分。这种保护措施很重要,因为这样其他服务就可以相应调整期望。
当然,再全面的测试也不可能发现每个错误,比如,很可能会在监控过程发现事务错误。但要在运行时确认服务本身的逻辑错误,调用服务必须查看返回的消息,才能根据业务流程的规范,知道格式、策略或者其他预期属性是否出现不一致。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
项目经理必须克服对变化是恐惧
当企业的办公室文化是抵制改变时,项目经理要怎样做才能引领团队走向积极的方向,接受改变?
-
作为软件工程师需学的九件事
早在做科学工作时,我就写了很多软件,我也一直是个优秀的程序员。——如果你想让大脑扫描的40G数据有意义,你不得不卷起袖子,编写脚本来压缩这些数据
-
改善技术布道效果的几个实践
技术布道不易,想取得良好的效果就更难了。作者总结了几点改善技术布道效果的实践经验,包括自我认知、环境认知、精选主题、受众分析、把握时机等。
-
敏捷开发流程管理须参考的三个要素
Olga Kouzina认为使用敏捷项目管理工具需要遵守三个原则:流程优先,工具次之;开发流程需可复用;正确做法需可复制。