web-dev-qa-db-ja.com

拡張可能なソフトウェアのプラグインフレームワーク

プラグインをインストール/アンインストールする機能を提供するウェブアプリを作成する必要があります。 Eclipseのようなものを考えてくださいIDEソフトウェアのようです。唯一の違いは、変更を適用するためにEclipseのように再起動できないことです。おそらく、Wordpressに似ています。

私 の考え am implementing これは OSGi を次のように使用します。新しいプラグインがインストールされるたびに、新しいHTTPサーブレットが Http Whiteboard に登録されます。これらの公開されたサーブレットエンドポイントは、他のバンドルや外部に存在するサードパーティアプリによって使用されます。各プラグインは、OSGiバンドルとして個別に開発されます。 Apache Felix Webコンソールを使用して、ユーザーが選択したバンドルをユーザーがインストール/アンインストールできるようにすることができます。

OSGiの問題は、利用できるサポートがほとんどないことです。

  1. これを行うためのより良いアーキテクチャとフレームワークはありますか?
  2. Wordpressプラグインエコシステムアーキテクチャについて誰もが知っていますか?

注:私はすでに https://stackoverflow.com/questions/323202/how-to-design-extensible-software-plugin-architecture を見てきました。それは10年前に尋ねられました。私の質問はより具体的であり、この分野で過去10年間に多くのことが起こったに違いないと思います。

4
Nikhil Chilwant

個人的には、WebComponentsと「マイクロフロントエンド」の概念を使用して、このクライアント側を実装します。あなたの質問はかなり広範ですが、ほとんどの部分はすでにバックエンド部分を理解しているようですが、これは重いクライアント側アプリであるため(ページを更新する余裕さえないという事実から)、それは私には理にかなっていますネイティブブラウザAPIを使用して、プラグインをWebコンポーネントとして登録します。 「メイン」であっても、このプラグインアーキテクチャと互換性があり、他のプラグインに状態をシームレスに供給し、プラグインのレイアウトや選択などを管理できます。このタイプのアーキテクチャに関して他に質問がありますか? 「稼働時間」に加えて、どのような追加の要件とユースケースが重い必要がありますか?どのような状態が必要ですか?これらのプラグインは何ですかdo

3
user1274649