第二階段第一個主軸選型比較
本文件用於比較第二階段第一個主軸應先選哪一條工作線,避免在第一階段剛完成後同時展開 MySQL、WebApi、ServiceHost、真實設備與 .NET 升級,導致範圍失控。
本文件只做選型分析與建議,不代表已決定實作,也不變更程式架構、資料模型、API、設定格式或啟動方式。
候選主軸
| 選項 | 主軸 | 核心目標 |
|---|---|---|
| A | MySQL 任務持久化 | 讓任務、節點歷程與錯誤結果可保存、可查詢 |
| B | ServiceHost / WebApi 邊界 | 建立正式背景執行或遠端操作入口 |
| C | 真實設備 Adapter 驗證 | 讓 Modbus TCP / UDP 等設備接近現場測試條件 |
| D | .NET 升級評估 | 降低 .NET 5.0 EOL 風險 |
| E | 維運與 Log 查詢 | 強化任務追蹤、錯誤判讀與工程支援效率 |
評估標準
| 評估項 | 說明 |
|---|---|
| 對正式化價值 | 是否能讓骨架更接近可實際使用 |
| 風險控制 | 是否會大幅牽動架構、資料模型或啟動方式 |
| 對後續依賴 | 是否是其他工作線的前置基礎 |
| 可驗證性 | 是否能建立清楚的 PoC 或驗收節點 |
| 範圍可控性 | 是否能在小步驟內完成並回報結果 |
選項比較
A. MySQL 任務持久化
目前使用者提供的資料庫版本為 MySQL 5.6.2,後續若選擇此主軸,套件選型、SQL 語法與 schema 欄位型態都必須以 MySQL 5.6.2 相容性為前提。
優點是補上 InMemoryTaskStore 重啟後資料消失的限制,且是任務查詢、錯誤追蹤、WebApi、ServiceHost 的共同基礎。風險是會碰到資料模型,需要先確認 schema 邊界,避免把案場邏輯寫死;MySQL 5.6 系列已屬舊版支援風險版本,正式化前需另做升級或版本風險評估。
建議驗收節點:P2-01 MySQL TaskStore PoC、P2-02 重啟查詢驗證。
B. ServiceHost / WebApi 邊界
優點是能把 ConsoleHost 驗證入口往正式執行模式推進。風險是會牽動啟動方式與部署方式;若沒有資料持久化,WebApi 查詢能力會受限。
C. 真實設備 Adapter 驗證
優點是最接近現場價值,可驗證第一階段 Adapter 抽象是否真的可用。風險是需要設備、測試窗口、通訊參數與安全保護,且容易把硬體問題誤判成架構問題。
D. .NET 升級評估
優點是降低 .NET 5.0 EOL 風險;風險是可能影響套件相容性,且升級本身不會直接增加業務功能。建議做獨立 PoC,不要和 MySQL / WebApi 同時大改。
E. 維運與 Log 查詢
優點是提升現場問題判讀效率,對 ServiceHost / WebApi / MySQL 都有幫助。風險是若沒有持久化,查詢能力仍有限。
建議排序
| 建議順序 | 主軸 | 理由 |
|---|---|---|
| 1 | MySQL 任務持久化 | 是 WebApi、ServiceHost、任務查詢與維運觀測的共同基礎 |
| 2 | .NET 升級評估 | 正式化前應先降低 EOL 風險,但可用獨立 PoC 控制風險 |
| 3 | ServiceHost / WebApi 邊界 | 有持久化與版本策略後,服務入口較好設計 |
| 4 | 真實設備 Adapter 驗證 | 需要設備與現場條件,建議在資料與錯誤追蹤更穩後進行 |
| 5 | 維運與 Log 查詢 | 可與 MySQL / WebApi 並行補強,但不宜單獨作為第一主軸 |
推薦方案
MySQL 任務持久化 PoC
推薦原因是它補上第一階段刻意延後的資料庫缺口,不需要立即改 WebApi、ServiceHost 或真實硬體,且能先建立資料邊界,避免後續 API / ServiceHost 沒有穩定查詢來源。
- MySQL TaskStore 資料保存範圍確認。
- Task / Node / Command / ErrorInfo schema 初稿。
- Repository 介面是否需要新增或沿用現有 TaskStore。
- PoC 驗收標準。
需先確認的問題
- 第二階段第一個主軸是否同意先選 MySQL 任務持久化。
- MySQL 第一版是否只保存任務歷程,不保存設備即時狀態。
- 是否保存 RawRequest / RawResponse。
- 是否保存 Adapter metadata。
- 是否先做 schema 文件與 PoC 設計,再進入程式實作。
- 是否確認第一版 PoC 以 MySQL 5.6.2 相容性為必要條件。
.NET升級是否要在 MySQL PoC 前先做獨立評估。
建議下一步
建議下一步做「MySQL TaskStore PoC 實作前確認清單」。
確認清單請參考:MySQL TaskStore PoC 實作前確認清單。
- 不改既有 public method 的前提。
- 是否新增 Infrastructure 專案或先放在既有範圍。
- MySQL schema 初稿。
- 測試資料與驗收指令。
- 第二階段文件網站進度欄位。