2 对ACE调研
自适应通信环境(ACE,Adaptive Communication Environment)是可以自由使用、开放源码的面向对象(OO)网络框架(Framework)。ACE实现了许多用于并发通信软件的设计模式。ACE提供了一组丰富的可复用C++ Wrapper Facade(包装外观)和框架组件,可跨越多种平台完成通用的通信软件任务,其中包括:事件多路分离和事件处理器分派、信号处理、服务初始化、进程间通信、共享内存管理、消息路由、分布式服务动态配置、并发执行和同步等等。 ACE简化了使用进程间通信、事件多路分离、显式动态链接和并发的OO网络应用和服务的开发。此外,通过服务在运行时与应用的动态链接,ACE还使系统的配置和重配置得以自动化。
ACE的代码大体可以分为三大部分:
1) OS Adaptation部分:这部分主要是屏蔽各操作系统的API的不同,将系统调用接口统一到C++函数的接口,以实现平台的可移植。
2)C++ Wrapper Facade部分:这部分主要是将相互关联的操作和数据结构封装到C++类中,提供统一的接口,提供强类型的检测,利用C++多态、继承等能力,形成一个架构,使本地的、远端的操作统一在一个相同接口和使用策略下。
3)Framework部分:为一组相关的应用,提供可复用的架构。开发者在确定了应用后,选择可用的架构开发应用程序,不用考虑平台和底层机制。快速的开发。
ACE是网络开发中非常流行的开源框架,使用ACE的好处有:
1)增强可移植性:在ACE组件的帮助下,很容易在一种OS平台上编写并发网络应用,然后快速地将它们移植到各种其他的OS平台上。而且,因为ACE是开放源码的自由软件,无需担心被限制在特定的操作系统平台或编译器上。
2)更好的软件质量:ACE的设计使用了许多可提高软件质量的设计模式,这些质量因素包括通信软件灵活性、可扩展性、可复用性和模块性。
3)更高的效率和可预测性:ACE经仔细设计,支持广泛的应用服务质量(QoS)需求,包括延迟敏感应用的低响应等待时间、高带宽应用的高性能,以及实时应用的可预测性。
4)ACE系统具备工业级质量,可靠性非常高,已经在电信、航空等诸多领域得到广泛部署和应用。
作为一名高性能的、跨平台的网络应用程序开发人员,倘若具备丰富的网络开发经验,ACE的确是个不错的选择。然而,对于本课题,ACE并不合适。理由如下:
1)如前所述,OS Adaptive部分把各平台的编程接口又统一封装了一次,和专有平台代码比,效率会低一些。本课题开发的网络应用程序仅运行于Windows操作系统,不需要考虑跨越多OS平台的问题。
2)封装和复用是近年来流行的软件开发技术。同样地,ACE也提倡这一点。但是,ACE使用了大量的设计模式,学习曲线较长。
3)如果想利用ACE开发高性能的网络应用,开发人员需要比较好的网络开发基础,有时不可避免地要对ACE框架深入了解(比如研究ACE的源代码),这一点违背了框架设计的初衷------简化开发。
3 小结
从调研结果来看以及结合课题的实际要求,本文没有找到非常适合本课题的框架。使用Windows 原生的Socket API 开发具有直观、可控性的优点,因此, 本文决定采用 Windows Socket API进行课题的设计。