OPC UA Server
Integration
Agenda
- Fetching data from OPC UA
 - Location of OPC UA Client
 - Cloud event ingestion pipeline
 
Fetching data from OPC UA
Subscription-based approach

Fetching data from OPC UA
Subscription-based approach
Pros:
- No unnecessary calls to OPC UA Server
 - Instant granular updates exactly when variable changes
 
Cons:
- More complex architecture and need for aggregation of single variable updates to project state of the system
 - Need to maintain state of the system locally as a part of client
 - Needs failover scenario
 
Fetching data from OPC UA
Subscription-based approach with incremental updates

Fetching data from OPC UA
Subscription-based approach with incremental updates
Pros:
- No unnecessary calls to OPC UA Server
 - Instant granular updates exactly when variable changes
 - Simple implementation of OPC UA Client
 
Cons:
- More complex processing architecture on the backend
 - Needs failover scenario
 
Fetching data from OPC UA
Periodic fetch approach

Fetching data from OPC UA
Periodic fetch approach
Pros:
- Simpler architecture
 - No need to maintain local state as part of the OPC UA Client
 
Cons:
- Unnecessary calls to OPC UA Server when no changes are observed
 - Needs failover scenario
 
Placement of OPC UA Client
Co-located with AGV and OPC UA Server

Placement of OPC UA Client
Co-located with AGV and OPC UA Server
Pros:
- Lower latency between OPC UA Server/Client
 - Better resilience to outages in Internet connection
 
Cons:
- More complex architecture at the edge
 - More challening maintenance of OPC UA Client at the edge
 - Need to create multiple clients if there are AGVs that are not co-located
 
Placement of OPC UA Client
Located in Cloud environment

Placement of OPC UA Client
Located in Cloud environment
Pros:
- Simpler architecture
 - Can support data ingestion from multiple OPC UA Servers
 
Cons:
- Higher communication latency between OPC UA Server/Client
 - Less resilience to Internet connection outages
 
Ingestion pipeline
IoT-hub based - managed services

Ingestion pipeline
IoT-hub based - managed services
Pros:
- Managed Services
 - Elasticity due to additional data store
 - Ability to extend via Stream Analytics
 
Cons:
- Lock-in to Azure-specific services
 - Potential limitations of Azure-specific services
 
Ingestion pipeline
Simplified - managed services

Ingestion pipeline
Simplified - managed services
Pros:
- Managed Services
 - Simplicity
 - Possibility to extend by evolving architecture
 
Cons:
- Lock-in to Azure-specific services
 - Potential limitations of Azure-specific services
 - It is recommended by Microsoft to use IoT Hub
 
Ingestion pipeline
HDInsight-based - self-managed services

Ingestion pipeline
HDInsight-based - self-managed services
Pros:
- Elasticity and support for multiple tools
 - Extensibility
 - Lack of lock-in to Azure-specific tools
 - Can still take advantage of Azure IoT Hub
 
Cons:
- Increased maintenance - lack of Azure-managed services
 - Longer time to implement
 
Potential format of data
- JSON
 - CSV
 - Apache Parquet (Column-oriented)
 
Potential shape of data
granular updates to specific variables
{
  "timestamp": "1588173179673",
  "iso_timestamp": "2020-04-29T15:12:59.673Z",
  "AGV_EagleOne.6000.[BS] BRAKES SIGNALS.Brake 1 - permission release": false
}Potential shape of data
full state of the system at each event
{
  "timestamp": "1588173179673",
  "iso_timestamp": "2020-04-29T15:12:59.673Z",
  "AGV_EagleOne.6000.[BS] BRAKES SIGNALS.Brake 1 - permission release": false,
  "AGV_EagleOne.6000.[BS] BRAKES SIGNALS.Brake 1 - automatic safety release": true,
  "AGV_EagleOne.6000.[BS] BRAKES SIGNALS.Brake 1 - manual safety release": false,
  ...
}Jetson Jetbot

OPC UA Server integration
By progressive
OPC UA Server integration
- 499