CN115562763A - 数据分发服务调用方法、系统、电子设备及可读存储介质 - Google Patents
数据分发服务调用方法、系统、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN115562763A CN115562763A CN202211216164.9A CN202211216164A CN115562763A CN 115562763 A CN115562763 A CN 115562763A CN 202211216164 A CN202211216164 A CN 202211216164A CN 115562763 A CN115562763 A CN 115562763A
- Authority
- CN
- China
- Prior art keywords
- service
- code
- interface
- file
- language
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及车内通信技术领域,公开了一种数据分发服务调用方法、系统、电子设备及可读存储介质,该方法通过对服务函数库按照车载语言进行代码编译得到动态库文件,并通过服务基本信息生成服务代码文件,从而通过服务代码文件建立用于调用动态库文件的本地服务接口,在智能座舱与数据分发服务所用代码语言不同的情况下,通过在智能座舱建立的本地服务接口调用动态库文件,实现了不同语言的智能座舱对数据分发服务的调用,从而集成数据分发服务的低延迟、高可靠性等特点,提高车载智能座舱的传输效率。
Description
技术领域
本发明涉及车内通信技术领域,尤其涉及一种数据分发服务调用方法、系统、电子设备及可读存储介质。
背景技术
目前,随着车辆智能化的不断进步,自动驾驶、V2X(vehicle to X,车用无线通信技术)、智能座舱等车载功能逐渐丰富,使得车辆的ECU(Electronic Control Unit,电子控制单元)之间交互越来越复杂。为了将原本分散的ECU之间进行解耦,车辆引入了以太网和SOA((Service-Oriented Architecture,面向服务架构),将ECU部署为分层式的软件架构,实现ECU功能模块化、标准化,从而快速相应车辆需求。另一方面,SOA能够通过DDS(DataDistribution Service,数据分发服务)协议进行通信,DDS协议具有低延迟、高可靠性等特点,支持多种QOS(Quality of Service,服务质量)策略,满足了不同场景中对数据的传输需求。
但是,由于DDS协议是以C++为开发语言实现的,而智能座舱的系统基于Android语言建立,导致无法在智能座舱中以SOA服务为构架实现DDS协议中间层。
发明内容
为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
鉴于以上所述现有技术的缺点,本发明公开了一种数据分发服务调用方法、系统、电子设备及可读存储介质,以实现在智能座舱中以SOA服务为构架实现DDS协议中间层。
本发明公开了一种数据分发服务调用方法,包括:获取智能座舱,并获取数据分发服务对应的服务函数库和服务基本信息,其中,所述智能座舱部署有基于车载语言建立的操作系统,所述服务函数库存储有基于服务语言建立的服务函数;根据所述车载语言对所述服务函数库进行代码编译,得到用于所述车载语言的动态库文件,其中,所述动态库文件用于封装所述服务函数;将所述服务基本信息填入预设代码模板中,得到服务代码文件;根据所述服务代码文件在所述智能座舱建立本地服务接口,并通过所述本地服务接口调用所述动态库文件,以实现所述智能座舱调用所述数据分发服务。
可选地,通过以下方法获取服务基本信息:建立所述数据分发服务对应的服务信息模板;接收用户向所述服务信息模板输入的模板填写数据,将具有所述模板填写数据的服务信息模板确定为服务信息文件;根据预设提取脚本对所述服务信息文件进行信息提取,得到信息字符串数据,其中,所述信息字符串数据承载有数据分发服务对应的服务基本信息。
可选地,将所述服务基本信息填入预设代码模板中,得到服务代码文件,包括:预设代码模板包括基类代码模板和接口代码模板;将所述服务基本信息填入所述框架代码模板,得到用于所述服务语言的基类代码文件,并将所述服务基本信息填入所述接口代码模板,得到用于所述车载语言的接口代码文件。
可选地,根据所述服务代码文件在所述智能座舱建立本地服务接口,包括:利用所述智能座舱根据所述基类代码文件建立所述数据分发服务对应的面向服务框架;根据所述接口代码文件在所述服务框架中建立本地服务接口,其中,所述本地服务接口用于实现所述服务语言与所述车载语言之间的交互。
可选地,所述方法还包括:所述基类代码文件包括服务提供方对应的第一基类代码和服务调用方对应的第二基类代码,所述接口代码文件包括服务提供方对应的第一接口代码和服务调用方对应的第二接口代码;若所述智能座舱处于服务提供方,则通过所述第一基类代码和所述第一接口代码建立本地服务接口;若所述智能座舱处于服务调用方,则通过所述第二基类代码和所述第二接口代码建立本地服务接口。
可选地,根据所述服务代码文件在所述智能座舱建立本地服务接口之前,所述方法还包括:根据所述动态库文件和所述服务代码文件生成服务程序包;将所述服务程序包发送至所述智能座舱。
可选地,根据所述车载语言对所述服务函数库进行代码编译,得到用于所述车载语言的动态库文件,包括:获取用于所述车载语言的编译工具包;利用所述编译工具包对所述服务函数库进行代码编译,得到各所述处理器构架对应的动态库文件。
本发明公开了一种数据分发服务调用系统,包括:获取模块,用于获取智能座舱,并获取数据分发服务对应的服务函数库和服务基本信息,其中,所述智能座舱部署有基于车载语言建立的操作系统,所述服务函数库存储有基于服务语言建立的服务函数;编译模块,用于根据所述车载语言对所述服务函数库进行代码编译,得到用于所述车载语言的动态库文件,其中,所述动态库文件用于封装所述服务函数;填写模块,用于将所述服务基本信息填入预设代码模板中,得到服务代码文件;调用模块,用于根据所述服务代码文件在所述智能座舱建立本地服务接口,并通过所述本地服务接口调用所述动态库文件,以实现所述智能座舱调用所述数据分发服务。
本发明公开了一种电子设备,包括:处理器及存储器;所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行上述的方法。
本发明公开了一种计算机可读存储介质,其上存储有计算机程序:所述计算机程序被处理器执行时实现上述的方法。
本发明的有益效果:
通过对服务函数库按照车载语言进行代码编译得到动态库文件,并通过服务基本信息生成服务代码文件,从而通过服务代码文件建立用于调用动态库文件的本地服务接口。这样,在智能座舱与数据分发服务所用代码语言不同的情况下,通过在智能座舱建立的本地服务接口调用动态库文件,实现了不同语言的智能座舱对数据分发服务的调用,从而集成数据分发服务的低延迟、高可靠性等特点,提高车载智能座舱的传输效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明实施例中一个数据分发服务调用方法的流程示意图;
图2是本发明实施例中另一个数据分发服务调用方法的流程示意图;
图3是本发明实施例中一个数据分发服务调用系统的结构示意图;
图4是本发明实施例中一个电子设备的结构示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的子样本可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
在下文描述中,探讨了大量细节,以提供对本发明实施例的更透彻的解释,然而,对本领域技术人员来说,可以在没有这些具体细节的情况下实施本发明的实施例是显而易见的,在其他实施例中,以方框图的形式而不是以细节的形式来示出公知的结构和设备,以避免使本发明的实施例难以理解。
本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
除非另有说明,术语“多个”表示两个或两个以上。
本公开实施例中,字符“/”表示前后对象是一种“或”的关系。例如,A/B表示:A或B。
术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,A和/或B,表示:A或B,或,A和B这三种关系。
首先需要说明的是,在一些实施例中,车辆终端中智能座舱采用的车载语言为Android语言,由于Android语言的底层是基于Linux系统建立,因此Android语言能够调用Linux系统下的动态库文件(例如,SO库文件)。
在一些实施例中,车辆终端中智能座舱采用面向服务架构(SOA),SOA构架采用Proxy/Skeleton模式,其中,Proxy服务代表着可能存在的远程服务(例如,进程、核、节点等),是客户端的本地化实例,Skeleton服务是用户提供的服务实现与中间件传输结构的连接,由Skeleton服务能够衍生出服务端的实现类。
在一些实施例中,面向服务架构能够集成数据分发服务(DDS),其中,数据分发服务采用的服务语言为C++语言,并且,数据分发服务配置有服务函数库(DDS C++库),服务函数库中存储有基于C++语言建立的服务函数等,通过调用服务函数能够调用数据分发服务。
在一些实施例中,本地服务接口包括JNI(Java Native Interface,Java本地接口)接口,本地服务接口提供了将C/C++、Android、JAVA、汇编等本地代码集成的方案,该规范使得在Java虚拟机内运行的Java代码能够与其它编程语言互相操作,包括创建本地方法、更新Java对象、调用Java方法,引用Java类,捕捉和抛出异常等,也允许Java代码调用C/C++或汇编语言编写的程序和库,其中,以C/C++为编程语言,并且以SO库文件的形式供上层JAVA代码调用,能够避免JAVA被反编译,从而保证应用的安全性。
结合图1所示,本公开实施例提供了一种数据分发服务调用方法,包括:
步骤S101,获取智能座舱,并获取数据分发服务对应的服务函数库和服务基本信息;
其中,智能座舱部署有基于车载语言建立的操作系统,服务函数库存储有基于服务语言建立的服务函数;
步骤S102,根据车载语言对服务函数库进行代码编译,得到用于车载语言的动态库文件;
其中,动态库文件用于封装服务函数;
步骤S103,将服务基本信息填入预设代码模板中,得到服务代码文件;
步骤S104,根据服务代码文件在智能座舱建立本地服务接口,并通过本地服务接口调用动态库文件,以实现智能座舱调用数据分发服务。
采用本公开实施例提供的数据分发服务调用方法,通过对服务函数库按照车载语言进行代码编译得到动态库文件,并通过服务基本信息生成服务代码文件,从而通过服务代码文件建立用于调用动态库文件的本地服务接口。这样,在智能座舱与数据分发服务所用代码语言不同的情况下,通过在智能座舱建立的本地服务接口调用动态库文件,实现了不同语言的智能座舱对数据分发服务的调用,从而集成数据分发服务的低延迟、高可靠性等特点,提高车载智能座舱的传输效率。
可选地,根据车载语言对服务函数库进行代码编译,得到用于车载语言的动态库文件,包括:获取用于车载语言的编译工具包;利用编译工具包对服务函数库进行代码编译,得到各处理器构架对应的动态库文件。
在一些实施例中,编译工具包包括Android NDK(Native Development Kit,原生开发工具包)工具包,NDK作为Android系统中实现JNI接口的一种手段,用于打包C/C++动态库,并基于JNI接口进行调用。
在一些实施例中,利用Android NDK工具包对DDS C++库进行编译,从而打包服务函数,生成多种CPU构架对应的SO库文件,其中,CPU构架包括ARM、X86等。
可选地,通过以下方法获取服务基本信息:建立数据分发服务对应的服务信息模板;接收用户向服务信息模板输入的模板填写数据,将具有模板填写数据的服务信息模板确定为服务信息文件;根据预设提取脚本对服务信息文件进行信息提取,得到信息字符串数据,其中,信息字符串数据承载有数据分发服务对应的服务基本信息。
在一些实施例中,服务信息模板基于Excel表格建立,服务信息模板包括服务名称、服务域、服务编码、服务包名称、服务接口信息;服务接口信息包括服务接口方法名,接口方法参数、Qos信息、Topic信息、接口方法类型,其中,接口方法参数包括输入参数、输出参数以及输入输出参数类型等,接口方法类型Method、Event、Field等。
在一些实施例中,根据Python脚本对服务信息文件进行信息提取,得到信息字符串数据。
可选地,将服务基本信息填入预设代码模板中,得到服务代码文件,包括:预设代码模板包括基类代码模板和接口代码模板;将服务基本信息填入框架代码模板,得到用于服务语言的基类代码文件,并将服务基本信息填入接口代码模板,得到用于车载语言的接口代码文件。
可选地,通过将服务基本信息填入基类代码模板(DDS-SOA中间层代码模板),得到基类代码文件(例如,Class文件等),基类代码文件包括SOA Proxy C++代码文件和SOASkeleton C++代码文件,其中,基类代码文件用于创建面向服务框架、服务注册、以及设置接口方法类型。
可选地,通过将服务基本信息填入接口代码模板(DDS-JNI中间层代码模板),得到接口代码文件(JNI文件)和JAVA文件,接口代码文件包括SOA Proxy JNI文件和SOASkeleton JNI代码文件,其中,接口代码文件用于封装JNI接口。
可选地,根据服务代码文件在智能座舱建立本地服务接口,包括:利用智能座舱根据基类代码文件建立数据分发服务对应的面向服务框架;根据接口代码文件在服务框架中建立本地服务接口,其中,本地服务接口用于实现服务语言与车载语言之间的交互。
可选地,方法还包括:基类代码文件包括服务提供方对应的第一基类代码和服务调用方对应的第二基类代码,接口代码文件包括服务提供方对应的第一接口代码和服务调用方对应的第二接口代码;若智能座舱处于服务提供方,则通过第一基类代码和第一接口代码建立本地服务接口;若智能座舱处于服务调用方,则通过第二基类代码和第二接口代码建立本地服务接口。
在一些实施例中,若智能座舱处于服务调用方,则通过SOA Proxy C++代码文件和SOA Proxy JNI文件建立本地服务接口;若智能座舱处于服务提供方,则通过SOA SkeletonC++代码文件和SOA Skeleton JNI文件建立本地服务接口。
可选地,根据服务代码文件在智能座舱建立本地服务接口之前,方法还包括:根据动态库文件和服务代码文件生成服务程序包。
结合图2所示,本公开实施例提供了一种数据分发服务调用方法,包括:
步骤S201,利用编译工具包对服务函数库进行代码编译,得到动态库文件;
步骤S202,建立数据分发服务对应的服务信息模板,并接收用户向服务信息模板输入的模板填写数据,得到服务信息文件;
步骤S203,根据预设提取脚本对服务信息文件进行信息提取,得到信息字符串数据;
其中,信息字符串数据承载有数据分发服务对应的服务基本信息;
步骤S204,将服务基本信息填入基类代码模板,得到基类代码文件;
步骤S205,将服务基本信息填入接口代码模板,得到接口代码文件;
步骤S206,根据动态库文件、基类代码文件、接口代码文件生成服务程序包;
步骤S207,根据基类代码文件建立数据分发服务对应的面向服务框架;
步骤S208,根据接口代码文件在服务框架中建立本地服务接口;
步骤S209,通过本地服务接口调用动态库文件,以实现智能座舱调用数据分发服务。
采用本公开实施例提供的数据分发服务调用方法,通过对服务函数库按照车载语言进行代码编译得到动态库文件,并通过服务基本信息生成服务代码文件,从而通过服务代码文件建立用于调用动态库文件的本地服务接口。这样,在智能座舱与数据分发服务所用代码语言不同的情况下,通过在智能座舱建立的本地服务接口调用动态库文件,实现了不同语言的智能座舱对数据分发服务的调用,从而集成数据分发服务的低延迟、高可靠性等特点,提高车载智能座舱的传输效率。
结合图3所示,本公开实施例提供了一种数据分发服务调用系统,包括获取模块301、编译模块302、填写模块303、调用模块304。
获取模块301用于获取智能座舱,并获取数据分发服务对应的服务函数库和服务基本信息,其中,智能座舱部署有基于车载语言建立的操作系统,服务函数库存储有基于服务语言建立的服务函数;
编译模块302用于根据车载语言对服务函数库进行代码编译,得到用于车载语言的动态库文件,其中,动态库文件用于封装服务函数;
填写模块303用于将服务基本信息填入预设代码模板中,得到服务代码文件;
调用模块304用于根据服务代码文件在智能座舱建立本地服务接口,并通过本地服务接口调用动态库文件,以实现智能座舱调用数据分发服务。
采用本公开实施例提供的数据分发服务调用系统,通过对服务函数库按照车载语言进行代码编译得到动态库文件,并通过服务基本信息生成服务代码文件,从而通过服务代码文件建立用于调用动态库文件的本地服务接口。这样,在智能座舱与数据分发服务所用代码语言不同的情况下,通过在智能座舱建立的本地服务接口调用动态库文件,实现了不同语言的智能座舱对数据分发服务的调用,从而集成数据分发服务的低延迟、高可靠性等特点,提高车载智能座舱的传输效率。
图4示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。需要说明的是,图4示出的电子设备的计算机系统400仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图4所示,计算机系统400包括中央处理单元(Central Processing Unit,CPU)401,其可以根据存储在只读存储器(Read-Only Memory,ROM)402中的程序或者从储存部分408加载到随机访问存储器(Random Access Memory,RAM)403中的程序而执行各种适当的动作和处理,例如执行上述实施例中的方法。在RAM 403中,还存储有系统操作所需的各种程序和数据。CPU 401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(Input/Output,I/O)接口405也连接至总线404。
以下部件连接至I/O接口405:包括键盘、鼠标等的输入部分406;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分407;包括硬盘等的储存部分408;以及包括诸如LAN(Local Area Network,局域网)卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信处理。驱动器410也根据需要连接至I/O接口405。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入储存部分408。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分409从网络上被下载和安装,和/或从可拆卸介质411被安装。在该计算机程序被中央处理单元(CPU)401执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本实施例中的任一项方法。
本公开实施例中的计算机可读存储介质,本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例公开的电子设备,包括处理器、存储器、收发器和通信接口,存储器和通信接口与处理器和收发器连接并完成相互间的通信,存储器用于存储计算机程序,通信接口用于进行通信,处理器和收发器用于运行计算机程序,使电子设备执行如上方法的各个步骤。
在本实施例中,存储器可能包含随机存取存储器(Random Access Memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、图形处理器(Graphics Processing Unit,简称GPU),网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
以上描述和附图充分地示出了本公开的实施例,以使本领域的技术人员能够实践它们。其他实施例可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选地,并且操作的顺序可以变化。一些实施例的部分和子样本可以被包括在或替换其他实施例的部分和子样本。而且,本申请中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“”(the)旨在同样包括复数形式。类似地,如在本申请中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的子样本、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它子样本、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括要素的过程、方法或者设备中还存在另外的相同要素。本文中,每个实施例重点说明的可以是与其他实施例的不同之处,各个实施例之间相同相似部分可以互相参见。对于实施例公开的方法、产品等而言,如果其与实施例公开的方法部分相对应,那么相关之处可以参见方法部分的描述。
本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,可以取决于技术方案的特定应用和设计约束条件。技术人员可以对每个特定的应用来使用不同方法以实现所描述的功能,但是这种实现不应认为超出本公开实施例的范围。技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本文所披露的实施例中,所揭露的方法、产品(包括但不限于装置、设备等),可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些子样本可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例。另外,在本公开实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
附图中的流程图和框图显示了根据本公开实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。在附图中的流程图和框图所对应的描述中,不同的方框所对应的操作或步骤也可以以不同于描述中所披露的顺序发生,有时不同的操作或步骤之间不存在特定的顺序。例如,两个连续的操作或步骤实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
Claims (10)
1.一种数据分发服务调用方法,其特征在于,包括:
获取智能座舱,并获取数据分发服务对应的服务函数库和服务基本信息,其中,所述智能座舱部署有基于车载语言建立的操作系统,所述服务函数库存储有基于服务语言建立的服务函数;
根据所述车载语言对所述服务函数库进行代码编译,得到用于所述车载语言的动态库文件,其中,所述动态库文件用于封装所述服务函数;
将所述服务基本信息填入预设代码模板中,得到服务代码文件;
根据所述服务代码文件在所述智能座舱建立本地服务接口,并通过所述本地服务接口调用所述动态库文件,以实现所述智能座舱调用所述数据分发服务。
2.根据权利要求1所述的方法,其特征在于,通过以下方法获取服务基本信息:
建立所述数据分发服务对应的服务信息模板;
接收用户向所述服务信息模板输入的模板填写数据,将具有所述模板填写数据的服务信息模板确定为服务信息文件;
根据预设提取脚本对所述服务信息文件进行信息提取,得到信息字符串数据,其中,所述信息字符串数据承载有数据分发服务对应的服务基本信息。
3.根据权利要求2所述的方法,其特征在于,将所述服务基本信息填入预设代码模板中,得到服务代码文件,包括:
预设代码模板包括基类代码模板和接口代码模板;
将所述服务基本信息填入所述框架代码模板,得到用于所述服务语言的基类代码文件,并将所述服务基本信息填入所述接口代码模板,得到用于所述车载语言的接口代码文件。
4.根据权利要求3所述的方法,其特征在于,根据所述服务代码文件在所述智能座舱建立本地服务接口,包括:
利用所述智能座舱根据所述基类代码文件建立所述数据分发服务对应的面向服务框架;
根据所述接口代码文件在所述服务框架中建立本地服务接口,其中,所述本地服务接口用于实现所述服务语言与所述车载语言之间的交互。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述基类代码文件包括服务提供方对应的第一基类代码和服务调用方对应的第二基类代码,所述接口代码文件包括服务提供方对应的第一接口代码和服务调用方对应的第二接口代码;
若所述智能座舱处于服务提供方,则通过所述第一基类代码和所述第一接口代码建立本地服务接口;
若所述智能座舱处于服务调用方,则通过所述第二基类代码和所述第二接口代码建立本地服务接口。
6.根据权利要求1至5任一项所述的方法,其特征在于,根据所述服务代码文件在所述智能座舱建立本地服务接口之前,所述方法还包括:
根据所述动态库文件和所述服务代码文件生成服务程序包;
将所述服务程序包发送至所述智能座舱。
7.根据权利要求1至5任一项所述的方法,其特征在于,根据所述车载语言对所述服务函数库进行代码编译,得到用于所述车载语言的动态库文件,包括:
获取用于所述车载语言的编译工具包;
利用所述编译工具包对所述服务函数库进行代码编译,得到各所述处理器构架对应的动态库文件。
8.一种数据分发服务调用系统,其特征在于,包括:
获取模块,用于获取智能座舱,并获取数据分发服务对应的服务函数库和服务基本信息,其中,所述智能座舱部署有基于车载语言建立的操作系统,所述服务函数库存储有基于服务语言建立的服务函数;
编译模块,用于根据所述车载语言对所述服务函数库进行代码编译,得到用于所述车载语言的动态库文件,其中,所述动态库文件用于封装所述服务函数;
填写模块,用于将所述服务基本信息填入预设代码模板中,得到服务代码文件;
调用模块,用于根据所述服务代码文件在所述智能座舱建立本地服务接口,并通过所述本地服务接口调用所述动态库文件,以实现所述智能座舱调用所述数据分发服务。
9.一种电子设备,其特征在于,包括:处理器及存储器;
所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:
所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211216164.9A CN115562763A (zh) | 2022-09-30 | 2022-09-30 | 数据分发服务调用方法、系统、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211216164.9A CN115562763A (zh) | 2022-09-30 | 2022-09-30 | 数据分发服务调用方法、系统、电子设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115562763A true CN115562763A (zh) | 2023-01-03 |
Family
ID=84744507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211216164.9A Pending CN115562763A (zh) | 2022-09-30 | 2022-09-30 | 数据分发服务调用方法、系统、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115562763A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116541015A (zh) * | 2023-05-15 | 2023-08-04 | 上海携宁计算机科技股份有限公司 | 一种后端存储方法、装置、服务器及存储介质 |
-
2022
- 2022-09-30 CN CN202211216164.9A patent/CN115562763A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116541015A (zh) * | 2023-05-15 | 2023-08-04 | 上海携宁计算机科技股份有限公司 | 一种后端存储方法、装置、服务器及存储介质 |
CN116541015B (zh) * | 2023-05-15 | 2024-03-19 | 上海携宁计算机科技股份有限公司 | 一种后端存储方法、装置、服务器及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210012059A1 (en) | Mobile device resource provisioning system and method | |
US5848246A (en) | Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system | |
US8745573B2 (en) | Platform-independent application development framework | |
US5768510A (en) | Object-oriented system, method and article of manufacture for a client-server application enabler system | |
EP0827077B1 (en) | Object-oriented system, method and computer program for a client-server failure reporting process | |
EP0822490A2 (en) | Object-oriented system, method and article of manufacture for a client-server communication framework | |
EP0822491A2 (en) | Object-oriented system, method and article of manufacture for migrating a client-server application | |
EP0827074A2 (en) | A system, method and article of manufacture for a distributed computer system framework | |
EP0844558A2 (en) | Object-oriented system, method and article of manufature for a client-server event driver message framework in an interprise computing framework system | |
EP0827075A2 (en) | Object-oriented system, method and article of manufacture for a client-server state machine framework | |
US10185558B2 (en) | Language-independent program composition using containers | |
US20050192984A1 (en) | System and method for building mixed mode execution environment for component applications | |
EP0822489A2 (en) | Object-oriented system, method and article of manufacture for a client-server system with a client program cache | |
CN111408138B (zh) | 基于游戏引擎的渲染方法、装置及电子设备 | |
EP0827073A2 (en) | Object-oriented system, method and article of manufacture for a client-server-centric enterprise computing framework system | |
CN111740948B (zh) | 数据包发布方法、动态更新方法、装置、设备及介质 | |
CN111338623A (zh) | 一种开发用户界面的方法、装置、介质和电子设备 | |
CN112631590B (zh) | 组件库生成方法、装置、电子设备和计算机可读介质 | |
CN111857658A (zh) | 一种渲染动态组件的方法、装置、介质和电子设备 | |
CN109144619A (zh) | 图标字体信息处理方法、装置及系统 | |
EP0827076A2 (en) | Object-oriented system, method and article of manufacture for a presentation engine in an interprise computing framework system | |
CN115562763A (zh) | 数据分发服务调用方法、系统、电子设备及可读存储介质 | |
CN109343970B (zh) | 基于应用程序的操作方法、装置、电子设备及计算机介质 | |
CN111338666A (zh) | 一种实现应用程序升级的方法、装置、介质和电子设备 | |
CN113778393A (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 |