• 沒有找到結果。

個案系統伺服器架構

四、 系統架構

4.2 個案系統 架構

4.2.1 個案系統伺服器架構

在整個網路上,一個伺服器以接受各個客戶端所提出的事件並且在執行後回報給客戶 端。伺服器包含了以下幾項插件:

(1) Java 訊息服務 (Java Message Service, JMS)

在任何事件發生時,客戶端與伺服器之間是以 JMS 格式的封包互相發送。 個案系統 使用的JMS 提供者為 Joram(Java Open Reliable Asynchronous Messaging, Joram) Joram 的 JMS 設計是全部以 Java 來完成的。 它提供了原訊息中間套件(Message Oriented Middleware, MOM)的存取方式,是開放原始碼的免費工具。

JMS 的插件是基於發布及訂閱訊息區域的設計,它包含三個訊息佇列:Request Queue、

Synchronous Response Queue 和 Asynchronous Response queue。 會有不同類型的回應佇 列是因為 JMS 是本質上是一個異步訊息傳遞模式,但是同步請求響應模型可以由一個 單獨的queue 和一個訊息選擇器選擇相配的回應訊息(response message)與其相應的請求 訊息來實現。

三項queue 詳述如下:

The Request Queue:所有客戶端在方升任何事件時傳送訊息到 Request Queue。伺服器的 事件管理員(Event Manager)會等候任何訊息的到來,當在這個佇列收到一條訊息,事件 管理員會根據此訊息進行相對的處理。

The Asynchronous Response Queue:當伺服器想發送一個事件告知所有客戶端,就會利 用這項佇列。例如,當他發現一個新的設備加入網路時。

28

DAO Classes

Hibernate

Case System Server EventManager

Case System Server

Client 1

Eclipse RCP

Platform

Case System Platform EventManager

Client 2

Eclipse RCP

Platform

Case System Platform EventManager

Client 2

Eclipse RCP

Platform

Case System Platform EventManager

29

The Synchronous Response Queue:一個從客戶端來的事件請求訊息可以是要即時處理並 回報結的同步處理或不需要回報的非同步處理的方式。如果要同步處理,伺服器會使用 此佇列發回一個回應和而且會帶上原始的訊息代號,以識別正確的回應對向,以確定此 回應會送給原始的事件要求客戶端。

(2)事件管理員(Event Manager)

個案系統伺服器的事件管理員負責事件訊息的接收和事件訊息處理結果的傳送。它會 傾聽request queue 上進入的事件,並根據事件類型交由代表一個或多個該事件類型處理 程式去處理該事件,如果處理請求的結果需要被送回客戶端,事件管理員會使用的同步 或非同步的佇列來送回訊息已通知客戶端。下圖顯示伺服器的事件管理員的結構。

圖4. 5、個案系統伺服器 Event Manager (3)伺服器管理程式(Server Manager)

Server Manager 是一個處理客戶端請求事件 ,並提供回應事件處理結果的程式。在初 始時,Servre Manager 必頇先在事件管理員那進行註冊,並且提供關於本身是處裡何種 類型事件的資訊,事件管理員才知道接受到該類型的事件請求時交由此Server Manager 去處理。例如,伺服器的用戶管理程式為處裡所有有關用戶管理:新增, 認證等事件。

(4)資料處理層(Data Layer)

個案系統的數據層也是一個 Eclipse 所提供的插件。 這一層可由各種程式來存取以執 行他們所要執行的事件。 資料處理層包含了資料存取和資料庫兩大部分。

1. 資料存取(Data Access): 這個模組由一組的資料存取物件(Data Access Object, DAO),它們做為各個管理程式與資料庫的中間層。 他們的唯一功能是從資料庫 中儲存和檢索數據。這些DAO 是架構在一種稱為 Hibernate 的開放原始碼物件關

30

連對應工具(Object Relational Mapping, ORM)所設計的。

2. 資料庫(Database):個案系統的伺服器使用了 Apache Derby 數據庫儲存數據。Derby 也是一個開放原始碼,可嵌入Java 編寫的資料庫。

(5)個案系統的客戶端(Case Platform)

個案系統的客戶端是前端的使用者介陎。它是基於Eclipse RCP 和以下插件所設計的:

1. Eclipse RCP 應用程式

此程式是一個基於Eclipse 多功能用戶帄台(Rich Client Platform, RCP) 的應用程序。 基本上 RCP 是一項為專為鍊客戶端的多功能帄台。RCP 提供了一個擴充框架來建 立直觀的GUI 應用程式,以提供方便的功能:選單、精靈程式、按鈕、對話框等以 及其他的插件架構。

2. 事件管理員(Event Manager)

個案系統客戶端的事件管理員類似於伺服器上的事件管理員。並且負責發送和接收 事件。下圖顯示客戶端的事件管理員的結構。

圖4. 6、個案系統 帄台事件管理員 3. 客戶端管理員(Platform Manager)

客 戶 端 管 理員 負 責 生成 Request event 和處理伺服器所發送回來的 Response event。 像 Server Manager 一樣,Platform Manager 也要向自己的客戶端的事件管理 員註冊並提供有關需要的事件類型。一個 Manager 的例子是客戶端的用戶管理 程 式, 能夠處理所有的用戶操作的需求。

31

(6)擴充性

個案系統目前所提供的基礎功能並未完整。它只是提供了通用的基本功能,如事件運 作和數據層。 但功能是可以由安裝進個案系統的插件所決定的組件可以利用以 下方式安裝進入個案系統:

1. 事件(Event):一個新組成元件可以有與它自己的事件。 由於這些事件是透過不同 的事件類別來區分子節點,當新組成元件佇測到事件管理員後就可以由事件管理 員直接處理而不需做修改。

2. 管理程式 (Manager):一個新增元件能夠執行一套相關事件的管理,他可以建構在 客戶端或是伺服器上。這些管理程式也都需要向事件管理員先行註冊。

3. 資料處理層(Data Layer):由於新增元件將詴圖解決特定的問題,它各需要一組獨 立的數據。個案系統允許一個元件增加它自己的資料庫,其中包含特有的數據和 特有的物件以存取這些數據。

4. 用戶界陎(User Interface, UI):一個新增元件也可以設計在客戶端已做為使用者 介陎來處理一些特定功能,如編輯,選單,按鈕等等。

目前, 第一個已開發的元件是網路設備管理程式 (Network Equipment Manager)。 設 備管理程式的主要元件是Discovery Engine 和 Mapping Editor。 Discovery Engine 是架 構在伺服器上,而Mapping Editor 則架構在客戶端上。下圖4.7 說明了網路設備管理程 式的元件及其架構:

32

Mapping Editor

Mapping Manager

Network

Manager Events

Discovery Manager

Discovery Engine

Network Manager DB

DAO Manager 1 Server Manager 2 Server Manager 3 Server

DAO Classes Classes

Event Manager

Server

圖4. 7、伺服器 Event Manager

Events

Case System Platform

Client 1

Eclipse RCP

Platform Manager 1

Platform

Manager 2 Platform Manager 3

Case System Platform EventManager

33

相關文件