分享
 
 
 

Beans入门必读之高级EJB的概念

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

CORBA and RMI-IIOP

与corba联合使得EJB的客户可以方便的移植corba应用程序。使EJB与已存在的非java语言的(例如C++、COBOL)现有系统整合起来。实事上,Corba和EJB有非常密切的联系。J2EE中许多的概念来源于corba.

Corba是EJB的基础

许多的EJB的概念都来自于corba。EJB和J2EE带来的是java为中心的,基于组件的,适合快速应用开发的中间件程序结构。使用corba,要求写复杂的中间件API的程序,这无疑要求增加对于corba程序的了解程度。这就是为什么EJB和J2EE比corba更时候快速开发的原因。因为EJB正式被行业支持。(有25家之多正在同时开发EJB产品)。

尽管如此,corba还是非常重要的技术。对高级中间件开发非常有用。事实上,市场上大多数的EJB产品都基于corba,同时也在大量的使用corba的概念。

我们为什么要关心corba

You can use CORBA for legacy integration.

CORBA allows for advanced middleware development.

CORBA and EJB have hooks connecting them.

使用corba的益处

corba不受某个公司控制

corba是独立于语言的

Corba提供增加服务的可选性

Corba的缺点

Corba的发展受到限制:因为是一个组织,因此对于某些新特征,OMG采用的比较慢。

Corba不宜于学习

基于corba的产品可以有不协调的特征。

Corba如何工作

The ORB facilitates your networking needs.

对象实现和对象参考

对象适配器

仓库:接口仓库和实现仓库

OMG的接口定义语言

语言映射(idl-java/idl-c++)

静态调用

Calling a method in CORBA.

动态调用

corba的各种服务

名字服务/事件服务/对象事务服务/并发控制服务/安全服务

corba组件

参考规范ftp://ftp.omg.org/pub/docs/orbos/98-12-02.pdf

IIOP之上的RMI

RMI和corba协同性的需要

Corba是分布式对象的标准,RMI可以方便的建立基于java的简单分布式对象通讯。RMI没有corba的多语言性,但非常适合纯java的开发。

虽然RMI和corba非常相似,但它们也有不相容的一面,当用java RMI编写代码时,需要使用RMI API。而用corba编代码时,必须使用corba API。这对于代码重用是非常不利的。理想上,我们希望:

将客户端java RMI与服务端的corba结合:可以通过corba API写对象实现,用RMI API写的客户端代码可以调用corba对象。

RMI的客户端调用corba对象的实现

反之也可以。

A CORBA client calling an RMI remote object implementation.

Corba和rmi的结合

Corba和rmi使用预生成的stubs和skeletons执行网络通讯。

在幕后,corba使用iiop作为执行C/S通讯的协议。这在stub/skeleton层之下。

在幕后,java RMI使用java远程方法调用协议(JRMP)执行C/S通讯,这在stub/skeleton层之下。

因此,corba和rmi在如何执行远程调用是非常相似的。它们都有一个API(stub/skeletons)层。分别通过iiop和jrmp传输数据。

因此协议的使用成为corba和rmi协同的关键。Rmi总是期待着通过jrmp协议的请求,而corba则期待iiop协议的请求。要实现两种协议的切换,可以执行:

1、 rmi客户端使用rmi api编写。在rmi stub上调用一个方法。

2、 rmi stub联系一个本地的orb,使用iiop作为服务方通讯的本地协议,代替标准的jrmp协议。

3、 在服务方,orb等待接受iiop的请求,orb是对于corba对象实现的纯的corba skeleton。Orb接收请求。因为使用iiop,请求看来好像来自corba的客户端。事实上它来自使用iiop协议的rmi客户端

4、 orb传递请求给corba skeleton,这代表着corba对象实现的调用。

5、 当调用完成时,返回的结果被回馈给纯corba skeleton。Orb将结果送回iiop.

6、 客户端的orb接受通过iiop返回的结果,返回给rmi客户端的stub然后将控制权返回给rmi的客户代码。

这样是完美的。因为它使用java客户端通过rmi api调用corba对象上的方法,相反,也是完美的。

Iiop之上的rmi的优点:

Rmi和corba代码实现了可复用性。

可已用多种语言来写代码调用rmi对象实现。

Rmi客户端可以被整合到系统中去。

IIOP gives RMI robust firewall navigation.

IIOP gives RMI a portable way to propagate contexts.

RMI object implementations can be invoked dynamically.

整合rmi和corba时出现的问题

参数传递约定的不同

解决办法:The OMG Objects-by-Value Specification

If the parameter is primitive or implements java.io.Serializable, it is

passed by value.

If the parameter implements java.rmi.Remote, it is passed by reference.

Rmi和corba语义的不同

Distributed garbage collection.

Narrowing.

Java RMI programmers don’t want to learn OMG IDL.

解决办法:The Java-to-IDL Mapping Specification

rmi和corba协同工作的实例:

带corba对象实现的rmi-iiop客户端

1、 写rmi远程接口

2、 生成iiop stubs之上的客户端rmi

3、 生成omg idl

4、 生成服务器端需要的corba文件

5、 书写客户端和服务端

带rmi-iiop对象实现的corba客户端

1、 写rmi远程接口

2、 生成iiop skeleton之上的服务端rmi

3、 生成omg idl

4、 生成所需的客户端corba文件

5、 写客户和服务端

使用rmi-iiop可能的组合

rmi-iiop API

javax.rmi.

javax.rmi.CORBA.

iiop之上的rmi客户端怎样找到网络上的对象呢?客户端可以使用rmi的naming.lookup()找到对象。

Corba和ejb整合

Corba和ejb整合的优点

这正在发展的幼年期。

Corba和ejb整合的设想

基于corba的ejb服务端

纯粹的ejb服务端

Java RMI-IIOP client with a CORBA-based EJB server.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有