4A WebApi / ServiceHost / Plugin Loader 決策確認表

返回

4A WebApi / ServiceHost / Plugin Loader 決策確認表

本文件承接 4A WebApi / ServiceHost / Plugin Loader 邊界分析,把第四階段正式入口前需要先確認的 7 項決策整理成可逐項回覆的確認表。

本文件只做決策確認與後續回填,不代表已同意新增 ServiceHost 專案、WebApi 專案、API route、Controller、middleware、Plugin Loader、外部 DLL 載入、認證授權套件、背景服務套件、正式 DB DDL、正式 Apply、敏感連線資訊保存或既有 public method 簽章調整。

0. 確認狀態

項目內容
文件狀態已確認
整理日期2026-06-06
確認日期2026-06-06
對應階段第四階段 4A WebApi / ServiceHost / Plugin Loader 前置確認
前置文件4A WebApi / ServiceHost / Plugin Loader 邊界分析
程式 repohs-device-control-template
程式 branchpoc/nmodbus-tcp
程式基準 commita158551 新增 3D Application contract 第一版
本次確認範圍WebApi 邊界、ServiceHost 邊界、Plugin Loader 邊界、Application 共用協調層、部署維運前置與停止線
確認結果使用者已確認採用建議路線,4B 可先進入最小 WebApi contract 與實作
確認後可進入第四階段 4B / 4C / 4D 執行切分表第四階段 4A / 4B 切分線上驗收紀錄第四階段標準 / 文件 / 施作範圍 / 驗收條件總表、WebApi contract 草案、ServiceHost contract 草案、Plugin Loader 信任模型 / metadata contract 草案或第四階段現場工具前置規劃
本次仍不做不新增 ServiceHost / WebApi、不新增 route、不建立 Plugin Loader、不載入 DLL、不改 public method 簽章、不改 config schema、不連 DB、不執行 DDL 或正式 Apply

1. 建議確認方式

使用者可直接回覆以下格式:

```text

4A 決策確認:

  1. 同意
  2. 同意
  3. 同意
  4. 同意
  5. 同意
  6. 同意
  7. 同意

備註:若有需要調整的項目,請寫在這裡。

```

若任一項不同意,建議寫成:

```text

第 N 項不同意,改為:...

```

2. 七項決策確認表

編號決策項建議定案若同意的影響若不同意需補充
14A 只做邊界分析與決策確認本節點只建立邊界分析與決策確認表,不進入程式實作。可安全完成 4A 前置確認,後續再選擇 WebApi、ServiceHost 或 Plugin Loader 其中一條進入 contract 草案。需說明是否要直接實作,以及允許建立哪個正式入口或專案。
2WebApi 第一版邊界WebApi 只做 HTTP request / response、權限、DTO mapping、查詢與控制請求轉交。未來 Controller 不寫 Workflow / Node 邏輯、不操作 Adapter、不直接碰 DB gateway。需說明是否允許 WebApi 直接呼叫 Core / Adapter / DB,以及如何保留錯誤、Log 與狀態一致性。
3ServiceHost 第一版邊界ServiceHost 只做背景執行生命週期、任務協調、adapter lifecycle、health 與 log / trace。可保持背景服務與 HTTP 入口分責;ServiceHost 不提供 HTTP。需說明是否要讓 ServiceHost 同時提供 HTTP,以及部署、安全、重啟與責任切分方式。
4Plugin Loader 第一版邊界先保留 metadata / contract 層,不載入外部 DLL,待信任模型與版本策略確認後再實作。可先整理 plugin 信任、版本、metadata 與狀態語意,不執行外部程式碼。需先確認來源信任、簽章、版本、錯誤隔離、卸載與回復策略。
5Application 層作為共用協調層WebApi、ServiceHost、現場工具都應透過 HS.DeviceControl.Application contract,不重寫 Workflow 或 Adapter 操作。可維持任務狀態、錯誤碼、Log、Trace、設備狀態與測試一致。需說明各入口各自實作時,如何避免狀態分裂與流程邏輯重複。
6部署與維運前置建立正式入口前,先確認設定來源、環境變數、health、log、operator、host name、app version 與敏感資訊保存方式。可降低後續部署、安全與維運返工風險。需接受先實作入口再補維運規則可能造成的返工與安全風險。
7停止線維持4A 不新增正式入口、不改 public method 簽章、不改 config schema、不執行 DB DDL、不接真實硬體。可先完成文件、contract 草案與實作前確認,不跨過高風險邊界。需明確列出允許突破的停止線、原因、驗證方式與回復策略。

3. 本次確認結果

編號決策項確認結果
14A 只做邊界分析與決策確認同意,4A 文件型前置已完成並已推送文件 repo。
2WebApi 第一版邊界同意,4B 採最小 WebApi,透過 Application contract 承接,不直接操作 Core / Adapter / DB gateway。
3ServiceHost 第一版邊界同意,ServiceHost 留到 4C,不在本輪與 WebApi 混責。
4Plugin Loader 第一版邊界同意,Plugin Loader 留到 4D,不掃描 folder、不載入外部 DLL。
5Application 層作為共用協調層同意,WebApi 透過既有 Application contract 做 mapping。
6部署與維運前置同意,本輪不新增正式部署設定、不保存敏感資訊。
7停止線維持同意,本輪不做 DB DDL、ALTER TABLE、正式 Apply、ServiceHost 或 Plugin Loader。

使用者確認文字:

```text

確認項目依照您的建議

```

4. 確認後可進入的工作

順序工作範圍
14A 決策確認結果回填將使用者 1 至 7 回覆整理成本文件的確認紀錄。
2第四階段 4B / 4C / 4D 執行切分表已整理 WebApi 在 4B、ServiceHost 在 4C、Plugin Loader 在 4D 的建議順序與停止線。
3第四階段 4A / 4B 切分線上驗收紀錄已確認 Cloudflare Pages 首頁、4A 決策確認表、4B / 4C / 4D 切分表與 progress.json 可線上讀取。
4第四階段標準 / 文件 / 施作範圍 / 驗收條件總表已整理第四階段總標準、文件交付、4A / 4B / 4C / 4D 施作範圍與驗收條件。
5第四階段目標模式完成稽核表已確認文件型目標模式可收斂完成,並列出尚未授權的程式實作停止線。
6WebApi contract 草案已建立 4B WebApi contract 草案 / 實作前確認表,整理 API 類型、request / response DTO、錯誤格式、權限與停止線。
7ServiceHost contract 草案只整理背景生命週期、Adapter lifecycle、health、log / trace 與任務協調 contract,不建立正式服務。
8Plugin Loader 信任模型與 metadata 草案只整理信任來源、版本、metadata、registration 與錯誤隔離策略,不載入 DLL。
9第四階段現場工具 / 管理畫面前置規劃只釐清使用者、場景、權限與資料來源,不新增 Web UI 或 WinForms Debug Tool。

5. 仍需停止的項目

即使七項決策全部同意,除非使用者另外明確授權,仍不得自動執行以下項目:

6. 建議下一步

請先回覆 4A 七項決策確認。七項確認完成後,可先確認 第四階段 4A / 4B 切分線上驗收紀錄,再依 第四階段 4B / 4C / 4D 執行切分表 優先進入 WebApi contract 草案,並依序評估 ServiceHost contract 草案與 Plugin Loader 信任模型 / metadata contract 草案。