CN1852209A - 一种分布式控制***中的远程过程调用方法及*** - Google Patents

一种分布式控制***中的远程过程调用方法及*** Download PDF

Info

Publication number
CN1852209A
CN1852209A CN 200610083629 CN200610083629A CN1852209A CN 1852209 A CN1852209 A CN 1852209A CN 200610083629 CN200610083629 CN 200610083629 CN 200610083629 A CN200610083629 A CN 200610083629A CN 1852209 A CN1852209 A CN 1852209A
Authority
CN
China
Prior art keywords
module
server
rpc
thread
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.)
Granted
Application number
CN 200610083629
Other languages
English (en)
Other versions
CN100401707C (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 Helishi Control Technology Co ltd
Original Assignee
Beijing Hollysys 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 Hollysys Co Ltd filed Critical Beijing Hollysys Co Ltd
Priority to CNB2006100836292A priority Critical patent/CN100401707C/zh
Publication of CN1852209A publication Critical patent/CN1852209A/zh
Application granted granted Critical
Publication of CN100401707C publication Critical patent/CN100401707C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

一种分布式控制***中的远程过程调用***及方法,在远程过程调用RPC的两端均包括:负责对外提供统一接口的对外接口模块、可供对外接口模块访问的客户端模块和服务器模块、可由客户端模块和服务器模块访问的网络接口模块,以及可由服务器模块访问的服务处理线程池模块。对外接口模块在收到将RPC调用消息后,获取该服务器任务的所有配置参数,创建客户端模块的一个实例并发起调用;客户端模块完成数据的封装和分片,交网络接口模块发送到对端服务器模块,同时进行切换处理;服务器模块完成对该RPC消息的分片重组后启动处理线程,处理结果以RPC消息的形式沿原路返回调用者。本发明除易于使用、屏蔽网络复杂度外,可以实现双网冗余切换。

Description

一种分布式控制***中的远程过程调用方法及***
技术领域
本发明涉及远程过程调用,尤其涉及分布式控制(DCS)***中远程过程调用的实现方法及其装置。
背景技术
不论是工业过程控制中的分布式控制***(DCS)、核电站的电站计算机***(KIT),还是轨道交通中使用的大型监督控制与数据采集***(SCADA),都涉及一个核心问题,即分布式数据采集与集中计算带来的***各组件间的通信问题。同时,随着应用的扩展,工程对***的部署灵活性、可扩展性要求越来越高。
这就提出了一个非常现实的问题:如何建立一个完善可靠的分布式计算基础设施(Distributed Computing Infrastructure(DCI)),使得DCS、KIT、SCADA等大型***的设计开发人员可以将主要精力集中在具体事务处理上,不必过多关心底层网络通信、网络冗余,同时可以将在该基础设施上建立的各个服务组件灵活部署在不同机器上,以同时满足大型***(设有专用服务器、多层网络结构)和小型***(操作站和服务器软件安装在相同机器上,并采用单层扁平网络结构,以节约成本)的需要。
目前实现DCI的同类技术包括:RPC、DCE、CORBAL、DCOM,远程过程调用(RPC:Remote Procedure Call)是最早被提出的DCI实现技术。早在1976年就有文献开始提出RPC概念,完整的RPC技术实现出现在70年代末80年代初。早期的程序大量使用goto语句,后来将成熟的程序功能以“过程”的形式提供,使用者将“过程库”链接进自己的进程中,就可以方便的进行调用,这种“过程调用”是在同一进程空间进行的。随着计算机操作***技术和网络技术的发展,分布式计算的需求被提出,“过程调用”也被要求由单个进程扩展到同机器的多个进程以及通过网络连接在一起的不同
为了访问远程进程的一个“过程”,RPC将一段“客户端桩程序”***到客户端进程代码中,同时将一段“服务器桩程序”***到服务器进程代码中;当客户端进程发起一次“远程过程调用”时,“客户端桩程序”将该调用的各个参数封装成网络报文,并通过网络将报文发送到服务器进程所在的计算机,“服务器桩程序”收到该报文后,解析出过程参数,以回调函数的形式传递给服务器进程,服务器进程的处理结果经过同样的处理过程,由“服务器桩程序”传递给“客户端桩程序”,然后返回给客户端进程,这样就完成了一次完整的“远程过程调用”。可以看出RPC的实现代码被嵌入到服务器和客户端两个进程空间。
通用RPC以及由此派生的各种DCI技术都存在同样的两类问题:
1、RPC、DCE、CORBAL、DCOM都是面向商用开发的技术,对可靠性、网络切换方面没有很好的解决,如难以实现快速双网络冗余切换;Windows的RPC还存在众多已经为黑客掌握的安全漏洞,这些缺陷导致这些技术不适合直接应用到对安全可靠性要求很高的工业级***。
2、代码不公开或代码过于复杂等问题,需要进行相当的定制工作,才能应用到工业控制应用场合。虽然各个厂家都提供很多示例代码,但绝不应该认为开发DCOM、CORBA组件,可以降低对网络知识的要求,这种定制工作,一方面需要相当的网络基础知识和实践经验,另一方面还需要对RPC等的工作机制有透彻的理解,经验告诉我们定制环节因人而异,常出问题,此处风险很难控制。
DCS***与现在普通办公环境中使用的商用分布式计算解决方案有着完全不同的历史背景和现实需求,解决DCS现在问题,绝不可能简单挪用通用的DCOM、RPC等技术。但用户对DCS需求的快速发展又要求DCS***平台有一种具备商用DCI特点的易于使用、屏蔽网络复杂度的基础软件,这个基础软件一方面缩短DCS***的新功能的开发周期,减少新功能对***可靠性、复杂度的冲击;另一方面,不能违背DCS***的一贯需求,如双网冗余,数据热备等等。
发明内容
本发明要解决的技术问题是一种分布式控制***中的远程过程调用***及其方法,除易于使用、屏蔽网络复杂度外,可以实现双网冗余切换。
为了解决上述技术问题,本发明提供了一种分布式控制***中的远程过程调用***,其特征在于,在远程过程调用RPC的两端均包括:负责对外提供统一接口的对外接口模块、可供对外接口模块访问的客户端模块和服务器模块、可由客户端模块和服务器模块访问的网络接口模块,以及可由服务器模块访问的服务处理线程池模块,其中:
所述对外接口模块包括:RPC调用接口单元,对于新的RPC调用请求,按服务器任务名从配置文件获取配置参数,创建客户端模块的一个实例,然后发起调用并返回调用结果,后续调用请求则重用该实例;RPC服务接口单元,在使用对外接口模块的是服务器端任务时,创建服务器模块的一个服务实例,根据读取的参数初始化服务处理线程池模块的线程池,然后启动服务器模块的接收处理线程;
所述客户端模块在收到调用请求后,将要发送的数据封装到RPC消息中分片发送到服务器端,并对服务器返回的RPC消息进行分片重组,经对外接口模块返回RPC调用者;且该模块根据配置参数保存所有部署的同名服务器任务的地址和端口,当发现一个服务器离线时自动切换到下一个,在所有服务器均无法工作时向对外接口模块返回调用失败的结果;
所述服务器模块包括接收处理线程和处理主线程,接收处理线程启动后创建网络接口模块实例,并启动处理主线程;处理主线程调用网络接口模块接收RPC请求消息,从服务处理线程池模块中分配一个处理线程,完成对RPC消息的分片重组后启动该处理线程,同时完成线程池维护的各种操作;
所述网络接口模块用于实现客户端模块和服务器模块之间的通信;
所述服务处理线程池模块由服务器模块的处理主线程触发其中的处理线程进行事件处理,调用相应的上层函数进行处理,并将处理结果通过网络接口模块发送给RPC请求方,然后释放线程上下文;
上述模块都需对收到的消息的参数进行合法性检查。
进一步地,上述远程过程调用***还可具有以下特点:所述网络接口模块进一步包括网络接口抽象层模块和网络接口实现层模块,其中:所述网络接口抽象层模块用于将远程过程调用***必须使用的网络协议接口抽象出来,只负责定义接口,对外屏蔽具体网络协议的复杂操作,没有具体实现代码;所述网络接口实现层模块用于具体实现所述网络接口抽象层模块定义的上述接口,以无缝替换远程过程调用***的底层通信协议。
进一步地,上述远程过程调用***还可具有以下特点:所述网络接口抽象层模块定义的接口包括:发送接口,向指定服务器地址、端口发送数据,返回发送结果;接收接口,接收数据,返回接收结果;清除消息接口,可清除接收队列中排队等候处理的所有消息,用于清除过时的历史数据,重新启动一次会话的接口;等待发送接口,等待直到网络可以发送数据,用于发送方实现异步调用,不被阻塞;以及等待接收接口,等待直到网络可以接收数据,用于接收方实现异步调用,不被阻塞。
进一步地,上述远程过程调用***还可具有以下特点:在调用的两端均还包括一与对外接口模块双向关联的主服务调度模块,所述对外接口模块的RPC服务接口单元在使用对外接口模块的是服务器端任务时,还创建该主服务调度模块的一个实例,启动选主线程,该选主线程以RPC调用的形式,通过对外接口模块获取当前在线的同名服务器任务的当前主从状态,在多个同名“服务器任务”中选择出唯一的主任务。
进一步地,上述远程过程调用***还可具有以下特点:所述对外接口模块是从一配置文件中读取配置参数的,该配置文件定义了若干服务器任务,每个服务器任务的配置参数包括:线程池中线程个数、请求缓存区大小、应答缓存区大小、网络切换时间、默认的请求超时时间、网络协议类型、部署的服务实例个数和每个服务实例对应的两个不同网络上的服务器地址和端口号。
进一步地,上述远程过程调用***还可具有以下特点:所述服务器模块中还维护了一个线程上下文数组,所述服务处理线程池模块单向引用线程上下文,所述服务器模块中的接收处理线程启动后还初始化该线程上下文数组,所述服务器模块中的处理主线程和线程池中处理线程的切换完全通过该线程上下文结构实现。
进一步地,上述远程过程调用***还可具有以下特点:还包括一个线程控制模块,用于完成服务器模块、服务处理线程池模块和主服务调度模块中线程的初始化、启动、安全退出的处理。
为了解决上述技术问题,本发明还提供了一种基于如权利要求1所述***的远程过程调用方法,包括以下步骤:
(a)服务器端任务使用对外接口模块,创建服务器模块的一个服务实例,根据读取的参数静态预初始化服务处理线程池模块的线程池,然后启动服务器模块接收处理线程,该线程创建网络接口实现层模块实例,初始化线程池的上下文,然后启动处理主线程,同时完成线程池的各种维护操作;
(b)上层应用模块将RPC调用消息发送到对外接口模块,携带服务器任务名,对外接口模块收到后,按服务器任务名从配置文件获取该服务器任务的所有可配置参数,创建客户端模块的一个实例,然后发起RPC调用;
(c)客户端模块收到调用请求后将要发送的数据封装到RPC调用请求消息中,分片后交本端的网络接口模块经网络发送到远程的网络接口模块,并等待返回结果;同时,该模块根据配置参数保存所有部署的同名服务器任务的地址和端口,当发现一个服务器离线时自动切换到下一个,在所有服务器均无法工作时则向对外接口模块返回调用失败的结果;
(d)远程的服务器模块通过调用同侧的网络接口模块接收该RPC调用请求消息,从服务处理线程池模块分配一个处理线程,完成对该RPC消息的分片重组后启动该处理线程;
(e)所述服务处理线程池模块进行事件处理,调用相应的上层服务进程进行处理,并将处理结果以RPC消息的形式经调用两端的网络接口模块发送到客户端模块;
(f)客户端模块在收到服务器返回的RPC消息且验证无误后,进行分片重组和应用层数据验证,通过后经对外接口模块和IO服务器模块返回给RPC调用者。
进一步地,上述远程过程调用方法还可具有以下特点:所述远程过程调用还包括一主服务调度模块,所述步骤(a)中还启动该主服务调度模块的选主线程,该线程以RPC调用形式,通过对外接口模块定期获取当前在线的同名服务器任务的主从状态,在多个同名“服务器任务”中选择出唯一的主任务。
进一步地,上述远程过程调用方法还可具有以下特点:所述主服务调度模块的选主线程还获取当前在线的同名服务器任务的端口号,选主时按以下方式处理:A,如果本服务器任务当前状态是“主”,并且对方也是主,则比较端口号,如对方端口号小则强制本地为”从”;B,如果本服务器任务当前状态是“从”,并且对方也为从,立即置本地为主;C,如果本服务器任务当前状态是“从”,并且对方持续3秒离线,立即置本地为主。
进一步地,上述远程过程调用方法还可具有以下特点:在步骤(a)之前,先根据设备组态信息自动生成所述配置文件,该配置文件中每个服务器任务的配置参数包括:线程池中线程个数、请求缓存区大小、应答缓存区大小、网络切换时间、默认的请求超时时间、网络协议类型、部署的服务实例个数和每个服务实例对应的两个不同网络上的服务器地址和端口号;其中服务实例的个数及相关参数是在启动时读取并追加到上述配置文件中的。
进一步地,上述远程过程调用方法还可具有以下特点:在步骤(a)之中,还根据对外接口模块派生出一IO服务器模块,该模块对外提供读写标签值接口,第三方可以通过该接口直接读取和修改部署到任何位置的IO服务的标签实时值,所述步骤(b)上层应用模块是通过该IO服务器模块的读取标签实时值接口发起一次RPC调用,由该IO服务器模块将调用请求发送到所述对外接口模块的。
进一步地,上述远程过程调用方法还可具有以下特点:所述各个模块在收到消息时都对其中的参数进行合法性检查,其中客户端模块和服务器模块还对接收的数据进行差错校验,该校验包括对分片后的RPC消息数据的校验和对重组后的应用层数据的校验。
由上可知,本发明除了具备商用DCI特点,即易于使用、屏蔽网络复杂度外,还实现了工业控制***必须的双网冗余切换功能。并且进一步具有以下特点:
1)底层网络通信协议可替换,方便以后扩展和跨平台,能够缩短DCS***的新功能的开发周期,减少新功能对***可靠性、复杂度的冲击。
2)服务实例个数可灵活配置,为了进一步提高***可靠性,IO服务器可以配置为三冗余。
3)实现服务组件多个实例间的选主,服务器任务可以通过FLRPC知道自己的主从状态。
附图说明
图1是DCS***的结构示意图。
图2是本实施例远程过程调用***的功能框图。
图3是本实施例远程过程调用方法的流程示意图。
具体实施方式
所有过程调用,不论多复杂,都可归结为统一的模式,即:请求应答模式。这种模式中,请求方将请求类型、请求参数以报文方式传递给服务方,服务方根据请求类型和请求参数进行处理,将结果以应答报文方式返回给请求方,如果请求方在规定时间内得到应答,就成功完成一次远程过程调用,否则就判本次调用超时。
图2示出了本发明实施例远程过程调用(FLRPC)***的功能框图,在调用的双端都是同样的结构。如图所示,每端均包括对外接口模块CFLRPCApi、客户端模块CFLRPCClient、服务器模块CFLRPCServer、网络接口抽象层模块CNet、网络接口实现层模块CNetUdp、主服务调度模块CFLRPCMasterSelectThread和服务处理线程池模块CFLRPCServerThread。这些功能模块是由基础类库构成的,在收到消息后都要对参数进行合法性检查,下面就不一一叙述。其中:
对外接口模块处在所有其他模块的最顶层,负责对外提供统一的接口,外界使用者只能通过该模块来访问内部所有功能。该模块与客户端模块和服务器模块的关系都是单向关联,即对外接口模块能够访问客户端模块和服务器模块,但客户端模块和服务器模块不关心对外接口模块的存在。
作为整个软件包对外的接口,对外接口模块包括二个接口单元:
RPC调用接口单元,用于发起RPC调用并将结果返回调用者。对于新的RPC调用请求,按服务器任务名从配置文件获取该服务器任务的所有可配置参数,创建客户端模块的一个实例,然后发起RPC调用,后续的调用请求则重用该实例发起RPC调用。
RPC服务接口单元,用于提供RPC服务。如果使用对外接口模块的是服务器端任务,创建服务器模块的一个服务实例,根据读取的参数静态预初始化服务处理线程池模块的线程池,并创建主服务调度模块的一个实例,启动选主线程,然后启动服务器模块接收处理线程。
FLRPC采用“根据配置文件发现服务器”的方法,这对工业控制***来说是简单可靠的方法,该配置文件由工程师站软件根据设备组态信息自动生成。其中定义了若干服务器任务,每个服务器任务的服务参数区配置了以下参数:线程池中线程个数、请求缓存区大小、应答缓存区大小、网络切换时间、默认的请求超时时间、网络协议类型、部署的服务实例个数和每个服务实例的相关参数。本实施例中,为了实现服务实例个数的灵活配置,不能简单写死服务实例的个数,应在启动时读取服务实例的个数及相关参数,追加到上述配置文件的服务参数区,对于UPD网络协议来说,每个服务实例的参数至少包括:A网服务器网络地址、B网服务器网络地址和端口号A。以支持双网冗余的功能。
客户端模块用于实现RPC客户端功能。服务器模块用于实现RPC服务器功能。客户端模块和服务器模块不直接参与操作网络协议,他们之间的通信是通过网络接口抽象层模块来实现的,客户端模块和服务器模块与网络接口抽象层模块的关系是对等的,都是单向关联关系,即客户端模块和服务器模块两模块都可以访问到网络接口抽象层模块,但反向访问关系不必存在。
客户端模块收到调用请求后,进行校验,通过后将要发送的数据封装到RPC消息中,分片发送到服务器端,在收到服务器返回的RPC消息且验证无误后,进行分片重组和应用层数据验证,再由对外接口模块返回给RPC调用者。同时,该客户端模块根据配置参数将所有部署的同名服务器任务的地址和端口添加到地址列表,当发现一个服务器离线时,自动切换到下一个,所有服务器都遍历后如还没有成功,向对外接口模块返回调用失败。
服务器模块接到客户端模块的请求后,不能由自身处理,否则处理期间的新请求会被丢失。因此为了实现并发处理客户端请求,必须由专有模块来处理具体请求,服务处理线程池模块就是处理具体请求的专用模块。服务器模块和服务处理线程池模块之间的关系是单向关联关系,服务处理线程池模块作为线程池静态预初始化。
服务器模块是客户端模块的通信对等方,包括接收处理线程和处理主线程。接收处理线程启动后,根据协议类型创建网络接口实现层模块实例,初始化线程池的上下文,然后启动处理主线程;该处理主线程调用网络接口实现层模块接收RPC请求消息,验证无误后,从服务处理线程池模块分配一个线程作为该RPC消息的处理线程,完成RPC消息的分片重组和应用层数据验证后启动该处理线程。该模块完成线程池维护的各种操作,如添加一个线程、释放一个线程、回收孤儿线程、查找一个线程等。
服务处理线程池模块就是处理具体请求的专用模块。该模块中的处理线程在完成初始化后,由服务器模块的处理主线程触发其中的处理线程进行事件处理,调用相应的上层函数进行处理,并将处理结果通过网络接口实现层模块发送给RPC请求方,然后释放线程上下文。服务器模块和服务处理线程池模块之间的关系是单向关联关系,服务器模块维护一个线程上下文数组,服务处理线程池模块单向引用服务器模块中的线程上下文。处理主线程和线程池处理线程的切换完全通过线程上下文结构实现。
多冗余或双冗余的服务的各个实例之间一般会需要有唯一的主服务,其他为从服务,每个服务实例根据自己的主从状态需要进行不同的处理,这种共性的功能在基础类库中实现可以极大减轻应用开放人员的负担,而且统一的选主模式可以减小***出错的可能。因此,需要设置主服务调度模块的选主线程来完成CFLRPC选主功能,如果对外接口模块的使用者是服务器任务,选主线程被自动启动,在多个同名“服务器任务”中选择出唯一的主任务。该模块与对外接口模块之间是双向关联关系。
选主时,先以RPC调用形式,通过对外接口模块的定期获取当前在线的同名服务器任务的当前主从状态以及端口号,然后按以下方式处理:A,如果本服务器任务当前状态是“主”,并且对方也是主,那么比较端口号,如对方端口号小则强制本地为”从”;B,如果本服务器任务当前状态是“从”,并且对方也为从,立即置本地为主;C,如果本服务器任务当前状态是“从”,并且对方持续3秒离线,立即置本地为主。需要注意的是,上述主从处理方式并不是唯一,可以根据现行工业控制中的任何一种主从设置逻辑来配置。
从上面分析可以得出,服务器模块、服务处理线程池模块和主服务调度模块都必须使用线程,为了简化这种处理,增强代码的可读性和可移植性,在另一实施例中,还可以添加线程控制模块,用于完成上述三个模块中线程的初始化、启动、安全退出的处理。
网络接口抽象层模块用于将FLRPC必须使用的网络协议接口抽象出来,形成一个“网络协议抽象类”,所有的FLRPC通信都通过指向该“抽象类”的一个指针来完成。“抽象类”在面向对象设计模式概念中是不完成任何实际功能的,它只负责定义接口,以对外屏蔽具体网络协议的复杂操作,该模块是抽象接口,没有具体实现代码。
本实施例中,该模块定义的接口有以下几种,但是本发明不局限于此,而是与实际工程的需求有关。
发送接口,向指定服务器地址、端口发送数据,返回发送结果;
接收接口,接收数据,返回接收结果;
清除消息接口,可清除接收队列中排队等候处理的所有消息,用于清除过时的历史数据,重新启动一次会话的接口;
等待发送接口,等待直到网络可以发送数据,用于发送方实现异步调用,不被阻塞;
等待接收接口,等待直到网络可以接收数据,用于接收方实现异步调用,不被阻塞。
网络接口实现层模块以网络接口抽象层模块为父类,并实现其定义的上述接口,以无缝替换FLRPC的底层通信协议。
例如,如果配置文件规定FLRPC使用UDP协议,则***创建UDP具体类的一个实例,FLRPC的任何网络操作都会通过“网络协议抽象类”接口传递给“UDP协议具体类”,然后以UDP报文格式传递到对方。同理,如果配置文件使用的是“DRTE”协议,则,请求被“DRTE协议具体类”接管。这样做的目的是为了使整个CFLRPC通讯的基层网络协议可以无缝替换。具体概念参考《设计模式(Design Patterns Elements of ReusableObject-Oriented Software)》(美)Erich Gamma著)。
IO服务器模块CIOServerApi是服务器和DCS***整个上层软件的基础,使用FLRPC库实现IO服务时,只须从CFLRPCApi派生即可,其实现非常简单,不必关心网络细节,IO服务器模块它对外提供读写标签值接口,第三方可以通过该RPC接口直接读取和修改部署到任何位置的IO服务的标签实时值,进程不必关心IO服务实际物理位置、不必知道网络细节,完全是一个普通的“过程调用”。操作员的操作就是通过该接口发送到现场控制站的。
在处理RPC调用请求之前,应在启动时读取服务器任务的地址、端口等相关参数,并追加到配置文件的服务参数区,供对外接口模块读取。同时,远程的FLRPC***必须先完成以下的初始化工作:
服务器端任务使用对外接口模块,创建服务器模块的一个服务实例,根据读取的参数静态预初始化服务处理线程池模块的线程池,并创建主服务调度模块的一个实例,启动选主线程,然后启动服务器模块接收处理线程。
服务器模块的接收处理线程启动后,根据协议类型创建网络接口实现层模块实例,初始化线程池的上下文,然后启动处理主线程,该处理主线程可调用网络接口实现层模块接收RPC请求消息进行处理。同时,服务器模块需完成线程池的各种维护操作。
主服务调度模块的选主功能被自动启动后,以RPC调用形式,通过对外接口模块的定期获取当前在线的同名服务器任务的主从状态及端口号,在多个同名“服务器任务”中选择出唯一的主任务。
图3是本实施例远程过程调用方法的流程示意图。人机界面HMI通过FLRPC***发起一次成功的RPC请求时,各个模块之间的调用顺序关系。该过程包括以下步骤:
步骤一,人机界面模块HMI通过IO服务器模块CIOServerApi的读取标签实时值接口发起一次RPC调用,先将RPC调用消息发送到对外接口模块CFLRPCApi,携带服务器任务名;
步骤二,对外接口模块收到RPC调用消息后,按服务器任务名从配置文件获取该服务器任务的所有可配置参数,创建客户端模块CFLRPCClient的一个实例,然后发起RPC调用,向客户端发RPC调用请求消息;
步骤三,客户端模块收到调用请求,进行校验,通过后将要发送的数据封装到RPC消息中,分片后交网络接口实现层模块CNetUdp发送,并等待返回结果;
在创建该客户端模块的实例中,根据配置参数将所有部署的同名服务器任务的至少两个服务器地址和端口添加到地址列表,当客户端模块发现一个服务器离线时,自动切换到下一个,从而实现了双网冗余运行。如所有服务器都遍历后如还没有成功,向对外接口模块返回调用失败的结果。
过程调用的参数大小常用的为10K左右,最长可达到2M。这要求FLRPC进行拆包组包处理,由于DCS***一般的应用环境是局域网(LAN),不存在乱序问题,所以“拆包组包”实现上相对简单。发送方将报文拆分成不大于网络物理报文MTU大小的一个个报文片断,依次次编号,发送给接收方,接收方接收到这些片断后,根据编号判断是否完成所有片断的接收、是否丢失片断。同时接收方还进行CRC校验。
步骤四,网络接口实现层模块通过局域网或其它网络将RPC请求消息发送到远程的网络接口实现层模块,并由远程的服务器模块CFLRPCServer通过Receive接口接收;
步骤五,远程的服务器模块验证该RPC请求消息无误后,从服务处理线程池模块CFLRPCServerThread分配一个线程作为该RPC消息的处理线程,完成RPC消息的分片重组和应用层数据验证后启动该处理线程;
步骤六,远程的服务处理线程池模块进行事件处理,调用相应的上层服务进程IOServer进行处理,并将处理结果以RPC消息的形式经远程和请求方的网络接口实现层模块发送到客户端模块;
步骤七,客户端模块在收到服务器返回的RPC消息且验证无误后,进行分片重组和应用层数据验证,通过后经对外接口模块和IO服务器模块返回给RPC调用者。
综上所述,本发明除了具备商用DCI特点,即易于使用、屏蔽网络复杂度外,还实现了工业控制***必须的双网冗余切换功能。
此外,通过上述对外接口模块和主服务调度模块,上述实施例还实现了服务组件多个实例间的选主功能,服务器任务可以通过FLRPC知道自己的主从状态。不过在另一实施例中,也可以将该功能放在上层应用中实现。
此外,本实施例将网络接口模块分为抽象层和实现层,使得底层网络通信协议可替换,方便以后扩展和跨平台,能够缩短DCS***的新功能的开发周期,减少新功能对***可靠性、复杂度的冲击。不过该方式对本发明来说是一个可选功能。
此外,本实施例的服务实例个数可灵活配置,为了进一步提高***可靠性,IO服务器模块可以配置为三冗余。这个也是一个可选功能,是在满足基本功能的基础上的进一步的优化。

Claims (13)

1、一种分布式控制***中的远程过程调用***,其特征在于,在远程过程调用RPC的两端均包括:负责对外提供统一接口的对外接口模块、可供对外接口模块访问的客户端模块和服务器模块、可由客户端模块和服务器模块访问的网络接口模块,以及可由服务器模块访问的服务处理线程池模块,其中:
所述对外接口模块包括:RPC调用接口单元,对于新的RPC调用请求,按服务器任务名从配置文件获取配置参数,创建客户端模块的一个实例,然后发起调用并返回调用结果,后续调用请求则重用该实例;RPC服务接口单元,在使用对外接口模块的是服务器端任务时,创建服务器模块的一个服务实例,根据读取的参数初始化服务处理线程池模块的线程池,然后启动服务器模块的接收处理线程;
所述客户端模块在收到调用请求后,将要发送的数据封装到RPC消息中分片发送到服务器端,并对服务器返回的RPC消息进行分片重组,经对外接口模块返回RPC调用者;且该模块根据配置参数保存所有部署的同名服务器任务的地址和端口,当发现一个服务器离线时自动切换到下一个,在所有服务器均无法工作时向对外接口模块返回调用失败的结果;
所述服务器模块包括接收处理线程和处理主线程,接收处理线程启动后创建网络接口模块实例,并启动处理主线程;处理主线程调用网络接口模块接收RPC请求消息,从服务处理线程池模块中分配一个处理线程,完成对RPC消息的分片重组后启动该处理线程,同时完成线程池维护的各种操作;
所述网络接口模块用于实现客户端模块和服务器模块之间的通信;
所述服务处理线程池模块由服务器模块的处理主线程触发其中的处理线程进行事件处理,调用相应的上层函数进行处理,并将处理结果通过网络接口模块发送给RPC请求方,然后释放线程上下文;
上述模块都需对收到的消息的参数进行合法性检查。
2、如权利要求1所述的远程过程调用***,其特征在于,所述网络接口模块进一步包括网络接口抽象层模块和网络接口实现层模块,其中:所述网络接口抽象层模块用于将远程过程调用***必须使用的网络协议接口抽象出来,只负责定义接口,对外屏蔽具体网络协议的复杂操作,没有具体实现代码;所述网络接口实现层模块用于具体实现所述网络接口抽象层模块定义的上述接口,以无缝替换远程过程调用***的底层通信协议。
3、如权利要求2所述的远程过程调用***,其特征在于,所述网络接口抽象层模块定义的接口包括:发送接口,向指定服务器地址、端口发送数据,返回发送结果;接收接口,接收数据,返回接收结果;清除消息接口,可清除接收队列中排队等候处理的所有消息,用于清除过时的历史数据,重新启动一次会话的接口;等待发送接口,等待直到网络可以发送数据,用于发送方实现异步调用,不被阻塞;以及等待接收接口,等待直到网络可以接收数据,用于接收方实现异步调用,不被阻塞。
4、如权利要求1所述的远程过程调用***,其特征在于,在调用的两端均还包括一与对外接口模块双向关联的主服务调度模块,所述对外接口模块的RPC服务接口单元在使用对外接口模块的是服务器端任务时,还创建该主服务调度模块的一个实例,启动选主线程,该选主线程以RPC调用的形式,通过对外接口模块获取当前在线的同名服务器任务的当前主从状态,在多个同名“服务器任务”中选择出唯一的主任务。
5、如权利要求1所述的远程过程调用***,其特征在于,所述对外接口模块是从一配置文件中读取配置参数的,该配置文件定义了若干服务器任务,每个服务器任务的配置参数包括:线程池中线程个数、请求缓存区大小、应答缓存区大小、网络切换时间、默认的请求超时时间、网络协议类型、部署的服务实例个数和每个服务实例对应的两个不同网络上的服务器地址和端口号。
6、如权利要求1所述的远程过程调用***,其特征在于,所述服务器模块中还维护了一个线程上下文数组,所述服务处理线程池模块单向引用线程上下文,所述服务器模块中的接收处理线程启动后还初始化该线程上下文数组,所述服务器模块中的处理主线程和线程池中处理线程的切换完全通过该线程上下文结构实现。
7、如权利要求4所述的远程过程调用***,其特征在于,还包括一个线程控制模块,用于完成服务器模块、服务处理线程池模块和主服务调度模块中线程的初始化、启动、安全退出的处理。
8、一种基于如权利要求1所述***的远程过程调用方法,包括以下步骤:
(a)服务器端任务使用对外接口模块,创建服务器模块的一个服务实例,根据读取的参数静态预初始化服务处理线程池模块的线程池,然后启动服务器模块接收处理线程,该线程创建网络接口实现层模块实例,初始化线程池的上下文,然后启动处理主线程,同时完成线程池的各种维护操作;
(b)上层应用模块将RPC调用消息发送到对外接口模块,携带服务器任务名,对外接口模块收到后,按服务器任务名从配置文件获取该服务器任务的所有可配置参数,创建客户端模块的一个实例,然后发起RPC调用;
(c)客户端模块收到调用请求后将要发送的数据封装到RPC调用请求消息中,分片后交本端的网络接口模块经网络发送到远程的网络接口模块,并等待返回结果;同时,该模块根据配置参数保存所有部署的同名服务器任务的地址和端口,当发现一个服务器离线时自动切换到下一个,在所有服务器均无法工作时则向对外接口模块返回调用失败的结果;
(d)远程的服务器模块通过调用同侧的网络接口模块接收该RPC调用请求消息,从服务处理线程池模块分配一个处理线程,完成对该RPC消息的分片重组后启动该处理线程;
(e)所述服务处理线程池模块进行事件处理,调用相应的上层服务进程进行处理,并将处理结果以RPC消息的形式经调用两端的网络接口模块发送到客户端模块;
(f)客户端模块在收到服务器返回的RPC消息且验证无误后,进行分片重组和应用层数据验证,通过后经对外接口模块和IO服务器模块返回给RPC调用者。
9、如权利要求8的远程过程调用方法,其特征在于,所述远程过程调用还包括一主服务调度模块,所述步骤(a)中还启动该主服务调度模块的选主线程,该线程以RPC调用形式,通过对外接口模块定期获取当前在线的同名服务器任务的主从状态,在多个同名“服务器任务”中选择出唯一的主任务。
10、如权利要求9所述的远程过程调用方法,其特征在于,所述主服务调度模块的选主线程还获取当前在线的同名服务器任务的端口号,选主时按以下方式处理:A,如果本服务器任务当前状态是“主”,并且对方也是主,则比较端口号,如对方端口号小则强制本地为”从”;B,如果本服务器任务当前状态是“从”,并且对方也为从,立即置本地为主;C,如果本服务器任务当前状态是“从”,并且对方持续3秒离线,立即置本地为主。
11、如权利要求8的远程过程调用方法,其特征在于,在步骤(a)之前,先根据设备组态信息自动生成所述配置文件,该配置文件中每个服务器任务的配置参数包括:线程池中线程个数、请求缓存区大小、应答缓存区大小、网络切换时间、默认的请求超时时间、网络协议类型、部署的服务实例个数和每个服务实例对应的两个不同网络上的服务器地址和端口号;其中服务实例的个数及相关参数是在启动时读取并追加到上述配置文件中的。
12、如权利要求8的远程过程调用方法,其特征在于,在步骤(a)之中,还根据对外接口模块派生出一IO服务器模块,该模块对外提供读写标签值接口,第三方可以通过该接口直接读取和修改部署到任何位置的IO服务的标签实时值,所述步骤(b)上层应用模块是通过该IO服务器模块的读取标签实时值接口发起一次RPC调用,由该IO服务器模块将调用请求发送到所述对外接口模块的。
13、如权利要求8的远程过程调用方法,其特征在于,所述各个模块在收到消息时都对其中的参数进行合法性检查,其中客户端模块和服务器模块还对接收的数据进行差错校验,该校验包括对分片后的RPC消息数据的校验和对重组后的应用层数据的校验。
CNB2006100836292A 2006-05-31 2006-05-31 一种分布式控制***中的远程过程调用方法及*** Active CN100401707C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006100836292A CN100401707C (zh) 2006-05-31 2006-05-31 一种分布式控制***中的远程过程调用方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006100836292A CN100401707C (zh) 2006-05-31 2006-05-31 一种分布式控制***中的远程过程调用方法及***

Publications (2)

Publication Number Publication Date
CN1852209A true CN1852209A (zh) 2006-10-25
CN100401707C CN100401707C (zh) 2008-07-09

Family

ID=37133679

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100836292A Active CN100401707C (zh) 2006-05-31 2006-05-31 一种分布式控制***中的远程过程调用方法及***

Country Status (1)

Country Link
CN (1) CN100401707C (zh)

Cited By (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102215181A (zh) * 2011-06-13 2011-10-12 航天科工深圳(集团)有限公司 基于网关的海量数据处理方法
CN101706815B (zh) * 2009-12-03 2012-06-27 北京和利时***工程有限公司 数据库设备和***
CN102540911A (zh) * 2010-12-10 2012-07-04 北京北方微电子基地设备工艺研究中心有限责任公司 设备控制装置和方法
CN102577251A (zh) * 2009-08-27 2012-07-11 网能和光公司 普及计算的***与方法
CN102594891A (zh) * 2012-02-17 2012-07-18 中国科学院计算技术研究所 用于处理远程过程调用请求的方法及***
CN102608965A (zh) * 2007-09-18 2012-07-25 费舍-柔斯芒特***股份有限公司 在过程设备中升级及提供控制冗余的方法及设备
CN102760504A (zh) * 2012-07-24 2012-10-31 中广核工程有限公司 核电站全厂机组的数字控制***及非核级控制***、方法
CN101795289B (zh) * 2009-12-30 2013-01-23 华为技术有限公司 一种远程过程调用控制方法、装置和***
CN103116520A (zh) * 2012-11-02 2013-05-22 深圳键桥通讯技术股份有限公司 基于tcp/ udp的远程过程调用rpc的方法
CN103246741A (zh) * 2013-05-20 2013-08-14 成都市欧冠信息技术有限责任公司 分布式数据库***的远程快速调用方法
CN101599876B (zh) * 2008-06-06 2013-08-28 华为技术有限公司 一种通用业务接口***业务调用的方法与***
US8533729B2 (en) 2007-01-30 2013-09-10 Alibaba Group Holding Limited Distributed task system and distributed task management method
CN103347053A (zh) * 2013-06-19 2013-10-09 成都市欧冠信息技术有限责任公司 基于管道技术的远程协同处理过程调用方法
CN103576600A (zh) * 2013-10-23 2014-02-12 北京和隆优化科技股份有限公司 一种基于plc的优化站无扰安全切换方法
CN103699450A (zh) * 2013-12-20 2014-04-02 国云科技股份有限公司 一种Linux下的自适应组件间通信方法
CN104168306A (zh) * 2014-06-26 2014-11-26 湖北安标信息技术有限公司 基于分布式***的配置集成方法
CN105022622A (zh) * 2014-04-29 2015-11-04 鼎捷软件股份有限公司 适用于远程程序呼叫的逾时控制单元与远程程序呼叫方法
CN105282128A (zh) * 2014-08-29 2016-01-27 中国科学院信息工程研究所 一种基于长连接的双向调用方法及***
CN105530123A (zh) * 2015-12-07 2016-04-27 厦门雅迅网络股份有限公司 一种gps终端参数智能配置方法
CN106161537A (zh) * 2015-04-10 2016-11-23 阿里巴巴集团控股有限公司 远程过程调用的处理方法、装置、***及电子设备
CN106339229A (zh) * 2016-08-31 2017-01-18 虎扑(上海)文化传播股份有限公司 一种针对移动平台的混合开发方法及***
CN106453213A (zh) * 2015-08-11 2017-02-22 阿里巴巴集团控股有限公司 一种***间调用方法及装置
CN106598706A (zh) * 2015-10-15 2017-04-26 五八同城信息技术有限公司 一种提高服务器的稳定性的方法、装置及服务器
CN107832144A (zh) * 2017-10-20 2018-03-23 南方电网科学研究院有限责任公司 分布式并行计算方法和装置
WO2018095152A1 (en) * 2016-11-22 2018-05-31 Huawei Technologies Co., Ltd. Systems, devices and methods for managing file system replication
CN108509313A (zh) * 2018-03-23 2018-09-07 深圳乐信软件技术有限公司 一种业务监控方法、平台及存储介质
CN108733461A (zh) * 2017-04-18 2018-11-02 北京京东尚科信息技术有限公司 分布式任务调度方法和装置
CN109981674A (zh) * 2019-04-04 2019-07-05 北京信而泰科技股份有限公司 一种远程过程调用方法、装置、设备及介质
CN109992465A (zh) * 2017-12-29 2019-07-09 中国电信股份有限公司 服务追踪方法、装置和计算机可读存储介质
CN110262420A (zh) * 2019-06-18 2019-09-20 国家计算机网络与信息安全管理中心 一种分布式工业控制网络安全检测***
CN110300082A (zh) * 2018-03-21 2019-10-01 腾讯科技(深圳)有限公司 一种接口生成方法、装置及存储介质
CN110650188A (zh) * 2019-09-19 2020-01-03 深圳昆仑通态科技有限责任公司 一种hmi设备的远程控制方法、***及计算机设备
CN110830461A (zh) * 2019-10-28 2020-02-21 杭州涂鸦信息技术有限公司 基于tls长连接的跨区的rpc服务调用方法及***
CN110971637A (zh) * 2018-09-30 2020-04-07 武汉斗鱼网络科技有限公司 一种调用第三方服务接口的方法、调度器以及存储介质
CN111090534A (zh) * 2019-12-24 2020-05-01 天地伟业技术有限公司 一种嵌入式设备的并发式远程调用***
CN112565286A (zh) * 2020-12-17 2021-03-26 金蝶软件(中国)有限公司 一种基于rpc访问的任务响应方法、装置、设备和存储介质
CN113190292A (zh) * 2021-05-26 2021-07-30 的卢技术有限公司 一种远程在多台服务器上执行函数的方法和装置
CN114301896A (zh) * 2021-12-31 2022-04-08 高新兴物联科技有限公司 通信方法、通信***及计算机可读存储介质
CN114347026A (zh) * 2022-01-05 2022-04-15 中科开创(广州)智能科技发展有限公司 基于集成网络的机器人控制方法、装置和计算机设备
CN116501713A (zh) * 2023-06-26 2023-07-28 成都谐盈科技有限公司 一种分布式文件***的实现方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101969435B (zh) * 2010-09-30 2013-02-20 北京新媒传信科技有限公司 基于sip-c协议的交互方法及***

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5247676A (en) * 1989-06-29 1993-09-21 Digital Equipment Corporation RPC based computer system using transparent callback and associated method
US5778228A (en) * 1994-08-16 1998-07-07 International Business Machines Corporation Method and system for transferring remote procedure calls and responses over a network
US6237024B1 (en) * 1998-03-20 2001-05-22 Sun Microsystem, Inc. Method and apparatus for the suspension and continuation of remote processes
US20020016814A1 (en) * 2000-08-07 2002-02-07 International Business Machines Corporation Method, system, and program for invoking stored procedures and accessing stored procedure data
CN1427361A (zh) * 2001-12-17 2003-07-02 北京中视联联合软件有限公司 基于客户/服务器结构的底层设备驱动的方法

Cited By (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8533729B2 (en) 2007-01-30 2013-09-10 Alibaba Group Holding Limited Distributed task system and distributed task management method
CN102608965A (zh) * 2007-09-18 2012-07-25 费舍-柔斯芒特***股份有限公司 在过程设备中升级及提供控制冗余的方法及设备
CN101599876B (zh) * 2008-06-06 2013-08-28 华为技术有限公司 一种通用业务接口***业务调用的方法与***
CN102577251A (zh) * 2009-08-27 2012-07-11 网能和光公司 普及计算的***与方法
CN101706815B (zh) * 2009-12-03 2012-06-27 北京和利时***工程有限公司 数据库设备和***
CN101795289B (zh) * 2009-12-30 2013-01-23 华为技术有限公司 一种远程过程调用控制方法、装置和***
CN102540911A (zh) * 2010-12-10 2012-07-04 北京北方微电子基地设备工艺研究中心有限责任公司 设备控制装置和方法
CN102540911B (zh) * 2010-12-10 2014-08-27 北京北方微电子基地设备工艺研究中心有限责任公司 设备控制装置和方法
CN102215181A (zh) * 2011-06-13 2011-10-12 航天科工深圳(集团)有限公司 基于网关的海量数据处理方法
CN102594891A (zh) * 2012-02-17 2012-07-18 中国科学院计算技术研究所 用于处理远程过程调用请求的方法及***
CN102760504A (zh) * 2012-07-24 2012-10-31 中广核工程有限公司 核电站全厂机组的数字控制***及非核级控制***、方法
CN102760504B (zh) * 2012-07-24 2015-11-25 中广核工程有限公司 核电站全厂机组的数字控制***及非核级控制***、方法
CN103116520A (zh) * 2012-11-02 2013-05-22 深圳键桥通讯技术股份有限公司 基于tcp/ udp的远程过程调用rpc的方法
CN103116520B (zh) * 2012-11-02 2016-07-06 深圳键桥通讯技术股份有限公司 基于tcp/ udp的远程过程调用rpc的方法
CN103246741A (zh) * 2013-05-20 2013-08-14 成都市欧冠信息技术有限责任公司 分布式数据库***的远程快速调用方法
CN103347053A (zh) * 2013-06-19 2013-10-09 成都市欧冠信息技术有限责任公司 基于管道技术的远程协同处理过程调用方法
CN103576600A (zh) * 2013-10-23 2014-02-12 北京和隆优化科技股份有限公司 一种基于plc的优化站无扰安全切换方法
CN103699450B (zh) * 2013-12-20 2017-02-15 国云科技股份有限公司 一种Linux下的自适应组件间通信方法
CN103699450A (zh) * 2013-12-20 2014-04-02 国云科技股份有限公司 一种Linux下的自适应组件间通信方法
CN105022622A (zh) * 2014-04-29 2015-11-04 鼎捷软件股份有限公司 适用于远程程序呼叫的逾时控制单元与远程程序呼叫方法
CN104168306A (zh) * 2014-06-26 2014-11-26 湖北安标信息技术有限公司 基于分布式***的配置集成方法
CN105282128B (zh) * 2014-08-29 2018-10-16 中国科学院信息工程研究所 一种基于长连接的双向调用方法及***
CN105282128A (zh) * 2014-08-29 2016-01-27 中国科学院信息工程研究所 一种基于长连接的双向调用方法及***
CN106161537A (zh) * 2015-04-10 2016-11-23 阿里巴巴集团控股有限公司 远程过程调用的处理方法、装置、***及电子设备
CN106453213B (zh) * 2015-08-11 2019-09-17 阿里巴巴集团控股有限公司 一种***间调用方法及装置
CN106453213A (zh) * 2015-08-11 2017-02-22 阿里巴巴集团控股有限公司 一种***间调用方法及装置
CN106598706A (zh) * 2015-10-15 2017-04-26 五八同城信息技术有限公司 一种提高服务器的稳定性的方法、装置及服务器
CN106598706B (zh) * 2015-10-15 2022-11-08 五八同城信息技术有限公司 一种提高服务器的稳定性的方法、装置及服务器
CN105530123A (zh) * 2015-12-07 2016-04-27 厦门雅迅网络股份有限公司 一种gps终端参数智能配置方法
CN106339229A (zh) * 2016-08-31 2017-01-18 虎扑(上海)文化传播股份有限公司 一种针对移动平台的混合开发方法及***
WO2018095152A1 (en) * 2016-11-22 2018-05-31 Huawei Technologies Co., Ltd. Systems, devices and methods for managing file system replication
CN109792453B (zh) * 2016-11-22 2021-02-09 华为技术有限公司 管理文件***复制的***、设备和方法
CN109792453A (zh) * 2016-11-22 2019-05-21 华为技术有限公司 管理文件***复制的***、设备和方法
US10725974B2 (en) 2016-11-22 2020-07-28 Huawei Technologies Co., Ltd. Systems, devices and methods for managing file system replication
CN108733461A (zh) * 2017-04-18 2018-11-02 北京京东尚科信息技术有限公司 分布式任务调度方法和装置
CN107832144A (zh) * 2017-10-20 2018-03-23 南方电网科学研究院有限责任公司 分布式并行计算方法和装置
CN107832144B (zh) * 2017-10-20 2020-07-28 南方电网科学研究院有限责任公司 分布式并行计算方法和装置
CN109992465A (zh) * 2017-12-29 2019-07-09 中国电信股份有限公司 服务追踪方法、装置和计算机可读存储介质
CN109992465B (zh) * 2017-12-29 2023-05-16 中国电信股份有限公司 服务追踪方法、装置和计算机可读存储介质
CN110300082A (zh) * 2018-03-21 2019-10-01 腾讯科技(深圳)有限公司 一种接口生成方法、装置及存储介质
CN110300082B (zh) * 2018-03-21 2022-03-08 腾讯科技(深圳)有限公司 一种接口生成方法、装置及存储介质
CN108509313A (zh) * 2018-03-23 2018-09-07 深圳乐信软件技术有限公司 一种业务监控方法、平台及存储介质
CN108509313B (zh) * 2018-03-23 2021-03-19 深圳乐信软件技术有限公司 一种业务监控方法、平台及存储介质
CN110971637A (zh) * 2018-09-30 2020-04-07 武汉斗鱼网络科技有限公司 一种调用第三方服务接口的方法、调度器以及存储介质
CN110971637B (zh) * 2018-09-30 2022-02-08 武汉斗鱼网络科技有限公司 一种调用第三方服务接口的方法、调度器以及存储介质
CN109981674B (zh) * 2019-04-04 2021-08-17 北京信而泰科技股份有限公司 一种远程过程调用方法、装置、设备及介质
CN109981674A (zh) * 2019-04-04 2019-07-05 北京信而泰科技股份有限公司 一种远程过程调用方法、装置、设备及介质
CN110262420A (zh) * 2019-06-18 2019-09-20 国家计算机网络与信息安全管理中心 一种分布式工业控制网络安全检测***
CN110650188B (zh) * 2019-09-19 2022-09-23 深圳昆仑通态科技有限责任公司 一种hmi设备的远程控制方法、***及计算机设备
CN110650188A (zh) * 2019-09-19 2020-01-03 深圳昆仑通态科技有限责任公司 一种hmi设备的远程控制方法、***及计算机设备
CN110830461A (zh) * 2019-10-28 2020-02-21 杭州涂鸦信息技术有限公司 基于tls长连接的跨区的rpc服务调用方法及***
CN111090534A (zh) * 2019-12-24 2020-05-01 天地伟业技术有限公司 一种嵌入式设备的并发式远程调用***
CN111090534B (zh) * 2019-12-24 2023-09-19 天地伟业技术有限公司 一种嵌入式设备的并发式远程调用***
CN112565286A (zh) * 2020-12-17 2021-03-26 金蝶软件(中国)有限公司 一种基于rpc访问的任务响应方法、装置、设备和存储介质
CN113190292A (zh) * 2021-05-26 2021-07-30 的卢技术有限公司 一种远程在多台服务器上执行函数的方法和装置
CN113190292B (zh) * 2021-05-26 2023-09-26 的卢技术有限公司 一种远程在多台服务器上执行函数的方法和装置
CN114301896A (zh) * 2021-12-31 2022-04-08 高新兴物联科技有限公司 通信方法、通信***及计算机可读存储介质
CN114347026A (zh) * 2022-01-05 2022-04-15 中科开创(广州)智能科技发展有限公司 基于集成网络的机器人控制方法、装置和计算机设备
CN114347026B (zh) * 2022-01-05 2024-01-30 中科开创(广州)智能科技发展有限公司 基于集成网络的机器人控制方法、装置和计算机设备
CN116501713A (zh) * 2023-06-26 2023-07-28 成都谐盈科技有限公司 一种分布式文件***的实现方法
CN116501713B (zh) * 2023-06-26 2023-09-22 成都谐盈科技有限公司 一种分布式文件***的实现方法

Also Published As

Publication number Publication date
CN100401707C (zh) 2008-07-09

Similar Documents

Publication Publication Date Title
CN1852209A (zh) 一种分布式控制***中的远程过程调用方法及***
CN1142491C (zh) 测试服务器性能的框架***及方法
CN101605056B (zh) 一种j2ee服务器监控装置及采用该装置的监控方法
CN104636189B (zh) 基于Xen的虚拟机部署***及方法
CN102196039B (zh) 基于云计算的多机器人***及其实现方法
CN1777156A (zh) 用于下一代网络、可动态扩展、开放接口技术的网关
CN1791037A (zh) 一种实现Web服务自动化测试的方法
CN104572290A (zh) 消息处理线程的控制方法及装置
CN1567301A (zh) 访问数据库的方法及装置
CN102033848A (zh) 基于soa的三维设计***集成方法及***
CN104579792A (zh) 多适配方式实现多种类型虚拟资源集中管理架构及方法
CN1787000A (zh) 批量作业集中管理和调度的***及方法
CN104657150A (zh) 一种集群环境下的自动化运维方法
CN105912389A (zh) 基于数据虚拟化实现混合云环境下的虚拟机迁移***
CN1317640C (zh) 实时操作***环境下多任务应用软件模块的管理方法
CN107992392A (zh) 一种用于云渲染***的自动监控修复***和方法
CN1353372A (zh) 作业管理***和作业管理方法
CN103077034A (zh) 混合虚拟化平台java应用迁移方法与***
CN104967532B (zh) Toc技术运维***及应用方法
CN1842025A (zh) 对象补救***及方法
CN1929463B (zh) 对象请求代理装置及其处理消息的方法
CN106412013A (zh) 一种基于Linux的光伏并网Web监测***
CN111427690B (zh) 分散处理单元并行计算方法
CN102799474A (zh) 一种基于可靠性驱动的云资源容错调度方法
CN1512376A (zh) 大型机群***的集中控制方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20211129

Address after: Room 1613, 6 / F, building 1, yard 2, Desheng Middle Road, Beijing Economic and Technological Development Zone, Daxing District, Beijing 100176

Patentee after: Beijing Helishi Control Technology Co.,Ltd.

Address before: 100096, No. 10, building materials Road, Haidian District, Beijing, Xisanqi

Patentee before: BEIJING HOLLYSYS Co.,Ltd.