运行时的服务监视和管理
图 1 是ISMM 解决方案的设计架构 ISMM。我们将它分为三个层次。第一层是客户层。在这个层中,服务可以被提供给客户和业务合作伙伴。考虑到安全性,我们需要对服务请求进行身份验证和授权,因为我们添加了一个 DMZ (Demilitarized Zone) 作为第二层,用以实现授权和身份验证。
在企业内部是 Enterprise 层,这是最重要的一层。Directory Server 存储用户概要文件并提供一个可信的身份数据基础架构来实现身份验证。Process Servers 是一个高性能的业务流程自动化引擎,用于帮助生成符合企业目标的流程。Enterprise Service Bus(缩写为 ESB)帮助实现成本更低的快速灵活的应用程序集成,并与下一代互联性(interconnectivity)建立联系。Process Servers 和已部署的 ESB 还有助于根据 QoS 动态判断要使用的服务。
Service Registry & Repository 为 SOA 服务、策略和相关元数据提供了服务可视性和治理(Service Visibility and Governance),以及对 SOA 治理的支持。安全性策略(Security Policy)帮助增强应用程序访问、为遵从性提供便利,并支持在整个 IT 基础架构中进行运营管理。所有这些组件都基于 IT Service Management (ITSM),后者对您的 SOA 生命周期进行监视,从而确保高可用性和性能。ITSM 提供了集成的管理工具,可以加速并简化 SOA 问题的识别和解决。
图 2. ISMM 解决方案的产品映射
图 2 是 ISMM 解决方案的产品映射。您可以将图 2 中的每一个产品映射到图 1 中的对应组件。WebSphere? DataPower SOA Appliance 在这里用作安全网关,用于对服务请求进行身份验证和授权。Tivoli? Directory Server 此处用作 Directory Server,用于存储用户概要文件。WebSphere? ESB 被作为 ESB 使用,用于实现基于 QoS 的服务选择和路由。WebSphere? Service Registry and Repository 产品此处用作 Service Registry and Repository 组件,用于实现服务注册和管理。Tivoli? Security Policy Manager 在这里被用作 Security Policy 组件,用于管理安全性策略。Tivoli? Composite Application Manager for SOA 平台作为 ITSM,用于监视和管理 QoS 数据。
我们的 ISMM 解决方案可以通过这些 IBM 产品实现,使您能够在整个 SOA 生命周期内监视您的服务并提供管理和治理方法。
服务必须像其他任何服务那样进行管理。只有这样,才能监视服务并解决问题。ITCAM for SOA 平台只能够监视已调用的服务并收集这些服务的使用情况、性能和可用性元数据。WSRR 是服务的注册和存储库中心,服务必须被注册到 WSRR 中。在这种场景下,使用 Discovery Library Adapters(简称为 DLA)来传输这些元数据,DLA 是一个特殊的程序,它从源应用程序提取数据并使用 Identity Markup Language XML 格式生成一个名为 discovery library adapter book 的 XML 文件。当 DLA 生成一个 DLA book 文件后,用户可以将这种文件加载到 TCORE 并在 Tivoli? Enterprise Portal 上显示它。这个文件包含服务、服务端口、操作、业务流程以及部署这些内容的应用服务器和计算机系统之间的关系。ISMM 中使用了两种源,一种是 ITCAM for SOA,其中包括运行的服务信息,另一种是 WSRR,其中包括已注册的服务的信息。您可以查看 ITCAM for SOA 信息中心获得更多细节。
当成功加载 DLA Books 后,将在 ITCAM for SOA 上自动构建服务到服务之间的关系和拓扑结构。服务使用情况、注册状态、流和关系都将显示在 Tivoli? Enterprise Portal 上。
可以从图 4 看到,Rogue 服务就是那些被标以红色矩形的服务。这些服务表示已被 ITSM 观察到但尚未注册到 Service Registry and Repository 中的服务。这类服务被称为 Rogue 服务。你还可以找到已注册到 WSRR 但一直没有被调用的服务。如图 4 所示,这类服务使用黄色矩形标识,并被称为 shelf-ware 服务。shelf-ware 服务的数量越少,SOA 解决方案的实现越好。还有其他一些服务,它们只被观察到但未进行注册,可以将之称为 Rigid 服务。Rigid 服务不受控制并将破坏服务管理。因此必须消除这类型的服务。
图 4. TEP 中的服务概览
通过上面的流程,可以识别出重复的 Web 服务,并且可以报告未使用的服务,从而限制 shelf-ware 服务的数量。IT 组织将能够了解已部署服务的使用情况并了解哪些服务正在运行。只有这样,才能够实现降低 SOA 维护成本的承诺。
图 5 展示了对备选服务统计数据的检索以及某个服务端点的动态选择和延迟绑定。可以从图 5 中看到,ITCAM for SOA 平台、WebSphere? Enterprise Service Bus、WebSphere? Service Registry and Repository 在这个场景中都得到了使用。根据客户的请求动态选择了提供商服务。完整的过程为:
如果服务组的默认状态是健康的,那么意味着该组中的所有服务都没有出现问题。这将使用一个绿色的选中标记标识。服务组对象将显示一些健康指标,比如性能(响应时间,以秒为单位)数据和数量(消息数),后者每 2.5 分钟计算一次(默认)并显示在服务组视图中。如果这些指标超出了由运营者定义的阈值,那么将会触发某些场景并激活警告。
服务组的不可用性正是基于这类场景,这与服务组的前端服务有关。这些定制的场景通常使用由 ITCAM for SOA 提供的服务不可用性属性和指标。
图 7. 不健康服务组的警告
服务组目前已经成功进行了定义。所有服务性能和容量数据都可以显示在此视图中。如果所监视的服务组出现了异常,警告将被触发并显示在视图中。如图 7 所示,一个名为 VerifyCreditServiceGroup 的服务组被标记以一个巨大的红色叉号。这表示该组中的某些服务处于较差的性能状态并且会导致关键场景被触发。您可以下钻(双击带有红色叉号的节点)到 Interaction Detail 视图来查看该组中的每一个服务的详细状态,以找出发生的问题。
ISMM 可以在服务水平协议被违背之前为其提供更好的管理和主动监视,并向管理员发出有关任何潜在问题的警告。ISMM 还支持使用运行时指标,以供稍后在高级场景中进行服务选择时使用。
在 ISMM 中,将通过创建和管理策略来控制身份验证和对 Web 服务的消息级别的保护。还提供了通过策略实现的服务安全访问控制。如下面所述,一个基于策略的服务安全管理的典型流程可以分为五大步骤。
ISMM 中审查和检验了三种类型的安全策略 —— 消息级别的保护、基于角色的授权以及基于规则的授权。
首先,对于消息级别的保护来说,SOA 架构师希望对企业内的特定消息流增强消息级别的保护。安全架构师将登录到 TSPM UI 并编写一个策略,该策略要求通过 SAML 断言对消息进行加密和身份验证。安全架构师随后将这个策略附加到所提供的服务,在 TSPM 中配置安全性策略并将其从 TSPM 中分配到 WSRR。DataPower 将被配置为同步 WSRR 订阅,以从 WSRR 中检索包含策略的 WSDL。安全架构师在 DataPower 中创建了一个简单的 Web 服务代理。客户请求将被路由到该 Web 服务代理,这样安全策略将强制服务消息在服务事务调用期间添加消息保护。服务的消费者必须使用一个已被加密的服务请求消息流以及一个已被添加到流中的 SAML 令牌访问服务提供商。在这种场景中,将利用 IBM WebSphere? DataPower 设备作为策略决策点(Policy Decision Point,PDP)和策略实施点(Policy Enforcement Point,PEP)。
其次,对于基于角色的授权,安全架构师将从注册表发现并导入服务,将角色映射到现有的身份系统 —— IBM Tivoli? Directory Server,然后编写、配置安全策略,并将安全策略从 TSPM 分配到 DataPower。如果客户不属于角色的成员之一,那么客户对服务的请求将被拒绝。安全架构师可以修改角色的成员关系以将角色授予客户。只有这种情况下,客户才可以访问这些服务。例如,UpdateEmployeeSalary 服务被用来更新员工的基本工资,并且只能够被具有 Manager 角色的人访问。Jack 是这家公司的员工。他无权访问这个 UpdateEmployeeSalary 服务,因为他不是 “Manager”。在这个场景中,IBM WebSphere? DataPower 设备被作为策略决策点(PDP)和策略实施点(PEP)。
第三,对于基于规则的授权,规则将要求具有特定的权限。安全架构师可以编写一个规则,表示具有某些条件和权限才能访问提供的服务。
结束语
由 ISMM 实现的服务监视和管理展示了服务组件以及服务和业务流程的生命周期内的治理决策。ISMM 帮助我们理解 SOA 治理、安全性和管理的关键方面。ISMM 还帮助我们描述了 IBM SOA Foundation 产品,这些产品为 Runtime for SOA 的服务治理提供了集成解决方案。您可以理解如何使用 ISMM 在运行时实施某些治理。ISMM 使您能够在整个 SOA 生命周期内监视服务并提供管理和治理方法。
<!-- CMA ID: 517809 --><!-- Site ID: 10 --><!-- XSLT stylesheet used to transform this file: dw-article-6.0-beta.xsl -->
参考资料
学习
“Use SLAs in a Web services context, Part 1: Guarantee your Web service with a SLA”(developerWorks,2004 年 10 月)是应当被归入 SLA 的一份指南,它给出了一些在将 Web 服务作为已公开的服务(包含到 SLA 中)投入到生产环境之前对其进行 SOAP 互操作性测试的例子。获得产品和技术
下载 IBM 产品评估版 或 在线试用 IBM SOA Sandbox,开始使用来自 DB2?、Lotus?、Rational?、Tivoli? 和 WebSphere? 的应用程序开发工具和中间件产品。原文:http://www.ibm.com/developerworks/cn/webservices/ws-servicemonitoring/?ca=drs-tp4608