ACE详细介绍译文

收藏

预览图
编号:83621934    类型:共享资源    大小:3.02MB    格式:PDF    上传时间:2020-06-02 上传人:为*** IP属地:中国
20
积分
关 键 词:
ACE 详细 介绍 译文
资源描述:
adaptive communication environment Douglas c . Schmidt Schmidt @ cs . wustl . edu 3358 www . cs . wustl . edu/_ Schmidt/DepartmentACE面向在UNIX和Win32平台上开发高性能通信服务的开发人员。简化了使用进程间通信、事件分离、直接动态链接和并发机制的面向对象的网络应用程序和服务的开发。ACE在运行时动态地将服务连接到应用程序,并在一个或多个进程或线程中执行这些服务,从而自动配置和重新定位系统。简介:1.1问题:分布式软件危机稳健性和高性能分布式计算系统不断增长。这些系统包括全球个人通信系统、网络管理平台、在线财务分析系统、实时电子航空系统等。分布式计算是一种面向未来的技术,通过连接和交互增强协作。通过并行处理提高性能,通过复制提高可靠性和可用性。模块化设计提高了可扩展性和可移植性:通过动态配置和重新配置提高了可扩展性。分布式计算提供了很多潜在优势,但通信系统的开发成本高,容易出错。组件和框架是一种面向对象的编程语言,旨在降低软件成本和提高软件质量,得到了广泛的宣传。剥离宣传的组件,面向对象的基本优点是强调模块化和可扩展性,在固定界面内封装实施细节,提高软件可重用性。开发人员成功地将面向对象的技术应用于确定的领域。例如,MFC GUI框架和OCX组件。这些技术有局限性,但更好地说明了重复使用常用框架和组件时所能获得的效率提高。软件开发人员在通信、医疗图像、航空电子和在线交易过程中缺乏标准中间件组件。因此,开发人员必须从最底层开始构建、验证和维护软件系统。这种开发需要很多时间,在全球竞争环境中是不允许的。连接到工业生产后,在这种情况下会出现“分布式软件危机”。这意味着用于分布式计算的硬件和网络越来越小,速度越来越快、成本更低,分布式软件越来越大,速度越来越慢,开发和维护成本也越来越高。分布式软件构建的挑战来自分布式系统固有的复杂性和次要复杂性。固有复杂性主要来自开发分布式系统的基本挑战,该系统可检测和修复网络和主机的故障,减少通信延迟的影响,并通过网络识别和优化服务组件和工作负载分配。次要复杂性来自开发通信软件的工具和技术的限制。例如,许多标准网络机制(如sockets和TLI)和可重复使用的构件库(如X windows和Sun RPC)缺少类型安全性、可移植性和可扩展的API。同样,通用网络编程接口(如sockets和TLI)使用弱类型的整数句柄,因此可能会产生潜在的允许错误。另一种复杂性来自广泛使用的算法分解,这可能导致不可扩展、不可重复使用的软件系统。OO技术经常创建图形用户界面,但是算法分解技术适用于分布式软件的一般开发。这个问题的深化在于广泛使用的网络编程书的例子都基于面向算法的设计和实现技术。缺乏可扩展性和可重用性在很大程度上是复杂的分布式软件的问题。可扩展性主要是为了随着时间的推移,服务和特性发生变化和提高。可重复使用性主要是平衡专业开发人员的知识域,防止常见解决方案的重新开发和验证。 1.2解决方案:面向对象的设计模式和框架因昂贵的分布式软件概念和有助于减轻图像核心重新发现和重新生成的面向对象的设计模式和框架而受到关注。模式提供了封装设计知识的方法,为标准分布式软件开发提供了解决方案。例如,模式可用于描述微体系结构的recurring(例如reactor和Active Object),微体系结构是遍历对象结构的抽象,在分布式通信软件的构建过程中证明是有用的,但是抽象架构文档不能直接生成可重用的代码。因此,有必要加强对模式的研究以及帧帧的创建和使用。框架集成了一组抽象类,并通过定义这些类的实例进行协作的标准方法向应用程序提供可重用的软件组件。框架实例化了设计模式families,从而使开发人员可以避免重新生成公用分布式软件组件。结果是可以在框架中继承和实例化可重复使用的构建块组件以自定义的“准”应用程序骨骼。框架与主要分布式编程任务(例如服务初始化、错误处理、流控制、事件分离、并发控制)紧密集成,因此可重用范围比使用现有库或OO库大得多。这篇论文由以下部分组成:第2部分给出了ACE的结构和函数。第3部分介绍有关ACE C包组件和高级ACE框架组件和模式的详细信息。第4部分介绍在ACE中构建的多个网络应用程序的实现。第五部分是结论。2 ACE概述本文研究ACE以说明OO模式和框架如何应用于分布式软件。ACE是免费的OO工具包,包含可重复使用的wrappers、类和可在许多操作系统平台上交互的常用网络编程框架的丰富集合。ACE提供以下任务:事件分离和事件处理程序调度?建立连接和初始化服务?交互式通信和共享内存管理?动态配置和分布式通信服务?并行/并行和同步?高级分布式服务组件(例如名称服务、事件服务、日志服务等)ACE工具包采用分层设计。图1显示了ACE组件的垂直和水平相关性。ACE的基础是面向对象的wrappers,它封装了现有的操作系统网络编程机制。上层扩展了底层wrappers,以提供复盖广泛的面向应用程序的网络任务和服务范围的面向对象的框架和组件。本节其馀内容提供了ACE类的结构和功能的一般概述。第3部分进一步介绍ACE网络编程特性和组件。在本文中,ACE组件被解释为Booch表示法。实心矩形表示将多个相关类合并到公共名称空间中的类。实体云表示对象。嵌套表示图像之间的组织关系。法线角表示两个对象之间存在某种类型的连接。虚线云表示多个类。直接边显示类之间的继承关系;一端的小圆和不连接的边表示两个类之间的构造或使用关系。“a”在三角形中表示抽象类。抽象类不能直接实例化,必须首先由子类继承。抽象类的子类必须在实例化所有类的对象之前提供该类的所有抽象方法的定义。2.1 ACE操作系统适应性层ACE源包含85,000多行c语句。大约9,000行代码属于操作系统适应层。此层屏蔽了ACE的高水平和与平台相关的非独立性。这包括以下操作系统机制:多线程和同步?进程间通信?事件分离?直接动态链接?内存映射文件和共享内存2.2 ACE OO Wrappers是面向对象的Wrappers,位于操作系统适应性层之上。这些w r a p e r s封装并增强了并发性、进程间通信(I P C)和最新操作系统的虚拟内存管理机制。 应用程序可以合并和分组这些组件,方法是选择以下ACE包的分类继承、聚集和/或实例化:IPC SAP-封装本地和/或远程服务访问点(IPC SAP机制,如sockets、TLI、UNIX FIFOs和STREAM管道,以及Win32命名管道)?初始化访问—ACE提供了连接器和加速器组件的集合,这些组件在初始化完成后将活动和手动初始化角色与通信访问中执行的操作分开。-嗯?并发机制—ACE是否将底层操作系统(如互斥和信号量)的多线程和多进程机制抽象出来,以生成高级面向对象(如活动对象)的并发抽象?内存管理机制ACE内存管理组件提供灵活、可扩展的抽象,用于管理共享内存和本地内存的动态定位和内存单元分配。-嗯?CORBA集成——ACE可以与CORBA产品集成(例如单线程和多路径Orbix)。OO wrappers的使用通过类型安全的面向对象的界面封装操作系统的通信、并发和虚拟内存机制,提高了应用程序的稳定性。因此,您可以避免对主操作系统库进行应用程序直接访问,主操作系统库实施为较弱类型的c界面。因此,OO语言编译器(例如c和Java)可以在编译时检测类型系统冲突,而不是移动行时检测。ACE c版本使用内嵌函数扩展来消除性能成本。否则,附加到wrapper层的类型安全性和抽象可能会降低性能。2.3 ACE框架ACE包含高级网络编程框架,该框架集成和增强了底层OS wrappers。此框架支持由应用程序服务组成的动态配置和并发网络守护程序。ACE的框架部分包含以下分类:reactor—ace reactor根据不同的事件类型(例如,基于I/O的事件、基于计时器的事件、信号和同步的事件等)为调度处理器提供可扩展的面向对象的多输出。-嗯?服务配置器ace service configurator支持在安装或运行时部署服务的应用程序结构。-嗯?流ACE流组件简化了包含一个或多个与层相关的服务的并发通信软件(如协议堆栈)的开发。除了2.4 ACE网络服务组件wrappers和框架外,ACE还提供了标准网络服务组件库。这些组件在ACE中有两个角色。9355他们包括ACE IPC wrappers、Reactor、Service Configurator、service initialization、concurrency、memory management、annon提供公用分布式系统任务的可重复使用组件(如日志、命名、时间同步等)。结合OO语言功能和设计模式,可重复使用的ACE组件可以促进通信服务的开发,并可以轻松开发无需修改、重新编译或重新链接即可升级的应用程序。3详细说明ACE组件3.1 IPC_SAP:本地和远程IPC机制ACE为封装基于标准I/O处理的操作系统本地和远程IPC机制的IPC SAP基类提供了几个根类别,以提供面向连接和无连接服务。如图3所示,这些类包括SOCK SAP、TLI SAP、SPIPE SAP和FIFO SAP。每个类别都由继承级别组成。每个子类为本地或远程通信机制的子集提供了完善定义的接口。分层子类还包含特定通信抽象的所有功能(例如internet域或UNIX域协议族)。使用类代替单个函数可以从以下方面简化网络编程吗?将应用程序和可能导致错误的详细信息屏蔽到——。例如,图3中的ACE_Addr类层通过类型安全OO接口支持几种不同的网络地址格式,而不是直接使用基于c的频繁出错的struct sockaddr数据结构。-嗯?合并多个作业以构成单独的作业——。例如,SOCK Acceptor结构执行不同的套接字系统调用(如socket、bind、listen),该调用需要生成手动模式的服务器端点。 -嗯?应用程序中的IPC机制参数化——类通过所需的IPC机制类型构成了应用程序参数化的基础。这有助于提高可移植性。-嗯?增强的代码共享——基于继承的分层分解,增加了不同IPC机制之间共享的公共代码数(例如,fcntl和ioctl等基本的面向OS的控制系统调用的OO接口)。以下部分介绍了IPC SAP的每个类别。3.1.1 SOCK SAP SOCK SAP类别为应用程序中的Interner域和UNIX域协议族提供了接口。应用程序可以继承或实例化图4中相应的SOCK SAP子类,以访问默认internet域或UNIX域套接字类型的函数。ACE_SOCK*子类封装internet域中的函数数,而ACE_LSOCK*子类封装UNIX域中的函数。如图4所示,这些子类提供了(1)*Dgram组件(不可靠、没有连接、提供面向消息的函数数)或*ACE_STREAM组件(提供可信连接和基于字节的函数)(2)中主要由服务器端使用的连接设置函数的ACE \使用OO wrappers软件包套接字接口,可以:(1)在编译时检测到许多较小的应用程序类型系统冲突;(2)便于独立于平台的传输层接口;提高应用程序的可移植性;(3)大大减少用于基本网络编程细节的应用程序代码数量和工作量。为了说明以下内容,使用ACE_SOCK_Dgram_Bcast类的简单程序向监听LAN上特定端口的所有服务器发送广播消息:intmain (intargc,char * argv[]){ ace _ sock _ dgram _ bcastb _ sap(sap _ any);Char * msgUnsigned short b _ portMsg=argc 1?argv[1]: ' hello world \ n ';B_port=argc 2?atoi(argv[2]): 12345;If (b _ sap.send (msg,strlen (msg),b _ port)=-1)perror(' can ' t send broadcast ')exit(0);}建议将此简明的示例与直接在c源代码中使用socket接口实现广播的几十行程序输入进行比较。3.1.2 TLI SAP TLI SAP类别提供System V TLI的OO界面。TLI SAP继承级别和SOCK SAP几乎完全相同。主要区别如下
内容简介:
-
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:ACE详细介绍译文
链接地址:https://www.renrendoc.com/p-83621934.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!