View Issue Details

IDProjectCategoryView StatusLast Update
000421510000-005: Information ModelSpecpublic2020-12-09 15:30
ReporterJeff Harding Assigned ToJeff Harding  
PrioritynormalSeverityminorReproducibilityN/A
Status closedResolutionno change required 
Summary0004215: Address Space Requirements for Servers which do not include Name Space 0
Description

There is some uncertainty related to what a server with a profile allowing exclusion of Name Space 0 must include when it derives types from a type defined in namespace 0.
In Part 5 v1.04 Clause 8.2.6 it states:
"The intention of the “ObjectTypes” Object is that all ObjectTypes of the Server are either directly or indirectly accessible browsing HierarchicalReferences starting from this Node. However, this is not required and Servers might not provide some of their ObjectTypes because they may be well-known in the industry, such as the ServerType defined in 6.3.1."

This seems to suggest there is no need to expose the standard types however the NanoEmbedded profile states:
“Exposing types in the AddressSpace is optional for this Profile except if custom types (i.e. types that are derived from well-known ObjectTypes, VariableTypes, ReferenceType or DataTypes) are used.”

Why is this predicated on not having custom types?

For example if a nano server has an instance of a PropertyType Variable a browse response would include the HasTypeDefinition Reference to PropertyType with the extended NodeId being namespace 0 and the well-defined Id of PropertyType however a subsequent browse or read using the PropertyType NodeId would fail since the server elected not to include NS0. This would seem to be acceptable by the definitions above.

If we then consider a similar example but with a derived Variable type such as:
For example if a nano server created a VariableType derived from BaseVariableType called MyVariableType when browsing from an instance of MyVariableType the response would include the HasTypeDefinition Reference to BaseVariableType with the extended NodeId being namespace 0 and the well-defined Id of BaseVaribleType however a subsequent browse or read using the BaseVariableType NodeId would fail. From the client’s perspective this would seem to be the same case as the previous example suggesting that there is no need to define a special case for derived types.

TagsNo tags attached.
Commit Version
Fix Due Date

Activities

Jeff Harding

2018-04-03 15:50

developer   ~0008979

for version 1.05 add clarification that a server is expected to expose custom types by including at least a partial NS0 tree needed to allow browsing of the custom type.
Include an example illustrating this.

StenGruener

2018-04-04 11:25

reporter   ~0008991

Last edited: 2018-04-04 11:26

Can we use some "well-known" namespaceUri in ExpandedNodeId to cover that? For example, for NS0 I can:

  • use serverIndex 0 in case I do have a type in my server
  • or use namespaceUri "http://opcfoundation.org/UA/" to indicate an intended dangling reference?

Jeff Harding

2020-12-01 20:27

developer   ~0013352

No change is required.

Randy Armstrong

2020-12-09 15:30

administrator   ~0013419

Reviewed Draft 1 at F2F and accepted.

Issue History

Date Modified Username Field Change
2018-03-28 19:25 Jeff Harding New Issue
2018-03-28 19:25 Jeff Harding Status new => assigned
2018-03-28 19:25 Jeff Harding Assigned To => Jeff Harding
2018-04-03 15:45 Jim Luth Project 10000-003: Address Space => 10000-005: Information Model
2018-04-03 15:50 Jeff Harding Note Added: 0008979
2018-04-04 11:25 StenGruener Note Added: 0008991
2018-04-04 11:26 StenGruener Note Edited: 0008991
2020-12-01 20:27 Jeff Harding Status assigned => resolved
2020-12-01 20:27 Jeff Harding Resolution open => no change required
2020-12-01 20:27 Jeff Harding Note Added: 0013352
2020-12-09 15:30 Randy Armstrong Status resolved => closed
2020-12-09 15:30 Randy Armstrong Note Added: 0013419