CN108810000B - 一种生成序列化和反序列化api的方法及装置 - Google Patents
一种生成序列化和反序列化api的方法及装置 Download PDFInfo
- Publication number
- CN108810000B CN108810000B CN201810637635.0A CN201810637635A CN108810000B CN 108810000 B CN108810000 B CN 108810000B CN 201810637635 A CN201810637635 A CN 201810637635A CN 108810000 B CN108810000 B CN 108810000B
- Authority
- CN
- China
- Prior art keywords
- api
- data
- deserialization
- pair
- generating
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Abstract
本发明提出一种生成应用程序编程接口的方法及装置,该方法包括:按照SomeIpXf规范生成基础开发模板库;其中,所述基础开发模板库包括用于对SomeIpXf报文首部进行序列化和反序列化处理的第一API对,和用于对各个基本数据类型的数据进行序列化和反序列化处理的各个第二API对;根据所述基础开发模板库生成用于对各个复杂数据类型的数据进行序列化和反序列化处理的各个第三API对,和用于对各个远程过程调用类型的数据进行序列化和反序列化处理的各个第四API对。上述方法及装置可以用来作为生成结构化数据的序列化和反序列化API的参考,将其应用到SomeIpXf开发中可以提高SomeIpXf开发效率。
Description
技术领域
本发明涉及车载以太网数据传输技术领域,尤其涉及一种生成序列化和反序列化API的方法及装置。
背景技术
目前在汽车电子相关的嵌入式领域,基于SOME/IP(Scalable service-OrientedMiddlewarE over Internet Protocol,基于互联网协议的面向服务的数据交互中间件)的ECU(Electronic Control Unit,电子控制单元)之间的以太网通信均需要实现结构化数据的网络传输。但以太网网络总线上只能传输以太网报文,而无法传输结构化数据。所以,数据发送方ECU要想将结构化数据通过以太网传到接收方ECU,就必须先将该结构化数据序列化为能在以太网总线上传输的以太网报文。同时,数据接收方ECU希望收到的是序列化之前的结构化数据,但网络上实际传送过来的是以太网报文,所以就需要将接收到的以太网报文反序列化为序列化之前的结构化数据。
在车载网络中,结构化数据的序列化及反序列化均遵循SomeIpXf(SOME/IPTransformer,基于互联网协议的面向服务的数据交互中间件数据转换器)相关规范。此规范要求为每一种需要进行网络传输的结构化数据单独开发两个API(ApplicationProgramming Interface,应用程序编程接口)分别用于实现对该数据类型的序列化及反序列化操作,并对各个数据类型的序列化及反序列化格式做了基本要求。但是,该规范仅仅是要求分别为每种数据类型开发API,以及对结构化数据的序列化和反序列化格式进行了要求,但是并没有说明如何生成结构化数据的序列化API和反序列化API,导致在生成结构化数据的序列化API和反序列化API时没有生成方法可以直接参考,进而导致SomeIpXf开发效率较低。
发明内容
基于上述现有技术的需求,本发明提出一种生成序列化和反序列化API的方法及装置,能够生成序列化和反序列化API,将该方法及装置应用到结构化数据传输中可以实现对结构化数据的序列化和反序列化。
一种生成序列化和反序列化API的方法,包括:
按照SomeIpXf规范生成第一API对和第二API对,并利用生成的第一API对和第二API对生成基础开发模板库;其中,所述第一API对用于对SomeIpXf报文首部进行序列化和反序列化处理,生成的每一对第二API对分别用于对一种基本数据类型的数据进行序列化和反序列化处理;
根据所述基础开发模板库生成用于对各种复杂数据类型的数据进行序列化和反序列化处理的各个第三API对,和用于对各种远程过程调用类型的数据进行序列化和反序列化处理的各个第四API对。
可选的,所述按照SomeIpXf规范生成第一API对和第二API对,并利用生成的第一API对和第二API对生成基础开发模板库,包括:
按照SomeIpXf规范生成用于对SomeIpXf报文首部进行序列化和反序列化处理的第一API对;
按照所述SomeIpXf规范生成用于对各种基本数据类型的数据进行序列化和反序列化处理的各个第二API对;
利用所述第一API对和各个所述第二API对,生成基础开发模板库。
可选的,所述根据所述基础开发模板库生成用于对各种复杂数据类型的数据进行序列化和反序列化处理的各个第三API对,和用于对各种远程过程调用类型的数据进行序列化和反序列化处理的各个第四API对,包括:
根据所述基础开发模板库生成第三API对,并利用生成的第三API对生成扩展开发模板库;其中,生成的每一对第三API对分别用于对一种复杂数据类型的数据进行序列化和反序列化处理;
根据所述基础开发模板库和所述扩展开发模板库,生成用于对各种远程过程调用类型的数据进行序列化和反序列化处理的各个第四API对。
可选的,所述根据所述基础开发模板库生成第三API对,并利用生成的第三API对生成扩展开发模板库,包括:
根据所述基础开发模板库,分别为每种复杂数据类型的数据生成用于进行序列化和反序列化处理的第三API对;
利用各个第三API对生成扩展开发模板库。
可选的,所述根据所述基础开发模板库和所述扩展开发模板库,生成用于对各种远程过程调用类型的数据进行序列化和反序列化处理的各个第四API对,包括:
根据所述基础开发模板库和所述扩展开发模板库,分别为每种远程过程调用类型的数据生成用于进行序列化和反序列化处理的第四API对。
可选的,所述根据所述基础开发模板库生成用于对各种复杂数据类型的数据进行序列化和反序列化处理的各个第三API对,和用于对各种远程过程调用类型的数据进行序列化和反序列化处理的各个第四API对,包括:
根据所述基础开发模板库,分别为每种复杂数据类型的数据生成用于进行序列化和反序列化处理的第三API对,以及根据所述基础开发模板库,分别为每种远程过程调用类型的数据生成用于进行序列化和反序列化处理的第四API对。
一种生成序列化和反序列化API的装置,包括:
基础开发模板库生成单元,用于按照SomeIpXf规范生成第一API对和第二API对,并利用生成的第一API对和第二API对生成基础开发模板库;其中,所述第一API对用于对SomeIpXf报文首部进行序列化和反序列化处理,生成的每一对第二API对分别用于对一种基本数据类型的数据进行序列化和反序列化处理;
接口生成单元,用于根据所述基础开发模板库生成用于对各种复杂数据类型的数据进行序列化和反序列化处理的各个第三API对,和用于对各种远程过程调用类型的数据进行序列化和反序列化处理的各个第四API对。
可选的,所述基础开发模板库生成单元,包括:
第一生成单元,用于按照SomeIpXf规范生成用于对SomeIpXf报文首部进行序列化和反序列化处理的第一API对;
第二生成单元,用于按照所述SomeIpXf规范生成用于对各种基本数据类型的数据进行序列化和反序列化处理的各个第二API对;
汇总处理单元,用于利用所述第一API对和各个所述第二API对,生成基础开发模板库。
可选的,所述接口生成单元,包括:
扩展开发模板库生成单元,用于根据所述基础开发模板库生成第三API对,并利用生成的第三API对生成扩展开发模板库;其中,生成的每一对第三API对分别用于对一种复杂数据类型的数据进行序列化和反序列化处理;
第三生成单元,用于根据所述基础开发模板库和所述扩展开发模板库,生成用于对各种远程过程调用类型的数据进行序列化和反序列化处理的各个第四API对。
可选的,所述接口生成单元根据所述基础开发模板库生成用于对各种复杂数据类型的数据进行序列化和反序列化处理的各个第三API对,和用于对各种远程过程调用类型的数据进行序列化和反序列化处理的各个第四API对时,具体用于:
根据所述基础开发模板库,分别为每种复杂数据类型的数据生成用于进行序列化和反序列化处理的第三API对,以及根据所述基础开发模板库,分别为每种远程过程调用类型的数据生成用于进行序列化和反序列化处理的第四API对。
本发明提出的生成序列化和反序列化API的方法及装置,先按照SomeIpXf规范生成第一API对和第二API对,并利用生成的第一API对和第二API对生成基础开发模板库;其中,所述第一API对用于对SomeIpXf报文首部进行序列化和反序列化处理,生成的每一对第二API对分别用于对一种基本数据类型的数据进行序列化和反序列化处理;然后根据所述基础开发模板库生成用于对各种复杂数据类型的数据进行序列化和反序列化处理的各个第三API对,和用于对各种远程过程调用类型的数据进行序列化和反序列化处理的各个第四API对。上述方法是生成结构化数据的序列化和反序列化API的有效方法,该方法可以用来作为生成结构化数据的序列化和反序列化API的参考方法,将其应用到SomeIpXf开发中可以提高SomeIpXf开发效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本发明实施例提供的一种生成序列化和反序列化API的方法的流程示意图;
图2是本发明实施例提供的另一种生成序列化和反序列化API的方法的流程示意图;
图3是本发明实施例提供的又一种生成序列化和反序列化API的方法的流程示意图;
图4是本发明实施例提供的一种生成序列化和反序列化API的装置的结构示意图;
图5是本发明实施例提供的另一种生成序列化和反序列化API的装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的各个其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种生成序列化和反序列化API(Application ProgrammingInterface,应用程序编程接口)的方法,该方法可用于生成将结构化数据序列化为以太网报文的序列化API,和将结构化数据序列化得到的以太网报文反序列化为结构化数据的反序列化API。
需要说明的是,在基于SOME/IP的ECU之间的以太网通信中,必须将结构化数据先进行序列化,经过以太网传输后再进行反序列化。因此,在生成API时,一般要成对生成序列化API和反序列化API,即对于用于对某种类型的结构化数据进行序列化和反序列化的API,在生成序列化API时,要相应地生成对应的反序列化API,以便于在具体传输该结构化数据时,能够分别实现对结构化数据的序列化和传输之后的反序列化。
基于上述需求,本发明实施例公开的生成序列化和反序列化API的方法,具体是生成对结构化数据进行序列化和反序列化处理的API对。每一个API对包含两个API,分别用于将结构化数据序列化为以太网报文,以及将序列化得到的以太网报文反序列化为结构化数据。可以理解,参照本发明实施例技术方案,也可以单独生成用于对结构化数据进行序列化的API,或者是将以太网报文反序列化为结构化数据的API,其处理过程与本发明实施例介绍的处理过程类似,本发明实施例不再详细论述。
在SomeIpXf规范中,结构化数据类型包括:基本数据类型、复杂数据类型、RPC(Remote Procedure Call,远程过程调用)请求及RPC响应。其中,复杂数据类型都是由基本数据类型构成的复杂数据结构,如编程中常用的数组、结构体以及用户自定义的数据类型等都属于复杂数据类型。RPC请求及RPC响应是指通过网络调用远程ECU的函数接口,RPC请求及RPC响应一般需要传输的有效信息包括:函数接口编号以及0至多个基本数据类型或复杂数据类型构成的函数参数,换言之,RPC请求及RPC响应可以等效为包含函数接口编号以及0至多个基本数据类型或复杂数据类型的复杂数据结构。综上,复杂数据类型序列化及反序列API可以基于基本数据类型的序列化及反序列API实现,RPC请求及RPC响应的序列化及反序列API可以基于基本数据类型及复杂数据类型的序列化及反序列API实现。
基于上述介绍,本发明实施例在生成API时,首先按照SomeIpXf规范生成用于对基本数据类型的数据进行序列化和反序列化的API,然后再基于生成的用于对基本数据类型的数据进行序列化和反序列化的API生成用于对复杂数据类型的数据、RPC请求及RPC响应的数据进行序列化和反序列化的API。这样处理免去了按照SomeIpXf规范生成各种类型的数据的序列化和反序列化API的繁琐过程,使生成API的处理程序更简化。
参见图1所示,本发明实施例公开的生成应用程序编程接口的方法包括:
S101、按照SomeIpXf规范生成第一API对和第二API对,并利用生成的第一API对和第二API对生成基础开发模板库;
具体的,在车载网络中,结构化数据的序列化及反序列化均遵循SomeIpXf模块(SOME/IP Transformer,SOME/IP数据转换器)相关规范,此规范要求为每一种需要进行网络传输的结构化数据单独开发两个API(Application Programming Interface,应用程序编程接口)分别用于实现对该数据类型的序列化及反序列化操作,并对各种数据类型的序列化及反序列化格式做了基本要求,具体可参考AUTOSAR(Automotive Open SystemArchitecture,汽车开放系统架构,一种由汽车制造商、供应商及工具开发商联合开发的标准化软件架构)规范中的SomeIpXf相关文档。
通过前述介绍已知,结构化数据类型包括:基本数据类型、复杂数据类型、RPC(Remote Procedure Call,远程过程调用)请求及RPC响应,而复杂数据类型、RPC请求及RPC响应类型的数据又都是基于基本数据类型构成。相应的,用于对基本数据类型的数据进行序列化和反序列化的API,和用于对复杂数据类型的数据、RPC请求和RPC响应类型的数据进行序列化和反序列化处理的API之间也存在上述构成关系。因此,本发明实施例将用于对基本数据类型的数据进行序列化和反序列化的API作为生成用于对复杂数据类型的数据、RPC请求即RPC响应类型的数据进行序列化和反序列化处理的API的基础,先生成用于对基本数据类型的数据进行序列化和反序列化的API对,便于后续以此为模板进一步生成用于对复杂数据类型的数据、RPC请求即RPC响应类型的数据进行序列化和反序列化处理的API对。
本发明实施例还按照上述SomeIpXf规范的要求,编程生成用于对SomeIpXf报文首部进行序列化和反序列化处理的第一API对。需要说明的是,对于结构化数据,不管是基本数据类型的数据,还是复杂数据类型的数据,还是远程过程调用类型的数据,都包含报文首部,在对其报文首部进行序列化和反序列化时,都可以利用上述的第一API对实现,即不同类型的结构化数据之间可以共用相同的报文首部序列化和反序列化API。因此,本发明实施例在上述生成第一API对后,不再针对复杂数据类型和远程过程调用数据类型生成用于对报文首部进行序列化和反序列化的API对,在实际对结构化数据进行序列化和反序列化时,默认复用上述第一API对即可。本发明实施例下文详细介绍的技术方案主要讨论如何生成用于对结构化数据的具体数据内容进行序列化和反序列化处理的API。当对各种类型的结构化数据进行序列化和反序列化的API都具备以后,在实际中如何应用就是很简单的问题,只是调用各个API的问题,本发明实施例不再详述。
同时,本发明实施例按照上述SomeIpXf规范的要求,针对每一种基本数据类型的数据,通过编程生成相应的序列化API和反序列化API,即针对每一种基本数据类型,生成用于对其进行序列化和反序列化的第二API对。可以理解,有多少种基本数据类型,就需要生成多少个对应的第二API对,每一对第二API对用于对一种基本数据类型的数据进行序列化和反序列化处理。
最后,本发明实施例将上述生成的各个用于对基本数据类型的数据进行序列化和反序列化处理的第二API对,以及上述用于对报文首部进行序列化和反序列化处理的第一API对进行汇总,汇总得到的API对集合作为基础开发模板库。
S102、根据所述基础开发模板库生成用于对各种复杂数据类型的数据进行序列化和反序列化处理的各个第三API对,和用于对各种远程过程调用类型的数据进行序列化和反序列化处理的各个第四API对。
具体的,基于上述介绍的基本数据类型、复杂数据类型、RPC请求和RPC响应类型的数据之间的构成关系,用于对复杂数据类型、RPC请求和RPC响应类型的数据进行序列化和反序列化处理的API接口可以由用于对基本数据类型的数据进行序列化和反序列化处理的API接口构成。
因此,在通过执行步骤S101得到基础开发模板库后,本发明实施例针对每一种复杂数据类型的数据,分别利用基础开发模板库中的API对构成用于对其进行序列化和反序列化处理的API对,即根据基础开发模板库生成用于对各种复杂数据类型的数据进行序列化和反序列化处理的各个的第三API对。
同时,本发明实施例针对每一种RPC请求和RPC响应类型的数据,分别利用基础开发模板库中的API对构成用于对其进行序列化和反序列化处理的API对,即根据基础开发模板库生成用于对各种RPC类型的数据进行序列化和反序列化处理的各个的第四API对。
需要说明的是,在RPC请求和RPC响应类型的数据中,可能包含复杂数据类型的数据,针对这些复杂数据类型的数据,可以直接利用已经生成的用于对该种复杂数据类型的数据进行序列化和反序列化处理的API对,也可以利用基础开发模板库再次生成用于对该种复杂数据类型的数据进行序列化和反序列化处理的API对。
通过上述介绍可见,本发明实施例公开的生成应用程序编程接口的方法,先按照SomeIpXf规范生成第一API对和第二API对,并利用生成的第一API对和第二API对生成基础开发模板库;其中,所述第一API对用于对SomeIpXf报文首部进行序列化和反序列化处理,生成的每一对第二API对分别用于对一种基本数据类型的数据进行序列化和反序列化处理;根据所述基础开发模板库生成用于对各种复杂数据类型的数据进行序列化和反序列化处理的各个第三API对,和用于对各种远程过程调用类型的数据进行序列化和反序列化处理的各个第四API对。上述方法是生成结构化数据的序列化和反序列化API的有效方法,该方法可以用来作为生成结构化数据的序列化和反序列化API的参考方法,将其应用到SomeIpXf开发中可以提高SomeIpXf开发效率。
可选的,在本发明的另一个实施例中,参见图2所示,所述按照SomeIpXf规范生成第一API对和第二API对,并利用生成的第一API对和第二API对生成基础开发模板库,包括:
S201、按照SomeIpXf规范生成用于对SomeIpXf报文首部进行序列化和反序列化处理的第一API对;
具体的,本发明实施例按照AUTOSAR的SomeIpXf规范,编程实现用于对SomeIpXf报文首部进行序列化及反序列化处理的API对,为了便于区分,本发明实施例将其命名为第一API对。
S202、按照所述SomeIpXf规范生成用于对各种基本数据类型的数据进行序列化和反序列化处理的各个第二API对;
具体的,本发明实施例按照AUTOSAR的SomeIpXf规范,编程实现用于对各种基本数据类型的数据进行序列化及反序列化处理的API对,为了便于区分,本发明实施例将其命名为第二API对。
可以理解,每一对第二API对用于对一种基本数据类型的数据进行序列化和反序列化处理。因此,存在多少种基本数据类型的数据,就需要生成相应的多少对第二API对。
需要说明的是,上述步骤S201和步骤S202没有严格的先后执行顺序,本发明实施例只是示例性地介绍生成API对的处理过程,在实际实施本发明实施例技术方案时,也可以先执行上述步骤S202的处理过程,再执行上述步骤S201的处理过程,也可以同时执行上述步骤S201和S202的处理过程,本发明实施例技术方案并不做严格限定。
S203、利用所述第一API对和各个所述第二API对,生成基础开发模板库。
具体的,本发明实施例将步骤S201和步骤S202生成的各个第一API对和第二API对进行汇总,得到的API对集合作为基础开发模板库。可以理解,基础开发模板库中包含各个用于对基本数据类型的数据进行序列化和反序列化处理的API对,以及用于对SomeIpXf报文首部进行序列化和反序列化处理的API对。
本实施例中的步骤S204与图1所示的方法实施例中的步骤S102相对应,其具体处理内容请参见图1所示的方法实施例中的步骤S102,此处不再赘述。
可选的,在本发明的另一个实施例中,参见图3所示,所述根据所述基础开发模板库生成用于对各种复杂数据类型的数据进行序列化和反序列化处理的各个第三API对,和用于对各种远程过程调用类型的数据进行序列化和反序列化处理的各个第四API对,包括:
S302、根据所述基础开发模板库生成第三API对,并利用生成的第三API对生成扩展开发模板库;其中,生成的每一对第三API对分别用于对一种复杂数据类型的数据进行序列化和反序列化处理;
具体的,上述基础开发模板库中包含用于对基本数据类型的数据进行序列化和反序列化处理的各个API对,以及用于对SomeIpXf报文首部进行序列化和反序列化处理的API对。
以上述基础开发模板库为基础,本发明实施例进一步生成扩展开发模板库,也就是以基础开发模板库中的用于对基本数据类型的数据进行序列化和反序列化处理的各个API对,以及用于对SomeIpXf报文首部进行序列化和反序列化处理的API对为基础,生成用于对各种复杂数据类型的数据进行序列化和反序列化处理的各个第三API对,利用各个第三API对组成扩展开发模板库。
在本发明的另一个实施例中,详细公开了上述根据所述基础开发模板库生成第三API对,并利用生成的第三API对生成扩展开发模板库的具体处理过程。
所述根据所述基础开发模板库生成第三API对,并利用生成的第三API对生成扩展开发模板库,包括:
根据所述基础开发模板库,分别为每种复杂数据类型的数据生成用于进行序列化和反序列化处理的第三API对;
利用各个第三API对生成扩展开发模板库。
具体的,针对每一种复杂数据类型的数据,根据其包含的基本数据类型的数据的构成方式,依次调用基础开发模板库中相应的用于对基本数据类型的数据进行序列化和反序列化处理的API对,生成用于对该种复杂数据类型的数据进行序列化和反序列化处理的API对,为了便于区分,本发明实施例将其命名为第三API对。
可以理解,一对第三API对包含至少两对第二API对,用于对一种复杂数据类型的数据进行序列化和反序列化处理,有多少种复杂数据类型的数据,就要相应的生成多少对第三API对。
将各个第三API对进行汇总,得到的第三API对集合作为扩展开发模板库。
S303、根据所述基础开发模板库和所述扩展开发模板库,生成用于对各种远程过程调用类型的数据进行序列化和反序列化处理的各个第四API对。
具体的,在依次生成基础开发模板库和扩展开发模板库后,即分别得到了用于对各种基本数据类型的数据进行序列化和反序列化处理的各个第二API对,以及用于对各种复杂数据类型的数据进行序列化和反序列化处理的各个第三API对。
在此基础上,本发明实施例利用上述基础开发模板库和扩展开发模板库,也就是用于对各种基本数据类型的数据进行序列化和反序列化处理的各个第二API对,以及用于对各种复杂数据类型的数据进行序列化和反序列化处理的各个第三API对,生成用于对各种RPC请求和RPC响应类型的数据进行序列化和反序列化处理的各个API对,为了便于区分,本发明实施例将其命名为第四API对。
在本发明的另一个实施例中,详细公开了上述根据所述基础开发模板库和所述扩展开发模板库,生成用于对各种远程过程调用类型的数据进行序列化和反序列化处理的各个第四API对的具体处理过程。
所述根据所述基础开发模板库和所述扩展开发模板库,生成用于对各种远程过程调用类型的数据进行序列化和反序列化处理的各个第四API对,包括:
根据所述基础开发模板库和所述扩展开发模板库,分别为每种远程过程调用类型的数据生成用于进行序列化和反序列化处理的第四API对。
具体的,针对每一种RPC请求和对应的RPC响应类型的数据,根据其包含的基本数据类型和复杂数据类型的数据的构成方式,依次调用基础开发模板库中相应的用于对基本数据类型的数据进行序列化和反序列化处理的API对,以及扩展开发模板库中相应的用于对复杂数据类型的数据进行序列化和反序列化处理的API对,生成用于对该种RPC请求和对应的RPC响应类型的数据进行序列化和反序列化处理的API对,为了便于区分,本发明实施例将其命名为第四API对。
本实施例中的步骤S301对应于图1所示的方法实施例中的步骤S101,其具体内容请参见图1所示的方法实施例的内容,此处不再赘述。
可选的,在本发明的另一个实施例中,所述根据所述基础开发模板库生成用于对各种复杂数据类型的数据进行序列化和反序列化处理的各个第三API对,和用于对各种远程过程调用类型的数据进行序列化和反序列化处理的各个第四API对,包括:
根据所述基础开发模板库,分别为每种复杂数据类型的数据生成用于进行序列化和反序列化处理的第三API对,以及根据所述基础开发模板库,分别为每种远程过程调用类型的数据生成用于进行序列化和反序列化处理的第四API对。
具体的,在本发明的上一实施例中,在根据基础开发模板库分别为每种复杂数据类型的数据生成用于进行序列化和反序列化处理的第三API对,以及分别为每种RPC类型的数据生成用于进行序列化和反序列化处理的第四API对时,是先根据基础开发模板库分别为每种复杂数据类型的数据生成用于进行序列化和反序列化处理的第三API对,将各个第三API对汇总得到扩展开发模板库,然后再根据基础开发模板库和扩展开发模板库分别为每种RPC类型的数据生成用于进行序列化和反序列化处理的第四API对。在上述处理过程中,生成第三API对和生成第四API对具有先后顺序限制,即要先为复杂数据类型的数据生成第三API对,然后再利用基本数据类型的数据的第二API对和复杂数据类型的数据的第三API对,为RPC类型的数据生成第四API对。
而由于复杂数据类型的数据的第三API对也是由第二API对构成,因此,在本发明实施例中,同时利用基础开发模板库分别为每种复杂数据类型的数据生成用于进行序列化和反序列化处理的第三API对,以及分别为每种RPC类型的数据生成用于进行序列化和反序列化处理的第四API对,解除两个处理过程之间的先后执行顺序限制。
本发明实施例还公开了一种生成序列化和反序列化API的装置,参见图4所示,该装置包括:
基础开发模板库生成单元100,用于按照SomeIpXf规范生成第一API对和第二API对,并利用生成的第一API对和第二API对生成基础开发模板库;其中,所述第一API对用于对SomeIpXf报文首部进行序列化和反序列化处理生成的每一对第二API对分别用于对一种基本数据类型的数据进行序列化和反序列化处理;
接口生成单元110,用于根据所述基础开发模板库生成用于对各种复杂数据类型的数据进行序列化和反序列化处理的各个第三API对,和用于对各种远程过程调用类型的数据进行序列化和反序列化处理的各个第四API对。
可选的,在本发明的另一个实施例中,参见图5所示,所述基础开发模板库生成单元100,包括:
第一生成单元1001,用于按照SomeIpXf规范生成用于对SomeIpXf报文首部进行序列化和反序列化处理的第一API对;
第二生成单元1002,用于按照所述SomeIpXf规范生成用于对各种基本数据类型的数据进行序列化和反序列化处理的各个第二API对;
汇总处理单元1003,用于利用所述第一API对和各个所述第二API对,生成基础开发模板库。
可选的,在本发明的另一个实施例中,所述接口生成单元110,包括:
扩展开发模板库生成单元,用于根据所述基础开发模板库生成第三API对,并利用生成的第三API对生成扩展开发模板库;其中,生成的每一对第三API对分别用于对一种复杂数据类型的数据进行序列化和反序列化处理;
第三生成单元,用于根据所述基础开发模板库和所述扩展开发模板库,生成用于对各种远程过程调用类型的数据进行序列化和反序列化处理的各个第四API对。
可选的,在本发明的另一个实施例中,所述接口生成单元110根据所述基础开发模板库生成用于对各种复杂数据类型的数据进行序列化和反序列化处理的各个第三API对,和用于对各种远程过程调用类型的数据进行序列化和反序列化处理的各个第四API对时,具体用于:
根据所述基础开发模板库,分别为每种复杂数据类型的数据生成用于进行序列化和反序列化处理的第三API对,以及根据所述基础开发模板库,分别为每种远程过程调用类型的数据生成用于进行序列化和反序列化处理的第四API对。
具体的,上述各个实施例中的各个单元的具体工作内容,请参见上述方法实施例的内容,此处不再赘述。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (7)
1.一种生成序列化和反序列化API的方法,其特征在于,包括:
按照SomeIpXf规范生成第一API对和第二API对,并利用生成的第一API对和第二API对生成基础开发模板库;其中,所述第一API对用于对SomeIpXf报文首部进行序列化和反序列化处理,生成的每一对第二API对分别用于对一种基本数据类型的数据进行序列化和反序列化处理;
根据所述基础开发模板库生成用于对各种复杂数据类型的数据进行序列化和反序列化处理的各个第三API对,和用于对各种远程过程调用类型的数据进行序列化和反序列化处理的各个第四API对。
2.根据权利要求1所述的方法,其特征在于,所述根据所述基础开发模板库生成用于对各种复杂数据类型的数据进行序列化和反序列化处理的各个第三API对,和用于对各种远程过程调用类型的数据进行序列化和反序列化处理的各个第四API对,包括:
根据所述基础开发模板库生成第三API对,并利用生成的第三API对生成扩展开发模板库;其中,生成的每一对第三API对分别用于对一种复杂数据类型的数据进行序列化和反序列化处理;
根据所述基础开发模板库和所述扩展开发模板库,生成用于对各种远程过程调用类型的数据进行序列化和反序列化处理的各个第四API对。
3.根据权利要求1所述的方法,其特征在于,所述根据所述基础开发模板库生成用于对各种复杂数据类型的数据进行序列化和反序列化处理的各个第三API对,和用于对各种远程过程调用类型的数据进行序列化和反序列化处理的各个第四API对,包括:
根据所述基础开发模板库,分别为每种复杂数据类型的数据生成用于进行序列化和反序列化处理的第三API对,以及根据所述基础开发模板库,分别为每种远程过程调用类型的数据生成用于进行序列化和反序列化处理的第四API对。
4.一种生成序列化和反序列化API的装置,其特征在于,包括:
基础开发模板库生成单元,用于按照SomeIpXf规范生成第一API对和第二API对,并利用生成的第一API对和第二API对生成基础开发模板库;其中,所述第一API对用于对SomeIpXf报文首部进行序列化和反序列化处理,生成的每一对第二API对分别用于对一种基本数据类型的数据进行序列化和反序列化处理;
接口生成单元,用于根据所述基础开发模板库生成用于对各种复杂数据类型的数据进行序列化和反序列化处理的各个第三API对,和用于对各种远程过程调用类型的数据进行序列化和反序列化处理的各个第四API对。
5.根据权利要求4所述的装置,其特征在于,所述基础开发模板库生成单元,包括:
第一生成单元,用于按照SomeIpXf规范生成用于对SomeIpXf报文首部进行序列化和反序列化处理的第一API对;
第二生成单元,用于按照所述SomeIpXf规范生成用于对各种基本数据类型的数据进行序列化和反序列化处理的各个第二API对;
汇总处理单元,用于利用所述第一API对和各个所述第二API对,生成基础开发模板库。
6.根据权利要求4或5所述的装置,其特征在于,所述接口生成单元,包括:
扩展开发模板库生成单元,用于根据所述基础开发模板库生成第三API对,并利用生成的第三API对生成扩展开发模板库;其中,生成的每一对第三API对分别用于对一种复杂数据类型的数据进行序列化和反序列化处理;
第三生成单元,用于根据所述基础开发模板库和所述扩展开发模板库,生成用于对各种远程过程调用类型的数据进行序列化和反序列化处理的各个第四API对。
7.根据权利要求4所述的装置,其特征在于,所述接口生成单元根据所述基础开发模板库生成用于对各种复杂数据类型的数据进行序列化和反序列化处理的各个第三API对,和用于对各种远程过程调用类型的数据进行序列化和反序列化处理的各个第四API对时,具体用于:
根据所述基础开发模板库,分别为每种复杂数据类型的数据生成用于进行序列化和反序列化处理的第三API对,以及根据所述基础开发模板库,分别为每种远程过程调用类型的数据生成用于进行序列化和反序列化处理的第四API对。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810637635.0A CN108810000B (zh) | 2018-06-20 | 2018-06-20 | 一种生成序列化和反序列化api的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810637635.0A CN108810000B (zh) | 2018-06-20 | 2018-06-20 | 一种生成序列化和反序列化api的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108810000A CN108810000A (zh) | 2018-11-13 |
CN108810000B true CN108810000B (zh) | 2021-07-30 |
Family
ID=64083750
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810637635.0A Active CN108810000B (zh) | 2018-06-20 | 2018-06-20 | 一种生成序列化和反序列化api的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108810000B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112291124B (zh) * | 2020-09-27 | 2021-12-14 | 上海赫千电子科技有限公司 | 一种基于some/ip协议的车载网络ecu通信方法 |
CN112769767B (zh) * | 2020-12-23 | 2022-06-14 | 华人运通(上海)云计算科技有限公司 | 车载以太网some/ip协议数据的解析方法、装置、介质及系统 |
CN113407190A (zh) * | 2021-06-16 | 2021-09-17 | 武汉光庭信息技术股份有限公司 | Android系统与汽车ECU模块通信数据序列化和反序列化方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030059501A (ko) * | 2001-12-29 | 2003-07-10 | 한국전자통신연구원 | 인터넷 웹 환경에서 에스.오.에이.피(soap) 통신을이용한 협업 지원 시스템 및 방법 |
CN103888443A (zh) * | 2014-02-20 | 2014-06-25 | 北京优联实科信息科技有限公司 | 一种多协议解析的方法和多协议解析系统 |
CN106209758A (zh) * | 2014-11-18 | 2016-12-07 | 现代自动车株式会社 | 与avb技术交互工作处理some/ip流的方法和装置 |
CN107463668A (zh) * | 2017-08-02 | 2017-12-12 | 湖南新航动力信息科技有限公司 | 序列化和反序列化的方法及装置、计算机设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104077335B (zh) * | 2013-05-07 | 2017-05-03 | 腾讯科技(深圳)有限公司 | 一种结构化数据的序列化、反序列化方法、装置和系统 |
CN106155630A (zh) * | 2015-04-14 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 序列化方法、反序列化方法、序列化装置及反序列化装置 |
-
2018
- 2018-06-20 CN CN201810637635.0A patent/CN108810000B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030059501A (ko) * | 2001-12-29 | 2003-07-10 | 한국전자통신연구원 | 인터넷 웹 환경에서 에스.오.에이.피(soap) 통신을이용한 협업 지원 시스템 및 방법 |
CN103888443A (zh) * | 2014-02-20 | 2014-06-25 | 北京优联实科信息科技有限公司 | 一种多协议解析的方法和多协议解析系统 |
CN106209758A (zh) * | 2014-11-18 | 2016-12-07 | 现代自动车株式会社 | 与avb技术交互工作处理some/ip流的方法和装置 |
CN107463668A (zh) * | 2017-08-02 | 2017-12-12 | 湖南新航动力信息科技有限公司 | 序列化和反序列化的方法及装置、计算机设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
"一种类的序列化与反序列化框架";胡晨光;《电脑知识与技术》;20090825;全文 * |
"几种常用序列化和反序列化方法";jaryle;《CSDN博客》;20170206;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108810000A (zh) | 2018-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108810000B (zh) | 一种生成序列化和反序列化api的方法及装置 | |
US20170048359A1 (en) | Method and device for transmitting a message in a vehicle | |
CN108322437B (zh) | 用于多规约设备之间的自适应通讯方法和装置 | |
US20170031739A1 (en) | Protocol for communication of data structures | |
JP2018036972A (ja) | ファイルフォーマット変換装置及びその変換方法 | |
US20020046304A1 (en) | Dynamic class loading | |
AU2005201952A1 (en) | Flexible context management for enumeration sessions using context exchange | |
US7392060B2 (en) | Mobile exchange infrastructure | |
CN109343970B (zh) | 基于应用程序的操作方法、装置、电子设备及计算机介质 | |
CN114051040A (zh) | 一种基于soa的车身域和座舱域的通讯架构及融合方法 | |
WO2022222901A1 (zh) | 一种基于autosar实现dds通信的系统架构、通信方法及设备 | |
US7908397B1 (en) | Application server gateway technology | |
CN110022332B (zh) | 一种超文本传输安全协议代理方法、装置、设备及介质 | |
CN114221995B (zh) | 服务调用方法、装置及电子设备 | |
CN109582481B (zh) | 调用结果的传输方法、装置、设备及存储介质 | |
CN111708568B (zh) | 一种组件化开发解耦方法及终端 | |
CN113918245A (zh) | 一种数据调用方法、装置、设备及计算机可读存储介质 | |
CN109669793B (zh) | 中间件进程内对象调用方法 | |
CN112948129A (zh) | 基于联邦学习的数据传输优化方法、设备及可读存储介质 | |
WO2022048462A1 (zh) | 组件启动方法及装置 | |
CN111711620B (zh) | 实现应用间双向通信的方法、装置、设备和存储介质 | |
CN117201577B (zh) | 基于pisa的跨平台api和spi的通讯方法和系统 | |
CN113176957B (zh) | 一种基于rpc的远程应用自动化系统 | |
CN113395293B (zh) | 一种基于rpc的网络套接字实现方法 | |
CN117667439A (zh) | 一种跨系统交互方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 4 / F, building 1, No.14 Jiuxianqiao Road, Chaoyang District, Beijing 100020 Applicant after: Beijing Jingwei Hengrun Technology Co., Ltd Address before: 8 / F, block B, No. 11, Anxiang Beili, Chaoyang District, Beijing 100101 Applicant before: Beijing Jingwei HiRain Technologies Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |