通过应用编程接口的远程通信和远程编程制造技术

技术编号:18501207 阅读:23 留言:0更新日期:2018-07-21 22:27
通过应用编程接口的远程通信和远程编程。提供了用于服务器设备与客户端设备之间的远程应用编程接口(RAPI)通信的方法和系统。在一实施方式中,服务器设备和客户端设备包括存储器和连接至存储器的硬件处理器。硬件处理器执行指令以执行在服务器侧和客户端侧都实例化接入点实例的操作。从编译API接口类和远程通信类来生成指令,其中,编译包括通过双继承创建新类的过程。通过从客户端设备接收API连接消息,服务器设备克隆默认的中继器接入点实例,并且将克隆的中继器接入点实例分配用于处理此后从该客户端设备接收的API请求。

Remote communication and remote programming through application programming interface

Remote communication and remote programming through application programming interface. A method and system for remote application programming interface (RAPI) communication between server devices and client devices are provided. In one embodiment, server devices and client devices include memory and hardware processors connected to memory. The hardware processor executes instructions to instantiate access point instances on both the server side and the client side. The instruction is generated from the compilation of API interface classes and remote communication classes, where compilation includes the process of creating new classes through double inheritance. By receiving the API connection message from the client device, the server device clones the default repeater access point instance and assigns the cloned repeater access point instance to the API request received from the client device.

【技术实现步骤摘要】
通过应用编程接口的远程通信和远程编程
本公开总体上涉及用于服务器与客户端设备之间的基于应用编程接口(API)的远程通信和远程编程的方法和系统。如在本公开中使用的,通过API接口的远程通信和远程编程称为远程API(RAPI)。
技术介绍
随着物联网(IOT)的快速发展,对于在远程设备中运行的应用实例之间的远程通信和远程编程已经有不断增长的需求。例如,智能电话设备经由网络与室外传感器通信以获得温度信息,或者计算机设备向交通网络摄像头发送参数以调整镜头设置。当两个进程是本地的时(例如,二者均访问本地机器共享存储器),API提供了用于进程-进程直接函数调用的简单方式。然而,传统的方法不支持使用API的远程进程-进程直接函数调用。在远程进程之间也不能传递用于编程的指针。因此,存在对于简化使用API的远程直接函数调用同时满足客户端-服务器远程通信和远程编程的性能期望的系统和方法的需要。
技术实现思路
本公开涉及用于多个服务器设备与多个客户端设备之间通过API接口的远程通信和编程的系统和方法。本公开的目的是提供远程进程-进程直接函数调用而无需中央进程间服务注册器/管理器。根据本公开的一实施方式,一种方法包括接收定义API正向调用功能的API接口正向调用头文件和定义服务器终端的远程通信功能的通信中继器(relayer)头文件。编译器通过编译至少所述API接口正向调用头文件和所述通信中继器头文件来创建第一代码。该方法还包括接收定义API回调功能的API接口回调头文件和定义客户端终端的远程通信功能的通信客户端头文件。编译器通过编译至少所述API接口回调头文件和所述通信客户端头文件来创建第二代码。所述第一代码和所述第二代码存储在服务器设备的存储器中。由所述服务器设备的处理器执行所述第一代码创建了与默认的中继器标识符相关联的中继器接入点实例。所述中继器接入点实例接收包含与所述默认的中继器标识符匹配的中继器标识符的API连接消息。该方法还创建用于处理此后接收的API服务消息的克隆的中继器接入点实例。如果所述API连接消息包含回调通道连接请求,则所述服务器设备的处理器还执行所述第二代码以创建客户端回调接入点实例。在一实施方式中,一种方法包括在客户端设备的存储器内构造客户端应用实例,以及构造与所述客户端应用实例相关联的客户端接入点实例。通过执行从至少API接口正向调用头文件和通信客户端头文件编译的代码来创建所述客户端接入点实例。所述客户端接入点实例创建并发送包含中继器标识符的API连接消息。所述客户端接入点实例还创建包含相同的中继器标识符的API服务消息并发送该API服务消息。在另一实施方式中,除了客户端接入点实例之外,通过执行从至少API接口回调头文件和通信中继器头文件编译的另一代码来构造中继器回调接入点实例。所述API接口正向调用头文件和所述API接口回调头文件二者继承自定义公共API接口功能的父API接口类。所述通信客户端头文件和所述通信中继器头文件二者继承自定义公共通信功能的父通信类。所述中继器回调接入点实例从与所述客户端设备联网的服务器设备接收API结果消息。根据本公开的另一方面,公开了一种用于服务器与客户端之间的API通信的方法。该方法包括接收接口用户自定义函数集和公共模板集。通过编译所述接口用户自定义函数集和所述公共模板集创建四个接入点实例。两个接入点实例在所述服务器中实例化,两个接入点实例在所述客户端中实例化。每个接入点实例具有自所述接口用户自定义函数集中的至少一个文件和所述公共模板集中的一个文件的继承。另外,编译包括类双继承的过程。所述客户端中的两个接入点实例处理创建和发送API连接消息以及API服务消息,以及此后接收API结果消息。一些标识符与API消息相关联以标识发送方和接收方。所述服务器中的两个接入点实例处理接收所述API连接消息和所述API服务消息,以及此后创建和发送所述API结果消息。在所述服务器中还创建克隆的接入点实例以处理包含在所述API服务消息中的API服务请求。要理解,之前的总体描述和下面的详细描述本质上都是示例性和说明性的,并且旨在提供对本公开的理解,而不限制本公开的范围。在这方面,根据下面的详细描述,本公开的附加方面、特征和优点对于本领域技术人员而言将是明显的。附图说明附图示出了在此公开的系统和方法的实施方式,并且与说明书一起用于解释本公开的原理。图1是示出根据本公开的各个实施方式的远程通信系统的组织图。图2示出根据一实施方式的可以由图1的系统实现的用于在客户端设备和服务器设备的接入点实例之间传递消息的各种实例、文件和数据流。图3示出根据本实施方式的可以由图1的系统实现的示例性基础类集以及类之间的继承关系。图4示出根据本公开的各种实施方式的用于生成接入点实例的源代码的编译器的流程图。图5示出根据本公开的各个实施方式的、显示在客户端设备与服务器设备之间的正向调用通道中流动的数据的数据流图。图6A和图6B示出根据本公开的各个实施方式构造的用于远程通信和远程编程的计算机实现的方法的流程图。具体实施方式在下面的描述中,阐述了描述与本公开一致的一些实施方式的具体细节。然而,对于本领域技术人员而言将明显的是,可以实践一些实施方式而无需这些具体细节中的一些或全部。在此公开的具体实施方式意图是说明性的而非限制。本领域技术人员可以实现本公开的范围和精神内的其他元素,尽管这里没有具体描述这些元素。此外,针对一个实施方式描述的特征、组件和/或步骤可以与针对本公开的其他实施方式描述的特征、组件和/或步骤组合(即使没有明确示出这种组合),以形成根据本公开的设备、系统或方法的又一实施方式。另外,为了简单起见,在一些情况下,在所有附图中使用相同的附图标记指代相同或类似的部分。图1是示出可以实现本公开的各方面的远程通信系统100的组织图。远程通信系统100包括通过网络互连的各种组件。更具体地,系统100包括诸如第一客户端设备112、第二客户端设备122、第三客户端设备152的客户端设备。系统100还包括诸如第一服务器设备102和第二服务器设备132的服务器设备。在各个示例中,可以存在更少或额外的客户端设备以及更少或额外的服务器设备。组件102、112、122、132和152通过网络140互连。网络140可以包括一个或更多个子网络。例如,第一客户端设备112、第二客户端设备122、以及第三客户端设备152可以经由一个或更多个互联网连接至第一服务器设备102和第二服务器设备132,同时第一服务器设备102和第二服务器设备132经由一个或更多个内联网连接。网络140可以包括公用网络和/或专用网络的任意组合。网络140可以包括经由传输介质通信连接的多个网络设备和传输介质。在一些示例中,网络设备可以包括集线器、路由器、交换机等。在一些示例中,传输介质可以包括以太网线缆、光纤通道线缆、无线信号等。在本示例中,网络140构造为经由支持套接字的协议(诸如,通用异步接收机/发射机(UART)、通用串行总线(USB)、传输控制协议/互联网协议(TCP/IP)、以及无线局域网(WLAN))在客户端设备与服务器设备之间路由通信消息。客户端设备和服务器设备均可包括构造为将各个设备102、112、122、132和152通信连接至网络140的本文档来自技高网...

【技术保护点】
1.一种用于服务器设备处理应用编程接口API请求的方法,所述方法包括:接收API接口正向调用头文件和API接口回调头文件;接收通信中继器头文件和通信客户端头文件;通过执行通过编译至少所述API接口正向调用头文件和所述通信中继器头文件而生成的第一代码,在所述服务器设备的操作存储器内构造默认的中继器接入点实例,其中,所述默认的中继器接入点实例具有默认的中继器标识符;由所述默认的中继器接入点实例接收从与所述服务器设备联网的客户端发送的API连接消息,其中,所述API连接消息包括中继器标识符;检查所述中继器标识符;以及在所述中继器标识符与所述默认的中继器标识符相同的情况下,执行以下动作:通过在所述操作存储器内复制所述默认的中继器接入点实例来创建克隆的中继器接入点实例;如果所述API连接消息包括回调通道连接请求,则通过执行通过编译至少所述API接口回调头文件和所述通信客户端头文件而生成的第二代码,在所述操作存储器内构造客户端回调接入点实例;以及由所述克隆的中继器接入点实例处理从所述客户端发送的API服务消息。

【技术特征摘要】
1.一种用于服务器设备处理应用编程接口API请求的方法,所述方法包括:接收API接口正向调用头文件和API接口回调头文件;接收通信中继器头文件和通信客户端头文件;通过执行通过编译至少所述API接口正向调用头文件和所述通信中继器头文件而生成的第一代码,在所述服务器设备的操作存储器内构造默认的中继器接入点实例,其中,所述默认的中继器接入点实例具有默认的中继器标识符;由所述默认的中继器接入点实例接收从与所述服务器设备联网的客户端发送的API连接消息,其中,所述API连接消息包括中继器标识符;检查所述中继器标识符;以及在所述中继器标识符与所述默认的中继器标识符相同的情况下,执行以下动作:通过在所述操作存储器内复制所述默认的中继器接入点实例来创建克隆的中继器接入点实例;如果所述API连接消息包括回调通道连接请求,则通过执行通过编译至少所述API接口回调头文件和所述通信客户端头文件而生成的第二代码,在所述操作存储器内构造客户端回调接入点实例;以及由所述克隆的中继器接入点实例处理从所述客户端发送的API服务消息。2.根据权利要求1所述的方法,其中:所述API接口正向调用头文件定义API正向调用功能;所述API接口回调头文件定义API回调功能;所述API接口正向调用头文件和所述API接口回调头文件二者均继承自定义公共API接口功能的父API接口类;所述通信中继器头文件定义服务器终端上的远程通信功能;所述通信客户端头文件定义客户端终端上的远程通信功能;并且所述通信中继器头文件和所述通信客户端头文件二者均继承自定义公共通信功能的父通信类。3.根据权利要求1所述的方法,其中,所述API连接消息包括与所述客户端对应的客户端标识符,所述方法还包括:在所述克隆的中继器接入点实例的创建之后,将所述克隆的中继器接入点实例与实例指针相关联,其中,所述实例指针存储在所述服务器设备的非暂时性存储器中保持的实例阵列栈中,并且能利用所述客户端标识符获得。4.根据权利要求3所述的方法,其中,所述API服务消息包括API函数名、多个API函数参数、以及所述客户端标识符。5.根据权利要求4所述的方法,在所述克隆的中继器接入点实例的创建之后,所述方法还包括:由所述默认的中继器接入点实例接收所述API服务消息;利用从所述API服务消息读取的所述客户端标识符从所述实例阵列栈获得所述实例指针;获得由所述实例指针指向的所述克隆的中继器接入点实例;以及由所述默认的中继器接入点实例将所述API服务消息传送到所述克隆的中继器接入点实例。6.根据权利要求1所述的方法,其中,所述处理还包括:由所述克隆的中继器接入点实例从所述API服务消息获得API函数名和多个API函数参数;以及将所述API函数名和所述多个API函数参数传送到与所述克隆的中继器接入点实例相关联的服务器应用实例。7.根据权利要求6所述的方法,在所述API连接消息包括所述回调通道连接请求的情况下,在所述API服务消息的处理之后,所述方法还包括:由所述客户端回调接入点实例从所述服务器应用实例接收API服务结果,其中,所述API服务结果与所述API服务消息相关联;由所述客户端回调接入点实例创建API结果消息,其中,所述API结果消息包含所述API服务结果和所述客户端标识符;以及由所述客户端回调接入点实例将所述API结果消息发送到所述客户端。8.根据权利要求7所述的方法,其中,所述服务器应用实例具有应用实例标识符,并且所述API结果消息包含所述应用实例标识符。9.根据权利要求2所述的方法,所述方法还包括:由所述默认的中继器接入点实例接收从与所述服务器设备联网的第二客户端发送的第二API连接消息,其中,所述第二API连接消息包括第二中继器标识符;检查所述第二中继器标识符;以及在所述第二中继器标识符与所述默认的中继器标识符相同的情况下,执行以下操作:通过在所述操作存储器内复制所述默认的中继器接入点实例来创建第二克隆的中继器接入点实例;以及如果所述第二API连接消息包括第二回调通道连接请求,则在所述操作存储器内构造第二客户端回调接入点实例。10.一种用于客户端设备请求应用编程接口API服务的方法,所述方法包括:接收API接口正向调用头文件和API接口回调头文件,其中,所述API接口正向调用头文件和所述API接口回调头文件二者均继承自定义公共API接口功能的父API接口类;接收通信中继器头文件和通信客户端头文件,其中,所述通信中继器头文件和所述通信客户端头文件二者均继承自定义公共通信功能的父通信类;在所述客户端设备的操作存储器内构造客户端应用实例;通过执行通过编译至少所述API接口正向调用头文件和所述通信客户端头文件而生成的第一代码,在所述操作存储器内构造与所述客户端应用实例相关联的客户端接入点实...

【专利技术属性】
技术研发人员:赵文恒
申请(专利权)人:上海思立微电子科技有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1