CN112579212A - 跨语言调用的方法、调用方装置及被调用方装置 - Google Patents
跨语言调用的方法、调用方装置及被调用方装置 Download PDFInfo
- Publication number
- CN112579212A CN112579212A CN201910933477.8A CN201910933477A CN112579212A CN 112579212 A CN112579212 A CN 112579212A CN 201910933477 A CN201910933477 A CN 201910933477A CN 112579212 A CN112579212 A CN 112579212A
- Authority
- CN
- China
- Prior art keywords
- calling
- message
- mark
- called party
- call
- 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
- 238000000034 method Methods 0.000 title claims abstract description 161
- 230000008569 process Effects 0.000 claims abstract description 18
- 238000004891 communication Methods 0.000 claims description 20
- 238000004458 analytical method Methods 0.000 claims description 5
- 230000008901 benefit Effects 0.000 abstract description 14
- 230000008878 coupling Effects 0.000 abstract description 7
- 238000010168 coupling process Methods 0.000 abstract description 7
- 238000005859 coupling reaction Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 18
- 238000012546 transfer Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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/4482—Procedural
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例提供一种跨语言调用的方法、调用方装置及被调用方装置,属于计算机技术领域。跨语言调用的方法包括:发送调用意向;接收被调用方根据所述调用意向执行完调用后的调用结果;以及解析所述调用结果,以完成调用过程。藉此,实现了发挥不同编程语言的优势、降低复杂度及做到松耦合。
Description
技术领域
本发明涉及计算机技术领域,具体地涉及一种跨语言调用的方法、调用方装置及被调用方装置。
背景技术
目前能够开发应用的编程语言很多,不同编程语言适用于不同的业务场景,在工作中,使用不同编程语言开发应用后,会将应用集成一个整体,因为应用之间会有一定的依赖关系,所以相互调用在所难免,由于不同编程语言开发的程序实际运行时处于不同的进程中,无法实现直接调用。现有技术中,解决这一问题的技术方案包括:1)、统一编程语言,全部应用使用一种编程语言编写;2)、通过http、tcp、grpc调用。现有技术的这两种解决方案具有以下问题:1)、无法发挥不同编程语言的优势;2)、使用http、tcp、grpc调用需要引入功能无关的概念和逻辑,复杂度大大增加,且无法做到松耦合。
发明内容
本发明的目的是提供一种跨语言调用的方法、调用方装置及被被调用方装置,其可实现发挥不同编程语言的优势、降低复杂度及做到松耦合。
为了实现上述目的,本发明的一个方面提供一种用于跨语言调用的方法,该方法包括:发送调用意向;接收被调用方根据所述调用意向执行完调用后的调用结果;以及解析所述调用结果,以完成调用过程。
可选地,所述发送调用意向包括:发出调用消息,其中,所述调用消息包括调用消息类型、调用方标志、被调用方标志、方法路由标志及输入参数;和/或所述接收被调用方根据所述调用意向执行完调用后的调用结果包括:接收返回消息,其中,所述返回消息包括返回消息类型、调用方标志、被调用方标志、方法路由标志及输出参数。
可选地,所述解析所述调用结果以完成调用过程包括:判断接收的返回消息包括的返回消息类型是否为返回且所述返回消息包括的调用方标志是否对应自己;以及在所述返回消息类型为返回且所述调用方标志对应自己的情况下,解析所述返回消息包括的输出参数,以完成调用。
本发明的另一方面提供一种由被调用方执行的用于跨语言调用的方法,该方法包括:接收调用意向;根据所述调用意向执行调用;以及发送调用结果。
可选地,所述接收调用意向包括:接收调用消息,其中,所述调用消息包括调用消息类型、调用方标志、被调用方标志、方法路由标志及输入参数;和/或所述发送调用结果包括:发送返回消息,其中,所述返回消息包括:返回消息类型、调用方标志、被调用方标志、方法路由标志及输出参数。
可选地,所述根据所述调用意向执行调用包括:判断接收的调用消息包括的被调用方标志是否对应自己且所述调用消息包括的调用消息类型是否为调用;在所述被调用方标志对应自己且所述调用消息类型为调用的情况下,找到所述调用消息包括的方法路由标志对应的方法;基于所述调用消息包括的输入参数调用所述方法,以得到调用所述方法后的输出参数;以及将所述被调用方标志、所述方法路由标志、所述输出参数、返回消息类型及所述调用消息包括的调用方标志封装成返回消息。
本发明的另一方面还提供一种调用方装置,该调用方装置包括:调用方通信模块,用于:发送调用意向;以及接收被调用方根据所述调用意向执行完调用后的调用结果;以及解析模块,用于解析所述调用结果,以完成调用过程。
本发明的另一方面还提供一种被调用方装置,该被调用方装置包括:被调用方通信模块,用于接收调用意向;以及调用模块,用于根据所述调用意向执行调用;所述被调用方通信模块还用于发送调用结果。
本发明的另一方面还提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行上述的方法。
本发明的另一方面还提供一种电子设备,设备包括至少一个处理器、以及与处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行上述的方法。
通过上述技术方案,在调用方和被调用方之间传递调用意向和调用结果以完成调用,当调用方和被调用方被用不同编程语言编写时,实现了跨语言调用,屏蔽了不同编程语言之间的差别,极大地发挥了不同编程语言的优势。此外,本申请中的技术方案在实现跨语言调用时,不需要引入功能无关的概念和逻辑,降低了复杂度。另外,本申请中的技术方案在不同编程语言开发的应用之间传递调用意向和调用结果,做到了松耦合。
本发明的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:
图1是本发明一实施例提供的用于跨语言调用的方法的流程图;
图2是本发明另一实施例提供的由调用方执行的用于跨语言调用的方法的流程图;
图3是本发明另一实施例提供的由被调用方执行的用于跨语言调用的方法的流程图;
图4是本发明另一实施例提供的跨语言调用的方法的流程图;
图5是本发明另一实施例提供的用于跨语言调用的装置的结构框图;
图6是本发明另一实施例提供的调用方装置的结构框图;
图7是本发明另一实施例提供的被调用方装置的结构框图;以及
图8是本发明另一实施例提供的设备的结构示意图。
附图标记说明
1 调用意向传递模块 2 调用结果传递模块
3 调用方通信模块 4 解析模块
5 被调用方通信模块 6 调用模块
701 处理器 702 存储器
703 总线 70 设备
具体实施方式
以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
本发明实施例的一个方面提供一种用于跨语言调用的方法。图1是本发明一实施例提供的用于跨语言调用的方法的流程图。如图1所示,该方法包括以下内容。
在步骤S10中,在调用方和被调用方之间传递调用意向。其中,调用意向可以表明调用方想要调用被调用方的哪个方法。另外,调用意向中还可以表明调用方和被调用方的身份以免出现错误,以及执行所调用的方法的参数。例如,在调用方和被调用方之间的传递的调用意向为一调用消息,其中,该调用消息包括调用方标志、被调用方标志、方法路由标志及输入参数。输入参数为调用调用方想要调用的方法需要输入的参数。调用方标志表明了调用方是谁,被调用方标志表明了被调用方是谁,方法路由标志表明了调用方想要调用的方法是哪个。此外,在本发明实施例中,还可以使用其他可以表明调用意向的内容的形式。
在步骤S11中,接收被调用方根据调用意向执行完调用后的调用结果并向调用方传递调用结果。调用意向中表明了调用方想要调用被调用方的哪个方法,被调用方调用了调用方想要调用的方法后,产生结果,接收该结果并将该结果传递给调用方。调用结果中表明了被调用方执行完调用方想要调用的方法后的结果。另外,调用意向中还可以表明调用方和被调用方的身份以免出现错误。例如,可以采用消息来表示调用结果,该消息包括调用方标志、被调用方标志、方法路由标志及输出参数,其中输出参数即为被调用方执行完调用方想要调用的方法后的结果。此外,在本发明实施例中,还可以使用其他可以表明调用结果的内容的形式。
在调用方和被调用方之间传递调用意向和调用结果以完成调用,当调用方和被调用方被用不同编程语言编写时,实现了跨语言调用,屏蔽了不同编程语言之间的差别,极大地发挥了不同编程语言的优势。此外,本申请中的技术方案在实现跨语言调用时,不需要引入功能无关的概念和逻辑,降低了复杂度。另外,本申请中的技术方案在不同编程语言开发的应用之间传递调用意向和调用结果,做到了松耦合。
可选地,在本发明实施例中,可以很多方式来表示调用方的调用意向,例如,采用消息来表示调用意向。具体地,在调用方和被调用方之前传递调用意向可以包括以下内容。接收调用方发出的调用消息,其中,调用消息包括调用消息类型、调用方标志、被调用方标志、方法路由标志及输入参数;以及判断调用消息类型是否为调用,并在调用消息类型为调用的情况下,将调用消息发送至被调用方标志对应的被调用方,以使得被调用方执行方法路由标志对应的方法。调用消息类型为调用说明消息是由调用方发出,需要被调用方接收。
可选地,在本发明实施例中,可以用很多形式来表示调用结果,例如,采用消息来表示调用结果。具体地,接收被调用方根据调用意向执行完调用后的调用结果并向调用方传递调用结果包括:接收被调用方发出的返回消息,其中,返回消息包括返回消息类型、调用方标志、被调用方标志、方法路由标志及输出参数;以及判断返回消息类型是否为返回,并在返回消息类型为返回的情况下,将返回消息发送至调用方。返回消息类型为返回说明被调用方执行调用后将结果返回,需要调用方接收。
本发明实施例的另一方面提供一种由调用方执行的用于跨语言调用的方法。图2是本发明另一实施例提供的由调用方执行的用于跨语言调用的方法的流程图。如图2所示,该方法包括以下内容。
在步骤S20中,发送调用意向。在步骤S21中,接收被调用方根据调用意向执行完调用后的调用结果。在步骤S22中,解析调用结果,以知晓被调用方调用执行了调用方想要调用的方法后的结果,来完成调用过程。其中,在该实施例中,关于调用意向和调用结果的解释可以参见上述实施例中的描述。
可选地,在本发明实施例中,发送调用可以包括以下内容:发出调用消息,其中,调用消息包括调用消息类型、调用方标志、被调用方标志、方法路由标志及输入参数。
可选地,在本发明实施例中,接收被调用方根据调用意向执行完调用后的调用结果可以包括以下内容:接收返回消息,其中,返回消息包括返回消息类型、调用方标志、被调用方标志、方法路由标志及输出参数。
可选地,在本发明实施例中,解析所述调用结果以完成调用过程可以包括以下内容。判断接收的返回消息包括的返回消息类型是否为返回且返回消息包括的调用方标志是否对应自己;以及在返回消息类型为返回且调用方标志对应自己的情况下,解析返回消息包括的输出参数,以完成调用。此外,可以通过对返回消息进行解析,来知晓返回消息包括的调用方标志、返回消息类型及输出参数等内容。另外,判断返回消息类型是否为返回及调用方标志是否对应自己的顺序可以依据实际情况而定,可以是先判断返回消息类型再判断调用方标志,也可以是先判断调用方标志再判断返回消息类型。
本发明实施例的另一方面提供一种由被调用方执行的用于跨语言调用的方法。图3是本发明另一实施例提供的由被调用方执行的用于跨语言调用的方法的流程图。如图3所示,该方法包括以下内容。
在步骤S30中,接收调用意向。在步骤S31中,根据调用意向执行调用,也就是,执行调用意向中表明的调用方想要调用的方法。在步骤S32中,发送调用结果。其中,在该实施例中,关于调用意向和调用结果的解释可以参见上述实施例中的描述。
可选地,在本发明实施例中,接收调用意向可以包括以下内容:接收调用消息,其中,调用消息包括调用消息类型、调用方标志、被调用方标志、方法路由标志及输入参数。
可选地,在本发明实施例中,根据调用意向执行调用可以包括以下内容。判断接收的调用消息包括的被调用方标志是否对应自己且调用消息包括的调用消息类型是否为调用;在被调用方标志对应自己且调用消息类型为调用的情况下,找到调用消息包括的方法路由标志对应的方法;基于调用消息包括的输入参数调用方法,以得到调用方法后的输出参数;以及将被调用方标志、方法路由标志、输出参数、返回消息类型及调用消息包括的调用方标志封装成返回消息。其中,判断被调用方标志是否对应自己及判断调用消息类型是否为调用的顺序可以依据实际情况而定,可以是先判断被调用方标志再判断调用消息类型,也可以是先判断调用消息类型再判断被调用方标志。此外,在基于输入参数调用方法之前,还可以先对输入参数进行反序列化,基于经过反序列化的输入参数调用方法。另外,在本发明实施例中,可以通过解析调用消息来知晓被调用方标志、调用消息类型、方法路由标志等内容。
可选地,在本发明实施例中,发送调用结果包括:发送返回消息,其中,返回消息包括:返回消息类型、调用方标志、被调用方标志、方法路由标志及输出参数。
需要说明的是,在本发明的不同实施例中,关于调用消息类型、调用方标志、被调用方标志、方法路由标志、输入参数及输出参数的解释均可以相互引用。
图4是本发明另一实施例提供的跨语言调用的方法的流程图。下面结合图4对如何实现跨语言调用进行解释。
在本实施例中,消息可以采用消息队列的形式,通过引入高速消息队列和消息中心,将调用的输入和调用后输出的返回封装成消息,各个调用方通过消息发送和接收取得结果。如此,实现了发挥不同编程语言的优势,降低了复杂度,做到了松耦合。其中,消息队列是在消息的传输过程中保存消息的容器。
在本实施例中,增加高速消息队列,用作消息订阅和发布的媒介,每个应用可以方便的发布和订阅消息,跨语言调用的具体内容可以参见以下内容。
1)、给每个应用一个唯一标志,将应用可供外界调用的方法制作成一个路由表,例如某个应用里面有方法getData,则以getData作为此方法名为路由表的标志,即此方法的方法路由标志,方法路由表中列举中可供外界调用的方法的方法路由标志。
建立一个配置文件,此配置文件中列出每个应用的唯一标志和可供外界调用的方法路由表。每个应用启动时,先读取上述配置文件,获取所有应用的方法路由表。
2)、启动一个消息队列服务及消息中心
消息队列的作用是存储应用之间的消息
消息队列消息应当包括的字段是:消息类型、被调用方唯一标志、调用方唯一标志、方法路由唯一标志、输入参数、输出参数。其中,调用方向消息中心发出的调用消息包括调用方唯一标志(等同于上述实施例中所述的调用方标志)、被调用方唯一标志(等于上述实施例中所述的调用方标志)、方法路由唯一标志(等同于上述实施例中所述的方法路由标志)、调用消息类型及输入参数。被调用方向消息中心发出的调用消息包括调用方唯一标志、被调用方唯一标志、方法路由唯一标志、返回消息类型及输出参数。
其中,消息类型分为两种。其一是调用,说明此消息是调用方发出,需要被调用方接收,该消息为调用消息。其二是返回,说明此消息是被调用方执行调用后返回信息时发出,需要调用方接收,该消息是返回消息。
消息中心的作用是作为一个服务端,能够接受到消息,也能发送消息。
3)、依次启动各个应用,每个应用启动后,即开启实时从消息中心接收消息。
4)、下面说明一个应用调用另外一个应用的过程:
(4.1)调用方发起一个调用,向消息中心发布一条消息,即调用消息,说明调用方和被调用方、方法路由标志、输入参数,也就是,调用消息包括调用方标志、被调用方标志、方法路由标志、消息类型及输入参数,然后等待。
(4.2)消息中心收到一条消息,即调用消息,读取调用消息的消息内容,判断消息的类型是否为调用。若调用消息的类型为调用,则将此调用消息发给被调用方的应用。若调用消息的类型不为调用,则忽略该调用消息。
(4.3)被调用方收到一个消息,即被调用方接收到消息中心发送的调用消息。首先判断调用消息中被调用方是否是自己,基于调用消息中包括的被调用方标志进行判断。若被调用方是自己,则判断消息类型是否是调用;若否,则忽略该调用消息。若调用消息的消息类型为调用,则依据调用消息中的方法路由标志,找出需调用的方法,将输入参数进行反序列化,然后调用方法,得到输出参数,最后封装一个返回消息,将返回消息发送给消息中心;若消息类型不为调用,则忽略该调用消息。其中,返回消息包括调用方标志、被调用方标志、方法路由标志、消息类型及输出参数。
(4.4)消息中心收到一条消息,即,消息中心接收到被调用方发出的返回消息。判断返回消息的消息类型是否为返回。若判断消息类型为返回,则将返回消息发送给调用方;若消息类型不为返回,则忽略该返回消息。
(4.5)调用方接收到消息中心发送的返回消息,解析返回消息,以获取返回消息中包括的调用方标志、输出参数及消息类型等内容。判断调用方是否为自己且消息类型是否为返回,其中,可以基于调用方标志是否对应自己判断调用方是否为自己。在调用方是自己且消息类型为返回的情况下,解析返回消息中包括的输出参数,完成调用,继续后续操作;若调用方不是自己和/或消息类型不为返回则忽略此返回消息。
本申请中提供的跨语言调用的方法在使用不同编程语言开发程序后,引入消息队列和消息中心,通过消息的发送、接收及解析来完成跨语言调用,屏蔽不同语言的差别,无需了解具体语言细节,充分发挥不同编程语言的优势。使用合适的编程语言开发不用的应用,在集成一个整体时,通过增加消息队列和消息中心,经过简单的消息发送和处理,就能达到不同应用相互调用的作用,方便地进行集成和调用,降低不用语言开发的应用的集成难度,发挥不同语言在开发应用时的优势。另外,无需引入功能无关的概念和逻辑,降低了复杂度,且可以做到松耦合。
本发明实施例的另一方面提供一种用于跨语言调用的装置。图5是本发明另一实施例提供的用于跨语言调用的装置的结构框图。如图5所示,该装置包括调用意向传递模块1和调用结果传递模块2。其中,调用意向传递模块1用于在调用方和被调用方之间传递调用意向;调用结果传递模块2用于接收被调用方根据调用意向执行完调用后的调用结果并向调用方传递调用结果。
可选地,在本发明实施例中,调用意向传递模块在调用方和被调用方之间传递调用意向包括:接收调用方发出的调用消息,其中,调用消息包括调用消息类型、调用方标志、被调用方标志、方法路由标志及输入参数;以及判断调用消息类型是否为调用,并在调用消息类型为调用的情况下,将调用消息发送至被调用方标志对应的被调用方,以使得被调用方执行方法路由标志对应的方法。
可选地,在本发明实施例中,调用结果传递模块接收被调用方根据调用意向执行完调用后的调用结果并向调用方传递调用结果包括:接收被调用方发出的返回消息,其中,返回消息包括返回消息类型、调用方标志、被调用方标志、方法路由标志及输出参数;以及判断返回消息类型是否为返回,并在返回消息类型为返回的情况下,将返回消息发送至所述调用方。
本发明实施例提供的用于跨语言调用的装置的具体工作原理及益处与本发明实施例提供的用于跨语言调用的方法的具体工作原理及益处相似,这里将不再赘述。
本发明实施例的另一方面提供一种调用方装置。图6是本发明另一实施例提供的调用方装置的结构框图。如图6所示,该调用方装置包括调用方通信模块3和解析模块4。其中,调用方通信模块3用于发送调用意向以及接收被调用方根据所述调用意向执行完调用后的调用结果;解析模块4用于解析所述调用结果,以完成调用过程。
可选地,在本发明实施例中,调用方通信模块发送调用意向包括:发出调用消息,其中,调用消息包括调用消息类型、调用方标志、被调用方标志、方法路由标志及输入参数。
可选地,在本发明实施例中,调用方通信模块接收被调用方根据调用意向执行完调用后的调用结果包括:接收返回消息,其中,返回消息包括返回消息类型、调用方标志、被调用方标志、方法路由标志及输出参数。
可选地,在本发明实施例中,解析模块解析调用结果以完成调用过程包括:判断接收的返回消息包括的返回消息类型是否为返回且返回消息包括的调用方标志是否对应自己;以及在返回消息类型为返回且调用方标志对应自己的情况下,解析返回消息包括的输出参数,以完成调用。
本发明实施例提供的调用方装置的具体工作原理及益处与本发明实施例提供的由调用方执行的用于跨语言调用的方法具体工作原理及益处相似,这里将不再赘述。
本发明实施例的另一方面提供一种被调用方装置。图7是本发明另一实施例提供的被调用方装置的结构框图。如图7所示,该装置包括被调用方通信模块5和调用模块6。其中,被调用方通信模块5用于接收调用意向;调用模块6用于根据调用意向执行调用;被调用方通信模块5还用于发送调用结果。
可选地,在本发明实施例中,调用意向接收模块接收调用意向包括:接收调用消息,其中,调用消息包括调用消息类型、调用方标志、被调用方标志、方法路由标志及输入参数。
可选地,在本发明实施例中,调用模块根据调用意向执行调用包括:判断接收的调用消息包括的被调用方标志是否对应自己且调用消息包括的调用消息类型是否为调用;在被调用方标志对应自己且调用消息类型为调用的情况下,找到调用消息包括的方法路由标志对应的方法;基于调用消息包括的输入参数调用方法,以得到调用方法后的输出参数;以及将被调用方标志、方法路由标志、输出参数、返回消息类型及调用消息包括的调用方标志封装成返回消息。
可选地,在本发明实施例中,调用结果发送模块发送调用结果包括:发送返回消息,其中,返回消息包括:返回消息类型、调用方标志、被调用方标志、方法路由标志及输出参数。
本发明实施例提供的被调用方装置的具体工作原理及益处与本发明实施例提供的由被调用方执行的用于跨语言调用的方法的具体工作原理及益处相似,这里将不再赘述。
所述用于跨语言调用的装置、调用方装置及被调用方装置均包括处理器和存储器,上述调用意向传递模块、调用结果传递模块、调用方通信模块、解析模块、被调用方通信模块和调用模块等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现发挥不同编程语言的优势、降低复杂度及做到松耦合。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现上述实施例中所述的方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述实施例中所述的方法。
本发明实施例提供了一种设备,设备包括至少一个处理器、以及与处理器连接的至少一个存储器、总线,例如,如图8所示;其中,处理器、存储器通过总线完成相互间的通信;处理器用于调用存储器中的程序指令,以执行上述实施例中所述的方法。本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:发送调用意向;接收被调用方根据所述调用意向执行完调用后的调用结果;以及解析所述调用结果,以完成调用过程;所述发送调用意向包括:发出调用消息,其中,所述调用消息包括调用消息类型、调用方标志、被调用方标志、方法路由标志及输入参数;和/或所述接收被调用方根据所述调用意向执行完调用后的调用结果包括:接收返回消息,其中,所述返回消息包括返回消息类型、调用方标志、被调用方标志、方法路由标志及输出参数;所述解析所述调用结果以完成调用过程包括:判断接收的返回消息包括的返回消息类型是否为返回且所述返回消息包括的调用方标志是否对应自己;以及在所述返回消息类型为返回且所述调用方标志对应自己的情况下,解析所述返回消息包括的输出参数,以完成调用;接收调用意向;根据所述调用意向执行调用;以及发送调用结果;所述接收调用意向包括:接收调用消息,其中,所述调用消息包括调用消息类型、调用方标志、被调用方标志、方法路由标志及输入参数;和/或所述发送调用结果包括:发送返回消息,其中,所述返回消息包括:返回消息类型、调用方标志、被调用方标志、方法路由标志及输出参数;所述根据所述调用意向执行调用包括:判断接收的调用消息包括的被调用方标志是否对应自己且所述调用消息包括的调用消息类型是否为调用;在所述被调用方标志对应自己且所述调用消息类型为调用的情况下,找到所述调用消息包括的方法路由标志对应的方法;基于所述调用消息包括的输入参数调用所述方法,以得到调用所述方法后的输出参数;以及将所述被调用方标志、所述方法路由标志、所述输出参数、返回消息类型及所述调用消息包括的调用方标志封装成返回消息。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
在一个典型的配置中,设备包括一个或多个处理器(CPU)、存储器和总线。设备还可以包括输入/输出接口、网络接口等。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种由调用方执行的用于跨语言调用的方法,其特征在于,该方法包括:
发送调用意向;
接收被调用方根据所述调用意向执行完调用后的调用结果;以及
解析所述调用结果,以完成调用过程。
2.根据权利要求1所述的方法,其特征在于,
所述发送调用意向包括:发出调用消息,其中,所述调用消息包括调用消息类型、调用方标志、被调用方标志、方法路由标志及输入参数;和/或
所述接收被调用方根据所述调用意向执行完调用后的调用结果包括:接收返回消息,其中,所述返回消息包括返回消息类型、调用方标志、被调用方标志、方法路由标志及输出参数。
3.根据权利要求1所述的方法,其特征在于,所述解析所述调用结果以完成调用过程包括:
判断接收的返回消息包括的返回消息类型是否为返回且所述返回消息包括的调用方标志是否对应自己;以及
在所述返回消息类型为返回且所述调用方标志对应自己的情况下,解析所述返回消息包括的输出参数,以完成调用。
4.一种由被调用方执行的用于跨语言调用的方法,其特征在于,该方法包括:
接收调用意向;
根据所述调用意向执行调用;以及
发送调用结果。
5.根据权利要求4所述的方法,其特征在于,
所述接收调用意向包括:接收调用消息,其中,所述调用消息包括调用消息类型、调用方标志、被调用方标志、方法路由标志及输入参数;和/或
所述发送调用结果包括:发送返回消息,其中,所述返回消息包括:返回消息类型、调用方标志、被调用方标志、方法路由标志及输出参数。
6.根据权利要求4所述的方法,其特征在于,所述根据所述调用意向执行调用包括:
判断接收的调用消息包括的被调用方标志是否对应自己且所述调用消息包括的调用消息类型是否为调用;
在所述被调用方标志对应自己且所述调用消息类型为调用的情况下,找到所述调用消息包括的方法路由标志对应的方法;
基于所述调用消息包括的输入参数调用所述方法,以得到调用所述方法后的输出参数;以及
将所述被调用方标志、所述方法路由标志、所述输出参数、返回消息类型及所述调用消息包括的调用方标志封装成返回消息。
7.一种调用方装置,其特征在于,该调用方装置包括:
调用方通信模块,用于:
发送调用意向;以及
接收被调用方根据所述调用意向执行完调用后的调用结果;以及
解析模块,用于解析所述调用结果,以完成调用过程。
8.一种被调用方装置,其特征在于,该被调用方装置包括:
被调用方通信模块,用于接收调用意向;以及
调用模块,用于根据所述调用意向执行调用;
所述被调用方通信模块还用于发送调用结果。
9.一种机器可读存储介质,该机器可读存储介质上存储有指令,其特征在于,该指令用于使得机器执行权利要求1-6中任一项所述的方法。
10.一种电子设备,设备包括至少一个处理器、以及与处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行如权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910933477.8A CN112579212A (zh) | 2019-09-29 | 2019-09-29 | 跨语言调用的方法、调用方装置及被调用方装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910933477.8A CN112579212A (zh) | 2019-09-29 | 2019-09-29 | 跨语言调用的方法、调用方装置及被调用方装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112579212A true CN112579212A (zh) | 2021-03-30 |
Family
ID=75111157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910933477.8A Pending CN112579212A (zh) | 2019-09-29 | 2019-09-29 | 跨语言调用的方法、调用方装置及被调用方装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112579212A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113032169A (zh) * | 2021-05-25 | 2021-06-25 | 北京小米移动软件有限公司 | 跨语言软件系统的资源调用方法、设备及存储介质 |
CN115292074A (zh) * | 2022-10-09 | 2022-11-04 | 中科星图测控技术(合肥)有限公司 | 一种基于gRPC协议的轨道分析算法服务的调用方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103701867A (zh) * | 2013-12-09 | 2014-04-02 | 乐视网信息技术(北京)股份有限公司 | 一种处理调用请求的方法、系统及中心服务器 |
CN103729292A (zh) * | 2013-12-30 | 2014-04-16 | 瑞达信息安全产业股份有限公司 | 一种跨主机、跨平台的远程命令调用方法和系统 |
CN107632894A (zh) * | 2017-08-09 | 2018-01-26 | 中国电力科学研究院 | 一种用于电力市场交易服务调用的实现方法及装置 |
WO2019104973A1 (zh) * | 2017-11-30 | 2019-06-06 | 平安科技(深圳)有限公司 | 跨语言调用方法、服务器及存储介质 |
-
2019
- 2019-09-29 CN CN201910933477.8A patent/CN112579212A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103701867A (zh) * | 2013-12-09 | 2014-04-02 | 乐视网信息技术(北京)股份有限公司 | 一种处理调用请求的方法、系统及中心服务器 |
CN103729292A (zh) * | 2013-12-30 | 2014-04-16 | 瑞达信息安全产业股份有限公司 | 一种跨主机、跨平台的远程命令调用方法和系统 |
CN107632894A (zh) * | 2017-08-09 | 2018-01-26 | 中国电力科学研究院 | 一种用于电力市场交易服务调用的实现方法及装置 |
WO2019104973A1 (zh) * | 2017-11-30 | 2019-06-06 | 平安科技(深圳)有限公司 | 跨语言调用方法、服务器及存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113032169A (zh) * | 2021-05-25 | 2021-06-25 | 北京小米移动软件有限公司 | 跨语言软件系统的资源调用方法、设备及存储介质 |
CN113032169B (zh) * | 2021-05-25 | 2021-08-24 | 北京小米移动软件有限公司 | 跨语言软件系统的资源调用方法、设备及存储介质 |
CN115292074A (zh) * | 2022-10-09 | 2022-11-04 | 中科星图测控技术(合肥)有限公司 | 一种基于gRPC协议的轨道分析算法服务的调用方法和装置 |
CN115292074B (zh) * | 2022-10-09 | 2023-01-24 | 中科星图测控技术(合肥)有限公司 | 一种基于gRPC协议的轨道分析算法服务的调用方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109002362B (zh) | 一种服务方法、装置、系统以及电子设备 | |
CN111163129B (zh) | 一种基于跨链网络的资源处理方法及装置 | |
CN108667925B (zh) | 一种web应用无缝接入分布式系统的方法和系统 | |
CN108255545B (zh) | 组件间的功能调用方法、装置及组件化架构系统 | |
CN109815025B (zh) | 一种业务模型调用方法、装置及存储介质 | |
CN112596931B (zh) | 一种跨进程通信方法、装置、电子设备及存储介质 | |
CN112181378B (zh) | 业务流程的实现方法及装置 | |
EP2754048B1 (en) | System and method for providing a dynamic invocation and service interface for use in a middleware or other environment | |
CN112214334A (zh) | 微服务调用方法、装置、电子设备及计算机可读存储介质 | |
CN112579212A (zh) | 跨语言调用的方法、调用方装置及被调用方装置 | |
CN109343970B (zh) | 基于应用程序的操作方法、装置、电子设备及计算机介质 | |
CN112612460A (zh) | 接口的封装和调用方法、电子设备、及存储介质 | |
CN114675982A (zh) | 一种业务集成系统的数据获取通用方法及系统 | |
WO2015007183A1 (en) | Methods for adapting a dual-sim terminal, dual-sim terminal, and server | |
CN112738181B (zh) | 集群外部ip接入的方法、装置及服务器 | |
CN113918245A (zh) | 一种数据调用方法、装置、设备及计算机可读存储介质 | |
CN109582481B (zh) | 调用结果的传输方法、装置、设备及存储介质 | |
CN109669793B (zh) | 中间件进程内对象调用方法 | |
CN112165529A (zh) | 一种低成本跨网络数据交换的方法、装置、设备和介质 | |
CN116074622B (zh) | 多协议控制usb相机的实现方法、装置、设备及介质 | |
CN113805958B (zh) | 一种基于osb api规范的第三方服务接入方法和系统 | |
CN115237722A (zh) | 一种异步消息的监听方法、装置、存储介质及电子设备 | |
CN110659033B (zh) | 协议注册分发方法、存储介质、电子设备及系统 | |
CN118200348A (zh) | 实现ippbx融合llm能力的方法、设备、产品及ippbx | |
CN115827278A (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 |