CN105354175A - 一种数据转换方法及系统 - Google Patents
一种数据转换方法及系统 Download PDFInfo
- Publication number
- CN105354175A CN105354175A CN201510686501.4A CN201510686501A CN105354175A CN 105354175 A CN105354175 A CN 105354175A CN 201510686501 A CN201510686501 A CN 201510686501A CN 105354175 A CN105354175 A CN 105354175A
- Authority
- CN
- China
- Prior art keywords
- file
- dynamic link
- link library
- data set
- agreement buffer
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
- G06F40/154—Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种数据转换方法及系统,其中,该方法包括:通过可扩展标记语言对各个数据集进行定义;对各个数据集的定义进行处理,生成与各个数据集相对应的各种中间数据;基于所述各种中间数据及预写的动态链接库框架代码文件,生成动态链接库;调用动态链接库的应用程序编程接口创建协议缓冲区对象,并通过相应的应用程序编程接口对协议缓冲区对象进行操作。本发明能够自动高效地适应数据集的变化,不需要改变应用程序的代码,实现数据集之间的数据转换。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据转换方法及系统。
背景技术
可扩展标记语言(ExtensibleMarkupLanguage,XML)具有简单性、结构化、可扩展性、互操作性、开放性、通用性、灵活性等特点,因而在数据转换、数据集成、数据发布、数据存储、数据管理、知识管理、信息检索等诸多领域获得广泛应用。
在数据转换应用中,通常采用XML定义的数据集通过一系列的过程进行数据集中实例数据的转换。在一个信息系统中,通常会根据工作的需要将一个数据集的实例数据转换为另一个数据集的实例数据,为了支持数据集的个数变化或是数据集的定义变化,通常的做法是在应用程序中手工修改相应的转换代码,重新编译整个应用程序,这种方法非常繁琐并且容易出错,当数据集发生变化时就需要编译整个应用程序。
发明内容
有鉴于此,本发明实施例提供一种数据转换方法及系统,能够自动高效地适应数据集的变化,不需要改变应用程序的代码,实现数据集之间的数据转换。
第一方面,本发明实施例提供了一种数据转换方法,包括:
通过可扩展标记语言对各个数据集进行定义;
对各个数据集的定义进行处理,生成与各个数据集相对应的各种中间数据;
基于所述各种中间数据及预写的动态链接库框架代码文件,生成动态链接库;
调用动态链接库的应用程序编程接口创建协议缓冲区对象,并通过相应的应用程序编程接口对协议缓冲区对象进行操作。
第二方面,本发明实施例还提供了一种数据转换系统,包括:
数据集定义模块,用于通过可扩展标记语言对各个数据集进行定义;
中间数据生成模块,用于对各个数据集的定义进行处理,生成与各个数据集相对应的各种中间数据;
动态链接库生成模块,用于基于所述各种中间数据及预写的动态链接库框架代码文件,生成动态链接库;
协议缓冲区对象操作模块,用于调用动态链接库的应用程序编程接口创建协议缓冲区对象,并通过相应的应用程序编程接口对协议缓冲区对象进行操作。
本发明实施例提供的一种数据转换方法及系统,通过将与数据集对应的中间数据生成动态链接库,当数据集变化时,仅需更新动态链接库,通过调用更新的动态链接库的接口就可以实现数据集实例数据的转换,不需要改变应用程序的代码。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1本实施例一提供的一种数据转换方法的流程图;
图2是本实施例一提供的应用程序的目录结构图;
图3是本实施例一提供的数据A中的实例向数据集B中的实例转换的流程图;
图4是本发明实施例二提供的一种数据转换系统的流程框图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
实施例一
图1为本发明实施例一提供的一种数据转换方法的流程图;该方法可以通过数据转换系统来执行,基于该系统可以由软件和/或硬件的方式来实现,如图1所示,所述的方法包括:
S110:通过可扩展标记语言对各个数据集进行定义。
在本实施例中,通过可扩展标记语言对数据集中的数据类型、数据的顺序、数据大小和数据长度进行定义等。例如,通过XML定义其中数据集的数据类型可以是整型值、定义数据的大小为8字节等。
S120:对各个数据集的定义进行处理,生成与各个数据集相对应的各种中间数据。
在本实施例中,对各个数据集定义的处理通过数据集预处理程序来执行。中间数据包括各个数据集对应的协议缓冲区ProtocolBuffer的定义文件、各个数据集之间的实例转换的字段对应关系,以及与ProtocolBuffer的定义文件相对应的h类型文件和与ProtocolBuffer的定义文件相对应的cc类型文件。
具体的,在本实施例中,生成中间数据的过程为:对各个数据集的定义进行处理,生成各个数据集对应的ProtocolBuffer的定义文件以及各个数据集之间的实例转换的字段对应关系。其中,各个数据集之间的实例转换的字段对应关系以C++源程序的形式表达,文件名为data.frag。
对ProtocolBuffer的定义文件进行处理,生成与ProtocolBuffer的定义文件相对应的h类型文件和与协议缓冲区的定义文件相对应的cc类型文件。其中,与ProtocolBuffer的定义文件相对应的h类型文件和与ProtocolBuffer的定义文件相对应的cc类型文件为.cc/.h文件对。
对生成中间数据过程进行举例说明,如果在一个信息系统,存在两个数据集为A和B,则将数据集A和数据B通过XML进行定义后,分别为a.xml和b.xml文件,将a.xml和b.xml文件进行处理后,分别生成与a.xml和b.xml文件相对应的ProtocolBuffer的定义文件,即为a.proto文件和b.proto文件,同时还生成数据集A与数据集B之间的实例转换的字段对应关系,其中包括数据集A到数据集B的实例转换的字段对应关系,以及数据集B到数据集A的实例转换的字段对应关系。
生成a.proto文件和b.proto文件以后,对a.proto文件和b.proto文件进行处理,生成与a.proto文件对应的h类型文件和cc类型文件,即a.h文件和a.cc文件,以及与b.proto文件对应的h类型文件和cc类型文件,即b.h文件和b.cc文件。
S130:基于所述各种中间数据及预写的动态链接库框架代码文件,生成动态链接库。
具体的,在本实施例中,生成动态链接库的过程为:将预写的动态链接库框架代码的h类型文件、ProtocolBuffer的定义文件相对应的h类型文件以及各个数据集之间的实例转换的字段对应关系文件嵌入到预写的动态链接库框架代码的cc类型文件中;将包含预写的动态链接库框架代码的h类型文件、与ProtocolBuffer的定义文件相对应的h类型文件以及各个数据集之间的实例转换的字段对应关系文件的动态链接库框架代码的cc类型文件编译成动态链接库框架代码的o类型文件;将与ProtocolBuffer的定义文件相对应的cc类型文件编译成与ProtocolBuffer的定义文件相对应的o类型文件;将动态链接库框架代码的o类型文件以及与ProtocolBuffer的定义文件相对应的o类型文件进行链接,生成动态链接库。
其中,ProtocolBuffer的定义文件为.proto文件,预写的动态链接库框架代码的h类型文件为pb_intf.h文件,动态链接库框架代码的cc类型文件为pb_intf.cc文件。动态链接库框架代码的o类型文件为pb_intf.o文件;动态链接库框架代码的h类型文件为说明动态链接库接口功能的文件;动态链接库框架代码的cc类型文件为实现动态链接库功能的代码文件。
具体的,将pb_intf.h文件、与ProtocolBuffer的定义文件相对应的h类型文件以及data.frag文件嵌入到pb_intf.cc文件时,需要创建文件名为all_pb.h文件的C++的头文件,将与ProtocolBuffer的定义文件相对应的h类型文件嵌入到all_pb.h文件中,再将all_pb.h文件嵌入到pb_intf.cc文件文件中。其中,all_pb.h文件是make过程自动生成的。
S140:调用动态链接库的应用程序编程接口创建ProtocolBuffer对象,并通过相应的应用程序编程接口对ProtocolBuffer对象进行操作。
在本实施例中,通过应用程序来执行调用动态链接库的应用程序编程接口的操作。图2为应用程序的目录结构图,其中,包括动态链接库框架代码文件。如图2所示,应用程序目录结构具体如下:project目录为整个项目的根目录;xml目录存放所有数据集定义文件(.xml文件);tool目录为数据集预处理程序所在的目录。在so目录下,proto目录,用于存放数据预处理程序处理各数据集定义文件后得到的各个.proto文件;data.frag文件为C++源程序文件,包含了各个数据之间的实例转换字段对应关系,并且data.frag文件被包含在pb_intf.cc文件中;pb_cc_h目录用于存放处理proto目录下的各个.proto文件得到的.cc/.h文件对;all_pb.h文件为C++头文件,包含了pb_cc_h目录下的所有.h文件,并且all_pb.h文件是make过程自动生成的,被包含在pb_intf.cc文件里。pb_intf.h文件定义了动态链接库的应用程序编程接口,即说明了动态链接库的应用程序编程接口的功能;pb_intf.cc文件实现了动态链接库的应用程序编程接口的功能。Makefile,用来生成动态链接库的make文件。app目录为应用程序的根目录。
对应上述的应用程序的目录,当将数据集A的实例转换成数据集B中的实例时,需要生成动态链接库,然后通过应用程序调用动态链接库的应用程序编程接口进行操作,如图3所示,具体包括:
S1401:对定义的a.xml和b.xml进行处理,将生成的a.proto文件和b.proto文件,拷贝到proto目录下,并将生成的data.frag文件拷贝到的so目录下;
S1402:处理proto目录下的a.proto文件和b.proto文件,将生成的相应的a.cc/a.h文件对以及b.cc/b.h文件对拷贝到pb_cc_h目录下;
S1403:将pb_cc_h目录下a.cc文件和b.cc编译成a.o和b.o文件;
S1404:在so目录下创建all_pb.h文件,使其包含pb_cc_h目录下的a.h和b.h文件;
S1405:将包含all_pb.h文件、pb_intf.h文件以及data.frag文件的pb_intf.cc文件编译成pb_intf.o文件;其中,all_pb.h文件、pb_intf.h文件以及data.frag文件均嵌入到pb_intf.cc文件中;
S1406:将pb_intf.o、a.o文件和b.o文件链接,形成动态链接库;
S1407:通过应用程序调用动态链接库的应用程序编程接口进行操作。通过此方法,可以生成或更新动态链接库,便于数据集之间实例的转换。
在上述实施例的基础上,上述的生成动态链接库以及调用动态链接库的操作方法适用于多个数据集的情形。
在本实施例中,动态链接库的应用程序编程接口包括:第一应用程序编程接口、第二应用程序编程接口、第三应用程序编程接口和第四应用程序编程接口,其中,第一应用程序编程接口,用于创建ProtocolBuffer对象;第二应用程序编程接口,用于修改ProtocolBuffer对象;第三应用程序编程接口,用于序列化ProtocolBuffer对象;第四应用程序编程接口,用于销毁ProtocolBuffer对象。
创建ProtocolBuffer对象中输入的参数为:源数据集名称、目标数据集名称,源数据集与目标数据集之间实例转换的字段对应关系指针的首地址;返回值为转换成void*形式的创建的ProtocolBuffer对象的首地址以及从源数据集到目标数据集实例转换的字段对应关系的首地址。
修改ProtocolBuffer对象中输入的参数为ProtocolBuffer对象的首地址以及修改的字段的名称和字段要赋予的值;返回值为整型值,通过返回值判断数据转换是否成功。
序列化ProtocolBuffer对象中输入的参数为:ProtocolBuffer对象的首地址和存放序列化后的值的对象的首地址;返回值为整型值,序列化后的值。返回的值能够判断操作是否成功。
销毁ProtocolBuffer对象中输入的参数为ProtocolBuffer对象的首地址,没有返回值。如果创建的ProtocolBuffer对象比较多,还需要继续创建ProtocolBuffer对象时,因存储空间有限,可以将一些已经无效或没有用途的ProtocolBuffer对象进行销毁,输入ProtocolBuffer对象的首地址,调用第四应用程序编程接口即可销毁相应的ProtocolBuffer对象。
当将数据集A的实例转换成数据集B中的实例时,应用程序调用动态链接库的第一应用程序编程接口,创建ProtocolBuffer对象,其中创建ProtocolBuffer对象中输入的源数据集的名称为A,目标数据集的名称为B,源数据集与目标数据集之间实例转换的字段对应关系的首地址保存到应用程序传递过来的一个指针里。
然后,应用程序调用动态链接库的第二应用程序编程接口,修改ProtocolBuffer对象,其中修改ProtocolBuffer对象中输入创建的ProtocolBuffer对象地址,修改字段的名称,字段赋予的值,例如,如果修改字段的名称为数据A中的出生年份,字段赋予的值为1990,也就是说将数据A中生于1990年的数据进行转换,根据创建的ProtocolBuffer对象中输入的data.frag文件中数据集A中年龄与数据集B中字段对应的关系,若数据集A中出生年份与数据集B的年龄对应,则调用第二应用程序编程接口,则可以将数据B中生于1990年的人员转换为年龄,这样实现了数据集A中实例向数据B中实例的转换。
因此,在实现数据集A中实例和数据集B中实例转换时,如果数据A和/或数据集B的定义发生变化时,应用程序的功能仍然是数据集A中实例和数据集B中实例转换,不需要更换应用程序的代码,仅需要更新动态链接库即可,采用应用程序调用更新后的动态链接库的应用程序编程接口,即可实现数据集之间数据的转换。
本实施例提供了一种数据转换方法,通过将与数据集对应的中间数据生成动态链接库,当数据集定义变化时,仅需更新动态链接库,通过调用更新的动态链接库的接口就可以数据集实例数据的转换,不需要改变应用程序的代码。
实施例二
图4是本发明实施例二提供的一种数据转换系统的结构框图,应用数据转换系统能够进行数据的转换,如图4所示,所述的系统包括:数据定义模块401、中间数据生成模块402、动态链接库生成模块403和ProtocolBuffer对象操作模块404。
数据集定义模块401,用于通过可扩展标记语言对各个数据集进行定义,其中,数据集定义模块401具体用于:通过可扩展标记语言对数据集中的数据类型、数据的顺序、数据大小和数据长度进行定义。
中间数据生成模块402,用于对各个数据集的定义进行处理,生成与各个数据集相对应的各种中间数据。
在本实施例中,所述中间数据包括各个数据集对应的ProtocolBuffer的定义文件、各个数据集之间的实例转换的字段对应关系,以及与ProtocolBuffer的定义文件相对应的h类型文件和与ProtocolBuffer的定义文件相对应的cc类型文件。
具体的,中间数据生成模块402包括数据集预处理模块4021和protoc工具模块4022;
所述数据集预处理模块4021,用于对各个数据集的定义进行处理,生成各个数据集对应的ProtocolBuffer的定义文件以及各个数据集之间的实例转换的字段对应关系;所述protoc工具模块4022,用于对ProtocolBuffer的定义文件进行处理,生成与ProtocolBuffer的定义文件相对应的h类型文件和cc类型文件。其中,数据集预处理模块4021通过数据集预处理程序来执行,protoc工具模块4022通过ProtocolBuffer库中的protoc来执行。其中,protoc为编译.proto文件的工具程序,
动态链接库生成模块403,用于基于所述各种中间数据及预写的动态链接库框架代码文件,生成动态链接库。
具体的,动态链接库生成模块403,用于将预写的动态链接库框架代码的h类型文件、与ProtocolBuffer的定义文件相对应的h类型文件以及各个数据集之间的实例转换的字段对应关系文件嵌入到预写的动态链接库框架代码的cc类型文件中;将包含预写的动态链接库框架代码的h类型文件、与ProtocolBuffer的定义文件相对应的h类型文件以及各个数据集之间的实例转换的字段对应关系文件的动态链接库框架代码的cc类型文件编译成动态链接库框架代码的o类型文件;将与ProtocolBuffer的定义文件相对应的cc类型文件编译成与ProtocolBuffer的定义文件相对应的o类型文件;将动态链接库框架代码的o类型文件以及与ProtocolBuffer的定义文件相对应的o类型文件进行链接,生成动态链接库。
ProtocolBuffer对象操作模块404,用于调用动态链接库的应用程序编程接口创建ProtocolBuffer对象,并通过相应的应用程序编程接口对ProtocolBuffer对象进行操作。其中,ProtocolBuffer对象操作模块通过应用程序进行执行。
所述动态链接库的应用程序编程接口包括:第一应用程序编程接口、第二应用程序编程接口、第三应用程序编程接口和第四应用程序编程接口,其中,第一应用程序编程接口,用于创建ProtocolBuffer对象;第二应用程序编程接口,用于修改ProtocolBuffer对象;第三应用程序编程接口,用于序列化ProtocolBuffer对象;第四应用程序编程接口,用于销毁ProtocolBuffer对象。
创建ProtocolBuffer对象中输入的参数为:源数据集名称、目标数据集名称,源数据集与目标数据集之间实例转换的字段对应关系指针的首地址;返回值为转换成void*形式的创建的ProtocolBuffer对象的首地址以及从源数据集到目标数据集实例转换的字段对应关系的首地址。
修改ProtocolBuffer对象中输入的参数为协议缓冲区对象的首地址以及修改的字段的名称和字段要赋予的值;返回值为整型值,通过返回值判断数据转换是否成功。
序列化ProtocolBuffer对象中输入的参数为:协议缓冲区对象的首地址和存放序列化后的值的对象的首地址;返回值为整型值,序列化后的值。通过返回值能够判断操作是否成功。
销毁ProtocolBuffer对象中输入的参数为ProtocolBuffer对象的首地址,没有返回值。如果创建的ProtocolBuffer对象比较多,还需要继续创建ProtocolBuffer对象时,因存储空间有限,可以将一些已经无效或没有用途的ProtocolBuffer对象进行销毁,输入ProtocolBuffer对象的首地址,调用第四应用程序编程接口即可销毁相应的ProtocolBuffer对象。
本实施例提供的一种数据转换系统,通过将与数据集对应的中间数据生成动态链接库,当数据集定义变化时,仅需更新动态链接库,通过调用更新的动态链接库的接口就可以数据集实例数据的转换,不需要改变应用程序的代码。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种数据转换方法,其特征在于,包括:
通过可扩展标记语言对各个数据集进行定义;
对各个数据集的定义进行处理,生成与各个数据集相对应的各种中间数据;
基于所述各种中间数据及预写的动态链接库框架代码文件,生成动态链接库;
调用动态链接库的应用程序编程接口创建协议缓冲区对象,并通过相应的应用程序编程接口对协议缓冲区对象进行操作。
2.根据权利要求1所述的方法,其特征在于,
所述中间数据包括各个数据集对应的协议缓冲区的定义文件、各个数据集之间的实例转换的字段对应关系,以及与协议缓冲区的定义文件相对应的h类型文件和与协议缓冲区的定义文件相对应的cc类型文件;
所述动态链接库的应用程序编程接口包括:
第一应用程序编程接口,用于创建协议缓冲区对象;
第二应用程序编程接口,用于修改协议缓冲区对象;
第三应用程序编程接口,用于序列化协议缓冲区对象;
第四应用程序编程接口,用于销毁协议缓冲区对象。
3.根据权利要求2所述的方法,其特征在于,
创建协议缓冲区对象中输入的参数为:源数据集名称、目标数据集名称,源数据集与目标数据集之间实例转换的字段对应关系指针的首地址;
修改协议缓冲区对象中输入的参数为:协议缓冲区对象的首地址,修改的字段的名称和字段要赋予的值;
序列化协议缓冲区对象中输入的参数为:协议缓冲区对象的首地址和存放序列化后的值的对象的首地址;
销毁协议缓冲区对象中输入的参数为协议缓冲区对象的首地址。
4.根据权利要求2所述的方法,其特征在于,所述对各个数据集的定义进行处理,生成与各个数据集相对应的各种中间数据,包括:
对各个数据集的定义进行处理,生成各个数据集对应的协议缓冲区的定义文件以及各个数据集之间的实例转换的字段对应关系;
对协议缓冲区的定义文件进行处理,生成与协议缓冲区的定义文件相对应的h类型文件和与协议缓冲区的定义文件相对应的cc类型文件。
5.根据权利要求2所述的方法,其特征在于,基于各种中间数据及预写的动态链接库框架代码文件,生成动态链接库,包括:
将预写的动态链接库框架代码的h类型文件、与协议缓冲区的定义文件相对应的h类型文件以及各个数据集之间的实例转换的字段对应关系文件嵌入到预写的动态链接库框架代码的cc类型文件中;
将包含预写的动态链接库框架代码的h类型文件、与协议缓冲区的定义文件相对应的h类型文件以及各个数据集之间的实例转换的字段对应关系文件的动态链接库框架代码的cc类型文件编译成动态链接库框架代码的o类型文件;
将与协议缓冲区的定义文件相对应的cc类型文件编译成与协议缓冲区的定义文件相对应的o类型文件;
将动态链接库框架代码的o类型文件以及与协议缓冲区的定义文件相对应的o类型文件进行链接,生成动态链接库;其中,动态链接库框架代码的h类型文件为说明动态链接库接口功能的文件;动态链接库框架代码的cc类型文件为实现动态链接库功能的代码文件。
6.一种数据转换系统,其特征在于,包括:
数据集定义模块,用于通过可扩展标记语言对各个数据集进行定义;
中间数据生成模块,用于对各个数据集的定义进行处理,生成与各个数据集相对应的各种中间数据;
动态链接库生成模块,用于基于所述各种中间数据及预写的动态链接库框架代码文件,生成动态链接库;
协议缓冲区对象操作模块,用于调用动态链接库的应用程序编程接口创建协议缓冲区对象,并通过相应的应用程序编程接口对协议缓冲区对象进行操作。
7.根据权利要求6所述的系统,其特征在于,所述中间数据包括各个数据集对应的协议缓冲区的定义文件、各个数据集之间的实例转换的字段对应关系,以及与协议缓冲区的定义文件相对应的h类型文件和与协议缓冲区的定义文件相对应的cc类型文件;
所述动态链接库的应用程序编程接口包括:
第一应用程序编程接口,用于创建协议缓冲区对象;
第二应用程序编程接口,用于修改协议缓冲区对象;
第三应用程序编程接口,用于序列化协议缓冲区对象;
第四应用程序编程接口,用于销毁协议缓冲区对象。
8.根据权利要求7所述的系统,其特征在于,
创建协议缓冲区对象中输入的参数为:源数据集名称、目标数据集名称,源数据集与目标数据集之间实例转换的字段对应关系指针的首地址;
修改协议缓冲区对象中输入的参数为:协议缓冲区对象的首地址,修改的字段的名称和字段要赋予的值;
序列化协议缓冲区对象中输入的参数为:协议缓冲区对象的首地址和存放序列化后的值的对象的首地址;
销毁协议缓冲区对象中输入的参数为协议缓冲区对象的首地址。
9.根据权利要求7所述的系统,其特征在于,中间数据生成模块包括数据集预处理模块和protoc工具模块;
所述数据集预处理模块,用于对各个数据集的定义进行处理,生成各个数据集对应的协议缓冲区的定义文件以及各个数据集之间的实例转换的字段对应关系;
所述protoc工具模块,用于对协议缓冲区的定义文件进行处理,生成与协议缓冲区的定义文件相对应的h类型文件和cc类型文件。
10.根据权利要求7所述的系统,其特征在于,动态链接库生成模块具体用于:
将预写的动态链接库框架代码的h类型文件、与协议缓冲区的定义文件相对应的h类型文件以及各个数据集之间的实例转换的字段对应关系文件嵌入到预写的动态链接库框架代码的cc类型文件中;
将包含预写的动态链接库框架代码的h类型文件、与协议缓冲区的定义文件相对应的h类型文件以及各个数据集之间的实例转换的字段对应关系文件的动态链接库框架代码的cc类型文件编译成动态链接库框架代码的o类型文件;
将与协议缓冲区的定义文件相对应的cc类型文件编译成与协议缓冲区的定义文件相对应的o类型文件;
将动态链接库框架代码的o类型文件以及与协议缓冲区的定义文件相对应的o类型文件进行链接,生成动态链接库;其中,动态链接库框架代码的h类型文件为说明动态链接库接口功能的文件;动态链接库框架代码的cc类型文件为实现动态链接库功能的代码文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510686501.4A CN105354175B (zh) | 2015-10-21 | 2015-10-21 | 一种数据转换方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510686501.4A CN105354175B (zh) | 2015-10-21 | 2015-10-21 | 一种数据转换方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105354175A true CN105354175A (zh) | 2016-02-24 |
CN105354175B CN105354175B (zh) | 2018-03-23 |
Family
ID=55330149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510686501.4A Active CN105354175B (zh) | 2015-10-21 | 2015-10-21 | 一种数据转换方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105354175B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106293866A (zh) * | 2016-08-15 | 2017-01-04 | 湖南全软软件技术有限公司 | 一种chi编程语言 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1677342A (zh) * | 2004-03-30 | 2005-10-05 | 富士通株式会社 | 通过在屏幕上显示的数据链接不同应用程序的方法和程序 |
US20090198756A1 (en) * | 2008-02-06 | 2009-08-06 | Sap Ag | Representation of data transformation processes for parallelization |
CN103389991A (zh) * | 2012-05-09 | 2013-11-13 | 阿里巴巴集团控股有限公司 | 数据交互的方法及装置以及数据转换的方法及装置 |
-
2015
- 2015-10-21 CN CN201510686501.4A patent/CN105354175B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1677342A (zh) * | 2004-03-30 | 2005-10-05 | 富士通株式会社 | 通过在屏幕上显示的数据链接不同应用程序的方法和程序 |
US20090198756A1 (en) * | 2008-02-06 | 2009-08-06 | Sap Ag | Representation of data transformation processes for parallelization |
CN103389991A (zh) * | 2012-05-09 | 2013-11-13 | 阿里巴巴集团控股有限公司 | 数据交互的方法及装置以及数据转换的方法及装置 |
Non-Patent Citations (2)
Title |
---|
刁兴春等: "异构数据转换关键技术的实现", 《计算机工程》 * |
李华: "基于XML的异构数据交换技术研究", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106293866A (zh) * | 2016-08-15 | 2017-01-04 | 湖南全软软件技术有限公司 | 一种chi编程语言 |
Also Published As
Publication number | Publication date |
---|---|
CN105354175B (zh) | 2018-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Burns et al. | A review of interoperability standards for industry 4.0. | |
US9501267B2 (en) | Generating a service component architecture (SCA) module with service oriented architecture (SOA) model elements | |
US8271935B2 (en) | Methods and tools for data-driven application engineering | |
CN109032662B (zh) | 代码文件生成方法、装置、计算机设备和存储介质 | |
CN102087594B (zh) | 扩展点和插件的管理方法和装置 | |
Güdemann et al. | VerChor: a framework for the design and verification of choreographies | |
CN111213137A (zh) | 源基础设施数据与bis概念模式的对齐 | |
CN1464401A (zh) | 使用影子对象进行核准控制的面向对象系统和方法 | |
ZA200600754B (en) | Platform for data services across disperate application frameworks | |
CN104461516A (zh) | 一种数据处理方法和装置 | |
CN101236503A (zh) | 一种热部署实体类组件 | |
Rademacher et al. | Deriving microservice code from underspecified domain models using DevOps-enabled modeling languages and model transformations | |
CN104615489A (zh) | 一种多节点数据交互的实现方法 | |
Tröls et al. | Multifaceted consistency checking of collaborative engineering artifacts | |
Tröls et al. | Live and global consistency checking in a collaborative engineering environment | |
US20180121172A1 (en) | Specifying models of an architectural type | |
CN102811257A (zh) | 一种网络服务自动发布和组合方法 | |
CN105354175A (zh) | 一种数据转换方法及系统 | |
Dwivedi et al. | Ontology-based modelling of iot design patterns | |
Cavalcanti et al. | Structural genomic workflows supported by web services | |
Kraas | Realizing Model Simplifications with QVT Operational Mappings. | |
Chandra et al. | Information technology support for integrated supply chain modeling | |
CN104572117A (zh) | 一种预留接口的实现方法 | |
Wicks | Tool integration within software engineering environments: An annotated bibliography | |
Singh | Systems integration‐coping with legacy systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: A Data Conversion Method and System Effective date of registration: 20230807 Granted publication date: 20180323 Pledgee: Bank of China Limited Beijing Xicheng Branch Pledgor: RUN TECHNOLOGIES Co.,Ltd. BEIJING Registration number: Y2023980051158 |