Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OSGi概要

Akira Ikeda
October 10, 2012

 OSGi概要

勉強会のために作った概要資料。

Akira Ikeda

October 10, 2012
Tweet

More Decks by Akira Ikeda

Other Decks in Technology

Transcript

  1.  OSGi Alliance により標準化 ◦ http://www.osgi.org/  Javaに基づいたオープンのソフトウェア部品化技術  完全な動的モジュールを実現するための技術

    (動作を停止させずにモジュールの入れ替えが可能)  ネットワークを通じて部品を追加/更新/変更/削除  当初はホームゲートウェイを対象としていたが,現在 はモバイル機器や車載機器などにも範囲拡大 ◦ 最近ではアプリケーションサーバでの採用が目立つ ◦ その他,EclipseもOSGiを採用している
  2.  OSGiは5つのWGにてそれぞれ仕様策定 ◦ Core Platform Expert Group (CPEG)  OSGiコアの仕様を策定

    ◦ Enterprise Expert Group (EEG)  エンタープライズ分野の仕様を策定 ◦ Mobile Expert Group (MEG)  モバイル機器分野の仕様を策定 ◦ Residential Expert Group (REG)  ホームネットワーク分野の仕様を策定 ◦ Vehicle Expert Group (VEG)  車載機器分野の仕様を策定
  3.  OSGiアプリケーションはJavaの知識があればそれほ ど難しくない ◦ 言語(レベル)はJavaが書ければ大丈夫 ◦ 開発環境はEclipse 使えばいいだろう ◦ OSGiはオープン技術であり,その仕様は無料で入手可能

     ベンダの商用実装もあるが,最初は以下を使ってもいいだろう  Equinox : http://www.eclipse.org/equinox/  Eclipse使うならこれがらくちん  Apache Ferix : http://felix.apache.org/
  4.  OSGiではモジュールの単位を「バンドル」と呼ぶ ◦ イメージがつきにくい人は,プラグインと思ってもらっても良い 「バンドル」はマニフェストファイル・クラスファイル・リソース ファイルを1つにまとめたもの ◦ OSGi特有の実装としては以下が必要  マニフェストファイルにOSGi特有の属性を設定する

     BundleActivatorインターフェイスをクラスに実装する  「バンドル」には個別の設定が可能 ◦ バージョン制限や依存関係が設定 ◦ セキュリティ(アクセス制限)の設定  OSGiアプリはOSGiフレームワーク上で動作 ◦ OSGiはJava VM 上の フレームワークとして動作
  5.  Javaであることの難点を引き継いでしまう ◦ 実行速度の問題等  国内ではまだまだ普及しているとまではいえない(と思 う)  参考となる日本語情報がまだまだ少ない 

    基本実装はOSSでもあるが,バンドル管理や配信シス テムなど高度な管理などは商用のものが必要だろう ◦ バンドルの数が少ないうちは手作業でもいいのだが…
  6.  開発環境は「Eclipse + Equinox」を使います  今回はhello world 程度を実装します  以下の動きを見ます

    ◦ インストール ◦ スタート ◦ ストップ ◦ アップデート ◦ アンインストール