Hi folks, Monday (27 Oct 2003)
[for review at this week's WBMM telecon]
In response to NYC face-to-face review comments, I revised my prototype
Schedule XML Schema.
The Schedule XML Schema v0.30 validates without warnings using XML SPY
2004 and XSV 2.5 (the free XML Schema Validator) and is posted at:
ftp://ftp.pwg.org/pub/pwg/wbmm/schemas/schedule-20031027.xsd
Below are: (a) change log; (b) use models; (c) defined actions; and
(d) excerpted definitions of 'Schedule' and 'Plan' (row in schedule).
Cheers,
- Ira McDonald
Ira McDonald (Musician / Software Architect)
Blue Roof Music / High North Inc
PO Box 221 Grand Marais, MI 49839
phone: +1-906-494-2434
email: imcdonald at sharplabs.com
------------------------------------------------------------------------
[changes from v0.20 to v0.30]
(1) Major rewrite of schema to introduce element groups, per NYC
- 'Schedule' now contains metadata and a sequence of 'Plan'
- 'Plan' now contains 'PlanStatus', 'PlanDescription', 'PlanAction',
and 'PlanTimetable' element groups
(2) Major rewrite of actions to support 'PlanAction' group (a choice
between actions, each w/ fully specified parameters), per NYC;
(3) Added 'ActionPauseMode' (after page, document, or job), to capture
IPP Admin Operations semantics;
(4) Added 'ActionRestartMode' (current cold, current warm, previous
cold, or factory cold) to capture Printer MIB 'prtGeneralReset'
semantics;
(5) Added 'PurgeElements' and 'PurgeResources' operations, to remove
unwanted elements or resource objects;
(6) Defined simple 'Subcribe' action containing only 'TargetURIs',
'Parameters' (only used for vendor extensions), 'NotifyURIs',
'NotifyEvents', and 'NotifyElements', per Bill Wagner's request for
lightweight subscriptions.
------------------------------------------------------------------------
[use models]
Use Model 1 (Passive - Required):
A WBMM managed device (or service) creates an HTTP connection (OUTBOUND
across the enterprise network's firewall) to a WBMM management station.
The WBMM managed device (or service) immediately sends a Get-Schedule
request (packaged in a SOAP/1.1 envelope). The WBMM management station
sends a Get-Schedule response containing an XML Schedule object (a list
of scheduled operations and times/intervals).
Later, as each scheduled operation is performed, the WBMM managed device
(or service) may create another HTTP connection to the WBMM management
station and send Send-Report (normal) and/or Send-Alert (exception)
requests, as needed.
Use Model 2 (Active - Optional):
A WBMM management station sends an Execute (or SetSchedule) request
(containing a Schedule object) directly to a WBMM managed device (or
service), for example, by sending a SOAP/1.1 request over email (SMTP).
Later, each scheduled operation is performed by the WBMM managed device
(as described in Use Model 1 above).
------------------------------------------------------------------------
[defined actions]
None - no operation
Other - vendor extension with parameter named 'Action'
Disable
Enable
Pause
Resume
PauseAndDisable
ResumeAndEnable
PurgeJobs
Restart - reset to same, previous, or factory configuration
Shutdown - stop instance of service/device entirely
Startup - start new instance of service/device
GetElements
PurgeElements
SetElements
GetResource
PurgeResources
SetResource
Subscribe - for notifications
Unsubscribe
Wakeup - wakeup service/device, which then performs Get-Schedule
------------------------------------------------------------------------
[excerpted definition of 'Plan' (row in a schedule)]
<xsd:element name="Plan">
<!-- Plan - one planned action -->
<!-- see individual element descriptions for their cardinality -->
<!-- and REQUIRED versus OPTIONAL presence in a plan -->
<!-- see schedEntry - section 4 [RFC3231] -->
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="PlanStatus"
minOccurs="1" maxOccurs="1"/>
<xsd:element ref="PlanDescription"
minOccurs="0" maxOccurs="1"/>
<xsd:element ref="PlanAction"
minOccurs="1" maxOccurs="1"/>
<xsd:element ref="PlanTimetable"
minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
------------------------------------------------------------------------
[excerpted definition of 'Schedule' (top-level object)]
<xsd:element name="Schedule">
<!-- Schedule - schedule metadata and set of planned actions -->
<!-- see schedTable - section 4 [RFC3231] -->
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="ScheduleState"
minOccurs="1" maxOccurs="1"/>
<xsd:element ref="ScheduleInfo"
minOccurs="0" maxOccurs="1"/>
<xsd:element ref="ScheduleSourceURI"
minOccurs="0" maxOccurs="1"/>
<xsd:element ref="ScheduleTriggerCount"
minOccurs="0" maxOccurs="1"/>
<xsd:element ref="ScheduleFailureCount"
minOccurs="0" maxOccurs="1"/>
<xsd:element ref="Plan"
minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>