330 likes | 562 Views
Micro Managing – Implementing WSDM in the Small Tiny WSDM Demo. Barry Atkins Heather Kreger Steve Graham. Agenda. The Demo Motivation Tiny WSRF - Resource Properties Tiny WS-Notifications – Base Notifications Tiny WSDM WSDM Management Event Identity How Hard was That?. Motivation.
E N D
Micro Managing – Implementing WSDM in the Small Tiny WSDM Demo Barry Atkins Heather Kreger Steve Graham
Agenda • The Demo • Motivation • Tiny WSRF - Resource Properties • Tiny WS-Notifications – Base Notifications • Tiny WSDM • WSDM Management Event • Identity • How Hard was That?
Motivation • Show that WSDM and its requisite specifications can be implemented in resource constrained devices • WSDM composes for minimal WSDM, WS-Addressing, WSRF, WS-N were designed to be composable to allow for minimal implementation requirements in simple or constrained implementations • WDSM composes for the enterprise WSDM, WS-Addressing, WSRF, WS-N also provide composable functionality required to support complex, large scale systems.
Topology WAS 5.1 (Wireless GW) 2 BES Server 3 4 • Blackberry connects to Wireless GW via BES tunneling • Client “discovers” Blackberry via Wireless GW • WSRF, WSN message exchanges to Wireless GW (proxy) • WSRF, WSN message exchanges to Blackberry 1 WSRFand WSN Endpoint
Functionality • “port” of ETTK WSRF-ResourceProperties • GetResourceProperties • Retrieve value from Blackberry • Date, Time, Serial#, BatteryLevel, BatteryStatus, AllocatedStorage, FreeStorage, total code module size (0(n) calc) • GetMultipleResourceProperties • GetResourcePropertiesDocument • Equivalent to WS-Transfer Get • SetResourceProperties (update) • Modify value of Blackberry • Date, Time, Color (this faults) • WSRF-BaseFaults • Blackberry GUI • “port” of ETTK WSN • NotificationProducer • Just subscribe request/response • ShowSubscriptions • Detect situation and format message for • Date change and time change (from WSRF Set) • Drive notification message to consumer via EPR 102K WSDM (12k) WSN (32k) WSRF (19k) KSoap (40k) JVM
Cost • 1 developer 25 days • Developer had good knowledge of Blackberry programming • Good knowledge of ETTK • No background with WSRF, WS-N, or WSDM
Implementation The demo consists of: • Running on the Server device. • Web interface • Web services running on WAS 6.0 • Running on the Blackberry device. • Client code consisting of a tiny soap engine • Soap server • WirelessDeviceGateway web service EndpointReference for the TinyWSRF implementation • Forwards the requests to the various devices via a variety of device-specific transports • The device is specified by a device property contained in the soap header. (wsa reference property)
Tiny Notifications - Subscriptions • Subscriptions may be created for the following topics : • Date_Change • - notification is performed when the device's date is changed • Inbox_Change • - notification is performed when the device's email inbox is changed (email added or deleted) • Outbox_Change • - notification is performed when the device's email inbox is changed (email added or deleted) • CodeModuleSize_Change • - notification is performed when the code size for all installed modules changes.
It’s a WSDM Management Event! <ManagementEvent> <sourceComponentId> <wsa:componentAddress xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"> <wsa:Address> http://9.27.80.182:4400/WSRF4PDA_V6/services/WSRFWirelessDeviceGateway </wsa:Address> <wsa:ReferenceProperties> <ResourceId xmlns="http://resource.wsrfimpl.ettk.ibm.com"> 4:2100000a </ResourceId> <device xmlns="http://rim.pda"> RIM2100000a </device> </wsa:ReferenceProperties> </wsa:componentAddress> <Caption> BlackBerry Device 2100000a </Caption> </sourceComponentId> <situation> <situationType> ReportSituation </situationType> <msg> Date change occurred </msg> </situation> <eventId> http://rimpda/RIM2100000a/20041225175424660 </eventId> <reportTime> 2004-12-25T17:54:24.660Z </reportTime> </ManagementEvent>
Tiny WSDM The WSDM demo consists of the following scenario : • 1. A subscription is created for the topic "CodeModuleSize" on the Blackberry. • 2. An application is installed on the device, triggering a notification. • 3. The NotificationConsumer receives the notification, and asks the device for a list of installed applications. • 4. The list is compared to a known list of legal applications (via policy). • 5. A request to remove the offending application(s) is sent to the device, which uninstalls the requested application(s).
TinyWSDM – Load a New Application - HelloWorld At: http://barryxplaptop:4400/WSRF4PDA_V6/jad.html
TinyWSDM – Application Removed • Device limitation: Icons on the Blackberry are only removed when the device is rebooted • The HelloWorld application appears to remain installed becausethe icon appears on the device • The HelloWorld application is not listed in the list of installed applications
How hard was that? The device code consists of 2 components : A server component, and a UI component. • The server component runs automatically in the background. It connects to the WirelessDeviceGateway, and identifies itself using the device’s PIN. • The UI component provides simple feedback and configuration of the server component. It displays messages as they are received from the WirelessDeviceGateway, as a result of GetResourceProperty, etc requests. (not necessary)
How much code? Code size written : 4000 lines Total compiled code size is 102Kb • Blackbarry: 4 main packages, • ksoap2.cod 62,620 (library) (the soap engine/xml parser) • TinyWSRF.cod 19,724 (library) (code WSRF implementation) • WSRFController.cod 8,772 (application) • WSRFServer.cod 12,880 (application) • Server Code • Module which handles the device-specific transport of the SOAP Envelope for the data transport for several different devices (WiFi, SMS, cellular, etc) that is transparent to the caller. • Various JSPs & servlets for running the demo.
package com.ibm.tinywsrf – 1448 lines 1,296 DocServer.java 2,659 EndpointReference.java 1,827 Notification.java 1,365 NotificationManager.java 10,089 NotificationMessage.java 2,765 NotificationProducer.java 951 ResourceProperties.java 9,284 Resources.java 3,232 Subscription.java 7,124 SubscriptionManager.java 5,067 Utils.java 4,610 WSConstants.java 2,294 WSRFConstants.java package com.ibm.wsrpcontroller- - 760 lines 962 Controller.java 6,146 mainApp.java 3,568 SubscriptionsScreen.java 2,558 WDGSetupScreen.java 2,677 WSRPControllerScreen.java package com.ibm.tinywsrfserver - 1019 lines 2,005 AppWatcher.java 19,584 CommandProcessor.java 1,931 DateWatcher.java 3,801 MailWatcher.java 5,404 mainApp.java 2,270 SOAPProcessor.java 107 UIListener.java 469 Watcher.java package com.ibm.wireless.rim - 828 lines 2,257 Marshaller.java 717 MarshallObject.java 682 Persistant.java 472 SOAPListener.java 11,395 SOAPServer.java 1,504 WDGSetup.java 2,417 WebService.java 4,136 WebServiceProxy.java Nitty Gritty Details