许多人或多或少存在对SOA的误解,这些误解可能出自厂商的市场宣传误导,也可能是由于不同IT机构的解释不同。美国企业系统整合专家、Grand Central Communications公司技术总监大卫•S•林思克姆(David S. Linthicum)最近在他的Blog(网络日志)上解答了一些常见的对SOA的误解。
SOA是一个新概念
错误。自从企业组织中有不止一台计算机运行,我们就开始尝试围绕共享功能或服务创造各种解决方案和科技工具。事实上,最早的RPC协议试图提供这种类型的架构,然后是IPC协议 ,以至分布式对象技术(比如COM和CORBA)。虽然Web服务提供了新的标准方式,但它还是像传统分布式对象技术那样运行。换句话说,它只是演变而不是革命。
你必须用Web服务协议创建SOA
不是。虽然Web服务协议到目前为止还是首选的创建和部署SOA架构的标准,但是你也可以使用其他标准,比如CORBA、COM和 J2EE。你甚至可以采用私有技术创建SOA。记住,SOA只是关于共享和治理服务,你所采用的技术只需要满足它的需要。
你假如购买了企业服务总线(ESB),那么你就拥有了SOA
错误。ESB是非常强大的技术,它答应你通过Web服务界面在应用程序内和应用程序之间传递信息。但是,ESB并非完全基于行为的整合,或者共享真实的应用,它更多是信息导向。
SOA总是公平的
在很多案例中,你会发现SOA在商业上的两种反应,即节省组织成本,包括重复利用已存在的软件作为服务,以及增强改变IT方案适应商业需求变革或灵活性的能力。在你计划设计和部署SOA之前你必须做一个评估,在你充分了解SOA的价值和项目成本之后搭建商业模型。大多数案例中成本会发生调整,这意味着企业可以从中获利,但是有一些案例并非如此。
当部署SOA时,你只能选择一个供给商
当面对很多供给商时会出现兼容性问题。但是,事实是没有一个供给商可以为创建和部署大多数SOA提供的端到端解决方案,你必须选择一类里最好的。你可以通过在项目早期进行POC测试解决兼容性问题。
当创建SOA时,你选择好技术和供给商就可以了
千万不要。只有你理解你的需求所在,什么问题是你最期望首先解决的,做一个商业模型,然后设计你的系统。
当然,这意味着你必须要做一系列工作,包括弄懂代码、安全性、完善性、已经存在的服务、你需要创建的服务,等等方面。然后,你需要配置这些服务到相应的方案中,以及保证让这些方案随着商业的改变而变化。最后,你再来讨论技术,别忘了做POC测试以验证系统的有效性。
当你拥有SOA后,你不再需要应用整合技术
不。虽然SOA使系统整合更轻易,但是你会发现你仍然需要核心的整合技术,例如转换、挖掘、流程整合、适配器,等等。
实际上,这些整合手段可以成为你的SOA的一部分,但你的SOA不会自动把他们包含进来,他们必须成为架构和规划中的组成部分。