第二階段第一個主軸選型比較

比較 MySQL、ServiceHost / WebApi、真實設備 Adapter、.NET 升級與維運觀測的優先順序。

返回 docs

第二階段第一個主軸選型比較

本文件用於比較第二階段第一個主軸應先選哪一條工作線,避免在第一階段剛完成後同時展開 MySQL、WebApi、ServiceHost、真實設備與 .NET 升級,導致範圍失控。

本文件只做選型分析與建議,不代表已決定實作,也不變更程式架構、資料模型、API、設定格式或啟動方式。

候選主軸

選項主軸核心目標
AMySQL 任務持久化讓任務、節點歷程與錯誤結果可保存、可查詢
BServiceHost / 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 都有幫助。風險是若沒有持久化,查詢能力仍有限。

建議排序

建議順序主軸理由
1MySQL 任務持久化是 WebApi、ServiceHost、任務查詢與維運觀測的共同基礎
2.NET 升級評估正式化前應先降低 EOL 風險,但可用獨立 PoC 控制風險
3ServiceHost / WebApi 邊界有持久化與版本策略後,服務入口較好設計
4真實設備 Adapter 驗證需要設備與現場條件,建議在資料與錯誤追蹤更穩後進行
5維運與 Log 查詢可與 MySQL / WebApi 並行補強,但不宜單獨作為第一主軸

推薦方案

MySQL 任務持久化 PoC

推薦原因是它補上第一階段刻意延後的資料庫缺口,不需要立即改 WebApi、ServiceHost 或真實硬體,且能先建立資料邊界,避免後續 API / ServiceHost 沒有穩定查詢來源。

  1. MySQL TaskStore 資料保存範圍確認。
  2. Task / Node / Command / ErrorInfo schema 初稿。
  3. Repository 介面是否需要新增或沿用現有 TaskStore。
  4. PoC 驗收標準。

需先確認的問題

  1. 第二階段第一個主軸是否同意先選 MySQL 任務持久化。
  2. MySQL 第一版是否只保存任務歷程,不保存設備即時狀態。
  3. 是否保存 RawRequest / RawResponse。
  4. 是否保存 Adapter metadata。
  5. 是否先做 schema 文件與 PoC 設計,再進入程式實作。
  6. 是否確認第一版 PoC 以 MySQL 5.6.2 相容性為必要條件。
  7. .NET 升級是否要在 MySQL PoC 前先做獨立評估。

建議下一步

建議下一步做「MySQL TaskStore PoC 實作前確認清單」。

確認清單請參考:MySQL TaskStore PoC 實作前確認清單