私はこれの初心者であり、WAB について読んでいますが、基本的な違いを明確にしたいと考えています。Tomcat に埋め込まれた osgi を使用し、WAR と WAB を作成することを意味しますか?
各オプションをいつ検討する必要がありますか?
1)Tomcatに組み込まれたOSGI
2) OSGI の tomcat
3) WAB を使用する
コンテナに組み込まれた OSGi (Tomcat だけでなく!) は、従来の JavaEE WAR デプロイメント モデルを余儀なくされている場合、おそらく唯一のオプションです。つまり、IT 部門がコンテナを操作し、WAR ファイルをコンテナにデプロイすることしかできません。これにより、OSGi フレームワーク全体が Web アプリケーション内でブートストラップされ、Web アプリケーション内でモジュール式の開発が可能になります。Web アプリケーションは、一連の OSGi バンドルとして構成されます。また、既存のレガシー Web アプリケーションを OSGi モジュールに移行/転送するためにも使用できます。ただし、これには困難が伴います。
2 番目のアプローチ (OSGi の Tomcat) を純粋な OSGi アプローチと呼びたいと思います。Tomcat またはその他のサーブレット コンテナー (Jetty など) は、OSGi フレームワークにバンドル (またはバンドルのセット) としてデプロイできます。OSGi フレームワークはコンテナーです。Web アプリケーションを完全に分離することはできなくなりました。交差することができます。一部のバンドル/モジュールは Web 機能を実装する場合と、そうでない場合があります。コア機能 (コア バンドル) は、他の Web バンドルで再利用できます。
3 番目のオプションは、OSGi での新しい仕様作業の結果です。基本的に、これは OSGi バンドル マニフェストを含む Web アプリケーションです。したがって、Web アプリケーション全体を単一の OSGi バンドルとして、WAB をサポートする任意のフレームワークにデプロイできます。技術的には、バンドルは Web アプリケーションとしてサーブレット コンテナにデプロイできます。ただし、BundleContext にアクセスできます。これにより、Web アプリケーションは、同じフレームワークで実行されている他のバンドルまたは Web アプリケーションと相互運用できます。