CN112256453B - 一种任意软件进程之间的通信方法 - Google Patents
一种任意软件进程之间的通信方法 Download PDFInfo
- Publication number
- CN112256453B CN112256453B CN202011170462.XA CN202011170462A CN112256453B CN 112256453 B CN112256453 B CN 112256453B CN 202011170462 A CN202011170462 A CN 202011170462A CN 112256453 B CN112256453 B CN 112256453B
- Authority
- CN
- China
- Prior art keywords
- communication
- software
- software process
- function
- receiver
- 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
- 230000008569 process Effects 0.000 title claims abstract description 157
- 238000004891 communication Methods 0.000 title claims abstract description 155
- 238000000034 method Methods 0.000 title claims abstract description 64
- 230000006870 function Effects 0.000 claims description 40
- 239000003999 initiator Substances 0.000 claims 1
- 230000000977 initiatory effect Effects 0.000 claims 1
- 230000008901 benefit Effects 0.000 description 3
- 230000000875 corresponding effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种任意软件进程之间的通信方法,包括由通信发起方软件进程确定另外一端的软件进程应具有的属性;确定通信接收方软件进程的地址;在通信接收方软件进程所在计算机安装一个用于软件进程之间通信、查询的网络守候进程;从通信接收方软件进程地址所在计算机的通信信息守候进程查询通信接收方软件进程的通信信息;确定查找到的软件是否正在运行,如果没有运行能否远端启动;如果能够远端启动,满足启动条件,远端启动通信接收方软件进程;查询启动后通信接收方软件进程信息;根据查询到的通信信息和通信接收方软件进程建立通信网络连接。本发明可实现陌生软件之间进行通信;在网络中的陌生软件可以实现通信,即陌生软件之间可协同工作。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种任意软件进程之间的通信方法。
背景技术
现有计算机软件进程之间通信的方法有多种:共享内存、网络、信号、消息队列、管道等。但是这些软件进程之间通信的方法都有各自的缺点。共享内存,只能是在同一个计算机上才能实现;信号,只能在同一个计算机上通信,而且通信的数据量极少;已经有的网络通信,必须是两个软件都经过特殊定制编程才能实现;消息队列和管道也有各自的缺点。另外这些通信方法有一个共同的缺点,通信双方必须经过特定的编程才能实现通信,陌生软件进程之间无法实现通信。
发明内容
为解决上述技术问题,本发明的目的是提供一种任意软件进程之间的通信方法。
本发明的目的通过以下的技术方案来实现:
一种任意软件进程之间的通信方法,包括
A通过通信发起方软件进程确定另外一端的软件进程应具有的属性;
B确定通信接收方软件进程的地址;
C在通信接收方软件进程所在计算机事先安装一个用于软件进程之间通信、查询的网络守候进程;
D从通信接收方软件进程地址所在计算机的通信信息守候进程查询通信接收方软件进程的通信信息;
E确定查找到的软件是否正在运行,如果没有运行能否远端启动;如果能够远端启动,满足启动条件,远端启动通信接收方软件进程;然后查询启动后通信接收方软件进程信息;
F根据查询到的通信信息和通信接收方软件进程建立通信网络连接。
与现有技术相比,本发明的一个或多个实施例可以具有如下优点:
可以实现陌生软件之间进行通信;在网络中的陌生软件可以实现通信,意味了陌生软件之间可以协同工作;如果网络中存在大批可以远程使用的软件,就可以实现按照需求按次购买软件功能;实现网络软件之间的协同工作,就可以克服过去各种软件各自为战,数据无法共享而导致效率低下的问题。
附图说明
图1是任意软件进程之间的通信方法流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合实施例及附图对本发明作进一步详细的描述。
如图1所示,为任意软件进程之间的通信方法流程,包括:
步骤10通过通信发起方软件进程确定另外一端的软件进程应具有的属性;
所述属性包括功能列表、功能从远端使用方法、软件种类、软件名称、版本号。至少确定软件种类、或者软件名称、或者软件功能中的一种。确定的方法有多种多样,根据实际情况由软件开发者实现。比如在配置文件中设置、用程序确定、存在于数据库中、在命令行中确定、在GUI界面中输入。
通信发起方软件进程以下简称:源软件进程;
通信接收方软件进程以下简称:目的软件进程;
通信发起方软件以下简称:源软件;
通信接收方软件以下简称:目的软件。
步骤20确定通信接收方软件进程的地址;
目的软件进程地址是一个域名、主机名或者IP地址。确定的方法有多种多样。比如从网络中(互联网或者局域网)的某种服务中获取、在配置文件中设置、用代码确定、存在于数据库中、命令行中给定、GUI界面中给定。
步骤30在通信接收方软件进程所在计算机事先安装一个用于软件进程之间通信、查询的网络守候进程;
用于软件进程通信、查询的网络守候进程以下称为:通信信息守候进程;所有通信信息守候进程守候的本机网络端口号为在《软件进程间通信协议》做具体规定。
通信信息守候进程用于查询本机可实现软件进程通信信息的列表。可以查询的信息中至少包含:本机可以实现任意软件进程间通信的软件列表,每个软件的功能列表,每个功能从远端使用的方法,每个功能从远端使用需要具备的条件,每个功能从远端使用需要的权限,双方身份验证的方法,每个功能使用过程中需要的数据,每个功能使用过程中输出数据,软件种类,软件名称,软件版本号,软件遵循的《软件进程间通信协议》的版本号,软件当前是否正真运行,软件当前运行进程网络守候端口号,是否可以通过通信信息守候进程和软件进程通信,是否可以按照远端要求启动软件,远端启动软件的方法。
步骤40从通信接收方软件进程地址所在计算机的通信信息守候进程查询通信接收方软件进程的通信信息;
首先向目的软件进程地址所在计算机发起一个网络连接(端口号是《软件进程间通信协议》有具体规定的。然后使用在(一)中确定的软件种类、软件名称、功能等查询软件进程通信信息。
步骤50确定查找到的软件是否正在运行,如果没有运行能否远端启动;如果能够远端启动,满足启动条件,远端启动通信接收方软件进程;然后查询启动后通信接收方软件进程信息;
步骤60根据查询到的通信信息和通信接收方软件进程建立通信网络连接。
第一个建立的通信网络连接以下称为:主通信网络连接;
主通信网络连接是目的软件进程作为服务器端接收来自源软件进程的请求。凡是源软件进程向目的软件进程发出请求,都会走主通信网络连接。目的软件进程会时刻关注从主通信网络连接发来的请求,并执行相应动作。
上述通信方法还包括:根据查询到的通信接收方软件进程的通信信息确定是否需要验证源软件进程和目的软件进程的身份以及验证身份的方法;通信发起方软件进程和通信接收方软件进程遵循的“软件进程间通信协议”版本号;主通信网络连接中协商通信加密事项;需要加密,则在通信网络连接中传递的数据根据协商结果加密;源软件进程根据查询到的通信信息和目的软件进程再建立另外一个网络连接(也可以和通信信息守候进程);这次建立的网络连接以后称为:次通信网络连接。次通信网络连接是源软件进程在作为服务器端接收来自目的软件进程的请求,并执行相应的动作。通过主、次通信网络连接在两个软件进程之间建立了对等通信机制,对等通信机制的好处:可以让陌生软件之间也能实现数据随意传递。
协商源软件进程和目的软件进程双方的通信领域,比如文字编辑软件和网站浏览器软件协商双方的领域,一方是文字编辑,一方是网页显示。这个步骤首先是确认目的软件进程是不是源软件进程要寻找的目的软件。领域的表达可以是一个复合体,比如WPS可以这样展示自己的领域:文字编辑|wps|word|办公软件|office word,协商源软件进程和目的软件进程双方的通信领域词汇,待通信领域的词汇是接下来双方向对方请求数据的时候可以使用的词汇。这些词汇在软件中把待处理的目标数据更准确、更完整的做了标定。就像用JS(JavaScript)可以把HTML中的各种成分都标定了一样。通过这些词汇可以引用待处理目标数据的每个部分、或大部分;互相查询对方功能列表,每个软件都有一个功能列表,这个功能列表是远端软件可以让这个软件做的动作。软件不同,每个软件的功能也不同。比如浏览器软件,可以打开一个URL;可以在一个URL网页中查找数据;远端可以从浏览器软件获取URL网页中的某个部分的数据。如果源软件进程在在步骤40中已经获得了足够的执行某个功能的信息,这个步骤也可以省略,而直接执行双方确定要执行的功能,源软件进程在获得目的软件进程的功能列表后,就可以确定要目的软件进程执行哪个功能;协商要待执行功能需要的条件,如果执行一个功能需要具备什么条件,那么目的软件进程就会把描述这些条件的数据给源软件进程。源软件进程从每个条件的数据中解析出满足这些条件的方法;满足待执行功能的条件,如果有需要满足的条件,源软件进程就会解析处理每个条件的数据,然后按照数据中要求的项目准备资料、向指定数据中指定的URL填报数据、甚至是付款。完成这些工作后,会获取一个URL后台数字签名的签名结果,源软件进程把这些签名结果提交给目的软件进程。目的软件进程验签成功后执行功能;确定双方通信的数据格式,如果目的软件进程需要源软件进程提供数据,或者目的软件进程执行功能反馈给源软件进程结果数据,双方要确定这些数据的格式,数据格式可以是已知标准的,诸如:WIPE、Jason、XML、HTML、Word、WPS、MP3、MP4或者其它常用软件的数据格式;也可以是目的软件自己定义的软件格式;查询对方的目标对象或目标范围,目的软件进程待处理的目标对象即可以在目的软件进程所在计算机,也可以在源软件进程所在计算机,还可以在网络中。如果用网络中的,就可以直接通知目的软件进程目标对象的位置;如果是处理目的软件进程自己的全部目标,也可以直接通知目的软件进程;如果是处理部分目的软件对象中的目标,就要请求目的软件进程目标列表,然后确定目标范围。协商待传送的数据编码方式,比如UTF-16、UTF8等等;双方都可向对方请求、发送待处理的目标对象数据,如果在源软件进程确定的目标范围是由源软件进程拥有,那么就要把这些数据传递给目的软件进程;通信接收方软件进程执行源软件进程确定的功能,将执行功能的结果发送给通信发起方软件进程,直到双方协商执行结束通信。
虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (5)
1.一种任意软件进程之间的通信方法,其特征在于,所述方法包括:
A通过通信发起方软件进程确定另外一端的软件进程应具有的属性;
B确定通信接收方软件进程的地址;
C在通信接收方软件进程所在计算机事先安装一个用于软件进程之间通信、查询的网络守候进程;
D从通信接收方软件进程地址所在计算机的通信信息守候进程查询通信接收方软件进程的通信信息;
E确定查找到的软件是否正在运行,如果没有运行能否远端启动;如果能够远端启动,满足启动条件,远端启动通信接收方软件进程;然后查询启动后通信接收方软件进程信息;
F根据查询到的通信信息和通信接收方软件进程建立通信网络连接;
所述C中用于软件和软件进程之间通信、查询的网络守候进程称为通信信息守候进程;通信信息守候进程用于查询本机可实现软件进程通信信息的列表,可查询的信息中至少包含:
本机可以实现任意软件进程间通信的软件列表、每个软件的功能列表、每个功能从远端使用的方法、每个功能从远端使用需要具备的条件、每个功能从远端使用需要的权限、双方身份验证的方法、每个功能使用过程中需要的数据、每个功能使用过程中输出数据、软件种类、软件名称、软件版本号、软件当前是否正真运行、软件当前运行进程网络守候端口号、是否可以通过通信信息守候进程和软件进程通信、是否可以按照远端要求启动软件及远端启动软件的方法;
所述通信方法还包括:根据查询到的通信接收方软件进程的通信信息确定是否需要验证通信发起方软件进程和通信接收方软件进程的身份以及验证身份的方法;通信发起方软件进程和通信接收方软件进程遵循的“软件进程间通信协议”版本号;主通信网络连接中协商通信加密事项;需要加密,则在通信网络连接中传递的数据根据协商结果加密;通信发起方软件进程根据查询到的通信信息和通信接收方软件建立次通信网络连接;协商通信发起方软件进程和通信接收方软件进程双方的通信领域、通信领域词汇,互相查询对方功能列表,确定要执行的功能,协商待执行功能需要的条件、满足待执行功能的条件,确定双方通信的数据格式,查询对方的目标对象或目标范围,协商待传送的数据编码方式,双方都可向对方请求、发送待处理的目标对象数据;通信接收方软件进程执行源软件进程确定的功能,将执行功能的结果发送给通信发起方软件进程,直到双方协商执行结束通信。
2.如权利要求1所述的任意软件进程之间的通信方法,其特征在于,所述A中属性包括功能列表、功能从远端使用方法、软件种类、软件名称与版本号。
3.如权利要求1所述的任意软件进程之间的通信方法,其特征在于,所述B中通信接收方软件进程的地址为一个主机名、域名或者IP地址,该地址的确定包括:从网络中的某种服务中、在配置文件中设置、用代码确定、存在于数据库中、命令行中给定及GUI界面中给定。
4.如权利要求1所述的任意软件进程之间的通信方法,其特征在于,所述D具体包括向通信接收方软件进程地址所在计算机发起一个网络连接,通过软件种类、软件名称、功能查询软件进程通信信息。
5.如权利要求1所述的任意软件进程之间的通信方法,其特征在于,所述E中建立通信网络连接为主通信网络连接,该主通信网络连接是通信接收方软件进程作为服务器端接收来自通信发起方软件进程的请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011170462.XA CN112256453B (zh) | 2020-10-28 | 2020-10-28 | 一种任意软件进程之间的通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011170462.XA CN112256453B (zh) | 2020-10-28 | 2020-10-28 | 一种任意软件进程之间的通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112256453A CN112256453A (zh) | 2021-01-22 |
CN112256453B true CN112256453B (zh) | 2024-05-28 |
Family
ID=74262634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011170462.XA Active CN112256453B (zh) | 2020-10-28 | 2020-10-28 | 一种任意软件进程之间的通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112256453B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN86107699A (zh) * | 1985-11-12 | 1987-07-15 | 美国电话电报公司 | 在计算机网络中进行分布式处理的一种方法 |
CN102255928A (zh) * | 2010-05-17 | 2011-11-23 | 卢涵 | 一种具有混合定位功能的无线移动通信终端 |
CN107133109A (zh) * | 2017-04-24 | 2017-09-05 | 京信通信***(广州)有限公司 | 一种模块间通信的方法、装置及计算设备 |
CN110188028A (zh) * | 2018-09-03 | 2019-08-30 | 西安奥卡云数据科技有限公司 | 一种计算机***的测试方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170255775A1 (en) * | 2016-03-02 | 2017-09-07 | Apple Inc | Software verification systems with multiple verification paths |
-
2020
- 2020-10-28 CN CN202011170462.XA patent/CN112256453B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN86107699A (zh) * | 1985-11-12 | 1987-07-15 | 美国电话电报公司 | 在计算机网络中进行分布式处理的一种方法 |
CN102255928A (zh) * | 2010-05-17 | 2011-11-23 | 卢涵 | 一种具有混合定位功能的无线移动通信终端 |
CN107133109A (zh) * | 2017-04-24 | 2017-09-05 | 京信通信***(广州)有限公司 | 一种模块间通信的方法、装置及计算设备 |
CN110188028A (zh) * | 2018-09-03 | 2019-08-30 | 西安奥卡云数据科技有限公司 | 一种计算机***的测试方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112256453A (zh) | 2021-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1157344B1 (en) | Proxy server augmenting a client request with user profile data | |
US8321502B2 (en) | Method for optimizing a web content proxy server and devices thereof | |
US7995506B2 (en) | System and method for integrating information services through cellular network | |
CN109218368B (zh) | 实现Http反向代理的方法、装置、电子设备和可读介质 | |
CN112399130B (zh) | 云视频会议信息的处理方法、装置、存储介质和通信设备 | |
US9401885B2 (en) | Data push service method and system using data pull model | |
EP1836573A1 (en) | A method for ensuring the quality of a service in a distributed computing environment | |
KR20020003083A (ko) | 특수 도메인네임 분해 서비스 방법 | |
CN103870727B (zh) | 一种统一管理权限的方法及*** | |
WO2019015272A1 (zh) | 信息处理方法和装置 | |
JP2002334056A (ja) | ログイン代行システム及びログイン代行方法 | |
US6785705B1 (en) | Method and apparatus for proxy chaining | |
US20070294711A1 (en) | Locating services using compiled scopes | |
CN113364795B (zh) | 一种数据传输方法和代理服务器 | |
TW201413584A (zh) | 偵測與解析應用程式介面之方法與系統 | |
JP2010525426A (ja) | ネットワークベースのサービスに対するスクリプト可能なオブジェクトモデル | |
CN101197724A (zh) | 基于IPv6的IGRS家庭网络中信息家电的远程控制***和方法 | |
JP5678184B2 (ja) | 遠隔ユーザインターフェース管理装置及び方法とそのためのシステム | |
CN104468594A (zh) | 一种数据请求的方法、装置及*** | |
CN109495362B (zh) | 一种接入认证方法及装置 | |
CN109471713B (zh) | 用于查询信息的方法和装置 | |
CN112256453B (zh) | 一种任意软件进程之间的通信方法 | |
CN105955790A (zh) | 数据处理方法及装置 | |
US20110264770A1 (en) | Apparatus and method for cooperatively operating web browser and local resource in mobile terminal | |
WO2018033018A1 (zh) | 一种缩短Android智能POS交易时间的方法及*** |
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 |