Hi folks, Tuesday (7 February 2006)
Below are proposed WIMS Protocol spec and WIMS XML schema updates for
support of multi-level (or 'chained') WIMS Proxy configurations that we
discussed at the January PWG face-to-face and last week's WIMS telecon.
Basically, in _every_ Action _except_ UpdateSchedule, replace the
(one-level) 'agentReferences : AgentReferences' parameter with a
(multi-level) 'agentPaths : AgentPaths' parameter (see below).
UpdateSchedule MUST NOT be forwarded and MUST still use a single-valued
'agentReference : AgentReference' parameter that MUST resolve to the
local (receiving) WIMS Agent.
The processing model is simple:
(1) WIMS Proxy receives incoming 'Action' from adjacent upstream WIMS
Manager (via running Schedule or ExecuteAction request).
(2) WIMS Proxy rewrites 'ActionAgentPaths' of 'Action', removing the
_first_ WIMS Agent reference (to itself) in each agent path in the
array of paths.
(3) WIMS Proxy forwards rewritten 'Action' to the adjacent downstream
WIMS Agents via ExecuteAction requests and/or Legacy Agents via
legacy protocol requests (e.g., SNMP Set).
(4) Recursion of steps (1) to (3) leads to final WIMS Agents or Legacy
Agents (nearest to actual managed entities).
(5) Upstream ExecuteAction or legacy protocol responses convey resulting
status back to original WIMS Proxy who conveys resulting status
back via SendReports request or ExecuteAction response to original
WIMS Manager.
Note: ExecuteAction is used here for operation forwarding downstream in
order to preserve the 'immediate' nature of a triggered Action in a
Schedule. It would be possible to forward operations via downstream
Schedule objects, but vastly more complicated to correlate the responses
and not faithful to an 'immediate' trigger.
Comments?
Cheers,
- Ira
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
------------------------------------------------------------------------
[WIMS Protocol spec]
[diagrams and notes in section 4]
[change]
agentReferences
[to]
agentPaths
[definition in section 6.1.1 - note plural 'Paths']
[change]
agentReferences : AgentReferences
[to]
agentPaths : AgentPaths
[change]
References to the WIMS...
[to]
Paths to the WIMS...
[definition in section 6.1.3 - note plural 'Paths']
[change]
agentReferences : AgentReferences
[to]
agentPaths : AgentPaths
[change]
References to the WIMS...
[to]
Paths to the WIMS...
[RegisterForManagement in section 6.2.1 - note plural 'Paths']
[change]
agentReferences : AgentReferences
[to]
agentPaths : AgentPaths
[UnregisterForManagement in section 6.2.2 - note plural 'Paths']
[change]
agentReferences : AgentReferences
[to]
agentPaths : AgentPaths
[actions in sections 6.4, 6.5, and 6.6 - note plural 'Paths']
[change]
agentReferences : AgentReferences
[to]
agentPaths : AgentPaths
------------------------------------------------------------------------
[WIMS Message schema]
[RegisterForManagement and UnregisterForManagement requests]
[change]
RequestAgentReferences
[to]
RequestAgentPaths
------------------------------------------------------------------------
[WIMS Type schema]
[add two new types]
<xsd:complexType name="ObjectAgentPath">
<!-- path to legacy or WIMS agent nearest to a managed entity -->
<!-- for support of multi-level WIMS Proxy configurations -->
<xsd:sequence>
<xsd:element name="ObjectAgentReference"
type="ObjectAgentReference"
minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ObjectAgentPaths">
<xsd:sequence>
<xsd:element name="ObjectAgentPath"
type="ObjectAgentPath"
minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
------------------------------------------------------------------------
[WIMS Schedule schema]
[delete unused 'ActionAgentReferences' element]
[add new 'ActionAgentPaths' element]
<xsd:element name="ActionAgentPaths"
type="ObjectAgentPaths"/>
<!-- OPTIONAL - MAY be multi-valued -->
<!-- paths to legacy or WIMS agents nearest to managed entities -->
<!-- for support of multi-level WIMS Proxy configurations -->
[modify each action in WIMS Schedule schema, for example]
<xsd:element name="ActionGetElements">
<xsd:complexType name="ActionGetElements"
<xsd:sequence>
<xsd:element ref="ActionAgentPaths"
minOccurs="0" maxOccurs="1"/>
<xsd:element ref="ActionTargetObjects"
minOccurs="0" maxOccurs="1"/>
<xsd:element ref="ActionRequestedElements"
minOccurs="0" maxOccurs="1"/>
<xsd:element ref="ActionVendorParameters"
minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
------------------------------------------------------------------------