在上一篇《从零开始学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,实现系统的模块化开发和组件的重复利用。
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条评论
快来发表一下你的评论吧 !