Konfigurácia konekcie na EDA Server

Konfigurácia konekcie na EDA Server

Aby bolo možné cez SmartWeb sprístupniť hodnoty EDA vektorov (univerzálne REST/CometD API, gRPC, OData), musí byť nakonfigurované pripojenie zo SmartWebu na EDA Server. SmartWeb na komunikáciu s EDA Serverom používa proprietárnu knižnicu d2jeda.

[!WARNING] Verzia SmartWeb platformy musí korešpondovať s verziou EDA Servera (rovnaká verzia knižnice d2jeda je dodávaná s oboma).

Priame pripojenie na EDA Server

V režime DIRECT SmartWeb aktívne otvára spojenia na jeden alebo viac endpointov EDA Servera. Pre redundanciu a round-robin rozloženie záťaže je možné uviesť viacero záznamov.

smartweb: edaConnection: connectionMode: DIRECT connections: - host: edaserver.example.com # DNS názov alebo IP adresa port: 3130 watchdogFrequencySeconds: 30 # interval pingu pre udržanie TCP spojenia cez firewally - host: edaserver2.example.com port: 3130 watchdogFrequencySeconds: 30

Vlastnosť

Popis

Vlastnosť

Popis

connectionMode

DIRECT — SmartWeb sa aktívne pripája na EDA Server.

connections[].host

Hostname alebo IP adresa EDA Servera.

connections[].port

TCP port, na ktorom EDA Server počúva.

connections[].watchdogFrequencySeconds

Interval pingu v sekundách; bráni NAT/firewallom v zrušení nečinných TCP spojení.

connections[].certificatePath

Voliteľná cesta k verejnému X.509 certifikátu (.crt) pre TLS-šifrované spojenia.

V režime DIRECT SmartWeb spravuje EDA konekcie automaticky: pri prerušení spojenia sa SmartWeb pokúša o opätovné pripojenie s jednominútovým timeoutom. EDA požiadavky sú medzi konekcie rozdeľované round-robin spôsobom.

Reverzné pripojenie z EDA Servera

V režime REVERSE SmartWeb otvorí počúvajúci port; strana EDA sa naň pripája. Keďže EDA Server nedokáže priamo nadviazať reverzné spojenie, na premostenie oboch endpointov sa typicky používa linuxový nástroj socat.

smartweb: edaConnection: connectionMode: REVERSE connections: - host: 172.16.1.179 # binding rozhranie na strane SmartWebu port: 3130 watchdogFrequencySeconds: 30 certificatePath: config/cert/eda-server.crt # voliteľné, pre TLS

Šifrované (TLS) pripojenie

Pre TLS-šifrovanú EDA komunikáciu vygenerujte X.509 pár kľúčov na strane EDA (viď Nastavenie zabezpečenej komunikácie (SSL/TLS)), distribuujte verejnú časť (.crt) do SmartWebu a odkážte sa na ňu cez certificatePath. TLS podporujú oba režimy — DIRECT aj REVERSE.

smartweb: edaConnection: connectionMode: DIRECT connections: - host: edaserver.example.com port: 3130 certificatePath: config/cert/eda-server.crt watchdogFrequencySeconds: 30

Reverzné pripojenie cez socat

EDA Server sa nedokáže priamo pripojiť späť na port vystavený SmartWeb aplikáciou (knižnicou JEDA). Na premostenie počúvajúceho portu EDA a počúvajúceho portu SmartWebu sa používa nástroj socat. Nasledujúca systemd unit udržiava socat trvalo spustený — socat ukončí svoju činnosť, akonáhle sa jeden z pripojených socketov zatvorí:

/etc/systemd/system/socat.service

[Unit] Description=socat bridge between EDA server and SmartWeb After=network.target [Service] ExecStart=/usr/bin/socat -d -d \ TCP:localhost:3121,forever,keepalive \ TCP:smartweb.example.com:3300,forever,keepalive Restart=always RestartSec=2 [Install] WantedBy=multi-user.target

Príklad: SmartWeb s priamou EDA konekciou + gRPC

Nasledujúci úryvok application.yaml konfiguruje JAPI konekciu na D2000 (pre archívne dáta) aj EDA konekciu (pre EDA vektory) a sprístupňuje gRPC API na porte 9090.

server: port: 8443 smartweb: edaConnection: connectionMode: DIRECT connections: - host: 172.30.30.10 port: 3121 connections: - host: 172.30.30.10 port: 3120 authentication: authModes: - AUTH_CREDENTIALS_IN_SESSION apiKeys: enabled: true application: grpcApi: configItems: - enabled: true host: "0.0.0.0" port: 9090 ssl: enabled: true keyStore: path: cert/keystore.p12 password: changeit keyAlias: smartweb clientAuth: OPTIONAL accessFilter: allowedD2EdaVectorReadCodes: ["*"] allowedD2EdaVectorUpdateCodes: ["*"]