It is said that we are or soon will be citizens of a global village - a world considered as a single community linked by telecommunications. All applications designed atop of network communication can be grouped as follows:
- human-centric - applications where the information origin or information destination is an operator
- machine-centric - applications where information creation, consumption, networking, and processing are achieved entirely without human interaction
A typical human-centric approach is web-service supporting, for example, online bank account management. In this case, it is essential that any uncertainty and necessity to make a decision can be relaxed by human interaction. Coordination of multi-robot behavior in a work-cell or autonomous cars entering a service area fulfills the machine-centric scenario. It is crucial that, in this case, any human interaction is impractical or even impossible. This interoperability scenario requires a machine to machine communication (M2M) demanding multi-vendor devices integration.
The human-centric global village is almost done. However, the machine-centric global village still needs design and development effort. Information and Communication Technology (ICT) has provided society with a vast variety of distributed machine-oriented applications including the meaningful Machine to Machine (M2M) communication targeting distributed mobile applications in the context of new emerging disciplines, i.e. Industry 4.0 (I40) and Internet of Things (IoT). However, it is a real challenge if the mentioned machines are provided by a vast variety of vendors. The real challenge we are facing is how to produce independently smart things (i.e. machines, devices, appliances, assets, etc.) to guarantee that they are plug and produce ready. There are no doubts, it requires standardization. I believe that while producing the machines in compliance with the OPC Unified Architecture this issue is relaxed by applying the following OPC UA standardized concepts:
- Information Model - all about how to design a formal but mutually meaningful and shareable description of the considered process
- Address Space - all about how to instantiate and expose to the network a life replica of the process providing real-time data according to the above-mentioned formal description
The standardization process may be "paper-driven" or "community-driven". In both cases, standardization is indispensable but not sufficient. Let me recall that the foundation for the human-centric global village is just the Internet Protocol defined in 1981 and derived from the academic abstract knowledge and practitioners' concrete experience. It is worth stressing that it was published as an open-access document (RFC 791) and it has not been deprecated yet.
This umbrella project targets multi-vendor plug-and-produce machines interoperability scenarios targeting all aspects of the machine-centric global village concept aimed at providing reusable deliverables, training, best practice rules, prototyping, compliance testing and dissemination of valuable results.
I am a researcher who is passionate about applying knowledge and experience in building a machine-centric global village. Let's build it with you and for you. To join our effort and create an organization context I have launched the Object-Oriented Internet Partnership Program.
In this project, C# deliverables supporting a new Machine To Machine (M2M) communication approach based on the Data-Oriented Architecture (DOA) paradigm is to be researched. The goal is to provide a generic solution for publishing and updating information in a context that can be used to describe and discover it by software applications. It is implemented based on the OPC Unified Architecture (OPC UA)- an industrial integration standard that fulfills the proposed architecture requirements.
Note: the DOI number is a unique identifying number associated with the repository version. Visit the section
How to cite the software and associated documentation filesto learn how to create derived works and cite the origin.
OPC, OPC UA, M2M communication, Client-Server, Publisher-Subscriber, Data Oriented Architecture, DOA, AMQP, MQTT, PubSub, OPC UA PubSub, Semantic-Data, Industry 4.0, I4.0, Internet Of Things, IoT, IIoT, Global Data Discovery, Security
The table below lists the latest versions of the published Tools.
The table below lists the latest versions of the published NuGet packages.
The repository workspace are organized as it is illustrated in the Figure below.
Figure 1. Packages relationship
Next sections describe the content of the packages in the repository. The packages are loosely coupled. Each package contains applications (tools), libraries, and unit tests. All common resources are collected in the
This workspace provides API for common infrastructure management functionality aimed at Object Oriented Internet application deployment.
This workspace is aimed at implementing an editor of the
OOI Reactive Applicationconfiguration file. It contains types that supports the configuration management of application implementing the paradigm described in Semantic-Data Processing Architecture. 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. It supports also the data binding mechanism to define how the process data relate to the real world.
This workspace contains libraries and tools to find the data over the network. In the proposed approach the URI of the OPC UA Information Model is to be used as a unique key to browse the Global Data Discovery System (GDDS ֠an expanded version of GDS) to find recursively the destination
OPC UA Serveror
UA Data Applicationexposing the requested data.
This workspace contains library empowering the Industrial Internet of Things (IIoT) and Industry 4.0. as the result of using reactive networking paradigm. Intentionally it is designed on top of OPC UA Part 14 Pub/Sub protocol supporting interoperability with any product compliant with this specification. Seamless integration with AMQP, MQTT, etc. allows meaningful data transfer in the context of semantics defined using OPC UA Information Model.
SemanticDatafolder contains projects related to support the OOI Semantic-Data Processing Architecture. Processing of the OPC UA Data Outside of the Server context is based on the Semantic-Data concept. This project is aimed to workout deliverables supporting Process Data handling over Internet including but not limiting to:
- Data edition ֠UI allowing display and edition of any custom data
- Data prototyping - methods and tools to design custom data types
- Browsing of the Metadata to selectively access requested Process Data
- Data Oriented Architecture (DOA)
To validate a new model add the code to the USNodeSetValidationUnitTestProject and XML file to the XMLModels in this project. If the validation test does not recognize an error the code in the UANodeSetValidation must be improved.
In this case add issue or modify the code on your fork and add pull request after finishing.
Public API: The public API for this project is defined by the interface:
This interface may be used for dependency injection where validation of the input data conforming to the
UANodeSetschema is processed.
The project is dedicated to develop the OPC UA Information Model Factory Library. It is a library used as the dependency injection to produce OPC UA Information Model by a selected importer. The abstract API must be implemented by a classes providing functionality of Information Model creation.
The main challenge of the project OPC UA Address Space Model Designer (ASMD) is to offer the designers a user-friendly tool supporting all aspects of the OPC UA Address Space model designing process. It brings together: designing, learning, and deploying. Description of the main features of the tool is covered by the section Design and Deployment Support.
The OPC UA Address Space Model Designer (
ASMD) implements conceptual containers called solutions and projects to apply their settings. Any solution contains one or more projects and it manages the way the designer configures, builds, and deploys sets of related projects. Any project includes source files containing the model representation and related metadata such as properties and references to other projects. The designer Integrated Development Environment (IDE) provides tools that help you edit and manipulate models, namespaces, and add references to external resources.
PO) is an archetype that allows creation consistent, homogeneous real-time representation of the underlying process. This representation is a kind of a process state and behavior replica, which exposes real-time process data to the network using standardized interfaces like OPC Classic, OPC Unified Architecture, OPC PubSub, AMQP, MQTT, etc. In other words, it supports Machine to Sensors Connectivity (M2S), i.e. it allows an open, uniform, secure and standards-based communication solution between sensors, actuators, controllers and the upper layer applications.
- Process Devices Interconnection - synchronization of the process replica with the process state
- Process Simulation - simulation of the process behavior to recover unavailable data and ensure a safe testing environment
- Resource Monitoring - allowing to add information processing and networking infrastructure to be exposed consistently aggregated with the process replica
- Server to Server Interactions - supports a scenario in which
POis the Client of a Server
POconcept has been implemented as a generic communication engine used by the CAS CommServer Classic and Unified Architecture servers. This implementation is optimized for highly distributed applications. This implementation is maintained in the mpostol/ProcessObserver repository.
The GitHub repository commsvr-com/migration2os is aimed at the
CommServersoftware migration from on-premise subversion repository to GitHub and publishing it as the Open-Source Software (OSS). The members of the
CommServerfamily are to be converged with the Object-Oriented Internet paradigms and integrated with the solutions maintained in this repository.
OPC-UA-OOI.ConfigEditor is a package of software to manage the configuration of the Reactive Communication. The
OPC-UA-OOI.ConfigEditorwas written by CAS Lodz Poland. The mpostol/OPC-UA-OOI.ConfigEditor repository is aimed at the software migration from on-premise subversion repository to GitHub and publishing it as the Open-Source Software (OSS). After migration, this repository will be used to manage all activities addressing the software maintenance process as a plug-in of the ASMD.
To be compliant with the license of the repository the below copyright notice shall be included in all copies or substantial portions of the software and associated documentation files (the "Software").
Copyright (c) 2020 Mariusz Postol
In this section, you will learn how to cite the "Software" using the DOI number. A DOI number is a unique identifying number for the Software version. Because this repository has a DOI, use the DOI in your citation for the article or any derived work, like this:
Replace [year] with the current year and [Target Part Name] with the name (or names) of the files you are referring to.
Discussionsas a space to connect with other members of the community. I hope that using the
- ask questions you’re wondering about
- share ideas
- engage with other community members
- welcome others and are open-minded; remember that this is a community we build together
To follow any activity in the repository, switch on the
Watchfunctionality. If you find the project interesting, please star the repository. Starring a repository also shows appreciation to the repository maintainer for their work. You can star repositories and topics to keep track of projects you find interesting and discover related content in your news feed. Check out Saving repositories with stars to get more.
I hope it is a good place to prototype and converge the OPC UA communication technology with
Semantic-Data, Industry 4.0, Internet Of Things, Data Oriented Architecture, Plug and Play, Global Data Discovery, Selective Availability, etc. concepts. My goal is to bridge a gap between OPC UA technology and Industrial IT Application Domains.
The presented approach is a real proposal for a new technology wave based on the existing Internet infrastructure because it allows vendors to provide generic off-the-shelf products tested independently for interoperability.
I am a researcher and University associate who is passionate about applying knowledge and experience in building a Machine to Machine (M2M) meaningful interoperability based on OPC UA. Let's build it with you and for you. To join our effort and create an organizational context I have launched an open-access Object-Oriented Internet Partnership Program. Hence, maintenance of this repository and further development of the OPC UA Information Model Domain-Specific Language will be carried out under a broader concept described in the following article
Consider joining. Visit the section How to be involved to get more. I hope that thanks to this partnership program we will establish long-term mutually beneficial cooperation. Your participation is needed to make sure that the work will continue as expected. As a rule of thumb, the work priority is derived from community feedback.
I strongly encourage community participation and contribution to this project. First, please fork the repository and commit your changes there. Once happy with your changes you can generate a 'pull request'.
When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change.
Please note we have a code of conduct, please follow it in all your interactions with the project.
- Object-Oriented Internet This playlist on YouTube addresses research results on the systematic approach to the design of the meaningful Machine to Machine (M2M) communication targeting distributed mobile applications in the context of new emerging disciplines, i.e. Industry 4.0 and Internet of Things.
- 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. https://doi.org/10.1007/978-3-030-77970-2_43
- 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; DOI: https://doi.org/10.1007/978-3-030-50426-7_31
- Mariusz Postol, Machine to Machine Semantic-Data Based Communication: Comprehensive Survey chapter in book Computer Game Innovations 2018, Publisher: Lodz University of Technology Press; ISBN: 978-83-7283-999-2