⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 master-ejb-7.htm

📁 写给JSP初级程序员的书
💻 HTM
字号:
<html><!-- #BeginTemplate "/Templates/more.dwt" -->
<head>
<!-- #BeginEditable "doctitle" --> 
<title>csdn_精通ejb【七】</title>
<!-- #EndEditable -->
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<STYLE type=text/css>
A:link {
	COLOR: #000000; FONT-FAMILY:verdana,宋体,新宋体; TEXT-DECORATION: none
}
A:visited {
	COLOR: #333399; FONT-FAMILY:verdana,宋体,新宋体; TEXT-DECORATION: none
}
A:active {
	COLOR: #ff0000; FONT-FAMILY:verdana,宋体,新宋体; TEXT-DECORATION: none
}
A:hover {
	COLOR: black; TEXT-DECORATION: underline
}
BODY {
	 COLOR: #000000; FONT-SIZE:9pt; LETTER-SPACING: normal; LINE-HEIGHT: 150%; WORD-SPACING: 2em
}
TH {
	FONT-SIZE: 9pt
}
TD {
	FONT-SIZE: 9pt
}
TD.page {
	COLOR: #000000; FONT-SIZE:9pt; LETTER-SPACING: normal; LINE-HEIGHT: 150%; WORD-SPACING: 2em
}
TD.title {
	COLOR: #000000; FONT-FAMILY:verdana,宋体,新宋体
}
TD.detail {
	COLOR: #9966ff; FONT-FAMILY:verdana,宋体,新宋体
}
</STYLE>

</head>

<body bgcolor="#FFFFFF" text="#000000" >
<div align="center"></div>
<table width="700" border="0" align="center">
  <tr> 
    <table width="700" border="1" cellpadding="1" cellspacing="0" bordercolorlight="#9898ba" bordercolordark="#000000">
        
      </table>
      <table width="700" cellspacing="0" cellpadding="0" bgcolor="9898ba" border="0">
        <tr valign="middle"></tr>
      </table>
      <div align="center"><b></div>
     
      <br>
      <table width="700" border="0">
        <tr> 
          <td width="20">&nbsp;</td>
          <td colspan="2"> 
            <div align="center">
              <h3><b><!-- #BeginEditable "5" -->
              <h3><font face="Verdana, Arial, Helvetica, sans-serif" ><b>精通ejb【七】</b></font></h3>
              <!-- #EndEditable --></b></h3>
            </div>
          </td>
          <td width="20">&nbsp;</td>
        </tr>
        <tr> 
          <td width="20">&nbsp;</td>
          <td  colspan="2"><!-- #BeginEditable "6" --> 
            <p>高级EJB的概念 </p>
            <p>CORBA and RMI-IIOP <br>
              与corba联合使得EJB的客户可以方便的移植corba应用程序。使EJB与已存在的非java语言的(例如C++、COBOL)现有系统整合起来。实事上,Corba和EJB有非常密切的联系。J2EE中许多的概念来源于corba. 
              <br>
              Corba是EJB的基础 <br>
              许多的EJB的概念都来自于corba。EJB和J2EE带来的是java为中心的,基于组件的,适合快速应用开发的中间件程序结构。使用corba,要求写复杂的中间件API的程序,这无疑要求增加对于corba程序的了解程度。这就是为什么EJB和J2EE比corba更时候快速开发的原因。因为EJB正式被行业支持。(有25家之多正在同时开发EJB产品)。 
              <br>
              尽管如此,corba还是非常重要的技术。对高级中间件开发非常有用。事实上,市场上大多数的EJB产品都基于corba,同时也在大量的使用corba的概念。 
              <br>
              我们为什么要关心corba <br>
              You can use CORBA for legacy integration. <br>
              CORBA allows for advanced middleware development. <br>
              CORBA and EJB have hooks connecting them. <br>
              使用corba的益处 <br>
              corba不受某个公司控制 <br>
              corba是独立于语言的 <br>
              Corba提供增加服务的可选性 <br>
              Corba的缺点 <br>
              Corba的发展受到限制:因为是一个组织,因此对于某些新特征,OMG采用的比较慢。 <br>
              Corba不宜于学习 <br>
              基于corba的产品可以有不协调的特征。 <br>
              Corba如何工作 </p>
            <p>The ORB facilitates your networking needs. <br>
              对象实现和对象参考 <br>
              对象适配器 <br>
              仓库:接口仓库和实现仓库 <br>
              OMG的接口定义语言 <br>
              语言映射(idl-java/idl-c++) <br>
              静态调用 </p>
            <p>Calling a method in CORBA. <br>
              动态调用 <br>
              corba的各种服务 <br>
              名字服务/事件服务/对象事务服务/并发控制服务/安全服务 <br>
              corba组件 <br>
              参考规范ftp://ftp.omg.org/pub/docs/orbos/98-12-02.pdf </p>
            <p>IIOP之上的RMI <br>
              RMI和corba协同性的需要 <br>
              Corba是分布式对象的标准,RMI可以方便的建立基于java的简单分布式对象通讯。RMI没有corba的多语言性,但非常适合纯java的开发。 
              <br>
              虽然RMI和corba非常相似,但它们也有不相容的一面,当用java RMI编写代码时,需要使用RMI API。而用corba编代码时,必须使用corba 
              API。这对于代码重用是非常不利的。理想上,我们希望: <br>
              将客户端java RMI与服务端的corba结合:可以通过corba API写对象实现,用RMI API写的客户端代码可以调用corba对象。 
            </p>
            <p>RMI的客户端调用corba对象的实现 <br>
              反之也可以。 </p>
            <p>A CORBA client calling an RMI remote object implementation. <br>
              Corba和rmi的结合 <br>
              Corba和rmi使用预生成的stubs和skeletons执行网络通讯。 <br>
              在幕后,corba使用iiop作为执行C/S通讯的协议。这在stub/skeleton层之下。 <br>
              在幕后,java RMI使用java远程方法调用协议(JRMP)执行C/S通讯,这在stub/skeleton层之下。 <br>
              因此,corba和rmi在如何执行远程调用是非常相似的。它们都有一个API(stub/skeletons)层。分别通过iiop和jrmp传输数据。 
              <br>
              因此协议的使用成为corba和rmi协同的关键。Rmi总是期待着通过jrmp协议的请求,而corba则期待iiop协议的请求。要实现两种协议的切换,可以执行: 
              <br>
              1、 rmi客户端使用rmi api编写。在rmi stub上调用一个方法。 <br>
              2、 rmi stub联系一个本地的orb,使用iiop作为服务方通讯的本地协议,代替标准的jrmp协议。 <br>
              3、 在服务方,orb等待接受iiop的请求,orb是对于corba对象实现的纯的corba skeleton。Orb接收请求。因为使用iiop,请求看来好像来自corba的客户端。事实上它来自使用iiop协议的rmi客户端 
              <br>
              4、 orb传递请求给corba skeleton,这代表着corba对象实现的调用。 <br>
              5、 当调用完成时,返回的结果被回馈给纯corba skeleton。Orb将结果送回iiop. <br>
              6、 客户端的orb接受通过iiop返回的结果,返回给rmi客户端的stub然后将控制权返回给rmi的客户代码。 <br>
              这样是完美的。因为它使用java客户端通过rmi api调用corba对象上的方法,相反,也是完美的。 <br>
              Iiop之上的rmi的优点: <br>
              Rmi和corba代码实现了可复用性。 <br>
              可已用多种语言来写代码调用rmi对象实现。 <br>
              Rmi客户端可以被整合到系统中去。 <br>
              IIOP gives RMI robust firewall navigation. <br>
              IIOP gives RMI a portable way to propagate contexts. <br>
              RMI object implementations can be invoked dynamically. <br>
              整合rmi和corba时出现的问题 <br>
              参数传递约定的不同 <br>
              解决办法:The OMG Objects-by-Value Specification <br>
              If the parameter is primitive or implements java.io.Serializable, 
              it is <br>
              passed by value. <br>
              If the parameter implements java.rmi.Remote, it is passed by reference. 
              <br>
              Rmi和corba语义的不同 <br>
              Distributed garbage collection. <br>
              Narrowing. <br>
              Java RMI programmers don’t want to learn OMG IDL. <br>
              解决办法:The Java-to-IDL Mapping Specification </p>
            <p>rmi和corba协同工作的实例: <br>
              带corba对象实现的rmi-iiop客户端 <br>
              1、 写rmi远程接口 <br>
              2、 生成iiop stubs之上的客户端rmi <br>
              3、 生成omg idl <br>
              4、 生成服务器端需要的corba文件 <br>
              5、 书写客户端和服务端 <br>
              带rmi-iiop对象实现的corba客户端 <br>
              1、 写rmi远程接口 <br>
              2、 生成iiop skeleton之上的服务端rmi <br>
              3、 生成omg idl <br>
              4、 生成所需的客户端corba文件 <br>
              5、 写客户和服务端 </p>
            <p>使用rmi-iiop可能的组合 <br>
              rmi-iiop API <br>
              javax.rmi. <br>
              javax.rmi.CORBA. </p>
            <p>iiop之上的rmi客户端怎样找到网络上的对象呢?客户端可以使用rmi的naming.lookup()找到对象。 </p>
            <p>Corba和ejb整合 <br>
              Corba和ejb整合的优点 <br>
              这正在发展的幼年期。 <br>
              Corba和ejb整合的设想 <br>
              基于corba的ejb服务端 <br>
              纯粹的ejb服务端 </p>
            <p>Java RMI-IIOP client with a CORBA-based EJB server. <br>
            </p>
            <!-- #EndEditable --></td>
         
  </tr>
</table>
<div align="center"> 
  
  <br>
</div>
</body>
<!-- #EndTemplate --></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -