OSGi入門
OSGi入門0 | OSGi入門2

1. OSGi入門1

ネットワークなどを介してソフトウエア部品をやりとりすることで様々な機器の
機能を容易に変更することを目指したプラットフォーム技術です。

Java仮想マシン上で動作する実行環境と、一定の枠組みの下にJava言語で
記述した「バンドル」と呼ぶ各種アプリケーション・ソフトウエアやミドルウエアで
構成されています。

現在、ソフトウエアのリモート更新や追加機能実現のため、OA機器業界で
盛んに使われているほか,自動車業界,携帯電話機業界などへと応用範囲が
広がりつつあります。
OSGiのメリット・デメリット
  •  メリット ・動作中のシステムを停止することなく、修正・更新等が行える
    ・再利用性が高い
     デメリット ・高い演算性能を必要とする処理には向かない
    ・多数のバンドルを使用する場合、起動に時間がかかる
  
より分かりやすく・・・
  • 上記の説明では分かりにくいと思いますので、簡単な図を示します。
    OSGIイメージ
    OS上でJavaVMが動作し、JavaVM上でOSGiプラットフォームが動作し、
    OSGiプラットフォーム上で各バンドルが動作するというイメージになります。

    身近なもので説明するなら、OSGiプラットフォームがEclipseであり、
    バンドルがプラグインということになります。


    OSGiプラットフォームとして有名なものは以下の3つになります。
    ・Apache Felix
    ・Knopflerfish
    ・Equinox

    OSGi入門では、Equinoxを使用してOSGiの基本を学んでいきたいと思います。
  
その前に、バンドルとは何か・・・
  • バンドルと言っても、実際は単体のjarファイルとなります。
    jarファイルには、classファイルと設定が記述されたMANIFEST.MFなどを含み、
    MANIFEST.MFにメインとなるクラス名や、依存する他のバンドル/jarファイル
    へのパスなどを記述します。

    OSGiプラットフォーム上での位置づけとしては、ライフサイクルを持つ処理単位
    といえます。インストールやアンインストールといったイベントによって、
    状態遷移を行います。

    バンドルの状態遷移一覧
    ・Installed:インストール済み
    ・Resolved:依存関係の解決済み
    ・Starting:バンドルの起動処理中
    ・Active:バンドルが起動中
    ・Stopping:バンドルの停止処理中
    ・Uninstalled:アンインストール済み


    次回は、MANIFEST.MFの記述方法と、Equinoxの導入を行います。


    <次回は「OSGi入門2」です。>
  
OSGi入門0 | OSGi入門2