CN101630272A - 进程调度方法和系统 - Google Patents
进程调度方法和系统 Download PDFInfo
- Publication number
- CN101630272A CN101630272A CN200910090977A CN200910090977A CN101630272A CN 101630272 A CN101630272 A CN 101630272A CN 200910090977 A CN200910090977 A CN 200910090977A CN 200910090977 A CN200910090977 A CN 200910090977A CN 101630272 A CN101630272 A CN 101630272A
- Authority
- CN
- China
- Prior art keywords
- host
- work
- progress
- scheduling method
- client
- 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
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种进程调度方法,包括:确定位于服务器处的宿主分发进程,所述宿主分发进程通过相应的通讯协议与工作进程通讯;所述宿主分发进程将客户端请求定位到所述工作进程。本发明还提供了一种进程调度系统,包括:宿主分发模块,位于服务器处,所述宿主分发模块通过相应的通讯协议与工作模块通讯;所述工作模块,所述宿主分发模块将客户端请求定位到所述工作模块。由于采用上述技术方案,本发明实现了以下技术效果:提高了服务请求响应;隔离了不同应用之间的资源冲突;屏蔽了调用方对协议的选择,可实现灵活部署。
Description
技术领域
本发明涉及计算机技术,更具体地涉及进度调度方法和系统。
背景技术
在现有三层架构中,应用层因为承载了大量并发逻辑计算,随着并发用户数增多,业务逻辑的复杂性增大,应用层往往成为整个系统的瓶颈。
网络拓扑结构的复杂性,选取合适的通讯协议也是影响应用层处理能力的瓶颈之一。
目前大多数技术或者采用单一进程处理业务逻辑,或者使用多个业务进程,但相互间隔离,或者使用一个调度器,调度客户端请求到不同的工作进程,但是调度器与工作进程只能部署在同一机器上。这些对应用层的硬件设备要求仍然很高,对大并发,复杂运算的性能仍然不满足要求。
以SAP R/3的客户机/服务器体系结构为例,共分为三层:表示层,应用层和数据库层。在表示层<——>应用层<——>数据库服务器之间的通讯只采用TCP/IP协议作为传输协议。
在应用层,可以由多个应用服务器组成,但在每一服务器中仅存一个调度器进程,协调工作进程,调度进程和工作进程总是涉及一个相同程序,部署在同一实例中,工作于表示层与应用层之间的调度器启动和管理这些进程,但是调度器的失败会导致整个应用的失败。
基于上述的分析,使用多协议,多进程的处理方式:根据应用的分类,将耦合性高的调用部署在同一进程中,同时将一些运算复杂,耗系统资源,I/O读写高的调用单独部署。使用自动分发技术,根据请求分类以及检测服务器处理能力的方式,自动转换请求到不同的处理设备,用以提高服务端处理请求的能力。同时根据请求是本地还是远程,能自动切换不同的通讯协议(如IPC,TCP等),用以降低网络传输的代价。
因此,需要一种新型的进程调度方法和系统。
发明内容
为了解决上述问题之一,本发明提供了一种进程调度方法,包括:确定位于服务器处的宿主分发进程,所述宿主分发进程通过相应的通讯协议与工作进程通讯;所述宿主分发进程将客户端请求定位到所述工作进程。
在上述进程调度方法中,优选地,所述通讯协议包括HTTP、TCP、IPC。在所述宿主分发进程和所述工作进程部署在同一台机器上时,使用IPC协议。
在上述进程调度方法中,优选地,所述客户端请求具有URI,用于指定所请求的通讯协议和资源的位置。
在上述进程调度方法中,优选地,所述宿主分发进程根据配置文件和负载进行检测,动态修改URI,将所述客户端请求重定向到正确的工作进程中。
在上述进程调度方法中,优选地,所述宿主分发进程启动一监控进程,所述监控进程用于实时监控所述工作进程的处理速度和/或内存消耗,如果发现所述处理速度或所述内存消耗超过阈值,则再启动一个同类型的新工作进程,同时通知所述宿主分发进程修改所述URI,将所述客户端请求定位到所述新工作进程。
在上述进程调度方法中,优选地,所述工作进程具有唯一标识,保存在URI中。
在上述进程调度方法中,优选地,所述客户端请求与URI之间具有映射关系,所述映射关系保存在调用配置文件中。
本发明还提供了一种进程调度系统,包括:宿主分发模块,位于服务器处,所述宿主分发模块通过相应的通讯协议与工作模块通讯;所述工作模块,所述宿主分发模块将客户端请求定位到所述工作模块。
在上述进程调度系统中,优选地,所述通讯协议包括HTTP、TCP、IPC。
由于采用上述技术方案,本发明实现了以下技术效果:
1.提高了服务请求响应;
2.隔离了不同应用之间的资源冲突;
3.屏蔽了调用方对协议的选择,可实现灵活部署。
附图说明
图1示出了根据本发明的进程调度方法的流程图;
图2示出了根据本发明的实施例的进程调度方法的寻址过程的原理图;
图3示出了根据本发明的实施例的进程调度方法的二次寻址过程的原理图;以及
图4示出了根据本发明的进程调度系统的框图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1示出了根据本发明的进程调度方法的流程图。
该进度调度方法包括:步骤102,确定位于服务器处的宿主分发进程,所述宿主分发进程通过相应的通讯协议与工作进程通讯;步骤104,所述宿主分发进程将客户端请求定位到所述工作进程。
在上述进程调度方法中,优选地,所述通讯协议包括HTTP、TCP、IPC。在所述宿主分发进程和所述工作进程部署在同一台机器上时,使用IPC协议。
在上述进程调度方法中,优选地,所述客户端请求具有URI,用于指定所请求的通讯协议和资源的位置。
在上述进程调度方法中,优选地,所述宿主分发进程根据配置文件和负载进行检测,动态修改URI,将所述客户端请求重定向到正确的工作进程中。
在上述进程调度方法中,优选地,所述宿主分发进程启动一监控进程,所述监控进程用于实时监控所述工作进程的处理速度和/或内存消耗,如果发现所述处理速度或所述内存消耗超过阈值,则再启动一个同类型的新工作进程,同时通知所述宿主分发进程修改所述URI,将所述客户端请求定位到所述新工作进程。
在上述进程调度方法中,优选地,所述工作进程具有唯一标识,保存在URI中。
在上述进程调度方法中,优选地,所述客户端请求与URI之间具有映射关系,所述映射关系保存在调用配置文件中。
图2示出了根据本发明的实施例的进程调度方法的寻址过程的原理图。
根据本发明的进程调度方法是一种能支持多协议通道,并在每种协议进程中根据应用和负载的情况,自动分发客户端请求,将其转移到不同的工作进程的方法。包括若干个协议进程,若干个工作进程,复杂逻辑计算根据应用和负载分布在不同的工作进程中,并能根据本地还是跨机器调用,自动适配不同的通讯协议,对调用方封装了通讯细节。
1.使用多协议宿主进程方案,根据通讯协议划分不同的宿主分发进程(DispatchHost),管理员可以根据网络环境配置通讯的协议,如HTTP或者TCP,HTTP方式的信道在跨越防火墙上有优势;TCP方式的信道常用在局域网内通信,速度比HTTP快;IPC信道用于同一台机器的进程间通信,通信不占用网络资源,速度最快,通过减少网络传输消耗,提高服务响应请求的能力。允许一个服务器支持1到多个Dispatch Host。表示层发送请求给应用层时,传输层根据请求内容,在请求数据中附加上URI,指明本次调用使用的通讯协议和资源的位置,再传输请求给特定协议的宿主进程。同一个服务器既可以使用多协议,也可以只部署单一协议,由协议配置文件决定。
2.根据业务应用,划分不同的工作进程,同一协议的工作进程使用同一个程序文件,启动时基于不同的功能带有不同的参数,工作进程可以部署到不同的机器上,这样不同的应用运行在不同的进程中,减少相互间I/O,内存,CPU资源的争夺。每个宿主分发进程使用自己协议的工作进程,表示层发出的请求经过底层封装的传输层,附带上URI,就可以准确寻址到自己的宿主分发进程。宿主进程根据请求的关键字Key,再次修正URI,将请求转发给工作进程。如果工作进程和宿主分发进程部署在同一台机器,可以使用IPC协议,提高处理速度。
同时宿主分发进程还启动一个监控进程,实时监控工作进程的处理速度和内存消耗,如果发现处理速度或者内存超过阀值,则再启动一个同类型的工作进程,
并通知分发进程,由分发进程转发请求修改URI时,将请求定位到新的工作进程。同类型工作进程启动数有上限要求。
下面以应用层同时支持两种协议(HTTP、TCP)的宿主进程来说明上述的方案,应用层部署了两个宿主进程:IIS进程和Windows服务进程。使用HTTP协议的应用运行在IIS进程中,使用TCP协议的运行在Windows服务进程中。
IIS进程里执行一些耗时长,不常用的操作,如MRP运算,而Windows进程里执行一些日常操作,如单据的保存等。传输层根据请求内容的Key,在配置文件中查找正确的URI,并附加到客户端请求内容中,然后根据URI,寻址到正确的协议进程,原理图如图2所示。
图3示出了根据本发明的实施例的进程调度方法的二次寻址过程的原理图。在每个协议宿主进程内部,还存在二次寻址,用来查找正确的工作进程,以Windows服务HOST进程举例,示例图如图3所示。
工作进程分别部署在两台服务器上,客户端和服务器同在局域网中,只使用TCP协议,客户端请求到宿主进程,由宿主进程根据客户端请求内容的方法名,查找DispatchHost.exe.config中配置的URI内容,将请求重定向到工作进程;或者宿主进程根据监控进程的结果,修改URI,将新请求重定向新开启的工作进程,每个工作进程运行在独立的工作区。
整个架构包括设计时和运行时。
设计时包括:
1.使用代码接口抽取工具,工具通过反射,查找DLL的类、方法定义,再根据类定义上的Attribute标记,决定此类是需要远程调用,还是本地调用,抽取需要远程调用的类的定义和方法定义,生成此对象的供服务端与客户端调用的接口代理类,如上图的ClientInterface(客户端接口类)和ServerInterface(服务端接口类),这样开发人员编写代码的时候就不需要考虑远程传输的问题,由代理接口类完成协议封装,屏蔽调用方对协议的选择,可灵活部署。
2.将工作进程按应用分类,使用XML,配置工作进程的启用参数在app.exe.config中,每个工作进程有一个唯一的标识,启动时,读取配置文件,获取唯一标识。
3.将客户端请求按应用分类,使用XML,配置客户端的请求与URI的映射关系,将其保存在InvokeService.config中,URI信息中包括每个工作进程的唯一标识。
运行时包括:
4.运行过程中分发进程根据配置文件和负载检测,动态修改URI,将请求重定向到正确的工作进程中。
图4示出了根据本发明的进程调度系统的框图。
该进程调度系统200,包括:宿主分发模块202,位于服务器处,所述宿主分发模块通过相应的通讯协议与工作模块通讯;所述工作模块204,所述宿主分发模块将客户端请求定位到所述工作模块。在上述进程调度系统中,优选地,所述通讯协议包括HTTP、TCP、IPC。
由于采用上述技术方案,本发明实现了以下技术效果:
1.提高了服务请求响应;
2.隔离了不同应用之间的资源冲突;
3.屏蔽了调用方对协议的选择,可实现灵活部署。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种进程调度方法,其特征在于,包括:
确定位于服务器处的宿主分发进程,所述宿主分发进程通过相应的通讯协议与工作进程通讯;
所述宿主分发进程将客户端请求定位到所述工作进程。
2.根据权利要求1所述的进程调度方法,其特征在于,所述通讯协议包括HTTP、TCP、IPC。
3.根据权利要求2所述的进程调度方法,其特征在于,在所述宿主分发进程和所述工作进程部署在同一台机器上时,使用IPC协议。
4.根据权利要求1至3中任一项所述的进程调度方法,其特征在于,所述客户端请求具有URI,用于指定所请求的通讯协议和资源的位置。
5.根据权利要求4所述的进程调度方法,其特征在于,所述宿主分发进程根据配置文件和负载进行检测,动态修改URI,将所述客户端请求重定向到正确的工作进程中。
6.根据权利要求1至3中任一项所述的进程调度方法,其特征在于,所述宿主分发进程启动一监控进程,所述监控进程用于实时监控所述工作进程的处理速度和/或内存消耗,如果发现所述处理速度或所述内存消耗超过阈值,则再启动一个同类型的新工作进程,同时通知所述宿主分发进程修改所述URI,将所述客户端请求定位到所述新工作进程。
7.根据权利要求1至3中任一项所述的进程调度方法,其特征在于,所述工作进程具有唯一标识,保存在URI中。
8.根据权利要求7所述的进程调度方法,其特征在于,所述客户端请求与URI之间具有映射关系,所述映射关系保存在调用配置文件中。
9.一种进程调度系统,其特征在于,包括:
宿主分发模块,位于服务器处,所述宿主分发模块通过相应的通讯协议与工作模块通讯;
所述工作模块,所述宿主分发模块将客户端请求定位到所述工作模块。
10.根据权利要求9所述的进程调度系统,其特征在于,所述通讯协议包括HTTP、TCP、IPC。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910090977 CN101630272B (zh) | 2009-08-19 | 2009-08-19 | 进程调度方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910090977 CN101630272B (zh) | 2009-08-19 | 2009-08-19 | 进程调度方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101630272A true CN101630272A (zh) | 2010-01-20 |
CN101630272B CN101630272B (zh) | 2013-03-27 |
Family
ID=41575390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910090977 Expired - Fee Related CN101630272B (zh) | 2009-08-19 | 2009-08-19 | 进程调度方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101630272B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102413115A (zh) * | 2011-08-12 | 2012-04-11 | 乐视网信息技术(北京)股份有限公司 | 一种客户端插件系统 |
CN103645939A (zh) * | 2013-11-29 | 2014-03-19 | 北京奇虎科技有限公司 | 一种图片抓取的方法和系统 |
CN104750553A (zh) * | 2013-12-30 | 2015-07-01 | 广州华多网络科技有限公司 | 应用运行方法和装置 |
CN105141707A (zh) * | 2014-06-09 | 2015-12-09 | 阿里巴巴集团控股有限公司 | 一种地址信息传输方法及装置 |
CN105357273A (zh) * | 2015-09-30 | 2016-02-24 | 山东乾云启创信息科技股份有限公司 | 异步通信模式下socket通信与进程管理通用平台及方法 |
CN106020984A (zh) * | 2016-05-20 | 2016-10-12 | 青岛海信移动通信技术股份有限公司 | 电子设备中进程的创建方法及装置 |
CN106339435A (zh) * | 2016-08-19 | 2017-01-18 | 中国银行股份有限公司 | 一种数据分发方法、装置及系统 |
CN107257384A (zh) * | 2017-07-24 | 2017-10-17 | 北京小米移动软件有限公司 | 服务状态监控方法及装置 |
CN110032487A (zh) * | 2018-11-09 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 保活监控方法、装置及电子设备 |
CN110502418A (zh) * | 2018-05-17 | 2019-11-26 | 长沙博为软件技术股份有限公司 | 一种实现远程调试的方法 |
CN111338893A (zh) * | 2020-02-20 | 2020-06-26 | 深圳市腾讯计算机系统有限公司 | 进程日志处理方法、装置、计算机设备以及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6321263B1 (en) * | 1998-05-11 | 2001-11-20 | International Business Machines Corporation | Client-based application availability |
CN101403983B (zh) * | 2008-11-25 | 2010-10-13 | 北京航空航天大学 | 基于虚拟机的多核处理器的资源监控方法及系统 |
CN101477474A (zh) * | 2009-01-04 | 2009-07-08 | 中国科学院计算技术研究所 | 一种联合模拟系统及其工作方法 |
-
2009
- 2009-08-19 CN CN 200910090977 patent/CN101630272B/zh not_active Expired - Fee Related
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102413115B (zh) * | 2011-08-12 | 2015-05-13 | 乐视网信息技术(北京)股份有限公司 | 一种客户端插件系统 |
CN102413115A (zh) * | 2011-08-12 | 2012-04-11 | 乐视网信息技术(北京)股份有限公司 | 一种客户端插件系统 |
CN103645939B (zh) * | 2013-11-29 | 2018-03-27 | 北京奇虎科技有限公司 | 一种图片抓取的方法和系统 |
CN103645939A (zh) * | 2013-11-29 | 2014-03-19 | 北京奇虎科技有限公司 | 一种图片抓取的方法和系统 |
CN104750553A (zh) * | 2013-12-30 | 2015-07-01 | 广州华多网络科技有限公司 | 应用运行方法和装置 |
CN104750553B (zh) * | 2013-12-30 | 2019-03-15 | 广州华多网络科技有限公司 | 应用运行方法和装置 |
CN105141707A (zh) * | 2014-06-09 | 2015-12-09 | 阿里巴巴集团控股有限公司 | 一种地址信息传输方法及装置 |
CN105141707B (zh) * | 2014-06-09 | 2018-09-11 | 阿里巴巴集团控股有限公司 | 一种地址信息传输方法及装置 |
CN105357273B (zh) * | 2015-09-30 | 2018-06-19 | 山东乾云启创信息科技股份有限公司 | 异步通信模式下socket通信与进程管理通用平台及方法 |
CN105357273A (zh) * | 2015-09-30 | 2016-02-24 | 山东乾云启创信息科技股份有限公司 | 异步通信模式下socket通信与进程管理通用平台及方法 |
CN106020984A (zh) * | 2016-05-20 | 2016-10-12 | 青岛海信移动通信技术股份有限公司 | 电子设备中进程的创建方法及装置 |
CN106020984B (zh) * | 2016-05-20 | 2020-01-31 | 青岛海信移动通信技术股份有限公司 | 电子设备中进程的创建方法及装置 |
CN106339435A (zh) * | 2016-08-19 | 2017-01-18 | 中国银行股份有限公司 | 一种数据分发方法、装置及系统 |
CN107257384A (zh) * | 2017-07-24 | 2017-10-17 | 北京小米移动软件有限公司 | 服务状态监控方法及装置 |
CN107257384B (zh) * | 2017-07-24 | 2021-08-17 | 北京小米移动软件有限公司 | 服务状态监控方法及装置 |
CN110502418A (zh) * | 2018-05-17 | 2019-11-26 | 长沙博为软件技术股份有限公司 | 一种实现远程调试的方法 |
CN110502418B (zh) * | 2018-05-17 | 2023-05-23 | 长沙博为软件技术股份有限公司 | 一种实现远程调试的方法 |
CN110032487A (zh) * | 2018-11-09 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 保活监控方法、装置及电子设备 |
CN111338893A (zh) * | 2020-02-20 | 2020-06-26 | 深圳市腾讯计算机系统有限公司 | 进程日志处理方法、装置、计算机设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101630272B (zh) | 2013-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101630272B (zh) | 进程调度方法和系统 | |
US20230254359A1 (en) | Method And System For Real-Time Modeling Of Communication, Virtualization And Transaction Execution Related Topological Aspects Of Monitored Software Applications And Hardware Entities | |
US11119821B2 (en) | FPGA acceleration for serverless computing | |
US9696972B2 (en) | Method and apparatus for updating a web-based user interface | |
CN111542064B (zh) | 一种用于无线接入网的容器编排管理系统及编排方法 | |
US10884807B2 (en) | Serverless computing and task scheduling | |
EP2344953B1 (en) | Provisioning virtual resources using name resolution | |
US8849892B2 (en) | Method and system for brokering messages in a distributed system | |
EP3828701B1 (en) | Mini app processing method, server, device and storage medium | |
US20130047165A1 (en) | Context-Aware Request Dispatching in Clustered Environments | |
CN111694857B (zh) | 存储资源数据的方法、装置、电子设备及计算机可读介质 | |
US20170171337A1 (en) | Scalable data feed system | |
CN108737560A (zh) | 云计算任务智能调度方法及系统、可读存储介质、终端 | |
US20070089107A1 (en) | Database communication method | |
US12014216B2 (en) | Method for platform-based scheduling of job flow | |
CN113835911B (zh) | 内网穿透代理方法、系统、主机及计算机可读存储介质 | |
WO2019024235A1 (zh) | 电子装置、服务器分配控制方法和计算机可读存储介质 | |
CN115640110A (zh) | 分布式云计算系统调度方法和装置 | |
US10025646B2 (en) | Naming of nodes in NET framework | |
CN114979286A (zh) | 容器服务的访问控制方法、装置、设备及计算机存储介质 | |
CN110532045A (zh) | 一种跨进程调用方法及相关装置 | |
CN117076133B (zh) | 云游戏平台异构资源分配方法、计算机装置及存储介质 | |
JP4862056B2 (ja) | 仮想計算機管理機構及び仮想計算機システムにおけるcpu時間割り当て制御方法 | |
CN109618016A (zh) | 一种dns请求的发送处理方法、相关方法及相关装置 | |
WO2022267646A1 (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 | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20160128 Address after: 100094 Beijing City, North Road, Haidian District, No. 68, building 2, floor 2 Patentee after: You Pu Information Technology Co., Ltd of UFSOFT Address before: 100094 Beijing city Haidian District North Road No. 68, UFIDA Software Park Patentee before: UFIDA Software Co., Ltd. |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130327 Termination date: 20180819 |
|
CF01 | Termination of patent right due to non-payment of annual fee |