第二階段規劃總覽

第一階段驗收完成後的第二階段規劃架構、優先順序、待確認決策與驗收節點。

返回 docs

第二階段規劃總覽

本文件用於第一階段驗收完成後,整理第二階段的規劃架構、優先順序、待確認決策與驗收節點。

第二階段不應一次把所有長期平台功能全部導入,而是把第一階段已完成的控制骨架,逐步推進到可保存、可查詢、可服務化、可接真實設備、可被現場人員驗證的狀態。

第二階段定位

第一階段已完成「可驗收的共用控制骨架」。

讓控制骨架具備正式化前的持久化、服務入口、真實設備驗證與維運可觀測能力。

第二階段仍不建議直接擴張成完整中央平台;多案場管理、報表、權限系統、完整 Web UI 可列為第三階段或長期平台。

建議優先順序

優先序主題建議原因是否需先討論
1MySQL 任務持久化第一階段目前使用 InMemoryTaskStore,重啟後資料消失;若要進入正式化,需要保存任務與節點歷程
2ServiceHost / WebApi 邊界需要決定正式背景執行入口,以及是否提供遠端啟動、查詢、取消 API
3真實設備 Adapter 驗證Modbus TCP 第一版已完成模擬器驗證,下一步需接近現場通訊條件
4.NET 升級評估.NET 5.0 已 EOL,正式化前應評估升級到受支援版本
5維運與 Log 查詢第一階段 Log 可追蹤,但第二階段需要更容易查詢任務歷程、錯誤原因與設備狀態

建議分成五條工作線

資料持久化線

目標:讓任務、節點歷程、設備命令結果與錯誤資訊可保存、可查詢。

目前資料庫版本限制:MySQL 5.6.2。第二階段若優先做 MySQL 任務持久化,SQL 語法、欄位型態、套件選型與測試環境都需以 MySQL 5.6.2 相容性為前提。

第一版建議只做 Task execution record、Node execution record、Command execution record、ErrorInfo snapshot;暫不做報表、多案場查詢、權限與長期資料歸檔。

服務入口線

目標:從 ConsoleHost 驗證入口,逐步過渡到正式背景執行入口。

模組第二階段定位
ConsoleHost保留為 Debug / 人工驗證入口
ServiceHost正式背景執行入口候選
WebApi遠端啟動、查詢、取消任務入口候選

需先確認 ServiceHost 與 WebApi 先後順序、API 是否只供內部使用、任務取消 / 暫停 / 恢復是否列入第二階段,以及 API 回傳格式是否沿用 Result / ErrorInfo。

真實設備 Adapter 線

目標:把第一階段已完成的 Adapter 抽象與 Modbus TCP 第一版,推進到可接近現場驗證。

技術升級線

目標:評估 .NET 5.0 升級路線,降低正式化風險。建議不要與 MySQL / WebApi 同時大改,避免問題來源混在一起。

維運與觀測線

目標:讓現場或工程人員能快速知道任務為什麼成功、失敗或卡住。

第二階段不建議一次做的項目

項目不建議原因
完整 Web UI會拉大前端、權限、部署與使用者流程範圍
多案場管理需定義租戶、案場、設備群組與權限,超出第二階段核心
報表統計需先有穩定資料模型與持久化資料
完整權限系統需先確認 WebApi / ServiceHost 是否正式導入
自動更新與安裝包需等執行模式與部署方式確定

建議驗收節點

驗收節點驗收目的預期成果
P2-01 MySQL TaskStore PoC確認任務與節點歷程可保存重啟後仍能查詢任務紀錄
P2-02 MySQL schema review確認資料表不過度耦合案場邏輯schema 文件與測試資料
P2-03 MySQL 行前連線資訊確認確認測試 database、Host、Port、User、Password 提供方式與權限可進行最小連線測試與 Dry Run 建表測試
P2-04 ServiceHost 啟動 PoC確認背景入口可載入設定並啟動流程可啟動、停止、記錄錯誤
P2-05 WebApi 邊界設計確認 API 不把核心流程邏輯寫入 ControllerAPI contract 文件
P2-06 真實設備 Adapter 驗證確認 Adapter 行為接近現場需求實際讀寫、錯誤碼、Log 紀錄
P2-07 .NET 升級 PoC確認升級後測試仍通過升級評估報告

需要使用者先確認的決策

  1. 第二階段是否優先做 MySQL 持久化。
  2. MySQL 5.6.2 是否為 PoC 與正式環境共同版本。
  3. MySQL 是否只保存任務歷程,還是也保存設備狀態與原始通訊資料。
  4. MySQL 測試 database 是否已建立,並由使用者提供 Host / Port / Database / User / Password。
  5. MySQL PoC 帳號是否具備 SELECT / INSERT / UPDATE / CREATE / ALTER / INDEX 權限。
  6. ServiceHost 與 WebApi 哪一個先做。
  7. 第一個真實設備驗證對象是 Modbus TCP、UDP,還是其他設備。
  8. .NET 5.0 是否在第二階段先升級。
  9. 第二階段是否仍維持 ConsoleHost 作為主要人工驗證入口。

建議下一步

建議先做「第二階段工作拆解與優先順序確認」,不要立即開資料庫或 WebApi 實作。

第二階段第一個主軸選型比較請參考:第二階段第一個主軸選型比較

若同意第一主軸先走 MySQL,實作前確認請參考:MySQL TaskStore PoC 實作前確認清單

MySQL 套件選型分析請參考:MySQL 套件選型分析

MySQL Schema 自動建表設計請參考:MySQL Schema 自動建表設計

MySQL schema Class 初稿請參考:MySQL schema Class 初稿

MySQL 行前連線資訊確認請參考:MySQL 行前連線資訊確認

  1. 先確認第二階段第一個主軸:MySQL、ServiceHost / WebApi、真實設備 Adapter、或 .NET 升級。
  2. 針對選定主軸建立實作前確認清單。
  3. 確認不改動第一階段既有 public method、設定格式與啟動方式,除非使用者明確同意。
  4. 建立第二階段進度儀表欄位與驗收節點。

第二階段進度條規則

文件首頁需顯示第二階段獨立進度條,避免只看到第一階段 100% 或長期總進度。

第二階段進度由 progress.json 人工維護,只有完成可驗收節點、文件決策正式確認或程式功能完成並通過測試後才更新。

目前第二階段進度為 22%,代表已完成第二階段規劃總覽、第一主軸選型、MySQL TaskStore PoC 實作前確認清單、MySQL 5.6.2 相容性限制整理、MySQL 套件選型分析、MySQL Schema 自動建表設計、MySQL schema Class 初稿與 MySQL 行前連線資訊確認文件;尚未取得實際連線資訊,也尚未進入 Schema Attribute 程式實作。