Konfigurácia konektorov

Konfigurácia konektorov

SmartWeb konektor je dlhožijúci komponent, ktorý dáva D2000 schopnosť dosiahnuť službu bežiacu mimo jadra D2000 — či už ide o Web Push endpoint, externé HTTP API alebo iný SmartWeb uzol. Watchdog periodicky pinguje podkladové spojenie; ak ping zlyhá, konektor sa automaticky znovu pripojí.

Všetky konektory sa konfigurujú pod smartweb.application.connectors.*. Táto stránka pokrýva D2 service konektor (registruje SmartWeb ako D2000 aplikáciu) a SmartWeb federačný konektor (preposiela požiadavky na iný SmartWeb uzol). Ostatné konektory sú popísané v:

D2 service konektor (core)

D2 service konektor registruje SmartWeb ako pomenovanú aplikáciu konfigurovateľného typu D2000 procesu. Po zaregistrovaní môžu D2000 ESL skripty objaviť SmartWeb inštanciu, posielať jej RPC volania a zistiť, keď je offline.

smartweb: application: connectors: coreConnector: local: enabled: true processType: CALC # CALC | KOM | DBM | DIAL | ARCH processName: "DEMO.SmartWebConnector" watchdogIntervalMs: 30000 # interval watchdog pingu

Vlastnosť

Popis

Vlastnosť

Popis

local.enabled

Zapne alebo vypne konektor.

local.processType

Typ D2000 procesu, ako ktorý sa SmartWeb registruje: CALC (výpočtový proces, typická voľba pre SmartWeb konektory), KOM (komunikačný proces), DBM (databázový manažér), DIAL (dial-in), ARCH (archív).

local.processName

Unikátny názov, pod ktorým je SmartWeb zaregistrovaný v D2000.

local.watchdogIntervalMs

Interval, v milisekundách, medzi watchdog pingmi na D2000 spojenie.

Ako to funguje

  1. Pri štarte sa konektor zaregistruje v D2000 s nakonfigurovaným processType a processName.

  2. D2000 ESL skripty môžu detegovať processName ako aktívnu aplikáciu a posielať jej RPC volania (ExecuteRpc("E.SmartWebEvent", "HandleData", …)).

  3. Watchdog periodicky pinguje podkladové spojenie; pri zlyhaní sa konektor automaticky odpojí a znovu pripojí.

  4. Pri vypnutí sa konektor korektne odregistruje z D2000.

SmartWeb federačný konektor

SmartWeb federačný konektor umožňuje jednému SmartWeb uzlu preposielať požiadavky (REST, OpenAPI, fallback API volania) na iný SmartWeb uzol. Typické prípady použitia:

  • Vysoká dostupnosť — primárny uzol preposiela požiadavky na záložný uzol, keď je jeho vlastné D2000 spojenie nedostupné.

  • Multi-tenant nasadenie — jeden vstupný SmartWeb smeruje požiadavky na špecializované SmartWeb uzly podľa tenanta alebo D2000 aplikácie.

  • Oddelenie DMZ — SmartWeb vystavený do internetu preposiela požiadavky na interný SmartWeb, ktorý má skutočné D2000 spojenie.

smartweb: application: connectors: smartweb: mode: LOCAL # LOCAL (bez preposielania) | REMOTE (preposlanie) remote: enabled: true targetUrl: "https://remote-smartweb.example.com" apiKey: "remote-node-api-key" timeoutMs: 30000 ssl: trustStorePath: config/cert/truststore.p12 trustStorePassword: changeit serializationFields: - SESSION_ID - AUTH_CONTEXT - REQUEST_BODY - REMOTE_ADDR - USER_AGENT

Vlastnosť

Popis

Vlastnosť

Popis

mode

LOCAL — spracovať požiadavky lokálne; REMOTE — preposlať ich na nakonfigurovaný vzdialený SmartWeb uzol

remote.enabled

Aktivuje vzdialené preposielanie.

remote.targetUrl

HTTPS URL vzdialeného SmartWeb uzla.

remote.apiKey

API kľúč autentifikujúci lokálny uzol voči vzdialenému uzlu. Vzdialený uzol musí mať tento kľúč nakonfigurovaný vo svojom smartweb.authentication.apiKeys.

remote.timeoutMs

Timeout požiadavky v milisekundách.

remote.ssl.trustStorePath / trustStorePassword

Truststore použitý na overenie TLS certifikátu vzdialeného uzla.

remote.serializationFields

Polia preposielané s každou preposlanou požiadavkou. Viď tabuľku nižšie.

Hodnoty serializationFields

Hodnota

Popis

Hodnota

Popis

SESSION_ID

Preposlať lokálne ID relácie

AUTH_CONTEXT

Preposlať autentifikačný kontext (meno používateľa, typ autentifikácie)

REQUEST_BODY

Preposlať celé telo HTTP požiadavky

REMOTE_ADDR

Preposlať IP adresu pôvodného klienta

USER_AGENT

Preposlať pôvodnú HTTP hlavičku User-Agent

Health checky

Stav každého zaregistrovaného konektora je súčasťou health-check endpointu SmartWebu GET /healthcheck. Každý konektor má v odpovedi vlastnú položku s názvom NODE_CONNECTOR_<názov-procesu> (bodky v názve procesu sú nahradené podčiarkovníkmi) a príznakom healthy:

{ "D2_API_CONNECTION": { "healthy": true }, "NODE_CONNECTOR_DEMO_SmartWebConnector": { "healthy": true } }

Konektor je healthy, keď má živé spojenie alebo (v redundantnom nasadení) beží na inom uzle; inak je healthy: false. Vypnutý konektor sa do odpovede nezahŕňa.