您真的了解您的服务究竟在何处吗?您知道自己的企业里面有多少服务正在进行生产吗?而它们当中有多少达到了您所期望的质量水平呢?又有多少服务未得到合理保护或直接暴露在客户或合作伙伴面前了呢?或许甚至还存在着您根本不知道的服务?当您的服务出错时有什么保护措施吗?现今您又是怎样监控着自己的服务呢?
如今,在设计SOA的架构时,您要提出类似于上述的种种问题呢。令人惊讶的是,尽管有许多组织已经使自己的任务关键型业务应用依赖于这些服务,但依然无法回答这些问题。
因此,让我们来回顾一点基础知识吧。SOA究竟是什么?SOA即Service Oriented Architecture(面向服务的架构),它使企业通过改进的服务重用性迅速开拓新的业务渠道。因此SOA管理将从可见性和控制两方面着眼于SOA。如果没有管理,使SOA达到预期
是什么使得管理SOA的这些服务变得如此困难?首先,SOA中服务的形式与规模不尽相同,符合的规范也相差甚远,既有细粒度的也有粗粒度的;既有传统的基于事件的非XML队列,也有最新的基于XML的WS兼容服务。每个服务在其运行平台上都是独特的,有的基于Java EE,有的基于.NET,还有的基于遗留或专有平台。
其次,当SOA跨多个部门和项目实现时,其复杂性将会增加。即使并非有意为之,SOA被迫进入分布式环境,而原因仅仅是企业固有的复杂本质。例如,服务可能是某一个部门设计的,并在其他部门重用;合作伙伴发布的服务也有可能要在公司内部使用,反之亦然。如果在分布式环境中无法对这些服务进行集中管理,发生更改或故障的服务就可能对企业的账本底线产生显著影响。
再次,SOA系统发展迅速。新版本发布时,SOA的规模和复杂度都会有所增加,还会向SOA领域中融入一些新的应用程序,增加新客户和合作伙伴的参与。任何服务的更改都会在整个网络中产生
由于SOA的异构性、分布性以及高度流动性,使得采用传统手段来处理SOA很困难。事实上,传统的IT管理框架可能并不完整,有必要采取新方法关注SOA,来更好的实现组织的可见性与
传统的IT服务管理框架包括管理应用程序的功能,并且确实能够获得对应用程序的一般行为的更好可见性,应用程序是正常运行还是故障了呢?遗憾的是,SOA并非如此有逻辑。很可能在一个任务关键型服务从客户的角度来看已完全崩溃之后,应用程序仍存在并运行着。
此外,传统的
最后,SOA管理需要和IT管理策略共存。JMX、SNMP、WS-Man以及WSDM中的标准,都将为两者的共存提供帮助。例如,SOA管理触发的SNMP trip可以利用一个ESM(例如HP的OpenView和BMC的Patrol)整合并管理。
实现SOA的最初目的就是降低IT的复杂性。遗憾的是,仅为少数IT工作人员提供可见性并未实现最初这个SOA目标的优势。SOA管理可以帮助满足将正确的
SOA管理的好处是什么?
实现SOA管理的好处在于最终为组织创建更广泛的可见性和控制。这将给企业带来无尽的益处,并且最终得到更出色的企业敏捷性,而这恰恰就是实现SOA的初衷。
事实上,实现SOA管理还有一个实际的原因,那就是支持SOA监管。例如,将运行库计分卡和服务相关联,就可以更好地作出在监管生命周期中需要优化哪些服务的决策了。
这些因素将更有效地降低成本、减少风险,并带来企业创收机遇。不仅证明了SOA管理解决方案的ROI,也从宏观上证实了投资SOA的合理性。
SOA中的所有环境都是独一无二的,但SOA管理却有着一致的需求,即每个组织都可以为满足其特有需求来利用SOA管理。现今的SOA管理有一些关键元素,它们对跨多个系统的可见性聚集方法和控制实现方法至关重要。其中包括:
下面具体介绍上述内容。
服务网络监控
由于SOA的本质就是将应用程序筒仓整理为分散在网络中的多个服务,分布式系统故障的风险将呈指数级增加。24x7的SOA系统生产需要全面的、系统级追踪和操作可见性,使故障和宕机时间最小化。
可视化要求有足够多的信息——端到端网络的逻辑和物理服务都包括在内。例如,您也许想了解每个服务节点的吞吐量和可用性,以便迅速确定与某个特定服务相关联的操作问题。这就需要具备详查网络的能力,以图形化的方式来评估服务相关性和中断造成的影响,并且下钻到端点本身来了解与该服务相关的所有关系。图1给出了一个例子。
图1. BEA AquaLogic SOA Management的相关性浏览
组织越是分散,在服务网络上进行统一监控的需求就越迫切。此类企业的典型例子就是一家刚刚采购了多种打包的应用软件的公司(如订单管理或库存系统)。企业希望进行整合,但尚未理解在多个系统上运行的服务的实际运行库影响。管理这些服务间的复杂关系的惟一方法就是实现SOA管理系统,它使企业能够了解可从何处开始整合,并做出进一步的优化。