Literature
首页医源资料库在线期刊成都医学院学报2007年第2卷第1期

ISAPI在校园网网络带宽管理中的运用

来源:成都医学院学报
摘要:【摘要】目的介绍了校园网中常见的B/S架构模型,指出此类模型在网络带宽管理中存在的问题,提出了对网络带宽进行有效管理的方案。方法运用ISAPI技术对校园网带宽进行管理。结果通过实际应用证明利用ISAPI能对应用服务器带宽进行有效的分配与限制。ISAPI。...

点击显示 收起

【摘要】    目的 介绍了校园网中常见的B/S架构模型,指出此类模型在网络带宽管理中存在的问题,提出了对网络带宽进行有效管理的方案。方法 运用ISAPI技术对校园网带宽进行管理。结果 通过实际应用证明利用ISAPI能对应用服务器带宽进行有效的分配与限制。结论 运用此方法可以改善网络堵塞现象,提高网络服务质量。

【关键词】  B/S;校园网;ISAPI;网络带宽

   The Application of ISAPI for Bandwidth Administration in Campus Net

    HU Yan-mei

    (Department of Basics of Computer Science,Chengdu Medical College,Chengdu 610083,China)

    Abstract:Objective To introduce the B/S model in the campus network,point out the problems of this kind of model in network bandwidth and put forward the effectively administrative scheme to network bandwidth.Methods The ISAPI technology was used to administrate the campus net bandwidth.Results The in-service applying verified that ISAPI was able to carry out effective assignment and restriction on the bandwidth of the server.Conclusion By applying this method,the incidence rate of network blocking up decreased and network service quality was improved.

    Key words:B/S;campus net;ISAPI;network bandwidth

    1  校园网常见应用服务模型

    校园网中的应用服务多采用基于HTTP(HyperTextTransferProtocol超文本传输协议)的WWW应用服务模式。HTTP协议采用了请求/响应模型,通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,响应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体元信息以及可能的实体内容。我们常见的是基于NT架构B/S三层体系结构,采用B/S模式可以大大提高计算机和网络的使用率,B/S三层体系结构中的B是指Brower(浏览器),S是指Server(服务器),B/S三层体系结构由数据显示层、数据逻辑处理层、数据存储层组成[1]。B/S模式是把所有的开发与计算工作转移到了服务器端,客户端是支持解析HTML的浏览器,工作原理如图1所示。这样,不但系统升级维护容易,且应用系统在网络上分配进程和数据时有更大的灵活性,使系统获得更好的性能。

    2  基于IIS与ASP相结合的应用服务模式存在的带宽问题

  2.1  常用访问控制机制

    校园网中的许多重要的资源如教师的教学课件、教学多媒体资源、学院的各种的文档资料等都位于数据源层,对这些资源都提供了有效的访问控制机制。在常见的NT架构的校园网中,通常使用如图2所示的ASP与IIS相结合的B/S结构对校园网内的多媒体资源进行保护。

    2.2  存在的缺陷与漏洞

    但是基于这种管理模式的应用服务架构存在带宽分配方面的缺陷和漏洞。

    2.2.1  基于B/S架构的模式采用HTTP协议来传送数据,HTTP是面向连接的传输协议,它本身不提供带宽限制功能,这样一来当客户端发送给服务器端一个大数据量访问请求时HTTP将尽可满足客户端的访问要求,并在数据传送时分配尽可能大的网络带宽。如有多个这样的访问请求并发执行将很快耗尽服务器的带宽,使得其它访问无法响应,最终直接影响网络服务的质量。

    2.2.2  基于ASP的认识管理方式受脚本语言的限制无法实现对访问带宽的限制[2]。

    以上情况对原有的校园网管理提出了挑战。造成此类问题的主要原因是,在此模式中只能针对访问者的身份进行验证,而无法对带宽进行限制,造成了校园网网络资源的堵塞与浪费。

    3  利用ISAPI对应用服务器带宽进行有效的分配与限制   

  我们采用将IIS与ISAPI服务器扩展相结合的解决办法,利用ISAPI Filter可以直接监测来自于服务器的HTTP请求,从而实现对下载资源的带宽限制。

    3.1  ISAPI服务器扩展简介

    ISAPI服务器扩展是可以被HTTP服务器加载和调用的DLL[3]。ISAPI主要分为ISA和ISAPI Filter两部分。ISA主要用于增强符合Internet服务器API(ISAPI)的服务器的功能。ISAPI Filter位于服务器和客户端之间,能够对服务器和客户端之间的通信进行预处理[4],它可以定制以下的处理:接收HTTP协议头预处理、发送HTTP协议头预处理、HTTP会话结束信息处理、自定义的安全认证机制、URL映射信息处理、日志记录处理等。

    3.2  ISAPI Filter的工作机制

    在CGI中没有与ISAPI Filter直接相对应的部分。ISAPI Filter与服务器之间的接口有两个:GetFilterVersion( )和HttpFilterProc( )。任何ISAPI Filter都必须引出这两个函数以供服务器调用。此处我们使用MFC的CHttpFilter类创建筛选器来管理ISAPI服务器的传入和输出数据,从而实现对应用服务器带宽的管理。

    CHttpFilter::GetFilterVersion执行三个任务:交换版本信息、确定请求的事件、指定传递请求事件的优先级。CHttpFilter::HttpFilterProc是入口点的第二个CHttpFilter成员函数[4]。当事件发生时,服务器通过调用筛选器的HttpFilterProc入口点通知为该事件注册的筛选器。通过分析映射发送传入的客户端请求,并调用相应的成员函数进行处理。可以重写HttpFilterProc以提供特殊的事件处理。

    利用ISAPI Filter我们对原有的应用服务访问控制结构进行了改进,在原有的结构中加入了ISAPI筛选器,其结构如图3所示。由于ISAPI Filter介于IIS与ASP程序之间。当客户端发出访问请求时,ISAPI Filter将对请求进行过滤,对访问带宽进行分配和控制。

    图3  ISAPI Filter对资源的保护

    Fig.3  The visit control sketch of Network bandwidth

    3.3  代码实现

    下面为在VC中的实现代码,此处省略了其它无关代码。

    ……

    void CBinaryWrite::Default(CHttpServerContext* pCtxt)

    {

    char buf[1024];

    pCtxt->GetServerVariable(“HTTP_ALL”,buf,1024);

    this->AddHeader(pCtxt,“Content-type=image/jpeg\r\n”);

    this->AddHeader(pCtxt,“Content-type=text/plain\r\n”);

    StartContent(pCtxt);

    CFile f;

    f.Open(“d:\\PHOTO-055.JPG”,CFile::modeRead);

    ULONG flen=f.GetLength();

    ULONG bRead=0;

    ULONG bRealRead=0;

    while (bRead<flen){

    bRealRead=f.Read(buf,(flen-bRead>1024)?1024:(flen-bRead));

    pCtxt->WriteClient(buf,&bRealRead);

    bRead+=bRealRead;

    Sleep(600);

    }

    f.Close();

    EndContent(pCtxt);

    }

    ……

    带宽限制的关键就是利用Sleep释放CPU资源,让下载过程暂停一定时间,这样通过控制这个暂停的时间,有效的限制下载带宽。

    4  结束语

    在校园网视频服务器上的实践与测试来看,我们编写了很短的代码就实现了对用户下载资源的带宽限制,有效的防止了网络堵塞现象,提高了网络服务质量。采用ISAPI Filter与IIS相结合的带宽限制方法有以下优点[5]:①ISAPI以DLL动态连接库的方式实现,而且系统不会在使用完后马上清除掉DLL在内存中的空间,所以再次使用时会获得更快的速度。②ISAPI在调用者的内部以线程方式运行,所以需要的运行空间也更小。③在同一个DLL中可以集中多个处理函数,并且通过映射宏来指明不同的函数分别对什么样的请求来进行处理。

    目前在ISAPI服务器扩展的运用中也存在一些不足:ISAPI的平台兼容性较差,目前只能用于微软自己的Windows95和NT操作系统上,服务器平台也仅限于IIS(InternetInformationServer)和MSpersonalwebserver以及NTworkstation上的peerwebserver;参考文献较少,调试程序的过程较为困难。

【参考文献】
  [1]Douglas J,Reilly.基于服务器的应用程序技术内幕[M].北京:清华大学出版社,2000:23-24.

[2]丁一强,刘瑞红.精通CGI编程[M].北京:清华大学出版社,1998:103-104.

[3]Tony Beveridge Paul McGlashan.ISAPI/NSAPI Web高级编程[M].北京:中国铁道工业出版社,1999:175-176.

[4]罗光春.Visual C++6.0从入门到精通[M].西安:西电科技大学出版社,1999:460-461.

[5]Jeff Prosise.MFC Windows程序设计[M].(第2版),北京:清华大学出版社,2001:701-702.

作者: 胡艳梅作者单位:成都医学院计算机教研室,成都 6100 2013-2-27
医学百科App—中西医基础知识学习工具
  • 相关内容
  • 近期更新
  • 热文榜
  • 医学百科App—健康测试工具