一种跨主机、跨平台的远程命令调用方法和系统的制作方法

文档序号:6526509阅读:148来源:国知局
一种跨主机、跨平台的远程命令调用方法和系统的制作方法
【专利摘要】本发明涉及计算机信息交互【技术领域】,特别涉及一种跨主机、跨平台的远程命令调用方法和系统。方法包括:客户端封装指令和参数形成封装数据,并将封装数据发送给服务端进行命令调用;服务端接收到封装数据后,对封装数据进行解析,执行调用。系统包括客户端和服务端,客户端包括:封装单元、命令调用单元、调用结果处理单元和资源判断单元;所述服务端包括:接收单元、解析单元、处理单元和结果返回单元。其中,指令表明服务端要执行调用的服务程序;参数是需要处理的数据。本发明使得目标机器和本地机器在不涉及界面操作和应用层协议的情况下进行交互操作,可选择本地机器或目标机器处理数据,统一调度跨主机、跨平台间的系统资源。
【专利说明】一种跨主机、跨平台的远程命令调用方法和系统
【技术领域】
[0001]本发明涉及计算机信息交互【技术领域】,特别是涉及一种跨主机、跨平台的远程命令调用方法和系统。
【背景技术】
[0002]随着网络的高速发展,原本由Windows系统一统天下的格局,现在开始有所改变,特别是Linux系统的蓬勃发展,给日常应用提供了更多的选择性。另外,出于安全性和保密性的考虑,有些公司需要将公司内部机器和外部网络完全隔离,而内部机器一般是通用的windows系统的主机,与外部网络连接的一般是安全性高的Linux系统主机,通过Windows系统主机和Linux系统主机协同工作与外部网络交互。因此,跨平台、跨主机间的交互操作显得尤为必要。
[0003]以Windows系统为例,目前跨操作系统之间的互操作传统软件主要有两类:一类是基于控制台的仿真,即在Windows系统环境中,仿真出一个远程控制台,作为一个远程终端,通过网络登录到远程Linux系统;另一种是基于X Window的仿真,它是在本地运行一个X Server,在其上运行远程Linux系统主机上的X应用。
[0004]传统软件在本地机器上仿真出目标机器,通过本地机器调用目标机器上的服务,实现在本地机器上对目标机器的交互操作,但传统软件并不能满足我们工作中的需求。首先,传统软件是基于命令调用、界面操作、应用层协议综合实现的,实现过程非常复杂;其次,传统软件主要面向跨平台操作的软件使用人员,而非软件开发人员,对于软件开发人员,经常需要在软件实现的基础上做二次开发,定制自己的应用程序和服务程序,目前的传统软件无法满足这一需求;再次,本地机器和目标机器仍是两个相互独立运行的系统,二者的各自系统资源不能统一调度。

【发明内容】

[0005]本发明所要解决的技术问题是提供一种跨主机、跨平台的远程命令调用方法和系统,使得目标机器和本地机器在不涉及界面操作和应用层协议的情况下进行交互操作,另夕卜,本发明使得软件开发人员可以很方便地做二次开发,定制自己的应用程序和服务程序;再次,在本发明的基础上,可以选择由本地机器还是目标机器来处理数据,进而统一调度跨主机、跨平台间的系统资源。
[0006]本发明解决其技术问题所采用的技术方案是:一种跨主机、跨平台的远程命令调用方法,以本地机器为客户端,目标机器为服务端,具体包括以下步骤:
(1)客户端封装指令和参数形成封装数据,客户端应用程序将封装数据发送给服务端发起远程命令调用;其中,指令表明服务端要执行调用的服务程序,参数是需要处理的数据;
(2)服务端接收到封装数据后,对封装数据进行解析,获取相关指令和参数,并根据指令调用对应服务程序,服务程序处理参数得到处理结果,服务端把最终的处理结果封装成调用结果返回给客户端;
(3)客户端接收服务端返回的调用结果并处理。
[0007]优选的,所述步骤(I)中的封装数据和步骤(2)中的调用结果均为序列化的字符流,封装时通过插入类型分隔符区分各类型字段。
[0008]优选的,所述步骤(2 )中的调用结果分为两种,若服务程序处理参数过程中失败在调用结果中记录错误信息;若服务程序处理参数执行成功则在调用结果中记录执行成功信肩、O
[0009]优选的,所述步骤(3)中客户端处理调用结果包括:解析调用结果信息并判断调用是否正常执行。
[0010]优选的,所述步骤(I)中客户端应用程序在发起远程命令调用前还会对客户端资源和服务端资源进行判断,确定由客户端直接处理数据或者发起远程命令调用由服务端来处理数据。
[0011]本发明解决其技术问题所采用的技术方案是:还提供一种跨主机、跨平台的远程命令调用系统,以本地机器为客户端,目标机器为服务端,所述客户端包括:封装单元,用于封装指令和参数形成封装数据;命令调用单元,用于应用程序将封装数据发送给服务端发起远程命令调用;其中,指令表明服务端要执行调用的服务程序,参数是需要处理的数据;所述服务端包括:接收单元,用于接收封装数据;解析单元,用于对封装数据进行解析,获取相关指令和参数;处理单元,用于根据指令调用对应服务程序,服务程序处理参数得到处理结果;结果返回单元,用于把最终的处理结果封装成调用结果返回给客户端;客户端还包括调用结果处理单元,用于接收服务端返回的调用结果并处理。
[0012]优选的,所述封装单元封装成的封装数据和结果返回单元封装成的的调用结果均为序列化的字符流,内含封装时插入的用于区分各类型字段的类型分隔符。
[0013]优选的,所述的调用结果分为两种,若服务程序处理参数过程中失败则在调用结果中记录错误信息;若服务程序处理参数执行成功则在调用结果中记录执行成功信息。
[0014]优选的,所述调用结果处理单元用于解析调用结果信息并判断调用是否正常执行。
[0015]优选的,所述客户端还包括资源判断单元,用于客户端应用程序在发起远程命令调用前对客户端资源和服务端资源进行判断,确定由客户端直接处理数据或者发起远程命令调用由服务端来处理数据。
[0016]本发明有益效果主要有:
由于采用了上述的技术方案,本发明与现有技术相比,具有以下的优点和积极效果:相比现有的传统的远程调用实现方式,本发明不涉及界面操作和应用层协议,仅提供了一种简洁的远程命令调用实现方法,但可以配合其他图形协作工具实现跨平台的界面交互操作。相比于现有的传统软件主要面向跨平台操作的软件使用人员,而非软件开发人员,本发明是面向软件开发人员,软件开发人员可以很方便地做二次开发,定制自己的应用程序和服务程序。不仅如此,在本发明的基础上,可以选择由本地机器还是目标机器来处理数据,进而统一调度跨主机、跨平台间的系统资源。
【专利附图】

【附图说明】[0017]图1是本发明第一实施方式的结构流程图;
图2是本发明第一实施方式中客户端执行步骤流程图;
图3是本发明第一实施方式中服务端执行步骤流程图;
图4是本发明第二实施方式的结构方框图。
【具体实施方式】
[0018]下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
[0019]本发明的第一实施方式涉及一种跨主机、跨平台的远程命令调用方法,以本地机器为客户端,目标机器为服务端,具体包括以下步骤:
(1)客户端封装指令和参数形成封装数据,客户端应用程序将封装数据发送给服务端发起远程命令调用;其中,指令表明服务端要执行调用的服务程序,参数是需要处理的数据;
(2)服务端接收到封装数据后,对封装数据进行解析,获取相关指令和参数,并根据指令调用对应服务程序,服务程序处理参数得到处理结果,服务端把最终的处理结果封装成调用结果返回给客户端;
(3)客户端接收服务端返回的调用结果并处理。
[0020]优选的,所述步骤(I)中客户端应用程序在发起远程命令调用前还会对客户端资源和服务端资源进行判断,确定由客户端直接处理数据或者发起远程命令调用由服务端来处理数据。
[0021]如图1所示,首先客户端封装指令和参数形成封装数据,其中封装数据为客户端和服务端约定好的一个序列化字符流,通过插入类型分隔符区分各类型字段,例如,客户端需要搜索标签时可形成封装数据“search ;tag”,其中,search为搜索服务程序,tag为参数标签,“;”为类型分隔符。封装完成后,客户端请求和服务端连接,建立连接后则将封装数据发送给服务端进行命令调用。服务端保持监听状态,当服务端监听到客户端的连接请求,建立连接,接收封装数据,并对封装数据进行解析,通过解析得到指令和参数,例如,将上述的封装数据“ search ;tag”解析后,可得到其指令为搜索指令,参数为标签,得到指令后,月艮务端则根据得到的搜索指令调取相应的搜索服务程序,并由搜索程序对标签进行搜索,搜索完成后封装搜索结果并把搜索结果封装成调用结果返回给客户端。此处调用结果分为两种:第一种,服务端处理过程中失败则给出错误信息,例如,服务端解析出搜索指令后在调取相应的搜索服务程序时发现该服务程序被系统停用,无法使用,则返回“error”调用结果数据;第二种,服务程序处理参数后执行成功则给出调用成功“success”调用结果信息。客户端接收到服务端返回的调用结果后会对其进行处理,首先解析调用结果信息,并判断调用是否正常执行,例如,如果收到字符流“error”,则读取后续的错误信息,若收到字符流为“success”,则表明调用成功,本次调用结束。
[0022]不难发现,本发明采用封装指令和参数的方式实现远程命令的调用,相比于传统的远程调用实现方式,不涉及界面操作和应用层协议,仅通过简洁的远程命令即可实现。[0023]值得一提的是,所述步骤(I)中客户端应用程序在发起远程命令调用前还可以选择由服务端还是客户端来处理数据。例如会对客户端资源和服务端资源进行判断,当服务端的系统资源小于阈值时,由客户端自身直接处理数据的指令;当服务端的系统资源大于或等于阈值时,则由服务端的服务程序处理数据。此处的阈值可以由用户自行设置,例如设置为65%。具体地说,当服务端解析封装数据后,服务端判断服务端的系统资源,当服务端的系统资源小于65%时,则表示服务端的系统资源有限,此时由客户端直接处理数据的指令,具体可通过仿真的方式完成搜索;当服务端的系统资源大于或等于65%时,则表示表示服务端的系统资源空闲,此时服务端便会对数据进行处理。
[0024]由此可见,本实施方式可以选择由本地机器还是目标机器来处理数据,进而统一调度跨主机、跨平台间的系统资源。
[0025]如图2所示,本实施方式中客户端的处理流程如下:
步骤201,客户端封装指令和参数,指令表明服务端要执行调用的服务程序,参数表明要处理的数据;
步骤202,客户端请求和服务端的连接,然后发送数据到服务端,发起命令调用;
步骤203,客户端读取从服务端接收数据,解析数据得到调用执行的结果。
[0026]如图3所示,本实施方式中服务端的处理流程如下:
步骤301,服务端监听到客户端的连接请求,建立连接;
步骤302,服务端解析客户端发送过来的数据,得到指令和参数;
步骤303,服务端选择服务程序执行处理参数;
步骤304,服务端封装调用结果;
步骤305,服务端将封装后的调用结果发送到客户端。
[0027]通过上述客户端和服务端的处理流程可知,本实施方式中的客户端只能调用到服务端以服务程序形式提供的服务,服务端提供的服务必须以服务程序的形式才能被客户端调用到。由此可见,本发明是面向软件开发人员,软件开发人员可以很方便地做二次开发,定制自己的应用程序和服务程序,提高本发明的灵活性。
[0028]本发明的第二实施方式涉及一种跨主机、跨平台的远程命令调用系统,如图4所示,以本地机器为客户端,目标机器为服务端,所述客户端包括:封装单元,用于封装指令和参数形成封装数据;命令调用单元,用于应用程序将封装数据发送给服务端发起远程命令调用;其中,指令表明服务端要执行调用的服务程序,参数是需要处理的数据;所述服务端包括:接收单元,用于接收封装数据;解析单元,用于对封装数据进行解析,获取相关指令和参数;处理单元,用于根据指令调用对应服务程序,服务程序处理参数得到处理结果;结果返回单元,用于把最终的处理结果封装成调用结果返回给客户端;客户端还包括调用结果处理单元,用于接收服务端返回的调用结果并处理。其中,封装单元封装成的封装数据和结果返回单元封装成的的调用结果均为序列化的字符流,内含封装时插入的用于区分各类型字段的类型分隔符。
[0029]需要说明的是,调用结果分为两种,若服务程序处理参数过程中失败则在调用结果中记录错误信息;若服务程序处理参数执行成功则在调用结果中记录执行成功信息。。
[0030]所述调用结果处理单元用于解析调用结果信息并判断调用是否正常执行。
[0031]所述客户端还包括:资源判断单元,用于客户端应用程序在发起远程命令调用前对客户端资源和服务端资源进行判断,确定由客户端直接处理数据或者发起远程命令调用由服务端来处理数据。
[0032]不难发现,本实施方式可以选择由本地机器还是目标机器来处理数据,进而统一调度跨主机、跨平台间的系统资源。本实施方式还可以选择由本地机器还是目标机器来处理数据,进而统一调度跨主机、跨平台间的系统资源。
【权利要求】
1.一种跨主机、跨平台的远程命令调用方法,以本地机器为客户端,目标机器为服务端,其特征在于,具体包括以下步骤: (1)客户端封装指令和参数形成封装数据,客户端应用程序将封装数据发送给服务端发起远程命令调用;其中,指令表明服务端要执行调用的服务程序,参数是需要处理的数据; (2)服务端接收到封装数据后,对封装数据进行解析,获取相关指令和参数,并根据指令调用对应服务程序,服务程序处理参数得到处理结果,服务端把最终的处理结果封装成调用结果返回给客户端; (3)客户端接收服务端返回的调用结果并处理。
2.根据权利要求1所述的跨主机、跨平台的远程命令调用方法,其特征在于,所述步骤(1)中的封装数据和步骤(2)中的调用结果均为序列化的字符流,封装时通过插入类型分隔符区分各类型字段。
3.根据权利要求1所述的跨主机、跨平台的远程命令调用方法,其特征在于,所述步骤(2)中的调用结果分为两种,若服务程序处理参数过程中失败则在调用结果中记录错误信息;若服务程序处理参数执行成功则在调用结果中记录执行成功信息。
4.根据权利要求1所述的跨主机、跨平台的远程命令调用方法,其特征在于,所述步骤(3)中客户端处理调用结果包括:解析调用结果信息并判断调用是否正常执行。
5.根据权利要求1所述的跨主机、跨平台的远程命令调用方法,其特征在于,所述步骤(O中客户端应用程序在发起远程命令调用前还会对客户端资源和服务端资源进行判断,确定由客户端直接处理数据或者发起远程命令调用由服务端来处理数据。
6.一种跨主机、跨平台的远程命令调用系统,以本地机器为客户端,目标机器为服务端,其特征在于,所述客户端包括:封装单元,用于封装指令和参数形成封装数据;命令调用单元,用于应用程序将封装数据发送给服务端发起远程命令调用;其中,指令表明服务端要执行调用的服务程序,参数是需要处理的数据;所述服务端包括:接收单元,用于接收封装数据;解析单元,用于对封装数据进行解析,获取相关指令和参数;处理单元,用于根据指令调用对应服务程序,服务程序处理参数得到处理结果;结果返回单元,用于把最终的处理结果封装成调用结果返回给客户端;客户端还包括调用结果处理单元,用于接收服务端返回的调用结果并处理。
7.根据权利要求6所述的跨主机、跨平台的远程命令调用系统,其特征在于,所述封装单元封装成的封装数据和结果返回单元封装成的的调用结果均为序列化的字符流,内含封装时插入的用于区分各类型字段的类型分隔符。
8.根据权利要求6所述的跨主机、跨平台的远程命令调用系统,其特征在于,所述的调用结果分为两种,若服务程序处理参数过程中失败则在调用结果中记录错误信息;若服务程序处理参数执行成功则在调用结果中记录执行成功信息。
9.根据权利要求6所述的跨主机、跨平台的远程命令调用系统,其特征在于,所述调用结果处理单元用于解析调用结果信息并判断调用是否正常执行。
10.根据权利要求6所述的跨主机、跨平台的远程命令调用系统,其特征在于,所述客户端还包括资源判断单元,用于客户端应用程序在发起远程命令调用前对客户端资源和服务端资源进行判断,确定由客户端直接处理数据或者发起远程命令调用由服务端来处理数据。
【文档编号】G06F11/36GK103729292SQ201310743303
【公开日】2014年4月16日 申请日期:2013年12月30日 优先权日:2013年12月30日
【发明者】刘毅, 梁雄伟, 彭涛, 潘道俊, 马小峰 申请人:瑞达信息安全产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1