狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频

當前位置:系統之家 > 技術開發教程 > 詳細頁面

運用JAVA開發CORBA應用

運用JAVA開發CORBA應用

更新時間:2024-04-11 文章作者:未知 信息來源:網絡 閱讀次數:

■CORBA技術簡介   

簡單地說,CORBA允許應用之間相互通信,而不管它們存在于哪里以及是誰設計的。CORBA1.1于1991年由OMG發布,其中定義了接口定義語言(IDL)以及在對象請求代理(ORB)中實現客戶對象與服務器對象之間交互的應用編程接口(API)。CORBA2.0于1994年發布,規定了各個供應商之間的ORB的通信規則。  

CORBA標準主要分為三個部分:接口定義語言(IDL)、對象請求代理(ORB)以及ORB之間的互操作協議IIOP。  

ORB是對象之間建立Client/Server關系的中間件。使用ORB,客戶可以透明地調用一個服務對象上的方法,這個服務對象可以在本地,也可以在通過網絡連接的其他機器上。ORB截獲這一調用同時負責查找實現服務的對象并向其傳遞參數、調用方法返回最終結果。客戶并不知道服務對象位于什么地方,它的編程語言和操作系統是什么,也不知道不屬于對象接口的其他系統部分。這樣,ORB在異構分布環境下為不同機器上的應用提供了互操作性,并無縫地集成了多種對象系統。  

在開發傳統的Client/Server應用時,開發者使用他們自己設計的或一個公認的標準來定義用于設備之間通信的協議。協議的定義依賴于實現語言、網絡傳輸和許多其他因素,而ORB的出現簡化了這一過程。使用ORB時,協議是使用接口定義語言(IDL)定義的,而IDL是獨立于語言的。并且ORB提供很強的靈活性,它使程序員選擇最適合的操作系統、執行環境,甚至系統各個組件也可以采用不同的編程語言實現。更重要的是,它允許現有組件的集成。在一個基于ORB的解決方案中,開發者可以使用與創建新對象一樣的IDL對遺留系統進行建模,他們創建“包裝”代碼以在標準化的軟件總線與遺留系統接口之間傳遞信息。  

使用CORBA,用戶可以透明地訪問信息,并不需要知道信息存在于什么軟件中、使用什么硬件平臺,以及位于企業網絡的什么地方。作為面向對象系統的通信核心,CORBA為今天的計算環境帶來了真正的互操作性。

■CORBA與JAVA的相互關系   

CORBA不只意味著對象請求代理(ORB),它還是非常全面的分布式對象平臺。CORBA使JAVA應用可以跨越網絡、語言以及操作系統,并為JAVA提供了一組分布服務,如分布式自我觀察、動態發現、事務、關系、安全和命名等! 

JAVA不僅是一種語言,它還是一個動態代碼系統,它對運行對象來說是一個可移植的虛擬機(JVM)。JAVA為開發、管理、發布Client/Server應用提供了更簡單的方式。人們可以通過將應用放在一個Web服務器上將這一應用發布給成千上萬個用戶,而不必關心它的安裝和升級。JAVA還非常適合服務器的開發,它可以動態地將服務代碼移向最需要它們的地方! 

JAVA將會使CORBA對象能夠運行在從主機、網絡計算機到蜂窩電話等可編程的各種機器上,并簡化了大型CORBA系統的代碼發布。對客戶和服務對象來說JAVA是很理想的編程語言,JAVA內置的多線程、垃圾收集和錯誤處理使編寫健壯的網絡對象變得很容易。  

這兩種對象模型可以很好地相互補充,CORBA處理網絡的透明性,JAVA處理實現的透明性,CORBA為JAVA可移植應用環境提供了一個分布式的結構。

■使用JAVA開發CORBA應用   

下面讓我簡要介紹一下開發CORBA的步驟。  

使用JAVA開發CORBA應用需要如下五個步驟:  

使用IDL創建接口 (About.idl)
  下面的OMG IDL描述一個CORBA對象。
  module About
  {
   interface Show
   {
   string ShowName();
   };
  };
  將其存為Show.idl。  
編譯接口并生成CORBA支持文件
  我們用以下命令編譯這個 IDL 接口:
   idltojava Show.idl
  idltojava是SUN公司的IDL編譯器,可以免費從SUN公司站點上下載。
  因為idltojava在編譯IDL文件之前,需要進行預編譯,而如果你的機器上沒有預編譯器,可以使用以下命令:
  idltojava -fno-cpp Show.idl
  編譯后將在當前目錄下生成About子目錄,其中會包括一些支持文件,如有興趣可以看一下,但一定不要修改! 
實現服務器 (ShowServer.java)
  ShowServer的main() 方法,可完成以下任務:
  
創建一個 ORB 實例
創建一個服務對象實例(CORBA About 對象的實現)并通知 ORB
獲取一個命名上下文的CORBA對象引用,在該命名上下文中注冊新的CORBA對象
在命名上下文中將新對象注冊在“About”名下
等待對新對象的調用
  實現服務器源程序如下:
  import About.;
  import org.omg.CosNaming.;
  import org.omg.CosNaming.NamingContextPackage.;
  import org.omg.CORBA.;
  class ShowObject extends _ShowImplBase
  {
   public String ShowName()
   {
   return "\nMy name is Seymour!!\n";
   }
  }
  public class ShowServer {
   public static void main(String args[])
   {
   try{
   // 創建和初始化 ORB
   ORB orb = ORB.init(args, null);
   // 創建服務對象并將其向 ORB 注冊
   ShowObject ShowRef = new ShowObject();
   orb.connect(ShowRef);
   // 獲取根命名上下文
   org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService");
   NamingContext ncRef = NamingContextHelper.narrow(objRef);
   // 綁定命名中的對象引用
   NameComponent nc = new NameComponent("About", "");
   NameComponent path[] = {nc};
   ncRef.rebind(path, ShowRef);
   // 等待來自客戶機的調用
   java.lang.Object sync = new java.lang.Object();
   synchronized (sync) {
   sync.wait();
   }
   } catch (Exception e) {
   System.err.println("ERROR: " + e);
   e.printStackTrace(System.out);
   }
   }
  }
  
實現客戶機 (ShowClient.java)
  下面的應用程序客戶機將完成以下任務:
  
創建一個ORB;
獲取一個指向命名上下文的引用;
在命名上下文中查找“Show”并獲得指向該 CORBA 對象的引用;
調用對象的 ShowName() 操作并打印結果。
 
  import About.;
  import org.omg.CosNaming.;
  import org.omg.CORBA.;
  public class ShowClient
  {
   public static void main(String args[])
   {
   try{
   // 創建和初始化 ORB
   ORB orb = ORB.init(args, null);
   // 獲取根命名上下文
  org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService");
  NamingContext ncRef = NamingContextHelper.narrow(objRef);
  //解析命名中的對象引用
  NameComponent nc = new NameComponent("About", "");
  NameComponent path[] = {nc};
  About.Show ShowRef = ShowHelper.narrow(ncRef.resolve(path));
  // 調用 Show 服務對象并打印結果
   String show = ShowRef.ShowName();
   System.out.println(show);
   } catch (Exception e) {
   System.out.println("ERROR : " + e) ;
   e.printStackTrace(System.out);
   }
   }
  }
構建和運行ShowName程序  
編譯 .java 文件,包括 stub 和 skeleton(在About目錄中):
javac .java About/.java   
啟動一個MS-DOS命令解釋器,輸入以下命令,確保名字服務器處于運行狀態:
tnameserv -ORBInitialPort 1050  
啟動另一個MS-Dos命令解釋器,輸入以下命令,啟動Show服務器:
java ShowServer -ORBInitialPort 1050
再啟動一個MS-Dos命令解釋器Show應用程序客戶機:
java ShowClient -ORBInitialPort 1050
  
這時屏幕上會出現“My name is Seymour!”的字樣,說明實驗已經成功了。
  本示例程序在Windows 98、Java 1.2.2平臺下實現。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频
精品国产乱码久久久久久久久 | 亚洲高清在线视频| 久久久欧美精品sm网站| 精品久久久久久久久久久久久久久久久| 久久综合导航| 色综合久久九月婷婷色综合| 亚洲一区二三| 乱人伦精品视频在线观看| 亚洲欧美网站| 欧美综合一区二区三区| 欧美日韩亚洲综合| 91精品国产麻豆| 精品日韩在线一区| 中文字幕免费在线观看视频一区| 久久九九99视频| 国产精品伦理在线| 一区二区三区蜜桃网| 亚洲一二三区视频在线观看| 男女性色大片免费观看一区二区| 裸体健美xxxx欧美裸体表演| 国产裸体歌舞团一区二区| www.色综合.com| 亚洲视频狠狠| 色婷婷亚洲综合| 日韩一卡二卡三卡国产欧美| 久久久精品免费免费| 亚洲日本在线天堂| 日本在线播放一区二区三区| 丁香啪啪综合成人亚洲小说| 欧美日韩三区| 久久久天天操| 亚洲精品一区二区三区蜜桃下载 | 亚洲综合久久久久| 另类小说视频一区二区| 91婷婷韩国欧美一区二区| 一本综合久久| 91精品麻豆日日躁夜夜躁| 欧美国产亚洲另类动漫| 性做久久久久久| av在线播放成人| 国产欧美一区二区三区另类精品| 在线亚洲人成电影网站色www| 日韩视频永久免费| 亚洲精品v日韩精品| 黄色资源网久久资源365| 欧美激情aⅴ一区二区三区| 久久精品道一区二区三区| 欧美成人伊人久久综合网| 亚洲免费观看高清完整版在线| 黄色资源网久久资源365| 国内在线观看一区二区三区| 91福利视频在线| 国产精品毛片大码女人| 久久国产视频网| 亚洲乱码视频| 91精品国产欧美一区二区18 | 裸体歌舞表演一区二区| 亚洲大胆av| 欧美一区二区三区免费视频| 一区二区三区中文免费| 成人免费视频视频| 色婷婷av一区二区三区大白胸| 欧美激情在线免费观看| 捆绑变态av一区二区三区| 伊甸园精品99久久久久久| 91精品在线免费观看| 亚洲午夜精品网| 欧美1区视频| 56国语精品自产拍在线观看| 亚洲国产美女搞黄色| 欧美一区免费视频| 日韩欧美亚洲另类制服综合在线| 日韩专区一卡二卡| 99精品国产高清一区二区| 国产婷婷色一区二区三区在线| 韩国av一区二区三区四区 | 久久综合色8888| 国产精品一区二区黑丝| 色偷偷88欧美精品久久久| 亚洲精品国产无天堂网2021| 欧美精品系列| 久久免费精品国产久精品久久久久| 精品一区二区影视| 一本大道久久a久久精二百| 亚洲综合在线电影| 在线观看视频免费一区二区三区| 久久在线免费观看| 成人黄色免费短视频| 7777精品伊人久久久大香线蕉的| 蜜桃av噜噜一区二区三区小说| 免费在线亚洲| 亚洲6080在线| 免费视频久久| 天天做天天摸天天爽国产一区| 国产欧美日韩一区二区三区| 国产精品国产三级国产aⅴ入口| 91麻豆精品视频| 久久久精品黄色| 欧美96在线丨欧| 国产精品色哟哟| 欧美精品入口| 国产精品卡一卡二卡三| 伊人久久亚洲美女图片| ㊣最新国产の精品bt伙计久久| 国产精品啊啊啊| 最近中文字幕一区二区三区| 亚洲高清视频在线观看| 亚洲精品v日韩精品| 欧美亚洲在线| 久久精品久久久精品美女| 欧美日韩精品免费观看视频| 极品美女销魂一区二区三区| 51精品视频一区二区三区| 不卡视频一二三| 中文久久乱码一区二区| 在线精品一区| 天堂久久久久va久久久久| 欧美三片在线视频观看| 成人永久aaa| 国产日本欧美一区二区| 日韩亚洲国产精品| 日韩av电影一区| 欧美一区二区观看视频| 欧美在线观看天堂一区二区三区| 国产精品国产馆在线真实露脸| 夜夜嗨一区二区三区| 麻豆专区一区二区三区四区五区| 911国产精品| 午夜久久福利| 亚洲成av人在线观看| 在线观看91精品国产麻豆| 色综合咪咪久久| 午夜视频在线观看一区二区| 欧美一卡在线观看| 精品999成人| 奇米色一区二区| 久久久亚洲精品石原莉奈| 亚洲精品一区二区三区蜜桃久 | av成人黄色| 国产美女一区二区三区| 国产精品久久久久久久久快鸭| 久久精品一区二区国产| 99久久精品国产毛片| 一区二区三区四区不卡在线| 欧美日韩第一区日日骚| 亚洲午夜精品久久久久久app| 首页亚洲欧美制服丝腿| 2024国产精品| 91久久免费观看| 91麻豆国产在线观看| 免费观看在线综合色| 久久精品男人的天堂| 日本道精品一区二区三区| 色综合一区二区| 捆绑调教一区二区三区| 中文字幕视频一区| 91麻豆精品国产91久久久| 亚洲免费精品| 99久久夜色精品国产网站| 日韩电影在线看| 国产精品久久福利| 日韩丝袜情趣美女图片| 玖玖精品视频| 国产在线成人| 成人黄色片在线观看| 日韩影院在线观看| 亚洲国产精品黑人久久久| 91精品中文字幕一区二区三区| 亚洲一区二区四区| 欧美激情成人在线| 国产aⅴ精品一区二区三区色成熟| 亚洲高清一区二区三区| 国产精品亲子伦对白| 欧美刺激脚交jootjob| 欧美日韩中文另类| 国产精品一区二区a| 亚洲午夜一区| 欧美一区91| 东方欧美亚洲色图在线| 另类中文字幕网| 日韩中文字幕麻豆| 亚洲午夜精品17c| 亚洲色图欧洲色图| 日本一区二区三区四区| 精品国一区二区三区| 欧美妇女性影城| 日本电影欧美片| 色综合久久88色综合天天 | 国产精品三级视频| 国产欧美一区二区三区在线老狼| 欧美一区二区播放| 日韩三级在线观看| 欧美一级爆毛片| 555夜色666亚洲国产免| 欧美色电影在线| 欧美视频一区二区三区在线观看 | 亚洲综合一区在线| 亚洲综合在线五月| 性欧美疯狂xxxxbbbb| 亚洲一区二区三区中文字幕在线|