談笑有鴻儒,往來無白丁

          在恰當?shù)臅r間、地點以恰當?shù)姆绞奖磉_給恰當?shù)娜?..  閱讀的時候請注意分類,佛曰我日里面是談笑文章,其他是各個分類的文章,積極的熱情投入到寫博的隊伍中來,支持blogjava做大做強!向dudu站長致敬>> > 我的微博敬請收聽
          基于RMI的分布式銀行自助終端監(jiān)控系統(tǒng)的研究及實現(xiàn)
          張永福1,張娟2
          (1.陜西師范大學計算機科學學院 陜西 西安 710062;2.西安財經(jīng)學院 陜西 西安 710061)


          近年來隨著我國金融體制改革的不斷深人,銀行企業(yè)不斷利用信息技術拓寬業(yè)務,其中對于自助銀行,使其得到了飛速發(fā)展,因此,依托現(xiàn)在計算機技術、網(wǎng)絡通信技術、數(shù)據(jù)安全技術開發(fā)出能對各種自助終端進行監(jiān)控,網(wǎng)絡拓展性良好,使用靈活方便,安全的銀行自助終端監(jiān)控系統(tǒng)成為當務之急。利用J2EE系統(tǒng)平臺[1],能有效地實現(xiàn)分布式多層體系結構的應用程序開發(fā)。

          1 RMI[2]

          RMI(Remote Method Invocation,遠程方法調(diào)用)是J2EE技術中的一項,是Java語言實現(xiàn)有力網(wǎng)絡功能的固有機制,RMI允許Java編寫分布式對象,并允許對象在內(nèi)存中通信,可跨越Java虛擬機通信[3-4],也可跨越物理設備。

          RMI實現(xiàn)實際上由3個抽象層建立:

          Stubs/Skeletons Layer(存根/主架層);Remote Reference Layer(遠程引用層);Transport Layer(傳輸層)。

          2 監(jiān)控系統(tǒng)的設計與實現(xiàn)

          2.1 系統(tǒng)網(wǎng)絡結構

          本系統(tǒng)以中國銀行內(nèi)部Intranet網(wǎng)絡為依托,采用集中式網(wǎng)絡結構構建而成。如圖1所示。

          系統(tǒng)采用一臺監(jiān)控服務器,連在中國銀行Intranet主干網(wǎng)上,和提供數(shù)據(jù)源的前置機放入同一網(wǎng)段。服務器主機上運行Web服務器、應用服務器和數(shù)據(jù)庫服務器,為用戶提供Web方式訪問。監(jiān)控客戶端以瀏覽器的形式在工作站上通過網(wǎng)絡直接訪問web服務器,進行信息查詢、監(jiān)控管理、報表打印、系統(tǒng)維護等。Intranet環(huán)境內(nèi)其他用戶可通過路由器、DDN專線從相應工作站以web形式訪問Web服務器。

          2.2 系統(tǒng)邏輯層次結構圖

          監(jiān)控系統(tǒng)由數(shù)據(jù)庫服務器、應用服務器、web服務器和瀏覽器組成,通過Intranet/Internet與綜合前置系統(tǒng)連接。

          本文將3層結構模式應用于銀行自助終端監(jiān)控系統(tǒng),這3層分別是:客戶層;Web層(應用邏輯層);數(shù)據(jù)存儲層(見圖2)。

          這種結構無疑是富有生命力的,監(jiān)控臺使用瀏覽器直接與銀行Intranet連接,監(jiān)控服務器(監(jiān)控服務器由Application Server和DB Servet兩臺服務器組成)在接入Intranet之前與一個Web Server連接,再通過Web Server接入Internet。通過Internet在監(jiān)控服務器與監(jiān)控臺之間建立物理連接。

          2.3 應用系統(tǒng)結構

          自助設備監(jiān)控系統(tǒng)是監(jiān)控前端自助設備運行狀態(tài),交易情況的網(wǎng)上應用系統(tǒng),他的數(shù)據(jù)來自于數(shù)據(jù)采集模塊。前端自助設備運行時發(fā)送狀態(tài)交易數(shù)據(jù)到前置機、主機系統(tǒng),由前置機、主機系統(tǒng)進行處理,并將狀態(tài)數(shù)據(jù)、交易情況記入數(shù)據(jù)庫或LOG文件中。如圖3所示,由監(jiān)控系統(tǒng)數(shù)據(jù)采集模塊定時采集數(shù)據(jù)庫或LOG文件中的數(shù)據(jù)到監(jiān)控數(shù)據(jù)庫中,監(jiān)控應用系統(tǒng)負責對監(jiān)控數(shù)據(jù)統(tǒng)一處理,并通過監(jiān)控客戶端實時請求發(fā)送到監(jiān)控客戶端進行顯示及其他處理。

          3 RMI技術在監(jiān)控系統(tǒng)中的應用

          中國銀行天津分行在每個地區(qū)都下設支行,每個支行負責管理本地區(qū)的ATM網(wǎng)點,因此各個支行之間網(wǎng)點ATM自助設備的狀態(tài)、交易信息不能共享.那么各個地區(qū)的監(jiān)控客戶端就只能通過本地區(qū)支行的監(jiān)控服務器實時監(jiān)控本地區(qū)的ATM網(wǎng)點的自助終端設備,為了使身處各個地區(qū)的監(jiān)控客戶端都能夠監(jiān)控各個支行所轄的ATM網(wǎng)點自助終端設備,就必須采用分布式的監(jiān)控系統(tǒng)。每個支行都設置一臺監(jiān)控服務器,與各自所在支行的前置系統(tǒng)相連接,利用RMI技術將實時監(jiān)控、遠程控制、查詢統(tǒng)計組件注冊為遠程對象,監(jiān)控客戶機在任何支行的監(jiān)控服務器上的注冊服務表用遠程對象的名字查找相應遠程對象,然后調(diào)用他的方法,就可以像監(jiān)控本地區(qū)的ATM自助終端設備那樣監(jiān)控其他地區(qū)的ATM自助終端設備。

          下面本文將以對ATM狀態(tài)的實時監(jiān)控如何借助RMI技術實現(xiàn)做以討論[5]

          3.1 定義遠程接口

          在Java中,遠程對象是實現(xiàn)遠程接口的類的實例,遠程接口聲明每個要遠程調(diào)用的方法。在需要創(chuàng)建一個遠程對象的時候,通過傳遞一個接口來隱藏基層的實施細節(jié),客戶通過接口句柄發(fā)送消息即可。遠程接口具有如下特點:

          (1)遠程接口必須為public屬性。

          (2)遠程接口必須擴展接口java.rmi.Remote。

          (3)除與應用程序本身特定的例外之外,遠程接口中的每個方法都必須在自己的throws從句中聲明java.rmi.RemoteException。

          (4)作為參數(shù)或返回值傳遞的一個遠程對象(不管是直接,還是本地對象中嵌入)必須聲明為遠程接口,而不應聲明為實施類。

          下面是對ATM狀態(tài)實時監(jiān)控的遠程接口ATM_StatusShow_Interface的定義。

          3.2 實現(xiàn)遠程接口[6]

          遠程對象實現(xiàn)類必須擴展遠程對象java.rmi.UnicastRemoteObject類,并實現(xiàn)所定義的遠程接口。遠程對象的實現(xiàn)類中包含實現(xiàn)每個遠程接口所指定的遠程方法的代碼。這個類也可以含有附加的方法,但客戶只能使用遠程接口中的方法。因為客戶是指向接口的一個句柄,而不是他的哪個類。必須為遠程對象定義構造函數(shù),即使只準備定義一個默認構造函數(shù),用他調(diào)用基礎類構造函數(shù)。

          3.3 編寫服務器類

          通過ATM_StatusShow_Server創(chuàng)建一個遠程對象的實例,并通過java.rmi.registry.LocateRegistry類的createRegistry方法從指定端口號啟動注冊服務程序,注冊服務程序的缺省運行端口為1099。必須將遠程對象名字綁定到對遠程對象的引用上。

          3.4 編寫使用遠程服務的客戶機類。

          客戶機類的主要功能有2個:一是通過Naming.lookup方法來構造注冊服務程序stub程序實例;二是調(diào)用服務器遠程對象上的遠程方法。

          3.5 為遠程對象實現(xiàn)創(chuàng)建根和干

          要創(chuàng)建存根程序和主架文件,應以包含遠程對象實現(xiàn)的已編譯類包全名運行rmic編譯器。存根(Stub)是遠程對象在客戶端的代理,他將RMI調(diào)用傳遞給服務器端的主架(Skeleton),后者負責將該調(diào)用傳遞給實際的遠程方法:

          運行rmic,RMI目錄下就會多出2個新類:

          ATM_StatusShow_Impl_Stub.class

          ATM_StatusShow_Impl_Skel.class

          他們分別對應的是存根(stub)和主架(skeleton)。

          4 結 論

          本系統(tǒng)在中國銀行天津分行的支持下已投入使用,經(jīng)過多次測試和實際運行,用戶對于本系統(tǒng)的評價比較滿意。在運行速度和運行穩(wěn)定性上都能達到要求。對于用戶的日常工作負擔起到了較大減輕的作用,提高了工作效率,簡化了溝通手續(xù),豐富了查詢能力,使統(tǒng)計結果更加實時、靈活和準確。從技術角度上看,本系統(tǒng)采用RMI技術非常好地解決了分布式應用的問題。

          ?
          本文摘自《現(xiàn)代電子技術》
          posted on 2006-12-31 14:49 壞男孩 閱讀(1042) 評論(0)  編輯  收藏 所屬分類: java命令學習
          主站蜘蛛池模板: 西峡县| 金川县| 新宁县| 柳河县| 乌海市| 许昌市| 云林县| 涞源县| 常宁市| 孟村| 洞头县| 乐陵市| 谷城县| 额济纳旗| 金山区| 万载县| 龙南县| 顺昌县| 滨海县| 灌南县| 沁水县| 米泉市| 沐川县| 福鼎市| 收藏| 汝城县| 游戏| 三台县| 辉南县| 沾益县| 铁岭县| 南雄市| 滦南县| 宿州市| 堆龙德庆县| 呈贡县| 尼玛县| 周至县| 贵阳市| 平利县| 荥经县|