UAOOI.Configuration.Networking 2.0.4-Echo

This is a prerelease version of UAOOI.Configuration.Networking.
There is a newer version of this package available.
See the version list below for details.
dotnet add package UAOOI.Configuration.Networking --version 2.0.4-Echo
NuGet\Install-Package UAOOI.Configuration.Networking -Version 2.0.4-Echo
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="UAOOI.Configuration.Networking" Version="2.0.4-Echo" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add UAOOI.Configuration.Networking --version 2.0.4-Echo
#r "nuget: UAOOI.Configuration.Networking, 2.0.4-Echo"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install UAOOI.Configuration.Networking as a Cake Addin
#addin nuget:?package=UAOOI.Configuration.Networking&version=2.0.4-Echo&prerelease

// Install UAOOI.Configuration.Networking as a Cake Tool
#tool nuget:?package=UAOOI.Configuration.Networking&version=2.0.4-Echo&prerelease

UA Data Networking Configuration

Introduction

This library contains types that supports the configuration management of application implementing the paradigm described in OPC UA Data Processing Outside the Server. The configuration may be read to or write from the xml or json files. By design this library may be used to support variety kinds of applications at design and run time.

The project seems to be very important prototyping workspace to answer the question how far we can go with the configuration (design time approach) in context of the following problems we have:

  1. Message content definition, i.e. items selected to be distributed (or fields, variables, values, etc. – nor sure about terminology)
  2. Metadata distribution – preparation of the consumer to be able to decode the messages,
  3. Privileges/Permissions management in context of the distributed data as the primary resource (subject) for any OPC UA data processing application and in context of the message handlers as the data access communication channels (infrastructure).
  4. Security tokens distribution to support all scenarios mentioned in 3 above.

Let me know if it works for you and if not how to converge proposed solution and your expectations. Examples how to use the library you can find in the Unit Tests aimed to test selected scenarios.

Run time

By design it is a plug-in or using modern terminology application composition part of the library described in Networking of SemanticData Library and at run time it can be used as the primary source of configuration for any standalone OPC UA Data Application and OPC UA Server supporting PubSub role.

In this case the application configuration may:

  • be derived from the proposed one
  • be expanded by the proposed one

The proposed solution supports also possibility to handle the configuration change event at run time, but this option is not tested and its implementation may change in new releases.

Design time

I hope the interface is ready to fulfill the following design time scenarios allowing for configuration in context of selected OPC Information Model/Address Space:

  1. Plug in to a modeler (UA Information Model design tool) as the configuration editor tool (preferred for me) - now it is compatible with the Address Space Model Designer
  2. OPC UA Server as an local editor – using server local GUI, Address Space and the UANetworkingConfiguration plug-in (in this case OPC UA server is just modeler)
  3. OPC UA Client as an editor - using client local GUI/UANetworkingConfiguration on the client side, and remote access to the Address Space
  4. OPC UA Server as a remote editor – using custom configuration Information Model/UANetworkingConfiguration plug-in on the server side, and generic configuration OPC UA Clint as the remote configuration tool,
  5. OPC UA Server as a remote dedicated editor – using PubSub Information Model/UANetworkingConfiguration plug-in on the server side, and dedicated (configuration editor GUI) PubSub configuration OPC UA Clint as the remote configuration tool (let me stress it is the only scenario using PubSub Information Model) – it is rather run time approach.

It is my opinion, but options 4 and 5 are only theoretically possible, because in real installations OPC server is untouchable artifact, but in a lab it is just Modeler and cannot be used as run time configuration tool.

It is good opportunity to review your requirements (if you have any) against the proposed solution.

Configuration content

The detailed description of the configuration files content is captured in the documentation at: ConfigurationData.

The XML schema of the configuration files is available at: ConfigurationData.xsd. Intentionally data producers and consumers use the same schema for configuration files. It makes it easier to harmonize these roles configuration and supports two roles in one application.

Product Compatible and additional computed target framework versions.
.NET Framework net461 is compatible.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on UAOOI.Configuration.Networking:

Package Downloads
UAOOI.Configuration.DataBindings

OPC UA Object Oriented Internet (UAOOI) DataBindings library is dedicated to create a plug-in aimed at editing of the configuration of any application based on OPC UA Information Model. It allows also to add data binding to the configuration. It is part of the project supporting OPC UA Object Oriented Internet paradigm.

UAOOI.Networking.SemanticData

SemanticData Reactive Networking library based on OPC UA Part 14 Pub/Sub

UAOOI.Networking.Encoding

This part provides implementation of the IEncodingFactory to lookup a dictionary containing value converters. The interface is used for late binding to inject dependency on the external library. This library provides IEncodingFactory functionality limited to encoding simple data types only for the testing purpose only.

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on UAOOI.Configuration.Networking:

Repository Stars
mpostol/OPC-UA-OOI
Object Oriented Internet - C# deliverables supporting a new Machine To Machine (M2M) communication architecture
Version Downloads Last updated
6.4.8 1,341 11/10/2021
4.0.1 2,272 2/1/2019
3.0.5 1,399 3/31/2018
2.0.4-Echo 900 1/27/2018
2.0.3-Delta 1,605 7/17/2016

It is working prerelease