一种异构数据处理方法和装置的制作方法

文档序号:6374303阅读:147来源:国知局
专利名称:一种异构数据处理方法和装置的制作方法
技术领域
本申请涉及ー种数据处理方法,尤其涉及一种异构数据处理方法和装置。
背景技术
互联网技术的发展,使得数据层的应用越来越广泛,经常会面临异构数据层的操作问题。异构数据层是指遵循相同接ロ的相同或不同实现的一系列数据操作对象的集合。例如,ORACLE、SQL Server和MySQL等,即使是像MySQL —类的开源数据层,也有很多种不同的实现方式。现有技术中,对于异构数据层的操作在框架层进行实现,往往是针对某一数据层编写相应的处理代码,这些代码不断堆积,使得逻辑边界越来越不清晰,相互间的调用也显得混乱,开发效率低下。

发明内容
本申请提供一种可保证开发效率的异构数据处理方法和装置。根据本申请的第一方面,本申请提供一种异构数据处理方法,所述方法包括基于异构数据层建立相应的多数据域处理单元;获取所述异构数据层的參数信息;对所述參数信息进行匹配,获得相对应的多数据域处理单元;所述多数据域处理单元生成业务对象,所述业务对象包括数据操作対象。其中所述多数据域处理单元生成业务对象包括加载数据域配置信息;根据所述数据域配置信息生成业务对象。其中所述对所述參数信息进行匹配包括通过统ー资源定位符映射的方式进行分析和匹配。其中还包括对所生成的业务对象进行显示的过程。上述过程通过超级文本预处理语言、JAVA、Python中任一种加以实现。根据本申请的第二方面,本申请提供一种异构数据处理装置,所述装置包括多数据域处理单元,所述多数据域处理单元与所述异构数据层相对应;匹配単元,用于获取所述异构数据层的參数信息,对所述參数信息进行匹配,调用相应的多数据域处理单元进行处理;所述多数据域处理单元还用于生成业务对象,所述业务对象包括数据操作対象。其中所述多数据域处理单元还用于加载数据域配置信息,根据所述数据域配置信息生成业务对象。其中所述匹配单元还用于通过统ー资源定位符映射的方式进行分析和匹配。上述装置还包括显示单元,用于对生成的业务对象进行显示。上述装置还用于通过超级文本预处理语言、JAVA、Python中任一种实现所述异构数据层的业务对象的生成。由于采用了以上技术方案,使本申请具备的有益效果在于
在本申请的具体实施方式
中,通过匹配异构数据层的參数,找到相对应的多数据域处理单元来生成业务对象,使得异构数据层的处理场景得以简化,在数据层开发阶段可避开对多数据域的处理细节,开发人员可像以往开发单数据层的应用ー样灵活、便捷地完成开发工作,而不会被多域场景所帯来的琐碎细节所干扰,确保了开发的效率。


图I为根据本申请异构数据处理方法的一个实施例的流程图;图2为根据本申请异构数据处理方法的另ー个实施例的流程图;图3为根据本申请异构数据处理装置的一个实施例的结构示意图;图4为根据本申请异构数据处理装置的另ー个实施例的结构示意图。
具体实施例方式下面通过具体实施方式
结合附图对本申请作进一歩详细说明。实施例一如图I所示,本申请的异构数据处理方法,其一种实施方式,包括以下步骤步骤102 :基于异构数据层建立相应的多数据域处理单元;比如对于要操作ORACLE数据层要生成业务对象(BO business Object),需要建立相应于该ORACLE数据层的多数据域处理单元。步骤104 :获取异构数据层的參数信息;本领域技术人员应该理解,步骤104与步骤102可以互换顺序。步骤106 :对參数信息进行匹配,获得相对应的多数据域处理单元;步骤108 :多数据域处理单元生成业务对象,该业务对象包括数据操作対象。在一种实现方式中,步骤106中的对參数信息进行匹配,包括通过统ー资源定位符映射(URL Mapping)的方式进行分析和匹配。在一种实现方式中,步骤108具体包括加载数据域配置信息;根据数据域配置信息生成BO。我们把数据操作对象称为B0。数据域配置信息包含该域下所提供的所有BO的配置信息,每个BO具体配置信息取决于其底层实现,对于ー个数据层实现的BO来说可包括Al B0 实现类;A2 :数据层类型;A3:数据层地址及端ロ ;A4 :数据层用户名及密码;A5:数据层编码格式。对于ー个由memcached (通用的分布式高性能缓存系统)实现的BO说包括BI B0 实现类;B2 :memcached 地址、端 ロ ;B3 :用户名及密码(可选)。由于BO实现方式的多祥性,配置信息中的内容也不尽相同,本领域技术人员应该理解,配置信息中的内容应可支持该BO进行相关资源的初始化工作,可以根据需要进行设计。关于生成BO的过程,首先强调的ー个要点是“所有实例化的业务对象必遵循统一的ー个接ロ,上层通过这个统一的接ロ对BO进行使用,而并不关心具体BO的创建和加载的过程”,具体BO的创建则是框架通过传入配置信息,调用具体BO实现类的构造方法而完成的,BO相关资源(数据层句柄、memcached连接等)的初始化工作可以在构造时完成,也可以根据性能需要将初始化的工作延迟到具体业务方法中进行。BO具体实现可以比较灵活,BO的作用是通过统ー的接ロ对上层提供业务方法的调用,ー个通常意义上的BO可以包含一个或多个数据操作对象(DA0),但也可以支持由非DAO实现,或DAO结合其他方式实现的复杂构成。具体BO的实现并不受到框架的限制,开发人员可以灵活实现,框架所关注的是这些BO对外提供的统ー的调用接ロ。在一种实现方式中,本申请的方法中还包括对生成的业务对象进行显示的过程。 这种显示显然可独立于生成过程,于是可得到与具体模板引擎实现无关的视图对象定义方法,彻底解除框架与模板引擎的耦合关系,使得开发者在模板引擎的选择上有了更大的自由度。在一种实现方式中,本申请的方法可通过超级文本预处理语言(PHP HypertextPreprocessor)、JAVA、Python中任一种加以实现。本领域技术人员应该理解,那些支持脚本的语言可以实现本申请的技术方案。多数据域的概念是对应“ー个应用引擎、多个数据后端”的需求场景提出的,其实质是可对多个异构数据层进行操作。在上述实施例的支持下,开发人员可像以往开发单数据层的应用ー样灵活、便捷地完成开发工作,而不会被多数据域域场景所帯来的琐碎细节所干扰,确保了开发的效率,即使是应对单数据后端的需求场景时,多数据域框架为研发、测试、生产各个阶段带来隔离的好处,这体现在生产数据域与测试数据域分离,开发人员可以在不干扰生产数据的前提下,基于测试数据完成对应用逻辑的测试和调整工作。区别于以往框架只是简单提出ORM (即Object-Relational Mapping,对象关系映射)方案而没有明确提出业务对象的概念,简单的ORM方案无法满足复杂的应用需求,这些应用需求关注具备统ー操作接ロ的业务对象的概念,在业务对象的具体实现上则没有限制,业务对象按多数据域配置完成之后框架负责将各种业务对象透明注入到web服务过程中,与其它框架组件协同工作,这种透明是指对多数据域处理单元开发者透明,他们无需关注自己使用的是哪个B0。图2示出根据本申请异构数据处理方法的另ー种实施方式的流程图,该实施例构建于PHP语言上,也可移植到其他web开发语言上,例如Java、Python等,本实施例使用PHP的Smarty作为默认的视图引擎,本领域的技术人员应该理解,也可使用其他的模板引擎来实现,例如templatelite、php-sugar等。使用PHP语言来生成业务对象,相比于ORM能充分满足复杂的需求。步骤202 :系统初始化,创建BO的配置信息;步骤204 :发出异构数据处理请求,该处理请求包含了多数据域的參数信息,该信息可实现为一个字符串,由http參数等多种方式传递,本例中采用如下的方式URL /controlIer/action/paraml/param2本例中,多数据域处理单兀实现为controller类,该controller类包括action方法,paraml、param2为传递的參数。该信息也可由http头值的形式进行传递。步骤206 :通过index, php脚本获取该请求。步骤208 由负责接收和分派访问请求的PHP类来进行匹配,本例中实现为dispatcher, dispatcher解析多数据域參数,再将http访问请求通过URLMapping规则进行分析和匹配,找到对应的多数据域处理单元进行处理。dispatcher可以将http请求中的參数以action方法參数的形式传递给controller。t 匕如,有 http 请求GET/test/hello HTTP/1. I, X-Domain: web进入dispatcher后,根据既定匹配规则由第一级目录名test找控制类TestController (假设TestController有待注入业务对象类名称boGreeting),实例化之,此时域參数为web,则找到web域下GreetingBO的相关配置信息,实例化GreetingBO 并注入到TestController. boGreeting属性,然后根据既定匹配按第二级目录名hello在TestController找到控制方法hello ()并调用该方法。框架也预留了将URL模式匹配到“控制类.控制方法”的扩展点。步骤210 :创建与每个异构数据层相对应的多数据域处理单元。本实施例中,多数据域处理单元实现为controller类,具体而言是controller类对应于不同结构异构数据层的action方法,本领域技术人员应该理解,可以对应实现为不同的类,或者其他的方式,例如函数、子程序等。controller类按照声明的符合注入条件的BO的类名称,构建异构数据层中的符合该数据域的B0。本实施例中,该注入条件实现为按属性名称约定的规则。BO代表了这个数据域下的数据层对象,这些BO的配置信息在系统初始化时创建,并且可以由传入的数据域參数找到这些配置信息,从而在需要的时候进行实例化,例如有业务对象MessageCenter,对于数据域A配置为由Mysql实现的MysqlMessageCenter,对于数据域B配置为由Mongodb实现的MongoMessageCenter,当请求携带的多数据域參数为B时,框架负责实例化一个MongoMessageCenter并注入。步骤212 :controller_>action执行完毕后,将返回一个以PHP array结构描述的视图对象(VO View Object)至dispatcher,视图对象的定义是与实现无关的,dispatcher负责解析此视图对象并提交到视图引擎完成最后页面输出等任务。步骤214 Smarty负责渲染和页面显示。本申请通过业务对象的生成和显示的分离,解除框架与模板引擎的耦合,提高了开发的灵活度。实施例ニ 如图3所示,本申请的异构数据处理装置,其一种实施方式,包括多数据域处理单元和匹配単元,多数据域处理单元与异构数据层相对应,每个多数据域处理单元可对应ー个异构数据层;匹配単元,用于获取异构数据层的參数信息,对參数信息进行匹配,调用相应的多数据域处理单元进行处理;多数据域处理单元用于生成业务对象,该业务对象包括数据操作对象。在一种实施方式中,该多数据域处理单元还用于加载数据域配置信息,根据数据域配置信息生成业务对象。在一种实施方式中,该匹配单元还用于通过统ー资源定位符映射的方式进行分析和匹配。
在一种实施方式中,该装置还包括显示单元,用于对生成的业务对象进行显示。在一种实施方式中,该装置还用于通过PHP、JAVA、Python中任ー种实现异构数据层的业务对象的生成。图4示出根据本申请异构数据处理装置的ー种具体实例的结构示意图,该实施例基于图2所示的方法,其核心组件是负责接收和分派访问请求的PHP类dispatcher,其实现了匹配单元的功能。还包括用于生成BO的controller类,该类包括action方法,本实施例中,每个action方法对应于ー种B0,本领域技术人员应该理解,也可实现为对应于每个BO的controller类或者是其他的实现方式,例如函数、子程序等,以及用于显示的Smarty类、用于接收请求的Index, php。这些类的工作流參考图2所示的实施例,这里不再赘述。以上内容是结合具体的实施方式对本申请所作的进ー步详细说明,不能认定本申请的具体实施只局限于这些说明。对于本申请所属技术领域的普通技术人员来说,在不脱 离本申请构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本申请的保护范围。
权利要求
1.一种异构数据处理方法,其特征在于,所述方法包括 基于异构数据层建立相应的多数据域处理单元; 获取所述异构数据层的參数信息; 对所述參数信息进行匹配,获得相对应的多数据域处理单元; 所述多数据域处理单元生成业务对象,所述业务对象包括数据操作対象。
2.如权利要求I所述的方法,其特征在于,所述多数据域处理单元生成业务对象包括 加载数据域配置信息; 根据所述数据域配置信息生成业务对象。
3.如权利要求I所述的方法,其特征在于,所述对所述參数信息进行匹配包括 通过统ー资源定位符映射的方式进行分析和匹配。
4.如权利要求I所述的方法,其特征在于,还包括对所生成的业务对象进行显示的过程。
5.如权利要求I至4任一所述的方法,其特征在于,所述方法通过超级文本预处理语言、JAVA、Python中任一种加以实现。
6.一种异构数据处理装置,其特征在于,所述装置包括 多数据域处理单元,所述多数据域处理单元与所述异构数据层相对应; 匹配単元,用于获取所述异构数据层的參数信息,对所述參数信息进行匹配,调用相应的多数据域处理单元进行处理; 所述多数据域处理单元还用于生成业务对象,所述业务对象包括数据操作対象。
7.如权利要求6所述的装置,其特征在于,所述多数据域处理单元还用于加载数据域配置信息,根据所述数据域配置信息生成业务对象。
8.如权利要求6所述的装置,其特征在干,所述匹配单元还用于通过统ー资源定位符映射的方式进行分析和匹配。
9.如权利要求6所述的装置,其特征在于,还包括显示单元,用于对生成的业务对象进行显示。
10.如权利要求6至9任一所述的装置,其特征在于,所述装置还用于通过超级文本预处理语言、JAVA、Python中任一种实现所述异构数据层的业务对象的生成。
全文摘要
本申请公开了一种异构数据处理方法,所述方法包括基于异构数据层建立相应的多数据域处理单元;获取所述异构数据层的参数信息;对所述参数信息进行匹配,获得相对应的多数据域处理单元;所述多数据域处理单元生成业务对象,所述业务对象包括数据操作对象。本申请还公开了一种异构数据处理装置。本申请通过匹配异构数据层的参数,找到相对应的多数据域处理单元来生成业务对象,使得异构数据层的处理场景得以简化,在数据层开发阶段可避开对多数据域的处理细节,开发人员可像以往开发单数据层的应用一样灵活、便捷地完成开发工作,而不会被多域场景所带来的琐碎细节所干扰,确保了开发的效率。
文档编号G06F17/30GK102855280SQ201210271639
公开日2013年1月2日 申请日期2012年7月31日 优先权日2012年7月31日
发明者王越, 刘波, 方礼勇, 杜国楹 申请人:北京壹人壹本信息科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1