第三章 系統設計與實現
3.1 節 系統架構
圖 3-1 系統架構
本實驗的架構(圖 3-1)依照 OSGA 標準,以 JXTA 所提供的服務與協定,建 立點對點格網環境,實做資訊服務、執行管理、檔案傳輸的部分,保留 Globus 在安全性的部分,並且建立分散式動態負載平衡方法。
High Level Service Application
Core Service(JXTA)
Fabric
Peer Discovery Protocol Peer Information Protocol
Peer Resolver Protocol Peer Endpoint Protocol
Pipe Binding Protocol
Rendezvous Protocol Portals Collaboratories High Energy Physics
Information Service Execution Management File Transfer(Xfer)
JVM
Basic Service Load Balance
Security – Globus
Operating Systems
Disk Network Databases
‧‧‧
Grid
3.2 節 點對點格網環境
為了實現我們的研究架構,我們需要一些方法,並設法去解決問題,在這節 講述如何在實驗平台建立服務。
3.2.1 節 JXTA 平台
本研究的平台的開發使用了昇陽(SUN)所開發的 JXTA,JXTA 為開放原始 碼,提供許多開發 P2P 環境的協定與服務,最新的版本為 2.5,並使用 JAVA 為 開發的語言。
JXTA 架構是在格網之中,將不同的虛擬組織都視為一個一個的站台,同個 站台即為一個節點群組,不同的站台(群組)間,以其超級節點,透過 Xfer 的機制 來做溝通,包含了訊息的傳遞與檔案的傳送等,而在站台之中,超級節點透過 Peer Discovery 等功能來做組織與搜尋其團體,不同站台的超級節點藉由彼此的 節點索引紀錄,整合並建立整個點對點的環境。(圖 3-2 為資源探索,圖 3-3 為 訊息傳輸)
圖 3-2 資源探索
圖 3-3 訊息傳輸
我們以 JXTA 來架構點對點平台,JXTA 並提供 Shell 的服務,於 Shell Lib 中的所提供的指令集(command),透過研究來擷取並給予修改,使其能在 Linux 環境中使用。而為了建構點對點環境,我們需要 JXTA 中的服務有,Peer、PeerGroup 與 Xfer 等,並於其中加入超級節點的要素,透過超級節點間的溝通,來整合所 有的資源,以下我們介紹這些基本的服務:
節點建立(Peer establishment)
節點為點對點網路系統中最基本的服務,在 JXTA 網路中節點是一個虛擬的 通訊點,相較於其他點對點不同地方在於 JXTA 的節點並不表示一個使用 者,因為使用者可以有多個點在一個裝置上運作,所以在 JXTA 中的節點代 表的是一個抽象化的使用者。啟動 JXTA 時,便同時啟用了節點的服務,JXTA 給予節點一個獨一無二的 PeerID,並同時註冊 PeerName。
節點群組建立(PeerGroup establishment)
在 JXTA 所提供的服務協定中,提供了節點群組的服務,每個節點皆能夠 創建群組、加入群組以及離開群組。本研究將 JXTA 安裝於每個機器,節 點群組提供了同個節點可以屬於一個以上群組的服務。將每個虛擬組織的 機器結合成各別的群組。
透過各個虛擬組織自我群組的方式,好處在於端點傳遞及接收的訊息只侷 限於群組中,而非群組內的節點將不會接收到該訊息,因而可以有效減輕 網路的通訊負擔,避免資源浪費。其也保留了原本虛擬組織的識別及特性。
超級節點建立(Super Peer establishment)
Rendezvous Protocol 在 JXTA 服務中負責提供超級節點的功能,此協定中每 個節點可以動態的成為 Rendezvous Peer,也可以動態移出。在混合集中式 的架構中,中央伺服器就是一個 Rendezvous Peer,而在分散式的架構中則 有許多的 Rendezvous Peer,且每一個節點可隨時成為 Rendezvous Peer,也 可以隨時移出。透過 Rendezvous 的方式,便可以解決節點出席的問題。
Xfer
在 JXTA Shell 中的 Xfer 指令,提供有效且安全的檔案與訊息傳輸方式,在 我們建立 Peer 的同時,也同時以 Peer Name 登入了 Xfer 的帳號機制,以 Peer Name 來做兩個 Peer 溝通的依據。
3.2.2 節 訊息傳輸機制
在點對點環境建立好後,我們要能使所有的節點間,彼此都能夠互相傳送與 接收訊息,JXTA 提供的訊息傳遞模式,有著一對多與一對一的方式,一對多就 是將訊息以廣播(broadcast)的形式,傳到群組內所有的節點,甚至是其他的群組,
而一對一則是在於指定的兩個節點間的訊息傳遞。
在實驗中,我們將每個群組視成一個站台,站台之中,以超級節點與其他站 台作溝通,若是站台中有節點要廣播訊息,則會先將訊息傳到站台的超級節點 裡,在由超級節點將訊息廣播到其他站台的超級節點,在將訊息傳送到各站台裡 的所有節點。
一對一的傳遞訊息方式,我們以加入 JXTA 環境時節點所註冊的 PeerName 來當作依據,JXTA 並會對應兩個節點的 PeerID,產生兩個節點的通道,藉此傳 遞訊息。節點的 PeerName 與 PeerID,會由各站台的超級節點紀錄與更新,各站 台的超級節點也可以透過彼此的溝通更新紀錄。
基於這兩種訊息傳遞的方式,我們並會開發詢問的訊息格式,當節點送出訊 息後,接收端可以透過判別的機制來了解詢問訊息的目的,並作出回應。
3.2.3 節 監控機制
在環境平台建立好後,我們需要能夠監控 Site 的資源與節點的加入與離開,
現今的監控軟體是無法得知 JXTA 中節點的加入與離開的,因此我們基於 JXTA 環境,客制化的開發了 P2P-GRID SMART Monitor(圖 3-4),方便監看 JXTA 所連 結的各個節點以及其負載資訊。
以 JXTA 抓取系統中個別的各式數據,如 MemTotal、MemFree、Memory Used 和 CPU loading 等,以便做為積分轉換的依據,並以 Web Site 瀏覽的方式來方便 我們監看各站台以及所有節點的狀態。
圖 3-4 P2P-GRID SMART Monitor