CN111212085B - 物联网平台同步调用的方法、物联网系统和网络设备 - Google Patents
物联网平台同步调用的方法、物联网系统和网络设备 Download PDFInfo
- Publication number
- CN111212085B CN111212085B CN202010047097.7A CN202010047097A CN111212085B CN 111212085 B CN111212085 B CN 111212085B CN 202010047097 A CN202010047097 A CN 202010047097A CN 111212085 B CN111212085 B CN 111212085B
- Authority
- CN
- China
- Prior art keywords
- calling
- internet
- sending
- things
- identifier
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明实施例提供了一种物联网平台同步调用的方法、物联网系统和网络设备,属于物联网技术领域。其中,方法可以包括:在接收到调用方发送的同步调用请求时,阻塞与所述同步调用请求对应的收发线程,并为所述同步调用请求生成调用标识符;建立所述调用标识符与所述收发线程的对应关系,并将携带所述调用标识符的请求消息发送至所述同步调用请求指定的物联网设备;在接收到携带所述调用标识符的响应消息时,根据所述调用标识符唤醒对应的所述收发线程,并通过所述收发线程将调用结果发送至所述调用方。采用本发明,无需改动异步通信模式,即可实现调用方对物联网平台进行同步调用。
Description
技术领域
本发明涉及物联网技术领域,特别涉及一种物联网平台同步调用的方法、物联网系统和网络设备。
背景技术
随着互联网技术的不断发展,物联网技术得到广泛应用。各个物联网设备通过网络互联,有效推动了各个行业的智能化发展。
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)协议采用Pub/Sub(Public/Subscribe,发布/订阅)的异步通信模式,能够为连接远程设备提供实时可靠的消息服务。因此,物联网设备与物联网平台通常采用MQTT协议进行异步通信。
本专利申请的发明人通过研究现有的物联网技术,发现现有技术至少存在以下问题:在面对涉及共享资源、多次调用操作存在严格时序关系等场景时,用户往往需要对物联网平台进行同步调用,进而通过物联网平台向物联网设备下发指令。在这种情况下,用户需要在接收到物联网设备回复的调用结果后才能进行其他操作。然而,现有的采用异步通信模式的物联网系统不能满足用户同步调用的场景需求。
发明内容
本申请的目的在于提供一种物联网平台同步调用的方法、物联网系统和网络设备,无需改动物联网平台与物联网设备的异步通信模式,即可实现调用方对物联网平台进行同步调用。所述技术方案如下:
第一方面,提供了一种物联网平台同步调用的方法,所述方法包括:
在接收到调用方发送的同步调用请求时,阻塞与所述同步调用请求对应的收发线程,并为所述同步调用请求生成调用标识符;
建立所述调用标识符与所述收发线程的对应关系,并将携带所述调用标识符的请求消息发送至所述同步调用请求指定的物联网设备;
在接收到携带所述调用标识符的响应消息时,根据所述调用标识符唤醒对应的所述收发线程,并通过所述收发线程将调用结果发送至所述调用方。
在实施中,物联网平台在接收到同步调用请求后,阻塞对应的收发线程,物联网平台与物联网设备之间仍进行异步通信。物联网平台无需改动原有的异步通信模式,根据调用标识符将涉及同一调用请求的收发线程、请求消息、以及响应消息关联起来。对于调用方而言,同步调用结果与同步调用请求对应,即实现了对物联网平台进行同步调用。
进一步的,建立所述调用标识符与所述收发线程的对应关系,并将携带所述调用标识符的请求消息发送至所述同步调用请求指定的物联网设备,包括:
通过业务处理服务建立所述调用标识符与所述收发线程的对应关系,并对所述同步调用请求进行业务处理;
根据所述同步调用请求和所述调用标识符生成所述请求消息,并通过所述业务处理服务将携带所述调用标识符的请求消息发送至链接管理服务;
通过所述链接管理服务建立所述调用标识符与所述业务处理服务的对应关系,并将所述请求消息发送至所述物联网设备。
在实施中,若物联网平台内的业务处理服务与链接管理服务分离,业务处理服务与链接管理服务进行异步通信过程中可以携带调用标识符。这样,可以将调用标识符与业务处理服务关联起来,为物联网平台将响应消息正确发送至业务处理服务进行业务处理提供基础。并且,请求消息在转发过程中始终携带调用标识符,为实现调用方的同步调用提供了基础。
进一步的,在接收到携带所述调用标识符的响应消息时,根据所述调用标识符唤醒对应的所述收发线程,并通过所述收发线程将调用结果发送至所述调用方,包括:
在所述连接管理服务接收到携带所述调用标识符的响应消息时,将所述响应消息发送至与所述调用标识符对应的所述业务处理服务进行业务处理;
通过所述业务处理服务唤醒与所述调用标识符对应的所述收发线程,并通过所述收发线程将调用结果发送至所述调用方。
在实施中,若物联网平台内的业务处理服务与链接管理服务分离,链接管理服务可以根据调用标识符确定对请求消息进行业务处理的业务处理服务。之后,物联网平台可以将接收到的响应消息发送至业务处理服务进行业务处理。物联网平台无需改动物联网平台上业务处理服务和链接管理服务的异步通信模式,根据调用标识符将涉及同一个同步调用请求的响应消息、业务处理服务、以及收发线程关联起来。对于调用方而言,同步调用结果与同步调用请求对应,即实现了同步调用物联网平台接口。
可选的,所述物联网平台通过RPC同步接口接收所述调用方发送的同步调用请求。
在实施中,物联网平台可以对外提供RPC同步调用接口来接收同步调用请求,可以保证远程过程调用对调用方而言是透明的。
可选的,建立所述目标调用标识符与所述收发线程的对应关系,包括:
在本地存储所述调用标识符与所述收发线程的信号量标记的映射关系。
在实施中,收发线程可以通过信号量来标识。信号量可协调共享资源的访问,并且保证物联网平台多线程处理的时序关系。
可选的,所述方法还包括:
若不存在所述物联网设备,则结束所述收发线程的阻塞状态,并向所述调用方发送代表设备不存在的错误响应码;
若所述物联网设备不在线,则结束所述收发线程的阻塞状态,并向所述调用方发送代表设备离线的错误响应码;
若在超时时间内未接收到携带所述调用标识符的响应消息,则结束所述收发线程的阻塞状态,并向所述调用方发送代表连接超时的错误响应码。
在实施中,若出现不存在同步调用请求指定的物联网设备,或者同步调用请求指定的物联网设备不在线或设备忙碌等情况,物联网设备可以主动结束对应的收发线程的阻塞状态,并向调用方返回代表相应错误的错误响应码,使得调用方不再等待调用结果。
第二方面,提供了另一种物联网平台同步调用的方法,所述方法包括:
接收物联网平台发送的请求消息,并获取所述请求消息携带的调用标识符;
向所述物联网平台发送携带所述调用标识符的响应消息,以使所述物联网平台根据所述调用标识符查找对应的收发线程,并通过所述收发线程将调用结果发送至调用方。
在实施中,当物联网设备接收到携带调用标识符的请求消息时,可以向物联网平台返回携带相同调用标识符的响应消息。这样,可以为实现调用方的同步调用提供基础。具体而言,物联网平台根据响应消息携带的调用标识符便可查找到对应的收发线程,通过该收发线程将响应消息携带的调用结果发送给调用方。
第三方面,提供了一种物联网系统,所述系统包括:
物联网平台,用于在接收到调用方发送的同步调用请求时,阻塞与所述同步调用请求对应的收发线程,并为所述同步调用请求生成调用标识符;
所述物联网平台,还用于建立所述调用标识符与所述收发线程的对应关系,并将携带所述调用标识符的请求消息发送至所述同步调用请求指定的物联网设备;
所述物联网设备,用于在接收到所述物联网平台发送的请求消息后,向所述物联网平台发送携带所述调用标识符的响应消息;
所述物联网平台,还用于在接收到携带所述调用标识符的响应消息时,根据所述调用标识符唤醒对应的所述收发线程,并通过所述收发线程将调用结果发送至所述调用方。
可选的,所述物联网平台具体用于:
通过业务处理服务建立所述调用标识符与所述收发线程的对应关系,并对所述同步调用请求进行业务处理;
根据所述同步调用请求和所述调用标识符生成所述请求消息,并通过所述业务处理服务将携带所述调用标识符的请求消息发送至链接管理服务;
通过所述链接管理服务建立所述调用标识符与所述业务处理服务的对应关系,并将所述请求消息发送至所述物联网设备。
进一步的,所述物联网平台还具体用于:
在所述连接管理服务接收到携带所述调用标识符的响应消息时,将所述响应消息发送至与所述调用标识符对应的所述业务处理服务进行业务处理;
通过所述业务处理服务唤醒与所述调用标识符对应的所述收发线程,并通过所述收发线程将调用结果发送至所述调用方。
可选的,所述物联网平台通过RPC同步接口接收所述调用方发送的同步调用请求。
可选的,所述物联网平台还具体用于:
在本地存储所述调用标识符与所述收发线程的信号量标记的映射关系。
可选的,所述物联网平台还用于:
若不存在所述物联网设备,则结束所述收发线程的阻塞状态,并向所述调用方发送代表设备不存在的错误响应码;
若所述物联网设备不在线,则结束所述收发线程的阻塞状态,并向所述调用方发送代表设备离线的错误响应码;
若在超时时间内未接收到携带所述调用标识符的响应消息,则结束所述收发线程的阻塞状态,并向所述调用方发送代表连接超时的错误响应码。
第四方面,提供了一种网络设备,所述网络设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行,以实现如第一方面所述的方法,或者实现如第二方面所述的方法。
第五方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行,以实现如第一方面所述的方法,或者实现如第二方面所述的方法。
由上可见,本发明实施例提供的技术方案带来的有益效果包括:第一,无需改动物联网平台与物联网设备的异步通信模式,即可实现调用方对物联网平台进行同步调用。第二,无需改动物联网平台上业务处理服务和链接管理服务的异步通信模式,即可实现调用方对物联网平台进行同步调用。第三,物联网平台基于RPC协议对外提供同步调用接口,保证远程过程调用对调用方透明以及高并发条件下物联网平台的处理能力。第四,物联网平台采用信号量来阻塞及标识收发线程,可协调共享资源的访问,并且保证物联网平台多线程处理的时序关系。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种物联网平台同步调用的方法流程图;
图2为本发明实施例提供的一种物联网平台的结构示意图;
图3为本发明实施例提供的一种物联网系统的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种物联网平台同步调用的方法,该方法可以主要应用于物联网系统中的物联网平台,并由物联网系统中的物联网设备辅助实现。其中,物联网平台可以通过任意服务器或服务器集群来搭建,具备接入和管理海量物联网设备、对物联网设备数据进行采集和存储、对外提供调用接口实现调用方远程控制等功能。物联网设备可以是任意物理设备,包括传感设备、家用电器等。物联网平台和物联网设备可以基于异步通信协议进行通信,本发明将以MQTT协议为例进行详细说明。此外,物联网平台和物联网设备也可以基于其他协议实现Pub/Sub异步通信,例如CCP(CAN Calibration Protocol,控制器局域网标定协议)等,本发明对此不作限制。
当物联网平台和物联网设备基于MQTT协议通信时,物联网平台可以提供一组遵循指定格式定义的主题(Topic)对外发布以及供物联网设备订阅。例如,物联网平台发布的主题可以为:/system/{product}/{device}/syn/request/{uuid},物联网设备订阅的主题可以为:/system/{product}/{device}/syn/request/+,物联网设备发布的响应消息主题可以为:/system/{product}/{device}/syn/response/{uuid}。其中,/为主题层级分隔符;system字段可以表示系统主题;{product}字段可以表示设备证书;{device}字段可以表示设备名称;syn字段可以表示同步调用;request字段可以表示消息类型为请求消息;response字段可以表示消息类型为响应消息;{uuid}字段表示调用标识符;+为单层通配符,表示设备可以接收该层级的所有请求消息。当然,物联网平台还可以提供其他自定义格式的主题,本申请对此不作限制。
需要说明的是,物联网平台所实现的处理均可以理解为由实际的一台或多台服务器具体执行。上述服务器可以包括处理器、存储器、收发器,处理器可以用于进行下述流程中实现同步调用物联网平台接口的处理,存储器可以用于存储下述处理过程中需要的数据以及产生的数据,收发器可以用于接收和发送下述处理过程中的相关数据。
下面将结合具体实施方式,对本发明实施例提供的物联网平台同步调用的方法进行详细说明。为了便于理解,请结合参考图1所示的物联网平台同步调用的方法流程图。
步骤101,在接收到调用方发送的同步调用请求时,物联网平台阻塞与同步调用请求对应的收发线程,并为同步调用请求生成调用标识符。
具体而言,调用方可以是运行在用户终端设备上的物联网平台前端(例如浏览器),也可以是用户服务器。物联网平台可以对外提供同步调用接口来接收各个调用方发送的同步调用请求。在从同步调用接口接收到同步调用请求时,物联网平台可以阻塞用于接收该同步调用请求的收发线程,并且还可以为同步调用请求生成一个应用在物联网系统的全局唯一的调用标识符。当收发线程处于阻塞状态时,对应的调用方将处于等待接口应答状态,直到接收到物联网平台返回的调用结果。需要说明的是,调用标识符可以是通过分布式ID生成服务生成的UUID(Universally Unique Identifier,通用唯一识别码),也可以是使用其他方式得到的全局唯一的序列号码,本发明对此不作限制。
值得一提的是,物联网平台可以对外提供一个或多个同步调用接口来接收同步调用请求。其中,一个同步调用接口可以对应一条或多条收发线程,一条收发线程可以用于接收调用方发送的同步调用请求以及将对应的调用结果发送至调用方。
值得一提的是,物联网平台可以仅为从同步调用接口接收到的同步调用请求生成调用标识符,也可以为所有调用请求生成调用标识符,本发明对此不作限制。其中,当物联网平台为所有调用请求均生成调用标识符时,可以不阻塞异步调用接口对应的接收线程。这样,可以在不改变原有异步通信协议的情况下,实现物联网平台的同步调用。
在一个实施例中,物联网平台可以基于RPC(Remote Procedure Call,远程过程调用)协议对外提供同步调用接口来接收各个调用方发送的同步调用请求。相应的,物联网平台通过RPC同步接口接收调用方发送的同步调用请求。保证了远程过程调用对调用方透明以及高并发条件下物联网平台的处理能力。
步骤102,物联网平台建立调用标识符与收发线程的对应关系,并将携带调用标识符的请求消息发送至同步调用请求指定的物联网设备。
在实施中,物联网平台在同一时间可能接收到多个来自不同调用方的同步调用请求和异步调用请求。为了将同步调用请求对应的调用结果通过对应的收发线程正确返回给调用方,物联网平台可以在本地存储调用标识符与收发线程的映射关系。这样,在接收到物联网设备发送的响应消息后,物联网平台根据调用标识符便可查找到对应的收发线程,并将同步调用请求的调用结果通过对应的收发线程发送至调用方。
需要说明的是,调用方与物联网平台之间通常可以采用HTTP(Hyper TextTransfer Protocol,超文本传输协议)等网络协议进行通信,而物联网平台与物联网设备之间通常可以采用MQTT协议进行异步通信。相应的,物联网平台可以将同步调用请求中携带的请求数据和调用标识符按照MQTT协议封装为指定格式的请求消息。例如,可以将调用标识符封装在MQTT请求消息的主题(Topic)中,将同步调用请求中携带的请求数据封装在MQTT请求消息的负载(Payload)中。
可选的,为了使物联网平台便于升级、扩展以及维护等,如图2所示,物联网平台通常可以将业务处理服务和链接管理服务分离。相应的,步骤102的处理可以具体包括:通过业务处理服务建立所述调用标识符与所述收发线程的对应关系,并对所述同步调用请求进行业务处理;根据所述同步调用请求和所述调用标识符生成所述请求消息,并通过所述业务处理服务将携带所述调用标识符的请求消息发送至链接管理服务;通过所述链接管理服务建立所述调用标识符与所述业务处理服务的对应关系,并将所述请求消息发送至所述物联网设备。
在一个实施例中,物联网平台上的业务处理服务和链接管理服务之间可以采用异步通信模式。物联网平台可以将接收到的多个调用请求分发至部署于不同业务服务器上的多个业务处理服务。其中,将多个调用请求分发至多个业务处理服务的处理可以通过负载均衡技术来实现。各个业务处理服务在同一时间可能接收到多个来自不同调用方的同步调用请求和异步调用请求。为了将同步调用请求对应的调用结果通过对应的收发线程正确返回给调用方,业务处理服务可以在本地存储调用标识符与收发线程的映射关系。这样,在完成对响应消息的业务处理后,业务处理服务根据响应消息携带的调用标识符便可查找到对应的收发线程,并将响应消息携带的调用结果通过对应的收发线程发送至调用方。
同时,物联网平台上的业务处理服务对某一同步调用请求完成业务处理时,业务处理服务可以将该同步调用请求中携带的请求数据和对应的调用标识符按照MQTT协议封装为指定格式的请求消息,并将请求消息发送至链接管理服务。为了将物联网设备返回的响应消息正确返回给对该同步调用请求进行业务处理的业务处理服务,链接管理服务可以从请求消息中获取调用标识符,并在本地存储该调用标识符与该业务处理服务所在的业务服务器的服务器ID的映射关系。这样,在接收到物联网设备发送的响应消息时,链接管理服务根据响应消息携带的调用标识符便可查找到对应的服务器ID,进而将响应消息转发给对应的业务处理服务。
可选的,物联网平台在启动一条收发线程时,可以为该收发线程分配一个信号量。相应的,步骤102中建立所述目标调用标识符与所述收发线程的对应关系的处理可以包括:在本地存储所述调用标识符与所述收发线程的信号量标记的映射关系。
在一个实施例中,物联网平台可以利用信号量来阻塞及标识收发线程。信号量可协调共享资源的访问,并且保证物联网平台多线程处理的时序关系。例如,当物联网平台启动一条收发线程时,可以为该收发线程创建一个初始值(Value)为1的信号量。当物联网平台通过该收发线程接收到同步调用请求时,可以将该收发线程的信号量的值减1。此时,信号量的值为0,表示对应的收发线程处于阻塞状态。物联网平台可以在本地存储调用标识符与信号量标记(Key)的映射关系。这样,在接收到物联网设备发送的响应消息后,物联网平台根据调用标识符便可查找到对应的信号量标记,并将该信号量的值加1。此时,信号量的值为1,表示对应的收发线程被唤醒。物联网平台可以将响应消息中携带的调用结果通过对应的收发线程发送至调用方。
步骤103,在接收到携带调用标识符的请求消息后,物联网设备向物联网平台发送携带调用标识符的响应消息。
在实施中,当物联网设备接收到携带调用标识符的请求消息时,可以向物联网平台返回携带相同调用标识符的响应消息。这样,可以为实现调用方的同步调用提供基础。具体而言,物联网平台根据响应消息携带的调用标识符便可查找到对应的收发线程,通过该收发线程将响应消息携带的调用结果发送给调用方。
步骤104,在接收到携带调用标识符的响应消息时,物联网平台根据调用标识符唤醒对应的收发线程,并通过该收发线程将调用结果发送至调用方。
在实施中,由于在接收到调用方发送的同步调用请求时,物联网平台在本地存储了同步调用请求的调用标识符与收发线程的映射关系。因此,在接收到携带调用标识符的响应消息时,物联网平台根据调用标识符便可查找到对应的收发线程,并将响应消息携带的调用结果通过对应的收发线程发送至调用方。
可选的,为了使物联网平台便于升级、扩展以及维护,物联网平台通常将业务处理服务和链接管理服务分离。相应的,步骤104的具体处理可以包括:在所述连接管理服务接收到携带所述调用标识符的响应消息时,将所述响应消息发送至与所述调用标识符对应的所述业务处理服务进行业务处理;通过所述业务处理服务唤醒与所述调用标识符对应的所述收发线程,并通过所述收发线程将调用结果发送至所述调用方。
在一个实施例中,物联网平台上的业务处理服务和链接管理服务之间可以采用异步通信模式。由于在接收到业务处理服务发送的携带调用标识符的请求消息时,物联网平台在本地存储了调用标识符与服务器ID的映射关系。因此,在接收到携带调用标识符的响应消息时,链接管理服务根据调用标识符便可查找到对应的服务器ID,进而将响应消息转发给对应的业务处理服务进行业务处理。由于在接收到调用方发送的同步调用请求时,业务处理服务在本地存储了同步调用请求的调用标识符与收发线程的映射关系。因此,在目标业务服务器对响应消息完成业务处理后,业务处理服务根据调用标识符便可查找到对应的收发线程,并基于HTTP等协议将响应消息中携带的调用结果通过对应的收发线程发送至调用方。
在一个实施例中,物联网平台可以获取并存储接入的所有物联网设备的设备信息,该设备信息可以包括设备名称、设备状态(包括在线和离线)等信息。在接收到同步调用请求之后,物联网平台可以根据物联网设备的不同状态进行不同的处理。例如,如果物联网平台未存储某一同步调用请求指定的物联网设备的设备信息,则说明不存在该同步调用请求所指定的物联网设备,物联网平台可以结束对应的收发线程的阻塞状态,并向对应的调用方发送代表设备不存在的错误响应码;如果物联网平台查询到某一同步调用请求指定的物联网设备的设备状态为离线,则可以结束对应的收发线程的阻塞状态,并向对应的调用方发送代表设备离线的错误响应码;如果在某条收发线程的阻塞时间到达超时时间时,物联网平台仍未接收到对应的响应消息,则可以结束对应的收发线程的阻塞状态,并向所述调用方发送代表连接超时的错误响应码。
相较于现有技术,本发明实施例至少可以带来以下有益效果:第一,无需改动物联网平台与物联网设备的异步通信模式,即可实现调用方对物联网平台进行同步调用。第二,无需改动物联网平台上业务处理服务和链接管理服务的异步通信模式,即可实现调用方对物联网平台进行同步调用。第三,物联网平台基于RPC协议对外提供同步调用接口,保证远程过程调用对调用方透明以及高并发条件下物联网平台的处理能力。第四,物联网平台采用信号量来阻塞及标识收发线程,可协调共享资源的访问,并且保证物联网平台多线程处理的时序关系。
基于相同的技术构思,本发明实施例还提供了一种物联网系统,如图3所示,该系统包括:
物联网平台,用于在接收到调用方发送的同步调用请求时,阻塞与所述同步调用请求对应的收发线程,并为所述同步调用请求生成调用标识符;
所述物联网平台,还用于建立所述调用标识符与所述收发线程的对应关系,并将携带所述调用标识符的请求消息发送至所述同步调用请求指定的物联网设备;
所述物联网设备,用于在接收到所述物联网平台发送的请求消息后,向所述物联网平台发送携带所述调用标识符的响应消息;
所述物联网平台,还用于在接收到携带所述调用标识符的响应消息时,根据所述调用标识符唤醒对应的所述收发线程,并通过所述收发线程将调用结果发送至所述调用方。
可选的,所述物联网平台具体用于:
通过业务处理服务建立所述调用标识符与所述收发线程的对应关系,并对所述同步调用请求进行业务处理;
根据所述同步调用请求和所述调用标识符生成所述请求消息,并通过所述业务处理服务将携带所述调用标识符的请求消息发送至链接管理服务;
通过所述链接管理服务建立所述调用标识符与所述业务处理服务的对应关系,并将所述请求消息发送至所述物联网设备。
进一步的,所述物联网平台还具体用于:
在所述连接管理服务接收到携带所述调用标识符的响应消息时,将所述响应消息发送至与所述调用标识符对应的所述业务处理服务进行业务处理;
通过所述业务处理服务唤醒与所述调用标识符对应的所述收发线程,并通过所述收发线程将调用结果发送至所述调用方。
可选的,所述物联网平台还具体用于:
在本地存储所述调用标识符与所述收发线程的信号量标记的映射关系。
可选的,所述物联网平台通过RPC同步接口接收所述调用方发送的同步调用请求。
可选的,所述物联网平台还用于:
若不存在所述物联网设备,则结束所述收发线程的阻塞状态,并向所述调用方发送代表设备不存在的错误响应码;
若所述物联网设备不在线,则结束所述收发线程的阻塞状态,并向所述调用方发送代表设备离线的错误响应码;
若在超时时间内未接收到携带所述调用标识符的响应消息,则结束所述收发线程的阻塞状态,并向所述调用方发送代表连接超时的错误响应码。
上述实施例提供的物联网平台和物联网设备的具体实现原理和所要达到的技术效果可以参见图1所示的方法实施例,在此不再赘述。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该实现物联网平台同步调用的软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括存储若干指令用以使得一台网络设备执行各个实施例或者实施例的某些部分所述的方法。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种物联网平台同步调用的方法,其特征在于,所述方法包括:
在接收到调用方发送的同步调用请求时,阻塞与所述同步调用请求对应的收发线程,并为所述同步调用请求生成调用标识符;
建立所述调用标识符与所述收发线程的对应关系,并将携带所述调用标识符的请求消息发送至所述同步调用请求指定的物联网设备;
在接收到携带所述调用标识符的响应消息时,根据所述调用标识符唤醒对应的所述收发线程,并通过所述收发线程将调用结果发送至所述调用方;
所述方法还包括获取并存储接入的所述物联网设备的设备信息;
其中,所述设备信息包括设备状态,使得在接收到所述同步调用请求之后,根据所述物联网设备的不同状态进行不同的处理,包括:
若不存在所述物联网设备,则结束所述收发线程的阻塞状态,并向所述调用方发送代表设备不存在的错误响应码;
若所述物联网设备不在线,则结束所述收发线程的阻塞状态,并向所述调用方发送代表设备离线的错误响应码;
若在超时时间内未接收到携带所述调用标识符的响应消息,则结束所述收发线程的阻塞状态,并向所述调用方发送代表连接超时的错误响应码。
2.如权利要求1所述的方法,其特征在于,建立所述调用标识符与所述收发线程的对应关系,并将携带所述调用标识符的请求消息发送至所述同步调用请求指定的物联网设备,包括:
通过业务处理服务建立所述调用标识符与所述收发线程的对应关系,并对所述同步调用请求进行业务处理;
根据所述同步调用请求和所述调用标识符生成所述请求消息,并通过所述业务处理服务将携带所述调用标识符的请求消息发送至链接管理服务;
通过所述链接管理服务建立所述调用标识符与所述业务处理服务的对应关系,并将所述请求消息发送至所述物联网设备。
3.如权利要求2所述的方法,其特征在于,在接收到携带所述调用标识符的响应消息时,根据所述调用标识符唤醒对应的所述收发线程,并通过所述收发线程将调用结果发送至所述调用方,包括:
在所述链接管理服务接收到携带所述调用标识符的响应消息时,将所述响应消息发送至与所述调用标识符对应的所述业务处理服务进行业务处理;
通过所述业务处理服务唤醒与所述调用标识符对应的所述收发线程,并通过所述收发线程将调用结果发送至所述调用方。
4.如权利要求1所述的方法,其特征在于,所述物联网平台通过RPC同步接口接收所述调用方发送的同步调用请求。
5.如权利要求1或2所述的方法,其特征在于,建立所述调用标识符与所述收发线程的对应关系,包括:
在本地存储所述调用标识符与所述收发线程的信号量标记的映射关系。
6.一种物联网平台同步调用的方法,其特征在于,所述方法包括:
接收物联网平台发送的请求消息,并获取所述请求消息携带的调用标识符;
向所述物联网平台发送携带所述调用标识符的响应消息,以使所述物联网平台根据所述调用标识符查找对应的收发线程,并通过所述收发线程将调用结果发送至调用方;
所述方法还包括被所述物联网平台获取设备信息,其中,所述设备信息包括设备状态,使得所述物联网平台在接收到所述同步调用请求之后,根据物联网设备的不同状态进行不同的处理,包括:
若不存在所述物联网设备,则结束所述收发线程的阻塞状态,并向所述调用方发送代表设备不存在的错误响应码;
若所述物联网设备不在线,则结束所述收发线程的阻塞状态,并向所述调用方发送代表设备离线的错误响应码;
若在超时时间内未接收到携带所述调用标识符的响应消息,则结束所述收发线程的阻塞状态,并向所述调用方发送代表连接超时的错误响应码。
7.一种物联网系统,其特征在于,所述系统包括:
物联网平台,用于在接收到调用方发送的同步调用请求时,阻塞与所述同步调用请求对应的收发线程,并为所述同步调用请求生成调用标识符;
所述物联网平台,还用于建立所述调用标识符与所述收发线程的对应关系,并将携带所述调用标识符的请求消息发送至所述同步调用请求指定的物联网设备;
所述物联网设备,用于在接收到携带所述调用标识符的请求消息后,向所述物联网平台发送携带所述调用标识符的响应消息;
所述物联网平台,还用于在接收到携带所述调用标识符的响应消息时,根据所述调用标识符唤醒对应的所述收发线程,并通过所述收发线程将调用结果发送至所述调用方;
所述物联网平台,还用于获取并存储接入的所述物联网设备的设备信息,其中,所述设备信息包括设备状态,使得在接收到所述同步调用请求之后,根据所述物联网设备的不同状态进行不同的处理,包括:
若不存在所述物联网设备,则结束所述收发线程的阻塞状态,并向所述调用方发送代表设备不存在的错误响应码;
若所述物联网设备不在线,则结束所述收发线程的阻塞状态,并向所述调用方发送代表设备离线的错误响应码;
若在超时时间内未接收到携带所述调用标识符的响应消息,则结束所述收发线程的阻塞状态,并向所述调用方发送代表连接超时的错误响应码。
8.如权利要求7所述的系统,其特征在于,所述物联网平台具体用于:
通过业务处理服务建立所述调用标识符与所述收发线程的对应关系,并对所述同步调用请求进行业务处理;
根据所述同步调用请求和所述调用标识符生成所述请求消息,并通过所述业务处理服务将携带所述调用标识符的请求消息发送至链接管理服务;
通过所述链接管理服务建立所述调用标识符与所述业务处理服务的对应关系,并将所述请求消息发送至所述物联网设备。
9.如权利要求8所述的系统,其特征在于,所述物联网平台还具体用于:
在所述链接管理服务接收到携带所述调用标识符的响应消息时,将所述响应消息发送至与所述调用标识符对应的所述业务处理服务进行业务处理;
通过所述业务处理服务唤醒与所述调用标识符对应的所述收发线程,并通过所述收发线程将调用结果发送至所述调用方。
10.如权利要求7所述的系统,其特征在于,所述物联网平台通过RPC同步接口接收所述调用方发送的同步调用请求。
11.如权利要求7或8所述的系统,其特征在于,所述物联网平台还具体用于:
在本地存储所述调用标识符与所述收发线程的信号量标记的映射关系。
12.一种网络设备,其特征在于,所述网络设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行,以实现如权利要求1至5任一项所述的方法,或者实现如权利要求6所述的方法。
13.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行,以实现如权利要求1至5任一项所述的方法,或者实现如权利要求6所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010047097.7A CN111212085B (zh) | 2020-01-16 | 2020-01-16 | 物联网平台同步调用的方法、物联网系统和网络设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010047097.7A CN111212085B (zh) | 2020-01-16 | 2020-01-16 | 物联网平台同步调用的方法、物联网系统和网络设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111212085A CN111212085A (zh) | 2020-05-29 |
CN111212085B true CN111212085B (zh) | 2022-11-22 |
Family
ID=70787732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010047097.7A Active CN111212085B (zh) | 2020-01-16 | 2020-01-16 | 物联网平台同步调用的方法、物联网系统和网络设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111212085B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111683158B (zh) * | 2020-08-12 | 2020-11-06 | 南京天创电子技术有限公司 | 一种实现同步请求响应的mqtt协议通信方法 |
CN111988315A (zh) * | 2020-08-19 | 2020-11-24 | 青岛易来智能科技股份有限公司 | 一种同步调用方法、装置、电子设备、系统和存储介质 |
CN112214514A (zh) * | 2020-09-07 | 2021-01-12 | 广东省安心加科技有限公司 | 物联设备实时状态查询方法、装置及存储介质 |
CN112099864B (zh) * | 2020-09-24 | 2024-09-10 | 中国建设银行股份有限公司 | 一种异步数据的处理方法及装置 |
CN112511636B (zh) * | 2020-12-04 | 2022-04-08 | 中国建设银行股份有限公司 | 数据传输系统、方法、装置、计算机设备及存储介质 |
CN112738245B (zh) * | 2020-12-28 | 2023-03-28 | 青岛海尔科技有限公司 | 设备应答信息的确定方法及装置、存储介质及电子装置 |
CN113190624A (zh) * | 2021-05-21 | 2021-07-30 | 中国工商银行股份有限公司 | 基于分布式跨容器的异步转同步调用方法及装置 |
CN113489777B (zh) * | 2021-07-01 | 2024-09-06 | 厦门悦讯信息科技股份有限公司 | 一种物联网设备集群化数据采集的方法及系统 |
CN117560415B (zh) * | 2024-01-11 | 2024-03-22 | 德阳城市智慧之心信息技术有限公司 | 智慧社区微服务架构mqtt异步和同步通信方法和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107147620A (zh) * | 2017-04-19 | 2017-09-08 | 武汉票据交易中心有限公司 | 一种消息交互处理方法、客户端和服务端 |
CN108540367A (zh) * | 2017-03-06 | 2018-09-14 | 中国移动通信有限公司研究院 | 一种消息处理方法及系统 |
CN109040171A (zh) * | 2018-06-14 | 2018-12-18 | 厦门理工学院 | 一种事件响应系统、方法、设备以及存储介质 |
US10284670B1 (en) * | 2016-06-07 | 2019-05-07 | Amazon Technologies, Inc. | Network-controlled device management session |
CN110099078A (zh) * | 2018-01-29 | 2019-08-06 | 阿里巴巴集团控股有限公司 | 设备间通信、消息同步方法、装置、设备和存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102780613B (zh) * | 2012-06-19 | 2015-12-09 | 瑞斯康达科技发展股份有限公司 | 一种分布式设备板间通信的方法与装置 |
CN106713226B (zh) * | 2015-11-12 | 2019-07-12 | 卓望数码技术(深圳)有限公司 | 一种用于分布式系统的远程过程调用处理方法和系统 |
CN105912306B (zh) * | 2016-04-12 | 2018-05-18 | 电子科技大学 | 一种高并发平台服务器的数据处理的方法 |
CN106789606B (zh) * | 2016-12-08 | 2020-06-16 | 瑞斯康达科技发展股份有限公司 | 一种网络通信系统、其管理方法及通信方法 |
CN107479981B (zh) * | 2017-06-30 | 2020-02-07 | 武汉斗鱼网络科技有限公司 | 一种基于异步调用实现同步调用的处理方法及装置 |
-
2020
- 2020-01-16 CN CN202010047097.7A patent/CN111212085B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10284670B1 (en) * | 2016-06-07 | 2019-05-07 | Amazon Technologies, Inc. | Network-controlled device management session |
CN108540367A (zh) * | 2017-03-06 | 2018-09-14 | 中国移动通信有限公司研究院 | 一种消息处理方法及系统 |
CN107147620A (zh) * | 2017-04-19 | 2017-09-08 | 武汉票据交易中心有限公司 | 一种消息交互处理方法、客户端和服务端 |
CN110099078A (zh) * | 2018-01-29 | 2019-08-06 | 阿里巴巴集团控股有限公司 | 设备间通信、消息同步方法、装置、设备和存储介质 |
CN109040171A (zh) * | 2018-06-14 | 2018-12-18 | 厦门理工学院 | 一种事件响应系统、方法、设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111212085A (zh) | 2020-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111212085B (zh) | 物联网平台同步调用的方法、物联网系统和网络设备 | |
CN111580995B (zh) | 基于mqtt异步通信场景下的分布式云平台与物联网智能终端的同步通信方法与系统 | |
CN112527525B (zh) | 基于消息队列的分布式事件总线处理方法、终端及介质 | |
CN110753129A (zh) | 消息传输方法、系统、装置、设备及计算机可读存储介质 | |
CN109462640B (zh) | 一种元数据同步方法、数据端、交互系统及介质 | |
CN102981911A (zh) | 一种分布式消息处理系统及其中的设备和方法 | |
CN112486707A (zh) | 基于Redis的消息异步消费方法及装置 | |
CN112817539A (zh) | 一种工业数据存储方法、系统、电子设备及存储介质 | |
CN114500546B (zh) | 基于负载均衡集群的通信消息发送方法、装置及设备 | |
CN112291325A (zh) | 一种消息的处理方法、装置及计算机系统 | |
CN112104679B (zh) | 处理超文本传输协议请求的方法、装置、设备和介质 | |
CN114625566A (zh) | 数据容灾方法、装置、电子设备及存储介质 | |
CN111756844A (zh) | 一种多语言消息代理方法及装置 | |
CN115334155B (zh) | 一种消息队列代理方法和装置 | |
CN114095571A (zh) | 数据处理方法、数据服务总线、终端和存储介质 | |
CN115629909A (zh) | 业务数据处理的方法、装置、电子设备和存储介质 | |
CN108075989B (zh) | 一种基于可扩展协议的负载均衡网络中间件实现方法 | |
CN113242313B (zh) | 数据同步方法、系统、装置、服务器及存储介质 | |
CN112187916B (zh) | 一种跨系统的数据同步方法与装置 | |
CN115277707A (zh) | 业务处理方法、装置、电子设备和存储介质 | |
CN113190624A (zh) | 基于分布式跨容器的异步转同步调用方法及装置 | |
CN114390097A (zh) | 基于消息队列的区块链运行方法、系统及其应用 | |
US20140046849A1 (en) | Heuristics processing | |
US8046419B2 (en) | Method of processing open asynchronous application service event and open web service gateway implementing the same | |
CN113296968A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |