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,网络服务描述语言)语言统一描述服务,实现网络间服务的模块化。按照模块化设计的思想,异构服务组件应当能够集成在一起提供更加完善的功能,但它们是由不同服务提供者、不同平台、不同系统所提供的,即服务及接口的异构性, ...
【技术保护点】
一种基于代理的异构服务调用方法,其特征在于,包括如下步骤:步骤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所查找的接口类,并定义了一个远程服务的本地代理对象,该对象为一个静态初始化的变量,类中所有的接口 ...
【技术特征摘要】 【专利技术属性】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。