CN110874214B - 一种功能调用方法、装置、电子设备和存储介质 - Google Patents

一种功能调用方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN110874214B
CN110874214B CN201911110735.9A CN201911110735A CN110874214B CN 110874214 B CN110874214 B CN 110874214B CN 201911110735 A CN201911110735 A CN 201911110735A CN 110874214 B CN110874214 B CN 110874214B
Authority
CN
China
Prior art keywords
application server
programming language
data
function
identification information
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
Application number
CN201911110735.9A
Other languages
English (en)
Other versions
CN110874214A (zh
Inventor
宋仁非
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Mininglamp Software System Co ltd
Original Assignee
Beijing Mininglamp Software System Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Mininglamp Software System Co ltd filed Critical Beijing Mininglamp Software System Co ltd
Priority to CN201911110735.9A priority Critical patent/CN110874214B/zh
Publication of CN110874214A publication Critical patent/CN110874214A/zh
Application granted granted Critical
Publication of CN110874214B publication Critical patent/CN110874214B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供了一种功能调用方法、装置、电子设备和存储介质,其中,该方法包括:在通过中间件接收到第一应用服务器发送的第一功能调用指令和第二应用服务器的第一标识信息后,根据应用服务器的标识信息和该应用服务器能够识别的编程语言的对应关系,使用第一标识信息对应的编程语言对第一功能调用指令进行序列化处理,以得到使用第二编程语言进行编辑的第二功能调用指令,根据第一标识信息,将第二功能调用指令发送给第二应用服务器,以使第二应用服务器根据第二功能调用指令调用对应的功能,以通过功能获取第二功能调用指令对应的第一数据,通过上述方法,在应用程序的开发阶段有利于降低编程人员的工作量。

Description

一种功能调用方法、装置、电子设备和存储介质
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种功能调用方法、装置、电子设备和存储介质。
背景技术
随着应用程序中的功能的增多,需要处理的数据量也会增加,为了保证应用服务器的处理速度,需要多台应用服务器共同处理数据,即:将应用程序中的多个功能分别部署到多台应用服务器中,每台应用服务器负责执行该应用程序中的至少一个功能。
在同一台应用服务器中执行的功能使用相同的编程语言来进行编辑,对于部署在一台应用服务器中的功能而言,不同编程语言是具有优劣性的,即:使用不同的编程语言编写的功能的数据处理速度和运行稳定性是存在差别的,因此对于一台应用服务器而言,需要使用与功能相匹配的编程语言来编辑该功能,由于不同的应用服务器部署有不同的功能,因此不同的服务器所使用的编程语言也是不同的。
一台应用服务器在进行数据处理时,有时会用到其他应用服务器中的数据,此时需要这两台应用服务器进行数据交互,但是因为这两台应用服务器使用的编程语言不同,因此这两台应用服务器在进行数据交互之前,其中一台应用服务器需要将数据转换成这两台服务器都能识别的数据,然后将转换后的数据发送给另一台应用服务器,该另一台应用服务器再将转换后的数据转换为自身所使用的编程语言后再进行数据处理。在进行数据转换时,需要调用转换接口,以调用转换功能来实现数据转换,因此为了数据转换的需求,需要在各应用服务器上分别部署有转换接口,这样的部署方式在应用程序开发阶段会使编程人员的工作量较大,从而使得应用程序的开发周期较长。
发明内容
有鉴于此,本申请实施例的目的在于提供一种功能调用方法、装置、电子设备和存储介质,以缩短应用程序的开发周期。
第一方面,本申请实施例提供了一种功能调用方法,应用于部署有中间件的设备,所述功能调用方法包括:
在通过所述中间件接收到第一应用服务器发送的第一功能调用指令和第二应用服务器的第一标识信息后,根据应用服务器的标识信息和该应用服务器能够识别的编程语言的对应关系,使用所述第一标识信息对应的编程语言对所述第一功能调用指令进行序列化处理,以得到使用第二编程语言进行编辑的第二功能调用指令,其中,所述第一功能调用指令是使用第一编程语言进行编辑的,所述第一编程语言和所述第二编程语言是不同的编程语言,所述第一编程语言为所述第一应用服务器能够识别的编程语言,所述第一应用服务器中的代码是使用所述第一编程语言编写的,所述第二编程语言为所述第二应用服务器能够识别的编程语言,所述第二应用服务器中的代码是使用所述第二编程语言编写的;
根据所述第一标识信息,将所述第二功能调用指令发送给所述第二应用服务器,以使所述第二应用服务器根据所述第二功能调用指令调用对应的功能,以通过所述功能获取所述第二功能调用指令对应的第一数据。
可选地,所述第一功能调用指令,包括:
功能包名称信息、功能名称信息、需要返回的数据类型的第二标识信息,以及需要返回的数据对应的对象的第三标识信息。
可选地,所述功能调用方法,还包括:
获取各所述应用服务器发送的数据对,其中,每个所述数据对中包括该应用服务器的标识信息和该应用服务器能够识别的编程语言;
将每个所述数据对中的该应用服务器的标识信息和该应用服务器能够识别的编程语言之间的对应关系存储到所述中间件中。
可选地,所述功能调用方法,还包括:
在通过所述中间件接收到所述第二应用服务器返回的所述第一数据和所述第一应用服务器的第四标识信息后,根据所述对应关系,使用所述第四标识信息对应的编程语言对所述第一数据进行序列化处理,以得到使用所述第一编程语言进行编辑的第二数据,其中,所述第一数据是使用所述第二编程语言进行编辑的;
根据所述第四标识信息,将所述第二数据发送给所述第一应用服务器。
第二方面,本申请实施例提供了一种功能调用装置,所述功能调用装置部署有中间件,所述功能调用装置包括:
数据处理单元,用于在通过所述中间件接收到第一应用服务器发送的第一功能调用指令和第二应用服务器的第一标识信息后,根据应用服务器的标识信息和该应用服务器能够识别的编程语言的对应关系,使用所述第一标识信息对应的编程语言对所述第一功能调用指令进行序列化处理,以得到使用第二编程语言进行编辑的第二功能调用指令,其中,所述第一功能调用指令是使用第一编程语言进行编辑的,所述第一编程语言和所述第二编程语言是不同的编程语言,所述第一编程语言为所述第一应用服务器能够识别的编程语言,所述第一应用服务器中的代码是使用所述第一编程语言编写的,所述第二编程语言为所述第二应用服务器能够识别的编程语言,所述第二应用服务器中的代码是使用所述第二编程语言编写的;
发送单元,用于根据所述第一标识信息,将所述第二功能调用指令发送给所述第二应用服务器,以使所述第二应用服务器根据所述第二功能调用指令调用对应的功能,以通过所述功能获取所述第二功能调用指令对应的第一数据。
可选地,所述第一功能调用指令,包括:
功能包名称信息、功能名称信息、需要返回的数据类型的第二标识信息,以及需要返回的数据对应的对象的第三标识信息。
可选地,所述功能调用装置,还包括:
获取单元,用于获取各所述应用服务器发送的数据对,其中,每个所述数据对中包括该应用服务器的标识信息和该应用服务器能够识别的编程语言;
存储单元,用于将每个所述数据对中的该应用服务器的标识信息和该应用服务器能够识别的编程语言之间的对应关系存储到所述中间件中。
可选地,所述数据处理单元,还用于在通过所述中间件接收到所述第二应用服务器返回的所述第一数据和所述第一应用服务器的第四标识信息后,根据所述对应关系,使用所述第四标识信息对应的编程语言对所述第一数据进行序列化处理,以得到使用所述第一编程语言进行编辑的第二数据,其中,所述第一数据是使用所述第二编程语言进行编辑的;
所述发送单元,还用于根据所述第四标识信息,将所述第二数据发送给所述第一应用服务器。
第三方面,本申请实施例提供了一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如第一方面中任一所述的功能调用方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如第一方面中任一所述的功能调用方法的步骤。
本申请的实施例提供的技术方案可以包括以下有益效果:
在本申请中,在第一应用服务器和第二应用服务器中设置部署有中间件的设备,其中,第一应用服务器中的代码是使用第一编程语言编写的,第二应用服务器中的代码是使用第二编程语言编写的,第一编程语言和第二编程语言是不同的编程语言,在采用上述设置方式后,第一应用服务器能够识别第一编程语言,第二应用服务器能够识别第二编程语言,在进行功能调用时,部署有中间件设备在通过中间件接收到第一应用服务器发送的第一功能调用指令和第二应用服务器的第一标识信息后,可以根据应用服务器的标识信息和该应用服务器能够识别的编程语言的对应关系,确定出与第一标识信息对应的第二应用服务器能够识别的编程语言,然后使用该编程语言对第一功能调用指令进行序列化处理,得到使用第二编程语言进行编辑的第二功能调用指令,然后在将第二功能调用指令发送给第一标识信息对应的第二应用服务器上,以使该第二应用服务器根据该第二功能调用指令调用对应的功能,并获取第二功能调用指令对应的第一数据,通过上述方法,只需要在部署有中间件的设备部署数据转换接口,来进行数据转换,无需在每台应用服务器上都部署数据转换接口,这样的设置方式在应用程序的开发阶段有利于降低编程人员的工作量,从而有利于缩短应用程序的开发周期,并且,在本申请中,是将第一功能调用指令转换为第二应用服务器能够识别的第二功能调用指令,相对于现有技术中将一台应用服务器发送的数据转换为这两台应用服务器都能识别数据,但是转换后的数据对应的编程语言都不是这两台应用服务器所使用的编程语言而言,本申请中的数据转换方式相对更佳简单,因此有利于提高应用服务器的数据处理效率。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例一提供的一种功能调用方法的流程示意图;
图2为本申请实施例一提供的一种功能调用系统的结构示意图;
图3为本申请实施例一公开的另一种功能调用方法的流程示意图;
图4为本申请实施例一公开的另一种功能调用方法的流程示意图;
图5为本申请实施例二提供的一种功能调用装置的结构示意图;
图6为本申请实施例二提供的另一种功能调用装置的结构示意图;
图7为本申请实施例三提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
在应用程序刚开发出来时,应用程序中的功能相对单一或者功能相对较少,应用程序在运行时,可以运行在一台应用服务器中,该一台应用服务器的数据处理能力能够满足该应用程序的需求,但是随着应用程序的不断升级,应用程序中包括的功能会逐渐增多,应用程序如果仍运行在一台应用服务器中,该一台应用服务器需要处理的数据量会呈爆炸式增长,会使该一台应用服务器的数据处理速度无法满足该应用程序的需求。为了满足应用程序的数据处理需求,在相关技术中提供了一种通过多台应用服务器共同处理数据的方式,进一步的,将应用程序中包括的多个功能分别部署到多台应用服务器中,每台应用服务器负责运行该应用程序中的至少一个功能,例如:应用程序中包括功能1至功能10,根据实际情况可以在应用服务器1中运行功能1至功能3,在应用服务器2中运行功能4至功能9,在应用服务器3中运行功能10,通过对功能进行负载分担的方式来降低每台应用服务器的数据处理量,以提高每台应用服务器的数据处理速度。
在同一台应用服务器中执行的功能需要使用相同的编程语言来进行编辑,对于部署在一台应用服务器中的功能而言,不同编程语言是具有优劣性的,即:使用不同的编程语言编写的功能的数据处理速度和运行时的稳定性是存在差别的,因此,对于一台应用服务器而言,需要使用与功能相匹配的编程语言来编辑该功能。
举例说明,某一应用程序的功能包括100个,其中20个功能适合使用编程语言1来编写,因此该20个功能可以部署到应用服务器1上,并且在应用服务器1中使用编程语言1来编写该20个功能,另外80个功能适合使用编程语言2来编写,因此该80个功能可以部署到应用服务器2上,并且在应用服务器2中使用编程语言2来编写该80个功能。在完成上述部署后,可以由应用服务器1和应用服务器2构成的应用服务器集群共同运行该应用程序,并且每台服务器中只运行该应用程序的部分功能,因此相对于将所有功能都运行在一台应用服务器的方式而言,应用服务器1和应用服务器2中的任意一台应用服务器在运行时需要处理的数据量都相对较少,因此有利于提高任意一台应用服务器的数据处理速度,从而满足了应用程序的运行需求。
在使用多台应用服务器共同运行应用程序的方式时,一台应用服务器在进行数据处理时,有时会调用其他应用服务器中的数据,例如:应用服务器1中存储有数据1,应用服务器2在进行数据处理时需要用到数据1,此时应用服务器2需要调用应用服务器1中的数据1以完成数据的处理,当然,应用服务器1在进行数据处理时也会使用到应用服务器2中的数据,但是由于这两台应用服务器使用的编程语言不同,会使得这两台应用服务器使用的数据不同,进一步的,一台应用服务器不能识别另一台应用服务器使用的数据,因此这两台应用服务器在进行数据交互之前,其中一台应用服务器需要将数据转换成这两台服务器都能识别的数据,然后将转换后的数据发送给另一台应用服务器,该另一台应用服务器再将转换后的数据转换为自身所使用的编程语言后再进行数据处理。举例说明,应用服务器包括应用服务器1和应用服务器2,运行在应用服务器1中的功能使用的编程语言为编程语言1,运行在应用服务器2中的功能使用的编程语言为编程语言2,编程语言3为应用服务器1和应用服务器2都能识别的编程语言,当应用服务器1在进行数据处理时需要用到应用服务器2中的数据时,应用服务器1需要先将使用编程语言1编写的数据调取指令转换为编程语言3对应的数据调取指令,然后将编程语言3对应的数据调取指令发送给应用服务器2,应用服务器1再将编程语言3对应的数据调取指令转换成使用编程语言2编写的数据调取指令,然后再利用使用编程语言2编写的数据调取指令调取数据。
在进行数据转换(编程语言的转换)时,需要调用转换接口,以调用转换功能来实现数据转换,因此为了数据转换的需求,需要在各应用服务器上分别部署有转换接口,例如:当两台应用服务器共同运行应用程序时,该两台应用服务器上都要部署转换接口,以便在进行数据转换,当有很多台应用服务器共同运行应用程序时,该很多台应用服务器都要部署转换接口,这样的部署方式在应用程序开发阶段会使编程人员的工作量较大,从而使得应用程序的开发周期较长。
为了解决上述问题,本申请提供的一种功能调用方法、装置、电子设备和存储介质,在部署有中间件的设备部署数据转换接口,来进行数据转换,无需在每台应用服务器上都部署数据转换接口,这样的设置方式在应用程序的开发阶段有利于降低编程人员的工作量,从而有利于缩短应用程序的开发周期。
实施例一
图1为本申请实施例一提供的一种功能调用方法的流程示意图,应用于部署有中间件的设备,如图1所示,该功能调用方法包括以下步骤:
步骤101、在通过所述中间件接收到第一应用服务器发送的第一功能调用指令和第二应用服务器的第一标识信息后,根据应用服务器的标识信息和该应用服务器能够识别的编程语言的对应关系,使用所述第一标识信息对应的编程语言对所述第一功能调用指令进行序列化处理,以得到使用第二编程语言进行编辑的第二功能调用指令,其中,所述第一功能调用指令是使用第一编程语言进行编辑的,所述第一编程语言和所述第二编程语言是不同的编程语言,所述第一编程语言为所述第一应用服务器能够识别的编程语言,所述第一应用服务器中的代码是使用所述第一编程语言编写的,所述第二编程语言为所述第二应用服务器能够识别的编程语言,所述第二应用服务器中的代码是使用所述第二编程语言编写的。
步骤102、根据所述第一标识信息,将所述第二功能调用指令发送给所述第二应用服务器,以使所述第二应用服务器根据所述第二功能调用指令调用对应的功能,以通过所述功能获取所述第二功能调用指令对应的第一数据。
具体的,图2为本申请实施例一提供的一种功能调用系统的结构示意图,如图2所示,该功能调用系统包括多个应用服务器和部署有中间件的设备,该多个应用服务器可以构成应用服务器集群,该多个应用服务器可以共同运行一个应用程序,每个应用服务器中运行有该应用程序中的至少一个功能,该多个应用服务器之间能够通过部署有中间件的设备进行数据传输,以便使应用服务器集群中的一个应用服务器可以调用其他应用服务器中的数据来完成自身的数据处理,从而实现该应用服务器中运行的功能,该多个应用服务器之间可以通过RPC(Remote Procedure Call,远程过程调用)的通信方式进行数据传输,当然该多个应用服务器之间还可以通过其他通信方式进行数据传输,具体的传输方式可以根据实际需要进行设置,在此不做具体限定。
该多个应用服务器中的代码是使用不同的编程语言编写的,对于一个应用服务器而言,选择的编程语言是与其实现的功能相匹配的,即:该应用服务器在实现该功能时,该编程语言能够保证该应用服务器的数据处理速度,以及该应用服务器运行时的稳定性,该应用服务器产生的指令和数据是使用该编程语言编写的,并且该应用服务器能够识别使用该编程语言编写的指令和数据,该多个应用服务器中的一个应用服务器需要调用其他应用服务器中的数据时,该一个应用服务器可以作为第一应用服务器,该其他应用服务器可以作为第二应用服务器,并且为了使部署有中间件的设备能够找到对应的第二应用服务器,在该设备中设置有应用服务器的标识信息和该应用服务器能够识别的编程语言的对应关系,即:该多个应用服务器中的每个应用服务器都分配有不同的标识信息,该应用服务器的标识信息和该应用服务器能够识别的编程语言以对应关系的方式记录在部署有中间件的设备,通过该对应关系可以知道哪个应用服务器使用的何种编程语言。
当第一应用服务器需要调用第二应用服务器中的数据时,可以向部署有中间件的设备发送第一功能调用指令和第二应用服务器的第一标识信息,通过第一功能调用指令可以使第二应用服务器对对应的功能进行调用,在该功能运行后,可以使第二应用服务器获得该功能下产生的第一数据,第一标识信息可以使部署有中间件的设备获知将第一功能调用指令发送给哪个应用服务器。由于第一应用服务器和第二应用服务器使用的编程语言不同,因此部署有中间件的设备需要对第一应用服务器发送的第一功能调用指令进行编程语言转换(即:第一功能调用指令进行序列化处理),以得到第二应用服务器能够识别的编程语言,并且了为了提高数据的处理效率,部署有中间件的设备可以将第一功能调用指令转换使用的第二编程语言进行编辑的第二功能调用指令,由于第二应用服务器中的代码是使用第二编程语言编写的,因此部署有中间件的设备在对第一功能调用指令进行序列化处理后,可以直接将得到第二功能调用指令发送给第二应用服务器,第二应用服务器无需在进行任何处理,可以利用该第二功能调用指令直接进行功能调用。相对于现有技术中将一台应用服务器发送的数据转换为这两台应用服务器都能识别数据,但是转换后的数据对应的编程语言都不是这两台应用服务器所使用的编程语言而言,上述的转换方式相对更佳简单,因此有利于提高应用服务器的数据处理效率。同时,通过上述方法,只需要在部署有中间件的设备部署数据转换接口,来进行数据转换,无需在每台应用服务器上都部署数据转换接口,这样的设置方式在应用程序的开发阶段有利于降低编程人员的工作量,从而有利于缩短应用程序的开发周期。
需要说明的是,具体哪个应用服务器使用哪种编程语言进行编写可以根据实际需要进行设置,在此不做具体限定,并且,一个应用服务器集群中包括多少台应用服务器,以及每台应用服务器具体运行何种功能也可以根据实际需要进行设置,在此也不做具体限定,同时,具体涉及到的编程语言,以及何种功能具体适应哪种编程语言,可以根据实际需要进行设置,在此也不做具体限定。
在一个可行的实施方案中,所述第一功能调用指令,包括:
功能包名称信息、功能名称信息、需要返回的数据类型的第二标识信息,以及需要返回的数据对应的对象的第三标识信息。
具体的,应用服务器中的功能存在与功能包中,应用服务器中存在多个功能包,为了对不同的功能包进行区分,每个功能包具有唯一的功能包名称信息,以便通过该唯一的功能包名称信息找到对应的功能包,每个功能包下包括多个功能,为了对不同的功能进行区分,每个功能具有唯一功能名称信息,对于一个功能能够产生的数据类型有很多中,在第二应用服务器返回数据需要第一应用服务器需要的数据,因此需要在第一功能调用指令中设置需要返回的数据类型的第二标识信息,在第二应用服务器中可以存储第二标识信息和数据类型的关系,通过该关系可以确定需要返回给第一应用服务器的数据类型,并且第二应用服务器还需要知道需要返回数据对应的对象的第三标识信息,通过第三标识信息可以确定返回的数据是针对哪个对象的数据,当第一功能调用指令中包括上述信息时,可以使第二应用服务器找到目标对象,需要返回的该目标对应的数据类型,以及调用哪个功能包下的具体哪个功能来获取到该目标对应的数据类型。
举例说明,当第一应用服务器需要获取张三的身高和体重这两种数据,而这两种数据存储在第二应用服务器中时,第一应用服务器可以向部署有中间件的设备发送包含有目标功能包名称信息、目标功能名称信息、身高和体重对应的第二标识信息,以及张三对应的第三标识信息,通过目标功能包名称信息和目标功能名称信息来调用用于获取身高和体重的功能,通过第二标识信息和第三标识信息可以使第二应用服务器获知需要获取张三的身高和体重这两种信息,通过上述四种信息,可以获知需要调用的具体功能,需要获取的数据类型,以及获取的数据类型所对应的具体对象,从而得到准确的数据。
在一个可行的实施方案中,图3为本申请实施例一公开的另一种功能调用方法的流程示意图,如图3所示,该方法还包括以下步骤:
步骤301、获取各所述应用服务器发送的数据对,其中,每个所述数据对中包括该应用服务器的标识信息和该应用服务器能够识别的编程语言。
步骤302、将每个所述数据对中的该应用服务器的标识信息和该应用服务器能够识别的编程语言之间的对应关系存储到所述中间件中。
具体的,在设置好部署有中间件的设备后,各应用服务器会向该部署有中间件的设备发送包含有该应用服务器的标识信息和该应用服务器能够识别的编程语言的数据对,通过该数据对可以使该部署有中间件的设备获知应用服务器集群中都包括哪些应用服务器,以及每台应用服务器使用代码是使用何种编程语言进行编写的,然后该部署有中间件的设备将每一个数据对中包含的应用服务器的标识信息和该应用服务器能够识别的编程语言以对应关系的方式存储到本地,以便在接收到第一功能调用指令后,可以通过本地存储的对应关系确定第一标识信息对应的编程语言,从而确定出第二应用服务器具体使用何种编程语言编写代码,以便将第一功能调用指令转换成使用该编程语言编写的第二功能调用指令,通过上述方法可以使部署有中间件的设备自动保存各应用服务器的标识信息和该应用服务器能够识别的编程语言之间的对应关系,相对于人工设置各应用服务器的标识信息和该应用服务器能够识别的编程语言之间的对应关系的实现方式,上述方式有利于降低人工工作量。
并且,当某一应用服务器在对标识信息或者该应用服务器能够识别的编程语言进行修改后,例如:将该应用服务器原来使用的标识信息修改为另一个标识信息,或者将该应用服务器原来能够识别的编程语言修改为另一种该应用服务器够识别的编程语言,该应用服务器会将修改后的内容发送给部署有中间件的设备,以便部署有中间件的设备对本地存储的对应关系进行修改,例如:当将该应用服务器原来使用的标识信息修改为另一个标识信息后,该应用服务器可以向部署有中间件的设备发送对应关系修改指令,该对应关系修改指令中包括原来使用的标识信息和修改后的标识信息,部署有中间件的设备可以根据原来使用的标识信息找对具体的对应关系,然后使用修改后的标识信息对该对应关系中的标识信息进行替换,或者当将该应用服务器原来能够识别的编程语言修改为另一种该应用服务器够识别的编程语言后,该应用服务器可以向部署有中间件的设备发送对应关系修改指令,该对应关系修改指令中包括该应用服务器使用的标识信息和该应用服务器修改后的编程语言,部署有中间件的设备可以根据该标识信息找到具体的对应关系,然后使用修改后的编程语言对该对应关系中的编程语言进行替换,通过上述方法,可以使应用服务器在进行修改后,部署有中间件的设备可以自动对相应的对应关系进行修改,进一步降低了人工工作量。
在一个可行的实施方案中,图4为本申请实施例一公开的另一种功能调用方法的流程示意图,如图4所示,该方法还包括以下步骤:
步骤401、在通过所述中间件接收到所述第二应用服务器返回的所述第一数据和所述第一应用服务器的第四标识信息后,根据所述对应关系,使用所述第四标识信息对应的编程语言对所述第一数据进行序列化处理,以得到使用所述第一编程语言进行编辑的第二数据,其中,所述第一数据是使用所述第二编程语言进行编辑的。
步骤402、根据所述第四标识信息,将所述第二数据发送给所述第一应用服务器。
具体的,为了使第一应用服务器可以获取到第二应用服务器通过调用第一功能调用指令对应的功能后得到的第一数据,第二应用服务器需要将该第一数据发送给第一应用服务器,第二应用服务将该第一数据发送给第一应用服务器的过程的实现方式可以参考第一应用服务器向第二应用服务器发送第一功能调用指令的实现原理,在此不再详细说明,通过上述可以使第一应用服务器使用第二应用服务器中的数据,由于该数据是第二应用服务器运行自身的功能产生的,从而使得第一应用服务器中的数据处理量相对较少,从而有利于提高第一应用服务器的数据处理速度,同理,当第二应用服务器需要使用第一应用服务器中的数据时,也有利于提高第二应用服务器的数据处理速度。
实施例二
图5为本申请实施例二提供的一种功能调用装置的结构示意图,所述功能调用装置部署有中间件,如图5所示,所述功能调用装置包括:
数据处理单元51,用于在通过所述中间件接收到第一应用服务器发送的第一功能调用指令和第二应用服务器的第一标识信息后,根据应用服务器的标识信息和该应用服务器能够识别的编程语言的对应关系,使用所述第一标识信息对应的编程语言对所述第一功能调用指令进行序列化处理,以得到使用第二编程语言进行编辑的第二功能调用指令,其中,所述第一功能调用指令是使用第一编程语言进行编辑的,所述第一编程语言和所述第二编程语言是不同的编程语言,所述第一编程语言为所述第一应用服务器能够识别的编程语言,所述第一应用服务器中的代码是使用所述第一编程语言编写的,所述第二编程语言为所述第二应用服务器能够识别的编程语言,所述第二应用服务器中的代码是使用所述第二编程语言编写的;
发送单元52,用于根据所述第一标识信息,将所述第二功能调用指令发送给所述第二应用服务器,以使所述第二应用服务器根据所述第二功能调用指令调用对应的功能,以通过所述功能获取所述第二功能调用指令对应的第一数据。
在一个可行的实施方案中,所述第一功能调用指令,包括:
功能包名称信息、功能名称信息、需要返回的数据类型的第二标识信息,以及需要返回的数据对应的对象的第三标识信息。
在一个可行的实施方案中,图6为本申请实施例二提供的另一种功能调用装置的结构示意图,如图6所示,所述功能调用装置,还包括:
获取单元53,用于获取各所述应用服务器发送的数据对,其中,每个所述数据对中包括该应用服务器的标识信息和该应用服务器能够识别的编程语言;
存储单元54,用于将每个所述数据对中的该应用服务器的标识信息和该应用服务器能够识别的编程语言之间的对应关系存储到所述中间件中。
在一个可行的实施方案中,所述数据处理单元51,还用于在通过所述中间件接收到所述第二应用服务器返回的所述第一数据和所述第一应用服务器的第四标识信息后,根据所述对应关系,使用所述第四标识信息对应的编程语言对所述第一数据进行序列化处理,以得到使用所述第一编程语言进行编辑的第二数据,其中,所述第一数据是使用所述第二编程语言进行编辑的;
所述发送单元52,还用于根据所述第四标识信息,将所述第二数据发送给所述第一应用服务器。
关于实施例二的原理解释可参考实施例一的相关说明,在此不再详细说明。
实施例三
图7为本申请实施例三提供的一种电子设备的结构示意图,包括:处理器701、存储介质702和总线703,所述存储介质702存储有所述处理器701可执行的机器可读指令,当电子设备运行上述的功能调用方法时,所述处理器701与所述存储介质702之间通过总线703通信,所述处理器701执行所述机器可读指令,以执行以下步骤:
在通过所述中间件接收到第一应用服务器发送的第一功能调用指令和第二应用服务器的第一标识信息后,根据应用服务器的标识信息和该应用服务器能够识别的编程语言的对应关系,使用所述第一标识信息对应的编程语言对所述第一功能调用指令进行序列化处理,以得到使用第二编程语言进行编辑的第二功能调用指令,其中,所述第一功能调用指令是使用第一编程语言进行编辑的,所述第一编程语言和所述第二编程语言是不同的编程语言,所述第一编程语言为所述第一应用服务器能够识别的编程语言,所述第一应用服务器中的代码是使用所述第一编程语言编写的,所述第二编程语言为所述第二应用服务器能够识别的编程语言,所述第二应用服务器中的代码是使用所述第二编程语言编写的;
根据所述第一标识信息,将所述第二功能调用指令发送给所述第二应用服务器,以使所述第二应用服务器根据所述第二功能调用指令调用对应的功能,以通过所述功能获取所述第二功能调用指令对应的第一数据。
在本申请实施例中,所述存储介质702还可以存储其它机器可读指令,以执行如实施例一中其它所述的功能调用方法,关于具体执行的方法步骤和原理参见实施例一的说明,在此不再详细赘述。
实施例四
本申请实施例四还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行以下步骤:
在通过所述中间件接收到第一应用服务器发送的第一功能调用指令和第二应用服务器的第一标识信息后,根据应用服务器的标识信息和该应用服务器能够识别的编程语言的对应关系,使用所述第一标识信息对应的编程语言对所述第一功能调用指令进行序列化处理,以得到使用第二编程语言进行编辑的第二功能调用指令,其中,所述第一功能调用指令是使用第一编程语言进行编辑的,所述第一编程语言和所述第二编程语言是不同的编程语言,所述第一编程语言为所述第一应用服务器能够识别的编程语言,所述第一应用服务器中的代码是使用所述第一编程语言编写的,所述第二编程语言为所述第二应用服务器能够识别的编程语言,所述第二应用服务器中的代码是使用所述第二编程语言编写的;
根据所述第一标识信息,将所述第二功能调用指令发送给所述第二应用服务器,以使所述第二应用服务器根据所述第二功能调用指令调用对应的功能,以通过所述功能获取所述第二功能调用指令对应的第一数据。
在本申请实施例中,该计算机程序被处理器运行时还可以执行其它机器可读指令,以执行如实施例一中其它所述的功能调用方法,关于具体执行的方法步骤和原理参见实施例一的说明,在此不再详细赘述。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (6)

1.一种功能调用方法,其特征在于,应用于部署有中间件的设备,所述功能调用方法包括:
在通过所述中间件接收到第一应用服务器发送的第一功能调用指令和第二应用服务器的第一标识信息后,根据应用服务器的标识信息和该应用服务器能够识别的编程语言的对应关系,使用所述第一标识信息对应的编程语言对所述第一功能调用指令进行序列化处理,以得到使用第二编程语言进行编辑的第二功能调用指令,其中,所述第一功能调用指令是使用第一编程语言进行编辑的,所述第一编程语言和所述第二编程语言是不同的编程语言,所述第一编程语言为所述第一应用服务器能够识别的编程语言,所述第一应用服务器中的代码是使用所述第一编程语言编写的,所述第二编程语言为所述第二应用服务器能够识别的编程语言,所述第二应用服务器中的代码是使用所述第二编程语言编写的;所述第一功能调用指令,包括:功能包名称信息、功能名称信息、需要返回的数据类型的第二标识信息,以及需要返回的数据对应的对象的第三标识信息;通过第三标识信息来确定返回的数据是针对哪个对象的数据;
根据所述第一标识信息,将所述第二功能调用指令发送给所述第二应用服务器,以使所述第二应用服务器根据所述第二功能调用指令调用对应的功能,以通过所述功能获取所述第二功能调用指令对应的第一数据;所述第一数据是使用所述第二编程语言进行编辑的;
所述功能调用方法,还包括:
获取各所述应用服务器发送的数据对,其中,每个所述数据对中包括该应用服务器的标识信息和该应用服务器能够识别的编程语言;
将每个所述数据对中的该应用服务器的标识信息和该应用服务器能够识别的编程语言之间的对应关系存储到所述中间件中。
2.如权利要求1所述的功能调用方法,其特征在于,所述功能调用方法,还包括:
在通过所述中间件接收到所述第二应用服务器返回的所述第一数据和所述第一应用服务器的第四标识信息后,根据所述对应关系,使用所述第四标识信息对应的编程语言对所述第一数据进行序列化处理,以得到使用所述第一编程语言进行编辑的第二数据;
根据所述第四标识信息,将所述第二数据发送给所述第一应用服务器。
3.一种功能调用装置,其特征在于,所述功能调用装置部署有中间件,所述功能调用装置包括:
数据处理单元,用于在通过所述中间件接收到第一应用服务器发送的第一功能调用指令和第二应用服务器的第一标识信息后,根据应用服务器的标识信息和该应用服务器能够识别的编程语言的对应关系,使用所述第一标识信息对应的编程语言对所述第一功能调用指令进行序列化处理,以得到使用第二编程语言进行编辑的第二功能调用指令,其中,所述第一功能调用指令是使用第一编程语言进行编辑的,所述第一编程语言和所述第二编程语言是不同的编程语言,所述第一编程语言为所述第一应用服务器能够识别的编程语言,所述第一应用服务器中的代码是使用所述第一编程语言编写的,所述第二编程语言为所述第二应用服务器能够识别的编程语言,所述第二应用服务器中的代码是使用所述第二编程语言编写的;所述第一功能调用指令,包括:功能包名称信息、功能名称信息、需要返回的数据类型的第二标识信息,以及需要返回的数据对应的对象的第三标识信息;通过第三标识信息来确定返回的数据是针对哪个对象的数据;
发送单元,用于根据所述第一标识信息,将所述第二功能调用指令发送给所述第二应用服务器,以使所述第二应用服务器根据所述第二功能调用指令调用对应的功能,以通过所述功能获取所述第二功能调用指令对应的第一数据;所述第一数据是使用所述第二编程语言进行编辑的;
所述功能调用装置,还包括:
获取单元,用于获取各所述应用服务器发送的数据对,其中,每个所述数据对中包括该应用服务器的标识信息和该应用服务器能够识别的编程语言;
存储单元,用于将每个所述数据对中的该应用服务器的标识信息和该应用服务器能够识别的编程语言之间的对应关系存储到所述中间件中。
4.如权利要求3所述的功能调用装置,其特征在于,
所述数据处理单元,还用于在通过所述中间件接收到所述第二应用服务器返回的所述第一数据和所述第一应用服务器的第四标识信息后,根据所述对应关系,使用所述第四标识信息对应的编程语言对所述第一数据进行序列化处理,以得到使用所述第一编程语言进行编辑的第二数据;
所述发送单元,还用于根据所述第四标识信息,将所述第二数据发送给所述第一应用服务器。
5.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1至2中任一所述的功能调用方法的步骤。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至2中任一所述的功能调用方法的步骤。
CN201911110735.9A 2019-11-14 2019-11-14 一种功能调用方法、装置、电子设备和存储介质 Active CN110874214B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911110735.9A CN110874214B (zh) 2019-11-14 2019-11-14 一种功能调用方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911110735.9A CN110874214B (zh) 2019-11-14 2019-11-14 一种功能调用方法、装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN110874214A CN110874214A (zh) 2020-03-10
CN110874214B true CN110874214B (zh) 2023-06-16

Family

ID=69717186

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911110735.9A Active CN110874214B (zh) 2019-11-14 2019-11-14 一种功能调用方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN110874214B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113783925A (zh) * 2021-05-20 2021-12-10 北京沃东天骏信息技术有限公司 基于中间件的通信方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107066265A (zh) * 2017-03-15 2017-08-18 杭州华澜微电子股份有限公司 不同编程语言的互连方法及系统
CN109799980A (zh) * 2018-12-13 2019-05-24 平安普惠企业管理有限公司 基于数据处理多编程语言互连的方法、装置及计算机设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105589695A (zh) * 2015-12-23 2016-05-18 深圳市丽海弘金科技有限公司 业务功能的调用方法及系统
CN109643305A (zh) * 2016-08-25 2019-04-16 阿里巴巴集团控股有限公司 数据查询方法、应用和数据库服务器、中间件及系统
CN108153745B (zh) * 2016-12-02 2021-08-13 腾讯科技(深圳)有限公司 一种应用数据调用方法及应用开发系统
US10261763B2 (en) * 2016-12-13 2019-04-16 Palantir Technologies Inc. Extensible data transformation authoring and validation system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107066265A (zh) * 2017-03-15 2017-08-18 杭州华澜微电子股份有限公司 不同编程语言的互连方法及系统
CN109799980A (zh) * 2018-12-13 2019-05-24 平安普惠企业管理有限公司 基于数据处理多编程语言互连的方法、装置及计算机设备

Also Published As

Publication number Publication date
CN110874214A (zh) 2020-03-10

Similar Documents

Publication Publication Date Title
CN111131352B (zh) 主题切换方法及装置
CN109670128B (zh) 一种基于WebAssembly的网页应用实现方法及装置
CN108984268A (zh) Docker系统中容器管理的方法和装置
CN108021357B (zh) 程序调用的优化方法及装置
US11699073B2 (en) Network off-line model processing method, artificial intelligence processing device and related products
CN110507986B (zh) 动画信息的处理方法和装置
CN110442376A (zh) 一种实现软件打包的方法及装置
CN110874214B (zh) 一种功能调用方法、装置、电子设备和存储介质
CN111262753B (zh) 一种numa节点个数自动配置方法方法、系统、终端及存储介质
CN100472469C (zh) 运行日志获取方法
CN109271180B (zh) 一种数据处理方法及装置
CN107301097B (zh) 一种调用java对象、java对象的引用地址信息的存储方法及装置
CN112487092A (zh) 一种基于区块链的智能合约调用方法及装置
CN111625225A (zh) 一种程序指定数据输出方法和装置
CN109388770B (zh) Web页面生成方法及装置
CN107861807B (zh) 程序调用的优化方法及装置
CN107908391B (zh) 程序调用的优化方法及装置
CN114564156A (zh) 模型切片的方法和装置、3d打印系统、电子设备
CN113708971A (zh) 一种Openstack云平台的部署方法及相关装置
CN110333870B (zh) Simulink模型变量分配的处理方法、装置及设备
CN110399161B (zh) 一种映射关系的生成方法、调用方法及装置
CN114490318A (zh) 一种基于字节码增强实现弱隔离的环境治理系统及方法
CN110971665A (zh) 一种对接多类型存储的管理方法、系统、设备及存储介质
CN114237626B (zh) 一种非侵入式动态编辑jvm参数的方法、系统及设备
CN115061727B (zh) 一种shell命令调用python脚本命令的方法、装置及存储介质

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
GR01 Patent grant
GR01 Patent grant