4C ServiceHost 決策確認紀錄
本文件記錄使用者於 2026-06-06 對第四階段 4C ServiceHost 目標模式的確認結果,作為 4C ServiceHost contract 草案 / 實作前確認表 進入程式 repo 結構檢查與最小 ServiceHost 第一版實作前的依據。
本次確認不代表同意建立 Windows Service 安裝、外部 queue、Plugin Loader、外部 DLL 載入、正式 DB DDL、正式 Apply、正式部署設定、敏感資訊保存或真實硬體控制。
0. 確認狀態
| 項目 | 內容 |
| 文件狀態 | 已確認 |
| 整理日期 | 2026-06-06 |
| 確認日期 | 2026-06-06 |
| 對應階段 | 第四階段 4C ServiceHost |
| 使用者回覆 | 4C 決策確認:1. 同意 ... 7. 同意 |
| 已完成前置 | 4C ServiceHost contract 草案 / 實作前確認表已建立 |
| 後續可進入 | 程式 repo 結構檢查、預計修改檔案回報、最小 ServiceHost 第一版實作與測試 |
1. 七項確認結果
| 編號 | 確認項目 | 建議 | 確認結果 |
| 1 | 4C 先以 ServiceHost contract 草案 / 實作前確認為準 | 同意後才可把 contract 文件視為 4C 起點。 | 同意。 |
| 2 | ServiceHost 第一版只做背景入口,不提供 HTTP | HTTP route 仍屬 WebApi。 | 同意。 |
| 3 | 第一版採 console / Generic Host 風格,不先做 Windows Service 安裝 | 降低 OS service、部署權限與服務註冊風險。 | 同意。 |
| 4 | ServiceHost 只呼叫 Application contract,不寫 Workflow / Node 邏輯 | 維持 Core / Application / Host 邊界。 | 同意。 |
| 5 | Adapter lifecycle 先用 mock / 已確認邊界驗證,不接真實硬體 | 禁止真實 PLC、COM、TCP、UDP、Modbus 連線。 | 同意。 |
| 6 | DB / Schema 只允許非破壞性 preview / readiness,不做 DDL / Apply | 避免啟動時修改 DB。 | 同意。 |
| 7 | 進入程式實作前,需先做程式 repo 結構檢查並回報新增 / 修改檔案 | 使用者確認後才可新增 ServiceHost 專案與測試。 | 同意。 |
2. 採用結論
- 4C 可以進入程式 repo 結構檢查。
- 最小 ServiceHost 第一版的目標是背景 lifecycle、health summary、Adapter lifecycle 驗證與安全停止線,不做正式部署。
- ServiceHost 不提供 HTTP;HTTP request / response 邊界仍由 4B WebApi 負責。
- ServiceHost 只透過
HS.DeviceControl.Applicationcontract 與已確認的 Adapter 邊界協調,不寫 Workflow / Node 邏輯。 - DB / Schema 只做非破壞性 readiness / preview;不執行 DDL、ALTER TABLE、Apply 或正式 DB 寫入。
- 真實 DB、真實硬體、Windows Service 安裝、外部 queue 與 Plugin Loader 均需另行確認。
3. 下一步
依本確認紀錄,下一步先盤點程式 repo:
HS.DeviceControl.Application是否已有可供 ServiceHost 呼叫的 Task / Device / Health / Schema contract。.sln與src//tests/是否適合新增 ServiceHost 專案與測試專案。- 是否能在不新增外部套件的前提下完成 console / Generic Host 風格背景入口。
- ServiceHost tests 是否能用 fake Application service 與 mock Adapter 驗證 lifecycle,不污染 production contract。
盤點完成後,需先回報預計新增 / 修改檔案與原因,再進入最小 ServiceHost 第一版程式修改。