当前位置: 首页 > 专利查询>武汉大学专利>正文

一种基于代理的异构服务调用方法与协同调用系统技术方案

技术编号:15089439 阅读:114 留言:0更新日期:2017-04-07 18:38
本发明专利技术公开了一种基于代理的异构服务调用方法与协同调用系统。本调用方法利用代理的思想对CORBA、Web Service两种异构服务进行封装转换,生成能够对异构服务实现调用的OSGi代理Bundle组件,从而利用本协同调用系统对异构服务进行调用与协同管理。本协同调用系统主要包括OSGi服务管理模块、OSGi服务容错模块、LDAP异构服务管理中间件等部分。本发明专利技术能够有效地针对CORBA服务、OSGi服务、Web服务等异构服务进行快速发现、协同调用、统一管理以及服务监控与容错,从而增强历史遗留系统与异构服务的可复用性,克服异构服务之间的互操作困境,提高异构服务的利用效率。

Proxy based heterogeneous service calling method and cooperative calling system

The invention discloses an agent based heterogeneous service calling method and a cooperative calling system. This method uses the theory of agency calls package conversion on CORBA Service two, Web heterogeneous services, can generate the heterogeneous service implementation of OSGi proxy Bundle component, which use the collaborative call system for heterogeneous services call and collaborative management. The system includes OSGi service management module, OSGi service fault tolerance module and LDAP heterogeneous service management middleware. The invention can effectively for the CORBA service, OSGi service, Web service and other heterogeneous services fast discovery, collaborative call, unified management and service monitoring and fault tolerance, thereby enhancing the legacy system and heterogeneous service reusability, overcome the interoperability between heterogeneous service difficulties, improve the utilization efficiency of heterogeneous services.

【技术实现步骤摘要】

本专利技术涉及了软件服务与构件
,主要涉及一种基于代理的异构服务调用方法与协同管理系统。
技术介绍
随着计算机技术研究的逐步深入,大批优秀的软件技术在日常工作中扮演了重要角色。目前,基于OSGi(OpenServiceGatewayInitiative,开放服务网关协议)、CORBA(CommonObjectRequestBrokerArchitecture,公共对象请求代理体系结构)和WebService等技术所构建的异构服务已广泛应用于各行业中。软件行业的工业化趋势使得基于构件的软件复用思想,成为最近几年软件工程领域研究的热点之一。模块化设计可以提高软件的复用度和质量,缩短软件开发周期,基于CORBA和WebService等技术构建的服务组件应用广泛,其中,CORBA采用IDL(Interfacedescriptionlanguage,接口描述语言)以及中间件技术,提供不依赖于平台的编程接口和模型;WebService采用独立于平台的SOAP(SimpleObjectAccessProtocol,简单对象访问协议)协议通信,利用WSDL(WebServicesDescriptionLanguage,网络服务描述语言)语言统一描述服务,实现网络间服务的模块化。按照模块化设计的思想,异构服务组件应当能够集成在一起提供更加完善的功能,但它们是由不同服务提供者、不同平台、不同系统所提供的,即服务及接口的异构性,导致了异构服务组件集成复用的困难。因此,在构建大型分布式系统时,如何有效地兼容这些历史遗留的异构服务,提高软件复用度,减少开发成本,缩短开发周期,成为一个重要的问题。目前,异构系统的集成研究主要是基于SOA思想,利用Web服务技术或ESB总线技术实现,或者利用与环境无关的SOAP通信协议实现,来解决异构系统的互操作问题。虽然这些集成方法可以解决异构服务的复用问题,但是缺少对服务元数据的描述,给用户调用服务带来了不便,而且只能对服务进行注册、调用等操作,不能对服务的生命周期进行更详尽的管理。本专利技术提出了一种基于代理的异构服务调用方法与协同管理系统,它采用基于“JVM中的SOA”——OSGi框架来管理服务组件,实现服务“即插即用,即删即无”的效果。运行于OSGi容器内的模块单元称之为Bundle,它由JavaJar文件与额外的元数据文件(MANIFEST.MF)描述组成。本专利技术通过代理的思想,将分布式的异构服务对象封装到OSGiBundle中,有效地屏蔽了异构服务不同平台、不同实现语言、不同接口等差异性,让服务使用者可以透明的访问远程异构服务;同时,为了方便用户调用异构服务,本专利技术采用具有简单、高效、低成本等优点的LDAP(LightweightDirectoryAccessProtocol,轻量目录访问协议)来描述服务的元数据。为了增加系统的稳定性,本专利技术还制定了一套服务质量评估和服务容错方案,一旦出现运行出错的服务,系统将自动启动备用的服务组件,将有效地保证系统健壮、平稳运行。
技术实现思路
本专利技术主要应用于异构服务的集成管理,增强历史遗留系统与异构服务的可复用性,提高异构服务之间的互操作能力与利用效率。为了实现上述功能,本专利技术提出了一种基于代理的异构服务调用方法与协同管理系统。所述的异构服务,是指由不同服务提供者、不同开发语言、不同平台、不同操作系统所提供的服务。本专利技术所涉及的系统主要针对CORBA、WebService、OSGi等3种异构服务。一种基于代理的异构服务调用方法,其特征在于,包括如下步骤:步骤1、通过cmd本地编译命令,结合注册时所提供的服务信息,自动编译生成该服务对应的多个本地Java文件;其中,对于CORBA服务,需要提供该服务的IDL文件,利用idlj命令,自动生成该服务对应的接口文件、实现类文件以及CORBA远程通信文件;对于WebService,需要提供该服务的WSDL,利用wsimport命令,自动生成该服务对应的接口文件、实现类文件以及WebService远程通信文件;步骤2、搜索编译后的本地Java文件,获取服务接口文件;其中,对于CORBA服务,循环查找步骤1生成的本地文件中以Operations.java结尾的文件;对于WebService,解析WSDL获得portType节点的name属性,该属性值即为接口名,查找步骤1生成的本地文件中以该接口名命名的.java文件;步骤3、对步骤1中生成的实现类文件进行代码封装,生成一个新的接口实现类文件,该实现类服务于步骤4中的服务注册;该类实现了步骤2所查找的接口类,并定义了一个远程服务的本地代理对象,该对象为一个静态初始化的变量,类中所有的接口实现方法均通过调用该对象的同名方法实现;步骤4、根据接口和接口实现类文件动态生成该服务的BundleActivator类文件,该类实现了OSGi定义的BundleActivator接口的start方法和stop方法,在start方法中注册远程服务,在stop方法中销毁OSGi框架的Bundle上下文对象;步骤5、根据步骤4所生成的BundleActivator类文件以及其它系统环境,生成包含Bundle-Version、Bundle-Activator、Bundle-RequiredExecutionEnvironment、Import-Package等元数据信息的MANIFEST.MF文件;步骤6、通过Ant打包文件工具将步骤1至5所生成的所有文件,统一编译打包生成本地代理Bundle。一种异构服务协同管理系统,其特征包括:组件一,Java虚拟机:组件二,OSGi容器组件:系统核心功能运行所依赖的OSGiFelix框架,以及该框架下的核心业务模块:OSGi服务管理模块与OSGi服务容错模块,其中,OSGi服务管理模块用于对注册到系统中的OSGi服务以及CORBA服务与WebService的代理Bundle进行统一的生命周期管理与协同调用支持,包含服务代理生成子模块、服务调用子模块、服务生命周期管理子模块与服务质量评价子模块;服务代理生成子模块:为CORBA服务与WebService等异构服务资源生成本地代理Bundle;服务调用子模块:用于实现通过系统中的本地Bundle对系统异构服务池中的异构服务进行统一调用;服务生命周期管理子模块:用于管理系统OSGi框架下的所有Bundle的生命周期,包括OSGi服务本文档来自技高网
...

【技术保护点】
一种基于代理的异构服务调用方法,其特征在于,包括如下步骤:步骤1、通过cmd本地编译命令,结合注册时所提供的服务信息,自动编译生成该服务对应的多个本地Java文件;其中,对于CORBA服务,需要提供该服务的IDL文件,利用idlj命令,自动生成该服务对应的接口文件、实现类文件以及CORBA远程通信文件;对于Web Service,需要提供该服务的WSDL,利用wsimport命令,自动生成该服务对应的接口文件、实现类文件以及Web Service远程通信文件;步骤2、搜索编译后的本地Java文件,获取服务接口文件;其中,对于CORBA服务,循环查找步骤1生成的本地文件中以Operations.java结尾的文件;对于Web Service,解析WSDL获得portType节点的name属性,该属性值即为接口名,查找步骤1生成的本地文件中以该接口名命名的.java文件;步骤3、对步骤1中生成的实现类文件进行代码封装,生成一个新的接口实现类文件,该实现类服务于步骤4中的服务注册;该类实现了步骤2所查找的接口类,并定义了一个远程服务的本地代理对象,该对象为一个静态初始化的变量,类中所有的接口实现方法均通过调用该对象的同名方法实现;步骤4、根据接口和接口实现类文件动态生成该服务的BundleActivator类文件,该类实现了OSGi定义的BundleActivator接口的start方法和stop方法,在start方法中注册远程服务,在stop方法中销毁OSGi框架的Bundle上下文对象;步骤5、根据步骤4所生成的BundleActivator类文件以及其它系统环境,生成包含Bundle‑Version、Bundle‑Activator、Bundle‑RequiredExecutionEnvironment、Import‑Package等元数据信息的MANIFEST.MF文件;步骤6、通过Ant打包文件工具将步骤1至5所生成的所有文件,统一编译打包生成本地代理Bundle。...

【技术特征摘要】
1.一种基于代理的异构服务调用方法,其特征在于,包括如下步骤:
步骤1、通过cmd本地编译命令,结合注册时所提供的服务信息,自动
编译生成该服务对应的多个本地Java文件;其中,对于CORBA服务,需要
提供该服务的IDL文件,利用idlj命令,自动生成该服务对应的接口文件、
实现类文件以及CORBA远程通信文件;对于WebService,需要提供该服务
的WSDL,利用wsimport命令,自动生成该服务对应的接口文件、实现类文
件以及WebService远程通信文件;
步骤2、搜索编译后的本地Java文件,获取服务接口文件;其中,对
于CORBA服务,循环查找步骤1生成的本地文件中以Operations.java结
尾的文件;对于WebService,解析WSDL获得portType节点的name属性,
该属性值即为接口名,查找步骤1生成的本地文件中以该接口名命名
的.java文件;
步骤3、对步骤1中生成的实现类文件进行代码封装,生成一个新的接
口实现类文件,该实现类服务于步骤4中的服务注册;该类实现了步骤2
所查找的接口类,并定义了一个远程服务的本地代理对象,该对象为一个
静态初始化的变量,类中所有的接口实现方法均通过调用该对象的同名方
法实现;
步骤4、根据接口和接口实现类文件动态生成该服务的
BundleActivator类文件,该类实现了OSGi定义的BundleActivator接口
的start方法和stop方法,在start方法中注册远程服务,在stop方法
中销毁OSGi框架的Bundle上下文对象;
步骤5、根据步骤4所生成的BundleActivator类文件以及其它系统环
境,生成包含Bundle-Version、Bundle-Activator、
Bundle-RequiredExecutionEnvironment、Import-Package等元数据信息的
MANIFEST.MF文件;
步骤6、通过Ant打包文件工具将步骤1至5所生成的所有文件,统一
编译打包生成本地代理Bundle。
2.一种异构服务协同调用系统,其特征包括:
组件一,Java虚拟机:
组件二,OSGi容器组件:系统核心功能运行所依赖的OSGiFelix框架,
以及该框架下的核心业务模块:OSGi服务管理模块与OSGi服务容错模块,
其中,
OSGi服务管理模块用于对注册到系统中的OSGi服务以及CORBA服务与
WebService的代理Bundle进行统一的生命周期管理与协同调用支持,包
含服务代理生成子模块、服务调用子模块、服务生命周期管理子模块与服
务质量评价子模块;
服务代理生成子模块:为CORBA服务与WebService等异构服务资源
生成本地代理Bundle;
服务调用子模块:用于实现通过系统中的本地Bundle对系统异构服务
池中的异构服务进行统一调用;
服务生命周期管理子模块:用于管理系统OSGi框架下的所有Bundle
的生命周期,包括OSGi服务自身的Bundle以及系统为CORBA服务和Web
Service自动生成的代理Bundle;该模块继承了OSGi框架对Bundle生命
周期管理的相关接口,实现对系统内Bundle的安装、解析、启动,停止,
更新,卸载等操作的统一管理;
服务评价子模块:利用服务的响应时间、执行时间、执行成功率等运
行数据对异构服务进行质量评价,可以根据经验或者用户兴趣进行各项指
标评分,然后通过用户要求赋予各项指标权重,进行服务质量加权综合评
价,从而帮助用户了解系统中各服务的质量,并为出错服务的自动恢复提
供依据;

【专利技术属性】
技术研发人员:孟令奎张文李元熙张钟海邱文东朱会玲洪志明
申请(专利权)人:武汉大学
类型:发明
国别省市:湖北;42

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

1