SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Downloaden Sie, um offline zu lesen
Copyright 2015 FUJITSU LABORATORIES LIMITED
2015年12月12日
株式会社富士通研究所
李 忠翰 (lee.chunghan@jp.fujitsu.com)
OpenDaylight上でApplicationを
実装してみよう!
Copyright 2015 FUJITSU LABORATORIES LIMITED11
以前、MPLS JAPAN 2015では
MLPS JAPAN 2015ではOpenDaylightでGroup
based Policy(GBP)を用いて仮想・物理ネットワーク
機器を同時に制御してコンテナの仮想ネットワーク
設定とトラヒックのQoS制御を行うデモを紹介しま
した
 OpenDaylightを用いたグループベースドポリシーによる仮想ネットワ
ークの制御, 李 忠翰(株式会社富士通研究所)
http://www.mpls.jp/presentations/lch_MPLS_JP.pdf
今日は、OpenDaylight上でどうすれば
Applicationを作れるかに関して紹介します!
Copyright 2015 FUJITSU LABORATORIES LIMITED22
今日のTramaDay#8では
 OpenDaylightのApplication(feature)を作るために必要な
知識に関して紹介
 Apache Karaf (OSGi)
 SAL (AD-SAL/MD-SAL)
 YANG
 RESTconf
 Yang and RESTconf
 JAVA
Concurrent programming (Multithreading)
Generic
Object Orient Programming (OOP)
 Maven
Copyright 2015 FUJITSU LABORATORIES LIMITED33
Apache Karaf (OSGi)
 Apache Karafって何?
 OSGiに基づいた実行環境であり、 OSGiを使いやすくしたもの
 ODLはKaraf基盤であり、Karaf上で動くApplicationをfeatureと言う
 Karafのコマンドを利用してfeatureを動的にinstall/uninstallなどが
可能
例えば、OpenFlowとOVSDBを同時に使いたい時には、それらに
関連するfeatureをODL上でInstallして使用
< ODL on Karaf >
Copyright 2015 FUJITSU LABORATORIES LIMITED44
SAL (AD-SAL/MD-SAL)
 Service Abstraction Layer (SAL)って何?
 SALはOSのKernelのようなもの
 Featureとして存在
 AD-SAL/MD-SALの違い
 AD-SAL : Application(Feature)のData modelの構造を個別に設計・
実装する必要があり、RESTAPIのmessageを個別のData storeに保存
 MD-SAL : Data modelをYangで記述して必要なAPIなどをYangtools
が自動生成したりRESTconfのmessageを共通のData storeに保存
ODL(AD-SAL)
Feature
Data
Store
Feature
Data
Store
RESTAPI (Northbound)
・個別のDatastoreでDataの管理
・必要なAPIなどの直接設計・実装
ODL(MD-SAL)
Data
Store
Feature
Feature
RESTconf (Northbound)
・共通のDatastoreでDataの管理
・必要なAPIなどの自動生成
Copyright 2015 FUJITSU LABORATORIES LIMITED55
Yang
 Yangって何?
 Data modeling languageの一つで、代表的にNetconfで利用される
 なぜ、Yangが必要か?
 ODL(Lithium)ではAD-SALが完全になくなり、MD-SALに移行
 MD-SALで内部のデータ構造がYangで記述されているので、
必ず理解する必要がある
 Yangで記述したものがJAVAのClassやObjectとしてマップされる
 参考文献&資料
 YangのRFC
https://tools.ietf.org/html/rfc6020
Copyright 2015 FUJITSU LABORATORIES LIMITED66
RESTconf
 RESTconfって何?
 MD-SALで利用されるNorthboundのProtocolであり,Rest + Netconf
 Endpoint/Policyなどで必要な機能を追加してPUT/POST/DELETE/GET
を利用してODLのData storeを操作
 参考資料
RESTconfのRFC
•https://tools.ietf.org/id/draft-bierman-netconf-restconf-04.txt
ODL APIdoc
•http://your host ip:8181/apidoc/explorer/index.html
>feature:install odl-mdsal-apidocs (ODL(karaf)で以下のcommandで有効)
•使用するRESTconf messageがどのType(PUT/POST/DELETE/GET)をサポートして
いるかを記述
Copyright 2015 FUJITSU LABORATORIES LIMITED77
Yang and RESTconf
 YangとRESTconfの関係
 Yangで記述したものがRESTconfで確認できる
 じゃ、Yangだけ記述できたら何となくODLで作成できるか?
→ NO, Yangで記述できたらYangtoolsがJAVA Codeは生成して
くれるが、MD-SALのData storeから必要なデータを取り出す部分と
Southbound protocolまでの部分は全部実装する必要がある
< pyangによるpolicy.yang(GBP)の一部 >
< RESTconfのPolicy messageの一部 >
Copyright 2015 FUJITSU LABORATORIES LIMITED88
JAVA – (1)
 なぜJAVA concurrent programmingの知識が必要か?
 ODLはJAVAで実装
 FeatureはMultithreading構造になっていて複数のThreadが
同時に実行されるケースが頻繁に存在
 Callback methodもかなり登場
 実際よく登場するケースと対策
 Methodの最初にObjectがNULLであるかどうかをCheckしてNULLで
あればそのままThreadが終了されるケースが頻繁に存在
→どこで終了されたのかを把握することがとても困難
 複数のThreadの中で一部だけ止めても、非同期のThreadは普通に動く
 最後にThreadが終了された部分を探す時にLogger(Debug mode)を
利用すると割と役に立つ
Copyright 2015 FUJITSU LABORATORIES LIMITED99
JAVA – (2)
 なぜGenericの知識が必要か?
 Yangtoolsで変換されてDataStoreに保存されたObjectの中で
必要なObjectだけを取り出して保存するために必要
 内部実装でGoogleのpackage(com.google.common.collect)も
良く使われるので覚えたほうが良い
 なぜOOPの知識が必要か?
 多くの内部実装がJAVA classの単一継承や複数のInterfaceを利用した
多重継承を普通に使用
Copyright 2015 FUJITSU LABORATORIES LIMITED1010
Maven
 Mavenって何?
 作ったアプリケーション(feature)をコンパイルする時に利用されるtool
 コンパイル時、遠隔のRepositoryから新しいSource(MD-SALなど)の
差分とかを取ってくる
→ ControllerのCore部分(MD-SALなど)がたまたま変わることもあり、
突然ODL上でちゃんとFeatureをinstallできない状況がある
 なぜMavenの知識が必要か?
 単純にコンパイルだけできれば良いのではないか?
→ NO,コンパイルする際にいろいろoptionがあり、POM.XMLを修正して
作ったfeatureを新たにODL(karaf)上でfeatureとしてDeployするために必要
 覚えておくと役に立つ機能
 -Dmaven.test.skip=true
Unit testをSkip (Skipしたくなければ、test codeを実装すればOK)
 -o
Offline modeで実行 (差分を無理可能)
Copyright 2015 FUJITSU LABORATORIES LIMITED1111
 Featureを実装するための全体的な手順
① Data Storeのために、YangでData modelを記述
② Data Storeで保存されている複数のobjectから必要な部分だけを
取り出すためのMethodを実装
③ ObjectをSouthbound protocolとやり取りするためのMethodを実装
④ Mavenを利用してコンパイルして、Karaf上でFeatureをinstall
⑤ RESTconf message (Northbound)を作成してSouthbound protocol
までちゃんとmessageが降りてくることを確認
Application(Feature)の実装の流れ
MD-SAL(RESTconf) ⑤
MD-SAL(Data Store) ①
Feature ②
Feature (southbound) ③
OpenDaylightRESTconf
protocol
User
Southbound
Protocol
Network
device
④
Copyright 2015 FUJITSU LABORATORIES LIMITED1212
まとめ
OpenDaylightでApplication(feature)を実装するた
めに、必要な知識に関して紹介
 YangとJAVAをちゃんと理解したら、Applicationを作れます!
上の知識をベースにOpenDaylightでApplication
(feature)を実装する全体的な手順に関して紹介
Copyright 2015 FUJITSU LABORATORIES LIMITED1313

Weitere ähnliche Inhalte

Was ist angesagt?

クラウド時代のエンジニア魂と企業に必要なカルチャーチェンジ(前半)
クラウド時代のエンジニア魂と企業に必要なカルチャーチェンジ(前半)クラウド時代のエンジニア魂と企業に必要なカルチャーチェンジ(前半)
クラウド時代のエンジニア魂と企業に必要なカルチャーチェンジ(前半)
irix_jp
 
2016-ShowNet-IoTを融合したマルチクラウドファブリック
2016-ShowNet-IoTを融合したマルチクラウドファブリック 2016-ShowNet-IoTを融合したマルチクラウドファブリック
2016-ShowNet-IoTを融合したマルチクラウドファブリック
Interop Tokyo ShowNet NOC Team
 
2016-ShowNetステージ-データセンタファシリティ
2016-ShowNetステージ-データセンタファシリティ2016-ShowNetステージ-データセンタファシリティ
2016-ShowNetステージ-データセンタファシリティ
Interop Tokyo ShowNet NOC Team
 
2016-ShowNetステージ-ShowNetを守るセキュリティ
2016-ShowNetステージ-ShowNetを守るセキュリティ2016-ShowNetステージ-ShowNetを守るセキュリティ
2016-ShowNetステージ-ShowNetを守るセキュリティ
Interop Tokyo ShowNet NOC Team
 

Was ist angesagt? (20)

ひとりではじめる OpenStack Summit の楽しみ方
ひとりではじめる OpenStack Summit の楽しみ方ひとりではじめる OpenStack Summit の楽しみ方
ひとりではじめる OpenStack Summit の楽しみ方
 
OpenStack Summit 2016 Austin 参加報告
OpenStack Summit 2016 Austin 参加報告OpenStack Summit 2016 Austin 参加報告
OpenStack Summit 2016 Austin 参加報告
 
NFV関連の話題
NFV関連の話題NFV関連の話題
NFV関連の話題
 
SC16 NVIDIA NEWS
SC16 NVIDIA NEWSSC16 NVIDIA NEWS
SC16 NVIDIA NEWS
 
Open stack summit 2016 austin参加報告
Open stack summit 2016 austin参加報告Open stack summit 2016 austin参加報告
Open stack summit 2016 austin参加報告
 
Member Alliance スカイコム
Member Alliance スカイコムMember Alliance スカイコム
Member Alliance スカイコム
 
2016-ShowNet-報告資料
2016-ShowNet-報告資料2016-ShowNet-報告資料
2016-ShowNet-報告資料
 
空回りのクラウド基盤導入
空回りのクラウド基盤導入空回りのクラウド基盤導入
空回りのクラウド基盤導入
 
クラウド時代のエンジニア魂と企業に必要なカルチャーチェンジ(前半)
クラウド時代のエンジニア魂と企業に必要なカルチャーチェンジ(前半)クラウド時代のエンジニア魂と企業に必要なカルチャーチェンジ(前半)
クラウド時代のエンジニア魂と企業に必要なカルチャーチェンジ(前半)
 
商用導入実績世界1位! ミランティスが提供するOpenStackとお客様の導入事例
商用導入実績世界1位! ミランティスが提供するOpenStackとお客様の導入事例商用導入実績世界1位! ミランティスが提供するOpenStackとお客様の導入事例
商用導入実績世界1位! ミランティスが提供するOpenStackとお客様の導入事例
 
2016-ShowNet-IoTを融合したマルチクラウドファブリック
2016-ShowNet-IoTを融合したマルチクラウドファブリック 2016-ShowNet-IoTを融合したマルチクラウドファブリック
2016-ShowNet-IoTを融合したマルチクラウドファブリック
 
2016-ShowNetステージ-データセンタファシリティ
2016-ShowNetステージ-データセンタファシリティ2016-ShowNetステージ-データセンタファシリティ
2016-ShowNetステージ-データセンタファシリティ
 
2016-ShowNetステージ-ShowNetを守るセキュリティ
2016-ShowNetステージ-ShowNetを守るセキュリティ2016-ShowNetステージ-ShowNetを守るセキュリティ
2016-ShowNetステージ-ShowNetを守るセキュリティ
 
2016-ShowNet-対外接続(エクスターナル)
2016-ShowNet-対外接続(エクスターナル)2016-ShowNet-対外接続(エクスターナル)
2016-ShowNet-対外接続(エクスターナル)
 
Open stack概要とよくある議論
Open stack概要とよくある議論Open stack概要とよくある議論
Open stack概要とよくある議論
 
OpenStack批評 2015
OpenStack批評 2015OpenStack批評 2015
OpenStack批評 2015
 
NFVとその周辺の話題
NFVとその周辺の話題NFVとその周辺の話題
NFVとその周辺の話題
 
OpenStack Summit 2014 Novemver in Paris 参加報告
OpenStack Summit 2014 Novemver in Paris 参加報告OpenStack Summit 2014 Novemver in Paris 参加報告
OpenStack Summit 2014 Novemver in Paris 参加報告
 
Osaka-Meetup-Sep2016
Osaka-Meetup-Sep2016Osaka-Meetup-Sep2016
Osaka-Meetup-Sep2016
 
OpenStackネットワーク実装の 現状と運用自動化開発の実際 第二部:運用自動化開発の実際 – OpenStack最新情報セミナー 2015年7月
OpenStackネットワーク実装の 現状と運用自動化開発の実際 第二部:運用自動化開発の実際 – OpenStack最新情報セミナー 2015年7月OpenStackネットワーク実装の 現状と運用自動化開発の実際 第二部:運用自動化開発の実際 – OpenStack最新情報セミナー 2015年7月
OpenStackネットワーク実装の 現状と運用自動化開発の実際 第二部:運用自動化開発の実際 – OpenStack最新情報セミナー 2015年7月
 

Ähnlich wie How to implement OpenDaylight application ?

ネットショップ能力認定機構主催(無料セミナー 20150422)
ネットショップ能力認定機構主催(無料セミナー 20150422)ネットショップ能力認定機構主催(無料セミナー 20150422)
ネットショップ能力認定機構主催(無料セミナー 20150422)
Yuichi Morito
 
Setta soft layersummit(公開用)_creationline
Setta soft layersummit(公開用)_creationlineSetta soft layersummit(公開用)_creationline
Setta soft layersummit(公開用)_creationline
chenree3
 
Setta soft layersummit(公開用)_creationline
Setta soft layersummit(公開用)_creationlineSetta soft layersummit(公開用)_creationline
Setta soft layersummit(公開用)_creationline
softlayerjp
 

Ähnlich wie How to implement OpenDaylight application ? (20)

PuppetConf2015参加レポート (第1回 Puppetユーザ会 発表資料)
PuppetConf2015参加レポート (第1回 Puppetユーザ会 発表資料)PuppetConf2015参加レポート (第1回 Puppetユーザ会 発表資料)
PuppetConf2015参加レポート (第1回 Puppetユーザ会 発表資料)
 
Open stack概要 lpi-opcelサミット(当日用)
Open stack概要 lpi-opcelサミット(当日用)Open stack概要 lpi-opcelサミット(当日用)
Open stack概要 lpi-opcelサミット(当日用)
 
OMA GotAPI 標準化作業状況アップデート
OMA GotAPI 標準化作業状況アップデートOMA GotAPI 標準化作業状況アップデート
OMA GotAPI 標準化作業状況アップデート
 
Pivotal Cloud FoundryによるDevOpsとアジャイル開発の推進
Pivotal Cloud FoundryによるDevOpsとアジャイル開発の推進Pivotal Cloud FoundryによるDevOpsとアジャイル開発の推進
Pivotal Cloud FoundryによるDevOpsとアジャイル開発の推進
 
Intro to OMA GotAPI Open-Source Implementation Supporting Web - Healthcare Us...
Intro to OMA GotAPI Open-Source Implementation Supporting Web - Healthcare Us...Intro to OMA GotAPI Open-Source Implementation Supporting Web - Healthcare Us...
Intro to OMA GotAPI Open-Source Implementation Supporting Web - Healthcare Us...
 
SkyWay国内唯一のCPaaS
SkyWay国内唯一のCPaaSSkyWay国内唯一のCPaaS
SkyWay国内唯一のCPaaS
 
Cloud stack概要とaccel認定試験のご紹介
Cloud stack概要とaccel認定試験のご紹介Cloud stack概要とaccel認定試験のご紹介
Cloud stack概要とaccel認定試験のご紹介
 
MLOps NYC 2019 and Strata Data Conference NY 2019 report nttdata
MLOps NYC 2019 and Strata Data Conference NY 2019 report nttdataMLOps NYC 2019 and Strata Data Conference NY 2019 report nttdata
MLOps NYC 2019 and Strata Data Conference NY 2019 report nttdata
 
第15回cloudstackユーザー会
第15回cloudstackユーザー会第15回cloudstackユーザー会
第15回cloudstackユーザー会
 
OpenStack Summit Vancouver Summary
OpenStack Summit Vancouver SummaryOpenStack Summit Vancouver Summary
OpenStack Summit Vancouver Summary
 
ネットショップ能力認定機構主催(無料セミナー 20150422)
ネットショップ能力認定機構主催(無料セミナー 20150422)ネットショップ能力認定機構主催(無料セミナー 20150422)
ネットショップ能力認定機構主催(無料セミナー 20150422)
 
【HinemosWorld2015】B1-5_【入門】Hinemosではじめるクラウド運用
【HinemosWorld2015】B1-5_【入門】Hinemosではじめるクラウド運用【HinemosWorld2015】B1-5_【入門】Hinemosではじめるクラウド運用
【HinemosWorld2015】B1-5_【入門】Hinemosではじめるクラウド運用
 
Setta soft layersummit(公開用)_creationline
Setta soft layersummit(公開用)_creationlineSetta soft layersummit(公開用)_creationline
Setta soft layersummit(公開用)_creationline
 
Setta soft layersummit(公開用)_creationline
Setta soft layersummit(公開用)_creationlineSetta soft layersummit(公開用)_creationline
Setta soft layersummit(公開用)_creationline
 
【FKEYセミナー 20150205 基調講演】「今こそクラウド活用」 講師:大和 敏彦 氏 (株式会社アイティアイ 代表取締役)
【FKEYセミナー 20150205 基調講演】「今こそクラウド活用」 講師:大和 敏彦 氏 (株式会社アイティアイ 代表取締役)【FKEYセミナー 20150205 基調講演】「今こそクラウド活用」 講師:大和 敏彦 氏 (株式会社アイティアイ 代表取締役)
【FKEYセミナー 20150205 基調講演】「今こそクラウド活用」 講師:大和 敏彦 氏 (株式会社アイティアイ 代表取締役)
 
富士通におけるCloud Foundry活用の取り組み
富士通におけるCloud Foundry活用の取り組み富士通におけるCloud Foundry活用の取り組み
富士通におけるCloud Foundry活用の取り組み
 
活動報告とビーコンITの取り組み
活動報告とビーコンITの取り組み活動報告とビーコンITの取り組み
活動報告とビーコンITの取り組み
 
新たなクラウドビジネスを支える「Gmoクラウドパートナー制度」
新たなクラウドビジネスを支える「Gmoクラウドパートナー制度」新たなクラウドビジネスを支える「Gmoクラウドパートナー制度」
新たなクラウドビジネスを支える「Gmoクラウドパートナー制度」
 
What happens in Spring Cloud Netflix
What happens in Spring Cloud NetflixWhat happens in Spring Cloud Netflix
What happens in Spring Cloud Netflix
 
電通国際情報サービス_AIテクノロジー部の研究開発と製品開発事例_191213
電通国際情報サービス_AIテクノロジー部の研究開発と製品開発事例_191213電通国際情報サービス_AIテクノロジー部の研究開発と製品開発事例_191213
電通国際情報サービス_AIテクノロジー部の研究開発と製品開発事例_191213
 

How to implement OpenDaylight application ?

  • 1. Copyright 2015 FUJITSU LABORATORIES LIMITED 2015年12月12日 株式会社富士通研究所 李 忠翰 (lee.chunghan@jp.fujitsu.com) OpenDaylight上でApplicationを 実装してみよう!
  • 2. Copyright 2015 FUJITSU LABORATORIES LIMITED11 以前、MPLS JAPAN 2015では MLPS JAPAN 2015ではOpenDaylightでGroup based Policy(GBP)を用いて仮想・物理ネットワーク 機器を同時に制御してコンテナの仮想ネットワーク 設定とトラヒックのQoS制御を行うデモを紹介しま した  OpenDaylightを用いたグループベースドポリシーによる仮想ネットワ ークの制御, 李 忠翰(株式会社富士通研究所) http://www.mpls.jp/presentations/lch_MPLS_JP.pdf 今日は、OpenDaylight上でどうすれば Applicationを作れるかに関して紹介します!
  • 3. Copyright 2015 FUJITSU LABORATORIES LIMITED22 今日のTramaDay#8では  OpenDaylightのApplication(feature)を作るために必要な 知識に関して紹介  Apache Karaf (OSGi)  SAL (AD-SAL/MD-SAL)  YANG  RESTconf  Yang and RESTconf  JAVA Concurrent programming (Multithreading) Generic Object Orient Programming (OOP)  Maven
  • 4. Copyright 2015 FUJITSU LABORATORIES LIMITED33 Apache Karaf (OSGi)  Apache Karafって何?  OSGiに基づいた実行環境であり、 OSGiを使いやすくしたもの  ODLはKaraf基盤であり、Karaf上で動くApplicationをfeatureと言う  Karafのコマンドを利用してfeatureを動的にinstall/uninstallなどが 可能 例えば、OpenFlowとOVSDBを同時に使いたい時には、それらに 関連するfeatureをODL上でInstallして使用 < ODL on Karaf >
  • 5. Copyright 2015 FUJITSU LABORATORIES LIMITED44 SAL (AD-SAL/MD-SAL)  Service Abstraction Layer (SAL)って何?  SALはOSのKernelのようなもの  Featureとして存在  AD-SAL/MD-SALの違い  AD-SAL : Application(Feature)のData modelの構造を個別に設計・ 実装する必要があり、RESTAPIのmessageを個別のData storeに保存  MD-SAL : Data modelをYangで記述して必要なAPIなどをYangtools が自動生成したりRESTconfのmessageを共通のData storeに保存 ODL(AD-SAL) Feature Data Store Feature Data Store RESTAPI (Northbound) ・個別のDatastoreでDataの管理 ・必要なAPIなどの直接設計・実装 ODL(MD-SAL) Data Store Feature Feature RESTconf (Northbound) ・共通のDatastoreでDataの管理 ・必要なAPIなどの自動生成
  • 6. Copyright 2015 FUJITSU LABORATORIES LIMITED55 Yang  Yangって何?  Data modeling languageの一つで、代表的にNetconfで利用される  なぜ、Yangが必要か?  ODL(Lithium)ではAD-SALが完全になくなり、MD-SALに移行  MD-SALで内部のデータ構造がYangで記述されているので、 必ず理解する必要がある  Yangで記述したものがJAVAのClassやObjectとしてマップされる  参考文献&資料  YangのRFC https://tools.ietf.org/html/rfc6020
  • 7. Copyright 2015 FUJITSU LABORATORIES LIMITED66 RESTconf  RESTconfって何?  MD-SALで利用されるNorthboundのProtocolであり,Rest + Netconf  Endpoint/Policyなどで必要な機能を追加してPUT/POST/DELETE/GET を利用してODLのData storeを操作  参考資料 RESTconfのRFC •https://tools.ietf.org/id/draft-bierman-netconf-restconf-04.txt ODL APIdoc •http://your host ip:8181/apidoc/explorer/index.html >feature:install odl-mdsal-apidocs (ODL(karaf)で以下のcommandで有効) •使用するRESTconf messageがどのType(PUT/POST/DELETE/GET)をサポートして いるかを記述
  • 8. Copyright 2015 FUJITSU LABORATORIES LIMITED77 Yang and RESTconf  YangとRESTconfの関係  Yangで記述したものがRESTconfで確認できる  じゃ、Yangだけ記述できたら何となくODLで作成できるか? → NO, Yangで記述できたらYangtoolsがJAVA Codeは生成して くれるが、MD-SALのData storeから必要なデータを取り出す部分と Southbound protocolまでの部分は全部実装する必要がある < pyangによるpolicy.yang(GBP)の一部 > < RESTconfのPolicy messageの一部 >
  • 9. Copyright 2015 FUJITSU LABORATORIES LIMITED88 JAVA – (1)  なぜJAVA concurrent programmingの知識が必要か?  ODLはJAVAで実装  FeatureはMultithreading構造になっていて複数のThreadが 同時に実行されるケースが頻繁に存在  Callback methodもかなり登場  実際よく登場するケースと対策  Methodの最初にObjectがNULLであるかどうかをCheckしてNULLで あればそのままThreadが終了されるケースが頻繁に存在 →どこで終了されたのかを把握することがとても困難  複数のThreadの中で一部だけ止めても、非同期のThreadは普通に動く  最後にThreadが終了された部分を探す時にLogger(Debug mode)を 利用すると割と役に立つ
  • 10. Copyright 2015 FUJITSU LABORATORIES LIMITED99 JAVA – (2)  なぜGenericの知識が必要か?  Yangtoolsで変換されてDataStoreに保存されたObjectの中で 必要なObjectだけを取り出して保存するために必要  内部実装でGoogleのpackage(com.google.common.collect)も 良く使われるので覚えたほうが良い  なぜOOPの知識が必要か?  多くの内部実装がJAVA classの単一継承や複数のInterfaceを利用した 多重継承を普通に使用
  • 11. Copyright 2015 FUJITSU LABORATORIES LIMITED1010 Maven  Mavenって何?  作ったアプリケーション(feature)をコンパイルする時に利用されるtool  コンパイル時、遠隔のRepositoryから新しいSource(MD-SALなど)の 差分とかを取ってくる → ControllerのCore部分(MD-SALなど)がたまたま変わることもあり、 突然ODL上でちゃんとFeatureをinstallできない状況がある  なぜMavenの知識が必要か?  単純にコンパイルだけできれば良いのではないか? → NO,コンパイルする際にいろいろoptionがあり、POM.XMLを修正して 作ったfeatureを新たにODL(karaf)上でfeatureとしてDeployするために必要  覚えておくと役に立つ機能  -Dmaven.test.skip=true Unit testをSkip (Skipしたくなければ、test codeを実装すればOK)  -o Offline modeで実行 (差分を無理可能)
  • 12. Copyright 2015 FUJITSU LABORATORIES LIMITED1111  Featureを実装するための全体的な手順 ① Data Storeのために、YangでData modelを記述 ② Data Storeで保存されている複数のobjectから必要な部分だけを 取り出すためのMethodを実装 ③ ObjectをSouthbound protocolとやり取りするためのMethodを実装 ④ Mavenを利用してコンパイルして、Karaf上でFeatureをinstall ⑤ RESTconf message (Northbound)を作成してSouthbound protocol までちゃんとmessageが降りてくることを確認 Application(Feature)の実装の流れ MD-SAL(RESTconf) ⑤ MD-SAL(Data Store) ① Feature ② Feature (southbound) ③ OpenDaylightRESTconf protocol User Southbound Protocol Network device ④
  • 13. Copyright 2015 FUJITSU LABORATORIES LIMITED1212 まとめ OpenDaylightでApplication(feature)を実装するた めに、必要な知識に関して紹介  YangとJAVAをちゃんと理解したら、Applicationを作れます! 上の知識をベースにOpenDaylightでApplication (feature)を実装する全体的な手順に関して紹介
  • 14. Copyright 2015 FUJITSU LABORATORIES LIMITED1313