在CORBA中利用模型转换实现实时异步通信的方法技术

技术编号:10190526 阅读:228 留言:0更新日期:2014-07-09 10:42
本发明专利技术公开了一种在CORBA中利用模型转换实现实时异步通信的方法,包括:定义CORBA组件模型中的初始接口定义语言;制定从初始接口定义语言转换为实时异步接口定义语言的映射规则;根据映射规则将初始接口定义语言通过模型转换技术转换成实时异步接口定义语言;通过模型转换技术根据实时异步接口定义语言生成CORBA组件模型中客户端与对象请求代理之间代码和服务器端与对象请求代理之间代码;利用前述代码实现CORBA组件模型中客户端与服务器端之间实时异步通信的业务逻辑。本发明专利技术利用了模型转换技术实现了CORBA系统中组件之间的实时异步通信,提高了客户端的计算性能,为CORBA应用程序的后续开发有效地奠定了基础。

【技术实现步骤摘要】
在CORBA中利用模型转换实现实时异步通信的方法
本专利技术属于软件开发
,尤其涉及一种在CORBA中利用模型转换实现实时异步通信的方法。
技术介绍
CORBA(CommonObjectRequestBrokerArchitecture,公共对象请求代理体系结构)是一个由OMG(ObjectManagementGroup)组织提出的标准,用于实现分布式计算。与RPC(RemoteProcedureCall,远程过程调用)有所不同,基于面向对象技术的CORBA能够处理和解决远程对象之间的协同操作。微软的DCOM(DistributedComponentObjectModel,分布式组件对象模型)也能解决这个问题,但是它是基于Windows操作系统的,因此它只能在Windows操作系统上很好地实现。CORBA是平台无关以及语言无关的,它使用IDL(InterfaceDefinitionLanguage,接口定义语言)来允许所有语言创建或者使用CORBA组件。CORBA定义的对象模型会提供以下几个功能特征:·客户端/服务器端关系:在一个分布式系统中,对象是通过调用服务来和其它对象进行交互的。·通过引用访问:在一个客户端对象能请求服务器对象之前,客户端必须要获得一个指向服务器端的引用。除此之外,这个调用是通过一个知名的强类型接口被执行的。能被调用的服务和这些服务的签名在编译阶段是已知的,并且依赖于客户端持有的引用的类型。·同步调用:服务的调用导致了客户端和服务器端之间的同步:一次调用是一个双向的问答式交互。在交互过程中,客户端发送参数,服务器端返回结果。调用会在客户端阻塞:它不得不在继续它的后续工作前等待结果。这是基本调用模式,尽管CORBA提供了单向服务。·异步调用:不同于同步调用,客户端在服务器返回响应结果前不会被阻塞。所以CORBA组件模型中的异步方法调用允许客户端组件向目标组件发送非阻塞请求。在CORBA中,IDL用于描述服务。IDL可以被映射到一些编程语言,比如C++或者Java,并且分为2个部分。在客户端的部分叫做IDLStub,在服务器端的部分叫做IDLSkeleton。重要的是2个部分能用不同的编程语言实现。对象的实现需要基于服务器端上的skeleton来编码。此外,客户端不得不通过stub来访问服务器上的方法。客户端和服务器端是通过ORB(ObjectRequestBroker,对象请求代理)总线来进行通信的。实际上,CORBA是一种多层客户端/服务器端架构,准确地说是3层客户端/服务器端模式。2层客户端/服务器端模式的问题在于,它们高度耦合,客户端和服务器端使用一种私有的通信协议,这会导致在服务器上的更改会影响客户端。与2层客户端/服务器端模式不同,在3层客户端/服务器端模式中,客户端和服务器端不能与对方直接通信,而是通过代理来通信。CORBA中的代理就是ORB。由于ORB的存在,客户端和服务器端不需要考虑通信细节,相反地只需要考虑功能的实现。所以从这个角度来说,CORBA是一种中间件技术。CORBA的架构如图1所示。IDL是CORBA系统中的一个重要概念。IDL的语法很像C++和Java。ORB使得CORBA成为平台无关。然而,IDL使得CORBA语言无关。IDL只定义接口而不是实现,就像Java语言中的接口。IDL不是一个真正的编程语言,所以如果使用IDL来编写应用程序,那么有必要把IDL映射成对应的编程语言,比如C++或者Java。在映射之后,客户端的Stub代码和服务器端的Skeleton代码会被生成。实际上,编写IDL是编写CORBA应用程序的第一步,在整个软件设计过程中有着举足轻重的地位。目前在CORBA中实现异步方法调用的过程中没有设定统一的从初始IDL到异步IDL的映射规则。因此,每次在CORBA上进行软件开发之前,需要重新定义一套适用于软件开发的异步通信IDL的转换规则,给开发过程带来了很大的不便。
技术实现思路
本专利技术克服了现有技术中没有规范异步IDL文件等缺陷,提出了一种在CORBA组件模型上利用模型转换技术实现实时异步通信的方法,利用了模型转换技术实现了在CORBA中组件之间的实时异步通信。本专利技术中提供了统一的映射规则,并提供了基于该映射规则的工具,使得开发者能通过工具快速地自动生成符合该规范的异步IDL文件,既提高了开发效率,又规范了CORBA异步调用的实现方法。本专利技术提出了一种在CORBA中利用模型转换实现实时异步通信的方法,CORBA模型组件中包括客户端、服务器端与对象请求代理,包括如下步骤:步骤一:定义CORBA组件模型中的初始接口定义语言;步骤二:制定从所述初始接口定义语言转换为实时异步接口定义语言的映射规则;步骤三:根据所述映射规则将所述初始接口定义语言通过模型转换技术转换成实时异步接口定义语言;步骤四:通过模型转换技术根据所述实时异步接口定义语言生成所述CORBA组件模型中所述客户端与所述对象请求代理之间的clientstub代码和所述服务器端与所述对象请求代理之间的serverskeleton代码;步骤五:利用所述clientstub代码和所述serverskeleton代码实现所述CORBA组件模型中客户端与服务器端之间实时异步通信的业务逻辑。本专利技术提出的所述在CORBA中利用模型转换实现实时异步通信的方法中,步骤一中定义所述初始接口定义语言包括如下步骤:步骤A1:通过进行需求分析得到需求分析报告;所述需求报告包括待定义的模块、接口、属性和操作;步骤A2:利用所述初始接口定义语言的语法定义接口的属性信息;所述属性信息包括属性的类型;步骤A3:利用所述初始接口定义语言的语法定义接口的操作信息;所述操作信息包括接口的操作,操作的参数列表以及操作的返回类型。本专利技术提出的所述在CORBA中利用模型转换实现实时异步通信的方法中,步骤二中通过如下步骤制定映射规则:步骤R1:定义在所述初始接口定义语言转换为所述实时异步接口定义语言的转换过程中所述初始接口定义语言中的操作的映射规则;步骤B2:定义所述转换过程中所述初始接口定义语言的的属性的映射规则;步骤B3:定义所述实时异步接口定义语言的异常处理机制;步骤B4:定义所述转换过程中响应处理器的映射规则;步骤B5:定义所述转换过程和中所述响应处理器中异常处理操作的映射规则;步骤B6:定义所述实时异步接口定义语言中的连接器;本专利技术提出的所述在CORBA中利用模型转换实现实时异步通信的方法中,所述步骤二进一步包括:步骤B7:启动所述CORBA组件模型中所述客户端与所述服务器端之间的实时异步通信。本专利技术提出的所述在CORBA中利用模型转换实现实时异步通信的方法中,步骤三中的所述模型转换技术是操作型QVT模型转换技术,转换过程包括如下步骤:步骤C1:为所述操作型QVT模型转换技术确定模型类型;所述模型类型中包括映射体;步骤C2:将所述映射规则应用至所述映射体中,所述操作型QVT模型转换技术根据所述映射体实现所述初始接口定义语言转换成实时异步接口定义语言。本专利技术提出的所述在CORBA中利用模型转换实现实时异步通信的方法中,所述步骤四包括如下步骤:步骤D1:定义实时异步接口定义语言转换成所述CORBA组件模型的编程语本文档来自技高网
...
在CORBA中利用模型转换实现实时异步通信的方法

【技术保护点】
一种在CORBA中利用模型转换实现实时异步通信的方法,CORBA模型组件中包括客户端、服务器端与对象请求代理,其特征在于,包括如下步骤:步骤一:定义CORBA组件模型中的初始接口定义语言;步骤二:制定从所述初始接口定义语言转换为实时异步接口定义语言的映射规则;步骤三:根据所述映射规则将所述初始接口定义语言通过模型转换技术转换成实时异步接口定义语言;步骤四:通过模型转换技术根据所述实时异步接口定义语言生成所述CORBA组件模型中所述客户端与所述对象请求代理之间的client stub代码和所述服务器端与所述对象请求代理之间的server skeleton代码;步骤五:利用所述client stub代码和所述server skeleton代码实现所述CORBA组件模型中客户端与服务器端之间实时异步通信的业务逻辑。

【技术特征摘要】
1.一种在CORBA中利用模型转换实现实时异步通信的方法,CORBA模型组件中包括客户端、服务器端与对象请求代理,其特征在于,包括如下步骤:步骤一:定义CORBA组件模型中的初始接口定义语言:步骤A1:通过进行需求分析得到需求分析报告;所述需求报告包括待定义的模块、接口、属性和操作;步骤A2:利用所述初始接口定义语言的语法定义接口的属性信息;所述属性信息包括属性的类型;步骤A3:利用所述初始接口定义语言的语法定义接口的操作信息;所述操作信息包括接口的操作,操作的参数列表以及操作的返回类型;步骤二:制定从所述初始接口定义语言转换为实时异步接口定义语言的映射规则;步骤三:根据所述映射规则将所述初始接口定义语言通过模型转换技术转换成实时异步接口定义语言;步骤四:通过模型转换技术根据所述实时异步接口定义语言生成所述CORBA组件模型中所述客户端与所述对象请求代理之间的clientstub代码和所述服务器端与所述对象请求代理之间的serverskeleton代码;步骤五:利用所述clientstub代码和所述serverskeleton代码实现所述CORBA组件模型中客户端与服务器端之间实时异步通信的业务逻辑。2.如权利要求1所述的在CORBA中利用模型转换实现实时异步通信的方法,其特征在于,步骤二中通过如下步骤制定映射规则:步骤B1:定义在所述初始接口定义语言转换为所述实时异步接口定义语言的转换过程中所述初始接口定义语言中的操作的映射规则;步骤B2:定义所述转换过程中所述初始接口定义语言的的属性的映射规则;步骤B3:定义所述实时异步接口定义语言的异常处理机制;步骤B4:定义所述转换过程中响应处理器的映射规则;步骤B5:定义所述转换过程和中所述响应处理器中异常处理操作的映射规则;步骤B6:定义所述实时异步接口定义语言中的连接器。3.如权利要求1所述的...

【专利技术属性】
技术研发人员:何积丰钱宇清韩嘉臻刘静
申请(专利权)人:华东师范大学
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1