OPC-UA protocol S/W and microservices

Description

In these days, various data transmission protocols are used in the factory system according to the vendors and machines. To make efficient communication scheme from the data srouce to the data service for smart factory solution, data protocol shoud be integrated one way. OPC-UA( Open Platform Communication United Architecture ) is one of the well-known data tranmission protocol for industrial technology. It can be the most desirable way with very high possibility, we expect. The OPC-UA protocol could be used entire smart factory data pipeline ( industrial things - edge device - cloud service ), so the microservices that used OPC-UA protocol could be located in the device service layer and the export service layer either. Therefore, the code repositories are separated into protocol S/W part and microservice part. The protocol S/W is provided with Java and C ( based on open62541, until Feb. 2018) version. For the Java version protocol S/W, it is based on the OPC-UA milo open source. The external open sources are not included in the repository, when you try to build protocol S/W, the milo open source will be downloaded in your build environment. And the microservices are provided as Device Service ( based on Device Service SDK of EdgeX ) and Export Service ( planned ). Also when you try to build the OPC-UA device service, the OPC-UA protocol S/W is automatically downloaded. 

Requirements

for OPC-UA protocol S/W

for OPC-UA device service

Design

The attached documents describe the high level design consideration.


Code repository

https://github.com/edgexfoundry-holding/protocol-opcua-c

https://github.com/edgexfoundry-holding/protocol-opcua-java

https://github.com/edgexfoundry-holding/device-opcua-java

Current status

Command Data Model

Command Data Model is for command of metadata. It will get you a easy expression of your request or response data which has a lot of categories and attributes. And Also, it's good at expressing a complex data which has depths. because Attribute Category can contain another Attribute. It provides some mandatory categories in below.

Code repository

https://github.com/edgexfoundry-holding/datamodel-command-go

https://github.com/edgexfoundry-holding/datamodel-command-java

Current status

Data Representation for AutomationML

Data Representation is for offering the schema the collected data in manufacturing domains in a standardized way. Currently Smart Factory Project has provided AutomationML, which is one of the global standard data representation in manufacturing industries. Per language, Data Representation with AutomationML is a library, which provides the way to present raw data (key/value based) to AutomationML standard format. C++, Go, Java, and Node.js libraries of Data Representation for AutomationML are bindings written over the C library of Data Representation for AutomationML.

Code repository

https://github.com/edgexfoundry-holding/datamodel-aml-c

https://github.com/edgexfoundry-holding/datamodel-aml-cpp

https://github.com/edgexfoundry-holding/datamodel-aml-go

https://github.com/edgexfoundry-holding/datamodel-aml-java

https://github.com/edgexfoundry-holding/datamodel-aml-node

Current status