CN102377796A - 基于OSGi的异构服务集成***及方法 - Google Patents
基于OSGi的异构服务集成***及方法 Download PDFInfo
- Publication number
- CN102377796A CN102377796A CN201010251926XA CN201010251926A CN102377796A CN 102377796 A CN102377796 A CN 102377796A CN 201010251926X A CN201010251926X A CN 201010251926XA CN 201010251926 A CN201010251926 A CN 201010251926A CN 102377796 A CN102377796 A CN 102377796A
- Authority
- CN
- China
- Prior art keywords
- service
- module
- osgi
- processor
- remote
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2803—Home automation networks
- H04L12/2807—Exchanging configuration information on appliance services in a home automation network
- H04L12/2809—Exchanging configuration information on appliance services in a home automation network indicating that an appliance service is present in a home automation network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
Landscapes
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种基于OSGi的异构服务集成***,包括Java虚拟机、OSGi容器,还包括服务管理模块、处理器管理模块、监视模块、服务发现模块以及处理器模块;其中,服务管理模块负责监听远程服务注册和使用请求,对不同类型的服务进行管理,针对不同的服务配置类型,通知处理器管理模块进行发布和调用;处理器管理模块用于对处理器模块进行管理,并向远程端点发布和调用服务,还根据服务管理模块所传递的信息调用处理器模块,维护当前发布的服务以及使用的远程服务的信息;监视模块负责监视本地注册中心,并从服务管理模块得到要监控的信息;服务发现模块用于实现远程的服务发现;处理器模块用于实现OSGi容器内的模块向OSGi容器外的服务的访问。
Description
技术领域
本发明涉及网络传输领域,特别涉及一种基于OSGi的异构服务集成***及方法。
背景技术
计算机作为人类历史上最伟大的发明之一,代替人工处理了大量的重复性的工作,特别是在企业应用当中,扮演着决策、生产、销售、售后服务等过程中的诸多角色,降低了成本,大大提高了生产效率。为此,各个企业机构进行了大量的投资,针对各自的关注领域开发了各种类型的信息***,以帮助企业进行内部或外部业务的处理和管理。正是由于关注领域的不同,导致各类***之间没有统一的接口标准和规范,即使是在同一个企业内部,各职能部门之间也会各自为政,众多关键的信息被封闭在相互独立的***中,形成一个个所谓的“信息孤岛”。使得企业的工作效率降低,运营成本提高。
随着企业规模的扩大,以及市场规则作用下企业的兼并破产行为,原有的信息***也不可避免地会发生变化,如何适应这种变化,如何将众多的“信息孤岛”联系起来,以便让不同的***之间交互信息,成为亟待解决的问题。用于解决这一问题的异构服务集成技术开始广受关注。
传统的异构服务集成技术往往使用具体的组件化和分布式技术,如CORBA(Common Object Request Broker Architecture,公用对象请求代理体系结构)、COM/DCOM、RMI等,这样做虽然在一定程度上解决了集成问题,但一方面会使得***结构变复杂,对原有***侵入性较大,另一方面,不同的技术体系之间相对独立,虽然有这样那样的桥接技术,但这些技术自身仅是针对某些特定的技术体系,这样依然产生了更高层面上的针对不同技术体系的应用集成问题。
鉴于传统异构服务集成技术所具有的上述缺陷,本领域技术人员提出了SOA(Service Oriented Architecture,面向服务的体系结构),这类***将异构平台上应用程序的不同功能部件(也被称为服务)之间定义良好的接口和规范按松耦合方式整合在一起。基于SOA的相关思想,本领域技术人员又为Java进一步提出了动态、模块化的体系模型OSGi(OpenServices Gateway initiative,开放服务网关协议)。
OSGi中的运行于OSGi内核上的模块被称作bundle,bundle是由普通的JAR文件加上额外的元信息描述构成的。bundle模块之间通过元信息描述显式地声明包的导入、导出以实现代码和资源的共享,而OSGi内核自动地处理bundle模块之间的依赖解析。同时,OSGi也提供了一个面向服务的编程模型,在OSGi中服务就是普通的Java对象,bundle模块可以通过集中的服务中心来注册其所提供的服务,而其他bundle模块可以通过注册中心查询、监听、获取服务来实现bundle模块之间松耦合的协作,服务的契约用Java接口和一系列服务属性描述。
近年来,随着越来越多的大型应用采用OSGi技术,特别是Eclipse3.0版本采用OSGi来重构其体系结构以后,OSGi在企业计算领域也得到了越来越广泛的应用,如IBM的WebSphere和Oracle/BEA的WebLogic等都使用了OSGi技术。虽然在OSGi中也定义了跨虚拟机的实现方式,但在具体实现上同样采用某种具体的互操作机制,破坏了基于不同的远程访问方式的OSGi容器之间进行互操作的可能。
发明内容
本发明的目的是克服基于现有技术的异构服务集成***采用某一种具体的互操作机制所带来的局限性,从而提供一种适用范围广的异构服务集成***。
为了实现上述目的,本发明提供了一种基于OSGi的异构服务集成***,包括Java虚拟机、OSGi容器,还包括在所述OSGi容器上运行的服务管理模块、处理器管理模块、监视模块、服务发现模块以及处理器模块;其中,
所述的服务管理模块负责监听远程服务注册和使用请求,对不同类型的服务进行管理,针对不同的服务配置类型,通知所述的处理器管理模块进行发布和调用;所述的处理器管理模块用于对所述的处理器模块进行管理,并向远程端点发布和调用服务,还根据所述服务管理模块所传递的信息调用相应的处理器模块,维护当前发布的服务以及使用的远程服务的信息;所述的监视模块负责监视所述OSGi容器中的本地注册中心,并从所述服务管理模块得到要监控的信息;所述的服务发现模块用于实现远程的服务发现;所述的处理器模块用于实现所述OSGi容器内的模块向OSGi容器外的服务的访问。
上述技术方案中,所述的处理器模块包括web服务处理器模块、CORBA处理器模块以及SCA处理器模块。
上述技术方案中,所述的web服务处理器模块采用Axis作为底层互操作组件。
上述技术方案中,所述的CORBA处理器模块采用JacORB作为底层互操作组件。
上述技术方案中,SCA处理器模块采用Apache Tuscany作为底层互操作组件。
上述技术方案中,所述服务发现模块包含用于发现某一种远程服务的服务发现方式;所述服务发现方式的种类与***所能集成的异构服务的种类有关。
上述技术方案中,所述服务发现方式的种类包括:UDDI、CORBA的名字服务机制、SLP的服务发现机制以及本地配置文件。
上述技术方案中,所述的处理器管理模块将所述处理器模块底层的远程互操作功能抽象出来,用统一的接口实现所述的向远程端点发布和调用服务。
上述技术方案中,所述的要监控的信息包括:使用的远程服务、对外暴露的服务、包的依赖关系以及本地的线程数和堆栈使用情况。
本发明还提供了一种用于所述的基于OSGi的异构服务集成***的方法,包括:
步骤1)、允许远程访问的服务在其所在节点的本地注册中心上注册;
步骤2)、根据配置的类型将所述允许远程访问的服务发布到远程;
步骤3)、远程节点上的服务使用者向该节点上的服务注册中心查询所要访问的服务;
步骤4)、当所要访问的服务在远程节点本地不存在时,所述远程节点通过服务发现模块进行远程服务发现,并根据配置的类型启动相应的处理器模块,完成服务调用。
上述技术方案中,所述的步骤2)包括:
步骤2-1)、服务所在节点上的服务管理模块监控到注册事件后,获取该服务的描述信息,通知服务发现模块创建服务描述实例;
步骤2-2)、所述的服务发现模块将服务注册到远程服务注册中心;
步骤2-3)、所述的处理器管理模块根据配置的类型创建相应的处理器模块;
步骤2-4)、处理器模块根据服务描述实例发布该服务。
上述技术方案中,所述的步骤4)包括:
步骤4-1)、远程节点上的服务管理模块通过该节点上的服务发现模块查询哪个节点上存在所需要的服务;
步骤4-2)、远程节点上的服务发现模块根据查询结果生成服务描述实例;
步骤4-3)、远程节点上的处理器管理模块根据配置的类型创建对应的处理器模块;
步骤4-4)、处理器模块使用服务描述实例完成服务调用。
本发明的优点在于:
本发明具有广泛的适用性和灵活性。
附图说明
图1为本发明的基于OSGi的异构服务集成***整体结构图;
图2为本发明的基于OSGi的异构服务集成***典型应用场景图;
图3为本发明的基于OSGi的异构服务集成方法服务发布过程示意图;
图4为本发明的基于OSGi的异构服务集成方法服务查找和调用过程示意图。
具体实施方式
下面结合附图和具体实施方式对本发明加以说明。
在图1中给出了本发明的基于OSGi的异构服务集成***的整体结构,从图中可以看出,该***包括有JVM(Java Virtual Machine,Java虚拟机)、OSGi容器、服务管理模块、处理器管理模块、监视模块、服务发现模块以及处理器模块。下面对上述各个模块的功能分别予以说明。
所述的JVM为编程语言Java的运行环境,所述的OSGi容器在本质上是一个为Java提供的动态、模块化的***,能够对运行于其中的模块(即Bundle)进行管理。上述JVM和OSGi容器的实现都为本领域的公知常识,因此不在此做详细说明。所述的服务管理模块、处理器管理模块、监视模块、服务发现模块以及处理器模块都在OSGi容器的基础上予以运行。
所述的服务管理模块负责监听远程服务注册和使用请求,在本***加载时,该模块需要向OSGi容器中的本地注册中心注册监听服务,所注册的监听服务针对远程服务注册和使用请求有不同的实现方式,下面分别加以说明。
对于远程服务的注册而言,在执行这一注册过程时,OSGi内核会产生一个服务注册的事件,而服务管理模块使用OSGi内核所提供的ServiceListener类接收到OSGi内核发出的服务注册事件,并通过OSGi内核提供的上下文获取到注册服务的属性信息。该属性信息以字符串的形式表示,并在服务注册的时候被写入到本地注册中心。例如,属性信息中包含“Remote”字段,表示具有该属性的服务希望发布给远程使用;属性信息中包含“Type”字段,则指明了具有该属性的服务的发布类型信息,如“CORBA”、“Web”、“SCA”等都表明了服务发布时采用的方式,如采用“#”则表明要使用所支持的所有类型进行发布;如属性信息中包含“Method”字段表明需要发布的服务对象内的方法名,默认为“*”,即全部方法。在完成上述的远程服务注册后,服务管理模块就会通知处理器管理模块进行服务发布。
对于服务使用请求,服务管理模块使用OSGi内核提供的ListenerHOOK类。该类包含三个回调函数分别用于处理以下三种情况:(1)当所需的服务到来时该怎么处理;(2)当所需的服务被注销时该怎么处理;(3)当所需的服务发生改变(如服务属性的改变)时怎么处理。同时,ListenerHOOK类还包含一个ListenerInfo类型的私有类,当有服务使用请求时,ListenerInfo类型会实例化为具体的请求信息(包括服务接口名,调用的函数名,使用的通信方式等),服务管理模块得到这些请求信息,通过一个字符串来描述所要使用的服务,通知服务发现模块进行服务发现。
另外,在服务管理模块内包含一个链表的数据结构,记录了当前已经发布的和正在调用的远程服务的信息,进而可以对不同类型的服务进行管理。服务管理模块以及下文中所提到的模块都可由OSGi中的Bundle模块实现。
处理器管理模块用于对不同的处理器模块进行管理,包括不同处理器模块的创建、初始化、注销等。该模块内定义了一个名为Handler的接口类,该接口中定义了一个Endpointdescription类型(端点描述实例,包含了诸如服务ID、框架UUID、接口名、服务发布方式等服务描述信息)的私有属性以及Export()和Import()两个抽象的方法,由本模块派生出来的处理器模块都需要实现上述接口类及其属性和方法,这样就将处理器模块的底层的远程互操作功能抽象出来,使得处理器模块能够用统一的接口向远程端点发布服务,及从远程端点调用服务。在本实施例中,处理器管理模块可采用软件工程中的工厂模式实现,这一模式的应用有利于提高处理器管理模块的扩展性。
处理器管理模块与服务管理模块之间通过OSGi规范提供的RSAListener类所提供的方法进行通信,使得处理器管理模块可以得到从服务管理模块传递来的配置类型和服务描述信息,从而调用对应的处理器模块进行处理。处理器管理模块还能维护当前发布的服务和使用的远程服务,以及服务的创建、删除、调用的失败等信息,并通知给服务管理模块,这样服务管理模块就可以了解当前状态,并对前述的链表进行维护。
监视模块负责使用前述的监听服务监视OSGi容器内的本地注册中心,同时还会使用OSGi规范提供的EndpointListener类(该类包含一个服务引用类型的属性和EndpointAdded()、EndpointRemoved()、Export()、Import()、getEndpoint()等方法,分别对服务发布和服务调用过程中端点描述实例的增减等进行控制),所述由服务管理模块处得到远程服务的相关信息。这些信息主要包括:使用的远程服务、对外暴露的服务、包的依赖关系等;另外还会基于JAVA语言提供的Thread.currentThread()、getThreadGroup()方法得到本地的线程数,使用java.lang.Runtime.totalMemory()和java.lang.Runtime.freeMemory()等方法并使用自定义的算法获得本地堆栈使用情况。上述的信息和运行情况都会以可视化的形式展现;此外,该模块还要根据监控信息对***的运行状态做出评估,进而能够基于JAVA语言提供的java.lang.Runtime.gc()函数以及OSGi内核提供的针对Bundle生命周期进行管理的一系列控制台命令等相关机制主动地改变***运行行为,使得在尽可能少的人为干预下,***能够长时间运行在良好状态。
服务发现模块负责远程的服务发现。跟处理器管理模块类似,该模块包括有一个Discovery的接口类,该类包含一个ServiceReference类型(服务引用,可以理解成一个具体的服务对象的对象名)的私有属性,用来记录由服务管理模块传递来的服务描述信息,还包含Export()、Search()以及GenerateEndpoint()三个抽象方法,分别对应于服务发布、服务查询过程以及产生EndpointDescription实例的方法。在本实施例中,在该模块内创建了UDDI、CORBA的名字服务机制、SLP的服务发现机制以及本地配置文件等多种服务发现方式。每种方式都实现了上述的Discovery接口,同时,***运行前可以配置需要加载的服务发现类型。服务发现模块使用EndpointListener类跟服务管理模块进行交互。服务发现模块对于服务发布过程与服务调用过程有不同的处理,下面分别予以说明。
对于服务发布过程,当所述的服务管理模块监听到服务发布事件后,服务发现模块就会接收到服务管理模块传递来ServiceReference类型的参数,然后调用GenerateEndpoint()方法产生EndpointDescription实例,并传递给服务管理模块。根据前述的配置的加载的服务发现类型,写入本地文件或者向远程的服务注册中心注册。
对于服务调用过程,当所述的服务管理模块监听到远程服务调用请求后,如果请求的服务属性中包含“configfile”字段,服务发现模块从本地的默认位置读取配置文件的信息,配置文件通常是一个*.xml文件,里面用标准的xml语法描述了远程服务的信息,包括地址、暴露的类名、方法名等等,如果不含上述“configfile”字段,则启动配置的服务发现方式到远程注册中心查找,最后调用GenerateEndpoint()方法产生EndpointDescription实例,并传递给服务管理模块。
处理器模块基于现有的远程互操作实现机制(如CORBA、WebService等等)完成OSGi容器内的模块对OSGi容器外的服务的访问过程。处理器模块根据服务的类型有多种类型,在本实施例中包括有web服务处理器模块、CORBA处理器模块以及SCA处理器模决。处理器模块的类型也可根据需要灵活地增加或减少。
所有类型的处理器模块都由处理器管理模块产生,由于每种处理器都实现了前面所述的Handler接口类,因此,都会拥有一些共同的属性和方法。使用这些共同的方法可以分别对不同配置类型的服务发布和服务调用进行处理。每种处理器模块中都建立了相应的运行时组件,如:CORBA处理器模块使用JacORB(一个开放源码的CORBA产品,设计支持Java语言映射,满足CORBA2.3标准并提供广泛的平台支持)作为CORBA配置类型服务的底层互操作组件。类似的,Web服务处理器模块和SCA处理器模块分别使用Axis(全称Apache eXtensible Interaction System,是apache组织下的一个开源项目,用来做webservice开发的)和ApacheTuscany(一个开源项目,提供一个SOA基础设施和SCA运行时环境,Tuscany项目本身并不提供SOA开发和管理IDE插件)作为相应的配置类型服务的底层互操作组件。
在某种具体的处理器创建阶段,前述的EndpointDescription类型的私有属性会使用服务管理模块从服务发现模块得来的EndpointDescription实例初始化,同时,该处理器所采用的运行时组件,会针对其特有的编程模型进行一些初始化工作,如类库的加载、通信协议的建立。在CORBA中,对应于初始化ORB、初始化POA等,对于WebService,对应于初始化Axis引擎等,对于SCA,对应于初始化Tuscany,实例化SCADomain等;在运行阶段,某种具体的处理器的export()和import()方法会被调用,进行服务的发布和调用;在注销阶段,各处理器的析构函数会被调用,完成资源释放等工作。需要说明的是上述初始化过程、运行期以及注销时的操作,针对某种具体的处理器都需要遵循各自的编程模型,而这些编程模型都是公知的,因此没有赘述。
以上是对本发明的基于OSGi的异构服务集成***中各个功能模块的说明。下面结合这些模块,对本发明如何进行远程服务的注册,远程服务的查找和使用分别予以说明。
为了便于理解,如图2,给出了一个使用本发明的典型应用场景,该场景中共有A、B、C、D、E五个节点,节点A提供CORBA服务,节点B提供SCA服务,节点C提供Web服务,节点D提供运行于OSGi容器的OSGi服务,而节点E则是服务的使用者,该使用者运行于OSGi容器内。
结合图3对远程服务的注册过程加以说明。节点D内的OSGi本地服务需要发布给远程的节点A、B、C、E。在将本地服务发布到远程节点之前,首先需要做基本的注册操作。这一注册操作包括由节点D上的监视模块向位于本节点的OSGi容器内的本地注册中心注册监听服务,并由该监视模块监视OSGi容器的运行情况;然后,由服务管理模块向本地注册中心注册监听服务(服务管理模块所注册的监听服务与监视模块所注册的监听服务的内容不同),监视服务注册事件。上述注册操作不仅仅是远程服务的注册过程所要完成的,在远程服务的查找与使用之前,同样要完成类似的注册操作。
在完成上述注册操作后,服务提供者(即节点D内的OSGi本地服务)向所述的本地注册中心注册,由于该服务要向远程节点A、B、C、E发布,因此该服务具有远程属性。接着,服务管理模块从本地注册中心获取所要发布服务的远程属性,将所得到的所述远程属性发送到服务发现模块,由服务发现模块根据服务的远程属性信息创建端点描述实例,所述端点描述实例中包括服务的属性,服务ID,框架ID等服务描述信息。所述服务发现模块根据端点描述实例中的信息将所要发布的服务注册到诸如CORBA的名字服务器或者UDDI的远程注册中心等。最后,所述处理器管理模块还要根据所述远程属性以及服务提供者向本地注册中心注册服务时所标识的配置类型信息(如CORBA、Web、SCA中的一种或几种的组合),创建对应的处理器模块,由所述的处理器模块根据服务描述实例发布服务。
以上是对远程服务注册过程的说明,下面结合图4对远程服务的查找和使用过程加以说明。
在完成基本的注册操作后,节点E本地的OSGi Bundle(即服务使用者)调用远程服务时,首先在节点E上的本地注册中心查找,该本地注册中心发现需要的服务带有远程属性,会通知服务管理模块,启动节点E上的服务发现模块。该服务发现模块使用对应的服务发现方式到远程中心查找,根据查找的结果生成服务描述实例。在得到服务描述实例后,服务管理模块通知处理器管理模块根据服务描述实例中的服务描述信息和配置类型信息(如CORBA、Web、SCA中的一种或几种的组合)派生出对应的处理器模块,为远程的服务创建本地代理并将该代理注册为本地服务,这样服务消费者就可以像使用本地服务一样调用远程服务。
以上是对本发明的异构服务集成***以及相关集成过程的说明。由于本发明将不同类型的处理器模块的共有的底层的远程互操作功能抽象出来形成独立的处理器管理模块,使得不同的处理器模块都能用统一的接口向远程端点发布服务,及从远程端点调用服务,从而克服了现有的异构服务***由于基于特定互操作机制所带来的适用范围较窄的缺陷,具有广泛的适用性和灵活性。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (12)
1.一种基于OSGi的异构服务集成***,包括Java虚拟机、OSGi容器,其特征在于,还包括在所述OSGi容器上运行的服务管理模块、处理器管理模块、监视模块、服务发现模块以及处理器模块;其中,
所述的服务管理模块负责监听远程服务注册和使用请求,对不同类型的服务进行管理,针对不同的服务配置类型,通知所述的处理器管理模块进行发布和调用;所述的处理器管理模块用于对所述的处理器模块进行管理,并向远程端点发布和调用服务,还根据所述服务管理模块所传递的信息调用相应的处理器模块,维护当前发布的服务以及使用的远程服务的信息;所述的监视模块负责监视所述OSGi容器中的本地注册中心,并从所述服务管理模块得到要监控的信息;所述的服务发现模块用于实现远程的服务发现;所述的处理器模块用于实现所述OSGi容器内的模块向OSGi容器外的服务的访问。
2.根据权利要求1所述的基于OSGi的异构服务集成***,其特征在于,所述的处理器模块包括web服务处理器模块、CORBA处理器模块以及SCA处理器模块。
3.根据权利要求2所述的基于OSGi的异构服务集成***,其特征在于,所述的web服务处理器模块采用Axis作为底层互操作组件。
4.根据权利要求2所述的基于OSGi的异构服务集成***,其特征在于,所述的CORBA处理器模块采用JacORB作为底层互操作组件。
5.根据权利要求2所述的基于OSGi的异构服务集成***,其特征在于,SCA处理器模块采用Apache Tuscany作为底层互操作组件。
6.根据权利要求2所述的基于OSGi的异构服务集成***,其特征在于,所述服务发现模块包含用于发现某一种远程服务的服务发现方式;所述服务发现方式的种类与***所能集成的异构服务的种类有关。
7.根据权利要求6所述的基于OSGi的异构服务集成***,其特征在于,所述服务发现方式的种类包括:UDDI、CORBA的名字服务机制、SLP的服务发现机制以及本地配置文件。
8.根据权利要求1或2所述的基于OSGi的异构服务集成***,其特征在于,所述的处理器管理模块将所述处理器模块底层的远程互操作功能抽象出来,用统一的接口实现所述的向远程端点发布和调用服务。
9.根据权利要求1或2所述的基于OSGi的异构服务集成***,其特征在于,所述的要监控的信息包括:使用的远程服务、对外暴露的服务、包的依赖关系以及本地的线程数和堆栈使用情况。
10.一种用于权利要求1-9之一所述的基于OSGi的异构服务集成***的方法,包括:
步骤1)、允许远程访问的服务在其所在节点的本地注册中心上注册;
步骤2)、根据配置的类型将所述允许远程访问的服务发布到远程;
步骤3)、远程节点上的服务使用者向该节点上的服务注册中心查询所要访问的服务;
步骤4)、当所要访问的服务在远程节点本地不存在时,所述远程节点通过服务发现模块进行远程服务发现,并根据配置的类型启动相应的处理器模块,完成服务调用。
11.根据权利要求10所述的方法,其特征在于,所述的步骤2)包括:
步骤2-1)、服务所在节点上的服务管理模块监控到注册事件后,获取该服务的描述信息,通知服务发现模块创建服务描述实例;
步骤2-2)、所述的服务发现模块将服务注册到远程服务注册中心;
步骤2-3)、所述的处理器管理模块根据配置的类型创建相应的处理器模块;
步骤2-4)、处理器模块根据服务描述实例发布该服务。
12.根据权利要求10所述的方法,其特征在于,所述的步骤4)包括:
步骤4-1)、远程节点上的服务管理模块通过该节点上的服务发现模块查询哪个节点上存在所需要的服务;
步骤4-2)、远程节点上的服务发现模块根据查询结果生成服务描述实例;
步骤4-3)、远程节点上的处理器管理模块根据配置的类型创建对应的处理器模块;
步骤4-4)、处理器模块使用服务描述实例完成服务调用。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010251926.XA CN102377796B (zh) | 2010-08-05 | 2010-08-05 | 基于OSGi的异构服务集成***及方法 |
US12/967,614 US20120036252A1 (en) | 2010-08-05 | 2010-12-14 | Osgi-based heterogeneous service integrating system and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010251926.XA CN102377796B (zh) | 2010-08-05 | 2010-08-05 | 基于OSGi的异构服务集成***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102377796A true CN102377796A (zh) | 2012-03-14 |
CN102377796B CN102377796B (zh) | 2015-06-10 |
Family
ID=45556927
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010251926.XA Expired - Fee Related CN102377796B (zh) | 2010-08-05 | 2010-08-05 | 基于OSGi的异构服务集成***及方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20120036252A1 (zh) |
CN (1) | CN102377796B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103051881A (zh) * | 2012-12-31 | 2013-04-17 | 深圳市捷顺科技实业股份有限公司 | 一种监控方法和*** |
CN103309674A (zh) * | 2013-06-25 | 2013-09-18 | 深圳中兴网信科技有限公司 | 一种软件架构*** |
CN103391294A (zh) * | 2013-07-24 | 2013-11-13 | 佳都新太科技股份有限公司 | 一种基于服务描述的远程方法调用 |
CN103761235A (zh) * | 2013-11-18 | 2014-04-30 | 芜湖大学科技园发展有限公司 | 通用电力数据平台的分布化方法和应用 |
CN104081381A (zh) * | 2012-03-29 | 2014-10-01 | 惠普发展公司,有限责任合伙企业 | 概念服务实施平台 |
CN105721562A (zh) * | 2016-01-28 | 2016-06-29 | 武汉大学 | 一种基于代理的异构服务调用方法与协同调用*** |
CN106331065A (zh) * | 2016-08-15 | 2017-01-11 | 众安在线财产保险股份有限公司 | 一种用于具有服务容器的主机***的代理应用以及*** |
CN106790084A (zh) * | 2016-12-22 | 2017-05-31 | 中国科学院电子学研究所苏州研究院 | 一种基于ice中间件的异构资源集成框架及其集成方法 |
CN111596898A (zh) * | 2020-05-08 | 2020-08-28 | 湖南智领通信科技有限公司 | 一种基于corba组件的sca组件及服务器 |
CN112511417A (zh) * | 2020-11-25 | 2021-03-16 | 深圳市友华通信技术有限公司 | 跨平台智能网关*** |
CN112764825A (zh) * | 2020-12-30 | 2021-05-07 | 望海康信(北京)科技股份公司 | 服务集成***及相应设备和存储介质 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100299362A1 (en) * | 2009-05-24 | 2010-11-25 | Roger Frederick Osmond | Method for controlling access to data containers in a computer system |
US9015198B2 (en) * | 2009-05-26 | 2015-04-21 | Pi-Coral, Inc. | Method and apparatus for large scale data storage |
US8909781B2 (en) * | 2010-05-24 | 2014-12-09 | Pi-Coral, Inc. | Virtual access to network services |
JP5318830B2 (ja) * | 2010-08-25 | 2013-10-16 | 株式会社日立ソリューションズ | WebAPIサーバプログラム、WebAPI公開方法 |
CN106028267B (zh) * | 2011-01-07 | 2019-12-06 | 索尼公司 | 无线网络管理***和方法 |
US8739187B2 (en) | 2011-09-09 | 2014-05-27 | International Business Machines Corporation | Legacy application integration within a bundle framework |
US8738755B2 (en) * | 2011-09-09 | 2014-05-27 | International Business Machines Corporation | Providing external access to service versions via a bundle framework |
GB2503696A (en) * | 2012-07-04 | 2014-01-08 | Ibm | Finding services in a service registry system of a service-oriented architecture |
US9235437B2 (en) | 2012-12-17 | 2016-01-12 | Software Ag | Method and integration component for integrating OSGi environments into a Service-oriented Architecture |
US9398109B2 (en) | 2012-12-21 | 2016-07-19 | Software Ag | System, messaging broker and method for managing communication between open services gateway initiative (OSGI) environments |
US9398100B2 (en) | 2012-12-29 | 2016-07-19 | Ricoh Company, Ltd. | Managing access of network services |
US9253263B2 (en) * | 2012-12-29 | 2016-02-02 | Ricoh Company, Ltd. | Managing scope of network services |
CN103927163B (zh) * | 2014-03-06 | 2017-05-17 | 中国人民解放军装甲兵工程学院 | 插件框架处理装置及插件*** |
US9705995B2 (en) * | 2014-03-18 | 2017-07-11 | Axis Ab | Capability monitoring in a service oriented architecture |
US9891893B2 (en) * | 2014-05-21 | 2018-02-13 | N.Io Innovation, Llc | System and method for a development environment for building services for a platform instance |
CN104219175B (zh) * | 2014-08-20 | 2018-09-28 | 深圳太极云软技术股份有限公司 | 数据交换与服务调用***及方法 |
US10469600B2 (en) * | 2017-11-14 | 2019-11-05 | Dell Products, L.P. | Local Proxy for service discovery |
CN109151052B (zh) * | 2018-09-19 | 2022-04-19 | 广州城市信息研究所有限公司 | 地图服务注册方法、地图服务数据获取方法和装置 |
CN110708367A (zh) * | 2019-09-24 | 2020-01-17 | 中信百信银行股份有限公司 | 应用调用方法、应用发布方法及应用发布*** |
CN110928606B (zh) * | 2019-11-19 | 2024-04-12 | 浪潮软件股份有限公司 | 一种基于微服务的可视化定时服务注册的实现方法及*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040194059A1 (en) * | 2003-03-27 | 2004-09-30 | International Business Machines Corporation | Method to deploy software using an open service gateway initiative (OSGi) framework |
CN101218797A (zh) * | 2005-07-04 | 2008-07-09 | Sk电信股份有限公司 | 用于家庭网络服务的住宅网关*** |
US20080201723A1 (en) * | 2005-10-11 | 2008-08-21 | France Telecom | Method of Automatically Managing Associations Between Services in a Distributed Environment |
-
2010
- 2010-08-05 CN CN201010251926.XA patent/CN102377796B/zh not_active Expired - Fee Related
- 2010-12-14 US US12/967,614 patent/US20120036252A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040194059A1 (en) * | 2003-03-27 | 2004-09-30 | International Business Machines Corporation | Method to deploy software using an open service gateway initiative (OSGi) framework |
CN101218797A (zh) * | 2005-07-04 | 2008-07-09 | Sk电信股份有限公司 | 用于家庭网络服务的住宅网关*** |
US20080201723A1 (en) * | 2005-10-11 | 2008-08-21 | France Telecom | Method of Automatically Managing Associations Between Services in a Distributed Environment |
Non-Patent Citations (1)
Title |
---|
"基于OSGI的Java中间件分析和设计", 《科技创业月刊》 * |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9589037B2 (en) | 2012-03-29 | 2017-03-07 | Hewlett Packard Enterprise Development Lp | Conceptual services implementation platform |
CN104081381A (zh) * | 2012-03-29 | 2014-10-01 | 惠普发展公司,有限责任合伙企业 | 概念服务实施平台 |
CN104081381B (zh) * | 2012-03-29 | 2017-08-04 | 企业服务发展公司有限责任合伙企业 | 用于实施概念服务的方法和装置 |
CN103051881A (zh) * | 2012-12-31 | 2013-04-17 | 深圳市捷顺科技实业股份有限公司 | 一种监控方法和*** |
CN103309674B (zh) * | 2013-06-25 | 2016-08-10 | 深圳中兴网信科技有限公司 | 一种软件架构*** |
CN103309674A (zh) * | 2013-06-25 | 2013-09-18 | 深圳中兴网信科技有限公司 | 一种软件架构*** |
CN103391294A (zh) * | 2013-07-24 | 2013-11-13 | 佳都新太科技股份有限公司 | 一种基于服务描述的远程方法调用 |
CN103761235A (zh) * | 2013-11-18 | 2014-04-30 | 芜湖大学科技园发展有限公司 | 通用电力数据平台的分布化方法和应用 |
CN105721562B (zh) * | 2016-01-28 | 2019-01-29 | 武汉大学 | 一种基于代理的异构服务调用方法与协同调用*** |
CN105721562A (zh) * | 2016-01-28 | 2016-06-29 | 武汉大学 | 一种基于代理的异构服务调用方法与协同调用*** |
CN106331065B (zh) * | 2016-08-15 | 2020-12-15 | 众安在线财产保险股份有限公司 | 一种用于具有服务容器的主机***的代理应用以及*** |
CN106331065A (zh) * | 2016-08-15 | 2017-01-11 | 众安在线财产保险股份有限公司 | 一种用于具有服务容器的主机***的代理应用以及*** |
CN106790084A (zh) * | 2016-12-22 | 2017-05-31 | 中国科学院电子学研究所苏州研究院 | 一种基于ice中间件的异构资源集成框架及其集成方法 |
CN111596898B (zh) * | 2020-05-08 | 2024-01-30 | 湖南智领通信科技有限公司 | 一种基于corba组件的sca组件及服务器 |
CN111596898A (zh) * | 2020-05-08 | 2020-08-28 | 湖南智领通信科技有限公司 | 一种基于corba组件的sca组件及服务器 |
CN112511417A (zh) * | 2020-11-25 | 2021-03-16 | 深圳市友华通信技术有限公司 | 跨平台智能网关*** |
CN112511417B (zh) * | 2020-11-25 | 2023-04-18 | 深圳市友华通信技术有限公司 | 跨平台智能网关*** |
CN112764825A (zh) * | 2020-12-30 | 2021-05-07 | 望海康信(北京)科技股份公司 | 服务集成***及相应设备和存储介质 |
CN112764825B (zh) * | 2020-12-30 | 2023-12-29 | 望海康信(北京)科技股份公司 | 服务集成***及相应设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20120036252A1 (en) | 2012-02-09 |
CN102377796B (zh) | 2015-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102377796A (zh) | 基于OSGi的异构服务集成***及方法 | |
US8886841B2 (en) | Distributed computing system architecture | |
Corredor et al. | Knowledge-aware and service-oriented middleware for deploying pervasive services | |
US20080140857A1 (en) | Service-oriented architecture and methods for direct invocation of services utilizing a service requestor invocation framework | |
US20080140759A1 (en) | Dynamic service-oriented architecture system configuration and proxy object generation server architecture and methods | |
US20060029054A1 (en) | System and method for modeling and dynamically deploying services into a distributed networking architecture | |
CN102053860B (zh) | 基于CORBA的OSGi分布式扩展***及方法 | |
JP2005196767A (ja) | ウェブ・サービス呼び出しをサポートするスケジューラ | |
Dedecker et al. | Ambient-oriented programming | |
KR20140101607A (ko) | 데이터 배포 서비스의 데이터베이스 관리 시스템 및 방법 | |
JP2015512091A (ja) | クラウドコンピューティング環境におけるプロセスの調整 | |
KR100880536B1 (ko) | 이기종 컴퓨팅 및 서비스 통합을 위한 오픈 프레임워크시스템 | |
CN114826869B (zh) | 设备管理方法和设备管理*** | |
CN116389552A (zh) | 一种基于发布订阅模型的异构数据传输*** | |
US20040226029A1 (en) | Interface for distributed objects and development platform therefor | |
US20080155557A1 (en) | Unified metamodel for web services description | |
Chen et al. | Dynamic agents | |
Rimassa | Runtime support for distributed multi-agent systems | |
Mohamed | Generic monitoring and reconfiguration for service-based applications in the cloud | |
CN101521592B (zh) | 一种建立打印机snmp代理的方法及装置 | |
Oriol et al. | Disconnected service architecture for unanticipated run-time evolution of code | |
Mitrovic et al. | Siebog: An enterprise-scale multiagent middleware | |
Kim et al. | Client/server framework for providing context-aware services to network based robots | |
Romero | Context as a Resource: A Service-Oriented Approach for Context-Awareness | |
Bhakti et al. | Design of an autonomic services oriented architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150610 Termination date: 20190805 |
|
CF01 | Termination of patent right due to non-payment of annual fee |