2

私は、ソフトウェアコンポーネントのすべての展開、インストール、アンインストール、およびアップグレードを処理できるリモートソフトウェアプロビジョニングシステムを開発しています。ソフトウェアは任意の言語(java、.net、c / c ++など)にすることができ、ターゲット側はPC、組み込みシステム、スマートフォンにすることができます。

私は、ApacheACEがこのシステムを開発するための良い候補であることに気づきました。

Apache ACEはOSGi以外のターゲットにもソフトウェアプロビジョニングを実行できるため、ターゲット側でOSGiを使用することの利点/必要性があるかどうかを知りたいです。

4

3 に答える 3

2

クライアント側にOSGiのようなモジュラーフレームワークがあると、リモート管理を行うときに大きな利点になります。これは、インストールされたバンドル、依存関係、バンドルの状態、利用可能なサービスなど、内部で何が起こっているかについて多くの洞察を提供するためです。問題をリモートで解決する必要があります。もう1つの利点は、OSGiは基本的に、プログラマーに適切なモジュラーおよび動的システムの開発を強制することです。これにより、(リモート)更新がはるかに簡単になります。

したがって、クライアント側で使用する言語とフレームワークを今すぐ決定する必要がある場合は、組み込みクライアントとモバイルクライアントにOSGiを強くお勧めします。PCの場合(デスクトップPCのことですか?)、これはおそらく最良の選択ではありません。そこで達成したいことは大きく異なります。MS Officeをリモートでインストールしたい場合、OSGiはあなたを前進させません;)

ただし、クライアント側に既存のプログラムがあり、それらをOSGiに変換するかどうかを検討している場合は、最初にそれらを簡単に変換できるかどうかを調べることをお勧めします。一部のソフトウェアパッケージでは、OSGiが複雑であるためではなく、プログラム自体がモジュール式ではなく、環境の静的な性質について多くの仮定があるため、OSGiへの変換で多くの問題が発生する可能性があります(たとえば、何も消えない、システムが更新されることはありませんなど)。皮肉なことに、これらは、どのリモートプロビジョニングシステムを選択したかに関係なく、後で最も問題が発生するプログラムです。

一部のターゲットにOSGiがある場合は、最も基本的で単純なインストールおよび更新機能だけでなく、OSGiの全機能にアクセスできるリモートプロビジョニングシステムを使用してください。Apache ACEはまだ使用していませんが、別のプロビジョニングシステムであるmPowerRemoteManagerの使用経験があります。これは、OSGiをベースとして何が可能であるかを感じさせることができる、ドキュメントからのスナップショットです。自分のケースに役立つかどうかにかかわらず、独自の結論を引き出すことができます。

于 2012-05-25T09:59:52.383 に答える
1

さて、OSGiの利点は変わっていないので、そのために標準ページを参照することができます。

もう少し建設的にするために、「ACEには必要ないので、アプリケーションをOSGiに変換する必要がありますか?」という質問を読みます。

それは、あなたが求めている更新メカニズムの「種類」に依存すると思います。全体としてのみデプロイおよび更新するモノリシックアプリケーション(少なくともプロビジョニングの観点から)がある場合(iOSアプリのように)、OSGiを使用してプロビジョニングの目的で得るものはあまりありません。

残りの部分については、他の人と同じように言うことができます。アプリケーションをOSGiに変換するのは難しいことではありませんが、コードのモジュール化は悪夢になる可能性がありますが、OSGiであるかどうかにかかわらず、ある時点で直面する必要があります。コードがすでにモジュール化されている場合は、OSGiを使用するのは簡単なことです。

于 2012-05-23T09:30:50.027 に答える
1

私はあなたが尋ねた他の質問でいくつかの例を挙げました:

ApacheACEが機能できる非osgiターゲットは何ですか

ACEサーバと通信してアーティファクトをインストールする独自の管理エージェントを作成できます。実際には、独自のコードとプロトコルをフックできる場所がいくつかあります。使用を考えている具体的な言語/環境はありますか、それとも今、可能性を模索しているだけですか?

于 2012-05-25T17:25:15.443 に答える