程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> 基於Java的企業分布式應用

基於Java的企業分布式應用

編輯:JAVA編程入門知識

  隨著電力企業信息化建設的不斷深入和發展,企業內部和企業與企業之間對信息、對數據的交換量大大增加,這些信息與數據越來越需要在不同的計算機網絡間傳送和交流。同時,由於各單位、各部門之間的現存的計算機網絡硬件設備與操作系統千差萬別,應用水平也參差不齊,因此,開發出跨平台、可移植、高效安全的網絡分布式應用來服務於電力企業,就顯得尤為重要。

  在當今的編程術語裡,分布式計算已經成為很常見的詞,它將企業的業務數據和程序分布在網絡的不同物理位置上,通過調動網絡上多台計算機的處理能力,發揮遠程調用數據的功能。

  遠程方法調用(Remote Method Invocation ,RMI),可以在不同的Java虛擬機(JVM)之間實現對象與對象的通信。JVM可以位於相同或不同計算機上,在多個JVM中,一個JVM可以調用存儲在其它JVM的對象的方法。

  本文主要介紹RMI的特點,分析應用RMI進行企業分布式計算的原理,以及利用RMI實現基於Java的企業分布式應用的具體步驟。

  遠程方法調用(RMI)的特點

  1、TCP編程的缺點

  由於Java編程語言設計之初就是面向對象和支持網絡的,因此,基於對象的RMI機制已經內置在Java平台中。

  我們經常會在網絡開發中使用TCP/IP編程,這樣,自然而然地就會涉及到Socket(套接字)編程。但是,使用Socket編程需要大量重復編碼,在復雜分布式操作時顯得非常麻煩,而且易於出錯。因此,如何快速、高效、安全、可擴展地進行網絡分布式計算,是開發者們一貫追求和倡導的主題。直到RMI的出現,這種繁雜、低效的開發情況才有很大改觀。

  2、RMI編程的特點

  當我們利用對象序列化在網絡上分配對象時,RMI提供了非Java平台無法匹敵的獨特而強大的分布式計算模型,RMI主要有以下特點:

   客戶機可以向本地方法一樣調用遠程服務器上的方法;

   可以根據接口指定客戶機/服務器編程合約;

   可以從服務器對象缺省二進制類文件,自動生成調動/反調動代碼;

   將Java編程模型擴展到機器邊界(和Java虛擬機(JVM)邊界之外),不需要任何特殊語法;

   還可以和一個遠程方法調用中的數據同時傳輸行為(代碼)。

  盡管RMI不是唯一的企業級遠程對象訪問方案,但它卻是最容易實現的。

  3、RMI與CORBA

  作為分布式應用程序框架的規范,COBRA首當其沖,它是由對象管理組織(OMG)開發的。與CORBA不同的是,CORBA能夠利用不同編程語言(例如C/C++、Basic等)開發實現分布式應用,而RMI是一種純Java解決方案。在RMI中,程序的所有部分都由Java語言編寫,這樣,開發出來的程序完全符合Java規范,便於實現跨平台訪問、擴展和移植。按照筆者所在西北電力建設集團公司的情況看,服務器操作系統主要有Linux和Windows2000 Server,分別存在於公司和部門當中,它們是不同的系統平台;同時,公司下屬各個工程項目部又距離很遠,近的幾十公裡,遠則達到上千公裡甚至位於國外,因此跨平台和遠程訪問這兩大功能在開發企業應用系統時就必須考慮,而RMI恰恰能夠用它的自身特點來滿足編程需要。

  RMI基本體系結構簡介

  RMI通過TCP/IP在內部使用Socket,象其名稱暗示的那樣,它能夠幫助我們查找並執行遠程對象的方法。RMI的目的是讓位於不同JVM中的對象,在外觀及行為上都像是本地的對象。

  通常,我們把調用這種遠程對象的JVM,稱為客戶機;而把包括這種遠程對象的JVM,稱為服務器。

  盡管對一個遠程對象的引用和獲得對本地對象的引用有所不同,但我們可以把遠程對象像本地對象一樣使用。應用程序並不知道一個對象是遠程的還是本地的。實際上,遠程對象上被調用的方法與本地對象上調用的方法,具有相同的語法結構。

  作為RMI的底層(會包含復雜的Socket操作),它會自動截獲方法調用,找到遠程對象,然後處理遠程請求。筆者認為,RMI設計的重要之處,就在於不但在設計上實現了遠程訪問功能,而且實現了設計的透明性。

  • 首頁
  • 上一頁
  • 1
  • 2
  • 3
  • 4
  • 下一頁
  • 尾頁
  • 共4頁
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved