首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

OpenDaylight开发学习十问十答

因为大版本的第一个版本往往都有故障,等经过两轮的故障收敛之后会比较稳定。另外需要注意的是社区可能对SR4版本不再进行维护,后面社区可能会出一个LTS的版本长期维护,可以选用进行开发。...还有就是需要了解一下OSGi规范,网上可以找到中文的规范,推荐4.0以后的版本。同时了解一下Karaf,看看OSGi规范和karaf之间的关系,这个过程可能也会花费一两个星期。...mdsal的相关接口,功能及形式与controller子项目里的几乎一致,只是包路径不同。...在什么情况下可以用同步方式? 建议大家用异步的方式,异步的方式更符合现在编程的常规。...但是不代表不可以试用同步的方式,比如说业务逻辑比较简单的应用,不需要开一个线程消耗,使用同步的方式就可以实现了,但是如果是一个耗时的或者耗CPU的操作就需要异步的方式了,这个可以灵活应用。

1.1K80

OpenDaylight系列文章(二):OpenDaylight初窥(上篇)之OpenDaylight的工程技术架构

OSGI:以java为技术平台的动态模块化规范。OSGI拥有许多优秀特性,如动态性、模块化和可扩展力。它在OpenDaylight中被引用为后端技术框架。...OSGI就像建筑行业的装配式技术那样去组装和管理这些feature: 在OSGI中部署的最小单位是bundle(bundle就相当于一个普通的jar包),它就像预制的建筑构件,比如墙板、楼板、楼梯、阳台...KARAF---OpenDaylight的“建筑主体” KARAF:是Apache旗下的开源项目,同时也是一个基于OSGI的运行环境,可以用于部署各种组件和应用程序。...OpenDaylight控制器从HELIUM版本开始使用karaf作为底层架构。 KARAF提供了一个基础容器的功能,在OSGI“装配式技术规范”下它就像是建筑主体。...而OSGI框架和KARAF容器可以实现功能组件即插即用,保证了ODL控制器体态匀称、身形灵活。 Maven---OpenDaylight的“构件工厂” Maven: 项目管理工具。

1.1K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    ODL应用开发之MD-SAL中级教程

    Opendaylight 开发使用了OSGi框架,OSGi框架的好处在于程序设计模块化,实现紧聚合和松耦合。 Apache Karaf 是一个OSGi的容器,它可以支持部署新的应用。...下面这些内容是我们依赖的feature,以标示,这里面大家发现了${yangtools.version}之类的变量是吧?...check-style插件会对这些包的引入进行检查,必须符合一定的规则,规则如下: (1)同组的包放在一起 (2)同组的包按照一定的顺序,一般是按照字典顺序 (3)不同组之间的包流一个空行 所以说我们摆放的时候必须按照字典序列...Opendaylight 开发使用了OSGi框架,OSGi框架的好处在于程序设计模块化,实现紧聚合和松耦合。 Apache Karaf 是一个OSGi的容器,它可以支持部署新的应用。...点击图片并长按,再选择“识别二维码”,加入SDNLAB的SDN讨论群。 ?

    2.9K80

    ONOS编程系列(一)之简单应用开发

    一个ONOS application是使用maven做管理的OSGi bundle。 因此,ONOS application 可以归结为Java类和POM文件的集合。...本教程以基于intent的交互式转发application为例,讨论了如何从零开始建立一个新应用。 本教程假设读者已经具备ONOS的运行经验,能够熟练启动ONOS实例。...xml文件中,注释掉关于checkstyle的plugin: ? 不过非常不建议这样做。最好的方法还是按照官方的要求,进行编程。...2.2 添加并编辑pom文件 在应用的根目录/apps/ifwd/下编辑pom文件: ? 在本例中,应用的名字是onos-app-ifwd。...在启动karaf/ONOS命令行界面以后,直接用feature:install加上名字,即可安装此应用。 然后,编辑apps/pom.xml,在文件中以形式包含该项目: ?

    2.1K60

    JClouds的命令行界面

    所以我开发了一个项目,使得在Karaf上安装JCloud非常简单,并且在Blob Store(微软的一种存储非机构化数据的技术)中添加了第一个基本命令,JClouds Karaf项目开始成形。...当然,这个集成项目大多是面向那些熟悉OSGi和Apache Karaf的人,不能被认为是一个通用工具,不像我在序幕中所梦想的那样。...最重要的是,您可以在OSGi规范为开发和使用命令。...交互式Shell以类似的方式工作,但它也提供了额外的功能: 服务可重用性 服务一次性创建 命令可以重用服务,从而缩短执行时间 代码补全 补全命令 补全参数值和选项 模块化 允许你只安装需要的东西。...扩展 你可以添加你自己的命令。 你可以添加额外的项目。 例如:从Whirr 0.8.0起,您可以将其安装到任何基于Karaf的环境中。所以你也可以把它添加到CLI中。

    2.1K90

    hibernate5新特性展示

    模式工具链 Session API类化 改进 OSGi 支持 改进 bytecode 增强功能 新的引导API 用来引导Hibernate(建立一个SessionFactory)的经典方式一直都是利用...支持参数化类型的转换 更好的 “bulk id table” 支持 对于bulk id table的支持已经被重新设计以更好地适配不同数据库的支持 事务管理 事务SPI也完成了主要的重构设计作为hibernate5.0...setting.关于更多细节,请查看JAVADocs中的org.hibernate.cfg.AvailableSettings.TRANSACTION_COORDINATOR_STRATEGY 下面的短名被识别为...改进 OSGi 支持 这始于一个不满的脆弱性hibernate-osgi测试.第一部分是一个使用了Pax Exam 和 Karaf的更好的测试启动.这会导致我们生成一个hibernate Karaf风格的文件...OSGi支持经过了很多改善,这需要归功了来自Karaf和Pax开发者和用户的支持 改进 bytecode 增强功能 在hibernate5.0的文档中已经对此进行了很多工作,但它仍有很大的提升空间

    1.4K40

    如何在 C# 中以编程的方式将 CSV 转为 Excel XLSX 文件

    在本文中,小编将为大家介绍如何在Java中以编程的方式将【比特币-美元】市场数据CSV文件转化为XLSX 文件。...- 在对话框中单击“是” : 然后在解决方案资源管理器 ( CTRL+ALT+L ) 中,右键单击 “依赖项” 并选择 “管理 NuGet 包”: 2)查询数据 创建一个CSV类,用于从AlphaVantage...using块之后)以处理 工作簿中的 CSV : BTCChartController.Get(续) public static void processWorkbook(Workbook workbook...趋势线以蓝色显示成交量的三个月移动平均线 , 以绿色显示最高价,以 红色显示最低价。...vnd.openxmlformats-officedocument.spreadsheetml.sheet", "BTC_Chart.xlsx"); } } // Get() 运行结果如下所示: 总结 以上就是在C# 中以编程的方式将

    25210

    ONOS 实战分享(一):项目建立、调试到热部署

    本文尽量不介绍Maven及其pom、OSGI、Karaf的内容,这些不是ONOS特有的,但需要朋友们对它们是什么、有什么作用,有个大致的了解,所以请大家Google之。...(2)导入IDE JAVA开发需要导入一大堆的包,虽说我们应该记住一些常用的包名,但实际工程中还是让IDE来帮我们做这些繁琐的工作吧,Let’s Go!...(我们以Eclipse为例,IDEA请稍候) 注:需要首先把整个ONOS源代码导入进Eclipse中,在此也不赘述了,参照官网Wiki:Development Environment Setup 如果遇到问题...如何开发模块的功能,可翻看我后续的文章,初步的了解可参考SDNLAB文章:ONOS编程系列(一)之简单应用开发 (3)编译构建项目 在这给大家介绍两种方式,Terminal方式、IDE方式,我推荐大家用...(除了入口脚本onos-karaf是被指定在源码文件夹中) 对于需要groupId以“org.onosproject”为前缀、Version如果跟ONOS的版本1.4.0-SNAPSHOT一样的情况,也是挺疑惑的

    2.1K80

    JClouds的命令行界面

    当然,这个整合项目大多是针对那些熟悉OSGi和 Apache Karaf的人 ,不能被认为是一个通用工具,就像我在序幕中所梦想的那样。...” 一个关于Apache Karaf的伟大事情发生啦—— 就是它很容易的成为品牌,而且由于它的模块化基础,你可以很容易地添加/删除位,以创建自己的分配。...最重要的是,它允许您发现和使用OSGi以外的命令。...交互式shell以类似的方式工作,但它也提供了额外的功能: 服务可重用性 服务只创建一次 命令可以重用服务,从而缩短执行时间 代码完成 完成命令 参数值和选项的完成 模块化 只需安装你需要的东西...扩展 可以添加你自己的命令。 可以添加额外的项目。 例如:从Whirr 0.8.0起,您可以将其安装到任何基于Karaf的环境中。所以你可以把它添加到cli中。

    1.5K70

    Poc之后,我选择放弃OSGI

    Poc之后,我选择放弃OSGI TIPS: 如贵司允许重构老系统或者允许使用OSGI的第三方框架改造所带来的投入成本,并且评估之后ROI乐观,那么还是可以使用的。...3.0.0 blueprint 3.0.0.M1 mybatis 3.5.3 mybatis-spring 1.3.2 mysql 5+/8+ 现状 以下方案前提条件:不使用第三方框架(Camel/karaf...Spring5 整合 基础Spring Bean注入通过xml方式已经成功,但是目前的bundle缺失较多,最重要的为jdbc & transaction,spring 在3.2之后升级为spring-tx...SpringMVC单体应用,如何将每一个controller中的所有methods封装为bundle中的bean services 对外统一暴露而不是one by one?...如何将现有SpringMVC 项目直接生成一个full bundle以提供对外暴露services, 并且对现有项目无侵入或很少侵入?

    1.3K20

    ONOS架构之子系统介绍

    实际上ONOS是由多个子系统组成,本文将对ONOS中几个比较有代表性的子系统进行介绍。 基础——OSGi: ONOS由多个模块组合而成,实际上ONOS是基于OSGi bundles实现的。...在ONOS中,每个子系统都有自己的源码树,ONOS吸收了Maven的分层POM组织方式,因而每个子项目拥有自己的pom.xml文件。...至于配置方面,因为ONOS使用了Karaf作为其OSGi框架,这使得动态模块载入成为可能,同时Karaf提供了诸如允许使用标准JAX-RS API去开发REST API使其更安全、运行时方便日志级别的设置和容易扩展的...本地的状态分段由节点管理,在集群中以事件传播。事件被Store生成,它们通过分布式储存与集群中的所有节点共享。...目前ONOS主控部分采用Hazelcast以达到强一致性,而Device、Link等部分的管理使用乐观的复制技术辅以gossip协议以确保最终一致性。

    1.5K60

    初识OSGI

    初识 OSGI 背景 当前product是以solution的方式进行售卖,但是随着公司业务规模的快速夸张,随之而来的是新客户的产品开发,老客户的产品维护,升级以及修改bug,团队的效能明显下降,为了解决此类问题...选型 技术没有银弹,目前没有完全确定要使用OSGI的方式来实现,因为本人之前使用Spring Cloud & Spring Cloud Alibaba各实现了一种demo, 当然也可以实现我们的服务化,...框架本身非常紧凑,你只需要3个包加一个shell就可以运行了,无论是开发还是Debug都非常简便。除了Felix,还有两个项目是和OSGi相关的。...一个是Apache Felix Karaf,它本身是Felix的一个子项目,但他其实是封装了Felix提供更高一层的Runtime,例如提供了JAAS。...import Bnd/Bndtools projects automatically 指的是将普通的jar包 打包 为OSGI 可用的jar.

    1.4K20

    OpenDaylight发布第七个版本Nitrogen(氮)

    2017年9月26日,Linux基金会领导下的开源SDN控制器项目OpenDaylight发布了第七个版本Nitrogen(氮),该版本缩短了开发时间,以借此实现OpenDaylight与OPNFV、Open...具备了这个功能之后,OpenDaylight显著提高了组件包之间的相互依赖关系的管理,从用户角度看,这个功能具备以下三点优势: 平台整体性能:由于Karaf 4生成并维护一个依赖映射,因此用户可以快速配置...ODL依赖于与Karaf部分相互作用的第三方特性,但是在氮版本发布之前,它不具备Karaf的安全性功能 加速部署的依赖映射也使得跟踪、隔离和发现故障和错误变得更加容易。...在氮版本之前,ODL模块在启动时并不是每次都需要这些信息,相反,依赖关系将在数据传输过程中解决。从经验来看,Karaf项目和OpenDaylight意识到这种方式并不是100%可靠的。...除了Karaf 4,OpenDaylight做了大量的工作以改进可扩展性和集群能力的健壮性。此外,在组成OpenDaylight的各个组件都有了小幅提升并且增加了Bug修复功能。

    92950

    SDN实战团分享(二十一):ONOS开发实战之OVS Manager(Bootcamp 2016)

    以Device子系统为例,核心是DeviceManager: ?...App理论上说是运行在ONOS支持之上的ONOS App,实际上他们是一个个运行在Karaf容器中的OSGI应用模块而已,相互独立,通过Karaf的机制去引用其他模块提供的服务,就连ONOS自身的各个子系统也是如此...所以普通Karaf中的应用能做的事情,在我们的App中也能做,区别在于我们此时针对性地使用ONOS各模块提供的服务,因此我们需要学习一下它们的设计特性和思想以及了解如何使用和扩展它们。...2)App命令行接口(CLI)的开发 命令行接口主要指的是在ONOS Karaf中的命令行操作,该接口主要用于调用我们应用的某个功能,特别是将不同的输入参数处理和适配好之后,单次或者多次调用应用的功能。...(这块内容应该与Table Type Patterns(TTP)有所相关) 以ONOS中已有的OpenVSwitchPipeline为例,解释什么叫“流表的规划”: ?

    2.5K90

    Lithium新加功能及Yang可视化成最大亮点

    Lithium概述 Lithium是OpenDaylight的第三个版本,是为编译可编程、软件定义网络的开源平台。...随着Lithium的发布,服务提供商和企业能够平滑地向SDN过渡,尤其是可重点聚焦拓宽智能网络的可编程性,可以编写自己所属的服务架构或利用以OpenDaylight为基础的商业产品在云环境中提供动态网络服务...,提供网络信息应用程序的IETF协议; 2、CAPWAP:CAPWAP插件项目管理CAPWAP兼容无线终端点WTP的网络设备; 3、DIDM:设备识别和驱动程序管理项目主要解决需要提供特定设备的功能性;...OpenDaylight控制器网络和启用LACP的端点或交换机之间的多条链路; 6、NIC:网络Intent组成是一个允许客户在增强设施中立格式中通过可用资源的修改表达期望状态的端口; 7、Opflex...:OpenDaylight Opflex代理是一个使用OVS工作的策略代理,本地虚拟机或容器中加强以组为基础的策略网络模型; 8、Persistence Store Service:为查询和非建模数据提供应用程序的持久性逻辑

    1.1K60
    领券