网络程序复杂性
固有复杂性,由所在领域存在的主要难题造成
选择合适的通信机制,并设计良好的协议来有效使用这些机制
有效使用并发机制,使系统获得可预计的,可靠的高性能
设计合理网络服务,以有效利用现有计算资源,并降低将来的维护成本
管理和配置服务,以获得最大程度的系统可用性和灵活性
偶发复杂性,源自开发网络应用软件时使用的工具和技术
缺乏类型安全,可移植,可扩充的原始os api
算法分解的广泛使用,无谓地造成网络应用程序在维护和扩充的困难
网络应用中,核心概念和功能的不断发现和创造,造成软件生命周期的成本无谓的居高不下
4个设计空间
通信空间
并发空间
服务空间
配置空间
面向对象中间件体系结构
主机基础设施中间件 host infrastructure middleware(对os并发和进程间通信机制进行封装,以获得面向对象编程能力)
分布式中间件 distribution middleware(使用并扩充了主机基础设施中间件,使得一些网络编程任务自动化,包括:连接管理和内存管理,整编,解编,端点和请求多路分离,同步,多线程,使用分布式中间件,程序员就可以像开发独立应用程序那样开发分布式应用程序;只需要向目标对象请求操作,不必关心目标对象的位置,语言,OS或硬件)
公共中间件服务 common middleware service(扩展了分布式中间件,定义了更高层次,独立于特定领域的服务,例如,事件通知,日志记录,持久性,安全可恢复事务)
特定领域中间件服务 domain-specific middleware service (可以满足特定领域,如电信,电子商务的特定需求)
ace层次体系结构
- networked service compnets layer
- framework layer(acceptor, connector,service handler)
- 事件多路分离和分发框架,ACE Reactor,ACE Proactor
- 连接建立和服务初始化框架,Acceptor-Connector,将“主动和被动初始化角色”同“初始化结束之后,通信对等服务所执行的应用处理”分离开来
- 并发框架,Active Object,Half-Sync/Half-Async,将方法的执行和方法的请求,同步处理和异步处理分离开来
- 服务配置器框架,Component Configurator
- 流框架,Pipe and Filters
- c++ wrapper facade layer
- 将函数和数据封装在类型安全的面向对象接口中,占代码的50%
- os adaptation layer
- ACE_OS ACE开发者需要了解,占代码的10%
时间: 2024-10-23 02:54:37