0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

OpenDaylight中的Karaf

汽车电子技术 来源:码农与软件时代 作者: 码农与软件时代 2023-02-14 15:08 次阅读

在上一篇《从零开始学OpenDaylight之六:OSGi》中,我们已经介绍了OSGi的基础知识,其企业级的部署环境有Apache Karaf、Eclipse Virgo等,本篇我们来分析下Apache Karaf。

一、Karaf基础

1.基本介绍

Karaf是一个现代的、多种形态的(polymorphic),轻量的、强大的、经过OSGI认证的企业级容器。这里的多种形态指的是它能够容纳各种应用,诸如OSGi、Spring、war等等。单从OSGi的角度来说,Karaf是OSGI的容器实例,类似tomcat是Servlet的容器实例一样。其逻辑架构图如下所示:

图片

从图中我们可以看出,Karaf使用Apache Felix或Eclipse Equinox运行时框架,编程模型采用Blueprint实现配置,并在此基础之上提供诸如日志、控制台、安全、部署等通用功能。

图片

同时,Karaf 还提出了“Feature”的概念,即特性。通过Feature的定义,最小单元为OSGi Bundle,多个OSGi Bundle根据功能需求聚合在一起形成一个Feature,多个Feature可能聚合在一起形成一个大的Feature,最终所有的OSGi Bundle能有序地组合起来,形成清晰、可重复利用的功能Feature,实现系统的模块化开发和组件的重复利用。

图片

  1. Karaf Archive示例

Karaf最终部署的是KAR包,生成KAR包需要如下工作:

①pom.xml文件使用features-maven-plugin;

②feature.xml 指明具体的bundle等信息

图片

图片

二、Karaf使用

在Karaf官网(http://karaf.apache.org/download.html)下载发布版本并解压到本地,如下图所示:

图片

在命令窗口输入.\\karaf,可得到如下加载成功的提示信息:

图片

执行命令:feature:install webconsole

图片

安装成功后,在浏览器输入如下URL地址,用户名和密码都是karaf。

http://localhost:8181/system/console/bundles

图片

图片

执行命令:system:shutdown停止Karaf容器。

图片

更多信息可以参考:http://mirrors.shu.edu.cn/apache/karaf/documentation/4_x.pdf

三、Karaf在OpenDaylight中的应用

OpenDaylight使用Karaf作为其部署环境,官网提供发布版本,URL地址信息为:http://www.opendaylight.org/software/downloads,下载并解压后目录如下:

图片

执行命令.\\karaf,启动OpenDaylight控制器

图片

执行命令feature:list -i,查看已安装的Feature

图片查看GUI界面,输入URL地址:http://127.0.0.1:8181/index.html#/yangui/index

图片

四、小结

从零开始学OpenDaylight系列介绍到这里,我们已经将OpenDaylight的“外围”工具和环境讲解完成了:

①使用Maven来进行项目构建和依赖包管理;

②基于OSGi框架进行编程:面向组件、服务和接口的编程模型,并使用blueprint容器进行配置管理;

③使用Karaf运行环境,并使用的Feature概念。

从下一篇开始我们将开始讲解业务逻辑编程的部分:YANG、DataStore、RPC、Notification等等。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 容器
    +关注

    关注

    0

    文章

    483

    浏览量

    21928
  • Servlet
    +关注

    关注

    0

    文章

    18

    浏览量

    7874
  • tomcat
    +关注

    关注

    0

    文章

    27

    浏览量

    4808
收藏 人收藏

    评论

    相关推荐

    T12电烙铁控模块#电子元器件 #电子技术 #芯片 #电子工程师

    烙铁控系统工具使用
    jf_21394466
    发布于 :2022年08月19日 14:06:29

    718.如何利用HomeAssistant,让你的闲置树莓派成为智能控?

    控系统树莓派
    小凡
    发布于 :2022年10月05日 01:53:42

    汽车车身控制与舒适性系统检修:控门锁系统控制电路#汽车维修

    汽车电子控系统
    学习电子
    发布于 :2022年11月20日 15:15:49

    汽车车身控制与舒适性系统检修:控门锁系统故障诊断和排除#汽车维修

    汽车电子控系统
    学习电子
    发布于 :2022年11月20日 15:16:47

    别克君越控开关失灵,什么情况怎么解决

    开关
    YS YYDS
    发布于 :2023年06月23日 00:38:57

    OpenDaylight软件定义网络框架

    ./oschina_soft/controller.zip
    发表于 05-13 10:51 3次下载
    <b class='flag-5'>OpenDaylight</b>软件定义网络框架

    如何从零开始学OpenDaylight

    OpenDaylight的逻辑架构分为应用层、控制器层和数据转发层。其中,应用层聚焦网络业务逻辑开发,负责资源编排;控制器层进行全局网络的管理;数据转发层为各种网络设备,负责数据的转发。
    的头像 发表于 02-14 14:04 1553次阅读
    如何从零开始学<b class='flag-5'>OpenDaylight</b>

    OpenDaylight的运行环境

    OpenDaylight作为一种开源的SDN控制器,使用Java语言编写,
    的头像 发表于 02-14 14:08 620次阅读
    <b class='flag-5'>OpenDaylight</b>的运行环境

    OpenDaylight的示例

    对于External System来说,我们在介绍基于REST API编程时再进行介绍。
    的头像 发表于 02-14 14:11 488次阅读
    <b class='flag-5'>OpenDaylight</b>的示例

    什么是OpenDaylight的Maven

    构建的实质是将我们编写的Java源文件、XML配置文件、HTML页面、CSS和JS文件等,通过某种方式组合在一起,变为可对外服务项目的过程。同时,构建过程中很多都是没有技术含量且重复的工作,手工操作很无趣且太麻烦。
    的头像 发表于 02-14 15:02 746次阅读
    什么是<b class='flag-5'>OpenDaylight</b>的Maven

    OpenDaylight中的OSGi

    从写单个类的打印Hello World小程序到OSGi模块化开发,确实存在较大的难度,本文将从模块化、OSGI模型以及OSGI在OpenDaylight中的应用等方面进行介绍。
    的头像 发表于 02-14 15:05 601次阅读
    <b class='flag-5'>OpenDaylight</b>中的OSGi

    OpenDaylight中的YANG

    YANG是和NETCONF相伴而生的,而NETCONF作为网络管理协议,包含安全传输层、消息层、操作层和内容层,其中内容层没有标准化,操作层允许自定义RPC,而这两者的标准化建模就是由YANG来完成的。
    的头像 发表于 02-14 15:10 1256次阅读
    <b class='flag-5'>OpenDaylight</b>中的YANG

    OpenDaylight中的DataStore是什么

    SDN起源于校园网,发扬光大于数据中心,现广泛用于广域网,SDN控制器,可能管理着数十万台软交换机,下发数百万乃至上千万条路由信息。因此,作为SDN控制器的开源项目OpenDaylight,无论是业务逻辑还是数据存储,
    的头像 发表于 02-14 15:13 1137次阅读
    <b class='flag-5'>OpenDaylight</b>中的DataStore是什么

    OpenDaylight中的RPC &amp; Notification是什么

    我们将介绍RPC和Notification,并从进程内外的通信开始,着重介绍远程过程调用和发布-订阅机制,然后分析MD-SAL的通信交互过程。
    的头像 发表于 02-14 15:15 705次阅读
    <b class='flag-5'>OpenDaylight</b>中的RPC &amp; Notification是什么

    OpenDaylight中的MD-SAL是什么

    一般情况下,软件系统的研发分为需求获取与分析、架构设计、代码实现、系统发布、上线等阶段。其中,架构设计可以细分为架构需求、分析、设计、文档化、评审、修改和实现等过程,我们以简化归一,描述为:提供UI界面和消息接口服务,UI选择B\S架构风格,消息可以是REST、SOAP以及AMQP等类型,数据库采用关系型数据库
    的头像 发表于 02-14 15:17 847次阅读
    <b class='flag-5'>OpenDaylight</b>中的MD-SAL是什么