理解软件SOA 管理:您的SOA中都有什么?[1] SOA管理
关键字:SOA 关注SOA
您真的了解您的服务究竟在何处吗?您知道自己的企业里面有多少服务正在进行生产吗?而它们当中有多少达到了您所期望的质量水平呢?又有多少服务未得到合理保护或直接暴露在客户或合作伙伴面前了呢?或许甚至还存在着您根本不知道的服务?当您的服务出错时有什么保护措施吗?现今您又是怎样监控着自己的服务呢?
如今,在设计SOA的架构时,您要提出类似于上述的种种问题呢。令人惊讶的是,尽管有许多组织已经使自己的任务关键型业务应用依赖于这些服务,但依然无法回答这些问题。
因此,让我们来回顾一点基础知识吧。SOA究竟是什么?SOA即Service Oriented Architecture(面向服务的架构),它使企业通过改进的服务重用性迅速开拓新的业务渠道。因此SOA管理将从可见性和控制两方面着眼于SOA。如果没有管理,使SOA达到预期效果这一目标就无法得到保障。最可怕的是,SOA甚至会因为依托于这些用于任务关键型应用的服务而给整个组织造成危害。
管理SOA为何如此困难?
是什么使得管理SOA的这些服务变得如此困难?首先,SOA中服务的形式与规模不尽相同,符合的规范也相差甚远,既有细粒度的也有粗粒度的;既有传统的基于事件的非XML队列,也有最新的基于XML的WS兼容服务。每个服务在其运行平台上都是独特的,有的基于Java EE,有的基于.NET,还有的基于遗留或专有平台。
其次,当SOA跨多个部门和项目实现时,其复杂性将会增加。即使并非有意为之,SOA被迫进入分布式环境,而原因仅仅是企业固有的复杂本质。例如,服务可能是某一个部门设计的,并在其他部门重用;合作伙伴发布的服务也有可能要在公司内部使用,反之亦然。如果在分布式环境中无法对这些服务进行集中管理,发生更改或故障的服务就可能对企业的账本底线产生显著影响。
再次,SOA系统发展迅速。新版本发布时,SOA的规模和复杂度都会有所增加,还会向SOA领域中融入一些新的应用程序,增加新客户和合作伙伴的参与。任何服务的更改都会在整个网络中产生连锁反应,进而影响整个系统。
由于SOA的异构性、分布性以及高度流动性,使得采用传统手段来处理SOA很困难。事实上,传统的IT管理框架可能并不完整,有必要采取新方法关注SOA,来更好的实现组织的可见性与控制。
SOA管理和传统IT管理有什么不同?
传统的IT服务管理框架包括管理应用程序的功能,并且确实能够获得对应用程序的一般行为的更好可见性,应用程序是正常运行还是故障了呢?遗憾的是,SOA并非如此有逻辑。很可能在一个任务关键型服务从客户的角度来看已完全崩溃之后,应用程序仍存在并运行着。
此外,传统的IT服务管理作为一整套SOA应用程序的基础,是很重要的。而SOA管理可以返回到业务线层面上帮助管理和优化这种行为。SOA并不仅仅与应用程序有关:服务还可能存在于wire消息协议或事件之中。这些服务通过中介处理,到达了我们看不到的目的地,比如合作伙伴或者客户。