From 60d2fdf25cd74c24f33b8e6b84595141a43cb93d Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Wed, 3 Jun 2026 16:20:17 -0400 Subject: [PATCH] =?UTF-8?q?docs(audit):=20ServiceHosting.md=20=E2=80=94=20?= =?UTF-8?q?accuracy=20pass=20(host=20roles,=20historian=20sidecar=20bitnes?= =?UTF-8?q?s)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Structural (broken paths): - Line 73: ZB.MOM.WW.OtOpcUa.Driver.Historian.Wonderware.Client/Contracts/ → ZB.MOM.WW.OtOpcUa.Driver.Historian.Wonderware.Client.Contracts/ (contracts extracted to their own top-level project; no Contracts/ subfolder) - Line 73: ZB.MOM.WW.OtOpcUa.Driver.Historian.Wonderware/Pipe/ → ZB.MOM.WW.OtOpcUa.Driver.Historian.Wonderware/Ipc/ (directory renamed from Pipe/ to Ipc/) Verified: both new targets exist on disk. Code-reality (bitness): - Line 10: historian sidecar platform "x86 (32-bit)" → "x64 (64-bit)" Evidence: ZB.MOM.WW.OtOpcUa.Driver.Historian.Wonderware/ ZB.MOM.WW.OtOpcUa.Driver.Historian.Wonderware.csproj x64 with explicit comment: "x64 — AVEVA Historian 2020 ships an x64 build of aahClientManaged … The earlier x86 default was inherited from v1's Galaxy.Host bitness (MXAccess COM, retired in PR 7.2) and didn't reflect any constraint of the Historian SDK itself." Stale-status: - Line 69: removed "Task 63 traefik docs — TODO"; link retargeted to existing docs/v2/Architecture-v2.md (Traefik section present at line 114) - Line 77: removed "v2 rewrite tracked as plan Task 62" — install script ships complete at scripts/install/Install-Services.ps1 --- docs/ServiceHosting.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/ServiceHosting.md b/docs/ServiceHosting.md index eb0cc5ff..a4397ea2 100644 --- a/docs/ServiceHosting.md +++ b/docs/ServiceHosting.md @@ -7,7 +7,7 @@ A production OtOpcUa deployment runs **one binary per node**, plus the optional | Process | Project | Runtime | Platform | Responsibility | |---|---|---|---|---| | **OtOpcUa Host** | `src/Server/ZB.MOM.WW.OtOpcUa.Host` | .NET 10 | AnyCPU | Single fused binary. `OTOPCUA_ROLES` env decides what to mount: `admin` (Blazor + auth + control-plane singletons), `driver` (OPC UA endpoint + per-driver actors), or both. | -| **OtOpcUa Wonderware Historian** *(optional)* | `src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Historian.Wonderware` | .NET Framework 4.8 | x86 (32-bit) | Out-of-process sidecar exposing the Wonderware Historian SDK over a named pipe. Required only when `Historian:Wonderware:Enabled=true`. | +| **OtOpcUa Wonderware Historian** *(optional)* | `src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Historian.Wonderware` | .NET Framework 4.8 | x64 (64-bit) | Out-of-process sidecar exposing the Wonderware Historian SDK over a named pipe. Required only when `Historian:Wonderware:Enabled=true`. | Galaxy access still uses the separately-installed **mxaccessgw** sidecar (see `docs/v2/Galaxy.ParityRig.md`); the gateway owns the MXAccess COM bitness constraint (its worker is x86 net48). Nothing in the OtOpcUa repo carries that constraint anymore. @@ -66,15 +66,15 @@ Both admin and driver nodes expose: | `/health/ready` | ConfigDb reachable + cluster member state is `Up`. | | `/health/active` | Admin-role leader (the node Traefik or an HA LB should route traffic to). | -Used by Traefik for the active-leader-only routing pattern (see [Task 63 traefik docs](v2/Architecture-v2.md) — TODO). +Used by Traefik for the active-leader-only routing pattern (see [Architecture-v2.md](v2/Architecture-v2.md)). ## OtOpcUa Wonderware Historian (optional) -Unchanged from v1. Pipe IPC contract lives in `src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Historian.Wonderware.Client/Contracts/`; sidecar pipe handler in `src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Historian.Wonderware/Pipe/`. Install via `scripts/install/Install-Services.ps1 -InstallWonderwareHistorian`. +Unchanged from v1. IPC contract types live in `src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Historian.Wonderware.Client.Contracts/`; sidecar pipe handler in `src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Historian.Wonderware/Ipc/`. Install via `scripts/install/Install-Services.ps1 -InstallWonderwareHistorian`. ## Install / Uninstall -- `scripts/install/Install-Services.ps1 -Roles admin,driver` — installs `OtOpcUaHost`. v2 rewrite tracked as plan Task 62. +- `scripts/install/Install-Services.ps1 -Roles admin,driver` — installs `OtOpcUaHost`. - `scripts/install/Uninstall-Services.ps1` — stops + removes the host service (and the historian sidecar if installed). ## Logging