专利名称:一种服务交互方法及系统的利记博彩app
技术领域:
本申请涉及网络及计算机领域,特别是涉及一种不同OSGi框架中服务交互的方 法及系统。
背景技术:
OSGi框架提供了一个本地服务注册中心使得框架中安装的bundles可以通过服 务进行交互,这些服务由一个bundle注册,被另一个bundle获取。在这种情况下只有部 署在同一个OSGi框架中的bundles之间可以通过服务进行交互,部署在不同OSGi框架中 的bundles之间没有办法进行交互,因此需要一种方法或产品来实现不同OSGi框架中的 bundles之间的交互。
发明内容
为解决上述技术问题,本申请实施例提供一种服务交互方法及系统,有效的实现 了不同OSGi框架中的bundles之间的交互。技术方案如下一种服务交互方法、包括服务端将服务端OSGi框架中注册的OSGi服务发布为Web Service ;客户端获取所述服务端发布的Web Service,调用Web Service接口,生成所述Web Service的代理对象,并将所述代理对象注册为所述客户端OSGi框架中的OSGi服务。上述的方法,优选的,所述服务端将OSGi服务发布为Web Service的过程具体为定义服务接口,实现服务实例;配置服务注册信息,将所述服务实例注册为OSGi服务;配置服务发布信息,将所述OSGi服务发布为Web Service。上述的方法,优选的,所述服务发布信息包括服务发布的Web Service接口、服 务发布的方式、服务发布为Web Service的根地址、相对地址及服务发布的数据绑定方式。一种服务交互系统,包括服务端和客户端;所述服务端用于将服务端OSGi框架中注册的OSGi服务发布为WebService ;所述客户端用于获取所述服务端发布的Web Service,调用Web Service接口,生 成所述Web Service的代理对象,并将所述代理对象注册为所述客户端OSGi框架中的OSGi 服务。上述的系统,优选的,客户端包括服务获取单元、代理对象生成单元和第一注册 单元;所述服务获取单元用于获取服务端发布的Web Service ;所述代理对象生成单元用于调用Web Service接口,生成所述服务获取单元获取 的Web Service的代理对象;
3
所述第一注册单元用于将所述代理对象生成单元生成的代理对象注册为客户端 OSGi框架中的OSGi服务。上述的系统,优选的,服务端包括接口定义单元、第二注册单元和服务发布单 元;所述接口定义单元用于定义服务接口,实现服务实例;所述第二注册单元用于配置服务注册信息,将所述接口定义单元实现的服务实例 注册为OSGi服务;所述服务发布单元用于配置服务发布信息,将所述第二注册单元注册的OSGi服 务发布为Web Service。上述的系统,优选的,所述服务发布单元发布的服务发布信息包括服务发布的 Web Service接口、服务发布的方式、服务发布为Web Service的根地址、相对地址及服务发 布的数据绑定方式。由以上本申请实施例提供的技术方案可见,本发明提供的一种服务交互方法及系 统,将服务端OSGi框架中注册的OSGi服务发布为Web Service,客户端调用Web Service 接口,获取服务端发布的Web Service,并生成WebService的代理对象,将生成的代理对象 注册为客户端OSGi框架中的OSGi服务,这样一个OSGi框架中的bundles可以通过将注册 的服务先转换为WebService,然后将Web Service注册为另一个OSGi框架中的服务,通过 上述转换过程,实现不同OSGi框架中bundles之间的交互。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下, 还可以根据这些附图获得其他的附图。图1为本申请实施例公开的服务交互方法的流程图;图2为本申请实施例公开的将OSGi服务发布为Web Service的流程图;图3为本申请实施例公开的服务交互方法的架构图;图4为本申请实施例公开的服务交互系统的结构图;图5为本申请实施例公开的服务交互系统的一详细结构图;图6为本申请实施例公开的服务交互系统的又一详细结构图。
具体实施例方式本申请实施例提供一种服务交互方法及系统,基于Apache CXF(CXF是一个开源 的Web Service框架,为应用程序提供发布Web Service和调用WebService的功能), ^^ Loong Dservice (OSGI Declarative Services 夫 白勺 JfiJ|$5ft, OSGi Declarative Services是一个面向服务的组件模型,它制订的目的是更方便地在OSGi服务平台上发布、 查找、绑定服务,对服务进行动态管理,如监控服务状态以及解决服务之间的复杂的依赖关 系等问题。OSGiDeclarative Services采用服务组件的延迟加载以及组件生命周期管理 的方式来控制对于内存的占用以及启动的快速,很好的解决了传统的OSGi服务模型在开发和部署比较复杂应用时内存占用大、启动慢等问题,并且对服务组件的描述采用元数据 来实现,十分便于用户理解和使用。在OSGi DeclarativeServices中,Component可以是 Service的提供者和引用者,一个Component可以提供0至多个Service,也可以引用0至 多个Service,并且采用component方式封装Service,方便了对Service的复用,从开发者 的角度来看,该服务组件模型简化了在OSGi服务平台中的编程模型。),提供了使部署在不 同的OSGi框架中的bundles能够通过服务进行交互的方法。以上是本申请的核心思想,为了使本技术领域的人员更好地理解本申请方案。下 面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显 然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实 施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应 当属于本申请保护的范围。本申请实施例公开的服务交互方法的流程图如图1所示,包括步骤SlOl 服务端将服务端OSGi框架中注册的OSGi服务发布为WebService ;步骤S102 客户端获取服务端发布的Web Service,调用Web Service接口,生成 上述Web Service的代理对象,并将上述代理对象注册为客户端OSGi框架中的OSGi服务。需要对以上步骤进行说明的是以上步骤S102中调用Web Service接口,这里的Web Service接口指的是java 应用编禾呈接口 for xml web service。本申请实施例公开的将OSGi服务发布为Web Service的流程图如图2所示,包 括步骤S201 定义服务接口,实现服务实例;步骤S202 配置服务注册信息,将服务实例注册为OSGi服务;步骤S203 配置服务发布信息,将OSGi服务发布为Web Service。将服务端注册的OSGi发布为Web Service 开发程序提供系统或应用所需要的逻辑功能,例如,气象服务作为服务端向用户 提供天气查询的功能,首先定义天气查询的服务接口,然后实现该服务接口,即实现一个服 务实例;配置Loong Dservice的元数据信息,Loong Dservice将实现的服务实例 注册为OSGi服务;继续配置元数据文件信息,包括发布的Web Service的接口,如 WeatherService ;Web Service的发布方式,服务发布为Web Service的根地址、相对地址 及服务发布的数据绑定方式等;元数据文件信息配置完毕后,将所述配置信息添加至XML 文档中,将注册的OSGi服务转化为WebService。将客户端依赖的Web Service转化为本地OSGi服务开发程序应用服务端发布的Web Service,配置元数据文件信息,依赖实现Web Service 接口的 OSGi 服务;继续配置服务信息,描述服务要依赖一个Web Service以及如何导入 WebService,配置Web Service的接口,导入服务的方式,Web Service的WSDL文档的地址, 服务的命名空间,服务的名称,服务的端点名称等。通过服务的命名空间、服务的名称和服 务的端点名称可以帮助服务构建定位WebService的WSDL文档的地址。
5
通过配置服务信息,CXF创建需要的Web Service代理对象(具有WebService同 样的接口),CXF根据配置创建代理对象,分布式提供者通过OSGI的API将该代理对象注册 为OSGi服务。然后Loong Dservice将该服务绑定到服务构件,服务构件就可以像使用本地 OSGi服务一样使用外部的Web Service。本申请实施例公开的服务交互方法的架构图如图3所示,图中3中,服务提供者相 当于服务端,通过配置元数据的方式声明要发布一个Web Service (假设,接口为A,实现为 Aimpl),分布式提供者根据服务提供者的声明将Aimpl实例对象发布为Web Service,即为 Aimpl实例对象创建了一个代理,如图3中的服务端点。服务消费者相当于客户端,通过配置元数据的方式声明要依赖一个 WebService (接口为A),分布式提供者根据声明为服务消费者指定的Web Service创建一 个代理,即图3中服务端点引用,代理具有和Web Service同样的接口 A,分布式提供者将为 服务消费者所依赖服务的Web Service创建的代理注册为OSGi服务,服务消费者就可以通 过Loong Dservice绑定到实现了接口 A的OSGi服务。本申请实施例公开的架构图中,服务提供者(必须是Loong Dservice的服务构 件)发布的Web Service必须是其注册的OSGi服务的子集;服务消费者(必须是Loong Dservice的服务构件)依赖的Web Service必须是 其依赖的OSGi服务的子集。本申请实施例公开的服务交互系统的结构图如图4所示,包括服务端302和客户 端 301 ;服务端302用于将服务端OSGi框架中注册的OSGi服务发布为WebService ;客户端301用于获取服务端302发布的Web Service,调用Web Service接口,生 成Web Service的代理对象,并将代理对象注册为所述客户端OSGi框架中的OSGi服务。本申请实施例公开的服务交互系统的一详细结构图如图5所示,客户端301包括 服务获取单元303、代理对象生成单元304和第一注册单元305 ;服务获取单元303用于获取服务端发布的Web Service ;代理对象生成单元304用于调用Web Service接口,生成服务获取单元303获取 的Web Service的代理对象;第一注册单元305用于将代理对象生成单元304生成的代理对象注册为客户端 OSGi框架中的OSGi服务。本申请实施例公开的服务交互系统的又一详细结构图如图6所示服务端302包 括接口定义单元306、第二注册单元307和服务发布单元308 ;接口定义单元306用于定义服务接口,实现服务实例;第二注册单元307用于配置服务注册信息,将接口定义单元306实现的服务实例 注册为OSGi服务;服务发布单元308用于配置服务发布信息,将第二注册单元307注册的OSGi服务 发布为 Web Service。服务发布单元308发布的服务发布信息包括服务发布的Web Service接口、服务 发布的方式、服务发布为Web Service的根地址、相对地址及服务发布的数据绑定方式。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部 分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。以上所述仅是本 申请的具体实施方式
,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原 理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
权利要求
一种服务交互方法,其特征在于,包括服务端将服务端OSGi框架中注册的OSGi服务发布为Web Service;客户端获取所述服务端发布的Web Service,调用Web Service接口,生成所述Web Service的代理对象,并将所述代理对象注册为所述客户端OSGi框架中的OSGi服务。
2.根据权利要求1所述的方法,其特征在于,所述服务端将OSGi服务发布为Web Service的过程具体为定义服务接口,实现服务实例;配置服务注册信息,将所述服务实例注册为OSGi服务;配置服务发布信息,将所述OSGi服务发布为Web Service。
3.根据权利要求2所述的方法,其特征在于,所述服务发布信息包括服务发布的Web Service接口、服务发布的方式、服务发布为Web Service的根地址、相对地址及服务发布 的数据绑定方式。
4.一种服务交互系统,其特征在于,包括服务端和客户端;所述服务端用于将服务端OSGi框架中注册的OSGi服务发布为WebService ;所述客户端用于获取所述服务端发布的Web Service,调用Web Service接口,生成所 述Web Service的代理对象,并将所述代理对象注册为所述客户端OSGi框架中的OSGi服 务。
5.根据权利要求4所述的系统,其特征在于,客户端包括服务获取单元、代理对象生 成单元和第一注册单元;所述服务获取单元用于获取服务端发布的Web Service ;所述代理对象生成单元用于调用Web Service接口,生成所述服务获取单元获取的Web Service的代理对象;所述第一注册单元用于将所述代理对象生成单元生成的代理对象注册为客户端OSGi 框架中的OSGi服务。
6.根据权利要求4所述的系统,其特征在于,服务端包括接口定义单元、第二注册单 元和服务发布单元;所述接口定义单元用于定义服务接口,实现服务实例;所述第二注册单元用于配置服务注册信息,将所述接口定义单元实现的服务实例注册 为OSGi服务;所述服务发布单元用于配置服务发布信息,将所述第二注册单元注册的OSGi服务发 布为 Web Service。
7.根据权利要求6所述的系统,其特征在于,所述服务发布单元发布的服务发布信息 包括服务发布的Web Service接口、服务发布的方式、服务发布为Web Service的根地址、 相对地址及服务发布的数据绑定方式。
全文摘要
本申请公开了一种服务交互方法,包括服务端将服务端OSGi框架中注册的OSGi服务发布为Web Service;客户端获取服务端发布的Web Service,调用Web Service接口,生成Web Service的代理对象,并将代理对象注册为客户端OSGi框架中的OSGi服务。本发明提供的服务交互方法及系统,将服务端OSGi框架中注册的OSGi服务发布为Web Service,客户端调用WebService接口,获取发布的Web Service,并生成Web Service的代理对象,将生成的代理对象注册为客户端OSGi框架中的OSGi服务,实现不同OSGi框架中bundles之间的交互。
文档编号H04L29/06GK101964797SQ20101050514
公开日2011年2月2日 申请日期2010年9月29日 优先权日2010年9月29日
发明者刘民, 景新海, 李攀 申请人:山东中创软件工程股份有限公司;山东中创软件商用中间件股份有限公司