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)