彥佐涼
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    # 生物機電工程學系「蛋雞多場域資料處理介接系統」採購案 ## 封面 ## 目錄 :::info 評分項目對應建議書內容頁碼表 ::: ## 壹、概述 ### 一、專案名稱 國立宜蘭大學執行行政院農委會委託辦理109年度智慧農業家禽產業計畫-蛋雞多場域資料處理介接系統 ### 二、專案目標說明及預期成效 專案目標說明 提供貴機關專業且高安全性之蛋雞多場域資料處理介接系統,不僅後台管理者可以清楚了解每一環節之資料外,亦提供相關表單服務讓管理者監控及分析,用簡單請處的操作頁面,讓使用者可以輕鬆操作及使用本系統以利達到系統之高使用性,更透過資訊系統之管理,可以讓智慧農業家禽產業計畫更順利推展。 預期成效 * 除滿足全部需求書提及之需求外,更有多項優規功能與優化設計。 * 系統徹底以 API 形式實作,可於後台設定對外提供可允許訪問之資料,便於接下來的「智慧農業家禽產業計畫進行資料介接」、「商業智慧大數據分析」和「對外提供 Open Data 服務」。 * 系統完全以亞馬遜雲端運算服務(AWS)實作,並選用最新無伺服器架構,最大限度降低維運成本。 * 本系統建置完成後,首先將緩解合作業者日常資料輸入輸出業務,降低以人力進行資料整理的幅度,避免人為錯誤及提高工作效率,並且即時的圖表統計資訊將有助於管理人員了解整體作業脈絡,可以更及時做出反應與更精準做出決策。 * 在系統承載與效能方面,預計可供 2000 位使用者(包含內部作業人員與外部API介接請求)同時於系統上進行操作,除報表統計或批次排程功能之外,各項操作反應時間小於等於 5 秒。 * 透過無伺服器架構,最大限度降低維運成本,預計每年系統營運成本座落於 10 萬上下。 * 由於系統設計上已經預想好未來介接之情境與預留接口和保留足夠的系統彈性,預期將是未來「智慧農業家禽產業計畫」一大助力。 ## 三、專案範圍 ![](https://i.imgur.com/l7c04e2.png) 1. 投標廠商需配合本專案示範合作企業之指定場域,進行現場訪談,通盤了解專案需求,以利系統規劃分析與功能開發。 2. 本專案需針對企業各部門生產管理資訊,設計資料處理介接系統,內容包含資料數位化、建置資料庫、可視化操作介面、即時報(圖)表、權限管理等。 3. 系統設計需考量場域實際作業需求,並保留擴充彈性,以利未來與其他系統或場域介接整合。 ### 四、專案時程建議 :::danger 不知放得對不對 ::: ![](https://i.imgur.com/vPSuK3O.png) 1. 工作紀要 ![](https://i.imgur.com/spl74uF.png) ![](https://i.imgur.com/KOwW3Rh.png) 備註:黃底為機關規定完成事項及時間、橘底為本公司預計規劃之時間(實際計畫進行時間將提及工作計畫書中) 2. 甘特圖 ![](https://i.imgur.com/taSirdc.png) ![](https://i.imgur.com/yf8jODR.png) 本次專案將安排3次需求訪談、4次開發階段及2次全系統測試來進行專案服務。 ## 貳、需求建議 ### 一、專案工作規劃架構 1. 系統設計概念 ![](https://i.imgur.com/6ocA7lm.png) <center>系統模組功能架構圖</center> * 針對既有系統(如雞舍自動監控管理系統)或儀器(如洗選機台、蛋品質測定儀器)產出資料進行完善整理規畫,設計可容納所有資料及其資料格式的資料表,並適當加入 Identifier (識別子,如雞舍編號、養殖批號、飼料批號、產蛋批號、洗選批號)與紀錄日期,以利異種資料源可以交叉識別與分析。 * 在既有系統(如雞舍自動監控管理系統)或儀器(如洗選機台、蛋品質測定儀器)允許本系統存取操作或能夠以特定形式取得產出資料源的形況下進行全自動介接。 * 若既有系統(如雞舍自動監控管理系統)或儀器(如洗選機台、蛋品質測定儀器)存在特殊限制,無法以直連或直接方式串接時,將優先與原系統開發商或儀器廠商進行協商並研究解決方案。若仍無較佳解法,將採用兩段式的間接匯入方式來進行串接,即既有系統或儀器照舊匯出或列印既有檔案和報表,本系統再以檔案上傳/匯入或掃描的形式進行資料擷取,進而完成全自動介接。 * 既有的需靠人員手動輸入之紙本單據或紀錄,將以網頁表單的形式提供操作員線上填寫機制,以達成半自動介接。 * 若合作業者和資料來源業者(如飼料公司、合作配方師)願意修改作業流程,配合本系統直接登打網頁表單,而省去既有的紙本單據或紀錄,此部分的資料介接亦會是全自動介接的形式。 * 盡量以既有表單及紙本記錄的欄位與格式進行網頁表單的設計,降低合作業者對系統操作的學習門檻。 * 資料表或報表之檔案匯出支援 xlsx, csv, ods, xml, json 等通用格式。 * 本系統採用亞馬遜 AWS 雲端服務建置,採用最新無伺服器架構,最大限度降低營運成本。(雲端架構之詳細說明請參閱 5.1 系統架構) * 系統與資料庫備份也採用 Amazon S3 高可用(99.9%,即服務中斷可能性極低)高耐久性(99.999999999%,即資料不會損壞或丟失)儲存服務。(備份之詳細說明請參閱 6.1 備份計畫) * 系統備援採用分散式(即多應用程式節點)的軟體型備援機制,正常運作時各節點同時運作,若有一節點故障,其他節點會接替進行服務並發出通知警訊,避免服務中斷。 * 資料庫備援採用 MongoDB Sharding (即分散式儲存)之特性,單一分片(Shard)故障不影響資料庫運行。(備援之詳細說明請參閱 6.2 備援計劃) * 資料匯入或備份皆可透過後台進行排程設定,在指定之時間和頻率進行資料匯入或備份作業。 * 本系統所有功能皆以 API 實作,並遵守國家發展委員會「共通性資料存取應用程式介面(API)規範」,故後續與外部系統介接或進行大數據分析介接,都有一致性的規範與說明文件供參考,無須為了提供介接額外進行開發。 * 由於本公司具有大數據分析之相關經驗,故在本系統設計上已預留未來擴充與介接的考量,在設計上也以彈性可變化為出發點。 2. 系統模組設計 #### 蛋雞飼養部門模組 ![](https://i.imgur.com/fUnkzbj.png) <center>蛋雞飼養部門模組功能架構圖</center> 飼養管理資料匯入 * 需求參照 對應需求書「蛋雞飼養部門」之「農場飼養管理系統匯出資料」(表單 1)。 * 功能描述 1. 每日於「雞舍自動監控管理系統」取得飼養管理資料,並整合匯入至資料庫中。 2. 可透過「上傳特定格式檔案」或「手動進行資料登打」之方式進行資料匯入。 * 使用情境 每日飼養管理系統資料匯出作業。 * 差異比較 現有作法為「軟體自動更新」,本系統採全自動方式介接。亦接受半自動方式匯入(可應用於現有或歷史資料匯入)。 ![](https://i.imgur.com/JvV6x1q.png) <center>飼養管理資料匯入示意圖</center> 飼料簽收作業 * 需求參照 對應需求書「蛋雞飼養部門」之「飼料簽收單」(表單 2)。 * 功能描述 1. 每次入料(約三天)進行飼料簽收作業,並整合匯入至資料庫中。 2. 可透過「上傳特定格式檔案」或「手動進行資料登打」之方式進行資料匯入。 3. 若合飼料公司願意配合登打,則提供外部登打頁面讓飼料公司直接進行飼料配送簽收。 * 使用情境 飼料簽收作業。 * 差異比較 現有作法為「人員輸入」,本系統採半自動方式介接。 ![](https://i.imgur.com/KujQ4Wq.png) <center>飼料簽收作業示意圖</center> 飼料標準值設定 * 需求參照 對應需求書「蛋雞飼養部門」之「飼料設定標準值說明」(表單 3)。 * 功能描述 1. 不定期進行飼料標準值設定,並整合匯入至資料庫中。 2. 可透過「上傳特定格式檔案」或「手動進行資料登打」之方式進行資料匯入。 3. 若合作飼料廠配方師願意配合登打,則提供外部登打頁面讓配方師直接進行飼料標準值設定。 * 使用情境 不定期飼料標準值設定作業。 * 差異比較 現有作法為「人員輸入」,本系統採半自動方式介接。 ![](https://i.imgur.com/beJkOzx.png) <center>飼料標準值設定示意圖</center> #### 雞蛋洗選包裝部門模組 ![](https://i.imgur.com/dLtzXG3.png) <center>雞蛋洗選包裝部門模組功能架構圖</center> 洗選結果紀錄 * 需求參照 對應需求書「雞蛋洗選包裝部門」之「洗選報表」(表單 4)。 * 功能描述 1. 每天(12批次)操作「洗選機台」進行「洗選報表」資料匯出,並整合匯入至資料庫中。 2. 可透過「上傳特定格式檔案」或「手動進行資料登打」之方式進行資料匯入。 * 使用情境 每天之例行性洗選報表資料匯入作業。 * 差異比較 現有作法為「洗選機台直接列印」,本系統採全自動方式介接。亦接受半自動方式匯入(可應用於現有或歷史資料匯入)。 ![](https://i.imgur.com/54QbpY3.png) <center>洗選結果紀錄示意圖</center> #### 品保部門模組 ![](https://i.imgur.com/kG53IEB.png) <center>品保部門模組功能架構圖</center> 蛋品測定結果紀錄 * 需求參照 對應需求書「品保部門」之「蛋品測定匯出資料」(表單 5)。 * 功能描述 1. 每周操作「蛋品質測定儀器」進行「蛋品測定紀錄表」資料匯出,並整合匯入至資料庫中。 2. 可透過「上傳特定格式檔案」或「手動進行資料登打」之方式進行資料匯入。 * 使用情境 每天之例行性蛋品測定紀錄資料匯入作業。 * 差異比較 現有作法為「人員操作儀器匯出」,本系統採半自動方式介接。 ![](https://i.imgur.com/T2Ybq78.png) <center>蛋品測定結果紀錄示意圖</center> #### 統計分析模組 ![](https://i.imgur.com/G7PPYvz.png) <center>統計分析模組功能架構圖</center> 飼養效率分析表 * 需求參照 對應需求書「蛋雞飼養部門」之「飼養效率分析表」(表單 A)。 * 功能描述 1. 系統自動抓取每日之「洗選結果紀錄」進行資料彙整與報表分析。 2. 允許「設定參數」或「設定篩選條件」來進行分析結果查詢。 3. 提供視覺化圖表呈現數據意義。 4. 提供報表匯出功能。 * 使用情境 每日之例行性飼養效率分析作業。 * 差異比較 現有作法為「人員輸入彙整」,本系統採全自動方式介接。 ![](https://i.imgur.com/3gN4OhE.png) <center>飼養效率分析表示意圖</center> 洗選分析表 * 需求參照 對應需求書「雞蛋洗選包裝部門」之「洗選分析表」(表單 B)。 * 功能描述 1. 系統自動抓取每日之「洗選結果紀錄」進行資料彙整與報表分析。 2. 允許「設定參數」或「設定篩選條件」來進行分析結果查詢。 3. 提供視覺化圖表呈現數據意義,此外圖表為互動式,點擊不同節點或區域可顯示相應數據或運算結果。 4. 提供報表匯出功能。 * 使用情境 每日之例行性洗選分析作業。 * 差異比較 現有作法為「人員輸入」,本系統採全自動方式介接。 ![](https://i.imgur.com/iZCQdt6.png) <center>洗選分析表示意圖</center> 蛋品測定分析表 * 需求參照 對應需求書「品保部門」之「蛋品測定紀錄表」(表單 C)。 * 功能描述 1. 系統自動抓取每日之「蛋品測定結果紀錄」進行資料彙整與報表分析。 2. 允許「設定參數」或「設定篩選條件」來進行分析結果查詢。 3. 提供視覺化圖表呈現數據意義,此外圖表為互動式,點擊不同節點或區域可顯示相應數據或運算結果。 4. 提供報表匯出功能。 * 使用情境 每周之例行性蛋品測定分析作業。 * 差異比較 現有作法為「人員剪貼或直接手動輸入」,本系統採全自動方式介接。 ![](https://i.imgur.com/2hHKPh5.png) <center>蛋品測定分析表示意圖</center> 綜合分析表 * 需求參照 此為優規功能。 * 功能描述 1. 將「飼養效率分析表」、「洗選分析表」和「蛋品測定分析表」進行整合彙整,以 Identifier (識別子,如雞舍編號、養殖批號、飼料批號、產蛋批號、洗選批號)與紀錄日期作為資料關聯,進行跨表統計分析。 2. 允許「設定參數」或「設定篩選條件」來進行分析結果查詢。 3. 提供視覺化圖表呈現數據意義,此外圖表為互動式,點擊不同節點或區域可顯示相應數據或運算結果。 * 使用情境 用於觀察各場域「整體運作與流程是否符合預期」、「檢視是否有異常環節」、「調整及優化作業方式」和「分析新配給、新配額、或新配方是否有效」。 * 提供效益 現有作業流程為各部門各自產出獨立分析表,僅用於該部門內部分析與決策,然而各場域之分析表應加以整合進行進一步統整分析,以利檢視整體狀況與脈絡解析,更有利於對於未來進行智慧農業之大數據分析。 ![](https://i.imgur.com/c8cxXoP.png) <center>綜合分析表示意圖</center> #### 權限管理模組 ![](https://i.imgur.com/tkvPgs9.png) <center>權限管理模組功能架構圖</center> 權限設定 * 需求參照 對應需求書「權限管理功能」。 * 功能描述 1. 管理者可針對個別人員設定可讀取或可編輯範圍。 2. 系統設定方式由上而下,分別設置「模組權限」、「功能權限」和「讀寫權限」,若人員不具有上層權限,則一併不具有下層權限。 3. 權限設定後立即生效,使用者在進行下一次操作時,若權限已遭變更,則會將使用者轉跳至首頁。 * 使用情境 系統使用者應具有不同操作權限及可使用系統之範圍,權限設定允許進行相當細部的設定。 * 特色說明 1. 權限設定方式採勾選方式進行,每個核取方塊都有詳細說明告知管理者其對應的設定效果為何。 2. 若上層權限未選,則自動清空下層權限,節省管理者操作次數。 ![](https://i.imgur.com/8P9tsgS.png) <center>權限設定示意圖</center> 角色設定 * 需求參照 此為優規功能。 * 功能描述 1. 管理者可預先設定好角色權限,之後再針對使用者賦予其相應角色。 2. 允許使用者具有多重角色,多角色間的權限採聯集方式判定:即任一或全部角色具有某權限,則使用者具有該權限;全部角色皆無權限,則使用者不具有該權限。 * 使用情境 系統初始化後,管理者可優先進行角色的權限設定,之後再分配給使用者即完成權限設定。 * 提供效益 完善的權限設置與管理通常會配合使用角色的方式進行權限賦予,節省設定時間,並更清楚明瞭職責劃分。 ![](https://i.imgur.com/vQ9b5aL.png) <center>角色設定示意圖</center> #### 系統設定模組 ![](https://i.imgur.com/BIotZGO.png) <center>系統設定模組功能架構圖</center> 參數設定 * 需求參照 此為優規功能。 * 功能描述 提供管理者系統功能上的參數設定,供各模組功能使用。 * 使用情境 蛋場業者可調整系統的參數設定,進而符合實際業務需求。 * 使用目的 雖然目前僅一家合作蛋場業者使用系統,但日後可能有多家業者使用,故可自行調整系統參數的功能十分重要,可保留使用上的彈性。 ![](https://i.imgur.com/2DZ3FwK.png) <center>參數設定示意圖</center> 排程設定 * 需求參照 此為優規功能。由需求書「希望可設定調整資料庫更新頻率」進行延伸。 * 功能描述 系統上所有進行全自動或半自動資料串接之功能以及資料庫更新備份功能皆可進行排程設定,可自由指定執行時間與執行頻率。 * 使用情境 當業務流程變更時,可調整「資料串接」、「資料同步」或「資料備份」的時間點或頻率。 * 改良優化 所有系統自動化之功能皆可進行排程設定。 ![](https://i.imgur.com/aSXp72b.png) <center>排程設定示意圖</center> API 設定 * 需求參照 此為優規功能。由需求書「API介接規劃」和「人工智慧分析系統建置介接規劃」進行延伸。 * 功能描述 提供系統對外 API 的設定與配置。 * 使用情境 設定與配置對外 API 可訪問或提供之資料範圍和欄位。 * 使用目的 本系統未來有介接外部系統及銜接智慧農業家禽產業計畫的規劃,故必須提供可對外串接之 API 或 Open Data 以利介接。 ![](https://i.imgur.com/hjyoxMq.png) <center>API 設定示意圖</center> 操作歷程紀錄 * 需求參照 對應需求書「Log/history:每日產出log檔紀錄」。 * 功能描述 紀錄系統上所有使用者的操作軌跡,包含「新增/修改資料庫記錄」、「檔案上傳」和「機敏資料訪問」。 * 使用情境 每日例行歷程紀錄產出作業。 * 改良優化 如有偵測到異常行為,第一時間進行帳號鎖定,並主動發出通知警訊,例如「異常的使用者登入錯誤嘗試」、「陌生 IP 訪問」和「短時間內的大量 API 請求」。 ![](https://i.imgur.com/kSTDuda.png) <center>操作歷程紀錄示意圖</center> #### 使用者功能 ![](https://i.imgur.com/jFV9Yyb.png) <center>使用者功能架構圖</center> 使用者登入 * 需求參照 基本系統功能。 * 功能描述 供使用者進行系統登入。 * 使用情境 使用者登入。 * 改良優化 如果具可行性,可介接業者現有之身份識別系統進行登入(如員工識別卡掃描機)。 ![](https://i.imgur.com/KwUxMEE.jpg) <center>使用者登入示意圖</center> 使用者註冊 * 需求參照 基本系統功能。 * 功能描述 供使用者進行帳號註冊。 * 使用情境 使用者註冊。 * 改良優化 如果具可行性,可介接業者現有之人力資源管理系統之人員資料。 ![](https://i.imgur.com/7dLPgcj.jpg) <center>使用者註冊示意圖</center> 常用表單 * 需求參照 對應需求書「使用者可依需求將產生的表單,進行命名與設定為常用表單」。 * 功能描述 供使用者將特定之「表單設定」和「查詢結果」命名並儲存為常用表單,並分為「個人常用表單」和「系統內定常用表單(需具有相應權限)」兩種,日後使用者在進行日常作業時,即可快速查看表單,省去條件輸入和設定之步驟。 * 使用情境 日常表單查看作業。 * 改良優化 被列為「系統內定常用表單」之表單可於「綜合分析表」中作為資料源進行引用,提供更多元的分析報表。 ![](https://i.imgur.com/uBbif67.png) <center>常用表單示意圖</center> ### 二、相關設備規格 ![架構示意圖](https://i.imgur.com/rTXcExF.png) <center>架構示意圖</center> **架構說明** * Node.js Node.js 為輕量及快速的後端執行環境,搭配國際大廠亞馬遜雲端服務 AWS Lambda 無伺服器架構 (Serverless),可以免除一切硬體建置及維護所帶來的成本。此外 AWS Lambda 提供自動展延機制確保其高可用性,這意味者在服務受到高乘載時會自動水平擴展節點已提供更高的吞吐量,且在高峰過後自動恢復為一般配置以節省資源,達到系統資源的彈性。 * 亞馬遜雲端運算服務 (Amazon Web Services, AWS) * AWS Lambda * 無伺服器運算服務 Lambda 是亞馬遜的無伺服器運算服務,除了可將應用程式部署於雲端上之外,完全不需額外配置、設和維護虛擬機,是真正擺脫硬體及網管的雲端服務。 * 完全自動化的管理 Lambda 負責管理所有基礎設施,因此,再也不需要更新作業系統,也不必擔心需要隨著使用量的增加而進行軟硬體的擴充。 * 內建容錯能力 Lambda 內建容錯能力及異地備援,以保護應用程式不受個別機器或資料中心設施故障的影響,因此,Lambda 具有十分高的可用性,沒有維護時段或計劃停機時間。 * 自動調整規模 Lambda 只在需要時執行應用程式,並能自動擴展來承受系統壓力,無須任何設定且不會有冗長的部署和組態延遲的情況。 * 僅需按實際用量付費 Lambda 依照應用程式的持續執行時間計費,只需支付處理的請求數及執行程式碼所需的運算時間。 * Amazon Simple Storage Service (S3) 是亞馬遜的靜態檔案儲存服務,提供領先業界的可擴展性、資料可用性、安全性及效能。S3 的設計可達到 99.999999999% (11 個 9) 的耐久性。並且可進行靜態網站託管。 * Amazon Route 53 是亞馬遜的一個可用性高、可擴展性強的雲端網域名稱系統 (DNS) Web 服務。 * AWS Certificate Manager (ACM) 是亞馬遜用來處理複雜的建立、儲存和更新公有 SSL/TLS X.509 憑證和金鑰的服務,提供 Https 保護網站和應用程式。 * Amazon API Gateway 是亞馬遜的一種全受管的服務,可讓輕鬆地建立、發佈、維護、監控和保護任何規模的 API。 * MongoDB Atlas MongoDB 是一個 NoSQL 分散式資料庫,強大的讀寫能力可應付高強度的系統壓力。而 Atlas 是 MongoDB 公司的雲端資料庫服務。Atlas 按需付費、支持60多個全球區域、輕鬆擴縮容、支持多個公共雲、安全最佳實踐、自動備份和指定時間點回復等特性。 * 單頁應用(Single-Page Application, SPA) 單頁應用為目前網頁應用技術主流,相較於傳統網頁,單頁應用在初次加載頁面之後就僅以非同步方式叫用API來更新頁面,以最小所需資料更新頁面,屏除頁面刷新帶來的閃爍卡頓。此外,由於單頁應用全以 JavaScript 實踐,各種響應式互動功能可以輕易實現,提供使用者最佳的操作體驗。 * Angular Angular 為 Google 團隊維護的單頁應用解決方案,是目前最受歡迎的前端框架之一,相較於 React (由 Facebook 維護)或 Vue (由作者一人及社群維護),Angular 由 Google 最頂尖的開發人員維護,專門設計給企業及政府等級的應用程式,具有嚴謹及明確的架構規劃,易於整合及維護,同時可以減少伺服器端負載。 **架構比較** | | 實體伺服器 | AWS Lambda(無伺服器) | |:------------:|:--------------------------:|:--------------------:| | 硬體建置成本 | 昂貴 | 無 | | 硬體維護成本 | 昂貴 | 無 | | 使用成本 | 硬體成本+人事成本+授權費 | 按使用量計費 | | 高可用性 | 自行實作且並無實質保證 | 99.95% 可使用率 | | 延展性 | 實作難度高 | 自動延展 | | | SQL Server | MongoDB Atlas | |:------------:|:--------------------------:|:------------------------:| | 架構/性質 | 實體關聯式資料庫 | 雲端分散式資料庫託管 | | 硬體建置成本 | 昂貴 | 無 | | 硬體維護成本 | 昂貴 | 無 | | 使用成本 | 硬體成本+人事成本+授權費 | 依規格按月計費 | | 高可用性 | 自行實作且並無實質保證 | 自動化容錯和自我修復機制 | | 延展性 | 實作難度高 | 自動延展 | ## 參、管理建議 ### 一、工作小組 :::danger 還沒寫 看你要不要改放組織圖 ::: ### 二、工作項目劃分 :::danger 還沒寫 看你要不要改放工作項目 ::: ### 三、專案管理方式 1. 需求訪談 ![](https://i.imgur.com/D2Iod2v.png) 本公司在進行需求訪談所徵集的任何資料,皆會依照貴機關之相關規定辦理,如有涉及個人資料之部分,將符合法務部「個人資料保護法」之相關規定,本案預計進行三次需求訪談(實際情形經機關同意後辦理)並每場函送會議紀錄以利維護雙方之權益。 2. 與客戶端溝通方式 ![](https://i.imgur.com/SwkolO6.png) 圖說: 團隊非常在乎客戶的使用者體驗。在開發過程的迭代(Iteration)是以未來使用者為開發核心,運用使用者故事的實際運作,落實敏捷式開發何精實專案(Agile and Lean project)。 從使用者故事的生命週期,一開始的機會探索到深入產品挖掘,轉換有效軟體的故事 因此我們使用RUP疊代式開發法時,為了圍繞使用者客戶的實際體驗,團隊會用使用者故事對照(User Story Mapping)這項軟體開發的重要工具,目的是跟使用者和內部開發團隊之間有著明確共識,保持一致性,促使開發團隊進行良好溝通與對話,不會偏離真實使用者情境,甚至迷失在個別產品功能的莫名狂熱中,偏離了原始交付初衷。 3. 建置規劃 本專案係採用RUP疊代法開發,考量專案會在短暫時間完成開發作業。此過程由於時間較短,其定義問題和建構系統性解決方案無法如初期所預設之發展狀況,因此在開發時就必須預設需求會隨著開發進度而變更之,透過RUP「疊代式開發法」的發展模式,本團隊能進行滾動式管理的同時也對開發細則有更好的理解,更貼近第一線使用者真實需求,也能降低開發項目的系統性風險。 * 系統(網站)分析期 ![](https://i.imgur.com/OfRRcYR.png) * 系統(網站)設計期 ![](https://i.imgur.com/DdyNmYJ.png) * 系統(網站)發展期 ![](https://i.imgur.com/Ng83WET.png) * 系統(網站)安裝期 ![](https://i.imgur.com/jhk0qIe.png) * 系統(網站)導入期 ![](https://i.imgur.com/UEUlBgp.png) * 系統(網站)保固期 ![](https://i.imgur.com/7dmrluz.png) ### 四、專案驗收方式 針對本次專案之驗收方式,原則上依照貴機關之方式辦理,本公司於每一項會議及會議紀錄皆以正式公文之方式辦理,會議記錄訂於當日產出,每一階段之環節及交付項目與日期皆會先經貴機關同意後以正式公文之方式辦理,最後驗收文件將以公文書之方式連同相關須交付機關之文件一同送繳機關,以利機關進行後續驗收程序。 ## 肆、交付產品及交付時程 ### 一、交付項目及交付時程 :::danger 還沒寫,看你要不要放時程圖 ::: ### 二、工作時程及重要查核點 :::danger 還沒寫 看你要不要放甘特圖 查核點可以依照甘特圖分點寫一些項目 ::: ## 伍、教育訓練 :::info 依不同之課程分述其教學目標、大綱、時程、地點、講師和助教資歷、參與人員名單、設備需求。 ::: ![](https://i.imgur.com/43uADZT.png) 本系統建置完成後,將規劃舉辦2類教育訓練(一類針對系統管理者進行教育訓練另一類則為一般使用者,每種類別2梯次,共計4場),訓練時間、地點未來再與貴機關協調,並免費提供教育訓練所需教材(含系統操作手冊)電子檔,所需求之設備為電腦數台,以利學員可以線上實際操作。 ## 陸、成本分析 ### 一、成本項目 :::info 完成本案所需之軟體設計、建置、教育訓練人力、文件製作及稅捐等項目分列。另需依期末查核項目分列成本。 ::: :::danger 還沒寫 ::: ### 二、計費標準 :::danger 還沒寫 ::: ## 柒、保固後及系統維護計畫 :::info 應提出雲端系統維運費用計價方式。若以地端系統進行規劃,務必提出未來介接至雲端的建置經費估價。 ::: 1. 維運費用計價方式 * AWS Lambda 維運費用預估 AWS Lambda 以應用程式「佔用記憶體大小」、「執行時間秒數」與「請求呼叫此數計費」按量計費。 假設應用程式所配置的記憶體約 1 G,每個請求的執行時間約 1 秒,則每月預估費用級距如下表: |請求呼叫此數|每月預估費用| |---|---| |1 百萬|10.00 USD| |5 百萬|77.47 USD| |1 千萬|161.80 USD| |5 千萬|836.47 USD| |1 億|1679.80 USD| 以目前系統規模,預估每月座落於 5 百萬此請求數,故一年預估費用大約為 $929.64 USD。 * MongoDB Atlas 維運費用預估 MongoDB Atlas 以資料庫「記憶體大小」、「vCPU 核心數」與「儲存空間大小」按規格計費。 |規格名稱|記憶體大小|vCPU 核心數|儲存空間大小|每月預估費用| |---|---|---|---|---| |M10|2 GB|1|10 GB|$57.6 USD| |M20|4 GB|2|20 GB|$144.0 USD| |M30|8 GB|2|40 GB|$388.8 USD| |M40|16 GB|4|80 GB|$748.8 USD| 以目前系統規模,預計使用 M20 規格即可,故一年預估費用大約為 $1728 USD。 * AWS S3 維運費用預估 AWS S3 以「儲存空間用量」與「檔案下載流量」按量計費。 |計費項目|單位|每單位費用| |---|---|---| |儲存空間|每 GB|$0.023 USD| |檔案上傳|每 GB|免費| |檔案下載|每 GB|$0.09 USD| 假設系統具有 10G 靜態檔案(如表單、文件檔案供使用者下載)與每月 20G 的檔案下載流量,此外每月增加 50G 的系統與資料庫備份,則每月預估費用大約為: (10 X $0.023 USD) + (20 X $0.09 USD) + (50 X $0.023 USD X 累計月份) = $2.03 USD + ($1.15 USD X 累計月份) 一年預估費用大約為 $114.06 USD ($24.36 USD 用於靜態檔案下載;$89.7 USD 用於系統與資料庫備份) * 綜上,AWS 每年維運費用約為 $2771.7 USD,折合新台幣約為 $83151 TWD (假定匯率為 30) 2. 既有資料匯入計畫 1. 分析既有資料 將既有資料清點及彙整,並將資料內容與新系統上的資料庫欄位進行核對,如有無法確認的項目則向業者進行詢問與討論,清點過後之項目將紀錄在確認清單之上,以利後續核對資料轉移項目。 2. 對應至新資料庫 將分析過後的資料內容對應至新系統功能上,透過確認清單逐一核對是否所有功能項目都具有其對應。 3. 產生匯入指令碼 針對新資料庫產生其專用的資料匯入指令碼,避免手動或人為進行資料匯入造成額外的人為因素失誤,指令碼必須具有「可測試性」、「可驗證性」及「可監控性」之特質,不因任何因素(例如不同時間操作)造成不同的匯入結果。 4. 驗證資料正確性 撰寫資料檢查程式核對其匯入結果,確保資料匯入過程沒有造成任何資料丟失,程式驗證過後再經由人為校對抽查進行複檢。 3. API串接計畫 1. 建立API清單 將系統所有API進行統計紀錄,並建立API清單方便管理。 2. 建立API說明文件 將不同API之使用方式詳細記錄於介接文件之中,例如:「名稱」、「簡介」、「路徑(Path)」、「傳入參數」、「回傳結果」、「使用範例」,若有額外注意事項則特別醒目標註,以利日後維護調整時可以徹底了解介接方式。 3. 建立API叫用歷程 系統每次叫用API後將紀錄叫用歷程,以追蹤其API之可用狀態,若API叫用過程報錯或回傳異常資料內容,將會標註此API為不可用狀態,並於網頁系統上針對使用到該API之功能區塊顯示「系統修復中,造成 4. 備份計畫 1. 資料庫備份計畫 每小時進行差異備份,每日進行完整備份,備份保留一週,分別儲存於 AWS S3 雲端儲存及業者提供之本地端 NAS。 2. 應用程式備份計畫 每次版本更新進行完整備份,備份永久保留,分別儲存於 AWS S3 雲端儲存及業者提供之本地端 NAS。 3. 靜態檔案備份計畫 每次使用者進行檔案上傳進行完整備份,備份永久保留,分別儲存於 AWS S3 雲端儲存及業者提供之本地端 NAS。 5. 備援計劃 1. 應用程式備援計劃 採用軟體式備援,即建立至少兩個或以上之應用程式端點,以附載平衡的機制同時提供服務,在所有端點正常的情況下分攤請求處理,若任一端點異常,則系統仍會以現有可用之端點繼續分攤請求處理,直到異常端點復原,端點隨時使用 AWS CloudWatch 進行雲端監控其應用程式可用狀態,若偵測到異常,將第一時間通報相關人員。 2. 資料庫備援計劃 MongoDB 為分散式資料庫,可建立多個分片(Shard),即多個儲存節點來分散資料儲存,且可相護設定備援,單一分片故障不影響資料庫運行,且在故障分片軟硬體修復後,可靠剩餘的分片將該分片進行復原。本專案使用 MongoDB Atlas,是官方的雲端資料庫託管服務,具有自動的分片管理與監測機制,並且享有雲端服務之特性:無須進行軟硬體設備之維護。 6. 系統監控計劃 使用 AWS CloudWatch 進行雲端監控,每分鐘對應用程式發出檢測請求,系統接到檢測請求後會進行系統各項資源可用性檢查,例如資料庫存取和檔案存取,若偵測到異常,將第一時間通報相關人員。 ## 捌、人力分析 :::info 列明所有參與本專案工作項目人員之姓名職稱及投入之工時及人月數(以工作項目為橫軸,專案工作人員姓名為縱軸)。 ::: 專案組織架構圖 ![](https://i.imgur.com/8g7pD5c.png) 工作職掌 ![](https://i.imgur.com/3OGVWrX.png) 人員基本背景與參與重大案件 ![](https://i.imgur.com/H1LKvOl.png) ![](https://i.imgur.com/iAC7dch.png) 備註:人員詳細資訊請參照附錄 ## 玖、廠商實績 ### 一、廠商簡介 :::danger 還沒寫完 ::: 1. 公司介紹 艾諾比國際資訊貿易有限公司於108年11月成立,資本額為300萬元的一間新創公司。公司分為兩大營運事業體; 國際貿易事業群,主要進行貨物進出口業務與海關申報等業務等。軟體服務事業部的員工由一群資深專案經理、資深業務和資深工程師組成,員工皆畢業於國內外資訊相關科系,非本科系之員工也都受過資策會就業養成課程600小時以上的資訊相關職業訓練。員工過去皆曾任職過上市(櫃)公司擔任中大型專案執行經驗或國外資訊公司任職過。此外,團隊技術核心與美商Aix Cloud Technologies,CORP. 簽訂技術合作,公司也不定時的派遣員工至美國接受新的資訊技術訓練或透過網路進行線上交流。 3. 公司基本資料與營業項目 :::info | 公司 | 艾諾比國際資訊貿易有限公司 | | -------- | ------------------------------ | | 統一編號 | 85001775 | | 負責人 | 李期玲 | | 設立地址 | 台北市中山區北安路573巷21號1樓 | | 成立日期 | 2019年 | | 資本額 | 300萬 | | 營業項目 | I301010 資訊軟體服務業 | 放表格 ::: 3. 營運狀況(以萬元為單位) :::info 放表格 ::: 5. 人力素養分析表(投標當月為準) :::info 放表格 ::: ### 二、工作實績 ![](https://i.imgur.com/DEdfOny.png) ![](https://i.imgur.com/8XV3TZV.png) ![](https://i.imgur.com/ZPtVfvl.png) ![](https://i.imgur.com/ZgSkt39.png) 108課綱資訊網示意圖 ![](https://i.imgur.com/F8n2vhV.png) 學習歷程檔案示意圖 ## 拾、配合事項 :::info 列出專案執行期間,需配合提供的工作環境、設備及其他事項。 ::: :::danger 還沒寫 ::: ## 拾壹、提供本專案優規說明 :::info 請參考評分項目(如附件),依據下列表格提供貴公司建議書優於規格需求書之差異分析。 ::: |評分項目|原需求與規格|提供服務優於規格需求書或<br>不同部分的差異分析|建議書頁次|備註| |---|---|---|---|---| |1|由需求書「本專案規劃以建置雲端資料庫為優先考量」進行延伸|除了系統全面採用亞馬遜雲端服務開發之外,更使用最新的無伺服器架構,取代傳統的雲端虛擬機託管,可大幅將低維護及監控成本。||| |2|無提及|以統計分析模組集中統一管理各類分析表(飼養效率分析表、洗選分析表、蛋品測定分析表),此外更增加「綜合分析表」,可將各表進行整合彙整,進行跨表統計分析。||| |3|無提及|增加「角色設定」功能,管理者可預先設定好角色權限,之後再針對使用者賦予其相應角色,減少權限賦予步驟,並更易於管理。||| |4|無提及|增加「參數設定」功能,提供管理者系統功能上的參數設定,供各模組功能使用。||| |5|由需求書「希望可設定調整資料庫更新頻率」進行延伸|增加「排程設定」功能,系統上所有進行全自動或半自動資料串接之功能以及資料庫更新備份功能皆可進行排程設定,可自由指定執行時間與執行頻率。||| |6|由需求書「API介接規劃」和「人工智慧分析系統建置介接規劃」進行延伸|增加「API 設定」功能,可於後台設定對外提供可允許訪問之資料,便於接下來的「智慧農業家禽產業計畫進行資料介接」、「商業智慧大數據分析」和「對外提供 Open Data 服務」。||| ## 拾貳、附件/附錄(請自行增減) 一、參與專案成員之專長、履歷、學經歷及證照等證明文件影本。 :::info 放本次團隊的相關簡歷 ::: 二、承接相關專案經驗說明及其結案證明文件影本。 :::info 放教育部及相關專案的結案文件 :::

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully