= Configurazione di accesso client = Per configurare JSup ad essere client di un server [https://en.wikipedia.org/wiki/OPC_Unified_Architecture|OPC-UA] occorre innanzitutto selezionare il driver ''OPC-UA client'' per un [JSup Channels|channel], quindi definire un nuovo server OPC-UA con il pulsante ''New''. Nella finestra di dialogo ''OPC-UA Server properties'' occorre definire alcuni parametri: * Il '''nome''' assegnato in JSup al server OPC-UA. Una volta assegnato e definito il certificato client di sicurezza (vedere [#Sicurezza della connessione]) è bene non cambiare più questo nome, altrimenti verrà generato nuovo certificato che andrà accettato come fidato (''trusted'') sul server. * L''''endpoint URL''' definisce l'IP, la porta e il nome del server OPC-UA al quale ci si deve collegare. Per esempio, per collegarsi al server di esempio di Milo, si può usare la URL: opc.tcp://127.0.0.1:12686/milo * Il '''Request timeout''' definisce il timeout delle richieste al server: dopo questo tempo le richieste si considerano fallite. * Il '''Session timeout''' definisce il timeout richiesto al server per considerare morta la sessione con il client JSup. Si consiglia un minuto (60.000 ms). Il client invierà al server un segnale di keep alive della sessione con un intervallo di un quarto del tempo specificato come session timeout. * '''Wait on network fail''' definisce il tempo in millisecondi da attendere, in caso vengano rilevati problemi di connessione, prima di chiudere la connessione client e crearne una nuova. * '''Connection status tag''': un [JSup tag|tag] booleano opzionale che verrà impostato a true quando la connessione con il server OPC-UA è attiva e false altrimenti. I parametri definiti in ''Communication limits'' permettono di gestire come vengono inviate le richieste al server in caso di [JSup Channels|channel] con moltissimi [IOHook|I/O Hook], per evitare di sovraccaricare il server ed evitare che questo rifiuti delle richieste troppo grosse. I limiti impostati definiscono quanti tag verranno letti / scritti / sottoscritti in un unica richiesta, e quanto tempo si attenderà prima di inviare la richiesta successiva. = Sicurezza della connessione = Nella sezione ''Security'' della finestra di dialogo ''OPC-UA Server properties'' si possono definire i criteri di sicurezza da utilizzare nella comunicazione con il server: * '''Security policy''': * lasciare ''Auto'' per utilizzare la migliore policy di sicurezza disponibile da parte del server: verrà preferita Basic256Sha256, a seguire Aes128_Sha256_RsaOaep, Aes256_Sha256_RsaPss. * Scegliendo invece ''Max security'' verranno privilegiate policy più sicure, anche se più costose in termini di tempo di handshake e carico di CPU: verrà preferita Aes256_Sha256_RsaPss, quindi Aes128_Sha256_RsaOaep e Basic256Sha256. * Selezionando None la connessione avverrà senza sicurezza di autenticazione o cifratura. * Si può infine selezionare specificamente il protocollo desiderato. * Specificare '''Username''' e '''Password''' per autenticarsi con delle specifiche credenziali definite sul server. Se non vengono specificate la connessione non sarà autenticata (se si seleziona la policy di sicurezza ''None'') oppure verrà usata l'autenticazione tramite certificato client. * Il '''Certificate key store password''' definisce la password usata per proteggere la chiave privata del certificato client che JSup genera per collegarsi al server. * La '''Certificate duration''' definisce la durata in giorni del certificato generato automaticamente da JSup. Prima della scadenza questo certificato andrà rinnovato e fatto considerare fidato (''trusted'') da parte del server, altrimenti la connessione varrà interrotta fino al rinnovo / accettazione di un nuovo certificato. Note riguardanti la gestione della sicurezza della connessione da parte del client JSup: * Viene creata automaticamente la cartella
C:\JSup\settings\app-XXXX\opc-ua_sec\
che conterrà i certificati usati per la cifratura delle connessioni con i server OPC-UA: * certificati client generati per ogni server OPC-UA si trovano nel file ''key store'' chiamato
OPCUA-Client-XXXXXX-keyStore.pfx
dove XXXXXX è il nome assegnato al server OPC-UA * i certificati server vengono salvati inizialmente (alla prima connessione con il server) nella sottocartella rejected/, da qui vanno spostati manualmente, una volta riconosciuti, nella sottocartella trusted/certs/ Anche lato server (sul PLC per esempio) va reso ''trusted'' il certificato con il quale JSup si collega. Per esempio, per il server di test di Milo (org.eclipse.milo) bisogna spostare i certificati dalla cartella
C:\temp\server\security\pki\rejected\
alla cartella
C:\temp\server\security\pki\trusted\certs Le '''password''' del key store e quella relativa all'autenticazione con nome utente, vengono mostrate la prima volta quando le si digitano e poi se si apre la finestra di configurazione dell'OPC-UA server tenendo premuto il tasto ''Ctrl'' (Ctrl+click sul tasto ''Edit'' nel dialogo ''Channel info''. = Gestione subscription = La lettura dei dati può avvenire tramite la sottoscrizione, in modo che sia il server OPC-UA a notificarci i dati quando variano (e subito al momento della sottoscrizione), senza che JSup debba continuare ad interrogare il server. In questo caso l'''Update time'' del [JSup Channels|dialogo del channel] nella sezione ''Continuous read'' specifica il ''publishing interval'' richiesto al server OPC-UA. Per abilitare questa modalità di comunicazione: * selezionare ''Prefer subscription to read item'' nel dialogo ''Channel info'' del channel per il quale vogliamo attivare la sottoscrizione; * specificare il ''Sampling interval'': * -1 indica di usare l'intervallo specificato come ''Update time'' nel [JSup Channels|channel] * 0 indica di utilizzare l'intervallo predefinito del server OPC-UA. = Server nodes = JSup gestisce la lettura degli item di un server OPC-UA e la loro memorizzazione su file, per poterli poi selezionare quando si definiscono gli [IOHook|I/O hook] dei vari [JSup tag|tag]. Nella parte bassa della finestra di dialogo ''OPC-UA Server properties'' ci sono 4 pulsanti che permettono di: * '''Load from server''': da utilizzare quando il proprio notebook è connesso alla rete del server OPC-UA; viene aperta la connessione con il server e letto l'elenco degli item disponibili. Questa lista è visualizzabile con il pulsante ''View''. * '''Save to local file''': salva quanto letto dal server sul file XML
C:\JSup\settings\app-8200481319645859722\OPCUA-Server-XXXX-nodes.xml
dove XXXX è il nome assegnato al server OPC-UA. * '''Load from local file''': carica l'elenco degli item del server OPC-UA dal file XML dov'era stato salvato in precedenza. * '''View''': visualizza l'elenco degli item disponibili sul server (prima effettuare ''Load'' (dal server o dal file xml). Una volta salvata sul file, questa lista è disponibile tramite il pulsante ''Browse'' dalla finestra di dialogo dell'[IOHook|I/O Hook] per selezionare un item senza doverlo digitare a mano.