基于MVP的拓扑分析工具的设计理论基础
摘要
关键词
网络;拓扑;MVP;
正文
目前主流的网络分析工具大部分是面向复杂网络分析的通用工具,不能很好的满足对互联网拓扑结构研究的需要。针对该现状及现有相关软件的不足,本文分析了基于MVP的拓扑分析工具的设计理论基础。
1、关键技术
1.1 NetBeans开发平台:该软件不仅实现了Linux、Window和Mac OS等跨平台的兼容性,而且具有编码、编译、调试和部署等一系列完整的功能,同时还将版本控制加入其中已实现团队协作开发。NetBeans包括开发环境和应用平台,它提供了丰富的编程工具,集成了对Swing Application Framework框架的支持,极大地促进了Java 语言在桌面应用领域的推广,还包含了丰富的产品文档和培训资源以及大量的第三方插件,NetBeans 已经实现了帮助开发人员在JDK的基础之上快速构建企业、Web、桌面和移动应用开发。NetBeans的重要特性包括:
(1) 简单易用的JAVA GUI生成器组件,该组件可以在所见即所得视图放置组件,并且对组件进行位置调整和对齐,进而可以创建出专业级外观效果的用户图形界面。
(2) 可视化的移动开发平台,具有在智能手机、电视机顶盒、平板电脑和其它智能终端上开发应用程序的能力,具有方便创建、测试、调试GUI应用程序的一整套解决方案。
(3) 可视化的UML建模组件,可以从开发包中提取出类图结构,还具有创建用例图、活动图和类图的功能,为软件设计和实现提供方便的开发功能。
MVP 是指 Model-View-Presenter 模式,它是MVC模式的变种,由Martin Flower提出。具有View和Model,不同与MVC中的C是Control,而MVP中的P是Presenter。 从结构上对比MVP和MVC,发现MVP中的Model将不会与View产生任何的联系,甚至是View层上提供的接口内容,所有的一切都是由Presenter控制,即Presenter连接了View层和Model层的接口。
在MVP中View层接收到来自终端的事件后,将会传递给Presenter,但是具体如何处理这样的事件,将由Presenter完成。在程序类图中可以发现,Presenter含有View层和Model层的引用,由Prensenter完成对接两个层之间的事件响应。MVP比较适合开发各种应用程序。因为MVP模型的绝大数逻辑代码被放置在Presenter中,导致View层非常简单,只需要关注GUI表现即可。对于大型互联网公司来说,对于毫无开发经验的开发人员,内部只需要进行简单培训就可以直接进入开发队列,大大加快前端开发进程。
2.1、对开发过程的影响:在MVP模式中,所有的业务逻辑交给了Presenter完成,这样View层的代码只关注与UI层的界面呈现即可,这使得代码非常的简单专一,可以降低后端和前端开发人员之间的耦合。
2.2对单元测试的支持:在进行单元测试方面,使用MVC模式将大大促进各个模块的分离,提高可测试性。MVC的所有核心内容都是基于接口形式的,可以轻易的通过MOCK来模拟。可以不在应用进程中运行控制器就完成单元测试。然而对于MVP模式,其设计者的出发点是便于View的单元测试。因为所有的逻辑处理过程都放在了Presenter中,这就使得View层的代码简单专一,进而可提高单元测试效率。
3、理论基础
Internet拓扑探测:互联网拓扑探测就是通过某种手段获取当前互联网全局的路由转发表,进而提取出拓扑结构。已经成为当前互联网研究的一项基础。但是当前互联网体量巨大,结构复杂,如何准确的探测到全局的拓扑结构已经成为当前互联网研究的热点问题。只有更加精确和全面的拓扑结构,才能保证有效的开展相关分析工作,得到理想的分析结果。还可以进一步归纳和抽象统计规律,建立接近于真实互联网的拓扑模型,为未来的互联网相关协议或者算法的仿真提供实验平台。
针对网络的获取特点,网络测量可以分为多个类型。同时从互联网组网过程和网络管理的角度出发,建立了互联网内部管理域(自治域),网络设备链接和数据包转发路由表,不同层级的拓扑结构差别较大,因此导致了分析角度也不相同。一般来说,Internet测量的侧重点不一样,可以将测分为Internet性能测量和Internet拓扑测量;由测量手段不同,可以将Internet探测分为Internet主动探测和Internet被动探测;由Internet协议和管理域不同,将Internet划分为AS级、路由级和IP级。
在Internet层次拓扑结构中,目前研究最多的是IP级、路由级和AS级拓扑。
目前世界各地出现了为数不少的互联网探测项目,基于不同的协议、测量方式或者目的,各有其侧重,其中贡献较大的与互联网拓扑相关的探测项目有CAIDA Ark于2007年9月启动,试图对全局Internet拓扑结构进行实时探测,该项目为主动探测项目,利用微型服务器分布式布点,实现多任务的协同探测,同时还对全球路由级网络进行了深入研究。在主动探测中具有非常大的优势,通过不间断、持续的发送探测数据包,获取全球实时路由表路径,而且其组织对探测点具有完全自主的控制权与所属权。
RouteViews项目是美国Oregon大学高级网络技术中心(Advanced Network Technology Center)的David Meyer主持的一个项目,通过与若干个骨干网络中具有重要地位的路由器建立对等关系,该项目致力于从多个不同自治系统获取全球的网络路由表信息。当前许多对互联网拓扑的研究都使用了RouteViews项目的数据,如Geoff Huston使用RouteViews数据来动态分析BGP路由表;L. Subramanian等人使用RouteViews数据来构造互联网的层次模型;GAO等人使用这些数据来推断互联网AS间的商业关系;美国应用网络研究国家实验室 (National Laboratory for Applied Network Research, NLANR) 使用这些数据来进行AS-PATH可视化,等等。
4、小结
本文主要介绍了基于MVP的Internet宏观拓扑分析工具的设计技术的理论基础,其中关键技术为NetBeans开发平台技术以及MVP设计模式,然后介绍了Internet拓扑探测技术和当前探测项目, 为软件的进一步开发奠定了技术和理论基础
参考文献:
1. Jurgen Petri. NetBeans Platform 6.9 Developer’s Guide[M], Birmingham: Packt Publishing Ltd, 2010, 7-66.
2. 刘惠山,徐明伟,徐恪等. 因特网路由协议研究综述[J], 电信科学, 2003, 19(10): 28-32.
3. CAIDA skitter Project[EB/OL], http://www.caida.org, 2017.
...