一种改善Web服务器通信服务稳定性的方法

文档序号:7714908阅读:206来源:国知局

专利名称::一种改善Web服务器通信服务稳定性的方法
技术领域
:本发明涉及通信
技术领域
,具体涉及一种改善Web服务器通信服务稳定性的方法。
背景技术
:Web服务器也称为WWW(WORLDWIDEWEB)服务器,主要功能是提供网上信息浏览服务。WWW是Internet的多媒体信息查询工具,是Internet上近年才发展起来的服务,也是发展最快和目前用的最广泛的服务。正是因为有了WWW工具,才使得近年来Internet迅速发展,且用户数量飞速增长。WWW是WorldWideWeb(环球信息网)的縮写,也可以简称为Web,中文名字为"万维网"。通过万维网,人们只要通过使用简单的方法,就可以很迅速方便地取得丰富的信息资料。由于用户在通过Web浏览器访问信息资源的过程中,无需再关心一些技术性的细节,而且界面非常友好,因而Web在Internet上一推出就受到了热烈的欢迎,走红全球,并迅速得到了爆炸性的发展。如图1所示,Web服务器可以解析(handles)HTTP协议。当Web服务器接收到一个HTTP请求(request),会返回一个HTTP响应(response),例如送回一个HTML页面。为了处理一个请求(request),Web服务器可以响应(response)—个静态页面或图片,进行页面跳转(redirect),或者把动态响应(dynamicresponse)的产生委托(delegate)给一些其它的程序。无论它们的目的如何,这些服务器端(server-side)的程序通常产生一个HTML的响应(response)来让浏览器可以浏览。使用最多的webserver服务器软件有两个微软的信息服务器(IIS),和Apache。Microsoft的Web服务器产品为InternetInformationServer(IIS),IIS是允许在公共Intranet或Internet上发布信息的Web服务器。IIS是目前最流行的Web服务器产品之一,很多著名的网站都是建立在IIS的平台上。IIS是一种Web服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。它提供ISAPI(IntranetServerAPI)作为扩展Web服务器功能的编程接口。如图2所示,互联网服务应用程序编程接口(InternetServerA卯licationProgrammingInterface,简称ISAPI)是一组API函数。它是一种用来开发扩展IIS程序的强有力的方法。使用该方法可以开发基于Web的医学影像显示接口层,通过该接口层Web浏览器就可以访问到集群存储服务器上的影像数据。如图3所示,医学影像显示接口层具体的任务处理操作流程首先Web浏览器通过标准HTTP协议向Web服务器发出取图请求。Web服务器接收到求请后,通过TCP/IP协议向影像存储服务器发出连接请求,收到影像存储服务器的连接确认后读取影像数据,数据读取成功断开连接。图像获取成功后,Web服务器应该根据浏览器传过来的参数进行相应的处理,如调整图像大小,数据压縮,文件格式转换等。图像处理完毕后将结果返回给Web浏明如图4所示,ISAPI扩展任务程序以DLL形式被Web服务加载到自己的进程空间,因此和Web服务共用一个地址空间,且在没有客户请求时可以将其从内存中卸载;当接收到多个客户请求时使用多线程实现任务处理方案,由线程调用ISAPI扩展任务程序,因为ISAPI扩展任务和调用它的进程(IIS)在同一进程地址空间中,这样它们就可以互相直接联系。这种方式一个最大的隐患就是会导致整个IIS当机,有些时候会时整个Web服务器瘫痪。
发明内容本发明要解决的技术问题是提供一种改善Web服务器通信服务稳定性的方法,克服现有技术Web服务器通信服务单纯采用多线程的ISAPI扩展任务与每个客户端进行通信,容易导致通信服务不稳定的缺陷。本发明为解决上述技术问题所采用的技术方案为—种改善Web服务器通信服务稳定性的方法,包括步骤Al、在Web服务器上建立Web服务主进程;A2、所述Web服务主进程将ISAPI扩展任务程序加载到内存中;A3、在所述Web服务器与客户端进行通信时,所述Web服务主进程启动相应的线程执行所述ISAPI扩展任务程序,并同时启动相应的进程完成所述线程要求的处理任务,所述Web服务主进程开辟所述线程和所述进程之间进行通信的共享内存区。所述的改善Web服务器通信服务稳定性的方法,其中所述步骤A3包括步骤建立管理进程,由所述管理进程为所述线程和所述进程在所述共享内存区内分配内存资源。所述的改善Web服务器通信服务稳定性的方法,其中所述步骤A3包括步骤所述Web通信服务主进程在所述共享内存区内设置进程状态表,所述进程状态表用于标记线程和进程的状态。所述的改善Web服务器通信服务稳定性的方法,其中所述步骤A3包括步骤所述Web服务主进程在所述共享内存区内设置进程消息表,所述进程消息表用于存储进程间进行通信的消息内容。所述的改善Web服务器通信服务稳定性的方法,其中所述步骤A3包括步骤所述Web服务主进程在所述共享内存区内设置子进程属性信息结构,所述子进程属性信息结构用于标记所述进程的相关信息。所述的改善Web服务器通信服务稳定性的方法,其中所述步骤A3包括步骤所述Web服务主进程在所述共享内存区内设置进程选择属性信息结构,所述进程选择属性信息结构用于标记所述进程与其它进程的关系信息。所述的改善Web服务器通信服务稳定性的方法,其中所述步骤A3包括步骤所述Web服务主进程在所述共享内存区内设置管理进程属性信息结构,所述管理进程属性信息结构用于记录所述管理进程的管理信息。所述的改善Web服务器通信服务稳定性的方法,其中所述步骤A3包括步骤所述线程将ISAPI扩展任务数据拷入到所述共享内存区内的数据交换区,然后等待处理结果。所述的改善Web服务器通信服务稳定性的方法,其中为所述进程设置生存期,超过生存期的所述进程将结束运行。所述的改善Web服务器通信服务稳定性的方法,其中所述Web服务主进程设置初始默认启动子进程数,如果处于生存状态的所述进程数量小于所述初始默认启动子进程数,所述Web服务主进程启动新的所述进程。本发明的有益效果本发明改善Web服务器通信服务稳定性的方法在Web服务器上采用线程和进程协同完成ISAPI扩展任务的处理方式提供Web服务,消除了单纯多线程通信服务不稳定的因素,极大改善了Web服务器的通信服务稳定性,本发明改善Web服务器通信服务稳定性的方法是Web服务器技术的重大进步。本发明包括如下附图图1为现有技术Web服务示意图;图2为现有技术通过ISAPI医学影像显示接口层访问集群存储服务器上的影像数据示意图;图3为现有技术通过ISAPI医学影像显示接口层访问集群存储服务器上的影像数据流程图;图4为现有技术Web服务器进程IIS与ISAPI扩展程序在同一地址空间的示意图;图5为本发明技术方案示意图;图6为本发明设置管理进程进行资源管理的示意图7为本发明将数据结构映射到共享内存区示意图8为本发明Web服务线程的运行流程图9为本发明Web服务管理进程运行流程图10为本发明Web服务进程运行流程图11为本发明实施例示意图;图12为本发明实施例通过任务管理器查看进程运行状态的示意图13为本发明实施例主进程日志示意图14为本发明实施例子进程日志示意图。具体实施例方式下面根据附图和实施例对本发明作进一步详细说明如图5所示,为了保证Web服务器能够提供稳定的Web通信服务,把所有的处理任务量化成数据的输入、处理、输出三个环节。ISAPI扩展任务请求数据的输入和处理结果数据的输出只涉及到数据内容的拷贝,环节简单不可能出现什么问题。问题主要出现在ISAPI扩展任务处理过程,由于影像处理的请求任务比普通的文字处理请求要复杂多变,处理过程可能出现的问题很难全部控制,所以将该环节独立到Web服务程序之外来考虑,这样就不会影响Web服务程序的稳定性。如何能将ISAPI扩展任务处理环节独立到Web服务程序(Web服务主进程)之外呢?我们使用了一种方法将每一个ISAPI扩展任务独立成一个个进程,将并发处理的每一个线程任务对应一个进程,由每一个进程来处理该线程需要完成的任务,当发生一个ISAPI扩展任务时线程将输入数据提交给该进程,由进程处理任务,线程等待进程处理,进程处理结束将结果传给线程,线程返回请求结果。任务线程与处理进程通道的搭建由Web服务程序(Web服务主进程)或者管理进程来负责,Web服务主进程或者管理进程同时实现处理进程分配策略。当处理进程发生错误无法完成处理任务,线程结束等待返回错误信息,Web服务主进程或者管理进程将该处理进程关闭,重新启动一个新的进程代替原进程。使用这种方法可以将处理环节独立于服务程序(Web服务主进程)之外,避免系统处理错误导致崩溃的可能性。如图6和图7所示,根据上述说明,我们可以知道该方法的实现主要是分成三部分,分别是Web服务主进程(WebServerProcess)、数据交换区(SharedMemory)、ISAPI扩展任务进程(TaskProcess)。但是这三部分如何联系起来以及如何避免线程相互抢夺资源呢?为了将这三部分有效的组织起来,还需要再引入一个管理进程(ManageProcess),由管理进程来对资源进行有效的分配。因为系统在运行的时候会为每个进程分配不同的内存区域,对不同进程来说,它们具有独立的数据空间,要进行数据传递需要分配一个共享内存区(SharedMemory)。首先在启动Web服务主进程的时候可以通过系统函数CreateFileMa卯ing创建一个共享内存区,通过MapViewOfFile将内存区影射到进程地址中,然后定义三个数据结构,分别记录是子进程属性信息结构、进程选择属性信息结构和管理进程属性信息结构子进程属性信息结构structIXhildProcInfo{LProcStateState;〃进程当前状态HANDLEProcessHandle;〃进程句柄DWORDProcessld;〃进程编号HWNDHandle;〃进程接收消息对象句柄DATE0penTime;〃进程打开时间DATESuspendTime;〃进程最后一次挂起时间DWORDChannelId;〃通道进程编号DWORDThreadld;〃通道线程编号intCommand;〃处理命令编号intDataState;〃数据读写状态0:输入,1:输出,_1:错误boolIsLastFragment;〃是否为结尾数据,True为数据传输结束intSize;〃数据大小charData;〃任务处理数据交换区};进程选择属性信息结构structLPipeProcInfo{DWORDProcessld;〃进程编号intRequest;〃向父进程请求通道句柄,O:无处理任务,1:有处理6任务intResult;〃返回值,ON:返回处理子进程索引DWORDChannelId;〃请求通道进程IDDWORDThreadld;〃请求通道线程ID};管理进程属性信息结构structLParentProcInfo{HWNDHandle;〃父进程对象句柄intMaxProcCo皿t;〃子进程总数LPipeProcInfoChannel[100];〃任务进程选择};将三个结构影射到共享内存区中,同时由Web服务主进程或者管理进程在共享内存区中设置进程状态表,进程状态表如表1所示,这样进程间就可以知道各自的状态,以便如何进行下一步的操作。表1:;IJProcState.'■<table>tableseeoriginaldocumentpage7</column></row><table>对进程状态的记录后还需要一组用于进程间通信的消息命令,由Web服务主进程或者管理进程在共享内存区中设置进程消息表,进程消息表如表2所示。表2<table>tableseeoriginaldocumentpage7</column></row><table>如图8、图9和图10所示,管理进程启动后将进程消息句柄记录在管理进程属性信息结构中。为了避免启动任务进程影响系统的运行效率,在启动管理进程后由Web服务主进程或者管理进程预先启动几个处理子进程,使用CreateProcess启动任务进程,函数调用结束后返回进程ID号,找出进程状态表中未记录进程信息的位置,将内容写入该位置,同时将进程设置为pslnit状态表示该任务进程正在启动中,还不能接收任务处理。子进程启动后通过系统函数OpenFileM即ping打开管理进程创建的共享内存区,通过M即ViewOfFile将内存区影射到该进程地址中,这样子进程就可以访问进程信息列表中的信息。使用GetCurrendProcessId获取该进程ID找出列表中记录该进程的位置,将进程状态修改为psSuspend,说明进程已经启动成功,可以执行任务。同时使用PostMessage向管理进程发出WM_PR0CESS_0PEN消息,通知管理进程可以为该进程分配任务。管理进程进入等待任务求请状态,实时检测管道进程属性信息表变量Request属性值,如果值为1表示需要分配一个资源给服务线程来处理任务。当Web服务主进程接收到一个任务请求时,首先判断处理子进程属性信息结构,该线程是否已经分配了处理资源,如果已经分配了资源,直接向处理进程发出处理请求,如果未分配资源,将管道进程属性信息变量Request值设为1,向管理进程发出请求,管理进程为该线程分配资源,将Result设置为0N的值,指定处理子进程属性信息具体的位置,同时向分配进程发出WM_PROCESS_EXECUTE消息,通知进程进入执行状态。如果所有的进程都处于处理状态,管理进程直接启动一个进程来执行任务。的到资源后线程向该结构分别填写Command:处理命令信息,DataState:0输入状态,Size:输入数据大小,Data:数据内容,State:进程状态设为psExecute,然后等待进程处理结束返回结果。如果Data定义的最大空间不能放下输入的数据,可以采用多次填入数据的方法来实现大数据的输入,采用IsLastFragment来识别数据是否传输完成。处理进程接收到处理任务,从子进程属性信息结构中读取数据,进行处理,处理结束后向任务线程返回处理结果,分别填写DataState:l输出状态,Size:输出数据大小,Data:数据内容。如果处理错误DataState值-l处理错误。如果Data定义的最大空间不能放下输出的数据,可以采用多次填入数据的方法来实现大数据的输出,采用IsLastFragment来识别数据是否传输完成。任务线程判断DataState状态如果值为1,说明任务处理完成读取Data数据,将内容返回给Web浏览器,结束任务。如果值为-1,说明处理错误,将进程状态设置为psError,结束任务。管理进程定期检测各进程状态,发现有psError状态进程,将其关闭。为了提高线程与进程交互效率,避免任务线程每次处理都要向管理进程申请资源,所以当进程任务处理完后,并没有直接退出执行状态,仍然记录对应线程信息,延迟一段时间,等待该线程的下一次处理任务。延迟一段时间,如果未接收到对应线程任务,处理子进程重新进入psSuspend状态将挂起时候记录在信息列表结构变量SuspendTime中,同时发管理进程发出WM_PR0CESS_SUSPEND消息,通知管理进程该处理进程可以接收下一个线程任务。每个任务进程都设置了一个生存期,然后通过与SuspendTime时间进行比较来判断是否已经超过了进程的生存期。如果进程已经超过生存期结束进程,向Web服务主进程或者管理进程发出WlLPROCESS—CLOSE消息。由于每个进程都有一定的生存期,也就是说过一段时间后所有的旧进程都会被关闭,如果没有了任务进程,就无法接收任务请求,所以Web服务主进程或者管理进程设置了一个初始默认启动进程数,如果进程数量小于初始默认启动进程数,Web服务主进程或者管理进程会启动新的任务进程来补充处理任务。使用定期更换进程的方法可以进一步提高系统的稳定性。当系统关闭的时候Web服务主进程或者管理进程会向各处理子进程发出WM_PR0CESS_ST0P消息,要求关闭所有处理。使用该方法,Web服务主进程内的线程任务只负责将任务输入数据拷入到数据交换区,然后等待处理结果,处理结束后再从数据交换区拷出输出数据返回结Web浏览器,Web服务主进程内部环节简单,稳定性高。具体实施例如图11所示,在医学影像应用中,为了实现跨internet访问远端的存储服务器影像数据,使用本方法开发了一个基于Web的医学影像显示接口层,通过该接口层Web浏览器就可以访问到PACS集群存储服务器上的影像数据,将其传送到Web浏览器上。Web服务器上包括三个应用程序,分别是WebPACS.dll该程序是ISAPI扩展动态库用于接收浏览器的访问请求,WebServerManage.exe,负责管理处理进程,WebServerChild.exe,负责处理WebPACS.dll接收的处理任务。图12所示是应用程序实例后在任务管理器中的表现方式,w3wp.exe是Window2003系统IIS的Web服务实现程序,由它加载WebPACS.dll。WebPACS.dll、WebServerManage和WebServerChild实例化后的具体运行流程WebServerManage.exe主进程启动后将进程消息句柄记录在属性信息中。为了避免启动任务进程影响系统的运行效率,在启动管理主进程后应该预先启动几个处理子进程,使用CreateProcess启动任务进程,函数调用结束后返回进程ID号,找出子进程信息列表中未记录进程信息的位置,将内容写入该位置,同时将进程设置为pslnit状态表示该WebServerChild.exe任务进程正在启动中,还不能接收任务处理。WebServerChild.exe子进程启动后打开管理进程创建的共享内存区,将其影射到该进程地址中,这样处理子进程就可以访问进程信息列表中的信息。将进程状态修改为psSuspend,说明进程已经启动成功,可以执行任务。同时使用PostMessage向管理主进程发出WM_PR0CESS_0PEN消息,通知管理主进程可以为该进程分配任务。WebServerManage.exe主进程进入等待任务求请状态,实时检测管道进程属性信息表变量Request属性值,如果值为1表示需要分配一个资源给服务线程来处理任务。当Web服务接收到一个任务请求时,WebPACS.dll启动一个线程任务,首先判断处理子进程属性信息结构,该线程是否已经分配了处理资源,如果已经分配了资源,直接向WebServerChild.exe处理进程发出处理请求,如果未分配资源,将管道进程属性信息变量Request值设为1,向WebServerManage.exe主进程发出请求,管理进程为该线程分配资源,将Result设置为0N的值,指定处理子进程属性信息具体的位置,同时向分配进程发出WM_PROCESS_EXECUTE消息,通知WebServerChild.exe进程进入执行状态。如果所有的进程都处于处理状态,管理进程直接启动一个进程来执行任务。的到资源后线程向该结构分别填写Command:处理命令信息,DataState:0输入状态,Size:输入数据大小,Data:数据内容,State:进程状态设为psExecute,然后等待进程处理结束返回结果。如果Data定义的最大空间不能放下输入的数据,可以采用多次填入数据的方法来实现大数据的输入,采用IsLastFragment来识别数据是否传输完成。例如客户端需要将PACS服务器上的DICOM图像文件专换成一个JPG格式文件,返回到Web浏览器上进行显示,可以在Web浏览器输入如下命令http://www.testwado.com/WebPACS.dllwadorequestType=WADO9&studyUID=1.2.826.0.1.3680043.2.461.20041015144704.1956.0410150046&seriesUID=1.2.840.113564.10.1.35698029491047416502138619819516012856218&objectUID=1.2.840.113564.10.1.229317351633176186331581051171102532328274&contentType=image%2Fjpeg&columns=800&rows=800&windowCenter=1500&windowWidth=2000&imageQuality=90当服务器接收到这条命令后,htto:〃www.testwado.固/WebPACS.dll为IIS解析内容,后面参数我们通过WebPACS.dll将内容写入处理子进程属性信息结构传送给WebServerChild.exe进行处理。WebServerChild.exe进程接收到处理任务,从处理子进程属性信息表中读取数据,首先到PACS存储服务器读取对应的DICOM图像文件,然后根据输入参数将宽高设置成800X800,窗宽窗位设置成丽2000WL1500,以90的压縮率转换成JPG图像文件,处理结束后向任务线程返回处理结果,分别填写DataState:l输出状态,Size:输出数据大小,Data:数据内容。如果处理错误DataState值-l处理错误。如果Data定义的最大空间不能放下输出的数据,可以采用多次填入数据的方法来实现大数据的输出,采用IsLastFragment来识别数据是否传输完成。WebPACS.dll任务线程判断DataState状态如果值为l,说明任务处理完成读取Data数据,将内容返回给Web浏览器,结束任务。如果值为-l,说明处理错误,将进程状态设置为psError,结束任务。管理进程定期检测各进程状态,发现有psError状态进程,将其关闭。为了提高WebPACS.dll线程与WebServerChild.exe进程交互效率,避免任务线程每次处理都要向管理进程申请资源,所以当进程任务处理完后,并没有直接退出执行状态,仍然记录对应线程信息,延迟一段时间,等待该线程的下一次处理任务。延迟一段时间,如果未接收到对应线程任务,WebServerChild.exe进程重新进入psSuspend状态将挂起时候记录在信息列表结构变量SuspendTime中,同时向管理进程发出WM_PROCESS_SUSPEND消息,通知管理进程该处理进程可以接收下一个线程任务。我们为每个WebServerChild.exe进程设置了一个生存期,然后通过与SuspendTime时间进行判断来确认是否已经超过了进程的生存期。如果进程已经超过生存期结束进程,向管理进程发出WM_PROCESS_CLOSE消息。由于每个WebServerChild.exe进程都有一定的生存期,也就是说过一段时间后所有的旧进程都会被关闭,如果没有了WebServerChild.exe进程,就无法接收任务请求,所以WebServerManage.exe进程设置了一个初始默认启动进程数,如果进程小于指定数量,管理进程会启动新的任务进程来补充处理任务。使用定期更换进程的方法可以进一步提高系统的稳定性。当系统关闭的时候WebServerManage.exe进程会向各WebServerChild.exe子进程发出WM_PR0CESS_ST0P消息,要求关闭所有处理。如图13和图14所示,在主进程日志中可以了解到各任务进程的使用情况,在子进程日志中可以了解到进程访问存储服务器数据及返回web数据的使用情况。使用该方法,Web服务程序内的线程任务只负责将任务输入数据拷贝到数据交换区,然后等待处理结果,处理结束后再从数据交换区拷贝输出数据返回结Web浏览器,服务进程内部环节非常简单,稳定性高。当WebServerChild.exe处理当前一次任务的时候发生未知的异常错误,中止了程序,WebPACS.dll任务线程等待处理过程,延迟一段时间后认为系统错误,结束等待,向浏览器回返错误信息,这样不会影响到Web服务的稳定性。本领域技术人员不脱离本发明的实质和精神,可以有多种变形方案实现本发明,以上所述仅为本发明较佳可行的实施例而已,并非因此局限本发明的权利范围,凡运用本发明说明书及附图内容所作的等效结构变化,均包含于本发明的权利范围之内。1权利要求一种改善Web服务器通信服务稳定性的方法,其特征在于,包括步骤A1、在Web服务器上建立Web服务主进程;A2、所述Web服务主进程将ISAPI扩展任务程序加载到内存中;A3、在所述Web服务器与客户端进行通信时,所述Web服务主进程启动相应的线程执行所述ISAPI扩展任务程序,并同时启动相应的进程完成所述线程要求的处理任务,所述Web服务主进程开辟所述线程和所述进程之间进行通信的共享内存区。2.根据权利要求l所述的改善Web服务器通信服务稳定性的方法,其特征在于,所述步骤A3包括步骤建立管理进程,由所述管理进程为所述线程和所述进程在所述共享内存区内分配内存资源。3.根据权利要求2所述的改善Web服务器通信服务稳定性的方法,其特征在于,所述步骤A3包括步骤所述Web通信服务主进程在所述共享内存区内设置进程状态表,所述进程状态表用于标记线程和进程的状态。4.根据权利要求3所述的改善Web服务器通信服务稳定性的方法,其特征在于,所述步骤A3包括步骤所述Web服务主进程在所述共享内存区内设置进程消息表,所述进程消息表用于存储进程间进行通信的消息内容。5.根据权利要求4所述的改善Web服务器通信服务稳定性的方法,其特征在于,所述步骤A3包括步骤所述Web服务主进程在所述共享内存区内设置子进程属性信息结构,所述子进程属性信息结构用于标记所述进程的相关信息。6.根据权利要求5所述的改善Web服务器通信服务稳定性的方法,其特征在于,所述步骤A3包括步骤所述Web服务主进程在所述共享内存区内设置进程选择属性信息结构,所述进程选择属性信息结构用于标记所述进程与其它进程的关系信息。7.根据权利要求6所述的改善Web服务器通信服务稳定性的方法,其特征在于,所述步骤A3包括步骤所述Web服务主进程在所述共享内存区内设置管理进程属性信息结构,所述管理进程属性信息结构用于记录所述管理进程的管理信息。8.根据权利要求7所述的改善Web服务器通信服务稳定性的方法,其特征在于,所述步骤A3包括步骤所述线程将ISAPI扩展任务数据拷入到所述共享内存区内的数据交换区,然后等待处理结果。9.根据权利要求8所述的改善存储服务器通信服务稳定性的方法,其特征在于为所述进程设置生存期,超过生存期的所述进程将结束运行。10.根据权利要求9所述的改善存储服务器通信服务稳定性的方法,其特征在于所述Web服务主进程设置初始默认启动子进程数,如果处于生存状态的所述进程数量小于所述初始默认启动子进程数,所述Web服务主进程启动新的所述进程。全文摘要本发明公开了一种改善Web服务器通信服务稳定性的方法,包括步骤A1、在Web服务器上建立Web服务主进程;A2、所述Web服务主进程将ISAPI扩展任务程序加载到内存中;A3、在所述Web服务器与客户端进行通信时,所述Web服务主进程启动相应的线程执行所述ISAPI扩展任务程序,并同时启动相应的进程完成所述线程要求的处理任务,所述Web服务主进程开辟所述线程和所述进程之间进行通信的共享内存区。文档编号H04L29/06GK101782864SQ200910188548公开日2010年7月21日申请日期2009年12月1日优先权日2009年12月1日发明者陈闽峰申请人:深圳市蓝韵实业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1