本科生毕业设计(论文)
外
文科技文献译文
译文题目
Socket 网络编程的设计与实现
(外文题目)
A Design and Implementation of Active Network Socket Programming
学 院(系)
机械与能源工程学院 机械设计制造及其自动化
专
业
学
号
071895
学生姓名
李杰林
2012 年 5 月 27 日
日 期
指导教师签名 日期
摘要:编程节点和活跃网络的概念将可编程性引入到通信网络中,并且代码和数据可 以在发送过程中进行修改。最近,多个研究小组已经设计和实现了自己的设计平台。每个 设计都有其自己的优点和缺点,但是在不同平台之间都存在着互操作性问题。因此,我们 引入一个类似网络 socket 编程的概念。我们建立一组针对应用程序进行编程的简单接口, 这组被称为活跃网络 Socket 编程(ANSP)的接口,将在所有执行环境下工作。因此, ANSP 提供一个类似于“一次性编写,无限制运行”的开放编程模型,它可以工作在所有 的可执行环境下。它解决了活跃网络中的异构性,当应用程序需要访问异构网络内的所有 地区,在临界点部署特殊服务或监视整个网络的性能时显得相当重要。我们的方案是在现 有的环境中,所有应用程序可以很容易地安装上一个薄薄的透明层而不是引入一个新的平 台。
关键词:活跃网络;应用程序编程接口;活跃网络 socket 编程
- 1 -
1 导言
1990 年,为了在互联网上引入新的网络协议,克拉克和藤农豪斯[1]提出了一种新的设 计框架。自公布这一标志性文件,活跃网络设计框架[2,3,10]已经慢慢在 20 世纪 90 年 代末成形。活跃网络允许程序代码和数据可以同时在互联网上提供积极的网络范式,此外, 他们可以在传送到目的地的过程中得到执行和修改。ABone 作为一个全球性的骨干网络, 开始进行活跃网络实验。除执行平台的不成熟,商业上活跃网络在互联网上的部署也成为 主要障碍。例如,一个供应商可能不乐意让网络路由器运行一些可能影响其预期路由性能 的未知程序,。因此,作为替代提出了允许活跃网络在互联网上运作的概念,如欧洲研究课 题组提出的应用层活跃网络(ALAN)项目[4]。
在 ALAN 项目中,活跃服务器系统位于网络的不同地址,并且这些应用程序都可以运 行在活跃系统的网络应用层上。另一个潜在的方法是网络服务提供商提供更优质的活跃网 络服务类。这个服务类应该提供最优质的服务质量(QOS),并允许路由器对计算机的访问。 通过这种方法,网络服务提供商可以创建一个新的收入来源。
对活跃网络的研究已取得稳步进展。由于活跃网络在互联网上推出了可编程性,相应 地应建立供应用程序工作的可执行平台。这些操作系统平台执行环境(EES),其中一些已 被创建,例如,活跃信号协议(ASP)[12]和活跃网络传输系统(ANTS)[11]。因此,不 同的应用程序可以实现对活跃网络概念的测试。
在这些 EES 环境下,已经开展了一系列验证活跃网络概念的实验,例如,移动网络[5], 网页代理[6],多播路由器[7]。活跃网络引进了很多在网络上兼有灵活性和可扩展性的方案。 几个研究小组已经提出了各种可通过路由器进行网络计算的可执行环境。他们的成果和现 有基础设施的潜在好处正在被评估[8,9]。不幸的是,他们很少关心互操作性问题,活跃 网络由多个执行环境组成,例如, 在 ABone 中存在三个 EES,专为一个 EES 编写的应用 程序不能在其他平台上运行。这就出现了一种资源划分为不同运行环境的问题。此外,总 是有一些关键的网络应用需要跨环境运行,如信息收集和关键点部署监测网络的服务。
在本文中,被称为活跃网络 Socket 编程(ANSP)的框架模型,可以在所有 EES 下运 行。它提供了以下主要目标: ? ?
通过单一编程接口编写应用程序。
由于 ANSP 提供的编程接口,使得 EES 的设计与 ANSP 独立。这使得未来执行环境的 发展和提高更加透明。
- 2 -
? ?
ANSP 针对不同执行环境之间的互操作性问题。
通过的 ANSP 设计,不同 EES 的优点和缺点显而易见。这将有助于在将来设计更好的 EES。
ANSP 的主要目标是使在 ANSP 下编写的所有应用程序,可以运行在 ABone 测试平台。
而 ANSP 框架在统一网络环境下是必不可少的,我们相信,在不同环境下的通用性,对未 来执行环境的发展是有利的。ANSP 并不是取代所有现有的环境,而是研究启用新的网络 服务执行环境。因此,ANSP 设计是对所有执行环境安装薄而透明的应用层。目前,它的 代码自动加载依赖于底层环境。因此,部署在路由器的 ANSP 是可选的,不需要任何执行 环境的变化。
2 针对 ANSP 的设计问题
ANSP 统一现有各 EES 的编程接口。ANSP 设计在概念上类似于中间件的设计,为不 同的 EES 提供适当的翻译机制。一个统一的接口只是整个 ANSP 平台的一部分。有很多需 要考虑的问题,除了翻译一套编程接口,在不同 EES 下可执行文件调用,也包括其他的设 计问题,例如, ? ? ? ? ?
统一的线程库处理线程操作。
全球性软件存储,可以在给定的路由器上进行不同环境下的信息共享。
统一的解决方案用于不同的环境,更重要的是,路由信息交换机制应横跨 EES 获得全 球统一的网络视图。
应该是独立于任何活跃网络编程语言的编程模型。 最后,翻译机制要隐藏头结构的异构性。
A. 异构性编程模型
在程序调用时,每个执行环境提供各种抽象的服务和资源。一套组件模型每个部分都 有其自己的编程接口。抽象的封装编程模型[10]是在活跃网络中最流行的设计,这种模型 在 ANTS[11] 和 ASP [12]使用,并正被 ABone 支持。虽然他们是在相同的封装模型基础上 开发的,但各自的组件和接口是不同的。因此,在一个 EES 上的程序不能运行在其他 EES 上。ANTS 和 ASP 的编程模型如图 1 所示。
ANTS 包括三个不同的组件:应用程序,封装,和执行环境。存在针对唯一来源和目的 地路由器的应用程序用户接口。然后,用户可以指定其定制的网络行为。根据程序的功能, 应用程序发送一个或多个封装进行操作。这两个应用程序和封装工作的执行环境,为其内 部的编程资源提供输出接口。每次访问路由器时封装便执行其操作。当它到达目的地,在 目的地的应用程序就会以封装进行回复或提示用户事件已经收到。ANTS 的一个缺点是, 它仅允许“引导”应用程序访问。
- 3 -
图 1 ANTS 和 ASP 的编程模型
相比之下,ASP 不限制用户运行“引导”应用程序。其程序接口与 ANTS 不同,但 ASP 也由三个组成部分:客户端应用程序,环境和 AA 组件。应用程序客户端可以在活跃 或不活跃的主机上运行。它可以通过简单的请求消息发送到 EES 来激活应用程序。客户允 许其用户在附近的活跃路由器触发操作。 AA 组件是网络服务的核心,其规格分为两部分。 其中一部分指定其来源和目的地路由器的行动,其作用类似于 ANTS 中的应用,但它不提 供与用户交互的直接接口。另一部分定义了它在内部网络中的行为,与 ANTS 中封装的功 能行为相似。
为了解决这两种模式的异构性,ANSP 需要引进一套新的编程接口,它的接口和执行模 型映射到内部路由器的 EES。 B. 统一线程库
为了各个实例之间不互相影响和访问其他信息,可执行环境必须保证各个实例间的独 立性。有多种方法来执行访问控制。一个简单的方法是为实例应用程序配备一个虚拟机。 这依赖于虚拟机隔离服务的安全设计。ANTS 就是采用这种方法的一个例子。然而,使用 多个虚拟机需要的资源量相对较大,并可能在某些情况下,效率低下。因此,某些环境, 如 ASP,允许网络服务在虚拟机上运行,但只允许其有限地访问自己的包库。例如,ASP 提供强制访问控制的线程库。针对这些线程访问机制的差异,ANSP 提供允许不同线程机 制统一访问的新线程库。 C. 软存储
软存储允许封装在路由器上插入和检索信息,从而使多个封装能够交换网络内的信息。
- 4 -
相关推荐: