中国科学院软件研究所机构知识库
Advanced  
ISCAS OpenIR  > 中科院软件所  > 中科院软件所
题名:
分布对象技术与接口定义语言实现
作者: 张波
答辩日期: 1998
专业: 计算机软件
授予单位: 中国科学院软件研究所
授予地点: 中国科学院软件研究所
学位: 博士
摘要: 随着软件、硬件,特别是网络技术的迅猛发展,分布式计算的应用范围越来越广。分布式计算从最初的数据上的互连发展为基于过程的互操作。但是,过程模型很难对分布的资源作出恰当的描述。而在软件发展过程中,对象技术在程序设计语言、数据库等多个领域都发挥着重要的作用。推广了的对象模型具有封装、抽象、多态等特点,非常适合于描述分布的对象,因此,产生分布对象计算。OMG的OMA、CORBA规范就是一种分布对象的计算标准。但是他们对于分布对象计算中的核心-对象总线ORB和IDL语言映射的实现机制却没有介绍。而在实际的分布对象系统中,这两部分是整个系统的基石,其实现机制的优劣将直接影响整个系统的效率和性能。本文以对象互操作为目的,对ORB和IDL语言射的实现机制进行了探讨,给出了设计方案并给出了相应的实现。我们在对分布对象技术进行了分析研究的基础上,实现了符合CORBA规范的分布对象通讯平台ISBroker。另外,还在该平台上实现了IDL语言映射子系统和部分分布对象服务,从而实现了ISBroker上对象之间跨平台的互操作。对象互操作是分布对象系统的主要目标和分布对象技术的核心问题,从实现角度来看,我们将互操作的实现分为三个层次:描述层、接口层和通讯层。描述层即采用接口定义语言IDL来描述对象的接口和数据类型,对象之间通过IDL接口来取得语义理解上的一致性。接口层即IDL到编程语言的映射,IDL是语言中立的描述性语言,通过映射,用户可以用自己熟悉的语言,比如C、C++、Ada、Java、Smlltalk等编写CORBA对象实现以及client程序。通讯层实现对象请求在异构平台之间的网络传输。对于 ISBroker,我们采用分层结构的设计,具有模块性和层次性,结构简洁清楚,包括名字服务层、请求服务的设计,具有模块性和层次性,结构简洁清楚,包括名字服务层、请求服务层、数据转换层和网络接口层四个主要部分,为分布对象提供了一个位置透明、操作系统无关的底层通讯平台。IDL编译器采用以抽象语法树为中心的设计方案,将前端和后端分离开来,后端采用继承抽象语法树类的方式复用前端的框架。不同语言的映射对应不同的后端,编译器具有公共的前端,当需要新的语言映射时,只需要构造相应的后端就可以了,具有良好的可复用性与可扩展性。关于语言映射,CORBA虽然给出了映射的规范,以保证客户程序的可移植性。但对语言映射具体实现方案没有进行讨论。而实现机制的优劣将直接影响分布对象系统的效率和性能,比如参数的编码与解码、对象请求的构造与解析、对象接口与对象实现的绑定方式等。我们采用TypeCode为中心的方式构造对象请求,编绎器将IDL文本转换为调用描述符,缩小了两种描述之间形式上的差距,利于编译器的实现;采用统一的例程进行对象请求的构造,使生成的代码简洁,可读性好,同时,类型信息以数据而不是以代码的形式体现,减小了最终可执行程序的大小移植时,只需要修改构造对象请求请求的例程,增加了系统的可移植性。此外,本文还针对工作中遇到的实际问题进行了相应的研究并提出解决方案,主要包括:从语言映射的角度,提出了在状态一致性条件下本地处理对象请求的实现方案,当client与server实现在同一平台上并满足状态一致性条件时,能够在进程内处理对象请求,从而有效地提高系统的运行效率;提出了基于C++对象持久化的接口库的实现方案,与采用关系数据库相比,该方法能够比较自然地反映所描述的接口之间的语义联系,不仅简化了实现上的复杂程度,而且能够提高接口储与访问效率;讨论了ISBroker与Web的连接方式,包括基于传统的CGI和RMI的方式、基于Proxy的方式等,对如何有效地扩大分布对象技术的应用范围做了初步尝试。
英文摘要: With the development of software, hardware, especially in the area of networking, the application of Distributed Computing becomes more and more pervasive, and its focus is also shifting from interconnectivity to interoperability. However, traditional procedure models are inadequate for discribing distributed resources, so some other models are needed. Object Technology is the technology for the area of Programming Language, Database, etc. The characteristics of the extended object model are encapsulation, abstraction and polymorphism. They are quite fit to describe the distributed sources. So the area of Distributed Object Computing comes into being. OMG's OMA and CORBA is the standard for Distributed Object Computing. But in it there is no description for the implementation of ORB (the object bus) and IDL language mapping. As the heart of Distributed Object Computing, the two parts are the basis of the whole system and the implementations of them will determine the general performance of the system. With Object Interoperability as aim, this paper focus on the design and implementation of ORB and IDL language mapping. With references of the technology applied in the distributed computing and object area, we designed and implemented the distributed objects communication platform-ISBroker which conforms the CORBA specification. Besides, we implemented the IDL language mapping subsystem and part of common services. So, suppored by ISBroker, the objects can interoperate with eachother. In the implementation we devided object interoperability into 3 layer: discription layer, interface layer and communication layer. Discription layer is discribing the Object interface with IDL, objects understand eachother through the interface discription. Interface layer is the mapping form IDL to the programming language. After mapping, programmers can use their favorate languages such as C, C++, Ada, Java etc. to implement the CORBA objects and client programs. Communication layer implements the transportation of object request between heterogenous platforms in the network. We designed ISBroker as a layered structure in order to simplify the implementation. It has four layers: name service layer, request service layer, data representation layer and network interface layer. ISBroker provides communication and data representation service for distributed objects. The design of IDL compiler is centered around abstract syntax tree which is the dividing line between the front end and the back end. The back end reuse the frame of front end by inheriting the classes of abstract syntax tree. Different language mapping has different back end but a common front end. So, the compiler is highly reusable and extendable. In language mapping, the main problem is the construction of object request. We use TypeCode to solve the problem. The compiler turns IDL declarations into call data discriptor and we have a common procedure to construct object request using the call data discriptor. There are three merits of this method: first, the implementation of the compiler is simplified, secondly, the generated code is very explicit, finally, when the system is ported, only the common procedure needs to be modified. In this thesis, we also provided some solutions for several practical problems in the distributed object area. First, how to respond to the object request in local process when the server object's status are consistent, and this can highly improve the performance of some appropriate systems. Second, how to implement the Interface Repository by using C++ persistant object store. With C++ objects, we can natually describe the semantic ralations between the interfaces. So, we can not only simpilfy the implementation of IR but also improve the performance. Finally, we discussed how to connect ISBroker to the Web in order to extend the applied area of distributed object technology.
语种: 中文
内容类型: 学位论文
URI标识: http://ir.iscas.ac.cn/handle/311060/6022
Appears in Collections:中科院软件所

Files in This Item:
File Name/ File Size Content Type Version Access License
N98856.pdf(2946KB)----限制开放-- 联系获取全文

Recommended Citation:
张波. 分布对象技术与接口定义语言实现[D]. 中国科学院软件研究所. 中国科学院软件研究所. 1998-01-01.
Service
Recommend this item
Sava as my favorate item
Show this item's statistics
Export Endnote File
Google Scholar
Similar articles in Google Scholar
[张波]'s Articles
CSDL cross search
Similar articles in CSDL Cross Search
[张波]‘s Articles
Related Copyright Policies
Null
Social Bookmarking
Add to CiteULike Add to Connotea Add to Del.icio.us Add to Digg Add to Reddit
所有评论 (0)
暂无评论
 
评注功能仅针对注册用户开放,请您登录
您对该条目有什么异议,请填写以下表单,管理员会尽快联系您。
内 容:
Email:  *
单位:
验证码:   刷新
您在IR的使用过程中有什么好的想法或者建议可以反馈给我们。
标 题:
 *
内 容:
Email:  *
验证码:   刷新

Items in IR are protected by copyright, with all rights reserved, unless otherwise indicated.

 

 

Valid XHTML 1.0!
Copyright © 2007-2017  中国科学院软件研究所 - Feedback
Powered by CSpace