• 沒有找到結果。

4. 通用性船舶資料庫應用系統實作

4.1 系統設計

4.1.2 介面訊息傳遞方式

從圖 12 內我們得知,GIS Client 與 DB Client 間的訊息傳遞是透過其所屬 的 GIS Server 與 DB Server 之間的通訊、協調來完成。其介面訊息依傳遞 方向可分為兩種型態,分別是從 GIS 傳送訊息或要求到 DB,以及從 DB 傳送到 GIS。

從 GIS 到 DB 的訊息傳送包含以下兩種型態:

z GIS 到 DB 互動顯示 (Cross-highlighting)

操作員希望藉由 GIS Client 上的船舶移動軌跡,連結到 DB Client 並顯示該船的資料庫內詳細資訊。

z GIS 事件廣播或儲存 (GIS event broadcast or save into database) GIS Server 發出 GIS 事件資料到 DB Server。如 GIS 內某艘船舶通 過自動報告線(report line)或船舶碰撞警告等。

從 DB 到 GIS 的訊息傳送包含以下兩種型態:

z DB 到 GIS 互動顯示 (Cross-highlighting)

在 GIS Client 上,操作員很難在海圖內的數百艘船舶中迅速找到某 艘船舶。因此,操作員可在 DB Client 的船舶名單中,藉由所指定 的船舶連結到 GIS Client 並標示該船舶的移動軌跡在海圖中的位 置。

z 資料提供 (Data Supply)

在某些應用情況下,DB Server 需定期主動提供最新資訊到 GIS。

GIS Server 發出資料庫存取需求到 DB Server。如 GIS 需要讀取船 舶資料,或是寫入船舶事件狀態到資料庫等。

各類訊息傳遞方式如以下各節說明。

4.1.2.1 GIS 到 DB 互動顯示

DB Client Vessel detail

window popped up

for that specified track

GIS Client OP request vessel detail information On DB Client

Response loadTransit(tra ck_no, DB_Client_IP)命令。

z Database Servlet 再以 HTTP 方式對 Pushlet Servlet 提出發佈 (publish)

“loadTransit” 事件的請求。

z 最後 Pushlet Servlet 會透過內部機制(詳見圖 11:發佈事件循序圖)

將 “loadTransit” 事件送達指定的 DB Client。

z DB Client 收到 “loadTransit”事件後,會以 JavaScript 的方式迫使瀏覽器 跳出一個船舶資料明細視窗畫面。

4.1.2.2 DB 到 GIS 互動顯示

DB Client OP request

<<highlight> a track on GIS

Client

GIS Client GIS Client highlight the

track in the same Workstation

selectTrack (track_no / DB Client IP)

Forwarding

highlight track OK/KO

z DB Client 以 HTTP 請求(Request)方式,以船舶編號(track No)為參數送 出 “selectTrack(track_no)” 請求命令到 Database Servlet。

z Database Servlet 得知請求 DB Client IP 地址,並再以 HTTP 方式,送出

“selectTrack(track_no, DB Client IP)” 到 GIS Servlet。

z GIS Servlet 依據傳來的 DB Client IP 地址轉換成預先定義在配置檔內的 GIS Client IP,並以 TCP/IP 方式送出 selectTrack(track_no, GIS Client IP) 到 GIS Server。

z GIS Server 依 據 GIS Client IP 並 以 TCP/IP 方 式 送 出 highlightTrack(track_no)到指定的 GIS Client。

z GIS Client 收到後,依據 track_no 標示海圖內的指定船舶。

4.1.2.3 GIS Server 發出事件警告到 DB Server

Request GIS event XXX

Database global update

event

Global update event

z GIS Servlet 以 HTTP 方式將此事件送到 Database Servlet。

z Database Servlet 再以 HTTP 方式對 Pushlet Servlet 提出發佈 (publish)

“global update” 事件的請求。同時也將此事件儲存於資料庫內。

z Pushlet Servlet 會透過內部機制將 “globalUpdate” 事件送達訂閱此事件 DB Client。

z DB Client 收到事件後,會以 JavaScript 的方式採取必要的更新動作,

如文字訊息更新、顯示告警視窗或於列表視窗 (Listbox) 內增加此事件 等。

4.1.2.4 DB Server 送出請求到 GIS Server

Request DB event YYY Database

z OS: Red Hat Enterprise Linux WS 3, Windows XP Professional.

z DBMS: PostgreSQL v8.0.1, SYBASE ASE 11.9.2 z Web AP Server: Jakarta Tomcat v5.0.28

z Java Runtime : JRE 1.5.0-01

z Web Application : PIMX.war (Web Application Archive)

相關文件