狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美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视频
亚洲午夜在线电影| 国产精品88av| 亚洲黄一区二区三区| 欧美激情综合在线| 久久久亚洲综合| 久久精品亚洲乱码伦伦中文| 欧美电影免费观看高清完整版| 欧美丰满少妇xxxxx高潮对白| 欧美日韩一区视频| 欧美日韩高清一区二区三区| 欧美日本高清视频在线观看| 在线成人免费观看| 91精品黄色片免费大全| 日韩欧美成人一区| 久久久久国产精品人| 国产三级一区二区三区| 中文一区二区在线观看| 中文在线资源观看网站视频免费不卡 | 国产精品18久久久久久久久| 国产精品一区二区三区乱码| av在线这里只有精品| 91美女精品福利| 99精品国产99久久久久久福利| 久久国产日本精品| 欧美日韩久久久一区| 精品精品欲导航| 中文字幕一区二区三区视频| 香蕉加勒比综合久久| 韩国av一区二区| 国产精品对白刺激久久久| 国产伦精品一区二区三区高清版| 色美美综合视频| 日韩欧美一级二级三级| 国产精品国产三级国产普通话三级| 一区二区三区中文字幕在线观看| 美女爽到高潮91| 欧美一区免费视频| 久久亚洲国产精品日日av夜夜| 欧美日韩在线播放| 国产精品美日韩| 秋霞影院一区二区| 91在线观看视频| 久久久久久久高潮| 2017欧美狠狠色| 天堂成人国产精品一区| 国产不卡视频一区二区三区| 亚洲人成毛片在线播放女女| 欧美日韩一区二区在线观看| 亚洲国产成人午夜在线一区| 免费看日韩a级影片| 欧美在线资源| 日本国产一区二区| 中文字幕乱码日本亚洲一区二区 | 免费观看久久久4p| 国产中文一区二区| 69堂国产成人免费视频| 亚洲精品乱码久久久久久黑人| 国产一区欧美二区| 中国成人亚色综合网站| 欧美tickling挠脚心丨vk| 亚洲高清久久久| 欧美日韩国产探花| 欧美一级生活片| 亚洲风情在线资源站| 91在线精品一区二区| 欧美亚州韩日在线看免费版国语版| 欧美—级在线免费片| 国产乱人伦精品一区二区在线观看| 亚洲茄子视频| 精品99一区二区三区| 精品一区二区三区香蕉蜜桃| 99热这里只有精品8| 国产婷婷色一区二区三区四区| 蜜桃精品在线观看| 亚洲自啪免费| 亚洲精品国产精华液| 91免费看片在线观看| 欧美精品第1页| 日本在线不卡视频| 1024精品一区二区三区| 久久伊人中文字幕| 国产精品一二三四区| 在线精品亚洲一区二区不卡| 亚洲人123区| 91麻豆国产在线观看| 欧美va亚洲va| 国产精品99精品久久免费| 欧美最猛黑人xxxxx猛交| 亚洲成人午夜影院| 亚洲欧美国产精品桃花| 亚洲精品国产高清久久伦理二区| 成人av电影免费在线播放| 91麻豆精品国产91久久久久久| 欧美96一区二区免费视频| 久久精品中文| 五月综合激情婷婷六月色窝| 亚洲欧美日韩精品久久久 | 麻豆国产精品777777在线| 久久国产精品免费一区| 亚洲资源中文字幕| 亚洲在线播放| 午夜国产不卡在线观看视频| 久久国产精品高清| 日本欧美韩国一区三区| 色视频一区二区| 美女性感视频久久| 欧美日韩一区二区三区免费看| 麻豆成人av在线| 欧美日韩一区小说| 国产不卡视频在线观看| 久久一区二区三区四区| 欧美 日韩 国产一区二区在线视频| 久久综合999| 欧美黄色大片网站| 亚洲精品视频在线看| 亚洲欧美日本日韩| 久久精品国产第一区二区三区| 欧美日韩国产另类不卡| 成人午夜大片免费观看| 欧美国产日韩在线观看| 在线亚洲成人| 久久99深爱久久99精品| 日韩女优电影在线观看| 欧美伊人影院| 亚洲精品国产一区二区三区四区在线 | 99国产精品一区| 最新成人av在线| 色欧美片视频在线观看在线视频| 国产综合色视频| 国产日韩三级在线| 新狼窝色av性久久久久久| 亚洲一区二区精品久久av| 在线观看日韩av先锋影音电影院| 国产精品888| 中文字幕一区日韩精品欧美| 蜜乳av另类精品一区二区| 国产麻豆一精品一av一免费| 欧美激情自拍偷拍| 色婷婷国产精品| 欧美一区久久| 日韩成人dvd| 国产欧美久久久精品影院| 久久精品毛片| 欧美一区免费视频| 日本sm残虐另类| 欧美经典一区二区| 久久亚洲精品欧美| 色综合久久综合中文综合网| 五月天激情小说综合| 欧美精品一区二区不卡| 欧美专区18| 欧美精品七区| 精品一区二区三区日韩| 国产精品久久久久婷婷| 欧美日韩在线亚洲一区蜜芽| 伊人久久大香线蕉综合热线| 美女诱惑一区二区| 亚洲精品中文字幕在线观看| 91精品国产一区二区三区蜜臀| 一本色道久久综合亚洲精品婷婷| 国产精品一区专区| 午夜精品久久久久影视| 欧美精彩视频一区二区三区| 欧美日韩mp4| 国产日韩欧美三区| 欧美一区三区二区在线观看| 久草在线在线精品观看| 一区二区在线观看免费视频播放| 精品福利av导航| 欧美日韩国产另类不卡| 亚洲免费综合| 激情六月综合| 91偷拍与自偷拍精品| 极品少妇xxxx精品少妇偷拍| 亚洲国产成人精品视频| 国产精品人人做人人爽人人添| 7878成人国产在线观看| 蜜桃久久精品乱码一区二区| 永久域名在线精品| 色综合天天在线| 风间由美一区二区三区在线观看| 日韩精品欧美成人高清一区二区| 亚洲色图在线播放| 中文字幕va一区二区三区| 欧美大黄免费观看| 6080yy午夜一二三区久久| 色悠悠久久综合| 久久亚洲风情| 久久久精品性| 午夜亚洲性色视频| 一本不卡影院| 一区二区三区视频在线播放| 影音国产精品| 亚洲黄色免费| 亚洲福利av| 宅男噜噜噜66一区二区| 一区二区日本视频| 亚洲激情啪啪| 亚洲伦伦在线| 亚洲欧美卡通另类91av|