這篇文章主要介紹了詳解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:項目
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以上是Java實作Service與Client的詳細解(Corba開發)的詳細內容。更多資訊請關注PHP中文網其他相關文章!