快速業務通道

Apusic應用服務器和CORBA互操作 - 編程入門網

作者 佚名技術 來源 NET編程 瀏覽 發布時間 2012-06-25

Apusic應用服務器和CORBA互操作

時間:2007-05-30 服務器在線-doserv

CORBA(Common Object Request Broker Architecture, 公共對象請求代理體系結構)是由OMG(對象管理組織,Object Management Group)提出的應用軟件體系結構和對象技術規范,被廣泛的用來開發分布式系統。Apusic應用服務器是以RMI-IIOP(Remote Method Invocation Internet Inter-ORB Protocol)協議為基礎完成分布式的對象的遠程訪問,因此可以和CORBA對象進行互相調用。并且,Apusic應用服務器還完整的實現了CORBA-EJB映射規范,能夠在多個應用服務器實例和CORBA客戶端之間傳播事務、安全等上下文信息。CORBA和EJB的互操作規范包含以下四個方面: EJB接口到CORBA接口的映射;

JNDI名字到CORBA名稱服務(CosNaming )的映射;

EJB和CORBA之間的事務傳播;

EJB和CORBA之間的安全傳播。

本文將通過一個范例展示CORBA客戶端訪問部署在Apusic上的EJB。雖然這是Apusic和CORBA互操作最簡單的一個方面,并且不涉及安全和事務的傳播,但已經顯示了Apusic在互操作方面的能力和開發的一般步驟。

首先介紹一下服務器和客戶端的開發運行環境。服務器端的環境為:

Windows 2000 Server

JDK1.4.2

Apusic應用服務器3.0

客戶端的環境為:

Windows 2000 Professional

JDK1.4.2

Apusic應用服務器完全支持標準的EJB-CORBA映射,也就是說,EJB的home和remote也是CORBA對象。我們可以使用JDK提供的RMI編譯器rmic -idl為EJB產生CORBA視圖的IDL接口。用來定位EJB home接口的JNDI(Java naming service)被映射成CORBA naming service,這樣,CORBA客戶端就能查找和定位home接口并象CORBA對象一樣使用它們。下圖描述了CORBA客戶端訪問EJB的一般步驟:這些步驟包括:

開發并部署EJB;

使用RMI編譯器rmic -idl為EJB遠程接口產生IDL;

使用CORBA IDL編譯器根據客戶端的程序語言為客戶端產生存根(stub);

配置EJB服務器使用CORBA名稱服務。Apusic缺省就使用CORBA名稱服務作為JNDI 服務的提供者;

CORBA客戶端在CORBA名稱服務中查找和定位EJB;

CORBA客戶端象訪問普通CORBA對象一樣訪問EJB;

首先開發一個EJB模塊,編譯并部署到Apusic應用服務器上。這個例子中的EJB非常簡單,是一個Stateless Session Bean,只包含一個業務方法sayHello。

public java.lang.String sayHello(java.lang.String name) {

String result = "hello, " + name;

System.out.println("invoke sayHello() : " + result);

return result;

}

然后使用RMI編譯器rmic -idl為EJB遠程接口產生IDL:

rmic -idl -noValueMethods

-classpath %apusic_home%/lib/apusic.jar;../ejb/build

-d idl samples.ejb.Hello samples.ejb.HelloHome

理論上可以使用任何CORBA規范支持的程序語言開發CORBA客戶端。本范例展示的是Java CORBA客戶端的開發。使用JDK1.4.2提供的idlj編譯上一步得到的IDL:

idlj -emitAll -i ./idl -i %java_home%/lib

-fclient

-pkgPrefix java apusic

-pkgPrefix javax apusic

-pkgPrefix samples apusic

-td src

./idl/samples/ejb/Hello.idl

idlj -emitAll -i ./idl -i %java_home%/lib

-fclient

-pkgPrefix java apusic

-pkgPrefix javax apusic

-pkgPrefix samples apusic

-td src

./idl/samples/ejb/HelloHome.idl

注意,我們為IDL文件中的java、javax和samples模塊在生成代碼時增加了“apusic”作為package的前綴,這樣可以避免同Java核心API的沖突。

JDK1.4.2提供的idlj編譯器生成的Java代碼包含了bug,必須手工更改這些錯誤。將類_Exception.java,CreateException.java和RemoveException.java中的_re

凌眾科技專業提供服務器租用、服務器托管、企業郵局、虛擬主機等服務,公司網站:http://www.rgckdj.tw 為了給廣大客戶了解更多的技術信息,本技術文章收集來源于網絡,凌眾科技尊重文章作者的版權,如果有涉及你的版權有必要刪除你的文章,請和我們聯系。以上信息與文章正文是不可分割的一部分,如果您要轉載本文章,請保留以上信息,謝謝!

分享到: 更多

Copyright ©1999-2011 廈門凌眾科技有限公司 廈門優通互聯科技開發有限公司 All rights reserved

地址(ADD):廈門軟件園二期望海路63號701E(東南融通旁) 郵編(ZIP):361008

電話:0592-5908028 傳真:0592-5908039 咨詢信箱:[email protected] 咨詢OICQ:173723134

《中華人民共和國增值電信業務經營許可證》閩B2-20100024  ICP備案:閩ICP備05037997號

安徽25选5中奖规则