CN103246557A - 一种跨进程调用应用信息的方法及装置 - Google Patents
一种跨进程调用应用信息的方法及装置 Download PDFInfo
- Publication number
- CN103246557A CN103246557A CN2012100263991A CN201210026399A CN103246557A CN 103246557 A CN103246557 A CN 103246557A CN 2012100263991 A CN2012100263991 A CN 2012100263991A CN 201210026399 A CN201210026399 A CN 201210026399A CN 103246557 A CN103246557 A CN 103246557A
- Authority
- CN
- China
- Prior art keywords
- module
- application message
- api calls
- asking
- sends
- 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.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种跨进程调用应用信息的方法及装置,在开放平台所属的第一进程上设置跨进程调用应用信息的系统架构,包括:API调用请求模块,用于设置API调用请求,携带有API调用的参数信息,通过发送模块,发送给第二进程,接收等待模块发送的所请求的应用信息;等待模块,用于阻塞第一进程执行,直到被分发模块唤醒后,从分发模块获取到应用信息,发送给API调用请求模块;接收模块,用于接收第二进程发送的应用信息,该应用信息为API调用请求所请求的信息,发送给分发模块;分发模块,用于从接收模块接收应用信息后,激活等待模块,发送给等待模块。就可以跨进程调用应用信息,根据所调用的应用信息,在开放平台所属进程上运行应用。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种跨进程调用应用信息的方法及装置。
背景技术
随着计算机技术的发展,在客户端会设置开放平台,用以承载不同种类的应用运行。具体地,就是客户端加载开放平台后,使用人员可以通过应用程序编程接口(API,Application Programming Interface)调用与开放平台所属同一进程的某个应用承载在开放平台上运行。
目前,应用主要由模块代码及数据组成,这里将组成应用的模块代码及数据称为应用信息,应用在开发时主要采用单进程模型,在这种模型中,应用信息都共享在在同一进程地址空间,在采用API调用该应用时,直接从所属进程中调用该应用运行在开放平台上即可。这样,可以高效且方便地调用应用。
采用单进程开发的应用具有以下特点:1)扩展性差,该应用的所有应用信息,也就是各个模块代码都设置在一个进程中,没有明显的界限分隔,各个模块代码之间互相依赖且不易拆分,对应用进行扩展时比较困难;2)安全性差,应用和开放平台都运行在同一进程上,应用可以自由访问或修改开放平台内部数据,造成对开放平台的威胁;3)稳定性差,由于应用和开放平台都运行在同一进程上,根据所调用的应用信息运行应用过程中,应用信息的调用行为都会影响到开放平台,更严重的是,如果一个应用发生了崩溃,同一进程上的开放平台或其他应用也会崩溃。
因此,如何跨进程设置开放平台和应用信息,在要在开放平台上运行应用时,再跨进程调用应用信息,在开放平台所属进程上运行应用,成为了即一个亟待解决的问题。
发明内容
有鉴于此,本发明提供了一种跨进程调用应用信息的方法,该方法能够跨进程调用应用信息,在开放平台所属进程上运行应用。
本发明还提供了一种跨进程调用应用信息的装置,该装置能够跨进程调用应用信息,在开放平台所属进程上运行应用。
为达到上述目的,本发明的技术方案是这样实现的:
一种跨进程调用应用信息的装置,包括:在第一进程中的应用程序编程接口API调用请求模块、发送模块、等待模块、分发模块及接收模块,其中,API调用请求模块,用于将携带应用信息的API调用参数信息的API调用请求,发送给发送模块,接收等待模块发送的所请求的应用信息;
发送模块,用于将从API调用请求模块接收的API调用请求发送给第二进程;
接收模块,用于接收第二进程发送的所请求的应用信息,发送给分发模块;
分发模块,用于从接收模块接收到所请求的应用信息后,激活等待模块,将所请求的应用信息发送给等待模块;
等待模块,用于阻塞当前线程执行,直到被分发模块唤醒后,从分发模块获取所请求的应用信息,发送给API调用请求模块。
一种跨进程调用应用信息的方法,该方法包括:
第一进程构造携带应用信息的API调用参数信息的API调用请求,发送给第二进程;
第一进程阻塞当前线程执行,进入等待状态;
第一进程接收到第二进程发送的所请求的应用信息后,唤醒等待状态,根据所请求的应用信息在当前线程上的开放平台上运行应用。
由上述的技术方案可见,本发明在开放平台所属的第一进程上设置跨进程调用应用信息的系统架构,包括:API调用请求模块、发送模块、等待模块、分发模块及接收模块,其中,API调用请求模块,用于设置API调用请求,携带有API调用的参数信息,通过发送模块,发送给第二进程,接收等待模块发送的所请求的应用信息;等待模块,用于阻塞第一进程执行,直到被分发模块唤醒后,从分发模块获取到应用信息,发送给API调用请求模块;接收模块,用于接收第二进程发送的应用信息,该应用信息为API调用请求所请求的信息,发送给分发模块;分发模块,用于从接收模块接收应用信息后,激活等待模块,发送给等待模块。这样,就可以跨进程调用应用信息,根据所调用的应用信息,在开放平台所属进程上运行应用了。
附图说明
图1为本发明实施例提供的跨进程调用应用信息的装置结构示意图;
图2为本发明实施例提供的跨进程调用应用信息的方法流程图;
图3为本发明实施例提供的跨进程调用应用信息的具体实施例方法流程图;
图4为本发明实施例提供的由API调用请求编码打包的字节流的包头结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。
本发明为了可以跨进程调用应用信息,根据所调用的应用信息,在开放平台所属进程上运行应用,在开放平台所属的第一进程上设置跨进程调用应用信息的系统架构,包括:API调用请求模块、发送模块、等待模块、分发模块及接收模块,其中,API调用请求模块,用于设置API调用请求,携带有应用信息的API调用参数信息,通过发送模块,发送给第二进程,接收等待模块发送的所请求的应用信息;等待模块,用于阻塞第一进程执行,直到被分发模块唤醒后,从分发模块获取到应用信息,发送给API调用请求模块;接收模块,用于接收第二进程发送的应用信息,该应用信息为API调用请求所请求的信息,发送给分发模块;分发模块,用于从接收模块接收应用信息后,激活等待模块,发送给等待模块。
图1为本发明实施例提供的跨进程调用应用信息的装置结构示意图,包括:在第一进程中的API调用请求模块、发送模块、等待模块、分发模块及接收模块,其中,
API调用请求模块,用于将携带应用信息的API调用参数信息的API调用请求,发送给发送模块,接收等待模块发送的所请求的应用信息;
发送模块,用于将从API调用请求模块接收的API调用请求发送给第二进程;
接收模块,用于接收第二进程发送的所请求的应用信息,发送给分发模块;
分发模块,用于从接收模块接收到所请求的应用信息后,激活等待模块,将所请求的应用信息发送给等待模块;
等待模块,用于阻塞当前线程执行,直到被分发模块唤醒后,从分发模块获取所请求的应用信息,发送给API调用请求模块。
所述API调用请求模块,还用于将所接收的所请求的应用信息发送给第一进程;
所述第一进程,用于从API调用请求模块获得所请求的应用信息,根据该应用信息在第一进程的当前线程的开放平台上运行应用。
在本实施例中,当API调用请求模块发送API调用请求时,可以进行编码打包为字节流,再发送给发送模块;
发送模块,用于将接收的打包为字节流的API调用请求加入到所设置的发送队列中,所设置的发送进程扫描发送队列,将字节流发送到第二进程;
接收模块,用于接收第二进程发送的所请求的应用信息,也就是包括所请求的应用信息的字节流,并将包括所请求的应用信息的字节流设置在所设置的接收队列中;
分发模块,用于从接收模块的接收队列中,将包括所请求的应用信息的字节流提取出来,解码得到所请求的应用信息,发送给等待模块。
在本发明实施例中,API调用请求携带应用信息的API调用参数信息为线程标识、调用API名字及要反馈应用信息标识。
图2为本发明实施例提供的跨进程调用应用信息的方法流程图,其具体步骤为:
步骤201、第一进程构造携带应用信息的API调用参数信息的API调用请求,发送给第二进程;
步骤202、第一进程阻塞当前线程执行,进入等待状态;
步骤203、第一进程接收到第二进程发送的所请求的应用信息后,唤醒等待状态,根据所请求的应用信息在当前线程上的开放平台上运行应用。
图3为本发明实施例提供的跨进程调用应用信息的具体实施例方法流程图,其具体步骤为:
步骤301、第一进程在开放平台要运行某一应用,确认该应用信息未在第一进程中;
步骤302、第一进程构造携带应用信息的API调用参数信息的API调用请求,发送给第二进程;
在该步骤中,第一进程可以与其他进程通信,采用要运行应用的调用API名字查询其他进程是否具有该应用信息,确认具有该应用信息的第二进程,然后再构造API调用请求,发送给具有该应用信息的第二进程;
在该步骤中,也可以将构造的API调用请求,携带线程标识、调用API名字及要反馈应用信息标识,发送给所有与其交互的进程,然后等待回复应用信息;
在该步骤中,发送API调用请求时,可以进行编码打包为字节流发送;
步骤303、第一进程阻塞当前线程执行,进入等待状态;
步骤304、第一进程接收到第二进程发送的所请求的应用信息后,唤醒等待状态,根据所请求的应用信息在当前线程上的开放平台上运行应用;
在该步骤中,接收所请求的应用信息接收的为包括所请求的应用信息的字节流。
图4为本发明实施例提供的由API调用请求编码打包的字节流的包头结构示意图,其中,tid为线程标识,api_name为API调用标识,type为包类型,这里指的是请求或者回复。另外,还具有字节流容量(total_size)、数据偏移量(data_offset)及需要反馈(need_callback)、会话标识(session_id)等。
在这里,API调用请求携带应用信息的API调用参数信息包括:tid、type为要请求类型以及api_name,打包为字节流后就发送。
第一进程的发送模块在发送该字节流时,就将该字节流设置在所设置发送队列队尾,排队等待发送,同时,激活内部的发送进程,对发送队列进行扫描,从中获取发送队列中的字节流,发送到另一个进程中。
第一进程的接收模块接收到包含所请求的应用信息的字节流时,将该字节流设置在所设置的接收队列尾部,并通知分发模块新接收了字节流,这时,分发模块获知后,就可以提取出字节流,并确认其中的type中为回复,tid为线程标识,根据线程标识就可以确定是第一进程的字节流,解码得到应用信息后,发送给等待模块,等待模块接收到后,唤醒等待状态,将所接收的应用信息发送给API调用请求模块。
API调用请求模块将该应用信息发送给第一进程,运行该应用即可,完成了一次跨进程的应用信息调用。
在本发明实施例中,第二进程可以同时接收到第一进程发送的多个API调用请求,也就是并发API调用请求,但是每个API调用请求携带的线程标识不相同,当接收到所请求的应用信息时,就根据其中的线程标识确定所请求的线程,由第一进程对应的线程处理,在整个跨进程的应用信息调用过程中,线程标识一直保持不变。
采用本发明,可以实现在多进程系统架构上跨进程调用应用。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种跨进程调用应用信息的装置,其特征在于,包括:在第一进程中的应用程序编程接口API调用请求模块、发送模块、等待模块、分发模块及接收模块,其中,
API调用请求模块,用于将携带应用信息的API调用参数信息的API调用请求,发送给发送模块,接收等待模块发送的所请求的应用信息;
发送模块,用于将从API调用请求模块接收的API调用请求发送给第二进程;
接收模块,用于接收第二进程发送的所请求的应用信息,发送给分发模块;
分发模块,用于从接收模块接收到所请求的应用信息后,激活等待模块,将所请求的应用信息发送给等待模块;
等待模块,用于阻塞当前线程执行,直到被分发模块唤醒后,从分发模块获取所请求的应用信息,发送给API调用请求模块。
2.如权利要求1所述的装置,其特征在于,所述API调用请求模块,还用于将所接收的所请求的应用信息发送给第一进程;
所述第一进程,用于从API调用请求模块获得所请求的应用信息,根据该应用信息在第一进程的当前线程的开放平台上运行应用。
3.如权利要求1所述的装置,其特征在于,所述API调用请求模块,还用于发送API调用请求时,进行编码打包为字节流,再发送给发送模块;
发送模块,还用于将接收的打包为字节流的API调用请求加入到所设置的发送队列中,所设置的发送进程扫描发送队列,将字节流发送到第二进程;
接收模块,还用于接收第二进程发送的包括所请求的应用信息的字节流,并包括所请求的应用信息的字节流设置在所设置的接收队列中;
分发模块,用于从接收模块的接收队列中,将包括所请求的应用信息的字节流提取出来,解码得到所请求的应用信息,发送给等待模块。
4.如权利要求1所述的装置,其特征在于,所述API调用请求携带应用信息的API调用参数信息为线程标识、调用API名字及要反馈应用信息标识。
5.一种跨进程调用应用信息的方法,其特征在于,该方法包括:
第一进程构造携带应用信息的API调用参数信息的API调用请求,发送给第二进程;
第一进程阻塞当前线程执行,进入等待状态;
第一进程接收到第二进程发送的所请求的应用信息后,唤醒等待状态,根据所请求的应用信息在当前线程上的开放平台上运行应用。
6.如权利要求1所述的方法,其特征在于,所述API调用请求携带应用信息的API调用参数信息为线程标识、调用API名字及要反馈应用信息标识。
7.如权利要求1所述的方法,其特征在于,所述构造携带应用信息的API调用参数信息的API调用请求之前,该方法还包括:
第一进程与其他进程通信,采用要运行应用的调用API名字查询其他进程是否具有该应用信息,确认具有该应用信息的第二进程。
8.如权利要求1所述的方法,其特征在于,所述构造携带应用信息的API调用参数信息的API调用请求为多个,分别携带的线程标识不同;
所述接收到的所请求的应用信息携带的线程标识不同,根据不同线程标识确定不同应用信息;
在当前线程上运行应用时所述当前线程的线程标识为应用信息所携带的线程标识。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012100263991A CN103246557A (zh) | 2012-02-07 | 2012-02-07 | 一种跨进程调用应用信息的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012100263991A CN103246557A (zh) | 2012-02-07 | 2012-02-07 | 一种跨进程调用应用信息的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103246557A true CN103246557A (zh) | 2013-08-14 |
Family
ID=48926088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012100263991A Pending CN103246557A (zh) | 2012-02-07 | 2012-02-07 | 一种跨进程调用应用信息的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103246557A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105159774A (zh) * | 2015-07-08 | 2015-12-16 | 清华大学 | 一种api请求保序处理方法及系统 |
CN107479992A (zh) * | 2017-09-01 | 2017-12-15 | 郑州云海信息技术有限公司 | 一种业务处理方法及装置 |
CN107479958A (zh) * | 2017-08-16 | 2017-12-15 | 郑州云海信息技术有限公司 | 一种基于多核系统的进程调度方法及装置 |
CN110309006A (zh) * | 2019-06-28 | 2019-10-08 | 百度在线网络技术(北京)有限公司 | 一种功能调用方法、装置、终端设备及存储介质 |
CN112667388A (zh) * | 2021-03-16 | 2021-04-16 | 荣耀终端有限公司 | 一种操作系统的保护方法及电子设备 |
CN112769900A (zh) * | 2020-12-22 | 2021-05-07 | 中冶赛迪重庆信息技术有限公司 | 一种数据分发方法、系统、介质及电子终端 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040237071A1 (en) * | 1999-11-14 | 2004-11-25 | Yona Hollander | Method and system for intercepting an application program interface |
US20050055350A1 (en) * | 2000-05-25 | 2005-03-10 | Werme Paul V. | System specification language for resource management architecture and corresponding programs therefor |
CN101087314A (zh) * | 2007-05-15 | 2007-12-12 | 华为技术有限公司 | 一种应用程序跨进程使用套接字服务的系统及方法 |
CN101226487A (zh) * | 2008-01-30 | 2008-07-23 | 中国船舶重工集团公司第七〇九研究所 | 基于嵌入式Linux操作系统的内核级线程库的实现方法 |
CN101650671A (zh) * | 2008-08-15 | 2010-02-17 | 英属开曼群岛商康帝国际科技股份有限公司 | 应用程序管理方法及系统 |
CN101674326A (zh) * | 2009-09-21 | 2010-03-17 | 中兴通讯股份有限公司 | 进程间同步通信实现方法及代理单元 |
-
2012
- 2012-02-07 CN CN2012100263991A patent/CN103246557A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040237071A1 (en) * | 1999-11-14 | 2004-11-25 | Yona Hollander | Method and system for intercepting an application program interface |
US20050055350A1 (en) * | 2000-05-25 | 2005-03-10 | Werme Paul V. | System specification language for resource management architecture and corresponding programs therefor |
CN101087314A (zh) * | 2007-05-15 | 2007-12-12 | 华为技术有限公司 | 一种应用程序跨进程使用套接字服务的系统及方法 |
CN101226487A (zh) * | 2008-01-30 | 2008-07-23 | 中国船舶重工集团公司第七〇九研究所 | 基于嵌入式Linux操作系统的内核级线程库的实现方法 |
CN101650671A (zh) * | 2008-08-15 | 2010-02-17 | 英属开曼群岛商康帝国际科技股份有限公司 | 应用程序管理方法及系统 |
CN101674326A (zh) * | 2009-09-21 | 2010-03-17 | 中兴通讯股份有限公司 | 进程间同步通信实现方法及代理单元 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105159774A (zh) * | 2015-07-08 | 2015-12-16 | 清华大学 | 一种api请求保序处理方法及系统 |
CN105159774B (zh) * | 2015-07-08 | 2018-06-12 | 清华大学 | 一种api请求保序处理方法及系统 |
CN107479958A (zh) * | 2017-08-16 | 2017-12-15 | 郑州云海信息技术有限公司 | 一种基于多核系统的进程调度方法及装置 |
CN107479992A (zh) * | 2017-09-01 | 2017-12-15 | 郑州云海信息技术有限公司 | 一种业务处理方法及装置 |
CN110309006A (zh) * | 2019-06-28 | 2019-10-08 | 百度在线网络技术(北京)有限公司 | 一种功能调用方法、装置、终端设备及存储介质 |
CN112769900A (zh) * | 2020-12-22 | 2021-05-07 | 中冶赛迪重庆信息技术有限公司 | 一种数据分发方法、系统、介质及电子终端 |
CN112667388A (zh) * | 2021-03-16 | 2021-04-16 | 荣耀终端有限公司 | 一种操作系统的保护方法及电子设备 |
CN112667388B (zh) * | 2021-03-16 | 2021-06-01 | 荣耀终端有限公司 | 一种操作系统的保护方法及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103246557A (zh) | 一种跨进程调用应用信息的方法及装置 | |
CN102202289B (zh) | 一种通过移动终端远程调用软硬件资源的方法和系统 | |
CN108989811B (zh) | 云桌面系统、及其图像序列压缩编码方法和介质 | |
KR101612390B1 (ko) | 호스트 디바이스의 능력들의 증강 | |
CN107463370B (zh) | 跨进程渲染方法及系统 | |
CN105429858A (zh) | 一种多机器人间实时消息传递方法 | |
CN104216768A (zh) | 一种数据处理方法及装置 | |
CN104980898A (zh) | 一种信息推送方法、系统及设备 | |
CN102520936A (zh) | 一种在Android上实现Socket通讯服务共享的方法 | |
CN107070686A (zh) | 一种视频监控平台码流并行转码的系统和方法 | |
CN110650203B (zh) | 数据传输方法、装置和系统、计算机存储介质及电子设备 | |
CN111240858B (zh) | 事件调度方法及组件 | |
CN113162848A (zh) | 一种区块链网关的实现方法、装置、网关和介质 | |
CN104461581A (zh) | 一种基于虚拟化技术的硬件调用、共享方法及系统 | |
CN109788251B (zh) | 视频处理方法、装置及存储介质 | |
CN103516788A (zh) | 一种数据推送方法及其Flash客户端和服务器 | |
CN106937240B (zh) | 一种获取资源的方法和装置 | |
US9774640B2 (en) | Method and system for sharing applications among a plurality of electronic devices | |
CN114679436B (zh) | 一种会话管理方法、服务器及计算机可读存储介质 | |
CN115802007A (zh) | 基于rtsp协议的监控系统控制方法、设备及可读存储介质 | |
WO2018133828A1 (zh) | 用于客户端的数据处理方法和装置 | |
CN106230877B (zh) | 一种设备的远程管理方法、系统及设备 | |
CN102567083B (zh) | 应用rpc进行对象传输的方法、装置及系统 | |
CN110442442B (zh) | 核电厂dcs平台工程师站软件维护网络通讯方法 | |
CN114500668A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130814 |
|
RJ01 | Rejection of invention patent application after publication |