深度解析SDN:利益、战略与技术实践

需积分: 50 9 下载量 25 浏览量 更新于2024-08-07 收藏 9.37MB PDF 举报
"这篇文章源于《架构师》2015年6月刊,探讨了SDN(Software Defined Networking,软件定义网络)的概念、益处、战略和技术,并通过一个简单的线程池例子来说明抽象和任务提交的原理。同时,文章提到了Google的Dart语言,讨论了其设计目标、特点以及在与JavaScript的竞争中的地位。" 在SDN领域,这个最简单的例子展示了如何使用ExecutorService创建一个线程池来执行任务。ExecutorService是Java并发编程的一个关键组件,属于java.util.concurrent包,它允许开发者管理和控制异步任务的执行。在这个例子中,创建了一个固定大小的线程池(newFixedThreadPool),拥有7个作业线程,这样的设计可以有效地复用线程,避免频繁创建和销毁线程的开销。Callable接口用于封装具有返回值的任务,而submit方法则用于将这些任务提交给线程池处理,返回一个Future对象,该对象可以用来获取任务的执行结果。 深入理解SDN的利益,它旨在通过将网络控制平面与数据平面分离,实现更灵活、可编程的网络管理。SDN的战略价值在于它能够帮助网络管理员和开发者快速响应变化,例如在网络流量管理、安全策略实施和故障排除方面。技术上,SDN的核心是OpenFlow协议,它允许控制器直接与交换机通信,定义和执行网络策略。此外,开放源码的控制器平台(如OpenDaylight)和各种应用开发框架(如 Ryu)也促进了SDN的实践。 文章同时也提到了Google的Dart语言,一种设计用于Web开发的现代编程语言。Dart旨在提高开发效率和运行性能,通过提供类和接口支持,实现更严格的类型系统,以解决JavaScript的一些局限。Dart支持多种编程模式,包括并发编程,通过工厂构造函数和级联调用等特性简化代码。尽管Dart在设计上有诸多优势,但由于浏览器支持问题,其普及程度一直未能超越JavaScript。Google曾尝试将DartVM集成到Chrome中,但最终放弃了这一计划,转而采用Dart2js编译器将Dart代码转换为JavaScript来运行。尽管如此,Dart仍然在Google的其他项目中发挥作用,如Sky跨平台框架,利用Dart的平台无关性实现跨设备的应用开发。 这篇文章不仅介绍了SDN的基本概念和实践案例,还涉及了软件开发中的并发编程和编程语言选择,特别是Dart在Web开发领域的地位和挑战。对于架构师来说,理解这些技术趋势和工具是至关重要的,以便做出最佳的技术决策。