CN102855280B - 一种异构数据处理方法和装置 - Google Patents
一种异构数据处理方法和装置 Download PDFInfo
- Publication number
- CN102855280B CN102855280B CN201210271639.4A CN201210271639A CN102855280B CN 102855280 B CN102855280 B CN 102855280B CN 201210271639 A CN201210271639 A CN 201210271639A CN 102855280 B CN102855280 B CN 102855280B
- Authority
- CN
- China
- Prior art keywords
- data
- processing unit
- business object
- data fields
- isomeric
- 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.)
- Active
Links
Landscapes
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本申请公开了一种异构数据处理方法,所述方法包括:基于异构数据层建立相应的多数据域处理单元;获取所述异构数据层的参数信息;对所述参数信息进行匹配,获得相对应的多数据域处理单元;所述多数据域处理单元生成业务对象,所述业务对象包括数据操作对象。本申请还公开了一种异构数据处理装置。本申请通过匹配异构数据层的参数,找到相对应的多数据域处理单元来生成业务对象,使得异构数据层的处理场景得以简化,在数据层开发阶段可避开对多数据域的处理细节,开发人员可像以往开发单数据层的应用一样灵活、便捷地完成开发工作,而不会被多域场景所带来的琐碎细节所干扰,确保了开发的效率。
Description
技术领域
本申请涉及一种数据处理方法,尤其涉及一种异构数据处理方法和装置。
背景技术
互联网技术的发展,使得数据层的应用越来越广泛,经常会面临异构数据层的操作问题。异构数据层是指遵循相同接口的相同或不同实现的一系列数据操作对象的集合。例如,ORACLE、SQL Server和MySQL等,即使是像MySQL一类的开源数据层,也有很多种不同的实现方式。现有技术中,对于异构数据层的操作在框架层进行实现,往往是针对某一数据层编写相应的处理代码,这些代码不断堆积,使得逻辑边界越来越不清晰,相互间的调用也显得混乱,开发效率低下。
发明内容
本申请提供一种可保证开发效率的异构数据处理方法和装置。
根据本申请的第一方面,本申请提供一种异构数据处理方法,所述方法包括:
基于异构数据层建立相应的多数据域处理单元;
获取所述异构数据层的参数信息;
对所述参数信息进行匹配,获得相对应的多数据域处理单元;
所述多数据域处理单元生成业务对象,所述业务对象包括数据操作对象。
其中所述多数据域处理单元生成业务对象包括:加载数据域配置信息;根据所述数据域配置信息生成业务对象。
其中所述对所述参数信息进行匹配包括:通过统一资源定位符映射的方式进行分析和匹配。
其中还包括对所生成的业务对象进行显示的过程。
上述过程通过超级文本预处理语言、JAVA、Python中任一种加以实现。
根据本申请的第二方面,本申请提供一种异构数据处理装置,所述装置包括:
多数据域处理单元,所述多数据域处理单元与所述异构数据层相对应;
匹配单元,用于获取所述异构数据层的参数信息,对所述参数信息进行匹配,调用相应的多数据域处理单元进行处理;
所述多数据域处理单元还用于生成业务对象,所述业务对象包括数据操作对象。
其中所述多数据域处理单元还用于加载数据域配置信息,根据所述数据域配置信息生成业务对象。
其中所述匹配单元还用于通过统一资源定位符映射的方式进行分析和匹配。
上述装置还包括显示单元,用于对生成的业务对象进行显示。
上述装置还用于通过超级文本预处理语言、JAVA、Python中任一种实现所述异构数据层的业务对象的生成。
由于采用了以上技术方案,使本申请具备的有益效果在于:
在本申请的具体实施方式中,通过匹配异构数据层的参数,找到相对应的多数据域处理单元来生成业务对象,使得异构数据层的处理场景得以简化,在数据层开发阶段可避开对多数据域的处理细节,开发人员可像以往开发单数据层的应用一样灵活、便捷地完成开发工作,而不会被多域场景所带来的琐碎细节所干扰,确保了开发的效率。
附图说明
图1为根据本申请异构数据处理方法的一个实施例的流程图;
图2为根据本申请异构数据处理方法的另一个实施例的流程图;
图3为根据本申请异构数据处理装置的一个实施例的结构示意图;
图4为根据本申请异构数据处理装置的另一个实施例的结构示意图。
具体实施方式
下面通过具体实施方式结合附图对本申请作进一步详细说明。
实施例一:
如图1所示,本申请的异构数据处理方法,其一种实施方式,包括以下步骤:
步骤102:基于异构数据层建立相应的多数据域处理单元;比如对于要操作ORACLE数据层要生成业务对象(BO:Business Object),需要建立相应于该ORACLE数据层的多数据域处理单元。
步骤104:获取异构数据层的参数信息;本领域技术人员应该理解,步骤104与步骤102可以互换顺序。
步骤106:对参数信息进行匹配,获得相对应的多数据域处理单元;
步骤108:多数据域处理单元生成业务对象,该业务对象包括数据操作对象。
在一种实现方式中,步骤106中的对参数信息进行匹配,包括:通过统一资源定位符映射(URL Mapping)的方式进行分析和匹配。
在一种实现方式中,步骤108具体包括:加载数据域配置信息;根据数据域配置信息生成BO。
我们把数据操作对象称为BO。数据域配置信息包含该域下所提供的所有BO的配置信息,每个BO具体配置信息取决于其底层实现,对于一个数据层实现的BO来说可包括:
A1:BO实现类;
A2:数据层类型;
A3:数据层地址及端口;
A4:数据层用户名及密码;
A5:数据层编码格式。
对于一个由memcached(通用的分布式高性能缓存***)实现的BO说包括:
B1:BO实现类;
B2:memcached地址、端口;
B3:用户名及密码(可选)。
由于BO实现方式的多样性,配置信息中的内容也不尽相同,本领域技术人员应该理解,配置信息中的内容应可支持该BO进行相关资源的初始化工作,可以根据需要进行设计。
关于生成BO的过程,首先强调的一个要点是:“所有实例化的业务对象必遵循统一的一个接口,上层通过这个统一的接口对BO进行使用,而并不关心具体BO的创建和加载的过程”,具体BO的创建则是框架通过传入配置信息,调用具体BO实现类的构造方法而完成的,BO相关资源(数据层句柄、memcached连接等)的初始化工作可以在构造时完成,也可以根据性能需要将初始化的工作延迟到具体业务方法中进行。
BO具体实现可以比较灵活,BO的作用是通过统一的接口对上层提供业务方法的调用,一个通常意义上的BO可以包含一个或多个数据操作对象(DAO),但也可以支持由非DAO实现,或DAO结合其他方式实现的复杂构成。具体BO的实现并不受到框架的限制,开发人员可以灵活实现,框架所关注的是这些BO对外提供的统一的调用接口。
在一种实现方式中,本申请的方法中还包括对生成的业务对象进行显示的过程。这种显示显然可独立于生成过程,于是可得到与具体模板引擎实现无关的视图对象定义方法,彻底解除框架与模板引擎的耦合关系,使得开发者在模板引擎的选择上有了更大的自由度。
在一种实现方式中,本申请的方法可通过超级文本预处理语言(PHP:Hypertext Preprocessor)、JAVA、Python中任一种加以实现。本领域技术人员应该理解,那些支持脚本的语言可以实现本申请的技术方案。
多数据域的概念是对应“一个应用引擎、多个数据后端”的需求场景提出的,其实质是可对多个异构数据层进行操作。在上述实施例的支持下,开发人员可像以往开发单数据层的应用一样灵活、便捷地完成开发工作,而不会被多数据域域场景所带来的琐碎细节所干扰,确保了开发的效率,即使是应对单数据后端的需求场景时,多数据域框架为研发、测试、生产各个阶段带来隔离的好处,这体现在生产数据域与测试数据域分离,开发人员可以在不干扰生产数据的前提下,基于测试数据完成对应用逻辑的测试和调整工作。
区别于以往框架只是简单提出ORM(即Object-Relational Mapping,对象关系映射)方案而没有明确提出业务对象的概念,简单的ORM方案无法满足复杂的应用需求,这些应用需求关注具备统一操作接口的业务对象的概念,在业务对象的具体实现上则没有限制,业务对象按多数据域配置完成之后框架负责将各种业务对象透明注入到web服务过程中,与其它框架组件协同工作,这种透明是指对多数据域处理单元开发者透明,他们无需关注自己使用的是哪个BO。
图2示出根据本申请异构数据处理方法的另一种实施方式的流程图,该实施例构建于PHP语言上,也可移植到其他web开发语言上,例如:Java、Python等,本实施例使用PHP的Smarty作为默认的视图引擎,本领域的技术人员应该理解,也可使用其他的模板引擎来实现,例如templatelite、php-sugar等。使用PHP语言来生成业务对象,相比于ORM能充分满足复杂的需求。
步骤202:***初始化,创建BO的配置信息;
步骤204:发出异构数据处理请求,该处理请求包含了多数据域的参数信息,该信息可实现为一个字符串,由http参数等多种方式传递,本例中采用如下的方式:
URL:/controller/action/param1/param2
本例中,多数据域处理单元实现为controller类,该controller类包括action方法,param1、param2为传递的参数。该信息也可由http头值的形式进行传递。
步骤206:通过index.php脚本获取该请求。
步骤208:由负责接收和分派访问请求的PHP类来进行匹配,本例中实现为dispatcher,dispatcher解析多数据域参数,再将http访问请求通过URLMapping规则进行分析和匹配,找到对应的多数据域处理单元进行处理。dispatcher可以将http请求中的参数以action方法参数的形式传递给controller。
比如,有http请求:GET/test/hello HTTP/1.1,X-Domain:web
进入dispatcher后,根据既定匹配规则由第一级目录名test找控制类TestController(假设TestController有待注入业务对象类名称boGreeting),实例化之,此时域参数为web,则找到web域下GreetingBO的相关配置信息,实例化GreetingBO并注入到TestController.boGreeting属性,然后根据既定匹配按第二级目录名hello在TestController找到控制方法hello()并调用该方法。框架也预留了将URL模式匹配到“控制类.控制方法”的扩展点。
步骤210:创建与每个异构数据层相对应的多数据域处理单元。本实施例中,多数据域处理单元实现为controller类,具体而言是controller类对应于不同结构异构数据层的action方法,本领域技术人员应该理解,可以对应实现为不同的类,或者其他的方式,例如函数、子程序等。controller类按照声明的符合注入条件的BO的类名称,构建异构数据层中的符合该数据域的BO。本实施例中,该注入条件实现为按属性名称约定的规则。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方法对应于一种BO,本领域技术人员应该理解,也可实现为对应于每个BO的controller类或者是其他的实现方式,例如函数、子程序等,以及用于显示的Smarty类、用于接收请求的Index.php。这些类的工作流参考图2所示的实施例,这里不再赘述。
以上内容是结合具体的实施方式对本申请所作的进一步详细说明,不能认定本申请的具体实施只局限于这些说明。对于本申请所属技术领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本申请的保护范围。
Claims (10)
1.一种异构数据处理方法,其特征在于,所述方法包括:
基于异构数据层建立相应的多数据域处理单元,所述异构数据层是指遵循相同接口的相同或不同实现的一系列数据操作对像的集合;
获取所述异构数据层的参数信息;
对所述参数信息进行匹配,获得相对应的多数据域处理单元;
所述多数据域处理单元生成具备统一接口的业务对象,所述业务对象包括数据操作对象。
2.如权利要求1所述的方法,其特征在于,所述多数据域处理单元生成业务对象包括:
加载数据域配置信息;
根据所述数据域配置信息生成业务对象。
3.如权利要求1所述的方法,其特征在于,所述对所述参数信息进行匹配包括:
通过统一资源定位符映射的方式进行分析和匹配。
4.如权利要求1所述的方法,其特征在于,还包括对所生成的业务对象进行显示的过程。
5.如权利要求1至4任一所述的方法,其特征在于,所述方法通过超级文本预处理语言、JAVA、Python中任一种加以实现。
6.一种异构数据处理装置,其特征在于,所述装置包括:
多数据域处理单元,所述多数据域处理单元与异构数据层相对应,所述异构数据层是指遵循相同接口的相同或不同实现的一系列数据操作对像的集合;
匹配单元,用于获取所述异构数据层的参数信息,对所述参数信息进行匹配,调用相应的多数据域处理单元进行处理;
所述多数据域处理单元还用于生成具备统一接口的业务对象,所述业务对象包括数据操作对象。
7.如权利要求6所述的装置,其特征在于,所述多数据域处理单元还用于加载数据域配置信息,根据所述数据域配置信息生成业务对象。
8.如权利要求6所述的装置,其特征在于,所述匹配单元还用于通过统一资源定位符映射的方式进行分析和匹配。
9.如权利要求6所述的装置,其特征在于,还包括显示单元,用于对生成的业务对象进行显示。
10.如权利要求6至9任一所述的装置,其特征在于,所述装置还用于通过超级文本预处理语言、JAVA、Python中任一种实现所述异构数据层的业务对象的生成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210271639.4A CN102855280B (zh) | 2012-07-31 | 2012-07-31 | 一种异构数据处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210271639.4A CN102855280B (zh) | 2012-07-31 | 2012-07-31 | 一种异构数据处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102855280A CN102855280A (zh) | 2013-01-02 |
CN102855280B true CN102855280B (zh) | 2015-10-21 |
Family
ID=47401868
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210271639.4A Active CN102855280B (zh) | 2012-07-31 | 2012-07-31 | 一种异构数据处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102855280B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808534B (zh) * | 2014-12-27 | 2019-06-11 | 株洲中车时代电气股份有限公司 | 一种异构数据融合文件中提取原始数据的方法 |
CN112272934A (zh) * | 2018-03-30 | 2021-01-26 | 北京易掌云峰科技有限公司 | 跨域映射的复合网络指令*** |
CN110502662A (zh) * | 2019-08-23 | 2019-11-26 | 南京信易达计算技术有限公司 | 一种异构数据处理***及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1093060A2 (en) * | 1999-10-14 | 2001-04-18 | Dharma Systems, Inc. | SQL interface for business application software |
CN101114226A (zh) * | 2007-08-28 | 2008-01-30 | 北京中企开源信息技术有限公司 | 一种基于模型组件的代码自动生成装置、***及方法 |
CN101281466A (zh) * | 2008-05-27 | 2008-10-08 | 北京中企开源信息技术有限公司 | 基于业务本体特征的业务对象建模方法 |
-
2012
- 2012-07-31 CN CN201210271639.4A patent/CN102855280B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1093060A2 (en) * | 1999-10-14 | 2001-04-18 | Dharma Systems, Inc. | SQL interface for business application software |
CN101114226A (zh) * | 2007-08-28 | 2008-01-30 | 北京中企开源信息技术有限公司 | 一种基于模型组件的代码自动生成装置、***及方法 |
CN101281466A (zh) * | 2008-05-27 | 2008-10-08 | 北京中企开源信息技术有限公司 | 基于业务本体特征的业务对象建模方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102855280A (zh) | 2013-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10331422B1 (en) | System and method for generating API devlopment code for integrating platforms | |
CN111580820B (zh) | 一种小程序生成方法和装置 | |
US9239705B2 (en) | Method and apparatus for customized software development kit (SDK) generation | |
CN105024865B (zh) | 云联合即服务 | |
CN108415710B (zh) | 在智能对话开发平台上发布、调用api的方法和*** | |
US20150347539A1 (en) | System and method of consuming and integrating with rest-based cloud and enterprise services | |
US9747353B2 (en) | Database content publisher | |
AU2023251465A1 (en) | System and method for generating api development code for integrating platforms | |
CN101976199A (zh) | 面向对象的中间件分布式***开发平台 | |
Rajam et al. | E-learning computational cloud (elc2): Web services platform to enhance task collaboration | |
CN106230889B (zh) | 移动应用业务组件资源管理方法及*** | |
CN103957255A (zh) | 一种轻量级应用开发云服务平台及其资源的访问方法 | |
CN102855280B (zh) | 一种异构数据处理方法和装置 | |
Farwick et al. | A web-based collaborative metamodeling environment with secure remote model access | |
CN113467775A (zh) | 一种生成页面的方法和装置 | |
Sharma et al. | Modeling cloud SaaS with SOA and MDA | |
CN105847319A (zh) | 一种移动终端网络请求方法及*** | |
CN102638572A (zh) | 基于Web Element机制的短信发送服务***及其工作方法 | |
CN101409731A (zh) | 通过ie远程对家庭电器设备控制的方法 | |
Vinoski | Convenience over correctness | |
KR101190597B1 (ko) | 로봇 소프트웨어 컴포넌트를 위한 메소드 포트 장치 및 구성 방법 | |
CN109976713A (zh) | 用于服务组装的脚本处理方法和装置 | |
KR20210095096A (ko) | 사용자 인식방법, 장치, 저장매체 및 전자기기 | |
Benmerar et al. | Toward a cloud architecture for medical imagery grid applications: The acigna-g project | |
Honkala | Web user interaction: a declarative approach based on XForms |
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 |