📄 基于corba的web数据库服务器.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
<title>计算机应用研究000226</title>
</head>
<body bgcolor="#FFFFFF" link="#000000">
<table border="0" cellpadding="0" cellspacing="0" width="90%">
<tr>
<font size="4"><td></font><a href="../../../../"><img src="../../../image/logo.gif"
width="174" height="26" alt="logo.gif (2519 bytes)" border="0"></a></td>
<td><p align="center"><a href="../../index.htm"><font size="3" color="#000000"><strong>计算机应用研究</strong></font></a><font
face="华康简魏碑" size="4" color="#000000"><br>
</font><font face="System" size="2"><strong>APPLICATION RESEARCH OF COMPUTERS</strong></font><font
size="2" face="Times New Roman"><br>
</font><font size="2" color="#000000">2000 Vol.17 No.2 <span class="p">P.71-73,92</span></font></td>
<td align="right"><a href="../../../index.htm"><img src="../../../image/qklogo.gif"
width="96" height="26" alt="qklogo.gif (1030 bytes)" border="0"></a></td>
</tr>
<tr>
<td colspan="3"><hr>
</td>
</tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="90%">
<tr>
<td width="100%"><p align="center"><strong><span class="tm"><font face="宋体" size="5">基于CORBA的Web数据库服务器</font></span></strong></p>
<p align="center"><font face="宋体" size="3">罗大杰 董玮文 董传良</font></p>
<p><font face="宋体" size="3">摘 要 <span class="zy">近年来,随着分布式对象计算方面研究的深入,CORBA逐渐成为这方面的热点。就CORBA的跨平台、跨语言特性出发,介绍了CORBA标准及基于CORBA的分布式应用的开发方法和步骤。最后提出了一个多数据源的Web数据库解决方案。</span><br>
关键词 <span class="gj">分布式应用 CORBA 对象技术 客户/服务器</span></font></p>
<p><strong><font face="宋体" size="4">1 引言</font></strong></p>
<p><font face="宋体" size="3"> 国际对象管理组织(Object Management
Group-OMG)遵循对象技术,制定了一整套公认的基于可商用对象技术的标准。它有一套面向对象的标准化语言,接口和协议,其基础是公共对象请求代理结构(Common
Object Request Broker Architecture-CORBA)规范。<br>
CORBA作为一种新兴的面向对象分布式计算技术,为建立大型复杂的分布式应用提供了一条令人振奋的新思路。使用CORBA体系结构,不同操作系统、不同编程语言、不同网络协议的应用系统可以方便地进行互操作,很容易地集成在一起,这使所谓软件总线结构的实现成为可能。软件总线结构,就是起到类似于计算机硬件总线的作用,只要将应用模块按总线规范做成软插件,插入总线即可实现集成运行。</font></p>
<p><strong><font face="宋体" size="4">2 CORBA概述</font></strong></p>
<p><font face="宋体" size="3"> 对象管理体系结构(Object Management
Architecture- OMA)是OMG为分布式对象计算应用定义的一个抽象结构。其核心是对象请求代理(Object
Request Broker-ORB),ORB提供对象调用的地址透明,激活策略和通讯功能。<br>
CORBA包含五个重要组成部分:<br>
1)ORB核心<br>
2)接口定义语言(Interface Definition Language-IDL)<br>
3)动态调用接口(Dynamic Invocation Interface-DII)<br>
4)接口池(Interface Repository-IR)<br>
5)对象适配器(Object Adapters-OA)<br>
<strong>2.1 ORB核心</strong><br>
在分布式系统中,某个对象提供服务,而调用者根据需要向该对象发出请求,其中调用者称之为客户,对象称为服务器。在OMA对象模型中,由ORB负责将客户的请求传递给服务器对象,并返回运算结果给客户。对客户来说,这种消息的传递是透明的,全部由ORB完成,客户不需要知道对象位于网络的什么地方,ORB如何通讯,对象如何实现,如何存储等。<br>
ORB核心实现对象间的通信机制和激活、调度等任务。实现客户对目标对象(服务器)访问在以下方面的透明。<br>
(1)对象位置:客户不知道目标对象驻留何处,目标对象可以在跨过网络到达的另一台机器的某一进程中,可以在客户所处同一机器但处于不同的进程中,也可以与客户处于同一进程。<br>
(2)对象实现:客户不知道目标对象是如何实现的、不知道目标对象实现所采用的语言、也不知道所处的硬件平台和操作系统。<br>
(3)对象执行状态:客户向目标对象发请求时,无需知道目标对象当前是否处于活动状态并准备接受请求。如果需要,ORB在向目标对象发送请求前会透明地启动对象。<br>
(4)对象通信机制:客户不知道ORB用来向对象发送请求和将响应返回客户的具体通信机制(如TCP/IP、共享内存、本地方法调用等)。<br>
客户在向对象发送请求之前,首先需要获得一个对象引用。ORB使用对象引用来辨别和定位对象从而传送请求。<br>
一旦客户获得了对象引用,它就可以调用该对象提供的方法。一般来说,方法总包括一些参数作为输入,并返回另一些参数作为输出。ORB的责任就是从客户一方接收输入参数,并将这些参数打包(把参数转换为能在网络上传输的格式),传送到对象一方。在对象一方的ORB负责将参数解包为对象能操作的格式,交由对象实现后再将输出参数用同样方式返回客户。整个打包/解包及传送的过程对程序员来说都是透明的,客户端程序调用远地方法就如同调用本地方法一样简单。<br>
由于ORB在打包/解包过程中将参数转换成与平台无关的通讯格式,屏蔽了各种平台数据格式的差异,从而实现了CORBA的平台独立性。如一个运行在Macintosh平台上的客户程序可以调用运行在UNIX系统上的服务器对象的方法,使得不同平台上的应用程序可以方便地进行通讯,而这种平台间差异转换完全由ORB完成,程序员一点也不需要关心。<br>
<strong>2.2 IDL语言与映象(Mapping)</strong><br>
尽管一个对象引用指定了一个特定的对象,但它不提供对象的接口信息。客户在向对象发送请求前必须知道对象提供哪些服务,对象的接口规定了对象所支持的操作和类型,也就定义了客户向对象发送的请求。在CORBA中,对象的接口由接口定义语言IDL定义,IDL的一个重要特点是其语言独立性,因为IDL是一种描述型语言,不是用来实现对象功能,它只是定义了分布对象间调用的接口。所以它不具有(也不应该具有)一般程序设计语言的所有特征,如控制结构等,对象功能的实现是由某种具体程序设计语言,如C++、Java等来实现的。语言映象的目的就是将IDL语言翻译到某种具体程序设计语言。语言映象一般包括三个方面:<br>
(1)基本语言成分的映象,如IDL数据类型、模块、接口、操作、对象引用等的映象。<br>
(2)CORBA对象接口及其它伪对象接口的映象。<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -