• 沒有找到結果。

伺服器端之系統設計

第四章 系統設計與實作

4.2 伺服器端之系統設計

4.2.1 伺服器端架構

根據前一節的整體架構來實作伺服器端的系統。在底層的資料中,儲存 profile(包 含 user profile 和 group profile)、群組管理訊息、聯絡人資料、群組成員等,資料 庫部份採用 mysql 實作,網頁伺服器為 apache。網頁使用者介面和 remote procedure calls 則使用 PHP 來實作。因此,若是第三方系統希望使用我們的服務,

如發送群組訊息等,只須懂得 HTTP 協定就可以與我們的伺服器溝通。

圖 5 伺服器端架構

圖 5 為我們伺服器端的架構,在有顏色的底框中的 components 是本系統實作 的部份,為模組化的系統元件,分工完成各項動作並相互合作,下層則是儲存資料的 資料庫系統。CMS 系統的聯絡人資料則是整合進我們的資料庫系統中,Message Groupcast 是系統中與 IM networks 合作的窗口,整合了多種不同的 IM networks,

最後使用者可以透過瀏覽器使用、操作本系統。

4.2.2 User and Group - The Data on Server

在伺服器端,有兩項主要的資料:User 和 Group。

這邊的 User 指的是本系統的使用者,一名使用者,他會有一個他專屬的 user profile,並且允許建立一個或多個通訊群組,也可以加入一個或多個通訊群組。Group 在本系統中,指的皆為通訊群組(Communication Group),最主要的作用便是發送 群組訊息,在圖 6 中,更細分為「建立的通訊群組」和「加入的通訊群組」兩項。

圖 6 為 User 和 Group 的關係圖。我們可以看到,每位使用者會有四項基本的資 料:聯絡人(Contacts)、User profile、建立的通訊群組(Created groups)、加入的 通訊群組(Joined groups)。每個使用者所建立的通訊群組,包含了 group profile 以及其群組成員。而每個通訊群組主要有兩項基本資料:群組成員、group profile。

圖 6 User 和 Group 關係圖

聯絡人(Contacts) :這部份的資料是由 CMS 系統所維護。使用者可以利用這部 份的資料同步 Address Book,無論出門在外,使用公家電腦,都可以正確無誤得取 得自己的聯絡人。在我們的系統中,聯絡人可以被加入通訊群組,成為群組的成員,

在群組發訊時,聯絡人亦可收到我們所發送的訊息。

建立的通訊群組(Created groups):使用者可以建立一個或多個通訊群組,使用

以踢除已加入的群組成員,換句話說,使用者對於這個分類的通訊群組,有著完全的 掌控權。

加入的通訊群組(Joined groups):使用者所加入的通訊群組,可能是某個通訊 群組管理者邀請的,也可能是自己要求加入的。因為並非是自己所建立,因此對於這 個分類的通訊群組,只有「退出群組」可供使用者操作。

User Profile:主要儲存了使用者基本資料,及偏好設定。User profile 在系統 中,伴演著重要的角色,所有跟使用者有關的動作,包含加入群組、群組通訊等,在 做進一步的動作之前,系統都是先參考 user profile,根據 user profile 中使用者的 設定來進行符合使用者期望的程序。詳細的 user profile 可參照 4.3.1。

Group Profile:群組的管理者替通訊群組設定偏好,如成員選擇條件等。在 group profile 中,主要包含了群組的基本資料及其偏好設定。詳細的 group profile 可能照 4.3.1。

相關文件