内容


使用 Web Services Distributed Management 开发 Blackberry 设备实现

Comments

引言

Web Services Distributed Management (WSDM)规范定义了如何通过 Web 服务协议对任意资源管理进行访问,以及 Web 服务如何使用该协议进行自身管理。WSDM Management Using Web Services (MUWS)1.0 定义了作为 Web 服务如何描述和访问资源的易管理的接口。本文描述了 Blackberry™ 设备上的 WSDM 的概念验证(proof-of-concept)的实现。将可管理性定义为对资源(在此处为普及性设备)的远程管理能力。可管理的接口支持控制函数(停机、启动、重启动、关机等)和监控函数(性能、状态等)。

为何在普及性设备上?

在移动设备上进行了 WSDM 的简单实现,这说明您可以在资源受限的设备上实现 WSDM 及其必备规范。WSDM、Web Services Addressing (WSA)、Web Services Resource Framework(WSRF)、Web Services Notification (WSN)和 Web Services Resource Lifetime (WSRL)都被设计成复合的,以满足在简单或受限的实现中的最小实现需求。并提供可复合的功能以支持复杂的大规模系统。

实现了什么?

在设备上实现以下方法:

来自 Web 服务资源框架:

  • Element[] GetResourceProperty(QName qname)
  • Element[] SetResourceProperty (Update [])
  • GetMultipleResourceProperties(QName qnames[])

来自 WS-BaseNotification:

  • Subscribe
  • Destroy

实现下列属性用于 GetResourceProperty 和 GetMultipleResourceProperties:

清单 1.可用的属性
Serial Number              Device serial number, prefixed by the manufacture
                                       ("RIM2100000A")
Date         	           Device date
Time                       Device time
CodeModuleSize             Total code size, in bytes, of all installed modules
BatteryLevel         	   A percentage of battery life remaining
BatteryStatus          	   "Charging", "Normal", "Too Hot", etc
AllocatedStorage           Allocated storage, in bytes
FreeStorage         	   Free storage, in bytes
Identity                   Device identity ("RIM" + device serial number)
ManageabilityCapability    Returns capability URIs

在清单中,只有 TimeDate 可修改,其它皆为只读。若企图更改其他任何属性值将产生 InvalidResourcePropertyQNameFault。

可选的 WSRF QueryResourceProperties 方法并未实现;XPath 解释器的集成超出了该实现的范围且无需在受限资源设备上进行。

该实现来自在 Emerging Technologies Toolkit 2.2 (ETTK)中实现的实例,将 ETTK 重新改写以适合于 Blackberry 设备上实现的 J2ME 平台。如果可用的话,就用 kSOAP 或提供类的 J2ME 来替代各种 J2EE 类的引用。结果代码由 9 个包中的 52 个源文件组成,编译后达到 118K (在 5 个 Blackberry 格式的 .COD 文件中)。其中,63K 为 kSOAP2 soap 引擎,18K 在 UI 及配置中,还有 36K 为 WSDM/WSRF/WS-N 代码。

场景组件

直接通过 IP 地址或主机名无法访问 Blackberry 设备,需要实现 WirelessDeviceGateway(WDG)作为中介。WDG 隐藏了与各类代表调用者的手持设备的通信逻辑。WDG 的 URL 是 Web 服务调用设备的端点引用(Endpoint Reference)。URL 包含设备标识符,该标识符由附加在设备制造厂商名称(RIM)中的设备序列号组成。

http:\\myServer\WirelessDeviceGateway\RIM2100000A

WDG 向设备发送请求并返回结果。如果设备脱机,则会出现超时。

在 Blackberry 设备上,微型 SOAP 服务器(使用 kSOAP2)接收 SOAP 封装、将内容编组、调用被请求的函数并生成返回的 soap 封装。该后台服务器组件透明地运行在设备上,且在设备启动时自动运行。

第二个组件是 WSDM 控制器,提供服务器的简单反馈和服务器自身的配置。这两个流程使用 Blackberry 特有的事件处理机制来进行通信。

图 1. WSDM 控制器应用程序和菜单
WSDM 控制器应用程序和菜单
WSDM 控制器应用程序和菜单

TinyWSDM 控制器主菜单

  • 停止服务器:停止 soap 服务器。
  • 启动服务器:启动 soap 服务器。
  • WDGSetup:调用 WirelessDeviceGateway 对话框(以指定 WirelessDeviceGateway 所在的地址)。
  • 订阅:显示目前所有订阅。
  • 清除订阅:清除所有订阅。
  • 通知:强制生成样本通知消息(用于测试)。
  • 关闭:终止应用程序。

当在设备上调用 Web 服务时,会出现如图 2 所示的反馈:

图 2.WSDM 控制器应用程序
WSDM 控制器应用程序
WSDM 控制器应用程序

运行时的场景

将 Web 接口设计成以测试设备上持有的服务。该接口能轻松实现更改,接下来的三张图向您展示了通过使用 SetResourceProperty 来更改时间的整个流程:

图 3. GetResourceProperty
GetResourceProperty
GetResourceProperty
图 4. GetMultipleResourceProperties
GetMultipleResourceProperties
GetMultipleResourceProperties
图 5. SetResourceProperty
SetResourceProperty
SetResourceProperty

图 6 展示了通过使用 SetResourceProperty 更改时间在设备上显示的结果。

图 6. 设备上的 SetResourceProperty
SetResourcePropertyonDevice
SetResourcePropertyonDevice
图 7. GetResourcePropertyDocument
GetResourcePropertyDocument
GetResourcePropertyDocument

实例管理场景

BobCo 存在 Blackberry 设备的问题当出于非业务的原因使用 Blackberry 设备时。其他软件导致业务软件跟踪远程库存的失败并且需要将其重新安装。此处出现的问题是由于相关人员不熟悉相关操作(安装/卸载/配置/调试)引起的,且必须等到他们进入办公室为止,然后等待重新安装软件。因此,新策略禁止在 Blackberry 设备上使用任何不兼容的软件。当然,现在它还没有执行,所以使用 WSDM 安装自动的软件库存控制系统。该系统查找新的软件安装,并卸载任何不兼容的软件。

为主题 CodeModuleSize_Change 生成的订阅,如图 8 所示。

图 8. 订阅
订阅
订阅

单击 Notifications 在新的浏览器窗口中打开 NotificationConsumer 页面:

图 9. 通知监视器
通知监视器
通知监视器

当设备用户安装或删除应用程序时,CodeModuleSize 属性将被更改。生成通知,并发送至该主题的订阅中指定的 NotificationConsumer 中。

图 10.订阅通知
订阅通知
订阅通知

特别地,设备的 CodeModuleSize 属性的更改是因应用程序安装引起的。这导致生成了 ManagementEvent,它包含 propertyValueChangeNotification 事件。NotificationConsumer 在接收该事件时,检索设备上已安装的应用程序的清单。该清单与对于合法及非法应用程序的清单的策略进行对比。如果发现非法程序(此处为 HelloWorld),那么 NotificationConsumer 将调用设备上的 UninstallApplication Web 服务并弹出以下窗口:

图 11.通知
通知
通知

以下是样例 MUWS ManagementEvent,指明代码模块的大小在设备 RIM210000A 上已被更改:

MUWS Notification ManagementEvent

 <ManagementEvent xmlns="">
    <eventId>
        http://pda.rim
    </eventId>
    <reportTime>
        2005-02-16T18:50:54.300Z
    </reportTime>
    <SourceComponent>
        <wsa:ComponentAddress xmlns:wsa=
        "http://schemas.xmlsoap.org/ws/2004/08/addressing">
            <wsa:Address>                
                http://my.wirelessdevicegateway.com/WirelessDeviceGateway/RIM2100000a
            </wsa:Address>
            <wsa:ReferenceProperties>
            </wsa:ReferenceProperties>
        </wsa:ComponentAddress>
    </SourceComponent>
    <ReporterComponent>
        <wsa:ComponentAddress xmlns:wsa=
        "http://schemas.xmlsoap.org/ws/2004/08/addressing">
            <wsa:Address>                
            http://my.wirelessdevicegateway.com/WirelessDeviceGateway/RIM2100000a
            </wsa:Address>
            <wsa:ReferenceProperties>
            </wsa:ReferenceProperties>
        </wsa:ComponentAddress>
    </ReporterComponent>
	  <PropertyValueChangeNotification>
        <CodeModuleSize>
            <oldvalue>
                12351642
            </oldvalue>
        </CodeModuleSize>
        <CodeModuleSize>
            <newvalue>
                12396123
            </newvalue>
        </CodeModuleSize>
    </PropertyValueChangeNotification>
    <Details>
        <Topic>
            CodeModuleSize_Change        
        </Topic>
        <Device>
            RIM2100000a
        </Device>
    </Details>
</ManagementEvent>

使用 Unsubscribe 命令可取消订阅,如图 12 所示。

图 12.取消订阅
取消
取消

使用 Show Subscriptions 命令可以显示现有的订阅。如图 13 所示。

图 13.查看订阅
查看订阅
查看订阅

结束语

WSDM 1.0 规范阐明了使用 Web 服务管理平台的基础。WSDM 可为各种行业标准的、独立的设备简化远程系统管理。该概念验证的实现说明了您可以在资源受限的设备上实现这些规范。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=SOA and web services
ArticleID=63083
ArticleTitle=使用 Web Services Distributed Management 开发 Blackberry 设备实现
publish-date=04012005