CN103729292A - 一种跨主机、跨平台的远程命令调用方法和系统 - Google Patents

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

Info

Publication number
CN103729292A
CN103729292A CN201310743303.8A CN201310743303A CN103729292A CN 103729292 A CN103729292 A CN 103729292A CN 201310743303 A CN201310743303 A CN 201310743303A CN 103729292 A CN103729292 A CN 103729292A
Authority
CN
China
Prior art keywords
data
result
client
encapsulation
cross
Prior art date
Application number
CN201310743303.8A
Other languages
English (en)
Inventor
刘毅
梁雄伟
彭涛
潘道俊
马小峰
Original Assignee
瑞达信息安全产业股份有限公司
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 瑞达信息安全产业股份有限公司 filed Critical 瑞达信息安全产业股份有限公司
Priority to CN201310743303.8A priority Critical patent/CN103729292A/zh
Publication of CN103729292A publication Critical patent/CN103729292A/zh

Links

Abstract

本发明涉及计算机信息交互技术领域,特别涉及一种跨主机、跨平台的远程命令调用方法和系统。方法包括:客户端封装指令和参数形成封装数据,并将封装数据发送给服务端进行命令调用;服务端接收到封装数据后,对封装数据进行解析,执行调用。系统包括客户端和服务端,客户端包括:封装单元、命令调用单元、调用结果处理单元和资源判断单元;所述服务端包括:接收单元、解析单元、处理单元和结果返回单元。其中,指令表明服务端要执行调用的服务程序;参数是需要处理的数据。本发明使得目标机器和本地机器在不涉及界面操作和应用层协议的情况下进行交互操作,可选择本地机器或目标机器处理数据,统一调度跨主机、跨平台间的系统资源。

Description

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

技术领域

[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] 不难发现,本实施方式可以选择由本地机器还是目标机器来处理数据,进而统一调度跨主机、跨平台间的系统资源。本实施方式还可以选择由本地机器还是目标机器来处理数据,进而统一调度跨主机、跨平台间的系统资源。

Claims (10)

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所述的跨主机、跨平台的远程命令调用系统,其特征在于,所述客户端还包括资源判断单元,用于客户端应用程序在发起远程命令调用前对客户端资源和服务端资源进行判断,确定由客户端直接处理数据或者发起远程命令调用由服务端来处理数据。
CN201310743303.8A 2013-12-30 2013-12-30 一种跨主机、跨平台的远程命令调用方法和系统 CN103729292A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310743303.8A CN103729292A (zh) 2013-12-30 2013-12-30 一种跨主机、跨平台的远程命令调用方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310743303.8A CN103729292A (zh) 2013-12-30 2013-12-30 一种跨主机、跨平台的远程命令调用方法和系统

Publications (1)

Publication Number Publication Date
CN103729292A true CN103729292A (zh) 2014-04-16

Family

ID=50453373

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310743303.8A CN103729292A (zh) 2013-12-30 2013-12-30 一种跨主机、跨平台的远程命令调用方法和系统

Country Status (1)

Country Link
CN (1) CN103729292A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105763619A (zh) * 2016-03-31 2016-07-13 广州华多网络科技有限公司 客户端与服务端进行通讯的方法及装置
CN106161409A (zh) * 2015-04-23 2016-11-23 珀金埃尔默企业管理(上海)有限公司 一种包括本地组件的代理框架服务系统及方法
CN106357713A (zh) * 2015-07-16 2017-01-25 北京京东尚科信息技术有限公司 实现远程过程调用的方法和客户端装置以及服务器装置
CN107689868A (zh) * 2017-09-12 2018-02-13 北京握奇智能科技有限公司 客户端应用与可信应用的通信方法、装置以及终端

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101419629A (zh) * 2008-12-11 2009-04-29 北京中星微电子有限公司 远程调用方法、芯片、计算设备、远程调用装置
CN103246741A (zh) * 2013-05-20 2013-08-14 成都市欧冠信息技术有限责任公司 分布式数据库系统的远程快速调用方法
CN103246546A (zh) * 2013-05-07 2013-08-14 山东大学 基于云技术的开放式电力系统数值仿真系统及其仿真方法
CN103354542A (zh) * 2012-04-13 2013-10-16 微软公司 使web客户端能提供web服务
CN203894744U (zh) * 2013-12-30 2014-10-22 瑞达信息安全产业股份有限公司 跨主机、跨平台的远程命令调用系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101419629A (zh) * 2008-12-11 2009-04-29 北京中星微电子有限公司 远程调用方法、芯片、计算设备、远程调用装置
CN103354542A (zh) * 2012-04-13 2013-10-16 微软公司 使web客户端能提供web服务
CN103246546A (zh) * 2013-05-07 2013-08-14 山东大学 基于云技术的开放式电力系统数值仿真系统及其仿真方法
CN103246741A (zh) * 2013-05-20 2013-08-14 成都市欧冠信息技术有限责任公司 分布式数据库系统的远程快速调用方法
CN203894744U (zh) * 2013-12-30 2014-10-22 瑞达信息安全产业股份有限公司 跨主机、跨平台的远程命令调用系统

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106161409A (zh) * 2015-04-23 2016-11-23 珀金埃尔默企业管理(上海)有限公司 一种包括本地组件的代理框架服务系统及方法
CN106357713A (zh) * 2015-07-16 2017-01-25 北京京东尚科信息技术有限公司 实现远程过程调用的方法和客户端装置以及服务器装置
CN106357713B (zh) * 2015-07-16 2019-12-31 北京京东尚科信息技术有限公司 实现远程过程调用的方法和客户端装置以及服务器装置
CN105763619A (zh) * 2016-03-31 2016-07-13 广州华多网络科技有限公司 客户端与服务端进行通讯的方法及装置
CN105763619B (zh) * 2016-03-31 2019-07-05 广州欢聚时代信息科技有限公司 客户端与服务端进行通讯的方法及装置
CN107689868A (zh) * 2017-09-12 2018-02-13 北京握奇智能科技有限公司 客户端应用与可信应用的通信方法、装置以及终端

Similar Documents

Publication Publication Date Title
CA2935505C (en) Method and apparatus for scheduling concurrent task
US10621276B2 (en) User interface virtualization for web applications
CN104484273B (zh) 应用程序的测试方法、设备及系统
CN103312850B (zh) 一种手机自动化测试系统及工作方法
US8826240B1 (en) Application validation through object level hierarchy analysis
US7293256B2 (en) Debugger causality system and methods
DE69837130T2 (de) Vorrichtung und Verfahren zum Simulieren mehrerer Knoten auf einer einzelnen Maschine
US6003094A (en) Generic Java Gateway for connecting a client to a transaction processing system
US6011920A (en) Method and apparatus for debugging applications on a personality neutral debugger
CN102185901B (zh) 一种客户端报文转换方法
US20140229951A1 (en) Method and System for Starting Application Program in Linux Container
US20020004934A1 (en) Dynamic mapping of component interfaces
EP0636985A1 (en) Process monitoring in a multiprocessing server
EP1369790A2 (de) Verfahren zur dynamischen Generierung strukturierter Dokumente
US20030055862A1 (en) Methods, systems, and articles of manufacture for managing systems using operation objects
CA2915619A1 (en) Method and apparatus for customized software development kit (sdk) generation
US9146779B2 (en) System and method for migrating an application
US7353498B2 (en) Multi-process debugger
US20090313391A1 (en) Computer system, device sharing method, and device sharing program
US7200839B2 (en) Debugging transactions across multiple processors
US20020103902A1 (en) Methods and apparatus for exchanging information between browser pages
US8855961B2 (en) Binary definition files
CN107886952B (zh) 一种语音控制智能家电的方法、装置、系统和电子设备
EP1019853A1 (en) A method for extending the hypertext markup language (html) to support enterprise application data binding
US20120102460A1 (en) Collaborative Software Debugging In A Distributed System With Client-Specific Dynamic Breakpoints

Legal Events

Date Code Title Description
PB01 Publication
C06 Publication
SE01 Entry into force of request for substantive examination
C10 Entry into substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140416

WD01 Invention patent application deemed withdrawn after publication