科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件ATL服务器:用VC++创建高性能的Web应用程序和XML Web服务(3)

ATL服务器:用VC++创建高性能的Web应用程序和XML Web服务(3)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

C++是很多网络中繁忙站点的核心。这为构建中间层企业逻辑提供了高度的性能基础,经常用于扩展Web服务器和动态地生成HTML......

作者:佚名 来源:Microsoft 2007年11月5日

关键字: ATL 服务器 VC++ web 应用程序

  • 评论
  • 分享微博
  • 分享邮件
ATL服务器解决方案的大部分工作是在应用程序DLL中实现的。"替代方法映射"部分将.SRF文件中出现在双大括号中的名字映射到应用程序DLL源文件。

BEGIN_REPLACEMENT_METHOD_MAP(CHelloWorld)
REPLACEMENT_METHOD_ENTRY("Title", OnTitle)
REPLACEMENT_METHOD_ENTRY("HelloWorld", OnHelloWorld)
END_REPLACEMENT_METHOD_MAP()

  表 2. HelloWorld.cpp文件中的替代方法映射部分

  OnTitle 和 OnHelloWorld方法(与替代方法映射部分包含在同一个文件内)的实现比较简单。它们使用ChttpResponse对象的流操作符将动态内容写入到响应流中,然后发送到客户端。

HTTP_CODE OnTitle()
{
m_HttpResponse << "HelloWorld Sample";
return http_success;
}

http_code OnHelloWorld()
{
m_HttpResponse << "Hello World!";
return HTTP_SUCCESS;
}

  表 3. HelloWorld.cpp文件中 OnTitle 和 OnHelloWorld 方法的实现

  当然,应用程序DLL能做的远远超过这点事件。ATL服务器包含的类简化了对Crypto API和微软消息队列(MSMQ)的访问,允许通过简单邮件传输协议(SMTP)进行简单的邮件发送。应用程序DLL有许多应用类用于帮助对请求的处理。它们包括用于请求参数的集合类,cookies和POST数据。多目的Internet邮件提高警惕(MIME)语法分析器可用于分析发送到Web服务器的MIME数据。请求处理器有权访问一些接口,这些接口使它能够访问存在于ISAPI扩展的EXTENSION_CONTROL_BLOCK(带请求上下文的由IIS传递到ISAPI扩展的数据结构)中的所有信息。如果所有内容都必须动态生成,在不存在.SRF文件的情况下也可以使用请求处理器。

  在处理.SRF文件的过程中,ATL 服务器 ISAPI DLL由文件的开头开始执行,调入在"handler"替代标记内指定的应用程序DLL。在应用程序DLL中将调用输出端口指针,此指针然后传递所请求的处理器的名字。如果找到这个处理器,应用程序DLL将创建这个处理器的一个实例,然后处理器的IRequestHandler接口将返回到ISAPI扩展。扩展然后调用IRequestHandler::HandleRequest方法,向它传递有关HTTP请求的信息。

  HandleRequest方法装入模板,对其进行分析,并将它发送到响应流中。作为性能上的一个改进,模板只分析一次。一旦它被分析过了,它就由ISAPI扩展以分析格式缓存。以后对模板的请求将ISAPI扩展的模板缓存提供服务。

  本例的结果非常简单:在浏览器中显示两行文本(图2)。你将注意到文本"HelloWorld Sample"的格式在.SRF文件中进行管理:一对HTML头标签被{{标题}}调用所包围。



图 2. HelloWorld ATL 服务器应用程序的浏览器输出

  总结

  ATL服务器目前对于开发人员编写ISAPI代码是理想的,因为它在ISAPI和平台APIs上提供了常用代码的基本实现和简单的C++抽象层,简化了ISAPI开发中的编程任务。对此类库的补充支持是Visual C++开发环境中的向导和部署及调试支持。

  预见到对Web应用程序有极大性能需求的建筑和开发经理也应当考虑ATL服务器。ATL服务器使用已经证实的方法确保在IIS之上最高级别的性能。希望进行高性能C++和IIS开发的任何C++开发人员,特别是具有ATL经验的开发人员将发现ATL服务器是有用的。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章