CN114579334A - 一种通信方法、装置、电子设备及存储介质 - Google Patents
一种通信方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114579334A CN114579334A CN202210220636.1A CN202210220636A CN114579334A CN 114579334 A CN114579334 A CN 114579334A CN 202210220636 A CN202210220636 A CN 202210220636A CN 114579334 A CN114579334 A CN 114579334A
- Authority
- CN
- China
- Prior art keywords
- interface
- target
- layer
- language
- protocol message
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明实施例公开了一种通信方法、装置、电子设备及存储介质,涉及计算机技术领域,该通信方法应用于通信设备,通信设备上安装有操作系统,操作系统包括:应用层和服务层,该方法包括:从应用层中获取使用预设语言编译的目标接口的接口信息,将接口信息映射为第一协议报文,并将第一协议报文发送至服务层;将第一协议报文识别为所述服务层对应的目标语言,使用目标语言调用所述接口信息对应的目标接口,实现操作系统中应用层与服务层的通信。本发明实施例能够实现接口信息在应用层中只编译一次,可部署运行在不同的操作系统中的效果,达到了业务应用跨操作系统运行的目的。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种通信方法、装置、电子设备及存储介质。
背景技术
在金融终端设备设备领域中,如自动存-取款机等,均遵循基于Windows操作系统的CEN/XFS(ComiteEuropeen de Normalisat1n/extens1ns for Financial Services)规范,具有较强的操作系统绑定特性,无法直接迀移至其他系统。但随着社会的进步,除Windows外的其余应用系统也逐渐被广泛使用,如Linux系统,形成了以Linux系统为基础的XFS实现系统,简称为LFS(Linux Financial Services)系统。
金融机构在维护大量Windows终端设备的同时,也在陆续采购基于其余新系统开发的终端设备。而通常在金融终端设备中,上层应用程序通过API方式调用下层硬件设备的驱动程序,如果要适应不同的操作系统(如Windows、Linux),则必须在不同的操作系统环境重新编译相关的所有程序,以实现在不同操作系统中的应用。示例性地,若是在Windows系统中开发应用程序,在Linux系统中运行时,需要将在Windows系统中开发的所有应用程序在Linux系统中进行加载编译,以使得应用程序在Linux系统中运行。
但是,随着用户需求的逐渐增加,需要对应用程序不断进行更新,从而导致维护成本增加,且在不同操作系统上进行重新编译时容易因为版本不一致出现运营风险问题,从而导致终端设备无法正常运行。
发明内容
本发明实施例提供一种通信方法、装置、电子设备及存储介质,能够降低维护成本,降低运营风险,提高研发效率。
第一方面,本发明实施例提供一种通信方法,应用于通信设备,所述通信设备上安装有操作系统,所述操作系统包括:应用层和服务层,所述方法包括:
从所述应用层中获取使用预设语言编译的目标接口的接口信息,将所述接口信息映射为第一协议报文,并将所述第一协议报文发送至所述服务层;
将所述第一协议报文识别为所述服务层对应的目标语言,使用所述目标语言调用所述接口信息对应的目标接口,实现所述操作系统中所述应用层与所述服务层的通信。
第二方面,本发明实施例提供一种通信装置,应用于通信设备,所述通信设备上安装有操作系统,所述操作系统包括:应用层和服务层,所述装置包括:
编译模块,用于从所述应用层中获取使用预设语言编译的目标接口的接口信息,将所述接口信息映射为第一协议报文,并将所述第一协议报文发送至所述服务层;
调用模块,用于将所述第一协议报文识别为所述服务层对应的目标语言,使用所述目标语言调用所述接口信息对应的目标接口,实现所述操作系统中所述应用层与所述服务层的通信。
第三方面,本发明实施例还提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的通信方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的通信方法。
本发明实施例的技术方案,应用于通信设备,在通信设备上安装有操作系统,操作系统包括:应用层和服务层。首先从应用层中获取使用预设语言编译的目标接口的接口信息,将接口信息映射为第一协议报文,并将第一协议报文发送至服务层;再将第一协议报文识别为服务层对应的目标语言,使用目标语言调用接口信息对应的目标接口,最终实现操作系统中应用层与服务层的通信。本发明实施例通过使用预设语言编译目标接口的接口信息,并将接口信息映射为协议报文的形式,能够实现接口信息在应用层中只编译一次,可部署运行在不同的操作系统中的效果,达到了业务应用跨操作系统运行的目的。并且在根据业务需求需要对终端设备的硬件功能进行改变或者扩展新的模块时,只需在应用层中修改或新增相应接口信息,无需对相应协议报文进行新增或修改,降低了业务应用对应程序代码的维护成本,从而提高应用程序研发效率。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明实施例的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本发明实施例提供的通信方法的一个流程示意图;
图2A是本发明实施例提供的通信方法的另一流程示意图;
图2B是本发明实施例提供的应用层的一个架构示意图;
图2C是本发明实施例提供的通信系统的一个架构示意图;
图3是本发明实施例提供的通信装置的一个结构示意图;
图4是本发明实施例提供的电子设备的一个结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
本发明实施例提供的通信方法可以由本发明实施例提供的通信装置来执行,该装置可采用软件和/或硬件的方式实现。一般可集成在服务器等计算机设备中。本发明实施例提供的数据处理方法,应用于通信设备,在通信设备上安装有操作系统,该操作系统包括应用层和服务层。
上述通信设备可以集成有微控制器(Micro Control Unit,简称MCU),以使得通信设备能够根据用户实际需求处理相关业务应用,从而达到服务用户的目的。其中,当前通信设备根据使用领域的不同,可以为多种类型,示例性地,在金融领域该通信设备可以为自动存-取款机设备,在医学领域该通信设备可以为自助服务设备等,具体通信设备的类型在此不作限制。
其中,上述业务应用可以为不同领域通信设备上的相关应用。示例性地,在金融领域,业务应用可以为存款业务应用、取款业务应用或查询业务应用等;在医学领域,上述业务应用可以为挂号业务应用、病历查询业务应用或缴费业务应用等,具体通信设备上业务应用对应的具体内容在此不作限制。
操作系统(Operating System,简称OS)表示在通信设备中实现相应业务应用时提供应用程序运行时所需的环境,以及能够提供计算机软件和硬件相关联的应用接口,通过当前应用接口可以将软件程序和硬件接口连接起来,从而在操作系统中实现业务应用程序的正常运行,以及通过业务应用程序的正常运行实现目标硬件接口的驱动。示例性地,上述操作系统可以为Windows操作系统、Linux操作系统、Mac OS X操作系统或UNIX操作系统等,具体操作系统的类型在此不作限制。
可选地,本发明实施例提供的操作系统包括应用层(Application Programming,简称AP)和服务层(Service Provider,简称SP)。
其中,应用层与服务层通过应用接口(Application Programming Interface,简称API)实现交互。上述应用层用于根据软件程序实现业务应用的逻辑,定义待调用相关硬件接口。服务层与硬件的相应接口相连接,用于根据应用层中定义的硬件接口驱动目标硬件接口的程序,从而实现目标硬件接口在应用层中的调用。
一般地,在不同的操作系统中调用应用接口时,应用接口对应库文件的调用方式也有所不同。示例性地,在Windows操作系统中调用API时,通常采用加载dll库文件方式进行调用;在Linux操作系统中调用API时,通常采用加载so库文件方式进行调用,两种操作系统下调用库文件的代码实现方式不同。
在现有技术中,为了在不同的操作系统中实现程序的正常运行,以达到调用应用接口的目的,一般采用以下方式调用相应的库文件:应用层可由直接编译语言(如C、C++等)来实现,也可基于虚拟机语言(如Java)来实现。如果应用层由直接编译语言来实现,需要同服务层一样,在应用层或者服务层所处的操作系统中进行编译,并且采用与各自所处的操作系统相适应的库文件调用方式进行调用;如果应用层基于虚拟机的语言来实现,由于目前操作系统都自带或者支持虚拟机语言,应用层只需要在一个环境中进行编译,但服务层仍需要采用与当前所处操作系统相适应的库文件调用方式。因此,无论应用层基于哪种语言来实现,服务层都需要根据当前操作系统采用相适应的库文件调用方式实现硬件接口的调用。因此,则会出现不同的代码版本,或者在同一套代码里兼容不同操作系统的库文件调用方式,容易出现由于版本不一致导致的运营风险的问题,从而导致终端设备无法正常运行。
有鉴于此,本发明实施例提供了一种通信方法,与现有技术相比,能够解决由于操作系统不一致存在的运营风险的问题,实现业务应用跨操作系统运行,从而降低业务应用对应程序代码的维护成本,提高应用程序研发效率的有益效果。
具体地,请参照图1,图1为本发明实施例提供的通信方法的一个流程示意图,本发明实施例提供的数据处理方法具体包括如下步骤:
S110、从应用层中获取使用预设语言编译的目标接口的接口信息,将接口信息映射为第一协议报文,并将第一协议报文发送至服务层。
目标接口的接口信息需要在应用层中使用预设语言编译的目标应用程序中获取,当前目标应用程序表示实现业务应用中硬件接口调用的计算机代码程序,在当前目标应用程序中定义有待调用的目标接口的接口信息,以通过在应用层中运行目标应用程序,实现对目标接口的调用,从而实现与服务层相连的相应硬件接口驱动。
其中,上述目标接口的接口信息也同样采用预设语言进行编译实现的,则在当前步骤中可直接从应用层中获取使用预设语言编译的目标接口的接口信息。
本发明实施例提供的预设语言为Java虚拟机语言,采用Java虚拟机语言编译目标应用程序,并从目标应用程序中获取目标接口的接口信息的好处在于,基于虚拟机的Java语言在应用层中编译目标应用程序,可实现应用层中的接口信息值编译一次,便可部署运行在不同的操作系统的效果,在后续步骤中可以达到业务应用跨操作系统运行的目的。
其中,上述Java虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java虚拟机屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
进一步地,将使用Java虚拟机语言编译的接口信息映射为第一协议报文。将Java虚拟机语言编译的接口信息映射为第一协议报文的方式可以为,使用Java虚拟机语言的特性,利用Java的反射机制和注解,将使用Java虚拟机语言编译的目标接口的接口信息映射为第一协议报文(即,传输控制协议/网际协议Transmission Control Protocol/InternetProtocol,简称TCP/IP),即通过报文的形式实现目标接口的接口信息的传输。这样设置的好处在于在进行终端设备硬件功能和模块扩展时,应用层只需新增或修改相应的应用接口定义,无须再进行报文配置的新增以及修改操作,进一步降低了应用程序代码的维护成本,可以提高程序研发效率。
一种可选实施例,上述目标接口的接口信息包括:接口名称、接口的参数类型、接口的参数名称和接口的返回值类型。
其中,接口名称表示待调用的接口的名称,例如“摄像头”、“取款”或“查询”等名称;接口的参数类型表示显卡与主板连接所采用的接口种类,示例性地,可以为并口或串口(Universal Serial Bus,简称USB)等;接口的参数名称表示与接口相关的编号、标识信息((Identity Document,简称ID)或协议地址(Internet Protocol,简称IP)等;接口的返回值类型表示返回值代表的返回信息,示例性地,返回值为1时表示“成功”,返回值为2时表示“失败”,返回值为0时表示“错误”等。具体接口信息所包含的具体内容在此不作限制。
S120、将第一协议报文识别为服务层对应的目标语言,使用目标语言调用接口信息对应的目标接口,实现操作系统中应用层与服务层的通信。
应用层将转换第一协议报文发送给服务层,服务层可根据当前所处的操作系统环境将第一协议报文转换为当前操作系统所能识别的目标语言,在服务层中基于目标语言调用应用层所需的目标接口,从而实现操作系统中应用层与服务层的通信。
需要说明的是,本发明实施例提供的通信方法,适应于一般应用层与服务层所处不同操作系统的情况。在现有技术中,若应用层与服务层的操作系统不同,需要将在应用层操作系统编译的目标应用程序,在服务层中根据服务层所需的语言环境进行重新编译,容易造成由于版本不一致导致的运营风险的问题,从而导致终端设备无法正常运行。
本发明实施例提供的方案,通过在应用层中将目标接口的调用转换为第一协议报文的形式,并在服务层中根据服务层所处的目标系统将第一协议报文转换为服务层所处操作系统所能识别的语言,并根据服务层的语言实现对硬件接口的调用。相比于现有技术,将强绑定的API调用方式映射为松耦合的网络通讯报文交互方式,实现了应用层层与服务层的解耦,同一套应用层实现逻辑可以适用于多种操作系统。
示例性地,当前服务层对应的语言可以为Java虚拟机语言,也可以为直接编译语言(C,C++)等,则可根据服务层对应的语言将第一协议报文进行转换,无需重新配置完成的应用程序。具体服务层对应的语言类型在此不作限制,以服务层所处的实际操作系统类型为准。
本发明实施例提供的通信方法,应用于通信设备,在通信设备上安装有操作系统,操作系统包括:应用层和服务层。首先从应用层中获取使用预设语言编译的目标接口的接口信息,将接口信息映射为第一协议报文,并将第一协议报文发送至服务层;再将第一协议报文识别为服务层对应的目标语言,使用目标语言调用接口信息对应的目标接口,最终实现操作系统中应用层与服务层的通信。本发明实施例通过使用预设语言编译目标接口的接口信息,并将接口信息映射为协议报文的形式,能够实现接口信息在应用层中只编译一次,可部署运行在不同的操作系统中的效果,达到了业务应用跨操作系统运行的目的。并且在根据业务需求需要对终端设备的硬件功能进行改变或者扩展新的模块时,只需在应用层中修改或新增相应接口信息,无需对相应协议报文进行新增或修改,降低了业务应用对应程序代码的维护成本,从而提高应用程序研发效率。
图2A是本发明实施例提供的通信方法的另一流程示意图,本实施例与上述实施例之间的关系对上述实施例相应特征的进一步细化。如图2A所示,该方法可以包括如下步骤:
S210、获取使用预设语言编译的目标应用程序。
目标应用程序表示表示实现业务应用中硬件接口调用的计算机代码程序。
具体地,请参照图2B,图2B是本发明实施例提供的应用层的一个架构示意图,在应用层中可包含有业务逻辑层、应用接口层和接口与报文映射层。其中,使用预设语言编译目标应用程序的操作可在业务逻辑层中实现,则当前目标应用程序中最少应包含有应用程序实现时需要调用的目标接口信息,从而便于后续步骤实现对目标接口信息的调用。进一步地,当有业务需求调整且不涉及硬件变化时,可直接对业务逻辑层进行优化升级再编译发布即可,其下各层均可保持不变。
其中,当前预设语言表示Java虚拟机语言。
S211、从目标应用程序中提取目标接口的接口信息。
在应用层的业务逻辑层中编译完成目标应用程序后,进一步应用接口层从目标应用程序中提取目标接口的接口信息。
具体地,从目标应用程序中提取目标接口的接口信息的方式可以根据目标接口的接口标识去提取,或者根据代码值去提取等。示例性地,提取每行代码中对应的键值(value)等方式,具体从目标应用程序中提取目标接口的接口信息的方式在此不错限制。
应用接口层对应服务层的目标接口,也可基于服务层暴露出的基础目标接口做进一步封装为高级目标接口,例如一个高级目标接口可能连续调用多个基础目标接口完成一个预定的业务规定动作,示例性地,可以为吸入银行卡,读取二磁道信息,读取三磁道信息,返回二、三磁道信息等。
其中,接口封装具体由服务层来实现。当有业务需求调整且涉及硬件变化时,对于应用层,需在应用接口层新增或者修改相应目标接口的参数时,同步修改业务逻辑层实现对新增或修改硬件接口的业务调用即可。
S220、将接口信息映射为第一协议报文,并将第一协议报文发送至服务层。
在步骤S211中应用接口层提取出使用Java虚拟机语言编译的目标接口信息后,应用程中的接口与报文映射层可在Java程序运行时,动态地将获取到目标接口的接口信息(如,接口名称、参数类型、参数名称以及接口返回值类型等),并将接口信息转换为第一协议报文的形式发送至服务层。当前步骤通过将强绑定的目标接口的调用方式映射为松耦合的网络通讯报文交互方式,从而实现同一套Java应用程序调用不同服务层中不同操作系统下的目标接口。
S230、获取服务层对应的目标语言。
服务层对应的目标语言可以为Java虚拟机语言或者直接编译语言(C,C++),也可以为其他实现语言代码,具体以服务层所处实际操作系统所需的目标语言为准。
S231、使用目标语言解析第一协议报文,获得目标语言对应的目标接口,对目标语言对应的目标接口进行调用。
目标语言对第一协议报文进行解析,为便于理解,可将应用层中的Java虚拟机语言,第一协议报文和目标语言用以下方式进行解释:在应用层的业务逻辑层中使用Java虚拟机语言编写目标应用程序,并使用应用接口层提取目标应用程序中包含的目标接口的接口信息,容易知道,当前目标接口的接口信息同样使用Java虚拟机语言进行表示,再在应用层中包含的接口与报文映射层将使用Java虚拟机语言编译的接口信息映射为第一协议报文,以通过字符串的形式发送至服务层;由于服务层当前所处的操作系统环境可能也应用层所处的操作系统环境相同,也可能不同,进一步地,服务层根据目标语言将第一协议报文进行解析,以解析成当前服务层所处操作系统所需的语言,从而当前目标语言对应的目标接口的接口信息可被当前服务层所处操作系统进行识别,从而根据当前接口信息完成与服务层相连的目标接口的调用。
S240、获取服务层中调用目标接口的调用结果,并将调用结果转换为第二协议报文发送至应用层。
在根据目标语言调用目标的调用接口时,一般需根据实际调用情况向应用层反馈调用结果,当前调用结果可根据接口信息中的接口返回值类型进行表示。具体地,在从服务层向应用层反馈目标接口的调用结果时,由于存在应用层所述操作系统与服务层所处操作系统不同的情况,则为便于服务层对调用结果进行识别,首先服务层将获取的调用结果转换为第二协议报文,以将调用结果以第二报文的形式发送至应用层。
S241、应用层根据第二协议报文识别调用结果,在调用结果为预设数值时,确定目标接口调用成功。
一种可选实施例,应用层根据第二协议报文识别调用结果,包括:应用层将第二协议报文转换为预设语言,根据预设语言识别调用结果。其中,目标接口调用成功用于指示操作系统中应用层与服务层通信成功,从而实现应用层与服务层跨操作系统的通信成功。
应用层中的接口与报文映射层会将第二协议报文识别为Java虚拟机语言的形式进行反馈,在调用结果为预设数值时,确定目标接口调用成功。
其中,在根据接口的返回值类型表示调用结果时,当接口的返回值类型为1,表明目标接口调用成功;当目标接口的返回值为2,表明当前接口调用失败,当应用层中获取目标接口的调用结果时,可根据当前调用结果确定下一操作步骤。例如,以读取银行卡信息为例,若读取成功,则在应用接口接收到接口的返回值类型为1时,则可继续后续步骤,例如输入银行卡密码;在应用接口接收到接口的返回值类型为2时,则应用层可继续向服务层发送读取银行卡信息的接口调用操作,可直到读取成功为止,也可在读取超过预设次数未读取成功时,向运营人员反馈错误信息,以使得运用人员对当前程序进行相应维护等。
可选地,当前预设数值还可以为T(Ture)或者Y(Yes)等,以目标接口表示调用成功,具体预设数值的类型在此不作限制。
一种可选实施例,具体地,请参照图2C,图2C是本发明实施例提供的通信系统的架构示意图。服务层包括中间件层;中间件层用于将第一协议报文转换为服务层对应的目标语言,并根据目标语言从服务层中调用目标接口;以及,用于接收服务层中根据目标语言调用目标接口的调用结果,并将调用结果转换为第二协议报文发送至应用层。
本发明通过将目标接口的调用转换为协议报文的形式,应用层采用Java语言实现,在调用硬件设备时,根据服务层所处的实际操作系统环境进行适配,从而实现在应用层中编译一次应用程序,实现跨操作系统运行,对于同一业务需求在不同运行操作系统环境下仅需维护应用层中的实现代码,解决现有方案中目标接口抵用方式可能导致的应用层中需要维护多中版本程序,系统维护成本高,且容易发生版本不一致等问题。进一步地,本发明实施例利用Java反射机制和注解,实现了将目标接口直接映射为协议报文,在进行终端设备硬件功能和模块扩展时,应用层只需新增、修改相应的目标接口,无须再进行报文配置的新增、修改,进一步降低了应用程序代码的维护成本,提高程序研发效率。
图3是本发明实施例提供的通信装置的一个结构示意图,该装置适用于执行本发明实施例提供的通信方法。如图3所示,该装置应用于通信设备,所述通信设备上安装有操作系统,所述操作系统包括:应用层和服务层。该装置具体可以包括:编译模块310和调用模块320,其中:
编译模块310,用于从所述应用层中获取使用预设语言编译的目标接口的接口信息,将所述接口信息映射为第一协议报文,并将所述第一协议报文发送至所述服务层;
调用模块320,用于将所述第一协议报文识别为服务层对应的目标语言,使用所述目标语言调用所述接口信息对应的目标接口,实现所述操作系统中所述应用层与所述服务层的通信。
本发明实施例提供的通信装置,应用于通信设备,在通信设备上安装有操作系统,操作系统包括:应用层和服务层。首先从应用层中获取使用预设语言编译的目标接口的接口信息,将接口信息映射为第一协议报文,并将第一协议报文发送至服务层;再将第一协议报文识别为服务层对应的目标语言,使用目标语言调用接口信息对应的目标接口,最终实现操作系统中应用层与服务层的通信。本发明实施例通过使用预设语言编译目标接口的接口信息,并将接口信息映射为协议报文的形式,能够实现接口信息在应用层中只编译一次,可部署运行在不同的操作系统中的效果,达到了业务应用跨操作系统运行的目的。并且在根据业务需求需要对终端设备的硬件功能进行改变或者扩展新的模块时,只需在应用层中修改或新增相应接口信息,无需对相应协议报文进行新增或修改,降低了业务应用对应程序代码的维护成本,从而提高应用程序研发效率。
一实施例中,所述编译模块310包括:第一获取单元和提取单元,其中:
第一获取单元,用于获取使用所述预设语言编译的目标应用程序;
提取单元,用于从所述目标应用程序中提取所述目标接口的接口信息。
一实施例中,所述调用模块320包括:第二获取单元和调用单元,其中:
第二获取单元,用于获取所述服务层对应的目标语言;
调用单元,用于使用所述目标语言解析所述第一协议报文,获得所述目标语言对应的目标接口,对所述目标语言对应的目标接口进行调用。
一实施例中,所述装置还包括:发送模块和识别模块,其中:
发送模块,用于获取所述服务层中调用所述目标接口的调用结果,并将所述调用结果转换为第二协议报文发送至所述应用层;
识别模块,用于所述应用层根据所述第二协议报文识别所述调用结果,在所述调用结果为预设数值时,确定所述目标接口调用成功,其中,所述目标接口调用成功用于指示所述操作系统中所述应用层与所述服务层通信成功。
一实施例中,所述识别模块,具体用于所述应用层将所述第二协议报文转换为所述预设语言,根据所述预设语言识别所述调用结果。
一实施例中,所述服务层包括中间件层;所述中间件层用于将所述第一协议报文转换为所述服务层对应的目标语言,并根据所述目标语言从所述服务层中调用所述目标接口;以及,用于接收所述服务层中根据所述目标语言调用所述目标接口的调用结果,并将所述调用结果转换为所述第二协议报文发送至所述应用层。
一实施例中,所述目标接口的接口信息包括:接口名称、接口的参数类型、接口的参数名称和接口的返回值类型。
本领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述功能模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本发明实施例还提供了一种电子设备,所述电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的通信方法。
本发明实施例还提供了一种计算机可读介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的通信方法。
下面参考图4,其示出了适于用来实现本发明实施例的电子设备的计算机系统500的结构示意图。图4示出的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块和/或单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块和/或单元也可以设置在处理器中,例如,可以描述为:一种处理器包括获取模块、确定模块和创建模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:从所述应用层中获取使用预设语言编译的目标接口的接口信息,将所述接口信息映射为第一协议报文,并将所述第一协议报文发送至所述服务层;
将所述第一协议报文识别为所述服务层对应的目标语言,使用所述目标语言调用所述接口信息对应的目标接口,实现所述操作系统中应用层与服务层的通信。
根据本发明实施例的技术方案,应用于通信设备,在通信设备上安装有操作系统,操作系统包括:应用层和服务层。首先从应用层中获取使用预设语言编译的目标接口的接口信息,将接口信息映射为第一协议报文,并将第一协议报文发送至服务层;再将第一协议报文识别为服务层对应的目标语言,使用目标语言调用接口信息对应的目标接口,最终实现操作系统中应用层与服务层的通信。本发明实施例通过使用预设语言编译目标接口的接口信息,并将接口信息映射为协议报文的形式,能够实现接口信息在应用层中只编译一次,可部署运行在不同的操作系统中的效果,达到了业务应用跨操作系统运行的目的。并且在根据业务需求需要对终端设备的硬件功能进行改变或者扩展新的模块时,只需在应用层中修改或新增相应接口信息,无需对相应协议报文进行新增或修改,降低了业务应用对应程序代码的维护成本,从而提高应用程序研发效率。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种通信方法,其特征在于,应用于通信设备,所述通信设备上安装有操作系统,所述操作系统包括:应用层和服务层,所述方法包括:
从所述应用层中获取使用预设语言编译的目标接口的接口信息,将所述接口信息映射为第一协议报文,并将所述第一协议报文发送至所述服务层;
将所述第一协议报文识别为所述服务层对应的目标语言,使用所述目标语言调用所述接口信息对应的目标接口,实现所述操作系统中所述应用层与所述服务层的通信。
2.根据权利要求1所述的方法,其特征在于,从所述应用层中获取使用预设语言编译的目标接口的接口信息,包括:
获取使用所述预设语言编译的目标应用程序;
从所述目标应用程序中提取所述目标接口的接口信息。
3.根据权利要求1所述的方法,其特征在于,将所述第一协议报文识别为所述服务层对应的目标语言,使用所述目标语言调用所述接口信息对应的目标接口,包括:
获取所述服务层对应的目标语言;
使用所述目标语言解析所述第一协议报文,获得所述目标语言对应的目标接口,对所述目标语言对应的目标接口进行调用。
4.根据权利要求1所述的方法,其特征在于,在使用所述目标语言调用所述接口信息对应的目标接口之后,所述方法还包括:
获取所述服务层中调用所述目标接口的调用结果,并将所述调用结果转换为第二协议报文发送至所述应用层;
所述应用层根据所述第二协议报文识别所述调用结果,在所述调用结果为预设数值时,确定所述目标接口调用成功,其中,所述目标接口调用成功用于指示所述操作系统中所述应用层与所述服务层通信成功。
5.根据权利要求4所述的方法,其特征在于,所述应用层根据所述第二协议报文识别所述调用结果,包括:
所述应用层将所述第二协议报文转换为所述预设语言,根据所述预设语言识别所述调用结果。
6.根据权利要求4所述的方法,其特征在于,所述服务层包括中间件层;
所述中间件层用于将所述第一协议报文转换为所述服务层对应的目标语言,并根据所述目标语言从所述服务层中调用所述目标接口;以及,用于接收所述服务层中根据所述目标语言调用所述目标接口的调用结果,并将所述调用结果转换为所述第二协议报文发送至所述应用层。
7.根据权利要求1所述的方法,其特征在于,所述目标接口的接口信息包括:接口名称、接口的参数类型、接口的参数名称和接口的返回值类型。
8.一种通信装置,其特征在于,应用于通信设备,所述通信设备上安装有操作系统,所述操作系统包括:应用层和服务层,所述装置包括:
编译模块,用于从所述应用层中获取使用预设语言编译的目标接口的接口信息,将所述接口信息映射为第一协议报文,并将所述第一协议报文发送至所述服务层;
调用模块,用于将所述第一协议报文识别为所述服务层对应的目标语言,使用所述目标语言调用所述接口信息对应的目标接口,实现所述操作系统中所述应用层与所述服务层的通信。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的通信方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7任一项所述的通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210220636.1A CN114579334A (zh) | 2022-03-08 | 2022-03-08 | 一种通信方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210220636.1A CN114579334A (zh) | 2022-03-08 | 2022-03-08 | 一种通信方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114579334A true CN114579334A (zh) | 2022-06-03 |
Family
ID=81778351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210220636.1A Pending CN114579334A (zh) | 2022-03-08 | 2022-03-08 | 一种通信方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114579334A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117041304A (zh) * | 2023-10-10 | 2023-11-10 | 南京翼辉信息技术有限公司 | 一种车载原子服务系统及其控制方法 |
-
2022
- 2022-03-08 CN CN202210220636.1A patent/CN114579334A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117041304A (zh) * | 2023-10-10 | 2023-11-10 | 南京翼辉信息技术有限公司 | 一种车载原子服务系统及其控制方法 |
CN117041304B (zh) * | 2023-10-10 | 2023-12-19 | 南京翼辉信息技术有限公司 | 一种车载原子服务系统及其控制方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111740948B (zh) | 数据包发布方法、动态更新方法、装置、设备及介质 | |
US20180210768A1 (en) | Api-based service command invocation | |
CN112631924A (zh) | 自动化测试方法、装置、计算机设备及存储介质 | |
CN114564203A (zh) | 一种业务运行方法、装置、电子设备及可读介质 | |
CN111506368B (zh) | 对异步调用转同步调用的方法、装置、设备及存储介质 | |
CN112562217A (zh) | 自助终端控制系统的流程引擎设计、通讯方式、工作方法 | |
CN110221840B (zh) | 应用程序的功能实现方法及装置、设备及存储介质 | |
CN111427782B (zh) | 安卓动态链接库的运行方法、装置、设备及存储介质 | |
CN110659210A (zh) | 一种信息获取方法、装置、电子设备及存储介质 | |
CN113326030A (zh) | 一种业务请求的处理方法和装置 | |
CN112463256A (zh) | 确定配置文件的方法、系统、电子设备及存储介质 | |
CN114579334A (zh) | 一种通信方法、装置、电子设备及存储介质 | |
CN114048415A (zh) | 表单生成方法及装置、电子设备和计算机可读存储介质 | |
CN114217789A (zh) | 功能组件拓展方法、装置、设备、存储介质及程序产品 | |
CN111324395B (zh) | 调用方法、装置和计算机可读存储介质 | |
CN111488286A (zh) | 一种Android模块独立开发的方法及装置 | |
CN112035270A (zh) | 接口适配方法、系统、装置、计算机可读介质及电子设备 | |
CN106778193B (zh) | 一种客户端和ui交互方法 | |
CN115934076A (zh) | 跨平台客户端的微服务提供装置、方法和电子设备 | |
CN113434217B (zh) | 漏洞扫描方法、装置、计算机设备及介质 | |
CN112667441A (zh) | 基于容错功能的业务模块调度方法、系统及存储介质 | |
CN114219643A (zh) | 一种交易调用方法、装置、设备及存储介质 | |
CN118092886B (zh) | 移动应用中间层组件调用方法、装置、设备及存储介质 | |
CN113986388B (zh) | 程序集加载方法、系统、电子设备及存储介质 | |
CN112954075B (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 |