View Issue Details

IDProjectCategoryView StatusLast Update
000907310000-003: Address SpaceSpecpublic2023-10-10 15:18
ReporterThilo Bellinger Assigned ToJeff Harding  
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionreopened 
Product Version1.05.02 
Fixed in Version1.05.03 
Summary0009073: Detail clarification needed for DefaultEncodingId in StructureDefinition
Description

We encountered different interpretations about what the DefaultEncodingId means in the context of different encodings and what that means for storing the information and for communication.
It affects the DataTypeDefinition attribute of DataType nodes and the DataSetMetaData for PubSub (Binary and JSON).
The storing includes storing and reading the value to/from a nodeset.

Part 3 Chapter 8.48 Structure Definition
"(...)The default depends on the message encoding, Default Binary for UA Binary encoding, Default JSON for JSON encoding and Default XML for XML encoding. (...)"

Interpretation 1: The structure and its value exists only once on a source OPC UA application (Server or PubSub Publisher)
Pro: It is always clear which value to use for storing or for any communication.
Applications can fill the DefaultEncodingId on different places for intended use cases.
Contra: The EncodingId is only usable for one encoding type, other supported encodingIds must be retrieved in a different way (if possible at all).
Receivers are not able to know to which encoding type this EncodingId belongs to.
For example a PubSub publisher is able to publish Binary UADP data and JSON MQTT data and stores the BinaryEncodingIds in the StructureDefinitions.
The StructureDefinitions are reported in MQTT MetaData.
A subscriber which received the meta data is still not able to decode a data type for the not recognized JSON encodingId.
-> The reported DefaultEncodingId may be unknown to which encoding type it belongs to and may be useless.
-> For this interpretation it would be good to know to which encoding type this ID belongs to.

Interpretation 2: The structure has to be filled with the matching EncodingId whenever it is transported, using the encoding type which currently transports this structure to the receiver.
Pro: The receiver always gets an EncodingId which matches to its current encoding type and thus is able to use it for the current encoding type.
Contra: If a receiver (Client or Subscriber) is interested in the EncodingId for a different encoding type, then the reported EncodingId is not usable.
For example there is a combined Server with Publisher and a combined Client with Subscriber.
The client uses the ReadService using Binary encoding to read the DataSet configuration from the PublishedDataSet->DataSetMetaData property.
It will only get the BinaryEncodingId (as the ReadService used binary encoding) but not the DefaultJson EncodingId.
To get the DefaultJSON encodingId the client needs to browse the DataType nodes on the server to find the DefaultJson EncodingId.
-> The reported DefaultEncodingId is known where it belongs to but may still not be usable (as it belongs to a different encoding).

Which is the correct interpretation?

Note: For Interpretation 1 for a publisher only application:
When a PublishedDataSet shall be used by two DataSetWriters for different encoding types, then the PublishedDataSet is not able to report usable MetaData information (via DataSetMetaData messages) for both encoding types.
It requires to duplicate the complete PublishedDataSet and configure each for one encoding type.

TagsNo tags attached.
Commit Version1.05.03
Fix Due Date2023-09-01

Relationships

related to 0008179 closedRandy Armstrong 10000-006: Mappings StructureDefinition.DefaultEncodingId is not useful as described. 

Activities

Jim Luth

2023-08-08 16:11

administrator   ~0019852

See proposed fix in releate 0008179.

Thilo Bellinger

2023-08-08 16:44

reporter   ~0019853

OK, the defaultEncodingId always means binary.
The proposed fix from 0008179, should solve all our problems and makes the handling much easier.

I wonder a bit about the backward compatibility to old OPC UA applications using XML encoding, but clients are able to read the address space and it does not affect us.
The handling for new JSON publishers and subscribers is solved.

Thank you

Jeff Harding

2023-08-09 13:40

developer   ~0019854

Added clarification

Jim Luth

2023-09-05 17:00

administrator   ~0019963

Agreed to completely new wording edited in web meeting.

Jim Luth

2023-09-05 17:49

administrator   ~0019964

Last edited: 2023-09-05 17:50

New wording is not consistent with Part 6.

New proposal is to make a breaking change to eliminate the JSON encoding Nodes entirely. Randy needs to check with implementations to see if this will bother anyone.

Jim Luth

2023-09-18 14:04

administrator   ~0019997

Randy reports there are already Client/Server implementations that rely on the existing rules JSON encoding so eliminating the JSON encoding nodes entirely, is not feasible.

Jim Luth

2023-10-10 15:18

administrator   ~0020110

Agreed to changes edited in Web Meeting.

Issue History

Date Modified Username Field Change
2023-08-02 18:37 Thilo Bellinger New Issue
2023-08-08 16:08 Jim Luth Relationship added related to 0008179
2023-08-08 16:10 Jim Luth Assigned To => Jeff Harding
2023-08-08 16:10 Jim Luth Status new => assigned
2023-08-08 16:11 Jim Luth Note Added: 0019852
2023-08-08 16:11 Jim Luth Commit Version => 1.05.03
2023-08-08 16:11 Jim Luth Fix Due Date => 2023-09-01
2023-08-08 16:44 Thilo Bellinger Note Added: 0019853
2023-08-09 13:40 Jeff Harding Status assigned => resolved
2023-08-09 13:40 Jeff Harding Resolution open => fixed
2023-08-09 13:40 Jeff Harding Fixed in Version => 1.05.03
2023-08-09 13:40 Jeff Harding Note Added: 0019854
2023-09-05 17:00 Jim Luth Status resolved => closed
2023-09-05 17:00 Jim Luth Note Added: 0019963
2023-09-05 17:49 Jim Luth Status closed => feedback
2023-09-05 17:49 Jim Luth Resolution fixed => reopened
2023-09-05 17:49 Jim Luth Note Added: 0019964
2023-09-05 17:50 Jim Luth Status feedback => assigned
2023-09-05 17:50 Jim Luth Note Edited: 0019964
2023-09-18 14:04 Jim Luth Note Added: 0019997
2023-10-10 15:18 Jim Luth Status assigned => closed
2023-10-10 15:18 Jim Luth Note Added: 0020110