一种功能构件与数据关联运行方法及系统的制作方法

文档序号:6613849阅读:187来源:国知局

专利名称::一种功能构件与数据关联运行方法及系统的制作方法
技术领域
:本发明关于程序版本管理以及数据生命周期管理技术,特别是关于基于数据历史与程序版本历史的功能模块及其数据环境进行统一运行管理的技术,具体的讲是一种功能构件与数据关联运行方法及系统。
背景技术
:在现有技术中,大型企业的计算机应用系统的软件体系结构和功能十分复杂,一般会经过多个持续改进的过程,存在多个升级版本。而应用系统中的数据结构和数据是与某个特定版本相匹配的,随着版本的更替和升级,应用系统的日趋复杂,功能开发和改进之前,必须研究现有应用系统及其数据环境,分析新功能对于历史数据环境的影响。进一步讲,如果版本升级牵涉到较多的数据结构改变及数据移行,那么必须长时间地中断联机服务,这将严重地影响公司的业务运行。另外,现有技术中的某个功能构件往往应用在多个不同的计算机应用系统中。如果该功能构件与特定的数据相关,那么在功能改进时,随之带来功能构件的兼容性和应用系统被动升级的问题。为了解决上述现有技术的问题,现有技术提出了数据仓库的概念,所谓数据仓库是指面向主题的、集成的、与时间相关的、不可修改的数据集合。数据仓库中的数据需要长期的积累,进入数据仓库的数据需保持稳定性。但该稳定性在现有技术中很难达到。为了解决上述现有技术的问题,现有技术提出了一种面向功能构件的应用系统建立方法。该功能构件是面向构件的架构中的基本组成元素和基本构建单位,也是具体实现业务逻辑的单元。在上述构件中,"构"就是要有组装能力,即可组装性;"件"就是要自成一体,具备一定的功能。传统的应用系统是由若干子系统组成的,而每个独立子系统又是由若干业务模块组成的。而在基于面向构件开发的过程中,功能构件使传统的子系统由一个个相对独立自治的功能构件组装而成。面向构件的应用架构的应用开发是建立在已有丰富构件库资源的基础上的。可见,面向构件的架构提供了一种将现有的和将来要开发的功能服务在组织上整合的手段,而数据仓库提供了一种将数据资源统一管理和使用的手段。但是目前两种概念并不能相互兼容,具体体现在面向构件的构架并不强调对于历史数据的整合利用,而数据仓库则几乎无法适应应用系统的更新所带来的数据变化。中国专利申请200610052229.5公开了一种嵌入式系统基于功能构件化的实现方法,该专利申请所公开的内容合并于此,以作为本发明的现有技术。
发明内容本发明提出一种功能构件与数据关联运行方法及系统解决了上述技术问题。一种功能构件与数据关联运行方法及系统通过保存功能构件的历史,以及功能构件与数据的自动匹配,从而在流程中,做到与数据相结合,不受时间维度的约束,根据需要,方便地取得所需要的功能构件,无论使用哪个版本的功能构件,都能找到其对应的实际数据,从而做到真正灵活而可靠。本发明提出一种功能构件与数据关联运行方法,所述的方法包括将功能构件标识与数据构件标识之间的映射关系存储于第一关联表中;将功能构件标识、功能构件对象以及功能构件对象版本日期之间的映射关系存储于第二关联表中.,将数据构件标识、数据标识以及数据日期之间的映射关系存储于第三关联表中;将数据标识和数据名称之间的映射关系存储于第四关联表中;其中,所述方法执行以下步骤接收包含功能构件标识、请求标识和数据日期的数据服务请求;根据所述的数据日期在第二关联表中找到对应的功能构件对象版本日期,再根据功能构件标识获取对应的功能构件对象;根据所述的功能构件标识在第一关联表中获取对应的数据构件标识;根据所述的数据日期和获取的数据构件标识在第三关联表中获取对应的数据标识;根据获取的数据标识在第四关联表中获取对应的数据名称,再根据数据名称获取对应的数据表;将获取的数据表与获取的功能构件对象根据所述的请求标识组合形成可执行构件;执行所述的可执行构件,返回请求的服务数据。本发明提出一种功能构件与数据关联运行系统,其特征是,所述的系统包括关联表存储单元,用于存储功能构件标识与数据构件标识之间的映射关系,功能构件标识、功能构件名称、功能构件对象以及功能构件对象版本日期之间的映射关系,数据构件标识、数据构件名称、数据标识以及数据日期之间的映射关系,数据标识和数据名称之间的映射关系;数据请求接收单元,用于接收包含功能构件标识、请求标识和数据日期的数据服务请求;功能构件对象获取单元,用于根据所述的数据日期在关联表存储单元中找到对应的功能构件对象版本日期,再根据功能构件标识获取对应的功能构件对象;数据构件标识获取单元,用于根据所述的功能构件标识在关联表存储单元中获取对应的数据构件标识;数据标识获取单元,用于根据所述的数据日期和获取的数据构件标识在关联表存储单元中获取对应的数据标识;数据表获取单元,用于根据获取的数据标识在关联表存储单元中获取对应的数据名称,再根据数据名称获取对应的数据表;可执行构件生成单元,用于将获取的数据表与获取的功能构件对象根据所述的请求标识组合形成可执行构件;服务数据输出单元,用于执行所述的可执行构件,返回请求的服务数据。本发明针对目前信息系统发展普遍所遇到的新功能如何与老的功能相适应的问题,以及历史数据的变化如何与功能变迁相适应的问题,从根本上突破了已有应用系统开发过程中遇到的开发周期长,开发和维护成本上升的问题,提供了一种将应用系统中多个功能版本与历史数据之间进行自动、高效、统一管理的运行体系架构。图1是本发明一种功能构件与数据关联运行方法流程图2是本发明一种功能构件与数据关联运行系统结构图3为本发明的系统组成结构图4是构件支持单元的组成结构图5是构件运行单元的组成结构图6是总线单元的组成结构图7为本发明的方法的工作过程流程图8-图11为本发明的元数据表;图12所示为变更前的客户信息表;图13所示为变更后的客户信息表;图14为本发明实施例的功能构件元数据表;图15为本发明实施例的数据构件元数据表;图16为本发明实施例的数据描述元数据表;图17为本发明实施例的功能数据元数据表;图18为本发明实施例的不同请求列表;图19为本发明实施例的工作流程图。具体实施例方式下面结合实施例和附图来说明本发明。图1是本发明一种功能构件与数据关联运行方法流程图,如图1所示,其方法具体步骤如下步骤301,将功能构件标识与数据构件标识之间的映射关系存储于第一关联表中;步骤302,将功能构件标识、功能构件对象以及功能构件对象版本日期之间的映射关系存储于第二关联表中;步骤303,将数据构件标识、数据标识以及数据日期之间的映射关系存储于第三关联表中;步骤304,将数据标识和数据名称之间的映射关系存储于第四关联表中;步骤305,接收包含功能构件标识、请求标识和数据日期的数据服务请求;步骤306,根据所述的数据日期在第二关联表中找到对应的功能构件对象版本日期,再根据功能构件标识获取对应的功能构件对象;步骤307,根据所述的功能构件标识在第一关联表中获取对应的数据构件标识;步骤308,根据所述的数据日期和获取的数据构件标识在第三关联表中获取对应的数据标识;步骤309,根据获取的数据标识在第四关联表中获取对应的数据名称,再根据数据名称获取对应的数据表;步骤310,将获取的数据表与获取的功能构件对象根据所述的请求标识组合形成可执行构件;步骤311,执行所述的可执行构件,返回请求的服务数据。图2是本发明一种功能构件与数据关联运行系统结构图,如图2所示,本发明所提供的系统包括关联表存储单元401,用于存储功能构件标识与数据构件标识之间的映射关系,功能构件标识、功能构件名称、功能构件对象以及功能构件对象版本日期之间的映射关系,数据构件标识、数据构件名称、数据标识以及数据日期之间的映射关系,数据标识和数据名称之间的映射关系;数据请求接收单元402,用于接收包含功能构件标识、请求标识和数据日期的数据服务请求;功能构件对象获取单元403,用于根据所述的数据日期在关联表存储单元中找到对应的功能构件对象版本日期,再根据功能构件标识获取对应的功能构件对象;数据构件标识获取单元404,用于根据所述的功能构件标识在关联表存储单元中获取对应的数据构件标识;数据标识获取单元405,用于根据所述的数据日期和获取的数据构件标识在关联表存储单元中获取对应的数据标识;数据表获取单元406,用于根据获取的数据标识在关联表存储单元中获取对应的数据名称,再根据数据名称获取对应的数据表;可执行构件生成单元407,用于将获取的数据表与获取的功能构件对象根据所述的请求标识组合形成可执行构件;服务数据输出单元408,用于执行所述的可执行构件,返回请求的服务数据。图3是本发明系统的一实施例组成结构图,包括构件支持单元IOI、构件运行单元102和总线单元103。如图3所示,构件支持单元101与构件运行单元102是通过总线单元103传输数据的。外部系统通过总线单元103提交服务请求,总线单元103将所述服务请求传输给构件支持单元101。构件支持单元101在接收到总线单元103传输过来的服务请求后,所述服务请求包含有服务请求ID和数据日期,通过所述服务请求ID和数据日期找到其对应的所有功能构件及每个功能构件对应的功能构件对象、数据构件标识、数据标识、数据表,然后通过总线单元103传输给构件运行单元102。构件运行单元102通过总线单元103接收所述服务请求ID和数据日期对应的所有功能构件、功能构件对象和数据构件标识、数据标识、数据表,按照业务流程将它们装配成可执行的指令,并运行。最后,通过总线单元103将执行结果反馈给外部系统。总线单元103起着连接构件运行单元102和构件支持单元101的作用,所述的构件运行单元102和构件支持单元101通过总线单元103进行数据、构件和各种控制命令的传输。图4是构件支持单元101的组成结构图,如图4所示构件支持单元101进一步包括功能构件引擎单元104、功能构件存储单元105、数据构件引擎单元106、数据构件存储单元107、控制引擎单元108和元数据存储单元109。图5是构件运行单元102的组成结构图,如图5所示构件运行单元102进一步包括构件装配单元110、构件执行单元111和结果存储单元112。图6是总线单元103的组成结构图,如图6所示总线单元103进一步包括构件总线113、控制总线114和接口总线115。控制引擎单元108相当于图2中的数据请求接收单元402,其负责服务请求解析,在接受到接口总线115传输过来的服务请求后,从所述服务请求中解析得到服务请求IR所述服务请求涉及的所有功能构件编号和请求数据曰期,由功能构件引擎单元104和数据构件引擎单元106根据所述服务请求ID、涉及的所有功能构件编号和请求数据日期在元数据存储单元109中查找所有功能构件标识及每个功能构件标识对应的功能构件对象、数据构件标识、数据标识、数据表,然后通过构件总线113传输给构件运行单元102。并接受从构件执行单元111通过控制总线114反馈的所述服务请求ID的运行状态信息,如果所述服务请求运行状态正常,则通过接口总线115从结果存储单元112中根据服务请求ID取得运行结果,并根据服务请求ID通过接口总线115将运行结果反馈给外部系统。功能构件引擎单元104相当于图2中的功能构件对象获取单元403,其在接受到控制引擎单元108通过控制总线114传输来的服务请求IEk请求曰期和功能构件标识后,在功能构件存储单元105中根据请求日期和功能构件标识匹配相应版本的功能构件对象,并反馈给控制引擎单元108。功能构件存储单元105是系统中功能构件的具体执行对象的存储库,功能构件引擎单元104通过请求日期和构件标识来定位查找相应版本的执行对象。为了记录同一功能构件的在不同历史时期的演变过程,功能构件存储单元要保存执行对象的以下要素构件标识、构件名称、执行对象名、执行对象保存路径、有效起始日期、有效截止日期。数据构件引擎单元106相当于图2中的数据构件标识获取单元404、数据标识获取单元405和数据名称获取单元406,其首先根据功能构件标识和请求数据日期在功能数据关联表中找到对应的数据构件标识,再根据数据构件标识在数据构件存储单元107中査找数据构件标识、数据标识、数据表,并反馈给控制引擎单元108。数据构件存储单元107是系统中数据构件的具体执行程序的存储库。为了记录同一数据构件在不同历史时期的演变过程,数据构件存储单元要保存以下要素构件标识、构件名称、数据接口类型、数据库连接字符、存储过程名、数据标识、有效起始日期、有效截止日期。元数据存储单元109相当于图2中的关联表存储单元401,其为了保障支撑架构的正常运转,保存大量元数据信息。一方面为了记录数据构件和功能构件的演变历史信息,保存构件元数据;一方面为了驱动各模块的运转,保存了一些关联关系元数据。如图8-图11给出的关联表存储单元401所包括的第一至第四关联表,出于叙述简洁性考虑,仅保留最必需信息作为示例,但注意元数据信息必需保留有效时间段信息,即保存元数据的变化历史。构件装配单元110相当于图2中的可执行构件生成单元407,将所述服务请求ID和数据日期对应的所有功能构件、功能构件对象和数据构件标识、数据标识、数据表,按照业务流程装配成可执行的构件指令,并传输给构件执行单元111。'构件执行单元111相当于图2中的服务数据输出单元408,接受到构件装配单元110传输过来的可执行的构件指令,进行运行处理,将运行结果保存到结果存储单元112,并通过控制总线114将所述服务请求ID的运行状态(正常/失败)反馈给控制引擎单元108,通过接口总线115将服务请求的运行结果反馈给外部系统或者用户。结果存储单元112是存放构件执行结果的内存区域,一方面是用于请求结果的缓存,一方面是用于保存请求的过程信息。构件总线113用于在构件支持单元101和构件运行单元102之间进行构件信息的交换。控制总线114用于在构件支持单元101和构件运行单元102之间进行各种控制指令和元数据信息交换。接口总线115是系统内部各模块之间数据信息交互,以及本系统与外部系统或者外部用户之间进行请求和结果交互的入口。图7是一种功能构件与数据关联运行方法的工作过程流程图,其具体步骤如下步骤201:外部系统或者用户提交服务请求,接口总线115接受所述服务请求以后,传输该服务请求给控制引擎单元108。步骤202:控制引擎单元108在接受到接口总线115传输过来的服务请求后,从所述服务请求中解析得到服务请求ID、所述服务请求涉及的所有功能构件编号和请求数据日期。步骤203:功能构件引擎单元104根据所述服务请求ID涉及的所有功能构件编号和请求数据日期在元数据存储单元109、功能构件存储单元105中査找所有功能构件标识及每个功能构件标识对应的功能构件对象,并反馈给控制引擎单元108。步骤204:数据构件引擎单元106根据所述服务请求ID涉及的所有功能构件标识和请求数据日期在元数据存储单元109、数据构件存储单元107中查找所有功能构件标识对应的数据构件标识、数据标识、数据表,并反馈给控制引擎单元108。步骤205:控制引擎单元108将所述服务请求ID涉及的所有功能构件标识及每个功能构件标识对应的功能构件对象、数据构件标识、数据标识和数据表通过构件总线113传输给构件运行单元102。步骤206:构件装配单元110将接受到的所述服务请求ID和数据日期对应的所有功能构件、功能构件对象和数据构件标识、数据标识和数据表,按照业务流程装配成可执行的构件指令,并传输给构件执行单元111。步骤207:构件执行单元111接受到构件装配单元110传输过来的可执行的构件指令,进行运行处理,将运行结果保存到结果存储单元112,并通过控制总线114将所述服务请求ID的运行状态(正常/失败)反馈给控制引擎单元108,通过接口总线115将服务请求的运行结果反馈给外部系统或者用户。下面根据一个客户信息维护应用系统来说明本发明的使用过程,在本发明的实施例1-7中,引用提供了对客户信息的增、册U、改、査四种功能。该应用随着业务发展的需求,客户信息表发生变更,增加"是否VIP(IsVIP)"这个要素,随后又对查询功能构件进行修改,增加了显示"是否VIP(IsVIP)"要素的功能。图12所示的客户信息表1是变更前的客户信息存储结构。图13所示的客户信息表2是变更后,增加了"是否VIP(IsVIP)"的客户信息存储结构。具体的例子如下。如图14-图17给出了本实施例应用运行所需的各关联表的信息,从描述简洁性考虑,对表结构的一些信息进行了简化。图14所示功能构件元数据表中给出了4个功能构件的元数据信息。其中功能构件对象,在此处简化为对象名,在实际的系统中,应该是类名(艮卩classpath)形如com.icbc.custinfo.Query.class,com.icbc.custinfo.NewQuery,class。图15所不数据构件元数据表给出了数据构件的元数据信I^图16所示数据描述元数据表中给出了2个数据标识的元数据信息。针对本实施例,我们简化了数据描述元数据表,只针对数据类型为数据库表的情况进行说明,在实际的系统中,数据类型可以是多样的,如视图、临时表,甚至是一段存储过程的运行结果。图17所示功能数据元数据表给出了功能构件和数据构件的关联信息。本实施例应用中的四个功能构件,提供四种用户操作的请求,考虑数据变更情况,即操作不同时期的数据,可以具体分为7种情况,如图18所示。为了说明本方案中,数据和功能在变更之后,系统是如何适应变更,具体如何运行的,以下针对四种请求的执行情况进行分析,来说明本发明。由于本实施例的关键在于如何在数据和功能发生变更之后,仍旧可以根据元数据信息找到相应版本的内容,所以在以下说明过程中,为了简化说明过程,我们只针对各服务请求的解析经过和结果进行了说明,其中的一些中间结果不再叙述。实施例1用户的服务请求R1是增加客户请求,即往客户信息表中增加客户记录。增加客户记录的操作只能是在最新版本的数据构件和功能构件上进行,也就是在变更之后的操作。在本实施例中,如图19所示,Rl请求处理过程如下1001.用户发送服务请求到系统。请求内容如下;<table>tableseeoriginaldocumentpage15</column></row><table>1002.接口总线115接收到用户的服务请求,将请求转发至控制引擎单元108;1003.控制引擎单元108解析服务请求后,根据服务请求中的功能构件标识和请求数据日期在元数据存储单元109中査找功能构件和数据构件;1)根据请求中的功能构件标识(F2)和请求数据日期(2007-03-25)在元数据存储单元109的功能构件元数据表中找到相应时间段的版本的功能构件。如果请求数据日期未给出,则默认为当前数据日期;<table>tableseeoriginaldocumentpage15</column></row><table>2)控制引擎单元108再根据请求中的功能构件标识在元数据存储单元109的功能数据关联表中找到相对应的数据构件标识;<table>tableseeoriginaldocumentpage15</column></row><table>1004.控制引擎单元108将找到的功能构件标识传递给功能构件引擎单元104,功能构件引擎根据功能构件标识从功能构件存储单元105中找出相应版本的功能构件,即功能构件对象(Add);1005.功能构件引擎单元104将找到的功能构件通过构件总线113传递构件装配单元IIO。在本实施例中为如下形式;<table>tableseeoriginaldocumentpage16</column></row><table>1006.控制引擎单元108将找到的数据构件标识传递给数据构件引擎单元106,数据构件引擎单元106根据数据构件标识在元数据存储单元109的数据构件元数据表中找到相应时间段的版本的数据构件,以及数据标识;<table>tableseeoriginaldocumentpage16</column></row><table>1007.数据构件引擎单元106根据数据标识在元数据存储单元109的数据描述元数据表中找到相应的数据表。并将数据表的信息与数据构件的信息组合在一起。在本实施例中内容如下;<table>tableseeoriginaldocumentpage16</column></row><table>1008.数据构件引擎单元106将找到的数据构件通过构件总线113传递构件装配单元110。在本实施例中内容如下;<table>tableseeoriginaldocumentpage16</column></row><table>1009.构件装配单元110将接收到的功能构件和数据构件根据请求标识装配在一起形成可执行的构件。在本实施例中为如下形式;<table>tableseeoriginaldocumentpage16</column></row><table>1010.构件装配单元IIO将装配好的构件传送给构件执行单元111;1011.控制引擎单元108通过控制总线114,将构件执行的请求命令发送给构件执行单元lll;1012.构件执行单元111接受到命令后,根据命令中的请求标识,调用构件中给出的功能构件对象,并将数据表和数据日期参数传递给功能构件对象,调用执行构件;1013.构件执行单元111执行功能构件对象完毕,将执行结果存放在结果存储单元112,接口总线115从结果存储单元112根据请求标识取得结果,返回用户。在本实施例中,Rl请求经过处理后,即往表T—CUSTJNFO—2中插入一条客户信息记录。在本发明的另一实施例中,用户服务请求R6、R7是查询请求,即按照给定的客户标识在客户信息表中查询客户记录。出于简洁性考虑,此处省略了所必需的客户标识参数,但假定R6、R7请求所查询的两条客户信息分别为2004-03-01日和2007-01-01日进入数据库的,即分别在T—CUST—INFO—1和T—CUST—INFO—2中。实施例2在本实施例中,查询请求R6所查询的客户信息为2004-03-01日进入数据库的,即记录在T—CUST—INFO—1中,其处理过程如下l.用户发送服务请求到系统。请求内容如下;构件标识请求ID数据日期FlR62004-03-012.接口总线115接收到用户的服务请求,将请求转发至控制引擎单元108;3.控制引擎单元108解析服务请求后,根据服务请求中的功能构件标识和请求数据日期在元数据存储单元109中查找功能构件和数据构件;1)根据请求中的功能构件标识(Fl)和请求数据日期(2004-03-01)在元数据存储单元109的功能构件元数据表中找到相应时间段的版本的功能构件。如果请求数据日期未给出,则默认为当前数据日期;<table>tableseeoriginaldocumentpage18</column></row><table>2)控制引擎单元108再根据请求中的功能构件标识在元数据存储单元109的功能数据关联表中找到相对应的数据构件标识;<table>tableseeoriginaldocumentpage18</column></row><table>4.控制引擎单元108将找到的功能构件标识传递给功能构件引擎单元104,功能构件引擎根据功能构件标识从功能构件存储单元105中找出相应版本的功能构件,即功能构件对象(Query);5.功能构件引擎单元104将找到的功能构件通过构件总线113传递构件装配单元IIO。在本实施例中为如下形式;<table>tableseeoriginaldocumentpage18</column></row><table>6.控制引擎单元108将找到的数据构件标识传递给数据构件引擎单元106,数据构件引擎单元106根据数据构件标识在元数据存储单元109的数据构件元数据表中找到相应时间段的版本的数据构件,以及数据标识;<table>tableseeoriginaldocumentpage18</column></row><table>7.数据构件引擎单元106根据数据标识在元数据存储单元109的数据描18述元数据表中找到相应的数据表。并将数据表的信息与数据构件的信息组合在一起。在本实施例中内容如下;数据构件数据标识数据表数据曰期ClDlT—CUST—INFO—12004-03-018.数据构件引擎单元106将找到的数据构件通过构件总线113传递构件装配单元110。在本实施例中内容如下;请求数据构件数据标识数据表数据日期R6ClDlT—CUST—INFO—12004-03-019.构件装配单元110将接收到的功能构件和数据构件根据请求标识装配在一起形成可执行的构件。在本实施例中为如下形式;请求功能构件对象数据构件数据标识数据表数据日期R6QueryClDlT一CUST—INFO—12004-03-0110.构件装配单元110将装配好的构件传送给构件执行单元111;11.控制引擎单元108通过控制总线114,将构件执行的请求命令发送给构件执行单元lll;12.构件执行单元111接受到命令后,根据命令中的请求标识,调用构件中给出的功能构件对象,并将数据表和数据日期参数传递给功能构件对象,调用执行构件;13.构件执行单元111执行功能构件对象完毕,将执行结果存放在结果存储单元112,接口总线115从结果存储单元112根据请求标识取得结果,返回用户。在本实施例中,R6请求经过处理后,即从表T—CUST—INFO—1中查询出相应客户标识的客户信息记录。实施例3在本实施例中,查询请求R7所查询的客户信息为2007-01-01日进入数据库的,即记录在T—CUST—INFO一2中,其处理过程如下:l.用户发送服务请求到系统。请求内容如下;<table>tableseeoriginaldocumentpage20</column></row><table>2.接口总线115接收到用户的服务请求,将请求转发至控制引擎单元108;3.控制引擎单元108解析服务请求后,根据服务请求中的功能构件标识和请求数据日期在元数据存储单元109中査找功能构件和数据构件;1)根据请求中的功能构件标识(Fl)和请求数据日期(2007-01-01)在元数据存储单元109的功能构件元数据表中找到相应时间段的版本的功能构件。如果请求数据日期未给出,则默认为当前数据日期;<table>tableseeoriginaldocumentpage20</column></row><table>2)控制引擎单元108再根据请求中的功能构件标识在元数据存储单元109的功能数据关联表中找到相对应的数据构件标识;<table>tableseeoriginaldocumentpage20</column></row><table>4.控制引擎单元108将找到的功能构件标识传递给功能构件引擎单元104,功能构件引擎根据功能构件标识从功能构件存储单元105中找出相应版本的功能构件,即功能构件对象(NewQuery);5.功能构件引擎单元104将找到的功能构件通过构件总线113传递构件装配单元IIO。在本实施例中为如下形式;<table>tableseeoriginaldocumentpage21</column></row><table>6.控制引擎单元108将找到的数据构件标识传递给数据构件引擎单元106,数据构件引擎单元106根据数据构件标识在元数据存储单元109的数据构件元数据表中找到相应时间段的版本的数据构件,以及数据标识;<table>tableseeoriginaldocumentpage21</column></row><table>7数据构件引擎但愿没106根据数据标识在元数据存储单元109的数据描述元数据表中找到相应的数据表。并将数据表的信息与数据构件的信息组合在一起。在本实施例中内容如下;<table>tableseeoriginaldocumentpage21</column></row><table>8.数据构件引擎单元106将找到的数据构件通过构件总线113传递构件装配单元110。在本实施例中内容如下;<table>tableseeoriginaldocumentpage21</column></row><table>9.构件装配单元110将接收到的功能构件和数据构件根据请求标识装配在一起形成可执行的构件。在本实施例中为如下形式;<table>tableseeoriginaldocumentpage21</column></row><table>10.构件装配单元110将装配好的构件传送给构件执行单元111;200710177772.2说明书第18/30页11.控制引擎单元108通过控制总线114,将构件执行的请求命令发送给构件执行单元lll;12.构件执行单元111接受到命令后,根据命令中的请求标识,调用构件中给出的功能构件对象,并将数据表和数据日期参数传递给功能构件对象,调用执行构件;13.构件执行单元111执行功能构件对象完毕,将执行结果存放在结果存储单元112,接口总线115从结果存储单元112根据请求标识取得结果,返回用户。在本实施例中,R7请求经过处理后,即从表T—CUSTJNFO—2中査询出相应客户标识的客户信息记录。在本发明的另一实施例中,需要说明的是,如果未给出数据日期,那么R6、R7查询请求在解析过程中会找到功能构件对应于两个客户信息表,即得到如下结果<table>tableseeoriginaldocumentpage22</column></row><table>但在相应的查询请求具体执行后,得到如下结果:<table>tableseeoriginaldocumentpage22</column></row><table>对于R6请求是在T—CUSTJNPO—1中找到了给定客户标识的客户信息记录;而R7请求是在T一CUST一INFO一2中找到了给定客户标识的客户信息记录,并且是按照NewQuery的功能展现信息,即为用户展现所查询客户的IsVIP信息。需要注意的是,按照上述的操作,每次定位客户信息,将会对多张表进行检索,如果客户信息表进行过多次变更,并且数据较多时,必然会带来检索效率问题。为此,在实际的应用中,我们可以创建一个索引表,存储客户标识与数据标识的对应关系,通过检索该表,可以直接按照客户标识到对应数据标识的表中检索具体的客户信息记录,从而提高检索效率。从上面的执行过程我们可以看到,本实施例中数据结构的变动并未对应用的功能造成任何影响,而应用功能的扩展也无需进行数据移行操作。通过元数据可以很方便的找到任何时间点,所应该使用的功能构件和数据构件,以及二者之间的对应关系。在本发明的另一实施例中,R2、R3删除请求即按照给定的客户标识删除客户信息表中的客户记录。出于简洁性考虑,此处省略了删除动作所必需的客户标识参数。删除请求其实是査询定位操作与删除操作的结合,即先在数据库表中找到相应的记录,然后删除。本实施例中也假定待删除的两条客户信息分别为2004-03-01日和2007-01-01日进入数据库的,即分别在T—CUST—INFO—1和T—CUST—INFO—2中。实施例4在本实施例中,请求R2所要删除的客户信息为2004-03-01日进入数据库的,即记录在T一CUST一INFO一l中,其处理过程如下l.用户发送服务请求到系统。请求内容如下;构件标识请求ID数据日期F3R22004-03-012.接口总线115接收到用户的服务请求,将请求转发至控制引擎单元108;3.控制引擎单元108解析服务请求后,根据服务请求中的功能构件标识和请求数据日期在元数据存储单元109中查找功能构件和数据构件;1)根据请求中的功能构件标识(F3)和请求数据日期(2004-03-01)在元数据存储单元109的功能构件元数据表中找到相应时间段的版本的功能构件。如果请求数据日期未给出,则默认为当前数据曰期;<table>tableseeoriginaldocumentpage24</column></row><table>2)控制引擎单元108再根据请求中的功能构件标识在元数据存储单元109的功能数据关联表中找到相对应的数据构件标识;<table>tableseeoriginaldocumentpage24</column></row><table>4.控制引擎单元108将找到的功能构件标识传递给功能构件引擎单元104,功能构件引擎根据功能构件标识从功能构件存储单元105中找出相应版本的功能构件,即功能构件对象(Delete);5.功能构件引擎单元104将找到的功能构件通过构件总线113传递构件装配单元IIO。在本实施例中为如下形式;<table>tableseeoriginaldocumentpage24</column></row><table>6.控制引擎单元108将找到的数据构件标识传递给数据构件引擎单元106,数据构件引擎单元106根据数据构件标识在元数据存储单元109的数据构件元数据表中找到相应时间段的版本的数据构件,以及数据标识;<table>tableseeoriginaldocumentpage24</column></row><table>7.数据构件引擎单元106根据数据标识在元数据存储单元109的数据描述元数据表中找到相应的数据表。并将数据表的信息与数据构件的信息组合在一起。在本实施例中内容如下;<table>tableseeoriginaldocumentpage25</column></row><table>8.数据构件引擎单元106将找到的数据构件通过构件总线113传递构件装配单元110。在本实施例中内容如下;<table>tableseeoriginaldocumentpage25</column></row><table>9.构件装配单元110将接收到的功能构件和数据构件根据请求标识装配在一起形成可执行的构件。在本实施例中为如下形式;<table>tableseeoriginaldocumentpage25</column></row><table>10.构件装配单元110将装配好的构件传送给构件执行单元111;11.控制引擎单元108通过控制总线114,将构件执行的请求命令发送给构件执行单元111;12.构件执行单元111接受到命令后,根据命令中的请求标识,调用构件中给出的功能构件对象,并将数据表和数据日期参数传递给功能构件对象,调用执行构件;13.构件执行单元111执行功能构件对象完毕,将执行结果存放在结果存储单元112,接口总线115从结果存储单元112根据请求标识取得结果,返回用户。在本实施例中,R2请求经过处理后,即从表T一CUST—INFO—1中删除相应2004-03-01日期的给定客户标识的客户信息记录。实施例5在本实施例中,请求R3所要删除的客户信息为2007-01-01日进入数据库的,即记录在T一CUST—INFO—2中,其处理过程如下l.用户发送服务请求到系统。请求内容如下;<table>tableseeoriginaldocumentpage26</column></row><table>2.接口总线115接收到用户的服务请求,将请求转发至控制引擎单元108;3.控制引擎单元108解析服务请求后,根据服务请求中的功能构件标识和请求数据日期在元数据存储单元109中査找功能构件和数据构件;1)根据请求中的功能构件标识(F3)和请求数据日期(2007-01-01)在元数据存储单元109的功能构件元数据表中找到相应时间段的版本的功能构件。如果请求数据日期未给出,则默认为当前数据日期;<table>tableseeoriginaldocumentpage26</column></row><table>2)控制引擎单元108再根据请求中的功能构件标识在元数据存储单元109的功能数据关联表中找到相对应的数据构件标识;<table>tableseeoriginaldocumentpage26</column></row><table>4.控制引擎单元108将找到的功能构件标识传递给功能构件引擎单元104,功能构件引擎根据功能构件标识从功能构件存储单元105中找出相应版本的功能构件,即功能构件对象(Delete);5.功能构件引擎单元104将找到的功能构件通过构件总线113传递构件装配单元110。在本实施例中为如下形式;<table>tableseeoriginaldocumentpage27</column></row><table>6.控制引擎单元108将找到的数据构件标识传递给数据构件引擎单元106,数据构件引擎单元106根据数据构件标识在元数据存储单元109的数据构件元数据表中找到相应时间段的版本的数据构件,以及数据标识;<table>tableseeoriginaldocumentpage27</column></row><table>7.数据构件引擎单元106根据数据标识在元数据存储单元109的数据描述元数据表中找到相应的数据表。并将数据表的信息与数据构件的信息组合在一起。在本实施例中内容如下;<table>tableseeoriginaldocumentpage27</column></row><table>8.数据构件引擎单元106将找到的数据构件通过构件总线113传递构件装配单元110。在本实施例中内容如下;请求数据构件数据标识数据表数据日期R3ClD2T—CUSTJNFO—22007-01-019.构件装配单元110将接收到的功能构件和数据构件根据请求标识装配在一起形成可执行的构件。在本实施例中为如下形式;<table>tableseeoriginaldocumentpage27</column></row><table>10.构件装配单元110将装配好的构件传送给构件执行单元111;11.控制引擎单元108通过控制总线114,将构件执行的请求命令发送给构件执行单元lll;12.构件执行单元111接受到命令后,根据命令中的请求标识,调用构件中给出的功能构件对象,并将数据表和数据日期参数传递给功能构件对象,调用执行构件;13.构件执行单元111执行功能构件对象完毕,将执行结果存放在结果存储单元112,接口总线115从结果存储单元112根据请求标识取得结果,返回用户。在本实施例中,R3请求经过处理后,即从表T—CUST—INFO—2中删除相应2004-03-01日期的给定客户标识的客户信息记录。在本发明的另一实施例中,R4、R5修改请求即按照给定的客户标识修改客户信息表中的客户记录。出于简洁性考虑,此处身略了修改动作所必需的客户标识参数。修改请求其实是查询定位操作与修改操作的结合,即先在数据库表中找到相应的记录,然后修改,并且将修改后的记录写回。本实施例中我们也假定待修改的两条客户信息分别为2004-03-01日和2007-01-01日进入数据库的,即分别在T—CUST—INPO—1和T—CUST—INFO—2中。需要说明的是,客户信息的修改操作从业务需求上来说通常是该客户的信息发生变动。因此,如果用户在修改2004-03-01入库的客户信息记录时,有可能要求输入该客户的"是否VIP"要素信息,那么在本方案中,功能构件Modify可以通过数据的实时移行功能,实时的修改T一CUSTJNFO—1中相应的客户信息记录为失效状态,将修改后的客户信息记录新增到T_CUST—INPO一2,今后对于该客户信息记录的操作也就转移到新表中。这种实时的移行避免了批量数据移行所带来的停止服务、编写程序等大量工作。实施例6在本实施例中,请求R4所要删除的客户信息为2004-03-01日进入数据库的,即记录在T—CUSTJNFO—1中,其处理过程如下l.用户发送服务请求到系统。请求内容如下;<table>tableseeoriginaldocumentpage29</column></row><table>2.接口总线115接收到用户的服务请求,将请求转发至控制引擎单元108;3.控制引擎单元108解析服务请求后,根据服务请求中的功能构件标识和请求数据日期在元数据存储单元109中査找功能构件和数据构件;1)根据请求中的功能构件标识(F4)和请求数据日期(2004-03-01)在元数据存储单元109的功能构件元数据表中找到相应时间段的版本的功能构件。如果请求数据日期未给出,则默认为当前数据日期;<table>tableseeoriginaldocumentpage29</column></row><table>2)控制引擎单元108再根据请求中的功能构件标识在元数据存储单元109的功能数据关联表中找到相对应的数据构件标识;<table>tableseeoriginaldocumentpage29</column></row><table>4.控制引擎单元108将找到的功能构件标识传递给功能构件引擎单元104,功能构件引擎根据功能构件标识从功能构件存储单元105中找出相应版本的功能构件,即功能构件对象(Modify);5.功能构件引擎单元104将找到的功能构件通过构件总线113传递构件装配单元110。在本实施例中为如下形式;<table>tableseeoriginaldocumentpage29</column></row><table>6.控制引擎单元108将找到的数据构件标识传递给数据构件引擎单元106,数据构件引擎单元106根据数据构件标识在元数据存储单元109的数据构件元数据表中找到相应时间段的版本的数据构件,以及数据标识;<table>tableseeoriginaldocumentpage30</column></row><table>7.数据构件引擎单元106根据数据标识在元数据存储单元109的数据描述元数据表中找到相应的数据表。并将数据表的信息与数据构件的信息组合在一起。在本实施例中内容如下;<table>tableseeoriginaldocumentpage30</column></row><table>8.数据构件引擎单元.106将找到的数据构件通过构件总线113传递构件装配单元110。在本实施例中内容如下;<table>tableseeoriginaldocumentpage30</column></row><table>9.构件装配单元110将接收到的功能构件和数据构件根据请求标识装配在一起形成可执行的构件。在本实施例中为如下形式;<table>tableseeoriginaldocumentpage30</column></row><table>10.构件装配单元110将装配好的构件传送给构件执行单元111;11.控制引擎单元108通过控制总线114,将构件执行的请求命令发送给构件执行单元lll;12.构件执行单元111接受到命令后,根据命令中的请求标识,调用构件中给出的功能构件对象,并将数据表和数据日期参数传递给功能构件对象,调用执行构件;13.构件执行单元111执行功能构件对象完毕,将执行结果存放在结果存储单元112,接口总线115从结果存储单元112根据请求标识取得结果,返回用户。在本实施例中,R4请求经过处理后,将显示T—CUST—INPO一l表中的2004-03-01日期的一条客户记录,并且提供用户进行修改;丄4.用厂修以元平厄,促父修以。^玩班战部仂、iD伎Ul扭纹伎叉至U"W水后,转发给上述构件,将客户记录修改到T—CUST—INFO—1表;15.如果用户在修改2004-03-01入库的客户信息记录时,有可能要求输入该客户的"是否VIP"要素信息,那么在本方案中,功能构件Modify可以根据数据字典和字段的映射关系找到该数据构件对应的最新的数据表T一CUST一INFO一2,将修改后的客户信息记录新增到T—CUST—INFO一2,并修改T—CUST—INFO一l中相应的客户信息记录为失效状态,并同步完成相关表(如客户标识与数据标识的对应关系表)的数据更新工作。并返回操作结果给系统组成部份115接口总线;16.系统组成部份115接口总线将操作结果返回给用户。实施例7在本实施例中,请求R5所要删除的客户信息为2007-01-01日进入数据库的,即记录在T一CUST—INFO—2中,其处理过程如下l.用户发送服务请求到系统。请求内容如下;构件标识请求ID数据曰期F4R52007-01-012.接口总线115接收到用户的服务请求,将请求转发至控制引擎单元108;3.控制引擎单元108解析服务请求后,根据服务请求中的功能构件标识和请求数据日期在元数据存储单元109中查找功能构件和数据构件;1)根据请求中的功能构件标识(F4)和请求数据日期(2007-01-01)在元数据存储单元109的功能构件元数据表中找到相应时间段的版本的功能构件。如果请求数据日期未给出,则默认为当前数据日期;构件标识构件名称功能构件对象当前有效标志有效起始曰期有效结束曰期F4修改Modify1是2006-01-019999-12-312)控制引擎单元108再根据请求中的功能构件标识在元数据存储单元109的功能数据关联表中找到相对应的数据构件标识;功能构件标识数据构件标识有效起始曰期有效结束日期F4Cl2004-01-019999-12-314.控制引擎单元108将找到的功能构件标识传递给功能构件引擎单元104,功能构件引擎根据功能构件标识从功能构件存储单元105中找出相应版本的功能构件,即功能构件对象(Modify);5.功能构件引擎单元104将找到的功能构件通过构件总线113传递构件装配单元110。在本实施例中为如下形式;请求功能构件对象数据构件标识数据日期R5ModifyCl2007-01-016.控制引擎单元108将找到的数据构件标识传递给数据构件引擎单元106,数据构件引擎单元106根据数据构件标识在元数据存储单元109的数据构件元数据表中找到相应时间段的版本的数据构件,以及数据标识;构件标识构件名称连接字符串数据标识当前有效标志有效起始日期有效结束曰期Cl客户1R/K、OraclsD212005-01-019999-12-317.数据构件引擎单元106根据数据标识在元数据存储单元109的数据描述元数据表中找到相应的数据表。并将数据表的信息与数据构件的信息组合在一起。在本实施例中内容如下;<table>tableseeoriginaldocumentpage33</column></row><table>8.数据构件引擎单元106将找到的数据构件通过构件总线113传递构件装配单元110。在本实施例中内容如下;<table>tableseeoriginaldocumentpage33</column></row><table>9.构件装配单元110将接收到的功能构件和数据构件根据请求标识装配在一起形成可执行的构件。在本实施例中为如下形式;<table>tableseeoriginaldocumentpage33</column></row><table>IO.构件装配单元110将装配好的构件传送给构件执行单元111;11.控制引擎单元108通过控制总线114,将构件执行的请求命令发送给构件执行单元lll;12.构件执行单元111接受到命令后,根据命令中的请求标识,调用构件中给出的功能构件对象,并将数据表和数据日期参数传递给功能构件对象,调用执行构件;13.构件执行单元111执行功能构件对象完毕,将执行结果存放在结果存储单元112,接口总线115从结果存储单元112根据请求标识取得结果,返回用户。在本实施例中,请求R5经过处理后,将显示T—CUST—INFO—2表中的2007-01-01日期的一条客户记录,并且提供用户进行修改。14.用户修改完毕后,提交修改。系统组成部份115接口总线接受到请求后,转发给上述构件,将客户记录修改到T一CUSTJNFO—2表,返回操作结果给系统组成部份115接口总线;系统组成部份115接口总线将操作结果返回给用户。以上本发明的实施例1-7详细列举了一个客户信息维护应用的实施例,需要明确的是,本实施例是为了说明本发明,而并非为了限定本发明,任何本领域具有一般知识的人均可以将本发明应用到其他管理系统中去,如财务管理系统,商品管理系统,人事管理系统等等。与现有技术相比,本发明的优点是1)本发明创新的将应用的功能服务与企业的历史数据作为一个整体,以时间维度进行关联整合,通过对应用的功能服务与数据环境之间的关系进行有效管理、控制,在统一的运行支撑架构中保存服务功能构件和数据构件的整个演变历史,实现了功能服务与数据环境的自动匹配的功能,从而解决了历史数据的变化如何与应用功能变迁相适应的问题。真正做到企业的应用系统,不受时间、版本的约束,根据业务需要,方便的使用,真正实现了灵活而可靠的业务敏捷性;2)系统通过数据与构件版本的自动匹配,简便、有效地实现了数据与构件版本统一管理,进而解决了新应用功能如何与老的应用功能相适应与协调的问题,减少了测试的时间,降低了测试成本。系统无需再通过停机、停服务来更新应用、移行数据,有效地提高了系统的可用性,降低了企业的测试和运行维护周期与成本;3)本发明采用构件化方式,构件与具体运行环境不再直接关联,便于系统开展应用重构、构件复用,提高了系统的规划效率。使得企业可以快速应对新业务需求,及时进行业务创新;4)减低数据和功能构件的耦合度,淡化了新增功能对原有功能兼容性的设计,降低了系统设计的复杂度,使得设计人员可以专注于当前需求功能的模型设计和实现,从而简化了设计工作量,提高设计工作效率;5)使得企业历史数据能方便运用成为可能,提高了数据的使用效率,有效的保护了企业的投资。权利要求1.一种功能构件与数据关联运行方法,所述的方法包括将功能构件标识与数据构件标识之间的映射关系存储于第一关联表中;将功能构件标识、功能构件对象以及功能构件对象版本日期之间的映射关系存储于第二关联表中;将数据构件标识、数据标识以及数据日期之间的映射关系存储于第三关联表中;将数据标识和数据名称之间的映射关系存储于第四关联表中;其中,所述方法执行以下步骤接收包含功能构件标识、请求标识和数据日期的数据服务请求;根据所述的数据日期在第二关联表中找到对应的功能构件对象版本日期,再根据功能构件标识获取对应的功能构件对象;根据所述的功能构件标识在第一关联表中获取对应的数据构件标识;根据所述的数据日期和获取的数据构件标识在第三关联表中获取对应的数据标识;根据获取的数据标识在第四关联表中获取对应的数据名称,再根据数据名称获取对应的数据表;将获取的数据表与获取的功能构件对象根据所述的请求标识组合形成可执行构件;执行所述的可执行构件,返回请求的服务数据。2.根据权利要求1所述的功能构件与数据关联运行方法,其特征是,通过数据总线接收外部用户传送的包含功能构件标识、请求标识和数据日期的数据服务请求。3.根据权利要求1所述的功能构件与数据关联运行方法,其特征是,将所述的数据表存储于外部的运营数据仓库中,并且将所述的功能构件对象存储于功能构件存储单元中。4.根据权利要求1所述的功能构件与数据关联运行方法,其特征是,所述的功能构件对象包括添加功能构件、修改功能构件、删除功能构件和査询功能构件。5.根据权利要求1所述的功能构件与数据关联运行方法,其特征是,所述的返回请求的服务数据包括将可执行构件的执行结果存储在结果池中,并通过数据总线将所述的执行结果反馈给外部用户。6.—种功能构件与数据关联运行系统,其特征是,所述的系统包括关联表存储单元,用于存储功能构件标识与数据构件标识之间的映射关系,功能构件标识、功能构件名称、功能构件对象以及功能构件对象版本曰期之间的映射关系,数据构件标识、数据构件名称、数据标识以及数据曰期之间的映射关系,数据标识和数据名称之间的映射关系;数据请求接收单元,用于接收包含功能构件标识、请求标识和数据曰期的数据服务请求;功能构件对象获取单元,用于根据所述的数据日期在关联表存储单元中找到对应的功能构件对象版本日期,再根据功能构件标识获取对应的功能构件对象;数据构件标识获取单元,用于根据所述的功能构件标识在关联表存储单元中获取对应的数据构件标识;数据标识获取单元,用于根据所述的数据日期和获取的数据构件标识在关联表存储单元中获取对应的数据标识;数据表获取单元,用于根据获取的数据标识在关联表存储单元中获取对应的数据名称,再根据数据名称获取对应的数据表;可执行构件生成单元,用于将获取的数据表与获取的功能构件对象根据所述的请求标识组合形成可执行构件;服务数据输出单元,用于执行所述的可执行构件,返回请求的服务数据。7.根据权利要求6所述的功能构件与数据关联运行系统,其特征是,所述的关联表存储单元包括第一关联表,用于存储功能构件标识与数据构件标识之间的映射关系;第二关联表,用于存储功能构件标识、功能构件名称、功能构件对象以及功能构件对象版本日期之间的映射关系;第三关联表,用于存储数据构件标识、数据构件名称、数据标识以及数据日期之间的映射关系;第四关联表,用于存储数据标识和数据名称之间的映射关系。8.根据权利要求6所述的功能构件与数据关联运行系统,其特征是,所述的系统还包括外部用户终端,该外部用户终端通过数据总线与所述的数据请求接受单元进行通讯,用于输入包含功能构件标识、请求标识和数据曰期的数据服务请求。9.根据权利要求6所述的功能构件与数据关联运行系统,其特征是,所述的系统还包括运营数据仓库,用于存储所述的数据表;功能构件存储单元,用于存储功能构件对象。10.根据权利要求6所述的功能构件与数据关联运行系统,其特征是,所述的功能构件对象包括添加功能构件、修改功能构件、删除功能构件和查询功能构件。11.根据权利要求6或8所述的功能构件与数据关联运行系统,其特征是,所述的系统还包括执行结果存储单元,用于存储所述的可执行构件的执行结果;其中,所述的服务数据输出单元从所述的执行结果存储单元中获取所述的执行结果,并将所述的执行结果通过数据总线反馈给所述的外部用户终端。全文摘要本发明是关于一种功能构件与数据关联运行方法及系统,所述的方法包括接收包含功能构件标识、请求标识和数据日期的数据服务请求;根据所述的数据日期在第二关联表中找到对应的功能构件对象版本日期,再根据功能构件标识获取对应的功能构件对象;根据所述的功能构件标识在第一关联表中获取对应的数据构件标识;根据所述的数据日期和获取的数据构件标识在第三关联表中获取对应的数据标识;根据获取的数据标识在第四关联表中获取对应的数据名称,再根据数据名称获取对应的数据表;将获取的数据表与获取的功能构件对象根据所述的请求标识组合形成可执行构件;执行所述的可执行构件,返回请求的服务数据。文档编号G06F17/30GK101158968SQ20071017777公开日2008年4月9日申请日期2007年11月21日优先权日2007年11月21日发明者昀张,瑶朱,黄克捷申请人:中国工商银行股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1