Archive

Archive for January, 2010

OMNet++ 中的 NED 语言学习(1)

January 24th, 2010 leeing No comments

本文是对 OMNet++4.0 中的 NED 语言的学习笔记,其内容来自OMNet++ 4.0 用户手册的第三章第1,2节。

用户需要用NED语言来描述一个仿真模型。NED代表Network Description(网络描述),它让用户声明简单模块(simple modules),从而连接或重组为复合模块(compound modules),或将一些复合模块标记为networks(网络)或自包含(self-contained))的仿真模型。信道是另一个组件类型,它的实例也能使用在复合模块中。

NED的几个特性让它能在大型项目中也具有可伸缩性:

  • 分层  复杂的模块作为一个实体,可以分解为更小的模块,从而组成复合模块。
  • 基于组件  简单模块和复合模块都是可重用的。
  • 接口  接口可以在应该使用模块和信道的地方作为一个占位符(placeholder)存在,而真正的模块或信道类型则可以在网络建立的时候通过参数来决定。例如对于一个复合模型MobileHost,它包含一个拥有IMobility模块接口的mobility子模型,那么类型可以从实现了IMobility接口的RandomWalkMobility,TurtleMobility中来选择。
  • 采用了类似于Java 的package机制来减少冲突,而ned引入的NEDPATH则类似于Java的CLASSPATH,用于指定依赖关系。
  • 内部类型 在复合模块中本地使用的信道类型和模块类型可以在复合模块内部定义,这是为了减少命名空间带来的问题。
  • 元数据注解 可以通过添加属性来为模块,信道类型,参数,gates加以注解。仿真核心并不直接使用元数据,但它们能携带为多种工具添加额外的信息,运行时环境,甚至模型中的其它模块。例如,一个模块的图形化表示(图标等)或者提示符及一个参数的测量的元(milliwatt等)都通过元数据注解来指定。

注意 继承,接口,包,内部类型,元数据注解都是在4.0之后才加入的新特性。而且NED语言可以和XML进行相互转化而不会损失数据。

下面通过一个例子来学习NED语言。

本例中的网络由结点组成,每一个结点都有一个以随机间隔时间来生成数据包的应用程序,结点本身也拥有路由功能。这里假设这个应用基于数据报进行通讯,这样就不用考虑传输层。

首先用NED来描述下图所表示的网络:

图1:网络拓扑

网络拓扑

// 定义了一个名为 Network 的网络,在 NED 语言中,注释的另一个作用是能生成文档。
network Network
{
	submodules:
		node1: Node; // Node 类型在后面再定义
		node2: Node;
		node3: Node;
		...
	connections:  // 定义了结点的连接方式:双向,速度为 100Mbps
		node1.port++ <--> {datarate=100Mbps;} <--> node2.port++;
		node2.port++ <--> {datarate=100Mbps;} <--> node4.port++;
		node4.port++ <--> {datarate=100Mbps;} <--> node6.port++;
		...
}

Read more…

Categories: NED, OMNeT++ Tags:

内容分发网络(CDN)研究目录

January 23rd, 2010 leeing 4 comments

为了便于查询和使用,翻译了一篇很有用的研究目录。目前还不完善,在以后会进行修改。   

    

内容分发网络(CDN)研究目录

Content Delivery Network (CDN) Research Directory

内容分发网络(CDNs)的发展让社区在内容分发和分布的领域上对相关的问题上进行了研究,其中的一些研究热点包括:CDN 放置(placement),内容选择,请求路由和资源优化,内容外取(outsourcing),内容复制和缓存,流量拥挤和负载均衡,对等CDN,内容评分等等。这个站点致力于为工作于内容分发网络的研究人员提供有用的信息,它由澳大利亚墨尔本大学的 Mukaddim Pathan 维护。   

深入内容分发网络(CDNs) 

什么是CDN? 

内容分发网络(CDN),首次于1998年提出。它通过在按策略放置于不同地点的多个镜像web服务器(例如代理服务器)之间复制内容来处理flash crowds问题。按照地理位置分布web 服务器的设施是服务提供商常用来提高性能和可伸缩性的方式,CDN由内容分发基础设施,请求路由基础设施,发布基础设施和计费基础设施组成。CDNs通过最大程度地利用带宽,以内容复制提升可访问性和保持正确性来提高网络性能来提高网络的性能,这样,就能将离用户最近的缓存服务器的内容分发给用户,提供了快速和可靠的应用和服务。   

图 1: 内容分发网(CDN)的抽象架构

图 1: 内容分发网(CDN)的抽象架构

图1展示了一个典型内容分发环境,与终端用户连接的复制Web服务器集群(Replicated Web Server Clusters)位于网络的边缘。在这样的CDN环境中, 基于用户请求的Web内容从源服务器获取,而邻近的复制Web 服务器则给用户提供内容。于是,用户止于和靠近它的复制CDN 服务器间通信,并从这个服务器获取文件。   

图 2: 由CDN提供的内容/服务

图 2: 由CDN提供的内容/服务

CDN提供商存储第三方的内容,以提供对任意数字化内容的快速分发,包括静态内容(例如,静态的HTML页面,图像,文档,软件补丁等等),流媒体(例如音频,实时视频等等)和不同的内容服务(如目录服务,电子商务服务,文件传输服务等等)。内容来源于大型企业,web服务提供商,媒体公司,新闻广播公司等等。用户通过手机,智能手机/掌上电脑,笔记本电脑,台式机等方式指定内容或服务的请求,进而与CDN交互。图 2 描述了对于不同的用户,CDN提供的不同的内容/服务。   

CDN的基本交互  

图3: CDN环境中的基本交互流程

图3: CDN环境中的基本交互流程

图 3 提供了在内容分发网络(CDN)中组件之间基本的交互流程。在这里, discovery.com是内容提供商而Akamai是拥有discovery.com内容的CDN 。交互流程是:   

  1. 客户端通过在Web浏览器中指定URL,从www.discovery.com请求内容。客户端的请求定向到discovery.com 的源服务器。
  2. 当discovery.com接收到请求时,它的Web服务器决定只从它的源服务器提供的基本内容(例如网站的index页面)。
  3. 对于需要高带宽和经常被访问的内容(如嵌入式对象 — 最新内容,导航栏,横幅广告等,图4显示了一个由Akamai公司的CDN提供的包含嵌入对象的网页),discovery的源服务器将客户端的请求重定向到CDN提供商(这里是指 Akamai)。
  4. 使用专有的选择算法,CDN供应商选择离用户“最近”的复制服务器来提供客户请求的嵌入对象。
  5. 选定的副本服务器从源服务器取得嵌入式对象,为请求的用户提供服务,并为后续的请求服务缓存它。

   

图 4: 由 Akamai CDN 提供的典型的嵌入式web页面内容

图 4: 由 Akamai CDN 提供的典型的嵌入式web页面内容

Read more…

Categories: CDN, 计算机网络 Tags:

CDN (内容分发网)的未来发展趋势

January 22nd, 2010 leeing 1 comment

为了便于以后对CDN的学习,我在这里翻译了一篇论文,原文地址是 >> 点击 <<。

———————————

CDN (内容分发网)的未来发展趋势

Ongoing Trends and Future Directions in CDNs 

 

本文通过为CDN社区提供一个研究的路线图,阐述了内容分发网(CDNs)的发展趋势和未来研究方向。

Internet作为一个普遍用于共享,管理和传送内容和服务的媒介,其不断发展的特性导致了CDNs的诞生。过去的十年中,无论是学术界还是商业的开发商,相当多的研究都集中于这个领域。不容质疑,它被认为是将在下一个二十年中对科学和社会的质量最能发挥影响的新涌现出来的技术之一。对这项技术的趋势和未来在这个领域的方向的前瞻将有助于研究人员和实践者在这个领域的定位。在本文中,我们通过指出可能在这个领域驱动创新的潜在的研究方向和技术,为CDN社区展示了一个全面的研究路线图[1]

The evolution of CDNs

如上图所示,简单看一下CDN的演变过程。它展示了演变前(pre-evolution)的阶段到当代CDNs的平滑迁移,从图中可以明显看到演变前的阶段见证了在缓存技术提升的情况下改进的服务器的部署。在CDNs引入之后,在Internet上传送宽带内容,流媒体,音频和相关的数据的市场有了很大的提升,因此最初的几种技术已经被更好的取代。尽管第一代的CDNs大多集中于静态或动态的Web文档,在下一代中,焦点已经被转移到视频点播,新闻点播, 以及拥有大量用户交互的音频和视频流上来。一些研究及少数的商业项目在第二代中已经展示了移动动态CDNs的出现。由当前的技术趋势,预计第三代将以基于社区的CDNs为中心,它主要由普通人或端用户来驱动。

对于未来的趋势,CDN社区预计将通过一些革新以进行趋势的转移,在这种背景下,可以列出一个列表展示未来几年中可能的在技术上的演变。

  • 近期的创新:随着“云计算”概念的引入,CDN社区经历了商业计算和存储分发系统方面的成长,如Nirvanix[3],Amazon S3[4]以及Amazon EC2[5]。它们的分发服务的目标不仅限于Web应用,也包含存储,原始计算(raw computing),或是访问任意其它特定的服务。此外,研究人员近期已经提出了P4P[11],可以与网络提供商通讯的P2P入口(Portal),用于协作内容分发的新的业务工程模型[12]。这些近期的在网络管理和控制上革新提出了基本的问题,即在生产和发布内容的提供商和资源提供者之间,促进了对它们系统化的理解和可行性的实现。在将来,潜在的研究将集中于识别必要的应用需求,提高可伸缩性,系统健壮性,可用性以及访问性能,低成本,数据持久化,以及对安全和隐私的支持。
  • 可伸缩的内容分发:最近几年,业界的成果如Akamai 提供的EdgSuit内容发布(content distribution),IBM WebSphere 的边缘服务(edge service)[7],已经可以提供基于习惯(usage-base)的(动态)内容分发。然而,这些方案的有效性仍然高度依赖于应用的访问模式。特别地,在后端(back-end layer)产生瓶颈的风险,仍是阻碍其可伸缩性和动态web内容分发的主要问题之一。此外,Web2.0的内容个人化迁移(动态且不可缓存),敏感的个人用户情景信息,以及流动的用户的Web2.0 聚集(convergence)的特性会干扰内容分发服务,因为用户将在边缘节点之间迁移。因此,主动应对这种变化可以从CDN提供商和研究人员对动态Web内容分发的研究解决方案中得到预见。
  • 任播(anycasting)的可用性:尽管在CDN演变的早期阶段,IP 任播并不被认为是一种可以在CDNs中进行请求转发的切实可行的方法。这是由于在IP 任播机制中,缺乏对负载的感知,以及在IP任播机制上因Internet路由变化会产生不必要的副作用。然而,路由控制机制和外部智能(external intelligence)的出现,允许动态路由选择[8]和基于任播的测量工作[9],为基于IP任播来实现CDN的转发带来了曙光。最近,可负载感知的IP 任播CDN架构[7]已经被设计出来,它展示了用IP 任播来减轻最近路由(proximal routing)的适应性和用法。这些发现将唤起CDN社区对该领域的研究兴趣,并在真实的CDN开发中实现,从中获得一些可操作的经验。
  • 对等CDN(Peering of CDN):当前在内容网络和内容联网能力的趋势导致了对CDNs之间互联的兴趣[10]。CDNs之间的合作将减少设备成本,并给用户提供高质量的服务。尽管这看起来很有吸引力,但无论在技术还是非技术层次(如:商业和合法性上),仍面临着很多挑战,这些都可能将阻碍它的快速发展。例如:必要的通用交互协议,CDN的一些在市场中比竞争对手更能获得优势的专利特性,以及复杂的法律问题(如:违禁内容和版权内容),将阻止对等CDN使用于商业场合。这些挑战必须消除以推动对等CDN的发展。未来的研究预计将重点集中于合作,包括短期的任意CDN间操作来处理flash crowds问题,或在长期的对等合作中探索一些特定业务的分发。特别地,一个专门的或计划中的对等CDNs间需要进行基本研究,以定位测量和传播负载信息的核心问题,进行请求分配和重定向,使地理上以Internet规模分布的参与的CDN提供商之间,能进行内容复制和适当的调整[8]
  • 市场机制的运用:经济模型能利用CDN市场的活力,通过市场行为让这个体系更易于管理,这种市场趋势可以在商业领域由面向服务的架构(SOA)来驱动。此外,在满足终端用户对服务质量(QoS)的要求的效用函数(utility function)的影响下,新的健壮的及具有可伸缩性的复制,资源共享,负载均衡技术将走进视野。最近的研究[4] [5] [6] 通过应用了数学原理的plying model,博弈论和商业实践来反映当前CDN市场的动态价格已经证明了这一观点。

 

除了上述列出未来的研究方向外,我们可以预见,综合运用新出现的和已有的成熟技术,如:agent,P2P,网格,数据挖掘等,可以提高未来CDN架构的效率。我们还认为CDN可能的转变方向,如:CDN internetworking,adaptive CDNs ,mobile CDNs ,对于所有的情况,基于社区的CDNs将形成和演进。最后,近期CDN产业中由于收购或合并产生的联合,可能导致在设计,架构和CDNs的开发上产生新的问题。我们希望从这篇文章开始,通过分析当前和未来在CDN领域的研究方向,能使读者对这个领域的关键概念有更好的理解和诠释。

Read more…

Categories: CDN Tags:

OMNeT/OMNEST 4.0 集成开发环境概述

January 21st, 2010 leeing 7 comments

最近想学习一下 OMNetpp 仿真环境的使用,在windows下配置安装环境的过程可以参考这里

在网上搜索找到一篇由sunfast 翻译的关于 OMnet 4.0 IDE 环境的介绍,感觉翻译得很不错。PDF 版本的翻译文档可以从这里下载,对翻译有疑问的地方,可以参照官方网站的原文,我在这里主要是添加了图片的序号,同时添加了原文的图片。

OMNeT/OMNEST 4.0 集成开发环境概述

A QUICK OVERVIEW OF THE OMNeT++/OMNEST 4.0 IDE

介绍

OMNeT 4.0 集成开发环境基于Eclipse平台,并对编辑器、视图、向导和其他功能进行了扩展。OMNeT增加了模型创建和配置 (NED和ini文件)、执行批处理操作及分析仿真结果等功能,而Eclipse则通过各种开源或者商用的插件来支持C++编辑、集成CVS/SVN和其他的一些可选特性(UML建模、bug跟踪、数据库访问等)。

下面这个屏幕截图显示了OMNeT++ IDE的主要几个组成部分:

图1.OMNet++ 4.0 IDE,编辑一个NED文件

NED 编辑器

NED编辑器支持图形模式和文本模式分别对NED文件进行编辑,用户可以在任意时刻点击编辑器窗口底部的标签,在编辑模式间进行切换。

图2:在图形编辑模式下的NED编辑器

在图形模式下,可以创建复合模块、信道和其他组件类型。可以通过可用模块类型面板(palette)来创建子模块;可以在属性视图里修改Visual和non-visual属性,也可以从文本菜单里选择会话来修改。编辑器提供无限次的撤销/重做、目标克隆、移动及重定义大小约束、目标对齐、放大缩小和其他许多可能的功能。

子模块可以绑定(在指定位置),也可以不绑定(自动布局)。可以编辑修改包括图像背景、网格背景、默认图标(通过显示字符串的继承)、调整图标大小和着色、通信距离和许多其他的图形特性。

图3. 属性视图

属性视图使得用户可以编辑目标对象的图形及非图形属性。具体单元编辑器(special cell editors)使得选择颜色、图标等工作更为便利。属性的更改支持撤销(undo)和重做(redo)。属性视图也可以与其他的编辑器共用,如用于结果分析的Result Analysis,用户可用该编辑器来定制图表和其他对象。

图4. 源代码编辑模式下的NED编辑器

文本模式使得用户能直接和NED 源代码打交道,当按下Ctrl+空格键时,编辑器提供包括关键字、模块类型名、参数、门和子模块名称等的自动识别(上下文感知完成:context-aware completion)。把鼠标移到NED 类型名上面,可以看到所引用的模块类型的文档。在用户在输入的时候,NED 源代码在不断地进行检查和确认( parsed and validated ),左侧的空白处将会实时地显示错误。语法高亮(Syntax highlighting),自动缩进( automatic indentation),同时还提供对OMNeT++ 3.x NED 语法的自动转换。

Read more…

Categories: 计算机网络 Tags:

EBook:《The Quick Python Book》2nd Edition

January 20th, 2010 leeing No comments
the quick python book 2nd edition
the quick python book

The Quick Python Book, Second Edition, is a clear, concise introduction to Python 3, aimed at programmers new to Python. This updated edition includes all the changes in Python 3, itself a significant shift from earlier versions of Python. The book begins with basic but useful programs that teach the core features of syntax, control flow, and data structures. It then moves to larger applications involving code management, object-oriented programming, web development, and converting code from earlier versions of Python. True to his audience of experienced developers, the author covers common programming language features concisely, while giving more detail to those features unique to Python.

格式: PDF

ISBN: 193518220X

出版日期:  2010 年 1 月 15 日 

大小:2.88 MB

下载:>> 这里 <<

Categories: Python Tags: ,