Download PDF version of this article PDF

Web 服务和 IT 管理

Web 服务不再仅仅用于应用程序集成。

PANKAJ KUMAR,惠普公司

平台和编程语言的独立性,加上行业的发展势头,使得 Web 服务成为大多数企业集成项目的首选技术。它们与 SOA(面向服务的架构)的密切关系也帮助它们获得了广泛的认可。考虑一下 SOA 的这个定义:“一种架构风格,其目标是在交互式软件代理之间实现松散耦合。服务是由服务提供商完成的工作单元,旨在为服务消费者实现期望的最终结果。提供商和消费者都是软件代理代表其所有者扮演的角色。”1 虽然 SOA 并不强制要求使用 Web 服务,但其对松散耦合的强调要求使用具有 Web 服务特征的东西。

当在不影响整个系统的情况下,添加、删除、替换或升级各种组件时,SOA 和 Web 服务的真正威力就显现出来了。当架构的每个部分都依赖于对其他每个部分的内部工作原理的深入了解,并以特定于语言的库的形式共享代码以处理消息时,这是不可能实现的。

IT 管理是一个非常适合基于 SOA 和 Web 服务的解决方案的问题,这些解决方案将允许来自不同供应商、在不同平台上运行的产品协同工作。尽管尝试将硬件和软件系统标准化为少量,但典型的 IT 基础设施仍然足够异构,使得管理成为一项极其复杂的任务。诸如 SNMP 之类的标准管理接口有助于健康监控和简单的控制任务,但在解决诸如配置和控制复杂的软件应用程序之类的复杂管理任务时却显得不足。SNMP 的缺点包括其访问管理数据的迭代方法(使用 GET 和 GET NEXT),导致过度的网络流量和性能瓶颈;缺乏对复杂的系统配置和控制任务的支持;无法在数据收集站点指定过滤;检测所需的低级编程等等。尽管已经出现许多基于标准和专有的解决方案来解决这些问题,但没有一个被广泛采用。

诸如来自单一供应商的单一产品或产品套件来满足所有管理需求(例如 Microsoft Office)的替代方案,在当今企业复杂的 IT 基础设施中是不可行的。

行业当前的工作

在基本层面,Web 服务技术——HTTP(S)、XML、XML-Schema、SOAP、WSDL,以及在较小程度上 UDDI——包括传输、消息传递、接口描述和发现的标准。这些标准没有定义编程语言 API,而是通过定义在线路上传输或存储在磁盘上的消息的语法和语义来实现信息交换。

一个典型的 IT 管理系统由一个或多个管理器(在这种情况下,管理器不是人,而是软件实体)与多个代理通信组成。代理要么与要管理的资源交互,要么嵌入在资源中,如图 1 所示。

在 IT 管理的 SOA 中,可以合理地认为每个受管资源都由一个可识别的 Web 服务代理,并将可管理性接口公开为 Web 服务接口。在此框架内,代理负责托管资源的 Web 服务表示。这种架构非常类似于访问资源(即网页),其中 Web 服务器提供对唯一可识别资源的透明访问。

尽管前面提到的基本标准足以满足各种 SOA 解决方案,但 IT 管理有一些这些标准无法满足的特殊需求

这些方面在 WSDM-TC(Web 服务分布式管理技术委员会)的讨论中变得清晰起来,WSDM-TC 是 OASIS 组织,其章程是创建使用 Web 服务进行管理和管理 Web 服务的规范。2 注意前一句中“使用”和“的”的用法;我们将在下文中重新审视这一点。同样清楚的是,虽然相关,但 Web 服务的管理与使用 Web 服务进行管理截然不同。事实上,WSDM-TC 最终提出了两个规范:WSDM-MUWS(使用 Web 服务进行管理)和 WSDM-MOWS(Web 服务的管理)。

本文主要关注 WSDM-MUWS。

在讨论此规范如何满足 IT 管理要求之前,有必要了解一下网格社区中并行但非常相似的发展,3 其主要动机是开发一套规范,以从半自治池或网格中配置和使用资源。尽管最初的网格开发早于流行的 Web 服务规范,但随后的 Web 服务工作已将 Web 服务和网格服务融合到 WSRF(Web 服务资源框架)中。4 这是通过定义处理状态和生命周期的精确方法来实现的。WSRF 是一组五个不同但相互关联的规范。此外,还有一组名为 WSN(Web 服务通知)5 的新规范,用于支持消息交换的发布-订阅模式。

请注意,WSRF 及其对公开资源属性和生命周期操作的支持,以及 WSN 及其对基于订阅的通知的支持,满足了先前确定的 IT 管理要求。

WSRF 和 WSN 的开发既受到使网格服务成为普通 Web 服务的愿望的推动,也受到创建可供其他规范(如 WSDM)使用的 Web 服务基础设施层的需求的推动。事实上,这些规范的开发深受 WSDM-TC 制定的 IT 管理要求的影响,进一步证明了公开状态、生命周期和支持发布-订阅的要求并非网格独有。

WSDM-MUWS 使用 WSRF 来公开资源状态和生命周期,并使用 WSN 进行异步通知。此外,它还定义了许多特定于 IT 管理的资源属性和主题,可用于公开可管理性接口,如图 2 所示。

与其他标准的关联

随着时间的推移,除了古老的网络管理标准 SNMP 之外,还开发了许多 IT 管理标准。其中包括 CIM(公共信息模型)6 和 JMX(Java 管理扩展)7 等等。CIM 定义了用于建模 IT 系统的抽象,并为许多 IT 领域创建了模型。JMX 定义了基于 Java 的系统的管理架构和 MBean,这是一个用于检测 Java 应用程序的 API。

WSDM-MUWS 如何与这些标准相关联?JMX 和 CIM 分别定义了完整的管理技术堆栈,而 WSDM-MUWS 仅关注在线路上发生的事情。期望能够将 WSDM-MUWS 与其他标准的片段一起使用,以创建完整的解决方案。例如,应该可以通过 WSDM-MUWS 公开 CIM 指定的模型。类似地,应该可以使用 JMX 作为 Java 程序的检测 API。事实上,DMTF8 和 Java Community Process9 都在努力使这种集成成为现实。

之前的讨论不应暗示任何 CIM 模型或 JMX 检测的系统都可以自动使用 WSDM-MUWS 公开,而不会丢失信息或功能。CIM 模型是面向对象的,并且这些模型对象并不总是很好地映射到服务,服务是 WSDM-MUWS 中的管理单元。

通过 WSDM-MUWS 公开 JMX MBean 会出现不同类型的问题。JMX 仅指定 API,而不是模型的元素。例如,您可以创建一个 MBean,其属性表示迄今为止处理的请求数,但您不能将其标记为指标,并包含有关上次重置时间的信息。因此,以自动化的方式构建符合 WSDM-MUWS 的可管理性接口要困难得多。

由于使用面向对象的软件原则来开发 Web 服务的方式,因此可以使用 CIM 和 JMX 来实现基于 WSDM-MUWS 的 IT 管理解决方案。然而,这种用法不是关于自动转换任何现有的 CIM 模型或 JMX 检测的应用程序。那将类似于将对象转换为 Web 服务,我们都知道,虽然这种转换是可行的,但并不能带来面向服务的许多好处。有意义的是

当然,许多人希望现有的检测能够即时自动转换为符合 WSDM-MUWS 的形式。复杂的技术问题使得这种自动转换非常困难,至少在各种规范的当前状态下是如此。未来的发展应该使使用不同技术的部分来创建解决方案变得更加简单。

经验教训

许多塑造 WSRF、WSN 和 WSDM 规范的核心思想来自早期的网格工作和 WSMF(Web 服务管理框架),WSMF 是惠普公司开发的一套用于管理和使用 Web 服务的规范。10 WSMF 已被用于创建 HP OpenView Smart Plug-ins,其中包含来自 Tibco 和 BEA 等供应商的许多软件应用程序。11,12

在惠普,我们还在进行一些 Apache 孵化项目,以创建 WSRF、WSN 和 WSDM 规范的开源实现。13,14,15

我们参与这些基于 Web 服务的 IT 管理项目已经形成了一套最佳实践。这些实践并非在所有情况下都需要遵守,但它们是值得关注的原则。

必须认真考虑面向服务的架构。在所有情况下,盲目地将现有 API 转换为 WSDL 指定的 Web 服务可能不是充分或理想的。例如,在为 BEA WebLogic Integration 创建 Smart Plug-in 时,我们最初的假设是每个 WebLogic Integration MBean 都可以映射到 WSDM WS-Resource。然而,这些 MBean 被设计为用作构建管理控制台的面向对象的 API,并且并不总是对应于我们想要管理的资源。此外,MBean 方法使用了对远程对象的引用,使得将 MBean 机械地映射到 WS-Resource 非常困难。

这并不是说用 Web 服务替换平台或语言特定的远程技术(例如 RMI、DCOM 或 CORBA)没有任何优势。事实上,这是第一步,可以确保交互组件不会紧密耦合,并且可以用任何语言编写并在任何操作系统上运行。为了实现真正的面向服务,重要的是要确保

为演进而设计。 许多 Web 服务规范仍在不断发展,您必须在设计和实现过程中考虑到这一点。WSDM 1.0 及其引用的许多规范很可能会被修订。我们中的实用主义者可能希望等到尘埃落定。然而,对于创新者和早期采用者来说,等待规范获得广泛采用通常不是一种选择。最好的方法是考虑到规范在实现后会发生变化,并为最终的变化做好准备。

一个重要的方面是允许客户端程序使用多种协议,甚至同一协议的不同版本。我们为此付出了惨痛的教训。我们基于 WSMF 的实现需要大量的重新工程才能支持 WSDM 1.0。

既然我们已经吸取了教训,基于 WSDM 1.0 的实现将能够以非常小的架构更改来支持后续版本。

编写包装器(而不是进行完全的重新实现)。 这与前面关于设计和实现的观点一致,即可以快速适应规范的更改。编写包装器可以灵活地在事物发生变化时替换它们,或者使用多个包装器支持多个接口。这些包装器可以是进程内的或进程外的,具体取决于组件的特性。

我们采用了这种方法来创建与 WebLogic Integration 的受管资源相对应的 WS-Resource,作为现有 MBean 集合的包装器。与通过修改 WebLogic Integration 源代码进行本机检测相比,这大大缩短了开发时间,尽管以一定的运行时性能开销为代价。

优雅地处理故障情况。 Web 服务客户端不能假定与其交互的所有服务始终可用,或者可以及时响应其请求。因此,其设计必须考虑到服务可能会在任意时间来来去去,或者需要很长时间才能响应特定请求。即使在这种情况下,客户端也应该能够工作,或者通过与其他服务交互,或者以降低的功能运行。客户端在等待来自特定服务的响应时无限期地等待或挂起是不可接受的。

当 Web 浏览器在获取网页时超时或遇到死链接时,会有人类用户来识别情况并采取纠正措施。Web 服务客户端则不然。恢复逻辑必须构建到客户端本身中。

创建模型。 参与 IT 管理解决方案的组件通常彼此交换各种信息。重要的是,此信息要符合所有需要处理它的人都很好理解的信息模型。在可能的情况下,最好使用现有模型,例如 DMTF 或其他此类组织创建的模型。

另请注意,WSDM-MUWS 强调将受管资源表示为可单独寻址和识别的 Web 服务,在表示所有此类受管资源、其属性和关系的模型的方面做得不错,但对于交换受管资源中包含的模型几乎没有提供什么。

为了理解这一点,让我们回到 WebLogic Integration 示例。在此解决方案中,我们将业务流程类型视为受管资源,每种类型对应于一个 WS-Resource。流程节点及其定义流程类型内控制流的关系通过自定义 XML 文档表示。

意识到您是技术的早期采用者。Web 服务在解决 IT 管理问题方面具有很大的潜力,但该技术的部分领域尚未成熟。因此,重要的是适当地设定期望,并将该技术应用于优势大于风险的领域。

我们推荐传统解决方案不足且 Web 服务提供显着优势的领域:具有专有管理接口的分布式应用程序;多语言、多供应商 IT 管理集成项目等等。

毫不奇怪,大多数经验教训似乎与适用于任何前沿软件开发/部署项目的经验教训相同。毕竟,为什么 IT 管理软件应该与任何其他类型的企业软件不同呢?

参考文献

  1. He, H. 2003. 什么是面向服务的架构? http://webservices.xml.com/。
  2. WSDM-TC; http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsdm。
  3. 全球网格论坛; http://www.ggf.org/。
  4. WSRF-TC; http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsrf。
  5. WSN-TC; http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsn。
  6. DMTF; http://www.dmtf.org/。
  7. Java 管理; http://java.sun.com/products/JavaManagement/。
  8. WS-CIM; http://www.dmtf.org/newsroom/newsletter/2004/08/page6。
  9. 解决 JMX 的 WSDM 适配器的 JSR; http://www.jcp.org/en/jsr/detail?id=262。
  10. WSMF 规范; http://devresource.hp.com/drc/specifications/wsmf/index.jsp。
  11. HP OpenView Smart Plug-in for Tibco; http://www.managementsoftware.hp.com/products/spi/spi_tibco/。
  12. HP OpenView Smart Plug-in for BEA WebLogic Integration; http://www.managementsoftware.hp.com/products/spi/spi_beawi/index.html。
  13. WSRF 实现的 Apache 项目; http://incubator.apache.org/apollo/。
  14. WSN 实现的 Apache 项目; http://incubator.apache.org/hermes/。
  15. WSDM-MUWS 实现的 Apache 项目; http://incubator.apache.org/muse/。

PANKAJ KUMAR 是惠普公司管理软件业务部的软件架构师和技术主管,与合作伙伴合作,使用 Web 服务创建基于 HP OpenView 的管理解决方案。他拥有超过 16 年的行业经验,并且是《J2EE Security for Servlets, EJBs, and Web Services》(Prentice Hall,2003 年)一书的作者。他拥有印度理工学院坎普尔分校的计算机科学学士学位。

acmqueue

最初发表于 Queue vol. 3, no. 6
数字图书馆 中评论本文





更多相关文章

Marc Brooker, Ankush Desai - AWS 系统正确性实践
构建可靠和安全的软件需要一系列方法来推理系统的正确性。除了行业标准测试方法(例如单元测试和集成测试)之外,AWS 还采用了模型检查、模糊测试、基于属性的测试、故障注入测试、确定性模拟、基于事件的模拟以及执行跟踪的运行时验证。形式化方法一直是开发过程的重要组成部分——也许最重要的是,形式化规范作为测试预言,为 AWS 的许多测试实践提供正确的答案。正确性测试和形式化方法仍然是 AWS 的主要投资领域,在这些领域已经看到的投资回报加速了这一进程。


Achilles Benetopoulos - 数据中心计算机的中间表示
我们已经到了分布式计算无处不在的地步。内存应用程序数据大小正在超过单台机器的容量,因此需要将其划分为集群;在线服务具有高可用性要求,只有将系统部署为多个冗余组件的集合才能满足这些要求;高持久性要求只能通过数据复制来满足,有时甚至跨越广阔的地理距离。


David R. Morrison - 模拟:分布式系统中未被充分利用的工具
模拟在 AI 系统的出现中发挥着巨大的作用:我们需要一种高效、快速且经济高效的方式来训练 AI 代理在我们的基础设施中运行,而模拟绝对提供了这种能力。


Matt Fata, Philippe-Joseph Arida, Patrick Hahn, Betsy Beyer - 公司到云端:谷歌的虚拟桌面
超过四分之一的 Google 员工使用内部数据中心托管的虚拟桌面。这种本地产品位于公司网络中,允许用户从世界任何地方远程开发代码、访问内部资源和使用 GUI 工具。在其最显著的特性中,虚拟桌面实例可以根据手头的任务进行调整大小,具有持久的用户存储,并且可以在公司数据中心之间移动以跟随出差的 Google 员工。直到最近,我们的虚拟桌面都托管在使用名为 Ganeti 的自研开源虚拟集群管理系统的谷歌公司网络中的商用硬件上。今天,这项重要的且对谷歌至关重要的工作负载在 GCP(Google 计算平台)上运行。





© 保留所有权利。

© . All rights reserved.