现在@@是@@SOA领域动荡变化的时期@@,其发展变幻莫测@@,而这仅仅只是开始@@。由于服务@@设计@@、服务@@总线@@、服务@@治理甚至服务@@本身都处于不断变化中@@,而且各大公司仍在@@重审这一舞台@@,因此@@,人们的立场通常很复杂@@。

  对于@@IT产业中@@SOA的成熟度和整体状态@@,许多人还非常迷惑@@,但是@@,可以确定的是@@,SOA在@@结合商业和技术方面的潜力的确非凡@@。

  去年发布了许多@@SOA的新方案@@,每一个方案都有其特定的一套目标和期望@@。很可惜@@,其中一些方案与@@成功相距甚远@@,一些方案距成功仅仅是一步之遥@@。但是@@,对于@@大多数方案而言@@@@,它们都实现了最初的目标@@,其成功的决定因素是@@——借鉴那些经历过失败项目的人们的宝贵经验@@。这些前辈讲述他们的经验教训@@,告诉人们在@@通往@@SOA道路上所要警惕的重重障碍@@。

  在@@我们的日常工作中@@,我们被卷入进度不同@@、状态不同的多个项目中@@。而现在@@@@,我们已经看到@@,很好的@@SOA变得越来越差@@,甚至更糟@@。虽然@@,问题能够被解决@@,错误能够被避免@@,但是@@,总是有一种强大的力量把事情拖回到原来的轨道上@@。很明显@@,最佳做法就是@@:第一时间避免问题和错误@@。

  在@@SOA的使用中存在@@着隐患@@,很多人已经被这些错误的概念或者做法误导@@,那么@@,理解这些隐患@@,能够帮助你达到深谋远虑的程度@@,从而使你在@@@@SOA的道路上更加安全的前行@@。为了使你有一个好的开端@@,我们已经收集了五种最为常见的@@、SOA使用中的隐患@@。

  没有理解@@SOA的性能需求@@

  松散耦合是需要代价的@@。当@@使用@@Web服务@@实现松散耦合时@@,SOA引入了数据处理层@@,同时也带来了由这些层所影响到的上层的相关性能@@。当@@SOA项目刚开始时@@,规模较小@@,因此@@,构建符合功能和响应要求的@@、面向服务@@的解决方案并不复杂@@。但是@@,随着规模的增加@@,需要添加更多@@的功能@@,由此可以预见到@@,基于信息的通讯量将@@会大幅度增长@@。如果事先没有考虑@@这一情况@@,没有准备好构建环境的话@@,那么@@,就需要对前一阶段所做的小规模系统进行必要的遗留处理@@。

  要构建一个成功的面向服务@@的解决方案@@,其关键是@@:尽快理解你的解决方案的性能需求@@@@、以及基础架构的性能瓶颈@@。这意味着测试@@(如果需要的话@@,增强@@)你的构建环境的消息处理能力@@,并且密切关注@@服务@@设计@@,从而达到传输率@@、传输规模以及与@@其他服务@@特性@@之间的一个可接受的平衡点@@——这一平衡点会影响解决方案的性能@@。

  没有从@@XML基础架构开始@@

  在@@今天的@@SOA世界中@@,每件事情都开始于@@Web服务@@。这似乎已经成为公司内部的既成标准@@,但是@@它并不完全正确@@。事实上@@,在@@今天的@@SOA世界中@@,所有的事情都开始于@@XML。这才是真正的标准@@,依据这一标准@@,许多补充的标准都已经逐渐发展起来@@,并且形成了实际的数据表示架构@@。这一标准的核心@@,奠定了许多@@Web服务@@规则的形成基础@@,并且促进着@@SOA的发展@@。

  因此@@,人们更多@@地关注@@于数据在@@服务@@之间是如何传输的@@,而经常忽略在@@服务@@背后@@,数据构造和验证的方式@@。这一疏忽可能导致无法合理实现@@SOA的持久化@@XML数据表示层@@。对于@@SOA而言@@,这一层是基础@@,如果它存在@@着弱点@@,那么@@,所有基于这一层的解决方案都会受到不利影响@@。

  没有创建一个过渡计划@@

  如果没有使用一个详尽的过渡计划@@,那么@@,成功迁移的机会将@@会降低很多@@。因为@@,在@@一个企业内部@@,服务@@终端所处位置的范围将@@导致环境基础架构的重新确定@@,一次@@差强人意的迁移有可能带来重大影响@@。使用过渡计划@@,你就能够控制面向服务@@和@@SOA特性@@,并且进行相应的协调@@,如此一来@@,迁移就能够在@@技术@@、架构以及组织层面上@@,按照计划进行@@。

  对于@@一个@@SOA过渡计划而言@@@@,其典型的组件包括@@:一个具有重大影响的分析结果@@(预测@@SOA的改变程度将@@如何影响已有资源处理@@、用户标准和技术@@)、过渡架构@@(目标是@@SOA,勾画出一系列通向这一目标的中间过渡状态@@)以及推测分析@@(考虑@@Web服务@@和支持技术的未来发展@@)。

  没有标准化@@SOA

  与@@其他的架构相同@@,SOA也需要创建并且执行内部设计标准@@,以便能够使人们真正地认识到它的优势@@。举例说明@@,如果一个项目采用构建面向服务@@的解决方案@@,与@@其他项目不同@@,那么@@,该项目的解决方案的关键点将@@不再是与@@相关的应用程序保持一致@@,它可能是需要互操作或者分享@@某些不可预知的服务@@@@。

  这可能引发很多问题@@,包括不匹配的数据表示@@、含有不规则接口特性@@和语义的服务@@契约@@,以及使用非互补的@@Web服务@@扩展@@(或者是用不同方式实现的扩展@@)。

  SOA的出现@@,促进了分离后端处理这一开发环境的发展@@@@,因此@@,在@@每个应用程序内部@@,SOA都能够独立执行@@。然而@@,标准化仍然要求@@——服务@@需要封装这一后端逻辑@@,并且在@@设计和交互上确保一致性@@。

  将@@SOA构建成传统分布式架构@@

  在@@实现@@SOA的过程中@@,企业一直面对的诱惑是@@:自称@@SOA已经实现了@@,但是@@在@@构建面向服务@@的解决方案时@@,采用与@@构建传统分布式解决方案相同的构建方式@@。

  SOA既不是@@CORBA + XML,也不是@@ ASP.NET + WSE。同样@@,面向服务@@既不是@@面向对象@@@@,也不是@@“足够接近@@”面向对象@@。虽然@@,通常情况下@@,构建面向对象@@组建逻辑总是@@“非常适合@@”于面向服务@@解决方案的环境@@。但是@@,SOA是基于面向服务@@的@@、与@@众不同的架构模型@@,以及截然不同的设计模式@@。对于@@构建自动化逻辑@@——纯粹的面向服务@@@@,与@@SOA产业向全球规模发展保持一致@@——理解上述这些不同之处@@,是非常关键的@@。

责任编辑@@:admin