第四章 系統設計與實作
4.3 系統元件介紹
4.3.2 Group Management
Group Management 主要負責兩個部份,一為通訊群組管理,包含通訊群組的 建立與刪除等,二為群組成員管理,包括群組成員的選取等。
整個 group management 的運作,環繞在「profile」和「user level」這兩項。
Profile 意指在 group management component 有所動作之前,皆需比對 profile 後才能動作,以確保所產生的結果是符合使用者所期待的。而 user level 的設定,是 替系統的使用者做一個等級的劃分,不同的 user level 會有不同的權限和限制,一個 最明顯的例子,就是 user level 高的使用者,可以對 user level 比他低的使用者進行 context-aware autogrouping 的動作。以圖 11 為例,照 user level 排序,由高到 低依次為校長、老師、學生,所以在 context-aware autogroup 時,校長的對象可 以是校長(自己)老師及學生,但老師的對象有老師及學生。
圖 11 User Level
4.3.2.1 通訊群組管理
這邊主要負責建立與刪除通訊群組,並且替每個通訊群組指定一個專屬的識別 碼。在本系統中,每一個通訊群組會有一個識別碼,我們稱之為 CGID,CGID 為一 34 字元的字串,以”CG”開頭,取其 CGID 的前兩個字母。CGID 在通訊群組建立時,
由系統產生並指定,CGID 具有唯一性,在系統中是獨一無二的,不會與其他通訊群 組共享相同的 CGID。每個 CGID 代表著一個通訊群組,群組成員可能會有所更動、
群組設定也會被修改,但 CGID 自始至終永遠保持一樣。
4.3.2.2 群組成員管理
系統在選擇群組成員方面,主要分為二種方式:
1、Context-aware autogroup
根據通訊群組的 profile (group profile)中所指明的選擇成員的條件,由系統替 通訊群組新增或刪除群組成員,context-aware autogroup 所新增的群組成員都會 有一個註記,標明該使用者是透過 context-aware autogroup 機制所加入群組的。
在此機制運作的過程中, 群組成員可能是新增,但也可能是刪除,為了確保此機制的 運作不會影響到手動邀請、要求所加入的成員,所以需要替經由 context-aware autogroup 所加入的成員做註記,一旦需要刪除群組成員時,系統會先確認該使用者 加入群組的管道為何,接下來才決定下一步的刪除使用者是否執行。
圖 12 Context-aware autogroup 流程
在本系統中,只要 user profile 或 group profile 有所更動,為了隨時保持群組 成員符合 group profile 的條件設定,系統便會執行 context-aware autogroup。圖 12 為 group profile 改變,context-aware autogroup 的執行流程,在第三個步驟 時,系統會選取需要的 user profile,然後送到 profile management 做比對,決定 是新增群組成員或是刪除群組成員。
但因為我們有「user level」的設定,有的使用者可能沒辦法透過 autogroup 的 方式加入群組,但同時又希望那些人有機會加入某些通訊群組中,因此我們的系統還 需要額外的選擇成員機制。
2、手動邀請、要求加入群組
除了上述的 context-aware autogroup 外,我們另外提供了手動邀請、要求加 入群組的設定。在圖 11 中我們知道老師的 user level 大於學生的 user level,假若 學 生 社團 的成 員除 了學 生 外, 也希 望社 團的 指 導老 師也 是成 員之 一 ,倘 只有 context-aware autogroup 單一機制,便無法達成此一目標。因此,手動邀請、要 求加入群組的機制,主要就是根據使用者的意願、個人的意志掌控群組的成員。
圖 13 手動邀請加入通訊群組的流程
圖 13 是通訊群組管理者手動邀請某位使用者加入群組的流程圖。第二個步驟便 是 n 向 profile management 詢問使用者所設定的偏好,在第三個步驟得到回覆,知 道該名使用者希望當有人邀請他加入群組時,能夠向使用者本人確認是否加入群組,
因此系統會向使用者本人詢問,若是同意加入,系統就將該名使用者加入群組,反之,
若不同意則不加入。圖 13 中由虛線框起來的部份,就是會跟著使用者偏好設定而隨 之改變的流程,若是在步驟三得到的回答是 accept 或是 reject,那麼系統就不會再次 向使用者做確認的動作,而是直接將之同意或是回絕加入群組的邀請。