CN101110700B - 资源管理平台中的资源管理器 - Google Patents
资源管理平台中的资源管理器 Download PDFInfo
- Publication number
- CN101110700B CN101110700B CN2007100420065A CN200710042006A CN101110700B CN 101110700 B CN101110700 B CN 101110700B CN 2007100420065 A CN2007100420065 A CN 2007100420065A CN 200710042006 A CN200710042006 A CN 200710042006A CN 101110700 B CN101110700 B CN 101110700B
- Authority
- CN
- China
- Prior art keywords
- explorer
- plug
- unit
- resource
- extension point
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明揭示一种资源管理平台中的资源管理器,该资源管理器以插件的形式运行于资源管理平台的一平台内核上,平台内核向以插件形式运行的资源管理器提供调用资源并管理资源管理器,其中,资源管理器包括:资源管理器插件,提供资源服务,维护资源管理器内部的表和转换器;资源管理器工具插件,通过一数据引擎实现一通知器,并实现资源管理器的转换器的级联触发。采用本发明的技术方案,提供了一种既能对资源本身进行控制,又能对资源的变化形式进行管理的手段。
Description
技术领域
本发明涉及资源管理技术,更具体地说,涉及资源管理平台中的资源管理器。
背景技术
随着网络技术的不断发展,资源共享逐渐成为许多企业级应用迫切的需求。虽然目前一些应用系统实现了部分共享的功能,但很多情况下,这种共享只限于存取有限网络内的资源或为有限网络内提供资源,不能满足更普遍、更广泛共享的需求。
通常的应用系统无法做到这种普遍、广泛共享的原因主要有两点:一是应用系统用户出于安全保密性的考虑,不愿将所有资源对外开放;二是即使应用系统用户愿意甚至需要将一部分资源对外开放,但却没有一种统一的途径使其资源安全、可靠地开放。
开放资源的一个前提是实现有效的资源管理和控制,在资源转换的过程中,需要对资源本身进行控制,还需要对资源的变化形式进行管理。于是,就需要一种能有效进行资源管理和控制的手段。
发明内容
本发明的目的提供一种资源管理器,存放并管理资源,并定义资源从一种形式变为另一种形式、从一个位置迁移到另一位置的变化过程。
本发明采用如下的方式实现,提供一种资源管理平台中的资源管理器,该资源管理器以插件的形式运行于资源管理平台的一平台内核上,平台内核向以插件形式运行的资源管理器提供调用资源并管理资源管理器,其中,资源管理器包括:
资源管理器插件,提供资源服务,维护资源管理器内部的表和转换器;
资源管理器工具插件,通过一数据引擎实现一通知器,并实现资源管理器的转换器的级联触发。
其中,资源管理器插件提供传输器扩展点和发布器扩展点,该传输器扩展点和发布器扩展点是被命名的接口,该资源管理器插件还提供资源服务扩展,该资源服务是命名连接;而该资源管理器工具插件提供的通知器扩展,该通知器扩展是命名连接。
该平台内核包括:
内核插件,内核插件是资源管理器插件和资源管理器工具插件的原始根,包括:
基础扩展点,基础扩展点是供资源管理器插件和资源管理器工具插件使用的接口;
基础扩展者,基础扩展点的接口实现,基础扩展者是可被资源管理器插件和资源管理器工具插件调用的扩展者;
插件系统,内核插件、资源管理器插件和资源管理器工具插件需要向插件系统进行注册,插件系统还保存内核插件、资源管理器插件和资源管理器工具插件之间的关联关系;
资源管理器插件和资源管理器工具用于实现:
扩展点,扩展点是一个被命名的接口;
扩展者,所述扩展点的接口实现;
扩展,所述扩展点和实现该扩展点接口的扩展者的命名连接;
该非内核插件通过实现扩展点、扩展者和扩展来调用可扩展资源管理平台的资源。
其中,该资源管理器插件提供资源服务,该资源服务包括:
对资源管理器内部的表的注册以及注销;
对资源管理器内部的表的查询;
对资源管理器内部的转换器的注册以及注销;
对资源管理器内部的转换器的查询;
对资源管理器内部的转换器的操作。
该资源管理器中的表是资源管理器存放资源的容器,用于存放资源管理器管理的资源,表的集合构成了资源管理器的资源仓库;而转换器是资源管理器维护的静态转换实体,转换器具有不同的类型。
该资源管理器中的转换器是一个命名的转换,转换描述了资源从一种形式变为另一种形式、从一个位置迁移到另一位置的变化过程;其中每一个转换描述了以下信息:
输出模式,每个转换都具有一个输出模式,输出模式指定了该转换向目标输出数据的方式;
可靠度级别,每个转换都具有一个可靠度级别,可靠度级别定义了转换进行过程中的错误处理策略;
簇大小,转换是以簇为单位进行的,一个簇包含若干条记录,簇大小指定了该转换中每个簇的记录数;
源和目标,源和目标指定了转换的源和目标;
绑定,每个转换都包含一组绑定,每个绑定指定了一个位于转换目标中的字段的表达式。
该资源管理器中的每个转换器还具有一个类型描述,根据转换器的不同功能,转换器分为以下类型:
整合器,整合器用于平台内部的资源整合;
提供者,提供者是资源仓库中资源的原始来源;
消费者,消费者是资源管理平台的资源的使用者;
接收者,接收者也是资源管理平台的资源的使用者,资源管理平台会在与接收者相关联的数据发生变化时,自动将变化的数据按照转换指定的规则传送给接收者;
订阅者,订阅者也是资源管理平台的资源的使用者,当与一订阅者相关联的数据发生变化时,资源管理平台将利用发布器发布一则主题。
运送器,运送器直接在两个原始资源间传送数据。
当资源管理器需要使用一转换器完成数据转换时,资源管理器将转换器的转换信息和附加的查询子句组合起来,构造成一个传输任务,由传输器扩展点执行;
其中,该传输器扩展点用于解释和执行任务,一个任务是转换的一次执行;
传输器扩展点支持同步执行和异步执行两种执行方式;同步执行时的任务为立即任务;异步执行的任务为后台任务,对于后台任务,传输器扩展点创建活动任务和日志;
传输器扩展点通过任务通知机制在任务完成后通知资源管理器。
该资源管理器使用发布器扩展点发布主题;其中,该主题是一则公开发布的消息,包括名称、题目和内容;
而发布器扩展点提供主题管理的功能,包括对于主题的查询或删除。
采用本发明的技术方案,提供了一种既能对资源本身进行控制,又能对资源的变化形式进行管理的手段。
附图说明
图1示出了可作为本发明的资源管理器的运行基础的可扩展资源管理平台的结构图;
图2示出了根据本发明的资源管理器的结构图。
具体实施方式
本发明提供一种资源管理平台中的资源管理器,该资源管理器以插件的形式运行于资源管理平台的一平台内核上,平台内核向以插件形式运行的该资源管理器提供调用资源并管理资源管理器。
首先介绍一下可以用于实现本发明的资源管理平台,该资源管理平台也可以视为是本发明的规则管理器的运行基础。参考图1所示,该资源管理平台100包括:
平台内核102,平台内核102包括,
内核插件120,内核插件是非内核插件140的原始根,包括:
基础扩展点122,基础扩展点是供非内核插件140使用的接口;
基础扩展者124,基础扩展点的接口实现,基础扩展者是可被非内核插件140或者平台外部应用调用的扩展者;
插件系统126,内核插件120和非内核插件140需要向插件系统126进行注册,插件系统126还保存内核插件120与非内核插件140、以及非内核插件140与非内核插件140之间的关联关系;
非内核插件140,非内核插件与特定的功能相关,非内核插件用于实现:
扩展点104,扩展点104是一个被命名的接口;
扩展者106,扩展点104的接口实现;
扩展108,扩展点104和实现该扩展点接口的扩展者106的命名连接;
非内核插件140通过实现扩展点104、扩展者106和扩展108来调用可扩展资源管理平台100的资源。
本发明的资源管理器就是运行于上述的资源管理平台100之上,参考图2所示,该资源管理器200包括:
资源管理器插件202,提供资源服务,维护资源管理器内部的表和转换器。根据本发明的一实施例,资源管理器插件202提供传输器扩展点和发布器扩展点,该传输器扩展点和发布器扩展点是被命名的接口,该资源管理器插件还提供资源服务扩展,该资源服务是命名连接。
资源管理器工具插件204,通过一数据引擎实现一通知器,并实现资源管理器的转换器的级联触发。同样根据本发明的一实施例,该资源管理器工具插件204提供的通知器扩展,该通知器扩展是命名连接。
于是,本发明的资源管理器运行于上述图1所示的资源管理平台,形成如下的结构:
内核插件,内核插件是资源管理器插件和资源管理器工具插件的原始根,包括:
基础扩展点,基础扩展点是供资源管理器插件和资源管理器工具插件使用的接口;
基础扩展者,基础扩展点的接口实现,基础扩展者是可被资源管理器插件和资源管理器工具插件调用的扩展者;
插件系统,内核插件、资源管理器插件和资源管理器工具插件需要向插件系统进行注册,插件系统还保存内核插件、资源管理器插件和资源管理器工具插件之间的关联关系;
资源管理器插件和资源管理器工具用于实现:
扩展点,扩展点是一个被命名的接口;
扩展者,扩展点的接口实现;
扩展,扩展点和实现该扩展点接口的扩展者的命名连接;
非内核插件通过实现扩展点、扩展者和扩展来调用可扩展资源管理平台的资源。
继续参考图2,该资源管理器插件202提供资源服务,根据本发明的一实施例,该资源服务包括:
对资源管理器内部的表的注册以及注销;
对资源管理器内部的表的查询;
对资源管理器内部的转换器的注册以及注销;
对资源管理器内部的转换器的查询;
对资源管理器内部的转换器的操作。
根据本发明的一实施例,资源管理器中的表是资源管理器存放资源的容器,用于存放资源管理器管理的资源,表的集合构成了资源管理器的资源仓库;而转换器是资源管理器维护的静态转换实体,转换器具有不同的类型。
该转换器是一个命名的转换,转换描述了资源从一种形式变为另一种形式、从一个位置迁移到另一位置的变化过程;
每一个转换描述了以下信息:
输出模式,每个转换都具有一个输出模式,输出模式指定了该转换向目标输出数据的方式;
可靠度级别,每个转换都具有一个可靠度级别,可靠度级别定义了转换进行过程中的错误处理策略;
簇大小,转换是以簇为单位进行的,一个簇包含若干条记录,簇大小指定了该转换中每个簇的记录数;
源和目标,源和目标指定了转换的源和目标;
绑定,每个转换都包含一组绑定,每个绑定指定了一个位于转换目标中的字段的表达式。
每个转换器还具有一个类型描述,根据转换器的不同功能,转换器分为以下类型:
整合器,整合器用于平台内部的资源整合;
提供者,提供者是资源仓库中资源的原始来源;
消费者,消费者是资源管理平台的资源的使用者;
接收者,接收者也是资源管理平台的资源的使用者,资源管理平台会在与接收者相关联的数据发生变化时,自动将变化的数据按照转换指定的规则传送给接收者;
订阅者,订阅者也是资源管理平台的资源的使用者,当与一订阅者相关联的数据发生变化时,资源管理平台将利用发布器发布一则主题。
运送器,运送器直接在两个原始资源间传送数据。
当资源管理器需要使用一转换器完成数据转换时,资源管理器将转换器的转换信息和附加的查询子句组合起来,构造成一个传输任务,由传输器扩展点执行;其中,该传输器扩展点用于解释和执行任务,一个任务是转换的一次执行;
传输器扩展点支持同步执行和异步执行两种执行方式;同步执行时的任务为立即任务;异步执行的任务为后台任务,对于后台任务,传输器扩展点创建活动任务和日志;
传输器扩展点通过任务通知机制在任务完成后通知资源管理器。
根据本发明中的一实施例,该资源管理器使用发布器扩展点发布主题;其中,该主题是一则公开发布的消息,包括名称、题目和内容;
发布器扩展点提供主题管理的功能,包括对于主题的查询或删除。
下面介绍本发明的具体实现。
资源管理平台的实现的基本架构
在本发明中,平台内核(Core)是整个可扩展资源管理平台的核心部件和基础。本发明的可扩展资源管理平台采用插件(Plugin)方式实现,所有插件彼此独立,平台内核负责维护所有插件间的关联。内核提供内核插件(Core Plugin)作为所有插件的根。平台内核是一个“轻量级”部件,它本身不实现任何应用的功能需求,只负责完成最基础的插件服务和提供最基础的一组扩展点。在平台内核之上,插入各个功能模块,各个功能模块之上再插入它们特定的插件,最终完成应用特定的功能。
本发明的可扩展资源管理平台采用插件机制,可以很方便地扩展平台功能,而不需改动已有的代码。插件系统是依赖扩展点(Extension Point)、扩展者(Extender)和扩展(Extension)实现的。需要说明的是,本发明的可扩展资源管理平台中,除了平台内核中的内核插件是基础插件,其余的插件都是扩展应用使用的插件,都可以视为非内核插件。在下面的叙述中,“插件”将用于指代非内核插件,而内核插件将专门指名。并且,对于术语“插件”和“非内核插件”,表示同样的概念。
扩展点(Extension Point)就是一个命名的接口。名字唯一标识了该扩展点,而接口说明了该扩展点期望的功能规范。两个不同的扩展点可以具有同样的接口,但不能有同样的名字。如果一个插件期望其功能能够被其他插件扩展,则将此功能接口命名,定义为一个扩展点,而插件本身不需要实现此接口。例如,数据引擎(Data Engine)插件需要读取某个数据源的数据,但是不同的数据源(例如JDBC数据源和XML文档数据源)具有不同的存取方式。数据引擎不期望依赖某种特定的实现读取特定的数据源,因此定义了适配器(Adapter)扩展点。数据引擎本身只操作适配器接口,并不负责适配器的实现。数据引擎将此扩展点注册给内核之后,内核负责将其与其他插件注册的适配器实现关联,从而使数据引擎完全透明地访问适配器实现。
扩展者(Extender)就是一个扩展点接口的实现。扩展者只关心实现,而无须关心谁会使用这个实现。如果两个扩展点定义了同样的接口,那么扩展者本身并不能确定它会被哪一个扩展点使用。一个扩展者可以实现多个扩展点接口。扩展者的实例由扩展者工厂(Extender Home)创建。
扩展(Extension)就是一个扩展点和一个扩展其接口的扩展者的命名连接。一个扩展包含以下信息:一个唯一的名字,被扩展的扩展点的名字,以及实现此扩展点接口的扩展者工厂。如果一个插件期望扩展其他插件的扩展点,则必须实现相应的扩展者,提供相应的扩展者工厂,并向内核注册相应的扩展。内核负责将扩展者与扩展点连接,并在定义扩展点的插件需要的时候,利用扩展者工厂创建扩展者实例,提供给此插件使用。通常将扩展的名字也叫做扩展所连接的扩展者的名字。
平台内核的实现
在本发明的平台内核中,提供了一个基础的插件,内核插件。内核插件(Core Plugin)是平台最底层的基础插件,是所有插件插入的原始根。内核插件定义了平台的最底层基础扩展点:服务(Service)。内核插件不同于普通的独立插件,它是平台内核的一部分。
服务就是平台对外的功能接口,是应用相关的功能集合。一个平台内核本身是一个“轻量级”部件,它只维护插件关联,而并不实现任何特定的功能需求。如果某个插件需要对外开放某些特定的功能,则其需要将此组功能定义为一个服务,并依赖内核插件导出。例如,规则管理器(RuleManager)需要对外提供一组维护规则的操作接口,则它需要将这组操作定义为一个实现了服务扩展点接口的扩展者——规则服务(Rule Service),并将其通过一个扩展与内核插件的服务扩展点相连接,以后当用户需要使用规则服务的时候,就可以使用此扩展的名字向内核借用(borrow)服务。
每个服务都是一个扩展者,它扩展了内核插件的服务扩展点;将服务和内核服务扩展点连结起来的扩展的名字也被定义为服务的名字。服务作为扩展者不同于其他普通扩展者的区别在于,服务直接由内核对外导出,作为平台功能的统一入口,由其他应用使用;而普通扩展者则不被外部应用所知,只由其对应扩展点的提供插件使用。服务可以对外被平台外部的应用调用,也可以对内被其他插件使用。
日志服务(Log Service)是内核插件提供的基础服务。系统中的所有插件都可以使用此服务完成日志记录。记录器(Logger)是内核插件定义的用于实现日志服务的扩展点。内核插件的日志服务会使用连接到此扩展点上的记录器完成日志的记录。当日志服务被调用时,内核插件会轮流调用所有已经连接的记录器完成日志的记录。如果没有任何一个记录器接收该记录,则内核插件会将日志记录到标准输出(stdout)或标准错误(stderr)设备上。不同的日志发起者(Log Originator)可能会具有不同的日志消息格式,只有特定的针对此发起者的记录器能识别和记录其消息。
平台内核中的另一个重要的的部件是插件系统,插件系统负责所有插件,包括内核插件和非内核插件的注册;并维护所有插件,包括内核插件和非内核插件之间的关联关系。
所有的插件,包括内核插件和非内核插件都必须向内核注册。静态插件在内核启动时由内核注册,动态插件在内核启动后由应用程序注册。插件由名字唯一标识。不同版本的同名插件只有最高版本有效。如果某一插件的低版本已经注册,又试图注册更高的版本,那么高版本必须完全兼容低版本定义的所有扩展点和扩展。
每个插件拥有一个初始化顺序(Initialization Order),决定了其注册顺序。内核插件永远是第一个初始化的,它的初始化顺序为0。其他插件则必须按照依赖关系定义初始化顺序。例如数据引擎插件只依赖内核插件,其初始化顺序为1;而数据引擎工具插件依赖数据引擎插件,其初始化顺序为2。初始化顺序只对平台启动时加载的静态插件有效。对于平台启动后注册的动态插件,初始化顺序即为其注册的顺序。
提供扩展点的插件称为宿主插件(Host Plugin),提供扩展的插件称为从属插件(Dependent Plugin)。一个插件可以同时是宿主插件和从属插件。因为从属插件依赖于相关的宿主插件,因此从属插件必须在宿主插件注册之后注册。
平台内核中的插件系统还负责维护插件与插件间(包括内核插件与非内核插件以及非内核插件与非内核插件间)的扩展关联。一个提供扩展点的插件需要使用扩展功能时,首先向内核借用(borrow)连接到此扩展点上的扩展者,然后利用扩展者完成需要的功能,最后将扩展者归还(revert)。提供扩展点的插件操作扩展者时仅按照扩展点定义的接口操作,而不必关心扩展者的实现或是谁提供了扩展者,从而实现插件功能的透明扩展。
平台内核依赖内核插件对外提供服务。内核本身不关心服务的实现。外部应用或其他插件需要使用服务时,首先按照服务扩展的名字向内核借用服务,使用完成之后将服务归还。
资源管理器
资源管理器(Resource Manager)是统一资源管理平台的总控部分。资源管理器维护两类实体:表(Table)和转换器(Transformer)。“表”是资源管理器存放资源的容器,而“转换器”则定义了资源从一种形式变为另一种形式、从一个位置迁移到另一位置的变化过程。
资源管理器使用传输器(Transferrer)完成转换任务(Task),使用发布器(Publisher)完成主题(Topic)发布。
资源管理器由资源管理器插件和资源管理器工具插件构成。
表(Table)是资源管理器存放资源的容器。表只用于存放资源管理器管理的资源,而不存放应用的原始资源。表的集合构成了资源管理器的资源仓库。资源管理器不能直接使用外部定义的数据表,所有供资源管理器使用的表必须通过注册/注销(Add/Remove)由资源管理器来维护。
转换器(Transformer)是资源管理器维护的静态转换(Transformation)实体。转换器分为整合器(Integrator)、提供者(Provider)、消费者(Consumer)、接收者(Receiver)、订阅者(Subscriber)和运送器(Transporter)等类型。转换(Transformation)描述了资源从一种形式变为另一种形式、从一个位置迁移到另一位置的变化过程。每个转换器都是一个命名的转换。不同的转换器可能拥有相同的转换。一个转换描述了以下信息:
输出模式,每个转换都具有一个输出模式(Output Mode)。输出模式指定了该转换向目标(Target)输出数据的方式。目前定义的输出模式有三种:一、仅添加(Append Only),该模式指定输出数据只会向目标添加;二、仅替换(Replace Only),该模式指定输出数据只会替换目标中原有的数据;三、添加失败则替换(Replace If Append Failed),该模式指定首先尝试将输出数据添加到目标,如果添加失败,则进行替换。并不是所有的目标都支持全部的输出模式。例如,XML文档型的目标可能只支持添加操作;而DBMS型的目标则可能所有的输出模式都支持。
可靠度级别,每个转换都具有一个可靠度级别(Reliability Level)。可靠度级别定义了转换进行过程中的错误处理策略。越高的可靠度级别就意味着越小的错误容忍度,同时也意味着越高的数据完整性。目前定义的可靠度级别有三个等级,从低到高依次为:一、忽略错误(Ignore Error),这意味着转换过程中所有的错误数据都被忽略,只有成功的数据被传送到目标;二、记录错误(Log Error),这意味着转换过程中只有成功的数据被传送到目标,但所有的错误都会被记录;三、事务(Transactional),这意味着整个转换过程将被看作是一个事务,任何错误都将导致所有的数据回滚。可靠度级别依赖具体的传输器适配器实现。例如,存取XML文档型的适配器可能不支持事务。
簇大小,转换是以簇(Cluster)为单位进行的,一个簇包含若干条记录。簇大小(Cluster Size)就指定了该转换中每个簇的记录数。传输器执行转换任务的过程中,将按照簇为单位更新活动任务和进行撤销检查。如果指定太小的簇尺寸将可能导致严重的性能问题。如果一个转换并不关心活动任务和撤销检查,那么可以将簇大小指定为0。簇大小为0意味着所有的记录被看作为一个簇,这将获得最高的执行效率。
源和目标,源(Source)和目标(Target)指定了转换的源和目标。源和目标是用位置(Location)来描述的。位置(Location)是一个带有描述信息的定位器(Locator)。定位器只能被与其具有相同协议(Protocol)的传输器适配器(Adapter)所解释和存取。位置的定义必须符合相关适配器协议的规范。
绑定,每个转换都包含一组绑定(Binding)。每个绑定指定了一个位于转换目标中的字段(Field)的表达式(Expression)。一个绑定是对一个目标字段的赋值描述。转换执行过程中,传输器负责动态地求解表达式的值,并将结果赋给目标字段。表达式分为四种类型:常量表达式(ConstantExpression)、字段表达式(Field Expression)、规则表达式(RuleExpression)和映射表达式(Mapping Expression)。其中:
常量表达式表示了一个常量(Constant),例如一个字符串常量或一个整数常量。常量表达式求值的结果就是该常量。
字段表达式表示了位于转换源(Source)中的一个字段(Field)。针对不同的数据行,字段表达式求值的结果也不同——即当前行中该字段的值。字段表达式相当于变量。
规则表达式描述了一个规则(Rule)。一个规则是对某个规则器(Ruler)的一次调用。一个规则指定了要调用的规则器的名称以及传递给该规则器的实参(Parameters)。每个实参本身也是一个表达式。对规则的求值要求递归地求解所有的表达式。规则表达式相当于一个函数调用。
映射表达式描述了一个映射(Mapping)。一个映射是使用某个映射器(Mapper)的一次映射。一个映射指定了要使用的映射器名称以及待映射的源(Source)。待映射的源本身也是一个表达式。对映射表达式的求值要求递归地求解待映射源的表达式。
与一个目标字段绑定的表达式可以是上述任何类型的表达式。
类型,每个转换器除了包含转换定义的信息外,还具有一个类型描述。根据转换器的不同功能,转换器分为以下类型:
整合器,整合器(Integrator)用于平台内部的资源整合。整合器负责完成平台内部资源的转换。整合器的源和目标永远都是平台资源仓库,在转换信息中定义的源和目标将被忽略。
提供者,提供者(Provider)是资源仓库中资源的原始来源。提供者负责向资源仓库提供原始资源。提供者的转换目标永远都是平台资源仓库,在转换信息中定义的目标将被忽略。
消费者,消费者(Consumer)是平台资源的使用者。消费者将从平台请求资源。消费者的转换源永远都是平台资源仓库,在转换信息中定义的源将被忽略。
接收者,接收者(Receiver)是一种特殊的消费者。普通的消费者必须主动向平台请求资源,而接收者不同,平台会在与接收者相关联的数据发生变化时,自动将变化的数据按照转换指定的规则传送给接收者。与消费者类似,接收者的转换源永远都是平合资源仓库,在转换信息中定义的源将被忽略。
订阅者,订阅者(Subscriber)是另外一种特殊的消费者。当与某个订阅者相关联的数据发生变化时,平台将利用发布器(Publisher)发布一则主题(Topic),该主题的内容是一个定阅通知(Subscription)。订阅者在接收到订阅通知后,可以凭此订阅通知向平台请求变化了的数据。由于平台会直接向接收者发送数据,所以要求接收者必须随时处于活动状态。一个不活动的接收者将会丢失在此期间发生的变化数据。而订阅者则不同,由于发布器可以确保将主题可靠地发送到订阅者,因此订阅者并不会因为处于不活动状态而丢失订阅通知。订阅者可以在任意时候凭订阅通知取得相应的变化数据。与消费者类似,订阅者的转换源永远都是平台资源仓库,在转换信息中定义的源将被忽略。
运送器,运送器(Transporter)用来直接在两个原始资源间传送数据。运送器不使用任何平台资源。运送器的源和目标都必须明确指定。
级联触发,资源管理器保证转换器的级联触发(Cascade Trigger)。例如,提供者P负责向表T1中提供数据,整合器I负责将表T1中的数据整合到表T2,接收者R接收表T1中的数据,订阅者S订阅了表T2中的数据。那么,当P向T1中提供了一条新的数据后,R会马上接收到这条新的数据,并且I将会被启动。在I将数据整合到T2后,一条针对S的订阅通知就会发布。级联触发过程中如果某一级的某一转换器出现错误,不会影响与其同级的其他转换器的触发,但是与之关联的下一级转换器将不会被触发。
资源管理器插件,资源管理器插件(Resource Manager)是资源管理器的核心插件。它对外提供资源服务(Resource Service),并负责维护表(Table)和转换器(Transformer)。
资源服务,资源服务(Resource Service)是资源管理器对外开放的服务接口,它扩展了内核的服务扩展点。资源服务主要包括:
表注册/注销,表注册/注销(Add/Remove)用于向资源管理器注册或注销资源表。只有在资源管理器注册了的表才能被转换器使用。不能注销一个依然被转换器使用的表。只有所有与某个表相关的转换器全部注销之后才能注销此表。
表查询,表查询用于查询资源管理器上已经注册了的表信息。
转换器注册/注销,转换器注册/注销(Add/Remove)用于向资源管理器注册或注销一个转换器。一个转换器关联的表必须在转换器注册之前已经注册到资源管理器。不能注册一个与不存在的表相关联的转换器。
转换器查询,转换器查询用于查询资源管理器上已经注册了的转换器信息。
转换器操作,转换器操作包括:转换(Transform)、转换订阅(Transform Subscription)、提供(Provide)、消费(Consume)和消费订阅(Consume Subscription)。
其中,转换(Transform)是指使用指定的转换器完成一次转换操作。例如,某个消费者可以使用转换功能完成一次数据请求。转换操作可以操作任意类型的转换器。转换操作可以提供一个可选的查询子句(Query Clause),查询子句将直接传递给传输器(Transferrer)解释。并不是所有的传输器适配器(Adapter)都支持查询子句,查询子句的具体含义由适配器解释。例如,如果某个转换器的源是一个支持SQL语法的数据库,那么查询子句可能是SELECT语句的查询子句;而对于一个MQ类型的转换器源,则查询子句可能被用作消息选择器(Message Selector);对于一个XML文档型的转换器源,可能不支持查询子句。转换操作是异步的,将启动传输器在后台完成转换任务。转换操作返回传输器的后台任务名,应用可以根据任务名向传输器查询活动任务状态。
转换订阅(Transform Subscription)是指为指定的订阅者完成订阅数据的传送。通常,订阅者在收到订阅通知(Subscription)后,使用此功能获取变化数据。转换订阅操作只能操作订阅者。类似转换操作,转换订阅操作也是异步的,并且返回相应的传输器后台任务名。
提供(Provide)是指由指定的提供者提供数据。提供操作是同步的,不启动后台任务。要提供的数据直接以特定的XML格式作为参数传递给此操作,并且在数据处理完毕后返回。提供操作只能用于操作提供者。提供操作是一种方便的、实时的、少量数据的提供方法。对于大数据量,不应使用提供操作,而应使用转换(Transform)操作完成数据提供。由于提供操作时,数据直接以参数形式提供,因此相应提供者的转换信息中定义的源会被忽略。
消费(Consume)是指为指定的消费者(接收者,订阅者)请求数据。消费操作是同步的,不启动后台任务。请求的数据将直接以特定的XML格式作为返回值返回给调用者。消费操作只能用于消费者、接收者或订阅者。类似提供操作,消费操作也不能用于大量数据的请求,并且,相应消费者(接收者,订阅者)的转换信息中定义的目标会被忽略。类似转换操作,消费操作也可以提供一个可选的查询子句。
消费订阅(Consume Subscription)是指为指定的订阅者请求订阅数据。消费订阅操作是同步的,不启动后台任务。请求的数据将直接以特定的XML格式作为返回值返回给调用者,订阅者的转换信息中定义的目标会被忽略。消费订阅操作只能操作订阅者。消费订阅操作只用于少量订阅数据的请求,对于大量订阅数据的请求,必须使用转换订阅(Transform Subscription)操作。
当资源管理器需要使用某个转换器完成数据转换时,资源管理器会将转换器的转换(Transformation)信息和附加的查询子句(Query Clauses)组合起来,构造成一个传输任务(Task),交给传输器(Transferrer)执行。资源管理器本身不实现传输器,而是定义了传输器扩展点,传输器由其他插件实现。
传输器(Transferrer)负责解释和执行任务(Task)。一个任务是转换(Transformation)的一次执行。同一转换的两次执行将是两个独立的任务。如果把转换比作程序,那么转换器就是一个可执行文件,而任务则是一个进程。
任务包含了转换的所有信息。除此之外,任务还定义了以下的信息:一、名称(Task Name),名称是任务的唯一标识;二、可选的任务标题(Title)和描述(Description);三、查询子句(Query Clauses),查询子句规定了任务执行时,从转换源提取数据的条件,查询子句的含义请参见0中关于转换操作的描述。
传输器必须支持同步执行和异步执行两种执行方式。同步执行时的任务称为立即任务(Instant Task)。立即任务使用特殊的立即定位器(InstantLocator)指定源和目标。立即任务要求立即执行,并将结果返回。立即任务没有对应的活动任务或日志。立即任务用于少量、实时数据的传输。异步执行的任务称为后台任务(Background Task)。后台任务用于大量数据的传输,在后台运行。后台任务要求建立相应的活动任务和日志。
对于后台任务,传输器必须负责创建活动任务(Active Task)和日志。传输器必须提供根据任务名查询活动任务的方法,并且可以撤销和删除任务。资源管理器并不定义传输器管理活动任务和日志的具体方法。这由具体的传输器实现负责。
传输器必须有一种有效的任务通知(Notification)机制,以在任务完成后通知资源管理器。资源管理器依赖任务通知实现转换器(Transformer)的级联触发(Cascade Trigger)。资源管理器并不定义传输器通知机制的具体方法。这由具体的传输器实现负责。
资源管理器使用发布器(Publisher)发布主题(Topic)。资源管理器本身不实现发布器,而是定义了发布器扩展点,发布器由其他插件实现。
主题(Topic)是一则公开发布的消息。发布器(Publisher)负责发布主题。一个主题由名称(Name)、题目(Subject)和内容(Content)三部分构成。
名称(Name)是一个主题的唯一标识。
题目(Subject)是一个主题的订阅凭据。某个订阅者凭题目订阅主题。不同的主题可以拥有相同的题目。所有拥有相同题目的主题都应被分发到订阅该题目的订阅者。
内容(Content)是主题的主体。一个发布器不必关心主题的内容,它只负责将内容分发给相应的订阅者。内容的含义由订阅者解释。
资源管理器通过主题发布器发布订阅通知(Subscription)。订阅通知是一种特殊的主题,此主题的题目是订阅者的名字,内容是符合一定格式的订阅通知。某一个订阅者根据订阅通知的内容向平台请求相关的数据。
一个发布器必须提供主题管理的功能,例如主题的查询或删除。资源管理器不定义主题管理的具体方法,这由具体的发布器实现决定。
发布器必须确保将主题可靠地分发到订阅者。资源管理器不规定发布器分发主题的具体实现机制。例如,发布器可以采用回调的方式发布主题,也可以采用支持发布/订阅(Publish and Subscribe)模型的消息中间件实现主题的分发。
资源管理器工具插件(Resource Manager Utility)是资源管理器的辅助插件,它依赖于资源管理器插件。资源管理器工具插件负责实现数据引擎(Data Engine)的通知器(Notifier)扩展点接口,以实现转换器(Transformer)的级联触发(Cascade Trigger)。
采用本发明的技术方案,提供了一种既能对资源本身进行控制,又能对资源的变化形式进行管理的手段。
Claims (8)
1.一种资源管理平台中的资源管理器,其特征在于,该资源管理器以插件的形式运行于资源管理平台的一平台内核上,所述平台内核向所述以插件形式运行的资源管理器提供调用资源并管理所述资源管理器,其中,所述资源管理器包括:
资源管理器插件,提供资源服务,维护资源管理器内部的表和转换器,其中所述表是资源管理器存放资源的容器,用于存放资源管理器管理的资源,表的集合构成了资源管理器的资源仓库,所述转换器是资源管理器维护的静态转换实体,转换器具有不同的类型,所述转换器是一个命名的转换,所述转换描述了资源从一种形式变为另一种形式、从一个位置迁移到另一位置的变化过程;
资源管理器工具插件,通过一数据引擎实现一通知器,并实现资源管理器的转换器的级联触发,所述资源管理器工具插件是资源管理器的辅助插件,资源管理器工具插件依赖于资源管理器插件。
2.如权利要求1所述的资源管理器,其特征在于,
所述资源管理器插件提供传输器扩展点和发布器扩展点,该传输器扩展点和发布器扩展点是被命名的接口,该资源管理器插件还提供资源服务扩展,该资源服务是命名连接;
该资源管理器工具插件提供通知器扩展,该通知器扩展是命名连接。
3.如权利要求2所述的资源管理器,其特征在于,所述平台内核包括内核插件、插件系统:
所述内核插件是所述资源管理器插件和资源管理器工具插件的原始根,包括基础扩展点、基础扩展者:
基础扩展点,基础扩展点是供资源管理器插件和资源管理器工具插件使用的接口;
基础扩展者,基础扩展点的接口实现,基础扩展者是可被资源管
理器插件和资源管理器工具插件调用的扩展者;
内核插件、资源管理器插件和资源管理器工具插件需要向插件系统进行注册,插件系统还保存内核插件、资源管理器插件和资源管理器工具插件之间的关联关系;
所述的资源管理器插件和资源管理器工具插件用于实现扩展点、扩展者、扩展:
扩展点,扩展点是一个被命名的接口;
扩展者,所述扩展点的接口实现;
扩展,所述扩展点和实现该扩展点接口的扩展者的命名连接;
非内核插件通过实现扩展点、扩展者和扩展来调用可扩展资源管理平台的资源。
4.如权利要求3所述的资源管理器,其特征在于,所述资源管理器插件提供资源服务,该资源服务包括:
对资源管理器内部的表的注册以及注销;
对资源管理器内部的表的查询;
对资源管理器内部的转换器的注册以及注销;
对资源管理器内部的转换器的查询;
对资源管理器内部的转换器的操作。
5.如权利要求4所述的资源管理器,其特征在于,
每一个转换描述了以下信息:
输出模式,每个转换都具有一个输出模式,输出模式指定了该转换向目标输出数据的方式;
可靠度级别,每个转换都具有一个可靠度级别,可靠度级别定义了转换进行过程中的错误处理策略;
簇大小,转换是以簇为单位进行的,一个簇包含若干条记录,簇大小指定了该转换中每个簇的记录数;
源和目标,源和目标指定了转换的源和目标;
绑定,每个转换都包含一组绑定,每个绑定指定了一个位于转换目标中的字段的表达式。
6.如权利要求4所述的资源管理器,其特征在于,
每个转换器还具有一个类型描述,根据转换器的不同功能,转换器分为以下类型:
整合器,整合器用于平台内部的资源整合;
提供者,提供者是资源仓库中资源的原始来源;
消费者,消费者是资源管理平台的资源的使用者;
接收者,接收者也是资源管理平台的资源的使用者,资源管理平台会在与接收者相关联的数据发生变化时,自动将变化的数据按照转换指定的规则传送给接收者;
订阅者,订阅者也是资源管理平台的资源的使用者,当与一订阅者相关联的数据发生变化时,资源管理平台将利用发布器发布一则主题。
运送器,运送器直接在两个原始资源间传送数据。
7.如权利要求2所述的资源管理器,其特征在于,
当资源管理器需要使用一转换器完成数据转换时,资源管理器将转换器的转换信息和附加的查询子句组合起来,构造成一个传输任务,由传输器扩展点执行;
其中,该传输器扩展点用于解释和执行任务,一个任务是转换的一次执行;
传输器扩展点支持同步执行和异步执行两种执行方式;同步执行时的任务为立即任务;异步执行的任务为后台任务,对于后台任务,传输器扩展点创建活动任务和日志;
传输器扩展点通过任务通知机制在任务完成后通知资源管理器。
8.如权利要求2所述的资源管理器,其特征在于,
资源管理器使用发布器扩展点发布主题;其中,该主题是一则公开发布的消息,包括名称、题目和内容;
发布器扩展点提供主题管理的功能,包括对于主题的查询或删除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007100420065A CN101110700B (zh) | 2007-06-14 | 2007-06-14 | 资源管理平台中的资源管理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007100420065A CN101110700B (zh) | 2007-06-14 | 2007-06-14 | 资源管理平台中的资源管理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101110700A CN101110700A (zh) | 2008-01-23 |
CN101110700B true CN101110700B (zh) | 2012-05-30 |
Family
ID=39042607
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007100420065A Expired - Fee Related CN101110700B (zh) | 2007-06-14 | 2007-06-14 | 资源管理平台中的资源管理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101110700B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722403B (zh) * | 2012-05-30 | 2014-10-29 | 福建天晴数码有限公司 | 一种接管Windows桌面方法 |
CN105204830B (zh) * | 2014-06-24 | 2018-08-07 | 深圳市茁壮网络股份有限公司 | 基于中间件插件框架的插件文档资源控制方法及客户端 |
CN105224297B (zh) * | 2014-06-24 | 2018-08-07 | 深圳市茁壮网络股份有限公司 | 基于中间件插件框架的插件内存资源控制方法及客户端 |
CN105242910B (zh) * | 2014-06-24 | 2018-09-18 | 深圳市茁壮网络股份有限公司 | 基于中间件插件框架的插件状态控制方法及客户端 |
CN105320503B (zh) * | 2014-06-24 | 2018-09-14 | 深圳市茁壮网络股份有限公司 | 中间件插件框架设计系统及方法 |
CN105204829B (zh) * | 2014-06-24 | 2018-08-07 | 深圳市茁壮网络股份有限公司 | 基于中间件插件框架的插件套接字资源控制方法及客户端 |
CN106790006B (zh) * | 2016-12-13 | 2020-08-04 | 北京元心科技有限公司 | 设备管理方法和系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1691622A (zh) * | 2004-04-28 | 2005-11-02 | 联想(北京)有限公司 | 动态网络环境下的资源发现方法 |
-
2007
- 2007-06-14 CN CN2007100420065A patent/CN101110700B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1691622A (zh) * | 2004-04-28 | 2005-11-02 | 联想(北京)有限公司 | 动态网络环境下的资源发现方法 |
Non-Patent Citations (1)
Title |
---|
魏楚元等.Eclipse:基于插件的下一代通用集成开发环境.《计算机应用与软件》.2005,第22卷(第6期), * |
Also Published As
Publication number | Publication date |
---|---|
CN101110700A (zh) | 2008-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101110700B (zh) | 资源管理平台中的资源管理器 | |
CN101277212B (zh) | 资源管理平台及资源管理方法 | |
US5410703A (en) | System for changing software during computer operation | |
US8065657B2 (en) | Exchange infrastructure system and method | |
CN101272481B (zh) | 一种视频监控前端设备接入方法 | |
CN101354696B (zh) | 基于电信领域共享信息模型的数据整合与应用服务系统 | |
CN101847100B (zh) | 扩展软件应用的方法和装置 | |
CN109840144B (zh) | 一种针对跨机构批量服务请求的信息服务调度方法及系统 | |
CN101276269B (zh) | 可扩展资源管理平台 | |
CN104104738A (zh) | 一种基于ftp的数据交换系统 | |
CN104615489B (zh) | 一种多节点数据交互的实现方法 | |
CN102681878A (zh) | 无需修改现有代码即可增加新软件特征的方法 | |
EP1506478B1 (en) | Exchange infrastructure system and method | |
CN101909013A (zh) | 一种可动态配置的信息交换装置 | |
CN102929628B (zh) | 支持多互联网服务中心构建和运营的服务框架 | |
CN101458628A (zh) | 一种程序版本管理方法 | |
CN111045928A (zh) | 一种接口数据测试方法、装置、终端及存储介质 | |
CN113268888B (zh) | 一种工业自动化系统中控制与信息模型融合方法 | |
CN100464303C (zh) | 构件化软件系统中实现分布式业务逻辑计算的方法 | |
Mikkelsen et al. | Architectural Principles for Autonomous Microservices. | |
CN102467504B (zh) | 一种基于关系数据库的工作流引擎系统的设计方法 | |
CN111199386A (zh) | 一种工作流引擎及其实现方法 | |
CN103258026A (zh) | 一种异构系统的数据自动传递及控制方法 | |
CN1321384C (zh) | 名称登记系统和方法 | |
CN115630090B (zh) | 一种任务状态转换系统 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120530 Termination date: 20200614 |