5

私たちは、ストリームベースのデータ フローを処理するための OSGi ベースのインフラストラクチャに取り組んでいます。特定の処理タスクは、個々の OSGi コンポーネントによって実行されます。これらのコンポーネントを異なるマシンに分散する可能性が必要になりました。つまり、OSGi コンポーネント/コンテナー間の何らかの通信メカニズムが必要です。

調査中に、R-OSGi、Apache CXF for Distributed OSGi、Eclipse Communication Framework など、さまざまな潜在的なソリューションに出くわしました。

ECF は、さまざまなトランスポート形式をサポートし、サービス ディスカバリなどのサポートを提供するため、特に興味深いようです。

私の中心的な質問:

  • Felix 内で ECF インフラストラクチャをセットアップするための詳細なチュートリアル/ウォークスルーはありますか? (私の調査によると、最近 Felix のサポートが追加されたことがわかりました)
  • 上記の 3 つ以外に、見逃した可能性のある解決策はありますか?
  • ECF の代わりに Apache CXF を使用する理由はありますか?
4

1 に答える 1

2

最初の質問 - Felix で ECF をセットアップするための詳細なウォークスルーがあるかどうか - に対する答えはわかりませんが、検索エンジンを使用してこれらの用語の組み合わせを見つけることができます。

問題は、ECF が Equinox インフラストラクチャを使用しており、推移的な依存関係 (特に、Equinox を非公開のデバッグに使用するランタイム API) によって非公開のパッケージに誤って依存することがあるということです。これは、ECF が利用できる他のコンポーネントのホスト全体に依存していることを意味し、通常、Felix ランタイムで適切に定義されていないのはこのセットです。

商用の OSGi クラウド ソリューションである Paremus の Service Fabric を見逃してしまいました。あなたが特にオープンソースに焦点を当てていたのかどうかはわかりません。ただし、商用ライセンスを含める場合は、リモート サービス用の非常に堅牢なアーキテクチャを備えています。

最後に、ECF を介した Apache CXF の質問です。Felix を使用している場合、ECF を使用するよりも Apache CXF を使用する方がおそらく簡単だと思います。これは主に、依存関係セットとそれが機能するようになったことと、ECF が Felix でテストされていない可能性があるという事実と相まって、Equinox ランタイムの特定の側面を想定している可能性があるためです (たとえば、ランタイムの親クラスローダーの委譲を取得することが含まれます)。ブートクラスパス上のもの)。これは実際には ECF 自体のせいではなく、むしろ Eclipse エコシステムがどのように機能するかの人工物です。

OSGi 以外のランタイムと通信したい場合、他の言語と対話するための WDSL を生成できるという点で、Apache CXF には利点があります。もう少し手を加えれば、ECF でも同じことができると思います。CXF ソリューションは、対応する ECF ソリューションよりも冗長である可能性があります (WSDL は常にそうです) が、大量の要求を使用していない場合、これが大きな違いを生む可能性は低いです。

于 2012-10-22T09:04:42.313 に答える