Opendaylight基础.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OpenDaylight中MD-SAL学习笔记2014/09/25 |?编辑:/author/%e6%9d%8e%e5%91%88/?李呈 |?阅读:1,0851 前言在学习OpenDaylight的过程中,总是遇到AD-SAL( API-Driven SAL)和MD-SAL(Model-Driven SAL)等概念。在努力查找资料学习之后,有了一点学习笔记,写出来加深印象。同时也给同样迷惑的同学一点帮助。2 About MD-SALMD-SAL使得在SDN控制器那些丰富的服务和模块可以使用统一的数据结构和南向和北向的API。上图引用地址:/images/4/4d/SAL-Comparison.pngMD-SAL提供请求路由(request routing)和基础设施去支持服务的适配,但它不提供服务的适应本身;业务适配是由插件提供。MD-SAL认为适配插件是一个普通的插件:它向SAL提供数据,并通过模型生产的API来读取消费数据。2.1 Request outing为SAL中,request routing可用于消费者的请求路由,从而寻找到对应的生产者。当一个plugin注册之后,就会在routing table中有对应记录,consumer向SAL发起RPC应用申请的时候,会由request routing查找routing table,找到对应的plugin。在md-sal/sal-binding-api/...、binding/api/rpc目录下可以找到RpcRouter.java等文件,都与RPC routing有关。当然request routing还有notification的routing,并不仅仅只是rpc。2.2 Bundle registerAbstractBrokerAwareActivator:在一个具体的plugin实现中会继承AbstractBindingAwareProvider类,而AbstractBindingAwareProvider继承了AbstractBrokerAwareActivator类。当一个bundle启动时就会调用AbstractBrokerAwareActivator。这个类实现了org.osgi.framework.BundleActivator接口。BunbleActivator中的start(BundleContext context)和stop(BundleContext context)方法用于开启bundle和关闭bundle.在AbstractBrokerAwareActivator中,实现了start和stop两个方法,分别调用了startImpl和stopImpl两个具体的方法。startImpl是在bundle开始的时候,用于初始化,资源申请等。同理,stopImpl是bundle关闭时,资源的释放。同理,消费者类似。2.3 onSessionInitialized每一个消费者或生产者和SAL之间的通信都可以具体称之为Session(会话)。上一小节提到的BundleActivator接口中有两个方法start和stop的参数都是BundleConetxt.在BundleContext接口中定义了许多方法,如:1registerService(java.lang.ClassS\ clazz, S service, java.util.Dictionaryjava.lang.String,? properties)可实现bundle的注册。具体链接:/javadoc/r4v43/core/org/osgi/framework/BundleContext.html在onSessionInitialized方法中,通常会调用session.addRpcImplementation(Class?Serviceinterface,T implementation)。其方法定义在RpcProvider.java中,用于指明bunlde初始化时的接口和实现等运行实体。3 Register to MD-SAL3.1 BindingAwareBrokerBindingAwareProvider和BindingAwareConsumer都实现了BindingAwareBroker interface,用 于实现生产者和消费者的在MD-SAL注册。此接口可以消除生产者和消费者之间的直接关系。其他文件的功能根据文件名称基本可以了解。博主也没有太多深究。3.2 RPC register调用addRpcImplementation(class T serviceInterface, T implementation)方法将RPC注册到MD-SAL,具体可查看RpcProvider

文档评论(0)

wuailuo + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档