Update to BACnet/WS (Add-135-2010am) with changes from San Francisco meeting.
- XML-WG and IT-WG Folks,Here is the rather late update to the BACnet/WS proposal. This is not as extensive as in the past, but it's got several nice changes and additions, I think.The feedback from San Francisco, and some subsequent discussions, has let to a further separation of logical and physical modeling, to the point of going back to its Annex N roots of protocol independence. The BACnet stuff is not yet carved out into Annex H like it is in the current standard, but we're getting close to being able to do that. This allows us to keep Annex N abstract, normalized, logical, etc.At the same time, the section on physical modeling of BACnet got a complete makeover. The idea that "feeds" are not "owners" or "containers" but merely "directories" that point to the real locations somewhere else with "self" links… was rightfully trashed in San Francisco. That may be the "Atom Way", but it's way too complicated for us. Our path hierarchy is now pure again. If it looks like a parent, it is!To do this, I finally had to make peace between <List>s and <feed>s and I think this version has finally done that.We also added a discoverable prefix (IETF needs to hurry up and finalize RFC 5785 "./well-known"!), topology modeling, and log buffer sequence numbers.As usual, I'll post the change log in this email as well as attach the document, with change tracking on, for what I'm sure will be your in-depth analysis before San Antonio. Really, the changes won't take that long to read through this time… and we only have an hour in San Antonio.BTW… the document is named like a PPR addenda, but I don't want to presuppose the pleasure of the committee. We may want to do another APR to get more feedback. The new "domains" part certainly can't be in a PPR.Enjoy!DaveChanges since San Francisco:• Major Changes...• Added a variable prefix to the URI paths and created a "/.well-known/ashrae" resource that allows discoverability of the prefix. (needs to be registered/approved by IANA via IETF)• Further separated logical and physical modeling. Setting the stage for multi-protocol physical modeling. Therefore moved "/.sysinfo/.objects" and "/.sysinfo/.devices" to the protocol-specific physical model at "/.bacnet/.objects" and "/.bacnet/.devices".• Added the concept of modeling topology (networks, sites, etc.) as part of the physical modeling.• Added the concept of "domains" to the BACnet physical modeling to cross BACnet internetworks (a little ahead of main BACnet, of course... OK for APR but would have to be removed for a PPR)• Changed the main "/.interfaces" feed to contain only logical (protocol-independent) interfaces. Interfaces can still be mapped from, and associated with, physical BACnet interfaces like SVO but they aren't dependent on protocol-specific structures like "subordinate list". Therefore moved "indirection" to the protocol-specific part for SVOs since it's not needed for logical interfaces.• A very simple solution to the trend log "sequence" problem identified in San Francisco: the sequence number is placed in the previously-unused <title> of the entry in the feed. So, as with ReadRange, clients can do a single time-based query then note the sequence number and do subsequent sequence-based queries. Works for both trend logs and event logs, and even for CSV digests.• Minor Changes...• Added the concept of "domains" to the BACnet physical modeling for cross-internetwork addressability (a little ahead of mainstream BACnet, of course... OK for APR but would have to be removed for a PPR)• Added DataType attribute that is equal to the CSML element type for the node, finally simplifying the discussion of a node's type. Now a node can be described as "a List node" and that means a DataType="List" and CSML of <List>. ValueType thus is no longer awkwardly overloaded and retains its historical meaning.• Removed Atom "service document" requirement: it had too much overhead and not enough machine readable semantics, and was redundant with the predefined path (plus prefix) requirements that we wanted.• Removed the Device_Identifier pseudo-property which is no longer needed since there is no longer a "sea of all objects from all devices" feed.• Since we will be having a lot of data with NodeType="Other", made it optional, defaulting to "Other".• Since we now have <Array> nodes, changed the confusing "array attribute" to "multivalue attribute".• Made .sysinfo the home for links to logical model tree roots for discoverability.• Made top level <List> nodes default to alt=feed since they can be big and you naturally create (POST) and delete items in them. And made not-top-level <List> nodes truncated by default... still hoping to avoid adding back the "depth" query parameter by making depth of CSML naturally limiting. Logical tree nodes are usually <List>s so this way they don't automatically explode the XML.• Added "inline" query parameter to force small <List> children to be included in the XML, overriding to previous rule.