首页> 中国专利> 一种具有主题分发功能的资源管理平台及其方法

一种具有主题分发功能的资源管理平台及其方法

摘要

本发明揭示了一种具有主题分发功能的资源管理平台,包括:平台内核,为相关的插件及其插件的定义提供注册并使之关联;主题分发器,包括分发器主插件和分发器工具插件,分发器主插件对外提供主题服务,分发器工具插件实现记录主题分发日志的功能,主题分发器还包括调用器和主题处理器,调用器执行主题的分发,主题处理器创建主题队列并控制主题的分发。本发明还揭示了一种资源管理平台的主题分发方法。本发明可以扩展各种相关插件,实现各种插件功能的共享和调用,本发明可以创建主题队列,并将主题队列的主题通过调用器分发给对应的监听器(主题订阅者)。另外,本发明还具有主题分发日志的记录功能,以便管理者及时查看分发的记录。

著录项

  • 公开/公告号CN101064619A

    专利类型发明专利

  • 公开/公告日2007-10-31

    原文格式PDF

  • 申请/专利权人 上海众恒信息产业有限公司;

    申请/专利号CN200710041276.4

  • 发明设计人 秦克明;孙圭宁;高念高;

    申请日2007-05-25

  • 分类号H04L12/16(20060101);H04L29/08(20060101);

  • 代理机构31232 上海明成云知识产权代理有限公司;

  • 代理人周成

  • 地址 200040 上海市延安西路376弄22号6层

  • 入库时间 2023-12-17 19:20:12

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2010-11-17

    授权

    授权

  • 2009-01-14

    实质审查的生效

    实质审查的生效

  • 2007-10-31

    公开

    公开

说明书

技术领域

本发明涉及资源管理技术,更具体地说,涉及一种具有主题分发功能的资源管理平台及其方法。

背景技术

随着网络技术的不断发展,资源共享逐渐成为许多企业级应用迫切的需求。虽然目前一些应用系统实现了部分共享的功能,但很多情况下,这种共享只限于存取有限网络内的资源或为有限网络内提供资源,不能满足更普遍、更广泛共享的需求。

通常的应用系统无法做到这种普遍、广泛共享的原因主要有两点:一是应用系统用户出于安全保密性的考虑,不愿将所有资源对外开放;二是即使应用系统用户愿意甚至需要将一部分资源对外开放,但却没有一种统一的途径使其资源安全、可靠地开放。

资源管理平台(Universal Resource Management Platform)便是针对上述问题的,资源管理平台相当于用户与资源的中介,它是对资源进行统一管理的一个“资源服务提供者”(Resource Service Provider),它的重要目标之一是为各种“资源服务客户”(Resource Service Client)提供资源订阅/接收/获取(Subscribe/Receive/Consume)服务。

由上述可以看出,需要提供一种实现资源管理平台订阅/接收/获取等服务的方法,也就是说提供一种具有主题分发功能的资源管理平台及其方法。

发明内容

本发明的目的是提供一种具有主题分发功能的资源管理平台及其方法,该资源管理平台可以创建主题队列,并将主题队列的主题分发给对应的监听器(主题订阅者)。

根据本发明的一方面,提供一种具有主题分发功能的资源管理平台,包括:

平台内核,为所述资源管理平台的插件及其插件的定义提供注册并使之关联;

主题分发器,包括:

分发器主插件,对外提供主题服务,并负责维护调用器;

分发器工具插件,向平台内核注册主题记录器,主题记录器完成主题分发日志的记录;

调用器,调用器是所述分发器主插件定义的扩展点,扩展点是一个被命名的接口,所述调用器执行主题的分发,所述调用器的功能由在平台内核注册的调用器插件实现;

主题处理器,创建主题队列,并在主题队列中选出相应的主题通过所述调用器分发给监听器,所述监听器是主题的订阅者。

所述分发器主插件为所述监听器提供注册并管理监听器,所述每个监听器提供一个回调,所述每个回调包括一种调用协议。

所述调用器执行主题的分发是通过调用所述回调进行的,每个调用器只能识别和调用与其调用协议相同的回调。

所述调用器插件将其功能服务定义为一个扩展者,并向平台内核注册一个扩展,所述扩展是一个命名连接,所述分发器主插件将其定义的扩展点向平台内核注册,所述平台内核利用所述扩展使所述扩展者与所述扩展点连接,从而使所述调用器实现所述调用器插件的功能和服务。

所述主题处理器创建的主题队列中的每一个主题都有一个题目,所述每个监听器都要说明其需要的主题题目,只有与监听器相同题目的主题才会被所述主题处理器分发到该监听器。

根据本发明的第二方面,提供一种资源管理平台的主题分发方法,包括:

建立平台内核,使平台内核为所述资源管理平台的插件及其插件的定义提供注册并使之关联;

建立主题分发器,主题分发器包括分发器主插件、分发器工具插件、调用器以及主题处理器;

使分发器主插件,对外提供主题服务,并负责维护调用器;

使分发器工具插件,向平台内核注册主题记录器,主题记录器完成主题分发日志的记录;

使调用器成为所述分发器主插件定义的扩展点,扩展点是一个被命名的接口,调用器执行主题的分发,调用器的功能由在平台内核注册的调用器插件实现;

使主题处理器创建主题队列,并在主题队列中选出相应的主题通过所述调用器分发给监听器,所述监听器是主题的订阅者。

所述分发器主插件为所述监听器提供注册并管理监听器,所述每个监听器提供一个回调,所述每个回调包括一种调用协议。

所述调用器执行主题的分发是通过调用所述回调进行的,每个调用器只能识别和调用与其调用协议相同的回调。

所述调用器插件将其功能服务定义为一个扩展者,并向平台内核注册一个扩展,所述扩展是一个命名连接,所述分发器主插件将其定义的扩展点向平台内核注册,所述平台内核利用所述扩展使所述扩展者与所述扩展点连接,从而使所述调用器实现所述调用器插件的功能和服务。

所述主题处理器创建的主题队列中的每一个主题都有一个题目,所述每个监听器都要说明其需要的主题题目,只有与监听器相同题目的主题才会被所述主题处理器分发到该监听器。

采用本发明的技术方案,由于本发明所述的资源管理平台及方法具有平台内核,所以可以很方便的扩展所述资源管理平台各种插件的功能,实现各种插件功能的共享和调用;本发明所述的调用器在被相关插件定义后,可以执行监听器(主体订阅者)的回调,实现主题的分发;而本发明所述的主题处理器可以创建主题队列,并将主题队列的主题通过所述调用器分发给对应的监听器(主题订阅者)。另外,本发明所述的资源管理平台及方法中的分发器工具插件能向平台内核注册主题记录器,而主题记录器完成主题分发日志的记录,以便管理者及时查看分发的记录。

附图说明

图1示出了根据本发明的一实施例的具有主题分发功能的资源管理平台的结构图;

图2示出了根据本发明的一实施例的资源管理平台主题分发方法的流程图。

具体实施方式

本发明首先是提供一种具有主题分发功能的资源管理平台,参考图1示出了其一个实例100的结构图,包括:

平台内核110,为所述资源管理平台的插件及其插件的定义提供注册并使之关联;

主题分发器120,包括:

分发器主插件121,对外提供主题服务,并负责维护调用器123;

分发器工具插件122,向平台内核100注册主题记录器101,主题记录器101完成主题分发日志的记录;

调用器123,调用器123是分发器主插件121定义的扩展点,扩展点是一个被命名的接口,调用器123执行主题的分发,调用器123的功能由在平台内核110注册的调用器插件140实现;

主题处理器124,创建主题队列,并在主题队列中选出相应的主题通过调用器123分发给监听器130,监听器130是主题的订阅者。

分发器主插件121为监听器130提供注册并管理监听器130,每个监听器130提供一个回调131,每个回调131包括一种调用协议。

调用器123执行主题的分发是通过调用回调131进行的,每个调用器123只能识别和调用与其调用协议相同的回调131。

调用器插件140将其功能服务定义为一个扩展者104,并向平台内核注册一个扩展103,扩展103是一个命名连接,分发器主插件121将其定义的扩展点102向平台内核110注册,平台内核110利用扩展103使扩展者104与扩展点102连接,从而使调用器123实现调用器插件140的功能和服务。

主题处理器124创建的主题队列中的每一个主题都有一个题目,每个监听器130都要说明其需要的主题题目,只有与监听器130相同题目的主题才会被主题处理器124分发到该监听器130。

另一方面,本发明还提供一种资源管理平台的主题分发方法200,参考图2所示,该方法包括:

202.建立平台内核110,使平台内核110为资源管理平台的插件及其插件的定义提供注册并使之关联。

204.建立主题分发器120,主题分发器120包括分发器主插件121、分发器工具插件122、调用器123以及主题处理器124。

206.使分发器主插件121对外提供主题服务,并负责维护调用器123。

208.使分发器工具插件122向平台内核110注册主题记录器101,主题记录器101完成主题分发日志的记录。

210.使调用器123成为分发器主插件121定义的扩展点,调用器123执行主题的分发,调用器123的功能由在平台内核110注册的调用器插件140实现。

212.使主题处理器124创建主题队列,并在主题队列中选出相应的主题通过调用器123分发给监听器130,监听器130是主题的订阅者。

分发器主插件121为监听器130提供注册并管理监听器130,每个监听器130提供一个回调131,每个回调131包括一种调用协议。

调用器123执行主题的分发是通过调用回调131进行的,每个调用器123只能识别和调用与其调用协议相同的回调131。

调用器插件140将其功能服务定义为一个扩展者104,并向平台内核注册一个扩展103,扩展103是一个命名连接,分发器主插件121将其定义的扩展点102向平台内核110注册,平台内核110利用扩展103使扩展者104与扩展点102连接,从而使调用器123实现调用器插件140的功能和服务。

主题处理器124创建的主题队列中的每一个主题都有一个题目,每个监听器130都要说明其需要的主题题目,只有与监听器130相同题目的主题才会被主题处理器124分发到该监听器130。

为了加深以上的理解,下面说明一下所述具有主题分发功能的资源管理平台及方法在应用中产生的相关技术名称的含义和作用:

在本发明中,平台内核(Core)是资源管理平台的基础。资源管理平台是采用插件(Plugin)方式实现,所有插件彼此独立,平台内核负责维护所有插件及其插件定义的注册,平台内核还负责使插件及其插件定义之间产生关联。

本发明的资源管理平台采用插件机制,可以很方便地扩展平台功能,而不需改动已有的代码。插件机制是依赖扩展点(Extension Point)、扩展者(Extender)和扩展(Extension)实现的。

扩展点(Extension Point)就是一个命名的接口。名字唯一标识了该扩展点,而接口说明了该扩展点期望的功能规范。两个不同的扩展点可以具有同样的接口,但不能有同样的名字。如果一个插件期望其功能能够被其他插件扩展,则将此功能接口命名,定义为一个扩展点,而插件本身不需要实现此接口。例如,数据引擎(Data Engine)插件需要读取某个数据源的数据,但是不同的数据源(例如JDBC数据源和XML文档数据源)具有不同的存取方式。数据引擎不期望依赖某种特定的实现读取特定的数据源,因此定义了适配器(Adapter)扩展点。数据引擎本身只操作适配器接口,并不负责适配器的实现。数据引擎将此扩展点注册给内核之后,内核负责将其与其他插件注册的适配器实现关联,从而使数据引擎完全透明地访问适配器实现。

扩展者(Extender)就是一个扩展点接口的实现。扩展者只关心实现,而无须关心谁会使用这个实现。如果两个扩展点定义了同样的接口,那么扩展者本身并不能确定它会被哪一个扩展点使用。一个扩展者可以实现多个扩展点接口。扩展者的实例由扩展者工厂(Extender Home)创建。

扩展(Extension)就是一个扩展点和一个扩展其接口的扩展者的命名连接。一个扩展包含以下信息:一个唯一的名字,被扩展的扩展点的名字,以及实现此扩展点接口的扩展者工厂。如果一个插件期望扩展其他插件的扩展点,则必须实现相应的扩展者,提供相应的扩展者工厂,并向内核注册相应的扩展。内核负责将扩展者与扩展点连接,并在定义扩展点的插件需要的时候,利用扩展者工厂创建扩展者实例,提供给此插件使用。通常将扩展的名字也叫做扩展所连接的扩展者的名字。

主题分发器(Topic Dispatcher)是一个针对发布/订阅(Publish andSubscribe)模型的特殊消息分发器。主题分发器管理所有待发布(Publish)的主题(Topic),并依赖调用器(Invoker)将其可靠地分发给相应的监听器(Listener)。

主题(Topic)是一个公开发布的消息。主题分发器负责分发主题到相应的监听器(Listener)。每个主题都具有一个唯一的名字。主题还必须具有一个题目(Subject),题目是确定主题订阅者(监听器)的订阅凭据。主题的内容(Content)主题分发器并不关心,主题分发器只负责将主题的内容分发到相应的监听器,内容的含义由监听器解释。

监听器(Listener)是一个对某类主题感兴趣的订阅者。监听器是主题分发器维护的实体之一。主题分发器在接收到某个监听器感兴趣的主题时,负责通过调用器(Invoker)将该主题分发给此监听器。每个监听器都必须有一个可以唯一识别的名称。

每一个监听器都必须说明它所感兴趣的题目(Subject)。每个主题(Topic)都拥有一个题目(Subject),只有与监听器相同题目的主题才会被分发到该监听器。不同的主题可以拥有相同的题目,不同的监听器也可以监听相同的题目。例如,监听器L1和监听器L2同时监听题目S1,那么当两个题目也同为S1的主题T1和T2发布时,L1和L2分别都会接收到T1和T2。

每一个监听器都必须提供一个回调(Callback),主题分发器就是通过调用回调将主题分发给此监听器的。“回调”是一个广义的概念,它并不仅仅指“回调函数”。回调的具体含义由调用器(Invoker)解释。例如,一个回调可能是一个HTTP URL,而执行此回调的调用器的功能是将主题以HTTP表单的形式提交到此URL。不同的监听器可以使用相同的回调。

调用器(Invoker)是主题分发器定义的用于解释和调用监听器回调(Listener Callback)的扩展点接口。主题分发器虽然负责维护监听器,但并不实现对监听器回调的调用,而是将调用交给其他插件实现的调用器处理。

每个调用器都只支持符合某种特定规则的回调,这种规则称为调用协议(Protocol)。例如,表单调用器将参数以HTTP表单的形式提交给一个HTTP URL类型的回调;Web服务调用器则负责调用一个Web服务形式的回调;而MQ调用器则是将主题分发到MQ类型的回调所指定的消息队列中。

每个调用器只能识别和调用与其协议相同的回调;反之,每个回调也必须遵循与其协议相同的调用器规定的调用规则。

主题分发器向某个监听器分发主题时,将按照此监听器提供的回调规定的协议查找相应的调用器,然后利用此调用器完成此主题到此监听器的分发。

当主题分发器需要调用一个调用器分发某个主题时,会传给该调用器以下参数:一、调用器要调用的回调(待分发主题所关联的监听器回调);二、待分发主题所关联的监听器名称;三、待分发主题的题目;四、待分发主题的内容(Content)。

调用器可以选择将全部参数或部分参数传递给回调。对于使用相同回调的多个监听器的情况,可能必须要求调用器将监听器名称和主题题目传递给回调,否则可能导致回调无法区别触发回调的题目和监听器。

主题分发器不关心调用器与回调沟通的细节,但是必须关心调用器的返回值。如果一个调用器返回True,则意味着该主题已经被该调用器所调用的回调接受(Accept),主体分发器将认为该主题已成功分发,从而停止该主题的分发;反之,如果调用器返回False,则意味着该主题被此回调拒绝(Reject),主体分发器将继续尝试将此主题分发给其他监听器。

如果一个调用器因为各种原因不能顺利调用回调(例如调用协议错误,或者无法联系回调),那么此调用器应抛出调用器异常(InvokerException);如果一个调用器成功调用了回调,但是回调出现处理错误(例如回调发现了无效的主题内容),则此调用器应抛出回调异常(CallbackException)。对于调用器异常,主题分发器会停止对此监听器的分发,直至监听器再次被显式启动(Start);而对于回调异常,主体分发器仍会将其他主题继续分发给此监听器。

分发器主插件(Topic Dispatcher)是主题分发器的核心插件。它对外提供主题服务(Topic Service),并负责维护调用器。

主题服务(Topic Service)是主题分发器对外开放的服务接口,它扩展了平台内核的服务扩展点。主题服务主要包括:

活动主题管理,活动主题(Active Topic)是指已经发布到主题分发器、但尚未分发(即尚未被任何监听器接受)的主题(Topic)。活动主题管理包括活动主题查询和删除。删除一个活动主题将导致此主题被永久删除,停止分发。

活动调用器查询,活动调用器(Active Invoker)是指已经连接到主题分发器调用器扩展点的调用器。活动调用器不同于调用器,它只提供了调用器的描述信息(名称、协议、说明等),而并不提供调用回调的功能。通过查询活动调用器,外部应用就可以知道目前主题分发器可以支持的回调协议,从而定义适当的监听器。

监听器注册/注销,由于监听器是一个实体,它不包含代码实现,因此可以直接向主题分发器注册或注销(Add/Remove)。

监听器启动/停止,主题分发器并不会向所有的监听器分发消息,而是只有当一个监听器启动之后才向其分发消息。通常监听器的回调都是由外部应用实现的,而外部应用并不是总处于活动状态,因此需要通过启动/停止(Start/Stop)操作向主题分发器通知其是否活动。例如,一个外部应用向主题分发器注册了一个使用Web服务回调的监听器,那么当此应用启动时(即用于回调的Web服务可用时),该应用应当通知主题分发器启动相应的监听器;而在此应用退出时,通知主题分发器停止相应的监听器。

主题分发器在调用回调的过程中,如果出现调用器异常,也会认为此回调不可用,并停止其对应的监听器。主题分发器负责将监听器停止后发布的与其关联的主题储存,并且在监听器再次启动时将这些主题分发给此监听器。监听器不会因为停止而丢失其监听的主题。

活动监听器(Active Listener)是指已经注册给主题分发器的监听器。活动监听器除了提供它所对应的监听器信息(名称,题目,回调)外,还提供了监听器是否已启动的标志。应用可以通过查询活动监听器取得监听器的状态。

如前所述,分发器主插件本身并不实现任何调用器,而只是定义了调用器扩展点,调用器由其他插件实现。如果需要为分发器主插件添加新的调用器,只需要将扩展此扩展点的调用器插件注册给内核即可。

分发器工具插件(Topic Dispatcher Utility)是主题分发器的辅助插件,它依赖于分发器主插件。分发器工具插件完成以下三个功能:一、将主题分发器与资源管理器(Resource Manager)相连,以使资源管理器能够使用主题分发器的功能发布订阅通知;二、向平台内核注册缺省的主题记录器(Topic Logger),以完成主题分发日志的记录功能;三、为主题分发器插件的调用器扩展点提供一组缺省的调用器。注意,所述的资源管理器是资源管理平台的一个插件,其作用是向主题分发器输入主题,还可以实现一个主题的公开发布,并供感兴趣的订阅者查询。

发布器(Publisher)是资源管理器定义的用于发布主题的扩展点接口。发布器负责将一个主题公开发布,并供感兴趣的订阅者查询。主体分发器工具插件向内核注册了一个发布器的扩展,从而将主题分发器与资源管理器有机地结合起来。

主题记录器(Topic Logger)是由分发器工具插件在平台内核注册的,它只记录主题分发器的日志,而不处理来自其他发起者(Originator)的日志。

缺省的主题记录器将主题的分发日志记录在指定目录的文件,每个主题对应一个日志文件。可以配置主题记录器使得其只保留尚未分发的主题日志,而不保留已成功分发的主题日志。

主题日志会记录完整的主题分发过程。如果一个主题被反复分发,后来的分发过程会添加到原来的分发过程之后。可以禁用缺省主题记录器。也可以向内核注册新的记录器扩展以完成主题分发日志的记录。

分发器工具插件提供并注册了一组常用的调用器扩展,以方便应用的开发。这包括:一、Web服务调用器,用于以Web服务形式存在的回调;二、表单调用器,用于接受HTTP表单提交的回调;三、MQ调用器,用于将主题发布到某个回调指定的消息队列中。

主题处理器(Topic Processor)是主题分发器用于分发主题的构件。主题处理器本身不是一个插件。

主题队列(Topic Queue)是主题分发器用于主题排队的队列。当分发器工具插件的发布器接收到资源管理器的主题后,首先会创建对应的活动主题,然后将此主题放入主题队列排队等待处理。

另外,当一个监听器启动时,主题分发器也会查找是否有与此监听器相关的活动主题,并将这些主题也放入主题队列等待处理。这保证了一个监听器在停止后不会丢失监听的主题。一个正在排队的主题可以被删除。

主题处理器负责从主题队列中取出下一个待处理的主题,然后轮询与之相关的已启动监听器,将主题通过调用器分发给监听器。

分发过程中,如果出现调用器异常,则停止对应的监听器;如果主题一旦被某个监听器接受(Accept),则停止分发此主题,并将此主题对应的活动主题删除。

主题处理器支持启动多个实例并发执行。当主题处理器并发执行处理主题时,有可能导致监听器回调也被异步并发调用。因此如果启用了主题处理器的并发执行机制,那么监听器回调也必须相应地支持异步并发调用。

为了更好地扩展本发明的资源管理平台的应用性,本发明还在资源管理平台对外提供了两种接口:

程序级接口(Program Level Interface)和应用级接口(ApplicationLevel Interface)。

程序级接口(Program Level Interface)是指平台开放给其他在代码一级调用平台的程序的接口。程序级接口由内核接口和各种插件服务接口构成,程序级接口供平台内核和插件使用。通过调用程序级接口,其他该资源管理平台内的程序可以使用平台的所有功能。由于程序级接口是在代码一级调用,因此要求调用的程序与平台工作在同一虚拟机内,这种程序称为“受限应用(Limited Application)”。受限应用虽然能使用平台的全部功能,但由于它与平台共享虚拟机资源,因此不建议有过多的受限应用或者过于消耗资源的受限应用——这也就是受限应用之所以称为“受限”应用的原因。受限应用完成平台管理员(Platform Administrator)的功能。比如,平台的管理控制台(Console)  就是一个受限应用。

应用级接口(Application Level Interface)是一组平台对外开放的Web服务集合。应用级接口只提供有限的部分功能,例如:活动任务管理、转换器操作、监听器启动/停止等。应用级接口供平台外部的调用使用。

调用应用级接口的程序称为“一般应用(Normal Application)”。一般应用是平台的资源服务客户(Resource Service Client),即资源提供者或资源使用者(消费者、接收者、订阅者)。

本发明中还提供一种接口,称为代理接口。如果某个一般应用期望调用程序级接口提供的功能,那么可以使用一个轻量级的受限应用代理完成:该受限应用对外开放一个Web服务,然后调用程序级接口完成此Web服务的功能。这种接口称为“代理接口(Proxy Interface)”。代理接口也可以用于实现其他类型的接口,例如,符合RMI(Remote Method Invocation)规范的远程接口(Remote Interface)。代理接口由具体的应用实现,平台本身不予提供。

本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本发明,而并非用作为对本发明的限定,只要在本发明的实质精神范围内,对以上实施例的变化、变型都将落在本发明的权利要求书范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号