欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解 Corba開發(fā)之Java實(shí)現(xiàn)Service與Client

 更新時間:2017年10月18日 15:12:59   投稿:lqh  
這篇文章主要介紹了詳解 Corba開發(fā)之Java實(shí)現(xiàn)Service與Client的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
詳解 Corba開發(fā)之Java實(shí)現(xiàn)Service與Client
1      概述

CORBA(Common Object Request Broker Architecture,公共對象請求代理體系結(jié)構(gòu))是由OMG組織制訂的一種標(biāo)準(zhǔn)的面向?qū)ο髴?yīng)用程 序體系規(guī)范?;蛘哒f CORBA體系結(jié)構(gòu)是OMG為解決分布式處理環(huán)境(DCE)中,硬件和軟件系統(tǒng)的互連而提出的一種解決方案。

OMG:Object Management Group,對象管理組織。是一個國際化的、開放成員的、非盈利性的計(jì)算機(jī)行業(yè)標(biāo)準(zhǔn)協(xié)會,該協(xié)會成立于1989年,其職責(zé)是為應(yīng)用開發(fā)提供一個公共框架,制訂工業(yè)指南和對象管理規(guī)范,加快對象技術(shù)的發(fā)展。。任何組織都可以加入OMG并且參與標(biāo)準(zhǔn)制定過程。OMG制定了統(tǒng)一建模語言UnifiedModeling Language?(UML?),模型驅(qū)動架構(gòu)ModelDriven Architecture? (MDA?)等建模標(biāo)準(zhǔn)。使強(qiáng)大的視覺設(shè)計(jì),執(zhí)行和維護(hù)軟件等工序成為可能。并且,OMG還制定了廣為人知的中間件標(biāo)準(zhǔn)CommonObject Request Broker Architecture (CORBA?)。

通用對象代理體系結(jié)構(gòu)CORBA(Common Object Request BrokerArchitecture)是OMG所定義的用來實(shí)現(xiàn)現(xiàn)今大量硬件、軟件之間互操作的解決方案,CORBA也是邁向面向?qū)ο髽?biāo)準(zhǔn)化和互操作的重要一步。

簡單地說,CORBA允許應(yīng)用之間相互通信,而不管它們存在于哪里以及是誰設(shè)計(jì)的,即跨平臺、跨語言。CORBA1.1于1991年由OMG發(fā)布,其中定義了接口定義語言(IDL)以及在對象請求代理(ORB)中實(shí)現(xiàn)客戶對象與服務(wù)器對象之間交互的應(yīng)用編程接口(API)。CORBA2.0于1994年發(fā)布,規(guī)定了各個供應(yīng)商之間的ORB的通信規(guī)則。

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

IDL是CORBA定義的語言,CORBA還定義了IDL到各種語言的映射,標(biāo)準(zhǔn)映射的有Ada、C、C++、Smalltalk、Java、以及Python。有了這些映射,就可以將IDL翻譯成各種語言,從而實(shí)現(xiàn)了跨語言。IDL語言是一種接口定義語言。IDL語言不同于所有已有的程序設(shè)計(jì)語言,它是一種描述性語言,也就是說,用它描述得到的接口是不能直接被編譯執(zhí)行。OMG IDL語言采用ISOLatin-1(8859.1)字符集。該字符集可以分為字母、數(shù)字、圖形符號、空格符、和格式符號。其中字母包括英文26個字母的大小寫,數(shù)字包括10個阿拉伯?dāng)?shù)字0到9。

ORB是CORBA的核心,是對象之間建立Client/Server關(guān)系的中間件。使用ORB,客戶可以透明地調(diào)用一個服務(wù)對象上的方法,這個服務(wù)對象可以在本地,也可以在通過網(wǎng)絡(luò)連接的其他機(jī)器上。ORB截獲這一調(diào)用同時負(fù)責(zé)查找實(shí)現(xiàn)服務(wù)的對象并向其傳遞參數(shù)、調(diào)用方法返回最終結(jié)果??蛻舨⒉恢婪?wù)對象位于什么地方,它的編程語言和操作系統(tǒng)是什么,也不知道不屬于對象接口的其他系統(tǒng)部分。這樣,ORB在異構(gòu)分布環(huán)境下為不同機(jī)器上的應(yīng)用提供了互操作性,并無縫地集成了多種對象系統(tǒng)。

在client端去調(diào)用server端的代碼時,ORB對于client端是不可見的,client感覺好像調(diào)用了自己對象的方法一樣,但是網(wǎng)絡(luò)傳輸?shù)倪^程都被封裝在了ORB中。

 2      idl文件創(chuàng)建

在開發(fā)之前需要按照上一章中配置好Eclipse插件開發(fā)環(huán)境,

1、  客戶端開發(fā)idl文件,idl文件由服務(wù)端接口提供,或者自定義創(chuàng)建,如下圖:



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

2. 選擇IDL文件,右鍵ORBMenu--->Compile,就自動生成相應(yīng)的操作文件

 

自動生成需要的操作文件一共7個;

 

 3       服務(wù)端開發(fā)

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

 

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

   Interface欄選擇IDL文件里定義的接口名

   Package欄里填寫包名

   Server classname欄里填寫服務(wù)端類名

--->Next 在彈出的對話框,選中Createserver class:項(xiàng)


3. 為生成的服務(wù)端類添加未實(shí)現(xiàn)的方法,并填寫方法體

 


至此服務(wù)端配置完成,Server_AOM class為服務(wù)端啟動入口。

 4       客戶端開發(fā)

1、新建java project;

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

 

3.選擇之前的idl文件,

完成后自動生成客戶端文件操作,如下圖:

 

4. 在客戶端類的main方法里,取消注釋test.getORBInterface().operation1("Amessage in the bottle..."); 并調(diào)用之前自定義的方法,修改傳遞的String內(nèi)容。即可完成客戶端調(diào)用。

 備注: 運(yùn)行服務(wù)端程序Server_AOM.java,然后運(yùn)行客戶端程序MyServiceClientImpl.java

至此簡單的Service and client開發(fā)完成!

 如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • java如何獲取實(shí)體類的屬性名和屬性值

    java如何獲取實(shí)體類的屬性名和屬性值

    這篇文章主要介紹了java如何獲取實(shí)體類的屬性名和屬性值問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 利用Java實(shí)體bean對象批量數(shù)據(jù)傳輸處理方案小結(jié)

    利用Java實(shí)體bean對象批量數(shù)據(jù)傳輸處理方案小結(jié)

    javabean是對面向?qū)ο笏枷氲囊环N具體實(shí)施的表現(xiàn),本文重點(diǎn)給大家介紹利用Java實(shí)體bean對象批量數(shù)據(jù)傳輸處理方案小結(jié),本文通過兩種方案給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • 詳解Java打包鏡像部署

    詳解Java打包鏡像部署

    這篇文章主要介紹了Java打包鏡像部署,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2023-11-11
  • java實(shí)現(xiàn)九宮格拼圖游戲

    java實(shí)現(xiàn)九宮格拼圖游戲

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)九宮格拼圖游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 帶著新人看java虛擬機(jī)01(推薦)

    帶著新人看java虛擬機(jī)01(推薦)

    這篇文章主要介紹了java虛擬機(jī),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • java實(shí)現(xiàn)基于SMTP發(fā)送郵件的方法

    java實(shí)現(xiàn)基于SMTP發(fā)送郵件的方法

    這篇文章主要介紹了java實(shí)現(xiàn)基于SMTP發(fā)送郵件的方法,實(shí)例分析了java基于SMTP服務(wù)發(fā)送郵件的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • idea 離線安裝lombok插件的方法步驟(圖文)

    idea 離線安裝lombok插件的方法步驟(圖文)

    這篇文章主要介紹了idea 離線安裝lombok插件的方法步驟(圖文),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • Java 中的位運(yùn)算與移位運(yùn)算詳解

    Java 中的位運(yùn)算與移位運(yùn)算詳解

    這篇文章主要為大家介紹了Java 中的位運(yùn)算與移位運(yùn)算,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • SpringBoot中集成串口通信的項(xiàng)目實(shí)踐

    SpringBoot中集成串口通信的項(xiàng)目實(shí)踐

    本文主要介紹了SpringBoot中集成串口通信,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • SpringBoot從yml配置文件中讀常用參數(shù)值實(shí)例方法

    SpringBoot從yml配置文件中讀常用參數(shù)值實(shí)例方法

    在本篇文章里小編給大家整理了關(guān)于SpringBoot從yml配置文件中讀常用參數(shù)值實(shí)例方法,有需要的朋友們學(xué)習(xí)下。
    2019-12-12

最新評論