View Issue Details

IDProjectCategoryView StatusLast Update
000847410000-014: PubSubSpecpublic2023-06-20 13:26
ReporterZbynek Zahradnik Assigned ToMatthias Damm  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Product Version1.05.02 
Target Version1.05.03Fixed in Version1.05.03 RC1 
Summary0008474: It is not clear what goes into DataTypeSchemaHeader fields of DataSetMetaDataType and/or UABinaryFileDataTupe
Description

(Agreed with Matthias Damm that this is genuine and should be made into a Mantis issue for him to resolve. May invite Etienne Rossignon/Sterfive SAS as he was the one who triggered some of the questions here).

As a note, DataSetMetaDataType is used:

  • in the PublishedDataSetDataType
  • in DataSetReader parameters (DataSetReaderDataType, DataSetReaderType)
  • in StandaloneSubscribedDataSetDataType
  • as DataSetClasses field in PubSubConfiguration2DataType
  • in UADP DataSetMetaData announcement message
  • in JSON DataSetMetaData discovery message
  • in DataSetClasses Folder of PublishSubscribeType
  • in PublishedDataSetType
  • in AddPublishedDataItemsTemplate and AddPublishedEventsTemplate methods

It derives from DataTypeSchemaHeader (part 5), where for its fields like structureDataTypes, enumDataTypes, simpleDataTypes, it uses formulation like "Description of Structure and Union DataTypes used in the data that follows the DataTypeSchemaHeader. This includes nested Structures".

An interoperability issues arose around this. In my case they had to do with DataTypeSchemaHeader which was in the UABinaryFileDataType from the publisher. Question are e.g.:

1) When the spec says that structureDataTypes etc. should contain "Description of Structure and Union DataTypes used in the data that follows the DataTypeSchemaHeader", does it have to include the description for datatypes that are in defined in the spec (namespace 0)? [most likely not]

2) Take this example: The publisher will publish messages which contain a custom structure. This structure, however, is not quite "used in the data that follows DataTypeSchemaHeader", i.e. in the metadata. The metadata only contains the node Id of the datatype; the datatype is only really used "on the wire", in the PubSub messages. The spec should make it clear what constitutes a "use" (Part 5 wording), because in this case, the intent of the spec was that description of such structure type shall be included in the DataTypeSchemaHeader.

3) An IOP WS participant argued that his publisher might not know the datatypes upfront (when generating this structure), OR, in polymorphic case, that it might know the base type but not all the derived types. He had not put them into the DataTypeSchemaHeader, but my subscriber, obviously was then not able to consume the PubSub messages.

4) Need to touch on the fact that in some forms of published messages, a generic Variant may be used, and it contain an extension object with any data type in it. Clarify whether such datatypes go into the DataTypeSchemaHeader.

5) If the datatype descriptions can be put into multiple places ("levels"), such as in the UABinaryFileDataTupe of the PubSub configuration, and in the dataset metadata, where should the generating code place them?

6) If the datatype descriptions are found in multiple places ("levels"), such as in the UABinaryFileDataTupe of the PubSub configuration, and in the dataset metadata, how should the consuming code interpret or combine them?

7) The answers about what goes in and what not can depend on where the DataTypeSchemaHeader is used, see the list of usages at the beginning.

TagsNo tags attached.
Attached Files
image.png (1,424 bytes)   
image.png (1,424 bytes)   
Commit Version
Fix Due Date

Relationships

related to 0008942 closedMatthias Damm Custom DataTypes and DataSetMetaData 

Activities

Matthias Damm

2023-03-19 00:33

developer   ~0018879

Added following clarification to 6.2.3.2 DataSetMetaData

6.2.3.2.2 DataTypeSchemaHeader
The DataSetMetaData is a subtype of DataTypeSchemaHeader. The DataTypeSchemaHeader provides OPC UA DataType definitions used in the DataSetMetaData. The DataTypeSchemaHeader is defined in OPC 10000-5.
The DataTypeSchemaHeader provides information that is required when the DataSetMetaData is used outside the scope of an OPC UA Server. This information includes a namespace array and DataType descriptions. OPC UA defined DataTypes are not included.
When the DataSetMetaData is used in Read, Writer or Call Services with an OPC UA Server, the DataTypeSchemaHeader fields are not used.
The DataTypeSchemaHeader of the DataSetMetaData shall be populated with the necessary information when sent in PubSub messages or when the PubSubConfiguration is exchaned with the UABinaryFileDataType. This includes all namespaces and DataTypes that are potentially contained in the associated DataSetMessages.

6.2.12.1 PubSubConfigurationDataType
Table 73 – PubSubConfiguration file content
Added clarifications for DataType description fields:
The DataTypes used in DataSetMetaData are described in the DataTypeSchemaHeader of the associated DataSetMetaData.
This field is only used if KeyValuePairs for configuration properties contain Structure DataTypes not defined by OPC UA.

Jim Luth

2023-03-22 22:03

administrator   ~0018981

Agreed to changes in Dallas meeting.

Issue History

Date Modified Username Field Change
2022-11-29 08:37 Zbynek Zahradnik New Issue
2022-11-29 08:37 Zbynek Zahradnik File Added: image.png
2022-11-29 17:07 Jim Luth Assigned To => Matthias Damm
2022-11-29 17:07 Jim Luth Status new => assigned
2023-03-19 00:33 Matthias Damm Status assigned => resolved
2023-03-19 00:33 Matthias Damm Resolution open => fixed
2023-03-19 00:33 Matthias Damm Fixed in Version => 1.05.03 RC1
2023-03-19 00:33 Matthias Damm Note Added: 0018879
2023-03-22 22:03 Jim Luth Status resolved => closed
2023-03-22 22:03 Jim Luth Note Added: 0018981
2023-06-20 13:26 Matthias Damm Relationship added related to 0008942