pdf

Web Services/CORBA网关系统的研究与实现

  • 1星
  • 日期: 2018-07-11
  • 大小: 173.37KB
  • 所需积分:1分
  • 下载次数:1
  • favicon收藏
  • rep举报
  • 分享
  • free评论
标签: 网关系统

本文提出了一个Web Services/CORBA网关系统模型,并讨论了系统实现中的关键技术。研究了接口映射问题,利用CORBA的命名服务和DII技术解决了对象的正确定位和调用。

关键词:CORBA;SOAP;Web Services;网关

Abstract: This paper presents a gateway system model which enable Web Services to access CORBA objects, and discusses the main problems which need to be solved to implement this mode1. It also studies the mapping of interface and solves the object locating and invocation by using Naming Services and DII in CORBA.

Key words: CORBA; SOAP; Web Services; gateway

文档内容节选

Web ServicesCORBA 网关系统的研究与实现 朱亚光 刘 峰 杨芳南 北京交通大学网络管理研究中心 北京 100044 摘 要:本文提出了一个Web ServicesCORBA网关系统模型,并讨论了系统实现中的关键技术研究了接 口映射问题,利用CORBA的命名服务和DII技术解决了对象的正确定位和调用 关键词:CORBASOAPWeb Services网关 Research and Implementation of a Web ServicesCORBA Gateway System ZHU Yaguang LIU Feng YANG Fangnan Network Management Research Center of Beijing Jiaotong University Beijing 100044 Abstract This paper presents a gateway system model which enable Web Services to access CORBA objects, and discusses t......

Web Services/CORBA 网关系统的研究与实现 朱亚光 刘 峰 杨芳南 (北京交通大学网络管理研究中心 北京 100044) 摘 要:本文提出了一个Web Services/CORBA网关系统模型,并讨论了系统实现中的关键技术。研究了接 口映射问题,利用CORBA的命名服务和DII技术解决了对象的正确定位和调用。 关键词:CORBA;SOAP;Web Services;网关 Research and Implementation of a Web Services/CORBA Gateway System ZHU Ya-guang LIU Feng YANG Fang-nan (Network Management Research Center of Beijing Jiaotong University, Beijing 100044) Abstract: This paper presents a gateway system model which enable Web Services to access CORBA objects, and discusses the main problems which need to be solved to implement this mode1. It also studies the mapping of interface and solves the object locating and invocation by using Naming Services and DII in CORBA. Key words: CORBA; SOAP; Web Services; gateway 1. 引言 Web Services技术以其良好的开放性、松耦合性以及互操作性等优点,成为开放异构环 境中应用集成的一项新兴技术。随着Web Services的不断成熟,越来越多的企业将其应用以 Web Services的形式发布,从而使得这些应用可以作为一个组件集成到其业务伙伴的系统 中。CORBA(Common Object Request Broker Architecture)作为一种非常成熟的分布式计 算技术,已被广泛应用到各个领域中,是企业已有系统中的主要构成。因此,企业应用集成 中首要解决的问题之一就是如何利用Web Services有效的集成已有的CORBA服务。 基于上述目标,本文设计了一个从Web Services到CORBA的网关系统。通过这个网关系 统,Web Services客户端能以标准的方式访问服务,而不感知请求的执行目标是CORBA对象。 这样,既可以不改变已有的CORBA应用,又可以克服CORBA的缺点,结合CORBA和Web Services 的优点,在拓展CORBA的应用的同时,可减少重复建设的投入,从而为企业节约了成本。 2. 网关工作原理 Web Services 和 CORBA 是两种采用不同技术的分布式计算框架,但在总体结构上具有 相似性:Web Services 采用 WSDL(Web Services Description Language)作为接口描述语言, SOAP (Simple Object Access Protocol)为基 本的通讯协议;而 CORABA 是用 IDL(Interface Description Language ) 描 述 接 口 , IIOP(Internet Inter-ORB Protocol)是其通 讯协议。为了能使 Web Services 访问 CORBA 服务,本文在二者之间建立一个网关系统,它 搬演着两个角色:对于 Web Services 客户端 来讲,网关相当于服务的终端点,是服务的提 供者;而对于 CORBA Server 来讲,网关相当于 CORBA 客户端,是服务的请求者。这样对于 图 1. Web Services/CORBA 网关原理图 Web Services 客户端发起的请求,网关屏蔽了服务的实现细节。其工作原理如图 1 所示。 网关的实现主要包括两个部分: 静态映射和动态映射。静态映射完成 CORBA 到 Web Services 信息模型的映射,即将 CORBA 对象的接口描述 IDL 转换成 Web Services 的接口描 述 WSDL,其中包括了模块、接口、数据类型、操作等的映射,然后将 WSDL 通过 UDDI(Universal Description, Discovery and Integration)注册发布出去,以供 Web Services 客户端查找。这 部分工作主要在 Web Services 部署时刻完成。动态映射完成 Web Services 的通讯协议 SOAP 和 CORBA 通讯协议 IIOP 之间的协议转化,即将 SOAP 请求中的参数转换成 CORBA 对象调用需 要的参数,定位和调用 CORBA 对象,同时将结果封装成 SOAP 消息返回。这部分工作主要在 Web Services 运行时刻完成。 3. Web Services/CORBA 网关总体构架 通过以上对网关原理的研究,本文设计了一个 Web Services/CORBA 网关系统,如图 2 所示。网关各个模块及其主要功能如下: 1.静态功能模块:包括 IDL/WSDL 编 译器和部署模块。IDL/WSDL 编译器完成 IDL 文件到 WSDL 文件的转换;部署模块完 成网关的静态部署工作,发布服务接口。 2.动态功能模块:它是整个网关的核 心部分,包括 SOAP Services 模块、编解 码 模 块 、 CORBA 客 户 端 三 部 分 。 SOAP Services 模块根据接收到的 SOAP 请求解 析出调用的方法名和参数类型,经过编解 码模块的转换送至 CORBA 客户端模块,此 外还完成回送 SAOP 响应的功能;编解码模块实现运行时刻的 CORBA IDL 数据类型到 SOAP 数据类型间的相互转化。CORBA 客户端完成构建对象调用请求,接受并返回执行结果的功能。 图 2. Web Services/CORBA 网关构架图 网关的工作流程包括以下几个步骤: 1.通过 IDL/WSDL 翻译器将 IDL 文件转换成 WSDL 文件,并在 UDDI 注册发布服务,同时 进行系统的初始化,完成服务的部署工作。 2.Web Services 客户端从 UDDI 查找 WSDL 文件,并根据 WSDL 的描述向网关发送 SOAP 请求消息。 3.SOAP 前端处理模块接受通过网络(HTTP)传递过来的 SOAP 消息并检查语法,提取出 SOAP 请求送至网关核心模块。 4.SOAP Services 接受到 SOAP 请求后将调用的方法,参数提取出来,并调用编码/解码 模块进行 SOAP 和 CORBA 数据类型的转换,最后送至 CORBA Client 模块,由 CORBA Client 构建 IIOP 请求,完成对象的定位与调用工作。 5.CORBA Server 执行请求并返回 IIOP 响应至网关,网关再将返回结果转化为 SOAP 响 应消息回送至 Web Services 客户端。 4. 关键技术实现 4.1 IDL to WSDL 编译器 OMG 为了推广CORBA规范与Web Service之间的互操作,于2003年1月正式采纳一个新的 规范,“CORBA to WSDL/SOAP Interworking Specification,v1.0”,该规范详细的描述了IDL 到WSDL的映射规则。这为IDL到WSDL的映射提供了参考标准,按照此规范实现的编译器主要 完成了以下两个方面的映射: 1.接口定义:一个基本IDL接口映射为一种WSDL端口类型。WSDL端口类型是指一系列的操 作以及包含的消息。WSDL端口类型中的操作由IDL接口中的操作直接映射而来;而WSDL中的 消息由IDL接口中操作的参数映射而来,具体为IDL操作中的“in”和“inout”参数构成WSDL 操作中的输入消息.IDL操作的out和inout参数和返回值构成WSDL操作中的输出消息.IDL 操作中定义的异常构成WSDL操作的出错消息。 2.数据类型:IDL提供的数据类型包括了基本数据类型和复杂数据类型,而WSDL中的数据 类型相对简单的多。对于IDL中的基本数据类型可以直接映射到WSDL基本数据类型,但对于 复杂数据类型,如序列、值类型等不可能直接映射,根据具体情况映射为相应的WSDL复合类 型。详细可参见OMG的“CORBA to WSDL/SOAP Interworking Specification,v1.0”。 下面是一个具体的映射例子: IDL 接口描述: interface SomeInterface { long bar(in float pi); } 映射后的 WSDL(只给出了消息和端口类型部分): 4.2 网关核心模块 本文中网关核心模块的实现是基于Apache Axis平台的。Axis本质上就是一个SOAP引擎, 提供创建服务器端、客户端和网关SOAP操作的基本框架。图3是Apache Axis基本的结构图。 Axis把整个Web Services的服务端抽象成 了三层结构,Provider层是SOAP前端和服务实 现之间的中间层,它将所有的服务执行过程抽 象为"定位"和"激发"两个方法,以标准的接口 连接不同语言、不同机制的服务实现。用户可 以 跟 据 后 端 系 统 的 特 征 实 现 自 定 义 的 Provider,其定位和激发过程完全可定制。通 过适当的部署,用户自定义的Provider可以运 行时刻加载执行服务。 图 3. Apache Axis 可扩展框架 Axis平台的这种可扩展的Provider机制给网关的实现带来了很大的便利。为了实现本文 中网关的核心模块,首先需要实现一个CORBAProvider,用它作为SOAP引擎与CORBA对象之间 的连接器。从SOAP客户端来看,它相当于SOAP services功能块,是服务的提供者, SOAP 请求在CORBAProvider中执行并返回结果;另一方面,它作为CORBA客户端调用远端的CORBA 对象实现来执行服务;其次,CORBAProvider的另一个功能是,构造激发CORBA调用所需的 CORBA类型参数,并将CORBA调用的返回值转换为SOAP编解码引擎所能识别的类型,即完成编 解码功能。 下面分别讨论三个模块的具体实现: 1. SOAP services 从SOAP客户端来看,CORBAProvider是服务的提供者,它屏蔽了后端的真正的服务实现。 因此,要完成接受SOAP请求并返回执行结果的功能。Axis中的Call对象封装了一次SOAP请求 的信息,包括请求目标服务标识、请求的方法名、请求参数等,从中可以方便的提取请求信 息。另外CORBAProvider还要根据执行结果构成Response对象返回结果SOAP客户端,从而完 成整个SOAP services模块功能。 2. 编码与解码 编码与解码模块实质上完成动态接口映射,包括接口中的操作映射和数据类型映射。操 作映射是将SOAP请求消息里方法名称直接对应为CORBA对象的操作名,其实现比较简单,SOAP 请 求 中 定 义 了 操 作 的 名 称 信 息 , Axis 把 操 作 信 息 封 装 在 Call 对 象 中 , 运 行 时 通 过 getOperationName方法可以方便地得到操作的名称。数据类型映射是把SOAP消息中表示对象 的参数、返回值等的数据类型映射到CORBA对象的数据类型。数据类型的映射比较复杂,可 以分为简单数据类型的映射和复杂与自定义数据类型的映,前者可通过Call对象直接提取转 换,后者需要通过扩展Axis的编解码功能实现。 3. CORBA client 主要是实现对象的定位和调用功能。 3.1 对象定位 对象定位主要是把SOAP请求中的服务标识映射到CORBA对象引用上,以调用实际的服务 实现。SOAP访问端点对象通常用URI(Universal Resource Identifier)表示,服务端根据 URI实现接收、分发SOAP请求。CORBA通过通用对象引用(IOR)唯一标识远程对象。因此需要 通过某种内部机制把URI映射为后端CORBA对象的IOR。为了使这种映射更具灵活性,本文采 用CORBA的命名服务(Naming Service)。命名服务是CORBA系统常用的定位机制,它提供从名 字到对象引用的映射。使用CORBA命名服务,服务器端需要先将对象的逻辑名绑定在命名服 务中,客户端通过解析逻辑名获取对象引用,从而使得对象引用对客户透明。因此,只需建 立URI到对象的逻辑名称之间的映射关系,再利用命名服务就可以形成URI、对象名称、IOR 三者之间的间接映射关系。具体做法是:在部署时刻将URI和对象的逻辑名称的映射关系记 录在部署文件中;运行时,网关根据服务标识查找相应的部署文件,得到对象的逻辑名称, 再通过命名服务解析该对象的逻辑名称即可获得对象的IOR。 3.2 对象调用 通过对象定位获取欲访问对象的引用后,就要发起调用操作请求,这可以通过实现 Provider接口中的invoke方法来完成。CORBA客户端对远程对象的调用可以通过两种方式: 静态调用和动态调用。在静态调用中,客户端需要IDL存根的帮助来完成对象调用;动态调 用则无需IDL存根,它在接口库IR(Interface Repository)的帮助下,动态构成对远程对象 的请求。如果采用静态方式,则需要把每一个对象的存根都部署在网关中,这显然不够灵活。 更为一般的情况是,网关在接收到客户端的SOAP请求之前,并不知道要调用哪个CORBA对象 的哪个操作。因此,本文采用动态调用方式。在获取目标对象引用之后,先从接口库中查找 目标对象接口信息的详细描述,再构建参数列表,最后创建IIOP请求并发送至CORBA服务器, 从而完成对象调用过程。 5. 总结 如何利用Web Services访问CORBA服务是企业应用集成面临得问题之一。本文通过研究 CORBA和Web Services的基本原理,设计并实现了一个基于Apache Axis平台的Web Services/ CORBA网关系统。通过此网关,Web Services能够透明的访问CORBA服务,这不仅把CORBA应 用扩展到了Internet,而且使CORBA系统能与J2EE、DCOM 等异构系统进行互操作。因此该网 关系统能为企业的应用集成节约成本,有广泛的应用前景。 【参考文献】 1. OMG. CORBA to WSDL/SOAP Interworking Specification,v1.0 ,formal/03-11-02 2. W3C. SOAP Version1.2 http://www.w3.org/TR/soap 3. W3C. Web Services Description Language (WSDL) 1.1 http://www.w3.org/TR/wsdl 4. Apache Axis1.2. http://ws.apache.org/axis/index.html 5. 朱其亮,郑斌. CORBA原理及应用. 北京邮电大学出版社 2001.10 中图分类号:TP393.07 文献标识码:B 基金项目:国家 863 计划项目(编号:2003AA112020,2004AA115060) 作者简介:朱亚光(1980-),男,甘肃人,北京交通大学硕士研究生,主要研究方向为网络管理、通信软 件;刘峰 (1961-),男,山西人,北京交通大学教授,硕导,主要研究方向为计算机通信、网络管理、通 信软件;杨芳南 (1963-),女,湖南人,北京交通大学高级工程师,硕导,主要研究方向为网络管理、通 信软件 通信地址:北京交通大学网络管理研究中心 9 教南 621 室 邮编:100044 联系人:朱亚光 EMAIL:zyg_hhh@126.com
更多简介内容

推荐帖子

射频同轴接头
作为一个射频工程师,测试人员,在日常的工作过程中,接触最多的除了测试仪表,校准件,连接线缆之外,就是各种不同设备之间的转接头了。我们在维修的过程中,发现有比较多的仪器的损坏,或者是测试指标不稳定,是由于转接头的损坏造成的,而且有些接头的连接固定的方式不对,每次修好的仪器,过去后客户又按照他们原来的方式去拧紧了。特别是在一些生产型的企业,由于操作人员流动性比较大,很多员工对于各种转接头都不一定认识,
Jacktang RF/无线
几个对比:关于4G/5G的区别分析
5G作为替代4G的产品,大多数人对于5G的理解就是传输速度比4G更快,其实5G和4G的区别是很多的,下面就给大家分享两者的区别。 一、帧结构比较 1. 4G和5G相同之处 帧和子帧长度均为:10ms和1ms。 最小调度单位资源:RB 2. 4G和5G不同之处 1);子载波宽度 4G:固定为15kHz。 5G:多种选择,15kHz、30kHz、60kHz、12
火辣西米秀 【无线连接】
MSP430 闪存仿真工具
MSP430 闪存仿真工具 **MSP-FET 与 Code Composer Studio v6 及更高版本兼容** MSP-FET 是一款强大的仿真开发工具(通常称为调试探针),可帮助用户在 MSP 低功耗微控制器 (MCU) 上快速开始应用开发。 创建 MCU 软件通常需要将生成的二进制程序下载到 MSP 器件中,以进行验证和调试。MSP-FET 在主机和目标 MSP
fish001 【微控制器 MCU】
教你免费申请试用新一代示波器40种功能软件
现在只需要拥有一台泰克新一代示波器,即可免费试用包括多款高级汽车电子领域测试在内的近40种高级应用功能测试,且每种软件都有30天试用期。 泰克新一代示波器提供多款高级汽车电子领域测试软件,支持各种复杂、高噪声环境下的车载以太网测试,帮助您分理处真实信号,实现信号完整性。   如何申请试用? 如上图,>>点此进入泰克官网,然后向下滑动屏幕,点升级,看到右侧的申请试用许可证了嘛
eric_wang 【测试/测量】
CC1310直接操作寄存器编程
官方 CC13x0 提供的驱动为了兼容多种器件和操作系统比较抽象,例如串口发送函数是这样的: int_fast32_t UART_write(UART_Handle handle, const void *buffer, size_t size) {     return (handle->fxnTablePtr->writeFxn(handle, buffer, size)); }
火辣西米秀 【无线连接】
5月19日直播:电源基础不牢?来看看更严格的电源实战怎么做!
车载电源系统对可靠性、安全性要求更高。社区特邀这方面的电源专家芯源(MPS),讲讲如何实现高效率,小功耗,低干扰的稳定可靠的电源系统。 推荐看点: 1、跟着专家,了解目前车规级电源芯片新技术及发展方向。 2、面对越来越严格的车厂要求,MPS如何提供更好的解决方案。 3、预约观看、提问均有机会获礼品,且有100%中奖的砸金蛋环节。   >>点此预约直播(报名即可在直播后获
nmg 汽车电子

评论

登录/注册

意见反馈

求资源

回顶部

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版 版权声明

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved
$(function(){ var appid = $(".select li a").data("channel"); $(".select li a").click(function(){ var appid = $(this).data("channel"); $('.select dt').html($(this).html()); $('#channel').val(appid); }) })