iT邦幫忙

2026 iThome 鐵人賽

DAY 6
0

在這系列中,我會用 [人人,人機,機人,機機] 等來形容流程的四種類型,一知百通,第一個字是流程的發起者是人類或程序。(這是台灣用詞,不止是程式,代表process包含純硬體,作業系統,程式,其他系統)。第二字是泛指後續是由誰協同進行。

從零開始,先從人-人流程入門

依序操作
https://ithelp.ithome.com.tw/upload/images/20260920/20184261X2I1XFE0bA.png

代碼如果空白,系統會自動編,體貼命名障礙與編碼障礙。
https://ithelp.ithome.com.tw/upload/images/20260920/2018426157X8UwAkUk.png

流程設計的基本小常識

  • 這是流程的設計畫面,建議顯示器27吋會比較方便
  • 建立流程時,會建立名稱與分類一模一樣的[表單],反之卻不會,因流程必搭配一張[3D Log分析單],但單獨建立表單是合理的,企業中本來就很多記錄用途無須流程的Form。
  • 左側是流程節點(node),流程樹系,巨視圖。
  • 流程線(Edge)的繪製是【SHIFT不放,先點來源node再點目的node】就會建立線條,shift不放開可連續繪製。
  • 點在node or edge上,右邊都會出現此物件的屬性表。
  • 下方是美化區與變數區
  • 可以從表單中取值,運算,當成流程變數或回填表單。例如申請金額達2萬就跑總經理。又例如案件等級達High+持續時間達360分鐘+IP數達500則發出Telegram通知SOC主管這樣的場景。
    https://ithelp.ithome.com.tw/upload/images/20260920/20184261d1YZcMJSiK.png

先試試畫一個與圖中一樣的範例來練練手,其中的e-mail與Telegram若沒設定也可,也不會卡住,通知類的node不會檢查發送的成敗而卡住。

Start node:一個流程圖只會有一個,沒什麼好設定的,只是讓流程解析程式找到從何處開始,就像C語言的 main() 一樣,雖然還是有一些花樣但都包在程式內了,知道代表開始即可。

End node:一個流程可以有無上限的End node,只要一個被觸發,整個流程與下層流程都會立即停止。有三種結束的模式,字面上已寫得很清楚了:

  1. 分離執行模式 (Detach):流程本身結束,背景放著慢慢跑到完,例如資安案件決定為封鎖,SOC人員只要決策即可,至於有沒有阻擋成功應該歸屬程式開發人員去驗證,有些負載過大的網路設備載入大型EDL黑名單的時間會超過20分鐘才生效,這種情境真不該由SOC去擔心。又例如[全年度集團所有分公司資安總報告]或[從SOC代管數百家所有企業的案件分析明年客戶總威脅既SOC人力預估報表]這種可能跑一次要數天才跑得完的,可先結束流程,由其他方式追蹤。
  2. 取消/終止模式 (Cancel):結束時就把中途啟動的node都結束,讓記憶體乾乾淨淨。BeakPlatform設計讓每個node啟動時都在資料表中填寫執行時的process ID,此模式會透過 kill -9 去殺乾淨。不過!結束的是Node並非透過Node去呼叫的作業,例如透過 OsExecutor 執行的程式,透過 SysSqlExecutor 執行的 SQL查詢,Stored Procedure 雖然可以但規範了用戶的寫法應該沒人會遵守所以就沒做這方面的直接優化。
  3. 嚴格等待模式 (Strict):這很好理解,所有node都結束了流程才允許關閉,實現完整流程,剛開始接觸本系統建議用這模式,因為「沒依照預期結束就是有問題」成敗立判。

FormAdapter node 人員決策節點:這是一個要講很久的重點,所以就請看系統的線上說明,在此簡單帶過。

  • 基本與決策控制器只能挑一樣

  • 基本設定:就是依拉出的線路,以單或複選方式決定執行,若是逾時沒人簽的動作,簽核者空缺時的動作等。
    https://ithelp.ithome.com.tw/upload/images/20260920/20184261AcTy90gmm4.png

  • 決策控制器:依來向的變數值產生
    https://ithelp.ithome.com.tw/upload/images/20260920/20184261jsG6zsEGiW.png

二分法選擇:

  1. 下班後無人監看可以等上班再處理的流程就用[基本設定],即使是資安案件依公司特性也可以選擇一律封鎖/一律放行/給其他NODE判斷的三種去向。
  2. 擁有24小時人力或運作的跨國集團,以及需要依來向條件做決策調整的流程,請務必用[決策控制器]。

欄位權限設定 控制這張表單在不同的人員簽核節點的人是否能看到?唯讀或修改?
隱藏的資料是瀏覽器接F12都看不到的真正未傳送到用戶瀏覽器。
閱讀者比較特別,一些公司的文化習慣大家一起討論,然後由一人代表簽,會有轉請他人給意見,加附言等情況,此時簽核權+修改權依然在原本的簽核人身上,其他被拉進來的人對表單內容只能通常應該是要給唯讀,反正都設計給你們了,就看公司想幹嘛吧。採購單之類的建議送出之後全程唯讀。資安事件類的建議給資深人員能修改內容以排除誤判斷。至於簽核意見是無法事後修改的。
https://ithelp.ithome.com.tw/upload/images/20260920/20184261EiMqv7LWW7.png

表單

表單設計

表單是基於 form.io 的開源專案去[延伸]的設計器,延伸代表對原生專案沒有修改,所以隨時可對form.io進行更新
左邊表單元件區的[平台元件]是我客製的項目, 都是基於 BeakPlatform 的設計讓表單的欄位更方便取得資料的設計。
本篇不做表單設計,略過
https://ithelp.ithome.com.tw/upload/images/20260920/20184261q3Hkasolq7.png

配對

  • 表單與流程之間透過[配對]形成組合,多張表單都對應同一個流程是正常。例如[發起人-直屬主管-同意或否決-結束]這樣的流程很常見。
  • 圖上是還沒發行過,圖下是同一組配對發行後的狀態
  • 同一組配對一次只能有一個版本運作中,提供隨時切換版本的機制,切換版本(更新或降版)後,新填的表單才會採用新指定的版,已在運作中的表單流程依原鎖定的版本繼續運行到完。再加開發版,同一組設計同時可三版並行,不會出錯。
    https://ithelp.ithome.com.tw/upload/images/20260920/20184261zvfM3G00Qb.png

表單中心

表單設計與發行公佈的表單是相同引擎的不同機制,簡單的說前面有標記[TEST]的是設計中的版本,只有設計者可看見,企業員工看不到,此設計提供在真實環境單一主機就能做到開發與營運兩個版本同時運行,可邊開發邊測試,出錯也不會影響公司運作(僅限非OS級元件)。當然更安全的做法還是分兩台隔離開發/營運。
https://ithelp.ithome.com.tw/upload/images/20260920/20184261HQW6ToMhHd.png

新填表單

因還沒設計表單,所以此圖就是預設的空白表單,唯一要填寫的只有主旨,可知主旨是必填欄位。預設有附件檔案上傳的功能
https://ithelp.ithome.com.tw/upload/images/20260920/20184261evDm1Th7wN.png

待簽核

在簽核鈕旁邊是[唯讀]鈕,在唯讀權限的帳號就只能看,不能簽。
https://ithelp.ithome.com.tw/upload/images/20260920/20184261e8kgi9mfDO.png

簽核表單

重點! 三個決策按鈕就是在流程設計時增加的三個,與去向的 Node 數量可不一致。
特別長的按鈕用於明確表達此決策是在做什麼,這是很多系統設計時的都說不清楚的地方[確認]鈕是在確認什麼?
更別提當重要的資安簽核UI移到手機上時,按鈕顯示[關閉]到底是代表目前狀態為關閉中?或者是按了才會關閉?
一個泛用的確認其實是最不確認的設計。本系統就是明確告訴你,按了會如何。

L1簽核

https://ithelp.ithome.com.tw/upload/images/20260920/20184261UULt2Ci6JR.png

L2簽核

如果是測試期間,或小單位,一個人的SOC(淚,我的書名?哭哭)L1簽到L2還是你,一樣簽下去。
狀態欄會顯示目前的關卡資料,值得一提的設計是,曾經簽過的別人發動的表單,還是能追蹤的。
https://ithelp.ithome.com.tw/upload/images/20260920/20184261SzWn5A0BWB.png
那三個按鈕依權限,每個人看見的不同,企業成員能看見的通常只二個。
[除錯]:眼睛符號,設計師與管理員專屬,這是BeakPlatform的精心設計,看圖
已將所有表單與流程運作過程的Log都集中在同一張表單中。
表單是一種複合結構 即使是機-機流程的無人員介入的全自動流程,也依照同一套模式預設了流程監控[單體],這才是表單的基礎本體,至於人員可視的表單是在這基礎上疊加上去的附單,只是對人類而言不直覺所以平時不會特別提到。
又例如資安事件從建立母單之後,攻擊事件在決策之前仍然累加上去,所以第二頁的事件細節就會記錄這些,也就是說,同一張資安案件單在不同的時間點閱讀,看見的資訊會愈多,甚至會出現更多頁(這雖然代表更清楚更豐富的資訊,但每一頁是一種資安設備,有可能也代表災情擴大了)
https://ithelp.ithome.com.tw/upload/images/20260920/20184261huTiz6rIAl.png

https://ithelp.ithome.com.tw/upload/images/20260920/20184261qWaCJsE2zm.png

其他細節略過。

中間的[流程總圖]是給一般用戶看的,特別只呈現人員簽核node,省得用戶直接煩設計師為什麼SQL這麼久?為什麼這樣那樣的,只要讓用戶還在處理中,以及現在換誰簽了就好。

右邊[閱讀表單]就是唯讀,加上看所有已簽的訊息。

歷史表單

流程結束後的歷史,一樣是自己發動的表單與自己曾經簽過的都能看。

總結

營運行政表單流程真的很簡單,今天有了基本的設計到跑過一次的經驗,明天把預設的SOC流程跑一次,透過防禦主機的真實案件(反正也沒我的WAN IP),邊跑邊介紹每個Node的用法,可能會連續多天才講得完一個範例。


上一篇
企業級管理員入門
系列文
企業管理自動化與執行框架-以SOC運作為實例6
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言