CIMS的多数据源互操作与开放分布处理系统——CIMS_MIODP的设计与实现


(来源:http://info.863cims.net/)

李 贵,尹朝万

(中科院沈阳自动化所,辽宁 沈阳 110015)

摘要<多数据源互操作与开放分布处理系统CIMS_MIODP是采用分布对象互操作与代理技术,实现面向CIMS的基于RPC的远程对象访问ROA(Remote Object Access)功能和基于SQL3的远程数据库访问RDA(Remot Database Access)功能的系统,为CIMS环境下的信息集成与分布处理提供了不同层次的支持功能。本文讨论了CIMS_MIODP系统的主要设计和实现问题,包括基本模型、扩展服务和协议、对SQL3的支持、系统实现结构等。

关键词:多数据源互操作;开放分布处理;远程对象访问;远程数据库访问

中图分类号:TP316.4;TH166

文献标识码:A

0 引言

CIMS环境下的信息集成是实现应用集成和企业集成的基础与关键,但因CIMS在实施过程中,根据各自的应用需求配置了不同的计算机系统、网络系统、数据库系统以及其它支撑系统,从而导致了CIMS的支撑环境是一个异构分布的环境。那么如何在这种异构分布环境下实现不同数据源之间的互操作,实现分布的应用系统间、应用系统与多种数据源间的互连与互操作,在各种数据源自治的基础上实现数据的共享与分布处理,是当前CIMS集成技术的关键之一。

目前,信息系统的集成方式主要有两种:重构方式和互操作方式。在重构方式中,需要把旧系统中的应用逻辑、数据定义和数据都转移到新系统中。这种方式的优点便于新系统维护和集成,但重构过程复杂,且费用昂贵;互操作方式是通过设置新的标准界面,在已有信息系统的基础上建立一个互操作平台,实现不同系统之间的互操作。这种方式既保持了已有系统中的数据和应用程序,还允许新的系统加入互操作平台中,实现计算资源的共享,为用户提供一种统一的、规范化的、跨越不同领域的、独立于数据源的互操作手段。因此,它更受人们的欢迎。 在多数据库互操作和分布计算领域中,人们已经进行了许多的研究和开发工作,出现了许多的原型系统和产品,譬如,Microsoft的ODBC,SYBASE的开放客户接口和开放服务接口,OSF的DCE等,它们采用了单一的客户/服务器模式,实现了应用与不同数据库的互连与互操作,以及应用系统之间的互连与互操作。这种互操作主要针对同构环境下的关系数据库系统和应用系统,但对于CIMS异构环境下某些特定的互操作与分布处理问题,还需要进一步研究和开发。

目前,分布式计算正朝着标准化和开放式体系结构的方向发展,互操作已成为分布式计算的重要研究课题,为此,国际上已成立了许多标准化组织和联盟机构,如,ISO、ANSI、OMG、ODMG、X/OPEN和OSF等,它们从不同的侧面制定或正在制定有关互操作的技术标准,如,OSI、ODP、CORBA、ODMG-93、X/OPEN XA等。为异构分布环境下多种数据源互操作与开放分布处理技术的研究奠定了一个良好的基础,特别是在分布式计算和面向对象技术基础上发展起来的分布对象技术,为实现CIMS环境下的多数据源互操作和分布处理开辟了一个良好的前景。 CIMS)_MIODP就是基于上述需求,在863/CIMS主题的资助下,研究与开发的面向CIMS的多数据源互操作与开放分布处理系统,其目标是有效地实现CIMS环境下应用系统对不同数据源的互操作,以及不同应用系统之间的互操作。该系统的主要特点:①采用分布对象互操作与代理技术,实现了面向CIMS的基于RPC的远程对象访问(ROA)和基于SQL3的远程数据库访问(RDA)系统,为CIMS环境下的信息集成与分布处理提供了不同层次的支持功能;②采用分层结构和实现模型,有效地控制了系统的复杂性;③在系统的设计与实现上结合当前的有关标准(包括SQL3、RDA、RPC和CORBA),体现了系统的开放性;④提供了开放式的客户接口和服务接口,有效地支持了应用系统的开发和实现对不同数据源的互操作;⑤通过抽通信平台(Stepgate)实现与底层不同网络协议的互连,增加了系统的透明性。 CIMS_MIODP的基本实现结构模型

依据CIMS_MIODP的实现目标,其基本结构设计如 图1所示,它由四个层次 构成:开放式接口层、客户/服务代理层、数据通信层和网络接口层。 S

开放式接口层:开放式接口层中的客户方、服务器方,均提供规范化的应用编程接口(AP I) 和基于CORBA标准的接口定义语言IDL。另外,客户方接口还支持基于SQL3标准的远程数据库 访问语言RDAL。客户方的开放式接口提供应用开发需求的支持,用户可通过该接口透 明地访问远程服务器上不同数据源所提供的信息和服务,并接受返回的结果;建立在服务方 接口上的对象适配器,可以有效地实现对不同数据库系统和文件系统的对象包装以及与服务 器的互连。 对象适配器使得CIMS环境下不同的数据源,以统一的对象接口方式连接和注册到服务器上, 为前端应用和后端数据源系统之间的互操作提供中介,它不依赖于任何数据源管理系统。对象适配器还包括语义处理、查询处理和数据操作三个功能模块。语义处理模块主要完 成对象接口和局部数据源之间的模式转换和功能映射;查询处理模块将对象接口中的SQL3语 句转化为各局部数据库所能接受的本地查询语句;数据操作模块将查询结果进行适当地组装和表示返回服务代理。

S客户/服务代理层:包括客户代理和服务代理。这两种代理之间是通过服务原语进行交互的,这些服务原语是以消息方式发送和接受的。

客户代理的主要功能:接受客户请求;与局部服务交易代理进行局部交易,完成请求服务的 定位;负责请求的发送和结果回收。

服务代理的主要功能:负责局部服务对象(对象适配器和服务对象集——面向对象的服务 对象集合)的注册和管理;完成本地客户的局部交易;当局部服务对象不能满足客户请求时,通过交易链与远程服务代理进行联邦交易,完成联邦查询,获取所需服务;通过服务接口或对象适配器激活局部服务对象完成客户请求,并将结果回送到对应的客户代理;

S数据通信层:数据通信层由CIMS_MIODP的数据通信服务器组成,完成本地客户/服务代理 间的数据通信或远程客户/服务代理间的数据通信,支持SQL3抽象数据类型、系统定义或自 定义类型与传送上下文的转换,提供透明可靠的数据流传送服务功能。网络中每一结点计算 机都有一个相应的数据通信服务器。该服务器的主要功能是完成协议数据单元和 传输格式的转换,将各种数据以一种符合国际标准(SQL3)的数据类型的统一格式在 不同的节点进行传送。 S

网络接口层:网络接口层构造抽象通信界面,实现CIMS_MIODP系统 的数据通信服务器与多种网络协议栈的互联。例如,TCP/IP协议和SUN Link OSI等。

2 ROA/RDA服务与协议

ROA和RDA是实现CIMS环境下多数据源互操作与开放分布处理的两种基本途径,由于传统的RPC和RDA机制已不能满足日益复杂的CIMS应用的需求,因此必须采用分布对象技术将其扩充与完善。

2.1 ROA服务

远程对象访问ROA是对象互操作的一种实现,对象之间的互操作是通过发送消息来实现的, 一个对象只有在接受到消息时才能引发相关的操作,并再向其它对象发送消息。这种 消息传送机制提供了一种透明的远程对象访问。

传统的RPC的实现目标是让应用软件的部分过程在网络其它地方的计算机上运行 ,从而将本地的过程调用扩充到分布式环境中。RPC呈现出这样的编程结构:过 程调用,并较好地屏蔽了通信、传输错误和故障等细节,提供了过程调用位置的透明性。但传统的RPC不能支持异构环境下说明层和接口层的对象互操作,也不能支持数据库系统 之间的调用操作。另外,不同厂家的RPC系统不能脱离其系统核心运行,并且,所支持的能够被远程调用的“过程”具有各自的特征,不易移植。我们在尚无统一标准的情况下,通过参 考OSI、ECMA和CORBA标准,并借鉴一些计算机公司的产品内核中实现的RPC和ORB (Object Request Broker)等现有的实现机制,抽象出ROA的基本特征,提出了ROA 的基本服务和协议,支持了分布对象的说明层和接口层互操作,在完全兼容传统RPC功能的同时,建立了一个独立于任何数据库管理系统和网络协议的ROA系统规范,并将ROA也看作是OSI参考模型中应用层的基本服务元素,从而有效地实现了异构环境下面向对象的分布式处理。 ROA的基本服务功能包括连接管理(Connection_M)、调用管理(In voke_M)、状态管理 (Status_M)和对象接口管理(Interface_M) 。每项服务均由四个相关的服务原 语(请求、指示、响应和确认原语)组成,它们构成了ROA抽象服务接口事件。 S

连接管理服务:它提供了建立客户对象和服务对象之间连接和结束它们之间连接两项服务 。建立连接是整个ROA的开始。连接管理服务是客户代理到服务代理的动态连接。在建立连接 时,客户对象和服务对象之间并不发生直接的交互,而是通过各自的代理来 实 现的。一个服务代理可以同时和多个客户代理建立连接,而一个客户代理也可以和多个服务代理建立连接。 S

状态管理服务 它用于查询和控制正在进行的远程对象访问的操作状态,主要管理 三种语义状态,由ROA的基本模型可以抽象出D1、D2和D3三个界面,如图2所示。这三个界面就决定了三种语义状态的管理。

D1界面: 主要反映客户对象同服务对象之间的交互情况。它所决定的状态在连接存在期间 有效。这类状态包括连接状况、运行状况、远程状态信息等。

D2界面:指客户对象同本地代理之间的交互,它主要反映用户程序同局部(客户/服务)代 理之间的本地交互情况。它所决定的状态在应用程序活动期间有效,包含资源的分 配情况、本地权限检查结果等。

D3界面:指(客户/服务)代理同ROA的通信服务器的交互,它主要反映客户代理或服务代理 同其底层的通信服务器之间的交互情况。它所决定的状态在ROA系统工作期间始终有效, 包括客户代理和服务代理的连接状态、通信通道、通信服务的有效性等。

ROA的状态管理对象既要区分这三类语义状态,又要使它们有机地相互作用,同 时根据状态的正确与否启动相应的差错处理对象,以保证整个系统的完整性。 S

调用管理服务:它是ROA的核心服务,其主要功能包括客户接口和服务接口的匹配、接口 中操作的捆绑、对象映射、参数传递和方法调用。这些功能主要由相应的证实型原语完 成。客户发出的请求原语中包括接口匹配信息、操作捆绑信息和操作参数信 息等调用参数, 若执行成功,则在证实原语中含有结果数据。由于对不同数据源的操作是由本地服务对象的操作过程实现的,从而屏蔽了一些有关数据库系统模型和模式的异构性。在 调用服务中,有两种选项:一种是证实性发送选项(即同步性)。它能阻塞调用者程序,直到服务对象接收到指示原语信息并返回给调用者相应的结果时,调用者才会执行下一步 操作;另一种是无等待发送选项(异步性)。它使调用者程序连续地多 次调用若干个远程 对象操作,而无需等待被调用者返回的结果。前一种选项是通用的、必须的,但后一种选项又是实现并发调用所必须的,可以作为实现的扩充。 S

服务对象管理:它的主要功能是通过服务代理对象实现对象服务的发布与获取,通过接口 进行注册和管理。具体包括:为服务方提供服务接口的注册 和注销;为客户方提供服务接口的查询和选择;根据角色的安全控制机 制。对各类服务对象进行一定权限的分配;保证拥有不同角色的合法用户,按各自的权限对服务对象进行相应的操作。

2.2 RDA服务

RDA的目标是采用最少的技术协议,来实现各种应用和数据库系统之间的互操作。这些应用 和 数据库系统可能来自不同的厂家、具有不同的管理系统和复杂程度、采用不同技术协议等。 RDA是开放系统互连(OSI)参考模型中应用层的基本服务元素,其基本服务功能包 括对话管理(DM)、资源管理(RM)、控制管理(CM)、事务管理(TM)和数据库语言管 理(DBLM),每项服务均由四个相关的服务原语(请求、指示、响应和确认)组成, 它们构成了RDA抽象服务接口的事件。

2.3 集成ROA/RDA服务规范

简单地说,CIMS_MIODP系统服务规范是ROA和RDA规范的并集。一 个完整的ROA规范包括 连接管理、调用管理、状态管理和对象接口管理四种规范;而一个完整的RDA规范包括对话 管理、资源管理、控制管理、事务管理和数据库语言管理五种规范。其中对话管理和连接管 理功能类似,主要完成客户代理和服务代理之间通信通道的确定;但二者建立联系的对象不 同,前者是客户代理跟服务器上数据源的对象适配器之间建立联系,后者则是客户代理跟服 务器上对象接口之间建立联系。我们在设计CIMS_MIODP系统的数据源 适配器时,使它以对象 接口的方式注册到CIMS_MIODP系统中,从而可以将对话管理规范和连接管理规范合并成一个 对话连接管理规范。因此,CIMS_MIODP系统的统一规范包括资源管 理、控制管理、数据库 语言管理、事务管理规范、调用管理、状态管理、过程管理规范以及对话连接管理规范。这些规范浓缩了ROA和RDA的功能和服务,规定了它们所应完成的各项功能。

2.4 ROA/RDA基本协议

2.4.1 基本原语序列

CIMS_MIODP服务规范中的不同服务功能是通过不同的活动对 象来实现的,每种服务活动由一组对应的协议原语序列构成。实现上述服务活动的基本原语序列,除了对话连接管理服务中的结束对话连接(R_EndDialogue Con nect)是非证实原语外,其它都是证实型原语[7]。

2.4.2 协议数据单元

在CIMS_MIODP系统中,客户代理和服务代理以及不同服务代理之 间为协调工作所交换的 信息,称为协议控制信息(PCI)。通信服务器的协议数据单元(PDU)由客户代理、服务代 理间的协议控制信息,以及客户代理和服务代理之间交换的用户数据(参数)组成。对应于 该系统的每种基本服务,都有对应的基本的协议数据单元。现以一种协议数据单元为例 来说明其结构:执行数据库语言协议数据单元(ExecuteDBL PDU)

其中,Type ——协议类型;ClientID和ServerID ——Client和Server的唯一标识号;

EnvirInfo ——含有状态信息等的字符串;InputParams——符合SQL3标准的具有自描述能力 的数据流规范,它具有类似如下的结构:

这种结构是CIMS_MIODP系统支持多行参数传输,复杂数据类型传 输和数据类型扩充的基础。

3 对SQL3的支持

SQL92的类型系统面临着复杂数据类型存储的挑战,已不能满足不断增长的应用需求, 面向对象数据库系统的出现和应用,又为用户提出了遗产数据 (legacy data)与面向对象数据的集成、转换与透明访问等问题。为此,在CIMS_MIODP系统中,我们参考了SQL3标准,对SQL-92类型系统扩充,在新系统中增加了类和方法、继承和多态等概念。 在CIMS_MIODP的类型系统中,增加了用户自定义的抽象数据类型 (ADT)、表行类型(row type)的定义。 ADT类型是由用户自己根据实际应用需要而定义的,可以作为表 列的数据,并且与C++语言中的类的概念一样具有封装、继承、多态与重载等特性,所以可以直接与之进行相应转换。

4 数据库对象适配器

在CIMS环境下,为了实现CIMS_MIODP 系统对各种异构数据源系统的互操作,必须采用对象包装技术开发不同数据源的对象适配器。

4.1 基本对象适配器

基本对象适配器是服务对象访问CIMS_MIODP服务的主要途径,在大规 模分布对象环境中,由 于对象粒度、生命期、规则、实现风格和其它特性的广泛性,使CIMS_ MIODP很难提供一个对 所有对象都方便有效的独立接口。因此,通过基本对象适配器,可使有相似需求的对象用一 致的方式来访问DOMP的服务。 在CIMS_MIODP系统中,基本对象适配器由两部分接口构成:一是服务 实现(包括数据库适配 器和服务过程)访问由CIMS_MIODP系统提供的服务接口,即服务方 的API接口;二是经由C IMS_MIODP系统访问对象服务的接口,即服务接口。基本对象适配器的功能包括对象引用的生成与解释、请求或引用的证实、服务实现的激活与撤消,通过服务接口的方法引用。其功能结构如图3所示。

4.2 数据库对象适配器

数据库对象适配器是CIMS_MIODP系统中RDA操作服务与实数据库管理系统间的桥梁。我们在CIMS_MIODP系统中,有针对性地设计了服 务器到Oracle DBMS和S ybase DBMS等关系数据库管理系统的典型适配器,也设计了服务器到O2 DBMS面向对象数据库管理系统的典型适配器。 当服务器接收到远程的有关数据库操作的服务请求时,根据SQL3的数据库查询命令 提交给适配器,它再对该命令进行语法分析,并对数据库实施具体操作,将结果返回给 服务器。 实数据库适配器的设计充分利用各个局部DBMS所提供的编程接口进行开发、设计和实 现。 5 RDAL/IDL语言及其预编译器

5.1 RDAL语言及其预编译器

在CIMS_MIODP系统中,我们在构造API函数的同时,也提出基于SQ L3的远程数据库访问 语言RDAL作为开放式接口中的语言接口。这种语言从另一个侧面为程序开发者提供了一种清晰一致的界面,且有利于生成高效的、可移植的和可读性好的程序代码。 RDAL预编译器用YACC工具生成。YACC接受一个描述 文件,它含有声明、规则和程序 三个部分,其中规则部分是描述文件的核心。由于有的RDA SQL语句有多种选项,因此构成多种变形。在规则部分需要对每一种形式分别描述,RDAL程序的编译过程如图4所示。

5.2 IDL编译器

在CIMS_MIODP系统中,采用CORBA的接口定义语言IDL,通过指定 对象的接口来定义分布共享对象的类型。IDL编译器的主要功能是依IDL原文件生成客户方的客户接口和服务方的 服务接口,并将有关的信息存储在客户方的客户接口字典和服务方的服务接口字典中。其实现结构如图5所示。客户方根据客户接口开发客户方的调用程序(客户对象),服务方根据 服务接口开发服务对象的〖LL〗实现代码,调用程序和服务对象之间的交互是通过客户接口 和服务接口来实现的,而这两种接口之间的透明交互是由CIMS_ MIODP客户代理和服务代理实现的。


参考文献:

[1] Pappe S,Lamersdorf W,Effelsberg W. Specification and implemetatio n of a standard for remote database access[A].Proc. Experience with Distributed Systems[C].Kaisertslautern,FRG,1987.9.
[2] Kulkarni K G. Object-Orientation and the SQL. s tandard[J]. Computer Standards & Interfaces,1993,(15):287-300.
[3] A shift in the landscape——assessing SQL3's new object direction[J]. D atabase Programming & Design,1996.8.
[4] 尹朝万,祝中华,李 贵.远程数据库访问系统客户/服务器体系结构模型的设计与 实现[J].软件学报,1995,6(8).
[5] 李 贵,尹朝万,郑怀远.CIMS环境下基于视图对象的多库集成与互操作技术 [J].计算机集成制造系统—CIMS,1997,3(4):16-19.
[6] 李 贵,尹朝万,郑怀远.CIMS环境下异种数据库互操作技术的研究与实现—— 数据库研究与进展′95[M].哈尔滨:哈尔滨工业大学出版社,1996.1.
[7] 李 贵.面向大规模多数据源的分布对象互操作技术的研究与实践[D].沈阳:东 北大学,1998.3.

DESIGN AND IMPLEMENTATION OF CIMS_MIODP TO SUPPORT MULTIPLE DATA
SOURCES INTEROPERABILITY AND OPEN DISTRIBUTED PROCESSING

LI Gui, YIN Chao-wan 

(Shenyang Institute of Automation, Chinese Academy of Sciences,S henyang 110015,China)

Abstract:By adopting the techniques of distributed object intero perability and mechansim of object broker, CIMS_MIODP implements Remo te Object Access(R OA)based on RPC and Remote Database Access(RDA)based on SQL3, and supports in teroperability at the levels of database, respectively, for info rmation integration and distributed processing in CIMS. This paper discusses mai n issues of design and implementation of the system, including the basic model, the extended services and protocol, the supports for SQL3, the system architecture and so on.
Key words:multiple data sources interoperability; open distribu ted processing; ROA; RDA