📄 2.html
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="description" content="Java,JDBC,EJB,Open Source,jdk,rmi">
<meta name="Keywords"
content="Java, servlets, Java servlet, Javascript, ActiveX, VRML,
applet, applets, directory, news, jdbc, applications,
Java applications, Java developer, Java development, developer,
classes, Jars.com, Jars, intranet, Java applet, Javabeans,
Java products, JDK, Java development kit, java development environment, JIT,
JavaPlan, enterprise tools, JVM, Java Virtual Machine, Java resources,
SUN, CGI, Perl, database, network, html,
xml, dhtml, rating, ratings, review, jars, cgi, programming,
software review, software rating">
<title>csdn_使用JAVA开发CORBA应用</title>
<style>
.news { BACKGROUND: #007cd3; font-family: "宋体"; font-size: 9pt }
.t { font-family: "宋体"; font-size: 9pt }
.t1 { color:#007cd3; font-family: "宋体"; font-size: 9pt }
.white { font-family: "宋体"; font-size: 9pt;color:#FFFFFF }
.red { font-family: "宋体"; font-size: 9pt;color:#FF0000 }
A:visited {color:#0000FF}
A:hover {color: #ff6666; text-decoration: none}
.text {font-size: 12px; line-height: 160%; font-family: "宋体"}
.text1 {color:#000000; font-size: 12px; line-height: 130%; font-family: "宋体"; text-decoration: none}
.text1:visited {color:#000000}
.text1:hover {color: #000000}
.text2 {color:#000000; font-size: 12px; line-height: 130%; font-family: "宋体"; text-decoration: none}
.text2:visited {color:#000000}
.text2:hover {color: #000000}
.text3 {font-size: 12px; line-height: 100%; font-family: "宋体"; text-decoration: none}
.large {font-size: 14.8px; line-height: 130%}
</style>
</head>
<body
<tr>
<td WIDTH="100%" VALIGN="TOP">
<tr>
<td WIDTH="100%" CLASS="white"></td>
</tr>
<tr>
<td WIDTH="50%" bordercolor="#FFFFFF" CLASS="t1" bgcolor="#F0F0F0" align="center" nowrap>使用JAVA开发CORBA应用(2001-04-29)</td>
<p> <td WIDTH="50%" bordercolor="#FFFFFF" CLASS="t1" bgcolor="#F0F0F0" align="center" nowrap>作者:伊文涛 </td></p>
</tr>
<tr>
<td WIDTH="100%" bordercolor="#FFFFFF" CLASS="t" bgcolor="#F0F0F0" colspan="2">
<span class="t"> 通用对象代理体系结构CORBA(Common Object Request Broker Architecture)是对象管理组织所定义的用来实现现今大量硬件、软件之间互操作的解决方案,CORBA也是迈向面向对象标准化和互操作的重要一步。
<BR><BR> <strong>■CORBA技术简介</strong>
<BR>
简单地说,CORBA允许应用之间相互通信,而不管它们存在于哪里以及是谁设计的。CORBA1.1于1991年由OMG发布,其中定义了接口定义语言(IDL)以及在对象请求代理(ORB)中实现客户对象与服务器对象之间交互的应用编程接口(API)。CORBA2.0于1994年发布,规定了各个供应商之间的ORB的通信规则。
<BR><BR> CORBA标准主要分为三个部分:接口定义语言(IDL)、对象请求代理(ORB)以及ORB之间的互操作协议IIOP。
<BR><BR> ORB是对象之间建立Client/Server关系的中间件。使用ORB,客户可以透明地调用一个服务对象上的方法,这个服务对象可以在本地,也可以在通过网络连接的其他机器上。ORB截获这一调用同时负责查找实现服务的对象并向其传递参数、调用方法返回最终结果。客户并不知道服务对象位于什么地方,它的编程语言和操作系统是什么,也不知道不属于对象接口的其他系统部分。这样,ORB在异构分布环境下为不同机器上的应用提供了互操作性,并无缝地集成了多种对象系统。
<BR><BR> 在开发传统的Client/Server应用时,开发者使用他们自己设计的或一个公认的标准来定义用于设备之间通信的协议。协议的定义依赖于实现语言、网络传输和许多其他因素,而ORB的出现简化了这一过程。使用ORB时,协议是使用接口定义语言(IDL)定义的,而IDL是独立于语言的。并且ORB提供很强的灵活性,它使程序员选择最适合的操作系统、执行环境,甚至系统各个组件也可以采用不同的编程语言实现。更重要的是,它允许现有组件的集成。在一个基于ORB的解决方案中,开发者可以使用与创建新对象一样的IDL对遗留系统进行建模,他们创建“包装”代码以在标准化的软件总线与遗留系统接口之间传递信息。
<BR><BR> 使用CORBA,用户可以透明地访问信息,并不需要知道信息存在于什么软件中、使用什么硬件平台,以及位于企业网络的什么地方。作为面向对象系统的通信核心,CORBA为今天的计算环境带来了真正的互操作性。
<BR><BR> <strong>■CORBA与<A NAME="TRSHL5"><FONT COLOR=RED>JAVA</FONT></A>的相互关系</strong>
<BR>
CORBA不只意味着对象请求代理(ORB),它还是非常全面的分布式对象平台。CORBA使<A NAME="TRSHL6"><FONT COLOR=RED>JAVA</FONT></A>应用可以跨越网络、语言以及操作系统,并为<A NAME="TRSHL7"><FONT COLOR=RED>JAVA</FONT></A>提供了一组分布服务,如分布式自我观察、动态发现、事务、关系、安全和命名等。
<BR><BR> <A NAME="TRSHL8"><FONT COLOR=RED>JAVA</FONT></A>不仅是一种语言,它还是一个动态代码系统,它对运行对象来说是一个可移植的虚拟机(JVM)。<A NAME="TRSHL9"><FONT COLOR=RED>JAVA</FONT></A>为开发、管理、发布Client/Server应用提供了更简单的方式。人们可以通过将应用放在一个Web服务器上将这一应用发布给成千上万个用户,而不必关心它的安装和升级。<A NAME="TRSHL10"><FONT COLOR=RED>JAVA</FONT></A>还非常适合服务器的开发,它可以动态地将服务代码移向最需要它们的地方。
<BR><BR> <A NAME="TRSHL11"><FONT COLOR=RED>JAVA</FONT></A>将会使CORBA对象能够运行在从主机、网络计算机到蜂窝电话等可编程的各种机器上,并简化了大型CORBA系统的代码发布。对客户和服务对象来说<A NAME="TRSHL12"><FONT COLOR=RED>JAVA</FONT></A>是很理想的编程语言,<A NAME="TRSHL13"><FONT COLOR=RED>JAVA</FONT></A>内置的多线程、垃圾收集和错误处理使编写健壮的网络对象变得很容易。
<BR><BR> 这两种对象模型可以很好地相互补充,CORBA处理网络的透明性,<A NAME="TRSHL14"><FONT COLOR=RED>JAVA</FONT></A>处理实现的透明性,CORBA为<A NAME="TRSHL15"><FONT COLOR=RED>JAVA</FONT></A>可移植应用环境提供了一个分布式的结构。
<BR><BR> <strong>■使用<A NAME="TRSHL16"><FONT COLOR=RED>JAVA</FONT></A>开发CORBA应用</strong>
<BR>
下面让我简要介绍一下开发CORBA的步骤。
<BR><BR> 使用<A NAME="TRSHL17"><FONT COLOR=RED>JAVA</FONT></A>开发CORBA应用需要如下五个步骤:
<BR><BR> 1.使用IDL创建接口 (About.idl)
<BR><BR> 下面的OMG IDL描述一个CORBA对象。
<BR><BR> module About
<BR><BR> {
<BR><BR> interface Show
<BR><BR> {
<BR><BR> string ShowName();
<BR><BR> };
<BR><BR> };
<BR><BR> 将其存为Show.idl。
<BR><BR> 2.编译接口并生成CORBA支持文件
<BR><BR> 我们用以下命令编译这个 IDL 接口:
<BR><BR> idltojava Show.idl
<BR><BR> idltojava是SUN公司的IDL编译器,可以免费从SUN公司站点上下载。
<BR><BR> 因为idltojava在编译IDL文件之前,需要进行预编译,而如果你的机器上没有预编译器,可以使用以下命令:
<BR><BR> idltojava -fno-cpp Show.idl
<BR><BR> 编译后将在当前目录下生成About子目录,其中会包括一些支持文件,如有兴趣可以看一下,但一定不要修改。
<BR><BR> 3.实现服务器 (ShowServer.<A NAME="TRSHL18"><FONT COLOR=RED>java</FONT></A>)
<BR><BR> ShowServer的main() 方法,可完成以下任务:
<BR><BR> (1)创建一个 ORB 实例
<BR><BR> (2)创建一个服务对象实例(CORBA About 对象的实现)并通知 ORB
<BR><BR> (3)获取一个命名上下文的CORBA对象引用,在该命名上下文中注册新的CORBA对象
<BR><BR> (4)在命名上下文中将新对象注册在“About”名下
<BR><BR> (5)等待对新对象的调用
<BR><BR> 实现服务器源程序如下:
<BR><BR> import About.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -