CN107105004B - 跨平台的服务调用方法及装置 - Google Patents

跨平台的服务调用方法及装置 Download PDF

Info

Publication number
CN107105004B
CN107105004B CN201710119756.1A CN201710119756A CN107105004B CN 107105004 B CN107105004 B CN 107105004B CN 201710119756 A CN201710119756 A CN 201710119756A CN 107105004 B CN107105004 B CN 107105004B
Authority
CN
China
Prior art keywords
service
server
target
remote
target service
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
CN201710119756.1A
Other languages
English (en)
Other versions
CN107105004A (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.)
Engu Technology Beijing Co ltd
Original Assignee
Engu Technology Beijing 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 Engu Technology Beijing Co ltd filed Critical Engu Technology Beijing Co ltd
Priority to CN201710119756.1A priority Critical patent/CN107105004B/zh
Publication of CN107105004A publication Critical patent/CN107105004A/zh
Application granted granted Critical
Publication of CN107105004B publication Critical patent/CN107105004B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote

Abstract

本发明适用于云计算技术领域,提供了跨平台的服务调用方法及装置,包括:检测所述目标服务是否为本地服务,若所述目标服务不是本地服务,则从远程服务列表中搜索所述目标服务;若所述目标服务在所述远程服务列表中,则根据所述远程服务列表中的所述目标服务的服务信息,从远程服务器调用所述目标服务;若所述目标服务不在所述远程服务列表中,则根据注册服务器提供的服务信息,从远程服务器调用所述目标服务。在本发明中,通过自动从注册服务器或远程服务缓存列表中查找目标服务的方式,使得用户可以在目标服务的部署位置发生改变时,自动找到并调用目标服务,有利于整个系统更加稳定地运行。

Description

跨平台的服务调用方法及装置
技术领域
本发明属于云计算技术领域,尤其涉及跨平台的服务调用方法及装置。
背景技术
云计算已成为企业处理数据时常用的处理方式,当用户需要一种服务时,这个服务不一定直接由本地服务器提供,还可以通过调用其他服务器上的相应程序远程为用户提供服务。
然而在现有的云计算平台中,开发人员需要区分目标服务的部署位置,当目标服务的部署位置不在本地服务器时,一旦部署位置发生变化,开发人员必须修改对应的代码及配置才能找到和调用目标服务。这给开发人员增加了额外的工作量,同时也不利于整个系统的稳定运行。
发明内容
有鉴于此,本发明实施例提供了跨平台的服务调用方法及装置,以解决现有的云计算平台在目标服务的部署位置发生变化后,必须修改对应的代码及配置才能找到目标服务的问题。
第一方面,提供了一种跨平台的服务调用方法,包括:接收用户调用目标服务的指令;
检测所述目标服务是否为本地服务;
若所述目标服务是本地服务,则从本地服务器直接调用该目标服务;
若所述目标服务不是本地服务,则从远程服务列表中搜索所述目标服务;
若所述目标服务在所述远程服务列表中,则根据所述远程服务列表中的所述目标服务的服务信息,从远程服务器调用所述目标服务,获取调用结果;
若所述目标服务不在所述远程服务列表中,则根据注册服务器提供的服务信息,从远程服务器调用所述目标服务,获取调用结果。
第二方面,提供了一种跨平台的服务调用装置,包括:接收模块,用于接收用户调用目标服务的指令;
检测模块,用于检测所述目标服务是否为本地服务;
本地调用模块,若所述目标服务是本地服务,则从本地服务器直接调用该目标服务;
搜索模块,用于若所述目标服务不是本地服务,则从远程服务列表中搜索所述目标服务;
第一远程调用模块,用于若所述目标服务在所述远程服务列表中,则根据所述远程服务列表中的所述目标服务的服务信息,从远程服务器调用所述目标服务,获取调用结果;
第二远程调用模块,用于若所述目标服务不在所述远程服务列表中,则根据注册服务器提供的服务信息,从远程服务器调用所述目标服务,获取调用结果。
在本发明实施例中,通过自动从注册服务器或远程服务缓存列表中查找目标服务的方式,使得用户可以在目标服务的部署位置发生改变时,自动找到并调用目标服务,降低了开发人员的工作量,且有利于整个系统更加稳定地运行。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的跨平台的服务调用方法本地服务器侧的实现流程图;
图2是本发明实施例提供的跨平台的服务调用方法本地服务器侧S105的具体实现流程图;
图3是本发明实施例提供的跨平台的服务调用方法本地服务器侧S205的具体实现流程图;
图4是本发明实施例提供的跨平台的服务调用方法本地服务器侧S106的具体实现流程图;
图5是本发明实施例提供的跨平台的服务调用方法的系统流程图;图6是本发明实施例提供的跨平台的服务调用方法本地服务器侧的结构框图;
图7是本发明实施例提供的跨平台的服务调用方法系统的结构框图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
本发明实施例接收用户调用目标服务的指令;检测所述目标服务是否为本地服务;若所述目标服务是本地服务,则从本地服务器直接调用该目标服务;若所述目标服务不是本地服务,则从远程服务列表中搜索所述目标服务;若所述目标服务在所述远程服务列表中,则根据所述远程服务列表中的所述目标服务的服务信息,从远程服务器调用所述目标服务,获取调用结果;若所述目标服务不在所述远程服务列表中,则根据注册服务器提供的服务信息,从远程服务器调用所述目标服务,获取调用结果。为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
图1示出了本发明实施例提供的跨平台的服务调用方法本地服务器侧的实现流程,详述如下:
在S101中,接收用户调用目标服务的指令。
目标服务指用户根据自己的需要所指定的业务服务,这里的业务服务可以实现某一些功能,帮助用户达到他们使用本地服务器的目的。目标服务可以由用户自己编码实现的业务逻辑组成,也可以由已存在的业务逻辑组成。
用户通过终端指定一个目标服务,并向本地服务器发送调用目标服务的指令,之后本地服务器接收用户调用目标服务的指令。
在S102中,检测所述目标服务是否为本地服务。
由于在云计算中,每个服务器中存放的服务程序是相对比较少的,大量的服务可能存放在不同的远程服务器中,而不是在用户直接可以使用到的本地服务器中,因此当本地服务器接收到调用目标服务的指令之后,首先会在本地服务器中检测是否有用户需要的目标服务。
在S103中,若所述目标服务是本地服务,则从本地服务器直接调用该目标服务。
在S104中,若所述目标服务不是本地服务,则从远程服务列表中搜索所述目标服务。
远程服务列表存储在本地服务器当中,存放着部分远程服务的服务信息。这些服务信息包括某个远程服务所在的服务器的机器地址、服务端口等信息。通过这些服务信息,本地服务器可以找到目标服务所在的远程服务器。需要注意的是远程服务列表中只包含着部分服务的服务信息,并不是所有的目标服务都可以在远程服务列表中被搜索到。
在S105中,若所述目标服务在所述远程服务列表中,则根据所述远程服务列表中的所述目标服务的服务信息,从远程服务器调用所述目标服务,获取调用结果。
图2示出了本发明实施例提供的跨平台的服务调用方法本地服务器侧S105的具体实现流程.
在S201中,生成服务请求报文。
本地服务器将需要目标服务处理的业务数据进行序列化处理,序列化处理的目的是将一个数据结构如二叉树数据结构变成一个char数组或者一个string字符串,方便网络传输。
序列化处理将一个对象的状态特性分解成字节流,然后在网络传输结束后,经过反序列化处理重构出原数据特性。
在本发明实施例中,业务数据的序列化处理是将DOM(document object model文档对象模型)对象转换成可传输的XML(extensible markup language可扩展标记语言)字符串,实现序列化处理的具体代码如下:
Figure BDA0001236667930000051
Figure BDA0001236667930000061
当业务数据序列化之后,需要把字符串打包进一个服务请求报文中。
在S202中,根据所述目标服务的服务信息,建立与所述目标服务所在的远程服务器之间的连接。
由于S105的先决条件是目标服务就在远程服务列表中,因此可以直接从存储在本地服务器的远程服务列表中查找到目标服务的服务信息。服务信息包括目标服务所在的服务器的机器地址、服务端口等信息。通过这些服务信息,本地服务器可以找到目标服务所在的远程服务器,并建立SOCKET长连接。
SOCKET是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口,把复杂的TCP/IP协议族隐藏在SOCKET接口后面。长连接指两个服务器先建立通讯连接,连接建立后不断开,然后再进行报文发送和接收。
在本发明实施例中,JavaScript上实现序列化处理的具体代码如下:
Figure BDA0001236667930000062
Figure BDA0001236667930000071
Figure BDA0001236667930000081
Figure BDA0001236667930000091
Figure BDA0001236667930000101
在S203中,将所述服务请求报文发送至所述目标服务所在的远程服务器。
在S204中,接收所述目标服务所在的远程服务器发送的应答报文。
远程服务器在接收到服务请求报文并处理完数据后,会将处理结果打包进一个应答报文,具体步骤将在远程服务器侧的实施例详细介绍。本地服务器接收这个由远程服务器发送来的应答报文。
在S205中,根据所述应答报文,解析出服务调用结果。
图3示出了本发明实施例提供的跨平台的服务调用方法本地服务器侧S205的具体实现流程,详述如下:
在S301中,从所述应答报文中解析出业务数据。
首先将应答报文解包得到字符串形式的调用结果。
在S302中,将所述业务数据进行反序列化处理,得到服务调用结果。
通过反序列化处理,得到最终的调用结果。
在发明实施例中,将XML字符串的调用结果反序列化处理成DOM对象得到最终的调用结果。
在S106中,若所述目标服务不在所述远程服务列表中,则根据注册服务器提供的服务信息,从远程服务器调用所述目标服务,获取调用结果,并且将从所述注册服务器获取的服务信息缓存到所述远程服务列表中。
图4示出了本发明实施例提供的跨平台的服务调用方法本地服务器侧S106的具体实现流程,详述如下:
在S401中,建立与所述注册服务器的连接。
由于在S106的情况下,本地服务器中的远程服务列表不含有用户希望使用的目标服务,因此本地服务器在没有搜索到相应服务后,会建立与注册服务器的连接以找到相应的目标服务的服务信息。
注册服务器也是一个服务器,用于集中治理分散在不同系统(服务器)上的应用服务。当一个应用服务的信息改变时(如一个应用服务的部署位置发生改变),应用服务所在的服务器会自动通知注册服务器,注册服务器会根据相应的改变,更新数据以保证注册服务器内的数据的实效性,保证各个服务器可以从注册服务器内查到最新的应用服务的服务信息。
在本实施例中,本地服务器与注册服务器建立SOCKET长连接,具体的连接建立方法及说明已在前文介绍,不在此赘述。
在S402中,向所述注册服务器查询所述目标服务的服务信息。
由于注册服务器一定会含有本系统内所有服务器上的所有服务的服务信息,因此注册服务器会向本地服务器返回目标服务的服务信息。服务信息包括目标服务所在的服务器的机器地址、服务端口等信息。通过这些服务信息,本地服务器可以找到目标服务所在的远程服务器。
本地服务器会组装一个查询服务报文,通过已建立好的连接发送给注册服务器以查询目标服务的服务信息。
在S403中,接收所述注册服务器返回的所述服务信息,并根据所述服务信息,建立与所述目标服务所在的远程服务器之间的连接。
将所述服务请求报文发送至所述目标服务所在的远程服务器。
在S404中,生成服务请求报文。
本地服务器将需要目标服务处理的业务数据进行序列化处理,序列化处理的目的是将一个数据结构如二叉树数据结构变成一个char数组或者一个string字符串,方便网络传输。
序列化处理将一个对象的状态特性分解成字节流,然后在网络传输结束后,经过反序列化处理重构出原数据特性。
在本发明实施例中,业务数据的序列化处理是将DOM(document object model文档对象模型)对象转换成可传输的XML(extensible markup language可扩展标记语言)字符串。
在S405中,将所述服务请求报文发送至所述目标服务所在的远程服务器。
在S406中,接收所述目标服务所在的远程服务器发送的应答报文。
远程服务器在接收到服务请求报文并处理完数据后,会将处理结果打包进一个应答报文,具体步骤将在远程服务器侧的实施例详细介绍。本地服务器接收这个由远程服务器发送来的应答报文。
在S407中,根据所述应答报文,解析出服务调用结果。
从所述应答报文中解析出业务数据。
将应答报文解包得到字符串形式的调用结果。
将所述业务数据进行反序列化处理,得到服务调用结果。
通过反序列化处理,得到最终的调用结果。
在发明实施例中,将XML字符串的调用结果反序列化处理成DOM对象得到最终的调用结果。
图5示出了本发明实施例提供的跨平台的服务调用方法的系统流程,详述如下:
需要注意的是,图5介绍的是当目标服务不在本地服务器时,且在本地服务器上的远程服务列表中也查找不到目标服务后的系统流程。
在S501中,本地服务器建立与注册服务器的连接。
由于在S106的情况下,本地服务器中的远程服务列表不含有用户希望使用的目标服务,因此本地服务器在没有搜索到相应服务后,会建立与注册服务器的连接以找到相应的目标服务的服务信息。
注册服务器也是一个服务器,用于集中治理分散在不同系统(服务器)上的应用服务。当一个应用服务的信息改变时(如一个应用服务的部署位置发生改变),应用服务所在的服务器会自动通知注册服务器,注册服务器会根据相应的改变,更新数据以保证注册服务器内的数据的实效性,保证各个服务器可以从注册服务器内查到最新的应用服务的服务信息。
在本实施例中,本地服务器与注册服务器建立SOCKET长连接,具体的连接建立方法及说明已在前文介绍,不在此赘述。
在S502中,本地服务器向所述注册服务器查询目标服务的服务信息。
由于注册服务器一定会含有本系统内所有服务器上的所有服务的服务信息,因此注册服务器会向本地服务器返回目标服务的服务信息。服务信息包括目标服务所在的服务器的机器地址、服务端口等信息。通过这些服务信息,本地服务器可以找到目标服务所在的远程服务器。
本地服务器会组装一个查询服务报文,通过已建立好的连接发送给注册服务器以查询目标服务的服务信息。
在S503中,注册服务器返回所述目标服务的服务信息。
在S504中,本地服务器接收所述服务信息,并根据所述服务信息,建立与所述目标服务所在的远程服务器之间的连接。
在S505中,本地服务器向所述远程服务器发送服务请求报文。
在S506中,远程服务器接收所述服务请求报文。
在S507中,远程服务器解析所述服务请求报文,获取业务数据,并通过所述目标服务处理所述业务数据,得到服务调用结果。
将服务请求报文解包得到字符串形式的业务数据。
将所述业务数据进行反序列化处理,得到远程服务器可直接处理的业务数据。
在发明实施例中,将XML字符串的调用结果反序列化处理成DOM对象得到最终的业务数据。
通过所述目标服务处理所述业务数据,得到服务调用结果。
在S508中,远程服务器将所述服务调用结果打包并返回到所述服务请求报文的源服务器。
在S509中,接收所述目标服务所在的远程服务器发送的应答报文;
远程服务器在接收到服务请求报文并处理完数据后,会将处理结果打包进一个应答报文,具体步骤将在远程服务器侧的实施例详细介绍。本地服务器接收这个由远程服务器发送来的应答报文。
在S510中,根据所述应答报文,解析出服务调用结果。
从所述应答报文中解析出业务数据。
将应答报文解包得到字符串形式的调用结果。
将所述业务数据进行反序列化处理,得到服务调用结果。
通过反序列化处理,得到最终的调用结果。
在发明实施例中,将XML字符串的调用结果反序列化处理成DOM对象得到最终的调用结果。
将服务请求报文解包得到字符串形式的调用结果。
将所述业务数据进行反序列化处理,得到服务调用结果。
在发明实施例中,将XML字符串的调用结果反序列化处理成DOM对象得到最终的调用结果。
对应于上文实施例所述的跨平台的服务调用方法本地服务器侧的方法流程,图6示出了本发明实施例提供的跨平台的服务调用方法本地服务器侧的结构框图,该装置包括:
接收模块601,用于接收用户调用目标服务的指令;
检测模块602,用于检测所述目标服务是否为本地服务;
本地调用模块603,若所述目标服务是本地服务,则从本地服务器直接调用该目标服务;
搜索模块604,用于若所述目标服务不是本地服务,则从远程服务列表中搜索所述目标服务;
第一远程调用模块605,用于若所述目标服务在所述远程服务列表中,则根据所述远程服务列表中的所述目标服务的服务信息,从远程服务器调用所述目标服务,获取调用结果;
第二远程调用模块606,用于若所述目标服务不在所述远程服务列表中,则根据注册服务器提供的服务信息,从远程服务器调用所述目标服务,获取调用结果,并且将从所述注册服务器获取的服务信息缓存到所述远程服务列表中。
进一步地,第一远程调用模块包括:
第一报文生成子模块,用于生成服务请求报文;
第一连接子模块,用于根据所述目标服务的服务信息,建立与所述目标服务所在的远程服务器之间的连接;
第一发送子模块,用于将所述服务请求报文发送至所述目标服务所在的远程服务器;
第一接收子模块,用于接收所述目标服务所在的远程服务器发送的应答报文;
第一解析子模块,用于根据所述应答报文,解析出服务调用结果。
进一步地,解析子模块包括:
第一业务数据生成子模块,用于从所述应答报文中解析出业务数据;
第一调用结果生成子模块,用于将所述业务数据进行反序列化处理,得到服务调用结果。
进一步地,第二远程调用模块包括:
第二连接子模块,用于建立与所述注册服务器的连接;
查询子模块,用于向所述注册服务器查询所述目标服务的服务信息;
第三连接子模块,用于接收所述注册服务器返回的所述服务信息,并根据所述服务信息,建立与所述目标服务所在的远程服务器之间的连接;
第二报文生成子模块,用于生成服务请求报文;
第二发送子模块,用于将所述服务请求报文发送至所述目标服务所在的远程服务器;
第二接收子模块,用于接收所述目标服务所在的远程服务器发送的应答报文;
第二解析子模块,用于根据所述应答报文,解析出服务调用结果。
对应于上文实施例所述的跨平台的服务调用方法远程服务器侧的方法流程,图6示出了本发明实施例提供的跨平台的服务调用方法系统的结构框图,该系统包括:
本地服务器701用于建立与注册服务器的连接;
所述本地服务器还用于向所述注册服务器查询目标服务的服务信息;
所述注册服务器702用于返回所述目标服务的服务信息;
所述本地服务器还用于接收所述服务信息,并根据所述服务信息,建立与所述目标服务所在的远程服务器之间的连接;
所述本地服务器还用于向所述远程服务器发送服务请求报文;
所述远程服务器703用于接收所述服务请求报文;
所述远程服务器还用于解析所述服务请求报文,获取业务数据,并通过所述目标服务处理所述业务数据,得到服务调用结果;
所述远程服务器还用于将所述服务调用结果打包并返回到所述服务请求报文的源服务器。
所述本地服务器接收所述目标服务所在的远程服务器发送的应答报文;
所述本地服务器根据所述应答报文,解析出服务调用结果。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

Claims (8)

1.一种跨平台的服务调用方法,其特征在于,包括:
接收用户调用目标服务的指令;
检测所述目标服务是否为本地服务;
若所述目标服务是本地服务,则从本地服务器直接调用该目标服务;
若所述目标服务不是本地服务,则从远程服务列表中搜索所述目标服务,所述远程服务列表存储在本地服务器当中;
若所述目标服务在所述远程服务列表中,则生成服务请求报文;
根据所述目标服务的服务信息,建立与所述目标服务所在的远程服务器之间的连接;
将所述服务请求报文发送至所述目标服务所在的远程服务器;
接收所述目标服务所在的远程服务器发送的应答报文;
根据所述应答报文,解析出服务调用结果;
若所述目标服务不在所述远程服务列表中,则根据注册服务器提供的服务信息,从远程服务器调用所述目标服务,获取调用结果,并且将从所述注册服务器获取的服务信息缓存到所述远程服务列表中。
2.如权利要求1所述的方法,其特征在于,所述根据所述应答报文,解析出服务调用结果包括:
从所述应答报文中解析出业务数据;
将所述业务数据进行反序列化处理,得到服务调用结果。
3.如权利要求1所述的方法,其特征在于,所述根据注册服务器提供的服务信息,从远程服务器调用所述目标服务,获取调用结果包括:
建立与所述注册服务器的连接;
向所述注册服务器查询所述目标服务的服务信息;
接收所述注册服务器返回的所述服务信息,并根据所述服务信息,建立与所述目标服务所在的远程服务器之间的连接;
生成服务请求报文;
将所述服务请求报文发送至所述目标服务所在的远程服务器;
接收所述目标服务所在的远程服务器发送的应答报文;
根据所述应答报文,解析出服务调用结果。
4.一种跨平台的服务调用方法,其特征在于,包括:
本地服务器建立与注册服务器的连接,获取所述注册服务器中所有目的服务器上的服务信息,向所述注册服务器查询目标服务的服务信息,所述服务信息包括目的服务器的机器地址、服务端口信息;
所述注册服务器返回所述目标服务的服务信息;
所述本地服务器接收所述服务信息,并根据所述服务信息,建立与所述目标服务所在的远程服务器之间的连接;并向所述远程服务器发送服务请求报文;
所述远程服务器接收所述服务请求报文,解析所述服务请求报文,获取业务数据,并通过所述目标服务处理所述业务数据,得到服务调用结果;
所述远程服务器将所述服务调用结果打包并返回到所述服务请求报文的源服务器;
所述本地服务器接收所述目标服务所在的远程服务器发送的应答报文,并根据所述应答报文,解析出服务调用结果。
5.一种跨平台的服务调用装置,其特征在于,包括:
接收模块,用于接收用户调用目标服务的指令;
检测模块,用于检测所述目标服务是否为本地服务;
本地调用模块,若所述目标服务是本地服务,则从本地服务器直接调用该目标服务;
搜索模块,用于若所述目标服务不是本地服务,则从远程服务列表中搜索所述目标服务,所述远程服务列表存储在本地服务器当中;
第一远程调用模块,用于若所述目标服务在所述远程服务列表中,则生成服务请求报文;
根据所述目标服务的服务信息,建立与所述目标服务所在的远程服务器之间的连接;
将所述服务请求报文发送至所述目标服务所在的远程服务器;
接收所述目标服务所在的远程服务器发送的应答报文;
根据所述应答报文,解析出服务调用结果;
第二远程调用模块,用于若所述目标服务不在所述远程服务列表中,则根据注册服务器提供的服务信息,从远程服务器调用所述目标服务,获取调用结果,并且将从所述注册服务器获取的服务信息缓存到所述远程服务列表中。
6.如权利要求5所述的装置,其特征在于,所述解析子模块包括:
第一业务数据生成子模块,用于从所述应答报文中解析出业务数据;
第一调用结果生成子模块,用于将所述业务数据进行反序列化处理,得到服务调用结果。
7.如权利要求5所述的装置,其特征在于,所述第二远程调用模块包括:
第二连接子模块,用于建立与所述注册服务器的连接;
查询子模块,用于向所述注册服务器查询所述目标服务的服务信息;
第三连接子模块,用于接收所述注册服务器返回的所述服务信息,并根据所述服务信息,建立与所述目标服务所在的远程服务器之间的连接;
第二报文生成子模块,用于生成服务请求报文;
第二发送子模块,用于将所述服务请求报文发送至所述目标服务所在的远程服务器;
第二接收子模块,用于接收所述目标服务所在的远程服务器发送的应答报文;
第二解析子模块,用于根据所述应答报文,解析出服务调用结果。
8.一种跨平台的服务调用装置,其特征在于,包括:
本地服务器用于建立与注册服务器的连接,获取所述注册服务器中所有目的服务器上的服务信息,向所述注册服务器查询目标服务的服务信息,所述服务信息包括目的服务器的机器地址、服务端口信息;
所述注册服务器用于返回所述目标服务的服务信息,接收所述服务信息,并根据所述服务信息,建立与所述目标服务所在的远程服务器之间的连接;
所述本地服务器还用于向所述远程服务器发送服务请求报文;
所述远程服务器用于接收所述服务请求报文,解析所述服务请求报文,获取业务数据,并通过所述目标服务处理所述业务数据,得到服务调用结果;
所述远程服务器还用于将所述服务调用结果打包并返回到所述服务请求报文的源服务器;
所述本地服务器接收所述目标服务所在的远程服务器发送的应答报文,并根据所述应答报文,解析出服务调用结果。
CN201710119756.1A 2017-03-02 2017-03-02 跨平台的服务调用方法及装置 Active CN107105004B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710119756.1A CN107105004B (zh) 2017-03-02 2017-03-02 跨平台的服务调用方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710119756.1A CN107105004B (zh) 2017-03-02 2017-03-02 跨平台的服务调用方法及装置

Publications (2)

Publication Number Publication Date
CN107105004A CN107105004A (zh) 2017-08-29
CN107105004B true CN107105004B (zh) 2020-06-26

Family

ID=59675344

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710119756.1A Active CN107105004B (zh) 2017-03-02 2017-03-02 跨平台的服务调用方法及装置

Country Status (1)

Country Link
CN (1) CN107105004B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108804113B (zh) * 2018-06-07 2022-03-22 东软集团股份有限公司 部署微服务应用的方法、装置和存储介质以及电子设备
CN109298958A (zh) * 2018-10-26 2019-02-01 恒生电子股份有限公司 服务的调用方法及相关系统
CN112491942B (zh) * 2019-09-12 2024-04-16 曙光信息产业(北京)有限公司 集群服务访问方法、装置和计算机设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102325186A (zh) * 2011-09-14 2012-01-18 山东中创软件工程股份有限公司 远程服务调用方法及系统
CN103905551A (zh) * 2014-04-02 2014-07-02 北京中交兴路车联网科技有限公司 一种服务调用方法及装置
CN104270470A (zh) * 2014-10-24 2015-01-07 杭州高达软件系统股份有限公司 一种远程服务调用方法、装置及系统
CN105450589A (zh) * 2014-07-31 2016-03-30 阿里巴巴集团控股有限公司 远程调用方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102325186A (zh) * 2011-09-14 2012-01-18 山东中创软件工程股份有限公司 远程服务调用方法及系统
CN103905551A (zh) * 2014-04-02 2014-07-02 北京中交兴路车联网科技有限公司 一种服务调用方法及装置
CN105450589A (zh) * 2014-07-31 2016-03-30 阿里巴巴集团控股有限公司 远程调用方法及系统
CN104270470A (zh) * 2014-10-24 2015-01-07 杭州高达软件系统股份有限公司 一种远程服务调用方法、装置及系统

Also Published As

Publication number Publication date
CN107105004A (zh) 2017-08-29

Similar Documents

Publication Publication Date Title
EP3389219B1 (en) Access request conversion method and device
US9544355B2 (en) Methods and apparatus for realizing short URL service
CN103942225B (zh) 一种混合型应用客户端的资源调用方法、客户端及系统
US20170185678A1 (en) Crawler system and method
CN107635027B (zh) 一种域名解析方法、介质、装置和计算设备
US10574724B2 (en) Automatic discovery of management nodes and generation of CLI using HA module
CN107463453B (zh) 同一终端不同应用间通信的方法、装置、设备和存储介质
CN107105004B (zh) 跨平台的服务调用方法及装置
US20200142674A1 (en) Extracting web api endpoint data from source code
WO2015021873A1 (en) Method, platform server, and system of data pushing
CN109343983B (zh) 功能模块间的信息交互方法、装置、设备及存储介质
US11768890B2 (en) Method and server apparatus for dynamically identifying pop-out links in networked applications via lookup
AU2015369925A1 (en) Computer readable storage media for dynamic service deployment and methods and systems for utilizing same
CN103973812A (zh) 基于http协议中统一资源定位符的服务接口提供方法及系统
CN102811230B (zh) 一种基于应用集成的资源调用方法和系统
CN109561167A (zh) 一种域名解析方法及装置
US9077764B2 (en) Communications handles and proxy agents
WO2022135410A1 (zh) 加载源文件的方法及装置
CN106648610B (zh) 功能接口远程调用及其响应的方法和装置
CN113342845A (zh) 数据同步方法、计算机设备及可读存储介质
EP3502925B1 (en) Computer system and method for extracting dynamic content from websites
CN113556370A (zh) 一种服务调用方法和装置
CN115296915B (zh) 网页数据访问方法及其装置、设备、介质、产品
CN116431863B (zh) 数字对象的生成方法、装置、电子设备及可读存储介质
CN103929451A (zh) 电子设备和数据获取方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Zhang Xinxing

Inventor after: Bao Zhuwei

Inventor before: Zhang Xinxing

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant