劉長英
(長春市公路路政管理局,吉林 長春 130033)
Java RMI(Remote Method lnvocation遠程方法調用)是用Java在JDK1.1中實現的,它大大增強了Java開發分布式應用的能力。Java作為一種風靡一時的網絡開發語言,其巨大的威力就體現在它強大的開發分布式網絡應用的能力上,而RMI就是開發百分之百純Java的網絡分布式應用系統的核心解決方案之一。其實它可以被看作是RPC的Java版本。但是傳統RPC并不能很好地應用于分布式對象系統。而Java RMI則支持存儲于不同地址空間的程序級對象之間彼此進行通信,實現遠程對象之間的無縫遠程調用。RMI目前使用Java遠程消息交換協議JRMP(Java Remote Messaging Protocol)進行通信。JRMp是專為Java的遠程對象制定的協議。因此,Java RMI具有 Java的“Write Once,Run Anywhere”的優點,是分布式應用系統的百分之百純Java解決方案。RMI與CORBA相比,最大的不同點就是CORBA適合與多種語言之間的通訊。因我們的系統絕大部分都是Java編寫,所以在內部通信時選擇RMI,而沒有選擇CORBA。在對外接口上,提供RMI和CORBA兩種接口。
多線程使得一個程序中的多個過程可以并發執行。多線程的優點有兩個方面。第一,多線層的程序一般能更好地利用資源,第二,多線程更好地解決了許多問題,包括顯示和多任務的處理。在系統的程序的開發中,要用到兩種類型的線程。一種是精靈線程。它是屬于服務線程,它是用于為其它線程提供服務的,它通常進入一個無窮循環,等待客戶機請求服務。當余下的活動線程只有精靈線程的時候,Java退出運行狀態。在系統管理程序中,使用精靈線程來定時喚醒其它的線程,可以起著定時器的功能。
JDBC是一個能夠執行SQL語句的Java API,它包含一組由Java語言編寫的類和接口,使得程序員能夠使用純Java開發數據庫應用。JDBC標準基于刀OPEN的SQL調用級接口,它定義了一個友好的Java界面來與X/ OPEN的SQL調用級接口中定義的基本抽象層和基本概念層來進行連接。常見的JDBC驅動程序主要是有四種,它們分別是:
JDBe-ODBC Bridge:包含在Sun公司提供的JDBC軟件包中,它是在ODBC的基礎上實現了JDBC的功能。在使用它之前,必須在系統中配置ODBC。
Native API partly-Java Driver:針對某種數據庫產品的驅動程序,它是在這種數據庫產品原有驅動程序的基礎上實現的。在使用之前,必須在系統安裝這種數據庫的驅動程序。
JDBC-Net pure Java Driver:這種驅動程序將在JDBC調用翻譯成與數據庫無關的網絡協議,然后在服務器端將網絡協議翻譯成某種數據庫協議。使用這種驅動程序不需要在客戶端安裝其它軟件,并且能訪問多種數據庫。因此,這種驅動程序是與平臺無關的,并且與用戶訪問的數據庫無關,特別適合在多層結構應用軟件體系結構中使用。
Native-protocol pure Java Driver:這種驅動程序將JDBC調用翻譯成某種數據庫協議。不同的數據庫廠商開發不同的驅動程序,以便于用戶能夠使用這種驅動程序快速的訪問自己的數據庫產品。這種驅動程序與平臺無關,但與數據庫有關。
采用Java和JDBC編寫的數據庫應用程序的開發者可以做到“編寫一次,隨處可用”。這樣,在開發網絡管理的系統中,選擇第三種形式的驅動程序,完成客戶端對數據庫服務器的信息的獲取。
XML(extensible Markup Language,可擴展標記語言),它是SGML(standard Generic Marku PLanguage,標準通用標記語言)的一個子集,是當前網絡科技中最流行的技術之一。
XML文檔由稱為實體的存儲單元組成,一個實體可以引用(refer)其他實體,將它們包含在文檔中。文檔開始于“根(root)”或文檔實體中。實體包含解析數據或未解析數據。解析數據由字符組成,其中一些字符組成字符數據,另一些字符組成標記。標記中包含了對文檔存儲格式 (storage layout)和邏輯結構的描述。邏輯上而言,文檔由聲明、元素、注釋、字符引用和處理指令組成,所有這些都在文檔中用顯式標記指明。XML提供了一種機制用于約束存儲格式和邏輯結構。稱為XML處理器的軟件模塊用于讀取XML文檔,存取其中的內容和結構。XML處理器被設想為是為另一個稱為應用的模塊作處理。
XML文檔中標記的功能是描述文檔的存儲格式和邏輯結構,并將屬性一值對和邏輯結構關聯起來。XML提供一種稱為文檔類型聲明的機制,用于定義對邏輯結構的約束,支持預定義存儲單元的使用。如果一個XML文檔有相應的文檔類型聲明并且它遵循其中的約束,則稱它是有效的(valid)。但在我們的系統中并不是使用常用的文檔類型定義(document type definition,DTD),而是用Schema。同DTD一樣,schema也提供了一套完整的機制以約束XML文檔中置標的使用,但相比之下,后者基于XML,更具有規范性。schema利用元素的內容和屬性來定義XML文檔的整體結構,如哪些元素可以出現在文檔中、元素間的關系是什么、每個元素有哪些內容和屬性、以及元素出現的順序和次數等等,都可一目了然。
在Java程序的語言進行拓撲圖形的編輯過程中,不可避免的要進行圖形的刷新即調用rePalnt函數的工作。這常常會引起整個圖形抖動。為避免圖形抖動,我們采用了一種稱為“雙緩沖”的技術。它的意思是:將在一個后臺窗口中繪制圖形并將所繪制的圖形保存在一個與程序顯示區域大小相同的存儲空間中。當在這個空間中已繪制好圖形時,才將圖形顯示在程序的可見區域中。
JNI,Java Native Interface,使得程序員在問題不能單獨使用Java得到解決情況下,通過由選擇地使用其它編程語言如C或C++實現一些方法,對Java的功能進行擴展。該模塊的Ping和TraceRouter都是用該方法實現的。它的主要內容是:本地方法可以創建、更新并檢查Java對象;Java可以以參數的形式向本地方法傳送任何原始數據類型或對象;本地方法可以向Java環境返回原始的數據類型或對象;Java實例或類方法可以在本地方法中進行調用;本地方法可以實現同步以支持多線程訪問。
[1]彭永林,郝振武,熊泳,龔雪云,王煒.網絡管理方法及網絡管理系統.中興通訊股份有限公司,2011-09-28.
[2]何平.網絡管理功能擴展研究及系統實現[J].西南交通大學,2008-04-01.