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: 30Vlastnosť | Popis |
|---|---|
|
|
| Hostname alebo IP adresa EDA Servera. |
| TCP port, na ktorom EDA Server počúva. |
| Interval pingu v sekundách; bráni NAT/firewallom v zrušení nečinných TCP spojení. |
| Voliteľná cesta k verejnému X.509 certifikátu ( |
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: 30Reverzné 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.targetPrí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: ["*"]