CN101075190A - 资源管理平台中的数据引擎 - Google Patents
资源管理平台中的数据引擎 Download PDFInfo
- Publication number
- CN101075190A CN101075190A CN 200710042005 CN200710042005A CN101075190A CN 101075190 A CN101075190 A CN 101075190A CN 200710042005 CN200710042005 CN 200710042005 CN 200710042005 A CN200710042005 A CN 200710042005A CN 101075190 A CN101075190 A CN 101075190A
- Authority
- CN
- China
- Prior art keywords
- task
- data engine
- plug
- unit
- 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.)
- Pending
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提供传输器扩展、任务记录器扩展以及一组缺省的适配器扩展,该传输器扩展、任务记录器扩展以及一组缺省的适配器扩展是命名连接。
任务处理器206,是该数据引擎用于执行任务的构件。根据一实施例,任务处理器从任务队列取得任务,依赖适配器、求值器构造器和日志服务执行任务,最后利用通知器发布任务成功通知。
于是,本发明的数据引擎200运行于上述的资源管理平台100上形成如下的结构:
该平台内核包括:
内核插件,内核插件是数据引擎插件和数据引擎工具插件的原始根,包括:
基础扩展点,基础扩展点是供数据引擎插件和数据引擎工具插件使用的接口;
基础扩展者,基础扩展点的接口实现,基础扩展者是可被数据引擎插件和数据引擎工具插件调用的扩展者;
插件系统,内核插件、数据引擎插件和数据引擎工具插件需要向插件系统进行注册,插件系统还保存内核插件、数据引擎插件和数据引擎工具插件之间的关联关系;
数据引擎插件和数据引擎工具插件用于实现:
扩展点,扩展点是一个被命名的接口;
扩展者,扩展点的接口实现;
扩展,扩展点和实现该扩展点接口的扩展者的命名连接;
非内核插件通过实现扩展点、扩展者和扩展来调用可扩展资源管理平台的资源。
本发明中的数据引擎插件提供数据服务,该数据服务包括:活动适配器查询和活动任务管理。
该数据引擎插件202提供的适配器扩展点、求值器构造器扩展点以及通知器扩展点分别用于实现如下的功能:
适配器扩展点用于操作一组定位器指定的资源,每个定位器描述了一个资源的位置;
求值器构造器扩展点用于构造求解表达式的求值器,其中,该扩展点上只允许有一个扩展连接,如果有多个扩展连接了此扩展点,则只有第一个会被该数据引擎使用;
通知器扩展点用于发布传输任务完成的通知,其中,如果有多个通知器扩展连接到此扩展点,则它们会被依次调用。
数据引擎工具插件204提供的传输器扩展、任务记录器扩展以及一组缺省的适配器扩展分别用于实现如下的功能:
传输器扩展用于完成资源管理器定义的一次转换任务;
任务记录器插件记录该数据引擎的日志,其中,缺省的任务记录器将任务日志记录在指定目录的文件,每个任务对应一个日志文件;
一组缺省适配器向该数据引擎工具插件提供并注册了一组常用的适配器扩展。
该任务处理器包括:
任务队列,用于任务排队,当数据引擎工具插件接收到资源管理器的任务后,如果是立即任务,则立即执行任务并将结果返回;如果是后台任务,则传输器会在创建对应的活动任务之后,将此任务放入任务队列排队;
任务执行器,任务处理器从任务队列中取出下一个任务并在后台执行。任务处理器对任务的执行依赖所述适配器扩展点、求值器构造器扩展点以及平台内核的日志服务完成;
任务通知器,任务处理器在任务执行完毕后通知已经注册的通知器。
下面介绍本发明的具体实现。
资源管理平台的实现的基本架构
在本发明中,平台内核(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)。提供扩展点的插件操作扩展者时仅按照扩展点定义的接口操作,而不必关心扩展者的实现或是谁提供了扩展者,从而实现插件功能的透明扩展。
平台内核依赖内核插件对外提供服务。内核本身不关心服务的实现。外部应用或其他插件需要使用服务时,首先按照服务扩展的名字向内核借用服务,使用完成之后将服务归还。
数据引擎
数据引擎(Data Engine)是平台最核心的构件,它负责完成资源转换的操作。每个资源转换的操作称为一个传输任务(Task),数据引擎的功能就是解释并执行任务。每个任务都定义了传输的源(Source)和目标(Target),它们都用定位器(Locator)来描述。数据引擎并不直接操作定位器,而是使用对应的适配器(Adapter)来存取某个定位器指定的资源。数据引擎利用求值器构造器(Evaluator Maker)创建的求值器完成转换过程中必须的表达式(Expression)求值。数据引擎在传输任务执行完毕后,会使用通知器(Notifier)发布任务完毕的通知。数据引擎使用内核插件提供的日志服务(Log Service)记录传输任务的执行过程。
数据引擎由数据引擎插件、数据引擎工具插件和任务处理器组成。
任务(Task)是一次资源转换的操作。数据引擎负责解释并执行任务。每个任务都具有一个唯一的名字,并且具有可选的标题(Title)和描述(Description)。任务规定了转换的输出模式(Output Mode)、转换的可靠度级别(Reliability Level)、转换的簇大小(Cluster Size)、转换的源和目标定位器以及一组目标字段(Field)对应源字段表达式(Expression)的绑定(Binding)。
适配器(Adapter)是数据引擎用于操作定位器(Locator)的扩展者。每个定位器描述了一个资源的位置,而适配器则用于操作这些定位器指定的资源。由于资源的多样性,数据引擎本身并不实现操作这些资源的方法,而是由外部插件提供的适配器完成对资源的操作。
每种资源都有各自的存取方法,具有相同存取方法的资源被叫做具有相同的存取协议(Protocol)。协议由适配器的实现提供。例如,所有利用JDBC DriverManager方式存取的数据源都可以被某个适配器操作,那么这个适配器就可以为此种操作方式定义一个协议。所有遵循此种操作规则的数据源都可以使用具有此协议的定位器来描述。
数据引擎处理某个数据源时,将按照定位器规定的协议查找相应的适配器,然后利用此适配器完成对此资源的存取。
每个适配器可以选择支持三种类型的操作:查询(Query)、添加(Append)和替换(Replace)。例如,一个JDBC适配器可能所有的操作都支持,而一个XML适配器可能将不支持替换操作。支持查询操作的适配器才能被用作源,支持添加或替换操作的适配器才能被用作目标。同时支持添加或替换操作的适配器将支持所有输出模式(Output Mode)的任务。每个适配器都可以选择是否支持事务(Transaction)。支持事务的适配器可以用于完成较高可靠度级别(Reliability Level)的任务,而不支持事务的适配器只能用于完成较低可靠度级别的任务。
求值器构造器(Evaluator Maker)用于构造求解表达式(Expression)的求值器(Evaluator)。资源转换的过程中,目标字段往往不是简单地同源字段一一对应,而是源字段经过一定的运算的结果。这样的运算规则称为一个表达式(Expression),而目标字段与某个表达式的对应关系称为绑定(Binding)。
数据引擎执行任务的过程中,需要动态地根据源字段的值,求出目标字段对应的表达式的值,然后送入目标字段。表达式的求值是由数据引擎调用求值器完成的,而求值器构造器的任务就是创建求值器。求值器构造器负责创建两类求值器:规则求值器和映射求值器。
规则求值器(Rule Evaluator)负责求解规则表达式(Rule Expression)的值。规则表达式描述了一个规则(Rule)。一个规则是由规则器(Ruler)的名称和提供给规则器的实参(Parameters)构成的。正如错误!未找到引用源。所述,如果将规则器比作函数,那么一个规则就描述了一次函数的调用。规则求值器负责完成对规则器的调用,并返回结果。
映射求值器(Mapping Evaluator)负责求解映射表达式(MappingExpression)的值。映射表达式描述了一个映射(Mapping)。一个映射是由映射器(Mapper)的名称和提供给映射器的待映射源(Source)构成的。映射求值器的功能完全类似规则求值器。
数据引擎插件(Data Engine)是数据引擎的核心插件。它对外提供数据服务(Data Service),并负责维护适配器、求值器构造器、通知器以及活动任务。
数据服务(Data Service)是数据引擎对外开放的服务接口,它扩展了内核的服务扩展点。数据服务主要包括:活动适配器查询、活动任务管理、适配器扩展点。
活动适配器(Active Adapter)是指已经连接到数据引擎适配器扩展点的适配器。活动适配器不同于适配器,它只提供了适配器描述信息(名称、协议、说明等),而并不提供存取定位器的功能。通过查询活动适配器,外部应用就可以知道目前引擎可以支持的定位器协议、任务可靠度级别以及输出模式,从而定义适当的资源转换。
所有提交给引擎执行的任务,引擎都会为其建立相应的活动记录,这称为活动任务(Active Task)。活动任务包含了任务名、任务执行状态、任务执行进度、任务起止时间等信息。引擎通过活动任务来管理对应的任务。活动任务管理包括活动任务查询、活动任务撤销和活动任务删除等功能。活动任务不同于任务,撤销一个活动任务只是将对应任务的状态标记为待撤销,实际任务的撤销需要等待任务处理器(Task Processor)的撤销检查(Cancelling Check)。同样地,活动任务的删除也只是将此活动记录删除,而并不意味着实际任务的撤销。如果一个任务关联的活动任务被删除,那么就无法再查询此任务的状态或是撤销此任务。一个帮助理解任务与活动任务的比喻就是:将任务比作一个运行的线程,而活动任务就是这个线程的控制数据。线程根据自己的状态更新控制数据,并检测控制数据中的撤销位以决定是否撤消。将控制数据的撤销位置位并不会直接导致线程的退出——线程的退出最终是依赖线程自己检测撤销位并自行结束;将控制数据删除也并不会影响线程本身的执行。
如前所述,数据引擎插件本身并不实现任何适配器,而只是定义了适配器扩展点,适配器由其他插件实现。如果需要为数据引擎插件添加新的适配器,只需要将扩展此扩展点的适配器插件注册给内核即可。
数据引擎本身不负责实现表达式的求值,而只是定义了求值器构造器扩展点。此扩展点上只允许有一个扩展连接。如果有多个扩展连接了此扩展点,则只有第一个会被引擎使用。平台缺省的求值器构造器由规则管理器工具插件提供。如果需要为数据引擎指定新的求值器构造器,则需要首先禁用规则管理器工具插件的求值器构造器扩展,然后将提供新的扩展的插件注册给内核。
数据引擎使用通知器发布传输任务完成的通知。通知器仅当一个任务成功执行并且数据传输量不为0时被调用。通知器不是必须的。如果有多个通知器扩展连接到此扩展点,则它们会被依次调用。
数据引擎工具插件(Data Engine Utility)是数据引擎的辅助插件,它依赖于数据引擎插件。数据引擎工具插件完成以下三个功能:一、将数据引擎与资源管理器(Resource Manager)相连,为其提供缺省的传输器(Transferrer);二、向内核注册缺省的任务记录器(Task Logger),以完成任务的日志记录功能;三、为数据引擎插件提供一组缺省的适配器。
传输器(Transferrer)是资源管理器定义的用于执行传输任务的扩展点接口。传输器负责完成资源管理器定义的一次转换任务。数据引擎工具插件向内核注册了一个传输器的扩展,从而将数据引擎与资源管理器有机地结合起来。数据引擎工具插件提供的传输器支持立即任务和后台任务。立即任务直接由数据引擎工具插件配合Instant Adapter完成,而后台任务则交由任务处理器(Task Processor)完成。由于立即任务不会交付任务处理器处理,因此立即任务将没有任务日志和活动任务。
任务记录器(Task Logger)是内核记录器(Logger)扩展点接口的一个实现。它只记录数据引擎的日志,而不处理来自其他发起者(Originator)的日志。缺省的任务记录器将任务日志记录在指定目录的文件,每个任务对应一个日志文件。可以配置任务记录器使得其只保留含有警告或错误信息的日志文件,而不保留成功完成的任务日志。活动任务(Active Task)只能描述当前任务的状态,而任务日志则会记录完整的任务执行过程。可以禁用缺省任务记录器。也可以向内核注册新的记录器扩展以完成任务日志的记录。
数据引擎工具插件提供并注册了一组常用的适配器扩展,以方便应用的开发。这包括:一、Instant适配器,用于内部处理立即任务,不对外使用;二、Driver适配器,用于以JDBC DriverManager的方式存取数据源;三、DataSource适配器,用于以JDBC DataSource的方式存取数据源;四、MQ适配器,用于存取以消息队列为传输载体并符合一定规范的消息型数据源;五、XML适配器,用于存取以XML文档形式存在并符合一定规范的文档型数据源。
任务处理器(Task Processor)是数据引擎用于执行任务的构件。任务处理器本身并不是一个插件。
任务队列(Task Queue)是引擎用于任务排队的队列。当数据引擎工具插件的传输器接收到资源管理器的任务后,如果是立即任务(InstantTask),则传输器立即执行任务并将结果返回;如果是后台任务(Background Task),则传输器会在创建了对应的活动任务(Active Task)之后,将此任务放入任务队列排队。一个正在排队的任务可以被撤销。
任务处理器负责从任务队列中取出下一个任务并在后台执行。任务处理器对任务的执行依赖适配器、求值器构造器以及内核的日志服务完成。任务处理器执行任务的过程中,会按照任务进度更新对应的活动任务,并在每执行到指定的簇大小(Cluster Size)时检测活动任务的撤销标记以中止任务。如果对应的活动任务已经删除,则任务处理器不会更新活动任务,并且不会进行撤销检查。任务处理器可以启动多个实例并发执行。
任务处理器负责在任务执行完毕后通知已经注册的通知器。通知器只有当任务成功完成并且数据传输量不为0的情况下被调用。立即任务的完成通知也是由任务处理器在后台完成的。
采用本发明的技术方案,提供了一种数据引擎,能用作资源管理平台最核心的构件,负责完成资源转换的操作,为建立有效的资源管理提供了基础。
Claims (8)
1.一种资源管理平台中的数据引擎,其特征在于,该数据引擎以插件的形式运行于资源管理平台的一平台内核上,所述平台内核向所述以插件形式运行的数据引擎提供调用资源并管理所述数据引擎,其中,所述数据引擎包括:
数据引擎插件,提供数据服务,并维护一适配器、一求值器构造器、一通知器以及一活动任务;
数据引擎工具插件,将该数据引擎与资源管理器相连,为其提供缺省的传输器;注册缺省的任务记录器以完成日志服务;为数据引擎插件提供一组缺省的适配器;
任务处理器,是该数据引擎用于执行任务的构件。
2.如权利要求1所述的数据引擎,其特征在于,
所述数据引擎插件提供适配器扩展点、求值器构造器扩展点以及通知器扩展点,其中,该适配器扩展点、求值器构造器扩展点以及通知器扩展点都是被命名的接口,该数据引擎插件还提供数据服务扩展,该数据服务扩展是命名连接;
所述数据引擎工具插件提供传输器扩展、任务记录器扩展以及一组缺省的适配器扩展,该传输器扩展、任务记录器扩展以及一组缺省的适配器扩展是命名连接。
3.如权利要求1所述的数据引擎,其特征在于,
所述任务处理器从任务队列取得任务,依赖适配器、求值器构造器和日志服务执行任务,最后利用通知器发布任务成功通知。
4.如权利要求2或3所述的数据引擎,其特征在于,所述平台内核包括:
内核插件,所述内核插件是所述数据引擎插件和数据引擎工具插件的原始根,包括:
基础扩展点,基础扩展点是供数据引擎插件和数据引擎工具插件使用的接口;
基础扩展者,基础扩展点的接口实现,基础扩展者是可被数据引擎插件和数据引擎工具插件调用的扩展者;
插件系统,内核插件、数据引擎插件和数据引擎工具插件需要向插件系统进行注册,插件系统还保存内核插件、数据引擎插件和数据引擎工具插件之间的关联关系;
所述的数据引擎插件和数据引擎工具插件用于实现:
扩展点,扩展点是一个被命名的接口;
扩展者,所述扩展点的接口实现;
扩展,所述扩展点和实现该扩展点接口的扩展者的命名连接;
所述非内核插件通过实现扩展点、扩展者和扩展来调用可扩展资源管理平台的资源。
5.如权利要求4所述的数据引擎,其特征在于,所述数据引擎插件提供数据服务,所述数据服务包括:
活动适配器查询和活动任务管理。
6.如权利要求4所述的数据引擎,其特征在于,
适配器扩展点用于操作一组定位器指定的资源,每个定位器描述了一个资源的位置;
求值器构造器扩展点用于构造求解表达式的求值器,其中,该扩展点上只允许有一个扩展连接,如果有多个扩展连接了此扩展点,则只有第一个会被该数据引擎使用;
通知器扩展点用于发布传输任务完成的通知,其中,如果有多个通知器扩展连接到此扩展点,则它们会被依次调用。
7.如权利要求4所述的数据引擎,其特征在于,
所述传输器扩展用于完成资源管理器定义的一次转换任务;
所述任务记录器插件记录该数据引擎的日志,其中,缺省的任务记录器将任务日志记录在指定目录的文件,每个任务对应一个日志文件;
所述一组缺省适配器向该数据引擎工具插件提供并注册了一组常用的适配器扩展。
8.如权利要求4所述的数据引擎,其特征在于,所述任务处理器包括:
任务队列,用于任务排队,当数据引擎工具插件接收到资源管理器的任务后,如果是立即任务,则立即执行任务并将结果返回;如果是后台任务,则传输器会在创建对应的活动任务之后,将此任务放入任务队列排队;
任务执行器,任务处理器从任务队列中取出下一个任务并在后台执行。任务处理器对任务的执行依赖所述适配器扩展点、求值器构造器扩展点以及平台内核的日志服务完成;
任务通知器,任务处理器在任务执行完毕后通知已经注册的通知器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200710042005 CN101075190A (zh) | 2007-06-14 | 2007-06-14 | 资源管理平台中的数据引擎 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200710042005 CN101075190A (zh) | 2007-06-14 | 2007-06-14 | 资源管理平台中的数据引擎 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101075190A true CN101075190A (zh) | 2007-11-21 |
Family
ID=38976257
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200710042005 Pending CN101075190A (zh) | 2007-06-14 | 2007-06-14 | 资源管理平台中的数据引擎 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101075190A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107315638A (zh) * | 2016-04-26 | 2017-11-03 | 北京京东尚科信息技术有限公司 | 一种b/s系统及其工作方法 |
CN107528713A (zh) * | 2016-06-22 | 2017-12-29 | 腾讯科技(深圳)有限公司 | 一种数据转移sdk的升级方法及装置 |
CN109298851A (zh) * | 2018-07-25 | 2019-02-01 | 中国电子科技集团公司第二十九研究所 | 一种OSGi异构软件框架的扩展机制适配方法 |
CN109614167A (zh) * | 2018-12-07 | 2019-04-12 | 杭州数澜科技有限公司 | 一种管理插件的方法和系统 |
-
2007
- 2007-06-14 CN CN 200710042005 patent/CN101075190A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107315638A (zh) * | 2016-04-26 | 2017-11-03 | 北京京东尚科信息技术有限公司 | 一种b/s系统及其工作方法 |
CN107315638B (zh) * | 2016-04-26 | 2021-04-30 | 北京京东尚科信息技术有限公司 | B/s系统、方法、计算机系统及计算机可读存储介质 |
CN107528713A (zh) * | 2016-06-22 | 2017-12-29 | 腾讯科技(深圳)有限公司 | 一种数据转移sdk的升级方法及装置 |
CN107528713B (zh) * | 2016-06-22 | 2019-01-11 | 腾讯科技(深圳)有限公司 | 一种数据转移sdk的升级方法及装置 |
CN109298851A (zh) * | 2018-07-25 | 2019-02-01 | 中国电子科技集团公司第二十九研究所 | 一种OSGi异构软件框架的扩展机制适配方法 |
CN109298851B (zh) * | 2018-07-25 | 2021-10-22 | 中国电子科技集团公司第二十九研究所 | 一种OSGi异构软件框架的扩展机制适配方法 |
CN109614167A (zh) * | 2018-12-07 | 2019-04-12 | 杭州数澜科技有限公司 | 一种管理插件的方法和系统 |
CN109614167B (zh) * | 2018-12-07 | 2023-10-20 | 杭州数澜科技有限公司 | 一种管理插件的方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100343803C (zh) | 将个性化计算环境从源平台移植到目标平台的方法和系统 | |
CN1171145C (zh) | 用于自动软件配置的请求调度程序 | |
CN1645330A (zh) | 用于应用程序分布式管理的启用网格的虚拟机的方法和系统 | |
CN1906580A (zh) | 对于具有可移动对象的启用网格的虚拟机的方法和系统 | |
CN1684069A (zh) | 计算机化财务系统的提取、变换和加载设计器模块 | |
CN1722092A (zh) | Vex-虚拟扩展框架 | |
WO2007078461A1 (en) | Multiple concurrent workflow persistence schemes | |
CN1804840A (zh) | 数据访问层类生成器 | |
CN1755683A (zh) | 上下文动作的发布 | |
CN1959640A (zh) | 在软件包管理系统将用户进程表示为软件包的系统和方法 | |
CN1601465A (zh) | 动态注册表分区 | |
CN1858790A (zh) | 用于管理自动化资源提供管理系统的方法和系统 | |
JP2008544400A (ja) | データセントリックワークフロー | |
EP1966688A1 (en) | Object model on workflow | |
CN1832476A (zh) | 动态服务代理 | |
CN1294501C (zh) | 控制系统中装置的控制方法 | |
CN1716249A (zh) | 延迟取出用户定义类型的指定成员的系统和方法 | |
CN1684035A (zh) | 优先级绑定 | |
CN1904837A (zh) | 软件多版本升级的方法及系统 | |
CN1662011A (zh) | 使用元数据定义映射来构建组件应用程序的系统和方法 | |
CN101075190A (zh) | 资源管理平台中的数据引擎 | |
CN1280727C (zh) | 一种人机命令测试方法 | |
CN1258704C (zh) | 基于网格环境的多计算引擎协同方法 | |
CN1306407C (zh) | 为动态提供而自主地自学习资源选择的方法和系统 | |
CN1245685C (zh) | 基于构件的操作系统动态设备驱动的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20071121 |