apache / apache/plc4x

[Feature Request]: Implement OPC-UA connection level discovery aside of main driver logic

Open
#1,520 0 comments 0 reactions 1 assignee Claimed by @splatch View on GitHub
java OPC-UA
Dominant language
Java
Stars
1.7k
Forks
504
Avg merge
10h 55m
Merged PRs (30d)
43

Description

### What would you like to happen?

The OPC-UA endpoint discovery is important to get a working connection towards UA server, however its current implementation already lead to multiple issues and contributed to overall stability of the driver.

Main problem with UA discovery is visible only at the lower level if option `discover' is set to 'true`. In such case we create a pre-flight TCP connection to obtain endpoint string and server certificate which we can use to launch desired connection. To my present knowledge, this is the only one reason we have that. In order to achieve above case we made adjustments with plc4j-spi as well as driver context (mutable) vs driver configuration (immutable).

I believe that sorting this puzzle before 1.0 would greatly simplify maintenance of driver and spi, cause current way requires close care of both places. Switching this code to `PlcDiscoverer` sounds like a much viable and reliable alternative. We already have working implementations of this SPI in ads and profinet drivers.

### Programming Languages

- [X] plc4j
- [ ] plc4go
- [ ] plc4c
- [ ] plc4net

### Protocols

- [ ] AB-Ethernet
- [ ] ADS /AMS
- [ ] BACnet/IP
- [ ] CANopen
- [ ] DeltaV
- [ ] DF1
- [ ] EtherNet/IP
- [ ] Firmata
- [ ] KNXnet/IP
- [ ] Modbus
- [X] OPC-UA
- [ ] S7

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.