当前位置:主页   - 电脑 - 程序设计 - C/C++
协作半驻留式服务器程序开发框架 --- 基于 Postfix 服务器框架改造
来源:网络   作者:zsxxsz   更新时间:2011-10-08
收藏此页】    【字号    】    【打印】    【关闭

  一、概述

   现在大家在和Java, PHP, .net写应用程序时,都会用到一些成熟的服务框架,所以开发效率是比较高的。而在用C/C++写服务器程序时,用的就五花八门了,有些人用ACE, 有些人用ICE(号称比ACE强许多),等等,这类服务器框架及库比较丰富,但入门门槛比较高,所以更多的人是自己直接写服务器程序,初始写时觉得比较简单,可时间久了,便会觉得难以扩展,性能低,容易出错。其实,Postfix 作者为我们提供了一个高效、稳定、安全的服务器框架模型,虽然Postfix主要用作邮件系统的 mta,但其框架设计却非常具有通用性。ACL(http://acl.sourceforge.net/) 的作者将Postfix的服务器框架模型抽取出来,形成了更加通用的服务器程序开发框架,使程序员在编写服务器程序时可以达到事半功倍的效果。本文主要介绍了ACL中acl_master服务器程序(基于Postifx服务器程序框架)的设计及功能。

  二、框架设计图

  如下图所示:

协作半驻留式服务器程序开发框架 --- 基于 Postfix 服务器框架改造

  图片看不清楚?请点击这里查看原图(大图)。

  图1--框架图

     master主进程为控制进程,刚启动时其负责监听所有端口服务,当有新的客户端连接到达时,master便会启动子进程进行服务,而自己依然监控服务端口,同时监控子进程的工作状态;而提供对外服务的子进程在master启动时,若没有请求任务则不会被启动,只有当有连接或任务到达时才会被master 启动,当该服务子进程处理完某个连接服务后并不立即退出,而是驻留在系统一段时间,等待可能的新连接到达,这样当有新的连接到达时master就不会启动新的子进程,因为已经有处于空闲的子进程在等待下一个连接请求;当服务子进程空闲时间达一定阀值后,就会选择退出,将资源全部归还操作系统(当然,也可以配置成服务子进程永不退出的模式)。因此,可以称这种服务器框架为协作式半驻留式服务器框架,下面将会对协作式和半驻留作进一步介绍。

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明