How to query all nodes from namespace? [question]|OPC UA Standard|Forum|OPC Foundation

Avatar
Search
Forum Scope


Match



Forum Options



Minimum search word length is 3 characters - maximum search word length is 84 characters
Lost password?
sp_Feed sp_PrintTopic sp_TopicIcon
How to query all nodes from namespace? [question]
Avatar
Rudolf
Slovakia
Member
Members
Forum Posts: 19
Member Since:
07/13/2018
sp_UserOfflineSmall Offline
1
06/08/2020 - 11:49
sp_Permalink sp_Print

Hello,
is there an example of a call a query to return all nodes from specific namespace?
Thank you

Avatar
Randy Armstrong
Admin
Forum Posts: 1438
Member Since:
05/30/2017
sp_UserOfflineSmall Offline
2
06/08/2020 - 13:44
sp_Permalink sp_Print

Why you think you need to 'return all nodes from a specific namespace'?

Query was not intended for that usage.

That said, there is a ExportNamespace on the NamespaceMetadata Object which might do what you are looking for?

https://reference.opcfoundatio.....t5/6.3.13/

Avatar
Rudolf
Slovakia
Member
Members
Forum Posts: 19
Member Since:
07/13/2018
sp_UserOfflineSmall Offline
3
06/08/2020 - 23:28
sp_Permalink sp_Print sp_EditHistory

As a part of my dissertation I am building an aggregation server as a core of the communication platform.

For that purpose I think I need to compose the aggregating server which aggregates address spaces of all involved servers.

As far as I understood, in fact, the aggregating server needs to re-create all nodes from all address spaces. Following the OOP I like to go from "lower" level to "higher".

Therefore I thought that select all nodes from namespace could be useful for that.

(I think about generic servers without custom methods. So I suppose I need to use client's session objects services to get all nodes I need to reconstruct at aggregating server)

Avatar
Randy Armstrong
Admin
Forum Posts: 1438
Member Since:
05/30/2017
sp_UserOfflineSmall Offline
4
06/09/2020 - 02:24
sp_Permalink sp_Print sp_EditHistory

Aggregating servers should never rely on pre-fetching Nodes because many UA servers are front ends for large, dynamic systems that cannot be effectively replicated by an Aggregating server.

You need to design them to fetch Nodes on demand.

You could have a local cache that optimizes requests arriving within a time window.

A persistent copy is not advisable.

That said, you could also have an Aggregating server that caches the structure of an address space if it has knowledge that the underlying server address space does not change. i.e. the 'Device Twin' concept where the Aggregator is explicitly configured with a copy of a Device.

Avatar
Rudolf
Slovakia
Member
Members
Forum Posts: 19
Member Since:
07/13/2018
sp_UserOfflineSmall Offline
5
06/09/2020 - 05:09
sp_Permalink sp_Print

I see.

I made also micro embedded OPC UA server based on STM32. I suppose it could be static in terms of address space nodes, but I can imagine that fetching all nodes could be invasive on its performance.

Anyway, thinking about an interoperability I would like to avoid any "custom" methods for preparing e.g. an xml with all nodes for transfer. Unless there is not any nice information model which could support such structures.

So I could use the Browse service instead of creating a "persistent copy" at aggregating server and cache results, right?
A nice feature would be kind of pre-request checksum. To see if I really need to recall Browse again, or use the cached result.

Forum Timezone: America/Phoenix
Most Users Ever Online: 510
Currently Online:
Guest(s) 14
Currently Browsing this Page:
1 Guest(s)
Top Posters:
Forum Stats:
Groups: 2
Forums: 10
Topics: 1341
Posts: 4545