首頁  >  文章  >  Java  >  Java實作Service與Client的詳細解(Corba開發)

Java實作Service與Client的詳細解(Corba開發)

黄舟
黄舟原創
2017-10-19 09:38:122346瀏覽

這篇文章主要介紹了詳解Corba開發之Java實現Service與Client的相關資料,希望透過本文能幫助到大家,需要的朋友可以參考下

##詳解Corba開發之Java實作Service與Client

1      概述

CORBA(Common Object Request Broker Architecture,公共物件請求代理體系架構)是由OMG組織化訂的一種標準的物件導向應用程式體系規範。或者說 CORBA體系結構是OMG為解決分散式處理環境(DCE)中,硬體和軟體系統的互連而提出的解決方案。

OMG:Object Management Group,物件管理組織。是一個國際化的、開放成員的、非營利性的電腦行業標準協會,該協會成立於1989年,其職責是為應用開發提供一個公共框架,制訂工業指南和對像管理規範,加快對象技術的發展。 。任何組織都可以加入OMG並且參與標準制定過程。 OMG制定了統一建模語言UnifiedModeling Language?(UML?),模型驅動架構ModelDriven Architecture? (MDA?)等建模標準。使強大的視覺設計,執行和維護軟體等工序成為可能。並且,OMG也制定了廣為人知的中間件標準CommonObject Request Broker Architecture (CORBA?)。

通用物件代理體系結構CORBA(Common Object Request BrokerArchitecture)是OMG所定義的用來實現現今大量硬體、軟體之間互通的解決方案,CORBA也是邁向物件導向標準化且互通的重要一步。

簡單地說,CORBA允許應用程式之間相互通信,而不管它們存在於哪裡以及是誰設計的,即跨平台、跨語言。 CORBA1.1於1991年由OMG發布,其中定義了介面定義語言(IDL)以及在物件請求代理(ORB)中實現客戶物件與伺服器物件之間互動的應用程式介面(API)。 CORBA2.0於1994年發布,規定了各個供應商之間的ORB的通訊規則。

CORBA標準主要分為三個部分:介面定義語言(IDL)、物件請求代理(ORB)以及ORB之間的互通協定IIOP。

IDL是CORBA定義的語言,CORBA也定義了IDL到各種語言的對應,標準映射的有Ada、C、C++、 Smalltalk、Java、以及Python。有了這些映射,就可以將IDL翻譯成各種語言,從而實現了跨語言。 IDL語言是一種介面定義語言。 IDL語言不同於所有已有的程式設計語言,它是一種描述性語言,也就是說,用它描述得到的介面是不能直接被編譯執行。 OMG IDL語言採用ISOLatin-1(8859.1)字元集。此字元集可分為字母、數字、圖形符號、空格符、和格式符號。其中字母包括英文26個字母的大小寫,數字包括10個阿拉伯數字0到9。

ORB是CORBA的核心,是物件之間建立Client/Server關係的中間件。 使用ORB,客戶可以透明地呼叫一個服務物件上的方法,這個服務物件可以在本地,也可以在透過網路連接的其他機器上。 ORB截獲此呼叫同時負責尋找實作服務的物件並向其傳遞參數、呼叫方法傳回最終結果。客戶並不知道服務對象位於什麼地方,它的程式語言和作業系統是什麼,也不知道不屬於物件介面的其他系統部分。這樣,ORB在異質分佈環境下為不同機器上的應用提供了互通性,並無縫地整合了多種物件系統。

在client端去呼叫server端的程式碼時,ORB對於client端是不可見的,client感覺好像呼叫了自己物件的方法一樣,但是網路傳輸的過程都被封裝在ORB中了。

 2      idl檔案建立

在開發前需要依照上一章設定好Eclipse外掛程式開發環境,

1、  用戶端開發idl文件,idl文件由服務端介面提供,或自訂創建,如下圖:




modulehelloapp {
  interfaceHello {
    string sayHello();
    oneway void shutdown();
  };
};

2. 選擇IDL文件,右鍵ORBMenu--->Compile,就自動產生對應的操作文件

 

##自動產生所需的操作文件共7個;

 

 3       服務端發展

1.      src上右鍵New--->Other-- ->CORBAWizard--->Server--->Active object map--->Next如下圖:

 

 2.      在彈出的對話方塊中IDL filename欄選擇/{projectName}/src/{IDLname}.idl

   Interface欄選擇IDL檔案定義的介面名稱

## 欄位填寫服務端類別名稱

   Server classname欄填入服務端類別名稱

--->Next 在彈出的對話方塊,選取Createserver class:項目


3. 為產生的服務端類別新增未實作的方法,並填入方法體

 


至此服務端設定完成,Server_AOM class為服務端啟動入口。

 4       用戶端開發

1、新java project;

2.src上右鍵New--->Other---> ;CORBA Wizard--->IDL files--->Simple IDL,如下圖:

 

3.選擇先前的idl文件,

完成後自動產生客戶端檔案操作,如下圖:

 

4. 在客戶端類別的main方法裡,取消註解test .getORBInterface().operation1("Amessage in the bottle..."); 並呼叫先前自訂的方法,修改傳遞的String內容。即可完成客戶端呼叫。

 備註: 執行服務端程式Server_AOM.java,然後執行客戶端程式MyServiceClientImpl.java


至此簡單的Service and client開發完成!

以上是Java實作Service與Client的詳細解(Corba開發)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn