设想一下,如果你询问一位首席执行官是否知道他的全部企业应用程序在什么地方,安全状况如何以及是否正确地进行管理,结果会怎么样呢?他可能以为你是疯子。他很可能这样做。然而,令人惊奇的是许多不能准确回答这三个问题的销售人员却正在设法销售SOA服务。
事实是,由于其承诺的全部好处,SOA作为一种环境很自然地比它的前身更难控制:
·通过把所有的逻辑和数据集中在一起,基于托管的计算很容易管理、保证安全和监视。
·通过把逻辑、数据和用户接口分开,客户机-服务器计算会产生一定水平的混乱和永远无法真正控制的失控成本。这里关键的因素是失去中心的控制。在过去的15年里,这个因素决定了计算。
·现在我们拥有了SOA。SOA为我们提供了敏捷性、灵活性、传统的延伸、投资回报和更多的东西。SOA的不利方面是SOA能够不确定地分布,从而使其成为最困难的东西,除非有现成的合适的基础设施。
随着企业日益增多地利用广泛分布的架构,并且一方面访问第三方的服务,另一方面把自己的应用程序作为Web服务提供,他们需要能够明确地回答这些问题:我知道我拥有什么吗?它安全吗?严酷的现实是许多企业在不能回答这些问题的时候就走上了SOA的道路。因此,他们使用老式的计算范例永远也不会实现SOA的目标。
没有保证安全、管理和监视服务的能力,企业就不应该考虑解决SOA的问题:
·安全:IT部门需要解决“中间人攻击”和“最后一英里”安全漏洞。除非恰当地治理,SOA才能允许让任何人在任何地方和任何时间启动、部署和编排一项Web服务。这项服务可能同数千个其它的服务在一起,显著增加安全风险。此外,这种情况也能够让虚假的服务伪装成合法的节点冒充真正的服务,破坏保证实现SOA功能的信任等式。通过采用运行时治理,IT能够通过服务发现和自动强制执行政策等方式减少风险。
·监视:除非你能够实时地看到你的服务和服务周围正在发生的事情,否则,你就不能放弃SOA治理的责任。理想的方法是商务流程的可见性,让你从商务流程的角度管理你的SOA。
·企业级管理:同所有其它形式的系统管理一样,在一个不同种类的SOA环境中实时地从一个控制台查看、管理和控制所有服务的能力是最基本的要求。SOA治理需要从规划到设计、从开发到应用、从运行到优化等全部过程的管理和工具能力。最后,这种能力允许用户根据业务或者IT标准定义、排列和优先安排事情以便管理服务级协议。
SOA承诺给企业带来巨大的好处。同以前的大多数IT范例一样,它一直被过分地宣传,甚至吹嘘到了预期超过现实的程度。
为了让事实纠正过分的宣传并且防止人们失望,早期的SOA应用者需要保证建立一个牢固的基础。这个基础能够让人们像10年前一样进行控制。其它任何表示能够实现SOA的东西都可以看作是又一个一时流行的IT狂热。