近年來隨著我國金融體制改革的不斷深人,銀行企業不斷利用信息技術拓寬業務,其中對于自助銀行,使其得到了飛速發展,因此,依托現在計算機技術、網絡通信技術、數據安全技術開發出能對各種自助終端進行監控,網絡拓展性良好,使用靈活方便,安全的銀行自助終端監控系統成為當務之急。利用J2EE系統平臺,能有效地實現分布式多層體系結構的應用程序開發。
1、 RMI
RMI(Remote Method Invocation,遠程方法調用)是J2EE技術中的一項,是Java語言實現有力網絡功能的固有機制,RMI允許Java編寫分布式對象,并允許對象在內存中通信,可跨越Java虛擬機通信,也可跨越物理設備。
RMI實現實際上由3個抽象層建立:Stubs/Skeletons Layer(存根/主架層);Remote Reference Layer(遠程引用層);Transport Layer(傳輸層)。
2、 監控系統的設計與實現
2.1 系統網絡結構
本系統以中國銀行內部Intranet網絡為依托,采用集中式網絡結構構建而成。如圖1所示。
系統采用一臺監控服務器,連在中國銀行Intranet主干網上,和提供數據源的前置機放入同一網段。服務器主機上運行Web服務器、應用服務器和數據庫服務器,為用戶提供Web方式訪問。監控客戶端以瀏覽器的形式在工作站上通過網絡直接訪問web服務器,進行信息查詢、監控管理、報表打印、系統維護等。Intranet環境內其他用戶可通過路由器、DDN專線從相應工作站以web形式訪問Web服務器。
2.2 系統邏輯層次結構圖
監控系統由數據庫服務器、應用服務器、web服務器和瀏覽器組成,通過Intranet/Internet與綜合前置系統連接。
本文將3層結構模式應用于銀行自助終端監控系統,這3層分別是:客戶層;Web層(應用邏輯層);數據存儲層(見圖2)。
這種結構無疑是富有生命力的,監控臺使用瀏覽器直接與銀行Intranet連接,監控服務器(監控服務器由Application Server和DB Servet兩臺服務器組成)在接入Intranet之前與一個Web Server連接,再通過Web Server接入Internet。通過Internet在監控服務器與監控臺之間建立物理連接。
2.3 應用系統結構
自助設備監控系統是監控前端自助設備運行狀態,交易情況的網上應用系統,他的數據來自于數據采集模塊。前端自助設備運行時發送狀態交易數據到前置機、主機系統,由前置機、主機系統進行處理,并將狀態數據、交易情況記入數據庫或LOG文件中。如圖3所示,由監控系統數據采集模塊定時采集數據庫或LOG文件中的數據到監控數據庫中,監控應用系統負責對監控數據統一處理,并通過監控客戶端實時請求發送到監控客戶端進行顯示及其他處理。
3、 RMI技術在監控系統中的應用
中國銀行天津分行在每個地區都下設支行,每個支行負責管理本地區的ATM網點,因此各個支行之間網點ATM自助設備的狀態、交易信息不能共享.那么各個地區的監控客戶端就只能通過本地區支行的監控服務器實時監控本地區的ATM網點的自助終端設備,為了使身處各個地區的監控客戶端都能夠監控各個支行所轄的ATM網點自助終端設備,就必須采用分布式的監控系統。每個支行都設置一臺監控服務器,與各自所在支行的前置系統相連接,利用RMI技術將實時監控、遠程控制、查詢統計組件注冊為遠程對象,監控客戶機在任何支行的監控服務器上的注冊服務表用遠程對象的名字查找相應遠程對象,然后調用他的方法,就可以像監控本地區的ATM自助終端設備那樣監控其他地區的ATM自助終端設備。
下面本文將以對ATM狀態的實時監控如何借助RMI技術實現做以討論。
3.1 定義遠程接口
在Java中,遠程對象是實現遠程接口的類的實例,遠程接口聲明每個要遠程調用的方法。在需要創建一個遠程對象的時候,通過傳遞一個接口來隱藏基層的實施細節,客戶通過接口句柄發送消息即可。遠程接口具有如下特點:
(1)遠程接口必須為public屬性。
(2)遠程接口必須擴展接口java.rmi.Remote。
(3)除與應用程序本身特定的例外之外,遠程接口中的每個方法都必須在自己的throws從句中聲明java.rmi.RemoteException。
(4)作為參數或返回值傳遞的一個遠程對象(不管是直接,還是本地對象中嵌入)必須聲明為遠程接口,而不應聲明為實施類。
下面是對ATM狀態實時監控的遠程接口ATM_StatusShow_Interface的定義。
3.2 實現遠程接口
遠程對象實現類必須擴展遠程對象java.rmi.UnicastRemoteObject類,并實現所定義的遠程接口。遠程對象的實現類中包含實現每個遠程接口所指定的遠程方法的代碼。這個類也可以含有附加的方法,但客戶只能使用遠程接口中的方法。因為客戶是指向接口的一個句柄,而不是他的哪個類。必須為遠程對象定義構造函數,即使只準備定義一個默認構造函數,用他調用基礎類構造函數。
3.3 編寫服務器類
通過ATM_StatusShow_Server創建一個遠程對象的實例,并通過java.rmi.registry.LocateRegistry類的createRegistry方法從指定端口號啟動注冊服務程序,注冊服務程序的缺省運行端口為1099。必須將遠程對象名字綁定到對遠程對象的引用上。
3.4 編寫使用遠程服務的客戶機類。
客戶機類的主要功能有2個:一是通過Naming.lookup方法來構造注冊服務程序stub程序實例;二是調用服務器遠程對象上的遠程方法。
3.5 為遠程對象實現創建根和干
要創建存根程序和主架文件,應以包含遠程對象實現的已編譯類包全名運行rmic編譯器。存根(Stub)是遠程對象在客戶端的代理,他將RMI調用傳遞給服務器端的主架(Skeleton),后者負責將該調用傳遞給實際的遠程方法:
運行rmic,RMI目錄下就會多出2個新類:
ATM_StatusShow_Impl_Stub.class
ATM_StatusShow_Impl_Skel.class
他們分別對應的是存根(stub)和主架(skeleton)。
4 、結 論
本系統在中國銀行天津分行的支持下已投入使用,經過多次測試和實際運行,用戶對于本系統的評價比較滿意。在運行速度和運行穩定性上都能達到要求。對于用戶的日常工作負擔起到了較大減輕的作用,提高了工作效率,簡化了溝通手續,豐富了查詢能力,使統計結果更加實時、靈活和準確。從技術角度上看,本系統采用RMI技術非常好地解決了分布式應用的問題。
責任編輯:gt
-
服務器
+關注
關注
12文章
9021瀏覽量
85184 -
監控系統
+關注
關注
21文章
3860瀏覽量
173498 -
JAVA
+關注
關注
19文章
2958瀏覽量
104548
發布評論請先 登錄
相關推薦
評論