open:uml

差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

Both sides previous revision 前次修改
open:uml [2022/03/03 00:42]
wenchin 移除
open:uml [2022/03/18 17:11] (目前版本)
wenchin 建立
行 1: 行 1:
-====== UML ~ 系統架構應用範例 ======+====== UML 應用範例 ======
 \\ \\
 ---- ----
 ===== 1️⃣ AIoT 車牌辨識~停車場自動化管理 ===== ===== 1️⃣ AIoT 車牌辨識~停車場自動化管理 =====
-<uml>+  * 專案簡述: 
 +    * 利用 ESP32Cam 微控板 模擬停車場出入口 
 +    * 利用 PC 執行 Python 程式來扮演 停場場的管控中心 
 +    * 車牌辨識 使用 OpenALPR 開發套件 
 + 
 +  * 系統架構 及 運作原理 \\ <uml>
 title "​\nAIoT 車牌辨識~停車場自動化管理\n\n系統架構 及 運作原理\n"​ title "​\nAIoT 車牌辨識~停車場自動化管理\n\n系統架構 及 運作原理\n"​
  
行 43: 行 48:
 </​uml>​ </​uml>​
  
-<​jumbotron background=":​maker:​parkinglot:​white.png">​ 
-</​jumbotron>​ 
  
 +\\
 ---- ----
-===== 1️⃣ ​AIoT 車牌辨識~停車場自動化管理 實作 ​=====+===== 2️⃣ ​防蚊旅行家 ​===== 
 +  * 專案簡述: 
 +    * (精簡版) 
 +      * 利用政府的 Open Data 及旅行者的手機座標 來判定 旅行者 是否已進入登革熱病媒蚊高密度區域 
 +      * 若是,經計算後可透過 LINE Notify 來提醒 
 +    * (完整版) 
 +      * 採用 MongoDB 來記錄旅行者的足跡,並呈現在 OpenStreetMap 開放街圖上
  
 +  * 系統架構圖 (精簡版) \\ <uml>
 +title "​\n🦟 防蚊旅行家 😎\n\n系統架構圖 (精簡版)\n"​
 +
 +sprite $access jar:​archimate/​access
 +sprite $serving jar:​archimate/​serving
 +
 +together {
 +  agent owntracks as "​OwnTracks\nApp"​
 +  actor handset as "​旅行者\n@手機"​
 +  agent lineapp as "​LINE\nApp"​
 +}
 +
 +cloud opendata as "Open Data/​API"​ {
 +  file area as "​以經緯度\n查詢行政區\nAPI"​
 +  file density as "​病媒蚊\n密度調查\nData"​
 +  file linenotify as "​Line\nNotify\nAPI"​
 +}
 +
 +package mosquitto as "​Mosquitto"​ {
 +  database mqttserver as "​MQTT\nServer"​ #FCA
 +}
 +
 +package python as "​Python"​ {
 +  file watcher as "• 讀取 Open Data\n• 訂閱 MQTT 旅行者座標\n• 呼叫 行政區 Open API\n• 查詢病媒蚊風險級數\n• 傳送 Line Notify 訊息"​ #AFC
 +}
 +
 +owntracks = handset
 +handset = lineapp
 +linenotify ~> lineapp
 +
 +watcher => mqttserver ​
 +
 +owntracks ~d~> mqttserver : 經緯度
 +
 +watcher ~u~> density
 +watcher ~u~> linenotify : 告警
 +watcher ~u~> area
 +
 +legend left
 +圖例
 +----
 +<​$access>​ : Internet
 +<​$serving>​ : LAN
 +endlegend
 +</​uml>​
 +
 +
 +\\
 +  * 系統架構圖 (完整版) \\ <uml>
 +title "​\n🦟 防蚊旅行家 😎\n\n系統架構圖 (完整版)\n"​
 +
 +sprite $access jar:​archimate/​access
 +sprite $serving jar:​archimate/​serving
 +
 +together {
 +  actor manager as "​管理者\n@PC"​
 +  agent browser as "​Browser"​
 +}
 +
 +together {
 +  agent lineapp as "​LINE\nApp"​
 +  actor handset as "​旅行者\n@手機"​
 +  agent owntracks as "​OwnTracks\nApp"​
 +}
 +
 +cloud opendata as "Open Data/​API"​ {
 +  file osm as "​Open\nStreetMap\nAPI"​
 +  together {
 +    file density as "​病媒蚊\n密度調查\nData"​
 +    file poi as "​登革熱\n確定病例分佈\nData"​
 +  }
 +  file linenotify as "​Line\nNotify\nAPI"​
 +}
 +
 +package mosquitto as "​Mosquitto"​ {
 +  database mqttserver as "​MQTT\nServer"​ #FCA
 +}
 +
 +package nodejs as "​Node.js"​ {
 +  file scraper as "​Data\nScraper"​ #AFC
 +  file extractor as "​Route\nExtractor"​ #AFC
 +  file watcher as "​Route\nWatcher\n&​ Recorder"​ #AFC
 +}
 +
 +package mongodb as "​MongoDB"​ {
 +  database dbserver as "​Database\nServer"​ #FAC
 +}
 +
 +package apache as "​Apache"​ {
 +  file dashboard as "​Traveler\nDashboard"​ #ACF
 +}
 +
 +package storage as "File Storage"​ {
 +  file geojson as "​GeoJSON"​
 +}
 +
 +manager = browser
 +lineapp = handset
 +handset = owntracks
 +
 +browser ~> osm
 +poi -[hidden]r->​ linenotify
 +linenotify ~r~> lineapp
 +
 +extractor -[hidden]r->​ scraper
 +scraper -[hidden]r->​ watcher
 +watcher => mqttserver ​
 +
 +extractor ==> dbserver ​
 +watcher ==> dbserver ​
 +scraper ==> dbserver ​
 +dashboard ==> geojson ​
 +scraper ==> geojson ​
 +
 +browser ~~~> dashboard ​
 +browser ~~~> extractor ​
 +owntracks ~~~> mqttserver ​
 +
 +scraper ~u~~> poi
 +scraper ~u~~> density
 +watcher ~u~~> linenotify ​
 +
 +legend right
 +圖例
 +----
 +<​$access>​ : Internet
 +<​$serving>​ : LAN
 +endlegend
 +</​uml>​
 +
 +
 +\\
 +----
 +===== 3️⃣ 車隊循跡管理 =====
 +  * 專案簡述:
 +    * 利用 ESP8266 外加 GPS 及 4G LTE 模組做為車機
 +    * 透過 Node.js 執行 RESTful API 提供給車載機呼叫,以記錄車輛軌跡到 MongoDB
 +    * 透過 Node.js 執行 RESTful API 提供給管理者 Browser 操作界面 AJAX 呼叫,以呈現車輛軌跡到地圖上
 +    * 透過 Docker 執行 OpenMapTiles 地圖 Map Server
 +
 +  * 系統架構圖 & Port Mapping \\ <uml>
 +title "​\n車隊循跡管理\n\n系統架構圖 & Port Mapping\n"​
 +
 +sprite $access jar:​archimate/​access
 +sprite $serving jar:​archimate/​serving
 +
 +actor manager as "​管理者"​
 +actor car as "​車載裝置"​
 +agent browser_fd as "​Browser"​
 +agent mcu as "​GPS+LTE\n@微控板"​
 +
 +package Docker {
 +  file maptiler as "​OpenMapTiles\nMap Server\nNAT:​11003→VM:​11003→Docker:​80"​ #CAF
 +}
 +package Apache {
 +  file fleetdashboard as "​Fleet\nDashboard\nNAT:​11002→VM:​80"​ #ACF
 +}
 +package Node.js {
 +  file extractor as "​Route\nExtractor\nNAT:​11001→VM:​11001"​ #AFC
 +  file recorder as "​Route\nRecorder\nNAT:​11000→VM:​11000"​ #AFC
 +}
 +package MongoDB {
 +  database mongodb as "​Database\nServer\nVM:​27017"​ #FAC
 +}
 +
 +manager = browser_fd
 +car = mcu 
 +
 +recorder ==> mongodb
 +extractor ==> mongodb
 +
 +browser_fd ~~~> maptiler ​
 +browser_fd ~~~> fleetdashboard ​
 +browser_fd ~~~> extractor ​
 +mcu ~~~> recorder ​
 +
 +legend left
 +圖例
 +----
 +<​$access>​ : WAN (Internet Connection)
 +<​$serving>​ : LAN or Co-Hosting
 +endlegend
 +</​uml>​
 +
 +
 +\\
 +----
 +===== 4️⃣ 營建業 典型業務模式 =====
 +<uml>
 +銀行->>​建設公司:​ 土地、建築融資
 +建設公司->>​銀行:​ 價金信託
 +建設公司->>​營造廠商:​ 工程發包
 +note right
 +  營造廠商:​
 +  【承攬模式】
 +   ​1.包工包料
 +   ​2.包工不包料 
 +end note
 +建設公司->>​廣告公司:​ 委託代理銷售
 +廣告公司->>​購屋客戶:​ 銷售(預售屋)
 +營造廠商->>​建設公司:​ 完工
 +廣告公司->>​購屋客戶:​ 銷售(成屋)
 +建設公司->>​購屋客戶:​ 直接銷售(餘屋)
 +銀行->>​購屋客戶:​ 貸款
 +建設公司->>​購屋客戶:​ 產權移轉、交屋
 +</​uml>​
  • open/uml.1646239360.txt.gz
  • 上一次變更: 2022/03/03 00:42
  • wenchin