《毕业设计外文翻译-中文版.docx》由会员分享,可在线阅读,更多相关《毕业设计外文翻译-中文版.docx(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、毕业设计外文翻译-中文版 摘要:编程节点和活跃网络的概念将可编程性引入到通信网络中,并且代码和数据可以在发送过程中进行修改。最近,多个研究小组已经设计和实现了自己的设计平台。每个设计都有其自己的优点和缺点,但是在不同平台之间都存在着互操作性问题。因此,我们引入一个类似网络socket编程的概念。我们建立一组针对应用程序进行编程的简单接口,这组被称为活跃网络Socket编程(ANSP)的接口,将在所有执行环境下工作。因此,ANSP 提供一个类似于“一次性编写,无限制运行”的开放编程模型,它可以工作在所有的可执行环境下。它解决了活跃网络中的异构性,当应用程序需要访问异构网络内的所有地区,在临界点部
2、署特殊服务或监视整个网络的性能时显得相当重要。我们的方案是在现有的环境中,所有应用程序可以很容易地安装上一个薄薄的透明层而不是引入一个新的平台。 关键词:活跃网络;应用程序编程接口;活跃网络socket编程 1 导言 1990年,为了在互联网上引入新的网络协议,克拉克和藤农豪斯1提出了一种新的设 计框架。自公布这一标志性文件,活跃网络设计框架2,3,10已经慢慢在20世纪90 年代末成形。活跃网络允许程序代码和数据可以同时在互联网上提供积极的网络范式,此外,他们可以在传送到目的地的过程中得到执行和修改。ABone作为一个全球性的骨干网络,开 始进行活跃网络实验。除执行平台的不成熟,商业上活跃网
3、络在互联网上的部署也成为主要障碍。例如,一个供应商可能不乐意让网络路由器运行一些可能影响其预期路由性能的未知程序,。因此,作为替代提出了允许活跃网络在互联网上运作的概念,如欧洲研究课题组提出的应用层活跃网络(ALAN)项目4。 在ALAN项目中,活跃服务器系统位于网络的不同地址,并且这些应用程序都可以运行在活跃系统的网络应用层上。另一个潜在的方法是网络服务提供商提供更优质的活跃网络服务类。这个服务类应该提供最优质的服务质量(QOS),并允许路由器对计算机的访问。通过这种方法,网络服务提供商可以创建一个新的收入来源。 对活跃网络的研究已取得稳步进展。由于活跃网络在互联网上推出了可编程性,相应 地
4、应建立供应用程序工作的可执行平台。这些操作系统平台执行环境(EES),其中一些已 被创建,例如,活跃信号协议(ASP)12和活跃网络传输系统(ANTS)11。因此,不 同的应用程序可以实现对活跃网络概念的测试。 在这些EES 环境下,已经开展了一系列验证活跃网络概念的实验,例如,移动网络5,网页代理6,多播路由器7。活跃网络引进了很多在网络上兼有灵活性和可扩展性的方案。几个研究小组已经提出了各种可通过路由器进行网络计算的可执行环境。他们的成果和现有基础设施的潜在好处正在被评估8,9。不幸的是,他们很少关心互操作性问题,活跃网络由多个执行环境组成,例如,在ABone 中存在三个EES,专为一个E
5、ES编写的应用程序不能在其他平台上运行。这就出现了一种资源划分为不同运行环境的问题。此外,总是有一些关键的网络应用需要跨环境运行,如信息收集和关键点部署监测网络的服务。 在本文中,被称为活跃网络Socket编程(ANSP)的框架模型,可以在所有EES下运行。它提供了以下主要目标: ?通过单一编程接口编写应用程序。 由于ANSP提供的编程接口,使得EES的设计与ANSP 独立。这使得未来执行环境的发展和提高更加透明。 ?ANSP 针对不同执行环境之间的互操作性问题。 通过的ANSP设计,不同EES的优点和缺点显而易见。这将有助于在将来设计更好的EES。 ANSP 的主要目标是使在ANSP 下编写
6、的所有应用程序,可以运行在ABone测试平台。 而ANSP框架在统一网络环境下是必不可少的,我们相信,在不同环境下的通用性,对未来执行环境的发展是有利的。ANSP并不是取代所有现有的环境,而是研究启用新的网络服务执行环境。因此,ANSP 设计是对所有执行环境安装薄而透明的应用层。目前,它的代码自动加载依赖于底层环境。因此,部署在路由器的ANSP是可选的,不需要任何执行环境的变化。 2 针对ANSP的设计问题 ANSP 统一现有各EES的编程接口。ANSP 设计在概念上类似于中间件的设计,为不同的EES提供适当的翻译机制。一个统一的接口只是整个ANSP平台的一部分。有很多需要考虑的问题,除了翻译
7、一套编程接口,在不同EES下可执行文件调用,也包括其他的设计问题,例如, ? ?统一的线程库处理线程操作。 全球性软件存储,可以在给定的路由器上进行不同环境下的信息共享。 统一的解决方案用于不同的环境,更重要的是,路由信息交换机制应横跨EES获得全球统一的网络视图。 应该是独立于任何活跃网络编程语言的编程模型。 最后,翻译机制要隐藏头结构的异构性。 A. 异构性编程模型 在程序调用时,每个执行环境提供各种抽象的服务和资源。一套组件模型每个部分都有其自己的编程接口。抽象的封装编程模型10是在活跃网络中最流行的设计,这种模型在ANTS11 和ASP12使用,并正被ABone支持。虽然他们是在相同的
8、封装模型基础上开发的,但各自的组件和接口是不同的。因此,在一个EES 上的程序不能运行在其他EES 上。ANTS和ASP的编程模型如图1 所示。 ANTS包括三个不同的组件:应用程序,封装,和执行环境。存在针对唯一来源和目的地路由器的应用程序用户接口。然后,用户可以指定其定制的网络行为。根据程序的功能,应用程序发送一个或多个封装进行操作。这两个应用程序和封装工作的执行环境,为其内部的编程资源提供输出接口。每次访问路由器时封装便执行其操作。当它到达目的地,在目的地的应用程序就会以封装进行回复或提示用户事件已经收到。ANTS 的一个缺点是,它仅允许“引导”应用程序访问。 图1 ANTS和ASP的编
9、程模型 相比之下,ASP不限制用户运行“引导”应用程序。其程序接口与ANTS不同,但 ASP 也由三个组成部分:客户端应用程序,环境和AA组件。应用程序客户端可以在活跃或不活跃的主机上运行。它可以通过简单的请求消息发送到EES来激活应用程序。客户允许其用户在附近的活跃路由器触发操作。AA组件是网络服务的核心,其规格分为两部分。其中一部分指定其来源和目的地路由器的行动,其作用类似于ANTS中的应用,但它不提供与用户交互的直接接口。另一部分定义了它在内部网络中的行为,与ANTS 中封装的功能行为相似。 为了解决这两种模式的异构性,ANSP需要引进一套新的编程接口,它的接口和执行模 型映射到内部路由
10、器的EES。 B. 统一线程库 为了各个实例之间不互相影响和访问其他信息,可执行环境必须保证各个实例间的独 立性。有多种方法来执行访问控制。一个简单的方法是为实例应用程序配备一个虚拟机。 这依赖于虚拟机隔离服务的安全设计。ANTS 就是采用这种方法的一个例子。然而,使用 多个虚拟机需要的资源量相对较大,并可能在某些情况下,效率低下。因此,某些环境, 如ASP,允许网络服务在虚拟机上运行,但只允许其有限地访问自己的包库。例如,ASP 提供强制访问控制的线程库。针对这些线程访问机制的差异,ANSP提供允许不同线程机 制统一访问的新线程库。 C. 软存储 软存储允许封装在路由器上插入和检索信息,从而
11、使多个封装能够交换网络内的信息。 然而,网络服务在不同的路由器环境下执行时容易发生问题,尤其是当网络服务在一个环境中插入信息,稍后在相同路由器但是不同环境下检索数据时这个问题尤其严重。由于执行环境不允许交换信息,网络服务无法检索其以前的数据。因此,我们的ANSP 框架需要考虑到这个问题,并提供在每个路由器上进行数据访问的软存储机制。 D统一网络的完整视图 当用ANSP编写应用程序时,它便可以在不同环境下完美运行。以前基于不同EES的小型分区网络可以合并成为一个大的网络,整个大网络的拓扑结构也就显得很有必要。然而,不同的执行环境有不同的解决方案和专有的路由协议。为了合并这些分区,ANSP 必须提
12、供一个新的统一的解决方案。这项新计划在任何环境下都能由ANSP编译出来。定义了新的方案之后,新的路由协议可以实现在不同的环境之间交换拓扑信息。这使得在各个网络环境中,其网络拓扑结构都有完整的视图。 E独立语言模型 任何编程语言都可以在可执行环境下编写,Java以动态代码承载能力使其成为最常用的语言之一。实际上,ANTS 和ASP 都是用Java开发的。然而,如图2 所示的活跃网络架构不限制使用其他语言开发执行环境。例如,Abone中的anted 作为活跃网络后台进程提供路由器上多个执行环境的工作空间。又如,PLAN 将在Abone上部署在OCaml中。虽然现在的网络设计可以用任何语言在多个环境
13、中进行编程,但是缺少使得应用程序在这些环境中完美运行的工具。因此,ANSP 需要解决的问题之一就是设计一种可以使用不同编程语言的编程模型。我们现在着重考虑ANTS和ASP 的设计,但PLAN 将是下一个待解决问题并提高ANSP的设计。 图2 ANSP框架模型 F.封装头结构的异构性 在不同的EES下头结构是不同的。他们执行相关的信息,例如封装,封装的种类,来源和目的地。当在目标环境中执行某些决定时这个信息是非常重要的。一个统一的模式,应允许其程序代码在不同环境下执行。然而,封装头阻止不同的环境来解析它的信息。因此,ANSP应在目标环境收到这些信息之前进行相应头信息的转译。 3ANSP 编程模型
14、 下面我们将讨论提到过的ANSP设计中编程模型的问题。这个建议框架提供了一套允许在所有执行环境下运行应用程序的统一的编程接口。该框架如图3所示。它是由两层活跃网络架构集成的,并且这两层都可以独立运作。上层的应用程序提供一个统一的编程模型,下层的应用程序为在不同环境下的应用提供适当的转译过程。这项服务很必要,因为每个环境都有其自己的头定义。 ANSP 提供了一套服务和资源的抽象编程调用。以封装为基础的模型已用于ANSP并映射到ANTS和ASP 的模型中。因此,ANSP 允许应用程序通过一系列单一接口访问不同环境下的编程资源。映射必须以一致和透明的方式进行。因此,ANSP好像是提供执行环境的应用程
15、序,而实际上,它是一个能够使用底层所提供服务的重叠式结构。ANSP 编程模型是基于四个组成部分之间的相互作用:客户端应用程序,应用程序存根,封装,服务器。 图3 ANSP的信息流 应用程序客户端:在通常情况下,一个活跃的应用程序需要一些方法为它的用户提供信息,如网络的状态。如果ANSP 在非活动主机上运行时,应用程序客户端将与图形用户界面(GUI)共同运行。 应用程序存根:当应用程序启动时,它会激活应用程序客户端在其附近的活动节点创建一个应用程序存根。应用程序存根有两个任务。其中之一是应用程序客户端接收来自用户的指示。另一个是从网络接收传入封装和执行相应动作。通常,有两种类型的动作,即:通过网
16、络回复或传达封装,或通知用户封装传入。 封装:一个活跃的应用程序可能包含几个封装类型。他们每个都执行程序代码(也称为转发常规)。由于应用程序定义了封装以及应用程序存根之间相互作用的协议,每个封装沿源和目的地之间的路径访问执行其转发程序的每个路由器。 服务器基端:服务器基端能够从应用程序存根和不同的EES 输出路由器的环境服务和 执行程序调用。当封装到达时,该基端被自动装载。 ANSP 组件之间的相互作用如图3所示。ANSP在一些关键部件的设计,将在以下小节中讨论。 A. 封装 ANSPXdr decode() ANSPXdr encode() int length() Boolean exec
17、ute() 通过扩展抽象类ANSP 封装来创建新类型的封装。新的扩展需要来定义他们自己的转 发程序以及它们的序列化程序。这些方法如下所示: 下面列出在ANSP中封装的动作。它与ANTS中的动作过程类似。 1封装在网络中以串行二进制表示。当活跃的路由器接收到一个字节序列,它调用decode()转换成封装序列。 2路由器调用封装转发程序,执行execute()。 3当封装已完成其工作并通过调用send()自身转发到下一跳,隐式调用encode()便将封装转换成一个新的串行字节。lenth()在encode()调用的时候用来确定所产生字节序列的长度。 ANSP 提供了XDR库,也称为ANSPXdr,
18、用来减轻编码和解码工作的压力。 B.服务器基端 在主动节点,基端提供了统一的接口用来导出EES可用资源供其它的ANSP组件使用。这些服务可能包括线程管理,节点查询,以及软存储,如表1 所示。 C.应用程序客户端 boolean start(args) boolean start(args,runningEEs) boolean start(args,startClient) boolean start(args,startClient, runningEE) 应用程序客户端是一个用户和附近活跃的源路由器之间的接口,它有下列功能: 1注册代码:可能需要指定一些执行环境中应用程序代码的位置和名称,
19、例如,ANTS。2应用程序初始化:它包括在源路由器上为应用程序选择一个执行环境。 每个活跃的应用程序可以通过扩展抽象类ANSPClient来创建一个客户端应用程序实例。这种扩展继承了start()的方法来自动处理登记和初始化过程。所有的start()重载版本接收一列应用程序存根初始化时的参数。一个被称为runningEEs的可选参数允许应用程序客户端选择由标准化数值ANEP ID,列表指定的特定环境变量集来执行代码登记。如果未指定此参数,默认设置只能包括ANTS 和ASP。 D应用程序存根 receive(ANSPCapsule) 当应用程序客户端初始化完成以及程序注册后,应用存根驻留在源和目
20、的地路由器初 始化ANSP应用程序中。它的功能是负责接收和服务网络封装以及客户端要求的动作。ANSPApplication便是一个通过扩展应用程序客户端抽象类而创建的新实例。当receive()被 调用时,存根接收到一个新封装的定义。 4ANSP 实例:TRACE-ROUTE 已经创建了一个验证在异构环境中ANSP设计正确性的实验平台。该实验台的路由器 设置有三种类型: 1在ASP上运行ANTS 和ANSP 后台程序的路由; 2在ANTS上运行ASP 和ANSP后台程序的路由; 3ASP和ANTS 同时存在的路由。 这个TRACE-ROUTE 测试程序是用Java编写的。程序记录所有中间路由器
21、的源和目的地之间的访问,它还能测量它们之间的RTT。图4 显示了从客户端应用程序的GUI,并找到三种路径执行环境:ASP,ANTS和ASP。TRACE-ROUTE程序的执行顺序如图5所示。 图4 程序人机界面 TraceCapsule程序代码是通过扩展ANSPCapsule 抽象类而创建的。当execute()开始时,它会查询returning以确定它是否是从目的地返回布尔值。如果TraceCapsule 返回源路由器,它就会默认设置为true,否则就是false。对传送过程中,TraceCapsule保持分别在path和trace阵列中已访问的传输环境和路由器地址。当它到达一个新的路由器,它
22、调用addHop()来追加这两个数组的路由器地址和环境。当它终于到达目的地,它便将returning返回为false 并调用send()转发回源路由。 当它返回到源路由,它会调用deliverToApp()提供本身已经从源头上运行的应用程序存根。TraceCapsule通过调用分别用外部数据封装和去封装的函数encode()和decode()在网络上传输数据字段信息。ANSP XDR 语法服从ANTS XDR库。函数length()返回数据的长度或者使用XDR库中的原始类型进行计算。 图5 TRACEROUTE封装包的数据流 5 结论 在本文中,我们提出了一个主动网络Socket编程(ANSP)的新模式。它允许每个应用程序在多种网络环境中运行。我们的实验成功地验证了ANSP 架构的设计,它在不做任何架构改变的情况下已经成功地在ANTS和ASP 上工作。事实上,统一的编程接口层具有可塑性,可根据要求进行动态部署。