Avatar

Please consider registering
guest

sp_LogInOut Log In sp_Registration Register

Register | Lost password?
Advanced Search

— Forum Scope —




— Match —





— Forum Options —





Minimum search word length is 3 characters - maximum search word length is 84 characters

sp_Feed Topic RSS sp_TopicIcon
ExternalNodeManager / ExternalNode
July 2, 2014
11:41, EEST
Avatar
hbrackel
Member
Members
Forum Posts: 142
Member Since:
February 21, 2014
sp_UserOfflineSmall Offline

Hello,
I’d like to build a UaServer which forwards some serviceCalls to external underlying servers through respective UaClients. Effectively an aggregating server. I suspects that I should somehow make use of the ExternalNodeManager and externalNodes. Is there some sample code or some instructions available of how to forward calls to underlying servers or on how to use the ExternalNodeManager?
Many thanks,
Hans-Uwe

July 3, 2014
7:21, EEST
Avatar
Jukka Asikainen
New Member
Members
Forum Posts: 1
Member Since:
February 7, 2014
sp_UserOfflineSmall Offline

To relay service calls, you should override the service handlers of which service calls you want to forward. These service handlers should then have access to some client implementation, which propagates the call to the underlying servers (e.g. read, write, browse address space). For further information, see e.g. my Master’s Thesis on the very subject:

https://aaltodoc.aalto.fi/handle/123456789/13027

Best regards,
Jukka Asikainen

July 3, 2014
7:38, EEST
Avatar
Jouni Aro
Moderator
Moderators
Forum Posts: 1015
Member Since:
December 21, 2011
sp_UserOfflineSmall Offline

The way Jukka describes it is the “perfect” way to do it, simply passing everything to the underlying server(s). Unfortunately, modifying the service handlers for this is not documented, but you can probably sort it out from the source code of the standard handlers (if you have it).

It may of course be possible to pass the calls using the various managers as well. The key part, which you have probably noticed already, is working with the namespaces and converting the NodeIds – or the namespaceIndexes in those – between the servers.

The ExternalNodeManager is rather for managing nodes (ExternalNodes) that are referred to from actual UaNode objects, but do not exist in this server, at least as real UaNode objects. I am not sure how those should play the role in this kind of a design.

July 3, 2014
20:13, EEST
Avatar
hbrackel
Member
Members
Forum Posts: 142
Member Since:
February 21, 2014
sp_UserOfflineSmall Offline

Thank you, both Jukka and Aro,

the idea of external nodes is to use those as the addressSpace representation for nodes in the underlying server(s) and thereby avoiding the addition of “translation” namespaces. Unfortunately, this doesn’t quite work as I had hoped, because the ReferenceDescriptions contain the referenceTypeId as a localNodeId (not as an ExpandedNodeId). Right now my approach uses a “ForwardingNodeManager” – one each per underlying server serving all namespaceUris of the remote server. I guess the modification of the serviceHandler will be more efficient. I will try this next. Sources are available.

Thank you very much, Hans-Uwe

Forum Timezone: Europe/Helsinki

Most Users Ever Online: 518

Currently Online:
14 Guest(s)

Currently Browsing this Page:
1 Guest(s)

Top Posters:

Heikki Tahvanainen: 402

hbrackel: 142

pramanj: 86

Francesco Zambon: 83

rocket science: 82

Ibrahim: 76

Sabari: 62

kapsl: 57

gjevremovic: 49

Xavier: 43

Member Stats:

Guest Posters: 0

Members: 704

Moderators: 7

Admins: 1

Forum Stats:

Groups: 3

Forums: 15

Topics: 1482

Posts: 6316

Newest Members:

samui, TommyDab, wross, Jeremyknock, Pedromon, DonaldEdism, Miguelplese, Scotanine, katesalas95, Petertum

Moderators: Jouni Aro: 1015, Pyry: 1, Petri: 0, Bjarne Boström: 994, Jimmy Ni: 26, Matti Siponen: 330, Lusetti: 0

Administrators: admin: 1