Subject: [muws] comments on MUWS spec
Hi all, Here are some non-editorial corrections I would like the group to make to MUWS 0.5. Regards, William 4.2.4: "CurrentResourceState" property: why "current". Aren't all properties by default the current value unless otherwise specified? We don't say CurrentResourceID, CurrentName, CurrentNumberOfMessages, CurrentLastRestartDate, etc... So I propose to rename "CurrentResourceState" to just "ResourceState". 4.3.3: Why is "CurrentTime" of type:muwsMetrics? It should just be xsd:DateTime. There is absolutely no value in making "CurrentTime" of type metric. It is a non-metric property used to support the use of metrics. (note: in this case, the "current" kind of makes sense because saying just "time" might be confusing) 4.2.2: Represent states with QNames rather than URIs. The reason is that if you don't understand a URI you are stuck and can't go anywhere, while if you don't understand a QName you can find out if it is linked to other Qnames you understand and might still be able to understand it enough to make use of it. To do so, here is a proposed mechanism: A "linked chain QName" is defined recursively as a QName that points to a restriction of either the simple type muws:BaseState (which MUWS defines) or a simple type represented by a "linked chain QName" itself. In addition, MUWS would mandate that all import statements necessary to put a "linked chain QName" in scope MUST have a location attribute pointing to the schema in which the QName is defined. Here are a couple of schema definitions for "chain linked Qnames" that would represent states (I made up the examples, I am just trying to illustrate the mechanism): In the muws targetnamespace: <xs:simpleType name="Unavailable"> <xs:restriction base="muws:BaseState"/> </xs:simpleType> In the mows targetnamespace: <xs:simpleType name="TransportUnvailable"> <xs:restriction base="muws:Unavailable"/> </xs:simpleType> In the "apache axis" targetnamespace: <xs:simpleType name="TomcatHTTPListenerDown"> <xs:restriction base="mows:TransportUnavailable"/> </xs:simpleType> We end up with states muws:Unavailable, mows:TransportUnavailable, axis:TomcatHTTPListenerDown that are derivations of one another, in that order. And this can be easily extended by anyone in their own domain. If I am told by a managed object that it is in state axis:TomcatHTTPListenerDown and I don't understand the axis namespace, I can still find that this is a restriction of mows:TransportUnavailable and treat it as such. And if I don't understand the mows namespace either, I can go all the way back to muws:Unavailable and that still gives me some information about the state.