ace 高性能服务器,ACE高性能网络编程 - Linux下C/C++、ACE、Boost、高性能服务器端应用 开发技术 - OSCHINA - 中文开源技术交流社区...

ACE高性能网络编程

一、课程目标

本次课程针对使用ACE工具包进行高性能网络应用开发,通过本次课程的学习,学员将具备以下能力:

了解ACE的架构和组件;

理解现代操作系统线程模型、并发以及同步机制;

熟练使用ACE线程管理和同步机制接口开发并发应用;

熟练使用ACE基本的IPC SAP接口,如SOCK_Stream、SOCK_Dgram等;

深刻理解现代操作系统中事件多路分离和分派机制如select、epoll等、了解异步I/O以及完成事件的分派;

熟练使用ACE Reactor组件、Acceptor-Connector组件、Proactor组件等构建稳定、高效和灵活的网络应用。

二、参训要求

参加本次课程的学员须具备以下能力:

熟练掌握C++语法,理解C++面向对象和泛型(模板)机制;

了解TCP/IP协议,有网络编程概念。

三、课程实践环境

学员自备电脑

实践平台 (以下二者之一):

Win32 / Visual Studio 2008 (或更新)

Linux 2.6.18+ x86-32 / GCC 4.1.2+ / Eclipse CDT 、vi

ACE 6.0.0+

四、课程大纲

本次课程由以下几个部分构成:

1、 ACE简介

什么是ACE?

ACE的使用范围;

ACE工具包的架构层次;

ACE的组件简介。

2、ACE基础的网络I/O对象

详细介绍ACE_SOCK、ACE_SOCK_Acceptor、ACE_SOCK_Connector、ACE_INET_Addr等class的使用。

ACE Socket基类:ACE_SOCK;

TCP主动连接对象:ACE_SOCK_Connector;

基于TCP、面向连接的Socket:ACE_SOCK_Stream;

TCP被动连接对象:ACE_SOCK_Acceptor;

基于UDP、无连接的Socket:ACE_SOCK_Dgram (Unicast)、ACE_SOCK_Dgram_Mcast (Multicast)、ACE_SOCK_Dgram_Bcast (Broadcast)。

3、ACE并发编程:线程与同步

线程与进程之区别;

用户线程与内核线程;

不同操作系统中的线程模型;

ACE线程管理:Thread_Manager;

ACE线程同步:ACE_Guard、ACE_Thread_Mutex等;

ACE Task框架:Message_Block、Message_Queue、ACE_Task。

4、ACE Reactor框架

ACE Reactor框架简化事件驱动程序的开发,而事件驱动是很多网络化应用的基本特征,这些应用常见的事件源包括I/O事件、Posix信号或 Windows句柄激发以及定时器到期等。

关于ACE Reactor框架;

关于事件多路分离和分派 (Event demultiplexing and dispatching );

Linux下 I/O事件多路分离机制:select、epoll;

事件处理器 ACE_Event_Handler:

I/O事件(输入、输出)、信号、超时事件、异常事件的捕获和处理;

ACE_Timer_Queue和ACE_Time_Value:

定时器的应用;

ACE_Reactor:ACE的反应器为ACE Reactor框架的核心,负责事件的检测、多路分离和事件处理器的分派;

例程:基于ACE Reactor框架实现一个多人聊天室。

5、ACE Acceptor-Connector框架

ACE Acceptor-Connector框架实现了Acceptor-Connector模式,这种模式通过解除:1,网络化应用中相互协作的对等服务的连接和初始化所需的活动、2,以及它们一旦连接和初始化后所执行的处理的耦合,增强了软件复用和可扩展性。

集成了Message_Queue的ACE_Event_handler:ACE_Svc_Handler;

接受器:ACE_Acceptor;

连接器:ACE_Connector;

例程:基于Acceptor-Connector框架实现一个转发服务器。

6、ACE Proactor框架

Proactor框架引入异步I/O机制,既保留了Reactor框架的事件多路分离,避免多线程的开销,同时还缓和了反应式的同步I/O的瓶颈效应。

关于Proactor模式和Proactor框架;

关于异步I/O;

异步I/O工厂类:

ACE_Asynch_Read_Stream和ACE_Asynch_Write_stream;

ACE_Handler;

前摄式Acceptor-Connector;

前摄器:ACE_Proactor;

例程:基于Proactor框架重新实现多人聊天室。

7、ACE实用工具

ACE日志实用工具:ACE_Log_Msg;

读写配置文件:ACE_Configuration_Heap;

Singleton模式 (单例模式) 的ACE实现:ACE_Singleton类模板。

8、高性能网络编程讨论

考究高性能网络编程中应该遵循的原则,讨论并发、同步、事件多路分离等机制的适用场合。

网络应用的瓶颈在何处?

事件多路分离 vs 一连接一线程 (Event demultiplexing vs One thread per connection);

同步I/O vs 异步I/O (Synchronous I/O vs Asynchronous I/O);

如何适当地使用多线程?

什么时候需要多个 事件多路分离线程?

9、应用层协议定义与实现

为什么要自定义应用层协议?

定义应用层协议 (以XMMEP协议为例);

用C++实现自定义的协议 (以XMMEP协议为例)。

注:XMMEP为X-Messenger Message Exchanging Protocol。

五、时间安排

课程时间:3天,以每天6小时计,具体安排如下:

Day1

1 - ACE简介

2 - ACE基础的网络I/O对象

3 - ACE并发编程

Day2

4 - ACE Reactor框架

5 - ACE Acceptor-Connector框架

Day3

6 - ACE Proactor框架

7 - ACE实用工具

8 - 高性能网络编程讨论

9 - 应用层协议定义与实现

课程回顾与总结

六、课程资源

可获取的课程资源见:教学资源。

QQ:570508473

你可能感兴趣的:(ace,高性能服务器)