Skip to content

YudSu/ComputerNetworkingFinalProject

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

ComputerNetworkingFinalProject

期末實作規劃 根據「社群式分散雲端訓練平台」專案的實作技術與目標,可將工作合理分成三等分,分別聚焦於伺服器端、客戶端與系統整合部分:

工作一:控制中心核心(後端邏輯 + 任務管理)

主要負責整個 Flask + WebSocket 伺服器骨架,讓 client 可以連線、註冊、接收任務並回傳結果。

  • 建立 Flask 專案與 Flask-SocketIO(或 Flask-Sock)初始化、事件路由(connect、disconnect、自訂 event)。
  • 設計 in-memory 資料結構:節點列表(id、名稱、狀態)、當前任務的分片資訊、結果暫存。
  • 實作「任務分配與整合」流程:
    • 接收到「開始任務」指令時切分資料。
    • 依節點清單用 emit/broadcast 發送子任務給各節點。
    • 收到節點回傳的 partial result 後更新狀態,全部到齊後計算總結果與統計。
    • 對前端提供必要的 Socket 事件或 REST API(例如:status_update、task_result)。

工作二:使用者節點(Client 端程式)

負責開發「節點程式」,讓任意一台電腦啟動 client 就能自動加入系統、接任務、執行、回傳結果,模擬多節點環境。

  • 開發 Python client(或簡單的前端 JS client,二擇一即可)與 WebSocket 連線流程。
  • 實作節點註冊協定:連線後自動送出 {type: "register", name: "Node_x"},並處理 server 回覆的確認訊息。
  • 實作任務處理:
    • 接收 {task_id, data_chunk} 後執行運算(例如:sum / mean / 模擬延遲),記錄執行時間。
    • 回傳 {task_id, partial_result, duration_ms} 給 server。
    • 加入簡單的 CLI 或小視窗,讓 Demo 時可以看到「節點正在工作 / 完成」的文字輸出。
    • 與工作一同定義好事件名稱與 JSON 格式,確保雙方介面一致。

工作三:前端 Dashboard + 整合與測試

負責「看得到的東西」與最終 Demo 的流暢度,包含 web 頁面、資料即時更新,以及整體系統壓力測試與劇本設計。

  • 開發伺服器端的 dashboard 頁面(單一 HTML + JS):
    • 顯示目前在線節點列表、狀態(Idle / Working / Done)、最近任務耗時。
    • 顯示一次任務的總結果(整體 sum/mean 等)與任務完成百分比。
    • 提供一個按鈕「Start Task」透過 WebSocket 或 HTTP 打 API 觸發任務開始。​
    • 用前端 Socket.IO client 收聽 server 的 status_update / task_update,即時更新 DOM。
  • 若有時間,加入簡單視覺化(例如用 div 寬度模擬柱狀圖,顯示每個節點貢獻或延遲)。
    • 負責「整體整合與測試」:
    • 規劃 Demo 流程、錄 Demo 影片。
    • 壓測:同時開多個 client、反覆按 Start Task,確認介面與後端都穩定。

About

計網期末專題

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors