Object-Oriented Internet
  • Executive Summary
  • Table of Content
  • Introduction
    • Introduction to Object-Oriented Internet
    • Introduction to Complex Data Processing
    • OPC Unified Architecture
    • OPC UA Main Technology Features
  • Semantic-Data Processing
    • Semantic-Data Processing Architecture
    • Address Space and Address Space Model
    • UA Information Model - Concept
      • Standard Information Model
    • Information Models Development
      • Adopting Companion Standard Models - Analyzer Devices Integration
      • Companion Specification - Information Model for Analyzers
      • ADI Information Model Adoption
      • ADI Model Deployment
      • Address Space Model Life-cycle
      • Design and Deployment Support
    • Address Space Management Implementation
    • Address Space Prototyping Tool (asp.exe)
      • UAModelDesignExport Library
  • Internet of Things (IoT) Archetype
    • Semantic-Data Message Centric Communication
    • Internet of Things (IoT) Communication
  • Reactive Communication
    • UA Part 14: PubSub Main Technology Features
    • Reactive Networking of Semantic-Data Library
      • Underlying Transport over UDP
      • Underlying Transport over MQTT
      • Underlying Transport over AMQP
      • Underlying Transport over Ethernet
      • DataSet and Communication Channel Association
      • Encoding Library
    • Getting Started Tutorial
    • Walk-through ReferenceApplication
      • ReferenceApplication Utilities
      • Azure Gateway DataRepository
      • ReferenceApplication Consumer - Data Logger
      • ReferenceApplication Producer - Interoperability Test Data Generator
      • ReferenceApplication Producer - Boilers Set Simulator
  • Configuration
    • Configuration - Executive Summary
      • Reactive Networking (RxNetworking) Configuration
      • DataBinding library
  • Global Data Discovery
    • Concept
    • Domain Model
  • References
    • See also
Powered by GitBook
On this page
  • Key words
  • Executive Summary
  • Conclusion
  • Acknowledgment
  • Implementation walk through
  • Introduction
  • DataManagementSetup implementation
  • IBindingFactory implementation
  • IConfigurationFactory implementation
  • Current release
  • Versioning
  • Authors
  • See also

Was this helpful?

Edit on GitHub
  1. Reactive Communication
  2. Walk-through ReferenceApplication

Azure Gateway DataRepository

PreviousReferenceApplication UtilitiesNextReferenceApplication Consumer - Data Logger

Last updated 2 years ago

Was this helpful?

Key words

Azure, Cloud Computing, Object-Oriented Internet, OPC Unified Architecture, Reactive Networking (RxNetworking), Machine to Machine Communication, Internet of Things

Executive Summary

This project shows an example implementation of an OPC UA PubSub to Azure embedded gateway. It is implemented as a composable part of the Reactive Networking Application (RxNetworking App). The article covers a description of the architecture supporting the reactive communication design pattern. The RxNetworking App is an aggregation of Producer and Consumer entities derived from DataRepository. They must provide interconnection to real-time process data, hence they are recognized as an extension of the DataRepository class. AzureGateway part fulfills the Consumer role and uses out-of-band communication to push telemetry data to the cloud.

Working through this tutorial gives you an introductory understanding of the steps required to implement the Consumer role of the RxNetworking application. It is an example of Semantic-Data reactive networking based on specification. The document covers a description of selected fetuses relevant to this specification.

This project is proof of concept that out-of-band communication for OPC UA PubSub can be implemented based on the DataRepository concept. This workout will be described in an independent article. To get the full story and your copy check out the preprint from . Main purpose of this preprint it to enable an early community review. We will consider your contribution to be applied to the final version of the article.

Conclusion

The obtained results prove that the embedded gateway archetype implementation is possible based on the existing standalone framework supporting reactive interoperability atop of the M2M communication compliant with the . It is worth stressing that there is no dependency on the Client/Server session-oriented relationship. In contrast to the architecture described in the OPC UA Part 1 specification, the publisher/consumer roles are not tightly coupled with the Address Space of the OPC UA Server embedded component. In the proposed approach, the cloud interoperability is supported by a dedicated part employing out-of-band communication only without dependency on the OPC UA functionality. In contrast to the middleware concept, the gateway functionality is implemented as a part - composable to the whole without programming skills. It makes it possible to modify its functionality later after releasing the library or even deploying the application program in the production environment because the part is composed at the runtime.

Concluding, the paper describes a proof of concept that it is possible to integrate selected cloud services (e.g. Azure) with the Cyber-physical network atop of the OPC UA PubSub applying the proposed architecture and deployment scenario. In contrast to limiting the PubSub role to export the data from the Address Space exposed by a selected OPC UA server out of the OPC UA ecosystem, applying the proposed solution enables interoperability of the cloud services and the Cyber-physical network as one whole.

Acknowledgment

I would like to acknowledge the project from which the AzureGateway implementation of the DataRepository was derived. I would like to thank for his inputs/inspirations, feedback, and cooperation in this respect.

Implementation walk through

Introduction

Here are steps undertook to implement the Consumer role in the application:

  1. DataManagementSetup: this class has been overridden by the PartDataManagementSetup class and it initializes the communication and binds data fields recovered form messages to local resources.

  2. IBindingFactory: has been implemented in the class PartBindingFactory that is responsible to gather the data recovered from the Message instances pulled from the Distribution Channel. The received data is driven to the Azure services using configured out-of-band protocol.

  3. IConfigurationFactory: the class PartConfigurationFactory implements this interface to be used for the configuration file opening.

DataManagementSetup implementation

The PartDataManagementSetup constructor initializes all properties, which are injection points of all parts composing this role.


  [Export(typeof(PartDataManagementSetup))]
  [PartCreationPolicy(CreationPolicy.Shared)]
  public sealed class PartDataManagementSetup : DataManagementSetup
  {

    public PartDataManagementSetup()
    {
      _Logger.EnteringMethodPart(nameof(PartDataManagementSetup));
      //Compose external parts
      IServiceLocator _serviceLocator = ServiceLocator.Current;
      //string _configurationFileName = _serviceLocator.GetInstance<string>(CompositionSettings.ConfigurationFileNameContract);
      m_ViewModel = _serviceLocator.GetInstance<ProducerViewModel>();
      EncodingFactory = _serviceLocator.GetInstance<IEncodingFactory>();
      _Logger.Composed(nameof(EncodingFactory), EncodingFactory.GetType().FullName);
      MessageHandlerFactory = _serviceLocator.GetInstance<IMessageHandlerFactory>();
      _Logger.Composed(nameof(MessageHandlerFactory), MessageHandlerFactory.GetType().FullName);
      //compose internal parts
      ConfigurationFactory = new PartConfigurationFactory(ConfigurationFilePath);
      PartBindingFactory pbf = new PartBindingFactory();
      _DTOProvider = pbf;
      BindingFactory = pbf;
    }

    ....

  }

Finally the DataManagementSetup.Start() method is called to initialize the infrastructure, enable all associations and start pumping the data.

IBindingFactory implementation

Implementation of this interface is a basic step to implement Consumer functionality. The DataRepository represents data holding assets in the RxNetworking App and, following the proposed approach, the IBindingFactory interface is implemented by an external part. It captures functionality responsible for accessing the process data represented by the LocalResources. The LocalResources represents the external part that has a very broad usage purpose. For example, it may be any kind of process data source/destination, and to name a few Raw Data, OPC UA Address Space Management, Azure cloud-based front-end, etc.

The AzureGateway functional package has been implemented based on the Consumer concept. This particular Consumer (PartBindingFactory) implements the IBindingFactory interface to gather the data recovered from the Message instances pulled from the Distribution Channel. The received data is driven to the Azure services using configured out-of-band' protocol. An instance of the IBindingFactory is responsible to create objects implementing IBinding that can be used by the Consumer to forward the data retrieved from NetworkMessag received over the wire to Azure services.

The proposed implementation of the Azure gateway proves that the DataRepository and associated entities, i.e. Local Resources, Consumer, Producer can be implemented as external parts, and consequently, the application scope may cover practically any concern that can be separated from the core OPC UA PubSub communication engine implementation.

IConfigurationFactory implementation

  • ConfigurationDataConsumer.BoilersSet.xml

attached to the project.

Current release

Note; This library is not considered to be published as the NuGet package.

Versioning

Authors

See also the list of contributors who participated in this project and the Acknowledgment section.

See also

IEncodingFactory and IMessageHandlerFactory: have been implemented in external common libraries and Consumer doesn't depend on this implementation - current implementation of the interfaces is localized as services using an instance of the interface.

In this example, it is assumed that is implemented to resolve references to any external services.

the library . In a typical scenario, this implementation should not be considered for further modification. The only open question is how to provide the name of the file containing the configuration of this role. This role uses an independent configuration file:

We use for versioning. For the versions available, see the page of the project.

- main contributor of this project.

Postół M., Szymczak P. (2021) Object-Oriented Internet Cloud Interoperability. In: Paszynski M., Kranzlmüller D., Krzhizhanovskaya V.V., Dongarra J.J., Sloot P.M. (eds) Computational Science – ICCS 2021. ICCS 2021. Lecture Notes in Computer Science, vol 12745. Springer, Cham.

Available on

ICCS 2021: INTERNATIONAL CONFERENCE ON COMPUTATIONAL Presentation is available on

Postół M. (2020) Object-Oriented Internet Reactive Interoperability. In: Krzhizhanovskaya V. et al. (eds) Computational Science – ICCS 2020. ICCS 2020. Lecture Notes in Computer Science, vol 12141. Springer, Cham;

Postół M. (2020) , presentation, DOI: 10.13140/RG.2.2.33984.56323

Mariusz Postol, chapter in book , Publisher: Lodz University of Technology Press; ISBN: 978-83-7283-999-2

Mariusz Postol, , , 2015,

API Browser: the preliminary code help documentation -

Reactive Networking of Semantic-Data Library
OPC UA PubSub
OPC UA PubSub Main Technology Features
Research Gateway: Object-Oriented Internet - Azure Interoperability
OPC UA PubSub standard
CrossHMI
Piotr Szymczak
CommonServiceLocator.IServiceLocator
IServiceLocator
UAOOI.Configuration.Networking
Semantic Versioning 2.0.0
Releases
Mariusz Postol
https://doi.org/10.1007/978-3-030-77970-2_43
ResearchGate
YouTube
DOI: https://doi.org/10.1007/978-3-030-50426-7_31
Object-Oriented Internet Reactive Interoperability
Machine to Machine Semantic-Data Based Communication: Comprehensive Survey
Computer Game Innovations 2018
Reactive HMI Android application example
Object Oriented Internet - on-line ebook
available for sponsors- consider joining
OPC UA Makes Complex Data Processing Possible
OPC Unified Architecture Specification Part 14: PubSub Release 1.04 February 06, 2018
OPC UA PubSub Main Technology Features
CommonServiceLocator NuGet package
Object Oriented Internet
3rd International Conference on Innovative Network Systems and Applications
IEEE Xplore Digital Library
DOI