1

さまざまなレイヤー (つまり、ui->services->core) を持つ Web アプリケーションがあります。レイヤーの 1 つを更新する必要がある場合は、アプリケーション全体を再起動する必要があります。そこで、OSGI を使用してこれらのレイヤーを分離することにしました。その後、再起動せずに各レイヤーを更新できました。

これは良い考えですか、それともosgiは正しいアプローチではありませんか?

4

2 に答える 2

4

まあ、それがアプローチかどうかはわかりませんが、確かに OSGi は良いアプローチです。kctang の回答で指摘されているように、学習曲線は非常に急勾配です。ただし、最終的には支払います。厳密なモジュラー アプローチにより、他のフレームワークでは不可能な関心事の分離を実現できます。

あなたの特定のケースを参照して、私は最近OSGi in Depthの章を読みました。そこでは、OSGi でのレイヤー分離のポイントを示しており、特にクラウド展開に焦点を当てています。要約すると、リモート サービス仕様は、レイヤーを複数のマシンに分散するのに役立ちます。これは、エンタープライズ アプリケーションにとって命の恩人になる可能性があります。もう 1 つの興味深い本はEnterprise OSGi in Actionですが、現在は Manning Early Access Program を通じてのみ入手できます。

あえて言うなら、フレームワークの実装者による JMX のサポートがまだ不足しています。他の方法 (プログラムであろうとなかろうと) で更新を管理できないわけではありませんが、それは役に立ちました。とにかく、OSGi には改善の余地があると言えます。

于 2012-06-21T12:22:31.297 に答える
3

開発中にアプリケーション全体を再起動することを避けることが懸念事項である場合は、OSGi を最初に検討するべきではありません。JRebel/LiveRebel のようなものがニーズを満たしているかどうかを確認してください。

OSGiは、他のバンドル/レイヤーを再起動する必要がないなどのことを達成できますが、正しく実行すれば、私見ですが、正しく実行できるようになるにはある程度の学習曲線があります。

さらに読む:

于 2012-06-21T12:05:40.923 に答える